From 43225434d7ccc4d2d0f0396cb0f8fdaa3e98f163 Mon Sep 17 00:00:00 2001 From: jiangzhengwenjz Date: Fri, 27 Mar 2020 09:41:51 +0800 Subject: [PATCH] initial commit --- .gitattributes | 21 + .gitignore | 54 + INSTALL.md | 65 + Makefile | 199 + README.md | 9 + asm/code.s | 321238 +++++++++++++++++++++++++++++ asm/code_08000108.s | 325 + asm/code_08000E44.s | 91 + asm/code_08000F10.s | 51 + asm/code_080011C4.s | 1443 + asm/code_08003FC4.s | 2473 + asm/code_0800857C.s | 4160 + asm/code_08016B30.s | 3453 + asm/code_080B1520.s | 551 + asm/crt0.s | 32 + asm/intr.s | 1287 + asm/libagbsyscall.s | 90 + asm/libgcc.s | 90 + asm/m4a.s | 3027 + asm/m4a_asm.s | 1580 + asm/macros.inc | 3 + asm/macros/asm.inc | 17 + asm/macros/function.inc | 29 + asm/macros/m4a.inc | 13 + asm/macros/music_voice.inc | 113 + asm/rom_header.inc | 35 + asmdiff.sh | 10 + constants/constants.inc | 3 + constants/gba_constants.inc | 494 + constants/m4a_constants.inc | 199 + constants/misc_constants.inc | 19 + data/data_1.s | 404 + data/data_2.s | 74 + data/data_4.s | 179 + data/data_6.s | 191 + data/data_8.s | 68762 ++++++ graphics/.gitignore | 1 + graphics_file_rules.mk | 0 include/gba/defines.h | 94 + include/gba/flash_internal.h | 46 + include/gba/gba.h | 13 + include/gba/io_reg.h | 789 + include/gba/isagbprint.h | 50 + include/gba/m4a_internal.h | 407 + include/gba/macro.h | 194 + include/gba/multi_boot.h | 106 + include/gba/syscall.h | 50 + include/gba/types.h | 268 + include/global.h | 49 + linker.ld | 329 + songs.mk | 0 sound/MPlayDef.s | 430 + tools/aif2pcm/.gitignore | 2 + tools/aif2pcm/LICENSE | 20 + tools/aif2pcm/Makefile | 18 + tools/aif2pcm/extended.c | 172 + tools/aif2pcm/main.c | 888 + tools/bin2c/.gitignore | 1 + tools/bin2c/LICENSE | 19 + tools/bin2c/Makefile | 16 + tools/bin2c/bin2c.c | 201 + tools/gbafix/.gitignore | 2 + tools/gbafix/COPYING | 674 + tools/gbafix/Makefile | 13 + tools/gbafix/elf.h | 3147 + tools/gbafix/gbafix.c | 317 + tools/gbagfx/.gitignore | 1 + tools/gbagfx/LICENSE | 19 + tools/gbagfx/Makefile | 21 + tools/gbagfx/convert_png.c | 254 + tools/gbagfx/convert_png.h | 12 + tools/gbagfx/font.c | 326 + tools/gbagfx/font.h | 16 + tools/gbagfx/gfx.c | 344 + tools/gbagfx/gfx.h | 36 + tools/gbagfx/global.h | 31 + tools/gbagfx/huff.c | 398 + tools/gbagfx/huff.h | 38 + tools/gbagfx/jasc_pal.c | 172 + tools/gbagfx/jasc_pal.h | 9 + tools/gbagfx/lz.c | 153 + tools/gbagfx/lz.h | 9 + tools/gbagfx/main.c | 537 + tools/gbagfx/options.h | 24 + tools/gbagfx/rl.c | 149 + tools/gbagfx/rl.h | 9 + tools/gbagfx/util.c | 124 + tools/gbagfx/util.h | 14 + tools/mid2agb/.gitignore | 1 + tools/mid2agb/LICENSE | 19 + tools/mid2agb/Makefile | 18 + tools/mid2agb/agb.cpp | 547 + tools/mid2agb/agb.h | 33 + tools/mid2agb/error.cpp | 36 + tools/mid2agb/error.h | 26 + tools/mid2agb/main.cpp | 233 + tools/mid2agb/main.h | 39 + tools/mid2agb/midi.cpp | 964 + tools/mid2agb/midi.h | 87 + tools/mid2agb/tables.cpp | 286 + tools/mid2agb/tables.h | 29 + tools/preproc/.gitignore | 1 + tools/preproc/LICENSE | 19 + tools/preproc/Makefile | 20 + tools/preproc/asm_file.cpp | 529 + tools/preproc/asm_file.h | 72 + tools/preproc/c_file.cpp | 429 + tools/preproc/c_file.h | 58 + tools/preproc/char_util.h | 71 + tools/preproc/charmap.cpp | 410 + tools/preproc/charmap.h | 64 + tools/preproc/preproc.cpp | 156 + tools/preproc/preproc.h | 54 + tools/preproc/string_parser.cpp | 355 + tools/preproc/string_parser.h | 55 + tools/preproc/utf8.cpp | 92 + tools/preproc/utf8.h | 34 + tools/scaninc/.gitignore | 1 + tools/scaninc/LICENSE | 19 + tools/scaninc/Makefile | 18 + tools/scaninc/asm_file.cpp | 192 + tools/scaninc/asm_file.h | 119 + tools/scaninc/c_file.cpp | 307 + tools/scaninc/c_file.h | 57 + tools/scaninc/scaninc.cpp | 121 + tools/scaninc/scaninc.h | 59 + tools/scaninc/source_file.cpp | 125 + tools/scaninc/source_file.h | 71 + zeldatmc.sha1 | 1 + 129 files changed, 427623 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 INSTALL.md create mode 100644 Makefile create mode 100644 README.md create mode 100644 asm/code.s create mode 100644 asm/code_08000108.s create mode 100644 asm/code_08000E44.s create mode 100644 asm/code_08000F10.s create mode 100644 asm/code_080011C4.s create mode 100644 asm/code_08003FC4.s create mode 100644 asm/code_0800857C.s create mode 100644 asm/code_08016B30.s create mode 100644 asm/code_080B1520.s create mode 100644 asm/crt0.s create mode 100644 asm/intr.s create mode 100644 asm/libagbsyscall.s create mode 100644 asm/libgcc.s create mode 100644 asm/m4a.s create mode 100644 asm/m4a_asm.s create mode 100644 asm/macros.inc create mode 100644 asm/macros/asm.inc create mode 100644 asm/macros/function.inc create mode 100644 asm/macros/m4a.inc create mode 100644 asm/macros/music_voice.inc create mode 100644 asm/rom_header.inc create mode 100644 asmdiff.sh create mode 100644 constants/constants.inc create mode 100644 constants/gba_constants.inc create mode 100644 constants/m4a_constants.inc create mode 100644 constants/misc_constants.inc create mode 100644 data/data_1.s create mode 100644 data/data_2.s create mode 100644 data/data_4.s create mode 100644 data/data_6.s create mode 100644 data/data_8.s create mode 100644 graphics/.gitignore create mode 100644 graphics_file_rules.mk create mode 100644 include/gba/defines.h create mode 100644 include/gba/flash_internal.h create mode 100644 include/gba/gba.h create mode 100644 include/gba/io_reg.h create mode 100644 include/gba/isagbprint.h create mode 100644 include/gba/m4a_internal.h create mode 100644 include/gba/macro.h create mode 100644 include/gba/multi_boot.h create mode 100644 include/gba/syscall.h create mode 100644 include/gba/types.h create mode 100644 include/global.h create mode 100644 linker.ld create mode 100644 songs.mk create mode 100644 sound/MPlayDef.s create mode 100644 tools/aif2pcm/.gitignore create mode 100644 tools/aif2pcm/LICENSE create mode 100644 tools/aif2pcm/Makefile create mode 100644 tools/aif2pcm/extended.c create mode 100644 tools/aif2pcm/main.c create mode 100644 tools/bin2c/.gitignore create mode 100644 tools/bin2c/LICENSE create mode 100644 tools/bin2c/Makefile create mode 100644 tools/bin2c/bin2c.c create mode 100644 tools/gbafix/.gitignore create mode 100644 tools/gbafix/COPYING create mode 100644 tools/gbafix/Makefile create mode 100644 tools/gbafix/elf.h create mode 100644 tools/gbafix/gbafix.c create mode 100644 tools/gbagfx/.gitignore create mode 100644 tools/gbagfx/LICENSE create mode 100644 tools/gbagfx/Makefile create mode 100644 tools/gbagfx/convert_png.c create mode 100644 tools/gbagfx/convert_png.h create mode 100644 tools/gbagfx/font.c create mode 100644 tools/gbagfx/font.h create mode 100644 tools/gbagfx/gfx.c create mode 100644 tools/gbagfx/gfx.h create mode 100644 tools/gbagfx/global.h create mode 100644 tools/gbagfx/huff.c create mode 100644 tools/gbagfx/huff.h create mode 100644 tools/gbagfx/jasc_pal.c create mode 100644 tools/gbagfx/jasc_pal.h create mode 100644 tools/gbagfx/lz.c create mode 100644 tools/gbagfx/lz.h create mode 100644 tools/gbagfx/main.c create mode 100644 tools/gbagfx/options.h create mode 100644 tools/gbagfx/rl.c create mode 100644 tools/gbagfx/rl.h create mode 100644 tools/gbagfx/util.c create mode 100644 tools/gbagfx/util.h create mode 100644 tools/mid2agb/.gitignore create mode 100644 tools/mid2agb/LICENSE create mode 100644 tools/mid2agb/Makefile create mode 100644 tools/mid2agb/agb.cpp create mode 100644 tools/mid2agb/agb.h create mode 100644 tools/mid2agb/error.cpp create mode 100644 tools/mid2agb/error.h create mode 100644 tools/mid2agb/main.cpp create mode 100644 tools/mid2agb/main.h create mode 100644 tools/mid2agb/midi.cpp create mode 100644 tools/mid2agb/midi.h create mode 100644 tools/mid2agb/tables.cpp create mode 100644 tools/mid2agb/tables.h create mode 100644 tools/preproc/.gitignore create mode 100644 tools/preproc/LICENSE create mode 100644 tools/preproc/Makefile create mode 100644 tools/preproc/asm_file.cpp create mode 100644 tools/preproc/asm_file.h create mode 100644 tools/preproc/c_file.cpp create mode 100644 tools/preproc/c_file.h create mode 100644 tools/preproc/char_util.h create mode 100644 tools/preproc/charmap.cpp create mode 100644 tools/preproc/charmap.h create mode 100644 tools/preproc/preproc.cpp create mode 100644 tools/preproc/preproc.h create mode 100644 tools/preproc/string_parser.cpp create mode 100644 tools/preproc/string_parser.h create mode 100644 tools/preproc/utf8.cpp create mode 100644 tools/preproc/utf8.h create mode 100644 tools/scaninc/.gitignore create mode 100644 tools/scaninc/LICENSE create mode 100644 tools/scaninc/Makefile create mode 100644 tools/scaninc/asm_file.cpp create mode 100644 tools/scaninc/asm_file.h create mode 100644 tools/scaninc/c_file.cpp create mode 100644 tools/scaninc/c_file.h create mode 100644 tools/scaninc/scaninc.cpp create mode 100644 tools/scaninc/scaninc.h create mode 100644 tools/scaninc/source_file.cpp create mode 100644 tools/scaninc/source_file.h create mode 100644 zeldatmc.sha1 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..9e4fad21 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,21 @@ +*.pal text eol=crlf + +*.s text eol=lf +*.txt text eol=lf +Makefile text eol=lf +*.mk text eol=lf +*.c text eol=lf +*.h text eol=lf +*.pl text eol=lf +*.inc text eol=lf +*.sha1 text eol=lf +*.sed text eol=lf +*.sh text eol=lf +*.json text eol=lf + +*.png binary +*.bin binary +*.pcm binary + +*.h linguist-language=C +*.inc linguist-language=Assembly diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..7674b9fe --- /dev/null +++ b/.gitignore @@ -0,0 +1,54 @@ +*.1bpp +*.4bpp +*.8bpp +*.DS_Store +*.bak +*.bat +*.diff +*.dump +*.elf +*.exe +*.fwjpnfont +*.gba +*.sgm +*.sa1 +*.sg1 +*.gbapal +*.hwjpnfont +*.i +*.id0 +*.id1 +*.id2 +*.idb +*.dmp +*.latfont +*.lz +*.map +*.nam +*.o +*.pcm +*.pl +*.rl +*.s.old +*.s.old2 +*.sa* +*.swo +*.swp +*.til +.fuse_hidden* +.idea/ +Thumbs.db +build/ +cmake-build-* +sound/**/*.bin +sound/songs/midi/*.s +src/*.s +tags +tools/agbcc +tools/binutils +types_*.taghl +*.zip +!calcrom.pl +!sound/programmable_wave_samples/*.pcm +_Deparsed_XSubs.pm +*.py diff --git a/INSTALL.md b/INSTALL.md new file mode 100644 index 00000000..3281e563 --- /dev/null +++ b/INSTALL.md @@ -0,0 +1,65 @@ +First, you must put a The Legend of Zelda: The Minish Cap (U) ROM (with SHA1: `b4bd50e4131b027c334547b4524e2dbbd4227130`) in the root directory of the repository and name it `baserom.gba`. + +## Prerequisites + +| Linux | macOS | Windows 10 (build 18917+) | Windows 10 (1709+) | Windows 8, 8.1, and 10 (1507, 1511, 1607, 1703) +| ----- | ----- | ------------------------- | ------------------ | --------------------------------------------------------- +| none | [Xcode Command Line Tools package][xcode] | [Windows Subsystem for Linux 2][wsl2] | [Windows Subsystem for Linux][wsl] | [Cygwin][cygwin] + +[xcode]: https://developer.apple.com/library/archive/technotes/tn2339/_index.html#//apple_ref/doc/uid/DTS40014588-CH1-DOWNLOADING_COMMAND_LINE_TOOLS_IS_NOT_AVAILABLE_IN_XCODE_FOR_MACOS_10_9__HOW_CAN_I_INSTALL_THEM_ON_MY_MACHINE_ +[wsl2]: https://docs.microsoft.com/windows/wsl/wsl2-install +[wsl]: https://docs.microsoft.com/windows/wsl/install-win10 +[cygwin]: https://cygwin.com/install.html + +The [prerelease version of the Linux subsystem](https://docs.microsoft.com/windows/wsl/install-legacy) available in the 1607 and 1703 releases of Windows 10 is obsolete so consider uninstalling it. + +Make sure that the `build-essential`, `git`, and `libpng-dev` packages are installed. The `build-essential` package includes the `make`, `gcc-core`, and `g++` packages so they do not have to be obtained separately. + +In the case of Cygwin, [include](https://cygwin.com/cygwin-ug-net/setup-net.html#setup-packages) the `make`, `git`, `gcc-core`, `gcc-g++`, and `libpng-devel` packages. + +Install the **devkitARM** toolchain of [devkitPro](https://devkitpro.org/wiki/Getting_Started) and add its environment variables. For Windows versions without the Linux subsystem, the devkitPro [graphical installer](https://github.com/devkitPro/installer/releases) includes a preconfigured MSYS2 environment, thus the steps below are not required. + + sudo (dkp-)pacman -S gba-dev + export DEVKITPRO=/opt/devkitpro + echo "export DEVKITPRO=$DEVKITPRO" >> ~/.bashrc + export DEVKITARM=$DEVKITPRO/devkitARM + echo "export DEVKITARM=$DEVKITARM" >> ~/.bashrc + +## Installation + +To set up the repository: + + git clone https://github.com/jiangzhengwenjz/zeldatmc + git clone https://github.com/pret/agbcc + + cd ./agbcc + sh build.sh + sh install.sh ../zeldatmc + + cd ../zeldatmc + +To build **zeldatmc.gba**: + + make -j$(nproc) + +To confirm it matches the official ROM image while building, do this instead: + + make compare -j$(nproc) + +If only `.c` or `.s` files were changed, turn off the dependency scanning temporarily. Changes to any other files will be ignored and the build will either fail or not reflect those changes. + + make -j$(nproc) NODEP=1 + +**Note:** If the build command is not recognized on Linux, including the Linux environment used within Windows, run `nproc` and replace `$(nproc)` with the returned value (e.g.: `make -j4`). Because `nproc` is not available on macOS, the alternative is `sysctl -n hw.ncpu`. + +### Note for Mac users + +The BSD make that comes with Mac XCode can be buggy, so obtain GNU make and sed using [Homebrew](https://brew.sh): + + brew install make gnu-sed + +When compiling agbcc, substitute the `build.sh` line for + + gsed 's/^make/gmake/g' build.sh | sh + +Finally, use `gmake` instead of `make` to compile the ROM(s). diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..a8248533 --- /dev/null +++ b/Makefile @@ -0,0 +1,199 @@ +include $(DEVKITARM)/base_tools + +COMPARE ?= 0 + +CPP := $(CC) -E +LD := $(DEVKITARM)/bin/arm-none-eabi-ld + +GAME_VERSION := THEMINISHCAP +REVISION := 0 +GAME_LANGUAGE := ENGLISH + +TITLE := GBAZELDA MC +GAME_CODE := BZME +MAKER_CODE := 01 + +SHELL := /bin/bash -o pipefail + +BUILD_NAME := zeldatmc +ROM := $(BUILD_NAME).gba +OBJ_DIR := build/$(BUILD_NAME) + +ELF = $(ROM:.gba=.elf) +MAP = $(ROM:.gba=.map) + +C_SUBDIR = src +DATA_C_SUBDIR = src/data +ASM_SUBDIR = asm +DATA_ASM_SUBDIR = data +SONG_SUBDIR = sound/songs +MID_SUBDIR = sound/songs/midi + +C_BUILDDIR = $(OBJ_DIR)/$(C_SUBDIR) +ASM_BUILDDIR = $(OBJ_DIR)/$(ASM_SUBDIR) +DATA_ASM_BUILDDIR = $(OBJ_DIR)/$(DATA_ASM_SUBDIR) +SONG_BUILDDIR = $(OBJ_DIR)/$(SONG_SUBDIR) +MID_BUILDDIR = $(OBJ_DIR)/$(MID_SUBDIR) + +ASFLAGS := -mcpu=arm7tdmi --defsym $(GAME_VERSION)=1 --defsym REVISION=$(REVISION) --defsym $(GAME_LANGUAGE)=1 + +CC1 := tools/agbcc/bin/agbcc +override CFLAGS += -mthumb-interwork -Wimplicit -Wparentheses -Werror -O2 -fhex-asm + +ifeq ($(DINFO),1) +override CFLAGS += -g +endif + +CPPFLAGS := -I tools/agbcc -I tools/agbcc/include -iquote include -nostdinc -undef -D$(GAME_VERSION) -DREVISION=$(REVISION) -D$(GAME_LANGUAGE) + +LDFLAGS = -Map ../../$(MAP) + +LIB := -L ../../tools/agbcc/lib -lc + +SHA1 := $(shell { command -v sha1sum || command -v shasum; } 2>/dev/null) -c +GFX := tools/gbagfx/gbagfx +AIF := tools/aif2pcm/aif2pcm +MID := tools/mid2agb/mid2agb +SCANINC := tools/scaninc/scaninc +# TODO: use charmap? +PREPROC := tools/preproc/preproc +FIX := tools/gbafix/gbafix + +# Clear the default suffixes +.SUFFIXES: +# Don't delete intermediate files +.SECONDARY: +# Delete files that weren't built properly +.DELETE_ON_ERROR: +# Secondary expansion is required for dependency variables in object rules. +.SECONDEXPANSION: + +$(shell mkdir -p $(C_BUILDDIR) $(ASM_BUILDDIR) $(DATA_ASM_BUILDDIR) $(SONG_BUILDDIR) $(MID_BUILDDIR)) + +infoshell = $(foreach line, $(shell $1 | sed "s/ /__SPACE__/g"), $(info $(subst __SPACE__, ,$(line)))) + +# Build tools when building the rom +# Disable dependency scanning for clean/tidy/tools +ifeq (,$(filter-out all compare,$(MAKECMDGOALS))) +$(call infoshell, $(MAKE) tools) +else +NODEP := 1 +endif + +C_SRCS := $(wildcard $(C_SUBDIR)/*.c) +C_OBJS := $(patsubst $(C_SUBDIR)/%.c,$(C_BUILDDIR)/%.o,$(C_SRCS)) + +ASM_SRCS := $(wildcard $(ASM_SUBDIR)/*.s) +ASM_OBJS := $(patsubst $(ASM_SUBDIR)/%.s,$(ASM_BUILDDIR)/%.o,$(ASM_SRCS)) + +DATA_ASM_SRCS := $(wildcard $(DATA_ASM_SUBDIR)/*.s) +DATA_ASM_OBJS := $(patsubst $(DATA_ASM_SUBDIR)/%.s,$(DATA_ASM_BUILDDIR)/%.o,$(DATA_ASM_SRCS)) + +SONG_SRCS := $(wildcard $(SONG_SUBDIR)/*.s) +SONG_OBJS := $(patsubst $(SONG_SUBDIR)/%.s,$(SONG_BUILDDIR)/%.o,$(SONG_SRCS)) + +MID_SRCS := $(wildcard $(MID_SUBDIR)/*.mid) +MID_OBJS := $(patsubst $(MID_SUBDIR)/%.mid,$(MID_BUILDDIR)/%.o,$(MID_SRCS)) + +OBJS := $(C_OBJS) $(ASM_OBJS) $(DATA_ASM_OBJS) $(SONG_OBJS) $(MID_OBJS) +OBJS_REL := $(patsubst $(OBJ_DIR)/%,%,$(OBJS)) + +TOOLDIRS := $(filter-out tools/agbcc tools/binutils,$(wildcard tools/*)) +TOOLBASE = $(TOOLDIRS:tools/%=%) +TOOLS = $(foreach tool,$(TOOLBASE),tools/$(tool)/$(tool)$(EXE)) + +.PHONY: all rom tools clean-tools mostlyclean clean compare tidy $(TOOLDIRS) + +MAKEFLAGS += --no-print-directory + +AUTO_GEN_TARGETS := + +all: tools rom + +rom: $(ROM) +ifeq ($(COMPARE),1) + @$(SHA1) zeldatmc.sha1 +endif + +tools: $(TOOLDIRS) + +$(TOOLDIRS): + @$(MAKE) -C $@ + +# For contributors to make sure a change didn't affect the contents of the ROM. +compare: + @$(MAKE) COMPARE=1 + +mostlyclean: tidy + rm -f sound/direct_sound_samples/*.bin + rm -f $(SONG_OBJS) $(MID_SUBDIR)/*.s + find . \( -iname '*.1bpp' -o -iname '*.4bpp' -o -iname '*.8bpp' -o -iname '*.gbapal' -o -iname '*.lz' -o -iname '*.latfont' -o -iname '*.hwjpnfont' -o -iname '*.fwjpnfont' \) -exec rm {} + + rm -f $(AUTO_GEN_TARGETS) + +clean-tools: + @$(foreach tooldir,$(TOOLDIRS),$(MAKE) clean -C $(tooldir);) + +clean: mostlyclean clean-tools + +tidy: + rm -f $(ROM) $(ELF) $(MAP) + rm -r build/* + +include graphics_file_rules.mk +include songs.mk + +%.s: ; +%.png: ; +%.pal: ; +%.aif: ; + +%.1bpp: %.png ; $(GFX) $< $@ +%.4bpp: %.png ; $(GFX) $< $@ +%.8bpp: %.png ; $(GFX) $< $@ +%.gbapal: %.pal ; $(GFX) $< $@ +%.gbapal: %.png ; $(GFX) $< $@ +%.lz: % ; $(GFX) $< $@ +%.rl: % ; $(GFX) $< $@ +sound/%.bin: sound/%.aif ; $(AIF) $< $@ +sound/songs/%.s: sound/songs/%.mid + cd $(@D) && ../../$(MID) $(> $(C_BUILDDIR)/$*.s + $(AS) $(ASFLAGS) -o $@ $(C_BUILDDIR)/$*.s + +ifeq ($(NODEP),1) +$(ASM_BUILDDIR)/%.o: asm_dep := +else +$(ASM_BUILDDIR)/%.o: asm_dep = $(shell $(SCANINC) -I . $(ASM_SUBDIR)/$*.s) +endif + +$(ASM_BUILDDIR)/%.o: $(ASM_SUBDIR)/%.s $$(asm_dep) + $(PREPROC) $< | $(AS) $(ASFLAGS) -o $@ + +ifeq ($(NODEP),1) +$(DATA_ASM_BUILDDIR)/%.o: data_dep := +else +$(DATA_ASM_BUILDDIR)/%.o: data_dep = $(shell $(SCANINC) -I . $(DATA_ASM_SUBDIR)/$*.s) +endif + +$(DATA_ASM_BUILDDIR)/%.o: $(DATA_ASM_SUBDIR)/%.s $$(data_dep) + $(PREPROC) $< | $(CPP) -I include -nostdinc -undef -Wno-unicode - | $(AS) $(ASFLAGS) -o $@ + +$(SONG_BUILDDIR)/%.o: $(SONG_SUBDIR)/%.s + $(AS) $(ASFLAGS) -I sound -o $@ $< + +$(ELF): $(OBJS) linker.ld + cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -n -T ../../linker.ld -o ../../$@ $(LIB) + $(FIX) $@ -t"$(TITLE)" -c$(GAME_CODE) -m$(MAKER_CODE) -r$(REVISION) --silent + +$(ROM): $(ELF) + $(OBJCOPY) -O binary --gap-fill 0xFF --pad-to 0x9000000 $< $@ diff --git a/README.md b/README.md new file mode 100644 index 00000000..62d4eb16 --- /dev/null +++ b/README.md @@ -0,0 +1,9 @@ +# The Legend of Zelda: The Minish Cap + +This is a disassembly of The Legend of Zelda: The Minish Cap (USA). + +It builds the following ROM: + +* [**zeldatmc.gba**](https://datomatic.no-intro.org/index.php?page=show_record&s=23&n=1841) `sha1: b4bd50e4131b027c334547b4524e2dbbd4227130` + +To set up the repository, see [INSTALL.md](INSTALL.md). diff --git a/asm/code.s b/asm/code.s new file mode 100644 index 00000000..f1bbefd6 --- /dev/null +++ b/asm/code.s @@ -0,0 +1,321238 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_08018500 +sub_08018500: @ 0x08018500 + push {r4, lr} + ldr r4, _08018550 @ =gUnk_02033AB8 + adds r3, r4, #4 + ldr r0, _08018554 @ =gUnk_080B3D14 + ldrb r1, [r4] + lsls r1, r1, #1 + adds r1, r1, r0 + ldrb r2, [r4, #1] + lsls r0, r2, #1 + adds r0, r0, r2 + ldrh r1, [r1] + adds r0, r0, r1 + movs r2, #0 +_0801851A: + strh r0, [r3] + adds r0, #1 + adds r3, #2 + adds r2, #1 + cmp r2, #2 + bls _0801851A + ldrb r1, [r4] + lsls r0, r1, #2 + adds r0, r0, r1 + ldr r1, _08018558 @ =0x00000C81 + adds r0, r0, r1 + movs r2, #0 + adds r1, r4, #0 + adds r1, #0xa +_08018536: + strh r0, [r3] + adds r0, #1 + adds r3, #2 + adds r2, #1 + cmp r2, #4 + bls _08018536 + movs r0, #5 + bl sub_08018690 + movs r0, #0 + strb r0, [r4, #2] + pop {r4, pc} + .align 2, 0 +_08018550: .4byte gUnk_02033AB8 +_08018554: .4byte gUnk_080B3D14 +_08018558: .4byte 0x00000C81 + + thumb_func_start sub_0801855C +sub_0801855C: @ 0x0801855C + push {r4, r5, r6, lr} + ldr r4, _08018570 @ =gUnk_02033AB8 + adds r0, r4, #0 + movs r1, #0x14 + bl sub_0801D630 + adds r5, r4, #0 + ldr r4, _08018574 @ =gUnk_080B3D20 + movs r6, #0 + b _0801858C + .align 2, 0 +_08018570: .4byte gUnk_02033AB8 +_08018574: .4byte gUnk_080B3D20 +_08018578: + adds r0, r4, #0 + bl sub_080185B4 + cmp r0, #0 + beq _08018584 + ldrb r6, [r5, #3] +_08018584: + ldrb r0, [r5, #3] + adds r0, #1 + strb r0, [r5, #3] + adds r4, #4 +_0801858C: + ldrb r0, [r4] + cmp r0, #0xff + bne _08018578 + strb r6, [r5, #3] + ldrb r0, [r5, #3] + lsls r0, r0, #2 + ldr r1, _080185B0 @ =gUnk_080B3D20 + adds r4, r0, r1 + ldrb r0, [r4, #2] + strb r0, [r5] + ldrb r0, [r4, #3] + strb r0, [r5, #1] + adds r0, r6, #1 + strb r0, [r5, #3] + bl sub_08018500 + pop {r4, r5, r6, pc} + .align 2, 0 +_080185B0: .4byte gUnk_080B3D20 + + thumb_func_start sub_080185B4 +sub_080185B4: @ 0x080185B4 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2] + cmp r0, #0xff + bne _080185C2 + movs r0, #0 + b _080185F6 +_080185C2: + cmp r0, #0xfe + bne _080185D4 + ldrb r0, [r2, #1] + bl sub_0807CA84 + cmp r0, #0 + beq _080185F6 + movs r0, #1 + b _080185F6 +_080185D4: + cmp r0, #0xfd + beq _080185F0 + ldr r1, _080185EC @ =gUnk_0811E454 + ldrb r0, [r2] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + ldrb r1, [r2, #1] + bl sub_0807CB10 + b _080185F6 + .align 2, 0 +_080185EC: .4byte gUnk_0811E454 +_080185F0: + ldrb r0, [r2, #1] + bl sub_0801E7F4 +_080185F6: + pop {pc} + + thumb_func_start sub_080185F8 +sub_080185F8: @ 0x080185F8 + push {r4, r5, lr} + ldr r5, _08018624 @ =gUnk_02033AB8 + ldrb r0, [r5, #3] + lsls r0, r0, #2 + ldr r1, _08018628 @ =gUnk_080B3D20 + adds r4, r0, r1 + adds r0, r4, #0 + bl sub_080185B4 + cmp r0, #0 + beq _08018620 + ldrb r0, [r4, #2] + strb r0, [r5] + ldrb r0, [r4, #3] + strb r0, [r5, #1] + ldrb r0, [r5, #3] + adds r0, #1 + strb r0, [r5, #3] + bl sub_08018500 +_08018620: + pop {r4, r5, pc} + .align 2, 0 +_08018624: .4byte gUnk_02033AB8 +_08018628: .4byte gUnk_080B3D20 + + thumb_func_start sub_0801862C +sub_0801862C: @ 0x0801862C + push {r4, r5, lr} + ldr r1, _0801864C @ =gUnk_03003F80 + movs r2, #0 + movs r0, #0x16 + strb r0, [r1, #0xc] + ldr r5, _08018650 @ =gUnk_030010A0 + adds r0, r5, #0 + adds r0, #0x35 + strb r2, [r0] + ldr r4, _08018654 @ =gUnk_02033AB8 + ldrb r0, [r4] + cmp r0, #0xff + bne _08018658 + ldrh r0, [r4, #4] + strh r0, [r5, #0x36] + b _0801868C + .align 2, 0 +_0801864C: .4byte gUnk_03003F80 +_08018650: .4byte gUnk_030010A0 +_08018654: .4byte gUnk_02033AB8 +_08018658: + ldrb r0, [r4, #2] + lsls r0, r0, #1 + adds r1, r4, #4 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r5, #0x36] + ldrb r0, [r4, #2] + adds r0, #1 + strb r0, [r4, #2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #7 + bls _0801868C + movs r0, #0 + strb r0, [r4, #2] + movs r0, #8 + bl sub_08018690 + ldrh r0, [r4, #4] + ldrh r5, [r5, #0x36] + cmp r0, r5 + bne _0801868C + adds r1, r0, #0 + ldrh r0, [r4, #0x12] + strh r0, [r4, #4] + strh r1, [r4, #0x12] +_0801868C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08018690 +sub_08018690: @ 0x08018690 + push {r4, r5, r6, lr} + adds r6, r1, #0 + subs r4, r0, #1 + cmp r4, #0 + beq _080186BC + lsls r0, r4, #1 + adds r5, r0, r6 +_0801869E: + bl sub_08000E50 + adds r1, r4, #1 + bl __modsi3 + ldrh r2, [r5] + lsls r0, r0, #1 + adds r0, r0, r6 + ldrh r1, [r0] + strh r1, [r5] + strh r2, [r0] + subs r5, #2 + subs r4, #1 + cmp r4, #0 + bne _0801869E +_080186BC: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080186C0 +sub_080186C0: @ 0x080186C0 + ldr r3, _080186D0 @ =gUnk_02033A90 + adds r2, r3, #0 + adds r2, #0x28 + movs r1, #0xff + strb r1, [r2] + strh r0, [r3, #0x2c] + bx lr + .align 2, 0 +_080186D0: .4byte gUnk_02033A90 + + thumb_func_start sub_080186D4 +sub_080186D4: @ 0x080186D4 + push {lr} + ldr r0, _080186E8 @ =gUnk_02033A90 + adds r0, #0x28 + ldrb r0, [r0] + cmp r0, #0xff + bne _080186E4 + bl sub_0801855C +_080186E4: + pop {pc} + .align 2, 0 +_080186E8: .4byte gUnk_02033A90 + + thumb_func_start sub_080186EC +sub_080186EC: @ 0x080186EC + push {r4, r5, lr} + movs r5, #0 + ldr r4, _0801870C @ =gUnk_080C9CBC +_080186F2: + ldrb r0, [r4, #3] + cmp r0, #8 + bne _08018700 + ldrb r1, [r4, #4] + adds r0, r5, #0 + bl sub_08018738 +_08018700: + adds r4, #8 + adds r5, #1 + cmp r5, #0x64 + bls _080186F2 + pop {r4, r5, pc} + .align 2, 0 +_0801870C: .4byte gUnk_080C9CBC + + thumb_func_start sub_08018710 +sub_08018710: @ 0x08018710 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r5, #0 + ldr r4, _08018734 @ =gUnk_080C9CBC +_08018718: + ldrb r0, [r4, #3] + cmp r0, #8 + bne _0801872A + ldrb r1, [r4, #4] + cmp r6, r1 + beq _0801872A + adds r0, r5, #0 + bl sub_08018738 +_0801872A: + adds r4, #8 + adds r5, #1 + cmp r5, #0x64 + bls _08018718 + pop {r4, r5, r6, pc} + .align 2, 0 +_08018734: .4byte gUnk_080C9CBC + + thumb_func_start sub_08018738 +sub_08018738: @ 0x08018738 + push {r4, lr} + adds r2, r0, #0 + adds r4, r1, #0 + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #2 + ldr r1, _08018764 @ =gUnk_080FE320 + adds r0, r0, r1 + ldr r1, _08018768 @ =gUnk_03000BF0 + ldrh r0, [r0, #2] + ldrh r1, [r1, #4] + cmp r0, r1 + bne _08018760 + adds r0, r2, #0 + bl sub_0801E7F4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_0801876C +_08018760: + pop {r4, pc} + .align 2, 0 +_08018764: .4byte gUnk_080FE320 +_08018768: .4byte gUnk_03000BF0 + + thumb_func_start sub_0801876C +sub_0801876C: @ 0x0801876C + push {r4, r5, lr} + adds r2, r0, #0 + adds r4, r1, #0 + lsls r0, r2, #2 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r1, _08018790 @ =gUnk_080FE320 + adds r5, r0, r1 + ldrb r0, [r5] + cmp r0, #0x1c + bls _08018784 + b _080189E4 +_08018784: + lsls r0, r0, #2 + ldr r1, _08018794 @ =_08018798 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08018790: .4byte gUnk_080FE320 +_08018794: .4byte _08018798 +_08018798: @ jump table + .4byte _080189E4 @ case 0 + .4byte _08018838 @ case 1 + .4byte _0801882A @ case 2 + .4byte _08018858 @ case 3 + .4byte _08018878 @ case 4 + .4byte _08018886 @ case 5 + .4byte _0801880C @ case 6 + .4byte _08018894 @ case 7 + .4byte _080188E0 @ case 8 + .4byte _08018930 @ case 9 + .4byte _080189E4 @ case 10 + .4byte _080188FE @ case 11 + .4byte _080189E4 @ case 12 + .4byte _080189E4 @ case 13 + .4byte _080189E4 @ case 14 + .4byte _080189B4 @ case 15 + .4byte _080189E4 @ case 16 + .4byte _080189D0 @ case 17 + .4byte _080189E4 @ case 18 + .4byte _080189E4 @ case 19 + .4byte _080189E4 @ case 20 + .4byte _080189E4 @ case 21 + .4byte _080189E4 @ case 22 + .4byte _080189E4 @ case 23 + .4byte _080189A4 @ case 24 + .4byte _080188B8 @ case 25 + .4byte _080189E4 @ case 26 + .4byte _080189E4 @ case 27 + .4byte _080189E4 @ case 28 +_0801880C: + cmp r4, #0 + beq _08018812 + b _080189E4 +_08018812: + ldrh r0, [r5, #8] + lsrs r0, r0, #4 + movs r2, #0x3f + ands r0, r2 + ldrh r1, [r5, #0xa] + lsrs r1, r1, #4 + ands r1, r2 + lsls r1, r1, #6 + orrs r0, r1 + bl sub_08018AB4 + b _080189E4 +_0801882A: + cmp r4, #0 + bne _08018830 + b _080189E4 +_08018830: + adds r0, r2, #0 + bl sub_08018BB4 + b _080189E4 +_08018838: + cmp r4, #0 + bne _0801883E + b _080189E4 +_0801883E: + ldrh r0, [r5, #0x12] + bl sub_0807CC30 + cmp r0, #0 + beq _0801884A + b _080189E4 +_0801884A: + ldrb r0, [r5, #1] + lsls r0, r0, #4 + ldr r1, _08018854 @ =gUnk_080FEC28 + b _080188A4 + .align 2, 0 +_08018854: .4byte gUnk_080FEC28 +_08018858: + cmp r4, #0 + bne _0801885E + b _080189E4 +_0801885E: + ldrh r0, [r5, #0x12] + bl sub_0807CA84 + cmp r0, #0 + beq _0801886A + b _080189E4 +_0801886A: + ldrb r0, [r5, #1] + lsls r0, r0, #4 + ldr r1, _08018874 @ =gUnk_080FEBE8 + b _080188A4 + .align 2, 0 +_08018874: .4byte gUnk_080FEBE8 +_08018878: + cmp r4, #0 + beq _0801887E + b _080189E4 +_0801887E: + adds r0, r2, #0 + bl sub_08018A58 + b _080189E4 +_08018886: + cmp r4, #0 + bne _0801888C + b _080189E4 +_0801888C: + adds r0, r2, #0 + bl sub_08018B50 + b _080189E4 +_08018894: + cmp r4, #0 + beq _0801889A + b _080189E4 +_0801889A: + ldrb r0, [r5, #1] + cmp r0, #0x80 + beq _080188B0 + lsls r0, r0, #4 + ldr r1, _080188AC @ =gUnk_080FECC8 +_080188A4: + adds r0, r0, r1 + bl sub_0804ADF8 + b _080189E4 + .align 2, 0 +_080188AC: .4byte gUnk_080FECC8 +_080188B0: + adds r0, r2, #0 + bl sub_080189EC + b _080189E4 +_080188B8: + ldrb r0, [r5, #1] + lsls r0, r0, #4 + ldr r1, _080188DC @ =gUnk_080FED18 + adds r0, r0, r1 + bl sub_0804ADF8 + adds r2, r0, #0 + cmp r2, #0 + bne _080188CC + b _080189E4 +_080188CC: + rsbs r0, r4, #0 + orrs r0, r4 + asrs r0, r0, #0x1f + movs r1, #2 + ands r0, r1 + strb r0, [r2, #0xa] + b _080189E4 + .align 2, 0 +_080188DC: .4byte gUnk_080FED18 +_080188E0: + cmp r4, #0 + bne _080188E6 + b _080189E4 +_080188E6: + movs r0, #0xb4 + lsls r0, r0, #1 + ldrh r1, [r5, #8] + lsrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + ldrh r2, [r5, #0xa] + lsrs r2, r2, #4 + ands r2, r3 + lsls r2, r2, #6 + orrs r1, r2 + b _0801899C +_080188FE: + cmp r4, #0 + beq _080189E4 + ldrb r0, [r5, #1] + lsls r0, r0, #4 + ldr r1, _08018924 @ =gUnk_080FED58 + adds r0, r0, r1 + bl sub_0804ADF8 + ldr r2, _08018928 @ =gUnk_02034350 + ldrb r0, [r5, #1] + lsls r0, r0, #2 + adds r2, #0x8c + adds r2, r0, r2 + ldr r1, _0801892C @ =gUnk_080FED98 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r2] + b _080189E4 + .align 2, 0 +_08018924: .4byte gUnk_080FED58 +_08018928: .4byte gUnk_02034350 +_0801892C: .4byte gUnk_080FED98 +_08018930: + cmp r4, #0 + beq _080189E4 + ldrb r0, [r5, #1] + lsls r0, r0, #4 + ldr r1, _08018974 @ =gUnk_080FEE78 + adds r0, r0, r1 + bl sub_0804ADF8 + adds r2, r0, #0 + cmp r2, #0 + beq _08018958 + ldr r0, _08018978 @ =gUnk_03000BF0 + ldrh r1, [r0, #6] + ldrh r3, [r5, #8] + adds r1, r1, r3 + strh r1, [r2, #0x38] + ldrh r0, [r0, #8] + ldrh r1, [r5, #0xa] + adds r0, r0, r1 + strh r0, [r2, #0x3a] +_08018958: + ldrb r0, [r5, #1] + cmp r0, #0 + bne _0801897C + ldrh r1, [r5, #8] + lsrs r1, r1, #4 + movs r2, #0x3f + ands r1, r2 + ldrh r0, [r5, #0xa] + lsrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r1, r0 + movs r0, #0x8d + b _0801899C + .align 2, 0 +_08018974: .4byte gUnk_080FEE78 +_08018978: .4byte gUnk_03000BF0 +_0801897C: + ldrh r4, [r5, #8] + lsrs r4, r4, #4 + movs r1, #0x3f + ands r4, r1 + ldrh r0, [r5, #0xa] + lsrs r0, r0, #4 + ands r0, r1 + lsls r0, r0, #6 + orrs r4, r0 + subs r1, r4, #1 + movs r0, #0x8c + movs r2, #1 + bl sub_0807B314 + movs r0, #0x8e + adds r1, r4, #0 +_0801899C: + movs r2, #1 + bl sub_0807B314 + b _080189E4 +_080189A4: + cmp r4, #0 + beq _080189E4 + ldr r0, _080189B0 @ =gUnk_080FEE18 + bl sub_0804ADDC + b _080189E4 + .align 2, 0 +_080189B0: .4byte gUnk_080FEE18 +_080189B4: + cmp r4, #0 + beq _080189C4 + ldr r0, _080189C0 @ =gUnk_080FEE58 + bl sub_0804ADF8 + b _080189E4 + .align 2, 0 +_080189C0: .4byte gUnk_080FEE58 +_080189C4: + ldr r0, _080189CC @ =gUnk_080FEE48 + bl sub_0804ADF8 + b _080189E4 + .align 2, 0 +_080189CC: .4byte gUnk_080FEE48 +_080189D0: + cmp r4, #0 + beq _080189E4 + movs r0, #0x80 + lsls r0, r0, #1 + movs r1, #0x79 + bl sub_0807CC9C + ldr r0, _080189E8 @ =gUnk_080FEE38 + bl sub_0804ADDC +_080189E4: + pop {r4, r5, pc} + .align 2, 0 +_080189E8: .4byte gUnk_080FEE38 + + thumb_func_start sub_080189EC +sub_080189EC: @ 0x080189EC + push {r4, r5, r6, lr} + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _08018A48 @ =gUnk_080FE320 + adds r1, r1, r0 + ldrh r0, [r1, #8] + lsrs r6, r0, #4 + movs r2, #0x3f + ands r6, r2 + ldrh r0, [r1, #0xa] + lsrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r6, r0 + subs r6, #0x42 + movs r5, #0 +_08018A0E: + ldr r1, _08018A4C @ =0x000001DF + adds r0, r5, r1 + adds r1, r6, r5 + movs r2, #2 + bl sub_0807B314 + adds r5, #1 + cmp r5, #3 + bls _08018A0E + adds r6, #0x40 + movs r5, #0 +_08018A24: + ldr r1, _08018A50 @ =0x000001E3 + adds r0, r5, r1 + adds r4, r6, r5 + adds r1, r4, #0 + movs r2, #2 + bl sub_0807B314 + ldr r1, _08018A54 @ =0x000001DB + adds r0, r5, r1 + adds r1, r4, #0 + movs r2, #1 + bl sub_0807B314 + adds r5, #1 + cmp r5, #3 + bls _08018A24 + pop {r4, r5, r6, pc} + .align 2, 0 +_08018A48: .4byte gUnk_080FE320 +_08018A4C: .4byte 0x000001DF +_08018A50: .4byte 0x000001E3 +_08018A54: .4byte 0x000001DB + + thumb_func_start sub_08018A58 +sub_08018A58: @ 0x08018A58 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _08018AAC @ =gUnk_080FE320 + adds r1, r1, r0 + ldrh r0, [r1, #8] + lsrs r5, r0, #4 + movs r2, #0x3f + ands r5, r2 + ldrh r0, [r1, #0xa] + lsrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r5, r0 + subs r5, #0x43 + ldr r6, _08018AB0 @ =0x00000232 + movs r0, #0 +_08018A80: + movs r4, #0 + movs r1, #0x40 + adds r1, r1, r5 + mov r8, r1 + adds r7, r0, #1 +_08018A8A: + adds r0, r6, #0 + adds r6, #1 + adds r1, r5, r4 + movs r2, #1 + bl sub_0807B314 + adds r4, #1 + cmp r4, #6 + bls _08018A8A + mov r5, r8 + adds r0, r7, #0 + cmp r0, #3 + bls _08018A80 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08018AAC: .4byte gUnk_080FE320 +_08018AB0: .4byte 0x00000232 + + thumb_func_start sub_08018AB4 +sub_08018AB4: @ 0x08018AB4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + adds r5, r0, #0 + movs r3, #0xf4 + lsls r3, r3, #1 + movs r7, #0xfa + lsls r7, r7, #1 + movs r0, #0 +_08018ACA: + movs r6, #0 + movs r1, #0x40 + adds r1, r1, r5 + mov r8, r1 + adds r0, #1 + mov sb, r0 + adds r4, r5, #0 + subs r4, #0x40 +_08018ADA: + adds r0, r3, #0 + adds r3, #1 + adds r1, r5, r6 + movs r2, #1 + str r3, [sp] + bl sub_0807B314 + adds r0, r7, #0 + adds r7, #1 + adds r1, r4, #0 + movs r2, #2 + bl sub_0807B314 + adds r4, #1 + adds r6, #1 + ldr r3, [sp] + cmp r6, #3 + bls _08018ADA + mov r5, r8 + mov r0, sb + cmp r0, #2 + bls _08018ACA + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08018B10 +sub_08018B10: @ 0x08018B10 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + movs r0, #0xf8 + lsls r0, r0, #1 + mov r8, r0 + movs r7, #0xfe + lsls r7, r7, #1 + movs r5, #0 + adds r4, r6, #0 + subs r4, #0x40 +_08018B28: + mov r0, r8 + movs r1, #1 + add r8, r1 + adds r1, r6, r5 + movs r2, #1 + bl sub_0807B314 + adds r0, r7, #0 + adds r7, #1 + adds r1, r4, #0 + movs r2, #2 + bl sub_0807B314 + adds r4, #1 + adds r5, #1 + cmp r5, #3 + bls _08018B28 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08018B50 +sub_08018B50: @ 0x08018B50 + push {r4, r5, r6, r7, lr} + sub sp, #4 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _08018BAC @ =gUnk_080FE320 + adds r2, r1, r0 + ldrb r1, [r2, #1] + movs r0, #0x80 + ands r0, r1 + ldr r3, _08018BB0 @ =0x00000219 + cmp r0, #0 + bne _08018B6C + subs r3, #0x19 +_08018B6C: + ldrh r0, [r2, #8] + lsrs r5, r0, #4 + movs r1, #0x3f + ands r5, r1 + ldrh r0, [r2, #0xa] + lsrs r0, r0, #4 + ands r0, r1 + lsls r0, r0, #6 + orrs r5, r0 + subs r5, #0x82 + movs r0, #0 +_08018B82: + movs r4, #0 + adds r6, r5, #0 + adds r6, #0x40 + adds r7, r0, #1 +_08018B8A: + adds r0, r3, #0 + adds r3, #1 + adds r1, r5, r4 + movs r2, #1 + str r3, [sp] + bl sub_0807B314 + adds r4, #1 + ldr r3, [sp] + cmp r4, #4 + bls _08018B8A + adds r5, r6, #0 + adds r0, r7, #0 + cmp r0, #4 + bls _08018B82 + add sp, #4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08018BAC: .4byte gUnk_080FE320 +_08018BB0: .4byte 0x00000219 + + thumb_func_start sub_08018BB4 +sub_08018BB4: @ 0x08018BB4 + push {r4, r5, lr} + sub sp, #8 + adds r4, r0, #0 + lsls r0, r4, #3 + ldr r1, _08018C14 @ =gUnk_080FEAC8 + adds r0, r0, r1 + mov r5, sp + mov r1, sp + movs r2, #8 + bl sub_0801D66C + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #2 + ldr r1, _08018C18 @ =gUnk_080FE320 + adds r0, r0, r1 + ldrh r1, [r0, #8] + lsrs r1, r1, #4 + movs r2, #0x3f + ands r1, r2 + ldrh r0, [r0, #0xa] + lsrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r1, r0 + strh r1, [r5, #4] + mov r0, sp + bl sub_0804B3C4 + ldrb r0, [r5, #1] + bl sub_0807CBD0 + cmp r0, #0 + bne _08018C10 + ldrh r3, [r5, #4] + ldrb r1, [r5, #6] + movs r0, #1 + ands r0, r1 + movs r2, #2 + cmp r0, #0 + bne _08018C08 + movs r2, #1 +_08018C08: + movs r0, #0x73 + adds r1, r3, #0 + bl sub_0807B314 +_08018C10: + add sp, #8 + pop {r4, r5, pc} + .align 2, 0 +_08018C14: .4byte gUnk_080FEAC8 +_08018C18: .4byte gUnk_080FE320 + + thumb_func_start sub_08018C1C +sub_08018C1C: @ 0x08018C1C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + ldr r6, _08018C54 @ =0x00000185 + movs r0, #0 +_08018C28: + movs r4, #0 + movs r1, #0x40 + adds r1, r1, r5 + mov r8, r1 + adds r7, r0, #1 +_08018C32: + adds r0, r6, #0 + adds r6, #1 + adds r1, r5, r4 + movs r2, #1 + bl sub_0807B314 + adds r4, #1 + cmp r4, #4 + bls _08018C32 + mov r5, r8 + adds r0, r7, #0 + cmp r0, #3 + bls _08018C28 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08018C54: .4byte 0x00000185 + + thumb_func_start sub_08018C58 +sub_08018C58: @ 0x08018C58 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #0 +_08018C5E: + movs r1, #0x98 + lsls r1, r1, #2 + adds r0, r5, r1 + adds r1, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _08018C84 @ =0x00000261 + adds r0, r5, r1 + adds r1, r4, #1 + movs r2, #1 + bl sub_0807B314 + adds r5, #2 + adds r4, #0x40 + cmp r5, #5 + bls _08018C5E + pop {r4, r5, pc} + .align 2, 0 +_08018C84: .4byte 0x00000261 + + thumb_func_start sub_08018C88 +sub_08018C88: @ 0x08018C88 + push {lr} + adds r2, r0, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _08018CB4 + adds r1, r2, #0 + adds r1, #0x3d + movs r0, #0 + strb r0, [r1] + ldr r1, _08018CB0 @ =gUnk_080B3DD0 + ldrb r0, [r2, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r2, #0 + bl _call_via_r1 + b _08018CB8 + .align 2, 0 +_08018CB0: .4byte gUnk_080B3DD0 +_08018CB4: + bl sub_0805E780 +_08018CB8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08018CBC +sub_08018CBC: @ 0x08018CBC + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x84 + ldr r5, _08018D50 @ =gUnk_03001160 + ldr r0, [r5, #0x2c] + str r0, [r4, #0x2c] + str r0, [r1] + subs r1, #4 + ldr r0, [r5, #0x30] + str r0, [r4, #0x30] + str r0, [r1] + ldrb r1, [r5, #0x14] + movs r0, #0xe + ands r0, r1 + strb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x96 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x3c + ldrb r0, [r0] + adds r0, #1 + movs r2, #0x80 + rsbs r2, r2, #0 + adds r1, r2, #0 + adds r2, r4, #0 + adds r2, #0x3c + orrs r0, r1 + strb r0, [r2] + adds r0, r5, #0 + adds r0, #0x3b + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x3b + strb r0, [r1] + ldr r6, [r4, #0x54] + cmp r6, #0 + beq _08018D58 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #0x56 + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x40 + movs r0, #0x1c + strb r0, [r1] + adds r1, #4 + movs r0, #6 + strb r0, [r1] + ldr r0, _08018D54 @ =gUnk_080B3E18 + str r0, [r4, #0x48] + ldr r0, [r4, #0x54] + adds r0, #0x62 + movs r1, #0 + strb r1, [r0] + ldr r2, [r4, #0x54] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x18] + b _08018DD2 + .align 2, 0 +_08018D50: .4byte gUnk_03001160 +_08018D54: .4byte gUnk_080B3E18 +_08018D58: + ldr r7, _08018DDC @ =gUnk_03003F80 + ldrb r0, [r7, #0x1c] + cmp r0, #0 + bne _08018D64 + bl sub_0805E780 +_08018D64: + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #6 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #0xa6 + strh r0, [r4, #0x12] + movs r0, #0x33 + strb r0, [r4, #0x1a] + adds r0, r4, #0 + adds r0, #0x60 + strh r6, [r0] + ldrb r0, [r7, #0x1d] + subs r0, #1 + strb r0, [r4, #0xa] + ldr r1, _08018DE0 @ =gUnk_080B3DE0 + ldrb r0, [r4, #0xa] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xa] + lsls r0, r0, #1 + adds r0, #1 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x44 + strb r1, [r0] + adds r1, r4, #0 + adds r1, #0x40 + movs r0, #0x1b + strb r0, [r1] + ldr r1, _08018DE4 @ =gUnk_080B3DE8 + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r4, #0x48] + str r4, [r5, #0x70] + adds r0, r5, #0 + bl sub_08078CD0 + str r6, [r5, #0x70] + ldrb r1, [r4, #0xa] + adds r1, #0xa + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08018FA0 +_08018DD2: + adds r0, r4, #0 + bl sub_0801766C + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08018DDC: .4byte gUnk_03003F80 +_08018DE0: .4byte gUnk_080B3DE0 +_08018DE4: .4byte gUnk_080B3DE8 + + thumb_func_start sub_08018DE8 +sub_08018DE8: @ 0x08018DE8 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x54] + adds r0, #0x3a + ldrb r1, [r0] + movs r5, #4 + adds r0, r5, #0 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _08018E08 + ldr r0, _08018E18 @ =gUnk_03003F80 + strb r1, [r0, #0x1c] + bl sub_0805E780 +_08018E08: + ldr r0, _08018E18 @ =gUnk_03003F80 + ldrb r0, [r0, #0x1c] + cmp r0, #0 + beq _08018E1C + cmp r0, #5 + beq _08018E24 + b _08018E5A + .align 2, 0 +_08018E18: .4byte gUnk_03003F80 +_08018E1C: + adds r0, r4, #0 + bl sub_08018F6C + b _08018E5A +_08018E24: + ldr r0, [r4, #0x54] + strb r5, [r0, #0xd] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r2, #2 + movs r0, #2 + strb r0, [r4, #0xc] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r1, [r3] + subs r0, #0xa + ands r0, r1 + orrs r0, r2 + strb r0, [r3] + ldr r2, [r4, #0x54] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + adds r0, r4, #0 + bl sub_08018FA0 +_08018E5A: + ldr r0, _08018E64 @ =gUnk_03001160 + bl sub_08078CD0 + pop {r4, r5, pc} + .align 2, 0 +_08018E64: .4byte gUnk_03001160 + + thumb_func_start sub_08018E68 +sub_08018E68: @ 0x08018E68 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x54] + cmp r0, #0 + bne _08018E82 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + movs r1, #5 + bl sub_08008790 + b _08018EA8 +_08018E82: + adds r0, #0x3a + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _08018E92 + bl sub_0805E780 +_08018E92: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08018EA8 + adds r0, r4, #0 + bl sub_08018F6C + b _08018F62 +_08018EA8: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _08018F46 + adds r0, r4, #0 + bl sub_0806F69C + ldrb r0, [r4, #0x15] + cmp r0, #8 + beq _08018EEA + cmp r0, #8 + bgt _08018ECC + cmp r0, #0 + beq _08018ED6 + b _08018EEE +_08018ECC: + cmp r0, #0x10 + beq _08018EDE + cmp r0, #0x18 + beq _08018EE4 + b _08018EEE +_08018ED6: + movs r6, #0 + movs r5, #4 + rsbs r5, r5, #0 + b _08018EEE +_08018EDE: + movs r6, #0 + movs r5, #4 + b _08018EEE +_08018EE4: + movs r6, #4 + rsbs r6, r6, #0 + b _08018EEC +_08018EEA: + movs r6, #4 +_08018EEC: + movs r5, #0 +_08018EEE: + ldr r1, [r4, #0x54] + cmp r1, #0 + beq _08018F00 + ldrb r0, [r4, #0x15] + strb r0, [r1, #0x15] + ldr r1, [r4, #0x54] + adds r0, r4, #0 + bl sub_0806FA24 +_08018F00: + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _08018F0C + adds r0, r4, #0 + bl sub_0800451C +_08018F0C: + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r5, #0 + bl sub_0800029C + ldr r1, _08018F64 @ =gUnk_080B3DF4 + bl sub_08007DD6 + cmp r0, #0 + bne _08018F62 + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r5, #0 + bl sub_080002B4 + cmp r0, #0x74 + beq _08018F62 + ldr r1, _08018F68 @ =gUnk_08003E44 + movs r0, #0x2e + ldrsh r2, [r4, r0] + adds r2, r2, r6 + movs r0, #0x32 + ldrsh r3, [r4, r0] + adds r3, r3, r5 + adds r0, r4, #0 + bl sub_080040D8 + cmp r0, #0 + beq _08018F62 +_08018F46: + ldr r0, [r4, #0x54] + cmp r0, #0 + bne _08018F56 + ldrb r1, [r4, #0xa] + adds r1, #0xd + adds r0, r4, #0 + bl sub_08004260 +_08018F56: + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_08018F6C +_08018F62: + pop {r4, r5, r6, pc} + .align 2, 0 +_08018F64: .4byte gUnk_080B3DF4 +_08018F68: .4byte gUnk_08003E44 + + thumb_func_start sub_08018F6C +sub_08018F6C: @ 0x08018F6C + push {r4, lr} + adds r4, r0, #0 + ldr r1, [r4, #0x54] + cmp r1, #0 + beq _08018F8A + movs r0, #5 + strb r0, [r1, #0xd] + ldr r2, [r4, #0x54] + ldrb r1, [r2, #0x18] + subs r0, #9 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + b _08018F9A +_08018F8A: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #0 + beq _08018F9E +_08018F9A: + bl sub_0805E780 +_08018F9E: + pop {r4, pc} + + thumb_func_start sub_08018FA0 +sub_08018FA0: @ 0x08018FA0 + push {lr} + adds r2, r0, #0 + ldr r0, _08018FC8 @ =gUnk_03001160 + adds r0, #0x38 + ldrb r0, [r0] + adds r1, r2, #0 + adds r1, #0x38 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _08018FBC + movs r0, #1 + strb r0, [r2, #0xb] +_08018FBC: + ldrb r0, [r2, #0xa] + adds r0, #0xea + bl sub_080A3268 + pop {pc} + .align 2, 0 +_08018FC8: .4byte gUnk_03001160 + + thumb_func_start sub_08018FCC +sub_08018FCC: @ 0x08018FCC + push {lr} + ldr r2, _08018FE0 @ =gUnk_080B3E30 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08018FE0: .4byte gUnk_080B3E30 + + thumb_func_start sub_08018FE4 +sub_08018FE4: @ 0x08018FE4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r3, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r5, [r4, #0xa] + cmp r5, #0 + bne _08018FF6 + b _080190FC +_08018FF6: + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r3 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r0, #0x6a + str r0, [r4, #0x74] + ldrb r0, [r4, #0xb] + adds r1, r4, #0 + adds r1, #0x40 + strb r0, [r1] + movs r0, #0xa6 + strh r0, [r4, #0x12] + ldrb r0, [r1] + adds r6, r1, #0 + cmp r0, #0xe + bne _08019026 + movs r0, #0x80 + lsls r0, r0, #3 + b _0801902A +_08019026: + movs r0, #0xc0 + lsls r0, r0, #2 +_0801902A: + strh r0, [r4, #0x24] + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] + ldr r2, _0801905C @ =gUnk_03001160 + adds r0, r2, #0 + adds r0, #0x3c + ldrb r0, [r0] + adds r0, #1 + adds r1, r4, #0 + adds r1, #0x3c + strb r0, [r1] + adds r0, r2, #0 + adds r0, #0x3b + ldrb r0, [r0] + subs r1, #1 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r0, [r0] + adds r5, r2, #0 + cmp r0, #2 + bne _08019060 + movs r0, #1 + b _08019062 + .align 2, 0 +_0801905C: .4byte gUnk_03001160 +_08019060: + movs r0, #0 +_08019062: + strb r0, [r4, #0xb] + ldrb r1, [r5, #0x1b] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r4, #0x1b] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + lsls r3, r0, #1 + adds r3, r3, r0 + lsls r3, r3, #2 + ldr r0, _080190F8 @ =gUnk_080B3E40 + adds r3, r3, r0 + movs r0, #0 + ldrsb r0, [r3, r0] + ldrh r1, [r5, #0x2e] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + movs r0, #1 + ldrsb r0, [r3, r0] + ldrh r5, [r5, #0x32] + adds r0, r0, r5 + strh r0, [r4, #0x32] + ldrb r1, [r3, #2] + movs r0, #1 + ands r1, r0 + lsls r1, r1, #6 + ldrb r2, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r3, #3] + lsls r1, r1, #7 + movs r2, #0x7f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r0, [r3, #6] + adds r5, r4, #0 + adds r5, #0x58 + strb r0, [r5] + movs r0, #4 + ldrsb r0, [r3, r0] + str r0, [r4, #0x6c] + movs r0, #5 + ldrsb r0, [r3, r0] + str r0, [r4, #0x70] + ldr r0, [r3, #8] + str r0, [r4, #0x48] + adds r0, r4, #0 + bl sub_0801766C + ldrb r0, [r6] + cmp r0, #0xe + bne _080190E8 + ldrb r0, [r5] + adds r0, #6 + strb r0, [r5] + adds r1, r4, #0 + adds r1, #0x60 + movs r0, #0 + strh r0, [r1] +_080190E8: + ldrb r1, [r5] + adds r0, r4, #0 + bl sub_08004260 + movs r0, #0xfc + bl sub_080A3268 + b _08019178 + .align 2, 0 +_080190F8: .4byte gUnk_080B3E40 +_080190FC: + ldrb r1, [r4, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r4, #0x11] + movs r0, #0xff + strb r0, [r4, #0x1e] + ldr r2, _08019168 @ =gUnk_080B3E40 + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #2] + ands r1, r3 + lsls r1, r1, #6 + ldrb r2, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldr r0, _0801916C @ =gUnk_03003F80 + str r4, [r0, #0x2c] + adds r0, r4, #0 + movs r1, #1 + movs r2, #3 + bl sub_080AE008 + adds r0, r4, #0 + bl sub_08079BD8 + adds r0, r4, #0 + adds r0, #0x68 + ldrb r0, [r0] + cmp r0, #0xa + bne _08019170 + movs r0, #0x3c + str r0, [r4, #0x78] + ldrb r1, [r4, #0xa] + movs r0, #0x43 + movs r2, #1 + bl sub_080A2960 + adds r1, r0, #0 + cmp r1, #0 + beq _08019172 + adds r0, r4, #0 + bl sub_0806FA24 + b _08019172 + .align 2, 0 +_08019168: .4byte gUnk_080B3E40 +_0801916C: .4byte gUnk_03003F80 +_08019170: + str r5, [r4, #0x78] +_08019172: + adds r0, r4, #0 + bl sub_0801917C +_08019178: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0801917C +sub_0801917C: @ 0x0801917C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r2, [r4, #0xa] + cmp r2, #0 + bne _08019188 + b _0801934A +_08019188: + ldr r0, [r4, #0x74] + subs r0, #1 + str r0, [r4, #0x74] + cmp r0, #0 + bne _0801919C + adds r0, r4, #0 + bl sub_08019468 + bl sub_0805E780 +_0801919C: + adds r0, r4, #0 + bl sub_08004274 + ldr r0, [r4, #0x74] + cmp r0, #0x17 + bhi _080191BA + ldrb r2, [r4, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] +_080191BA: + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + adds r0, #0x40 + ldrb r1, [r0] + movs r5, #4 + adds r6, r0, #0 + cmp r1, #0xe + bne _080191D0 + movs r5, #1 +_080191D0: + ldr r2, [r4, #0x6c] + ldr r3, [r4, #0x70] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08008782 + cmp r0, #0 + beq _080191EE + ldrb r0, [r6] + cmp r0, #0xe + beq _080191EA + bl sub_0805E780 +_080191EA: + movs r7, #1 + b _080191F0 +_080191EE: + movs r7, #0 +_080191F0: + ldrb r0, [r6] + cmp r0, #0xe + bne _0801920E + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _0801920E + adds r0, r4, #0 + movs r1, #0x14 + movs r2, #0 + bl sub_080A29AC +_0801920E: + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _0801921A + adds r0, r4, #0 + bl sub_0800451C +_0801921A: + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _08019288 @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r5, #0x32 + ldrsh r1, [r4, r5] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + ldr r1, _0801928C @ =gUnk_03001160 + adds r1, #0x38 + ldrb r1, [r1] + movs r2, #0x80 + bl sub_080002F0 + cmp r0, #0 + bne _080192D0 + cmp r7, #0 + bne _080192D0 + ldr r1, _08019290 @ =gUnk_08003E44 + movs r0, #0x2e + ldrsh r2, [r4, r0] + movs r5, #0x32 + ldrsh r3, [r4, r5] + adds r0, r4, #0 + bl sub_080040D8 + cmp r0, #0 + beq _080192D0 + movs r0, #0x1e + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r6] + cmp r0, #0xe + bne _08019294 + adds r0, r4, #0 + bl sub_08019468 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] + adds r1, #0xf + adds r0, r4, #0 + bl sub_08004260 + b _080192A2 + .align 2, 0 +_08019288: .4byte gUnk_03000BF0 +_0801928C: .4byte gUnk_03001160 +_08019290: .4byte gUnk_08003E44 +_08019294: + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] + adds r1, #2 + adds r0, r4, #0 + bl sub_08004260 +_080192A2: + adds r0, r4, #0 + bl sub_08017744 + ldrb r0, [r4, #0x10] + movs r1, #0x7f + ands r1, r0 + movs r0, #0 + strb r1, [r4, #0x10] + strh r0, [r4, #0x24] + ldr r0, [r4, #0x2c] + cmp r0, #0 + bge _080192BC + movs r0, #0 +_080192BC: + str r0, [r4, #0x2c] + ldr r0, [r4, #0x30] + cmp r0, #0 + bge _080192C6 + movs r0, #0 +_080192C6: + str r0, [r4, #0x30] + movs r0, #0xc5 + lsls r0, r0, #1 + bl sub_080A3268 +_080192D0: + adds r5, r4, #0 + adds r5, #0x41 + ldrb r0, [r5] + cmp r0, #0 + bne _080192DC + b _08019402 +_080192DC: + cmp r7, #0 + beq _080192E2 + b _08019402 +_080192E2: + ldrb r0, [r6] + cmp r0, #0xe + bne _080192EE + adds r0, r4, #0 + bl sub_08019468 +_080192EE: + adds r0, r4, #0 + bl sub_08017744 + ldrb r1, [r5] + movs r0, #0x3f + ands r0, r1 + cmp r0, #0x42 + bne _08019336 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0x15] + movs r1, #0x10 + eors r0, r1 + strb r0, [r4, #0x15] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + movs r0, #0x80 + lsls r0, r0, #8 + str r0, [r4, #0x20] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #6 + bl sub_08004260 + b _08019402 +_08019336: + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #1 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + strb r0, [r4, #0x18] + b _08019402 +_0801934A: + ldr r1, _0801938C @ =gUnk_03003F80 + ldr r0, [r1, #0x2c] + cmp r0, r4 + bne _0801935E + adds r0, r1, #0 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #0 + bne _08019368 + str r0, [r1, #0x2c] +_0801935E: + adds r0, r1, #0 + adds r0, #0x21 + strb r2, [r0] + bl sub_0805E780 +_08019368: + adds r0, r4, #0 + adds r0, #0x68 + ldrb r0, [r0] + cmp r0, #0xa + bne _08019398 + ldr r0, _0801938C @ =gUnk_03003F80 + adds r2, r0, #0 + adds r2, #0x21 + ldrb r0, [r2] + adds r1, r0, #0 + cmp r1, #0 + beq _08019398 + cmp r1, #0x77 + bhi _08019390 + adds r0, #1 + strb r0, [r2] + b _08019398 + .align 2, 0 +_0801938C: .4byte gUnk_03003F80 +_08019390: + adds r1, r4, #0 + adds r1, #0x40 + movs r0, #0xe + strb r0, [r1] +_08019398: + ldr r0, _08019404 @ =gUnk_02002A40 + adds r0, #0xad + ldrb r5, [r0] + ldrb r1, [r4, #0x1e] + ldr r2, [r4, #0x78] + subs r1, r1, r2 + ldr r0, _08019408 @ =gUnk_03001160 + ldrb r0, [r0, #0x1e] + cmp r1, r0 + beq _080193C2 + adds r0, r0, r2 + strb r0, [r4, #0x1e] + cmp r5, #0 + bne _080193B8 + adds r0, #0x2a + strb r0, [r4, #0x1e] +_080193B8: + ldrb r1, [r4, #0x1e] + ldrh r2, [r4, #0x12] + adds r0, r4, #0 + bl sub_080042D0 +_080193C2: + ldr r0, _08019408 @ =gUnk_03001160 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080193FA + cmp r5, #0 + beq _080193FA + adds r0, r4, #0 + adds r0, #0x40 + ldrb r2, [r0] + movs r0, #4 + movs r1, #1 + movs r3, #9 + bl sub_08077CB8 + cmp r0, #0 + beq _080193FA + ldr r2, _0801940C @ =gUnk_03003F80 + ldrb r1, [r2, #4] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #4] + movs r0, #1 + rsbs r0, r0, #0 + bl sub_08054330 +_080193FA: + ldr r1, _08019408 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_08078E84 +_08019402: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08019404: .4byte gUnk_02002A40 +_08019408: .4byte gUnk_03001160 +_0801940C: .4byte gUnk_03003F80 + + thumb_func_start sub_08019410 +sub_08019410: @ 0x08019410 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0xe + bhi _08019428 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08004260 + b _0801942E +_08019428: + adds r0, r4, #0 + bl sub_08004274 +_0801942E: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08019440 + bl sub_0805E780 +_08019440: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08019444 +sub_08019444: @ 0x08019444 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0806F69C + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08019464 + bl sub_0805E780 +_08019464: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08019468 +sub_08019468: @ 0x08019468 + push {lr} + adds r1, r0, #0 + adds r0, #0x40 + ldrb r0, [r0] + cmp r0, #0xe + bne _0801947E + adds r0, r1, #0 + movs r1, #0x50 + movs r2, #0 + bl sub_080A29AC +_0801947E: + pop {pc} + + thumb_func_start sub_08019480 +sub_08019480: @ 0x08019480 + push {lr} + ldr r2, _08019494 @ =gUnk_080B43F4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08019494: .4byte gUnk_080B43F4 + + thumb_func_start sub_08019498 +sub_08019498: @ 0x08019498 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _08019504 @ =gUnk_03001160 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FA24 + ldrb r0, [r5, #0xc] + adds r0, #1 + movs r2, #0 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #0x18] + adds r4, #0x3c + ldrb r0, [r4] + adds r0, #1 + adds r1, r5, #0 + adds r1, #0x3c + strb r0, [r1] + ldr r0, _08019508 @ =gUnk_080B4408 + str r0, [r5, #0x48] + movs r0, #0xe0 + lsls r0, r0, #2 + strh r0, [r5, #0x24] + movs r0, #2 + str r0, [r5, #0x74] + str r2, [r5, #0x70] + adds r0, r5, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #2 + bne _080194E6 + movs r0, #1 + strb r0, [r5, #0xb] +_080194E6: + ldrb r0, [r5, #0x14] + lsls r0, r0, #2 + strb r0, [r5, #0x15] + movs r0, #0x3c + str r0, [r5, #0x6c] + ldrb r0, [r5, #0x14] + adds r2, r0, #0 + cmp r0, #2 + beq _08019534 + cmp r0, #2 + bgt _0801950C + cmp r0, #0 + beq _08019516 + b _0801954E + .align 2, 0 +_08019504: .4byte gUnk_03001160 +_08019508: .4byte gUnk_080B4408 +_0801950C: + cmp r0, #4 + beq _0801952C + cmp r0, #6 + beq _08019542 + b _0801954E +_08019516: + ldrh r0, [r5, #0x2e] + subs r0, #3 + strh r0, [r5, #0x2e] + ldrh r0, [r5, #0x32] + subs r0, #8 + strh r0, [r5, #0x32] + ldrb r0, [r5, #0x18] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r5, #0x18] + b _0801954E +_0801952C: + ldrh r0, [r5, #0x2e] + adds r0, #2 + strh r0, [r5, #0x2e] + b _0801954E +_08019534: + ldrb r0, [r5, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r5, #0x18] + ldrh r0, [r5, #0x2e] + adds r0, #1 + b _08019546 +_08019542: + ldrh r0, [r5, #0x2e] + subs r0, #1 +_08019546: + strh r0, [r5, #0x2e] + ldrh r0, [r5, #0x32] + subs r0, #4 + strh r0, [r5, #0x32] +_0801954E: + ldr r1, _08019578 @ =gUnk_080B43FC + lsrs r0, r2, #1 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r5, #0 + bl sub_08004260 + adds r0, r5, #0 + bl sub_0801766C + adds r0, r5, #0 + bl sub_0806F69C + adds r0, r5, #0 + bl sub_08019580 + ldr r0, _0801957C @ =0x0000013F + bl sub_080A3268 + pop {r4, r5, pc} + .align 2, 0 +_08019578: .4byte gUnk_080B43FC +_0801957C: .4byte 0x0000013F + + thumb_func_start sub_08019580 +sub_08019580: @ 0x08019580 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x6c] + subs r0, #1 + str r0, [r4, #0x6c] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _08019638 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _080195B0 + adds r0, r4, #0 + bl sub_0800451C +_080195B0: + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _0801962C @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r5, #0x32 + ldrsh r1, [r4, r5] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + ldr r1, _08019630 @ =gUnk_03001160 + adds r1, #0x38 + ldrb r1, [r1] + movs r2, #0x80 + bl sub_080002F0 + cmp r0, #0 + bne _08019602 + ldr r1, _08019634 @ =gUnk_08003E44 + movs r0, #0x2e + ldrsh r2, [r4, r0] + movs r5, #0x32 + ldrsh r3, [r4, r5] + adds r0, r4, #0 + bl sub_080040D8 + cmp r0, #0 + beq _08019602 + adds r0, r4, #0 + movs r1, #0x19 + movs r2, #0 + bl sub_080A29AC + bl sub_0805E780 +_08019602: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0 + beq _0801961A + adds r0, r4, #0 + movs r1, #0x19 + movs r2, #0 + bl sub_080A29AC + bl sub_0805E780 +_0801961A: + adds r0, r4, #0 + movs r1, #0xc + bl sub_08008790 + cmp r0, #0 + beq _0801963C + bl sub_0805E780 + b _0801963C + .align 2, 0 +_0801962C: .4byte gUnk_03000BF0 +_08019630: .4byte gUnk_03001160 +_08019634: .4byte gUnk_08003E44 +_08019638: + bl sub_0805E780 +_0801963C: + adds r0, r4, #0 + bl sub_08019644 + pop {r4, r5, pc} + + thumb_func_start sub_08019644 +sub_08019644: @ 0x08019644 + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x74] + subs r1, r0, #1 + str r1, [r2, #0x74] + cmp r1, #0 + bne _08019674 + movs r0, #2 + str r0, [r2, #0x74] + ldr r0, [r2, #0x70] + adds r0, #1 + str r0, [r2, #0x70] + ldr r3, _08019678 @ =gUnk_080B4400 + adds r0, r0, r3 + ldrb r0, [r0] + cmp r0, #0xff + bne _08019668 + str r1, [r2, #0x70] +_08019668: + ldr r0, [r2, #0x70] + adds r0, r0, r3 + ldrb r1, [r0] + adds r0, r2, #0 + bl sub_0801D2B4 +_08019674: + pop {pc} + .align 2, 0 +_08019678: .4byte gUnk_080B4400 + + thumb_func_start sub_0801967C +sub_0801967C: @ 0x0801967C + push {lr} + ldr r1, _08019690 @ =gUnk_080B4458 + ldr r0, _08019694 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08019690: .4byte gUnk_080B4458 +_08019694: .4byte gUnk_02000080 + + thumb_func_start sub_08019698 +sub_08019698: @ 0x08019698 + push {r4, r5, lr} + ldr r0, _08019724 @ =gUnk_02032EC0 + ldrb r1, [r0, #3] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #1 + ldr r1, _08019728 @ =gUnk_080B4410 + adds r4, r0, r1 + movs r0, #0x80 + lsls r0, r0, #1 + ldrh r1, [r4, #4] + bl sub_0807CC9C + ldrh r0, [r4] + ldrh r1, [r4, #2] + bl sub_08052FD8 + ldr r5, _0801972C @ =gUnk_03000BF0 + ldrh r0, [r4, #6] + ldrh r1, [r5, #0xa] + adds r0, r0, r1 + strh r0, [r5, #0xa] + ldrh r0, [r4, #8] + ldrh r2, [r5, #0xc] + adds r0, r0, r2 + strh r0, [r5, #0xc] + ldr r1, _08019730 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + bl sub_08000108 + ldr r2, _08019734 @ =gUnk_03000F50 + ldrh r1, [r2] + ldr r0, _08019738 @ =0x0000FEFF + ands r0, r1 + strh r0, [r2] + movs r0, #0x2c + movs r1, #0 + movs r2, #0 + bl sub_080A2960 + adds r1, r0, #0 + cmp r1, #0 + beq _08019700 + ldrh r0, [r4, #0xa] + ldrh r2, [r5, #0xa] + adds r0, r0, r2 + strh r0, [r1, #0x2e] + ldrh r0, [r4, #0xc] + ldrh r5, [r5, #0xc] + adds r0, r0, r5 + strh r0, [r1, #0x32] +_08019700: + movs r0, #0x11 + bl sub_0801D7EC + bl sub_080AD90C + bl sub_080AD9B0 + bl sub_080AD918 + movs r0, #4 + movs r1, #8 + bl sub_08050054 + ldr r1, _0801973C @ =gUnk_02018EB0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + pop {r4, r5, pc} + .align 2, 0 +_08019724: .4byte gUnk_02032EC0 +_08019728: .4byte gUnk_080B4410 +_0801972C: .4byte gUnk_03000BF0 +_08019730: .4byte gUnk_02000070 +_08019734: .4byte gUnk_03000F50 +_08019738: .4byte 0x0000FEFF +_0801973C: .4byte gUnk_02018EB0 + + thumb_func_start sub_08019740 +sub_08019740: @ 0x08019740 + push {lr} + ldr r0, _0801975C @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08019758 + ldr r0, _08019760 @ =gUnk_02018EB0 + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + movs r1, #0xc3 + lsls r1, r1, #1 + strh r1, [r0, #4] +_08019758: + pop {pc} + .align 2, 0 +_0801975C: .4byte gUnk_03000FD0 +_08019760: .4byte gUnk_02018EB0 + + thumb_func_start sub_08019764 +sub_08019764: @ 0x08019764 + push {lr} + bl sub_080AD90C + bl sub_0805E5C0 + bl sub_080AD9B0 + bl sub_080AD918 + ldr r2, _08019798 @ =gUnk_02018EB0 + ldrh r0, [r2, #4] + subs r0, #1 + strh r0, [r2, #4] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08019790 + ldr r0, _0801979C @ =gUnk_03000FF0 + ldrh r1, [r0, #2] + movs r0, #0xa + ands r0, r1 + cmp r0, #0 + beq _08019796 +_08019790: + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] +_08019796: + pop {pc} + .align 2, 0 +_08019798: .4byte gUnk_02018EB0 +_0801979C: .4byte gUnk_03000FF0 + + thumb_func_start sub_080197A0 +sub_080197A0: @ 0x080197A0 + push {lr} + movs r0, #2 + movs r1, #0xb + bl sub_080A7138 + pop {pc} + + thumb_func_start sub_080197AC +sub_080197AC: @ 0x080197AC + ldr r0, _080197C4 @ =gUnk_02025EB0 + ldr r1, _080197C8 @ =gUnk_03000F70 + str r1, [r0] + ldr r2, _080197CC @ =gUnk_080B77C0 + ldrh r0, [r2] + strh r0, [r1] + ldr r0, _080197D0 @ =gUnk_0200B650 + subs r1, #0xc + str r1, [r0] + ldrh r0, [r2, #2] + strh r0, [r1] + bx lr + .align 2, 0 +_080197C4: .4byte gUnk_02025EB0 +_080197C8: .4byte gUnk_03000F70 +_080197CC: .4byte gUnk_080B77C0 +_080197D0: .4byte gUnk_0200B650 + + thumb_func_start sub_080197D4 +sub_080197D4: @ 0x080197D4 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #0x80 + lsls r5, r5, #0x18 +_080197DC: + ldr r3, [r4, #4] + cmp r3, #0 + beq _08019824 + ldr r1, [r4] + ldr r0, _08019808 @ =0x7FFFFFFF + ands r1, r0 + ldr r0, _0801980C @ =gUnk_08324AE4 + adds r1, r1, r0 + ldr r2, [r4, #8] + adds r0, r2, #0 + ands r0, r5 + cmp r0, #0 + beq _0801981A + lsrs r0, r3, #0x18 + cmp r0, #6 + bne _08019810 + adds r0, r1, #0 + adds r1, r3, #0 + bl LZ77UnCompVram + b _0801982E + .align 2, 0 +_08019808: .4byte 0x7FFFFFFF +_0801980C: .4byte gUnk_08324AE4 +_08019810: + adds r0, r1, #0 + adds r1, r3, #0 + bl LZ77UnCompWram + b _0801982E +_0801981A: + adds r0, r1, #0 + adds r1, r3, #0 + bl sub_0801D66C + b _0801982E +_08019824: + ldrh r0, [r4] + bl sub_0801D714 + bl sub_080533CC +_0801982E: + adds r4, #0xc + adds r0, r4, #0 + subs r0, #0xc + ldr r0, [r0] + ands r0, r5 + cmp r0, #0 + bne _080197DC + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08019840 +sub_08019840: @ 0x08019840 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r0, _0801985C @ =gUnk_03003F80 + adds r2, r0, #0 + adds r2, #0xa8 + ldrb r1, [r2] + adds r7, r0, #0 + cmp r1, #0 + bne _08019860 + adds r0, #0xa9 + ldrb r0, [r0] + b _08019862 + .align 2, 0 +_0801985C: .4byte gUnk_03003F80 +_08019860: + ldrb r0, [r2] +_08019862: + cmp r0, #0x12 + bne _0801986A + bl _0801A2A4 +_0801986A: + cmp r0, #0x12 + bgt _08019878 + cmp r0, #3 + bne _08019876 + bl _0801A2A4 +_08019876: + b _08019880 +_08019878: + cmp r0, #0x16 + bne _08019880 + bl _0801A2A4 +_08019880: + ldrb r0, [r7, #0x1e] + ldr r1, _08019898 @ =gUnk_03001160 + mov sb, r1 + cmp r0, #0 + bne _08019890 + ldrb r0, [r1, #0xc] + cmp r0, #0x1d + bne _0801989C +_08019890: + mov r2, sb + ldrb r4, [r2, #0x15] + b _0801989E + .align 2, 0 +_08019898: .4byte gUnk_03001160 +_0801989C: + ldrb r4, [r7, #0xd] +_0801989E: + movs r0, #0x83 + ands r0, r4 + cmp r0, #0 + bne _0801997C + ldrb r0, [r7, #0xa] + cmp r0, #0 + bne _0801997C + lsrs r1, r4, #2 + mov r0, sb + bl sub_0807BDB8 + adds r4, r0, #0 + cmp r4, #0xff + beq _0801997C + ldr r5, _08019960 @ =gUnk_03000BF0 + ldrb r1, [r5, #0xf] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _0801997C + lsls r1, r4, #2 + ldr r0, _08019964 @ =gUnk_080B4490 + adds r6, r1, r0 + mov r3, sb + movs r1, #0x2e + ldrsh r0, [r3, r1] + movs r2, #0 + ldrsh r1, [r6, r2] + adds r0, r0, r1 + ldrh r1, [r5, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + mov r1, sb + movs r2, #0x32 + ldrsh r1, [r1, r2] + mov r8, r1 + movs r1, #2 + ldrsh r6, [r6, r1] + mov r2, r8 + adds r1, r2, r6 + ldrh r2, [r5, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + mov r1, sb + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002E0 + cmp r0, #0xff + bne _0801997C + ldr r0, [r7, #0x30] + ldr r1, _08019968 @ =0x00010002 + ands r0, r1 + cmp r0, #0 + bne _0801995A + ldrb r1, [r7, #0x1b] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + bne _0801995A + mov r3, sb + movs r1, #0x2e + ldrsh r0, [r3, r1] + ldrh r1, [r5, #6] + subs r0, r0, r1 + movs r2, #0x32 + ldrsh r1, [r3, r2] + ldrh r2, [r5, #8] + subs r1, r1, r2 + adds r2, r4, #0 + movs r3, #5 + bl sub_080806BC + cmp r0, #0 + bne _0801996C + ldrb r0, [r7, #5] + cmp r0, #0 + bne _0801995A + ldrb r1, [r7, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _0801995A + mov r0, sb + adds r1, r4, #0 + bl sub_0807BD14 + cmp r0, #0 + bne _0801996C +_0801995A: + movs r0, #3 + bl _0801A2A6 + .align 2, 0 +_08019960: .4byte gUnk_03000BF0 +_08019964: .4byte gUnk_080B4490 +_08019968: .4byte 0x00010002 +_0801996C: + ldr r1, _08019978 @ =gUnk_03001160 + lsls r0, r4, #3 + strb r0, [r1, #0x15] + movs r0, #0xf + bl _0801A2A6 + .align 2, 0 +_08019978: .4byte gUnk_03001160 +_0801997C: + ldr r4, _080199DC @ =gUnk_03001160 + adds r5, r4, #0 + adds r5, #0x38 + ldrb r0, [r5] + bl sub_0808094C + mov r8, r0 + ldrb r1, [r4, #0x14] + movs r0, #6 + ands r0, r1 + lsls r0, r0, #1 + ldr r1, _080199E0 @ =gUnk_080B4468 + adds r6, r0, r1 + movs r3, #0x2e + ldrsh r0, [r4, r3] + movs r2, #0 + ldrsh r1, [r6, r2] + adds r0, r0, r1 + ldr r3, _080199E4 @ =gUnk_03000BF0 + ldrh r1, [r3, #6] + subs r0, r0, r1 + asrs r7, r0, #4 + movs r2, #0x3f + ands r7, r2 + movs r1, #0x32 + ldrsh r0, [r4, r1] + movs r4, #2 + ldrsh r1, [r6, r4] + adds r0, r0, r1 + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r7, r0 + ldrb r1, [r5] + adds r0, r7, #0 + bl sub_080002B0 + adds r6, r0, #0 + ldr r0, _080199E8 @ =0x00003FFF + cmp r6, r0 + bhi _080199EC + adds r0, r6, #0 + bl sub_080002E4 + adds r4, r0, #0 + b _080199EE + .align 2, 0 +_080199DC: .4byte gUnk_03001160 +_080199E0: .4byte gUnk_080B4468 +_080199E4: .4byte gUnk_03000BF0 +_080199E8: .4byte 0x00003FFF +_080199EC: + adds r4, r6, #0 +_080199EE: + ldr r5, _08019A28 @ =gUnk_03001160 + ldrb r1, [r5, #0x14] + adds r3, r1, #0 + ldr r0, _08019A2C @ =0x00004036 + mov sb, r5 + cmp r4, r0 + bne _080199FE + b _08019F0C +_080199FE: + cmp r4, r0 + bhi _08019AE0 + cmp r4, #0x71 + bne _08019A08 + b _08019D94 +_08019A08: + cmp r4, #0x71 + bhi _08019A4E + cmp r4, #0x3a + bne _08019A12 + b _08019CFC +_08019A12: + cmp r4, #0x3a + bhi _08019A30 + cmp r4, #0x1a + bne _08019A1C + b _08019D48 +_08019A1C: + cmp r4, #0x28 + bne _08019A22 + b _08019BB8 +_08019A22: + bl _0801A2A4 + .align 2, 0 +_08019A28: .4byte gUnk_03001160 +_08019A2C: .4byte 0x00004036 +_08019A30: + cmp r4, #0x5b + bne _08019A36 + b _08019CFC +_08019A36: + cmp r4, #0x5b + bhi _08019A44 + cmp r4, #0x3d + bne _08019A40 + b _08019DD4 +_08019A40: + bl _0801A2A4 +_08019A44: + cmp r4, #0x70 + bne _08019A4A + b _08019CC0 +_08019A4A: + bl _0801A2A4 +_08019A4E: + ldr r0, _08019A6C @ =0x0000400B + cmp r4, r0 + bne _08019A56 + b _08019E44 +_08019A56: + cmp r4, r0 + bhi _08019A70 + cmp r4, #0x72 + bne _08019A60 + b _08019FA8 +_08019A60: + subs r0, #0xb + cmp r4, r0 + bne _08019A68 + b _08019B78 +_08019A68: + bl _0801A2A4 + .align 2, 0 +_08019A6C: .4byte 0x0000400B +_08019A70: + ldr r0, _08019AD4 @ =0x0000401B + cmp r4, r0 + bne _08019A78 + b _08019C70 +_08019A78: + cmp r4, r0 + bhs _08019A80 + bl _0801A2A4 +_08019A80: + adds r0, #0x12 + cmp r4, r0 + bls _08019A8A + bl _0801A2A4 +_08019A8A: + subs r0, #2 + cmp r4, r0 + bhs _08019A94 + bl _0801A2A4 +_08019A94: + mov r0, r8 + adds r1, r7, #0 + bl sub_0801A370 + cmp r0, #0 + bne _08019AA4 + bl _0801A2A4 +_08019AA4: + lsls r0, r7, #1 + mov r2, r8 + adds r2, #4 + adds r2, r2, r0 + ldrb r1, [r5, #0x14] + movs r0, #4 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1a + ldr r3, _08019AD8 @ =0x00004030 + adds r1, r3, #0 + adds r0, r0, r1 + strh r0, [r2] + ldr r2, _08019ADC @ =gUnk_03003F80 + ldr r1, [r2, #0x30] + movs r0, #0x80 + ands r1, r0 + adds r7, r2, #0 + mov sb, r5 + cmp r1, #0 + bne _08019AD0 + b _0801A09A +_08019AD0: + b _0801A094 + .align 2, 0 +_08019AD4: .4byte 0x0000401B +_08019AD8: .4byte 0x00004030 +_08019ADC: .4byte gUnk_03003F80 +_08019AE0: + ldr r0, _08019B04 @ =0x00004053 + cmp r4, r0 + bne _08019AE8 + b _0801A13C +_08019AE8: + cmp r4, r0 + bhi _08019B24 + subs r0, #0xb + cmp r4, r0 + bhi _08019B08 + subs r0, #8 + cmp r4, r0 + blo _08019AFA + b _08019DD4 +_08019AFA: + subs r0, #2 + cmp r4, r0 + bne _08019B02 + b _08019F50 +_08019B02: + b _0801A2A4 + .align 2, 0 +_08019B04: .4byte 0x00004053 +_08019B08: + ldr r0, _08019B20 @ =0x00004051 + cmp r4, r0 + bne _08019B10 + b _08019CFC +_08019B10: + cmp r4, r0 + bls _08019B16 + b _0801A120 +_08019B16: + subs r0, #7 + cmp r4, r0 + bne _08019B1E + b _0801A0BC +_08019B1E: + b _0801A2A4 + .align 2, 0 +_08019B20: .4byte 0x00004051 +_08019B24: + ldr r0, _08019B48 @ =0x00004058 + cmp r4, r0 + bne _08019B2C + b _0801A19A +_08019B2C: + cmp r4, r0 + bhi _08019B4C + subs r0, #2 + cmp r4, r0 + bne _08019B38 + b _0801A15A +_08019B38: + cmp r4, r0 + bls _08019B3E + b _0801A198 +_08019B3E: + subs r0, #1 + cmp r4, r0 + bne _08019B46 + b _0801A158 +_08019B46: + b _0801A2A4 + .align 2, 0 +_08019B48: .4byte 0x00004058 +_08019B4C: + ldr r0, _08019B64 @ =0x0000405F + cmp r4, r0 + bne _08019B54 + b _0801A1D4 +_08019B54: + cmp r4, r0 + bhi _08019B68 + subs r0, #5 + cmp r4, r0 + bne _08019B60 + b _08019EC8 +_08019B60: + b _0801A2A4 + .align 2, 0 +_08019B64: .4byte 0x0000405F +_08019B68: + ldr r0, _08019B74 @ =0x0000407D + cmp r4, r0 + bne _08019B70 + b _0801A23C +_08019B70: + b _0801A2A4 + .align 2, 0 +_08019B74: .4byte 0x0000407D +_08019B78: + mov r0, r8 + adds r1, r7, #0 + movs r2, #2 + bl sub_0801A458 + cmp r0, #0 + bne _08019B88 + b _0801A2A4 +_08019B88: + lsls r0, r7, #1 + mov r1, r8 + adds r1, #4 + adds r1, r1, r0 + ldrb r0, [r5, #0x14] + lsrs r0, r0, #1 + ldr r4, _08019BB0 @ =0x00004001 + adds r0, r0, r4 + strh r0, [r1] + ldr r2, _08019BB4 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + ands r0, r1 + adds r7, r2, #0 + cmp r0, #0 + bne _08019BAA + b _0801A0F8 +_08019BAA: + movs r0, #0xc0 + b _0801A0FA + .align 2, 0 +_08019BB0: .4byte 0x00004001 +_08019BB4: .4byte gUnk_03003F80 +_08019BB8: + ldr r1, _08019C50 @ =gUnk_03003F80 + ldr r0, [r1, #0x30] + movs r2, #0x80 + ands r0, r2 + cmp r0, #0 + beq _08019BC6 + b _0801A2A4 +_08019BC6: + ldrb r0, [r1, #0xa] + cmp r0, #0 + beq _08019BCE + b _0801A2A4 +_08019BCE: + ldrb r0, [r5, #0x14] + lsls r0, r0, #2 + ldrb r1, [r1, #0xd] + cmp r0, r1 + beq _08019BDA + b _0801A2A4 +_08019BDA: + ldrb r1, [r5, #0x15] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _08019BE6 + b _0801A2A4 +_08019BE6: + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r7, #0 + bl sub_080002E0 + cmp r0, #0xf + beq _08019BF8 + b _0801A2A4 +_08019BF8: + bl sub_08079778 + cmp r0, #0 + bne _08019C02 + b _0801A2A4 +_08019C02: + ldrb r1, [r5, #0x14] + movs r0, #6 + ands r0, r1 + lsls r0, r0, #1 + ldr r1, _08019C54 @ =gUnk_080B4478 + adds r6, r0, r1 + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r4, _08019C58 @ =gUnk_03000BF0 + ldrh r1, [r4, #6] + subs r0, r0, r1 + movs r2, #0 + ldrsh r1, [r6, r2] + adds r0, r0, r1 + movs r3, #0x32 + ldrsh r1, [r5, r3] + ldrh r2, [r4, #8] + subs r1, r1, r2 + movs r3, #2 + ldrsh r2, [r6, r3] + adds r1, r1, r2 + bl sub_08080734 + adds r2, r0, #0 + cmp r2, #0 + bne _08019C38 + b _0801A2A4 +_08019C38: + ldrb r1, [r5, #0x14] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08019C5C + ldrh r0, [r2, #4] + ldrh r4, [r4, #8] + adds r0, r0, r4 + adds r0, #6 + strh r0, [r5, #0x32] + b _08019C64 + .align 2, 0 +_08019C50: .4byte gUnk_03003F80 +_08019C54: .4byte gUnk_080B4478 +_08019C58: .4byte gUnk_03000BF0 +_08019C5C: + ldrh r0, [r2, #2] + ldrh r4, [r4, #6] + adds r0, r0, r4 + strh r0, [r5, #0x2e] +_08019C64: + movs r0, #4 + movs r1, #0 + movs r2, #1 + bl sub_08078AC0 + b _0801A2A4 +_08019C70: + mov r0, r8 + adds r1, r7, #0 + movs r2, #0xb + bl sub_0801A2B0 + cmp r0, #0 + bne _08019C80 + b _0801A2A4 +_08019C80: + lsls r0, r7, #1 + mov r1, r8 + adds r1, #4 + adds r1, r1, r0 + ldrb r0, [r5, #0x14] + lsrs r0, r0, #1 + ldr r4, _08019CB8 @ =0x0000401C + adds r0, r0, r4 + movs r3, #0 + strh r0, [r1] + ldr r1, _08019CBC @ =gUnk_03003F80 + movs r0, #0xa0 + strb r0, [r1, #6] + movs r0, #5 + strb r0, [r1, #0xc] + ldr r0, [r1, #0x30] + movs r2, #1 + orrs r0, r2 + str r0, [r1, #0x30] + strh r3, [r5, #0x2c] + strh r3, [r5, #0x30] + ldrb r0, [r5, #0x14] + lsls r0, r0, #2 + strb r0, [r5, #0x15] + strb r2, [r5, #0xa] + movs r0, #1 + b _0801A2A6 + .align 2, 0 +_08019CB8: .4byte 0x0000401C +_08019CBC: .4byte gUnk_03003F80 +_08019CC0: + ldr r0, _08019CF8 @ =gUnk_03003F80 + adds r2, r0, #0 + adds r2, #0x35 + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08019CD2 + b _0801A2A4 +_08019CD2: + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08019CE2 + b _0801A2A4 +_08019CE2: + ldrb r0, [r2] + lsls r0, r0, #2 + adds r1, r6, #0 + adds r2, r7, #0 + bl sub_0801A9F0 + cmp r0, #0 + bne _08019CF4 + b _0801A2A4 +_08019CF4: + movs r0, #1 + b _0801A2A6 + .align 2, 0 +_08019CF8: .4byte gUnk_03003F80 +_08019CFC: + ldr r2, _08019D40 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08019D0A + b _0801A2A4 +_08019D0A: + mov r1, sb + ldrb r0, [r1, #0x14] + cmp r0, #0 + beq _08019D14 + b _0801A2A4 +_08019D14: + ldr r0, _08019D44 @ =gUnk_0200AF00 + adds r0, #0x2d + movs r1, #4 + strb r1, [r0] + adds r0, r2, #0 + adds r0, #0x92 + ldrh r1, [r0] + movs r0, #0xc0 + ands r0, r1 + cmp r0, #0 + bne _08019D2C + b _0801A2A4 +_08019D2C: + movs r0, #1 + strb r0, [r2, #0x1a] + mov r0, sb + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r7, #0 + bl sub_080A7CFC + movs r0, #1 + b _0801A2A6 + .align 2, 0 +_08019D40: .4byte gUnk_03003F80 +_08019D44: .4byte gUnk_0200AF00 +_08019D48: + cmp r3, #0 + beq _08019D4E + b _0801A2A4 +_08019D4E: + ldr r2, _08019D8C @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x81 + lsls r1, r1, #7 + ands r0, r1 + cmp r0, #0 + beq _08019D5E + b _0801A2A4 +_08019D5E: + ldr r0, _08019D90 @ =gUnk_0200AF00 + adds r0, #0x2d + movs r1, #6 + strb r1, [r0] + adds r0, r2, #0 + adds r0, #0x92 + ldrh r1, [r0] + movs r0, #0x88 + ands r0, r1 + cmp r0, #0 + bne _08019D76 + b _0801A2A4 +_08019D76: + movs r0, #1 + strb r0, [r2, #0x1a] + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r7, #0 + bl sub_080A7C8C + movs r0, #2 + b _0801A2A6 + .align 2, 0 +_08019D8C: .4byte gUnk_03003F80 +_08019D90: .4byte gUnk_0200AF00 +_08019D94: + bl sub_08052734 + cmp r0, #0 + bne _08019D9E + b _0801A2A4 +_08019D9E: + ldr r0, _08019DCC @ =gUnk_0200AF00 + adds r0, #0x2d + movs r1, #6 + strb r1, [r0] + ldr r2, _08019DD0 @ =gUnk_03003F80 + adds r0, r2, #0 + adds r0, #0x92 + ldrh r1, [r0] + movs r0, #0x88 + ands r0, r1 + cmp r0, #0 + bne _08019DB8 + b _0801A2A4 +_08019DB8: + movs r0, #1 + strb r0, [r2, #0x1a] + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r7, #0 + bl sub_0804B388 + movs r0, #2 + b _0801A2A6 + .align 2, 0 +_08019DCC: .4byte gUnk_0200AF00 +_08019DD0: .4byte gUnk_03003F80 +_08019DD4: + ldr r4, _08019E3C @ =gUnk_03003F80 + ldr r0, [r4, #0x30] + movs r1, #0x80 + lsls r1, r1, #7 + ands r0, r1 + cmp r0, #0 + beq _08019DE4 + b _0801A2A4 +_08019DE4: + bl sub_08079778 + cmp r0, #0 + bne _08019DEE + b _0801A2A4 +_08019DEE: + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _08019DF6 + b _0801A2A4 +_08019DF6: + ldr r2, _08019E40 @ =gUnk_03001160 + ldrb r0, [r2, #0x14] + lsls r0, r0, #2 + ldrb r3, [r4, #0xd] + cmp r0, r3 + beq _08019E04 + b _0801A2A4 +_08019E04: + ldrb r1, [r2, #0x15] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08019E10 + b _0801A2A4 +_08019E10: + ldrb r0, [r2, #0xf] + cmp r0, #5 + bhi _08019E18 + b _0801A2A4 +_08019E18: + movs r0, #0x81 + strb r0, [r4, #2] + ldr r0, [r4, #0x30] + movs r1, #0x20 + orrs r0, r1 + str r0, [r4, #0x30] + movs r0, #0x15 + strb r0, [r4, #0xc] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r2, #0x20] + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] + movs r0, #1 + b _0801A2A6 + .align 2, 0 +_08019E3C: .4byte gUnk_03003F80 +_08019E40: .4byte gUnk_03001160 +_08019E44: + mov r0, r8 + adds r1, r7, #0 + movs r2, #8 + bl sub_0801A2B0 + cmp r0, #0 + bne _08019E54 + b _0801A2A4 +_08019E54: + adds r0, r5, #0 + adds r0, #0x38 + ldrb r0, [r0] + lsls r1, r7, #1 + cmp r0, #3 + bne _08019E84 + ldr r0, _08019E7C @ =gUnk_0200B650 + adds r0, #4 + adds r2, r1, r0 + ldrh r0, [r2] + cmp r0, r4 + bne _08019E84 + ldrb r0, [r5, #0x14] + lsrs r0, r0, #1 + ldr r4, _08019E80 @ =0x0000400C + adds r0, r0, r4 + strh r0, [r2] + mov sb, r5 + b _08019E98 + .align 2, 0 +_08019E7C: .4byte gUnk_0200B650 +_08019E80: .4byte 0x0000400C +_08019E84: + mov r0, r8 + adds r0, #4 + adds r0, r0, r1 + ldr r2, _08019EBC @ =gUnk_03001160 + ldrb r1, [r2, #0x14] + lsrs r1, r1, #1 + ldr r3, _08019EC0 @ =0x0000400C + adds r1, r1, r3 + strh r1, [r0] + mov sb, r2 +_08019E98: + ldr r2, _08019EC4 @ =gUnk_03003F80 + movs r3, #0 + movs r0, #0xa0 + strb r0, [r2, #6] + movs r0, #5 + strb r0, [r2, #0xc] + ldr r0, [r2, #0x30] + movs r1, #1 + orrs r0, r1 + str r0, [r2, #0x30] + mov r4, sb + strh r3, [r4, #0x2c] + strh r3, [r4, #0x30] + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] + movs r0, #1 + b _0801A2A6 + .align 2, 0 +_08019EBC: .4byte gUnk_03001160 +_08019EC0: .4byte 0x0000400C +_08019EC4: .4byte gUnk_03003F80 +_08019EC8: + mov r0, r8 + adds r1, r7, #0 + movs r2, #2 + bl sub_0801A2B0 + cmp r0, #0 + bne _08019ED8 + b _0801A2A4 +_08019ED8: + lsls r0, r7, #1 + mov r1, r8 + adds r1, #4 + adds r1, r1, r0 + ldrb r0, [r5, #0x14] + lsrs r0, r0, #1 + ldr r2, _08019F04 @ =0x0000405B + adds r0, r0, r2 + movs r3, #0 + strh r0, [r1] + ldr r2, _08019F08 @ =gUnk_03003F80 + movs r0, #0x98 + strb r0, [r2, #6] + movs r0, #5 + strb r0, [r2, #0xc] + ldr r0, [r2, #0x30] + movs r1, #1 + orrs r0, r1 + str r0, [r2, #0x30] + strh r3, [r5, #0x2c] + strh r3, [r5, #0x30] + b _0801A228 + .align 2, 0 +_08019F04: .4byte 0x0000405B +_08019F08: .4byte gUnk_03003F80 +_08019F0C: + mov r0, r8 + adds r1, r7, #0 + movs r2, #0xb + bl sub_0801A2B0 + cmp r0, #0 + bne _08019F1C + b _0801A2A4 +_08019F1C: + lsls r0, r7, #1 + mov r1, r8 + adds r1, #4 + adds r1, r1, r0 + ldrb r0, [r5, #0x14] + lsrs r0, r0, #1 + ldr r3, _08019F48 @ =0x00004037 + adds r0, r0, r3 + movs r3, #0 + strh r0, [r1] + ldr r2, _08019F4C @ =gUnk_03003F80 + movs r0, #0xa0 + strb r0, [r2, #6] + movs r0, #5 + strb r0, [r2, #0xc] + ldr r0, [r2, #0x30] + movs r1, #1 + orrs r0, r1 + str r0, [r2, #0x30] + strh r3, [r5, #0x2c] + strh r3, [r5, #0x30] + b _0801A228 + .align 2, 0 +_08019F48: .4byte 0x00004037 +_08019F4C: .4byte gUnk_03003F80 +_08019F50: + cmp r3, #0 + beq _08019F56 + b _0801A2A4 +_08019F56: + ldr r2, _08019FA0 @ =gUnk_03003F80 + adds r0, r2, #0 + adds r0, #0x35 + ldrb r0, [r0] + ldrb r1, [r2, #0xd] + orrs r0, r1 + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08019F6C + b _0801A2A4 +_08019F6C: + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08019F7C + b _0801A2A4 +_08019F7C: + lsls r1, r7, #1 + mov r0, r8 + adds r0, #4 + adds r0, r0, r1 + ldr r1, _08019FA4 @ =0x0000403F + strh r1, [r0] + movs r0, #0x82 + strb r0, [r2, #6] + movs r0, #5 + strb r0, [r2, #0xc] + ldr r0, [r2, #0x30] + movs r1, #1 + orrs r0, r1 + str r0, [r2, #0x30] + strh r3, [r5, #0x2c] + strh r3, [r5, #0x30] + b _0801A228 + .align 2, 0 +_08019FA0: .4byte gUnk_03003F80 +_08019FA4: .4byte 0x0000403F +_08019FA8: + ldr r0, _0801A07C @ =gUnk_03003F80 + adds r0, #0x35 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08019FB8 + b _0801A2A4 +_08019FB8: + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08019FC8 + b _0801A2A4 +_08019FC8: + adds r0, r5, #0 + movs r1, #1 + bl sub_0801A570 + adds r7, r0, #0 + ldr r0, _0801A080 @ =0x0000FFFF + cmp r7, r0 + bne _08019FDA + b _0801A2A4 +_08019FDA: + lsrs r0, r7, #0xc + subs r0, #1 + mov r8, r0 + ldr r0, _0801A084 @ =0x00000FFF + ands r7, r0 + movs r4, #0 + movs r6, #0 + ldr r5, _0801A088 @ =gUnk_03004040 + mov sb, r5 +_08019FEC: + mov r1, sb + ldr r0, [r1] + movs r1, #1 + lsls r1, r4 + ldr r0, [r0, #0x6c] + ands r0, r1 + cmp r0, #0 + beq _0801A00A + ldr r0, [r5] + movs r1, #0 + bl sub_0801A570 + cmp r0, r7 + bne _0801A00A + adds r6, #1 +_0801A00A: + adds r5, #4 + adds r4, #1 + cmp r4, #2 + bls _08019FEC + cmp r6, r8 + bhs _0801A018 + b _0801A2A4 +_0801A018: + movs r0, #7 + mov r1, r8 + movs r2, #0 + bl sub_080A2960 + adds r5, r0, #0 + cmp r5, #0 + bne _0801A02A + b _0801A2A4 +_0801A02A: + ldr r3, _0801A08C @ =gUnk_03001160 + ldrb r0, [r3, #0x14] + lsls r0, r0, #2 + movs r4, #0 + strb r0, [r5, #0x15] + movs r1, #0x3f + adds r0, r7, #0 + ands r0, r1 + lsls r0, r0, #4 + adds r0, #8 + ldr r2, _0801A090 @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + adds r1, r1, r0 + strh r1, [r5, #0x2e] + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r7 + lsrs r0, r0, #2 + adds r0, #8 + ldrh r1, [r2, #8] + adds r1, r1, r0 + strh r1, [r5, #0x32] + adds r0, r3, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r5, #0 + adds r0, #0x38 + strb r1, [r0] + ldr r2, _0801A07C @ =gUnk_03003F80 + movs r0, #0xa0 + strb r0, [r2, #6] + movs r0, #5 + strb r0, [r2, #0xc] + ldr r0, [r2, #0x30] + movs r1, #1 + orrs r0, r1 + str r0, [r2, #0x30] + strh r4, [r3, #0x2c] + strh r4, [r3, #0x30] + ldrb r0, [r5, #0x15] + b _0801A0B6 + .align 2, 0 +_0801A07C: .4byte gUnk_03003F80 +_0801A080: .4byte 0x0000FFFF +_0801A084: .4byte 0x00000FFF +_0801A088: .4byte gUnk_03004040 +_0801A08C: .4byte gUnk_03001160 +_0801A090: .4byte gUnk_03000BF0 +_0801A094: + movs r0, #0xa0 + strb r0, [r2, #6] + b _0801A09E +_0801A09A: + movs r0, #0x90 + strb r0, [r7, #6] +_0801A09E: + movs r2, #0 + movs r0, #5 + strb r0, [r7, #0xc] + ldr r0, [r7, #0x30] + movs r1, #1 + orrs r0, r1 + str r0, [r7, #0x30] + mov r3, sb + strh r2, [r3, #0x2c] + strh r2, [r3, #0x30] + ldrb r0, [r3, #0x14] + lsls r0, r0, #2 +_0801A0B6: + strb r0, [r3, #0x15] + movs r0, #1 + b _0801A2A6 +_0801A0BC: + mov r0, r8 + adds r1, r7, #0 + movs r2, #8 + bl sub_0801A458 + cmp r0, #0 + bne _0801A0CC + b _0801A2A4 +_0801A0CC: + lsls r0, r7, #1 + mov r1, r8 + adds r1, #4 + adds r1, r1, r0 + ldrb r0, [r5, #0x14] + lsrs r0, r0, #1 + ldr r4, _0801A0F0 @ =0x0000404B + adds r0, r0, r4 + strh r0, [r1] + ldr r2, _0801A0F4 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + ands r0, r1 + adds r7, r2, #0 + cmp r0, #0 + beq _0801A0F8 + movs r0, #0xc0 + b _0801A0FA + .align 2, 0 +_0801A0F0: .4byte 0x0000404B +_0801A0F4: .4byte gUnk_03003F80 +_0801A0F8: + movs r0, #0xa0 +_0801A0FA: + strb r0, [r7, #6] + movs r2, #0 + movs r0, #5 + strb r0, [r7, #0xc] + ldr r0, [r7, #0x30] + movs r1, #1 + orrs r0, r1 + str r0, [r7, #0x30] + ldr r1, _0801A11C @ =gUnk_03001160 + strh r2, [r1, #0x2c] + strh r2, [r1, #0x30] + ldrb r0, [r1, #0x14] + lsls r0, r0, #2 + strb r0, [r1, #0x15] + movs r0, #1 + b _0801A2A6 + .align 2, 0 +_0801A11C: .4byte gUnk_03001160 +_0801A120: + ldr r0, _0801A134 @ =gUnk_03003F80 + adds r0, #0x35 + ldrb r0, [r0] + cmp r0, #0 + beq _0801A12C + b _0801A2A4 +_0801A12C: + ldr r0, _0801A138 @ =0x00004054 + adds r1, r5, #0 + b _0801A28C + .align 2, 0 +_0801A134: .4byte gUnk_03003F80 +_0801A138: .4byte 0x00004054 +_0801A13C: + ldr r0, _0801A150 @ =gUnk_03003F80 + adds r0, #0x35 + ldrb r0, [r0] + cmp r0, #6 + beq _0801A148 + b _0801A2A4 +_0801A148: + ldr r0, _0801A154 @ =0x00004054 + adds r1, r5, #0 + b _0801A28C + .align 2, 0 +_0801A150: .4byte gUnk_03003F80 +_0801A154: .4byte 0x00004054 +_0801A158: + subs r7, #1 +_0801A15A: + ldr r0, _0801A190 @ =gUnk_03003F80 + adds r0, #0x35 + ldrb r0, [r0] + cmp r0, #0 + beq _0801A166 + b _0801A2A4 +_0801A166: + mov r0, sb + ldrh r1, [r0, #0x32] + movs r0, #0xf + ands r0, r1 + cmp r0, #9 + bgt _0801A174 + b _0801A2A4 +_0801A174: + movs r4, #0 + ldr r5, _0801A194 @ =gUnk_03004040 +_0801A178: + ldr r0, [r5] + movs r1, #0 + bl sub_0801A8D0 + cmp r0, r7 + bne _0801A186 + b _0801A288 +_0801A186: + adds r5, #4 + adds r4, #1 + cmp r4, #2 + bls _0801A178 + b _0801A2A4 + .align 2, 0 +_0801A190: .4byte gUnk_03003F80 +_0801A194: .4byte gUnk_03004040 +_0801A198: + subs r7, #0x40 +_0801A19A: + ldr r0, _0801A1CC @ =gUnk_03003F80 + adds r0, #0x35 + ldrb r0, [r0] + cmp r0, #6 + beq _0801A1A6 + b _0801A2A4 +_0801A1A6: + mov r2, sb + ldrh r1, [r2, #0x2e] + movs r0, #0xf + ands r0, r1 + cmp r0, #9 + ble _0801A2A4 + movs r4, #0 + ldr r5, _0801A1D0 @ =gUnk_03004040 +_0801A1B6: + ldr r0, [r5] + movs r1, #6 + bl sub_0801A8D0 + cmp r0, r7 + beq _0801A288 + adds r5, #4 + adds r4, #1 + cmp r4, #2 + bls _0801A1B6 + b _0801A2A4 + .align 2, 0 +_0801A1CC: .4byte gUnk_03003F80 +_0801A1D0: .4byte gUnk_03004040 +_0801A1D4: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0801A2A4 + ldr r6, _0801A234 @ =gUnk_03003F80 + adds r0, r6, #0 + adds r0, #0x35 + ldrb r0, [r0] + ldrb r1, [r6, #0xd] + orrs r0, r1 + movs r1, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _0801A2A4 + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r3, #1 + mov r8, r3 + mov r0, r8 + ands r0, r1 + cmp r0, #0 + beq _0801A2A4 + ldr r0, _0801A238 @ =0x00004074 + adds r1, r5, #0 + adds r1, #0x38 + ldrb r2, [r1] + adds r1, r7, #0 + bl sub_0800015E + movs r0, #0xa0 + strb r0, [r6, #6] + movs r0, #5 + strb r0, [r6, #0xc] + ldr r0, [r6, #0x30] + mov r1, r8 + orrs r0, r1 + str r0, [r6, #0x30] + strh r4, [r5, #0x2c] + strh r4, [r5, #0x30] +_0801A228: + ldrb r0, [r5, #0x14] + lsls r0, r0, #2 + strb r0, [r5, #0x15] + movs r0, #1 + b _0801A2A6 + .align 2, 0 +_0801A234: .4byte gUnk_03003F80 +_0801A238: .4byte 0x00004074 +_0801A23C: + cmp r3, #4 + bne _0801A2A4 + ldr r1, _0801A280 @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0x35 + ldrb r0, [r0] + ldrb r1, [r1, #0xd] + orrs r0, r1 + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0801A2A4 + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0801A2A4 + ldr r0, _0801A284 @ =0x00004074 + adds r4, r5, #0 + adds r4, #0x38 + ldrb r2, [r4] + adds r1, r7, #0 + bl sub_0800015E + ldrb r2, [r4] + movs r0, #0xd + adds r1, r7, #0 + bl sub_080001D0 + movs r0, #1 + b _0801A2A6 + .align 2, 0 +_0801A280: .4byte gUnk_03003F80 +_0801A284: .4byte 0x00004074 +_0801A288: + ldr r0, _0801A29C @ =0x00004059 + ldr r1, _0801A2A0 @ =gUnk_03001160 +_0801A28C: + adds r1, #0x38 + ldrb r2, [r1] + adds r1, r7, #0 + bl sub_0800015E + movs r0, #4 + b _0801A2A6 + .align 2, 0 +_0801A29C: .4byte 0x00004059 +_0801A2A0: .4byte gUnk_03001160 +_0801A2A4: + movs r0, #0 +_0801A2A6: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0801A2B0 +sub_0801A2B0: @ 0x0801A2B0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r6, r2, #0 + ldr r1, _0801A31C @ =gUnk_080B4488 + ldr r2, _0801A320 @ =gUnk_03001160 + ldrb r0, [r2, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r3, [r0] + ldr r1, _0801A324 @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0x35 + ldrb r0, [r0] + ldrb r1, [r1, #0xd] + orrs r0, r1 + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0801A36C + adds r0, r2, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0801A36C + adds r0, r4, r3 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r0, r2, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080002B0 + bl sub_080002E4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + adds r1, r0, #0 + cmp r0, #0x52 + beq _0801A36C + cmp r0, #0x52 + bgt _0801A328 + cmp r0, #0x26 + blt _0801A32C + cmp r0, #0x27 + ble _0801A36C + cmp r0, #0x29 + beq _0801A36C + b _0801A32C + .align 2, 0 +_0801A31C: .4byte gUnk_080B4488 +_0801A320: .4byte gUnk_03001160 +_0801A324: .4byte gUnk_03003F80 +_0801A328: + cmp r1, #0x74 + beq _0801A36C +_0801A32C: + ldr r0, _0801A364 @ =0x00002004 + adds r3, r5, r0 + adds r0, r3, r4 + ldrb r0, [r0] + cmp r0, #0x28 + beq _0801A36C + movs r1, #0x3f + ands r1, r4 + ldr r0, _0801A368 @ =gUnk_03000BF0 + lsls r1, r1, #4 + ldrh r2, [r0, #6] + adds r1, r1, r2 + lsrs r2, r4, #6 + lsls r2, r2, #4 + ldrh r0, [r0, #8] + adds r2, r2, r0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + adds r0, r3, #0 + adds r3, r6, #0 + bl sub_080AE4CC + cmp r0, #0 + bne _0801A36C + movs r0, #1 + b _0801A36E + .align 2, 0 +_0801A364: .4byte 0x00002004 +_0801A368: .4byte gUnk_03000BF0 +_0801A36C: + movs r0, #0 +_0801A36E: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0801A370 +sub_0801A370: @ 0x0801A370 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r8, r0 + adds r4, r1, #0 + ldr r5, _0801A3C8 @ =gUnk_03001160 + ldrb r1, [r5, #0x14] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0801A44E + bl sub_0801A4F8 + cmp r0, #0 + beq _0801A44E + movs r0, #2 + bl sub_0808094C + adds r7, r0, #0 + ldr r1, _0801A3CC @ =gUnk_080B4488 + ldrb r0, [r5, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r6, [r0, r1] + adds r4, r4, r6 + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080002B0 + adds r1, r0, #0 + ldr r0, _0801A3D0 @ =0x0000402B + cmp r1, r0 + beq _0801A3D4 + cmp r1, r0 + blo _0801A3D6 + adds r0, #4 + cmp r1, r0 + bhi _0801A3D6 +_0801A3C4: + movs r0, #1 + b _0801A450 + .align 2, 0 +_0801A3C8: .4byte gUnk_03001160 +_0801A3CC: .4byte gUnk_080B4488 +_0801A3D0: .4byte 0x0000402B +_0801A3D4: + adds r4, r4, r6 +_0801A3D6: + adds r0, r7, r4 + ldr r1, _0801A40C @ =0x00001F84 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0x46 + beq _0801A44E + ldr r0, _0801A410 @ =gUnk_03001160 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080002B0 + bl sub_080002E4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x52 + beq _0801A44E + cmp r0, #0x52 + bgt _0801A414 + cmp r0, #0x26 + blt _0801A418 + cmp r0, #0x27 + ble _0801A44E + cmp r0, #0x29 + beq _0801A44E + b _0801A418 + .align 2, 0 +_0801A40C: .4byte 0x00001F84 +_0801A410: .4byte gUnk_03001160 +_0801A414: + cmp r0, #0x74 + beq _0801A44E +_0801A418: + ldr r0, _0801A434 @ =0x00002004 + add r0, r8 + adds r0, r0, r4 + ldrb r0, [r0] + adds r1, r0, #0 + cmp r0, #0xa + beq _0801A446 + cmp r0, #0xa + bgt _0801A438 + cmp r0, #0 + beq _0801A3C4 + cmp r0, #5 + beq _0801A440 + b _0801A44E + .align 2, 0 +_0801A434: .4byte 0x00002004 +_0801A438: + cmp r1, #0x44 + beq _0801A446 + cmp r1, #0x45 + bne _0801A44E +_0801A440: + cmp r6, #1 + bne _0801A44E + b _0801A3C4 +_0801A446: + movs r0, #1 + rsbs r0, r0, #0 + cmp r6, r0 + beq _0801A3C4 +_0801A44E: + movs r0, #0 +_0801A450: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0801A458 +sub_0801A458: @ 0x0801A458 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r0, #0 + adds r5, r1, #0 + mov r8, r2 + ldr r0, _0801A4A4 @ =gUnk_080B4488 + ldr r6, _0801A4A8 @ =gUnk_03001160 + ldrb r1, [r6, #0x14] + lsrs r1, r1, #1 + lsls r1, r1, #1 + adds r1, r1, r0 + movs r0, #0 + ldrsh r4, [r1, r0] + bl sub_0801A4F8 + cmp r0, #0 + beq _0801A4F0 + adds r4, r5, r4 + adds r0, r6, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080002B0 + bl sub_080002E4 + cmp r0, #0x52 + beq _0801A4F0 + cmp r0, #0x52 + bhi _0801A4AC + cmp r0, #0x26 + blo _0801A4B0 + cmp r0, #0x27 + bls _0801A4F0 + cmp r0, #0x29 + beq _0801A4F0 + b _0801A4B0 + .align 2, 0 +_0801A4A4: .4byte gUnk_080B4488 +_0801A4A8: .4byte gUnk_03001160 +_0801A4AC: + cmp r0, #0x74 + beq _0801A4F0 +_0801A4B0: + ldr r2, _0801A4E8 @ =0x00002004 + adds r3, r7, r2 + adds r5, r3, r4 + ldrb r0, [r5] + cmp r0, #0x28 + beq _0801A4F0 + movs r1, #0x3f + ands r1, r4 + ldr r0, _0801A4EC @ =gUnk_03000BF0 + lsls r1, r1, #4 + ldrh r2, [r0, #6] + adds r1, r1, r2 + lsrs r2, r4, #6 + lsls r2, r2, #4 + ldrh r0, [r0, #8] + adds r2, r2, r0 + adds r0, r3, #0 + mov r3, r8 + bl sub_080AE4CC + cmp r0, #0 + bne _0801A4F0 + ldrb r0, [r5] + subs r0, #1 + cmp r0, #0xe + bls _0801A4F0 + movs r0, #1 + b _0801A4F2 + .align 2, 0 +_0801A4E8: .4byte 0x00002004 +_0801A4EC: .4byte gUnk_03000BF0 +_0801A4F0: + movs r0, #0 +_0801A4F2: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0801A4F8 +sub_0801A4F8: @ 0x0801A4F8 + push {r4, r5, lr} + ldr r4, _0801A538 @ =gUnk_03003F80 + ldr r0, [r4, #0x30] + movs r5, #0x80 + ands r0, r5 + cmp r0, #0 + beq _0801A544 + movs r0, #0x45 + bl sub_0807CA84 + cmp r0, #1 + bne _0801A564 + ldrb r1, [r4, #0xd] + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + bne _0801A564 + ldr r2, _0801A53C @ =gUnk_03001160 + ldrb r0, [r2, #0x15] + cmp r1, r0 + bne _0801A564 + ldrb r0, [r2, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + ldr r1, _0801A540 @ =gUnk_080B44A0 + lsrs r0, r0, #2 + adds r0, r0, r1 + ldrh r1, [r0] + ldrh r0, [r2, #0x2a] + b _0801A55E + .align 2, 0 +_0801A538: .4byte gUnk_03003F80 +_0801A53C: .4byte gUnk_03001160 +_0801A540: .4byte gUnk_080B44A0 +_0801A544: + adds r0, r4, #0 + adds r0, #0x35 + ldrb r0, [r0] + ldrb r1, [r4, #0xd] + orrs r0, r1 + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0801A564 + ldr r0, _0801A568 @ =gUnk_03001160 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 +_0801A55E: + ands r0, r1 + cmp r0, #0 + bne _0801A56C +_0801A564: + movs r0, #0 + b _0801A56E + .align 2, 0 +_0801A568: .4byte gUnk_03001160 +_0801A56C: + movs r0, #1 +_0801A56E: + pop {r4, r5, pc} + + thumb_func_start sub_0801A570 +sub_0801A570: @ 0x0801A570 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r6, r0, #0 + mov sl, r1 + cmp r6, #0 + bne _0801A58C + ldr r0, _0801A588 @ =0x0000FFFF + b _0801A8C2 + .align 2, 0 +_0801A588: .4byte 0x0000FFFF +_0801A58C: + adds r4, r6, #0 + adds r4, #0x38 + ldrb r0, [r4] + bl sub_0808094C + mov r8, r0 + ldr r0, _0801A668 @ =0x00005004 + add r0, r8 + mov ip, r0 + movs r5, #4 + movs r7, #2 + ldrb r0, [r6, #0x14] + lsrs r0, r0, #1 + mov sb, r4 + cmp r0, #1 + beq _0801A678 + cmp r0, #1 + ble _0801A5BC + cmp r0, #2 + bne _0801A5B6 + b _0801A73C +_0801A5B6: + cmp r0, #3 + bne _0801A5BC + b _0801A7FC +_0801A5BC: + movs r1, #0x2e + ldrsh r0, [r6, r1] + ldr r2, _0801A66C @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r4, r0, #4 + movs r3, #0x3f + ands r4, r3 + movs r1, #0x32 + ldrsh r0, [r6, r1] + ldrh r1, [r2, #8] + adds r1, #0xa + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r4, r0 + mov r2, r8 + adds r2, #4 + movs r3, #0xdc + lsls r3, r3, #2 + lsls r0, r4, #1 + adds r1, r0, r2 +_0801A5EA: + ldrh r0, [r1] + lsls r0, r0, #1 + add r0, ip + ldrh r0, [r0] + cmp r0, r3 + beq _0801A600 + subs r1, #2 + subs r4, #1 + subs r5, #1 + cmp r5, #0 + bne _0801A5EA +_0801A600: + subs r4, #0x40 + movs r3, #0xdd + lsls r3, r3, #2 + lsls r0, r4, #1 + adds r1, r0, r2 +_0801A60A: + ldrh r0, [r1] + lsls r0, r0, #1 + add r0, ip + ldrh r0, [r0] + cmp r0, r3 + bne _0801A620 + adds r7, #1 + subs r1, #0x80 + subs r4, #0x40 + cmp r7, #3 + bls _0801A60A +_0801A620: + mov r2, sl + cmp r2, #0 + bne _0801A628 + b _0801A8C0 +_0801A628: + mov r0, sb + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080002B0 + adds r5, r0, #0 + ldr r1, _0801A670 @ =0xFFFFFC97 + adds r0, r5, r1 + cmp r0, #1 + bls _0801A63E + b _0801A8B4 +_0801A63E: + ldr r2, _0801A674 @ =0x00001FC4 + adds r0, r4, r2 + mov r2, r8 + adds r1, r2, r0 + movs r5, #0 + cmp r5, r7 + blo _0801A64E + b _0801A8B6 +_0801A64E: + ldrb r0, [r1] + cmp r0, #0 + beq _0801A656 + b _0801A8B4 +_0801A656: + adds r5, #1 + cmp r5, r7 + blo _0801A65E + b _0801A8B6 +_0801A65E: + adds r0, r1, r5 + ldrb r0, [r0] + cmp r0, #0 + beq _0801A656 + b _0801A8B4 + .align 2, 0 +_0801A668: .4byte 0x00005004 +_0801A66C: .4byte gUnk_03000BF0 +_0801A670: .4byte 0xFFFFFC97 +_0801A674: .4byte 0x00001FC4 +_0801A678: + movs r0, #0x2e + ldrsh r1, [r6, r0] + ldr r3, _0801A730 @ =gUnk_03000BF0 + ldrh r0, [r3, #6] + subs r0, #0xa + subs r1, r1, r0 + asrs r4, r1, #4 + movs r2, #0x3f + ands r4, r2 + movs r1, #0x32 + ldrsh r0, [r6, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + mov r2, r8 + adds r2, #4 + mov r3, ip + movs r6, #0xdc + lsls r6, r6, #2 + lsls r0, r4, #1 + adds r1, r0, r2 +_0801A6A8: + ldrh r0, [r1] + lsls r0, r0, #1 + adds r0, r3, r0 + ldrh r0, [r0] + cmp r0, r6 + beq _0801A6BE + adds r1, #0x80 + adds r4, #0x40 + subs r5, #1 + cmp r5, #0 + bne _0801A6A8 +_0801A6BE: + subs r4, #0x40 + movs r3, #0xdd + lsls r3, r3, #2 + lsls r0, r4, #1 + adds r1, r0, r2 +_0801A6C8: + ldrh r0, [r1] + lsls r0, r0, #1 + add r0, ip + ldrh r0, [r0] + cmp r0, r3 + bne _0801A6DE + adds r7, #1 + subs r1, #0x80 + subs r4, #0x40 + cmp r7, #3 + bls _0801A6C8 +_0801A6DE: + mov r2, sl + cmp r2, #0 + bne _0801A6E6 + b _0801A8C0 +_0801A6E6: + mov r0, sb + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080002B0 + adds r5, r0, #0 + ldr r0, _0801A734 @ =0x00000369 + cmp r5, r0 + beq _0801A700 + adds r0, #4 + cmp r5, r0 + beq _0801A700 + b _0801A8B4 +_0801A700: + adds r0, r4, r7 + ldr r1, _0801A738 @ =0x00002004 + adds r0, r0, r1 + mov r2, r8 + adds r1, r2, r0 + movs r5, #0 + cmp r5, r7 + blo _0801A712 + b _0801A8B6 +_0801A712: + ldrb r0, [r1] + cmp r0, #0 + beq _0801A71A + b _0801A8B4 +_0801A71A: + adds r5, #1 + cmp r5, r7 + blo _0801A722 + b _0801A8B6 +_0801A722: + lsls r0, r5, #6 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _0801A71A + b _0801A8B4 + .align 2, 0 +_0801A730: .4byte gUnk_03000BF0 +_0801A734: .4byte 0x00000369 +_0801A738: .4byte 0x00002004 +_0801A73C: + movs r1, #0x2e + ldrsh r0, [r6, r1] + ldr r2, _0801A7E8 @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r4, r0, #4 + movs r3, #0x3f + ands r4, r3 + movs r1, #0x32 + ldrsh r0, [r6, r1] + ldrh r1, [r2, #8] + subs r1, #0xa + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r4, r0 + mov r2, r8 + adds r2, #4 + mov r3, ip + ldr r6, _0801A7EC @ =0x0000036F + lsls r0, r4, #1 + adds r1, r0, r2 +_0801A76A: + ldrh r0, [r1] + lsls r0, r0, #1 + adds r0, r3, r0 + ldrh r0, [r0] + cmp r0, r6 + beq _0801A780 + adds r1, #2 + adds r4, #1 + subs r5, #1 + cmp r5, #0 + bne _0801A76A +_0801A780: + subs r4, #1 + ldr r3, _0801A7F0 @ =0x00000372 + lsls r0, r4, #1 + adds r1, r0, r2 +_0801A788: + ldrh r0, [r1] + lsls r0, r0, #1 + add r0, ip + ldrh r0, [r0] + cmp r0, r3 + bne _0801A79E + adds r7, #1 + subs r1, #2 + subs r4, #1 + cmp r7, #3 + bls _0801A788 +_0801A79E: + mov r2, sl + cmp r2, #0 + bne _0801A7A6 + b _0801A8C0 +_0801A7A6: + mov r0, sb + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080002B0 + adds r5, r0, #0 + ldr r0, _0801A7F4 @ =0x00000369 + cmp r5, r0 + beq _0801A7BE + adds r0, #2 + cmp r5, r0 + bne _0801A8B4 +_0801A7BE: + lsls r0, r7, #6 + adds r0, r4, r0 + ldr r1, _0801A7F8 @ =0x00002004 + adds r0, r0, r1 + mov r2, r8 + adds r1, r2, r0 + movs r5, #0 + cmp r5, r7 + bhs _0801A8B6 + ldrb r0, [r1] + cmp r0, #0 + bne _0801A8B4 +_0801A7D6: + adds r5, #1 + cmp r5, r7 + bhs _0801A8B6 + adds r0, r1, r5 + ldrb r0, [r0] + cmp r0, #0 + beq _0801A7D6 + b _0801A8B4 + .align 2, 0 +_0801A7E8: .4byte gUnk_03000BF0 +_0801A7EC: .4byte 0x0000036F +_0801A7F0: .4byte 0x00000372 +_0801A7F4: .4byte 0x00000369 +_0801A7F8: .4byte 0x00002004 +_0801A7FC: + movs r0, #0x2e + ldrsh r1, [r6, r0] + ldr r3, _0801A890 @ =gUnk_03000BF0 + ldrh r0, [r3, #6] + adds r0, #0xa + subs r1, r1, r0 + asrs r4, r1, #4 + movs r2, #0x3f + ands r4, r2 + movs r1, #0x32 + ldrsh r0, [r6, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + mov r2, r8 + adds r2, #4 + mov r3, ip + ldr r6, _0801A894 @ =0x0000036F + lsls r0, r4, #1 + adds r1, r0, r2 +_0801A82A: + ldrh r0, [r1] + lsls r0, r0, #1 + adds r0, r3, r0 + ldrh r0, [r0] + cmp r0, r6 + beq _0801A840 + subs r1, #0x80 + subs r4, #0x40 + subs r5, #1 + cmp r5, #0 + bne _0801A82A +_0801A840: + subs r4, #1 + ldr r3, _0801A898 @ =0x00000372 + lsls r0, r4, #1 + adds r1, r0, r2 +_0801A848: + ldrh r0, [r1] + lsls r0, r0, #1 + add r0, ip + ldrh r0, [r0] + cmp r0, r3 + bne _0801A85E + adds r7, #1 + subs r1, #2 + subs r4, #1 + cmp r7, #3 + bls _0801A848 +_0801A85E: + mov r2, sl + cmp r2, #0 + beq _0801A8C0 + mov r0, sb + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080002B0 + adds r5, r0, #0 + ldr r0, _0801A89C @ =0x00000369 + cmp r5, r0 + beq _0801A87C + adds r0, #3 + cmp r5, r0 + bne _0801A8B4 +_0801A87C: + ldr r1, _0801A8A0 @ =0x00002003 + adds r0, r4, r1 + mov r2, r8 + adds r1, r2, r0 + movs r5, #0 + cmp r5, r7 + bhs _0801A8B6 + ldrb r0, [r1] + b _0801A8B0 + .align 2, 0 +_0801A890: .4byte gUnk_03000BF0 +_0801A894: .4byte 0x0000036F +_0801A898: .4byte 0x00000372 +_0801A89C: .4byte 0x00000369 +_0801A8A0: .4byte 0x00002003 +_0801A8A4: + adds r5, #1 + cmp r5, r7 + bhs _0801A8B6 + lsls r0, r5, #6 + adds r0, r0, r1 + ldrb r0, [r0] +_0801A8B0: + cmp r0, #0 + beq _0801A8A4 +_0801A8B4: + ldr r4, _0801A8CC @ =0x0000FFFF +_0801A8B6: + mov r0, sl + cmp r0, #0 + beq _0801A8C0 + lsls r0, r7, #0xc + orrs r4, r0 +_0801A8C0: + adds r0, r4, #0 +_0801A8C2: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801A8CC: .4byte 0x0000FFFF + + thumb_func_start sub_0801A8D0 +sub_0801A8D0: @ 0x0801A8D0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r1, #0 + cmp r5, #0 + beq _0801A978 + adds r0, r5, #0 + adds r0, #0x38 + ldrb r0, [r0] + bl sub_0808094C + adds r6, r0, #4 + cmp r4, #0 + bne _0801A92C + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r2, _0801A91C @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r4, r0, #4 + movs r3, #0x3f + ands r4, r3 + movs r1, #0x32 + ldrsh r0, [r5, r1] + ldrh r1, [r2, #8] + adds r1, #8 + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r4, r0 + lsls r0, r4, #1 + adds r0, r0, r6 + ldrh r1, [r0] + ldr r0, _0801A920 @ =0x00004055 + cmp r1, r0 + bne _0801A924 + subs r0, r4, #1 + b _0801A97A + .align 2, 0 +_0801A91C: .4byte gUnk_03000BF0 +_0801A920: .4byte 0x00004055 +_0801A924: + ldr r0, _0801A928 @ =0x00004056 + b _0801A96A + .align 2, 0 +_0801A928: .4byte 0x00004056 +_0801A92C: + movs r0, #0x2e + ldrsh r1, [r5, r0] + ldr r3, _0801A960 @ =gUnk_03000BF0 + ldrh r0, [r3, #6] + adds r0, #8 + subs r1, r1, r0 + asrs r4, r1, #4 + movs r2, #0x3f + ands r4, r2 + movs r1, #0x32 + ldrsh r0, [r5, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + lsls r0, r4, #1 + adds r0, r0, r6 + ldrh r1, [r0] + ldr r0, _0801A964 @ =0x00004057 + cmp r1, r0 + bne _0801A968 + adds r0, r4, #0 + subs r0, #0x40 + b _0801A97A + .align 2, 0 +_0801A960: .4byte gUnk_03000BF0 +_0801A964: .4byte 0x00004057 +_0801A968: + ldr r0, _0801A974 @ =0x00004058 +_0801A96A: + cmp r1, r0 + bne _0801A978 + adds r0, r4, #0 + b _0801A97A + .align 2, 0 +_0801A974: .4byte 0x00004058 +_0801A978: + ldr r0, _0801A97C @ =0x0000FFFF +_0801A97A: + pop {r4, r5, r6, pc} + .align 2, 0 +_0801A97C: .4byte 0x0000FFFF + + thumb_func_start sub_0801A980 +sub_0801A980: @ 0x0801A980 + push {r4, r5, r6, r7, lr} + ldr r4, _0801A9E0 @ =gUnk_03001160 + adds r6, r4, #0 + adds r6, #0x38 + ldrb r0, [r6] + bl sub_0808094C + ldrb r0, [r4, #0x14] + movs r2, #6 + ands r2, r0 + lsls r2, r2, #1 + ldr r0, _0801A9E4 @ =gUnk_080B44A8 + adds r2, r2, r0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r3, #0 + ldrsh r1, [r2, r3] + adds r0, r0, r1 + ldr r5, _0801A9E8 @ =gUnk_03000BF0 + ldrh r1, [r5, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r7, #0x32 + ldrsh r1, [r4, r7] + movs r4, #2 + ldrsh r2, [r2, r4] + adds r1, r1, r2 + ldrh r2, [r5, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + ldrb r1, [r6] + bl sub_080002B0 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + ldr r0, _0801A9EC @ =0x00003FFF + cmp r1, r0 + bhi _0801A9DC + adds r0, r1, #0 + bl sub_080002E4 +_0801A9DC: + movs r0, #0 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801A9E0: .4byte gUnk_03001160 +_0801A9E4: .4byte gUnk_080B44A8 +_0801A9E8: .4byte gUnk_03000BF0 +_0801A9EC: .4byte 0x00003FFF + + thumb_func_start sub_0801A9F0 +sub_0801A9F0: @ 0x0801A9F0 + push {r4, r5, lr} + adds r3, r0, #0 + adds r4, r2, #0 + movs r2, #0 + ldr r5, _0801AA0C @ =0xFFFFFCA0 + adds r0, r1, r5 + cmp r0, #4 + bhi _0801AA40 + lsls r0, r0, #2 + ldr r1, _0801AA10 @ =_0801AA14 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801AA0C: .4byte 0xFFFFFCA0 +_0801AA10: .4byte _0801AA14 +_0801AA14: @ jump table + .4byte _0801AA44 @ case 0 + .4byte _0801AA28 @ case 1 + .4byte _0801AA34 @ case 2 + .4byte _0801AA3A @ case 3 + .4byte _0801AA2E @ case 4 +_0801AA28: + cmp r3, #0 + bne _0801AA40 + b _0801AA44 +_0801AA2E: + cmp r3, #8 + bne _0801AA40 + b _0801AA44 +_0801AA34: + cmp r3, #0x10 + bne _0801AA40 + b _0801AA44 +_0801AA3A: + cmp r3, #0x18 + bne _0801AA40 + movs r2, #1 +_0801AA40: + cmp r2, #0 + beq _0801AA54 +_0801AA44: + ldr r0, _0801AA50 @ =gUnk_03001160 + adds r1, r4, #0 + adds r2, r3, #0 + bl sub_0801AA58 + b _0801AA56 + .align 2, 0 +_0801AA50: .4byte gUnk_03001160 +_0801AA54: + movs r0, #0 +_0801AA56: + pop {r4, r5, pc} + + thumb_func_start sub_0801AA58 +sub_0801AA58: @ 0x0801AA58 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + adds r5, r1, #0 + adds r7, r2, #0 + movs r0, #0x38 + adds r0, r0, r6 + mov r8, r0 + ldrb r0, [r0] + bl sub_0808094C + ldr r2, _0801AAF0 @ =gUnk_080B4488 + lsrs r1, r7, #3 + lsls r1, r1, #1 + adds r1, r1, r2 + movs r2, #0 + ldrsh r1, [r1, r2] + adds r1, r5, r1 + ldr r2, _0801AAF4 @ =0x00002004 + adds r0, r0, r2 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _0801AA94 + subs r0, #0x20 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1f + bhi _0801AB00 +_0801AA94: + movs r0, #7 + movs r1, #0 + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _0801AB00 + movs r3, #0 + strb r7, [r4, #0x15] + movs r1, #0x3f + adds r0, r5, #0 + ands r0, r1 + lsls r0, r0, #4 + adds r0, #8 + ldr r2, _0801AAF8 @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + adds r1, r1, r0 + strh r1, [r4, #0x2e] + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r5 + lsrs r0, r0, #2 + adds r0, #8 + ldrh r1, [r2, #8] + adds r1, r1, r0 + strh r1, [r4, #0x32] + mov r0, r8 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + ldr r2, _0801AAFC @ =gUnk_03003F80 + movs r0, #0xa0 + strb r0, [r2, #6] + movs r0, #5 + strb r0, [r2, #0xc] + ldr r0, [r2, #0x30] + movs r1, #1 + orrs r0, r1 + str r0, [r2, #0x30] + strh r3, [r6, #0x2c] + strh r3, [r6, #0x30] + strb r7, [r6, #0x15] + movs r0, #1 + b _0801AB02 + .align 2, 0 +_0801AAF0: .4byte gUnk_080B4488 +_0801AAF4: .4byte 0x00002004 +_0801AAF8: .4byte gUnk_03000BF0 +_0801AAFC: .4byte gUnk_03003F80 +_0801AB00: + movs r0, #0 +_0801AB02: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0801AB08 +sub_0801AB08: @ 0x0801AB08 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + adds r5, r0, #0 + mov r8, r1 + ldr r0, _0801AB4C @ =gUnk_02025EB0 + movs r1, #2 + cmp r8, r0 + bne _0801AB22 + movs r1, #1 +_0801AB22: + lsls r2, r1, #0xc + ldr r7, _0801AB50 @ =0x00003004 + add r7, r8 + mov r6, r8 + adds r6, #4 + movs r0, #0 + ldr r1, _0801AB54 @ =0x00003FFF + mov sb, r1 +_0801AB32: + movs r3, #0 + mov sl, r3 + adds r0, #1 + str r0, [sp] + movs r0, #0x80 + lsls r0, r0, #1 + adds r4, r5, r0 +_0801AB40: + ldrh r0, [r6] + cmp r0, sb + bhi _0801AB58 + lsls r0, r0, #2 + b _0801AB64 + .align 2, 0 +_0801AB4C: .4byte gUnk_02025EB0 +_0801AB50: .4byte 0x00003004 +_0801AB54: .4byte 0x00003FFF +_0801AB58: + ldrh r1, [r7] + adds r0, r2, #0 + str r2, [sp, #4] + bl sub_0801AC68 + ldr r2, [sp, #4] +_0801AB64: + lsls r0, r0, #1 + ldr r1, _0801AB8C @ =0x00007004 + adds r0, r0, r1 + mov r3, r8 + adds r1, r3, r0 + ldrh r0, [r1] + strh r0, [r5] + ldrh r0, [r1, #2] + strh r0, [r5, #2] + ldrh r0, [r1, #4] + strh r0, [r4] + ldrh r0, [r1, #6] + strh r0, [r4, #2] + adds r4, #4 + adds r5, #4 + ldrh r0, [r6, #2] + cmp r0, sb + bhi _0801AB90 + lsls r0, r0, #2 + b _0801AB9C + .align 2, 0 +_0801AB8C: .4byte 0x00007004 +_0801AB90: + adds r0, r2, #1 + ldrh r1, [r7, #2] + str r2, [sp, #4] + bl sub_0801AC68 + ldr r2, [sp, #4] +_0801AB9C: + lsls r0, r0, #1 + ldr r1, _0801ABC4 @ =0x00007004 + adds r0, r0, r1 + mov r3, r8 + adds r1, r3, r0 + ldrh r0, [r1] + strh r0, [r5] + ldrh r0, [r1, #2] + strh r0, [r5, #2] + ldrh r0, [r1, #4] + strh r0, [r4] + ldrh r0, [r1, #6] + strh r0, [r4, #2] + adds r4, #4 + adds r5, #4 + ldrh r0, [r6, #4] + cmp r0, sb + bhi _0801ABC8 + lsls r0, r0, #2 + b _0801ABD4 + .align 2, 0 +_0801ABC4: .4byte 0x00007004 +_0801ABC8: + adds r0, r2, #2 + ldrh r1, [r7, #4] + str r2, [sp, #4] + bl sub_0801AC68 + ldr r2, [sp, #4] +_0801ABD4: + lsls r0, r0, #1 + ldr r1, _0801ABFC @ =0x00007004 + adds r0, r0, r1 + mov r3, r8 + adds r1, r3, r0 + ldrh r0, [r1] + strh r0, [r5] + ldrh r0, [r1, #2] + strh r0, [r5, #2] + ldrh r0, [r1, #4] + strh r0, [r4] + ldrh r0, [r1, #6] + strh r0, [r4, #2] + adds r4, #4 + adds r5, #4 + ldrh r0, [r6, #6] + cmp r0, sb + bhi _0801AC00 + lsls r0, r0, #2 + b _0801AC0C + .align 2, 0 +_0801ABFC: .4byte 0x00007004 +_0801AC00: + adds r0, r2, #3 + ldrh r1, [r7, #6] + str r2, [sp, #4] + bl sub_0801AC68 + ldr r2, [sp, #4] +_0801AC0C: + lsls r0, r0, #1 + ldr r1, _0801AC64 @ =0x00007004 + adds r0, r0, r1 + mov r3, r8 + adds r1, r3, r0 + ldrh r0, [r1] + strh r0, [r5] + ldrh r0, [r1, #2] + strh r0, [r5, #2] + ldrh r0, [r1, #4] + strh r0, [r4] + ldrh r0, [r1, #6] + strh r0, [r4, #2] + adds r4, #4 + adds r5, #4 + adds r6, #8 + adds r7, #8 + adds r0, r2, #4 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + mov r0, sl + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sl, r0 + cmp r0, #0xf + bhi _0801AC44 + b _0801AB40 +_0801AC44: + movs r0, #0x80 + lsls r0, r0, #1 + adds r5, r5, r0 + ldr r1, [sp] + lsls r0, r1, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x3f + bhi _0801AC56 + b _0801AB32 +_0801AC56: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801AC64: .4byte 0x00007004 + + thumb_func_start sub_0801AC68 +sub_0801AC68: @ 0x0801AC68 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r2, _0801AC84 @ =gUnk_0200B240 + ldr r0, _0801AC88 @ =gUnk_02034350 + ldrh r3, [r0, #0xe] + movs r0, #0 + cmp r0, r3 + bhs _0801AC94 +_0801AC78: + ldrh r5, [r2] + cmp r4, r5 + bne _0801AC8C + ldrh r0, [r2, #2] + lsls r0, r0, #2 + b _0801AC96 + .align 2, 0 +_0801AC84: .4byte gUnk_0200B240 +_0801AC88: .4byte gUnk_02034350 +_0801AC8C: + adds r2, #4 + adds r0, #1 + cmp r0, r3 + blo _0801AC78 +_0801AC94: + lsls r0, r1, #2 +_0801AC96: + pop {r4, r5, pc} + + thumb_func_start sub_0801AC98 +sub_0801AC98: @ 0x0801AC98 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + ldr r0, _0801ACD0 @ =gUnk_03000BF0 + ldrh r1, [r0, #0x1e] + lsrs r1, r1, #4 + mov r8, r1 + ldrh r0, [r0, #0x20] + lsrs r0, r0, #4 + str r0, [sp] + movs r6, #0 + movs r1, #0 + cmp r1, r0 + bhs _0801AD5C +_0801ACBA: + movs r0, #0 + adds r1, #1 + str r1, [sp, #4] + cmp r0, r8 + bhs _0801AD4C +_0801ACC4: + ldr r5, _0801ACD4 @ =gUnk_080B44C0 + adds r0, #1 + mov sl, r0 + adds r0, r6, #1 + mov sb, r0 + b _0801ACDA + .align 2, 0 +_0801ACD0: .4byte gUnk_03000BF0 +_0801ACD4: .4byte gUnk_080B44C0 +_0801ACD8: + adds r5, #0xc +_0801ACDA: + ldrh r0, [r5] + ldr r1, _0801AD0C @ =0x0000FFFF + cmp r0, r1 + beq _0801AD06 + adds r4, r0, #0 + adds r0, r6, #0 + movs r1, #1 + bl sub_080002B0 + cmp r4, r0 + bne _0801ACD8 + ldrh r0, [r5, #0xa] + lsls r0, r0, #2 + ldr r1, _0801AD10 @ =gUnk_080B44B8 + adds r0, r0, r1 + ldr r0, [r0] + cmp r0, #0 + beq _0801ACD8 + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0801AD6C +_0801AD06: + ldr r5, _0801AD14 @ =gUnk_080B44C2 + ldr r7, _0801AD0C @ =0x0000FFFF + b _0801AD1A + .align 2, 0 +_0801AD0C: .4byte 0x0000FFFF +_0801AD10: .4byte gUnk_080B44B8 +_0801AD14: .4byte gUnk_080B44C2 +_0801AD18: + adds r5, #0xc +_0801AD1A: + ldrh r0, [r5] + cmp r0, r7 + beq _0801AD44 + adds r4, r0, #0 + adds r0, r6, #0 + movs r1, #2 + bl sub_080002B0 + cmp r4, r0 + bne _0801AD18 + ldrh r0, [r5, #0xa] + lsls r0, r0, #2 + ldr r1, _0801AD68 @ =gUnk_080B44B8 + adds r0, r0, r1 + ldr r0, [r0] + cmp r0, #0 + beq _0801AD18 + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0801AD6C +_0801AD44: + mov r0, sl + mov r6, sb + cmp r0, r8 + blo _0801ACC4 +_0801AD4C: + adds r0, r6, #0 + adds r0, #0x40 + mov r1, r8 + subs r6, r0, r1 + ldr r1, [sp, #4] + ldr r0, [sp] + cmp r1, r0 + blo _0801ACBA +_0801AD5C: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801AD68: .4byte gUnk_080B44B8 + + thumb_func_start sub_0801AD6C +sub_0801AD6C: @ 0x0801AD6C + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + ldrh r0, [r4, #2] + cmp r0, #9 + beq _0801ADDC + bl sub_0805E678 + adds r5, r0, #0 + cmp r5, #0 + beq _0801AE26 + ldrh r0, [r4, #2] + strb r0, [r5, #8] + ldrh r0, [r4, #4] + strb r0, [r5, #9] + ldrh r0, [r4, #6] + strb r0, [r5, #0xa] + ldrh r0, [r4, #8] + strb r0, [r5, #0xb] + movs r1, #0x3f + adds r0, r6, #0 + ands r0, r1 + lsls r0, r0, #4 + adds r0, #8 + ldr r2, _0801ADD4 @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + adds r1, r1, r0 + movs r3, #0 + strh r1, [r5, #0x2e] + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r6 + lsrs r0, r0, #2 + adds r0, #8 + ldrh r1, [r2, #8] + adds r1, r1, r0 + strh r1, [r5, #0x32] + adds r0, r5, #0 + adds r0, #0x38 + strb r3, [r0] + adds r0, r5, #0 + bl sub_08016A30 + ldr r1, _0801ADD8 @ =gUnk_081091E4 + ldrb r0, [r5, #8] + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r5, #0 + bl sub_0805EA2C + b _0801AE26 + .align 2, 0 +_0801ADD4: .4byte gUnk_03000BF0 +_0801ADD8: .4byte gUnk_081091E4 +_0801ADDC: + bl sub_0805E8D4 + adds r3, r0, #0 + cmp r3, #0 + beq _0801AE26 + ldrh r0, [r4, #2] + strb r0, [r3, #8] + ldrh r0, [r4, #4] + strb r0, [r3, #9] + ldrh r0, [r4, #6] + strb r0, [r3, #0xa] + ldrh r0, [r4, #8] + strb r0, [r3, #0xb] + movs r1, #0x3f + adds r0, r6, #0 + ands r0, r1 + lsls r0, r0, #4 + adds r0, #8 + ldr r2, _0801AE28 @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + adds r1, r1, r0 + strh r1, [r3, #0x38] + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r6 + lsrs r0, r0, #2 + adds r0, #8 + ldrh r1, [r2, #8] + adds r1, r1, r0 + strh r1, [r3, #0x3a] + ldr r1, _0801AE2C @ =gUnk_081091E4 + ldrb r0, [r3, #8] + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r3, #0 + bl sub_0805EA2C +_0801AE26: + pop {r4, r5, r6, pc} + .align 2, 0 +_0801AE28: .4byte gUnk_03000BF0 +_0801AE2C: .4byte gUnk_081091E4 + + thumb_func_start sub_0801AE30 +sub_0801AE30: @ 0x0801AE30 + movs r0, #1 + bx lr + + thumb_func_start sub_0801AE34 +sub_0801AE34: @ 0x0801AE34 + ldr r0, _0801AE40 @ =gUnk_03000BF0 + ldrb r0, [r0, #0xf] + lsrs r0, r0, #1 + movs r1, #1 + ands r0, r1 + bx lr + .align 2, 0 +_0801AE40: .4byte gUnk_03000BF0 + + thumb_func_start sub_0801AE44 +sub_0801AE44: @ 0x0801AE44 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0801AEE0 @ =gUnk_03000BF0 + movs r0, #0 + str r0, [r1, #0x34] + bl sub_0807BFD0 + cmp r4, #0 + beq _0801AE5A + bl sub_0807C0DC +_0801AE5A: + bl sub_080809D4 + bl sub_080805F8 + ldr r0, _0801AEE4 @ =gUnk_030010A0 + adds r0, #0x2d + ldrb r0, [r0] + cmp r0, #0 + beq _0801AE70 + bl sub_0807C898 +_0801AE70: + ldr r4, _0801AEE8 @ =gUnk_02033A90 + ldrb r0, [r4, #0xc] + cmp r0, #0 + beq _0801AE8C + ldr r1, _0801AEEC @ =0x0600F000 + movs r2, #0x80 + lsls r2, r2, #4 + movs r0, #0xf + bl sub_0801D5EC + movs r0, #1 + rsbs r0, r0, #0 + bl sub_0805BB74 +_0801AE8C: + movs r0, #5 + bl sub_0804B128 + cmp r0, #0 + beq _0801AE9A + bl _call_via_r0 +_0801AE9A: + ldr r0, _0801AEF0 @ =gUnk_03004030 + ldrb r0, [r0, #8] + cmp r0, #0 + bne _0801AEB6 + ldr r1, _0801AEF4 @ =0x0000088C + adds r0, r4, r1 + ldr r1, [r0] + cmp r1, #0 + beq _0801AEB6 + ldr r2, _0801AEF8 @ =0x00000888 + adds r0, r4, r2 + ldr r0, [r0] + bl _call_via_r1 +_0801AEB6: + ldr r0, _0801AEE0 @ =gUnk_03000BF0 + ldrb r1, [r0, #0xf] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0801AF0C + ldr r1, _0801AEFC @ =gUnk_02025EB0 + ldr r0, [r1] + cmp r0, #0 + beq _0801AED0 + ldr r0, _0801AF00 @ =gUnk_02019EE0 + bl sub_0801AB08 +_0801AED0: + ldr r1, _0801AF04 @ =gUnk_0200B650 + ldr r0, [r1] + cmp r0, #0 + beq _0801AF10 + ldr r0, _0801AF08 @ =gUnk_02002F00 + bl sub_0801AB08 + b _0801AF10 + .align 2, 0 +_0801AEE0: .4byte gUnk_03000BF0 +_0801AEE4: .4byte gUnk_030010A0 +_0801AEE8: .4byte gUnk_02033A90 +_0801AEEC: .4byte 0x0600F000 +_0801AEF0: .4byte gUnk_03004030 +_0801AEF4: .4byte 0x0000088C +_0801AEF8: .4byte 0x00000888 +_0801AEFC: .4byte gUnk_02025EB0 +_0801AF00: .4byte gUnk_02019EE0 +_0801AF04: .4byte gUnk_0200B650 +_0801AF08: .4byte gUnk_02002F00 +_0801AF0C: + bl sub_0807C4F8 +_0801AF10: + bl sub_08000108 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0801AF18 +sub_0801AF18: @ 0x0801AF18 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r6, r1, #0 + adds r5, r2, #0 + movs r1, #0 + ldrsh r0, [r4, r1] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _0801AF46 + adds r7, r1, #0 +_0801AF2E: + ldrh r0, [r4] + movs r2, #2 + ldrsh r1, [r4, r2] + adds r1, r6, r1 + adds r2, r5, #0 + bl sub_0800015E + adds r4, #4 + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, r7 + bne _0801AF2E +_0801AF46: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0801AF48 +sub_0801AF48: @ 0x0801AF48 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + adds r5, r2, #0 + ldr r0, _0801AF7C @ =0x00003FFF + cmp r4, r0 + bhi _0801AF7A + ldr r0, _0801AF80 @ =gUnk_030010A0 + adds r0, #0x30 + ldrb r0, [r0] + cmp r0, #0 + bne _0801AF7A + ldr r2, _0801AF84 @ =gUnk_02034350 + ldrh r3, [r2, #0xe] + cmp r3, #0xff + bhi _0801AF7A + ldr r0, _0801AF88 @ =gUnk_0200B240 + lsls r1, r3, #2 + adds r1, r1, r0 + strh r4, [r1, #2] + lsls r0, r5, #0xc + orrs r0, r6 + strh r0, [r1] + adds r0, r3, #1 + strh r0, [r2, #0xe] +_0801AF7A: + pop {r4, r5, r6, pc} + .align 2, 0 +_0801AF7C: .4byte 0x00003FFF +_0801AF80: .4byte gUnk_030010A0 +_0801AF84: .4byte gUnk_02034350 +_0801AF88: .4byte gUnk_0200B240 + + thumb_func_start sub_0801AF8C +sub_0801AF8C: @ 0x0801AF8C + push {r4, r5, r6, lr} + adds r4, r0, #0 + lsls r1, r1, #0xc + orrs r4, r1 + ldr r2, _0801AFB8 @ =gUnk_0200B240 + ldr r0, _0801AFBC @ =gUnk_02034350 + ldrh r1, [r0, #0xe] + movs r3, #0 + adds r5, r2, #0 + cmp r3, r1 + bhs _0801AFE0 + ldrh r6, [r2] + cmp r4, r6 + bne _0801AFC0 + subs r1, #1 + strh r1, [r0, #0xe] + lsls r0, r1, #2 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r2] + b _0801AFE0 + .align 2, 0 +_0801AFB8: .4byte gUnk_0200B240 +_0801AFBC: .4byte gUnk_02034350 +_0801AFC0: + adds r2, #4 + adds r3, #1 + cmp r3, r1 + bhs _0801AFE0 + ldrh r6, [r2] + cmp r4, r6 + bne _0801AFC0 + subs r1, #1 + strh r1, [r0, #0xe] + adds r2, r5, #0 + lsls r0, r3, #2 + adds r0, r0, r2 + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + str r1, [r0] +_0801AFE0: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0801AFE4 +sub_0801AFE4: @ 0x0801AFE4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r3, _0801B018 @ =gUnk_02027EB4 + ldr r0, _0801B01C @ =gUnk_03000BF0 + ldrh r1, [r0, #0x1e] + lsrs r1, r1, #4 + mov sl, r1 + ldrh r0, [r0, #0x20] + lsrs r0, r0, #4 + mov sb, r0 + movs r7, #0 + cmp r7, sb + bhs _0801B054 +_0801B004: + movs r2, #0 + adds r0, r7, #1 + mov r8, r0 + cmp r2, sl + bhs _0801B046 +_0801B00E: + ldr r1, _0801B020 @ =gUnk_080B44D0 + adds r4, r3, #1 + adds r5, r2, #1 + b _0801B026 + .align 2, 0 +_0801B018: .4byte gUnk_02027EB4 +_0801B01C: .4byte gUnk_03000BF0 +_0801B020: .4byte gUnk_080B44D0 +_0801B024: + adds r1, #4 +_0801B026: + ldrh r0, [r1] + cmp r0, #0 + beq _0801B03E + ldrb r6, [r3] + cmp r0, r6 + bne _0801B024 + ldrh r0, [r1, #2] + lsls r1, r7, #6 + adds r1, r1, r2 + movs r2, #1 + bl sub_0800015E +_0801B03E: + adds r3, r4, #0 + adds r2, r5, #0 + cmp r2, sl + blo _0801B00E +_0801B046: + adds r0, r3, #0 + adds r0, #0x40 + mov r1, sl + subs r3, r0, r1 + mov r7, r8 + cmp r7, sb + blo _0801B004 +_0801B054: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0801B060 +sub_0801B060: @ 0x0801B060 + push {r4, r5, lr} + movs r3, #0 + ldr r4, _0801B0B0 @ =gUnk_02000CC0 + movs r5, #8 +_0801B068: + ldr r2, [r4] + cmp r2, #0 + beq _0801B0C2 + ldrh r1, [r4, #6] + subs r0, r1, #1 + strh r0, [r4, #6] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0801B0BA + cmp r3, #0 + bne _0801B0B8 + ldr r0, _0801B0B4 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _0801B08C + ldr r0, [r2] + bl sub_0801B0EC +_0801B08C: + ldr r0, [r4] + adds r0, #4 + bl sub_0801B0C4 + strh r0, [r4, #6] + ldr r0, [r4] + adds r1, r0, #0 + adds r1, #8 + str r1, [r4] + ldr r0, [r0, #8] + cmp r0, #0 + bne _0801B0AC + ldr r0, [r1, #4] + lsls r0, r0, #3 + subs r0, r1, r0 + str r0, [r4] +_0801B0AC: + movs r3, #1 + b _0801B0BA + .align 2, 0 +_0801B0B0: .4byte gUnk_02000CC0 +_0801B0B4: .4byte gUnk_03000FD0 +_0801B0B8: + strh r1, [r4, #6] +_0801B0BA: + adds r4, #8 + subs r5, #1 + cmp r5, #0 + bne _0801B068 +_0801B0C2: + pop {r4, r5, pc} + + thumb_func_start sub_0801B0C4 +sub_0801B0C4: @ 0x0801B0C4 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4] + cmp r0, #0 + bge _0801B0E6 + bl sub_08000E50 + ldr r1, _0801B0E8 @ =gUnk_080B4550 + ldrb r2, [r4] + lsls r2, r2, #2 + adds r2, r2, r1 + movs r1, #7 + ands r1, r0 + ldr r0, [r2] + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] +_0801B0E6: + pop {r4, pc} + .align 2, 0 +_0801B0E8: .4byte gUnk_080B4550 + + thumb_func_start sub_0801B0EC +sub_0801B0EC: @ 0x0801B0EC + push {r4, r5, lr} + adds r4, r0, #0 +_0801B0F0: + ldr r1, [r4, #4] + ldr r0, _0801B110 @ =gUnk_085A2E80 + adds r5, r1, r0 + ldrb r2, [r4, #2] + ldrh r3, [r4] + ldr r0, [r4] + lsrs r0, r0, #0x1c + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0801B114 + lsrs r1, r3, #5 + adds r0, r5, #0 + bl sub_0801D754 + b _0801B122 + .align 2, 0 +_0801B110: .4byte gUnk_085A2E80 +_0801B114: + movs r0, #0xc0 + lsls r0, r0, #0x13 + adds r1, r3, r0 + lsls r2, r2, #5 + adds r0, r5, #0 + bl sub_0801D66C +_0801B122: + ldr r0, [r4] + cmp r0, #0 + bge _0801B12C + adds r4, #8 + b _0801B0F0 +_0801B12C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0801B130 +sub_0801B130: @ 0x0801B130 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + bl sub_0801B170 + ldr r5, _0801B164 @ =gUnk_02000CC0 + ldrh r0, [r4] + ldr r1, _0801B168 @ =0x0000FFFF + cmp r0, r1 + beq _0801B162 + ldr r7, _0801B16C @ =gUnk_080B7278 + adds r6, r1, #0 +_0801B146: + ldrh r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r7 + ldr r0, [r0] + str r0, [r5] + adds r0, #4 + bl sub_0801B0C4 + strh r0, [r5, #6] + adds r5, #8 + adds r4, #2 + ldrh r0, [r4] + cmp r0, r6 + bne _0801B146 +_0801B162: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801B164: .4byte gUnk_02000CC0 +_0801B168: .4byte 0x0000FFFF +_0801B16C: .4byte gUnk_080B7278 + + thumb_func_start sub_0801B170 +sub_0801B170: @ 0x0801B170 + push {lr} + movs r1, #0 + movs r2, #0 + ldr r0, _0801B184 @ =gUnk_02000CC0 +_0801B178: + str r2, [r0] + adds r0, #8 + adds r1, #1 + cmp r1, #7 + bls _0801B178 + pop {pc} + .align 2, 0 +_0801B184: .4byte gUnk_02000CC0 + + thumb_func_start sub_0801B188 +sub_0801B188: @ 0x0801B188 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0801B1E0 @ =gUnk_080B77C8 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_08004274 + ldrb r2, [r4, #0xc] + cmp r2, #3 + beq _0801B24E + ldrb r1, [r4, #0xe] + cmp r1, #0 + beq _0801B1E4 + adds r0, r4, #0 + adds r0, #0x68 + ldrb r0, [r0] + cmp r0, #7 + bne _0801B1BC + subs r0, r1, #1 + strb r0, [r4, #0xe] +_0801B1BC: + ldrb r1, [r4, #0xe] + cmp r1, #0 + bne _0801B24E + movs r0, #0x50 + strb r0, [r4, #0xf] + str r1, [r4, #0x68] + ldrb r0, [r4, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x19] + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C + b _0801B24E + .align 2, 0 +_0801B1E0: .4byte gUnk_080B77C8 +_0801B1E4: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0801B24E + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0801B248 + cmp r2, #2 + bne _0801B204 + ldrb r0, [r4, #0xd] + cmp r0, #1 + bne _0801B204 + ldr r0, _0801B244 @ =gUnk_03003F80 + strb r1, [r0, #5] +_0801B204: + movs r0, #3 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0x3c + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r2] + movs r0, #0xf + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #0x13 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0805EC60 + adds r0, r4, #0 + bl sub_08078954 + adds r0, r4, #0 + movs r1, #0x20 + movs r2, #0 + movs r3, #0 + bl sub_080A2988 + adds r0, r4, #0 + bl sub_0801B418 + b _0801B24E + .align 2, 0 +_0801B244: .4byte gUnk_03003F80 +_0801B248: + adds r0, r4, #0 + bl sub_0801B3A4 +_0801B24E: + pop {r4, pc} + + thumb_func_start sub_0801B250 +sub_0801B250: @ 0x0801B250 + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + movs r0, #1 + strb r0, [r2, #0xc] + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + subs r0, #0x3a + ands r0, r1 + movs r1, #0x18 + orrs r0, r1 + strb r0, [r3] + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] + ldrb r1, [r2, #0xa] + adds r0, r1, #0 + cmp r0, #0xff + bne _0801B28A + movs r0, #0x3c + b _0801B29C +_0801B28A: + cmp r0, #0xfe + bne _0801B29A + movs r0, #0xf + strb r0, [r2, #0xe] + movs r0, #0xff + orrs r0, r1 + strb r0, [r2, #0xa] + b _0801B29E +_0801B29A: + movs r0, #0x96 +_0801B29C: + strb r0, [r2, #0xe] +_0801B29E: + ldr r0, _0801B2BC @ =gUnk_080B77F4 + str r0, [r2, #0x48] + movs r0, #0 + strb r0, [r2, #0x16] + adds r0, r2, #0 + adds r0, #0x68 + ldrb r0, [r0] + cmp r0, #7 + bne _0801B2C0 + adds r0, r2, #0 + movs r1, #5 + bl sub_08004260 + b _0801B2C8 + .align 2, 0 +_0801B2BC: .4byte gUnk_080B77F4 +_0801B2C0: + adds r0, r2, #0 + movs r1, #0x15 + bl sub_08004260 +_0801B2C8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0801B2CC +sub_0801B2CC: @ 0x0801B2CC + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0800442E + cmp r0, #0 + bne _0801B2DE + adds r0, r4, #0 + bl sub_08078930 +_0801B2DE: + movs r0, #8 + bl sub_0805436C + cmp r0, #1 + beq _0801B2F6 + cmp r0, #1 + blo _0801B2F2 + cmp r0, #2 + beq _0801B2FA + b _0801B2FC +_0801B2F2: + movs r5, #1 + b _0801B2FC +_0801B2F6: + movs r5, #2 + b _0801B2FC +_0801B2FA: + movs r5, #0 +_0801B2FC: + ldr r0, _0801B314 @ =gUnk_03003F80 + adds r0, #0x92 + ldrh r0, [r0] + ands r5, r0 + cmp r5, #0 + beq _0801B310 + movs r0, #0 + strb r0, [r4, #0xe] + movs r0, #1 + strb r0, [r4, #0xf] +_0801B310: + pop {r4, r5, pc} + .align 2, 0 +_0801B314: .4byte gUnk_03003F80 + + thumb_func_start sub_0801B318 +sub_0801B318: @ 0x0801B318 + push {lr} + ldr r2, _0801B32C @ =gUnk_080B77D8 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0801B32C: .4byte gUnk_080B77D8 + + thumb_func_start sub_0801B330 +sub_0801B330: @ 0x0801B330 + push {lr} + ldrb r1, [r0, #0xd] + adds r1, #1 + strb r1, [r0, #0xd] + bl sub_08079BD8 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0801B340 +sub_0801B340: @ 0x0801B340 + adds r0, #0x29 + ldrb r2, [r0] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #0x10 + orrs r1, r2 + strb r1, [r0] + bx lr + .align 2, 0 + + thumb_func_start sub_0801B354 +sub_0801B354: @ 0x0801B354 + adds r0, #0x29 + ldrb r2, [r0] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #0x18 + orrs r1, r2 + strb r1, [r0] + bx lr + .align 2, 0 + + thumb_func_start sub_0801B368 +sub_0801B368: @ 0x0801B368 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + subs r0, #1 + movs r1, #0 + strb r0, [r2, #0xc] + strb r1, [r2, #0xd] + ldrb r0, [r2, #0xe] + cmp r0, #0x3c + bls _0801B380 + movs r0, #0x3c + strb r0, [r2, #0xe] +_0801B380: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0801B384 +sub_0801B384: @ 0x0801B384 + push {lr} + bl sub_0805E780 + pop {pc} + + thumb_func_start sub_0801B38C +sub_0801B38C: @ 0x0801B38C + push {lr} + ldrb r1, [r0, #0xe] + subs r1, #1 + strb r1, [r0, #0xe] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #0xff + bne _0801B3A0 + bl sub_0805E780 +_0801B3A0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0801B3A4 +sub_0801B3A4: @ 0x0801B3A4 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + movs r5, #8 + cmp r0, #0x28 + bhi _0801B3F4 + movs r5, #4 + ldr r1, [r4, #0x68] + movs r0, #0x80 + lsls r0, r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0801B3C4 + adds r0, r1, #0 + subs r0, #0x10 + b _0801B3C8 +_0801B3C4: + adds r0, r1, #0 + adds r0, #0x10 +_0801B3C8: + str r0, [r4, #0x68] + ldr r1, [r4, #0x68] + movs r2, #0xf0 + adds r0, r1, #0 + ands r0, r2 + subs r0, #1 + cmp r0, #0x7f + bls _0801B3E0 + movs r0, #0x80 + lsls r0, r0, #8 + eors r1, r0 + str r1, [r4, #0x68] +_0801B3E0: + ldr r0, [r4, #0x68] + ands r0, r2 + movs r2, #0x98 + lsls r2, r2, #1 + subs r2, r2, r0 + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C +_0801B3F4: + ldrb r0, [r4, #0xf] + ands r0, r5 + cmp r0, #0 + bne _0801B408 + ldrb r1, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x1a] + b _0801B416 +_0801B408: + ldrb r0, [r4, #0x1a] + lsrs r2, r0, #4 + movs r1, #0x10 + rsbs r1, r1, #0 + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x1a] +_0801B416: + pop {r4, r5, pc} + + thumb_func_start sub_0801B418 +sub_0801B418: @ 0x0801B418 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + movs r6, #0x10 + movs r0, #0x10 + rsbs r0, r0, #0 + mov sb, r0 + mov r8, sb +_0801B42C: + movs r4, #0x10 + adds r7, r6, #0 + subs r7, #0x10 +_0801B432: + movs r0, #0x2e + ldrsh r2, [r5, r0] + adds r2, r2, r4 + movs r0, #0x32 + ldrsh r3, [r5, r0] + adds r3, r3, r6 + adds r0, r5, #0 + movs r1, #3 + bl sub_08008796 + subs r4, #0x10 + cmp r4, r8 + bge _0801B432 + adds r6, r7, #0 + cmp r6, sb + bge _0801B42C + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0801B45C +sub_0801B45C: @ 0x0801B45C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0801B48C @ =gUnk_080B77FC + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0xb + beq _0801B4AC + ldrb r0, [r4, #0x14] + cmp r0, #6 + bne _0801B490 + adds r1, r4, #0 + adds r1, #0x86 + movs r2, #0x80 + lsls r2, r2, #6 + b _0801B496 + .align 2, 0 +_0801B48C: .4byte gUnk_080B77FC +_0801B490: + adds r1, r4, #0 + adds r1, #0x86 + ldr r2, _0801B4C4 @ =0xFFFFE000 +_0801B496: + adds r0, r2, #0 + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] + movs r2, #0x80 + lsls r2, r2, #1 + ldrh r3, [r1] + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_0805EC9C +_0801B4AC: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _0801B4C0 + movs r0, #0xfb + bl sub_08004488 +_0801B4C0: + pop {r4, pc} + .align 2, 0 +_0801B4C4: .4byte 0xFFFFE000 + + thumb_func_start sub_0801B4C8 +sub_0801B4C8: @ 0x0801B4C8 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r3, _0801B52C @ =gUnk_03003F80 + str r4, [r3, #0x2c] + movs r2, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _0801B530 @ =gUnk_081271CC + str r0, [r4, #0x48] + movs r0, #0xff + strb r0, [r4, #0x1e] + adds r0, r4, #0 + adds r0, #0x80 + strb r2, [r0] + adds r1, r4, #0 + adds r1, #0x58 + movs r0, #0xb + strb r0, [r1] + ldr r5, _0801B534 @ =gUnk_03001160 + str r5, [r4, #0x50] + adds r0, r4, #0 + adds r0, #0x86 + strh r2, [r0] + ldrb r1, [r4, #0x14] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0801B518 + ldrb r0, [r5, #0x18] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x1f + movs r1, #1 + bics r1, r0 + lsls r1, r1, #6 + ldrb r2, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] +_0801B518: + adds r0, r4, #0 + adds r0, #0x68 + ldrb r0, [r0] + cmp r0, #0xc + bne _0801B538 + movs r0, #0xa0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + movs r0, #0x3c + b _0801B540 + .align 2, 0 +_0801B52C: .4byte gUnk_03003F80 +_0801B530: .4byte gUnk_081271CC +_0801B534: .4byte gUnk_03001160 +_0801B538: + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + movs r0, #0x1e +_0801B540: + strb r0, [r4, #0xe] + ldrb r1, [r3, #0xd] + movs r0, #0xd + ldrsb r0, [r3, r0] + cmp r0, #0 + blt _0801B550 + strb r1, [r4, #0x15] + b _0801B556 +_0801B550: + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] +_0801B556: + ldrb r0, [r4, #0x15] + adds r1, r4, #0 + adds r1, #0x83 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #2 + bne _0801B56C + movs r0, #1 + strb r0, [r4, #0xb] +_0801B56C: + adds r0, r4, #0 + movs r1, #1 + movs r2, #3 + bl sub_080AE008 + adds r0, r4, #0 + bl sub_0801766C + adds r0, r4, #0 + bl sub_0801B584 + pop {r4, r5, pc} + + thumb_func_start sub_0801B584 +sub_0801B584: @ 0x0801B584 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + bl sub_0801B804 + ldr r1, _0801B5F8 @ =gUnk_03003F80 + ldrb r0, [r1, #4] + cmp r0, #0 + beq _0801B5A8 + ldrb r0, [r1, #0x1a] + cmp r0, #0 + bne _0801B5A8 + ldr r0, [r1, #0x2c] + cmp r0, r6 + bne _0801B5B4 + ldr r0, _0801B5FC @ =gUnk_03001160 + ldrb r0, [r0, #0xc] + cmp r0, #1 + beq _0801B5B8 +_0801B5A8: + ldr r1, _0801B5F8 @ =gUnk_03003F80 + ldr r0, [r1, #0x2c] + cmp r0, r6 + bne _0801B5B4 + movs r0, #0 + str r0, [r1, #0x2c] +_0801B5B4: + bl sub_0805E780 +_0801B5B8: + ldr r7, _0801B5FC @ =gUnk_03001160 + adds r0, r7, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r3, #1 + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0801B600 + adds r0, r6, #0 + adds r0, #0x68 + ldrb r0, [r0] + movs r2, #0 + cmp r0, #0xc + bne _0801B5D8 + movs r2, #6 +_0801B5D8: + lsrs r0, r1, #4 + adds r1, r0, r2 + ldrb r0, [r6, #0x1e] + cmp r0, r1 + beq _0801B5EE + strb r1, [r6, #0x1e] + ldrb r1, [r6, #0x1e] + ldrh r2, [r6, #0x12] + adds r0, r6, #0 + bl sub_080042D0 +_0801B5EE: + adds r0, r6, #0 + adds r1, r7, #0 + bl sub_08078E84 + b _0801B674 + .align 2, 0 +_0801B5F8: .4byte gUnk_03003F80 +_0801B5FC: .4byte gUnk_03001160 +_0801B600: + movs r5, #0 + movs r0, #2 + strb r0, [r6, #0xc] + adds r1, r6, #0 + adds r1, #0x60 + movs r0, #0xd5 + strh r0, [r1] + ldrb r0, [r6, #0x10] + movs r4, #0x80 + orrs r0, r4 + strb r0, [r6, #0x10] + subs r1, #0x24 + ldrb r0, [r1] + orrs r0, r3 + strb r0, [r1] + adds r0, r7, #0 + adds r0, #0x3b + ldrb r0, [r0] + adds r2, r6, #0 + adds r2, #0x3b + strb r0, [r2] + movs r0, #0xa6 + strh r0, [r6, #0x12] + ldrb r1, [r6, #0x18] + subs r0, #0xe7 + ands r0, r1 + movs r1, #4 + rsbs r1, r1, #0 + ands r0, r1 + orrs r0, r3 + strb r0, [r6, #0x18] + ldrb r1, [r6, #0x14] + lsrs r1, r1, #1 + lsls r1, r1, #1 + ldr r2, _0801B678 @ =gUnk_080B7826 + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r3, [r6, #0x2e] + adds r0, r0, r3 + strh r0, [r6, #0x2e] + adds r1, #1 + adds r1, r1, r2 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r1, [r6, #0x32] + adds r0, r0, r1 + strh r0, [r6, #0x32] + adds r0, r6, #0 + movs r1, #0 + bl sub_08004260 + ldr r0, _0801B67C @ =gUnk_03003F80 + str r5, [r0, #0x2c] + ldrb r1, [r0, #4] + orrs r4, r1 + strb r4, [r0, #4] +_0801B674: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801B678: .4byte gUnk_080B7826 +_0801B67C: .4byte gUnk_03003F80 + + thumb_func_start sub_0801B680 +sub_0801B680: @ 0x0801B680 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_0801B804 + adds r0, r4, #0 + adds r0, #0x68 + ldrb r0, [r0] + cmp r0, #0xc + bne _0801B6DC + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + bne _0801B6DC + ldr r3, _0801B6C4 @ =gUnk_03003F80 + ldrb r1, [r3, #0xd] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0801B6DC + adds r2, r4, #0 + adds r2, #0x83 + ldrb r0, [r2] + ldrb r1, [r3, #0xd] + subs r0, r0, r1 + movs r3, #0x1f + ands r0, r3 + cmp r0, #0x10 + ble _0801B6C8 + adds r1, r4, #0 + adds r1, #0x82 + ldrh r0, [r1] + adds r0, #0x40 + b _0801B6D0 + .align 2, 0 +_0801B6C4: .4byte gUnk_03003F80 +_0801B6C8: + adds r1, r4, #0 + adds r1, #0x82 + ldrh r0, [r1] + subs r0, #0x40 +_0801B6D0: + strh r0, [r1] + ldrb r1, [r2] + adds r0, r3, #0 + ands r0, r1 + strb r0, [r2] + strb r0, [r4, #0x15] +_0801B6DC: + adds r0, r4, #0 + bl sub_0806F69C + movs r5, #0 + adds r0, r4, #0 + bl sub_0801B864 + cmp r0, #0 + beq _0801B6FE + adds r0, r4, #0 + adds r0, #0x68 + ldrb r1, [r0] + movs r0, #0xc + eors r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r5, r0, #0x1f +_0801B6FE: + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _0801B780 @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r6, #0x32 + ldrsh r1, [r4, r6] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + ldr r1, _0801B784 @ =gUnk_03001160 + adds r1, #0x38 + ldrb r1, [r1] + movs r2, #0x80 + bl sub_080002F0 + cmp r0, #0 + bne _0801B73C + cmp r5, #0 + bne _0801B790 + ldr r1, _0801B788 @ =gUnk_08003E44 + adds r0, r4, #0 + bl sub_080040E2 + adds r5, r0, #0 +_0801B73C: + cmp r5, #0 + bne _0801B790 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xb + bhi _0801B754 + ldrh r0, [r4, #0x24] + subs r0, #0x10 + strh r0, [r4, #0x24] +_0801B754: + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _0801B75C + movs r5, #1 +_0801B75C: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0801B76C + movs r5, #1 +_0801B76C: + cmp r5, #0 + beq _0801B7A4 + adds r0, r4, #0 + adds r0, #0x68 + ldrb r0, [r0] + cmp r0, #0xc + bne _0801B78C + movs r0, #0x1e + b _0801B792 + .align 2, 0 +_0801B780: .4byte gUnk_03000BF0 +_0801B784: .4byte gUnk_03001160 +_0801B788: .4byte gUnk_08003E44 +_0801B78C: + movs r0, #0xc + b _0801B792 +_0801B790: + movs r0, #1 +_0801B792: + strb r0, [r4, #0xe] + cmp r5, #0 + beq _0801B7A4 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xe0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] +_0801B7A4: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0801B7A8 +sub_0801B7A8: @ 0x0801B7A8 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_0801B804 + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _0801B7BC + subs r0, #1 + strb r0, [r5, #0xe] + b _0801B7FA +_0801B7BC: + adds r0, r5, #0 + bl sub_0801B864 + ldrh r2, [r5, #0x24] + movs r0, #0x24 + ldrsh r1, [r5, r0] + ldr r0, _0801B7FC @ =0x0000027F + cmp r1, r0 + bgt _0801B7D4 + adds r0, r2, #0 + adds r0, #8 + strh r0, [r5, #0x24] +_0801B7D4: + ldr r4, _0801B800 @ =gUnk_03001160 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080045C4 + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_0806F69C + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #2 + movs r3, #2 + bl sub_0800419C + cmp r0, #0 + beq _0801B7FA + bl sub_0805E780 +_0801B7FA: + pop {r4, r5, pc} + .align 2, 0 +_0801B7FC: .4byte 0x0000027F +_0801B800: .4byte gUnk_03001160 + + thumb_func_start sub_0801B804 +sub_0801B804: @ 0x0801B804 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0xc + bl sub_0805436C + cmp r0, #1 + beq _0801B820 + cmp r0, #1 + blo _0801B81C + cmp r0, #2 + beq _0801B824 + b _0801B826 +_0801B81C: + movs r4, #1 + b _0801B826 +_0801B820: + movs r4, #2 + b _0801B826 +_0801B824: + movs r4, #0 +_0801B826: + ldr r3, _0801B850 @ =gUnk_03003F80 + adds r0, r3, #0 + adds r0, #0x90 + ldrh r0, [r0] + ands r4, r0 + cmp r4, #0 + bne _0801B854 + adds r1, r5, #0 + adds r1, #0x80 + movs r0, #1 + strb r0, [r1] + ldrb r2, [r3, #0xa] + movs r1, #0x7f + adds r0, r1, #0 + ands r0, r2 + strb r0, [r3, #0xa] + ldrb r0, [r3, #0xb] + ands r1, r0 + strb r1, [r3, #0xb] + b _0801B862 + .align 2, 0 +_0801B850: .4byte gUnk_03003F80 +_0801B854: + ldrb r1, [r3, #0xa] + movs r0, #0x80 + orrs r1, r0 + strb r1, [r3, #0xa] + ldrb r1, [r3, #0xb] + orrs r0, r1 + strb r0, [r3, #0xb] +_0801B862: + pop {r4, r5, pc} + + thumb_func_start sub_0801B864 +sub_0801B864: @ 0x0801B864 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _0801B874 + adds r0, r4, #0 + bl sub_0800451C +_0801B874: + ldrb r0, [r4, #0x15] + lsrs r0, r0, #2 + lsls r0, r0, #1 + ldr r3, _0801B894 @ =gUnk_080B782E + adds r1, r0, r3 + movs r2, #0 + ldrsb r2, [r1, r2] + adds r0, #1 + adds r0, r0, r3 + movs r3, #0 + ldrsb r3, [r0, r3] + adds r0, r4, #0 + movs r1, #2 + bl sub_08008782 + pop {r4, pc} + .align 2, 0 +_0801B894: .4byte gUnk_080B782E + + thumb_func_start sub_0801B898 +sub_0801B898: @ 0x0801B898 + push {lr} + ldr r2, _0801B8AC @ =gUnk_080B7840 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0801B8AC: .4byte gUnk_080B7840 + + thumb_func_start sub_0801B8B0 +sub_0801B8B0: @ 0x0801B8B0 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0801B8F0 @ =gUnk_03003F80 + ldrb r0, [r1, #0x1e] + cmp r0, #0 + beq _0801B8F4 + str r4, [r1, #0x2c] + ldrb r1, [r4, #0x10] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3b + movs r0, #8 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #1 + movs r2, #3 + bl sub_080AE008 + adds r0, r4, #0 + bl sub_08079BD8 + adds r0, r4, #0 + bl sub_0801766C + adds r0, r4, #0 + bl sub_0801B8FC + b _0801B8F8 + .align 2, 0 +_0801B8F0: .4byte gUnk_03003F80 +_0801B8F4: + bl sub_0805E780 +_0801B8F8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0801B8FC +sub_0801B8FC: @ 0x0801B8FC + push {lr} + ldr r1, _0801B90C @ =gUnk_03003F80 + ldr r2, [r1, #0x2c] + cmp r2, r0 + beq _0801B910 + bl sub_0805E780 + b _0801B934 + .align 2, 0 +_0801B90C: .4byte gUnk_03003F80 +_0801B910: + ldrb r0, [r1, #0x1e] + cmp r0, #0 + bne _0801B91E + str r0, [r1, #0x2c] + bl sub_0805E780 + b _0801B934 +_0801B91E: + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + adds r1, r2, #0 + adds r1, #0x3c + movs r0, #0x21 + strb r0, [r1] + adds r0, r2, #0 + bl sub_0801B938 +_0801B934: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0801B938 +sub_0801B938: @ 0x0801B938 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x14] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0801B960 + ldr r3, _0801B95C @ =gUnk_03001160 + ldrb r1, [r3, #0x18] + lsls r1, r1, #0x19 + lsrs r1, r1, #0x1f + movs r0, #1 + eors r1, r0 + lsls r1, r1, #6 + ldrb r2, [r4, #0x18] + subs r0, #0x42 + b _0801B96E + .align 2, 0 +_0801B95C: .4byte gUnk_03001160 +_0801B960: + ldr r3, _0801B998 @ =gUnk_03001160 + ldrb r0, [r3, #0x18] + movs r1, #0x40 + ands r1, r0 + ldrb r2, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 +_0801B96E: + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r3, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r0, #0x68 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bhi _0801B99C + ldrb r0, [r3, #0x1e] + adds r0, #0x2e + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x1e] + ldrh r2, [r4, #0x12] + adds r0, r4, #0 + bl sub_080042D0 + b _0801B9A0 + .align 2, 0 +_0801B998: .4byte gUnk_03001160 +_0801B99C: + movs r0, #0xff + strb r0, [r4, #0x1e] +_0801B9A0: + ldrb r3, [r4, #0x14] + lsrs r3, r3, #1 + lsls r0, r3, #3 + ldr r1, _0801B9E0 @ =gUnk_080B7850 + adds r0, r0, r1 + str r0, [r4, #0x48] + lsls r3, r3, #1 + ldr r0, _0801B9E4 @ =gUnk_080B7848 + adds r3, r3, r0 + ldr r0, _0801B9E8 @ =gUnk_03003F80 + adds r0, #0xac + ldrh r0, [r0] + movs r1, #8 + ands r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + rsbs r1, r1, #0 + lsrs r1, r1, #0x1f + movs r2, #0 + ldrsb r2, [r3, r2] + ldrb r3, [r3, #1] + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + adds r0, r4, #0 + bl sub_08008782 + ldr r1, _0801B9EC @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_08078E84 + pop {r4, pc} + .align 2, 0 +_0801B9E0: .4byte gUnk_080B7850 +_0801B9E4: .4byte gUnk_080B7848 +_0801B9E8: .4byte gUnk_03003F80 +_0801B9EC: .4byte gUnk_03001160 + + thumb_func_start sub_0801B9F0 +sub_0801B9F0: @ 0x0801B9F0 + push {lr} + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + bl sub_08017744 + pop {pc} + + thumb_func_start sub_0801BA00 +sub_0801BA00: @ 0x0801BA00 + push {lr} + ldr r2, _0801BA14 @ =gUnk_080B7870 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0801BA14: .4byte gUnk_080B7870 + + thumb_func_start sub_0801BA18 +sub_0801BA18: @ 0x0801BA18 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x68 + ldrb r0, [r1] + cmp r0, #0x36 + bne _0801BA2A + movs r0, #0x36 + b _0801BA34 +_0801BA2A: + ldrb r1, [r1] + ldr r0, _0801BA4C @ =gUnk_02002A40 + adds r0, r0, r1 + adds r0, #0x9a + ldrb r0, [r0] +_0801BA34: + adds r1, r4, #0 + adds r1, #0x6f + strb r0, [r1] + subs r0, #0x20 + cmp r0, #0x11 + bhi _0801BB02 + lsls r0, r0, #2 + ldr r1, _0801BA50 @ =_0801BA54 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801BA4C: .4byte gUnk_02002A40 +_0801BA50: .4byte _0801BA54 +_0801BA54: @ jump table + .4byte _0801BA9C @ case 0 + .4byte _0801BAF8 @ case 1 + .4byte _0801BAF8 @ case 2 + .4byte _0801BAF8 @ case 3 + .4byte _0801BAF8 @ case 4 + .4byte _0801BAF8 @ case 5 + .4byte _0801BB02 @ case 6 + .4byte _0801BB02 @ case 7 + .4byte _0801BB02 @ case 8 + .4byte _0801BAF8 @ case 9 + .4byte _0801BAF8 @ case 10 + .4byte _0801BAF8 @ case 11 + .4byte _0801BAF8 @ case 12 + .4byte _0801BAF8 @ case 13 + .4byte _0801BAF8 @ case 14 + .4byte _0801BB02 @ case 15 + .4byte _0801BB02 @ case 16 + .4byte _0801BB02 @ case 17 +_0801BA9C: + adds r0, r4, #0 + bl sub_0806FBD8 + cmp r0, #0 + beq _0801BB26 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldr r1, _0801BAF4 @ =gUnk_03001160 + adds r0, r1, #0 + adds r0, #0x3c + ldrb r0, [r0] + adds r0, #1 + movs r2, #0x20 + adds r3, r4, #0 + adds r3, #0x3c + orrs r0, r2 + strb r0, [r3] + adds r1, #0x3b + ldrb r0, [r1] + adds r1, r4, #0 + adds r1, #0x3b + strb r0, [r1] + adds r1, #5 + movs r0, #0x1f + strb r0, [r1] + movs r0, #1 + strb r0, [r4, #0xa] + movs r0, #0x20 + strb r0, [r4, #0xb] + movs r0, #0x52 + strb r0, [r4, #0xe] + movs r0, #0x1b + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_0801766C + movs r0, #0xee + lsls r0, r0, #1 + bl sub_080A3268 + b _0801BB0A + .align 2, 0 +_0801BAF4: .4byte gUnk_03001160 +_0801BAF8: + movs r0, #0xd5 + strb r0, [r4, #0xe] + movs r0, #0x3c + strb r0, [r4, #0xf] + b _0801BB0A +_0801BB02: + movs r1, #0 + movs r0, #0x37 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] +_0801BB0A: + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xff + strb r0, [r4, #0x1e] + ldr r0, _0801BB28 @ =gUnk_03003F80 + str r4, [r0, #0x2c] + adds r0, r4, #0 + movs r1, #1 + movs r2, #3 + bl sub_080AE008 + adds r0, r4, #0 + bl sub_0801BB2C +_0801BB26: + pop {r4, pc} + .align 2, 0 +_0801BB28: .4byte gUnk_03003F80 + + thumb_func_start sub_0801BB2C +sub_0801BB2C: @ 0x0801BB2C + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _0801BB88 @ =gUnk_03003F80 + ldr r0, [r0, #0x2c] + cmp r0, r5 + beq _0801BB68 + ldrb r0, [r5, #0xa] + cmp r0, #1 + bne _0801BB64 + ldrb r0, [r5, #0xb] + cmp r0, #0x20 + beq _0801BB64 + adds r0, r5, #0 + adds r0, #0x68 + ldrb r4, [r0] + subs r4, #0x1c + ldrb r0, [r5, #0xb] + adds r1, r4, #0 + bl sub_08054464 + ldrb r0, [r5, #0xb] + adds r1, r4, #0 + movs r2, #5 + bl sub_080A7C18 + ldr r0, _0801BB8C @ =0x00000109 + bl sub_080A3268 +_0801BB64: + bl sub_0805E780 +_0801BB68: + ldr r1, _0801BB90 @ =gUnk_03001160 + adds r0, r5, #0 + bl sub_0801BDE8 + adds r0, r5, #0 + adds r0, #0x6f + ldrb r0, [r0] + subs r0, #0x20 + cmp r0, #0x11 + bhi _0801BC04 + lsls r0, r0, #2 + ldr r1, _0801BB94 @ =_0801BB98 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801BB88: .4byte gUnk_03003F80 +_0801BB8C: .4byte 0x00000109 +_0801BB90: .4byte gUnk_03001160 +_0801BB94: .4byte _0801BB98 +_0801BB98: @ jump table + .4byte _0801BBE0 @ case 0 + .4byte _0801BBE8 @ case 1 + .4byte _0801BBE8 @ case 2 + .4byte _0801BBE8 @ case 3 + .4byte _0801BBE8 @ case 4 + .4byte _0801BBE8 @ case 5 + .4byte _0801BC04 @ case 6 + .4byte _0801BC04 @ case 7 + .4byte _0801BC04 @ case 8 + .4byte _0801BBE8 @ case 9 + .4byte _0801BBE8 @ case 10 + .4byte _0801BBE8 @ case 11 + .4byte _0801BBE8 @ case 12 + .4byte _0801BBE8 @ case 13 + .4byte _0801BBE8 @ case 14 + .4byte _0801BC04 @ case 15 + .4byte _0801BC04 @ case 16 + .4byte _0801BC04 @ case 17 +_0801BBE0: + adds r0, r5, #0 + bl sub_0801BC0C + b _0801BC0A +_0801BBE8: + ldr r0, _0801BC00 @ =gUnk_03001160 + adds r1, r0, #0 + adds r1, #0x5a + ldrb r0, [r1] + cmp r0, #1 + bne _0801BC0A + movs r0, #0 + strb r0, [r1] + adds r0, r5, #0 + bl sub_0801BC14 + b _0801BC0A + .align 2, 0 +_0801BC00: .4byte gUnk_03001160 +_0801BC04: + adds r0, r5, #0 + bl sub_0801BCB4 +_0801BC0A: + pop {r4, r5, pc} + + thumb_func_start sub_0801BC0C +sub_0801BC0C: @ 0x0801BC0C + push {lr} + bl sub_0801BE38 + pop {pc} + + thumb_func_start sub_0801BC14 +sub_0801BC14: @ 0x0801BC14 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r6, #0x20 + movs r5, #0 + adds r0, #0x6f + ldrb r0, [r0] + subs r0, #0x21 + cmp r0, #0xd + bhi _0801BC98 + lsls r0, r0, #2 + ldr r1, _0801BC30 @ =_0801BC34 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801BC30: .4byte _0801BC34 +_0801BC34: @ jump table + .4byte _0801BC76 @ case 0 + .4byte _0801BC6C @ case 1 + .4byte _0801BC6E @ case 2 + .4byte _0801BC76 @ case 3 + .4byte _0801BC72 @ case 4 + .4byte _0801BC98 @ case 5 + .4byte _0801BC98 @ case 6 + .4byte _0801BC98 @ case 7 + .4byte _0801BC7A @ case 8 + .4byte _0801BC7A @ case 9 + .4byte _0801BC7A @ case 10 + .4byte _0801BC7A @ case 11 + .4byte _0801BC7A @ case 12 + .4byte _0801BC7A @ case 13 +_0801BC6C: + movs r6, #0x23 +_0801BC6E: + movs r5, #0x28 + b _0801BC98 +_0801BC72: + movs r5, #0x50 + b _0801BC98 +_0801BC76: + movs r5, #0xa0 + b _0801BC98 +_0801BC7A: + ldr r1, _0801BCB0 @ =gUnk_02002A40 + adds r0, r4, #0 + adds r0, #0x6f + ldrb r0, [r0] + adds r2, r1, #0 + adds r2, #0xb3 + strb r0, [r2] + adds r1, #0xc6 + movs r0, #0xe1 + lsls r0, r0, #2 + strh r0, [r1] + movs r0, #0x88 + lsls r0, r0, #2 + bl sub_080A3268 +_0801BC98: + adds r0, r5, #0 + bl sub_080526A0 + adds r0, r4, #0 + adds r0, #0x68 + ldrb r1, [r0] + subs r1, #0x1c + adds r0, r6, #0 + bl sub_08054464 + pop {r4, r5, r6, pc} + .align 2, 0 +_0801BCB0: .4byte gUnk_02002A40 + + thumb_func_start sub_0801BCB4 +sub_0801BCB4: @ 0x0801BCB4 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _0801BCEC @ =gUnk_03001160 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #1 + bne _0801BD6C + adds r0, r4, #0 + adds r0, #0x6f + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #0x36 + beq _0801BCDA + subs r0, #7 + ldrb r1, [r0] + subs r1, #0x1c + movs r0, #0x20 + bl sub_08054464 +_0801BCDA: + ldrb r0, [r5] + subs r0, #0x26 + cmp r0, #0xb + bhi _0801BD6C + lsls r0, r0, #2 + ldr r1, _0801BCF0 @ =_0801BCF4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801BCEC: .4byte gUnk_03001160 +_0801BCF0: .4byte _0801BCF4 +_0801BCF4: @ jump table + .4byte _0801BD24 @ case 0 + .4byte _0801BD32 @ case 1 + .4byte _0801BD40 @ case 2 + .4byte _0801BD6C @ case 3 + .4byte _0801BD6C @ case 4 + .4byte _0801BD6C @ case 5 + .4byte _0801BD6C @ case 6 + .4byte _0801BD6C @ case 7 + .4byte _0801BD6C @ case 8 + .4byte _0801BD54 @ case 9 + .4byte _0801BD54 @ case 10 + .4byte _0801BD54 @ case 11 +_0801BD24: + adds r0, r4, #0 + movs r1, #0x68 + movs r2, #0 + movs r3, #0 + bl sub_080A2988 + b _0801BD6C +_0801BD32: + adds r0, r4, #0 + movs r1, #0x68 + movs r2, #1 + movs r3, #1 + bl sub_080A2988 + b _0801BD6C +_0801BD40: + adds r0, r4, #0 + movs r1, #0x68 + movs r2, #2 + movs r3, #2 + bl sub_080A2988 + movs r0, #0x20 + bl sub_080526A0 + b _0801BD6C +_0801BD54: + ldr r1, _0801BD88 @ =gUnk_02002A40 + ldrb r0, [r5] + adds r2, r1, #0 + adds r2, #0xb2 + strb r0, [r2] + adds r1, #0xc4 + movs r0, #0xe1 + lsls r0, r0, #4 + strh r0, [r1] + ldr r0, _0801BD8C @ =0x000001CF + bl sub_080A3268 +_0801BD6C: + ldr r0, _0801BD90 @ =gUnk_03001160 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #2 + bne _0801BDAE + adds r0, r4, #0 + adds r0, #0x6f + ldrb r0, [r0] + cmp r0, #0x26 + beq _0801BD94 + cmp r0, #0x27 + beq _0801BDA2 + b _0801BDAE + .align 2, 0 +_0801BD88: .4byte gUnk_02002A40 +_0801BD8C: .4byte 0x000001CF +_0801BD90: .4byte gUnk_03001160 +_0801BD94: + adds r0, r4, #0 + movs r1, #0x68 + movs r2, #0 + movs r3, #0 + bl sub_080A2988 + b _0801BDAE +_0801BDA2: + adds r0, r4, #0 + movs r1, #0x68 + movs r2, #1 + movs r3, #1 + bl sub_080A2988 +_0801BDAE: + ldr r0, _0801BDC8 @ =gUnk_03001160 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #3 + bne _0801BDE6 + adds r0, r4, #0 + adds r0, #0x6f + ldrb r0, [r0] + cmp r0, #0x26 + beq _0801BDCC + cmp r0, #0x27 + beq _0801BDDA + b _0801BDE6 + .align 2, 0 +_0801BDC8: .4byte gUnk_03001160 +_0801BDCC: + adds r0, r4, #0 + movs r1, #0x68 + movs r2, #0 + movs r3, #0 + bl sub_080A2988 + b _0801BDE6 +_0801BDDA: + adds r0, r4, #0 + movs r1, #0x68 + movs r2, #1 + movs r3, #0 + bl sub_080A2988 +_0801BDE6: + pop {r4, r5, pc} + + thumb_func_start sub_0801BDE8 +sub_0801BDE8: @ 0x0801BDE8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r5, #0x1e] + ldrb r1, [r4, #0xe] + subs r0, r0, r1 + ldrb r1, [r4, #0xf] + adds r0, r0, r1 + ldrb r1, [r4, #0x1e] + cmp r0, r1 + beq _0801BE0A + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x1e] + ldrh r2, [r4, #0x12] + adds r0, r4, #0 + bl sub_080042D0 +_0801BE0A: + ldrb r1, [r5, #0x18] + lsls r1, r1, #0x19 + lsrs r1, r1, #0x1f + ldrb r0, [r5, #0x14] + lsrs r0, r0, #1 + movs r2, #1 + ands r0, r2 + eors r1, r0 + lsls r1, r1, #6 + ldrb r2, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldr r1, _0801BE34 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_08078E84 + pop {r4, r5, pc} + .align 2, 0 +_0801BE34: .4byte gUnk_03001160 + + thumb_func_start sub_0801BE38 +sub_0801BE38: @ 0x0801BE38 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x41 + ldrb r0, [r2] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0x49 + beq _0801BE54 + cmp r1, #0x4d + beq _0801BE60 + movs r0, #0 + strb r0, [r2] + b _0801BE6A +_0801BE54: + movs r0, #0x28 + strb r0, [r4, #0xb] + adds r0, r4, #0 + bl sub_0801B9F0 + b _0801BE6A +_0801BE60: + movs r0, #0x27 + strb r0, [r4, #0xb] + adds r0, r4, #0 + bl sub_0801B9F0 +_0801BE6A: + ldrb r0, [r4, #0x1e] + subs r0, #0x1b + lsls r0, r0, #2 + ldr r1, _0801BE84 @ =gUnk_080B788A + adds r2, r0, r1 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x19 + cmp r0, #0 + bge _0801BE88 + ldr r1, [r4, #0x48] + ldrb r0, [r2] + rsbs r0, r0, #0 + b _0801BE8C + .align 2, 0 +_0801BE84: .4byte gUnk_080B788A +_0801BE88: + ldr r1, [r4, #0x48] + ldrb r0, [r2] +_0801BE8C: + strb r0, [r1] + ldr r1, [r4, #0x48] + ldrb r0, [r2, #1] + strb r0, [r1, #1] + ldr r1, [r4, #0x48] + ldrb r0, [r2, #2] + strb r0, [r1, #6] + ldr r1, [r4, #0x48] + ldrb r0, [r2, #3] + strb r0, [r1, #7] + ldr r0, _0801BEF0 @ =gUnk_03001160 + adds r0, #0x5a + ldrb r0, [r0] + movs r1, #0xf + ands r1, r0 + cmp r1, #0 + beq _0801BEDE + ldrb r0, [r4, #0xb] + cmp r0, #0x20 + bne _0801BEE4 + subs r0, r1, #1 + lsls r0, r0, #1 + ldr r1, _0801BEF4 @ =gUnk_080B7878 + adds r2, r0, r1 + movs r1, #0 + ldrsb r1, [r2, r1] + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x19 + cmp r0, #0 + bge _0801BECA + rsbs r1, r1, #0 +_0801BECA: + ldrb r2, [r2, #1] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + adds r0, r4, #0 + bl sub_080002B4 + cmp r0, #0x10 + bne _0801BEDE + movs r0, #0x26 + strb r0, [r4, #0xb] +_0801BEDE: + ldrb r0, [r4, #0xb] + cmp r0, #0x20 + beq _0801BEEE +_0801BEE4: + ldr r2, _0801BEF0 @ =gUnk_03001160 + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] +_0801BEEE: + pop {r4, pc} + .align 2, 0 +_0801BEF0: .4byte gUnk_03001160 +_0801BEF4: .4byte gUnk_080B7878 + + thumb_func_start sub_0801BEF8 +sub_0801BEF8: @ 0x0801BEF8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov r8, r0 + ldr r7, _0801BFF0 @ =gUnk_03001160 + ldrb r0, [r0, #0xc] + cmp r0, #0 + bne _0801BF62 + movs r1, #0x2e + ldrsh r0, [r7, r1] + ldr r5, _0801BFF4 @ =gUnk_080B7B6C + ldrb r1, [r7, #0x14] + movs r2, #0xe + ands r2, r1 + adds r1, r2, r5 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r0, r1 + ldr r4, _0801BFF8 @ =gUnk_03000BF0 + ldrh r1, [r4, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r6, #0x32 + ldrsh r1, [r7, r6] + adds r2, #1 + adds r2, r2, r5 + ldrb r2, [r2] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + adds r1, r1, r2 + ldrh r2, [r4, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + mov r1, r8 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002B0 + mov r1, r8 + adds r1, #0x6c + strh r0, [r1] + mov r1, r8 + ldrb r0, [r1, #0xc] + adds r0, #1 + strb r0, [r1, #0xc] +_0801BF62: + ldr r2, _0801BFFC @ =gUnk_03003F80 + mov sb, r2 + ldrb r1, [r2, #0x1a] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x1a] + ldr r6, _0801C000 @ =gUnk_03000FF0 + ldrh r1, [r6] + movs r3, #0x80 + lsls r3, r3, #1 + mov sl, r3 + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0801C074 + ldrh r1, [r6, #2] + mov r0, sl + ands r0, r1 + cmp r0, #0 + beq _0801BFDA + movs r4, #0x2e + ldrsh r0, [r7, r4] + ldr r5, _0801BFF4 @ =gUnk_080B7B6C + mov sb, r5 + ldrb r1, [r7, #0x14] + movs r2, #0xe + ands r2, r1 + adds r1, r2, r5 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r0, r1 + ldr r4, _0801BFF8 @ =gUnk_03000BF0 + ldrh r1, [r4, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r5, #0x32 + ldrsh r1, [r7, r5] + adds r2, #1 + add r2, sb + ldrb r2, [r2] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + adds r1, r1, r2 + ldrh r2, [r4, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + mov r1, r8 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002B0 + mov r1, r8 + adds r1, #0x6c + strh r0, [r1] +_0801BFDA: + ldrh r3, [r6] + mov r0, sl + ands r0, r3 + adds r4, r3, #0 + cmp r0, #0 + beq _0801C004 + adds r1, r7, #0 + adds r1, #0x3d + movs r0, #2 + strb r0, [r1] + b _0801C0D4 + .align 2, 0 +_0801BFF0: .4byte gUnk_03001160 +_0801BFF4: .4byte gUnk_080B7B6C +_0801BFF8: .4byte gUnk_03000BF0 +_0801BFFC: .4byte gUnk_03003F80 +_0801C000: .4byte gUnk_03000FF0 +_0801C004: + ldrh r2, [r6, #2] + movs r6, #0x10 + adds r0, r6, #0 + ands r0, r2 + cmp r0, #0 + beq _0801C01A + mov r1, r8 + adds r1, #0x6c + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] +_0801C01A: + movs r5, #0x20 + adds r0, r5, #0 + ands r0, r2 + cmp r0, #0 + beq _0801C02E + mov r1, r8 + adds r1, #0x6c + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] +_0801C02E: + movs r0, #0x30 + ands r0, r4 + cmp r0, #0 + beq _0801C06E + mov r1, r8 + ldrb r0, [r1, #0xf] + adds r0, #1 + strb r0, [r1, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1e + bls _0801C0D4 + movs r0, #0x1e + strb r0, [r1, #0xf] + adds r0, r6, #0 + ands r0, r4 + cmp r0, #0 + beq _0801C05A + adds r1, #0x6c + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] +_0801C05A: + adds r0, r5, #0 + ands r0, r3 + cmp r0, #0 + beq _0801C0D4 + mov r1, r8 + adds r1, #0x6c + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _0801C0D4 +_0801C06E: + mov r2, r8 + strb r0, [r2, #0xf] + b _0801C0D4 +_0801C074: + mov r0, r8 + adds r0, #0x6c + ldrh r0, [r0] + movs r3, #0x2e + ldrsh r1, [r7, r3] + ldr r4, _0801C1C8 @ =gUnk_080B7B6C + mov sl, r4 + ldrb r2, [r7, #0x14] + movs r3, #0xe + ands r3, r2 + adds r2, r3, r4 + ldrb r2, [r2] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + adds r1, r1, r2 + ldr r5, _0801C1CC @ =gUnk_03000BF0 + ldrh r2, [r5, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r7, r6] + adds r3, #1 + add r3, sl + ldrb r3, [r3] + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + adds r2, r2, r3 + ldrh r3, [r5, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + mov r2, r8 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0807B7D8 + mov r0, sb + ldrb r1, [r0, #0x1a] + movs r0, #0x7f + ands r0, r1 + mov r1, sb + strb r0, [r1, #0x1a] + bl sub_0805E780 +_0801C0D4: + ldr r0, _0801C1D0 @ =gUnk_03000FF0 + ldrh r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0801C1BE + movs r2, #0x6c + add r2, r8 + mov sb, r2 + ldrh r0, [r2] + movs r3, #0x2e + ldrsh r1, [r7, r3] + ldr r6, _0801C1C8 @ =gUnk_080B7B6C + movs r2, #0 + ldrsb r2, [r6, r2] + adds r1, r1, r2 + ldr r5, _0801C1CC @ =gUnk_03000BF0 + ldrh r2, [r5, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r3, #0x32 + ldrsh r2, [r7, r3] + movs r3, #1 + ldrsb r3, [r6, r3] + adds r2, r2, r3 + ldrh r3, [r5, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + movs r2, #0x38 + add r8, r2 + mov r3, r8 + ldrb r2, [r3] + bl sub_0807B7D8 + mov r1, sb + ldrh r0, [r1] + movs r2, #0x2e + ldrsh r1, [r7, r2] + movs r2, #2 + ldrsb r2, [r6, r2] + adds r1, r1, r2 + ldrh r2, [r5, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r4 + movs r3, #0x32 + ldrsh r2, [r7, r3] + movs r3, #3 + ldrsb r3, [r6, r3] + adds r2, r2, r3 + ldrh r3, [r5, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + mov r3, r8 + ldrb r2, [r3] + bl sub_0807B7D8 + mov r1, sb + ldrh r0, [r1] + movs r2, #0x2e + ldrsh r1, [r7, r2] + movs r2, #4 + ldrsb r2, [r6, r2] + adds r1, r1, r2 + ldrh r2, [r5, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r4 + movs r3, #0x32 + ldrsh r2, [r7, r3] + movs r3, #5 + ldrsb r3, [r6, r3] + adds r2, r2, r3 + ldrh r3, [r5, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + mov r3, r8 + ldrb r2, [r3] + bl sub_0807B7D8 + mov r1, sb + ldrh r0, [r1] + movs r2, #0x2e + ldrsh r1, [r7, r2] + movs r2, #6 + ldrsb r2, [r6, r2] + adds r1, r1, r2 + ldrh r2, [r5, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r4 + movs r3, #0x32 + ldrsh r2, [r7, r3] + movs r3, #7 + ldrsb r3, [r6, r3] + adds r2, r2, r3 + ldrh r3, [r5, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + mov r4, r8 + ldrb r2, [r4] + bl sub_0807B7D8 +_0801C1BE: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801C1C8: .4byte gUnk_080B7B6C +_0801C1CC: .4byte gUnk_03000BF0 +_0801C1D0: .4byte gUnk_03000FF0 + + thumb_func_start sub_0801C1D4 +sub_0801C1D4: @ 0x0801C1D4 + push {r4, lr} + movs r4, #0 +_0801C1D8: + lsls r1, r4, #5 + ldr r0, _0801C200 @ =gUnk_0200AF34 + adds r2, r1, r0 + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0801C1F8 + ldrb r0, [r2, #1] + lsls r0, r0, #4 + ldr r1, _0801C204 @ =gUnk_080C8F8C + adds r0, r0, r1 + ldr r1, [r0, #8] + adds r0, r2, #0 + bl _call_via_r1 +_0801C1F8: + adds r4, #1 + cmp r4, #0x17 + bls _0801C1D8 + pop {r4, pc} + .align 2, 0 +_0801C200: .4byte gUnk_0200AF34 +_0801C204: .4byte gUnk_080C8F8C + + thumb_func_start sub_0801C208 +sub_0801C208: @ 0x0801C208 + push {r4, r5, lr} + movs r5, #0 + ldr r4, _0801C250 @ =gUnk_03001010 +_0801C20E: + lsls r1, r5, #5 + ldr r0, _0801C254 @ =gUnk_0200AF34 + adds r3, r1, r0 + ldrb r1, [r3] + movs r0, #3 + ands r0, r1 + cmp r0, #3 + bne _0801C248 + ldrh r0, [r3, #0xc] + strh r0, [r4] + ldrh r0, [r3, #0xe] + strh r0, [r4, #2] + ldrb r2, [r3, #1] + lsls r2, r2, #4 + ldr r0, _0801C258 @ =gUnk_080C8F8C + adds r2, r2, r0 + ldrh r0, [r2] + strh r0, [r4, #4] + ldrh r0, [r2, #2] + strh r0, [r4, #6] + ldrb r0, [r3, #0x18] + lsls r0, r0, #0xc + ldrh r1, [r3, #0x1a] + orrs r0, r1 + strh r0, [r4, #8] + ldrh r0, [r2, #6] + ldrb r1, [r3, #0x10] + bl sub_080ADA14 +_0801C248: + adds r5, #1 + cmp r5, #0x17 + bls _0801C20E + pop {r4, r5, pc} + .align 2, 0 +_0801C250: .4byte gUnk_03001010 +_0801C254: .4byte gUnk_0200AF34 +_0801C258: .4byte gUnk_080C8F8C + + thumb_func_start sub_0801C25C +sub_0801C25C: @ 0x0801C25C + push {r4, r5, r6, r7, lr} + movs r4, #0 + ldr r5, _0801C2E4 @ =gUnk_0200AF34 + adds r6, r5, #0 + subs r6, #0x34 + movs r7, #0xd + rsbs r7, r7, #0 + ldr r3, _0801C2E8 @ =0x040000D4 +_0801C26C: + lsls r0, r4, #5 + adds r2, r0, r5 + ldrb r1, [r2] + movs r0, #3 + ands r0, r1 + cmp r0, #3 + bne _0801C2A8 + lsls r0, r1, #0x1c + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _0801C2A8 + adds r0, r7, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + ldr r0, [r2, #0x1c] + str r0, [r3] + ldrh r0, [r2, #0x1a] + lsls r0, r0, #5 + ldr r1, _0801C2EC @ =0x06010000 + adds r0, r0, r1 + str r0, [r3, #4] + ldrb r0, [r2, #0x19] + lsls r0, r0, #3 + movs r1, #0x84 + lsls r1, r1, #0x18 + orrs r0, r1 + str r0, [r3, #8] + ldr r0, [r3, #8] +_0801C2A8: + adds r4, #1 + cmp r4, #0x17 + ble _0801C26C + adds r2, r6, #0 + ldrb r3, [r2, #0x13] + movs r0, #0x13 + ldrsb r0, [r2, r0] + cmp r0, #0 + bge _0801C2C8 + movs r1, #0x7f + ands r1, r3 + strb r1, [r2, #0x13] + movs r0, #0x8d + lsls r0, r0, #1 + bl sub_0801C2F0 +_0801C2C8: + ldrb r2, [r6, #0x14] + movs r0, #0x14 + ldrsb r0, [r6, r0] + cmp r0, #0 + bge _0801C2E0 + movs r1, #0x7f + ands r1, r2 + strb r1, [r6, #0x14] + movs r0, #0x93 + lsls r0, r0, #1 + bl sub_0801C2F0 +_0801C2E0: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801C2E4: .4byte gUnk_0200AF34 +_0801C2E8: .4byte 0x040000D4 +_0801C2EC: .4byte 0x06010000 + + thumb_func_start sub_0801C2F0 +sub_0801C2F0: @ 0x0801C2F0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, r1, #0 + lsls r5, r4, #5 + ldr r1, _0801C330 @ =0x06010000 + adds r4, r5, r1 + movs r1, #0xa + bl Div + cmp r0, #9 + bls _0801C308 + movs r0, #9 +_0801C308: + ldr r2, _0801C334 @ =0x040000D4 + lsls r0, r0, #5 + ldr r3, _0801C338 @ =gUnk_085C4620 + adds r0, r0, r3 + str r0, [r2] + str r4, [r2, #4] + ldr r4, _0801C33C @ =0x84000008 + str r4, [r2, #8] + ldr r0, [r2, #8] + adds r1, #0xa + lsls r1, r1, #5 + adds r1, r1, r3 + str r1, [r2] + ldr r1, _0801C340 @ =0x06010020 + adds r0, r5, r1 + str r0, [r2, #4] + str r4, [r2, #8] + ldr r0, [r2, #8] + pop {r4, r5, pc} + .align 2, 0 +_0801C330: .4byte 0x06010000 +_0801C334: .4byte 0x040000D4 +_0801C338: .4byte gUnk_085C4620 +_0801C33C: .4byte 0x84000008 +_0801C340: .4byte 0x06010020 + + thumb_func_start sub_0801C344 +sub_0801C344: @ 0x0801C344 + push {r4, r5, lr} + ldr r4, _0801C36C @ =gUnk_0200AF00 + ldrb r1, [r4, #1] + ldrb r0, [r4] + bics r0, r1 + movs r5, #0 + strb r0, [r4] + bl sub_0801C6B0 + bl sub_0801C85C + bl sub_0801C4B0 + bl sub_0801C99C + strb r5, [r4] + bl sub_0801C1D4 + pop {r4, r5, pc} + .align 2, 0 +_0801C36C: .4byte gUnk_0200AF00 + + thumb_func_start sub_0801C370 +sub_0801C370: @ 0x0801C370 + push {r4, r5, r6, lr} + cmp r0, #0 + bne _0801C390 + ldr r0, _0801C388 @ =gUnk_02002A40 + adds r1, r0, #0 + adds r1, #0xaa + ldrb r1, [r1] + lsrs r6, r1, #1 + adds r0, #0xc0 + ldrh r4, [r0] + ldr r5, _0801C38C @ =gUnk_0200AF00 + b _0801C398 + .align 2, 0 +_0801C388: .4byte gUnk_02002A40 +_0801C38C: .4byte gUnk_0200AF00 +_0801C390: + ldr r0, _0801C470 @ =gUnk_0200AF00 + ldrb r6, [r0, #3] + ldrh r4, [r0, #0xe] + adds r5, r0, #0 +_0801C398: + movs r1, #0xcd + lsls r1, r1, #2 + adds r0, r5, #0 + bl sub_0801D630 + strb r6, [r5, #3] + strh r4, [r5, #0xe] + ldr r0, _0801C474 @ =gUnk_02002A40 + adds r0, #0xab + ldrb r0, [r0] + lsrs r0, r0, #1 + strb r0, [r5, #4] + movs r0, #0xc + bl sub_0801D714 + movs r0, #0x10 + bl sub_0801D7EC + ldr r4, _0801C478 @ =gUnk_02034CB0 + movs r1, #0x80 + lsls r1, r1, #4 + adds r0, r4, #0 + bl sub_0801D630 + ldr r1, _0801C47C @ =gUnk_03000F50 + str r4, [r1, #0x10] + ldr r0, _0801C480 @ =0x00001F0C + strh r0, [r1, #8] + ldrh r2, [r1] + movs r3, #0x80 + lsls r3, r3, #1 + adds r0, r3, #0 + orrs r0, r2 + strh r0, [r1] + ldr r1, _0801C484 @ =gUnk_03000000 + ldr r2, _0801C488 @ =0x00000427 + adds r0, r1, r2 + movs r2, #1 + strb r2, [r0] + ldr r3, _0801C48C @ =0x00000426 + adds r0, r1, r3 + strb r2, [r0] + ldr r0, _0801C490 @ =0x0000042E + adds r1, r1, r0 + strb r2, [r1] + movs r0, #0x7f + strb r0, [r5, #0x13] + strb r0, [r5, #0x14] + strb r0, [r5, #8] + bl sub_0801C6B0 + bl sub_0801C4B0 + bl sub_0801C85C + bl sub_0801C99C + movs r0, #0xd0 + strh r0, [r5, #0x16] + movs r0, #0xb8 + strh r0, [r5, #0x18] + movs r0, #0xd8 + strh r0, [r5, #0x1a] + movs r0, #0x1c + strh r0, [r5, #0x1c] + strh r0, [r5, #0x1e] + movs r0, #0xe + strh r0, [r5, #0x20] + adds r0, r5, #0 + adds r0, #0x34 + movs r1, #0xc0 + lsls r1, r1, #2 + bl sub_0801D630 + movs r0, #5 + movs r1, #9 + bl sub_0801CA6C + movs r0, #3 + movs r1, #0 + bl sub_0801CA6C + movs r0, #4 + movs r1, #0 + bl sub_0801CA6C + movs r0, #2 + movs r1, #0 + bl sub_0801CA6C + movs r0, #1 + movs r1, #0 + bl sub_0801CA6C + movs r0, #0 + movs r1, #0 + bl sub_0801CA6C + movs r0, #7 + movs r1, #0 + bl sub_0801CA6C + movs r0, #6 + movs r1, #0 + bl sub_0801CA6C + pop {r4, r5, r6, pc} + .align 2, 0 +_0801C470: .4byte gUnk_0200AF00 +_0801C474: .4byte gUnk_02002A40 +_0801C478: .4byte gUnk_02034CB0 +_0801C47C: .4byte gUnk_03000F50 +_0801C480: .4byte 0x00001F0C +_0801C484: .4byte gUnk_03000000 +_0801C488: .4byte 0x00000427 +_0801C48C: .4byte 0x00000426 +_0801C490: .4byte 0x0000042E + + thumb_func_start sub_0801C494 +sub_0801C494: @ 0x0801C494 + ldr r1, _0801C49C @ =gUnk_03000F50 + movs r0, #1 + strh r0, [r1, #0xe] + bx lr + .align 2, 0 +_0801C49C: .4byte gUnk_03000F50 + + thumb_func_start sub_0801C4A0 +sub_0801C4A0: @ 0x0801C4A0 + ldr r1, _0801C4AC @ =gUnk_0200AF00 + movs r0, #0 + strb r0, [r1, #2] + strb r0, [r1, #0x10] + strb r0, [r1, #0xa] + bx lr + .align 2, 0 +_0801C4AC: .4byte gUnk_0200AF00 + + thumb_func_start sub_0801C4B0 +sub_0801C4B0: @ 0x0801C4B0 + push {r4, r5, r6, lr} + ldr r2, _0801C4F0 @ =gUnk_0200AF00 + ldrb r1, [r2, #1] + movs r0, #0x40 + ands r0, r1 + adds r6, r2, #0 + cmp r0, #0 + beq _0801C4FC + ldrb r0, [r6, #0xa] + cmp r0, #0 + bne _0801C4C8 + b _0801C5D0 +_0801C4C8: + movs r0, #0 + strb r0, [r6, #0xa] + ldr r3, _0801C4F4 @ =gUnk_02035160 + strh r0, [r3] + strh r0, [r3, #2] + strh r0, [r3, #4] + strh r0, [r3, #6] + strh r0, [r3, #8] + adds r4, r3, #0 + adds r4, #0x40 + strh r0, [r4] + strh r0, [r4, #2] + strh r0, [r4, #4] + strh r0, [r4, #6] + strh r0, [r4, #8] + ldr r1, _0801C4F8 @ =gUnk_03000F50 + movs r0, #1 + strh r0, [r1, #0xe] + b _0801C5D0 + .align 2, 0 +_0801C4F0: .4byte gUnk_0200AF00 +_0801C4F4: .4byte gUnk_02035160 +_0801C4F8: .4byte gUnk_03000F50 +_0801C4FC: + ldrb r0, [r6, #0xa] + cmp r0, #0 + bne _0801C560 + movs r0, #2 + strb r0, [r6, #0xa] + ldr r3, _0801C54C @ =gUnk_02035160 + adds r4, r3, #0 + adds r4, #0x40 + ldr r1, _0801C550 @ =gUnk_080FD590 + ldr r2, _0801C554 @ =gUnk_02002A40 + adds r0, r2, #0 + adds r0, #0xa8 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r1, [r0, #2] + strh r1, [r3] + adds r0, r1, #1 + strh r0, [r3, #2] + adds r0, r1, #2 + strh r0, [r4] + adds r0, r1, #3 + strh r0, [r4, #2] + ldr r1, _0801C558 @ =0x0000F070 + strh r1, [r3, #4] + adds r0, r1, #1 + strh r0, [r4, #4] + adds r0, r1, #2 + strh r0, [r3, #6] + adds r0, r1, #3 + strh r0, [r4, #6] + adds r0, r1, #4 + strh r0, [r3, #8] + adds r0, r1, #5 + strh r0, [r4, #8] + ldr r1, _0801C55C @ =gUnk_03000F50 + movs r0, #1 + strh r0, [r1, #0xe] + movs r4, #1 + b _0801C564 + .align 2, 0 +_0801C54C: .4byte gUnk_02035160 +_0801C550: .4byte gUnk_080FD590 +_0801C554: .4byte gUnk_02002A40 +_0801C558: .4byte 0x0000F070 +_0801C55C: .4byte gUnk_03000F50 +_0801C560: + movs r4, #0 + ldr r2, _0801C580 @ =gUnk_02002A40 +_0801C564: + adds r5, r6, #0 + adds r0, r2, #0 + adds r0, #0xc0 + ldrh r1, [r5, #0xe] + adds r3, r1, #0 + ldrh r0, [r0] + cmp r3, r0 + beq _0801C58A + cmp r3, r0 + bhs _0801C584 + adds r0, r1, #1 + strh r0, [r5, #0xe] + b _0801C588 + .align 2, 0 +_0801C580: .4byte gUnk_02002A40 +_0801C584: + subs r0, r1, #1 + strh r0, [r6, #0xe] +_0801C588: + movs r4, #2 +_0801C58A: + cmp r4, #1 + beq _0801C5A4 + cmp r4, #2 + bne _0801C5CC + ldr r0, _0801C5D4 @ =gUnk_0200AF00 + ldrb r0, [r0, #0xc] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0801C5A4 + movs r0, #0x6f + bl sub_080A3268 +_0801C5A4: + ldr r4, _0801C5D4 @ =gUnk_0200AF00 + ldrh r3, [r4, #0xe] + movs r2, #0 + ldr r1, _0801C5D8 @ =gUnk_080FD590 + ldr r0, _0801C5DC @ =gUnk_02002A40 + adds r0, #0xa8 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, r3 + bhi _0801C5BE + movs r2, #1 +_0801C5BE: + movs r0, #0x70 + adds r1, r3, #0 + movs r3, #3 + bl sub_0801C5E0 + ldrb r0, [r4, #0xc] + adds r4, r0, #1 +_0801C5CC: + ldr r0, _0801C5D4 @ =gUnk_0200AF00 + strb r4, [r0, #0xc] +_0801C5D0: + pop {r4, r5, r6, pc} + .align 2, 0 +_0801C5D4: .4byte gUnk_0200AF00 +_0801C5D8: .4byte gUnk_080FD590 +_0801C5DC: .4byte gUnk_02002A40 + + thumb_func_start sub_0801C5E0 +sub_0801C5E0: @ 0x0801C5E0 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r7, _0801C650 @ =gUnk_085C4B20 + cmp r2, #0 + bne _0801C5F0 + ldr r0, _0801C654 @ =0xFFFFFD80 + adds r7, r7, r0 +_0801C5F0: + ldr r0, _0801C658 @ =0x000003FF + ands r0, r4 + lsls r6, r0, #5 + ldr r0, _0801C65C @ =0x0600C000 + adds r4, r6, r0 + cmp r3, #2 + beq _0801C620 + cmp r3, #3 + bne _0801C63C + adds r0, r5, #0 + movs r1, #0x64 + bl Div + adds r5, r1, #0 + ldr r1, _0801C660 @ =0x040000D4 + lsls r0, r0, #6 + adds r0, r7, r0 + str r0, [r1] + str r4, [r1, #4] + ldr r0, _0801C664 @ =0x84000010 + str r0, [r1, #8] + ldr r0, [r1, #8] + ldr r0, _0801C668 @ =0x0600C040 + adds r4, r6, r0 +_0801C620: + adds r0, r5, #0 + movs r1, #0xa + bl Div + adds r5, r1, #0 + ldr r1, _0801C660 @ =0x040000D4 + lsls r0, r0, #6 + adds r0, r7, r0 + str r0, [r1] + str r4, [r1, #4] + ldr r0, _0801C664 @ =0x84000010 + str r0, [r1, #8] + ldr r0, [r1, #8] + adds r4, #0x40 +_0801C63C: + ldr r1, _0801C660 @ =0x040000D4 + lsls r0, r5, #6 + adds r0, r7, r0 + str r0, [r1] + str r4, [r1, #4] + ldr r0, _0801C664 @ =0x84000010 + str r0, [r1, #8] + ldr r0, [r1, #8] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801C650: .4byte gUnk_085C4B20 +_0801C654: .4byte 0xFFFFFD80 +_0801C658: .4byte 0x000003FF +_0801C65C: .4byte 0x0600C000 +_0801C660: .4byte 0x040000D4 +_0801C664: .4byte 0x84000010 +_0801C668: .4byte 0x0600C040 + + thumb_func_start sub_0801C66C +sub_0801C66C: @ 0x0801C66C + push {lr} + ldr r1, _0801C6A4 @ =gUnk_0200AF00 + ldrb r0, [r1, #2] + cmp r0, #0 + beq _0801C6A2 + movs r0, #0 + strb r0, [r1, #2] + ldrb r0, [r1, #4] + movs r2, #1 + cmp r0, #0x28 + bls _0801C684 + movs r2, #2 +_0801C684: + ldr r0, _0801C6A8 @ =gUnk_02034CF0 + ldr r3, _0801C6AC @ =gUnk_03000F50 + movs r1, #0 +_0801C68A: + str r1, [r0] + str r1, [r0, #4] + str r1, [r0, #8] + str r1, [r0, #0xc] + str r1, [r0, #0x10] + str r1, [r0, #0x14] + adds r0, #0x40 + subs r2, #1 + cmp r2, #0 + bgt _0801C68A + movs r0, #1 + strh r0, [r3, #0xe] +_0801C6A2: + pop {pc} + .align 2, 0 +_0801C6A4: .4byte gUnk_0200AF00 +_0801C6A8: .4byte gUnk_02034CF0 +_0801C6AC: .4byte gUnk_03000F50 + + thumb_func_start sub_0801C6B0 +sub_0801C6B0: @ 0x0801C6B0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r2, _0801C6CC @ =gUnk_0200AF00 + ldrb r1, [r2, #1] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0801C6D0 + bl sub_0801C824 + bl sub_0801C66C + b _0801C802 + .align 2, 0 +_0801C6CC: .4byte gUnk_0200AF00 +_0801C6D0: + ldr r5, _0801C6F8 @ =gUnk_02002A40 + adds r0, r5, #0 + adds r0, #0xab + ldrb r0, [r0] + lsrs r4, r0, #1 + ldrb r0, [r2, #4] + cmp r4, r0 + beq _0801C6EA + strb r4, [r2, #4] + bl sub_0801C824 + bl sub_0801C66C +_0801C6EA: + adds r1, r5, #0 + adds r1, #0xaa + ldrb r0, [r1] + cmp r0, #1 + beq _0801C6FC + lsrs r1, r0, #1 + b _0801C6FE + .align 2, 0 +_0801C6F8: .4byte gUnk_02002A40 +_0801C6FC: + movs r1, #1 +_0801C6FE: + cmp r1, r4 + ble _0801C704 + adds r1, r4, #0 +_0801C704: + movs r4, #0 + ldr r0, _0801C748 @ =gUnk_0200AF00 + ldrb r2, [r0, #3] + adds r7, r0, #0 + cmp r1, r2 + beq _0801C718 + movs r4, #1 + cmp r1, r2 + ble _0801C718 + movs r4, #2 +_0801C718: + cmp r4, #1 + beq _0801C750 + cmp r4, #2 + bne _0801C756 + ldrb r0, [r7, #5] + adds r1, r0, #1 + strb r1, [r7, #5] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0801C74C + movs r0, #7 + ands r1, r0 + cmp r1, #0 + bne _0801C740 + movs r0, #0x71 + bl sub_080A3268 +_0801C740: + ldrb r0, [r7, #3] + adds r0, #1 + strb r0, [r7, #3] + b _0801C75A + .align 2, 0 +_0801C748: .4byte gUnk_0200AF00 +_0801C74C: + movs r4, #0 + b _0801C75A +_0801C750: + ldrb r0, [r7, #3] + subs r0, #1 + strb r0, [r7, #3] +_0801C756: + movs r0, #0 + strb r0, [r7, #5] +_0801C75A: + ldrb r0, [r7, #2] + cmp r0, #0 + beq _0801C764 + cmp r4, #0 + beq _0801C802 +_0801C764: + movs r0, #2 + strb r0, [r7, #2] + ldrb r0, [r7, #3] + lsrs r3, r0, #2 + cmp r3, #0xa + ble _0801C77A + movs r1, #0xa + mov r8, r1 + adds r6, r3, #0 + subs r6, #0xa + b _0801C77E +_0801C77A: + mov r8, r3 + movs r6, #0 +_0801C77E: + ldrb r0, [r7, #4] + lsrs r4, r0, #2 + adds r1, r4, #0 + cmp r4, #0xa + ble _0801C78A + movs r4, #0xa +_0801C78A: + adds r2, r1, #0 + subs r2, #0xa + ldr r0, _0801C808 @ =gUnk_080C8F2C + mov ip, r0 + cmp r2, #0 + ble _0801C7B8 + ldr r5, _0801C80C @ =gUnk_02034D30 + ldr r1, _0801C810 @ =0x0000F010 + adds r0, r1, #0 + strh r0, [r5] + ldr r1, _0801C814 @ =0x040000D4 + movs r0, #0xa + subs r0, r0, r6 + lsls r0, r0, #1 + add r0, ip + str r0, [r1] + adds r0, r5, #2 + str r0, [r1, #4] + movs r0, #0x80 + lsls r0, r0, #0x18 + orrs r2, r0 + str r2, [r1, #8] + ldr r0, [r1, #8] +_0801C7B8: + ldr r5, _0801C818 @ =gUnk_02034CF0 + ldr r2, _0801C810 @ =0x0000F010 + adds r0, r2, #0 + strh r0, [r5] + ldr r1, _0801C814 @ =0x040000D4 + movs r0, #0xa + mov r2, r8 + subs r0, r0, r2 + lsls r0, r0, #1 + add r0, ip + str r0, [r1] + adds r0, r5, #2 + str r0, [r1, #4] + movs r0, #0x80 + lsls r0, r0, #0x18 + orrs r4, r0 + str r4, [r1, #8] + ldr r0, [r1, #8] + ldrb r0, [r7, #3] + movs r1, #3 + ands r1, r0 + cmp r1, #0 + beq _0801C7FC + cmp r3, #9 + ble _0801C7EE + subs r3, #0xa + adds r5, #0x40 +_0801C7EE: + lsls r0, r3, #1 + adds r0, r0, r5 + adds r1, #0x11 + ldr r3, _0801C81C @ =0xFFFFF000 + adds r2, r3, #0 + orrs r1, r2 + strh r1, [r0, #2] +_0801C7FC: + ldr r1, _0801C820 @ =gUnk_03000F50 + movs r0, #1 + strh r0, [r1, #0xe] +_0801C802: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801C808: .4byte gUnk_080C8F2C +_0801C80C: .4byte gUnk_02034D30 +_0801C810: .4byte 0x0000F010 +_0801C814: .4byte 0x040000D4 +_0801C818: .4byte gUnk_02034CF0 +_0801C81C: .4byte 0xFFFFF000 +_0801C820: .4byte gUnk_03000F50 + + thumb_func_start sub_0801C824 +sub_0801C824: @ 0x0801C824 + push {lr} + ldr r1, _0801C850 @ =gUnk_0200AF00 + ldrb r0, [r1, #6] + cmp r0, #0 + beq _0801C84E + movs r2, #0 + strb r2, [r1, #6] + ldrb r0, [r1, #4] + ldr r1, _0801C854 @ =gUnk_02034D30 + cmp r0, #0x28 + bls _0801C83C + adds r1, #0x40 +_0801C83C: + str r2, [r1] + str r2, [r1, #4] + str r2, [r1, #8] + str r2, [r1, #0xc] + str r2, [r1, #0x10] + str r2, [r1, #0x14] + ldr r1, _0801C858 @ =gUnk_03000F50 + movs r0, #1 + strh r0, [r1, #0xe] +_0801C84E: + pop {pc} + .align 2, 0 +_0801C850: .4byte gUnk_0200AF00 +_0801C854: .4byte gUnk_02034D30 +_0801C858: .4byte gUnk_03000F50 + + thumb_func_start sub_0801C85C +sub_0801C85C: @ 0x0801C85C + push {r4, r5, r6, lr} + movs r2, #0 + ldr r5, _0801C884 @ =gUnk_0200AF00 + ldrb r1, [r5, #1] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _0801C878 + ldr r0, _0801C888 @ =gUnk_03003F80 + adds r0, #0xa0 + ldrb r1, [r0] + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r2, r0, #0x1f +_0801C878: + cmp r2, #0 + bne _0801C88C + bl sub_0801C824 + b _0801C984 + .align 2, 0 +_0801C884: .4byte gUnk_0200AF00 +_0801C888: .4byte gUnk_03003F80 +_0801C88C: + ldrb r0, [r5, #4] + ldr r4, _0801C92C @ =gUnk_02034D30 + cmp r0, #0x28 + bls _0801C896 + adds r4, #0x40 +_0801C896: + ldr r0, _0801C930 @ =gUnk_03003F80 + adds r0, #0xa4 + movs r1, #0 + ldrsh r0, [r0, r1] + adds r0, #0x13 + movs r1, #0x14 + bl Div + adds r1, r0, #0 + cmp r1, #0x28 + bls _0801C8AE + movs r1, #0x28 +_0801C8AE: + ldrb r0, [r5, #6] + cmp r0, #0 + beq _0801C8BA + ldrb r0, [r5, #7] + cmp r0, r1 + beq _0801C910 +_0801C8BA: + movs r6, #1 + strb r6, [r5, #6] + strb r1, [r5, #7] + adds r0, r1, #0 + movs r1, #4 + bl Div + adds r3, r0, #0 + adds r5, r1, #0 + ldr r1, _0801C934 @ =0x0000F016 + adds r0, r1, #0 + strh r0, [r4] + ldr r1, _0801C938 @ =0x0000F416 + adds r0, r1, #0 + strh r0, [r4, #0x16] + ldr r2, _0801C93C @ =0x040000D4 + movs r0, #0xa + subs r0, r0, r3 + lsls r0, r0, #1 + ldr r1, _0801C940 @ =gUnk_080C8F54 + adds r0, r0, r1 + str r0, [r2] + adds r0, r4, #2 + str r0, [r2, #4] + ldr r0, _0801C944 @ =0x8000000A + str r0, [r2, #8] + ldr r0, [r2, #8] + cmp r5, #0 + beq _0801C90C + lsls r2, r3, #1 + adds r2, r2, r4 + adds r0, r5, #0 + adds r0, #0x17 + ldr r3, _0801C948 @ =0x000003FF + adds r1, r3, #0 + ands r0, r1 + movs r3, #0xf0 + lsls r3, r3, #8 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2, #2] +_0801C90C: + ldr r0, _0801C94C @ =gUnk_03000F50 + strh r6, [r0, #0xe] +_0801C910: + ldr r0, _0801C930 @ =gUnk_03003F80 + adds r0, #0xa0 + ldrb r0, [r0] + cmp r0, #5 + bgt _0801C962 + cmp r0, #4 + blt _0801C962 + ldr r2, _0801C950 @ =gUnk_0200AF00 + ldrb r1, [r2, #9] + adds r4, r2, #0 + cmp r0, #4 + bne _0801C954 + adds r0, r1, #2 + b _0801C956 + .align 2, 0 +_0801C92C: .4byte gUnk_02034D30 +_0801C930: .4byte gUnk_03003F80 +_0801C934: .4byte 0x0000F016 +_0801C938: .4byte 0x0000F416 +_0801C93C: .4byte 0x040000D4 +_0801C940: .4byte gUnk_080C8F54 +_0801C944: .4byte 0x8000000A +_0801C948: .4byte 0x000003FF +_0801C94C: .4byte gUnk_03000F50 +_0801C950: .4byte gUnk_0200AF00 +_0801C954: + adds r0, r1, #1 +_0801C956: + strb r0, [r2, #9] + ldrb r0, [r4, #9] + lsrs r3, r0, #4 + movs r0, #3 + ands r3, r0 + b _0801C966 +_0801C962: + movs r3, #0 + ldr r4, _0801C988 @ =gUnk_0200AF00 +_0801C966: + ldrb r0, [r4, #8] + cmp r3, r0 + beq _0801C984 + strb r3, [r4, #8] + ldr r4, _0801C98C @ =0x0600C2C0 + ldr r1, _0801C990 @ =0x040000D4 + ldr r2, _0801C994 @ =gUnk_080C8F7C + lsls r0, r3, #2 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] + str r4, [r1, #4] + ldr r0, _0801C998 @ =0x84000030 + str r0, [r1, #8] + ldr r0, [r1, #8] +_0801C984: + pop {r4, r5, r6, pc} + .align 2, 0 +_0801C988: .4byte gUnk_0200AF00 +_0801C98C: .4byte 0x0600C2C0 +_0801C990: .4byte 0x040000D4 +_0801C994: .4byte gUnk_080C8F7C +_0801C998: .4byte 0x84000030 + + thumb_func_start sub_0801C99C +sub_0801C99C: @ 0x0801C99C + push {r4, r5, lr} + ldr r4, _0801C9E0 @ =gUnk_0200AF00 + ldrb r1, [r4, #1] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0801C9B2 + bl sub_08052724 + cmp r0, #0 + bne _0801C9EC +_0801C9B2: + ldrb r0, [r4, #0x10] + cmp r0, #0 + beq _0801CA50 + movs r0, #0 + strb r0, [r4, #0x10] + ldr r2, _0801C9E4 @ =gUnk_020350E2 + strh r0, [r2] + strh r0, [r2, #2] + strh r0, [r2, #4] + strh r0, [r2, #6] + adds r1, r2, #0 + adds r1, #0x40 + strh r0, [r1] + adds r1, #2 + strh r0, [r1] + adds r1, #2 + strh r0, [r1] + adds r1, #2 + strh r0, [r1] + ldr r1, _0801C9E8 @ =gUnk_03000F50 + movs r0, #1 + strh r0, [r1, #0xe] + b _0801CA50 + .align 2, 0 +_0801C9E0: .4byte gUnk_0200AF00 +_0801C9E4: .4byte gUnk_020350E2 +_0801C9E8: .4byte gUnk_03000F50 +_0801C9EC: + ldrb r0, [r4, #0x10] + cmp r0, #0 + bne _0801CA1E + ldr r2, _0801CA54 @ =gUnk_020350E2 + adds r1, r2, #0 + adds r1, #0x40 + ldr r3, _0801CA58 @ =0x0000F01C + strh r3, [r2] + adds r0, r3, #1 + strh r0, [r2, #2] + adds r0, r3, #2 + strh r0, [r1] + adds r0, r3, #3 + strh r0, [r1, #2] + adds r3, #0x5a + strh r3, [r2, #4] + adds r0, r3, #1 + strh r0, [r1, #4] + adds r0, r3, #2 + strh r0, [r2, #6] + adds r0, r3, #3 + strh r0, [r1, #6] + ldr r1, _0801CA5C @ =gUnk_03000F50 + movs r0, #1 + strh r0, [r1, #0xe] +_0801CA1E: + ldr r0, _0801CA60 @ =gUnk_02002A40 + ldr r3, _0801CA64 @ =gUnk_02033A90 + ldrb r1, [r3, #3] + ldr r5, _0801CA68 @ =0x0000045C + adds r2, r0, r5 + adds r1, r1, r2 + ldrb r0, [r4, #0x12] + ldrb r1, [r1] + cmp r0, r1 + bne _0801CA38 + ldrb r0, [r4, #0x10] + cmp r0, #0 + bne _0801CA50 +_0801CA38: + movs r0, #2 + strb r0, [r4, #0x10] + ldrb r0, [r3, #3] + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r4, #0x12] + ldrb r1, [r4, #0x12] + movs r0, #0x76 + movs r2, #0 + movs r3, #2 + bl sub_0801C5E0 +_0801CA50: + pop {r4, r5, pc} + .align 2, 0 +_0801CA54: .4byte gUnk_020350E2 +_0801CA58: .4byte 0x0000F01C +_0801CA5C: .4byte gUnk_03000F50 +_0801CA60: .4byte gUnk_02002A40 +_0801CA64: .4byte gUnk_02033A90 +_0801CA68: .4byte 0x0000045C + + thumb_func_start sub_0801CA6C +sub_0801CA6C: @ 0x0801CA6C + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r6, r1, #0 + movs r3, #0 + ldr r7, _0801CAA8 @ =gUnk_0200AF34 + movs r0, #1 + mov ip, r0 + ldr r1, _0801CAAC @ =gUnk_080C8F8C + lsls r0, r5, #4 + adds r4, r0, r1 +_0801CA80: + lsls r0, r3, #5 + adds r1, r0, r7 + ldrb r2, [r1] + movs r0, #1 + ands r0, r2 + cmp r0, #0 + bne _0801CAB0 + strb r5, [r1, #1] + strb r6, [r1, #2] + movs r0, #0xff + strb r0, [r1, #0x10] + mov r0, ip + orrs r0, r2 + strb r0, [r1] + ldrh r0, [r4, #4] + strh r0, [r1, #0x1a] + ldrb r0, [r4, #0xc] + strb r0, [r1, #3] + b _0801CAB6 + .align 2, 0 +_0801CAA8: .4byte gUnk_0200AF34 +_0801CAAC: .4byte gUnk_080C8F8C +_0801CAB0: + adds r3, #1 + cmp r3, #0x17 + bls _0801CA80 +_0801CAB6: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0801CAB8 +sub_0801CAB8: @ 0x0801CAB8 + push {lr} + str r1, [r0, #0x14] + ldrb r2, [r1, #1] + strb r2, [r0, #0x11] + ldrb r2, [r1, #2] + strb r2, [r0, #0x12] + ldrb r2, [r1, #3] + strb r2, [r0, #0x13] + ldrb r1, [r1] + bl sub_0801CAFC + pop {pc} + + thumb_func_start sub_0801CAD0 +sub_0801CAD0: @ 0x0801CAD0 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0x11] + subs r0, #1 + strb r0, [r2, #0x11] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801CAF8 + ldr r1, [r2, #0x14] + movs r0, #3 + ldrsb r0, [r1, r0] + cmp r0, #0 + bge _0801CAF0 + ldrb r0, [r1, #4] + lsls r0, r0, #2 + subs r1, r1, r0 +_0801CAF0: + adds r1, #4 + adds r0, r2, #0 + bl sub_0801CAB8 +_0801CAF8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0801CAFC +sub_0801CAFC: @ 0x0801CAFC + push {lr} + adds r2, r0, #0 + adds r3, r1, #0 + ldrb r0, [r2, #1] + lsls r0, r0, #4 + ldr r1, _0801CB1C @ =gUnk_080C8F8C + adds r1, r0, r1 + ldrb r0, [r2, #0x10] + cmp r3, r0 + beq _0801CB18 + strb r3, [r2, #0x10] + adds r0, r2, #0 + bl sub_0801CB20 +_0801CB18: + pop {pc} + .align 2, 0 +_0801CB1C: .4byte gUnk_080C8F8C + + thumb_func_start sub_0801CB20 +sub_0801CB20: @ 0x0801CB20 + push {lr} + adds r3, r0, #0 + ldrb r0, [r1, #0xe] + cmp r0, #0 + bne _0801CB76 + ldrh r1, [r1, #6] + lsls r1, r1, #4 + ldr r0, _0801CB54 @ =gUnk_080029B4 + adds r1, r1, r0 + ldrb r0, [r3, #0x10] + lsls r0, r0, #2 + ldr r2, [r1, #4] + adds r2, r2, r0 + ldrh r0, [r2, #2] + lsls r0, r0, #5 + ldr r1, [r1, #8] + adds r1, r1, r0 + ldrb r2, [r2] + cmp r2, #0 + bne _0801CB58 + ldrb r1, [r3] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r3] + b _0801CB74 + .align 2, 0 +_0801CB54: .4byte gUnk_080029B4 +_0801CB58: + ldrb r0, [r3, #0x19] + cmp r0, r2 + bne _0801CB64 + ldr r0, [r3, #0x1c] + cmp r0, r1 + beq _0801CB74 +_0801CB64: + str r1, [r3, #0x1c] + ldrb r0, [r3] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #4 + orrs r1, r0 + strb r1, [r3] +_0801CB74: + strb r2, [r3, #0x19] +_0801CB76: + pop {pc} + + thumb_func_start sub_0801CB78 +sub_0801CB78: @ 0x0801CB78 + push {lr} + ldr r2, _0801CB8C @ =gUnk_080C903C + ldrb r1, [r0, #4] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0801CB8C: .4byte gUnk_080C903C + + thumb_func_start sub_0801CB90 +sub_0801CB90: @ 0x0801CB90 + push {lr} + ldr r3, _0801CBC4 @ =gUnk_0200AF00 + ldrb r1, [r0, #1] + lsls r1, r1, #1 + adds r2, r3, #0 + adds r2, #0x16 + adds r1, r1, r2 + ldrh r1, [r1] + strh r1, [r0, #0xc] + ldrb r1, [r0, #1] + lsls r1, r1, #1 + adds r3, #0x1c + adds r1, r1, r3 + ldrh r1, [r1] + subs r1, #0x20 + strh r1, [r0, #0xe] + movs r1, #1 + strb r1, [r0, #4] + ldrb r1, [r0] + movs r2, #2 + orrs r1, r2 + strb r1, [r0] + ldrb r1, [r0, #1] + bl sub_0801CAFC + pop {pc} + .align 2, 0 +_0801CBC4: .4byte gUnk_0200AF00 + + thumb_func_start sub_0801CBC8 +sub_0801CBC8: @ 0x0801CBC8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5, #2] + movs r6, #8 + cmp r0, #0 + bne _0801CC10 + movs r6, #4 + cmp r0, #0 + bne _0801CC10 + ldr r3, _0801CC08 @ =gUnk_0200AF00 + ldrb r0, [r3, #1] + ldrb r2, [r5, #1] + asrs r0, r2 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _0801CBF6 + ldr r0, _0801CC0C @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + beq _0801CC10 +_0801CBF6: + lsls r0, r2, #1 + adds r1, r3, #0 + adds r1, #0x1c + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + adds r1, r0, #0 + subs r1, #0x28 + b _0801CC1E + .align 2, 0 +_0801CC08: .4byte gUnk_0200AF00 +_0801CC0C: .4byte gUnk_02000050 +_0801CC10: + ldr r1, _0801CC7C @ =gUnk_0200AF00 + ldrb r0, [r5, #1] + lsls r0, r0, #1 + adds r1, #0x1c + adds r0, r0, r1 + movs r2, #0 + ldrsh r1, [r0, r2] +_0801CC1E: + movs r2, #0xe + ldrsh r0, [r5, r2] + subs r4, r1, r0 + adds r1, r4, #0 + cmp r4, #0 + bge _0801CC2C + rsbs r4, r4, #0 +_0801CC2C: + cmp r6, r4 + bgt _0801CC32 + adds r4, r6, #0 +_0801CC32: + adds r0, r1, #0 + bl sub_08000E44 + muls r4, r0, r4 + cmp r4, #0 + beq _0801CC44 + ldrh r0, [r5, #0xe] + adds r0, r0, r4 + strh r0, [r5, #0xe] +_0801CC44: + ldr r0, _0801CC7C @ =gUnk_0200AF00 + ldrb r1, [r5, #1] + lsls r1, r1, #1 + adds r0, #0x16 + adds r1, r1, r0 + movs r0, #0 + ldrsh r1, [r1, r0] + movs r2, #0xc + ldrsh r0, [r5, r2] + subs r4, r1, r0 + adds r1, r4, #0 + cmp r4, #0 + bge _0801CC60 + rsbs r4, r4, #0 +_0801CC60: + cmp r6, r4 + bgt _0801CC66 + adds r4, r6, #0 +_0801CC66: + adds r0, r1, #0 + bl sub_08000E44 + muls r4, r0, r4 + cmp r4, #0 + beq _0801CC78 + ldrh r0, [r5, #0xc] + adds r0, r0, r4 + strh r0, [r5, #0xc] +_0801CC78: + pop {r4, r5, r6, pc} + .align 2, 0 +_0801CC7C: .4byte gUnk_0200AF00 + + thumb_func_start sub_0801CC80 +sub_0801CC80: @ 0x0801CC80 + push {r4, r5, lr} + ldrb r1, [r0, #1] + movs r0, #3 + eors r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + ldr r5, _0801CCAC @ =gUnk_02002A40 + adds r1, r5, #0 + adds r1, #0xb4 + adds r0, r0, r1 + ldrb r4, [r0] + adds r0, r4, #0 + bl sub_080544C8 + cmp r0, #0 + beq _0801CCA8 + adds r0, r5, r4 + adds r0, #0x9a + ldrb r4, [r0] +_0801CCA8: + adds r0, r4, #0 + pop {r4, r5, pc} + .align 2, 0 +_0801CCAC: .4byte gUnk_02002A40 + + thumb_func_start sub_0801CCB0 +sub_0801CCB0: @ 0x0801CCB0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r1, [r4] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4] + adds r0, r4, #0 + bl sub_0801CC80 + adds r1, r0, #0 + cmp r1, #0 + beq _0801CD90 + ldrb r0, [r4, #8] + cmp r0, r1 + beq _0801CCE0 + strb r1, [r4, #8] + ldr r0, _0801CD1C @ =gUnk_080FDFD8 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl sub_0801CAB8 +_0801CCE0: + ldrb r0, [r4, #1] + movs r1, #3 + eors r0, r1 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r6, r1, #0x1f + ldr r3, _0801CD20 @ =gUnk_0200AF13 + cmp r6, #0 + beq _0801CCF4 + adds r3, #1 +_0801CCF4: + ldrb r0, [r4, #8] + cmp r0, #7 + blt _0801CD60 + cmp r0, #8 + ble _0801CD28 + cmp r0, #0xa + bgt _0801CD60 + ldr r1, _0801CD24 @ =gUnk_02002A40 + adds r0, r1, #0 + adds r0, #0xad + ldrb r2, [r0] + ldrb r0, [r3] + adds r5, r1, #0 + cmp r0, r2 + beq _0801CD4C + adds r0, r2, #0 + adds r0, #0x80 + strb r0, [r3] + b _0801CD4C + .align 2, 0 +_0801CD1C: .4byte gUnk_080FDFD8 +_0801CD20: .4byte gUnk_0200AF13 +_0801CD24: .4byte gUnk_02002A40 +_0801CD28: + ldr r5, _0801CD44 @ =gUnk_02002A40 + adds r0, r5, #0 + adds r0, #0xac + ldrb r2, [r0] + ldrb r0, [r3] + cmp r0, r2 + beq _0801CD3C + adds r0, r2, #0 + adds r0, #0x80 + strb r0, [r3] +_0801CD3C: + ldr r1, _0801CD48 @ =gUnk_080FD5A0 + adds r0, r5, #0 + adds r0, #0xae + b _0801CD52 + .align 2, 0 +_0801CD44: .4byte gUnk_02002A40 +_0801CD48: .4byte gUnk_080FD5A0 +_0801CD4C: + ldr r1, _0801CD5C @ =gUnk_080FD5A4 + adds r0, r5, #0 + adds r0, #0xaf +_0801CD52: + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r0, [r0] + b _0801CD64 + .align 2, 0 +_0801CD5C: .4byte gUnk_080FD5A4 +_0801CD60: + movs r0, #1 + movs r2, #0 +_0801CD64: + movs r1, #3 + cmp r0, r2 + bhi _0801CD6C + movs r1, #4 +_0801CD6C: + strb r1, [r4, #0x18] + adds r0, r6, #0 + bl sub_0801CE24 + adds r1, r0, #0 + cmp r1, #0 + beq _0801CD90 + ldrh r0, [r1, #0xc] + strh r0, [r4, #0xc] + ldrh r0, [r1, #0xe] + strh r0, [r4, #0xe] + ldrb r0, [r4] + movs r1, #2 + orrs r0, r1 + strb r0, [r4] + adds r0, r4, #0 + bl sub_0801CAD0 +_0801CD90: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0801CD94 +sub_0801CD94: @ 0x0801CD94 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #2] + ldr r1, _0801CDC0 @ =gUnk_0200AF00 + cmp r0, #9 + bne _0801CDD4 + adds r0, r1, #0 + adds r0, #0x2f + ldrb r2, [r0] + cmp r2, #0 + bne _0801CDCE + ldr r0, _0801CDC4 @ =gUnk_02033A90 + ldrb r0, [r0, #0x18] + cmp r0, #2 + beq _0801CDC8 + cmp r0, #3 + beq _0801CDCC + adds r0, r1, #0 + adds r0, #0x2c + ldrb r2, [r0] + b _0801CDCE + .align 2, 0 +_0801CDC0: .4byte gUnk_0200AF00 +_0801CDC4: .4byte gUnk_02033A90 +_0801CDC8: + movs r2, #0xb + b _0801CDCE +_0801CDCC: + movs r2, #0xa +_0801CDCE: + adds r0, r1, #0 + adds r0, #0x32 + strb r2, [r0] +_0801CDD4: + adds r0, r1, #0 + adds r0, #0x30 + ldrb r1, [r4, #3] + adds r0, r0, r1 + ldrb r2, [r0] + ldrb r1, [r4] + movs r0, #3 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4] + cmp r2, #0 + beq _0801CE1E + ldr r1, _0801CE20 @ =gUnk_080C9044 + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + adds r0, r0, r1 + ldrb r0, [r0] + adds r2, r2, r0 + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_0801CAFC + ldrb r0, [r4, #3] + bl sub_0801CE24 + adds r1, r0, #0 + cmp r1, #0 + beq _0801CE1E + ldrh r0, [r1, #0xc] + strh r0, [r4, #0xc] + ldrh r0, [r1, #0xe] + strh r0, [r4, #0xe] + ldrb r0, [r4] + movs r1, #2 + orrs r0, r1 + strb r0, [r4] +_0801CE1E: + pop {r4, pc} + .align 2, 0 +_0801CE20: .4byte gUnk_080C9044 + + thumb_func_start sub_0801CE24 +sub_0801CE24: @ 0x0801CE24 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r4, #0 + movs r6, #1 + ldr r3, _0801CE44 @ =gUnk_0200AF34 + adds r2, r3, #0 +_0801CE30: + ldrb r1, [r2] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _0801CE48 + ldrb r0, [r2, #1] + cmp r5, r0 + bne _0801CE48 + adds r0, r3, #0 + b _0801CE54 + .align 2, 0 +_0801CE44: .4byte gUnk_0200AF34 +_0801CE48: + adds r2, #0x20 + adds r3, #0x20 + adds r4, #1 + cmp r4, #0x17 + bls _0801CE30 + movs r0, #0 +_0801CE54: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0801CE58 +sub_0801CE58: @ 0x0801CE58 + push {r4, lr} + adds r3, r0, #0 + ldrb r0, [r3] + movs r4, #3 + rsbs r4, r4, #0 + ands r4, r0 + strb r4, [r3] + ldr r2, _0801CEB8 @ =gUnk_0200AF00 + ldrb r1, [r2, #1] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + bne _0801CEB4 + ldr r0, _0801CEBC @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0801CEB4 + ldrb r2, [r2, #3] + cmp r2, #0 + beq _0801CEB4 + movs r0, #2 + adds r1, r4, #0 + orrs r1, r0 + strb r1, [r3] + adds r0, r2, #3 + lsrs r0, r0, #2 + lsls r0, r0, #3 + adds r1, r0, #3 + movs r4, #0xc + cmp r2, #0x28 + bls _0801CE9E + movs r4, #0x14 + subs r1, #0x50 +_0801CE9E: + strh r1, [r3, #0xc] + strh r4, [r3, #0xe] + movs r1, #3 + ands r1, r2 + cmp r1, #0 + bne _0801CEAC + movs r1, #4 +_0801CEAC: + adds r1, #0x71 + adds r0, r3, #0 + bl sub_0801CAFC +_0801CEB4: + pop {r4, pc} + .align 2, 0 +_0801CEB8: .4byte gUnk_0200AF00 +_0801CEBC: .4byte gUnk_02000050 + + thumb_func_start sub_0801CEC0 +sub_0801CEC0: @ 0x0801CEC0 + push {lr} + ldr r2, _0801CED4 @ =gUnk_080C904C + ldrb r1, [r0, #4] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0801CED4: .4byte gUnk_080C904C + + thumb_func_start sub_0801CED8 +sub_0801CED8: @ 0x0801CED8 + push {r4, lr} + adds r3, r0, #0 + ldr r0, _0801CF10 @ =gUnk_0200AF00 + adds r1, r0, #0 + adds r1, #0x24 + ldrb r4, [r1] + cmp r4, #1 + bne _0801CF0E + movs r2, #2 + movs r0, #2 + strb r0, [r1] + movs r1, #0 + movs r0, #0x10 + strh r0, [r3, #0xc] + movs r0, #0x90 + strh r0, [r3, #0xe] + strb r1, [r3, #6] + movs r0, #7 + strb r0, [r3, #1] + strb r4, [r3, #4] + ldrb r0, [r3] + orrs r0, r2 + strb r0, [r3] + ldr r1, _0801CF14 @ =gUnk_080C9094 + adds r0, r3, #0 + bl sub_0801CAB8 +_0801CF0E: + pop {r4, pc} + .align 2, 0 +_0801CF10: .4byte gUnk_0200AF00 +_0801CF14: .4byte gUnk_080C9094 + + thumb_func_start sub_0801CF18 +sub_0801CF18: @ 0x0801CF18 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r2, _0801CF54 @ =gUnk_080C9058 + ldrb r0, [r5, #6] + adds r1, r0, #1 + strb r1, [r5, #6] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r2 + ldrh r4, [r0] + movs r0, #0 + adds r1, r4, #0 + adds r2, r4, #0 + movs r3, #0 + bl sub_0805ECEC + cmp r4, #0 + bne _0801CF52 + movs r0, #2 + strb r0, [r5, #4] + movs r0, #8 + strb r0, [r5, #1] + ldr r0, _0801CF58 @ =gUnk_0200AF00 + adds r0, #0x24 + movs r1, #3 + strb r1, [r0] + ldr r0, _0801CF5C @ =0x00000173 + bl sub_080A3268 +_0801CF52: + pop {r4, r5, pc} + .align 2, 0 +_0801CF54: .4byte gUnk_080C9058 +_0801CF58: .4byte gUnk_0200AF00 +_0801CF5C: .4byte 0x00000173 + + thumb_func_start sub_0801CF60 +sub_0801CF60: @ 0x0801CF60 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _0801CF8C @ =gUnk_0200AF00 + adds r5, r0, #0 + adds r5, #0x24 + ldrb r0, [r5] + cmp r0, #4 + bhi _0801CF7C + ldr r0, _0801CF90 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + beq _0801CF94 +_0801CF7C: + movs r0, #0 + strb r0, [r4, #4] + ldrb r1, [r4] + subs r0, #3 + ands r0, r1 + strb r0, [r4] + b _0801CFA4 + .align 2, 0 +_0801CF8C: .4byte gUnk_0200AF00 +_0801CF90: .4byte gUnk_02000050 +_0801CF94: + adds r0, r4, #0 + bl sub_0801CAD0 + ldrb r0, [r4, #0x13] + cmp r0, #1 + bne _0801CFA4 + movs r0, #4 + strb r0, [r5] +_0801CFA4: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0801CFA8 +sub_0801CFA8: @ 0x0801CFA8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _0801CFCC @ =gUnk_02001A00 + movs r1, #0x40 + bl sub_0801D630 + movs r4, #0 +_0801CFB6: + adds r0, r4, #0 + bl sub_0801CFD0 + adds r4, #1 + cmp r4, #5 + bls _0801CFB6 + adds r0, r5, #0 + bl sub_0801D000 + pop {r4, r5, pc} + .align 2, 0 +_0801CFCC: .4byte gUnk_02001A00 + + thumb_func_start sub_0801CFD0 +sub_0801CFD0: @ 0x0801CFD0 + lsls r0, r0, #2 + ldr r1, _0801CFF8 @ =gUnk_02001A00 + adds r0, r0, r1 + ldrb r2, [r0] + movs r1, #0x10 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #4 + orrs r1, r2 + movs r2, #0xf + ands r1, r2 + movs r2, #0x10 + orrs r1, r2 + strb r1, [r0] + movs r1, #0x80 + strb r1, [r0, #1] + ldr r1, _0801CFFC @ =0x0000FFFF + strh r1, [r0, #2] + bx lr + .align 2, 0 +_0801CFF8: .4byte gUnk_02001A00 +_0801CFFC: .4byte 0x0000FFFF + + thumb_func_start sub_0801D000 +sub_0801D000: @ 0x0801D000 + push {lr} + adds r2, r0, #0 + ldr r0, _0801D024 @ =gUnk_030010A0 + movs r1, #0 + cmp r2, #0 + beq _0801D00E + movs r1, #0xf +_0801D00E: + adds r0, #0x2f + strb r1, [r0] + cmp r2, #0 + beq _0801D028 + bl sub_0801D34C + movs r0, #0xf + bl sub_0801CFD0 + b _0801D03A + .align 2, 0 +_0801D024: .4byte gUnk_030010A0 +_0801D028: + ldr r3, _0801D03C @ =gUnk_02001A3C + ldrb r1, [r3] + movs r0, #0xf + ands r0, r1 + cmp r0, #4 + bne _0801D03A + strb r2, [r3] + strb r2, [r3, #1] + strh r2, [r3, #2] +_0801D03A: + pop {pc} + .align 2, 0 +_0801D03C: .4byte gUnk_02001A3C + + thumb_func_start sub_0801D040 +sub_0801D040: @ 0x0801D040 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + str r0, [sp] + adds r6, r1, #0 + adds r0, r6, #0 + bl sub_0801D108 + adds r5, r0, #0 + cmp r5, #0 + bge _0801D0E8 + cmp r6, #0x15 + bhi _0801D064 + movs r4, #1 + b _0801D074 +_0801D064: + ldr r0, _0801D100 @ =gUnk_08133368 + adds r1, r6, #0 + subs r1, #0x16 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r4, [r1, #3] + movs r0, #0xf + ands r4, r0 +_0801D074: + adds r0, r4, #0 + bl sub_0801D134 + adds r5, r0, #0 + cmp r5, #0 + bge _0801D090 + bl sub_0801D34C + adds r0, r4, #0 + bl sub_0801D134 + adds r5, r0, #0 + cmp r5, #0 + blt _0801D0E8 +_0801D090: + lsls r1, r5, #2 + ldr r0, _0801D104 @ =gUnk_02001A00 + adds r3, r1, r0 + movs r0, #0 + strh r6, [r3, #2] + strb r0, [r3, #1] + movs r2, #0x10 + rsbs r2, r2, #0 + lsls r0, r4, #4 + movs r1, #3 + orrs r0, r1 + strb r0, [r3] + subs r4, #1 + cmp r4, #0 + beq _0801D0E0 + movs r0, #0 + mov sl, r0 + movs r1, #0 + mov r8, r1 + movs r0, #0xf + mov sb, r0 + mov ip, r2 + movs r7, #2 +_0801D0BE: + adds r3, #4 + mov r1, r8 + strh r1, [r3, #2] + mov r0, sl + strb r0, [r3, #1] + lsls r2, r4, #4 + ldrb r1, [r3] + mov r0, sb + ands r0, r1 + orrs r0, r2 + mov r1, ip + ands r0, r1 + orrs r0, r7 + strb r0, [r3] + subs r4, #1 + cmp r4, #0 + bne _0801D0BE +_0801D0E0: + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_0801D2C8 +_0801D0E8: + ldr r0, [sp] + adds r1, r5, #0 + bl sub_0801D19C + adds r0, r5, #0 + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801D100: .4byte gUnk_08133368 +_0801D104: .4byte gUnk_02001A00 + + thumb_func_start sub_0801D108 +sub_0801D108: @ 0x0801D108 + push {lr} + adds r2, r0, #0 + cmp r2, #5 + bhi _0801D116 + b _0801D12E +_0801D112: + adds r0, r1, #0 + b _0801D12E +_0801D116: + movs r1, #6 + ldr r0, _0801D130 @ =gUnk_02001A00 + adds r0, #0x18 +_0801D11C: + ldrh r3, [r0, #2] + cmp r2, r3 + beq _0801D112 + adds r0, #4 + adds r1, #1 + cmp r1, #0xf + bls _0801D11C + movs r0, #1 + rsbs r0, r0, #0 +_0801D12E: + pop {pc} + .align 2, 0 +_0801D130: .4byte gUnk_02001A00 + + thumb_func_start sub_0801D134 +sub_0801D134: @ 0x0801D134 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r2, #6 + ldr r0, _0801D154 @ =gUnk_02001A00 + adds r3, r0, #0 + adds r3, #0x18 +_0801D142: + ldrb r0, [r3] + lsls r0, r0, #0x1c + cmp r0, #0 + bne _0801D158 + adds r1, #1 + cmp r4, r1 + bhi _0801D15A + b _0801D180 + .align 2, 0 +_0801D154: .4byte gUnk_02001A00 +_0801D158: + movs r1, #0 +_0801D15A: + adds r3, #4 + adds r2, #1 + cmp r2, #0xf + bls _0801D142 + movs r1, #0 + movs r2, #6 + ldr r0, _0801D188 @ =gUnk_02001A00 + adds r3, r0, #0 + adds r3, #0x18 +_0801D16C: + ldrb r0, [r3] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + cmp r0, #1 + bgt _0801D18C + cmp r0, #0 + blt _0801D18C + adds r1, #1 + cmp r4, r1 + bhi _0801D18E +_0801D180: + subs r0, r1, #1 + subs r0, r2, r0 + b _0801D19A + .align 2, 0 +_0801D188: .4byte gUnk_02001A00 +_0801D18C: + movs r1, #0 +_0801D18E: + adds r3, #4 + adds r2, #1 + cmp r2, #0xf + bls _0801D16C + movs r0, #1 + rsbs r0, r0, #0 +_0801D19A: + pop {r4, pc} + + thumb_func_start sub_0801D19C +sub_0801D19C: @ 0x0801D19C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r3, r1, #0 + cmp r3, #0 + bge _0801D1A8 + movs r3, #0 +_0801D1A8: + adds r0, r4, #0 + adds r0, #0x28 + ldrb r0, [r0] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x7e + bls _0801D1BE + adds r0, r4, #0 + adds r0, #0x27 + strb r3, [r0] +_0801D1BE: + movs r0, #0xf + adds r1, r3, #0 + ands r1, r0 + ldrb r2, [r4, #0x1a] + movs r5, #0x10 + rsbs r5, r5, #0 + adds r0, r5, #0 + ands r0, r2 + orrs r0, r1 + movs r2, #0xf + adds r1, r3, #0 + ands r1, r2 + lsls r1, r1, #4 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1a] + lsls r1, r3, #2 + ldr r0, _0801D22C @ =gUnk_02001A00 + adds r4, r1, r0 + ldr r0, [r4] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + cmp r0, #4 + beq _0801D22A + ldrb r0, [r4, #1] + adds r0, #1 + strb r0, [r4, #1] + ldr r0, [r4] + lsls r0, r0, #0x18 + lsrs r3, r0, #0x1c + ldrb r1, [r4] + adds r0, r5, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r4] + subs r3, #1 + cmp r3, #0 + beq _0801D22A + movs r7, #0xf + adds r6, r5, #0 + movs r5, #2 +_0801D212: + adds r4, #4 + lsls r2, r3, #4 + ldrb r1, [r4] + adds r0, r7, #0 + ands r0, r1 + orrs r0, r2 + ands r0, r6 + orrs r0, r5 + strb r0, [r4] + subs r3, #1 + cmp r3, #0 + bne _0801D212 +_0801D22A: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801D22C: .4byte gUnk_02001A00 + + thumb_func_start sub_0801D230 +sub_0801D230: @ 0x0801D230 + push {lr} + adds r0, #0x27 + ldrb r2, [r0] + movs r1, #0 + strb r1, [r0] + adds r0, r2, #0 + bl sub_0801D244 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0801D244 +sub_0801D244: @ 0x0801D244 + push {r4, r5, r6, lr} + lsls r0, r0, #2 + ldr r1, _0801D288 @ =gUnk_02001A00 + adds r2, r0, r1 + ldr r0, [r2] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + cmp r0, #3 + bne _0801D284 + ldrb r0, [r2, #1] + subs r0, #1 + strb r0, [r2, #1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801D284 + ldr r0, [r2] + lsls r0, r0, #0x18 + lsrs r3, r0, #0x1c + movs r5, #0 + movs r6, #0x10 + rsbs r6, r6, #0 + movs r4, #1 +_0801D270: + strb r5, [r2, #1] + ldrb r1, [r2] + adds r0, r6, #0 + ands r0, r1 + orrs r0, r4 + strb r0, [r2] + adds r2, #4 + subs r3, #1 + cmp r3, #0 + bne _0801D270 +_0801D284: + pop {r4, r5, r6, pc} + .align 2, 0 +_0801D288: .4byte gUnk_02001A00 + + thumb_func_start sub_0801D28C +sub_0801D28C: @ 0x0801D28C + push {lr} + adds r3, r1, #0 + adds r0, #0x27 + ldrb r2, [r0] + ldr r1, _0801D2B0 @ =gUnk_02001A00 + lsls r0, r2, #2 + adds r1, r0, r1 + ldrb r0, [r1] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + cmp r0, #3 + bne _0801D2AE + strh r3, [r1, #2] + adds r0, r3, #0 + adds r1, r2, #0 + bl sub_0801D2C8 +_0801D2AE: + pop {pc} + .align 2, 0 +_0801D2B0: .4byte gUnk_02001A00 + + thumb_func_start sub_0801D2B4 +sub_0801D2B4: @ 0x0801D2B4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_0801D230 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0801D040 + pop {r4, r5, pc} + + thumb_func_start sub_0801D2C8 +sub_0801D2C8: @ 0x0801D2C8 + push {r4, lr} + adds r3, r0, #0 + ldr r2, _0801D2F8 @ =gUnk_0200B644 + adds r4, r1, #0 + adds r4, #0x10 + movs r1, #1 + lsls r1, r4 + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + cmp r3, #5 + bls _0801D33C + cmp r3, #0x15 + bne _0801D300 + ldr r2, _0801D2FC @ =gUnk_020176A0 + adds r0, r2, #0 + adds r0, #0x78 + ldrh r0, [r0] + lsls r1, r4, #5 + adds r1, r1, r2 + movs r2, #0x20 + bl sub_0801D5EC + b _0801D33C + .align 2, 0 +_0801D2F8: .4byte gUnk_0200B644 +_0801D2FC: .4byte gUnk_020176A0 +_0801D300: + cmp r3, #0x14 + bhi _0801D31C + subs r0, r3, #6 + lsls r0, r0, #5 + ldr r1, _0801D318 @ =gUnk_020176A0 + adds r0, r0, r1 + adds r1, r4, #0 + movs r2, #1 + bl sub_0801D754 + b _0801D33C + .align 2, 0 +_0801D318: .4byte gUnk_020176A0 +_0801D31C: + ldr r1, _0801D340 @ =gUnk_08133368 + adds r0, r3, #0 + subs r0, #0x16 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + lsrs r2, r0, #0x18 + movs r1, #0xf + ands r2, r1 + ldr r1, _0801D344 @ =0x00FFFFFF + ands r0, r1 + ldr r1, _0801D348 @ =gUnk_085A2E80 + adds r0, r0, r1 + adds r1, r4, #0 + bl sub_0801D754 +_0801D33C: + pop {r4, pc} + .align 2, 0 +_0801D340: .4byte gUnk_08133368 +_0801D344: .4byte 0x00FFFFFF +_0801D348: .4byte gUnk_085A2E80 + + thumb_func_start sub_0801D34C +sub_0801D34C: @ 0x0801D34C + push {r4, r5, r6, r7, lr} + sub sp, #0x10 + movs r2, #0 + movs r3, #0 + ldr r1, _0801D37C @ =gUnk_02001A00 +_0801D356: + mov r4, sp + adds r0, r4, r2 + strb r2, [r0] + ldrb r0, [r1] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + cmp r0, #1 + bgt _0801D370 + cmp r0, #0 + blt _0801D370 + strb r3, [r1] + strb r3, [r1, #1] + strh r3, [r1, #2] +_0801D370: + adds r1, #4 + adds r2, #1 + cmp r2, #0xf + bls _0801D356 + movs r4, #6 + b _0801D390 + .align 2, 0 +_0801D37C: .4byte gUnk_02001A00 +_0801D380: + cmp r4, r1 + ble _0801D390 + mov r2, sp + adds r0, r2, r4 + strb r1, [r0] + adds r0, r4, #0 + bl sub_0801D48C +_0801D390: + adds r0, r4, #1 + bl sub_0801D458 + adds r4, r0, #0 + cmp r4, #0 + beq _0801D3AC + movs r0, #1 + bl sub_0801D134 + adds r1, r0, #0 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bne _0801D380 +_0801D3AC: + movs r1, #0 + ldr r4, _0801D450 @ =gUnk_03003D70 + mov ip, r4 +_0801D3B2: + lsls r0, r1, #3 + mov r2, ip + adds r3, r0, r2 + adds r0, r3, #0 + ldr r3, [r3, #4] + adds r5, r1, #1 + cmp r0, r3 + beq _0801D444 + movs r7, #0x10 + rsbs r7, r7, #0 + adds r4, r0, #0 + ldr r6, _0801D454 @ =gUnk_020000C0 +_0801D3CA: + ldrb r0, [r3, #8] + cmp r0, #9 + beq _0801D43E + adds r1, r3, #0 + adds r1, #0x28 + ldrb r0, [r1] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x7e + bhi _0801D40C + ldrb r1, [r1] + lsls r1, r1, #6 + adds r1, r1, r6 + ldrb r0, [r1, #5] + add r0, sp + ldrb r0, [r0] + strb r0, [r1, #5] + ldrb r0, [r1, #0x15] + add r0, sp + ldrb r0, [r0] + strb r0, [r1, #0x15] + adds r2, r1, #0 + adds r2, #0x25 + ldrb r0, [r2] + add r0, sp + ldrb r0, [r0] + strb r0, [r2] + adds r1, #0x35 + ldrb r0, [r1] + add r0, sp + ldrb r0, [r0] + strb r0, [r1] +_0801D40C: + adds r1, r3, #0 + adds r1, #0x27 + ldrb r0, [r1] + add r0, sp + ldrb r0, [r0] + strb r0, [r1] + ldrb r2, [r3, #0x1a] + lsls r0, r2, #0x1c + lsrs r0, r0, #0x1c + add r0, sp + ldrb r1, [r0] + movs r0, #0xf + ands r1, r0 + adds r0, r7, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x1a] + lsrs r1, r0, #4 + add r1, sp + ldrb r2, [r1] + lsls r2, r2, #4 + movs r1, #0xf + ands r0, r1 + orrs r0, r2 + strb r0, [r3, #0x1a] +_0801D43E: + ldr r3, [r3, #4] + cmp r4, r3 + bne _0801D3CA +_0801D444: + adds r1, r5, #0 + cmp r1, #8 + bls _0801D3B2 + add sp, #0x10 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801D450: .4byte gUnk_03003D70 +_0801D454: .4byte gUnk_020000C0 + + thumb_func_start sub_0801D458 +sub_0801D458: @ 0x0801D458 + push {lr} + adds r2, r0, #0 + cmp r2, #0xf + bhi _0801D488 + ldr r1, _0801D47C @ =gUnk_02001A00 + lsls r0, r2, #2 + adds r1, r0, r1 +_0801D466: + ldrb r0, [r1] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + cmp r0, #0 + blt _0801D478 + cmp r0, #1 + ble _0801D480 + cmp r0, #4 + beq _0801D480 +_0801D478: + adds r0, r2, #0 + b _0801D48A + .align 2, 0 +_0801D47C: .4byte gUnk_02001A00 +_0801D480: + adds r1, #4 + adds r2, #1 + cmp r2, #0xf + bls _0801D466 +_0801D488: + movs r0, #0 +_0801D48A: + pop {pc} + + thumb_func_start sub_0801D48C +sub_0801D48C: @ 0x0801D48C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + adds r6, r0, #0 + adds r3, r1, #0 + ldr r0, _0801D50C @ =gUnk_02001A00 + mov r8, r0 + lsls r0, r6, #2 + mov r1, r8 + adds r4, r0, r1 + ldrb r0, [r4] + lsrs r5, r0, #4 + subs r5, #1 + movs r0, #1 + rsbs r0, r0, #0 + cmp r5, r0 + beq _0801D4F8 + ldr r2, _0801D510 @ =gUnk_020176A0 + lsls r0, r3, #5 + movs r1, #0x80 + lsls r1, r1, #2 + adds r0, r0, r1 + adds r7, r0, r2 + lsls r0, r3, #2 + add r8, r0 + lsls r0, r6, #5 + adds r0, r0, r1 + adds r6, r0, r2 + movs r3, #0 +_0801D4C8: + ldr r0, [r4] + mov r1, r8 + adds r1, #4 + mov r8, r1 + subs r1, #4 + stm r1!, {r0} + strb r3, [r4] + strb r3, [r4, #1] + strh r3, [r4, #2] + adds r0, r6, #0 + adds r1, r7, #0 + movs r2, #0x20 + str r3, [sp] + bl sub_0801D66C + adds r6, #0x20 + adds r4, #4 + adds r7, #0x20 + subs r5, #1 + movs r0, #1 + rsbs r0, r0, #0 + ldr r3, [sp] + cmp r5, r0 + bne _0801D4C8 +_0801D4F8: + ldr r0, _0801D514 @ =gUnk_0200B644 + ldr r1, [r0] + ldr r2, _0801D518 @ =0xFFFF0000 + orrs r1, r2 + str r1, [r0] + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801D50C: .4byte gUnk_02001A00 +_0801D510: .4byte gUnk_020176A0 +_0801D514: .4byte gUnk_0200B644 +_0801D518: .4byte 0xFFFF0000 + + thumb_func_start sub_0801D51C +sub_0801D51C: @ 0x0801D51C + push {r4, lr} + adds r2, r0, #0 + ldr r0, _0801D58C @ =0x05F5E0FF + cmp r2, r0 + bhi _0801D5A0 + ldr r1, _0801D590 @ =0x00989680 + adds r0, r2, #0 + bl Div + adds r4, r0, #0 + lsls r4, r4, #0x1c + ldr r2, _0801D594 @ =0x000F4240 + adds r0, r1, #0 + adds r1, r2, #0 + bl Div + lsls r0, r0, #0x18 + adds r4, r4, r0 + ldr r2, _0801D598 @ =0x000186A0 + adds r0, r1, #0 + adds r1, r2, #0 + bl Div + lsls r0, r0, #0x14 + adds r4, r4, r0 + ldr r2, _0801D59C @ =0x00002710 + adds r0, r1, #0 + adds r1, r2, #0 + bl Div + lsls r0, r0, #0x10 + adds r4, r4, r0 + movs r2, #0xfa + lsls r2, r2, #2 + adds r0, r1, #0 + adds r1, r2, #0 + bl Div + lsls r0, r0, #0xc + adds r4, r4, r0 + adds r0, r1, #0 + movs r1, #0x64 + bl Div + lsls r0, r0, #8 + adds r4, r4, r0 + adds r0, r1, #0 + movs r1, #0xa + bl Div + lsls r0, r0, #4 + adds r4, r4, r0 + adds r4, r4, r1 + adds r0, r4, #0 + b _0801D5A2 + .align 2, 0 +_0801D58C: .4byte 0x05F5E0FF +_0801D590: .4byte 0x00989680 +_0801D594: .4byte 0x000F4240 +_0801D598: .4byte 0x000186A0 +_0801D59C: .4byte 0x00002710 +_0801D5A0: + ldr r0, _0801D5A4 @ =0x99999999 +_0801D5A2: + pop {r4, pc} + .align 2, 0 +_0801D5A4: .4byte 0x99999999 + + thumb_func_start sub_0801D5A8 +sub_0801D5A8: @ 0x0801D5A8 + lsrs r2, r1, #3 + adds r0, r0, r2 + ldrb r0, [r0] + movs r2, #7 + ands r2, r1 + asrs r0, r2 + movs r1, #1 + ands r0, r1 + bx lr + .align 2, 0 + + thumb_func_start sub_0801D5BC +sub_0801D5BC: @ 0x0801D5BC + lsrs r2, r1, #3 + adds r3, r0, r2 + movs r2, #7 + ands r1, r2 + movs r2, #1 + lsls r2, r1 + ldrb r0, [r3] + adds r1, r0, #0 + orrs r1, r2 + strb r1, [r3] + ands r0, r2 + bx lr + + thumb_func_start sub_0801D5D4 +sub_0801D5D4: @ 0x0801D5D4 + lsrs r2, r1, #3 + adds r3, r0, r2 + movs r2, #7 + ands r1, r2 + movs r2, #1 + lsls r2, r1 + ldrb r0, [r3] + adds r1, r0, #0 + bics r1, r2 + strb r1, [r3] + ands r0, r2 + bx lr + + thumb_func_start sub_0801D5EC +sub_0801D5EC: @ 0x0801D5EC + sub sp, #4 + mov r3, sp + strh r0, [r3] + ldr r3, _0801D60C @ =0x040000D4 + mov r0, sp + str r0, [r3] + str r1, [r3, #4] + lsrs r2, r2, #1 + movs r0, #0x81 + lsls r0, r0, #0x18 + orrs r2, r0 + str r2, [r3, #8] + ldr r0, [r3, #8] + add sp, #4 + bx lr + .align 2, 0 +_0801D60C: .4byte 0x040000D4 + + thumb_func_start sub_0801D610 +sub_0801D610: @ 0x0801D610 + sub sp, #4 + str r0, [sp] + ldr r3, _0801D62C @ =0x040000D4 + mov r0, sp + str r0, [r3] + str r1, [r3, #4] + lsrs r2, r2, #2 + movs r0, #0x85 + lsls r0, r0, #0x18 + orrs r2, r0 + str r2, [r3, #8] + ldr r0, [r3, #8] + add sp, #4 + bx lr + .align 2, 0 +_0801D62C: .4byte 0x040000D4 + + thumb_func_start sub_0801D630 +sub_0801D630: @ 0x0801D630 + push {r4, lr} + adds r3, r0, #0 + adds r2, r1, #0 + movs r4, #0 + adds r1, r3, #0 + orrs r1, r2 + movs r0, #3 + ands r1, r0 + cmp r1, #0 + beq _0801D64A + cmp r1, #2 + beq _0801D654 + b _0801D65E +_0801D64A: + movs r0, #0 + adds r1, r3, #0 + bl sub_0801D610 + b _0801D668 +_0801D654: + movs r0, #0 + adds r1, r3, #0 + bl sub_0801D5EC + b _0801D668 +_0801D65E: + strb r4, [r3] + adds r3, #1 + subs r2, #1 + cmp r2, #0 + bne _0801D65E +_0801D668: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0801D66C +sub_0801D66C: @ 0x0801D66C + push {r4, lr} + adds r3, r0, #0 + adds r4, r2, #0 + adds r2, r3, #0 + orrs r2, r1 + orrs r2, r4 + movs r0, #3 + ands r2, r0 + cmp r2, #0 + beq _0801D686 + cmp r2, #2 + beq _0801D698 + b _0801D6B0 +_0801D686: + ldr r2, _0801D694 @ =0x040000D4 + str r3, [r2] + str r1, [r2, #4] + lsrs r0, r4, #2 + movs r1, #0x84 + lsls r1, r1, #0x18 + b _0801D6A4 + .align 2, 0 +_0801D694: .4byte 0x040000D4 +_0801D698: + ldr r2, _0801D6AC @ =0x040000D4 + str r3, [r2] + str r1, [r2, #4] + lsrs r0, r4, #1 + movs r1, #0x80 + lsls r1, r1, #0x18 +_0801D6A4: + orrs r0, r1 + str r0, [r2, #8] + ldr r0, [r2, #8] + b _0801D6BE + .align 2, 0 +_0801D6AC: .4byte 0x040000D4 +_0801D6B0: + ldrb r0, [r3] + strb r0, [r1] + adds r3, #1 + adds r1, #1 + subs r4, #1 + cmp r4, #0 + bne _0801D6B0 +_0801D6BE: + pop {r4, pc} + + thumb_func_start sub_0801D6C0 +sub_0801D6C0: @ 0x0801D6C0 + push {lr} + ldr r0, _0801D6D4 @ =0x04000130 + ldrh r0, [r0] + ldr r1, _0801D6D8 @ =0x000003FF + bics r1, r0 + ldr r0, _0801D6DC @ =gUnk_03000FF0 + bl sub_0801D6E0 + pop {pc} + .align 2, 0 +_0801D6D4: .4byte 0x04000130 +_0801D6D8: .4byte 0x000003FF +_0801D6DC: .4byte gUnk_03000FF0 + + thumb_func_start sub_0801D6E0 +sub_0801D6E0: @ 0x0801D6E0 + push {lr} + adds r2, r0, #0 + ldrh r0, [r2] + adds r3, r1, #0 + bics r3, r0 + strh r3, [r2, #2] + cmp r1, r0 + bne _0801D70A + ldrb r0, [r2, #7] + subs r0, #1 + strb r0, [r2, #7] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801D704 + movs r0, #4 + strb r0, [r2, #7] + strh r1, [r2, #4] + b _0801D710 +_0801D704: + movs r0, #0 + strh r0, [r2, #4] + b _0801D710 +_0801D70A: + movs r0, #0x14 + strb r0, [r2, #7] + strh r3, [r2, #4] +_0801D710: + strh r1, [r2] + pop {pc} + + thumb_func_start sub_0801D714 +sub_0801D714: @ 0x0801D714 + push {r4, lr} + ldr r1, _0801D748 @ =gUnk_080FF850 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r4, [r0] +_0801D71E: + ldrb r3, [r4, #2] + ldrb r0, [r4, #3] + movs r2, #0xf + ands r2, r0 + cmp r2, #0 + bne _0801D72C + movs r2, #0x10 +_0801D72C: + ldrh r0, [r4] + lsls r0, r0, #5 + ldr r1, _0801D74C @ =gUnk_085A2E80 + adds r0, r0, r1 + adds r1, r3, #0 + bl sub_0801D754 + ldrb r1, [r4, #3] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0801D750 + adds r4, #4 + b _0801D71E + .align 2, 0 +_0801D748: .4byte gUnk_080FF850 +_0801D74C: .4byte gUnk_085A2E80 +_0801D750: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0801D754 +sub_0801D754: @ 0x0801D754 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + lsls r5, r2, #5 + movs r3, #1 + lsls r3, r1 + subs r2, #1 + ldr r4, _0801D790 @ =gUnk_0200B644 + ldr r7, _0801D794 @ =gUnk_020176A0 + cmp r2, #0 + ble _0801D772 +_0801D768: + lsls r0, r3, #1 + orrs r3, r0 + subs r2, #1 + cmp r2, #0 + bgt _0801D768 +_0801D772: + ldr r0, [r4] + orrs r0, r3 + str r0, [r4] + lsls r0, r1, #5 + adds r0, r0, r7 + ldr r2, _0801D798 @ =0x040000D4 + str r6, [r2] + str r0, [r2, #4] + lsrs r0, r5, #2 + movs r1, #0x84 + lsls r1, r1, #0x18 + orrs r0, r1 + str r0, [r2, #8] + ldr r0, [r2, #8] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801D790: .4byte gUnk_0200B644 +_0801D794: .4byte gUnk_020176A0 +_0801D798: .4byte 0x040000D4 + + thumb_func_start sub_0801D79C +sub_0801D79C: @ 0x0801D79C + ldr r3, _0801D7B4 @ =gUnk_020176A0 + lsls r2, r0, #1 + adds r2, r2, r3 + strh r1, [r2] + ldr r2, _0801D7B8 @ =gUnk_0200B644 + lsrs r0, r0, #4 + movs r1, #1 + lsls r1, r0 + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + bx lr + .align 2, 0 +_0801D7B4: .4byte gUnk_020176A0 +_0801D7B8: .4byte gUnk_0200B644 + + thumb_func_start sub_0801D7BC +sub_0801D7BC: @ 0x0801D7BC + push {lr} + adds r2, r0, #0 + cmp r1, #0 + beq _0801D7D4 + ldr r1, _0801D7CC @ =gUnk_03000F50 + ldr r0, _0801D7D0 @ =0x0000E0FF + b _0801D7D8 + .align 2, 0 +_0801D7CC: .4byte gUnk_03000F50 +_0801D7D0: .4byte 0x0000E0FF +_0801D7D4: + ldr r1, _0801D7E4 @ =gUnk_03000F50 + ldr r0, _0801D7E8 @ =0x0000FFFF +_0801D7D8: + strh r0, [r1, #6] + movs r0, #0 + adds r1, r2, #0 + bl sub_0801D79C + pop {pc} + .align 2, 0 +_0801D7E4: .4byte gUnk_03000F50 +_0801D7E8: .4byte 0x0000FFFF + + thumb_func_start sub_0801D7EC +sub_0801D7EC: @ 0x0801D7EC + push {r4, r5, r6, lr} + ldr r1, _0801D814 @ =gUnk_08100AA8 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r4, [r0] + movs r6, #0x80 + lsls r6, r6, #0x12 + ldr r5, _0801D818 @ =0x040000D4 +_0801D7FC: + movs r2, #0 + ldrb r1, [r4, #3] + movs r0, #0xf + ands r1, r0 + cmp r1, #0xd + beq _0801D894 + cmp r1, #0xd + bhi _0801D81C + cmp r1, #7 + beq _0801D842 + b _0801D836 + .align 2, 0 +_0801D814: .4byte gUnk_08100AA8 +_0801D818: .4byte 0x040000D4 +_0801D81C: + cmp r1, #0xe + beq _0801D826 + cmp r1, #0xf + beq _0801D82E + b _0801D836 +_0801D826: + ldrb r0, [r6, #7] + cmp r0, #1 + bls _0801D83E + b _0801D842 +_0801D82E: + ldrb r0, [r6, #7] + cmp r0, #0 + beq _0801D83E + b _0801D842 +_0801D836: + ldrb r0, [r6, #7] + cmp r1, r0 + bne _0801D83E + movs r2, #1 +_0801D83E: + cmp r2, #0 + beq _0801D888 +_0801D842: + ldr r0, [r4] + ldr r1, _0801D868 @ =0x00FFFFFF + ands r0, r1 + ldr r1, _0801D86C @ =gUnk_085A2E80 + adds r2, r0, r1 + ldr r1, [r4, #4] + ldr r0, [r4, #8] + movs r3, #0x80 + lsls r3, r3, #0x18 + cmp r0, #0 + bge _0801D87C + ldr r0, _0801D870 @ =0x05FFFFFF + cmp r1, r0 + bls _0801D874 + adds r0, r2, #0 + bl LZ77UnCompVram + b _0801D888 + .align 2, 0 +_0801D868: .4byte 0x00FFFFFF +_0801D86C: .4byte gUnk_085A2E80 +_0801D870: .4byte 0x05FFFFFF +_0801D874: + adds r0, r2, #0 + bl LZ77UnCompWram + b _0801D888 +_0801D87C: + str r2, [r5] + str r1, [r5, #4] + lsrs r0, r0, #1 + orrs r0, r3 + str r0, [r5, #8] + ldr r0, [r5, #8] +_0801D888: + ldrb r1, [r4, #3] + movs r0, #0x80 + ands r1, r0 + adds r4, #0xc + cmp r1, #0 + bne _0801D7FC +_0801D894: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0801D898 +sub_0801D898: @ 0x0801D898 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r6, r2, #0 + movs r0, #0x80 + lsls r0, r0, #8 + ands r0, r3 + movs r1, #0x20 + mov ip, r1 + cmp r0, #0 + beq _0801D8B2 + movs r0, #0x40 + mov ip, r0 +_0801D8B2: + ldr r0, _0801D8D8 @ =0x00007FFF + ands r3, r0 + ldr r1, _0801D8DC @ =0x040000D4 + movs r2, #0x80 + lsls r2, r2, #0x18 + orrs r2, r6 + lsls r7, r6, #1 + mov r0, ip + lsls r6, r0, #1 +_0801D8C4: + str r4, [r1] + str r5, [r1, #4] + str r2, [r1, #8] + ldr r0, [r1, #8] + adds r4, r4, r7 + adds r5, r5, r6 + subs r3, #1 + cmp r3, #0 + bne _0801D8C4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801D8D8: .4byte 0x00007FFF +_0801D8DC: .4byte 0x040000D4 + + thumb_func_start sub_0801D8E0 +sub_0801D8E0: @ 0x0801D8E0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov ip, r0 + movs r0, #3 + add ip, r0 + subs r0, #7 + mov r1, ip + ands r1, r0 + mov ip, r1 + ldr r6, _0801D90C @ =gUnk_02035540 + mov sb, r6 + ldrh r7, [r6] + movs r5, #1 + movs r3, #0x80 + lsls r3, r3, #5 + add r3, sb + subs r4, r3, r1 + movs r2, #0 + b _0801D926 + .align 2, 0 +_0801D90C: .4byte gUnk_02035540 +_0801D910: + cmp r1, r4 + bhi _0801D918 + cmp r3, r0 + bls _0801D952 +_0801D918: + cmp r4, r1 + bhi _0801D920 + cmp r0, r3 + bls _0801D952 +_0801D920: + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 +_0801D926: + cmp r2, r7 + bhs _0801D94A + lsls r0, r2, #2 + add r0, sb + ldrh r1, [r0, #2] + ldr r6, _0801D95C @ =gUnk_02035540 + adds r1, r1, r6 + ldrh r0, [r0, #4] + adds r0, r0, r6 + cmp r1, r4 + bhi _0801D940 + cmp r4, r0 + bls _0801D952 +_0801D940: + cmp r1, r3 + bhi _0801D910 + cmp r3, r0 + bhi _0801D910 + movs r5, #0 +_0801D94A: + lsls r0, r7, #2 + mov sl, r0 + cmp r5, #0 + bne _0801D9D8 +_0801D952: + movs r1, #0 + mov r8, r1 + lsls r6, r7, #2 + mov sl, r6 + b _0801D970 + .align 2, 0 +_0801D95C: .4byte gUnk_02035540 +_0801D960: + movs r5, #0 +_0801D962: + mov r0, r8 + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + cmp r8, r7 + bhs _0801D9D4 +_0801D970: + mov r1, r8 + lsls r0, r1, #2 + add r0, sb + ldrh r0, [r0, #2] + ldr r6, _0801D994 @ =gUnk_02035540 + adds r3, r0, r6 + mov r0, ip + subs r4, r3, r0 + movs r5, #0 + mov r0, sl + adds r0, #2 + add r0, sb + adds r0, #4 + cmp r4, r0 + blo _0801D962 + movs r5, #1 + movs r2, #0 + b _0801D9AE + .align 2, 0 +_0801D994: .4byte gUnk_02035540 +_0801D998: + cmp r1, r4 + bhi _0801D9A0 + cmp r3, r0 + bls _0801D960 +_0801D9A0: + cmp r4, r1 + bhi _0801D9A8 + cmp r0, r3 + bls _0801D960 +_0801D9A8: + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 +_0801D9AE: + cmp r2, r7 + bhs _0801D9D0 + lsls r0, r2, #2 + add r0, sb + ldrh r1, [r0, #2] + adds r1, r1, r6 + ldrh r0, [r0, #4] + adds r0, r0, r6 + cmp r1, r4 + bhi _0801D9C6 + cmp r4, r0 + blo _0801D960 +_0801D9C6: + cmp r1, r3 + bhs _0801D998 + cmp r3, r0 + bhi _0801D998 + movs r5, #0 +_0801D9D0: + cmp r5, #0 + beq _0801D962 +_0801D9D4: + cmp r5, #0 + beq _0801DA00 +_0801D9D8: + ldr r0, _0801D9FC @ =gUnk_02035542 + mov r1, sl + adds r2, r1, r0 + subs r3, r0, #2 + subs r1, r4, r3 + strh r1, [r2] + adds r0, #2 + add r0, sl + add r1, ip + strh r1, [r0] + adds r0, r7, #1 + strh r0, [r3] + adds r0, r4, #0 + mov r1, ip + bl sub_0801D630 + adds r0, r4, #0 + b _0801DA02 + .align 2, 0 +_0801D9FC: .4byte gUnk_02035542 +_0801DA00: + movs r0, #0 +_0801DA02: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0801DA0C +sub_0801DA0C: @ 0x0801DA0C + push {r4, r5, lr} + ldr r3, _0801DA44 @ =gUnk_02035540 + subs r1, r0, r3 + ldr r0, _0801DA48 @ =0x00000FFF + cmp r1, r0 + bhi _0801DA74 + adds r4, r3, #0 + ldrh r5, [r4] + adds r4, #2 + movs r2, #0 + cmp r2, r5 + bhs _0801DA74 + ldrh r0, [r4] + cmp r0, r1 + bne _0801DA4C + lsls r0, r5, #2 + subs r1, r3, #2 + adds r0, r0, r1 + ldrh r1, [r0] + strh r1, [r4] + strh r2, [r0] + adds r0, #2 + ldrh r1, [r0] + strh r1, [r4, #2] + strh r2, [r0] + subs r0, r5, #1 + strh r0, [r3] + b _0801DA74 + .align 2, 0 +_0801DA44: .4byte gUnk_02035540 +_0801DA48: .4byte 0x00000FFF +_0801DA4C: + adds r4, #4 + adds r2, #1 + cmp r2, r5 + bhs _0801DA74 + ldrh r0, [r4] + cmp r0, r1 + bne _0801DA4C + lsls r1, r5, #2 + ldr r3, _0801DA78 @ =gUnk_0203553E + adds r1, r1, r3 + ldrh r0, [r1] + strh r0, [r4] + movs r2, #0 + strh r2, [r1] + adds r1, #2 + ldrh r0, [r1] + strh r0, [r4, #2] + strh r2, [r1] + subs r0, r5, #1 + strh r0, [r3, #2] +_0801DA74: + pop {r4, r5, pc} + .align 2, 0 +_0801DA78: .4byte gUnk_0203553E + + thumb_func_start sub_0801DA7C +sub_0801DA7C: @ 0x0801DA7C + push {lr} + ldr r0, _0801DA8C @ =gUnk_02035540 + movs r1, #0x80 + lsls r1, r1, #5 + bl sub_0801D630 + pop {pc} + .align 2, 0 +_0801DA8C: .4byte gUnk_02035540 + + thumb_func_start sub_0801DA90 +sub_0801DA90: @ 0x0801DA90 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r1, _0801DAEC @ =gUnk_03001000 + ldrb r0, [r1] + movs r3, #0 + movs r0, #1 + strb r0, [r1] + ldr r0, _0801DAF0 @ =gUnk_03003DE0 + strb r3, [r0] + ldr r0, _0801DAF4 @ =gUnk_03000FD0 + strb r3, [r0] + ldr r5, _0801DAF8 @ =gUnk_03000F50 + adds r0, r5, #0 + adds r0, #0x6d + strb r3, [r0] + subs r0, #1 + strb r3, [r0] + ldr r1, _0801DAFC @ =0x040000B0 + ldrh r2, [r1, #0xa] + ldr r0, _0801DB00 @ =0x0000C5FF + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r2, [r1, #0xa] + ldr r0, _0801DB04 @ =0x00007FFF + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r0, [r1, #0xa] + movs r0, #0x80 + lsls r0, r0, #0x13 + strh r3, [r0] + bl sub_0801DB10 + bl sub_0801DB34 + ldr r0, _0801DB08 @ =0x0600C000 + movs r1, #0x20 + bl sub_0801D630 + ldr r0, _0801DB0C @ =gUnk_02034CB0 + movs r1, #0x80 + lsls r1, r1, #4 + bl sub_0801D630 + strh r4, [r5, #0xe] + pop {r4, r5, pc} + .align 2, 0 +_0801DAEC: .4byte gUnk_03001000 +_0801DAF0: .4byte gUnk_03003DE0 +_0801DAF4: .4byte gUnk_03000FD0 +_0801DAF8: .4byte gUnk_03000F50 +_0801DAFC: .4byte 0x040000B0 +_0801DB00: .4byte 0x0000C5FF +_0801DB04: .4byte 0x00007FFF +_0801DB08: .4byte 0x0600C000 +_0801DB0C: .4byte gUnk_02034CB0 + + thumb_func_start sub_0801DB10 +sub_0801DB10: @ 0x0801DB10 + push {r4, lr} + ldr r3, _0801DB30 @ =gUnk_03000020 + movs r1, #0xe0 + lsls r1, r1, #0x13 + movs r0, #0x80 + movs r4, #0xa8 + lsls r4, r4, #2 + adds r2, r4, #0 +_0801DB20: + strh r2, [r3] + adds r3, #8 + strh r2, [r1] + adds r1, #8 + subs r0, #1 + cmp r0, #0 + bne _0801DB20 + pop {r4, pc} + .align 2, 0 +_0801DB30: .4byte gUnk_03000020 + + thumb_func_start sub_0801DB34 +sub_0801DB34: @ 0x0801DB34 + push {r4, lr} + ldr r4, _0801DB6C @ =gUnk_03000F50 + adds r0, r4, #0 + movs r1, #0x7c + bl sub_0801D630 + ldr r0, _0801DB70 @ =gUnk_02034CB0 + str r0, [r4, #0x10] + ldr r0, _0801DB74 @ =0x00001F0C + strh r0, [r4, #8] + ldr r0, _0801DB78 @ =gUnk_02021F30 + str r0, [r4, #0x1c] + ldr r0, _0801DB7C @ =0x00001C01 + strh r0, [r4, #0x14] + ldr r0, _0801DB80 @ =gUnk_020344B0 + str r0, [r4, #0x28] + ldr r0, _0801DB84 @ =0x00001D02 + strh r0, [r4, #0x20] + ldr r0, _0801DB88 @ =gUnk_02001A40 + str r0, [r4, #0x34] + ldr r0, _0801DB8C @ =0x00001E03 + strh r0, [r4, #0x2c] + movs r0, #0xa0 + lsls r0, r0, #1 + strh r0, [r4] + ldr r0, _0801DB90 @ =0x0000FFFF + strh r0, [r4, #6] + pop {r4, pc} + .align 2, 0 +_0801DB6C: .4byte gUnk_03000F50 +_0801DB70: .4byte gUnk_02034CB0 +_0801DB74: .4byte 0x00001F0C +_0801DB78: .4byte gUnk_02021F30 +_0801DB7C: .4byte 0x00001C01 +_0801DB80: .4byte gUnk_020344B0 +_0801DB84: .4byte 0x00001D02 +_0801DB88: .4byte gUnk_02001A40 +_0801DB8C: .4byte 0x00001E03 +_0801DB90: .4byte 0x0000FFFF + + thumb_func_start sub_0801DB94 +sub_0801DB94: @ 0x0801DB94 + ldr r0, _0801DB9C @ =gUnk_030010A0 + ldrh r0, [r0, #0x1e] + lsrs r0, r0, #0xb + bx lr + .align 2, 0 +_0801DB9C: .4byte gUnk_030010A0 + + thumb_func_start sub_0801DBA0 +sub_0801DBA0: @ 0x0801DBA0 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + adds r1, r2, #0 + adds r0, r5, #0 + bl sub_0801D630 + movs r0, #1 + strb r0, [r5] + ldr r2, _0801DBE4 @ =gUnk_030010A0 + ldrh r0, [r2, #0x1c] + lsrs r0, r0, #4 + movs r1, #0x7f + ands r0, r1 + strb r0, [r5, #1] + ldrh r0, [r2, #0x1e] + lsrs r0, r0, #4 + ands r0, r1 + strb r0, [r5, #2] + adds r5, #3 + ldr r1, _0801DBE8 @ =gUnk_080C9C50 + ldr r0, _0801DBEC @ =gUnk_02033A90 + ldrb r0, [r0, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + lsls r4, r4, #2 + adds r4, r4, r0 + ldr r6, [r4] + b _0801DD3A + .align 2, 0 +_0801DBE4: .4byte gUnk_030010A0 +_0801DBE8: .4byte gUnk_080C9C50 +_0801DBEC: .4byte gUnk_02033A90 +_0801DBF0: + ldrb r0, [r6] + ldrb r1, [r6, #1] + movs r2, #3 + bl sub_0804B0FC + adds r4, r0, #0 + cmp r4, #0 + bne _0801DC04 + adds r6, #8 + b _0801DD3A +_0801DC04: + adds r0, r6, #0 + bl sub_0801DF10 + mov r8, r0 + bl sub_0805279C + movs r1, #8 + adds r1, r1, r6 + mov sb, r1 + cmp r0, #0 + beq _0801DCAE + ldrb r0, [r4] + cmp r0, #0 + beq _0801DCAE + movs r3, #0xfc + lsls r3, r3, #2 + ldr r7, _0801DC84 @ =0x000007FF +_0801DC26: + ldrb r0, [r4] + cmp r0, #3 + bgt _0801DCA6 + cmp r0, #2 + blt _0801DCA6 + ldrb r1, [r4, #1] + mov r0, r8 + str r3, [sp] + bl sub_0807CB10 + ldr r3, [sp] + cmp r0, #0 + bne _0801DCA6 + ldr r0, _0801DC88 @ =gUnk_0811E214 + ldrb r2, [r6] + lsls r2, r2, #2 + adds r2, r2, r0 + ldrb r1, [r6, #1] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #1 + ldr r1, [r2] + adds r2, r1, r0 + movs r0, #2 + strb r0, [r5] + ldrb r0, [r4] + cmp r0, #2 + bne _0801DC8C + ldrh r0, [r4, #4] + lsls r0, r0, #4 + ands r0, r3 + movs r1, #8 + orrs r0, r1 + ldrh r1, [r2] + ands r1, r7 + adds r0, r0, r1 + asrs r0, r0, #4 + strb r0, [r5, #1] + ldrh r0, [r4, #4] + lsrs r0, r0, #2 + ands r0, r3 + movs r1, #8 + orrs r0, r1 + ldrh r1, [r2, #2] + ands r1, r7 + b _0801DC9E + .align 2, 0 +_0801DC84: .4byte 0x000007FF +_0801DC88: .4byte gUnk_0811E214 +_0801DC8C: + ldrh r0, [r2] + ands r0, r7 + ldrh r1, [r4, #4] + adds r0, r0, r1 + asrs r0, r0, #4 + strb r0, [r5, #1] + ldrh r0, [r2, #2] + ands r0, r7 + ldrh r1, [r4, #6] +_0801DC9E: + adds r0, r0, r1 + asrs r0, r0, #4 + strb r0, [r5, #2] + adds r5, #3 +_0801DCA6: + adds r4, #8 + ldrb r0, [r4] + cmp r0, #0 + bne _0801DC26 +_0801DCAE: + bl sub_0805279C + cmp r0, #0 + beq _0801DD16 + ldrb r1, [r6, #2] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0801DD16 + ldr r0, _0801DD4C @ =gUnk_02033A90 + ldrb r0, [r0, #3] + adds r0, #1 + bl sub_0807CC30 + cmp r0, #0 + bne _0801DD16 + ldr r0, _0801DD50 @ =gUnk_0811E214 + ldrb r2, [r6] + lsls r2, r2, #2 + adds r2, r2, r0 + ldrb r1, [r6, #1] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #1 + ldr r1, [r2] + adds r2, r1, r0 + movs r0, #4 + strb r0, [r5] + ldrh r0, [r2, #4] + lsrs r0, r0, #1 + ldrh r1, [r2] + adds r0, r0, r1 + asrs r1, r0, #4 + adds r0, r1, #0 + cmp r1, #0 + bge _0801DCF8 + adds r0, #0x7f +_0801DCF8: + asrs r0, r0, #7 + lsls r0, r0, #7 + subs r0, r1, r0 + strb r0, [r5, #1] + ldrh r0, [r2, #6] + lsrs r0, r0, #1 + ldrh r2, [r2, #2] + adds r0, r0, r2 + asrs r1, r0, #4 + adds r0, r1, #0 + asrs r0, r0, #7 + lsls r0, r0, #7 + subs r0, r1, r0 + strb r0, [r5, #2] + adds r5, #3 +_0801DD16: + ldr r2, _0801DD54 @ =gUnk_030010A0 + ldrh r0, [r6] + ldrh r1, [r2, #0x16] + cmp r0, r1 + bne _0801DD38 + movs r0, #3 + strb r0, [r5] + ldrh r0, [r2, #0x18] + lsrs r0, r0, #4 + movs r1, #0x7f + ands r0, r1 + strb r0, [r5, #1] + ldrh r0, [r2, #0x1a] + lsrs r0, r0, #4 + ands r0, r1 + strb r0, [r5, #2] + adds r5, #3 +_0801DD38: + mov r6, sb +_0801DD3A: + ldrb r0, [r6] + cmp r0, #0 + beq _0801DD42 + b _0801DBF0 +_0801DD42: + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801DD4C: .4byte gUnk_02033A90 +_0801DD50: .4byte gUnk_0811E214 +_0801DD54: .4byte gUnk_030010A0 + + thumb_func_start sub_0801DD58 +sub_0801DD58: @ 0x0801DD58 + ldr r2, _0801DD7C @ =gUnk_0811E214 + lsls r0, r0, #2 + adds r0, r0, r2 + lsls r2, r1, #2 + adds r2, r2, r1 + lsls r2, r2, #1 + ldr r3, [r0] + adds r3, r3, r2 + ldr r0, _0801DD80 @ =gUnk_02033A90 + ldr r1, _0801DD84 @ =0x0000085C + adds r0, r0, r1 + ldr r2, [r0] + ldrh r1, [r3] + strh r1, [r2, #4] + ldr r1, [r0] + ldrh r0, [r3, #2] + strh r0, [r1, #6] + bx lr + .align 2, 0 +_0801DD7C: .4byte gUnk_0811E214 +_0801DD80: .4byte gUnk_02033A90 +_0801DD84: .4byte 0x0000085C + + thumb_func_start sub_0801DD88 +sub_0801DD88: @ 0x0801DD88 + push {lr} + ldr r0, _0801DD98 @ =gUnk_0201AEE0 + ldr r1, _0801DD9C @ =0x06006000 + movs r2, #0x80 + lsls r2, r2, #6 + bl sub_08000E96 + pop {pc} + .align 2, 0 +_0801DD98: .4byte gUnk_0201AEE0 +_0801DD9C: .4byte 0x06006000 + + thumb_func_start sub_0801DDA0 +sub_0801DDA0: @ 0x0801DDA0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + adds r4, r0, #0 + bl sub_08052690 + cmp r0, #0 + bne _0801DDB8 + b _0801DEEA +_0801DDB8: + ldr r1, _0801DDD8 @ =gUnk_080C9C50 + ldr r0, _0801DDDC @ =gUnk_02033A90 + ldrb r0, [r0, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + lsls r0, r4, #2 + adds r0, r0, r1 + ldr r4, [r0] + ldr r0, _0801DDE0 @ =gUnk_02019EE0 + movs r1, #0x80 + lsls r1, r1, #8 + bl sub_0801D630 + b _0801DEE2 + .align 2, 0 +_0801DDD8: .4byte gUnk_080C9C50 +_0801DDDC: .4byte gUnk_02033A90 +_0801DDE0: .4byte gUnk_02019EE0 +_0801DDE4: + ldrb r0, [r4] + ldrb r1, [r4, #1] + movs r2, #3 + bl sub_0804B0FC + adds r6, r0, #0 + adds r0, r4, #0 + bl sub_0801DF10 + adds r5, r0, #0 + movs r0, #0 + str r0, [sp, #0xc] + ldrh r2, [r4] + ldr r0, _0801DE14 @ =gUnk_02032EC0 + ldrh r3, [r0, #0x20] + ldr r1, _0801DE18 @ =0x0000FFFF + ands r1, r2 + ldr r0, _0801DE18 @ =0x0000FFFF + ands r0, r3 + cmp r1, r0 + bne _0801DE1C + movs r3, #8 + b _0801DE36 + .align 2, 0 +_0801DE14: .4byte gUnk_02032EC0 +_0801DE18: .4byte 0x0000FFFF +_0801DE1C: + bl sub_080527CC + cmp r0, #0 + beq _0801DE28 + movs r0, #2 + str r0, [sp, #0xc] +_0801DE28: + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_0801DF90 + cmp r0, #0 + beq _0801DE38 + movs r3, #3 +_0801DE36: + str r3, [sp, #0xc] +_0801DE38: + ldrb r1, [r4, #2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0801DE46 + movs r0, #0 + str r0, [sp, #0xc] +_0801DE46: + adds r3, r4, #0 + adds r3, #8 + str r3, [sp, #0x10] + ldr r0, [sp, #0xc] + cmp r0, #0 + beq _0801DEE0 + ldr r2, _0801DEF8 @ =0x040000D4 + ldr r0, [r4, #4] + ldr r1, _0801DEFC @ =gUnk_08324AE4 + adds r0, r0, r1 + str r0, [r2] + ldr r0, _0801DF00 @ =gUnk_02019EE0 + str r0, [r2, #4] + ldr r0, _0801DF04 @ =0x84000100 + str r0, [r2, #8] + ldr r0, [r2, #8] + ldr r0, _0801DF08 @ =gUnk_0811E214 + ldrb r2, [r4] + lsls r2, r2, #2 + adds r2, r2, r0 + ldrb r1, [r4, #1] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #1 + ldr r2, [r2] + adds r2, r2, r0 + ldrh r0, [r2] + lsrs r0, r0, #4 + str r0, [sp] + ldrh r0, [r2, #2] + ldr r1, _0801DF0C @ =0x000007FF + ands r0, r1 + lsrs r0, r0, #4 + str r0, [sp, #4] + ldrh r0, [r2, #4] + lsrs r7, r0, #4 + ldrh r0, [r2, #6] + lsrs r0, r0, #4 + mov sl, r0 + adds r0, r7, #3 + lsrs r0, r0, #2 + str r0, [sp, #8] + movs r6, #0 + cmp r6, sl + bhs _0801DEE0 +_0801DEA0: + ldr r3, [sp, #8] + adds r1, r6, #0 + muls r1, r3, r1 + ldr r0, _0801DF00 @ =gUnk_02019EE0 + adds r1, r1, r0 + mov r8, r1 + movs r5, #0 + adds r0, r6, #1 + mov sb, r0 + cmp r5, r7 + bhs _0801DEDA +_0801DEB6: + ldr r3, [sp] + adds r4, r3, r5 + adds r0, r5, #0 + mov r1, r8 + bl sub_0801DF60 + ldr r1, [sp, #0xc] + bl sub_0801DF78 + adds r2, r0, #0 + adds r0, r4, #0 + ldr r3, [sp, #4] + adds r1, r3, r6 + bl sub_0801DF28 + adds r5, #1 + cmp r5, r7 + blo _0801DEB6 +_0801DEDA: + mov r6, sb + cmp r6, sl + blo _0801DEA0 +_0801DEE0: + ldr r4, [sp, #0x10] +_0801DEE2: + ldrb r0, [r4] + cmp r0, #0 + beq _0801DEEA + b _0801DDE4 +_0801DEEA: + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801DEF8: .4byte 0x040000D4 +_0801DEFC: .4byte gUnk_08324AE4 +_0801DF00: .4byte gUnk_02019EE0 +_0801DF04: .4byte 0x84000100 +_0801DF08: .4byte gUnk_0811E214 +_0801DF0C: .4byte 0x000007FF + + thumb_func_start sub_0801DF10 +sub_0801DF10: @ 0x0801DF10 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #3] + cmp r0, #1 + bne _0801DF20 + movs r0, #0xc0 + lsls r0, r0, #2 + b _0801DF26 +_0801DF20: + ldrb r0, [r1] + bl sub_08052D58 +_0801DF26: + pop {pc} + + thumb_func_start sub_0801DF28 +sub_0801DF28: @ 0x0801DF28 + push {r4, lr} + lsrs r4, r1, #3 + lsls r4, r4, #4 + lsrs r3, r0, #3 + adds r4, r4, r3 + lsls r4, r4, #5 + ldr r3, _0801DF58 @ =gUnk_0201AEE0 + adds r4, r4, r3 + movs r3, #7 + ands r1, r3 + lsls r1, r1, #2 + adds r4, r4, r1 + ands r0, r3 + lsls r0, r0, #2 + lsls r2, r0 + ldr r1, _0801DF5C @ =gUnk_080C9460 + adds r0, r0, r1 + ldr r1, [r4] + ldr r0, [r0] + ands r1, r0 + orrs r1, r2 + str r1, [r4] + pop {r4, pc} + .align 2, 0 +_0801DF58: .4byte gUnk_0201AEE0 +_0801DF5C: .4byte gUnk_080C9460 + + thumb_func_start sub_0801DF60 +sub_0801DF60: @ 0x0801DF60 + adds r3, r0, #0 + lsrs r0, r3, #2 + adds r0, r0, r1 + ldrb r0, [r0] + movs r2, #3 + adds r1, r2, #0 + bics r1, r3 + lsls r1, r1, #1 + asrs r0, r1 + ands r0, r2 + bx lr + .align 2, 0 + + thumb_func_start sub_0801DF78 +sub_0801DF78: @ 0x0801DF78 + push {lr} + cmp r0, #2 + beq _0801DF88 + cmp r0, #2 + blo _0801DF8E + cmp r0, #3 + beq _0801DF8C + b _0801DF8E +_0801DF88: + adds r0, r1, #0 + b _0801DF8E +_0801DF8C: + movs r0, #7 +_0801DF8E: + pop {pc} + + thumb_func_start sub_0801DF90 +sub_0801DF90: @ 0x0801DF90 + push {lr} + adds r2, r1, #0 + cmp r0, #0 + bne _0801DFAA + b _0801DFB0 +_0801DF9A: + ldrb r1, [r0, #1] + adds r0, r2, #0 + bl sub_0807CB10 + b _0801DFB2 +_0801DFA4: + cmp r1, #1 + beq _0801DF9A + adds r0, #8 +_0801DFAA: + ldrb r1, [r0] + cmp r1, #0 + bne _0801DFA4 +_0801DFB0: + movs r0, #0 +_0801DFB2: + pop {pc} + + thumb_func_start sub_0801DFB4 +sub_0801DFB4: @ 0x0801DFB4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r8, r0 + adds r4, r1, #0 + adds r5, r2, #0 + adds r6, r3, #0 + ldr r7, _0801E004 @ =gUnk_02022740 + adds r0, r7, #0 + movs r1, #0x10 + bl sub_0801D630 + strh r4, [r7, #6] + strh r5, [r7, #8] + strh r6, [r7, #0xa] + mov r0, r8 + str r0, [r7, #0xc] + ldr r0, _0801E008 @ =gUnk_03003DF0 + ldrb r0, [r0, #2] + strb r0, [r7, #3] + mov r1, r8 + cmp r1, #0 + beq _0801DFF8 + ldrb r1, [r1, #0x11] + lsls r0, r1, #0x1c + lsrs r0, r0, #0x1c + strb r0, [r7, #4] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + mov r1, r8 + strb r0, [r1, #0x11] +_0801DFF8: + movs r0, #0 + strb r0, [r7] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801E004: .4byte gUnk_02022740 +_0801E008: .4byte gUnk_03003DF0 + + thumb_func_start sub_0801E00C +sub_0801E00C: @ 0x0801E00C + push {r4, lr} + ldr r1, _0801E024 @ =gUnk_080C9CAC + ldr r4, _0801E028 @ =gUnk_02022740 + ldrb r0, [r4, #1] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + ldrb r0, [r4] + pop {r4, pc} + .align 2, 0 +_0801E024: .4byte gUnk_080C9CAC +_0801E028: .4byte gUnk_02022740 + + thumb_func_start sub_0801E02C +sub_0801E02C: @ 0x0801E02C + push {r4, lr} + ldr r4, _0801E040 @ =gUnk_02022740 + ldrh r0, [r4, #6] + bl sub_0801E0E0 + movs r0, #3 + strb r0, [r4] + movs r0, #1 + strb r0, [r4, #1] + pop {r4, pc} + .align 2, 0 +_0801E040: .4byte gUnk_02022740 + + thumb_func_start sub_0801E044 +sub_0801E044: @ 0x0801E044 + push {lr} + ldr r0, _0801E06C @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0801E06A + movs r0, #4 + movs r1, #0 + bl sub_080A7138 + ldr r0, _0801E070 @ =gUnk_02022740 + movs r1, #4 + strb r1, [r0] + movs r1, #2 + strb r1, [r0, #1] + movs r0, #0x6b + bl sub_080A3268 +_0801E06A: + pop {pc} + .align 2, 0 +_0801E06C: .4byte gUnk_02000050 +_0801E070: .4byte gUnk_02022740 + + thumb_func_start sub_0801E074 +sub_0801E074: @ 0x0801E074 + push {lr} + ldr r0, _0801E084 @ =gUnk_02022740 + ldrb r1, [r0] + cmp r1, #5 + beq _0801E088 + cmp r1, #6 + beq _0801E08C + b _0801E098 + .align 2, 0 +_0801E084: .4byte gUnk_02022740 +_0801E088: + ldrh r0, [r0, #8] + b _0801E08E +_0801E08C: + ldrh r0, [r0, #0xa] +_0801E08E: + bl sub_0801E0E0 + ldr r1, _0801E09C @ =gUnk_02022740 + movs r0, #3 + strb r0, [r1, #1] +_0801E098: + pop {pc} + .align 2, 0 +_0801E09C: .4byte gUnk_02022740 + + thumb_func_start sub_0801E0A0 +sub_0801E0A0: @ 0x0801E0A0 + push {r4, lr} + ldr r0, _0801E0D8 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0801E0D4 + ldr r4, _0801E0DC @ =gUnk_02022740 + ldr r3, [r4, #0xc] + cmp r3, #0 + beq _0801E0C8 + ldrb r0, [r4, #4] + movs r1, #0xf + ands r1, r0 + ldrb r2, [r3, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x11] +_0801E0C8: + ldrb r0, [r4] + movs r1, #1 + cmp r0, #6 + bne _0801E0D2 + movs r1, #2 +_0801E0D2: + strb r1, [r4] +_0801E0D4: + pop {r4, pc} + .align 2, 0 +_0801E0D8: .4byte gUnk_02000050 +_0801E0DC: .4byte gUnk_02022740 + + thumb_func_start sub_0801E0E0 +sub_0801E0E0: @ 0x0801E0E0 + push {lr} + adds r2, r0, #0 + cmp r2, #0 + beq _0801E102 + ldr r0, _0801E0F8 @ =gUnk_02022740 + ldr r1, [r0, #0xc] + cmp r1, #0 + beq _0801E0FC + adds r0, r2, #0 + bl sub_08056398 + b _0801E102 + .align 2, 0 +_0801E0F8: .4byte gUnk_02022740 +_0801E0FC: + adds r0, r2, #0 + bl sub_08056378 +_0801E102: + pop {pc} + + thumb_func_start sub_0801E104 +sub_0801E104: @ 0x0801E104 + ldr r1, _0801E118 @ =gUnk_03000F50 + ldrh r2, [r1] + ldr r0, _0801E11C @ =0x00009FFF + ands r0, r2 + movs r2, #0 + strh r0, [r1] + adds r1, #0x6c + strb r2, [r1] + bx lr + .align 2, 0 +_0801E118: .4byte gUnk_03000F50 +_0801E11C: .4byte 0x00009FFF + + thumb_func_start sub_0801E120 +sub_0801E120: @ 0x0801E120 + ldr r3, _0801E14C @ =gUnk_03000F50 + ldrh r1, [r3] + movs r2, #0x80 + lsls r2, r2, #6 + adds r0, r2, #0 + movs r2, #0 + orrs r0, r1 + strh r0, [r3] + adds r1, r3, #0 + adds r1, #0x60 + ldr r0, _0801E150 @ =0x00003F37 + strh r0, [r1] + adds r1, #2 + movs r0, #0x3f + strh r0, [r1] + adds r0, r3, #0 + adds r0, #0x58 + strh r2, [r0] + subs r1, #6 + movs r0, #0xa0 + strh r0, [r1] + bx lr + .align 2, 0 +_0801E14C: .4byte gUnk_03000F50 +_0801E150: .4byte 0x00003F37 + + thumb_func_start sub_0801E154 +sub_0801E154: @ 0x0801E154 + push {lr} + movs r1, #0 + bl sub_0801E24C + pop {pc} + .align 2, 0 + + thumb_func_start sub_0801E160 +sub_0801E160: @ 0x0801E160 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + adds r6, r0, #0 + mov r8, r1 + mov sb, r2 + ldr r5, _0801E1A8 @ =gUnk_03003DE4 + ldrb r1, [r5] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + ldr r4, _0801E1AC @ =gUnk_02017AA0 + adds r0, r0, r4 + movs r1, #0xa0 + lsls r1, r1, #4 + bl sub_0801D630 + adds r0, r6, #0 + mov r1, r8 + mov r2, sb + bl sub_0801E290 + ldrb r1, [r5] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + adds r0, r0, r4 + ldr r1, _0801E1B0 @ =0x04000040 + ldr r2, _0801E1B4 @ =0xA2600001 + bl sub_0805622C + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, pc} + .align 2, 0 +_0801E1A8: .4byte gUnk_03003DE4 +_0801E1AC: .4byte gUnk_02017AA0 +_0801E1B0: .4byte 0x04000040 +_0801E1B4: .4byte 0xA2600001 + + thumb_func_start sub_0801E1B8 +sub_0801E1B8: @ 0x0801E1B8 + push {r4, lr} + ldr r2, _0801E1E8 @ =gUnk_03000F50 + mov ip, r2 + ldrh r3, [r2] + movs r4, #0x80 + lsls r4, r4, #6 + adds r2, r4, #0 + movs r4, #0 + orrs r2, r3 + mov r3, ip + strh r2, [r3] + mov r2, ip + adds r2, #0x60 + strh r0, [r2] + mov r0, ip + adds r0, #0x62 + strh r1, [r0] + subs r0, #0xa + strh r4, [r0] + mov r1, ip + adds r1, #0x5c + movs r0, #0xa0 + strh r0, [r1] + pop {r4, pc} + .align 2, 0 +_0801E1E8: .4byte gUnk_03000F50 + + thumb_func_start sub_0801E1EC +sub_0801E1EC: @ 0x0801E1EC + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + mov r8, r0 + mov sb, r1 + adds r4, r2, #0 + ldr r6, _0801E23C @ =gUnk_03003DE4 + ldrb r1, [r6] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + ldr r5, _0801E240 @ =gUnk_02017AA0 + adds r0, r0, r5 + movs r1, #0xa0 + lsls r1, r1, #4 + bl sub_0801D630 + adds r0, r4, #0 + movs r1, #0 + bl sub_0801E24C + mov r0, r8 + mov r1, sb + adds r2, r4, #0 + bl sub_0801E290 + ldrb r1, [r6] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + adds r0, r0, r5 + ldr r1, _0801E244 @ =0x04000040 + ldr r2, _0801E248 @ =0xA2600001 + bl sub_0805622C + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, pc} + .align 2, 0 +_0801E23C: .4byte gUnk_03003DE4 +_0801E240: .4byte gUnk_02017AA0 +_0801E244: .4byte 0x04000040 +_0801E248: .4byte 0xA2600001 + + thumb_func_start sub_0801E24C +sub_0801E24C: @ 0x0801E24C + push {r4, r5, lr} + lsls r1, r1, #1 + ldr r2, _0801E278 @ =gUnk_02018EE0 + adds r5, r1, r2 + movs r3, #0 + adds r2, r0, #0 + lsls r4, r2, #1 + movs r0, #3 + subs r1, r0, r4 + cmp r3, r2 + bgt _0801E28E + adds r4, r4, r5 +_0801E264: + lsls r0, r3, #1 + adds r0, r0, r5 + strh r2, [r0] + strh r3, [r4] + cmp r1, #0 + bge _0801E27C + adds r1, #6 + lsls r0, r3, #2 + adds r1, r1, r0 + b _0801E288 + .align 2, 0 +_0801E278: .4byte gUnk_02018EE0 +_0801E27C: + adds r1, #0xa + subs r0, r3, r2 + lsls r0, r0, #2 + adds r1, r1, r0 + subs r4, #2 + subs r2, #1 +_0801E288: + adds r3, #1 + cmp r3, r2 + ble _0801E264 +_0801E28E: + pop {r4, r5, pc} + + thumb_func_start sub_0801E290 +sub_0801E290: @ 0x0801E290 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov ip, r0 + adds r6, r2, #0 + ldr r0, _0801E2BC @ =gUnk_03003DE4 + ldrb r0, [r0] + lsls r2, r0, #2 + adds r2, r2, r0 + lsls r2, r2, #9 + lsls r0, r1, #1 + ldr r3, _0801E2C0 @ =gUnk_02017AA0 + adds r0, r0, r3 + adds r2, r2, r0 + adds r4, r2, #0 + adds r5, r1, #0 + mov sb, r5 + ldr r0, _0801E2C4 @ =gUnk_02018EE0 + mov r8, r0 + b _0801E30A + .align 2, 0 +_0801E2BC: .4byte gUnk_03003DE4 +_0801E2C0: .4byte gUnk_02017AA0 +_0801E2C4: .4byte gUnk_02018EE0 +_0801E2C8: + mov r1, r8 + movs r3, #0 + ldrsh r0, [r1, r3] + movs r7, #2 + add r8, r7 + mov r3, ip + subs r1, r3, r0 + adds r3, r3, r0 + cmp r1, #0 + bge _0801E2DE + movs r1, #0 +_0801E2DE: + cmp r3, #0xef + ble _0801E2E4 + movs r3, #0xf0 +_0801E2E4: + mov r7, sb + lsls r0, r7, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x9f + bhi _0801E2F2 + strb r3, [r4] + strb r1, [r4, #1] +_0801E2F2: + lsls r0, r5, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x9f + bhi _0801E2FE + strb r3, [r2] + strb r1, [r2, #1] +_0801E2FE: + subs r4, #2 + adds r2, #2 + movs r0, #1 + rsbs r0, r0, #0 + add sb, r0 + adds r5, #1 +_0801E30A: + adds r0, r6, #0 + subs r6, #1 + cmp r0, #0 + bne _0801E2C8 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0801E31C +sub_0801E31C: @ 0x0801E31C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x20 + str r0, [sp] + str r1, [sp, #4] + mov sl, r2 + mov sb, r3 + ldr r0, _0801E3AC @ =gUnk_03003DE4 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + ldr r1, _0801E3B0 @ =gUnk_02017AA0 + adds r0, r0, r1 + movs r1, #0xa0 + lsls r1, r1, #4 + bl sub_0801D630 + cmp sl, sb + bge _0801E3DC + movs r6, #0 + mov r8, sl + mov r7, r8 + mov r0, r8 + lsls r1, r0, #1 + movs r0, #3 + subs r5, r0, r1 + cmp r6, r8 + ble _0801E35E + b _0801E45E +_0801E35E: + mov r1, r8 + lsls r0, r1, #2 + ldr r4, _0801E3B4 @ =gUnk_02018EE0 + adds r0, r0, r4 + str r0, [sp, #0x10] + mov r1, sb + mov r0, r8 + muls r0, r1, r0 + str r0, [sp, #0x14] + movs r3, #0 +_0801E372: + adds r0, r3, #0 + mov r1, sl + str r3, [sp, #0x18] + bl Div + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + str r4, [sp, #0x1c] + ldr r0, [sp, #0x14] + mov r1, sl + bl Div + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r2, r6, #2 + ldr r4, _0801E3B4 @ =gUnk_02018EE0 + adds r1, r2, r4 + str r0, [r1] + ldr r0, [sp, #0x1c] + ldr r1, [sp, #0x10] + str r0, [r1] + ldr r3, [sp, #0x18] + cmp r5, #0 + bge _0801E3B8 + adds r0, r5, #6 + adds r5, r0, r2 + b _0801E3D2 + .align 2, 0 +_0801E3AC: .4byte gUnk_03003DE4 +_0801E3B0: .4byte gUnk_02017AA0 +_0801E3B4: .4byte gUnk_02018EE0 +_0801E3B8: + adds r1, r5, #0 + adds r1, #0xa + subs r0, r6, r7 + lsls r0, r0, #2 + adds r5, r1, r0 + ldr r4, [sp, #0x10] + subs r4, #4 + str r4, [sp, #0x10] + ldr r0, [sp, #0x14] + mov r1, sb + subs r0, r0, r1 + str r0, [sp, #0x14] + subs r7, #1 +_0801E3D2: + add r3, sb + adds r6, #1 + cmp r6, r7 + ble _0801E372 + b _0801E45E +_0801E3DC: + movs r6, #0 + mov r8, sb + mov r7, r8 + mov r4, r8 + lsls r1, r4, #1 + movs r0, #3 + subs r5, r0, r1 + cmp r6, r8 + bgt _0801E45E + lsls r0, r4, #2 + ldr r1, _0801E438 @ =gUnk_02018EE0 + adds r0, r0, r1 + str r0, [sp, #8] + mov r0, sl + mov r4, r8 + muls r4, r0, r4 + str r4, [sp, #0xc] + movs r3, #0 +_0801E400: + adds r0, r3, #0 + mov r1, sb + str r3, [sp, #0x18] + bl Div + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + str r4, [sp, #0x1c] + ldr r0, [sp, #0xc] + mov r1, sb + bl Div + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r2, r6, #2 + ldr r4, _0801E438 @ =gUnk_02018EE0 + adds r1, r2, r4 + str r0, [r1] + ldr r0, [sp, #0x1c] + ldr r1, [sp, #8] + str r0, [r1] + ldr r3, [sp, #0x18] + cmp r5, #0 + bge _0801E43C + adds r0, r5, #6 + adds r5, r0, r2 + b _0801E456 + .align 2, 0 +_0801E438: .4byte gUnk_02018EE0 +_0801E43C: + adds r1, r5, #0 + adds r1, #0xa + subs r0, r6, r7 + lsls r0, r0, #2 + adds r5, r1, r0 + ldr r4, [sp, #8] + subs r4, #4 + str r4, [sp, #8] + ldr r0, [sp, #0xc] + mov r1, sl + subs r0, r0, r1 + str r0, [sp, #0xc] + subs r7, #1 +_0801E456: + add r3, sl + adds r6, #1 + cmp r6, r7 + ble _0801E400 +_0801E45E: + ldr r0, [sp] + ldr r1, [sp, #4] + mov r2, r8 + bl sub_0801E290 + ldr r0, _0801E48C @ =gUnk_03003DE4 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + ldr r1, _0801E490 @ =gUnk_02017AA0 + adds r0, r0, r1 + ldr r1, _0801E494 @ =0x04000040 + ldr r2, _0801E498 @ =0xA2600001 + bl sub_0805622C + add sp, #0x20 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801E48C: .4byte gUnk_03003DE4 +_0801E490: .4byte gUnk_02017AA0 +_0801E494: .4byte 0x04000040 +_0801E498: .4byte 0xA2600001 + + thumb_func_start sub_0801E49C +sub_0801E49C: @ 0x0801E49C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + mov r8, r0 + str r1, [sp, #4] + mov sb, r2 + adds r5, r3, #0 + ldr r0, _0801E5E4 @ =0x0000FFFF + movs r2, #0xf0 + lsls r2, r2, #3 + ldr r1, _0801E5E8 @ =gUnk_02018EE0 + bl sub_0801D5EC + adds r3, r5, #0 + subs r3, #0x40 + movs r2, #0xff + ands r3, r2 + ldr r1, _0801E5EC @ =gUnk_080C9160 + adds r0, r3, #0 + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r1 + movs r4, #0 + ldrsh r0, [r0, r4] + mov r4, sb + muls r4, r0, r4 + adds r0, r4, #0 + asrs r0, r0, #8 + mov r4, r8 + adds r7, r4, r0 + lsls r0, r3, #1 + adds r0, r0, r1 + movs r3, #0 + ldrsh r0, [r0, r3] + mov r4, sb + muls r4, r0, r4 + adds r0, r4, #0 + asrs r0, r0, #8 + ldr r3, [sp, #4] + adds r3, r3, r0 + mov sl, r3 + adds r3, r5, #0 + adds r3, #0x68 + ands r3, r2 + adds r0, r3, #0 + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r1 + movs r4, #0 + ldrsh r0, [r0, r4] + mov r4, sb + muls r4, r0, r4 + adds r0, r4, #0 + asrs r0, r0, #8 + mov r4, r8 + adds r6, r4, r0 + lsls r0, r3, #1 + adds r0, r0, r1 + movs r3, #0 + ldrsh r0, [r0, r3] + mov r4, sb + muls r4, r0, r4 + adds r0, r4, #0 + asrs r0, r0, #8 + ldr r3, [sp, #4] + adds r4, r3, r0 + adds r3, r5, #0 + subs r3, #0xe8 + ands r3, r2 + adds r0, r3, #0 + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r1 + movs r2, #0 + ldrsh r0, [r0, r2] + mov r2, sb + muls r2, r0, r2 + adds r0, r2, #0 + asrs r0, r0, #8 + mov r2, r8 + adds r5, r2, r0 + lsls r0, r3, #1 + adds r0, r0, r1 + movs r3, #0 + ldrsh r0, [r0, r3] + mov r1, sb + muls r1, r0, r1 + adds r0, r1, #0 + asrs r0, r0, #8 + ldr r2, [sp, #4] + adds r2, r2, r0 + mov r8, r2 + movs r0, #0 + str r0, [sp] + adds r0, r7, #0 + mov r1, sl + adds r2, r6, #0 + adds r3, r4, #0 + bl sub_0801E64C + movs r0, #1 + str r0, [sp] + adds r0, r7, #0 + mov r1, sl + adds r2, r5, #0 + mov r3, r8 + bl sub_0801E64C + movs r0, #2 + str r0, [sp] + adds r0, r6, #0 + adds r1, r4, #0 + adds r2, r5, #0 + mov r3, r8 + bl sub_0801E64C + ldr r5, _0801E5F0 @ =gUnk_03003DE4 + ldrb r1, [r5] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + ldr r6, _0801E5F4 @ =gUnk_02017AA0 + adds r0, r0, r6 + movs r1, #0xa0 + lsls r1, r1, #4 + bl sub_0801D630 + ldr r2, _0801E5E8 @ =gUnk_02018EE0 + ldrb r1, [r5] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + adds r1, r0, r6 + movs r3, #0xa0 + mov sl, r3 +_0801E5B0: + ldr r7, [r2] + ldr r6, [r2, #4] + ldr r5, [r2, #8] + adds r2, #0xc + cmp r7, r6 + ble _0801E5C2 + adds r4, r7, #0 + adds r7, r6, #0 + adds r6, r4, #0 +_0801E5C2: + cmp r7, r5 + ble _0801E5CC + adds r4, r7, #0 + adds r7, r5, #0 + adds r5, r4, #0 +_0801E5CC: + cmp r6, r5 + ble _0801E5D6 + adds r4, r6, #0 + adds r6, r5, #0 + adds r5, r4, #0 +_0801E5D6: + movs r0, #1 + rsbs r0, r0, #0 + cmp r7, r0 + beq _0801E5F8 + strb r5, [r1] + strb r7, [r1, #1] + b _0801E60A + .align 2, 0 +_0801E5E4: .4byte 0x0000FFFF +_0801E5E8: .4byte gUnk_02018EE0 +_0801E5EC: .4byte gUnk_080C9160 +_0801E5F0: .4byte gUnk_03003DE4 +_0801E5F4: .4byte gUnk_02017AA0 +_0801E5F8: + cmp r6, r7 + beq _0801E602 + strb r5, [r1] + strb r6, [r1, #1] + b _0801E60A +_0801E602: + cmp r5, r7 + beq _0801E60A + strb r7, [r1, #1] + strb r7, [r1] +_0801E60A: + movs r4, #1 + rsbs r4, r4, #0 + add sl, r4 + adds r1, #2 + mov r0, sl + cmp r0, #0 + bgt _0801E5B0 + ldr r0, _0801E63C @ =gUnk_03003DE4 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + ldr r1, _0801E640 @ =gUnk_02017AA0 + adds r0, r0, r1 + ldr r1, _0801E644 @ =0x04000040 + ldr r2, _0801E648 @ =0xA2600001 + bl sub_0805622C + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801E63C: .4byte gUnk_03003DE4 +_0801E640: .4byte gUnk_02017AA0 +_0801E644: .4byte 0x04000040 +_0801E648: .4byte 0xA2600001 + + thumb_func_start sub_0801E64C +sub_0801E64C: @ 0x0801E64C + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r6, r3, #0 + ldr r7, _0801E6C4 @ =gUnk_02018EE0 + cmp r4, #0 + bge _0801E65E + cmp r6, #0 + blt _0801E6C2 +_0801E65E: + cmp r4, #0x9f + ble _0801E666 + cmp r6, #0x9f + bgt _0801E6C2 +_0801E666: + cmp r4, r6 + ble _0801E676 + adds r1, r4, #0 + adds r4, r6, #0 + adds r6, r1, #0 + adds r1, r5, #0 + adds r5, r2, #0 + adds r2, r1, #0 +_0801E676: + cmp r4, r6 + beq _0801E6C2 + subs r0, r2, r5 + lsls r0, r0, #0x10 + subs r1, r6, r4 + bl Div + adds r3, r0, #0 + cmp r4, #0 + bge _0801E694 + rsbs r0, r4, #0 + muls r0, r3, r0 + asrs r0, r0, #0x10 + adds r5, r5, r0 + movs r4, #0 +_0801E694: + cmp r6, #0x9f + ble _0801E69A + movs r6, #0x9f +_0801E69A: + lsls r2, r5, #0x10 + lsls r0, r4, #1 + adds r0, r0, r4 + ldr r1, [sp, #0x14] + adds r0, r0, r1 + lsls r0, r0, #2 + adds r7, r0, r7 +_0801E6A8: + cmp r5, #0 + bge _0801E6AE + movs r5, #0 +_0801E6AE: + cmp r5, #0xf0 + ble _0801E6B4 + movs r5, #0xf0 +_0801E6B4: + str r5, [r7] + adds r2, r2, r3 + asrs r5, r2, #0x10 + adds r4, #1 + adds r7, #0xc + cmp r4, r6 + ble _0801E6A8 +_0801E6C2: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801E6C4: .4byte gUnk_02018EE0 + + thumb_func_start sub_0801E6C8 +sub_0801E6C8: @ 0x0801E6C8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + subs r0, r4, #1 + cmp r0, #0x63 + bhi _0801E722 + movs r1, #0 + ldr r5, _0801E724 @ =gUnk_02022740 + ldr r3, _0801E728 @ =gUnk_02002C01 + movs r2, #0xf1 +_0801E6DA: + adds r0, r1, r3 + ldrb r6, [r0] + cmp r4, r6 + bne _0801E6E4 + strb r2, [r0] +_0801E6E4: + adds r1, #1 + cmp r1, #0x7f + bls _0801E6DA + ldr r0, [r5, #0xc] + bl sub_08002632 + adds r1, r0, #0 + subs r0, r1, #1 + cmp r0, #0x7e + bhi _0801E70A + ldr r0, _0801E72C @ =gUnk_02002A40 + ldr r2, _0801E730 @ =0x000001C1 + adds r0, r0, r2 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0xf1 + bne _0801E70A + movs r0, #0xf2 + strb r0, [r1] +_0801E70A: + movs r1, #0 + ldr r0, _0801E734 @ =gUnk_03003DF0 + movs r2, #0xf1 + adds r0, #0xb +_0801E712: + ldrb r3, [r0] + cmp r4, r3 + bne _0801E71A + strb r2, [r0] +_0801E71A: + adds r0, #0xc + adds r1, #1 + cmp r1, #0x1f + bls _0801E712 +_0801E722: + pop {r4, r5, r6, pc} + .align 2, 0 +_0801E724: .4byte gUnk_02022740 +_0801E728: .4byte gUnk_02002C01 +_0801E72C: .4byte gUnk_02002A40 +_0801E730: .4byte 0x000001C1 +_0801E734: .4byte gUnk_03003DF0 + + thumb_func_start sub_0801E738 +sub_0801E738: @ 0x0801E738 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E82C + adds r0, r4, #0 + subs r0, #0x65 + cmp r0, #0x10 + bhi _0801E790 + adds r0, r4, #0 + bl sub_0801E8B0 + adds r1, r0, #0 + cmp r1, #0 + bge _0801E76E + movs r1, #0 + ldr r0, _0801E794 @ =gUnk_02002A40 + movs r3, #0x8c + lsls r3, r3, #1 + adds r2, r0, r3 + ldrb r0, [r2] + cmp r0, #0 + beq _0801E76E +_0801E764: + adds r1, #1 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + bne _0801E764 +_0801E76E: + cmp r1, #0x11 + bhi _0801E790 + ldr r2, _0801E794 @ =gUnk_02002A40 + movs r3, #0x8c + lsls r3, r3, #1 + adds r0, r2, r3 + adds r0, r1, r0 + strb r4, [r0] + adds r3, #0x13 + adds r0, r2, r3 + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, #1 + cmp r0, #0x63 + ble _0801E78E + movs r0, #0x63 +_0801E78E: + strb r0, [r1] +_0801E790: + pop {r4, pc} + .align 2, 0 +_0801E794: .4byte gUnk_02002A40 + + thumb_func_start sub_0801E798 +sub_0801E798: @ 0x0801E798 + push {r4, lr} + bl sub_0801E8B0 + adds r1, r0, #0 + cmp r1, #0 + blt _0801E7C4 + ldr r2, _0801E7C8 @ =gUnk_02002A40 + ldr r3, _0801E7CC @ =0x0000012B + adds r0, r2, r3 + adds r3, r1, r0 + ldrb r0, [r3] + subs r0, #1 + cmp r0, #0 + bgt _0801E7C2 + movs r4, #0x8c + lsls r4, r4, #1 + adds r0, r2, r4 + adds r0, r1, r0 + movs r1, #0 + strb r1, [r0] + movs r0, #0 +_0801E7C2: + strb r0, [r3] +_0801E7C4: + pop {r4, pc} + .align 2, 0 +_0801E7C8: .4byte gUnk_02002A40 +_0801E7CC: .4byte 0x0000012B + + thumb_func_start sub_0801E7D0 +sub_0801E7D0: @ 0x0801E7D0 + push {lr} + bl sub_0801E8B0 + adds r1, r0, #0 + cmp r1, #0 + blt _0801E7F0 + ldr r0, _0801E7E8 @ =gUnk_02002A40 + ldr r2, _0801E7EC @ =0x0000012B + adds r0, r0, r2 + adds r0, r1, r0 + ldrb r0, [r0] + b _0801E7F2 + .align 2, 0 +_0801E7E8: .4byte gUnk_02002A40 +_0801E7EC: .4byte 0x0000012B +_0801E7F0: + movs r0, #0 +_0801E7F2: + pop {pc} + + thumb_func_start sub_0801E7F4 +sub_0801E7F4: @ 0x0801E7F4 + push {lr} + adds r1, r0, #0 + subs r0, r1, #1 + cmp r0, #0x63 + bhi _0801E80C + ldr r0, _0801E808 @ =gUnk_02002C81 + bl sub_0801D5A8 + b _0801E80E + .align 2, 0 +_0801E808: .4byte gUnk_02002C81 +_0801E80C: + movs r0, #0 +_0801E80E: + pop {pc} + + thumb_func_start sub_0801E810 +sub_0801E810: @ 0x0801E810 + push {lr} + adds r1, r0, #0 + subs r0, r1, #1 + cmp r0, #0x63 + bhi _0801E828 + ldr r0, _0801E824 @ =gUnk_02002C8E + bl sub_0801D5A8 + b _0801E82A + .align 2, 0 +_0801E824: .4byte gUnk_02002C8E +_0801E828: + movs r0, #0 +_0801E82A: + pop {pc} + + thumb_func_start sub_0801E82C +sub_0801E82C: @ 0x0801E82C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r1, _0801E8AC @ =gUnk_02002B54 + movs r5, #0 + adds r2, r1, #4 +_0801E83C: + ldrb r0, [r2, #0x13] + adds r3, r1, #4 + mov sl, r3 + cmp r0, #0 + bne _0801E848 + strb r0, [r2] +_0801E848: + adds r2, #1 + adds r5, #1 + cmp r5, #0x12 + bls _0801E83C + movs r0, #0 + strb r0, [r1, #0x16] + adds r2, r1, #0 + adds r2, #0x29 + strb r0, [r2] + movs r5, #0 + movs r0, #0x17 + adds r0, r0, r1 + mov sb, r0 + movs r3, #0x18 + adds r3, r3, r1 + mov r8, r3 + adds r7, r1, #4 + adds r6, r1, #5 +_0801E86C: + mov r1, sl + adds r0, r1, r5 + ldrb r0, [r0] + subs r0, #0x65 + cmp r0, #0x10 + bls _0801E890 + movs r4, #0x12 + subs r4, r4, r5 + adds r0, r6, #0 + adds r1, r7, #0 + adds r2, r4, #0 + bl sub_0801D66C + mov r0, r8 + mov r1, sb + adds r2, r4, #0 + bl sub_0801D66C +_0801E890: + movs r3, #1 + add sb, r3 + add r8, r3 + adds r7, #1 + adds r6, #1 + adds r5, #1 + cmp r5, #0x11 + bls _0801E86C + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801E8AC: .4byte gUnk_02002B54 + + thumb_func_start sub_0801E8B0 +sub_0801E8B0: @ 0x0801E8B0 + push {lr} + adds r2, r0, #0 + movs r1, #0 + ldr r3, _0801E8C4 @ =gUnk_02002B58 +_0801E8B8: + adds r0, r1, r3 + ldrb r0, [r0] + cmp r2, r0 + bne _0801E8C8 + adds r0, r1, #0 + b _0801E8D2 + .align 2, 0 +_0801E8C4: .4byte gUnk_02002B58 +_0801E8C8: + adds r1, #1 + cmp r1, #0x11 + bls _0801E8B8 + movs r0, #1 + rsbs r0, r0, #0 +_0801E8D2: + pop {pc} + + thumb_func_start sub_0801E8D4 +sub_0801E8D4: @ 0x0801E8D4 + push {r4, r5, lr} + movs r5, #0xa +_0801E8D8: + adds r0, r5, #0 + bl sub_0801E7F4 + cmp r0, #0 + beq _0801E990 + adds r0, r5, #0 + bl sub_0801E810 + cmp r0, #0 + bne _0801E990 + ldr r1, _0801E910 @ =gUnk_080C9CBC + lsls r0, r5, #3 + adds r0, r0, r1 + ldrb r1, [r0, #4] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0801E914 @ =gUnk_080FE320 + adds r2, r0, r1 + ldrh r3, [r2, #0x12] + ldrb r0, [r2, #0x10] + cmp r0, #0xa + bhi _0801E97C + lsls r0, r0, #2 + ldr r1, _0801E918 @ =_0801E91C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801E910: .4byte gUnk_080C9CBC +_0801E914: .4byte gUnk_080FE320 +_0801E918: .4byte _0801E91C +_0801E91C: @ jump table + .4byte _0801E948 @ case 0 + .4byte _0801E94C @ case 1 + .4byte _0801E950 @ case 2 + .4byte _0801E954 @ case 3 + .4byte _0801E958 @ case 4 + .4byte _0801E95C @ case 5 + .4byte _0801E962 @ case 6 + .4byte _0801E968 @ case 7 + .4byte _0801E96E @ case 8 + .4byte _0801E972 @ case 9 + .4byte _0801E978 @ case 10 +_0801E948: + movs r4, #0 + b _0801E97C +_0801E94C: + ldrb r4, [r2, #0x11] + b _0801E97C +_0801E950: + movs r4, #0xf + b _0801E97C +_0801E954: + movs r4, #0x10 + b _0801E97C +_0801E958: + movs r4, #0x11 + b _0801E97C +_0801E95C: + movs r4, #4 + movs r3, #0x83 + b _0801E97C +_0801E962: + movs r4, #4 + movs r3, #0x84 + b _0801E97C +_0801E968: + movs r4, #4 + movs r3, #0x87 + b _0801E97C +_0801E96E: + movs r4, #4 + b _0801E97A +_0801E972: + movs r4, #4 + movs r3, #0x8b + b _0801E97C +_0801E978: + movs r4, #5 +_0801E97A: + movs r3, #0x88 +_0801E97C: + adds r0, r4, #0 + adds r1, r3, #0 + bl sub_0807CB24 + cmp r0, #0 + beq _0801E990 + ldr r0, _0801E998 @ =gUnk_02002C8E + adds r1, r5, #0 + bl sub_0801D5BC +_0801E990: + adds r5, #1 + cmp r5, #0x64 + bls _0801E8D8 + pop {r4, r5, pc} + .align 2, 0 +_0801E998: .4byte gUnk_02002C8E + + thumb_func_start sub_0801E99C +sub_0801E99C: @ 0x0801E99C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + bl sub_08002632 + mov r8, r0 + ldr r1, _0801E9E4 @ =gUnk_08001DCC + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r7, [r0] + movs r0, #0x67 + bl sub_0807CA84 + cmp r0, #0 + beq _0801EA56 + ldr r1, _0801E9E8 @ =gUnk_02002A40 + ldrb r0, [r7] + ldrb r2, [r1, #8] + cmp r0, r2 + bhi _0801EA56 + ldr r2, _0801E9EC @ =0x000001C1 + adds r0, r1, r2 + add r0, r8 + ldrb r5, [r0] + subs r2, #0x80 + adds r0, r1, r2 + add r0, r8 + ldrb r6, [r0] + adds r4, r6, r7 +_0801E9D6: + cmp r5, #0xf1 + beq _0801E9F6 + cmp r5, #0xf1 + bhi _0801E9F0 + cmp r5, #0 + beq _0801E9F6 + b _0801EA10 + .align 2, 0 +_0801E9E4: .4byte gUnk_08001DCC +_0801E9E8: .4byte gUnk_02002A40 +_0801E9EC: .4byte 0x000001C1 +_0801E9F0: + cmp r5, #0xf2 + beq _0801EA0A + b _0801EA10 +_0801E9F6: + ldrb r5, [r4, #5] + cmp r5, #0 + beq _0801EA10 + cmp r5, #0xff + beq _0801EA14 + adds r0, r5, #0 + bl sub_0801E7F4 + cmp r0, #0 + beq _0801EA10 +_0801EA0A: + adds r4, #1 + adds r6, #1 + ldrb r5, [r4, #5] +_0801EA10: + cmp r5, #0xff + bne _0801EA1C +_0801EA14: + adds r0, r7, #0 + bl sub_0801EA74 + adds r5, r0, #0 +_0801EA1C: + cmp r5, #0 + beq _0801EA32 + cmp r5, #0xf2 + beq _0801E9D6 + adds r0, r5, #0 + bl sub_0801E7F4 + cmp r0, #0 + beq _0801EA34 + movs r5, #0xf1 + b _0801E9D6 +_0801EA32: + movs r5, #0xf3 +_0801EA34: + ldr r1, _0801EA5C @ =gUnk_02002A40 + ldr r2, _0801EA60 @ =0x000001C1 + adds r0, r1, r2 + add r0, r8 + strb r5, [r0] + subs r2, #0x80 + adds r0, r1, r2 + add r0, r8 + strb r6, [r0] + bl sub_08000E50 + ldrb r4, [r7, #1] + movs r1, #0x64 + bl __modsi3 + cmp r4, r0 + bhi _0801EA64 +_0801EA56: + movs r0, #0 + b _0801EA6E + .align 2, 0 +_0801EA5C: .4byte gUnk_02002A40 +_0801EA60: .4byte 0x000001C1 +_0801EA64: + subs r0, r5, #1 + cmp r0, #0x63 + bls _0801EA6C + movs r5, #0 +_0801EA6C: + adds r0, r5, #0 +_0801EA6E: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0801EA74 +sub_0801EA74: @ 0x0801EA74 + push {r4, r5, r6, lr} + bl sub_08000E50 + movs r1, #0x12 + bl __modsi3 + adds r5, r0, #0 + movs r6, #0 +_0801EA84: + ldr r0, _0801EA98 @ =gUnk_080CA11C + adds r0, r5, r0 + ldrb r4, [r0] + adds r0, r4, #0 + bl sub_0801E7F4 + cmp r0, #0 + bne _0801EA9C + adds r0, r4, #0 + b _0801EAAE + .align 2, 0 +_0801EA98: .4byte gUnk_080CA11C +_0801EA9C: + adds r0, r5, #1 + movs r1, #0x12 + bl __modsi3 + adds r5, r0, #0 + adds r6, #1 + cmp r6, #0x11 + bls _0801EA84 + movs r0, #0xf2 +_0801EAAE: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0801EAB0 +sub_0801EAB0: @ 0x0801EAB0 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0801EACC @ =gUnk_080CA130 + bl sub_0800129E + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, pc} + .align 2, 0 +_0801EACC: .4byte gUnk_080CA130 + + thumb_func_start sub_0801EAD0 +sub_0801EAD0: @ 0x0801EAD0 + push {lr} + ldr r2, _0801EAE4 @ =gUnk_080CA148 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0801EAE4: .4byte gUnk_080CA148 + + thumb_func_start sub_0801EAE8 +sub_0801EAE8: @ 0x0801EAE8 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0801EAFC + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0801EAFC: + ldr r1, _0801EB08 @ =gUnk_080CA130 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_0801EB08: .4byte gUnk_080CA130 + + thumb_func_start sub_0801EB0C +sub_0801EB0C: @ 0x0801EB0C + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xa] + cmp r0, #0 + bne _0801EB1E + adds r0, r1, #0 + bl sub_0804A7D4 + b _0801EB28 +_0801EB1E: + adds r0, r1, #0 + movs r1, #0xf1 + movs r2, #0 + bl sub_0804A7E0 +_0801EB28: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0801EB2C +sub_0801EB2C: @ 0x0801EB2C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #2 + bhi _0801EB50 + adds r0, r4, #0 + bl sub_0806F520 + cmp r0, #0 + bne _0801EB50 + adds r0, r4, #0 + bl sub_0801ECFC + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 + b _0801EB60 +_0801EB50: + ldr r0, _0801EB64 @ =gUnk_080CA158 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_0801EB60: + pop {r4, pc} + .align 2, 0 +_0801EB64: .4byte gUnk_080CA158 + + thumb_func_start sub_0801EB68 +sub_0801EB68: @ 0x0801EB68 + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x3c + strb r1, [r0, #0x1d] + bx lr + .align 2, 0 + + thumb_func_start sub_0801EB74 +sub_0801EB74: @ 0x0801EB74 + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_0801EB7C +sub_0801EB7C: @ 0x0801EB7C + push {lr} + bl sub_0806F3E4 + pop {pc} + + thumb_func_start sub_0801EB84 +sub_0801EB84: @ 0x0801EB84 + push {lr} + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + movs r1, #2 + bl sub_08004276 + pop {pc} + .align 2, 0 + + thumb_func_start nullsub_3 +nullsub_3: @ 0x0801EB98 + bx lr + .align 2, 0 + + thumb_func_start sub_0801EB9C +sub_0801EB9C: @ 0x0801EB9C + push {lr} + adds r2, r0, #0 + ldrb r3, [r2, #0x10] + movs r0, #0x80 + ands r0, r3 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _0801EBC0 + movs r0, #0x80 + orrs r0, r3 + strb r0, [r2, #0x10] + adds r2, #0x3a + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 + strb r0, [r2] + b _0801EBC6 +_0801EBC0: + adds r0, r2, #0 + adds r0, #0x45 + strb r1, [r0] +_0801EBC6: + pop {pc} + + thumb_func_start sub_0801EBC8 +sub_0801EBC8: @ 0x0801EBC8 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + ldrb r0, [r4, #0xa] + cmp r0, #2 + beq _0801EBDE + bl sub_08000E50 + movs r1, #3 + ands r0, r1 +_0801EBDE: + strb r0, [r4, #0x14] + movs r0, #0x12 + strb r0, [r4, #0x1c] + adds r0, r4, #0 + bl sub_0801ECFC + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 + pop {r4, pc} + + thumb_func_start sub_0801EBF4 +sub_0801EBF4: @ 0x0801EBF4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801EC1E + movs r0, #2 + strb r0, [r4, #0xc] + bl sub_08000E50 + ldr r2, _0801EC28 @ =gUnk_080CA170 + movs r1, #3 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_0801ED14 +_0801EC1E: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 +_0801EC28: .4byte gUnk_080CA170 + + thumb_func_start sub_0801EC2C +sub_0801EC2C: @ 0x0801EC2C + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080AEF88 + adds r0, r5, #0 + bl sub_08004274 + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801EC7E + adds r0, r5, #0 + bl sub_0801EDEC + cmp r0, #0 + beq _0801EC78 + ldr r1, _0801EC74 @ =gUnk_080CA174 + ldrb r0, [r5, #0xa] + adds r0, r0, r1 + ldrb r4, [r0] + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + cmp r4, r0 + bhi _0801EC78 + strb r1, [r5, #0xc] + ldrb r1, [r5, #0x14] + adds r1, #4 + adds r0, r5, #0 + bl sub_08004260 + b _0801EC7E + .align 2, 0 +_0801EC74: .4byte gUnk_080CA174 +_0801EC78: + adds r0, r5, #0 + bl sub_0801ECFC +_0801EC7E: + pop {r4, r5, pc} + + thumb_func_start sub_0801EC80 +sub_0801EC80: @ 0x0801EC80 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r5, r4, #0 + adds r5, #0x5a + ldrb r1, [r5] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0801ECD8 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0804A98C + adds r2, r0, #0 + cmp r2, #0 + beq _0801ECD8 + ldrb r0, [r4, #0x15] + strb r0, [r2, #0x15] + ldrb r1, [r4, #0x15] + lsrs r1, r1, #2 + ldr r0, _0801ECF0 @ =gUnk_080CA176 + adds r1, r1, r0 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r3, [r2, #0x2e] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + movs r0, #1 + ldrsb r0, [r1, r0] + ldrh r1, [r2, #0x32] + adds r0, r0, r1 + strh r0, [r2, #0x32] + ldr r0, _0801ECF4 @ =0x0000FFFD + strh r0, [r2, #0x36] + ldrb r1, [r5] + movs r0, #0xfe + ands r0, r1 + strb r0, [r5] + ldr r0, _0801ECF8 @ =0x0000018D + bl sub_08004488 +_0801ECD8: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0801ECEC + adds r0, r4, #0 + bl sub_0801ECFC +_0801ECEC: + pop {r4, r5, pc} + .align 2, 0 +_0801ECF0: .4byte gUnk_080CA176 +_0801ECF4: .4byte 0x0000FFFD +_0801ECF8: .4byte 0x0000018D + + thumb_func_start sub_0801ECFC +sub_0801ECFC: @ 0x0801ECFC + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r1, #0x38 + ands r0, r1 + adds r0, #0x18 + strb r0, [r4, #0xe] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0801ED14 +sub_0801ED14: @ 0x0801ED14 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xa] + cmp r0, #2 + beq _0801ED7E + adds r0, r5, #0 + bl sub_08049FA0 + cmp r0, #0 + beq _0801ED4C + ldrb r0, [r5, #0xa] + cmp r0, #1 + bne _0801ED46 + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + cmp r1, #0 + bne _0801ED46 + adds r0, r5, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + bne _0801EDC4 +_0801ED46: + bl sub_08000E50 + b _0801EDD0 +_0801ED4C: + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + cmp r1, #0 + beq _0801ED78 + adds r0, r5, #0 + bl sub_08049EE4 + adds r4, r0, #0 + bl sub_08000E50 + ldr r2, _0801ED74 @ =gUnk_080CA17E + movs r1, #1 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + adds r0, r0, r4 + b _0801EDD0 + .align 2, 0 +_0801ED74: .4byte gUnk_080CA17E +_0801ED78: + bl sub_08000E50 + b _0801EDD0 +_0801ED7E: + adds r0, r5, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + bne _0801EDC4 + adds r0, r5, #0 + bl sub_08049FA0 + cmp r0, #0 + beq _0801ED9A + bl sub_08000E50 + b _0801EDD0 +_0801ED9A: + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + cmp r1, #0 + beq _0801EDC4 + adds r0, r5, #0 + bl sub_08049EE4 + adds r4, r0, #0 + bl sub_08000E50 + ldr r2, _0801EDC0 @ =gUnk_080CA17E + movs r1, #1 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + adds r0, r0, r4 + b _0801EDD0 + .align 2, 0 +_0801EDC0: .4byte gUnk_080CA17E +_0801EDC4: + ldr r0, _0801EDE8 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r5, #0 + bl sub_080045C4 + adds r0, #4 +_0801EDD0: + movs r1, #0x18 + ands r0, r1 + strb r0, [r5, #0x15] + ldrb r0, [r5, #0x15] + lsrs r0, r0, #3 + strb r0, [r5, #0x14] + ldrb r1, [r5, #0x14] + adds r0, r5, #0 + bl sub_08004260 + pop {r4, r5, pc} + .align 2, 0 +_0801EDE8: .4byte gUnk_020000B0 + + thumb_func_start sub_0801EDEC +sub_0801EDEC: @ 0x0801EDEC + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + bl sub_08049DF4 + adds r1, r0, #0 + cmp r1, #0 + beq _0801EE12 + adds r0, r4, #0 + bl sub_080045C4 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + ldrb r4, [r4, #0x15] + cmp r0, r4 + bne _0801EE12 + movs r0, #1 + b _0801EE14 +_0801EE12: + movs r0, #0 +_0801EE14: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0801EE18 +sub_0801EE18: @ 0x0801EE18 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080012DC + adds r4, r0, #0 + cmp r4, #0 + beq _0801EE9E + cmp r4, #2 + beq _0801EE40 + ldr r0, _0801EE3C @ =0x080012C8 + lsls r1, r4, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r5, #0 + bl _call_via_r1 + b _0801EEE0 + .align 2, 0 +_0801EE3C: .4byte 0x080012C8 +_0801EE40: + adds r2, r5, #0 + adds r2, #0x3a + ldrb r1, [r2] + movs r0, #0xfe + ands r0, r1 + strb r0, [r2] + adds r0, r5, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r4, r0 + beq _0801EE9E + ldrb r0, [r5, #0xa] + cmp r0, #1 + beq _0801EE9E + cmp r0, #1 + bgt _0801EE66 + cmp r0, #0 + beq _0801EE6C + b _0801EE9E +_0801EE66: + cmp r0, #2 + beq _0801EE96 + b _0801EE9E +_0801EE6C: + ldrb r1, [r5, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0801EE9E + movs r0, #6 + strb r0, [r5, #0xc] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + movs r0, #0x20 + strh r0, [r5, #0x24] + adds r1, r5, #0 + adds r1, #0x3f + movs r0, #0x5c + strb r0, [r1] + adds r0, r5, #0 + movs r1, #5 + bl sub_08004260 + b _0801EE9E +_0801EE96: + adds r0, r5, #0 + bl sub_080043A8 + b _0801EEE0 +_0801EE9E: + adds r0, r5, #0 + adds r0, #0x81 + strb r4, [r0] + ldr r4, _0801EED0 @ =gUnk_080CA21C + adds r0, r5, #0 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + ldr r0, [r5, #0x68] + ldrb r0, [r0, #0xa] + cmp r0, #0x1c + bne _0801EED4 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r5, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + b _0801EEE0 + .align 2, 0 +_0801EED0: .4byte gUnk_080CA21C +_0801EED4: + ldrb r0, [r5, #0xa] + cmp r0, #2 + bne _0801EEE0 + adds r0, r5, #0 + bl sub_0801FB34 +_0801EEE0: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0801EEE4 +sub_0801EEE4: @ 0x0801EEE4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #1 + beq _0801EF0C + cmp r0, #1 + bgt _0801EEF8 + cmp r0, #0 + beq _0801EEFE + b _0801EF38 +_0801EEF8: + cmp r0, #2 + beq _0801EF28 + b _0801EF38 +_0801EEFE: + adds r0, r4, #0 + bl sub_0801F3AC + ldr r0, _0801EF08 @ =gUnk_080CA234 + b _0801EF14 + .align 2, 0 +_0801EF08: .4byte gUnk_080CA234 +_0801EF0C: + adds r0, r4, #0 + bl sub_0801F764 + ldr r0, _0801EF24 @ =gUnk_080CA25C +_0801EF14: + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _0801EF38 + .align 2, 0 +_0801EF24: .4byte gUnk_080CA25C +_0801EF28: + ldr r0, _0801EF3C @ =gUnk_080CA288 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_0801EF38: + pop {r4, pc} + .align 2, 0 +_0801EF3C: .4byte gUnk_080CA288 + + thumb_func_start sub_0801EF40 +sub_0801EF40: @ 0x0801EF40 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #2 + bne _0801EF68 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x8e + beq _0801EF58 + cmp r0, #0x95 + bne _0801EF68 +_0801EF58: + ldrb r0, [r4, #0x10] + movs r1, #0x7f + ands r1, r0 + movs r0, #0 + strb r1, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x45 + strb r0, [r1] +_0801EF68: + adds r0, r4, #0 + adds r0, #0x45 + ldrb r6, [r0] + adds r7, r0, #0 + cmp r6, #0 + beq _0801EFB0 + subs r0, #4 + ldrb r0, [r0] + cmp r0, #0x94 + bne _0801EF94 + adds r0, r4, #0 + bl sub_0801FB68 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC + adds r0, r4, #0 + movs r1, #6 + bl sub_08004260 + b _0801EFC0 +_0801EF94: + adds r0, r4, #0 + adds r0, #0x80 + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, r6 + beq _0801EFC4 + adds r0, r4, #0 + bl sub_0801FB68 + adds r0, r4, #0 + movs r1, #6 + bl sub_08004260 + b _0801EFC4 +_0801EFB0: + adds r0, r4, #0 + bl sub_0804AA1C + str r6, [r4, #0x20] + adds r0, r4, #0 + movs r1, #9 + bl sub_08004260 +_0801EFC0: + adds r5, r4, #0 + adds r5, #0x80 +_0801EFC4: + ldrb r0, [r7] + strb r0, [r5] + ldr r1, _0801EFD4 @ =gUnk_080CA21C + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801EFD4: .4byte gUnk_080CA21C + + thumb_func_start sub_0801EFD8 +sub_0801EFD8: @ 0x0801EFD8 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F520 + cmp r0, #0 + bne _0801F000 + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0801F000 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC + adds r0, r4, #0 + movs r1, #6 + bl sub_08004260 + b _0801F028 +_0801F000: + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #8 + beq _0801F018 + adds r0, r4, #0 + bl sub_0801FB68 + adds r0, r4, #0 + movs r1, #8 + bl sub_08004260 +_0801F018: + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + adds r0, r4, #0 + bl sub_08004274 +_0801F028: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0801F02C +sub_0801F02C: @ 0x0801F02C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #6 + bne _0801F03E + adds r0, r4, #0 + bl sub_08004274 +_0801F03E: + adds r0, r4, #0 + bl sub_08001318 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0801F048 +sub_0801F048: @ 0x0801F048 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xc0 + lsls r1, r1, #5 + bl sub_08003FC4 + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0801F068 + adds r0, r4, #0 + bl sub_0804A7D4 + b _0801F082 +_0801F068: + cmp r0, #1 + bne _0801F078 + adds r0, r4, #0 + movs r1, #0xf2 + movs r2, #0 + bl sub_0804A7E0 + b _0801F082 +_0801F078: + adds r0, r4, #0 + movs r1, #0xf1 + movs r2, #0 + bl sub_0804A7E0 +_0801F082: + pop {r4, pc} + + thumb_func_start sub_0801F084 +sub_0801F084: @ 0x0801F084 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0801F09A + adds r0, r4, #0 + bl sub_08004274 +_0801F09A: + adds r0, r4, #0 + bl sub_08001242 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0801F0A4 +sub_0801F0A4: @ 0x0801F0A4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r2, #0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x45 + ldrb r1, [r0] + adds r0, #0x3b + strb r1, [r0] + adds r4, #0x82 + strb r2, [r4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start nullsub_4 +nullsub_4: @ 0x0801F0C4 + bx lr + .align 2, 0 + + thumb_func_start sub_0801F0C8 +sub_0801F0C8: @ 0x0801F0C8 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_08004274 + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0801F12A + movs r4, #3 + movs r0, #3 + strb r0, [r5, #0xc] + bl sub_08000E50 + ands r0, r4 + adds r0, #0xc + strb r0, [r5, #0xe] + bl sub_08000E50 + strb r0, [r5, #0xf] + adds r0, r5, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r5, #0x15] + ldrb r1, [r5, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + movs r1, #0x39 + rsbs r1, r1, #0 + ands r0, r1 + movs r1, #0x18 + orrs r0, r1 + strb r0, [r2] + adds r0, r5, #0 + movs r1, #2 + bl sub_08004260 +_0801F12A: + pop {r4, r5, pc} + + thumb_func_start sub_0801F12C +sub_0801F12C: @ 0x0801F12C + push {r4, lr} + adds r4, r0, #0 + bl sub_0801FBD0 + cmp r0, #0 + beq _0801F140 + adds r0, r4, #0 + bl sub_0801F328 + b _0801F1AC +_0801F140: + ldrb r1, [r4, #0xf] + adds r0, r1, #1 + strb r0, [r4, #0xf] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + bne _0801F158 + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] +_0801F158: + adds r0, r4, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801F1AC + adds r0, r4, #0 + movs r1, #1 + movs r2, #0x38 + bl sub_08049F64 + cmp r0, #0 + beq _0801F18A + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0801FBE4 + b _0801F1AC +_0801F18A: + adds r0, r4, #0 + movs r1, #1 + movs r2, #0x48 + bl sub_08049F64 + cmp r0, #0 + beq _0801F1A6 + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + adds r0, #0xc + strb r0, [r4, #0xe] + b _0801F1AC +_0801F1A6: + adds r0, r4, #0 + bl sub_0801F328 +_0801F1AC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0801F1B0 +sub_0801F1B0: @ 0x0801F1B0 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0801F1FA + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0801F1DE + movs r0, #1 + eors r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x5a + strb r0, [r1] + adds r0, #0xd1 + bl sub_08004488 +_0801F1DE: + adds r0, r4, #0 + bl sub_080AEFE0 + movs r1, #0x80 + lsls r1, r1, #7 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _0801F200 + adds r0, r4, #0 + bl sub_08004274 + b _0801F200 +_0801F1FA: + adds r0, r4, #0 + bl sub_08004274 +_0801F200: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0801F226 + adds r0, r4, #0 + bl sub_0801FBD0 + cmp r0, #0 + beq _0801F220 + adds r0, r4, #0 + bl sub_0801F328 + b _0801F226 +_0801F220: + adds r0, r4, #0 + bl sub_0801F340 +_0801F226: + pop {r4, pc} + + thumb_func_start sub_0801F228 +sub_0801F228: @ 0x0801F228 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801F246 + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] +_0801F246: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0801F250 +sub_0801F250: @ 0x0801F250 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0801F26C + adds r0, r4, #0 + bl sub_0801F360 +_0801F26C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0801F270 +sub_0801F270: @ 0x0801F270 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xf] + adds r0, r1, #1 + strb r0, [r4, #0xf] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + bne _0801F28C + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] +_0801F28C: + adds r0, r4, #0 + bl sub_080AF160 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0801FBD0 + cmp r0, #0 + bne _0801F2CA + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801F2CA + adds r0, r4, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + bne _0801F2C6 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 + b _0801F2CA +_0801F2C6: + movs r0, #8 + strb r0, [r4, #0xe] +_0801F2CA: + pop {r4, pc} + + thumb_func_start sub_0801F2CC +sub_0801F2CC: @ 0x0801F2CC + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0801F2F6 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 +_0801F2F6: + pop {r4, pc} + + thumb_func_start sub_0801F2F8 +sub_0801F2F8: @ 0x0801F2F8 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xc0 + lsls r1, r1, #5 + bl sub_08003FC4 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0801F324 + adds r0, r4, #0 + bl sub_0801F340 + adds r0, r4, #0 + bl sub_0804AA1C +_0801F324: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0801F328 +sub_0801F328: @ 0x0801F328 + push {lr} + movs r1, #6 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + movs r1, #5 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0801F340 +sub_0801F340: @ 0x0801F340 + push {lr} + movs r1, #5 + strb r1, [r0, #0xc] + movs r1, #0x3c + strb r1, [r0, #0xe] + movs r1, #0x20 + strh r1, [r0, #0x24] + adds r2, r0, #0 + adds r2, #0x3f + movs r1, #0x5c + strb r1, [r2] + movs r1, #2 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0801F360 +sub_0801F360: @ 0x0801F360 + push {r4, lr} + adds r4, r0, #0 + movs r0, #7 + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r1, #0x38 + ands r0, r1 + adds r0, #0xb4 + strb r0, [r4, #0xe] + bl sub_08000E50 + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + movs r1, #8 + rsbs r1, r1, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0801F3AC +sub_0801F3AC: @ 0x0801F3AC + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #9 + beq _0801F426 + cmp r0, #0 + beq _0801F426 + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0801F408 + adds r5, r4, #0 + adds r5, #0x82 + ldrb r0, [r5] + cmp r0, #0 + bne _0801F3DE + adds r0, r4, #0 + movs r1, #1 + movs r2, #0x48 + bl sub_08049F64 + cmp r0, #0 + beq _0801F400 +_0801F3DE: + ldrb r2, [r4, #0xc] + cmp r2, #1 + bne _0801F426 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #6 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + strb r2, [r5] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + b _0801F426 +_0801F400: + ldrb r0, [r4, #0xc] + cmp r0, #3 + bne _0801F426 + b _0801F40E +_0801F408: + ldrb r0, [r4, #0xc] + cmp r0, #3 + bne _0801F416 +_0801F40E: + adds r0, r4, #0 + bl sub_0801F328 + b _0801F426 +_0801F416: + cmp r0, #7 + bne _0801F426 + movs r0, #8 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #7 + bl sub_08004260 +_0801F426: + pop {r4, r5, pc} + + thumb_func_start sub_0801F428 +sub_0801F428: @ 0x0801F428 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_0804A720 + movs r4, #0 + movs r0, #1 + strb r0, [r5, #0xc] + bl sub_08000E50 + strb r0, [r5, #0xe] + adds r0, r5, #0 + adds r0, #0x45 + ldrb r1, [r0] + adds r0, #0x3b + strb r1, [r0] + adds r0, #2 + strb r4, [r0] + ldrb r0, [r5, #0xb] + cmp r0, #0 + beq _0801F488 + movs r0, #3 + strb r0, [r5, #0xc] + movs r0, #0x1e + strb r0, [r5, #0xf] + ldrb r0, [r5, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x18 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #0x18] + adds r0, r5, #0 + movs r1, #2 + bl sub_08004260 +_0801F488: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0801F48C +sub_0801F48C: @ 0x0801F48C + push {lr} + bl sub_08004274 + pop {pc} + + thumb_func_start sub_0801F494 +sub_0801F494: @ 0x0801F494 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0801F4E8 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + movs r1, #0x39 + rsbs r1, r1, #0 + ands r0, r1 + movs r1, #0x18 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 +_0801F4E8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0801F4EC +sub_0801F4EC: @ 0x0801F4EC + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801F504 + movs r0, #4 + strb r0, [r4, #0xc] +_0801F504: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0801F508 +sub_0801F508: @ 0x0801F508 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0801FBD0 + cmp r0, #0 + beq _0801F51C + adds r1, r4, #0 + adds r1, #0x83 + movs r0, #0 + b _0801F55C +_0801F51C: + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + adds r5, r0, #0 + ands r5, r1 + movs r0, #7 + ands r5, r0 + cmp r5, #0 + bne _0801F566 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0x38 + bl sub_08049F64 + cmp r0, #0 + beq _0801F566 + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _0801F556 + movs r0, #5 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0801FBE4 + b _0801F580 +_0801F556: + adds r1, r4, #0 + adds r1, #0x83 + movs r0, #0x78 +_0801F55C: + strb r0, [r1] + adds r0, r4, #0 + bl sub_0801F730 + b _0801F580 +_0801F566: + cmp r5, #4 + bne _0801F574 + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] +_0801F574: + adds r0, r4, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_08004274 +_0801F580: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0801F584 +sub_0801F584: @ 0x0801F584 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0801F5CE + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0801F5B2 + movs r0, #1 + eors r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x5b + strb r0, [r1] + adds r0, #0xd0 + bl sub_08004488 +_0801F5B2: + adds r0, r4, #0 + bl sub_080AEFE0 + movs r1, #0x80 + lsls r1, r1, #7 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _0801F5D4 + adds r0, r4, #0 + bl sub_08004274 + b _0801F5D4 +_0801F5CE: + adds r0, r4, #0 + bl sub_08004274 +_0801F5D4: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0801F618 + adds r0, r4, #0 + bl sub_0801FBD0 + cmp r0, #0 + beq _0801F5FC + adds r1, r4, #0 + adds r1, #0x83 + movs r0, #0 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0801F730 + b _0801F618 +_0801F5FC: + movs r0, #6 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xf] + movs r0, #0x20 + strh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x5c + strb r0, [r1] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 +_0801F618: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0801F61C +sub_0801F61C: @ 0x0801F61C + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xf] + subs r0, #1 + strb r0, [r1, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801F630 + movs r0, #4 + strb r0, [r1, #0xc] +_0801F630: + adds r0, r1, #0 + bl sub_08004274 + pop {pc} + + thumb_func_start sub_0801F638 +sub_0801F638: @ 0x0801F638 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0801F684 + movs r0, #8 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + movs r1, #8 + rsbs r1, r1, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_0801F684: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0801F688 +sub_0801F688: @ 0x0801F688 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x83 + ldrb r0, [r5] + cmp r0, #0 + beq _0801F69A + subs r0, #1 + strb r0, [r5] +_0801F69A: + adds r0, r4, #0 + bl sub_0801FBD0 + cmp r0, #0 + bne _0801F6AA + ldrb r0, [r5] + cmp r0, #0 + beq _0801F6C2 +_0801F6AA: + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_080AF160 + adds r0, r4, #0 + bl sub_08004274 + b _0801F6C8 +_0801F6C2: + adds r0, r4, #0 + bl sub_0801F748 +_0801F6C8: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0801F6CC +sub_0801F6CC: @ 0x0801F6CC + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0801F6F6 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 +_0801F6F6: + pop {r4, pc} + + thumb_func_start sub_0801F6F8 +sub_0801F6F8: @ 0x0801F6F8 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xc0 + lsls r1, r1, #5 + bl sub_08003FC4 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0801F72E + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x20 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_0804AA1C + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 +_0801F72E: + pop {r4, pc} + + thumb_func_start sub_0801F730 +sub_0801F730: @ 0x0801F730 + push {lr} + movs r1, #7 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + movs r1, #5 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0801F748 +sub_0801F748: @ 0x0801F748 + push {lr} + movs r1, #2 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x18] + subs r1, #6 + ands r1, r2 + movs r2, #1 + orrs r1, r2 + strb r1, [r0, #0x18] + movs r1, #4 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0801F764 +sub_0801F764: @ 0x0801F764 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0xa + beq _0801F7D6 + cmp r0, #0 + beq _0801F7D6 + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0801F7B8 + ldrb r6, [r4, #0xc] + cmp r6, #1 + bne _0801F7D6 + adds r5, r4, #0 + adds r5, #0x82 + ldrb r0, [r5] + cmp r0, #0 + bne _0801F79C + adds r0, r4, #0 + movs r1, #1 + movs r2, #0x48 + bl sub_08049F64 + cmp r0, #0 + beq _0801F7D6 +_0801F79C: + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #6 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + strb r6, [r5] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + b _0801F7D6 +_0801F7B8: + ldrb r0, [r4, #0xc] + cmp r0, #4 + bne _0801F7C6 + adds r0, r4, #0 + bl sub_0801F730 + b _0801F7D6 +_0801F7C6: + cmp r0, #8 + bne _0801F7D6 + movs r0, #9 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #7 + bl sub_08004260 +_0801F7D6: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0801F7D8 +sub_0801F7D8: @ 0x0801F7D8 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r5, #0 + movs r0, #1 + strb r0, [r4, #0xc] + bl sub_08000E50 + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x45 + ldrb r1, [r0] + adds r0, #0x3b + strb r1, [r0] + adds r4, #0x82 + strb r5, [r4] + pop {r4, r5, pc} + + thumb_func_start sub_0801F7FC +sub_0801F7FC: @ 0x0801F7FC + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0801F83E + adds r5, r4, #0 + adds r5, #0x82 + ldrb r0, [r5] + cmp r0, #0 + bne _0801F822 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0x48 + bl sub_08049F64 + cmp r0, #0 + beq _0801F83E +_0801F822: + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #6 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #1 + strb r0, [r5] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_0801F83E: + pop {r4, r5, pc} + + thumb_func_start sub_0801F840 +sub_0801F840: @ 0x0801F840 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0801F880 + adds r0, r4, #0 + bl sub_0801FB14 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + movs r1, #0x39 + rsbs r1, r1, #0 + ands r0, r1 + movs r1, #0x18 + orrs r0, r1 + strb r0, [r2] +_0801F880: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0801F884 +sub_0801F884: @ 0x0801F884 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0801F898 + subs r0, #1 + strb r0, [r4, #0xf] + b _0801F8BC +_0801F898: + adds r0, r4, #0 + movs r1, #0x1b + bl sub_0804A9FC + adds r1, r0, #0 + cmp r1, #0 + beq _0801F8BC + movs r0, #0x40 + strb r0, [r1, #0xb] + movs r0, #4 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0xa5 + strb r0, [r1] + adds r0, #0xee + bl sub_08004488 +_0801F8BC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0801F8C0 +sub_0801F8C0: @ 0x0801F8C0 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0801FBD0 + cmp r0, #0 + beq _0801F8D4 + adds r0, r4, #0 + bl sub_0801FAE0 + b _0801F938 +_0801F8D4: + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + bne _0801F8E8 + adds r0, r4, #0 + bl sub_0801F730 + b _0801F938 +_0801F8E8: + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + adds r5, r0, #0 + ands r5, r1 + movs r0, #7 + ands r5, r0 + cmp r5, #0 + bne _0801F91C + ldr r0, _0801F918 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + movs r2, #0x38 + bl sub_08049F1C + cmp r0, #0 + beq _0801F91C + movs r0, #5 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0801FBE4 + b _0801F938 + .align 2, 0 +_0801F918: .4byte gUnk_020000B0 +_0801F91C: + cmp r5, #4 + bne _0801F92C + ldr r0, _0801F93C @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] +_0801F92C: + adds r0, r4, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_08004274 +_0801F938: + pop {r4, r5, pc} + .align 2, 0 +_0801F93C: .4byte gUnk_020000B0 + + thumb_func_start sub_0801F940 +sub_0801F940: @ 0x0801F940 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0801F988 + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0801F966 + movs r0, #1 + eors r0, r1 + strb r0, [r2] + ldr r0, _0801F984 @ =0x0000012B + bl sub_08004488 +_0801F966: + adds r0, r4, #0 + bl sub_080AEFE0 + movs r1, #0x80 + lsls r1, r1, #7 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _0801F98E + adds r0, r4, #0 + bl sub_08004274 + b _0801F98E + .align 2, 0 +_0801F984: .4byte 0x0000012B +_0801F988: + adds r0, r4, #0 + bl sub_08004274 +_0801F98E: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0801F9C2 + adds r0, r4, #0 + bl sub_0801FBD0 + cmp r0, #0 + beq _0801F9AE + adds r0, r4, #0 + bl sub_0801FAE0 + b _0801F9C2 +_0801F9AE: + movs r0, #6 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xf] + movs r0, #0x20 + strh r0, [r4, #0x24] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 +_0801F9C2: + pop {r4, pc} + + thumb_func_start sub_0801F9C4 +sub_0801F9C4: @ 0x0801F9C4 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xf] + subs r0, #1 + strb r0, [r1, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801F9D8 + movs r0, #4 + strb r0, [r1, #0xc] +_0801F9D8: + adds r0, r1, #0 + bl sub_08004274 + pop {pc} + + thumb_func_start sub_0801F9E0 +sub_0801F9E0: @ 0x0801F9E0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0801FA2C + movs r0, #8 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + movs r1, #8 + rsbs r1, r1, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_0801FA2C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0801FA30 +sub_0801FA30: @ 0x0801FA30 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801FBD0 + cmp r0, #0 + beq _0801FA54 + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_080AF160 + adds r0, r4, #0 + bl sub_08004274 + b _0801FA74 +_0801FA54: + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + bne _0801FA6E + movs r0, #9 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #7 + bl sub_08004260 + b _0801FA74 +_0801FA6E: + adds r0, r4, #0 + bl sub_0801FAF8 +_0801FA74: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0801FA78 +sub_0801FA78: @ 0x0801FA78 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0801FAA8 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0804AA1C +_0801FAA8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0801FAAC +sub_0801FAAC: @ 0x0801FAAC + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xc0 + lsls r1, r1, #5 + bl sub_08003FC4 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0801FADC + adds r0, r4, #0 + bl sub_0801FB14 + movs r0, #0x20 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_0804AA1C +_0801FADC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0801FAE0 +sub_0801FAE0: @ 0x0801FAE0 + push {lr} + movs r1, #7 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + movs r1, #5 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0801FAF8 +sub_0801FAF8: @ 0x0801FAF8 + push {lr} + movs r1, #2 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x18] + subs r1, #6 + ands r1, r2 + movs r2, #1 + orrs r1, r2 + strb r1, [r0, #0x18] + movs r1, #4 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0801FB14 +sub_0801FB14: @ 0x0801FB14 + push {r4, lr} + adds r4, r0, #0 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + pop {r4, pc} + + thumb_func_start sub_0801FB34 +sub_0801FB34: @ 0x0801FB34 + push {r4, lr} + adds r4, r0, #0 + ldr r3, [r4, #0x68] + cmp r3, #0 + beq _0801FB62 + ldr r2, _0801FB64 @ =gUnk_080CA2B4 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0xf + ands r0, r1 + adds r0, r0, r2 + movs r2, #0 + ldrsb r2, [r0, r2] + adds r0, r4, #0 + adds r1, r3, #0 + movs r3, #1 + bl sub_0806FA90 + ldr r1, [r4, #0x68] + adds r1, #0x63 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] +_0801FB62: + pop {r4, pc} + .align 2, 0 +_0801FB64: .4byte gUnk_080CA2B4 + + thumb_func_start sub_0801FB68 +sub_0801FB68: @ 0x0801FB68 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #1 + beq _0801FB88 + cmp r0, #1 + bgt _0801FB7C + cmp r0, #0 + beq _0801FB82 + b _0801FBC8 +_0801FB7C: + cmp r0, #2 + beq _0801FBB6 + b _0801FBC8 +_0801FB82: + movs r0, #9 + strb r0, [r4, #0xc] + b _0801FBC8 +_0801FB88: + movs r0, #0xa + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x18 + orrs r0, r1 + strb r0, [r2] + b _0801FBC8 +_0801FBB6: + movs r0, #0xa + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x5c + strb r0, [r1] + adds r0, r4, #0 + bl sub_0804AA1C +_0801FBC8: + movs r0, #0 + str r0, [r4, #0x20] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0801FBD0 +sub_0801FBD0: @ 0x0801FBD0 + push {lr} + bl sub_080002B8 + cmp r0, #0x10 + beq _0801FBDE + movs r0, #0 + b _0801FBE0 +_0801FBDE: + movs r0, #1 +_0801FBE0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0801FBE4 +sub_0801FBE4: @ 0x0801FBE4 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 + pop {r4, pc} + + thumb_func_start sub_0801FC08 +sub_0801FC08: @ 0x0801FC08 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0801FC24 @ =gUnk_080CA49C + bl sub_0800129E + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, pc} + .align 2, 0 +_0801FC24: .4byte gUnk_080CA49C + + thumb_func_start sub_0801FC28 +sub_0801FC28: @ 0x0801FC28 + push {lr} + ldr r2, _0801FC3C @ =gUnk_080CA4B4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0801FC3C: .4byte gUnk_080CA4B4 + + thumb_func_start sub_0801FC40 +sub_0801FC40: @ 0x0801FC40 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x80 + bne _0801FC5C + ldrb r0, [r4, #0xc] + cmp r0, #3 + bne _0801FC6E + adds r1, r4, #0 + adds r1, #0x74 + movs r0, #1 + strh r0, [r1] + b _0801FC6E +_0801FC5C: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0801FC6E + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0801FC6E: + ldr r1, _0801FC78 @ =gUnk_080CA49C + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_0801FC78: .4byte gUnk_080CA49C + + thumb_func_start sub_0801FC7C +sub_0801FC7C: @ 0x0801FC7C + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xa] + cmp r0, #0 + bne _0801FC8E + adds r0, r1, #0 + bl sub_0804A7D4 + b _0801FC98 +_0801FC8E: + adds r0, r1, #0 + movs r1, #0xf1 + movs r2, #0 + bl sub_0804A7E0 +_0801FC98: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0801FC9C +sub_0801FC9C: @ 0x0801FC9C + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r0, #1 + strb r0, [r4, #0xc] + bl sub_08000E50 + strb r0, [r4, #0xe] + pop {r4, pc} + + thumb_func_start sub_0801FCB0 +sub_0801FCB0: @ 0x0801FCB0 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801FD28 + bl sub_08000E50 + movs r1, #0x1f + ands r1, r0 + adds r0, r5, #0 + bl sub_0801FE68 + cmp r0, #0 + beq _0801FD1C + movs r0, #2 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x18] + subs r0, #6 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #0x18] + ldr r0, _0801FD14 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r5, #0 + bl sub_080045C4 + adds r4, r0, #0 + bl sub_08000E50 + ldr r2, _0801FD18 @ =gUnk_080CA4C8 + movs r1, #1 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + adds r0, r0, r4 + movs r1, #0x1f + ands r0, r1 + strb r0, [r5, #0x15] + adds r0, r5, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r5, #0 + bl sub_08016A04 + b _0801FD28 + .align 2, 0 +_0801FD14: .4byte gUnk_020000B0 +_0801FD18: .4byte gUnk_080CA4C8 +_0801FD1C: + bl sub_08000E50 + movs r1, #0x18 + ands r0, r1 + adds r0, #8 + strb r0, [r5, #0xe] +_0801FD28: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0801FD2C +sub_0801FD2C: @ 0x0801FD2C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0801FD66 + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0801FD54 + adds r1, r4, #0 + adds r1, #0x74 + movs r0, #0xb4 + b _0801FD5A +_0801FD54: + adds r1, r4, #0 + adds r1, #0x74 + movs r0, #0x6e +_0801FD5A: + strh r0, [r1] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + b _0801FD7C +_0801FD66: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0801FD7C + movs r0, #0xfe + ands r0, r1 + strb r0, [r2] + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] +_0801FD7C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0801FD80 +sub_0801FD80: @ 0x0801FD80 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801FED4 + adds r0, r4, #0 + bl sub_08004274 + adds r1, r4, #0 + adds r1, #0x74 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0801FDB2 + movs r0, #4 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_0801FDB2: + pop {r4, pc} + + thumb_func_start sub_0801FDB4 +sub_0801FDB4: @ 0x0801FDB4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801FED4 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0801FDE0 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xf0 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #0xf4 + ands r0, r1 + strb r0, [r4, #0x18] +_0801FDE0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0801FDE4 +sub_0801FDE4: @ 0x0801FDE4 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r4, r1, #0 + adds r5, r2, #0 + ldr r7, _0801FE04 @ =gUnk_020000B0 + ldr r0, [r7] + adds r0, #0x38 + ldrb r2, [r0] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080002D4 + cmp r0, #0 + beq _0801FE34 + b _0801FE5C + .align 2, 0 +_0801FE04: .4byte gUnk_020000B0 +_0801FE08: + movs r0, #0x10 + rsbs r0, r0, #0 + adds r1, r0, #0 + ands r4, r1 + adds r0, r4, #0 + adds r0, #8 + strh r0, [r6, #0x2e] + ands r5, r1 + adds r0, r5, #0 + adds r0, #8 + strh r0, [r6, #0x32] + ldr r0, _0801FE30 @ =gUnk_020000B0 + ldr r0, [r0] + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r6, #0 + adds r0, #0x38 + strb r1, [r0] + movs r0, #1 + b _0801FE5E + .align 2, 0 +_0801FE30: .4byte gUnk_020000B0 +_0801FE34: + ldr r0, [r7] + adds r0, #0x38 + ldrb r2, [r0] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080002BC + adds r3, r0, #0 + ldr r1, _0801FE60 @ =gUnk_080CA4CA + ldrh r0, [r1] + ldr r2, _0801FE64 @ =0x0000FFFF + cmp r0, r2 + beq _0801FE5C +_0801FE4E: + ldrh r0, [r1] + adds r1, #2 + cmp r0, r3 + beq _0801FE08 + ldrh r0, [r1] + cmp r0, r2 + bne _0801FE4E +_0801FE5C: + movs r0, #0 +_0801FE5E: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801FE60: .4byte gUnk_080CA4CA +_0801FE64: .4byte 0x0000FFFF + + thumb_func_start sub_0801FE68 +sub_0801FE68: @ 0x0801FE68 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r7, r0, #0 + adds r6, r1, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + bne _0801FE82 +_0801FE7E: + movs r0, #0 + b _0801FEC4 +_0801FE82: + ldr r0, _0801FECC @ =gUnk_020000B0 + ldr r0, [r0] + ldr r5, [r0, #0x2c] + ldr r4, [r0, #0x30] + ldr r1, _0801FED0 @ =gUnk_080C9160 + lsls r0, r6, #4 + adds r0, r0, r1 + movs r2, #0 + ldrsh r0, [r0, r2] + lsls r0, r0, #0xb + mov sb, r0 + lsls r0, r6, #4 + adds r0, #0x80 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + lsls r0, r0, #0xb + mov r8, r0 + movs r6, #0 +_0801FEA8: + add r5, sb + mov r2, r8 + subs r4, r4, r2 + asrs r1, r5, #0x10 + asrs r2, r4, #0x10 + adds r0, r7, #0 + bl sub_0801FDE4 + cmp r0, #0 + beq _0801FE7E + adds r6, #1 + cmp r6, #7 + bls _0801FEA8 + movs r0, #1 +_0801FEC4: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801FECC: .4byte gUnk_020000B0 +_0801FED0: .4byte gUnk_080C9160 + + thumb_func_start sub_0801FED4 +sub_0801FED4: @ 0x0801FED4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + bne _0801FEEA + adds r1, r4, #0 + adds r1, #0x74 + movs r0, #1 + strh r0, [r1] +_0801FEEA: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r2, #0xf + adds r1, r2, #0 + ands r1, r0 + lsls r1, r1, #5 + strh r1, [r4, #0x24] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0801FF28 + ldrb r1, [r4, #0xf] + adds r0, r1, #1 + strb r0, [r4, #0xf] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _0801FF4E + ldr r0, _0801FF24 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_0800132C + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 + b _0801FF4E + .align 2, 0 +_0801FF24: .4byte gUnk_020000B0 +_0801FF28: + adds r0, r1, #0 + adds r0, #0x40 + strh r0, [r4, #0x24] + ldrb r1, [r4, #0xf] + adds r0, r1, #1 + strb r0, [r4, #0xf] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + bne _0801FF4E + ldr r0, _0801FF58 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_0800132C + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 +_0801FF4E: + adds r0, r4, #0 + bl sub_080AEF88 + pop {r4, pc} + .align 2, 0 +_0801FF58: .4byte gUnk_020000B0 + + thumb_func_start sub_0801FF5C +sub_0801FF5C: @ 0x0801FF5C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0801FF84 + ldr r1, _0801FF80 @ =gUnk_080CA570 + adds r0, r4, #0 + bl sub_0800129E + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + b _0801FF94 + .align 2, 0 +_0801FF80: .4byte gUnk_080CA570 +_0801FF84: + ldr r0, _0801FF98 @ =gUnk_080CA588 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_0801FF94: + pop {r4, pc} + .align 2, 0 +_0801FF98: .4byte gUnk_080CA588 + + thumb_func_start sub_0801FF9C +sub_0801FF9C: @ 0x0801FF9C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0801FFD4 @ =gUnk_080CA590 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + beq _0801FFD2 + ldr r2, _0801FFD8 @ =gUnk_080CA5B8 + ldrb r1, [r4, #0xf] + adds r0, r1, #1 + strb r0, [r4, #0xf] + movs r0, #0x30 + ands r0, r1 + lsrs r0, r0, #4 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r4, #0x36] +_0801FFD2: + pop {r4, pc} + .align 2, 0 +_0801FFD4: .4byte gUnk_080CA590 +_0801FFD8: .4byte gUnk_080CA5B8 + + thumb_func_start sub_0801FFDC +sub_0801FFDC: @ 0x0801FFDC + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r4, #0 + adds r6, #0x82 + ldrb r0, [r6] + cmp r0, #0 + beq _08020068 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + cmp r1, #0x94 + bne _08020018 + movs r0, #3 + movs r1, #1 + bl sub_0804AA60 + adds r5, r0, #0 + cmp r5, #0 + beq _08020010 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FA24 + ldrh r0, [r5, #0x36] + subs r0, #8 + strh r0, [r5, #0x36] +_08020010: + movs r0, #0 + strb r0, [r6] + movs r0, #2 + b _0802001E +_08020018: + cmp r1, #0x9b + bne _08020042 + movs r0, #1 +_0802001E: + strb r0, [r4, #0x14] + movs r0, #5 + strb r0, [r4, #0xc] + movs r1, #0 + movs r0, #0x80 + strh r0, [r4, #0x24] + adds r2, r4, #0 + adds r2, #0x3d + movs r0, #0xe2 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x81 + strb r1, [r0] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 + b _08020068 +_08020042: + cmp r1, #0x80 + bne _08020068 + ldrb r0, [r4, #0x14] + cmp r0, #0 + bne _08020068 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + strh r1, [r4, #0x24] + movs r0, #0xff + strb r0, [r4, #0x15] + adds r1, r4, #0 + adds r1, #0x83 + movs r0, #0x78 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08004274 +_08020068: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0802007A + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0802007A: + ldr r1, _08020084 @ =gUnk_080CA570 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, r5, r6, pc} + .align 2, 0 +_08020084: .4byte gUnk_080CA570 + + thumb_func_start sub_08020088 +sub_08020088: @ 0x08020088 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #2 + bhi _0802009C + adds r0, r4, #0 + bl sub_0806F520 + cmp r0, #0 + beq _080200AC +_0802009C: + ldr r0, _080200B0 @ =gUnk_080CA5BC + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_080200AC: + pop {r4, pc} + .align 2, 0 +_080200B0: .4byte gUnk_080CA5BC + + thumb_func_start sub_080200B4 +sub_080200B4: @ 0x080200B4 + push {lr} + adds r2, r0, #0 + movs r1, #1 + strb r1, [r2, #0xd] + movs r0, #0x3c + strb r0, [r2, #0x1d] + ldrb r3, [r2, #0x14] + cmp r3, #0 + bne _080200E2 + strb r1, [r2, #0x14] + movs r0, #5 + strb r0, [r2, #0xc] + adds r1, r2, #0 + adds r1, #0x3f + movs r0, #0x71 + strb r0, [r1] + adds r0, r2, #0 + adds r0, #0x81 + strb r3, [r0] + ldrb r1, [r2, #0x14] + adds r0, r2, #0 + bl sub_08004260 +_080200E2: + pop {pc} + + thumb_func_start sub_080200E4 +sub_080200E4: @ 0x080200E4 + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_080200EC +sub_080200EC: @ 0x080200EC + push {lr} + bl sub_0806F3E4 + pop {pc} + + thumb_func_start sub_080200F4 +sub_080200F4: @ 0x080200F4 + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + bx lr + .align 2, 0 + + thumb_func_start nullsub_5 +nullsub_5: @ 0x08020100 + bx lr + .align 2, 0 + + thumb_func_start sub_08020104 +sub_08020104: @ 0x08020104 + push {lr} + adds r2, r0, #0 + ldrb r3, [r2, #0x10] + movs r0, #0x80 + ands r0, r3 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _08020128 + movs r0, #0x80 + orrs r0, r3 + strb r0, [r2, #0x10] + adds r2, #0x3a + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 + strb r0, [r2] + b _0802012E +_08020128: + adds r0, r2, #0 + adds r0, #0x45 + strb r1, [r0] +_0802012E: + pop {pc} + + thumb_func_start sub_08020130 +sub_08020130: @ 0x08020130 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r5, #1 + strb r5, [r4, #0xc] + movs r0, #0x10 + strb r0, [r4, #0xe] + bl sub_08000E50 + strb r0, [r4, #0xf] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] + movs r0, #0x12 + strb r0, [r4, #0x1c] + bl sub_08000E50 + ands r0, r5 + movs r1, #0xfe + cmp r0, #0 + beq _08020162 + movs r1, #2 +_08020162: + adds r0, r4, #0 + adds r0, #0x80 + strb r1, [r0] + adds r0, #1 + strb r5, [r0] + adds r0, #1 + strb r5, [r0] + movs r0, #0 + strb r0, [r4, #0x14] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08020180 +sub_08020180: @ 0x08020180 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x83 + ldrb r0, [r5] + cmp r0, #0 + beq _08020192 + subs r0, #1 + strb r0, [r5] +_08020192: + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _080201D4 + ldrb r0, [r5] + cmp r0, #0 + bne _080201D4 + ldrb r1, [r4, #0xf] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _080201D4 + ldr r0, _0802021C @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + movs r2, #0x30 + bl sub_08049F1C + cmp r0, #0 + beq _080201D4 + movs r0, #2 + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + strb r0, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + movs r0, #0xa0 + strh r0, [r4, #0x24] +_080201D4: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802020C + movs r0, #0x10 + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_08020604 + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + cmp r1, #0 + bne _0802020C + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + movs r2, #0xfe + cmp r1, #0 + beq _08020206 + movs r2, #2 +_08020206: + adds r0, r4, #0 + adds r0, #0x80 + strb r2, [r0] +_0802020C: + adds r0, r4, #0 + bl sub_080AEFE0 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, r5, pc} + .align 2, 0 +_0802021C: .4byte gUnk_020000B0 + + thumb_func_start sub_08020220 +sub_08020220: @ 0x08020220 + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _08020284 + ldrb r0, [r5, #0xe] + subs r1, r0, #1 + strb r1, [r5, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + beq _0802024C + lsrs r0, r0, #0x1c + movs r1, #3 + ands r0, r1 + movs r1, #4 + subs r1, r1, r0 + adds r0, r5, #0 + bl sub_08004276 + b _08020292 +_0802024C: + movs r0, #3 + strb r0, [r5, #0xc] + movs r0, #0x78 + strb r0, [r5, #0xe] + movs r0, #0xc0 + strh r0, [r5, #0x24] + ldr r0, _0802027C @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r5, #0 + bl sub_080045C4 + adds r4, r0, #0 + bl sub_08000E50 + ldr r2, _08020280 @ =gUnk_080CA5D4 + movs r1, #1 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + adds r0, r0, r4 + movs r1, #0x1f + ands r0, r1 + strb r0, [r5, #0x15] + b _0802028A + .align 2, 0 +_0802027C: .4byte gUnk_020000B0 +_08020280: .4byte gUnk_080CA5D4 +_08020284: + adds r0, r5, #0 + bl sub_080205F8 +_0802028A: + adds r0, r5, #0 + movs r1, #4 + bl sub_08004276 +_08020292: + pop {r4, r5, pc} + + thumb_func_start sub_08020294 +sub_08020294: @ 0x08020294 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _080202F8 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080202B4 + adds r0, r4, #0 + bl sub_080205F8 +_080202B4: + ldrb r1, [r4, #0xe] + cmp r1, #0x3c + bls _080202E6 + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080202C8 + ldrh r0, [r4, #0x24] + adds r0, #4 + strh r0, [r4, #0x24] +_080202C8: + ldr r0, _080202F0 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _080202E6 + ldr r0, _080202F4 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 +_080202E6: + adds r0, r4, #0 + bl sub_080AEFE0 + b _080202FE + .align 2, 0 +_080202F0: .4byte gUnk_030010A0 +_080202F4: .4byte gUnk_020000B0 +_080202F8: + adds r0, r4, #0 + bl sub_080205F8 +_080202FE: + adds r0, r4, #0 + movs r1, #4 + bl sub_08004276 + pop {r4, pc} + + thumb_func_start sub_08020308 +sub_08020308: @ 0x08020308 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r1, r0, #1 + strb r1, [r4, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _08020332 + movs r0, #1 + strb r0, [r4, #0xc] + strb r0, [r4, #0xe] + movs r0, #0x80 + strh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x83 + movs r0, #0x78 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08004274 + b _0802034E +_08020332: + movs r0, #1 + ands r1, r0 + cmp r1, #0 + beq _08020340 + ldrh r0, [r4, #0x24] + subs r0, #8 + strh r0, [r4, #0x24] +_08020340: + adds r0, r4, #0 + bl sub_080AEFE0 + adds r0, r4, #0 + movs r1, #4 + bl sub_08004276 +_0802034E: + pop {r4, pc} + + thumb_func_start sub_08020350 +sub_08020350: @ 0x08020350 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x14] + cmp r0, #2 + beq _08020398 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #0 + bne _0802037C + movs r0, #6 + strb r0, [r4, #0xc] + movs r0, #0xf0 + strb r0, [r4, #0xe] + movs r0, #0xa + strb r0, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x71 + strb r0, [r1] +_0802037C: + ldrb r0, [r4, #0x15] + cmp r0, #0xff + bne _0802038A + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + strb r0, [r4, #0x15] +_0802038A: + adds r0, r4, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_08004274 + b _080203BE +_08020398: + movs r1, #0xe0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _080203BE + movs r0, #7 + strb r0, [r4, #0xc] + movs r0, #0x96 + strb r0, [r4, #0xe] + movs r0, #0xa + strb r0, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x71 + strb r0, [r1] +_080203BE: + pop {r4, pc} + + thumb_func_start sub_080203C0 +sub_080203C0: @ 0x080203C0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _080203DC + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080203DC + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_080203DC: + adds r0, r4, #0 + bl sub_0800442E + cmp r0, #0 + bne _080203F2 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08020418 +_080203F2: + movs r0, #9 + strb r0, [r4, #0xc] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_0804AA1C + movs r0, #5 + strb r0, [r4, #0x14] + adds r0, r4, #0 + movs r1, #5 + bl sub_08004260 +_08020418: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802041C +sub_0802041C: @ 0x0802041C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _08020438 + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08020438 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08020438: + adds r0, r4, #0 + bl sub_0800442E + cmp r0, #0 + bne _0802044E + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08020466 +_0802044E: + movs r0, #8 + strb r0, [r4, #0xc] + movs r0, #0xf0 + strb r0, [r4, #0xe] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_0804AA1C +_08020466: + pop {r4, pc} + + thumb_func_start sub_08020468 +sub_08020468: @ 0x08020468 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080204A6 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080204A2 + movs r0, #9 + strb r0, [r4, #0xc] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] + movs r0, #4 + strb r0, [r4, #0x14] + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 + b _080204A6 +_080204A2: + movs r0, #1 + strb r0, [r4, #0xe] +_080204A6: + adds r5, r4, #0 + adds r5, #0x5a + ldrb r1, [r5] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080204C4 + movs r0, #0xfd + ands r0, r1 + strb r0, [r5] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] +_080204C4: + ldrb r1, [r5] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080204D6 + adds r0, r4, #0 + bl sub_0800442E + b _080204DC +_080204D6: + adds r0, r4, #0 + bl sub_080AEF88 +_080204DC: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080204E0 +sub_080204E0: @ 0x080204E0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802051A + movs r2, #0 + movs r1, #1 + strb r1, [r4, #0xc] + adds r3, r4, #0 + adds r3, #0x3f + movs r0, #0x70 + strb r0, [r3] + adds r0, r4, #0 + adds r0, #0x82 + strb r1, [r0] + subs r0, #1 + strb r1, [r0] + strb r2, [r4, #0x14] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + b _0802053A +_0802051A: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0802052A + adds r0, r4, #0 + bl sub_0800442E + b _0802053A +_0802052A: + movs r1, #0xe0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + adds r0, r4, #0 + bl sub_080AEF88 +_0802053A: + pop {r4, pc} + + thumb_func_start sub_0802053C +sub_0802053C: @ 0x0802053C + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xf0 + strb r0, [r4, #0xe] + movs r0, #0x28 + strb r0, [r4, #0xf] + ldrb r0, [r4, #0x18] + movs r2, #4 + rsbs r2, r2, #0 + ands r2, r0 + orrs r2, r1 + ldrb r3, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + movs r3, #0x40 + orrs r0, r3 + strb r0, [r4, #0x19] + ldrb r0, [r4, #0x1b] + ands r1, r0 + orrs r1, r3 + strb r1, [r4, #0x1b] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r2, r0 + strb r2, [r4, #0x18] + movs r0, #0x20 + strh r0, [r4, #0x24] + bl sub_08000E50 + movs r1, #0x10 + ands r0, r1 + adds r0, #8 + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 + pop {r4, pc} + + thumb_func_start sub_08020590 +sub_08020590: @ 0x08020590 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r1, r0, #1 + strb r1, [r4, #0xe] + movs r5, #0xff + lsls r0, r1, #0x18 + cmp r0, #0 + bne _080205AE + adds r0, r4, #0 + bl sub_0805E7BC + b _080205F2 +_080205AE: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x3b + bhi _080205C8 + ldrb r2, [r4, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] +_080205C8: + ldr r0, [r4, #0x34] + ldr r1, _080205F4 @ =0xFFFF4000 + adds r0, r0, r1 + str r0, [r4, #0x34] + adds r0, r4, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r5 + cmp r0, #0 + bne _080205F2 + movs r0, #0x28 + strb r0, [r4, #0xf] + bl sub_08000E50 + movs r1, #0x10 + ands r0, r1 + adds r0, #8 + strb r0, [r4, #0x15] +_080205F2: + pop {r4, r5, pc} + .align 2, 0 +_080205F4: .4byte 0xFFFF4000 + + thumb_func_start sub_080205F8 +sub_080205F8: @ 0x080205F8 + movs r1, #4 + strb r1, [r0, #0xc] + movs r1, #0x3c + strb r1, [r0, #0xe] + bx lr + .align 2, 0 + + thumb_func_start sub_08020604 +sub_08020604: @ 0x08020604 + push {r4, lr} + adds r4, r0, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _08020624 + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + cmp r1, #0 + beq _08020624 + adds r0, r4, #0 + bl sub_08049EE4 + b _08020632 +_08020624: + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + ldrb r1, [r4, #0x15] + adds r0, r0, r1 + movs r1, #0x1f + ands r0, r1 +_08020632: + strb r0, [r4, #0x15] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08020638 +sub_08020638: @ 0x08020638 + push {lr} + ldr r1, _08020644 @ =gUnk_080CA66C + bl sub_0800129E + pop {pc} + .align 2, 0 +_08020644: .4byte gUnk_080CA66C + + thumb_func_start sub_08020648 +sub_08020648: @ 0x08020648 + push {r4, lr} + adds r4, r0, #0 + bl sub_08020AD0 + ldr r1, _08020664 @ =gUnk_080CA684 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_08020664: .4byte gUnk_080CA684 + + thumb_func_start sub_08020668 +sub_08020668: @ 0x08020668 + push {r4, r5, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x3f + ldrb r0, [r2] + cmp r0, #0x22 + bne _080206A2 + adds r1, r4, #0 + adds r1, #0x45 + ldrb r0, [r1] + cmp r0, #0xff + beq _080206A2 + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + movs r0, #0xff + strb r0, [r4, #0x15] + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r1] + movs r0, #0x23 + strb r0, [r2] + ldrb r1, [r4, #0x14] + adds r1, #8 + adds r0, r4, #0 + bl sub_08004260 +_080206A2: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #0x80 + beq _080206D0 + ldrb r0, [r4, #0xc] + subs r0, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _080206D0 + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0xb4 + strb r0, [r4, #0xe] + movs r0, #0xff + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x14] + adds r1, #0x10 + adds r0, r4, #0 + bl sub_08004260 +_080206D0: + ldrb r0, [r5] + cmp r0, #0x93 + bne _080206DC + adds r0, r4, #0 + bl sub_08020648 +_080206DC: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080206E0 +sub_080206E0: @ 0x080206E0 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08020AD0 + cmp r0, #0 + beq _080206F6 + adds r1, r4, #0 + adds r1, #0x42 + movs r0, #0 + strb r0, [r1] + b _08020730 +_080206F6: + adds r0, r4, #0 + bl sub_08020B6C + cmp r0, #0 + beq _0802072A + adds r1, r4, #0 + adds r1, #0x42 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + adds r5, r4, #0 + adds r5, #0x3e + ldrb r1, [r5] + adds r0, r4, #0 + movs r2, #0xa + bl sub_080AE58C + adds r0, r4, #0 + adds r0, #0x46 + ldrh r1, [r0] + ldrb r2, [r5] + adds r0, r4, #0 + movs r3, #0xa + bl sub_080AE7E8 + b _08020730 +_0802072A: + adds r0, r4, #0 + bl sub_08001324 +_08020730: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08020734 +sub_08020734: @ 0x08020734 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #2 + bhi _08020764 + adds r0, r4, #0 + bl sub_0806F520 + cmp r0, #0 + bne _08020764 + movs r0, #4 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r0, #0xff + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x14] + adds r1, #0x10 + adds r0, r4, #0 + bl sub_08004260 + b _08020774 +_08020764: + ldr r0, _08020778 @ =gUnk_080CA6A4 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_08020774: + pop {r4, pc} + .align 2, 0 +_08020778: .4byte gUnk_080CA6A4 + + thumb_func_start sub_0802077C +sub_0802077C: @ 0x0802077C + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x3c + strb r1, [r0, #0x1d] + bx lr + .align 2, 0 + + thumb_func_start sub_08020788 +sub_08020788: @ 0x08020788 + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_08020790 +sub_08020790: @ 0x08020790 + push {lr} + bl sub_0806F3E4 + pop {pc} + + thumb_func_start sub_08020798 +sub_08020798: @ 0x08020798 + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + bx lr + .align 2, 0 + + thumb_func_start nullsub_6 +nullsub_6: @ 0x080207A4 + bx lr + .align 2, 0 + + thumb_func_start sub_080207A8 +sub_080207A8: @ 0x080207A8 + push {lr} + movs r3, #4 + movs r1, #4 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x10] + movs r1, #0x80 + orrs r1, r2 + strb r1, [r0, #0x10] + movs r1, #0x29 + adds r1, r1, r0 + mov ip, r1 + ldrb r2, [r1] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r3 + mov r2, ip + strb r1, [r2] + adds r3, r0, #0 + adds r3, #0x3a + ldrb r2, [r3] + movs r1, #0xfb + ands r1, r2 + strb r1, [r3] + ldrb r1, [r0, #0x15] + movs r2, #0x10 + eors r1, r2 + strb r1, [r0, #0x15] + movs r1, #0xc0 + lsls r1, r1, #9 + str r1, [r0, #0x20] + movs r1, #0x80 + strh r1, [r0, #0x24] + ldrb r1, [r0, #0x14] + adds r1, #0x10 + bl sub_08004260 + pop {pc} + + thumb_func_start sub_080207F4 +sub_080207F4: @ 0x080207F4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r1, #0 + movs r0, #0x30 + strb r0, [r4, #0x16] + movs r0, #0x12 + strb r0, [r4, #0x1c] + adds r0, r4, #0 + adds r0, #0x84 + strb r1, [r0] + bl sub_08000E50 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_08020A30 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08020820 +sub_08020820: @ 0x08020820 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r5, #1 + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _0802084A + movs r0, #0xfe + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_080AEF88 + cmp r0, #0 + bne _0802084A + strb r5, [r4, #0xe] +_0802084A: + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08020872 + movs r0, #0xef + ands r0, r1 + strb r0, [r2] + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08020872 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] +_08020872: + pop {r4, r5, pc} + + thumb_func_start sub_08020874 +sub_08020874: @ 0x08020874 + push {lr} + ldr r2, _08020888 @ =gUnk_080CA6BC + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08020888: .4byte gUnk_080CA6BC + + thumb_func_start sub_0802088C +sub_0802088C: @ 0x0802088C + movs r1, #1 + strb r1, [r0, #0xd] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + ldr r1, _080208B0 @ =gUnk_03001160 + ldrb r1, [r1, #0x14] + adds r2, r0, #0 + adds r2, #0x85 + strb r1, [r2] + adds r0, #0x29 + ldrb r2, [r0] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + bx lr + .align 2, 0 +_080208B0: .4byte gUnk_03001160 + + thumb_func_start sub_080208B4 +sub_080208B4: @ 0x080208B4 + push {r4, r5, lr} + adds r2, r0, #0 + adds r4, r2, #0 + adds r4, #0x85 + ldrb r0, [r4] + ldr r5, _080208EC @ =gUnk_03001160 + ldrb r1, [r5, #0x14] + subs r0, r0, r1 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r0, #0 + beq _080208E6 + ldrb r0, [r2, #0x14] + adds r0, r0, r1 + movs r1, #3 + ands r0, r1 + strb r0, [r2, #0x14] + ldrb r1, [r2, #0x14] + adds r1, #0x10 + adds r0, r2, #0 + bl sub_08004260 +_080208E6: + ldrb r0, [r5, #0x14] + strb r0, [r4] + pop {r4, r5, pc} + .align 2, 0 +_080208EC: .4byte gUnk_03001160 + + thumb_func_start sub_080208F0 +sub_080208F0: @ 0x080208F0 + adds r0, #0x29 + ldrb r2, [r0] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #0x18 + orrs r1, r2 + strb r1, [r0] + bx lr + .align 2, 0 + + thumb_func_start sub_08020904 +sub_08020904: @ 0x08020904 + push {lr} + movs r1, #4 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x10] + movs r1, #0x80 + orrs r1, r2 + strb r1, [r0, #0x10] + movs r1, #0xff + strb r1, [r0, #0x15] + ldrb r1, [r0, #0x14] + adds r1, #0x10 + bl sub_08004260 + pop {pc} + + thumb_func_start sub_08020920 +sub_08020920: @ 0x08020920 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08020936 + adds r0, r1, #0 + bl sub_08020A30 +_08020936: + pop {pc} + + thumb_func_start sub_08020938 +sub_08020938: @ 0x08020938 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r5, #0x80 + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + bne _08020950 + adds r0, r4, #0 + bl sub_08004274 +_08020950: + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #0 + bne _08020980 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08020978 + movs r0, #5 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x14] + adds r1, #0xc + adds r0, r4, #0 + bl sub_08004260 +_08020978: + adds r0, r4, #0 + bl sub_08078930 + b _0802099C +_08020980: + cmp r0, #1 + bne _0802098C + movs r0, #0x82 + lsls r0, r0, #1 + bl sub_08004488 +_0802098C: + ldrb r1, [r4, #0x15] + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + bne _0802099C + adds r0, r4, #0 + bl sub_080AEFE0 +_0802099C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080209A0 +sub_080209A0: @ 0x080209A0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080209E2 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x22 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08020A30 + ldrb r0, [r4, #0x14] + lsls r0, r0, #3 + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 + b _080209F0 +_080209E2: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080209F0 + adds r0, r4, #0 + bl sub_08078930 +_080209F0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080209F4 +sub_080209F4: @ 0x080209F4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xe0 + lsls r1, r1, #5 + bl sub_08003FC4 + cmp r0, #0 + bne _08020A14 + movs r1, #7 + movs r0, #7 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + orrs r0, r1 + strb r0, [r2] +_08020A14: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #0 + bne _08020A24 + adds r0, r4, #0 + bl sub_08004274 +_08020A24: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08020A28 +sub_08020A28: @ 0x08020A28 + push {lr} + bl sub_08004274 + pop {pc} + + thumb_func_start sub_08020A30 +sub_08020A30: @ 0x08020A30 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x84 + ldrb r0, [r5] + cmp r0, #1 + bhi _08020A68 + bl sub_08000E50 + ldr r2, _08020A64 @ =gUnk_080CA6CC + movs r1, #7 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4, #0xe] + cmp r0, #0 + bne _08020A68 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + b _08020A7A + .align 2, 0 +_08020A64: .4byte gUnk_080CA6CC +_08020A68: + movs r0, #0 + movs r1, #1 + strb r1, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x84 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08020A7C +_08020A7A: + pop {r4, r5, pc} + + thumb_func_start sub_08020A7C +sub_08020A7C: @ 0x08020A7C + push {r4, r5, r6, lr} + adds r6, r0, #0 + bl sub_08000E50 + ldrb r5, [r6, #0x15] + ldr r4, _08020ACC @ =gUnk_080CA6D4 + movs r1, #3 + bl __modsi3 + adds r0, r0, r4 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r5, r5, r0 + movs r4, #0x18 + ands r5, r4 + adds r0, r6, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _08020ABA + adds r0, r6, #0 + bl sub_08049EE4 + adds r0, #4 + ands r0, r4 + movs r1, #0x10 + eors r1, r5 + cmp r1, r0 + bne _08020ABA + adds r5, r1, #0 +_08020ABA: + strb r5, [r6, #0x15] + lsrs r0, r5, #3 + strb r0, [r6, #0x14] + ldrb r1, [r6, #0x14] + adds r0, r6, #0 + bl sub_08004260 + pop {r4, r5, r6, pc} + .align 2, 0 +_08020ACC: .4byte gUnk_080CA6D4 + + thumb_func_start sub_08020AD0 +sub_08020AD0: @ 0x08020AD0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_08020B6C + cmp r0, #0 + beq _08020B68 + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08020B68 + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r3, _08020B5C @ =gUnk_03000BF0 + ldrh r1, [r3, #6] + subs r0, r0, r1 + asrs r5, r0, #4 + movs r2, #0x3f + ands r5, r2 + movs r1, #0x32 + ldrsh r0, [r4, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r5, r0 + adds r6, r4, #0 + adds r6, #0x38 + ldrb r1, [r6] + adds r0, r5, #0 + bl sub_080002B0 + lsls r0, r0, #0x10 + ldr r1, _08020B60 @ =0xFF8F0000 + adds r0, r0, r1 + lsrs r0, r0, #0x10 + cmp r0, #1 + bhi _08020B68 + movs r0, #6 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrh r2, [r4, #0x2e] + movs r1, #0x10 + rsbs r1, r1, #0 + adds r0, r1, #0 + ands r0, r2 + adds r0, #8 + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x32] + ands r1, r0 + adds r1, #0xd + strh r1, [r4, #0x32] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + ldrb r1, [r4, #0x14] + adds r1, #0x14 + adds r0, r4, #0 + bl sub_08004260 + ldr r0, _08020B64 @ =0x00004034 + ldrb r2, [r6] + adds r1, r5, #0 + bl sub_0800015E + movs r0, #1 + b _08020B6A + .align 2, 0 +_08020B5C: .4byte gUnk_03000BF0 +_08020B60: .4byte 0xFF8F0000 +_08020B64: .4byte 0x00004034 +_08020B68: + movs r0, #0 +_08020B6A: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08020B6C +sub_08020B6C: @ 0x08020B6C + push {lr} + adds r0, #0x58 + ldrb r0, [r0] + subs r0, #0x10 + cmp r0, #3 + bls _08020B7C + movs r0, #0 + b _08020B7E +_08020B7C: + movs r0, #1 +_08020B7E: + pop {pc} + + thumb_func_start sub_08020B80 +sub_08020B80: @ 0x08020B80 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08020B9C @ =gUnk_080CAA98 + bl sub_0800129E + movs r3, #0x16 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, pc} + .align 2, 0 +_08020B9C: .4byte gUnk_080CAA98 + + thumb_func_start sub_08020BA0 +sub_08020BA0: @ 0x08020BA0 + push {lr} + ldr r2, _08020BB4 @ =gUnk_080CAAB0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08020BB4: .4byte gUnk_080CAAB0 + + thumb_func_start sub_08020BB8 +sub_08020BB8: @ 0x08020BB8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + movs r2, #0x7f + adds r1, r2, #0 + ands r1, r0 + cmp r1, #0x1c + beq _08020BE0 + cmp r1, #0x1c + bgt _08020BD4 + cmp r1, #0x16 + beq _08020C24 + b _08020D32 +_08020BD4: + cmp r1, #0x4b + beq _08020C68 + cmp r1, #0x4c + bne _08020BDE + b _08020CF0 +_08020BDE: + b _08020D32 +_08020BE0: + movs r0, #0xb + strb r0, [r4, #0xc] + ldr r1, _08020C20 @ =gUnk_080CAB0C + ldrb r0, [r4, #0xa] + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x51 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + movs r2, #0x10 + eors r2, r0 + adds r2, #4 + movs r0, #0x18 + ands r2, r0 + asrs r2, r2, #3 + adds r0, r4, #0 + movs r1, #8 + bl sub_08021218 + adds r0, r4, #0 + bl sub_08021588 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC + b _08020CE2 + .align 2, 0 +_08020C20: .4byte gUnk_080CAB0C +_08020C24: + movs r0, #0xb + strb r0, [r4, #0xc] + ldr r1, _08020C64 @ =gUnk_080CAB10 + ldrb r0, [r4, #0xa] + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x51 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + movs r2, #0x10 + eors r2, r0 + adds r2, #4 + movs r0, #0x18 + ands r2, r0 + asrs r2, r2, #3 + adds r0, r4, #0 + movs r1, #8 + bl sub_08021218 + adds r0, r4, #0 + bl sub_08021588 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC + b _08020CE2 + .align 2, 0 +_08020C64: .4byte gUnk_080CAB10 +_08020C68: + ldrb r0, [r4, #0xc] + adds r6, r4, #0 + adds r6, #0x45 + adds r5, r4, #0 + adds r5, #0x78 + cmp r0, #0xd + beq _08020D58 + cmp r0, #0xf + beq _08020D58 + cmp r0, #0x13 + beq _08020D58 + cmp r0, #0x12 + beq _08020D58 + adds r0, r4, #0 + adds r0, #0x79 + ldrb r0, [r0] + cmp r0, #4 + blt _08020CC0 + cmp r0, #6 + ble _08020CAC + cmp r0, #0xc + bgt _08020CC0 + cmp r0, #8 + blt _08020CC0 + ldr r0, _08020CA8 @ =gUnk_080CAB04 + ldrb r1, [r4, #0xa] + adds r1, r1, r0 + ldrb r0, [r1] + adds r1, r4, #0 + adds r1, #0x7a + b _08020CC6 + .align 2, 0 +_08020CA8: .4byte gUnk_080CAB04 +_08020CAC: + ldr r0, _08020CBC @ =gUnk_080CAB00 + ldrb r1, [r4, #0xa] + adds r1, r1, r0 + ldrb r0, [r1] + adds r1, r4, #0 + adds r1, #0x7a + b _08020CC6 + .align 2, 0 +_08020CBC: .4byte gUnk_080CAB00 +_08020CC0: + adds r1, r4, #0 + adds r1, #0x7a + movs r0, #0 +_08020CC6: + strb r0, [r1] + movs r0, #0xa + strb r0, [r4, #0xc] + ldrb r2, [r4, #0x14] + adds r0, r4, #0 + movs r1, #0xb + bl sub_08021218 + ldr r0, _08020CEC @ =0x0000015D + bl sub_08004488 + adds r0, r4, #0 + bl sub_08021588 +_08020CE2: + adds r6, r4, #0 + adds r6, #0x45 + adds r5, r4, #0 + adds r5, #0x78 + b _08020D58 + .align 2, 0 +_08020CEC: .4byte 0x0000015D +_08020CF0: + ldrb r0, [r4, #0xc] + adds r6, r4, #0 + adds r6, #0x45 + adds r5, r4, #0 + adds r5, #0x78 + cmp r0, #0xf + bne _08020D58 + movs r1, #0xff + ldr r0, [r4, #0x54] + cmp r0, #0 + beq _08020D0E + adds r0, #0x41 + ldrb r0, [r0] + adds r1, r2, #0 + ands r1, r0 +_08020D0E: + cmp r1, #2 + bne _08020D28 + ldr r0, _08020D24 @ =gUnk_080CAB08 + ldrb r1, [r4, #0xa] + adds r1, r1, r0 + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_080213D0 + b _08020D58 + .align 2, 0 +_08020D24: .4byte gUnk_080CAB08 +_08020D28: + adds r0, r4, #0 + movs r1, #0 + bl sub_080213D0 + b _08020D58 +_08020D32: + adds r2, r4, #0 + adds r2, #0x45 + adds r0, r4, #0 + adds r0, #0x78 + ldrb r1, [r2] + adds r6, r2, #0 + adds r5, r0, #0 + ldrb r0, [r5] + cmp r1, r0 + beq _08020D58 + adds r0, r4, #0 + bl sub_08021588 + adds r0, r4, #0 + bl sub_08021390 + adds r0, r4, #0 + bl sub_0804AA1C +_08020D58: + ldrb r0, [r6] + strb r0, [r5] + ldr r1, _08020D68 @ =gUnk_080CAA98 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, r5, r6, pc} + .align 2, 0 +_08020D68: .4byte gUnk_080CAA98 + + thumb_func_start nullsub_129 +nullsub_129: @ 0x08020D6C + bx lr + .align 2, 0 + + thumb_func_start sub_08020D70 +sub_08020D70: @ 0x08020D70 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x75 + strb r1, [r0] + subs r0, #0x30 + ldrb r1, [r0] + adds r0, #0x33 + strb r1, [r0] + movs r0, #0xff + strb r0, [r4, #0x14] + adds r0, r4, #0 + movs r1, #0 + movs r2, #2 + bl sub_08021218 + pop {r4, pc} + + thumb_func_start sub_08020D9C +sub_08020D9C: @ 0x08020D9C + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _08020DB0 + adds r0, r4, #0 + bl sub_080213F0 +_08020DB0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08020DB4 +sub_08020DB4: @ 0x08020DB4 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08020DD0 + adds r0, r4, #0 + bl sub_08021390 +_08020DD0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08020DD4 +sub_08020DD4: @ 0x08020DD4 + push {r4, lr} + adds r4, r0, #0 + bl sub_080214FC + cmp r0, #0 + beq _08020DE8 + adds r0, r4, #0 + bl sub_080213F0 + b _08020E26 +_08020DE8: + adds r1, r4, #0 + adds r1, #0x76 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08020E08 + movs r0, #5 + strb r0, [r4, #0xc] + ldrb r2, [r4, #0x14] + adds r0, r4, #0 + movs r1, #5 + bl sub_08021218 + b _08020E26 +_08020E08: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08020E1A + adds r0, r4, #0 + bl sub_08021540 +_08020E1A: + adds r0, r4, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_080042B8 +_08020E26: + pop {r4, pc} + + thumb_func_start sub_08020E28 +sub_08020E28: @ 0x08020E28 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08020E44 + adds r0, r4, #0 + bl sub_080213B0 +_08020E44: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08020E48 +sub_08020E48: @ 0x08020E48 + push {r4, lr} + adds r4, r0, #0 + bl sub_080214FC + cmp r0, #0 + beq _08020E5C + adds r0, r4, #0 + bl sub_080213F0 + b _08020E76 +_08020E5C: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08020E76 + adds r0, r4, #0 + bl sub_080213B0 +_08020E76: + pop {r4, pc} + + thumb_func_start sub_08020E78 +sub_08020E78: @ 0x08020E78 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08020E94 + adds r0, r4, #0 + bl sub_08021390 +_08020E94: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08020E98 +sub_08020E98: @ 0x08020E98 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #1 + movs r2, #0x38 + bl sub_08049F64 + cmp r0, #0 + beq _08020EF6 + ldr r5, _08020EDC @ =gUnk_020000B0 + ldr r1, [r5] + adds r0, r4, #0 + bl sub_0802169C + cmp r0, #0 + bne _08020ECA + ldr r0, [r5] + adds r1, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_080AEF88 + cmp r0, #0 + bne _08020EE0 +_08020ECA: + movs r0, #8 + strb r0, [r4, #0xc] + ldrb r2, [r4, #0x14] + adds r0, r4, #0 + movs r1, #7 + bl sub_08021218 + b _08020F26 + .align 2, 0 +_08020EDC: .4byte gUnk_020000B0 +_08020EE0: + ldrb r0, [r4, #0x15] + movs r1, #0x10 + eors r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_0802124C + adds r0, r4, #0 + bl sub_08021644 + b _08020F26 +_08020EF6: + ldr r0, _08020F08 @ =gUnk_020000B0 + ldr r1, [r0] + cmp r1, #0 + bne _08020F0C + adds r0, r4, #0 + bl sub_08021414 + b _08020F26 + .align 2, 0 +_08020F08: .4byte gUnk_020000B0 +_08020F0C: + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_0802124C + adds r0, r4, #0 + bl sub_08021644 +_08020F26: + pop {r4, r5, pc} + + thumb_func_start sub_08020F28 +sub_08020F28: @ 0x08020F28 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08020F44 + adds r0, r4, #0 + bl sub_08021400 +_08020F44: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08020F48 +sub_08020F48: @ 0x08020F48 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #1 + movs r2, #0x48 + bl sub_08049F64 + cmp r0, #0 + beq _08020FA4 + ldr r5, _08020F98 @ =gUnk_020000B0 + ldr r1, [r5] + adds r0, r4, #0 + bl sub_08021664 + cmp r0, #0 + beq _08020F9C + ldr r1, [r5] + adds r0, r4, #0 + movs r2, #9 + bl sub_0804A044 + adds r2, r0, #0 + cmp r2, #0xff + beq _08020F9C + movs r0, #0xe + strb r0, [r4, #0xc] + lsrs r2, r2, #3 + adds r0, r4, #0 + movs r1, #0xd + bl sub_08021218 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A98C + cmp r0, #0 + beq _08020FAA + str r4, [r0, #0x50] + str r0, [r4, #0x54] + b _08020FAA + .align 2, 0 +_08020F98: .4byte gUnk_020000B0 +_08020F9C: + adds r0, r4, #0 + bl sub_08021424 + b _08020FAA +_08020FA4: + adds r0, r4, #0 + bl sub_08021390 +_08020FAA: + pop {r4, r5, pc} + + thumb_func_start sub_08020FAC +sub_08020FAC: @ 0x08020FAC + push {lr} + adds r2, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08020FDC + adds r1, r2, #0 + adds r1, #0x7a + ldrb r0, [r1] + cmp r0, #0 + beq _08020FCC + subs r0, #1 + strb r0, [r1] + b _08020FE2 +_08020FCC: + adds r1, r2, #0 + adds r1, #0x3d + movs r0, #0xf8 + strb r0, [r1] + adds r0, r2, #0 + bl sub_08021390 + b _08020FE2 +_08020FDC: + adds r0, r2, #0 + bl sub_080042B8 +_08020FE2: + pop {pc} + + thumb_func_start sub_08020FE4 +sub_08020FE4: @ 0x08020FE4 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802100C + movs r0, #0xc + strb r0, [r4, #0xc] + ldrb r2, [r4, #0x14] + adds r0, r4, #0 + movs r1, #9 + bl sub_08021218 + adds r0, r4, #0 + bl sub_0804AA1C +_0802100C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08021010 +sub_08021010: @ 0x08021010 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08021034 + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x56 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080213F0 +_08021034: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08021038 +sub_08021038: @ 0x08021038 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x54] + cmp r0, #0 + bne _08021066 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #0 + beq _08021066 + adds r0, r4, #0 + movs r1, #0 + movs r2, #0 + bl sub_0804A98C + cmp r0, #0 + beq _0802105E + str r4, [r0, #0x50] + str r0, [r4, #0x54] +_0802105E: + movs r0, #0x87 + lsls r0, r0, #1 + bl sub_08004488 +_08021066: + adds r5, r4, #0 + adds r5, #0x5a + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08021090 + adds r0, r4, #0 + bl sub_08021588 + adds r1, r4, #0 + adds r1, #0x7c + ldrb r0, [r1] + cmp r0, #0 + beq _08021088 + subs r0, #1 + b _080210A2 +_08021088: + adds r0, r4, #0 + bl sub_08021390 + b _080210A4 +_08021090: + adds r0, r4, #0 + bl sub_080042B8 + ldrb r0, [r5] + cmp r0, #4 + bne _080210A4 + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x51 +_080210A2: + strb r0, [r1] +_080210A4: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080210A8 +sub_080210A8: @ 0x080210A8 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080210D4 + movs r0, #0 + strb r0, [r2] + adds r0, r4, #0 + bl sub_08021588 + ldr r0, _080210D0 @ =0x0000015D + bl sub_08004488 + b _080210E2 + .align 2, 0 +_080210D0: .4byte 0x0000015D +_080210D4: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080210E2 + adds r0, r4, #0 + bl sub_08021390 +_080210E2: + pop {r4, pc} + + thumb_func_start sub_080210E4 +sub_080210E4: @ 0x080210E4 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0802111A + movs r0, #0xfe + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #0 + movs r2, #2 + bl sub_0804A98C + cmp r0, #0 + beq _08021112 + str r4, [r0, #0x50] + str r0, [r4, #0x54] +_08021112: + movs r0, #0x87 + lsls r0, r0, #1 + bl sub_08004488 +_0802111A: + adds r0, r4, #0 + bl sub_08021644 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08021154 + adds r0, r4, #0 + bl sub_080AEF88 + cmp r0, #0 + beq _0802114A + ldr r0, [r4, #0x54] + cmp r0, #0 + beq _08021154 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08021154 +_0802114A: + adds r0, r4, #0 + movs r1, #0 + bl sub_080213D0 + b _0802116C +_08021154: + adds r1, r4, #0 + adds r1, #0x76 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0802116C + adds r0, r4, #0 + movs r1, #0 + bl sub_080213D0 +_0802116C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08021170 +sub_08021170: @ 0x08021170 + push {lr} + adds r2, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08021198 + adds r1, r2, #0 + adds r1, #0x7b + ldrb r0, [r1] + cmp r0, #0 + beq _08021190 + subs r0, #1 + strb r0, [r1] + b _0802119E +_08021190: + adds r0, r2, #0 + bl sub_08021390 + b _0802119E +_08021198: + adds r0, r2, #0 + bl sub_080042B8 +_0802119E: + pop {pc} + + thumb_func_start sub_080211A0 +sub_080211A0: @ 0x080211A0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080214FC + cmp r0, #0 + beq _080211B4 + adds r0, r4, #0 + bl sub_08021390 + b _080211CE +_080211B4: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080211CE + adds r0, r4, #0 + bl sub_080213B0 +_080211CE: + pop {r4, pc} + + thumb_func_start sub_080211D0 +sub_080211D0: @ 0x080211D0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0802159C + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080211F2 + adds r0, r4, #0 + bl sub_08021390 +_080211F2: + pop {r4, pc} + + thumb_func_start sub_080211F4 +sub_080211F4: @ 0x080211F4 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_08021600 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08021216 + adds r0, r4, #0 + bl sub_08021390 +_08021216: + pop {r4, pc} + + thumb_func_start sub_08021218 +sub_08021218: @ 0x08021218 + push {r4, lr} + adds r3, r0, #0 + adds r4, r3, #0 + adds r4, #0x74 + ldrb r0, [r4] + cmp r0, r1 + bne _0802122C + ldrb r0, [r3, #0x14] + cmp r0, r2 + beq _08021244 +_0802122C: + strb r2, [r3, #0x14] + strb r1, [r4] + lsls r0, r1, #1 + ldr r1, _08021248 @ =gUnk_080CAB14 + adds r0, r0, r1 + ldrb r1, [r0, #1] + strh r1, [r3, #0x12] + ldrb r1, [r0] + adds r1, r1, r2 + adds r0, r3, #0 + bl sub_080042AC +_08021244: + pop {r4, pc} + .align 2, 0 +_08021248: .4byte gUnk_080CAB14 + + thumb_func_start sub_0802124C +sub_0802124C: @ 0x0802124C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x14] + ldrb r1, [r4, #0x15] + bl sub_08021274 + adds r2, r0, #0 + cmp r2, #0xff + beq _0802126C + adds r0, r4, #0 + adds r0, #0x74 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08021218 + b _08021272 +_0802126C: + adds r0, r4, #0 + bl sub_080042B8 +_08021272: + pop {r4, pc} + + thumb_func_start sub_08021274 +sub_08021274: @ 0x08021274 + push {lr} + adds r2, r0, #0 + movs r0, #7 + ands r0, r1 + subs r0, #3 + cmp r0, #2 + bhi _0802129A + movs r3, #0x18 + adds r0, r1, #0 + ands r0, r3 + lsrs r0, r0, #3 + cmp r0, r2 + beq _080212AA + adds r0, r1, #0 + adds r0, #8 + ands r0, r3 + lsrs r0, r0, #3 + cmp r0, r2 + beq _080212AA +_0802129A: + adds r0, r1, #4 + movs r1, #0x18 + ands r0, r1 + lsrs r1, r0, #3 + cmp r2, r1 + beq _080212AA + adds r0, r1, #0 + b _080212AC +_080212AA: + movs r0, #0xff +_080212AC: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080212B0 +sub_080212B0: @ 0x080212B0 + push {r4, r5, lr} + adds r5, r0, #0 + adds r1, r5, #0 + adds r1, #0x75 + ldrb r0, [r1] + cmp r0, #1 + beq _080212D0 + cmp r0, #2 + beq _080212DC + movs r0, #1 + strb r0, [r1] + ldr r4, _080212CC @ =gUnk_080CAB3A + b _080212E2 + .align 2, 0 +_080212CC: .4byte gUnk_080CAB3A +_080212D0: + movs r0, #2 + strb r0, [r1] + ldr r4, _080212D8 @ =gUnk_080CAB42 + b _080212E2 + .align 2, 0 +_080212D8: .4byte gUnk_080CAB42 +_080212DC: + movs r0, #0 + strb r0, [r1] + ldr r4, _0802131C @ =gUnk_080CAB4A +_080212E2: + bl sub_08000E50 + movs r1, #7 + ands r1, r0 + adds r1, r1, r4 + ldrb r2, [r1] + ldrb r0, [r5, #0xa] + cmp r0, #1 + bhi _08021306 + cmp r2, #2 + bne _08021306 + ldr r4, _08021320 @ =gUnk_080CAB52 + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + adds r1, r1, r4 + ldrb r2, [r1] +_08021306: + movs r0, #0 + str r0, [r5, #0x54] + ldr r1, _08021324 @ =gUnk_080CAB58 + lsls r0, r2, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_0802131C: .4byte gUnk_080CAB4A +_08021320: .4byte gUnk_080CAB52 +_08021324: .4byte gUnk_080CAB58 + + thumb_func_start sub_08021328 +sub_08021328: @ 0x08021328 + push {lr} + movs r1, #0xd + strb r1, [r0, #0xc] + ldr r2, _08021348 @ =gUnk_080CAB68 + ldrb r1, [r0, #0xa] + adds r1, r1, r2 + ldrb r2, [r1] + adds r1, r0, #0 + adds r1, #0x7c + strb r2, [r1] + ldrb r2, [r0, #0x14] + movs r1, #0xc + bl sub_08021218 + pop {pc} + .align 2, 0 +_08021348: .4byte gUnk_080CAB68 + + thumb_func_start sub_0802134C +sub_0802134C: @ 0x0802134C + push {lr} + movs r1, #0xf + strb r1, [r0, #0xc] + ldrb r1, [r0, #0x14] + lsls r1, r1, #3 + strb r1, [r0, #0x15] + movs r1, #0x80 + lsls r1, r1, #2 + strh r1, [r0, #0x24] + adds r2, r0, #0 + adds r2, #0x76 + movs r1, #0x78 + strh r1, [r2] + ldrb r2, [r0, #0x14] + movs r1, #0xe + bl sub_08021218 + pop {pc} + + thumb_func_start sub_08021370 +sub_08021370: @ 0x08021370 + push {lr} + movs r1, #0x12 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x14] + movs r1, #0x10 + bl sub_08021218 + pop {pc} + + thumb_func_start sub_08021380 +sub_08021380: @ 0x08021380 + push {lr} + movs r1, #0x13 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x14] + movs r1, #0x11 + bl sub_08021218 + pop {pc} + + thumb_func_start sub_08021390 +sub_08021390: @ 0x08021390 + push {lr} + movs r1, #7 + strb r1, [r0, #0xc] + movs r1, #0x80 + lsls r1, r1, #2 + strh r1, [r0, #0x24] + adds r2, r0, #0 + adds r2, #0x3f + movs r1, #0x56 + strb r1, [r2] + ldrb r2, [r0, #0x14] + movs r1, #6 + bl sub_08021218 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080213B0 +sub_080213B0: @ 0x080213B0 + push {lr} + movs r1, #3 + strb r1, [r0, #0xc] + movs r1, #1 + strb r1, [r0, #0xe] + movs r1, #0xc0 + strh r1, [r0, #0x24] + adds r2, r0, #0 + adds r2, #0x76 + movs r1, #0xf0 + strh r1, [r2] + ldrb r2, [r0, #0x14] + movs r1, #3 + bl sub_08021218 + pop {pc} + + thumb_func_start sub_080213D0 +sub_080213D0: @ 0x080213D0 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x10 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x7b + strb r1, [r0] + ldrb r2, [r4, #0x14] + adds r0, r4, #0 + movs r1, #0xf + bl sub_08021218 + adds r0, r4, #0 + bl sub_08021588 + pop {r4, pc} + + thumb_func_start sub_080213F0 +sub_080213F0: @ 0x080213F0 + push {lr} + movs r1, #6 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x14] + movs r1, #1 + bl sub_08021218 + pop {pc} + + thumb_func_start sub_08021400 +sub_08021400: @ 0x08021400 + push {lr} + movs r1, #9 + strb r1, [r0, #0xc] + movs r1, #0x60 + strh r1, [r0, #0x24] + ldrb r2, [r0, #0x14] + movs r1, #0xa + bl sub_08021218 + pop {pc} + + thumb_func_start sub_08021414 +sub_08021414: @ 0x08021414 + push {lr} + movs r1, #0x11 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x14] + movs r1, #5 + bl sub_08021218 + pop {pc} + + thumb_func_start sub_08021424 +sub_08021424: @ 0x08021424 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _08021450 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r5, #0 + bl sub_080045C4 + adds r1, r0, #0 + ldrb r0, [r5, #0x14] + bl sub_08021274 + adds r4, r0, #0 + cmp r4, #0xff + beq _08021454 + adds r0, r5, #0 + adds r0, #0x74 + ldrb r1, [r0] + adds r0, r5, #0 + adds r2, r4, #0 + bl sub_08021218 + b _08021456 + .align 2, 0 +_08021450: .4byte gUnk_020000B0 +_08021454: + ldrb r4, [r5, #0x14] +_08021456: + cmp r4, #1 + beq _08021490 + cmp r4, #1 + blo _08021478 + cmp r4, #2 + beq _080214A8 + ldr r0, _08021474 @ =gUnk_020000B0 + ldr r1, [r0] + movs r2, #0x2e + ldrsh r0, [r1, r2] + adds r2, r0, #0 + adds r2, #0x24 + movs r4, #0x32 + ldrsh r3, [r1, r4] + b _080214B8 + .align 2, 0 +_08021474: .4byte gUnk_020000B0 +_08021478: + ldr r0, _0802148C @ =gUnk_020000B0 + ldr r0, [r0] + movs r1, #0x2e + ldrsh r2, [r0, r1] + movs r4, #0x32 + ldrsh r0, [r0, r4] + adds r3, r0, #0 + adds r3, #0x2c + b _080214B8 + .align 2, 0 +_0802148C: .4byte gUnk_020000B0 +_08021490: + ldr r0, _080214A4 @ =gUnk_020000B0 + ldr r1, [r0] + movs r2, #0x2e + ldrsh r0, [r1, r2] + adds r2, r0, #0 + subs r2, #0x24 + movs r4, #0x32 + ldrsh r3, [r1, r4] + b _080214B8 + .align 2, 0 +_080214A4: .4byte gUnk_020000B0 +_080214A8: + ldr r0, _080214F0 @ =gUnk_020000B0 + ldr r0, [r0] + movs r1, #0x2e + ldrsh r2, [r0, r1] + movs r4, #0x32 + ldrsh r0, [r0, r4] + adds r3, r0, #0 + subs r3, #0x1d +_080214B8: + movs r1, #0x2e + ldrsh r0, [r5, r1] + subs r0, r2, r0 + adds r0, #3 + cmp r0, #6 + bhi _080214D0 + movs r4, #0x32 + ldrsh r0, [r5, r4] + subs r0, r3, r0 + adds r0, #2 + cmp r0, #4 + bls _080214E8 +_080214D0: + movs r1, #0x2e + ldrsh r0, [r5, r1] + movs r4, #0x32 + ldrsh r1, [r5, r4] + bl sub_080045D4 + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_080AEF88 + cmp r0, #0 + bne _080214F4 +_080214E8: + adds r0, r5, #0 + bl sub_080212B0 + b _080214FA + .align 2, 0 +_080214F0: .4byte gUnk_020000B0 +_080214F4: + adds r0, r5, #0 + bl sub_080042B8 +_080214FA: + pop {r4, r5, pc} + + thumb_func_start sub_080214FC +sub_080214FC: @ 0x080214FC + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0802153C + ldr r0, _08021538 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + adds r2, r0, #0 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x1f + ands r0, r1 + subs r0, r2, r0 + subs r0, #2 + cmp r0, #4 + bhi _0802153C + adds r0, r2, #4 + movs r1, #0x18 + ands r0, r1 + lsrs r0, r0, #3 + strb r0, [r4, #0x14] + movs r0, #1 + b _0802153E + .align 2, 0 +_08021538: .4byte gUnk_020000B0 +_0802153C: + movs r0, #0 +_0802153E: + pop {r4, pc} + + thumb_func_start sub_08021540 +sub_08021540: @ 0x08021540 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08000E50 + adds r5, r0, #0 + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _08021566 + movs r0, #1 + ands r0, r5 + cmp r0, #0 + beq _08021566 + adds r0, r4, #0 + bl sub_08049EE4 + adds r1, r0, #4 + b _08021568 +_08021566: + lsrs r1, r5, #0x10 +_08021568: + movs r0, #0x18 + ands r1, r0 + strb r1, [r4, #0x15] + ldrb r0, [r4, #0x14] + bl sub_08021274 + adds r2, r0, #0 + cmp r2, #0xff + beq _08021582 + adds r0, r4, #0 + movs r1, #3 + bl sub_08021218 +_08021582: + movs r0, #0x1e + strb r0, [r4, #0xe] + pop {r4, r5, pc} + + thumb_func_start sub_08021588 +sub_08021588: @ 0x08021588 + push {lr} + adds r2, r0, #0 + ldr r1, [r2, #0x54] + cmp r1, #0 + beq _08021598 + movs r0, #0 + str r0, [r1, #0x50] + str r0, [r2, #0x54] +_08021598: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0802159C +sub_0802159C: @ 0x0802159C + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + adds r0, r1, #0 + cmp r0, #1 + bne _080215D4 + movs r0, #0 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x51 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0 + movs r2, #3 + bl sub_0804A98C + cmp r0, #0 + beq _080215CA + str r4, [r0, #0x50] + str r0, [r4, #0x54] +_080215CA: + movs r0, #0x8b + lsls r0, r0, #1 + bl sub_08004488 + b _080215F8 +_080215D4: + cmp r0, #2 + bne _080215E4 + movs r0, #0 + strb r0, [r2] + adds r0, r4, #0 + bl sub_08021588 + b _080215F8 +_080215E4: + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080215F8 + movs r0, #0xdf + ands r0, r1 + strb r0, [r2] + ldr r0, _080215FC @ =0x00000115 + bl sub_08004488 +_080215F8: + pop {r4, pc} + .align 2, 0 +_080215FC: .4byte 0x00000115 + + thumb_func_start sub_08021600 +sub_08021600: @ 0x08021600 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x5a + ldrb r0, [r1] + cmp r0, #1 + bne _08021634 + movs r0, #0 + strb r0, [r1] + subs r1, #0x1b + movs r0, #0x51 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0 + movs r2, #4 + bl sub_0804A98C + cmp r0, #0 + beq _0802162A + str r4, [r0, #0x50] + str r0, [r4, #0x54] +_0802162A: + movs r0, #0x87 + lsls r0, r0, #1 + bl sub_08004488 + b _08021642 +_08021634: + cmp r0, #2 + bne _08021642 + movs r0, #0 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08021588 +_08021642: + pop {r4, pc} + + thumb_func_start sub_08021644 +sub_08021644: @ 0x08021644 + push {lr} + adds r2, r0, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _08021660 + movs r0, #0xdf + ands r0, r1 + strb r0, [r2] + movs r0, #0x7d + bl sub_08004488 +_08021660: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08021664 +sub_08021664: @ 0x08021664 + push {lr} + ldrb r2, [r0, #0x14] + cmp r2, #1 + beq _08021690 + cmp r2, #1 + bgt _08021676 + cmp r2, #0 + beq _08021680 + b _08021698 +_08021676: + cmp r2, #2 + beq _08021688 + cmp r2, #3 + beq _08021690 + b _08021698 +_08021680: + movs r2, #0x22 + bl sub_08049F1C + b _0802169A +_08021688: + movs r2, #0x13 + bl sub_08049F1C + b _0802169A +_08021690: + movs r2, #0x1a + bl sub_08049F1C + b _0802169A +_08021698: + movs r0, #0 +_0802169A: + pop {pc} + + thumb_func_start sub_0802169C +sub_0802169C: @ 0x0802169C + push {lr} + ldrb r2, [r0, #0x14] + cmp r2, #1 + beq _080216C0 + cmp r2, #1 + bgt _080216AE + cmp r2, #0 + beq _080216B8 + b _080216CE +_080216AE: + cmp r2, #2 + beq _080216BC + cmp r2, #3 + beq _080216C0 + b _080216CE +_080216B8: + movs r2, #0x2c + b _080216C2 +_080216BC: + movs r2, #0x1d + b _080216C2 +_080216C0: + movs r2, #0x24 +_080216C2: + bl sub_08049F1C + cmp r0, #0 + bne _080216CE + movs r0, #1 + b _080216D0 +_080216CE: + movs r0, #0 +_080216D0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080216D4 +sub_080216D4: @ 0x080216D4 + push {lr} + ldr r1, _080216E0 @ =gUnk_080CB570 + bl sub_0800129E + pop {pc} + .align 2, 0 +_080216E0: .4byte gUnk_080CB570 + + thumb_func_start sub_080216E4 +sub_080216E4: @ 0x080216E4 + push {lr} + ldr r2, _080216F8 @ =gUnk_080CB588 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080216F8: .4byte gUnk_080CB588 + + thumb_func_start sub_080216FC +sub_080216FC: @ 0x080216FC + push {lr} + adds r2, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802171A + adds r0, r2, #0 + movs r1, #3 + movs r2, #0x80 + bl sub_080A29AC + bl sub_0805E780 +_0802171A: + pop {pc} + + thumb_func_start nullsub_7 +nullsub_7: @ 0x0802171C + bx lr + .align 2, 0 + + thumb_func_start sub_08021720 +sub_08021720: @ 0x08021720 + movs r3, #1 + movs r1, #1 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x18] + subs r1, #5 + ands r1, r2 + orrs r1, r3 + strb r1, [r0, #0x18] + ldrb r1, [r0, #0xa] + strb r1, [r0, #0x1e] + ldrb r2, [r0, #0x19] + movs r1, #0x3f + ands r1, r2 + movs r2, #0x40 + orrs r1, r2 + strb r1, [r0, #0x19] + adds r0, #0x29 + ldrb r2, [r0] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #3 + orrs r1, r2 + strb r1, [r0] + bx lr + .align 2, 0 + + thumb_func_start nullsub_08 +nullsub_08: @ 0x08021754 + bx lr + .align 2, 0 + + thumb_func_start sub_08021758 +sub_08021758: @ 0x08021758 + push {lr} + ldr r1, _08021764 @ =gUnk_080CB590 + bl sub_0800129E + pop {pc} + .align 2, 0 +_08021764: .4byte gUnk_080CB590 + + thumb_func_start sub_08021768 +sub_08021768: @ 0x08021768 + push {lr} + ldr r2, _0802177C @ =gUnk_080CB5A8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802177C: .4byte gUnk_080CB5A8 + + thumb_func_start sub_08021780 +sub_08021780: @ 0x08021780 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x80 + beq _08021792 + cmp r0, #0x93 + beq _080217F4 + b _080217FA +_08021792: + ldr r0, _080217A4 @ =gUnk_03003F80 + adds r0, #0xa8 + ldrb r0, [r0] + cmp r0, #0x18 + bne _080217A8 + adds r0, r4, #0 + bl sub_08021768 + b _080217FA + .align 2, 0 +_080217A4: .4byte gUnk_03003F80 +_080217A8: + movs r1, #0 + movs r0, #5 + strb r0, [r4, #0xc] + movs r0, #0xb4 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080217EC @ =gUnk_03001160 + adds r1, r4, #0 + bl sub_0806FA6C + ldr r0, _080217F0 @ =0x0000FFFF + strh r0, [r4, #0x36] + adds r1, r4, #0 + adds r1, #0x87 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #6 + bl sub_08004260 + b _080217FA + .align 2, 0 +_080217EC: .4byte gUnk_03001160 +_080217F0: .4byte 0x0000FFFF +_080217F4: + adds r0, r4, #0 + bl sub_08021768 +_080217FA: + adds r0, r4, #0 + adds r0, #0x45 + ldrb r1, [r0] + cmp r1, #0 + bne _08021808 + subs r0, #3 + strb r1, [r0] +_08021808: + ldr r1, _08021814 @ =gUnk_080CB590 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_08021814: .4byte gUnk_080CB590 + + thumb_func_start sub_08021818 +sub_08021818: @ 0x08021818 + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xa] + cmp r0, #0 + bne _0802182A + adds r0, r3, #0 + bl sub_0804A7D4 + b _08021844 +_0802182A: + ldr r2, [r3, #0x50] + cmp r2, #0 + beq _0802183A + ldrb r0, [r2, #0xf] + subs r0, #1 + movs r1, #0 + strb r0, [r2, #0xf] + str r1, [r3, #0x50] +_0802183A: + adds r0, r3, #0 + movs r1, #0xf0 + movs r2, #0 + bl sub_0804A7E0 +_08021844: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08021848 +sub_08021848: @ 0x08021848 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F520 + adds r1, r0, #0 + cmp r1, #0 + beq _0802186C + ldr r0, _08021868 @ =gUnk_080CB5C8 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _0802187A + .align 2, 0 +_08021868: .4byte gUnk_080CB5C8 +_0802186C: + movs r0, #3 + strb r0, [r4, #0xc] + strh r1, [r4, #0x36] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 +_0802187A: + pop {r4, pc} + + thumb_func_start sub_0802187C +sub_0802187C: @ 0x0802187C + movs r1, #2 + strb r1, [r0, #0xd] + bx lr + .align 2, 0 + + thumb_func_start nullsub_130 +nullsub_130: @ 0x08021884 + bx lr + .align 2, 0 + + thumb_func_start sub_08021888 +sub_08021888: @ 0x08021888 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _0802189A + adds r0, r4, #0 + bl sub_08021818 +_0802189A: + pop {r4, pc} + + thumb_func_start sub_0802189C +sub_0802189C: @ 0x0802189C + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r0, #1 + strb r0, [r4, #0xc] + strb r0, [r4, #0x1c] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 + pop {r4, pc} + + thumb_func_start sub_080218B4 +sub_080218B4: @ 0x080218B4 + push {lr} + ldr r2, _080218C8 @ =gUnk_080CB5D4 + ldrb r1, [r0, #0xb] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080218C8: .4byte gUnk_080CB5D4 + + thumb_func_start sub_080218CC +sub_080218CC: @ 0x080218CC + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xd] + cmp r0, #0 + bne _08021916 + movs r2, #1 + movs r0, #1 + strb r0, [r5, #0xd] + ldrb r1, [r5, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + adds r0, r5, #0 + movs r1, #1 + bl sub_08049F84 + adds r4, r0, #0 + bl sub_08000E50 + movs r1, #0x10 + eors r4, r1 + ldr r2, _08021980 @ =gUnk_080CB5DC + movs r1, #7 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + adds r0, r0, r4 + movs r1, #0x1f + ands r0, r1 + strb r0, [r5, #0x15] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r5, #0x24] + movs r0, #0x90 + lsls r0, r0, #9 + str r0, [r5, #0x20] +_08021916: + adds r0, r5, #0 + bl sub_08004274 + adds r2, r5, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r6, #1 + adds r0, r6, #0 + ands r0, r1 + adds r4, r2, #0 + cmp r0, #0 + beq _08021948 + adds r0, r5, #0 + bl sub_080AEFE0 + movs r1, #0xe0 + lsls r1, r1, #5 + adds r0, r5, #0 + bl sub_080044EC + cmp r0, #0 + bne _08021948 + adds r0, r5, #0 + adds r0, #0x59 + strb r6, [r0] +_08021948: + ldrb r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802197C + movs r0, #2 + strb r0, [r5, #0xc] + bl sub_08000E50 + movs r1, #0x38 + ands r0, r1 + adds r0, #8 + strb r0, [r5, #0xe] + movs r0, #1 + strb r0, [r5, #0xf] + ldrb r1, [r5, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r5, #0x24] + adds r0, r5, #0 + movs r1, #0 + bl sub_08004260 +_0802197C: + pop {r4, r5, r6, pc} + .align 2, 0 +_08021980: .4byte gUnk_080CB5DC + + thumb_func_start sub_08021984 +sub_08021984: @ 0x08021984 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _080219C2 + movs r0, #1 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + ldr r0, _08021A08 @ =0x0000FF80 + strh r0, [r4, #0x36] + ldrb r2, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r4, #0x19] + ldrb r0, [r4, #0x1b] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x1b] + ldr r0, _08021A0C @ =0x0000012D + bl sub_08004488 +_080219C2: + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08021A04 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x10 + strb r0, [r4, #0xe] + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xf] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x86 + movs r0, #0x3c + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08016A04 +_08021A04: + pop {r4, pc} + .align 2, 0 +_08021A08: .4byte 0x0000FF80 +_08021A0C: .4byte 0x0000012D + + thumb_func_start sub_08021A10 +sub_08021A10: @ 0x08021A10 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldr r1, _08021A60 @ =gUnk_03001160 + adds r0, r4, #0 + movs r2, #0x78 + movs r3, #0x50 + bl sub_080041A0 + cmp r0, #0 + beq _08021A5E + adds r0, r4, #0 + bl sub_08021D00 + cmp r0, #0 + bne _08021A5E + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08021A5E + movs r0, #3 + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + adds r0, #0x1e + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x15] + adds r0, r4, #0 + bl sub_08021D44 + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 +_08021A5E: + pop {r4, pc} + .align 2, 0 +_08021A60: .4byte gUnk_03001160 + + thumb_func_start sub_08021A64 +sub_08021A64: @ 0x08021A64 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08021D00 + cmp r0, #0 + bne _08021AD4 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r5, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08021A96 + movs r0, #2 + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x1e + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_08021A96: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r5 + cmp r0, #0 + bne _08021AC8 + movs r0, #8 + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + adds r1, r0, #0 + cmp r1, #0xff + bne _08021AC2 + movs r0, #7 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + b _08021AD4 +_08021AC2: + adds r0, r4, #0 + bl sub_08021D44 +_08021AC8: + adds r0, r4, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_08004274 +_08021AD4: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08021AD8 +sub_08021AD8: @ 0x08021AD8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08021B3A + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08021B1E + movs r0, #0 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + cmp r0, #0xff + bne _08021B16 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #8 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + b _08021B60 +_08021B16: + strb r0, [r4, #0x15] + movs r0, #0x7c + bl sub_08004488 +_08021B1E: + adds r0, r4, #0 + bl sub_080AEFE0 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08021B3A + adds r1, r4, #0 + adds r1, #0x59 + movs r0, #1 + strb r0, [r1] +_08021B3A: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08021B60 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x14 + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x86 + movs r0, #0x3c + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_08021B60: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08021B64 +sub_08021B64: @ 0x08021B64 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r0, _08021B88 @ =gUnk_03003F80 + ldr r1, [r0, #0x30] + movs r2, #4 + ands r1, r2 + adds r6, r0, #0 + cmp r1, #0 + beq _08021B8C + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + str r1, [r4, #0x34] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + b _08021C4E + .align 2, 0 +_08021B88: .4byte gUnk_03003F80 +_08021B8C: + movs r5, #1 + adds r0, r6, #0 + adds r0, #0xa8 + ldrb r0, [r0] + cmp r0, #0xb + beq _08021BBA + cmp r0, #0x14 + beq _08021BBA + bl sub_0807953C + cmp r0, #0 + beq _08021BAE + ldrb r1, [r4, #0xa] + lsls r0, r1, #1 + adds r0, r0, r1 + adds r5, r0, #0 + adds r5, #8 +_08021BAE: + ldrb r0, [r4, #0xe] + subs r5, r0, r5 + cmp r5, #0 + bge _08021BB8 + movs r5, #0 +_08021BB8: + strb r5, [r4, #0xe] +_08021BBA: + ldr r0, [r6, #0x30] + movs r1, #0x88 + lsls r1, r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08021BC8 + movs r5, #0 +_08021BC8: + cmp r5, #0 + bne _08021C04 + movs r0, #6 + strb r0, [r4, #0xc] + movs r0, #0x80 + lsls r0, r0, #9 + str r0, [r4, #0x20] + adds r0, r4, #0 + adds r0, #0x87 + strb r5, [r0] + ldr r2, _08021BEC @ =gUnk_03001160 + ldrb r1, [r2, #0x15] + adds r0, r1, #0 + cmp r0, #0xff + beq _08021BF0 + movs r0, #0x10 + b _08021BF6 + .align 2, 0 +_08021BEC: .4byte gUnk_03001160 +_08021BF0: + ldrb r0, [r2, #0x14] + lsls r0, r0, #2 + movs r1, #0x10 +_08021BF6: + eors r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #5 + bl sub_08004260 + b _08021C4E +_08021C04: + ldrb r1, [r6, #0x1a] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r6, #0x1a] + adds r1, r6, #0 + adds r1, #0x80 + ldrh r0, [r1] + subs r0, #0x50 + strh r0, [r1] + adds r1, #0x2a + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r0, _08021C50 @ =gUnk_03001160 + adds r1, r4, #0 + bl sub_0806FA6C + ldr r2, _08021C54 @ =gUnk_080CB5E4 + ldrb r1, [r4, #0xf] + adds r0, r1, #1 + strb r0, [r4, #0xf] + movs r0, #0xe + ands r0, r1 + lsrs r0, r0, #1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x2e] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x36] + subs r0, #1 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_08004274 +_08021C4E: + pop {r4, r5, r6, pc} + .align 2, 0 +_08021C50: .4byte gUnk_03001160 +_08021C54: .4byte gUnk_080CB5E4 + + thumb_func_start sub_08021C58 +sub_08021C58: @ 0x08021C58 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r5, #1 + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _08021C8A + adds r0, r4, #0 + bl sub_080AEFE0 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08021C8A + adds r0, r4, #0 + adds r0, #0x59 + strb r5, [r0] +_08021C8A: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08021CCC + movs r0, #2 + strb r0, [r4, #0xc] + movs r2, #0x3c + strb r2, [r4, #0xe] + movs r0, #1 + strb r0, [r4, #0xf] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r3] + adds r0, r4, #0 + adds r0, #0x86 + strb r2, [r0] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_08021CCC: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08021CD0 +sub_08021CD0: @ 0x08021CD0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08021CE6 + adds r0, r4, #0 + bl sub_08004274 +_08021CE6: + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + cmp r0, #0xff + beq _08021CFE + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 +_08021CFE: + pop {r4, pc} + + thumb_func_start sub_08021D00 +sub_08021D00: @ 0x08021D00 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x86 + ldrb r0, [r1] + cmp r0, #0 + beq _08021D16 + subs r0, #1 + strb r0, [r1] + movs r0, #0 + b _08021D40 +_08021D16: + adds r0, r4, #0 + movs r1, #1 + movs r2, #0x10 + bl sub_08049F64 + cmp r0, #0 + bne _08021D28 + movs r0, #0 + b _08021D40 +_08021D28: + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #1 + strb r0, [r4, #0xe] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 + movs r0, #1 +_08021D40: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08021D44 +sub_08021D44: @ 0x08021D44 + push {lr} + adds r2, r0, #0 + adds r1, #4 + movs r0, #0x18 + ands r1, r0 + strb r1, [r2, #0x15] + movs r0, #8 + ands r1, r0 + cmp r1, #0 + beq _08021D5E + movs r0, #0xc0 + lsls r0, r0, #1 + b _08021D60 +_08021D5E: + movs r0, #0xc0 +_08021D60: + strh r0, [r2, #0x24] + pop {pc} + + thumb_func_start sub_08021D64 +sub_08021D64: @ 0x08021D64 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _08021D7C @ =gUnk_080CB69C + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_08021D7C: .4byte gUnk_080CB69C + + thumb_func_start sub_08021D80 +sub_08021D80: @ 0x08021D80 + push {lr} + ldr r2, _08021D94 @ =gUnk_080CB6B4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08021D94: .4byte gUnk_080CB6B4 + + thumb_func_start sub_08021D98 +sub_08021D98: @ 0x08021D98 + push {lr} + ldr r1, _08021DA4 @ =gUnk_080CB69C + bl sub_0804AA30 + pop {pc} + .align 2, 0 +_08021DA4: .4byte gUnk_080CB69C + + thumb_func_start sub_08021DA8 +sub_08021DA8: @ 0x08021DA8 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F520 + cmp r0, #0 + beq _08021DC4 + ldr r0, _08021DC8 @ =gUnk_080CB6C4 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_08021DC4: + pop {r4, pc} + .align 2, 0 +_08021DC8: .4byte gUnk_080CB6C4 + + thumb_func_start sub_08021DCC +sub_08021DCC: @ 0x08021DCC + movs r1, #2 + strb r1, [r0, #0xd] + bx lr + .align 2, 0 + + thumb_func_start sub_08021DD4 +sub_08021DD4: @ 0x08021DD4 + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_08021DDC +sub_08021DDC: @ 0x08021DDC + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _08021DEE + adds r0, r4, #0 + bl sub_0804A7D4 +_08021DEE: + pop {r4, pc} + + thumb_func_start sub_08021DF0 +sub_08021DF0: @ 0x08021DF0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _08021E14 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + ldr r0, _08021E48 @ =0x0000FFF0 + strh r0, [r4, #0x36] +_08021E14: + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] + movs r0, #1 + strb r0, [r4, #0x1c] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #9 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + bl sub_08021EF0 + pop {r4, pc} + .align 2, 0 +_08021E48: .4byte 0x0000FFF0 + + thumb_func_start sub_08021E4C +sub_08021E4C: @ 0x08021E4C + push {r4, r5, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + cmp r0, #0 + beq _08021E5E + subs r0, #1 + strh r0, [r1] +_08021E5E: + adds r1, r4, #0 + adds r1, #0x7a + ldrh r0, [r1] + cmp r0, #0 + beq _08021E6C + subs r0, #1 + strh r0, [r1] +_08021E6C: + adds r0, r4, #0 + bl sub_08004274 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + adds r5, r2, #0 + cmp r0, #0 + beq _08021E8A + adds r0, r4, #0 + bl sub_08021F24 + b _08021E90 +_08021E8A: + adds r0, r4, #0 + bl sub_080AEFB4 +_08021E90: + ldr r1, _08021EA0 @ =gUnk_080CB6D0 + ldrb r0, [r5] + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x63 + strb r1, [r0] + pop {r4, r5, pc} + .align 2, 0 +_08021EA0: .4byte gUnk_080CB6D0 + + thumb_func_start sub_08021EA4 +sub_08021EA4: @ 0x08021EA4 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08021EBA + adds r0, r1, #0 + bl sub_08021EF0 +_08021EBA: + pop {pc} + + thumb_func_start sub_08021EBC +sub_08021EBC: @ 0x08021EBC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08021ECC + subs r0, #1 + strb r0, [r4, #0xe] + b _08021EE8 +_08021ECC: + ldr r0, _08021EEC @ =gUnk_03001160 + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r3, #0x32 + ldrsh r2, [r0, r3] + adds r0, r4, #0 + movs r3, #0x70 + bl sub_0806FCB8 + cmp r0, #0 + beq _08021EE8 + adds r0, r4, #0 + bl sub_08021EF0 +_08021EE8: + pop {r4, pc} + .align 2, 0 +_08021EEC: .4byte gUnk_03001160 + + thumb_func_start sub_08021EF0 +sub_08021EF0: @ 0x08021EF0 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + bl sub_08000E50 + ldr r2, _08021F20 @ =gUnk_080CB6D6 + movs r1, #0xf + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r1, [r1] + adds r0, r4, #0 + adds r0, #0x78 + strh r1, [r0] + adds r1, r4, #0 + adds r1, #0x7a + movs r0, #0x3c + strh r0, [r1] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 +_08021F20: .4byte gUnk_080CB6D6 + + thumb_func_start sub_08021F24 +sub_08021F24: @ 0x08021F24 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x78 + ldrh r0, [r0] + cmp r0, #0 + bne _08021F48 + movs r0, #2 + strb r0, [r4, #0xc] + bl sub_08000E50 + ldr r2, _08021F44 @ =gUnk_080CB6F6 + movs r1, #0xf + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + b _08021F6E + .align 2, 0 +_08021F44: .4byte gUnk_080CB6F6 +_08021F48: + adds r0, r4, #0 + adds r0, #0x7a + ldrh r0, [r0] + cmp r0, #0 + bne _08021F80 + ldr r0, _08021F7C @ =gUnk_03001160 + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r3, #0x32 + ldrsh r2, [r0, r3] + adds r0, r4, #0 + movs r3, #0x70 + bl sub_0806FCB8 + cmp r0, #0 + bne _08021F80 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x1e +_08021F6E: + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + b _08021FA4 + .align 2, 0 +_08021F7C: .4byte gUnk_03001160 +_08021F80: + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + beq _08021F94 + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + b _08021F9A +_08021F94: + adds r0, r4, #0 + bl sub_08049EE4 +_08021F9A: + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_08021FA4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08021FA8 +sub_08021FA8: @ 0x08021FA8 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08021FD4 @ =gUnk_080CB734 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldr r1, _08021FD8 @ =gUnk_080CB8A4 + ldrb r0, [r4, #0xb] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r4, #0x1e] + ldr r0, [r0] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + str r0, [r4, #0x48] + pop {r4, r5, pc} + .align 2, 0 +_08021FD4: .4byte gUnk_080CB734 +_08021FD8: .4byte gUnk_080CB8A4 + + thumb_func_start sub_08021FDC +sub_08021FDC: @ 0x08021FDC + push {lr} + ldr r2, _08021FF0 @ =gUnk_080CB74C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08021FF0: .4byte gUnk_080CB74C + + thumb_func_start sub_08021FF4 +sub_08021FF4: @ 0x08021FF4 + push {lr} + ldr r1, _08022000 @ =gUnk_080CB734 + bl sub_0804AA30 + pop {pc} + .align 2, 0 +_08022000: .4byte gUnk_080CB734 + + thumb_func_start sub_08022004 +sub_08022004: @ 0x08022004 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x7c + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x7e + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + adds r0, r4, #0 + movs r1, #5 + movs r2, #0 + bl sub_080A29AC + adds r0, r4, #0 + bl sub_08049CF4 + bl sub_0805E780 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08022034 +sub_08022034: @ 0x08022034 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0xa] + movs r0, #3 + ands r0, r1 + strb r0, [r4, #0xb] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r2] + ldr r2, _08022098 @ =gUnk_080CB764 + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x2e] + adds r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x78 + strh r0, [r1] + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, #1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x7a + strh r0, [r1] + ldrb r1, [r4, #0xb] + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_080221C0 + pop {r4, pc} + .align 2, 0 +_08022098: .4byte gUnk_080CB764 + + thumb_func_start sub_0802209C +sub_0802209C: @ 0x0802209C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _080220D2 + adds r0, r4, #0 + adds r0, #0x78 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x7a + ldrh r1, [r1] + movs r2, #0x10 + movs r3, #0x10 + bl sub_0806FBFC + cmp r0, #0 + beq _080220D6 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x12 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0xb] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 + b _080220D6 +_080220D2: + subs r0, #1 + strb r0, [r4, #0xe] +_080220D6: + pop {r4, pc} + + thumb_func_start sub_080220D8 +sub_080220D8: @ 0x080220D8 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080220EC + movs r0, #3 + strb r0, [r1, #0xc] +_080220EC: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080220F0 +sub_080220F0: @ 0x080220F0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_08004274 + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08022160 + movs r1, #0 + movs r0, #4 + strb r0, [r5, #0xc] + movs r0, #0x78 + strb r0, [r5, #0xe] + adds r0, r5, #0 + adds r0, #0x44 + strb r1, [r0] + ldrb r1, [r5, #0xb] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0802215C @ =gUnk_080CB76C + adds r4, r0, r1 + movs r6, #0 +_08022124: + adds r0, r5, #0 + movs r1, #0x11 + movs r2, #0 + bl sub_080A29AC + adds r1, r0, #0 + cmp r1, #0 + beq _08022148 + movs r0, #0 + ldrsb r0, [r4, r0] + ldrh r2, [r1, #0x2e] + adds r0, r0, r2 + strh r0, [r1, #0x2e] + movs r0, #1 + ldrsb r0, [r4, r0] + ldrh r2, [r1, #0x32] + adds r0, r0, r2 + strh r0, [r1, #0x32] +_08022148: + adds r6, #1 + adds r4, #2 + cmp r6, #5 + bls _08022124 + movs r0, #0x82 + lsls r0, r0, #1 + bl sub_08004488 + b _08022170 + .align 2, 0 +_0802215C: .4byte gUnk_080CB76C +_08022160: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08022170 + adds r1, r5, #0 + adds r1, #0x44 + movs r0, #4 + strb r0, [r1] +_08022170: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08022174 +sub_08022174: @ 0x08022174 + push {r4, lr} + adds r4, r0, #0 + bl sub_0800445C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08022196 + movs r0, #5 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0xb] + adds r1, #8 + adds r0, r4, #0 + bl sub_08004260 +_08022196: + pop {r4, pc} + + thumb_func_start sub_08022198 +sub_08022198: @ 0x08022198 + push {r4, lr} + adds r4, r0, #0 + bl sub_0800445C + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080221BC + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x5a + strb r0, [r4, #0xe] +_080221BC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080221C0 +sub_080221C0: @ 0x080221C0 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r0, #0x2e + ldrsh r4, [r6, r0] + ldr r1, _08022220 @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + subs r4, r4, r0 + asrs r4, r4, #4 + movs r2, #0x3f + ands r4, r2 + movs r3, #0x32 + ldrsh r0, [r6, r3] + ldrh r1, [r1, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + ldr r1, _08022224 @ =gUnk_080B4488 + ldrb r0, [r6, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + adds r4, r4, r0 + adds r0, r6, #0 + adds r0, #0x7e + strh r4, [r0] + adds r5, r6, #0 + adds r5, #0x38 + ldrb r1, [r5] + adds r0, r4, #0 + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x7c + strh r0, [r1] + ldr r1, _08022228 @ =gUnk_080CB79C + ldrb r0, [r6, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + ldrb r2, [r5] + adds r1, r4, #0 + bl sub_0800015E + pop {r4, r5, r6, pc} + .align 2, 0 +_08022220: .4byte gUnk_03000BF0 +_08022224: .4byte gUnk_080B4488 +_08022228: .4byte gUnk_080CB79C + + thumb_func_start sub_0802222C +sub_0802222C: @ 0x0802222C + push {lr} + ldr r1, _08022238 @ =gUnk_080CB948 + bl sub_0800129E + pop {pc} + .align 2, 0 +_08022238: .4byte gUnk_080CB948 + + thumb_func_start sub_0802223C +sub_0802223C: @ 0x0802223C + push {lr} + ldr r2, _08022250 @ =gUnk_080CB960 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08022250: .4byte gUnk_080CB960 + + thumb_func_start sub_08022254 +sub_08022254: @ 0x08022254 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _08022344 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + subs r0, #4 + cmp r0, #0x18 + bhi _08022356 + lsls r0, r0, #2 + ldr r1, _0802227C @ =_08022280 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802227C: .4byte _08022280 +_08022280: @ jump table + .4byte _080222E4 @ case 0 + .4byte _080222E4 @ case 1 + .4byte _080222E4 @ case 2 + .4byte _08022356 @ case 3 + .4byte _080222E4 @ case 4 + .4byte _080222E4 @ case 5 + .4byte _080222E4 @ case 6 + .4byte _080222E4 @ case 7 + .4byte _080222E4 @ case 8 + .4byte _080222E4 @ case 9 + .4byte _08022356 @ case 10 + .4byte _08022356 @ case 11 + .4byte _080222E4 @ case 12 + .4byte _080222E4 @ case 13 + .4byte _080222E4 @ case 14 + .4byte _08022356 @ case 15 + .4byte _08022356 @ case 16 + .4byte _08022356 @ case 17 + .4byte _080222F2 @ case 18 + .4byte _08022356 @ case 19 + .4byte _080222E4 @ case 20 + .4byte _080222E4 @ case 21 + .4byte _080222E4 @ case 22 + .4byte _08022356 @ case 23 + .4byte _080222F2 @ case 24 +_080222E4: + ldr r0, _08022340 @ =gUnk_03003F80 + adds r0, #0xac + ldrh r1, [r0] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _08022356 +_080222F2: + adds r0, r4, #0 + movs r1, #4 + movs r2, #0 + bl sub_080A29AC + movs r0, #1 + movs r1, #1 + bl sub_0804AA60 + adds r5, r0, #0 + cmp r5, #0 + beq _08022356 + movs r0, #1 + strb r0, [r5, #0xb] + adds r1, r5, #0 + adds r1, #0x3d + movs r0, #0xf8 + strb r0, [r1] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0804A4E4 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + strb r0, [r4, #0x15] + str r5, [r4, #0x54] + b _08022356 + .align 2, 0 +_08022340: .4byte gUnk_03003F80 +_08022344: + adds r0, r4, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0x94 + beq _08022356 + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 +_08022356: + ldr r1, _08022360 @ =gUnk_080CB948 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, r5, pc} + .align 2, 0 +_08022360: .4byte gUnk_080CB948 + + thumb_func_start nullsub_131 +nullsub_131: @ 0x08022364 + bx lr + .align 2, 0 + + thumb_func_start sub_08022368 +sub_08022368: @ 0x08022368 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r0, #1 + strb r0, [r4, #0xc] + bl sub_08000E50 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08022390 +sub_08022390: @ 0x08022390 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _080223D4 + ldrb r1, [r4, #0xe] + adds r0, r1, #1 + strb r0, [r4, #0xe] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _080223C0 + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] + bl sub_08000E50 + movs r1, #4 + ands r0, r1 + strb r0, [r4, #0xf] +_080223C0: + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _080223CE + adds r0, r4, #0 + bl sub_080AEF88 + b _080223DA +_080223CE: + subs r0, #1 + strb r0, [r4, #0xf] + b _080223DA +_080223D4: + bl sub_08000E50 + strb r0, [r4, #0xe] +_080223DA: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080223E4 +sub_080223E4: @ 0x080223E4 + push {lr} + adds r3, r0, #0 + ldr r2, [r3, #0x54] + cmp r2, #0 + beq _0802240A + adds r1, r2, #0 + adds r1, #0x41 + movs r0, #0x94 + strb r0, [r1] + subs r1, #4 + movs r0, #0x10 + strb r0, [r1] + adds r1, #5 + movs r0, #0xc + strb r0, [r1] + ldrb r1, [r3, #0x15] + adds r0, r2, #0 + adds r0, #0x3e + strb r1, [r0] +_0802240A: + adds r0, r3, #0 + bl sub_0805E7BC + pop {pc} + .align 2, 0 + + thumb_func_start sub_08022414 +sub_08022414: @ 0x08022414 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08022430 @ =gUnk_080CBA28 + bl sub_0800129E + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, pc} + .align 2, 0 +_08022430: .4byte gUnk_080CBA28 + + thumb_func_start sub_08022434 +sub_08022434: @ 0x08022434 + push {lr} + ldr r2, _08022448 @ =gUnk_080CBA40 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08022448: .4byte gUnk_080CBA40 + + thumb_func_start sub_0802244C +sub_0802244C: @ 0x0802244C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x45 + ldrb r0, [r5] + cmp r0, #0 + bne _0802245C + b _08022582 +_0802245C: + adds r0, r4, #0 + adds r0, #0x3f + ldrb r1, [r0] + adds r6, r0, #0 + cmp r1, #0x65 + bne _08022522 + adds r0, #2 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + subs r0, #2 + cmp r0, #0x18 + bhi _08022540 + lsls r0, r0, #2 + ldr r1, _08022480 @ =_08022484 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08022480: .4byte _08022484 +_08022484: @ jump table + .4byte _080224E8 @ case 0 + .4byte _080224E8 @ case 1 + .4byte _08022540 @ case 2 + .4byte _08022540 @ case 3 + .4byte _08022540 @ case 4 + .4byte _08022540 @ case 5 + .4byte _08022508 @ case 6 + .4byte _08022508 @ case 7 + .4byte _08022508 @ case 8 + .4byte _08022508 @ case 9 + .4byte _08022508 @ case 10 + .4byte _08022540 @ case 11 + .4byte _08022540 @ case 12 + .4byte _08022540 @ case 13 + .4byte _08022540 @ case 14 + .4byte _08022540 @ case 15 + .4byte _08022540 @ case 16 + .4byte _08022540 @ case 17 + .4byte _08022540 @ case 18 + .4byte _08022540 @ case 19 + .4byte _08022508 @ case 20 + .4byte _08022540 @ case 21 + .4byte _08022508 @ case 22 + .4byte _08022508 @ case 23 + .4byte _08022508 @ case 24 +_080224E8: + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xf] + movs r0, #0x5c + strb r0, [r6] + ldr r0, _08022504 @ =gUnk_080FD468 + str r0, [r4, #0x48] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + b _08022540 + .align 2, 0 +_08022504: .4byte gUnk_080FD468 +_08022508: + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC + movs r0, #5 + strb r0, [r4, #0xc] + movs r0, #0x5c + strb r0, [r6] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + b _08022540 +_08022522: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x94 + bne _08022540 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC + movs r0, #5 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_08022540: + adds r0, r4, #0 + adds r0, #0x80 + adds r1, r4, #0 + adds r1, #0x45 + ldrb r2, [r0] + adds r5, r1, #0 + adds r7, r0, #0 + ldrb r0, [r5] + cmp r2, r0 + beq _08022566 + movs r0, #5 + strb r0, [r4, #0xc] + movs r0, #0x5c + strb r0, [r6] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + b _0802258E +_08022566: + ldrb r0, [r4, #0xc] + cmp r0, #3 + bne _0802258E + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 + movs r0, #0xca + lsls r0, r0, #1 + bl sub_08004488 + b _0802258E +_08022582: + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + adds r7, r4, #0 + adds r7, #0x80 +_0802258E: + ldrb r0, [r5] + strb r0, [r7] + ldr r1, _0802259C @ =gUnk_080CBA28 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0802259C: .4byte gUnk_080CBA28 + + thumb_func_start sub_080225A0 +sub_080225A0: @ 0x080225A0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #1 + bne _080225B2 + adds r0, r4, #0 + bl sub_08004274 +_080225B2: + adds r0, r4, #0 + bl sub_08001318 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080225BC +sub_080225BC: @ 0x080225BC + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xc0 + lsls r1, r1, #5 + bl sub_08003FC4 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080225DE + adds r0, r4, #0 + bl sub_0804A7D4 + b _080225E4 +_080225DE: + adds r0, r4, #0 + bl sub_08004274 +_080225E4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start nullsub_9 +nullsub_9: @ 0x080225E8 + bx lr + .align 2, 0 + + thumb_func_start sub_080225EC +sub_080225EC: @ 0x080225EC + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + adds r0, r4, #0 + adds r0, #0x45 + ldrb r1, [r0] + adds r0, #0x3b + strb r1, [r0] + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #0x5a + strb r0, [r1] + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _0802261A + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + b _0802264C +_0802261A: + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xf] + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r2, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r4, #0x19] + ldrb r0, [r4, #0x1b] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x1b] + ldr r0, _08022650 @ =0x0000FF80 + strh r0, [r4, #0x36] + adds r0, r4, #0 + movs r1, #6 + bl sub_08004260 +_0802264C: + pop {r4, pc} + .align 2, 0 +_08022650: .4byte 0x0000FF80 + + thumb_func_start sub_08022654 +sub_08022654: @ 0x08022654 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #1 + beq _0802268C + cmp r0, #1 + bgt _08022668 + cmp r0, #0 + beq _0802266E + b _080226E4 +_08022668: + cmp r0, #2 + beq _080226BE + b _080226E4 +_0802266E: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080226E4 + movs r0, #1 + strb r0, [r4, #0xd] + ldr r0, _080226E8 @ =0x0000012D + bl sub_080A3268 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_0802268C: + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _080226E4 + movs r0, #2 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x18] + subs r0, #6 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #5 + bl sub_08004260 + movs r0, #0x7d + bl sub_08004488 + adds r0, r4, #0 + bl sub_08016A04 +_080226BE: + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080226E4 + movs r0, #3 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x65 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 +_080226E4: + pop {r4, pc} + .align 2, 0 +_080226E8: .4byte 0x0000012D + + thumb_func_start sub_080226EC +sub_080226EC: @ 0x080226EC + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _08022776 + adds r0, r4, #0 + bl sub_080228CC + cmp r0, #0 + beq _0802271A + movs r0, #3 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x65 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + b _0802277C +_0802271A: + adds r0, r4, #0 + bl sub_080228F0 + cmp r0, #0 + beq _08022758 + movs r0, #6 + strb r0, [r4, #0xc] + movs r0, #0x90 + lsls r0, r0, #9 + str r0, [r4, #0x20] + movs r0, #0xa0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + ldr r0, _08022754 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x5a + strb r0, [r1] + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 + b _0802277C + .align 2, 0 +_08022754: .4byte gUnk_020000B0 +_08022758: + ldrb r1, [r4, #0xe] + adds r0, r1, #1 + strb r0, [r4, #0xe] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + bne _08022770 + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] +_08022770: + adds r0, r4, #0 + bl sub_080AEF88 +_08022776: + adds r0, r4, #0 + bl sub_08004274 +_0802277C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08022780 +sub_08022780: @ 0x08022780 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080227AA + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 + movs r0, #0xca + lsls r0, r0, #1 + bl sub_08004488 +_080227AA: + pop {r4, pc} + + thumb_func_start sub_080227AC +sub_080227AC: @ 0x080227AC + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080227CC + ldr r0, _080227C8 @ =gUnk_080FD470 + b _080227CE + .align 2, 0 +_080227C8: .4byte gUnk_080FD470 +_080227CC: + ldr r0, _08022814 @ =gUnk_080FD468 +_080227CE: + str r0, [r4, #0x48] + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r3, #2 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _080227EE + movs r0, #0xfd + ands r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x5c + strb r0, [r1] +_080227EE: + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08022812 + strb r3, [r4, #0xc] + bl sub_08000E50 + ldr r2, _08022818 @ =gUnk_080CBA60 + movs r1, #3 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_08022812: + pop {r4, pc} + .align 2, 0 +_08022814: .4byte gUnk_080FD468 +_08022818: .4byte gUnk_080CBA60 + + thumb_func_start sub_0802281C +sub_0802281C: @ 0x0802281C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xc0 + lsls r1, r1, #5 + bl sub_08003FC4 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08022852 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x20 + strh r0, [r4, #0x24] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0804AA1C +_08022852: + pop {r4, pc} + + thumb_func_start sub_08022854 +sub_08022854: @ 0x08022854 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08022898 + adds r0, r4, #0 + bl sub_080AEFE0 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08022898 + movs r0, #7 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x5c + strb r0, [r1] + adds r0, r4, #0 + movs r1, #5 + bl sub_08004260 + movs r0, #0x7d + bl sub_08004488 +_08022898: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802289C +sub_0802289C: @ 0x0802289C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080228CA + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x20 + strh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #0x78 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_080228CA: + pop {r4, pc} + + thumb_func_start sub_080228CC +sub_080228CC: @ 0x080228CC + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xf] + cmp r0, #0 + bne _080228E8 + adds r0, r1, #0 + movs r1, #1 + movs r2, #0x28 + bl sub_08049F64 + cmp r0, #0 + beq _080228EC + movs r0, #1 + b _080228EE +_080228E8: + subs r0, #1 + strb r0, [r1, #0xf] +_080228EC: + movs r0, #0 +_080228EE: + pop {pc} + + thumb_func_start sub_080228F0 +sub_080228F0: @ 0x080228F0 + push {lr} + adds r1, r0, #0 + adds r2, r1, #0 + adds r2, #0x81 + ldrb r0, [r2] + cmp r0, #0 + bne _08022910 + adds r0, r1, #0 + movs r1, #1 + movs r2, #0x40 + bl sub_08049F64 + cmp r0, #0 + beq _08022914 + movs r0, #1 + b _08022916 +_08022910: + subs r0, #1 + strb r0, [r2] +_08022914: + movs r0, #0 +_08022916: + pop {pc} + + thumb_func_start sub_08022918 +sub_08022918: @ 0x08022918 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _08022930 @ =gUnk_080CBB64 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_08022930: .4byte gUnk_080CBB64 + + thumb_func_start sub_08022934 +sub_08022934: @ 0x08022934 + push {lr} + ldr r2, _08022948 @ =gUnk_080CBB7C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08022948: .4byte gUnk_080CBB7C + + thumb_func_start sub_0802294C +sub_0802294C: @ 0x0802294C + push {lr} + ldr r1, _08022958 @ =gUnk_080CBB64 + bl sub_0804AA30 + pop {pc} + .align 2, 0 +_08022958: .4byte gUnk_080CBB64 + + thumb_func_start nullsub_132 +nullsub_132: @ 0x0802295C + bx lr + .align 2, 0 + + thumb_func_start sub_08022960 +sub_08022960: @ 0x08022960 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + adds r0, r4, #0 + bl sub_08022A88 + pop {r4, pc} + + thumb_func_start sub_08022970 +sub_08022970: @ 0x08022970 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08022986 + adds r0, r1, #0 + bl sub_08022AA4 +_08022986: + pop {pc} + + thumb_func_start sub_08022988 +sub_08022988: @ 0x08022988 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _080229A6 + adds r0, r4, #0 + bl sub_08022B20 + cmp r0, #0 + beq _080229A6 + adds r0, r4, #0 + bl sub_08022B0C + b _080229F6 +_080229A6: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _080229C6 + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080229F6 + movs r0, #1 + strb r0, [r4, #0x1e] + movs r0, #0x80 + lsls r0, r0, #9 + str r0, [r4, #0x20] + movs r0, #0xd6 + bl sub_08004488 +_080229C6: + adds r0, r4, #0 + bl sub_080AEF88 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + adds r1, r0, #0 + cmp r1, #0 + bne _080229F6 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080229F0 + adds r0, r4, #0 + bl sub_08022A88 + b _080229F6 +_080229F0: + movs r0, #4 + strb r0, [r4, #0xf] + strb r1, [r4, #0x1e] +_080229F6: + pop {r4, pc} + + thumb_func_start sub_080229F8 +sub_080229F8: @ 0x080229F8 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xa0 + lsls r1, r1, #6 + bl sub_08003FC4 + cmp r0, #0 + bne _08022A3C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _08022A30 + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #6 + strb r0, [r4, #0xe] + movs r0, #8 + strb r0, [r4, #0xf] + strb r1, [r4, #0x1e] + movs r0, #0xc0 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_08022B44 + b _08022A3C +_08022A30: + movs r0, #0x80 + lsls r0, r0, #9 + str r0, [r4, #0x20] + movs r0, #0xd6 + bl sub_08004488 +_08022A3C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08022A40 +sub_08022A40: @ 0x08022A40 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _08022A58 + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08022A86 + movs r0, #1 + strb r0, [r4, #0x1e] +_08022A58: + adds r0, r4, #0 + bl sub_080AEF88 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08022A86 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08022A80 + adds r0, r4, #0 + bl sub_08022A88 + b _08022A86 +_08022A80: + adds r0, r4, #0 + bl sub_08022B44 +_08022A86: + pop {r4, pc} + + thumb_func_start sub_08022A88 +sub_08022A88: @ 0x08022A88 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #0 + movs r0, #1 + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r1, #0xf + ands r0, r1 + adds r0, #8 + strb r0, [r4, #0xe] + strb r5, [r4, #0x1e] + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08022AA4 +sub_08022AA4: @ 0x08022AA4 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08000E50 + adds r5, r0, #0 + movs r0, #2 + strb r0, [r4, #0xc] + movs r1, #3 + adds r0, r5, #0 + ands r0, r1 + adds r0, #1 + strb r0, [r4, #0xe] + movs r0, #1 + strb r0, [r4, #0xf] + movs r0, #0x80 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _08022AE0 + lsrs r0, r5, #8 + movs r1, #3 + ands r0, r1 + cmp r0, #0 + beq _08022AE0 + adds r0, r4, #0 + bl sub_08049EE4 + b _08022AE6 +_08022AE0: + lsrs r0, r5, #0x10 + movs r1, #0x1f + ands r0, r1 +_08022AE6: + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x15] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + beq _08022B08 + lsrs r1, r1, #4 + movs r0, #1 + eors r1, r0 + ands r1, r0 + lsls r1, r1, #6 + ldrb r2, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] +_08022B08: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08022B0C +sub_08022B0C: @ 0x08022B0C + push {lr} + movs r1, #3 + strb r1, [r0, #0xc] + strb r1, [r0, #0xe] + movs r1, #8 + strb r1, [r0, #0xf] + bl sub_08022B44 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08022B20 +sub_08022B20: @ 0x08022B20 + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + bl sub_08049DF4 + cmp r0, #0 + beq _08022B40 + ldr r1, _08022B3C @ =gUnk_03001160 + adds r0, r4, #0 + movs r2, #0x24 + movs r3, #0x24 + bl sub_080041A0 + b _08022B42 + .align 2, 0 +_08022B3C: .4byte gUnk_03001160 +_08022B40: + movs r0, #0 +_08022B42: + pop {r4, pc} + + thumb_func_start sub_08022B44 +sub_08022B44: @ 0x08022B44 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0xc0 + lsls r0, r0, #8 + str r0, [r4, #0x20] + ldr r1, _08022B84 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + strb r1, [r4, #0x15] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + beq _08022B7A + lsls r1, r1, #0x18 + lsrs r1, r1, #0x1c + movs r0, #1 + eors r1, r0 + ands r1, r0 + lsls r1, r1, #6 + ldrb r2, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] +_08022B7A: + movs r0, #0xd6 + bl sub_08004488 + pop {r4, pc} + .align 2, 0 +_08022B84: .4byte gUnk_03001160 + + thumb_func_start sub_08022B88 +sub_08022B88: @ 0x08022B88 + push {lr} + ldr r2, _08022B9C @ =gUnk_080CBB90 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08022B9C: .4byte gUnk_080CBB90 + + thumb_func_start sub_08022BA0 +sub_08022BA0: @ 0x08022BA0 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x79 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x74 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] + ldr r1, _08022BD0 @ =gUnk_080CBBA0 + adds r0, r4, #0 + bl sub_0800129E + adds r0, r4, #0 + bl sub_08022EAC + pop {r4, pc} + .align 2, 0 +_08022BD0: .4byte gUnk_080CBBA0 + + thumb_func_start sub_08022BD4 +sub_08022BD4: @ 0x08022BD4 + push {lr} + ldr r2, _08022BE8 @ =gUnk_080CBBB4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08022BE8: .4byte gUnk_080CBBB4 + + thumb_func_start sub_08022BEC +sub_08022BEC: @ 0x08022BEC + push {lr} + adds r2, r0, #0 + movs r0, #0x7a + adds r0, r0, r2 + mov ip, r0 + adds r3, r2, #0 + adds r3, #0x45 + ldrb r0, [r0] + ldrb r1, [r3] + cmp r0, r1 + beq _08022C0A + adds r1, r2, #0 + adds r1, #0x7b + movs r0, #0x1e + strb r0, [r1] +_08022C0A: + ldrb r0, [r3] + mov r1, ip + strb r0, [r1] + movs r0, #1 + strb r0, [r2, #0xe] + adds r0, r2, #0 + adds r0, #0x3e + ldrb r0, [r0] + strb r0, [r2, #0x15] + ldrb r0, [r2, #0x15] + adds r0, #2 + movs r1, #0x1c + ands r0, r1 + asrs r0, r0, #2 + strb r0, [r2, #0x14] + strb r0, [r2, #0x1e] + ldr r0, [r2, #0x54] + adds r3, r2, #0 + adds r3, #0x3d + ldrb r1, [r3] + adds r0, #0x3d + strb r1, [r0] + ldr r0, [r2, #0x7c] + ldrb r1, [r3] + adds r0, #0x3d + strb r1, [r0] + adds r0, r2, #0 + adds r0, #0x80 + ldr r0, [r0] + ldrb r1, [r3] + adds r0, #0x3d + strb r1, [r0] + ldr r1, _08022C54 @ =gUnk_080CBBA0 + adds r0, r2, #0 + bl sub_0804AA30 + pop {pc} + .align 2, 0 +_08022C54: .4byte gUnk_080CBBA0 + + thumb_func_start sub_08022C58 +sub_08022C58: @ 0x08022C58 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r7, r0, #0 + ldrb r1, [r7, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r7, #0x10] + ldr r0, _08022D3C @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x44 + bhi _08022D34 + movs r0, #0xd + movs r1, #1 + bl sub_0804AA60 + mov sb, r0 + str r0, [r7, #0x54] + mov r2, sb + adds r2, #0x29 + ldrb r1, [r2] + movs r4, #8 + rsbs r4, r4, #0 + adds r0, r4, #0 + ands r0, r1 + movs r1, #5 + mov r8, r1 + mov r1, r8 + orrs r0, r1 + strb r0, [r2] + mov r0, sb + str r7, [r0, #0x50] + adds r0, r7, #0 + mov r1, sb + bl sub_0806FA24 + movs r0, #0xd + movs r1, #2 + bl sub_0804AA60 + adds r6, r0, #0 + mov r1, sb + str r6, [r1, #0x54] + adds r2, r6, #0 + adds r2, #0x29 + ldrb r1, [r2] + adds r0, r4, #0 + ands r0, r1 + mov r1, r8 + orrs r0, r1 + strb r0, [r2] + str r7, [r6, #0x50] + adds r0, r7, #0 + adds r1, r6, #0 + bl sub_0806FA24 + movs r0, #0xd + movs r1, #3 + bl sub_0804AA60 + adds r5, r0, #0 + str r5, [r6, #0x54] + adds r1, r5, #0 + adds r1, #0x29 + ldrb r0, [r1] + ands r4, r0 + mov r0, r8 + orrs r4, r0 + strb r4, [r1] + str r7, [r5, #0x50] + adds r0, r7, #0 + adds r1, r5, #0 + bl sub_0806FA24 + adds r0, r7, #0 + bl sub_0804A720 + movs r0, #1 + strb r0, [r7, #0xc] + strb r0, [r7, #0xe] + strb r0, [r7, #0xf] + ldrb r0, [r7, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r7, #0x10] + str r7, [r7, #0x50] + mov r1, sb + str r1, [r7, #0x54] + str r6, [r7, #0x7c] + adds r0, r7, #0 + adds r0, #0x80 + str r5, [r0] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + strb r0, [r7, #0x15] + ldrb r0, [r7, #0x15] + adds r0, #2 + movs r1, #0x1c + ands r0, r1 + asrs r0, r0, #2 + strb r0, [r7, #0x14] + strb r0, [r7, #0x1e] + adds r0, r7, #0 + adds r0, #0x45 + ldrb r1, [r0] + adds r0, #0x35 + strb r1, [r0] +_08022D34: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08022D3C: .4byte gUnk_03003DBC + + thumb_func_start sub_08022D40 +sub_08022D40: @ 0x08022D40 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x7b + ldrb r1, [r2] + cmp r1, #0 + beq _08022D66 + adds r0, r1, #0 + adds r0, #0xff + strb r0, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08022D8E + ldrb r0, [r4, #0x14] + adds r0, #1 + movs r1, #7 + ands r0, r1 + b _08022D8A +_08022D66: + adds r0, r4, #0 + bl sub_08022F14 + adds r0, r4, #0 + bl sub_080AEF88 + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _08022D8E + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_0800417E + ldrb r0, [r4, #0x15] + adds r0, #2 + movs r1, #0x1c + ands r0, r1 + asrs r0, r0, #2 +_08022D8A: + strb r0, [r4, #0x14] + strb r0, [r4, #0x1e] +_08022D8E: + pop {r4, pc} + + thumb_func_start sub_08022D90 +sub_08022D90: @ 0x08022D90 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, [r5, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + beq _08022DE0 + ldr r1, _08022DDC @ =gUnk_080CBBBC + ldrb r0, [r5, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + ldr r4, [r5, #0x50] + ldrb r2, [r4, #0x1b] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r5, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r5, #0x1b] + ldrb r0, [r4, #0x19] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r5, #0x19] + ands r1, r2 + orrs r1, r0 + strb r1, [r5, #0x19] + adds r4, #0x38 + ldrb r1, [r4] + adds r0, r5, #0 + adds r0, #0x38 + strb r1, [r0] + b _08022DE6 + .align 2, 0 +_08022DDC: .4byte gUnk_080CBBBC +_08022DE0: + adds r0, r5, #0 + bl sub_0805E7BC +_08022DE6: + pop {r4, r5, pc} + + thumb_func_start sub_08022DE8 +sub_08022DE8: @ 0x08022DE8 + push {lr} + adds r3, r0, #0 + movs r0, #1 + strb r0, [r3, #0xc] + adds r0, r3, #0 + adds r0, #0x7c + movs r1, #0x88 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + ldr r0, [r3, #0x50] + ldrb r0, [r0, #0x14] + strb r0, [r3, #0x14] + adds r2, r3, #0 + adds r2, #0x84 + ldrb r1, [r3, #0x14] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r1, r0, #8 + adds r0, r0, r1 + lsls r1, r0, #0x10 + adds r0, r0, r1 + str r0, [r2] + ldrb r0, [r3, #0xa] + cmp r0, #3 + beq _08022E38 + adds r0, #7 + b _08022E3C +_08022E38: + ldrb r0, [r3, #0x14] + adds r0, #0xa +_08022E3C: + strb r0, [r3, #0x1e] + pop {pc} + + thumb_func_start sub_08022E40 +sub_08022E40: @ 0x08022E40 + push {r4, r5, lr} + adds r4, r0, #0 + ldrh r1, [r4, #0x2e] + adds r0, #0x74 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] + ldr r2, [r4, #0x50] + adds r2, #0x79 + ldrb r0, [r2] + adds r0, #1 + movs r3, #7 + ands r0, r3 + adds r0, #0x7c + adds r0, r4, r0 + ldrb r1, [r0] + movs r0, #0xf + ands r0, r1 + subs r0, #8 + lsrs r1, r1, #4 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r5, [r4, #0x2e] + adds r0, r0, r5 + strh r0, [r4, #0x2e] + subs r1, #8 + ldrh r0, [r4, #0x32] + adds r1, r1, r0 + strh r1, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x84 + ldrb r0, [r2] + adds r0, #1 + ands r0, r3 + lsls r0, r0, #2 + ldr r1, [r1] + lsrs r1, r0 + movs r0, #7 + ands r1, r0 + strb r1, [r4, #0x14] + ldrb r0, [r4, #0xa] + cmp r0, #3 + bne _08022EA2 + adds r0, r1, #0 + adds r0, #0xa + strb r0, [r4, #0x1e] + b _08022EA8 +_08022EA2: + adds r0, r4, #0 + bl sub_08022EAC +_08022EA8: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08022EAC +sub_08022EAC: @ 0x08022EAC + push {r4, r5, lr} + mov ip, r0 + ldr r1, [r0, #0x54] + cmp r1, #0 + beq _08022F12 + ldr r0, [r0, #0x50] + adds r0, #0x79 + ldrb r0, [r0] + movs r4, #7 + adds r3, r4, #0 + ands r3, r0 + adds r3, r3, r1 + adds r3, #0x7c + mov r0, ip + ldrh r1, [r0, #0x2e] + adds r0, #0x74 + ldrb r0, [r0] + subs r1, r1, r0 + adds r1, #8 + movs r5, #0xf + ands r1, r5 + mov r2, ip + ldrh r0, [r2, #0x32] + adds r2, #0x76 + ldrb r2, [r2] + subs r0, r0, r2 + adds r0, #8 + ands r0, r5 + lsls r0, r0, #4 + adds r1, r1, r0 + strb r1, [r3] + mov r1, ip + ldr r0, [r1, #0x50] + adds r0, #0x79 + ldrb r1, [r0] + adds r0, r4, #0 + ands r0, r1 + lsls r0, r0, #2 + mov r2, ip + ldrb r1, [r2, #0x14] + ands r4, r1 + lsls r4, r0 + movs r2, #0xf + lsls r2, r0 + mov r0, ip + ldr r1, [r0, #0x54] + adds r1, #0x84 + ldr r0, [r1] + bics r0, r2 + orrs r4, r0 + str r4, [r1] +_08022F12: + pop {r4, r5, pc} + + thumb_func_start sub_08022F14 +sub_08022F14: @ 0x08022F14 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _08022F4E + adds r0, r4, #0 + bl sub_08049EE4 + ldrb r1, [r4, #0x15] + subs r2, r0, r1 + movs r1, #0x1f + ands r2, r1 + adds r0, r2, #4 + ands r0, r1 + cmp r0, #8 + bls _08022F4E + movs r0, #8 + strb r0, [r4, #0xf] + cmp r2, #0xf + bhi _08022F46 + adds r1, r4, #0 + adds r1, #0x78 + movs r0, #1 + b _08022F4C +_08022F46: + adds r1, r4, #0 + adds r1, #0x78 + movs r0, #0xff +_08022F4C: + strb r0, [r1] +_08022F4E: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08022F9E + movs r0, #4 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r1 + adds r5, r4, #0 + adds r5, #0x78 + cmp r0, #0 + bne _08022F84 + movs r0, #8 + strb r0, [r4, #0xf] + bl sub_08000E50 + ldr r2, _08022FA0 @ =gUnk_080CBBC4 + movs r1, #1 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r5] +_08022F84: + ldrb r0, [r5] + ldrb r1, [r4, #0x15] + adds r0, r0, r1 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] + ldrb r0, [r4, #0x15] + adds r0, #2 + movs r1, #0x1c + ands r0, r1 + asrs r0, r0, #2 + strb r0, [r4, #0x14] + strb r0, [r4, #0x1e] +_08022F9E: + pop {r4, r5, pc} + .align 2, 0 +_08022FA0: .4byte gUnk_080CBBC4 + + thumb_func_start sub_08022FA4 +sub_08022FA4: @ 0x08022FA4 + push {lr} + ldr r1, _08022FB0 @ =gUnk_080CBBC8 + bl sub_0800129E + pop {pc} + .align 2, 0 +_08022FB0: .4byte gUnk_080CBBC8 + + thumb_func_start sub_08022FB4 +sub_08022FB4: @ 0x08022FB4 + push {lr} + ldr r2, _08022FC8 @ =gUnk_080CBBDC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08022FC8: .4byte gUnk_080CBBDC + + thumb_func_start nullsub_133 +nullsub_133: @ 0x08022FCC + bx lr + .align 2, 0 + + thumb_func_start sub_08022FD0 +sub_08022FD0: @ 0x08022FD0 + push {lr} + movs r3, #1 + movs r1, #1 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x18] + subs r1, #5 + ands r1, r2 + orrs r1, r3 + strb r1, [r0, #0x18] + movs r1, #0 + bl sub_08023000 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08022FEC +sub_08022FEC: @ 0x08022FEC + push {lr} + movs r1, #0x80 + bl sub_08023000 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08022FF8 +sub_08022FF8: @ 0x08022FF8 + bx lr + .align 2, 0 + + thumb_func_start sub_08022FFC +sub_08022FFC: @ 0x08022FFC + bx lr + .align 2, 0 + + thumb_func_start sub_08023000 +sub_08023000: @ 0x08023000 + push {r4, lr} + adds r4, r0, #0 + cmp r1, #0x80 + bne _0802300E + bl sub_080042B8 + b _08023014 +_0802300E: + adds r0, r4, #0 + bl sub_080042AC +_08023014: + movs r2, #0x80 + adds r0, r4, #0 + adds r0, #0x5b + ldrb r0, [r0] + cmp r0, #0x40 + bne _08023022 + rsbs r2, r2, #0 +_08023022: + ldrb r0, [r4, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r4, #0 + adds r1, r2, #0 + movs r2, #0x80 + movs r3, #0 + bl sub_0805EC9C + pop {r4, pc} + + thumb_func_start sub_08023038 +sub_08023038: @ 0x08023038 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrh r5, [r4, #0x2e] + ldrh r6, [r4, #0x32] + ldrb r1, [r4, #0xa] + cmp r1, #0 + bne _0802306C + ldrb r0, [r4, #0xc] + cmp r0, #0 + beq _08023052 + adds r0, r4, #0 + bl sub_0802390C +_08023052: + adds r0, r4, #0 + adds r0, #0x7c + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x7d + strb r0, [r1] + ldr r1, _08023068 @ =gUnk_080CBC38 + adds r0, r4, #0 + bl sub_0800129E + b _08023090 + .align 2, 0 +_08023068: .4byte gUnk_080CBC38 +_0802306C: + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + beq _08023088 + cmp r1, #8 + beq _08023080 + adds r0, r4, #0 + bl sub_080235BC + b _08023090 +_08023080: + adds r0, r4, #0 + bl sub_08023730 + b _08023090 +_08023088: + adds r0, r4, #0 + bl sub_0805E7BC + b _080230CA +_08023090: + ldr r0, [r4, #0x50] + adds r2, r0, #0 + adds r2, #0x7c + adds r0, #0x7d + ldrb r1, [r2] + ldrb r0, [r0] + cmp r1, r0 + beq _080230CA + ldr r1, [r4, #0x54] + cmp r1, #0 + beq _080230CA + ldrb r2, [r2] + subs r2, #1 + movs r0, #0xf + ands r2, r0 + adds r2, #0x78 + adds r2, r1, r2 + ldrh r1, [r4, #0x2e] + subs r1, r1, r5 + adds r1, #8 + movs r3, #0xf + ands r1, r3 + lsls r1, r1, #4 + ldrh r0, [r4, #0x32] + subs r0, r0, r6 + adds r0, #8 + ands r0, r3 + orrs r1, r0 + strb r1, [r2] +_080230CA: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080230CC +sub_080230CC: @ 0x080230CC + push {lr} + ldr r2, _080230E0 @ =gUnk_080CBC50 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080230E0: .4byte gUnk_080CBC50 + + thumb_func_start sub_080230E4 +sub_080230E4: @ 0x080230E4 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xd] + cmp r0, #0xff + bne _08023132 + movs r2, #0 + movs r0, #7 + strb r0, [r5, #0xc] + movs r3, #1 + strb r3, [r5, #0xe] + strb r2, [r5, #0xd] + adds r1, r5, #0 + adds r1, #0x3f + movs r0, #0x85 + strb r0, [r1] + subs r1, #2 + movs r0, #0xf8 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x7f + strb r2, [r0] + subs r0, #4 + strb r2, [r0] + subs r0, #0x3a + ldrb r0, [r0] + cmp r0, #0x80 + beq _0802311E + cmp r0, #0x9e + bne _08023128 +_0802311E: + strb r2, [r5, #0xb] + adds r1, r5, #0 + adds r1, #0x80 + movs r0, #0x14 + b _08023130 +_08023128: + strb r3, [r5, #0xb] + adds r1, r5, #0 + adds r1, #0x80 + movs r0, #8 +_08023130: + strb r0, [r1] +_08023132: + adds r0, r5, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _0802318A + adds r0, r5, #0 + adds r0, #0x7f + ldrb r0, [r0] + cmp r0, #0 + bne _0802318A + ldrb r0, [r5, #0xc] + cmp r0, #7 + bne _0802318A + ldr r4, _08023194 @ =gUnk_03001160 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] + movs r0, #0xff + strb r0, [r4, #0x15] + adds r4, #0x3d + movs r0, #0xec + strb r0, [r4] + ldr r2, _08023198 @ =gUnk_03003F80 + movs r0, #0x41 + strb r0, [r2, #2] + ldr r0, [r2, #0x30] + ldr r1, _0802319C @ =0xFFF7FFFF + ands r0, r1 + str r0, [r2, #0x30] +_0802318A: + ldr r1, _080231A0 @ =gUnk_080CBC38 + adds r0, r5, #0 + bl sub_0804AA30 + pop {r4, r5, pc} + .align 2, 0 +_08023194: .4byte gUnk_03001160 +_08023198: .4byte gUnk_03003F80 +_0802319C: .4byte 0xFFF7FFFF +_080231A0: .4byte gUnk_080CBC38 + + thumb_func_start sub_080231A4 +sub_080231A4: @ 0x080231A4 + push {lr} + adds r2, r0, #0 + adds r2, #0x7c + ldrb r1, [r2] + adds r1, #1 + strb r1, [r2] + bl sub_08001324 + + thumb_func_start nullsub_134 +nullsub_134: @ 0x080231B4 + pop {pc} + .align 2, 0 + + thumb_func_start nullsub_135 +nullsub_135: @ 0x080231B8 + bx lr + .align 2, 0 + + thumb_func_start sub_080231BC +sub_080231BC: @ 0x080231BC + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r0, _08023280 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x3f + bhi _0802327E + movs r0, #0xf + movs r1, #1 + bl sub_0804AA60 + adds r4, r0, #0 + str r4, [r6, #0x54] + str r6, [r4, #0x50] + movs r0, #0xf + movs r1, #2 + bl sub_0804AA60 + adds r5, r0, #0 + str r5, [r4, #0x54] + str r6, [r5, #0x50] + movs r0, #0xf + movs r1, #3 + bl sub_0804AA60 + adds r4, r0, #0 + str r4, [r5, #0x54] + str r6, [r4, #0x50] + movs r0, #0xf + movs r1, #4 + bl sub_0804AA60 + adds r5, r0, #0 + str r5, [r4, #0x54] + str r6, [r5, #0x50] + movs r0, #0xf + movs r1, #5 + bl sub_0804AA60 + adds r4, r0, #0 + str r4, [r5, #0x54] + str r6, [r4, #0x50] + movs r0, #0xf + movs r1, #6 + bl sub_0804AA60 + adds r5, r0, #0 + str r5, [r4, #0x54] + str r6, [r5, #0x50] + movs r0, #0xf + movs r1, #7 + bl sub_0804AA60 + adds r4, r0, #0 + str r4, [r5, #0x54] + str r6, [r4, #0x50] + movs r0, #0xf + movs r1, #8 + bl sub_0804AA60 + str r0, [r4, #0x54] + str r4, [r0, #0x74] + str r6, [r0, #0x50] + movs r1, #0 + str r1, [r0, #0x54] + adds r0, r6, #0 + bl sub_0804A720 + movs r0, #6 + strb r0, [r6, #0xc] + movs r1, #0x1e + strb r1, [r6, #0xe] + str r6, [r6, #0x50] + adds r0, r6, #0 + adds r0, #0x78 + strh r1, [r0] + ldrb r1, [r6, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r6, #0x1a] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + strb r0, [r6, #0x15] + ldrb r0, [r6, #0x15] + adds r0, #2 + movs r1, #0x1c + ands r0, r1 + asrs r0, r0, #2 + strb r0, [r6, #0x14] + ldrb r1, [r6, #0x14] + adds r0, r6, #0 + bl sub_08004260 +_0802327E: + pop {r4, r5, r6, pc} + .align 2, 0 +_08023280: .4byte gUnk_03003DBC + + thumb_func_start nullsub_136 +nullsub_136: @ 0x08023284 + bx lr + .align 2, 0 + + thumb_func_start sub_08023288 +sub_08023288: @ 0x08023288 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r7, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _08023324 + ldrb r1, [r7, #0xe] + adds r0, r1, #1 + strb r0, [r7, #0xe] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _08023324 + bl sub_08000E50 + adds r4, r0, #0 + movs r0, #0x1e + ands r4, r0 + movs r0, #0 + mov r8, r0 + ldr r2, _08023308 @ =gUnk_03001160 + mov sb, r2 + ldr r0, _0802330C @ =gUnk_080CBC70 + mov sl, r0 +_080232C2: + mov r2, sb + movs r0, #0x2e + ldrsh r1, [r2, r0] + mov r2, sl + adds r0, r4, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r6, r1, r0 + mov r0, sb + movs r2, #0x32 + ldrsh r1, [r0, r2] + adds r0, r4, #1 + add r0, sl + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r5, r1, r0 + ldr r0, _08023310 @ =gUnk_03001198 + ldrb r2, [r0] + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_080002A4 + bl sub_08023A38 + cmp r0, #0 + beq _08023314 + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r5, #0 + bl sub_08023990 + b _08023324 + .align 2, 0 +_08023308: .4byte gUnk_03001160 +_0802330C: .4byte gUnk_080CBC70 +_08023310: .4byte gUnk_03001198 +_08023314: + adds r4, #2 + movs r0, #0x1e + ands r4, r0 + movs r2, #1 + add r8, r2 + mov r0, r8 + cmp r0, #0xf + bls _080232C2 +_08023324: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08023330 +sub_08023330: @ 0x08023330 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_08004274 + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08023394 + movs r0, #4 + strb r0, [r5, #0xc] + movs r0, #0x19 + strb r0, [r5, #0xe] + ldrb r1, [r5, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + adds r1, r5, #0 + adds r1, #0x78 + movs r4, #0 + movs r0, #0x96 + lsls r0, r0, #2 + strh r0, [r1] + bl sub_08000E50 + movs r1, #0x1c + ands r0, r1 + strb r0, [r5, #0x15] + lsrs r0, r0, #2 + strb r0, [r5, #0x14] + adds r0, r5, #0 + adds r0, #0x7b + strb r4, [r0] + adds r0, #4 + strb r4, [r0] + ldrb r1, [r5, #0x14] + adds r0, r5, #0 + bl sub_08023A88 + ldr r1, [r5, #0x54] + adds r0, r5, #0 + bl sub_0806FA24 + adds r0, r5, #0 + movs r1, #4 + movs r2, #0 + bl sub_080A29AC +_08023394: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08023398 +sub_08023398: @ 0x08023398 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r0, #0x7c + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + adds r0, #3 + ldrb r0, [r0] + cmp r0, #0 + beq _080233C0 + adds r0, r5, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + bne _080233C0 + adds r1, r5, #0 + adds r1, #0x78 + movs r0, #1 + strh r0, [r1] +_080233C0: + adds r4, r5, #0 + adds r4, #0x78 + ldrh r0, [r4] + subs r0, #1 + strh r0, [r4] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08023416 + adds r0, r5, #0 + bl sub_080002A0 + bl sub_08023A38 + cmp r0, #0 + beq _08023412 + movs r0, #5 + strb r0, [r5, #0xc] + adds r1, r5, #0 + adds r1, #0x7f + movs r0, #0 + strb r0, [r1] + ldrb r1, [r5, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + adds r1, r5, #0 + adds r1, #0x3f + movs r0, #0x85 + strb r0, [r1] + ldr r1, [r5, #0x54] + movs r0, #1 + strb r0, [r1, #0xe] + adds r0, r5, #0 + bl sub_08023A68 + adds r0, r5, #0 + movs r1, #4 + movs r2, #0 + bl sub_080A29AC + b _0802349C +_08023412: + movs r0, #0x28 + strh r0, [r4] +_08023416: + adds r0, r5, #0 + adds r0, #0x7f + ldrb r0, [r0] + cmp r0, #0 + beq _08023426 + adds r0, r5, #0 + bl sub_08023AB0 +_08023426: + ldrb r0, [r5, #0xe] + subs r1, r0, #1 + strb r1, [r5, #0xe] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bhi _08023440 + lsls r0, r1, #0x18 + cmp r0, #0 + bne _0802349C + movs r0, #0x19 + strb r0, [r5, #0xe] + b _0802349C +_08023440: + ldr r4, [r5, #0x2c] + ldr r6, [r5, #0x30] + adds r0, r5, #0 + bl sub_080AEF88 + ldr r0, [r5, #0x2c] + cmp r0, r4 + bne _08023460 + ldr r0, [r5, #0x30] + cmp r0, r6 + bne _08023460 + adds r1, r5, #0 + adds r1, #0x7c + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] +_08023460: + ldr r0, _080234A0 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _0802349C + adds r0, r5, #0 + movs r1, #1 + bl sub_08049F84 + adds r1, r0, #0 + adds r0, r5, #0 + bl sub_08004596 + ldrb r0, [r5, #0x15] + adds r0, #2 + movs r1, #0x1c + ands r0, r1 + asrs r0, r0, #2 + ldrb r1, [r5, #0x14] + cmp r0, r1 + beq _0802349C + strb r0, [r5, #0x14] + adds r1, r5, #0 + adds r1, #0x7b + ldrb r1, [r1] + adds r1, r0, r1 + adds r0, r5, #0 + bl sub_08004260 +_0802349C: + pop {r4, r5, r6, pc} + .align 2, 0 +_080234A0: .4byte gUnk_030010A0 + + thumb_func_start sub_080234A4 +sub_080234A4: @ 0x080234A4 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x7c + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x7f + ldrb r0, [r0] + cmp r0, #0 + beq _080234D6 + movs r0, #6 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #0xa + ands r0, r1 + strb r0, [r4, #0x18] + adds r1, r4, #0 + adds r1, #0x78 + movs r0, #0x96 + lsls r0, r0, #1 + strh r0, [r1] +_080234D6: + pop {r4, pc} + + thumb_func_start sub_080234D8 +sub_080234D8: @ 0x080234D8 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0802351A + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x1a] + subs r0, #0x12 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r4, #0x1a] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] + ldrb r0, [r4, #0x15] + adds r0, #2 + movs r1, #0x1c + ands r0, r1 + asrs r0, r0, #2 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08023A88 +_0802351A: + pop {r4, pc} + + thumb_func_start sub_0802351C +sub_0802351C: @ 0x0802351C + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + ldrb r0, [r7, #0xe] + cmp r0, #0 + beq _0802355A + ldrb r0, [r7, #0xb] + cmp r0, #1 + beq _08023534 + ldr r0, _080235A8 @ =gUnk_03001160 + ldrb r0, [r0, #0x1e] + cmp r0, #0xff + bne _0802355A +_08023534: + movs r0, #0 + strb r0, [r7, #0xe] + ldr r1, [r7, #0x54] + movs r0, #3 + strb r0, [r1, #0xc] + ldr r1, [r7, #0x54] + adds r0, r7, #0 + adds r0, #0x80 + ldrb r0, [r0] + strb r0, [r1, #0xf] + ldr r0, [r7, #0x54] + ldrb r1, [r0, #0x14] + adds r1, #1 + bl sub_08004260 + ldrb r1, [r7, #0x14] + adds r0, r7, #0 + bl sub_08004260 +_0802355A: + adds r0, r7, #0 + adds r0, #0x7f + ldrb r0, [r0] + cmp r0, #0 + bne _080235B4 + ldrb r0, [r7, #0xb] + cmp r0, #0 + bne _080235B8 + ldr r5, _080235A8 @ =gUnk_03001160 + ldrb r0, [r7, #0x14] + movs r4, #7 + adds r2, r4, #0 + ands r2, r0 + strb r2, [r5, #0x14] + ldr r3, _080235AC @ =gUnk_03003F80 + ldr r0, [r3, #0x30] + movs r1, #0x80 + lsls r1, r1, #0xc + orrs r0, r1 + str r0, [r3, #0x30] + ldr r6, _080235B0 @ =gUnk_080CBC90 + adds r2, r2, r6 + movs r3, #0 + ldrsb r3, [r2, r3] + lsls r3, r3, #0x10 + adds r0, r7, #0 + adds r1, r5, #0 + movs r2, #0 + bl sub_0806FA48 + ldrb r0, [r7, #0x14] + ands r4, r0 + adds r4, r4, r6 + ldrb r0, [r4] + rsbs r0, r0, #0 + adds r5, #0x63 + strb r0, [r5] + b _080235B8 + .align 2, 0 +_080235A8: .4byte gUnk_03001160 +_080235AC: .4byte gUnk_03003F80 +_080235B0: .4byte gUnk_080CBC90 +_080235B4: + movs r0, #4 + strb r0, [r7, #0xc] +_080235B8: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_080235BC +sub_080235BC: @ 0x080235BC + push {lr} + ldr r2, _080235D0 @ =gUnk_080CBC98 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080235D0: .4byte gUnk_080CBC98 + + thumb_func_start sub_080235D4 +sub_080235D4: @ 0x080235D4 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r1, [r4, #0x50] + ldrh r0, [r1, #0x2e] + strh r0, [r4, #0x2e] + ldrh r0, [r1, #0x32] + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl sub_080239F0 + ldrb r0, [r4, #0xa] + cmp r0, #1 + bne _080235F6 + movs r0, #0x10 + b _080235F8 +_080235F6: + movs r0, #0x12 +_080235F8: + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 + pop {r4, pc} + + thumb_func_start sub_08023604 +sub_08023604: @ 0x08023604 + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x50] + adds r0, #0x7c + ldrb r1, [r0] + movs r0, #0xf + ands r0, r1 + adds r0, r0, r2 + adds r0, #0x78 + ldrb r0, [r0] + cmp r0, #0x88 + beq _08023640 + movs r1, #0 + movs r0, #2 + strb r0, [r2, #0xc] + strb r1, [r2, #0xe] + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + adds r0, r2, #0 + bl sub_08023644 +_08023640: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08023644 +sub_08023644: @ 0x08023644 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + adds r0, r5, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0x17 + bne _08023692 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08023692 + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r2, #0x2e + ldrsh r0, [r5, r2] + cmp r1, r0 + bne _08023692 + movs r6, #0x32 + ldrsh r1, [r4, r6] + movs r2, #0x32 + ldrsh r0, [r5, r2] + cmp r1, r0 + bne _08023692 + movs r2, #1 + strb r2, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + ldr r0, [r4, #0x54] + strb r2, [r0, #0xe] + adds r0, r4, #0 + bl sub_080239F0 +_08023692: + adds r0, r5, #0 + adds r0, #0x7c + adds r1, r5, #0 + adds r1, #0x7d + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + beq _080236F2 + movs r2, #0xf + adds r1, r2, #0 + ands r1, r0 + adds r1, #0x78 + adds r1, r4, r1 + ldrb r0, [r1] + lsrs r0, r0, #4 + ldr r3, _080236F4 @ =0x0000FFF8 + adds r0, r0, r3 + ldrh r6, [r4, #0x2e] + adds r0, r0, r6 + strh r0, [r4, #0x2e] + ldrb r0, [r1] + ands r2, r0 + adds r2, r2, r3 + ldrh r0, [r4, #0x32] + adds r2, r2, r0 + strh r2, [r4, #0x32] + ldrb r2, [r5, #0x1b] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r4, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r4, #0x1b] + ldrb r0, [r5, #0x19] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r4, #0x19] + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #0x19] + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] +_080236F2: + pop {r4, r5, r6, pc} + .align 2, 0 +_080236F4: .4byte 0x0000FFF8 + + thumb_func_start sub_080236F8 +sub_080236F8: @ 0x080236F8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802372E + movs r0, #2 + strb r0, [r4, #0xc] + ldr r1, [r4, #0x54] + movs r0, #3 + strb r0, [r1, #0xc] + ldr r1, [r4, #0x54] + ldr r0, [r4, #0x50] + adds r0, #0x80 + ldrb r0, [r0] + strb r0, [r1, #0xf] + ldr r0, [r4, #0x54] + ldrb r1, [r0, #0x14] + adds r1, #1 + bl sub_08004260 + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 +_0802372E: + pop {r4, pc} + + thumb_func_start sub_08023730 +sub_08023730: @ 0x08023730 + push {lr} + ldr r2, _08023744 @ =gUnk_080CBCA8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08023744: .4byte gUnk_080CBCA8 + + thumb_func_start sub_08023748 +sub_08023748: @ 0x08023748 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x14 + strb r0, [r4, #0x14] + ldr r1, [r4, #0x50] + ldrh r0, [r1, #0x2e] + strh r0, [r4, #0x2e] + ldrh r0, [r1, #0x32] + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl sub_080239F0 + adds r0, r4, #0 + bl sub_08023A68 + pop {r4, pc} + + thumb_func_start sub_0802376C +sub_0802376C: @ 0x0802376C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + ldrb r0, [r5, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _0802379A + adds r0, r5, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0xf + bhi _0802379A + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r4, #0x18] + adds r0, r4, #0 + bl sub_08004274 +_0802379A: + adds r0, r5, #0 + adds r0, #0x7c + ldrb r1, [r0] + movs r0, #0xf + ands r0, r1 + adds r0, r0, r4 + adds r0, #0x78 + ldrb r0, [r0] + cmp r0, #0x88 + beq _080237D4 + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldr r0, [r4, #0x50] + adds r0, #0x7f + movs r1, #1 + strb r1, [r0] + adds r0, r4, #0 + movs r1, #0x14 + bl sub_08023A88 + adds r0, r4, #0 + bl sub_080237D8 +_080237D4: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080237D8 +sub_080237D8: @ 0x080237D8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + adds r0, r5, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0x17 + bne _0802382E + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0802382E + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r2, #0x2e + ldrsh r0, [r5, r2] + cmp r1, r0 + bne _0802382E + movs r6, #0x32 + ldrsh r1, [r4, r6] + movs r2, #0x32 + ldrsh r0, [r5, r2] + cmp r1, r0 + bne _0802382E + movs r2, #1 + strb r2, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r5, #0 + adds r0, #0x7f + strb r2, [r0] + adds r0, r4, #0 + bl sub_080239F0 + adds r0, r4, #0 + bl sub_08023A68 +_0802382E: + adds r0, r5, #0 + adds r0, #0x7c + adds r1, r5, #0 + adds r1, #0x7d + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + beq _0802388E + movs r2, #0xf + adds r1, r2, #0 + ands r1, r0 + adds r1, #0x78 + adds r1, r4, r1 + ldrb r0, [r1] + lsrs r0, r0, #4 + ldr r3, _08023890 @ =0x0000FFF8 + adds r0, r0, r3 + ldrh r6, [r4, #0x2e] + adds r0, r0, r6 + strh r0, [r4, #0x2e] + ldrb r0, [r1] + ands r2, r0 + adds r2, r2, r3 + ldrh r0, [r4, #0x32] + adds r2, r2, r0 + strh r2, [r4, #0x32] + ldrb r2, [r5, #0x1b] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r4, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r4, #0x1b] + ldrb r0, [r5, #0x19] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r4, #0x19] + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #0x19] + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] +_0802388E: + pop {r4, r5, r6, pc} + .align 2, 0 +_08023890: .4byte 0x0000FFF8 + + thumb_func_start sub_08023894 +sub_08023894: @ 0x08023894 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08023900 + movs r0, #2 + strb r0, [r5, #0xc] + ldr r0, [r5, #0x50] + adds r0, #0x7f + movs r1, #1 + strb r1, [r0] + ldrb r1, [r5, #0x14] + adds r0, r5, #0 + bl sub_08004260 + ldr r0, [r5, #0x50] + ldrb r0, [r0, #0xb] + cmp r0, #0 + bne _08023900 + ldr r2, _08023904 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #0xe + orrs r0, r1 + str r0, [r2, #0x30] + ldr r4, _08023908 @ =gUnk_03001160 + ldrh r0, [r5, #0x2e] + strh r0, [r4, #0x2e] + ldrh r0, [r5, #0x32] + strh r0, [r4, #0x32] + ldr r0, [r5, #0x74] + adds r1, r5, #0 + bl sub_080045C4 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + lsrs r0, r0, #2 + strb r0, [r4, #0x14] + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0xc + strb r0, [r1] + subs r0, #0x1c + bl sub_080526A0 + adds r0, r4, #0 + movs r1, #0x7a + bl sub_0800449C +_08023900: + pop {r4, r5, pc} + .align 2, 0 +_08023904: .4byte gUnk_03003F80 +_08023908: .4byte gUnk_03001160 + + thumb_func_start sub_0802390C +sub_0802390C: @ 0x0802390C + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08023932 + ldr r2, [r5, #0x54] + adds r3, r5, #0 + adds r3, #0x3d +_08023922: + ldrb r0, [r3] + adds r1, r2, #0 + adds r1, #0x3d + strb r0, [r1] + ldr r2, [r2, #0x54] + cmp r2, #0 + bne _08023922 + b _0802398C +_08023932: + ldr r2, [r5, #0x54] + b _0802393C +_08023936: + ldr r2, [r2, #0x54] + cmp r2, #0 + beq _0802398C +_0802393C: + adds r0, r2, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08023936 + movs r0, #0x45 + adds r0, r0, r2 + mov ip, r0 + ldrb r1, [r0] + movs r4, #0xff + subs r0, r4, r1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + beq _08023936 + adds r0, r1, #0 + orrs r0, r4 + mov r1, ip + strb r0, [r1] + adds r0, r2, #0 + adds r0, #0x3d + ldrb r4, [r0] + adds r1, r5, #0 + adds r1, #0x45 + ldrb r0, [r1] + cmp r0, r3 + blo _0802397A + subs r0, r0, r3 + b _0802397C +_0802397A: + movs r0, #0 +_0802397C: + strb r0, [r1] + adds r2, r5, #0 +_08023980: + adds r0, r2, #0 + adds r0, #0x3d + strb r4, [r0] + ldr r2, [r2, #0x54] + cmp r2, #0 + bne _08023980 +_0802398C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08023990 +sub_08023990: @ 0x08023990 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #3 + strb r0, [r5, #0xc] + ldrb r3, [r5, #0x18] + subs r0, #7 + ands r0, r3 + movs r3, #1 + orrs r0, r3 + strb r0, [r5, #0x18] + movs r0, #0x55 + strb r0, [r5, #0x1a] + adds r4, r5, #0 + adds r4, #0x29 + ldrb r0, [r4] + movs r3, #7 + orrs r0, r3 + strb r0, [r4] + strh r1, [r5, #0x2e] + strh r2, [r5, #0x32] + ldr r0, _080239EC @ =gUnk_03001160 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r5, #0 + adds r0, #0x38 + strb r1, [r0] + adds r0, r5, #0 + bl sub_08016A04 + adds r0, r5, #0 + movs r1, #0x16 + bl sub_08004260 + ldr r4, [r5, #0x54] +_080239D4: + adds r0, r4, #0 + bl sub_080239F0 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldr r4, [r4, #0x54] + cmp r4, #0 + bne _080239D4 + pop {r4, r5, pc} + .align 2, 0 +_080239EC: .4byte gUnk_03001160 + + thumb_func_start sub_080239F0 +sub_080239F0: @ 0x080239F0 + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x78 + movs r0, #0x88 + strb r0, [r1] + adds r1, #1 + strb r0, [r1] + adds r1, #1 + strb r0, [r1] + adds r1, #1 + strb r0, [r1] + adds r1, #1 + strb r0, [r1] + adds r1, #1 + strb r0, [r1] + adds r1, #1 + strb r0, [r1] + adds r1, #1 + strb r0, [r1] + adds r1, #1 + strb r0, [r1] + adds r1, #1 + strb r0, [r1] + adds r1, #1 + strb r0, [r1] + adds r1, #1 + strb r0, [r1] + adds r1, #1 + strb r0, [r1] + adds r1, #1 + strb r0, [r1] + adds r1, #1 + strb r0, [r1] + adds r1, #1 + strb r0, [r1] + bx lr + + thumb_func_start sub_08023A38 +sub_08023A38: @ 0x08023A38 + push {lr} + adds r1, r0, #0 + cmp r1, #0x1a + beq _08023A5A + cmp r1, #0x29 + beq _08023A5A + ldr r0, _08023A60 @ =gUnk_080B37A0 + adds r0, r1, r0 + ldrb r1, [r0] + cmp r1, #9 + beq _08023A5A + cmp r1, #0xb + beq _08023A5A + cmp r1, #0xa + beq _08023A5A + cmp r1, #0xc + bne _08023A64 +_08023A5A: + movs r0, #1 + b _08023A66 + .align 2, 0 +_08023A60: .4byte gUnk_080B37A0 +_08023A64: + movs r0, #0 +_08023A66: + pop {pc} + + thumb_func_start sub_08023A68 +sub_08023A68: @ 0x08023A68 + push {r4, lr} + adds r4, r0, #0 + movs r1, #5 + bl sub_0801D2B4 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #0x17 + bl sub_08004260 + pop {r4, pc} + + thumb_func_start sub_08023A88 +sub_08023A88: @ 0x08023A88 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r1, #0x22 + bl sub_0801D2B4 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08004260 + pop {r4, r5, pc} + + thumb_func_start sub_08023AB0 +sub_08023AB0: @ 0x08023AB0 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r7, r4, #0 + adds r7, #0x7b + ldrb r0, [r7] + cmp r0, #8 + bne _08023AF6 + adds r5, r4, #0 + adds r5, #0x7e + ldrb r0, [r5] + adds r6, r0, #0 + cmp r6, #0 + bne _08023B00 + adds r0, r4, #0 + bl sub_08023B38 + cmp r0, #0 + beq _08023ADE + adds r0, r4, #0 + adds r0, #0x78 + ldrh r0, [r0] + cmp r0, #0x1d + bhi _08023B34 +_08023ADE: + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x85 + strb r0, [r1] + strb r6, [r7] + movs r0, #0x1e + strb r0, [r5] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 + b _08023B34 +_08023AF6: + adds r5, r4, #0 + adds r5, #0x7e + ldrb r0, [r5] + cmp r0, #0 + beq _08023B06 +_08023B00: + subs r0, #1 + strb r0, [r5] + b _08023B34 +_08023B06: + adds r0, r4, #0 + adds r0, #0x78 + ldrh r0, [r0] + cmp r0, #0x59 + bls _08023B34 + adds r0, r4, #0 + bl sub_08023B38 + cmp r0, #0 + beq _08023B34 + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x87 + strb r0, [r1] + movs r0, #8 + strb r0, [r7] + movs r0, #0xa + strb r0, [r5] + ldrb r1, [r4, #0x14] + adds r1, #8 + adds r0, r4, #0 + bl sub_08004260 +_08023B34: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08023B38 +sub_08023B38: @ 0x08023B38 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r0, #1 + bl sub_08049DF4 + adds r5, r0, #0 + cmp r5, #0 + bne _08023B4C + movs r0, #0 + b _08023B8E +_08023B4C: + movs r0, #0x2e + ldrsh r2, [r4, r0] + ldr r3, _08023B90 @ =gUnk_080CBCB8 + ldrb r0, [r4, #0x14] + lsls r0, r0, #1 + adds r1, r0, r3 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r2, r2, r1 + movs r6, #0x32 + ldrsh r1, [r4, r6] + adds r0, #1 + adds r0, r0, r3 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r1, r1, r0 + movs r3, #0 + movs r4, #0x2e + ldrsh r0, [r5, r4] + subs r0, r0, r2 + adds r0, #0x14 + cmp r0, #0x28 + bhi _08023B8C + movs r6, #0x32 + ldrsh r0, [r5, r6] + subs r0, r0, r1 + adds r0, #0x14 + cmp r0, #0x28 + bhi _08023B8C + movs r3, #1 +_08023B8C: + adds r0, r3, #0 +_08023B8E: + pop {r4, r5, r6, pc} + .align 2, 0 +_08023B90: .4byte gUnk_080CBCB8 + + thumb_func_start sub_08023B94 +sub_08023B94: @ 0x08023B94 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xa] + cmp r0, #1 + bne _08023BAC + ldr r1, _08023BA8 @ =gUnk_080CBDBC + adds r0, r5, #0 + bl sub_0800129E + b _08023BEC + .align 2, 0 +_08023BA8: .4byte gUnk_080CBDBC +_08023BAC: + cmp r0, #0 + bne _08023C00 + movs r1, #0x36 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _08023BD8 + adds r0, r5, #0 + bl sub_080012DC + adds r1, r0, #0 + cmp r1, #0 + beq _08023BD8 + ldr r0, _08023BD4 @ =0x080012C8 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r5, #0 + bl _call_via_r1 + b _08023C06 + .align 2, 0 +_08023BD4: .4byte 0x080012C8 +_08023BD8: + ldr r4, _08023BFC @ =gUnk_080CBDD4 + adds r0, r5, #0 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 +_08023BEC: + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r5, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + b _08023C06 + .align 2, 0 +_08023BFC: .4byte gUnk_080CBDD4 +_08023C00: + adds r0, r5, #0 + bl sub_08023E10 +_08023C06: + pop {r4, r5, pc} + + thumb_func_start sub_08023C08 +sub_08023C08: @ 0x08023C08 + push {lr} + ldr r2, _08023C1C @ =gUnk_080CBDEC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08023C1C: .4byte gUnk_080CBDEC + + thumb_func_start sub_08023C20 +sub_08023C20: @ 0x08023C20 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _08023C34 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08023C34: + ldrb r0, [r4, #0xa] + cmp r0, #1 + bne _08023C48 + ldr r1, _08023C44 @ =gUnk_080CBDBC + adds r0, r4, #0 + bl sub_0804AA30 + b _08023C50 + .align 2, 0 +_08023C44: .4byte gUnk_080CBDBC +_08023C48: + ldr r1, _08023C54 @ =gUnk_080CBDD4 + adds r0, r4, #0 + bl sub_0804AA30 +_08023C50: + pop {r4, pc} + .align 2, 0 +_08023C54: .4byte gUnk_080CBDD4 + + thumb_func_start nullsub_137 +nullsub_137: @ 0x08023C58 + bx lr + .align 2, 0 + + thumb_func_start sub_08023C5C +sub_08023C5C: @ 0x08023C5C + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r0, #1 + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r1, #0x30 + ands r0, r1 + adds r0, #0xb4 + strb r0, [r4, #0xe] + bl sub_08000E50 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + lsrs r0, r0, #3 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 + pop {r4, pc} + + thumb_func_start sub_08023C8C +sub_08023C8C: @ 0x08023C8C + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_08023E54 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08023CDC + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #1 + beq _08023CBC + movs r0, #8 + strb r0, [r4, #0xe] + b _08023CDC +_08023CBC: + bl sub_08000E50 + movs r1, #0x30 + ands r0, r1 + adds r0, #0xb4 + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_08023E9C + ldrb r0, [r4, #0x15] + lsrs r0, r0, #3 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 +_08023CDC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08023CE0 +sub_08023CE0: @ 0x08023CE0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _08023D48 + cmp r0, #1 + bgt _08023CF4 + cmp r0, #0 + beq _08023CFA + b _08023DC0 +_08023CF4: + cmp r0, #2 + beq _08023D6E + b _08023DC0 +_08023CFA: + adds r0, r4, #0 + bl sub_0804A720 + ldrb r1, [r4, #0xb] + cmp r1, #1 + bne _08023D1C + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _08023D12 + strb r1, [r4, #0xe] +_08023D12: + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + b _08023D20 +_08023D1C: + movs r0, #1 + strb r0, [r4, #0xc] +_08023D20: + ldr r0, _08023D44 @ =0x0000FF80 + strh r0, [r4, #0x36] + ldrb r2, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r4, #0x19] + ldrb r0, [r4, #0x1b] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x1b] + adds r0, r4, #0 + movs r1, #6 + bl sub_08004260 + b _08023E0A + .align 2, 0 +_08023D44: .4byte 0x0000FF80 +_08023D48: + adds r0, r4, #0 + movs r1, #1 + movs r2, #0x20 + bl sub_08049F64 + cmp r0, #0 + beq _08023E0A + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _08023D64 + movs r0, #8 + strb r0, [r4, #0xe] +_08023D64: + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + b _08023E0A +_08023D6E: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08023D94 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08023E0A + ldr r0, _08023D90 @ =0x0000012D + bl sub_08004488 + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 + b _08023E0A + .align 2, 0 +_08023D90: .4byte 0x0000012D +_08023D94: + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08023E0A + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #7 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #0x84 + bl sub_08004488 + adds r0, r4, #0 + bl sub_08016A04 + b _08023E0A +_08023DC0: + adds r0, r4, #0 + bl sub_08004274 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + cmp r1, #0 + beq _08023E0A + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08023DF2 + movs r0, #0x10 + movs r1, #1 + bl sub_0804AA60 + adds r1, r0, #0 + cmp r1, #0 + beq _08023E0A + adds r0, r4, #0 + bl sub_0804A4E4 + bl sub_0805E780 + b _08023E0A +_08023DF2: + ldr r1, _08023E0C @ =gUnk_080CBDF4 + ldrb r0, [r2] + subs r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + movs r1, #0 + strh r0, [r4, #0x32] + strb r1, [r2] +_08023E0A: + pop {r4, pc} + .align 2, 0 +_08023E0C: .4byte gUnk_080CBDF4 + + thumb_func_start sub_08023E10 +sub_08023E10: @ 0x08023E10 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08023E36 + movs r0, #1 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #9 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #5 + bl sub_08004260 +_08023E36: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08023E50 + adds r0, r4, #0 + bl sub_0805E7BC +_08023E50: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08023E54 +sub_08023E54: @ 0x08023E54 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + adds r1, r0, #1 + strb r1, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1b + bls _08023E94 + movs r0, #0 + strb r0, [r4, #0xf] + movs r0, #0x10 + movs r1, #2 + bl sub_0804AA60 + adds r5, r0, #0 + cmp r5, #0 + beq _08023E94 + ldrb r0, [r4, #0x14] + lsls r0, r0, #1 + ldr r1, _08023E98 @ =gUnk_080CBDF7 + adds r0, r0, r1 + movs r2, #0 + ldrsb r2, [r0, r2] + lsls r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r0, r3] + lsls r3, r3, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FA48 +_08023E94: + pop {r4, r5, pc} + .align 2, 0 +_08023E98: .4byte gUnk_080CBDF7 + + thumb_func_start sub_08023E9C +sub_08023E9C: @ 0x08023E9C + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_08000E50 + adds r6, r0, #0 + adds r0, r5, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _08023EC2 + movs r0, #1 + ands r0, r6 + cmp r0, #0 + beq _08023EC2 + adds r0, r5, #0 + bl sub_08049EE4 + adds r0, #4 + b _08023F1C +_08023EC2: + adds r0, r5, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _08023F0A + movs r0, #6 + ands r0, r6 + cmp r0, #0 + beq _08023F0A + ldr r0, _08023F00 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r5, #0 + bl sub_080045C4 + ldrb r2, [r5, #0x15] + subs r1, r0, r2 + cmp r1, #0 + beq _08023F22 + adds r0, r1, #4 + movs r3, #0x1f + ands r0, r3 + cmp r0, #8 + bls _08023F22 + ands r1, r3 + cmp r1, #0xf + bhi _08023F04 + adds r0, r2, #0 + adds r0, #8 + b _08023F1C + .align 2, 0 +_08023F00: .4byte gUnk_020000B0 +_08023F04: + adds r0, r2, #0 + subs r0, #8 + b _08023F1C +_08023F0A: + ldr r4, _08023F24 @ =gUnk_080CBDFF + lsrs r0, r6, #4 + movs r1, #3 + bl __modsi3 + adds r0, r0, r4 + ldrb r0, [r0] + ldrb r1, [r5, #0x15] + adds r0, r0, r1 +_08023F1C: + movs r1, #0x18 + ands r0, r1 + strb r0, [r5, #0x15] +_08023F22: + pop {r4, r5, r6, pc} + .align 2, 0 +_08023F24: .4byte gUnk_080CBDFF + + thumb_func_start sub_08023F28 +sub_08023F28: @ 0x08023F28 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _08023F40 @ =gUnk_080CBEC4 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_08023F40: .4byte gUnk_080CBEC4 + + thumb_func_start sub_08023F44 +sub_08023F44: @ 0x08023F44 + push {lr} + ldr r2, _08023F58 @ =gUnk_080CBEDC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08023F58: .4byte gUnk_080CBEDC + + thumb_func_start sub_08023F5C +sub_08023F5C: @ 0x08023F5C + push {r4, lr} + mov ip, r0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0x6e + beq _08023FC8 + mov r0, ip + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x80 + bne _08023FD0 + mov r1, ip + adds r1, #0x86 + movs r0, #0x30 + strb r0, [r1] + mov r2, ip + adds r2, #0x83 + ldrb r1, [r2] + movs r0, #0xf + ands r0, r1 + adds r4, r2, #0 + cmp r0, #3 + bne _08023FD0 + mov r1, ip + ldrb r0, [r1, #0xc] + cmp r0, #6 + bne _08023FD0 + subs r2, #3 + ldrb r0, [r2] + cmp r0, #1 + beq _08023FA0 + cmp r0, #2 + beq _08023FB8 + b _08023FD0 +_08023FA0: + movs r0, #0 + ldr r1, _08023FC4 @ =0x0000FFF0 + mov r3, ip + strh r1, [r3, #0x36] + adds r3, #0x82 + strb r0, [r3] + mov r0, ip + adds r0, #0x78 + strh r1, [r0] + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] +_08023FB8: + ldrb r1, [r4] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4] + b _08023FD0 + .align 2, 0 +_08023FC4: .4byte 0x0000FFF0 +_08023FC8: + mov r1, ip + adds r1, #0x45 + movs r0, #0 + strb r0, [r1] +_08023FD0: + ldr r1, _08023FDC @ =gUnk_080CBEC4 + mov r0, ip + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_08023FDC: .4byte gUnk_080CBEC4 + + thumb_func_start sub_08023FE0 +sub_08023FE0: @ 0x08023FE0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08001324 + + thumb_func_start sub_08023FE8 +sub_08023FE8: @ 0x08023FE8 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_08023FF0 +sub_08023FF0: @ 0x08023FF0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #2 + bhi _08024022 + adds r0, r4, #0 + bl sub_0806F520 + cmp r0, #0 + bne _08024022 + movs r2, #1 + strb r2, [r4, #0xc] + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x77 + strb r0, [r1] + strb r2, [r4, #0xe] + movs r0, #0x40 + strh r0, [r4, #0x24] + b _08024032 +_08024022: + ldr r0, _08024034 @ =gUnk_080CBEF8 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_08024032: + pop {r4, pc} + .align 2, 0 +_08024034: .4byte gUnk_080CBEF8 + + thumb_func_start sub_08024038 +sub_08024038: @ 0x08024038 + push {lr} + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x3c + strb r1, [r0, #0x1d] + bl sub_08004274 + pop {pc} + + thumb_func_start sub_08024048 +sub_08024048: @ 0x08024048 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F4E8 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_08024058 +sub_08024058: @ 0x08024058 + push {lr} + bl sub_0806F3E4 + pop {pc} + + thumb_func_start sub_08024060 +sub_08024060: @ 0x08024060 + push {lr} + adds r3, r0, #0 + adds r2, r3, #0 + adds r2, #0x3f + ldrb r0, [r2] + cmp r0, #0x6e + beq _0802408C + ldrb r1, [r3, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r3, #0x10] + movs r0, #0x6e + strb r0, [r2] + ldr r0, _08024094 @ =gUnk_03001160 + ldrb r1, [r0, #0x19] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r3, #0x19] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x19] +_0802408C: + adds r0, r3, #0 + bl sub_08004274 + pop {pc} + .align 2, 0 +_08024094: .4byte gUnk_03001160 + + thumb_func_start nullsub_138 +nullsub_138: @ 0x08024098 + bx lr + .align 2, 0 + + thumb_func_start sub_0802409C +sub_0802409C: @ 0x0802409C + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x45 + movs r0, #0 + strb r0, [r1] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_080A29BC + pop {r4, pc} + + thumb_func_start sub_080240B8 +sub_080240B8: @ 0x080240B8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + bl sub_08000E50 + movs r1, #0xc0 + ands r1, r0 + lsrs r7, r1, #3 + adds r0, r4, #0 + bl sub_0804A720 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x80 + strb r1, [r0] + movs r0, #8 + ands r0, r7 + cmp r0, #0 + beq _080240FC + movs r0, #0x32 + ldrsh r1, [r4, r0] + movs r0, #0x10 + ands r0, r7 + cmp r0, #0 + beq _080240F4 + adds r0, r1, #0 + subs r0, #0x20 + b _080240F8 +_080240F4: + adds r0, r1, #0 + adds r0, #0x20 +_080240F8: + strh r0, [r4, #0x32] + b _08024114 +_080240FC: + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r0, #0x10 + ands r0, r7 + cmp r0, #0 + beq _0802410E + adds r0, r1, #0 + subs r0, #0x20 + b _08024112 +_0802410E: + adds r0, r1, #0 + adds r0, #0x20 +_08024112: + strh r0, [r4, #0x2e] +_08024114: + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _08024120 + cmp r0, #1 + beq _0802412C + b _08024136 +_08024120: + adds r1, r4, #0 + adds r1, #0x78 + ldr r0, _08024128 @ =0x0000FFF0 + b _08024132 + .align 2, 0 +_08024128: .4byte 0x0000FFF0 +_0802412C: + adds r1, r4, #0 + adds r1, #0x78 + ldr r0, _080241BC @ =0x0000FFD0 +_08024132: + strh r0, [r1] + strh r0, [r4, #0x36] +_08024136: + adds r0, r4, #0 + bl sub_08016A04 + bl sub_08052660 + cmp r0, #0 + beq _08024150 + ldrb r0, [r4, #0x1b] + movs r1, #0x3f + ands r1, r0 + movs r0, #0x40 + orrs r1, r0 + strb r1, [r4, #0x1b] +_08024150: + bl sub_08000E50 + movs r1, #0x40 + ands r0, r1 + adds r1, r4, #0 + adds r1, #0x81 + movs r6, #0 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x82 + strb r6, [r0] + adds r5, r4, #0 + adds r5, #0x83 + movs r0, #0x80 + strb r0, [r5] + adds r0, r4, #0 + adds r0, #0x86 + strb r6, [r0] + adds r0, #1 + strb r6, [r0] + strb r6, [r4, #0xe] + movs r0, #0x20 + strb r0, [r4, #0xf] + adds r2, r4, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0x10 + orrs r0, r1 + strb r0, [r2] + movs r0, #2 + strb r0, [r4, #0x1c] + strb r7, [r4, #0x15] + adds r0, r4, #0 + bl sub_080249DC + ldrb r0, [r4, #0xa] + cmp r0, #1 + bne _080241B8 + strb r6, [r5] + ldrb r2, [r5] + adds r0, r4, #0 + movs r1, #6 + bl sub_0804A98C + adds r1, r0, #0 + cmp r1, #0 + beq _080241B8 + str r1, [r4, #0x54] + str r4, [r1, #0x50] + ldrh r0, [r1, #0x32] + adds r0, #0x10 + strh r0, [r1, #0x32] +_080241B8: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080241BC: .4byte 0x0000FFD0 + + thumb_func_start sub_080241C0 +sub_080241C0: @ 0x080241C0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_08024940 + adds r6, r4, #0 + adds r6, #0x80 + ldrb r5, [r6] + cmp r5, #0 + beq _080241D8 + cmp r5, #1 + beq _08024238 + b _08024296 +_080241D8: + ldr r0, _08024218 @ =gUnk_03003F80 + ldrb r0, [r0, #0xf] + movs r2, #0x40 + cmp r0, #0 + beq _080241E4 + movs r2, #0xa0 +_080241E4: + adds r0, r4, #0 + movs r1, #3 + bl sub_08049F64 + cmp r0, #0 + beq _08024220 + adds r0, r4, #0 + movs r1, #3 + bl sub_08049FDC + cmp r0, #0 + beq _08024220 + ldr r0, _0802421C @ =gUnk_03001160 + ldrb r0, [r0, #0xc] + cmp r0, #0x1e + beq _08024220 + ldrb r0, [r6] + adds r0, #1 + strb r0, [r6] + strh r5, [r4, #0x24] + adds r0, r4, #0 + movs r1, #3 + movs r2, #0xa + bl sub_08024A14 + b _08024296 + .align 2, 0 +_08024218: .4byte gUnk_03003F80 +_0802421C: .4byte gUnk_03001160 +_08024220: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08024296 + adds r0, r4, #0 + movs r1, #0 + movs r2, #0x20 + bl sub_08024A14 + b _08024296 +_08024238: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08024296 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _08024290 + adds r5, r4, #0 + adds r5, #0x83 + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _0802426C + adds r0, r4, #0 + bl sub_08024C94 + ldrb r0, [r5] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r5] + b _08024296 +_0802426C: + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r6] + movs r0, #0xa + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #0 + bl sub_08024E00 + adds r0, r4, #0 + bl sub_08024E1C + ldrb r2, [r4, #0xf] + adds r0, r4, #0 + movs r1, #3 + bl sub_08024A14 + b _08024296 +_08024290: + adds r0, r4, #0 + bl sub_08024C94 +_08024296: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08024298 +sub_08024298: @ 0x08024298 + push {lr} + bl sub_08024D00 + pop {pc} + + thumb_func_start sub_080242A0 +sub_080242A0: @ 0x080242A0 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08024940 + adds r0, r4, #0 + bl sub_08024CC0 + cmp r0, #0 + beq _08024334 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _080242F0 + ldr r0, _080242E4 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #1 + bl sub_08024E00 + movs r1, #0x24 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _080242E8 + strh r5, [r4, #0x24] + b _08024306 + .align 2, 0 +_080242E4: .4byte gUnk_020000B0 +_080242E8: + adds r0, r4, #0 + bl sub_08024E1C + b _08024306 +_080242F0: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r1 + cmp r0, #0 + bne _08024306 + adds r0, r4, #0 + movs r1, #3 + movs r2, #0xa + bl sub_08024A14 +_08024306: + ldr r0, _08024338 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + movs r2, #0x20 + bl sub_08049F1C + cmp r0, #0 + beq _08024334 + adds r0, r4, #0 + movs r1, #3 + bl sub_08049FDC + cmp r0, #0 + beq _08024334 + movs r1, #0 + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x80 + strb r1, [r0] + movs r0, #0x10 + strb r0, [r4, #0xe] + strh r1, [r4, #0x24] +_08024334: + pop {r4, r5, pc} + .align 2, 0 +_08024338: .4byte gUnk_020000B0 + + thumb_func_start sub_0802433C +sub_0802433C: @ 0x0802433C + push {r4, lr} + adds r4, r0, #0 + bl sub_08024940 + adds r2, r4, #0 + adds r2, #0x80 + ldrb r0, [r2] + cmp r0, #0 + beq _08024354 + cmp r0, #1 + beq _0802437A + b _080243B6 +_08024354: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080243B6 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + movs r0, #8 + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #1 + bl sub_08024E00 + b _080243B6 +_0802437A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r3, #0xff + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _080243A0 + movs r0, #5 + strb r0, [r4, #0xc] + strb r1, [r2] + movs r0, #0xa0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + movs r0, #0xc0 + strb r0, [r4, #0xe] + movs r0, #8 + strb r0, [r4, #0xf] + b _080243B6 +_080243A0: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r3 + cmp r0, #0 + bne _080243B6 + adds r0, r4, #0 + movs r1, #2 + movs r2, #4 + bl sub_08024A14 +_080243B6: + pop {r4, pc} + + thumb_func_start sub_080243B8 +sub_080243B8: @ 0x080243B8 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08024940 + adds r5, r4, #0 + adds r5, #0x80 + ldrb r0, [r5] + cmp r0, #1 + beq _0802446A + cmp r0, #1 + bgt _080243D4 + cmp r0, #0 + beq _080243DA + b _080244E4 +_080243D4: + cmp r0, #2 + beq _08024486 + b _080244E4 +_080243DA: + adds r0, r4, #0 + movs r1, #1 + bl sub_08024C48 + cmp r0, #0 + beq _08024462 + ldr r0, [r4, #0x54] + cmp r0, #0 + beq _080243F2 + ldr r0, [r0, #4] + cmp r0, #0 + bne _08024406 +_080243F2: + movs r0, #2 + strb r0, [r5] + movs r0, #0x20 + strb r0, [r4, #0xe] + movs r1, #0x80 + strh r1, [r4, #0x24] + adds r0, r4, #0 + adds r0, #0x83 + strb r1, [r0] + b _080244E4 +_08024406: + ldr r0, _08024434 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + movs r2, #0xe + bl sub_08049F1C + cmp r0, #0 + beq _08024438 + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + movs r0, #0x1e + strb r0, [r4, #0xe] + adds r0, #0xe2 + strh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x83 + movs r0, #0x80 + strb r0, [r1] + ldr r1, [r4, #0x54] + movs r0, #2 + strb r0, [r1, #0xc] + b _080244E4 + .align 2, 0 +_08024434: .4byte gUnk_020000B0 +_08024438: + ldrb r0, [r4, #0xe] + subs r2, r0, #1 + strb r2, [r4, #0xe] + movs r1, #0xff + lsls r0, r2, #0x18 + cmp r0, #0 + beq _08024462 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r1 + cmp r0, #0 + bne _080244E4 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x1e + adds r2, #1 + adds r0, r4, #0 + movs r1, #2 + bl sub_08024A14 + b _080244E4 +_08024462: + adds r0, r4, #0 + bl sub_08024C7C + b _080244E4 +_0802446A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080244E4 + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + movs r0, #0x20 + strb r0, [r4, #0xe] + movs r0, #0x80 + strh r0, [r4, #0x24] + b _080244E4 +_08024486: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _080244E4 + movs r0, #6 + strb r0, [r4, #0xc] + strb r1, [r5] + movs r0, #0x80 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_08024B38 + adds r0, r4, #0 + adds r0, #0x83 + ldrb r1, [r0] + movs r2, #0x40 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _080244D8 + movs r0, #0x3f + ands r0, r1 + cmp r0, #1 + beq _080244C4 + cmp r0, #3 + bne _080244C8 + movs r0, #4 + b _080244CA +_080244C4: + movs r0, #0x14 + b _080244CA +_080244C8: + movs r0, #0x30 +_080244CA: + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #2 + movs r2, #8 + bl sub_08024A14 + b _080244E4 +_080244D8: + strb r2, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0 + movs r2, #8 + bl sub_08024A14 +_080244E4: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080244E8 +sub_080244E8: @ 0x080244E8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + bl sub_08024940 + adds r0, r5, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #7 + bls _08024502 + b _08024924 +_08024502: + lsls r0, r0, #2 + ldr r1, _0802450C @ =_08024510 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802450C: .4byte _08024510 +_08024510: @ jump table + .4byte _08024530 @ case 0 + .4byte _080245A6 @ case 1 + .4byte _080245E4 @ case 2 + .4byte _080247F4 @ case 3 + .4byte _08024818 @ case 4 + .4byte _08024836 @ case 5 + .4byte _080248AE @ case 6 + .4byte _0802490A @ case 7 +_08024530: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + movs r1, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08024592 + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r2, _08024584 @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r4, #0x32 + ldrsh r1, [r5, r4] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + movs r1, #1 + bl sub_080002E0 + adds r2, r0, #0 + cmp r2, #0 + bne _08024588 + adds r0, r5, #0 + adds r0, #0x80 + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + adds r1, r5, #0 + adds r1, #0x82 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + strb r2, [r5, #0xf] + strh r2, [r5, #0x24] + b _08024924 + .align 2, 0 +_08024584: .4byte gUnk_03000BF0 +_08024588: + movs r0, #0x30 + strb r0, [r5, #0xe] + movs r0, #4 + strb r0, [r5, #0xf] + b _08024924 +_08024592: + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + ands r0, r1 + cmp r0, #0 + beq _080245A0 + b _08024924 +_080245A0: + adds r0, r5, #0 + movs r1, #1 + b _08024902 +_080245A6: + ldrh r0, [r5, #0x36] + adds r0, #1 + strh r0, [r5, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x10 + rsbs r2, r2, #0 + cmp r0, r2 + bge _080245BA + b _08024924 +_080245BA: + adds r1, r5, #0 + adds r1, #0x82 + movs r0, #0 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x78 + strh r2, [r0] + adds r0, r5, #0 + bl sub_08024AD8 + cmp r0, #0 + beq _080245D4 + b _0802482A +_080245D4: + adds r0, r5, #0 + bl sub_08024C94 + adds r2, r5, #0 + adds r2, #0x83 + ldrb r0, [r2] + movs r1, #0x40 + b _080247EE +_080245E4: + adds r0, r5, #0 + bl sub_08024AD8 + cmp r0, #0 + bne _080245F0 + b _080247E0 +_080245F0: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + movs r2, #0xff + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0802462C + movs r7, #0x24 + ldrsh r0, [r5, r7] + cmp r0, #0 + beq _0802460C + strh r1, [r5, #0x24] + b _08024612 +_0802460C: + adds r0, r5, #0 + bl sub_08024E1C +_08024612: + ldr r1, [r5, #0x54] + adds r0, r5, #0 + bl sub_080045C4 + strb r0, [r5, #0x15] + adds r0, r5, #0 + movs r1, #0 + bl sub_08024E00 + adds r0, r5, #0 + bl sub_080249DC + b _08024642 +_0802462C: + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + ands r0, r2 + cmp r0, #0 + bne _08024642 + adds r0, r5, #0 + movs r1, #1 + movs r2, #8 + bl sub_08024A14 +_08024642: + adds r6, r5, #0 + adds r6, #0x83 + ldrb r1, [r6] + movs r0, #0x3f + mov sb, r0 + ands r0, r1 + cmp r0, #2 + beq _0802474C + cmp r0, #2 + bgt _0802465C + cmp r0, #1 + beq _080246E4 + b _08024924 +_0802465C: + cmp r0, #3 + beq _08024662 + b _08024924 +_08024662: + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + beq _08024670 + b _08024924 +_08024670: + adds r1, r5, #0 + adds r1, #0x80 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #0xc + strb r0, [r5, #0xe] + movs r0, #0x10 + strb r0, [r5, #0x15] + movs r4, #0 + strh r2, [r5, #0x24] + adds r0, r5, #0 + adds r0, #0x84 + strb r4, [r0] + adds r2, r5, #0 + adds r2, #0x3b + ldrb r1, [r2] + movs r0, #0xfc + ands r0, r1 + strb r0, [r2] + adds r0, r5, #0 + bl sub_080249DC + ldr r2, _080246DC @ =gUnk_03001160 + adds r0, r2, #0 + adds r0, #0x29 + ldrb r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1d + adds r1, r5, #0 + adds r1, #0x85 + strb r0, [r1] + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] + ldr r2, _080246E0 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #1 + orrs r0, r1 + str r0, [r2, #0x30] + ldrb r1, [r2, #0xa] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0xa] + adds r2, #0x26 + ldrb r0, [r2] + cmp r0, #0 + bne _080246D6 + b _08024924 +_080246D6: + strb r4, [r2] + b _08024924 + .align 2, 0 +_080246DC: .4byte gUnk_03001160 +_080246E0: .4byte gUnk_03003F80 +_080246E4: + ldr r1, [r5, #0x54] + adds r0, r5, #0 + movs r2, #6 + movs r3, #6 + bl sub_080041A0 + cmp r0, #0 + bne _080246F6 + b _08024924 +_080246F6: + adds r1, r5, #0 + adds r1, #0x80 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #0xc + strb r0, [r5, #0xe] + ldrb r1, [r6] + movs r0, #0x7f + ands r0, r1 + strb r0, [r6] + ldr r0, [r5, #0x54] + adds r1, r5, #0 + bl sub_0806FA24 + ldrh r0, [r5, #0x36] + subs r0, #0xe + strh r0, [r5, #0x36] + adds r1, r5, #0 + adds r1, #0x78 + ldrh r0, [r1] + subs r0, #0xe + strh r0, [r1] + ldrb r2, [r6] + adds r0, r5, #0 + movs r1, #6 + bl sub_0804A98C + adds r4, r0, #0 + cmp r4, #0 + bne _08024736 + b _08024924 +_08024736: + str r5, [r4, #0x50] + ldrh r0, [r4, #0x36] + adds r0, #0xe + strh r0, [r4, #0x36] + ldr r1, [r5, #0x54] + str r1, [r4, #0x54] + adds r0, r4, #0 + bl sub_0806FA24 + str r4, [r5, #0x54] + b _08024924 +_0802474C: + ldr r1, [r5, #0x54] + adds r0, r5, #0 + movs r2, #6 + movs r3, #6 + bl sub_080041A0 + cmp r0, #0 + bne _0802475E + b _08024924 +_0802475E: + adds r1, r5, #0 + adds r1, #0x80 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #0xc + strb r0, [r5, #0xe] + ldrb r1, [r6] + movs r0, #0x7f + ands r0, r1 + strb r0, [r6] + ldr r4, [r5, #0x54] + adds r0, r4, #0 + adds r0, #0x70 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r4, r2] + ldr r3, _080247DC @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + mov r7, sb + ands r1, r7 + movs r7, #0x32 + ldrsh r2, [r4, r7] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + mov r3, sb + ands r2, r3 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + adds r0, r4, #0 + bl sub_0805E7BC + ldrh r0, [r5, #0x36] + subs r0, #0xe + strh r0, [r5, #0x36] + adds r1, r5, #0 + adds r1, #0x78 + ldrh r0, [r1] + subs r0, #0xe + strh r0, [r1] + ldrb r2, [r6] + adds r0, r5, #0 + movs r1, #6 + bl sub_0804A98C + adds r4, r0, #0 + cmp r4, #0 + bne _080247D0 + b _08024924 +_080247D0: + str r5, [r4, #0x50] + ldrh r0, [r4, #0x36] + adds r0, #0xe + strh r0, [r4, #0x36] + str r4, [r5, #0x54] + b _08024924 + .align 2, 0 +_080247DC: .4byte gUnk_03000BF0 +_080247E0: + adds r0, r5, #0 + bl sub_08024C94 + adds r2, r5, #0 + adds r2, #0x83 + ldrb r1, [r2] + movs r0, #0x40 +_080247EE: + orrs r0, r1 + strb r0, [r2] + b _08024924 +_080247F4: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + beq _08024804 + b _08024924 +_08024804: + adds r0, r5, #0 + adds r0, #0x80 + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + strb r2, [r5, #0xf] + strh r2, [r5, #0x24] + adds r1, r5, #0 + adds r1, #0x82 + b _0802482E +_08024818: + ldrh r0, [r5, #0x36] + subs r0, #2 + strh r0, [r5, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x3c + rsbs r1, r1, #0 + cmp r0, r1 + bge _08024924 +_0802482A: + adds r1, r5, #0 + adds r1, #0x80 +_0802482E: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _08024924 +_08024836: + ldrh r2, [r5, #0x36] + movs r4, #0x36 + ldrsh r1, [r5, r4] + movs r0, #0x30 + rsbs r0, r0, #0 + cmp r1, r0 + bge _0802484A + adds r0, r2, #1 + strh r0, [r5, #0x36] + b _08024924 +_0802484A: + adds r1, r5, #0 + adds r1, #0x82 + ldrb r0, [r1] + cmp r0, #0 + beq _0802485E + movs r0, #0 + strb r0, [r1] + subs r1, #0xa + ldr r0, _08024884 @ =0x0000FFD0 + strh r0, [r1] +_0802485E: + adds r0, r5, #0 + adds r0, #0x83 + ldrb r0, [r0] + cmp r0, #1 + blt _080248A6 + cmp r0, #2 + ble _08024888 + cmp r0, #3 + bne _080248A6 + adds r0, r5, #0 + adds r0, #0x84 + ldrb r0, [r0] + cmp r0, #0x2f + bls _08024924 + adds r0, r5, #0 + bl sub_08024F50 + b _08024924 + .align 2, 0 +_08024884: .4byte 0x0000FFD0 +_08024888: + adds r1, r5, #0 + adds r1, #0x80 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #0xc0 + strb r0, [r5, #0xe] + movs r0, #8 + strb r0, [r5, #0xf] + movs r0, #0x80 + strh r0, [r5, #0x24] + adds r0, r5, #0 + bl sub_080249DC + b _08024924 +_080248A6: + adds r0, r5, #0 + bl sub_08024C7C + b _08024924 +_080248AE: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + movs r1, #0xff + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + bne _080248F2 + adds r2, r5, #0 + adds r2, #0x83 + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080248E8 + movs r0, #0xc0 + strb r0, [r2] + adds r0, r5, #0 + adds r0, #0x80 + strb r3, [r0] + movs r1, #0x40 + movs r0, #0x40 + strh r0, [r5, #0x24] + strb r1, [r5, #0xe] + movs r0, #8 + strb r0, [r5, #0xf] + adds r0, r5, #0 + movs r1, #0 + b _08024902 +_080248E8: + movs r0, #0x40 + strb r0, [r5, #0xe] + movs r0, #8 + strb r0, [r5, #0xf] + b _08024924 +_080248F2: + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + ands r0, r1 + cmp r0, #0 + bne _08024924 + adds r0, r5, #0 + movs r1, #2 +_08024902: + movs r2, #8 + bl sub_08024A14 + b _08024924 +_0802490A: + ldr r0, _0802493C @ =gUnk_03001160 + movs r7, #0x36 + ldrsh r1, [r0, r7] + cmp r1, #0 + bne _08024924 + adds r0, r5, #0 + adds r0, #0x80 + strb r1, [r0] + movs r0, #0x80 + strh r0, [r5, #0x24] + adds r0, r5, #0 + bl sub_08024B38 +_08024924: + adds r0, r5, #0 + adds r0, #0x83 + ldrb r0, [r0] + cmp r0, #3 + bne _08024934 + adds r0, r5, #0 + bl sub_08024E4C +_08024934: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0802493C: .4byte gUnk_03001160 + + thumb_func_start sub_08024940 +sub_08024940: @ 0x08024940 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08000E50 + adds r5, r0, #0 + movs r0, #0x70 + ands r5, r0 + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _08024962 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_0800417E + adds r0, r4, #0 + bl sub_080249F4 +_08024962: + adds r0, r4, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #0 + bne _0802497C + adds r0, r4, #0 + adds r0, #0x78 + ldrh r0, [r0] + strh r0, [r4, #0x36] + cmp r5, #0 + beq _0802497C + adds r0, #2 + strh r0, [r4, #0x36] +_0802497C: + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _0802498A + bl sub_08052660 + cmp r0, #0 + beq _080249CE +_0802498A: + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _080249A2 + adds r0, r4, #0 + bl sub_08049EE4 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_080249F4 +_080249A2: + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #0x20 + rsbs r0, r0, #0 + cmp r1, r0 + bge _080249BC + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + adds r0, #0x18 + ands r0, r1 + strb r0, [r2] + b _080249CE +_080249BC: + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r2] +_080249CE: + adds r0, r4, #0 + bl sub_080AEFB4 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, r5, pc} + + thumb_func_start sub_080249DC +sub_080249DC: @ 0x080249DC + push {lr} + ldrb r1, [r0, #0x15] + adds r1, #2 + movs r2, #0x1c + ands r1, r2 + lsrs r1, r1, #2 + strb r1, [r0, #0x14] + ldrb r1, [r0, #0x14] + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080249F4 +sub_080249F4: @ 0x080249F4 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0x15] + adds r1, r0, #2 + movs r0, #0x1f + ands r1, r0 + lsrs r1, r1, #2 + ldrb r0, [r2, #0x14] + cmp r1, r0 + beq _08024A12 + strb r1, [r2, #0x14] + ldrb r1, [r2, #0x14] + adds r0, r2, #0 + bl sub_08004260 +_08024A12: + pop {pc} + + thumb_func_start sub_08024A14 +sub_08024A14: @ 0x08024A14 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r7, r2, #0 + movs r6, #0 + cmp r5, #1 + beq _08024A40 + cmp r5, #1 + blo _08024A30 + cmp r5, #2 + beq _08024A5E + cmp r5, #3 + beq _08024A84 + b _08024A9E +_08024A30: + adds r0, r4, #0 + bl sub_08049EE4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 + b _08024A9C +_08024A40: + adds r0, r4, #0 + movs r1, #0 + bl sub_08024C48 + cmp r0, #0 + beq _08024A9E + ldr r1, [r4, #0x54] + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 + b _08024A9C +_08024A5E: + adds r0, r4, #0 + movs r1, #1 + bl sub_08024C48 + cmp r0, #0 + beq _08024A9E + ldr r0, _08024A80 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 + b _08024A9C + .align 2, 0 +_08024A80: .4byte gUnk_020000B0 +_08024A84: + adds r0, r4, #0 + movs r1, #1 + bl sub_08024C48 + cmp r0, #0 + beq _08024A9E + ldr r0, _08024AD4 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] +_08024A9C: + movs r6, #1 +_08024A9E: + cmp r5, #0 + beq _08024ABA + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _08024ABA + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + cmp r1, #0 + beq _08024ABA + movs r6, #0 +_08024ABA: + cmp r6, #0 + bne _08024AC8 + adds r0, r4, #0 + movs r1, #0 + adds r2, r7, #0 + bl sub_08024A14 +_08024AC8: + adds r0, r4, #0 + bl sub_080249DC + strb r7, [r4, #0xf] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08024AD4: .4byte gUnk_020000B0 + + thumb_func_start sub_08024AD8 +sub_08024AD8: @ 0x08024AD8 + push {r4, lr} + adds r4, r0, #0 + adds r3, r4, #0 + adds r3, #0x83 + ldrb r2, [r3] + movs r0, #0x40 + ands r0, r2 + cmp r0, #0 + bne _08024B2A + movs r1, #0 + movs r0, #0x3f + ands r0, r2 + cmp r0, #3 + bne _08024B12 + ldr r0, _08024B0C @ =gUnk_03003F80 + ldrb r0, [r0, #0xf] + cmp r0, #0 + bne _08024B10 + ldr r0, [r4, #0x54] + str r1, [r0, #0x50] + str r1, [r4, #0x54] + movs r0, #0xc0 + strb r0, [r3] + movs r0, #0 + b _08024B34 + .align 2, 0 +_08024B0C: .4byte gUnk_03003F80 +_08024B10: + movs r1, #1 +_08024B12: + adds r0, r4, #0 + bl sub_08024C48 + cmp r0, #0 + bne _08024B32 + str r0, [r4, #0x54] + adds r1, r4, #0 + adds r1, #0x83 + movs r0, #0xc0 + strb r0, [r1] + movs r0, #0 + b _08024B34 +_08024B2A: + adds r0, r4, #0 + bl sub_08024B38 + b _08024B34 +_08024B32: + movs r0, #1 +_08024B34: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08024B38 +sub_08024B38: @ 0x08024B38 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + movs r7, #0 + ldr r0, _08024B5C @ =gUnk_03003F80 + ldrb r3, [r0, #0xf] + adds r2, r3, #0 + adds r1, r0, #0 + cmp r2, #0 + beq _08024BA0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #1 + bne _08024B62 + cmp r2, #3 + bls _08024B60 + subs r0, r3, #3 + strb r0, [r1, #0xf] + b _08024B62 + .align 2, 0 +_08024B5C: .4byte gUnk_03003F80 +_08024B60: + strb r7, [r1, #0xf] +_08024B62: + ldrb r0, [r1, #0xf] + cmp r0, #0 + beq _08024BA0 + adds r0, r5, #0 + movs r1, #1 + bl sub_08024C48 + cmp r0, #0 + beq _08024C3C + ldr r4, _08024B9C @ =gUnk_020000B0 + ldr r1, [r4] + adds r0, r5, #0 + movs r2, #0xa0 + bl sub_08049F1C + cmp r0, #0 + beq _08024C3C + movs r7, #1 + ldr r0, [r4] + str r0, [r5, #0x54] + adds r2, r5, #0 + adds r2, #0x83 + ldrb r1, [r2] + movs r0, #3 + orrs r0, r1 + movs r1, #0xbf + ands r0, r1 + strb r0, [r2] + b _08024C3C + .align 2, 0 +_08024B9C: .4byte gUnk_020000B0 +_08024BA0: + movs r0, #8 + movs r1, #2 + movs r2, #2 + bl sub_0805EB00 + adds r4, r0, #0 + cmp r4, #0 + beq _08024BF0 + adds r6, r5, #0 + adds r6, #0x83 + b _08024BC4 +_08024BB6: + adds r0, r4, #0 + movs r1, #2 + bl sub_0805EB64 + adds r4, r0, #0 + cmp r4, #0 + beq _08024BF0 +_08024BC4: + ldrb r0, [r4, #0xc] + cmp r0, #2 + beq _08024BB6 + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08024BB6 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0xa0 + bl sub_08049F1C + cmp r0, #0 + beq _08024BB6 + movs r7, #1 + str r4, [r5, #0x54] + ldrb r0, [r6] + movs r1, #1 + orrs r1, r0 + movs r0, #0xbf + ands r1, r0 + strb r1, [r6] +_08024BF0: + cmp r7, #0 + bne _08024C42 + movs r0, #6 + movs r1, #5 + movs r2, #6 + bl sub_0805EB00 + adds r4, r0, #0 + cmp r4, #0 + beq _08024C3C + adds r6, r5, #0 + adds r6, #0x83 + b _08024C18 +_08024C0A: + adds r0, r4, #0 + movs r1, #6 + bl sub_0805EB64 + adds r4, r0, #0 + cmp r4, #0 + beq _08024C3C +_08024C18: + ldrb r0, [r4, #0xc] + cmp r0, #1 + bne _08024C0A + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0xa0 + bl sub_08049F1C + cmp r0, #0 + beq _08024C0A + movs r7, #1 + str r4, [r5, #0x54] + ldrb r0, [r6] + movs r1, #2 + orrs r1, r0 + movs r0, #0xbf + ands r1, r0 + strb r1, [r6] +_08024C3C: + cmp r7, #0 + bne _08024C42 + str r7, [r5, #0x54] +_08024C42: + adds r0, r7, #0 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08024C48 +sub_08024C48: @ 0x08024C48 + push {r4, r5, lr} + adds r3, r0, #0 + movs r4, #1 + cmp r1, #0 + beq _08024C60 + movs r0, #3 + bl sub_08049DF4 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r4, r1, #0x1f + b _08024C78 +_08024C60: + ldr r2, [r3, #0x54] + cmp r2, #0 + beq _08024C74 + ldr r0, [r2, #4] + cmp r0, #0 + beq _08024C74 + movs r5, #0x36 + ldrsh r0, [r2, r5] + cmp r0, #0 + bge _08024C78 +_08024C74: + str r1, [r3, #0x54] + movs r4, #0 +_08024C78: + adds r0, r4, #0 + pop {r4, r5, pc} + + thumb_func_start sub_08024C7C +sub_08024C7C: @ 0x08024C7C + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r2, #0 + movs r1, #0x40 + strh r1, [r0, #0x24] + strb r2, [r0, #0xe] + movs r1, #0 + movs r2, #0x20 + bl sub_08024A14 + pop {pc} + + thumb_func_start sub_08024C94 +sub_08024C94: @ 0x08024C94 + push {lr} + movs r2, #0 + movs r1, #2 + strb r1, [r0, #0xc] + adds r1, r0, #0 + adds r1, #0x80 + strb r2, [r1] + movs r1, #0x40 + strb r1, [r0, #0xe] + strb r2, [r0, #0xf] + movs r1, #0xc0 + strh r1, [r0, #0x24] + adds r2, r0, #0 + adds r2, #0x83 + movs r1, #0x80 + strb r1, [r2] + ldrb r2, [r0, #0xf] + movs r1, #3 + bl sub_08024A14 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08024CC0 +sub_08024CC0: @ 0x08024CC0 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #1 + movs r1, #1 + bl sub_08024C48 + cmp r0, #0 + bne _08024CD4 + movs r5, #0 + b _08024CF8 +_08024CD4: + ldr r0, _08024CFC @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + movs r2, #0x50 + bl sub_08049F1C + cmp r0, #0 + beq _08024CF0 + adds r0, r4, #0 + movs r1, #3 + bl sub_08049FDC + cmp r0, #0 + bne _08024CF8 +_08024CF0: + movs r5, #0 + adds r0, r4, #0 + bl sub_08024C7C +_08024CF8: + adds r0, r5, #0 + pop {r4, r5, pc} + .align 2, 0 +_08024CFC: .4byte gUnk_020000B0 + + thumb_func_start sub_08024D00 +sub_08024D00: @ 0x08024D00 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x86 + ldrb r0, [r1] + cmp r0, #0 + beq _08024D1A + subs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08004274 + b _08024D20 +_08024D1A: + adds r0, r4, #0 + bl sub_08024940 +_08024D20: + adds r0, r4, #0 + adds r0, #0x83 + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08024D46 + adds r0, r4, #0 + bl sub_08024B38 + cmp r0, #0 + beq _08024D46 + movs r0, #6 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x80 + movs r0, #2 + strb r0, [r1] + b _08024DFC +_08024D46: + adds r0, r4, #0 + bl sub_08024CC0 + cmp r0, #0 + beq _08024DFC + adds r1, r4, #0 + adds r1, #0x80 + ldrb r0, [r1] + cmp r0, #0 + beq _08024D60 + cmp r0, #1 + beq _08024DAE + b _08024DFC +_08024D60: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08024DFC + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + bl sub_08000E50 + movs r1, #0xf + ands r0, r1 + adds r0, #0x20 + strb r0, [r4, #0xe] + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + adds r0, #0x81 + ldrb r1, [r0] + adds r3, r0, #0 + cmp r1, #0 + beq _08024D90 + adds r1, r2, #4 + b _08024D94 +_08024D90: + adds r1, r2, #0 + adds r1, #0x1c +_08024D94: + movs r0, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] + ldrb r0, [r3] + movs r1, #0x40 + eors r0, r1 + strb r0, [r3] + adds r0, r4, #0 + movs r1, #3 + movs r2, #0x10 + bl sub_08024A14 + b _08024DFC +_08024DAE: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r2, #0xff + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _08024DCE + strb r0, [r1] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x20 + strb r0, [r4, #0xe] + b _08024DFC +_08024DCE: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r2 + cmp r0, #0 + bne _08024DFC + ldrb r1, [r4, #0x15] + adds r0, r4, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + beq _08024DEA + adds r1, #1 + b _08024DEC +_08024DEA: + adds r1, #0x1f +_08024DEC: + movs r0, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] + movs r0, #0x10 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_080249DC +_08024DFC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08024E00 +sub_08024E00: @ 0x08024E00 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + bl sub_08024E34 + ldr r1, _08024E18 @ =gUnk_080CBF10 + lsls r0, r0, #1 + orrs r0, r4 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r5, #0xe] + pop {r4, r5, pc} + .align 2, 0 +_08024E18: .4byte gUnk_080CBF10 + + thumb_func_start sub_08024E1C +sub_08024E1C: @ 0x08024E1C + push {r4, lr} + adds r4, r0, #0 + bl sub_08024E34 + ldr r1, _08024E30 @ =gUnk_080CBF18 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r4, #0x24] + pop {r4, pc} + .align 2, 0 +_08024E30: .4byte gUnk_080CBF18 + + thumb_func_start sub_08024E34 +sub_08024E34: @ 0x08024E34 + push {lr} + bl sub_08000E50 + movs r1, #0x3c + ands r1, r0 + lsrs r1, r1, #2 + ldr r0, _08024E48 @ =gUnk_080CBF20 + adds r1, r1, r0 + ldrb r0, [r1] + pop {pc} + .align 2, 0 +_08024E48: .4byte gUnk_080CBF20 + + thumb_func_start sub_08024E4C +sub_08024E4C: @ 0x08024E4C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r0, #0x83 + ldrb r0, [r0] + cmp r0, #3 + bne _08024F46 + ldrb r0, [r4, #0xf] + adds r0, #1 + movs r7, #0 + movs r1, #0xff + ands r0, r1 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0xf] + bl sub_0807953C + cmp r0, #0 + beq _08024E84 + bl sub_08000E50 + adds r3, r4, #0 + adds r3, #0x84 + ldrb r2, [r3] + adds r2, #1 + movs r1, #1 + ands r1, r0 + adds r2, r2, r1 + strb r2, [r3] +_08024E84: + ldr r0, _08024EC8 @ =gUnk_02002A40 + adds r0, #0xaa + ldrb r0, [r0] + adds r2, r4, #0 + adds r2, #0x87 + cmp r0, #0 + beq _08024E9A + adds r5, r2, #0 + ldrb r0, [r5] + cmp r0, #4 + bne _08024ECC +_08024E9A: + adds r1, r4, #0 + adds r1, #0x84 + movs r0, #0x30 + strb r0, [r1] + strb r7, [r2] + adds r0, r4, #0 + bl sub_08024F50 + adds r0, r4, #0 + adds r0, #0x80 + strb r7, [r0] + movs r1, #0x40 + movs r0, #0x40 + strh r0, [r4, #0x24] + strb r1, [r4, #0xe] + movs r0, #8 + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #0 + movs r2, #8 + bl sub_08024A14 + b _08024F46 + .align 2, 0 +_08024EC8: .4byte gUnk_02002A40 +_08024ECC: + ldr r6, _08024F48 @ =gUnk_03001160 + bl sub_08077B2C + ldr r2, _08024F4C @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #1 + orrs r0, r1 + str r0, [r2, #0x30] + ldrb r0, [r2, #0xa] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #0xa] + movs r0, #0xe + strb r0, [r2, #0xc] + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #0x14 + strb r0, [r1] + adds r1, #1 + movs r0, #1 + strb r0, [r1] + adds r0, r2, #0 + adds r0, #0x3a + strb r7, [r0] + movs r3, #0x80 + lsls r3, r3, #9 + adds r0, r4, #0 + adds r1, r6, #0 + movs r2, #0 + bl sub_0806FA48 + adds r1, r6, #0 + adds r1, #0x63 + movs r0, #0x1a + strb r0, [r1] + movs r0, #4 + strb r0, [r6, #0x14] + adds r2, r6, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0x3d + ands r0, r1 + strb r0, [r2] + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _08024F46 + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + adds r1, r6, #0 + adds r1, #0x3d + movs r0, #8 + strb r0, [r1] + subs r0, #0xa + bl sub_080526A0 + adds r0, r6, #0 + movs r1, #0x7a + bl sub_0800449C +_08024F46: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08024F48: .4byte gUnk_03001160 +_08024F4C: .4byte gUnk_03003F80 + + thumb_func_start sub_08024F50 +sub_08024F50: @ 0x08024F50 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r2, _08024FDC @ =gUnk_03003F80 + movs r4, #0 + strb r4, [r2, #0xa] + ldr r0, [r2, #0x30] + ldr r1, _08024FE0 @ =0xFFFFFEFF + ands r0, r1 + str r0, [r2, #0x30] + ldr r5, _08024FE4 @ =gUnk_03001160 + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_0806FA24 + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r0, [r5, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + adds r1, r5, #0 + adds r1, #0x3d + movs r0, #0xc4 + strb r0, [r1] + ldrb r0, [r5, #0x14] + lsls r0, r0, #2 + strb r0, [r5, #0x15] + movs r3, #0 + strh r4, [r5, #0x24] + adds r0, r6, #0 + adds r0, #0x85 + ldrb r0, [r0] + adds r4, r5, #0 + adds r4, #0x29 + movs r1, #7 + ands r1, r0 + lsls r1, r1, #3 + ldrb r2, [r4] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4] + adds r1, r5, #0 + adds r1, #0x63 + movs r0, #0 + ldrsb r0, [r1, r0] + strh r0, [r5, #0x36] + strb r3, [r1] + adds r2, r6, #0 + adds r2, #0x3b + ldrb r1, [r2] + movs r0, #3 + orrs r0, r1 + strb r0, [r2] + adds r1, r6, #0 + adds r1, #0x83 + movs r0, #0xc0 + strb r0, [r1] + subs r1, #3 + ldrb r0, [r1] + adds r0, #2 + strb r0, [r1] + adds r0, r6, #0 + adds r0, #0x84 + strb r3, [r0] + movs r0, #0x80 + strh r0, [r6, #0x24] + pop {r4, r5, r6, pc} + .align 2, 0 +_08024FDC: .4byte gUnk_03003F80 +_08024FE0: .4byte 0xFFFFFEFF +_08024FE4: .4byte gUnk_03001160 + + thumb_func_start sub_08024FE8 +sub_08024FE8: @ 0x08024FE8 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08025004 @ =gUnk_080CBF9C + bl sub_0800129E + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, pc} + .align 2, 0 +_08025004: .4byte gUnk_080CBF9C + + thumb_func_start sub_08025008 +sub_08025008: @ 0x08025008 + push {lr} + ldr r2, _0802501C @ =gUnk_080CBFB4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802501C: .4byte gUnk_080CBFB4 + + thumb_func_start sub_08025020 +sub_08025020: @ 0x08025020 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0 + blt _080250C2 + cmp r1, #3 + ble _0802510C + cmp r1, #0x1b + bne _080250C2 + adds r0, r4, #0 + bl sub_0804AA1C + ldr r1, _08025058 @ =gUnk_080CBFE8 + ldr r0, [r4, #0x4c] + ldrb r0, [r0, #0xa] + adds r0, r0, r1 + ldrb r1, [r0] + adds r3, r4, #0 + adds r3, #0x82 + ldrb r0, [r3] + cmp r1, r0 + bhs _0802505C + subs r0, r0, r1 + strb r0, [r3] + b _08025078 + .align 2, 0 +_08025058: .4byte gUnk_080CBFE8 +_0802505C: + adds r1, r4, #0 + adds r1, #0x84 + movs r2, #0 + movs r0, #0xa5 + lsls r0, r0, #2 + strh r0, [r1] + subs r1, #0x45 + movs r0, #0x83 + strb r0, [r1] + strb r2, [r3] + adds r0, r4, #0 + movs r1, #0x7c + bl sub_0801D2B4 +_08025078: + movs r2, #0 + movs r0, #7 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldr r0, [r4, #0x20] + cmp r0, #0 + ble _0802508A + str r2, [r4, #0x20] +_0802508A: + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0xf4 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x42 + strb r2, [r0] + adds r5, r4, #0 + adds r5, #0x80 + ldrb r0, [r5] + cmp r0, #0 + bne _0802510C + ldr r0, [r4, #0x4c] + ldrb r0, [r0, #0x15] + lsrs r0, r0, #3 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 + adds r1, r4, #0 + adds r1, #0x59 + movs r0, #6 + strb r0, [r1] + movs r0, #1 + strb r0, [r5] + b _0802510C +_080250C2: + adds r0, r4, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0x82 + bne _0802510C + adds r0, r4, #0 + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bge _0802510C + movs r0, #0x21 + movs r1, #2 + movs r2, #0 + bl sub_080A2960 + adds r2, r0, #0 + cmp r2, #0 + beq _08025104 + adds r3, r2, #0 + adds r3, #0x29 + ldrb r0, [r3] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #3 + orrs r1, r0 + strb r1, [r3] + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_0806FA24 +_08025104: + movs r0, #0xc3 + lsls r0, r0, #1 + bl sub_08004488 +_0802510C: + ldr r1, _08025118 @ =gUnk_080CBF9C + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, r5, pc} + .align 2, 0 +_08025118: .4byte gUnk_080CBF9C + + thumb_func_start sub_0802511C +sub_0802511C: @ 0x0802511C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3a + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08025142 + ldrb r0, [r4, #0xe] + cmp r0, #1 + bne _08025142 + adds r0, r4, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #0 + beq _08025142 + adds r0, r4, #0 + bl sub_08025B18 +_08025142: + adds r0, r4, #0 + bl sub_0804A7D4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802514C +sub_0802514C: @ 0x0802514C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x80 + lsls r1, r1, #6 + bl sub_08003FC4 + adds r0, r4, #0 + bl sub_0806F520 + cmp r0, #0 + beq _08025178 + ldr r0, _08025174 @ =gUnk_080CBFEC + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _0802517E + .align 2, 0 +_08025174: .4byte gUnk_080CBFEC +_08025178: + adds r0, r4, #0 + bl sub_08025C2C +_0802517E: + pop {r4, pc} + + thumb_func_start sub_08025180 +sub_08025180: @ 0x08025180 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xd] + bl sub_08000E50 + strb r0, [r4, #0xe] + ldr r0, [r4, #0x4c] + ldrb r0, [r0, #0x15] + movs r1, #0x10 + eors r0, r1 + lsrs r0, r0, #3 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0804AA1C + pop {r4, pc} + + thumb_func_start sub_080251AC +sub_080251AC: @ 0x080251AC + push {r4, lr} + adds r4, r0, #0 + adds r3, r4, #0 + adds r3, #0x82 + ldrb r0, [r3] + cmp r0, #3 + bls _080251D8 + subs r0, #3 + strb r0, [r3] + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + ands r0, r1 + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _080251F4 + adds r0, r4, #0 + bl sub_08025BD4 + b _080251F4 +_080251D8: + adds r1, r4, #0 + adds r1, #0x84 + movs r2, #0 + movs r0, #0xa5 + lsls r0, r0, #2 + strh r0, [r1] + subs r1, #0x45 + movs r0, #0x83 + strb r0, [r1] + strb r2, [r3] + adds r0, r4, #0 + movs r1, #0x7c + bl sub_0801D2B4 +_080251F4: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_080251FC +sub_080251FC: @ 0x080251FC + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0804A720 + adds r1, r4, #0 + adds r1, #0x82 + movs r5, #0 + movs r0, #0xf0 + strb r0, [r1] + bl sub_08000E50 + movs r1, #0x1c + ands r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + adds r0, #0x80 + strb r5, [r0] + adds r0, r4, #0 + bl sub_080256B4 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08025230 +sub_08025230: @ 0x08025230 + push {r4, r5, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x81 + ldrb r0, [r1] + cmp r0, #0 + beq _08025242 + subs r0, #1 + strb r0, [r1] +_08025242: + adds r0, r4, #0 + bl sub_08025C44 + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r5, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08025270 + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + adds r0, #4 + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_08025C60 + strb r0, [r4, #0x15] +_08025270: + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _0802528C + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r5 + cmp r0, #0 + bne _08025290 + ldrh r1, [r4, #0x2a] + adds r0, r4, #0 + bl sub_0800417E + b _08025290 +_0802528C: + movs r0, #0x1e + strb r0, [r4, #0xf] +_08025290: + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + cmp r0, #0 + bne _080252D8 + adds r0, r4, #0 + bl sub_0802571C + cmp r0, #0 + beq _080252DC + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0xf0 + strb r0, [r4, #0xe] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _080252D4 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r4, #0 + adds r0, #0x86 + strh r1, [r0] + b _080252DC + .align 2, 0 +_080252D4: .4byte gUnk_03000BF0 +_080252D8: + subs r0, #1 + strh r0, [r1] +_080252DC: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080252E0 +sub_080252E0: @ 0x080252E0 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + adds r2, r4, #0 + adds r2, #0x7c + ldrh r2, [r2] + adds r3, r4, #0 + adds r3, #0x7e + ldrh r3, [r3] + bl sub_080045D4 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_08025C44 + adds r0, r4, #0 + bl sub_08004274 + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r3, _08025348 @ =gUnk_03000BF0 + ldrh r1, [r3, #6] + subs r0, r0, r1 + asrs r5, r0, #4 + movs r2, #0x3f + ands r5, r2 + movs r1, #0x32 + ldrsh r0, [r4, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r5, r0 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r2, [r0] + cmp r5, r2 + bne _0802534C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08025352 + adds r0, r4, #0 + bl sub_080256B4 + b _08025352 + .align 2, 0 +_08025348: .4byte gUnk_03000BF0 +_0802534C: + strh r5, [r0] + movs r0, #0xf0 + strb r0, [r4, #0xe] +_08025352: + movs r0, #0x2e + ldrsh r1, [r4, r0] + adds r0, r4, #0 + adds r0, #0x7c + ldrh r0, [r0] + cmp r1, r0 + bne _08025388 + movs r1, #0x32 + ldrsh r0, [r4, r1] + adds r1, r4, #0 + adds r1, #0x7e + ldrh r1, [r1] + cmp r0, r1 + bne _08025388 + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_08025388: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0802538C +sub_0802538C: @ 0x0802538C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0802539C + subs r0, #1 + strb r0, [r4, #0xe] + b _080253CC +_0802539C: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #0 + bne _080253AE + adds r0, r4, #0 + bl sub_08004274 + b _080253CC +_080253AE: + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + ldr r1, [r4, #0x20] + ldr r0, _080253D0 @ =0x00001FFF + cmp r1, r0 + bgt _080253CC + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 +_080253CC: + pop {r4, pc} + .align 2, 0 +_080253D0: .4byte 0x00001FFF + + thumb_func_start sub_080253D4 +sub_080253D4: @ 0x080253D4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _0802541A + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _080253FE + movs r0, #5 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 + b _0802541A +_080253FE: + movs r0, #6 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08025A54 + adds r0, r4, #0 + bl sub_08025AE8 +_0802541A: + pop {r4, pc} + + thumb_func_start sub_0802541C +sub_0802541C: @ 0x0802541C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08025448 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #1 + strb r0, [r4, #0xf] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_08025448: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802544C +sub_0802544C: @ 0x0802544C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #0 + bne _08025460 + adds r0, r4, #0 + bl sub_08004274 + b _0802547A +_08025460: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802547A + adds r0, r4, #0 + bl sub_080256B4 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_0802547A: + pop {r4, pc} + + thumb_func_start sub_0802547C +sub_0802547C: @ 0x0802547C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x80 + lsls r1, r1, #6 + bl sub_08003FC4 + adds r0, r4, #0 + bl sub_08004274 + ldrb r1, [r4, #0xe] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + bne _0802549E + adds r0, r4, #0 + bl sub_08025BD4 +_0802549E: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080254B0 + adds r0, r4, #0 + bl sub_08025C2C +_080254B0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080254B4 +sub_080254B4: @ 0x080254B4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x80 + lsls r1, r1, #6 + bl sub_08003FC4 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802550C + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08025512 + adds r0, r4, #0 + adds r0, #0x84 + ldrh r0, [r0] + cmp r0, #0 + bne _080254F6 + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x82 + strb r0, [r1] + adds r1, #0x43 + movs r0, #0xf0 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080256B4 + b _08025502 +_080254F6: + movs r0, #0xc + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08025502: + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + b _08025512 +_0802550C: + adds r0, r4, #0 + bl sub_08004274 +_08025512: + pop {r4, pc} + + thumb_func_start sub_08025514 +sub_08025514: @ 0x08025514 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r1, [r4, #0xe] + adds r0, r1, #1 + strb r0, [r4, #0xe] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl sub_0802594C + cmp r0, #0 + beq _08025542 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0xf0 + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #0x78 + strb r0, [r1] + b _08025550 +_08025542: + ldrb r0, [r4, #0xe] + cmp r0, #3 + bls _08025550 + movs r0, #0xa + strb r0, [r4, #0xc] + movs r0, #0x20 + strb r0, [r4, #0xe] +_08025550: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08025554 +sub_08025554: @ 0x08025554 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + bl sub_08049DF4 + adds r2, r0, #0 + cmp r2, #0 + bne _0802556C + adds r0, r4, #0 + bl sub_080256B4 + b _080255A8 +_0802556C: + ldrb r1, [r4, #0xe] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _08025580 + adds r0, r2, #0 + adds r1, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] +_08025580: + adds r0, r4, #0 + bl sub_08025C44 + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08025598 + subs r0, #1 + strb r0, [r4, #0xe] + b _080255A8 +_08025598: + adds r0, r4, #0 + bl sub_080258C4 + cmp r0, #0 + bne _080255A8 + adds r0, r4, #0 + bl sub_080256B4 +_080255A8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080255AC +sub_080255AC: @ 0x080255AC + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r0, #1 + bl sub_08049DF4 + adds r6, r0, #0 + cmp r6, #0 + bne _080255C4 + adds r0, r5, #0 + bl sub_080256B4 + b _08025638 +_080255C4: + adds r1, r5, #0 + adds r1, #0x81 + ldrb r0, [r1] + cmp r0, #0 + beq _080255D2 + subs r0, #1 + strb r0, [r1] +_080255D2: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802560C + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + adds r0, #4 + strb r0, [r5, #0xe] + bl sub_08000E50 + adds r4, r0, #0 + movs r0, #0xf + ands r4, r0 + cmp r4, #7 + bgt _080255FA + subs r4, #1 +_080255FA: + subs r4, #7 + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_080045C4 + adds r0, r0, r4 + movs r1, #0x1f + ands r0, r1 + strb r0, [r5, #0x15] +_0802560C: + adds r1, r5, #0 + adds r1, #0x78 + ldrh r0, [r1] + cmp r0, #0 + bne _08025628 + adds r0, r5, #0 + bl sub_080258C4 + cmp r0, #0 + bne _0802562C + adds r0, r5, #0 + bl sub_080256B4 + b _0802562C +_08025628: + subs r0, #1 + strh r0, [r1] +_0802562C: + adds r0, r5, #0 + bl sub_08025C44 + adds r0, r5, #0 + bl sub_08004274 +_08025638: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0802563C +sub_0802563C: @ 0x0802563C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r2, r4, #0 + adds r2, #0x84 + ldrh r0, [r2] + subs r1, r0, #1 + strh r1, [r2] + lsls r0, r1, #0x10 + cmp r0, #0 + bne _08025678 + adds r0, r4, #0 + movs r1, #0x28 + bl sub_0801D2B4 + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x82 + strb r0, [r1] + adds r1, #0x43 + movs r0, #0xf0 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080256B4 + adds r0, r4, #0 + bl sub_0804AA1C + b _080256B0 +_08025678: + lsls r1, r1, #0x10 + lsrs r0, r1, #0x10 + cmp r0, #0x77 + bhi _080256B0 + ldr r0, _080256A4 @ =gUnk_080CBFF8 + lsrs r1, r1, #0x14 + adds r1, r1, r0 + ldrb r1, [r1] + ldrh r2, [r2] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _080256B0 + adds r0, r1, #1 + ands r2, r0 + cmp r2, #0 + beq _080256A8 + adds r0, r4, #0 + movs r1, #0x7c + bl sub_0801D2B4 + b _080256B0 + .align 2, 0 +_080256A4: .4byte gUnk_080CBFF8 +_080256A8: + adds r0, r4, #0 + movs r1, #0x28 + bl sub_0801D2B4 +_080256B0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080256B4 +sub_080256B4: @ 0x080256B4 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #1 + strb r0, [r5, #0xc] + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + adds r0, #4 + strb r0, [r5, #0xe] + movs r0, #0x1e + strb r0, [r5, #0xf] + bl sub_08000E50 + ldrb r4, [r5, #0x15] + adds r4, #7 + movs r1, #7 + bl __modsi3 + lsls r0, r0, #2 + adds r4, r4, r0 + movs r0, #0x1c + ands r4, r0 + strb r4, [r5, #0x15] + bl sub_08000E50 + ldr r2, _08025718 @ =gUnk_080CC000 + movs r1, #0xf + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r1, [r1] + adds r0, r5, #0 + adds r0, #0x78 + movs r4, #0 + strh r1, [r0] + bl sub_08000E50 + movs r1, #0x18 + bl __modsi3 + lsls r0, r0, #1 + adds r1, r5, #0 + adds r1, #0x7a + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x7b + strb r4, [r0] + pop {r4, r5, pc} + .align 2, 0 +_08025718: .4byte gUnk_080CC000 + + thumb_func_start sub_0802571C +sub_0802571C: @ 0x0802571C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + adds r7, r0, #0 + ldr r0, _080257B0 @ =gUnk_03000BF0 + mov sb, r0 + ldrh r0, [r7, #0x2e] + mov r2, sb + ldrh r1, [r2, #6] + subs r0, r0, r1 + adds r0, #8 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r2, r3, #0 + ands r0, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp] + ldrh r0, [r7, #0x32] + mov r3, sb + ldrh r1, [r3, #8] + subs r0, r0, r1 + adds r0, #8 + ands r0, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sl, r0 + adds r0, r7, #0 + adds r0, #0x7a + ldrb r4, [r0] + movs r3, #0 + ldr r0, _080257B4 @ =gUnk_080CC020 + mov r8, r0 +_08025764: + mov r1, r8 + adds r0, r4, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldr r2, [sp] + adds r0, r2, r0 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + adds r0, r4, #1 + add r0, r8 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + add r0, sl + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r5, #0 + str r3, [sp, #4] + bl sub_080257EC + ldr r3, [sp, #4] + cmp r0, #0 + beq _080257B8 + mov r3, sb + ldrh r0, [r3, #6] + adds r0, r6, r0 + adds r1, r7, #0 + adds r1, #0x7c + strh r0, [r1] + ldrh r0, [r3, #8] + adds r0, r5, r0 + adds r1, #2 + strh r0, [r1] + movs r0, #1 + b _080257E0 + .align 2, 0 +_080257B0: .4byte gUnk_03000BF0 +_080257B4: .4byte gUnk_080CC020 +_080257B8: + adds r0, r4, #2 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0x2f + bls _080257C4 + movs r4, #0 +_080257C4: + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #3 + bls _08025764 + adds r0, r7, #0 + adds r0, #0x7a + strb r4, [r0] + adds r1, r7, #0 + adds r1, #0x7b + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #0 +_080257E0: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080257EC +sub_080257EC: @ 0x080257EC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + adds r7, r1, #0 + adds r6, r2, #0 + adds r0, #0x38 + ldrb r2, [r0] + adds r0, r7, #0 + adds r1, r6, #0 + bl sub_080002A8 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r0, _080258B0 @ =0x00000312 + cmp r2, r0 + beq _08025822 + ldr r0, _080258B4 @ =gUnk_080B37A0 + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, #0x16 + beq _08025822 + ldr r0, _080258B8 @ =gUnk_080B3E80 + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, #0 + beq _080258AA +_08025822: + adds r5, r7, #0 + subs r5, #0x10 + adds r4, #0x38 + ldrb r2, [r4] + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_080002A8 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r0, _080258B0 @ =0x00000312 + mov r8, r4 + cmp r2, r0 + beq _08025852 + ldr r0, _080258B4 @ =gUnk_080B37A0 + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, #0x16 + beq _08025852 + ldr r0, _080258B8 @ =gUnk_080B3E80 + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, #0 + beq _080258AA +_08025852: + adds r4, r6, #0 + subs r4, #0x10 + mov r0, r8 + ldrb r2, [r0] + adds r0, r7, #0 + adds r1, r4, #0 + bl sub_080002A8 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r0, _080258B0 @ =0x00000312 + adds r1, r4, #0 + cmp r2, r0 + beq _08025882 + ldr r0, _080258B4 @ =gUnk_080B37A0 + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, #0x16 + beq _08025882 + ldr r0, _080258B8 @ =gUnk_080B3E80 + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, #0 + beq _080258AA +_08025882: + mov r0, r8 + ldrb r2, [r0] + adds r0, r5, #0 + bl sub_080002A8 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r0, _080258B0 @ =0x00000312 + cmp r2, r0 + beq _080258BC + ldr r0, _080258B4 @ =gUnk_080B37A0 + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, #0x16 + beq _080258BC + ldr r0, _080258B8 @ =gUnk_080B3E80 + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, #0 + bne _080258BC +_080258AA: + movs r0, #1 + b _080258BE + .align 2, 0 +_080258B0: .4byte 0x00000312 +_080258B4: .4byte gUnk_080B37A0 +_080258B8: .4byte gUnk_080B3E80 +_080258BC: + movs r0, #0 +_080258BE: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080258C4 +sub_080258C4: @ 0x080258C4 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + bl sub_08049DF4 + adds r2, r0, #0 + cmp r2, #0 + beq _08025922 + movs r0, #0x2e + ldrsh r1, [r2, r0] + movs r3, #0x2e + ldrsh r0, [r4, r3] + subs r3, r1, r0 + adds r0, r3, #0 + muls r0, r3, r0 + adds r3, r0, #0 + movs r1, #0x32 + ldrsh r0, [r2, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + subs r0, r0, r1 + adds r1, r0, #0 + muls r1, r0, r1 + adds r0, r1, #0 + adds r3, r3, r0 + adds r0, r4, #0 + adds r0, #0x84 + ldrh r0, [r0] + cmp r0, #0 + bne _0802591A + adds r0, r4, #0 + adds r0, #0x81 + ldrb r1, [r0] + cmp r1, #0 + bne _0802591A + movs r0, #0x80 + lsls r0, r0, #3 + cmp r3, r0 + bgt _0802591A + movs r0, #9 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + b _08025942 +_0802591A: + movs r0, #0x90 + lsls r0, r0, #4 + cmp r3, r0 + ble _08025926 +_08025922: + movs r0, #0 + b _08025944 +_08025926: + movs r0, #0xb + strb r0, [r4, #0xc] + movs r0, #1 + strb r0, [r4, #0xe] + bl sub_08000E50 + ldr r2, _08025948 @ =gUnk_080CC050 + movs r1, #0xf + ands r1, r0 + adds r1, r1, r2 + ldrb r1, [r1] + adds r0, r4, #0 + adds r0, #0x78 + strh r1, [r0] +_08025942: + movs r0, #1 +_08025944: + pop {r4, pc} + .align 2, 0 +_08025948: .4byte gUnk_080CC050 + + thumb_func_start sub_0802594C +sub_0802594C: @ 0x0802594C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + mov sl, r0 + ldr r0, _08025A20 @ =gUnk_080CC090 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r7, [r1] + mov r0, sl + adds r0, #0x38 + ldrb r0, [r0] + mov sb, r0 + ldr r3, _08025A24 @ =gUnk_03000BF0 + mov r1, sl + ldrh r0, [r1, #0x2e] + ldrh r1, [r3, #6] + subs r0, r0, r1 + adds r0, #8 + movs r1, #0x10 + rsbs r1, r1, #0 + adds r2, r1, #0 + ands r0, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp] + mov r1, sl + ldrh r0, [r1, #0x32] + ldrh r1, [r3, #8] + subs r0, r0, r1 + adds r0, #8 + ands r0, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #4] +_08025996: + movs r0, #0 + ldrsb r0, [r7, r0] + ldr r1, [sp] + lsls r4, r1, #0x10 + asrs r4, r4, #0x10 + adds r4, r4, r0 + lsls r4, r4, #0x10 + movs r0, #1 + ldrsb r0, [r7, r0] + ldr r1, [sp, #4] + lsls r5, r1, #0x10 + asrs r5, r5, #0x10 + adds r5, r5, r0 + lsls r5, r5, #0x10 + lsrs r0, r4, #0x10 + str r0, [sp, #8] + asrs r4, r4, #0x10 + lsrs r1, r5, #0x10 + str r1, [sp, #0xc] + asrs r5, r5, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + mov r2, sb + bl sub_080002D4 + adds r6, r0, #0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + movs r0, #0x10 + rsbs r0, r0, #0 + adds r0, r0, r4 + mov r8, r0 + adds r1, r5, #0 + mov r2, sb + bl sub_080002D4 + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + subs r5, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + mov r2, sb + str r3, [sp, #0x10] + bl sub_080002D4 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov r0, r8 + adds r1, r5, #0 + mov r2, sb + bl sub_080002D4 + ldr r3, [sp, #0x10] + orrs r6, r3 + orrs r4, r6 + orrs r4, r0 + lsls r4, r4, #0x18 + cmp r4, #0 + beq _08025A28 + adds r7, #2 + movs r0, #0 + ldrsb r0, [r7, r0] + cmp r0, #0x7f + bne _08025996 + movs r0, #0 + b _08025A44 + .align 2, 0 +_08025A20: .4byte gUnk_080CC090 +_08025A24: .4byte gUnk_03000BF0 +_08025A28: + ldr r2, _08025A50 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + ldr r1, [sp, #8] + adds r0, r0, r1 + mov r1, sl + adds r1, #0x7c + strh r0, [r1] + ldrh r0, [r2, #8] + ldr r1, [sp, #0xc] + adds r0, r0, r1 + mov r1, sl + adds r1, #0x7e + strh r0, [r1] + movs r0, #1 +_08025A44: + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08025A50: .4byte gUnk_03000BF0 + + thumb_func_start sub_08025A54 +sub_08025A54: @ 0x08025A54 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r1, r0, #0 + adds r1, #0x38 + ldrb r1, [r1] + mov sb, r1 + ldr r3, _08025AB0 @ =gUnk_03000BF0 + ldrh r2, [r0, #0x2e] + ldrh r1, [r3, #6] + subs r2, r2, r1 + ldrh r1, [r0, #0x32] + ldrh r0, [r3, #8] + subs r1, r1, r0 + ldr r4, _08025AB4 @ =gUnk_080CC0A0 + movs r5, #0 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + mov r8, r2 + movs r6, #0x3f + lsls r1, r1, #0x10 + asrs r7, r1, #0x10 +_08025A82: + movs r0, #0 + ldrsb r0, [r4, r0] + add r0, r8 + asrs r0, r0, #4 + ands r0, r6 + movs r1, #1 + ldrsb r1, [r4, r1] + adds r1, r7, r1 + asrs r1, r1, #4 + ands r1, r6 + lsls r1, r1, #6 + orrs r0, r1 + mov r1, sb + bl sub_08025AB8 + adds r5, #1 + adds r4, #2 + cmp r5, #3 + bls _08025A82 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08025AB0: .4byte gUnk_03000BF0 +_08025AB4: .4byte gUnk_080CC0A0 + + thumb_func_start sub_08025AB8 +sub_08025AB8: @ 0x08025AB8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_080002E0 + cmp r0, #0 + bne _08025AD6 + lsls r0, r4, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r5, #0x18 + lsrs r1, r1, #0x18 + bl sub_080002C8 + cmp r0, #0xa + beq _08025ADA +_08025AD6: + movs r0, #0 + b _08025AE6 +_08025ADA: + movs r0, #0x61 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_0807B7D8 + movs r0, #1 +_08025AE6: + pop {r4, r5, pc} + + thumb_func_start sub_08025AE8 +sub_08025AE8: @ 0x08025AE8 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x22 + movs r2, #0 + bl sub_080A29AC + adds r1, r0, #0 + cmp r1, #0 + beq _08025B00 + ldr r0, [r1, #0x30] + subs r0, #1 + str r0, [r1, #0x30] +_08025B00: + adds r0, r4, #0 + movs r1, #0x23 + movs r2, #0 + bl sub_080A29AC + adds r1, r0, #0 + cmp r1, #0 + beq _08025B16 + ldr r0, [r1, #0x30] + adds r0, #1 + str r0, [r1, #0x30] +_08025B16: + pop {r4, pc} + + thumb_func_start sub_08025B18 +sub_08025B18: @ 0x08025B18 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + adds r6, r0, #0 + movs r0, #0x2e + ldrsh r1, [r6, r0] + ldr r2, _08025BC8 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + str r1, [sp] + movs r0, #0x32 + ldrsh r1, [r6, r0] + ldrh r0, [r2, #8] + subs r1, r1, r0 + str r1, [sp, #4] + adds r0, r6, #0 + adds r0, #0x38 + ldrb r0, [r0] + mov sl, r0 + ldr r5, _08025BCC @ =gUnk_080CC0A8 + movs r7, #0 + movs r1, #0x3f + mov r8, r1 + movs r2, #0x10 + rsbs r2, r2, #0 + mov sb, r2 +_08025B52: + movs r0, #0 + ldrsb r0, [r5, r0] + ldr r1, [sp] + adds r0, r1, r0 + asrs r0, r0, #4 + mov r2, r8 + ands r0, r2 + movs r1, #1 + ldrsb r1, [r5, r1] + ldr r2, [sp, #4] + adds r1, r2, r1 + asrs r1, r1, #4 + mov r2, r8 + ands r1, r2 + lsls r1, r1, #6 + orrs r0, r1 + mov r1, sl + bl sub_08025AB8 + movs r0, #0x21 + movs r1, #2 + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _08025BB4 + movs r2, #0 + ldrsb r2, [r5, r2] + lsls r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r5, r3] + lsls r3, r3, #0x10 + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0806FA48 + ldrh r1, [r4, #0x2e] + mov r0, sb + ands r0, r1 + adds r0, #8 + strh r0, [r4, #0x2e] + ldrh r1, [r4, #0x32] + mov r0, sb + ands r0, r1 + adds r0, #8 + strh r0, [r4, #0x32] + ldr r0, _08025BD0 @ =0x0000FFFF + strh r0, [r4, #0x36] +_08025BB4: + adds r7, #1 + adds r5, #2 + cmp r7, #8 + bls _08025B52 + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08025BC8: .4byte gUnk_03000BF0 +_08025BCC: .4byte gUnk_080CC0A8 +_08025BD0: .4byte 0x0000FFFF + + thumb_func_start sub_08025BD4 +sub_08025BD4: @ 0x08025BD4 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #0 + beq _08025C22 + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08025C22 + movs r0, #0x21 + movs r1, #0 + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _08025C22 + ldr r3, _08025C24 @ =gUnk_080CC0BA + ldrb r0, [r5, #0x14] + lsls r0, r0, #1 + adds r1, r0, r3 + movs r2, #0 + ldrsb r2, [r1, r2] + lsls r2, r2, #0x10 + adds r0, #1 + adds r0, r0, r3 + movs r3, #0 + ldrsb r3, [r0, r3] + lsls r3, r3, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA48 + ldr r0, _08025C28 @ =0x0000FFF6 + strh r0, [r4, #0x36] +_08025C22: + pop {r4, r5, pc} + .align 2, 0 +_08025C24: .4byte gUnk_080CC0BA +_08025C28: .4byte 0x0000FFF6 + + thumb_func_start sub_08025C2C +sub_08025C2C: @ 0x08025C2C + push {lr} + movs r2, #0 + movs r1, #8 + strb r1, [r0, #0xc] + adds r1, r0, #0 + adds r1, #0x80 + strb r2, [r1] + movs r1, #8 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08025C44 +sub_08025C44: @ 0x08025C44 + push {lr} + adds r2, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08025C58 + movs r0, #0 + b _08025C5E +_08025C58: + adds r0, r2, #0 + bl sub_080AEF88 +_08025C5E: + pop {pc} + + thumb_func_start sub_08025C60 +sub_08025C60: @ 0x08025C60 + push {r4, lr} + adds r4, r0, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _08025C80 + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _08025C80 + adds r0, r4, #0 + bl sub_08049EE4 + b _08025C98 +_08025C80: + bl sub_08000E50 + ldr r2, _08025C9C @ =gUnk_080CC0C2 + movs r1, #7 + ands r1, r0 + adds r1, r1, r2 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrb r4, [r4, #0x15] + adds r0, r0, r4 + movs r1, #0x1f + ands r0, r1 +_08025C98: + pop {r4, pc} + .align 2, 0 +_08025C9C: .4byte gUnk_080CC0C2 + + thumb_func_start sub_08025CA0 +sub_08025CA0: @ 0x08025CA0 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _08025CB8 @ =gUnk_080CC19C + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_08025CB8: .4byte gUnk_080CC19C + + thumb_func_start sub_08025CBC +sub_08025CBC: @ 0x08025CBC + push {r4, lr} + adds r4, r0, #0 + bl sub_08001324 + + thumb_func_start sub_08025CC4 +sub_08025CC4: @ 0x08025CC4 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08025CD0 + adds r0, r4, #0 + bl sub_08027870 +_08025CD0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08025CD4 +sub_08025CD4: @ 0x08025CD4 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08078B48 + ldrb r3, [r4, #0xa] + cmp r3, #0 + bne _08025DA4 + ldrb r0, [r4, #0xd] + cmp r0, #0xc + beq _08025CFE + movs r0, #0xc + strb r0, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + strb r3, [r0, #3] + ldr r0, [r4, #0x54] + movs r1, #9 + bl sub_080042AC + b _08025D9C +_08025CFE: + adds r5, r4, #0 + adds r5, #0x84 + ldr r0, [r5] + ldrb r0, [r0, #3] + cmp r0, #0 + beq _08025D10 + cmp r0, #1 + beq _08025D28 + b _08025D9C +_08025D10: + adds r0, r4, #0 + movs r1, #0x3f + bl sub_08027C7C + ldr r0, [r5] + movs r1, #1 + strb r1, [r0, #3] + adds r1, r4, #0 + adds r1, #0x7d + movs r0, #0x78 + strb r0, [r1] + b _08025D9C +_08025D28: + adds r2, r4, #0 + adds r2, #0x7d + ldrb r0, [r2] + subs r1, r0, #1 + strb r1, [r2] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08025D84 + ldr r1, [r4, #0x54] + adds r1, #0x6d + ldrb r0, [r1] + movs r2, #2 + orrs r0, r2 + strb r0, [r1] + ldr r1, [r4, #0x68] + adds r1, #0x6d + ldrb r0, [r1] + orrs r0, r2 + strb r0, [r1] + ldr r1, [r4, #0x50] + adds r1, #0x6d + ldrb r0, [r1] + orrs r0, r2 + strb r0, [r1] + ldr r2, [r4, #0x54] + ldr r1, [r4, #0x50] + ldr r0, [r4, #0x68] + adds r0, #0x45 + strb r3, [r0] + adds r1, #0x45 + strb r3, [r1] + adds r2, #0x45 + strb r3, [r2] + ldr r0, _08025D80 @ =gUnk_02034490 + strb r3, [r0] + movs r0, #0x94 + lsls r0, r0, #1 + bl sub_080A3268 + adds r0, r4, #0 + bl sub_0804A7D4 + b _08025D9C + .align 2, 0 +_08025D80: .4byte gUnk_02034490 +_08025D84: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x3f + cmp r0, #0x50 + bhi _08025D96 + movs r1, #0xf + cmp r0, #0x1e + bls _08025D96 + movs r1, #0x1f +_08025D96: + adds r0, r4, #0 + bl sub_08027C7C +_08025D9C: + adds r0, r4, #0 + bl sub_08027870 + b _08025DBC +_08025DA4: + adds r2, r4, #0 + adds r2, #0x6d + ldrb r1, [r2] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08025DBC + movs r0, #2 + orrs r0, r1 + strb r0, [r2] + bl sub_0805E780 +_08025DBC: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08025DC0 +sub_08025DC0: @ 0x08025DC0 + push {lr} + ldr r2, _08025DD4 @ =gUnk_080CC1B0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08025DD4: .4byte gUnk_080CC1B0 + + thumb_func_start sub_08025DD8 +sub_08025DD8: @ 0x08025DD8 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0xa] + cmp r1, #8 + bne _08025DF2 + movs r0, #4 + strb r0, [r5, #0xa] + ldr r0, [r5, #0x54] + ldr r0, [r0, #0x48] + str r0, [r5, #0x48] + b _0802605E +_08025DF2: + ldr r6, _08025E48 @ =gUnk_080CC1B8 + movs r4, #3 + movs r3, #3 + adds r0, r3, #0 + ands r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r0, [r0, #1] + movs r1, #0x29 + adds r1, r1, r5 + mov ip, r1 + movs r1, #7 + ands r1, r0 + mov r0, ip + ldrb r2, [r0] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + adds r1, r5, #0 + adds r1, #0x76 + movs r0, #0xa0 + strh r0, [r1] + adds r1, #4 + strh r0, [r1] + adds r1, #4 + movs r0, #0 + strh r0, [r1] + ldrb r0, [r5, #0x19] + orrs r0, r4 + strb r0, [r5, #0x19] + ldrb r0, [r5, #0xa] + ands r3, r0 + cmp r3, #1 + bne _08025E4C + adds r0, r5, #0 + movs r1, #0 + bl sub_080042AC + b _08025E58 + .align 2, 0 +_08025E48: .4byte gUnk_080CC1B8 +_08025E4C: + lsls r0, r3, #2 + adds r0, r0, r6 + ldrb r1, [r0] + adds r0, r5, #0 + bl sub_08004260 +_08025E58: + ldrb r0, [r5, #0xa] + movs r6, #3 + ands r6, r0 + cmp r6, #0 + beq _08025E86 + cmp r6, #0 + bge _08025E68 + b _08026050 +_08025E68: + cmp r6, #3 + ble _08025E6E + b _08026050 +_08025E6E: + ldr r4, [r5, #0x48] + adds r0, r5, #0 + bl sub_0806FBD8 + adds r1, r0, #0 + cmp r1, #0 + beq _08025E7E + b _08026020 +_08025E7E: + ldr r0, [r5, #0x68] + adds r0, #0x45 + strb r1, [r0] + b _0802605E +_08025E86: + strb r0, [r5, #0xb] + movs r0, #0x10 + bl sub_0801D8E0 + adds r4, r5, #0 + adds r4, #0x84 + str r0, [r4] + cmp r0, #0 + beq _08025EA2 + adds r0, r5, #0 + bl sub_0806FBD8 + cmp r0, #0 + bne _08025EAA +_08025EA2: + adds r0, r5, #0 + bl sub_0804A7D4 + b _0802605E +_08025EAA: + ldr r0, [r4] + str r0, [r5, #0x64] + ldr r2, [r5, #0x48] + ldr r1, _0802601C @ =gUnk_080FD238 + ldrb r0, [r1] + strb r0, [r2] + ldr r2, [r5, #0x48] + ldrb r0, [r1, #1] + strb r0, [r2, #1] + ldr r2, [r5, #0x48] + ldrb r0, [r1, #2] + strb r0, [r2, #2] + ldr r2, [r5, #0x48] + ldrb r0, [r1, #3] + strb r0, [r2, #3] + ldr r2, [r5, #0x48] + ldrb r0, [r1, #4] + strb r0, [r2, #4] + ldr r2, [r5, #0x48] + ldrb r0, [r1, #5] + strb r0, [r2, #5] + ldr r2, [r5, #0x48] + ldrb r0, [r1, #6] + strb r0, [r2, #6] + ldr r2, [r5, #0x48] + ldrb r0, [r1, #7] + strb r0, [r2, #7] + strb r6, [r5, #0xd] + adds r1, r5, #0 + adds r1, #0x6d + ldrb r0, [r1] + movs r7, #1 + orrs r0, r7 + strb r0, [r1] + ldr r0, [r4] + strb r6, [r0, #6] + ldr r0, [r4] + strb r6, [r0, #5] + ldr r1, [r4] + movs r0, #0xf + strb r0, [r1, #1] + ldr r0, [r4] + strb r6, [r0, #3] + ldr r0, [r4] + strb r6, [r0, #4] + ldr r1, [r4] + ldrh r0, [r5, #0x2e] + strh r0, [r1, #0xe] + ldrb r0, [r5, #0xa] + movs r1, #3 + orrs r1, r0 + movs r0, #0x13 + bl sub_0804AA60 + adds r2, r0, #0 + str r2, [r5, #0x68] + cmp r2, #0 + beq _08025F46 + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r2, #0 + adds r0, #0x38 + strb r1, [r0] + ldr r1, [r5, #0x68] + ldrh r0, [r5, #0x2e] + strh r0, [r1, #0x2e] + ldr r1, [r5, #0x68] + ldrh r0, [r5, #0x32] + subs r0, #0xe + strh r0, [r1, #0x32] + ldr r1, [r5, #0x68] + movs r0, #0xe + strb r0, [r1, #0xe] + ldr r0, [r5, #0x68] + str r5, [r0, #0x50] + ldr r0, [r5, #0x68] + str r5, [r0, #0x68] +_08025F46: + ldrb r0, [r5, #0xa] + movs r1, #2 + orrs r1, r0 + movs r0, #0x13 + bl sub_0804AA60 + adds r2, r0, #0 + str r2, [r5, #0x50] + cmp r2, #0 + beq _08025F8C + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r2, #0 + adds r0, #0x38 + strb r1, [r0] + ldr r1, [r5, #0x50] + ldrh r0, [r5, #0x2e] + strh r0, [r1, #0x2e] + ldr r1, [r5, #0x50] + ldr r0, [r5, #0x68] + ldrh r0, [r0, #0x32] + subs r0, #0x12 + strh r0, [r1, #0x32] + ldr r1, [r5, #0x50] + movs r0, #0x12 + strb r0, [r1, #0xe] + ldr r1, [r5, #0x50] + ldr r0, [r5, #0x68] + str r0, [r1, #0x50] + ldr r1, [r5, #0x68] + ldr r0, [r5, #0x50] + str r0, [r1, #0x54] + ldr r0, [r5, #0x50] + str r5, [r0, #0x68] +_08025F8C: + ldrb r0, [r5, #0xa] + adds r1, r7, #0 + orrs r1, r0 + movs r0, #0x13 + bl sub_0804AA60 + adds r2, r0, #0 + str r2, [r5, #0x54] + cmp r2, #0 + beq _08025FD6 + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r2, #0 + adds r0, #0x38 + strb r1, [r0] + ldr r1, [r5, #0x54] + ldrh r0, [r5, #0x2e] + strh r0, [r1, #0x2e] + ldr r1, [r5, #0x54] + ldr r0, [r5, #0x50] + ldrh r0, [r0, #0x32] + subs r0, #0xe + strh r0, [r1, #0x32] + ldr r1, [r5, #0x54] + movs r0, #0xe + strb r0, [r1, #0xe] + ldr r1, [r5, #0x54] + ldr r0, [r5, #0x50] + str r0, [r1, #0x50] + ldr r0, [r5, #0x54] + str r5, [r0, #0x54] + ldr r1, [r5, #0x50] + ldr r0, [r5, #0x54] + str r0, [r1, #0x54] + ldr r0, [r5, #0x54] + str r5, [r0, #0x68] +_08025FD6: + movs r0, #0x13 + movs r1, #8 + bl sub_0804AA60 + adds r1, r0, #0 + cmp r1, #0 + beq _08025FE6 + str r5, [r1, #0x54] +_08025FE6: + adds r0, r5, #0 + movs r1, #0x49 + movs r2, #1 + movs r3, #0 + bl sub_080A2988 + adds r1, r0, #0 + cmp r1, #0 + beq _08025FFC + ldr r0, [r5, #0x54] + str r0, [r1, #0x54] +_08025FFC: + ldrb r0, [r5, #0xa] + cmp r0, #0 + beq _08026050 + adds r0, r5, #0 + movs r1, #0x49 + movs r2, #3 + movs r3, #0 + bl sub_080A2988 + adds r1, r0, #0 + cmp r1, #0 + beq _08026050 + ldr r0, [r5, #0x54] + str r0, [r1, #0x54] + b _08026050 + .align 2, 0 +_0802601C: .4byte gUnk_080FD238 +_08026020: + ldr r1, [r5, #0x48] + ldrb r0, [r4] + strb r0, [r1] + ldr r1, [r5, #0x48] + ldrb r0, [r4, #1] + strb r0, [r1, #1] + ldr r1, [r5, #0x48] + ldrb r0, [r4, #2] + strb r0, [r1, #2] + ldr r1, [r5, #0x48] + ldrb r0, [r4, #3] + strb r0, [r1, #3] + ldr r1, [r5, #0x48] + ldrb r0, [r4, #4] + strb r0, [r1, #4] + ldr r1, [r5, #0x48] + ldrb r0, [r4, #5] + strb r0, [r1, #5] + ldr r1, [r5, #0x48] + ldrb r0, [r4, #6] + strb r0, [r1, #6] + ldr r1, [r5, #0x48] + ldrb r0, [r4, #7] + strb r0, [r1, #7] +_08026050: + ldrb r1, [r5, #0xa] + movs r0, #3 + ands r0, r1 + strb r0, [r5, #0xa] + adds r0, r5, #0 + bl sub_08026060 +_0802605E: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08026060 +sub_08026060: @ 0x08026060 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0802608C @ =gUnk_080CC1C8 + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + adds r0, #0x76 + ldrh r1, [r0] + adds r0, #4 + ldrh r2, [r0] + adds r0, #4 + ldrh r3, [r0] + adds r0, r4, #0 + bl sub_0805EC9C + pop {r4, pc} + .align 2, 0 +_0802608C: .4byte gUnk_080CC1C8 + + thumb_func_start sub_08026090 +sub_08026090: @ 0x08026090 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _080260EA + ldr r0, [r4, #0x54] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _080260B8 + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0xfa + strb r0, [r4, #0xe] + ldr r0, _080260D4 @ =gUnk_03000BF0 + str r4, [r0, #0x30] +_080260B8: + ldr r0, [r4, #0x54] + ldrb r1, [r0, #0x10] + strb r1, [r4, #0x10] + ldr r1, [r0, #0x48] + str r1, [r4, #0x48] + adds r0, #0x3f + ldrb r1, [r0] + cmp r1, #0x7e + bne _080260D8 + adds r0, r4, #0 + adds r0, #0x3f + strb r1, [r0] + b _080260E0 + .align 2, 0 +_080260D4: .4byte gUnk_03000BF0 +_080260D8: + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x7c + strb r0, [r1] +_080260E0: + ldr r0, [r4, #0x54] + adds r1, r4, #0 + bl sub_0806FA24 + b _08026106 +_080260EA: + bl sub_08078B48 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08026106 + ldr r1, _08026108 @ =gUnk_03000BF0 + ldr r0, _0802610C @ =gUnk_03001160 + str r0, [r1, #0x30] + bl sub_0805E780 +_08026106: + pop {r4, pc} + .align 2, 0 +_08026108: .4byte gUnk_03000BF0 +_0802610C: .4byte gUnk_03001160 + + thumb_func_start sub_08026110 +sub_08026110: @ 0x08026110 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + ldr r1, _08026144 @ =gUnk_080CC1DC + ldrb r0, [r6, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r6, #0 + bl _call_via_r1 + adds r0, r6, #0 + adds r0, #0x84 + ldr r2, [r0] + ldr r0, [r2, #8] + cmp r0, #0 + bne _08026160 + ldrb r1, [r2, #5] + cmp r1, #0 + beq _08026160 + ldrb r0, [r6, #0xd] + cmp r0, #8 + bne _08026148 + adds r0, r1, #0 + subs r0, #0x40 + b _0802614C + .align 2, 0 +_08026144: .4byte gUnk_080CC1DC +_08026148: + adds r0, r1, #0 + subs r0, #0x20 +_0802614C: + strb r0, [r2, #5] + adds r0, r6, #0 + adds r0, #0x84 + ldr r1, [r0] + movs r0, #5 + ldrsb r0, [r1, r0] + cmp r0, #0 + bge _08026160 + movs r0, #0 + strb r0, [r1, #5] +_08026160: + adds r2, r6, #0 + adds r2, #0x80 + ldrb r0, [r2] + movs r1, #0x76 + adds r1, r1, r6 + mov ip, r1 + adds r7, r6, #0 + adds r7, #0x7a + cmp r0, #0 + beq _08026230 + ldrb r0, [r6, #0xe] + cmp r0, #0 + bne _080261D2 + ldrb r1, [r2] + lsls r1, r1, #0xc + ldr r0, [r6, #0x74] + subs r0, r0, r1 + str r0, [r6, #0x74] + ldrb r1, [r2] + lsls r1, r1, #0xc + ldr r0, [r6, #0x78] + subs r0, r0, r1 + str r0, [r6, #0x78] + mov r0, ip + ldrh r2, [r0] + adds r4, r6, #0 + adds r4, #0x82 + ldrb r1, [r4] + adds r3, r6, #0 + adds r3, #0x84 + ldr r0, [r3] + ldrb r0, [r0, #5] + adds r1, r1, r0 + cmp r2, r1 + bgt _080261AA + mov r0, ip + strh r1, [r0] +_080261AA: + ldrh r2, [r7] + ldrb r1, [r4] + ldr r0, [r3] + ldrb r0, [r0, #5] + adds r1, r1, r0 + cmp r2, r1 + bgt _080261BA + strh r1, [r7] +_080261BA: + mov r1, ip + ldrh r2, [r1] + ldrb r1, [r4] + ldr r0, [r3] + ldrb r0, [r0, #5] + adds r1, r1, r0 + cmp r2, r1 + bgt _08026230 + ldrh r0, [r7] + cmp r0, r1 + bgt _08026230 + b _08026228 +_080261D2: + ldrb r1, [r2] + lsls r1, r1, #0xc + ldr r0, [r6, #0x74] + adds r0, r0, r1 + str r0, [r6, #0x74] + ldrb r1, [r2] + lsls r1, r1, #0xc + ldr r0, [r6, #0x78] + adds r0, r0, r1 + str r0, [r6, #0x78] + mov r0, ip + ldrh r2, [r0] + adds r4, r6, #0 + adds r4, #0x81 + ldrb r1, [r4] + adds r3, r6, #0 + adds r3, #0x84 + ldr r0, [r3] + ldrb r0, [r0, #5] + adds r1, r1, r0 + cmp r2, r1 + blt _08026202 + mov r0, ip + strh r1, [r0] +_08026202: + ldrh r2, [r7] + ldrb r1, [r4] + ldr r0, [r3] + ldrb r0, [r0, #5] + adds r1, r1, r0 + cmp r2, r1 + blt _08026212 + strh r1, [r7] +_08026212: + mov r1, ip + ldrh r2, [r1] + ldrb r1, [r4] + ldr r0, [r3] + ldrb r0, [r0, #5] + adds r1, r1, r0 + cmp r2, r1 + blt _08026230 + ldrh r0, [r7] + cmp r0, r1 + blt _08026230 +_08026228: + ldrb r0, [r6, #0xe] + movs r1, #1 + eors r0, r1 + strb r0, [r6, #0xe] +_08026230: + ldr r5, [r6, #0x48] + mov r0, ip + ldrh r1, [r0] + movs r4, #0x80 + lsls r4, r4, #9 + adds r0, r4, #0 + bl __divsi3 + lsls r1, r0, #3 + subs r1, r1, r0 + lsrs r1, r1, #7 + strb r1, [r5, #6] + ldr r5, [r6, #0x48] + ldrh r1, [r7] + adds r0, r4, #0 + bl __divsi3 + lsls r1, r0, #1 + adds r1, r1, r0 + lsrs r1, r1, #7 + strb r1, [r5, #7] + movs r1, #0x36 + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _08026268 + adds r0, r6, #0 + bl sub_0800445C +_08026268: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0802626C +sub_0802626C: @ 0x0802626C + push {lr} + ldr r2, _0802629C @ =gUnk_02034490 + movs r1, #1 + strb r1, [r2] + ldr r2, _080262A0 @ =gUnk_080CC20C + adds r1, r0, #0 + adds r1, #0x84 + ldr r1, [r1] + ldrb r1, [r1, #3] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + ldr r0, _080262A4 @ =gUnk_03001160 + ldrb r0, [r0, #0xc] + cmp r0, #0x17 + beq _08026298 + cmp r0, #0xf + beq _08026298 + bl sub_08078B48 +_08026298: + pop {pc} + .align 2, 0 +_0802629C: .4byte gUnk_02034490 +_080262A0: .4byte gUnk_080CC20C +_080262A4: .4byte gUnk_03001160 + + thumb_func_start sub_080262A8 +sub_080262A8: @ 0x080262A8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x82 + movs r6, #0 + movs r0, #0x90 + strb r0, [r1] + subs r1, #1 + movs r0, #0xb0 + strb r0, [r1] + subs r1, #1 + movs r0, #8 + strb r0, [r1] + movs r5, #1 + strb r5, [r4, #0xe] + adds r0, r4, #0 + movs r1, #6 + movs r2, #1 + bl sub_080276F4 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _080262EC + ldr r1, _080262E8 @ =gUnk_03003F80 + movs r0, #0x82 + lsls r0, r0, #1 + strh r0, [r1, #8] + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + strb r5, [r0, #3] + b _0802631A + .align 2, 0 +_080262E8: .4byte gUnk_03003F80 +_080262EC: + adds r0, r4, #0 + adds r0, #0x7c + strb r6, [r0] + adds r1, r4, #0 + adds r1, #0x7d + movs r0, #0x1e + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + movs r0, #3 + strb r0, [r1, #3] + ldr r0, _0802631C @ =gUnk_03001160 + strb r6, [r0, #0x14] + ldr r0, _08026320 @ =gUnk_03000BF0 + str r4, [r0, #0x30] + strb r5, [r0, #0xe] + ldr r0, _08026324 @ =0x00004022 + movs r1, #0xb2 + lsls r1, r1, #2 + movs r2, #1 + bl sub_0800015E +_0802631A: + pop {r4, r5, r6, pc} + .align 2, 0 +_0802631C: .4byte gUnk_03001160 +_08026320: .4byte gUnk_03000BF0 +_08026324: .4byte 0x00004022 + + thumb_func_start sub_08026328 +sub_08026328: @ 0x08026328 + push {lr} + adds r2, r0, #0 + ldr r0, _08026354 @ =gUnk_03001160 + ldrb r0, [r0, #0xc] + cmp r0, #0x17 + beq _08026352 + adds r1, r2, #0 + adds r1, #0x7d + movs r0, #0x78 + strb r0, [r1] + adds r0, r2, #0 + adds r0, #0x84 + ldr r1, [r0] + ldrb r0, [r1, #3] + adds r0, #1 + strb r0, [r1, #3] + movs r0, #0xa + movs r1, #0 + movs r2, #0 + bl sub_08078AC0 +_08026352: + pop {pc} + .align 2, 0 +_08026354: .4byte gUnk_03001160 + + thumb_func_start sub_08026358 +sub_08026358: @ 0x08026358 + push {r4, lr} + adds r3, r0, #0 + ldr r4, _08026398 @ =gUnk_03001160 + ldrb r0, [r4, #0xc] + cmp r0, #0xf + beq _080263B0 + adds r1, r3, #0 + adds r1, #0x7d + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + bne _080263A0 + adds r0, r3, #0 + adds r0, #0x7c + strb r2, [r0] + movs r0, #0x1e + strb r0, [r1] + adds r0, r3, #0 + adds r0, #0x84 + ldr r1, [r0] + ldrb r0, [r1, #3] + adds r0, #1 + strb r0, [r1, #3] + strb r2, [r4, #0x14] + ldr r1, _0802639C @ =gUnk_03000BF0 + str r3, [r1, #0x30] + movs r0, #1 + strb r0, [r1, #0xe] + b _080263B0 + .align 2, 0 +_08026398: .4byte gUnk_03001160 +_0802639C: .4byte gUnk_03000BF0 +_080263A0: + cmp r2, #0x60 + bhi _080263B0 + cmp r2, #0x5b + bhi _080263AC + movs r0, #4 + b _080263AE +_080263AC: + movs r0, #2 +_080263AE: + strb r0, [r4, #0x14] +_080263B0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080263B4 +sub_080263B4: @ 0x080263B4 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x7d + adds r0, r0, r4 + mov ip, r0 + ldrb r0, [r0] + subs r0, #1 + mov r1, ip + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0xff + bne _08026410 + ldr r2, _08026400 @ =gUnk_080CC234 + adds r3, r4, #0 + adds r3, #0x7c + ldrb r0, [r3] + adds r1, r0, #1 + strb r1, [r3] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r2 + ldrb r1, [r0] + mov r0, ip + strb r1, [r0] + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0xff + bne _08026404 + movs r0, #0x78 + strb r0, [r3] + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + ldrb r0, [r1, #3] + adds r0, #1 + strb r0, [r1, #3] + b _08026410 + .align 2, 0 +_08026400: .4byte gUnk_080CC234 +_08026404: + ldrb r2, [r4, #0xb] + adds r0, r4, #0 + movs r1, #0x49 + movs r3, #0 + bl sub_080A2988 +_08026410: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08026414 +sub_08026414: @ 0x08026414 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r1, r7, #0 + adds r1, #0x7c + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08026474 + ldr r0, _08026478 @ =0x0000FF40 + strh r0, [r7, #0x36] + ldr r6, [r7, #0x54] + ldr r5, [r7, #0x50] + ldr r4, [r7, #0x68] + ldrb r2, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + adds r0, r1, #0 + ands r0, r2 + movs r3, #1 + orrs r0, r3 + strb r0, [r4, #0x18] + ldrb r2, [r5, #0x18] + adds r0, r1, #0 + ands r0, r2 + orrs r0, r3 + strb r0, [r5, #0x18] + ldrb r2, [r6, #0x18] + adds r0, r1, #0 + ands r0, r2 + orrs r0, r3 + strb r0, [r6, #0x18] + ldrb r0, [r7, #0x18] + ands r1, r0 + orrs r1, r3 + strb r1, [r7, #0x18] + adds r0, r7, #0 + adds r0, #0x84 + ldr r1, [r0] + ldrb r0, [r1, #3] + adds r0, #1 + strb r0, [r1, #3] + movs r0, #0xd1 + lsls r0, r0, #1 + bl sub_080A3268 +_08026474: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08026478: .4byte 0x0000FF40 + + thumb_func_start sub_0802647C +sub_0802647C: @ 0x0802647C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x80 + lsls r1, r1, #7 + bl sub_08003FC4 + cmp r0, #0 + bne _080264A6 + movs r0, #0x10 + movs r1, #0 + bl sub_08080964 + ldr r0, _080264A8 @ =0x000001A1 + bl sub_080A3268 + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + ldrb r0, [r1, #3] + adds r0, #1 + strb r0, [r1, #3] +_080264A6: + pop {r4, pc} + .align 2, 0 +_080264A8: .4byte 0x000001A1 + + thumb_func_start sub_080264AC +sub_080264AC: @ 0x080264AC + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xd0 + movs r2, #8 + bl sub_080277B8 + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + ldrb r0, [r0, #3] + cmp r0, #6 + beq _080264D2 + ldr r0, [r4, #0x54] + movs r1, #4 + bl sub_080042AC + adds r0, r4, #0 + bl sub_08027D20 +_080264D2: + pop {r4, pc} + + thumb_func_start sub_080264D4 +sub_080264D4: @ 0x080264D4 + push {r4, lr} + adds r4, r0, #0 + bl sub_080279E8 + cmp r0, #0 + beq _08026504 + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + ldrb r0, [r1, #3] + adds r0, #1 + strb r0, [r1, #3] + adds r1, r4, #0 + adds r1, #0x7d + movs r0, #0x3c + strb r0, [r1] + adds r0, r4, #0 + movs r1, #5 + movs r2, #0 + bl sub_080276F4 + movs r0, #0x2e + bl sub_080A3268 +_08026504: + adds r0, r4, #0 + bl sub_080277F8 + pop {r4, pc} + + thumb_func_start sub_0802650C +sub_0802650C: @ 0x0802650C + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x54] + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + bne _0802652C + adds r0, r2, #0 + adds r0, #0x84 + ldr r1, [r0] + ldrb r0, [r1, #3] + adds r0, #1 + strb r0, [r1, #3] + ldr r1, _08026534 @ =gUnk_03000BF0 + ldr r0, _08026538 @ =gUnk_03001160 + str r0, [r1, #0x30] +_0802652C: + adds r0, r2, #0 + bl sub_08027870 + pop {pc} + .align 2, 0 +_08026534: .4byte gUnk_03000BF0 +_08026538: .4byte gUnk_03001160 + + thumb_func_start sub_0802653C +sub_0802653C: @ 0x0802653C + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + ldr r1, _08026578 @ =gUnk_03000BF0 + ldrh r5, [r1] + cmp r5, #0 + bne _08026572 + movs r0, #4 + strb r0, [r1, #0xe] + movs r0, #0xff + str r0, [sp] + adds r0, r4, #0 + movs r1, #0x90 + movs r2, #0xb0 + movs r3, #4 + bl sub_08027B98 + adds r0, r4, #0 + movs r1, #0 + bl sub_08027548 + ldr r0, [r4, #0x54] + movs r1, #0 + bl sub_080042AC + ldr r0, _0802657C @ =gUnk_02034490 + strb r5, [r0] +_08026572: + add sp, #4 + pop {r4, r5, pc} + .align 2, 0 +_08026578: .4byte gUnk_03000BF0 +_0802657C: .4byte gUnk_02034490 + + thumb_func_start sub_08026580 +sub_08026580: @ 0x08026580 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + bl sub_08027AA4 + adds r7, r5, #0 + adds r7, #0x84 + ldr r0, [r7] + ldrb r0, [r0, #1] + cmp r0, #0x40 + bne _0802659C + adds r0, r5, #0 + bl sub_08027BBC + b _0802662C +_0802659C: + adds r1, r5, #0 + adds r1, #0x7d + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r6, r1, #0 + cmp r0, #0xff + bne _08026626 + movs r0, #0 + strh r0, [r5, #0x24] + movs r0, #2 + strb r0, [r5, #0xd] + adds r4, r5, #0 + adds r4, #0x7c + movs r0, #0x3c + strb r0, [r4] + ldr r1, _080265E4 @ =gUnk_03001160 + adds r0, r5, #0 + bl sub_080045C4 + strb r0, [r5, #0x15] + ldr r0, [r7] + ldrb r0, [r0, #4] + adds r2, r4, #0 + cmp r0, #2 + bne _080265E8 + adds r1, r5, #0 + adds r1, #0x80 + movs r0, #0x48 + strb r0, [r1] + adds r1, #1 + ldrb r0, [r1] + adds r0, #0x10 + b _080265EE + .align 2, 0 +_080265E4: .4byte gUnk_03001160 +_080265E8: + adds r1, r5, #0 + adds r1, #0x80 + movs r0, #0x10 +_080265EE: + strb r0, [r1] + adds r4, r5, #0 + adds r4, #0x84 + ldr r0, [r4] + ldrb r1, [r0, #1] + movs r0, #0xa0 + ands r0, r1 + cmp r0, #0 + beq _08026608 + movs r0, #0 + strb r0, [r6] + strb r0, [r2] + b _08026626 +_08026608: + bl sub_08000E50 + ldr r2, _08026630 @ =gUnk_080CC24F + movs r1, #7 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + adds r1, r0, #1 + strb r1, [r6] + ldr r0, [r4] + ldrb r0, [r0, #4] + cmp r0, #2 + bne _08026626 + lsls r0, r1, #1 + strb r0, [r6] +_08026626: + adds r0, r5, #0 + bl sub_08027870 +_0802662C: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08026630: .4byte gUnk_080CC24F + + thumb_func_start sub_08026634 +sub_08026634: @ 0x08026634 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + bl sub_08027AA4 + cmp r0, #0 + beq _08026644 + b _08026748 +_08026644: + adds r0, r4, #0 + adds r0, #0x7d + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #0 + bne _080266D6 + adds r1, r4, #0 + adds r1, #0x7c + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08026748 + adds r1, #8 + ldr r2, [r1] + ldrb r3, [r2, #1] + movs r0, #0x40 + ands r0, r3 + adds r5, r1, #0 + cmp r0, #0 + bne _080266B0 + movs r0, #0x80 + ands r0, r3 + cmp r0, #0 + beq _0802668C + ldrb r0, [r2] + subs r0, #1 + strb r0, [r2] + ldr r1, [r5] + ldrb r0, [r1] + cmp r0, #0 + bne _080266B0 + movs r0, #1 + b _080266AE +_0802668C: + movs r0, #1 + strb r0, [r2, #1] + ldr r0, [r5] + ldrb r0, [r0, #4] + cmp r0, #2 + bne _080266B0 + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + cmp r1, #0 + beq _080266B0 + ldr r1, [r5] + movs r0, #4 + strb r0, [r1] + ldr r1, [r5] + movs r0, #0x81 +_080266AE: + strb r0, [r1, #1] +_080266B0: + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xd] + ldr r0, [r5] + strb r1, [r0, #3] + str r1, [sp] + adds r0, r4, #0 + movs r1, #0x90 + movs r2, #0x90 + movs r3, #0xc + bl sub_08027B98 + movs r0, #0xe0 + lsls r0, r0, #0xb + str r0, [r4, #0x20] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + b _08026742 +_080266D6: + ldr r0, _08026700 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #0x7f + ands r0, r1 + cmp r0, #0 + bne _080266EC + ldr r1, _08026704 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] +_080266EC: + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + ldrb r0, [r0, #4] + cmp r0, #2 + bne _08026708 + movs r0, #0x80 + lsls r0, r0, #1 + b _0802670A + .align 2, 0 +_08026700: .4byte gUnk_030010A0 +_08026704: .4byte gUnk_03001160 +_08026708: + movs r0, #0xc0 +_0802670A: + strh r0, [r4, #0x24] + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0802672C + ldr r0, _0802674C @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _08026726 + movs r0, #0xcf + lsls r0, r0, #1 + bl sub_080A3268 +_08026726: + adds r0, r4, #0 + bl sub_080AEF88 +_0802672C: + adds r0, r4, #0 + adds r0, #0x76 + adds r1, r4, #0 + adds r1, #0x81 + ldrh r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bne _08026742 + ldrb r0, [r5] + subs r0, #1 + strb r0, [r5] +_08026742: + adds r0, r4, #0 + bl sub_08027870 +_08026748: + add sp, #4 + pop {r4, r5, pc} + .align 2, 0 +_0802674C: .4byte gUnk_030010A0 + + thumb_func_start sub_08026750 +sub_08026750: @ 0x08026750 + push {r4, lr} + adds r4, r0, #0 + bl sub_08027AA4 + ldr r1, _08026770 @ =gUnk_080CC258 + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + ldrb r0, [r0, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_08026770: .4byte gUnk_080CC258 + + thumb_func_start sub_08026774 +sub_08026774: @ 0x08026774 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + ldr r1, [r4, #0x54] + adds r1, #0x83 + ldr r0, [r4, #0x50] + adds r0, #0x83 + ldrb r1, [r1] + ldrb r0, [r0] + orrs r1, r0 + ldr r0, [r4, #0x68] + adds r0, #0x83 + ldrb r0, [r0] + orrs r1, r0 + cmp r1, #0 + bne _080267C6 + adds r2, r4, #0 + adds r2, #0x7d + ldrb r0, [r2] + subs r0, #1 + strb r0, [r2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _080267CC + str r1, [sp] + adds r0, r4, #0 + movs r1, #0x80 + movs r2, #0x80 + movs r3, #0x40 + bl sub_08027B98 + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + movs r0, #1 + strb r0, [r1, #3] + ldr r0, [r4, #0x54] + movs r1, #1 + bl sub_080042AC +_080267C6: + adds r0, r4, #0 + bl sub_080277F8 +_080267CC: + add sp, #4 + pop {r4, pc} + + thumb_func_start sub_080267D0 +sub_080267D0: @ 0x080267D0 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + movs r1, #0xf0 + movs r2, #8 + bl sub_080277B8 + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + ldrb r0, [r0, #3] + cmp r0, #1 + beq _08026802 + movs r0, #0xff + str r0, [sp] + adds r0, r4, #0 + movs r1, #0xe0 + movs r2, #0xc0 + movs r3, #0x20 + bl sub_08027B98 + ldr r0, [r4, #0x54] + movs r1, #2 + bl sub_080042AC +_08026802: + add sp, #4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08026808 +sub_08026808: @ 0x08026808 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r2, [r4, #0x54] + ldr r7, [r4, #0x68] + ldr r6, [r4, #0x50] + adds r1, r2, #0 + adds r1, #0x76 + ldrh r0, [r1] + cmp r0, #0xbf + bhi _08026820 + adds r0, #4 + strh r0, [r1] +_08026820: + adds r5, r2, #0 + adds r5, #0x7a + ldrh r0, [r5] + cmp r0, #0xb0 + bls _08026830 + subs r0, #8 + strh r0, [r5] + b _08026860 +_08026830: + ldr r1, _08026868 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] + movs r0, #4 + strb r0, [r4, #0xd] + movs r1, #0xa0 + strh r1, [r5] + adds r0, r6, #0 + adds r0, #0x7a + strh r1, [r0] + adds r0, r7, #0 + adds r0, #0x7a + strh r1, [r0] + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_080276F4 + movs r0, #0xd1 + lsls r0, r0, #1 + bl sub_080A3268 +_08026860: + adds r0, r4, #0 + bl sub_080277F8 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08026868: .4byte gUnk_03001160 + + thumb_func_start sub_0802686C +sub_0802686C: @ 0x0802686C + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + movs r1, #0x80 + lsls r1, r1, #7 + bl sub_08003FC4 + adds r5, r0, #0 + cmp r5, #0 + beq _08026888 + adds r0, r4, #0 + bl sub_080AEF88 + b _080268BE +_08026888: + movs r0, #0x10 + movs r1, #0 + bl sub_08080964 + movs r0, #5 + strb r0, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + strb r5, [r0, #3] + str r5, [sp] + adds r0, r4, #0 + movs r1, #0x80 + movs r2, #0x80 + movs r3, #0x80 + bl sub_08027B98 + adds r0, r4, #0 + bl sub_08027870 + ldr r0, [r4, #0x54] + movs r1, #3 + bl sub_080042AC + ldr r0, _080268C4 @ =0x000001A1 + bl sub_080A3268 +_080268BE: + add sp, #4 + pop {r4, r5, pc} + .align 2, 0 +_080268C4: .4byte 0x000001A1 + + thumb_func_start sub_080268C8 +sub_080268C8: @ 0x080268C8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08027AA4 + ldr r1, _080268E8 @ =gUnk_080CC264 + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + ldrb r0, [r0, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080268E8: .4byte gUnk_080CC264 + + thumb_func_start sub_080268EC +sub_080268EC: @ 0x080268EC + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xd0 + movs r2, #8 + bl sub_080277B8 + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + ldrb r0, [r0, #3] + cmp r0, #0 + beq _08026912 + ldr r0, [r4, #0x54] + movs r1, #4 + bl sub_080042AC + adds r0, r4, #0 + bl sub_08027D20 +_08026912: + pop {r4, pc} + + thumb_func_start sub_08026914 +sub_08026914: @ 0x08026914 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + bl sub_080279E8 + cmp r0, #0 + beq _08026942 + movs r0, #0xff + str r0, [sp] + adds r0, r4, #0 + movs r1, #0x90 + movs r2, #0xb0 + movs r3, #4 + bl sub_08027B98 + adds r0, r4, #0 + movs r1, #0 + bl sub_08027548 + ldr r0, [r4, #0x54] + movs r1, #0 + bl sub_080042AC +_08026942: + adds r0, r4, #0 + bl sub_080277F8 + add sp, #4 + pop {r4, pc} + + thumb_func_start sub_0802694C +sub_0802694C: @ 0x0802694C + push {lr} + ldr r2, _08026964 @ =gUnk_080CC26C + adds r1, r0, #0 + adds r1, #0x84 + ldr r1, [r1] + ldrb r1, [r1, #3] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08026964: .4byte gUnk_080CC26C + + thumb_func_start sub_08026968 +sub_08026968: @ 0x08026968 + push {r4, r5, r6, lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x7d + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _0802698C + adds r0, r2, #0 + adds r0, #0x84 + ldr r1, [r0] + ldrb r0, [r1, #3] + adds r0, #1 + strb r0, [r1, #3] + b _080269C0 +_0802698C: + ldr r6, [r2, #0x54] + ldr r4, [r2, #0x68] + ldr r5, [r2, #0x50] + ldrb r1, [r2, #0x15] + movs r0, #0x10 + ands r0, r1 + ldr r3, _080269C8 @ =0xFFFFFF00 + cmp r0, #0 + beq _080269A2 + movs r3, #0x80 + lsls r3, r3, #1 +_080269A2: + adds r1, r4, #0 + adds r1, #0x82 + ldrh r0, [r1] + adds r0, r0, r3 + strh r0, [r1] + adds r1, r5, #0 + adds r1, #0x82 + ldrh r0, [r1] + adds r0, r0, r3 + strh r0, [r1] + adds r1, r6, #0 + adds r1, #0x82 + ldrh r0, [r1] + adds r0, r0, r3 + strh r0, [r1] +_080269C0: + adds r0, r2, #0 + bl sub_08027870 + pop {r4, r5, r6, pc} + .align 2, 0 +_080269C8: .4byte 0xFFFFFF00 + + thumb_func_start sub_080269CC +sub_080269CC: @ 0x080269CC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r6, r0, #0 + movs r7, #0 + ldr r5, [r6, #0x54] + ldr r0, [r6, #0x68] + mov sl, r0 + ldr r1, [r6, #0x50] + mov sb, r1 + ldrb r1, [r6, #0x15] + movs r0, #0x10 + ands r0, r1 + movs r1, #0xc0 + lsls r1, r1, #2 + mov r8, r1 + cmp r0, #0 + beq _080269F8 + ldr r0, _08026A18 @ =0xFFFFFD00 + mov r8, r0 +_080269F8: + mov r0, sl + adds r0, #0x83 + ldrb r0, [r0] + adds r4, r0, #0 + adds r4, #0x20 + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x3f + bhi _08026A1C + mov r1, sl + adds r1, #0x82 + ldrh r0, [r1] + add r0, r8 + strh r0, [r1] + b _08026A1E + .align 2, 0 +_08026A18: .4byte 0xFFFFFD00 +_08026A1C: + movs r7, #1 +_08026A1E: + mov r0, sb + adds r0, #0x83 + ldrb r0, [r0] + adds r4, r0, #0 + adds r4, #0x44 + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x87 + bhi _08026A3C + mov r1, sb + adds r1, #0x82 + ldrh r0, [r1] + add r0, r8 + strh r0, [r1] + b _08026A3E +_08026A3C: + adds r7, #1 +_08026A3E: + adds r0, r5, #0 + adds r0, #0x83 + ldrb r0, [r0] + adds r4, r0, #0 + adds r4, #0x40 + adds r0, #0x20 + cmp r0, #0x40 + bls _08026A7E + ldrb r1, [r6, #0x15] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08026A6C + adds r0, r5, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #6 + beq _08026A7E + adds r0, r5, #0 + movs r1, #6 + bl sub_080042AC + b _08026A7E +_08026A6C: + adds r0, r5, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #5 + beq _08026A7E + adds r0, r5, #0 + movs r1, #5 + bl sub_080042AC +_08026A7E: + lsls r0, r4, #0x18 + cmp r0, #0 + blt _08026A90 + adds r1, r5, #0 + adds r1, #0x82 + ldrh r0, [r1] + add r0, r8 + strh r0, [r1] + b _08026A92 +_08026A90: + adds r7, #1 +_08026A92: + cmp r7, #3 + beq _08026A98 + b _08026BB8 +_08026A98: + ldrb r1, [r6, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r6, #0x10] + ldrb r1, [r5, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + adds r1, r5, #0 + adds r1, #0x76 + ldrh r0, [r1] + adds r0, #3 + strh r0, [r1] + movs r0, #0x20 + movs r1, #0 + bl sub_08080964 + ldr r0, _08026B24 @ =0x0000010B + bl sub_080A3268 + adds r0, r6, #0 + movs r1, #0x15 + movs r2, #0 + movs r3, #0 + bl sub_080A2988 + adds r4, r0, #0 + cmp r4, #0 + beq _08026B4E + movs r0, #0xc9 + strh r0, [r4, #0x12] + adds r1, r4, #0 + adds r1, #0x58 + movs r0, #1 + strb r0, [r1] + ldrh r0, [r4, #0x32] + adds r0, #0x10 + strh r0, [r4, #0x32] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldrb r2, [r5, #0x19] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r4, #0x19] + ldrb r0, [r5, #0x1b] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r4, #0x1b] + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #0x1b] + ldrb r1, [r6, #0x15] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08026B28 + ldrh r0, [r4, #0x2e] + subs r0, #0x38 + b _08026B2C + .align 2, 0 +_08026B24: .4byte 0x0000010B +_08026B28: + ldrh r0, [r4, #0x2e] + adds r0, #0x38 +_08026B2C: + strh r0, [r4, #0x2e] + adds r0, r4, #0 + movs r1, #0x3e + bl sub_080ADF80 + ldrb r0, [r6, #0xb] + cmp r0, #0 + bne _08026B46 + adds r0, r4, #0 + movs r1, #0x2b + bl sub_0801D040 + b _08026B4E +_08026B46: + adds r0, r4, #0 + movs r1, #0x2c + bl sub_0801D040 +_08026B4E: + ldr r3, [r6, #0x50] + ldr r2, [r6, #0x54] + ldr r0, [r6, #0x68] + adds r0, #0x84 + movs r1, #1 + strb r1, [r0] + adds r2, #0x84 + strb r1, [r2] + adds r3, #0x84 + strb r1, [r3] + mov r0, sb + adds r0, #0x7a + movs r1, #0x98 + strh r1, [r0] + mov r0, sl + adds r0, #0x7a + strh r1, [r0] + adds r0, r5, #0 + adds r0, #0x7a + strh r1, [r0] + bl sub_08000E50 + ldr r2, _08026BB4 @ =gUnk_080CC278 + movs r1, #3 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + adds r7, r6, #0 + adds r7, #0x7c + strb r0, [r7] + adds r0, r6, #0 + adds r0, #0x84 + ldr r1, [r0] + ldrb r0, [r1, #3] + adds r0, #1 + strb r0, [r1, #3] + adds r0, r5, #0 + movs r1, #0x49 + movs r2, #0xa + movs r3, #0 + bl sub_080A2988 + adds r4, r0, #0 + cmp r4, #0 + beq _08026BD4 + adds r1, r4, #0 + adds r1, #0x84 + ldrb r0, [r7] + str r0, [r1] + b _08026BD4 + .align 2, 0 +_08026BB4: .4byte gUnk_080CC278 +_08026BB8: + adds r0, r5, #0 + adds r0, #0x76 + ldrh r0, [r0] + cmp r0, #0xef + bhi _08026BD4 + ldr r0, [r5, #0x74] + movs r1, #0x80 + lsls r1, r1, #0xb + adds r0, r0, r1 + str r0, [r5, #0x74] + ldr r0, [r5, #0x78] + ldr r1, _08026BE4 @ =0xFFFF8000 + adds r0, r0, r1 + str r0, [r5, #0x78] +_08026BD4: + adds r0, r6, #0 + bl sub_08027870 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08026BE4: .4byte 0xFFFF8000 + + thumb_func_start sub_08026BE8 +sub_08026BE8: @ 0x08026BE8 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x54] + adds r3, r5, #0 + adds r3, #0x3b + ldrb r1, [r3] + movs r0, #0xfe + ands r0, r1 + strb r0, [r3] + adds r1, r4, #0 + adds r1, #0x7c + ldrb r0, [r1] + adds r2, r0, #0 + cmp r2, #0 + bne _08026C34 + movs r0, #7 + strb r0, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + strb r2, [r0, #3] + adds r1, #1 + movs r0, #0x2d + strb r0, [r1] + ldrb r1, [r5, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + ldrb r0, [r3] + movs r1, #1 + orrs r0, r1 + strb r0, [r3] + ldr r0, _08026C30 @ =0x00000155 + bl sub_080A3268 + b _08026C38 + .align 2, 0 +_08026C30: .4byte 0x00000155 +_08026C34: + subs r0, #1 + strb r0, [r1] +_08026C38: + adds r0, r4, #0 + bl sub_08027870 + pop {r4, r5, pc} + + thumb_func_start sub_08026C40 +sub_08026C40: @ 0x08026C40 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + adds r5, r0, #0 + ldr r4, [r5, #0x54] + ldr r7, [r5, #0x68] + ldr r6, [r5, #0x50] + adds r2, r5, #0 + adds r2, #0x7d + ldrb r0, [r2] + cmp r0, #0 + beq _08026CCC + subs r1, r0, #1 + strb r1, [r2] + lsls r0, r1, #0x18 + cmp r0, #0 + beq _08026C9C + movs r0, #8 + ands r1, r0 + cmp r1, #0 + beq _08026C82 + ldr r0, [r4, #0x74] + movs r1, #0x80 + lsls r1, r1, #0xa + adds r0, r0, r1 + str r0, [r4, #0x74] + ldr r0, [r4, #0x78] + movs r2, #0x80 + lsls r2, r2, #9 + adds r0, r0, r2 + str r0, [r4, #0x78] + b _08026E12 +_08026C82: + ldr r0, [r4, #0x74] + ldr r3, _08026C94 @ =0xFFFE0000 + adds r0, r0, r3 + str r0, [r4, #0x74] + ldr r0, [r4, #0x78] + ldr r1, _08026C98 @ =0xFFFF0000 + adds r0, r0, r1 + str r0, [r4, #0x78] + b _08026E12 + .align 2, 0 +_08026C94: .4byte 0xFFFE0000 +_08026C98: .4byte 0xFFFF0000 +_08026C9C: + ldrb r1, [r5, #0x15] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08026CBA + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #8 + beq _08026CCC + adds r0, r4, #0 + movs r1, #8 + bl sub_080042AC + b _08026CCC +_08026CBA: + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #7 + beq _08026CCC + adds r0, r4, #0 + movs r1, #7 + bl sub_080042AC +_08026CCC: + adds r0, r5, #0 + adds r0, #0x7c + ldrb r1, [r0] + mov r8, r0 + cmp r1, #0 + bne _08026CF0 + ldrb r1, [r5, #0x15] + movs r0, #0x10 + ands r0, r1 + ldr r2, _08026CEC @ =0xFFFFFD00 + cmp r0, #0 + beq _08026D00 + movs r2, #0xc0 + lsls r2, r2, #2 + b _08026D00 + .align 2, 0 +_08026CEC: .4byte 0xFFFFFD00 +_08026CF0: + ldrb r1, [r5, #0x15] + movs r0, #0x10 + ands r0, r1 + ldr r2, _08026D30 @ =0xFFFFFB80 + cmp r0, #0 + beq _08026D00 + movs r2, #0x90 + lsls r2, r2, #3 +_08026D00: + adds r0, r7, #0 + adds r0, #0x83 + ldrb r0, [r0] + adds r0, #6 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xc + bls _08026D34 + adds r1, r7, #0 + adds r1, #0x82 + lsls r0, r2, #1 + ldrh r3, [r1] + adds r0, r0, r3 + strh r0, [r1] + adds r1, r6, #0 + adds r1, #0x82 + ldrh r0, [r1] + adds r0, r0, r2 + strh r0, [r1] + adds r1, r4, #0 + adds r1, #0x82 + ldrh r0, [r1] + b _08026D7E + .align 2, 0 +_08026D30: .4byte 0xFFFFFB80 +_08026D34: + adds r0, r7, #0 + adds r0, #0x82 + movs r1, #0 + strh r1, [r0] + adds r0, r6, #0 + adds r0, #0x83 + ldrb r0, [r0] + adds r0, #6 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xc + bls _08026D60 + adds r1, r6, #0 + adds r1, #0x82 + lsls r0, r2, #1 + ldrh r3, [r1] + adds r0, r0, r3 + strh r0, [r1] + adds r1, r4, #0 + adds r1, #0x82 + ldrh r0, [r1] + b _08026D7E +_08026D60: + adds r0, r6, #0 + adds r0, #0x82 + strh r1, [r0] + adds r0, r4, #0 + adds r0, #0x83 + ldrb r0, [r0] + adds r0, #6 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xc + bls _08026D84 + adds r1, r4, #0 + adds r1, #0x82 + lsls r0, r2, #1 + ldrh r2, [r1] +_08026D7E: + adds r0, r0, r2 + strh r0, [r1] + b _08026D8A +_08026D84: + adds r0, r4, #0 + adds r0, #0x82 + strh r1, [r0] +_08026D8A: + adds r1, r4, #0 + adds r1, #0x76 + ldrh r0, [r1] + cmp r0, #0xa0 + bls _08026DA4 + ldr r0, [r4, #0x74] + ldr r3, _08026DA0 @ =0xFFFC0000 + adds r0, r0, r3 + str r0, [r4, #0x74] + b _08026DA8 + .align 2, 0 +_08026DA0: .4byte 0xFFFC0000 +_08026DA4: + movs r0, #0xa0 + strh r0, [r1] +_08026DA8: + adds r0, r4, #0 + adds r0, #0x7a + ldrh r0, [r0] + cmp r0, #0x9f + bhi _08026DBE + ldr r0, [r4, #0x78] + movs r1, #0x80 + lsls r1, r1, #8 + adds r0, r0, r1 + str r0, [r4, #0x78] + b _08026E0C +_08026DBE: + adds r0, r5, #0 + movs r1, #3 + movs r2, #0 + bl sub_080276F4 + adds r0, r4, #0 + adds r0, #0x7d + movs r2, #0 + strb r2, [r0] + ldrb r1, [r5, #0x15] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08026DEE + adds r1, r6, #0 + adds r1, #0x85 + movs r0, #1 + strb r0, [r1] + adds r1, r7, #0 + adds r1, #0x85 + strb r0, [r1] + adds r1, r4, #0 + adds r1, #0x85 + strb r0, [r1] +_08026DEE: + movs r0, #8 + strb r0, [r5, #0xd] + movs r0, #4 + mov r3, r8 + strb r0, [r3] + strb r2, [r6, #0xf] + strb r2, [r7, #0xf] + strb r2, [r4, #0xf] + str r2, [sp] + adds r0, r5, #0 + movs r1, #0x90 + movs r2, #0xb0 + movs r3, #0x10 + bl sub_08027B98 +_08026E0C: + adds r0, r5, #0 + bl sub_08027870 +_08026E12: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08026E1C +sub_08026E1C: @ 0x08026E1C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7c + ldrb r0, [r1] + adds r6, r0, #0 + cmp r6, #0 + bne _08026EE0 + ldr r0, [r4, #0x54] + ldrb r0, [r0, #0xf] + ldr r1, [r4, #0x50] + ldrb r1, [r1, #0xf] + ldr r2, [r4, #0x68] + adds r0, r0, r1 + ldrb r2, [r2, #0xf] + adds r0, r0, r2 + cmp r0, #0xa + ble _08026EF2 + ldrb r0, [r4, #0x10] + movs r1, #0x80 + mov r8, r1 + movs r7, #0 + mov r1, r8 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + bl sub_08027C54 + adds r5, r4, #0 + adds r5, #0x84 + cmp r0, #0 + beq _08026E72 + ldr r1, [r5] + ldrb r0, [r1, #4] + adds r0, #1 + strb r0, [r1, #4] + ldr r0, [r4, #0x54] + adds r0, #0x45 + movs r1, #0xff + strb r1, [r0] +_08026E72: + ldr r1, [r5] + ldrb r0, [r1, #4] + cmp r0, #3 + bne _08026EA0 + adds r0, r4, #0 + adds r0, #0x45 + strb r6, [r0] + ldrb r0, [r4, #0x10] + movs r1, #0x7f + ands r1, r0 + strb r1, [r4, #0x10] + ldr r3, [r4, #0x54] + ldr r2, [r4, #0x50] + ldr r0, [r4, #0x68] + strb r1, [r0, #0x10] + ldrb r0, [r4, #0x10] + strb r0, [r2, #0x10] + strb r0, [r3, #0x10] + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0xc4 + strb r0, [r1] + b _08026F14 +_08026EA0: + movs r0, #4 + strb r0, [r1] + ldr r1, [r5] + movs r0, #0x81 + strb r0, [r1, #1] + ldrb r0, [r4, #0x10] + mov r1, r8 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x7d + strb r0, [r1] + movs r0, #0xb + strb r0, [r4, #0xd] + ldr r0, [r5] + strb r6, [r0, #3] + ldr r0, [r4, #0x54] + movs r1, #0 + bl sub_080042AC + str r6, [sp] + adds r0, r4, #0 + movs r1, #0x80 + movs r2, #0x80 + movs r3, #0x80 + bl sub_08027B98 + ldr r1, [r5] + movs r0, #0x21 + strb r0, [r1, #1] + b _08026EF2 +_08026EE0: + subs r0, #1 + movs r2, #0 + strb r0, [r1] + adds r1, r4, #0 + adds r1, #0x84 + ldr r0, [r1] + str r2, [r0, #8] + ldr r0, [r1] + strb r2, [r0, #6] +_08026EF2: + adds r0, r4, #0 + bl sub_08027C54 + cmp r0, #0 + beq _08026F14 + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + ldrb r0, [r0, #4] + cmp r0, #2 + bne _08026F14 + adds r0, r4, #0 + movs r1, #0x3f + bl sub_08027C7C + bl sub_08078B48 +_08026F14: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08026F1C +sub_08026F1C: @ 0x08026F1C + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x7c + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08026F70 + adds r0, r4, #0 + bl sub_080279E8 + cmp r0, #0 + beq _08026F68 + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + movs r2, #0 + strb r2, [r0, #3] + ldrb r1, [r5] + movs r0, #0xf + ands r0, r1 + strb r0, [r5] + str r2, [sp] + adds r0, r4, #0 + movs r1, #0x80 + movs r2, #0x80 + movs r3, #0x80 + bl sub_08027B98 + ldrb r0, [r5] + cmp r0, #2 + bne _08026F68 + adds r0, r4, #0 + movs r1, #0 + bl sub_08027548 +_08026F68: + adds r0, r4, #0 + bl sub_080277F8 + b _08026FA0 +_08026F70: + adds r0, r4, #0 + movs r1, #0xf0 + movs r2, #0x10 + bl sub_080277B8 + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + ldrb r0, [r0, #3] + cmp r0, #0 + beq _08026FA0 + ldrb r0, [r5] + adds r0, #1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r5] + movs r0, #1 + str r0, [sp] + adds r0, r4, #0 + movs r1, #0xc0 + movs r2, #0xc0 + movs r3, #0x20 + bl sub_08027B98 +_08026FA0: + add sp, #4 + pop {r4, r5, pc} + + thumb_func_start sub_08026FA4 +sub_08026FA4: @ 0x08026FA4 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08078B48 + ldrb r0, [r4, #0x10] + movs r5, #0x7f + adds r1, r5, #0 + ands r1, r0 + strb r1, [r4, #0x10] + ldr r3, [r4, #0x54] + ldr r2, [r4, #0x50] + ldr r0, [r4, #0x68] + strb r1, [r0, #0x10] + ldrb r0, [r4, #0x10] + strb r0, [r2, #0x10] + strb r0, [r3, #0x10] + adds r3, r4, #0 + adds r3, #0x7c + ldrb r0, [r3] + cmp r0, #0 + beq _08026FD2 + movs r0, #1 + strb r0, [r3] +_08026FD2: + ldr r2, [r4, #0x54] + adds r0, r2, #0 + adds r0, #0x7a + ldrh r0, [r0] + cmp r0, #0x97 + bhi _08026FFE + movs r1, #0x80 + lsls r1, r1, #9 + ldrb r0, [r3] + lsls r1, r0 + ldr r0, [r2, #0x78] + adds r0, r0, r1 + str r0, [r2, #0x78] + ldr r2, [r4, #0x54] + movs r1, #0x80 + lsls r1, r1, #0xa + ldrb r3, [r3] + lsls r1, r3 + ldr r0, [r2, #0x74] + subs r0, r0, r1 + str r0, [r2, #0x74] + b _0802705C +_08026FFE: + movs r0, #7 + strb r0, [r4, #0xd] + ldrb r1, [r2, #0x10] + adds r0, r5, #0 + ands r0, r1 + strb r0, [r2, #0x10] + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + movs r0, #0 + strb r0, [r1, #3] + adds r1, r4, #0 + adds r1, #0x7d + movs r0, #0x2d + strb r0, [r1] + ldr r0, _08027044 @ =0x00000155 + bl sub_080A3268 + ldrb r1, [r4, #0x15] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08027048 + ldr r1, [r4, #0x54] + adds r0, r1, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #8 + beq _0802705C + adds r0, r1, #0 + movs r1, #8 + bl sub_080042AC + b _0802705C + .align 2, 0 +_08027044: .4byte 0x00000155 +_08027048: + ldr r1, [r4, #0x54] + adds r0, r1, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #7 + beq _0802705C + adds r0, r1, #0 + movs r1, #7 + bl sub_080042AC +_0802705C: + adds r0, r4, #0 + bl sub_08027870 + pop {r4, r5, pc} + + thumb_func_start sub_08027064 +sub_08027064: @ 0x08027064 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + ldr r6, [r5, #0x54] + ldr r0, [r5, #0x68] + mov sb, r0 + ldr r1, [r5, #0x50] + mov r8, r1 + movs r0, #0x60 + strh r0, [r5, #0x24] + adds r0, r6, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0xa + beq _08027098 + ldr r0, _080270C8 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _08027098 + movs r0, #0x7c + bl sub_080A3268 +_08027098: + adds r0, r5, #0 + adds r0, #0x84 + ldr r3, [r0] + ldrb r1, [r3, #3] + adds r7, r0, #0 + cmp r1, #0 + beq _080270E0 + ldr r0, _080270CC @ =gUnk_03001160 + movs r2, #0x32 + ldrsh r4, [r5, r2] + movs r1, #0x32 + ldrsh r2, [r0, r1] + cmp r4, r2 + beq _080270E0 + ldr r0, _080270C8 @ =gUnk_030010A0 + ldr r1, [r0] + movs r0, #0xf + ands r1, r0 + cmp r1, #0 + bne _080270D4 + cmp r4, r2 + ble _080270D0 + strb r1, [r3, #0xc] + b _080270D4 + .align 2, 0 +_080270C8: .4byte gUnk_030010A0 +_080270CC: .4byte gUnk_03001160 +_080270D0: + movs r0, #0x10 + strb r0, [r3, #0xc] +_080270D4: + ldr r0, [r7] + ldrb r0, [r0, #0xc] + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_080AEF88 +_080270E0: + adds r0, r6, #0 + adds r0, #0x85 + ldrb r0, [r0] + cmp r0, #1 + bne _080270FC + adds r0, r6, #0 + adds r0, #0x83 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bgt _0802710E + movs r0, #0x18 + b _08027110 +_080270FC: + adds r0, r6, #0 + adds r0, #0x83 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bge _0802710E + movs r0, #0x18 + b _08027110 +_0802710E: + movs r0, #8 +_08027110: + strb r0, [r5, #0x15] + ldr r1, [r7] + ldrb r0, [r1, #3] + cmp r0, #0 + bne _08027152 + movs r2, #0x2e + ldrsh r0, [r5, r2] + ldrh r1, [r1, #0xe] + cmp r0, r1 + bne _0802714A + mov r0, r8 + adds r0, #0x84 + movs r1, #1 + strb r1, [r0] + mov r0, sb + adds r0, #0x84 + strb r1, [r0] + adds r0, r6, #0 + adds r0, #0x84 + strb r1, [r0] + adds r1, r5, #0 + adds r1, #0x7c + movs r0, #0x1e + strb r0, [r1] + ldr r1, [r7] + ldrb r0, [r1, #3] + adds r0, #1 + strb r0, [r1, #3] + b _080271FE +_0802714A: + adds r0, r5, #0 + bl sub_080AEF88 + b _080271FE +_08027152: + adds r0, r6, #0 + adds r0, #0x7d + ldrb r0, [r0] + cmp r0, #0 + beq _080271E6 + mov r0, sb + adds r0, #0x7d + ldrb r0, [r0] + cmp r0, #0 + beq _080271E6 + mov r0, r8 + adds r0, #0x7d + ldrb r0, [r0] + cmp r0, #0 + beq _080271E6 + adds r1, r5, #0 + adds r1, #0x7c + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _080271FE + mov r0, r8 + adds r0, #0x84 + movs r1, #1 + strb r1, [r0] + mov r0, sb + adds r0, #0x84 + strb r1, [r0] + adds r0, r6, #0 + adds r0, #0x84 + strb r1, [r0] + movs r3, #0 + ldr r0, [r7] + ldrb r0, [r0, #3] + cmp r0, #1 + bls _080271B2 + ldr r0, _080271DC @ =gUnk_03001160 + movs r2, #0x2e + ldrsh r1, [r5, r2] + movs r2, #0x2e + ldrsh r0, [r0, r2] + movs r3, #8 + cmp r1, r0 + ble _080271B2 + movs r3, #0x18 +_080271B2: + ldr r2, [r7] + ldrb r1, [r2, #3] + cmp r1, #5 + beq _080271C0 + ldrb r0, [r5, #0x15] + cmp r0, r3 + bne _080271E0 +_080271C0: + movs r4, #0 + movs r0, #6 + strb r0, [r5, #0xd] + adds r0, r5, #0 + movs r1, #7 + movs r2, #1 + bl sub_080276F4 + ldr r0, [r7] + strb r4, [r0, #3] + adds r1, r5, #0 + adds r1, #0x7d + movs r0, #0xf + b _080271FC + .align 2, 0 +_080271DC: .4byte gUnk_03001160 +_080271E0: + adds r0, r1, #1 + strb r0, [r2, #3] + b _080271FE +_080271E6: + ldr r0, [r7] + ldrb r0, [r0, #3] + cmp r0, #4 + beq _080271F6 + adds r1, r5, #0 + adds r1, #0x7c + movs r0, #0x1e + b _080271FC +_080271F6: + adds r1, r5, #0 + adds r1, #0x7c + movs r0, #0x3c +_080271FC: + strb r0, [r1] +_080271FE: + adds r0, r5, #0 + bl sub_08027870 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0802720C +sub_0802720C: @ 0x0802720C + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xd] + strb r0, [r4, #0xd] + ldrb r0, [r4, #0xd] + cmp r0, #0xc + bhi _080272CA + lsls r0, r0, #2 + ldr r1, _08027228 @ =_0802722C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08027228: .4byte _0802722C +_0802722C: @ jump table + .4byte _080272C4 @ case 0 + .4byte _08027260 @ case 1 + .4byte _08027260 @ case 2 + .4byte _0802726E @ case 3 + .4byte _080272AA @ case 4 + .4byte _0802726E @ case 5 + .4byte _080272CA @ case 6 + .4byte _080272CA @ case 7 + .4byte _08027282 @ case 8 + .4byte _080272CA @ case 9 + .4byte _080272A0 @ case 10 + .4byte _080272CA @ case 11 + .4byte _08027260 @ case 12 +_08027260: + adds r1, r4, #0 + adds r1, #0x7a + movs r0, #0xa0 + strh r0, [r1] + subs r1, #4 + strh r0, [r1] + b _080272AA +_0802726E: + adds r0, r4, #0 + adds r0, #0x83 + ldrb r0, [r0] + cmp r0, #0 + beq _080272CA + adds r1, r4, #0 + adds r1, #0x7d + movs r0, #0 + strb r0, [r1] + b _080272AA +_08027282: + ldrb r0, [r4, #0xf] + cmp r0, #3 + bhi _080272CA + adds r0, r4, #0 + bl sub_0802757C + adds r0, r4, #0 + adds r0, #0x83 + ldrb r0, [r0] + cmp r0, #0 + bne _080272CA + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] + b _080272CA +_080272A0: + adds r2, r4, #0 + adds r2, #0x7d + ldrb r0, [r2] + cmp r0, #0 + bne _080272B2 +_080272AA: + adds r0, r4, #0 + bl sub_0802757C + b _080272CA +_080272B2: + adds r1, r4, #0 + adds r1, #0x84 + ldrb r0, [r1] + cmp r0, #0 + beq _080272CA + movs r0, #0 + strb r0, [r2] + strb r0, [r1] + b _080272CA +_080272C4: + adds r0, r4, #0 + bl sub_0802757C +_080272CA: + ldr r0, [r4, #0x50] + ldr r0, [r0, #0x34] + str r0, [r4, #0x34] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080272D4 +sub_080272D4: @ 0x080272D4 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r0, [r6, #0x50] + ldrb r0, [r0, #0xd] + cmp r0, #0xc + bls _080272E2 + b _08027532 +_080272E2: + lsls r0, r0, #2 + ldr r1, _080272EC @ =_080272F0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080272EC: .4byte _080272F0 +_080272F0: @ jump table + .4byte _08027508 @ case 0 + .4byte _08027324 @ case 1 + .4byte _08027324 @ case 2 + .4byte _08027332 @ case 3 + .4byte _0802733E @ case 4 + .4byte _08027332 @ case 5 + .4byte _08027368 @ case 6 + .4byte _08027532 @ case 7 + .4byte _08027346 @ case 8 + .4byte _08027454 @ case 9 + .4byte _0802748C @ case 10 + .4byte _08027532 @ case 11 + .4byte _08027324 @ case 12 +_08027324: + adds r1, r6, #0 + adds r1, #0x7a + movs r0, #0xa0 + strh r0, [r1] + subs r1, #4 + strh r0, [r1] + b _0802733E +_08027332: + adds r0, r6, #0 + adds r0, #0x83 + ldrb r0, [r0] + cmp r0, #0 + bne _0802733E + b _08027532 +_0802733E: + adds r0, r6, #0 + bl sub_0802757C + b _08027532 +_08027346: + ldrb r0, [r6, #0xf] + cmp r0, #2 + bls _0802734E + b _08027532 +_0802734E: + adds r0, r6, #0 + bl sub_0802757C + adds r0, r6, #0 + adds r0, #0x83 + ldrb r0, [r0] + cmp r0, #0 + beq _08027360 + b _08027532 +_08027360: + ldrb r0, [r6, #0xf] + adds r0, #1 + strb r0, [r6, #0xf] + b _08027532 +_08027368: + ldr r5, [r6, #0x48] + adds r0, r6, #0 + adds r0, #0x7a + ldrh r1, [r0] + movs r4, #0x80 + lsls r4, r4, #9 + adds r0, r4, #0 + bl __divsi3 + lsls r1, r0, #3 + adds r1, r1, r0 + lsrs r1, r1, #7 + strb r1, [r5, #6] + ldr r5, [r6, #0x48] + adds r0, r6, #0 + adds r0, #0x76 + ldrh r1, [r0] + adds r0, r4, #0 + bl __divsi3 + lsls r1, r0, #2 + adds r1, r1, r0 + lsrs r1, r1, #6 + strb r1, [r5, #7] + adds r0, r6, #0 + adds r0, #0x84 + ldrb r0, [r0] + cmp r0, #0 + bne _080273A4 + b _08027532 +_080273A4: + adds r0, r6, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08027444 + adds r2, r6, #0 + adds r2, #0x3d + ldrb r1, [r2] + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0 + beq _08027444 + ldr r0, [r6, #0x54] + ldr r0, [r0, #0x68] + adds r0, #0x3d + strb r1, [r0] + ldr r0, [r6, #0x54] + ldr r0, [r0, #0x50] + ldrb r1, [r2] + adds r0, #0x3d + strb r1, [r0] + ldr r0, [r6, #0x54] + ldrb r1, [r2] + adds r0, #0x3d + strb r1, [r0] + ldr r0, [r6, #0x54] + bl sub_08027D20 + adds r2, r0, #0 + cmp r2, #0 + beq _08027406 + ldrh r0, [r6, #0x2e] + adds r0, #1 + strh r0, [r2, #0x2e] + adds r0, r6, #0 + adds r0, #0x63 + ldrb r0, [r0] + adds r0, #0x20 + adds r1, r2, #0 + adds r1, #0x63 + strb r0, [r1] + adds r0, r6, #0 + adds r0, #0x62 + ldrb r1, [r0] + adds r0, r2, #0 + adds r0, #0x62 + strb r1, [r0] +_08027406: + ldr r0, [r6, #0x54] + bl sub_08027C54 + cmp r0, #0 + beq _0802741C + ldr r0, [r6, #0x54] + adds r0, #0x84 + ldr r0, [r0] + ldrb r0, [r0, #4] + cmp r0, #2 + beq _08027428 +_0802741C: + ldr r0, _08027424 @ =0x00000127 + bl sub_080A3268 + b _08027444 + .align 2, 0 +_08027424: .4byte 0x00000127 +_08027428: + bl sub_08078B48 + ldr r0, _0802744C @ =gUnk_03000BF0 + ldr r2, [r6, #0x54] + str r2, [r0, #0x30] + ldr r1, _08027450 @ =gUnk_02034490 + movs r0, #1 + strb r0, [r1] + movs r0, #9 + strb r0, [r2, #0xd] + movs r0, #0x94 + lsls r0, r0, #1 + bl sub_080A3268 +_08027444: + adds r0, r6, #0 + bl sub_08027A60 + b _08027484 + .align 2, 0 +_0802744C: .4byte gUnk_03000BF0 +_08027450: .4byte gUnk_02034490 +_08027454: + ldr r5, [r6, #0x48] + adds r0, r6, #0 + adds r0, #0x7a + ldrh r1, [r0] + movs r4, #0x80 + lsls r4, r4, #9 + adds r0, r4, #0 + bl __divsi3 + lsls r1, r0, #3 + adds r1, r1, r0 + lsrs r1, r1, #7 + strb r1, [r5, #6] + ldr r5, [r6, #0x48] + adds r0, r6, #0 + adds r0, #0x76 + ldrh r1, [r0] + adds r0, r4, #0 + bl __divsi3 + lsls r1, r0, #2 + adds r1, r1, r0 + lsrs r1, r1, #6 + strb r1, [r5, #7] +_08027484: + adds r0, r6, #0 + bl sub_0800445C + b _08027532 +_0802748C: + adds r2, r6, #0 + adds r2, #0x7d + ldrb r0, [r2] + cmp r0, #0 + bne _0802749E + adds r0, r6, #0 + bl sub_0802757C + b _080274AE +_0802749E: + adds r1, r6, #0 + adds r1, #0x84 + ldrb r0, [r1] + cmp r0, #0 + beq _080274AE + movs r0, #0 + strb r0, [r2] + strb r0, [r1] +_080274AE: + adds r2, r6, #0 + adds r2, #0x83 + adds r0, r6, #0 + adds r0, #0x81 + ldrb r1, [r0] + lsrs r0, r1, #1 + ldrb r2, [r2] + adds r0, r2, r0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, r1 + bls _080274F4 + lsls r0, r2, #0x18 + cmp r0, #0 + ble _080274E0 + adds r0, r6, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0xc + beq _08027532 + adds r0, r6, #0 + movs r1, #0xc + bl sub_080042AC + b _08027532 +_080274E0: + adds r0, r6, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0xb + beq _08027532 + adds r0, r6, #0 + movs r1, #0xb + bl sub_080042AC + b _08027532 +_080274F4: + adds r0, r6, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0xa + beq _08027532 + adds r0, r6, #0 + movs r1, #0xa + bl sub_080042AC + b _08027532 +_08027508: + ldr r0, [r6, #0x54] + adds r0, #0x84 + ldr r0, [r0] + ldrb r0, [r0, #3] + cmp r0, #8 + bne _08027532 + adds r0, r6, #0 + bl sub_0802757C + adds r0, r6, #0 + adds r0, #0x7d + ldrb r0, [r0] + cmp r0, #1 + bne _08027532 + adds r1, r6, #0 + adds r1, #0x81 + ldrb r0, [r1] + cmp r0, #0 + beq _08027532 + subs r0, #4 + strb r0, [r1] +_08027532: + ldr r0, [r6, #0x50] + ldr r0, [r0, #0x34] + str r0, [r6, #0x34] + adds r1, r6, #0 + adds r1, #0x41 + movs r0, #0 + strb r0, [r1] + adds r0, r6, #0 + bl sub_080042B8 + pop {r4, r5, r6, pc} + + thumb_func_start sub_08027548 +sub_08027548: @ 0x08027548 + push {r4, r5, r6, lr} + sub sp, #4 + adds r4, r0, #0 + adds r6, r1, #0 + movs r5, #0 + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0xff + str r0, [sp] + adds r0, r4, #0 + movs r1, #0x90 + movs r2, #0xb0 + movs r3, #8 + bl sub_08027B98 + adds r0, r4, #0 + adds r0, #0x7d + strb r5, [r0] + adds r0, r4, #0 + movs r1, #0 + adds r2, r6, #0 + bl sub_080276F4 + add sp, #4 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0802757C +sub_0802757C: @ 0x0802757C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r5, r0, #0 + adds r6, r5, #0 + adds r6, #0x7d + ldrb r1, [r6] + cmp r1, #0 + beq _080275BA + ldrb r0, [r5, #0xa] + cmp r0, #1 + beq _080275AE + ldr r0, [r5, #0x54] + adds r0, #0x7d + ldrb r0, [r0] + movs r1, #0x83 + adds r1, r1, r5 + mov sl, r1 + cmp r0, #0 + beq _08027676 + movs r0, #0 + strb r0, [r6] + b _08027676 +_080275AE: + subs r0, r1, #1 + strb r0, [r6] + movs r2, #0x83 + adds r2, r2, r5 + mov sl, r2 + b _08027676 +_080275BA: + movs r0, #0x85 + adds r0, r0, r5 + mov ip, r0 + ldrb r1, [r0] + mov sb, r1 + cmp r1, #1 + bne _0802761E + adds r1, r5, #0 + adds r1, #0x82 + adds r0, r5, #0 + adds r0, #0x86 + ldrh r0, [r0] + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] + adds r0, r5, #0 + adds r0, #0x83 + adds r2, r5, #0 + adds r2, #0x81 + movs r4, #0 + ldrsb r4, [r0, r4] + movs r3, #0 + ldrsb r3, [r2, r3] + mov r8, r1 + mov sl, r0 + adds r7, r2, #0 + cmp r4, r3 + blt _08027676 + movs r0, #0 + mov r1, ip + strb r0, [r1] + ldrb r0, [r5, #0xa] + cmp r0, #1 + bne _08027616 + ldr r1, [r5, #0x50] + adds r0, r1, #0 + adds r0, #0x81 + ldrb r0, [r0] + lsls r0, r0, #8 + adds r1, #0x86 + ldrh r1, [r1] + bl __divsi3 + adds r0, #1 + strb r0, [r6] + b _0802761A +_08027616: + mov r2, sb + strb r2, [r6] +_0802761A: + ldrb r0, [r7] + b _08027670 +_0802761E: + adds r2, r5, #0 + adds r2, #0x82 + adds r1, r5, #0 + adds r1, #0x86 + ldrh r0, [r2] + ldrh r1, [r1] + subs r0, r0, r1 + strh r0, [r2] + adds r1, r5, #0 + adds r1, #0x83 + movs r4, #0 + ldrsb r4, [r1, r4] + adds r0, r5, #0 + adds r0, #0x81 + ldrb r3, [r0] + mov r8, r2 + mov sl, r1 + adds r7, r0, #0 + cmn r4, r3 + bgt _08027676 + movs r1, #1 + mov r2, ip + strb r1, [r2] + ldrb r0, [r5, #0xa] + cmp r0, #1 + bne _0802766A + ldr r1, [r5, #0x50] + adds r0, r1, #0 + adds r0, #0x81 + ldrb r0, [r0] + lsls r0, r0, #8 + adds r1, #0x86 + ldrh r1, [r1] + bl __divsi3 + adds r0, #1 + strb r0, [r6] + b _0802766C +_0802766A: + strb r1, [r6] +_0802766C: + ldrb r0, [r7] + rsbs r0, r0, #0 +_08027670: + lsls r0, r0, #8 + mov r1, r8 + strh r0, [r1] +_08027676: + ldr r2, [r5, #0x50] + adds r0, r2, #0 + adds r0, #0x63 + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r1, r1, #0x10 + ldr r0, [r2, #0x30] + adds r0, r0, r1 + str r0, [r5, #0x30] + adds r0, r2, #0 + adds r0, #0x62 + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r1, r1, #0x10 + ldr r0, [r2, #0x2c] + adds r0, r0, r1 + str r0, [r5, #0x2c] + ldrb r1, [r5, #0xe] + lsls r1, r1, #8 + mov r0, sl + ldrb r2, [r0] + adds r0, r5, #0 + bl sub_0806F62C + ldrb r0, [r5, #0xa] + cmp r0, #1 + beq _080276D2 + ldr r1, [r5, #0x54] + ldr r0, [r5, #0x30] + str r0, [r1, #0x30] + ldr r1, [r5, #0x54] + ldr r0, [r5, #0x2c] + str r0, [r1, #0x2c] + ldr r0, [r5, #0x54] + ldrb r1, [r0, #0xe] + lsls r1, r1, #8 + adds r2, r0, #0 + adds r2, #0x83 + ldrb r2, [r2] + bl sub_0806F62C + ldr r0, [r5, #0x68] + ldr r1, [r5, #0x54] + ldrb r2, [r1, #0xa] + bl sub_080279AC +_080276D2: + ldr r0, [r5, #0x68] + ldrb r2, [r5, #0xa] + adds r1, r5, #0 + bl sub_080279AC + mov r1, sl + ldrb r0, [r1] + rsbs r0, r0, #0 + adds r1, r5, #0 + adds r1, #0x7f + strb r0, [r1] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_080276F4 +sub_080276F4: @ 0x080276F4 + push {r4, r5, r6, r7, lr} + adds r6, r2, #0 + ldr r5, [r0, #0x54] + ldr r4, [r0, #0x68] + ldr r0, [r0, #0x50] + mov ip, r0 + adds r0, #0x84 + movs r2, #0 + strb r2, [r0] + adds r0, r4, #0 + adds r0, #0x84 + strb r2, [r0] + adds r0, r5, #0 + adds r0, #0x84 + strb r2, [r0] + mov r0, ip + adds r0, #0x7e + movs r7, #0 + strh r2, [r0] + adds r0, r4, #0 + adds r0, #0x7e + strh r2, [r0] + adds r0, r5, #0 + adds r0, #0x7e + strh r2, [r0] + mov r0, ip + adds r0, #0x7d + strb r7, [r0] + adds r0, r4, #0 + adds r0, #0x7d + strb r7, [r0] + ldr r0, _080277AC @ =gUnk_080CC27C + lsls r1, r1, #2 + adds r0, r1, r0 + ldrh r2, [r0] + adds r3, r5, #0 + adds r3, #0x86 + strh r2, [r3] + ldrb r0, [r0, #2] + adds r2, r5, #0 + adds r2, #0x81 + strb r0, [r2] + ldr r0, _080277B0 @ =gUnk_080CC2BC + adds r0, r1, r0 + ldrh r2, [r0] + adds r3, r4, #0 + adds r3, #0x86 + strh r2, [r3] + ldrb r0, [r0, #2] + adds r2, r4, #0 + adds r2, #0x81 + strb r0, [r2] + ldr r0, _080277B4 @ =gUnk_080CC29C + adds r1, r1, r0 + ldrh r0, [r1] + mov r2, ip + adds r2, #0x86 + strh r0, [r2] + ldrb r0, [r1, #2] + mov r1, ip + adds r1, #0x81 + strb r0, [r1] + cmp r6, #0 + bne _080277AA + mov r0, ip + adds r0, #0x85 + strb r7, [r0] + adds r0, r4, #0 + adds r0, #0x85 + strb r7, [r0] + adds r0, r5, #0 + adds r0, #0x85 + strb r7, [r0] + mov r0, ip + adds r0, #0x82 + strh r6, [r0] + adds r0, r4, #0 + adds r0, #0x82 + strh r6, [r0] + adds r0, r5, #0 + adds r0, #0x82 + strh r6, [r0] + ldrb r0, [r1] + lsls r0, r0, #7 + ldrh r1, [r2] + bl __divsi3 + adds r0, #1 + adds r1, r5, #0 + adds r1, #0x7d + strb r0, [r1] +_080277AA: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080277AC: .4byte gUnk_080CC27C +_080277B0: .4byte gUnk_080CC2BC +_080277B4: .4byte gUnk_080CC29C + + thumb_func_start sub_080277B8 +sub_080277B8: @ 0x080277B8 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + ldr r1, [r5, #0x54] + adds r3, r1, #0 + adds r3, #0x7a + ldrh r0, [r3] + cmp r4, r0 + bls _080277DC + adds r0, r0, r2 + strh r0, [r3] + ldr r0, [r1, #0x74] + ldr r2, _080277D8 @ =0xFFFE8000 + adds r0, r0, r2 + str r0, [r1, #0x74] + b _080277F0 + .align 2, 0 +_080277D8: .4byte 0xFFFE8000 +_080277DC: + strh r4, [r3] + adds r1, #0x7c + movs r0, #8 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x84 + ldr r1, [r0] + ldrb r0, [r1, #3] + adds r0, #1 + strb r0, [r1, #3] +_080277F0: + adds r0, r5, #0 + bl sub_080277F8 + pop {r4, r5, pc} + + thumb_func_start sub_080277F8 +sub_080277F8: @ 0x080277F8 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + ldr r3, [r6, #0x54] + ldr r5, [r6, #0x68] + ldr r4, [r6, #0x50] + ldrh r2, [r6, #0x2e] + strh r2, [r5, #0x2e] + movs r7, #0xe + strb r7, [r5, #0xe] + ldrh r0, [r6, #0x32] + subs r0, #0xe + strh r0, [r5, #0x32] + strh r2, [r4, #0x2e] + movs r0, #0x7a + adds r0, r0, r3 + mov ip, r0 + ldrh r1, [r0] + subs r1, #0xa0 + asrs r1, r1, #4 + movs r0, #0x12 + subs r0, r0, r1 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0xe] + ldrh r0, [r5, #0x32] + subs r0, r0, r1 + strh r0, [r4, #0x32] + strh r2, [r3, #0x2e] + mov r1, ip + ldrh r0, [r1] + cmp r0, #0xa0 + bls _0802784E + subs r0, #0xa0 + asrs r0, r0, #2 + movs r1, #0xe + subs r1, r1, r0 + strb r1, [r3, #0xe] + movs r0, #0x80 + ands r1, r0 + cmp r1, #0 + beq _08027850 + movs r0, #0 + strb r0, [r3, #0xe] + b _08027850 +_0802784E: + strb r7, [r3, #0xe] +_08027850: + ldrb r1, [r3, #0xe] + ldrh r0, [r4, #0x32] + subs r0, r0, r1 + strh r0, [r3, #0x32] + ldr r0, [r3, #0x74] + str r0, [r4, #0x74] + ldr r0, [r3, #0x78] + str r0, [r4, #0x78] + ldr r0, [r3, #0x74] + str r0, [r5, #0x74] + ldr r0, [r3, #0x78] + str r0, [r5, #0x78] + adds r0, r6, #0 + bl sub_08027984 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08027870 +sub_08027870: @ 0x08027870 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + ldr r4, [r7, #0x54] + ldr r5, [r7, #0x68] + ldr r6, [r7, #0x50] + ldr r0, [r4, #0x74] + str r0, [r6, #0x74] + ldr r0, [r4, #0x78] + str r0, [r6, #0x78] + ldr r0, [r4, #0x74] + str r0, [r5, #0x74] + ldr r0, [r4, #0x78] + str r0, [r5, #0x78] + adds r0, r4, #0 + adds r0, #0x83 + ldrb r0, [r0] + rsbs r0, r0, #0 + adds r1, r4, #0 + adds r1, #0x7f + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x83 + ldrb r0, [r0] + rsbs r0, r0, #0 + adds r1, r5, #0 + adds r1, #0x7f + strb r0, [r1] + adds r0, r6, #0 + adds r0, #0x83 + ldrb r0, [r0] + rsbs r0, r0, #0 + adds r1, r6, #0 + adds r1, #0x7f + strb r0, [r1] + adds r1, r5, #0 + adds r1, #0x7a + ldrh r0, [r1] + cmp r0, #0xa0 + bls _080278C2 + movs r0, #0xe + b _080278CC +_080278C2: + ldrh r1, [r1] + movs r0, #0xa0 + subs r0, r0, r1 + asrs r0, r0, #3 + adds r0, #0xe +_080278CC: + strb r0, [r5, #0xe] + adds r1, r6, #0 + adds r1, #0x7a + ldrh r0, [r1] + cmp r0, #0xa0 + bls _080278EA + adds r2, r4, #0 + adds r2, #0x7a + ldrh r1, [r2] + subs r1, #0xa0 + asrs r1, r1, #4 + movs r0, #0x12 + subs r0, r0, r1 + strb r0, [r6, #0xe] + b _080278FA +_080278EA: + ldrh r1, [r1] + movs r0, #0xa0 + subs r0, r0, r1 + asrs r0, r0, #2 + adds r0, #0x12 + strb r0, [r6, #0xe] + adds r2, r4, #0 + adds r2, #0x7a +_080278FA: + adds r0, r2, #0 + ldrh r1, [r0] + cmp r1, #0xa0 + bls _0802791A + adds r0, r1, #0 + subs r0, #0xa0 + asrs r0, r0, #2 + movs r1, #0xe + subs r1, r1, r0 + strb r1, [r4, #0xe] + movs r0, #0x80 + ands r1, r0 + cmp r1, #0 + beq _08027934 + movs r0, #0 + b _08027932 +_0802791A: + cmp r1, #0x7f + bhi _08027928 + ldrh r1, [r0] + movs r0, #0xa0 + subs r0, r0, r1 + asrs r0, r0, #2 + b _08027930 +_08027928: + ldrh r1, [r2] + movs r0, #0xa0 + subs r0, r0, r1 + asrs r0, r0, #1 +_08027930: + adds r0, #0xe +_08027932: + strb r0, [r4, #0xe] +_08027934: + ldr r0, [r7, #0x2c] + str r0, [r5, #0x2c] + ldr r0, [r7, #0x30] + str r0, [r5, #0x30] + ldrb r1, [r5, #0xe] + lsls r1, r1, #8 + adds r0, r5, #0 + adds r0, #0x83 + ldrb r2, [r0] + adds r0, r5, #0 + bl sub_0806F62C + ldr r0, [r5, #0x2c] + str r0, [r6, #0x2c] + ldr r0, [r5, #0x30] + str r0, [r6, #0x30] + ldrb r1, [r6, #0xe] + lsls r1, r1, #8 + adds r0, r6, #0 + adds r0, #0x83 + ldrb r2, [r0] + adds r0, r6, #0 + bl sub_0806F62C + ldr r0, [r6, #0x2c] + str r0, [r4, #0x2c] + ldr r0, [r6, #0x30] + str r0, [r4, #0x30] + ldrb r1, [r4, #0xe] + lsls r1, r1, #8 + adds r0, r4, #0 + adds r0, #0x83 + ldrb r2, [r0] + adds r0, r4, #0 + bl sub_0806F62C + adds r0, r7, #0 + bl sub_08027984 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08027984 +sub_08027984: @ 0x08027984 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r1, [r4, #0x54] + ldr r5, [r4, #0x68] + ldr r6, [r4, #0x50] + ldrb r2, [r1, #0xa] + bl sub_080279AC + ldrb r2, [r5, #0xa] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080279AC + ldrb r2, [r6, #0xa] + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_080279AC + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080279AC +sub_080279AC: @ 0x080279AC + push {r4, r5, r6, lr} + mov ip, r1 + movs r3, #4 + subs r3, r3, r2 + ldrh r1, [r1, #0x2e] + ldrh r4, [r0, #0x2e] + subs r1, r1, r4 + mov r6, ip + adds r6, #0x62 + strb r1, [r6] + mov r2, ip + ldrh r1, [r2, #0x32] + ldrh r2, [r0, #0x32] + adds r0, r2, r3 + subs r1, r1, r0 + mov r5, ip + adds r5, #0x63 + strb r1, [r5] + mov r0, ip + strh r4, [r0, #0x2e] + adds r2, r2, r3 + strh r2, [r0, #0x32] + ldr r1, [r0, #0x48] + ldrb r0, [r6] + strb r0, [r1] + mov r2, ip + ldr r1, [r2, #0x48] + ldrb r0, [r5] + strb r0, [r1, #1] + pop {r4, r5, r6, pc} + + thumb_func_start sub_080279E8 +sub_080279E8: @ 0x080279E8 + push {r4, lr} + sub sp, #4 + adds r2, r0, #0 + ldr r4, [r2, #0x54] + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0x80 + bne _08027A20 + adds r0, r2, #0 + adds r0, #0x76 + ldrh r1, [r0] + adds r0, #0xe + ldr r0, [r0] + ldrb r0, [r0, #5] + subs r1, r1, r0 + cmp r1, #0x80 + bne _08027A58 + adds r0, r2, #0 + adds r0, #0x82 + ldrb r1, [r0] + movs r0, #1 + str r0, [sp] + adds r0, r2, #0 + movs r2, #0xa0 + movs r3, #0x20 + bl sub_08027B98 + b _08027A58 +_08027A20: + adds r0, r4, #0 + adds r0, #0x76 + ldrh r1, [r0] + adds r3, r0, #0 + cmp r1, #0xa0 + bls _08027A30 + subs r0, r1, #4 + b _08027A32 +_08027A30: + movs r0, #0xa0 +_08027A32: + strh r0, [r3] + adds r0, r4, #0 + adds r0, #0x7a + ldrh r2, [r0] + adds r1, r0, #0 + cmp r2, #0xa0 + bls _08027A44 + subs r0, r2, #4 + b _08027A46 +_08027A44: + movs r0, #0xa0 +_08027A46: + strh r0, [r1] + ldrh r0, [r3] + cmp r0, #0xa0 + bne _08027A58 + ldrh r0, [r1] + cmp r0, #0xa0 + bne _08027A58 + movs r0, #1 + b _08027A5A +_08027A58: + movs r0, #0 +_08027A5A: + add sp, #4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08027A60 +sub_08027A60: @ 0x08027A60 + push {lr} + adds r2, r0, #0 + adds r0, #0x7c + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08027A78 + ldr r0, [r2, #0x74] + movs r1, #0x80 + lsls r1, r1, #7 + b _08027A7C +_08027A78: + ldr r0, [r2, #0x74] + ldr r1, _08027AA0 @ =0xFFFFC000 +_08027A7C: + adds r0, r0, r1 + str r0, [r2, #0x74] + adds r3, r2, #0 + adds r3, #0x7c + ldrb r0, [r3] + adds r2, r0, #1 + strb r2, [r3] + movs r0, #0x7f + ands r0, r2 + cmp r0, #0x28 + bne _08027A9C + movs r1, #0x80 + movs r0, #0x80 + ands r2, r0 + eors r2, r1 + strb r2, [r3] +_08027A9C: + pop {pc} + .align 2, 0 +_08027AA0: .4byte 0xFFFFC000 + + thumb_func_start sub_08027AA4 +sub_08027AA4: @ 0x08027AA4 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08027B94 + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x13 + beq _08027AC2 + cmp r0, #0x1b + beq _08027B44 + b _08027B94 +_08027AC2: + movs r0, #0x84 + bl sub_080A3268 + ldrb r3, [r5, #0xb] + adds r0, r5, #0 + movs r1, #0x49 + movs r2, #9 + bl sub_080A2988 + ldr r0, _08027B3C @ =0x00000155 + bl sub_080A3268 + adds r0, r5, #0 + adds r0, #0x84 + ldr r4, [r0] + adds r1, r5, #0 + adds r1, #0x3d + movs r0, #3 + strb r0, [r1] + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + ldrb r0, [r4, #6] + movs r1, #3 + bl __divsi3 + adds r1, r0, #0 + lsls r0, r1, #0x18 + lsrs r0, r0, #0x15 + ldrb r2, [r4, #5] + cmp r0, r2 + beq _08027B06 + lsls r0, r1, #3 + strb r0, [r4, #5] +_08027B06: + movs r0, #0xb4 + str r0, [r4, #8] + movs r0, #5 + ldrsb r0, [r4, r0] + cmp r0, #0 + bge _08027B94 + movs r0, #0x40 + strb r0, [r4, #1] + adds r1, r5, #0 + adds r1, #0x3f + movs r0, #0 + strb r0, [r1] + ldrb r0, [r5, #0xd] + cmp r0, #2 + bne _08027B2A + adds r0, r5, #0 + bl sub_08027BBC +_08027B2A: + adds r0, r5, #0 + bl sub_08027D20 + ldr r0, _08027B40 @ =0x00000127 + bl sub_080A3268 +_08027B36: + movs r0, #1 + b _08027B96 + .align 2, 0 +_08027B3C: .4byte 0x00000155 +_08027B40: .4byte 0x00000127 +_08027B44: + adds r1, r5, #0 + adds r1, #0x3d + movs r0, #0xe2 + strb r0, [r1] + ldr r0, [r5, #0x4c] + ldrb r0, [r0, #0xa] + adds r0, #1 + cmp r0, #2 + beq _08027B74 + cmp r0, #2 + bgt _08027B60 + cmp r0, #1 + beq _08027B84 + b _08027B36 +_08027B60: + cmp r0, #3 + bne _08027B36 + adds r1, r5, #0 + adds r1, #0x42 + movs r0, #0x1a + strb r0, [r1] + adds r1, #4 + movs r0, #0xe0 + lsls r0, r0, #1 + b _08027B90 +_08027B74: + adds r1, r5, #0 + adds r1, #0x42 + movs r0, #0x14 + strb r0, [r1] + adds r1, #4 + movs r0, #0xc0 + lsls r0, r0, #1 + b _08027B90 +_08027B84: + adds r1, r5, #0 + adds r1, #0x42 + movs r0, #0x10 + strb r0, [r1] + adds r1, #4 + adds r0, #0xf0 +_08027B90: + strh r0, [r1] + b _08027B36 +_08027B94: + movs r0, #0 +_08027B96: + pop {r4, r5, pc} + + thumb_func_start sub_08027B98 +sub_08027B98: @ 0x08027B98 + push {r4, lr} + mov ip, r0 + ldr r4, [sp, #8] + adds r0, #0x82 + strb r1, [r0] + subs r0, #1 + strb r2, [r0] + subs r0, #1 + strb r3, [r0] + cmp r4, #0xff + beq _08027BB4 + mov r0, ip + strb r4, [r0, #0xe] + b _08027BBA +_08027BB4: + movs r0, #1 + mov r1, ip + strb r0, [r1, #0xe] +_08027BBA: + pop {r4, pc} + + thumb_func_start sub_08027BBC +sub_08027BBC: @ 0x08027BBC + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r4, #0 + movs r0, #0xa + strb r0, [r6, #0xd] + adds r5, r6, #0 + adds r5, #0x84 + ldr r0, [r5] + strb r4, [r0, #1] + adds r0, r6, #0 + movs r1, #7 + movs r2, #1 + bl sub_080276F4 + ldr r0, [r6, #0x54] + adds r0, #0x7d + strb r4, [r0] + movs r3, #0 + strh r4, [r6, #0x24] + ldr r0, [r5] + strb r3, [r0, #3] + movs r0, #0x2e + ldrsh r1, [r6, r0] + ldr r0, [r5] + ldrh r0, [r0, #0xe] + cmp r1, r0 + ble _08027C0A + movs r0, #0x18 + strb r0, [r6, #0x15] + ldr r2, [r6, #0x54] + ldr r1, [r6, #0x50] + ldr r0, [r6, #0x68] + adds r0, #0x85 + strb r3, [r0] + adds r1, #0x85 + strb r3, [r1] + adds r2, #0x85 + strb r3, [r2] + b _08027C22 +_08027C0A: + movs r0, #8 + strb r0, [r6, #0x15] + ldr r3, [r6, #0x54] + ldr r2, [r6, #0x50] + ldr r0, [r6, #0x68] + adds r0, #0x85 + movs r1, #1 + strb r1, [r0] + adds r2, #0x85 + strb r1, [r2] + adds r3, #0x85 + strb r1, [r3] +_08027C22: + ldrb r0, [r6, #0x15] + lsrs r0, r0, #2 + strb r0, [r6, #0x14] + ldr r0, _08027C44 @ =gUnk_03001160 + movs r2, #0x32 + ldrsh r1, [r6, r2] + movs r2, #0x32 + ldrsh r0, [r0, r2] + cmp r1, r0 + beq _08027C52 + cmp r1, r0 + ble _08027C48 + adds r0, r6, #0 + adds r0, #0x84 + ldr r1, [r0] + movs r0, #0 + b _08027C50 + .align 2, 0 +_08027C44: .4byte gUnk_03001160 +_08027C48: + adds r0, r6, #0 + adds r0, #0x84 + ldr r1, [r0] + movs r0, #0x10 +_08027C50: + strb r0, [r1, #0xc] +_08027C52: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08027C54 +sub_08027C54: @ 0x08027C54 + push {lr} + ldr r2, _08027C74 @ =gUnk_080CC2DC + adds r1, r0, #0 + adds r1, #0x84 + ldr r1, [r1] + ldrb r1, [r1, #4] + adds r1, r1, r2 + ldr r0, [r0, #0x54] + adds r0, #0x45 + ldrb r1, [r1] + ldrb r0, [r0] + cmp r1, r0 + bhi _08027C78 + movs r0, #0 + b _08027C7A + .align 2, 0 +_08027C74: .4byte gUnk_080CC2DC +_08027C78: + movs r0, #1 +_08027C7A: + pop {pc} + + thumb_func_start sub_08027C7C +sub_08027C7C: @ 0x08027C7C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r0, [r4, #0x54] + bl sub_08027C9C + ldr r0, [r4, #0x68] + adds r1, r5, #0 + bl sub_08027C9C + ldr r0, [r4, #0x50] + adds r1, r5, #0 + bl sub_08027C9C + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08027C9C +sub_08027C9C: @ 0x08027C9C + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + bl sub_08000E50 + ands r0, r4 + cmp r0, #0 + bne _08027D1E + adds r0, r5, #0 + movs r1, #0x48 + movs r2, #0 + bl sub_080A29AC + adds r4, r0, #0 + cmp r4, #0 + beq _08027D1E + adds r0, r5, #0 + adds r0, #0x62 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldr r1, [r5, #0x48] + ldrb r1, [r1, #6] + subs r0, r0, r1 + ldrh r1, [r4, #0x2e] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + bl sub_08000E50 + ldr r1, [r5, #0x48] + ldrb r1, [r1, #6] + lsls r1, r1, #1 + bl __modsi3 + ldrh r1, [r4, #0x2e] + adds r1, r1, r0 + strh r1, [r4, #0x2e] + adds r0, r5, #0 + adds r0, #0x63 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldr r1, [r5, #0x48] + ldrb r1, [r1, #7] + subs r0, r0, r1 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + bl sub_08000E50 + ldr r1, [r5, #0x48] + ldrb r1, [r1, #7] + lsls r1, r1, #1 + bl __modsi3 + ldrh r1, [r4, #0x32] + adds r1, r1, r0 + strh r1, [r4, #0x32] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] +_08027D1E: + pop {r4, r5, pc} + + thumb_func_start sub_08027D20 +sub_08027D20: @ 0x08027D20 + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #0x15 + movs r2, #0 + movs r3, #0 + bl sub_080A2988 + adds r4, r0, #0 + cmp r4, #0 + beq _08027D66 + movs r0, #0xc9 + strh r0, [r4, #0x12] + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #8 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x3e + bl sub_080ADF80 + ldrb r0, [r5, #0xb] + cmp r0, #0 + bne _08027D5E + adds r0, r4, #0 + movs r1, #0x2b + bl sub_0801D040 + b _08027D66 +_08027D5E: + adds r0, r4, #0 + movs r1, #0x2c + bl sub_0801D040 +_08027D66: + adds r0, r4, #0 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08027D6C +sub_08027D6C: @ 0x08027D6C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08027D88 @ =gUnk_080CC6FC + bl sub_0800129E + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, pc} + .align 2, 0 +_08027D88: .4byte gUnk_080CC6FC + + thumb_func_start sub_08027D8C +sub_08027D8C: @ 0x08027D8C + push {lr} + ldr r2, _08027DA0 @ =gUnk_080CC714 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08027DA0: .4byte gUnk_080CC714 + + thumb_func_start sub_08027DA4 +sub_08027DA4: @ 0x08027DA4 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x3f + ldrb r0, [r2] + cmp r0, #1 + bne _08027DC4 + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #0x8c + strb r0, [r2] + b _08027E0E +_08027DC4: + ldrb r0, [r4, #0xc] + cmp r0, #7 + bne _08027DD2 + adds r0, r4, #0 + bl sub_0802810C + b _08027E0E +_08027DD2: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r2, [r0] + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + beq _08027E0E + movs r1, #0x7f + ands r1, r2 + cmp r1, #0 + bne _08027E0E + movs r0, #7 + strb r0, [r4, #0xc] + movs r0, #0x5f + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + adds r2, r4, #0 + adds r2, #0x3b + ldrb r1, [r2] + movs r0, #0xfc + ands r0, r1 + strb r0, [r2] + ldr r0, _08027E38 @ =gUnk_03001160 + adds r0, #0x29 + ldrb r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1d + adds r1, r4, #0 + adds r1, #0x83 + strb r0, [r1] +_08027E0E: + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _08027E1C + movs r0, #0x20 + strb r0, [r4, #0xe] +_08027E1C: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _08027E2E + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08027E2E: + ldr r1, _08027E3C @ =gUnk_080CC6FC + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_08027E38: .4byte gUnk_03001160 +_08027E3C: .4byte gUnk_080CC6FC + + thumb_func_start sub_08027E40 +sub_08027E40: @ 0x08027E40 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #2 + bne _08027E62 + adds r5, r4, #0 + adds r5, #0x80 + ldrb r0, [r5] + cmp r0, #0xff + beq _08027E62 + adds r0, r4, #0 + movs r1, #3 + bl sub_0805E3A0 + ldrb r0, [r5] + bl sub_08028224 +_08027E62: + adds r0, r4, #0 + bl sub_0804A7D4 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start nullsub_139 +nullsub_139: @ 0x08027E6C + bx lr + .align 2, 0 + + thumb_func_start sub_08027E70 +sub_08027E70: @ 0x08027E70 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + ldrb r3, [r4, #0xa] + cmp r3, #1 + beq _08027EA6 + cmp r3, #1 + bgt _08027E88 + cmp r3, #0 + beq _08027E8E + b _08027EE4 +_08027E88: + cmp r3, #2 + beq _08027EC4 + b _08027EE4 +_08027E8E: + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #7 + ands r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + strb r3, [r4, #0xe] + b _08027EE4 +_08027EA6: + movs r2, #1 + strb r3, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + movs r0, #8 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + b _08027EE4 +_08027EC4: + movs r3, #0 + movs r2, #1 + strb r2, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + strb r3, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x3f + strb r2, [r0] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_08027EE4: + movs r0, #0 + strb r0, [r4, #0x15] + adds r1, r4, #0 + adds r1, #0x82 + strb r0, [r1] + strb r0, [r4, #0x14] + adds r1, #1 + strb r0, [r1] + subs r1, #3 + movs r0, #0xff + strb r0, [r1] + pop {r4, pc} + + thumb_func_start sub_08027EFC +sub_08027EFC: @ 0x08027EFC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #1 + beq _08027F7C + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _08027F68 + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _08027F32 + bl sub_08000E50 + movs r1, #0x30 + ands r1, r0 + cmp r1, #0 + beq _08027F32 + adds r0, r4, #0 + bl sub_08049EE4 + b _08027F38 +_08027F32: + adds r0, r4, #0 + adds r0, #0x82 + ldrb r0, [r0] +_08027F38: + strb r0, [r4, #0x15] + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08027F5A + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] + adds r1, r4, #0 + adds r1, #0x82 + strb r0, [r1] + movs r0, #8 + strb r0, [r4, #0xe] +_08027F5A: + adds r0, r4, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_08004274 + b _08027F7C +_08027F68: + movs r0, #6 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 +_08027F7C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start nullsub_12 +nullsub_12: @ 0x08027F80 + bx lr + .align 2, 0 + + thumb_func_start sub_08027F84 +sub_08027F84: @ 0x08027F84 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _08027FB0 + movs r0, #5 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #9 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_080A29BC +_08027FB0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08027FB4 +sub_08027FB4: @ 0x08027FB4 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08027FD6 + movs r1, #1 + movs r0, #1 + strb r0, [r2, #0xc] + strb r0, [r2, #0xe] + adds r3, r2, #0 + adds r3, #0x3b + ldrb r0, [r3] + orrs r0, r1 + strb r0, [r3] +_08027FD6: + adds r0, r2, #0 + bl sub_08004274 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08027FE0 +sub_08027FE0: @ 0x08027FE0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r2, #1 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _08028028 + strb r2, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] + movs r2, #8 + movs r0, #8 + strb r0, [r4, #0xe] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r1, [r3] + subs r0, #0x41 + ands r0, r1 + orrs r0, r2 + strb r0, [r3] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_08028028: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802802C +sub_0802802C: @ 0x0802802C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0802805A + movs r2, #0 + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #7 + ands r0, r1 + strb r0, [r4, #0x18] + strb r2, [r4, #0x15] + strb r2, [r4, #0xe] + adds r0, r4, #0 + bl sub_080A29BC +_0802805A: + pop {r4, pc} + + thumb_func_start sub_0802805C +sub_0802805C: @ 0x0802805C + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #2 + bl sub_08004276 + bl sub_0807953C + cmp r0, #0 + beq _0802807E + bl sub_08000E50 + ldrb r2, [r5, #0xf] + adds r2, #1 + movs r1, #1 + ands r1, r0 + adds r2, r2, r1 + strb r2, [r5, #0xf] +_0802807E: + ldrb r0, [r5, #0xf] + cmp r0, #0x18 + bhi _0802808E + ldr r0, _08028098 @ =gUnk_02002A40 + adds r0, #0xaa + ldrb r0, [r0] + cmp r0, #0 + bne _0802809C +_0802808E: + adds r0, r5, #0 + bl sub_0802810C + b _08028102 + .align 2, 0 +_08028098: .4byte gUnk_02002A40 +_0802809C: + bl sub_08077B2C + ldr r2, _08028104 @ =gUnk_03003F80 + ldrb r1, [r2, #0x1a] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x1a] + ldr r4, _08028108 @ =gUnk_03001160 + movs r3, #0x80 + lsls r3, r3, #9 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0 + bl sub_0806FA48 + ldrh r0, [r5, #0x12] + ldrb r1, [r5, #0x1e] + bl sub_080700C8 + ldrb r1, [r0] + adds r2, r4, #0 + adds r2, #0x62 + strb r1, [r2] + ldrb r0, [r0, #1] + adds r1, r4, #0 + adds r1, #0x63 + strb r0, [r1] + adds r4, #0x29 + ldrb r1, [r4] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4] + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080280F0 + adds r0, r5, #0 + bl sub_080281A0 +_080280F0: + ldrb r1, [r5, #0xe] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _08028102 + movs r0, #0x82 + lsls r0, r0, #1 + bl sub_08004488 +_08028102: + pop {r4, r5, pc} + .align 2, 0 +_08028104: .4byte gUnk_03003F80 +_08028108: .4byte gUnk_03001160 + + thumb_func_start sub_0802810C +sub_0802810C: @ 0x0802810C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r2, _08028198 @ =gUnk_03003F80 + movs r1, #0 + movs r0, #0x41 + strb r0, [r2, #2] + strb r1, [r2, #0xa] + ldr r0, [r2, #0x30] + subs r1, #0x11 + ands r0, r1 + str r0, [r2, #0x30] + ldr r0, _0802819C @ =gUnk_03001160 + mov ip, r0 + ldrb r0, [r0, #0x10] + movs r1, #0x80 + orrs r0, r1 + mov r1, ip + strb r0, [r1, #0x10] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r1, #0x20] + adds r1, #0x3d + movs r0, #0xc4 + strb r0, [r1] + movs r3, #0 + mov r2, ip + ldrb r0, [r2, #0x14] + lsls r0, r0, #2 + strb r0, [r2, #0x15] + adds r0, r4, #0 + adds r0, #0x83 + ldrb r0, [r0] + mov r5, ip + adds r5, #0x29 + movs r1, #7 + ands r1, r0 + lsls r1, r1, #3 + ldrb r2, [r5] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5] + mov r1, ip + adds r1, #0x63 + movs r0, #0 + ldrsb r0, [r1, r0] + mov r2, ip + strh r0, [r2, #0x36] + strb r3, [r1] + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x50 + strb r0, [r4, #0xe] + strb r3, [r4, #0xf] + adds r2, r4, #0 + adds r2, #0x3b + ldrb r1, [r2] + movs r0, #2 + orrs r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bne _08028196 + movs r0, #0xee + strb r0, [r1] +_08028196: + pop {r4, r5, pc} + .align 2, 0 +_08028198: .4byte gUnk_03003F80 +_0802819C: .4byte gUnk_03001160 + + thumb_func_start sub_080281A0 +sub_080281A0: @ 0x080281A0 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x19 + strb r0, [r4, #0xf] + movs r0, #0xe + bl sub_080281E0 + cmp r0, #0 + beq _080281BA + adds r0, r4, #0 + adds r0, #0x80 + movs r1, #0xe + b _080281CA +_080281BA: + movs r0, #0xd + bl sub_080281E0 + cmp r0, #0 + beq _080281D6 + adds r0, r4, #0 + adds r0, #0x80 + movs r1, #0xd +_080281CA: + strb r1, [r0] + movs r0, #0xaf + lsls r0, r0, #3 + bl sub_08056378 + b _080281DE +_080281D6: + movs r0, #1 + rsbs r0, r0, #0 + bl sub_080526A0 +_080281DE: + pop {r4, pc} + + thumb_func_start sub_080281E0 +sub_080281E0: @ 0x080281E0 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + movs r4, #0 + bl sub_0807CA84 + cmp r0, #1 + bne _0802821A + ldr r6, _08028220 @ =gUnk_02002A40 + adds r5, r6, #0 + adds r5, #0xb4 + ldrb r0, [r5] + bl sub_080544B4 + cmp r0, #0 + beq _08028200 + strb r4, [r5] +_08028200: + adds r5, r6, #0 + adds r5, #0xb5 + ldrb r0, [r5] + bl sub_080544B4 + cmp r0, #0 + beq _08028210 + strb r4, [r5] +_08028210: + adds r0, r7, #0 + movs r1, #0 + bl sub_0807CAA0 + movs r4, #1 +_0802821A: + adds r0, r4, #0 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08028220: .4byte gUnk_02002A40 + + thumb_func_start sub_08028224 +sub_08028224: @ 0x08028224 + push {lr} + movs r1, #0 + movs r2, #1 + bl sub_080A7C18 + ldr r0, _08028238 @ =0x00000579 + bl sub_08056378 + pop {pc} + .align 2, 0 +_08028238: .4byte 0x00000579 + + thumb_func_start sub_0802823C +sub_0802823C: @ 0x0802823C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08028268 @ =gUnk_080CC790 + bl sub_0800129E + movs r3, #0x20 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + ldr r1, [r4, #0x54] + cmp r1, #0 + beq _08028266 + ldr r0, [r1, #4] + cmp r0, #0 + beq _08028266 + adds r0, r4, #0 + bl sub_0806FA24 +_08028266: + pop {r4, pc} + .align 2, 0 +_08028268: .4byte gUnk_080CC790 + + thumb_func_start sub_0802826C +sub_0802826C: @ 0x0802826C + push {lr} + ldr r2, _08028280 @ =gUnk_080CC7A8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08028280: .4byte gUnk_080CC7A8 + + thumb_func_start sub_08028284 +sub_08028284: @ 0x08028284 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _08028298 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08028298: + ldr r1, _080282BC @ =gUnk_080CC790 + adds r0, r4, #0 + bl sub_0804AA30 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080282DE + ldrb r0, [r4, #0xc] + cmp r0, #4 + beq _080282C0 + adds r0, r4, #0 + bl sub_08028754 + b _080282DE + .align 2, 0 +_080282BC: .4byte gUnk_080CC790 +_080282C0: + movs r0, #0x3f + ands r0, r1 + cmp r0, #0 + bne _080282DE + adds r1, r4, #0 + adds r1, #0x7a + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + adds r1, #7 + movs r0, #0x16 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08028784 +_080282DE: + ldr r0, [r4, #0x54] + adds r1, r4, #0 + adds r1, #0x3d + ldrb r1, [r1] + adds r0, #0x3d + strb r1, [r0] + adds r0, r4, #0 + adds r0, #0x45 + ldrb r5, [r0] + cmp r5, #0 + bne _0802830C + movs r0, #0 + strh r5, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x82 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080287E0 + ldr r0, [r4, #0x54] + bl sub_0805E7BC + str r5, [r4, #0x54] +_0802830C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start nullsub_13 +nullsub_13: @ 0x08028310 + bx lr + .align 2, 0 + + thumb_func_start sub_08028314 +sub_08028314: @ 0x08028314 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r1, #0 + movs r2, #1 + strb r2, [r4, #0xc] + strb r1, [r4, #0x14] + adds r0, r4, #0 + adds r0, #0x7b + strb r1, [r0] + adds r0, #5 + strb r1, [r0] + adds r0, #3 + strb r1, [r0] + subs r0, #2 + strb r1, [r0] + subs r0, #7 + strb r1, [r0] + adds r0, #8 + strb r2, [r0] + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0802835E + ldrb r1, [r4, #0xb] + lsls r0, r1, #1 + strb r0, [r4, #0x14] + movs r0, #0x1e + strb r0, [r4, #0xe] + movs r0, #0x80 + strh r0, [r4, #0x24] + lsls r1, r1, #3 + strb r1, [r4, #0x15] + adds r0, r4, #0 + bl sub_080287E0 + b _08028368 +_0802835E: + movs r0, #0x10 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_08028604 +_08028368: + movs r0, #3 + bl sub_080A7EE0 + cmp r0, #0 + beq _08028376 + str r4, [r0, #0x50] + str r0, [r4, #0x54] +_08028376: + pop {r4, pc} + + thumb_func_start sub_08028378 +sub_08028378: @ 0x08028378 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x81 + ldrb r0, [r1] + cmp r0, #0 + beq _0802838A + subs r0, #1 + strb r0, [r1] +_0802838A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r2, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080283B8 + adds r1, r4, #0 + adds r1, #0x80 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ands r0, r2 + cmp r0, #0xf + bls _080283B0 + adds r0, r4, #0 + bl sub_08028728 + b _080283FC +_080283B0: + adds r0, r4, #0 + bl sub_08028604 + b _080283FC +_080283B8: + adds r0, r4, #0 + bl sub_080286CC + cmp r0, #0 + beq _080283CE + adds r2, r4, #0 + adds r2, #0x7b + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] +_080283CE: + adds r0, r4, #0 + bl sub_080288A4 + cmp r0, #0 + beq _080283FC + ldrh r1, [r4, #0x2a] + adds r0, r4, #0 + bl sub_0800417E + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + asrs r0, r0, #2 + strb r0, [r4, #0x14] + adds r1, r4, #0 + adds r1, #0x83 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080287E0 +_080283FC: + ldrb r0, [r4, #0xf] + cmp r0, #0xb + bls _08028414 + adds r0, r4, #0 + adds r0, #0x7b + ldrb r0, [r0] + cmp r0, #0 + beq _08028418 + adds r0, r4, #0 + bl sub_08028754 + b _08028418 +_08028414: + adds r0, #1 + strb r0, [r4, #0xf] +_08028418: + adds r0, r4, #0 + bl sub_08028858 + pop {r4, pc} + + thumb_func_start sub_08028420 +sub_08028420: @ 0x08028420 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0802844C + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x82 + strb r1, [r0] + subs r0, #2 + strb r1, [r0] + movs r0, #0x10 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_08028604 + b _08028462 +_0802844C: + adds r0, r4, #0 + bl sub_080286CC + cmp r0, #0 + beq _08028462 + adds r2, r4, #0 + adds r2, #0x7b + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] +_08028462: + ldrb r0, [r4, #0xf] + cmp r0, #0xb + bls _0802847A + adds r0, r4, #0 + adds r0, #0x7b + ldrb r0, [r0] + cmp r0, #0 + beq _0802847E + adds r0, r4, #0 + bl sub_08028754 + b _0802847E +_0802847A: + adds r0, #1 + strb r0, [r4, #0xf] +_0802847E: + adds r0, r4, #0 + bl sub_08028858 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08028488 +sub_08028488: @ 0x08028488 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + bne _08028520 + adds r0, r4, #0 + adds r0, #0x82 + ldrb r1, [r0] + adds r3, r0, #0 + cmp r1, #2 + beq _080284D2 + cmp r1, #2 + ble _080284F0 + cmp r1, #3 + beq _080284B4 + cmp r1, #4 + beq _080284E6 + b _080284F0 +_080284B4: + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] + movs r0, #0x8f + lsls r0, r0, #1 + bl sub_08004488 + b _0802850A +_080284D2: + strb r1, [r4, #0xc] + strh r2, [r4, #0x24] + bl sub_08000E50 + movs r1, #7 + ands r0, r1 + lsls r1, r0, #1 + adds r1, r1, r0 + adds r1, #0x40 + b _08028508 +_080284E6: + ldrb r0, [r4, #0x15] + adds r0, #0x10 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] +_080284F0: + movs r0, #1 + strb r0, [r4, #0xc] + strb r0, [r3] + movs r0, #0x80 + strh r0, [r4, #0x24] + bl sub_08000E50 + movs r1, #7 + ands r0, r1 + lsls r1, r0, #1 + adds r1, r1, r0 + adds r1, #0x22 +_08028508: + strb r1, [r4, #0xe] +_0802850A: + movs r0, #0 + strb r0, [r4, #0xf] + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + asrs r0, r0, #2 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_080287E0 +_08028520: + adds r0, r4, #0 + bl sub_08028858 + pop {r4, pc} + + thumb_func_start sub_08028528 +sub_08028528: @ 0x08028528 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r0, #1 + bl sub_08049DF4 + adds r5, r0, #0 + cmp r5, #0 + bne _08028542 + strb r5, [r4, #0xf] + adds r0, r4, #0 + bl sub_08028728 + b _08028600 +_08028542: + adds r0, r4, #0 + bl sub_080288C0 + ldr r1, _08028590 @ =gUnk_080CC944 + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r2, [r0] + ldr r1, [r4, #0x48] + ldrb r0, [r2] + strb r0, [r1] + ldr r1, [r4, #0x48] + ldrb r0, [r2, #1] + strb r0, [r1, #1] + ldr r1, [r4, #0x48] + ldrb r0, [r2, #6] + strb r0, [r1, #6] + ldr r1, [r4, #0x48] + ldrb r0, [r2, #7] + strb r0, [r1, #7] + adds r0, r4, #0 + adds r0, #0x7a + ldrb r1, [r0] + adds r6, r0, #0 + cmp r1, #0 + beq _08028594 + movs r0, #0 + strb r0, [r6] + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #0x16 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08028784 + adds r1, r4, #0 + adds r1, #0x7b + b _080285EE + .align 2, 0 +_08028590: .4byte gUnk_080CC944 +_08028594: + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x20 + bne _080285BC + strb r1, [r4, #0xe] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080045C4 + adds r5, r0, #0 + ldrb r0, [r4, #0x15] + adds r1, r5, #0 + bl sub_08028828 + cmp r0, #0 + beq _080285BC + strb r5, [r4, #0x15] +_080285BC: + ldrb r1, [r4, #0xe] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + bne _080285D6 + movs r0, #0xf0 + bl sub_08004488 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0x40 + bl sub_080A29AC +_080285D6: + adds r1, r4, #0 + adds r1, #0x7b + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x80 + bne _080285EE + ldrb r0, [r6] + adds r0, #1 + strb r0, [r6] +_080285EE: + ldrb r0, [r1] + cmp r0, #0x20 + bls _080285FA + adds r0, r4, #0 + bl sub_080AEF88 +_080285FA: + adds r0, r4, #0 + bl sub_08004274 +_08028600: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08028604 +sub_08028604: @ 0x08028604 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r1, #0 + strb r1, [r4, #0xf] + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #1 + bne _080286B0 + bl sub_08000E50 + ldr r2, _08028650 @ =gUnk_080CC7BC + movs r1, #3 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4, #0xe] + movs r0, #0x80 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + beq _08028658 + bl sub_08000E50 + ldr r2, _08028654 @ =gUnk_080CC7D0 + movs r1, #7 + ands r1, r0 + adds r1, r1, r2 + movs r0, #0 + ldrsb r0, [r1, r0] + adds r0, #0x18 + ldrb r1, [r4, #0x15] + adds r0, r0, r1 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + b _080286B8 + .align 2, 0 +_08028650: .4byte gUnk_080CC7BC +_08028654: .4byte gUnk_080CC7D0 +_08028658: + adds r0, r4, #0 + bl sub_08049EE4 + adds r5, r0, #0 + adds r6, r4, #0 + adds r6, #0x83 + ldrb r0, [r6] + cmp r0, #0 + bne _08028684 + bl sub_08000E50 + ldr r2, _08028680 @ =gUnk_080CC7C0 + movs r1, #0xf + ands r1, r0 + adds r1, r1, r2 + movs r0, #0 + ldrsb r0, [r1, r0] + adds r5, r5, r0 + b _080286A2 + .align 2, 0 +_08028680: .4byte gUnk_080CC7C0 +_08028684: + bl sub_08000E50 + ldr r2, _080286AC @ =gUnk_080CC7C0 + movs r1, #7 + ands r1, r0 + adds r1, r1, r2 + movs r0, #0 + ldrsb r0, [r1, r0] + adds r5, r5, r0 + ldrb r0, [r4, #0xe] + adds r0, #0x10 + strb r0, [r4, #0xe] + ldrb r0, [r6] + subs r0, #1 + strb r0, [r6] +_080286A2: + adds r0, r5, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + b _080286B8 + .align 2, 0 +_080286AC: .4byte gUnk_080CC7C0 +_080286B0: + movs r0, #0xc + strb r0, [r4, #0xe] + strh r1, [r4, #0x24] + ldrb r0, [r4, #0x15] +_080286B8: + lsrs r5, r0, #2 + ldrb r0, [r4, #0x14] + cmp r5, r0 + beq _080286C8 + strb r5, [r4, #0x14] + adds r0, r4, #0 + bl sub_080287E0 +_080286C8: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080286CC +sub_080286CC: @ 0x080286CC + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + bne _08028724 + movs r0, #1 + bl sub_08049DF4 + adds r4, r0, #0 + cmp r4, #0 + beq _08028724 + adds r0, r5, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #2 + bne _080286FC + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0x30 + bl sub_0806FC80 + cmp r0, #0 + bne _08028720 +_080286FC: + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0x40 + bl sub_0806FC80 + cmp r0, #0 + beq _08028724 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080045C4 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + lsrs r0, r0, #2 + ldrb r5, [r5, #0x14] + cmp r0, r5 + bne _08028724 +_08028720: + movs r0, #1 + b _08028726 +_08028724: + movs r0, #0 +_08028726: + pop {r4, r5, pc} + + thumb_func_start sub_08028728 +sub_08028728: @ 0x08028728 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + asrs r0, r0, #2 + strb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] + adds r1, r4, #0 + adds r1, #0x83 + ldrb r0, [r1] + lsrs r0, r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080287B4 + adds r4, #0x82 + movs r0, #2 + strb r0, [r4] + pop {r4, pc} + + thumb_func_start sub_08028754 +sub_08028754: @ 0x08028754 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049F84 + movs r2, #0 + strb r0, [r4, #0x15] + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + asrs r0, r0, #2 + strb r0, [r4, #0x14] + adds r0, r4, #0 + adds r0, #0x83 + strb r2, [r0] + adds r0, r4, #0 + bl sub_080287B4 + adds r4, #0x82 + movs r0, #3 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08028784 +sub_08028784: @ 0x08028784 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + asrs r0, r0, #2 + movs r1, #0 + strb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] + adds r0, r4, #0 + adds r0, #0x83 + strb r1, [r0] + adds r0, r4, #0 + bl sub_080287B4 + ldrb r0, [r4, #0xe] + lsls r0, r0, #1 + strb r0, [r4, #0xe] + adds r4, #0x82 + movs r0, #4 + strb r0, [r4] + pop {r4, pc} + + thumb_func_start sub_080287B4 +sub_080287B4: @ 0x080287B4 + push {lr} + adds r2, r0, #0 + movs r1, #0 + movs r0, #3 + strb r0, [r2, #0xc] + movs r0, #0x20 + strb r0, [r2, #0xe] + strb r1, [r2, #0xf] + adds r0, r2, #0 + adds r0, #0x80 + strb r1, [r0] + subs r0, #5 + strb r1, [r0] + movs r0, #0 + strh r1, [r2, #0x24] + adds r1, r2, #0 + adds r1, #0x82 + strb r0, [r1] + adds r0, r2, #0 + bl sub_080287E0 + pop {pc} + + thumb_func_start sub_080287E0 +sub_080287E0: @ 0x080287E0 + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #0x14] + lsrs r2, r0, #1 + adds r0, r3, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #4 + bhi _0802881E + lsls r0, r0, #2 + ldr r1, _080287FC @ =_08028800 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080287FC: .4byte _08028800 +_08028800: @ jump table + .4byte _0802881E @ case 0 + .4byte _08028814 @ case 1 + .4byte _0802881C @ case 2 + .4byte _08028818 @ case 3 + .4byte _08028814 @ case 4 +_08028814: + adds r2, #4 + b _0802881E +_08028818: + adds r2, #8 + b _0802881E +_0802881C: + adds r2, #0xc +_0802881E: + adds r0, r3, #0 + adds r1, r2, #0 + bl sub_08004260 + pop {pc} + + thumb_func_start sub_08028828 +sub_08028828: @ 0x08028828 + push {r4, lr} + adds r4, r0, #0 + adds r3, r1, #0 + adds r0, r3, #4 + movs r2, #0x18 + ands r0, r2 + adds r1, r4, #4 + ands r1, r2 + cmp r0, r1 + bne _08028852 + adds r0, r3, #5 + movs r1, #7 + ands r0, r1 + adds r2, r4, #5 + ands r2, r1 + cmp r0, #2 + bhi _08028852 + cmp r2, #2 + bhi _08028852 + movs r0, #1 + b _08028854 +_08028852: + movs r0, #0 +_08028854: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08028858 +sub_08028858: @ 0x08028858 + push {r4, lr} + adds r4, r0, #0 + bl sub_080288C0 + ldr r1, _080288A0 @ =gUnk_080CC944 + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r2, [r0] + ldr r1, [r4, #0x48] + ldrb r0, [r2] + strb r0, [r1] + ldr r1, [r4, #0x48] + ldrb r0, [r2, #1] + strb r0, [r1, #1] + ldr r1, [r4, #0x48] + ldrb r0, [r2, #6] + strb r0, [r1, #6] + ldr r1, [r4, #0x48] + ldrb r0, [r2, #7] + strb r0, [r1, #7] + adds r0, r4, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #0 + bne _08028890 + strh r0, [r4, #0x24] +_08028890: + adds r0, r4, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 +_080288A0: .4byte gUnk_080CC944 + + thumb_func_start sub_080288A4 +sub_080288A4: @ 0x080288A4 + ldr r2, _080288BC @ =gUnk_080CC7D8 + ldrb r1, [r0, #0x14] + lsrs r1, r1, #1 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r0, [r0, #0x2a] + ldrh r1, [r1] + ands r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + bx lr + .align 2, 0 +_080288BC: .4byte gUnk_080CC7D8 + + thumb_func_start sub_080288C0 +sub_080288C0: @ 0x080288C0 + push {lr} + mov ip, r0 + ldr r2, [r0, #0x54] + cmp r2, #0 + beq _08028908 + adds r0, r2, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08028908 + adds r0, r2, #0 + adds r0, #0x3e + ldrb r0, [r0] + mov r1, ip + adds r1, #0x3e + strb r0, [r1] + adds r0, r2, #0 + adds r0, #0x3d + ldrb r0, [r0] + rsbs r0, r0, #0 + subs r1, #1 + strb r0, [r1] + adds r0, r2, #0 + adds r0, #0x46 + ldrh r0, [r0] + adds r1, #9 + movs r3, #0 + strh r0, [r1] + adds r2, #0x42 + ldrb r1, [r2] + mov r0, ip + adds r0, #0x42 + strb r1, [r0] + strb r3, [r2] +_08028908: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0802890C +sub_0802890C: @ 0x0802890C + push {lr} + ldr r1, _08028918 @ =gUnk_080CC9C8 + bl sub_0800129E + pop {pc} + .align 2, 0 +_08028918: .4byte gUnk_080CC9C8 + + thumb_func_start sub_0802891C +sub_0802891C: @ 0x0802891C + push {lr} + ldr r2, _08028930 @ =gUnk_080CC9E0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08028930: .4byte gUnk_080CC9E0 + + thumb_func_start sub_08028934 +sub_08028934: @ 0x08028934 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #1 + bne _08028988 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r2, #0x7f + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0x42 + bne _08028988 + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + movs r0, #0x28 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x10] + adds r0, r2, #0 + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #4 + bl sub_080290E0 + adds r0, r4, #0 + movs r1, #3 + movs r2, #0 + bl sub_080A29AC + adds r1, r0, #0 + cmp r1, #0 + beq _08028982 + ldrh r0, [r1, #0x36] + subs r0, #8 + strh r0, [r1, #0x36] +_08028982: + ldr r0, _0802898C @ =0x000001BB + bl sub_08004488 +_08028988: + pop {r4, pc} + .align 2, 0 +_0802898C: .4byte 0x000001BB + + thumb_func_start nullsub_140 +nullsub_140: @ 0x08028990 + bx lr + .align 2, 0 + + thumb_func_start sub_08028994 +sub_08028994: @ 0x08028994 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0 + strb r0, [r4, #0xf] + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x78 + movs r5, #0 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x7a + strh r0, [r1] + strb r5, [r4, #0x14] + movs r0, #0x10 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_08028E9C + ldr r0, [r4, #0x7c] + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080289D4 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _080289FC +_080289D4: + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0xb1 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_0802925C + adds r0, r4, #0 + movs r1, #0 + bl sub_080290E0 + b _08028A42 +_080289FC: + strb r5, [r4, #0xe] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _08028A44 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r4, #0 + adds r0, #0x76 + strh r1, [r0] + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x74 + strh r0, [r1] + subs r1, #0x34 + movs r0, #0x41 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08028FFC +_08028A42: + pop {r4, r5, pc} + .align 2, 0 +_08028A44: .4byte gUnk_03000BF0 + + thumb_func_start sub_08028A48 +sub_08028A48: @ 0x08028A48 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + adds r5, r0, #0 + cmp r5, #0 + beq _08028A5A + subs r0, #1 + strb r0, [r4, #0xe] + b _08028A72 +_08028A5A: + adds r0, r4, #0 + movs r1, #0 + bl sub_08028F98 + cmp r0, #0 + beq _08028A72 + adds r0, r4, #0 + bl sub_08029078 + strb r5, [r4, #0xd] + movs r0, #1 + strb r0, [r4, #0xf] +_08028A72: + pop {r4, r5, pc} + + thumb_func_start sub_08028A74 +sub_08028A74: @ 0x08028A74 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xd] + cmp r0, #4 + bls _08028A84 + b _08028BA6 +_08028A84: + lsls r0, r0, #2 + ldr r1, _08028A90 @ =_08028A94 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08028A90: .4byte _08028A94 +_08028A94: @ jump table + .4byte _08028AA8 @ case 0 + .4byte _08028ACA @ case 1 + .4byte _08028B1A @ case 2 + .4byte _08028B54 @ case 3 + .4byte _08028B76 @ case 4 +_08028AA8: + movs r6, #1 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08028BA6 + strb r6, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + movs r0, #0x10 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_08028FDC + b _08028B6C +_08028ACA: + movs r6, #1 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r2, #0xff + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _08028AF6 + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #0x20 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + adds r0, r4, #0 + bl sub_08028FDC + adds r0, r4, #0 + movs r1, #2 + bl sub_080290E0 + b _08028BA6 +_08028AF6: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r2 + cmp r0, #0 + bne _08028BA6 + adds r0, r4, #0 + bl sub_08028FDC + cmp r0, #0 + beq _08028B14 + adds r0, r4, #0 + movs r1, #1 + bl sub_080290E0 +_08028B14: + movs r0, #0x10 + strb r0, [r4, #0xf] + b _08028BA6 +_08028B1A: + movs r6, #1 + adds r0, r4, #0 + bl sub_080290FC + adds r5, r4, #0 + adds r5, #0x5a + ldrb r1, [r5] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _08028BA6 + adds r0, r4, #0 + movs r1, #4 + movs r2, #0 + bl sub_0804A98C + adds r1, r0, #0 + cmp r1, #0 + beq _08028BA6 + str r4, [r1, #0x50] + ldrb r0, [r4, #0x15] + strb r0, [r1, #0x15] + ldrb r1, [r5] + movs r0, #0xfe + ands r0, r1 + strb r0, [r5] + movs r0, #3 + strb r0, [r4, #0xd] + b _08028BA6 +_08028B54: + movs r6, #2 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08028BA6 + movs r0, #4 + strb r0, [r4, #0xd] + movs r0, #0x50 + strb r0, [r4, #0xe] +_08028B6C: + adds r0, r4, #0 + movs r1, #1 + bl sub_080290E0 + b _08028BA6 +_08028B76: + movs r6, #2 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08028BA6 + adds r0, r4, #0 + movs r1, #0 + bl sub_08028F98 + adds r5, r0, #0 + cmp r5, #0 + beq _08028BB4 + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + movs r0, #0x10 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_08028FDC + b _08028BC2 +_08028BA6: + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08028F98 + adds r5, r0, #0 + cmp r5, #0 + bne _08028BC2 +_08028BB4: + adds r0, r4, #0 + bl sub_08028FFC + strb r5, [r4, #0xd] + movs r0, #0x50 + strb r0, [r4, #0xe] + strb r5, [r4, #0xf] +_08028BC2: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08028BC4 +sub_08028BC4: @ 0x08028BC4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _08028BD4 + cmp r0, #1 + beq _08028C14 + b _08028C76 +_08028BD4: + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _08028C0E + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08028C76 + movs r0, #1 + strb r0, [r4, #0xd] + adds r0, r4, #0 + bl sub_08028FDC + adds r0, r4, #0 + movs r1, #5 + bl sub_080290E0 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + b _08028C76 +_08028C0E: + subs r0, #1 + strb r0, [r4, #0xe] + b _08028C76 +_08028C14: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08028C76 + movs r1, #0 + movs r0, #4 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + movs r0, #0x1e + strb r0, [r4, #0xe] + movs r0, #5 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_080290E0 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC + adds r2, r0, #0 + cmp r2, #0 + beq _08028C66 + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r3] + ldrh r0, [r2, #0x36] + subs r0, #0xc + strh r0, [r2, #0x36] + adds r0, r2, #0 + movs r1, #2 + bl sub_0805E3A0 +_08028C66: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + adds r0, r4, #0 + bl sub_0802925C +_08028C76: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0800445C + pop {r4, pc} + + thumb_func_start sub_08028C84 +sub_08028C84: @ 0x08028C84 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08028CD2 + movs r0, #0x30 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xf] + adds r5, r0, #0 + cmp r5, #0 + beq _08028CB4 + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r1 + cmp r0, #0 + bne _08028CD2 + adds r0, r4, #0 + bl sub_0804AA1C + b _08028CD2 +_08028CB4: + adds r0, r4, #0 + bl sub_08028FDC + adds r1, r4, #0 + adds r1, #0x80 + cmp r0, #0 + bne _08028CC8 + ldrb r0, [r1] + cmp r0, #0 + beq _08028CD2 +_08028CC8: + strb r5, [r1] + adds r0, r4, #0 + movs r1, #0 + bl sub_080290E0 +_08028CD2: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0800445C + adds r0, r4, #0 + bl sub_08028F0C + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08028CE8 +sub_08028CE8: @ 0x08028CE8 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldr r6, [r5, #0x7c] + ldr r0, _08028D30 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08028DCC + adds r0, r5, #0 + bl sub_0802915C + cmp r0, #0 + beq _08028DCC + bl sub_08056338 + cmp r0, #0 + bne _08028DCC + ldr r0, _08028D34 @ =gUnk_02002A40 + adds r0, #0xc0 + ldrh r1, [r6, #2] + ldrh r0, [r0] + cmp r1, r0 + bhi _08028DC0 + adds r0, r5, #0 + bl sub_080291DC + cmp r0, #0 + beq _08028D3C + ldr r0, _08028D38 @ =0x00002904 + bl sub_08056378 + movs r0, #0 + bl sub_08078A90 + b _08028DCC + .align 2, 0 +_08028D30: .4byte gUnk_02000050 +_08028D34: .4byte gUnk_02002A40 +_08028D38: .4byte 0x00002904 +_08028D3C: + ldrh r0, [r6, #2] + rsbs r0, r0, #0 + bl sub_080526CC + ldrb r0, [r6] + lsrs r7, r0, #2 + cmp r7, #1 + beq _08028D9C + cmp r7, #1 + bgt _08028D56 + cmp r7, #0 + beq _08028D5C + b _08028DCC +_08028D56: + cmp r7, #2 + beq _08028DAA + b _08028DCC +_08028D5C: + ldrb r1, [r6, #9] + cmp r1, #0xff + bne _08028D70 + ldr r4, _08028D98 @ =gUnk_080CC9C0 + bl sub_08000E50 + movs r1, #7 + ands r1, r0 + adds r1, r1, r4 + ldrb r1, [r1] +_08028D70: + ldrb r0, [r6, #8] + movs r2, #0 + bl sub_080A7C00 + movs r0, #6 + strb r0, [r5, #0xc] + movs r0, #4 + strb r0, [r5, #0xe] + adds r0, r5, #0 + adds r0, #0x81 + strb r7, [r0] + adds r0, r5, #0 + movs r1, #3 + bl sub_080290E0 + movs r0, #0x87 + bl sub_0807CCB4 + b _08028DE2 + .align 2, 0 +_08028D98: .4byte gUnk_080CC9C0 +_08028D9C: + ldrb r0, [r6, #8] + ldrb r1, [r6, #9] + movs r2, #0 + bl sub_080A7C00 + movs r0, #4 + b _08028DB6 +_08028DAA: + ldrb r0, [r6, #8] + ldrb r1, [r6, #9] + movs r2, #0 + bl sub_080A7C00 + movs r0, #8 +_08028DB6: + strb r0, [r5, #0xe] + adds r0, r5, #0 + bl sub_0802922C + b _08028DE2 +_08028DC0: + ldr r0, _08028DE4 @ =0x00002903 + bl sub_08056378 + movs r0, #0 + bl sub_08078A90 +_08028DCC: + adds r0, r5, #0 + bl sub_0800445C + movs r0, #4 + strb r0, [r5, #0xc] + movs r0, #0x30 + strb r0, [r5, #0xe] + adds r0, r5, #0 + movs r1, #0 + bl sub_080290E0 +_08028DE2: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08028DE4: .4byte 0x00002903 + + thumb_func_start sub_08028DE8 +sub_08028DE8: @ 0x08028DE8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08028E08 @ =gUnk_03001160 + ldrb r0, [r0, #0xc] + cmp r0, #8 + bne _08028E0C + adds r4, #0x81 + ldrb r0, [r4] + cmp r0, #0 + bne _08028E3A + movs r0, #1 + bl sub_08078A90 + movs r0, #1 + strb r0, [r4] + b _08028E3A + .align 2, 0 +_08028E08: .4byte gUnk_03001160 +_08028E0C: + ldr r0, _08028E3C @ =0x00002902 + bl sub_08056378 + movs r1, #0 + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x81 + strb r1, [r0] + movs r0, #1 + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_08028EDC + movs r0, #0 + bl sub_08078A90 + adds r0, r4, #0 + bl sub_0800445C + adds r0, r4, #0 + bl sub_08004274 +_08028E3A: + pop {r4, pc} + .align 2, 0 +_08028E3C: .4byte 0x00002902 + + thumb_func_start sub_08028E40 +sub_08028E40: @ 0x08028E40 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _08028E80 @ =gUnk_02000050 + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0 + bne _08028E72 + ldr r5, [r4, #0x7c] + movs r0, #4 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + movs r0, #1 + strb r0, [r4, #0xe] + ldrh r0, [r5, #0xa] + bl sub_0807CBD0 + cmp r0, #0 + bne _08028E6C + ldrh r0, [r5, #0xa] + bl sub_0807CCB4 +_08028E6C: + movs r0, #0 + bl sub_08078A90 +_08028E72: + adds r0, r4, #0 + bl sub_0800445C + adds r0, r4, #0 + bl sub_08004274 + pop {r4, r5, pc} + .align 2, 0 +_08028E80: .4byte gUnk_02000050 + + thumb_func_start sub_08028E84 +sub_08028E84: @ 0x08028E84 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08028E98 + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #1 + strb r0, [r4, #0xe] +_08028E98: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08028E9C +sub_08028E9C: @ 0x08028E9C + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xa] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r6, _08028ED8 @ =gUnk_080CC954 + adds r4, r1, r6 + adds r0, r4, #0 + bl sub_08029198 + cmp r0, #0 + beq _08028ECA + ldrb r1, [r4] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08028ECA + ldrh r1, [r4, #0xa] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r4, r0, r6 +_08028ECA: + str r4, [r5, #0x7c] + adds r1, r5, #0 + adds r1, #0x80 + movs r0, #0 + strb r0, [r1] + pop {r4, r5, r6, pc} + .align 2, 0 +_08028ED8: .4byte gUnk_080CC954 + + thumb_func_start sub_08028EDC +sub_08028EDC: @ 0x08028EDC + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, [r5, #0x7c] + adds r0, r4, #0 + bl sub_08029198 + cmp r0, #0 + beq _08028F04 + ldrb r1, [r4] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08028F04 + ldrh r0, [r4, #0xa] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _08028F08 @ =gUnk_080CC954 + adds r4, r1, r0 + str r4, [r5, #0x7c] +_08028F04: + pop {r4, r5, pc} + .align 2, 0 +_08028F08: .4byte gUnk_080CC954 + + thumb_func_start sub_08028F0C +sub_08028F0C: @ 0x08028F0C + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r2, r5, #0 + adds r2, #0x39 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #2 + bne _08028F2C + movs r1, #0 + movs r0, #8 + strb r0, [r5, #0xc] + strb r1, [r2] + adds r0, r5, #0 + bl sub_0806F118 + b _08028F90 +_08028F2C: + cmp r0, #0 + beq _08028F90 + ldr r6, [r5, #0x7c] + movs r4, #0 + strb r4, [r2] + adds r0, r5, #0 + bl sub_0804AA1C + adds r0, r5, #0 + bl sub_0806EDC4 + lsls r0, r0, #3 + strb r0, [r5, #0x15] + adds r0, r5, #0 + movs r1, #3 + bl sub_080290E0 + adds r1, r5, #0 + adds r1, #0x80 + movs r0, #1 + strb r0, [r1] + movs r0, #0x20 + strb r0, [r5, #0xe] + strb r4, [r5, #0xf] + adds r0, r6, #0 + bl sub_08029198 + cmp r0, #0 + beq _08028F6A + ldrh r4, [r6, #6] + b _08028F84 +_08028F6A: + ldrb r1, [r6] + movs r0, #0xfc + ands r0, r1 + cmp r0, #0xc + beq _08028F78 + movs r0, #5 + b _08028F7A +_08028F78: + movs r0, #7 +_08028F7A: + strb r0, [r5, #0xc] + ldrh r4, [r6, #4] + movs r0, #1 + bl sub_08078A90 +_08028F84: + adds r0, r4, #0 + bl sub_08056378 + ldr r1, _08028F94 @ =gUnk_02000050 + ldrh r0, [r6, #2] + str r0, [r1, #0x10] +_08028F90: + pop {r4, r5, r6, pc} + .align 2, 0 +_08028F94: .4byte gUnk_02000050 + + thumb_func_start sub_08028F98 +sub_08028F98: @ 0x08028F98 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r5, r1, #0 + movs r0, #1 + bl sub_08049DF4 + adds r4, r0, #0 + cmp r4, #0 + beq _08028FD4 + adds r0, r6, #0 + adds r1, r4, #0 + movs r2, #0x28 + movs r3, #0x28 + bl sub_080041A0 + cmp r0, #0 + bne _08028FD4 + cmp r5, #2 + beq _08028FD8 + movs r3, #0x50 + cmp r5, #0 + beq _08028FC6 + movs r3, #0x58 +_08028FC6: + adds r0, r6, #0 + adds r1, r4, #0 + adds r2, r3, #0 + bl sub_080041A0 + cmp r0, #0 + bne _08028FD8 +_08028FD4: + movs r0, #0 + b _08028FDA +_08028FD8: + movs r0, #1 +_08028FDA: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08028FDC +sub_08028FDC: @ 0x08028FDC + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049F84 + adds r1, r0, #4 + movs r0, #0x18 + ands r1, r0 + ldrb r0, [r4, #0x15] + cmp r1, r0 + beq _08028FF8 + strb r1, [r4, #0x15] + movs r0, #1 + b _08028FFA +_08028FF8: + movs r0, #0 +_08028FFA: + pop {r4, pc} + + thumb_func_start sub_08028FFC +sub_08028FFC: @ 0x08028FFC + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_080AE068 + adds r0, r4, #0 + bl sub_0801D230 + adds r1, r4, #0 + adds r1, #0x60 + movs r0, #0xe8 + strh r0, [r1] + ldrb r1, [r4, #0x1a] + subs r0, #0xf8 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + movs r1, #0xf + ands r0, r1 + movs r1, #0x20 + orrs r0, r1 + strb r0, [r4, #0x1a] + movs r0, #0xa7 + strh r0, [r4, #0x12] + adds r0, r4, #0 + adds r0, #0x78 + ldrh r0, [r0] + strh r0, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x7a + ldrh r0, [r0] + strh r0, [r4, #0x32] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + ldr r0, _08029074 @ =0x00004022 + adds r1, r4, #0 + adds r1, #0x76 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + pop {r4, pc} + .align 2, 0 +_08029074: .4byte 0x00004022 + + thumb_func_start sub_08029078 +sub_08029078: @ 0x08029078 + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #0x72 + bl sub_080ADF80 + cmp r0, #0 + bne _080290AE + adds r0, r4, #0 + bl sub_0805E7BC + b _080290DE +_080290AE: + adds r0, r4, #0 + movs r1, #0x6e + bl sub_0801D040 + movs r0, #0xd0 + strh r0, [r4, #0x12] + adds r0, r4, #0 + bl sub_08028FDC + adds r0, r4, #0 + movs r1, #1 + bl sub_080290E0 + adds r0, r4, #0 + adds r0, #0x74 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x76 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E +_080290DE: + pop {r4, pc} + + thumb_func_start sub_080290E0 +sub_080290E0: @ 0x080290E0 + push {lr} + adds r3, r1, #0 + ldrb r1, [r0, #0x15] + lsrs r1, r1, #3 + ldr r2, _080290F8 @ =gUnk_080CCA04 + adds r3, r3, r2 + ldrb r2, [r3] + orrs r1, r2 + bl sub_08004260 + pop {pc} + .align 2, 0 +_080290F8: .4byte gUnk_080CCA04 + + thumb_func_start sub_080290FC +sub_080290FC: @ 0x080290FC + push {r4, r5, lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + cmp r0, #0 + beq _08029158 + subs r1, r0, #1 + strb r1, [r2, #0xe] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xf + bhi _08029158 + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08029158 + ldrb r4, [r2, #0x15] + movs r0, #0x10 + ands r0, r4 + movs r5, #1 + cmp r0, #0 + beq _08029128 + subs r5, #2 +_08029128: + movs r3, #8 + adds r0, r3, #0 + ands r0, r4 + cmp r0, #0 + beq _08029146 + movs r4, #0x2e + ldrsh r0, [r2, r4] + ands r1, r3 + cmp r1, #0 + beq _08029140 + subs r0, r0, r5 + b _08029142 +_08029140: + adds r0, r0, r5 +_08029142: + strh r0, [r2, #0x2e] + b _08029158 +_08029146: + movs r4, #0x32 + ldrsh r0, [r2, r4] + ands r1, r3 + cmp r1, #0 + bne _08029154 + subs r0, r0, r5 + b _08029156 +_08029154: + adds r0, r0, r5 +_08029156: + strh r0, [r2, #0x32] +_08029158: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0802915C +sub_0802915C: @ 0x0802915C + push {lr} + ldr r0, [r0, #0x7c] + ldrb r0, [r0, #8] + cmp r0, #0x5c + beq _08029190 + cmp r0, #0x5c + bgt _08029174 + cmp r0, #0x1c + beq _08029186 + cmp r0, #0x44 + beq _0802917E + b _08029194 +_08029174: + cmp r0, #0x6c + beq _08029190 + cmp r0, #0x6f + beq _08029190 + b _08029194 +_0802917E: + movs r0, #0x44 + bl sub_0807CA84 + b _0802918C +_08029186: + movs r0, #0x5a + bl sub_0807CC30 +_0802918C: + cmp r0, #0 + bne _08029194 +_08029190: + movs r0, #1 + b _08029196 +_08029194: + movs r0, #0 +_08029196: + pop {pc} + + thumb_func_start sub_08029198 +sub_08029198: @ 0x08029198 + push {lr} + adds r2, r0, #0 + ldrb r1, [r2] + movs r0, #0xfc + ands r0, r1 + cmp r0, #0xc + beq _080291CA + ldrb r0, [r2, #8] + cmp r0, #0x1c + beq _080291BC + cmp r0, #0x1c + bgt _080291B6 + cmp r0, #9 + beq _080291C4 + b _080291D8 +_080291B6: + cmp r0, #0x44 + beq _080291C4 + b _080291D8 +_080291BC: + movs r0, #0x5a + bl sub_0807CC30 + b _080291D0 +_080291C4: + bl sub_0807CA84 + b _080291D0 +_080291CA: + ldrh r0, [r2, #0xa] + bl sub_0807CBD0 +_080291D0: + cmp r0, #0 + beq _080291D8 + movs r0, #1 + b _080291DA +_080291D8: + movs r0, #0 +_080291DA: + pop {pc} + + thumb_func_start sub_080291DC +sub_080291DC: @ 0x080291DC + push {lr} + ldr r0, [r0, #0x7c] + ldrb r0, [r0, #8] + cmp r0, #0x6c + beq _080291EC + cmp r0, #0x6f + beq _08029204 + b _08029228 +_080291EC: + ldr r2, _080291FC @ =gUnk_080FD5A0 + ldr r1, _08029200 @ =gUnk_02002A40 + adds r0, r1, #0 + adds r0, #0xae + ldrb r0, [r0] + adds r0, r0, r2 + adds r1, #0xac + b _08029212 + .align 2, 0 +_080291FC: .4byte gUnk_080FD5A0 +_08029200: .4byte gUnk_02002A40 +_08029204: + ldr r2, _08029220 @ =gUnk_080FD5A4 + ldr r1, _08029224 @ =gUnk_02002A40 + adds r0, r1, #0 + adds r0, #0xaf + ldrb r0, [r0] + adds r0, r0, r2 + adds r1, #0xad +_08029212: + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bhi _08029228 + movs r0, #1 + b _0802922A + .align 2, 0 +_08029220: .4byte gUnk_080FD5A4 +_08029224: .4byte gUnk_02002A40 +_08029228: + movs r0, #0 +_0802922A: + pop {pc} + + thumb_func_start sub_0802922C +sub_0802922C: @ 0x0802922C + push {r4, lr} + adds r4, r0, #0 + movs r0, #0 + movs r1, #6 + strb r1, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x81 + strb r0, [r1] + ldr r0, [r4, #0x7c] + ldrb r0, [r0, #8] + cmp r0, #0x6c + beq _08029252 + cmp r0, #0x6c + bgt _08029252 + cmp r0, #0x1c + bne _08029252 + movs r0, #0x5a + bl sub_0807CD04 +_08029252: + adds r0, r4, #0 + movs r1, #3 + bl sub_080290E0 + pop {r4, pc} + + thumb_func_start sub_0802925C +sub_0802925C: @ 0x0802925C + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08029270 +sub_08029270: @ 0x08029270 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _08029296 + adds r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + adds r0, r2, #0 + movs r1, #0xe + bl sub_08004260 + b _0802929C +_08029296: + adds r0, r2, #0 + bl sub_08004274 +_0802929C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080292A0 +sub_080292A0: @ 0x080292A0 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xb] + cmp r0, #0 + bne _080292F8 + adds r0, r5, #0 + bl sub_080043E8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + beq _080292CE + ldrb r0, [r5, #0xc] + cmp r0, #4 + bne _080292C4 + adds r0, r5, #0 + bl sub_080296D8 +_080292C4: + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08001290 + b _080292FE +_080292CE: + ldr r4, _080292F4 @ =gUnk_080CCC00 + adds r0, r5, #0 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r5, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + b _080292FE + .align 2, 0 +_080292F4: .4byte gUnk_080CCC00 +_080292F8: + adds r0, r5, #0 + bl sub_080293DC +_080292FE: + pop {r4, r5, pc} + + thumb_func_start sub_08029300 +sub_08029300: @ 0x08029300 + push {lr} + ldr r2, _08029314 @ =gUnk_080CCC18 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08029314: .4byte gUnk_080CCC18 + + thumb_func_start sub_08029318 +sub_08029318: @ 0x08029318 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0x8e + bne _0802932C + adds r0, r4, #0 + bl sub_08029770 + b _080293A6 +_0802932C: + ldrb r0, [r4, #0xc] + cmp r0, #4 + bne _08029338 + adds r0, r4, #0 + bl sub_080296D8 +_08029338: + ldr r0, [r4, #0x4c] + ldrb r0, [r0, #8] + cmp r0, #1 + bne _08029394 + ldrb r0, [r4, #0xc] + cmp r0, #2 + bne _08029356 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + ldr r0, [r4, #0x54] + movs r1, #4 + bl sub_08004260 +_08029356: + movs r1, #0 + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x83 + movs r0, #0x41 + strb r0, [r1] + adds r2, r4, #0 + adds r2, #0x3b + ldrb r1, [r2] + movs r0, #0xfc + ands r0, r1 + strb r0, [r2] + ldr r0, _08029390 @ =gUnk_03001160 + adds r0, #0x29 + ldrb r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1d + adds r1, r4, #0 + adds r1, #0x80 + strb r0, [r1] + movs r0, #0x82 + lsls r0, r0, #1 + bl sub_08004488 + b _080293A6 + .align 2, 0 +_08029390: .4byte gUnk_03001160 +_08029394: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _080293A6 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_080293A6: + ldr r1, _080293B0 @ =gUnk_080CCC00 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_080293B0: .4byte gUnk_080CCC00 + + thumb_func_start sub_080293B4 +sub_080293B4: @ 0x080293B4 + push {lr} + ldr r3, _080293D4 @ =gUnk_080CCC34 + adds r1, r0, #0 + adds r1, #0x84 + ldrb r2, [r1] + lsls r1, r2, #1 + adds r1, r1, r2 + ldrb r2, [r0, #0xa] + adds r1, r1, r2 + adds r1, r1, r3 + ldrb r2, [r1] + movs r1, #0xff + bl sub_0804A7E0 + pop {pc} + .align 2, 0 +_080293D4: .4byte gUnk_080CCC34 + + thumb_func_start nullsub_141 +nullsub_141: @ 0x080293D8 + bx lr + .align 2, 0 + + thumb_func_start sub_080293DC +sub_080293DC: @ 0x080293DC + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA6C + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + ldrh r0, [r4, #0x36] + subs r0, #1 + strh r0, [r4, #0x36] + ldr r1, _08029408 @ =gUnk_080CCC3C + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_08029408: .4byte gUnk_080CCC3C + + thumb_func_start sub_0802940C +sub_0802940C: @ 0x0802940C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xa] + movs r0, #0x17 + bl sub_0804AA60 + adds r5, r0, #0 + cmp r5, #0 + beq _0802944A + adds r0, r4, #0 + bl sub_0804A720 + str r4, [r5, #0x50] + movs r1, #0 + movs r0, #1 + strb r0, [r5, #0xb] + str r5, [r4, #0x54] + adds r0, r4, #0 + adds r0, #0x81 + strb r1, [r0] + adds r0, #3 + strb r1, [r0] + ldrb r0, [r4, #0x1a] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + adds r1, r4, #0 + adds r1, #0x82 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080297F0 +_0802944A: + pop {r4, r5, pc} + + thumb_func_start sub_0802944C +sub_0802944C: @ 0x0802944C + push {r4, lr} + adds r4, r0, #0 + bl sub_080296C8 + adds r0, r4, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + beq _08029470 + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _08029470 + adds r0, r4, #0 + bl sub_08029770 +_08029470: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08029474 +sub_08029474: @ 0x08029474 + push {r4, lr} + adds r4, r0, #0 + bl sub_080296C8 + adds r3, r4, #0 + adds r3, #0x5a + ldrb r2, [r3] + movs r0, #0x80 + ands r0, r2 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _080294C0 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #8 + strb r0, [r4, #0xe] + ldr r1, _080294BC @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1c + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 + ldr r0, [r4, #0x54] + ldrb r1, [r4, #0x14] + adds r1, #4 + bl sub_08004260 + b _080294D2 + .align 2, 0 +_080294BC: .4byte gUnk_03001160 +_080294C0: + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080294D2 + strb r1, [r3] + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] +_080294D2: + pop {r4, pc} + + thumb_func_start sub_080294D4 +sub_080294D4: @ 0x080294D4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0802951C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08029508 + movs r0, #8 + strb r0, [r4, #0xe] + ldr r1, _08029518 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 + adds r0, r4, #0 + bl sub_0802969C +_08029508: + adds r0, r4, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_080296C8 + b _08029538 + .align 2, 0 +_08029518: .4byte gUnk_03001160 +_0802951C: + movs r0, #6 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 + ldr r0, [r4, #0x54] + movs r1, #7 + bl sub_08004260 +_08029538: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802953C +sub_0802953C: @ 0x0802953C + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080296C8 + adds r0, r5, #0 + bl sub_080296C8 + bl sub_0807953C + cmp r0, #0 + beq _08029558 + ldrb r0, [r5, #0xf] + adds r0, #1 + strb r0, [r5, #0xf] +_08029558: + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _08029562 + subs r0, #1 + strb r0, [r5, #0xe] +_08029562: + ldrb r0, [r5, #0xf] + cmp r0, #0x2d + bhi _08029572 + ldr r0, _08029580 @ =gUnk_02002A40 + adds r0, #0xc0 + ldrh r0, [r0] + cmp r0, #0 + bne _08029584 +_08029572: + ldrb r0, [r5, #0xe] + cmp r0, #0 + bne _08029584 + adds r0, r5, #0 + bl sub_080296D8 + b _080295FE + .align 2, 0 +_08029580: .4byte gUnk_02002A40 +_08029584: + bl sub_08077B2C + ldr r2, _08029600 @ =gUnk_03003F80 + ldrb r1, [r2, #0x1a] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x1a] + ldr r4, _08029604 @ =gUnk_03001160 + movs r3, #0x80 + lsls r3, r3, #9 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0 + bl sub_0806FA48 + ldrh r0, [r5, #0x12] + ldrb r1, [r5, #0x1e] + bl sub_080700C8 + ldrb r1, [r0] + adds r2, r4, #0 + adds r2, #0x62 + strb r1, [r2] + ldrb r0, [r0, #1] + subs r0, #1 + adds r1, r4, #0 + adds r1, #0x63 + strb r0, [r1] + adds r4, #0x29 + ldrb r1, [r4] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4] + adds r1, r5, #0 + adds r1, #0x83 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080295FE + movs r0, #0x41 + strb r0, [r1] + ldr r0, _08029608 @ =gUnk_02002A40 + adds r0, #0xc0 + ldrh r0, [r0] + cmp r0, #0 + beq _080295FE + ldr r1, _0802960C @ =gUnk_080CCC44 + ldrb r0, [r5, #0xa] + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + bl sub_080526CC + adds r1, r5, #0 + adds r1, #0x84 + movs r0, #1 + strb r0, [r1] +_080295FE: + pop {r4, r5, pc} + .align 2, 0 +_08029600: .4byte gUnk_03003F80 +_08029604: .4byte gUnk_03001160 +_08029608: .4byte gUnk_02002A40 +_0802960C: .4byte gUnk_080CCC44 + + thumb_func_start sub_08029610 +sub_08029610: @ 0x08029610 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xf] + subs r0, #1 + strb r0, [r1, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08029628 + movs r0, #3 + strb r0, [r1, #0xc] + movs r0, #1 + strb r0, [r1, #0xe] +_08029628: + adds r0, r1, #0 + bl sub_080296C8 + pop {pc} + + thumb_func_start sub_08029630 +sub_08029630: @ 0x08029630 + push {r4, lr} + adds r4, r0, #0 + bl sub_080296C8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802965E + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #1 + strb r0, [r1] + ldr r2, [r4, #0x54] + ldrb r1, [r2, #0x18] + subs r0, #5 + ands r0, r1 + strb r0, [r2, #0x18] + adds r0, r4, #0 + bl sub_080297F0 +_0802965E: + pop {r4, pc} + + thumb_func_start sub_08029660 +sub_08029660: @ 0x08029660 + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0xd1 + strh r1, [r0, #0x12] + ldr r2, _08029684 @ =gUnk_080CCC47 + ldrb r1, [r0, #0xa] + adds r1, r1, r2 + ldrb r2, [r1] + movs r1, #0xf + ands r2, r1 + ldrb r3, [r0, #0x1a] + movs r1, #0x10 + rsbs r1, r1, #0 + ands r1, r3 + orrs r1, r2 + strb r1, [r0, #0x1a] + bx lr + .align 2, 0 +_08029684: .4byte gUnk_080CCC47 + + thumb_func_start sub_08029688 +sub_08029688: @ 0x08029688 + push {lr} + adds r1, r0, #0 + ldr r0, [r1, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _0802969A + adds r0, r1, #0 + bl sub_0805E7BC +_0802969A: + pop {pc} + + thumb_func_start sub_0802969C +sub_0802969C: @ 0x0802969C + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r1, [r5, #0x15] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + beq _080296C4 + lsrs r4, r1, #4 + ldrb r0, [r5, #0x14] + cmp r4, r0 + beq _080296C4 + strb r4, [r5, #0x14] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08004260 + ldr r0, [r5, #0x54] + adds r1, r4, #4 + bl sub_08004260 +_080296C4: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080296C8 +sub_080296C8: @ 0x080296C8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldr r0, [r4, #0x54] + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_080296D8 +sub_080296D8: @ 0x080296D8 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r2, _08029764 @ =gUnk_03003F80 + movs r0, #0x41 + strb r0, [r2, #2] + ldr r0, [r2, #0x30] + movs r1, #0x11 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r2, #0x30] + ldr r0, _08029768 @ =gUnk_03001160 + mov ip, r0 + ldrb r0, [r0, #0x10] + movs r1, #0x80 + orrs r0, r1 + mov r1, ip + strb r0, [r1, #0x10] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r1, #0x20] + adds r1, #0x3d + movs r0, #0xa6 + strb r0, [r1] + movs r3, #0 + ldr r0, _0802976C @ =0x0000FFFE + mov r1, ip + strh r0, [r1, #0x36] + ldrb r0, [r1, #0x14] + lsls r0, r0, #2 + strb r0, [r1, #0x15] + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + mov r5, ip + adds r5, #0x29 + movs r1, #7 + ands r1, r0 + lsls r1, r1, #3 + ldrb r2, [r5] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5] + mov r0, ip + adds r0, #0x63 + strb r3, [r0] + movs r0, #0xa0 + lsls r0, r0, #1 + mov r1, ip + strh r0, [r1, #0x24] + movs r0, #5 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xf] + adds r2, r4, #0 + adds r2, #0x3b + ldrb r1, [r2] + movs r0, #3 + orrs r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bne _08029762 + movs r0, #0xf4 + strb r0, [r1] +_08029762: + pop {r4, r5, pc} + .align 2, 0 +_08029764: .4byte gUnk_03003F80 +_08029768: .4byte gUnk_03001160 +_0802976C: .4byte 0x0000FFFE + + thumb_func_start sub_08029770 +sub_08029770: @ 0x08029770 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x73 + bl sub_080ADF80 + cmp r0, #0 + beq _080297E8 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #0xd1 + strh r0, [r4, #0x12] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x18 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x82 + ldrb r1, [r0] + movs r0, #0xf + ands r1, r0 + ldrb r2, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1a] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x8d + strb r0, [r1] + ldr r0, _080297EC @ =gUnk_080FD260 + str r0, [r4, #0x48] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + ldr r2, [r4, #0x54] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + ldr r0, [r4, #0x54] + movs r1, #6 + bl sub_08004260 + adds r0, r4, #0 + bl sub_080A29BC +_080297E8: + pop {r4, pc} + .align 2, 0 +_080297EC: .4byte gUnk_080FD260 + + thumb_func_start sub_080297F0 +sub_080297F0: @ 0x080297F0 + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x8e + strb r0, [r1] + adds r0, r4, #0 + bl sub_080AE068 + ldr r0, _08029850 @ =0x00000143 + strh r0, [r4, #0x12] + ldr r1, _08029854 @ =gUnk_080CCC47 + ldrb r0, [r4, #0xa] + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #0xf + ands r1, r0 + ldrb r2, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1a] + adds r1, r4, #0 + adds r1, #0x60 + movs r0, #9 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #0x54 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 +_08029850: .4byte 0x00000143 +_08029854: .4byte gUnk_080CCC47 + + thumb_func_start sub_08029858 +sub_08029858: @ 0x08029858 + push {lr} + ldr r2, _0802986C @ =gUnk_080CCD44 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802986C: .4byte gUnk_080CCD44 + + thumb_func_start sub_08029870 +sub_08029870: @ 0x08029870 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _08029888 @ =gUnk_080CCD60 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_08029888: .4byte gUnk_080CCD60 + + thumb_func_start sub_0802988C +sub_0802988C: @ 0x0802988C + push {lr} + ldr r2, _080298A0 @ =gUnk_080CCD78 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080298A0: .4byte gUnk_080CCD78 + + thumb_func_start sub_080298A4 +sub_080298A4: @ 0x080298A4 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #1 + bne _08029970 + adds r0, r5, #0 + adds r0, #0x41 + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0x1e + bhi _08029948 + lsls r0, r1, #2 + ldr r1, _080298C8 @ =_080298CC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080298C8: .4byte _080298CC +_080298CC: @ jump table + .4byte _08029970 @ case 0 + .4byte _08029970 @ case 1 + .4byte _08029970 @ case 2 + .4byte _08029970 @ case 3 + .4byte _08029948 @ case 4 + .4byte _08029948 @ case 5 + .4byte _08029948 @ case 6 + .4byte _08029948 @ case 7 + .4byte _08029948 @ case 8 + .4byte _08029948 @ case 9 + .4byte _08029948 @ case 10 + .4byte _08029948 @ case 11 + .4byte _08029948 @ case 12 + .4byte _08029948 @ case 13 + .4byte _08029948 @ case 14 + .4byte _08029970 @ case 15 + .4byte _08029948 @ case 16 + .4byte _08029948 @ case 17 + .4byte _08029948 @ case 18 + .4byte _08029970 @ case 19 + .4byte _08029948 @ case 20 + .4byte _08029948 @ case 21 + .4byte _08029948 @ case 22 + .4byte _08029948 @ case 23 + .4byte _08029948 @ case 24 + .4byte _08029948 @ case 25 + .4byte _08029948 @ case 26 + .4byte _08029970 @ case 27 + .4byte _08029948 @ case 28 + .4byte _08029948 @ case 29 + .4byte _08029970 @ case 30 +_08029948: + movs r1, #0 + movs r4, #2 + strb r4, [r5, #0xc] + strb r1, [r5, #0xe] + adds r2, r5, #0 + adds r2, #0x3f + movs r0, #0x6b + strb r0, [r2] + adds r0, r5, #0 + adds r0, #0x77 + strb r1, [r0] + adds r0, r5, #0 + movs r1, #0x7f + bl sub_0801D2B4 + movs r0, #0xfe + bl sub_08004488 + ldr r0, [r5, #0x54] + strb r4, [r0, #0xc] +_08029970: + ldr r1, _0802997C @ =gUnk_080CCD60 + adds r0, r5, #0 + bl sub_0804AA30 + pop {r4, r5, pc} + .align 2, 0 +_0802997C: .4byte gUnk_080CCD60 + + thumb_func_start sub_08029980 +sub_08029980: @ 0x08029980 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xf] + cmp r0, #0 + beq _08029990 + subs r0, #1 + strb r0, [r1, #0xf] + b _08029996 +_08029990: + adds r0, r1, #0 + bl sub_0804A7D4 +_08029996: + pop {pc} + + thumb_func_start nullsub_14 +nullsub_14: @ 0x08029998 + bx lr + .align 2, 0 + + thumb_func_start sub_0802999C +sub_0802999C: @ 0x0802999C + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + ldr r0, _08029A90 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x43 + bhi _08029A8E + movs r0, #0x18 + movs r1, #1 + bl sub_0804AA60 + adds r4, r0, #0 + str r7, [r4, #0x50] + adds r0, r7, #0 + adds r1, r4, #0 + movs r2, #0 + movs r3, #5 + bl sub_0806FA48 + str r4, [r7, #0x54] + movs r0, #0x18 + movs r1, #2 + bl sub_0804AA60 + adds r5, r0, #0 + str r7, [r5, #0x50] + adds r0, r7, #0 + adds r1, r5, #0 + movs r2, #0 + movs r3, #4 + bl sub_0806FA48 + str r5, [r4, #0x54] + movs r0, #0x18 + movs r1, #3 + bl sub_0804AA60 + adds r4, r0, #0 + str r7, [r4, #0x50] + adds r0, r7, #0 + adds r1, r4, #0 + movs r2, #0 + movs r3, #3 + bl sub_0806FA48 + str r4, [r5, #0x54] + movs r0, #0x18 + movs r1, #4 + bl sub_0804AA60 + adds r5, r0, #0 + str r7, [r5, #0x50] + adds r0, r7, #0 + adds r1, r5, #0 + movs r2, #0 + movs r3, #2 + bl sub_0806FA48 + str r5, [r4, #0x54] + movs r0, #0x18 + movs r1, #5 + bl sub_0804AA60 + adds r6, r0, #0 + str r7, [r6, #0x50] + adds r0, r7, #0 + adds r1, r6, #0 + movs r2, #0 + movs r3, #1 + bl sub_0806FA48 + str r6, [r5, #0x54] + movs r0, #0x18 + movs r1, #6 + bl sub_0804AA60 + adds r4, r0, #0 + str r7, [r4, #0x54] + str r7, [r4, #0x50] + adds r0, r7, #0 + adds r1, r4, #0 + movs r2, #0 + movs r3, #0 + bl sub_0806FA48 + str r4, [r6, #0x54] + movs r4, #1 + strb r4, [r7, #0xc] + ldrb r1, [r7, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r7, #0x10] + bl sub_08000E50 + movs r1, #0x18 + ands r0, r1 + strb r0, [r7, #0x15] + movs r2, #0 + movs r0, #0xa0 + strh r0, [r7, #0x24] + movs r0, #0xff + strb r0, [r7, #0x14] + ldr r0, [r7, #0x30] + adds r0, #6 + str r0, [r7, #0x30] + str r7, [r7, #0x50] + adds r1, r7, #0 + adds r1, #0x74 + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r1] + adds r0, r7, #0 + adds r0, #0x75 + strb r2, [r0] + adds r0, #2 + strb r4, [r0] + adds r0, r7, #0 + bl sub_08029E0C + adds r0, r7, #0 + bl sub_08029EEC +_08029A8E: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08029A90: .4byte gUnk_03003DBC + + thumb_func_start sub_08029A94 +sub_08029A94: @ 0x08029A94 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0802A098 + pop {r4, pc} + + thumb_func_start sub_08029AA4 +sub_08029AA4: @ 0x08029AA4 + push {lr} + adds r1, r0, #0 + adds r0, #0x77 + ldrb r0, [r0] + cmp r0, #0 + beq _08029ADA + movs r0, #3 + strb r0, [r1, #0xc] + movs r0, #0x84 + lsls r0, r0, #1 + strh r0, [r1, #0x24] + adds r2, r1, #0 + adds r2, #0x3f + movs r0, #0x6a + strb r0, [r2] + adds r2, #0x3b + adds r0, #0xfe + strh r0, [r2] + subs r2, #5 + movs r0, #4 + strb r0, [r2] + adds r0, r1, #0 + bl sub_08029EEC + ldr r0, _08029ADC @ =0x0000019D + bl sub_08004488 +_08029ADA: + pop {pc} + .align 2, 0 +_08029ADC: .4byte 0x0000019D + + thumb_func_start sub_08029AE0 +sub_08029AE0: @ 0x08029AE0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0802A16C + adds r0, r4, #0 + bl sub_0802A098 + adds r1, r4, #0 + adds r1, #0x7a + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08029B28 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xa0 + strh r0, [r4, #0x24] + subs r1, #5 + movs r0, #0 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08029EEC + adds r0, r4, #0 + movs r1, #0x77 + bl sub_0801D2B4 + movs r0, #0xc1 + lsls r0, r0, #1 + bl sub_08004488 +_08029B28: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08029B2C +sub_08029B2C: @ 0x08029B2C + push {r4, lr} + adds r4, r0, #0 + bl sub_0802A14C + cmp r0, #0 + beq _08029B7A + adds r2, r4, #0 + adds r2, #0x86 + ldrb r0, [r2] + cmp r0, #0 + beq _08029B60 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08029B8A + adds r0, r4, #0 + movs r1, #0x48 + movs r2, #0 + bl sub_080A29AC + adds r0, r4, #0 + bl sub_0805E7BC + b _08029B8A +_08029B60: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r0, [r4, #0xa] + lsls r1, r0, #4 + subs r1, r1, r0 + movs r0, #0x5a + subs r0, r0, r1 + strb r0, [r4, #0xe] + movs r0, #1 + strb r0, [r2] + b _08029B8A +_08029B7A: + ldr r0, _08029B8C @ =gUnk_080CCD88 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_08029B8A: + pop {r4, pc} + .align 2, 0 +_08029B8C: .4byte gUnk_080CCD88 + + thumb_func_start sub_08029B90 +sub_08029B90: @ 0x08029B90 + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0802A058 + ldrb r0, [r4, #0xa] + cmp r0, #1 + bhi _08029BBA + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + b _08029BC2 +_08029BBA: + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 +_08029BC2: + pop {r4, pc} + + thumb_func_start sub_08029BC4 +sub_08029BC4: @ 0x08029BC4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_0802A18C + movs r0, #0x2e + ldrsh r5, [r4, r0] + movs r0, #0x32 + ldrsh r6, [r4, r0] + adds r0, r4, #0 + bl sub_08029FE4 + cmp r0, #0 + beq _08029BF2 + ldrb r0, [r4, #0xa] + movs r2, #4 + cmp r0, #1 + bhi _08029BE8 + movs r2, #0 +_08029BE8: + ldrb r1, [r4, #0x14] + adds r1, r1, r2 + adds r0, r4, #0 + bl sub_08004260 +_08029BF2: + movs r0, #0x2e + ldrsh r1, [r4, r0] + subs r1, r1, r5 + movs r0, #0x32 + ldrsh r2, [r4, r0] + subs r2, r2, r6 + adds r0, r4, #0 + bl sub_08029FB4 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08029C08 +sub_08029C08: @ 0x08029C08 + movs r1, #3 + strb r1, [r0, #0xc] + ldr r2, _08029C28 @ =gUnk_080CCDA0 + ldrb r1, [r0, #0xa] + adds r1, r1, r2 + ldrb r1, [r1] + strb r1, [r0, #0xe] + adds r2, r0, #0 + adds r2, #0x3f + movs r1, #0x6b + strb r1, [r2] + ldr r1, [r0, #0x54] + movs r0, #2 + strb r0, [r1, #0xc] + bx lr + .align 2, 0 +_08029C28: .4byte gUnk_080CCDA0 + + thumb_func_start sub_08029C2C +sub_08029C2C: @ 0x08029C2C + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08029C4E + movs r0, #4 + strb r0, [r1, #0xc] + adds r0, r1, #0 + movs r1, #0x7f + bl sub_0801D2B4 + movs r0, #0x6c + bl sub_08004488 +_08029C4E: + pop {pc} + + thumb_func_start sub_08029C50 +sub_08029C50: @ 0x08029C50 + push {lr} + adds r1, r0, #0 + ldr r0, [r1, #0x50] + adds r0, #0x77 + ldrb r0, [r0] + cmp r0, #0 + beq _08029C68 + movs r0, #5 + strb r0, [r1, #0xc] + adds r1, #0x3f + movs r0, #0x6a + strb r0, [r1] +_08029C68: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08029C6C +sub_08029C6C: @ 0x08029C6C + push {r4, lr} + adds r4, r0, #0 + bl sub_0802A18C + adds r0, r4, #0 + bl sub_08029BC4 + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #3 + beq _08029C90 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0x77 + bl sub_0801D2B4 + b _08029C96 +_08029C90: + adds r0, r4, #0 + bl sub_0802A16C +_08029C96: + pop {r4, pc} + + thumb_func_start sub_08029C98 +sub_08029C98: @ 0x08029C98 + push {r4, lr} + adds r4, r0, #0 + bl sub_0802A14C + cmp r0, #0 + beq _08029CB6 + adds r0, r4, #0 + movs r1, #0x48 + movs r2, #0 + bl sub_080A29AC + adds r0, r4, #0 + bl sub_0805E7BC + b _08029CC6 +_08029CB6: + ldr r0, _08029CC8 @ =gUnk_080CCDA8 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_08029CC6: + pop {r4, pc} + .align 2, 0 +_08029CC8: .4byte gUnk_080CCDA8 + + thumb_func_start sub_08029CCC +sub_08029CCC: @ 0x08029CCC + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0802A058 + adds r0, r4, #0 + movs r1, #8 + bl sub_08004260 + pop {r4, pc} + + thumb_func_start sub_08029CF0 +sub_08029CF0: @ 0x08029CF0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08029FE4 + cmp r0, #0 + beq _08029D06 + ldrb r1, [r4, #0x14] + adds r1, #8 + adds r0, r4, #0 + bl sub_08004260 +_08029D06: + pop {r4, pc} + + thumb_func_start sub_08029D08 +sub_08029D08: @ 0x08029D08 + movs r1, #3 + strb r1, [r0, #0xc] + movs r1, #0x47 + strb r1, [r0, #0xe] + bx lr + .align 2, 0 + + thumb_func_start sub_08029D14 +sub_08029D14: @ 0x08029D14 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08029D42 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08029D70 + ldrb r1, [r4, #0x14] + adds r1, #0xc + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + movs r1, #0x7f + bl sub_0801D2B4 + movs r0, #0x6c + bl sub_08004488 + b _08029D70 +_08029D42: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08029D70 + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x6c + strb r0, [r1] + ldr r0, _08029D74 @ =gUnk_080FD298 + str r0, [r4, #0x48] + movs r0, #0x6b + bl sub_08004488 +_08029D70: + pop {r4, pc} + .align 2, 0 +_08029D74: .4byte gUnk_080FD298 + + thumb_func_start sub_08029D78 +sub_08029D78: @ 0x08029D78 + push {r4, lr} + adds r4, r0, #0 + bl sub_0802A0F8 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08029DA6 + movs r0, #5 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x6a + strb r0, [r1] + ldr r0, _08029DA8 @ =gUnk_080FD2A0 + str r0, [r4, #0x48] + ldrb r1, [r4, #0x14] + adds r1, #0x10 + adds r0, r4, #0 + bl sub_08004260 +_08029DA6: + pop {r4, pc} + .align 2, 0 +_08029DA8: .4byte gUnk_080FD2A0 + + thumb_func_start sub_08029DAC +sub_08029DAC: @ 0x08029DAC + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08029DD8 + movs r0, #6 + strb r0, [r4, #0xc] + ldr r0, [r4, #0x50] + adds r0, #0x77 + movs r1, #1 + strb r1, [r0] + ldrb r1, [r4, #0x14] + adds r1, #8 + adds r0, r4, #0 + bl sub_08004260 +_08029DD8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08029DDC +sub_08029DDC: @ 0x08029DDC + movs r1, #7 + strb r1, [r0, #0xc] + bx lr + .align 2, 0 + + thumb_func_start sub_08029DE4 +sub_08029DE4: @ 0x08029DE4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08029CF0 + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #3 + beq _08029E02 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0x77 + bl sub_0801D2B4 + b _08029E08 +_08029E02: + adds r0, r4, #0 + bl sub_0802A16C +_08029E08: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08029E0C +sub_08029E0C: @ 0x08029E0C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + adds r5, r0, #0 + ldrb r0, [r5, #0x15] + lsrs r0, r0, #3 + lsls r1, r0, #1 + adds r1, r1, r0 + ldr r0, _08029EE0 @ =gUnk_080CCDC8 + adds r1, r1, r0 + str r1, [sp] + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + lsls r1, r1, #1 + subs r1, #1 + mov sl, r1 + bl sub_08000E50 + adds r1, r0, #0 + movs r0, #0xf + ands r0, r1 + movs r1, #3 + bl __modsi3 + mov sb, r0 + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r3, _08029EE4 @ =gUnk_03000BF0 + ldrh r1, [r3, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + mov r8, r0 + movs r2, #0x3f + ands r0, r2 + mov r8, r0 + movs r1, #0x32 + ldrsh r0, [r5, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + mov r1, r8 + orrs r1, r0 + mov r8, r1 + movs r7, #0 +_08029E72: + ldr r0, [sp] + add r0, sb + ldrb r4, [r0] + lsrs r0, r4, #3 + lsls r0, r0, #1 + ldr r1, _08029EE8 @ =gUnk_080B4488 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + add r0, r8 + adds r1, r5, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002E0 + adds r6, r5, #0 + adds r6, #0x74 + cmp r0, #0 + bne _08029EA6 + str r4, [sp, #4] + ldrb r1, [r5, #0x15] + ldrb r0, [r6] + subs r0, r1, r0 + subs r1, r4, r1 + cmp r0, r1 + bne _08029EBA +_08029EA6: + mov r0, sb + add r0, sl + adds r0, #3 + movs r1, #3 + bl __modsi3 + mov sb, r0 + adds r7, #1 + cmp r7, #2 + bls _08029E72 +_08029EBA: + cmp r7, #3 + bne _08029EC0 + ldr r4, [sp, #4] +_08029EC0: + ldrb r1, [r5, #0x15] + ldrb r0, [r6] + cmp r0, r1 + beq _08029ECA + strb r1, [r6] +_08029ECA: + strb r4, [r5, #0x15] + adds r0, r5, #0 + bl sub_08029F0C + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08029EE0: .4byte gUnk_080CCDC8 +_08029EE4: .4byte gUnk_03000BF0 +_08029EE8: .4byte gUnk_080B4488 + + thumb_func_start sub_08029EEC +sub_08029EEC: @ 0x08029EEC + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #0x15] + adds r2, r3, #0 + adds r2, #0x75 + lsrs r0, r0, #3 + ldrb r2, [r2] + adds r1, r0, r2 + ldrb r0, [r3, #0x14] + cmp r1, r0 + beq _08029F0A + strb r1, [r3, #0x14] + adds r0, r3, #0 + bl sub_080042AC +_08029F0A: + pop {pc} + + thumb_func_start sub_08029F0C +sub_08029F0C: @ 0x08029F0C + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0x15] + lsrs r0, r0, #3 + cmp r0, #1 + beq _08029F30 + cmp r0, #1 + bgt _08029F22 + cmp r0, #0 + beq _08029F2C + b _08029F44 +_08029F22: + cmp r0, #2 + beq _08029F36 + cmp r0, #3 + beq _08029F3C + b _08029F44 +_08029F2C: + ldrh r0, [r1, #0x32] + b _08029F3E +_08029F30: + ldrh r0, [r1, #0x2e] + adds r0, #0x10 + b _08029F40 +_08029F36: + ldrh r0, [r1, #0x32] + adds r0, #0x10 + b _08029F40 +_08029F3C: + ldrh r0, [r1, #0x2e] +_08029F3E: + subs r0, #0x10 +_08029F40: + adds r1, #0x78 + strh r0, [r1] +_08029F44: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08029F48 +sub_08029F48: @ 0x08029F48 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0x15] + lsrs r0, r0, #3 + cmp r0, #1 + beq _08029F78 + cmp r0, #1 + bgt _08029F5E + cmp r0, #0 + beq _08029F68 + b _08029FB0 +_08029F5E: + cmp r0, #2 + beq _08029F88 + cmp r0, #3 + beq _08029F9C + b _08029FB0 +_08029F68: + movs r0, #0x32 + ldrsh r1, [r2, r0] + adds r0, r2, #0 + adds r0, #0x78 + ldrh r0, [r0] + cmp r1, r0 + bgt _08029FB0 + b _08029F96 +_08029F78: + movs r0, #0x2e + ldrsh r1, [r2, r0] + adds r0, r2, #0 + adds r0, #0x78 + ldrh r0, [r0] + cmp r1, r0 + blt _08029FB0 + b _08029FAA +_08029F88: + movs r0, #0x32 + ldrsh r1, [r2, r0] + adds r0, r2, #0 + adds r0, #0x78 + ldrh r0, [r0] + cmp r1, r0 + blt _08029FB0 +_08029F96: + strh r0, [r2, #0x32] + movs r0, #1 + b _08029FB2 +_08029F9C: + movs r0, #0x2e + ldrsh r1, [r2, r0] + adds r0, r2, #0 + adds r0, #0x78 + ldrh r0, [r0] + cmp r1, r0 + bgt _08029FB0 +_08029FAA: + strh r0, [r2, #0x2e] + movs r0, #1 + b _08029FB2 +_08029FB0: + movs r0, #0 +_08029FB2: + pop {pc} + + thumb_func_start sub_08029FB4 +sub_08029FB4: @ 0x08029FB4 + push {r4, r5, r6, lr} + adds r5, r1, #0 + adds r4, r2, #0 + ldr r6, [r0, #0x54] + adds r6, #0x78 + ldr r0, [r0, #0x50] + adds r0, #0x7e + ldrb r0, [r0] + movs r1, #0xe + bl __modsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r6, r6, r0 + adds r5, #8 + movs r0, #0xf + ands r5, r0 + adds r4, #8 + ands r4, r0 + lsls r4, r4, #4 + orrs r5, r4 + strb r5, [r6] + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08029FE4 +sub_08029FE4: @ 0x08029FE4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r5, #0 + adds r4, #0x78 + ldr r0, [r5, #0x50] + adds r0, #0x7e + ldrb r0, [r0] + adds r0, #1 + movs r1, #0xe + bl __modsi3 + adds r4, r4, r0 + ldrb r1, [r4] + movs r0, #0xf + ands r0, r1 + subs r0, #8 + lsrs r1, r1, #4 + subs r1, #8 + lsls r1, r1, #0x18 + lsls r0, r0, #0x18 + asrs r4, r0, #0x18 + ldrh r0, [r5, #0x2e] + adds r0, r0, r4 + strh r0, [r5, #0x2e] + lsrs r6, r1, #0x18 + asrs r1, r1, #0x18 + ldrh r0, [r5, #0x32] + adds r1, r1, r0 + strh r1, [r5, #0x32] + adds r0, r5, #0 + bl sub_08004274 + movs r1, #0xff + cmp r4, #0 + beq _0802A032 + movs r1, #3 + cmp r4, #0 + ble _0802A032 + movs r1, #1 +_0802A032: + lsls r0, r6, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _0802A042 + movs r1, #0 + cmp r0, #0 + ble _0802A042 + movs r1, #2 +_0802A042: + cmp r1, #0xff + beq _0802A052 + ldrb r0, [r5, #0x14] + cmp r1, r0 + beq _0802A052 + strb r1, [r5, #0x14] + movs r0, #1 + b _0802A054 +_0802A052: + movs r0, #0 +_0802A054: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0802A058 +sub_0802A058: @ 0x0802A058 + adds r2, r0, #0 + adds r0, #0x78 + movs r1, #0x88 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + bx lr + .align 2, 0 + + thumb_func_start sub_0802A098 +sub_0802A098: @ 0x0802A098 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x7e + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + ldrb r0, [r5] + movs r1, #0xe + bl __modsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _0802A0B8 + strb r0, [r5] +_0802A0B8: + movs r0, #0x2e + ldrsh r5, [r4, r0] + movs r0, #0x32 + ldrsh r6, [r4, r0] + adds r0, r4, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_08029F48 + cmp r0, #0 + beq _0802A0E4 + adds r0, r4, #0 + bl sub_08029E0C + adds r0, r4, #0 + bl sub_08029EEC + movs r0, #0x82 + lsls r0, r0, #1 + bl sub_08004488 +_0802A0E4: + movs r0, #0x2e + ldrsh r1, [r4, r0] + subs r1, r1, r5 + movs r0, #0x32 + ldrsh r2, [r4, r0] + subs r2, r2, r6 + adds r0, r4, #0 + bl sub_08029FB4 + pop {r4, r5, r6, pc} + + thumb_func_start sub_0802A0F8 +sub_0802A0F8: @ 0x0802A0F8 + push {r4, lr} + adds r3, r0, #0 + adds r0, #0x45 + ldrb r4, [r0] + cmp r4, #0 + beq _0802A134 + subs r0, #4 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802A14A + adds r1, r3, #0 + adds r1, #0x3d + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _0802A14A + adds r2, r3, #0 + movs r3, #0 + adds r4, r1, #0 +_0802A122: + ldr r2, [r2, #0x54] + ldrb r0, [r4] + adds r1, r2, #0 + adds r1, #0x3d + strb r0, [r1] + adds r3, #1 + cmp r3, #5 + bls _0802A122 + b _0802A14A +_0802A134: + ldr r2, [r3, #0x50] + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] + ldr r0, [r3, #0x50] + adds r0, #0x45 + strb r4, [r0] + ldr r1, [r3, #0x50] + movs r0, #0x69 + strb r0, [r1, #0xf] +_0802A14A: + pop {r4, pc} + + thumb_func_start sub_0802A14C +sub_0802A14C: @ 0x0802A14C + push {lr} + adds r1, r0, #0 + movs r2, #0 + ldr r0, [r1, #0x50] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _0802A166 + adds r0, r1, #0 + adds r0, #0x86 + ldrb r0, [r0] + cmp r0, #0 + beq _0802A168 +_0802A166: + movs r2, #1 +_0802A168: + adds r0, r2, #0 + pop {pc} + + thumb_func_start sub_0802A16C +sub_0802A16C: @ 0x0802A16C + push {lr} + ldr r3, _0802A188 @ =gUnk_080CCDD4 + ldr r1, [r0, #0x50] + adds r1, #0x7a + ldrh r1, [r1] + lsrs r1, r1, #2 + movs r2, #3 + ands r1, r2 + lsls r1, r1, #1 + adds r1, r1, r3 + ldrh r1, [r1] + bl sub_0801D2B4 + pop {pc} + .align 2, 0 +_0802A188: .4byte gUnk_080CCDD4 + + thumb_func_start sub_0802A18C +sub_0802A18C: @ 0x0802A18C + push {lr} + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802A234 + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x1e + bhi _0802A22C + lsls r0, r0, #2 + ldr r1, _0802A1AC @ =_0802A1B0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802A1AC: .4byte _0802A1B0 +_0802A1B0: @ jump table + .4byte _0802A234 @ case 0 + .4byte _0802A234 @ case 1 + .4byte _0802A234 @ case 2 + .4byte _0802A234 @ case 3 + .4byte _0802A22C @ case 4 + .4byte _0802A22C @ case 5 + .4byte _0802A22C @ case 6 + .4byte _0802A22C @ case 7 + .4byte _0802A22C @ case 8 + .4byte _0802A22C @ case 9 + .4byte _0802A22C @ case 10 + .4byte _0802A22C @ case 11 + .4byte _0802A22C @ case 12 + .4byte _0802A22C @ case 13 + .4byte _0802A22C @ case 14 + .4byte _0802A234 @ case 15 + .4byte _0802A22C @ case 16 + .4byte _0802A22C @ case 17 + .4byte _0802A22C @ case 18 + .4byte _0802A234 @ case 19 + .4byte _0802A22C @ case 20 + .4byte _0802A22C @ case 21 + .4byte _0802A22C @ case 22 + .4byte _0802A22C @ case 23 + .4byte _0802A22C @ case 24 + .4byte _0802A22C @ case 25 + .4byte _0802A22C @ case 26 + .4byte _0802A234 @ case 27 + .4byte _0802A22C @ case 28 + .4byte _0802A22C @ case 29 + .4byte _0802A234 @ case 30 +_0802A22C: + movs r0, #0x97 + lsls r0, r0, #1 + bl sub_08004488 +_0802A234: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0802A238 +sub_0802A238: @ 0x0802A238 + push {lr} + ldr r2, _0802A24C @ =gUnk_080CD030 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802A24C: .4byte gUnk_080CD030 + + thumb_func_start sub_0802A250 +sub_0802A250: @ 0x0802A250 + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #0 + movs r0, #1 + strb r0, [r5, #0xc] + strb r1, [r5, #0xe] + ldr r0, _0802A2A8 @ =0xFFFD0000 + str r0, [r5, #0x20] + bl sub_08000E50 + ldr r1, _0802A2AC @ =gUnk_080CD03C + movs r4, #3 + ands r0, r4 + adds r0, r0, r1 + ldrb r0, [r0] + strh r0, [r5, #0x24] + bl sub_08000E50 + ldr r1, _0802A2B0 @ =gUnk_080CD040 + ands r0, r4 + adds r0, r0, r1 + ldrb r0, [r0] + adds r0, #0x18 + strb r0, [r5, #0x15] + adds r1, r5, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r5, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r5, #0 + bl sub_08016A04 + movs r0, #0x66 + movs r1, #0 + movs r2, #0 + bl sub_080A2960 + cmp r0, #0 + beq _0802A2A6 + str r5, [r0, #0x50] +_0802A2A6: + pop {r4, r5, pc} + .align 2, 0 +_0802A2A8: .4byte 0xFFFD0000 +_0802A2AC: .4byte gUnk_080CD03C +_0802A2B0: .4byte gUnk_080CD040 + + thumb_func_start sub_0802A2B4 +sub_0802A2B4: @ 0x0802A2B4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xa0 + lsls r1, r1, #6 + bl sub_08003FC4 + cmp r0, #0 + bne _0802A2DC + movs r0, #2 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x84 + bl sub_08004488 + b _0802A2E2 +_0802A2DC: + adds r0, r4, #0 + bl sub_0806F69C +_0802A2E2: + adds r0, r4, #0 + bl sub_0802A39C + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #8 + rsbs r0, r0, #0 + cmp r1, r0 + ble _0802A2FA + adds r0, r4, #0 + bl sub_0802A334 +_0802A2FA: + pop {r4, pc} + + thumb_func_start sub_0802A2FC +sub_0802A2FC: @ 0x0802A2FC + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802A31A + adds r0, r4, #0 + bl sub_0805E7BC + b _0802A332 +_0802A31A: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0802A32C + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + b _0802A332 +_0802A32C: + adds r0, r4, #0 + bl sub_0802A39C +_0802A332: + pop {r4, pc} + + thumb_func_start sub_0802A334 +sub_0802A334: @ 0x0802A334 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0802A380 @ =gUnk_03000BF0 + movs r3, #0xa + ldrsh r0, [r2, r3] + ldr r3, _0802A384 @ =gUnk_03000F50 + subs r1, r1, r0 + ldrh r5, [r3, #0x16] + adds r1, r1, r5 + asrs r1, r1, #3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + movs r5, #0xc + ldrsh r2, [r2, r5] + subs r0, r0, r2 + ldrh r3, [r3, #0x18] + adds r0, r0, r3 + asrs r0, r0, #3 + ldr r3, _0802A388 @ =gUnk_02001A40 + movs r2, #0x1f + ands r1, r2 + ands r0, r2 + lsls r0, r0, #5 + adds r1, r1, r0 + movs r0, #0x80 + lsls r0, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #1 + adds r1, r1, r3 + ldrh r0, [r1] + cmp r0, #0 + beq _0802A38C + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + b _0802A392 + .align 2, 0 +_0802A380: .4byte gUnk_03000BF0 +_0802A384: .4byte gUnk_03000F50 +_0802A388: .4byte gUnk_02001A40 +_0802A38C: + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #1 +_0802A392: + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 + pop {r4, r5, pc} + + thumb_func_start sub_0802A39C +sub_0802A39C: @ 0x0802A39C + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r4, _0802A3EC @ =gUnk_03001160 + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0802A3F0 @ =gUnk_03000BF0 + movs r3, #0xa + ldrsh r0, [r2, r3] + ldr r3, _0802A3F4 @ =gUnk_03000F50 + subs r1, r1, r0 + ldrh r6, [r3, #0x16] + adds r1, r1, r6 + asrs r1, r1, #3 + movs r6, #0x32 + ldrsh r0, [r4, r6] + movs r4, #0xc + ldrsh r2, [r2, r4] + subs r0, r0, r2 + ldrh r3, [r3, #0x18] + adds r0, r0, r3 + subs r0, #0xa + asrs r0, r0, #3 + ldr r3, _0802A3F8 @ =gUnk_02001A40 + movs r2, #0x1f + ands r1, r2 + ands r0, r2 + lsls r0, r0, #5 + adds r1, r1, r0 + movs r6, #0x80 + lsls r6, r6, #3 + adds r1, r1, r6 + lsls r1, r1, #1 + adds r1, r1, r3 + ldrh r0, [r1] + cmp r0, #0 + beq _0802A3FC + ldrb r1, [r5, #0x10] + movs r0, #0x7f + ands r0, r1 + b _0802A402 + .align 2, 0 +_0802A3EC: .4byte gUnk_03001160 +_0802A3F0: .4byte gUnk_03000BF0 +_0802A3F4: .4byte gUnk_03000F50 +_0802A3F8: .4byte gUnk_02001A40 +_0802A3FC: + ldrb r1, [r5, #0x10] + movs r0, #0x80 + orrs r0, r1 +_0802A402: + strb r0, [r5, #0x10] + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0802A408 +sub_0802A408: @ 0x0802A408 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _0802A430 @ =gUnk_080CD07C + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, r5, pc} + .align 2, 0 +_0802A430: .4byte gUnk_080CD07C + + thumb_func_start sub_0802A434 +sub_0802A434: @ 0x0802A434 + push {r4, lr} + adds r4, r0, #0 + bl sub_0802A78C + ldr r1, _0802A450 @ =gUnk_080CD094 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_0802A450: .4byte gUnk_080CD094 + + thumb_func_start sub_0802A454 +sub_0802A454: @ 0x0802A454 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0x75 + beq _0802A4A8 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r0, [r0] + movs r2, #0x7f + adds r1, r2, #0 + ands r1, r0 + cmp r1, #0 + beq _0802A474 + cmp r1, #0x1e + bne _0802A4A8 +_0802A474: + movs r0, #5 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + adds r0, r2, #0 + ands r0, r1 + strb r0, [r4, #0x10] + ldr r1, _0802A4D8 @ =gUnk_03001160 + ldrh r0, [r1, #0x2e] + adds r2, r4, #0 + adds r2, #0x7e + strh r0, [r2] + ldrh r2, [r1, #0x32] + adds r0, r4, #0 + adds r0, #0x80 + strh r2, [r0] + ldrh r0, [r1, #0x36] + adds r1, r4, #0 + adds r1, #0x82 + strh r0, [r1] + ldrb r0, [r4, #0xc] + cmp r0, #3 + beq _0802A4A8 + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_0802A4A8: + adds r2, r4, #0 + adds r2, #0x42 + ldrb r0, [r2] + adds r1, r0, #0 + cmp r1, #0 + beq _0802A4BC + cmp r1, #4 + bls _0802A4BC + subs r0, #4 + strb r0, [r2] +_0802A4BC: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0802A4CE + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0802A4CE: + ldr r1, _0802A4DC @ =gUnk_080CD07C + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_0802A4D8: .4byte gUnk_03001160 +_0802A4DC: .4byte gUnk_080CD07C + + thumb_func_start nullsub_142 +nullsub_142: @ 0x0802A4E0 + bx lr + .align 2, 0 + + thumb_func_start sub_0802A4E4 +sub_0802A4E4: @ 0x0802A4E4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + bl sub_08000E50 + adds r1, r4, #0 + adds r1, #0x7d + strb r0, [r1] + ldrb r1, [r4, #0xb] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r1, r4, #0 + adds r1, #0x7a + strh r0, [r1] + ldrb r1, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x7c + strb r1, [r0] + ldrb r1, [r4, #0xe] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r1, r4, #0 + adds r1, #0x78 + strh r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + bl sub_0802A7D0 + pop {r4, pc} + + thumb_func_start sub_0802A534 +sub_0802A534: @ 0x0802A534 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + cmp r0, #0 + beq _0802A548 + subs r0, #1 + strh r0, [r1] + b _0802A5B0 +_0802A548: + adds r0, r4, #0 + adds r0, #0x7a + ldrh r0, [r0] + cmp r0, #0 + bne _0802A5B0 + movs r0, #1 + bl sub_08049DF4 + adds r2, r0, #0 + cmp r2, #0 + beq _0802A5B0 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x5a + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrh r0, [r2, #0x2e] + strh r0, [r4, #0x2e] + ldrh r0, [r2, #0x32] + strh r0, [r4, #0x32] + ldr r0, _0802A5B4 @ =0x0000FF80 + strh r0, [r4, #0x36] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0x18] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x20 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0802A7D0 +_0802A5B0: + pop {r4, pc} + .align 2, 0 +_0802A5B4: .4byte 0x0000FF80 + + thumb_func_start sub_0802A5B8 +sub_0802A5B8: @ 0x0802A5B8 + push {r4, lr} + adds r4, r0, #0 + bl sub_0802A7D0 + ldrb r0, [r4, #0xe] + adds r2, r0, #0 + cmp r2, #0 + beq _0802A5E8 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802A60E + ldr r0, _0802A5E4 @ =0x0000012D + bl sub_08004488 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + b _0802A60E + .align 2, 0 +_0802A5E4: .4byte 0x0000012D +_0802A5E8: + ldrh r0, [r4, #0x36] + adds r0, #3 + strh r0, [r4, #0x36] + lsls r0, r0, #0x10 + cmp r0, #0 + blt _0802A60E + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #7 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + strh r2, [r4, #0x36] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_0802A60E: + pop {r4, pc} + + thumb_func_start sub_0802A610 +sub_0802A610: @ 0x0802A610 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0802A7D0 + adds r3, r4, #0 + adds r3, #0x5a + ldrb r1, [r3] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + beq _0802A63A + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + b _0802A64C +_0802A63A: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0802A64C + strb r2, [r3] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x75 + strb r0, [r1] +_0802A64C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802A650 +sub_0802A650: @ 0x0802A650 + push {r4, lr} + adds r4, r0, #0 + bl sub_0802A7D0 + ldrh r0, [r4, #0x36] + subs r0, #2 + strh r0, [r4, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0xa0 + rsbs r1, r1, #0 + cmp r0, r1 + bge _0802A69A + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x74 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x7c + ldrb r1, [r0] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r1, r4, #0 + adds r1, #0x78 + strh r0, [r1] +_0802A69A: + pop {r4, pc} + + thumb_func_start sub_0802A69C +sub_0802A69C: @ 0x0802A69C + push {r4, lr} + adds r4, r0, #0 + bl sub_0802A7D0 + ldr r2, _0802A6E4 @ =gUnk_03003F80 + ldrb r1, [r2, #0xa] + movs r0, #0x80 + orrs r1, r0 + strb r1, [r2, #0xa] + ldrb r1, [r2, #0x1a] + orrs r0, r1 + strb r0, [r2, #0x1a] + ldr r1, _0802A6E8 @ =gUnk_03001160 + adds r0, r4, #0 + adds r0, #0x7e + ldrh r0, [r0] + strh r0, [r1, #0x2e] + adds r0, r4, #0 + adds r0, #0x80 + ldrh r0, [r0] + strh r0, [r1, #0x32] + adds r0, r4, #0 + adds r0, #0x82 + ldrh r0, [r0] + strh r0, [r1, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldrh r2, [r4, #0x36] + movs r3, #0x36 + ldrsh r1, [r4, r3] + cmp r0, r1 + beq _0802A6F0 + cmp r0, r1 + bge _0802A6EC + subs r0, r2, #1 + b _0802A6EE + .align 2, 0 +_0802A6E4: .4byte gUnk_03003F80 +_0802A6E8: .4byte gUnk_03001160 +_0802A6EC: + adds r0, r2, #1 +_0802A6EE: + strh r0, [r4, #0x36] +_0802A6F0: + adds r0, r4, #0 + bl sub_08004274 + adds r3, r4, #0 + adds r3, #0x5a + ldrb r1, [r3] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + beq _0802A712 + movs r0, #6 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + b _0802A72E +_0802A712: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0802A72E + strb r2, [r3] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #3 + strb r0, [r1] + ldr r2, _0802A730 @ =gUnk_03001160 + ldrb r1, [r2, #0x18] + subs r0, #7 + ands r0, r1 + strb r0, [r2, #0x18] +_0802A72E: + pop {r4, pc} + .align 2, 0 +_0802A730: .4byte gUnk_03001160 + + thumb_func_start sub_0802A734 +sub_0802A734: @ 0x0802A734 + push {r4, lr} + adds r4, r0, #0 + bl sub_0802A7D0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802A768 + bl sub_0805E5A8 + ldr r1, _0802A760 @ =gUnk_0813AB1C + ldr r0, _0802A764 @ =gUnk_02033A90 + ldrb r0, [r0, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl sub_08080840 + b _0802A780 + .align 2, 0 +_0802A760: .4byte gUnk_0813AB1C +_0802A764: .4byte gUnk_02033A90 +_0802A768: + ldr r0, [r4, #0x34] + ldr r1, _0802A784 @ =0xFFFE0000 + adds r0, r0, r1 + str r0, [r4, #0x34] + ldr r1, _0802A788 @ =gUnk_03003F80 + ldrb r0, [r1, #0xa] + movs r2, #0x80 + orrs r0, r2 + strb r0, [r1, #0xa] + ldrb r0, [r1, #0x1a] + orrs r0, r2 + strb r0, [r1, #0x1a] +_0802A780: + pop {r4, pc} + .align 2, 0 +_0802A784: .4byte 0xFFFE0000 +_0802A788: .4byte gUnk_03003F80 + + thumb_func_start sub_0802A78C +sub_0802A78C: @ 0x0802A78C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + beq _0802A7CC + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0802A7BC + adds r0, r4, #0 + adds r0, #0x78 + ldrh r0, [r0] + cmp r0, #0 + bne _0802A7CC + adds r1, r4, #0 + adds r1, #0x7a + ldrh r0, [r1] + cmp r0, #0 + beq _0802A7CC + subs r0, #1 + strh r0, [r1] + b _0802A7CC +_0802A7BC: + ldrb r0, [r4, #0xb] + lsls r1, r0, #4 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, #1 + adds r0, r4, #0 + adds r0, #0x7a + strh r1, [r0] +_0802A7CC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802A7D0 +sub_0802A7D0: @ 0x0802A7D0 + push {r4, lr} + ldr r3, _0802A800 @ =gUnk_080CD0B0 + movs r1, #0x7d + adds r1, r1, r0 + mov ip, r1 + ldrb r1, [r1] + adds r2, r1, #1 + mov r4, ip + strb r2, [r4] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x1b + movs r2, #7 + ands r1, r2 + adds r1, r1, r3 + movs r2, #0 + ldrsb r2, [r1, r2] + movs r1, #0x80 + lsls r1, r1, #1 + adds r2, r2, r1 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C + pop {r4, pc} + .align 2, 0 +_0802A800: .4byte gUnk_080CD0B0 + + thumb_func_start sub_0802A804 +sub_0802A804: @ 0x0802A804 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xa] + cmp r0, #2 + bne _0802A830 + adds r0, r5, #0 + bl sub_080012DC + adds r1, r0, #0 + cmp r1, #0 + beq _0802A830 + ldr r0, _0802A82C @ =0x080012C8 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r5, #0 + bl _call_via_r1 + b _0802A844 + .align 2, 0 +_0802A82C: .4byte 0x080012C8 +_0802A830: + ldr r4, _0802A848 @ =gUnk_080CD0F0 + adds r0, r5, #0 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 +_0802A844: + pop {r4, r5, pc} + .align 2, 0 +_0802A848: .4byte gUnk_080CD0F0 + + thumb_func_start sub_0802A84C +sub_0802A84C: @ 0x0802A84C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #2 + beq _0802A878 + cmp r0, #3 + beq _0802A894 + ldr r0, _0802A874 @ =gUnk_080CD108 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0802AD54 + b _0802A8A4 + .align 2, 0 +_0802A874: .4byte gUnk_080CD108 +_0802A878: + ldr r0, _0802A890 @ =gUnk_080CD120 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0802B048 + b _0802A8A4 + .align 2, 0 +_0802A890: .4byte gUnk_080CD120 +_0802A894: + ldr r0, _0802A8A8 @ =gUnk_080CD134 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_0802A8A4: + pop {r4, pc} + .align 2, 0 +_0802A8A8: .4byte gUnk_080CD134 + + thumb_func_start sub_0802A8AC +sub_0802A8AC: @ 0x0802A8AC + push {lr} + adds r1, r0, #0 + adds r2, r1, #0 + adds r2, #0x81 + movs r0, #0 + strb r0, [r2] + ldrb r0, [r1, #0xa] + cmp r0, #1 + bhi _0802A8C6 + adds r0, r1, #0 + movs r1, #0 + bl sub_08004260 +_0802A8C6: + pop {pc} + + thumb_func_start sub_0802A8C8 +sub_0802A8C8: @ 0x0802A8C8 + push {lr} + ldr r2, _0802A8DC @ =gUnk_080CD140 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802A8DC: .4byte gUnk_080CD140 + + thumb_func_start sub_0802A8E0 +sub_0802A8E0: @ 0x0802A8E0 + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x3c + strb r1, [r0, #0x1d] + bx lr + .align 2, 0 + + thumb_func_start sub_0802A8EC +sub_0802A8EC: @ 0x0802A8EC + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_0802A8F4 +sub_0802A8F4: @ 0x0802A8F4 + push {lr} + bl sub_0806F3E4 + pop {pc} + + thumb_func_start sub_0802A8FC +sub_0802A8FC: @ 0x0802A8FC + push {lr} + adds r2, r0, #0 + ldr r0, _0802A914 @ =gUnk_03003F80 + ldrb r0, [r0, #0x1c] + movs r1, #0xf + ands r1, r0 + cmp r1, #0 + bne _0802A912 + adds r0, r2, #0 + adds r0, #0x45 + strb r1, [r0] +_0802A912: + pop {pc} + .align 2, 0 +_0802A914: .4byte gUnk_03003F80 + + thumb_func_start nullsub_143 +nullsub_143: @ 0x0802A918 + bx lr + .align 2, 0 + + thumb_func_start sub_0802A91C +sub_0802A91C: @ 0x0802A91C + adds r0, #0x45 + movs r1, #0 + strb r1, [r0] + bx lr + + thumb_func_start sub_0802A924 +sub_0802A924: @ 0x0802A924 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + movs r5, #0 + movs r6, #1 + movs r0, #1 + strb r0, [r7, #0xc] + strb r5, [r7, #0xd] + strb r5, [r7, #0xe] + strb r5, [r7, #0xf] + ldr r0, _0802A9A0 @ =gUnk_080CD16C + str r0, [r7, #0x48] + movs r4, #0 + ldr r0, _0802A9A4 @ =0x0000FFD0 + strh r0, [r7, #0x36] + bl sub_08000E50 + ands r0, r6 + adds r1, r7, #0 + adds r1, #0x80 + strb r0, [r1] + adds r0, r7, #0 + adds r0, #0x82 + strh r5, [r0] + subs r0, #7 + strb r4, [r0] + adds r0, #6 + strb r4, [r0] + subs r0, #7 + strb r4, [r0] + subs r0, #2 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + subs r1, #0x48 + movs r0, #3 + strb r0, [r1] + ldrb r2, [r7, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r7, #0x1b] + ldrb r0, [r7, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r7, #0x19] + adds r2, r7, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r6 + strb r0, [r2] + ldrb r1, [r7, #0xa] + adds r1, #1 + adds r0, r7, #0 + bl sub_08004260 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0802A9A0: .4byte gUnk_080CD16C +_0802A9A4: .4byte 0x0000FFD0 + + thumb_func_start sub_0802A9A8 +sub_0802A9A8: @ 0x0802A9A8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0802A9B8 + subs r0, #1 + strb r0, [r4, #0xf] + b _0802AA3E +_0802A9B8: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0802A9DE + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0802AA38 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + movs r0, #0x40 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #8 + bl sub_0802ACDC + b _0802AA38 +_0802A9DE: + ldr r0, _0802AA14 @ =gUnk_03000BF0 + ldrh r1, [r0] + adds r2, r0, #0 + cmp r1, #0 + bne _0802AA3E + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r1, r4, #0 + adds r1, #0x82 + movs r0, #1 + strh r0, [r1] + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + beq _0802AA18 + ldrh r0, [r2, #0xa] + subs r0, #0x10 + strh r0, [r4, #0x2e] + movs r0, #8 + b _0802AA26 + .align 2, 0 +_0802AA14: .4byte gUnk_03000BF0 +_0802AA18: + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r1, #0 + ldrh r1, [r2, #0xa] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + movs r0, #0x18 +_0802AA26: + strb r0, [r4, #0x15] + ldrh r0, [r2, #0xc] + adds r0, #0x40 + strh r0, [r4, #0x32] + movs r0, #0x80 + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_0802ADDC +_0802AA38: + adds r0, r4, #0 + bl sub_0802AC40 +_0802AA3E: + pop {r4, pc} + + thumb_func_start sub_0802AA40 +sub_0802AA40: @ 0x0802AA40 + push {r4, lr} + adds r4, r0, #0 + bl sub_0802AC40 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802AA66 + adds r0, r4, #0 + movs r1, #8 + bl sub_0802ACDC + adds r1, r4, #0 + adds r1, #0x7b + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0802AA66: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0802AA72 + subs r0, #1 + strb r0, [r4, #0xe] + b _0802AABE +_0802AA72: + ldr r2, [r4, #0x54] + cmp r2, #0 + beq _0802AABE + ldr r0, [r2, #4] + cmp r0, #0 + bne _0802AA82 + str r0, [r4, #0x54] + b _0802AABE +_0802AA82: + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + lsls r0, r0, #4 + adds r1, r0, #0 + adds r1, #0x18 + movs r0, #0x18 + ands r1, r0 + adds r3, r4, #0 + adds r3, #0x7b + ldrb r0, [r3] + cmp r0, #0x20 + bls _0802AA9E + strb r1, [r4, #0x15] +_0802AA9E: + ldrb r0, [r4, #0x15] + cmp r0, r1 + bne _0802AABE + movs r0, #3 + strb r0, [r4, #0xc] + movs r1, #0 + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + strb r1, [r3] + adds r1, r2, #0 + adds r1, #0x80 + movs r0, #1 + strb r0, [r1] + movs r0, #0x96 + strb r0, [r2, #0xe] +_0802AABE: + pop {r4, pc} + + thumb_func_start sub_0802AAC0 +sub_0802AAC0: @ 0x0802AAC0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_0802AC40 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + movs r6, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802AADE + adds r0, r4, #0 + movs r1, #4 + bl sub_0802AD1C +_0802AADE: + adds r2, r4, #0 + adds r2, #0x81 + ldrb r5, [r2] + cmp r5, #0 + beq _0802AB0E + ldr r1, [r4, #0x54] + cmp r1, #0 + bne _0802AAF2 + strb r1, [r2] + b _0802AB3C +_0802AAF2: + ldr r0, [r1, #4] + cmp r0, #0 + bne _0802AAFE + strb r0, [r2] + str r0, [r4, #0x54] + b _0802AB3C +_0802AAFE: + ldrb r3, [r1, #0xe] + cmp r3, #0 + bne _0802AB3C + ldrb r0, [r1, #0xf] + cmp r0, #0x50 + bhi _0802AB3C + strb r3, [r2] + b _0802AB3C +_0802AB0E: + movs r3, #4 + strb r3, [r4, #0xc] + movs r0, #0xc0 + strb r0, [r4, #0xe] + strb r3, [r4, #0xf] + adds r2, r4, #0 + adds r2, #0x80 + ldrb r0, [r2] + movs r1, #1 + eors r0, r1 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x78 + strb r5, [r0] + adds r0, #1 + strb r3, [r0] + ldrb r0, [r4, #0x15] + orrs r0, r6 + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_0802AB3C: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0802AB40 +sub_0802AB40: @ 0x0802AB40 + push {r4, lr} + adds r4, r0, #0 + bl sub_0802AC40 + adds r3, r4, #0 + adds r3, #0x78 + ldrb r0, [r3] + cmp r0, #1 + beq _0802AB94 + cmp r0, #1 + bgt _0802AB5C + cmp r0, #0 + beq _0802AB62 + b _0802AC04 +_0802AB5C: + cmp r0, #2 + beq _0802ABC2 + b _0802AC04 +_0802AB62: + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _0802AB86 + adds r1, r4, #0 + adds r1, #0x79 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802AC04 + movs r0, #4 + strb r0, [r1] + ldrh r0, [r4, #0x36] + adds r0, #1 + strh r0, [r4, #0x36] + b _0802AC04 +_0802AB86: + movs r0, #1 + strb r0, [r3] + adds r1, r4, #0 + adds r1, #0x79 + movs r0, #0x30 + strb r0, [r1] + b _0802ABB6 +_0802AB94: + adds r2, r4, #0 + adds r2, #0x79 + ldrb r0, [r2] + subs r1, r0, #1 + strb r1, [r2] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _0802ABAE + movs r0, #2 + strb r0, [r3] + movs r0, #4 + strb r0, [r2] + b _0802AC04 +_0802ABAE: + movs r0, #7 + ands r1, r0 + cmp r1, #0 + bne _0802AC04 +_0802ABB6: + adds r0, r4, #0 + movs r1, #0 + bl sub_08049F84 + strb r0, [r4, #0x15] + b _0802AC04 +_0802ABC2: + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #0x30 + rsbs r0, r0, #0 + cmp r1, r0 + ble _0802ABF2 + adds r1, r4, #0 + adds r1, #0x79 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802AC04 + movs r0, #4 + strb r0, [r1] + ldrh r0, [r4, #0x36] + subs r0, #1 + strh r0, [r4, #0x36] + adds r0, r4, #0 + movs r1, #4 + bl sub_0802ACDC + b _0802AC04 +_0802ABF2: + movs r1, #0 + movs r0, #5 + strb r0, [r4, #0xc] + strh r1, [r4, #0x24] + ldrb r1, [r4, #0xa] + adds r1, #1 + adds r0, r4, #0 + bl sub_08004260 +_0802AC04: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802AC08 +sub_0802AC08: @ 0x0802AC08 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802AC36 + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + movs r0, #0x40 + strb r0, [r4, #0xe] + movs r0, #0xc0 + strh r0, [r4, #0x24] + adds r0, r4, #0 + movs r1, #8 + bl sub_0802ACDC + adds r0, r4, #0 + bl sub_0802ADDC +_0802AC36: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802AC40 +sub_0802AC40: @ 0x0802AC40 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0806F69C + adds r5, r4, #0 + adds r5, #0x7a + ldrb r0, [r5] + cmp r0, #0 + beq _0802ACA2 + adds r0, r4, #0 + bl sub_0802B234 + cmp r0, #0 + bne _0802AC72 + strb r0, [r5] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + b _0802ACD8 +_0802AC72: + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0802AC92 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x38 + ands r0, r1 + cmp r0, #8 + beq _0802ACDA + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + b _0802ACD6 +_0802AC92: + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x38 + ands r0, r1 + cmp r0, #0x18 + beq _0802ACDA + b _0802ACCE +_0802ACA2: + adds r0, r4, #0 + bl sub_0802B234 + cmp r0, #0 + beq _0802ACDA + movs r0, #1 + strb r0, [r5] + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0802ACC8 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + b _0802ACD6 +_0802ACC8: + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] +_0802ACCE: + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x18 +_0802ACD6: + orrs r0, r1 +_0802ACD8: + strb r0, [r2] +_0802ACDA: + pop {r4, r5, pc} + + thumb_func_start sub_0802ACDC +sub_0802ACDC: @ 0x0802ACDC + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + beq _0802ACF8 + ldr r0, _0802ACF4 @ =gUnk_03000BF0 + movs r2, #0xa + ldrsh r1, [r0, r2] + adds r1, #0x20 + b _0802AD00 + .align 2, 0 +_0802ACF4: .4byte gUnk_03000BF0 +_0802ACF8: + ldr r0, _0802AD18 @ =gUnk_03000BF0 + movs r2, #0xa + ldrsh r1, [r0, r2] + adds r1, #0xd0 +_0802AD00: + movs r3, #0xc + ldrsh r2, [r0, r3] + adds r2, #0x60 + adds r0, r4, #0 + bl sub_080045B4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 + strb r5, [r4, #0xf] + pop {r4, r5, pc} + .align 2, 0 +_0802AD18: .4byte gUnk_03000BF0 + + thumb_func_start sub_0802AD1C +sub_0802AD1C: @ 0x0802AD1C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #1 + bl sub_08049DF4 + cmp r0, #0 + beq _0802AD48 + movs r1, #0x32 + ldrsh r2, [r0, r1] + subs r2, #0x18 + movs r3, #0x2e + ldrsh r1, [r0, r3] + adds r0, r4, #0 + bl sub_080045B4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 + strb r5, [r4, #0xf] + b _0802AD50 +_0802AD48: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0802ACDC +_0802AD50: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0802AD54 +sub_0802AD54: @ 0x0802AD54 + push {r4, lr} + adds r2, r0, #0 + adds r0, #0x82 + ldrh r0, [r0] + cmp r0, #0 + beq _0802ADAE + ldr r4, _0802AD7C @ =gUnk_03000BF0 + ldrh r0, [r4] + cmp r0, #0 + beq _0802AD80 + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x18] + adds r0, r2, #0 + bl sub_0805E7BC + b _0802ADD8 + .align 2, 0 +_0802AD7C: .4byte gUnk_03000BF0 +_0802AD80: + ldrh r1, [r4, #8] + movs r0, #0x32 + ldrsh r3, [r2, r0] + cmp r1, r3 + bgt _0802AD94 + ldrh r0, [r4, #0x20] + adds r0, r1, r0 + adds r0, #0x20 + cmp r0, r3 + bge _0802ADA0 +_0802AD94: + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x18] + b _0802ADAE +_0802ADA0: + ldrb r0, [r2, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r2, #0x18] +_0802ADAE: + adds r0, r2, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + beq _0802ADD8 + ldr r0, [r2, #0x54] + cmp r0, #0 + beq _0802ADC4 + ldr r0, [r0, #4] + cmp r0, #0 + bne _0802ADD8 +_0802ADC4: + movs r1, #4 + strb r1, [r2, #0xc] + movs r0, #0xc0 + strb r0, [r2, #0xe] + strb r1, [r2, #0xf] + adds r2, #0x80 + ldrb r0, [r2] + movs r1, #1 + eors r0, r1 + strb r0, [r2] +_0802ADD8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802ADDC +sub_0802ADDC: @ 0x0802ADDC + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xa] + adds r1, #2 + movs r0, #0x1b + bl sub_0804AA60 + adds r5, r0, #0 + cmp r5, #0 + beq _0802AE20 + adds r0, r4, #0 + bl sub_0802B234 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r1, r1, #0x1f + strb r1, [r5, #0xb] + str r4, [r5, #0x50] + str r5, [r4, #0x54] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FA24 + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #1 + strb r0, [r1] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0802AE20 + subs r1, #7 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0802AE20: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0802AE24 +sub_0802AE24: @ 0x0802AE24 + push {lr} + mov ip, r0 + movs r2, #0 + movs r3, #1 + strb r3, [r0, #0xc] + movs r0, #0xf0 + mov r1, ip + strb r0, [r1, #0xe] + movs r0, #0x80 + lsls r0, r0, #8 + str r0, [r1, #0x20] + ldr r0, _0802AE64 @ =gUnk_080CD174 + str r0, [r1, #0x48] + adds r1, #0x3c + movs r0, #3 + strb r0, [r1] + mov r0, ip + strb r2, [r0, #0x16] + movs r0, #2 + mov r1, ip + strb r0, [r1, #0x1c] + mov r0, ip + adds r0, #0x81 + strb r2, [r0] + subs r0, #6 + strb r3, [r0] + mov r0, ip + movs r1, #3 + bl sub_08004260 + pop {pc} + .align 2, 0 +_0802AE64: .4byte gUnk_080CD174 + + thumb_func_start sub_0802AE68 +sub_0802AE68: @ 0x0802AE68 + push {r4, lr} + adds r4, r0, #0 + bl sub_0802B250 + adds r1, r0, #0 + cmp r1, #0 + bne _0802AE8A + movs r0, #3 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x80 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0802B264 + b _0802AEBA +_0802AE8A: + adds r0, r1, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + beq _0802AEA8 + adds r0, r1, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + b _0802AEBA +_0802AEA8: + movs r0, #3 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x80 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0802B264 +_0802AEBA: + pop {r4, pc} + + thumb_func_start sub_0802AEBC +sub_0802AEBC: @ 0x0802AEBC + push {lr} + ldr r2, _0802AED0 @ =gUnk_080CD158 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802AED0: .4byte gUnk_080CD158 + + thumb_func_start sub_0802AED4 +sub_0802AED4: @ 0x0802AED4 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r5, r4, #0 + adds r5, #0x81 + ldrb r0, [r5] + cmp r0, #1 + bhi _0802AEFC + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #1 + bne _0802AF0C + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + b _0802AF0C +_0802AEFC: + adds r0, r4, #0 + bl sub_0800442E + cmp r0, #0 + bne _0802AF0C + adds r0, r4, #0 + bl sub_08078930 +_0802AF0C: + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _0802AF24 + adds r0, r4, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + beq _0802AF24 + movs r0, #0 + strb r0, [r4, #0xe] + movs r0, #1 + strb r0, [r4, #0xf] +_0802AF24: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0802AF28 +sub_0802AF28: @ 0x0802AF28 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xd] + adds r0, r4, #0 + bl sub_08079BD8 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_0802AF50 +sub_0802AF50: @ 0x0802AF50 + push {lr} + bl sub_08004274 + pop {pc} + + thumb_func_start sub_0802AF58 +sub_0802AF58: @ 0x0802AF58 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r4, #0x29 + ldrb r1, [r4] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x18 + orrs r0, r1 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802AF74 +sub_0802AF74: @ 0x0802AF74 + push {lr} + adds r2, r0, #0 + movs r0, #0 + movs r1, #3 + strb r1, [r2, #0xc] + strb r0, [r2, #0xd] + ldrb r0, [r2, #0xe] + cmp r0, #0x3c + bls _0802AF8A + movs r0, #0x3c + strb r0, [r2, #0xe] +_0802AF8A: + adds r0, r2, #0 + bl sub_08004274 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0802AF94 +sub_0802AF94: @ 0x0802AF94 + push {lr} + bl sub_0805E7BC + pop {pc} + + thumb_func_start sub_0802AF9C +sub_0802AF9C: @ 0x0802AF9C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802AFC6 + ldr r0, [r4, #0x50] + adds r1, r0, #0 + adds r1, #0x7a + ldrb r0, [r1] + cmp r0, #0 + beq _0802AFC0 + subs r0, #1 + strb r0, [r1] +_0802AFC0: + adds r0, r4, #0 + bl sub_0805E7BC +_0802AFC6: + pop {r4, pc} + + thumb_func_start sub_0802AFC8 +sub_0802AFC8: @ 0x0802AFC8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + movs r7, #8 + cmp r0, #0x28 + bhi _0802B022 + movs r7, #4 + adds r1, r4, #0 + adds r1, #0x82 + ldrh r2, [r1] + movs r0, #0x80 + lsls r0, r0, #8 + ands r0, r2 + cmp r0, #0 + beq _0802AFEC + adds r0, r2, #0 + subs r0, #0x10 + b _0802AFF0 +_0802AFEC: + adds r0, r2, #0 + adds r0, #0x10 +_0802AFF0: + strh r0, [r1] + adds r5, r1, #0 + ldrh r2, [r5] + movs r6, #0xf0 + adds r3, r6, #0 + ands r3, r2 + subs r0, r3, #1 + cmp r0, #0x7f + bls _0802B00C + movs r3, #0x80 + lsls r3, r3, #8 + adds r0, r3, #0 + eors r0, r2 + strh r0, [r5] +_0802B00C: + ldrh r0, [r1] + adds r3, r6, #0 + ands r3, r0 + movs r2, #0x98 + lsls r2, r2, #1 + subs r2, r2, r3 + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C +_0802B022: + ldrb r0, [r4, #0xf] + ands r0, r7 + cmp r0, #0 + beq _0802B03A + ldrb r0, [r4, #0x1a] + lsrs r2, r0, #4 + movs r1, #0x10 + rsbs r1, r1, #0 + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x1a] + b _0802B044 +_0802B03A: + ldrb r1, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x1a] +_0802B044: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0802B048 +sub_0802B048: @ 0x0802B048 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x7b + ldrb r0, [r0] + cmp r0, #0 + beq _0802B080 + ldr r0, _0802B074 @ =gUnk_03000BF0 + ldrh r1, [r0, #8] + movs r3, #0x32 + ldrsh r2, [r4, r3] + cmp r1, r2 + bgt _0802B06A + ldrh r0, [r0, #0x20] + adds r0, r1, r0 + adds r0, #0x20 + cmp r0, r2 + bge _0802B078 +_0802B06A: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + b _0802B07E + .align 2, 0 +_0802B074: .4byte gUnk_03000BF0 +_0802B078: + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 +_0802B07E: + strb r0, [r4, #0x10] +_0802B080: + ldr r5, [r4, #0x50] + cmp r5, #0 + beq _0802B0CA + ldrb r0, [r4, #0xc] + cmp r0, #1 + bne _0802B0CA + ldrb r1, [r5, #0x19] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r3, [r4, #0x19] + movs r2, #0x3f + adds r0, r2, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r5, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + movs r0, #0x29 + adds r0, r0, r4 + mov ip, r0 + lsrs r1, r1, #0x1d + ldrb r3, [r0] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + ldrb r0, [r5, #0x1b] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r1, [r4, #0x1b] + ands r2, r1 + orrs r2, r0 + strb r2, [r4, #0x1b] +_0802B0CA: + ldrb r2, [r4, #0xc] + cmp r2, #4 + beq _0802B19E + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + beq _0802B19E + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0802B10E + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0802B19E + movs r0, #0x50 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x82 + strh r1, [r0] + ldrb r0, [r4, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x19] + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C + b _0802B19E +_0802B10E: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0802B19E + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0802B198 + cmp r2, #2 + bne _0802B12E + ldrb r0, [r4, #0xd] + cmp r0, #1 + bne _0802B12E + ldr r0, _0802B188 @ =gUnk_03003F80 + strb r1, [r0, #5] +_0802B12E: + adds r0, r4, #0 + bl sub_0805EC60 + movs r5, #0 + movs r0, #4 + strb r0, [r4, #0xc] + ldr r0, _0802B18C @ =gUnk_080CD17C + str r0, [r4, #0x48] + movs r0, #0xf + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #0x13 + ands r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x7b + strb r5, [r0] + adds r0, r4, #0 + bl sub_08078954 + ldr r1, [r4, #0x50] + ldr r0, [r1, #4] + cmp r0, #0 + beq _0802B16C + adds r0, r1, #0 + adds r0, #0x81 + strb r5, [r0] +_0802B16C: + adds r0, r4, #0 + movs r1, #0x20 + movs r2, #0 + movs r3, #0 + bl sub_080A2988 + adds r5, r0, #0 + cmp r5, #0 + beq _0802B190 + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + b _0802B19E + .align 2, 0 +_0802B188: .4byte gUnk_03003F80 +_0802B18C: .4byte gUnk_080CD17C +_0802B190: + adds r0, r4, #0 + bl sub_0805E7BC + b _0802B19E +_0802B198: + adds r0, r4, #0 + bl sub_0802AFC8 +_0802B19E: + pop {r4, r5, pc} + + thumb_func_start sub_0802B1A0 +sub_0802B1A0: @ 0x0802B1A0 + push {lr} + movs r1, #0 + movs r2, #1 + strb r2, [r0, #0xc] + strb r1, [r0, #0xe] + movs r1, #0x4f + strb r1, [r0, #0xf] + adds r1, r0, #0 + adds r1, #0x81 + strb r2, [r1] + movs r1, #0 + bl sub_08004260 + pop {pc} + + thumb_func_start sub_0802B1BC +sub_0802B1BC: @ 0x0802B1BC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0802B1CA + subs r0, #1 + strb r0, [r4, #0xe] +_0802B1CA: + adds r0, r4, #0 + bl sub_0802B250 + adds r1, r0, #0 + cmp r1, #0 + bne _0802B1E2 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0802B264 + b _0802B200 +_0802B1E2: + adds r0, r1, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + beq _0802B1F6 + adds r0, r1, #0 + adds r1, r4, #0 + bl sub_0806FA24 + b _0802B200 +_0802B1F6: + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0802B264 +_0802B200: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802B204 +sub_0802B204: @ 0x0802B204 + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #0xa0 + lsls r1, r1, #6 + bl sub_080044EC + cmp r0, #1 + bne _0802B232 + movs r0, #0x22 + movs r1, #1 + bl sub_0804AA60 + adds r4, r0, #0 + cmp r4, #0 + beq _0802B22E + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldr r0, [r5, #0x50] + str r0, [r4, #0x50] +_0802B22E: + bl sub_0805E780 +_0802B232: + pop {r4, r5, pc} + + thumb_func_start sub_0802B234 +sub_0802B234: @ 0x0802B234 + push {r4, lr} + movs r4, #0 + bl sub_080002A0 + ldr r1, _0802B24C @ =0xFFFFFE3C + adds r0, r0, r1 + cmp r0, #1 + bls _0802B246 + movs r4, #1 +_0802B246: + adds r0, r4, #0 + pop {r4, pc} + .align 2, 0 +_0802B24C: .4byte 0xFFFFFE3C + + thumb_func_start sub_0802B250 +sub_0802B250: @ 0x0802B250 + push {lr} + ldr r1, [r0, #0x50] + cmp r1, #0 + beq _0802B260 + ldr r0, [r1, #4] + cmp r0, #0 + bne _0802B260 + movs r1, #0 +_0802B260: + adds r0, r1, #0 + pop {pc} + + thumb_func_start sub_0802B264 +sub_0802B264: @ 0x0802B264 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0802B234 + cmp r0, #0 + beq _0802B294 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #0x18 + orrs r1, r0 + strb r1, [r2] + b _0802B2A2 +_0802B294: + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] +_0802B2A2: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802B2AC +sub_0802B2AC: @ 0x0802B2AC + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _0802B2C4 @ =gUnk_080CD234 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_0802B2C4: .4byte gUnk_080CD234 + + thumb_func_start sub_0802B2C8 +sub_0802B2C8: @ 0x0802B2C8 + push {lr} + ldr r2, _0802B2DC @ =gUnk_080CD24C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802B2DC: .4byte gUnk_080CD24C + + thumb_func_start sub_0802B2E0 +sub_0802B2E0: @ 0x0802B2E0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802B334 + movs r2, #0x7f + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0x14 + bne _0802B334 + ldrb r1, [r4, #0x10] + adds r0, r2, #0 + ands r0, r1 + movs r1, #0 + strb r0, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x3d + strb r1, [r0] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl sub_080A29AC + adds r1, r0, #0 + cmp r1, #0 + beq _0802B334 + str r1, [r4, #0x54] + movs r0, #0xe + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_0806FA24 +_0802B334: + pop {r4, pc} + .align 2, 0 + + thumb_func_start nullsub_15 +nullsub_15: @ 0x0802B338 + bx lr + .align 2, 0 + + thumb_func_start sub_0802B33C +sub_0802B33C: @ 0x0802B33C + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xb] + strb r0, [r4, #0x15] + movs r0, #0x78 + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802B35C +sub_0802B35C: @ 0x0802B35C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080AEF88 + movs r3, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0802B374 + movs r3, #1 +_0802B374: + ldrh r0, [r4, #0x2a] + adds r2, r0, #0 + cmp r2, #0 + bne _0802B3A4 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0802B38A + b _0802B4A6 +_0802B38A: + movs r0, #0x78 + strb r0, [r4, #0xf] + ldrb r0, [r4, #0x15] + cmp r3, #0 + beq _0802B39A + adds r1, r0, #0 + adds r1, #8 + b _0802B39E +_0802B39A: + adds r1, r0, #0 + adds r1, #0x18 +_0802B39E: + movs r0, #0x18 + ands r0, r1 + b _0802B4A4 +_0802B3A4: + movs r0, #0x78 + strb r0, [r4, #0xf] + ldrb r0, [r4, #0x15] + movs r1, #0x18 + ands r1, r0 + cmp r1, #8 + beq _0802B474 + cmp r1, #8 + bgt _0802B3BC + cmp r1, #0 + beq _0802B3C6 + b _0802B4A6 +_0802B3BC: + cmp r1, #0x10 + beq _0802B404 + cmp r1, #0x18 + beq _0802B442 + b _0802B4A6 +_0802B3C6: + movs r0, #0xe + ands r0, r2 + cmp r0, #0 + beq _0802B3D8 + movs r0, #8 + cmp r3, #0 + beq _0802B4A4 + movs r0, #0x18 + b _0802B4A4 +_0802B3D8: + movs r0, #0xe0 + lsls r0, r0, #8 + ands r0, r2 + movs r1, #0x80 + lsls r1, r1, #7 + cmp r0, r1 + bne _0802B3EE + cmp r3, #0 + beq _0802B3EE + movs r0, #8 + strb r0, [r4, #0x15] +_0802B3EE: + movs r0, #0xe0 + lsls r0, r0, #4 + ands r0, r2 + movs r1, #0x80 + lsls r1, r1, #3 + cmp r0, r1 + bne _0802B4A6 + cmp r3, #0 + bne _0802B4A6 + movs r0, #0x18 + b _0802B4A4 +_0802B404: + movs r0, #0xe0 + ands r0, r2 + cmp r0, #0 + beq _0802B416 + movs r0, #0x18 + cmp r3, #0 + beq _0802B4A4 + movs r0, #8 + b _0802B4A4 +_0802B416: + movs r0, #0xe0 + lsls r0, r0, #8 + ands r0, r2 + movs r1, #0x80 + lsls r1, r1, #6 + cmp r0, r1 + bne _0802B42C + cmp r3, #0 + bne _0802B42C + movs r0, #8 + strb r0, [r4, #0x15] +_0802B42C: + movs r0, #0xe0 + lsls r0, r0, #4 + ands r0, r2 + movs r1, #0x80 + lsls r1, r1, #2 + cmp r0, r1 + bne _0802B4A6 + cmp r3, #0 + beq _0802B4A6 + movs r0, #0x18 + b _0802B4A4 +_0802B442: + movs r1, #0xe0 + lsls r1, r1, #4 + ands r1, r2 + cmp r1, #0 + beq _0802B458 + rsbs r0, r3, #0 + orrs r0, r3 + asrs r0, r0, #0x1f + movs r1, #0x10 + ands r0, r1 + b _0802B4A4 +_0802B458: + movs r0, #0xe + ands r0, r2 + cmp r0, #4 + bne _0802B466 + cmp r3, #0 + beq _0802B466 + strb r1, [r4, #0x15] +_0802B466: + movs r0, #0xe0 + ands r0, r2 + cmp r0, #0x40 + bne _0802B4A6 + cmp r3, #0 + bne _0802B4A6 + b _0802B4A2 +_0802B474: + movs r0, #0xe0 + lsls r0, r0, #8 + ands r0, r2 + cmp r0, #0 + beq _0802B488 + movs r0, #0 + cmp r3, #0 + bne _0802B4A4 + movs r0, #0x10 + b _0802B4A4 +_0802B488: + movs r0, #0xe + ands r0, r2 + cmp r0, #2 + bne _0802B496 + cmp r3, #0 + bne _0802B496 + strb r3, [r4, #0x15] +_0802B496: + movs r0, #0xe0 + ands r0, r2 + cmp r0, #0x20 + bne _0802B4A6 + cmp r3, #0 + beq _0802B4A6 +_0802B4A2: + movs r0, #0x10 +_0802B4A4: + strb r0, [r4, #0x15] +_0802B4A6: + pop {r4, pc} + + thumb_func_start sub_0802B4A8 +sub_0802B4A8: @ 0x0802B4A8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802B4D6 + adds r0, r4, #0 + movs r1, #0 + movs r2, #0x60 + movs r3, #0 + bl sub_080A2988 + adds r1, r0, #0 + cmp r1, #0 + beq _0802B4D0 + ldrh r0, [r1, #0x32] + subs r0, #4 + strh r0, [r1, #0x32] +_0802B4D0: + adds r0, r4, #0 + bl sub_0805E7BC +_0802B4D6: + pop {r4, pc} + + thumb_func_start sub_0802B4D8 +sub_0802B4D8: @ 0x0802B4D8 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080012DC + adds r1, r0, #0 + cmp r1, #0 + beq _0802B4FC + ldr r0, _0802B4F8 @ =0x080012C8 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r5, #0 + bl _call_via_r1 + b _0802B510 + .align 2, 0 +_0802B4F8: .4byte 0x080012C8 +_0802B4FC: + ldr r4, _0802B514 @ =gUnk_080CD27C + adds r0, r5, #0 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 +_0802B510: + pop {r4, r5, pc} + .align 2, 0 +_0802B514: .4byte gUnk_080CD27C + + thumb_func_start sub_0802B518 +sub_0802B518: @ 0x0802B518 + push {lr} + ldr r2, _0802B52C @ =gUnk_080CD298 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802B52C: .4byte gUnk_080CD298 + + thumb_func_start sub_0802B530 +sub_0802B530: @ 0x0802B530 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0802B540 +sub_0802B540: @ 0x0802B540 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0802B550 + subs r0, #1 + strb r0, [r4, #0xe] + b _0802B56A +_0802B550: + adds r0, r4, #0 + movs r1, #1 + movs r2, #0xc + bl sub_0804A024 + adds r1, r0, #0 + cmp r1, #0xff + beq _0802B56A + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x40 + strh r0, [r4, #0x24] + strb r1, [r4, #0x15] +_0802B56A: + pop {r4, pc} + + thumb_func_start sub_0802B56C +sub_0802B56C: @ 0x0802B56C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802B586 + movs r0, #0x40 + strh r0, [r4, #0x24] +_0802B586: + adds r0, r4, #0 + bl sub_080AF038 + cmp r0, #0 + beq _0802B5B8 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #1 + beq _0802B5A2 + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_0802B5A2: + ldrh r2, [r4, #0x24] + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldr r0, _0802B5B4 @ =0x0000021F + cmp r1, r0 + bgt _0802B5C4 + adds r0, r2, #4 + strh r0, [r4, #0x24] + b _0802B5C4 + .align 2, 0 +_0802B5B4: .4byte 0x0000021F +_0802B5B8: + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 +_0802B5C4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802B5C8 +sub_0802B5C8: @ 0x0802B5C8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802B5EE + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_0802B5EE: + pop {r4, pc} + + thumb_func_start sub_0802B5F0 +sub_0802B5F0: @ 0x0802B5F0 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0802B60C @ =gUnk_080CD2D8 + bl sub_0800129E + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, pc} + .align 2, 0 +_0802B60C: .4byte gUnk_080CD2D8 + + thumb_func_start sub_0802B610 +sub_0802B610: @ 0x0802B610 + push {lr} + ldr r2, _0802B624 @ =gUnk_080CD2F0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802B624: .4byte gUnk_080CD2F0 + + thumb_func_start sub_0802B628 +sub_0802B628: @ 0x0802B628 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0x1d + bhi _0802B706 + lsls r0, r1, #2 + ldr r1, _0802B644 @ =_0802B648 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802B644: .4byte _0802B648 +_0802B648: @ jump table + .4byte _0802B6C0 @ case 0 + .4byte _0802B706 @ case 1 + .4byte _0802B6CC @ case 2 + .4byte _0802B6CC @ case 3 + .4byte _0802B6C0 @ case 4 + .4byte _0802B6C0 @ case 5 + .4byte _0802B6C0 @ case 6 + .4byte _0802B706 @ case 7 + .4byte _0802B6C0 @ case 8 + .4byte _0802B6C0 @ case 9 + .4byte _0802B6C0 @ case 10 + .4byte _0802B6C0 @ case 11 + .4byte _0802B6C0 @ case 12 + .4byte _0802B706 @ case 13 + .4byte _0802B706 @ case 14 + .4byte _0802B706 @ case 15 + .4byte _0802B706 @ case 16 + .4byte _0802B706 @ case 17 + .4byte _0802B706 @ case 18 + .4byte _0802B706 @ case 19 + .4byte _0802B706 @ case 20 + .4byte _0802B706 @ case 21 + .4byte _0802B6CC @ case 22 + .4byte _0802B706 @ case 23 + .4byte _0802B6CC @ case 24 + .4byte _0802B6CC @ case 25 + .4byte _0802B6CC @ case 26 + .4byte _0802B706 @ case 27 + .4byte _0802B706 @ case 28 + .4byte _0802B6CC @ case 29 +_0802B6C0: + ldrb r0, [r4, #0xc] + cmp r0, #4 + bne _0802B706 + movs r0, #1 + strb r0, [r4, #0xe] + b _0802B706 +_0802B6CC: + ldrb r0, [r4, #0xc] + cmp r0, #5 + bhi _0802B706 + movs r0, #6 + strb r0, [r4, #0xc] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] + movs r1, #0 + movs r0, #0xc0 + strh r0, [r4, #0x24] + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + strb r0, [r4, #0x15] + adds r0, r4, #0 + adds r0, #0x42 + strb r1, [r0] + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0xf8 + strb r0, [r1] + adds r1, #2 + movs r0, #0x64 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #9 + bl sub_08004260 +_0802B706: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0802B718 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0802B718: + ldr r1, _0802B724 @ =gUnk_080CD2D8 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_0802B724: .4byte gUnk_080CD2D8 + + thumb_func_start nullsub_144 +nullsub_144: @ 0x0802B728 + bx lr + .align 2, 0 + + thumb_func_start sub_0802B72C +sub_0802B72C: @ 0x0802B72C + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r0, #1 + strb r0, [r4, #0xe] + movs r0, #0xff + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_0802B7A4 + pop {r4, pc} + + thumb_func_start sub_0802B744 +sub_0802B744: @ 0x0802B744 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0802B780 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0xc + bl sub_0804A024 + adds r1, r0, #0 + cmp r1, #0xff + beq _0802B780 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + movs r0, #0x18 + ands r1, r0 + strb r1, [r4, #0x15] + adds r0, r4, #0 + movs r1, #8 + bl sub_08004260 + b _0802B7A2 +_0802B780: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802B794 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x1e + b _0802B7A0 +_0802B794: + adds r0, r4, #0 + bl sub_080AEF88 + cmp r0, #0 + bne _0802B7A2 + movs r0, #1 +_0802B7A0: + strb r0, [r4, #0xe] +_0802B7A2: + pop {r4, pc} + + thumb_func_start sub_0802B7A4 +sub_0802B7A4: @ 0x0802B7A4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802B7F4 + movs r0, #1 + strb r0, [r4, #0xc] + bl sub_08000E50 + ldr r2, _0802B7F8 @ =gUnk_080CD314 + movs r1, #3 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4, #0xe] + movs r0, #0x60 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_0802B960 + ldrb r0, [r4, #0x15] + lsls r1, r0, #0x18 + lsrs r0, r1, #0x18 + cmp r0, #0xff + beq _0802B7F4 + lsrs r2, r1, #0x1b + ldrb r0, [r4, #0x14] + cmp r2, r0 + beq _0802B7F4 + movs r1, #3 + adds r0, r2, #0 + ands r0, r1 + strb r0, [r4, #0x14] + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_08004260 +_0802B7F4: + pop {r4, pc} + .align 2, 0 +_0802B7F8: .4byte gUnk_080CD314 + + thumb_func_start sub_0802B7FC +sub_0802B7FC: @ 0x0802B7FC + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802B81E + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + movs r0, #0xe0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] +_0802B81E: + pop {r4, pc} + + thumb_func_start sub_0802B820 +sub_0802B820: @ 0x0802B820 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEFE0 + cmp r0, #0 + bne _0802B830 + movs r0, #1 + strb r0, [r4, #0xe] +_0802B830: + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802B84A + adds r0, r4, #0 + bl sub_0802B9B4 + b _0802B87E +_0802B84A: + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0802B878 + ldrb r1, [r4, #0xe] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _0802B87E + ldr r0, _0802B874 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 + b _0802B87E + .align 2, 0 +_0802B874: .4byte gUnk_020000B0 +_0802B878: + adds r0, r4, #0 + bl sub_0802B9B4 +_0802B87E: + pop {r4, pc} + + thumb_func_start sub_0802B880 +sub_0802B880: @ 0x0802B880 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802B8AC + movs r0, #2 + strb r0, [r2, #0xc] + movs r0, #0x3c + strb r0, [r2, #0xe] + ldrb r0, [r2, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + asrs r0, r0, #3 + strb r0, [r2, #0x14] + ldrb r1, [r2, #0x14] + adds r0, r2, #0 + bl sub_08004260 +_0802B8AC: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0802B8B0 +sub_0802B8B0: @ 0x0802B8B0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEFE0 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #0 + beq _0802B8CC + cmp r0, #1 + beq _0802B8D4 + b _0802B8DA +_0802B8CC: + movs r0, #7 + strb r0, [r4, #0xc] + movs r0, #0x96 + strb r0, [r4, #0xe] +_0802B8D4: + ldr r0, _0802B8DC @ =0x0000012B + bl sub_08004488 +_0802B8DA: + pop {r4, pc} + .align 2, 0 +_0802B8DC: .4byte 0x0000012B + + thumb_func_start sub_0802B8E0 +sub_0802B8E0: @ 0x0802B8E0 + push {r4, lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xe] + subs r1, r0, #1 + strb r1, [r3, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + beq _0802B91C + adds r4, r0, #0 + lsrs r0, r4, #0x18 + cmp r0, #0x3b + bhi _0802B940 + movs r0, #1 + ands r1, r0 + cmp r1, #0 + beq _0802B940 + adds r3, #0x62 + ldr r2, _0802B918 @ =gUnk_080CD318 + lsrs r0, r4, #0x19 + movs r1, #3 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + ldrb r1, [r3] + adds r0, r0, r1 + strb r0, [r3] + b _0802B940 + .align 2, 0 +_0802B918: .4byte gUnk_080CD318 +_0802B91C: + movs r0, #8 + strb r0, [r3, #0xc] + movs r0, #0x80 + lsls r0, r0, #9 + str r0, [r3, #0x20] + movs r0, #0x60 + strh r0, [r3, #0x24] + adds r1, r3, #0 + adds r1, #0x3f + movs r0, #0x63 + strb r0, [r1] + ldrb r1, [r3, #0x14] + adds r0, r3, #0 + bl sub_08004260 + ldr r0, _0802B944 @ =0x0000012B + bl sub_08004488 +_0802B940: + pop {r4, pc} + .align 2, 0 +_0802B944: .4byte 0x0000012B + + thumb_func_start sub_0802B948 +sub_0802B948: @ 0x0802B948 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xc0 + lsls r1, r1, #5 + bl sub_08003FC4 + cmp r0, #0 + bne _0802B95E + movs r0, #1 + strb r0, [r4, #0xc] + strb r0, [r4, #0xe] +_0802B95E: + pop {r4, pc} + + thumb_func_start sub_0802B960 +sub_0802B960: @ 0x0802B960 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0802B986 + bl sub_08000E50 + movs r1, #7 + ands r1, r0 + cmp r1, #0 + bne _0802B9A6 + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + adds r0, #4 + b _0802B9AA +_0802B986: + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _0802B9A6 + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + cmp r1, #0 + bne _0802B9A6 + adds r0, r4, #0 + bl sub_08049EE4 + adds r0, #4 + b _0802B9AA +_0802B9A6: + bl sub_08000E50 +_0802B9AA: + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802B9B4 +sub_0802B9B4: @ 0x0802B9B4 + push {lr} + movs r1, #5 + strb r1, [r0, #0xc] + movs r1, #0x3c + strb r1, [r0, #0xe] + ldrb r1, [r0, #0x15] + lsrs r1, r1, #3 + movs r2, #3 + ands r1, r2 + strb r1, [r0, #0x14] + ldrb r1, [r0, #0x14] + adds r1, #4 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0802B9D4 +sub_0802B9D4: @ 0x0802B9D4 + push {lr} + ldr r2, _0802B9E8 @ =gUnk_080CD3C4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802B9E8: .4byte gUnk_080CD3C4 + + thumb_func_start sub_0802B9EC +sub_0802B9EC: @ 0x0802B9EC + adds r2, r0, #0 + movs r0, #1 + strb r0, [r2, #0xc] + ldr r1, _0802BA14 @ =gUnk_080CD3D4 + ldrb r0, [r2, #0xa] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + adds r0, r2, #0 + adds r0, #0x78 + strh r1, [r0] + adds r0, #0xc + ldrh r1, [r0] + subs r0, #8 + strh r1, [r0] + adds r0, #0xa + ldrh r1, [r0] + subs r0, #8 + strh r1, [r0] + bx lr + .align 2, 0 +_0802BA14: .4byte gUnk_080CD3D4 + + thumb_func_start sub_0802BA18 +sub_0802BA18: @ 0x0802BA18 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #1 + movs r2, #0xe + bl sub_0804A024 + adds r5, r0, #0 + cmp r5, #0xff + beq _0802BA88 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0802BB2C + cmp r0, #0 + bne _0802BA88 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x78 + ldrh r0, [r0] + strh r0, [r4, #0x24] + strb r5, [r4, #0x15] + lsrs r0, r5, #3 + cmp r0, #1 + beq _0802BA60 + cmp r0, #1 + blo _0802BA58 + cmp r0, #2 + beq _0802BA6C + cmp r0, #3 + beq _0802BA78 + b _0802BA88 +_0802BA58: + adds r1, r4, #0 + adds r1, #0x7e + ldrh r0, [r4, #0x32] + b _0802BA7E +_0802BA60: + adds r0, r4, #0 + adds r0, #0x7c + ldrh r0, [r0] + ldrh r1, [r4, #0x2e] + adds r0, r0, r1 + b _0802BA82 +_0802BA6C: + adds r0, r4, #0 + adds r0, #0x7e + ldrh r0, [r0] + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + b _0802BA82 +_0802BA78: + adds r1, r4, #0 + adds r1, #0x7c + ldrh r0, [r4, #0x2e] +_0802BA7E: + ldrh r1, [r1] + subs r0, r0, r1 +_0802BA82: + adds r1, r4, #0 + adds r1, #0x7a + strh r0, [r1] +_0802BA88: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0802BA8C +sub_0802BA8C: @ 0x0802BA8C + push {r4, lr} + adds r4, r0, #0 + bl sub_080AF038 + cmp r0, #0 + beq _0802BADE + ldrb r0, [r4, #0x15] + lsrs r0, r0, #3 + cmp r0, #1 + beq _0802BAC4 + cmp r0, #1 + bgt _0802BAAA + cmp r0, #0 + beq _0802BAB4 + b _0802BAFA +_0802BAAA: + cmp r0, #2 + beq _0802BAD0 + cmp r0, #3 + beq _0802BAE6 + b _0802BAFA +_0802BAB4: + adds r0, r4, #0 + adds r0, #0x7a + ldrh r1, [r0] + movs r2, #0x32 + ldrsh r0, [r4, r2] + cmp r1, r0 + blt _0802BAFA + b _0802BADE +_0802BAC4: + adds r0, r4, #0 + adds r0, #0x7a + ldrh r1, [r0] + movs r2, #0x2e + ldrsh r0, [r4, r2] + b _0802BADA +_0802BAD0: + adds r0, r4, #0 + adds r0, #0x7a + ldrh r1, [r0] + movs r2, #0x32 + ldrsh r0, [r4, r2] +_0802BADA: + cmp r1, r0 + bgt _0802BAFA +_0802BADE: + adds r0, r4, #0 + bl sub_0802BB10 + b _0802BAFA +_0802BAE6: + adds r0, r4, #0 + adds r0, #0x7a + ldrh r1, [r0] + movs r2, #0x2e + ldrsh r0, [r4, r2] + cmp r1, r0 + blt _0802BAFA + adds r0, r4, #0 + bl sub_0802BB10 +_0802BAFA: + pop {r4, pc} + + thumb_func_start sub_0802BAFC +sub_0802BAFC: @ 0x0802BAFC + push {r4, lr} + adds r4, r0, #0 + bl sub_080AF038 + cmp r0, #0 + bne _0802BB0C + movs r0, #1 + strb r0, [r4, #0xc] +_0802BB0C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802BB10 +sub_0802BB10: @ 0x0802BB10 + push {lr} + movs r1, #3 + strb r1, [r0, #0xc] + movs r1, #0xc0 + strh r1, [r0, #0x24] + ldrb r1, [r0, #0x15] + movs r2, #0x10 + eors r1, r2 + strb r1, [r0, #0x15] + movs r0, #0x74 + bl sub_08004488 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0802BB2C +sub_0802BB2C: @ 0x0802BB2C + push {r4, lr} + adds r2, r0, #0 + adds r0, #0x38 + ldrb r0, [r0] + ldr r4, _0802BB60 @ =gUnk_02027EB4 + cmp r0, #2 + bne _0802BB3C + ldr r4, _0802BB64 @ =gUnk_0200D654 +_0802BB3C: + lsrs r3, r1, #2 + ldr r0, _0802BB68 @ =gUnk_080CD3DC + adds r3, r3, r0 + movs r0, #0x2e + ldrsh r1, [r2, r0] + movs r0, #0 + ldrsb r0, [r3, r0] + adds r1, r1, r0 + movs r0, #0x32 + ldrsh r2, [r2, r0] + movs r0, #1 + ldrsb r0, [r3, r0] + adds r2, r2, r0 + adds r0, r4, #0 + movs r3, #0 + bl sub_080AE4CC + pop {r4, pc} + .align 2, 0 +_0802BB60: .4byte gUnk_02027EB4 +_0802BB64: .4byte gUnk_0200D654 +_0802BB68: .4byte gUnk_080CD3DC + + thumb_func_start sub_0802BB6C +sub_0802BB6C: @ 0x0802BB6C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0802BB94 + ldr r1, _0802BB90 @ =gUnk_080CD3E4 + adds r0, r4, #0 + bl sub_0800129E + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + b _0802BBA4 + .align 2, 0 +_0802BB90: .4byte gUnk_080CD3E4 +_0802BB94: + ldr r0, _0802BBA8 @ =gUnk_080CD3FC + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_0802BBA4: + pop {r4, pc} + .align 2, 0 +_0802BBA8: .4byte gUnk_080CD3FC + + thumb_func_start sub_0802BBAC +sub_0802BBAC: @ 0x0802BBAC + push {lr} + ldr r2, _0802BBC0 @ =gUnk_080CD408 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802BBC0: .4byte gUnk_080CD408 + + thumb_func_start sub_0802BBC4 +sub_0802BBC4: @ 0x0802BBC4 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0x19 + beq _0802BBFE + adds r0, r4, #0 + adds r0, #0x41 + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0 + beq _0802BBEA + cmp r1, #0 + blt _0802BBFE + cmp r1, #3 + bgt _0802BBFE + cmp r1, #2 + blt _0802BBFE +_0802BBEA: + ldrb r0, [r4, #0xc] + cmp r0, #4 + bne _0802BBFE + adds r1, r4, #0 + adds r1, #0x42 + movs r0, #0 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0802C218 +_0802BBFE: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0802BC10 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0802BC10: + ldr r1, _0802BC1C @ =gUnk_080CD3E4 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_0802BC1C: .4byte gUnk_080CD3E4 + + thumb_func_start sub_0802BC20 +sub_0802BC20: @ 0x0802BC20 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0x19 + beq _0802BC4C + adds r0, r4, #0 + bl sub_0806F520 + cmp r0, #0 + beq _0802BC6C + ldr r0, _0802BC48 @ =gUnk_080CD42C + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _0802BC6C + .align 2, 0 +_0802BC48: .4byte gUnk_080CD42C +_0802BC4C: + ldrb r0, [r4, #0xd] + cmp r0, #2 + bhi _0802BC5C + adds r0, r4, #0 + bl sub_0806F520 + cmp r0, #0 + beq _0802BC6C +_0802BC5C: + ldr r0, _0802BC70 @ =gUnk_080CD438 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_0802BC6C: + pop {r4, pc} + .align 2, 0 +_0802BC70: .4byte gUnk_080CD438 + + thumb_func_start sub_0802BC74 +sub_0802BC74: @ 0x0802BC74 + push {r4, lr} + adds r4, r0, #0 + bl sub_0802C1C0 + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0x1d] + ldr r0, _0802BC9C @ =gUnk_03001160 + ldrb r0, [r0, #0x14] + lsrs r0, r0, #1 + movs r1, #2 + eors r0, r1 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 +_0802BC9C: .4byte gUnk_03001160 + + thumb_func_start sub_0802BCA0 +sub_0802BCA0: @ 0x0802BCA0 + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_0802BCA8 +sub_0802BCA8: @ 0x0802BCA8 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x3f + ldrb r0, [r1] + cmp r0, #0x19 + beq _0802BCFA + movs r0, #7 + strb r0, [r4, #0xc] + movs r0, #0x5a + strb r0, [r4, #0xe] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] + movs r0, #0x19 + strb r0, [r1] + adds r2, r4, #0 + adds r2, #0x3a + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 + strb r0, [r2] + movs r0, #0x12 + strb r0, [r4, #0x1c] + movs r0, #0x20 + movs r1, #1 + bl sub_0804AA60 + adds r1, r0, #0 + cmp r1, #0 + beq _0802BCF0 + ldrb r0, [r4, #0x14] + strb r0, [r1, #0x14] + adds r0, r4, #0 + bl sub_0806FA24 +_0802BCF0: + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 +_0802BCFA: + pop {r4, pc} + + thumb_func_start sub_0802BCFC +sub_0802BCFC: @ 0x0802BCFC + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x3c + strb r1, [r0, #0x1d] + bx lr + .align 2, 0 + + thumb_func_start sub_0802BD08 +sub_0802BD08: @ 0x0802BD08 + push {lr} + bl sub_0806F3E4 + pop {pc} + + thumb_func_start sub_0802BD10 +sub_0802BD10: @ 0x0802BD10 + push {lr} + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + movs r1, #2 + bl sub_08004276 + pop {pc} + .align 2, 0 + + thumb_func_start nullsub_145 +nullsub_145: @ 0x0802BD24 + bx lr + .align 2, 0 + + thumb_func_start sub_0802BD28 +sub_0802BD28: @ 0x0802BD28 + push {lr} + adds r2, r0, #0 + ldrb r3, [r2, #0x10] + movs r0, #0x80 + ands r0, r3 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _0802BD4C + movs r0, #0x80 + orrs r0, r3 + strb r0, [r2, #0x10] + adds r2, #0x3a + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 + strb r0, [r2] + b _0802BD52 +_0802BD4C: + adds r0, r2, #0 + adds r0, #0x45 + strb r1, [r0] +_0802BD52: + pop {pc} + + thumb_func_start sub_0802BD54 +sub_0802BD54: @ 0x0802BD54 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r0, #1 + strb r0, [r4, #0xc] + bl sub_08000E50 + adds r1, r4, #0 + adds r1, #0x78 + strb r0, [r1] + movs r0, #0x3c + strb r0, [r4, #0x1d] + adds r1, #1 + movs r0, #0xff + strb r0, [r1] + bl sub_08000E50 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + lsrs r0, r0, #3 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 + pop {r4, pc} + + thumb_func_start sub_0802BD8C +sub_0802BD8C: @ 0x0802BD8C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0802BD9C + subs r0, #1 + strb r0, [r4, #0xe] + b _0802BDDE +_0802BD9C: + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0802BDCA + adds r0, r4, #0 + movs r1, #1 + movs r2, #0x10 + bl sub_0804A024 + adds r1, r0, #0 + cmp r1, #0xff + beq _0802BDCA + adds r0, r4, #0 + adds r0, #0x79 + ldrb r0, [r0] + cmp r1, r0 + beq _0802BDCA + adds r0, r4, #0 + bl sub_0802C058 + b _0802BDDE +_0802BDCA: + adds r0, r4, #0 + bl sub_0802C020 + adds r1, r0, #0 + ldrb r0, [r4, #0x15] + cmp r1, r0 + beq _0802BDDE + adds r0, r4, #0 + bl sub_0802C058 +_0802BDDE: + pop {r4, pc} + + thumb_func_start sub_0802BDE0 +sub_0802BDE0: @ 0x0802BDE0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0802C06C + cmp r0, #0 + beq _0802BDFE + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x79 + movs r0, #0xff + strb r0, [r1] + b _0802BE16 +_0802BDFE: + movs r0, #1 + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r1, #0xf + ands r0, r1 + adds r0, #0xf + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x15] + adds r0, r4, #0 + adds r0, #0x79 + strb r1, [r0] +_0802BE16: + pop {r4, pc} + + thumb_func_start sub_0802BE18 +sub_0802BE18: @ 0x0802BE18 + push {r4, lr} + adds r4, r0, #0 + movs r1, #2 + bl sub_08004276 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802BE3E + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + b _0802BE44 +_0802BE3E: + adds r0, r4, #0 + bl sub_0802C18C +_0802BE44: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802BE48 +sub_0802BE48: @ 0x0802BE48 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEFE0 + cmp r0, #0 + bne _0802BE64 + adds r0, r4, #0 + bl sub_0802C218 + movs r0, #8 + movs r1, #0 + bl sub_08080964 + b _0802BE7E +_0802BE64: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0802C1CC + adds r0, r4, #0 + bl sub_0802C0E8 + cmp r0, #0 + beq _0802BE7E + movs r0, #5 + strb r0, [r4, #0xc] +_0802BE7E: + pop {r4, pc} + + thumb_func_start sub_0802BE80 +sub_0802BE80: @ 0x0802BE80 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x24] + subs r0, #0x20 + strh r0, [r4, #0x24] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xff + ble _0802BE98 + adds r0, r4, #0 + bl sub_0802C1CC +_0802BE98: + movs r1, #0x24 + ldrsh r0, [r4, r1] + cmp r0, #0 + ble _0802BEAE + adds r0, r4, #0 + bl sub_080AEFE0 + adds r0, r4, #0 + bl sub_0802C18C + b _0802BEBA +_0802BEAE: + adds r0, r4, #0 + bl sub_0802C1C0 + ldrb r0, [r4, #0xe] + adds r0, #0x1e + strb r0, [r4, #0xe] +_0802BEBA: + pop {r4, pc} + + thumb_func_start sub_0802BEBC +sub_0802BEBC: @ 0x0802BEBC + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0x15] + movs r4, #0x10 + eors r0, r4 + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_080AEFE0 + ldrb r0, [r5, #0x15] + eors r0, r4 + strb r0, [r5, #0x15] + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r5, #0 + bl sub_080044EC + cmp r0, #0 + bne _0802BEE8 + adds r0, r5, #0 + bl sub_0802C1C0 +_0802BEE8: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0802BEEC +sub_0802BEEC: @ 0x0802BEEC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0802BF1E + subs r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + ands r0, r1 + movs r1, #0x1f + ands r0, r1 + cmp r0, #0 + bne _0802BF3A + ldrb r0, [r4, #0x14] + movs r1, #2 + eors r0, r1 + strb r0, [r4, #0x14] + lsls r0, r0, #3 + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 + b _0802BF3A +_0802BF1E: + movs r1, #0xe0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _0802BF3A + movs r0, #8 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + movs r0, #0x90 + lsls r0, r0, #1 + strh r0, [r4, #0x24] +_0802BF3A: + pop {r4, pc} + + thumb_func_start sub_0802BF3C +sub_0802BF3C: @ 0x0802BF3C + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802BF76 + movs r0, #0x1e + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_0802C020 + strb r0, [r4, #0x15] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1b + ldrb r1, [r4, #0x14] + cmp r0, r1 + beq _0802BF76 + strb r0, [r4, #0x14] + adds r1, r0, #4 + adds r0, r4, #0 + bl sub_08004260 +_0802BF76: + pop {r4, pc} + + thumb_func_start sub_0802BF78 +sub_0802BF78: @ 0x0802BF78 + push {lr} + movs r2, #1 + strb r2, [r0, #0xc] + adds r3, r0, #0 + adds r3, #0x3b + movs r1, #4 + strb r1, [r3] + strb r2, [r0, #0x1c] + ldrb r1, [r0, #0x14] + lsls r1, r1, #3 + strb r1, [r0, #0x15] + ldrb r1, [r0, #0x14] + adds r1, #8 + bl sub_08004260 + pop {pc} + + thumb_func_start sub_0802BF98 +sub_0802BF98: @ 0x0802BF98 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F520 + cmp r0, #0 + beq _0802BFBC + ldr r0, _0802BFB8 @ =gUnk_080CD450 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _0802BFCC + .align 2, 0 +_0802BFB8: .4byte gUnk_080CD450 +_0802BFBC: + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] +_0802BFCC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802BFD0 +sub_0802BFD0: @ 0x0802BFD0 + movs r1, #2 + strb r1, [r0, #0xd] + bx lr + .align 2, 0 + + thumb_func_start sub_0802BFD8 +sub_0802BFD8: @ 0x0802BFD8 + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_0802BFE0 +sub_0802BFE0: @ 0x0802BFE0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _0802BFF2 + adds r0, r4, #0 + bl sub_0805E7BC +_0802BFF2: + pop {r4, pc} + + thumb_func_start sub_0802BFF4 +sub_0802BFF4: @ 0x0802BFF4 + push {lr} + adds r3, r0, #0 + ldrb r2, [r3, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x18] + ldrb r0, [r3, #0xe] + subs r0, #1 + strb r0, [r3, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802C01C + adds r0, r3, #0 + bl sub_0805E7BC +_0802C01C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0802C020 +sub_0802C020: @ 0x0802C020 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_08000E50 + adds r4, r0, #0 + adds r0, r5, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _0802C03E + movs r6, #1 + adds r0, r4, #0 + ands r0, r6 + cmp r0, #0 + beq _0802C044 +_0802C03E: + movs r0, #0x18 + ands r0, r4 + b _0802C056 +_0802C044: + adds r0, r5, #0 + bl sub_08049EE4 + lsrs r1, r4, #0x10 + ands r1, r6 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r1, #0x18 + ands r0, r1 +_0802C056: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0802C058 +sub_0802C058: @ 0x0802C058 + push {lr} + movs r2, #2 + strb r2, [r0, #0xc] + strb r1, [r0, #0x15] + lsrs r1, r1, #3 + strb r1, [r0, #0x14] + ldrb r1, [r0, #0x14] + bl sub_08004260 + pop {pc} + + thumb_func_start sub_0802C06C +sub_0802C06C: @ 0x0802C06C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + movs r1, #0x2e + ldrsh r2, [r0, r1] + ldr r3, [r0, #0x48] + movs r1, #0 + ldrsb r1, [r3, r1] + adds r6, r2, r1 + movs r1, #0x32 + ldrsh r2, [r0, r1] + movs r1, #1 + ldrsb r1, [r3, r1] + adds r5, r2, r1 + ldr r3, _0802C0CC @ =gUnk_080CD45C + ldrb r1, [r0, #0x15] + lsrs r1, r1, #2 + adds r2, r1, r3 + ldrb r2, [r2] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + mov sb, r2 + adds r1, #1 + adds r1, r1, r3 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + mov r8, r1 + adds r0, #0x38 + ldrb r0, [r0] + ldr r7, _0802C0D0 @ =gUnk_02027EB4 + cmp r0, #2 + bne _0802C0B2 + ldr r7, _0802C0D4 @ =gUnk_0200D654 +_0802C0B2: + movs r4, #0 +_0802C0B4: + add r6, sb + add r5, r8 + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r5, #0 + movs r3, #0 + bl sub_080AE4CC + cmp r0, #0 + beq _0802C0D8 + movs r0, #0 + b _0802C0E0 + .align 2, 0 +_0802C0CC: .4byte gUnk_080CD45C +_0802C0D0: .4byte gUnk_02027EB4 +_0802C0D4: .4byte gUnk_0200D654 +_0802C0D8: + adds r4, #1 + cmp r4, #7 + bls _0802C0B4 + movs r0, #1 +_0802C0E0: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0802C0E8 +sub_0802C0E8: @ 0x0802C0E8 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802C0FC + movs r0, #1 + b _0802C178 +_0802C0FC: + ldrb r3, [r5, #0x15] + lsrs r3, r3, #2 + ldr r0, _0802C17C @ =gUnk_080CD45C + adds r3, r3, r0 + movs r0, #0x2e + ldrsh r2, [r5, r0] + ldr r4, [r5, #0x48] + movs r0, #0 + ldrsb r0, [r4, r0] + adds r2, r2, r0 + movs r1, #0 + ldrsb r1, [r3, r1] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + adds r6, r2, r0 + movs r0, #0x32 + ldrsh r2, [r5, r0] + movs r0, #1 + ldrsb r0, [r4, r0] + adds r2, r2, r0 + movs r1, #1 + ldrsb r1, [r3, r1] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + adds r4, r2, r0 + adds r0, r5, #0 + adds r0, #0x38 + ldrb r0, [r0] + ldr r7, _0802C180 @ =gUnk_02027EB4 + cmp r0, #2 + bne _0802C140 + ldr r7, _0802C184 @ =gUnk_0200D654 +_0802C140: + movs r5, #0 + ldr r1, _0802C188 @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + subs r0, r6, r0 + asrs r0, r0, #4 + movs r2, #0x3f + ands r0, r2 + ldrh r1, [r1, #8] + subs r1, r4, r1 + asrs r1, r1, #4 + ands r1, r2 + lsls r1, r1, #6 + orrs r0, r1 + movs r1, #9 + bl sub_0806FC24 + cmp r0, #0 + bne _0802C176 + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r4, #0 + movs r3, #0 + bl sub_080AE4CC + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r5, r1, #0x1f +_0802C176: + adds r0, r5, #0 +_0802C178: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0802C17C: .4byte gUnk_080CD45C +_0802C180: .4byte gUnk_02027EB4 +_0802C184: .4byte gUnk_0200D654 +_0802C188: .4byte gUnk_03000BF0 + + thumb_func_start sub_0802C18C +sub_0802C18C: @ 0x0802C18C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x78 + ldrb r1, [r0] + subs r1, #1 + strb r1, [r0] + movs r0, #7 + ands r1, r0 + cmp r1, #0 + bne _0802C1BC + movs r0, #0xf + movs r1, #0x11 + movs r2, #0x40 + bl sub_080A2960 + adds r1, r0, #0 + cmp r1, #0 + beq _0802C1BC + movs r3, #0x80 + lsls r3, r3, #9 + adds r0, r4, #0 + movs r2, #0 + bl sub_0806FA48 +_0802C1BC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802C1C0 +sub_0802C1C0: @ 0x0802C1C0 + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0x1e + strb r1, [r0, #0xe] + bx lr + .align 2, 0 + + thumb_func_start sub_0802C1CC +sub_0802C1CC: @ 0x0802C1CC + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r4, [r5, #0x14] + lsls r4, r4, #2 + ldr r0, _0802C214 @ =gUnk_080CD464 + adds r4, r4, r0 + movs r0, #0x2e + ldrsh r2, [r5, r0] + movs r0, #0 + ldrsb r0, [r4, r0] + adds r2, r2, r0 + movs r0, #0x32 + ldrsh r3, [r5, r0] + movs r0, #1 + ldrsb r0, [r4, r0] + adds r3, r3, r0 + adds r0, r5, #0 + movs r1, #9 + bl sub_08008796 + movs r0, #0x2e + ldrsh r2, [r5, r0] + movs r0, #2 + ldrsb r0, [r4, r0] + adds r2, r2, r0 + movs r0, #0x32 + ldrsh r3, [r5, r0] + movs r0, #3 + ldrsb r0, [r4, r0] + adds r3, r3, r0 + adds r0, r5, #0 + movs r1, #9 + bl sub_08008796 + pop {r4, r5, pc} + .align 2, 0 +_0802C214: .4byte gUnk_080CD464 + + thumb_func_start sub_0802C218 +sub_0802C218: @ 0x0802C218 + movs r1, #6 + strb r1, [r0, #0xc] + movs r1, #0xe0 + strh r1, [r0, #0x24] + movs r1, #0xc0 + lsls r1, r1, #9 + str r1, [r0, #0x20] + bx lr + + thumb_func_start sub_0802C228 +sub_0802C228: @ 0x0802C228 + push {lr} + ldr r1, _0802C234 @ =gUnk_080CD540 + bl sub_0800129E + pop {pc} + .align 2, 0 +_0802C234: .4byte gUnk_080CD540 + + thumb_func_start sub_0802C238 +sub_0802C238: @ 0x0802C238 + push {lr} + ldr r2, _0802C24C @ =gUnk_080CD558 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802C24C: .4byte gUnk_080CD558 + + thumb_func_start sub_0802C250 +sub_0802C250: @ 0x0802C250 + bx lr + .align 2, 0 + + thumb_func_start sub_0802C254 +sub_0802C254: @ 0x0802C254 + bx lr + .align 2, 0 + + thumb_func_start sub_0802C258 +sub_0802C258: @ 0x0802C258 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + movs r0, #2 + strb r0, [r4, #0xe] + bl sub_08000E50 + adds r2, r0, #0 + movs r0, #0x70 + ands r2, r0 + adds r3, r4, #0 + adds r3, #0x7a + movs r1, #0 + strh r2, [r3] + ldrb r0, [r4, #0xa] + cmp r0, #1 + beq _0802C288 + cmp r0, #2 + beq _0802C290 + b _0802C29C +_0802C288: + movs r0, #0x80 + lsls r0, r0, #1 + adds r1, r0, #0 + b _0802C296 +_0802C290: + movs r5, #0x80 + lsls r5, r5, #2 + adds r1, r5, #0 +_0802C296: + adds r0, r2, #0 + orrs r0, r1 + strh r0, [r3] +_0802C29C: + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x80 + movs r2, #0 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x82 + strh r0, [r1] + ldr r0, _0802C310 @ =0x0000FFF0 + strh r0, [r4, #0x36] + subs r1, #0x4a + movs r0, #3 + strb r0, [r1] + ldrb r1, [r4, #0x19] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r3] + adds r0, r4, #0 + adds r0, #0x7c + strh r2, [r0] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0802C314 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r4, #0 + adds r0, #0x7e + strh r1, [r0] + adds r0, r4, #0 + bl sub_0802C62C + adds r0, r4, #0 + bl sub_0802C4B0 + pop {r4, r5, pc} + .align 2, 0 +_0802C310: .4byte 0x0000FFF0 +_0802C314: .4byte gUnk_03000BF0 + + thumb_func_start sub_0802C318 +sub_0802C318: @ 0x0802C318 + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x7a + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0802C330 + movs r0, #2 + strb r0, [r2, #0xc] +_0802C330: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0802C334 +sub_0802C334: @ 0x0802C334 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r3, r4, #0 + adds r3, #0x7c + ldrh r0, [r3] + cmp r0, #0 + bne _0802C36A + ldr r0, _0802C3C4 @ =gUnk_03000BF0 + ldrh r1, [r0, #8] + ldr r2, _0802C3C8 @ =gUnk_03001160 + cmp r2, #0 + bne _0802C34E + b _0802C4AA +_0802C34E: + movs r5, #0x32 + ldrsh r0, [r2, r5] + subs r0, r0, r1 + cmp r0, #0x38 + bhi _0802C35A + b _0802C4AA +_0802C35A: + movs r0, #1 + strh r0, [r3] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] +_0802C36A: + adds r0, r4, #0 + bl sub_08004274 + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0802C3C4 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r4, #0 + adds r0, #0x7e + strh r1, [r0] + adds r0, #6 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #1 + bne _0802C3CC + movs r0, #0xa6 + lsls r0, r0, #1 + bl sub_08004488 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x7a + movs r0, #0xc + strh r0, [r1] + adds r0, r4, #0 + bl sub_0802C4B0 + b _0802C48C + .align 2, 0 +_0802C3C4: .4byte gUnk_03000BF0 +_0802C3C8: .4byte gUnk_03001160 +_0802C3CC: + adds r0, r4, #0 + adds r0, #0x7a + ldrh r1, [r0] + adds r7, r0, #0 + cmp r1, #0 + beq _0802C442 + subs r0, r1, #1 + strh r0, [r7] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0 + beq _0802C3EA + cmp r0, #8 + beq _0802C3F4 + b _0802C442 +_0802C3EA: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + b _0802C442 +_0802C3F4: + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _0802C442 + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _0802C442 + movs r6, #0 + movs r5, #1 +_0802C408: + adds r0, r4, #0 + movs r1, #0x15 + movs r2, #0 + bl sub_080A29AC + adds r2, r0, #0 + cmp r2, #0 + beq _0802C420 + ldrh r0, [r2, #0x2e] + adds r0, #0xc + subs r0, r0, r6 + strh r0, [r2, #0x2e] +_0802C420: + adds r6, #0x18 + subs r5, #1 + cmp r5, #0 + bge _0802C408 + adds r0, r4, #0 + bl sub_0802C62C + bl sub_08000E50 + movs r1, #0xff + ands r0, r1 + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r2, #0 + orrs r0, r1 + strh r0, [r7] + b _0802C4AA +_0802C442: + ldr r0, _0802C45C @ =gUnk_03000BF0 + ldrh r1, [r0, #8] + ldrh r0, [r0, #0x20] + adds r1, r1, r0 + movs r5, #0x32 + ldrsh r0, [r4, r5] + subs r5, r1, r0 + cmp r5, #4 + ble _0802C460 + adds r0, r4, #0 + bl sub_080AEFB4 + b _0802C48C + .align 2, 0 +_0802C45C: .4byte gUnk_03000BF0 +_0802C460: + adds r0, r4, #0 + bl sub_0806F69C + movs r1, #0x36 + ldrsh r0, [r4, r1] + subs r0, r0, r5 + cmp r0, #0x38 + ble _0802C48C + adds r0, r4, #0 + bl sub_0802C62C + bl sub_08000E50 + movs r1, #0x7f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strh r0, [r7] + ldrb r0, [r4, #0xa] + cmp r0, #3 + bne _0802C48C + strb r0, [r4, #0xc] +_0802C48C: + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0xb + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_08016A04 +_0802C4AA: + pop {r4, r5, r6, r7, pc} + + thumb_func_start nullsub_148 +nullsub_148: @ 0x0802C4AC + bx lr + .align 2, 0 + + thumb_func_start sub_0802C4B0 +sub_0802C4B0: @ 0x0802C4B0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r0, #0x7e + ldrh r0, [r0] + adds r1, r5, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080001DA + adds r1, r0, #0 + ldr r0, _0802C4D8 @ =0x000001AB + cmp r1, r0 + blo _0802C4E4 + adds r0, #4 + cmp r1, r0 + bls _0802C4DC + adds r0, #0x15 + cmp r1, r0 + beq _0802C4E0 + b _0802C4E4 + .align 2, 0 +_0802C4D8: .4byte 0x000001AB +_0802C4DC: + movs r6, #8 + b _0802C4E6 +_0802C4E0: + movs r6, #4 + b _0802C4E6 +_0802C4E4: + movs r6, #0 +_0802C4E6: + bl sub_08000E50 + adds r4, r0, #0 + movs r0, #7 + ands r4, r0 + movs r0, #4 + ands r0, r4 + cmp r0, #0 + beq _0802C518 + movs r0, #3 + ands r4, r0 + cmp r4, #0 + beq _0802C50C + ldr r0, _0802C508 @ =gUnk_080CD568 + movs r1, #2 + orrs r1, r6 + b _0802C532 + .align 2, 0 +_0802C508: .4byte gUnk_080CD568 +_0802C50C: + ldr r0, _0802C514 @ =gUnk_080CD568 + lsls r1, r6, #1 + b _0802C534 + .align 2, 0 +_0802C514: .4byte gUnk_080CD568 +_0802C518: + movs r2, #3 + ands r4, r2 + cmp r4, #0 + beq _0802C52C + ldr r0, _0802C528 @ =gUnk_080CD568 + movs r1, #1 + orrs r1, r6 + b _0802C532 + .align 2, 0 +_0802C528: .4byte gUnk_080CD568 +_0802C52C: + ldr r0, _0802C570 @ =gUnk_080CD568 + adds r1, r6, #0 + orrs r1, r2 +_0802C532: + lsls r1, r1, #1 +_0802C534: + adds r1, r1, r0 + ldrh r0, [r1] + strh r0, [r5, #0x24] + bl sub_08000E50 + adds r4, r0, #0 + movs r0, #7 + ands r4, r0 + movs r0, #4 + ands r0, r4 + cmp r0, #0 + beq _0802C584 + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _0802C55E + movs r0, #0 + strb r0, [r5, #0xe] + adds r0, r5, #0 + movs r1, #0 + bl sub_08004260 +_0802C55E: + movs r0, #3 + ands r4, r0 + cmp r4, #0 + beq _0802C578 + ldr r0, _0802C574 @ =gUnk_080CD580 + movs r1, #1 + orrs r1, r6 + b _0802C5B2 + .align 2, 0 +_0802C570: .4byte gUnk_080CD568 +_0802C574: .4byte gUnk_080CD580 +_0802C578: + ldr r0, _0802C580 @ =gUnk_080CD580 + adds r0, r6, r0 + ldrb r0, [r0] + b _0802C5B6 + .align 2, 0 +_0802C580: .4byte gUnk_080CD580 +_0802C584: + ldrb r0, [r5, #0xe] + cmp r0, #1 + beq _0802C596 + movs r0, #1 + strb r0, [r5, #0xe] + adds r0, r5, #0 + movs r1, #1 + bl sub_08004260 +_0802C596: + movs r2, #3 + ands r4, r2 + cmp r4, #0 + beq _0802C5AC + ldr r0, _0802C5A8 @ =gUnk_080CD580 + movs r1, #2 + orrs r1, r6 + b _0802C5B2 + .align 2, 0 +_0802C5A8: .4byte gUnk_080CD580 +_0802C5AC: + ldr r0, _0802C5E4 @ =gUnk_080CD580 + adds r1, r6, #0 + orrs r1, r2 +_0802C5B2: + adds r1, r1, r0 + ldrb r0, [r1] +_0802C5B6: + strb r0, [r5, #0x15] + bl sub_08000E50 + adds r4, r0, #0 + movs r0, #7 + ands r4, r0 + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r5, #0x20] + movs r0, #4 + ands r0, r4 + cmp r0, #0 + beq _0802C5FC + movs r0, #3 + ands r4, r0 + cmp r4, #0 + beq _0802C5EC + adds r2, r5, #0 + adds r2, #0x84 + ldr r1, _0802C5E8 @ =gUnk_080CD58C + movs r0, #1 + orrs r6, r0 + b _0802C61A + .align 2, 0 +_0802C5E4: .4byte gUnk_080CD580 +_0802C5E8: .4byte gUnk_080CD58C +_0802C5EC: + adds r2, r5, #0 + adds r2, #0x84 + ldr r1, _0802C5F8 @ =gUnk_080CD58C + orrs r6, r0 + b _0802C61A + .align 2, 0 +_0802C5F8: .4byte gUnk_080CD58C +_0802C5FC: + movs r0, #3 + ands r4, r0 + cmp r4, #0 + beq _0802C614 + adds r2, r5, #0 + adds r2, #0x84 + ldr r1, _0802C610 @ =gUnk_080CD58C + movs r0, #2 + orrs r6, r0 + b _0802C61A + .align 2, 0 +_0802C610: .4byte gUnk_080CD58C +_0802C614: + adds r2, r5, #0 + adds r2, #0x84 + ldr r1, _0802C628 @ =gUnk_080CD58C +_0802C61A: + lsls r0, r6, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + str r0, [r2] + pop {r4, r5, r6, pc} + .align 2, 0 +_0802C628: .4byte gUnk_080CD58C + + thumb_func_start sub_0802C62C +sub_0802C62C: @ 0x0802C62C + adds r3, r0, #0 + movs r2, #0 + movs r0, #1 + strb r0, [r3, #0xc] + adds r0, r3, #0 + adds r0, #0x82 + ldrh r0, [r0] + strh r0, [r3, #0x32] + adds r0, r3, #0 + adds r0, #0x80 + ldrh r0, [r0] + strh r0, [r3, #0x2e] + ldrb r1, [r3, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r3, #0x18] + ldrb r1, [r3, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r3, #0x10] + adds r0, r3, #0 + adds r0, #0x7c + strh r2, [r0] + bx lr + .align 2, 0 + + thumb_func_start sub_0802C660 +sub_0802C660: @ 0x0802C660 + push {lr} + ldr r1, _0802C66C @ =gUnk_080CD5D4 + bl sub_0800129E + pop {pc} + .align 2, 0 +_0802C66C: .4byte gUnk_080CD5D4 + + thumb_func_start sub_0802C670 +sub_0802C670: @ 0x0802C670 + push {lr} + ldr r2, _0802C684 @ =gUnk_080CD5EC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802C684: .4byte gUnk_080CD5EC + + thumb_func_start sub_0802C688 +sub_0802C688: @ 0x0802C688 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0802C69A + b _0802C79E +_0802C69A: + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x16 + bhi _0802C740 + lsls r0, r0, #2 + ldr r1, _0802C6AC @ =_0802C6B0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802C6AC: .4byte _0802C6B0 +_0802C6B0: @ jump table + .4byte _0802C70C @ case 0 + .4byte _0802C70C @ case 1 + .4byte _0802C740 @ case 2 + .4byte _0802C740 @ case 3 + .4byte _0802C740 @ case 4 + .4byte _0802C740 @ case 5 + .4byte _0802C740 @ case 6 + .4byte _0802C740 @ case 7 + .4byte _0802C740 @ case 8 + .4byte _0802C740 @ case 9 + .4byte _0802C740 @ case 10 + .4byte _0802C740 @ case 11 + .4byte _0802C740 @ case 12 + .4byte _0802C740 @ case 13 + .4byte _0802C72C @ case 14 + .4byte _0802C740 @ case 15 + .4byte _0802C740 @ case 16 + .4byte _0802C740 @ case 17 + .4byte _0802C740 @ case 18 + .4byte _0802C740 @ case 19 + .4byte _0802C72C @ case 20 + .4byte _0802C72C @ case 21 + .4byte _0802C72C @ case 22 +_0802C70C: + adds r0, r4, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #0 + beq _0802C7A6 + adds r1, r4, #0 + adds r1, #0x42 + movs r0, #0 + strb r0, [r1] + ldr r0, _0802C728 @ =gUnk_03001160 + adds r0, #0x42 + movs r1, #4 + strb r1, [r0] + b _0802C7A6 + .align 2, 0 +_0802C728: .4byte gUnk_03001160 +_0802C72C: + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x42 + strb r1, [r0] + adds r0, r4, #0 + bl sub_0802CBC4 + b _0802C7A6 +_0802C740: + adds r2, r4, #0 + adds r2, #0x82 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x80 + movs r0, #0x1c + strb r0, [r1] + ldrb r0, [r2] + cmp r0, #1 + beq _0802C75E + cmp r0, #2 + beq _0802C770 + b _0802C79E +_0802C75E: + adds r0, r4, #0 + bl sub_0802CB68 + ldr r0, _0802C76C @ =0x0000014D + bl sub_08004488 + b _0802C79E + .align 2, 0 +_0802C76C: .4byte 0x0000014D +_0802C770: + movs r0, #3 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x6e + strb r0, [r1] + movs r1, #1 + strb r1, [r4, #0xf] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] + movs r0, #0 + strh r0, [r4, #0x24] + adds r0, r4, #0 + adds r0, #0x81 + strb r1, [r0] + ldrb r1, [r4, #0x15] + lsrs r1, r1, #4 + movs r0, #6 + orrs r1, r0 + adds r0, r4, #0 + bl sub_08004260 +_0802C79E: + ldr r1, _0802C7A8 @ =gUnk_080CD5D4 + adds r0, r4, #0 + bl sub_0804AA30 +_0802C7A6: + pop {r4, pc} + .align 2, 0 +_0802C7A8: .4byte gUnk_080CD5D4 + + thumb_func_start sub_0802C7AC +sub_0802C7AC: @ 0x0802C7AC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #2 + bhi _0802C7F6 + adds r0, r4, #0 + bl sub_0806F520 + adds r1, r0, #0 + cmp r1, #0 + bne _0802C7F6 + strb r1, [r4, #0xd] + movs r0, #1 + strb r0, [r4, #0xf] + strh r1, [r4, #0x36] + adds r0, r4, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #2 + beq _0802C7E2 + movs r1, #0x80 + cmp r0, #0 + beq _0802C7E0 + movs r0, #0x80 + lsls r0, r0, #2 + adds r1, r0, #0 +_0802C7E0: + strh r1, [r4, #0x24] +_0802C7E2: + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] + adds r0, r4, #0 + adds r0, #0x83 + movs r1, #0 + strb r1, [r0] + subs r0, #2 + strb r1, [r0] + b _0802C816 +_0802C7F6: + ldr r0, _0802C818 @ =0x0000FFFF + strh r0, [r4, #0x36] + ldr r1, _0802C81C @ =gUnk_080CD600 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0802C816 + adds r0, r4, #0 + bl sub_08004274 +_0802C816: + pop {r4, pc} + .align 2, 0 +_0802C818: .4byte 0x0000FFFF +_0802C81C: .4byte gUnk_080CD600 + + thumb_func_start sub_0802C820 +sub_0802C820: @ 0x0802C820 + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x3c + strb r1, [r0, #0x1d] + bx lr + .align 2, 0 + + thumb_func_start sub_0802C82C +sub_0802C82C: @ 0x0802C82C + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_0802C834 +sub_0802C834: @ 0x0802C834 + push {lr} + bl sub_0806F3E4 + pop {pc} + + thumb_func_start sub_0802C83C +sub_0802C83C: @ 0x0802C83C + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x82 + ldrb r0, [r1] + cmp r0, #0 + beq _0802C88C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802C884 + movs r0, #3 + strb r0, [r4, #0xc] + ldr r0, _0802C86C @ =gUnk_03001160 + ldrb r0, [r0, #0x14] + movs r1, #6 + ands r1, r0 + cmp r1, #2 + beq _0802C870 + cmp r1, #6 + beq _0802C876 + b _0802C87C + .align 2, 0 +_0802C86C: .4byte gUnk_03001160 +_0802C870: + ldrh r0, [r4, #0x2e] + subs r0, #6 + b _0802C87A +_0802C876: + ldrh r0, [r4, #0x2e] + adds r0, #6 +_0802C87A: + strh r0, [r4, #0x2e] +_0802C87C: + adds r0, r4, #0 + bl sub_0802CBC4 + b _0802C8B2 +_0802C884: + adds r0, r4, #0 + bl sub_0802CC18 + b _0802C8A2 +_0802C88C: + movs r0, #2 + strb r0, [r1] + movs r0, #0x78 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x15] + lsrs r1, r1, #4 + movs r0, #6 + orrs r1, r0 + adds r0, r4, #0 + bl sub_08004260 +_0802C8A2: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x6e + strb r0, [r1] +_0802C8B2: + pop {r4, pc} + + thumb_func_start nullsub_149 +nullsub_149: @ 0x0802C8B4 + bx lr + .align 2, 0 + + thumb_func_start sub_0802C8B8 +sub_0802C8B8: @ 0x0802C8B8 + push {lr} + movs r1, #3 + strb r1, [r0, #0xc] + bl sub_0802CBC4 + pop {pc} + + thumb_func_start sub_0802C8C4 +sub_0802C8C4: @ 0x0802C8C4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A7D4 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + pop {r4, pc} + + thumb_func_start sub_0802C8D8 +sub_0802C8D8: @ 0x0802C8D8 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 + movs r0, #1 + strb r0, [r5, #0xc] + movs r0, #0x3c + strb r0, [r5, #0xe] + strb r4, [r5, #0xf] + bl sub_08000E50 + movs r1, #0x18 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r5, #0x15] + strb r4, [r5, #0x16] + movs r0, #0x12 + strb r0, [r5, #0x1c] + adds r0, r5, #0 + adds r0, #0x82 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + subs r0, #3 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + ldrb r1, [r5, #0x15] + lsrs r1, r1, #4 + adds r0, r5, #0 + bl sub_08004260 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0802C91C +sub_0802C91C: @ 0x0802C91C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080AEF88 + adds r0, r4, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #0 + beq _0802C97A + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _0802C950 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_0800417E + ldrb r1, [r4, #0x15] + lsrs r1, r1, #4 + movs r0, #2 + orrs r1, r0 + adds r0, r4, #0 + bl sub_08004260 +_0802C950: + ldrb r0, [r4, #0xe] + subs r1, r0, #1 + strb r1, [r4, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _0802C964 + adds r0, r4, #0 + bl sub_0802CBC4 + b _0802C9B4 +_0802C964: + movs r0, #0xf + ands r1, r0 + cmp r1, #8 + bne _0802C972 + adds r0, r4, #0 + bl sub_080A29FC +_0802C972: + adds r0, r4, #0 + bl sub_0802CC18 + b _0802C9B4 +_0802C97A: + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _0802C992 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_0800417E + ldrb r1, [r4, #0x15] + lsrs r1, r1, #4 + adds r0, r4, #0 + bl sub_08004260 +_0802C992: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802C9B4 + movs r0, #0x3c + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x15] + adds r1, #8 + movs r0, #0x1c + ands r1, r0 + strb r1, [r4, #0x15] + lsrs r1, r1, #4 + adds r0, r4, #0 + bl sub_08004260 +_0802C9B4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802C9B8 +sub_0802C9B8: @ 0x0802C9B8 + push {lr} + ldr r2, _0802C9CC @ =gUnk_080CD618 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802C9CC: .4byte gUnk_080CD618 + + thumb_func_start sub_0802C9D0 +sub_0802C9D0: @ 0x0802C9D0 + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + strb r2, [r4, #0xd] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r3] + adds r0, r4, #0 + adds r0, #0x83 + strb r2, [r0] + adds r0, r4, #0 + bl sub_0802CC18 + ldrb r1, [r4, #0x15] + lsrs r1, r1, #4 + movs r0, #6 + orrs r1, r0 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_0802CA10 +sub_0802CA10: @ 0x0802CA10 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0802CA30 @ =gUnk_03003F80 + ldrb r0, [r0, #5] + cmp r0, #5 + beq _0802CA42 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802CA34 + adds r0, r4, #0 + bl sub_0802CBC4 + b _0802CA66 + .align 2, 0 +_0802CA30: .4byte gUnk_03003F80 +_0802CA34: + adds r0, r4, #0 + bl sub_0802CC18 + adds r0, r4, #0 + bl sub_08004274 + b _0802CA66 +_0802CA42: + adds r1, r4, #0 + adds r1, #0x83 + movs r0, #2 + strb r0, [r1] + ldr r0, _0802CA68 @ =gUnk_03001160 + ldrb r0, [r0, #0x14] + lsls r0, r0, #2 + movs r1, #4 + orrs r0, r1 + movs r1, #0x1c + ands r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_0802CC18 + adds r0, r4, #0 + bl sub_08004274 +_0802CA66: + pop {r4, pc} + .align 2, 0 +_0802CA68: .4byte gUnk_03001160 + + thumb_func_start sub_0802CA6C +sub_0802CA6C: @ 0x0802CA6C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802CA84 + adds r0, r4, #0 + bl sub_0802CBC4 + b _0802CA90 +_0802CA84: + adds r0, r4, #0 + bl sub_0802CC18 + adds r0, r4, #0 + bl sub_08004274 +_0802CA90: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802CA94 +sub_0802CA94: @ 0x0802CA94 + push {lr} + adds r3, r0, #0 + movs r2, #0 + movs r0, #3 + strb r0, [r3, #0xc] + ldrb r1, [r3, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r3, #0x10] + movs r0, #1 + strb r0, [r3, #0xf] + movs r0, #0x29 + adds r0, r0, r3 + mov ip, r0 + ldrb r1, [r0] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r3, #0x20] + movs r0, #0 + strh r2, [r3, #0x24] + adds r1, r3, #0 + adds r1, #0x83 + strb r0, [r1] + subs r1, #2 + strb r0, [r1] + ldr r0, _0802CAF4 @ =gUnk_03001160 + ldrb r1, [r0, #0x14] + lsls r1, r1, #2 + movs r0, #4 + orrs r1, r0 + movs r0, #0x1c + ands r1, r0 + strb r1, [r3, #0x15] + lsrs r1, r1, #4 + movs r0, #6 + orrs r1, r0 + adds r0, r3, #0 + bl sub_08004260 + pop {pc} + .align 2, 0 +_0802CAF4: .4byte gUnk_03001160 + + thumb_func_start sub_0802CAF8 +sub_0802CAF8: @ 0x0802CAF8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802CB10 + adds r0, r4, #0 + bl sub_0802CBC4 + b _0802CB62 +_0802CB10: + adds r0, r4, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + beq _0802CB30 + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #1 + bne _0802CB30 + movs r0, #0x82 + lsls r0, r0, #1 + bl sub_08004488 +_0802CB30: + adds r0, r4, #0 + bl sub_0802CC18 + adds r0, r4, #0 + bl sub_08078930 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0802CB5C + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0802CB5C + strb r0, [r4, #0xf] + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r1, r0 + strb r1, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x6e + strb r0, [r1] +_0802CB5C: + adds r0, r4, #0 + bl sub_08004274 +_0802CB62: + pop {r4, pc} + + thumb_func_start nullsub_150 +nullsub_150: @ 0x0802CB64 + bx lr + .align 2, 0 + + thumb_func_start sub_0802CB68 +sub_0802CB68: @ 0x0802CB68 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 + movs r1, #0 + movs r0, #1 + strb r0, [r5, #0xc] + strb r1, [r5, #0xd] + bl sub_08000E50 + adds r2, r0, #0 + movs r0, #0x18 + ands r2, r0 + movs r0, #4 + orrs r2, r0 + orrs r2, r4 + strb r2, [r5, #0x15] + ldrb r0, [r5, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + adds r0, r5, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #0 + beq _0802CBB2 + movs r0, #0xc8 + strb r0, [r5, #0xe] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r5, #0x24] + lsrs r1, r2, #4 + movs r0, #2 + orrs r1, r0 + adds r0, r5, #0 + bl sub_08004260 + b _0802CBC2 +_0802CBB2: + movs r0, #0x3c + strb r0, [r5, #0xe] + movs r0, #0x80 + strh r0, [r5, #0x24] + lsrs r1, r2, #4 + adds r0, r5, #0 + bl sub_08004260 +_0802CBC2: + pop {r4, r5, pc} + + thumb_func_start sub_0802CBC4 +sub_0802CBC4: @ 0x0802CBC4 + push {r4, lr} + adds r4, r0, #0 + movs r2, #0 + movs r0, #4 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #8 + ands r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x45 + strb r2, [r0] + adds r0, #0x3e + ldrb r0, [r0] + cmp r0, #0 + beq _0802CBF0 + bl sub_08079184 +_0802CBF0: + adds r0, r4, #0 + bl sub_08078954 + adds r0, r4, #0 + movs r1, #0x20 + movs r2, #0 + movs r3, #0 + bl sub_080A2988 + adds r2, r0, #0 + cmp r2, #0 + beq _0802CC14 + adds r0, r4, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r2, #0 + adds r0, #0x38 + strb r1, [r0] +_0802CC14: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802CC18 +sub_0802CC18: @ 0x0802CC18 + push {lr} + adds r1, r0, #0 + adds r1, #0x80 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802CC34 + movs r0, #0x1c + strb r0, [r1] + ldr r0, _0802CC38 @ =0x0000014D + bl sub_08004488 +_0802CC34: + pop {pc} + .align 2, 0 +_0802CC38: .4byte 0x0000014D + + thumb_func_start sub_0802CC3C +sub_0802CC3C: @ 0x0802CC3C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _0802CC64 @ =gUnk_080CD6FC + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, r5, pc} + .align 2, 0 +_0802CC64: .4byte gUnk_080CD6FC + + thumb_func_start sub_0802CC68 +sub_0802CC68: @ 0x0802CC68 + push {lr} + ldr r2, _0802CC7C @ =gUnk_080CD714 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802CC7C: .4byte gUnk_080CD714 + + thumb_func_start sub_0802CC80 +sub_0802CC80: @ 0x0802CC80 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + movs r5, #0x7f + adds r1, r5, #0 + ands r1, r0 + cmp r1, #0 + blt _0802CCB8 + cmp r1, #1 + ble _0802CC9A + cmp r1, #0x1e + bne _0802CCB8 +_0802CC9A: + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + adds r0, r5, #0 + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + ldr r2, _0802CCD4 @ =gUnk_03001160 + ldrb r1, [r2, #0x10] + adds r0, r5, #0 + ands r0, r1 + strb r0, [r2, #0x10] +_0802CCB8: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0802CCCA + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0802CCCA: + ldr r1, _0802CCD8 @ =gUnk_080CD6FC + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, r5, pc} + .align 2, 0 +_0802CCD4: .4byte gUnk_03001160 +_0802CCD8: .4byte gUnk_080CD6FC + + thumb_func_start nullsub_151 +nullsub_151: @ 0x0802CCDC + bx lr + .align 2, 0 + + thumb_func_start sub_0802CCE0 +sub_0802CCE0: @ 0x0802CCE0 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r5, #0 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + bl sub_08000E50 + strb r0, [r4, #0xf] + ldrb r1, [r4, #0x18] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x20 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #0xff + strb r0, [r4, #0x14] + ldr r0, _0802CD50 @ =0x0000FFFE + strh r0, [r4, #0x36] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + bl sub_08000E50 + adds r1, r4, #0 + adds r1, #0x7a + strb r0, [r1] + lsrs r0, r0, #8 + movs r1, #0x60 + ands r0, r1 + adds r1, r4, #0 + adds r1, #0x7b + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x7c + strh r5, [r0] + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0802CF64 + adds r0, r4, #0 + bl sub_0802CFD8 + pop {r4, r5, pc} + .align 2, 0 +_0802CD50: .4byte 0x0000FFFE + + thumb_func_start sub_0802CD54 +sub_0802CD54: @ 0x0802CD54 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_08004274 + adds r0, r5, #0 + bl sub_0802CFD8 + adds r1, r5, #0 + adds r1, #0x7c + ldrh r0, [r1] + cmp r0, #0 + beq _0802CD76 + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0802CDC8 +_0802CD76: + adds r0, r5, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0802CDC8 + adds r6, r5, #0 + adds r6, #0x7b + ldrb r0, [r6] + cmp r0, #0 + bne _0802CDC4 + movs r0, #2 + strb r0, [r5, #0xc] + bl sub_08000E50 + adds r4, r0, #0 + lsrs r0, r4, #0x10 + strb r0, [r5, #0xe] + movs r0, #0xc0 + strh r0, [r5, #0x24] + bl sub_08000E50 + ldr r2, _0802CDC0 @ =gUnk_080CD728 + movs r1, #3 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r1, [r1] + adds r0, r5, #0 + adds r0, #0x78 + strh r1, [r0] + lsrs r4, r4, #0x18 + movs r0, #0x60 + ands r4, r0 + strb r4, [r6] + b _0802CDE4 + .align 2, 0 +_0802CDC0: .4byte gUnk_080CD728 +_0802CDC4: + subs r0, #1 + strb r0, [r6] +_0802CDC8: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802CDDE + movs r0, #0x3c + strb r0, [r5, #0xe] + adds r0, r5, #0 + bl sub_0802CF64 +_0802CDDE: + adds r0, r5, #0 + bl sub_0806F69C +_0802CDE4: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0802CDE8 +sub_0802CDE8: @ 0x0802CDE8 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0802CE3C + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0802CE3C + ldrb r1, [r4, #0xe] + adds r0, r1, #1 + strb r0, [r4, #0xe] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _0802CE2E + ldr r0, _0802CE38 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 + adds r0, r4, #0 + bl sub_0802CF8C +_0802CE2E: + adds r0, r4, #0 + bl sub_0806F69C + b _0802CE58 + .align 2, 0 +_0802CE38: .4byte gUnk_020000B0 +_0802CE3C: + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + movs r0, #0x60 + strh r0, [r4, #0x24] + bl sub_08000E50 + movs r1, #0x38 + ands r0, r1 + adds r0, #0x96 + adds r1, r4, #0 + adds r1, #0x7c + strh r0, [r1] +_0802CE58: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0802CFD8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802CE68 +sub_0802CE68: @ 0x0802CE68 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r2, _0802CED4 @ =gUnk_03003F80 + ldrb r1, [r2, #0xa] + movs r0, #0x80 + orrs r1, r0 + strb r1, [r2, #0xa] + ldrb r1, [r2, #0x1a] + orrs r0, r1 + strb r0, [r2, #0x1a] + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #1 + orrs r0, r1 + str r0, [r2, #0x30] + ldr r5, _0802CED8 @ =gUnk_03001160 + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r0, #0x32 + ldrsh r2, [r5, r0] + adds r0, r4, #0 + movs r3, #4 + bl sub_0806FCB8 + cmp r0, #0 + bne _0802CEAC + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F69C +_0802CEAC: + adds r0, r4, #0 + bl sub_0802CFD8 + adds r0, r4, #0 + bl sub_08004274 + adds r3, r4, #0 + adds r3, #0x5a + ldrb r1, [r3] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + beq _0802CEDC + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + b _0802CEF0 + .align 2, 0 +_0802CED4: .4byte gUnk_03003F80 +_0802CED8: .4byte gUnk_03001160 +_0802CEDC: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0802CEF0 + strb r2, [r3] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r5, #0x18] +_0802CEF0: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0802CEF4 +sub_0802CEF4: @ 0x0802CEF4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0802CFD8 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802CF28 + bl sub_0805E5A8 + ldr r1, _0802CF20 @ =gUnk_0813AB1C + ldr r0, _0802CF24 @ =gUnk_02033A90 + ldrb r0, [r0, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl sub_08080840 + b _0802CF5A + .align 2, 0 +_0802CF20: .4byte gUnk_0813AB1C +_0802CF24: .4byte gUnk_02033A90 +_0802CF28: + ldr r0, [r4, #0x34] + ldr r1, _0802CF5C @ =0xFFFE0000 + adds r0, r0, r1 + str r0, [r4, #0x34] + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #0x30 + rsbs r0, r0, #0 + cmp r1, r0 + bge _0802CF4A + ldrb r0, [r4, #0x18] + movs r1, #0x31 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #0x10 + orrs r1, r0 + strb r1, [r4, #0x18] +_0802CF4A: + ldr r1, _0802CF60 @ =gUnk_03003F80 + ldrb r0, [r1, #0xa] + movs r2, #0x80 + orrs r0, r2 + strb r0, [r1, #0xa] + ldrb r0, [r1, #0x1a] + orrs r0, r2 + strb r0, [r1, #0x1a] +_0802CF5A: + pop {r4, pc} + .align 2, 0 +_0802CF5C: .4byte 0xFFFE0000 +_0802CF60: .4byte gUnk_03003F80 + + thumb_func_start sub_0802CF64 +sub_0802CF64: @ 0x0802CF64 + push {r4, lr} + adds r4, r0, #0 + bl sub_08049FA0 + cmp r0, #0 + beq _0802CF76 + bl sub_08000E50 + b _0802CF7E +_0802CF76: + adds r0, r4, #0 + bl sub_08049EE4 + adds r0, #2 +_0802CF7E: + movs r1, #0x1c + ands r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_0802CF8C + pop {r4, pc} + + thumb_func_start sub_0802CF8C +sub_0802CF8C: @ 0x0802CF8C + push {r4, lr} + adds r3, r0, #0 + ldrb r1, [r3, #0x15] + adds r2, r1, #2 + movs r0, #0x1c + ands r2, r0 + ldrb r4, [r3, #0x14] + lsls r0, r4, #2 + subs r0, r2, r0 + adds r0, #6 + cmp r0, #0xc + bls _0802CFA8 + lsrs r0, r2, #2 + b _0802CFB8 +_0802CFA8: + adds r0, r1, #1 + movs r1, #7 + ands r0, r1 + cmp r0, #2 + ble _0802CFD0 + lsrs r0, r2, #2 + cmp r0, r4 + beq _0802CFD0 +_0802CFB8: + strb r0, [r3, #0x14] + lsrs r0, r2, #3 + lsls r0, r0, #2 + ldr r1, _0802CFD4 @ =gUnk_080CD730 + adds r2, r0, r1 + ldrh r1, [r2] + adds r0, r3, #0 + adds r0, #0x74 + strh r1, [r0] + ldrh r1, [r2, #2] + adds r0, #2 + strh r1, [r0] +_0802CFD0: + pop {r4, pc} + .align 2, 0 +_0802CFD4: .4byte gUnk_080CD730 + + thumb_func_start sub_0802CFD8 +sub_0802CFD8: @ 0x0802CFD8 + push {lr} + mov ip, r0 + ldr r2, _0802D014 @ =gUnk_080CD740 + mov r3, ip + adds r3, #0x7a + ldrb r0, [r3] + adds r1, r0, #1 + strb r1, [r3] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1b + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + movs r2, #0 + ldrsb r2, [r0, r2] + mov r0, ip + adds r0, #0x74 + movs r3, #0 + ldrsh r1, [r0, r3] + adds r1, r1, r2 + movs r0, #0x80 + lsls r0, r0, #1 + adds r2, r2, r0 + mov r0, ip + adds r0, #0x76 + ldrh r3, [r0] + mov r0, ip + bl sub_0805EC9C + pop {pc} + .align 2, 0 +_0802D014: .4byte gUnk_080CD740 + + thumb_func_start sub_0802D018 +sub_0802D018: @ 0x0802D018 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _0802D030 @ =gUnk_080CD748 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_0802D030: .4byte gUnk_080CD748 + + thumb_func_start sub_0802D034 +sub_0802D034: @ 0x0802D034 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08078B48 + ldrb r0, [r4, #0xa] + cmp r0, #1 + beq _0802D0F4 + cmp r0, #1 + bgt _0802D04C + cmp r0, #0 + beq _0802D104 + b _0802D148 +_0802D04C: + cmp r0, #2 + bne _0802D148 + ldrb r1, [r4, #0xb] + cmp r1, #0 + bne _0802D090 + movs r0, #1 + strb r0, [r4, #0xb] + strb r1, [r4, #0xe] + movs r0, #0x3c + strb r0, [r4, #0xf] + adds r2, r4, #0 + adds r2, #0x74 + movs r0, #0x10 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x75 + strb r1, [r0] + ldr r1, _0802D088 @ =gUnk_03000F50 + ldrb r2, [r2] + adds r0, r1, #0 + adds r0, #0x68 + strh r2, [r0] + adds r1, #0x66 + ldr r0, _0802D08C @ =0x00001442 + strh r0, [r1] + movs r0, #0xf6 + bl sub_080A3268 + b _0802D148 + .align 2, 0 +_0802D088: .4byte gUnk_03000F50 +_0802D08C: .4byte 0x00001442 +_0802D090: + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _0802D0D2 + adds r3, r4, #0 + adds r3, #0x75 + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] + adds r1, r4, #0 + adds r1, #0x74 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + ldr r2, _0802D0EC @ =gUnk_03000F50 + ldrb r1, [r1] + ldrb r0, [r3] + lsls r0, r0, #8 + orrs r1, r0 + adds r2, #0x68 + strh r1, [r2] + movs r0, #0x80 + lsls r0, r0, #5 + cmp r1, r0 + bne _0802D0D2 + ldr r0, _0802D0F0 @ =gUnk_03001160 + bl sub_0807AABC + bl sub_0805E780 +_0802D0D2: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0802D148 + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802D148 + movs r0, #0xf7 + bl sub_080A3268 + b _0802D148 + .align 2, 0 +_0802D0EC: .4byte gUnk_03000F50 +_0802D0F0: .4byte gUnk_03001160 +_0802D0F4: + movs r0, #0x94 + lsls r0, r0, #1 + bl sub_080A3268 + adds r0, r4, #0 + bl sub_0804A7D4 + b _0802D148 +_0802D104: + ldr r5, _0802D14C @ =gUnk_03003F80 + movs r0, #1 + strb r0, [r5, #0x14] + ldr r1, _0802D150 @ =gUnk_03001160 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r2, #0x3f + ands r2, r0 + adds r0, r4, #0 + bl sub_0806FC80 + cmp r0, #0 + beq _0802D128 + adds r1, r5, #0 + adds r1, #0x3f + movs r0, #0xfa + strb r0, [r1] +_0802D128: + ldr r1, _0802D154 @ =gUnk_080CD75C + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0802E518 + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + bl sub_0802E7E4 +_0802D148: + pop {r4, r5, pc} + .align 2, 0 +_0802D14C: .4byte gUnk_03003F80 +_0802D150: .4byte gUnk_03001160 +_0802D154: .4byte gUnk_080CD75C + + thumb_func_start sub_0802D158 +sub_0802D158: @ 0x0802D158 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + ldr r0, _0802D16C @ =gUnk_02034490 + strb r1, [r0] + movs r0, #7 + movs r1, #8 + bl sub_08050054 + pop {pc} + .align 2, 0 +_0802D16C: .4byte gUnk_02034490 + + thumb_func_start sub_0802D170 +sub_0802D170: @ 0x0802D170 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r0, _0802D1F0 @ =gUnk_03000FD0 + ldrb r3, [r0] + cmp r3, #0 + bne _0802D216 + ldrb r0, [r5, #0xc] + cmp r0, #1 + bne _0802D1FC + adds r4, r5, #0 + adds r4, #0x84 + ldr r0, [r4] + movs r1, #0x10 + strb r1, [r0, #1] + ldr r0, [r4] + strb r1, [r0, #0x19] + ldr r0, [r4] + movs r1, #0x40 + movs r2, #2 + bl sub_0802EB08 + cmp r0, #0 + bne _0802D216 + ldr r0, [r4] + bl sub_0802EA88 + cmp r0, #0 + bne _0802D216 + movs r0, #2 + strb r0, [r5, #0xc] + ldr r2, _0802D1F4 @ =gUnk_03001160 + ldr r4, _0802D1F8 @ =gUnk_03000BF0 + ldrh r0, [r4, #6] + adds r0, #0x98 + movs r1, #0 + strh r0, [r2, #0x2e] + ldrh r0, [r4, #8] + adds r0, #0xd8 + strh r0, [r2, #0x32] + strb r1, [r2, #0x14] + movs r1, #0x2e + ldrsh r0, [r2, r1] + ldrh r1, [r4, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r6, #0x32 + ldrsh r1, [r2, r6] + ldrh r2, [r4, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + movs r1, #2 + bl sub_0807BA8C + str r5, [r4, #0x30] + movs r0, #6 + movs r1, #8 + bl sub_08050054 + b _0802D216 + .align 2, 0 +_0802D1F0: .4byte gUnk_03000FD0 +_0802D1F4: .4byte gUnk_03001160 +_0802D1F8: .4byte gUnk_03000BF0 +_0802D1FC: + movs r0, #3 + strb r0, [r5, #0xc] + adds r0, r5, #0 + adds r0, #0x80 + strb r3, [r0] + adds r2, r5, #0 + adds r2, #0x84 + ldr r0, [r2] + ldr r1, [r0, #0x50] + movs r0, #0x18 + strb r0, [r1, #0xe] + ldr r0, [r2] + strb r3, [r0, #0x19] +_0802D216: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0802D218 +sub_0802D218: @ 0x0802D218 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x84 + ldr r0, [r5] + movs r1, #0x40 + movs r2, #2 + bl sub_0802EB08 + adds r1, r0, #0 + cmp r1, #0 + bne _0802D254 + movs r0, #4 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + strb r1, [r4, #0xf] + adds r2, r4, #0 + adds r2, #0x7c + movs r0, #0xb4 + strh r0, [r2] + ldr r0, [r5] + ldr r1, [r0, #0x50] + movs r0, #0xc + strb r0, [r1, #0xe] + ldrh r3, [r2] + adds r0, r4, #0 + movs r1, #0x67 + movs r2, #2 + bl sub_080A2988 +_0802D254: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0802D258 +sub_0802D258: @ 0x0802D258 + push {r4, r5, lr} + adds r5, r0, #0 + adds r1, r5, #0 + adds r1, #0x7c + ldrh r0, [r1] + cmp r0, #0 + bne _0802D276 + adds r0, r5, #0 + bl sub_0802E1D0 + ldrb r0, [r5, #0xb] + cmp r0, #5 + bne _0802D288 + strb r0, [r5, #0xc] + b _0802D334 +_0802D276: + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0802D288 + adds r0, r5, #0 + movs r1, #0x4e + bl sub_08004260 +_0802D288: + ldrb r0, [r5, #0xe] + cmp r0, #0 + bne _0802D2B4 + ldr r1, _0802D2B0 @ =gUnk_080CD774 + ldrb r0, [r5, #0xf] + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r5, #0xe] + ldrb r0, [r5, #0xf] + adds r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r5, #0x15] + ldrb r1, [r5, #0xf] + movs r0, #0x3f + ands r0, r1 + adds r0, #2 + strb r0, [r5, #0xf] + b _0802D2B8 + .align 2, 0 +_0802D2B0: .4byte gUnk_080CD774 +_0802D2B4: + subs r0, #1 + strb r0, [r5, #0xe] +_0802D2B8: + ldrb r0, [r5, #0x15] + cmp r0, #1 + bhi _0802D2D0 + adds r4, r5, #0 + adds r4, #0x84 + ldr r0, [r4] + ldrb r3, [r5, #0x15] + movs r1, #5 + movs r2, #0x40 + bl sub_0802EA48 + b _0802D2E4 +_0802D2D0: + adds r4, r5, #0 + adds r4, #0x84 + cmp r0, #0xff + beq _0802D2E4 + ldr r0, [r4] + ldrb r3, [r5, #0x15] + movs r1, #5 + movs r2, #0x40 + bl sub_0802EA68 +_0802D2E4: + ldr r5, _0802D338 @ =gUnk_030010A0 + ldr r0, [r5] + movs r1, #0x1f + ands r0, r1 + cmp r0, #0 + bne _0802D2F8 + movs r0, #0x94 + lsls r0, r0, #1 + bl sub_080A3268 +_0802D2F8: + ldr r0, [r5] + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _0802D32E + bl sub_08000E50 + movs r1, #5 + ands r1, r0 + ldr r0, [r4] + lsls r1, r1, #2 + adds r0, #0x3c + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x48 + movs r2, #0 + bl sub_080A29AC + cmp r0, #0 + beq _0802D32E + adds r2, r0, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] +_0802D32E: + ldr r0, [r4] + bl sub_0802E768 +_0802D334: + pop {r4, r5, pc} + .align 2, 0 +_0802D338: .4byte gUnk_030010A0 + + thumb_func_start sub_0802D33C +sub_0802D33C: @ 0x0802D33C + push {r4, r5, r6, r7, lr} + adds r0, #0x84 + ldr r6, [r0] + movs r4, #0 + adds r7, r6, #0 + adds r7, #0x3c + adds r5, r7, #0 +_0802D34A: + ldm r5!, {r0} + bl sub_0805E7BC + adds r4, #1 + cmp r4, #3 + bls _0802D34A + lsls r1, r4, #2 + adds r1, r7, r1 + ldr r0, [r1] + adds r0, #0x45 + movs r3, #0 + strb r3, [r0] + ldr r1, [r1] + adds r1, #0x6d + ldrb r2, [r1] + movs r0, #1 + orrs r0, r2 + strb r0, [r1] + ldr r0, [r6, #0x50] + adds r0, #0x45 + strb r3, [r0] + ldr r0, [r6, #0x50] + strb r3, [r0, #0xb] + ldr r3, [r6, #0x50] + ldrb r2, [r3, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #2 + rsbs r0, r0, #0 + ands r1, r0 + subs r0, #2 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x18] + bl sub_0805E780 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0802D394 +sub_0802D394: @ 0x0802D394 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0802D3B4 @ =gUnk_080CD7B8 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r0, [r4, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x19] + pop {r4, pc} + .align 2, 0 +_0802D3B4: .4byte gUnk_080CD7B8 + + thumb_func_start sub_0802D3B8 +sub_0802D3B8: @ 0x0802D3B8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + movs r0, #3 + bl sub_0807CC30 + cmp r0, #0 + beq _0802D3DE + ldr r2, _0802D3F4 @ =gUnk_03000F50 + ldrh r1, [r2] + ldr r0, _0802D3F8 @ =0x0000FDFF + ands r0, r1 + strh r0, [r2] + ldr r0, _0802D3FC @ =gUnk_03001160 + bl sub_0807AABC + bl sub_0805E780 +_0802D3DE: + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + cmp r0, #6 + bls _0802D3EA + b _0802D63C +_0802D3EA: + lsls r0, r0, #2 + ldr r1, _0802D400 @ =_0802D404 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802D3F4: .4byte gUnk_03000F50 +_0802D3F8: .4byte 0x0000FDFF +_0802D3FC: .4byte gUnk_03001160 +_0802D400: .4byte _0802D404 +_0802D404: @ jump table + .4byte _0802D420 @ case 0 + .4byte _0802D544 @ case 1 + .4byte _0802D58C @ case 2 + .4byte _0802D5A8 @ case 3 + .4byte _0802D5EC @ case 4 + .4byte _0802D5F6 @ case 5 + .4byte _0802D61A @ case 6 +_0802D420: + movs r2, #0 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r0, [r3] + movs r1, #7 + orrs r0, r1 + strb r0, [r3] + adds r0, r4, #0 + adds r0, #0x75 + strb r2, [r0] + adds r0, #0xb + strb r2, [r0] + subs r0, #7 + strb r2, [r0] + movs r0, #0x96 + str r0, [r4, #0x7c] + adds r0, r4, #0 + bl sub_0802EB9C + movs r0, #0x54 + bl sub_0801D8E0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] + adds r5, r0, #0 + adds r7, r1, #0 + cmp r5, #0 + bne _0802D470 + adds r0, r4, #0 + bl sub_0804A7D4 + bl sub_0805E780 +_0802D470: + ldr r0, [r7] + str r0, [r4, #0x64] + movs r6, #0 + movs r0, #0 + mov r8, r0 +_0802D47A: + movs r0, #0x24 + movs r1, #1 + bl sub_0804AA60 + str r0, [r4, #0x54] + adds r3, r6, #1 + cmp r0, #0 + beq _0802D4D6 + strb r3, [r0, #0xb] + ldr r1, [r4, #0x54] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r0, [r0] + adds r1, #0x38 + strb r0, [r1] + ldr r1, [r4, #0x54] + ldrh r0, [r4, #0x2e] + strh r0, [r1, #0x2e] + ldr r1, [r4, #0x54] + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #2 + ldrh r2, [r4, #0x32] + adds r0, r0, r2 + strh r0, [r1, #0x32] + ldr r0, [r4, #0x54] + str r4, [r0, #0x50] + ldr r0, [r4, #0x54] + adds r0, #0x84 + ldr r1, [r7] + str r1, [r0] + lsls r2, r6, #2 + adds r0, r5, #0 + adds r0, #0x3c + adds r0, r0, r2 + ldr r1, [r4, #0x54] + str r1, [r0] + adds r2, r5, r2 + movs r0, #0x10 + strb r0, [r2, #1] + mov r0, r8 + strb r0, [r2, #0x19] + adds r0, r5, #0 + adds r0, #0x35 + mov r1, r8 + strb r1, [r0] +_0802D4D6: + adds r6, r3, #0 + cmp r6, #4 + bls _0802D47A + movs r0, #0x24 + movs r1, #2 + bl sub_0804AA60 + adds r2, r0, #0 + str r2, [r4, #0x54] + cmp r2, #0 + beq _0802D52E + adds r0, r4, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r2, #0 + adds r0, #0x38 + strb r1, [r0] + ldr r1, [r4, #0x54] + ldrh r0, [r4, #0x2e] + movs r3, #0 + strh r0, [r1, #0x2e] + ldr r2, [r4, #0x54] + adds r1, r6, #1 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r2, #0x32] + ldr r0, [r4, #0x54] + str r4, [r0, #0x50] + ldr r0, [r4, #0x54] + adds r0, #0x84 + ldr r1, [r7] + str r1, [r0] + ldr r0, [r4, #0x54] + str r0, [r5, #0x50] + movs r0, #0x10 + strb r0, [r5, #0x15] + adds r0, r5, #0 + adds r0, #0x2d + strb r3, [r0] + adds r0, #8 + strb r3, [r0] +_0802D52E: + ldr r0, _0802D540 @ =gUnk_03003F80 + adds r0, #0x8b + movs r1, #3 + strb r1, [r0] + adds r0, r4, #0 + movs r1, #0x4c + bl sub_08004260 + b _0802D63C + .align 2, 0 +_0802D540: .4byte gUnk_03003F80 +_0802D544: + ldrb r0, [r4, #0xb] + cmp r0, #1 + bne _0802D55C + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r2, r4, #0 + adds r2, #0x3b + ldrb r0, [r2] + orrs r1, r0 + strb r1, [r2] +_0802D55C: + ldr r1, _0802D588 @ =gUnk_080CD7C4 + ldrb r0, [r4, #0xb] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #1] + adds r3, r4, #0 + adds r3, #0x29 + movs r1, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + movs r0, #0 + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #0x24 + bl sub_08004260 + b _0802D63C + .align 2, 0 +_0802D588: .4byte gUnk_080CD7C4 +_0802D58C: + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r2] + movs r0, #0 + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + b _0802D63C +_0802D5A8: + ldr r0, _0802D5E8 @ =gUnk_080CD884 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x74 + movs r2, #0 + strb r1, [r0] + adds r0, #1 + strb r2, [r0] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + adds r2, #0x12 + ldrb r1, [r2] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2] + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r4, #0 + movs r1, #0x4f + bl sub_08004260 + b _0802D63C + .align 2, 0 +_0802D5E8: .4byte gUnk_080CD884 +_0802D5EC: + adds r0, r4, #0 + movs r1, #0x2c + bl sub_080042AC + b _0802D63C +_0802D5F6: + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r4, #0 + movs r1, #0x2d + bl sub_080042AC + b _0802D63C +_0802D61A: + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r4, #0 + movs r1, #0x50 + bl sub_08004260 +_0802D63C: + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _0802D648 + adds r0, r4, #0 + bl sub_0802D86C +_0802D648: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0802D650 +sub_0802D650: @ 0x0802D650 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0802D670 @ =gUnk_080CD7E4 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r4, #0x84 + ldr r0, [r4] + bl sub_0802E7E4 + pop {r4, pc} + .align 2, 0 +_0802D670: .4byte gUnk_080CD7E4 + + thumb_func_start sub_0802D674 +sub_0802D674: @ 0x0802D674 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r0, _0802D6B4 @ =gUnk_02034490 + movs r7, #1 + strb r7, [r0] + ldr r5, _0802D6B8 @ =gUnk_03001160 + ldr r6, [r5, #0x34] + cmp r6, #0 + bne _0802D6EC + ldr r0, [r4, #0x7c] + cmp r0, #0x96 + bne _0802D692 + ldr r0, _0802D6BC @ =0x00000127 + bl sub_080A3268 +_0802D692: + ldr r0, [r4, #0x7c] + subs r1, r0, #1 + str r1, [r4, #0x7c] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bne _0802D6C4 + strb r7, [r4, #0xd] + movs r0, #0x5a + str r0, [r4, #0x7c] + ldr r0, _0802D6C0 @ =gUnk_03000BF0 + str r4, [r0, #0x30] + ldr r0, _0802D6BC @ =0x00000127 + bl sub_080A3268 + b _0802D6EC + .align 2, 0 +_0802D6B4: .4byte gUnk_02034490 +_0802D6B8: .4byte gUnk_03001160 +_0802D6BC: .4byte 0x00000127 +_0802D6C0: .4byte gUnk_03000BF0 +_0802D6C4: + cmp r1, #0x3c + bhi _0802D6DC + cmp r1, #0x3c + bne _0802D6D8 + movs r2, #0x18 + rsbs r2, r2, #0 + adds r0, r5, #0 + movs r1, #0xc + bl sub_080A2CFC +_0802D6D8: + strb r6, [r5, #0x14] + b _0802D6EC +_0802D6DC: + cmp r1, #0x59 + bhi _0802D6E4 + movs r0, #2 + b _0802D6EA +_0802D6E4: + cmp r1, #0x77 + bhi _0802D6EC + movs r0, #6 +_0802D6EA: + strb r0, [r5, #0x14] +_0802D6EC: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0802D6F0 +sub_0802D6F0: @ 0x0802D6F0 + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x7c] + subs r0, #1 + str r0, [r2, #0x7c] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _0802D712 + movs r0, #2 + strb r0, [r2, #0xd] + movs r0, #0x5a + str r0, [r2, #0x7c] + movs r0, #0x96 + movs r1, #0 + bl sub_08080964 +_0802D712: + pop {pc} + + thumb_func_start sub_0802D714 +sub_0802D714: @ 0x0802D714 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x7c] + subs r0, #1 + str r0, [r4, #0x7c] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _0802D77A + adds r0, r4, #0 + adds r0, #0x84 + ldr r5, [r0] + movs r1, #0 + movs r3, #0 + movs r2, #0x10 + adds r0, r5, #0 +_0802D734: + strh r3, [r0, #0x18] + strb r2, [r0, #1] + adds r0, #4 + adds r1, #1 + cmp r1, #5 + bls _0802D734 + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xd] + strb r1, [r4, #0xb] + ldrb r1, [r4, #0x18] + subs r0, #7 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #0x4d + bl sub_08004260 + movs r0, #0x24 + movs r1, #5 + bl sub_0804AA60 + str r0, [r4, #0x54] + cmp r0, #0 + beq _0802D774 + str r4, [r0, #0x50] + ldr r0, [r4, #0x54] + str r0, [r5, #0x38] + adds r0, #0x84 + str r5, [r0] +_0802D774: + ldr r1, [r5, #0x50] + movs r0, #0x18 + strb r0, [r1, #0xe] +_0802D77A: + pop {r4, r5, pc} + + thumb_func_start sub_0802D77C +sub_0802D77C: @ 0x0802D77C + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _0802D7B0 @ =gUnk_030010A0 + ldr r4, [r0] + movs r0, #1 + ands r4, r0 + cmp r4, #0 + bne _0802D7AC + adds r0, r5, #0 + bl sub_0802E430 + ldrb r0, [r5, #0xb] + cmp r0, #2 + bne _0802D7AC + strb r4, [r5, #0xf] + strb r4, [r5, #0xe] + movs r0, #4 + strb r0, [r5, #0xd] + adds r0, r5, #0 + adds r0, #0x84 + ldr r0, [r0] + ldr r1, [r0, #0x50] + movs r0, #0xc + strb r0, [r1, #0xe] +_0802D7AC: + pop {r4, r5, pc} + .align 2, 0 +_0802D7B0: .4byte gUnk_030010A0 + + thumb_func_start sub_0802D7B4 +sub_0802D7B4: @ 0x0802D7B4 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xe] + adds r3, r0, #0 + cmp r3, #0 + bne _0802D82C + ldr r4, _0802D7FC @ =gUnk_080CD7F8 + ldrb r2, [r5, #0xf] + adds r0, r2, r4 + ldrb r1, [r0] + adds r0, r1, #0 + cmp r0, #0xff + bne _0802D810 + strb r3, [r5, #0xf] + strb r3, [r5, #0xe] + movs r2, #1 + strb r2, [r5, #0xc] + strb r3, [r5, #0xd] + adds r0, r5, #0 + adds r0, #0x84 + ldr r0, [r0] + ldr r1, [r0, #0x50] + movs r0, #0x18 + strb r0, [r1, #0xe] + ldr r1, _0802D800 @ =gUnk_03000BF0 + ldr r0, _0802D804 @ =gUnk_03001160 + str r0, [r1, #0x30] + ldr r0, _0802D808 @ =gUnk_03003F80 + adds r0, #0x8b + strb r2, [r0] + ldr r0, _0802D80C @ =gUnk_02034490 + strb r3, [r0] + movs r0, #0x2e + bl sub_080A3268 + b _0802D868 + .align 2, 0 +_0802D7FC: .4byte gUnk_080CD7F8 +_0802D800: .4byte gUnk_03000BF0 +_0802D804: .4byte gUnk_03001160 +_0802D808: .4byte gUnk_03003F80 +_0802D80C: .4byte gUnk_02034490 +_0802D810: + strb r1, [r5, #0xe] + adds r0, r2, #1 + adds r0, r0, r4 + ldrb r0, [r0] + strb r0, [r5, #0x15] + ldrb r0, [r5, #0xf] + adds r0, #2 + strb r0, [r5, #0xf] + ldr r0, _0802D828 @ =0x00000127 + bl sub_080A3268 + b _0802D830 + .align 2, 0 +_0802D828: .4byte 0x00000127 +_0802D82C: + subs r0, #1 + strb r0, [r5, #0xe] +_0802D830: + ldrb r0, [r5, #0x15] + cmp r0, #1 + bhi _0802D848 + adds r4, r5, #0 + adds r4, #0x84 + ldr r0, [r4] + ldrb r3, [r5, #0x15] + movs r1, #5 + movs r2, #0x40 + bl sub_0802EA48 + b _0802D85C +_0802D848: + adds r4, r5, #0 + adds r4, #0x84 + cmp r0, #0xff + beq _0802D85C + ldr r0, [r4] + ldrb r3, [r5, #0x15] + movs r1, #5 + movs r2, #0x40 + bl sub_0802EA68 +_0802D85C: + ldr r0, [r4] + bl sub_0802E768 + adds r0, r5, #0 + bl sub_0802E518 +_0802D868: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0802D86C +sub_0802D86C: @ 0x0802D86C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #6 + bls _0802D878 + b _0802DB7E +_0802D878: + lsls r0, r0, #2 + ldr r1, _0802D884 @ =_0802D888 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802D884: .4byte _0802D888 +_0802D888: @ jump table + .4byte _0802DB64 @ case 0 + .4byte _0802D8A4 @ case 1 + .4byte _0802D8CE @ case 2 + .4byte _0802DA54 @ case 3 + .4byte _0802D94C @ case 4 + .4byte _0802D9A2 @ case 5 + .4byte _0802D9F8 @ case 6 +_0802D8A4: + ldrb r0, [r4, #0xb] + cmp r0, #1 + bne _0802D8CE + ldr r0, [r4, #0x50] + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + bne _0802D8BE + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + beq _0802D8C6 +_0802D8BE: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + b _0802D8CC +_0802D8C6: + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 +_0802D8CC: + strb r0, [r4, #0x10] +_0802D8CE: + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _0802D8DE + b _0802DB7E +_0802D8DE: + ldr r0, [r4, #0x50] + adds r0, #0x3d + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x3d + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802D918 + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _0802D906 + adds r0, r4, #0 + bl sub_0801D230 + adds r0, r4, #0 + movs r1, #0xc9 + bl sub_0801D040 + b _0802D918 +_0802D906: + subs r0, #1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_0801D230 + adds r0, r4, #0 + movs r1, #0xca + bl sub_0801D040 +_0802D918: + ldr r0, [r4, #0x50] + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + bne _0802D924 + b _0802DB7E +_0802D924: + ldr r1, _0802D944 @ =gUnk_03001160 + adds r0, r4, #0 + movs r2, #8 + movs r3, #8 + bl sub_080041A0 + cmp r0, #0 + bne _0802D936 + b _0802DB7E +_0802D936: + ldr r0, _0802D948 @ =gUnk_03003F80 + movs r1, #1 + strb r1, [r0, #0x14] + adds r0, #0x3f + movs r1, #0xfc + strb r1, [r0] + b _0802DB7E + .align 2, 0 +_0802D944: .4byte gUnk_03001160 +_0802D948: .4byte gUnk_03003F80 +_0802D94C: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #0 + bne _0802D95E + adds r0, r4, #0 + bl sub_080042B8 + b _0802DB7E +_0802D95E: + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + adds r2, r0, #0 + cmp r2, #0 + beq _0802D970 + b _0802DB7E +_0802D970: + ldr r0, [r4, #0x50] + adds r0, #0x7b + movs r1, #1 + strb r1, [r0] + strb r2, [r4, #0xe] +_0802D97A: + ldrb r3, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0x67 + movs r2, #0 + bl sub_080A2988 + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #7 + bls _0802D97A + movs r0, #0xa8 + lsls r0, r0, #1 + bl sub_080A3268 +_0802D99C: + bl sub_0805E780 + b _0802DB7E +_0802D9A2: + ldr r0, _0802D9F4 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0802D9B8 + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #2 + bne _0802D9B8 + b _0802DB7E +_0802D9B8: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0802D9CE + b _0802DB7E +_0802D9CE: + movs r0, #0x24 + movs r1, #6 + bl sub_0804AA60 + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _0802D99C + ldr r0, [r4, #0x50] + str r0, [r1, #0x50] + adds r2, r4, #0 + adds r2, #0x84 + ldr r1, [r2] + ldr r0, [r4, #0x54] + str r0, [r1, #0x38] + adds r0, #0x84 + ldr r1, [r2] + str r1, [r0] + b _0802D99C + .align 2, 0 +_0802D9F4: .4byte gUnk_030010A0 +_0802D9F8: + ldr r0, _0802DA50 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0802DA0E + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #2 + bne _0802DA0E + b _0802DB7E +_0802DA0E: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0802DA24 + b _0802DB7E +_0802DA24: + movs r0, #0x24 + movs r1, #3 + bl sub_0804AA60 + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _0802D99C + ldr r0, [r4, #0x50] + str r0, [r1, #0x50] + adds r1, r4, #0 + adds r1, #0x84 + ldr r0, [r1] + ldrb r0, [r0, #1] + strb r0, [r4, #0xe] + ldr r2, [r1] + ldr r0, [r4, #0x54] + str r0, [r2, #0x38] + adds r0, #0x84 + ldr r1, [r1] + str r1, [r0] + b _0802D99C + .align 2, 0 +_0802DA50: .4byte gUnk_030010A0 +_0802DA54: + adds r0, r4, #0 + adds r0, #0x74 + ldrb r1, [r0] + adds r6, r0, #0 + cmp r1, #0 + beq _0802DA96 + subs r0, r1, #1 + strb r0, [r6] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802DA96 + adds r5, r4, #0 + adds r5, #0x75 + ldrb r0, [r5] + adds r0, #2 + strb r0, [r5] + ldr r7, _0802DAD4 @ =gUnk_080CD884 + ldrb r0, [r5] + adds r0, r0, r7 + ldrb r0, [r0] + strb r0, [r6] + cmp r0, #0 + beq _0802DA96 + adds r0, r4, #0 + bl sub_0801D230 + ldrb r0, [r5] + adds r0, #1 + adds r0, r0, r7 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_0801D040 +_0802DA96: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802DAD8 + ldrb r2, [r6] + cmp r2, #0 + bne _0802DAD8 + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x1d + bne _0802DB20 + movs r0, #0xc0 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + ldr r1, [r4, #0x50] + movs r0, #4 + strb r0, [r1, #0xd] + ldr r0, [r4, #0x50] + strb r2, [r0, #0xb] + ldr r0, [r4, #0x50] + adds r0, #0x7b + strb r2, [r0] + movs r0, #0x86 + lsls r0, r0, #1 + bl sub_080A3268 + b _0802DB20 + .align 2, 0 +_0802DAD4: .4byte gUnk_080CD884 +_0802DAD8: + adds r0, r4, #0 + adds r0, #0x84 + ldr r2, [r0] + ldrb r1, [r4, #0xe] + adds r3, r0, #0 + ldrb r0, [r2, #1] + cmp r1, r0 + beq _0802DB20 + adds r0, r1, #0 + ldrb r1, [r2, #1] + subs r0, r0, r1 + movs r1, #0x1f + ands r0, r1 + cmp r0, #0x10 + ble _0802DB08 + ldrb r0, [r4, #0x1e] + adds r0, #1 + strb r0, [r4, #0x1e] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x30 + bls _0802DB1A + movs r0, #0x28 + b _0802DB18 +_0802DB08: + ldrb r0, [r4, #0x1e] + subs r0, #1 + strb r0, [r4, #0x1e] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x27 + bhi _0802DB1A + movs r0, #0x30 +_0802DB18: + strb r0, [r4, #0x1e] +_0802DB1A: + ldr r0, [r3] + ldrb r0, [r0, #1] + strb r0, [r4, #0xe] +_0802DB20: + ldr r0, [r4, #0x20] + cmp r0, #0 + ble _0802DB7E + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + ldr r0, [r4, #0x20] + cmp r0, #0 + bgt _0802DB7E + movs r0, #0x24 + movs r1, #4 + bl sub_0804AA60 + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _0802DB7E + ldr r0, [r4, #0x50] + str r0, [r1, #0x50] + adds r2, r4, #0 + adds r2, #0x84 + ldr r1, [r2] + ldr r0, [r4, #0x54] + str r0, [r1, #0x38] + adds r0, #0x84 + ldr r1, [r2] + str r1, [r0] + ldr r1, [r4, #0x54] + adds r0, r4, #0 + bl sub_0806FA24 + b _0802D99C +_0802DB64: + ldr r1, _0802DB80 @ =gUnk_080CD810 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + bl sub_0802E7E4 +_0802DB7E: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0802DB80: .4byte gUnk_080CD810 + + thumb_func_start sub_0802DB84 +sub_0802DB84: @ 0x0802DB84 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r1, _0802DBB0 @ =gUnk_03001160 + bl sub_080045C4 + strb r0, [r5, #0x15] + adds r1, r5, #0 + adds r1, #0x84 + ldr r2, [r1] + ldrb r1, [r2, #1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r1, r0 + bne _0802DBB4 + movs r0, #1 + strb r0, [r5, #0xd] + adds r1, r5, #0 + adds r1, #0x78 + movs r0, #0 + strb r0, [r1] + b _0802DC1A + .align 2, 0 +_0802DBB0: .4byte gUnk_03001160 +_0802DBB4: + ldrb r0, [r2, #1] + ldrb r1, [r5, #0x15] + subs r0, r0, r1 + movs r1, #0x1f + ands r0, r1 + cmp r0, #0x10 + ble _0802DBCE + movs r3, #0 + ldrb r1, [r5, #0xe] + movs r0, #0xfe + ands r0, r1 + strb r0, [r5, #0xe] + b _0802DBD2 +_0802DBCE: + movs r3, #1 + strb r3, [r5, #0xe] +_0802DBD2: + adds r0, r5, #0 + adds r0, #0x79 + ldrb r0, [r0] + cmp r0, #1 + beq _0802DBF0 + cmp r0, #1 + bgt _0802DBE6 + cmp r0, #0 + beq _0802DBEC + b _0802DBF8 +_0802DBE6: + cmp r0, #2 + beq _0802DBF4 + b _0802DBF8 +_0802DBEC: + movs r0, #0x30 + b _0802DBF6 +_0802DBF0: + movs r0, #0x40 + b _0802DBF6 +_0802DBF4: + movs r0, #0x50 +_0802DBF6: + strh r0, [r5, #0x24] +_0802DBF8: + adds r4, r5, #0 + adds r4, #0x84 + ldr r0, [r4] + movs r1, #0x24 + ldrsh r2, [r5, r1] + movs r1, #5 + bl sub_0802EA48 + ldr r0, [r4] + bl sub_0802E768 + adds r0, r5, #0 + bl sub_0802E518 + adds r0, r5, #0 + bl sub_0802EBC4 +_0802DC1A: + pop {r4, r5, pc} + + thumb_func_start sub_0802DC1C +sub_0802DC1C: @ 0x0802DC1C + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r1, _0802DC40 @ =gUnk_03001160 + bl sub_080045C4 + adds r3, r0, #0 + adds r1, r5, #0 + adds r1, #0x84 + ldr r0, [r1] + ldrb r0, [r0, #1] + subs r3, r0, r3 + movs r0, #0x1f + ands r3, r0 + cmp r3, #0x10 + bls _0802DC44 + cmp r3, #0x1d + bhi _0802DC54 + b _0802DC48 + .align 2, 0 +_0802DC40: .4byte gUnk_03001160 +_0802DC44: + cmp r3, #2 + bls _0802DC54 +_0802DC48: + movs r0, #0 + strb r0, [r5, #0xd] + ldr r1, [r1] + ldr r1, [r1, #0x50] + strb r0, [r1, #0xe] + b _0802DCDE +_0802DC54: + adds r0, r5, #0 + adds r0, #0x78 + ldrb r1, [r0] + adds r6, r0, #0 + cmp r1, #0 + beq _0802DC6A + subs r0, r1, #1 + strb r0, [r6] + adds r4, r5, #0 + adds r4, #0x84 + b _0802DCC6 +_0802DC6A: + ldrb r0, [r5, #0xe] + movs r3, #0 + cmp r0, #1 + bne _0802DC74 + movs r3, #1 +_0802DC74: + adds r4, r5, #0 + adds r4, #0x84 + ldr r0, [r4] + movs r1, #5 + movs r2, #0x20 + bl sub_0802EA48 + ldr r1, [r4] + ldrh r0, [r1] + ldrh r1, [r1, #0x14] + movs r2, #4 + bl sub_0802EA18 + cmp r0, #0 + beq _0802DCC6 + ldrb r0, [r5, #0xe] + cmp r0, #1 + bne _0802DCAC + ldr r2, [r4] + ldrb r0, [r2, #1] + subs r0, #4 + movs r1, #0x1f + ands r0, r1 + lsls r0, r0, #8 + movs r1, #0xff + orrs r0, r1 + strh r0, [r2, #0x14] + b _0802DCBA +_0802DCAC: + ldr r0, [r4] + ldrb r1, [r0, #1] + adds r1, #4 + movs r2, #0x1f + ands r1, r2 + lsls r1, r1, #8 + strh r1, [r0, #0x14] +_0802DCBA: + ldrb r0, [r5, #0xe] + movs r1, #1 + eors r0, r1 + strb r0, [r5, #0xe] + movs r0, #0xc + strb r0, [r6] +_0802DCC6: + adds r0, r5, #0 + bl sub_0802E9B0 + ldr r0, [r4] + bl sub_0802E768 + adds r0, r5, #0 + bl sub_0802E518 + adds r0, r5, #0 + bl sub_0802EBC4 +_0802DCDE: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0802DCE0 +sub_0802DCE0: @ 0x0802DCE0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x84 + ldr r0, [r5] + ldr r1, [r0, #0x50] + ldrb r0, [r1, #0xe] + cmp r0, #0xc + beq _0802DD44 + ldr r1, _0802DD1C @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] + ldr r2, [r5] + ldrb r1, [r2, #0x15] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r1, r0 + bne _0802DD20 + ldr r1, [r2, #0x50] + movs r0, #0xc + strb r0, [r1, #0xe] + adds r1, r4, #0 + adds r1, #0x82 + movs r0, #4 + strb r0, [r1] + movs r0, #0 + strb r0, [r4, #0xf] + b _0802DDD0 + .align 2, 0 +_0802DD1C: .4byte gUnk_03001160 +_0802DD20: + ldrb r0, [r2, #0x15] + ldrb r1, [r4, #0x15] + subs r0, r0, r1 + movs r1, #0x1f + ands r0, r1 + movs r3, #1 + cmp r0, #0x10 + ble _0802DD32 + movs r3, #0 +_0802DD32: + adds r0, r2, #0 + movs r1, #5 + movs r2, #0x20 + bl sub_0802EA48 + ldr r0, [r5] + bl sub_0802E768 + b _0802DDD0 +_0802DD44: + ldrb r0, [r4, #0xf] + cmp r0, #5 + bhi _0802DD74 + adds r1, r4, #0 + adds r1, #0x82 + ldrb r0, [r1] + cmp r0, #0 + bne _0802DD6E + movs r2, #4 + strb r2, [r1] + ldr r1, [r5] + ldrb r0, [r4, #0xf] + lsls r0, r0, #2 + adds r1, #0x3c + adds r1, r1, r0 + ldr r0, [r1] + strb r2, [r0, #0xf] + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] + b _0802DDD0 +_0802DD6E: + subs r0, #1 + strb r0, [r1] + b _0802DDD0 +_0802DD74: + ldrb r6, [r1, #0xf] + cmp r6, #0 + bne _0802DDD0 + adds r0, r4, #0 + movs r1, #0xa + movs r2, #0 + bl sub_0804A98C + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _0802DDB2 + ldr r0, [r5] + ldrb r0, [r0, #0x15] + strb r0, [r1, #0x15] + ldr r2, [r4, #0x54] + ldr r0, [r5] + ldr r0, [r0, #0x50] + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0xf + ands r0, r1 + strb r0, [r2, #0xb] + ldr r1, [r4, #0x54] + ldr r0, [r5] + ldr r0, [r0, #0x50] + str r0, [r1, #0x50] + ldr r1, [r4, #0x54] + ldr r0, [r5] + ldr r0, [r0, #0x3c] + str r0, [r1, #0x54] +_0802DDB2: + ldr r0, [r5] + ldr r0, [r0, #0x50] + strb r6, [r0, #0xe] + adds r1, r4, #0 + adds r1, #0x74 + ldrb r0, [r1] + cmp r0, #0 + bne _0802DDC8 + movs r0, #1 + strb r0, [r1] + b _0802DDD0 +_0802DDC8: + strb r6, [r4, #0xd] + adds r0, r4, #0 + bl sub_0802EB9C +_0802DDD0: + adds r0, r4, #0 + bl sub_0802E518 + pop {r4, r5, r6, pc} + + thumb_func_start sub_0802DDD8 +sub_0802DDD8: @ 0x0802DDD8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + adds r0, #0x76 + ldrb r0, [r0] + movs r7, #4 + cmp r0, #0 + beq _0802DE06 + movs r7, #6 + adds r0, r5, #0 + adds r0, #0x79 + ldrb r0, [r0] + cmp r0, #2 + bne _0802DE06 + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + bne _0802DE06 + movs r7, #0xc +_0802DE06: + ldrb r0, [r5, #0xb] + cmp r0, #0 + beq _0802DE2E + cmp r0, #0 + bge _0802DE12 + b _0802DF9A +_0802DE12: + cmp r0, #2 + ble _0802DE18 + b _0802DF9A +_0802DE18: + adds r6, r5, #0 + adds r6, #0x84 + cmp r0, #1 + beq _0802DEFE + adds r0, r5, #0 + adds r0, #0x76 + ldrb r1, [r0] + mov sb, r0 + cmp r1, #0 + bne _0802DE76 + b _0802DE6C +_0802DE2E: + adds r6, r5, #0 + adds r6, #0x84 + ldr r0, [r6] + bl sub_0802EA88 + cmp r0, #0 + beq _0802DE3E + b _0802DF9A +_0802DE3E: + movs r4, #1 + strb r4, [r5, #0xb] + strb r0, [r5, #0xf] + bl sub_08000E50 + ands r0, r4 + cmp r0, #0 + bne _0802DE58 + strb r0, [r5, #0x15] + ldr r0, [r6] + ldrb r0, [r0, #1] + adds r0, r0, r7 + b _0802DE60 +_0802DE58: + strb r4, [r5, #0x15] + ldr r0, [r6] + ldrb r0, [r0, #1] + subs r0, r0, r7 +_0802DE60: + movs r1, #0x1f + ands r0, r1 + adds r1, r5, #0 + adds r1, #0x7a + strb r0, [r1] + b _0802DF9A +_0802DE6C: + movs r2, #1 + movs r0, #2 + mov r8, r0 + movs r4, #1 + b _0802DE7E +_0802DE76: + movs r2, #2 + movs r1, #6 + mov r8, r1 + movs r4, #0 +_0802DE7E: + adds r1, r5, #0 + adds r1, #0x84 + ldr r0, [r1] + ldr r0, [r0, #0x50] + ldrb r0, [r0, #0xf] + adds r6, r1, #0 + cmp r0, #1 + bne _0802DEC4 + adds r0, r5, #0 + movs r1, #0xa + bl sub_0804A98C + adds r1, r0, #0 + str r1, [r5, #0x54] + cmp r1, #0 + beq _0802DEC4 + ldr r0, [r6] + ldrb r0, [r0, #0x15] + strb r0, [r1, #0x15] + ldr r2, [r5, #0x54] + ldr r0, [r6] + ldr r0, [r0, #0x50] + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0xf + ands r0, r1 + strb r0, [r2, #0xb] + ldr r1, [r5, #0x54] + ldr r0, [r6] + ldr r0, [r0, #0x50] + str r0, [r1, #0x50] + ldr r1, [r5, #0x54] + ldr r0, [r6] + ldr r0, [r0, #0x3c] + str r0, [r1, #0x54] +_0802DEC4: + adds r1, r5, #0 + adds r1, #0x74 + ldrb r0, [r1] + adds r2, r0, #0 + cmp r2, #0 + bne _0802DEF4 + strb r4, [r1] + ldr r1, [r6] + ldrb r0, [r5, #0xf] + lsls r0, r0, #2 + adds r1, #0x3c + adds r1, r1, r0 + ldr r0, [r1] + mov r1, r8 + strb r1, [r0, #0xf] + ldrb r0, [r5, #0xf] + adds r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #5 + bls _0802DEF8 + strb r2, [r5, #0xf] + b _0802DEF8 +_0802DEF4: + subs r0, #1 + strb r0, [r1] +_0802DEF8: + ldrb r0, [r5, #0xb] + cmp r0, #1 + bne _0802DF0C +_0802DEFE: + ldr r0, [r6] + ldrb r3, [r5, #0x15] + movs r1, #5 + movs r2, #0x40 + bl sub_0802EA48 + b _0802DF2E +_0802DF0C: + mov r1, sb + ldrb r0, [r1] + cmp r0, #0 + bne _0802DF22 + ldr r0, [r6] + ldrb r3, [r5, #0x15] + movs r1, #5 + movs r2, #0x20 + bl sub_0802EA48 + b _0802DF2E +_0802DF22: + ldr r0, [r6] + ldrb r3, [r5, #0x15] + movs r1, #5 + movs r2, #0x10 + bl sub_0802EA48 +_0802DF2E: + adds r4, r6, #0 + ldr r0, [r4] + bl sub_0802E768 + adds r2, r5, #0 + adds r2, #0x7a + ldr r1, [r4] + ldrb r0, [r2] + ldrb r1, [r1, #0x15] + cmp r0, r1 + bne _0802DF9A + ldrb r0, [r5, #0xb] + cmp r0, #1 + bne _0802DF8A + movs r0, #2 + strb r0, [r5, #0xb] + ldrb r0, [r5, #0x15] + movs r1, #1 + eors r0, r1 + strb r0, [r5, #0x15] + adds r3, r0, #0 + cmp r3, #1 + bne _0802DF6C + lsls r0, r7, #1 + ldrb r1, [r2] + subs r1, r1, r0 + movs r0, #0x1f + ands r1, r0 + strb r1, [r2] + strb r3, [r5, #0xe] + b _0802DF80 +_0802DF6C: + lsls r0, r7, #1 + ldrb r1, [r2] + adds r0, r0, r1 + movs r1, #0x1f + ands r0, r1 + strb r0, [r2] + ldrb r1, [r5, #0xe] + movs r0, #0xfe + ands r0, r1 + strb r0, [r5, #0xe] +_0802DF80: + ldr r0, [r6] + ldr r1, [r0, #0x50] + movs r0, #0xc + strb r0, [r1, #0xe] + b _0802DF9A +_0802DF8A: + movs r0, #0 + strb r0, [r5, #0xd] + ldr r1, [r6] + ldr r1, [r1, #0x50] + strb r0, [r1, #0xe] + adds r0, r5, #0 + bl sub_0802EB9C +_0802DF9A: + adds r0, r5, #0 + bl sub_0802E518 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0802DFA8 +sub_0802DFA8: @ 0x0802DFA8 + push {lr} + ldr r2, _0802DFBC @ =gUnk_080CD828 + ldrb r1, [r0, #0xb] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802DFBC: .4byte gUnk_080CD828 + + thumb_func_start sub_0802DFC0 +sub_0802DFC0: @ 0x0802DFC0 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r5, #0 + adds r4, #0x84 + ldr r2, [r4] + ldrb r0, [r2, #1] + movs r1, #7 + ands r1, r0 + cmp r1, #0 + beq _0802DFF8 + cmp r1, #4 + bls _0802DFDC + movs r0, #0 + b _0802DFDE +_0802DFDC: + movs r0, #1 +_0802DFDE: + strb r0, [r5, #0x15] + adds r4, r5, #0 + adds r4, #0x84 + ldr r0, [r4] + ldrb r3, [r5, #0x15] + movs r1, #0 + movs r2, #0x20 + bl sub_0802EA48 + ldr r0, [r4] + bl sub_0802EA88 + b _0802E026 +_0802DFF8: + adds r0, r2, #0 + bl sub_0802EA88 + cmp r0, #0 + bne _0802E026 + adds r0, r5, #0 + adds r0, #0x7b + ldrb r0, [r0] + cmp r0, #0 + beq _0802E026 + ldrb r1, [r5, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + movs r0, #1 + strb r0, [r5, #0xb] + ldr r0, [r4] + ldr r1, [r0, #0x50] + movs r0, #0x18 + strb r0, [r1, #0xe] + ldr r0, _0802E030 @ =0x00000127 + bl sub_080A3268 +_0802E026: + adds r0, r5, #0 + bl sub_0802E518 + pop {r4, r5, pc} + .align 2, 0 +_0802E030: .4byte 0x00000127 + + thumb_func_start sub_0802E034 +sub_0802E034: @ 0x0802E034 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x84 + ldr r5, [r0] + ldrb r0, [r4, #0xb] + cmp r0, #1 + bne _0802E04A + movs r0, #2 + strb r0, [r4, #0x15] + movs r0, #0 + b _0802E058 +_0802E04A: + movs r0, #3 + strb r0, [r4, #0x15] + ldr r1, _0802E078 @ =gUnk_080CD840 + ldrb r0, [r5, #1] + lsrs r0, r0, #3 + adds r0, r0, r1 + ldrb r0, [r0] +_0802E058: + ldrb r1, [r5, #0x19] + cmp r0, r1 + beq _0802E07C + ldrb r3, [r4, #0x15] + adds r0, r5, #0 + movs r1, #0 + movs r2, #0x40 + bl sub_0802EA68 + adds r0, r5, #0 + movs r1, #0x40 + movs r2, #2 + bl sub_0802EB08 + b _0802E0B0 + .align 2, 0 +_0802E078: .4byte gUnk_080CD840 +_0802E07C: + adds r0, r5, #0 + movs r1, #0x80 + movs r2, #2 + bl sub_0802EB08 + cmp r0, #0 + bne _0802E0B0 + ldrb r0, [r4, #0xb] + cmp r0, #2 + bne _0802E0A6 + adds r1, r4, #0 + adds r1, #0x7c + movs r2, #0 + movs r0, #0xb4 + lsls r0, r0, #1 + strh r0, [r1] + adds r1, #4 + movs r0, #1 + strb r0, [r1] + ldr r0, [r5, #0x50] + strb r2, [r0, #0xe] +_0802E0A6: + ldrb r0, [r4, #0xb] + adds r0, #1 + strb r0, [r4, #0xb] + movs r0, #1 + strb r0, [r5, #0x19] +_0802E0B0: + adds r0, r4, #0 + bl sub_0802E518 + pop {r4, r5, pc} + + thumb_func_start sub_0802E0B8 +sub_0802E0B8: @ 0x0802E0B8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x32] + subs r0, #4 + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl sub_0800445C + ldrh r0, [r4, #0x32] + adds r0, #4 + strh r0, [r4, #0x32] + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r2, #0x3f + ands r2, r0 + cmp r2, #0 + beq _0802E0F4 + ldr r1, _0802E128 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_0806FC80 + cmp r0, #0 + beq _0802E0F4 + ldr r0, _0802E12C @ =gUnk_03003F80 + movs r1, #1 + strb r1, [r0, #0x14] + adds r0, #0x3f + movs r1, #0xfa + strb r1, [r0] +_0802E0F4: + ldr r0, _0802E130 @ =gUnk_080CD844 + adds r3, r4, #0 + adds r3, #0x79 + ldrb r5, [r3] + movs r6, #0x7f + adds r1, r6, #0 + ands r1, r5 + adds r1, r1, r0 + adds r2, r4, #0 + adds r2, #0x45 + ldrb r0, [r1] + ldrb r1, [r2] + cmp r0, r1 + blo _0802E158 + cmp r5, #1 + bls _0802E134 + movs r0, #0 + strb r0, [r2] + strb r0, [r4, #0xc] + bl sub_08078B48 + movs r0, #0x94 + lsls r0, r0, #1 + bl sub_080A3268 + b _0802E1CA + .align 2, 0 +_0802E128: .4byte gUnk_03001160 +_0802E12C: .4byte gUnk_03003F80 +_0802E130: .4byte gUnk_080CD844 +_0802E134: + ldrb r1, [r4, #0x10] + adds r0, r6, #0 + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r0, [r3] + adds r0, #1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r3] + movs r0, #0xff + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x7c + ldrh r0, [r1] + cmp r0, #0x78 + bls _0802E158 + movs r0, #0x78 + strh r0, [r1] +_0802E158: + adds r0, r4, #0 + adds r0, #0x7c + ldrh r1, [r0] + subs r1, #1 + strh r1, [r0] + lsls r1, r1, #0x10 + ldr r2, _0802E18C @ =0xFFFF0000 + adds r5, r0, #0 + cmp r1, r2 + bne _0802E190 + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x62 + movs r0, #0 + strb r0, [r1] + movs r0, #4 + strb r0, [r4, #0xb] + adds r0, r4, #0 + movs r1, #0x4e + bl sub_08004260 + b _0802E1C4 + .align 2, 0 +_0802E18C: .4byte 0xFFFF0000 +_0802E190: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802E1B2 + adds r0, r4, #0 + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + ble _0802E1B2 + ldr r0, _0802E1CC @ =0x00000127 + bl sub_080A3268 +_0802E1B2: + ldrh r0, [r5] + cmp r0, #0x77 + bhi _0802E1C4 + adds r2, r4, #0 + adds r2, #0x62 + ldrb r0, [r2] + movs r1, #1 + eors r0, r1 + strb r0, [r2] +_0802E1C4: + adds r0, r4, #0 + bl sub_0802E518 +_0802E1CA: + pop {r4, r5, r6, pc} + .align 2, 0 +_0802E1CC: .4byte 0x00000127 + + thumb_func_start sub_0802E1D0 +sub_0802E1D0: @ 0x0802E1D0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r5, r0, #0 + adds r0, #0x84 + ldr r0, [r0] + mov r8, r0 + adds r4, r5, #0 + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0802E1F6 + adds r0, r5, #0 + bl sub_08004274 +_0802E1F6: + ldrb r0, [r4] + movs r2, #0x3f + ands r2, r0 + cmp r2, #0 + beq _0802E218 + ldr r1, _0802E280 @ =gUnk_03001160 + adds r0, r5, #0 + bl sub_0806FC80 + cmp r0, #0 + beq _0802E218 + ldr r0, _0802E284 @ =gUnk_03003F80 + movs r1, #1 + strb r1, [r0, #0x14] + adds r0, #0x3f + movs r1, #0xfa + strb r1, [r0] +_0802E218: + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0802E2F0 + movs r4, #0 + mov r2, r8 + adds r2, #0x30 + adds r7, r5, #0 + adds r7, #0x7c + ldr r0, _0802E288 @ =gUnk_03000F50 + mov sb, r0 + movs r1, #0x66 + add r1, sb + mov sl, r1 +_0802E23A: + adds r1, r2, r4 + ldrb r0, [r1] + cmp r0, #0 + beq _0802E2EA + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0 + bne _0802E2F0 + mov r1, r8 + ldr r0, [r1, #0x3c] + movs r1, #0xc + movs r2, #0 + bl sub_080A29AC + movs r0, #0x92 + lsls r0, r0, #1 + bl sub_080A3268 + cmp r4, #5 + bne _0802E2F0 + adds r0, r5, #0 + adds r0, #0x79 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0802E28C + movs r0, #0xf0 + strh r0, [r7] + movs r1, #0 + bl sub_08080964 + b _0802E2E4 + .align 2, 0 +_0802E280: .4byte gUnk_03001160 +_0802E284: .4byte gUnk_03003F80 +_0802E288: .4byte gUnk_03000F50 +_0802E28C: + adds r4, r7, #0 + strh r6, [r4] + movs r0, #0x7c + adds r0, r0, r5 + mov r8, r0 + adds r6, r5, #0 + adds r6, #0x74 + adds r7, r5, #0 + adds r7, #0x75 +_0802E29E: + ldrh r3, [r4] + adds r0, r5, #0 + movs r1, #0x67 + movs r2, #1 + bl sub_080A2988 + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #3 + bls _0802E29E + movs r0, #0 + strb r0, [r6] + movs r0, #0x10 + strb r0, [r7] + movs r0, #0xb + mov r1, r8 + strh r0, [r1] + ldrb r1, [r6] + ldrb r0, [r7] + lsls r0, r0, #8 + orrs r1, r0 + mov r0, sb + adds r0, #0x68 + strh r1, [r0] + movs r0, #0x90 + lsls r0, r0, #2 + mov r1, sl + strh r0, [r1] + movs r0, #0x1e + movs r1, #0 + bl sub_08080964 +_0802E2E4: + movs r0, #5 + strb r0, [r5, #0xb] + b _0802E2F0 +_0802E2EA: + adds r4, #1 + cmp r4, #5 + bls _0802E23A +_0802E2F0: + adds r0, r5, #0 + bl sub_0802E518 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0802E300 +sub_0802E300: @ 0x0802E300 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r0, #0x79 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0802E31E + adds r1, r4, #0 + adds r1, #0x7c + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + adds r5, r1, #0 + b _0802E35E +_0802E31E: + adds r1, r4, #0 + adds r1, #0x74 + ldrb r0, [r1] + adds r5, r4, #0 + adds r5, #0x7c + cmp r0, #0x10 + beq _0802E35E + ldrh r0, [r5] + cmp r0, #0 + beq _0802E364 + subs r0, #1 + strh r0, [r5] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0802E40C + movs r0, #0xb + strh r0, [r5] + adds r3, r4, #0 + adds r3, #0x75 + ldrb r0, [r3] + subs r0, #1 + strb r0, [r3] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r2, _0802E3A0 @ =gUnk_03000F50 + ldrb r1, [r1] + ldrb r0, [r3] + lsls r0, r0, #8 + orrs r1, r0 + adds r2, #0x68 + strh r1, [r2] +_0802E35E: + ldrh r0, [r5] + cmp r0, #0 + bne _0802E40C +_0802E364: + adds r2, r4, #0 + adds r2, #0x79 + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802E3A4 + adds r3, r4, #0 + adds r3, #0x75 + ldrb r0, [r3] + cmp r0, #0x10 + beq _0802E3A4 + movs r0, #0xb + strh r0, [r5] + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] + adds r1, r4, #0 + adds r1, #0x74 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + ldr r2, _0802E3A0 @ =gUnk_03000F50 + ldrb r1, [r1] + ldrb r0, [r3] + lsls r0, r0, #8 + orrs r1, r0 + adds r2, #0x68 + strh r1, [r2] + b _0802E428 + .align 2, 0 +_0802E3A0: .4byte gUnk_03000F50 +_0802E3A4: + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x84 + ldr r5, [r0] + ldr r1, _0802E408 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + lsls r0, r0, #3 + movs r2, #0 + adds r6, r4, #0 + adds r6, #0x80 + movs r3, #0 + adds r1, r5, #0 +_0802E3CA: + strh r3, [r1, #0x18] + strb r0, [r1, #1] + adds r1, #4 + adds r2, #1 + cmp r2, #5 + bls _0802E3CA + movs r1, #0 + movs r0, #5 + strb r0, [r4, #0xd] + strb r1, [r4, #0xb] + strb r1, [r6] + adds r0, r4, #0 + movs r1, #0x4d + bl sub_08004260 + movs r0, #0x24 + movs r1, #5 + bl sub_0804AA60 + str r0, [r4, #0x54] + cmp r0, #0 + beq _0802E400 + str r4, [r0, #0x50] + ldr r0, [r4, #0x54] + str r0, [r5, #0x38] + adds r0, #0x84 + str r5, [r0] +_0802E400: + ldr r1, [r5, #0x50] + movs r0, #0x18 + strb r0, [r1, #0xe] + b _0802E422 + .align 2, 0 +_0802E408: .4byte gUnk_03001160 +_0802E40C: + ldr r0, _0802E42C @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _0802E422 + adds r0, r4, #0 + movs r1, #0xa + movs r2, #3 + bl sub_0804A98C +_0802E422: + adds r0, r4, #0 + bl sub_0802E518 +_0802E428: + pop {r4, r5, r6, pc} + .align 2, 0 +_0802E42C: .4byte gUnk_030010A0 + + thumb_func_start sub_0802E430 +sub_0802E430: @ 0x0802E430 + push {lr} + ldr r2, _0802E444 @ =gUnk_080CD848 + ldrb r1, [r0, #0xb] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802E444: .4byte gUnk_080CD848 + + thumb_func_start sub_0802E448 +sub_0802E448: @ 0x0802E448 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r0, #0x84 + ldr r6, [r0] + movs r5, #5 +_0802E452: + adds r0, r6, #0 + adds r0, #0x30 + adds r4, r0, r5 + ldrb r0, [r4] + cmp r0, #0 + bne _0802E46E + ldr r0, [r6, #0x3c] + movs r1, #0xc + movs r2, #0 + bl sub_080A29AC + movs r0, #0x7d + bl sub_080A3268 +_0802E46E: + ldrb r0, [r4] + cmp r0, #0xa + beq _0802E48A + adds r0, #1 + strb r0, [r4] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xa + bne _0802E490 + cmp r5, #0 + bne _0802E490 + movs r0, #1 + strb r0, [r7, #0xb] + b _0802E490 +_0802E48A: + subs r5, #1 + cmp r5, #0 + bge _0802E452 +_0802E490: + adds r0, r6, #0 + adds r0, #0x2d + ldrb r0, [r0] + cmp r0, #9 + bhi _0802E4A6 + adds r0, r6, #0 + movs r1, #5 + movs r2, #0x40 + movs r3, #3 + bl sub_0802EA68 +_0802E4A6: + adds r0, r7, #0 + bl sub_08004274 + adds r0, r7, #0 + adds r0, #0x84 + ldr r0, [r0] + bl sub_0802E768 + adds r0, r7, #0 + bl sub_0802E518 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0802E4C0 +sub_0802E4C0: @ 0x0802E4C0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802E510 + ldrb r0, [r4, #0xc] + cmp r0, #2 + beq _0802E50A + adds r0, r4, #0 + adds r0, #0x74 + movs r2, #0 + strb r2, [r0] + adds r1, r4, #0 + adds r1, #0x75 + movs r0, #8 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x79 + ldrb r0, [r0] + cmp r0, #0 + beq _0802E502 + adds r0, r4, #0 + adds r0, #0x76 + strb r2, [r0] + adds r1, #2 + movs r0, #3 + strb r0, [r1] +_0802E502: + adds r0, r4, #0 + bl sub_0802EBC4 + b _0802E510 +_0802E50A: + ldrb r0, [r4, #0xb] + adds r0, #1 + strb r0, [r4, #0xb] +_0802E510: + adds r0, r4, #0 + bl sub_0802E518 + pop {r4, pc} + + thumb_func_start sub_0802E518 +sub_0802E518: @ 0x0802E518 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + str r0, [sp] + adds r0, #0x84 + ldr r0, [r0] + mov sb, r0 + ldr r1, [r0, #0x3c] + ldr r0, [r1, #0x50] + bl sub_0806FA24 + mov r0, sb + ldr r1, [r0, #0x3c] + ldrb r0, [r0, #1] + strb r0, [r1, #0x15] + mov r1, sb + ldrb r6, [r1, #1] + cmp r6, #0x10 + bls _0802E54C + movs r0, #0xf + eors r6, r0 + adds r6, #1 + ands r6, r0 +_0802E54C: + cmp r6, #0x10 + bne _0802E552 + movs r6, #0xf +_0802E552: + mov r2, sb + ldr r1, [r2, #0x3c] + movs r0, #0xf + eors r6, r0 + adds r0, r6, #0 + adds r0, #0x12 + lsls r0, r0, #8 + strh r0, [r1, #0x24] + ldr r0, [r2, #0x3c] + bl sub_0806F69C + movs r6, #0 + movs r0, #0x3c + add r0, sb + mov sl, r0 + mov r1, sb + adds r1, #0x30 + str r1, [sp, #4] + ldr r2, [sp] + adds r2, #0x80 + str r2, [sp, #8] + movs r7, #0x80 + lsls r7, r7, #1 +_0802E580: + lsls r0, r6, #2 + add r0, sl + ldr r0, [r0] + adds r1, r6, #1 + mov r8, r1 + lsls r4, r1, #2 + mov r2, sl + adds r5, r2, r4 + ldr r1, [r5] + bl sub_0806FA24 + add r4, sb + ldrb r0, [r4, #0x19] + lsls r0, r0, #4 + ldr r1, _0802E644 @ =gUnk_080C9160 + adds r0, r0, r1 + movs r2, #0 + ldrsh r0, [r0, r2] + ldr r1, [sp, #4] + adds r6, r1, r6 + ldrb r1, [r6] + lsls r1, r1, #0x18 + asrs r1, r1, #0x10 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r7, #0 + bl sub_0806FA04 + adds r1, r0, #0 + ldrb r0, [r4, #1] + lsls r0, r0, #4 + ldr r2, _0802E644 @ =gUnk_080C9160 + adds r0, r0, r2 + movs r2, #0 + ldrsh r0, [r0, r2] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r7, #0 + bl sub_0806FA04 + ldr r2, [r5] + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r2, #0x2c] + adds r1, r1, r0 + str r1, [r2, #0x2c] + ldrb r0, [r4, #0x19] + lsls r0, r0, #4 + adds r0, #0x80 + ldr r1, _0802E644 @ =gUnk_080C9160 + adds r0, r0, r1 + movs r2, #0 + ldrsh r0, [r0, r2] + ldrb r1, [r6] + lsls r1, r1, #0x18 + asrs r1, r1, #0x10 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r7, #0 + bl sub_0806FA04 + ldr r2, [r5] + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r2, #0x30] + subs r1, r1, r0 + str r1, [r2, #0x30] + mov r6, r8 + cmp r6, #4 + bls _0802E580 + mov r1, sb + ldr r0, [r1, #0x50] + ldrb r1, [r0, #0xe] + adds r2, r0, #0 + cmp r1, #0x18 + bne _0802E662 + mov r1, sb + ldrb r0, [r1, #0x15] + lsrs r0, r0, #3 + lsls r7, r0, #2 + mov r0, sb + adds r0, #0x2d + ldrb r0, [r0] + lsls r1, r0, #0x18 + lsrs r0, r1, #0x18 + cmp r0, #0xc + bls _0802E648 + adds r7, #3 + b _0802E64C + .align 2, 0 +_0802E644: .4byte gUnk_080C9160 +_0802E648: + lsrs r0, r1, #0x1a + adds r7, r7, r0 +_0802E64C: + adds r0, r2, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r1, r7, #0 + adds r1, #0x18 + cmp r0, r1 + beq _0802E6E8 + adds r0, r2, #0 + bl sub_080042AC + b _0802E6E8 +_0802E662: + ldr r2, [sp, #8] + ldrb r0, [r2] + cmp r0, #0 + bne _0802E688 + mov r0, sb + movs r1, #5 + movs r2, #0 + movs r3, #0 + bl sub_0802E7CC + mov r0, sb + ldr r2, [r0, #0x50] + ldrb r1, [r2, #0x14] + lsrs r0, r1, #1 + adds r7, r1, r0 + lsrs r0, r7, #2 + ldrb r2, [r2, #0xe] + adds r7, r0, r2 + b _0802E6CA +_0802E688: + ldr r0, [sp] + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _0802E6C0 + ldr r0, [sp] + adds r0, #0x58 + ldrb r3, [r0] + mov r1, sb + ldrb r0, [r1, #0x15] + lsrs r2, r0, #3 + adds r0, r2, #0 + adds r0, #0x2f + cmp r3, r0 + bne _0802E6BA + ldr r0, [sp] + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + adds r7, r3, #0 + cmp r0, #0 + beq _0802E6CA +_0802E6BA: + adds r7, r2, #0 + adds r7, #0x28 + b _0802E6CA +_0802E6C0: + mov r2, sb + ldrb r0, [r2, #0x15] + lsrs r0, r0, #3 + adds r7, r0, #0 + adds r7, #0x2f +_0802E6CA: + mov r0, sb + ldr r1, [r0, #0x50] + adds r0, r1, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, r7 + beq _0802E6E2 + adds r0, r1, #0 + adds r1, r7, #0 + bl sub_080042AC + b _0802E6E8 +_0802E6E2: + adds r0, r1, #0 + bl sub_080042B8 +_0802E6E8: + movs r6, #0 +_0802E6EA: + ldr r1, [sp, #8] + ldrb r0, [r1] + cmp r0, #0 + bne _0802E72E + lsls r1, r6, #0x18 + lsrs r1, r1, #0x18 + mov r0, sb + movs r2, #0 + movs r3, #0 + bl sub_0802E7CC + lsls r5, r6, #2 + mov r2, sl + adds r0, r2, r5 + ldr r0, [r0] + ldrb r1, [r0, #0x14] + lsrs r0, r1, #1 + adds r7, r1, r0 + lsrs r7, r7, #2 + adds r4, r6, #1 + lsls r0, r4, #2 + add r0, sb + ldrb r0, [r0, #0x19] + movs r1, #3 + bl __divsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r7, r7, r1 + adds r1, r5, #0 + b _0802E73E +_0802E72E: + lsls r1, r6, #2 + mov r2, sb + adds r0, r2, r1 + ldrb r0, [r0, #1] + lsrs r0, r0, #3 + adds r7, r0, #0 + adds r7, #0x48 + adds r4, r6, #1 +_0802E73E: + mov r2, sl + adds r0, r2, r1 + ldr r1, [r0] + adds r0, r1, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, r7 + beq _0802E756 + adds r0, r1, #0 + adds r1, r7, #0 + bl sub_08004260 +_0802E756: + adds r6, r4, #0 + cmp r6, #4 + bls _0802E6EA + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0802E768 +sub_0802E768: @ 0x0802E768 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r2, #0 + movs r6, #0x1f +_0802E770: + lsls r3, r2, #2 + adds r0, r4, r3 + ldrb r1, [r0, #1] + adds r2, #1 + lsls r0, r2, #2 + adds r0, r4, r0 + ldrb r0, [r0, #1] + subs r0, r1, r0 + ands r0, r6 + adds r5, r2, #0 + cmp r0, #0x10 + ble _0802E790 + cmp r0, #0x1e + bgt _0802E798 + adds r1, #1 + b _0802E796 +_0802E790: + cmp r0, #1 + ble _0802E798 + subs r1, #1 +_0802E796: + ands r1, r6 +_0802E798: + adds r0, r4, r3 + strb r1, [r0, #1] + ldrb r1, [r0, #0x19] + lsls r0, r5, #2 + adds r0, r4, r0 + ldrb r0, [r0, #0x19] + subs r0, r1, r0 + movs r2, #0x1f + ands r0, r2 + cmp r0, #0x10 + ble _0802E7B6 + cmp r0, #0x1d + bgt _0802E7BE + adds r1, #1 + b _0802E7BC +_0802E7B6: + cmp r0, #2 + ble _0802E7BE + subs r1, #1 +_0802E7BC: + ands r1, r2 +_0802E7BE: + adds r0, r4, r3 + strb r1, [r0, #0x19] + adds r2, r5, #0 + cmp r2, #4 + bls _0802E770 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0802E7CC +sub_0802E7CC: @ 0x0802E7CC + lsls r1, r1, #0x18 + lsrs r1, r1, #0x16 + adds r2, r0, #0 + adds r2, #0x3c + adds r2, r2, r1 + ldr r3, [r2] + adds r0, r0, r1 + ldrb r0, [r0, #1] + strb r0, [r3, #0x14] + ldr r0, [r2] + ldrb r0, [r0, #0x14] + bx lr + + thumb_func_start sub_0802E7E4 +sub_0802E7E4: @ 0x0802E7E4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov ip, r0 + ldr r0, [r0, #0x50] + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0802E8D0 + movs r6, #0 + movs r5, #0 + mov r7, ip + adds r7, #0x3c + movs r0, #0x30 + add r0, ip + mov r8, r0 + movs r1, #8 + rsbs r1, r1, #0 + mov sl, r1 + movs r2, #4 + rsbs r2, r2, #0 + mov sb, r2 +_0802E818: + lsls r0, r5, #2 + adds r4, r7, r0 + ldr r3, [r4] + adds r3, #0x29 + movs r1, #7 + ands r1, r6 + ldrb r2, [r3] + mov r0, sl + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + adds r6, #1 + mov r1, r8 + adds r0, r1, r5 + ldrb r0, [r0] + cmp r0, #0 + bne _0802E852 + ldr r3, [r4] + ldrb r2, [r3, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #2 + rsbs r0, r0, #0 + ands r1, r0 + mov r0, sb + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x18] + b _0802E860 +_0802E852: + ldr r2, [r4] + ldrb r1, [r2, #0x18] + mov r0, sb + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] +_0802E860: + adds r5, #1 + cmp r5, #5 + bls _0802E818 + movs r5, #0 + movs r2, #7 + mov sb, r2 + movs r0, #8 + rsbs r0, r0, #0 + mov r8, r0 +_0802E872: + lsls r1, r5, #2 + mov r2, ip + adds r0, r2, r1 + ldrb r0, [r0, #1] + subs r0, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r5, #1 + cmp r0, #0x10 + bhi _0802E8BA + adds r0, r7, r1 + ldr r3, [r0] + adds r3, #0x29 + ldrb r4, [r3] + lsls r0, r4, #0x1d + lsrs r6, r0, #0x1d + lsls r2, r5, #2 + adds r2, r7, r2 + ldr r0, [r2] + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + mov r0, r8 + ands r0, r4 + orrs r0, r1 + strb r0, [r3] + ldr r1, [r2] + adds r1, #0x29 + mov r0, sb + ands r6, r0 + ldrb r2, [r1] + mov r0, r8 + ands r0, r2 + orrs r0, r6 + strb r0, [r1] +_0802E8BA: + cmp r5, #4 + bls _0802E872 + mov r1, ip + ldr r0, [r1, #0x38] + adds r0, #0x29 + ldrb r2, [r0] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + b _0802E9A4 +_0802E8D0: + movs r6, #5 + movs r5, #0 + mov r7, ip + adds r7, #0x3c + movs r2, #0x30 + add r2, ip + mov r8, r2 + movs r0, #8 + rsbs r0, r0, #0 + mov sl, r0 + movs r1, #4 + rsbs r1, r1, #0 + mov sb, r1 +_0802E8EA: + lsls r0, r5, #2 + adds r4, r7, r0 + ldr r3, [r4] + adds r3, #0x29 + movs r1, #7 + ands r1, r6 + ldrb r2, [r3] + mov r0, sl + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + subs r6, #1 + mov r2, r8 + adds r0, r2, r5 + ldrb r0, [r0] + cmp r0, #0 + bne _0802E924 + ldr r3, [r4] + ldrb r2, [r3, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #2 + rsbs r0, r0, #0 + ands r1, r0 + mov r0, sb + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x18] + b _0802E932 +_0802E924: + ldr r2, [r4] + ldrb r1, [r2, #0x18] + mov r0, sb + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] +_0802E932: + adds r5, #1 + cmp r5, #5 + bls _0802E8EA + movs r5, #0 + movs r0, #7 + mov sb, r0 + movs r1, #8 + rsbs r1, r1, #0 + mov r8, r1 +_0802E944: + lsls r1, r5, #2 + mov r2, ip + adds r0, r2, r1 + ldrb r0, [r0, #1] + subs r0, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r5, #1 + cmp r0, #0x10 + bls _0802E98C + adds r0, r7, r1 + ldr r3, [r0] + adds r3, #0x29 + ldrb r4, [r3] + lsls r0, r4, #0x1d + lsrs r6, r0, #0x1d + lsls r2, r5, #2 + adds r2, r7, r2 + ldr r0, [r2] + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + mov r0, r8 + ands r0, r4 + orrs r0, r1 + strb r0, [r3] + ldr r1, [r2] + adds r1, #0x29 + mov r0, sb + ands r6, r0 + ldrb r2, [r1] + mov r0, r8 + ands r0, r2 + orrs r0, r6 + strb r0, [r1] +_0802E98C: + cmp r5, #4 + bls _0802E944 + mov r1, ip + ldr r2, [r1, #0x38] + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] +_0802E9A4: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0802E9B0 +sub_0802E9B0: @ 0x0802E9B0 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0802E9D0 @ =gUnk_03001160 + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r3, #0x32 + ldrsh r2, [r0, r3] + adds r0, r4, #0 + bl sub_080041DC + lsrs r2, r0, #4 + cmp r2, #0x5f + bgt _0802E9D4 + movs r2, #0xa + b _0802E9EA + .align 2, 0 +_0802E9D0: .4byte gUnk_03001160 +_0802E9D4: + adds r1, r2, #0 + subs r1, #0x60 + cmp r1, #0 + bge _0802E9DE + adds r1, #3 +_0802E9DE: + asrs r1, r1, #2 + movs r0, #0xa + subs r2, r0, r1 + cmp r2, #3 + bgt _0802E9EA + movs r2, #4 +_0802E9EA: + adds r0, r4, #0 + adds r0, #0x84 + ldr r3, [r0] + adds r0, r3, #0 + adds r0, #0x2d + ldrb r0, [r0] + cmp r2, r0 + beq _0802EA10 + cmp r2, r0 + ble _0802EA04 + ldrh r0, [r3, #0x2c] + adds r0, #0x20 + b _0802EA08 +_0802EA04: + ldrh r0, [r3, #0x2c] + subs r0, #0x20 +_0802EA08: + ldr r2, _0802EA14 @ =0x00001FFF + adds r1, r2, #0 + ands r0, r1 + strh r0, [r3, #0x2c] +_0802EA10: + pop {r4, pc} + .align 2, 0 +_0802EA14: .4byte 0x00001FFF + + thumb_func_start sub_0802EA18 +sub_0802EA18: @ 0x0802EA18 + push {lr} + adds r3, r2, #0 + movs r2, #0x80 + lsls r2, r2, #5 + adds r1, r1, r2 + subs r1, r1, r0 + ldr r0, _0802EA40 @ =0x00001FFF + ands r1, r0 + lsls r3, r3, #8 + subs r2, r2, r3 + cmp r1, r2 + blo _0802EA44 + movs r2, #0x80 + lsls r2, r2, #5 + adds r0, r3, r2 + cmp r1, r0 + bhi _0802EA44 + movs r0, #0 + b _0802EA46 + .align 2, 0 +_0802EA40: .4byte 0x00001FFF +_0802EA44: + movs r0, #1 +_0802EA46: + pop {pc} + + thumb_func_start sub_0802EA48 +sub_0802EA48: @ 0x0802EA48 + push {r4, lr} + adds r4, r0, #0 + cmp r3, #1 + bne _0802EA52 + rsbs r2, r2, #0 +_0802EA52: + lsls r0, r1, #2 + adds r0, r4, r0 + ldrh r1, [r0] + adds r1, r1, r2 + ldr r3, _0802EA64 @ =0x00001FFF + adds r2, r3, #0 + ands r1, r2 + strh r1, [r0] + pop {r4, pc} + .align 2, 0 +_0802EA64: .4byte 0x00001FFF + + thumb_func_start sub_0802EA68 +sub_0802EA68: @ 0x0802EA68 + push {r4, lr} + adds r4, r0, #0 + cmp r3, #2 + bne _0802EA72 + rsbs r2, r2, #0 +_0802EA72: + lsls r0, r1, #2 + adds r0, r4, r0 + ldrh r1, [r0, #0x18] + adds r1, r1, r2 + ldr r3, _0802EA84 @ =0x00001FFF + adds r2, r3, #0 + ands r1, r2 + strh r1, [r0, #0x18] + pop {r4, pc} + .align 2, 0 +_0802EA84: .4byte 0x00001FFF + + thumb_func_start sub_0802EA88 +sub_0802EA88: @ 0x0802EA88 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r6, #0 + movs r3, #0 +_0802EA90: + lsls r0, r3, #2 + adds r4, r5, r0 + adds r2, r3, #1 + lsls r0, r2, #2 + adds r1, r5, r0 + ldrb r0, [r4, #1] + ldrb r3, [r1, #1] + cmp r0, r3 + beq _0802EAC2 + movs r6, #1 + ldrb r0, [r1, #1] + ldrb r1, [r4, #1] + subs r0, r0, r1 + movs r1, #0x1f + ands r0, r1 + movs r3, #1 + cmp r0, #0x10 + ble _0802EAB6 + movs r3, #0 +_0802EAB6: + adds r0, r5, #0 + adds r1, r2, #0 + movs r2, #0x20 + bl sub_0802EA48 + b _0802EAC8 +_0802EAC2: + adds r3, r2, #0 + cmp r3, #4 + bls _0802EA90 +_0802EAC8: + movs r3, #0 + movs r4, #0x1f +_0802EACC: + adds r2, r3, #1 + lsls r0, r2, #2 + adds r0, r5, r0 + ldrb r1, [r0, #1] + lsls r0, r3, #2 + adds r0, r5, r0 + ldrb r0, [r0, #1] + subs r0, r1, r0 + ands r0, r4 + adds r3, r1, #0 + adds r1, r2, #0 + cmp r0, #0x10 + ble _0802EAEE + cmp r0, #0x1e + bgt _0802EAF6 + adds r3, #1 + b _0802EAF4 +_0802EAEE: + cmp r0, #1 + ble _0802EAF6 + subs r3, #1 +_0802EAF4: + ands r3, r4 +_0802EAF6: + lsls r0, r1, #2 + adds r0, r5, r0 + strb r3, [r0, #1] + adds r3, r1, #0 + cmp r3, #4 + bls _0802EACC + adds r0, r6, #0 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0802EB08 +sub_0802EB08: @ 0x0802EB08 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + adds r6, r1, #0 + adds r7, r2, #0 + movs r0, #0 + mov r8, r0 + movs r3, #0 +_0802EB1A: + lsls r0, r3, #2 + adds r4, r5, r0 + adds r2, r3, #1 + lsls r0, r2, #2 + adds r1, r5, r0 + ldrb r0, [r4, #0x19] + ldrb r3, [r1, #0x19] + cmp r0, r3 + beq _0802EB4E + movs r0, #1 + mov r8, r0 + ldrb r0, [r1, #0x19] + ldrb r1, [r4, #0x19] + subs r0, r0, r1 + movs r1, #0x1f + ands r0, r1 + movs r3, #2 + cmp r0, #0x10 + ble _0802EB42 + movs r3, #3 +_0802EB42: + adds r0, r5, #0 + adds r1, r2, #0 + adds r2, r6, #0 + bl sub_0802EA68 + b _0802EB54 +_0802EB4E: + adds r3, r2, #0 + cmp r3, #4 + bls _0802EB1A +_0802EB54: + movs r3, #0 + movs r4, #0x1f + rsbs r6, r7, #0 + ands r6, r4 +_0802EB5C: + adds r2, r3, #1 + lsls r0, r2, #2 + adds r0, r5, r0 + ldrb r1, [r0, #0x19] + lsls r0, r3, #2 + adds r0, r5, r0 + ldrb r0, [r0, #0x19] + subs r0, r1, r0 + ands r0, r4 + adds r3, r1, #0 + adds r1, r2, #0 + cmp r0, #0x10 + ble _0802EB7E + cmp r6, r0 + ble _0802EB86 + adds r3, #1 + b _0802EB84 +_0802EB7E: + cmp r7, r0 + bge _0802EB86 + subs r3, #1 +_0802EB84: + ands r3, r4 +_0802EB86: + lsls r0, r1, #2 + adds r0, r5, r0 + strb r3, [r0, #0x19] + adds r3, r1, #0 + cmp r3, #4 + bls _0802EB5C + mov r0, r8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0802EB9C +sub_0802EB9C: @ 0x0802EB9C + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0802EBBC @ =gUnk_080CD850 + bl sub_080028F4 + ldr r1, _0802EBC0 @ =gUnk_080CD854 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x74 + strb r1, [r0] + adds r4, #0x75 + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_0802EBBC: .4byte gUnk_080CD850 +_0802EBC0: .4byte gUnk_080CD854 + + thumb_func_start sub_0802EBC4 +sub_0802EBC4: @ 0x0802EBC4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x74 + ldrb r0, [r1] + adds r6, r0, #0 + cmp r6, #0 + bne _0802EC66 + ldr r1, _0802EC18 @ =gUnk_080CD86C + adds r5, r4, #0 + adds r5, #0x79 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl sub_080028F4 + ldr r2, _0802EC1C @ =gUnk_080CD878 + ldrb r1, [r5] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + adds r1, r1, r0 + adds r2, r4, #0 + adds r2, #0x75 + ldrb r0, [r1] + ldrb r1, [r2] + cmp r0, r1 + bhs _0802EC60 + strb r6, [r2] + ldrb r1, [r5] + cmp r1, #0 + bne _0802EC20 + adds r0, r4, #0 + adds r0, #0x76 + strb r1, [r0] + adds r1, r4, #0 + adds r1, #0x77 + movs r0, #3 + strb r0, [r1] + b _0802EC56 + .align 2, 0 +_0802EC18: .4byte gUnk_080CD86C +_0802EC1C: .4byte gUnk_080CD878 +_0802EC20: + bl sub_08000E50 + adds r1, r0, #0 + movs r5, #1 + ands r1, r5 + adds r3, r4, #0 + adds r3, #0x76 + ldrb r0, [r3] + cmp r1, r0 + beq _0802EC3E + strb r1, [r3] + adds r0, r4, #0 + adds r0, #0x77 + strb r5, [r0] + b _0802EC56 +_0802EC3E: + adds r2, r4, #0 + adds r2, #0x77 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bls _0802EC54 + eors r1, r5 + strb r5, [r2] +_0802EC54: + strb r1, [r3] +_0802EC56: + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xd] + strb r1, [r4, #0xb] + b _0802EC6A +_0802EC60: + movs r0, #2 + strb r0, [r4, #0xd] + b _0802EC6A +_0802EC66: + subs r0, #1 + strb r0, [r1] +_0802EC6A: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0802EC6C +sub_0802EC6C: @ 0x0802EC6C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _0802EC94 @ =gUnk_080CDE34 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, r5, pc} + .align 2, 0 +_0802EC94: .4byte gUnk_080CDE34 + + thumb_func_start sub_0802EC98 +sub_0802EC98: @ 0x0802EC98 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0802ECBC @ =gUnk_080CDE4C + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r0, [r4, #0xa] + cmp r0, #1 + bhi _0802ECB8 + adds r0, r4, #0 + bl sub_0802EF90 +_0802ECB8: + pop {r4, pc} + .align 2, 0 +_0802ECBC: .4byte gUnk_080CDE4C + + thumb_func_start sub_0802ECC0 +sub_0802ECC0: @ 0x0802ECC0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0802ED2A + adds r0, r4, #0 + adds r0, #0x45 + ldrb r1, [r0] + adds r5, r0, #0 + ldr r3, _0802ED00 @ =gUnk_030010A0 + cmp r1, #0 + bne _0802ECEE + adds r2, r3, #0 + adds r2, #0x39 + adds r0, r3, #0 + adds r0, #0x3c + ldrb r0, [r0] + adds r0, #2 + movs r1, #1 + lsls r1, r0 + ldrb r0, [r2] + bics r0, r1 + strb r0, [r2] +_0802ECEE: + ldr r0, _0802ED04 @ =gUnk_03000BF0 + ldrb r0, [r0, #5] + cmp r0, #0 + bne _0802ED08 + ldrb r1, [r5] + adds r0, r3, #0 + adds r0, #0x3a + b _0802ED0E + .align 2, 0 +_0802ED00: .4byte gUnk_030010A0 +_0802ED04: .4byte gUnk_03000BF0 +_0802ED08: + ldrb r1, [r5] + adds r0, r3, #0 + adds r0, #0x3b +_0802ED0E: + strb r1, [r0] + adds r6, r4, #0 + adds r6, #0x79 + ldrb r0, [r6] + ldrb r1, [r5] + cmp r0, r1 + beq _0802ED24 + movs r0, #0xbd + lsls r0, r0, #1 + bl sub_08004488 +_0802ED24: + ldrb r0, [r5] + strb r0, [r6] + b _0802ED52 +_0802ED2A: + cmp r0, #1 + bne _0802ED52 + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + ble _0802ED3E + rsbs r0, r0, #0 + strb r0, [r1] +_0802ED3E: + adds r5, r4, #0 + adds r5, #0x45 + ldrb r0, [r5] + cmp r0, #0xff + beq _0802ED4E + movs r0, #0xe5 + bl sub_08004488 +_0802ED4E: + movs r0, #0xff + strb r0, [r5] +_0802ED52: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0802ED64 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0802ED64: + ldr r1, _0802ED70 @ =gUnk_080CDE34 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, r5, r6, pc} + .align 2, 0 +_0802ED70: .4byte gUnk_080CDE34 + + thumb_func_start sub_0802ED74 +sub_0802ED74: @ 0x0802ED74 + push {lr} + ldr r2, _0802ED88 @ =gUnk_080CDE5C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802ED88: .4byte gUnk_080CDE5C + + thumb_func_start sub_0802ED8C +sub_0802ED8C: @ 0x0802ED8C + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0802EDD0 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x46 + bhi _0802EE0A + bl sub_0805E8D4 + adds r1, r0, #0 + cmp r1, #0 + beq _0802EE0A + movs r0, #9 + strb r0, [r1, #8] + movs r0, #0x34 + strb r0, [r1, #9] + str r4, [r1, #0x14] + adds r0, r1, #0 + movs r1, #8 + bl sub_0805EA2C + movs r0, #0x25 + movs r1, #2 + bl sub_0804AA60 + str r4, [r0, #0x50] + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _0802EDD4 @ =gUnk_03000BF0 + ldrb r0, [r0, #5] + cmp r0, #0 + bne _0802EDDC + ldr r0, _0802EDD8 @ =gUnk_030010A0 + adds r0, #0x3a + b _0802EDE0 + .align 2, 0 +_0802EDD0: .4byte gUnk_03003DBC +_0802EDD4: .4byte gUnk_03000BF0 +_0802EDD8: .4byte gUnk_030010A0 +_0802EDDC: + ldr r0, _0802EE0C @ =gUnk_030010A0 + adds r0, #0x3b +_0802EDE0: + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x45 + strb r0, [r1] + adds r1, #0x34 + strb r0, [r1] + bl sub_08000E50 + adds r1, r4, #0 + adds r1, #0x78 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0802EFB8 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0802EF58 +_0802EE0A: + pop {r4, pc} + .align 2, 0 +_0802EE0C: .4byte gUnk_030010A0 + + thumb_func_start sub_0802EE10 +sub_0802EE10: @ 0x0802EE10 + push {r4, lr} + adds r4, r0, #0 + bl sub_0802F04C + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_0802EE20 +sub_0802EE20: @ 0x0802EE20 + push {lr} + ldr r2, _0802EE34 @ =gUnk_080CDE64 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802EE34: .4byte gUnk_080CDE64 + + thumb_func_start sub_0802EE38 +sub_0802EE38: @ 0x0802EE38 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _0802EE84 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x46 + bhi _0802EE82 + movs r0, #0x25 + movs r1, #3 + bl sub_0804AA60 + str r5, [r0, #0x50] + movs r0, #1 + strb r0, [r5, #0xc] + bl sub_08000E50 + adds r4, r0, #0 + movs r1, #3 + ands r0, r1 + adds r0, #1 + strb r0, [r5, #0xe] + bl sub_08000E50 + lsrs r0, r0, #8 + adds r1, r5, #0 + adds r1, #0x78 + strb r0, [r1] + ldr r1, _0802EE88 @ =gUnk_080CDE6C + lsrs r4, r4, #0x10 + movs r0, #3 + ands r4, r0 + adds r4, r4, r1 + ldrb r0, [r4] + strb r0, [r5, #0x15] + adds r0, r5, #0 + movs r1, #1 + bl sub_08004260 +_0802EE82: + pop {r4, r5, pc} + .align 2, 0 +_0802EE84: .4byte gUnk_03003DBC +_0802EE88: .4byte gUnk_080CDE6C + + thumb_func_start sub_0802EE8C +sub_0802EE8C: @ 0x0802EE8C + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r2, [r0, #4] + cmp r2, #0 + bne _0802EEA8 + ldrb r0, [r4, #0x10] + movs r1, #0x7f + ands r1, r0 + strb r1, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x45 + strb r2, [r0] + b _0802EEB4 +_0802EEA8: + adds r0, r4, #0 + bl sub_0802F04C + adds r0, r4, #0 + bl sub_08004274 +_0802EEB4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802EEB8 +sub_0802EEB8: @ 0x0802EEB8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _0802EEC8 + bl sub_0805E780 +_0802EEC8: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0802EED6 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xff + strb r0, [r4, #0x14] +_0802EED6: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA6C + ldr r1, _0802EF14 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + adds r0, #1 + movs r1, #0x1e + ands r0, r1 + ldr r1, _0802EF18 @ =gUnk_080CDE70 + adds r0, r0, r1 + ldrb r2, [r0] + ldrb r1, [r4, #0x1e] + cmp r2, r1 + beq _0802EF00 + ldrb r0, [r0, #1] + cmp r0, r1 + beq _0802EF00 + strb r2, [r4, #0x1e] +_0802EF00: + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x63 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + pop {r4, pc} + .align 2, 0 +_0802EF14: .4byte gUnk_03001160 +_0802EF18: .4byte gUnk_080CDE70 + + thumb_func_start sub_0802EF1C +sub_0802EF1C: @ 0x0802EF1C + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _0802EF2C + bl sub_0805E780 +_0802EF2C: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0802EF4A + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x11 + strb r0, [r4, #0x1e] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0x19 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] +_0802EF4A: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA6C + movs r0, #0 + strh r0, [r4, #0x36] + pop {r4, pc} + + thumb_func_start sub_0802EF58 +sub_0802EF58: @ 0x0802EF58 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r5, #0 +_0802EF5E: + movs r0, #0x25 + movs r1, #1 + bl sub_0804AA60 + adds r4, r0, #0 + cmp r4, #0 + beq _0802EF86 + strb r5, [r4, #0xb] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + str r6, [r4, #0x50] + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0806FA24 +_0802EF86: + adds r5, #1 + cmp r5, #6 + bls _0802EF5E + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0802EF90 +sub_0802EF90: @ 0x0802EF90 + push {r4, lr} + ldr r4, _0802EFB4 @ =gUnk_080CDE90 + adds r3, r0, #0 + adds r3, #0x78 + ldrb r1, [r3] + adds r2, r1, #1 + strb r2, [r3] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x1b + movs r2, #7 + ands r1, r2 + adds r1, r1, r4 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + strh r1, [r0, #0x36] + pop {r4, pc} + .align 2, 0 +_0802EFB4: .4byte gUnk_080CDE90 + + thumb_func_start sub_0802EFB8 +sub_0802EFB8: @ 0x0802EFB8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + bl sub_08000E50 + adds r6, r0, #0 + lsrs r0, r6, #0x10 + movs r1, #3 + ands r0, r1 + cmp r0, #0 + beq _0802EFD2 + movs r5, #0x18 + ands r5, r6 + b _0802EFE0 +_0802EFD2: + ldr r0, _0802F01C @ =gUnk_03001160 + adds r1, r4, #0 + bl sub_080045C4 + adds r5, r0, #4 + movs r0, #0x18 + ands r5, r0 +_0802EFE0: + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _0802F020 @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r7, #0x32 + ldrsh r1, [r4, r7] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + ldr r2, _0802F024 @ =gUnk_080B4488 + lsrs r1, r5, #2 + adds r1, r1, r2 + movs r2, #0 + ldrsh r1, [r1, r2] + adds r0, r0, r1 + movs r1, #1 + bl sub_080002E0 + cmp r0, #0 + beq _0802F028 + movs r0, #0xff + strb r0, [r4, #0x15] + b _0802F044 + .align 2, 0 +_0802F01C: .4byte gUnk_03001160 +_0802F020: .4byte gUnk_03000BF0 +_0802F024: .4byte gUnk_080B4488 +_0802F028: + movs r1, #3 + adds r0, r6, #0 + ands r0, r1 + adds r0, #1 + strb r0, [r4, #0xe] + strb r5, [r4, #0x15] + ldr r2, _0802F048 @ =gUnk_080CDE98 + lsrs r0, r6, #0x18 + movs r1, #3 + ands r0, r1 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + strh r0, [r4, #0x24] +_0802F044: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0802F048: .4byte gUnk_080CDE98 + + thumb_func_start sub_0802F04C +sub_0802F04C: @ 0x0802F04C + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r0, #0x2e + ldrsh r5, [r4, r0] + movs r1, #0x32 + ldrsh r6, [r4, r1] + adds r0, r4, #0 + bl sub_080AEF88 + cmp r0, #0 + bne _0802F06A + adds r0, r4, #0 + bl sub_0802EFB8 + b _0802F112 +_0802F06A: + ldrb r0, [r4, #0x15] + lsrs r0, r0, #3 + cmp r0, #1 + beq _0802F098 + cmp r0, #1 + bgt _0802F07C + cmp r0, #0 + beq _0802F082 + b _0802F0DC +_0802F07C: + cmp r0, #2 + beq _0802F0AE + b _0802F0DC +_0802F082: + movs r2, #0xf + adds r0, r6, #0 + ands r0, r2 + cmp r0, #8 + ble _0802F102 + ldrh r1, [r4, #0x32] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #8 + bgt _0802F102 + b _0802F0C2 +_0802F098: + movs r2, #0xf + adds r0, r5, #0 + ands r0, r2 + cmp r0, #7 + bgt _0802F102 + ldrh r1, [r4, #0x2e] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #7 + ble _0802F102 + b _0802F0F0 +_0802F0AE: + movs r2, #0xf + adds r0, r6, #0 + ands r0, r2 + cmp r0, #7 + bgt _0802F102 + ldrh r1, [r4, #0x32] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #7 + ble _0802F102 +_0802F0C2: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r1, #0x32 + ldrsh r0, [r4, r1] + ldr r1, _0802F0D8 @ =0x0000FFF0 + ands r0, r1 + adds r6, r0, #0 + adds r6, #8 + b _0802F102 + .align 2, 0 +_0802F0D8: .4byte 0x0000FFF0 +_0802F0DC: + movs r2, #0xf + adds r0, r5, #0 + ands r0, r2 + cmp r0, #8 + ble _0802F102 + ldrh r1, [r4, #0x2e] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #8 + bgt _0802F102 +_0802F0F0: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r1, _0802F114 @ =0x0000FFF0 + ands r0, r1 + adds r5, r0, #0 + adds r5, #8 +_0802F102: + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _0802F112 + strh r5, [r4, #0x2e] + strh r6, [r4, #0x32] + adds r0, r4, #0 + bl sub_0802EFB8 +_0802F112: + pop {r4, r5, r6, pc} + .align 2, 0 +_0802F114: .4byte 0x0000FFF0 + + thumb_func_start sub_0802F118 +sub_0802F118: @ 0x0802F118 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0802F134 @ =gUnk_080CDED0 + bl sub_0800129E + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, pc} + .align 2, 0 +_0802F134: .4byte gUnk_080CDED0 + + thumb_func_start sub_0802F138 +sub_0802F138: @ 0x0802F138 + push {lr} + ldr r2, _0802F14C @ =gUnk_080CDEE8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802F14C: .4byte gUnk_080CDEE8 + + thumb_func_start sub_0802F150 +sub_0802F150: @ 0x0802F150 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0802F164 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0802F164: + ldr r1, _0802F18C @ =gUnk_080CDED0 + adds r0, r4, #0 + bl sub_0804AA30 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802F1E8 + movs r0, #0x3f + ands r0, r1 + cmp r0, #0x14 + beq _0802F196 + cmp r0, #0x14 + bgt _0802F190 + cmp r0, #0xe + beq _0802F1E0 + b _0802F1E8 + .align 2, 0 +_0802F18C: .4byte gUnk_080CDED0 +_0802F190: + cmp r0, #0x15 + beq _0802F1E0 + b _0802F1E8 +_0802F196: + movs r0, #0 + movs r1, #1 + strb r1, [r4, #0xc] + strb r0, [r4, #0xd] + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _0802F1A8 + movs r0, #0xc0 + b _0802F1B6 +_0802F1A8: + bl sub_08000E50 + ldr r2, _0802F1DC @ =gUnk_080CDEF8 + movs r1, #3 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] +_0802F1B6: + strb r0, [r4, #0xe] + movs r1, #0 + strb r1, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x7c + strb r1, [r0] + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _0802F1CE + ldr r0, [r4, #0x20] + asrs r0, r0, #2 +_0802F1CE: + str r0, [r4, #0x20] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + b _0802F1E8 + .align 2, 0 +_0802F1DC: .4byte gUnk_080CDEF8 +_0802F1E0: + adds r1, r4, #0 + adds r1, #0x45 + movs r0, #0 + strb r0, [r1] +_0802F1E8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start nullsub_16 +nullsub_16: @ 0x0802F1EC + bx lr + .align 2, 0 + + thumb_func_start sub_0802F1F0 +sub_0802F1F0: @ 0x0802F1F0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08001242 + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _0802F20C + adds r0, r4, #0 + adds r0, #0x80 + ldrh r1, [r0] + adds r0, r4, #0 + bl sub_08003FC4 +_0802F20C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802F210 +sub_0802F210: @ 0x0802F210 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_0804A720 + movs r4, #0 + movs r0, #1 + strb r0, [r5, #0xc] + strb r4, [r5, #0xd] + bl sub_08000E50 + ldr r2, _0802F280 @ =gUnk_080CDEF8 + movs r1, #3 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r5, #0xe] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + ldrb r1, [r5, #0xe] + adds r0, r0, r1 + strb r0, [r5, #0xe] + strb r4, [r5, #0xf] + adds r0, r5, #0 + adds r0, #0x7c + strb r4, [r0] + ldrb r0, [r5, #0xa] + movs r2, #0xa0 + lsls r2, r2, #6 + adds r1, r2, #0 + cmp r0, #0 + bne _0802F258 + movs r0, #0xc0 + lsls r0, r0, #5 + adds r1, r0, #0 +_0802F258: + adds r0, r5, #0 + adds r0, #0x80 + strh r1, [r0] + ldrb r0, [r5, #0xa] + movs r2, #0xc0 + lsls r2, r2, #6 + adds r1, r2, #0 + cmp r0, #0 + bne _0802F270 + movs r0, #0xa0 + lsls r0, r0, #6 + adds r1, r0, #0 +_0802F270: + adds r0, r5, #0 + adds r0, #0x82 + strh r1, [r0] + adds r0, r5, #0 + movs r1, #0 + bl sub_08004260 + pop {r4, r5, pc} + .align 2, 0 +_0802F280: .4byte gUnk_080CDEF8 + + thumb_func_start sub_0802F284 +sub_0802F284: @ 0x0802F284 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0x60 + bls _0802F298 + adds r0, r4, #0 + movs r1, #2 + bl sub_08004276 + b _0802F29E +_0802F298: + adds r0, r4, #0 + bl sub_08004274 +_0802F29E: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0802F2AA + subs r0, #1 + strb r0, [r4, #0xe] + b _0802F2FE +_0802F2AA: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0802F2E4 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802F2FE + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x10 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xa] + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x82 + ldrh r0, [r0] + lsls r0, r0, #4 + str r0, [r4, #0x20] + adds r0, r4, #0 + bl sub_0802F45C + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + b _0802F2FE +_0802F2E4: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802F2FE + movs r0, #0x40 + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_0802F2FE: + pop {r4, pc} + + thumb_func_start sub_0802F300 +sub_0802F300: @ 0x0802F300 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080AEF88 + movs r0, #0x36 + ldrsh r6, [r4, r0] + bl sub_08000E50 + adds r5, r0, #0 + movs r0, #0xf + ands r5, r0 + adds r0, r4, #0 + adds r0, #0x80 + ldrh r1, [r0] + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #1 + bne _0802F364 + movs r0, #0 + movs r2, #3 + strb r2, [r4, #0xc] + strb r0, [r4, #0xd] + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _0802F33C + movs r5, #0 +_0802F33C: + cmp r5, #0 + bne _0802F344 + movs r0, #0xc0 + b _0802F350 +_0802F344: + ldr r0, _0802F360 @ =gUnk_080CDEF8 + adds r1, r5, #0 + ands r1, r2 + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, r0, r5 +_0802F350: + strb r0, [r4, #0xe] + movs r0, #0 + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 + b _0802F3F0 + .align 2, 0 +_0802F360: .4byte gUnk_080CDEF8 +_0802F364: + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _0802F374 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_0800417E + b _0802F38C +_0802F374: + adds r0, r4, #0 + bl sub_080002B8 + movs r1, #0xf0 + ands r1, r0 + cmp r1, #0x50 + bne _0802F38C + ldrb r0, [r4, #0x15] + adds r0, #0x10 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] +_0802F38C: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802F3AC + movs r0, #0x10 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0802F3AC + subs r0, #1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_0802F45C +_0802F3AC: + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _0802F3C6 + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r6, r0 + bge _0802F3C6 + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 + movs r0, #1 + strb r0, [r4, #0xd] +_0802F3C6: + movs r0, #0xc + rsbs r0, r0, #0 + cmp r6, r0 + bge _0802F3DA + ldrb r2, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + b _0802F3E4 +_0802F3DA: + ldrb r2, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x80 +_0802F3E4: + orrs r0, r2 + strb r0, [r4, #0x19] + ldrb r0, [r4, #0x1b] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x1b] +_0802F3F0: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0802F3F4 +sub_0802F3F4: @ 0x0802F3F4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802F45A + adds r0, r4, #0 + adds r0, #0x7c + ldrb r1, [r0] + adds r2, r0, #0 + cmp r1, #1 + bhi _0802F44C + ldrb r0, [r4, #0xa] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0802F44C + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x10 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xa] + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x82 + ldrh r0, [r0] + lsls r0, r0, #4 + str r0, [r4, #0x20] + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_0802F45C + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + b _0802F45A +_0802F44C: + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r2] + adds r0, r4, #0 + bl sub_08004260 +_0802F45A: + pop {r4, pc} + + thumb_func_start sub_0802F45C +sub_0802F45C: @ 0x0802F45C + push {r4, lr} + adds r4, r0, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _0802F472 + adds r0, r4, #0 + bl sub_08049EE4 + strb r0, [r4, #0x15] + b _0802F49E +_0802F472: + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0802F48A + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] + b _0802F49E +_0802F48A: + bl sub_08000E50 + movs r1, #0xf + ands r1, r0 + adds r1, #0x18 + ldrb r0, [r4, #0x15] + adds r1, r1, r0 + movs r0, #0x1f + ands r1, r0 + strb r1, [r4, #0x15] +_0802F49E: + pop {r4, pc} + + thumb_func_start sub_0802F4A0 +sub_0802F4A0: @ 0x0802F4A0 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _0802F4C8 @ =gUnk_080CDF50 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, r5, pc} + .align 2, 0 +_0802F4C8: .4byte gUnk_080CDF50 + + thumb_func_start sub_0802F4CC +sub_0802F4CC: @ 0x0802F4CC + push {lr} + ldr r2, _0802F4E0 @ =gUnk_080CDF68 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802F4E0: .4byte gUnk_080CDF68 + + thumb_func_start sub_0802F4E4 +sub_0802F4E4: @ 0x0802F4E4 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0802F4F8 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0802F4F8: + ldr r1, _0802F558 @ =gUnk_080CDF50 + adds r0, r4, #0 + bl sub_0804AA30 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x87 + bne _0802F536 + movs r0, #0x2a + movs r1, #3 + movs r2, #0 + bl sub_080A2960 + adds r2, r0, #0 + cmp r2, #0 + beq _0802F536 + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r3] + adds r1, r2, #0 + adds r1, #0x63 + movs r0, #0xfc + strb r0, [r1] + str r4, [r2, #0x50] +_0802F536: + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _0802F556 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x84 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E +_0802F556: + pop {r4, pc} + .align 2, 0 +_0802F558: .4byte gUnk_080CDF50 + + thumb_func_start sub_0802F55C +sub_0802F55C: @ 0x0802F55C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _0802F594 + movs r0, #3 + strb r0, [r4, #0xc] + movs r2, #0 + movs r0, #0xc0 + strh r0, [r4, #0x24] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x80 + strb r2, [r0] + ldrb r0, [r4, #0xe] + bl sub_0804B128 + str r0, [r4, #0x54] + adds r0, r4, #0 + bl sub_0802FA48 + adds r0, r4, #0 + bl sub_0802FA88 + b _0802F5B8 +_0802F594: + adds r0, r4, #0 + bl sub_0804A720 + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x82 + movs r0, #0xff + strb r0, [r1] + subs r1, #1 + movs r0, #0x28 + strb r0, [r1] + strb r0, [r4, #0xe] + movs r0, #0x60 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_0802F888 +_0802F5B8: + adds r0, r4, #0 + movs r1, #7 + movs r2, #0 + bl sub_0804A98C + adds r1, r0, #0 + cmp r1, #0 + beq _0802F5D0 + str r1, [r4, #0x50] + str r4, [r1, #0x50] + ldrb r0, [r4, #0x15] + strb r0, [r1, #0x15] +_0802F5D0: + ldrb r1, [r4, #0x15] + lsrs r1, r1, #3 + adds r0, r4, #0 + bl sub_08004260 + pop {r4, pc} + + thumb_func_start sub_0802F5DC +sub_0802F5DC: @ 0x0802F5DC + push {r4, r5, lr} + adds r5, r0, #0 + adds r2, r5, #0 + adds r2, #0x82 + ldrb r3, [r2] + cmp r3, #1 + beq _0802F62A + cmp r3, #1 + bgt _0802F5F4 + cmp r3, #0 + beq _0802F60A + b _0802F660 +_0802F5F4: + cmp r3, #0xff + bne _0802F660 + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _0802F660 + strb r0, [r2] + b _0802F660 +_0802F60A: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802F660 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + movs r0, #0x10 + strb r0, [r5, #0xe] + ldrb r0, [r5, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + b _0802F660 +_0802F62A: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0802F660 + movs r0, #2 + strb r0, [r5, #0xc] + strb r1, [r2] + movs r0, #0x28 + strb r0, [r5, #0xe] + ldrb r1, [r5, #0x15] + lsrs r1, r1, #3 + ldr r2, [r5, #0x50] + movs r4, #1 + strb r3, [r2, #0xe] + ldrb r3, [r2, #0x18] + subs r0, #0x2c + ands r0, r3 + orrs r0, r4 + strb r0, [r2, #0x18] + movs r0, #4 + orrs r1, r0 + adds r0, r5, #0 + bl sub_08004260 +_0802F660: + adds r0, r5, #0 + bl sub_0802F9C8 + pop {r4, r5, pc} + + thumb_func_start sub_0802F668 +sub_0802F668: @ 0x0802F668 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x82 + ldrb r0, [r2] + cmp r0, #1 + beq _0802F6F0 + cmp r0, #1 + bgt _0802F680 + cmp r0, #0 + beq _0802F68A + b _0802F7A2 +_0802F680: + cmp r0, #2 + beq _0802F742 + cmp r0, #3 + beq _0802F76C + b _0802F7A2 +_0802F68A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _0802F69E + cmp r1, #8 + beq _0802F6B6 + b _0802F7A2 +_0802F69E: + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + movs r0, #0x38 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + ldr r2, [r4, #0x50] + ldrb r1, [r2, #0x18] + subs r0, #0x3c + ands r0, r1 + strb r0, [r2, #0x18] + b _0802F7A2 +_0802F6B6: + ldr r1, _0802F6EC @ =gUnk_03001160 + adds r0, r4, #0 + movs r2, #0xa0 + movs r3, #0xa0 + bl sub_080041A0 + cmp r0, #0 + beq _0802F7A2 + adds r0, r4, #0 + bl sub_080040A8 + cmp r0, #0 + beq _0802F7A2 + adds r0, r4, #0 + movs r1, #7 + movs r2, #1 + bl sub_0804A98C + adds r2, r0, #0 + cmp r2, #0 + beq _0802F7A2 + ldrb r1, [r4, #0x15] + movs r0, #0x18 + ands r0, r1 + strb r0, [r2, #0x15] + b _0802F7A2 + .align 2, 0 +_0802F6EC: .4byte gUnk_03001160 +_0802F6F0: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + bne _0802F7A2 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #0x28 + strb r0, [r1] + strb r0, [r4, #0xe] + strb r3, [r4, #0xf] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #0xab + lsls r0, r0, #1 + bl sub_08004488 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x84 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + ldrb r1, [r4, #0x15] + lsrs r1, r1, #3 + adds r0, r4, #0 + bl sub_08004260 + b _0802F7A2 +_0802F742: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802F7A2 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + adds r0, #0x20 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + b _0802F7A2 +_0802F76C: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0802F7A2 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r2] + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #0x28 + strb r0, [r1] + strb r0, [r4, #0xe] + movs r0, #0xab + lsls r0, r0, #1 + bl sub_08004488 + adds r0, r4, #0 + bl sub_0802F8E4 + ldrb r1, [r4, #0x15] + lsrs r1, r1, #3 + adds r0, r4, #0 + bl sub_08004260 +_0802F7A2: + adds r0, r4, #0 + bl sub_0802F9C8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802F7AC +sub_0802F7AC: @ 0x0802F7AC + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0802FA88 + adds r0, r4, #0 + bl sub_0802F9C8 + ldr r5, [r4, #0x50] + adds r0, r4, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + bne _0802F86E + adds r2, r4, #0 + adds r2, #0x82 + ldrb r1, [r2] + cmp r1, #1 + beq _0802F7EA + cmp r1, #1 + bgt _0802F7DA + cmp r1, #0 + beq _0802F7E0 + b _0802F884 +_0802F7DA: + cmp r1, #2 + beq _0802F818 + b _0802F884 +_0802F7E0: + movs r0, #1 + strb r0, [r2] + movs r0, #0x40 + strb r0, [r4, #0xe] + b _0802F884 +_0802F7EA: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802F884 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + movs r0, #0x28 + strb r0, [r4, #0xe] + movs r2, #1 + strb r1, [r5, #0xe] + ldrb r1, [r5, #0x18] + subs r0, #0x2c + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 + movs r0, #4 + orrs r1, r0 + b _0802F844 +_0802F818: + ldrb r0, [r4, #0xe] + subs r1, r0, #1 + strb r1, [r4, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _0802F84C + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x30 + strb r0, [r4, #0xe] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r5, #0x18] + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 +_0802F844: + adds r0, r4, #0 + bl sub_08004260 + b _0802F884 +_0802F84C: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #8 + bne _0802F884 + adds r0, r4, #0 + movs r1, #7 + movs r2, #1 + bl sub_0804A98C + adds r5, r0, #0 + cmp r5, #0 + beq _0802F884 + ldrb r1, [r4, #0x15] + movs r0, #0x18 + ands r0, r1 + strb r0, [r5, #0x15] + b _0802F884 +_0802F86E: + adds r1, r4, #0 + adds r1, #0x82 + ldrb r0, [r1] + cmp r0, #0 + beq _0802F884 + movs r0, #0 + strb r0, [r1] + ldrb r1, [r5, #0x18] + subs r0, #4 + ands r0, r1 + strb r0, [r5, #0x18] +_0802F884: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0802F888 +sub_0802F888: @ 0x0802F888 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r1, #3 + bl sub_08049F84 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0802F8DC @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r5, r4, #0 + adds r5, #0x84 + strh r1, [r5] + ldrh r0, [r5] + adds r6, r4, #0 + adds r6, #0x38 + ldrb r1, [r6] + bl sub_080001DA + adds r4, #0x86 + strh r0, [r4] + ldr r0, _0802F8E0 @ =0x00004071 + ldrh r1, [r5] + ldrb r2, [r6] + bl sub_0800015E + pop {r4, r5, r6, pc} + .align 2, 0 +_0802F8DC: .4byte gUnk_03000BF0 +_0802F8E0: .4byte 0x00004071 + + thumb_func_start sub_0802F8E4 +sub_0802F8E4: @ 0x0802F8E4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + adds r7, r0, #0 + ldrb r0, [r7, #0xb] + cmp r0, #0 + bne _0802F9AE + movs r0, #1 + str r0, [sp] + adds r1, r7, #0 + adds r1, #0x70 + str r1, [sp, #0xc] + adds r2, r7, #0 + adds r2, #0x6e + str r2, [sp, #4] + adds r0, r7, #0 + adds r0, #0x72 + str r0, [sp, #0x10] + subs r1, #1 + str r1, [sp, #8] + movs r2, #0x38 + adds r2, r2, r7 + mov r8, r2 + movs r0, #8 + mov sl, r0 + ldr r1, _0802F9BC @ =gUnk_03000BF0 + mov sb, r1 +_0802F920: + bl sub_08000E50 + adds r4, r0, #0 + ldr r2, [sp, #0xc] + ldrh r5, [r2] + ldr r1, _0802F9C0 @ =0x00007FF0 + ands r0, r1 + ldr r2, [sp, #4] + ldrb r1, [r2] + lsls r1, r1, #3 + bl __modsi3 + adds r6, r5, r0 + mov r0, sl + orrs r6, r0 + lsrs r4, r4, #0x10 + ldr r1, [sp, #0x10] + ldrh r5, [r1] + ldr r2, _0802F9C0 @ =0x00007FF0 + ands r4, r2 + ldr r0, [sp, #8] + ldrb r1, [r0] + lsls r1, r1, #3 + adds r0, r4, #0 + bl __modsi3 + adds r5, r5, r0 + mov r1, sl + orrs r5, r1 + mov r2, sb + ldrh r0, [r2, #6] + subs r0, r6, r0 + lsrs r4, r0, #4 + movs r1, #0x3f + ands r4, r1 + ldrh r0, [r2, #8] + subs r0, r5, r0 + lsrs r0, r0, #4 + ands r0, r1 + lsls r0, r0, #6 + orrs r4, r0 + mov r0, r8 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080002E0 + cmp r0, #0 + bne _0802F9A2 + mov r2, r8 + ldrb r1, [r2] + adds r0, r4, #0 + bl sub_080001DA + ldr r1, _0802F9C4 @ =0x00004071 + cmp r0, r1 + beq _0802F9A2 + strh r6, [r7, #0x2e] + strh r5, [r7, #0x32] + adds r0, r7, #0 + bl sub_08049FA0 + cmp r0, #0 + beq _0802F9A2 + movs r0, #0 + str r0, [sp] +_0802F9A2: + ldr r1, [sp] + cmp r1, #0 + bne _0802F920 + adds r0, r7, #0 + bl sub_0802F888 +_0802F9AE: + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0802F9BC: .4byte gUnk_03000BF0 +_0802F9C0: .4byte 0x00007FF0 +_0802F9C4: .4byte 0x00004071 + + thumb_func_start sub_0802F9C8 +sub_0802F9C8: @ 0x0802F9C8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _0802FA44 + adds r5, r4, #0 + adds r5, #0x81 + ldrb r0, [r5] + adds r6, r5, #0 + cmp r0, #0 + beq _0802FA20 + subs r0, #1 + strb r0, [r5] + movs r1, #0xff + ands r0, r1 + movs r2, #1 + ands r0, r2 + cmp r0, #0 + beq _0802F9F8 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + b _0802FA02 +_0802F9F8: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 +_0802FA02: + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _0802FA3E + adds r0, r4, #0 + bl sub_0806F69C + ldrb r0, [r6] + cmp r0, #0 + bne _0802FA3E + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + b _0802FA3E +_0802FA20: + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _0802FA3E + adds r0, r4, #0 + bl sub_080AEF88 + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _0802FA3E + ldrb r0, [r4, #0x10] + movs r1, #0x7f + ands r1, r0 + strb r1, [r4, #0x10] + movs r0, #0x28 + strb r0, [r5] +_0802FA3E: + adds r0, r4, #0 + bl sub_08004274 +_0802FA44: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0802FA48 +sub_0802FA48: @ 0x0802FA48 + push {r4, lr} + mov ip, r0 + ldr r4, [r0, #0x54] + mov r2, ip + adds r2, #0x80 + ldrb r0, [r2] + lsls r0, r0, #2 + adds r3, r4, r0 + ldrh r1, [r3] + ldr r0, _0802FA80 @ =0x0000FFFF + cmp r1, r0 + bne _0802FA66 + movs r0, #0 + strb r0, [r2] + adds r3, r4, #0 +_0802FA66: + ldr r2, _0802FA84 @ =gUnk_03000BF0 + ldrh r0, [r3] + ldrh r1, [r2, #6] + adds r0, r0, r1 + mov r1, ip + adds r1, #0x78 + strh r0, [r1] + ldrh r0, [r3, #2] + ldrh r2, [r2, #8] + adds r0, r0, r2 + adds r1, #2 + strh r0, [r1] + pop {r4, pc} + .align 2, 0 +_0802FA80: .4byte 0x0000FFFF +_0802FA84: .4byte gUnk_03000BF0 + + thumb_func_start sub_0802FA88 +sub_0802FA88: @ 0x0802FA88 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + movs r7, #0 + adds r5, r4, #0 + adds r5, #0x78 + ldrh r1, [r5] + adds r6, r4, #0 + adds r6, #0x7a + ldrh r2, [r6] + movs r3, #2 + bl sub_0806FCB8 + cmp r0, #0 + beq _0802FAF6 + adds r1, r4, #0 + adds r1, #0x80 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0802FA48 + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + ldrh r2, [r5] + ldrh r3, [r6] + bl sub_080045D4 + adds r2, r0, #0 + strb r2, [r4, #0x15] + adds r0, r2, #4 + movs r1, #0x18 + ands r0, r1 + lsrs r0, r0, #2 + strb r0, [r4, #0x14] + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0x18] + lsls r0, r0, #0x1e + cmp r0, #0 + beq _0802FAEA + lsrs r1, r2, #3 + movs r0, #4 + orrs r1, r0 + adds r0, r4, #0 + bl sub_08004260 + b _0802FAF2 +_0802FAEA: + lsrs r1, r2, #3 + adds r0, r4, #0 + bl sub_08004260 +_0802FAF2: + movs r7, #1 + b _0802FB2A +_0802FAF6: + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + ldrh r2, [r5] + ldrh r3, [r6] + bl sub_080045D4 + adds r2, r0, #0 + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_08004596 + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + asrs r2, r0, #2 + ldrb r0, [r4, #0x14] + cmp r2, r0 + beq _0802FB2A + strb r2, [r4, #0x14] + lsrs r1, r2, #1 + adds r0, r4, #0 + bl sub_08004260 +_0802FB2A: + adds r0, r7, #0 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0802FB30 +sub_0802FB30: @ 0x0802FB30 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _0802FB58 @ =gUnk_080CDFC4 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, r5, pc} + .align 2, 0 +_0802FB58: .4byte gUnk_080CDFC4 + + thumb_func_start sub_0802FB5C +sub_0802FB5C: @ 0x0802FB5C + push {lr} + ldr r2, _0802FB70 @ =gUnk_080CDFDC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802FB70: .4byte gUnk_080CDFDC + + thumb_func_start sub_0802FB74 +sub_0802FB74: @ 0x0802FB74 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0802FB88 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0802FB88: + ldr r1, _0802FBB4 @ =gUnk_080CDFC4 + adds r0, r4, #0 + bl sub_0804AA30 + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _0802FBB0 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x84 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E +_0802FBB0: + pop {r4, pc} + .align 2, 0 +_0802FBB4: .4byte gUnk_080CDFC4 + + thumb_func_start sub_0802FBB8 +sub_0802FBB8: @ 0x0802FBB8 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x82 + movs r0, #0xff + strb r0, [r1] + subs r1, #1 + movs r0, #0x28 + strb r0, [r1] + strb r0, [r4, #0xe] + movs r0, #0x60 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_0802F888 + adds r0, r4, #0 + movs r1, #8 + movs r2, #0 + bl sub_0804A98C + adds r1, r0, #0 + cmp r1, #0 + beq _0802FBF6 + str r1, [r4, #0x54] + str r4, [r1, #0x50] + ldrb r0, [r4, #0x15] + strb r0, [r1, #0x15] +_0802FBF6: + ldrb r1, [r4, #0x15] + lsrs r1, r1, #3 + adds r0, r4, #0 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802FC04 +sub_0802FC04: @ 0x0802FC04 + push {r4, r5, lr} + adds r5, r0, #0 + adds r2, r5, #0 + adds r2, #0x82 + ldrb r3, [r2] + cmp r3, #1 + beq _0802FC52 + cmp r3, #1 + bgt _0802FC1C + cmp r3, #0 + beq _0802FC32 + b _0802FC88 +_0802FC1C: + cmp r3, #0xff + bne _0802FC88 + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _0802FC88 + strb r0, [r2] + b _0802FC88 +_0802FC32: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802FC88 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + movs r0, #0xe + strb r0, [r5, #0xe] + ldrb r0, [r5, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + b _0802FC88 +_0802FC52: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0802FC88 + movs r0, #2 + strb r0, [r5, #0xc] + strb r1, [r2] + movs r0, #0x20 + strb r0, [r5, #0xe] + ldrb r1, [r5, #0x15] + lsrs r1, r1, #3 + ldr r2, [r5, #0x54] + movs r4, #1 + strb r3, [r2, #0xe] + ldrb r3, [r2, #0x18] + subs r0, #0x24 + ands r0, r3 + orrs r0, r4 + strb r0, [r2, #0x18] + movs r0, #4 + orrs r1, r0 + adds r0, r5, #0 + bl sub_08004260 +_0802FC88: + adds r0, r5, #0 + bl sub_0802F9C8 + pop {r4, r5, pc} + + thumb_func_start sub_0802FC90 +sub_0802FC90: @ 0x0802FC90 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x82 + ldrb r0, [r2] + cmp r0, #1 + beq _0802FD18 + cmp r0, #1 + bgt _0802FCA8 + cmp r0, #0 + beq _0802FCB2 + b _0802FDCA +_0802FCA8: + cmp r0, #2 + beq _0802FD6A + cmp r0, #3 + beq _0802FD94 + b _0802FDCA +_0802FCB2: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _0802FCC6 + cmp r1, #6 + beq _0802FCDE + b _0802FDCA +_0802FCC6: + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + movs r0, #0x38 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + ldr r2, [r4, #0x54] + ldrb r1, [r2, #0x18] + subs r0, #0x3c + ands r0, r1 + strb r0, [r2, #0x18] + b _0802FDCA +_0802FCDE: + ldr r1, _0802FD14 @ =gUnk_03001160 + adds r0, r4, #0 + movs r2, #0xa0 + movs r3, #0xa0 + bl sub_080041A0 + cmp r0, #0 + beq _0802FDCA + adds r0, r4, #0 + bl sub_080040A8 + cmp r0, #0 + beq _0802FDCA + adds r0, r4, #0 + movs r1, #8 + movs r2, #1 + bl sub_0804A98C + adds r2, r0, #0 + cmp r2, #0 + beq _0802FDCA + ldrb r1, [r4, #0x15] + movs r0, #0x18 + ands r0, r1 + strb r0, [r2, #0x15] + b _0802FDCA + .align 2, 0 +_0802FD14: .4byte gUnk_03001160 +_0802FD18: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + bne _0802FDCA + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #0x28 + strb r0, [r1] + strb r0, [r4, #0xe] + strb r3, [r4, #0xf] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x84 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + movs r0, #0xab + lsls r0, r0, #1 + bl sub_08004488 + ldrb r1, [r4, #0x15] + lsrs r1, r1, #3 + adds r0, r4, #0 + bl sub_08004260 + b _0802FDCA +_0802FD6A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802FDCA + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + adds r0, #0x1c + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + b _0802FDCA +_0802FD94: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0802FDCA + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r2] + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #0x28 + strb r0, [r1] + strb r0, [r4, #0xe] + movs r0, #0xab + lsls r0, r0, #1 + bl sub_08004488 + adds r0, r4, #0 + bl sub_0802F8E4 + ldrb r1, [r4, #0x15] + lsrs r1, r1, #3 + adds r0, r4, #0 + bl sub_08004260 +_0802FDCA: + adds r0, r4, #0 + bl sub_0802F9C8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802FDD4 +sub_0802FDD4: @ 0x0802FDD4 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _0802FDFC @ =gUnk_080CE074 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, r5, pc} + .align 2, 0 +_0802FDFC: .4byte gUnk_080CE074 + + thumb_func_start sub_0802FE00 +sub_0802FE00: @ 0x0802FE00 + push {lr} + ldr r2, _0802FE14 @ =gUnk_080CE08C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802FE14: .4byte gUnk_080CE08C + + thumb_func_start sub_0802FE18 +sub_0802FE18: @ 0x0802FE18 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0802FE2C + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0802FE2C: + ldr r1, _0802FE8C @ =gUnk_080CE074 + adds r0, r4, #0 + bl sub_0804AA30 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x87 + bne _0802FE6A + movs r0, #0x2a + movs r1, #3 + movs r2, #0 + bl sub_080A2960 + adds r2, r0, #0 + cmp r2, #0 + beq _0802FE6A + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r3] + adds r1, r2, #0 + adds r1, #0x63 + movs r0, #0xfc + strb r0, [r1] + str r4, [r2, #0x50] +_0802FE6A: + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _0802FE8A + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x84 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E +_0802FE8A: + pop {r4, pc} + .align 2, 0 +_0802FE8C: .4byte gUnk_080CE074 + + thumb_func_start sub_0802FE90 +sub_0802FE90: @ 0x0802FE90 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x82 + movs r0, #0xff + strb r0, [r1] + subs r1, #1 + movs r0, #0x28 + strb r0, [r1] + strb r0, [r4, #0xe] + movs r0, #0x60 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_0802F888 + adds r0, r4, #0 + movs r1, #9 + movs r2, #0 + bl sub_0804A98C + adds r1, r0, #0 + cmp r1, #0 + beq _0802FECE + str r1, [r4, #0x54] + str r4, [r1, #0x50] + ldrb r0, [r4, #0x15] + strb r0, [r1, #0x15] +_0802FECE: + ldrb r1, [r4, #0x15] + lsrs r1, r1, #3 + adds r0, r4, #0 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802FEDC +sub_0802FEDC: @ 0x0802FEDC + push {r4, r5, lr} + adds r5, r0, #0 + adds r2, r5, #0 + adds r2, #0x82 + ldrb r3, [r2] + cmp r3, #1 + beq _0802FF2A + cmp r3, #1 + bgt _0802FEF4 + cmp r3, #0 + beq _0802FF0A + b _0802FF60 +_0802FEF4: + cmp r3, #0xff + bne _0802FF60 + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _0802FF60 + strb r0, [r2] + b _0802FF60 +_0802FF0A: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802FF60 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + movs r0, #0xc + strb r0, [r5, #0xe] + ldrb r0, [r5, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + b _0802FF60 +_0802FF2A: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0802FF60 + movs r0, #2 + strb r0, [r5, #0xc] + strb r1, [r2] + movs r0, #0x20 + strb r0, [r5, #0xe] + ldrb r1, [r5, #0x15] + lsrs r1, r1, #3 + ldr r2, [r5, #0x54] + movs r4, #1 + strb r3, [r2, #0xe] + ldrb r3, [r2, #0x18] + subs r0, #0x24 + ands r0, r3 + orrs r0, r4 + strb r0, [r2, #0x18] + movs r0, #4 + orrs r1, r0 + adds r0, r5, #0 + bl sub_08004260 +_0802FF60: + adds r0, r5, #0 + bl sub_0802F9C8 + pop {r4, r5, pc} + + thumb_func_start sub_0802FF68 +sub_0802FF68: @ 0x0802FF68 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x82 + ldrb r0, [r2] + cmp r0, #1 + beq _0802FFF0 + cmp r0, #1 + bgt _0802FF80 + cmp r0, #0 + beq _0802FF8A + b _080300A2 +_0802FF80: + cmp r0, #2 + beq _08030042 + cmp r0, #3 + beq _0803006C + b _080300A2 +_0802FF8A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _0802FF9E + cmp r1, #0xa + beq _0802FFB6 + b _080300A2 +_0802FF9E: + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + movs r0, #0x38 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + ldr r2, [r4, #0x54] + ldrb r1, [r2, #0x18] + subs r0, #0x3c + ands r0, r1 + strb r0, [r2, #0x18] + b _080300A2 +_0802FFB6: + ldr r1, _0802FFEC @ =gUnk_03001160 + adds r0, r4, #0 + movs r2, #0xa0 + movs r3, #0xa0 + bl sub_080041A0 + cmp r0, #0 + beq _080300A2 + adds r0, r4, #0 + bl sub_080040A8 + cmp r0, #0 + beq _080300A2 + adds r0, r4, #0 + movs r1, #9 + movs r2, #1 + bl sub_0804A98C + adds r2, r0, #0 + cmp r2, #0 + beq _080300A2 + ldrb r1, [r4, #0x15] + movs r0, #0x18 + ands r0, r1 + strb r0, [r2, #0x15] + b _080300A2 + .align 2, 0 +_0802FFEC: .4byte gUnk_03001160 +_0802FFF0: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + bne _080300A2 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #0x28 + strb r0, [r1] + strb r0, [r4, #0xe] + strb r3, [r4, #0xf] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x84 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + movs r0, #0xab + lsls r0, r0, #1 + bl sub_08004488 + ldrb r1, [r4, #0x15] + lsrs r1, r1, #3 + adds r0, r4, #0 + bl sub_08004260 + b _080300A2 +_08030042: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080300A2 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + adds r0, #0x18 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + b _080300A2 +_0803006C: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _080300A2 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r2] + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #0x28 + strb r0, [r1] + strb r0, [r4, #0xe] + movs r0, #0xab + lsls r0, r0, #1 + bl sub_08004488 + adds r0, r4, #0 + bl sub_0802F8E4 + ldrb r1, [r4, #0x15] + lsrs r1, r1, #3 + adds r0, r4, #0 + bl sub_08004260 +_080300A2: + adds r0, r4, #0 + bl sub_0802F9C8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080300AC +sub_080300AC: @ 0x080300AC + push {r4, lr} + ldr r4, _080300C0 @ =gUnk_0300110C + adds r0, r4, #0 + movs r1, #0x44 + bl sub_0801D630 + adds r4, #0x42 + movs r0, #0xff + strh r0, [r4] + pop {r4, pc} + .align 2, 0 +_080300C0: .4byte gUnk_0300110C + + thumb_func_start sub_080300C4 +sub_080300C4: @ 0x080300C4 + push {lr} + ldr r2, _080300E4 @ =gUnk_030010A0 + adds r0, r2, #0 + adds r0, #0xae + ldrh r0, [r0] + cmp r0, #0xff + bne _080300E2 + adds r0, r2, #0 + adds r0, #0xac + movs r1, #0 + strh r1, [r0] + subs r0, #0x40 + movs r1, #0x40 + bl sub_0801D630 +_080300E2: + pop {pc} + .align 2, 0 +_080300E4: .4byte gUnk_030010A0 + + thumb_func_start sub_080300E8 +sub_080300E8: @ 0x080300E8 + push {lr} + ldr r1, _08030110 @ =gUnk_030010A0 + adds r3, r1, #0 + adds r3, #0xae + ldrh r0, [r3] + cmp r0, #0xff + beq _0803010C + lsls r0, r0, #2 + adds r1, #0x6c + adds r0, r0, r1 + ldr r2, _08030114 @ =gUnk_03001160 + ldrh r1, [r0] + strh r1, [r2, #0x2e] + ldrh r0, [r0, #2] + adds r0, #0xc + strh r0, [r2, #0x32] + movs r0, #0xff + strh r0, [r3] +_0803010C: + pop {pc} + .align 2, 0 +_08030110: .4byte gUnk_030010A0 +_08030114: .4byte gUnk_03001160 + + thumb_func_start sub_08030118 +sub_08030118: @ 0x08030118 + push {lr} + adds r2, r0, #0 + ldr r0, _0803013C @ =gUnk_030010A0 + adds r0, #0xac + ldrh r0, [r0] + asrs r0, r2 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08030140 + movs r0, #0xc0 + lsls r0, r0, #2 + adds r1, r2, #0 + adds r1, #0x67 + bl sub_0807CC9C + b _0803014C + .align 2, 0 +_0803013C: .4byte gUnk_030010A0 +_08030140: + movs r0, #0xc0 + lsls r0, r0, #2 + adds r1, r2, #0 + adds r1, #0x67 + bl sub_0807CD20 +_0803014C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08030150 +sub_08030150: @ 0x08030150 + push {r4, r5, lr} + mov ip, r0 + ldr r2, _08030194 @ =gUnk_030010A0 + adds r5, r2, #0 + adds r5, #0xac + mov r3, ip + adds r3, #0x80 + ldrb r4, [r3] + movs r0, #1 + lsls r0, r4 + ldrh r1, [r5] + bics r1, r0 + mov r0, ip + adds r0, #0x84 + ldr r0, [r0] + lsls r0, r4 + orrs r1, r0 + strh r1, [r5] + ldrb r0, [r3] + lsls r0, r0, #2 + adds r2, #0x6c + adds r0, r0, r2 + mov r4, ip + ldrh r1, [r4, #0x2e] + strh r1, [r0] + ldrb r0, [r3] + lsls r0, r0, #1 + adds r0, #1 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r1, [r4, #0x32] + strh r1, [r0] + pop {r4, r5, pc} + .align 2, 0 +_08030194: .4byte gUnk_030010A0 + + thumb_func_start sub_08030198 +sub_08030198: @ 0x08030198 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080301B8 @ =gUnk_080CE124 + bl sub_0800129E + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + adds r0, r4, #0 + bl sub_08030150 + pop {r4, pc} + .align 2, 0 +_080301B8: .4byte gUnk_080CE124 + + thumb_func_start sub_080301BC +sub_080301BC: @ 0x080301BC + push {lr} + ldr r2, _080301D0 @ =gUnk_080CE13C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080301D0: .4byte gUnk_080CE13C + + thumb_func_start sub_080301D4 +sub_080301D4: @ 0x080301D4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + bne _080301EE + ldr r1, [r4, #0x4c] + ldr r0, _08030238 @ =gUnk_03001160 + cmp r1, r0 + bne _080301EE + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0xe2 + strb r0, [r1] +_080301EE: + adds r0, r4, #0 + adds r0, #0x45 + ldrb r1, [r0] + adds r6, r0, #0 + adds r5, r4, #0 + adds r5, #0x81 + cmp r1, #0 + beq _08030216 + ldrb r0, [r5] + cmp r1, r0 + beq _08030216 + movs r0, #8 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #6 + bl sub_080309C8 + adds r0, r4, #0 + bl sub_080309E8 +_08030216: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _08030228 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08030228: + ldrb r0, [r6] + strb r0, [r5] + ldr r1, _0803023C @ =gUnk_080CE124 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, r5, r6, pc} + .align 2, 0 +_08030238: .4byte gUnk_03001160 +_0803023C: .4byte gUnk_080CE124 + + thumb_func_start sub_08030240 +sub_08030240: @ 0x08030240 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #6 + bne _08030260 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08030260 + adds r0, r4, #0 + bl sub_08004274 +_08030260: + adds r0, r4, #0 + bl sub_08001242 + pop {r4, pc} + + thumb_func_start nullsub_17 +nullsub_17: @ 0x08030268 + bx lr + .align 2, 0 + + thumb_func_start sub_0803026C +sub_0803026C: @ 0x0803026C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0804A720 + ldrb r0, [r4, #0xe] + adds r3, r4, #0 + adds r3, #0x80 + strb r0, [r3] + ldrb r2, [r3] + lsls r0, r2, #2 + ldr r5, _080302A8 @ =gUnk_0300110C + adds r0, r0, r5 + ldrh r1, [r0] + cmp r1, #0 + beq _080302AC + strh r1, [r4, #0x2e] + ldrh r0, [r0, #2] + strh r0, [r4, #0x32] + adds r2, r4, #0 + adds r2, #0x84 + adds r0, r5, #0 + adds r0, #0x40 + ldrh r0, [r0] + ldrb r3, [r3] + asrs r0, r3 + movs r1, #1 + ands r0, r1 + str r0, [r2] + b _080302BA + .align 2, 0 +_080302A8: .4byte gUnk_0300110C +_080302AC: + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, _08030304 @ =0x0000047D + asrs r1, r2 + movs r2, #1 + ands r1, r2 + str r1, [r0] +_080302BA: + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _080302C6 + bl sub_0804B128 + str r0, [r4, #0x7c] +_080302C6: + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x81 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08030580 + adds r0, r4, #0 + bl sub_080307EC + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #2 + bne _08030302 + ldr r0, _08030308 @ =gUnk_03000BF0 + ldrh r0, [r0, #8] + adds r0, #0x80 + movs r2, #0x32 + ldrsh r1, [r4, r2] + cmp r0, r1 + bge _08030302 + movs r0, #7 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #7 + bl sub_080309C8 +_08030302: + pop {r4, r5, pc} + .align 2, 0 +_08030304: .4byte 0x0000047D +_08030308: .4byte gUnk_03000BF0 + + thumb_func_start sub_0803030C +sub_0803030C: @ 0x0803030C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0803086C + adds r5, r0, #0 + cmp r5, #0 + bne _08030334 + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + cmp r0, #0 + beq _08030334 + adds r0, r4, #0 + bl sub_08030650 + cmp r0, #0 + beq _08030334 + movs r0, #2 + strb r0, [r4, #0xc] + strb r5, [r4, #0xd] +_08030334: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08030338 +sub_08030338: @ 0x08030338 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #2 + beq _0803034C + adds r0, r4, #0 + bl sub_080309A8 + b _08030368 +_0803034C: + adds r0, r4, #0 + movs r1, #3 + bl sub_08004276 + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + cmp r0, #0 + beq _08030368 + ldrb r0, [r4, #0x1e] + cmp r0, #0x25 + bne _08030368 + movs r0, #0x19 + strb r0, [r4, #0x1e] +_08030368: + adds r3, r4, #0 + adds r3, #0x5a + ldrb r2, [r3] + adds r1, r2, #0 + cmp r1, #1 + bne _0803039C + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _0803037C + strb r1, [r4, #0xd] +_0803037C: + ldrb r0, [r4, #0xe] + adds r2, r0, #1 + strb r2, [r4, #0xe] + ands r1, r2 + cmp r1, #0 + beq _0803042C + ldr r1, _08030398 @ =gUnk_080CE160 + movs r0, #6 + ands r2, r0 + lsrs r0, r2, #1 + adds r0, r0, r1 + ldrb r1, [r0] + b _08030426 + .align 2, 0 +_08030398: .4byte gUnk_080CE160 +_0803039C: + cmp r1, #2 + bne _080303D4 + movs r0, #0 + strb r0, [r3] + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #2 + beq _080303C0 + adds r1, r4, #0 + adds r1, #0x3b + movs r0, #0xb + strb r0, [r1] + adds r1, #4 + movs r0, #8 + strb r0, [r1] + ldr r0, _080303D0 @ =gUnk_080FD2F0 + str r0, [r4, #0x48] +_080303C0: + adds r0, r4, #0 + bl sub_08030834 + movs r0, #0x95 + lsls r0, r0, #1 + bl sub_08004488 + b _0803042C + .align 2, 0 +_080303D0: .4byte gUnk_080FD2F0 +_080303D4: + movs r0, #0x80 + ands r0, r2 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _08030426 + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #2 + beq _08030412 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0xff + strb r0, [r4, #0x14] + adds r2, r4, #0 + adds r2, #0x7a + movs r1, #0 + movs r0, #0x96 + lsls r0, r0, #2 + strh r0, [r2] + adds r0, r4, #0 + adds r0, #0x82 + strb r1, [r0] + adds r0, r4, #0 + bl sub_080306C4 + adds r0, r4, #0 + bl sub_080309E8 + b _0803042C +_08030412: + movs r0, #6 + strb r0, [r4, #0xc] + movs r0, #0x1a + strb r0, [r4, #0xe] + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + movs r0, #0x10 + strb r0, [r4, #0x15] + b _0803042C +_08030426: + adds r0, r4, #0 + adds r0, #0x62 + strb r1, [r0] +_0803042C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08030430 +sub_08030430: @ 0x08030430 + push {r4, lr} + adds r4, r0, #0 + bl sub_08030A04 + movs r0, #0x24 + ldrsh r1, [r4, r0] + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + ble _0803044A + adds r0, r4, #0 + bl sub_08004274 +_0803044A: + adds r0, r4, #0 + bl sub_080309A8 + adds r1, r4, #0 + adds r1, #0x7a + ldrh r0, [r1] + cmp r0, #0 + beq _0803045E + subs r0, #1 + strh r0, [r1] +_0803045E: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08030470 + adds r0, r4, #0 + bl sub_080306C4 +_08030470: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08030474 +sub_08030474: @ 0x08030474 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803049C + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #1 + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x7a + movs r0, #0x3c + strh r0, [r1] + adds r0, r4, #0 + bl sub_080309E8 + b _080304BA +_0803049C: + adds r0, r4, #0 + bl sub_080305BC + cmp r0, #0 + beq _080304AE + adds r0, r4, #0 + bl sub_08030590 + b _080304BA +_080304AE: + adds r0, r4, #0 + bl sub_080307D4 + adds r0, r4, #0 + bl sub_080309A8 +_080304BA: + pop {r4, pc} + + thumb_func_start sub_080304BC +sub_080304BC: @ 0x080304BC + push {r4, lr} + adds r4, r0, #0 + bl sub_080309A8 + adds r3, r4, #0 + adds r3, #0x5a + ldrb r1, [r3] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + beq _080304DE + adds r0, r4, #0 + bl sub_08030580 + b _080304F0 +_080304DE: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080304F0 + strb r2, [r3] + movs r0, #0x95 + lsls r0, r0, #1 + bl sub_08004488 +_080304F0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080304F4 +sub_080304F4: @ 0x080304F4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_080309A8 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08030520 + movs r0, #7 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #5 + bl sub_080309C8 + adds r0, r4, #0 + bl sub_080307EC +_08030520: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08030524 +sub_08030524: @ 0x08030524 + push {lr} + adds r2, r0, #0 + adds r3, r2, #0 + adds r3, #0x5a + ldrb r1, [r3] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0803053E + adds r0, r2, #0 + bl sub_080309A8 + b _08030552 +_0803053E: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08030552 + movs r0, #0 + strb r0, [r3] + movs r0, #0x95 + lsls r0, r0, #1 + bl sub_08004488 +_08030552: + pop {pc} + + thumb_func_start sub_08030554 +sub_08030554: @ 0x08030554 + push {r4, lr} + adds r4, r0, #0 + bl sub_080309A8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803057C + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_080309C8 + adds r0, r4, #0 + bl sub_080306C4 +_0803057C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08030580 +sub_08030580: @ 0x08030580 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #4 + bl sub_080309C8 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08030590 +sub_08030590: @ 0x08030590 + push {r4, lr} + adds r4, r0, #0 + movs r0, #5 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3b + movs r0, #1 + strb r0, [r1] + adds r1, #4 + strb r0, [r1] + ldr r0, _080305B8 @ =gUnk_080FD2F8 + str r0, [r4, #0x48] + adds r0, r4, #0 + movs r1, #5 + bl sub_080309C8 + adds r0, r4, #0 + bl sub_080307EC + pop {r4, pc} + .align 2, 0 +_080305B8: .4byte gUnk_080FD2F8 + + thumb_func_start sub_080305BC +sub_080305BC: @ 0x080305BC + push {r4, lr} + adds r4, r0, #0 + ldrh r1, [r4, #0x2e] + movs r2, #0xf + adds r0, r2, #0 + ands r0, r1 + movs r3, #0 + cmp r0, #8 + bne _080305D0 + movs r3, #1 +_080305D0: + ldrh r0, [r4, #0x32] + ands r2, r0 + cmp r2, #8 + bne _080305DC + movs r0, #2 + orrs r3, r0 +_080305DC: + cmp r3, #3 + bne _080305E4 + movs r0, #1 + b _0803064C +_080305E4: + ldrb r1, [r4, #0x15] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0803061E + movs r0, #1 + ands r0, r3 + cmp r0, #0 + bne _08030608 + adds r0, r4, #0 + bl sub_080AEF88 + cmp r0, #0 + bne _0803064A + ldrb r0, [r4, #0x15] + movs r1, #0x10 + eors r0, r1 + b _08030648 +_08030608: + cmp r2, #8 + ble _08030610 + movs r0, #0x10 + b _08030612 +_08030610: + movs r0, #0 +_08030612: + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x15] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + bne _0803064A +_0803061E: + movs r0, #2 + ands r3, r0 + cmp r3, #0 + bne _08030638 + adds r0, r4, #0 + bl sub_080AEF88 + cmp r0, #0 + bne _0803064A + ldrb r0, [r4, #0x15] + movs r1, #0x10 + eors r0, r1 + b _08030648 +_08030638: + ldrh r1, [r4, #0x2e] + movs r0, #0xf + ands r0, r1 + cmp r0, #8 + ble _08030646 + movs r0, #8 + b _08030648 +_08030646: + movs r0, #0x18 +_08030648: + strb r0, [r4, #0x15] +_0803064A: + movs r0, #0 +_0803064C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08030650 +sub_08030650: @ 0x08030650 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08030668 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x80 + bne _080306B6 +_08030664: + movs r0, #1 + b _080306B8 +_08030668: + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #2 + beq _08030698 + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _080306B6 + ldr r0, _08030694 @ =gUnk_020000B0 + ldr r0, [r0] + movs r1, #0x2e + ldrsh r0, [r0, r1] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + adds r0, #0x10 + cmp r0, #0x20 + bhi _080306B6 + b _08030664 + .align 2, 0 +_08030694: .4byte gUnk_020000B0 +_08030698: + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _080306B6 + ldr r0, _080306BC @ =gUnk_020000B0 + ldr r0, [r0] + movs r2, #0x2e + ldrsh r1, [r0, r2] + ldr r0, _080306C0 @ =gUnk_03000BF0 + ldrh r0, [r0, #6] + adds r0, #0xa8 + cmp r1, r0 + blt _08030664 +_080306B6: + movs r0, #0 +_080306B8: + pop {r4, pc} + .align 2, 0 +_080306BC: .4byte gUnk_020000B0 +_080306C0: .4byte gUnk_03000BF0 + + thumb_func_start sub_080306C4 +sub_080306C4: @ 0x080306C4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _080307C0 + adds r0, r4, #0 + adds r0, #0x7a + ldrh r0, [r0] + cmp r0, #0 + beq _080307C0 + movs r0, #0x18 + strb r0, [r4, #0xe] + ldr r0, _080307B0 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_0800132C + adds r5, r0, #0 + cmp r5, #0xff + beq _080307CC + movs r0, #0 + mov r8, r0 + bl sub_08000E50 + movs r1, #7 + ands r1, r0 + cmp r1, #0 + bne _0803070E + ldrb r0, [r4, #0x14] + adds r6, r4, #0 + adds r6, #0x82 + cmp r0, #0xff + bne _0803072A +_0803070E: + adds r2, r4, #0 + adds r2, #0x82 + ldrb r1, [r2] + movs r0, #3 + ands r0, r1 + adds r6, r2, #0 + cmp r0, #3 + beq _0803072A + adds r0, r5, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + movs r1, #1 + mov r8, r1 +_0803072A: + mov r7, r8 + cmp r7, #0 + bne _08030746 + bl sub_08000E50 + movs r1, #2 + ands r1, r0 + subs r1, #1 + lsls r1, r1, #3 + adds r1, #4 + adds r1, r5, r1 + movs r0, #0x18 + ands r1, r0 + strb r1, [r4, #0x15] +_08030746: + adds r0, r4, #0 + adds r0, #0x38 + ldrb r0, [r0] + ldr r1, _080307B4 @ =gUnk_02027EB4 + mov ip, r1 + cmp r0, #2 + bne _08030758 + ldr r7, _080307B8 @ =gUnk_0200D654 + mov ip, r7 +_08030758: + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r3, _080307BC @ =gUnk_080CE164 + ldrb r0, [r4, #0x15] + lsrs r0, r0, #2 + adds r2, r0, r3 + ldrb r2, [r2] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + adds r1, r1, r2 + movs r7, #0x32 + ldrsh r2, [r4, r7] + adds r0, #1 + adds r0, r0, r3 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r2, r2, r0 + mov r0, ip + movs r3, #0 + bl sub_080AE4CC + cmp r0, #0 + beq _0803079E + movs r0, #4 + adds r1, r5, #0 + ands r1, r0 + eors r1, r0 + lsls r1, r1, #1 + movs r0, #0x10 + ands r5, r0 + orrs r1, r5 + strb r1, [r4, #0x15] + movs r0, #0 + mov r8, r0 +_0803079E: + adds r0, r4, #0 + bl sub_080307D4 + ldrb r0, [r6] + lsls r0, r0, #1 + mov r1, r8 + orrs r0, r1 + strb r0, [r6] + b _080307CC + .align 2, 0 +_080307B0: .4byte gUnk_020000B0 +_080307B4: .4byte gUnk_02027EB4 +_080307B8: .4byte gUnk_0200D654 +_080307BC: .4byte gUnk_080CE164 +_080307C0: + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + movs r0, #0xa0 + strh r0, [r4, #0x24] +_080307CC: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_080307D4 +sub_080307D4: @ 0x080307D4 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0x15] + lsrs r1, r0, #3 + ldrb r0, [r2, #0x14] + cmp r1, r0 + beq _080307EA + strb r1, [r2, #0x14] + adds r0, r2, #0 + bl sub_080309C8 +_080307EA: + pop {pc} + + thumb_func_start sub_080307EC +sub_080307EC: @ 0x080307EC + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r0, #0x2e + ldrsh r4, [r5, r0] + ldr r1, _0803082C @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + subs r4, r4, r0 + asrs r4, r4, #4 + movs r2, #0x3f + ands r4, r2 + movs r3, #0x32 + ldrsh r0, [r5, r3] + ldrh r1, [r1, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + adds r6, r5, #0 + adds r6, #0x38 + ldrb r1, [r6] + adds r0, r4, #0 + bl sub_080001DA + adds r5, #0x78 + strh r0, [r5] + ldr r0, _08030830 @ =0x00004022 + ldrb r2, [r6] + adds r1, r4, #0 + bl sub_0800015E + pop {r4, r5, r6, pc} + .align 2, 0 +_0803082C: .4byte gUnk_03000BF0 +_08030830: .4byte 0x00004022 + + thumb_func_start sub_08030834 +sub_08030834: @ 0x08030834 + push {r4, r5, r6, lr} + adds r1, r0, #0 + adds r1, #0x78 + ldrh r5, [r1] + movs r2, #0x2e + ldrsh r1, [r0, r2] + ldr r3, _08030868 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r0, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r0, #0x38 + ldrb r2, [r0] + adds r0, r5, #0 + bl sub_0800015E + pop {r4, r5, r6, pc} + .align 2, 0 +_08030868: .4byte gUnk_03000BF0 + + thumb_func_start sub_0803086C +sub_0803086C: @ 0x0803086C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r5, r0, #0 + ldr r0, [r5, #0x7c] + cmp r0, #0 + bne _08030880 + b _0803099C +_08030880: + ldr r0, _08030928 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0803088E + b _0803098A +_0803088E: + ldr r0, _0803092C @ =gUnk_03000BF0 + mov sb, r0 + ldrh r0, [r5, #0x2e] + mov r2, sb + ldrh r1, [r2, #6] + subs r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + ldrh r0, [r5, #0x32] + ldrh r1, [r2, #8] + subs r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + movs r3, #0x2e + ldrsh r0, [r5, r3] + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r4, r0, #4 + movs r2, #0x3f + ands r4, r2 + movs r1, #0x32 + ldrsh r0, [r5, r1] + mov r3, sb + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + movs r0, #0x38 + adds r0, r0, r5 + mov r8, r0 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080002B0 + ldr r1, _08030930 @ =0x00004049 + mov sl, r1 + cmp r0, sl + bne _08030950 + adds r0, r7, #0 + adds r1, r6, #0 + movs r2, #2 + movs r3, #0xc + bl sub_0800293E + cmp r0, #0 + beq _0803093C + subs r1, r6, #4 + adds r0, r7, #0 + movs r2, #2 + movs r3, #4 + bl sub_0800293E + cmp r0, #0 + beq _0803098A + ldr r2, _08030934 @ =gUnk_03001160 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] + ldr r0, [r5, #0x7c] + bl sub_08080840 + ldr r0, _08030938 @ =gUnk_030010A0 + adds r1, r5, #0 + adds r1, #0x80 + ldrb r1, [r1] + adds r0, #0xae + strh r1, [r0] + movs r0, #1 + b _0803099E + .align 2, 0 +_08030928: .4byte gUnk_03003F80 +_0803092C: .4byte gUnk_03000BF0 +_08030930: .4byte 0x00004049 +_08030934: .4byte gUnk_03001160 +_08030938: .4byte gUnk_030010A0 +_0803093C: + ldr r0, _0803094C @ =0x00004022 + mov r3, r8 + ldrb r2, [r3] + adds r1, r4, #0 + bl sub_0800015E + b _0803098A + .align 2, 0 +_0803094C: .4byte 0x00004022 +_08030950: + adds r1, r6, #6 + adds r0, r7, #0 + movs r2, #2 + movs r3, #5 + bl sub_0800293E + cmp r0, #0 + beq _0803098A + movs r4, #0x2e + ldrsh r1, [r5, r4] + mov r2, sb + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r4, #0x32 + ldrsh r0, [r5, r4] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + mov r0, r8 + ldrb r2, [r0] + mov r0, sl + bl sub_0800015E +_0803098A: + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] +_0803099C: + movs r0, #0 +_0803099E: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080309A8 +sub_080309A8: @ 0x080309A8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + cmp r0, #0 + beq _080309C4 + ldrb r0, [r4, #0x1e] + cmp r0, #0x25 + bne _080309C4 + movs r0, #0x19 + strb r0, [r4, #0x1e] +_080309C4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080309C8 +sub_080309C8: @ 0x080309C8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004260 + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + cmp r0, #0 + beq _080309E4 + ldrb r0, [r4, #0x1e] + cmp r0, #0x25 + bne _080309E4 + movs r0, #0x19 + strb r0, [r4, #0x1e] +_080309E4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080309E8 +sub_080309E8: @ 0x080309E8 + push {lr} + adds r1, r0, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #4 + bhi _080309FA + movs r0, #0x90 + lsls r0, r0, #1 + b _08030A00 +_080309FA: + cmp r0, #8 + bhi _08030A02 + movs r0, #0xe0 +_08030A00: + strh r0, [r1, #0x24] +_08030A02: + pop {pc} + + thumb_func_start sub_08030A04 +sub_08030A04: @ 0x08030A04 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEF88 + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08030A24 + movs r0, #0xfe + ands r0, r1 + strb r0, [r4] + ldr r0, _08030A28 @ =0x00000101 + bl sub_08004488 +_08030A24: + pop {r4, pc} + .align 2, 0 +_08030A28: .4byte 0x00000101 + + thumb_func_start sub_08030A2C +sub_08030A2C: @ 0x08030A2C + push {lr} + ldr r1, _08030A38 @ =gUnk_080CE288 + bl sub_0800129E + pop {pc} + .align 2, 0 +_08030A38: .4byte gUnk_080CE288 + + thumb_func_start sub_08030A3C +sub_08030A3C: @ 0x08030A3C + push {lr} + ldr r2, _08030A50 @ =gUnk_080CE2A0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08030A50: .4byte gUnk_080CE2A0 + + thumb_func_start sub_08030A54 +sub_08030A54: @ 0x08030A54 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r6, [r0] + cmp r6, #0x95 + beq _08030A68 + adds r5, r4, #0 + adds r5, #0x45 + cmp r6, #0x8e + bne _08030B0E +_08030A68: + ldr r2, [r4, #0x4c] + ldrb r0, [r2, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + movs r1, #0x10 + eors r0, r1 + asrs r0, r0, #3 + adds r5, r4, #0 + adds r5, #0x45 + ldrb r1, [r4, #0x14] + cmp r0, r1 + bne _08030B0E + movs r3, #1 + ands r3, r0 + cmp r3, #0 + beq _08030AC0 + movs r3, #0x32 + ldrsh r0, [r2, r3] + movs r3, #0x36 + ldrsh r1, [r2, r3] + adds r0, r0, r1 + movs r2, #0x32 + ldrsh r1, [r4, r2] + movs r3, #0x36 + ldrsh r2, [r4, r3] + adds r1, r1, r2 + subs r0, r0, r1 + adds r0, #0x14 + cmp r0, #0x10 + bhi _08030B0E + cmp r6, #0x8e + bne _08030AAE + movs r0, #0 + b _08030AB2 +_08030AAE: + ldrb r0, [r5] + subs r0, #1 +_08030AB2: + strb r0, [r5] + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0x10 + strb r0, [r1] + movs r0, #0xfe + b _08030AE0 +_08030AC0: + movs r1, #0x2e + ldrsh r0, [r2, r1] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + adds r0, #8 + cmp r0, #0x10 + bhi _08030B0E + ldrb r0, [r4, #0xc] + cmp r0, #1 + bne _08030AEC + adds r0, r4, #0 + bl sub_08031320 + movs r0, #0x86 + lsls r0, r0, #1 +_08030AE0: + bl sub_08004488 + adds r0, r4, #0 + bl sub_08031344 + b _08030B0E +_08030AEC: + cmp r6, #0x8e + bne _08030AF4 + strb r3, [r5] + b _08030AFA +_08030AF4: + ldrb r0, [r5] + subs r0, #1 + strb r0, [r5] +_08030AFA: + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0xf + strb r0, [r1] + movs r0, #0xfe + bl sub_08004488 + adds r0, r4, #0 + bl sub_08031344 +_08030B0E: + ldrb r0, [r5] + cmp r0, #0 + bne _08030B24 + ldrb r0, [r4, #0x10] + movs r1, #0x7f + ands r1, r0 + strb r1, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0x78 + strb r0, [r1] +_08030B24: + ldr r1, _08030B30 @ =gUnk_080CE288 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, r5, r6, pc} + .align 2, 0 +_08030B30: .4byte gUnk_080CE288 + + thumb_func_start sub_08030B34 +sub_08030B34: @ 0x08030B34 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7e + ldrb r0, [r1] + cmp r0, #0 + beq _08030B52 + subs r0, #1 + strb r0, [r1] + movs r1, #0xe0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + b _08030B70 +_08030B52: + adds r0, r4, #0 + adds r0, #0x3a + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08030B6A + adds r0, r4, #0 + movs r1, #0x51 + movs r2, #0 + bl sub_080A29AC +_08030B6A: + adds r0, r4, #0 + bl sub_0804A7D4 +_08030B70: + pop {r4, pc} + .align 2, 0 + + thumb_func_start nullsub_18 +nullsub_18: @ 0x08030B74 + bx lr + .align 2, 0 + + thumb_func_start sub_08030B78 +sub_08030B78: @ 0x08030B78 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #2 + strb r0, [r4, #0x14] + ldrh r2, [r4, #0x2e] + movs r1, #0x10 + rsbs r1, r1, #0 + adds r0, r1, #0 + ands r0, r2 + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x32] + ands r1, r0 + adds r1, #0xc + strh r1, [r4, #0x32] + adds r2, r4, #0 + adds r2, #0x6d + ldrb r1, [r2] + movs r0, #8 + orrs r0, r1 + strb r0, [r2] + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x74 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] + adds r1, #8 + movs r0, #0x3c + strb r0, [r1] + adds r0, r4, #0 + bl sub_08030F00 + adds r0, r4, #0 + adds r0, #0x7c + ldrh r0, [r0] + cmp r0, #0 + beq _08030BE0 + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #0xa + bl sub_08004260 + b _08030BE8 +_08030BE0: + adds r0, r4, #0 + movs r1, #0xe + bl sub_08004260 +_08030BE8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08030BEC +sub_08030BEC: @ 0x08030BEC + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7c + ldrh r0, [r1] + cmp r0, #0 + beq _08030C08 + bl sub_0807CBE4 + cmp r0, #0 + beq _08030C08 + adds r0, r4, #0 + bl sub_08031320 +_08030C08: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08030C0C +sub_08030C0C: @ 0x08030C0C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08030C1C + subs r0, #1 + strb r0, [r4, #0xe] + b _08030C68 +_08030C1C: + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _08030C68 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, [r4, #0x48] + movs r1, #0 + ldrsb r1, [r2, r1] + adds r0, r0, r1 + movs r3, #0x32 + ldrsh r1, [r4, r3] + ldrb r2, [r2, #1] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + adds r1, r1, r2 + ldr r2, _08030C6C @ =gUnk_020000B0 + ldr r3, [r2] + movs r5, #0x2e + ldrsh r2, [r3, r5] + movs r5, #0x32 + ldrsh r3, [r3, r5] + bl sub_080045D4 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #0xa + bl sub_08004260 +_08030C68: + pop {r4, r5, pc} + .align 2, 0 +_08030C6C: .4byte gUnk_020000B0 + + thumb_func_start sub_08030C70 +sub_08030C70: @ 0x08030C70 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08030C98 + ldr r2, _08030C94 @ =gUnk_080CE2BC + subs r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + ands r0, r1 + movs r1, #3 + ands r0, r1 + adds r0, r0, r2 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x62 + strb r1, [r0] + b _08030CCC + .align 2, 0 +_08030C94: .4byte gUnk_080CE2BC +_08030C98: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08030CCC + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r1, r0 + strb r1, [r4, #0x10] + movs r0, #2 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_08030E58 + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08030FB4 +_08030CCC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08030CD0 +sub_08030CD0: @ 0x08030CD0 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #7 + ands r0, r1 + cmp r0, #1 + beq _08030D0C + cmp r0, #2 + beq _08030D1A + movs r5, #0x80 + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _08030D66 + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + adds r0, #0x79 + ldrb r1, [r0] + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _08030D66 + b _08030D5A +_08030D0C: + adds r0, r4, #0 + bl sub_08031024 + adds r0, r4, #0 + bl sub_08030E3C + b _08030D66 +_08030D1A: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08030D34 + adds r0, r4, #0 + adds r0, #0x7f + ldrb r0, [r0] + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 +_08030D34: + adds r0, r4, #0 + adds r0, #0x7a + ldrb r0, [r0] + cmp r0, #0 + beq _08030D44 + adds r0, r4, #0 + bl sub_08031250 +_08030D44: + movs r1, #0xe0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08030D66 + adds r0, r4, #0 + bl sub_08030E70 + b _08030D66 +_08030D5A: + movs r0, #0 + movs r1, #5 + strb r1, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x7a + strb r0, [r1] +_08030D66: + pop {r4, r5, pc} + + thumb_func_start sub_08030D68 +sub_08030D68: @ 0x08030D68 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #7 + ands r0, r1 + cmp r0, #1 + beq _08030DA0 + cmp r0, #2 + beq _08030DC4 + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08030E1C + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _08030DFC + b _08030DF4 +_08030DA0: + ldrb r0, [r4, #0x14] + adds r1, r0, #0 + cmp r1, #2 + beq _08030DBC + cmp r1, #2 + bls _08030DB0 + subs r0, #1 + b _08030DB2 +_08030DB0: + adds r0, #1 +_08030DB2: + movs r1, #3 + ands r0, r1 + adds r1, r4, #0 + adds r1, #0x7f + strb r0, [r1] +_08030DBC: + adds r0, r4, #0 + bl sub_08030E3C + b _08030E1C +_08030DC4: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08030DDE + adds r0, r4, #0 + adds r0, #0x7f + ldrb r0, [r0] + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 +_08030DDE: + movs r1, #0xe0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08030E1C + adds r0, r4, #0 + bl sub_08030E70 + b _08030E1C +_08030DF4: + adds r0, r4, #0 + bl sub_08030E58 + b _08030E1C +_08030DFC: + ldrb r0, [r4, #0x14] + cmp r0, #2 + bne _08030E1C + movs r0, #6 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #0xe + bl sub_08004260 + adds r0, r4, #0 + bl sub_08030F00 +_08030E1C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08030E20 +sub_08030E20: @ 0x08030E20 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08030E3A + movs r0, #2 + strb r0, [r4, #0xc] +_08030E3A: + pop {r4, pc} + + thumb_func_start sub_08030E3C +sub_08030E3C: @ 0x08030E3C + push {lr} + adds r2, r0, #0 + adds r2, #0x5a + movs r1, #0 + strb r1, [r2] + movs r1, #0x8c + lsls r1, r1, #9 + str r1, [r0, #0x20] + ldr r0, _08030E54 @ =0x00000157 + bl sub_08004488 + pop {pc} + .align 2, 0 +_08030E54: .4byte 0x00000157 + + thumb_func_start sub_08030E58 +sub_08030E58: @ 0x08030E58 + adds r2, r0, #0 + movs r0, #0 + movs r1, #4 + strb r1, [r2, #0xc] + adds r1, r2, #0 + adds r1, #0x7a + strb r0, [r1] + subs r1, #1 + strb r0, [r1] + subs r1, #1 + strb r0, [r1] + bx lr + + thumb_func_start sub_08030E70 +sub_08030E70: @ 0x08030E70 + push {lr} + bl sub_08030E80 + movs r0, #0xac + lsls r0, r0, #1 + bl sub_08004488 + pop {pc} + + thumb_func_start sub_08030E80 +sub_08030E80: @ 0x08030E80 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldrb r0, [r6, #0x14] + lsls r5, r0, #2 + movs r0, #0xf + movs r1, #2 + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _08030EC0 + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldr r1, _08030EFC @ =gUnk_080CE2F4 + adds r0, r5, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r2, [r4, #0x2e] + adds r0, r0, r2 + strh r0, [r4, #0x2e] + adds r0, r5, #1 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] +_08030EC0: + movs r0, #0xf + movs r1, #2 + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _08030EFA + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldr r1, _08030EFC @ =gUnk_080CE2F4 + adds r0, r5, #2 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r2, [r4, #0x2e] + adds r0, r0, r2 + strh r0, [r4, #0x2e] + adds r0, r5, #3 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] +_08030EFA: + pop {r4, r5, r6, pc} + .align 2, 0 +_08030EFC: .4byte gUnk_080CE2F4 + + thumb_func_start sub_08030F00 +sub_08030F00: @ 0x08030F00 + push {r4, r5, r6, lr} + mov r6, sl + mov r5, sb + mov r4, r8 + push {r4, r5, r6} + adds r5, r0, #0 + movs r0, #0x2e + ldrsh r4, [r5, r0] + ldr r1, _08030FAC @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + adds r0, #8 + subs r4, r4, r0 + asrs r4, r4, #4 + movs r2, #0x3f + ands r4, r2 + movs r3, #0x32 + ldrsh r0, [r5, r3] + ldrh r1, [r1, #8] + adds r1, #0x14 + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + adds r6, r5, #0 + adds r6, #0x38 + ldrb r1, [r6] + adds r0, r4, #0 + bl sub_080001DA + adds r1, r5, #0 + adds r1, #0x80 + strh r0, [r1] + adds r0, r4, #1 + mov sl, r0 + ldrb r1, [r6] + bl sub_080001DA + adds r1, r5, #0 + adds r1, #0x82 + strh r0, [r1] + movs r3, #0x40 + adds r3, r3, r4 + mov sb, r3 + ldrb r1, [r6] + mov r0, sb + bl sub_080001DA + adds r1, r5, #0 + adds r1, #0x84 + strh r0, [r1] + movs r0, #0x41 + adds r0, r0, r4 + mov r8, r0 + ldrb r1, [r6] + bl sub_080001DA + adds r1, r5, #0 + adds r1, #0x86 + strh r0, [r1] + ldr r5, _08030FB0 @ =0x00004022 + ldrb r2, [r6] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0800015E + ldrb r2, [r6] + adds r0, r5, #0 + mov r1, sl + bl sub_0800015E + ldrb r2, [r6] + adds r0, r5, #0 + mov r1, sb + bl sub_0800015E + ldrb r2, [r6] + adds r0, r5, #0 + mov r1, r8 + bl sub_0800015E + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, pc} + .align 2, 0 +_08030FAC: .4byte gUnk_03000BF0 +_08030FB0: .4byte 0x00004022 + + thumb_func_start sub_08030FB4 +sub_08030FB4: @ 0x08030FB4 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r0, #0x2e + ldrsh r4, [r6, r0] + ldr r1, _08031020 @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + adds r0, #8 + subs r4, r4, r0 + asrs r4, r4, #4 + movs r2, #0x3f + ands r4, r2 + movs r3, #0x32 + ldrsh r0, [r6, r3] + ldrh r1, [r1, #8] + adds r1, #0x14 + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + adds r0, r6, #0 + adds r0, #0x80 + ldrh r0, [r0] + adds r5, r6, #0 + adds r5, #0x38 + ldrb r2, [r5] + adds r1, r4, #0 + bl sub_0800015E + adds r0, r6, #0 + adds r0, #0x82 + ldrh r0, [r0] + adds r1, r4, #1 + ldrb r2, [r5] + bl sub_0800015E + adds r0, r6, #0 + adds r0, #0x84 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x40 + ldrb r2, [r5] + bl sub_0800015E + adds r0, r6, #0 + adds r0, #0x86 + ldrh r0, [r0] + adds r4, #0x41 + ldrb r2, [r5] + adds r1, r4, #0 + bl sub_0800015E + pop {r4, r5, r6, pc} + .align 2, 0 +_08031020: .4byte gUnk_03000BF0 + + thumb_func_start sub_08031024 +sub_08031024: @ 0x08031024 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r7, r0, #0 + movs r1, #1 + bl sub_08049FDC + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r1, r1, #0x1f + adds r2, r7, #0 + adds r2, #0x79 + ldrb r0, [r2] + cmp r0, #0 + bne _08031084 + cmp r1, #0 + beq _08031074 + movs r1, #0x2e + ldrsh r0, [r7, r1] + ldr r2, [r7, #0x48] + movs r1, #0 + ldrsb r1, [r2, r1] + adds r0, r0, r1 + movs r3, #0x32 + ldrsh r1, [r7, r3] + ldrb r2, [r2, #1] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + adds r1, r1, r2 + ldr r2, _08031070 @ =gUnk_020000B0 + ldr r3, [r2] + movs r4, #0x2e + ldrsh r2, [r3, r4] + movs r4, #0x32 + ldrsh r3, [r3, r4] + b _080311E8 + .align 2, 0 +_08031070: .4byte gUnk_020000B0 +_08031074: + movs r0, #1 + strb r0, [r2] + adds r0, r7, #0 + adds r0, #0x78 + strb r1, [r0] + movs r1, #0x2e + ldrsh r0, [r7, r1] + b _080311D8 +_08031084: + cmp r1, #0 + beq _0803108E + movs r0, #0 + strb r0, [r2] + b _080311EE +_0803108E: + adds r0, r7, #0 + adds r0, #0x78 + ldrb r2, [r0] + adds r1, r2, #0 + mov sl, r0 + cmp r1, #0 + bne _0803109E + b _080311D4 +_0803109E: + cmp r1, #1 + bne _080310E2 + movs r0, #0x80 + orrs r0, r2 + mov r3, sl + strb r0, [r3] + movs r4, #0x2e + ldrsh r0, [r7, r4] + movs r2, #0x32 + ldrsh r1, [r7, r2] + adds r2, r7, #0 + adds r2, #0x74 + ldrh r2, [r2] + adds r3, r7, #0 + adds r3, #0x76 + ldrh r3, [r3] + bl sub_080045D4 + strb r0, [r7, #0x15] + adds r0, #4 + movs r2, #0x18 + ands r0, r2 + adds r1, r7, #0 + adds r1, #0x7b + strb r0, [r1] + ldrb r3, [r7, #0x15] + cmp r0, r3 + bhs _080310DC + adds r0, #8 + ands r0, r2 + b _080310F0 +_080310DC: + subs r0, #8 + ands r0, r2 + b _080310F0 +_080310E2: + movs r0, #2 + ands r0, r2 + cmp r0, #0 + beq _080310F2 + ldrb r0, [r7, #0x15] + movs r1, #0x10 + eors r0, r1 +_080310F0: + strb r0, [r7, #0x15] +_080310F2: + mov r4, sl + ldrb r2, [r4] + movs r0, #0x70 + ands r0, r2 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08031120 + lsrs r0, r0, #0x19 + movs r1, #0x8f + ands r1, r2 + orrs r0, r1 + strb r0, [r4] + movs r1, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080311EE + adds r0, r7, #0 + adds r0, #0x7b + ldrb r0, [r0] + strb r0, [r7, #0x15] + movs r0, #0 + strb r0, [r4] + b _080311EE +_08031120: + movs r0, #0x7b + adds r0, r0, r7 + mov sb, r0 + ldrb r4, [r0] + lsrs r4, r4, #1 + movs r1, #0x2e + ldrsh r0, [r7, r1] + ldr r5, _080311B4 @ =gUnk_080CE2C0 + adds r1, r4, r5 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r0, r1 + movs r2, #0x32 + ldrsh r1, [r7, r2] + adds r2, r4, #1 + adds r2, r2, r5 + ldrb r2, [r2] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + adds r1, r1, r2 + movs r3, #0x38 + adds r3, r3, r7 + mov r8, r3 + ldrb r2, [r3] + bl sub_080002A4 + adds r6, r0, #0 + movs r1, #0x2e + ldrsh r0, [r7, r1] + adds r1, r4, #2 + adds r1, r1, r5 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r0, r1 + movs r2, #0x32 + ldrsh r1, [r7, r2] + adds r4, #3 + adds r4, r4, r5 + movs r2, #0 + ldrsb r2, [r4, r2] + adds r1, r1, r2 + mov r3, r8 + ldrb r2, [r3] + bl sub_080002A4 + adds r1, r0, #0 + ldr r2, _080311B8 @ =gUnk_080B3E80 + adds r6, r6, r2 + ldrb r0, [r6] + mov r3, sb + cmp r0, #0 + bne _08031194 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + beq _080311C8 +_08031194: + movs r0, #1 + cmp r0, #0 + beq _080311C8 + ldrb r0, [r7, #0x15] + lsrs r0, r0, #3 + ldrb r4, [r7, #0x14] + cmp r0, r4 + bne _080311BC + mov r0, sl + ldrb r1, [r0] + movs r0, #0x20 + orrs r0, r1 + mov r1, sl + strb r0, [r1] + b _080311EE + .align 2, 0 +_080311B4: .4byte gUnk_080CE2C0 +_080311B8: .4byte gUnk_080B3E80 +_080311BC: + mov r2, sl + ldrb r1, [r2] + movs r0, #0x40 + orrs r0, r1 + strb r0, [r2] + b _080311EE +_080311C8: + ldrb r0, [r3] + movs r1, #0 + strb r0, [r7, #0x15] + mov r3, sl + strb r1, [r3] + b _080311EE +_080311D4: + movs r4, #0x2e + ldrsh r0, [r7, r4] +_080311D8: + movs r2, #0x32 + ldrsh r1, [r7, r2] + adds r2, r7, #0 + adds r2, #0x74 + ldrh r2, [r2] + adds r3, r7, #0 + adds r3, #0x76 + ldrh r3, [r3] +_080311E8: + bl sub_080045D4 + strb r0, [r7, #0x15] +_080311EE: + ldrb r0, [r7, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + asrs r0, r0, #3 + ldrb r3, [r7, #0x14] + cmp r0, r3 + bne _0803120C + adds r1, r7, #0 + adds r1, #0x7a + movs r0, #1 + strb r0, [r1] + ldrb r0, [r7, #0x14] + adds r1, #5 + b _08031232 +_0803120C: + adds r1, r7, #0 + adds r1, #0x7a + movs r0, #0 + strb r0, [r1] + ldrb r0, [r7, #0x15] + ldrb r2, [r7, #0x14] + lsls r1, r2, #3 + subs r0, r0, r1 + movs r1, #0x1f + ands r0, r1 + cmp r0, #0x10 + bls _08031228 + subs r0, r2, #1 + b _0803122A +_08031228: + adds r0, r2, #1 +_0803122A: + movs r1, #3 + ands r0, r1 + adds r1, r7, #0 + adds r1, #0x7f +_08031232: + strb r0, [r1] + ldrb r0, [r7, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + movs r1, #0 + strb r0, [r7, #0x15] + strh r1, [r7, #0x2c] + strh r1, [r7, #0x30] + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08031250 +sub_08031250: @ 0x08031250 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldrb r4, [r6, #0x14] + lsls r4, r4, #2 + movs r0, #0x2e + ldrsh r2, [r6, r0] + ldr r5, _0803130C @ =gUnk_080CE2C0 + adds r0, r4, r5 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r2, r2, r0 + movs r1, #0x32 + ldrsh r3, [r6, r1] + adds r0, r4, #1 + adds r0, r0, r5 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r3, r3, r0 + adds r0, r6, #0 + movs r1, #9 + bl sub_08008796 + movs r0, #0x2e + ldrsh r2, [r6, r0] + adds r0, r4, #2 + adds r0, r0, r5 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r2, r2, r0 + movs r1, #0x32 + ldrsh r3, [r6, r1] + adds r4, #3 + adds r4, r4, r5 + movs r0, #0 + ldrsb r0, [r4, r0] + adds r3, r3, r0 + adds r0, r6, #0 + movs r1, #9 + bl sub_08008796 + adds r2, r6, #0 + adds r2, #0x79 + ldrb r0, [r2] + cmp r0, #0 + beq _08031316 + movs r3, #0 + movs r1, #0x2e + ldrsh r0, [r6, r1] + adds r1, r6, #0 + adds r1, #0x74 + ldrh r1, [r1] + subs r0, r0, r1 + adds r0, #2 + cmp r0, #4 + bhi _080312C8 + strh r1, [r6, #0x2e] + movs r3, #0x80 +_080312C8: + movs r1, #0x32 + ldrsh r0, [r6, r1] + adds r1, r6, #0 + adds r1, #0x76 + ldrh r1, [r1] + subs r0, r0, r1 + adds r0, #2 + cmp r0, #4 + bhi _080312E2 + strh r1, [r6, #0x32] + ldrb r0, [r2] + orrs r3, r0 + strb r3, [r2] +_080312E2: + ldrb r1, [r2] + movs r4, #0x80 + adds r0, r4, #0 + ands r0, r1 + cmp r0, #0 + bne _0803131C + adds r0, r6, #0 + bl sub_080AEF88 + cmp r0, #0 + bne _0803131C + adds r2, r6, #0 + adds r2, #0x78 + ldrb r1, [r2] + adds r0, r4, #0 + ands r0, r1 + cmp r0, #0 + beq _08031310 + movs r0, #0x82 + strb r0, [r2] + b _0803131C + .align 2, 0 +_0803130C: .4byte gUnk_080CE2C0 +_08031310: + movs r0, #1 + strb r0, [r2] + b _0803131C +_08031316: + adds r0, r6, #0 + bl sub_080AEF88 +_0803131C: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08031320 +sub_08031320: @ 0x08031320 + push {lr} + movs r1, #2 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + movs r1, #0x1e + strb r1, [r0, #0xe] + ldr r1, _08031340 @ =gUnk_080FD308 + str r1, [r0, #0x48] + movs r1, #0xa + bl sub_08004260 + pop {pc} + .align 2, 0 +_08031340: .4byte gUnk_080FD308 + + thumb_func_start sub_08031344 +sub_08031344: @ 0x08031344 + push {lr} + adds r1, r0, #0 + ldr r0, [r1, #0x4c] + bl sub_08017A90 + adds r3, r0, #0 + cmp r3, #0 + beq _0803136C + ldrb r0, [r3, #0x14] + lsls r0, r0, #1 + ldr r1, _08031370 @ =gUnk_080CE304 + adds r0, r0, r1 + ldrb r1, [r0] + adds r2, r3, #0 + adds r2, #0x62 + strb r1, [r2] + ldrb r1, [r0, #1] + adds r0, r3, #0 + adds r0, #0x63 + strb r1, [r0] +_0803136C: + pop {pc} + .align 2, 0 +_08031370: .4byte gUnk_080CE304 + + thumb_func_start sub_08031374 +sub_08031374: @ 0x08031374 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08031390 @ =gUnk_080CE448 + bl sub_0800129E + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, pc} + .align 2, 0 +_08031390: .4byte gUnk_080CE448 + + thumb_func_start sub_08031394 +sub_08031394: @ 0x08031394 + push {lr} + ldr r2, _080313A8 @ =gUnk_080CE460 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080313A8: .4byte gUnk_080CE460 + + thumb_func_start sub_080313AC +sub_080313AC: @ 0x080313AC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #3 + bne _080313C8 + movs r0, #0x1e + strb r0, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x78 + movs r0, #0x3c + strb r0, [r1] + adds r0, r4, #0 + bl sub_08031600 +_080313C8: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _080313DA + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_080313DA: + ldr r1, _080313E4 @ =gUnk_080CE448 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_080313E4: .4byte gUnk_080CE448 + + thumb_func_start sub_080313E8 +sub_080313E8: @ 0x080313E8 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F520 + cmp r0, #0 + beq _08031404 + ldr r0, _08031408 @ =gUnk_080CE470 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_08031404: + pop {r4, pc} + .align 2, 0 +_08031408: .4byte gUnk_080CE470 + + thumb_func_start sub_0803140C +sub_0803140C: @ 0x0803140C + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x3c + strb r1, [r0, #0x1d] + bx lr + .align 2, 0 + + thumb_func_start sub_08031418 +sub_08031418: @ 0x08031418 + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_08031420 +sub_08031420: @ 0x08031420 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _08031432 + adds r0, r4, #0 + bl sub_0804A7D4 +_08031432: + pop {r4, pc} + + thumb_func_start sub_08031434 +sub_08031434: @ 0x08031434 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r0, #1 + rsbs r0, r0, #0 + adds r3, r0, #0 + movs r0, #0xff + strb r0, [r4, #0x14] + movs r2, #1 + strb r2, [r4, #0x1c] + ldrh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x7a + strh r0, [r1] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08031460 + adds r0, r4, #0 + bl sub_08031600 + b _0803147A +_08031460: + strb r2, [r4, #0xc] + movs r0, #0 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + ldr r0, _0803147C @ =0x0000FF80 + strh r0, [r4, #0x36] + ldrb r0, [r4, #0x1e] + orrs r0, r3 + strb r0, [r4, #0x1e] +_0803147A: + pop {r4, pc} + .align 2, 0 +_0803147C: .4byte 0x0000FF80 + + thumb_func_start sub_08031480 +sub_08031480: @ 0x08031480 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _080314CC + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08031496 + subs r0, #1 + strb r0, [r4, #0xe] + b _080314FA +_08031496: + adds r0, r4, #0 + bl sub_08031600 + movs r0, #1 + strb r0, [r4, #0xc] + strb r0, [r4, #0xd] + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r2, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r4, #0x19] + ldrb r0, [r4, #0x1b] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x1b] + ldr r0, _080314C8 @ =0x0000012D + bl sub_080A3268 + b _080314FA + .align 2, 0 +_080314C8: .4byte 0x0000012D +_080314CC: + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _080314FA + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0xf + strb r0, [r4, #0xf] + ldrb r1, [r4, #0x18] + subs r0, #0x13 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_08016A04 + movs r0, #0x84 + bl sub_08004488 +_080314FA: + pop {r4, pc} + + thumb_func_start sub_080314FC +sub_080314FC: @ 0x080314FC + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _08031510 + subs r0, #1 + strb r0, [r4, #0xf] + b _080315BA +_08031510: + adds r5, r4, #0 + adds r5, #0x78 + ldrb r0, [r5] + cmp r0, #0 + beq _0803151E + subs r0, #1 + strb r0, [r5] +_0803151E: + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + beq _08031578 + ldrb r0, [r5] + cmp r0, #0 + bne _080315A2 + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _080315A2 + ldr r0, _08031574 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + movs r2, #0xc + bl sub_0804A044 + adds r1, r0, #0 + cmp r1, #0xff + beq _080315A2 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + movs r0, #0xd0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + adds r2, r4, #0 + adds r2, #0x7a + strh r0, [r2] + strb r1, [r4, #0x15] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x1b + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 + b _080315BA + .align 2, 0 +_08031574: .4byte gUnk_020000B0 +_08031578: + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _080315A2 + adds r0, r4, #0 + bl sub_08049EE4 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + lsrs r1, r0, #3 + ldrb r0, [r4, #0x14] + cmp r1, r0 + beq _080315A2 + strb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 +_080315A2: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080315B4 + adds r0, r4, #0 + bl sub_08031600 +_080315B4: + adds r0, r4, #0 + bl sub_0803163C +_080315BA: + pop {r4, r5, pc} + + thumb_func_start sub_080315BC +sub_080315BC: @ 0x080315BC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080315D4 + subs r0, #1 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004276 + b _080315FC +_080315D4: + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + beq _080315EE + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0803163C + cmp r0, #0 + bne _080315FC +_080315EE: + adds r1, r4, #0 + adds r1, #0x78 + movs r0, #0x1e + strb r0, [r1] + adds r0, r4, #0 + bl sub_08031600 +_080315FC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08031600 +sub_08031600: @ 0x08031600 + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r1, #0x30 + ands r0, r1 + adds r0, #0x3c + strb r0, [r4, #0xe] + movs r0, #0x80 + strh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x7a + strh r0, [r1] + bl sub_08000E50 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + lsrs r1, r0, #3 + ldrb r0, [r4, #0x14] + cmp r1, r0 + beq _08031638 + strb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 +_08031638: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803163C +sub_0803163C: @ 0x0803163C + push {r4, lr} + adds r4, r0, #0 + bl sub_080002B8 + cmp r0, #0x13 + bne _08031652 + adds r0, r4, #0 + adds r0, #0x7a + ldrh r0, [r0] + lsrs r0, r0, #1 + b _08031658 +_08031652: + adds r0, r4, #0 + adds r0, #0x7a + ldrh r0, [r0] +_08031658: + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_080AEF88 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08031664 +sub_08031664: @ 0x08031664 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _0803167C @ =gUnk_080CE530 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_0803167C: .4byte gUnk_080CE530 + + thumb_func_start sub_08031680 +sub_08031680: @ 0x08031680 + push {lr} + ldr r2, _08031694 @ =gUnk_080CE548 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08031694: .4byte gUnk_080CE548 + + thumb_func_start nullsub_152 +nullsub_152: @ 0x08031698 + bx lr + .align 2, 0 + + thumb_func_start sub_0803169C +sub_0803169C: @ 0x0803169C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0806F520 + cmp r0, #0 + bne _080316C4 + movs r2, #1 + strb r2, [r4, #0xc] + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r0, #0x40 + strh r0, [r4, #0x24] + strb r2, [r4, #0xf] + b _080316D4 +_080316C4: + ldr r0, _080316D8 @ =gUnk_080CE554 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_080316D4: + pop {r4, pc} + .align 2, 0 +_080316D8: .4byte gUnk_080CE554 + + thumb_func_start sub_080316DC +sub_080316DC: @ 0x080316DC + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x3c + strb r1, [r0, #0x1d] + bx lr + .align 2, 0 + + thumb_func_start sub_080316E8 +sub_080316E8: @ 0x080316E8 + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_080316F0 +sub_080316F0: @ 0x080316F0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _08031702 + adds r0, r4, #0 + bl sub_0804A7D4 +_08031702: + pop {r4, pc} + + thumb_func_start sub_08031704 +sub_08031704: @ 0x08031704 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + adds r0, r4, #0 + bl sub_080317F8 + pop {r4, pc} + + thumb_func_start sub_08031714 +sub_08031714: @ 0x08031714 + push {r4, lr} + adds r4, r0, #0 + bl sub_080317B4 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803176E + bl sub_08000E50 + movs r1, #0xf + ands r0, r1 + adds r0, #0x10 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _08031750 + ldrb r1, [r4, #0xf] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08031750 + adds r0, r4, #0 + bl sub_08049EE4 + b _08031766 +_08031750: + ldrb r0, [r4, #0x15] + adds r0, #0x18 + strb r0, [r4, #0x15] + bl sub_08000E50 + movs r1, #0xe + ands r0, r1 + ldrb r1, [r4, #0x15] + adds r0, r0, r1 + movs r1, #0x1f + ands r0, r1 +_08031766: + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_080317E0 +_0803176E: + pop {r4, pc} + + thumb_func_start sub_08031770 +sub_08031770: @ 0x08031770 + push {r4, lr} + adds r1, r0, #0 + adds r4, r1, #0 + adds r4, #0x80 + ldrh r0, [r4] + cmp r0, #0 + beq _08031790 + subs r0, #1 + strh r0, [r4] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080317B2 + adds r0, r1, #0 + bl sub_08031840 + b _080317B2 +_08031790: + ldr r0, [r1, #0x54] + cmp r0, #0 + bne _080317AA + bl sub_08000E50 + movs r1, #0x7f + ands r0, r1 + movs r2, #0x80 + lsls r2, r2, #2 + adds r1, r2, #0 + orrs r0, r1 + strh r0, [r4] + b _080317B2 +_080317AA: + ldr r0, [r0, #4] + cmp r0, #0 + bne _080317B2 + str r0, [r1, #0x54] +_080317B2: + pop {r4, pc} + + thumb_func_start sub_080317B4 +sub_080317B4: @ 0x080317B4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08000E50 + movs r1, #0x30 + ands r1, r0 + movs r2, #0xd + rsbs r2, r2, #0 + adds r0, r2, #0 + cmp r1, #0 + beq _080317D0 + movs r1, #0xc + rsbs r1, r1, #0 + adds r0, r1, #0 +_080317D0: + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_080317E0 +sub_080317E0: @ 0x080317E0 + push {lr} + ldrb r1, [r0, #0x15] + adds r1, #2 + movs r2, #0x1c + ands r1, r2 + lsrs r1, r1, #2 + strb r1, [r0, #0x14] + ldrb r1, [r0, #0x14] + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080317F8 +sub_080317F8: @ 0x080317F8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_08000E50 + movs r1, #0x18 + ands r0, r1 + movs r5, #1 + strb r5, [r4, #0xc] + movs r6, #0 + ldr r1, _08031838 @ =0x0000FFF4 + strh r1, [r4, #0x36] + adds r1, r4, #0 + adds r1, #0x38 + strb r5, [r1] + adds r3, r4, #0 + adds r3, #0x3c + ldrb r2, [r3] + movs r1, #0x10 + orrs r1, r2 + strb r1, [r3] + strb r5, [r4, #0x1c] + strb r0, [r4, #0x15] + ldr r0, _0803183C @ =gUnk_080CE560 + str r0, [r4, #0x48] + adds r0, r4, #0 + bl sub_080317E0 + strb r6, [r4, #0xe] + movs r0, #0x20 + strb r0, [r4, #0xf] + pop {r4, r5, r6, pc} + .align 2, 0 +_08031838: .4byte 0x0000FFF4 +_0803183C: .4byte gUnk_080CE560 + + thumb_func_start sub_08031840 +sub_08031840: @ 0x08031840 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r1, [r5, #0xa] + movs r0, #0x2d + bl sub_0804AA60 + adds r4, r0, #0 + cmp r4, #0 + beq _08031862 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + str r5, [r4, #0x50] + str r4, [r5, #0x54] + movs r0, #1 + strb r0, [r4, #0xb] +_08031862: + pop {r4, r5, pc} + + thumb_func_start sub_08031864 +sub_08031864: @ 0x08031864 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080012DC + adds r4, r0, #0 + cmp r4, #0 + beq _0803189C + adds r0, r5, #0 + adds r0, #0x3a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08031886 + adds r0, r5, #0 + bl sub_08032338 +_08031886: + ldr r0, _08031898 @ =0x080012C8 + lsls r1, r4, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r5, #0 + bl _call_via_r1 + b _080318BE + .align 2, 0 +_08031898: .4byte 0x080012C8 +_0803189C: + ldr r4, _080318C0 @ =gUnk_080CE56C + adds r0, r5, #0 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r5, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC +_080318BE: + pop {r4, r5, pc} + .align 2, 0 +_080318C0: .4byte gUnk_080CE56C + + thumb_func_start sub_080318C4 +sub_080318C4: @ 0x080318C4 + push {lr} + ldr r2, _080318D8 @ =gUnk_080CE584 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080318D8: .4byte gUnk_080CE584 + + thumb_func_start sub_080318DC +sub_080318DC: @ 0x080318DC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + adds r4, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + adds r0, #0x80 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _080318FA + b _08031A36 +_080318FA: + ldrb r0, [r4, #0xa] + adds r5, r4, #0 + adds r5, #0x42 + cmp r0, #1 + bne _080319DE + ldrb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x45 + str r1, [sp] + cmp r0, #6 + bhi _080319AC + ldrb r0, [r5] + cmp r0, #0 + beq _080319AC + ldr r3, [r4, #0x54] + movs r0, #0x29 + adds r0, r0, r4 + mov sb, r0 + movs r1, #0x3e + adds r1, r1, r4 + mov sl, r1 + cmp r3, #0 + beq _08031960 + ldr r0, [r4, #0x50] + str r0, [r3, #0x50] + movs r0, #5 + mov ip, r0 + movs r1, #0x39 + rsbs r1, r1, #0 + mov r8, r1 + movs r7, #8 + movs r6, #0xf4 +_0803193A: + mov r0, ip + strb r0, [r3, #0xc] + adds r2, r3, #0 + adds r2, #0x29 + ldrb r0, [r2] + mov r1, r8 + ands r1, r0 + orrs r1, r7 + strb r1, [r2] + adds r1, r3, #0 + adds r1, #0x3d + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bne _0803195A + strb r6, [r1] +_0803195A: + ldr r3, [r3, #0x54] + cmp r3, #0 + bne _0803193A +_08031960: + ldr r1, [r4, #0x50] + cmp r1, #0 + beq _0803196C + ldr r0, [r4, #0x54] + str r0, [r1, #0x54] + b _08031974 +_0803196C: + ldr r0, [r4, #0x54] + cmp r0, #0 + beq _08031974 + str r4, [r4, #0x50] +_08031974: + movs r0, #9 + strb r0, [r4, #0xc] + mov r0, sb + ldrb r1, [r0] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + mov r1, sb + strb r0, [r1] + mov r1, sl + ldrb r0, [r1] + cmp r0, #0xf + bhi _0803199C + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + b _080319A2 +_0803199C: + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 +_080319A2: + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #0xe + bl sub_08004260 +_080319AC: + ldr r1, [sp] + ldrb r0, [r1] + cmp r0, #0 + bne _080319DE + bl sub_08000E50 + adds r2, r4, #0 + adds r2, #0x3e + movs r1, #7 + ands r0, r1 + ldrb r1, [r2] + adds r0, r0, r1 + subs r0, #4 + movs r1, #0x1f + ands r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0xb] + lsls r0, r1, #1 + adds r0, r0, r1 + ldrb r1, [r5] + adds r0, r0, r1 + strb r0, [r5] + adds r0, r4, #0 + bl sub_08032338 +_080319DE: + ldrb r0, [r5] + cmp r0, #0 + beq _08031A36 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08031A36 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080319FC + movs r0, #8 + b _080319FE +_080319FC: + movs r0, #9 +_080319FE: + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + cmp r0, #0xf + bhi _08031A14 + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + b _08031A1A +_08031A14: + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 +_08031A1A: + strb r0, [r4, #0x18] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #8 + orrs r1, r0 + strb r1, [r2] + adds r0, r4, #0 + movs r1, #0xe + bl sub_08004260 +_08031A36: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _08031A48 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08031A48: + ldr r1, _08031A5C @ =gUnk_080CE56C + adds r0, r4, #0 + bl sub_0804AA30 + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08031A5C: .4byte gUnk_080CE56C + + thumb_func_start sub_08031A60 +sub_08031A60: @ 0x08031A60 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + ble _08031A7A + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 +_08031A7A: + adds r0, r4, #0 + bl sub_08001324 + + thumb_func_start nullsub_153 +nullsub_153: @ 0x08031A80 + pop {r4, pc} + .align 2, 0 + + thumb_func_start nullsub_154 +nullsub_154: @ 0x08031A84 + bx lr + .align 2, 0 + + thumb_func_start sub_08031A88 +sub_08031A88: @ 0x08031A88 + push {lr} + ldr r2, _08031A9C @ =gUnk_080CE58C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08031A9C: .4byte gUnk_080CE58C + + thumb_func_start sub_08031AA0 +sub_08031AA0: @ 0x08031AA0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r0, #1 + strb r0, [r4, #0xc] + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x74 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] + bl sub_08000E50 + adds r4, #0x79 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08031AC8 +sub_08031AC8: @ 0x08031AC8 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + ldrb r0, [r6, #0xe] + cmp r0, #0 + beq _08031AD8 + subs r0, #1 + strb r0, [r6, #0xe] + b _08031B44 +_08031AD8: + adds r0, r6, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _08031B44 + bl sub_08000E50 + adds r5, r0, #0 + adds r0, r6, #0 + adds r0, #0x74 + ldrh r4, [r0] + adds r0, r5, #0 + movs r1, #5 + bl __modsi3 + lsls r0, r0, #4 + adds r4, r4, r0 + adds r7, r4, #0 + subs r7, #0x20 + adds r0, r6, #0 + adds r0, #0x76 + ldrh r4, [r0] + lsrs r5, r5, #4 + adds r0, r5, #0 + movs r1, #5 + bl __modsi3 + lsls r0, r0, #4 + adds r4, r4, r0 + subs r4, #0x20 + adds r0, r6, #0 + adds r0, #0x38 + ldrb r2, [r0] + adds r0, r7, #0 + adds r1, r4, #0 + bl sub_080002D4 + cmp r0, #0 + bne _08031B44 + movs r0, #2 + strb r0, [r6, #0xc] + ldrb r1, [r6, #0x18] + subs r0, #6 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r6, #0x18] + strh r7, [r6, #0x2e] + strh r4, [r6, #0x32] + adds r0, r6, #0 + movs r1, #0 + bl sub_08004260 +_08031B44: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08031B48 +sub_08031B48: @ 0x08031B48 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08031B6C + movs r0, #0 + strb r0, [r2] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + b _08031B90 +_08031B6C: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08031B90 + movs r0, #3 + strb r0, [r4, #0xc] + bl sub_08000E50 + ldr r2, _08031B94 @ =gUnk_080CE5B0 + movs r1, #7 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_08031B90: + pop {r4, pc} + .align 2, 0 +_08031B94: .4byte gUnk_080CE5B0 + + thumb_func_start sub_08031B98 +sub_08031B98: @ 0x08031B98 + push {r4, lr} + adds r4, r0, #0 + bl sub_08031E04 + cmp r0, #0 + beq _08031BDA + movs r0, #5 + strb r0, [r4, #0xc] + ldr r0, _08031BC4 @ =gUnk_020000B0 + ldr r0, [r0] + movs r2, #0x2e + ldrsh r1, [r4, r2] + movs r2, #0x2e + ldrsh r0, [r0, r2] + cmp r1, r0 + ble _08031BC8 + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + b _08031BCE + .align 2, 0 +_08031BC4: .4byte gUnk_020000B0 +_08031BC8: + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 +_08031BCE: + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 + b _08031C1A +_08031BDA: + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08031BFA + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08031BFA + movs r0, #0xfe + ands r0, r1 + strb r0, [r2] + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] +_08031BFA: + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _08031C1A + movs r0, #4 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 +_08031C1A: + pop {r4, pc} + + thumb_func_start sub_08031C1C +sub_08031C1C: @ 0x08031C1C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08031C50 + movs r0, #1 + strb r0, [r4, #0xc] + bl sub_08000E50 + ldr r2, _08031C54 @ =gUnk_080CE5B8 + movs r1, #7 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_08031C50: + pop {r4, pc} + .align 2, 0 +_08031C54: .4byte gUnk_080CE5B8 + + thumb_func_start sub_08031C58 +sub_08031C58: @ 0x08031C58 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r7, r0, #0 + bl sub_08004274 + adds r3, r7, #0 + adds r3, #0x5a + ldrb r1, [r3] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + beq _08031D54 + ldr r0, _08031D50 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x42 + bhi _08031D66 + bl sub_08000E50 + adds r6, r0, #0 + movs r0, #3 + mov sb, r0 + ands r6, r0 + movs r0, #0x2e + movs r1, #1 + bl sub_0804AA60 + adds r4, r0, #0 + movs r0, #0 + mov r8, r0 + mov r0, r8 + strb r0, [r4, #0xb] + mov r0, r8 + str r0, [r4, #0x50] + adds r0, r4, #0 + adds r0, #0x74 + strb r6, [r0] + adds r0, r7, #0 + adds r1, r4, #0 + bl sub_08031E48 + movs r0, #0x2e + movs r1, #1 + bl sub_0804AA60 + adds r5, r0, #0 + str r5, [r4, #0x54] + movs r0, #1 + strb r0, [r5, #0xb] + str r4, [r5, #0x50] + adds r0, r5, #0 + adds r0, #0x74 + strb r6, [r0] + adds r0, r7, #0 + adds r1, r5, #0 + bl sub_08031E48 + movs r0, #0x2e + movs r1, #1 + bl sub_0804AA60 + adds r4, r0, #0 + str r4, [r5, #0x54] + movs r0, #2 + strb r0, [r4, #0xb] + str r5, [r4, #0x50] + adds r0, r4, #0 + adds r0, #0x74 + strb r6, [r0] + adds r0, r7, #0 + adds r1, r4, #0 + bl sub_08031E48 + movs r0, #0x2e + movs r1, #1 + bl sub_0804AA60 + adds r5, r0, #0 + str r5, [r4, #0x54] + mov r0, sb + strb r0, [r5, #0xb] + str r4, [r5, #0x50] + adds r0, r5, #0 + adds r0, #0x74 + strb r6, [r0] + adds r0, r7, #0 + adds r1, r5, #0 + bl sub_08031E48 + movs r0, #0x2e + movs r1, #1 + bl sub_0804AA60 + adds r1, r0, #0 + str r1, [r5, #0x54] + movs r0, #4 + strb r0, [r1, #0xb] + str r5, [r1, #0x50] + mov r0, r8 + str r0, [r1, #0x54] + adds r0, r1, #0 + adds r0, #0x74 + strb r6, [r0] + adds r0, r7, #0 + bl sub_08031E48 + movs r0, #6 + strb r0, [r7, #0xc] + movs r0, #0x14 + strb r0, [r7, #0xe] + adds r2, r7, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + adds r0, r7, #0 + movs r1, #7 + bl sub_08004260 + b _08031D66 + .align 2, 0 +_08031D50: .4byte gUnk_03003DBC +_08031D54: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08031D66 + strb r2, [r3] + ldrb r1, [r7, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r7, #0x10] +_08031D66: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08031D70 +sub_08031D70: @ 0x08031D70 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08031D9C + movs r0, #7 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #5 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #9 + ands r0, r1 + strb r0, [r4, #0x18] +_08031D9C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08031DA0 +sub_08031DA0: @ 0x08031DA0 + push {lr} + adds r1, r0, #0 + ldrb r2, [r1, #0xe] + movs r0, #0xf + ands r0, r2 + cmp r0, #0 + bne _08031DC2 + cmp r2, #0x50 + bne _08031DBA + adds r0, r1, #0 + bl sub_0805E7BC + b _08031DC2 +_08031DBA: + movs r0, #1 + strb r0, [r1, #0xc] + movs r0, #0xb4 + strb r0, [r1, #0xe] +_08031DC2: + pop {pc} + + thumb_func_start sub_08031DC4 +sub_08031DC4: @ 0x08031DC4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x5a + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08031DE8 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xb4 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #0xb8 + ands r0, r1 + strb r0, [r4, #0x18] + b _08031E00 +_08031DE8: + adds r0, r4, #0 + bl sub_08004274 + ldrb r1, [r5] + movs r0, #0xf + ands r0, r1 + cmp r0, #2 + bne _08031E00 + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] +_08031E00: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08031E04 +sub_08031E04: @ 0x08031E04 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + bl sub_08049DF4 + adds r2, r0, #0 + cmp r2, #0 + beq _08031E44 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r3, #6 + ands r3, r0 + ldr r0, _08031E40 @ =gUnk_080CE5C0 + adds r3, r3, r0 + movs r0, #0x2e + ldrsh r1, [r2, r0] + movs r0, #0 + ldrsb r0, [r3, r0] + adds r1, r1, r0 + movs r0, #0x32 + ldrsh r2, [r2, r0] + movs r0, #1 + ldrsb r0, [r3, r0] + adds r2, r2, r0 + adds r0, r4, #0 + movs r3, #0x50 + bl sub_0806FCB8 + b _08031E46 + .align 2, 0 +_08031E40: .4byte gUnk_080CE5C0 +_08031E44: + movs r0, #0 +_08031E46: + pop {r4, pc} + + thumb_func_start sub_08031E48 +sub_08031E48: @ 0x08031E48 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + bl sub_0806FA24 + adds r0, r5, #0 + adds r0, #0x6c + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x6c + strb r1, [r0] + adds r0, r5, #0 + adds r0, #0x70 + ldrh r1, [r0] + adds r0, r4, #0 + adds r0, #0x70 + strh r1, [r0] + adds r0, r5, #0 + adds r0, #0x72 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x72 + strh r0, [r1] + adds r0, r5, #0 + adds r0, #0x6e + ldrb r0, [r0] + subs r1, #4 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x6f + ldrb r0, [r0] + adds r1, #1 + strb r0, [r1] + str r5, [r4, #0x7c] + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08031E90 +sub_08031E90: @ 0x08031E90 + push {lr} + ldr r2, _08031EA4 @ =gUnk_080CE5C8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08031EA4: .4byte gUnk_080CE5C8 + + thumb_func_start sub_08031EA8 +sub_08031EA8: @ 0x08031EA8 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0x3a + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x80 + lsls r0, r0, #0xb + str r0, [r4, #0x20] + ldrb r0, [r4, #0xb] + movs r1, #4 + subs r1, r1, r0 + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #1 + strh r0, [r4, #0x36] + bl sub_08000E50 + adds r1, r4, #0 + adds r1, #0x79 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 + pop {r4, pc} + + thumb_func_start sub_08031EE8 +sub_08031EE8: @ 0x08031EE8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x34] + ldr r1, [r4, #0x20] + subs r0, r0, r1 + str r0, [r4, #0x34] + ldr r0, _08031F4C @ =0xFFFFE800 + adds r1, r1, r0 + str r1, [r4, #0x20] + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bgt _08031F1E + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + cmp r0, #0 + bne _08031F10 + ldr r0, _08031F50 @ =0x0000012B + bl sub_08004488 +_08031F10: + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r4, #0x18] +_08031F1E: + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _08031F2E + adds r0, r4, #0 + bl sub_08004274 +_08031F2E: + ldr r0, [r4, #0x20] + cmp r0, #0 + bgt _08031F48 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #5 + bl sub_08004260 +_08031F48: + pop {r4, pc} + .align 2, 0 +_08031F4C: .4byte 0xFFFFE800 +_08031F50: .4byte 0x0000012B + + thumb_func_start sub_08031F54 +sub_08031F54: @ 0x08031F54 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08031FAC @ =gUnk_080CE5F0 + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + adds r0, r4, #0 + bl sub_08003FC4 + ldrb r1, [r4, #0xb] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #1 + rsbs r0, r0, #0 + movs r2, #0x36 + ldrsh r1, [r4, r2] + cmp r0, r1 + bgt _08031FAA + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x14 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0xb] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #1 + rsbs r0, r0, #0 + strh r0, [r4, #0x36] + ldr r0, [r4, #0x50] + cmp r0, #0 + beq _08031FA2 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] +_08031FA2: + adds r0, r4, #0 + movs r1, #6 + bl sub_08004260 +_08031FAA: + pop {r4, pc} + .align 2, 0 +_08031FAC: .4byte gUnk_080CE5F0 + + thumb_func_start sub_08031FB0 +sub_08031FB0: @ 0x08031FB0 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_08004274 + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08032006 + ldr r0, [r5, #0x50] + cmp r0, #0 + bne _08031FD8 + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08032006 +_08031FD8: + movs r4, #0 + movs r0, #4 + strb r0, [r5, #0xc] + adds r0, r5, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r5, #0x15] + adds r0, r5, #0 + adds r0, #0x76 + strb r4, [r0] + ldr r0, [r5, #0x54] + cmp r0, #0 + beq _08031FFE + adds r0, r5, #0 + movs r1, #9 + bl sub_08004260 + b _08032006 +_08031FFE: + adds r0, r5, #0 + movs r1, #8 + bl sub_08004260 +_08032006: + pop {r4, r5, pc} + + thumb_func_start sub_08032008 +sub_08032008: @ 0x08032008 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + bl sub_080322A4 + adds r7, r0, #0 + cmp r7, #0 + beq _08032018 + b _08032144 +_08032018: + ldr r5, [r4, #0x50] + cmp r5, #0 + bne _080320D4 + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _08032060 + adds r1, r4, #0 + adds r1, #0x79 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r1, #0xff + ands r0, r1 + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _08032052 + ldr r0, _0803205C @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 +_08032052: + adds r0, r4, #0 + adds r0, #0x76 + strb r7, [r0] + b _080320AC + .align 2, 0 +_0803205C: .4byte gUnk_020000B0 +_08032060: + adds r1, r4, #0 + adds r1, #0x76 + ldrb r0, [r1] + cmp r0, #0 + beq _0803207C + subs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x7a + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08004596 + b _080320AC +_0803207C: + movs r0, #0x10 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _0803209E + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _0803209E + adds r0, r4, #0 + bl sub_08049EE4 + b _080320A6 +_0803209E: + bl sub_08000E50 + movs r1, #0x1e + ands r0, r1 +_080320A6: + adds r1, r4, #0 + adds r1, #0x7a + strb r0, [r1] +_080320AC: + ldrb r1, [r4, #0x15] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + beq _080320CC + lsrs r1, r1, #4 + movs r0, #1 + eors r1, r0 + ands r1, r0 + lsls r1, r1, #6 + ldrb r2, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] +_080320CC: + adds r0, r4, #0 + bl sub_080AEF88 + b _0803213E +_080320D4: + adds r6, r4, #0 + adds r6, #0x77 + ldrb r0, [r6] + cmp r0, #0 + bne _0803210E + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r0, #0x32 + ldrsh r2, [r5, r0] + adds r0, r4, #0 + movs r3, #1 + bl sub_0806FCB8 + cmp r0, #0 + bne _0803213E + movs r0, #1 + strb r0, [r6] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_080322E8 + adds r0, r4, #0 + bl sub_0806F69C + b _0803213E +_0803210E: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_080322E8 + adds r0, r4, #0 + bl sub_0806F69C + movs r2, #0x2e + ldrsh r1, [r4, r2] + movs r2, #0x2e + ldrsh r0, [r5, r2] + cmp r1, r0 + bne _0803213E + movs r0, #0x32 + ldrsh r1, [r4, r0] + movs r2, #0x32 + ldrsh r0, [r5, r2] + cmp r1, r0 + bne _0803213E + strb r7, [r6] +_0803213E: + adds r0, r4, #0 + bl sub_08004274 +_08032144: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08032148 +sub_08032148: @ 0x08032148 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x80 + lsls r1, r1, #6 + bl sub_08003FC4 + cmp r0, #0 + bne _0803215E + adds r0, r4, #0 + bl sub_08032290 +_0803215E: + pop {r4, pc} + + thumb_func_start sub_08032160 +sub_08032160: @ 0x08032160 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _080321C2 + movs r0, #7 + strb r0, [r4, #0xc] + ldr r2, _08032190 @ =gUnk_080CE5FA + adds r0, r4, #0 + adds r0, #0x74 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + ldrb r1, [r4, #0xb] + adds r0, r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r4, #0x15] + cmp r0, #0xf + bls _08032194 + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + b _0803219C + .align 2, 0 +_08032190: .4byte gUnk_080CE5FA +_08032194: + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 +_0803219C: + strb r0, [r4, #0x18] + movs r0, #0xf0 + strh r0, [r4, #0x24] + movs r0, #0x90 + lsls r0, r0, #9 + str r0, [r4, #0x20] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #0xc + bl sub_08004260 +_080321C2: + ldr r0, [r4, #0x54] + cmp r0, #0 + bne _080321E6 + ldr r1, [r4, #0x50] + cmp r1, #0 + beq _080321E2 + movs r2, #0 +_080321D0: + adds r0, r1, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _080321DC + strb r2, [r1, #0xe] +_080321DC: + ldr r1, [r1, #0x50] + cmp r1, #0 + bne _080321D0 +_080321E2: + movs r0, #0 + strb r0, [r4, #0xe] +_080321E6: + pop {r4, pc} + + thumb_func_start sub_080321E8 +sub_080321E8: @ 0x080321E8 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEFE0 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #0 + bne _08032202 + movs r0, #8 + strb r0, [r4, #0xc] +_08032202: + pop {r4, pc} + + thumb_func_start sub_08032204 +sub_08032204: @ 0x08032204 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08032230 + movs r0, #0 + strb r0, [r2] + bl sub_08000E50 + movs r1, #0x30 + ands r0, r1 + adds r0, #0x1e + adds r1, r4, #0 + adds r1, #0x59 + strb r0, [r1] + b _08032244 +_08032230: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08032244 + movs r0, #9 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0xd + bl sub_08004260 +_08032244: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08032248 +sub_08032248: @ 0x08032248 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0xc0 + lsls r1, r1, #5 + bl sub_08003FC4 + cmp r0, #0 + bne _0803228E + adds r5, r4, #0 + adds r5, #0x5a + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08032276 + ldr r1, [r4, #0x7c] + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + adds r0, r4, #0 + bl sub_0805E7BC + b _0803228E +_08032276: + adds r0, r4, #0 + bl sub_08004274 + ldrb r1, [r5] + movs r0, #0xf + ands r0, r1 + cmp r0, #2 + bne _0803228E + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] +_0803228E: + pop {r4, r5, pc} + + thumb_func_start sub_08032290 +sub_08032290: @ 0x08032290 + push {lr} + movs r1, #6 + strb r1, [r0, #0xc] + movs r1, #0xc + strb r1, [r0, #0xe] + movs r1, #0xb + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080322A4 +sub_080322A4: @ 0x080322A4 + push {r4, lr} + adds r2, r0, #0 + ldr r3, [r2, #0x54] + cmp r3, #0 + beq _080322E2 + movs r1, #0x36 + ldrsh r0, [r3, r1] + adds r0, #8 + movs r4, #0x36 + ldrsh r1, [r2, r4] + cmp r0, r1 + blt _080322E2 + adds r0, r1, #0 + cmp r0, #0 + beq _080322D8 + movs r0, #5 + strb r0, [r2, #0xc] + ldrh r0, [r3, #0x36] + adds r0, #8 + strh r0, [r2, #0x36] + adds r0, r2, #0 + movs r1, #0xb + bl sub_08004260 + movs r0, #1 + b _080322E4 +_080322D8: + adds r0, r2, #0 + bl sub_08032290 + movs r0, #1 + b _080322E4 +_080322E2: + movs r0, #0 +_080322E4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080322E8 +sub_080322E8: @ 0x080322E8 + push {lr} + adds r3, r0, #0 + adds r2, r3, #0 + adds r2, #0x78 + ldrb r0, [r2] + cmp r0, #0 + beq _08032316 + subs r0, #1 + strb r0, [r2] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08032334 + ldrb r2, [r3, #0x18] + lsls r1, r2, #0x19 + lsrs r1, r1, #0x1f + movs r0, #1 + eors r1, r0 + lsls r1, r1, #6 + subs r0, #0x42 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x18] + b _08032334 +_08032316: + ldrb r1, [r3, #0x15] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + beq _08032334 + lsrs r1, r1, #4 + movs r0, #1 + eors r1, r0 + ldrb r0, [r3, #0x18] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x1f + cmp r1, r0 + beq _08032334 + movs r0, #6 + strb r0, [r2] +_08032334: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08032338 +sub_08032338: @ 0x08032338 + push {lr} + adds r2, r0, #0 + ldr r1, [r2, #0x7c] + ldrb r0, [r1, #0xe] + adds r0, #0xf + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x50 + beq _08032354 + adds r1, r2, #0 + adds r1, #0x6c + movs r0, #0 + strb r0, [r1] +_08032354: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08032358 +sub_08032358: @ 0x08032358 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0803237C + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + bl sub_0804B128 + str r0, [r4, #0x54] + adds r1, r4, #0 + adds r1, #0x54 + adds r2, r4, #0 + adds r2, #0x74 + adds r0, r4, #0 + bl sub_080A2CC0 +_0803237C: + ldrb r1, [r4, #0x15] + movs r6, #0x80 + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + bne _0803238E + adds r0, r4, #0 + bl sub_0806F69C +_0803238E: + adds r5, r4, #0 + adds r5, #0x74 + ldrh r0, [r5] + subs r0, #1 + strh r0, [r5] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080323BA + ldrb r1, [r4, #0x15] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + bne _080323AE + movs r0, #0x74 + bl sub_08004488 +_080323AE: + adds r1, r4, #0 + adds r1, #0x54 + adds r0, r4, #0 + adds r2, r5, #0 + bl sub_080A2CC0 +_080323BA: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080323BC +sub_080323BC: @ 0x080323BC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080323D8 @ =gUnk_080CE7B0 + bl sub_0800129E + movs r3, #0x12 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, pc} + .align 2, 0 +_080323D8: .4byte gUnk_080CE7B0 + + thumb_func_start sub_080323DC +sub_080323DC: @ 0x080323DC + push {lr} + ldr r2, _080323F0 @ =gUnk_080CE7C8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080323F0: .4byte gUnk_080CE7C8 + + thumb_func_start sub_080323F4 +sub_080323F4: @ 0x080323F4 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + subs r0, #3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _0803242C + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0xc + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x3e + ldrb r1, [r0] + adds r1, #4 + movs r0, #0x18 + ands r1, r0 + movs r0, #0x10 + eors r1, r0 + strb r1, [r4, #0x15] + lsrs r1, r1, #3 + adds r0, r4, #0 + bl sub_080042AC + adds r5, r4, #0 + adds r5, #0x43 + b _08032446 +_0803242C: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r0, [r0] + adds r5, r4, #0 + adds r5, #0x43 + cmp r0, #0xcc + bne _08032446 + ldrb r0, [r5] + cmp r0, #0 + bne _0803244C + adds r0, r4, #0 + bl sub_0803275C +_08032446: + ldrb r0, [r5] + cmp r0, #0 + beq _08032454 +_0803244C: + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08032454: + ldr r1, _08032460 @ =gUnk_080CE7B0 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, r5, pc} + .align 2, 0 +_08032460: .4byte gUnk_080CE7B0 + + thumb_func_start nullsub_155 +nullsub_155: @ 0x08032464 + bx lr + .align 2, 0 + + thumb_func_start sub_08032468 +sub_08032468: @ 0x08032468 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r0, #0 + strb r0, [r4, #0x14] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_080326FC + adds r0, r4, #0 + bl sub_08032740 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803248C +sub_0803248C: @ 0x0803248C + push {r4, lr} + adds r4, r0, #0 + bl sub_080325E8 + cmp r0, #0 + bne _080324C8 + adds r0, r4, #0 + bl sub_0803271C + cmp r0, #0 + bne _080324C8 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080324B4 + adds r0, r4, #0 + bl sub_08032650 +_080324B4: + adds r0, r4, #0 + bl sub_080AEF88 + cmp r0, #0 + bne _080324C2 + movs r0, #1 + strb r0, [r4, #0xe] +_080324C2: + adds r0, r4, #0 + bl sub_080042B8 +_080324C8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080324CC +sub_080324CC: @ 0x080324CC + push {r4, lr} + adds r4, r0, #0 + bl sub_080325E8 + cmp r0, #0 + bne _080324F8 + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080324F8 + adds r0, r4, #0 + bl sub_080326FC + adds r0, r4, #0 + bl sub_08032740 +_080324F8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080324FC +sub_080324FC: @ 0x080324FC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08032524 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08032572 + movs r0, #0x1e + strb r0, [r4, #0xf] + ldrb r0, [r4, #0x15] + lsrs r0, r0, #3 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC +_08032524: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_080042B8 + ldrb r0, [r4, #0xf] + subs r1, r0, #1 + strb r1, [r4, #0xf] + lsls r0, r1, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + bne _08032564 + movs r0, #4 + strb r0, [r4, #0xc] + movs r1, #0 + movs r0, #0xf0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + adds r2, r4, #0 + adds r2, #0x76 + movs r0, #0x46 + strh r0, [r2] + adds r0, r4, #0 + adds r0, #0x78 + strh r3, [r0] + adds r0, #3 + strb r1, [r0] + adds r0, r4, #0 + bl sub_080327C8 + b _08032572 +_08032564: + movs r0, #3 + ands r1, r0 + cmp r1, #0 + bne _08032572 + adds r0, r4, #0 + bl sub_08032794 +_08032572: + pop {r4, pc} + + thumb_func_start sub_08032574 +sub_08032574: @ 0x08032574 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x54] + cmp r0, #0 + beq _0803258A + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080325A4 +_0803258A: + adds r5, r4, #0 + adds r5, #0x76 + ldrh r0, [r5] + subs r0, #1 + strh r0, [r5] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080325A4 + adds r0, r4, #0 + bl sub_080AEFE0 + cmp r0, #0 + bne _080325AC +_080325A4: + adds r0, r4, #0 + bl sub_0803275C + b _080325C2 +_080325AC: + adds r0, r4, #0 + bl sub_080042B8 + ldrh r1, [r5] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + bne _080325C2 + adds r0, r4, #0 + bl sub_08032794 +_080325C2: + pop {r4, r5, pc} + + thumb_func_start sub_080325C4 +sub_080325C4: @ 0x080325C4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080325E4 + adds r0, r4, #0 + bl sub_080325E8 + cmp r0, #0 + bne _080325E4 + adds r0, r4, #0 + bl sub_08032784 +_080325E4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080325E8 +sub_080325E8: @ 0x080325E8 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08049FA0 + cmp r0, #0 + beq _0803264C + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0803264C + ldr r5, _08032648 @ =gUnk_020000B0 + ldr r1, [r5] + adds r0, r4, #0 + movs r2, #0x68 + movs r3, #0x40 + bl sub_080041A0 + cmp r0, #0 + beq _0803264C + ldr r1, [r5] + adds r0, r4, #0 + bl sub_080045C4 + adds r3, r4, #0 + adds r3, #0x5a + ldrb r2, [r3] + movs r5, #0x18 + adds r1, r5, #0 + ands r1, r2 + subs r0, r0, r1 + adds r0, #2 + movs r1, #0x1f + ands r0, r1 + cmp r0, #4 + bhi _0803264C + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0xc + strb r0, [r4, #0xe] + ldrb r1, [r3] + adds r0, r5, #0 + ands r0, r1 + strb r0, [r4, #0x15] + movs r0, #1 + b _0803264E + .align 2, 0 +_08032648: .4byte gUnk_020000B0 +_0803264C: + movs r0, #0 +_0803264E: + pop {r4, r5, pc} + + thumb_func_start sub_08032650 +sub_08032650: @ 0x08032650 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08000E50 + adds r5, r0, #0 + ldr r1, _08032680 @ =gUnk_080CE7E0 + movs r0, #0xf + ands r0, r5 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _0803267A + lsrs r0, r5, #8 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08032684 +_0803267A: + lsrs r0, r5, #0x10 + b _0803268C + .align 2, 0 +_08032680: .4byte gUnk_080CE7E0 +_08032684: + adds r0, r4, #0 + bl sub_08049EE4 + adds r0, #4 +_0803268C: + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x15] + adds r0, r4, #0 + bl sub_0803269C + pop {r4, r5, pc} + + thumb_func_start sub_0803269C +sub_0803269C: @ 0x0803269C + push {lr} + adds r3, r0, #0 + adds r2, r1, #0 + subs r0, r2, #3 + movs r1, #7 + ands r0, r1 + cmp r0, #2 + bhi _080326D6 + adds r0, r2, #4 + movs r1, #0x18 + ands r0, r1 + lsrs r2, r0, #3 + ldrb r0, [r3, #0x14] + subs r0, r0, r2 + movs r1, #3 + ands r0, r1 + cmp r0, #1 + bls _080326F8 + strb r2, [r3, #0x14] + adds r0, r3, #0 + adds r0, #0x58 + ldrb r0, [r0] + movs r1, #0xfc + ands r1, r0 + adds r1, r1, r2 + adds r0, r3, #0 + bl sub_080042AC + b _080326F8 +_080326D6: + adds r0, r2, #4 + movs r1, #0x18 + ands r0, r1 + lsrs r2, r0, #3 + ldrb r0, [r3, #0x14] + cmp r2, r0 + beq _080326F8 + strb r2, [r3, #0x14] + adds r0, r3, #0 + adds r0, #0x58 + ldrb r0, [r0] + movs r1, #0xfc + ands r1, r0 + adds r1, r1, r2 + adds r0, r3, #0 + bl sub_080042AC +_080326F8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080326FC +sub_080326FC: @ 0x080326FC + push {r4, lr} + adds r4, r0, #0 + bl sub_08000E50 + ldr r2, _08032718 @ =gUnk_080CE7F0 + movs r1, #0xf + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r0, [r1] + adds r4, #0x74 + strh r0, [r4] + pop {r4, pc} + .align 2, 0 +_08032718: .4byte gUnk_080CE7F0 + + thumb_func_start sub_0803271C +sub_0803271C: @ 0x0803271C + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x74 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08032734 + movs r0, #0 + b _0803273C +_08032734: + adds r0, r2, #0 + bl sub_08032784 + movs r0, #1 +_0803273C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08032740 +sub_08032740: @ 0x08032740 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x80 + strh r0, [r4, #0x24] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08032650 + pop {r4, pc} + + thumb_func_start sub_0803275C +sub_0803275C: @ 0x0803275C + push {r4, lr} + adds r4, r0, #0 + movs r0, #5 + strb r0, [r4, #0xc] + movs r0, #0x2d + strb r0, [r4, #0xe] + movs r0, #0x80 + strh r0, [r4, #0x24] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_080042AC + ldrb r1, [r4, #0x15] + adds r0, r4, #0 + bl sub_0803269C + adds r0, r4, #0 + bl sub_080327E0 + pop {r4, pc} + + thumb_func_start sub_08032784 +sub_08032784: @ 0x08032784 + push {lr} + movs r1, #2 + strb r1, [r0, #0xc] + ldrb r1, [r0, #0x14] + adds r1, #8 + bl sub_080042AC + pop {pc} + + thumb_func_start sub_08032794 +sub_08032794: @ 0x08032794 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x11 + movs r2, #0x40 + bl sub_080A29AC + adds r5, r0, #0 + cmp r5, #0 + beq _080327C2 + ldrb r0, [r4, #0x14] + lsls r0, r0, #1 + ldr r1, _080327C4 @ =gUnk_080CE810 + adds r0, r0, r1 + movs r2, #0 + ldrsb r2, [r0, r2] + lsls r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r0, r3] + lsls r3, r3, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FA48 +_080327C2: + pop {r4, r5, pc} + .align 2, 0 +_080327C4: .4byte gUnk_080CE810 + + thumb_func_start sub_080327C8 +sub_080327C8: @ 0x080327C8 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xb + movs r2, #0 + bl sub_0804A98C + cmp r0, #0 + beq _080327DC + str r4, [r0, #0x50] + str r0, [r4, #0x54] +_080327DC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080327E0 +sub_080327E0: @ 0x080327E0 + push {lr} + adds r2, r0, #0 + ldr r1, [r2, #0x54] + cmp r1, #0 + beq _080327F0 + movs r0, #0 + str r0, [r1, #0x50] + str r0, [r2, #0x54] +_080327F0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080327F4 +sub_080327F4: @ 0x080327F4 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _0803280C @ =gUnk_080CE978 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_0803280C: .4byte gUnk_080CE978 + + thumb_func_start sub_08032810 +sub_08032810: @ 0x08032810 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08032840 @ =gUnk_080CE990 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0803283C + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803283C + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] +_0803283C: + pop {r4, pc} + .align 2, 0 +_08032840: .4byte gUnk_080CE990 + + thumb_func_start sub_08032844 +sub_08032844: @ 0x08032844 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r2, #0x80 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _080328AE + movs r0, #0x3f + ands r0, r1 + cmp r0, #0 + bne _08032896 + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r3, #0x10 + strb r3, [r4, #0xf] + ldrb r2, [r4, #0x15] + adds r0, r2, #4 + movs r1, #8 + ands r0, r1 + cmp r0, #0 + bne _08032886 + adds r0, r2, #0 + ands r0, r3 + cmp r0, #0 + beq _08032882 + adds r0, r2, #2 + b _08032884 +_08032882: + subs r0, r2, #2 +_08032884: + strb r0, [r4, #0x15] +_08032886: + ldrb r1, [r4, #0x15] + movs r0, #0x20 + subs r0, r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_08032AF4 + b _080328AE +_08032896: + adds r0, r4, #0 + adds r0, #0x3d + ldrb r1, [r0] + adds r0, r2, #0 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _080328AE + adds r1, r4, #0 + adds r1, #0x45 + strb r0, [r1] +_080328AE: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080328B8 +sub_080328B8: @ 0x080328B8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080328FC @ =gUnk_080CE9A4 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0806F520 + cmp r0, #0 + bne _080328F8 + movs r1, #2 + strb r1, [r4, #0xc] + strb r0, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x84 + strb r1, [r0] + movs r0, #8 + strb r0, [r4, #0xe] + movs r0, #0xe0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_08032AF4 +_080328F8: + pop {r4, pc} + .align 2, 0 +_080328FC: .4byte gUnk_080CE9A4 + + thumb_func_start sub_08032900 +sub_08032900: @ 0x08032900 + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x3c + strb r1, [r0, #0x1d] + bx lr + .align 2, 0 + + thumb_func_start sub_0803290C +sub_0803290C: @ 0x0803290C + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_08032914 +sub_08032914: @ 0x08032914 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _08032926 + adds r0, r4, #0 + bl sub_0804A7D4 +_08032926: + pop {r4, pc} + + thumb_func_start sub_08032928 +sub_08032928: @ 0x08032928 + push {r4, r5, r6, lr} + adds r6, r0, #0 + bl sub_0804A720 + movs r4, #0 + movs r5, #1 + strb r5, [r6, #0xc] + strb r4, [r6, #0xf] + adds r0, r6, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r6, #0x15] + adds r0, r6, #0 + adds r0, #0x80 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + strb r5, [r6, #0x1c] + adds r2, r6, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0x10 + orrs r0, r1 + strb r0, [r2] + adds r1, r6, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + ldrb r1, [r6, #0x1b] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r6, #0x1b] + ldrh r1, [r6, #0x2e] + adds r0, r6, #0 + adds r0, #0x78 + strh r1, [r0] + ldrh r0, [r6, #0x32] + adds r1, r6, #0 + adds r1, #0x7a + strh r0, [r1] + adds r0, r6, #0 + bl sub_08016A04 + adds r0, r6, #0 + bl sub_08032AF4 + pop {r4, r5, r6, pc} + + thumb_func_start sub_0803298C +sub_0803298C: @ 0x0803298C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08032AB0 + adds r0, r4, #0 + bl sub_08004274 + movs r0, #1 + bl sub_08049DF4 + cmp r0, #0 + beq _080329E2 + ldr r5, _080329E4 @ =gUnk_020000B0 + ldr r1, [r5] + adds r0, r4, #0 + movs r2, #0x88 + movs r3, #0x50 + bl sub_080041A0 + cmp r0, #0 + beq _080329E2 + ldr r0, [r5] + movs r2, #0x32 + ldrsh r1, [r0, r2] + movs r2, #0x32 + ldrsh r0, [r4, r2] + adds r0, #8 + cmp r1, r0 + ble _080329E2 + movs r1, #0 + movs r2, #2 + strb r2, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x84 + strb r1, [r0] + movs r0, #0x10 + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x81 + strb r2, [r0] + adds r0, r4, #0 + bl sub_08032AF4 +_080329E2: + pop {r4, r5, pc} + .align 2, 0 +_080329E4: .4byte gUnk_020000B0 + + thumb_func_start sub_080329E8 +sub_080329E8: @ 0x080329E8 + push {lr} + bl sub_08032B38 + pop {pc} + + thumb_func_start sub_080329F0 +sub_080329F0: @ 0x080329F0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080040A8 + cmp r0, #0 + bne _08032A3A + movs r0, #4 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #8 + ands r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x78 + ldrh r0, [r0] + strh r0, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x7a + ldrh r0, [r0] + strh r0, [r4, #0x32] + ldrh r0, [r4, #0x36] + adds r0, #8 + strh r0, [r4, #0x36] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + b _08032A46 +_08032A3A: + adds r0, r4, #0 + bl sub_08032B10 + adds r0, r4, #0 + bl sub_08004274 +_08032A46: + pop {r4, pc} + + thumb_func_start sub_08032A48 +sub_08032A48: @ 0x08032A48 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_080040A8 + adds r5, r0, #0 + cmp r5, #0 + bne _08032AAE + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #8 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] + adds r0, r4, #0 + adds r0, #0x80 + strb r5, [r0] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x18 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x81 + strb r5, [r0] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + bl sub_08032AF4 +_08032AAE: + pop {r4, r5, pc} + + thumb_func_start sub_08032AB0 +sub_08032AB0: @ 0x08032AB0 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08032AF0 + ldrb r0, [r4, #0x15] + adds r5, r4, #0 + adds r5, #0x80 + strb r0, [r5] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + cmp r0, #0xff + beq _08032AD6 + strb r0, [r4, #0x15] +_08032AD6: + movs r0, #8 + strb r0, [r4, #0xe] + ldrb r2, [r5] + movs r0, #0x10 + adds r1, r0, #0 + ands r1, r2 + ldrb r2, [r4, #0x15] + ands r0, r2 + cmp r1, r0 + beq _08032AF0 + adds r0, r4, #0 + bl sub_08032AF4 +_08032AF0: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08032AF4 +sub_08032AF4: @ 0x08032AF4 + push {lr} + ldrb r2, [r0, #0x15] + movs r1, #0x10 + ands r1, r2 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x1c + adds r2, r0, #0 + adds r2, #0x81 + ldrb r2, [r2] + adds r1, r1, r2 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08032B10 +sub_08032B10: @ 0x08032B10 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + ldrb r2, [r4, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x19] + pop {r4, pc} + + thumb_func_start sub_08032B38 +sub_08032B38: @ 0x08032B38 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r2, r5, #0 + adds r2, #0x84 + ldrb r0, [r2] + cmp r0, #1 + beq _08032B88 + cmp r0, #1 + bgt _08032B50 + cmp r0, #0 + beq _08032B56 + b _08032C6A +_08032B50: + cmp r0, #2 + beq _08032BB2 + b _08032C6A +_08032B56: + ldrb r1, [r5, #0xe] + movs r3, #1 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _08032B68 + ldrh r0, [r5, #0x36] + subs r0, #1 + strh r0, [r5, #0x36] +_08032B68: + subs r0, r1, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08032C6A + strb r3, [r2] + movs r0, #0x18 + strb r0, [r5, #0xe] + ldrb r0, [r5, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + adds r1, r5, #0 + adds r1, #0x81 + movs r0, #2 + b _08032BA8 +_08032B88: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08032C6A + movs r0, #2 + strb r0, [r2] + movs r0, #8 + strb r0, [r5, #0xe] + movs r0, #0xe0 + lsls r0, r0, #1 + strh r0, [r5, #0x24] + adds r1, r5, #0 + adds r1, #0x81 + movs r0, #4 +_08032BA8: + strb r0, [r1] + adds r0, r5, #0 + bl sub_08032AF4 + b _08032C6A +_08032BB2: + adds r1, r5, #0 + adds r1, #0x82 + ldrh r0, [r1] + subs r0, #1 + movs r3, #0 + strh r0, [r1] + lsls r0, r0, #0x10 + adds r6, r1, #0 + cmp r0, #0 + bne _08032BF4 + movs r0, #3 + strb r0, [r5, #0xc] + strb r3, [r2] + strb r3, [r5, #0xe] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r5, #0x24] + ldrb r2, [r5, #0x15] + adds r0, r2, #0 + adds r0, #0x18 + movs r1, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08032BEC + movs r0, #0x10 + subs r0, r0, r2 + movs r1, #0x1f + ands r0, r1 + strb r0, [r5, #0x15] +_08032BEC: + adds r0, r5, #0 + bl sub_08032AF4 + b _08032C64 +_08032BF4: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08032C64 + movs r0, #8 + strb r0, [r5, #0xe] + ldrb r0, [r5, #0x15] + adds r4, r5, #0 + adds r4, #0x80 + strb r0, [r4] + adds r0, r5, #0 + movs r1, #1 + bl sub_08049F84 + adds r1, r0, #0 + adds r0, r5, #0 + bl sub_08004596 + ldrb r3, [r5, #0x15] + adds r0, r3, #0 + adds r0, #0x18 + movs r1, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08032C46 + ldrb r0, [r4] + cmp r0, #0x10 + bne _08032C3E + ands r3, r0 + cmp r3, #0 + beq _08032C3A + movs r0, #0x12 + b _08032C3C +_08032C3A: + movs r0, #0xe +_08032C3C: + strb r0, [r4] +_08032C3E: + ldrb r0, [r4] + strb r0, [r5, #0x15] + movs r0, #1 + strh r0, [r6] +_08032C46: + ldrb r2, [r4] + movs r0, #0x10 + adds r1, r0, #0 + ands r1, r2 + lsls r1, r1, #0x18 + ldrb r2, [r5, #0x15] + ands r0, r2 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x1c + cmp r1, r0 + beq _08032C64 + adds r1, r2, #4 + adds r0, r5, #0 + bl sub_08004260 +_08032C64: + adds r0, r5, #0 + bl sub_08032B10 +_08032C6A: + adds r0, r5, #0 + bl sub_08004274 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08032C74 +sub_08032C74: @ 0x08032C74 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08032C90 @ =gUnk_080CEA1C + bl sub_0800129E + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, pc} + .align 2, 0 +_08032C90: .4byte gUnk_080CEA1C + + thumb_func_start sub_08032C94 +sub_08032C94: @ 0x08032C94 + push {lr} + ldr r2, _08032CA8 @ =gUnk_080CEA34 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08032CA8: .4byte gUnk_080CEA34 + + thumb_func_start sub_08032CAC +sub_08032CAC: @ 0x08032CAC + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _08032CC0 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08032CC0: + ldr r1, _08032D18 @ =gUnk_080CEA1C + adds r0, r4, #0 + bl sub_0804AA30 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08032D3A + movs r0, #0x3f + ands r0, r1 + cmp r0, #3 + bgt _08032D2C + cmp r0, #2 + blt _08032D2C + movs r0, #6 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + movs r1, #0xc8 + cmp r0, #0 + beq _08032CF0 + movs r1, #0x5a +_08032CF0: + strb r1, [r4, #0xe] + movs r0, #2 + strb r0, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x80 + movs r0, #3 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + strb r0, [r4, #0x15] + ldrb r5, [r4, #0x15] + bl sub_08000E50 + movs r1, #0x40 + ands r1, r0 + cmp r1, #0 + beq _08032D1C + adds r2, r5, #4 + b _08032D20 + .align 2, 0 +_08032D18: .4byte gUnk_080CEA1C +_08032D1C: + adds r2, r5, #0 + adds r2, #0x1c +_08032D20: + movs r1, #0 + movs r0, #0x1f + ands r0, r2 + strb r0, [r4, #0x15] + strh r1, [r4, #0x24] + b _08032D3A +_08032D2C: + movs r0, #5 + strb r0, [r4, #0xc] + movs r0, #4 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_08033174 +_08032D3A: + pop {r4, r5, pc} + + thumb_func_start sub_08032D3C +sub_08032D3C: @ 0x08032D3C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08032D66 + movs r0, #2 + strb r0, [r4, #0xf] + ldrb r0, [r4, #0x14] + adds r0, #1 + movs r1, #7 + ands r0, r1 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_08032F24 + adds r0, r4, #0 + bl sub_080331E8 +_08032D66: + adds r0, r4, #0 + bl sub_08001324 + + thumb_func_start nullsub_156 +nullsub_156: @ 0x08032D6C + pop {r4, pc} + .align 2, 0 + + thumb_func_start nullsub_157 +nullsub_157: @ 0x08032D70 + bx lr + .align 2, 0 + + thumb_func_start sub_08032D74 +sub_08032D74: @ 0x08032D74 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + adds r0, r4, #0 + bl sub_08033058 + pop {r4, pc} + + thumb_func_start sub_08032D84 +sub_08032D84: @ 0x08032D84 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08032D9C + adds r0, r4, #0 + bl sub_080330C0 + b _08032DAC +_08032D9C: + adds r0, r4, #0 + bl sub_08033364 + cmp r0, #0 + beq _08032DAC + adds r0, r4, #0 + bl sub_08033100 +_08032DAC: + adds r0, r4, #0 + bl sub_08032F64 + pop {r4, pc} + + thumb_func_start sub_08032DB4 +sub_08032DB4: @ 0x08032DB4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08032DCA + adds r0, r4, #0 + bl sub_08033058 +_08032DCA: + adds r0, r4, #0 + bl sub_08032F48 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08032DD4 +sub_08032DD4: @ 0x08032DD4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08032E3C + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #8 + strb r0, [r4, #0xf] + movs r0, #0xf0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_080331B4 + adds r2, r4, #0 + adds r2, #0x82 + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08032E18 + ldrb r0, [r4, #0x15] + adds r0, #0x1c + movs r1, #0x1c + ands r0, r1 + strb r0, [r4, #0x15] + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + b _08032E28 +_08032E18: + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x1c + ands r0, r1 + strb r0, [r4, #0x15] + ldrb r0, [r2] + movs r1, #0x80 + orrs r0, r1 +_08032E28: + strb r0, [r2] + ldrb r0, [r4, #0x15] + lsrs r0, r0, #2 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 + b _08032E4E +_08032E3C: + adds r0, r4, #0 + bl sub_08032F90 + adds r0, r4, #0 + bl sub_080331E8 + adds r0, r4, #0 + bl sub_08032F64 +_08032E4E: + pop {r4, pc} + + thumb_func_start sub_08032E50 +sub_08032E50: @ 0x08032E50 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08032E70 + movs r0, #5 + strb r0, [r4, #0xc] + movs r0, #4 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_08033174 + b _08032E82 +_08032E70: + adds r0, r4, #0 + bl sub_08033000 + adds r0, r4, #0 + bl sub_080331E8 + adds r0, r4, #0 + bl sub_08032F64 +_08032E82: + pop {r4, pc} + + thumb_func_start sub_08032E84 +sub_08032E84: @ 0x08032E84 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08032EA4 + adds r0, r4, #0 + bl sub_08033320 + adds r0, r4, #0 + bl sub_080330C0 + b _08032EC0 +_08032EA4: + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08032EC0 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r1 + cmp r0, #0 + bne _08032EC0 + movs r0, #4 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_080332A8 +_08032EC0: + adds r0, r4, #0 + bl sub_080331E8 + adds r0, r4, #0 + bl sub_080AEF88 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08032ED0 +sub_08032ED0: @ 0x08032ED0 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_08032F48 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + movs r5, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08032F06 + movs r0, #2 + strb r0, [r4, #0xf] + ldrb r0, [r4, #0x14] + adds r0, #1 + movs r1, #7 + ands r0, r1 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_08032F24 + adds r0, r4, #0 + bl sub_080331E8 +_08032F06: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + ands r0, r5 + cmp r0, #0 + bne _08032F20 + movs r0, #5 + strb r0, [r4, #0xc] + movs r0, #4 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_08033174 +_08032F20: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08032F24 +sub_08032F24: @ 0x08032F24 + push {lr} + adds r2, r0, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + bne _08032F38 + movs r1, #0 + ldrb r0, [r2, #0x14] + lsrs r0, r0, #1 + b _08032F3C +_08032F38: + movs r1, #4 + ldrb r0, [r2, #0x14] +_08032F3C: + adds r1, r1, r0 + adds r0, r2, #0 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08032F48 +sub_08032F48: @ 0x08032F48 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #2 + bne _08032F5A + adds r0, r4, #0 + bl sub_08004274 +_08032F5A: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08032F64 +sub_08032F64: @ 0x08032F64 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _08032F82 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_0800417E + ldrb r0, [r4, #0x15] + lsrs r0, r0, #2 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_08032F24 +_08032F82: + adds r0, r4, #0 + bl sub_08032F48 + adds r0, r4, #0 + bl sub_080AEF88 + pop {r4, pc} + + thumb_func_start sub_08032F90 +sub_08032F90: @ 0x08032F90 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _08032FC0 + ldrb r0, [r2, #0xe] + cmp r0, #0x10 + bne _08032FA8 + adds r1, r2, #0 + adds r1, #0x80 + movs r0, #2 + strb r0, [r1] +_08032FA8: + ldrb r0, [r2, #0xf] + subs r0, #1 + strb r0, [r2, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08032FFE + movs r0, #8 + strb r0, [r2, #0xf] + adds r0, r2, #0 + bl sub_08033280 + b _08032FFE +_08032FC0: + ldrb r0, [r2, #0xf] + subs r0, #1 + strb r0, [r2, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08032FFE + movs r0, #4 + strb r0, [r2, #0xf] + adds r0, r2, #0 + adds r0, #0x82 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08032FE4 + ldrb r0, [r2, #0x15] + adds r0, #0x1c + b _08032FE8 +_08032FE4: + ldrb r0, [r2, #0x15] + adds r0, #4 +_08032FE8: + movs r1, #0x1c + ands r0, r1 + strb r0, [r2, #0x15] + ldrb r0, [r2, #0x15] + lsrs r0, r0, #2 + strb r0, [r2, #0x14] + ldrb r1, [r2, #0x14] + adds r1, #4 + adds r0, r2, #0 + bl sub_08004260 +_08032FFE: + pop {pc} + + thumb_func_start sub_08033000 +sub_08033000: @ 0x08033000 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xf] + subs r0, #1 + strb r0, [r2, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08033056 + movs r0, #0x10 + strb r0, [r2, #0xf] + adds r3, r2, #0 + adds r3, #0x82 + ldrb r1, [r3] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08033034 + ldrb r0, [r2, #0x15] + adds r0, #0x18 + movs r1, #0x1c + ands r0, r1 + strb r0, [r2, #0x15] + ldrb r1, [r3] + movs r0, #0x7f + ands r0, r1 + b _08033044 +_08033034: + ldrb r0, [r2, #0x15] + adds r0, #8 + movs r1, #0x1c + ands r0, r1 + strb r0, [r2, #0x15] + ldrb r0, [r3] + movs r1, #0x80 + orrs r0, r1 +_08033044: + strb r0, [r3] + ldrb r0, [r2, #0x15] + lsrs r0, r0, #2 + strb r0, [r2, #0x14] + ldrb r1, [r2, #0x14] + adds r1, #4 + adds r0, r2, #0 + bl sub_08004260 +_08033056: + pop {pc} + + thumb_func_start sub_08033058 +sub_08033058: @ 0x08033058 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r6, #1 + strb r6, [r5, #0xc] + adds r0, #0x80 + strb r6, [r0] + bl sub_08000E50 + ldr r1, _080330A0 @ =gUnk_080CEA50 + movs r4, #3 + ands r0, r4 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r5, #0xe] + adds r0, r5, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _080330A8 + bl sub_08000E50 + ands r0, r4 + cmp r0, #0 + beq _080330A8 + adds r0, r5, #0 + bl sub_08049EE4 + adds r4, r0, #0 + bl sub_08000E50 + ldr r1, _080330A4 @ =gUnk_080CEA54 + ands r0, r6 + adds r0, r0, r1 + ldrb r0, [r0] + adds r0, r0, r4 + b _080330AC + .align 2, 0 +_080330A0: .4byte gUnk_080CEA50 +_080330A4: .4byte gUnk_080CEA54 +_080330A8: + bl sub_08000E50 +_080330AC: + movs r1, #0x18 + ands r0, r1 + strb r0, [r5, #0x15] + ldrb r0, [r5, #0x15] + lsrs r0, r0, #2 + strb r0, [r5, #0x14] + adds r0, r5, #0 + bl sub_08032F24 + pop {r4, r5, r6, pc} + + thumb_func_start sub_080330C0 +sub_080330C0: @ 0x080330C0 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x80 + strb r1, [r0] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080330E2 + bl sub_08000E50 + movs r1, #0x38 + ands r0, r1 + adds r0, #0x18 + b _080330E4 +_080330E2: + movs r0, #6 +_080330E4: + strb r0, [r4, #0xe] + movs r0, #0x60 + strh r0, [r4, #0x24] + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + lsrs r0, r0, #2 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_08032F24 + pop {r4, pc} + + thumb_func_start sub_08033100 +sub_08033100: @ 0x08033100 + push {r4, lr} + adds r4, r0, #0 + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r2, [r4, #0xa] + cmp r2, #0 + bne _08033132 + adds r1, r4, #0 + adds r1, #0x80 + movs r0, #1 + strb r0, [r1] + movs r0, #0x30 + strb r0, [r4, #0xe] + movs r0, #8 + strb r0, [r4, #0xf] + strh r2, [r4, #0x24] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + adds r0, #2 + movs r1, #0x1c + ands r0, r1 + strb r0, [r4, #0x15] + b _08033150 +_08033132: + adds r1, r4, #0 + adds r1, #0x80 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080331B4 + ldrb r0, [r4, #0xe] + adds r0, #0x10 + strb r0, [r4, #0xe] + movs r0, #4 + strb r0, [r4, #0xf] + movs r0, #0xb0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] +_08033150: + adds r1, r4, #0 + adds r1, #0x83 + movs r0, #0 + strb r0, [r1] + bl sub_08000E50 + movs r1, #0x80 + ands r0, r1 + adds r1, r4, #0 + adds r1, #0x82 + strb r0, [r1] + ldrb r0, [r4, #0x15] + lsrs r0, r0, #2 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_08032F24 + pop {r4, pc} + + thumb_func_start sub_08033174 +sub_08033174: @ 0x08033174 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x80 + movs r2, #0 + movs r0, #1 + strb r0, [r1] + ldrb r0, [r4, #0x15] + adds r1, #1 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x82 + strb r2, [r0] + adds r0, #1 + strb r2, [r0] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080331A4 + bl sub_08000E50 + movs r1, #0x18 + ands r0, r1 + adds r0, #0x18 + b _080331A6 +_080331A4: + movs r0, #0xc +_080331A6: + strb r0, [r4, #0xe] + movs r0, #0xa0 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_08032F24 + pop {r4, pc} + + thumb_func_start sub_080331B4 +sub_080331B4: @ 0x080331B4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08000E50 + adds r1, r0, #0 + movs r0, #0xf0 + ands r1, r0 + movs r2, #0x1e + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080331D0 + movs r2, #0x3c + b _080331E4 +_080331D0: + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080331DA + movs r2, #0x2d +_080331DA: + movs r0, #0x20 + ands r1, r0 + cmp r1, #0 + beq _080331E4 + movs r2, #0x4b +_080331E4: + strb r2, [r4, #0xe] + pop {r4, pc} + + thumb_func_start sub_080331E8 +sub_080331E8: @ 0x080331E8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r3, #0 + ldrb r0, [r5, #0xc] + cmp r0, #5 + beq _08033220 + adds r1, r5, #0 + adds r1, #0x83 + ldrb r0, [r1] + adds r2, r0, #1 + strb r2, [r1] + adds r0, r5, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #2 + beq _0803320C + movs r0, #0xf + b _0803320E +_0803320C: + movs r0, #7 +_0803320E: + ands r2, r0 + strb r2, [r1] + ldrb r0, [r1] + cmp r0, #0 + bne _08033238 + movs r3, #1 + ldrb r0, [r5, #0x14] + lsls r6, r0, #1 + b _08033238 +_08033220: + adds r2, r5, #0 + adds r2, #0x83 + ldrb r0, [r2] + adds r0, #1 + movs r1, #0xf + ands r0, r1 + strb r0, [r2] + cmp r0, #0 + bne _08033238 + movs r3, #1 + ldrb r0, [r5, #0x15] + lsrs r6, r0, #1 +_08033238: + cmp r3, #0 + beq _08033278 + adds r0, r5, #0 + movs r1, #2 + movs r2, #0x40 + bl sub_080A29AC + adds r4, r0, #0 + cmp r4, #0 + beq _08033278 + ldr r2, _0803327C @ =gUnk_080CEA56 + adds r2, r6, r2 + adds r3, r5, #0 + adds r3, #0x5a + ldrb r0, [r3] + movs r1, #0x20 + eors r0, r1 + strb r0, [r3] + movs r0, #0 + ldrsb r0, [r2, r0] + ldrh r1, [r4, #0x2e] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + movs r0, #1 + ldrsb r0, [r2, r0] + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + movs r0, #0x86 + lsls r0, r0, #1 + bl sub_08004488 +_08033278: + pop {r4, r5, r6, pc} + .align 2, 0 +_0803327C: .4byte gUnk_080CEA56 + + thumb_func_start sub_08033280 +sub_08033280: @ 0x08033280 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049F84 + adds r0, #2 + movs r1, #0x1c + ands r0, r1 + strb r0, [r4, #0x15] + lsrs r0, r0, #2 + ldrb r1, [r4, #0x14] + cmp r0, r1 + beq _080332A4 + strb r0, [r4, #0x14] + adds r1, r0, #4 + adds r0, r4, #0 + bl sub_08004260 +_080332A4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080332A8 +sub_080332A8: @ 0x080332A8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r6, [r4, #0x15] + adds r5, r4, #0 + adds r5, #0x81 + ldrb r0, [r5] + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 + ldrb r0, [r4, #0x15] + strb r0, [r5] + strb r6, [r4, #0x15] + ldrb r0, [r5] + adds r0, #2 + movs r1, #0x1c + ands r0, r1 + asrs r6, r0, #2 + ldrb r0, [r4, #0x14] + cmp r6, r0 + beq _080332E4 + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_080332E8 +_080332E4: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080332E8 +sub_080332E8: @ 0x080332E8 + push {r4, lr} + adds r4, r0, #0 + adds r3, r4, #0 + adds r3, #0x82 + movs r0, #0 + strb r0, [r3] + ldrb r0, [r4, #0x14] + subs r2, r1, r0 + cmp r2, #0 + ble _08033304 + cmp r2, #4 + bgt _08033310 + movs r0, #1 + b _08033312 +_08033304: + movs r0, #4 + rsbs r0, r0, #0 + cmp r2, r0 + bge _08033310 + movs r0, #1 + b _08033312 +_08033310: + movs r0, #2 +_08033312: + strb r0, [r3] + strb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 + pop {r4, pc} + + thumb_func_start sub_08033320 +sub_08033320: @ 0x08033320 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x14] + lsls r5, r0, #2 + movs r0, #4 + ands r0, r5 + cmp r0, #0 + beq _08033360 + adds r0, r4, #0 + adds r0, #0x82 + ldrb r0, [r0] + movs r1, #3 + ands r1, r0 + cmp r1, #1 + beq _08033350 + cmp r1, #2 + beq _08033354 + bl sub_08000E50 + movs r1, #0x10 + ands r1, r0 + movs r0, #0x1c + cmp r1, #0 + beq _08033356 +_08033350: + movs r0, #4 + b _08033356 +_08033354: + movs r0, #0x1c +_08033356: + adds r0, r0, r5 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + b _08033362 +_08033360: + strb r5, [r4, #0x15] +_08033362: + pop {r4, r5, pc} + + thumb_func_start sub_08033364 +sub_08033364: @ 0x08033364 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + bl sub_08049DF4 + adds r1, r0, #0 + cmp r1, #0 + beq _080333B4 + ldrb r0, [r4, #0xa] + movs r3, #0x38 + cmp r0, #0 + beq _0803337E + movs r3, #0x48 +_0803337E: + adds r0, r4, #0 + adds r2, r3, #0 + bl sub_080041A0 + cmp r0, #0 + beq _080333B4 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080333AA + ldr r0, _080333B0 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + adds r1, #2 + movs r0, #0x1c + ands r1, r0 + lsrs r1, r1, #2 + ldrb r0, [r4, #0x14] + cmp r0, r1 + bne _080333B4 +_080333AA: + movs r0, #1 + b _080333B6 + .align 2, 0 +_080333B0: .4byte gUnk_020000B0 +_080333B4: + movs r0, #0 +_080333B6: + pop {r4, pc} + + thumb_func_start sub_080333B8 +sub_080333B8: @ 0x080333B8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080333D0 @ =gUnk_080CEB38 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080333D0: .4byte gUnk_080CEB38 + + thumb_func_start sub_080333D4 +sub_080333D4: @ 0x080333D4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0803340E + movs r0, #1 + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r1, #0xf + ands r0, r1 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _0803340E + bl sub_0804B128 + str r0, [r4, #0x54] + adds r1, r4, #0 + adds r1, #0x54 + adds r2, r4, #0 + adds r2, #0x76 + adds r0, r4, #0 + bl sub_080A2CC0 +_0803340E: + ldr r2, _08033444 @ =gUnk_080CEB50 + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1c + movs r1, #7 + ands r0, r1 + ldrb r1, [r4, #0xb] + lsls r1, r1, #3 + adds r0, r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _08033440 + adds r0, r4, #0 + bl sub_0803350C +_08033440: + pop {r4, pc} + .align 2, 0 +_08033444: .4byte gUnk_080CEB50 + + thumb_func_start sub_08033448 +sub_08033448: @ 0x08033448 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + subs r0, #1 + cmp r0, #0x1d + bhi _080334E0 + lsls r0, r0, #2 + ldr r1, _08033464 @ =_08033468 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08033464: .4byte _08033468 +_08033468: @ jump table + .4byte _080334FA @ case 0 + .4byte _080334E0 @ case 1 + .4byte _080334E0 @ case 2 + .4byte _080334E0 @ case 3 + .4byte _080334E0 @ case 4 + .4byte _080334E0 @ case 5 + .4byte _080334E0 @ case 6 + .4byte _080334E0 @ case 7 + .4byte _080334E0 @ case 8 + .4byte _080334E0 @ case 9 + .4byte _080334E0 @ case 10 + .4byte _080334E0 @ case 11 + .4byte _080334E0 @ case 12 + .4byte _080334E0 @ case 13 + .4byte _080334FA @ case 14 + .4byte _080334E0 @ case 15 + .4byte _080334E0 @ case 16 + .4byte _080334E0 @ case 17 + .4byte _080334FA @ case 18 + .4byte _080334E0 @ case 19 + .4byte _080334E0 @ case 20 + .4byte _080334E0 @ case 21 + .4byte _080334E0 @ case 22 + .4byte _080334E0 @ case 23 + .4byte _080334E0 @ case 24 + .4byte _080334E0 @ case 25 + .4byte _080334FA @ case 26 + .4byte _080334E0 @ case 27 + .4byte _080334FA @ case 28 + .4byte _080334FA @ case 29 +_080334E0: + movs r0, #0x20 + movs r1, #0 + movs r2, #0 + bl sub_080A2960 + adds r1, r0, #0 + cmp r1, #0 + beq _080334F6 + adds r0, r4, #0 + bl sub_0806FA24 +_080334F6: + bl sub_0805E780 +_080334FA: + ldr r1, _08033504 @ =gUnk_080CEB38 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_08033504: .4byte gUnk_080CEB38 + + thumb_func_start nullsub_158 +nullsub_158: @ 0x08033508 + bx lr + .align 2, 0 + + thumb_func_start sub_0803350C +sub_0803350C: @ 0x0803350C + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x15] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08033520 + adds r0, r4, #0 + bl sub_0806F69C +_08033520: + adds r2, r4, #0 + adds r2, #0x76 + ldrh r0, [r2] + subs r0, #1 + strh r0, [r2] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0803353A + adds r1, r4, #0 + adds r1, #0x54 + adds r0, r4, #0 + bl sub_080A2CC0 +_0803353A: + pop {r4, pc} + + thumb_func_start sub_0803353C +sub_0803353C: @ 0x0803353C + push {lr} + ldr r1, _08033548 @ =gUnk_080CEB74 + bl sub_0800129E + pop {pc} + .align 2, 0 +_08033548: .4byte gUnk_080CEB74 + + thumb_func_start sub_0803354C +sub_0803354C: @ 0x0803354C + push {lr} + ldr r2, _08033560 @ =gUnk_080CEB8C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08033560: .4byte gUnk_080CEB8C + + thumb_func_start sub_08033564 +sub_08033564: @ 0x08033564 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08033628 + movs r0, #0x3f + ands r0, r1 + cmp r0, #0xe + beq _080335E4 + cmp r0, #0xe + bgt _08033586 + cmp r0, #0 + beq _08033590 + b _08033628 +_08033586: + cmp r0, #0x14 + beq _080335EE + cmp r0, #0x15 + beq _080335E4 + b _08033628 +_08033590: + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #6 + ands r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x7c + movs r0, #0x9f + lsls r0, r0, #2 + strh r0, [r1] + ldr r2, _080335DC @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #7 + orrs r0, r1 + str r0, [r2, #0x30] + ldr r1, _080335E0 @ =gUnk_02002A40 + ldrb r2, [r4, #0xa] + adds r0, r2, #1 + adds r3, r1, #0 + adds r3, #0xba + strb r0, [r3] + adds r1, #0xc8 + movs r0, #0x96 + lsls r0, r0, #2 + strh r0, [r1] + lsls r2, r2, #0x18 + cmp r2, #0 + beq _08033628 + bl sub_0805E780 + b _08033628 + .align 2, 0 +_080335DC: .4byte gUnk_03003F80 +_080335E0: .4byte gUnk_02002A40 +_080335E4: + adds r1, r4, #0 + adds r1, #0x45 + movs r0, #0 + strb r0, [r1] + b _08033628 +_080335EE: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + movs r1, #0 + strb r0, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x3d + strb r1, [r0] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl sub_080A29AC + adds r1, r0, #0 + cmp r1, #0 + beq _08033624 + str r1, [r4, #0x54] + movs r0, #0xe + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_0806FA24 +_08033624: + bl sub_0805E780 +_08033628: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803362C +sub_0803362C: @ 0x0803362C + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F520 + cmp r0, #0 + beq _08033648 + ldr r0, _0803364C @ =gUnk_080CEB98 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_08033648: + pop {r4, pc} + .align 2, 0 +_0803364C: .4byte gUnk_080CEB98 + + thumb_func_start sub_08033650 +sub_08033650: @ 0x08033650 + movs r1, #2 + strb r1, [r0, #0xd] + bx lr + .align 2, 0 + + thumb_func_start sub_08033658 +sub_08033658: @ 0x08033658 + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_08033660 +sub_08033660: @ 0x08033660 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _08033672 + adds r0, r4, #0 + bl sub_0804A7D4 +_08033672: + pop {r4, pc} + + thumb_func_start sub_08033674 +sub_08033674: @ 0x08033674 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r0, #0 + strb r0, [r4, #0xe] + movs r0, #1 + strb r0, [r4, #0xc] + strb r0, [r4, #0x1c] + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x80 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x82 + strh r0, [r1] + adds r0, r4, #0 + bl sub_08033744 + ldrb r1, [r4, #0xb] + adds r0, r4, #0 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080336A8 +sub_080336A8: @ 0x080336A8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080336C0 + adds r0, r4, #0 + bl sub_08033744 + b _080336CE +_080336C0: + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _080336CE + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_0800417E +_080336CE: + adds r0, r4, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_080336DC +sub_080336DC: @ 0x080336DC + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x7c + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xc + beq _0803371E + cmp r0, #0xc + bgt _080336FC + cmp r0, #0 + beq _0803372E + b _08033740 +_080336FC: + cmp r0, #0x18 + beq _08033716 + cmp r0, #0x24 + bne _08033740 + adds r0, r2, #0 + adds r0, #0x80 + ldrh r0, [r0] + strh r0, [r2, #0x2e] + adds r0, r2, #0 + adds r0, #0x82 + ldrh r0, [r0] + strh r0, [r2, #0x32] + b _08033740 +_08033716: + adds r0, r2, #0 + bl sub_080A29BC + b _08033740 +_0803371E: + ldrb r0, [r2, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r2, #0x18] + b _08033740 +_0803372E: + movs r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + adds r0, r2, #0 + bl sub_08033744 +_08033740: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08033744 +sub_08033744: @ 0x08033744 + push {r4, r5, r6, lr} + adds r6, r0, #0 + bl sub_08000E50 + adds r5, r0, #0 + movs r0, #0xff + ands r5, r0 + ldr r1, _0803378C @ =gUnk_080CEBA4 + movs r0, #0x70 + ands r0, r5 + lsrs r0, r0, #4 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r6, #0xe] + movs r0, #0xc + ands r0, r5 + lsls r4, r0, #1 + adds r0, r6, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _08033796 + movs r0, #3 + ands r0, r5 + cmp r0, #0 + beq _08033796 + adds r0, r6, #0 + bl sub_08049EE4 + adds r4, r0, #0 + movs r0, #0x80 + ands r5, r0 + cmp r5, #0 + beq _08033790 + adds r4, #4 + b _08033792 + .align 2, 0 +_0803378C: .4byte gUnk_080CEBA4 +_08033790: + adds r4, #0x1c +_08033792: + movs r0, #0x18 + ands r4, r0 +_08033796: + strb r4, [r6, #0x15] + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0803379C +sub_0803379C: @ 0x0803379C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080337B8 @ =gUnk_080CEBEC + bl sub_0800129E + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, pc} + .align 2, 0 +_080337B8: .4byte gUnk_080CEBEC + + thumb_func_start sub_080337BC +sub_080337BC: @ 0x080337BC + push {lr} + ldr r2, _080337D0 @ =gUnk_080CEC04 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080337D0: .4byte gUnk_080CEC04 + + thumb_func_start sub_080337D4 +sub_080337D4: @ 0x080337D4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _080337E8 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_080337E8: + ldr r1, _08033868 @ =gUnk_080CEBEC + adds r0, r4, #0 + bl sub_0804AA30 + adds r2, r4, #0 + adds r2, #0x41 + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + adds r5, r2, #0 + cmp r0, #0 + beq _08033864 + adds r0, r4, #0 + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + ble _0803381A + ldr r0, [r4, #0x54] + cmp r0, #0 + beq _0803381A + adds r0, r4, #0 + bl sub_08033E1C +_0803381A: + ldrb r1, [r5] + movs r0, #0x3f + ands r0, r1 + cmp r0, #0x14 + bne _08033864 + ldrb r0, [r4, #0xc] + cmp r0, #5 + beq _08033864 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x5a + strb r0, [r4, #0xe] + movs r0, #0x10 + strb r0, [r4, #0xf] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0x49 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_08033D78 + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 +_08033864: + pop {r4, r5, pc} + .align 2, 0 +_08033868: .4byte gUnk_080CEBEC + + thumb_func_start nullsub_159 +nullsub_159: @ 0x0803386C + bx lr + .align 2, 0 + + thumb_func_start sub_08033870 +sub_08033870: @ 0x08033870 + push {r4, lr} + adds r4, r0, #0 + bl sub_08001242 + ldrb r0, [r4, #0xc] + cmp r0, #5 + beq _0803388E + adds r0, r4, #0 + bl sub_08033DF0 + cmp r0, #0 + beq _0803388E + adds r0, r4, #0 + bl sub_08033E1C +_0803388E: + pop {r4, pc} + + thumb_func_start sub_08033890 +sub_08033890: @ 0x08033890 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r1, #0 + movs r0, #1 + strb r0, [r6, #0xc] + strb r1, [r6, #0xe] + strb r1, [r6, #0xf] + ldr r0, [r6, #0x2c] + ldr r3, _0803394C @ =0xFFF00000 + ands r0, r3 + movs r2, #0x80 + lsls r2, r2, #0xc + orrs r0, r2 + str r0, [r6, #0x7c] + adds r4, r6, #0 + adds r4, #0x80 + ldr r0, [r6, #0x30] + ands r0, r3 + orrs r0, r2 + str r0, [r4] + ldr r0, [r6, #0x7c] + str r0, [r6, #0x2c] + ldr r0, [r4] + str r0, [r6, #0x30] + adds r0, r6, #0 + adds r0, #0x79 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + subs r0, #2 + strb r1, [r0] + adds r0, #3 + strb r1, [r0] + movs r0, #0x2e + ldrsh r1, [r6, r0] + ldr r2, _08033950 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r4, #0x32 + ldrsh r0, [r6, r4] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r4, r6, #0 + adds r4, #0x74 + strh r1, [r4] + ldrh r0, [r4] + adds r5, r6, #0 + adds r5, #0x38 + ldrb r1, [r5] + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x76 + strh r0, [r1] + ldr r0, _08033954 @ =0x00004022 + ldrh r1, [r4] + ldrb r2, [r5] + bl sub_0800015E + ldrb r1, [r6, #0xa] + movs r0, #0x7d + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + bne _08033928 + bl sub_0805E780 +_08033928: + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0806FA24 + str r4, [r6, #0x54] + str r6, [r4, #0x50] + ldrb r0, [r6, #0xa] + cmp r0, #1 + bne _08033940 + adds r0, r6, #0 + bl sub_08033EA8 +_08033940: + adds r0, r6, #0 + movs r1, #0 + bl sub_08004260 + pop {r4, r5, r6, pc} + .align 2, 0 +_0803394C: .4byte 0xFFF00000 +_08033950: .4byte gUnk_03000BF0 +_08033954: .4byte 0x00004022 + + thumb_func_start sub_08033958 +sub_08033958: @ 0x08033958 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08033DF0 + cmp r0, #0 + beq _08033982 + adds r0, r4, #0 + bl sub_08033E1C + adds r0, r4, #0 + adds r0, #0x76 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x74 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0807B9B8 + b _08033A72 +_08033982: + adds r1, r4, #0 + adds r1, #0x7b + ldrb r0, [r1] + cmp r0, #0 + beq _08033992 + subs r0, #1 + strb r0, [r1] + b _08033A72 +_08033992: + ldr r0, [r4, #0x7c] + str r0, [r4, #0x2c] + adds r0, r4, #0 + adds r0, #0x80 + ldr r0, [r0] + str r0, [r4, #0x30] + adds r0, r4, #0 + movs r1, #1 + movs r2, #0x10 + bl sub_0804A024 + adds r5, r0, #0 + cmp r5, #0x10 + beq _080339E0 + cmp r5, #0x10 + bhi _080339BC + cmp r5, #0 + beq _080339C6 + cmp r5, #8 + beq _080339F0 + b _08033A10 +_080339BC: + cmp r5, #0x18 + beq _08033A00 + cmp r5, #0xff + bne _08033A10 + b _08033A72 +_080339C6: + adds r0, r4, #0 + adds r0, #0x78 + ldrb r0, [r0] + cmp r0, #0 + beq _08033A72 + movs r1, #0x32 + ldrsh r0, [r4, r1] + ldr r1, _080339DC @ =gUnk_03001160 + movs r2, #0x32 + ldrsh r1, [r1, r2] + b _08033A0A + .align 2, 0 +_080339DC: .4byte gUnk_03001160 +_080339E0: + ldr r0, _080339EC @ =gUnk_03001160 + movs r1, #0x32 + ldrsh r0, [r0, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + b _08033A0A + .align 2, 0 +_080339EC: .4byte gUnk_03001160 +_080339F0: + ldr r0, _080339FC @ =gUnk_03001160 + movs r1, #0x2e + ldrsh r0, [r0, r1] + movs r2, #0x2e + ldrsh r1, [r4, r2] + b _08033A0A + .align 2, 0 +_080339FC: .4byte gUnk_03001160 +_08033A00: + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r1, _08033A74 @ =gUnk_03001160 + movs r2, #0x2e + ldrsh r1, [r1, r2] +_08033A0A: + subs r0, r0, r1 + cmp r0, #0x30 + bgt _08033A72 +_08033A10: + ldr r0, [r4, #0x54] + cmp r0, #0 + beq _08033A1E + bl sub_0806F520 + cmp r0, #0 + bne _08033A72 +_08033A1E: + adds r1, r4, #0 + adds r1, #0x78 + ldrb r0, [r1] + cmp r0, #0 + bne _08033A2C + movs r0, #1 + strb r0, [r1] +_08033A2C: + movs r0, #2 + strb r0, [r4, #0xc] + strb r5, [r4, #0x15] + ldrb r1, [r4, #0x18] + subs r0, #6 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldr r0, [r4, #0x30] + ldr r1, _08033A78 @ =0xFFF00000 + ands r0, r1 + movs r1, #0xc0 + lsls r1, r1, #0xc + orrs r0, r1 + str r0, [r4, #0x30] + adds r0, r4, #0 + adds r0, #0x76 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x74 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0807B9B8 + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 +_08033A72: + pop {r4, r5, pc} + .align 2, 0 +_08033A74: .4byte gUnk_03001160 +_08033A78: .4byte 0xFFF00000 + + thumb_func_start sub_08033A7C +sub_08033A7C: @ 0x08033A7C + push {r4, lr} + adds r4, r0, #0 + bl sub_08033DF0 + cmp r0, #0 + beq _08033A90 + adds r0, r4, #0 + bl sub_08033E1C + b _08033AC8 +_08033A90: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08033AC8 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + movs r0, #0x20 + strb r0, [r4, #0xf] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0x59 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 +_08033AC8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08033ACC +sub_08033ACC: @ 0x08033ACC + push {r4, lr} + adds r4, r0, #0 + bl sub_08033DF0 + cmp r0, #0 + beq _08033AE0 + adds r0, r4, #0 + bl sub_08033E1C + b _08033B42 +_08033AE0: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _08033AF8 + subs r0, #1 + strb r0, [r4, #0xf] + b _08033B42 +_08033AF8: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08033B3C + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + ldr r2, [r4, #0x2c] + ldr r1, _08033B38 @ =0xFFF00000 + ands r2, r1 + movs r0, #0x80 + lsls r0, r0, #0xc + orrs r2, r0 + str r2, [r4, #0x2c] + ldr r0, [r4, #0x30] + ands r0, r1 + movs r1, #0xc0 + lsls r1, r1, #0xc + orrs r0, r1 + str r0, [r4, #0x30] + str r2, [r4, #0x7c] + adds r1, r4, #0 + adds r1, #0x80 + str r0, [r1] + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 + b _08033B42 + .align 2, 0 +_08033B38: .4byte 0xFFF00000 +_08033B3C: + adds r0, r4, #0 + bl sub_08033D78 +_08033B42: + pop {r4, pc} + + thumb_func_start sub_08033B44 +sub_08033B44: @ 0x08033B44 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + adds r4, r0, #0 + bl sub_08033DF0 + cmp r0, #0 + beq _08033B62 + adds r0, r4, #0 + bl sub_08033E1C + b _08033C82 +_08033B62: + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08033B76 + b _08033C82 +_08033B76: + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #0 + mov r8, r0 + adds r1, r4, #0 + adds r1, #0x80 + str r1, [sp, #4] + adds r6, r4, #0 + adds r6, #0x29 + adds r2, r4, #0 + adds r2, #0x7b + str r2, [sp] + adds r5, r4, #0 + adds r5, #0x74 + adds r3, r4, #0 + adds r3, #0x38 + str r3, [sp, #8] + movs r7, #0x76 + adds r7, r7, r4 + mov sl, r7 + ldr r0, _08033C20 @ =gUnk_03000BF0 + mov sb, r0 +_08033BB2: + ldr r1, [r4, #0x2c] + ldr r3, _08033C24 @ =0xFFF00000 + ands r1, r3 + movs r2, #0x80 + lsls r2, r2, #0xc + orrs r1, r2 + str r1, [r4, #0x2c] + ldr r0, [r4, #0x30] + ands r0, r3 + orrs r0, r2 + str r0, [r4, #0x30] + str r1, [r4, #0x7c] + ldr r1, [sp, #4] + str r0, [r1] + ldrb r0, [r6] + movs r2, #0x39 + rsbs r2, r2, #0 + adds r1, r2, #0 + ands r0, r1 + strb r0, [r6] + movs r0, #0x78 + ldr r3, [sp] + strb r0, [r3] + movs r7, #0x2e + ldrsh r2, [r4, r7] + mov r1, sb + ldrh r0, [r1, #6] + subs r2, r2, r0 + asrs r2, r2, #4 + movs r3, #0x3f + ands r2, r3 + movs r7, #0x32 + ldrsh r0, [r4, r7] + ldrh r1, [r1, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r2, r0 + strh r2, [r5] + ldrh r0, [r5] + ldr r2, [sp, #8] + ldrb r1, [r2] + bl sub_080001DA + mov r3, sl + strh r0, [r3] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r7, _08033C28 @ =0x00004022 + cmp r0, r7 + beq _08033C2C + movs r0, #1 + add r8, r0 + b _08033C68 + .align 2, 0 +_08033C20: .4byte gUnk_03000BF0 +_08033C24: .4byte 0xFFF00000 +_08033C28: .4byte 0x00004022 +_08033C2C: + ldrb r1, [r4, #0x15] + movs r0, #0x18 + ands r0, r1 + lsrs r0, r0, #2 + cmp r0, #2 + beq _08033C54 + cmp r0, #2 + bgt _08033C42 + cmp r0, #0 + beq _08033C4C + b _08033C68 +_08033C42: + cmp r0, #4 + beq _08033C5A + cmp r0, #6 + beq _08033C62 + b _08033C68 +_08033C4C: + ldrh r0, [r4, #0x32] + adds r0, #0x10 + strh r0, [r4, #0x32] + b _08033C68 +_08033C54: + ldrh r0, [r4, #0x2e] + subs r0, #0x10 + b _08033C66 +_08033C5A: + ldrh r0, [r4, #0x32] + subs r0, #0x10 + strh r0, [r4, #0x32] + b _08033C68 +_08033C62: + ldrh r0, [r4, #0x2e] + adds r0, #0x10 +_08033C66: + strh r0, [r4, #0x2e] +_08033C68: + mov r1, r8 + cmp r1, #0 + beq _08033BB2 + ldr r0, _08033C90 @ =0x00004022 + ldrh r1, [r5] + ldr r3, [sp, #8] + ldrb r2, [r3] + bl sub_0800015E + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_08033C82: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08033C90: .4byte 0x00004022 + + thumb_func_start sub_08033C94 +sub_08033C94: @ 0x08033C94 + push {r4, lr} + adds r4, r0, #0 + movs r1, #3 + bl sub_08004276 + adds r1, r4, #0 + adds r1, #0x79 + ldrb r0, [r1] + cmp r0, #1 + beq _08033CD2 + cmp r0, #1 + bgt _08033CB2 + cmp r0, #0 + beq _08033CB8 + b _08033D76 +_08033CB2: + cmp r0, #2 + beq _08033D18 + b _08033D76 +_08033CB8: + movs r0, #1 + strb r0, [r1] + ldrb r1, [r4, #0x18] + lsls r0, r1, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + beq _08033CD2 + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] +_08033CD2: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + bne _08033D76 + adds r1, r4, #0 + adds r1, #0x79 + movs r0, #2 + strb r0, [r1] + movs r0, #0x78 + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x63 + strb r2, [r0] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + adds r0, #0x14 + strb r0, [r4, #0x15] + bl sub_08000E50 + adds r1, r0, #0 + movs r0, #3 + ands r1, r0 + cmp r1, #0 + beq _08033D12 + cmp r1, #2 + beq _08033D68 + b _08033D6E +_08033D12: + ldrb r0, [r4, #0x15] + adds r0, #8 + b _08033D6C +_08033D18: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _08033D24 + subs r0, #1 + strb r0, [r4, #0xf] + b _08033D2A +_08033D24: + adds r0, r4, #0 + bl sub_08033D78 +_08033D2A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08033D76 + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x20 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + adds r0, #0x14 + strb r0, [r4, #0x15] + bl sub_08000E50 + adds r1, r0, #0 + movs r0, #3 + ands r1, r0 + cmp r1, #1 + beq _08033D62 + cmp r1, #3 + beq _08033D68 + b _08033D6E +_08033D62: + ldrb r0, [r4, #0x15] + adds r0, #8 + b _08033D6C +_08033D68: + ldrb r0, [r4, #0x15] + adds r0, #0x18 +_08033D6C: + strb r0, [r4, #0x15] +_08033D6E: + ldrb r1, [r4, #0x15] + movs r0, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] +_08033D76: + pop {r4, pc} + + thumb_func_start sub_08033D78 +sub_08033D78: @ 0x08033D78 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldrb r0, [r6, #0x15] + movs r2, #0x18 + ands r2, r0 + lsrs r2, r2, #2 + ldr r0, _08033DE4 @ =gUnk_080CEC1C + adds r2, r2, r0 + movs r1, #0x2e + ldrsh r0, [r6, r1] + movs r1, #0 + ldrsb r1, [r2, r1] + adds r0, r0, r1 + ldr r4, _08033DE8 @ =gUnk_03000BF0 + ldrh r1, [r4, #6] + subs r0, r0, r1 + asrs r5, r0, #4 + movs r3, #0x3f + ands r5, r3 + movs r1, #0x32 + ldrsh r0, [r6, r1] + movs r1, #1 + ldrsb r1, [r2, r1] + adds r0, r0, r1 + ldrh r1, [r4, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r5, r0 + adds r4, r6, #0 + adds r4, #0x38 + ldrb r1, [r4] + adds r0, r5, #0 + bl sub_080002B0 + adds r1, r0, #0 + ldr r0, _08033DEC @ =0x000001C5 + cmp r1, r0 + bhi _08033DCE + subs r0, #1 + cmp r1, r0 + bhs _08033DE2 +_08033DCE: + ldrb r1, [r4] + adds r0, r5, #0 + bl sub_080002E0 + subs r0, #1 + cmp r0, #0x3e + bls _08033DE2 + adds r0, r6, #0 + bl sub_080AEF88 +_08033DE2: + pop {r4, r5, r6, pc} + .align 2, 0 +_08033DE4: .4byte gUnk_080CEC1C +_08033DE8: .4byte gUnk_03000BF0 +_08033DEC: .4byte 0x000001C5 + + thumb_func_start sub_08033DF0 +sub_08033DF0: @ 0x08033DF0 + push {lr} + movs r2, #0 + ldr r1, [r0, #0x54] + cmp r1, #0 + beq _08033E16 + ldrb r0, [r1, #0xc] + cmp r0, #3 + beq _08033E10 + cmp r0, #3 + bgt _08033E0A + cmp r0, #2 + beq _08033E16 + b _08033E18 +_08033E0A: + cmp r0, #4 + bne _08033E18 + b _08033E16 +_08033E10: + ldrb r0, [r1, #0xd] + cmp r0, #1 + bls _08033E18 +_08033E16: + movs r2, #1 +_08033E18: + adds r0, r2, #0 + pop {pc} + + thumb_func_start sub_08033E1C +sub_08033E1C: @ 0x08033E1C + push {r4, lr} + adds r4, r0, #0 + movs r2, #0 + movs r3, #5 + movs r0, #5 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x79 + strb r2, [r0] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r0, #0x29 + adds r0, r0, r4 + mov ip, r0 + ldrb r1, [r0] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r3 + mov r1, ip + strb r0, [r1] + ldr r0, [r4, #0x30] + ldr r1, _08033EA4 @ =0xFFF00000 + ands r0, r1 + movs r1, #0xc0 + lsls r1, r1, #0xc + orrs r0, r1 + str r0, [r4, #0x30] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x19 + strb r0, [r1] + mov r0, ip + ldrb r1, [r0] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + movs r0, #0x30 + strb r0, [r4, #0xe] + strb r2, [r4, #0xf] + adds r0, #0xd0 + strh r0, [r4, #0x24] + str r2, [r4, #0x54] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 + movs r2, #0xc + rsbs r2, r2, #0 + adds r0, r4, #0 + movs r1, #0xa + bl sub_080A2CFC + pop {r4, pc} + .align 2, 0 +_08033EA4: .4byte 0xFFF00000 + + thumb_func_start sub_08033EA8 +sub_08033EA8: @ 0x08033EA8 + push {lr} + adds r2, r0, #0 + ldr r0, _08033EC4 @ =gUnk_03003F80 + adds r0, #0xac + ldrh r1, [r0] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _08033EC8 + adds r1, r2, #0 + adds r1, #0x3f + movs r0, #0x95 + b _08033ECE + .align 2, 0 +_08033EC4: .4byte gUnk_03003F80 +_08033EC8: + adds r1, r2, #0 + adds r1, #0x3f + movs r0, #0x63 +_08033ECE: + strb r0, [r1] + pop {pc} + .align 2, 0 + + thumb_func_start sub_08033ED4 +sub_08033ED4: @ 0x08033ED4 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _08033EEC @ =gUnk_080CEC88 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_08033EEC: .4byte gUnk_080CEC88 + + thumb_func_start sub_08033EF0 +sub_08033EF0: @ 0x08033EF0 + push {lr} + ldr r2, _08033F04 @ =gUnk_080CECA0 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08033F04: .4byte gUnk_080CECA0 + + thumb_func_start sub_08033F08 +sub_08033F08: @ 0x08033F08 + push {lr} + ldr r1, _08033F14 @ =gUnk_080CEC88 + bl sub_0804AA30 + pop {pc} + .align 2, 0 +_08033F14: .4byte gUnk_080CEC88 + + thumb_func_start nullsub_160 +nullsub_160: @ 0x08033F18 + bx lr + .align 2, 0 + + thumb_func_start sub_08033F1C +sub_08033F1C: @ 0x08033F1C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08033F38 @ =gUnk_080CECB4 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0803499C + pop {r4, pc} + .align 2, 0 +_08033F38: .4byte gUnk_080CECB4 + + thumb_func_start sub_08033F3C +sub_08033F3C: @ 0x08033F3C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _08033F64 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x42 + bhi _08033FFA + ldr r0, _08033F68 @ =gUnk_030010A0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #0 + beq _08033F6C + adds r0, r4, #0 + bl sub_08034420 + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #1 + strb r0, [r1] + b _08033F70 + .align 2, 0 +_08033F64: .4byte gUnk_03003DBC +_08033F68: .4byte gUnk_030010A0 +_08033F6C: + movs r0, #1 + strb r0, [r4, #0xc] +_08033F70: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r3, r4, #0 + adds r3, #0x6d + ldrb r0, [r3] + movs r2, #0 + orrs r1, r0 + strb r1, [r3] + adds r0, r4, #0 + adds r0, #0x80 + strb r2, [r0] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + movs r0, #0x36 + movs r1, #1 + bl sub_0804AA60 + adds r5, r0, #0 + str r4, [r5, #0x50] + movs r0, #0x7e + movs r1, #0 + movs r2, #0 + bl sub_080A2960 + str r4, [r0, #0x50] + ldr r0, _08033FD0 @ =gUnk_030010A0 + adds r0, #0x39 + ldrb r1, [r0] + cmp r1, #0 + bne _08033FD4 + movs r0, #0xd + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + movs r0, #0xfc + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + b _08033FFA + .align 2, 0 +_08033FD0: .4byte gUnk_030010A0 +_08033FD4: + movs r0, #0x44 + movs r1, #0 + bl sub_0804AA60 + str r4, [r0, #0x50] + str r4, [r0, #0x78] + str r0, [r4, #0x74] + movs r0, #0x44 + movs r1, #1 + bl sub_0804AA60 + str r4, [r0, #0x50] + str r5, [r0, #0x78] + str r0, [r4, #0x78] + movs r0, #0x36 + movs r1, #4 + bl sub_0804AA60 + str r4, [r0, #0x50] +_08033FFA: + pop {r4, r5, pc} + + thumb_func_start sub_08033FFC +sub_08033FFC: @ 0x08033FFC + push {r4, lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xd] + cmp r0, #7 + bls _08034008 + b _08034114 +_08034008: + lsls r0, r0, #2 + ldr r1, _08034014 @ =_08034018 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08034014: .4byte _08034018 +_08034018: @ jump table + .4byte _0803413E @ case 0 + .4byte _08034038 @ case 1 + .4byte _0803413E @ case 2 + .4byte _08034056 @ case 3 + .4byte _08034068 @ case 4 + .4byte _0803413E @ case 5 + .4byte _08034090 @ case 6 + .4byte _080340C4 @ case 7 +_08034038: + movs r0, #2 + strb r0, [r3, #0xd] + movs r0, #0x1e + strb r0, [r3, #0xe] + ldr r0, [r3, #0x74] + ldr r2, [r0, #0x74] + movs r1, #1 + strb r1, [r2, #0xd] + ldr r0, [r3, #0x78] + ldr r2, [r0, #0x74] + strb r1, [r2, #0xd] + adds r0, r3, #0 + bl sub_0801D230 + b _0803413E +_08034056: + ldrb r0, [r3, #0xe] + subs r0, #1 + strb r0, [r3, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803413E + movs r0, #4 + strb r0, [r3, #0xd] + b _0803413E +_08034068: + ldr r0, [r3, #0x34] + ldr r1, _0803408C @ =0xFFFF8000 + adds r0, r0, r1 + str r0, [r3, #0x34] + movs r0, #0x36 + ldrsh r1, [r3, r0] + movs r0, #0xa + rsbs r0, r0, #0 + cmp r1, r0 + bne _0803413E + movs r0, #5 + strb r0, [r3, #0xd] + adds r1, r3, #0 + adds r1, #0x81 + movs r0, #1 + strb r0, [r1] + b _0803413E + .align 2, 0 +_0803408C: .4byte 0xFFFF8000 +_08034090: + movs r1, #0 + movs r0, #7 + strb r0, [r3, #0xd] + strb r1, [r3, #0xe] + ldr r2, [r3, #0x74] + movs r1, #1 + strb r1, [r2, #0xd] + ldr r2, [r2, #0x74] + movs r0, #4 + strb r0, [r2, #0xd] + ldr r2, [r3, #0x78] + strb r1, [r2, #0xd] + ldr r2, [r2, #0x74] + strb r0, [r2, #0xd] + ldr r1, _080340C0 @ =gUnk_03000F50 + adds r2, r1, #0 + adds r2, #0x66 + movs r0, #0xf4 + lsls r0, r0, #4 + strh r0, [r2] + adds r1, #0x68 + adds r0, #0xc0 + strh r0, [r1] + b _0803413E + .align 2, 0 +_080340C0: .4byte gUnk_03000F50 +_080340C4: + ldrb r1, [r3, #0xe] + adds r1, #1 + strb r1, [r3, #0xe] + lsls r2, r1, #0x18 + lsrs r2, r2, #0x19 + ldr r4, _08034110 @ =gUnk_03000F50 + movs r0, #0x10 + subs r0, r0, r2 + lsls r0, r0, #8 + orrs r2, r0 + adds r0, r4, #0 + adds r0, #0x68 + strh r2, [r0] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #0x1f + bls _0803413E + movs r0, #8 + strb r0, [r3, #0xd] + ldr r2, [r3, #0x74] + movs r1, #3 + strb r1, [r2, #0xd] + ldr r2, [r2, #0x74] + movs r0, #6 + strb r0, [r2, #0xd] + ldr r2, [r3, #0x78] + strb r1, [r2, #0xd] + ldr r2, [r2, #0x74] + strb r0, [r2, #0xd] + ldrb r1, [r3, #0x19] + subs r0, #0x13 + ands r0, r1 + strb r0, [r3, #0x19] + adds r1, r4, #0 + adds r1, #0x66 + movs r0, #0 + strh r0, [r1] + b _0803413E + .align 2, 0 +_08034110: .4byte gUnk_03000F50 +_08034114: + ldr r0, [r3, #0x74] + ldrb r1, [r0, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803413E + ldr r1, _08034140 @ =gUnk_03000BF0 + ldr r0, _08034144 @ =gUnk_03001160 + str r0, [r1, #0x30] + adds r0, r3, #0 + bl sub_08034420 + ldr r0, _08034148 @ =gUnk_03003F80 + adds r0, #0x8b + movs r1, #1 + strb r1, [r0] + bl sub_080791D0 + movs r0, #0x2e + bl sub_080A3268 +_0803413E: + pop {r4, pc} + .align 2, 0 +_08034140: .4byte gUnk_03000BF0 +_08034144: .4byte gUnk_03001160 +_08034148: .4byte gUnk_03003F80 + + thumb_func_start sub_0803414C +sub_0803414C: @ 0x0803414C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r1, _08034194 @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + adds r2, r0, #0 + adds r2, #0xb8 + ldrh r0, [r1, #8] + adds r3, r0, #0 + adds r3, #0x48 + movs r1, #0x2e + ldrsh r0, [r4, r1] + subs r0, r0, r2 + adds r0, #1 + cmp r0, #2 + bhi _080341A2 + movs r5, #0x32 + ldrsh r0, [r4, r5] + subs r0, r0, r3 + adds r0, #1 + cmp r0, #2 + bhi _080341A2 + adds r0, r4, #0 + bl sub_080349D8 + cmp r0, #0 + beq _080341B6 + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _08034198 + movs r0, #0 + strb r0, [r4, #0xd] + adds r0, r4, #0 + movs r1, #0x1e + bl sub_0803442C + b _080341B6 + .align 2, 0 +_08034194: .4byte gUnk_03000BF0 +_08034198: + adds r0, r4, #0 + movs r1, #0x5a + bl sub_0803442C + b _080341B6 +_080341A2: + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r5, #0x32 + ldrsh r1, [r4, r5] + bl sub_080045D4 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F69C +_080341B6: + pop {r4, r5, pc} + + thumb_func_start sub_080341B8 +sub_080341B8: @ 0x080341B8 + push {r4, lr} + adds r4, r0, #0 + bl sub_080349D8 + cmp r0, #0 + beq _080341CC + adds r0, r4, #0 + movs r1, #0x2d + bl sub_0803442C +_080341CC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080341D0 +sub_080341D0: @ 0x080341D0 + push {lr} + adds r2, r0, #0 + adds r0, #0x80 + ldrb r1, [r0] + movs r0, #3 + ands r0, r1 + cmp r0, #3 + beq _080341F2 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080341F2 + adds r0, r2, #0 + bl sub_0803443C +_080341F2: + pop {pc} + + thumb_func_start sub_080341F4 +sub_080341F4: @ 0x080341F4 + push {r4, lr} + adds r4, r0, #0 + bl sub_080347B4 + adds r0, r4, #0 + bl sub_080349D8 + cmp r0, #0 + beq _0803420C + adds r0, r4, #0 + bl sub_08034420 +_0803420C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08034210 +sub_08034210: @ 0x08034210 + push {r4, lr} + adds r4, r0, #0 + bl sub_080347B4 + adds r0, r4, #0 + adds r0, #0x7d + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08034238 + adds r0, r4, #0 + bl sub_080349D8 + cmp r0, #0 + beq _08034238 + adds r0, r4, #0 + bl sub_08034420 + b _0803423E +_08034238: + adds r0, r4, #0 + bl sub_08034830 +_0803423E: + pop {r4, pc} + + thumb_func_start sub_08034240 +sub_08034240: @ 0x08034240 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7e + ldrh r0, [r1] + cmp r0, #0 + beq _08034260 + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x95 + bhi _08034260 + adds r0, r4, #0 + bl sub_0803473C +_08034260: + adds r0, r4, #0 + bl sub_080349D8 + cmp r0, #0 + beq _08034270 + adds r0, r4, #0 + bl sub_08034420 +_08034270: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08034274 +sub_08034274: @ 0x08034274 + push {r4, lr} + adds r4, r0, #0 + bl sub_080349D8 + cmp r0, #0 + beq _08034288 + adds r0, r4, #0 + bl sub_08034420 + b _0803429E +_08034288: + adds r0, r4, #0 + bl sub_0803473C + adds r0, r4, #0 + bl sub_08034A10 + cmp r0, #0 + beq _0803429E + adds r0, r4, #0 + bl sub_080347FC +_0803429E: + pop {r4, pc} + + thumb_func_start sub_080342A0 +sub_080342A0: @ 0x080342A0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080349D8 + cmp r0, #0 + beq _080342B2 + adds r0, r4, #0 + bl sub_08034420 +_080342B2: + pop {r4, pc} + + thumb_func_start sub_080342B4 +sub_080342B4: @ 0x080342B4 + push {lr} + adds r1, r0, #0 + adds r0, #0x7e + ldrh r0, [r0] + cmp r0, #0xff + bne _080342C6 + adds r0, r1, #0 + bl sub_08034420 +_080342C6: + pop {pc} + + thumb_func_start sub_080342C8 +sub_080342C8: @ 0x080342C8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + adds r1, r0, #0 + cmp r1, #0 + beq _08034304 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080342E4 + ldr r0, _080342FC @ =0x00000115 + bl sub_080A3268 +_080342E4: + ldr r2, _08034300 @ =gUnk_080CECEC + ldrb r0, [r4, #0xe] + lsrs r0, r0, #1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x62 + strb r1, [r0] + b _08034340 + .align 2, 0 +_080342FC: .4byte 0x00000115 +_08034300: .4byte gUnk_080CECEC +_08034304: + adds r0, r4, #0 + adds r0, #0x62 + strb r1, [r0] + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08034340 + movs r0, #0xc + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x7e + movs r1, #0 + movs r0, #0xe1 + lsls r0, r0, #3 + strh r0, [r2] + adds r0, r4, #0 + adds r0, #0x7d + strb r1, [r0] + adds r0, #4 + strb r1, [r0] + movs r0, #0x1e + movs r1, #0 + bl sub_08080964 + ldr r0, _08034344 @ =0x000001A1 + bl sub_080A3268 +_08034340: + pop {r4, pc} + .align 2, 0 +_08034344: .4byte 0x000001A1 + + thumb_func_start sub_08034348 +sub_08034348: @ 0x08034348 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7e + ldrh r0, [r1] + cmp r0, #0 + beq _0803435C + subs r0, #1 + strh r0, [r1] + b _08034388 +_0803435C: + ldrh r2, [r4, #0x36] + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #0xa + rsbs r0, r0, #0 + cmp r1, r0 + ble _08034370 + subs r0, r2, #1 + strh r0, [r4, #0x36] + b _08034388 +_08034370: + adds r0, r4, #0 + bl sub_080349D8 + cmp r0, #0 + beq _08034388 + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08034420 +_08034388: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803438C +sub_0803438C: @ 0x0803438C + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xe] + adds r1, r0, #0 + cmp r1, #0 + bne _080343A0 + adds r0, r5, #0 + adds r0, #0x45 + strb r1, [r0] + b _08034414 +_080343A0: + subs r2, r0, #1 + strb r2, [r5, #0xe] + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xc0 + bls _080343C4 + ldr r0, _080343C0 @ =gUnk_080CED06 + movs r1, #3 + ands r2, r1 + adds r0, r2, r0 + ldrb r1, [r0] + adds r0, r5, #0 + adds r0, #0x62 + strb r1, [r0] + b _08034414 + .align 2, 0 +_080343C0: .4byte gUnk_080CED06 +_080343C4: + movs r0, #0x1f + ands r2, r0 + cmp r2, #0 + bne _08034414 + ldr r4, _08034418 @ =gUnk_080CED02 + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + adds r1, r1, r4 + ldrb r1, [r1] + adds r0, r5, #0 + movs r2, #0 + bl sub_080A29AC + adds r2, r0, #0 + cmp r2, #0 + beq _08034414 + ldrb r1, [r5, #0xe] + lsrs r1, r1, #4 + ldr r0, _0803441C @ =gUnk_080CECF4 + adds r1, r1, r0 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r3, [r2, #0x2e] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + movs r0, #1 + ldrsb r0, [r1, r0] + ldrh r1, [r2, #0x32] + adds r0, r0, r1 + strh r0, [r2, #0x32] + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] +_08034414: + pop {r4, r5, pc} + .align 2, 0 +_08034418: .4byte gUnk_080CED02 +_0803441C: .4byte gUnk_080CECF4 + + thumb_func_start sub_08034420 +sub_08034420: @ 0x08034420 + movs r1, #2 + strb r1, [r0, #0xc] + adds r0, #0x7d + movs r1, #3 + strb r1, [r0] + bx lr + + thumb_func_start sub_0803442C +sub_0803442C: @ 0x0803442C + movs r2, #4 + strb r2, [r0, #0xc] + strb r1, [r0, #0xe] + adds r0, #0x7d + movs r1, #3 + strb r1, [r0] + bx lr + .align 2, 0 + + thumb_func_start sub_0803443C +sub_0803443C: @ 0x0803443C + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x7d + movs r0, #0 + strb r0, [r1] + ldr r0, _0803445C @ =gUnk_030010A0 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #0x1e + bhi _08034460 + adds r0, r2, #0 + bl sub_080344BC + b _08034472 + .align 2, 0 +_0803445C: .4byte gUnk_030010A0 +_08034460: + cmp r0, #0x3c + bhi _0803446C + adds r0, r2, #0 + bl sub_08034498 + b _08034472 +_0803446C: + adds r0, r2, #0 + bl sub_08034474 +_08034472: + pop {pc} + + thumb_func_start sub_08034474 +sub_08034474: @ 0x08034474 + push {r4, lr} + ldr r2, _08034494 @ =gUnk_080CED0C + adds r4, r0, #0 + adds r4, #0x7c + ldrb r1, [r4] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + ldrb r0, [r4] + adds r0, #1 + movs r1, #7 + ands r0, r1 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_08034494: .4byte gUnk_080CED0C + + thumb_func_start sub_08034498 +sub_08034498: @ 0x08034498 + push {r4, lr} + ldr r2, _080344B8 @ =gUnk_080CED2C + adds r4, r0, #0 + adds r4, #0x7c + ldrb r1, [r4] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + ldrb r0, [r4] + adds r0, #1 + movs r1, #7 + ands r0, r1 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_080344B8: .4byte gUnk_080CED2C + + thumb_func_start sub_080344BC +sub_080344BC: @ 0x080344BC + push {r4, lr} + ldr r2, _080344DC @ =gUnk_080CED4C + adds r4, r0, #0 + adds r4, #0x7c + ldrb r1, [r4] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + ldrb r0, [r4] + adds r0, #1 + movs r1, #7 + ands r0, r1 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_080344DC: .4byte gUnk_080CED4C + + thumb_func_start sub_080344E0 +sub_080344E0: @ 0x080344E0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x80 + ldrb r1, [r0] + movs r0, #5 + ands r0, r1 + cmp r0, #0 + beq _080344F8 + adds r0, r4, #0 + bl sub_080345A0 + b _0803451A +_080344F8: + movs r0, #0xa + ands r0, r1 + cmp r0, #0 + bne _0803450C + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _08034514 +_0803450C: + adds r0, r4, #0 + bl sub_080345B8 + b _0803451A +_08034514: + adds r0, r4, #0 + bl sub_080345A0 +_0803451A: + pop {r4, pc} + + thumb_func_start sub_0803451C +sub_0803451C: @ 0x0803451C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x80 + ldrb r1, [r0] + movs r0, #5 + ands r0, r1 + cmp r0, #0 + bne _08034548 + movs r0, #0xa + ands r0, r1 + cmp r0, #0 + beq _0803453C + adds r0, r4, #0 + bl sub_08034638 + b _08034556 +_0803453C: + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _08034550 +_08034548: + adds r0, r4, #0 + bl sub_08034618 + b _08034556 +_08034550: + adds r0, r4, #0 + bl sub_08034638 +_08034556: + pop {r4, pc} + + thumb_func_start sub_08034558 +sub_08034558: @ 0x08034558 + push {r4, lr} + adds r4, r0, #0 + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _08034570 + adds r0, r4, #0 + bl sub_08034658 + b _08034576 +_08034570: + adds r0, r4, #0 + bl sub_0803467C +_08034576: + pop {r4, pc} + + thumb_func_start sub_08034578 +sub_08034578: @ 0x08034578 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x7d + strb r1, [r0] + ldr r1, [r4, #0x74] + adds r0, r4, #0 + movs r2, #0 + bl sub_080348A4 + ldr r1, [r4, #0x78] + adds r0, r4, #0 + movs r2, #0 + bl sub_080348A4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080345A0 +sub_080345A0: @ 0x080345A0 + push {lr} + movs r1, #5 + strb r1, [r0, #0xc] + adds r2, r0, #0 + adds r2, #0x7d + movs r1, #1 + strb r1, [r2] + ldr r1, [r0, #0x78] + movs r2, #1 + bl sub_080348A4 + pop {pc} + + thumb_func_start sub_080345B8 +sub_080345B8: @ 0x080345B8 + push {lr} + movs r1, #5 + strb r1, [r0, #0xc] + adds r2, r0, #0 + adds r2, #0x7d + movs r1, #2 + strb r1, [r2] + ldr r1, [r0, #0x74] + movs r2, #1 + bl sub_080348A4 + pop {pc} + + thumb_func_start sub_080345D0 +sub_080345D0: @ 0x080345D0 + push {r4, lr} + adds r4, r0, #0 + movs r0, #6 + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _080345FE + ldr r1, [r4, #0x74] + adds r0, r4, #0 + movs r2, #2 + bl sub_080348A4 + cmp r0, #0 + bne _08034616 + ldr r1, [r4, #0x78] + adds r0, r4, #0 + movs r2, #2 + bl sub_080348A4 + b _08034616 +_080345FE: + ldr r1, [r4, #0x78] + adds r0, r4, #0 + movs r2, #2 + bl sub_080348A4 + cmp r0, #0 + bne _08034616 + ldr r1, [r4, #0x74] + adds r0, r4, #0 + movs r2, #2 + bl sub_080348A4 +_08034616: + pop {r4, pc} + + thumb_func_start sub_08034618 +sub_08034618: @ 0x08034618 + push {lr} + movs r1, #7 + strb r1, [r0, #0xc] + adds r2, r0, #0 + adds r2, #0x7d + movs r1, #1 + strb r1, [r2] + adds r2, #1 + movs r1, #0xb4 + strh r1, [r2] + ldr r1, [r0, #0x78] + movs r2, #3 + bl sub_080348A4 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08034638 +sub_08034638: @ 0x08034638 + push {lr} + movs r1, #7 + strb r1, [r0, #0xc] + adds r2, r0, #0 + adds r2, #0x7d + movs r1, #2 + strb r1, [r2] + adds r2, #1 + movs r1, #0xb4 + strh r1, [r2] + ldr r1, [r0, #0x74] + movs r2, #3 + bl sub_080348A4 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08034658 +sub_08034658: @ 0x08034658 + push {r4, lr} + movs r2, #0 + movs r1, #8 + strb r1, [r0, #0xc] + adds r4, r0, #0 + adds r4, #0x7d + strb r2, [r4] + ldr r1, [r0, #0x78] + movs r2, #4 + bl sub_080348A4 + cmp r0, #0 + bne _0803467A + ldrb r0, [r4] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4] +_0803467A: + pop {r4, pc} + + thumb_func_start sub_0803467C +sub_0803467C: @ 0x0803467C + push {r4, lr} + movs r2, #0 + movs r1, #8 + strb r1, [r0, #0xc] + adds r4, r0, #0 + adds r4, #0x7d + strb r2, [r4] + ldr r1, [r0, #0x74] + movs r2, #4 + bl sub_080348A4 + cmp r0, #0 + bne _0803469E + ldrb r0, [r4] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4] +_0803469E: + pop {r4, pc} + + thumb_func_start sub_080346A0 +sub_080346A0: @ 0x080346A0 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #9 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x7d + strb r1, [r0] + ldr r1, [r4, #0x74] + adds r0, r4, #0 + movs r2, #6 + bl sub_080348A4 + ldr r1, [r4, #0x78] + adds r0, r4, #0 + movs r2, #6 + bl sub_080348A4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080346C8 +sub_080346C8: @ 0x080346C8 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #0xa + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x7e + strh r1, [r0] + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _0803470C + ldr r1, [r4, #0x74] + adds r0, r4, #0 + movs r2, #8 + bl sub_080348A4 + cmp r0, #0 + beq _080346F6 + ldr r1, [r4, #0x78] + b _0803471C +_080346F6: + ldr r1, [r4, #0x74] + adds r0, r4, #0 + movs r2, #7 + bl sub_080348A4 + ldr r1, [r4, #0x78] + adds r0, r4, #0 + movs r2, #8 + bl sub_080348A4 + b _0803473A +_0803470C: + ldr r1, [r4, #0x78] + adds r0, r4, #0 + movs r2, #8 + bl sub_080348A4 + cmp r0, #0 + beq _08034726 + ldr r1, [r4, #0x74] +_0803471C: + adds r0, r4, #0 + movs r2, #7 + bl sub_080348A4 + b _0803473A +_08034726: + ldr r1, [r4, #0x74] + adds r0, r4, #0 + movs r2, #8 + bl sub_080348A4 + ldr r1, [r4, #0x78] + adds r0, r4, #0 + movs r2, #7 + bl sub_080348A4 +_0803473A: + pop {r4, pc} + + thumb_func_start sub_0803473C +sub_0803473C: @ 0x0803473C + push {r4, r5, lr} + adds r3, r0, #0 + adds r0, #0x7d + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08034764 + ldr r0, [r3, #0x74] + ldrb r0, [r0, #0xc] + cmp r0, #0x28 + bhi _080347B0 + ldr r0, _08034760 @ =gUnk_03001160 + movs r1, #0x2e + ldrsh r0, [r0, r1] + adds r2, r0, #0 + subs r2, #0x60 + b _08034776 + .align 2, 0 +_08034760: .4byte gUnk_03001160 +_08034764: + ldr r0, [r3, #0x78] + ldrb r0, [r0, #0xc] + cmp r0, #0x28 + bhi _080347B0 + ldr r0, _08034790 @ =gUnk_03001160 + movs r5, #0x2e + ldrsh r0, [r0, r5] + adds r2, r0, #0 + adds r2, #0x60 +_08034776: + ldr r0, _08034794 @ =gUnk_03000BF0 + ldrh r4, [r0, #6] + subs r0, r2, #4 + movs r5, #0x2e + ldrsh r1, [r3, r5] + cmp r0, r1 + bls _08034798 + adds r0, r4, #0 + adds r0, #0xe0 + cmp r0, r1 + blo _080347B0 + movs r0, #8 + b _080347A8 + .align 2, 0 +_08034790: .4byte gUnk_03001160 +_08034794: .4byte gUnk_03000BF0 +_08034798: + adds r0, r2, #4 + cmp r0, r1 + bhs _080347B0 + adds r0, r4, #0 + adds r0, #0x90 + cmp r0, r1 + bhi _080347B0 + movs r0, #0x18 +_080347A8: + strb r0, [r3, #0x15] + adds r0, r3, #0 + bl sub_0806F69C +_080347B0: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080347B4 +sub_080347B4: @ 0x080347B4 + push {r4, r5, lr} + adds r2, r0, #0 + ldr r0, _080347D8 @ =gUnk_03001160 + movs r1, #0x2e + ldrsh r3, [r0, r1] + ldr r0, _080347DC @ =gUnk_03000BF0 + ldrh r4, [r0, #6] + subs r0, r3, #4 + movs r5, #0x2e + ldrsh r1, [r2, r5] + cmp r0, r1 + bls _080347E0 + adds r0, r4, #0 + adds r0, #0xe0 + cmp r0, r1 + blo _080347F8 + movs r0, #8 + b _080347F0 + .align 2, 0 +_080347D8: .4byte gUnk_03001160 +_080347DC: .4byte gUnk_03000BF0 +_080347E0: + adds r0, r3, #4 + cmp r0, r1 + bhs _080347F8 + adds r0, r4, #0 + adds r0, #0x90 + cmp r0, r1 + bhi _080347F8 + movs r0, #0x18 +_080347F0: + strb r0, [r2, #0x15] + adds r0, r2, #0 + bl sub_0806F69C +_080347F8: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080347FC +sub_080347FC: @ 0x080347FC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x7d + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08034818 + ldr r1, [r4, #0x78] + adds r0, r4, #0 + movs r2, #5 + bl sub_080348A4 + b _08034822 +_08034818: + ldr r1, [r4, #0x74] + adds r0, r4, #0 + movs r2, #5 + bl sub_080348A4 +_08034822: + adds r2, r4, #0 + adds r2, #0x7d + ldrb r1, [r2] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r2] + pop {r4, pc} + + thumb_func_start sub_08034830 +sub_08034830: @ 0x08034830 + push {r4, lr} + adds r4, r0, #0 + bl sub_080349D8 + cmp r0, #0 + beq _0803484C + adds r1, r4, #0 + adds r1, #0x7d + movs r0, #0x80 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080345D0 + b _080348A0 +_0803484C: + adds r0, r4, #0 + bl sub_08034A10 + cmp r0, #0 + beq _080348A0 + adds r0, r4, #0 + adds r0, #0x80 + ldrb r1, [r0] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + beq _08034876 + adds r0, r4, #0 + bl sub_080349D8 + cmp r0, #0 + beq _080348A0 + adds r0, r4, #0 + bl sub_08034420 + b _080348A0 +_08034876: + adds r2, r4, #0 + adds r2, #0x7d + ldrb r0, [r2] + movs r1, #0x20 + orrs r1, r0 + strb r1, [r2] + movs r0, #0x10 + ands r1, r0 + cmp r1, #0 + beq _08034896 + ldr r1, [r4, #0x78] + adds r0, r4, #0 + movs r2, #2 + bl sub_080348A4 + b _080348A0 +_08034896: + ldr r1, [r4, #0x74] + adds r0, r4, #0 + movs r2, #2 + bl sub_080348A4 +_080348A0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080348A4 +sub_080348A4: @ 0x080348A4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r3, r1, #0 + adds r5, r2, #0 + ldrb r0, [r3, #0xa] + cmp r0, #0 + bne _080348C6 + movs r2, #5 + movs r0, #0x7d + adds r0, r0, r4 + mov ip, r0 + ldrb r1, [r0] + movs r0, #0x10 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + b _080348C8 +_080348C6: + movs r2, #0xa +_080348C8: + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + ands r0, r2 + cmp r0, #0 + beq _080348F0 + adds r0, r4, #0 + adds r0, #0x7d + ldrb r2, [r0] + ldrb r1, [r3, #0xa] + adds r3, r0, #0 + cmp r1, #0 + bne _080348E6 + movs r0, #1 + b _080348E8 +_080348E6: + movs r0, #2 +_080348E8: + orrs r0, r2 + strb r0, [r3] + movs r0, #0 + b _08034998 +_080348F0: + cmp r5, #8 + bhi _08034996 + lsls r0, r5, #2 + ldr r1, _08034900 @ =_08034904 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08034900: .4byte _08034904 +_08034904: @ jump table + .4byte _08034928 @ case 0 + .4byte _0803492E @ case 1 + .4byte _0803493C @ case 2 + .4byte _0803494A @ case 3 + .4byte _0803493C @ case 4 + .4byte _08034958 @ case 5 + .4byte _08034966 @ case 6 + .4byte _0803496C @ case 7 + .4byte _08034982 @ case 8 +_08034928: + movs r0, #3 + strb r0, [r3, #0xc] + b _08034996 +_0803492E: + movs r0, #4 + strb r0, [r3, #0xc] + adds r1, r3, #0 + adds r1, #0x7c + movs r0, #3 + strb r0, [r1] + b _08034996 +_0803493C: + movs r0, #4 + strb r0, [r3, #0xc] + adds r1, r3, #0 + adds r1, #0x7c + movs r0, #1 + strb r0, [r1] + b _08034996 +_0803494A: + movs r0, #0xf + strb r0, [r3, #0xc] + adds r1, r3, #0 + adds r1, #0x7e + movs r0, #0xb4 + strh r0, [r1] + b _08034996 +_08034958: + movs r0, #0xf + strb r0, [r3, #0xc] + adds r1, r3, #0 + adds r1, #0x7e + movs r0, #1 + strh r0, [r1] + b _08034996 +_08034966: + movs r0, #0x1e + strb r0, [r3, #0xc] + b _08034996 +_0803496C: + movs r0, #0x1b + strb r0, [r3, #0xc] + ldrb r1, [r3, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r3, #0x10] + adds r0, r3, #0 + movs r1, #5 + bl sub_08004260 + b _08034996 +_08034982: + ldrb r0, [r3, #0xa] + adds r2, r0, #2 + movs r0, #0x36 + adds r1, r2, #0 + bl sub_0804AA60 + adds r3, r0, #0 + cmp r3, #0 + beq _08034996 + str r4, [r3, #0x50] +_08034996: + movs r0, #1 +_08034998: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803499C +sub_0803499C: @ 0x0803499C + push {lr} + adds r3, r0, #0 + adds r0, #0x80 + ldrb r1, [r0] + movs r0, #0xc + ands r0, r1 + cmp r0, #0xc + beq _080349D0 + adds r0, r3, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + beq _080349D0 + ldr r2, _080349D4 @ =gUnk_080CED6C + ldrb r0, [r3, #0xf] + adds r0, #1 + strb r0, [r3, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1c + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r3, #0x36] +_080349D0: + pop {pc} + .align 2, 0 +_080349D4: .4byte gUnk_080CED6C + + thumb_func_start sub_080349D8 +sub_080349D8: @ 0x080349D8 + push {lr} + adds r2, r0, #0 + adds r0, #0x7d + ldrb r0, [r0] + movs r1, #3 + ands r1, r0 + cmp r1, #3 + beq _08034A08 + cmp r1, #1 + bne _080349F6 + adds r0, r2, #0 + adds r0, #0x80 + ldrb r1, [r0] + movs r0, #0xa + b _08034A02 +_080349F6: + cmp r1, #2 + bne _08034A0C + adds r0, r2, #0 + adds r0, #0x80 + ldrb r1, [r0] + movs r0, #5 +_08034A02: + ands r0, r1 + cmp r0, #0 + beq _08034A0C +_08034A08: + movs r0, #1 + b _08034A0E +_08034A0C: + movs r0, #0 +_08034A0E: + pop {pc} + + thumb_func_start sub_08034A10 +sub_08034A10: @ 0x08034A10 + push {r4, lr} + adds r1, r0, #0 + adds r3, r1, #0 + adds r3, #0x7d + ldrb r2, [r3] + movs r0, #0x60 + ands r0, r2 + cmp r0, #0x40 + beq _08034A52 + movs r0, #0x10 + ands r0, r2 + cmp r0, #0 + beq _08034A56 + adds r4, r1, #0 + adds r4, #0x80 + ldrb r1, [r4] + movs r0, #5 + ands r0, r1 + cmp r0, #0 + beq _08034A3E + movs r0, #0x40 + orrs r0, r2 + strb r0, [r3] +_08034A3E: + ldrb r1, [r4] + movs r0, #0xa + ands r0, r1 + cmp r0, #0 + beq _08034A7E + ldrb r1, [r3] + movs r0, #3 + ands r0, r1 + cmp r0, #1 + bne _08034A7E +_08034A52: + movs r0, #1 + b _08034A80 +_08034A56: + adds r4, r1, #0 + adds r4, #0x80 + ldrb r1, [r4] + movs r0, #0xa + ands r0, r1 + cmp r0, #0 + beq _08034A6A + movs r0, #0x40 + orrs r0, r2 + strb r0, [r3] +_08034A6A: + ldrb r1, [r4] + movs r0, #5 + ands r0, r1 + cmp r0, #0 + beq _08034A7E + ldrb r1, [r3] + movs r0, #3 + ands r0, r1 + cmp r0, #2 + beq _08034A52 +_08034A7E: + movs r0, #0 +_08034A80: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08034A84 +sub_08034A84: @ 0x08034A84 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _08034A98 + adds r0, r4, #0 + bl sub_0805E7BC + b _08034AC2 +_08034A98: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08034ABA + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_08034ABA: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA6C +_08034AC2: + pop {r4, pc} + + thumb_func_start sub_08034AC4 +sub_08034AC4: @ 0x08034AC4 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + movs r3, #0x80 + lsls r3, r3, #9 + adds r1, r4, #0 + movs r2, #0 + bl sub_0806FA48 + ldr r1, _08034AE8 @ =gUnk_080CED74 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_08034AE8: .4byte gUnk_080CED74 + + thumb_func_start sub_08034AEC +sub_08034AEC: @ 0x08034AEC + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0x1e + strb r1, [r0, #0xe] + ldrb r1, [r0, #0xa] + adds r1, #1 + bl sub_08004260 + ldr r0, _08034B08 @ =0x00000151 + bl sub_080A3268 + pop {pc} + .align 2, 0 +_08034B08: .4byte 0x00000151 + + thumb_func_start sub_08034B0C +sub_08034B0C: @ 0x08034B0C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08034B1A + subs r0, #1 + b _08034B34 +_08034B1A: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08034B36 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x50 +_08034B34: + strb r0, [r4, #0xe] +_08034B36: + pop {r4, pc} + + thumb_func_start sub_08034B38 +sub_08034B38: @ 0x08034B38 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08034B58 + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0xa] + adds r1, #3 + adds r0, r4, #0 + bl sub_08004260 + b _08034B9A +_08034B58: + movs r0, #0xe + bl sub_080A7EE0 + adds r5, r0, #0 + cmp r5, #0 + beq _08034B9A + ldrb r0, [r4, #0xa] + subs r0, #2 + strb r0, [r5, #0xa] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08034B78 + ldrb r1, [r4, #0xe] + movs r0, #0xa8 + subs r0, r0, r1 + b _08034B7C +_08034B78: + ldrb r0, [r4, #0xe] + adds r0, #0x58 +_08034B7C: + strb r0, [r5, #0x15] + ldrb r0, [r5, #0xa] + lsls r0, r0, #1 + ldr r1, _08034B9C @ =gUnk_080CED84 + adds r0, r0, r1 + movs r2, #0 + ldrsb r2, [r0, r2] + lsls r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r0, r3] + lsls r3, r3, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FA48 +_08034B9A: + pop {r4, r5, pc} + .align 2, 0 +_08034B9C: .4byte gUnk_080CED84 + + thumb_func_start sub_08034BA0 +sub_08034BA0: @ 0x08034BA0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08034BC4 + ldr r0, [r4, #0x50] + adds r0, #0x7e + movs r1, #0xff + strh r1, [r0] + adds r0, r4, #0 + bl sub_0805E7BC +_08034BC4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08034BC8 +sub_08034BC8: @ 0x08034BC8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08034BDE + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_08034BDE: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + movs r2, #0 + movs r3, #1 + bl sub_0806FA90 + adds r0, r4, #0 + bl sub_0800445C + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08034BFE + adds r0, r4, #0 + bl sub_08034C00 +_08034BFE: + pop {r4, pc} + + thumb_func_start sub_08034C00 +sub_08034C00: @ 0x08034C00 + push {r4, lr} + adds r3, r0, #0 + ldr r0, _08034C44 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08034C5A + movs r1, #0x2e + ldrsh r0, [r3, r1] + ldr r2, _08034C48 @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + subs r0, r0, r1 + movs r4, #0x32 + ldrsh r1, [r3, r4] + ldrh r2, [r2, #8] + subs r1, r1, r2 + adds r1, #0xd + movs r2, #3 + movs r3, #3 + bl sub_0800293E + cmp r0, #0 + beq _08034C5A + ldr r0, _08034C4C @ =gUnk_030010A0 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #0x3c + bls _08034C54 + ldr r0, _08034C50 @ =gUnk_080CED88 + bl sub_08080840 + b _08034C5A + .align 2, 0 +_08034C44: .4byte gUnk_03003F80 +_08034C48: .4byte gUnk_03000BF0 +_08034C4C: .4byte gUnk_030010A0 +_08034C50: .4byte gUnk_080CED88 +_08034C54: + ldr r0, _08034C5C @ =gUnk_080CED9C + bl sub_08080840 +_08034C5A: + pop {r4, pc} + .align 2, 0 +_08034C5C: .4byte gUnk_080CED9C + + thumb_func_start sub_08034C60 +sub_08034C60: @ 0x08034C60 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _08034C78 @ =gUnk_080CEE90 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_08034C78: .4byte gUnk_080CEE90 + + thumb_func_start sub_08034C7C +sub_08034C7C: @ 0x08034C7C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #2 + beq _08034C9C + ldr r0, _08034C98 @ =gUnk_080CEEA4 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _08034CA2 + .align 2, 0 +_08034C98: .4byte gUnk_080CEEA4 +_08034C9C: + adds r0, r2, #0 + bl sub_08034E18 +_08034CA2: + pop {pc} + + thumb_func_start sub_08034CA4 +sub_08034CA4: @ 0x08034CA4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08034FA0 + ldr r1, _08034CB8 @ =gUnk_080CEE90 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_08034CB8: .4byte gUnk_080CEE90 + + thumb_func_start sub_08034CBC +sub_08034CBC: @ 0x08034CBC + push {lr} + bl sub_0804A7D4 + pop {pc} + + thumb_func_start sub_08034CC4 +sub_08034CC4: @ 0x08034CC4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_08035084 + cmp r0, #0 + beq _08034D42 + ldrb r0, [r5, #0xa] + adds r0, #1 + movs r1, #0 + strb r0, [r5, #0xc] + strb r1, [r5, #0xf] + adds r2, r5, #0 + adds r2, #0x6d + ldrb r1, [r2] + movs r0, #1 + orrs r0, r1 + strb r0, [r2] + adds r1, r5, #0 + adds r1, #0x78 + movs r0, #0x96 + lsls r0, r0, #3 + strh r0, [r1] + adds r0, r5, #0 + bl sub_08034F70 + ldrb r1, [r5, #0xa] + adds r0, r5, #0 + bl sub_08004260 + ldr r0, _08034D44 @ =0x00004022 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08034D48 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + movs r0, #0x37 + movs r1, #2 + bl sub_0804AA60 + adds r1, r0, #0 + cmp r1, #0 + beq _08034D42 + str r1, [r5, #0x54] + str r5, [r1, #0x50] + adds r0, r5, #0 + bl sub_0806FA24 +_08034D42: + pop {r4, r5, r6, pc} + .align 2, 0 +_08034D44: .4byte 0x00004022 +_08034D48: .4byte gUnk_03000BF0 + + thumb_func_start sub_08034D4C +sub_08034D4C: @ 0x08034D4C + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_08004274 + adds r6, r5, #0 + adds r6, #0x78 + ldrh r0, [r6] + subs r0, #1 + strh r0, [r6] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08034DC4 + ldrb r0, [r5, #0xf] + cmp r0, #7 + bhi _08034DBC + movs r0, #0x4b + movs r1, #0 + bl sub_0804AA60 + adds r4, r0, #0 + cmp r4, #0 + beq _08034DBC + bl sub_08000E50 + movs r1, #5 + bl __modsi3 + adds r0, #0xc + strb r0, [r4, #0x15] + ldr r1, _08034DB8 @ =gUnk_03000BF0 + ldrh r0, [r1, #0x1e] + lsrs r0, r0, #1 + ldrh r2, [r1, #6] + adds r0, r0, r2 + strh r0, [r4, #0x2e] + ldrh r0, [r1, #8] + adds r0, #8 + strh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + str r5, [r4, #0x50] + adds r0, r4, #0 + bl sub_08016A04 + movs r0, #0x96 + lsls r0, r0, #2 + strh r0, [r6] + ldrb r0, [r5, #0xf] + adds r0, #1 + strb r0, [r5, #0xf] + b _08034DC4 + .align 2, 0 +_08034DB8: .4byte gUnk_03000BF0 +_08034DBC: + adds r1, r5, #0 + adds r1, #0x78 + movs r0, #0x78 + strh r0, [r1] +_08034DC4: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08034DC8 +sub_08034DC8: @ 0x08034DC8 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _08034E10 @ =gUnk_030010A0 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #0 + bne _08034E0E + adds r0, r4, #0 + movs r1, #0x51 + movs r2, #0 + bl sub_080A29AC + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _08034E14 @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r5, #0x32 + ldrsh r1, [r4, r5] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_0807BA8C + bl sub_0805E780 +_08034E0E: + pop {r4, r5, pc} + .align 2, 0 +_08034E10: .4byte gUnk_030010A0 +_08034E14: .4byte gUnk_03000BF0 + + thumb_func_start sub_08034E18 +sub_08034E18: @ 0x08034E18 + push {lr} + ldr r2, _08034E2C @ =gUnk_080CEEB0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08034E2C: .4byte gUnk_080CEEB0 + + thumb_func_start sub_08034E30 +sub_08034E30: @ 0x08034E30 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xa] + adds r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + movs r1, #0x39 + rsbs r1, r1, #0 + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08034E68 +sub_08034E68: @ 0x08034E68 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _08034EBC + ldrb r1, [r4, #0x18] + lsls r0, r1, #0x1e + cmp r0, #0 + beq _08034E8A + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_08035120 +_08034E8A: + ldr r0, _08034EB0 @ =gUnk_030010A0 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #0 + bne _08034EB8 + bl sub_08079F8C + cmp r0, #0 + beq _08034EBC + movs r0, #3 + strb r0, [r4, #0xc] + ldr r1, _08034EB4 @ =gUnk_08012E20 + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] + b _08034EBC + .align 2, 0 +_08034EB0: .4byte gUnk_030010A0 +_08034EB4: .4byte gUnk_08012E20 +_08034EB8: + bl sub_0805E780 +_08034EBC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08034EC0 +sub_08034EC0: @ 0x08034EC0 + push {lr} + adds r1, r0, #0 + ldr r0, [r1, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _08034ED6 + adds r0, r1, #0 + bl sub_08035120 + bl sub_0805E780 +_08034ED6: + pop {pc} + + thumb_func_start sub_08034ED8 +sub_08034ED8: @ 0x08034ED8 + push {lr} + movs r1, #0 + bl sub_0807DDAC + pop {pc} + .align 2, 0 + + thumb_func_start sub_08034EE4 +sub_08034EE4: @ 0x08034EE4 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xe] + adds r0, #1 + strb r0, [r5, #0xe] + movs r1, #0xff + ands r0, r1 + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _08034F46 + bl sub_08000E50 + adds r4, r0, #0 + ldr r0, _08034F50 @ =gUnk_080CEEC8 + movs r1, #3 + ands r1, r4 + adds r1, r1, r0 + ldrb r1, [r1] + adds r0, r5, #0 + movs r2, #0 + bl sub_080A29AC + adds r3, r0, #0 + cmp r3, #0 + beq _08034F46 + lsrs r1, r4, #2 + movs r0, #0x77 + ands r1, r0 + lsls r1, r1, #1 + adds r1, #1 + ldr r2, _08034F54 @ =gUnk_03000BF0 + ldrh r0, [r2, #0xa] + adds r0, r0, r1 + strh r0, [r3, #0x2e] + lsrs r1, r4, #9 + movs r0, #0x7e + ands r1, r0 + adds r1, #1 + ldrh r0, [r2, #0xc] + adds r0, r0, r1 + strh r0, [r3, #0x32] + adds r1, r3, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r3, #0 + bl sub_08016A04 +_08034F46: + adds r0, r5, #0 + movs r1, #0 + bl sub_0807DDAC + pop {r4, r5, pc} + .align 2, 0 +_08034F50: .4byte gUnk_080CEEC8 +_08034F54: .4byte gUnk_03000BF0 + + thumb_func_start sub_08034F58 +sub_08034F58: @ 0x08034F58 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08034F6C @ =gUnk_0813ABA8 + bl sub_08080840 + adds r0, r4, #0 + bl sub_0805E7BC + pop {r4, pc} + .align 2, 0 +_08034F6C: .4byte gUnk_0813ABA8 + + thumb_func_start sub_08034F70 +sub_08034F70: @ 0x08034F70 + push {lr} + adds r2, r0, #0 + ldr r0, _08034F8C @ =gUnk_030010A0 + adds r0, #0x39 + ldrb r0, [r0] + adds r1, r2, #0 + adds r1, #0x45 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x3c + bls _08034F90 + movs r0, #0 + b _08034F9A + .align 2, 0 +_08034F8C: .4byte gUnk_030010A0 +_08034F90: + cmp r0, #0x1e + bls _08034F98 + movs r0, #1 + b _08034F9A +_08034F98: + movs r0, #2 +_08034F9A: + strb r0, [r2, #0xb] + pop {pc} + .align 2, 0 + + thumb_func_start sub_08034FA0 +sub_08034FA0: @ 0x08034FA0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r0, #0x3d + ldrb r1, [r0] + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + ble _08034FC0 + ldr r0, [r4, #0x54] + adds r0, #0x3d + strb r1, [r0] + movs r0, #0xc + movs r1, #1 + bl sub_08080964 +_08034FC0: + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _08035008 + cmp r0, #1 + beq _08035020 + adds r0, r4, #0 + adds r0, #0x45 + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #0 + bne _08035040 + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _08035004 @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r6, #0x32 + ldrsh r1, [r4, r6] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_0807BA8C + b _08035040 + .align 2, 0 +_08035004: .4byte gUnk_03000BF0 +_08035008: + adds r0, r4, #0 + adds r0, #0x45 + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #0x3b + bhi _08035040 + ldr r0, _0803501C @ =gUnk_030010A0 + adds r0, #0x39 + movs r1, #0x3c + b _08035032 + .align 2, 0 +_0803501C: .4byte gUnk_030010A0 +_08035020: + adds r0, r4, #0 + adds r0, #0x45 + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #0x1d + bhi _08035040 + ldr r0, _0803503C @ =gUnk_030010A0 + adds r0, #0x39 + movs r1, #0x1e +_08035032: + strb r1, [r0] + adds r0, r4, #0 + bl sub_08035050 + b _08035048 + .align 2, 0 +_0803503C: .4byte gUnk_030010A0 +_08035040: + ldr r0, _0803504C @ =gUnk_030010A0 + ldrb r1, [r5] + adds r0, #0x39 + strb r1, [r0] +_08035048: + pop {r4, r5, r6, pc} + .align 2, 0 +_0803504C: .4byte gUnk_030010A0 + + thumb_func_start sub_08035050 +sub_08035050: @ 0x08035050 + push {r4, lr} + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + movs r4, #0 + strb r1, [r0, #0x10] + adds r0, #0x45 + strb r4, [r0] + movs r0, #0x4b + movs r1, #0 + bl sub_0804AA60 + adds r2, r0, #0 + cmp r2, #0 + beq _08035082 + movs r0, #1 + strb r0, [r2, #0xb] + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + str r4, [r2, #0x50] + adds r0, r2, #0 + bl sub_08016A04 +_08035082: + pop {r4, pc} + + thumb_func_start sub_08035084 +sub_08035084: @ 0x08035084 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r8, r0 + ldrb r0, [r0, #0xa] + cmp r0, #0 + bne _08035118 + ldr r0, _080350A0 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x42 + bls _080350A4 + movs r0, #0 + b _0803511A + .align 2, 0 +_080350A0: .4byte gUnk_03003DBC +_080350A4: + ldr r4, _080350D8 @ =gUnk_030010D8 +_080350A6: + bl sub_08000E50 + movs r1, #6 + bl __modsi3 + adds r6, r0, #0 + ldrb r0, [r4] + lsrs r0, r0, #4 + cmp r6, r0 + beq _080350A6 + ldr r2, _080350DC @ =gUnk_030010A0 + adds r2, #0x38 + ldrb r1, [r2] + movs r0, #0xf + ands r0, r1 + lsls r1, r6, #4 + orrs r0, r1 + strb r0, [r2] + movs r5, #0 + ldr r4, _080350E0 @ =gUnk_080CEECC + ldr r7, _080350E4 @ =gUnk_03000BF0 +_080350D0: + cmp r5, r6 + bne _080350E8 + mov r2, r8 + b _080350F2 + .align 2, 0 +_080350D8: .4byte gUnk_030010D8 +_080350DC: .4byte gUnk_030010A0 +_080350E0: .4byte gUnk_080CEECC +_080350E4: .4byte gUnk_03000BF0 +_080350E8: + movs r0, #0x37 + movs r1, #1 + bl sub_0804AA60 + adds r2, r0, #0 +_080350F2: + ldrh r0, [r7, #6] + ldrb r1, [r4] + adds r0, r0, r1 + strh r0, [r2, #0x2e] + ldrh r0, [r7, #8] + ldrb r1, [r4, #1] + adds r0, r0, r1 + strh r0, [r2, #0x32] + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + adds r0, r2, #0 + bl sub_08016A04 + adds r5, #1 + adds r4, #2 + cmp r5, #5 + bls _080350D0 +_08035118: + movs r0, #1 +_0803511A: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08035120 +sub_08035120: @ 0x08035120 + push {r4, r5, r6, lr} + movs r2, #0x2e + ldrsh r1, [r0, r2] + ldr r3, _0803515C @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r4, r1, #4 + movs r2, #0x3f + ands r4, r2 + movs r1, #0x32 + ldrsh r0, [r0, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + movs r6, #0 + ldr r5, _08035160 @ =gUnk_080CEED8 +_08035146: + movs r2, #0 + ldrsh r0, [r5, r2] + adds r0, r4, r0 + bl sub_0807B600 + adds r5, #2 + adds r6, #1 + cmp r6, #0x17 + bls _08035146 + pop {r4, r5, r6, pc} + .align 2, 0 +_0803515C: .4byte gUnk_03000BF0 +_08035160: .4byte gUnk_080CEED8 + + thumb_func_start sub_08035164 +sub_08035164: @ 0x08035164 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0803518C + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0xa] + ands r1, r2 + lsls r1, r1, #6 + ldrb r2, [r4, #0x18] + subs r0, #0x42 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC +_0803518C: + adds r0, r4, #0 + bl sub_08035194 + pop {r4, pc} + + thumb_func_start sub_08035194 +sub_08035194: @ 0x08035194 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _080351A8 + ldr r0, _080351A4 @ =gUnk_080CEF34 + b _080351AA + .align 2, 0 +_080351A4: .4byte gUnk_080CEF34 +_080351A8: + ldr r0, _080351B8 @ =gUnk_080CEF58 +_080351AA: + ldrb r1, [r2, #0x1e] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + str r0, [r2, #0x48] + pop {pc} + .align 2, 0 +_080351B8: .4byte gUnk_080CEF58 + + thumb_func_start sub_080351BC +sub_080351BC: @ 0x080351BC + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080351D4 @ =gUnk_080CF040 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080351D4: .4byte gUnk_080CF040 + + thumb_func_start sub_080351D8 +sub_080351D8: @ 0x080351D8 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xa] + cmp r1, #0 + bne _08035204 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x42 + strb r1, [r0] + adds r1, r4, #0 + adds r1, #0x45 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080368D8 + adds r0, r4, #0 + bl sub_0803520C + b _08035208 +_08035204: + bl sub_0805E780 +_08035208: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803520C +sub_0803520C: @ 0x0803520C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x7c + ldrb r0, [r0] + cmp r0, #0 + bne _08035238 + ldrb r0, [r4, #0xd] + cmp r0, #3 + beq _0803524C + ldr r2, _08035234 @ =gUnk_03000BF0 + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + ldr r0, [r1, #0xc] + str r0, [r2, #0x30] + movs r0, #0x5a + strb r0, [r1, #7] + bl sub_08078B48 + b _0803524C + .align 2, 0 +_08035234: .4byte gUnk_03000BF0 +_08035238: + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + ldrb r0, [r1, #7] + cmp r0, #0 + beq _0803524C + subs r0, #1 + strb r0, [r1, #7] + bl sub_08078B48 +_0803524C: + ldr r1, _08035284 @ =gUnk_080CF054 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r0, [r4, #0xd] + cmp r0, #3 + bls _08035266 + bl sub_08078B48 +_08035266: + adds r0, r4, #0 + bl sub_0800445C + adds r0, r4, #0 + adds r0, #0x76 + ldrh r1, [r0] + subs r0, #2 + ldrh r2, [r0] + adds r0, #6 + ldrh r3, [r0] + adds r0, r4, #0 + bl sub_0805EC9C + pop {r4, pc} + .align 2, 0 +_08035284: .4byte gUnk_080CF054 + + thumb_func_start sub_08035288 +sub_08035288: @ 0x08035288 + push {r4, lr} + adds r2, r0, #0 + adds r0, #0x76 + movs r4, #0 + movs r1, #0xa0 + strh r1, [r0] + subs r0, #2 + strh r1, [r0] + adds r3, r2, #0 + adds r3, #0x84 + ldr r0, [r3] + strb r4, [r0, #6] + adds r0, r2, #0 + adds r0, #0x7c + ldrb r1, [r0] + adds r0, r1, #0 + cmp r0, #4 + bne _080352C8 + strb r0, [r2, #0xd] + ldr r0, _080352C4 @ =gUnk_02034490 + movs r1, #1 + strb r1, [r0] + bl sub_08078B48 + movs r0, #0x94 + lsls r0, r0, #1 + bl sub_080A3268 + b _080352FA + .align 2, 0 +_080352C4: .4byte gUnk_02034490 +_080352C8: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080352DA + strb r4, [r2, #0xb] + adds r1, r2, #0 + adds r1, #0x79 + movs r0, #0x3c + b _080352F4 +_080352DA: + ldr r1, [r3] + ldrb r0, [r1, #1] + cmp r0, #3 + bls _080352E6 + subs r0, #1 + strb r0, [r1, #1] +_080352E6: + ldr r0, [r3] + ldr r0, [r0, #0xc] + adds r0, #0x7d + strb r4, [r0] + adds r1, r2, #0 + adds r1, #0x79 + movs r0, #0x78 +_080352F4: + strb r0, [r1] + movs r0, #1 + strb r0, [r2, #0xd] +_080352FA: + pop {r4, pc} + + thumb_func_start sub_080352FC +sub_080352FC: @ 0x080352FC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r5, r0, #0 + adds r0, #0x7c + ldrb r0, [r0] + movs r6, #1 + adds r4, r6, #0 + ands r4, r0 + cmp r4, #0 + bne _080353EC + adds r0, r5, #0 + adds r0, #0x84 + ldr r1, [r0] + ldr r1, [r1, #0xc] + adds r1, #0x7d + ldrb r2, [r1] + mov sb, r0 + cmp r2, #0 + beq _0803532C + subs r0, r2, #1 + strb r0, [r1] +_0803532C: + ldr r3, _0803538C @ =gUnk_03000BF0 + movs r0, #0x84 + lsls r0, r0, #1 + adds r1, r0, #0 + ldrh r2, [r3, #6] + adds r1, r1, r2 + ldrh r0, [r5, #0x2e] + subs r1, r1, r0 + adds r1, #4 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldrh r0, [r3, #8] + ldrh r2, [r5, #0x32] + subs r0, r0, r2 + adds r0, #0x8c + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r1, #8 + bhi _08035356 + cmp r0, #8 + bls _08035394 +_08035356: + mov r1, sb + ldr r0, [r1] + strb r6, [r0, #2] + ldrh r0, [r3, #6] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r2, _08035390 @ =0xFFFFFEF8 + adds r1, r1, r2 + subs r0, r0, r1 + ldrh r1, [r3, #8] + movs r3, #0x32 + ldrsh r2, [r5, r3] + subs r2, #0x88 + subs r1, r1, r2 + bl sub_080045DA + asrs r0, r0, #3 + strb r0, [r5, #0x15] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r5, #0x24] + adds r0, r5, #0 + bl sub_080AEF88 + adds r7, r5, #0 + adds r7, #0x79 + b _08035456 + .align 2, 0 +_0803538C: .4byte gUnk_03000BF0 +_08035390: .4byte 0xFFFFFEF8 +_08035394: + ldrb r0, [r5, #0xb] + cmp r0, #0 + bne _080353D8 + adds r0, r5, #0 + movs r1, #0x87 + movs r2, #5 + movs r3, #0 + bl sub_080A2988 + adds r0, r5, #0 + movs r1, #0x87 + movs r2, #5 + movs r3, #1 + bl sub_080A2988 + adds r0, r5, #0 + movs r1, #0x87 + movs r2, #5 + movs r3, #2 + bl sub_080A2988 + adds r0, r5, #0 + movs r1, #0x87 + movs r2, #5 + movs r3, #3 + bl sub_080A2988 + adds r0, r5, #0 + movs r1, #0x87 + movs r2, #5 + movs r3, #4 + bl sub_080A2988 + strb r6, [r5, #0xb] +_080353D8: + mov r1, sb + ldr r0, [r1] + strb r4, [r0, #2] + adds r1, r5, #0 + adds r1, #0x79 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + adds r7, r1, #0 + b _08035456 +_080353EC: + adds r0, r5, #0 + adds r0, #0x84 + ldr r1, [r0] + ldrb r1, [r1, #1] + subs r4, r1, #1 + mov sb, r0 + adds r7, r5, #0 + adds r7, #0x79 + cmp r4, #0 + beq _08035438 + mov ip, sb + movs r2, #1 + mov sl, r2 + lsls r0, r4, #2 + subs r6, r0, #4 + movs r3, #3 + mov r8, r3 +_0803540E: + mov r1, ip + ldr r0, [r1] + adds r0, #0xc + adds r0, r0, r6 + ldr r3, [r0] + ldrb r2, [r3, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + mov r0, sl + orrs r1, r0 + mov r0, r8 + ands r1, r0 + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x18] + subs r6, #4 + subs r4, #1 + cmp r4, #0 + bne _0803540E +_08035438: + ldr r1, _080354AC @ =gUnk_030010A0 + ldr r0, [r1] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _08035450 + adds r0, r5, #0 + movs r1, #0x87 + movs r2, #6 + movs r3, #0 + bl sub_080A2988 +_08035450: + ldrb r0, [r7] + subs r0, #1 + strb r0, [r7] +_08035456: + ldrb r0, [r7] + cmp r0, #0 + bne _080354E8 + movs r0, #2 + strb r0, [r5, #0xd] + adds r4, r5, #0 + adds r4, #0x7c + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + adds r0, r5, #0 + bl sub_080AE068 + ldrb r1, [r4] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080354B0 + adds r1, r5, #0 + adds r1, #0x3f + movs r0, #0x5f + strb r0, [r1] + movs r1, #0x84 + lsls r1, r1, #1 + adds r0, r5, #0 + bl sub_080ADF80 + adds r0, r5, #0 + movs r1, #0xef + bl sub_0801D2B4 + adds r0, r5, #0 + movs r1, #0xef + bl sub_08036F14 + mov r2, sb + ldr r0, [r2] + ldr r0, [r0, #0xc] + movs r1, #1 + bl sub_080042AC + b _080354DC + .align 2, 0 +_080354AC: .4byte gUnk_030010A0 +_080354B0: + adds r1, r5, #0 + adds r1, #0x3f + movs r0, #0x61 + strb r0, [r1] + ldr r1, _080354F4 @ =0x00000109 + adds r0, r5, #0 + bl sub_080ADF80 + adds r0, r5, #0 + movs r1, #0xf0 + bl sub_0801D2B4 + adds r0, r5, #0 + movs r1, #0xf3 + bl sub_08036F14 + mov r3, sb + ldr r0, [r3] + ldr r0, [r0, #0xc] + movs r1, #2 + bl sub_080042AC +_080354DC: + adds r0, r5, #0 + movs r1, #0x87 + movs r2, #8 + movs r3, #0 + bl sub_080A2988 +_080354E8: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080354F4: .4byte 0x00000109 + + thumb_func_start sub_080354F8 +sub_080354F8: @ 0x080354F8 + push {lr} + adds r1, r0, #0 + adds r0, #0x84 + ldr r0, [r0] + ldr r0, [r0, #0xc] + adds r2, r0, #0 + adds r2, #0x7d + ldrb r0, [r2] + cmp r0, #0x80 + beq _08035512 + adds r0, #1 + strb r0, [r2] + b _08035522 +_08035512: + movs r0, #3 + strb r0, [r1, #0xd] + adds r1, #0x79 + movs r0, #0x96 + strb r0, [r1] + ldr r1, _08035524 @ =gUnk_03000BF0 + ldr r0, _08035528 @ =gUnk_03001160 + str r0, [r1, #0x30] +_08035522: + pop {pc} + .align 2, 0 +_08035524: .4byte gUnk_03000BF0 +_08035528: .4byte gUnk_03001160 + + thumb_func_start sub_0803552C +sub_0803552C: @ 0x0803552C + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x79 + ldrb r0, [r1] + subs r0, #1 + movs r3, #0 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08035570 + ldr r1, _08035574 @ =gUnk_080CF070 + adds r0, r2, #0 + adds r0, #0x7c + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r0, [r0] + adds r1, r2, #0 + adds r1, #0x45 + strb r0, [r1] + ldrb r0, [r2, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + movs r0, #1 + strb r0, [r2, #0xc] + strb r3, [r2, #0xd] + adds r0, r2, #0 + adds r0, #0x7e + strb r3, [r0] + adds r0, r2, #0 + bl sub_08036DA0 +_08035570: + pop {pc} + .align 2, 0 +_08035574: .4byte gUnk_080CF070 + + thumb_func_start sub_08035578 +sub_08035578: @ 0x08035578 + push {lr} + movs r1, #5 + strb r1, [r0, #0xd] + movs r1, #0x87 + movs r2, #9 + movs r3, #0 + bl sub_080A2988 + adds r1, r0, #0 + cmp r1, #0 + beq _08035592 + ldr r0, _08035594 @ =gUnk_03000BF0 + str r1, [r0, #0x30] +_08035592: + pop {pc} + .align 2, 0 +_08035594: .4byte gUnk_03000BF0 + + thumb_func_start sub_08035598 +sub_08035598: @ 0x08035598 + adds r2, r0, #0 + movs r1, #0 + movs r0, #6 + strb r0, [r2, #0xd] + adds r3, r2, #0 + adds r3, #0x79 + movs r0, #0x78 + strb r0, [r3] + adds r0, r2, #0 + adds r0, #0x80 + strb r1, [r0] + adds r0, #2 + strb r1, [r0] + bx lr + + thumb_func_start sub_080355B4 +sub_080355B4: @ 0x080355B4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r7, r0, #0 + adds r1, r7, #0 + adds r1, #0x7b + ldrb r0, [r1] + subs r0, #4 + strb r0, [r1] + adds r1, #6 + ldrb r0, [r1] + adds r0, #8 + strb r0, [r1] + adds r4, r7, #0 + adds r4, #0x80 + ldrb r1, [r4] + movs r5, #0x80 + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _080355FA + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + ldrb r1, [r4] + subs r1, r1, r0 + strb r1, [r4] + ands r1, r5 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #0 + bne _08035616 + b _08035614 +_080355FA: + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + ldrb r2, [r4] + adds r1, r0, r2 + strb r1, [r4] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x18 + bls _08035616 + movs r0, #0x80 + orrs r1, r0 +_08035614: + strb r1, [r4] +_08035616: + ldr r0, _080356E4 @ =gUnk_080C9160 + mov r8, r0 + movs r1, #0x81 + adds r1, r1, r7 + mov sb, r1 + ldrb r0, [r1] + lsls r0, r0, #1 + add r0, r8 + movs r2, #0 + ldrsh r0, [r0, r2] + adds r6, r7, #0 + adds r6, #0x80 + ldrb r2, [r6] + movs r4, #0x7f + adds r1, r4, #0 + ands r1, r2 + lsls r1, r1, #8 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r5, #0x80 + lsls r5, r5, #1 + adds r1, r5, #0 + bl sub_0806FA04 + lsrs r0, r0, #8 + adds r1, r7, #0 + adds r1, #0x62 + strb r0, [r1] + mov r1, sb + ldrb r0, [r1] + adds r0, #0x40 + lsls r0, r0, #1 + add r0, r8 + movs r2, #0 + ldrsh r0, [r0, r2] + ldrb r1, [r6] + ands r4, r1 + lsls r4, r4, #8 + adds r1, r4, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r5, #0 + bl sub_0806FA04 + lsls r0, r0, #0x10 + asrs r0, r0, #8 + rsbs r0, r0, #0 + asrs r0, r0, #0x10 + adds r1, r7, #0 + adds r1, #0x63 + strb r0, [r1] + adds r1, #0x16 + ldrb r0, [r1] + cmp r0, #0 + bne _080356EC + ldr r0, _080356E8 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _080356B2 + adds r0, r7, #0 + movs r1, #0x48 + movs r2, #0 + bl sub_080A29AC + adds r0, r7, #0 + adds r0, #0x84 + ldr r0, [r0] + ldr r0, [r0, #0x20] + movs r1, #0x48 + movs r2, #0 + bl sub_080A29AC +_080356B2: + adds r1, r7, #0 + adds r1, #0x82 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x79 + bne _080356F0 + adds r0, r7, #0 + adds r0, #0x84 + ldr r0, [r0] + ldr r0, [r0, #8] + adds r0, #0x45 + movs r1, #1 + strb r1, [r0] + movs r0, #0x94 + lsls r0, r0, #1 + bl sub_080A3268 + adds r0, r7, #0 + bl sub_0804A7D4 + b _080356F0 + .align 2, 0 +_080356E4: .4byte gUnk_080C9160 +_080356E8: .4byte gUnk_030010A0 +_080356EC: + subs r0, #1 + strb r0, [r1] +_080356F0: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080356F8 +sub_080356F8: @ 0x080356F8 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08035718 @ =gUnk_080CF078 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r0, [r4, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x19] + pop {r4, pc} + .align 2, 0 +_08035718: .4byte gUnk_080CF078 + + thumb_func_start sub_0803571C +sub_0803571C: @ 0x0803571C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xa] + cmp r0, #6 + bls _0803573A + b _08035974 +_0803573A: + lsls r0, r0, #2 + ldr r1, _08035744 @ =_08035748 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08035744: .4byte _08035748 +_08035748: @ jump table + .4byte _08035764 @ case 0 + .4byte _080358D8 @ case 1 + .4byte _080358D8 @ case 2 + .4byte _080358D8 @ case 3 + .4byte _080358D8 @ case 4 + .4byte _08035920 @ case 5 + .4byte _08035940 @ case 6 +_08035764: + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x7c + movs r5, #0 + strb r5, [r0] + movs r0, #1 + strb r0, [r4, #0xe] + movs r0, #0x30 + bl sub_0801D8E0 + adds r2, r0, #0 + adds r0, r4, #0 + adds r0, #0x84 + str r2, [r0] + mov r8, r0 + cmp r2, #0 + bne _0803579E + adds r0, r4, #0 + bl sub_0804A7D4 + b _080359A6 +_0803579E: + str r2, [r4, #0x64] + mov r1, r8 + ldr r0, [r1] + strb r5, [r0, #6] + ldr r1, [r1] + movs r0, #2 + strb r0, [r1] + mov r2, r8 + ldr r0, [r2] + strb r5, [r0, #2] + ldr r1, [r2] + movs r0, #5 + strb r0, [r1, #1] + ldrb r0, [r4, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r2, r4, #0 + adds r2, #0x6d + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x76 + movs r1, #0xa0 + strh r1, [r0] + subs r0, #2 + strh r1, [r0] + adds r0, #6 + strh r5, [r0] + movs r5, #0 + movs r0, #0x79 + adds r0, r0, r4 + mov sb, r0 + mov r7, r8 +_080357E6: + adds r6, r5, #1 + movs r0, #0x39 + adds r1, r6, #0 + bl sub_0804AA60 + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _08035816 + adds r0, r4, #0 + bl sub_0806FA24 + ldr r0, [r4, #0x54] + str r4, [r0, #0x50] + ldr r0, [r4, #0x54] + adds r0, #0x84 + ldr r1, [r7] + str r1, [r0] + ldr r1, [r7] + lsls r0, r5, #2 + adds r1, #0x20 + adds r1, r1, r0 + ldr r0, [r4, #0x54] + str r0, [r1] +_08035816: + adds r5, r6, #0 + cmp r5, #3 + bls _080357E6 + movs r0, #0x39 + movs r1, #5 + bl sub_0804AA60 + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _08035840 + adds r0, r4, #0 + bl sub_0806FA24 + ldr r0, [r4, #0x54] + str r4, [r0, #0x50] + ldr r0, [r4, #0x54] + adds r0, #0x84 + mov r2, r8 + ldr r1, [r2] + str r1, [r0] +_08035840: + movs r0, #0x39 + movs r1, #6 + bl sub_0804AA60 + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _0803586A + adds r0, r4, #0 + bl sub_0806FA24 + ldr r0, [r4, #0x54] + str r4, [r0, #0x50] + ldr r0, [r4, #0x54] + adds r0, #0x84 + mov r2, r8 + ldr r1, [r2] + str r1, [r0] + ldr r1, [r2] + ldr r0, [r4, #0x54] + str r0, [r1, #0xc] +_0803586A: + movs r5, #0 + mov r7, r8 +_0803586E: + movs r0, #0x39 + movs r1, #7 + bl sub_0804AA60 + str r0, [r4, #0x54] + adds r6, r5, #1 + cmp r0, #0 + beq _080358A0 + strb r5, [r0, #0xb] + ldr r1, [r4, #0x54] + adds r0, r4, #0 + bl sub_0806FA24 + ldr r0, [r4, #0x54] + str r4, [r0, #0x50] + ldr r0, [r4, #0x54] + adds r0, #0x84 + ldr r1, [r7] + str r1, [r0] + ldr r1, [r7] + lsls r0, r6, #2 + adds r1, #0xc + adds r1, r1, r0 + ldr r0, [r4, #0x54] + str r0, [r1] +_080358A0: + adds r5, r6, #0 + cmp r5, #3 + bls _0803586E + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + movs r0, #0x3c + mov r1, sb + strb r0, [r1] + ldr r1, _080358D0 @ =gUnk_03001160 + ldrb r2, [r1, #0x18] + subs r0, #0x40 + ands r0, r2 + strb r0, [r1, #0x18] + ldrh r0, [r4, #0x2e] + strh r0, [r1, #0x2e] + ldrh r0, [r4, #0x32] + subs r0, #0xa0 + strh r0, [r1, #0x32] + ldr r0, _080358D4 @ =gUnk_03000BF0 + str r4, [r0, #0x30] + b _08035974 + .align 2, 0 +_080358D0: .4byte gUnk_03001160 +_080358D4: .4byte gUnk_03000BF0 +_080358D8: + movs r1, #0 + movs r0, #0x10 + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x79 + strb r1, [r0] + ldrb r1, [r4, #0xa] + movs r2, #2 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _080358F4 + strb r2, [r4, #0xf] + b _080358F8 +_080358F4: + movs r0, #0xfe + strb r0, [r4, #0xf] +_080358F8: + adds r0, r4, #0 + adds r0, #0x74 + movs r2, #0x80 + lsls r2, r2, #1 + strh r2, [r0] + ldrb r1, [r4, #0xa] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08035918 + adds r1, r4, #0 + adds r1, #0x76 + movs r0, #0xff + lsls r0, r0, #8 + strh r0, [r1] + b _08035974 +_08035918: + adds r0, r4, #0 + adds r0, #0x76 + strh r2, [r0] + b _08035974 +_08035920: + adds r0, r4, #0 + adds r0, #0x76 + movs r1, #0x80 + lsls r1, r1, #1 + strh r1, [r0] + subs r0, #2 + strh r1, [r0] + adds r1, r4, #0 + adds r1, #0x79 + movs r0, #0x1c + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + str r4, [r0, #8] + b _08035974 +_08035940: + adds r0, r4, #0 + adds r0, #0x76 + movs r2, #0 + movs r1, #0x80 + lsls r1, r1, #1 + strh r1, [r0] + subs r0, #2 + strh r1, [r0] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r3] + adds r0, r4, #0 + adds r0, #0x79 + strb r2, [r0] + movs r0, #0x10 + strb r0, [r4, #0xe] + movs r0, #1 + strb r0, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x7d + movs r0, #0x80 + strb r0, [r1] +_08035974: + ldrb r0, [r4, #0xa] + cmp r0, #6 + beq _08035990 + ldr r0, _0803598C @ =gUnk_080CF08C + ldrb r1, [r4, #0xa] + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08004260 + b _080359A0 + .align 2, 0 +_0803598C: .4byte gUnk_080CF08C +_08035990: + ldr r0, _080359B0 @ =gUnk_080CF08C + ldrb r1, [r4, #0xa] + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_080042AC +_080359A0: + adds r0, r4, #0 + bl sub_08035B94 +_080359A6: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080359B0: .4byte gUnk_080CF08C + + thumb_func_start sub_080359B4 +sub_080359B4: @ 0x080359B4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08078B48 + ldr r1, _080359F0 @ =gUnk_02034490 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08036F60 + ldr r1, _080359F4 @ =gUnk_080CF0AC + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + adds r0, #0x76 + ldrh r1, [r0] + subs r0, #2 + ldrh r2, [r0] + adds r0, #6 + ldrh r3, [r0] + adds r0, r4, #0 + bl sub_0805EC9C + pop {r4, pc} + .align 2, 0 +_080359F0: .4byte gUnk_02034490 +_080359F4: .4byte gUnk_080CF0AC + + thumb_func_start sub_080359F8 +sub_080359F8: @ 0x080359F8 + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x79 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08035A22 + movs r0, #1 + strb r0, [r2, #0xd] + adds r1, #9 + adds r0, #0xff + strh r0, [r1] + adds r0, r2, #0 + adds r0, #0x84 + ldr r1, [r0] + movs r0, #2 + strb r0, [r1] +_08035A22: + pop {pc} + + thumb_func_start sub_08035A24 +sub_08035A24: @ 0x08035A24 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x7b + ldrb r0, [r0] + cmp r0, #0x80 + bne _08035A54 + adds r2, r4, #0 + adds r2, #0x79 + movs r1, #0 + movs r0, #0x3c + strb r0, [r2] + movs r0, #2 + strb r0, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + strb r1, [r0] + ldr r0, _08035A50 @ =0x00000159 + bl sub_080A3268 + b _08035A64 + .align 2, 0 +_08035A50: .4byte 0x00000159 +_08035A54: + adds r1, r4, #0 + adds r1, #0x7a + adds r0, r4, #0 + adds r0, #0x82 + ldrh r0, [r0] + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] +_08035A64: + adds r0, r4, #0 + movs r1, #0xf + bl sub_08036FAC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08035A70 +sub_08035A70: @ 0x08035A70 + push {r4, lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x79 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08035AA8 + movs r0, #3 + strb r0, [r2, #0xd] + movs r0, #0x3c + strb r0, [r1] + ldr r2, _08035AAC @ =gUnk_03001160 + ldrb r3, [r2, #0x18] + lsls r1, r3, #0x1e + lsrs r1, r1, #0x1e + movs r4, #1 + orrs r1, r4 + subs r0, #0x40 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, #0x18] + ldr r0, _08035AB0 @ =gUnk_03000BF0 + str r2, [r0, #0x30] + strb r4, [r0, #0xe] +_08035AA8: + pop {r4, pc} + .align 2, 0 +_08035AAC: .4byte gUnk_03001160 +_08035AB0: .4byte gUnk_03000BF0 + + thumb_func_start sub_08035AB4 +sub_08035AB4: @ 0x08035AB4 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r5, r6, #0 + adds r5, #0x79 + ldrb r0, [r5] + subs r0, #1 + strb r0, [r5] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08035AE4 + ldr r1, _08035AE8 @ =gUnk_03001160 + movs r0, #0x10 + strb r0, [r1, #0x15] + movs r4, #4 + strb r4, [r1, #0x14] + movs r0, #0x1e + movs r1, #0 + movs r2, #0 + bl sub_08078AC0 + movs r0, #0x3c + strb r0, [r5] + strb r4, [r6, #0xd] +_08035AE4: + pop {r4, r5, r6, pc} + .align 2, 0 +_08035AE8: .4byte gUnk_03001160 + + thumb_func_start sub_08035AEC +sub_08035AEC: @ 0x08035AEC + push {lr} + adds r3, r0, #0 + adds r2, r3, #0 + adds r2, #0x79 + ldrb r0, [r2] + subs r1, r0, #1 + strb r1, [r2] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08035B18 + movs r0, #5 + strb r0, [r3, #0xd] + movs r0, #0x2d + strb r0, [r2] + ldr r1, _08035B14 @ =gUnk_03001160 + movs r0, #0 + strb r0, [r1, #0x14] + b _08035B2C + .align 2, 0 +_08035B14: .4byte gUnk_03001160 +_08035B18: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1e + bne _08035B2C + ldr r0, _08035B30 @ =gUnk_03001160 + movs r2, #0x18 + rsbs r2, r2, #0 + movs r1, #0xc + bl sub_080A2CFC +_08035B2C: + pop {pc} + .align 2, 0 +_08035B30: .4byte gUnk_03001160 + + thumb_func_start sub_08035B34 +sub_08035B34: @ 0x08035B34 + push {r4, r5, lr} + adds r3, r0, #0 + ldr r2, _08035B70 @ =gUnk_03001160 + ldrb r5, [r2, #0x14] + cmp r5, #4 + bne _08035B7C + adds r2, r3, #0 + adds r2, #0x79 + ldrb r0, [r2] + adds r1, r0, #1 + strb r1, [r2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1e + bls _08035B92 + movs r4, #0 + movs r0, #1 + strb r0, [r3, #0xc] + strb r4, [r3, #0xd] + ldr r0, _08035B74 @ =gUnk_03000BF0 + strb r5, [r0, #0xe] + adds r0, r3, #0 + bl sub_08036C90 + ldr r0, _08035B78 @ =gUnk_02034490 + strb r4, [r0] + movs r0, #0x2e + bl sub_080A3268 + b _08035B92 + .align 2, 0 +_08035B70: .4byte gUnk_03001160 +_08035B74: .4byte gUnk_03000BF0 +_08035B78: .4byte gUnk_02034490 +_08035B7C: + adds r1, r3, #0 + adds r1, #0x79 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08035B92 + movs r0, #4 + strb r0, [r2, #0x14] +_08035B92: + pop {r4, r5, pc} + + thumb_func_start sub_08035B94 +sub_08035B94: @ 0x08035B94 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + ldrb r0, [r5, #0xa] + cmp r0, #0 + beq _08035BAE + ldr r0, [r5, #0x50] + adds r0, #0x3d + ldrb r0, [r0] + adds r1, r5, #0 + adds r1, #0x3d + strb r0, [r1] +_08035BAE: + ldrb r0, [r5, #0xa] + cmp r0, #7 + bls _08035BB6 + b _08035F6C +_08035BB6: + lsls r0, r0, #2 + ldr r1, _08035BC0 @ =_08035BC4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08035BC0: .4byte _08035BC4 +_08035BC4: @ jump table + .4byte _08035F16 @ case 0 + .4byte _08035BE4 @ case 1 + .4byte _08035BE4 @ case 2 + .4byte _08035BE4 @ case 3 + .4byte _08035BE4 @ case 4 + .4byte _08035E78 @ case 5 + .4byte _08035DB0 @ case 6 + .4byte _08035D14 @ case 7 +_08035BE4: + ldr r0, [r5, #0x50] + adds r0, #0x6d + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08035BF6 + bl sub_0805E780 +_08035BF6: + adds r1, r5, #0 + adds r1, #0x84 + ldr r0, [r1] + ldr r0, [r0, #8] + adds r0, #0x45 + ldrb r0, [r0] + adds r6, r1, #0 + adds r7, r5, #0 + adds r7, #0x76 + movs r1, #0x74 + adds r1, r1, r5 + mov r8, r1 + cmp r0, #1 + bne _08035C42 + ldrh r1, [r7] + movs r2, #0 + ldrsh r0, [r7, r2] + cmp r0, #0 + bge _08035C20 + subs r0, r1, #4 + b _08035C22 +_08035C20: + adds r0, r1, #4 +_08035C22: + strh r0, [r7] + adds r0, r5, #0 + adds r0, #0x74 + ldrh r2, [r0] + movs r3, #0 + ldrsh r1, [r0, r3] + mov r8, r0 + cmp r1, #0 + bge _08035C3C + subs r0, r2, #4 + mov r1, r8 + strh r0, [r1] + b _08035C42 +_08035C3C: + adds r0, r2, #4 + mov r2, r8 + strh r0, [r2] +_08035C42: + ldr r0, [r5, #0x50] + adds r1, r5, #0 + bl sub_0806FAD8 + ldr r0, [r6] + ldrb r0, [r0, #2] + cmp r0, #0 + bne _08035C66 + ldr r1, [r5, #0x50] + ldrb r0, [r1, #0xc] + cmp r0, #3 + beq _08035C66 + ldrb r0, [r1, #0xd] + subs r0, #3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _08035C82 +_08035C66: + movs r0, #0xf + ldrsb r0, [r5, r0] + cmp r0, #0 + bge _08035C76 + ldr r0, [r6] + ldrb r0, [r0] + rsbs r0, r0, #0 + b _08035C7A +_08035C76: + ldr r0, [r6] + ldrb r0, [r0] +_08035C7A: + strb r0, [r5, #0xf] + adds r0, r5, #0 + bl sub_08036998 +_08035C82: + ldr r4, [r5, #0x50] + adds r0, r4, #0 + adds r0, #0x76 + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #9 + bl __divsi3 + adds r3, r0, #0 + lsls r0, r3, #0xd + lsrs r3, r0, #8 + ldr r0, _08035CB0 @ =0xFFFFE000 + adds r3, r3, r0 + ldr r0, [r6] + ldr r0, [r0, #8] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #1 + bne _08035CB4 + movs r1, #0x88 + lsls r1, r1, #6 + adds r3, r3, r1 + b _08035CBC + .align 2, 0 +_08035CB0: .4byte 0xFFFFE000 +_08035CB4: + lsrs r0, r3, #1 + movs r2, #0x88 + lsls r2, r2, #6 + adds r3, r0, r2 +_08035CBC: + adds r2, r4, #0 + adds r2, #0x7b + ldr r1, _08035D0C @ =gUnk_080CF0D8 + ldrb r0, [r5, #0xa] + subs r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + ldrb r2, [r2] + adds r0, r0, r2 + rsbs r0, r0, #0 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + adds r0, r5, #0 + adds r2, r3, #0 + bl sub_08036914 + ldr r2, [r5, #0x50] + adds r2, #0x7b + ldr r1, _08035D10 @ =gUnk_080CF0DC + ldrb r0, [r5, #0xa] + subs r0, #1 + adds r0, r0, r1 + ldrb r1, [r0] + ldrb r2, [r2] + adds r1, r1, r2 + adds r0, r5, #0 + adds r0, #0x79 + ldrb r0, [r0] + adds r0, r0, r1 + adds r1, r5, #0 + adds r1, #0x7b + strb r0, [r1] + ldrh r1, [r7] + mov r3, r8 + ldrh r2, [r3] + adds r0, r5, #0 + adds r0, #0x7a + ldrh r3, [r0] + b _08035E70 + .align 2, 0 +_08035D0C: .4byte gUnk_080CF0D8 +_08035D10: .4byte gUnk_080CF0DC +_08035D14: + adds r4, r5, #0 + adds r4, #0x84 + ldr r0, [r4] + ldr r0, [r0, #8] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #1 + bhi _08035D28 + bl sub_0805E780 +_08035D28: + ldr r0, [r4] + ldrb r0, [r0, #1] + subs r0, #2 + ldrb r1, [r5, #0xb] + cmp r0, r1 + bge _08035D38 + bl sub_0805E780 +_08035D38: + ldr r0, [r5, #0x50] + adds r1, r5, #0 + bl sub_0806FAB0 + ldr r0, [r4] + ldrb r0, [r0, #1] + subs r0, #2 + ldrb r2, [r5, #0xb] + cmp r0, r2 + bne _08035D8A + ldr r0, [r5, #0x50] + adds r1, r5, #0 + bl sub_0806FAB0 + ldr r4, [r5, #0x50] + adds r0, r4, #0 + adds r0, #0x74 + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #9 + bl __divsi3 + adds r3, r0, #0 + lsls r0, r3, #0xd + lsrs r3, r0, #8 + adds r4, #0x7b + ldrb r0, [r4] + rsbs r0, r0, #0 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + adds r0, r5, #0 + adds r2, r3, #0 + bl sub_08036914 + ldr r0, [r5, #0x50] + adds r0, #0x7b + ldrb r0, [r0] + rsbs r0, r0, #0 + adds r1, r5, #0 + adds r1, #0x7b + strb r0, [r1] +_08035D8A: + ldr r0, [r5, #0x50] + adds r0, #0x7c + ldrb r1, [r0] + movs r3, #1 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _08035D9C + b _08035F6C +_08035D9C: + ldrb r2, [r5, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + orrs r1, r3 + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x18] + b _08035F6C +_08035DB0: + adds r6, r5, #0 + adds r6, #0x84 + ldr r0, [r6] + ldr r0, [r0, #8] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #1 + bhi _08035DC4 + bl sub_0805E780 +_08035DC4: + adds r0, r5, #0 + bl sub_080042B8 + ldr r0, [r5, #0x50] + adds r0, #0x7c + ldrb r1, [r0] + movs r3, #1 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _08035E24 + adds r0, r5, #0 + adds r0, #0x7d + ldrb r1, [r0] + adds r0, r5, #0 + movs r2, #0x10 + bl sub_08036AF0 + adds r2, r5, #0 + adds r2, #0x41 + ldrb r1, [r2] + movs r3, #0x7f + adds r0, r3, #0 + ands r0, r1 + adds r4, r2, #0 + cmp r0, #7 + bne _08035E56 + ldrb r1, [r5, #0x10] + adds r0, r3, #0 + ands r0, r1 + strb r0, [r5, #0x10] + adds r0, r5, #0 + movs r1, #0x87 + movs r2, #0 + movs r3, #0 + bl sub_080A2988 + adds r1, r0, #0 + str r1, [r5, #0x54] + cmp r1, #0 + beq _08035E56 + ldr r0, [r5, #0x50] + str r0, [r1, #0x50] + ldr r0, [r5, #0x54] + adds r0, #0x84 + ldr r1, [r6] + str r1, [r0] + b _08035E56 +_08035E24: + ldrb r1, [r5, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + ldrb r2, [r5, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + orrs r1, r3 + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x18] + adds r0, r5, #0 + bl sub_08036998 + adds r0, r5, #0 + adds r0, #0x7d + ldrb r1, [r0] + adds r0, r5, #0 + movs r2, #4 + bl sub_080369D0 + adds r4, r5, #0 + adds r4, #0x41 +_08035E56: + movs r0, #0 + strb r0, [r4] + adds r0, r5, #0 + adds r0, #0x76 + ldrh r1, [r0] + subs r0, #2 + ldrh r2, [r0] + adds r0, #6 + ldrh r3, [r0] + rsbs r3, r3, #0 + movs r0, #0x80 + lsls r0, r0, #8 + eors r3, r0 +_08035E70: + adds r0, r5, #0 + bl sub_0805EC9C + b _08035F6C +_08035E78: + adds r4, r5, #0 + adds r4, #0x45 + ldrb r0, [r4] + cmp r0, #1 + bne _08035E88 + movs r0, #0 + strb r0, [r4] + b _08035F6C +_08035E88: + ldr r0, [r5, #0x50] + adds r1, r5, #0 + bl sub_0806FAD8 + ldr r0, [r5, #0x50] + ldrb r0, [r0, #0xd] + adds r7, r5, #0 + adds r7, #0x76 + adds r6, r5, #0 + adds r6, #0x79 + cmp r0, #4 + beq _08035EC2 + ldrb r0, [r4] + cmp r0, #1 + beq _08035EC2 + ldrb r0, [r6] + cmp r0, #0x1c + bls _08035EB0 + subs r0, #1 + strb r0, [r6] +_08035EB0: + ldrh r0, [r7] + movs r1, #0x80 + lsls r1, r1, #1 + cmp r0, r1 + bls _08035EC0 + subs r0, #1 + strh r0, [r7] + b _08035EC2 +_08035EC0: + strh r1, [r7] +_08035EC2: + ldr r4, [r5, #0x50] + adds r0, r4, #0 + adds r0, #0x74 + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #9 + bl __divsi3 + adds r3, r0, #0 + ldrb r0, [r6] + lsls r0, r0, #8 + muls r0, r3, r0 + lsrs r3, r0, #8 + adds r4, #0x7b + ldrb r0, [r4] + adds r0, #0x80 + rsbs r0, r0, #0 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + adds r0, r5, #0 + adds r2, r3, #0 + bl sub_08036914 + ldr r0, [r5, #0x50] + adds r0, #0x7b + ldrb r0, [r0] + adds r1, r5, #0 + adds r1, #0x7b + strb r0, [r1] + ldrh r1, [r7] + adds r0, r5, #0 + adds r0, #0x74 + ldrh r2, [r0] + adds r0, #6 + ldrh r3, [r0] + adds r0, r5, #0 + bl sub_0805EC9C + adds r0, r5, #0 + bl sub_0800445C + b _08035F6C +_08035F16: + adds r0, r5, #0 + bl sub_0800445C + adds r0, r5, #0 + bl sub_08036F60 + adds r0, r5, #0 + adds r0, #0x84 + ldr r1, [r0] + ldrb r0, [r1, #6] + cmp r0, #0 + beq _08035F48 + subs r0, #1 + strb r0, [r1, #6] + ldr r0, _08035F74 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _08035F48 + adds r0, r5, #0 + movs r1, #0xf + movs r2, #3 + bl sub_0804A98C +_08035F48: + ldr r1, _08035F78 @ =gUnk_080CF0C4 + ldrb r0, [r5, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + adds r0, r5, #0 + adds r0, #0x76 + ldrh r1, [r0] + subs r0, #2 + ldrh r2, [r0] + adds r0, #6 + ldrh r3, [r0] + adds r0, r5, #0 + bl sub_0805EC9C +_08035F6C: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08035F74: .4byte gUnk_030010A0 +_08035F78: .4byte gUnk_080CF0C4 + + thumb_func_start sub_08035F7C +sub_08035F7C: @ 0x08035F7C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r2, _08035FD0 @ =gUnk_03001160 + ldr r0, [r2, #0x2c] + ldr r1, [r4, #0x2c] + subs r0, r0, r1 + ldr r1, [r2, #0x30] + ldr r2, [r4, #0x30] + subs r1, r1, r2 + bl sub_080045DA + adds r1, r4, #0 + adds r1, #0x7b + ldrb r1, [r1] + rsbs r1, r1, #0 + movs r2, #0x80 + eors r1, r2 + subs r0, r0, r1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r0, r4, #0 + adds r0, #0x7c + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + movs r1, #0x20 + cmp r0, #0 + bne _08035FB6 + movs r1, #8 +_08035FB6: + cmn r2, r1 + ble _08035FEE + cmp r2, r1 + bge _08035FEE + adds r0, r4, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0xff + beq _08035FD4 + adds r0, r4, #0 + bl sub_08036C90 + b _08036074 + .align 2, 0 +_08035FD0: .4byte gUnk_03001160 +_08035FD4: + adds r0, r4, #0 + adds r0, #0x78 + ldrb r0, [r0] + cmp r0, #0 + bne _08035FE6 + adds r0, r4, #0 + bl sub_08036E00 + b _08036028 +_08035FE6: + adds r0, r4, #0 + bl sub_08036D70 + b _08036028 +_08035FEE: + cmp r2, #0x80 + bls _0803600E + adds r2, r4, #0 + adds r2, #0x7a + adds r0, r4, #0 + adds r0, #0x82 + ldrh r0, [r0] + ldrh r1, [r2] + adds r0, r0, r1 + movs r1, #0 + strh r0, [r2] + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + strb r1, [r0, #4] + b _08036028 +_0803600E: + adds r2, r4, #0 + adds r2, #0x7a + adds r1, r4, #0 + adds r1, #0x82 + ldrh r0, [r2] + ldrh r1, [r1] + subs r0, r0, r1 + strh r0, [r2] + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + movs r0, #1 + strb r0, [r1, #4] +_08036028: + adds r0, r4, #0 + adds r0, #0x7b + ldrb r0, [r0] + rsbs r0, r0, #0 + movs r1, #0x80 + eors r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1b + strb r0, [r4, #0x15] + adds r5, r4, #0 + adds r5, #0x7c + ldrb r1, [r5] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0803606C + adds r3, r4, #0 + adds r3, #0x82 + ldrh r2, [r3] + ldr r0, _08036060 @ =0x0000027F + cmp r2, r0 + bhi _0803606C + ldrb r1, [r5] + cmp r1, #1 + beq _08036064 + cmp r1, #3 + beq _08036068 + b _0803606C + .align 2, 0 +_08036060: .4byte 0x0000027F +_08036064: + adds r0, r2, #1 + b _0803606A +_08036068: + adds r0, r2, #2 +_0803606A: + strh r0, [r3] +_0803606C: + adds r0, r4, #0 + movs r1, #0x1f + bl sub_08036FAC +_08036074: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08036078 +sub_08036078: @ 0x08036078 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x79 + ldrb r0, [r5] + subs r0, #1 + strb r0, [r5] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _080360A0 + adds r0, r4, #0 + adds r0, #0x7c + ldrb r1, [r0] + cmp r1, #0 + beq _080360A0 + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080360B2 +_080360A0: + adds r1, r4, #0 + adds r1, #0x78 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08036D4C + b _080360BE +_080360B2: + adds r0, r4, #0 + bl sub_080AEF88 + cmp r0, #0 + bne _080360BE + strb r0, [r5] +_080360BE: + adds r0, r4, #0 + movs r1, #0x1f + bl sub_08036FAC + pop {r4, r5, pc} + + thumb_func_start sub_080360C8 +sub_080360C8: @ 0x080360C8 + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x79 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _080360E4 + adds r0, r2, #0 + bl sub_08036DA0 +_080360E4: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080360E8 +sub_080360E8: @ 0x080360E8 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x79 + ldrb r0, [r1] + cmp r0, #0 + bne _08036178 + adds r0, r4, #0 + bl sub_080AEF88 + movs r2, #0 + ldrb r0, [r4, #0x15] + cmp r0, #0 + beq _08036116 + cmp r0, #0x10 + beq _08036116 + ldrh r0, [r4, #0x2a] + movs r1, #0xee + lsls r1, r1, #8 + ands r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r2, r0, #0x1f +_08036116: + ldrb r0, [r4, #0x15] + cmp r0, #0x18 + beq _0803612C + cmp r0, #8 + beq _0803612C + ldrh r1, [r4, #0x2a] + movs r0, #0xee + ands r0, r1 + cmp r0, #0 + beq _0803612C + movs r2, #1 +_0803612C: + cmp r2, #0 + beq _0803617C + adds r1, r4, #0 + adds r1, #0x42 + movs r0, #0x20 + strb r0, [r1] + adds r1, #4 + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r1] + ldrb r0, [r4, #0x15] + movs r1, #0x10 + eors r0, r1 + adds r1, r4, #0 + adds r1, #0x3e + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + ldrb r0, [r1, #6] + adds r0, #0x3c + strb r0, [r1, #6] + adds r0, r4, #0 + bl sub_08036C90 + movs r0, #0x3c + movs r1, #0 + bl sub_08080964 + movs r0, #0xac + lsls r0, r0, #1 + bl sub_080A3268 + movs r0, #0xa6 + lsls r0, r0, #1 + bl sub_080A3268 + b _0803617C +_08036178: + subs r0, #1 + strb r0, [r1] +_0803617C: + adds r0, r4, #0 + movs r1, #0xf + bl sub_08036FAC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08036188 +sub_08036188: @ 0x08036188 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r1, _080361EC @ =gUnk_080CF0E0 + ldrb r0, [r5, #0xb] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + adds r0, r5, #0 + bl sub_08036FE4 + adds r0, r5, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + beq _080361EA + ldr r4, _080361F0 @ =gUnk_03001160 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + bl sub_08078B48 + bl sub_08077B20 + str r5, [r4, #0x50] + adds r0, r5, #0 + adds r0, #0x7b + ldrb r1, [r0] + adds r1, #0x80 + rsbs r1, r1, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r2, #0xe0 + lsls r2, r2, #6 + adds r0, r4, #0 + bl sub_08036914 +_080361EA: + pop {r4, r5, pc} + .align 2, 0 +_080361EC: .4byte gUnk_080CF0E0 +_080361F0: .4byte gUnk_03001160 + + thumb_func_start sub_080361F4 +sub_080361F4: @ 0x080361F4 + push {lr} + adds r2, r0, #0 + adds r0, #0x7d + ldrb r0, [r0] + cmp r0, #4 + bne _08036208 + adds r0, r2, #0 + bl sub_08036D4C + b _08036236 +_08036208: + adds r1, r2, #0 + adds r1, #0x82 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r1] + movs r0, #1 + strb r0, [r2, #0xb] + subs r1, #6 + ldrb r1, [r1] + ands r0, r1 + cmp r0, #0 + bne _08036228 + adds r1, r2, #0 + adds r1, #0x79 + movs r0, #0x16 + b _0803622E +_08036228: + adds r1, r2, #0 + adds r1, #0x79 + movs r0, #0 +_0803622E: + strb r0, [r1] + ldr r0, _08036238 @ =0x00000155 + bl sub_080A3268 +_08036236: + pop {pc} + .align 2, 0 +_08036238: .4byte 0x00000155 + + thumb_func_start sub_0803623C +sub_0803623C: @ 0x0803623C + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x74 + ldrh r0, [r1] + cmp r0, #0xbf + bhi _08036250 + adds r0, #1 + strh r0, [r1] + b _080362A0 +_08036250: + adds r3, r2, #0 + adds r3, #0x79 + ldrb r0, [r3] + subs r0, #1 + strb r0, [r3] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _080362A0 + adds r0, r2, #0 + adds r0, #0x7d + ldrb r1, [r0] + cmp r1, #1 + bne _08036292 + movs r0, #3 + strb r0, [r2, #0xb] + adds r0, r2, #0 + adds r0, #0x7c + ldrb r0, [r0] + ands r1, r0 + cmp r1, #0 + beq _08036280 + movs r0, #0x3c + b _08036282 +_08036280: + movs r0, #0x78 +_08036282: + strb r0, [r3] + adds r0, r2, #0 + adds r0, #0x84 + ldr r1, [r0] + subs r0, #9 + ldrb r0, [r0] + strb r0, [r1, #3] + b _0803629A +_08036292: + movs r0, #2 + strb r0, [r2, #0xb] + movs r0, #0x2d + strb r0, [r3] +_0803629A: + ldr r0, _080362A4 @ =0x00000155 + bl sub_080A3268 +_080362A0: + pop {pc} + .align 2, 0 +_080362A4: .4byte 0x00000155 + + thumb_func_start sub_080362A8 +sub_080362A8: @ 0x080362A8 + push {r4, lr} + adds r2, r0, #0 + movs r0, #0x79 + adds r0, r0, r2 + mov ip, r0 + ldrb r0, [r0] + cmp r0, #0 + bne _080362FA + adds r4, r2, #0 + adds r4, #0x76 + adds r1, r2, #0 + adds r1, #0x74 + ldrh r3, [r1] + ldrh r0, [r4] + cmp r0, r3 + bhs _080362D0 + adds r0, r3, #0 + subs r0, #8 + strh r0, [r1] + b _08036300 +_080362D0: + movs r0, #3 + strb r0, [r2, #0xb] + ldrh r0, [r4] + strh r0, [r1] + adds r0, r2, #0 + adds r0, #0x7d + ldrb r0, [r0] + cmp r0, #2 + beq _080362E6 + movs r0, #0x3c + b _080362FC +_080362E6: + movs r0, #0 + mov r1, ip + strb r0, [r1] + adds r0, r2, #0 + movs r1, #0x87 + movs r2, #4 + movs r3, #0 + bl sub_080A2988 + b _08036300 +_080362FA: + subs r0, #1 +_080362FC: + mov r1, ip + strb r0, [r1] +_08036300: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08036304 +sub_08036304: @ 0x08036304 + push {lr} + mov ip, r0 + ldr r0, _08036328 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _0803632C + mov r2, ip + adds r2, #0x84 + ldr r0, [r2] + ldr r1, [r0, #8] + adds r1, #0x76 + ldrh r0, [r1] + subs r0, #8 + strh r0, [r1] + b _08036350 + .align 2, 0 +_08036328: .4byte gUnk_030010A0 +_0803632C: + mov r2, ip + adds r2, #0x84 + ldr r0, [r2] + ldr r1, [r0, #8] + adds r1, #0x76 + ldrh r0, [r1] + adds r0, #8 + strh r0, [r1] + ldr r0, [r2] + ldr r0, [r0, #8] + adds r3, r0, #0 + adds r3, #0x76 + ldrh r0, [r3] + movs r1, #0xc0 + lsls r1, r1, #1 + cmp r0, r1 + bls _08036350 + strh r1, [r3] +_08036350: + mov r0, ip + adds r0, #0x7d + ldrb r1, [r0] + adds r3, r0, #0 + cmp r1, #1 + beq _0803637A + ldr r0, [r2] + ldr r0, [r0, #8] + adds r1, r0, #0 + adds r1, #0x79 + ldrb r0, [r1] + cmp r0, #0x1f + bhi _0803637A + adds r0, #1 + strb r0, [r1] + ldr r0, [r2] + ldr r1, [r0, #8] + adds r1, #0x76 + ldrh r0, [r1] + adds r0, #8 + strh r0, [r1] +_0803637A: + ldr r0, _0803638C @ =gUnk_080CF0F0 + ldrb r1, [r3] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + mov r0, ip + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0803638C: .4byte gUnk_080CF0F0 + + thumb_func_start sub_08036390 +sub_08036390: @ 0x08036390 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xf + movs r2, #0 + bl sub_0804A98C + str r0, [r4, #0x54] + cmp r0, #0 + beq _080363B4 + str r4, [r0, #0x50] + ldr r0, [r4, #0x54] + adds r1, r4, #0 + adds r1, #0x7b + ldrb r1, [r1] + rsbs r1, r1, #0 + movs r2, #0x80 + eors r1, r2 + strb r1, [r0, #0x15] +_080363B4: + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + ldr r1, [r0, #8] + adds r1, #0x79 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08036C90 + pop {r4, pc} + + thumb_func_start sub_080363CC +sub_080363CC: @ 0x080363CC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + adds r7, r4, #0 + adds r7, #0x80 + ldrb r2, [r7] + cmp r2, #0 + bne _080364CC + ldr r5, _08036498 @ =gUnk_03001160 + ldr r0, [r5, #0x2c] + ldr r1, [r4, #0x2c] + subs r0, r0, r1 + ldr r1, [r5, #0x30] + ldr r2, [r4, #0x30] + subs r1, r1, r2 + bl sub_080045DA + strb r0, [r4, #0x15] + adds r2, r4, #0 + adds r2, #0x7b + ldrb r0, [r2] + adds r0, #0x80 + rsbs r0, r0, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r4, #0x15] + subs r3, r0, r1 + mov r8, r2 + cmp r3, #0 + bge _0803640C + rsbs r3, r3, #0 +_0803640C: + adds r6, r4, #0 + adds r6, #0x79 + cmp r3, #0xf + bgt _080364AA + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0xf0 + bl sub_0806FC80 + cmp r0, #0 + beq _080364AA + ldr r2, _0803649C @ =gUnk_03003F80 + ldr r1, [r2, #0x30] + movs r0, #0x80 + lsls r0, r0, #4 + ands r0, r1 + cmp r0, #0 + bne _080364A4 + ldrb r1, [r5, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080364AA + movs r1, #0xa0 + lsls r1, r1, #2 + mov r0, r8 + ldrb r2, [r0] + rsbs r2, r2, #0 + adds r0, r5, #0 + bl sub_0806F62C + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0x48 + bl sub_0806FC80 + cmp r0, #0 + beq _080364AA + movs r0, #1 + strb r0, [r7] + movs r0, #2 + strb r0, [r6] + ldr r2, _080364A0 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + movs r1, #0x84 + lsls r1, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #0x10 + ldr r1, [r4, #0x2c] + subs r0, r0, r1 + ldrh r1, [r2, #8] + adds r1, #0x88 + lsls r1, r1, #0x10 + ldr r2, [r4, #0x30] + subs r1, r1, r2 + bl sub_080045DA + adds r2, r4, #0 + adds r2, #0x84 + ldr r1, [r2] + strb r0, [r1, #3] + ldr r1, [r2] + ldrb r0, [r1, #3] + adds r0, #0x80 + rsbs r0, r0, #0 + strb r0, [r1, #3] + movs r0, #0xed + bl sub_080A3268 + b _080364AA + .align 2, 0 +_08036498: .4byte gUnk_03001160 +_0803649C: .4byte gUnk_03003F80 +_080364A0: .4byte gUnk_03000BF0 +_080364A4: + ldr r0, _080364C4 @ =0xFFFFF7FF + ands r1, r0 + str r1, [r2, #0x30] +_080364AA: + ldr r0, _080364C8 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0803657A + adds r0, r4, #0 + movs r1, #0x87 + movs r2, #2 + movs r3, #0 + bl sub_080A2988 + b _0803657A + .align 2, 0 +_080364C4: .4byte 0xFFFFF7FF +_080364C8: .4byte gUnk_030010A0 +_080364CC: + adds r0, r4, #0 + adds r0, #0x7c + ldrb r1, [r0] + movs r5, #1 + adds r0, r5, #0 + ands r0, r1 + adds r3, r4, #0 + adds r3, #0x84 + cmp r0, #0 + bne _080364F0 + ldr r0, [r3] + adds r1, r4, #0 + adds r1, #0x7b + ldrb r0, [r0, #3] + mov r8, r1 + ldrb r6, [r1] + cmp r0, r6 + bne _08036570 +_080364F0: + cmp r2, #1 + bne _08036510 + movs r0, #2 + strb r0, [r7] + strb r0, [r4, #0xb] + adds r1, r4, #0 + adds r1, #0x79 + movs r0, #0x2d + strb r0, [r1] + adds r1, #9 + movs r2, #0 + adds r0, #0xd3 + strh r0, [r1] + ldr r0, [r3] + strb r2, [r0, #2] + b _08036652 +_08036510: + movs r0, #0 + strb r0, [r7] + adds r1, r4, #0 + adds r1, #0x82 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r1] + ldr r0, [r3] + ldr r1, [r0, #8] + adds r1, #0x79 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r1, _0803656C @ =gUnk_03001160 + ldrb r2, [r1, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + movs r2, #1 + orrs r0, r2 + strb r0, [r1, #0x18] + ldrb r2, [r1, #0x10] + movs r0, #0x7f + ands r0, r2 + strb r0, [r1, #0x10] + adds r1, #0x38 + strb r5, [r1] + movs r0, #0x80 + lsls r0, r0, #3 + adds r1, r4, #0 + adds r1, #0x7b + ldrb r1, [r1] + adds r1, #0x80 + rsbs r1, r1, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x1b + movs r2, #0x30 + bl sub_080792BC + adds r0, r4, #0 + bl sub_08036C90 + movs r0, #0xef + bl sub_080A3268 + b _08036652 + .align 2, 0 +_0803656C: .4byte gUnk_03001160 +_08036570: + adds r1, r4, #0 + adds r1, #0x79 + movs r0, #2 + strb r0, [r1] + adds r6, r1, #0 +_0803657A: + ldrb r0, [r6] + cmp r0, #0 + bne _08036598 + adds r0, r4, #0 + adds r0, #0x76 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x74 + movs r2, #0 + strh r0, [r1] + strb r2, [r4, #0xb] + adds r0, r4, #0 + bl sub_08036C90 + b _08036652 +_08036598: + subs r2, r0, #1 + strb r2, [r6] + ldr r0, _080365E4 @ =gUnk_03003F80 + ldr r1, [r0, #0x30] + movs r0, #0x80 + lsls r0, r0, #4 + cmp r1, r0 + bne _080365F8 + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x3c + bne _080365F8 + ldr r2, _080365E8 @ =gUnk_03001160 + ldr r0, [r2, #0x2c] + ldr r1, [r4, #0x2c] + subs r0, r0, r1 + ldr r1, [r2, #0x30] + ldr r2, [r4, #0x30] + subs r1, r1, r2 + bl sub_080045DA + adds r3, r0, #0 + mov r7, r8 + ldrb r2, [r7] + rsbs r0, r2, #0 + movs r1, #0x80 + eors r0, r1 + subs r0, r3, r0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x80 + bls _080365EC + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + adds r0, r2, #0 + adds r0, #0x30 + b _080365F6 + .align 2, 0 +_080365E4: .4byte gUnk_03003F80 +_080365E8: .4byte gUnk_03001160 +_080365EC: + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + adds r0, r2, #0 + subs r0, #0x30 +_080365F6: + strb r0, [r1, #3] +_080365F8: + adds r0, r4, #0 + adds r0, #0x7c + ldrb r0, [r0] + movs r5, #1 + adds r2, r5, #0 + ands r2, r0 + cmp r2, #0 + bne _08036652 + adds r3, r4, #0 + adds r3, #0x84 + ldr r1, [r3] + ldrb r0, [r1, #3] + mov r6, r8 + ldrb r6, [r6] + cmp r0, r6 + beq _08036650 + strb r5, [r1, #2] + ldr r0, [r3] + ldrb r0, [r0, #3] + mov r7, r8 + ldrb r1, [r7] + subs r0, r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x80 + bls _0803663E + adds r2, r4, #0 + adds r2, #0x7a + adds r0, r4, #0 + adds r0, #0x82 + ldrh r1, [r2] + ldrh r0, [r0] + subs r1, r1, r0 + strh r1, [r2] + b _08036652 +_0803663E: + adds r1, r4, #0 + adds r1, #0x7a + adds r0, r4, #0 + adds r0, #0x82 + ldrh r0, [r0] + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] + b _08036652 +_08036650: + strb r2, [r1, #2] +_08036652: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08036658 +sub_08036658: @ 0x08036658 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r5, #0 + adds r4, #0x79 + ldrb r1, [r4] + adds r0, r1, #0 + cmp r0, #0xff + bne _08036678 + movs r0, #0 + strb r0, [r5, #0xb] + adds r0, r5, #0 + bl sub_08036C90 + movs r0, #0x78 + strb r0, [r4] + b _080366AC +_08036678: + adds r0, r1, #1 + strb r0, [r4] + movs r0, #1 + rsbs r0, r0, #0 + bl sub_0805308C + ldr r0, _080366B0 @ =gUnk_030010A0 + ldr r1, [r0] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _080366AC + movs r0, #7 + ands r1, r0 + cmp r1, #0 + bne _080366A0 + movs r0, #0x92 + lsls r0, r0, #1 + bl sub_080A3268 +_080366A0: + adds r0, r5, #0 + movs r1, #0x87 + movs r2, #3 + movs r3, #0 + bl sub_080A2988 +_080366AC: + pop {r4, r5, pc} + .align 2, 0 +_080366B0: .4byte gUnk_030010A0 + + thumb_func_start sub_080366B4 +sub_080366B4: @ 0x080366B4 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x79 + ldrb r0, [r2] + adds r1, r0, #0 + cmp r1, #0 + bne _080366D4 + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + strb r1, [r0, #2] + adds r0, r4, #0 + bl sub_08036C90 + b _08036706 +_080366D4: + subs r0, #1 + strb r0, [r2] + ldr r0, _08036708 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _08036706 + adds r0, r4, #0 + movs r1, #0xf + movs r2, #2 + bl sub_0804A98C + str r0, [r4, #0x54] + cmp r0, #0 + beq _08036706 + str r4, [r0, #0x50] + ldr r2, [r4, #0x54] + adds r0, r4, #0 + adds r0, #0x7b + ldrb r0, [r0] + rsbs r0, r0, #0 + movs r1, #0x80 + eors r0, r1 + strb r0, [r2, #0x15] +_08036706: + pop {r4, pc} + .align 2, 0 +_08036708: .4byte gUnk_030010A0 + + thumb_func_start sub_0803670C +sub_0803670C: @ 0x0803670C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0803675C @ =gUnk_080CF100 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + ldrb r0, [r1, #6] + cmp r0, #0 + beq _08036746 + subs r0, #1 + strb r0, [r1, #6] + ldr r0, _08036760 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _08036746 + adds r0, r4, #0 + movs r1, #0xf + movs r2, #3 + bl sub_0804A98C +_08036746: + adds r0, r4, #0 + adds r0, #0x76 + ldrh r1, [r0] + subs r0, #2 + ldrh r2, [r0] + adds r0, #6 + ldrh r3, [r0] + adds r0, r4, #0 + bl sub_0805EC9C + pop {r4, pc} + .align 2, 0 +_0803675C: .4byte gUnk_080CF100 +_08036760: .4byte gUnk_030010A0 + + thumb_func_start sub_08036764 +sub_08036764: @ 0x08036764 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + strh r1, [r4, #0x2a] + adds r0, r4, #0 + adds r0, #0x7b + ldrb r0, [r0] + rsbs r0, r0, #0 + movs r1, #0x80 + eors r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1b + strb r0, [r4, #0x15] + adds r1, r4, #0 + adds r1, #0x79 + movs r0, #0x78 + strb r0, [r1] + adds r1, #9 + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r1] + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + movs r0, #4 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080368D8 + adds r0, r4, #0 + bl sub_080367B0 + pop {r4, pc} + + thumb_func_start sub_080367B0 +sub_080367B0: @ 0x080367B0 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_080AEF88 + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _0803683A + movs r0, #2 + strb r0, [r4, #0xd] + adds r3, r4, #0 + adds r3, #0x84 + ldr r1, [r3] + adds r0, r4, #0 + adds r0, #0x7b + ldrb r0, [r0] + strb r0, [r1, #3] + ldrh r1, [r4, #0x2a] + movs r0, #0xee + lsls r0, r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080367E4 + ldr r1, [r3] + ldrb r0, [r1, #3] + rsbs r0, r0, #0 + strb r0, [r1, #3] +_080367E4: + ldrh r1, [r4, #0x2a] + movs r0, #0xee + ands r0, r1 + cmp r0, #0 + beq _080367FE + ldr r0, [r3] + ldrb r1, [r0, #3] + rsbs r1, r1, #0 + movs r5, #0x80 + rsbs r5, r5, #0 + adds r2, r5, #0 + eors r1, r2 + strb r1, [r0, #3] +_080367FE: + adds r1, r4, #0 + adds r1, #0x42 + movs r0, #0x18 + strb r0, [r1] + adds r1, #4 + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r1] + ldrb r0, [r4, #0x15] + movs r1, #0x10 + eors r0, r1 + adds r1, r4, #0 + adds r1, #0x3e + strb r0, [r1] + ldr r1, [r3] + ldrb r0, [r1, #6] + adds r0, #0x1e + strb r0, [r1, #6] + movs r0, #0x1e + movs r1, #0 + bl sub_08080964 + movs r0, #0xac + lsls r0, r0, #1 + bl sub_080A3268 + movs r0, #0xa6 + lsls r0, r0, #1 + bl sub_080A3268 +_0803683A: + adds r1, r4, #0 + adds r1, #0x79 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08036852 + subs r1, #0x34 + movs r0, #0 + strb r0, [r1] +_08036852: + ldr r0, _08036868 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #0x1f + ands r0, r1 + cmp r0, #0 + bne _08036864 + ldr r0, _0803686C @ =0x00000159 + bl sub_080A3268 +_08036864: + pop {r4, r5, pc} + .align 2, 0 +_08036868: .4byte gUnk_030010A0 +_0803686C: .4byte 0x00000159 + + thumb_func_start sub_08036870 +sub_08036870: @ 0x08036870 + push {lr} + adds r3, r0, #0 + adds r0, #0x84 + ldr r0, [r0] + ldrb r1, [r0, #3] + movs r0, #0x7b + adds r0, r0, r3 + mov ip, r0 + ldrb r0, [r0] + subs r1, r1, r0 + adds r0, r1, #7 + cmp r0, #0xe + bhi _080368AA + movs r2, #0 + movs r0, #1 + strb r0, [r3, #0xd] + mov r1, ip + ldrb r0, [r1] + rsbs r0, r0, #0 + movs r1, #0x80 + eors r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1b + strb r0, [r3, #0x15] + strh r2, [r3, #0x2a] + adds r0, r3, #0 + bl sub_080AEF88 + b _080368D4 +_080368AA: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x80 + bls _080368C4 + adds r2, r3, #0 + adds r2, #0x7a + adds r0, r3, #0 + adds r0, #0x82 + ldrh r1, [r2] + ldrh r0, [r0] + subs r1, r1, r0 + strh r1, [r2] + b _080368D4 +_080368C4: + adds r1, r3, #0 + adds r1, #0x7a + adds r0, r3, #0 + adds r0, #0x82 + ldrh r0, [r0] + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] +_080368D4: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080368D8 +sub_080368D8: @ 0x080368D8 + push {lr} + adds r3, r0, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + beq _08036902 + ldr r2, _08036910 @ =gUnk_03001160 + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + adds r2, #0x38 + movs r0, #1 + strb r0, [r2] +_08036902: + adds r0, r3, #0 + adds r0, #0x76 + movs r1, #0xa0 + strh r1, [r0] + subs r0, #2 + strh r1, [r0] + pop {pc} + .align 2, 0 +_08036910: .4byte gUnk_03001160 + + thumb_func_start sub_08036914 +sub_08036914: @ 0x08036914 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + adds r5, r0, #0 + adds r4, r1, #0 + adds r6, r2, #0 + ldr r0, _08036994 @ =gUnk_080C9160 + mov sb, r0 + lsls r0, r4, #1 + add r0, sb + movs r1, #0 + ldrsh r0, [r0, r1] + lsls r6, r6, #0x10 + asrs r6, r6, #0x10 + adds r1, r6, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x80 + lsls r1, r1, #1 + mov r8, r1 + bl sub_0806FA04 + ldr r1, [r5, #0x50] + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r1, #0x2c] + adds r1, r1, r0 + str r1, [r5, #0x2c] + adds r4, #0x40 + lsls r4, r4, #1 + add r4, sb + movs r1, #0 + ldrsh r0, [r4, r1] + adds r1, r6, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + mov r1, r8 + bl sub_0806FA04 + ldr r2, [r5, #0x50] + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r2, #0x30] + subs r1, r1, r0 + str r1, [r5, #0x30] + adds r2, #0x62 + ldrb r0, [r2] + adds r1, r5, #0 + adds r1, #0x62 + strb r0, [r1] + ldr r0, [r5, #0x50] + adds r0, #0x63 + ldrb r0, [r0] + adds r5, #0x63 + strb r0, [r5] + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, pc} + .align 2, 0 +_08036994: .4byte gUnk_080C9160 + + thumb_func_start sub_08036998 +sub_08036998: @ 0x08036998 + push {r4, lr} + adds r2, r0, #0 + adds r3, r2, #0 + adds r3, #0x79 + ldrb r0, [r2, #0xf] + ldrb r4, [r3] + adds r1, r0, r4 + strb r1, [r3] + ldrb r4, [r2, #0xf] + movs r0, #0xf + ldrsb r0, [r2, r0] + cmp r0, #0 + bge _080369BE + ldrb r0, [r2, #0xe] + lsls r1, r1, #0x18 + lsls r0, r0, #0x18 + cmn r1, r0 + bge _080369CC + b _080369C8 +_080369BE: + movs r0, #0 + ldrsb r0, [r3, r0] + ldrb r1, [r2, #0xe] + cmp r0, r1 + ble _080369CC +_080369C8: + rsbs r0, r4, #0 + strb r0, [r2, #0xf] +_080369CC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080369D0 +sub_080369D0: @ 0x080369D0 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov ip, r1 + adds r6, r2, #0 + adds r1, r0, #0 + adds r1, #0x84 + ldr r4, [r1] + ldr r2, [r4, #0xc] + ldrb r1, [r4, #1] + subs r1, #1 + lsls r1, r1, #2 + adds r3, r4, #0 + adds r3, #0xc + adds r1, r3, r1 + ldr r1, [r1] + adds r1, #0x7b + adds r0, #0x79 + ldrb r0, [r0] + ldrb r1, [r1] + adds r0, r0, r1 + adds r2, #0x7b + strb r0, [r2] + ldrb r0, [r4, #1] + movs r2, #0 + cmp r0, #1 + beq _08036A58 + adds r5, r3, #0 + lsls r0, r6, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + rsbs r0, r6, #0 + lsls r0, r0, #0x18 + asrs r7, r0, #0x18 +_08036A16: + lsls r0, r2, #2 + adds r0, r5, r0 + ldr r1, [r0] + adds r1, #0x7b + adds r2, #1 + lsls r0, r2, #2 + adds r0, r5, r0 + ldr r0, [r0] + adds r3, r0, #0 + adds r3, #0x7b + ldrb r1, [r1] + ldrb r0, [r3] + cmp r1, r0 + beq _08036A4C + subs r0, r0, r1 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + ble _08036A44 + cmp r0, r8 + ble _08036A4C + adds r0, r1, r6 + b _08036A4A +_08036A44: + cmp r0, r7 + bge _08036A4C + subs r0, r1, r6 +_08036A4A: + strb r0, [r3] +_08036A4C: + ldrb r0, [r4, #1] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r2, r0 + blo _08036A16 +_08036A58: + ldrb r0, [r4, #1] + subs r2, r0, #1 + cmp r2, #0 + beq _08036AE4 + ldr r0, _08036AEC @ =gUnk_080C9160 + mov sb, r0 + movs r1, #0x80 + mov r8, r1 + mov r1, ip + lsls r0, r1, #0x14 + asrs r6, r0, #0x10 + lsls r0, r2, #2 + adds r0, #8 + adds r5, r0, r4 + movs r7, #0x80 + lsls r7, r7, #1 +_08036A78: + subs r4, r2, #1 + ldr r0, [r5] + adds r0, #0x7b + ldrb r0, [r0] + mov r1, r8 + eors r0, r1 + lsls r0, r0, #1 + add r0, sb + movs r1, #0 + ldrsh r0, [r0, r1] + adds r1, r6, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r7, #0 + bl sub_0806FA04 + ldr r2, [r5] + ldr r1, [r5, #4] + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r1, #0x2c] + adds r1, r1, r0 + str r1, [r2, #0x2c] + ldr r0, [r5] + adds r0, #0x7b + ldrb r0, [r0] + mov r1, r8 + eors r0, r1 + adds r0, #0x40 + lsls r0, r0, #1 + add r0, sb + movs r1, #0 + ldrsh r0, [r0, r1] + adds r1, r6, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r7, #0 + bl sub_0806FA04 + ldr r2, [r5] + ldr r1, [r5, #4] + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r1, #0x30] + subs r1, r1, r0 + str r1, [r2, #0x30] + subs r5, #4 + adds r2, r4, #0 + cmp r2, #0 + bne _08036A78 +_08036AE4: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08036AEC: .4byte gUnk_080C9160 + + thumb_func_start sub_08036AF0 +sub_08036AF0: @ 0x08036AF0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + str r1, [sp] + mov r8, r2 + adds r0, #0x84 + ldr r0, [r0] + str r0, [sp, #4] + ldrb r0, [r0, #1] + subs r4, r0, #1 + cmp r4, #0 + bne _08036B10 + b _08036C80 +_08036B10: + ldr r0, [sp, #4] + adds r0, #0xc + str r0, [sp, #8] + lsls r0, r1, #0x14 + asrs r0, r0, #0x10 + mov sl, r0 +_08036B1C: + mov r1, r8 + cmp r1, #0 + bne _08036BC0 + lsls r0, r4, #2 + ldr r2, [sp, #8] + adds r6, r2, r0 + ldr r0, [r6] + subs r4, #1 + lsls r1, r4, #2 + adds r5, r2, r1 + ldr r2, [r5] + movs r3, #0x2e + ldrsh r1, [r2, r3] + movs r3, #0x32 + ldrsh r2, [r2, r3] + bl sub_080041DC + mov sb, r4 + ldr r1, [sp] + cmp r1, r0 + blo _08036B48 + b _08036C78 +_08036B48: + ldr r2, [r5] + ldr r3, [r6] + ldr r0, [r2, #0x2c] + ldr r1, [r3, #0x2c] + subs r0, r0, r1 + ldr r1, [r2, #0x30] + ldr r2, [r3, #0x30] + subs r1, r1, r2 + bl sub_080045DA + ldr r1, [r5] + adds r1, #0x7b + strb r0, [r1] + ldr r0, [r5] + adds r0, #0x7b + ldrb r0, [r0] + lsls r0, r0, #1 + ldr r2, _08036BBC @ =gUnk_080C9160 + adds r0, r0, r2 + movs r3, #0 + ldrsh r0, [r0, r3] + mov r1, sl + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x80 + lsls r1, r1, #1 + bl sub_0806FA04 + ldr r2, [r5] + ldr r1, [r6] + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r1, #0x2c] + adds r1, r1, r0 + str r1, [r2, #0x2c] + ldr r0, [r5] + adds r0, #0x7b + ldrb r0, [r0] + adds r0, #0x40 + lsls r0, r0, #1 + ldr r1, _08036BBC @ =gUnk_080C9160 + adds r0, r0, r1 + movs r2, #0 + ldrsh r0, [r0, r2] + mov r1, sl + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x80 + lsls r1, r1, #1 + bl sub_0806FA04 + ldr r2, [r5] + ldr r1, [r6] + b _08036C6E + .align 2, 0 +_08036BBC: .4byte gUnk_080C9160 +_08036BC0: + subs r2, r4, #1 + lsls r0, r2, #2 + ldr r3, [sp, #8] + adds r0, r3, r0 + ldr r0, [r0] + adds r5, r0, #0 + adds r5, #0x7b + lsls r1, r4, #2 + adds r0, r3, r1 + ldr r0, [r0] + adds r0, #0x7b + ldrb r4, [r5] + ldrb r3, [r0] + adds r7, r1, #0 + ldr r6, [sp, #4] + adds r6, #0xc + mov sb, r2 + cmp r4, r3 + beq _08036C0E + subs r0, r3, r4 + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + ble _08036BFE + mov r2, r8 + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + cmp r1, r0 + ble _08036C0E + subs r0, r3, r2 + b _08036C0C +_08036BFE: + mov r2, r8 + rsbs r0, r2, #0 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r1, r0 + bge _08036C0E + adds r0, r3, r2 +_08036C0C: + strb r0, [r5] +_08036C0E: + mov r3, sb + lsls r4, r3, #2 + adds r4, r6, r4 + ldr r0, [r4] + adds r0, #0x7b + ldrb r0, [r0] + lsls r0, r0, #1 + ldr r1, _08036C8C @ =gUnk_080C9160 + adds r0, r0, r1 + movs r2, #0 + ldrsh r0, [r0, r2] + mov r1, sl + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x80 + lsls r1, r1, #1 + bl sub_0806FA04 + ldr r2, [r4] + adds r5, r6, r7 + ldr r1, [r5] + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r1, #0x2c] + adds r1, r1, r0 + str r1, [r2, #0x2c] + ldr r0, [r4] + adds r0, #0x7b + ldrb r0, [r0] + adds r0, #0x40 + lsls r0, r0, #1 + ldr r3, _08036C8C @ =gUnk_080C9160 + adds r0, r0, r3 + movs r1, #0 + ldrsh r0, [r0, r1] + mov r1, sl + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x80 + lsls r1, r1, #1 + bl sub_0806FA04 + ldr r2, [r4] + ldr r1, [r5] +_08036C6E: + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r1, #0x30] + subs r1, r1, r0 + str r1, [r2, #0x30] +_08036C78: + mov r4, sb + cmp r4, #0 + beq _08036C80 + b _08036B1C +_08036C80: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08036C8C: .4byte gUnk_080C9160 + + thumb_func_start sub_08036C90 +sub_08036C90: @ 0x08036C90 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x7c + ldrb r2, [r0] + cmp r2, #4 + bne _08036CDC + adds r3, r4, #0 + adds r3, #0x81 + ldrb r0, [r3] + cmp r0, #0xff + beq _08036CDC + movs r1, #0 + strb r2, [r4, #0xd] + strb r1, [r4, #0xb] + adds r0, r4, #0 + adds r0, #0x80 + strb r1, [r0] + ldr r1, _08036CFC @ =gUnk_080CF124 + ldrb r0, [r3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + adds r2, r4, #0 + adds r2, #0x7e + ldrb r1, [r2] + adds r0, r0, r1 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x7d + strb r0, [r1] + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + ldrb r0, [r1] + cmp r0, #5 + bne _08036D42 + movs r0, #0xff + strb r0, [r3] +_08036CDC: + movs r0, #3 + strb r0, [r4, #0xd] + adds r2, r4, #0 + adds r2, #0x7c + ldrb r1, [r2] + movs r3, #1 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _08036D14 + ldrb r1, [r2] + cmp r1, #1 + beq _08036D00 + cmp r1, #3 + beq _08036D0A + b _08036D42 + .align 2, 0 +_08036CFC: .4byte gUnk_080CF124 +_08036D00: + adds r1, r4, #0 + adds r1, #0x79 + movs r0, #0x1e + strb r0, [r1] + b _08036D42 +_08036D0A: + adds r1, r4, #0 + adds r1, #0x79 + movs r0, #0xa + strb r0, [r1] + b _08036D42 +_08036D14: + ldr r0, _08036D2C @ =gUnk_02034350 + movs r2, #0xc + ldrsh r1, [r0, r2] + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + beq _08036D30 + adds r0, r4, #0 + adds r0, #0x79 + strb r3, [r0] + b _08036D42 + .align 2, 0 +_08036D2C: .4byte gUnk_02034350 +_08036D30: + ldr r0, _08036D44 @ =gUnk_080CF10C + bl sub_080028F4 + ldr r1, _08036D48 @ =gUnk_080CF110 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x79 + strb r1, [r0] +_08036D42: + pop {r4, pc} + .align 2, 0 +_08036D44: .4byte gUnk_080CF10C +_08036D48: .4byte gUnk_080CF110 + + thumb_func_start sub_08036D4C +sub_08036D4C: @ 0x08036D4C + mov ip, r0 + mov r1, ip + adds r1, #0x82 + movs r3, #0 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r1] + mov r2, ip + adds r2, #0x84 + ldr r1, [r2] + movs r0, #2 + strb r0, [r1] + ldr r1, [r2] + movs r0, #0xff + strb r0, [r1, #4] + mov r0, ip + strb r3, [r0, #0xd] + bx lr + + thumb_func_start sub_08036D70 +sub_08036D70: @ 0x08036D70 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + strb r1, [r4, #0xd] + movs r0, #0xc0 + strh r0, [r4, #0x24] + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + strb r1, [r0] + ldr r0, _08036D98 @ =gUnk_080CF134 + bl sub_080028F4 + ldr r1, _08036D9C @ =gUnk_080CF138 + adds r0, r0, r1 + ldrb r0, [r0] + adds r4, #0x79 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_08036D98: .4byte gUnk_080CF134 +_08036D9C: .4byte gUnk_080CF138 + + thumb_func_start sub_08036DA0 +sub_08036DA0: @ 0x08036DA0 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #0xff + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x7c + ldrb r0, [r0] + movs r2, #1 + ands r2, r0 + cmp r2, #0 + bne _08036DF0 + ldr r0, _08036DD0 @ =gUnk_02034350 + movs r3, #0xc + ldrsh r1, [r0, r3] + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + beq _08036DD4 + adds r0, r4, #0 + adds r0, #0x78 + strb r2, [r0] + b _08036DF8 + .align 2, 0 +_08036DD0: .4byte gUnk_02034350 +_08036DD4: + ldr r0, _08036DE8 @ =gUnk_080CF13C + bl sub_080028F4 + ldr r1, _08036DEC @ =gUnk_080CF13F + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x78 + strb r1, [r0] + b _08036DF8 + .align 2, 0 +_08036DE8: .4byte gUnk_080CF13C +_08036DEC: .4byte gUnk_080CF13F +_08036DF0: + adds r1, r4, #0 + adds r1, #0x78 + movs r0, #0 + strb r0, [r1] +_08036DF8: + adds r0, r4, #0 + bl sub_08036D4C + pop {r4, pc} + + thumb_func_start sub_08036E00 +sub_08036E00: @ 0x08036E00 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + adds r4, r0, #0 + movs r2, #0 + movs r0, #4 + strb r0, [r4, #0xd] + strb r2, [r4, #0xb] + adds r7, r4, #0 + adds r7, #0x81 + movs r0, #0xff + strb r0, [r7] + adds r0, r4, #0 + adds r0, #0x80 + strb r2, [r0] + adds r6, r4, #0 + adds r6, #0x84 + ldr r0, [r6] + strb r2, [r0, #2] + movs r0, #0x7c + adds r0, r0, r4 + mov r8, r0 + ldrb r5, [r0] + cmp r5, #0 + bne _08036E3E + adds r0, r4, #0 + adds r0, #0x7d + strb r2, [r0] + b _08036F00 +_08036E3E: + cmp r5, #4 + bne _08036ECC + str r2, [sp] + bl sub_08000E50 + movs r1, #3 + mov sb, r1 + ands r0, r1 + ldr r2, [sp] + cmp r0, #0 + beq _08036E62 + ldr r0, _08036E84 @ =gUnk_02034350 + movs r3, #0xc + ldrsh r1, [r0, r3] + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + beq _08036E8C +_08036E62: + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x79 + movs r0, #0x3c + strb r0, [r1] + strh r2, [r4, #0x2a] + ldr r0, [r6] + strb r5, [r0] + ldr r0, _08036E88 @ =0x00000159 + bl sub_080A3268 + b _08036F00 + .align 2, 0 +_08036E84: .4byte gUnk_02034350 +_08036E88: .4byte 0x00000159 +_08036E8C: + mov r1, r8 + ldrb r0, [r1] + cmp r0, #4 + bne _08036ECC + adds r0, r4, #0 + adds r0, #0x7e + strb r2, [r0] + bl sub_08000E50 + adds r1, r0, #0 + mov r3, sb + ands r1, r3 + ldr r0, [r6] + ldrb r0, [r0, #5] + cmp r0, r1 + beq _08036EB0 + strb r1, [r7] + b _08036EB8 +_08036EB0: + adds r0, #1 + movs r1, #3 + ands r0, r1 + strb r0, [r7] +_08036EB8: + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + subs r0, #3 + ldrb r0, [r0] + strb r0, [r1, #5] + adds r0, r4, #0 + bl sub_08036C90 + b _08036F00 +_08036ECC: + adds r0, r4, #0 + adds r0, #0x7c + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + ldr r1, _08036F0C @ =gUnk_080CF147 + cmp r0, #0 + bne _08036EDE + ldr r1, _08036F10 @ =gUnk_080CF142 +_08036EDE: + adds r2, r4, #0 + adds r2, #0x7e + ldrb r0, [r2] + adds r0, r1, r0 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x7d + strb r1, [r0] + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bls _08036F00 + movs r0, #0 + strb r0, [r2] +_08036F00: + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08036F0C: .4byte gUnk_080CF147 +_08036F10: .4byte gUnk_080CF142 + + thumb_func_start sub_08036F14 +sub_08036F14: @ 0x08036F14 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r6, r1, #0 + adds r4, #0x84 + ldr r0, [r4] + ldr r0, [r0, #8] + bl sub_0801D2B4 + movs r5, #0 + adds r7, r4, #0 +_08036F28: + ldr r0, [r7] + lsls r1, r5, #2 + adds r0, #0x20 + adds r0, r0, r1 + ldr r0, [r0] + adds r1, r6, #0 + bl sub_0801D2B4 + adds r5, #1 + cmp r5, #3 + bls _08036F28 + ldr r0, [r4] + ldrb r0, [r0, #1] + subs r5, r0, #1 + cmp r5, #0 + beq _08036F5E +_08036F48: + ldr r0, [r4] + lsls r1, r5, #2 + adds r0, #0xc + adds r0, r0, r1 + ldr r0, [r0] + adds r1, r6, #0 + bl sub_0801D2B4 + subs r5, #1 + cmp r5, #0 + bne _08036F48 +_08036F5E: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08036F60 +sub_08036F60: @ 0x08036F60 + push {r4, r5, lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xd] + cmp r0, #4 + beq _08036FA8 + adds r0, r2, #0 + adds r0, #0x7c + ldrb r1, [r0] + movs r4, #1 + adds r0, r4, #0 + ands r0, r1 + cmp r0, #0 + bne _08036FA8 + adds r3, r2, #0 + adds r3, #0x76 + movs r0, #0xe + ldrsb r0, [r2, r0] + ldrh r1, [r3] + adds r0, r0, r1 + strh r0, [r3] + adds r1, r2, #0 + adds r1, #0x74 + movs r0, #0xe + ldrsb r0, [r2, r0] + ldrh r5, [r1] + adds r0, r0, r5 + strh r0, [r1] + ldrh r0, [r3] + cmp r0, #0x9b + bhi _08036FA0 + strb r4, [r2, #0xe] + b _08036FA8 +_08036FA0: + cmp r0, #0xa4 + bls _08036FA8 + movs r0, #0xff + strb r0, [r2, #0xe] +_08036FA8: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08036FAC +sub_08036FAC: @ 0x08036FAC + push {lr} + adds r2, r0, #0 + ldr r0, _08036FD0 @ =gUnk_030010A0 + ldr r0, [r0] + ands r0, r1 + cmp r0, #0 + bne _08036FDE + adds r0, r2, #0 + adds r0, #0x7c + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08036FD8 + ldr r0, _08036FD4 @ =0x00000163 + bl sub_080A3268 + b _08036FDE + .align 2, 0 +_08036FD0: .4byte gUnk_030010A0 +_08036FD4: .4byte 0x00000163 +_08036FD8: + ldr r0, _08036FE0 @ =0x000001B1 + bl sub_080A3268 +_08036FDE: + pop {pc} + .align 2, 0 +_08036FE0: .4byte 0x000001B1 + + thumb_func_start sub_08036FE4 +sub_08036FE4: @ 0x08036FE4 + push {r4, r5, lr} + adds r2, r0, #0 + adds r0, #0x7c + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08037048 + adds r0, r2, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + bne _08037048 + adds r0, r2, #0 + adds r0, #0x82 + ldrh r3, [r0] + adds r4, r0, #0 + cmp r3, #0 + beq _08037048 + adds r0, #2 + ldr r0, [r0] + ldrb r0, [r0, #4] + cmp r0, #0xff + beq _0803702C + cmp r0, #0 + bne _08037022 + adds r1, r2, #0 + adds r1, #0x7a + ldrh r5, [r1] + adds r0, r3, r5 + b _0803702A +_08037022: + adds r1, r2, #0 + adds r1, #0x7a + ldrh r0, [r1] + subs r0, r0, r3 +_0803702A: + strh r0, [r1] +_0803702C: + adds r0, r2, #0 + adds r0, #0x7c + ldrb r0, [r0] + cmp r0, #1 + beq _0803703C + cmp r0, #3 + beq _08037042 + b _08037048 +_0803703C: + ldrh r0, [r4] + subs r0, #1 + b _08037046 +_08037042: + ldrh r0, [r4] + subs r0, #2 +_08037046: + strh r0, [r4] +_08037048: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803704C +sub_0803704C: @ 0x0803704C + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080012DC + adds r1, r0, #0 + cmp r1, #0 + beq _08037070 + ldr r0, _0803706C @ =0x080012C8 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r5, #0 + bl _call_via_r1 + b _08037084 + .align 2, 0 +_0803706C: .4byte 0x080012C8 +_08037070: + ldr r4, _08037088 @ =gUnk_080CF244 + adds r0, r5, #0 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 +_08037084: + pop {r4, r5, pc} + .align 2, 0 +_08037088: .4byte gUnk_080CF244 + + thumb_func_start sub_0803708C +sub_0803708C: @ 0x0803708C + push {lr} + ldr r2, _080370A0 @ =gUnk_080CF25C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080370A0: .4byte gUnk_080CF25C + + thumb_func_start sub_080370A4 +sub_080370A4: @ 0x080370A4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_08037418 + adds r0, r5, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x9d + bne _08037110 + movs r0, #6 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + movs r0, #0xa8 + lsls r0, r0, #0xa + str r0, [r5, #0x20] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + adds r0, r5, #0 + adds r0, #0x74 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _0803710C @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + b _0803711E + .align 2, 0 +_0803710C: .4byte gUnk_03000BF0 +_08037110: + movs r1, #0x36 + ldrsh r0, [r5, r1] + cmp r0, #0 + beq _0803711E + adds r0, r5, #0 + bl sub_08037408 +_0803711E: + ldr r1, _08037128 @ =gUnk_080CF244 + adds r0, r5, #0 + bl sub_0804AA30 + pop {r4, r5, r6, pc} + .align 2, 0 +_08037128: .4byte gUnk_080CF244 + + thumb_func_start sub_0803712C +sub_0803712C: @ 0x0803712C + push {lr} + ldr r2, _08037140 @ =gUnk_080CF278 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08037140: .4byte gUnk_080CF278 + + thumb_func_start sub_08037144 +sub_08037144: @ 0x08037144 + push {r4, lr} + adds r4, r0, #0 + bl sub_08037418 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xd] + strb r1, [r4, #0xe] + movs r0, #0x30 + strb r0, [r4, #0x1d] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803715C +sub_0803715C: @ 0x0803715C + push {r4, lr} + adds r4, r0, #0 + bl sub_08037418 + adds r0, r4, #0 + bl sub_0806F520 + cmp r0, #0 + beq _08037176 + adds r0, r4, #0 + bl sub_0806F4E8 + b _0803718A +_08037176: + adds r1, r4, #0 + adds r1, #0x62 + strb r0, [r1] + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _0803718A + adds r0, r4, #0 + bl sub_08037408 +_0803718A: + pop {r4, pc} + + thumb_func_start sub_0803718C +sub_0803718C: @ 0x0803718C + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r4, [r5, #0xe] + cmp r4, #0 + bne _080371DA + bl sub_08037418 + movs r0, #1 + strb r0, [r5, #0xe] + ldrb r1, [r5, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + adds r0, r5, #0 + adds r0, #0x62 + strb r4, [r0] + adds r0, #0x12 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _080371EC @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E +_080371DA: + adds r0, r5, #0 + bl sub_0806F520 + cmp r0, #0 + beq _080371F0 + adds r0, r5, #0 + bl sub_0806F3E4 + b _080371F6 + .align 2, 0 +_080371EC: .4byte gUnk_03000BF0 +_080371F0: + adds r0, r5, #0 + bl sub_08037408 +_080371F6: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080371F8 +sub_080371F8: @ 0x080371F8 + push {lr} + adds r2, r0, #0 + ldr r0, _08037210 @ =gUnk_03003F80 + ldrb r1, [r0, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _0803720E + adds r0, r2, #0 + bl sub_08037408 +_0803720E: + pop {pc} + .align 2, 0 +_08037210: .4byte gUnk_03003F80 + + thumb_func_start nullsub_161 +nullsub_161: @ 0x08037214 + bx lr + .align 2, 0 + + thumb_func_start sub_08037218 +sub_08037218: @ 0x08037218 + push {lr} + bl sub_08037408 + pop {pc} + + thumb_func_start sub_08037220 +sub_08037220: @ 0x08037220 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r0, #1 + strb r0, [r5, #0xc] + movs r0, #2 + strb r0, [r5, #0x1c] + ldrh r0, [r5, #0x32] + adds r0, #3 + strh r0, [r5, #0x32] + movs r0, #0x2e + ldrsh r4, [r5, r0] + ldr r1, _0803727C @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + subs r4, r4, r0 + asrs r4, r4, #4 + movs r2, #0x3f + ands r4, r2 + movs r3, #0x32 + ldrsh r0, [r5, r3] + ldrh r1, [r1, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + adds r6, r5, #0 + adds r6, #0x38 + ldrb r1, [r6] + adds r0, r4, #0 + bl sub_080001DA + adds r1, r5, #0 + adds r1, #0x74 + strh r0, [r1] + movs r0, #0x80 + lsls r0, r0, #7 + ldrb r2, [r6] + adds r1, r4, #0 + bl sub_0800015E + adds r0, r5, #0 + movs r1, #5 + bl sub_08004260 + pop {r4, r5, r6, pc} + .align 2, 0 +_0803727C: .4byte gUnk_03000BF0 + + thumb_func_start sub_08037280 +sub_08037280: @ 0x08037280 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_08037418 + adds r0, r5, #0 + bl sub_080002A0 + movs r1, #0x80 + lsls r1, r1, #7 + cmp r0, r1 + beq _080372CC + adds r0, r5, #0 + adds r0, #0x74 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _080372E4 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + adds r0, r5, #0 + bl sub_08037408 +_080372CC: + adds r0, r5, #0 + movs r1, #1 + movs r2, #0x40 + bl sub_08049F64 + cmp r0, #0 + beq _080372E2 + movs r0, #2 + strb r0, [r5, #0xc] + movs r0, #0x1e + strb r0, [r5, #0xe] +_080372E2: + pop {r4, r5, r6, pc} + .align 2, 0 +_080372E4: .4byte gUnk_03000BF0 + + thumb_func_start sub_080372E8 +sub_080372E8: @ 0x080372E8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_08037418 + adds r3, r5, #0 + adds r3, #0x62 + ldr r2, _08037370 @ =gUnk_080CF290 + ldrb r1, [r5, #0xe] + movs r6, #3 + adds r0, r6, #0 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + ldrb r1, [r3] + adds r0, r0, r1 + strb r0, [r3] + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _0803736E + strb r6, [r5, #0xc] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + strb r4, [r3] + adds r1, r5, #0 + adds r1, #0x3f + movs r0, #0xa0 + strb r0, [r1] + subs r1, #4 + movs r0, #0xf + strb r0, [r1] + ldr r0, _08037374 @ =gUnk_080FD34C + str r0, [r5, #0x48] + adds r0, r5, #0 + adds r0, #0x74 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08037378 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E +_0803736E: + pop {r4, r5, r6, pc} + .align 2, 0 +_08037370: .4byte gUnk_080CF290 +_08037374: .4byte gUnk_080FD34C +_08037378: .4byte gUnk_03000BF0 + + thumb_func_start sub_0803737C +sub_0803737C: @ 0x0803737C + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x34] + ldr r1, _080373A8 @ =0xFFFF0000 + adds r0, r0, r1 + str r0, [r4, #0x34] + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #6 + rsbs r0, r0, #0 + cmp r1, r0 + bgt _080373A6 + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0xa + strb r0, [r4, #0xe] + ldr r1, _080373AC @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] +_080373A6: + pop {r4, pc} + .align 2, 0 +_080373A8: .4byte 0xFFFF0000 +_080373AC: .4byte gUnk_03001160 + + thumb_func_start sub_080373B0 +sub_080373B0: @ 0x080373B0 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080373C4 + movs r0, #5 + strb r0, [r1, #0xc] +_080373C4: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080373C8 +sub_080373C8: @ 0x080373C8 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEFE0 + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _080373DC + adds r0, r4, #0 + bl sub_08037408 +_080373DC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080373E0 +sub_080373E0: @ 0x080373E0 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x20] + cmp r0, #0 + bge _080373F2 + ldrb r0, [r4, #0x18] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x18] +_080373F2: + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08037406 + adds r0, r4, #0 + bl sub_08037408 +_08037406: + pop {r4, pc} + + thumb_func_start sub_08037408 +sub_08037408: @ 0x08037408 + push {lr} + movs r1, #5 + movs r2, #0 + bl sub_080A29AC + bl sub_0805E780 + pop {pc} + + thumb_func_start sub_08037418 +sub_08037418: @ 0x08037418 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r3, _08037464 @ =gUnk_03000BF0 + ldrh r1, [r3, #6] + subs r0, r0, r1 + asrs r4, r0, #4 + movs r2, #0x3f + ands r4, r2 + movs r1, #0x32 + ldrsh r0, [r5, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + adds r6, r5, #0 + adds r6, #0x38 + ldrb r1, [r6] + adds r0, r4, #0 + bl sub_080001DA + ldr r1, _08037468 @ =0x00004067 + cmp r0, r1 + bne _08037460 + adds r0, r5, #0 + adds r0, #0x74 + ldrh r0, [r0] + ldrb r2, [r6] + adds r1, r4, #0 + bl sub_0800015E + bl sub_0805E780 +_08037460: + pop {r4, r5, r6, pc} + .align 2, 0 +_08037464: .4byte gUnk_03000BF0 +_08037468: .4byte 0x00004067 + + thumb_func_start sub_0803746C +sub_0803746C: @ 0x0803746C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08037488 @ =gUnk_080CF294 + bl sub_0800129E + movs r3, #0x15 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, pc} + .align 2, 0 +_08037488: .4byte gUnk_080CF294 + + thumb_func_start sub_0803748C +sub_0803748C: @ 0x0803748C + push {lr} + ldr r2, _080374A0 @ =gUnk_080CF2AC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080374A0: .4byte gUnk_080CF2AC + + thumb_func_start sub_080374A4 +sub_080374A4: @ 0x080374A4 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r2, [r0] + cmp r2, #0x87 + bne _080374D4 + ldrb r0, [r4, #0xc] + cmp r0, #6 + bne _080374BC + adds r0, r4, #0 + bl sub_08037ACC +_080374BC: + movs r0, #8 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + bl sub_08037B48 + b _08037534 +_080374D4: + ldrb r0, [r4, #0xc] + adds r1, r0, #0 + cmp r1, #6 + beq _0803752E + adds r0, r4, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0x27 + bne _080374F2 + cmp r2, #0x80 + bne _080374F2 + adds r0, r4, #0 + bl sub_08037A14 + b _08037534 +_080374F2: + subs r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _08037534 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + movs r1, #0x10 + eors r0, r1 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + lsrs r0, r0, #3 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_08037810 + cmp r0, #0 + beq _08037534 + movs r0, #4 + strb r0, [r4, #0xe] + b _08037534 +_0803752E: + adds r0, r4, #0 + bl sub_08037A58 +_08037534: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _08037546 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08037546: + ldr r1, _08037550 @ =gUnk_080CF294 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_08037550: .4byte gUnk_080CF294 + + thumb_func_start nullsub_162 +nullsub_162: @ 0x08037554 + bx lr + .align 2, 0 + + thumb_func_start sub_08037558 +sub_08037558: @ 0x08037558 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + movs r1, #0 + strb r0, [r4, #0x14] + adds r0, r4, #0 + adds r0, #0x76 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, r4, #0 + bl sub_08037794 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08037580 +sub_08037580: @ 0x08037580 + push {r4, lr} + adds r4, r0, #0 + bl sub_08037810 + cmp r0, #0 + bne _080375A2 + adds r1, r4, #0 + adds r1, #0x74 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080375A2 + adds r0, r4, #0 + bl sub_080377B0 +_080375A2: + pop {r4, pc} + + thumb_func_start sub_080375A4 +sub_080375A4: @ 0x080375A4 + push {r4, lr} + adds r4, r0, #0 + bl sub_080378B0 + cmp r0, #0 + bne _080375F4 + adds r0, r4, #0 + bl sub_08037810 + cmp r0, #0 + bne _080375F4 + adds r1, r4, #0 + adds r1, #0x74 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080375D2 + adds r0, r4, #0 + bl sub_08037794 + b _080375F4 +_080375D2: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_080AEF88 + cmp r0, #0 + bne _080375F4 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080375F4 + adds r0, r4, #0 + bl sub_080379BC +_080375F4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080375F8 +sub_080375F8: @ 0x080375F8 + push {r4, lr} + adds r4, r0, #0 + bl sub_080378B0 + cmp r0, #0 + bne _08037622 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08037622 + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x18 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC +_08037622: + pop {r4, pc} + + thumb_func_start sub_08037624 +sub_08037624: @ 0x08037624 + push {r4, lr} + adds r4, r0, #0 + bl sub_080378B0 + cmp r0, #0 + bne _0803768E + adds r0, r4, #0 + bl sub_08037914 + cmp r0, #0 + bne _0803768E + adds r1, r4, #0 + adds r1, #0x74 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08037652 + adds r0, r4, #0 + bl sub_08037794 + b _0803768E +_08037652: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_080AEF88 + cmp r0, #0 + bne _0803767C + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803768E + adds r0, r4, #0 + bl sub_080379BC + b _0803768E +_0803767C: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803768E + adds r0, r4, #0 + bl sub_0803797C +_0803768E: + pop {r4, pc} + + thumb_func_start sub_08037690 +sub_08037690: @ 0x08037690 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080376B6 + adds r1, r4, #0 + adds r1, #0x77 + movs r0, #0x14 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08037794 + b _080376CC +_080376B6: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080376CC + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x27 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080AEF88 +_080376CC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080376D0 +sub_080376D0: @ 0x080376D0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080379EC + cmp r0, #0 + bne _0803773A + bl sub_08077B2C + ldr r2, _08037724 @ =gUnk_03003F80 + ldrb r1, [r2, #0x1a] + movs r0, #0x80 + orrs r1, r0 + strb r1, [r2, #0x1a] + ldrb r1, [r2, #0xa] + orrs r0, r1 + strb r0, [r2, #0xa] + ldr r0, _08037728 @ =gUnk_03001160 + adds r1, r4, #0 + bl sub_0806FA6C + adds r0, r4, #0 + bl sub_080042B8 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0803773A + adds r1, r4, #0 + adds r1, #0x7c + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803772C + adds r0, r4, #0 + bl sub_08037A58 + b _0803773A + .align 2, 0 +_08037724: .4byte gUnk_03003F80 +_08037728: .4byte gUnk_03001160 +_0803772C: + ldrb r0, [r2] + movs r1, #1 + eors r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_08037B10 +_0803773A: + pop {r4, pc} + + thumb_func_start sub_0803773C +sub_0803773C: @ 0x0803773C + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08037758 + adds r0, r4, #0 + bl sub_08037794 +_08037758: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803775C +sub_0803775C: @ 0x0803775C + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08037790 + movs r0, #0x42 + movs r1, #0 + bl sub_0804AA60 + adds r4, r0, #0 + cmp r4, #0 + beq _0803778A + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0804A4E4 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08037C0C +_0803778A: + adds r0, r5, #0 + bl sub_0805E7BC +_08037790: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08037794 +sub_08037794: @ 0x08037794 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + adds r2, r0, #0 + adds r2, #0x74 + movs r1, #0x1e + strh r1, [r2] + subs r2, #0x35 + movs r1, #0x26 + strb r1, [r2] + ldrb r1, [r0, #0x14] + bl sub_080042AC + pop {pc} + + thumb_func_start sub_080377B0 +sub_080377B0: @ 0x080377B0 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #8 + strb r0, [r4, #0xf] + bl sub_08000E50 + movs r1, #0x38 + ands r0, r1 + adds r0, #0x78 + adds r1, r4, #0 + adds r1, #0x74 + strh r0, [r1] + movs r0, #0x40 + strh r0, [r4, #0x24] + bl sub_08000E50 + adds r5, r0, #0 + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _080377F8 + movs r0, #3 + ands r0, r5 + cmp r0, #0 + beq _080377F8 + adds r0, r4, #0 + bl sub_08049EE4 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + b _080377FE +_080377F8: + movs r0, #0x18 + ands r5, r0 + strb r5, [r4, #0x15] +_080377FE: + ldrb r0, [r4, #0x15] + lsrs r0, r0, #3 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC + pop {r4, r5, pc} + + thumb_func_start sub_08037810 +sub_08037810: @ 0x08037810 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r1, r5, #0 + adds r1, #0x76 + ldrb r0, [r1] + cmp r0, #0 + bne _080378A8 + adds r0, r5, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _080378AC + ldr r6, _080378A4 @ =gUnk_020000B0 + ldr r0, [r6] + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r3, #0x32 + ldrsh r2, [r0, r3] + adds r0, r5, #0 + movs r3, #0x40 + bl sub_0806FCB8 + cmp r0, #0 + beq _080378AC + ldr r1, [r6] + adds r0, r5, #0 + bl sub_080045C4 + ldrb r1, [r5, #0x15] + subs r0, r0, r1 + adds r0, #6 + movs r1, #0x1f + ands r0, r1 + cmp r0, #0xc + bhi _080378AC + movs r0, #3 + strb r0, [r5, #0xc] + movs r4, #0x18 + movs r0, #0x18 + strb r0, [r5, #0xe] + movs r0, #8 + strb r0, [r5, #0xf] + movs r0, #0xc0 + strh r0, [r5, #0x24] + ldr r1, [r6] + adds r0, r5, #0 + bl sub_080045C4 + adds r0, #4 + ands r0, r4 + strb r0, [r5, #0x15] + lsrs r0, r0, #3 + strb r0, [r5, #0x14] + adds r1, r5, #0 + adds r1, #0x74 + movs r0, #0x96 + lsls r0, r0, #1 + strh r0, [r1] + ldr r2, [r6] + ldrh r1, [r2, #0x2e] + adds r0, r5, #0 + adds r0, #0x78 + strh r1, [r0] + ldrh r0, [r2, #0x32] + adds r3, r5, #0 + adds r3, #0x7a + strh r0, [r3] + ldrb r1, [r5, #0x14] + adds r0, r5, #0 + bl sub_080042AC + movs r0, #1 + b _080378AE + .align 2, 0 +_080378A4: .4byte gUnk_020000B0 +_080378A8: + subs r0, #1 + strb r0, [r1] +_080378AC: + movs r0, #0 +_080378AE: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080378B0 +sub_080378B0: @ 0x080378B0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x77 + ldrb r0, [r1] + cmp r0, #0 + bne _0803790C + movs r0, #1 + bl sub_08049DF4 + cmp r0, #0 + beq _08037910 + ldr r5, _08037908 @ =gUnk_020000B0 + ldr r1, [r5] + adds r0, r4, #0 + movs r2, #0xa + bl sub_0804A044 + ldrb r1, [r4, #0x15] + cmp r0, r1 + bne _08037910 + ldr r0, [r5] + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r3, #0x32 + ldrsh r2, [r0, r3] + adds r0, r4, #0 + movs r3, #0x18 + bl sub_0806FCB8 + cmp r0, #0 + beq _08037910 + movs r0, #5 + strb r0, [r4, #0xc] + adds r0, #0xfb + strh r0, [r4, #0x24] + ldrb r1, [r4, #0x14] + adds r1, #8 + adds r0, r4, #0 + bl sub_080042AC + movs r0, #1 + b _08037912 + .align 2, 0 +_08037908: .4byte gUnk_020000B0 +_0803790C: + subs r0, #1 + strb r0, [r1] +_08037910: + movs r0, #0 +_08037912: + pop {r4, r5, pc} + + thumb_func_start sub_08037914 +sub_08037914: @ 0x08037914 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _08037970 + ldr r7, _08037950 @ =gUnk_020000B0 + ldr r0, [r7] + adds r5, r4, #0 + adds r5, #0x78 + ldrh r1, [r5] + adds r6, r4, #0 + adds r6, #0x7a + ldrh r2, [r6] + movs r3, #0x28 + bl sub_0806FCB8 + cmp r0, #0 + bne _08037954 + ldr r0, [r7] + ldrh r1, [r0, #0x2e] + strh r1, [r5] + ldrh r0, [r0, #0x32] + strh r0, [r6] + adds r0, r4, #0 + bl sub_0803797C + movs r0, #0 + b _08037978 + .align 2, 0 +_08037950: .4byte gUnk_020000B0 +_08037954: + ldrh r1, [r5] + ldrh r2, [r6] + adds r0, r4, #0 + movs r3, #8 + bl sub_0806FCB8 + cmp r0, #0 + bne _08037968 + movs r0, #0 + b _08037978 +_08037968: + adds r1, r4, #0 + adds r1, #0x76 + movs r0, #0x3c + strb r0, [r1] +_08037970: + adds r0, r4, #0 + bl sub_08037794 + movs r0, #1 +_08037978: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0803797C +sub_0803797C: @ 0x0803797C + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0x18 + movs r0, #0x18 + strb r0, [r5, #0xe] + movs r0, #8 + strb r0, [r5, #0xf] + movs r1, #0x2e + ldrsh r0, [r5, r1] + movs r2, #0x32 + ldrsh r1, [r5, r2] + adds r2, r5, #0 + adds r2, #0x78 + ldrh r2, [r2] + adds r3, r5, #0 + adds r3, #0x7a + ldrh r3, [r3] + bl sub_080045D4 + adds r0, #4 + ands r0, r4 + strb r0, [r5, #0x15] + lsrs r0, r0, #3 + ldrb r1, [r5, #0x14] + cmp r0, r1 + beq _080379BA + strb r0, [r5, #0x14] + adds r1, r0, #4 + adds r0, r5, #0 + bl sub_080042AC +_080379BA: + pop {r4, r5, pc} + + thumb_func_start sub_080379BC +sub_080379BC: @ 0x080379BC + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x18 + strb r0, [r4, #0xe] + movs r0, #8 + strb r0, [r4, #0xf] + bl sub_08000E50 + movs r1, #2 + ands r0, r1 + ldrb r1, [r4, #0x14] + adds r1, r1, r0 + subs r1, #1 + movs r0, #3 + ands r1, r0 + strb r1, [r4, #0x14] + lsls r1, r1, #3 + strb r1, [r4, #0x15] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC + pop {r4, pc} + + thumb_func_start sub_080379EC +sub_080379EC: @ 0x080379EC + push {r4, lr} + adds r4, r0, #0 + bl sub_0807953C + cmp r0, #0 + beq _08037A0E + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08037A0E + adds r0, r4, #0 + bl sub_08037A58 + movs r0, #1 + b _08037A10 +_08037A0E: + movs r0, #0 +_08037A10: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08037A14 +sub_08037A14: @ 0x08037A14 + push {r4, lr} + adds r4, r0, #0 + movs r0, #6 + strb r0, [r4, #0xc] + movs r0, #0x18 + strb r0, [r4, #0xe] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0x20 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] + adds r2, #0x12 + ldrb r1, [r2] + movs r0, #0xfe + ands r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x7c + movs r0, #5 + strb r0, [r1] + ldr r1, [r4, #0x4c] + adds r0, r4, #0 + bl sub_0806FA24 + ldrb r1, [r4, #0x14] + adds r1, #0xc + adds r0, r4, #0 + bl sub_080042AC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08037A58 +sub_08037A58: @ 0x08037A58 + push {r4, lr} + adds r4, r0, #0 + bl sub_08037ACC + movs r0, #7 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0xf + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + adds r3, r4, #0 + adds r3, #0x3d + movs r0, #0 + ldrsb r0, [r3, r0] + cmp r0, #0 + bne _08037A84 + movs r0, #0xec + strb r0, [r3] +_08037A84: + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x26 + strb r0, [r1] + adds r2, r4, #0 + adds r2, #0x3b + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + movs r0, #0xf4 + strb r0, [r3] + ldrb r0, [r4, #0x14] + lsls r0, r0, #3 + movs r1, #0x10 + eors r0, r1 + adds r1, r4, #0 + adds r1, #0x3e + strb r0, [r1] + adds r1, #4 + movs r0, #8 + strb r0, [r1] + adds r1, #4 + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r1] + adds r1, #0x30 + movs r0, #0x3c + strb r0, [r1] + ldrb r1, [r4, #0x14] + adds r1, #0x10 + adds r0, r4, #0 + bl sub_080042AC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08037ACC +sub_08037ACC: @ 0x08037ACC + ldr r3, _08037B04 @ =gUnk_03003F80 + ldr r1, [r3, #0x30] + ldr r2, _08037B08 @ =0xFFFFFEFF + ands r1, r2 + str r1, [r3, #0x30] + ldr r3, _08037B0C @ =gUnk_03001160 + ldrb r2, [r3, #0x10] + movs r1, #0x80 + orrs r1, r2 + strb r1, [r3, #0x10] + adds r2, r3, #0 + adds r2, #0x3d + movs r1, #0x1e + strb r1, [r2] + ldrb r0, [r0, #0x14] + lsls r0, r0, #3 + adds r1, r3, #0 + adds r1, #0x3e + strb r0, [r1] + adds r1, #4 + movs r0, #4 + strb r0, [r1] + adds r1, #4 + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r1] + bx lr + .align 2, 0 +_08037B04: .4byte gUnk_03003F80 +_08037B08: .4byte 0xFFFFFEFF +_08037B0C: .4byte gUnk_03001160 + + thumb_func_start sub_08037B10 +sub_08037B10: @ 0x08037B10 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r5, _08037B44 @ =gUnk_03001160 + adds r1, r5, #0 + adds r1, #0x3d + movs r0, #0xc + strb r0, [r1] + subs r0, #0x14 + bl sub_080526A0 + adds r4, r0, #0 + adds r0, r5, #0 + movs r1, #0x7a + bl sub_0800449C + cmp r4, #0 + bne _08037B40 + adds r0, r6, #0 + bl sub_08037A58 + adds r1, r6, #0 + adds r1, #0x76 + movs r0, #0xf0 + strb r0, [r1] +_08037B40: + pop {r4, r5, r6, pc} + .align 2, 0 +_08037B44: .4byte gUnk_03001160 + + thumb_func_start sub_08037B48 +sub_08037B48: @ 0x08037B48 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x2a + movs r1, #3 + movs r2, #0 + bl sub_080A2960 + adds r3, r0, #0 + cmp r3, #0 + beq _08037B88 + ldrb r0, [r4, #0xe] + movs r2, #0 + strb r0, [r3, #0xb] + movs r0, #0x29 + adds r0, r0, r3 + mov ip, r0 + ldrb r1, [r0] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + adds r0, r3, #0 + adds r0, #0x62 + strb r2, [r0] + adds r1, r3, #0 + adds r1, #0x63 + movs r0, #0xfc + strb r0, [r1] + str r4, [r3, #0x50] +_08037B88: + adds r0, r4, #0 + adds r0, #0x80 + str r3, [r0] + movs r0, #0x2a + movs r1, #3 + movs r2, #0 + bl sub_080A2960 + adds r3, r0, #0 + cmp r3, #0 + beq _08037BCA + ldrb r0, [r4, #0xe] + strb r0, [r3, #0xb] + movs r0, #0x29 + adds r0, r0, r3 + mov ip, r0 + ldrb r1, [r0] + movs r2, #8 + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + adds r1, r3, #0 + adds r1, #0x62 + movs r0, #0xfd + strb r0, [r1] + adds r0, r3, #0 + adds r0, #0x63 + strb r2, [r0] + str r4, [r3, #0x50] +_08037BCA: + adds r0, r4, #0 + adds r0, #0x84 + str r3, [r0] + movs r0, #0x2a + movs r1, #3 + movs r2, #0 + bl sub_080A2960 + adds r3, r0, #0 + cmp r3, #0 + beq _08037C06 + ldrb r0, [r4, #0xe] + strb r0, [r3, #0xb] + adds r2, r3, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] + adds r1, r3, #0 + adds r1, #0x62 + movs r0, #5 + strb r0, [r1] + adds r1, #1 + movs r0, #0xf5 + strb r0, [r1] + str r4, [r3, #0x50] +_08037C06: + str r3, [r4, #0x54] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08037C0C +sub_08037C0C: @ 0x08037C0C + push {lr} + adds r3, r0, #0 + adds r0, #0x80 + ldr r2, [r0] + cmp r2, #0 + beq _08037C1E + movs r0, #0xf + strb r0, [r2, #0xe] + str r1, [r2, #0x50] +_08037C1E: + adds r0, r3, #0 + adds r0, #0x84 + ldr r2, [r0] + cmp r2, #0 + beq _08037C2E + movs r0, #0xf + strb r0, [r2, #0xe] + str r1, [r2, #0x50] +_08037C2E: + ldr r2, [r3, #0x54] + cmp r2, #0 + beq _08037C3A + movs r0, #0xf + strb r0, [r2, #0xe] + str r1, [r2, #0x50] +_08037C3A: + pop {pc} + + thumb_func_start sub_08037C3C +sub_08037C3C: @ 0x08037C3C + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080012DC + cmp r0, #0 + beq _08037C5C + ldr r0, _08037C58 @ =0x080012C8 + lsls r1, r4, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r5, #0 + bl _call_via_r1 + b _08037C7E + .align 2, 0 +_08037C58: .4byte 0x080012C8 +_08037C5C: + ldr r4, _08037C80 @ =gUnk_080CF46C + adds r0, r5, #0 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r5, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC +_08037C7E: + pop {r4, r5, pc} + .align 2, 0 +_08037C80: .4byte gUnk_080CF46C + + thumb_func_start sub_08037C84 +sub_08037C84: @ 0x08037C84 + push {lr} + ldr r2, _08037C98 @ =gUnk_080CF484 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08037C98: .4byte gUnk_080CF484 + + thumb_func_start sub_08037C9C +sub_08037C9C: @ 0x08037C9C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _08037CB0 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08037CB0: + ldr r1, _08037CBC @ =gUnk_080CF46C + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_08037CBC: .4byte gUnk_080CF46C + + thumb_func_start sub_08037CC0 +sub_08037CC0: @ 0x08037CC0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3a + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08037CD6 + ldrb r0, [r4, #0xb] + bl sub_0807CD04 +_08037CD6: + adds r0, r4, #0 + movs r1, #0xff + movs r2, #0x58 + bl sub_0804A7E0 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08037CE4 +sub_08037CE4: @ 0x08037CE4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + bl sub_0807CC30 + cmp r0, #0 + beq _08037CF6 + bl sub_0805E780 +_08037CF6: + adds r0, r4, #0 + bl sub_0804A720 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xff + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_08037E14 + pop {r4, pc} + + thumb_func_start sub_08037D0C +sub_08037D0C: @ 0x08037D0C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _08037D1C + subs r0, #1 + strb r0, [r4, #0xf] + b _08037D26 +_08037D1C: + adds r0, r4, #0 + bl sub_08037E90 + cmp r0, #0 + bne _08037D52 +_08037D26: + adds r0, r4, #0 + movs r1, #2 + bl sub_08004276 + adds r0, r4, #0 + bl sub_080AEF88 + cmp r0, #0 + bne _08037D40 + adds r0, r4, #0 + bl sub_08037E14 + b _08037D52 +_08037D40: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08037D52 + adds r0, r4, #0 + bl sub_08037E14 +_08037D52: + pop {r4, pc} + + thumb_func_start sub_08037D54 +sub_08037D54: @ 0x08037D54 + push {r4, lr} + adds r4, r0, #0 + movs r1, #2 + bl sub_08004276 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r3, #1 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _08037DC4 + movs r0, #2 + eors r0, r1 + strb r0, [r2] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _08037E0C + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0804A98C + adds r2, r0, #0 + cmp r2, #0 + beq _08037E0C + ldrb r0, [r4, #0x15] + strb r0, [r2, #0x15] + ldrb r1, [r4, #0x15] + lsrs r1, r1, #2 + ldr r0, _08037DBC @ =gUnk_080CF490 + adds r1, r1, r0 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r3, [r2, #0x2e] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + movs r0, #1 + ldrsb r0, [r1, r0] + ldrh r1, [r2, #0x32] + adds r0, r0, r1 + strh r0, [r2, #0x32] + ldr r0, _08037DC0 @ =0x0000FFFD + strh r0, [r2, #0x36] + movs r0, #0x92 + lsls r0, r0, #1 + bl sub_08004488 + b _08037E0C + .align 2, 0 +_08037DBC: .4byte gUnk_080CF490 +_08037DC0: .4byte 0x0000FFFD +_08037DC4: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08037E0C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08037DEE + strb r3, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xf] + ldrb r0, [r4, #0x14] + orrs r0, r1 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_08037E14 + b _08037E0C +_08037DEE: + ldr r1, _08037E10 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + lsrs r0, r0, #3 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 +_08037E0C: + pop {r4, pc} + .align 2, 0 +_08037E10: .4byte gUnk_03001160 + + thumb_func_start sub_08037E14 +sub_08037E14: @ 0x08037E14 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r0, #8 + strb r0, [r5, #0xe] + ldr r1, _08037E6C @ =gUnk_03001160 + adds r0, r5, #0 + bl sub_080045C4 + adds r4, r0, #4 + movs r0, #0x18 + ands r4, r0 + adds r0, r5, #0 + adds r0, #0x38 + ldrb r0, [r0] + bl sub_0808094C + ldr r1, _08037E70 @ =0x00002004 + adds r0, r0, r1 + lsrs r3, r4, #2 + ldr r1, _08037E74 @ =gUnk_080CF498 + adds r3, r3, r1 + movs r2, #0x2e + ldrsh r1, [r5, r2] + movs r2, #0 + ldrsb r2, [r3, r2] + adds r1, r1, r2 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrb r3, [r3, #1] + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + adds r2, r2, r3 + movs r3, #0 + bl sub_080AE4CC + cmp r0, #0 + beq _08037E78 + bl sub_08000E50 + movs r1, #0x18 + ands r0, r1 + strb r0, [r5, #0x15] + b _08037E7A + .align 2, 0 +_08037E6C: .4byte gUnk_03001160 +_08037E70: .4byte 0x00002004 +_08037E74: .4byte gUnk_080CF498 +_08037E78: + strb r4, [r5, #0x15] +_08037E7A: + ldrb r0, [r5, #0x15] + lsrs r4, r0, #3 + ldrb r0, [r5, #0x14] + cmp r4, r0 + beq _08037E8E + strb r4, [r5, #0x14] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08004260 +_08037E8E: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08037E90 +sub_08037E90: @ 0x08037E90 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08037EA8 @ =gUnk_03001160 + movs r2, #8 + bl sub_0804A044 + adds r1, r0, #0 + cmp r1, #0xff + bne _08037EAC + movs r0, #0 + b _08037EC6 + .align 2, 0 +_08037EA8: .4byte gUnk_03001160 +_08037EAC: + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #3 + strb r0, [r4, #0xe] + strb r1, [r4, #0x15] + lsrs r0, r1, #3 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 + movs r0, #1 +_08037EC6: + pop {r4, pc} + + thumb_func_start sub_08037EC8 +sub_08037EC8: @ 0x08037EC8 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08037EE4 @ =gUnk_080CF4A0 + bl sub_0800129E + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, pc} + .align 2, 0 +_08037EE4: .4byte gUnk_080CF4A0 + + thumb_func_start sub_08037EE8 +sub_08037EE8: @ 0x08037EE8 + push {lr} + ldr r2, _08037EFC @ =gUnk_080CF4B8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08037EFC: .4byte gUnk_080CF4B8 + + thumb_func_start sub_08037F00 +sub_08037F00: @ 0x08037F00 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _08037F14 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08037F14: + ldr r1, _08037F54 @ =gUnk_080CF4A0 + adds r0, r4, #0 + bl sub_0804AA30 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x94 + bne _08037F50 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + movs r0, #0x14 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x80 + strb r1, [r0] + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _08037F46 + ldr r0, [r4, #0x20] + asrs r0, r0, #2 +_08037F46: + str r0, [r4, #0x20] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_08037F50: + pop {r4, pc} + .align 2, 0 +_08037F54: .4byte gUnk_080CF4A0 + + thumb_func_start sub_08037F58 +sub_08037F58: @ 0x08037F58 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3a + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08037F6E + ldrb r0, [r4, #0xb] + bl sub_0807CD04 +_08037F6E: + ldrb r0, [r4, #0xa] + movs r2, #0x58 + cmp r0, #0 + beq _08037F78 + movs r2, #0x59 +_08037F78: + adds r0, r4, #0 + movs r1, #0xff + bl sub_0804A7E0 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08037F84 +sub_08037F84: @ 0x08037F84 + push {r4, lr} + adds r4, r0, #0 + bl sub_08001242 + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _08037F9E + movs r1, #0xc0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 +_08037F9E: + pop {r4, pc} + + thumb_func_start sub_08037FA0 +sub_08037FA0: @ 0x08037FA0 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xb] + bl sub_0807CC30 + cmp r0, #0 + beq _08037FB2 + bl sub_0805E780 +_08037FB2: + adds r0, r5, #0 + bl sub_0804A720 + movs r4, #0 + movs r0, #1 + strb r0, [r5, #0xc] + strb r4, [r5, #0xd] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x20 + strb r0, [r5, #0xe] + strb r4, [r5, #0xf] + adds r0, r5, #0 + adds r0, #0x80 + strb r4, [r0] + adds r0, r5, #0 + movs r1, #0 + bl sub_08004260 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08037FE0 +sub_08037FE0: @ 0x08037FE0 + push {r4, lr} + adds r4, r0, #0 + movs r1, #2 + bl sub_08004276 + ldrb r0, [r4, #0xe] + adds r2, r0, #0 + cmp r2, #0 + beq _08037FF8 + subs r0, #1 + strb r0, [r4, #0xe] + b _08038046 +_08037FF8: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0803802C + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08038046 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #6 + strb r0, [r4, #0xe] + strb r2, [r4, #0xf] + movs r0, #0xe0 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + adds r0, r4, #0 + bl sub_08038168 + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + b _08038046 +_0803802C: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08038046 + movs r0, #0x40 + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_08038046: + pop {r4, pc} + + thumb_func_start sub_08038048 +sub_08038048: @ 0x08038048 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r1, #2 + bl sub_08004276 + adds r0, r4, #0 + bl sub_080AEF88 + movs r0, #0x36 + ldrsh r6, [r4, r0] + bl sub_08000E50 + adds r5, r0, #0 + movs r0, #0xf + ands r5, r0 + movs r1, #0xc0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #1 + bne _08038088 + movs r0, #0 + movs r1, #3 + strb r1, [r4, #0xc] + strb r0, [r4, #0xd] + movs r0, #0x14 + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_08004260 + b _0803810C +_08038088: + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _08038098 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_0800417E + b _080380B0 +_08038098: + adds r0, r4, #0 + bl sub_080002B8 + movs r1, #0xf0 + ands r1, r0 + cmp r1, #0x50 + bne _080380B0 + ldrb r0, [r4, #0x15] + adds r0, #0x10 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] +_080380B0: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080380C8 + adds r0, r5, #0 + adds r0, #0x10 + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_08038168 +_080380C8: + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _080380E2 + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r6, r0 + bge _080380E2 + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 + movs r0, #1 + strb r0, [r4, #0xd] +_080380E2: + movs r0, #0xc + rsbs r0, r0, #0 + cmp r6, r0 + bge _080380F6 + ldrb r2, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + b _08038100 +_080380F6: + ldrb r2, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x80 +_08038100: + orrs r0, r2 + strb r0, [r4, #0x19] + ldrb r0, [r4, #0x1b] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x1b] +_0803810C: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08038110 +sub_08038110: @ 0x08038110 + push {r4, lr} + adds r4, r0, #0 + movs r1, #2 + bl sub_08004276 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08038164 + adds r2, r4, #0 + adds r2, #0x80 + ldrb r0, [r2] + cmp r0, #4 + bhi _08038150 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #8 + strb r0, [r4, #0xe] + movs r0, #0xe0 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + adds r0, r4, #0 + bl sub_08038168 + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + b _08038164 +_08038150: + movs r0, #0 + movs r1, #1 + strb r1, [r4, #0xc] + strb r0, [r2] + movs r0, #0xc0 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_08038164: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08038168 +sub_08038168: @ 0x08038168 + push {r4, lr} + adds r4, r0, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _0803817E + adds r0, r4, #0 + bl sub_08049EE4 + strb r0, [r4, #0x15] + b _080381AA +_0803817E: + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _08038196 + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] + b _080381AA +_08038196: + bl sub_08000E50 + movs r1, #0xf + ands r1, r0 + adds r1, #0x18 + ldrb r0, [r4, #0x15] + adds r1, r1, r0 + movs r0, #0x1f + ands r1, r0 + strb r1, [r4, #0x15] +_080381AA: + pop {r4, pc} + + thumb_func_start sub_080381AC +sub_080381AC: @ 0x080381AC + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080012DC + adds r1, r0, #0 + cmp r1, #0 + beq _080381D0 + ldr r0, _080381CC @ =0x080012C8 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r5, #0 + bl _call_via_r1 + b _080381F2 + .align 2, 0 +_080381CC: .4byte 0x080012C8 +_080381D0: + ldr r4, _080381F4 @ =gUnk_080CF4C8 + adds r0, r5, #0 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r5, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC +_080381F2: + pop {r4, r5, pc} + .align 2, 0 +_080381F4: .4byte gUnk_080CF4C8 + + thumb_func_start sub_080381F8 +sub_080381F8: @ 0x080381F8 + push {lr} + ldr r2, _0803820C @ =gUnk_080CF4E0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0803820C: .4byte gUnk_080CF4E0 + + thumb_func_start sub_08038210 +sub_08038210: @ 0x08038210 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _08038224 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08038224: + ldr r1, _08038230 @ =gUnk_080CF4C8 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_08038230: .4byte gUnk_080CF4C8 + + thumb_func_start sub_08038234 +sub_08038234: @ 0x08038234 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3a + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _0803824A + ldrb r0, [r4, #0xb] + bl sub_0807CD04 +_0803824A: + adds r0, r4, #0 + movs r1, #0xff + movs r2, #0x58 + bl sub_0804A7E0 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08038258 +sub_08038258: @ 0x08038258 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + bl sub_0807CC30 + cmp r0, #0 + beq _0803826A + bl sub_0805E780 +_0803826A: + adds r0, r4, #0 + bl sub_0804A720 + movs r0, #0xff + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_080383AC + pop {r4, pc} + + thumb_func_start sub_0803827C +sub_0803827C: @ 0x0803827C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0803828C + subs r0, #1 + strb r0, [r4, #0xf] + b _080382BC +_0803828C: + ldr r5, _080382B8 @ =gUnk_03001160 + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #8 + bl sub_0804A044 + cmp r0, #0xff + bne _080382B0 + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r0, #0x32 + ldrsh r2, [r5, r0] + adds r0, r4, #0 + movs r3, #0x24 + bl sub_0806FCB8 + cmp r0, #0 + beq _080382BC +_080382B0: + adds r0, r4, #0 + bl sub_080383E4 + b _080382E8 + .align 2, 0 +_080382B8: .4byte gUnk_03001160 +_080382BC: + adds r0, r4, #0 + movs r1, #2 + bl sub_08004276 + adds r0, r4, #0 + bl sub_080AEF88 + cmp r0, #0 + bne _080382D6 + adds r0, r4, #0 + bl sub_080383AC + b _080382E8 +_080382D6: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080382E8 + adds r0, r4, #0 + bl sub_080383AC +_080382E8: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080382EC +sub_080382EC: @ 0x080382EC + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08038300 + movs r0, #3 + strb r0, [r1, #0xc] +_08038300: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08038304 +sub_08038304: @ 0x08038304 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r1, #2 + bl sub_08004276 + adds r0, r4, #0 + bl sub_080AEF88 + cmp r0, #0 + bne _08038334 + adds r0, r4, #0 + adds r0, #0x78 + ldrb r0, [r0] + ldrb r1, [r4, #0x15] + cmp r0, r1 + bne _08038330 + movs r0, #0x5a + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_080383AC + b _080383AA +_08038330: + strb r0, [r4, #0x15] + b _080383AA +_08038334: + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0xa + bl __modsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _080383AA + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x78 + ldrb r0, [r0] + ldrb r3, [r4, #0x15] + cmp r0, r3 + bne _08038398 + bl sub_08000E50 + movs r1, #2 + ands r1, r0 + subs r1, #1 + lsls r1, r1, #0x1b + lsrs r1, r1, #0x18 + adds r0, r4, #0 + adds r0, #0x79 + lsls r5, r1, #0x18 + lsrs r3, r5, #0x18 + adds r2, r0, #0 + movs r6, #0x7a + adds r6, r6, r4 + mov ip, r6 + ldrb r0, [r2] + cmp r3, r0 + bne _08038388 + ldrb r6, [r6] + cmp r3, r6 + bne _08038388 + rsbs r0, r5, #0 + lsrs r1, r0, #0x18 +_08038388: + ldrb r0, [r2] + mov r3, ip + strb r0, [r3] + strb r1, [r2] + ldrb r0, [r4, #0x15] + adds r0, r0, r1 + movs r1, #0x18 + ands r0, r1 +_08038398: + strb r0, [r4, #0x15] + ldrb r0, [r4, #0x15] + lsrs r0, r0, #3 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 +_080383AA: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080383AC +sub_080383AC: @ 0x080383AC + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #8 + strb r0, [r4, #0xe] + adds r0, #0xf8 + strh r0, [r4, #0x24] + ldr r1, _080383E0 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + lsrs r1, r0, #3 + ldrb r0, [r4, #0x14] + cmp r1, r0 + beq _080383DC + strb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 +_080383DC: + pop {r4, pc} + .align 2, 0 +_080383E0: .4byte gUnk_03001160 + + thumb_func_start sub_080383E4 +sub_080383E4: @ 0x080383E4 + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #8 + strb r0, [r4, #0xe] + movs r0, #0xa0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + ldr r1, _0803842C @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + adds r1, r4, #0 + adds r1, #0x78 + strb r0, [r1] + ldrb r0, [r4, #0x15] + lsrs r0, r0, #3 + strb r0, [r4, #0x14] + adds r1, #1 + movs r0, #0xff + strb r0, [r1] + adds r1, #1 + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r1] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 +_0803842C: .4byte gUnk_03001160 + + thumb_func_start sub_08038430 +sub_08038430: @ 0x08038430 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0803844C @ =gUnk_080CF4F0 + bl sub_0800129E + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, pc} + .align 2, 0 +_0803844C: .4byte gUnk_080CF4F0 + + thumb_func_start sub_08038450 +sub_08038450: @ 0x08038450 + push {lr} + ldr r2, _08038464 @ =gUnk_080CF508 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08038464: .4byte gUnk_080CF508 + + thumb_func_start sub_08038468 +sub_08038468: @ 0x08038468 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0803847C + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0803847C: + ldr r1, _080384B0 @ =gUnk_080CF4F0 + adds r0, r4, #0 + bl sub_0804AA30 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080384D8 + adds r0, r4, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0x5a + bne _080384CA + movs r0, #0x3f + ands r0, r1 + cmp r0, #0x14 + beq _080384BA + cmp r0, #0x14 + bgt _080384B4 + cmp r0, #0xe + beq _080384C0 + b _080384D8 + .align 2, 0 +_080384B0: .4byte gUnk_080CF4F0 +_080384B4: + cmp r0, #0x15 + beq _080384C0 + b _080384D8 +_080384BA: + movs r0, #5 + strb r0, [r4, #0xc] + b _080384D8 +_080384C0: + adds r1, r4, #0 + adds r1, #0x45 + movs r0, #0 + strb r0, [r1] + b _080384D8 +_080384CA: + movs r0, #0x3f + ands r0, r1 + cmp r0, #0x1d + bne _080384D8 + adds r0, r4, #0 + bl sub_08038754 +_080384D8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start nullsub_163 +nullsub_163: @ 0x080384DC + bx lr + .align 2, 0 + + thumb_func_start sub_080384E0 +sub_080384E0: @ 0x080384E0 + push {r4, r5, r6, lr} + adds r6, r0, #0 + bl sub_0804A720 + movs r4, #0 + movs r5, #1 + movs r0, #1 + strb r0, [r6, #0xc] + bl sub_08000E50 + movs r1, #0x1c + ands r0, r1 + strb r0, [r6, #0x15] + lsrs r0, r0, #2 + strb r0, [r6, #0x14] + ldrb r1, [r6, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r6, #0x10] + strb r4, [r6, #0xe] + movs r0, #0x20 + strb r0, [r6, #0xf] + adds r0, r6, #0 + adds r0, #0x82 + strb r4, [r0] + bl sub_08000E50 + ands r0, r5 + adds r1, r6, #0 + adds r1, #0x80 + strb r0, [r1] + adds r0, r6, #0 + adds r0, #0x81 + strb r4, [r0] + subs r1, #0x41 + movs r0, #0x72 + strb r0, [r1] + ldrb r1, [r6, #0x14] + adds r0, r6, #0 + bl sub_08004260 + pop {r4, r5, r6, pc} + + thumb_func_start sub_08038534 +sub_08038534: @ 0x08038534 + push {r4, lr} + adds r4, r0, #0 + bl sub_080387F0 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _08038594 + strb r0, [r4, #0xe] + movs r0, #0x20 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + beq _08038578 + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + beq _0803856A + adds r1, #7 + b _0803856C +_0803856A: + adds r1, #1 +_0803856C: + movs r0, #7 + ands r0, r1 + strb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] + b _0803858A +_08038578: + adds r0, r4, #0 + bl sub_08049EE4 + adds r0, #2 + movs r1, #0x1c + ands r0, r1 + strb r0, [r4, #0x15] + lsrs r0, r0, #2 + strb r0, [r4, #0x14] +_0803858A: + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 + b _080385C8 +_08038594: + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _080385C8 + adds r0, r4, #0 + movs r1, #0x80 + bl sub_0803872C + cmp r0, #0 + beq _080385C8 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x10 + strb r0, [r4, #0xf] + movs r0, #0x40 + strh r0, [r4, #0x24] + ldr r1, [r4, #0x54] + adds r0, r4, #0 + bl sub_0806FCAC + strb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 +_080385C8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080385CC +sub_080385CC: @ 0x080385CC + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_080387F0 + adds r0, r4, #0 + movs r1, #0x60 + bl sub_0803872C + cmp r0, #0 + beq _08038604 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0xc + strb r0, [r4, #0xf] + movs r0, #0x80 + strh r0, [r4, #0x24] + ldr r1, [r4, #0x54] + adds r0, r4, #0 + bl sub_0806FCAC + strb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 + b _08038648 +_08038604: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08038648 + movs r6, #0x10 + strb r6, [r4, #0xf] + ldr r1, [r4, #0x54] + cmp r1, #0 + beq _08038622 + adds r0, r4, #0 + bl sub_0806FCAC + b _08038638 +_08038622: + ldrb r5, [r4, #0x14] + bl sub_08000E50 + ands r0, r6 + cmp r0, #0 + beq _08038632 + adds r1, r5, #2 + b _08038634 +_08038632: + adds r1, r5, #6 +_08038634: + movs r0, #7 + ands r0, r1 +_08038638: + strb r0, [r4, #0x14] + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 +_08038648: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0803864C +sub_0803864C: @ 0x0803864C + push {r4, lr} + adds r4, r0, #0 + bl sub_080387F0 + adds r0, r4, #0 + movs r1, #0x14 + bl sub_0803872C + cmp r0, #0 + beq _08038668 + adds r0, r4, #0 + bl sub_08038754 + b _080386B4 +_08038668: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080386B4 + movs r0, #0xa + strb r0, [r4, #0xf] + adds r2, r4, #0 + adds r2, #0x81 + ldrb r0, [r2] + cmp r0, #0 + bne _08038698 + ldrh r0, [r4, #0x24] + adds r0, #0x40 + strh r0, [r4, #0x24] + lsls r0, r0, #0x10 + movs r1, #0x80 + lsls r1, r1, #0x12 + cmp r0, r1 + ble _080386B4 + movs r0, #1 + strb r0, [r2] + b _080386B4 +_08038698: + ldrh r2, [r4, #0x24] + movs r0, #0x24 + ldrsh r1, [r4, r0] + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + ble _080386AE + adds r0, r2, #0 + subs r0, #0x50 + strh r0, [r4, #0x24] + b _080386B4 +_080386AE: + adds r0, r4, #0 + bl sub_08038754 +_080386B4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080386B8 +sub_080386B8: @ 0x080386B8 + push {r4, lr} + adds r4, r0, #0 + bl sub_080387F0 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_080044EC + adds r1, r0, #0 + cmp r1, #1 + bne _08038720 + strb r1, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x3f + movs r0, #0x72 + strb r0, [r2] + strb r1, [r4, #0xe] + movs r0, #0x80 + strb r0, [r4, #0xf] + strh r0, [r4, #0x24] + subs r2, #0x16 + ldrb r1, [r2] + subs r0, #0xb9 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x92 + lsls r0, r0, #1 + bl sub_08004488 + adds r0, r4, #0 + movs r1, #0x70 + bl sub_0801D2B4 + ldrb r1, [r4, #0x15] + lsrs r1, r1, #2 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl sub_080A29AC + adds r1, r0, #0 + cmp r1, #0 + beq _08038720 + adds r0, r4, #0 + bl sub_0806FAB0 +_08038720: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08038724 +sub_08038724: @ 0x08038724 + push {lr} + bl sub_08038754 + pop {pc} + + thumb_func_start sub_0803872C +sub_0803872C: @ 0x0803872C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #1 + bl sub_08049DF4 + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _08038750 + adds r0, r4, #0 + adds r2, r5, #0 + bl sub_0806FC80 + cmp r0, #0 + beq _08038750 + movs r0, #1 + b _08038752 +_08038750: + movs r0, #0 +_08038752: + pop {r4, r5, pc} + + thumb_func_start sub_08038754 +sub_08038754: @ 0x08038754 + push {r4, lr} + adds r4, r0, #0 + movs r0, #4 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x5a + strb r0, [r1] + movs r1, #0 + movs r0, #0xc0 + strh r0, [r4, #0x24] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + adds r0, r4, #0 + adds r0, #0x81 + strb r1, [r0] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x18 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080387C0 @ =0x0000012B + bl sub_08004488 + adds r0, r4, #0 + movs r1, #0x71 + bl sub_0801D2B4 + ldrb r2, [r4, #0x15] + movs r0, #0xf + ands r0, r2 + cmp r0, #0 + beq _080387C4 + movs r1, #0x10 + ands r1, r2 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x1b + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r1, #9 + adds r0, r4, #0 + bl sub_08004260 + b _080387D8 + .align 2, 0 +_080387C0: .4byte 0x0000012B +_080387C4: + movs r1, #0x10 + ands r1, r2 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x1b + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r1, #8 + adds r0, r4, #0 + bl sub_08004260 +_080387D8: + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl sub_080A29AC + adds r1, r0, #0 + cmp r1, #0 + beq _080387EE + adds r0, r4, #0 + bl sub_0806FAB0 +_080387EE: + pop {r4, pc} + + thumb_func_start sub_080387F0 +sub_080387F0: @ 0x080387F0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #4 + beq _08038890 + adds r5, r4, #0 + adds r5, #0x82 + ldrb r0, [r5] + cmp r0, #0 + bne _08038890 + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _08038868 @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r6, #0x32 + ldrsh r1, [r4, r6] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002E0 + cmp r0, #0xf + beq _08038836 + cmp r0, #0x2a + bne _0803883A +_08038836: + movs r0, #0x20 + strb r0, [r5] +_0803883A: + ldrb r0, [r4, #0x15] + lsrs r0, r0, #1 + ldr r1, _0803886C @ =gUnk_080CF520 + adds r0, r0, r1 + ldrb r5, [r4, #0x15] + movs r1, #0 + ldrsb r1, [r0, r1] + movs r2, #1 + ldrsb r2, [r0, r2] + adds r0, r4, #0 + bl sub_080002CC + cmp r0, #0xf + beq _0803885A + cmp r0, #0x2a + bne _08038870 +_0803885A: + ldrb r0, [r4, #0x15] + adds r0, #0x10 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] + b _0803887E + .align 2, 0 +_08038868: .4byte gUnk_03000BF0 +_0803886C: .4byte gUnk_080CF520 +_08038870: + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _0803887E + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_0800417E +_0803887E: + ldrb r0, [r4, #0x15] + cmp r5, r0 + beq _08038890 + lsrs r0, r0, #2 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 +_08038890: + adds r0, r4, #0 + bl sub_08004274 + adds r1, r4, #0 + adds r1, #0x82 + ldrb r0, [r1] + cmp r0, #0 + bne _080388A8 + adds r0, r4, #0 + bl sub_080AEF88 + b _080388B2 +_080388A8: + subs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0806F69C +_080388B2: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080388B4 +sub_080388B4: @ 0x080388B4 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080388D0 @ =gUnk_080CF600 + bl sub_0800129E + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, pc} + .align 2, 0 +_080388D0: .4byte gUnk_080CF600 + + thumb_func_start sub_080388D4 +sub_080388D4: @ 0x080388D4 + push {lr} + ldr r2, _080388E8 @ =gUnk_080CF618 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080388E8: .4byte gUnk_080CF618 + + thumb_func_start sub_080388EC +sub_080388EC: @ 0x080388EC + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r4, #0 + adds r6, #0x43 + ldrb r0, [r6] + cmp r0, #0 + beq _08038902 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08038902: + ldr r1, _08038948 @ =gUnk_080CF600 + adds r0, r4, #0 + bl sub_0804AA30 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803897E + ldrb r0, [r4, #0xc] + cmp r0, #4 + beq _0803897E + ldr r5, [r4, #0x54] + adds r0, r4, #0 + adds r0, #0x3d + ldrb r0, [r0] + adds r1, r5, #0 + adds r1, #0x3d + strb r0, [r1] + adds r2, r4, #0 + adds r2, #0x3e + ldrb r1, [r2] + adds r0, r5, #0 + adds r0, #0x3e + strb r1, [r0] + ldrb r0, [r6] + cmp r0, #0 + beq _0803894C + ldrb r1, [r5, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + b _0803897E + .align 2, 0 +_08038948: .4byte gUnk_080CF600 +_0803894C: + ldrb r0, [r4, #0xc] + cmp r0, #1 + bne _0803897E + adds r0, r1, #0 + adds r0, #0x12 + movs r1, #0x1c + ands r0, r1 + strb r0, [r5, #0x15] + lsrs r0, r0, #2 + strb r0, [r5, #0x14] + ldrb r0, [r2] + adds r0, #0x14 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + lsrs r0, r0, #2 + strb r0, [r4, #0x14] + adds r0, r4, #0 + movs r1, #0 + bl sub_08038C84 + adds r0, r5, #0 + movs r1, #1 + bl sub_08038C84 +_0803897E: + pop {r4, r5, r6, pc} + + thumb_func_start nullsub_164 +nullsub_164: @ 0x08038980 + bx lr + .align 2, 0 + + thumb_func_start sub_08038984 +sub_08038984: @ 0x08038984 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r0, #0x13 + bl sub_080A7EE0 + adds r6, r0, #0 + cmp r6, #0 + beq _080389E6 + adds r0, r5, #0 + bl sub_0804A720 + movs r4, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + ldrb r1, [r5, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + str r6, [r5, #0x54] + bl sub_08000E50 + movs r1, #6 + ands r0, r1 + strb r0, [r5, #0x14] + adds r0, r5, #0 + adds r0, #0x80 + movs r1, #0 + strh r4, [r0] + subs r0, #6 + strb r1, [r0] + str r5, [r6, #0x50] + strb r1, [r6, #0xa] + movs r0, #0xff + strb r0, [r6, #0x14] + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r6, #0 + adds r0, #0x38 + strb r1, [r0] + adds r0, r5, #0 + bl sub_08038BA8 +_080389E6: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080389E8 +sub_080389E8: @ 0x080389E8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r6, [r4, #0x54] + adds r1, r4, #0 + adds r1, #0x80 + ldrh r0, [r1] + cmp r0, #0 + beq _08038A08 + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08038A68 + movs r0, #0x80 + strh r0, [r4, #0x24] + b _08038A68 +_08038A08: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08038A22 + adds r0, r4, #0 + bl sub_08038BA8 + adds r0, r6, #0 + bl sub_08038C2C + b _08038A68 +_08038A22: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08038A2E + subs r0, #1 + strb r0, [r4, #0xe] + b _08038A68 +_08038A2E: + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _08038A68 + movs r0, #0xc + strb r0, [r4, #0xe] + ldrb r1, [r6, #0x14] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08038A5C + ldrb r5, [r6, #0x14] + bl sub_08000E50 + movs r1, #0x20 + ands r1, r0 + cmp r1, #0 + beq _08038A54 + adds r1, r5, #1 + b _08038A56 +_08038A54: + adds r1, r5, #7 +_08038A56: + movs r0, #7 + ands r0, r1 + strb r0, [r6, #0x14] +_08038A5C: + adds r0, r4, #0 + bl sub_08038BA8 + adds r0, r6, #0 + bl sub_08038C2C +_08038A68: + adds r0, r4, #0 + bl sub_08038B90 + pop {r4, r5, r6, pc} + + thumb_func_start sub_08038A70 +sub_08038A70: @ 0x08038A70 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldr r6, [r5, #0x54] + adds r1, r5, #0 + adds r1, #0x80 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + cmp r7, #0 + bne _08038AC0 + movs r1, #3 + strb r1, [r5, #0xc] + adds r2, r5, #0 + adds r2, #0x82 + movs r0, #4 + strb r0, [r2] + movs r0, #0x80 + strh r0, [r5, #0x24] + movs r4, #0x20 + strb r4, [r5, #0xf] + strb r1, [r6, #0xc] + adds r1, r6, #0 + adds r1, #0x82 + movs r0, #2 + strb r0, [r1] + movs r0, #0xff + strb r0, [r6, #0x14] + adds r0, r5, #0 + movs r1, #0 + bl sub_08038C84 + adds r0, r6, #0 + bl sub_08038C2C + strb r4, [r6, #0xf] + str r7, [r6, #0x50] + str r5, [r6, #0x54] + b _08038AFE +_08038AC0: + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08038AFE + movs r0, #0x10 + strb r0, [r5, #0xf] + adds r0, r5, #0 + movs r1, #0 + bl sub_08049F84 + strb r0, [r5, #0x15] + ldrb r0, [r5, #0x15] + adds r0, #4 + movs r1, #0x1c + ands r0, r1 + lsrs r1, r0, #2 + strb r1, [r6, #0x14] + movs r1, #0x18 + ands r0, r1 + lsrs r0, r0, #2 + strb r0, [r5, #0x14] + adds r0, r5, #0 + movs r1, #0 + bl sub_08038C84 + adds r0, r6, #0 + movs r1, #1 + bl sub_08038C84 +_08038AFE: + adds r0, r5, #0 + bl sub_08038B90 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08038B08 +sub_08038B08: @ 0x08038B08 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _08038B18 + subs r0, #1 + strb r0, [r4, #0xf] + b _08038B5E +_08038B18: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r2, #0x80 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _08038B5E + movs r0, #4 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x82 + movs r0, #3 + strb r0, [r1] + movs r0, #0x32 + strb r0, [r4, #0xe] + movs r0, #2 + strb r0, [r4, #0xf] + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 + adds r0, #0x10 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] + strh r2, [r4, #0x24] + adds r0, r4, #0 + movs r1, #0 + bl sub_08038C84 + ldr r0, _08038B60 @ =0x0000015B + bl sub_08004488 +_08038B5E: + pop {r4, pc} + .align 2, 0 +_08038B60: .4byte 0x0000015B + + thumb_func_start sub_08038B64 +sub_08038B64: @ 0x08038B64 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_080042B8 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08038B8C + movs r0, #2 + strb r0, [r4, #0xf] + ldrb r0, [r4, #0x15] + adds r0, #0x1f + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] +_08038B8C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08038B90 +sub_08038B90: @ 0x08038B90 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_0800445C + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08038BA8 +sub_08038BA8: @ 0x08038BA8 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08000E50 + ldr r1, _08038BEC @ =gUnk_080CF62C + movs r5, #7 + ands r0, r5 + adds r0, r0, r1 + ldrb r0, [r0] + movs r1, #0 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x82 + movs r3, #1 + strb r3, [r0] + ldr r0, [r4, #0x54] + adds r0, #0x82 + strb r1, [r0] + adds r1, r4, #0 + adds r1, #0x7a + ldrb r0, [r1] + cmp r0, #0 + bne _08038BF0 + adds r0, #1 + strb r0, [r1] + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #0 + bl sub_08038C84 + b _08038C2A + .align 2, 0 +_08038BEC: .4byte gUnk_080CF62C +_08038BF0: + ldr r2, [r4, #0x54] + ldrb r1, [r2, #0x14] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _08038C14 + ldrb r2, [r2, #0x14] + ldrb r1, [r4, #0x14] + adds r0, r1, #1 + ands r0, r5 + movs r3, #6 + cmp r2, r0 + bne _08038C0C + movs r3, #2 +_08038C0C: + adds r3, r3, r1 + movs r0, #6 + ands r3, r0 + b _08038C18 +_08038C14: + ldrb r3, [r2, #0x14] + ldrb r1, [r4, #0x14] +_08038C18: + cmp r3, r1 + beq _08038C2A + strb r3, [r4, #0x14] + lsls r0, r3, #2 + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #0 + bl sub_08038C84 +_08038C2A: + pop {r4, r5, pc} + + thumb_func_start sub_08038C2C +sub_08038C2C: @ 0x08038C2C + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_08000E50 + ldr r1, _08038C58 @ =gUnk_080CF634 + movs r6, #7 + ands r0, r6 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r5, #0xf] + ldr r0, [r5, #0x50] + ldrb r4, [r0, #0x14] + ldrb r0, [r5, #0x14] + cmp r0, #0xff + bne _08038C5C + strb r4, [r5, #0x14] + adds r0, r5, #0 + movs r1, #1 + bl sub_08038C84 + b _08038C7C + .align 2, 0 +_08038C58: .4byte gUnk_080CF634 +_08038C5C: + bl sub_08000E50 + ldr r1, _08038C80 @ =gUnk_080CF63C + ands r0, r6 + adds r0, r0, r1 + ldrb r0, [r0] + adds r4, r0, r4 + ands r4, r6 + ldrb r0, [r5, #0x14] + cmp r4, r0 + beq _08038C7C + strb r4, [r5, #0x14] + adds r0, r5, #0 + movs r1, #1 + bl sub_08038C84 +_08038C7C: + pop {r4, r5, r6, pc} + .align 2, 0 +_08038C80: .4byte gUnk_080CF63C + + thumb_func_start sub_08038C84 +sub_08038C84: @ 0x08038C84 + push {lr} + adds r3, r0, #0 + ldrb r2, [r3, #0x14] + adds r0, #0x82 + ldrb r0, [r0] + lsls r0, r0, #3 + orrs r2, r0 + cmp r1, #0 + bne _08038C98 + lsrs r2, r2, #1 +_08038C98: + adds r0, r3, #0 + adds r1, r2, #0 + bl sub_080042AC + pop {pc} + .align 2, 0 + + thumb_func_start sub_08038CA4 +sub_08038CA4: @ 0x08038CA4 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080012DC + adds r1, r0, #0 + cmp r1, #0 + beq _08038CC8 + ldr r0, _08038CC4 @ =0x080012C8 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r5, #0 + bl _call_via_r1 + b _08038CF0 + .align 2, 0 +_08038CC4: .4byte 0x080012C8 +_08038CC8: + ldr r4, _08038CF4 @ =gUnk_080CF778 + adds r0, r5, #0 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r5, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + adds r0, r5, #0 + bl sub_080391B4 +_08038CF0: + pop {r4, r5, pc} + .align 2, 0 +_08038CF4: .4byte gUnk_080CF778 + + thumb_func_start sub_08038CF8 +sub_08038CF8: @ 0x08038CF8 + push {lr} + ldr r2, _08038D0C @ =gUnk_080CF790 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08038D0C: .4byte gUnk_080CF790 + + thumb_func_start sub_08038D10 +sub_08038D10: @ 0x08038D10 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #2 + beq _08038D52 + adds r5, r4, #0 + adds r5, #0x7a + ldrb r0, [r5] + cmp r0, #0 + bne _08038D3E + movs r0, #1 + bl sub_0807CC3C + cmp r0, #0 + bne _08038D3E + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0xbf + bhi _08038D46 + movs r0, #1 + strb r0, [r5] + b _08038D46 +_08038D3E: + adds r1, r4, #0 + adds r1, #0x45 + movs r0, #0xff + strb r0, [r1] +_08038D46: + adds r0, r4, #0 + bl sub_08039218 + adds r0, r4, #0 + bl sub_08039260 +_08038D52: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _08038D64 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08038D64: + ldr r1, _08038D70 @ =gUnk_080CF778 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, r5, pc} + .align 2, 0 +_08038D70: .4byte gUnk_080CF778 + + thumb_func_start nullsub_165 +nullsub_165: @ 0x08038D74 + bx lr + .align 2, 0 + + thumb_func_start sub_08038D78 +sub_08038D78: @ 0x08038D78 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + ldrb r0, [r4, #0xa] + cmp r0, #2 + beq _08038D96 + movs r0, #0 + strb r0, [r4, #0xb] + movs r0, #0x30 + strb r0, [r4, #0x16] + adds r0, r4, #0 + bl sub_08039120 + b _08038D9C +_08038D96: + adds r0, r4, #0 + bl sub_08039140 +_08038D9C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08038DA0 +sub_08038DA0: @ 0x08038DA0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08038DB6 + adds r0, r4, #0 + bl sub_0803901C +_08038DB6: + adds r0, r4, #0 + bl sub_08039298 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08038DC0 +sub_08038DC0: @ 0x08038DC0 + push {lr} + ldr r2, _08038DD4 @ =gUnk_080CF7AC + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08038DD4: .4byte gUnk_080CF7AC + + thumb_func_start sub_08038DD8 +sub_08038DD8: @ 0x08038DD8 + push {lr} + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x10 + strb r1, [r0, #0xe] + ldr r2, _08038E10 @ =gUnk_080CF7BC + ldrb r1, [r0, #0xa] + adds r1, r1, r2 + ldrb r1, [r1] + strb r1, [r0, #0xf] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + adds r3, r0, #0 + adds r3, #0x29 + ldrb r2, [r3] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r3] + movs r1, #4 + bl sub_08004260 + ldr r0, _08038E14 @ =0x000001D9 + bl sub_08004488 + pop {pc} + .align 2, 0 +_08038E10: .4byte gUnk_080CF7BC +_08038E14: .4byte 0x000001D9 + + thumb_func_start sub_08038E18 +sub_08038E18: @ 0x08038E18 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _08038E70 + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08038E70 + bl sub_08079184 + adds r0, r4, #0 + bl sub_08039218 + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + movs r1, #8 + rsbs r1, r1, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_08016A04 +_08038E70: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08038EA2 + movs r0, #0x10 + strb r0, [r4, #0xe] + bl sub_08000E50 + ldrb r3, [r4, #0x18] + lsls r2, r3, #0x19 + lsrs r2, r2, #0x1f + movs r1, #1 + ands r1, r0 + eors r2, r1 + lsls r2, r2, #6 + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_08039260 +_08038EA2: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08038EAC +sub_08038EAC: @ 0x08038EAC + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_080390F8 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_08038ED0 +sub_08038ED0: @ 0x08038ED0 + push {lr} + ldrb r2, [r0, #0x10] + movs r1, #0x80 + orrs r1, r2 + strb r1, [r0, #0x10] + bl sub_08039218 + pop {pc} + + thumb_func_start sub_08038EE0 +sub_08038EE0: @ 0x08038EE0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_08039298 + movs r1, #0xe0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08038F1C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08038F16 + adds r0, r4, #0 + bl sub_0803901C + b _08038F1C +_08038F16: + movs r0, #0x80 + lsls r0, r0, #8 + str r0, [r4, #0x20] +_08038F1C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08038F20 +sub_08038F20: @ 0x08038F20 + push {r4, lr} + adds r4, r0, #0 + bl sub_08039298 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08038F42 + adds r0, r4, #0 + bl sub_0803901C +_08038F42: + pop {r4, pc} + + thumb_func_start sub_08038F44 +sub_08038F44: @ 0x08038F44 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08038F8C @ =gUnk_03001160 + adds r1, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_080390F8 + adds r0, r4, #0 + bl sub_080AEF88 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_080044EC + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_08039298 + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + subs r2, r0, #1 + strh r2, [r1] + lsls r0, r2, #0x10 + cmp r0, #0 + bne _08038F90 + adds r0, r4, #0 + bl sub_08039120 + b _08038F9E + .align 2, 0 +_08038F8C: .4byte gUnk_03001160 +_08038F90: + movs r0, #0x1f + ands r2, r0 + cmp r2, #0 + bne _08038F9E + adds r0, r4, #0 + bl sub_08039260 +_08038F9E: + pop {r4, pc} + + thumb_func_start sub_08038FA0 +sub_08038FA0: @ 0x08038FA0 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xe] + adds r0, r1, #1 + strb r0, [r4, #0xe] + movs r0, #0x1f + ands r0, r1 + cmp r0, #0 + bne _08038FB8 + adds r0, r4, #0 + bl sub_08039260 +_08038FB8: + adds r2, r4, #0 + adds r2, #0x78 + ldrh r1, [r2] + cmp r1, #0 + beq _08038FFC + ldr r3, _08038FF4 @ =0x0000FFFF + adds r0, r1, r3 + strh r0, [r2] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + bne _08038FE0 + ldr r1, _08038FF8 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 +_08038FE0: + adds r0, r4, #0 + bl sub_080390F8 + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_08004274 + b _08039018 + .align 2, 0 +_08038FF4: .4byte 0x0000FFFF +_08038FF8: .4byte gUnk_03001160 +_08038FFC: + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0803917C + cmp r0, #0 + beq _08039018 + adds r0, r4, #0 + bl sub_0805E7BC +_08039018: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803901C +sub_0803901C: @ 0x0803901C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08000E50 + adds r3, r0, #0 + movs r5, #3 + ands r5, r3 + cmp r3, #3 + bne _08039042 + ldrb r0, [r4, #0xc] + cmp r0, #3 + beq _0803903C + cmp r0, #4 + beq _08039040 + movs r5, #0 + b _08039042 +_0803903C: + movs r5, #1 + b _08039042 +_08039040: + movs r5, #2 +_08039042: + cmp r5, #1 + beq _0803906C + cmp r5, #2 + beq _080390AA + movs r0, #1 + strb r0, [r4, #0xc] + ldr r2, _08039068 @ =gUnk_080CF7BE + lsrs r0, r3, #0x10 + movs r1, #3 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + b _080390BC + .align 2, 0 +_08039068: .4byte gUnk_080CF7BE +_0803906C: + movs r1, #3 + movs r0, #3 + strb r0, [r4, #0xc] + lsrs r0, r3, #8 + ands r0, r1 + adds r0, #2 + strb r0, [r4, #0xe] + movs r0, #0x80 + lsls r0, r0, #8 + str r0, [r4, #0x20] + adds r0, r4, #0 + bl sub_080390C0 + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + bl sub_08000E50 + ands r0, r5 + cmp r0, #0 + beq _080390BC + bl sub_08000E50 + ands r5, r0 + movs r1, #0xeb + lsls r1, r1, #1 + adds r0, r5, r1 + bl sub_08004488 + b _080390BC +_080390AA: + movs r0, #4 + strb r0, [r4, #0xc] + lsrs r1, r3, #0x10 + movs r0, #1 + ands r1, r0 + adds r1, #2 + adds r0, r4, #0 + bl sub_08004260 +_080390BC: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080390C0 +sub_080390C0: @ 0x080390C0 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08000E50 + adds r5, r0, #0 + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + beq _080390E0 + movs r0, #1 + ands r0, r5 + cmp r0, #0 + beq _080390E0 + lsrs r0, r5, #0x10 + b _080390E8 +_080390E0: + adds r0, r4, #0 + bl sub_08049EE4 + adds r0, #2 +_080390E8: + movs r1, #0x1c + ands r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_080390F8 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080390F8 +sub_080390F8: @ 0x080390F8 + push {lr} + adds r3, r0, #0 + ldrb r1, [r3, #0x15] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + beq _0803911C + lsrs r1, r1, #4 + movs r0, #1 + eors r1, r0 + ands r1, r0 + lsls r1, r1, #6 + ldrb r2, [r3, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x18] +_0803911C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08039120 +sub_08039120: @ 0x08039120 + push {lr} + ldr r2, _0803913C @ =gUnk_080CF7C2 + ldrb r1, [r0, #0xa] + adds r1, r1, r2 + ldrb r1, [r1] + movs r2, #0 + strh r1, [r0, #0x24] + adds r1, r0, #0 + adds r1, #0x7a + strb r2, [r1] + bl sub_0803901C + pop {pc} + .align 2, 0 +_0803913C: .4byte gUnk_080CF7C2 + + thumb_func_start sub_08039140 +sub_08039140: @ 0x08039140 + push {r4, lr} + adds r4, r0, #0 + movs r0, #6 + strb r0, [r4, #0xc] + bl sub_08000E50 + strb r0, [r4, #0xe] + ldr r1, _08039174 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] + ldr r0, _08039178 @ =0x0000FFFC + strh r0, [r4, #0x36] + adds r1, r4, #0 + adds r1, #0x78 + movs r0, #0xb4 + strh r0, [r1] + adds r0, r4, #0 + bl sub_080390F8 + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 +_08039174: .4byte gUnk_03001160 +_08039178: .4byte 0x0000FFFC + + thumb_func_start sub_0803917C +sub_0803917C: @ 0x0803917C + push {r4, lr} + adds r2, r0, #0 + movs r1, #0x2e + ldrsh r0, [r2, r1] + ldr r3, _080391AC @ =gUnk_03000BF0 + movs r4, #0xa + ldrsh r1, [r3, r4] + adds r1, #0xc + subs r0, r0, r1 + movs r1, #0x84 + lsls r1, r1, #1 + cmp r0, r1 + bhi _080391B0 + movs r0, #0x32 + ldrsh r1, [r2, r0] + movs r2, #0xc + ldrsh r0, [r3, r2] + adds r0, #0xc + subs r1, r1, r0 + cmp r1, #0xb8 + bhi _080391B0 + movs r0, #0 + b _080391B2 + .align 2, 0 +_080391AC: .4byte gUnk_03000BF0 +_080391B0: + movs r0, #1 +_080391B2: + pop {r4, pc} + + thumb_func_start sub_080391B4 +sub_080391B4: @ 0x080391B4 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x7a + ldrb r0, [r0] + cmp r0, #0 + beq _0803920C + adds r2, r5, #0 + adds r2, #0x7b + ldrb r1, [r2] + adds r0, r1, #1 + strb r0, [r2] + movs r0, #0x1f + ands r0, r1 + cmp r0, #0 + bne _0803920C + movs r0, #0x41 + movs r1, #2 + bl sub_0804AA60 + adds r4, r0, #0 + cmp r4, #0 + beq _0803920C + bl sub_08000E50 + movs r1, #0x17 + ands r1, r0 + lsls r1, r1, #2 + ldr r0, _08039210 @ =gUnk_080CF7C4 + adds r1, r1, r0 + ldr r2, _08039214 @ =gUnk_03000BF0 + ldrh r0, [r1] + ldrh r3, [r2, #0xa] + adds r0, r0, r3 + strh r0, [r4, #0x2e] + ldrh r0, [r1, #2] + ldrh r2, [r2, #0xc] + adds r0, r0, r2 + strh r0, [r4, #0x32] + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] +_0803920C: + pop {r4, r5, pc} + .align 2, 0 +_08039210: .4byte gUnk_080CF7C4 +_08039214: .4byte gUnk_03000BF0 + + thumb_func_start sub_08039218 +sub_08039218: @ 0x08039218 + push {lr} + adds r2, r0, #0 + movs r0, #5 + strb r0, [r2, #0xc] + ldr r1, _08039254 @ =gUnk_080CF824 + ldrb r0, [r2, #0xa] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r2, #0x24] + ldr r1, _08039258 @ =gUnk_080CF828 + ldrb r0, [r2, #0xa] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + adds r0, r2, #0 + adds r0, #0x78 + strh r1, [r0] + subs r0, #0x20 + ldrb r0, [r0] + cmp r0, #4 + beq _0803924C + adds r0, r2, #0 + movs r1, #4 + bl sub_08004260 +_0803924C: + ldr r0, _0803925C @ =0x000001D9 + bl sub_08004488 + pop {pc} + .align 2, 0 +_08039254: .4byte gUnk_080CF824 +_08039258: .4byte gUnk_080CF828 +_0803925C: .4byte 0x000001D9 + + thumb_func_start sub_08039260 +sub_08039260: @ 0x08039260 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08039290 @ =gUnk_080CF82E + ldrb r1, [r4, #0xa] + adds r1, r1, r0 + ldrb r1, [r1] + adds r0, r4, #0 + movs r2, #0 + bl sub_080A29AC + adds r2, r0, #0 + cmp r2, #0 + beq _0803928E + ldr r0, _08039294 @ =gUnk_080CF82C + ldrb r1, [r4, #0x18] + lsls r1, r1, #0x19 + lsrs r1, r1, #0x1f + adds r1, r1, r0 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r1, [r2, #0x2e] + adds r0, r0, r1 + strh r0, [r2, #0x2e] +_0803928E: + pop {r4, pc} + .align 2, 0 +_08039290: .4byte gUnk_080CF82E +_08039294: .4byte gUnk_080CF82C + + thumb_func_start sub_08039298 +sub_08039298: @ 0x08039298 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xb] + cmp r0, #0 + bne _080392A8 + adds r0, r1, #0 + bl sub_08078930 +_080392A8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080392AC +sub_080392AC: @ 0x080392AC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080392C8 @ =gUnk_080CF8A4 + bl sub_0800129E + movs r3, #0x12 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, pc} + .align 2, 0 +_080392C8: .4byte gUnk_080CF8A4 + + thumb_func_start sub_080392CC +sub_080392CC: @ 0x080392CC + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080392FC @ =gUnk_080CF8BC + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r1, r4, #0 + adds r1, #0x7c + ldrb r0, [r1] + cmp r0, #0 + beq _0803930C + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08039300 + subs r1, #0x3d + movs r0, #0x45 + b _0803930A + .align 2, 0 +_080392FC: .4byte gUnk_080CF8BC +_08039300: + adds r0, r4, #0 + adds r0, #0x7d + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x3f +_0803930A: + strb r0, [r1] +_0803930C: + movs r0, #0x36 + ldrsh r1, [r4, r0] + cmp r1, #0 + beq _0803933A + movs r0, #8 + rsbs r0, r0, #0 + cmp r1, r0 + bge _08039334 + ldrb r2, [r4, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x19] + b _0803933A +_08039334: + adds r0, r4, #0 + bl sub_08016A04 +_0803933A: + pop {r4, pc} + + thumb_func_start sub_0803933C +sub_0803933C: @ 0x0803933C + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0x44 + bne _08039390 + adds r0, r5, #0 + adds r0, #0x41 + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + cmp r1, #6 + bgt _08039390 + cmp r1, #4 + blt _08039390 + adds r0, r5, #0 + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bgt _08039390 + movs r0, #4 + strb r0, [r5, #0xc] + adds r0, r5, #0 + adds r0, #0x3e + ldrb r0, [r0] + strb r0, [r5, #0x15] + ldrb r0, [r5, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + movs r1, #0x10 + eors r0, r1 + asrs r0, r0, #3 + strb r0, [r5, #0x14] + movs r0, #0x90 + lsls r0, r0, #1 + strh r0, [r5, #0x24] + adds r0, r5, #0 + bl sub_0803981C +_08039390: + adds r0, r5, #0 + adds r0, #0x41 + ldrb r2, [r0] + cmp r2, #0x9d + bne _080393F8 + ldr r1, [r5, #0x54] + cmp r1, #0 + bne _080393CA + ldrb r0, [r5, #0xc] + cmp r0, #8 + bhi _080393EC + adds r0, r5, #0 + movs r1, #0x10 + movs r2, #1 + bl sub_0804A98C + adds r1, r0, #0 + cmp r1, #0 + beq _080393DC + ldrb r0, [r5, #0x14] + lsls r0, r0, #1 + strb r0, [r1, #0x1e] + movs r0, #2 + strb r0, [r1, #0xb] + movs r0, #0xc3 + lsls r0, r0, #1 + bl sub_08004488 + b _080393DC +_080393CA: + adds r0, r1, #0 + adds r0, #0x41 + movs r4, #0 + strb r2, [r0] + movs r0, #0xc3 + lsls r0, r0, #1 + bl sub_08004488 + str r4, [r5, #0x54] +_080393DC: + adds r0, r5, #0 + bl sub_08039A48 + adds r1, r5, #0 + adds r1, #0x78 + ldrh r0, [r1] + adds r0, #0x5a + strh r0, [r1] +_080393EC: + adds r2, r5, #0 + adds r2, #0x3b + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 + strb r0, [r2] +_080393F8: + adds r0, r5, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0803940A + adds r0, r5, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0803940A: + ldr r1, _08039414 @ =gUnk_080CF8A4 + adds r0, r5, #0 + bl sub_0804AA30 + pop {r4, r5, pc} + .align 2, 0 +_08039414: .4byte gUnk_080CF8A4 + + thumb_func_start sub_08039418 +sub_08039418: @ 0x08039418 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xa] + cmp r0, #0 + bne _0803942E + adds r0, r1, #0 + movs r1, #0xf3 + movs r2, #0 + bl sub_0804A7E0 + b _08039434 +_0803942E: + adds r0, r1, #0 + bl sub_0804A7D4 +_08039434: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08039438 +sub_08039438: @ 0x08039438 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F520 + cmp r0, #0 + beq _08039454 + ldr r0, _08039458 @ =gUnk_080CF8EC + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_08039454: + pop {r4, pc} + .align 2, 0 +_08039458: .4byte gUnk_080CF8EC + + thumb_func_start sub_0803945C +sub_0803945C: @ 0x0803945C + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x5a + strb r1, [r0, #0x1d] + bx lr + .align 2, 0 + + thumb_func_start sub_08039468 +sub_08039468: @ 0x08039468 + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_08039470 +sub_08039470: @ 0x08039470 + push {r4, lr} + adds r4, r0, #0 + ldr r2, [r4, #0x54] + cmp r2, #0 + bne _08039494 + movs r1, #0x10 + movs r2, #1 + bl sub_0804A98C + adds r2, r0, #0 + cmp r2, #0 + beq _0803949C + ldrb r0, [r4, #0x14] + lsls r0, r0, #1 + strb r0, [r2, #0x1e] + movs r0, #1 + strb r0, [r2, #0xb] + b _0803949C +_08039494: + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] +_0803949C: + movs r0, #0 + str r0, [r4, #0x54] + adds r3, r4, #0 + adds r3, #0x3a + ldrb r2, [r3] + movs r1, #0xfb + adds r0, r1, #0 + ands r0, r2 + strb r0, [r3] + adds r2, r4, #0 + adds r2, #0x3b + ldrb r0, [r2] + ands r1, r0 + strb r1, [r2] + adds r0, r4, #0 + bl sub_08039A48 + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + adds r0, #0x5a + strh r0, [r1] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080394CC +sub_080394CC: @ 0x080394CC + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + movs r1, #0 + strb r0, [r4, #0x14] + adds r0, r4, #0 + adds r0, #0x7b + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + subs r0, #0x3d + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x7d + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0 + bl sub_08039A00 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _0803950A + adds r0, r4, #0 + bl sub_0803998C + b _0803952A +_0803950A: + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0xff + strb r0, [r4, #0x15] + ldr r1, _0803952C @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + lsrs r0, r0, #3 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_0803981C +_0803952A: + pop {r4, pc} + .align 2, 0 +_0803952C: .4byte gUnk_03001160 + + thumb_func_start sub_08039530 +sub_08039530: @ 0x08039530 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xc0 + lsls r1, r1, #5 + bl sub_08003FC4 + cmp r0, #0 + bne _08039568 + adds r0, r4, #0 + bl sub_08039758 + cmp r0, #0 + bne _08039568 + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08039568 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0xa + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_08039858 +_08039568: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803956C +sub_0803956C: @ 0x0803956C + push {r4, lr} + adds r4, r0, #0 + bl sub_08039758 + cmp r0, #0 + bne _0803958A + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803958A + adds r0, r4, #0 + bl sub_0803992C +_0803958A: + pop {r4, pc} + + thumb_func_start sub_0803958C +sub_0803958C: @ 0x0803958C + push {r4, lr} + adds r4, r0, #0 + bl sub_08039758 + cmp r0, #0 + bne _080395D4 + adds r0, r4, #0 + bl sub_080AEF88 + cmp r0, #0 + beq _080395C0 + adds r0, r4, #0 + bl sub_080042B8 + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080395D4 + adds r0, r4, #0 + bl sub_0803998C + b _080395D4 +_080395C0: + adds r2, r4, #0 + adds r2, #0x7b + ldrb r0, [r2] + lsls r0, r0, #1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_0803998C +_080395D4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080395D8 +sub_080395D8: @ 0x080395D8 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEFE0 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08039602 + adds r0, r4, #0 + bl sub_0803998C + adds r1, r4, #0 + adds r1, #0x7c + movs r0, #0x5a + strb r0, [r1] + movs r0, #0x7d + bl sub_08004488 +_08039602: + pop {r4, pc} + + thumb_func_start sub_08039604 +sub_08039604: @ 0x08039604 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEFE0 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + ldr r0, [r4, #0x20] + cmp r0, #0 + bge _08039624 + movs r0, #6 + strb r0, [r4, #0xc] + movs r0, #0xf + strb r0, [r4, #0xe] +_08039624: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08039628 +sub_08039628: @ 0x08039628 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + adds r1, r0, #0 + cmp r1, #0 + beq _0803963A + subs r0, #1 + strb r0, [r2, #0xe] + b _0803966A +_0803963A: + ldrh r0, [r2, #0x36] + adds r0, #4 + strh r0, [r2, #0x36] + lsls r0, r0, #0x10 + cmp r0, #0 + blt _0803966A + movs r0, #7 + strb r0, [r2, #0xc] + movs r0, #0xa + strb r0, [r2, #0xe] + strh r1, [r2, #0x36] + adds r1, r2, #0 + adds r1, #0x7a + movs r0, #0x78 + strb r0, [r1] + adds r1, #2 + movs r0, #0x3c + strb r0, [r1] + adds r0, r2, #0 + bl sub_080399C4 + ldr r0, _0803966C @ =0x0000014B + bl sub_08004488 +_0803966A: + pop {pc} + .align 2, 0 +_0803966C: .4byte 0x0000014B + + thumb_func_start sub_08039670 +sub_08039670: @ 0x08039670 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08039686 + adds r0, r1, #0 + bl sub_0803998C +_08039686: + pop {pc} + + thumb_func_start sub_08039688 +sub_08039688: @ 0x08039688 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldrb r0, [r4, #0xe] + subs r1, r0, #1 + strb r1, [r4, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _080396AC + adds r0, r4, #0 + movs r1, #0x3c + bl sub_08039A00 + adds r0, r4, #0 + bl sub_0803998C + b _080396BA +_080396AC: + movs r0, #0x1f + ands r1, r0 + cmp r1, #0 + bne _080396BA + adds r0, r4, #0 + bl sub_08039A20 +_080396BA: + pop {r4, pc} + + thumb_func_start sub_080396BC +sub_080396BC: @ 0x080396BC + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xc0 + lsls r1, r1, #5 + bl sub_08003FC4 + cmp r0, #0 + bne _080396E2 + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080396E2 + adds r0, r4, #0 + bl sub_08039A70 +_080396E2: + pop {r4, pc} + + thumb_func_start sub_080396E4 +sub_080396E4: @ 0x080396E4 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEFE0 + adds r0, r4, #0 + bl sub_080042B8 + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08039708 + adds r0, r4, #0 + bl sub_08039AD4 +_08039708: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803970C +sub_0803970C: @ 0x0803970C + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08039756 + ldrb r0, [r4, #0xb] + cmp r0, #1 + bne _0803973A + adds r0, r4, #0 + bl sub_0803998C + ldr r0, [r4, #0x54] + bl sub_0805E7BC + movs r0, #0 + str r0, [r4, #0x54] + b _08039740 +_0803973A: + adds r0, r4, #0 + bl sub_08039A48 +_08039740: + adds r2, r4, #0 + adds r2, #0x3b + ldrb r1, [r2] + movs r0, #4 + orrs r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + adds r0, #0x3c + strh r0, [r1] +_08039756: + pop {r4, pc} + + thumb_func_start sub_08039758 +sub_08039758: @ 0x08039758 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x7a + ldrb r0, [r5] + cmp r0, #0 + beq _0803976A + subs r0, #1 + strb r0, [r5] +_0803976A: + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _08039818 + ldrb r0, [r5] + cmp r0, #0 + bne _08039818 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080397DC + ldr r5, _080397D8 @ =gUnk_020000B0 + ldr r0, [r5] + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r3, #0x32 + ldrsh r2, [r0, r3] + adds r0, r4, #0 + movs r3, #0x24 + bl sub_0806FCB8 + cmp r0, #0 + beq _08039818 + movs r0, #5 + strb r0, [r4, #0xc] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + ldr r1, [r5] + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + asrs r0, r0, #3 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_0803981C + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x46 + strb r0, [r1] + adds r1, #0x3e + strb r0, [r1] + movs r0, #0xa0 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + movs r0, #1 + b _0803981A + .align 2, 0 +_080397D8: .4byte gUnk_020000B0 +_080397DC: + ldr r5, _08039814 @ =gUnk_020000B0 + ldr r0, [r5] + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r3, #0x32 + ldrsh r2, [r0, r3] + adds r0, r4, #0 + movs r3, #0x48 + bl sub_0806FCB8 + cmp r0, #0 + beq _08039818 + movs r0, #8 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldr r1, [r5] + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x14] + adds r1, #0xc + adds r0, r4, #0 + bl sub_080042AC + movs r0, #1 + b _0803981A + .align 2, 0 +_08039814: .4byte gUnk_020000B0 +_08039818: + movs r0, #0 +_0803981A: + pop {r4, r5, pc} + + thumb_func_start sub_0803981C +sub_0803981C: @ 0x0803981C + push {lr} + adds r2, r0, #0 + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r2, #0x20] + adds r1, r2, #0 + adds r1, #0x3d + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bne _08039836 + movs r0, #0xf4 + strb r0, [r1] +_08039836: + adds r1, r2, #0 + adds r1, #0x3f + movs r0, #0x45 + strb r0, [r1] + adds r1, #0x3e + strb r0, [r1] + ldrb r1, [r2, #0x14] + adds r1, #8 + adds r0, r2, #0 + bl sub_080042AC + ldr r0, _08039854 @ =0x0000012B + bl sub_08004488 + pop {pc} + .align 2, 0 +_08039854: .4byte 0x0000012B + + thumb_func_start sub_08039858 +sub_08039858: @ 0x08039858 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_080398C0 + adds r6, r0, #0 + ldrb r0, [r5, #0x14] + lsls r4, r0, #3 + adds r0, r6, #4 + movs r1, #0x18 + ands r0, r1 + cmp r0, r4 + bne _0803988C + adds r1, r5, #0 + adds r1, #0x7b + ldrb r0, [r1] + cmp r0, #3 + bne _080398B8 + movs r0, #0 + strb r0, [r1] + bl sub_08000E50 + movs r1, #2 + ands r1, r0 + subs r1, #1 + lsls r1, r1, #3 + adds r6, r6, r1 +_0803988C: + subs r0, r6, r4 + movs r1, #0x1f + ands r0, r1 + lsrs r4, r0, #4 + movs r0, #1 + eors r4, r0 + ldr r1, _080398BC @ =gUnk_080CF8F8 + ldrb r0, [r5, #0x14] + lsls r0, r0, #1 + adds r0, r0, r4 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r5, #0 + bl sub_080042AC + lsls r0, r4, #1 + ldrb r1, [r5, #0x14] + adds r0, r0, r1 + subs r0, #1 + movs r1, #3 + ands r0, r1 + strb r0, [r5, #0x14] +_080398B8: + pop {r4, r5, r6, pc} + .align 2, 0 +_080398BC: .4byte gUnk_080CF8F8 + + thumb_func_start sub_080398C0 +sub_080398C0: @ 0x080398C0 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08000E50 + adds r5, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08039908 + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _08039908 + ldr r0, _08039900 @ =gUnk_020000B0 + ldr r0, [r0] + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r3, #0x32 + ldrsh r2, [r0, r3] + adds r0, r4, #0 + movs r3, #0x58 + bl sub_0806FCB8 + cmp r0, #0 + beq _08039908 + ldr r1, _08039904 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + b _08039928 + .align 2, 0 +_08039900: .4byte gUnk_020000B0 +_08039904: .4byte gUnk_03001160 +_08039908: + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _08039922 + movs r0, #7 + ands r0, r5 + cmp r0, #0 + beq _08039922 + adds r0, r4, #0 + bl sub_08049EE4 + b _08039928 +_08039922: + lsrs r0, r5, #0x10 + movs r1, #0x18 + ands r0, r1 +_08039928: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803992C +sub_0803992C: @ 0x0803992C + push {r4, lr} + adds r4, r0, #0 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0xe0 + strh r0, [r4, #0x24] + ldrb r0, [r4, #0x14] + lsls r0, r0, #3 + strb r0, [r4, #0x15] + bl sub_08000E50 + ldr r2, _08039978 @ =gUnk_080CF900 + movs r1, #0xf + ands r1, r0 + adds r1, r1, r2 + ldrb r1, [r1] + adds r0, r4, #0 + adds r0, #0x78 + strh r1, [r0] + ldrb r1, [r4, #0x15] + adds r0, r4, #0 + movs r2, #0 + bl sub_080AE58C + ldr r1, _0803997C @ =gUnk_080CF910 + ldrb r2, [r4, #0x14] + lsls r0, r2, #1 + adds r0, r0, r1 + ldrh r1, [r0] + ldrh r0, [r4, #0x2a] + ands r0, r1 + cmp r0, #0 + beq _08039980 + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_080042AC + b _08039988 + .align 2, 0 +_08039978: .4byte gUnk_080CF900 +_0803997C: .4byte gUnk_080CF910 +_08039980: + adds r1, r2, #4 + adds r0, r4, #0 + bl sub_080042AC +_08039988: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803998C +sub_0803998C: @ 0x0803998C + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x44 + strb r0, [r1] + adds r1, #0x3e + strb r0, [r1] + bl sub_08000E50 + ldr r2, _080399C0 @ =gUnk_080CF918 + movs r1, #0xf + ands r1, r0 + adds r1, r1, r2 + ldrb r1, [r1] + adds r0, r4, #0 + adds r0, #0x78 + strh r1, [r0] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_080042AC + pop {r4, pc} + .align 2, 0 +_080399C0: .4byte gUnk_080CF918 + + thumb_func_start sub_080399C4 +sub_080399C4: @ 0x080399C4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x11 + movs r2, #0 + bl sub_080A29AC + adds r1, r0, #0 + cmp r1, #0 + beq _080399E2 + ldrh r0, [r1, #0x2e] + subs r0, #4 + strh r0, [r1, #0x2e] + ldrh r0, [r1, #0x32] + adds r0, #2 + strh r0, [r1, #0x32] +_080399E2: + adds r0, r4, #0 + movs r1, #0x11 + movs r2, #0 + bl sub_080A29AC + adds r1, r0, #0 + cmp r1, #0 + beq _080399FE + ldrh r0, [r1, #0x2e] + adds r0, #4 + strh r0, [r1, #0x2e] + ldrh r0, [r1, #0x32] + adds r0, #2 + strh r0, [r1, #0x32] +_080399FE: + pop {r4, pc} + + thumb_func_start sub_08039A00 +sub_08039A00: @ 0x08039A00 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08000E50 + ldr r2, _08039A1C @ =gUnk_080CF928 + movs r1, #3 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + adds r0, r0, r5 + adds r4, #0x7a + strb r0, [r4] + pop {r4, r5, pc} + .align 2, 0 +_08039A1C: .4byte gUnk_080CF928 + + thumb_func_start sub_08039A20 +sub_08039A20: @ 0x08039A20 + push {r4, lr} + adds r4, r0, #0 + movs r1, #2 + movs r2, #0 + bl sub_0804A98C + adds r1, r0, #0 + cmp r1, #0 + beq _08039A44 + ldrb r0, [r4, #0x15] + strb r0, [r1, #0x15] + adds r1, r4, #0 + adds r1, #0x7c + movs r0, #0x3c + strb r0, [r1] + movs r0, #0xfb + bl sub_08004488 +_08039A44: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08039A48 +sub_08039A48: @ 0x08039A48 + push {lr} + adds r2, r0, #0 + movs r0, #9 + strb r0, [r2, #0xc] + adds r1, r2, #0 + adds r1, #0x3f + movs r0, #0x47 + strb r0, [r1] + adds r1, #0x3e + strb r0, [r1] + subs r1, #5 + movs r0, #0xa + strh r0, [r1] + ldrb r1, [r2, #0x14] + adds r1, #0x10 + adds r0, r2, #0 + bl sub_080042AC + pop {pc} + .align 2, 0 + + thumb_func_start sub_08039A70 +sub_08039A70: @ 0x08039A70 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0xa + strb r0, [r5, #0xc] + movs r0, #0xe0 + strh r0, [r5, #0x24] + bl sub_08000E50 + adds r4, r0, #0 + ldr r1, _08039AB8 @ =gUnk_080CF92C + movs r0, #3 + ands r0, r4 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r5, #0 + adds r0, #0x78 + strh r1, [r0] + lsrs r4, r4, #0x10 + adds r0, r5, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _08039ABC + movs r0, #7 + ands r0, r4 + cmp r0, #0 + beq _08039ABC + adds r0, r5, #0 + bl sub_08049EE4 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r5, #0x15] + b _08039AC2 + .align 2, 0 +_08039AB8: .4byte gUnk_080CF92C +_08039ABC: + movs r0, #0x18 + ands r4, r0 + strb r4, [r5, #0x15] +_08039AC2: + ldrb r0, [r5, #0x15] + lsrs r0, r0, #3 + strb r0, [r5, #0x14] + ldrb r1, [r5, #0x14] + adds r1, #0x14 + adds r0, r5, #0 + bl sub_080042AC + pop {r4, r5, pc} + + thumb_func_start sub_08039AD4 +sub_08039AD4: @ 0x08039AD4 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08039B28 + adds r5, r0, #0 + ldr r0, _08039B18 @ =0x0000FFFF + cmp r5, r0 + beq _08039B20 + ldrb r2, [r4, #0xb] + adds r0, r4, #0 + movs r1, #0x10 + bl sub_0804A98C + adds r1, r0, #0 + cmp r1, #0 + beq _08039B20 + str r4, [r1, #0x50] + movs r0, #0xb + strb r0, [r4, #0xc] + str r1, [r4, #0x54] + ldrb r1, [r4, #0x14] + adds r1, #0x18 + adds r0, r4, #0 + bl sub_080042AC + ldr r0, _08039B1C @ =0x00004067 + adds r1, r4, #0 + adds r1, #0x38 + ldrb r2, [r1] + adds r1, r5, #0 + bl sub_0800015E + b _08039B26 + .align 2, 0 +_08039B18: .4byte 0x0000FFFF +_08039B1C: .4byte 0x00004067 +_08039B20: + adds r0, r4, #0 + bl sub_08039A48 +_08039B26: + pop {r4, r5, pc} + + thumb_func_start sub_08039B28 +sub_08039B28: @ 0x08039B28 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r0, [r6, #0x54] + cmp r0, #0 + bne _08039B84 + ldrb r2, [r6, #0x14] + lsls r2, r2, #1 + ldr r0, _08039B88 @ =gUnk_080CF930 + adds r2, r2, r0 + movs r1, #0x2e + ldrsh r0, [r6, r1] + movs r1, #0 + ldrsb r1, [r2, r1] + adds r0, r0, r1 + ldr r4, _08039B8C @ =gUnk_03000BF0 + ldrh r1, [r4, #6] + subs r0, r0, r1 + asrs r5, r0, #4 + movs r3, #0x3f + ands r5, r3 + movs r1, #0x32 + ldrsh r0, [r6, r1] + movs r1, #1 + ldrsb r1, [r2, r1] + adds r0, r0, r1 + ldrh r1, [r4, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r5, r0 + adds r0, r6, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r5, #0 + bl sub_080002B0 + adds r2, r0, #0 + ldr r1, _08039B90 @ =gUnk_080CF938 +_08039B76: + ldrh r0, [r1] + cmp r0, r2 + beq _08039B98 + adds r1, #4 + ldrh r0, [r1] + cmp r0, #0 + bne _08039B76 +_08039B84: + ldr r0, _08039B94 @ =0x0000FFFF + b _08039B9E + .align 2, 0 +_08039B88: .4byte gUnk_080CF930 +_08039B8C: .4byte gUnk_03000BF0 +_08039B90: .4byte gUnk_080CF938 +_08039B94: .4byte 0x0000FFFF +_08039B98: + ldrh r0, [r1, #2] + strb r0, [r6, #0xb] + adds r0, r5, #0 +_08039B9E: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08039BA0 +sub_08039BA0: @ 0x08039BA0 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080012DC + adds r1, r0, #0 + cmp r1, #0 + beq _08039BC4 + ldr r0, _08039BC0 @ =0x080012C8 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r5, #0 + bl _call_via_r1 + b _08039BD8 + .align 2, 0 +_08039BC0: .4byte 0x080012C8 +_08039BC4: + ldr r4, _08039BDC @ =gUnk_080CFB84 + adds r0, r5, #0 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 +_08039BD8: + pop {r4, r5, pc} + .align 2, 0 +_08039BDC: .4byte gUnk_080CFB84 + + thumb_func_start sub_08039BE0 +sub_08039BE0: @ 0x08039BE0 + push {lr} + ldr r2, _08039BF4 @ =gUnk_080CFB9C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08039BF4: .4byte gUnk_080CFB9C + + thumb_func_start sub_08039BF8 +sub_08039BF8: @ 0x08039BF8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_0803A100 + adds r0, r5, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x9d + bne _08039C64 + movs r0, #7 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + movs r0, #0xa8 + lsls r0, r0, #0xa + str r0, [r5, #0x20] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + adds r0, r5, #0 + adds r0, #0x74 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08039C60 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + b _08039C72 + .align 2, 0 +_08039C60: .4byte gUnk_03000BF0 +_08039C64: + movs r1, #0x36 + ldrsh r0, [r5, r1] + cmp r0, #0 + beq _08039C72 + adds r0, r5, #0 + bl sub_0803A0E0 +_08039C72: + ldr r1, _08039C7C @ =gUnk_080CFB84 + adds r0, r5, #0 + bl sub_0804AA30 + pop {r4, r5, r6, pc} + .align 2, 0 +_08039C7C: .4byte gUnk_080CFB84 + + thumb_func_start sub_08039C80 +sub_08039C80: @ 0x08039C80 + push {lr} + ldr r2, _08039C94 @ =gUnk_080CFBBC + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08039C94: .4byte gUnk_080CFBBC + + thumb_func_start sub_08039C98 +sub_08039C98: @ 0x08039C98 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803A100 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xd] + strb r1, [r4, #0xe] + movs r0, #0x30 + strb r0, [r4, #0x1d] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08039CB0 +sub_08039CB0: @ 0x08039CB0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803A100 + adds r0, r4, #0 + bl sub_0806F520 + cmp r0, #0 + beq _08039CCA + adds r0, r4, #0 + bl sub_0806F4E8 + b _08039CDE +_08039CCA: + adds r1, r4, #0 + adds r1, #0x62 + strb r0, [r1] + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _08039CDE + adds r0, r4, #0 + bl sub_0803A0E0 +_08039CDE: + pop {r4, pc} + + thumb_func_start sub_08039CE0 +sub_08039CE0: @ 0x08039CE0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r4, [r5, #0xe] + cmp r4, #0 + bne _08039D2A + bl sub_0803A100 + movs r0, #1 + strb r0, [r5, #0xe] + ldr r0, _08039D3C @ =0x0000FFFF + strh r0, [r5, #0x36] + adds r0, r5, #0 + adds r0, #0x62 + strb r4, [r0] + adds r0, #0x12 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08039D40 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E +_08039D2A: + adds r0, r5, #0 + bl sub_0806F520 + cmp r0, #0 + beq _08039D44 + adds r0, r5, #0 + bl sub_0806F3E4 + b _08039D4A + .align 2, 0 +_08039D3C: .4byte 0x0000FFFF +_08039D40: .4byte gUnk_03000BF0 +_08039D44: + adds r0, r5, #0 + bl sub_0803A0E0 +_08039D4A: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08039D4C +sub_08039D4C: @ 0x08039D4C + push {lr} + adds r2, r0, #0 + ldr r0, _08039D64 @ =gUnk_03003F80 + ldrb r1, [r0, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _08039D62 + adds r0, r2, #0 + bl sub_0803A0E0 +_08039D62: + pop {pc} + .align 2, 0 +_08039D64: .4byte gUnk_03003F80 + + thumb_func_start nullsub_166 +nullsub_166: @ 0x08039D68 + bx lr + .align 2, 0 + + thumb_func_start sub_08039D6C +sub_08039D6C: @ 0x08039D6C + push {lr} + bl sub_0803A0E0 + pop {pc} + + thumb_func_start sub_08039D74 +sub_08039D74: @ 0x08039D74 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r1, #0 + movs r0, #1 + strb r0, [r5, #0xc] + movs r0, #2 + strb r0, [r5, #0x1c] + strb r1, [r5, #0x16] + ldrh r0, [r5, #0x32] + adds r0, #3 + strh r0, [r5, #0x32] + movs r0, #0x2e + ldrsh r4, [r5, r0] + ldr r1, _08039DD0 @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + subs r4, r4, r0 + asrs r4, r4, #4 + movs r2, #0x3f + ands r4, r2 + movs r3, #0x32 + ldrsh r0, [r5, r3] + ldrh r1, [r1, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + adds r6, r5, #0 + adds r6, #0x38 + ldrb r1, [r6] + adds r0, r4, #0 + bl sub_080001DA + adds r1, r5, #0 + adds r1, #0x74 + strh r0, [r1] + ldr r0, _08039DD4 @ =0x00004060 + ldrb r2, [r6] + adds r1, r4, #0 + bl sub_0800015E + adds r0, r5, #0 + movs r1, #0 + bl sub_08004260 + pop {r4, r5, r6, pc} + .align 2, 0 +_08039DD0: .4byte gUnk_03000BF0 +_08039DD4: .4byte 0x00004060 + + thumb_func_start sub_08039DD8 +sub_08039DD8: @ 0x08039DD8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_0803A100 + ldrb r0, [r5, #0xa] + cmp r0, #0 + bne _08039E38 + adds r0, r5, #0 + bl sub_080002A0 + ldr r1, _08039E30 @ =0x00004073 + cmp r0, r1 + bne _08039E28 + adds r0, r5, #0 + adds r0, #0x74 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08039E34 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + adds r0, r5, #0 + bl sub_0803A0E0 +_08039E28: + adds r0, r5, #0 + bl sub_08078930 + b _08039EC6 + .align 2, 0 +_08039E30: .4byte 0x00004073 +_08039E34: .4byte gUnk_03000BF0 +_08039E38: + ldr r0, _08039E6C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08039EC6 + ldr r2, _08039E70 @ =gUnk_03001160 + movs r0, #0x2e + ldrsh r1, [r2, r0] + movs r6, #0x32 + ldrsh r2, [r2, r6] + adds r0, r5, #0 + movs r3, #0x30 + bl sub_0806FCB8 + cmp r0, #0 + beq _08039EC6 + ldrb r0, [r5, #0xa] + cmp r0, #1 + bne _08039E74 + movs r0, #3 + strb r0, [r5, #0xc] + movs r0, #0x1e + strb r0, [r5, #0xe] + b _08039EC6 + .align 2, 0 +_08039E6C: .4byte gUnk_03003F80 +_08039E70: .4byte gUnk_03001160 +_08039E74: + ldrb r1, [r5, #0xa] + subs r1, #2 + movs r0, #0x42 + bl sub_0804AA60 + adds r2, r0, #0 + cmp r2, #0 + beq _08039EC6 + movs r0, #1 + strb r0, [r2, #0xb] + adds r0, r5, #0 + adds r1, r2, #0 + bl sub_0806FA24 + adds r0, r5, #0 + adds r0, #0x74 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08039EC8 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + adds r0, r5, #0 + bl sub_0805E7BC +_08039EC6: + pop {r4, r5, r6, pc} + .align 2, 0 +_08039EC8: .4byte gUnk_03000BF0 + + thumb_func_start sub_08039ECC +sub_08039ECC: @ 0x08039ECC + push {lr} + ldr r2, _08039EE0 @ =gUnk_080CFBD4 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08039EE0: .4byte gUnk_080CFBD4 + + thumb_func_start sub_08039EE4 +sub_08039EE4: @ 0x08039EE4 + push {r4, r5, r6, lr} + mov ip, r0 + movs r2, #0 + movs r0, #1 + mov r1, ip + strb r0, [r1, #0xd] + ldrb r1, [r1, #0x10] + movs r0, #0x7f + ands r0, r1 + mov r3, ip + strb r0, [r3, #0x10] + strh r2, [r3, #0x2a] + ldr r0, _08039F40 @ =gUnk_080FD340 + str r0, [r3, #0x48] + ldr r0, _08039F44 @ =gUnk_03001160 + ldrb r0, [r0, #0x14] + mov r1, ip + adds r1, #0x76 + strb r0, [r1] + mov r0, ip + adds r0, #0x74 + ldrh r0, [r0] + movs r5, #0x2e + ldrsh r1, [r3, r5] + ldr r3, _08039F48 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + mov r6, ip + movs r5, #0x32 + ldrsh r2, [r6, r5] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + mov r2, ip + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + pop {r4, r5, r6, pc} + .align 2, 0 +_08039F40: .4byte gUnk_080FD340 +_08039F44: .4byte gUnk_03001160 +_08039F48: .4byte gUnk_03000BF0 + + thumb_func_start sub_08039F4C +sub_08039F4C: @ 0x08039F4C + push {lr} + adds r3, r0, #0 + ldr r0, _08039F74 @ =gUnk_03001160 + movs r1, #0x76 + adds r1, r1, r3 + mov ip, r1 + ldrb r2, [r0, #0x14] + ldrb r0, [r1] + cmp r2, r0 + beq _08039F70 + subs r0, r2, r0 + ldrb r1, [r3, #0x1e] + adds r0, r0, r1 + movs r1, #6 + ands r0, r1 + strb r0, [r3, #0x1e] + mov r0, ip + strb r2, [r0] +_08039F70: + pop {pc} + .align 2, 0 +_08039F74: .4byte gUnk_03001160 + + thumb_func_start sub_08039F78 +sub_08039F78: @ 0x08039F78 + push {lr} + adds r2, r0, #0 + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r3] + movs r1, #0x36 + ldrsh r0, [r2, r1] + cmp r0, #0 + beq _08039F9C + ldrh r0, [r2, #0x2a] + cmp r0, #0 + beq _08039FA2 +_08039F9C: + adds r0, r2, #0 + bl sub_0803A0E0 +_08039FA2: + pop {pc} + + thumb_func_start sub_08039FA4 +sub_08039FA4: @ 0x08039FA4 + push {lr} + bl sub_0803A0E0 + pop {pc} + + thumb_func_start sub_08039FAC +sub_08039FAC: @ 0x08039FAC + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_0803A100 + adds r3, r5, #0 + adds r3, #0x62 + ldr r2, _0803A03C @ =gUnk_080CFBE4 + ldrb r1, [r5, #0xe] + movs r0, #3 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + ldrb r1, [r3] + adds r0, r0, r1 + strb r0, [r3] + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _0803A03A + movs r0, #4 + strb r0, [r5, #0xc] + ldrb r0, [r5, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + strb r4, [r3] + adds r1, r5, #0 + adds r1, #0x3f + movs r0, #0xa0 + strb r0, [r1] + subs r1, #4 + movs r0, #0xf + strb r0, [r1] + ldr r0, _0803A040 @ =gUnk_080FD34C + str r0, [r5, #0x48] + adds r0, r5, #0 + adds r0, #0x74 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _0803A044 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E +_0803A03A: + pop {r4, r5, r6, pc} + .align 2, 0 +_0803A03C: .4byte gUnk_080CFBE4 +_0803A040: .4byte gUnk_080FD34C +_0803A044: .4byte gUnk_03000BF0 + + thumb_func_start sub_0803A048 +sub_0803A048: @ 0x0803A048 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldr r0, [r4, #0x34] + ldr r1, _0803A078 @ =0xFFFF0000 + adds r0, r0, r1 + str r0, [r4, #0x34] + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #6 + rsbs r0, r0, #0 + cmp r1, r0 + bgt _0803A076 + movs r0, #5 + strb r0, [r4, #0xc] + movs r0, #0xa + strb r0, [r4, #0xe] + ldr r1, _0803A07C @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] +_0803A076: + pop {r4, pc} + .align 2, 0 +_0803A078: .4byte 0xFFFF0000 +_0803A07C: .4byte gUnk_03001160 + + thumb_func_start sub_0803A080 +sub_0803A080: @ 0x0803A080 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803A098 + movs r0, #6 + strb r0, [r4, #0xc] +_0803A098: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803A09C +sub_0803A09C: @ 0x0803A09C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080AEFE0 + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _0803A0B6 + adds r0, r4, #0 + bl sub_0803A0E0 +_0803A0B6: + pop {r4, pc} + + thumb_func_start sub_0803A0B8 +sub_0803A0B8: @ 0x0803A0B8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x20] + cmp r0, #0 + bge _0803A0CA + ldrb r0, [r4, #0x18] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x18] +_0803A0CA: + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _0803A0DE + adds r0, r4, #0 + bl sub_0803A0E0 +_0803A0DE: + pop {r4, pc} + + thumb_func_start sub_0803A0E0 +sub_0803A0E0: @ 0x0803A0E0 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xb] + movs r2, #0 + movs r3, #0 + bl sub_0808288C + adds r2, r0, #0 + adds r0, r4, #0 + movs r1, #0x3c + bl sub_080A29AC + bl sub_0805E780 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803A100 +sub_0803A100: @ 0x0803A100 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r3, _0803A14C @ =gUnk_03000BF0 + ldrh r1, [r3, #6] + subs r0, r0, r1 + asrs r4, r0, #4 + movs r2, #0x3f + ands r4, r2 + movs r1, #0x32 + ldrsh r0, [r5, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + adds r6, r5, #0 + adds r6, #0x38 + ldrb r1, [r6] + adds r0, r4, #0 + bl sub_080001DA + ldr r1, _0803A150 @ =0x00004067 + cmp r0, r1 + bne _0803A148 + adds r0, r5, #0 + adds r0, #0x74 + ldrh r0, [r0] + ldrb r2, [r6] + adds r1, r4, #0 + bl sub_0800015E + bl sub_0805E780 +_0803A148: + pop {r4, r5, r6, pc} + .align 2, 0 +_0803A14C: .4byte gUnk_03000BF0 +_0803A150: .4byte 0x00004067 + + thumb_func_start sub_0803A154 +sub_0803A154: @ 0x0803A154 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _0803A16C @ =gUnk_080CFC14 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_0803A16C: .4byte gUnk_080CFC14 + + thumb_func_start sub_0803A170 +sub_0803A170: @ 0x0803A170 + push {lr} + ldr r2, _0803A184 @ =gUnk_080CFC2C + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0803A184: .4byte gUnk_080CFC2C + + thumb_func_start sub_0803A188 +sub_0803A188: @ 0x0803A188 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r3, [r4, #0xa] + cmp r3, #1 + bhi _0803A23E + ldrb r0, [r4, #0xc] + cmp r0, #0x2b + beq _0803A210 + adds r0, r4, #0 + adds r0, #0x3d + movs r1, #0 + ldrsb r1, [r0, r1] + adds r5, r0, #0 + cmp r1, #0 + ble _0803A23E + adds r0, #4 + ldrb r0, [r0] + cmp r0, #0x95 + beq _0803A1B2 + cmp r0, #0x8e + bne _0803A23E +_0803A1B2: + movs r0, #0x28 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldr r2, [r4, #0x50] + adds r0, r2, #0 + adds r0, #0x7d + ldrb r1, [r0] + cmp r3, #0 + bne _0803A1CE + movs r0, #1 + b _0803A1D0 +_0803A1CE: + movs r0, #2 +_0803A1D0: + orrs r1, r0 + adds r0, r2, #0 + adds r0, #0x7d + strb r1, [r0] + adds r0, #3 + ldrb r2, [r0] + ldrb r1, [r4, #0xa] + adds r3, r0, #0 + cmp r1, #0 + bne _0803A1E8 + movs r0, #1 + b _0803A1EA +_0803A1E8: + movs r0, #2 +_0803A1EA: + orrs r0, r2 + strb r0, [r3] + ldr r2, [r4, #0x54] + ldrb r1, [r5] + adds r0, r2, #0 + adds r0, #0x3d + strb r1, [r0] + ldr r2, [r4, #0x74] + ldrb r1, [r5] + adds r0, r2, #0 + adds r0, #0x3d + strb r1, [r0] + ldr r0, _0803A20C @ =0x00000127 + bl sub_080A3268 + b _0803A23E + .align 2, 0 +_0803A20C: .4byte 0x00000127 +_0803A210: + ldr r2, [r4, #0x54] + adds r3, r4, #0 + adds r3, #0x3d + ldrb r1, [r3] + adds r0, r2, #0 + adds r0, #0x3d + strb r1, [r0] + ldr r2, [r4, #0x74] + ldrb r1, [r3] + adds r0, r2, #0 + adds r0, #0x3d + strb r1, [r0] + adds r0, r4, #0 + movs r1, #0x18 + bl sub_08004260 + ldr r0, [r4, #0x54] + movs r1, #9 + bl sub_080042AC + ldr r0, _0803A248 @ =0x00000127 + bl sub_080A3268 +_0803A23E: + ldr r1, _0803A24C @ =gUnk_080CFC14 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, r5, pc} + .align 2, 0 +_0803A248: .4byte 0x00000127 +_0803A24C: .4byte gUnk_080CFC14 + + thumb_func_start nullsub_167 +nullsub_167: @ 0x0803A250 + bx lr + .align 2, 0 + + thumb_func_start sub_0803A254 +sub_0803A254: @ 0x0803A254 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0803A270 @ =gUnk_080CFC3C + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0803B538 + pop {r4, pc} + .align 2, 0 +_0803A270: .4byte gUnk_080CFC3C + + thumb_func_start sub_0803A274 +sub_0803A274: @ 0x0803A274 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0803A2C8 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x44 + bhi _0803A360 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0803A2CC + movs r0, #0x38 + movs r1, #0 + bl sub_0804AA60 + adds r1, r0, #0 + str r4, [r1, #0x50] + str r1, [r4, #0x54] + movs r0, #0x44 + movs r1, #2 + bl sub_0804AA60 + adds r1, r0, #0 + str r4, [r1, #0x50] + str r1, [r4, #0x74] + movs r0, #0x7e + movs r1, #1 + movs r2, #0 + bl sub_080A2960 + adds r1, r0, #0 + str r4, [r1, #0x50] + ldr r0, [r4, #0x54] + str r0, [r1, #0x54] + ldr r0, [r4, #0x50] + movs r2, #0x80 + lsls r2, r2, #0xd + movs r3, #0x80 + lsls r3, r3, #0xe + adds r1, r4, #0 + bl sub_0806FA48 + b _0803A310 + .align 2, 0 +_0803A2C8: .4byte gUnk_03003DBC +_0803A2CC: + movs r0, #0x38 + movs r1, #1 + bl sub_0804AA60 + adds r1, r0, #0 + str r4, [r1, #0x50] + str r1, [r4, #0x54] + movs r0, #0x44 + movs r1, #3 + bl sub_0804AA60 + adds r1, r0, #0 + str r4, [r1, #0x50] + str r1, [r4, #0x74] + movs r0, #0x7e + movs r1, #2 + movs r2, #0 + bl sub_080A2960 + adds r1, r0, #0 + str r4, [r1, #0x50] + ldr r0, [r4, #0x54] + str r0, [r1, #0x54] + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x18] + ldr r0, [r4, #0x50] + ldr r2, _0803A34C @ =0xFFF00000 + movs r3, #0x80 + lsls r3, r3, #0xe + adds r1, r4, #0 + bl sub_0806FA48 +_0803A310: + ldr r0, _0803A350 @ =gUnk_030010A0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #0 + beq _0803A354 + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldrb r2, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + adds r0, r1, #0 + ands r0, r2 + movs r3, #1 + orrs r0, r3 + strb r0, [r4, #0x18] + ldr r2, [r4, #0x54] + ldrb r0, [r2, #0x18] + ands r1, r0 + orrs r1, r3 + strb r1, [r2, #0x18] + adds r0, r4, #0 + movs r1, #0x10 + bl sub_08004260 + b _0803A360 + .align 2, 0 +_0803A34C: .4byte 0xFFF00000 +_0803A350: .4byte gUnk_030010A0 +_0803A354: + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 +_0803A360: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803A364 +sub_0803A364: @ 0x0803A364 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803A3A0 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + ldrb r0, [r4, #0xd] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0xb + bls _0803A394 + b _0803A52C +_0803A394: + lsls r0, r1, #2 + ldr r1, _0803A3A4 @ =_0803A3A8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803A3A0: .4byte gUnk_080CED6C +_0803A3A4: .4byte _0803A3A8 +_0803A3A8: @ jump table + .4byte _0803A546 @ case 0 + .4byte _0803A3D8 @ case 1 + .4byte _0803A546 @ case 2 + .4byte _0803A3FA @ case 3 + .4byte _0803A418 @ case 4 + .4byte _0803A434 @ case 5 + .4byte _0803A44E @ case 6 + .4byte _0803A468 @ case 7 + .4byte _0803A49A @ case 8 + .4byte _0803A4B2 @ case 9 + .4byte _0803A4CC @ case 10 + .4byte _0803A4FA @ case 11 +_0803A3D8: + movs r0, #2 + strb r0, [r4, #0xd] + ldr r2, [r4, #0x54] + ldrb r1, [r2, #0x18] + subs r0, #6 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + ldrb r1, [r2, #0x19] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2, #0x19] + b _0803A546 +_0803A3FA: + movs r0, #4 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x18] + subs r0, #8 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldr r2, [r4, #0x54] + ldrb r1, [r2, #0x19] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x19] + b _0803A546 +_0803A418: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0803A42E + b _0803A546 +_0803A42E: + movs r0, #5 + strb r0, [r4, #0xd] + b _0803A546 +_0803A434: + adds r0, r4, #0 + bl sub_0803B4E4 + cmp r0, #0 + bne _0803A446 + adds r0, r4, #0 + bl sub_0806F69C + b _0803A546 +_0803A446: + movs r0, #0 + strb r0, [r4, #0xb] + movs r0, #6 + b _0803A516 +_0803A44E: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803A546 + movs r0, #7 + strb r0, [r4, #0xd] + adds r0, r4, #0 + movs r1, #5 + bl sub_08004260 + b _0803A546 +_0803A468: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803A546 + movs r0, #8 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x18] + subs r0, #0xc + ands r0, r1 + strb r0, [r4, #0x18] + ldr r0, [r4, #0x54] + movs r1, #8 + bl sub_080042AC + movs r0, #0xb7 + lsls r0, r0, #1 + bl sub_080A3268 + b _0803A546 +_0803A49A: + adds r0, r4, #0 + bl sub_0803B55C + ldr r0, [r4, #0x54] + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803A546 + movs r0, #9 + b _0803A516 +_0803A4B2: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803A546 + movs r0, #0xa + strb r0, [r4, #0xd] + ldr r0, [r4, #0x54] + movs r1, #6 + bl sub_080042AC + b _0803A546 +_0803A4CC: + adds r0, r4, #0 + bl sub_0803B55C + ldr r0, [r4, #0x54] + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803A546 + movs r0, #0xb + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x18] + subs r0, #0xf + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 + b _0803A546 +_0803A4FA: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803A546 + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _0803A51E + movs r0, #0xc +_0803A516: + strb r0, [r4, #0xd] + movs r0, #0x1e + strb r0, [r4, #0xe] + b _0803A546 +_0803A51E: + movs r0, #1 + strb r0, [r4, #0xb] + movs r0, #6 + strb r0, [r4, #0xd] + movs r0, #0xa + strb r0, [r4, #0xe] + b _0803A546 +_0803A52C: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803A546 + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + bl sub_0803B4D4 +_0803A546: + pop {r4, pc} + + thumb_func_start sub_0803A548 +sub_0803A548: @ 0x0803A548 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803B5C0 + adds r0, r4, #0 + bl sub_080042B8 + ldr r2, _0803A588 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_0803B4E4 + cmp r0, #0 + bne _0803A586 + adds r0, r4, #0 + bl sub_0806F69C +_0803A586: + pop {r4, pc} + .align 2, 0 +_0803A588: .4byte gUnk_080CED6C + + thumb_func_start sub_0803A58C +sub_0803A58C: @ 0x0803A58C + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803A5C4 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_0803B4E4 + cmp r0, #0 + beq _0803A5C8 + adds r0, r4, #0 + bl sub_0803B59C + b _0803A5CE + .align 2, 0 +_0803A5C4: .4byte gUnk_080CED6C +_0803A5C8: + adds r0, r4, #0 + bl sub_0806F69C +_0803A5CE: + pop {r4, pc} + + thumb_func_start sub_0803A5D0 +sub_0803A5D0: @ 0x0803A5D0 + push {lr} + movs r1, #5 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + ldr r3, _0803A608 @ =gUnk_080CED6C + ldr r1, [r0, #0x50] + ldrb r1, [r1, #0xf] + lsrs r1, r1, #4 + adds r1, #3 + ldrb r2, [r0, #0xa] + lsls r2, r2, #1 + adds r1, r1, r2 + movs r2, #7 + ands r1, r2 + adds r1, r1, r3 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r1, #4 + strh r1, [r0, #0x36] + movs r1, #5 + bl sub_08004260 + pop {pc} + .align 2, 0 +_0803A608: .4byte gUnk_080CED6C + + thumb_func_start sub_0803A60C +sub_0803A60C: @ 0x0803A60C + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803A65C @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803A658 + movs r0, #6 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #0xa + ands r0, r1 + strb r0, [r4, #0x18] + ldr r0, [r4, #0x54] + movs r1, #8 + bl sub_080042AC +_0803A658: + pop {r4, pc} + .align 2, 0 +_0803A65C: .4byte gUnk_080CED6C + + thumb_func_start sub_0803A660 +sub_0803A660: @ 0x0803A660 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x54] + adds r5, r0, #0 + adds r5, #0x5a + ldrb r1, [r5] + movs r6, #0x80 + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _0803A6A8 + ldrh r2, [r4, #0x36] + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #0x50 + rsbs r0, r0, #0 + cmp r1, r0 + ble _0803A688 + subs r0, r2, #2 + b _0803A6DC +_0803A688: + movs r1, #0 + movs r0, #7 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + ldr r1, _0803A6A4 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] + movs r0, #0xa0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + b _0803A6DE + .align 2, 0 +_0803A6A4: .4byte gUnk_03001160 +_0803A6A8: + adds r0, r4, #0 + bl sub_0803B55C + ldrb r1, [r5] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _0803A6BE + ldr r0, _0803A6E0 @ =0x00000157 + bl sub_080A3268 +_0803A6BE: + ldr r2, _0803A6E4 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 +_0803A6DC: + strh r0, [r4, #0x36] +_0803A6DE: + pop {r4, r5, r6, pc} + .align 2, 0 +_0803A6E0: .4byte 0x00000157 +_0803A6E4: .4byte gUnk_080CED6C + + thumb_func_start sub_0803A6E8 +sub_0803A6E8: @ 0x0803A6E8 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803B610 + cmp r0, #0 + beq _0803A6FE + movs r0, #8 + strb r0, [r4, #0xc] + movs r0, #0xa + strb r0, [r4, #0xe] + b _0803A71E +_0803A6FE: + adds r0, r4, #0 + bl sub_0803B63C + adds r0, r4, #0 + bl sub_0806F69C + ldr r0, [r4, #0x50] + movs r1, #0x32 + ldrsh r0, [r0, r1] + adds r1, r0, #0 + adds r1, #8 + movs r2, #0x32 + ldrsh r0, [r4, r2] + cmp r1, r0 + ble _0803A71E + strh r1, [r4, #0x32] +_0803A71E: + pop {r4, pc} + + thumb_func_start sub_0803A720 +sub_0803A720: @ 0x0803A720 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803A73C + movs r0, #9 + strb r0, [r1, #0xc] + adds r0, r1, #0 + movs r1, #0x16 + bl sub_0803B8E8 +_0803A73C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803A740 +sub_0803A740: @ 0x0803A740 + push {lr} + adds r3, r0, #0 + ldrh r0, [r3, #0x36] + adds r0, #4 + strh r0, [r3, #0x36] + lsls r0, r0, #0x10 + cmp r0, #0 + blt _0803A77E + movs r0, #0 + strh r0, [r3, #0x36] + movs r0, #0xa + strb r0, [r3, #0xc] + strb r0, [r3, #0xe] + ldr r1, [r3, #0x50] + adds r1, #0x7d + ldrb r2, [r1] + movs r0, #0x40 + orrs r0, r2 + strb r0, [r1] + adds r0, r3, #0 + movs r1, #0x13 + bl sub_0803B8E8 + movs r0, #0xa + movs r1, #0 + bl sub_08080964 + movs r0, #0xac + lsls r0, r0, #1 + bl sub_080A3268 +_0803A77E: + pop {pc} + + thumb_func_start sub_0803A780 +sub_0803A780: @ 0x0803A780 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + movs r3, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803A7AA + adds r1, r2, #0 + adds r1, #0x7c + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + ands r0, r3 + cmp r0, #0 + beq _0803A7A6 + movs r0, #6 + b _0803A7A8 +_0803A7A6: + movs r0, #0xb +_0803A7A8: + strb r0, [r2, #0xc] +_0803A7AA: + pop {pc} + + thumb_func_start sub_0803A7AC +sub_0803A7AC: @ 0x0803A7AC + push {lr} + adds r2, r0, #0 + ldrh r3, [r2, #0x36] + movs r0, #0x36 + ldrsh r1, [r2, r0] + movs r0, #6 + rsbs r0, r0, #0 + cmp r1, r0 + ble _0803A7C4 + subs r0, r3, #1 + strh r0, [r2, #0x36] + b _0803A7C8 +_0803A7C4: + movs r0, #0xc + strb r0, [r2, #0xc] +_0803A7C8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803A7CC +sub_0803A7CC: @ 0x0803A7CC + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803A808 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_0803B4E4 + cmp r0, #0 + beq _0803A80C + movs r0, #0xd + strb r0, [r4, #0xc] + ldr r0, [r4, #0x54] + movs r1, #6 + bl sub_080042AC + b _0803A812 + .align 2, 0 +_0803A808: .4byte gUnk_080CED6C +_0803A80C: + adds r0, r4, #0 + bl sub_0806F69C +_0803A812: + pop {r4, pc} + + thumb_func_start sub_0803A814 +sub_0803A814: @ 0x0803A814 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803A868 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_0803B55C + ldr r0, [r4, #0x54] + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803A864 + movs r0, #0xe + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #0x12 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 +_0803A864: + pop {r4, pc} + .align 2, 0 +_0803A868: .4byte gUnk_080CED6C + + thumb_func_start sub_0803A86C +sub_0803A86C: @ 0x0803A86C + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803A8B4 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803A8B2 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + bl sub_0803B59C +_0803A8B2: + pop {r4, pc} + .align 2, 0 +_0803A8B4: .4byte gUnk_080CED6C + + thumb_func_start sub_0803A8B8 +sub_0803A8B8: @ 0x0803A8B8 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #0x10 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + strb r1, [r4, #0x15] + movs r0, #0x80 + strh r0, [r4, #0x24] + ldr r2, _0803A904 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + movs r1, #6 + bl sub_08004260 + ldr r0, [r4, #0x54] + movs r1, #1 + bl sub_080042AC + ldr r0, _0803A908 @ =0x00000153 + bl sub_080A3268 + pop {r4, pc} + .align 2, 0 +_0803A904: .4byte gUnk_080CED6C +_0803A908: .4byte 0x00000153 + + thumb_func_start sub_0803A90C +sub_0803A90C: @ 0x0803A90C + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803A974 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0803B55C + adds r0, r4, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803A970 + movs r0, #0x11 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + lsls r0, r0, #4 + adds r0, #8 + strb r0, [r4, #0x15] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + adds r0, r4, #0 + movs r1, #7 + bl sub_08004260 + ldr r0, [r4, #0x54] + movs r1, #2 + bl sub_080042AC +_0803A970: + pop {r4, pc} + .align 2, 0 +_0803A974: .4byte gUnk_080CED6C + + thumb_func_start sub_0803A978 +sub_0803A978: @ 0x0803A978 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803A9FC @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0803B55C + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + ands r0, r1 + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0803A9C2 + adds r0, r4, #0 + movs r1, #0x10 + bl sub_08004596 +_0803A9C2: + adds r0, r4, #0 + bl sub_0806F69C + ldrb r0, [r4, #0x15] + cmp r0, #0x10 + bne _0803A9F8 + movs r0, #0x12 + strb r0, [r4, #0xc] + movs r0, #3 + strb r0, [r4, #0xe] + ldrb r2, [r4, #0x10] + movs r1, #0x7f + adds r0, r1, #0 + ands r0, r2 + strb r0, [r4, #0x10] + ldr r2, [r4, #0x74] + ldrb r0, [r2, #0x10] + ands r1, r0 + strb r1, [r2, #0x10] + adds r0, r4, #0 + movs r1, #8 + bl sub_08004260 + ldr r0, [r4, #0x54] + movs r1, #3 + bl sub_080042AC +_0803A9F8: + pop {r4, pc} + .align 2, 0 +_0803A9FC: .4byte gUnk_080CED6C + + thumb_func_start sub_0803AA00 +sub_0803AA00: @ 0x0803AA00 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r2, _0803AA90 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_0803B870 + cmp r0, #0 + bne _0803AA8E + ldrb r1, [r4, #0xa] + movs r0, #1 + eors r0, r1 + lsls r0, r0, #4 + adds r5, r0, #0 + adds r5, #8 + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + ands r0, r1 + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0803AA54 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08004596 +_0803AA54: + adds r0, r4, #0 + bl sub_0806F69C + ldrb r0, [r4, #0x15] + cmp r0, r5 + beq _0803AA6E + ldr r0, _0803AA94 @ =gUnk_03001160 + movs r2, #0x32 + ldrsh r1, [r4, r2] + movs r2, #0x32 + ldrsh r0, [r0, r2] + cmp r1, r0 + blt _0803AA8E +_0803AA6E: + movs r0, #0x13 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #0x17 + ands r0, r1 + strb r0, [r4, #0x18] + strb r5, [r4, #0x15] + ldr r0, _0803AA94 @ =gUnk_03001160 + ldrh r1, [r0, #0x2e] + adds r0, r4, #0 + adds r0, #0x80 + strh r1, [r0] + ldr r0, [r4, #0x54] + movs r1, #4 + bl sub_080042AC +_0803AA8E: + pop {r4, r5, pc} + .align 2, 0 +_0803AA90: .4byte gUnk_080CED6C +_0803AA94: .4byte gUnk_03001160 + + thumb_func_start sub_0803AA98 +sub_0803AA98: @ 0x0803AA98 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803AB0C @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_0803B870 + cmp r0, #0 + bne _0803AB0A + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_0803B6F4 + cmp r0, #0 + beq _0803AB0A + movs r0, #0x14 + strb r0, [r4, #0xc] + movs r0, #0x40 + strh r0, [r4, #0x24] + adds r0, r4, #0 + movs r1, #0xa + bl sub_08004260 + ldr r2, [r4, #0x74] + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + ldr r2, [r4, #0x54] + adds r1, r2, #0 + adds r1, #0x3f + movs r0, #0x13 + strb r0, [r1] + adds r0, r2, #0 + movs r1, #5 + bl sub_080042AC + movs r0, #0xb7 + lsls r0, r0, #1 + bl sub_080A3268 +_0803AB0A: + pop {r4, pc} + .align 2, 0 +_0803AB0C: .4byte gUnk_080CED6C + + thumb_func_start sub_0803AB10 +sub_0803AB10: @ 0x0803AB10 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803AB58 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_0803B55C + ldr r0, [r4, #0x54] + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803AB56 + movs r0, #0x15 + strb r0, [r4, #0xc] + movs r0, #0xf + strb r0, [r4, #0xe] +_0803AB56: + pop {r4, pc} + .align 2, 0 +_0803AB58: .4byte gUnk_080CED6C + + thumb_func_start sub_0803AB5C +sub_0803AB5C: @ 0x0803AB5C + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803ABB0 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803ABAC + movs r0, #0x16 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #0x1a + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #0xb + bl sub_08004260 + ldr r0, [r4, #0x54] + movs r1, #6 + bl sub_080042AC +_0803ABAC: + pop {r4, pc} + .align 2, 0 +_0803ABB0: .4byte gUnk_080CED6C + + thumb_func_start sub_0803ABB4 +sub_0803ABB4: @ 0x0803ABB4 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803AC18 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0803B55C + ldr r0, [r4, #0x54] + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803AC14 + movs r0, #0x17 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + adds r0, r4, #0 + movs r1, #0x10 + bl sub_08004260 + ldr r0, [r4, #0x54] + movs r1, #0 + bl sub_080042AC +_0803AC14: + pop {r4, pc} + .align 2, 0 +_0803AC18: .4byte gUnk_080CED6C + + thumb_func_start sub_0803AC1C +sub_0803AC1C: @ 0x0803AC1C + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803AC54 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_0803B4E4 + cmp r0, #0 + beq _0803AC58 + adds r0, r4, #0 + bl sub_0803B59C + b _0803AC5E + .align 2, 0 +_0803AC54: .4byte gUnk_080CED6C +_0803AC58: + adds r0, r4, #0 + bl sub_0806F69C +_0803AC5E: + pop {r4, pc} + + thumb_func_start sub_0803AC60 +sub_0803AC60: @ 0x0803AC60 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803ACA8 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _0803ACB4 + adds r0, r4, #0 + bl sub_0803B4E4 + cmp r0, #0 + beq _0803ACAC + movs r0, #0x19 + strb r0, [r4, #0xc] + movs r0, #0 + strb r0, [r4, #0xd] + movs r0, #0x1e + b _0803ACB6 + .align 2, 0 +_0803ACA8: .4byte gUnk_080CED6C +_0803ACAC: + adds r0, r4, #0 + bl sub_0806F69C + b _0803ACB8 +_0803ACB4: + subs r0, #1 +_0803ACB6: + strb r0, [r4, #0xe] +_0803ACB8: + adds r0, r4, #0 + bl sub_0803B824 + pop {r4, pc} + + thumb_func_start sub_0803ACC0 +sub_0803ACC0: @ 0x0803ACC0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + subs r0, #1 + cmp r0, #4 + bhi _0803ACF0 + lsls r0, r0, #2 + ldr r1, _0803ACD8 @ =_0803ACDC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803ACD8: .4byte _0803ACDC +_0803ACDC: @ jump table + .4byte _0803AD02 @ case 0 + .4byte _0803AD1A @ case 1 + .4byte _0803AD4A @ case 2 + .4byte _0803AD5C @ case 3 + .4byte _0803AD74 @ case 4 +_0803ACF0: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803ADA4 + movs r0, #1 + strb r0, [r4, #0xd] + b _0803ADA4 +_0803AD02: + ldrh r0, [r4, #0x36] + subs r0, #1 + strh r0, [r4, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x20 + rsbs r1, r1, #0 + cmp r0, r1 + bge _0803ADA4 + movs r0, #2 + strb r0, [r4, #0xd] + b _0803ADA4 +_0803AD1A: + ldrh r0, [r4, #0x36] + adds r0, #4 + strh r0, [r4, #0x36] + lsls r0, r0, #0x10 + cmp r0, #0 + blt _0803ADA4 + movs r0, #0 + strh r0, [r4, #0x36] + movs r0, #0xc + strb r0, [r4, #0xe] + movs r0, #3 + strb r0, [r4, #0xd] + movs r0, #8 + movs r1, #0 + bl sub_08080964 + movs r0, #0xac + lsls r0, r0, #1 + bl sub_080A3268 + adds r0, r4, #0 + bl sub_0803B804 + b _0803ADA4 +_0803AD4A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803ADA4 + movs r0, #4 + strb r0, [r4, #0xd] + b _0803ADA4 +_0803AD5C: + ldrh r0, [r4, #0x36] + subs r0, #2 + strh r0, [r4, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x28 + rsbs r1, r1, #0 + cmp r0, r1 + bge _0803ADA4 + movs r0, #5 + strb r0, [r4, #0xd] + b _0803ADA4 +_0803AD74: + ldrh r0, [r4, #0x36] + adds r0, #4 + strh r0, [r4, #0x36] + lsls r0, r0, #0x10 + cmp r0, #0 + blt _0803ADA4 + movs r0, #0 + strh r0, [r4, #0x36] + movs r0, #0x1a + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + movs r0, #0x1e + movs r1, #0 + bl sub_08080964 + movs r0, #0xac + lsls r0, r0, #1 + bl sub_080A3268 + adds r0, r4, #0 + bl sub_0803B804 + b _0803ADAA +_0803ADA4: + adds r0, r4, #0 + bl sub_0803B824 +_0803ADAA: + pop {r4, pc} + + thumb_func_start sub_0803ADAC +sub_0803ADAC: @ 0x0803ADAC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803ADEC + movs r0, #0x16 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #0x1a + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldr r2, [r4, #0x74] + ldrb r0, [r2, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + adds r0, r4, #0 + movs r1, #0xb + bl sub_08004260 + ldr r0, [r4, #0x54] + movs r1, #6 + bl sub_080042AC + bl sub_0803B798 + b _0803ADF2 +_0803ADEC: + adds r0, r4, #0 + bl sub_0803B824 +_0803ADF2: + pop {r4, pc} + + thumb_func_start sub_0803ADF4 +sub_0803ADF4: @ 0x0803ADF4 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803AE44 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803AE42 + movs r0, #0x1c + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #0x22 + ands r0, r1 + strb r0, [r4, #0x18] +_0803AE42: + pop {r4, pc} + .align 2, 0 +_0803AE44: .4byte gUnk_080CED6C + + thumb_func_start sub_0803AE48 +sub_0803AE48: @ 0x0803AE48 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803AEAC @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_080042B8 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0803AE82 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803AEB0 +_0803AE82: + ldr r0, [r4, #0x50] + adds r0, #0x7d + ldrb r1, [r0] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _0803AEB0 + movs r0, #0x1d + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #0x21 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 + b _0803AEC0 + .align 2, 0 +_0803AEAC: .4byte gUnk_080CED6C +_0803AEB0: + adds r0, r4, #0 + bl sub_0803B4E4 + cmp r0, #0 + bne _0803AEC0 + adds r0, r4, #0 + bl sub_0806F69C +_0803AEC0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803AEC4 +sub_0803AEC4: @ 0x0803AEC4 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803AF14 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803AF10 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + bl sub_0803B59C +_0803AF10: + pop {r4, pc} + .align 2, 0 +_0803AF14: .4byte gUnk_080CED6C + + thumb_func_start sub_0803AF18 +sub_0803AF18: @ 0x0803AF18 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x1f + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #5 + bl sub_08004260 + ldr r2, _0803AF4C @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + pop {r4, pc} + .align 2, 0 +_0803AF4C: .4byte gUnk_080CED6C + + thumb_func_start sub_0803AF50 +sub_0803AF50: @ 0x0803AF50 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803AF7A + movs r0, #0x20 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #0x24 + ands r0, r1 + strb r0, [r4, #0x18] + ldr r0, [r4, #0x54] + movs r1, #8 + bl sub_080042AC +_0803AF7A: + pop {r4, pc} + + thumb_func_start sub_0803AF7C +sub_0803AF7C: @ 0x0803AF7C + push {r4, lr} + adds r4, r0, #0 + bl sub_0803B55C + ldr r0, [r4, #0x54] + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803AF9A + movs r0, #0x21 + strb r0, [r4, #0xc] + movs r0, #0xf + strb r0, [r4, #0xe] +_0803AF9A: + pop {r4, pc} + + thumb_func_start sub_0803AF9C +sub_0803AF9C: @ 0x0803AF9C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + cmp r0, #0 + beq _0803AFAA + subs r0, #1 + b _0803AFC4 +_0803AFAA: + ldrh r3, [r2, #0x36] + movs r0, #0x36 + ldrsh r1, [r2, r0] + movs r0, #0x20 + rsbs r0, r0, #0 + cmp r1, r0 + ble _0803AFBE + subs r0, r3, #2 + strh r0, [r2, #0x36] + b _0803AFC6 +_0803AFBE: + movs r0, #0x22 + strb r0, [r2, #0xc] + movs r0, #0xa +_0803AFC4: + strb r0, [r2, #0xe] +_0803AFC6: + pop {pc} + + thumb_func_start sub_0803AFC8 +sub_0803AFC8: @ 0x0803AFC8 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803AFDC + movs r0, #0x23 + strb r0, [r1, #0xc] +_0803AFDC: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803AFE0 +sub_0803AFE0: @ 0x0803AFE0 + push {lr} + adds r3, r0, #0 + ldrh r1, [r3, #0x36] + movs r2, #0x36 + ldrsh r0, [r3, r2] + cmp r0, #0 + bge _0803AFF4 + adds r0, r1, #4 + strh r0, [r3, #0x36] + b _0803B018 +_0803AFF4: + movs r2, #0 + movs r0, #0x24 + strb r0, [r3, #0xc] + movs r0, #0xf0 + strb r0, [r3, #0xe] + adds r1, r3, #0 + adds r1, #0x84 + movs r0, #3 + strb r0, [r1] + strh r2, [r3, #0x36] + movs r0, #0xa0 + movs r1, #0 + bl sub_08080964 + movs r0, #0xac + lsls r0, r0, #1 + bl sub_080A3268 +_0803B018: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803B01C +sub_0803B01C: @ 0x0803B01C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r1, r0, #1 + strb r1, [r2, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _0803B032 + movs r0, #0x25 + strb r0, [r2, #0xc] + b _0803B048 +_0803B032: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x46 + bls _0803B048 + movs r0, #0xf + ands r1, r0 + cmp r1, #0 + bne _0803B048 + adds r0, r2, #0 + bl sub_0803B724 +_0803B048: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803B04C +sub_0803B04C: @ 0x0803B04C + push {lr} + adds r2, r0, #0 + ldrh r3, [r2, #0x36] + movs r0, #0x36 + ldrsh r1, [r2, r0] + movs r0, #6 + rsbs r0, r0, #0 + cmp r1, r0 + ble _0803B064 + subs r0, r3, #1 + strh r0, [r2, #0x36] + b _0803B070 +_0803B064: + movs r0, #0x26 + strb r0, [r2, #0xc] + ldr r0, [r2, #0x54] + movs r1, #6 + bl sub_080042AC +_0803B070: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803B074 +sub_0803B074: @ 0x0803B074 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803B0D0 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_0803B55C + ldr r0, [r4, #0x54] + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803B0CC + movs r0, #0x27 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #0x2b + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 + ldr r0, [r4, #0x54] + movs r1, #0 + bl sub_080042AC +_0803B0CC: + pop {r4, pc} + .align 2, 0 +_0803B0D0: .4byte gUnk_080CED6C + + thumb_func_start sub_0803B0D4 +sub_0803B0D4: @ 0x0803B0D4 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803B0FE + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + bl sub_0803B59C +_0803B0FE: + pop {r4, pc} + + thumb_func_start sub_0803B100 +sub_0803B100: @ 0x0803B100 + push {lr} + adds r2, r0, #0 + movs r0, #0x29 + strb r0, [r2, #0xc] + movs r0, #0xa0 + lsls r0, r0, #9 + str r0, [r2, #0x20] + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _0803B11C + ldr r0, _0803B118 @ =gUnk_080FD364 + b _0803B11E + .align 2, 0 +_0803B118: .4byte gUnk_080FD364 +_0803B11C: + ldr r0, _0803B13C @ =gUnk_080FD374 +_0803B11E: + str r0, [r2, #0x48] + ldr r0, [r2, #0x74] + movs r1, #3 + strb r1, [r0, #0xc] + adds r0, #0x74 + movs r1, #0x20 + strb r1, [r0] + ldr r0, [r2, #0x54] + movs r1, #9 + bl sub_080042AC + ldr r0, _0803B140 @ =0x0000014F + bl sub_080A3268 + pop {pc} + .align 2, 0 +_0803B13C: .4byte gUnk_080FD374 +_0803B140: .4byte 0x0000014F + + thumb_func_start sub_0803B144 +sub_0803B144: @ 0x0803B144 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x54] + bl sub_080042B8 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _0803B178 + movs r0, #0x2a + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0x16 + bl sub_08004260 + adds r0, r4, #0 + movs r1, #0x14 + bl sub_0803B8E8 + movs r0, #8 + movs r1, #0 + bl sub_08080964 +_0803B178: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803B17C +sub_0803B17C: @ 0x0803B17C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803B1B4 + movs r0, #0x2b + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x18 + strb r0, [r1] + adds r1, #6 + movs r0, #0xff + strb r0, [r1] + adds r1, #0x39 + movs r0, #0x96 + lsls r0, r0, #2 + strh r0, [r1] +_0803B1B4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803B1B8 +sub_0803B1B8: @ 0x0803B1B8 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0803B1D4 + adds r0, r5, #0 + bl sub_08004274 + ldr r0, [r5, #0x54] + bl sub_080042B8 +_0803B1D4: + adds r0, r5, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0xf4 + bhi _0803B2B8 + movs r0, #0x32 + strb r0, [r5, #0xc] + adds r1, r5, #0 + adds r1, #0x7e + ldr r0, _0803B284 @ =0x000005DC + strh r0, [r1] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r5, #0x18] + adds r1, r5, #0 + adds r1, #0x3f + movs r0, #0x14 + strb r0, [r1] + adds r0, r5, #0 + movs r1, #0x51 + movs r2, #0 + bl sub_080A29AC + adds r4, r0, #0 + cmp r4, #0 + beq _0803B23A + ldr r0, [r5, #0x48] + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x2e] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + ldr r0, [r5, #0x48] + ldrb r0, [r0, #1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] +_0803B23A: + movs r0, #0 + movs r1, #0x5e + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _0803B268 + movs r0, #0 + strb r0, [r4, #0xe] + movs r0, #0x90 + strb r0, [r4, #0x15] + ldr r0, [r5, #0x48] + movs r2, #0 + ldrsb r2, [r0, r2] + lsls r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r0, r3] + lsls r3, r3, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA48 +_0803B268: + ldr r4, [r5, #0x74] + adds r1, r4, #0 + adds r1, #0x74 + movs r0, #0x40 + strb r0, [r1] + ldr r4, [r5, #0x50] + adds r0, r4, #0 + adds r0, #0x80 + ldrb r1, [r0] + ldrb r0, [r5, #0xa] + cmp r0, #0 + bne _0803B288 + movs r0, #4 + b _0803B28A + .align 2, 0 +_0803B284: .4byte 0x000005DC +_0803B288: + movs r0, #8 +_0803B28A: + orrs r1, r0 + adds r0, r4, #0 + adds r0, #0x80 + strb r1, [r0] + movs r0, #0xc + ands r0, r1 + cmp r0, #0xc + bne _0803B2CE + movs r0, #0xb + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + movs r0, #0 + str r0, [r4, #0x20] + ldr r0, [r4, #0x74] + adds r0, #0x7e + movs r1, #0xe1 + lsls r1, r1, #3 + strh r1, [r0] + ldr r0, [r4, #0x78] + adds r0, #0x7e + strh r1, [r0] + b _0803B2CE +_0803B2B8: + adds r1, r5, #0 + adds r1, #0x7e + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0803B2CE + adds r0, r5, #0 + bl sub_0803B6A4 +_0803B2CE: + pop {r4, r5, pc} + + thumb_func_start sub_0803B2D0 +sub_0803B2D0: @ 0x0803B2D0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803B30A + movs r2, #0 + movs r0, #0x2d + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #0x31 + ands r0, r1 + strb r0, [r4, #0x18] + ldr r0, [r4, #0x74] + movs r1, #2 + strb r1, [r0, #0xc] + adds r1, r0, #0 + adds r1, #0x74 + strb r2, [r1] + adds r1, #4 + strh r2, [r1] + movs r1, #3 + bl sub_08004260 +_0803B30A: + pop {r4, pc} + + thumb_func_start sub_0803B30C +sub_0803B30C: @ 0x0803B30C + push {r4, lr} + adds r2, r0, #0 + ldr r4, [r2, #0x74] + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803B334 + movs r0, #0x2e + strb r0, [r2, #0xc] + adds r0, r2, #0 + movs r1, #0x13 + bl sub_0803B8E8 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_0803B334: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803B338 +sub_0803B338: @ 0x0803B338 + push {lr} + adds r2, r0, #0 + ldrh r3, [r2, #0x36] + movs r0, #0x36 + ldrsh r1, [r2, r0] + movs r0, #0xa + rsbs r0, r0, #0 + cmp r1, r0 + ble _0803B350 + subs r0, r3, #1 + strh r0, [r2, #0x36] + b _0803B358 +_0803B350: + movs r0, #0x2f + strb r0, [r2, #0xc] + movs r0, #0xf + strb r0, [r2, #0xe] +_0803B358: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803B35C +sub_0803B35C: @ 0x0803B35C + push {lr} + adds r3, r0, #0 + ldr r2, _0803B394 @ =gUnk_080CED6C + ldr r0, [r3, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r3, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r3, #0x36] + ldrb r0, [r3, #0xe] + subs r0, #1 + strb r0, [r3, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803B390 + movs r0, #0x30 + strb r0, [r3, #0xc] +_0803B390: + pop {pc} + .align 2, 0 +_0803B394: .4byte gUnk_080CED6C + + thumb_func_start sub_0803B398 +sub_0803B398: @ 0x0803B398 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803B3E8 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_0803B4E4 + cmp r0, #0 + beq _0803B3EC + movs r0, #0x31 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #0x35 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 + ldr r0, [r4, #0x54] + movs r1, #0 + bl sub_080042AC + b _0803B3F2 + .align 2, 0 +_0803B3E8: .4byte gUnk_080CED6C +_0803B3EC: + adds r0, r4, #0 + bl sub_0806F69C +_0803B3F2: + pop {r4, pc} + + thumb_func_start sub_0803B3F4 +sub_0803B3F4: @ 0x0803B3F4 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r2, _0803B440 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803B47C + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x17 + strb r0, [r1] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0803B448 + ldr r0, _0803B444 @ =gUnk_080FD35C + b _0803B44A + .align 2, 0 +_0803B440: .4byte gUnk_080CED6C +_0803B444: .4byte gUnk_080FD35C +_0803B448: + ldr r0, _0803B468 @ =gUnk_080FD36C +_0803B44A: + str r0, [r4, #0x48] + ldr r0, [r4, #0x50] + ldrb r2, [r4, #0xa] + movs r1, #2 + cmp r2, #0 + bne _0803B458 + movs r1, #1 +_0803B458: + adds r0, #0x80 + ldrb r3, [r0] + adds r5, r0, #0 + cmp r2, #0 + bne _0803B46C + movs r0, #0x10 + b _0803B46E + .align 2, 0 +_0803B468: .4byte gUnk_080FD36C +_0803B46C: + movs r0, #0x20 +_0803B46E: + orrs r1, r0 + adds r0, r3, #0 + bics r0, r1 + strb r0, [r5] + adds r0, r4, #0 + bl sub_0803B59C +_0803B47C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803B480 +sub_0803B480: @ 0x0803B480 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x7e + ldrh r1, [r0] + movs r0, #0x1f + ands r0, r1 + cmp r0, #0 + bne _0803B4B6 + movs r0, #0x2d + movs r1, #1 + movs r2, #0 + bl sub_080A2960 + adds r3, r0, #0 + cmp r3, #0 + beq _0803B4B6 + ldr r0, _0803B4D0 @ =gUnk_080CFD08 + ldrb r1, [r4, #0xa] + adds r1, r1, r0 + movs r2, #0 + ldrsb r2, [r1, r2] + lsls r2, r2, #0x10 + adds r0, r4, #0 + adds r1, r3, #0 + movs r3, #0 + bl sub_0806FA48 +_0803B4B6: + adds r1, r4, #0 + adds r1, #0x7e + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0803B4CC + adds r0, r4, #0 + bl sub_0803B6A4 +_0803B4CC: + pop {r4, pc} + .align 2, 0 +_0803B4D0: .4byte gUnk_080CFD08 + + thumb_func_start sub_0803B4D4 +sub_0803B4D4: @ 0x0803B4D4 + push {lr} + movs r1, #3 + strb r1, [r0, #0xc] + movs r1, #0x10 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803B4E4 +sub_0803B4E4: @ 0x0803B4E4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r2, [r4, #0x50] + movs r0, #0x2e + ldrsh r3, [r2, r0] + ldr r1, _0803B52C @ =gUnk_080CFD0A + ldrb r0, [r4, #0xa] + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r5, r3, r0 + movs r1, #0x32 + ldrsh r0, [r2, r1] + adds r6, r0, #0 + adds r6, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + movs r3, #2 + bl sub_0806FCB8 + cmp r0, #0 + bne _0803B530 + movs r2, #0x2e + ldrsh r0, [r4, r2] + movs r2, #0x32 + ldrsh r1, [r4, r2] + adds r2, r5, #0 + adds r3, r6, #0 + bl sub_080045D4 + strb r0, [r4, #0x15] + movs r0, #0 + b _0803B536 + .align 2, 0 +_0803B52C: .4byte gUnk_080CFD0A +_0803B530: + strh r5, [r4, #0x2e] + strh r6, [r4, #0x32] + movs r0, #1 +_0803B536: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0803B538 +sub_0803B538: @ 0x0803B538 + push {r4, lr} + adds r4, r0, #0 + ldr r1, [r4, #0x54] + ldr r3, _0803B554 @ =0xFFFF0000 + movs r2, #0 + bl sub_0806FA48 + ldr r1, [r4, #0x74] + ldr r3, _0803B558 @ =0xFFFE0000 + adds r0, r4, #0 + movs r2, #0 + bl sub_0806FA48 + pop {r4, pc} + .align 2, 0 +_0803B554: .4byte 0xFFFF0000 +_0803B558: .4byte 0xFFFE0000 + + thumb_func_start sub_0803B55C +sub_0803B55C: @ 0x0803B55C + push {r4, r5, lr} + ldr r5, [r0, #0x74] + ldr r4, [r0, #0x54] + adds r0, r4, #0 + bl sub_080042B8 + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0803B588 + adds r0, r5, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #1 + beq _0803B59A + adds r0, r5, #0 + movs r1, #1 + bl sub_08004260 + b _0803B59A +_0803B588: + adds r0, r5, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0 + beq _0803B59A + adds r0, r5, #0 + movs r1, #0 + bl sub_08004260 +_0803B59A: + pop {r4, r5, pc} + + thumb_func_start sub_0803B59C +sub_0803B59C: @ 0x0803B59C + push {lr} + movs r3, #2 + strb r3, [r0, #0xc] + ldr r2, [r0, #0x50] + adds r1, r2, #0 + adds r1, #0x7d + ldrb r1, [r1] + ldrb r0, [r0, #0xa] + cmp r0, #0 + bne _0803B5B6 + movs r0, #1 + orrs r1, r0 + b _0803B5B8 +_0803B5B6: + orrs r1, r3 +_0803B5B8: + adds r0, r2, #0 + adds r0, #0x7d + strb r1, [r0] + pop {pc} + + thumb_func_start sub_0803B5C0 +sub_0803B5C0: @ 0x0803B5C0 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0803B5E8 @ =gUnk_03001160 + bl sub_080045C4 + adds r2, r0, #0 + cmp r2, #9 + bhi _0803B5D2 + movs r2, #0xa +_0803B5D2: + cmp r2, #0x16 + bls _0803B5D8 + movs r2, #0x16 +_0803B5D8: + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0803B5F0 + ldr r1, _0803B5EC @ =gUnk_080CFD0C + adds r0, r2, #0 + subs r0, #0xa + b _0803B5F6 + .align 2, 0 +_0803B5E8: .4byte gUnk_03001160 +_0803B5EC: .4byte gUnk_080CFD0C +_0803B5F0: + ldr r1, _0803B60C @ =gUnk_080CFD0C + movs r0, #0x16 + subs r0, r0, r2 +_0803B5F6: + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, r1 + beq _0803B60A + adds r0, r4, #0 + bl sub_08004260 +_0803B60A: + pop {r4, pc} + .align 2, 0 +_0803B60C: .4byte gUnk_080CFD0C + + thumb_func_start sub_0803B610 +sub_0803B610: @ 0x0803B610 + push {r4, lr} + ldr r4, _0803B634 @ =gUnk_03001160 + movs r2, #0x2e + ldrsh r1, [r4, r2] + ldr r3, _0803B638 @ =gUnk_080CFD19 + ldrb r2, [r0, #0xa] + adds r2, r2, r3 + ldrb r2, [r2] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + adds r1, r1, r2 + movs r3, #0x32 + ldrsh r2, [r4, r3] + subs r2, #0xc + movs r3, #8 + bl sub_0806FCB8 + pop {r4, pc} + .align 2, 0 +_0803B634: .4byte gUnk_03001160 +_0803B638: .4byte gUnk_080CFD19 + + thumb_func_start sub_0803B63C +sub_0803B63C: @ 0x0803B63C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r2, _0803B680 @ =gUnk_03001160 + movs r0, #0x2e + ldrsh r3, [r2, r0] + ldr r1, _0803B684 @ =gUnk_080CFD19 + ldrb r0, [r4, #0xa] + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r3, r3, r0 + movs r1, #0x32 + ldrsh r0, [r2, r1] + adds r5, r0, #0 + subs r5, #0xc + ldrb r0, [r4, #0xe] + adds r1, r0, #1 + strb r1, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xb4 + bls _0803B688 + movs r2, #0x2e + ldrsh r0, [r4, r2] + movs r2, #0x32 + ldrsh r1, [r4, r2] + adds r2, r3, #0 + adds r3, r5, #0 + bl sub_080045D4 + strb r0, [r4, #0x15] + b _0803B6A0 + .align 2, 0 +_0803B680: .4byte gUnk_03001160 +_0803B684: .4byte gUnk_080CFD19 +_0803B688: + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + adds r2, r3, #0 + adds r3, r5, #0 + bl sub_080045D4 + + thumb_func_start sub_0803B698 +sub_0803B698: @ 0x0803B698 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 +_0803B6A0: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803B6A4 +sub_0803B6A4: @ 0x0803B6A4 + push {r4, lr} + adds r2, r0, #0 + movs r0, #0x2c + strb r0, [r2, #0xc] + adds r1, r2, #0 + adds r1, #0x3f + movs r0, #0x14 + strb r0, [r1] + ldr r3, [r2, #0x50] + adds r0, r3, #0 + adds r0, #0x80 + ldrb r1, [r0] + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _0803B6C6 + movs r0, #0x10 + b _0803B6C8 +_0803B6C6: + movs r0, #0x20 +_0803B6C8: + orrs r1, r0 + adds r0, r3, #0 + adds r0, #0x80 + strb r1, [r0] + ldrb r3, [r0] + ldrb r1, [r2, #0xa] + adds r4, r0, #0 + cmp r1, #0 + bne _0803B6E0 + movs r0, #5 + rsbs r0, r0, #0 + b _0803B6E4 +_0803B6E0: + movs r0, #9 + rsbs r0, r0, #0 +_0803B6E4: + ands r0, r3 + strb r0, [r4] + adds r0, r2, #0 + movs r1, #0x17 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803B6F4 +sub_0803B6F4: @ 0x0803B6F4 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _0803B710 + adds r0, r2, #0 + adds r0, #0x80 + ldrh r1, [r0] + movs r3, #0x2e + ldrsh r0, [r2, r3] + cmp r1, r0 + ble _0803B71E +_0803B70C: + movs r0, #1 + b _0803B720 +_0803B710: + adds r0, r2, #0 + adds r0, #0x80 + ldrh r1, [r0] + movs r3, #0x2e + ldrsh r0, [r2, r3] + cmp r1, r0 + blt _0803B70C +_0803B71E: + movs r0, #0 +_0803B720: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803B724 +sub_0803B724: @ 0x0803B724 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xf] + cmp r0, #2 + bhi _0803B78E + adds r6, r5, #0 + adds r6, #0x84 + ldrb r0, [r6] + cmp r0, #0 + beq _0803B78E + movs r0, #7 + movs r1, #1 + bl sub_0804AA60 + adds r4, r0, #0 + cmp r4, #0 + beq _0803B78E + movs r0, #1 + strb r0, [r4, #0xb] + bl sub_08000E50 + ldr r2, _0803B790 @ =gUnk_080CFD1B + ldrb r1, [r5, #0xa] + adds r1, r1, r2 + movs r3, #0x70 + adds r2, r0, #0 + ands r2, r3 + ldrb r1, [r1] + adds r2, r2, r1 + ldr r3, _0803B794 @ =gUnk_03000BF0 + ldrh r1, [r3, #6] + adds r1, r1, r2 + strh r1, [r4, #0x2e] + lsrs r0, r0, #0x10 + movs r1, #7 + ands r0, r1 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #1 + adds r1, #0x5c + ldrh r3, [r3, #8] + adds r1, r1, r3 + strh r1, [r4, #0x32] + str r5, [r4, #0x50] + adds r0, r4, #0 + bl sub_08016A30 + ldrb r0, [r5, #0xf] + adds r0, #1 + strb r0, [r5, #0xf] + ldrb r0, [r6] + subs r0, #1 + strb r0, [r6] +_0803B78E: + pop {r4, r5, r6, pc} + .align 2, 0 +_0803B790: .4byte gUnk_080CFD1B +_0803B794: .4byte gUnk_03000BF0 + + thumb_func_start sub_0803B798 +sub_0803B798: @ 0x0803B798 + ldr r2, _0803B7F4 @ =gUnk_03003F80 + movs r1, #0 + movs r0, #0x41 + strb r0, [r2, #2] + strb r1, [r2, #0xa] + ldr r0, [r2, #0x30] + ldr r1, _0803B7F8 @ =0x0000FFEF + ands r0, r1 + str r0, [r2, #0x30] + ldr r3, _0803B7FC @ =gUnk_03001160 + ldrb r1, [r3, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r3, #0x10] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r3, #0x20] + movs r2, #0 + ldr r0, _0803B800 @ =0x0000FFF6 + strh r0, [r3, #0x36] + movs r0, #0x10 + strb r0, [r3, #0x15] + movs r0, #4 + strb r0, [r3, #0x14] + movs r0, #0x29 + adds r0, r0, r3 + mov ip, r0 + ldrb r1, [r0] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + adds r0, r3, #0 + adds r0, #0x63 + strb r2, [r0] + movs r0, #0xa0 + lsls r0, r0, #1 + strh r0, [r3, #0x24] + adds r1, r3, #0 + adds r1, #0x3d + movs r0, #0xe2 + strb r0, [r1] + bx lr + .align 2, 0 +_0803B7F4: .4byte gUnk_03003F80 +_0803B7F8: .4byte 0x0000FFEF +_0803B7FC: .4byte gUnk_03001160 +_0803B800: .4byte 0x0000FFF6 + + thumb_func_start sub_0803B804 +sub_0803B804: @ 0x0803B804 + push {r4, lr} + ldr r4, _0803B820 @ =gUnk_03001160 + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0x1e + strb r0, [r1] + subs r0, #0x22 + bl sub_080526A0 + adds r0, r4, #0 + movs r1, #0x7a + bl sub_0800449C + pop {r4, pc} + .align 2, 0 +_0803B820: .4byte gUnk_03001160 + + thumb_func_start sub_0803B824 +sub_0803B824: @ 0x0803B824 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_08077B2C + ldr r2, _0803B864 @ =gUnk_03003F80 + ldrb r1, [r2, #0x1a] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x1a] + ldr r4, _0803B868 @ =gUnk_03001160 + ldr r1, _0803B86C @ =gUnk_080CFD1D + ldrb r0, [r5, #0xa] + adds r0, r0, r1 + movs r2, #0 + ldrsb r2, [r0, r2] + adds r0, r5, #0 + adds r1, r4, #0 + movs r3, #1 + bl sub_0806FA90 + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #0xfa + strb r0, [r1] + adds r4, #0x29 + ldrb r1, [r4] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4] + pop {r4, r5, pc} + .align 2, 0 +_0803B864: .4byte gUnk_03003F80 +_0803B868: .4byte gUnk_03001160 +_0803B86C: .4byte gUnk_080CFD1D + + thumb_func_start sub_0803B870 +sub_0803B870: @ 0x0803B870 + push {r4, lr} + adds r3, r0, #0 + ldr r4, [r3, #0x54] + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803B8DC + ldr r0, _0803B8D4 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0803B8DC + movs r0, #0x18 + strb r0, [r3, #0xc] + movs r0, #0x44 + strb r0, [r3, #0xe] + ldrb r1, [r3, #0x18] + subs r0, #0x48 + ands r0, r1 + strb r0, [r3, #0x18] + ldr r1, _0803B8D8 @ =gUnk_03001160 + ldrb r2, [r1, #0x10] + movs r0, #0x7f + ands r0, r2 + strb r0, [r1, #0x10] + adds r1, #0x3d + movs r0, #0xf0 + strb r0, [r1] + adds r0, r3, #0 + bl sub_0803B824 + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x13 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #7 + bl sub_080042AC + movs r0, #0xb7 + lsls r0, r0, #1 + bl sub_080A3268 + movs r0, #1 + b _0803B8E6 + .align 2, 0 +_0803B8D4: .4byte gUnk_03003F80 +_0803B8D8: .4byte gUnk_03001160 +_0803B8DC: + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x15 + strb r0, [r1] + movs r0, #0 +_0803B8E6: + pop {r4, pc} + + thumb_func_start sub_0803B8E8 +sub_0803B8E8: @ 0x0803B8E8 + ldr r2, [r0, #0x54] + adds r2, #0x3f + strb r1, [r2] + ldr r2, [r0, #0x74] + adds r0, r2, #0 + adds r0, #0x3f + strb r1, [r0] + bx lr + + thumb_func_start sub_0803B8F8 +sub_0803B8F8: @ 0x0803B8F8 + push {lr} + ldr r2, _0803B90C @ =gUnk_080CFD20 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0803B90C: .4byte gUnk_080CFD20 + + thumb_func_start sub_0803B910 +sub_0803B910: @ 0x0803B910 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0803B940 @ =gUnk_030010A0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #0 + beq _0803B944 + movs r2, #0 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #6 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x74 + strb r2, [r0] + adds r0, r4, #0 + movs r1, #0xa + bl sub_0803BA8C + b _0803B950 + .align 2, 0 +_0803B940: .4byte gUnk_030010A0 +_0803B944: + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x74 + movs r0, #0x80 + strb r0, [r1] +_0803B950: + ldrb r1, [r4, #0xa] + subs r1, #2 + movs r0, #1 + ands r1, r0 + lsls r1, r1, #6 + ldrb r2, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA6C + pop {r4, pc} + + thumb_func_start sub_0803B978 +sub_0803B978: @ 0x0803B978 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #5 + bhi _0803BA34 + lsls r0, r0, #2 + ldr r1, _0803B98C @ =_0803B990 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803B98C: .4byte _0803B990 +_0803B990: @ jump table + .4byte _0803BA66 @ case 0 + .4byte _0803B9A8 @ case 1 + .4byte _0803B9C0 @ case 2 + .4byte _0803BA46 @ case 3 + .4byte _0803BA14 @ case 4 + .4byte _0803BA40 @ case 5 +_0803B9A8: + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xd] + strb r0, [r4, #0xe] + movs r0, #0x1e + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x74 + strb r1, [r0] + ldr r0, _0803BA10 @ =0x000001A9 + bl sub_080A3268 +_0803B9C0: + ldrb r1, [r4, #0xf] + adds r0, r4, #0 + bl sub_0803BA8C + adds r0, r4, #0 + adds r0, #0x75 + adds r5, r4, #0 + adds r5, #0x74 + ldrb r1, [r0] + ldrb r0, [r5] + orrs r0, r1 + cmp r0, #0 + bne _0803B9E0 + ldr r0, _0803BA10 @ =0x000001A9 + bl sub_080A3268 +_0803B9E0: + ldrb r0, [r5] + cmp r0, #0 + bne _0803BA66 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803BA66 + movs r0, #2 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xf] + subs r0, #4 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xa + bne _0803BA66 + ldr r0, [r4, #0x50] + ldr r1, [r0, #0x50] + movs r0, #3 + strb r0, [r1, #0xd] + strb r0, [r4, #0xd] + b _0803BA66 + .align 2, 0 +_0803BA10: .4byte 0x000001A9 +_0803BA14: + movs r0, #5 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x18] + subs r0, #9 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x19] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r4, #0x19] + b _0803BA46 +_0803BA34: + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x19] + subs r0, #0xf + ands r0, r1 + strb r0, [r4, #0x19] +_0803BA40: + adds r0, r4, #0 + bl sub_08004274 +_0803BA46: + adds r0, r4, #0 + movs r1, #0x10 + bl sub_0803BA8C + adds r1, r4, #0 + adds r1, #0x75 + adds r0, r4, #0 + adds r0, #0x74 + ldrb r1, [r1] + ldrb r0, [r0] + orrs r0, r1 + cmp r0, #0 + bne _0803BA66 + ldr r0, _0803BA68 @ =0x000001A9 + bl sub_080A3268 +_0803BA66: + pop {r4, r5, pc} + .align 2, 0 +_0803BA68: .4byte 0x000001A9 + + thumb_func_start sub_0803BA6C +sub_0803BA6C: @ 0x0803BA6C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xa + bl sub_0803BA8C + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803BA80 +sub_0803BA80: @ 0x0803BA80 + push {lr} + movs r1, #0xa + bl sub_0803BA8C + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803BA8C +sub_0803BA8C: @ 0x0803BA8C + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r5, r1, #0 + movs r1, #0 + adds r4, r6, #0 + adds r4, #0x74 + ldrb r3, [r4] + movs r2, #0xe0 + ands r2, r3 + cmp r2, #0 + bne _0803BAEC + cmp r3, #0 + bne _0803BAD2 + adds r2, r6, #0 + adds r2, #0x75 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #9 + bls _0803BABA + strb r1, [r2] +_0803BABA: + ldrb r0, [r6, #0xa] + cmp r0, #2 + bne _0803BAC8 + ldr r1, _0803BAC4 @ =gUnk_080CFD30 + b _0803BACA + .align 2, 0 +_0803BAC4: .4byte gUnk_080CFD30 +_0803BAC8: + ldr r1, _0803BAE8 @ =gUnk_080CFD44 +_0803BACA: + ldrb r0, [r2] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] +_0803BAD2: + adds r2, r6, #0 + adds r2, #0x74 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + cmp r5, r0 + bhi _0803BB18 + movs r0, #0 + strb r0, [r2] + b _0803BB18 + .align 2, 0 +_0803BAE8: .4byte gUnk_080CFD44 +_0803BAEC: + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + bne _0803BB18 + movs r0, #0x80 + orrs r0, r3 + strb r0, [r4] + movs r0, #0x20 + ands r2, r0 + cmp r2, #0 + beq _0803BB0C + ldr r1, _0803BB08 @ =gUnk_080CFD58 + b _0803BB0E + .align 2, 0 +_0803BB08: .4byte gUnk_080CFD58 +_0803BB0C: + ldr r1, _0803BB78 @ =gUnk_080CFD5C +_0803BB0E: + ldrb r0, [r6, #0xa] + subs r0, #2 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] +_0803BB18: + cmp r1, #0 + beq _0803BB74 + adds r0, r6, #0 + bl sub_0801D2B4 + ldr r0, [r6, #0x50] + ldr r4, [r0, #0x78] + ldrb r1, [r6, #0x1a] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1c + ldrb r2, [r4, #0x1a] + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r3, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1a] + ldr r0, [r6, #0x50] + ldr r5, [r0, #0x78] + ldrb r1, [r6, #0x1a] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x18 + ldrb r4, [r5, #0x1a] + movs r2, #0xf + adds r0, r2, #0 + ands r0, r4 + orrs r0, r1 + strb r0, [r5, #0x1a] + ldr r0, [r6, #0x50] + ldr r4, [r0, #0x54] + ldrb r0, [r6, #0x1a] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + ldrb r1, [r4, #0x1a] + ands r3, r1 + orrs r3, r0 + strb r3, [r4, #0x1a] + ldr r0, [r6, #0x50] + ldr r3, [r0, #0x54] + ldrb r0, [r6, #0x1a] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x18 + ldrb r1, [r3, #0x1a] + ands r2, r1 + orrs r2, r0 + strb r2, [r3, #0x1a] +_0803BB74: + pop {r4, r5, r6, pc} + .align 2, 0 +_0803BB78: .4byte gUnk_080CFD5C + + thumb_func_start sub_0803BB7C +sub_0803BB7C: @ 0x0803BB7C + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _0803BB94 @ =gUnk_080CFF3C + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_0803BB94: .4byte gUnk_080CFF3C + + thumb_func_start sub_0803BB98 +sub_0803BB98: @ 0x0803BB98 + push {lr} + ldr r2, _0803BBAC @ =gUnk_080CFF54 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0803BBAC: .4byte gUnk_080CFF54 + + thumb_func_start sub_0803BBB0 +sub_0803BBB0: @ 0x0803BBB0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r2, #0x80 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _0803BC2C + movs r5, #0x7f + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + bne _0803BC06 + adds r0, r4, #0 + bl sub_0803C0AC + ldrb r1, [r4, #0x10] + adds r0, r5, #0 + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r2, [r4, #0x15] + adds r0, r2, #4 + movs r1, #8 + ands r0, r1 + cmp r0, #0 + bne _0803BBF6 + movs r0, #0x10 + ands r0, r2 + cmp r0, #0 + beq _0803BBF2 + adds r0, r2, #2 + b _0803BBF4 +_0803BBF2: + subs r0, r2, #2 +_0803BBF4: + strb r0, [r4, #0x15] +_0803BBF6: + ldrb r1, [r4, #0x15] + movs r0, #0x20 + subs r0, r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_0803BF2C + b _0803BC1E +_0803BC06: + adds r0, r4, #0 + adds r0, #0x3d + ldrb r1, [r0] + adds r0, r2, #0 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _0803BC1E + adds r1, r4, #0 + adds r1, #0x45 + strb r0, [r1] +_0803BC1E: + adds r1, r4, #0 + adds r1, #0x82 + ldrh r0, [r1] + cmp r0, #0x10 + bls _0803BC2C + subs r0, #0xc + strh r0, [r1] +_0803BC2C: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, r5, pc} + + thumb_func_start sub_0803BC34 +sub_0803BC34: @ 0x0803BC34 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0803BC78 @ =gUnk_080CFF6C + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0806F520 + cmp r0, #0 + bne _0803BC74 + movs r1, #2 + strb r1, [r4, #0xc] + strb r0, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x84 + strb r1, [r0] + movs r0, #8 + strb r0, [r4, #0xe] + movs r0, #0xe0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_0803BF2C +_0803BC74: + pop {r4, pc} + .align 2, 0 +_0803BC78: .4byte gUnk_080CFF6C + + thumb_func_start sub_0803BC7C +sub_0803BC7C: @ 0x0803BC7C + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x3c + strb r1, [r0, #0x1d] + bx lr + .align 2, 0 + + thumb_func_start sub_0803BC88 +sub_0803BC88: @ 0x0803BC88 + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_0803BC90 +sub_0803BC90: @ 0x0803BC90 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _0803BCA2 + adds r0, r4, #0 + bl sub_0804A7D4 +_0803BCA2: + pop {r4, pc} + + thumb_func_start sub_0803BCA4 +sub_0803BCA4: @ 0x0803BCA4 + push {r4, r5, r6, lr} + adds r6, r0, #0 + bl sub_0804A720 + movs r4, #0 + movs r5, #1 + strb r5, [r6, #0xc] + strb r4, [r6, #0xf] + adds r0, r6, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r6, #0x15] + adds r0, r6, #0 + adds r0, #0x80 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + strb r5, [r6, #0x1c] + adds r2, r6, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0x10 + orrs r0, r1 + strb r0, [r2] + adds r1, r6, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + ldrb r1, [r6, #0x1b] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r6, #0x1b] + ldrh r1, [r6, #0x2e] + adds r0, r6, #0 + adds r0, #0x78 + strh r1, [r0] + ldrh r0, [r6, #0x32] + adds r1, r6, #0 + adds r1, #0x7a + strh r0, [r1] + adds r0, r6, #0 + bl sub_08016A04 + adds r0, r6, #0 + bl sub_0803BF2C + pop {r4, r5, r6, pc} + + thumb_func_start sub_0803BD08 +sub_0803BD08: @ 0x0803BD08 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0803BD2C + adds r0, r4, #0 + bl sub_080040A8 + cmp r0, #0 + bne _0803BD80 + strb r0, [r4, #0xf] + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r4, #0x18] +_0803BD2C: + adds r0, r4, #0 + bl sub_0803BEE8 + adds r0, r4, #0 + bl sub_08004274 + movs r0, #1 + bl sub_08049DF4 + cmp r0, #0 + beq _0803BD80 + ldr r5, _0803BD84 @ =gUnk_020000B0 + ldr r1, [r5] + adds r0, r4, #0 + movs r2, #0x88 + movs r3, #0x50 + bl sub_080041A0 + cmp r0, #0 + beq _0803BD80 + ldr r0, [r5] + movs r2, #0x32 + ldrsh r1, [r0, r2] + movs r2, #0x32 + ldrsh r0, [r4, r2] + adds r0, #8 + cmp r1, r0 + ble _0803BD80 + movs r1, #0 + movs r2, #2 + strb r2, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x84 + strb r1, [r0] + movs r0, #0x10 + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x81 + strb r2, [r0] + adds r0, r4, #0 + bl sub_0803BF2C +_0803BD80: + pop {r4, r5, pc} + .align 2, 0 +_0803BD84: .4byte gUnk_020000B0 + + thumb_func_start sub_0803BD88 +sub_0803BD88: @ 0x0803BD88 + push {lr} + bl sub_0803BF70 + pop {pc} + + thumb_func_start sub_0803BD90 +sub_0803BD90: @ 0x0803BD90 + push {r4, lr} + adds r4, r0, #0 + bl sub_080040A8 + cmp r0, #0 + bne _0803BDC8 + movs r0, #4 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #8 + ands r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + movs r0, #8 + strb r0, [r4, #0xe] + b _0803BDD4 +_0803BDC8: + adds r0, r4, #0 + bl sub_0803BF48 + adds r0, r4, #0 + bl sub_08004274 +_0803BDD4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803BDD8 +sub_0803BDD8: @ 0x0803BDD8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803BE76 + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0803BDFE + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _0803BE06 +_0803BDFE: + adds r0, r4, #0 + bl sub_0803C120 + b _0803BE70 +_0803BE06: + ldrb r1, [r4, #0x15] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0803BE20 + movs r0, #8 + strb r0, [r4, #0x15] + ldr r1, _0803BE1C @ =gUnk_03000BF0 + ldrh r0, [r1, #0xa] + subs r0, #0x20 + b _0803BE30 + .align 2, 0 +_0803BE1C: .4byte gUnk_03000BF0 +_0803BE20: + movs r0, #0x18 + strb r0, [r4, #0x15] + ldr r1, _0803BE78 @ =gUnk_03000BF0 + movs r2, #0x88 + lsls r2, r2, #1 + adds r0, r2, #0 + ldrh r2, [r1, #0xa] + adds r0, r0, r2 +_0803BE30: + strh r0, [r4, #0x2e] + ldrh r0, [r1, #0xc] + adds r0, #8 + strh r0, [r4, #0x32] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r0, #2 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x84 + movs r0, #1 + strb r0, [r1] + movs r0, #0x18 + strb r0, [r4, #0xe] + subs r1, #2 + movs r0, #0x96 + lsls r0, r0, #1 + strh r0, [r1] + adds r0, #0x94 + strh r0, [r4, #0x24] + subs r1, #1 + movs r0, #4 + strb r0, [r1] +_0803BE70: + adds r0, r4, #0 + bl sub_0803BF2C +_0803BE76: + pop {r4, pc} + .align 2, 0 +_0803BE78: .4byte gUnk_03000BF0 + + thumb_func_start sub_0803BE7C +sub_0803BE7C: @ 0x0803BE7C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_080040A8 + adds r5, r0, #0 + cmp r5, #0 + bne _0803BEE6 + movs r2, #1 + movs r3, #1 + strb r3, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #8 + strb r0, [r4, #0xe] + strb r3, [r4, #0xf] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] + adds r0, r4, #0 + adds r0, #0x80 + strb r5, [r0] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x18 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x81 + strb r5, [r0] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + bl sub_0803BF2C +_0803BEE6: + pop {r4, r5, pc} + + thumb_func_start sub_0803BEE8 +sub_0803BEE8: @ 0x0803BEE8 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803BF28 + ldrb r0, [r4, #0x15] + adds r5, r4, #0 + adds r5, #0x80 + strb r0, [r5] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + cmp r0, #0xff + beq _0803BF0E + strb r0, [r4, #0x15] +_0803BF0E: + movs r0, #8 + strb r0, [r4, #0xe] + ldrb r2, [r5] + movs r0, #0x10 + adds r1, r0, #0 + ands r1, r2 + ldrb r2, [r4, #0x15] + ands r0, r2 + cmp r1, r0 + beq _0803BF28 + adds r0, r4, #0 + bl sub_0803BF2C +_0803BF28: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803BF2C +sub_0803BF2C: @ 0x0803BF2C + push {lr} + ldrb r2, [r0, #0x15] + movs r1, #0x10 + ands r1, r2 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x1c + adds r2, r0, #0 + adds r2, #0x81 + ldrb r2, [r2] + adds r1, r1, r2 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803BF48 +sub_0803BF48: @ 0x0803BF48 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + ldrb r2, [r4, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x19] + pop {r4, pc} + + thumb_func_start sub_0803BF70 +sub_0803BF70: @ 0x0803BF70 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r2, r5, #0 + adds r2, #0x84 + ldrb r0, [r2] + cmp r0, #1 + beq _0803BFC0 + cmp r0, #1 + bgt _0803BF88 + cmp r0, #0 + beq _0803BF8E + b _0803C0A2 +_0803BF88: + cmp r0, #2 + beq _0803BFEA + b _0803C0A2 +_0803BF8E: + ldrb r1, [r5, #0xe] + movs r3, #1 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _0803BFA0 + ldrh r0, [r5, #0x36] + subs r0, #1 + strh r0, [r5, #0x36] +_0803BFA0: + subs r0, r1, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803C0A2 + strb r3, [r2] + movs r0, #0x18 + strb r0, [r5, #0xe] + ldrb r0, [r5, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + adds r1, r5, #0 + adds r1, #0x81 + movs r0, #2 + b _0803BFE0 +_0803BFC0: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803C0A2 + movs r0, #2 + strb r0, [r2] + movs r0, #8 + strb r0, [r5, #0xe] + movs r0, #0xe0 + lsls r0, r0, #1 + strh r0, [r5, #0x24] + adds r1, r5, #0 + adds r1, #0x81 + movs r0, #4 +_0803BFE0: + strb r0, [r1] + adds r0, r5, #0 + bl sub_0803BF2C + b _0803C0A2 +_0803BFEA: + adds r1, r5, #0 + adds r1, #0x82 + ldrh r0, [r1] + subs r0, #1 + movs r3, #0 + strh r0, [r1] + lsls r0, r0, #0x10 + adds r6, r1, #0 + cmp r0, #0 + bne _0803C02C + movs r0, #3 + strb r0, [r5, #0xc] + strb r3, [r2] + strb r3, [r5, #0xe] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r5, #0x24] + ldrb r2, [r5, #0x15] + adds r0, r2, #0 + adds r0, #0x18 + movs r1, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0803C024 + movs r0, #0x10 + subs r0, r0, r2 + movs r1, #0x1f + ands r0, r1 + strb r0, [r5, #0x15] +_0803C024: + adds r0, r5, #0 + bl sub_0803BF2C + b _0803C09C +_0803C02C: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803C09C + movs r0, #8 + strb r0, [r5, #0xe] + ldrb r0, [r5, #0x15] + adds r4, r5, #0 + adds r4, #0x80 + strb r0, [r4] + adds r0, r5, #0 + movs r1, #1 + bl sub_08049F84 + adds r1, r0, #0 + adds r0, r5, #0 + bl sub_08004596 + ldrb r3, [r5, #0x15] + adds r0, r3, #0 + adds r0, #0x18 + movs r1, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0803C07E + ldrb r0, [r4] + cmp r0, #0x10 + bne _0803C076 + ands r3, r0 + cmp r3, #0 + beq _0803C072 + movs r0, #0x12 + b _0803C074 +_0803C072: + movs r0, #0xe +_0803C074: + strb r0, [r4] +_0803C076: + ldrb r0, [r4] + strb r0, [r5, #0x15] + movs r0, #1 + strh r0, [r6] +_0803C07E: + ldrb r2, [r4] + movs r0, #0x10 + adds r1, r0, #0 + ands r1, r2 + lsls r1, r1, #0x18 + ldrb r2, [r5, #0x15] + ands r0, r2 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x1c + cmp r1, r0 + beq _0803C09C + adds r1, r2, #4 + adds r0, r5, #0 + bl sub_08004260 +_0803C09C: + adds r0, r5, #0 + bl sub_0803BF48 +_0803C0A2: + adds r0, r5, #0 + bl sub_08004274 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0803C0AC +sub_0803C0AC: @ 0x0803C0AC + push {r4, r5, r6, lr} + movs r0, #1 + bl sub_08049DF4 + adds r5, r0, #0 + cmp r5, #0 + beq _0803C11C + ldr r0, _0803C0D4 @ =gUnk_02002A40 + adds r0, #0xc0 + ldrh r1, [r0] + ldr r0, _0803C0D8 @ =0x000001F3 + cmp r1, r0 + bls _0803C0DC + movs r6, #0x56 + movs r4, #5 + movs r0, #0x64 + rsbs r0, r0, #0 + bl sub_080526CC + b _0803C118 + .align 2, 0 +_0803C0D4: .4byte gUnk_02002A40 +_0803C0D8: .4byte 0x000001F3 +_0803C0DC: + cmp r1, #0x63 + bls _0803C0EE + movs r6, #0x55 + movs r4, #5 + movs r0, #0x19 + rsbs r0, r0, #0 + bl sub_080526CC + b _0803C118 +_0803C0EE: + movs r6, #0x54 + adds r4, r1, #0 + cmp r4, #4 + bls _0803C0F8 + movs r4, #5 +_0803C0F8: + rsbs r0, r4, #0 + bl sub_080526CC + b _0803C118 +_0803C100: + movs r0, #0x1a + adds r1, r6, #0 + movs r2, #0 + bl sub_080A2960 + adds r1, r0, #0 + cmp r1, #0 + beq _0803C116 + adds r0, r5, #0 + bl sub_0806FA24 +_0803C116: + subs r4, #1 +_0803C118: + cmp r4, #0 + bne _0803C100 +_0803C11C: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0803C120 +sub_0803C120: @ 0x0803C120 + adds r2, r0, #0 + movs r0, #5 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + subs r0, #9 + ands r0, r1 + strb r0, [r2, #0x18] + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] + adds r0, r2, #0 + adds r0, #0x78 + ldrh r0, [r0] + strh r0, [r2, #0x2e] + adds r0, r2, #0 + adds r0, #0x7a + ldrh r0, [r0] + strh r0, [r2, #0x32] + ldrh r0, [r2, #0x36] + adds r0, #8 + strh r0, [r2, #0x36] + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x18 + orrs r0, r1 + strb r0, [r2] + bx lr + .align 2, 0 + + thumb_func_start sub_0803C160 +sub_0803C160: @ 0x0803C160 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0803C17C @ =gUnk_080CFF78 + bl sub_0800129E + movs r3, #0x18 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, pc} + .align 2, 0 +_0803C17C: .4byte gUnk_080CFF78 + + thumb_func_start sub_0803C180 +sub_0803C180: @ 0x0803C180 + push {lr} + ldr r2, _0803C194 @ =gUnk_080CFF90 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0803C194: .4byte gUnk_080CFF90 + + thumb_func_start sub_0803C198 +sub_0803C198: @ 0x0803C198 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0803C1AC + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0803C1AC: + ldr r1, _0803C1D8 @ =gUnk_080CFF78 + adds r0, r4, #0 + bl sub_0804AA30 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803C1D4 + adds r0, r4, #0 + bl sub_0803C5F0 + ldr r1, [r4, #0x54] + cmp r1, #0 + beq _0803C1D4 + ldrb r0, [r1, #0xf] + adds r0, #1 + strb r0, [r1, #0xf] +_0803C1D4: + pop {r4, pc} + .align 2, 0 +_0803C1D8: .4byte gUnk_080CFF78 + + thumb_func_start nullsub_168 +nullsub_168: @ 0x0803C1DC + bx lr + .align 2, 0 + + thumb_func_start sub_0803C1E0 +sub_0803C1E0: @ 0x0803C1E0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r1, #0 + movs r2, #1 + strb r2, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x7b + strb r1, [r0] + adds r0, #5 + strb r1, [r0] + adds r0, #3 + strb r1, [r0] + subs r0, #2 + strb r1, [r0] + subs r0, #7 + strb r1, [r0] + adds r0, #8 + strb r2, [r0] + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0803C228 + ldrb r1, [r4, #0xb] + lsls r0, r1, #1 + strb r0, [r4, #0x14] + movs r0, #0x1e + strb r0, [r4, #0xe] + movs r0, #0x80 + strh r0, [r4, #0x24] + lsls r1, r1, #3 + strb r1, [r4, #0x15] + adds r0, r4, #0 + bl sub_0803C690 + b _0803C232 +_0803C228: + movs r0, #0x10 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_0803C4B0 +_0803C232: + pop {r4, pc} + + thumb_func_start sub_0803C234 +sub_0803C234: @ 0x0803C234 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x81 + ldrb r0, [r1] + cmp r0, #0 + beq _0803C246 + subs r0, #1 + strb r0, [r1] +_0803C246: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r3, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803C292 + adds r1, r4, #0 + adds r1, #0x80 + ldrb r0, [r1] + adds r2, r0, #1 + strb r2, [r1] + adds r0, r2, #0 + ands r0, r3 + cmp r0, #0xf + bls _0803C26E + adds r0, r4, #0 + bl sub_0803C5C4 + b _0803C2D2 +_0803C26E: + movs r0, #3 + ands r2, r0 + cmp r2, #0 + bne _0803C28A + bl sub_08000E50 + movs r1, #0x10 + ands r1, r0 + cmp r1, #0 + beq _0803C28A + adds r0, r4, #0 + bl sub_0803C624 + b _0803C2D2 +_0803C28A: + adds r0, r4, #0 + bl sub_0803C4B0 + b _0803C2D2 +_0803C292: + adds r0, r4, #0 + bl sub_0803C6F8 + cmp r0, #0 + beq _0803C2C2 + ldrh r1, [r4, #0x2a] + adds r0, r4, #0 + bl sub_0800417E + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + asrs r0, r0, #2 + strb r0, [r4, #0x14] + adds r1, r4, #0 + adds r1, #0x83 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0803C690 + b _0803C2D2 +_0803C2C2: + adds r0, r4, #0 + bl sub_0803C568 + cmp r0, #0 + beq _0803C2D2 + adds r0, r4, #0 + bl sub_0803C5F0 +_0803C2D2: + adds r0, r4, #0 + bl sub_0803C6DC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803C2DC +sub_0803C2DC: @ 0x0803C2DC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0803C308 + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x82 + strb r1, [r0] + subs r0, #2 + strb r1, [r0] + movs r0, #0x10 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_0803C4B0 + b _0803C31E +_0803C308: + adds r0, r4, #0 + bl sub_0803C568 + cmp r0, #0 + beq _0803C31E + adds r2, r4, #0 + adds r2, #0x7b + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] +_0803C31E: + ldrb r0, [r4, #0xf] + cmp r0, #0xb + bls _0803C336 + adds r0, r4, #0 + adds r0, #0x7b + ldrb r0, [r0] + cmp r0, #0 + beq _0803C33A + adds r0, r4, #0 + bl sub_0803C5F0 + b _0803C33A +_0803C336: + adds r0, #1 + strb r0, [r4, #0xf] +_0803C33A: + adds r0, r4, #0 + bl sub_0803C6DC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803C344 +sub_0803C344: @ 0x0803C344 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803C3F8 + adds r0, r4, #0 + adds r0, #0x82 + ldrb r1, [r0] + adds r2, r0, #0 + cmp r1, #5 + bhi _0803C3C8 + lsls r0, r1, #2 + ldr r1, _0803C36C @ =_0803C370 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803C36C: .4byte _0803C370 +_0803C370: @ jump table + .4byte _0803C3C8 @ case 0 + .4byte _0803C3C8 @ case 1 + .4byte _0803C3A6 @ case 2 + .4byte _0803C388 @ case 3 + .4byte _0803C3BE @ case 4 + .4byte _0803C39C @ case 5 +_0803C388: + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x80 + strh r0, [r4, #0x24] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] + b _0803C3E2 +_0803C39C: + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x80 + strh r0, [r4, #0x24] + b _0803C3E2 +_0803C3A6: + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strh r1, [r4, #0x24] + bl sub_08000E50 + movs r1, #7 + ands r0, r1 + lsls r1, r0, #1 + adds r1, r1, r0 + adds r1, #0x40 + b _0803C3E0 +_0803C3BE: + ldrb r0, [r4, #0x15] + adds r0, #0x10 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] +_0803C3C8: + movs r0, #1 + strb r0, [r4, #0xc] + strb r0, [r2] + movs r0, #0x80 + strh r0, [r4, #0x24] + bl sub_08000E50 + movs r1, #7 + ands r0, r1 + lsls r1, r0, #1 + adds r1, r1, r0 + adds r1, #0x22 +_0803C3E0: + strb r1, [r4, #0xe] +_0803C3E2: + movs r0, #0 + strb r0, [r4, #0xf] + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + asrs r0, r0, #2 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_0803C690 +_0803C3F8: + adds r0, r4, #0 + bl sub_0803C6DC + pop {r4, pc} + + thumb_func_start sub_0803C400 +sub_0803C400: @ 0x0803C400 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + adds r1, r0, #0 + cmp r1, #0 + beq _0803C458 + subs r0, #1 + strb r0, [r4, #0xf] + movs r2, #0xff + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _0803C4AC + adds r0, r4, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #3 + bne _0803C450 + adds r1, r4, #0 + adds r1, #0x7a + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ands r0, r2 + cmp r0, #2 + bhi _0803C450 + bl sub_08000E50 + movs r1, #0xc0 + ands r1, r0 + cmp r1, #0 + beq _0803C450 + strb r5, [r4, #0xe] + adds r0, r4, #0 + bl sub_0803C690 + adds r0, r4, #0 + bl sub_0803C6DC + b _0803C4AC +_0803C450: + adds r0, r4, #0 + bl sub_0803C634 + b _0803C4AC +_0803C458: + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0803C46C + cmp r0, #0x18 + beq _0803C494 + b _0803C49A +_0803C46C: + ldrb r2, [r4, #0x14] + lsls r0, r2, #2 + strb r0, [r4, #0x15] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x19 + adds r0, r4, #0 + movs r1, #0xd + bl sub_0804A98C + adds r2, r0, #0 + cmp r2, #0 + beq _0803C49A + str r2, [r4, #0x54] + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r2, #0x15] + str r4, [r2, #0x50] + b _0803C49A +_0803C494: + strb r1, [r4, #0xe] + movs r0, #0x20 + strb r0, [r4, #0xf] +_0803C49A: + adds r0, r4, #0 + bl sub_0803C6DC + ldr r0, [r4, #0x54] + cmp r0, #0 + beq _0803C4AC + adds r0, r4, #0 + bl sub_0803C714 +_0803C4AC: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803C4B0 +sub_0803C4B0: @ 0x0803C4B0 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + movs r1, #0 + strb r1, [r5, #0xf] + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #1 + bne _0803C54C + bl sub_08000E50 + ldr r1, _0803C4F0 @ =gUnk_080CFFA4 + movs r7, #7 + ands r0, r7 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r5, #0xe] + movs r0, #0x80 + strh r0, [r5, #0x24] + adds r0, r5, #0 + bl sub_08049FA0 + cmp r0, #0 + beq _0803C4F4 + bl sub_08000E50 + adds r4, r0, #0 + movs r0, #6 + ands r4, r0 + lsls r0, r4, #2 + strb r0, [r5, #0x15] + b _0803C556 + .align 2, 0 +_0803C4F0: .4byte gUnk_080CFFA4 +_0803C4F4: + adds r0, r5, #0 + bl sub_08049EE4 + adds r4, r0, #0 + adds r6, r5, #0 + adds r6, #0x83 + ldrb r0, [r6] + cmp r0, #0 + bne _0803C520 + bl sub_08000E50 + ldr r2, _0803C51C @ =gUnk_080CFFAC + movs r1, #0xf + ands r1, r0 + adds r1, r1, r2 + movs r0, #0 + ldrsb r0, [r1, r0] + adds r4, r4, r0 + b _0803C53E + .align 2, 0 +_0803C51C: .4byte gUnk_080CFFAC +_0803C520: + bl sub_08000E50 + ldr r1, _0803C548 @ =gUnk_080CFFAC + ands r0, r7 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r4, r4, r0 + ldrb r0, [r5, #0xe] + adds r0, #0x10 + strb r0, [r5, #0xe] + ldrb r0, [r6] + subs r0, #1 + strb r0, [r6] +_0803C53E: + adds r0, r4, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r5, #0x15] + b _0803C554 + .align 2, 0 +_0803C548: .4byte gUnk_080CFFAC +_0803C54C: + movs r0, #0xc + strb r0, [r5, #0xe] + strh r1, [r5, #0x24] + ldrb r0, [r5, #0x15] +_0803C554: + lsrs r4, r0, #2 +_0803C556: + ldrb r0, [r5, #0x14] + cmp r4, r0 + beq _0803C564 + strb r4, [r5, #0x14] + adds r0, r5, #0 + bl sub_0803C690 +_0803C564: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0803C568 +sub_0803C568: @ 0x0803C568 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + bne _0803C5C0 + movs r0, #1 + bl sub_08049DF4 + adds r4, r0, #0 + cmp r4, #0 + beq _0803C5C0 + adds r0, r5, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #2 + bne _0803C598 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0x30 + bl sub_0806FC80 + cmp r0, #0 + bne _0803C5BC +_0803C598: + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0x40 + bl sub_0806FC80 + cmp r0, #0 + beq _0803C5C0 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080045C4 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + lsrs r0, r0, #2 + ldrb r5, [r5, #0x14] + cmp r0, r5 + bne _0803C5C0 +_0803C5BC: + movs r0, #1 + b _0803C5C2 +_0803C5C0: + movs r0, #0 +_0803C5C2: + pop {r4, r5, pc} + + thumb_func_start sub_0803C5C4 +sub_0803C5C4: @ 0x0803C5C4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + asrs r0, r0, #2 + strb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] + adds r1, r4, #0 + adds r1, #0x83 + ldrb r0, [r1] + lsrs r0, r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0803C664 + adds r4, #0x82 + movs r0, #2 + strb r0, [r4] + pop {r4, pc} + + thumb_func_start sub_0803C5F0 +sub_0803C5F0: @ 0x0803C5F0 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049F84 + movs r2, #0 + strb r0, [r4, #0x15] + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + asrs r0, r0, #2 + strb r0, [r4, #0x14] + adds r0, r4, #0 + adds r0, #0x83 + strb r2, [r0] + subs r0, #9 + strb r2, [r0] + adds r0, r4, #0 + bl sub_0803C664 + adds r4, #0x82 + movs r0, #3 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803C624 +sub_0803C624: @ 0x0803C624 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803C664 + adds r4, #0x82 + movs r0, #5 + strb r0, [r4] + pop {r4, pc} + + thumb_func_start sub_0803C634 +sub_0803C634: @ 0x0803C634 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + asrs r0, r0, #2 + movs r1, #0 + strb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] + adds r0, r4, #0 + adds r0, #0x83 + strb r1, [r0] + adds r0, r4, #0 + bl sub_0803C664 + ldrb r0, [r4, #0xe] + lsls r0, r0, #1 + strb r0, [r4, #0xe] + adds r4, #0x82 + movs r0, #4 + strb r0, [r4] + pop {r4, pc} + + thumb_func_start sub_0803C664 +sub_0803C664: @ 0x0803C664 + push {lr} + adds r2, r0, #0 + movs r1, #0 + movs r0, #3 + strb r0, [r2, #0xc] + movs r0, #0x20 + strb r0, [r2, #0xe] + strb r1, [r2, #0xf] + adds r0, r2, #0 + adds r0, #0x80 + strb r1, [r0] + subs r0, #5 + strb r1, [r0] + movs r0, #0 + strh r1, [r2, #0x24] + adds r1, r2, #0 + adds r1, #0x82 + strb r0, [r1] + adds r0, r2, #0 + bl sub_0803C690 + pop {pc} + + thumb_func_start sub_0803C690 +sub_0803C690: @ 0x0803C690 + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #0x14] + lsrs r2, r0, #1 + adds r0, r3, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #5 + bhi _0803C6D2 + lsls r0, r0, #2 + ldr r1, _0803C6AC @ =_0803C6B0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803C6AC: .4byte _0803C6B0 +_0803C6B0: @ jump table + .4byte _0803C6D2 @ case 0 + .4byte _0803C6C8 @ case 1 + .4byte _0803C6D0 @ case 2 + .4byte _0803C6CC @ case 3 + .4byte _0803C6C8 @ case 4 + .4byte _0803C6CC @ case 5 +_0803C6C8: + adds r2, #4 + b _0803C6D2 +_0803C6CC: + adds r2, #8 + b _0803C6D2 +_0803C6D0: + adds r2, #0xc +_0803C6D2: + adds r0, r3, #0 + adds r1, r2, #0 + bl sub_08004260 + pop {pc} + + thumb_func_start sub_0803C6DC +sub_0803C6DC: @ 0x0803C6DC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #0 + bne _0803C6EA + strh r0, [r4, #0x24] +_0803C6EA: + adds r0, r4, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_0803C6F8 +sub_0803C6F8: @ 0x0803C6F8 + ldr r2, _0803C710 @ =gUnk_080CFFBC + ldrb r1, [r0, #0x14] + lsrs r1, r1, #1 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r0, [r0, #0x2a] + ldrh r1, [r1] + ands r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + bx lr + .align 2, 0 +_0803C710: .4byte gUnk_080CFFBC + + thumb_func_start sub_0803C714 +sub_0803C714: @ 0x0803C714 + push {lr} + ldr r1, [r0, #0x54] + ldrb r3, [r0, #0x14] + ldr r2, _0803C734 @ =gUnk_080CFFC4 + adds r3, r3, r2 + movs r2, #0 + ldrsb r2, [r3, r2] + lsls r2, r2, #0x10 + ldrb r3, [r3, #1] + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + lsls r3, r3, #0x10 + bl sub_0806FA48 + pop {pc} + .align 2, 0 +_0803C734: .4byte gUnk_080CFFC4 + + thumb_func_start sub_0803C738 +sub_0803C738: @ 0x0803C738 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0803C754 @ =gUnk_080D0110 + bl sub_0800129E + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, pc} + .align 2, 0 +_0803C754: .4byte gUnk_080D0110 + + thumb_func_start sub_0803C758 +sub_0803C758: @ 0x0803C758 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + beq _0803C76C + cmp r0, #7 + beq _0803C76C + adds r0, r4, #0 + bl sub_0803CAD0 +_0803C76C: + ldr r0, _0803C780 @ =gUnk_080D0128 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_0803C780: .4byte gUnk_080D0128 + + thumb_func_start sub_0803C784 +sub_0803C784: @ 0x0803C784 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x1d + bne _0803C7A2 + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + adds r0, r4, #0 + bl sub_0803CBAC + b _0803C7FA +_0803C7A2: + adds r0, r4, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0x43 + bne _0803C7FA + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl sub_080A29AC + adds r2, r0, #0 + cmp r2, #0 + beq _0803C7FA + adds r0, r4, #0 + adds r0, #0x3e + ldrb r1, [r0] + movs r0, #0x10 + eors r0, r1 + lsls r1, r0, #3 + ldr r3, _0803C818 @ =gUnk_080C9160 + lsls r0, r0, #4 + adds r0, r0, r3 + movs r5, #0 + ldrsh r0, [r0, r5] + cmp r0, #0 + bge _0803C7D8 + adds r0, #0x1f +_0803C7D8: + asrs r0, r0, #5 + ldrh r5, [r2, #0x2e] + adds r0, r0, r5 + strh r0, [r2, #0x2e] + adds r0, r1, #0 + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r3 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bge _0803C7F2 + adds r0, #0x1f +_0803C7F2: + asrs r1, r0, #5 + ldrh r0, [r2, #0x32] + subs r0, r0, r1 + strh r0, [r2, #0x32] +_0803C7FA: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0803C80C + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0803C80C: + ldr r1, _0803C81C @ =gUnk_080D0110 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, r5, pc} + .align 2, 0 +_0803C818: .4byte gUnk_080C9160 +_0803C81C: .4byte gUnk_080D0110 + + thumb_func_start sub_0803C820 +sub_0803C820: @ 0x0803C820 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F520 + cmp r0, #0 + beq _0803C83C + ldr r0, _0803C840 @ =gUnk_080D0148 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_0803C83C: + pop {r4, pc} + .align 2, 0 +_0803C840: .4byte gUnk_080D0148 + + thumb_func_start sub_0803C844 +sub_0803C844: @ 0x0803C844 + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x3c + strb r1, [r0, #0x1d] + bx lr + .align 2, 0 + + thumb_func_start sub_0803C850 +sub_0803C850: @ 0x0803C850 + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x54] + cmp r0, #0 + beq _0803C864 + adds r1, r2, #0 + adds r1, #0x62 + ldrb r1, [r1] + adds r0, #0x62 + strb r1, [r0] +_0803C864: + adds r0, r2, #0 + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_0803C86C +sub_0803C86C: @ 0x0803C86C + push {r4, lr} + adds r4, r0, #0 + bl sub_0803CBAC + movs r0, #0 + str r0, [r4, #0x54] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803C87C +sub_0803C87C: @ 0x0803C87C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x11 + movs r2, #0 + bl sub_0804A98C + cmp r0, #0 + beq _0803C8B4 + str r4, [r0, #0x50] + str r0, [r4, #0x54] + adds r0, r4, #0 + bl sub_0804A720 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _0803C8B8 @ =0x0000FFFE + strh r0, [r4, #0x36] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #0xff + strb r0, [r1] + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x74 + strh r1, [r0] + ldrh r1, [r4, #0x32] + adds r0, #2 + strh r1, [r0] +_0803C8B4: + pop {r4, pc} + .align 2, 0 +_0803C8B8: .4byte 0x0000FFFE + + thumb_func_start sub_0803C8BC +sub_0803C8BC: @ 0x0803C8BC + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + bl sub_0803CA84 + adds r0, r4, #0 + bl sub_0803CA4C + cmp r0, #0 + beq _0803C8E0 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #6 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] +_0803C8E0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803C8E4 +sub_0803C8E4: @ 0x0803C8E4 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803C914 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x42 + strb r0, [r1] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC +_0803C914: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803C918 +sub_0803C918: @ 0x0803C918 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803CB04 + cmp r0, #0 + bne _0803C94E + adds r0, r4, #0 + bl sub_0803CA4C + cmp r0, #0 + bne _0803C946 + movs r0, #4 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x43 + strb r0, [r1] + ldrb r1, [r4, #0x14] + adds r1, #0xc + adds r0, r4, #0 + bl sub_080042AC + b _0803C94E +_0803C946: + adds r0, r4, #0 + movs r1, #4 + bl sub_0803CA84 +_0803C94E: + pop {r4, pc} + + thumb_func_start sub_0803C950 +sub_0803C950: @ 0x0803C950 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803C97A + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_080042AC +_0803C97A: + pop {r4, pc} + + thumb_func_start sub_0803C97C +sub_0803C97C: @ 0x0803C97C + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803C9D2 + adds r0, r4, #0 + bl sub_0803CB64 + movs r0, #6 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x42 + strb r0, [r1] + bl sub_08000E50 + movs r1, #1 + ands r0, r1 + adds r2, r4, #0 + adds r2, #0x79 + cmp r0, #0 + beq _0803C9C2 + ldrb r0, [r2] + cmp r0, #0 + bne _0803C9C2 + movs r0, #0xf + strb r0, [r4, #0xe] + strb r1, [r2] + b _0803C9D2 +_0803C9C2: + movs r1, #0 + movs r0, #0x1e + strb r0, [r4, #0xe] + strb r1, [r2] + ldr r0, [r4, #0x54] + ldrb r1, [r4, #0x14] + bl sub_080042AC +_0803C9D2: + pop {r4, pc} + + thumb_func_start sub_0803C9D4 +sub_0803C9D4: @ 0x0803C9D4 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803CA08 + adds r0, r2, #0 + adds r0, #0x79 + ldrb r0, [r0] + cmp r0, #1 + bne _0803C9F6 + adds r0, r2, #0 + bl sub_0803CB34 + b _0803CA08 +_0803C9F6: + movs r0, #3 + strb r0, [r2, #0xc] + movs r0, #0xb4 + strb r0, [r2, #0xe] + ldrb r1, [r2, #0x14] + adds r1, #4 + adds r0, r2, #0 + bl sub_080042AC +_0803CA08: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803CA0C +sub_0803CA0C: @ 0x0803CA0C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xc0 + lsls r1, r1, #5 + bl sub_08003FC4 + cmp r0, #0 + bne _0803CA3E + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0x13 + bhi _0803CA3E + ldrb r1, [r4, #0x14] + adds r1, #0x14 + adds r0, r4, #0 + bl sub_080042AC + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] +_0803CA3E: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0803CC08 + pop {r4, pc} + + thumb_func_start sub_0803CA4C +sub_0803CA4C: @ 0x0803CA4C + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _0803CA7C @ =gUnk_03001160 + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r0, #0x32 + ldrsh r2, [r4, r0] + adds r0, r5, #0 + movs r3, #0x28 + bl sub_0806FCB8 + cmp r0, #0 + bne _0803CA80 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0x70 + movs r3, #0x50 + bl sub_080041A0 + cmp r0, #0 + beq _0803CA80 + movs r0, #1 + b _0803CA82 + .align 2, 0 +_0803CA7C: .4byte gUnk_03001160 +_0803CA80: + movs r0, #0 +_0803CA82: + pop {r4, r5, pc} + + thumb_func_start sub_0803CA84 +sub_0803CA84: @ 0x0803CA84 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + ldr r1, _0803CACC @ =gUnk_03001160 + bl sub_080045C4 + adds r4, r0, #0 + subs r0, r4, #3 + movs r1, #7 + ands r0, r1 + cmp r0, #2 + bhi _0803CAAA + ldrb r0, [r5, #0x14] + lsrs r1, r4, #3 + subs r0, r0, r1 + movs r1, #3 + ands r0, r1 + cmp r0, #1 + bls _0803CACA +_0803CAAA: + adds r0, r4, #4 + movs r1, #0x18 + ands r0, r1 + lsrs r4, r0, #3 + ldrb r0, [r5, #0x14] + cmp r4, r0 + beq _0803CACA + strb r4, [r5, #0x14] + adds r1, r4, r6 + adds r0, r5, #0 + bl sub_080042AC + ldr r0, [r5, #0x54] + adds r1, r4, #0 + bl sub_080042AC +_0803CACA: + pop {r4, r5, r6, pc} + .align 2, 0 +_0803CACC: .4byte gUnk_03001160 + + thumb_func_start sub_0803CAD0 +sub_0803CAD0: @ 0x0803CAD0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r4, #0 + adds r6, #0x74 + ldrh r1, [r6] + adds r5, r4, #0 + adds r5, #0x76 + ldrh r2, [r5] + movs r3, #1 + bl sub_0806FCB8 + cmp r0, #0 + bne _0803CB02 + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + ldrh r2, [r6] + ldrh r3, [r5] + bl sub_080045D4 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_080AEFE0 +_0803CB02: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0803CB04 +sub_0803CB04: @ 0x0803CB04 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + beq _0803CB1A + movs r0, #0 + b _0803CB32 +_0803CB1A: + adds r0, r4, #0 + bl sub_0803CB34 + adds r0, r4, #0 + adds r0, #0x79 + strb r5, [r0] + ldr r0, [r4, #0x54] + ldrb r1, [r4, #0x14] + adds r1, #4 + bl sub_080042AC + movs r0, #1 +_0803CB32: + pop {r4, r5, pc} + + thumb_func_start sub_0803CB34 +sub_0803CB34: @ 0x0803CB34 + push {r4, lr} + adds r4, r0, #0 + movs r0, #5 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0xa6 + strb r0, [r1] + ldr r1, _0803CB60 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r4, #0 + adds r1, #0x78 + strb r0, [r1] + ldrb r1, [r4, #0x14] + adds r1, #8 + adds r0, r4, #0 + bl sub_080042AC + pop {r4, pc} + .align 2, 0 +_0803CB60: .4byte gUnk_03001160 + + thumb_func_start sub_0803CB64 +sub_0803CB64: @ 0x0803CB64 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x12 + movs r2, #0 + bl sub_0804A98C + adds r5, r0, #0 + cmp r5, #0 + beq _0803CBA0 + ldrb r1, [r4, #0x14] + lsls r1, r1, #1 + ldr r0, _0803CBA4 @ =gUnk_080D0154 + adds r1, r1, r0 + adds r0, r4, #0 + adds r0, #0x78 + ldrb r0, [r0] + strb r0, [r5, #0x15] + movs r2, #0 + ldrsb r2, [r1, r2] + lsls r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r1, r3] + lsls r3, r3, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FA48 + ldr r0, _0803CBA8 @ =0x00000193 + bl sub_08004488 +_0803CBA0: + pop {r4, r5, pc} + .align 2, 0 +_0803CBA4: .4byte gUnk_080D0154 +_0803CBA8: .4byte 0x00000193 + + thumb_func_start sub_0803CBAC +sub_0803CBAC: @ 0x0803CBAC + push {lr} + adds r3, r0, #0 + ldr r2, [r3, #0x54] + cmp r2, #0 + beq _0803CBC6 + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + adds r1, r2, #0 + adds r1, #0x3f + movs r0, #0x43 + strb r0, [r1] +_0803CBC6: + movs r0, #7 + strb r0, [r3, #0xc] + ldrb r1, [r3, #0x18] + subs r0, #0xb + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r3, #0x18] + adds r2, r3, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + adds r2, #0x12 + ldrb r1, [r2] + movs r0, #0x7b + ands r0, r1 + strb r0, [r2] + adds r1, r3, #0 + adds r1, #0x3f + movs r0, #0x42 + strb r0, [r1] + ldrb r1, [r3, #0x14] + adds r1, #0x10 + adds r0, r3, #0 + bl sub_080042AC + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803CC08 +sub_0803CC08: @ 0x0803CC08 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x54] + cmp r5, #0 + beq _0803CCB4 + movs r1, #0x36 + ldrsh r0, [r5, r1] + movs r2, #0x36 + ldrsh r1, [r4, r2] + subs r0, r0, r1 + cmp r0, #2 + bhi _0803CCB4 + ldr r0, [r4, #0x20] + cmp r0, #0 + bge _0803CCB4 + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r0, #0x32 + ldrsh r2, [r5, r0] + adds r0, r4, #0 + movs r3, #6 + bl sub_0806FCB8 + cmp r0, #0 + beq _0803CCB4 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl sub_080A29AC + adds r1, r0, #0 + cmp r1, #0 + beq _0803CC56 + ldrh r0, [r1, #0x2e] + adds r0, #6 + strh r0, [r1, #0x2e] + ldrh r0, [r1, #0x32] + adds r0, #6 + strh r0, [r1, #0x32] +_0803CC56: + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl sub_080A29AC + adds r1, r0, #0 + cmp r1, #0 + beq _0803CC72 + ldrh r0, [r1, #0x2e] + subs r0, #6 + strh r0, [r1, #0x2e] + ldrh r0, [r1, #0x32] + adds r0, #6 + strh r0, [r1, #0x32] +_0803CC72: + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl sub_080A29AC + adds r1, r0, #0 + cmp r1, #0 + beq _0803CC8E + ldrh r0, [r1, #0x2e] + adds r0, #6 + strh r0, [r1, #0x2e] + ldrh r0, [r1, #0x32] + subs r0, #6 + strh r0, [r1, #0x32] +_0803CC8E: + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl sub_080A29AC + adds r1, r0, #0 + cmp r1, #0 + beq _0803CCAA + ldrh r0, [r1, #0x2e] + subs r0, #6 + strh r0, [r1, #0x2e] + ldrh r0, [r1, #0x32] + subs r0, #6 + strh r0, [r1, #0x32] +_0803CCAA: + movs r0, #0 + str r0, [r4, #0x54] + adds r0, r5, #0 + bl sub_0805E7BC +_0803CCB4: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803CCB8 +sub_0803CCB8: @ 0x0803CCB8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _0803CCD0 @ =gUnk_080D0418 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_0803CCD0: .4byte gUnk_080D0418 + + thumb_func_start sub_0803CCD4 +sub_0803CCD4: @ 0x0803CCD4 + push {lr} + ldr r2, _0803CCE8 @ =gUnk_080D0430 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0803CCE8: .4byte gUnk_080D0430 + + thumb_func_start sub_0803CCEC +sub_0803CCEC: @ 0x0803CCEC + push {lr} + adds r2, r0, #0 + adds r2, #0x42 + movs r1, #0 + strb r1, [r2] + bl sub_0803CCD4 + pop {pc} + + thumb_func_start sub_0803CCFC +sub_0803CCFC: @ 0x0803CCFC + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F520 + cmp r0, #0 + bne _0803CD16 + ldrb r0, [r4, #0xd] + cmp r0, #2 + bne _0803CD26 + adds r0, r4, #0 + bl sub_0803CE3C + b _0803CD26 +_0803CD16: + ldr r0, _0803CD28 @ =gUnk_080D043C + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_0803CD26: + pop {r4, pc} + .align 2, 0 +_0803CD28: .4byte gUnk_080D043C + + thumb_func_start sub_0803CD2C +sub_0803CD2C: @ 0x0803CD2C + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x3c + strb r1, [r0, #0x1d] + bx lr + .align 2, 0 + + thumb_func_start sub_0803CD38 +sub_0803CD38: @ 0x0803CD38 + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_0803CD40 +sub_0803CD40: @ 0x0803CD40 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _0803CD66 + movs r0, #2 + rsbs r0, r0, #0 + bl sub_080526A0 + ldr r0, _0803CD68 @ =gUnk_03001160 + movs r1, #0x7a + bl sub_0800449C + bl sub_08079D84 + adds r0, r4, #0 + bl sub_0803CE3C +_0803CD66: + pop {r4, pc} + .align 2, 0 +_0803CD68: .4byte gUnk_03001160 + + thumb_func_start sub_0803CD6C +sub_0803CD6C: @ 0x0803CD6C + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _0803CDA4 @ =0x0000FFFE + strh r0, [r4, #0x36] + ldrb r0, [r4, #0xa] + bl sub_0804B128 + str r0, [r4, #0x54] + str r0, [r4, #0x50] + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x78 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x7a + strh r0, [r1] + adds r0, r4, #0 + movs r1, #4 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0803CE14 + pop {r4, pc} + .align 2, 0 +_0803CDA4: .4byte 0x0000FFFE + + thumb_func_start sub_0803CDA8 +sub_0803CDA8: @ 0x0803CDA8 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldrb r1, [r4, #0x15] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0803CDC0 + adds r0, r4, #0 + bl sub_0806F69C +_0803CDC0: + adds r1, r4, #0 + adds r1, #0x74 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0803CDD6 + adds r0, r4, #0 + bl sub_0803CE14 +_0803CDD6: + pop {r4, pc} + + thumb_func_start sub_0803CDD8 +sub_0803CDD8: @ 0x0803CDD8 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x18] + lsls r0, r1, #0x1e + lsrs r0, r0, #0x1e + movs r2, #1 + eors r0, r2 + movs r5, #4 + rsbs r5, r5, #0 + adds r3, r5, #0 + ands r3, r1 + orrs r3, r0 + strb r3, [r4, #0x18] + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803CE10 + movs r0, #1 + strb r2, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r2, #0x80 + orrs r1, r2 + strb r1, [r4, #0x10] + ands r3, r5 + orrs r3, r0 + strb r3, [r4, #0x18] +_0803CE10: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803CE14 +sub_0803CE14: @ 0x0803CE14 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x54 + adds r2, r4, #0 + adds r2, #0x74 + bl sub_080A2CC0 + ldrb r1, [r4, #0x15] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0803CE38 + lsrs r1, r1, #3 + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC +_0803CE38: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803CE3C +sub_0803CE3C: @ 0x0803CE3C + push {r4, lr} + adds r4, r0, #0 + movs r1, #2 + movs r2, #0 + bl sub_080A29AC + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r2, r4, #0 + adds r2, #0x3a + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x78 + ldrh r0, [r0] + strh r0, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x7a + ldrh r0, [r0] + strh r0, [r4, #0x32] + ldr r0, [r4, #0x50] + str r0, [r4, #0x54] + adds r0, r4, #0 + bl sub_0803CE14 + pop {r4, pc} + + thumb_func_start sub_0803CE80 +sub_0803CE80: @ 0x0803CE80 + push {lr} + ldr r2, _0803CE94 @ =gUnk_080D0448 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0803CE94: .4byte gUnk_080D0448 + + thumb_func_start sub_0803CE98 +sub_0803CE98: @ 0x0803CE98 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r1, r6, #0 + adds r1, #0x84 + ldrh r2, [r1] + movs r5, #0xf0 + lsls r5, r5, #8 + adds r0, r5, #0 + ands r0, r2 + lsrs r0, r0, #5 + strh r0, [r6, #0x24] + ldrh r2, [r1] + ldr r4, _0803CF1C @ =0x00000FFF + adds r0, r4, #0 + ands r0, r2 + strh r0, [r1] + adds r0, r6, #0 + bl sub_0804A720 + movs r0, #1 + strb r0, [r6, #0xc] + adds r3, r6, #0 + adds r3, #0x82 + ldrh r0, [r3] + ands r4, r0 + adds r0, r6, #0 + adds r0, #0x74 + strh r4, [r0] + ldrh r0, [r3] + movs r1, #0x3f + ands r1, r0 + lsls r1, r1, #4 + ldr r2, _0803CF20 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + adds r0, #8 + adds r1, r1, r0 + strh r1, [r6, #0x2e] + ldrh r1, [r3] + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r1 + lsrs r0, r0, #2 + ldrh r1, [r2, #8] + adds r1, #8 + adds r0, r0, r1 + strh r0, [r6, #0x32] + movs r1, #0 + ldrsh r0, [r3, r1] + ands r0, r5 + asrs r0, r0, #0xa + strb r0, [r6, #0x15] + ldrb r0, [r6, #0xa] + lsls r0, r0, #2 + adds r1, r6, #0 + adds r1, #0x78 + strh r0, [r1] + adds r0, r6, #0 + bl sub_0803CFF0 + cmp r0, #0 + beq _0803CF18 + adds r0, r6, #0 + bl sub_0803D0B0 +_0803CF18: + pop {r4, r5, r6, pc} + .align 2, 0 +_0803CF1C: .4byte 0x00000FFF +_0803CF20: .4byte gUnk_03000BF0 + + thumb_func_start sub_0803CF24 +sub_0803CF24: @ 0x0803CF24 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803CFD8 + cmp r0, #0 + beq _0803CF36 + adds r0, r4, #0 + bl sub_0803D024 +_0803CF36: + pop {r4, pc} + + thumb_func_start sub_0803CF38 +sub_0803CF38: @ 0x0803CF38 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803CFF0 + cmp r0, #0 + beq _0803CF4C + adds r0, r4, #0 + bl sub_0803D0B0 + b _0803CF8C +_0803CF4C: + adds r0, r4, #0 + movs r1, #0 + bl sub_08049FDC + cmp r0, #0 + beq _0803CF8C + ldr r0, _0803CF90 @ =gUnk_020000B0 + ldr r0, [r0] + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r3, #0x32 + ldrsh r2, [r0, r3] + adds r0, r4, #0 + movs r3, #0x20 + bl sub_0806FCB8 + cmp r0, #0 + bne _0803CF8C + adds r1, r4, #0 + adds r1, #0x7a + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0803CF8C + adds r0, r4, #0 + bl sub_0803D058 + adds r0, r4, #0 + bl sub_0803D024 +_0803CF8C: + pop {r4, pc} + .align 2, 0 +_0803CF90: .4byte gUnk_020000B0 + + thumb_func_start sub_0803CF94 +sub_0803CF94: @ 0x0803CF94 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x74 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002B0 + cmp r0, #0x76 + bne _0803CFBA + adds r1, r4, #0 + adds r1, #0x80 + movs r0, #0 + strh r0, [r1] + adds r0, r4, #0 + bl sub_0803D024 + b _0803CFD4 +_0803CFBA: + adds r0, r4, #0 + adds r0, #0x7c + ldrh r0, [r0] + cmp r0, #0 + beq _0803CFD4 + adds r0, r4, #0 + bl sub_0803CFD8 + cmp r0, #0 + beq _0803CFD4 + adds r0, r4, #0 + bl sub_0803D024 +_0803CFD4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803CFD8 +sub_0803CFD8: @ 0x0803CFD8 + push {lr} + adds r1, r0, #0 + adds r1, #0x7c + ldrh r0, [r1] + cmp r0, #0 + bne _0803CFE8 + movs r0, #1 + b _0803CFEE +_0803CFE8: + ldrh r0, [r1] + bl sub_0807CBE4 +_0803CFEE: + pop {pc} + + thumb_func_start sub_0803CFF0 +sub_0803CFF0: @ 0x0803CFF0 + push {lr} + adds r1, r0, #0 + adds r1, #0x80 + ldrh r2, [r1] + cmp r2, #0 + beq _0803D01E + adds r0, #0x7c + ldrh r0, [r0] + cmp r2, r0 + bne _0803D016 + adds r0, r2, #0 + bl sub_0807CBE4 + movs r1, #0 + cmp r0, #0 + bne _0803D012 + movs r1, #1 +_0803D012: + adds r0, r1, #0 + b _0803D020 +_0803D016: + ldrh r0, [r1] + bl sub_0807CBE4 + b _0803D020 +_0803D01E: + movs r0, #0 +_0803D020: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803D024 +sub_0803D024: @ 0x0803D024 + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x78 + ldrh r1, [r0] + cmp r1, #0 + beq _0803D03A + adds r0, #2 + b _0803D04E +_0803D03A: + bl sub_08000E50 + ldr r2, _0803D054 @ =gUnk_080D0458 + movs r1, #7 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r1, [r1] + adds r0, r4, #0 + adds r0, #0x7a +_0803D04E: + strh r1, [r0] + pop {r4, pc} + .align 2, 0 +_0803D054: .4byte gUnk_080D0458 + + thumb_func_start sub_0803D058 +sub_0803D058: @ 0x0803D058 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x16 + movs r2, #0 + bl sub_0804A98C + adds r5, r0, #0 + cmp r5, #0 + beq _0803D0AE + ldrh r1, [r4, #0x24] + movs r2, #0x24 + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _0803D078 + strh r1, [r5, #0x24] + b _0803D08A +_0803D078: + bl sub_08000E50 + ldr r2, _0803D0A4 @ =gUnk_080D0468 + movs r1, #3 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r0, [r1] + strh r0, [r5, #0x24] +_0803D08A: + ldrb r1, [r4, #0x15] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0803D0AC + ldr r0, _0803D0A8 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r5, #0x15] + b _0803D0AE + .align 2, 0 +_0803D0A4: .4byte gUnk_080D0468 +_0803D0A8: .4byte gUnk_020000B0 +_0803D0AC: + strb r1, [r5, #0x15] +_0803D0AE: + pop {r4, r5, pc} + + thumb_func_start sub_0803D0B0 +sub_0803D0B0: @ 0x0803D0B0 + push {lr} + movs r1, #3 + strb r1, [r0, #0xc] + adds r1, r0, #0 + adds r1, #0x74 + ldrh r1, [r1] + adds r0, #0x38 + ldrb r2, [r0] + movs r0, #0x75 + bl sub_0807B7D8 + pop {pc} + + thumb_func_start sub_0803D0C8 +sub_0803D0C8: @ 0x0803D0C8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #1 + beq _0803D0F4 + cmp r0, #1 + bgt _0803D0DC + cmp r0, #0 + beq _0803D0E6 + b _0803D12C +_0803D0DC: + cmp r0, #2 + beq _0803D104 + cmp r0, #3 + beq _0803D11C + b _0803D12C +_0803D0E6: + adds r0, r4, #0 + bl sub_0803DFBC + ldr r0, _0803D0F0 @ =gUnk_080D0470 + b _0803D106 + .align 2, 0 +_0803D0F0: .4byte gUnk_080D0470 +_0803D0F4: + adds r0, r4, #0 + bl sub_0803DC58 + ldr r0, _0803D100 @ =gUnk_080D0490 + b _0803D106 + .align 2, 0 +_0803D100: .4byte gUnk_080D0490 +_0803D104: + ldr r0, _0803D118 @ =gUnk_080D0498 +_0803D106: + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _0803D12C + .align 2, 0 +_0803D118: .4byte gUnk_080D0498 +_0803D11C: + ldr r0, _0803D130 @ =gUnk_080D04A0 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_0803D12C: + pop {r4, pc} + .align 2, 0 +_0803D130: .4byte gUnk_080D04A0 + + thumb_func_start sub_0803D134 +sub_0803D134: @ 0x0803D134 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r0, #0x7b + bl sub_0807CBD0 + cmp r0, #0 + beq _0803D146 + bl sub_0805E780 +_0803D146: + adds r0, r5, #0 + bl sub_0804A720 + movs r0, #0 + bl sub_0807CC3C + cmp r0, #0 + bne _0803D158 + b _0803D25A +_0803D158: + ldr r0, _0803D25C @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x41 + bhi _0803D25A + movs r0, #0 + bl sub_0807CD8C + movs r2, #0 + movs r0, #3 + strb r0, [r5, #0xc] + adds r1, r5, #0 + adds r1, #0x74 + movs r0, #0xff + strb r0, [r1] + strb r2, [r5, #0xe] + adds r0, r5, #0 + adds r0, #0x76 + strb r2, [r0] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #0x18] + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r5, #0x15] + adds r3, r5, #0 + adds r3, #0x29 + ldrb r1, [r3] + subs r0, #7 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r3] + str r2, [r5, #0x34] + adds r1, r5, #0 + adds r1, #0x80 + movs r0, #2 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x86 + strb r2, [r0] + adds r1, #5 + movs r0, #0x30 + strb r0, [r1] + subs r1, #1 + subs r0, #0x31 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x87 + strb r2, [r0] + subs r0, #5 + strb r2, [r0] + adds r0, #1 + strb r2, [r0] + ldr r0, [r5, #0x2c] + str r0, [r5, #0x78] + ldr r0, [r5, #0x30] + str r0, [r5, #0x7c] + movs r0, #0x4a + movs r1, #1 + bl sub_0804AA60 + adds r4, r0, #0 + str r5, [r4, #0x50] + str r4, [r5, #0x54] + movs r6, #0 +_0803D1E2: + movs r0, #0x54 + movs r1, #0 + bl sub_0804AA60 + adds r4, r0, #0 + str r5, [r4, #0x50] + adds r0, #0x79 + strb r6, [r0] + adds r6, #1 + cmp r6, #5 + ble _0803D1E2 + movs r6, #0 +_0803D1FA: + movs r0, #0x4a + movs r1, #3 + bl sub_0804AA60 + adds r4, r0, #0 + str r5, [r4, #0x50] + strb r6, [r4, #0xe] + adds r6, #1 + cmp r6, #3 + ble _0803D1FA + movs r6, #0 +_0803D210: + movs r0, #0x54 + movs r1, #1 + bl sub_0804AA60 + adds r4, r0, #0 + str r5, [r4, #0x50] + movs r0, #1 + adds r2, r6, #0 + ands r2, r0 + lsls r2, r2, #6 + ldrb r0, [r4, #0x18] + movs r3, #0x41 + rsbs r3, r3, #0 + adds r1, r3, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + lsls r1, r6, #1 + ldr r0, _0803D260 @ =gUnk_080D04A8 + adds r1, r1, r0 + movs r2, #0 + ldrsb r2, [r1, r2] + lsls r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r1, r3] + lsls r3, r3, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA48 + adds r6, #1 + cmp r6, #1 + ble _0803D210 + adds r0, r5, #0 + movs r1, #0 + bl sub_080042AC +_0803D25A: + pop {r4, r5, r6, pc} + .align 2, 0 +_0803D25C: .4byte gUnk_03003DBC +_0803D260: .4byte gUnk_080D04A8 + + thumb_func_start sub_0803D264 +sub_0803D264: @ 0x0803D264 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0803D318 + subs r0, #1 + strb r0, [r4, #0xe] + movs r7, #0xff + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0 + beq _0803D27E + b _0803D400 +_0803D27E: + adds r5, r4, #0 + adds r5, #0x74 + ldrb r1, [r5] + movs r0, #0x70 + ands r0, r1 + cmp r0, #0 + bne _0803D2E4 + ldr r0, [r4, #0x54] + ldrb r0, [r0, #0xe] + cmp r0, #0 + bne _0803D2DE + adds r0, r4, #0 + bl sub_0803DD78 + adds r0, r4, #0 + adds r0, #0x75 + ldrb r0, [r0] + cmp r0, #0 + beq _0803D2B0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r6, [r5] + movs r0, #0x10 + strb r0, [r4, #0xe] + b _0803D2D6 +_0803D2B0: + adds r0, r4, #0 + adds r0, #0x86 + ldrb r0, [r0] + cmp r0, #0 + bne _0803D2C4 + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + beq _0803D2D6 +_0803D2C4: + bl sub_08000E50 + movs r1, #0x80 + ands r1, r0 + lsrs r1, r1, #3 + movs r0, #8 + orrs r1, r0 + strb r1, [r4, #0x15] + b _0803D400 +_0803D2D6: + ldrb r0, [r4, #0x15] + orrs r0, r7 + strb r0, [r4, #0x15] + b _0803D400 +_0803D2DE: + movs r0, #2 + strb r0, [r4, #0xe] + b _0803D400 +_0803D2E4: + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + adds r1, r4, #0 + adds r1, #0x75 + strb r0, [r1] + strb r6, [r5] + movs r0, #0xc0 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0x15] + orrs r0, r7 + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + b _0803D400 +_0803D318: + adds r1, r4, #0 + adds r1, #0x77 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + movs r6, #0xff + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _0803D3BA + adds r0, r4, #0 + bl sub_0803DEE0 + cmp r0, #1 + beq _0803D366 + cmp r0, #1 + blo _0803D344 + cmp r0, #2 + beq _0803D384 + cmp r0, #3 + beq _0803D374 + b _0803D3BA +_0803D344: + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0xa0 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0x15] + orrs r0, r6 + strb r0, [r4, #0x15] + adds r1, r4, #0 + adds r1, #0x84 + ldrb r0, [r1] + orrs r0, r6 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC + b _0803D3BA +_0803D366: + movs r0, #6 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x74 + strb r5, [r0] + strb r5, [r4, #0xe] + b _0803D3B4 +_0803D374: + movs r0, #5 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x74 + strb r5, [r0] + movs r0, #0x20 + strb r0, [r4, #0xf] + b _0803D3B4 +_0803D384: + adds r0, r4, #0 + adds r0, #0x74 + strb r5, [r0] + movs r0, #0x20 + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x86 + ldrb r0, [r0] + cmp r0, #0 + bne _0803D3A2 + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + beq _0803D3B4 +_0803D3A2: + bl sub_08000E50 + movs r1, #0x80 + ands r1, r0 + lsrs r1, r1, #3 + movs r0, #8 + orrs r1, r0 + strb r1, [r4, #0x15] + b _0803D3BA +_0803D3B4: + ldrb r0, [r4, #0x15] + orrs r0, r6 + strb r0, [r4, #0x15] +_0803D3BA: + ldr r0, [r4, #0x54] + ldrb r0, [r0, #0xe] + cmp r0, #0 + bne _0803D400 + adds r2, r4, #0 + adds r2, #0x85 + ldrb r0, [r2] + adds r1, r0, #1 + strb r1, [r2] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _0803D3FA + movs r0, #0x30 + ands r0, r1 + cmp r0, #0x10 + beq _0803D3F4 + cmp r0, #0x10 + bgt _0803D3E6 + cmp r0, #0 + beq _0803D3EE + b _0803D3FA +_0803D3E6: + cmp r0, #0x20 + beq _0803D3F4 + cmp r0, #0x30 + bne _0803D3FA +_0803D3EE: + ldrh r0, [r4, #0x32] + adds r0, #1 + b _0803D3F8 +_0803D3F4: + ldrh r0, [r4, #0x32] + subs r0, #1 +_0803D3F8: + strh r0, [r4, #0x32] +_0803D3FA: + adds r0, r4, #0 + bl sub_080AEFB4 +_0803D400: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0803D408 +sub_0803D408: @ 0x0803D408 + push {r4, r5, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x74 + ldrb r0, [r2] + cmp r0, #1 + beq _0803D458 + cmp r0, #1 + bgt _0803D420 + cmp r0, #0 + beq _0803D42A + b _0803D558 +_0803D420: + cmp r0, #2 + beq _0803D478 + cmp r0, #3 + beq _0803D4FC + b _0803D558 +_0803D42A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0803D438 + b _0803D558 +_0803D438: + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + movs r0, #0x20 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #3 + bl sub_080042AC + ldr r0, _0803D454 @ =0x0000019B + bl sub_080A3268 + b _0803D558 + .align 2, 0 +_0803D454: .4byte 0x0000019B +_0803D458: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803D558 + movs r0, #2 + strb r0, [r2] + ldrb r1, [r4, #0x18] + subs r0, #6 + ands r0, r1 + strb r0, [r4, #0x18] + movs r0, #0x10 + strb r0, [r4, #0xe] + b _0803D558 +_0803D478: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803D558 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_0803E028 + cmp r0, #0 + bne _0803D4D0 + bl sub_08000E50 + adds r5, r4, #0 + adds r5, #0x81 + ldrb r1, [r5] + adds r1, #1 + movs r2, #3 + ands r0, r2 + adds r1, r1, r0 + strb r1, [r5] + ldrb r0, [r5] + movs r1, #5 + bl __modsi3 + strb r0, [r5] + ldrb r1, [r5] + lsls r1, r1, #2 + ldr r0, _0803D4F4 @ =gUnk_080D04AC + adds r1, r1, r0 + ldr r2, _0803D4F8 @ =gUnk_03000BF0 + ldrh r0, [r1] + ldrh r3, [r2, #6] + adds r0, r0, r3 + adds r0, #0x10 + strh r0, [r4, #0x2e] + ldrh r0, [r1, #2] + ldrh r2, [r2, #8] + adds r0, r0, r2 + adds r0, #0x10 + strh r0, [r4, #0x32] +_0803D4D0: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #0x20 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #4 + bl sub_080042AC + movs r0, #0xf5 + bl sub_080A3268 + b _0803D558 + .align 2, 0 +_0803D4F4: .4byte gUnk_080D04AC +_0803D4F8: .4byte gUnk_03000BF0 +_0803D4FC: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803D558 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #4 + bls _0803D52E + ldr r1, _0803D544 @ =gUnk_03001160 + ldrh r0, [r1, #0x2e] + strh r0, [r4, #0x2e] + ldrh r0, [r1, #0x32] + subs r0, #0x18 + strh r0, [r4, #0x32] +_0803D52E: + adds r1, r4, #0 + adds r1, #0x77 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803D548 + movs r0, #1 + strb r0, [r4, #0xc] + b _0803D54E + .align 2, 0 +_0803D544: .4byte gUnk_03001160 +_0803D548: + movs r0, #0 + strb r0, [r2] + movs r0, #0x10 +_0803D54E: + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC +_0803D558: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + + thumb_func_start sub_0803D560 +sub_0803D560: @ 0x0803D560 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x74 + ldrb r0, [r2] + cmp r0, #2 + beq _0803D62A + cmp r0, #2 + bgt _0803D57C + cmp r0, #0 + beq _0803D5BC + cmp r0, #1 + beq _0803D5F8 + b _0803D650 +_0803D57C: + cmp r0, #0xfe + beq _0803D590 + cmp r0, #0xfe + bgt _0803D58A + cmp r0, #3 + beq _0803D646 + b _0803D650 +_0803D58A: + cmp r0, #0xff + beq _0803D598 + b _0803D650 +_0803D590: + movs r0, #0 + strb r0, [r2] + movs r0, #1 + b _0803D64E +_0803D598: + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #4 + rsbs r0, r0, #0 + cmp r1, r0 + beq _0803D5AC + ldr r0, [r4, #0x34] + ldr r1, _0803D5B8 @ =0xFFFFE000 + adds r0, r0, r1 + str r0, [r4, #0x34] +_0803D5AC: + ldrb r0, [r4, #0xe] + cmp r0, #2 + bne _0803D650 + movs r0, #0xfe + strb r0, [r2] + b _0803D650 + .align 2, 0 +_0803D5B8: .4byte 0xFFFFE000 +_0803D5BC: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803D650 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x75 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + movs r1, #0x20 + cmp r0, #0 + beq _0803D5E0 + movs r1, #0x14 +_0803D5E0: + strb r1, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x86 + ldrb r0, [r0] + adds r0, #1 + asrs r0, r0, #1 + lsls r0, r0, #1 + adds r0, #2 + adds r1, r4, #0 + adds r1, #0x80 + strb r0, [r1] + b _0803D650 +_0803D5F8: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803D650 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x75 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0803D620 + movs r0, #0xd8 + lsls r0, r0, #1 + bl sub_080A3268 +_0803D620: + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC + b _0803D650 +_0803D62A: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803D650 + movs r0, #3 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + b _0803D650 +_0803D646: + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r2] +_0803D64E: + strb r0, [r4, #0xe] +_0803D650: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + + thumb_func_start sub_0803D658 +sub_0803D658: @ 0x0803D658 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r3, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803D68E + movs r2, #1 + strb r2, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x84 + ldrb r0, [r1] + orrs r0, r3 + strb r0, [r1] + strb r2, [r4, #0xe] + ldrb r0, [r4, #0x15] + adds r0, #0x10 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + b _0803D6EE +_0803D68E: + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0803D6EE + movs r0, #0xef + ands r0, r1 + strb r0, [r2] + adds r5, r4, #0 + adds r5, #0x84 + ldrb r0, [r5] + cmp r0, #0xff + bne _0803D6C8 + ldr r1, _0803D6F8 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + adds r0, #2 + movs r1, #0x1c + ands r0, r1 + ldr r1, _0803D6FC @ =gUnk_080D04C0 + lsrs r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r5] + movs r0, #0 + strb r0, [r4, #0xf] +_0803D6C8: + ldrb r0, [r4, #0xf] + cmp r0, #0xf + bhi _0803D6EE + ldrb r2, [r5] + adds r0, r4, #0 + movs r1, #0x1a + bl sub_0804A98C + adds r1, r0, #0 + cmp r1, #0 + beq _0803D6EE + ldrb r0, [r4, #0xf] + strb r0, [r1, #0xf] + str r4, [r1, #0x50] + ldrh r0, [r4, #0x36] + strh r0, [r1, #0x36] + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] +_0803D6EE: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + .align 2, 0 +_0803D6F8: .4byte gUnk_03001160 +_0803D6FC: .4byte gUnk_080D04C0 + + thumb_func_start sub_0803D700 +sub_0803D700: @ 0x0803D700 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + bne _0803D720 + movs r0, #1 + strb r0, [r4, #0xc] + strb r0, [r4, #0xe] + movs r0, #0xff + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + b _0803D82E +_0803D720: + adds r2, r4, #0 + adds r2, #0x74 + ldrb r0, [r2] + adds r6, r2, #0 + cmp r0, #1 + beq _0803D764 + cmp r0, #1 + bgt _0803D736 + cmp r0, #0 + beq _0803D744 + b _0803D73E +_0803D736: + cmp r0, #2 + beq _0803D78E + cmp r0, #3 + beq _0803D7FA +_0803D73E: + adds r5, r4, #0 + adds r5, #0x87 + b _0803D81C +_0803D744: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + adds r5, r4, #0 + adds r5, #0x87 + cmp r0, #0 + bne _0803D81C + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC + b _0803D81C +_0803D764: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + adds r5, r4, #0 + adds r5, #0x87 + cmp r0, #0 + beq _0803D81C + movs r0, #2 + strb r0, [r2] + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + adds r0, #0x40 + strb r0, [r4, #0xf] + movs r0, #0xf4 + bl sub_080A3268 + b _0803D81C +_0803D78E: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + adds r5, r4, #0 + adds r5, #0x87 + cmp r0, #0 + bne _0803D81C + adds r0, r4, #0 + adds r0, #0x86 + ldrb r0, [r0] + cmp r0, #1 + bls _0803D7E4 + ldrb r0, [r5] + cmp r0, #3 + bhi _0803D7E4 + bl sub_08000E50 + movs r1, #0x10 + ands r1, r0 + cmp r1, #0 + beq _0803D7E4 + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + adds r0, #0x40 + strb r0, [r4, #0xf] + ldr r1, _0803D7E0 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + movs r1, #0x10 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + b _0803D81A + .align 2, 0 +_0803D7E0: .4byte gUnk_03001160 +_0803D7E4: + ldrb r0, [r6] + adds r0, #1 + movs r1, #0 + strb r0, [r6] + strb r1, [r5] + movs r0, #0x30 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_080042AC + b _0803D81C +_0803D7FA: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + movs r3, #0xff + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + adds r5, r4, #0 + adds r5, #0x87 + cmp r1, #0 + bne _0803D81C + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r2] + strb r0, [r4, #0xe] + ldrb r0, [r4, #0x15] + orrs r0, r3 +_0803D81A: + strb r0, [r4, #0x15] +_0803D81C: + ldrb r0, [r5] + cmp r0, #0 + beq _0803D828 + adds r0, r4, #0 + bl sub_080AEFB4 +_0803D828: + adds r0, r4, #0 + bl sub_080042B8 +_0803D82E: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0803D830 +sub_0803D830: @ 0x0803D830 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + bne _0803D844 + movs r0, #1 + strb r0, [r5, #0xc] + strb r0, [r5, #0xe] + b _0803D8F4 +_0803D844: + adds r4, r5, #0 + adds r4, #0x74 + ldrb r0, [r4] + cmp r0, #1 + beq _0803D870 + cmp r0, #1 + bgt _0803D858 + cmp r0, #0 + beq _0803D862 + b _0803D8EE +_0803D858: + cmp r0, #2 + beq _0803D8C2 + cmp r0, #3 + beq _0803D8CE + b _0803D8EE +_0803D862: + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _0803D8EE + movs r0, #1 + strb r0, [r4] + movs r0, #0x70 + b _0803D8EC +_0803D870: + ldrb r0, [r5, #0xe] + subs r1, r0, #1 + strb r1, [r5, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _0803D8B0 + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + movs r0, #0xa8 + lsls r0, r0, #1 + bl sub_080A3268 + adds r0, r5, #0 + movs r1, #0x18 + movs r2, #0 + bl sub_0804A98C + adds r4, r0, #0 + cmp r4, #0 + beq _0803D8EE + ldr r3, _0803D8AC @ =0xFFF00000 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0 + bl sub_0806FA48 + str r5, [r4, #0x50] + b _0803D8EE + .align 2, 0 +_0803D8AC: .4byte 0xFFF00000 +_0803D8B0: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x40 + bne _0803D8EE + movs r0, #0xcb + lsls r0, r0, #1 + bl sub_080A3268 + b _0803D8EE +_0803D8C2: + ldrb r0, [r5, #0xf] + cmp r0, #0 + beq _0803D8EE + movs r0, #0 + strb r0, [r5, #0xf] + b _0803D8EE +_0803D8CE: + ldrb r0, [r5, #0xf] + cmp r0, #0 + bne _0803D8DE + movs r0, #1 + strb r0, [r5, #0xf] + ldr r0, _0803D8F8 @ =0x0000014F + bl sub_080A3268 +_0803D8DE: + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _0803D8EE + movs r1, #0 + movs r0, #1 + strb r0, [r5, #0xc] + strb r1, [r4] +_0803D8EC: + strb r0, [r5, #0xe] +_0803D8EE: + adds r0, r5, #0 + bl sub_080042B8 +_0803D8F4: + pop {r4, r5, pc} + .align 2, 0 +_0803D8F8: .4byte 0x0000014F + + thumb_func_start sub_0803D8FC +sub_0803D8FC: @ 0x0803D8FC + push {r4, r5, lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + cmp r0, #0 + beq _0803D968 + subs r1, r0, #1 + strb r1, [r2, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _0803D918 + movs r0, #1 + bl sub_0807CD10 + b _0803D968 +_0803D918: + movs r0, #7 + ands r1, r0 + cmp r1, #0 + bne _0803D968 + adds r0, r2, #0 + movs r1, #2 + movs r2, #0 + bl sub_080A29AC + adds r4, r0, #0 + cmp r4, #0 + beq _0803D968 + bl sub_08000E50 + ldr r1, _0803D96C @ =0x00003F3F + ands r0, r1 + movs r3, #0xff + adds r1, r0, #0 + ands r1, r3 + ldr r5, _0803D970 @ =0x0000FFE0 + adds r2, r5, #0 + adds r1, r2, r1 + ldrh r5, [r4, #0x2e] + adds r1, r1, r5 + strh r1, [r4, #0x2e] + lsrs r0, r0, #8 + ands r0, r3 + adds r2, r2, r0 + ldrh r0, [r4, #0x32] + adds r2, r2, r0 + strh r2, [r4, #0x32] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r2] +_0803D968: + pop {r4, r5, pc} + .align 2, 0 +_0803D96C: .4byte 0x00003F3F +_0803D970: .4byte 0x0000FFE0 + + thumb_func_start sub_0803D974 +sub_0803D974: @ 0x0803D974 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r5, r4, #0 + adds r5, #0x74 + strb r1, [r5] + adds r2, r4, #0 + adds r2, #0x75 + strb r0, [r2] + strb r1, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #0xff + strb r0, [r1] + ldr r0, [r4, #0x50] + movs r3, #0x80 + lsls r3, r3, #9 + adds r1, r4, #0 + movs r2, #0 + bl sub_0806FA48 + movs r0, #0x4a + movs r1, #2 + bl sub_0804AA60 + str r4, [r0, #0x50] + ldr r1, [r4, #0x50] + str r1, [r0, #0x54] + ldrb r1, [r5] + adds r0, r4, #0 + bl sub_080042AC + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803D9BC +sub_0803D9BC: @ 0x0803D9BC + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + adds r2, r4, #0 + adds r2, #0x74 + ldrb r0, [r2] + cmp r0, #0 + bne _0803D9E2 + adds r0, r5, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + bne _0803DA44 + movs r0, #1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x30 + b _0803D9F6 +_0803D9E2: + adds r0, r5, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + beq _0803DA02 + movs r0, #0 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x2f +_0803D9F6: + strb r0, [r1] + ldrb r1, [r2] + adds r0, r4, #0 + bl sub_080042AC + b _0803DA44 +_0803DA02: + adds r2, r4, #0 + adds r2, #0x41 + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803DA2E + adds r0, r4, #0 + adds r0, #0x3d + ldrb r1, [r0] + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + ble _0803DA2E + adds r0, r5, #0 + adds r0, #0x3d + strb r1, [r0] + ldrb r0, [r2] + adds r2, r5, #0 + adds r2, #0x41 + strb r0, [r2] +_0803DA2E: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0803DA44 + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC +_0803DA44: + adds r1, r4, #0 + adds r1, #0x75 + ldrb r0, [r1] + cmp r0, #0 + bne _0803DA60 + ldrb r0, [r5, #0xc] + cmp r0, #2 + beq _0803DA72 + movs r0, #1 + strb r0, [r1] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + b _0803DA70 +_0803DA60: + ldrb r0, [r5, #0xc] + cmp r0, #2 + bne _0803DA72 + movs r0, #0 + strb r0, [r1] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 +_0803DA70: + strb r0, [r4, #0x10] +_0803DA72: + ldrb r1, [r5, #0x18] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1e + ldrb r2, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r5, #0 + adds r0, #0x62 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x62 + strb r0, [r1] + ldr r0, [r4, #0x50] + movs r3, #0x80 + lsls r3, r3, #9 + adds r1, r4, #0 + movs r2, #0 + bl sub_0806FA48 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803DAA8 +sub_0803DAA8: @ 0x0803DAA8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r0, [r0, #0x50] + movs r3, #0 + movs r2, #1 + strb r2, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x74 + strb r2, [r1] + adds r1, #1 + strb r3, [r1] + adds r2, r4, #0 + adds r2, #0x63 + movs r1, #0xfe + strb r1, [r2] + movs r1, #0xff + strb r1, [r4, #0x15] + movs r3, #0x80 + lsls r3, r3, #0xa + adds r1, r4, #0 + movs r2, #0 + bl sub_0806FA48 + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803DAE4 +sub_0803DAE4: @ 0x0803DAE4 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + adds r0, r5, #0 + adds r0, #0x74 + ldrb r2, [r0] + cmp r2, #0 + bne _0803DB3E + adds r1, r4, #0 + adds r1, #0x74 + ldrb r0, [r1] + cmp r0, #0 + beq _0803DB00 + strb r2, [r1] +_0803DB00: + ldr r0, [r5, #0x50] + ldrb r1, [r0, #0x15] + cmp r1, #0xff + beq _0803DB28 + adds r2, r4, #0 + adds r2, #0x75 + ldrb r0, [r2] + cmp r0, #0 + bne _0803DB16 + movs r0, #1 + strb r0, [r2] +_0803DB16: + ldrb r0, [r4, #0x15] + cmp r1, r0 + beq _0803DB54 + strb r1, [r4, #0x15] + lsrs r1, r1, #3 + adds r0, r4, #0 + bl sub_080042AC + b _0803DB54 +_0803DB28: + adds r1, r4, #0 + adds r1, #0x75 + ldrb r0, [r1] + cmp r0, #0 + beq _0803DB54 + strb r2, [r1] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + b _0803DB54 +_0803DB3E: + adds r1, r4, #0 + adds r1, #0x74 + ldrb r0, [r1] + cmp r0, #0 + bne _0803DB54 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC +_0803DB54: + ldrb r1, [r5, #0x18] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1e + ldrb r2, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r5, #0 + adds r0, #0x62 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x62 + strb r0, [r1] + ldr r0, [r5, #0x50] + movs r3, #0x80 + lsls r3, r3, #0xa + adds r1, r4, #0 + movs r2, #0 + bl sub_0806FA48 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + + thumb_func_start sub_0803DB88 +sub_0803DB88: @ 0x0803DB88 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x74 + strb r1, [r2] + movs r0, #0xff + strb r0, [r4, #0x15] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r1] + ldrb r1, [r2] + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0803DC0C + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803DBB8 +sub_0803DBB8: @ 0x0803DBB8 + push {r4, lr} + adds r4, r0, #0 + ldr r2, [r4, #0x50] + ldrb r0, [r2, #0x15] + cmp r0, #0xff + beq _0803DBE8 + adds r1, r4, #0 + adds r1, #0x74 + ldrb r0, [r1] + cmp r0, #0 + bne _0803DBD2 + movs r0, #1 + strb r0, [r1] +_0803DBD2: + ldrb r0, [r2, #0x15] + lsls r1, r0, #0x18 + ldrb r2, [r4, #0x15] + cmp r0, r2 + beq _0803DC02 + strb r0, [r4, #0x15] + lsrs r1, r1, #0x1b + adds r0, r4, #0 + bl sub_080042AC + b _0803DC02 +_0803DBE8: + adds r1, r4, #0 + adds r1, #0x74 + ldrb r0, [r1] + cmp r0, #0 + beq _0803DC02 + movs r0, #0 + strb r0, [r1] + movs r0, #0xff + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC +_0803DC02: + adds r0, r4, #0 + bl sub_0803DC0C + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803DC0C +sub_0803DC0C: @ 0x0803DC0C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldrb r5, [r4, #0xe] + lsls r5, r5, #1 + ldr r1, _0803DC54 @ =gUnk_080D04C8 + adds r5, r5, r1 + ldrb r2, [r0, #0x18] + lsls r2, r2, #0x1e + lsrs r2, r2, #0x1e + ldrb r3, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r3 + orrs r1, r2 + strb r1, [r4, #0x18] + adds r1, r0, #0 + adds r1, #0x62 + ldrb r1, [r1] + adds r2, r4, #0 + adds r2, #0x62 + strb r1, [r2] + movs r2, #0 + ldrsb r2, [r5, r2] + lsls r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r5, r3] + adds r3, #1 + lsls r3, r3, #0x10 + adds r1, r4, #0 + bl sub_0806FA48 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + .align 2, 0 +_0803DC54: .4byte gUnk_080D04C8 + + thumb_func_start sub_0803DC58 +sub_0803DC58: @ 0x0803DC58 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0x30 + beq _0803DC66 + b _0803DD74 +_0803DC66: + ldr r5, [r4, #0x50] + adds r2, r4, #0 + adds r2, #0x77 + movs r7, #0 + strb r7, [r2] + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + mov ip, r0 + ands r0, r1 + adds r6, r2, #0 + cmp r0, #0 + beq _0803DD20 + ldr r0, _0803DCE4 @ =gUnk_080D04D0 + adds r3, r5, #0 + adds r3, #0x86 + ldrb r2, [r3] + adds r0, r2, r0 + adds r1, r4, #0 + adds r1, #0x45 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bls _0803DCFA + adds r0, r2, #1 + strb r0, [r3] + movs r3, #0xff + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bls _0803DCF0 + ldrb r2, [r4, #0x10] + movs r1, #0x7f + adds r0, r1, #0 + ands r0, r2 + strb r0, [r4, #0x10] + movs r0, #7 + strb r0, [r5, #0xc] + ldrb r0, [r5, #0x10] + ands r1, r0 + strb r1, [r5, #0x10] + mov r2, ip + strb r2, [r5, #0xe] + adds r0, r5, #0 + adds r0, #0x62 + strb r7, [r0] + ldrb r0, [r5, #0x15] + orrs r0, r3 + strb r0, [r5, #0x15] + strb r7, [r4, #0xe] + ldr r0, _0803DCE8 @ =0x80100000 + bl sub_080A3268 + ldr r0, _0803DCEC @ =gUnk_02033A90 + movs r2, #0x86 + lsls r2, r2, #4 + adds r1, r0, r2 + adds r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] + b _0803DD74 + .align 2, 0 +_0803DCE4: .4byte gUnk_080D04D0 +_0803DCE8: .4byte 0x80100000 +_0803DCEC: .4byte gUnk_02033A90 +_0803DCF0: + movs r0, #1 + strb r0, [r4, #0xe] + ldrb r0, [r6] + orrs r0, r3 + strb r0, [r6] +_0803DCFA: + adds r0, r4, #0 + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + ble _0803DD20 + ldr r0, _0803DD50 @ =0x00000127 + bl sub_080A3268 + movs r0, #0xc + movs r1, #1 + bl sub_08080964 + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _0803DD26 + movs r0, #0x48 + strb r0, [r4, #0xe] +_0803DD20: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0803DD74 +_0803DD26: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r2, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803DD74 + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x2f + strb r0, [r1] + adds r1, #0x35 + movs r0, #1 + strb r0, [r1] + ldrb r0, [r6] + cmp r0, #0 + bne _0803DD54 + adds r1, r5, #0 + adds r1, #0x74 + movs r0, #0xf0 + b _0803DD64 + .align 2, 0 +_0803DD50: .4byte 0x00000127 +_0803DD54: + adds r1, r5, #0 + adds r1, #0x74 + movs r0, #0x70 + strb r0, [r1] + adds r1, r4, #0 + adds r1, #0x45 + ldrb r0, [r1] + orrs r0, r2 +_0803DD64: + strb r0, [r1] + movs r0, #1 + strb r0, [r5, #0xc] + strb r0, [r5, #0xe] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC +_0803DD74: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0803DD78 +sub_0803DD78: @ 0x0803DD78 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08000E50 + movs r1, #0x7c + ands r1, r0 + lsrs r2, r1, #2 + adds r0, r4, #0 + adds r0, #0x86 + ldrb r0, [r0] + cmp r0, #1 + beq _0803DDFE + cmp r0, #1 + bgt _0803DD9A + cmp r0, #0 + beq _0803DDA0 + b _0803DDB6 +_0803DD9A: + cmp r0, #2 + beq _0803DE5C + b _0803DDB6 +_0803DDA0: + adds r0, r4, #0 + adds r0, #0x80 + ldrb r1, [r0] + cmp r1, #0 + bne _0803DDBC + subs r0, #0xb + strb r1, [r0] + adds r1, r4, #0 + adds r1, #0x77 + movs r0, #0x50 + strb r0, [r1] +_0803DDB6: + adds r5, r4, #0 + adds r5, #0x83 + b _0803DED0 +_0803DDBC: + adds r0, r4, #0 + adds r0, #0x83 + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #5 + bls _0803DDCA + b _0803DED0 +_0803DDCA: + lsls r0, r1, #2 + ldr r1, _0803DDD4 @ =_0803DDD8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803DDD4: .4byte _0803DDD8 +_0803DDD8: @ jump table + .4byte _0803DDF0 @ case 0 + .4byte _0803DEC2 @ case 1 + .4byte _0803DDF0 @ case 2 + .4byte _0803DEC2 @ case 3 + .4byte _0803DDF0 @ case 4 + .4byte _0803DEC2 @ case 5 +_0803DDF0: + adds r1, r4, #0 + adds r1, #0x75 + movs r0, #0 + strb r0, [r1] + adds r1, #2 + movs r0, #0x50 + b _0803DECE +_0803DDFE: + adds r0, r4, #0 + adds r0, #0x83 + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #5 + bhi _0803DED0 + lsls r0, r1, #2 + ldr r1, _0803DE14 @ =_0803DE18 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803DE14: .4byte _0803DE18 +_0803DE18: @ jump table + .4byte _0803DE98 @ case 0 + .4byte _0803DEC2 @ case 1 + .4byte _0803DE30 @ case 2 + .4byte _0803DEC2 @ case 3 + .4byte _0803DE46 @ case 4 + .4byte _0803DEC2 @ case 5 +_0803DE30: + movs r1, #8 + ands r1, r2 + cmp r1, #0 + bne _0803DEC2 + adds r0, r4, #0 + adds r0, #0x75 + strb r1, [r0] + adds r1, r4, #0 + adds r1, #0x77 + movs r0, #0x50 + b _0803DECE +_0803DE46: + movs r0, #8 + ands r2, r0 + cmp r2, #0 + beq _0803DE98 + adds r1, r4, #0 + adds r1, #0x75 + movs r0, #0 + strb r0, [r1] + adds r1, #2 + movs r0, #0x50 + b _0803DECE +_0803DE5C: + adds r0, r4, #0 + adds r0, #0x83 + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #5 + bhi _0803DED0 + lsls r0, r1, #2 + ldr r1, _0803DE74 @ =_0803DE78 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803DE74: .4byte _0803DE78 +_0803DE78: @ jump table + .4byte _0803DE98 @ case 0 + .4byte _0803DEC2 @ case 1 + .4byte _0803DE90 @ case 2 + .4byte _0803DEC2 @ case 3 + .4byte _0803DEA6 @ case 4 + .4byte _0803DEC2 @ case 5 +_0803DE90: + movs r0, #0xf + ands r2, r0 + cmp r2, #2 + bls _0803DEC2 +_0803DE98: + adds r0, r4, #0 + adds r0, #0x75 + movs r1, #1 + strb r1, [r0] + adds r0, #2 + strb r1, [r0] + b _0803DED0 +_0803DEA6: + cmp r2, #9 + bls _0803DEC2 + adds r1, r4, #0 + adds r1, #0x75 + movs r0, #2 + strb r0, [r1] + bl sub_08000E50 + movs r1, #1 + ands r0, r1 + adds r0, #2 + adds r1, r4, #0 + adds r1, #0x77 + b _0803DECE +_0803DEC2: + adds r1, r4, #0 + adds r1, #0x75 + movs r0, #0 + strb r0, [r1] + adds r1, #2 + movs r0, #1 +_0803DECE: + strb r0, [r1] +_0803DED0: + ldrb r0, [r5] + adds r0, #1 + movs r1, #6 + bl __modsi3 + strb r0, [r5] + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803DEE0 +sub_0803DEE0: @ 0x0803DEE0 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #2 + bl sub_08000E50 + movs r1, #0xf8 + ands r1, r0 + lsrs r2, r1, #3 + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + beq _0803DFB8 + adds r0, r4, #0 + adds r0, #0x86 + ldrb r0, [r0] + cmp r0, #1 + beq _0803DF28 + cmp r0, #1 + bgt _0803DF0E + cmp r0, #0 + beq _0803DF14 + b _0803DFB8 +_0803DF0E: + cmp r0, #2 + beq _0803DF68 + b _0803DFB8 +_0803DF14: + adds r0, r4, #0 + adds r0, #0x82 + ldrb r1, [r0] + movs r5, #1 + ands r5, r1 + adds r1, #1 + movs r2, #3 + ands r1, r2 + strb r1, [r0] + b _0803DFB8 +_0803DF28: + adds r0, r4, #0 + adds r0, #0x82 + ldrb r1, [r0] + adds r4, r0, #0 + cmp r1, #4 + bhi _0803DFAC + lsls r0, r1, #2 + ldr r1, _0803DF40 @ =_0803DF44 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803DF40: .4byte _0803DF44 +_0803DF44: @ jump table + .4byte _0803DF9E @ case 0 + .4byte _0803DF58 @ case 1 + .4byte _0803DF9E @ case 2 + .4byte _0803DF58 @ case 3 + .4byte _0803DF5C @ case 4 +_0803DF58: + movs r5, #1 + b _0803DFAC +_0803DF5C: + movs r0, #8 + ands r2, r0 + movs r5, #0 + cmp r2, #0 + beq _0803DFAC + b _0803DF9E +_0803DF68: + adds r0, r4, #0 + adds r0, #0x82 + ldrb r1, [r0] + adds r4, r0, #0 + cmp r1, #4 + bhi _0803DFAC + lsls r0, r1, #2 + ldr r1, _0803DF80 @ =_0803DF84 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803DF80: .4byte _0803DF84 +_0803DF84: @ jump table + .4byte _0803DF9E @ case 0 + .4byte _0803DF98 @ case 1 + .4byte _0803DFA2 @ case 2 + .4byte _0803DF9E @ case 3 + .4byte _0803DFAA @ case 4 +_0803DF98: + movs r5, #0 + cmp r2, #5 + bls _0803DFAC +_0803DF9E: + movs r5, #3 + b _0803DFAC +_0803DFA2: + movs r5, #0 + cmp r2, #9 + bhi _0803DFAC + b _0803DF9E +_0803DFAA: + movs r5, #0 +_0803DFAC: + ldrb r0, [r4] + adds r0, #1 + movs r1, #5 + bl __modsi3 + strb r0, [r4] +_0803DFB8: + adds r0, r5, #0 + pop {r4, r5, pc} + + thumb_func_start sub_0803DFBC +sub_0803DFBC: @ 0x0803DFBC + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + beq _0803DFCE + ldr r0, [r4, #0x2c] + str r0, [r4, #0x78] + ldr r0, [r4, #0x30] + str r0, [r4, #0x7c] +_0803DFCE: + adds r5, r4, #0 + adds r5, #0x76 + ldrb r0, [r5] + cmp r0, #0 + bne _0803DFFC + ldrb r0, [r4, #0x15] + cmp r0, #0xff + beq _0803E000 + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _0803E000 + adds r0, r4, #0 + bl sub_08049EE4 + movs r1, #0x10 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r4, #0x15] + movs r0, #0x10 + b _0803DFFE +_0803DFFC: + subs r0, #1 +_0803DFFE: + strb r0, [r5] +_0803E000: + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + bne _0803E022 + ldrb r0, [r4, #0x14] + adds r0, #1 + movs r1, #3 + ands r0, r1 + strb r0, [r4, #0x14] + ldr r1, _0803E024 @ =gUnk_080D04D3 + ldrb r0, [r4, #0x14] + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x62 + strb r1, [r0] +_0803E022: + pop {r4, r5, pc} + .align 2, 0 +_0803E024: .4byte gUnk_080D04D3 + + thumb_func_start sub_0803E028 +sub_0803E028: @ 0x0803E028 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #0 + adds r0, #0x75 + ldrb r0, [r0] + cmp r0, #2 + beq _0803E046 + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _0803E046 + movs r0, #0 + b _0803E082 +_0803E046: + adds r0, r4, #0 + adds r0, #0x77 + ldrb r0, [r0] + cmp r0, #1 + bne _0803E080 + ldr r2, _0803E084 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + adds r1, r0, #0 + adds r1, #0x58 + ldr r0, _0803E088 @ =gUnk_03001160 + movs r3, #0x2e + ldrsh r0, [r0, r3] + cmp r1, r0 + bgt _0803E080 + ldrh r2, [r2, #8] + adds r1, r2, #0 + adds r1, #0x58 + cmp r1, r0 + bgt _0803E080 + adds r1, r2, #0 + adds r1, #0xf8 + cmp r1, r0 + blt _0803E080 + adds r1, r4, #0 + adds r1, #0x81 + ldrb r0, [r1] + adds r0, #5 + strb r0, [r1] + movs r5, #1 +_0803E080: + adds r0, r5, #0 +_0803E082: + pop {r4, r5, pc} + .align 2, 0 +_0803E084: .4byte gUnk_03000BF0 +_0803E088: .4byte gUnk_03001160 + + thumb_func_start sub_0803E08C +sub_0803E08C: @ 0x0803E08C + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_0803E4A0 + cmp r0, #0 + beq _0803E0AA + ldrb r0, [r5, #0x10] + movs r1, #0x7f + ands r1, r0 + movs r0, #0 + strb r1, [r5, #0x10] + adds r1, r5, #0 + adds r1, #0x45 + strb r0, [r1] + str r0, [r5, #0x50] +_0803E0AA: + ldr r4, _0803E0C0 @ =gUnk_080D0648 + adds r0, r5, #0 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_0803E0C0: .4byte gUnk_080D0648 + + thumb_func_start sub_0803E0C4 +sub_0803E0C4: @ 0x0803E0C4 + push {lr} + ldr r2, _0803E0D8 @ =gUnk_080D0660 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0803E0D8: .4byte gUnk_080D0660 + + thumb_func_start sub_0803E0DC +sub_0803E0DC: @ 0x0803E0DC + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x80 + bne _0803E16C + adds r0, r5, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _0803E158 + movs r0, #5 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x10] + movs r6, #0x7f + adds r0, r6, #0 + ands r0, r1 + strb r0, [r5, #0x10] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldr r3, _0803E154 @ =gUnk_03001160 + ldrb r1, [r3, #0x10] + adds r0, r6, #0 + ands r0, r1 + strb r0, [r3, #0x10] + ldrb r2, [r5, #0x1b] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r4, [r3, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r4 + orrs r0, r2 + strb r0, [r3, #0x1b] + ldrb r0, [r5, #0x19] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r3, #0x19] + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0x19] + adds r0, r5, #0 + bl sub_0803E444 + movs r0, #2 + bl sub_08078A90 + ldr r2, [r5, #0x50] + cmp r2, #0 + beq _0803E16C + ldrb r1, [r2, #0x10] + adds r0, r6, #0 + ands r0, r1 + b _0803E16A + .align 2, 0 +_0803E154: .4byte gUnk_03001160 +_0803E158: + ldr r2, _0803E178 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + ldr r1, _0803E17C @ =0xFFFFFEFF + ands r0, r1 + str r0, [r2, #0x30] + ldr r2, _0803E180 @ =gUnk_03001160 + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 +_0803E16A: + strb r0, [r2, #0x10] +_0803E16C: + ldr r1, _0803E184 @ =gUnk_080D0648 + adds r0, r5, #0 + bl sub_0804AA30 + pop {r4, r5, r6, pc} + .align 2, 0 +_0803E178: .4byte gUnk_03003F80 +_0803E17C: .4byte 0xFFFFFEFF +_0803E180: .4byte gUnk_03001160 +_0803E184: .4byte gUnk_080D0648 + + thumb_func_start sub_0803E188 +sub_0803E188: @ 0x0803E188 + push {lr} + adds r3, r0, #0 + ldr r2, [r3, #0x50] + cmp r2, #0 + beq _0803E19C + ldrb r0, [r2, #0xf] + subs r0, #1 + movs r1, #0 + strb r0, [r2, #0xf] + str r1, [r3, #0x50] +_0803E19C: + adds r0, r3, #0 + bl sub_0804A7D4 + pop {pc} + + thumb_func_start nullsub_19 +nullsub_19: @ 0x0803E1A4 + bx lr + .align 2, 0 + + thumb_func_start sub_0803E1A8 +sub_0803E1A8: @ 0x0803E1A8 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xa] + cmp r0, #0 + bne _0803E1F8 + movs r0, #0x4b + movs r1, #1 + bl sub_0804AA60 + cmp r0, #0 + beq _0803E250 + str r5, [r0, #0x50] + str r0, [r5, #0x54] + ldrb r0, [r5, #0xb] + cmp r0, #0 + bne _0803E1D8 + movs r0, #1 + strb r0, [r5, #0xc] + ldr r0, _0803E1D4 @ =0x0000FFE8 + strh r0, [r5, #0x36] + b _0803E1E8 + .align 2, 0 +_0803E1D4: .4byte 0x0000FFE8 +_0803E1D8: + movs r0, #9 + strb r0, [r5, #0xc] + ldr r0, _0803E1F4 @ =0x0000FF80 + strh r0, [r5, #0x36] + adds r1, r5, #0 + adds r1, #0x3b + movs r0, #1 + strb r0, [r1] +_0803E1E8: + adds r0, r5, #0 + movs r1, #0 + bl sub_08004260 + b _0803E250 + .align 2, 0 +_0803E1F4: .4byte 0x0000FF80 +_0803E1F8: + movs r0, #8 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + adds r1, r5, #0 + adds r1, #0x63 + movs r0, #1 + strb r0, [r1] + ldr r4, [r5, #0x50] + ldrb r2, [r4, #0x1b] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r5, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r5, #0x1b] + ldrb r0, [r4, #0x19] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r5, #0x19] + ands r1, r2 + orrs r1, r0 + strb r1, [r5, #0x19] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldr r0, [r5, #0x50] + ldr r3, _0803E254 @ =0xFFFF0000 + adds r1, r5, #0 + movs r2, #0 + bl sub_0806FA48 + adds r0, r5, #0 + movs r1, #1 + bl sub_08004260 +_0803E250: + pop {r4, r5, pc} + .align 2, 0 +_0803E254: .4byte 0xFFFF0000 + + thumb_func_start sub_0803E258 +sub_0803E258: @ 0x0803E258 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803E480 + adds r0, r4, #0 + movs r1, #0 + movs r2, #8 + bl sub_08049F64 + cmp r0, #0 + beq _0803E280 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0xa + strb r0, [r4, #0xe] + ldr r0, [r4, #0x54] + movs r1, #2 + bl sub_08004260 + b _0803E29C +_0803E280: + ldr r0, _0803E2A4 @ =gUnk_020000B0 + ldr r1, [r0] + cmp r1, #0 + beq _0803E29C + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 + adds r0, r4, #0 + bl sub_0806F69C +_0803E29C: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 +_0803E2A4: .4byte gUnk_020000B0 + + thumb_func_start sub_0803E2A8 +sub_0803E2A8: @ 0x0803E2A8 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + cmp r0, #0 + beq _0803E2B8 + subs r0, #1 + strb r0, [r1, #0xe] + b _0803E2C8 +_0803E2B8: + ldrh r0, [r1, #0x36] + adds r0, #1 + strh r0, [r1, #0x36] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0803E2C8 + movs r0, #3 + strb r0, [r1, #0xc] +_0803E2C8: + adds r0, r1, #0 + bl sub_08004274 + pop {pc} + + thumb_func_start sub_0803E2D0 +sub_0803E2D0: @ 0x0803E2D0 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x54] + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803E312 + ldrh r0, [r4, #0x36] + subs r0, #1 + strh r0, [r4, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x18 + rsbs r1, r1, #0 + cmp r0, r1 + bgt _0803E30C + movs r0, #4 + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r1, #0xf + ands r0, r1 + adds r0, #0xf + strb r0, [r4, #0xe] + ldr r0, [r4, #0x54] + movs r1, #1 + bl sub_08004260 +_0803E30C: + adds r0, r4, #0 + bl sub_08004274 +_0803E312: + pop {r4, pc} + + thumb_func_start sub_0803E314 +sub_0803E314: @ 0x0803E314 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803E332 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r1, _0803E33C @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] +_0803E332: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 +_0803E33C: .4byte gUnk_03001160 + + thumb_func_start sub_0803E340 +sub_0803E340: @ 0x0803E340 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803E444 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0803E352 + subs r0, #1 + b _0803E36A +_0803E352: + ldrh r0, [r4, #0x36] + subs r0, #1 + strh r0, [r4, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x18 + rsbs r1, r1, #0 + cmp r0, r1 + bgt _0803E36C + movs r0, #6 + strb r0, [r4, #0xc] + movs r0, #0x14 +_0803E36A: + strb r0, [r4, #0xe] +_0803E36C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803E370 +sub_0803E370: @ 0x0803E370 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803E38E + movs r0, #7 + strb r0, [r1, #0xc] + movs r0, #0x10 + strb r0, [r1, #0x15] + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r1, #0x24] +_0803E38E: + adds r0, r1, #0 + bl sub_0803E444 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803E398 +sub_0803E398: @ 0x0803E398 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803E444 + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_0803E4D8 + ldr r1, _0803E3CC @ =gUnk_03000BF0 + ldrh r0, [r1, #8] + ldrh r1, [r1, #0x20] + adds r0, r0, r1 + subs r0, #0x10 + movs r2, #0x32 + ldrsh r1, [r4, r2] + cmp r0, r1 + bgt _0803E3C8 + bl sub_0805E5A8 + ldr r0, _0803E3D0 @ =gUnk_0813AB94 + bl sub_08080840 +_0803E3C8: + pop {r4, pc} + .align 2, 0 +_0803E3CC: .4byte gUnk_03000BF0 +_0803E3D0: .4byte gUnk_0813AB94 + + thumb_func_start sub_0803E3D4 +sub_0803E3D4: @ 0x0803E3D4 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _0803E3E4 + bl sub_0805E780 +_0803E3E4: + ldr r0, [r4, #0x50] + ldr r3, _0803E3F8 @ =0xFFFF0000 + adds r1, r4, #0 + movs r2, #0 + bl sub_0806FA48 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 +_0803E3F8: .4byte 0xFFFF0000 + + thumb_func_start sub_0803E3FC +sub_0803E3FC: @ 0x0803E3FC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0803E438 @ =gUnk_03001160 + ldrh r0, [r1, #0x2e] + strh r0, [r4, #0x2e] + ldrh r0, [r1, #0x32] + strh r0, [r4, #0x32] + ldrh r2, [r4, #0x36] + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #8 + rsbs r0, r0, #0 + cmp r1, r0 + bge _0803E43C + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #2 + beq _0803E42E + movs r0, #0 + strb r0, [r4, #0xe] + ldr r0, [r4, #0x54] + movs r1, #2 + bl sub_08004260 +_0803E42E: + adds r0, r4, #0 + bl sub_0803E2A8 + b _0803E442 + .align 2, 0 +_0803E438: .4byte gUnk_03001160 +_0803E43C: + adds r0, r2, #0 + adds r0, #8 + strh r0, [r4, #0x36] +_0803E442: + pop {r4, pc} + + thumb_func_start sub_0803E444 +sub_0803E444: @ 0x0803E444 + push {r4, lr} + adds r4, r0, #0 + bl sub_08077B2C + ldr r2, _0803E478 @ =gUnk_03003F80 + ldrb r1, [r2, #0x1a] + movs r0, #0x80 + orrs r1, r0 + strb r1, [r2, #0x1a] + ldrb r1, [r2, #0xa] + orrs r0, r1 + strb r0, [r2, #0xa] + ldr r1, [r4, #0x4c] + movs r3, #2 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r2, #0 + bl sub_0806FA90 + ldr r1, _0803E47C @ =gUnk_03001160 + adds r1, #0x63 + ldrb r0, [r1] + adds r0, #0xe + strb r0, [r1] + pop {r4, pc} + .align 2, 0 +_0803E478: .4byte gUnk_03003F80 +_0803E47C: .4byte gUnk_03001160 + + thumb_func_start sub_0803E480 +sub_0803E480: @ 0x0803E480 + push {lr} + adds r3, r0, #0 + adds r2, r3, #0 + adds r2, #0x78 + ldrh r1, [r2] + movs r0, #0x96 + lsls r0, r0, #3 + cmp r1, r0 + bls _0803E49A + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r3, #0x24] + b _0803E49E +_0803E49A: + adds r0, r1, #1 + strh r0, [r2] +_0803E49E: + pop {pc} + + thumb_func_start sub_0803E4A0 +sub_0803E4A0: @ 0x0803E4A0 + push {lr} + adds r1, r0, #0 + ldr r0, _0803E4B8 @ =gUnk_030010A0 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #0 + beq _0803E4C6 + ldr r1, [r1, #0x50] + cmp r1, #0 + bne _0803E4BC + movs r0, #0 + b _0803E4D6 + .align 2, 0 +_0803E4B8: .4byte gUnk_030010A0 +_0803E4BC: + adds r0, r1, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _0803E4CA +_0803E4C6: + movs r0, #1 + b _0803E4D6 +_0803E4CA: + movs r2, #0 + ldr r0, [r1, #4] + cmp r0, #0 + bne _0803E4D4 + movs r2, #1 +_0803E4D4: + adds r0, r2, #0 +_0803E4D6: + pop {pc} + + thumb_func_start sub_0803E4D8 +sub_0803E4D8: @ 0x0803E4D8 + push {r4, r5, lr} + movs r2, #0x2e + ldrsh r1, [r0, r2] + ldr r3, _0803E51C @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r4, r1, #4 + movs r2, #0x3f + ands r4, r2 + movs r1, #0x32 + ldrsh r0, [r0, r1] + ldrh r1, [r3, #8] + subs r1, #8 + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + ldr r0, _0803E520 @ =gUnk_03001160 + adds r5, r0, #0 + adds r5, #0x38 + ldrb r1, [r5] + adds r0, r4, #0 + bl sub_080002E0 + cmp r0, #0xff + beq _0803E518 + ldr r0, _0803E524 @ =0x00004074 + ldrb r2, [r5] + adds r1, r4, #0 + bl sub_0800015E +_0803E518: + pop {r4, r5, pc} + .align 2, 0 +_0803E51C: .4byte gUnk_03000BF0 +_0803E520: .4byte gUnk_03001160 +_0803E524: .4byte 0x00004074 + + thumb_func_start sub_0803E528 +sub_0803E528: @ 0x0803E528 + push {lr} + ldr r1, _0803E534 @ =gUnk_080D06E0 + bl sub_0800129E + pop {pc} + .align 2, 0 +_0803E534: .4byte gUnk_080D06E0 + + thumb_func_start sub_0803E538 +sub_0803E538: @ 0x0803E538 + push {lr} + ldr r2, _0803E54C @ =gUnk_080D06F8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0803E54C: .4byte gUnk_080D06F8 + + thumb_func_start sub_0803E550 +sub_0803E550: @ 0x0803E550 + push {lr} + ldr r1, _0803E55C @ =gUnk_080D06E0 + bl sub_0804AA30 + pop {pc} + .align 2, 0 +_0803E55C: .4byte gUnk_080D06E0 + + thumb_func_start sub_0803E560 +sub_0803E560: @ 0x0803E560 + push {r4, lr} + adds r4, r0, #0 + bl sub_08001324 + + thumb_func_start sub_0803E568 +sub_0803E568: @ 0x0803E568 + adds r0, r4, #0 + bl sub_0803E538 + pop {r4, pc} + + thumb_func_start sub_0803E570 +sub_0803E570: @ 0x0803E570 + push {lr} + movs r1, #0xff + movs r2, #0x57 + bl sub_0804A7E0 + pop {pc} + + thumb_func_start nullsub_20 +nullsub_20: @ 0x0803E57C + bx lr + .align 2, 0 + + thumb_func_start sub_0803E580 +sub_0803E580: @ 0x0803E580 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_0804A720 + adds r0, r5, #0 + movs r1, #0x19 + movs r2, #0 + bl sub_0804A98C + cmp r0, #0 + beq _0803E5E4 + str r5, [r0, #0x50] + str r0, [r5, #0x54] + ldrb r1, [r5, #0x10] + movs r0, #0x80 + movs r4, #0 + orrs r0, r1 + strb r0, [r5, #0x10] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #0x18] + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + strb r0, [r5, #0x14] + adds r0, r5, #0 + adds r0, #0x7b + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + adds r1, r5, #0 + adds r1, #0x7e + movs r0, #0x20 + strb r0, [r1] + adds r1, #1 + movs r0, #0xfe + strb r0, [r1] + ldrb r1, [r5, #0x14] + lsls r1, r1, #2 + adds r0, r5, #0 + bl sub_080042AC + adds r0, r5, #0 + bl sub_0803E86C +_0803E5E4: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803E5E8 +sub_0803E5E8: @ 0x0803E5E8 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x7c + ldrb r1, [r0] + subs r1, #0xa + strb r1, [r0] + adds r0, r4, #0 + bl sub_0803E9A4 + adds r0, r4, #0 + bl sub_0803E9D4 + cmp r0, #0 + bne _0803E61A + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0803E61A + adds r0, r4, #0 + bl sub_0803E8CC +_0803E61A: + pop {r4, pc} + + thumb_func_start sub_0803E61C +sub_0803E61C: @ 0x0803E61C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x7c + ldrb r1, [r0] + subs r1, #0xa + strb r1, [r0] + adds r0, r4, #0 + bl sub_0803E9A4 + adds r0, r4, #0 + bl sub_0803E9D4 + cmp r0, #0 + bne _0803E66A + adds r0, r4, #0 + adds r0, #0x42 + ldrb r0, [r0] + cmp r0, #0 + bne _0803E654 + adds r0, r4, #0 + bl sub_080AEF88 + cmp r0, #0 + bne _0803E654 + adds r0, r4, #0 + bl sub_0803E86C + b _0803E66A +_0803E654: + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0803E66A + adds r0, r4, #0 + bl sub_0803E92C +_0803E66A: + pop {r4, pc} + + thumb_func_start sub_0803E66C +sub_0803E66C: @ 0x0803E66C + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7c + ldrb r0, [r1] + subs r0, #0x10 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0803E9A4 + adds r1, r4, #0 + adds r1, #0x7e + ldrb r0, [r1] + cmp r0, #0x21 + bhi _0803E68E + adds r0, #1 + strb r0, [r1] +_0803E68E: + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0803E6A4 + adds r0, r4, #0 + bl sub_0803EA64 + cmp r0, #0 + bne _0803E6B0 +_0803E6A4: + movs r0, #4 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x7b + movs r0, #0 + strb r0, [r1] +_0803E6B0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803E6B4 +sub_0803E6B4: @ 0x0803E6B4 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7c + ldrb r0, [r1] + subs r0, #0xa + strb r0, [r1] + adds r0, r4, #0 + bl sub_0803E9A4 + adds r1, r4, #0 + adds r1, #0x7e + ldrb r0, [r1] + cmp r0, #0x20 + bls _0803E6D8 + subs r0, #1 + strb r0, [r1] + b _0803E6DE +_0803E6D8: + adds r0, r4, #0 + bl sub_0803E86C +_0803E6DE: + pop {r4, pc} + + thumb_func_start sub_0803E6E0 +sub_0803E6E0: @ 0x0803E6E0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x7c + ldrb r1, [r0] + subs r1, #0xc + strb r1, [r0] + adds r0, r4, #0 + bl sub_0803E9A4 + adds r1, r4, #0 + adds r1, #0x7e + ldrb r0, [r1] + subs r0, #4 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bgt _0803E718 + movs r0, #0 + strb r0, [r1] + movs r0, #6 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x14] + adds r1, #0x20 + adds r0, r4, #0 + bl sub_080042AC +_0803E718: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803E71C +sub_0803E71C: @ 0x0803E71C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + bne _0803E756 + movs r0, #7 + strb r0, [r2, #0xc] + movs r0, #1 + strb r0, [r2, #0xe] + ldr r1, _0803E758 @ =gUnk_080D0724 + ldrb r0, [r2, #0x14] + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r2, #0 + adds r0, #0x7c + strb r1, [r0] + subs r0, #1 + strb r3, [r0] + adds r1, r2, #0 + adds r1, #0x7f + movs r0, #0xf6 + strb r0, [r1] + adds r0, #0x65 + bl sub_08004488 +_0803E756: + pop {pc} + .align 2, 0 +_0803E758: .4byte gUnk_080D0724 + + thumb_func_start sub_0803E75C +sub_0803E75C: @ 0x0803E75C + push {lr} + adds r2, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0803E774 + adds r0, r2, #0 + bl sub_080042B8 + b _0803E7B0 +_0803E774: + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + adds r1, r2, #0 + adds r1, #0x7f + cmp r0, #0 + bne _0803E78E + movs r0, #2 + strb r0, [r2, #0xe] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0803E78E: + ldrb r0, [r1] + cmp r0, #0 + beq _0803E7A0 + adds r1, r2, #0 + adds r1, #0x7e + ldrb r0, [r1] + adds r0, #5 + strb r0, [r1] + b _0803E7B0 +_0803E7A0: + movs r0, #8 + strb r0, [r2, #0xc] + movs r0, #0x1e + strb r0, [r2, #0xe] + movs r0, #8 + movs r1, #0 + bl sub_08080964 +_0803E7B0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803E7B4 +sub_0803E7B4: @ 0x0803E7B4 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803E7C8 + movs r0, #9 + strb r0, [r1, #0xc] +_0803E7C8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803E7CC +sub_0803E7CC: @ 0x0803E7CC + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x7e + ldrb r0, [r1] + subs r0, #2 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xa + bhi _0803E806 + movs r0, #0xa + strb r0, [r2, #0xc] + movs r0, #0x5a + strb r0, [r2, #0xe] + ldrb r0, [r2, #0x14] + lsls r0, r0, #3 + strb r0, [r2, #0x15] + subs r1, #2 + movs r0, #0 + strb r0, [r1] + adds r1, #3 + movs r0, #0xfe + strb r0, [r1] + adds r0, r2, #0 + movs r1, #0x10 + bl sub_0803E94C + b _0803E814 +_0803E806: + cmp r0, #0x12 + bhi _0803E814 + ldr r2, [r2, #0x54] + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] +_0803E814: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803E818 +sub_0803E818: @ 0x0803E818 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0803E840 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803E868 + ldr r0, [r4, #0x54] + ldrb r1, [r0, #0x10] + movs r2, #0x80 + orrs r1, r2 + strb r1, [r0, #0x10] + adds r0, r4, #0 + movs r1, #0 + bl sub_0803E94C + b _0803E868 +_0803E840: + adds r1, r4, #0 + adds r1, #0x7c + ldrb r0, [r1] + subs r0, #0xa + strb r0, [r1] + adds r0, r4, #0 + bl sub_0803E9A4 + adds r1, r4, #0 + adds r1, #0x7e + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1f + bls _0803E868 + adds r0, r4, #0 + bl sub_0803E86C +_0803E868: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803E86C +sub_0803E86C: @ 0x0803E86C + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0803E898 + adds r0, r4, #0 + movs r1, #0x50 + bl sub_0803EAD0 + cmp r0, #0 + beq _0803E898 + ldr r0, _0803E8C4 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] +_0803E898: + movs r0, #1 + strb r0, [r4, #0xc] + bl sub_08000E50 + ldr r2, _0803E8C8 @ =gUnk_080D0728 + movs r1, #3 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r1, [r1] + adds r0, r4, #0 + adds r0, #0x78 + strh r1, [r0] + adds r1, r4, #0 + adds r1, #0x7a + movs r0, #4 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0 + bl sub_0803E94C + pop {r4, pc} + .align 2, 0 +_0803E8C4: .4byte gUnk_020000B0 +_0803E8C8: .4byte gUnk_080D0728 + + thumb_func_start sub_0803E8CC +sub_0803E8CC: @ 0x0803E8CC + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08000E50 + adds r5, r0, #0 + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _0803E8F4 + movs r0, #3 + ands r0, r5 + cmp r0, #0 + beq _0803E8F4 + adds r0, r4, #0 + bl sub_08049EE4 + adds r0, #4 + movs r1, #0x18 + b _0803E8F8 +_0803E8F4: + movs r1, #0x18 + adds r0, r5, #0 +_0803E8F8: + ands r0, r1 + strb r0, [r4, #0x15] + movs r0, #2 + strb r0, [r4, #0xc] + ldr r2, _0803E928 @ =gUnk_080D0730 + lsrs r0, r5, #0x10 + movs r1, #3 + ands r0, r1 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r1, [r0] + adds r0, r4, #0 + adds r0, #0x78 + strh r1, [r0] + adds r1, r4, #0 + adds r1, #0x7a + movs r0, #4 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x10 + bl sub_0803E94C + pop {r4, r5, pc} + .align 2, 0 +_0803E928: .4byte gUnk_080D0730 + + thumb_func_start sub_0803E92C +sub_0803E92C: @ 0x0803E92C + push {r4, lr} + adds r4, r0, #0 + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _0803E944 + adds r0, r4, #0 + bl sub_0803E86C + b _0803E94A +_0803E944: + adds r0, r4, #0 + bl sub_0803E8CC +_0803E94A: + pop {r4, pc} + + thumb_func_start sub_0803E94C +sub_0803E94C: @ 0x0803E94C + push {r4, r5, r6, lr} + adds r3, r0, #0 + adds r6, r1, #0 + ldrb r2, [r3, #0x15] + adds r0, r2, #4 + movs r1, #0x18 + ands r0, r1 + asrs r4, r0, #3 + adds r0, r3, #0 + adds r0, #0x58 + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, r6 + bne _0803E988 + movs r0, #7 + ands r0, r2 + ldrb r5, [r3, #0x14] + cmp r0, #4 + bne _0803E984 + lsrs r0, r2, #3 + subs r0, r5, r0 + movs r1, #3 + ands r0, r1 + cmp r0, #1 + ble _0803E9A2 +_0803E984: + cmp r4, r5 + beq _0803E9A2 +_0803E988: + strb r4, [r3, #0x14] + adds r0, r3, #0 + adds r0, #0x58 + ldrb r1, [r0] + movs r0, #3 + ands r0, r1 + adds r0, r6, r0 + lsls r1, r4, #2 + adds r4, r0, r1 + adds r0, r3, #0 + adds r1, r4, #0 + bl sub_080042AC +_0803E9A2: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0803E9A4 +sub_0803E9A4: @ 0x0803E9A4 + push {r4, lr} + adds r2, r0, #0 + adds r0, #0x7c + ldrb r0, [r0] + adds r0, #0x20 + movs r1, #0xff + ands r0, r1 + asrs r4, r0, #6 + adds r3, r2, #0 + adds r3, #0x58 + ldrb r1, [r3] + movs r0, #3 + ands r0, r1 + cmp r0, r4 + beq _0803E9D2 + ldrb r1, [r3] + movs r0, #4 + rsbs r0, r0, #0 + ands r1, r0 + adds r1, r4, r1 + adds r0, r2, #0 + bl sub_080042AC +_0803E9D2: + pop {r4, pc} + + thumb_func_start sub_0803E9D4 +sub_0803E9D4: @ 0x0803E9D4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0803EA58 + adds r0, r4, #0 + movs r1, #0x38 + bl sub_0803EAD0 + cmp r0, #0 + beq _0803EA10 + movs r0, #3 + strb r0, [r4, #0xc] + ldr r0, _0803EA0C @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + adds r1, r4, #0 + adds r1, #0x7b + movs r0, #1 + b _0803EA46 + .align 2, 0 +_0803EA0C: .4byte gUnk_020000B0 +_0803EA10: + adds r0, r4, #0 + movs r1, #0x4e + bl sub_0803EAD0 + cmp r0, #0 + beq _0803EA58 + ldr r0, _0803EA54 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + movs r2, #0x12 + bl sub_0804A044 + adds r2, r0, #0 + cmp r2, #0xff + beq _0803EA58 + adds r1, r4, #0 + adds r1, #0x7a + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803EA60 + movs r0, #5 + strb r0, [r4, #0xc] + strb r2, [r4, #0x15] + movs r0, #4 +_0803EA46: + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0 + bl sub_0803E94C + movs r0, #1 + b _0803EA62 + .align 2, 0 +_0803EA54: .4byte gUnk_020000B0 +_0803EA58: + adds r1, r4, #0 + adds r1, #0x7a + movs r0, #4 + strb r0, [r1] +_0803EA60: + movs r0, #0 +_0803EA62: + pop {r4, pc} + + thumb_func_start sub_0803EA64 +sub_0803EA64: @ 0x0803EA64 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0803EAC4 + adds r0, r4, #0 + movs r1, #0x4e + bl sub_0803EAD0 + cmp r0, #0 + beq _0803EAB8 + ldr r0, _0803EAB4 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + movs r2, #0x12 + bl sub_0804A044 + adds r2, r0, #0 + cmp r2, #0xff + beq _0803EAB8 + adds r1, r4, #0 + adds r1, #0x7a + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803EAAE + movs r0, #5 + strb r0, [r4, #0xc] + strb r2, [r4, #0x15] + adds r0, r4, #0 + movs r1, #0 + bl sub_0803E94C +_0803EAAE: + movs r0, #1 + b _0803EACE + .align 2, 0 +_0803EAB4: .4byte gUnk_020000B0 +_0803EAB8: + adds r0, r4, #0 + movs r1, #0x38 + bl sub_0803EAD0 + cmp r0, #0 + bne _0803EAAE +_0803EAC4: + adds r1, r4, #0 + adds r1, #0x7a + movs r0, #4 + strb r0, [r1] + movs r0, #0 +_0803EACE: + pop {r4, pc} + + thumb_func_start sub_0803EAD0 +sub_0803EAD0: @ 0x0803EAD0 + push {r4, lr} + adds r3, r1, #0 + ldr r1, _0803EAE8 @ =gUnk_020000B0 + ldr r2, [r1] + movs r4, #0x2e + ldrsh r1, [r2, r4] + movs r4, #0x32 + ldrsh r2, [r2, r4] + subs r2, #4 + bl sub_0806FCB8 + pop {r4, pc} + .align 2, 0 +_0803EAE8: .4byte gUnk_020000B0 + + thumb_func_start sub_0803EAEC +sub_0803EAEC: @ 0x0803EAEC + push {lr} + ldr r1, _0803EAF8 @ =gUnk_080D0880 + bl sub_0800129E + pop {pc} + .align 2, 0 +_0803EAF8: .4byte gUnk_080D0880 + + thumb_func_start sub_0803EAFC +sub_0803EAFC: @ 0x0803EAFC + push {lr} + ldr r2, _0803EB10 @ =gUnk_080D0898 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0803EB10: .4byte gUnk_080D0898 + + thumb_func_start sub_0803EB14 +sub_0803EB14: @ 0x0803EB14 + push {lr} + ldr r1, _0803EB20 @ =gUnk_080D0880 + bl sub_0804AA30 + pop {pc} + .align 2, 0 +_0803EB20: .4byte gUnk_080D0880 + + thumb_func_start sub_0803EB24 +sub_0803EB24: @ 0x0803EB24 + push {r4, lr} + adds r4, r0, #0 + bl sub_08001324 + + thumb_func_start sub_0803EB2C +sub_0803EB2C: @ 0x0803EB2C + adds r0, r4, #0 + bl sub_0803EAFC + pop {r4, pc} + + thumb_func_start sub_0803EB34 +sub_0803EB34: @ 0x0803EB34 + push {lr} + movs r1, #0xff + movs r2, #0x57 + bl sub_0804A7E0 + pop {pc} + + thumb_func_start nullsub_21 +nullsub_21: @ 0x0803EB40 + bx lr + .align 2, 0 + + thumb_func_start sub_0803EB44 +sub_0803EB44: @ 0x0803EB44 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + adds r0, r4, #0 + movs r1, #0x19 + movs r2, #0 + bl sub_0804A98C + cmp r0, #0 + beq _0803EBB2 + str r4, [r0, #0x50] + str r0, [r4, #0x54] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + movs r2, #0 + orrs r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #2 + strb r0, [r4, #0x14] + adds r0, r4, #0 + adds r0, #0x7b + strb r2, [r0] + adds r0, #1 + strb r2, [r0] + adds r1, r4, #0 + adds r1, #0x7e + movs r0, #0x28 + strb r0, [r1] + adds r1, #1 + movs r0, #0xfe + strb r0, [r1] + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x80 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x82 + strh r0, [r1] + ldrb r1, [r4, #0x14] + lsls r1, r1, #2 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0803EE8C +_0803EBB2: + pop {r4, pc} + + thumb_func_start sub_0803EBB4 +sub_0803EBB4: @ 0x0803EBB4 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x7c + ldrb r1, [r0] + subs r1, #0xa + strb r1, [r0] + movs r0, #1 + bl sub_08049DF4 + cmp r0, #0 + beq _0803EBE4 + ldr r0, _0803EC10 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #0 + bl sub_0803E94C +_0803EBE4: + adds r0, r4, #0 + bl sub_0803E9A4 + adds r0, r4, #0 + adds r0, #0x80 + ldrh r1, [r0] + adds r0, #2 + ldrh r2, [r0] + adds r0, r4, #0 + movs r3, #2 + bl sub_0806FCB8 + cmp r0, #0 + bne _0803EC14 + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0x10 + bl sub_0803E94C + b _0803EC24 + .align 2, 0 +_0803EC10: .4byte gUnk_020000B0 +_0803EC14: + adds r0, r4, #0 + bl sub_0803EF20 + cmp r0, #0 + bne _0803EC24 + adds r0, r4, #0 + bl sub_0803EEA4 +_0803EC24: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803EC28 +sub_0803EC28: @ 0x0803EC28 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7c + ldrb r0, [r1] + subs r0, #0x10 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0803E9A4 + adds r1, r4, #0 + adds r1, #0x7e + ldrb r0, [r1] + cmp r0, #0x1c + bls _0803EC4A + subs r0, #1 + strb r0, [r1] +_0803EC4A: + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0803EC64 + movs r0, #3 + strb r0, [r4, #0xc] + adds r1, #3 + movs r0, #0 + strb r0, [r1] +_0803EC64: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803EC68 +sub_0803EC68: @ 0x0803EC68 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7c + ldrb r0, [r1] + subs r0, #0xa + strb r0, [r1] + adds r0, r4, #0 + bl sub_0803E9A4 + adds r1, r4, #0 + adds r1, #0x7e + ldrb r0, [r1] + cmp r0, #0x27 + bhi _0803EC8C + adds r0, #1 + strb r0, [r1] + b _0803EC92 +_0803EC8C: + adds r0, r4, #0 + bl sub_0803EE8C +_0803EC92: + pop {r4, pc} + + thumb_func_start sub_0803EC94 +sub_0803EC94: @ 0x0803EC94 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7c + ldrb r0, [r1] + subs r0, #0xa + strb r0, [r1] + adds r0, r4, #0 + bl sub_0803E9A4 + adds r5, r4, #0 + adds r5, #0x80 + ldrh r1, [r5] + adds r6, r4, #0 + adds r6, #0x82 + ldrh r2, [r6] + adds r0, r4, #0 + movs r3, #1 + bl sub_0806FCB8 + cmp r0, #0 + beq _0803ECD8 + ldrh r0, [r5] + strh r0, [r4, #0x2e] + ldrh r0, [r6] + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl sub_0803EE8C + adds r0, r4, #0 + movs r1, #0 + bl sub_0803E94C + b _0803ED02 +_0803ECD8: + adds r0, r4, #0 + adds r0, #0x42 + ldrb r0, [r0] + cmp r0, #0 + bne _0803ED02 + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + ldrh r2, [r5] + ldrh r3, [r6] + bl sub_080045D4 + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #0x10 + bl sub_0803E94C + adds r0, r4, #0 + bl sub_080AEF88 +_0803ED02: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0803ED04 +sub_0803ED04: @ 0x0803ED04 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x7c + ldrb r1, [r0] + subs r1, #0xc + strb r1, [r0] + adds r0, r4, #0 + bl sub_0803E9A4 + adds r1, r4, #0 + adds r1, #0x7e + ldrb r0, [r1] + subs r0, #4 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bgt _0803ED3C + movs r0, #0 + strb r0, [r1] + movs r0, #6 + strb r0, [r4, #0xc] + movs r0, #0xf + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x14] + adds r1, #0x20 + adds r0, r4, #0 + bl sub_080042AC +_0803ED3C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803ED40 +sub_0803ED40: @ 0x0803ED40 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803ED74 + movs r0, #7 + strb r0, [r2, #0xc] + movs r0, #1 + strb r0, [r2, #0xe] + ldr r1, _0803ED78 @ =gUnk_080D08C4 + ldrb r0, [r2, #0x14] + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r2, #0 + adds r0, #0x7c + strb r1, [r0] + adds r1, r2, #0 + adds r1, #0x7f + movs r0, #0xf6 + strb r0, [r1] + adds r0, #0x65 + bl sub_08004488 +_0803ED74: + pop {pc} + .align 2, 0 +_0803ED78: .4byte gUnk_080D08C4 + + thumb_func_start sub_0803ED7C +sub_0803ED7C: @ 0x0803ED7C + push {lr} + adds r2, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0803ED94 + adds r0, r2, #0 + bl sub_080042B8 + b _0803EDD0 +_0803ED94: + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + adds r1, r2, #0 + adds r1, #0x7f + cmp r0, #0 + bne _0803EDAE + movs r0, #2 + strb r0, [r2, #0xe] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0803EDAE: + ldrb r0, [r1] + cmp r0, #0 + beq _0803EDC0 + adds r1, r2, #0 + adds r1, #0x7e + ldrb r0, [r1] + adds r0, #5 + strb r0, [r1] + b _0803EDD0 +_0803EDC0: + movs r0, #8 + strb r0, [r2, #0xc] + movs r0, #0x1e + strb r0, [r2, #0xe] + movs r0, #8 + movs r1, #0 + bl sub_08080964 +_0803EDD0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803EDD4 +sub_0803EDD4: @ 0x0803EDD4 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803EDE8 + movs r0, #9 + strb r0, [r1, #0xc] +_0803EDE8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803EDEC +sub_0803EDEC: @ 0x0803EDEC + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x7e + ldrb r0, [r1] + subs r0, #2 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xa + bhi _0803EE26 + movs r0, #0xa + strb r0, [r2, #0xc] + movs r0, #0x3c + strb r0, [r2, #0xe] + ldrb r0, [r2, #0x14] + lsls r0, r0, #3 + strb r0, [r2, #0x15] + subs r1, #2 + movs r0, #0 + strb r0, [r1] + adds r1, #3 + movs r0, #0xfe + strb r0, [r1] + adds r0, r2, #0 + movs r1, #0x10 + bl sub_0803E94C + b _0803EE34 +_0803EE26: + cmp r0, #0x12 + bhi _0803EE34 + ldr r2, [r2, #0x54] + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] +_0803EE34: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803EE38 +sub_0803EE38: @ 0x0803EE38 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0803EE60 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803EE88 + ldr r0, [r4, #0x54] + ldrb r1, [r0, #0x10] + movs r2, #0x80 + orrs r1, r2 + strb r1, [r0, #0x10] + adds r0, r4, #0 + movs r1, #0 + bl sub_0803E94C + b _0803EE88 +_0803EE60: + adds r1, r4, #0 + adds r1, #0x7c + ldrb r0, [r1] + subs r0, #0xa + strb r0, [r1] + adds r0, r4, #0 + bl sub_0803E9A4 + adds r1, r4, #0 + adds r1, #0x7e + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x27 + bls _0803EE88 + adds r0, r4, #0 + bl sub_0803EE8C +_0803EE88: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803EE8C +sub_0803EE8C: @ 0x0803EE8C + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + adds r2, r0, #0 + adds r2, #0x7a + movs r1, #0x1e + strb r1, [r2] + movs r1, #0 + bl sub_0803E94C + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803EEA4 +sub_0803EEA4: @ 0x0803EEA4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0803EEF8 + adds r0, r4, #0 + movs r1, #0x4e + bl sub_0803EF04 + cmp r0, #0 + beq _0803EEF8 + ldr r0, _0803EEF4 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + movs r2, #0x12 + bl sub_0804A044 + adds r2, r0, #0 + cmp r2, #0xff + beq _0803EEF8 + adds r1, r4, #0 + adds r1, #0x7a + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803EF00 + movs r0, #5 + strb r0, [r4, #0xc] + strb r2, [r4, #0x15] + adds r0, r4, #0 + movs r1, #0 + bl sub_0803E94C + movs r0, #1 + b _0803EF02 + .align 2, 0 +_0803EEF4: .4byte gUnk_020000B0 +_0803EEF8: + adds r1, r4, #0 + adds r1, #0x7a + movs r0, #0x1e + strb r0, [r1] +_0803EF00: + movs r0, #0 +_0803EF02: + pop {r4, pc} + + thumb_func_start sub_0803EF04 +sub_0803EF04: @ 0x0803EF04 + push {r4, lr} + adds r3, r1, #0 + ldr r1, _0803EF1C @ =gUnk_020000B0 + ldr r2, [r1] + movs r4, #0x2e + ldrsh r1, [r2, r4] + movs r4, #0x32 + ldrsh r2, [r2, r4] + subs r2, #4 + bl sub_0806FCB8 + pop {r4, pc} + .align 2, 0 +_0803EF1C: .4byte gUnk_020000B0 + + thumb_func_start sub_0803EF20 +sub_0803EF20: @ 0x0803EF20 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldr r6, _0803EF5C @ =gUnk_03003D80 + ldr r4, [r6, #4] + cmp r4, r6 + beq _0803EF6A + ldr r7, _0803EF60 @ =gUnk_080D08C8 +_0803EF2E: + ldrb r0, [r4, #8] + cmp r0, #8 + bne _0803EF64 + ldrb r0, [r4, #9] + lsls r0, r0, #2 + adds r0, r0, r7 + ldr r2, [r0] + adds r0, r5, #0 + adds r1, r4, #0 + bl _call_via_r2 + cmp r0, #0 + beq _0803EF64 + movs r0, #2 + strb r0, [r5, #0xc] + adds r1, r5, #0 + adds r1, #0x78 + movs r0, #0xb4 + strh r0, [r1] + adds r1, #3 + movs r0, #1 + strb r0, [r1] + b _0803EF6C + .align 2, 0 +_0803EF5C: .4byte gUnk_03003D80 +_0803EF60: .4byte gUnk_080D08C8 +_0803EF64: + ldr r4, [r4, #4] + cmp r4, r6 + bne _0803EF2E +_0803EF6A: + movs r0, #0 +_0803EF6C: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0803EF70 +sub_0803EF70: @ 0x0803EF70 + movs r0, #0 + bx lr + + thumb_func_start sub_0803EF74 +sub_0803EF74: @ 0x0803EF74 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r0, #0x32 + ldrsh r2, [r4, r0] + adds r0, r5, #0 + movs r3, #0x50 + bl sub_0806FCB8 + cmp r0, #0 + beq _0803EFA8 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080045C4 + ldrb r1, [r4, #0x15] + subs r1, r1, r0 + adds r1, #2 + movs r0, #0x1f + ands r1, r0 + cmp r1, #4 + bhi _0803EFA8 + movs r0, #1 + b _0803EFAA +_0803EFA8: + movs r0, #0 +_0803EFAA: + pop {r4, r5, pc} + + thumb_func_start sub_0803EFAC +sub_0803EFAC: @ 0x0803EFAC + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + movs r2, #0x50 + movs r3, #0x50 + bl sub_080041A0 + cmp r0, #0 + beq _0803EFD6 + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0x1c + bl sub_0804A044 + cmp r0, #0xff + beq _0803EFD6 + ldrb r4, [r4, #0x15] + cmp r0, r4 + bne _0803EFD6 + movs r0, #1 + b _0803EFD8 +_0803EFD6: + movs r0, #0 +_0803EFD8: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803EFDC +sub_0803EFDC: @ 0x0803EFDC + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _0803F004 @ =gUnk_080D0924 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, r5, pc} + .align 2, 0 +_0803F004: .4byte gUnk_080D0924 + + thumb_func_start sub_0803F008 +sub_0803F008: @ 0x0803F008 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0803F024 @ =gUnk_080D093C + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0803F694 + pop {r4, pc} + .align 2, 0 +_0803F024: .4byte gUnk_080D093C + + thumb_func_start sub_0803F028 +sub_0803F028: @ 0x0803F028 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + subs r0, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _0803F05C + movs r0, #0xff + strb r0, [r4, #0x14] + adds r0, r4, #0 + adds r0, #0x3e + ldrb r1, [r0] + lsrs r1, r1, #4 + movs r0, #1 + eors r1, r0 + adds r1, #1 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0803F630 + adds r0, r4, #0 + bl sub_0803F6EC +_0803F05C: + adds r0, r4, #0 + adds r0, #0x3f + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x41 + cmp r0, #0x25 + bne _0803F07E + ldrb r0, [r1] + cmp r0, #0x80 + bne _0803F07E + movs r0, #8 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 + b _0803F0E4 +_0803F07E: + ldrb r0, [r1] + cmp r0, #0x9d + bne _0803F08A + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] +_0803F08A: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0803F0B0 + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + lsrs r0, r0, #4 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #7 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0803F0B0: + adds r0, r4, #0 + adds r0, #0x45 + adds r1, r4, #0 + adds r1, #0x7a + ldrb r0, [r0] + ldrb r2, [r1] + cmp r0, r2 + beq _0803F0E4 + strb r0, [r1] + ldrb r0, [r4, #0xc] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _0803F0D4 + adds r0, r4, #0 + bl sub_0803F51C +_0803F0D4: + adds r0, r4, #0 + adds r0, #0x3e + ldrb r1, [r0] + lsrs r1, r1, #4 + adds r1, #7 + adds r0, r4, #0 + bl sub_08004260 +_0803F0E4: + ldr r1, _0803F0F0 @ =gUnk_080D0924 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_0803F0F0: .4byte gUnk_080D0924 + + thumb_func_start sub_0803F0F4 +sub_0803F0F4: @ 0x0803F0F4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_08001328 + adds r0, r4, #0 + adds r0, #0x42 + ldrb r0, [r0] + cmp r0, #0 + bne _0803F144 + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _0803F144 + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + bne _0803F144 + movs r0, #0xff + strb r0, [r4, #0x14] + adds r1, r4, #0 + adds r1, #0x58 + ldrb r0, [r1] + subs r0, #7 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _0803F144 + ldrb r1, [r1] + subs r1, #7 + movs r0, #1 + eors r1, r0 + adds r1, #1 + adds r0, r4, #0 + bl sub_08004260 +_0803F144: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803F148 +sub_0803F148: @ 0x0803F148 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x58 + ldrb r0, [r0] + subs r0, #7 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _0803F164 + ldrb r1, [r4, #0x14] + adds r1, #7 + adds r0, r4, #0 + bl sub_08004260 +_0803F164: + adds r0, r4, #0 + bl sub_08001242 + ldrh r1, [r4, #0x36] + movs r2, #0x36 + ldrsh r0, [r4, r2] + cmp r0, #0 + bne _0803F178 + ldr r0, _0803F1A4 @ =0x0000FFFF + strh r0, [r4, #0x36] +_0803F178: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + bne _0803F1A0 + ldrb r0, [r4, #0x14] + movs r1, #1 + eors r1, r0 + adds r1, #1 + adds r0, r4, #0 + bl sub_08004260 + movs r0, #0xff + strb r0, [r4, #0x15] + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_0803F630 +_0803F1A0: + pop {r4, pc} + .align 2, 0 +_0803F1A4: .4byte 0x0000FFFF + + thumb_func_start sub_0803F1A8 +sub_0803F1A8: @ 0x0803F1A8 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F520 + cmp r0, #0 + beq _0803F1CC + ldr r0, _0803F1C8 @ =gUnk_080D0964 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _0803F1DE + .align 2, 0 +_0803F1C8: .4byte gUnk_080D0964 +_0803F1CC: + adds r0, r4, #0 + bl sub_0803F51C + ldrb r1, [r4, #0x15] + lsrs r1, r1, #4 + adds r1, #1 + adds r0, r4, #0 + bl sub_08004260 +_0803F1DE: + pop {r4, pc} + + thumb_func_start sub_0803F1E0 +sub_0803F1E0: @ 0x0803F1E0 + push {lr} + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x3c + strb r1, [r0, #0x1d] + ldr r1, _0803F1F8 @ =gUnk_03001160 + ldrb r1, [r1, #0x14] + lsrs r1, r1, #2 + adds r1, #5 + bl sub_08004260 + pop {pc} + .align 2, 0 +_0803F1F8: .4byte gUnk_03001160 + + thumb_func_start sub_0803F1FC +sub_0803F1FC: @ 0x0803F1FC + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0806F4E8 + pop {r4, pc} + + thumb_func_start sub_0803F20C +sub_0803F20C: @ 0x0803F20C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _0803F244 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl sub_080A29AC + cmp r0, #0 + beq _0803F23E + adds r2, r0, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] +_0803F23E: + adds r0, r4, #0 + bl sub_0804A7D4 +_0803F244: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803F248 +sub_0803F248: @ 0x0803F248 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + bl sub_08000E50 + movs r2, #0x1e + adds r1, r0, #0 + ands r1, r2 + movs r2, #0 + strb r1, [r4, #0x15] + movs r1, #0xff + strb r1, [r4, #0x14] + movs r1, #1 + strb r1, [r4, #0x1c] + adds r1, r4, #0 + adds r1, #0x45 + ldrb r1, [r1] + adds r3, r4, #0 + adds r3, #0x7a + strb r1, [r3] + lsrs r0, r0, #4 + adds r1, r4, #0 + adds r1, #0x7b + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x7c + strh r2, [r0] + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _0803F28E + adds r0, r4, #0 + bl sub_0803F50C + b _0803F2A0 +_0803F28E: + adds r0, r4, #0 + bl sub_0803F51C + ldrb r1, [r4, #0x15] + lsrs r1, r1, #4 + adds r1, #1 + adds r0, r4, #0 + bl sub_08004260 +_0803F2A0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803F2A4 +sub_0803F2A4: @ 0x0803F2A4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803F5A8 + cmp r0, #0 + beq _0803F2C0 + movs r0, #2 + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r1, #0x60 + ands r0, r1 + adds r0, #0xa + strb r0, [r4, #0xe] +_0803F2C0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803F2C4 +sub_0803F2C4: @ 0x0803F2C4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803F5A8 + cmp r0, #0 + bne _0803F2D8 + adds r0, r4, #0 + bl sub_0803F50C + b _0803F322 +_0803F2D8: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803F322 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + movs r0, #1 + bl sub_08049DF4 + cmp r0, #0 + beq _0803F308 + ldr r0, _0803F304 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + b _0803F310 + .align 2, 0 +_0803F304: .4byte gUnk_020000B0 +_0803F308: + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 +_0803F310: + strb r0, [r4, #0x15] + ldrb r0, [r4, #0x15] + lsrs r0, r0, #4 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #1 + adds r0, r4, #0 + bl sub_08004260 +_0803F322: + pop {r4, pc} + + thumb_func_start sub_0803F324 +sub_0803F324: @ 0x0803F324 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803F33E + adds r0, r4, #0 + bl sub_0803F51C +_0803F33E: + pop {r4, pc} + + thumb_func_start sub_0803F340 +sub_0803F340: @ 0x0803F340 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803F5D4 + cmp r0, #0 + bne _0803F36A + adds r0, r4, #0 + bl sub_0803F58C + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803F36A + adds r0, r4, #0 + bl sub_0803F51C +_0803F36A: + pop {r4, pc} + + thumb_func_start sub_0803F36C +sub_0803F36C: @ 0x0803F36C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _0803F3A6 + adds r0, r4, #0 + bl sub_0803F66C + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0803F3AC + movs r0, #6 + strb r0, [r4, #0xc] + adds r0, #0xfa + strh r0, [r4, #0x24] + b _0803F3AC +_0803F3A6: + adds r0, r4, #0 + bl sub_0803F51C +_0803F3AC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803F3B0 +sub_0803F3B0: @ 0x0803F3B0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803F5A8 + cmp r0, #0 + bne _0803F3C4 + adds r0, r4, #0 + bl sub_0803F51C + b _0803F41C +_0803F3C4: + movs r0, #1 + bl sub_08049DF4 + cmp r0, #0 + beq _0803F414 + ldrb r1, [r4, #0xe] + adds r1, #1 + strb r1, [r4, #0xe] + ldr r2, _0803F40C @ =gUnk_080D0970 + lsls r0, r1, #0x18 + lsrs r0, r0, #0x1e + adds r0, r0, r2 + ldrb r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _0803F3F6 + ldr r0, _0803F410 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 +_0803F3F6: + adds r0, r4, #0 + bl sub_0803F66C + adds r0, r4, #0 + bl sub_080AEFB4 + adds r0, r4, #0 + bl sub_08004274 + b _0803F41C + .align 2, 0 +_0803F40C: .4byte gUnk_080D0970 +_0803F410: .4byte gUnk_020000B0 +_0803F414: + movs r0, #7 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] +_0803F41C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803F420 +sub_0803F420: @ 0x0803F420 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803F43A + adds r0, r4, #0 + bl sub_0803F51C +_0803F43A: + pop {r4, pc} + + thumb_func_start sub_0803F43C +sub_0803F43C: @ 0x0803F43C + push {r4, lr} + adds r4, r0, #0 + bl sub_0803F738 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803F474 + movs r2, #0 + movs r0, #9 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x78 + strh r2, [r0] + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 +_0803F474: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803F478 +sub_0803F478: @ 0x0803F478 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0803F494 + adds r0, r4, #0 + bl sub_0803F6C0 +_0803F494: + bl sub_0807953C + adds r1, r4, #0 + adds r1, #0x78 + cmp r0, #0 + beq _0803F4A6 + ldrh r0, [r1] + adds r0, #0xc + strh r0, [r1] +_0803F4A6: + ldr r2, _0803F500 @ =gUnk_03001160 + adds r0, r2, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _0803F4B6 + movs r0, #0xe0 + strh r0, [r1] +_0803F4B6: + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xdf + bls _0803F504 + adds r1, r4, #0 + adds r1, #0x7c + movs r0, #0x78 + strh r0, [r1] + movs r0, #0xff + strb r0, [r4, #0x14] + subs r1, #0x3f + movs r0, #0xf4 + strb r0, [r1] + adds r1, #5 + movs r0, #0x14 + strb r0, [r1] + adds r1, #4 + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r1] + ldrb r0, [r2, #0x14] + lsls r0, r0, #2 + movs r1, #0x10 + eors r0, r1 + adds r1, r4, #0 + adds r1, #0x3e + strb r0, [r1] + adds r0, r4, #0 + bl sub_0803F51C + adds r0, r4, #0 + bl sub_0803F6EC + b _0803F50A + .align 2, 0 +_0803F500: .4byte gUnk_03001160 +_0803F504: + adds r0, r4, #0 + bl sub_0803F738 +_0803F50A: + pop {r4, pc} + + thumb_func_start sub_0803F50C +sub_0803F50C: @ 0x0803F50C + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #9 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803F51C +sub_0803F51C: @ 0x0803F51C + push {lr} + movs r1, #4 + strb r1, [r0, #0xc] + bl sub_0803F528 + pop {pc} + + thumb_func_start sub_0803F528 +sub_0803F528: @ 0x0803F528 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08000E50 + adds r5, r0, #0 + movs r0, #8 + adds r1, r5, #0 + ands r1, r0 + adds r1, #8 + strb r1, [r4, #0xe] + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + beq _0803F55C + ldr r1, _0803F558 @ =gUnk_080D0978 + movs r0, #7 + ands r0, r5 + adds r0, r0, r1 + ldrb r0, [r0] + ldrb r1, [r4, #0x15] + adds r0, r0, r1 + b _0803F562 + .align 2, 0 +_0803F558: .4byte gUnk_080D0978 +_0803F55C: + adds r0, r4, #0 + bl sub_08049EE4 +_0803F562: + movs r1, #0x1e + ands r0, r1 + strb r0, [r4, #0x15] + ldr r2, _0803F588 @ =gUnk_080D0974 + lsrs r0, r5, #4 + movs r1, #3 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + strh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x24 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0803F66C + pop {r4, r5, pc} + .align 2, 0 +_0803F588: .4byte gUnk_080D0974 + + thumb_func_start sub_0803F58C +sub_0803F58C: @ 0x0803F58C + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, [r5, #0x30] + bl sub_080AEFB4 + ldr r1, [r5, #0x30] + subs r4, r1, r4 + lsrs r0, r4, #0x1f + adds r4, r4, r0 + asrs r4, r4, #1 + subs r1, r1, r4 + str r1, [r5, #0x30] + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803F5A8 +sub_0803F5A8: @ 0x0803F5A8 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + bne _0803F5BA + movs r0, #0 + b _0803F5D2 +_0803F5BA: + ldr r0, _0803F5CC @ =gUnk_02033A90 + movs r1, #0xa + ldrsh r0, [r0, r1] + cmp r0, #0xf + bgt _0803F5D0 + adds r0, r4, #0 + bl sub_0806FD54 + b _0803F5D2 + .align 2, 0 +_0803F5CC: .4byte gUnk_02033A90 +_0803F5D0: + movs r0, #1 +_0803F5D2: + pop {r4, pc} + + thumb_func_start sub_0803F5D4 +sub_0803F5D4: @ 0x0803F5D4 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7c + ldrh r0, [r1] + cmp r0, #0 + beq _0803F5E8 + subs r0, #1 + strh r0, [r1] + b _0803F62C +_0803F5E8: + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0803F62C + adds r0, r4, #0 + bl sub_0806FD54 + cmp r0, #0 + bne _0803F61A + ldr r0, _0803F624 @ =gUnk_02033A90 + movs r1, #0xa + ldrsh r0, [r0, r1] + cmp r0, #0xf + ble _0803F62C + ldr r0, _0803F628 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + movs r2, #0x70 + movs r3, #0x48 + bl sub_080041A0 + cmp r0, #0 + beq _0803F62C +_0803F61A: + adds r0, r4, #0 + bl sub_0803F630 + movs r0, #1 + b _0803F62E + .align 2, 0 +_0803F624: .4byte gUnk_02033A90 +_0803F628: .4byte gUnk_020000B0 +_0803F62C: + movs r0, #0 +_0803F62E: + pop {r4, pc} + + thumb_func_start sub_0803F630 +sub_0803F630: @ 0x0803F630 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #5 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x25 + strb r0, [r1] + movs r5, #0 + ldr r0, _0803F664 @ =gUnk_03004040 + ldr r0, [r0] + cmp r0, #0 + beq _0803F64C + movs r5, #0x3c +_0803F64C: + bl sub_08000E50 + ldr r2, _0803F668 @ =gUnk_080D0980 + movs r1, #3 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + adds r0, r0, r5 + adds r1, r4, #0 + adds r1, #0x78 + strh r0, [r1] + pop {r4, r5, pc} + .align 2, 0 +_0803F664: .4byte gUnk_03004040 +_0803F668: .4byte gUnk_080D0980 + + thumb_func_start sub_0803F66C +sub_0803F66C: @ 0x0803F66C + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x15] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _0803F680 + ldrb r0, [r2, #0x14] + cmp r0, #0xff + bne _0803F692 +_0803F680: + lsrs r0, r1, #4 + ldrb r1, [r2, #0x14] + cmp r0, r1 + beq _0803F692 + strb r0, [r2, #0x14] + adds r1, r0, #1 + adds r0, r2, #0 + bl sub_08004260 +_0803F692: + pop {pc} + + thumb_func_start sub_0803F694 +sub_0803F694: @ 0x0803F694 + push {r4, lr} + ldr r3, _0803F6BC @ =gUnk_080D0984 + movs r1, #0x7b + adds r1, r1, r0 + mov ip, r1 + ldrb r1, [r1] + adds r2, r1, #1 + mov r4, ip + strb r2, [r4] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x1b + movs r2, #3 + ands r1, r2 + adds r1, r1, r3 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + strh r1, [r0, #0x36] + pop {r4, pc} + .align 2, 0 +_0803F6BC: .4byte gUnk_080D0984 + + thumb_func_start sub_0803F6C0 +sub_0803F6C0: @ 0x0803F6C0 + push {r4, lr} + adds r0, #0x5a + ldrb r2, [r0] + movs r1, #0xfe + ands r1, r2 + strb r1, [r0] + ldr r4, _0803F6E8 @ =gUnk_03001160 + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0xc + strb r0, [r1] + subs r0, #0x10 + bl sub_080526A0 + adds r0, r4, #0 + movs r1, #0x7a + bl sub_0800449C + pop {r4, pc} + .align 2, 0 +_0803F6E8: .4byte gUnk_03001160 + + thumb_func_start sub_0803F6EC +sub_0803F6EC: @ 0x0803F6EC + push {lr} + ldr r2, _0803F72C @ =gUnk_03001160 + adds r0, r2, #0 + adds r0, #0x45 + ldrb r0, [r0] + ldr r3, _0803F730 @ =gUnk_03003F80 + cmp r0, #0 + beq _0803F720 + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r2, #0x20] + ldr r0, _0803F734 @ =0x0000FFFE + strh r0, [r2, #0x36] + ldrb r0, [r2, #0x14] + lsls r0, r0, #2 + strb r0, [r2, #0x15] + adds r1, r2, #0 + adds r1, #0x3d + movs r0, #0xc4 + strb r0, [r1] + movs r0, #0x41 + strb r0, [r3, #2] +_0803F720: + ldr r0, [r3, #0x30] + movs r1, #0x11 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r3, #0x30] + pop {pc} + .align 2, 0 +_0803F72C: .4byte gUnk_03001160 +_0803F730: .4byte gUnk_03003F80 +_0803F734: .4byte 0x0000FFFE + + thumb_func_start sub_0803F738 +sub_0803F738: @ 0x0803F738 + push {r4, lr} + adds r4, r0, #0 + bl sub_08077B2C + ldr r2, _0803F768 @ =gUnk_03003F80 + ldrb r1, [r2, #0x1a] + movs r0, #0x80 + orrs r1, r0 + strb r1, [r2, #0x1a] + ldrb r1, [r2, #0xa] + orrs r0, r1 + strb r0, [r2, #0xa] + ldr r0, _0803F76C @ =gUnk_03001160 + adds r1, r4, #0 + movs r2, #0 + movs r3, #1 + bl sub_0806FA90 + adds r4, #0x63 + ldrb r0, [r4] + subs r0, #2 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_0803F768: .4byte gUnk_03003F80 +_0803F76C: .4byte gUnk_03001160 + + thumb_func_start sub_0803F770 +sub_0803F770: @ 0x0803F770 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #5 + bhi _0803F810 + lsls r0, r0, #2 + ldr r1, _0803F784 @ =_0803F788 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803F784: .4byte _0803F788 +_0803F788: @ jump table + .4byte _0803F7A0 @ case 0 + .4byte _0803F7D0 @ case 1 + .4byte _0803F7D8 @ case 2 + .4byte _0803F7E0 @ case 3 + .4byte _0803F7E8 @ case 4 + .4byte _0803F800 @ case 5 +_0803F7A0: + ldrb r0, [r4, #0xc] + cmp r0, #0 + beq _0803F7C8 + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + adds r2, r4, #0 + adds r2, #0x7a + strh r0, [r2] + ldrh r0, [r4, #0x2e] + strh r0, [r1] + adds r1, #4 + ldrh r0, [r1] + adds r2, #4 + strh r0, [r2] + ldrh r0, [r4, #0x32] + strh r0, [r1] + adds r0, r4, #0 + bl sub_080409B0 +_0803F7C8: + ldr r0, _0803F7CC @ =gUnk_080D0AC8 + b _0803F7EA + .align 2, 0 +_0803F7CC: .4byte gUnk_080D0AC8 +_0803F7D0: + ldr r0, _0803F7D4 @ =gUnk_080D0AE8 + b _0803F7EA + .align 2, 0 +_0803F7D4: .4byte gUnk_080D0AE8 +_0803F7D8: + ldr r0, _0803F7DC @ =gUnk_080D0AF0 + b _0803F7EA + .align 2, 0 +_0803F7DC: .4byte gUnk_080D0AF0 +_0803F7E0: + ldr r0, _0803F7E4 @ =gUnk_080D0AFC + b _0803F7EA + .align 2, 0 +_0803F7E4: .4byte gUnk_080D0AFC +_0803F7E8: + ldr r0, _0803F7FC @ =gUnk_080D0B04 +_0803F7EA: + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _0803F810 + .align 2, 0 +_0803F7FC: .4byte gUnk_080D0B04 +_0803F800: + ldr r0, _0803F814 @ =gUnk_080D0B0C + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_0803F810: + pop {r4, pc} + .align 2, 0 +_0803F814: .4byte gUnk_080D0B0C + + thumb_func_start sub_0803F818 +sub_0803F818: @ 0x0803F818 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + bl sub_0804A720 + movs r0, #0 + bl sub_0807CC3C + cmp r0, #0 + beq _0803F910 + ldr r0, _0803F8FC @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x50 + bhi _0803F910 + movs r4, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + adds r3, r5, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r3] + adds r1, r5, #0 + adds r1, #0x6d + ldrb r0, [r1] + orrs r2, r0 + strb r2, [r1] + bl sub_08000E50 + movs r1, #0x17 + ands r0, r1 + adds r0, #4 + strb r0, [r5, #0x15] + movs r0, #0x30 + strb r0, [r5, #0xe] + movs r0, #0xc + strb r0, [r5, #0xf] + adds r1, r5, #0 + adds r1, #0x82 + movs r0, #4 + strb r0, [r1] + subs r1, #2 + movs r0, #0xff + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x74 + strb r4, [r0] + adds r0, #3 + strb r4, [r0] + adds r1, #4 + movs r0, #9 + strb r0, [r1] + strb r4, [r5, #0x14] + adds r0, r5, #0 + adds r0, #0x86 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + ldrh r1, [r5, #0x2e] + subs r0, #0xf + strh r1, [r0] + ldrh r0, [r5, #0x2e] + adds r1, r5, #0 + adds r1, #0x7a + strh r0, [r1] + ldrh r1, [r5, #0x32] + adds r0, r5, #0 + adds r0, #0x7c + strh r1, [r0] + ldrh r0, [r5, #0x32] + adds r1, r5, #0 + adds r1, #0x7e + strh r0, [r1] + movs r4, #1 + adds r7, r5, #0 + adds r7, #0x75 +_0803F8C2: + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0 + bl sub_08040648 + adds r4, #1 + cmp r4, #5 + bls _0803F8C2 + bl sub_08000E50 + adds r0, r5, #0 + bl sub_080408EC + movs r4, #0 + movs r6, #1 +_0803F8E0: + movs r0, #0x5a + movs r1, #0 + bl sub_0804AA60 + str r5, [r0, #0x50] + strb r4, [r0, #0xb] + ldrb r1, [r7] + asrs r1, r4 + ands r1, r6 + cmp r1, #0 + beq _0803F900 + strb r6, [r0, #0xe] + b _0803F902 + .align 2, 0 +_0803F8FC: .4byte gUnk_03003DBC +_0803F900: + strb r1, [r0, #0xe] +_0803F902: + adds r4, #1 + cmp r4, #7 + bls _0803F8E0 + adds r0, r5, #0 + movs r1, #0 + bl sub_080042AC +_0803F910: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0803F914 +sub_0803F914: @ 0x0803F914 + push {r4, r5, r6, r7, lr} + sub sp, #4 + adds r7, r0, #0 + adds r4, r7, #0 + adds r4, #0x80 + ldrb r0, [r4] + cmp r0, #2 + beq _0803F998 + cmp r0, #2 + bgt _0803F932 + cmp r0, #0 + beq _0803F95A + cmp r0, #1 + beq _0803F97A + b _0803FA40 +_0803F932: + cmp r0, #4 + bne _0803F938 + b _0803FA3A +_0803F938: + cmp r0, #4 + blt _0803F9CE + adds r3, r4, #0 + cmp r0, #0xff + beq _0803F944 + b _0803FA42 +_0803F944: + ldrb r0, [r7, #0xe] + subs r0, #1 + strb r0, [r7, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _0803FA42 + strb r0, [r3] + movs r0, #0xb + strb r0, [r7, #0xe] + b _0803FA42 +_0803F95A: + ldrb r0, [r7, #0xe] + subs r0, #1 + strb r0, [r7, #0xe] + lsls r0, r0, #0x18 + adds r3, r4, #0 + cmp r0, #0 + bne _0803FA42 + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r7, #0x24] + movs r0, #0x14 + strb r0, [r7, #0xe] + b _0803FA42 +_0803F97A: + ldrb r0, [r7, #0xe] + subs r0, #1 + strb r0, [r7, #0xe] + lsls r0, r0, #0x18 + adds r3, r4, #0 + cmp r0, #0 + bne _0803FA42 + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] + movs r0, #0xc0 + strh r0, [r7, #0x24] + movs r0, #0xc + strb r0, [r7, #0xe] + b _0803FA42 +_0803F998: + ldrb r0, [r7, #0xe] + subs r0, #1 + strb r0, [r7, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + adds r3, r4, #0 + cmp r1, #0 + bne _0803FA42 + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] + strh r1, [r7, #0x24] + ldrb r0, [r7, #0x14] + cmp r0, #1 + bhi _0803F9C8 + str r3, [sp] + bl sub_08000E50 + movs r1, #0x7f + ands r0, r1 + adds r0, #0x40 + strb r0, [r7, #0xe] + ldr r3, [sp] + b _0803FA42 +_0803F9C8: + movs r0, #8 + strb r0, [r7, #0xe] + b _0803FA42 +_0803F9CE: + ldrb r0, [r7, #0xe] + subs r0, #1 + strb r0, [r7, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0803FA32 + movs r0, #0 + strh r1, [r7, #0x36] + strb r0, [r4] + ldr r1, _0803FA04 @ =gUnk_080D0ABF + ldrb r0, [r7, #0x14] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r7, #0xe] + adds r0, r7, #0 + bl sub_08040934 + adds r1, r0, #0 + cmp r1, #2 + beq _0803FA1A + cmp r1, #2 + bhi _0803FA08 + cmp r1, #1 + beq _0803FA0E + b _0803FA26 + .align 2, 0 +_0803FA04: .4byte gUnk_080D0ABF +_0803FA08: + cmp r1, #3 + beq _0803FA20 + b _0803FA26 +_0803FA0E: + movs r0, #4 + strb r0, [r7, #0xc] + adds r0, r7, #0 + adds r0, #0x74 + strb r1, [r0] + b _0803FA40 +_0803FA1A: + movs r0, #5 + strb r0, [r7, #0xc] + b _0803FA40 +_0803FA20: + movs r0, #6 + strb r0, [r7, #0xc] + b _0803FA40 +_0803FA26: + adds r1, r7, #0 + adds r1, #0x80 + movs r0, #4 + strb r0, [r1] + adds r3, r1, #0 + b _0803FA42 +_0803FA32: + adds r0, r7, #0 + bl sub_08040AD4 + b _0803FA40 +_0803FA3A: + adds r0, r7, #0 + bl sub_08040670 +_0803FA40: + adds r3, r4, #0 +_0803FA42: + adds r1, r7, #0 + adds r1, #0x82 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803FAAC + movs r0, #4 + strb r0, [r1] + ldrb r2, [r7, #0x15] + adds r2, #0x12 + movs r0, #0x1c + ands r2, r0 + asrs r2, r2, #2 + movs r0, #0x9b + movs r1, #0 + str r3, [sp] + bl sub_080A2960 + adds r6, r0, #0 + ldr r3, [sp] + cmp r6, #0 + beq _0803FAAC + str r7, [r6, #0x50] + str r3, [sp] + bl sub_08000E50 + movs r5, #0xf + ands r0, r5 + ldr r1, _0803FAC4 @ =0x0000FFF9 + adds r4, r1, #0 + adds r0, r4, r0 + ldrh r1, [r6, #0x2e] + adds r0, r0, r1 + strh r0, [r6, #0x2e] + bl sub_08000E50 + ands r0, r5 + adds r4, r4, r0 + ldrh r0, [r6, #0x32] + adds r4, r4, r0 + strh r4, [r6, #0x32] + adds r2, r6, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + ldr r3, [sp] +_0803FAAC: + ldrb r0, [r3] + cmp r0, #0xff + beq _0803FAB8 + adds r0, r7, #0 + bl sub_080AEF88 +_0803FAB8: + adds r0, r7, #0 + bl sub_080042B8 + add sp, #4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0803FAC4: .4byte 0x0000FFF9 + + thumb_func_start sub_0803FAC8 +sub_0803FAC8: @ 0x0803FAC8 + push {lr} + bl sub_080042B8 + pop {pc} + + thumb_func_start sub_0803FAD0 +sub_0803FAD0: @ 0x0803FAD0 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #5 + bls _0803FADE + b _0803FD32 +_0803FADE: + lsls r0, r0, #2 + ldr r1, _0803FAE8 @ =_0803FAEC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803FAE8: .4byte _0803FAEC +_0803FAEC: @ jump table + .4byte _0803FB04 @ case 0 + .4byte _0803FB34 @ case 1 + .4byte _0803FBB8 @ case 2 + .4byte _0803FBE2 @ case 3 + .4byte _0803FC80 @ case 4 + .4byte _0803FD0C @ case 5 +_0803FB04: + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r7, #0 + bl sub_080044EC + adds r1, r0, #0 + cmp r1, #1 + beq _0803FB16 + b _0803FD32 +_0803FB16: + adds r0, r7, #0 + adds r0, #0x80 + strb r1, [r0] + movs r0, #0xc0 + strb r0, [r7, #0xe] + ldrb r1, [r7, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r7, #0x10] + movs r0, #0xa6 + lsls r0, r0, #1 + bl sub_080A3268 + movs r0, #0x14 + b _0803FC4A +_0803FB34: + ldrb r0, [r7, #0xe] + subs r0, #1 + strb r0, [r7, #0xe] + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r3, r7, #0 + adds r3, #0x80 + cmp r2, #0 + bne _0803FB58 + movs r0, #2 + strb r0, [r3] + adds r1, r7, #0 + adds r1, #0x3f + movs r0, #0x35 + strb r0, [r1] + adds r0, r7, #0 + adds r0, #0x62 + strb r2, [r0] +_0803FB58: + adds r2, r7, #0 + adds r2, #0x45 + ldr r0, _0803FB70 @ =gUnk_080D0ABC + ldrb r1, [r7, #0x14] + adds r1, r1, r0 + ldrb r0, [r2] + ldrb r1, [r1] + cmp r0, r1 + bhs _0803FB74 + movs r0, #1 + strb r0, [r7, #0xe] + b _0803FB76 + .align 2, 0 +_0803FB70: .4byte gUnk_080D0ABC +_0803FB74: + movs r0, #0 +_0803FB76: + cmp r0, #0 + bne _0803FB7C + b _0803FD32 +_0803FB7C: + movs r1, #0 + movs r0, #2 + strb r0, [r3] + adds r2, r7, #0 + adds r2, #0x3f + movs r0, #0x35 + strb r0, [r2] + adds r0, r7, #0 + adds r0, #0x62 + strb r1, [r0] + ldrb r0, [r7, #0x14] + adds r0, #1 + strb r0, [r7, #0x14] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bhi _0803FBA0 + b _0803FD32 +_0803FBA0: + movs r0, #7 + strb r0, [r7, #0xc] + movs r0, #0xe0 + strb r0, [r7, #0xe] + bl sub_0807A108 + ldr r0, _0803FBB4 @ =0x00000127 + bl sub_080A3268 + b _0803FD4E + .align 2, 0 +_0803FBB4: .4byte 0x00000127 +_0803FBB8: + ldr r0, [r7, #0x54] + adds r0, #0x74 + movs r1, #0x10 + strb r1, [r0] + ldrb r0, [r7, #0xe] + cmp r0, #0 + beq _0803FBD4 + adds r0, r7, #0 + adds r0, #0x80 + movs r1, #3 + strb r1, [r0] + movs r0, #0x40 + strb r0, [r7, #0xe] + b _0803FD32 +_0803FBD4: + adds r0, r7, #0 + adds r0, #0x80 + movs r1, #4 + strb r1, [r0] + movs r0, #0x50 + strb r0, [r7, #0xe] + b _0803FD32 +_0803FBE2: + ldrb r0, [r7, #0xe] + cmp r0, #0 + beq _0803FC08 + subs r0, #1 + strb r0, [r7, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0803FBF4 + b _0803FD32 +_0803FBF4: + ldrb r1, [r7, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r7, #0x10] + movs r0, #0xe0 + lsls r0, r0, #0xa + str r0, [r7, #0x20] + movs r0, #0x10 + strb r0, [r7, #0xf] + b _0803FD32 +_0803FC08: + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r7, #0 + bl sub_08003FC4 + adds r2, r0, #0 + cmp r2, #0 + bne _0803FC52 + adds r1, r7, #0 + adds r1, #0x80 + movs r0, #5 + strb r0, [r1] + movs r0, #0x10 + strb r0, [r7, #0xe] + ldrb r1, [r7, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r7, #0x10] + adds r1, r7, #0 + adds r1, #0x45 + movs r0, #0xff + strb r0, [r1] + adds r0, r7, #0 + adds r0, #0x86 + strb r2, [r0] + adds r0, r7, #0 + bl sub_080408EC + movs r0, #0xa6 + lsls r0, r0, #1 + bl sub_080A3268 + movs r0, #0x1e +_0803FC4A: + movs r1, #4 + bl sub_08080964 + b _0803FD32 +_0803FC52: + ldrb r0, [r7, #0xf] + cmp r0, #0 + beq _0803FD32 + subs r1, r0, #1 + strb r1, [r7, #0xf] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _0803FC6C + movs r0, #0xd8 + lsls r0, r0, #1 + bl sub_080A3268 + b _0803FD32 +_0803FC6C: + movs r0, #7 + ands r1, r0 + cmp r1, #0 + bne _0803FD32 + ldr r0, _0803FC7C @ =0x00000149 + bl sub_080A3268 + b _0803FD32 + .align 2, 0 +_0803FC7C: .4byte 0x00000149 +_0803FC80: + ldrb r0, [r7, #0xe] + subs r1, r0, #1 + strb r1, [r7, #0xe] + lsls r0, r1, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + bne _0803FCA8 + adds r0, r7, #0 + adds r0, #0x80 + movs r1, #5 + strb r1, [r0] + movs r0, #0x10 + strb r0, [r7, #0xe] + adds r0, r7, #0 + adds r0, #0x86 + strb r2, [r0] + adds r0, r7, #0 + bl sub_080408EC + b _0803FD32 +_0803FCA8: + movs r0, #1 + ands r1, r0 + cmp r1, #0 + beq _0803FD32 + movs r0, #0x9b + movs r1, #1 + movs r2, #0xff + bl sub_080A2960 + adds r6, r0, #0 + cmp r6, #0 + beq _0803FD32 + str r7, [r6, #0x50] + adds r0, r7, #0 + adds r1, r6, #0 + bl sub_0806FA24 + bl sub_08000E50 + movs r5, #0xf + ands r0, r5 + ldr r1, _0803FD08 @ =0x0000FFF9 + adds r4, r1, #0 + adds r0, r4, r0 + ldrh r1, [r6, #0x2e] + adds r0, r0, r1 + strh r0, [r6, #0x2e] + bl sub_08000E50 + ands r0, r5 + adds r4, r4, r0 + ldrh r0, [r6, #0x32] + adds r4, r4, r0 + strh r4, [r6, #0x32] + adds r2, r6, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x92 + lsls r0, r0, #1 + bl sub_080A3268 + b _0803FD32 + .align 2, 0 +_0803FD08: .4byte 0x0000FFF9 +_0803FD0C: + ldrb r0, [r7, #0xe] + subs r0, #1 + strb r0, [r7, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0803FD32 + movs r0, #1 + strb r0, [r7, #0xc] + adds r0, r7, #0 + adds r0, #0x80 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + subs r0, #0xb + strb r1, [r0] + adds r0, r7, #0 + bl sub_08040670 +_0803FD32: + adds r0, r7, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #2 + bls _0803FD48 + ldrb r1, [r7, #0xe] + movs r0, #1 + ands r0, r1 + adds r1, r7, #0 + adds r1, #0x62 + strb r0, [r1] +_0803FD48: + adds r0, r7, #0 + bl sub_080042B8 +_0803FD4E: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0803FD50 +sub_0803FD50: @ 0x0803FD50 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x80 + ldrb r0, [r5] + cmp r0, #1 + beq _0803FDA8 + cmp r0, #1 + bgt _0803FD68 + cmp r0, #0 + beq _0803FD72 + b _0803FE86 +_0803FD68: + cmp r0, #2 + beq _0803FE0C + cmp r0, #3 + beq _0803FE62 + b _0803FE86 +_0803FD72: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _0803FD82 + b _0803FE86 +_0803FD82: + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + adds r0, r4, #0 + adds r0, #0x74 + strb r1, [r0] + movs r0, #0x80 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + movs r0, #0x90 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + ldr r0, _0803FDA4 @ =0x0000012B + bl sub_080A3268 + b _0803FE86 + .align 2, 0 +_0803FDA4: .4byte 0x0000012B +_0803FDA8: + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _0803FE86 + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + adds r0, r4, #0 + adds r0, #0x84 + ldrb r0, [r0] + cmp r0, #1 + beq _0803FDD8 + cmp r0, #1 + bgt _0803FDD0 + cmp r0, #0 + beq _0803FDDE + b _0803FDE4 +_0803FDD0: + cmp r0, #2 + beq _0803FDDE + cmp r0, #3 + bne _0803FDE4 +_0803FDD8: + movs r0, #1 + strb r0, [r4, #0xf] + b _0803FDF0 +_0803FDDE: + movs r0, #0 + strb r0, [r4, #0xf] + b _0803FDF0 +_0803FDE4: + bl sub_08000E50 + movs r1, #0x20 + ands r1, r0 + lsrs r1, r1, #5 + strb r1, [r4, #0xf] +_0803FDF0: + ldrb r0, [r4, #0x14] + cmp r0, #1 + bls _0803FDFA + movs r0, #1 + strb r0, [r4, #0xf] +_0803FDFA: + movs r0, #0xa6 + lsls r0, r0, #1 + bl sub_080A3268 + movs r0, #0x1e + movs r1, #4 + bl sub_08080964 + b _0803FE86 +_0803FE0C: + ldrb r0, [r4, #0xe] + subs r1, r0, #1 + strb r1, [r4, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _0803FE34 + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + ldr r2, _0803FE30 @ =gUnk_080D0ABF + ldrb r0, [r4, #0x14] + lsls r0, r0, #1 + movs r1, #1 + orrs r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r4, #0xe] + b _0803FE86 + .align 2, 0 +_0803FE30: .4byte gUnk_080D0ABF +_0803FE34: + movs r0, #7 + ands r1, r0 + cmp r1, #0 + bne _0803FE46 + ldrb r2, [r4, #0xf] + adds r0, r4, #0 + movs r1, #0x1f + bl sub_0804A98C +_0803FE46: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0803FE86 + ldrb r0, [r4, #0x14] + cmp r0, #1 + bls _0803FE86 + ldrb r0, [r4, #0xe] + cmp r0, #5 + bhi _0803FE86 + movs r0, #0x80 + strb r0, [r4, #0xe] + movs r0, #0 + strb r0, [r4, #0xf] + b _0803FE86 +_0803FE62: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0803FE80 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r5] + strh r1, [r4, #0x36] + adds r0, r4, #0 + bl sub_08040670 + b _0803FE86 +_0803FE80: + adds r0, r4, #0 + bl sub_08040AD4 +_0803FE86: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803FE90 +sub_0803FE90: @ 0x0803FE90 + push {r4, r5, lr} + adds r4, r0, #0 + adds r3, r4, #0 + adds r3, #0x80 + ldrb r2, [r3] + cmp r2, #1 + beq _0803FED4 + cmp r2, #1 + bgt _0803FEA8 + cmp r2, #0 + beq _0803FEAE + b _0803FF74 +_0803FEA8: + cmp r2, #2 + beq _0803FF52 + b _0803FF74 +_0803FEAE: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803FF74 + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] + movs r0, #0x40 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0x14] + cmp r0, #1 + bls _0803FF74 + movs r0, #0x80 + strb r0, [r4, #0xe] + movs r0, #1 + strb r0, [r4, #0xf] + b _0803FF74 +_0803FED4: + ldrb r0, [r4, #0xe] + subs r1, r0, #1 + strb r1, [r4, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _0803FEFC + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] + ldr r1, _0803FEF8 @ =gUnk_080D0ABF + ldrb r0, [r4, #0x14] + lsls r0, r0, #1 + orrs r0, r2 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r4, #0xe] + b _0803FF74 + .align 2, 0 +_0803FEF8: .4byte gUnk_080D0ABF +_0803FEFC: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0803FF24 + movs r0, #7 + ands r1, r0 + cmp r1, #0 + bne _0803FF14 + ldrb r2, [r4, #0xf] + adds r0, r4, #0 + movs r1, #0x1f + bl sub_0804A98C +_0803FF14: + ldrb r0, [r4, #0xe] + cmp r0, #5 + bhi _0803FF74 + movs r0, #0x40 + strb r0, [r4, #0xe] + movs r0, #0 + strb r0, [r4, #0xf] + b _0803FF74 +_0803FF24: + movs r5, #0xf + ands r5, r1 + cmp r5, #0 + bne _0803FF74 + adds r0, r4, #0 + movs r1, #0x1f + movs r2, #2 + bl sub_0804A98C + adds r1, r0, #0 + cmp r1, #0 + beq _0803FF74 + strb r5, [r1, #0xb] + adds r0, r4, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + beq _0803FF74 + ldrh r0, [r1, #0x24] + lsls r0, r0, #0x10 + asrs r0, r0, #0x11 + strh r0, [r1, #0x24] + b _0803FF74 +_0803FF52: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0803FF6E + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r3] + adds r0, r4, #0 + bl sub_08040670 + b _0803FF74 +_0803FF6E: + adds r0, r4, #0 + bl sub_08040AD4 +_0803FF74: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + + thumb_func_start sub_0803FF7C +sub_0803FF7C: @ 0x0803FF7C + push {r4, r5, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x80 + ldrb r5, [r2] + cmp r5, #1 + beq _0803FFBC + cmp r5, #1 + bgt _0803FF94 + cmp r5, #0 + beq _0803FF9A + b _08040062 +_0803FF94: + cmp r5, #2 + beq _08040040 + b _08040062 +_0803FF9A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08040062 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + movs r0, #0x80 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0x14] + cmp r0, #1 + bls _08040062 + movs r0, #1 + strb r0, [r4, #0xf] + b _08040062 +_0803FFBC: + ldrb r0, [r4, #0xe] + subs r1, r0, #1 + strb r1, [r4, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _0803FFE4 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + ldr r1, _0803FFE0 @ =gUnk_080D0ABF + ldrb r0, [r4, #0x14] + lsls r0, r0, #1 + orrs r0, r5 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r4, #0xe] + b _08040062 + .align 2, 0 +_0803FFE0: .4byte gUnk_080D0ABF +_0803FFE4: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0804000C + movs r0, #7 + ands r1, r0 + cmp r1, #0 + bne _0803FFFC + ldrb r2, [r4, #0xf] + adds r0, r4, #0 + movs r1, #0x1f + bl sub_0804A98C +_0803FFFC: + ldrb r0, [r4, #0xe] + cmp r0, #5 + bhi _08040062 + movs r0, #0x80 + strb r0, [r4, #0xe] + movs r0, #0 + strb r0, [r4, #0xf] + b _08040062 +_0804000C: + movs r0, #0x1f + ands r1, r0 + cmp r1, #0 + bne _08040062 + adds r0, r4, #0 + movs r1, #0x1f + movs r2, #2 + bl sub_0804A98C + adds r1, r0, #0 + cmp r1, #0 + beq _08040062 + strb r5, [r1, #0xb] + ldrh r0, [r1, #0x32] + subs r0, #0x20 + strh r0, [r1, #0x32] + adds r0, r4, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + beq _08040062 + ldrh r0, [r1, #0x24] + lsls r0, r0, #0x10 + asrs r0, r0, #0x11 + strh r0, [r1, #0x24] + b _08040062 +_08040040: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0804005C + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r2] + adds r0, r4, #0 + bl sub_08040670 + b _08040062 +_0804005C: + adds r0, r4, #0 + bl sub_08040AD4 +_08040062: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0804006C +sub_0804006C: @ 0x0804006C + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_08078B48 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08040090 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080400C2 + movs r0, #2 + bl sub_0807CD10 + movs r0, #8 + strb r0, [r4, #0xf] + b _080400BA +_08040090: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _080400B4 + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _080400BA + adds r1, r4, #0 + adds r1, #0x45 + strb r0, [r1] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + b _080400BA +_080400B4: + adds r0, r4, #0 + bl sub_0804A7D4 +_080400BA: + adds r0, r4, #0 + bl sub_080042B8 + b _08040126 +_080400C2: + ldrb r0, [r4, #0xf] + adds r0, #1 + movs r1, #7 + ands r0, r1 + strb r0, [r4, #0xf] + cmp r0, #0 + bne _08040120 + adds r0, r4, #0 + movs r1, #0x55 + movs r2, #0 + bl sub_080A29AC + adds r5, r0, #0 + cmp r5, #0 + beq _08040120 + bl sub_08000E50 + ldr r1, _08040128 @ =0x00003F3F + ands r0, r1 + movs r3, #0xff + adds r1, r0, #0 + ands r1, r3 + ldr r6, _0804012C @ =0x0000FFE0 + adds r2, r6, #0 + adds r1, r2, r1 + ldrh r6, [r5, #0x2e] + adds r1, r1, r6 + strh r1, [r5, #0x2e] + lsrs r0, r0, #8 + ands r0, r3 + adds r2, r2, r0 + ldrh r0, [r5, #0x32] + adds r2, r2, r0 + strh r2, [r5, #0x32] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r2] + movs r0, #0xb7 + lsls r0, r0, #1 + bl sub_080A3268 +_08040120: + adds r0, r4, #0 + bl sub_080042B8 +_08040126: + pop {r4, r5, r6, pc} + .align 2, 0 +_08040128: .4byte 0x00003F3F +_0804012C: .4byte 0x0000FFE0 + + thumb_func_start sub_08040130 +sub_08040130: @ 0x08040130 + push {lr} + movs r2, #0 + movs r1, #1 + strb r1, [r0, #0xc] + strb r2, [r0, #0xe] + adds r1, r0, #0 + adds r1, #0x80 + strb r2, [r1] + adds r3, r0, #0 + adds r3, #0x29 + ldrb r2, [r3] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #6 + orrs r1, r2 + strb r1, [r3] + ldrb r1, [r0, #0xe] + bl sub_080042AC + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804015C +sub_0804015C: @ 0x0804015C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + adds r0, r5, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _0804017C + adds r2, r4, #0 + adds r2, #0x6d + ldrb r1, [r2] + movs r0, #2 + orrs r0, r1 + strb r0, [r2] + bl sub_0805E780 +_0804017C: + adds r0, r5, #0 + adds r0, #0x7a + ldrh r0, [r0] + strh r0, [r4, #0x2e] + adds r0, r5, #0 + adds r0, #0x7e + ldrh r0, [r0] + strh r0, [r4, #0x32] + adds r0, r5, #0 + adds r0, #0x74 + ldrb r0, [r0] + cmp r0, #0 + bne _0804019E + adds r0, r4, #0 + bl sub_080042B8 + b _080401A6 +_0804019E: + adds r0, r4, #0 + movs r1, #2 + bl sub_080042BA +_080401A6: + ldrb r0, [r5, #0xc] + cmp r0, #4 + bls _080401C0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _080401D2 + movs r0, #1 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC + b _080401D2 +_080401C0: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080401D2 + movs r0, #0 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC +_080401D2: + ldrb r0, [r5, #0xc] + cmp r0, #3 + beq _080401DC + ldrh r0, [r5, #0x36] + strh r0, [r4, #0x36] +_080401DC: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080401E0 +sub_080401E0: @ 0x080401E0 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xb] + adds r5, r1, #0 + cmp r5, #0 + beq _08040212 + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, #1 + adds r3, r4, #0 + adds r3, #0x29 + movs r0, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrb r1, [r4, #0xb] + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC + b _08040260 +_08040212: + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _08040264 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x45 + bhi _08040260 + adds r0, r4, #0 + movs r1, #2 + movs r2, #1 + bl sub_08040648 + adds r0, r4, #0 + movs r1, #2 + movs r2, #2 + bl sub_08040648 + movs r0, #1 + strb r0, [r4, #0xc] + strb r5, [r4, #0xe] + bl sub_08000E50 + movs r1, #0x7f + ands r0, r1 + adds r0, #0x17 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x74 + strb r5, [r0] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC +_08040260: + pop {r4, r5, pc} + .align 2, 0 +_08040264: .4byte gUnk_03003DBC + + thumb_func_start sub_08040268 +sub_08040268: @ 0x08040268 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _08040286 + adds r2, r4, #0 + adds r2, #0x6d + ldrb r1, [r2] + movs r0, #2 + orrs r0, r1 + strb r0, [r2] + bl sub_0805E780 +_08040286: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 + ldrb r2, [r4, #0xb] + cmp r2, #1 + beq _080402C6 + cmp r2, #1 + bgt _0804029E + cmp r2, #0 + beq _080402E4 + b _08040382 +_0804029E: + cmp r2, #2 + bne _08040382 + ldr r1, _080402DC @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + lsls r0, r0, #1 + ldr r1, _080402E0 @ =gUnk_080D0B18 + adds r0, r0, r1 + movs r1, #0 + ldrsb r1, [r0, r1] + ldrh r2, [r4, #0x2e] + adds r1, r1, r2 + strh r1, [r4, #0x2e] + ldrb r0, [r0, #1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] +_080402C6: + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0x1e] + cmp r0, #2 + beq _08040382 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #6 + ands r0, r1 + strb r0, [r4, #0x18] + b _08040382 + .align 2, 0 +_080402DC: .4byte gUnk_03001160 +_080402E0: .4byte gUnk_080D0B18 +_080402E4: + adds r5, r4, #0 + adds r5, #0x74 + ldrb r0, [r5] + cmp r0, #1 + beq _0804032E + cmp r0, #1 + bgt _080402F8 + cmp r0, #0 + beq _08040302 + b _08040382 +_080402F8: + cmp r0, #0x10 + beq _08040354 + cmp r0, #0x11 + beq _08040366 + b _08040382 +_08040302: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08040382 + bl sub_08000E50 + movs r1, #0x7f + ands r0, r1 + adds r0, #0x27 + strb r0, [r4, #0xf] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08040382 + strb r1, [r5] + adds r0, r4, #0 + movs r1, #8 + bl sub_080042AC + b _08040382 +_0804032E: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08040382 + strb r2, [r5] + bl sub_08000E50 + movs r1, #0x7f + ands r0, r1 + adds r0, #0x17 + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + b _08040382 +_08040354: + adds r0, r4, #0 + movs r1, #7 + bl sub_080042AC + movs r0, #0x11 + strb r0, [r5] + movs r0, #0x50 + strb r0, [r4, #0xf] + b _08040382 +_08040366: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08040382 + movs r0, #1 + strb r0, [r5] + movs r0, #0x30 + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #8 + bl sub_080042AC +_08040382: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0804038C +sub_0804038C: @ 0x0804038C + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _080403AA + adds r2, r4, #0 + adds r2, #0x6d + ldrb r1, [r2] + movs r0, #2 + orrs r0, r1 + strb r0, [r2] + bl sub_0805E780 +_080403AA: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0x1e] + cmp r0, #2 + bne _080403CA + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] +_080403CA: + pop {r4, pc} + + thumb_func_start sub_080403CC +sub_080403CC: @ 0x080403CC + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + adds r3, r0, #0 + adds r3, #0x29 + ldrb r2, [r3] + subs r1, #9 + ands r1, r2 + movs r2, #4 + orrs r1, r2 + strb r1, [r3] + movs r1, #0 + bl sub_080042AC + pop {pc} + .align 2, 0 + + thumb_func_start sub_080403EC +sub_080403EC: @ 0x080403EC + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _0804040A + adds r2, r4, #0 + adds r2, #0x6d + ldrb r1, [r2] + movs r0, #2 + orrs r0, r1 + strb r0, [r2] + bl sub_0805E780 +_0804040A: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0804041C +sub_0804041C: @ 0x0804041C + push {lr} + movs r2, #0 + movs r1, #1 + strb r1, [r0, #0xc] + adds r1, r0, #0 + adds r1, #0x80 + strb r2, [r1] + movs r1, #0xa + strb r1, [r0, #0xe] + ldrb r2, [r0, #0x18] + subs r1, #0xe + ands r1, r2 + strb r1, [r0, #0x18] + adds r3, r0, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r2, #7 + orrs r1, r2 + strb r1, [r3] + movs r1, #0 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804044C +sub_0804044C: @ 0x0804044C + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _0804046A + adds r2, r4, #0 + adds r2, #0x6d + ldrb r1, [r2] + movs r0, #2 + orrs r0, r1 + strb r0, [r2] + bl sub_0805E780 +_0804046A: + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #5 + beq _0804048A + adds r1, r4, #0 + adds r1, #0x80 + ldrb r0, [r1] + cmp r0, #0 + beq _080404BC + movs r0, #0 + strb r0, [r1] + ldrb r1, [r4, #0x18] + subs r0, #4 + ands r0, r1 + strb r0, [r4, #0x18] + b _080404BC +_0804048A: + adds r1, r4, #0 + adds r1, #0x80 + ldrb r0, [r1] + cmp r0, #0 + bne _080404A6 + adds r0, #1 + strb r0, [r1] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] +_080404A6: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080404BC + movs r0, #0xa + strb r0, [r4, #0xe] + ldr r0, _080404CC @ =0x00000149 + bl sub_080A3268 +_080404BC: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 +_080404CC: .4byte 0x00000149 + + thumb_func_start sub_080404D0 +sub_080404D0: @ 0x080404D0 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xb] + cmp r0, #0 + beq _080404FC + movs r0, #2 + strb r0, [r2, #0xc] + movs r0, #0xa + strb r0, [r2, #0xe] + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + subs r0, #0x12 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r3] + adds r0, r2, #0 + movs r1, #2 + bl sub_08004260 + b _08040518 +_080404FC: + movs r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + subs r0, #5 + ands r0, r1 + strb r0, [r2, #0x18] + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] +_08040518: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804051C +sub_0804051C: @ 0x0804051C + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _0804053A + adds r2, r4, #0 + adds r2, #0x6d + ldrb r1, [r2] + movs r0, #2 + orrs r0, r1 + strb r0, [r2] + bl sub_0805E780 +_0804053A: + adds r1, r4, #0 + adds r1, #0x80 + ldrb r0, [r1] + cmp r0, #0 + beq _0804054A + cmp r0, #1 + beq _0804056C + b _080405C4 +_0804054A: + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #6 + bne _080405CC + movs r0, #1 + movs r2, #1 + strb r0, [r1] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + b _080405C4 +_0804056C: + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #6 + beq _08040582 + movs r0, #0 + strb r0, [r1] + ldrb r1, [r4, #0x18] + subs r0, #4 + ands r0, r1 + strb r0, [r4, #0x18] + b _080405C4 +_08040582: + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080405A8 + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + ldr r0, _080405D0 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x46 + bhi _080405A8 + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + movs r2, #1 + bl sub_08040648 +_080405A8: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080405BE + movs r0, #0xa + strb r0, [r4, #0xe] + ldr r0, _080405D4 @ =0x00000149 + bl sub_080A3268 +_080405BE: + adds r0, r4, #0 + bl sub_08004274 +_080405C4: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 +_080405CC: + pop {r4, pc} + .align 2, 0 +_080405D0: .4byte gUnk_03003DBC +_080405D4: .4byte 0x00000149 + + thumb_func_start sub_080405D8 +sub_080405D8: @ 0x080405D8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _080405F6 + adds r2, r4, #0 + adds r2, #0x6d + ldrb r1, [r2] + movs r0, #2 + orrs r0, r1 + strb r0, [r2] + bl sub_0805E780 +_080405F6: + adds r3, r4, #0 + adds r3, #0x80 + ldrb r2, [r3] + cmp r2, #0 + bne _08040626 + ldr r0, [r4, #0x50] + ldr r0, [r0, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #6 + beq _08040638 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08040638 + adds r0, r2, #1 + strb r0, [r3] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 + b _08040638 +_08040626: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08040638 + bl sub_0805E780 +_08040638: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_08040648 +sub_08040648: @ 0x08040648 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r4, r1, #0 + adds r7, r2, #0 + movs r0, #0x4f + bl sub_0804AA60 + adds r5, r0, #0 + strb r7, [r5, #0xb] + str r6, [r5, #0x50] + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_0806FA24 + cmp r4, #2 + bne _0804066E + cmp r7, #0 + bne _0804066E + str r5, [r6, #0x54] +_0804066E: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08040670 +sub_08040670: @ 0x08040670 + push {lr} + adds r2, r0, #0 + movs r1, #0 + movs r0, #1 + strb r0, [r2, #0xc] + adds r0, r2, #0 + adds r0, #0x80 + strb r1, [r0] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r2, #0x24] + movs r0, #0xc + strb r0, [r2, #0xe] + ldrb r0, [r2, #0x14] + cmp r0, #0 + bne _08040698 + adds r0, r2, #0 + bl sub_080406A0 + b _0804069E +_08040698: + adds r0, r2, #0 + bl sub_08040770 +_0804069E: + pop {pc} + + thumb_func_start sub_080406A0 +sub_080406A0: @ 0x080406A0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + bl sub_08000E50 + mov r8, r0 + movs r0, #0x30 + mov r1, r8 + ands r1, r0 + mov r8, r1 + adds r0, r5, #0 + adds r0, #0x86 + ldrb r6, [r0] + ldr r2, _080406F0 @ =gUnk_03000BF0 + ldrh r3, [r2, #6] + ldr r4, _080406F4 @ =gUnk_080D0B58 + lsls r1, r6, #1 + lsls r0, r6, #2 + adds r0, r0, r4 + ldrh r0, [r0] + adds r7, r3, r0 + ldrh r2, [r2, #8] + adds r1, #1 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r0, [r1] + adds r4, r2, r0 + adds r0, r5, #0 + adds r1, r7, #0 + adds r2, r4, #0 + movs r3, #0x1c + bl sub_0806FCB8 + cmp r0, #0 + beq _0804071E + cmp r6, #0 + beq _080406F8 + movs r6, #0 + b _08040702 + .align 2, 0 +_080406F0: .4byte gUnk_03000BF0 +_080406F4: .4byte gUnk_080D0B58 +_080406F8: + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + adds r6, r1, #1 +_08040702: + ldr r2, _0804074C @ =gUnk_03000BF0 + ldrh r3, [r2, #6] + ldr r4, _08040750 @ =gUnk_080D0B58 + lsls r1, r6, #1 + lsls r0, r6, #2 + adds r0, r0, r4 + ldrh r0, [r0] + adds r7, r3, r0 + ldrh r2, [r2, #8] + adds r1, #1 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r0, [r1] + adds r4, r2, r0 +_0804071E: + movs r2, #0x2e + ldrsh r0, [r5, r2] + movs r2, #0x32 + ldrsh r1, [r5, r2] + adds r2, r7, #0 + adds r3, r4, #0 + bl sub_080045D4 + strb r0, [r5, #0x15] + movs r0, #0x20 + mov r1, r8 + ands r0, r1 + cmp r0, #0 + beq _0804075A + ldrb r1, [r5, #0x15] + movs r0, #0x10 + mov r2, r8 + ands r2, r0 + cmp r2, #0 + beq _08040754 + adds r0, r1, #1 + b _08040758 + .align 2, 0 +_0804074C: .4byte gUnk_03000BF0 +_08040750: .4byte gUnk_080D0B58 +_08040754: + adds r0, r1, #0 + adds r0, #0x1f +_08040758: + strb r0, [r5, #0x15] +_0804075A: + ldrb r0, [r5, #0x15] + movs r1, #0x1f + ands r1, r0 + strb r1, [r5, #0x15] + adds r0, r5, #0 + adds r0, #0x86 + strb r6, [r0] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08040770 +sub_08040770: @ 0x08040770 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r0, #0 + bl sub_08000E50 + mov r8, r0 + movs r0, #0x38 + mov r1, r8 + ands r1, r0 + mov r8, r1 + adds r0, r7, #0 + adds r0, #0x86 + ldrb r5, [r0] + ldr r2, _080407CC @ =gUnk_03000BF0 + ldrh r3, [r2, #6] + ldr r4, _080407D0 @ =gUnk_080D0B64 + lsls r1, r5, #1 + lsls r0, r5, #2 + adds r0, r0, r4 + ldrh r0, [r0] + adds r6, r3, r0 + ldrh r2, [r2, #8] + adds r1, #1 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r0, [r1] + adds r4, r2, r0 + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r4, #0 + movs r3, #0x1c + bl sub_0806FCB8 + cmp r0, #0 + beq _0804089A + ldrb r0, [r7, #0x14] + cmp r0, #2 + beq _08040822 + movs r0, #8 + mov r2, r8 + ands r0, r2 + cmp r0, #0 + beq _080407D4 + adds r5, #1 + b _080407D6 + .align 2, 0 +_080407CC: .4byte gUnk_03000BF0 +_080407D0: .4byte gUnk_080D0B64 +_080407D4: + adds r5, #3 +_080407D6: + movs r0, #3 + ands r5, r0 + adds r0, r7, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + beq _0804087E + adds r0, r7, #0 + adds r0, #0x75 + ldrb r0, [r0] + cmp r0, #0x3c + beq _0804080A + cmp r0, #0x3c + bgt _080407F8 + cmp r0, #0xf + beq _08040802 + b _0804087E +_080407F8: + cmp r0, #0xc3 + beq _0804081A + cmp r0, #0xf0 + beq _08040812 + b _0804087E +_08040802: + cmp r5, #0 + bne _0804087E + movs r5, #2 + b _0804087E +_0804080A: + cmp r5, #1 + bne _0804087E + movs r5, #3 + b _0804087E +_08040812: + cmp r5, #2 + bne _0804087E + movs r5, #0 + b _0804087E +_0804081A: + cmp r5, #3 + bne _0804087E + movs r5, #1 + b _0804087E +_08040822: + adds r1, r7, #0 + adds r1, #0x87 + ldrb r2, [r1] + movs r0, #0x7f + ands r0, r2 + adds r4, r1, #0 + cmp r0, #0 + beq _08040848 + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + beq _0804083E + adds r5, #1 + b _08040840 +_0804083E: + adds r5, #3 +_08040840: + ldrb r0, [r4] + subs r0, #1 + strb r0, [r4] + b _0804087A +_08040848: + bl sub_08000E50 + movs r1, #7 + ands r0, r1 + adds r0, #4 + strb r0, [r4] + ldrb r6, [r4] + bl sub_08000E50 + movs r1, #0x20 + ands r1, r0 + cmp r1, #0 + bne _08040868 + movs r1, #0x80 + orrs r1, r6 + b _0804086A +_08040868: + adds r1, r6, #0 +_0804086A: + strb r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08040878 + adds r5, #1 + b _0804087A +_08040878: + adds r5, #3 +_0804087A: + movs r0, #3 + ands r5, r0 +_0804087E: + ldr r2, _080408C8 @ =gUnk_03000BF0 + ldrh r3, [r2, #6] + ldr r4, _080408CC @ =gUnk_080D0B64 + lsls r1, r5, #1 + lsls r0, r5, #2 + adds r0, r0, r4 + ldrh r0, [r0] + adds r6, r3, r0 + ldrh r2, [r2, #8] + adds r1, #1 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r0, [r1] + adds r4, r2, r0 +_0804089A: + movs r1, #0x2e + ldrsh r0, [r7, r1] + movs r2, #0x32 + ldrsh r1, [r7, r2] + adds r2, r6, #0 + adds r3, r4, #0 + bl sub_080045D4 + strb r0, [r7, #0x15] + movs r0, #0x20 + mov r1, r8 + ands r0, r1 + cmp r0, #0 + beq _080408D6 + ldrb r1, [r7, #0x15] + movs r0, #0x10 + mov r2, r8 + ands r2, r0 + cmp r2, #0 + beq _080408D0 + adds r0, r1, #1 + b _080408D4 + .align 2, 0 +_080408C8: .4byte gUnk_03000BF0 +_080408CC: .4byte gUnk_080D0B64 +_080408D0: + adds r0, r1, #0 + adds r0, #0x1f +_080408D4: + strb r0, [r7, #0x15] +_080408D6: + ldrb r0, [r7, #0x15] + movs r1, #0x1f + ands r1, r0 + strb r1, [r7, #0x15] + adds r0, r7, #0 + adds r0, #0x86 + strb r5, [r0] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_080408EC +sub_080408EC: @ 0x080408EC + push {r4, r5, r6, r7, lr} + adds r2, r0, #0 + ldrb r0, [r2, #0x14] + cmp r0, #0 + bne _08040902 + movs r1, #0xf0 + adds r4, r2, #0 + adds r4, #0x75 + adds r5, r2, #0 + adds r5, #0x76 + b _08040926 +_08040902: + adds r4, r2, #0 + adds r4, #0x75 + adds r5, r2, #0 + adds r5, #0x76 + ldr r7, _08040930 @ =gUnk_080D0B74 + movs r6, #0x3c +_0804090E: + bl sub_08000E50 + ands r0, r6 + lsrs r0, r0, #2 + adds r0, r0, r7 + ldrb r1, [r0] + ldrb r0, [r4] + cmp r1, r0 + bne _08040922 + movs r1, #0xff +_08040922: + cmp r1, #0xff + beq _0804090E +_08040926: + movs r0, #0 + strb r1, [r4] + strb r0, [r5] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08040930: .4byte gUnk_080D0B74 + + thumb_func_start sub_08040934 +sub_08040934: @ 0x08040934 + push {r4, lr} + adds r4, r0, #0 + bl sub_08000E50 + movs r1, #0x3e + ands r1, r0 + movs r2, #0 + cmp r1, #0x2e + bhi _08040948 + movs r2, #1 +_08040948: + adds r0, r4, #0 + adds r0, #0x87 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + beq _08040958 + movs r2, #0 +_08040958: + adds r4, #0x84 + ldrb r0, [r4] + cmp r0, #9 + beq _080409A4 + cmp r2, #0 + beq _080409AA + adds r0, #1 + movs r1, #5 + bl __modsi3 + strb r0, [r4] + bl sub_08000E50 + movs r1, #0xf8 + ands r1, r0 + lsrs r1, r1, #3 + ldr r0, _08040998 @ =gUnk_080D0B84 + adds r0, r1, r0 + ldrb r2, [r0] + ldrb r0, [r4] + cmp r0, #1 + beq _0804099C + cmp r0, #1 + blt _080409AA + cmp r0, #4 + bgt _080409AA + cmp r0, #3 + blt _080409AA + cmp r2, #0 + bne _080409AA + b _080409A8 + .align 2, 0 +_08040998: .4byte gUnk_080D0B84 +_0804099C: + cmp r2, #0 + beq _080409A8 + movs r2, #3 + b _080409AA +_080409A4: + movs r0, #0 + strb r0, [r4] +_080409A8: + movs r2, #1 +_080409AA: + adds r0, r2, #0 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080409B0 +sub_080409B0: @ 0x080409B0 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x81 + adds r0, r0, r4 + mov ip, r0 + ldrb r1, [r0] + cmp r1, #1 + beq _080409EA + cmp r1, #1 + bgt _080409CA + cmp r1, #0 + beq _080409D0 + b _08040A68 +_080409CA: + cmp r1, #2 + beq _08040A04 + b _08040A68 +_080409D0: + adds r0, r4, #0 + adds r0, #0x75 + adds r2, r4, #0 + adds r2, #0x76 + ldrb r0, [r0] + ldrb r3, [r2] + cmp r0, r3 + bne _08040A68 + movs r0, #1 + mov r3, ip + strb r0, [r3] + strb r1, [r2] + b _08040A68 +_080409EA: + adds r0, r4, #0 + adds r0, #0x76 + ldrb r0, [r0] + cmp r0, #0 + beq _08040A68 + movs r0, #2 + mov r1, ip + strb r0, [r1] + adds r1, r4, #0 + adds r1, #0x77 + movs r0, #0x10 + strb r0, [r1] + b _08040A68 +_08040A04: + adds r1, r4, #0 + adds r1, #0x77 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + bne _08040A68 + adds r0, r4, #0 + adds r0, #0x75 + adds r3, r4, #0 + adds r3, #0x76 + ldrb r1, [r0] + ldrb r0, [r3] + ands r0, r1 + cmp r1, r0 + beq _08040A3C + movs r0, #1 + mov r1, ip + strb r0, [r1] + strb r2, [r3] + ldr r0, _08040A38 @ =0x00000155 + bl sub_080A3268 + b _08040A68 + .align 2, 0 +_08040A38: .4byte 0x00000155 +_08040A3C: + movs r1, #3 + strb r1, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x80 + strb r2, [r0] + mov r3, ip + strb r1, [r3] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x36 + strb r0, [r1] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] + movs r0, #0xb2 + lsls r0, r0, #1 + bl sub_080A3268 +_08040A68: + adds r0, r4, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #2 + bhi _08040A84 + adds r0, r4, #0 + adds r0, #0x42 + ldrb r0, [r0] + cmp r0, #0 + beq _08040AC8 + adds r0, r4, #0 + bl sub_080AF18C + b _08040AC8 +_08040A84: + adds r2, r4, #0 + adds r2, #0x41 + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + adds r5, r2, #0 + cmp r0, #0 + beq _08040AB0 + adds r0, r4, #0 + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + ble _08040AB0 + movs r0, #0xc + movs r1, #1 + bl sub_08080964 + ldr r0, _08040ACC @ =0x00000127 + bl sub_080A3268 +_08040AB0: + ldrb r0, [r5] + cmp r0, #0x8a + bne _08040AC8 + ldr r0, _08040AD0 @ =gUnk_03003F80 + adds r0, #0xa0 + ldrb r0, [r0] + cmp r0, #5 + bne _08040AC8 + adds r1, r4, #0 + adds r1, #0x45 + movs r0, #0xc0 + strb r0, [r1] +_08040AC8: + pop {r4, r5, pc} + .align 2, 0 +_08040ACC: .4byte 0x00000127 +_08040AD0: .4byte gUnk_03003F80 + + thumb_func_start sub_08040AD4 +sub_08040AD4: @ 0x08040AD4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xe] + movs r1, #0x3f + ands r1, r0 + lsls r6, r1, #0x18 + lsrs r4, r6, #0x18 + movs r0, #0x1f + ands r0, r4 + cmp r0, #0 + bne _08040AF0 + ldr r0, _08040B0C @ =0x000001A9 + bl sub_080A3268 +_08040AF0: + movs r0, #3 + ands r4, r0 + cmp r4, #0 + bne _08040B2A + lsrs r4, r6, #0x1a + movs r0, #0x2e + ldrsh r2, [r5, r0] + adds r0, r4, #4 + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _08040B10 + subs r0, r2, #1 + b _08040B12 + .align 2, 0 +_08040B0C: .4byte 0x000001A9 +_08040B10: + adds r0, r2, #1 +_08040B12: + strh r0, [r5, #0x2e] + movs r0, #0x32 + ldrsh r2, [r5, r0] + adds r0, r4, #2 + movs r1, #4 + ands r0, r1 + cmp r0, #0 + beq _08040B26 + subs r0, r2, #1 + b _08040B28 +_08040B26: + adds r0, r2, #1 +_08040B28: + strh r0, [r5, #0x32] +_08040B2A: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08040B2C +sub_08040B2C: @ 0x08040B2C + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xa] + cmp r0, #1 + bne _08040B5C + ldr r0, [r5, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _08040B5C + adds r0, r5, #0 + bl sub_08041300 + cmp r0, #0 + beq _08040B4E + adds r0, r5, #0 + bl sub_0803F6EC +_08040B4E: + adds r0, r5, #0 + movs r1, #2 + movs r2, #0 + bl sub_080A29AC + bl sub_0805E780 +_08040B5C: + ldr r4, _08040B80 @ =gUnk_080D0DC4 + adds r0, r5, #0 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r5, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, r5, pc} + .align 2, 0 +_08040B80: .4byte gUnk_080D0DC4 + + thumb_func_start sub_08040B84 +sub_08040B84: @ 0x08040B84 + push {lr} + ldr r2, _08040B98 @ =gUnk_080D0DDC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08040B98: .4byte gUnk_080D0DDC + + thumb_func_start sub_08040B9C +sub_08040B9C: @ 0x08040B9C + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + subs r0, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _08040BD0 + movs r0, #0xff + strb r0, [r4, #0x14] + adds r0, r4, #0 + adds r0, #0x3e + ldrb r1, [r0] + lsrs r1, r1, #4 + movs r0, #1 + eors r1, r0 + adds r1, #1 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08041134 + adds r0, r4, #0 + bl sub_0803F6EC +_08040BD0: + adds r0, r4, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0x25 + bne _08040BF4 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #0x80 + bne _08040C0E + movs r0, #8 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 + b _08040C9C +_08040BF4: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #0x80 + bne _08040C0E + adds r1, r4, #0 + adds r1, #0x7c + movs r0, #0x78 + strh r0, [r1] + adds r0, r4, #0 + bl sub_08041128 +_08040C0E: + ldrb r0, [r5] + cmp r0, #0x9d + bne _08040C1A + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] +_08040C1A: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _08040C40 + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + lsrs r0, r0, #4 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #7 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08040C40: + adds r0, r4, #0 + adds r0, #0x45 + adds r1, r4, #0 + adds r1, #0x7a + ldrb r2, [r0] + adds r6, r0, #0 + adds r5, r1, #0 + ldrb r0, [r5] + cmp r2, r0 + beq _08040C9C + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08040C70 + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + lsrs r0, r0, #4 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #7 + adds r0, r4, #0 + bl sub_08004260 + b _08040C98 +_08040C70: + adds r1, r4, #0 + adds r1, #0x3d + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + ble _08040C84 + movs r0, #0x80 + orrs r0, r2 + strb r0, [r1] +_08040C84: + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r0, #0xff + strb r0, [r6] + movs r0, #0xa + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] +_08040C98: + ldrb r0, [r6] + strb r0, [r5] +_08040C9C: + ldr r1, _08040CA8 @ =gUnk_080D0DC4 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, r5, r6, pc} + .align 2, 0 +_08040CA8: .4byte gUnk_080D0DC4 + + thumb_func_start sub_08040CAC +sub_08040CAC: @ 0x08040CAC + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_08001328 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08040D04 + adds r0, r4, #0 + adds r0, #0x42 + ldrb r0, [r0] + cmp r0, #0 + bne _08040D2C + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _08040D2C + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + bne _08040D2C + movs r0, #0xff + strb r0, [r4, #0x14] + adds r1, r4, #0 + adds r1, #0x58 + ldrb r0, [r1] + subs r0, #7 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _08040D2C + ldrb r1, [r1] + subs r1, #7 + movs r0, #1 + eors r1, r0 + adds r1, #1 + adds r0, r4, #0 + bl sub_08004260 + b _08040D2C +_08040D04: + ldrb r2, [r4, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + movs r5, #4 + rsbs r5, r5, #0 + adds r3, r5, #0 + ands r3, r2 + orrs r3, r1 + strb r3, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x42 + ldrb r0, [r0] + cmp r0, #0 + bne _08040D2C + ands r3, r5 + movs r0, #1 + orrs r3, r0 + strb r3, [r4, #0x18] +_08040D2C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08040D30 +sub_08040D30: @ 0x08040D30 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x58 + ldrb r0, [r0] + subs r0, #7 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _08040D4C + ldrb r1, [r4, #0x14] + adds r1, #7 + adds r0, r4, #0 + bl sub_08004260 +_08040D4C: + adds r0, r4, #0 + bl sub_08001242 + ldrh r1, [r4, #0x36] + movs r2, #0x36 + ldrsh r0, [r4, r2] + cmp r0, #0 + bne _08040D60 + ldr r0, _08040D8C @ =0x0000FFFF + strh r0, [r4, #0x36] +_08040D60: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + bne _08040D88 + ldrb r0, [r4, #0x14] + movs r1, #1 + eors r1, r0 + adds r1, #1 + adds r0, r4, #0 + bl sub_08004260 + movs r0, #0xff + strb r0, [r4, #0x15] + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_08041134 +_08040D88: + pop {r4, pc} + .align 2, 0 +_08040D8C: .4byte 0x0000FFFF + + thumb_func_start sub_08040D90 +sub_08040D90: @ 0x08040D90 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F520 + cmp r0, #0 + beq _08040DB4 + ldr r0, _08040DB0 @ =gUnk_080D0E08 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _08040DC6 + .align 2, 0 +_08040DB0: .4byte gUnk_080D0E08 +_08040DB4: + adds r0, r4, #0 + bl sub_08041128 + ldrb r1, [r4, #0x15] + lsrs r1, r1, #4 + adds r1, #1 + adds r0, r4, #0 + bl sub_08004260 +_08040DC6: + pop {r4, pc} + + thumb_func_start sub_08040DC8 +sub_08040DC8: @ 0x08040DC8 + push {lr} + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x3c + strb r1, [r0, #0x1d] + ldr r1, _08040DE0 @ =gUnk_03001160 + ldrb r1, [r1, #0x14] + lsrs r1, r1, #2 + adds r1, #5 + bl sub_08004260 + pop {pc} + .align 2, 0 +_08040DE0: .4byte gUnk_03001160 + + thumb_func_start sub_08040DE4 +sub_08040DE4: @ 0x08040DE4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0806F4E8 + pop {r4, pc} + + thumb_func_start sub_08040DF4 +sub_08040DF4: @ 0x08040DF4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _08040E38 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl sub_080A29AC + cmp r0, #0 + beq _08040E26 + adds r2, r0, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] +_08040E26: + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08040E34 + adds r0, r4, #0 + bl sub_0804A7D4 + b _08040E38 +_08040E34: + bl sub_0805E780 +_08040E38: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08040E3C +sub_08040E3C: @ 0x08040E3C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0804A720 + bl sub_08000E50 + movs r2, #0x1e + adds r1, r0, #0 + ands r1, r2 + movs r2, #0 + strb r1, [r4, #0x15] + movs r1, #0xff + strb r1, [r4, #0x14] + movs r5, #1 + strb r5, [r4, #0x1c] + adds r1, r4, #0 + adds r1, #0x45 + ldrb r1, [r1] + adds r3, r4, #0 + adds r3, #0x7a + strb r1, [r3] + lsrs r0, r0, #4 + adds r1, r4, #0 + adds r1, #0x7b + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x7c + strh r2, [r0] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08040E86 + strb r5, [r4, #0xc] + ldrb r0, [r4, #0xe] + bl sub_0804B128 + str r0, [r4, #0x54] + b _08040E8C +_08040E86: + adds r0, r4, #0 + bl sub_080411CC +_08040E8C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08040E90 +sub_08040E90: @ 0x08040E90 + push {r4, lr} + adds r4, r0, #0 + bl sub_080411E8 + cmp r0, #0 + beq _08040EA4 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0xf + strb r0, [r4, #0xe] +_08040EA4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08040EA8 +sub_08040EA8: @ 0x08040EA8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08040EC4 + adds r0, r4, #0 + bl sub_080411CC + adds r0, r4, #0 + bl sub_0804122C +_08040EC4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08040EC8 +sub_08040EC8: @ 0x08040EC8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08040F08 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + bl sub_08000E50 + adds r1, r4, #0 + adds r1, #0x80 + ldrb r2, [r1] + movs r1, #0x30 + ands r1, r0 + adds r1, #0x3c + adds r0, r2, #0 + muls r0, r1, r0 + adds r0, #0x78 + adds r1, r4, #0 + adds r1, #0x7c + strh r0, [r1] + adds r0, r4, #0 + bl sub_08041128 +_08040F08: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08040F0C +sub_08040F0C: @ 0x08040F0C + push {r4, lr} + adds r4, r0, #0 + bl sub_08041170 + cmp r0, #0 + bne _08040F36 + adds r0, r4, #0 + bl sub_0803F58C + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08040F36 + adds r0, r4, #0 + bl sub_08041128 +_08040F36: + pop {r4, pc} + + thumb_func_start sub_08040F38 +sub_08040F38: @ 0x08040F38 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _08040F8E + adds r0, r4, #0 + bl sub_0803F66C + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08040F94 + movs r0, #6 + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r2, #0xe0 + adds r1, r0, #0 + ands r1, r2 + strb r1, [r4, #0xe] + movs r1, #0x80 + lsls r1, r1, #1 + strh r1, [r4, #0x24] + lsrs r0, r0, #8 + movs r1, #0x78 + ands r0, r1 + adds r0, #0x3c + adds r1, r4, #0 + adds r1, #0x7e + strh r0, [r1] + b _08040F94 +_08040F8E: + adds r0, r4, #0 + bl sub_08041128 +_08040F94: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08040F98 +sub_08040F98: @ 0x08040F98 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0803F5A8 + cmp r0, #0 + bne _08040FB2 + adds r0, r4, #0 + bl sub_08041128 + b _08041014 +_08040FB2: + movs r0, #1 + bl sub_08049DF4 + cmp r0, #0 + beq _0804100C + adds r1, r4, #0 + adds r1, #0x7e + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0804100C + ldrb r1, [r4, #0xe] + adds r1, #1 + strb r1, [r4, #0xe] + ldr r2, _08041004 @ =gUnk_080D0E14 + lsls r0, r1, #0x18 + lsrs r0, r0, #0x1e + adds r0, r0, r2 + ldrb r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _08040FF4 + ldr r0, _08041008 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 +_08040FF4: + adds r0, r4, #0 + bl sub_0803F66C + adds r0, r4, #0 + bl sub_080AEFB4 + b _08041014 + .align 2, 0 +_08041004: .4byte gUnk_080D0E14 +_08041008: .4byte gUnk_020000B0 +_0804100C: + movs r0, #7 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] +_08041014: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08041018 +sub_08041018: @ 0x08041018 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08041042 + bl sub_08000E50 + movs r1, #0xf8 + ands r0, r1 + adds r0, #0xb4 + adds r1, r4, #0 + adds r1, #0x7c + strh r0, [r1] + adds r0, r4, #0 + bl sub_08041128 +_08041042: + pop {r4, pc} + + thumb_func_start sub_08041044 +sub_08041044: @ 0x08041044 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803F738 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08041074 + movs r0, #0 + movs r1, #9 + strb r1, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x78 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 +_08041074: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08041078 +sub_08041078: @ 0x08041078 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08041094 + adds r0, r4, #0 + bl sub_0803F6C0 +_08041094: + bl sub_0807953C + adds r1, r4, #0 + adds r1, #0x78 + cmp r0, #0 + beq _080410A6 + ldrh r0, [r1] + adds r0, #8 + strh r0, [r1] +_080410A6: + ldr r2, _08041100 @ =gUnk_03001160 + adds r0, r2, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _080410B6 + movs r0, #0xe0 + strh r0, [r1] +_080410B6: + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xdf + bls _08041104 + adds r1, r4, #0 + adds r1, #0x7c + movs r0, #0x78 + strh r0, [r1] + movs r0, #0xff + strb r0, [r4, #0x14] + subs r1, #0x3f + movs r0, #0xf4 + strb r0, [r1] + adds r1, #5 + movs r0, #0x14 + strb r0, [r1] + adds r1, #4 + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r1] + ldrb r0, [r2, #0x14] + lsls r0, r0, #2 + movs r1, #0x10 + eors r0, r1 + adds r1, r4, #0 + adds r1, #0x3e + strb r0, [r1] + adds r0, r4, #0 + bl sub_08041128 + adds r0, r4, #0 + bl sub_0803F6EC + b _0804110A + .align 2, 0 +_08041100: .4byte gUnk_03001160 +_08041104: + adds r0, r4, #0 + bl sub_0803F738 +_0804110A: + pop {r4, pc} + + thumb_func_start sub_0804110C +sub_0804110C: @ 0x0804110C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08041126 + adds r0, r4, #0 + bl sub_08041128 +_08041126: + pop {r4, pc} + + thumb_func_start sub_08041128 +sub_08041128: @ 0x08041128 + push {lr} + movs r1, #4 + strb r1, [r0, #0xc] + bl sub_0803F528 + pop {pc} + + thumb_func_start sub_08041134 +sub_08041134: @ 0x08041134 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #5 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x25 + strb r0, [r1] + movs r5, #0 + ldr r0, _08041168 @ =gUnk_03004040 + ldr r0, [r0] + cmp r0, #0 + beq _08041150 + movs r5, #0x3c +_08041150: + bl sub_08000E50 + ldr r2, _0804116C @ =gUnk_080D0E18 + movs r1, #3 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + adds r0, r0, r5 + adds r1, r4, #0 + adds r1, #0x78 + strh r0, [r1] + pop {r4, r5, pc} + .align 2, 0 +_08041168: .4byte gUnk_03004040 +_0804116C: .4byte gUnk_080D0E18 + + thumb_func_start sub_08041170 +sub_08041170: @ 0x08041170 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7c + ldrh r0, [r1] + cmp r0, #0 + beq _08041184 + subs r0, #1 + strh r0, [r1] + b _080411C8 +_08041184: + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _080411C8 + adds r0, r4, #0 + bl sub_0806FD54 + cmp r0, #0 + bne _080411B6 + ldr r0, _080411C0 @ =gUnk_02033A90 + movs r1, #0xa + ldrsh r0, [r0, r1] + cmp r0, #0xf + ble _080411C8 + ldr r0, _080411C4 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + movs r2, #0x70 + movs r3, #0x48 + bl sub_080041A0 + cmp r0, #0 + beq _080411C8 +_080411B6: + adds r0, r4, #0 + bl sub_08041134 + movs r0, #1 + b _080411CA + .align 2, 0 +_080411C0: .4byte gUnk_02033A90 +_080411C4: .4byte gUnk_020000B0 +_080411C8: + movs r0, #0 +_080411CA: + pop {r4, pc} + + thumb_func_start sub_080411CC +sub_080411CC: @ 0x080411CC + push {lr} + movs r1, #3 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x18] + subs r1, #7 + ands r1, r2 + movs r2, #1 + orrs r1, r2 + strb r1, [r0, #0x18] + movs r1, #0 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080411E8 +sub_080411E8: @ 0x080411E8 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _08041222 + ldrb r0, [r4, #0xb] + cmp r0, #1 + beq _08041204 + cmp r0, #2 + beq _08041218 +_08041200: + movs r0, #1 + b _08041224 +_08041204: + ldr r0, _08041214 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08041222 + b _08041200 + .align 2, 0 +_08041214: .4byte gUnk_03003F80 +_08041218: + ldr r0, _08041228 @ =gUnk_02033A90 + movs r1, #0xa + ldrsh r0, [r0, r1] + cmp r0, #0xf + bgt _08041200 +_08041222: + movs r0, #0 +_08041224: + pop {r4, pc} + .align 2, 0 +_08041228: .4byte gUnk_02033A90 + + thumb_func_start sub_0804122C +sub_0804122C: @ 0x0804122C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r4, r0, #0 + ldr r0, [r4, #0x54] + mov r8, r0 + bl sub_08000E50 + movs r6, #6 + ands r6, r0 + lsrs r5, r0, #8 + movs r0, #3 + ands r5, r0 + movs r7, #0 + ldr r3, _080412FC @ =gUnk_03000BF0 + mov sb, r3 +_08041250: + movs r0, #0x50 + movs r1, #1 + bl sub_0804AA60 + adds r2, r0, #0 + cmp r2, #0 + beq _080412C8 + lsls r1, r6, #1 + add r1, r8 + mov r3, sb + ldrh r0, [r3, #6] + ldrh r3, [r1] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + mov r3, sb + ldrh r0, [r3, #8] + ldrh r1, [r1, #2] + adds r0, r0, r1 + strh r0, [r2, #0x32] + str r4, [r2, #0x50] + adds r0, r2, #0 + adds r0, #0x80 + strb r5, [r0] + adds r3, r2, #0 + adds r3, #0x6d + ldrb r0, [r3] + movs r1, #4 + orrs r0, r1 + strb r0, [r3] + adds r0, r4, #0 + adds r0, #0x70 + ldrh r1, [r0] + adds r0, r2, #0 + adds r0, #0x70 + strh r1, [r0] + adds r0, r4, #0 + adds r0, #0x72 + ldrh r0, [r0] + adds r1, r2, #0 + adds r1, #0x72 + strh r0, [r1] + adds r0, r4, #0 + adds r0, #0x6e + ldrb r0, [r0] + subs r1, #4 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x6f + ldrb r0, [r0] + adds r1, #1 + strb r0, [r1] + adds r0, r2, #0 + bl sub_08016A30 + adds r6, #2 + movs r0, #6 + ands r6, r0 + adds r5, #1 + movs r0, #3 + ands r5, r0 +_080412C8: + adds r7, #1 + cmp r7, #2 + bls _08041250 + lsls r1, r6, #1 + add r1, r8 + ldr r2, _080412FC @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + ldrh r3, [r1] + adds r0, r0, r3 + movs r3, #0 + strh r0, [r4, #0x2e] + ldrh r0, [r2, #8] + ldrh r1, [r1, #2] + adds r0, r0, r1 + strh r0, [r4, #0x32] + adds r0, r4, #0 + adds r0, #0x38 + strb r3, [r0] + adds r0, r4, #0 + bl sub_08016A30 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080412FC: .4byte gUnk_03000BF0 + + thumb_func_start sub_08041300 +sub_08041300: @ 0x08041300 + push {lr} + adds r1, r0, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0x25 + bne _0804131A + adds r0, r1, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x80 + bne _0804131A + movs r0, #1 + b _0804132C +_0804131A: + movs r2, #0 + ldrb r0, [r1, #0xc] + subs r0, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _0804132A + movs r2, #1 +_0804132A: + adds r0, r2, #0 +_0804132C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08041330 +sub_08041330: @ 0x08041330 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08041384 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08041384 + adds r2, r4, #0 + adds r2, #0x45 + ldrb r0, [r2] + cmp r0, #0 + bne _08041384 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r0, #0xff + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x84 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _08041384 + movs r0, #0xd + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + ldr r0, _08041398 @ =0x80010000 + bl sub_080A3268 + movs r0, #0x94 + lsls r0, r0, #1 + bl sub_080A3268 +_08041384: + ldr r0, _0804139C @ =gUnk_080D0E1C + ldrb r1, [r4, #0xa] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_08041398: .4byte 0x80010000 +_0804139C: .4byte gUnk_080D0E1C + + thumb_func_start sub_080413A0 +sub_080413A0: @ 0x080413A0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080423A4 + ldr r1, _080413BC @ =gUnk_080D0E2C + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080413BC: .4byte gUnk_080D0E2C + + thumb_func_start sub_080413C0 +sub_080413C0: @ 0x080413C0 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r7, _080413F8 @ =gUnk_030010A0 + adds r0, r7, #0 + adds r0, #0x38 + ldrb r0, [r0] + movs r6, #1 + adds r5, r6, #0 + ands r5, r0 + cmp r5, #0 + beq _08041420 + adds r0, r4, #0 + bl sub_08041FCC + cmp r0, #0 + beq _08041486 + adds r0, r7, #0 + adds r0, #0x39 + ldrb r1, [r0] + movs r0, #0xc + ands r0, r1 + cmp r0, #0 + bne _080413FC + movs r0, #5 + strb r0, [r4, #0xc] + strb r6, [r4, #0xd] + b _08041404 + .align 2, 0 +_080413F8: .4byte gUnk_030010A0 +_080413FC: + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] +_08041404: + ldr r0, _0804141C @ =gUnk_030010A0 + adds r1, r0, #0 + adds r1, #0x40 + ldrh r1, [r1] + strh r1, [r4, #0x2e] + adds r0, #0x42 + ldrh r0, [r0] + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl sub_08042004 + b _0804144A + .align 2, 0 +_0804141C: .4byte gUnk_030010A0 +_08041420: + adds r0, r4, #0 + bl sub_08041ED4 + cmp r0, #0 + beq _08041486 + strb r6, [r4, #0xc] + strb r5, [r4, #0xd] + movs r0, #0x78 + strb r0, [r4, #0xe] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0xb1 + ands r0, r1 + strb r0, [r2] + ldr r0, _08041488 @ =0x0000FFB0 + strh r0, [r4, #0x36] + ldr r0, _0804148C @ =gUnk_03000BF0 + str r4, [r0, #0x30] + bl sub_080809D4 +_0804144A: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r3, r4, #0 + adds r3, #0x6d + ldrb r0, [r3] + movs r2, #0 + orrs r1, r0 + strb r1, [r3] + adds r0, r4, #0 + adds r0, #0x79 + strb r2, [r0] + adds r1, r4, #0 + adds r1, #0x7c + movs r0, #0x3c + strh r0, [r1] + adds r1, #2 + movs r0, #0x78 + strh r0, [r1] + adds r1, #6 + movs r0, #3 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC +_08041486: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08041488: .4byte 0x0000FFB0 +_0804148C: .4byte gUnk_03000BF0 + + thumb_func_start sub_08041490 +sub_08041490: @ 0x08041490 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldrb r0, [r4, #0xd] + cmp r0, #5 + bls _080414A0 + b _080415CC +_080414A0: + lsls r0, r0, #2 + ldr r1, _080414AC @ =_080414B0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080414AC: .4byte _080414B0 +_080414B0: @ jump table + .4byte _080415E6 @ case 0 + .4byte _080414C8 @ case 1 + .4byte _08041510 @ case 2 + .4byte _08041532 @ case 3 + .4byte _0804155C @ case 4 + .4byte _08041592 @ case 5 +_080414C8: + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + ldr r0, [r4, #0x34] + movs r1, #0x80 + lsls r1, r1, #8 + adds r0, r0, r1 + str r0, [r4, #0x34] + ldrh r1, [r4, #0x36] + movs r0, #0x3f + ands r0, r1 + cmp r0, #0 + bne _080414F4 + ldr r0, _0804150C @ =0x000001A9 + bl sub_080A3268 +_080414F4: + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #6 + rsbs r0, r0, #0 + cmp r1, r0 + ble _080415E6 + movs r0, #2 + strb r0, [r4, #0xd] + ldr r0, _0804150C @ =0x000001A9 + bl sub_080A3268 + b _080415E6 + .align 2, 0 +_0804150C: .4byte 0x000001A9 +_08041510: + adds r0, r4, #0 + bl sub_08042004 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08041520 + subs r0, #1 + b _080415E4 +_08041520: + adds r0, r4, #0 + movs r1, #0 + bl sub_08041F74 + cmp r0, #0 + beq _080415E6 + movs r0, #3 + strb r0, [r4, #0xd] + b _080415E2 +_08041532: + adds r0, r4, #0 + bl sub_08042004 + ldrb r0, [r4, #0xe] + adds r5, r0, #0 + cmp r5, #0 + beq _08041544 + subs r0, #1 + b _080415E4 +_08041544: + adds r0, r4, #0 + movs r1, #1 + bl sub_08041F74 + cmp r0, #0 + beq _080415E6 + movs r0, #4 + strb r0, [r4, #0xd] + movs r0, #0x78 + strb r0, [r4, #0xe] + strb r5, [r4, #0xf] + b _080415E6 +_0804155C: + adds r0, r4, #0 + bl sub_08042004 + ldrb r0, [r4, #0xe] + subs r1, r0, #1 + strb r1, [r4, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _08041574 + movs r0, #5 + strb r0, [r4, #0xd] + b _080415E6 +_08041574: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x3c + bhi _080415E6 + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _080415E6 + adds r0, r4, #0 + bl sub_08041F1C + cmp r0, #0 + beq _080415E6 + movs r0, #1 + strb r0, [r4, #0xf] + b _080415E6 +_08041592: + adds r0, r4, #0 + bl sub_08042004 + movs r0, #6 + strb r0, [r4, #0xd] + movs r0, #0x1e + strb r0, [r4, #0xe] + ldr r1, _080415BC @ =gUnk_030010A0 + adds r1, #0x38 + ldrb r2, [r1] + movs r0, #1 + orrs r0, r2 + strb r0, [r1] + ldr r1, _080415C0 @ =gUnk_03000BF0 + ldr r0, _080415C4 @ =gUnk_03001160 + str r0, [r1, #0x30] + ldr r0, _080415C8 @ =gUnk_03003F80 + adds r0, #0x8b + movs r1, #1 + strb r1, [r0] + b _080415E6 + .align 2, 0 +_080415BC: .4byte gUnk_030010A0 +_080415C0: .4byte gUnk_03000BF0 +_080415C4: .4byte gUnk_03001160 +_080415C8: .4byte gUnk_03003F80 +_080415CC: + adds r0, r4, #0 + bl sub_08042004 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080415E6 + movs r0, #2 + strb r0, [r4, #0xc] +_080415E2: + movs r0, #0x3c +_080415E4: + strb r0, [r4, #0xe] +_080415E6: + pop {r4, r5, pc} + + thumb_func_start sub_080415E8 +sub_080415E8: @ 0x080415E8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08042004 + adds r0, r4, #0 + bl sub_080042B8 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08041614 + bl sub_08000E50 + movs r1, #1 + ands r0, r1 + adds r0, #1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_08042028 +_08041614: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08041618 +sub_08041618: @ 0x08041618 + push {r4, lr} + adds r4, r0, #0 + bl sub_08042004 + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_080AEF88 + ldr r0, _0804165C @ =gUnk_03000BF0 + ldrh r2, [r0, #8] + adds r0, r2, #0 + adds r0, #0x90 + movs r3, #0x32 + ldrsh r1, [r4, r3] + cmp r0, r1 + blt _08041644 + adds r0, r2, #0 + adds r0, #0x40 + cmp r0, r1 + ble _08041646 +_08041644: + strh r0, [r4, #0x32] +_08041646: + ldrb r0, [r4, #0xe] + subs r1, r0, #1 + strb r1, [r4, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _08041660 + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #8 + strb r0, [r4, #0xe] + b _08041694 + .align 2, 0 +_0804165C: .4byte gUnk_03000BF0 +_08041660: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1d + bhi _0804166E + ldrh r0, [r4, #0x24] + subs r0, #8 + b _0804167A +_0804166E: + ldrh r1, [r4, #0x24] + movs r2, #0x24 + ldrsh r0, [r4, r2] + cmp r0, #0xff + bgt _0804167C + adds r0, r1, #6 +_0804167A: + strh r0, [r4, #0x24] +_0804167C: + ldrb r1, [r4, #0xe] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _08041694 + adds r0, r4, #0 + bl sub_0804207C + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 +_08041694: + adds r0, r4, #0 + bl sub_0804212C + adds r0, r4, #0 + bl sub_080421AC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080416A4 +sub_080416A4: @ 0x080416A4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08042004 + adds r0, r4, #0 + bl sub_080042B8 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080416DA + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r1 + cmp r0, #0 + bne _080416D4 + adds r0, r4, #0 + bl sub_08042120 + b _080416DA +_080416D4: + adds r0, r4, #0 + bl sub_08042028 +_080416DA: + pop {r4, pc} + + thumb_func_start sub_080416DC +sub_080416DC: @ 0x080416DC + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_08042004 + adds r0, r5, #0 + bl sub_080042B8 + adds r0, r5, #0 + bl sub_0804212C + adds r0, r5, #0 + bl sub_080421AC + ldrb r1, [r5, #0xd] + cmp r1, #0 + bne _08041748 + movs r4, #1 + strb r4, [r5, #0xd] + bl sub_08000E50 + ands r0, r4 + cmp r0, #0 + beq _08041716 + ldr r0, [r5, #0x64] + ldr r2, [r0, #0x14] + cmp r2, #0 + bne _08041724 + ldr r2, [r0, #0x18] + b _08041720 +_08041716: + ldr r0, [r5, #0x64] + ldr r2, [r0, #0x18] + cmp r2, #0 + bne _08041724 + ldr r2, [r0, #0x14] +_08041720: + cmp r2, #0 + beq _08041734 +_08041724: + ldrb r0, [r2, #0xc] + cmp r0, #2 + bne _08041734 + movs r1, #0 + movs r0, #4 + strb r0, [r2, #0xc] + strb r1, [r2, #0xd] + b _080417AA +_08041734: + bl sub_08000E50 + movs r1, #1 + ands r0, r1 + adds r0, #1 + strb r0, [r5, #0xf] + adds r0, r5, #0 + bl sub_08042028 + b _080417AA +_08041748: + adds r0, r5, #0 + adds r0, #0x79 + ldrb r0, [r0] + cmp r0, #0 + bne _080417AA + adds r2, r1, #0 + cmp r2, #2 + bne _080417AA + ldr r0, _0804179C @ =gUnk_030010A0 + adds r0, #0x39 + ldrb r1, [r0] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _080417A4 + movs r0, #0xb5 + movs r1, #0 + movs r2, #0 + bl sub_080A2960 + adds r2, r0, #0 + cmp r2, #0 + beq _080417AA + str r5, [r2, #0x50] + ldr r1, [r5, #0x64] + str r2, [r1, #0x10] + ldr r0, _080417A0 @ =gUnk_03000BF0 + str r2, [r0, #0x30] + movs r0, #6 + strb r0, [r5, #0xc] + movs r0, #0x1e + strb r0, [r5, #0xe] + ldr r1, [r1, #4] + movs r0, #1 + strb r0, [r1, #0xd] + ldr r0, [r5, #0x64] + ldr r0, [r0, #4] + movs r1, #0xe + bl sub_08004260 + b _080417AA + .align 2, 0 +_0804179C: .4byte gUnk_030010A0 +_080417A0: .4byte gUnk_03000BF0 +_080417A4: + strb r2, [r5, #0xc] + movs r0, #0x3c + strb r0, [r5, #0xe] +_080417AA: + pop {r4, r5, pc} + + thumb_func_start sub_080417AC +sub_080417AC: @ 0x080417AC + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xe] + cmp r0, #0 + bne _08041816 + ldr r0, [r5, #0x64] + ldr r4, [r0, #4] + adds r0, r4, #0 + bl sub_08004274 + adds r4, #0x5a + ldrb r1, [r4] + adds r0, r1, #0 + cmp r0, #1 + bne _080417DA + movs r0, #0xfe + ands r0, r1 + strb r0, [r4] + adds r0, r5, #0 + movs r1, #4 + bl sub_080042AC + b _0804181A +_080417DA: + cmp r0, #2 + bne _08041806 + movs r0, #0x51 + movs r1, #3 + bl sub_0804AA60 + adds r1, r0, #0 + cmp r1, #0 + beq _0804181A + ldr r0, [r5, #0x64] + str r0, [r1, #0x64] + ldr r0, [r5, #0x64] + str r1, [r0, #0xc] + ldr r0, [r0, #8] + movs r1, #0x14 + bl sub_08004260 + ldrb r1, [r4] + movs r0, #0xfd + ands r0, r1 + strb r0, [r4] + b _0804181A +_08041806: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0804181A + adds r0, r5, #0 + bl sub_0804235C + b _0804181A +_08041816: + subs r0, #1 + strb r0, [r5, #0xe] +_0804181A: + adds r0, r5, #0 + bl sub_08042004 + adds r0, r5, #0 + bl sub_080042B8 + pop {r4, r5, pc} + + thumb_func_start sub_08041828 +sub_08041828: @ 0x08041828 + push {r4, lr} + adds r4, r0, #0 + bl sub_08042214 + adds r0, r4, #0 + bl sub_08042004 + adds r0, r4, #0 + bl sub_080042B8 + ldr r2, _08041868 @ =gUnk_03000BF0 + ldrh r0, [r2, #8] + adds r0, #0x48 + movs r3, #0x32 + ldrsh r1, [r4, r3] + cmp r0, r1 + beq _0804186C + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + ldrh r0, [r2, #8] + adds r0, #0x48 + movs r2, #0 + cmp r0, r1 + blt _0804185C + movs r2, #0x10 +_0804185C: + strb r2, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F69C + b _0804187E + .align 2, 0 +_08041868: .4byte gUnk_03000BF0 +_0804186C: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0804187E + adds r0, r4, #0 + bl sub_08042050 +_0804187E: + pop {r4, pc} + + thumb_func_start sub_08041880 +sub_08041880: @ 0x08041880 + push {r4, lr} + adds r4, r0, #0 + bl sub_08042004 + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0806F69C + ldr r0, _080418D4 @ =gUnk_03000BF0 + ldrh r2, [r0, #6] + adds r0, r2, #0 + adds r0, #0x20 + movs r3, #0x2e + ldrsh r1, [r4, r3] + cmp r0, r1 + bgt _080418AE + movs r3, #0xa0 + lsls r3, r3, #1 + adds r0, r2, r3 + cmp r0, r1 + bge _080418BE +_080418AE: + movs r1, #0x24 + ldrsh r0, [r4, r1] + cmp r0, #0x3f + ble _080418BE + ldrb r0, [r4, #0x15] + movs r1, #0x10 + eors r0, r1 + strb r0, [r4, #0x15] +_080418BE: + ldrb r0, [r4, #0xe] + subs r1, r0, #1 + strb r1, [r4, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _080418D8 + movs r0, #9 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + b _080418F8 + .align 2, 0 +_080418D4: .4byte gUnk_03000BF0 +_080418D8: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1d + bhi _080418E6 + ldrh r0, [r4, #0x24] + subs r0, #0xc + b _080418F6 +_080418E6: + ldrh r2, [r4, #0x24] + movs r3, #0x24 + ldrsh r1, [r4, r3] + ldr r0, _08041900 @ =0x000001FF + cmp r1, r0 + bgt _080418F8 + adds r0, r2, #0 + adds r0, #0x10 +_080418F6: + strh r0, [r4, #0x24] +_080418F8: + adds r0, r4, #0 + bl sub_08042214 + pop {r4, pc} + .align 2, 0 +_08041900: .4byte 0x000001FF + + thumb_func_start sub_08041904 +sub_08041904: @ 0x08041904 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08042004 + adds r0, r4, #0 + bl sub_080042B8 + adds r3, r4, #0 + adds r3, #0x79 + ldrb r0, [r3] + cmp r0, #0 + beq _08041924 + adds r0, r4, #0 + bl sub_08042214 + b _0804197A +_08041924: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + bne _0804197A + ldr r0, _0804196C @ =gUnk_03001160 + movs r1, #0x2e + ldrsh r0, [r0, r1] + movs r5, #0x2e + ldrsh r1, [r4, r5] + subs r0, r0, r1 + adds r0, #0x40 + cmp r0, #0x80 + bhi _08041970 + movs r0, #0xa + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x7b + strb r2, [r0] + ldr r0, [r4, #0x64] + ldr r0, [r0, #0x1c] + movs r1, #1 + strb r1, [r0, #0xe] + ldr r0, [r4, #0x64] + ldr r0, [r0, #0x20] + strb r1, [r0, #0xe] + ldr r0, [r4, #0x64] + ldr r0, [r0, #0x24] + strb r1, [r0, #0xe] + ldr r0, [r4, #0x64] + ldr r0, [r0, #0x28] + strb r1, [r0, #0xe] + b _0804197A + .align 2, 0 +_0804196C: .4byte gUnk_03001160 +_08041970: + movs r0, #7 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + strb r2, [r3] +_0804197A: + pop {r4, r5, pc} + + thumb_func_start sub_0804197C +sub_0804197C: @ 0x0804197C + push {r4, lr} + adds r4, r0, #0 + bl sub_08042004 + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x7b + ldrb r0, [r0] + cmp r0, #0xf + bne _080419A6 + movs r1, #0 + movs r0, #7 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x79 + strb r1, [r0] + b _080419F6 +_080419A6: + cmp r0, #0xf0 + bne _080419F6 + movs r1, #0 + movs r0, #0xb + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + strb r1, [r4, #0x15] + adds r0, #0xf5 + strh r0, [r4, #0x24] + movs r0, #0x90 + lsls r0, r0, #9 + str r0, [r4, #0x20] + ldr r1, _080419F8 @ =0x0000016B + adds r0, r4, #0 + bl sub_0801D2B4 + adds r0, r4, #0 + movs r1, #5 + bl sub_080042AC + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0xf + bl sub_08004260 + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + movs r1, #0x15 + bl sub_08004260 + ldr r0, [r4, #0x64] + ldr r0, [r0, #0xc] + movs r1, #0x1e + bl sub_08004260 + ldr r0, _080419FC @ =0x00000127 + bl sub_080A3268 +_080419F6: + pop {r4, pc} + .align 2, 0 +_080419F8: .4byte 0x0000016B +_080419FC: .4byte 0x00000127 + + thumb_func_start sub_08041A00 +sub_08041A00: @ 0x08041A00 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _08041A60 + cmp r0, #1 + beq _08041ABC + ldr r2, _08041A5C @ =gUnk_080D0E64 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + ands r0, r1 + movs r1, #3 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x62 + strb r0, [r1] + ldrb r1, [r4, #0xe] + cmp r1, #0 + bne _08041AF0 + movs r0, #0xc + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + movs r1, #0xa0 + lsls r1, r1, #1 + adds r0, r4, #0 + bl sub_0801D2B4 + adds r0, r4, #0 + movs r1, #8 + bl sub_080042AC + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + movs r1, #0x10 + bl sub_08004260 + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + movs r1, #0x18 + bl sub_08004260 + b _08041AF0 + .align 2, 0 +_08041A5C: .4byte gUnk_080D0E64 +_08041A60: + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_080042B8 + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + bl sub_08004274 + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + bl sub_08004274 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08041AF0 + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0xf0 + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x45 + movs r0, #8 + strb r0, [r1] + subs r1, #6 + movs r0, #0x38 + strb r0, [r1] + movs r0, #0x14 + movs r1, #0 + bl sub_08080964 + adds r0, r4, #0 + movs r1, #6 + bl sub_080042AC + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + movs r1, #0x16 + bl sub_08004260 + b _08041AF0 +_08041ABC: + adds r0, r4, #0 + bl sub_080042B8 + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r2, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08041AF0 + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x39 + strb r0, [r1] + adds r1, #6 + ldrb r0, [r1] + orrs r0, r2 + strb r0, [r1] +_08041AF0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08041AF4 +sub_08041AF4: @ 0x08041AF4 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + bl sub_08004274 + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _08041B12 + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + bl sub_08004274 +_08041B12: + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _08041B44 + cmp r0, #1 + beq _08041B70 + adds r0, r4, #0 + bl sub_08042004 + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + adds r2, r0, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08041BC0 + movs r0, #0xfe + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #9 + bl sub_080042AC + b _08041BCE +_08041B44: + ldr r0, [r4, #0x34] + ldr r1, _08041B6C @ =0xFFFF8000 + adds r0, r0, r1 + str r0, [r4, #0x34] + movs r2, #0x36 + ldrsh r1, [r4, r2] + movs r0, #4 + rsbs r0, r0, #0 + cmp r1, r0 + bge _08041BCE + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x78 + strb r0, [r4, #0xe] + movs r0, #0x10 + strb r0, [r4, #0x15] + movs r0, #0x80 + strh r0, [r4, #0x24] + b _08041BCE + .align 2, 0 +_08041B6C: .4byte 0xFFFF8000 +_08041B70: + adds r0, r4, #0 + bl sub_08042004 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08041B82 + subs r0, #1 + strb r0, [r4, #0xe] + b _08041BCE +_08041B82: + adds r0, r4, #0 + bl sub_0806F69C + ldr r0, _08041BBC @ =gUnk_03000BF0 + ldrh r0, [r0, #8] + adds r0, #0x48 + movs r2, #0x32 + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _08041BCE + movs r0, #2 + strb r0, [r4, #0xd] + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + movs r1, #0x11 + bl sub_08004260 + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + movs r1, #0x19 + bl sub_08004260 + ldr r0, [r4, #0x64] + ldr r0, [r0, #0xc] + movs r1, #0x1f + bl sub_08004260 + b _08041BCE + .align 2, 0 +_08041BBC: .4byte gUnk_03000BF0 +_08041BC0: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08041BCE + adds r0, r4, #0 + bl sub_0804235C +_08041BCE: + pop {r4, pc} + + thumb_func_start sub_08041BD0 +sub_08041BD0: @ 0x08041BD0 + push {lr} + ldr r2, _08041BE4 @ =gUnk_080D0E68 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08041BE4: .4byte gUnk_080D0E68 + + thumb_func_start sub_08041BE8 +sub_08041BE8: @ 0x08041BE8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + bl sub_08079F8C + cmp r0, #0 + beq _08041CBA + movs r5, #0 + movs r0, #1 + strb r0, [r6, #0xd] + movs r0, #0x78 + strb r0, [r6, #0xe] + ldrb r1, [r6, #0x11] + movs r4, #0x10 + rsbs r4, r4, #0 + adds r0, r4, #0 + ands r0, r1 + movs r1, #3 + mov r8, r1 + mov r1, r8 + orrs r0, r1 + strb r0, [r6, #0x11] + adds r0, r6, #0 + movs r1, #0xa + bl sub_080042AC + ldr r0, [r6, #0x64] + ldr r7, [r0, #4] + str r5, [r7, #0x64] + adds r0, r7, #0 + bl sub_0805E7BC + ldr r0, [r6, #0x64] + str r5, [r0, #4] + ldr r7, [r0, #8] + ldrb r0, [r7, #0x11] + ands r4, r0 + mov r0, r8 + orrs r4, r0 + strb r4, [r7, #0x11] + adds r0, r7, #0 + bl sub_080AE068 + ldr r1, _08041CC0 @ =0x000001F5 + adds r0, r7, #0 + bl sub_080ADF80 + ldr r1, _08041CC4 @ =0x0000016B + adds r0, r7, #0 + bl sub_0801D2B4 + adds r0, r7, #0 + movs r1, #0x1a + bl sub_08004260 + ldr r0, [r6, #0x64] + ldr r7, [r0, #0xc] + str r5, [r7, #0x64] + adds r0, r7, #0 + bl sub_0805E7BC + ldr r0, [r6, #0x64] + str r5, [r0, #0xc] + ldr r7, [r0, #0x10] + str r5, [r7, #0x64] + adds r0, r7, #0 + bl sub_0805E7BC + ldr r2, [r6, #0x64] + str r5, [r2, #0x10] + ldr r1, _08041CC8 @ =gUnk_03000BF0 + ldr r0, _08041CCC @ =gUnk_03001160 + str r0, [r1, #0x30] + ldr r7, [r2, #0x1c] + str r5, [r7, #0x64] + adds r0, r7, #0 + bl sub_0805E7BC + ldr r0, [r6, #0x64] + str r5, [r0, #0x1c] + ldr r7, [r0, #0x20] + str r5, [r7, #0x64] + adds r0, r7, #0 + bl sub_0805E7BC + ldr r0, [r6, #0x64] + str r5, [r0, #0x20] + ldr r7, [r0, #0x24] + str r5, [r7, #0x64] + adds r0, r7, #0 + bl sub_0805E7BC + ldr r0, [r6, #0x64] + str r5, [r0, #0x24] + ldr r7, [r0, #0x28] + str r5, [r7, #0x64] + adds r0, r7, #0 + bl sub_0805E7BC + ldr r0, [r6, #0x64] + str r5, [r0, #0x28] + movs r0, #2 + bl sub_08078A90 +_08041CBA: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08041CC0: .4byte 0x000001F5 +_08041CC4: .4byte 0x0000016B +_08041CC8: .4byte gUnk_03000BF0 +_08041CCC: .4byte gUnk_03001160 + + thumb_func_start sub_08041CD0 +sub_08041CD0: @ 0x08041CD0 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08041D0C + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08041CF6 + subs r0, #1 + strb r0, [r4, #0xe] + b _08041D12 +_08041CF6: + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldr r0, _08041D08 @ =0x00001651 + bl sub_08056378 + b _08041D12 + .align 2, 0 +_08041D08: .4byte 0x00001651 +_08041D0C: + adds r0, r4, #0 + bl sub_080042B8 +_08041D12: + pop {r4, pc} + + thumb_func_start sub_08041D14 +sub_08041D14: @ 0x08041D14 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + bl sub_08004274 + ldr r0, _08041D3C @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08041D7C + ldrb r0, [r4, #0xe] + adds r5, r0, #0 + cmp r5, #0 + beq _08041D40 + subs r0, #1 + strb r0, [r4, #0xe] + b _08041D7C + .align 2, 0 +_08041D3C: .4byte gUnk_02000050 +_08041D40: + ldr r0, _08041D80 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x45 + bhi _08041D7C + movs r0, #0xb6 + movs r1, #0 + movs r2, #0 + bl sub_080A2960 + str r4, [r0, #0x50] + str r0, [r4, #0x54] + movs r0, #0xb6 + movs r1, #1 + movs r2, #0 + bl sub_080A2960 + str r4, [r0, #0x50] + movs r0, #3 + strb r0, [r4, #0xd] + movs r0, #0x96 + strb r0, [r4, #0xe] + strb r5, [r4, #0xf] + ldrb r1, [r4, #0x18] + subs r0, #0x9a + ands r0, r1 + strb r0, [r4, #0x18] + movs r0, #0xe2 + lsls r0, r0, #1 + bl sub_080A3268 +_08041D7C: + pop {r4, r5, pc} + .align 2, 0 +_08041D80: .4byte gUnk_03003DBC + + thumb_func_start sub_08041D84 +sub_08041D84: @ 0x08041D84 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, [r5, #0x64] + ldr r0, [r0, #8] + bl sub_08004274 + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _08041D9C + subs r0, #1 + strb r0, [r5, #0xe] + b _08041E18 +_08041D9C: + ldrb r1, [r5, #0xf] + adds r0, r1, #0 + cmp r0, #0xef + bhi _08041DEC + cmp r0, #0xb7 + bls _08041DD8 + movs r0, #7 + ands r0, r1 + cmp r0, #0 + bne _08041DD8 + ldr r0, [r5, #0x64] + ldr r0, [r0, #8] + ldr r4, _08041DE8 @ =gUnk_080D0E80 + ldrb r1, [r5, #0xf] + subs r1, #0xb8 + asrs r1, r1, #3 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r1, [r1] + bl sub_0801D2B4 + ldr r0, [r5, #0x54] + ldrb r1, [r5, #0xf] + subs r1, #0xb8 + asrs r1, r1, #3 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r1, [r1] + bl sub_0801D2B4 +_08041DD8: + ldrb r0, [r5, #0xf] + cmp r0, #0xe6 + bne _08041E0C + movs r0, #7 + movs r1, #4 + bl sub_08050054 + b _08041E0C + .align 2, 0 +_08041DE8: .4byte gUnk_080D0E80 +_08041DEC: + movs r0, #4 + strb r0, [r5, #0xd] + ldrb r1, [r5, #0x18] + subs r0, #8 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #0x18] + ldr r1, _08041E1C @ =0x00000173 + adds r0, r5, #0 + bl sub_0801D2B4 + adds r0, r5, #0 + movs r1, #0xb + bl sub_080042AC +_08041E0C: + ldrb r0, [r5, #0xf] + adds r0, #1 + strb r0, [r5, #0xf] + adds r0, r5, #0 + bl sub_08041E78 +_08041E18: + pop {r4, r5, pc} + .align 2, 0 +_08041E1C: .4byte 0x00000173 + + thumb_func_start sub_08041E20 +sub_08041E20: @ 0x08041E20 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_08041E78 + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + bl sub_08004274 + ldr r0, _08041E4C @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08041E48 + movs r0, #5 + strb r0, [r4, #0xd] + movs r0, #0x5a + strb r0, [r4, #0xe] +_08041E48: + pop {r4, pc} + .align 2, 0 +_08041E4C: .4byte gUnk_03000FD0 + + thumb_func_start sub_08041E50 +sub_08041E50: @ 0x08041E50 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _08041E76 + movs r0, #0x51 + bl sub_0807CD04 + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + str r5, [r0, #0x64] + bl sub_0805E7BC + bl sub_0805E780 +_08041E76: + pop {r4, r5, pc} + + thumb_func_start sub_08041E78 +sub_08041E78: @ 0x08041E78 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xf] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _08041ECE + adds r0, r4, #0 + movs r1, #0x51 + movs r2, #0 + bl sub_080A29AC + adds r2, r0, #0 + cmp r2, #0 + beq _08041ECE + ldrb r1, [r4, #0xf] + lsrs r1, r1, #3 + movs r0, #0xe + ands r1, r0 + ldr r0, _08041ED0 @ =gUnk_080D0E90 + adds r1, r1, r0 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r3, [r2, #0x2e] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + movs r0, #1 + ldrsb r0, [r1, r0] + ldrh r1, [r2, #0x32] + adds r0, r0, r1 + strh r0, [r2, #0x32] + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] + movs r0, #4 + movs r1, #0 + bl sub_08080964 +_08041ECE: + pop {r4, pc} + .align 2, 0 +_08041ED0: .4byte gUnk_080D0E90 + + thumb_func_start sub_08041ED4 +sub_08041ED4: @ 0x08041ED4 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _08041F14 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x45 + bhi _08041F18 + movs r0, #0x2c + bl sub_0801D8E0 + adds r4, r0, #0 + cmp r4, #0 + beq _08041F18 + str r4, [r5, #0x64] + str r5, [r4] + movs r0, #0 + str r0, [r4, #0xc] + str r0, [r4, #0x14] + str r0, [r4, #0x18] + movs r0, #0x51 + movs r1, #1 + bl sub_0804AA60 + str r4, [r0, #0x64] + str r0, [r4, #4] + movs r0, #0x51 + movs r1, #2 + bl sub_0804AA60 + str r4, [r0, #0x64] + str r0, [r4, #8] + movs r0, #1 + b _08041F1A + .align 2, 0 +_08041F14: .4byte gUnk_03003DBC +_08041F18: + movs r0, #0 +_08041F1A: + pop {r4, r5, pc} + + thumb_func_start sub_08041F1C +sub_08041F1C: @ 0x08041F1C + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08041F6C @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x43 + bhi _08041F70 + movs r0, #0x5f + movs r1, #0 + bl sub_0804AA60 + adds r1, r0, #0 + str r4, [r1, #0x50] + ldr r0, [r4, #0x64] + str r1, [r0, #0x1c] + movs r0, #0x5f + movs r1, #1 + bl sub_0804AA60 + adds r1, r0, #0 + str r4, [r1, #0x50] + ldr r0, [r4, #0x64] + str r1, [r0, #0x20] + movs r0, #0x5f + movs r1, #2 + bl sub_0804AA60 + adds r1, r0, #0 + str r4, [r1, #0x50] + ldr r0, [r4, #0x64] + str r1, [r0, #0x24] + movs r0, #0x5f + movs r1, #3 + bl sub_0804AA60 + adds r1, r0, #0 + str r4, [r1, #0x50] + ldr r0, [r4, #0x64] + str r1, [r0, #0x28] + movs r0, #1 + b _08041F72 + .align 2, 0 +_08041F6C: .4byte gUnk_03003DBC +_08041F70: + movs r0, #0 +_08041F72: + pop {r4, pc} + + thumb_func_start sub_08041F74 +sub_08041F74: @ 0x08041F74 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r6, r1, #0 + ldr r0, _08041F88 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x46 + bls _08041F8C + movs r0, #0 + b _08041FC8 + .align 2, 0 +_08041F88: .4byte gUnk_03003DBC +_08041F8C: + ldr r7, [r5, #0x64] + movs r4, #0 + ldr r0, _08041FC0 @ =gUnk_030010A0 + adds r0, #0x39 + ldrb r0, [r0] + asrs r0, r6 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08041FB6 + movs r0, #0x52 + movs r1, #0 + bl sub_0804AA60 + adds r4, r0, #0 + strb r6, [r4, #0xb] + str r5, [r4, #0x50] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 +_08041FB6: + cmp r6, #0 + bne _08041FC4 + str r4, [r7, #0x14] + b _08041FC6 + .align 2, 0 +_08041FC0: .4byte gUnk_030010A0 +_08041FC4: + str r4, [r7, #0x18] +_08041FC6: + movs r0, #1 +_08041FC8: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08041FCC +sub_08041FCC: @ 0x08041FCC + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08041FFC @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x4c + bhi _08042000 + adds r0, r4, #0 + bl sub_08041ED4 + cmp r0, #0 + beq _08042000 + adds r0, r4, #0 + movs r1, #0 + bl sub_08041F74 + adds r0, r4, #0 + movs r1, #1 + bl sub_08041F74 + adds r0, r4, #0 + bl sub_08041F1C + movs r0, #1 + b _08042002 + .align 2, 0 +_08041FFC: .4byte gUnk_03003DBC +_08042000: + movs r0, #0 +_08042002: + pop {r4, pc} + + thumb_func_start sub_08042004 +sub_08042004: @ 0x08042004 + ldr r3, _08042024 @ =gUnk_080D0EA0 + adds r2, r0, #0 + adds r2, #0x78 + ldrb r1, [r2] + adds r1, #1 + strb r1, [r2] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x1c + movs r2, #7 + ands r1, r2 + adds r1, r1, r3 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + strh r1, [r0, #0x36] + bx lr + .align 2, 0 +_08042024: .4byte gUnk_080D0EA0 + + thumb_func_start sub_08042028 +sub_08042028: @ 0x08042028 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #3 + strb r5, [r4, #0xc] + bl sub_08000E50 + ldr r1, _0804204C @ =gUnk_080D0EA8 + ands r0, r5 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r4, #0xe] + movs r0, #0x40 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_0804207C + strb r0, [r4, #0x15] + pop {r4, r5, pc} + .align 2, 0 +_0804204C: .4byte gUnk_080D0EA8 + + thumb_func_start sub_08042050 +sub_08042050: @ 0x08042050 + push {r4, lr} + adds r4, r0, #0 + movs r0, #8 + strb r0, [r4, #0xc] + bl sub_08000E50 + ldr r2, _08042078 @ =gUnk_080D0EAC + movs r1, #3 + ands r1, r0 + adds r1, r1, r2 + ldrb r1, [r1] + strb r1, [r4, #0xe] + movs r1, #0x20 + strh r1, [r4, #0x24] + lsrs r0, r0, #8 + movs r1, #0x10 + ands r0, r1 + adds r0, #8 + strb r0, [r4, #0x15] + pop {r4, pc} + .align 2, 0 +_08042078: .4byte gUnk_080D0EAC + + thumb_func_start sub_0804207C +sub_0804207C: @ 0x0804207C + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + movs r0, #0x2e + ldrsh r6, [r5, r0] + movs r1, #0x32 + ldrsh r0, [r5, r1] + adds r7, r0, #0 + subs r7, #0x10 + ldr r0, [r5, #0x64] + ldr r4, [r0, #0x14] + cmp r4, #0 + beq _080420B8 + ldrb r0, [r4, #0xc] + cmp r0, #4 + bls _080420B8 + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r7, #0 + movs r3, #0x30 + bl sub_0806FCB8 + cmp r0, #0 + beq _080420B8 + movs r2, #0x2e + ldrsh r0, [r4, r2] + movs r2, #0x32 + ldrsh r1, [r4, r2] + adds r2, r6, #0 + adds r3, r7, #0 + b _08042118 +_080420B8: + ldr r0, [r5, #0x64] + ldr r4, [r0, #0x18] + cmp r4, #0 + beq _080420E4 + ldrb r0, [r4, #0xc] + cmp r0, #4 + bls _080420E4 + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r7, #0 + movs r3, #0x30 + bl sub_0806FCB8 + cmp r0, #0 + beq _080420E4 + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + adds r2, r6, #0 + adds r3, r7, #0 + b _08042118 +_080420E4: + ldr r0, _080420FC @ =gUnk_03001160 + movs r4, #0x32 + ldrsh r1, [r0, r4] + adds r2, r0, #0 + cmp r1, #0x3f + bgt _08042104 + ldr r0, _08042100 @ =gUnk_03000BF0 + ldrh r0, [r0, #8] + adds r3, r0, #0 + adds r3, #0x18 + b _0804210C + .align 2, 0 +_080420FC: .4byte gUnk_03001160 +_08042100: .4byte gUnk_03000BF0 +_08042104: + movs r1, #0x32 + ldrsh r0, [r2, r1] + adds r3, r0, #0 + subs r3, #0x28 +_0804210C: + movs r4, #0x2e + ldrsh r0, [r5, r4] + movs r4, #0x32 + ldrsh r1, [r5, r4] + movs r4, #0x2e + ldrsh r2, [r2, r4] +_08042118: + bl sub_080045D4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08042120 +sub_08042120: @ 0x08042120 + movs r2, #0 + movs r1, #5 + strb r1, [r0, #0xc] + strb r2, [r0, #0xd] + bx lr + .align 2, 0 + + thumb_func_start sub_0804212C +sub_0804212C: @ 0x0804212C + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7c + ldrh r0, [r1] + cmp r0, #0 + beq _0804213E + subs r0, #1 + b _080421A8 +_0804213E: + movs r5, #0 + movs r0, #0x32 + ldrsh r1, [r4, r0] + subs r1, #0x44 + ldr r3, _0804216C @ =gUnk_03001160 + movs r2, #0x32 + ldrsh r0, [r3, r2] + subs r0, r0, r1 + cmp r0, #0x60 + bhi _0804217A + movs r6, #0x2e + ldrsh r2, [r4, r6] + adds r0, r2, #0 + subs r0, #0x38 + movs r6, #0x2e + ldrsh r1, [r3, r6] + subs r0, r1, r0 + cmp r0, #0x38 + bhi _08042170 + ldr r0, [r4, #0x64] + ldr r5, [r0, #0x18] + b _0804217A + .align 2, 0 +_0804216C: .4byte gUnk_03001160 +_08042170: + subs r0, r1, r2 + cmp r0, #0x38 + bhi _0804217A + ldr r0, [r4, #0x64] + ldr r5, [r0, #0x14] +_0804217A: + cmp r5, #0 + beq _080421A2 + ldrb r0, [r5, #0xc] + cmp r0, #2 + bne _080421AA + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _080421AA + movs r1, #0 + movs r0, #3 + strb r0, [r5, #0xc] + strb r1, [r5, #0xd] + adds r1, r4, #0 + adds r1, #0x7c + movs r0, #0xb4 + lsls r0, r0, #2 + b _080421A8 +_080421A2: + adds r1, r4, #0 + adds r1, #0x7c + movs r0, #0x3c +_080421A8: + strh r0, [r1] +_080421AA: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080421AC +sub_080421AC: @ 0x080421AC + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x7e + ldrh r0, [r5] + adds r7, r0, #0 + cmp r7, #0 + beq _080421C0 + subs r0, #1 + b _08042210 +_080421C0: + adds r6, r4, #0 + adds r6, #0x79 + ldrb r0, [r6] + cmp r0, #0 + bne _080421FE + bl sub_08000E50 + movs r5, #1 + ands r0, r5 + cmp r0, #0 + beq _080421F4 + ldr r0, _080421F0 @ =gUnk_030010A0 + adds r0, #0x39 + ldrb r1, [r0] + movs r0, #0xc + ands r0, r1 + cmp r0, #0 + beq _080421F4 + adds r0, r4, #0 + bl sub_08042264 + strb r5, [r6] + b _08042212 + .align 2, 0 +_080421F0: .4byte gUnk_030010A0 +_080421F4: + adds r1, r4, #0 + adds r1, #0x7e + movs r0, #0x1e + strh r0, [r1] + b _08042212 +_080421FE: + adds r0, r4, #0 + movs r1, #0 + bl sub_080422C0 + cmp r0, #0 + beq _08042212 + strb r7, [r6] + movs r0, #0xb4 + lsls r0, r0, #1 +_08042210: + strh r0, [r5] +_08042212: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08042214 +sub_08042214: @ 0x08042214 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r6, r4, #0 + adds r6, #0x7e + ldrh r0, [r6] + adds r7, r0, #0 + cmp r7, #0 + beq _08042228 + subs r0, #1 + b _0804225E +_08042228: + adds r5, r4, #0 + adds r5, #0x79 + ldrb r0, [r5] + cmp r0, #0 + bne _0804224E + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + cmp r1, #0 + beq _0804224A + adds r0, r4, #0 + bl sub_0804228C + movs r0, #1 + strb r0, [r5] + b _08042260 +_0804224A: + movs r0, #0x1e + b _0804225E +_0804224E: + adds r0, r4, #0 + movs r1, #1 + bl sub_080422C0 + cmp r0, #0 + beq _08042260 + strb r7, [r5] + movs r0, #0xb4 +_0804225E: + strh r0, [r6] +_08042260: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08042264 +sub_08042264: @ 0x08042264 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_080042AC + ldr r0, [r4, #0x64] + ldr r1, [r0, #4] + movs r0, #1 + strb r0, [r1, #0xd] + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + movs r1, #0xd + bl sub_08004260 + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + movs r1, #0x13 + bl sub_08004260 + pop {r4, pc} + + thumb_func_start sub_0804228C +sub_0804228C: @ 0x0804228C + push {r4, lr} + adds r4, r0, #0 + movs r1, #2 + bl sub_080042AC + ldr r0, [r4, #0x64] + ldr r1, [r0, #4] + movs r0, #1 + strb r0, [r1, #0xd] + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + movs r1, #0xd + bl sub_08004260 + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + movs r1, #0x13 + bl sub_08004260 + ldr r0, [r4, #0x64] + ldr r0, [r0, #0xc] + movs r1, #0x1d + bl sub_08004260 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080422C0 +sub_080422C0: @ 0x080422C0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + mov r8, r1 + bl sub_080042B8 + ldr r0, [r5, #0x64] + ldr r0, [r0, #8] + bl sub_08004274 + ldr r0, [r5, #0x64] + ldr r7, [r0, #4] + adds r0, r7, #0 + bl sub_08004274 + mov r0, r8 + adds r0, #1 + adds r6, r7, #0 + adds r6, #0x5a + ldrb r4, [r6] + cmp r0, r4 + bne _08042306 + movs r0, #0x21 + bl sub_080A7EE0 + cmp r0, #0 + beq _08042354 + mov r1, r8 + strb r1, [r0, #0xa] + str r5, [r0, #0x50] + ldrb r0, [r6] + bics r0, r4 + strb r0, [r6] + b _08042354 +_08042306: + cmp r4, #4 + bne _0804231A + movs r0, #0xfb + ands r4, r0 + strb r4, [r6] + adds r0, r5, #0 + movs r1, #3 + bl sub_080042AC + b _08042354 +_0804231A: + movs r0, #0x80 + ands r4, r0 + cmp r4, #0 + beq _08042354 + adds r0, r5, #0 + movs r1, #0 + bl sub_080042AC + movs r0, #0 + strb r0, [r7, #0xd] + adds r0, r7, #0 + movs r1, #0xc + bl sub_08004260 + ldr r0, [r5, #0x64] + ldr r0, [r0, #8] + movs r1, #0x12 + bl sub_08004260 + mov r0, r8 + cmp r0, #1 + bne _08042350 + ldr r0, [r5, #0x64] + ldr r0, [r0, #0xc] + movs r1, #0x1b + bl sub_08004260 +_08042350: + movs r0, #1 + b _08042356 +_08042354: + movs r0, #0 +_08042356: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0804235C +sub_0804235C: @ 0x0804235C + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #7 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x79 + strb r1, [r0] + adds r1, r4, #0 + adds r1, #0x7e + movs r5, #0 + movs r0, #0xf0 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + strb r5, [r0, #0xd] + movs r1, #0xc + bl sub_08004260 + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + movs r1, #0x12 + bl sub_08004260 + ldr r0, [r4, #0x64] + ldr r0, [r0, #0xc] + movs r1, #0x1b + bl sub_08004260 + pop {r4, r5, pc} + + thumb_func_start sub_080423A4 +sub_080423A4: @ 0x080423A4 + push {r4, lr} + ldr r0, _080423CC @ =gUnk_030010A0 + adds r4, r0, #0 + adds r4, #0x38 + ldrb r1, [r4] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _0804241C + ldr r0, _080423D0 @ =gUnk_02002A40 + movs r2, #0x93 + lsls r2, r2, #3 + adds r1, r0, r2 + ldr r0, [r1] + cmp r0, #0 + beq _080423D4 + subs r0, #1 + str r0, [r1] + b _0804241C + .align 2, 0 +_080423CC: .4byte gUnk_030010A0 +_080423D0: .4byte gUnk_02002A40 +_080423D4: + ldr r2, _08042420 @ =gUnk_03003F80 + adds r0, r2, #0 + adds r0, #0xa9 + ldrb r0, [r0] + cmp r0, #1 + bgt _0804241C + cmp r0, #0 + blt _0804241C + ldr r0, [r2, #0x2c] + cmp r0, #0 + bne _0804241C + ldr r1, _08042424 @ =gUnk_03001160 + adds r0, r1, #0 + adds r0, #0x7a + ldrh r0, [r0] + cmp r0, #0 + bne _0804241C + movs r3, #0x36 + ldrsh r0, [r1, r3] + movs r1, #0x80 + lsls r1, r1, #8 + ands r0, r1 + cmp r0, #0 + beq _0804240A + ldrb r0, [r2, #0xa] + cmp r0, #0 + beq _0804241C +_0804240A: + movs r0, #0xb7 + lsls r0, r0, #4 + movs r1, #0 + bl sub_08078AA8 + ldrb r0, [r4] + movs r1, #2 + orrs r0, r1 + strb r0, [r4] +_0804241C: + pop {r4, pc} + .align 2, 0 +_08042420: .4byte gUnk_03003F80 +_08042424: .4byte gUnk_03001160 + + thumb_func_start sub_08042428 +sub_08042428: @ 0x08042428 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x64] + ldr r0, [r0] + ldr r0, [r0, #4] + cmp r0, #0 + bne _0804243C + str r0, [r4, #0x64] + bl sub_0805E780 +_0804243C: + ldrb r1, [r4, #0xc] + cmp r1, #0 + bne _08042450 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + adds r0, r4, #0 + movs r1, #0xc + bl sub_08004260 +_08042450: + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _0804245C + adds r0, r4, #0 + bl sub_08004274 +_0804245C: + ldr r0, [r4, #0x58] + ldr r1, _0804249C @ =0x008000FF + ands r0, r1 + subs r1, #0xf3 + cmp r0, r1 + bne _08042480 + adds r0, r4, #0 + movs r1, #0xc + bl sub_08004260 + bl sub_08000E50 + movs r1, #0x78 + ands r0, r1 + adds r0, #0x78 + adds r1, r4, #0 + adds r1, #0x59 + strb r0, [r1] +_08042480: + ldr r0, [r4, #0x64] + ldr r0, [r0] + adds r1, r4, #0 + movs r2, #0 + movs r3, #1 + bl sub_0806FA90 + adds r1, r4, #0 + adds r1, #0x63 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + pop {r4, pc} + .align 2, 0 +_0804249C: .4byte 0x008000FF + + thumb_func_start sub_080424A0 +sub_080424A0: @ 0x080424A0 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x64] + ldr r0, [r0] + ldr r0, [r0, #4] + cmp r0, #0 + bne _080424B4 + str r0, [r4, #0x64] + bl sub_0805E780 +_080424B4: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080424C6 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0x12 + bl sub_08004260 +_080424C6: + ldr r0, [r4, #0x64] + ldr r0, [r0] + movs r3, #1 + rsbs r3, r3, #0 + adds r1, r4, #0 + movs r2, #0 + bl sub_0806FA90 + adds r1, r4, #0 + adds r1, #0x63 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0x12 + bne _08042502 + ldr r1, _08042504 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + ldr r1, _08042508 @ =gUnk_080D0EB0 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x2e] + adds r0, r0, r1 + strh r0, [r4, #0x2e] +_08042502: + pop {r4, pc} + .align 2, 0 +_08042504: .4byte gUnk_03001160 +_08042508: .4byte gUnk_080D0EB0 + + thumb_func_start sub_0804250C +sub_0804250C: @ 0x0804250C + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x64] + ldr r0, [r0] + ldr r0, [r0, #4] + cmp r0, #0 + bne _08042520 + str r0, [r4, #0x64] + bl sub_0805E780 +_08042520: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08042532 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0x1c + bl sub_08004260 +_08042532: + ldr r0, [r4, #0x64] + ldr r0, [r0] + movs r3, #1 + rsbs r3, r3, #0 + adds r1, r4, #0 + movs r2, #0 + bl sub_0806FA90 + adds r1, r4, #0 + adds r1, #0x63 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_08042554 +sub_08042554: @ 0x08042554 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _0804256C @ =gUnk_080D1230 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_0804256C: .4byte gUnk_080D1230 + + thumb_func_start sub_08042570 +sub_08042570: @ 0x08042570 + push {lr} + ldr r2, _08042584 @ =gUnk_080D1248 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08042584: .4byte gUnk_080D1248 + + thumb_func_start sub_08042588 +sub_08042588: @ 0x08042588 + push {lr} + ldr r1, _08042594 @ =gUnk_080D1230 + bl sub_0804AA30 + pop {pc} + .align 2, 0 +_08042594: .4byte gUnk_080D1230 + + thumb_func_start nullsub_170 +nullsub_170: @ 0x08042598 + bx lr + .align 2, 0 + + thumb_func_start sub_0804259C +sub_0804259C: @ 0x0804259C + push {lr} + ldr r2, _080425B0 @ =gUnk_080D125C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080425B0: .4byte gUnk_080D125C + + thumb_func_start sub_080425B4 +sub_080425B4: @ 0x080425B4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_080437DC + cmp r0, #0 + beq _0804264C + adds r0, r4, #0 + adds r0, #0x7c + movs r1, #0 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + ldr r5, _08042614 @ =gUnk_030010A0 + adds r0, r5, #0 + adds r0, #0x38 + ldrb r0, [r0] + movs r6, #1 + adds r1, r6, #0 + ands r1, r0 + cmp r1, #0 + beq _08042634 + adds r0, r5, #0 + adds r0, #0x3c + ldrb r0, [r0] + ldrb r1, [r4, #0xb] + cmp r0, r1 + bne _08042620 + adds r0, r4, #0 + bl sub_08043EB8 + adds r0, r4, #0 + bl sub_08043ABC + adds r0, r5, #0 + adds r0, #0x39 + ldrb r1, [r0] + ldrb r0, [r4, #0xb] + adds r0, #2 + asrs r1, r0 + ands r1, r6 + cmp r1, #0 + beq _08042618 + movs r0, #7 + strb r0, [r4, #0xc] + movs r0, #4 + strb r0, [r4, #0xd] + b _0804264C + .align 2, 0 +_08042614: .4byte gUnk_030010A0 +_08042618: + movs r0, #8 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + b _0804264C +_08042620: + adds r0, r4, #0 + bl sub_08044000 + adds r0, r4, #0 + bl sub_08043BC8 + adds r0, r4, #0 + bl sub_08043A10 + b _0804264C +_08042634: + strb r6, [r4, #0xc] + strb r1, [r4, #0xd] + ldr r2, [r4, #0x64] + ldr r1, _08042650 @ =gUnk_080D1280 + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r2, #0x20] + adds r0, r4, #0 + bl sub_08042654 +_0804264C: + pop {r4, r5, r6, pc} + .align 2, 0 +_08042650: .4byte gUnk_080D1280 + + thumb_func_start sub_08042654 +sub_08042654: @ 0x08042654 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldrb r0, [r6, #0xb] + lsls r3, r0, #2 + ldr r0, [r6, #0x64] + adds r2, r0, #0 + adds r2, #0x18 + ldrb r0, [r6, #0xd] + cmp r0, #4 + bls _0804266A + b _080427FC +_0804266A: + lsls r0, r0, #2 + ldr r1, _08042674 @ =_08042678 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08042674: .4byte _08042678 +_08042678: @ jump table + .4byte _0804268C @ case 0 + .4byte _080426B0 @ case 1 + .4byte _080426E0 @ case 2 + .4byte _08042710 @ case 3 + .4byte _08042740 @ case 4 +_0804268C: + movs r0, #1 + strb r0, [r6, #0xd] + ldr r1, _080426A8 @ =gUnk_080D1284 + ldrb r0, [r6, #0xb] + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r2, #1] + ldr r1, _080426AC @ =gUnk_080D1286 + ldrb r0, [r6, #0xb] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r6, #0 + b _080427EE + .align 2, 0 +_080426A8: .4byte gUnk_080D1284 +_080426AC: .4byte gUnk_080D1286 +_080426B0: + ldrh r0, [r2, #8] + ldrh r1, [r2] + adds r0, r0, r1 + strh r0, [r2] + ldr r1, [r6, #0x64] + adds r1, #0x34 + ldrb r0, [r1] + adds r0, #2 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xb + bhi _080426CC + b _0804280E +_080426CC: + movs r0, #2 + strb r0, [r6, #0xd] + ldr r1, _080426DC @ =gUnk_080D1286 + adds r0, r3, #1 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r6, #0 + b _080427EE + .align 2, 0 +_080426DC: .4byte gUnk_080D1286 +_080426E0: + ldrh r0, [r2, #8] + ldrh r1, [r2] + adds r0, r0, r1 + strh r0, [r2] + ldr r1, [r6, #0x64] + adds r1, #0x44 + ldrb r0, [r1] + adds r0, #2 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xd + bhi _080426FC + b _0804280E +_080426FC: + movs r0, #3 + strb r0, [r6, #0xd] + ldr r1, _0804270C @ =gUnk_080D1286 + adds r0, r3, #2 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r6, #0 + b _080427EE + .align 2, 0 +_0804270C: .4byte gUnk_080D1286 +_08042710: + ldrh r0, [r2, #8] + ldrh r1, [r2] + adds r0, r0, r1 + strh r0, [r2] + ldr r1, [r6, #0x64] + adds r1, #0x54 + ldrb r0, [r1] + adds r0, #2 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xf + bls _0804280E + movs r0, #4 + strb r0, [r6, #0xd] + ldr r1, _0804273C @ =gUnk_080D1286 + adds r0, r3, #3 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r6, #0 + b _080427EE + .align 2, 0 +_0804273C: .4byte gUnk_080D1286 +_08042740: + ldrh r0, [r2, #8] + ldrh r1, [r2] + adds r0, r0, r1 + strh r0, [r2] + ldr r1, [r6, #0x64] + adds r1, #0x64 + ldrb r0, [r1] + adds r0, #2 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1b + bls _0804280E + movs r0, #5 + strb r0, [r6, #0xd] + movs r0, #0x5a + strb r0, [r6, #0xe] + ldr r0, [r6, #0x64] + ldr r1, [r0] + ldrb r0, [r1, #0x10] + movs r5, #0x80 + orrs r0, r5 + strb r0, [r1, #0x10] + ldr r0, [r6, #0x64] + ldr r1, [r0] + adds r1, #0x29 + ldrb r2, [r1] + movs r3, #8 + rsbs r3, r3, #0 + adds r0, r3, #0 + ands r0, r2 + movs r4, #4 + orrs r0, r4 + strb r0, [r1] + ldr r0, [r6, #0x64] + ldr r1, [r0, #4] + ldrb r0, [r1, #0x10] + orrs r0, r5 + strb r0, [r1, #0x10] + ldr r0, [r6, #0x64] + ldr r1, [r0, #4] + adds r1, #0x29 + ldrb r2, [r1] + adds r0, r3, #0 + ands r0, r2 + orrs r0, r4 + strb r0, [r1] + ldr r0, [r6, #0x64] + ldr r1, [r0, #8] + ldrb r0, [r1, #0x10] + orrs r0, r5 + strb r0, [r1, #0x10] + ldr r0, [r6, #0x64] + ldr r1, [r0, #8] + adds r1, #0x29 + ldrb r2, [r1] + adds r0, r3, #0 + ands r0, r2 + orrs r0, r4 + strb r0, [r1] + ldr r0, [r6, #0x64] + ldr r1, [r0, #0xc] + ldrb r0, [r1, #0x10] + orrs r0, r5 + strb r0, [r1, #0x10] + ldr r0, [r6, #0x64] + ldr r1, [r0, #0xc] + adds r1, #0x29 + ldrb r2, [r1] + adds r0, r3, #0 + ands r0, r2 + orrs r0, r4 + strb r0, [r1] + ldr r0, [r6, #0x64] + ldr r1, [r0, #0x10] + ldrb r0, [r1, #0x10] + orrs r0, r5 + strb r0, [r1, #0x10] + ldr r0, [r6, #0x64] + ldr r0, [r0, #0x10] + adds r0, #0x29 + ldrb r1, [r0] + ands r3, r1 + orrs r3, r4 + strb r3, [r0] + adds r0, r6, #0 + movs r1, #7 +_080427EE: + bl sub_080042AC + movs r0, #0xaf + lsls r0, r0, #1 + bl sub_080A3268 + b _0804280E +_080427FC: + ldrb r0, [r6, #0xe] + subs r0, #1 + strb r0, [r6, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0804280E + adds r0, r6, #0 + bl sub_08043BC8 +_0804280E: + adds r0, r6, #0 + bl sub_08043A10 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08042818 +sub_08042818: @ 0x08042818 + push {r4, lr} + adds r4, r0, #0 + bl sub_08043CD4 + ldr r0, [r4, #0x64] + adds r2, r0, #0 + adds r2, #0x18 + ldrh r1, [r2, #8] + ldrh r3, [r0, #0x18] + adds r1, r1, r3 + strh r1, [r0, #0x18] + ldrb r0, [r2, #0xd] + subs r0, #1 + strb r0, [r2, #0xd] + movs r1, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08042848 + movs r0, #0x78 + strb r0, [r2, #0xd] + movs r3, #8 + ldrsh r0, [r2, r3] + rsbs r0, r0, #0 + strh r0, [r2, #8] +_08042848: + ldrh r0, [r2, #0xa] + ldrh r3, [r2, #4] + adds r0, r0, r3 + strh r0, [r2, #4] + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + ands r0, r1 + cmp r0, #0 + bne _08042868 + movs r0, #0x50 + strb r0, [r2, #0xe] + movs r1, #0xa + ldrsh r0, [r2, r1] + rsbs r0, r0, #0 + strh r0, [r2, #0xa] +_08042868: + adds r0, r4, #0 + bl sub_08043A10 + pop {r4, pc} + + thumb_func_start sub_08042870 +sub_08042870: @ 0x08042870 + push {r4, lr} + adds r4, r0, #0 + bl sub_08043CD4 + ldr r1, _08042890 @ =gUnk_080D1290 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_08043A10 + pop {r4, pc} + .align 2, 0 +_08042890: .4byte gUnk_080D1290 + + thumb_func_start sub_08042894 +sub_08042894: @ 0x08042894 + movs r1, #1 + strb r1, [r0, #0xd] + ldr r2, [r0, #0x64] + ldr r1, _080428A8 @ =gUnk_080D12AC + ldrb r0, [r0, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r2, #0x20] + bx lr + .align 2, 0 +_080428A8: .4byte gUnk_080D12AC + + thumb_func_start sub_080428AC +sub_080428AC: @ 0x080428AC + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x64] + adds r3, r0, #0 + adds r3, #0x18 + ldrb r0, [r3, #5] + cmp r0, #0x40 + beq _080428CC + cmp r0, #0x40 + bls _080428C6 + ldrh r0, [r3, #4] + subs r0, #0x80 + b _080428CA +_080428C6: + ldrh r0, [r3, #4] + adds r0, #0x80 +_080428CA: + strh r0, [r3, #4] +_080428CC: + ldrb r1, [r3, #1] + ldr r2, _080428E8 @ =gUnk_080D12B0 + ldrb r0, [r4, #0xb] + adds r0, r0, r2 + ldrb r0, [r0] + subs r1, r1, r0 + adds r1, #1 + cmp r1, #2 + bls _080428EC + ldrh r0, [r3, #8] + ldrh r1, [r3] + adds r0, r0, r1 + strh r0, [r3] + b _080428F4 + .align 2, 0 +_080428E8: .4byte gUnk_080D12B0 +_080428EC: + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #0x1e + strb r0, [r4, #0xe] +_080428F4: + adds r0, r4, #0 + bl sub_08043BF0 + pop {r4, pc} + + thumb_func_start sub_080428FC +sub_080428FC: @ 0x080428FC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0804293C + movs r0, #3 + strb r0, [r4, #0xd] + ldr r1, [r4, #0x64] + adds r1, #0x18 + movs r0, #8 + ldrsh r2, [r1, r0] + lsls r0, r2, #1 + adds r0, r0, r2 + rsbs r0, r0, #0 + strh r0, [r1, #8] + ldr r0, _08042940 @ =0x00000153 + bl sub_080A3268 + movs r2, #0 + movs r3, #0x3b +_0804292A: + ldr r0, [r4, #0x64] + lsls r1, r2, #2 + adds r0, r0, r1 + ldr r0, [r0] + adds r0, #0x3f + strb r3, [r0] + adds r2, #1 + cmp r2, #4 + bls _0804292A +_0804293C: + pop {r4, pc} + .align 2, 0 +_08042940: .4byte 0x00000153 + + thumb_func_start sub_08042944 +sub_08042944: @ 0x08042944 + push {lr} + adds r3, r0, #0 + ldr r2, [r3, #0x64] + adds r1, r2, #0 + adds r1, #0x18 + ldrb r0, [r1, #1] + subs r0, #0x7c + cmp r0, #8 + bls _08042960 + ldrh r0, [r1, #8] + ldrh r1, [r2, #0x18] + adds r0, r0, r1 + strh r0, [r2, #0x18] + b _08042968 +_08042960: + movs r0, #4 + strb r0, [r3, #0xd] + ldrh r0, [r1, #8] + strh r0, [r3, #0x24] +_08042968: + adds r0, r3, #0 + bl sub_08043BF0 + pop {pc} + + thumb_func_start sub_08042970 +sub_08042970: @ 0x08042970 + push {r4, r5, lr} + adds r3, r0, #0 + ldr r4, [r3, #0x64] + adds r2, r4, #0 + adds r2, #0x18 + ldrb r0, [r2, #1] + ldr r1, _080429A4 @ =gUnk_080D12B2 + ldrb r5, [r3, #0xb] + adds r1, r5, r1 + ldrb r1, [r1] + subs r0, r0, r1 + adds r0, #2 + cmp r0, #4 + bls _080429AC + ldr r0, _080429A8 @ =gUnk_080D12B4 + adds r0, r5, r0 + movs r1, #0 + ldrsb r1, [r0, r1] + ldrh r0, [r2, #8] + adds r1, r1, r0 + strh r1, [r2, #8] + ldrh r0, [r4, #0x18] + adds r0, r0, r1 + strh r0, [r4, #0x18] + b _080429CA + .align 2, 0 +_080429A4: .4byte gUnk_080D12B2 +_080429A8: .4byte gUnk_080D12B4 +_080429AC: + movs r0, #5 + strb r0, [r3, #0xd] + movs r0, #0x3c + strb r0, [r3, #0xe] + movs r2, #0 + movs r4, #0x39 +_080429B8: + ldr r0, [r3, #0x64] + lsls r1, r2, #2 + adds r0, r0, r1 + ldr r0, [r0] + adds r0, #0x3f + strb r4, [r0] + adds r2, #1 + cmp r2, #4 + bls _080429B8 +_080429CA: + adds r0, r3, #0 + bl sub_08043BF0 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080429D4 +sub_080429D4: @ 0x080429D4 + push {r4, lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080429FA + movs r0, #6 + strb r0, [r1, #0xd] + ldr r4, [r1, #0x64] + adds r4, #0x18 + movs r2, #0x24 + ldrsh r0, [r1, r2] + rsbs r0, r0, #0 + movs r1, #6 + bl __divsi3 + strh r0, [r4, #8] +_080429FA: + pop {r4, pc} + + thumb_func_start sub_080429FC +sub_080429FC: @ 0x080429FC + push {r4, r5, lr} + adds r4, r0, #0 + ldr r3, [r4, #0x64] + adds r5, r3, #0 + adds r5, #0x18 + ldrb r1, [r5, #1] + ldr r2, _08042A28 @ =gUnk_080D12B6 + ldrb r0, [r4, #0xb] + adds r0, r0, r2 + ldrb r0, [r0] + subs r1, r1, r0 + adds r1, #1 + cmp r1, #2 + bls _08042A2C + ldrh r0, [r5, #8] + ldrh r1, [r3, #0x18] + adds r0, r0, r1 + strh r0, [r3, #0x18] + adds r0, r4, #0 + bl sub_08043BF0 + b _08042A3A + .align 2, 0 +_08042A28: .4byte gUnk_080D12B6 +_08042A2C: + adds r0, r4, #0 + bl sub_08043BC8 + adds r0, r4, #0 + movs r1, #7 + bl sub_080042AC +_08042A3A: + pop {r4, r5, pc} + + thumb_func_start sub_08042A3C +sub_08042A3C: @ 0x08042A3C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08042A68 @ =gUnk_080D12B8 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_08043A10 + ldr r0, [r4, #0x64] + ldr r1, [r0, #0x10] + adds r4, #0x78 + ldrh r0, [r1, #0x36] + ldrb r4, [r4] + adds r0, r0, r4 + strh r0, [r1, #0x36] + pop {r4, pc} + .align 2, 0 +_08042A68: .4byte gUnk_080D12B8 + + thumb_func_start sub_08042A6C +sub_08042A6C: @ 0x08042A6C + adds r3, r0, #0 + movs r2, #0 + movs r1, #1 + strb r1, [r3, #0xd] + adds r0, #0x78 + strb r2, [r0] + adds r0, #6 + strb r1, [r0] + ldr r1, [r3, #0x64] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r1, #0x22] + bx lr + .align 2, 0 + + thumb_func_start sub_08042A88 +sub_08042A88: @ 0x08042A88 + push {r4, lr} + adds r4, r0, #0 + ldr r3, [r4, #0x64] + adds r2, r3, #0 + adds r2, #0x18 + ldr r1, _08042AA8 @ =gUnk_080D12C8 + ldrb r0, [r4, #0xb] + adds r0, r0, r1 + ldrb r1, [r0] + ldrb r0, [r2, #1] + cmp r1, r0 + beq _08042ABC + cmp r1, r0 + bhs _08042AB0 + ldr r1, _08042AAC @ =0xFFFFFF00 + b _08042AB4 + .align 2, 0 +_08042AA8: .4byte gUnk_080D12C8 +_08042AAC: .4byte 0xFFFFFF00 +_08042AB0: + movs r1, #0x80 + lsls r1, r1, #1 +_08042AB4: + adds r0, r1, #0 + ldrh r1, [r3, #0x18] + adds r0, r0, r1 + strh r0, [r3, #0x18] +_08042ABC: + movs r1, #0xa + ldrsh r0, [r2, r1] + ldrh r1, [r2, #4] + cmp r0, r1 + bge _08042ACE + ldrh r0, [r2, #0xa] + subs r0, r1, r0 + strh r0, [r2, #4] + b _08042AE6 +_08042ACE: + movs r0, #0 + strh r0, [r2, #4] + ldr r1, _08042AE8 @ =gUnk_080D12CA + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r2, #8] + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #0x1e + strb r0, [r4, #0xe] +_08042AE6: + pop {r4, pc} + .align 2, 0 +_08042AE8: .4byte gUnk_080D12CA + + thumb_func_start sub_08042AEC +sub_08042AEC: @ 0x08042AEC + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08042B1C + movs r0, #3 + strb r0, [r5, #0xd] + movs r0, #4 + strb r0, [r5, #0xe] + adds r0, r5, #0 + adds r0, #0x3f + movs r4, #0x3d + strb r4, [r0] + adds r0, r5, #0 + movs r1, #0xe + bl sub_080042AC + ldr r0, [r5, #0x64] + ldr r0, [r0, #4] + adds r0, #0x3f + strb r4, [r0] +_08042B1C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08042B20 +sub_08042B20: @ 0x08042B20 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldr r0, [r5, #0x64] + adds r1, r0, #0 + adds r1, #0x18 + ldrb r0, [r1, #5] + cmp r0, #0x7a + bhi _08042B3E + movs r2, #0xa0 + lsls r2, r2, #3 + adds r0, r2, #0 + ldrh r2, [r1, #4] + adds r0, r0, r2 + strh r0, [r1, #4] + b _08042B42 +_08042B3E: + movs r0, #0x80 + strb r0, [r1, #5] +_08042B42: + ldrb r0, [r1, #5] + cmp r0, #0x30 + bls _08042B50 + ldrh r0, [r1, #8] + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] +_08042B50: + ldr r0, [r5, #0x64] + ldr r0, [r0, #0xc] + ldrb r0, [r0, #0x18] + lsls r0, r0, #0x1e + cmp r0, #0 + beq _08042BE0 + adds r0, r5, #0 + bl sub_08043C40 + movs r6, #0 + movs r7, #0xa + rsbs r7, r7, #0 +_08042B68: + ldr r0, [r5, #0x64] + lsls r1, r6, #2 + adds r0, r0, r1 + ldr r4, [r0] + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, r7 + blt _08042BD4 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _08042BD4 + cmp r6, #0 + bne _08042BBA + movs r0, #0xaf + movs r1, #0 + movs r2, #0 + bl sub_080A2960 + adds r1, r0, #0 + cmp r1, #0 + beq _08042B9C + ldr r0, [r5, #0x64] + ldr r0, [r0, #0x10] + str r0, [r1, #0x50] +_08042B9C: + ldr r0, [r5, #0x64] + ldr r0, [r0, #0x10] + str r1, [r0, #0x68] + movs r0, #0xaf + movs r1, #2 + movs r2, #0 + bl sub_080A2960 + adds r1, r0, #0 + cmp r1, #0 + beq _08042BBA + ldr r0, [r5, #0x64] + ldr r0, [r0, #0x10] + bl sub_0806FA24 +_08042BBA: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r0, [r4, #0x18] + movs r2, #4 + rsbs r2, r2, #0 + adds r1, r2, #0 + ands r0, r1 + strb r0, [r4, #0x18] + ldr r0, _08042BDC @ =0x00000161 + bl sub_080A3268 +_08042BD4: + adds r6, #1 + cmp r6, #3 + bls _08042B68 + b _08042C12 + .align 2, 0 +_08042BDC: .4byte 0x00000161 +_08042BE0: + adds r0, r5, #0 + adds r0, #0x78 + ldrb r1, [r0] + adds r1, #2 + strb r1, [r0] + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _08042C12 + movs r0, #5 + strb r0, [r5, #0xc] + strb r1, [r5, #0xd] + movs r0, #0x1e + strb r0, [r5, #0xe] + adds r0, r5, #0 + adds r0, #0x3f + movs r1, #0x39 + strb r1, [r0] + ldr r0, [r5, #0x64] + ldr r0, [r0, #4] + adds r0, #0x3f + strb r1, [r0] +_08042C12: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08042C14 +sub_08042C14: @ 0x08042C14 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08042C30 @ =gUnk_080D12D0 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_08043A78 + pop {r4, pc} + .align 2, 0 +_08042C30: .4byte gUnk_080D12D0 + + thumb_func_start sub_08042C34 +sub_08042C34: @ 0x08042C34 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + adds r7, r0, #0 + ldrb r0, [r7, #0xe] + subs r0, #1 + strb r0, [r7, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08042D0C + movs r0, #0x3c + strb r0, [r7, #0xe] + movs r0, #3 + strb r0, [r7, #0xf] + movs r0, #1 + strb r0, [r7, #0xd] + bl sub_08000E50 + movs r1, #6 + ands r1, r0 + ldr r0, _08042D14 @ =gUnk_080D12F8 + adds r1, r1, r0 + ldr r3, _08042D18 @ =gUnk_03001160 + movs r0, #0x2e + ldrsh r2, [r3, r0] + movs r0, #0 + ldrsb r0, [r1, r0] + adds r6, r2, r0 + movs r0, #0x32 + ldrsh r2, [r3, r0] + movs r0, #1 + ldrsb r0, [r1, r0] + adds r5, r2, r0 + ldr r3, _08042D1C @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + adds r0, r2, #0 + adds r0, #0x20 + cmp r0, r6 + ble _08042C86 + adds r6, r0, #0 +_08042C86: + ldrh r0, [r3, #0x1e] + adds r0, r2, r0 + subs r0, #0x20 + cmp r0, r6 + bge _08042C92 + adds r6, r0, #0 +_08042C92: + ldrh r1, [r3, #8] + adds r0, r1, #0 + adds r0, #0x20 + cmp r0, r5 + ble _08042C9E + adds r5, r0, #0 +_08042C9E: + ldrh r0, [r3, #0x20] + adds r0, r1, r0 + subs r0, #0x40 + cmp r0, r5 + bge _08042CAA + adds r5, r0, #0 +_08042CAA: + subs r0, r6, r2 + subs r0, #0x90 + cmp r0, #0x40 + bhi _08042CC2 + subs r0, r5, r1 + subs r0, #8 + cmp r0, #0x40 + bhi _08042CC2 + adds r6, r2, #0 + adds r6, #0xb0 + adds r5, r1, #0 + adds r5, #0x40 +_08042CC2: + movs r4, #0 + mov r8, r4 + movs r3, #0x18 +_08042CC8: + ldr r0, [r7, #0x64] + lsls r1, r4, #2 + adds r0, r0, r1 + ldr r2, [r0] + strh r6, [r2, #0x2e] + strh r5, [r2, #0x32] + movs r0, #0x32 + strh r0, [r2, #0x36] + adds r1, r2, #0 + adds r1, #0x3f + movs r0, #0x39 + strb r0, [r1] + ldr r1, [r7, #0x64] + adds r1, r1, r3 + movs r0, #0x80 + strh r0, [r1] + mov r0, r8 + strh r0, [r1, #4] + ldr r0, _08042D20 @ =gUnk_080D1419 + adds r0, r4, r0 + ldrb r0, [r0] + strb r0, [r1, #0xc] + cmp r4, #0 + beq _08042D04 + adds r0, r2, #0 + movs r1, #0x12 + str r3, [sp] + bl sub_08004260 + ldr r3, [sp] +_08042D04: + adds r3, #0x10 + adds r4, #1 + cmp r4, #3 + bls _08042CC8 +_08042D0C: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08042D14: .4byte gUnk_080D12F8 +_08042D18: .4byte gUnk_03001160 +_08042D1C: .4byte gUnk_03000BF0 +_08042D20: .4byte gUnk_080D1419 + + thumb_func_start sub_08042D24 +sub_08042D24: @ 0x08042D24 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08042D68 + movs r0, #2 + strb r0, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x3f + movs r1, #0x3d + strb r1, [r0] + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + adds r0, #0x3f + strb r1, [r0] + movs r0, #0xaf + movs r1, #1 + movs r2, #0 + bl sub_080A2960 + adds r1, r0, #0 + cmp r1, #0 + beq _08042D5E + ldr r0, [r4, #0x64] + ldr r0, [r0, #0xc] + str r0, [r1, #0x50] +_08042D5E: + str r1, [r4, #0x68] + adds r0, r4, #0 + movs r1, #0xd + bl sub_080042AC +_08042D68: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08042D6C +sub_08042D6C: @ 0x08042D6C + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r6, #0 +_08042D72: + ldr r0, [r5, #0x64] + lsls r1, r6, #2 + adds r0, r0, r1 + ldr r4, [r0] + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #3 + bgt _08042DC4 + cmp r6, #2 + beq _08042D8E + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] +_08042D8E: + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + cmp r0, #0 + bne _08042DB4 + movs r0, #0xaf + movs r1, #2 + movs r2, #0 + bl sub_080A2960 + adds r1, r0, #0 + cmp r1, #0 + beq _08042DB4 + adds r0, r4, #0 + bl sub_0806FA24 + movs r0, #0xb3 + lsls r0, r0, #1 + bl sub_080A3268 +_08042DB4: + ldrb r0, [r4, #0x18] + movs r2, #4 + rsbs r2, r2, #0 + adds r1, r2, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] +_08042DC4: + adds r6, #1 + cmp r6, #3 + bls _08042D72 + ldr r0, [r5, #0x64] + ldr r4, [r0, #0xc] + ldrh r2, [r4, #0x36] + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #3 + rsbs r0, r0, #0 + cmp r1, r0 + bgt _08042E28 + ldr r0, _08042E20 @ =0x0000FFFB + strh r0, [r4, #0x36] + ldr r2, [r5, #0x64] + ldr r1, _08042E24 @ =gUnk_080D1300 + ldrb r0, [r5, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r2, #0x20] + ldr r1, [r5, #0x64] + movs r0, #0xc0 + strh r0, [r1, #0x22] + movs r0, #3 + strb r0, [r5, #0xd] + movs r0, #0x1e + strb r0, [r5, #0xe] + adds r0, r5, #0 + adds r0, #0x3f + movs r4, #0x39 + strb r4, [r0] + adds r1, r5, #0 + adds r1, #0x7f + movs r0, #0x2d + strb r0, [r1] + adds r0, r5, #0 + movs r1, #0 + bl sub_080042AC + ldr r0, [r5, #0x64] + ldr r0, [r0, #4] + adds r0, #0x3f + strb r4, [r0] + b _08042E2C + .align 2, 0 +_08042E20: .4byte 0x0000FFFB +_08042E24: .4byte gUnk_080D1300 +_08042E28: + subs r0, r2, #2 + strh r0, [r4, #0x36] +_08042E2C: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08042E30 +sub_08042E30: @ 0x08042E30 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r1, r6, #0 + adds r1, #0x7f + ldrb r0, [r1] + cmp r0, #0 + bne _08042E4A + adds r0, r6, #0 + bl sub_08043C98 + cmp r0, #0 + bne _08042EF0 + b _08042E4E +_08042E4A: + subs r0, #1 + strb r0, [r1] +_08042E4E: + ldr r7, [r6, #0x64] + adds r5, r7, #0 + adds r5, #0x18 + ldrb r0, [r6, #0xe] + subs r0, #1 + strb r0, [r6, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08042EB2 + movs r0, #4 + strb r0, [r6, #0xd] + bl sub_08000E50 + movs r1, #0x38 + ands r0, r1 + adds r0, #0x28 + strb r0, [r6, #0xe] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r6, #0x24] + ldrb r0, [r5, #1] + lsrs r0, r0, #3 + strb r0, [r6, #0x15] + movs r1, #0x2e + ldrsh r0, [r6, r1] + movs r2, #0x32 + ldrsh r1, [r6, r2] + ldr r3, _08042ED4 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + movs r4, #0x88 + lsls r4, r4, #1 + adds r2, r2, r4 + ldrh r3, [r3, #8] + adds r3, #0x60 + bl sub_080045D4 + adds r4, r0, #0 + bl sub_08000E50 + ldr r2, _08042ED8 @ =gUnk_080D1304 + movs r1, #7 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + adds r0, r0, r4 + movs r1, #0x1f + ands r0, r1 + adds r1, r6, #0 + adds r1, #0x79 + strb r0, [r1] +_08042EB2: + ldrh r0, [r5, #8] + ldrh r1, [r7, #0x18] + adds r0, r0, r1 + strh r0, [r7, #0x18] + ldrh r0, [r5, #0xa] + ldrh r2, [r5, #4] + adds r1, r0, r2 + strh r1, [r5, #4] + lsls r0, r0, #0x10 + cmp r0, #0 + ble _08042EDC + ldrb r0, [r5, #5] + cmp r0, #0x18 + bls _08042EEA + movs r4, #0xa + ldrsh r0, [r5, r4] + b _08042EE6 + .align 2, 0 +_08042ED4: .4byte gUnk_03000BF0 +_08042ED8: .4byte gUnk_080D1304 +_08042EDC: + ldrb r0, [r5, #5] + cmp r0, #3 + bhi _08042EEA + movs r1, #0xa + ldrsh r0, [r5, r1] +_08042EE6: + rsbs r0, r0, #0 + strh r0, [r5, #0xa] +_08042EEA: + adds r0, r6, #0 + bl sub_080042B8 +_08042EF0: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08042EF4 +sub_08042EF4: @ 0x08042EF4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_08043C98 + cmp r0, #0 + bne _08042FCE + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08042F4E + ldr r0, _08042F38 @ =gUnk_03001160 + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r3, #0x32 + ldrsh r2, [r0, r3] + adds r0, r4, #0 + movs r3, #0x50 + bl sub_0806FCB8 + cmp r0, #0 + beq _08042F3C + movs r0, #6 + strb r0, [r4, #0xd] + movs r0, #0x28 + strb r0, [r4, #0xe] + b _08042F4E + .align 2, 0 +_08042F38: .4byte gUnk_03001160 +_08042F3C: + movs r0, #5 + strb r0, [r4, #0xd] + adds r0, r4, #0 + movs r1, #0xf + bl sub_080042AC + ldr r0, _08042FD4 @ =0x0000019B + bl sub_080A3268 +_08042F4E: + ldr r0, [r4, #0x64] + adds r7, r0, #0 + adds r7, #0x18 + ldrb r0, [r7, #5] + cmp r0, #0x1f + bhi _08042F66 + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r1, #0 + ldrh r2, [r7, #4] + adds r0, r0, r2 + strh r0, [r7, #4] +_08042F66: + ldr r0, [r4, #0x50] + movs r1, #0x2e + ldrsh r3, [r0, r1] + mov r8, r3 + movs r2, #0x32 + ldrsh r0, [r0, r2] + adds r6, r0, #0 + subs r6, #0x10 + adds r0, r4, #0 + mov r1, r8 + adds r2, r6, #0 + movs r3, #0x30 + bl sub_0806FCB8 + adds r5, r4, #0 + adds r5, #0x79 + cmp r0, #0 + beq _08042FAC + movs r3, #0x2e + ldrsh r0, [r4, r3] + movs r2, #0x32 + ldrsh r1, [r4, r2] + mov r2, r8 + adds r3, r6, #0 + bl sub_080045D4 + adds r1, r0, #0 + ldrb r0, [r5] + subs r0, r0, r1 + adds r0, #4 + cmp r0, #8 + bhi _08042FAC + movs r0, #0x10 + eors r1, r0 + strb r1, [r5] +_08042FAC: + ldrb r0, [r5] + ldrb r3, [r4, #0x15] + cmp r0, r3 + beq _08042FC2 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 + ldrb r0, [r4, #0x15] + lsls r0, r0, #3 + strb r0, [r7, #1] +_08042FC2: + ldr r0, [r4, #0x64] + ldr r0, [r0, #0xc] + ldrb r1, [r4, #0x15] + strb r1, [r0, #0x15] + bl sub_080AEF88 +_08042FCE: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08042FD4: .4byte 0x0000019B + + thumb_func_start sub_08042FD8 +sub_08042FD8: @ 0x08042FD8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_080042B8 + adds r0, r5, #0 + bl sub_08043C98 + cmp r0, #0 + bne _08043046 + adds r6, r5, #0 + adds r6, #0x5a + ldrb r1, [r6] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08043018 + movs r0, #0x20 + bl sub_080A7EE0 + adds r4, r0, #0 + cmp r4, #0 + beq _08043046 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldrh r0, [r4, #0x36] + subs r0, #0x18 + movs r1, #0 + strh r0, [r4, #0x36] + strb r1, [r6] + b _08043046 +_08043018: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08043046 + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08043036 + movs r0, #8 + strb r0, [r5, #0xd] + movs r0, #0x3c + strb r0, [r5, #0xe] + b _08043046 +_08043036: + movs r0, #3 + strb r0, [r5, #0xd] + movs r0, #0x3c + strb r0, [r5, #0xe] + adds r0, r5, #0 + movs r1, #0 + bl sub_080042AC +_08043046: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08043048 +sub_08043048: @ 0x08043048 + push {r4, lr} + adds r4, r0, #0 + bl sub_08043C98 + cmp r0, #0 + bne _080430CC + ldr r2, [r4, #0x64] + adds r1, r2, #0 + adds r1, #0x18 + ldrb r0, [r1, #5] + cmp r0, #0x4f + bhi _08043094 + movs r2, #0x80 + lsls r2, r2, #2 + adds r0, r2, #0 + ldrh r3, [r1, #4] + adds r0, r0, r3 + strh r0, [r1, #4] + ldrb r0, [r1, #5] + cmp r0, #0x4f + bls _080430C6 + movs r2, #0 + movs r3, #0x3b +_08043076: + ldr r0, [r4, #0x64] + lsls r1, r2, #2 + adds r0, r0, r1 + ldr r0, [r0] + adds r0, #0x3f + strb r3, [r0] + adds r2, #1 + cmp r2, #4 + bls _08043076 + ldr r0, _08043090 @ =0x00000153 + bl sub_080A3268 + b _080430C6 + .align 2, 0 +_08043090: .4byte 0x00000153 +_08043094: + movs r3, #8 + ldrsh r0, [r1, r3] + lsls r0, r0, #3 + ldrh r1, [r2, #0x18] + adds r0, r0, r1 + strh r0, [r2, #0x18] + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080430C6 + movs r0, #7 + strb r0, [r4, #0xd] + movs r2, #0 + movs r3, #0x39 +_080430B4: + ldr r0, [r4, #0x64] + lsls r1, r2, #2 + adds r0, r0, r1 + ldr r0, [r0] + adds r0, #0x3f + strb r3, [r0] + adds r2, #1 + cmp r2, #4 + bls _080430B4 +_080430C6: + adds r0, r4, #0 + bl sub_08043B9C +_080430CC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080430D0 +sub_080430D0: @ 0x080430D0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08043C98 + cmp r0, #0 + bne _08043128 + ldr r1, [r4, #0x64] + adds r2, r1, #0 + adds r2, #0x18 + ldrh r0, [r2, #8] + ldrh r3, [r1, #0x18] + adds r0, r0, r3 + strh r0, [r1, #0x18] + ldr r1, _08043110 @ =0xFFFFFF00 + adds r0, r1, #0 + ldrh r3, [r2, #4] + adds r0, r0, r3 + strh r0, [r2, #4] + ldrb r0, [r2, #5] + cmp r0, #0x17 + bhi _08043128 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08043114 + movs r0, #8 + strb r0, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + b _08043128 + .align 2, 0 +_08043110: .4byte 0xFFFFFF00 +_08043114: + movs r0, #3 + strb r0, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldr r0, _0804312C @ =0x0000FF40 + strh r0, [r2, #0xa] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC +_08043128: + pop {r4, pc} + .align 2, 0 +_0804312C: .4byte 0x0000FF40 + + thumb_func_start sub_08043130 +sub_08043130: @ 0x08043130 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + ldr r1, [r6, #0x64] + adds r4, r1, #0 + adds r4, #0x18 + ldrb r0, [r4, #5] + cmp r0, #0 + beq _08043160 + adds r0, r6, #0 + bl sub_08043C98 + cmp r0, #0 + bne _080431E0 + ldrb r0, [r4, #5] + subs r0, #1 + strb r0, [r4, #5] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080431E0 + adds r0, r6, #0 + movs r1, #0xd + bl sub_080042AC + b _080431E0 +_08043160: + ldrb r0, [r6, #0xe] + cmp r0, #0 + beq _08043186 + subs r0, #1 + strb r0, [r6, #0xe] + movs r5, #1 + movs r1, #0x28 +_0804316E: + ldr r0, [r6, #0x64] + adds r4, r0, r1 + ldrb r0, [r4, #5] + cmp r0, #0 + beq _0804317C + subs r0, #1 + strb r0, [r4, #5] +_0804317C: + adds r1, #0x10 + adds r5, #1 + cmp r5, #3 + bls _0804316E + b _080431E0 +_08043186: + ldr r1, [r1, #0xc] + ldrh r0, [r1, #0x36] + adds r0, #3 + strh r0, [r1, #0x36] + movs r5, #0 + movs r7, #4 + rsbs r7, r7, #0 +_08043194: + ldr r0, [r6, #0x64] + lsls r1, r5, #2 + adds r0, r0, r1 + ldr r4, [r0] + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, r7 + ble _080431C4 + ldrb r0, [r4, #0x10] + movs r1, #0x7f + ands r1, r0 + strb r1, [r4, #0x10] + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _080431BC + ldr r0, _080431E4 @ =0x00000161 + bl sub_080A3268 +_080431BC: + ldrb r1, [r4, #0x18] + adds r0, r7, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_080431C4: + adds r5, #1 + cmp r5, #3 + bls _08043194 + ldrb r0, [r6, #0x18] + lsls r0, r0, #0x1e + cmp r0, #0 + bne _080431E0 + movs r0, #9 + strb r0, [r6, #0xd] + movs r0, #0x3c + strb r0, [r6, #0xe] + adds r0, r6, #0 + bl sub_0804AA1C +_080431E0: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080431E4: .4byte 0x00000161 + + thumb_func_start sub_080431E8 +sub_080431E8: @ 0x080431E8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0804324E + movs r0, #6 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + movs r5, #0 + ldr r7, _08043250 @ =gUnk_080D130C + movs r6, #0x18 +_08043206: + ldr r1, [r4, #0x64] + adds r1, r1, r6 + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r7 + ldrh r0, [r0] + strh r0, [r1] + movs r0, #0x80 + lsls r0, r0, #8 + strh r0, [r1, #4] + ldr r0, _08043254 @ =gUnk_080D1414 + adds r0, r5, r0 + ldrb r0, [r0] + strb r0, [r1, #0xc] + cmp r5, #3 + bne _08043230 + ldr r0, [r4, #0x64] + ldr r0, [r0, #0xc] + movs r1, #0x11 + bl sub_08004260 +_08043230: + adds r6, #0x10 + adds r5, #1 + cmp r5, #3 + bls _08043206 + ldr r2, [r4, #0x64] + ldr r1, _08043258 @ =gUnk_080D1310 + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r2, #0x20] + adds r0, r4, #0 + movs r1, #0xe + bl sub_080042AC +_0804324E: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08043250: .4byte gUnk_080D130C +_08043254: .4byte gUnk_080D1414 +_08043258: .4byte gUnk_080D1310 + + thumb_func_start sub_0804325C +sub_0804325C: @ 0x0804325C + push {r4, lr} + adds r4, r0, #0 + bl sub_08043CD4 + ldr r0, _0804329C @ =gUnk_080D1314 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_08043A10 + adds r2, r4, #0 + adds r2, #0x78 + ldrb r0, [r2] + adds r1, r0, #0 + cmp r1, #0 + beq _080432A4 + cmp r1, #2 + bls _080432A0 + subs r0, #2 + strb r0, [r2] + ldr r0, [r4, #0x64] + ldr r1, [r0, #0x10] + ldrh r0, [r1, #0x36] + ldrb r2, [r2] + adds r0, r0, r2 + strh r0, [r1, #0x36] + b _080432A4 + .align 2, 0 +_0804329C: .4byte gUnk_080D1314 +_080432A0: + movs r0, #0 + strb r0, [r2] +_080432A4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080432A8 +sub_080432A8: @ 0x080432A8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + movs r3, #3 + movs r2, #0 + ldr r0, [r4, #0x64] + adds r1, r0, #0 + adds r1, #0x48 + ldrb r0, [r1, #0xc] + cmp r0, #2 + bls _080432C2 + subs r0, #1 + strb r0, [r1, #0xc] + movs r2, #1 +_080432C2: + subs r3, #1 + cmp r3, #0 + blt _080432E0 + lsls r0, r3, #4 + adds r0, #0x18 + ldr r1, [r4, #0x64] + adds r1, r1, r0 + ldrb r0, [r1, #0xc] + cmp r0, #2 + bls _080432C2 + subs r0, #1 + strb r0, [r1, #0xc] + adds r2, #1 + cmp r2, #1 + ble _080432C2 +_080432E0: + ldr r0, [r4, #0x64] + adds r1, r0, #0 + adds r1, #0x18 + ldrb r0, [r1, #5] + subs r0, #2 + strb r0, [r1, #5] + movs r3, #0 + movs r6, #0x80 + movs r7, #4 + rsbs r7, r7, #0 + movs r5, #1 +_080432F6: + ldr r0, [r4, #0x64] + lsls r1, r3, #2 + adds r0, r0, r1 + ldr r2, [r0] + movs r1, #0x36 + ldrsh r0, [r2, r1] + cmp r0, #3 + bgt _08043316 + ldrb r0, [r2, #0x10] + orrs r0, r6 + strb r0, [r2, #0x10] + ldrb r1, [r2, #0x18] + adds r0, r7, #0 + ands r0, r1 + orrs r0, r5 + strb r0, [r2, #0x18] +_08043316: + adds r3, #1 + cmp r3, #3 + ble _080432F6 + ldr r1, [r4, #0x64] + ldr r0, [r1] + ldrb r0, [r0, #0x18] + lsls r0, r0, #0x1e + lsrs r2, r0, #0x1e + cmp r2, #1 + bne _08043348 + adds r0, r1, #0 + adds r0, #0x34 + ldrb r0, [r0] + cmp r0, #2 + bhi _08043348 + strb r2, [r4, #0xd] + movs r0, #0x1e + strb r0, [r4, #0xe] + movs r0, #0x80 + lsls r0, r0, #7 + strh r0, [r1, #0x1c] + ldr r0, [r4, #0x64] + ldr r0, [r0, #0x10] + bl sub_0804AA1C +_08043348: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0804334C +sub_0804334C: @ 0x0804334C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08043388 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0804341C + movs r5, #0 + movs r7, #0x80 + movs r6, #4 + rsbs r6, r6, #0 + movs r3, #1 +_0804336A: + ldr r0, [r4, #0x64] + lsls r1, r5, #2 + adds r0, r0, r1 + ldr r2, [r0] + ldrb r0, [r2, #0x10] + orrs r0, r7 + strb r0, [r2, #0x10] + ldrb r1, [r2, #0x18] + adds r0, r6, #0 + ands r0, r1 + orrs r0, r3 + strb r0, [r2, #0x18] + adds r5, #1 + cmp r5, #4 + bls _0804336A +_08043388: + ldr r3, [r4, #0x64] + adds r2, r3, #0 + adds r2, #0x18 + ldr r1, _080433AC @ =gUnk_080D131C + ldrb r0, [r4, #0xb] + adds r0, r0, r1 + ldrb r0, [r0] + ldrb r1, [r2, #1] + subs r0, r0, r1 + adds r0, #1 + cmp r0, #2 + bls _080433B0 + ldrh r0, [r2, #8] + ldrh r1, [r3, #0x18] + adds r0, r0, r1 + strh r0, [r3, #0x18] + movs r7, #0 + b _080433B2 + .align 2, 0 +_080433AC: .4byte gUnk_080D131C +_080433B0: + movs r7, #1 +_080433B2: + adds r0, r4, #0 + bl sub_08043B9C + movs r5, #0 + movs r6, #0x18 +_080433BC: + ldr r0, [r4, #0x64] + adds r2, r0, r6 + ldr r0, _080433E4 @ =gUnk_080D1414 + adds r0, r5, r0 + ldrb r1, [r2, #0xc] + ldrb r3, [r0] + cmp r3, r1 + bls _080433E8 + adds r0, r1, #1 + strb r0, [r2, #0xc] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r3, r0 + bne _0804341C + movs r0, #0xaf + lsls r0, r0, #1 + bl sub_080A3268 + b _0804341C + .align 2, 0 +_080433E4: .4byte gUnk_080D1414 +_080433E8: + cmp r7, #0 + beq _08043414 + cmp r5, #4 + bne _08043414 + adds r0, r4, #0 + bl sub_08043BC8 + adds r0, r4, #0 + movs r1, #7 + bl sub_080042AC + adds r1, r4, #0 + adds r1, #0x7e + ldrb r0, [r1] + cmp r0, #0 + beq _08043414 + movs r0, #0 + strb r0, [r1] + ldr r0, [r4, #0x64] + ldr r1, [r0, #0x14] + movs r0, #2 + strb r0, [r1, #0xd] +_08043414: + adds r6, #0x10 + adds r5, #1 + cmp r5, #4 + bls _080433BC +_0804341C: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08043420 +sub_08043420: @ 0x08043420 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0804343C @ =gUnk_080D1320 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_08043ABC + pop {r4, pc} + .align 2, 0 +_0804343C: .4byte gUnk_080D1320 + + thumb_func_start sub_08043440 +sub_08043440: @ 0x08043440 + push {r4, r5, r6, lr} + adds r3, r0, #0 + movs r2, #0 + movs r5, #0 + movs r6, #0 + movs r4, #0x18 +_0804344C: + ldr r0, [r3, #0x64] + adds r1, r0, r4 + ldrb r0, [r1, #5] + cmp r0, #0x10 + bls _0804345E + subs r0, #0x10 + strb r0, [r1, #5] + adds r5, #1 + b _08043460 +_0804345E: + strh r6, [r1, #4] +_08043460: + adds r4, #0x10 + adds r2, #1 + cmp r2, #4 + bls _0804344C + cmp r5, #0 + bne _0804348C + movs r2, #0 + movs r4, #0x80 + lsls r4, r4, #8 +_08043472: + ldr r0, [r3, #0x64] + lsls r1, r2, #4 + adds r0, r0, r1 + strh r4, [r0, #0x18] + adds r2, #1 + cmp r2, #4 + bls _08043472 + movs r0, #1 + strb r0, [r3, #0xd] + adds r0, r3, #0 + movs r1, #0x10 + bl sub_080042AC +_0804348C: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08043490 +sub_08043490: @ 0x08043490 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x64] + ldr r0, [r0, #0x10] + mov ip, r0 + ldrh r1, [r0, #0x36] + movs r2, #0x36 + ldrsh r0, [r0, r2] + movs r2, #4 + rsbs r2, r2, #0 + cmp r0, r2 + bge _080434C4 + movs r0, #0xc0 + lsls r0, r0, #9 + mov r3, ip + str r0, [r3, #0x20] + movs r0, #0 + movs r1, #2 + strb r1, [r4, #0xd] + adds r2, r4, #0 + adds r2, #0x7e + strb r0, [r2] + ldr r0, [r4, #0x64] + ldr r0, [r0, #0x14] + strb r1, [r0, #0xd] + b _08043514 +_080434C4: + subs r0, r1, #2 + mov r1, ip + strh r0, [r1, #0x36] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _08043514 + ldrb r0, [r1, #0x10] + movs r3, #0x80 + orrs r0, r3 + strb r0, [r1, #0x10] + ldrb r1, [r1, #0x18] + adds r0, r2, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + mov r2, ip + strb r0, [r2, #0x18] + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0xef + ands r0, r1 + strb r0, [r2] + mov r1, ip + adds r1, #0x3f + movs r0, #0x3a + strb r0, [r1] + ldr r0, _0804351C @ =gUnk_080FD450 + mov r1, ip + str r0, [r1, #0x48] + ldr r0, [r4, #0x64] + ldr r1, [r0, #8] + ldrb r0, [r1, #0x10] + orrs r3, r0 + strb r3, [r1, #0x10] + ldr r0, [r4, #0x64] + ldr r2, [r0, #0xc] + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] +_08043514: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 +_0804351C: .4byte gUnk_080FD450 + + thumb_func_start sub_08043520 +sub_08043520: @ 0x08043520 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, [r5, #0x64] + ldr r4, [r0, #0x10] + movs r1, #0xd0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + ldr r0, [r4, #0x20] + cmp r0, #0 + bge _08043556 + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #6 + rsbs r0, r0, #0 + cmp r1, r0 + ble _08043556 + ldr r0, _08043558 @ =0x0000FFFA + strh r0, [r4, #0x36] + movs r0, #3 + strb r0, [r5, #0xd] + adds r1, r5, #0 + adds r1, #0x7a + movs r0, #0xe1 + lsls r0, r0, #2 + strh r0, [r1] +_08043556: + pop {r4, r5, pc} + .align 2, 0 +_08043558: .4byte 0x0000FFFA + + thumb_func_start sub_0804355C +sub_0804355C: @ 0x0804355C + push {r4, lr} + adds r4, r0, #0 + bl sub_08043DB0 + adds r1, r4, #0 + adds r1, #0x7a + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08043578 + movs r0, #4 + strb r0, [r4, #0xd] +_08043578: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + + thumb_func_start sub_08043580 +sub_08043580: @ 0x08043580 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x64] + ldr r1, [r0, #0x10] + ldrh r0, [r1, #0x36] + adds r0, #3 + strh r0, [r1, #0x36] + movs r2, #0 + movs r5, #4 + rsbs r5, r5, #0 + movs r6, #0x7f +_08043596: + ldr r0, [r4, #0x64] + lsls r1, r2, #2 + adds r0, r0, r1 + ldr r3, [r0] + movs r1, #0x36 + ldrsh r0, [r3, r1] + cmp r0, r5 + ble _080435B6 + ldrb r1, [r3, #0x10] + adds r0, r6, #0 + ands r0, r1 + strb r0, [r3, #0x10] + ldrb r1, [r3, #0x18] + adds r0, r5, #0 + ands r0, r1 + strb r0, [r3, #0x18] +_080435B6: + adds r2, #1 + cmp r2, #4 + bls _08043596 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + cmp r0, #0 + bne _080435EE + movs r0, #5 + strb r0, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldr r0, [r4, #0x64] + ldr r3, [r0, #0x10] + adds r2, r3, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0x10 + orrs r0, r1 + strb r0, [r2] + adds r1, r3, #0 + adds r1, #0x3f + movs r0, #0x39 + strb r0, [r1] + ldr r0, _080435F0 @ =gUnk_080FD538 + str r0, [r3, #0x48] + adds r0, r4, #0 + bl sub_0804AA1C +_080435EE: + pop {r4, r5, r6, pc} + .align 2, 0 +_080435F0: .4byte gUnk_080FD538 + + thumb_func_start sub_080435F4 +sub_080435F4: @ 0x080435F4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08043674 + movs r0, #6 + strb r0, [r4, #0xc] + movs r0, #1 + strb r0, [r4, #0xd] + strb r0, [r4, #0xe] + movs r5, #0 + ldr r0, _08043658 @ =gUnk_080D1338 + mov sb, r0 + movs r0, #0 + mov r8, r0 + movs r6, #0x18 + ldr r7, _0804365C @ =gUnk_080D133C +_08043622: + ldr r1, [r4, #0x64] + adds r1, r1, r6 + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + add r0, sb + ldrh r0, [r0] + strh r0, [r1] + movs r0, #0x80 + lsls r0, r0, #7 + strh r0, [r1, #4] + mov r0, r8 + strb r0, [r1, #0xc] + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r7 + ldrh r0, [r0] + strh r0, [r1, #8] + ldr r0, [r4, #0x64] + lsls r1, r5, #2 + adds r0, r0, r1 + ldr r2, [r0] + cmp r5, #0 + bne _08043660 + adds r0, r2, #0 + bl sub_08043B9C + b _0804366C + .align 2, 0 +_08043658: .4byte gUnk_080D1338 +_0804365C: .4byte gUnk_080D133C +_08043660: + ldr r0, _0804367C @ =gUnk_080D1340 + adds r0, r5, r0 + ldrb r1, [r0] + adds r0, r2, #0 + bl sub_08004260 +_0804366C: + adds r6, #0x10 + adds r5, #1 + cmp r5, #4 + bls _08043622 +_08043674: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0804367C: .4byte gUnk_080D1340 + + thumb_func_start sub_08043680 +sub_08043680: @ 0x08043680 + push {lr} + ldr r2, _08043694 @ =gUnk_080D1348 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08043694: .4byte gUnk_080D1348 + + thumb_func_start sub_08043698 +sub_08043698: @ 0x08043698 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + movs r3, #0 + movs r5, #0x7f +_080436A8: + ldr r0, [r4, #0x64] + lsls r1, r3, #2 + adds r0, r0, r1 + ldr r2, [r0] + ldrb r1, [r2, #0x10] + adds r0, r5, #0 + ands r0, r1 + strb r0, [r2, #0x10] + adds r3, #1 + cmp r3, #4 + bls _080436A8 + pop {r4, r5, pc} + + thumb_func_start sub_080436C0 +sub_080436C0: @ 0x080436C0 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _080436FC + movs r0, #0x14 + strb r0, [r4, #0xe] + movs r0, #2 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x18] + subs r0, #6 + ands r0, r1 + strb r0, [r4, #0x18] + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + movs r1, #0x51 + movs r2, #0 + bl sub_080A29AC + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + str r5, [r0, #0x64] + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + bl sub_0805E7BC +_080436FC: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08043700 +sub_08043700: @ 0x08043700 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _08043734 + movs r0, #0x14 + strb r0, [r4, #0xe] + movs r0, #3 + strb r0, [r4, #0xd] + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + movs r1, #0x51 + movs r2, #0 + bl sub_080A29AC + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + str r5, [r0, #0x64] + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + bl sub_0805E7BC +_08043734: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08043738 +sub_08043738: @ 0x08043738 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _0804376C + movs r0, #0x14 + strb r0, [r4, #0xe] + movs r0, #4 + strb r0, [r4, #0xd] + ldr r0, [r4, #0x64] + ldr r0, [r0, #0xc] + movs r1, #0x51 + movs r2, #0 + bl sub_080A29AC + ldr r0, [r4, #0x64] + ldr r0, [r0, #0xc] + str r5, [r0, #0x64] + ldr r0, [r4, #0x64] + ldr r0, [r0, #0xc] + bl sub_0805E7BC +_0804376C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08043770 +sub_08043770: @ 0x08043770 + push {r4, r5, lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _080437D8 + ldr r0, [r2, #0x64] + ldr r3, [r0, #0x14] + ldr r0, _080437AC @ =gUnk_030010A0 + adds r5, r0, #0 + adds r5, #0x39 + ldrb r1, [r5] + movs r0, #0xc + ands r0, r1 + cmp r0, #0 + bne _0804379A + movs r0, #2 + strb r0, [r3, #0xd] +_0804379A: + ldrb r0, [r2, #0xb] + cmp r0, #0 + bne _080437B0 + ldr r0, [r3, #0x64] + str r4, [r0, #0x14] + ldrb r1, [r5] + movs r0, #0xfe + b _080437B8 + .align 2, 0 +_080437AC: .4byte gUnk_030010A0 +_080437B0: + ldr r0, [r3, #0x64] + str r4, [r0, #0x18] + ldrb r1, [r5] + movs r0, #0xfd +_080437B8: + ands r0, r1 + strb r0, [r5] + ldr r0, [r2, #0x64] + ldr r0, [r0, #0x10] + movs r1, #0 + str r1, [r0, #0x64] + ldr r0, [r2, #0x64] + ldr r0, [r0, #0x10] + adds r0, #0x45 + strb r1, [r0] + ldr r1, [r2, #0x68] + ldr r0, [r2, #0x64] + ldr r0, [r0, #0x10] + str r0, [r1, #0x50] + bl sub_0805E780 +_080437D8: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080437DC +sub_080437DC: @ 0x080437DC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + ldr r0, _0804392C @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x43 + bls _080437EE + b _08043934 +_080437EE: + movs r0, #0x68 + bl sub_0801D8E0 + adds r7, r0, #0 + cmp r7, #0 + bne _080437FC + b _08043934 +_080437FC: + adds r2, r6, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r4, #8 + rsbs r4, r4, #0 + adds r0, r4, #0 + ands r0, r1 + movs r1, #5 + mov r8, r1 + mov r1, r8 + orrs r0, r1 + strb r0, [r2] + adds r1, r6, #0 + adds r1, #0x3c + ldrb r0, [r1] + movs r5, #0x10 + orrs r0, r5 + strb r0, [r1] + str r7, [r6, #0x64] + str r6, [r7] + movs r0, #0x52 + movs r1, #1 + bl sub_0804AA60 + adds r2, r0, #0 + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + adds r0, r4, #0 + ands r0, r1 + mov r1, r8 + orrs r0, r1 + strb r0, [r3] + adds r1, r2, #0 + adds r1, #0x3c + ldrb r0, [r1] + orrs r0, r5 + strb r0, [r1] + str r7, [r2, #0x64] + str r2, [r7, #4] + adds r0, r6, #0 + adds r1, r2, #0 + bl sub_0806FA24 + movs r0, #0x52 + movs r1, #2 + bl sub_0804AA60 + adds r2, r0, #0 + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + adds r0, r4, #0 + ands r0, r1 + mov r1, r8 + orrs r0, r1 + strb r0, [r3] + adds r1, r2, #0 + adds r1, #0x3c + ldrb r0, [r1] + orrs r0, r5 + strb r0, [r1] + str r7, [r2, #0x64] + str r2, [r7, #8] + adds r0, r6, #0 + adds r1, r2, #0 + bl sub_0806FA24 + movs r0, #0x52 + movs r1, #3 + bl sub_0804AA60 + adds r2, r0, #0 + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + adds r0, r4, #0 + ands r0, r1 + mov r1, r8 + orrs r0, r1 + strb r0, [r3] + adds r1, r2, #0 + adds r1, #0x3c + ldrb r0, [r1] + orrs r0, r5 + strb r0, [r1] + str r7, [r2, #0x64] + str r2, [r7, #0xc] + adds r0, r6, #0 + adds r1, r2, #0 + bl sub_0806FA24 + movs r0, #0x52 + movs r1, #4 + bl sub_0804AA60 + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x29 + ldrb r0, [r1] + ands r4, r0 + mov r0, r8 + orrs r4, r0 + strb r4, [r1] + adds r1, #0x13 + ldrb r0, [r1] + orrs r5, r0 + strb r5, [r1] + str r7, [r2, #0x64] + str r2, [r7, #0x10] + adds r0, r6, #0 + adds r1, r2, #0 + bl sub_0806FA24 + ldr r0, [r6, #0x50] + str r0, [r7, #0x14] + ldr r1, _08043930 @ =gUnk_080D135C + ldrb r0, [r6, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r2, [r0] + movs r3, #0 + strh r2, [r7, #0x18] + movs r1, #0x80 + lsls r1, r1, #7 + strh r1, [r7, #0x1c] + adds r0, r7, #0 + adds r0, #0x24 + strb r3, [r0] + strh r2, [r7, #0x28] + strh r1, [r7, #0x2c] + adds r0, #0x10 + strb r3, [r0] + strh r2, [r7, #0x38] + strh r1, [r7, #0x3c] + adds r0, #0x10 + strb r3, [r0] + adds r0, #4 + strh r2, [r0] + adds r0, #4 + strh r1, [r0] + adds r0, #8 + strb r3, [r0] + adds r0, #4 + strh r2, [r0] + adds r0, #4 + strh r1, [r0] + adds r0, #8 + strb r3, [r0] + movs r0, #1 + b _08043936 + .align 2, 0 +_0804392C: .4byte gUnk_03003DBC +_08043930: .4byte gUnk_080D135C +_08043934: + movs r0, #0 +_08043936: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0804393C +sub_0804393C: @ 0x0804393C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + ldr r0, [r5, #0x64] + ldr r1, [r0] + adds r0, r1, #0 + adds r0, #0x7c + ldrb r0, [r0] + lsls r2, r0, #0x18 + cmp r2, #0 + beq _0804397C + adds r0, r1, #0 + adds r0, #0x7d + ldrb r0, [r0] + ldrb r1, [r5, #0xa] + cmp r0, r1 + bhi _0804397C + ldr r4, _08043978 @ =gUnk_080D1362 + ldrb r3, [r5, #0xa] + lsls r1, r3, #4 + lsrs r0, r2, #0x1b + movs r2, #0xf + ands r0, r2 + adds r1, r1, r0 + adds r1, r1, r4 + ldrb r4, [r1] + adds r6, r3, #0 + b _08043980 + .align 2, 0 +_08043978: .4byte gUnk_080D1362 +_0804397C: + movs r4, #0 + ldrb r6, [r5, #0xa] +_08043980: + lsls r0, r6, #4 + adds r0, #0x18 + ldr r2, [r5, #0x64] + mov ip, r2 + adds r2, r2, r0 + ldrb r0, [r2, #0xc] + adds r0, r4, r0 + lsls r4, r0, #8 + ldr r3, _08043A0C @ =gUnk_080C9160 + ldrb r1, [r2, #5] + adds r0, r1, #0 + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r3 + movs r7, #0 + ldrsh r0, [r0, r7] + rsbs r0, r0, #0 + adds r7, r0, #0 + muls r7, r4, r7 + mov r8, r7 + movs r0, #0x7f + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r3 + movs r7, #0 + ldrsh r0, [r1, r7] + muls r0, r4, r0 + cmp r0, #0 + bge _080439BC + adds r0, #0xff +_080439BC: + asrs r4, r0, #8 + ldrb r1, [r2, #1] + lsls r0, r1, #1 + adds r0, r0, r3 + movs r2, #0 + ldrsh r0, [r0, r2] + adds r2, r0, #0 + muls r2, r4, r2 + adds r1, #0x40 + lsls r1, r1, #1 + adds r1, r1, r3 + movs r3, #0 + ldrsh r0, [r1, r3] + rsbs r0, r0, #0 + adds r3, r0, #0 + muls r3, r4, r3 + adds r0, r6, #1 + lsls r0, r0, #2 + add r0, ip + ldr r0, [r0] + adds r1, r5, #0 + bl sub_0806FA48 + ldr r0, [r5, #0x34] + add r0, r8 + str r0, [r5, #0x34] + ldr r1, [r5, #0x64] + ldrb r0, [r5, #0xa] + adds r0, #1 + lsls r0, r0, #2 + adds r1, r1, r0 + ldr r0, [r1] + adds r0, #0x63 + ldrb r1, [r0] + adds r0, r5, #0 + adds r0, #0x63 + strb r1, [r0] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08043A0C: .4byte gUnk_080C9160 + + thumb_func_start sub_08043A10 +sub_08043A10: @ 0x08043A10 + push {r4, lr} + adds r4, r0, #0 + bl sub_08043B7C + ldr r0, [r4, #0x64] + ldr r0, [r0, #0x10] + bl sub_0804393C + ldr r0, [r4, #0x64] + ldr r1, [r0, #0x10] + ldrh r0, [r1, #0x32] + subs r0, #8 + strh r0, [r1, #0x32] + ldr r0, [r4, #0x64] + ldr r1, [r0, #0x10] + ldrh r0, [r1, #0x36] + subs r0, #8 + strh r0, [r1, #0x36] + ldr r0, [r4, #0x64] + ldr r0, [r0, #0xc] + bl sub_0804393C + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + bl sub_0804393C + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + bl sub_0804393C + ldr r0, [r4, #0x64] + ldr r0, [r0] + bl sub_0804393C + ldr r0, [r4, #0x64] + ldr r1, [r0] + ldrh r0, [r1, #0x32] + adds r0, #1 + strh r0, [r1, #0x32] + ldr r0, [r4, #0x64] + ldr r1, [r0] + adds r1, #0x63 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + adds r4, #0x7c + ldrb r0, [r4] + cmp r0, #0 + beq _08043A76 + subs r0, #1 + strb r0, [r4] +_08043A76: + pop {r4, pc} + + thumb_func_start sub_08043A78 +sub_08043A78: @ 0x08043A78 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7c + movs r0, #0 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08043B7C + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + bl sub_0804393C + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + bl sub_0804393C + ldr r0, [r4, #0x64] + ldr r0, [r0] + bl sub_0804393C + ldr r0, [r4, #0x64] + ldr r1, [r0] + ldrh r0, [r1, #0x32] + adds r0, #1 + strh r0, [r1, #0x32] + ldr r0, [r4, #0x64] + ldr r1, [r0] + adds r1, #0x63 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08043ABC +sub_08043ABC: @ 0x08043ABC + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7c + movs r0, #0 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08043B7C + ldr r0, [r4, #0x64] + ldr r0, [r0, #0xc] + bl sub_0804393C + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + bl sub_0804393C + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + bl sub_0804393C + ldr r0, [r4, #0x64] + ldr r0, [r0] + bl sub_0804393C + ldr r0, [r4, #0x64] + ldr r1, [r0] + ldrh r0, [r1, #0x32] + adds r0, #1 + strh r0, [r1, #0x32] + ldr r0, [r4, #0x64] + ldr r1, [r0] + adds r1, #0x63 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08043B08 +sub_08043B08: @ 0x08043B08 + push {r4, r5, r6, lr} + ldrb r3, [r0, #0xa] + lsls r1, r3, #4 + adds r4, r1, #0 + adds r4, #8 + ldr r2, [r0, #0x64] + adds r6, r2, r4 + adds r1, #0x18 + adds r4, r2, r1 + ldr r0, _08043B40 @ =gUnk_080D13B2 + adds r3, r3, r0 + ldrb r5, [r3] + ldr r0, [r2] + ldrb r0, [r0, #0xb] + cmp r0, #0 + bne _08043B44 + ldrb r1, [r6, #1] + ldrb r0, [r4, #1] + subs r0, r1, r0 + lsls r0, r0, #0x18 + asrs r3, r0, #0x18 + cmp r5, r3 + bhs _08043B5E + cmp r3, #0 + ble _08043B56 + subs r0, r1, r5 + b _08043B5C + .align 2, 0 +_08043B40: .4byte gUnk_080D13B2 +_08043B44: + ldrb r0, [r4, #1] + ldrb r1, [r6, #1] + subs r0, r0, r1 + lsls r0, r0, #0x18 + asrs r3, r0, #0x18 + cmp r5, r3 + bhs _08043B5E + cmp r3, #0 + bge _08043B5A +_08043B56: + strb r1, [r4, #1] + b _08043B5E +_08043B5A: + adds r0, r1, r5 +_08043B5C: + strb r0, [r4, #1] +_08043B5E: + ldrb r2, [r6, #5] + ldrb r0, [r4, #5] + subs r3, r2, r0 + lsls r1, r5, #1 + adds r0, r3, r5 + cmp r1, r0 + bhs _08043B78 + cmp r3, #0 + ble _08043B74 + subs r0, r2, r5 + b _08043B76 +_08043B74: + adds r0, r2, r5 +_08043B76: + strb r0, [r4, #5] +_08043B78: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08043B7C +sub_08043B7C: @ 0x08043B7C + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + bl sub_08043B08 + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + bl sub_08043B08 + ldr r0, [r4, #0x64] + ldr r0, [r0, #0xc] + bl sub_08043B08 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08043B9C +sub_08043B9C: @ 0x08043B9C + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x64] + ldrb r0, [r0, #0x19] + adds r0, #4 + movs r1, #0xff + ands r0, r1 + asrs r0, r0, #3 + ldr r1, _08043BC4 @ =gUnk_080D13B7 + adds r0, r0, r1 + ldrb r1, [r0] + ldrb r0, [r2, #0x1e] + subs r0, #1 + cmp r1, r0 + beq _08043BC0 + adds r0, r2, #0 + bl sub_080042AC +_08043BC0: + pop {pc} + .align 2, 0 +_08043BC4: .4byte gUnk_080D13B7 + + thumb_func_start sub_08043BC8 +sub_08043BC8: @ 0x08043BC8 + movs r1, #2 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0xb] + lsls r2, r2, #2 + ldr r1, _08043BEC @ =gUnk_080D13D8 + adds r2, r2, r1 + ldr r1, [r0, #0x64] + adds r1, #0x18 + ldrh r0, [r2] + strh r0, [r1, #8] + ldrh r0, [r2, #2] + strh r0, [r1, #0xa] + movs r0, #0x5a + strb r0, [r1, #0xd] + movs r0, #0x28 + strb r0, [r1, #0xe] + bx lr + .align 2, 0 +_08043BEC: .4byte gUnk_080D13D8 + + thumb_func_start sub_08043BF0 +sub_08043BF0: @ 0x08043BF0 + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x64] + adds r1, r0, #0 + adds r1, #0x18 + ldrb r0, [r2, #0xb] + cmp r0, #0 + bne _08043C18 + ldrb r0, [r1, #1] + movs r1, #6 + cmp r0, #0x2f + bls _08043C2E + movs r1, #7 + cmp r0, #0x5f + bls _08043C2E + movs r1, #9 + cmp r0, #0x8f + bhi _08043C2E + movs r1, #8 + b _08043C2E +_08043C18: + ldrb r0, [r1, #1] + movs r1, #8 + cmp r0, #0xd0 + bhi _08043C2E + movs r1, #7 + cmp r0, #0xa0 + bhi _08043C2E + movs r1, #5 + cmp r0, #0x70 + bls _08043C2E + movs r1, #6 +_08043C2E: + adds r0, r2, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, r1 + beq _08043C3E + adds r0, r2, #0 + bl sub_080042AC +_08043C3E: + pop {pc} + + thumb_func_start sub_08043C40 +sub_08043C40: @ 0x08043C40 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + ldrb r0, [r1, #5] + cmp r0, #0x1f + bhi _08043C54 + ldr r6, _08043C50 @ =gUnk_080D13E0 + b _08043C68 + .align 2, 0 +_08043C50: .4byte gUnk_080D13E0 +_08043C54: + cmp r0, #0x2f + bhi _08043C60 + ldr r6, _08043C5C @ =gUnk_080D13E3 + b _08043C68 + .align 2, 0 +_08043C5C: .4byte gUnk_080D13E3 +_08043C60: + ldr r6, _08043C84 @ =gUnk_080D13E0 + cmp r0, #0x77 + bhi _08043C68 + adds r6, #6 +_08043C68: + movs r4, #0 + movs r5, #0x28 +_08043C6C: + ldr r0, [r7, #0x64] + adds r3, r0, r5 + adds r0, r6, r4 + ldrb r1, [r3, #0xc] + ldrb r2, [r0] + adds r0, r1, #0 + cmp r2, r0 + beq _08043C8C + cmp r2, r0 + bhs _08043C88 + subs r0, r1, #1 + b _08043C8A + .align 2, 0 +_08043C84: .4byte gUnk_080D13E0 +_08043C88: + adds r0, r1, #1 +_08043C8A: + strb r0, [r3, #0xc] +_08043C8C: + adds r5, #0x10 + adds r4, #1 + cmp r4, #2 + bls _08043C6C + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08043C98 +sub_08043C98: @ 0x08043C98 + push {lr} + adds r3, r0, #0 + ldr r0, [r3, #0x64] + ldr r1, [r0, #8] + ldr r2, [r0, #0xc] + adds r1, #0x41 + ldrb r0, [r1] + cmp r0, #0x9d + beq _08043CB4 + adds r0, r2, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x9d + bne _08043CD0 +_08043CB4: + adds r0, r3, #0 + bl sub_08043D08 + ldr r0, _08043CCC @ =gUnk_030010A0 + adds r0, #0x38 + ldrb r2, [r0] + movs r1, #2 + orrs r1, r2 + strb r1, [r0] + movs r0, #1 + b _08043CD2 + .align 2, 0 +_08043CCC: .4byte gUnk_030010A0 +_08043CD0: + movs r0, #0 +_08043CD2: + pop {pc} + + thumb_func_start sub_08043CD4 +sub_08043CD4: @ 0x08043CD4 + push {r4, r5, lr} + adds r3, r0, #0 + movs r2, #0 + adds r4, r3, #0 + adds r4, #0x7c + movs r5, #0x78 + movs r0, #0x7d + adds r0, r0, r3 + mov ip, r0 +_08043CE6: + ldr r0, [r3, #0x64] + lsls r1, r2, #2 + adds r0, r0, r1 + ldr r0, [r0] + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x9d + bne _08043CFE + strb r5, [r4] + mov r0, ip + strb r2, [r0] + b _08043D04 +_08043CFE: + adds r2, #1 + cmp r2, #4 + bls _08043CE6 +_08043D04: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08043D08 +sub_08043D08: @ 0x08043D08 + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #0 + movs r0, #7 + strb r0, [r5, #0xc] + strb r1, [r5, #0xd] + adds r0, r5, #0 + movs r1, #0xd + bl sub_080042AC + ldr r0, [r5, #0x64] + ldr r4, [r0, #0x10] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #0x13 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0804AA1C + adds r0, r4, #0 + movs r1, #0x51 + movs r2, #0 + bl sub_080A29AC + adds r2, r0, #0 + cmp r2, #0 + beq _08043D78 + ldr r1, _08043DAC @ =gUnk_080D13E9 + ldrb r0, [r5, #0xb] + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r2, #0x2e] + adds r0, r0, r1 + strh r0, [r2, #0x2e] + ldrh r0, [r2, #0x32] + subs r0, #6 + strh r0, [r2, #0x32] + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] +_08043D78: + ldr r0, [r5, #0x64] + ldr r0, [r0, #0xc] + adds r1, r4, #0 + bl sub_0806FA24 + ldr r1, [r5, #0x64] + adds r1, #0x54 + ldrh r0, [r4, #0x36] + ldrb r1, [r1] + adds r0, r0, r1 + strh r0, [r4, #0x36] + movs r2, #0 + movs r3, #0x39 +_08043D92: + ldr r0, [r5, #0x64] + lsls r1, r2, #2 + adds r0, r0, r1 + ldr r0, [r0] + adds r0, #0x3f + strb r3, [r0] + adds r2, #1 + cmp r2, #4 + bls _08043D92 + movs r0, #0xfe + bl sub_08004488 + pop {r4, r5, pc} + .align 2, 0 +_08043DAC: .4byte gUnk_080D13E9 + + thumb_func_start sub_08043DB0 +sub_08043DB0: @ 0x08043DB0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r0, _08043E48 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08043EAC + ldr r0, [r5, #0x64] + ldr r2, [r0, #0xc] + movs r1, #0x2e + ldrsh r0, [r2, r1] + ldr r6, _08043E4C @ =gUnk_03000BF0 + ldrh r1, [r6, #6] + subs r0, r0, r1 + movs r3, #0x32 + ldrsh r1, [r2, r3] + ldrh r2, [r6, #8] + subs r1, r1, r2 + adds r1, #2 + movs r2, #3 + movs r3, #3 + bl sub_0800293E + cmp r0, #0 + beq _08043EAC + ldr r0, _08043E50 @ =gUnk_080D13EC + bl sub_08080840 + ldr r4, _08043E54 @ =gUnk_030010A0 + adds r0, r4, #0 + adds r0, #0x39 + ldrb r1, [r0] + movs r0, #3 + ands r0, r1 + cmp r0, #3 + beq _08043DFE + movs r0, #1 + strb r0, [r4, #0xd] +_08043DFE: + adds r0, r5, #0 + adds r0, #0x7a + ldrh r0, [r0] + movs r1, #0x3c + bl __divsi3 + movs r1, #0x1e + subs r1, r1, r0 + adds r0, r4, #0 + adds r0, #0x3d + strb r1, [r0] + ldrb r1, [r5, #0xb] + subs r0, #1 + strb r1, [r0] + ldr r0, [r5, #0x64] + ldr r2, [r0, #0x14] + ldrh r1, [r2, #0x2e] + adds r0, r4, #0 + adds r0, #0x40 + strh r1, [r0] + ldrh r0, [r2, #0x32] + adds r1, r4, #0 + adds r1, #0x42 + strh r0, [r1] + ldr r0, [r2, #0x64] + ldr r3, [r0, #0x14] + cmp r3, #0 + beq _08043E58 + ldrh r1, [r3, #0x2e] + adds r0, r4, #0 + adds r0, #0x44 + strh r1, [r0] + ldrh r1, [r3, #0x32] + adds r0, #2 + strh r1, [r0] + b _08043E70 + .align 2, 0 +_08043E48: .4byte gUnk_03003F80 +_08043E4C: .4byte gUnk_03000BF0 +_08043E50: .4byte gUnk_080D13EC +_08043E54: .4byte gUnk_030010A0 +_08043E58: + movs r1, #0x88 + lsls r1, r1, #1 + adds r0, r1, #0 + ldrh r3, [r6, #6] + adds r0, r0, r3 + adds r1, r4, #0 + adds r1, #0x44 + strh r0, [r1] + ldrh r0, [r6, #8] + adds r0, #0x60 + adds r1, #2 + strh r0, [r1] +_08043E70: + ldr r0, [r2, #0x64] + ldr r3, [r0, #0x18] + cmp r3, #0 + beq _08043E90 + ldr r1, _08043E8C @ =gUnk_030010A0 + ldrh r2, [r3, #0x2e] + adds r0, r1, #0 + adds r0, #0x48 + strh r2, [r0] + ldrh r0, [r3, #0x32] + adds r1, #0x4a + strh r0, [r1] + b _08043EAC + .align 2, 0 +_08043E8C: .4byte gUnk_030010A0 +_08043E90: + ldr r2, _08043EB0 @ =gUnk_030010A0 + ldr r3, _08043EB4 @ =gUnk_03000BF0 + movs r1, #0x88 + lsls r1, r1, #1 + adds r0, r1, #0 + ldrh r1, [r3, #6] + adds r0, r0, r1 + adds r1, r2, #0 + adds r1, #0x48 + strh r0, [r1] + ldrh r0, [r3, #8] + adds r0, #0x60 + adds r2, #0x4a + strh r0, [r2] +_08043EAC: + pop {r4, r5, r6, pc} + .align 2, 0 +_08043EB0: .4byte gUnk_030010A0 +_08043EB4: .4byte gUnk_03000BF0 + + thumb_func_start sub_08043EB8 +sub_08043EB8: @ 0x08043EB8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r0, #0 + ldrb r0, [r7, #0x10] + movs r5, #0x80 + orrs r0, r5 + strb r0, [r7, #0x10] + adds r2, r7, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r4, #8 + rsbs r4, r4, #0 + adds r0, r4, #0 + ands r0, r1 + movs r6, #4 + orrs r0, r6 + strb r0, [r2] + adds r0, r7, #0 + movs r1, #0xd + bl sub_080042AC + ldr r0, [r7, #0x64] + ldr r3, [r0, #4] + ldrb r0, [r3, #0x10] + orrs r0, r5 + strb r0, [r3, #0x10] + adds r2, r3, #0 + adds r2, #0x29 + ldrb r1, [r2] + adds r0, r4, #0 + ands r0, r1 + orrs r0, r6 + strb r0, [r2] + ldr r0, [r7, #0x64] + ldr r3, [r0, #8] + ldrb r0, [r3, #0x10] + orrs r0, r5 + strb r0, [r3, #0x10] + adds r2, r3, #0 + adds r2, #0x29 + ldrb r1, [r2] + adds r0, r4, #0 + ands r0, r1 + orrs r0, r6 + strb r0, [r2] + ldr r0, [r7, #0x64] + ldr r3, [r0, #0xc] + ldrb r1, [r3, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r3, #0x10] + ldrb r2, [r3, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + adds r0, r1, #0 + ands r0, r2 + movs r2, #1 + mov r8, r2 + mov r2, r8 + orrs r0, r2 + strb r0, [r3, #0x18] + adds r3, #0x29 + ldrb r2, [r3] + adds r0, r4, #0 + ands r0, r2 + orrs r0, r6 + strb r0, [r3] + ldr r0, [r7, #0x64] + ldr r3, [r0, #0x10] + ldrb r0, [r3, #0x10] + orrs r5, r0 + strb r5, [r3, #0x10] + ldrb r0, [r3, #0x18] + ands r1, r0 + mov r0, r8 + orrs r1, r0 + strb r1, [r3, #0x18] + adds r1, r3, #0 + adds r1, #0x29 + ldrb r0, [r1] + ands r4, r0 + orrs r4, r6 + strb r4, [r1] + ldrb r0, [r7, #0xb] + cmp r0, #0 + bne _08043F74 + ldr r1, _08043F70 @ =gUnk_030010A0 + adds r0, r1, #0 + adds r0, #0x44 + b _08043F7A + .align 2, 0 +_08043F70: .4byte gUnk_030010A0 +_08043F74: + ldr r1, _08043F8C @ =gUnk_030010A0 + adds r0, r1, #0 + adds r0, #0x48 +_08043F7A: + ldrh r0, [r0] + strh r0, [r3, #0x2e] + ldrb r0, [r7, #0xb] + cmp r0, #0 + bne _08043F90 + adds r0, r1, #0 + adds r0, #0x46 + b _08043F94 + .align 2, 0 +_08043F8C: .4byte gUnk_030010A0 +_08043F90: + adds r0, r1, #0 + adds r0, #0x4a +_08043F94: + ldrh r1, [r0] + movs r0, #0 + strh r1, [r3, #0x32] + strh r0, [r3, #0x36] + adds r2, r3, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0xef + ands r0, r1 + strb r0, [r2] + adds r1, r3, #0 + adds r1, #0x3f + movs r0, #0x3a + strb r0, [r1] + ldr r0, _08043FF8 @ =gUnk_080FD450 + str r0, [r3, #0x48] + movs r0, #0xaf + movs r1, #0 + movs r2, #0 + bl sub_080A2960 + adds r3, r0, #0 + cmp r3, #0 + beq _08043FCA + ldr r0, [r7, #0x64] + ldr r0, [r0, #0xc] + str r0, [r3, #0x50] +_08043FCA: + ldr r0, [r7, #0x64] + ldr r0, [r0] + str r3, [r0, #0x68] + movs r2, #0 + movs r6, #0 + movs r5, #0x80 + lsls r5, r5, #8 + ldr r4, _08043FFC @ =gUnk_080D1419 + movs r3, #0x18 +_08043FDC: + ldr r0, [r7, #0x64] + adds r0, r0, r3 + strh r5, [r0] + strh r6, [r0, #4] + adds r1, r2, r4 + ldrb r1, [r1] + strb r1, [r0, #0xc] + adds r3, #0x10 + adds r2, #1 + cmp r2, #4 + bls _08043FDC + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08043FF8: .4byte gUnk_080FD450 +_08043FFC: .4byte gUnk_080D1419 + + thumb_func_start sub_08044000 +sub_08044000: @ 0x08044000 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #1 + ldr r0, _08044070 @ =gUnk_080D1400 + movs r3, #0 + ldr r2, _08044074 @ =gUnk_080D1414 + mov ip, r2 + movs r7, #8 + rsbs r7, r7, #0 + adds r5, r1, r0 + movs r6, #0x18 +_0804401C: + ldr r0, [r4, #0x64] + lsls r1, r3, #2 + adds r0, r0, r1 + ldr r2, [r0] + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + adds r2, #0x29 + ldrb r1, [r2] + adds r0, r7, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldr r1, [r4, #0x64] + adds r1, r1, r6 + ldrh r0, [r5] + strh r0, [r1] + movs r0, #0x80 + lsls r0, r0, #7 + strh r0, [r1, #4] + mov r2, ip + adds r0, r3, r2 + ldrb r0, [r0] + strb r0, [r1, #0xc] + adds r5, #2 + adds r6, #0x10 + adds r3, #1 + cmp r3, #4 + bls _0804401C + adds r0, r4, #0 + movs r1, #7 + bl sub_080042AC + ldr r1, [r4, #0x64] + ldr r0, [r1, #0x14] + ldr r1, [r1, #0x10] + bl sub_0806FA24 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08044070: .4byte gUnk_080D1400 +_08044074: .4byte gUnk_080D1414 + + thumb_func_start sub_08044078 +sub_08044078: @ 0x08044078 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080440C4 + movs r2, #1 + strb r2, [r4, #0xc] + ldrb r0, [r4, #0xa] + cmp r0, #3 + bne _080440AC + ldr r3, _080440B8 @ =gUnk_030010A0 + adds r0, r3, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _080440BC + ldr r0, [r4, #0x64] + ldr r0, [r0] + adds r1, r3, #0 + adds r1, #0x3c + ldrb r0, [r0, #0xb] + ldrb r1, [r1] + cmp r0, r1 + bne _080440BC +_080440AC: + adds r0, r4, #0 + movs r1, #0x12 + bl sub_08004260 + b _080440C4 + .align 2, 0 +_080440B8: .4byte gUnk_030010A0 +_080440BC: + adds r0, r4, #0 + movs r1, #0x11 + bl sub_08004260 +_080440C4: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_080440CC +sub_080440CC: @ 0x080440CC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08044110 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r2, _08044104 @ =gUnk_030010A0 + adds r1, r2, #0 + adds r1, #0x38 + ldrb r1, [r1] + ands r0, r1 + cmp r0, #0 + beq _08044108 + ldr r0, [r4, #0x64] + ldr r0, [r0] + adds r1, r2, #0 + adds r1, #0x3c + ldrb r0, [r0, #0xb] + ldrb r1, [r1] + cmp r0, r1 + bne _08044108 + adds r0, r4, #0 + movs r1, #0x13 + bl sub_08004260 + b _08044110 + .align 2, 0 +_08044104: .4byte gUnk_030010A0 +_08044108: + adds r0, r4, #0 + movs r1, #0x11 + bl sub_08004260 +_08044110: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_08044118 +sub_08044118: @ 0x08044118 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _08044130 @ =gUnk_080D1588 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_08044130: .4byte gUnk_080D1588 + + thumb_func_start sub_08044134 +sub_08044134: @ 0x08044134 + push {lr} + ldr r2, _08044148 @ =gUnk_080D15A0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08044148: .4byte gUnk_080D15A0 + + thumb_func_start sub_0804414C +sub_0804414C: @ 0x0804414C + push {lr} + ldr r1, _08044158 @ =gUnk_080D1588 + bl sub_0804AA30 + pop {pc} + .align 2, 0 +_08044158: .4byte gUnk_080D1588 + + thumb_func_start sub_0804415C +sub_0804415C: @ 0x0804415C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0804418E + adds r0, r4, #0 + bl sub_0806F520 + cmp r0, #0 + beq _08044188 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080441BA + movs r0, #8 + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_08044310 + b _080441BA +_08044188: + movs r0, #8 + strb r0, [r4, #0xe] + b _080441BA +_0804418E: + adds r0, r4, #0 + bl sub_0806F520 + cmp r0, #0 + beq _080441B0 + ldr r0, _080441AC @ =gUnk_080D15A8 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _080441BA + .align 2, 0 +_080441AC: .4byte gUnk_080D15A8 +_080441B0: + adds r0, r4, #0 + bl sub_080445C0 + bl sub_0805E780 +_080441BA: + pop {r4, pc} + + thumb_func_start sub_080441BC +sub_080441BC: @ 0x080441BC + movs r1, #2 + strb r1, [r0, #0xd] + bx lr + .align 2, 0 + + thumb_func_start sub_080441C4 +sub_080441C4: @ 0x080441C4 + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_080441CC +sub_080441CC: @ 0x080441CC + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _080441DE + adds r0, r4, #0 + bl sub_0804A7D4 +_080441DE: + pop {r4, pc} + + thumb_func_start sub_080441E0 +sub_080441E0: @ 0x080441E0 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + movs r0, #0x12 + bl sub_0807CC30 + cmp r0, #0 + beq _080441F2 + bl sub_0805E780 +_080441F2: + ldrb r7, [r4, #0xa] + cmp r7, #0 + bne _08044284 + ldr r0, _08044244 @ =0x000001EB + movs r1, #1 + bl sub_080AD8F0 + adds r6, r0, #0 + ldrb r1, [r6] + lsls r0, r1, #2 + adds r0, r0, r1 + adds r5, r0, #1 + adds r0, r5, #0 + bl sub_0801D8E0 + adds r1, r0, #0 + str r1, [r4, #0x64] + cmp r1, #0 + beq _0804429A + adds r0, r6, #0 + adds r2, r5, #0 + bl sub_0801D66C + adds r1, r4, #0 + adds r1, #0x28 + movs r0, #0xff + strb r0, [r1] + ldr r0, [r4, #0x64] + ldrb r0, [r0] + lsls r0, r0, #3 + adds r0, #0xc + bl sub_0801D8E0 + adds r2, r0, #0 + cmp r2, #0 + bne _08044248 + ldr r0, [r4, #0x64] + bl sub_0801DA0C + b _0804429A + .align 2, 0 +_08044244: .4byte 0x000001EB +_08044248: + str r2, [r4, #0x48] + ldr r0, _0804427C @ =gUnk_080FD188 + ldr r1, [r0, #4] + ldr r0, [r0] + str r0, [r2] + str r1, [r2, #4] + adds r0, r4, #0 + bl sub_080442BC + movs r0, #1 + strb r0, [r4, #0x1e] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x75 + strb r7, [r0] + adds r1, r4, #0 + adds r1, #0x76 + ldr r0, _08044280 @ =0x0000FFFF + strh r0, [r1] + b _08044292 + .align 2, 0 +_0804427C: .4byte gUnk_080FD188 +_08044280: .4byte 0x0000FFFF +_08044284: + movs r0, #0 + strb r0, [r4, #0x1e] + strh r0, [r4, #0x24] + ldr r0, _0804429C @ =gUnk_080FD168 + str r0, [r4, #0x48] + movs r0, #1 + strb r0, [r4, #0x1c] +_08044292: + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #8 + strb r0, [r4, #0xe] +_0804429A: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0804429C: .4byte gUnk_080FD168 + + thumb_func_start sub_080442A0 +sub_080442A0: @ 0x080442A0 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xa] + cmp r0, #0 + bne _080442B2 + adds r0, r1, #0 + bl sub_08044498 + b _080442B8 +_080442B2: + adds r0, r1, #0 + bl sub_08044550 +_080442B8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080442BC +sub_080442BC: @ 0x080442BC + push {r4, r5, r6, r7, lr} + adds r3, r0, #0 + ldr r5, _0804430C @ =gUnk_080D15B4 + ldr r0, [r3, #0x64] + ldrb r6, [r0] + movs r4, #0 + cmp r4, r6 + bhs _08044304 + movs r7, #0 +_080442CE: + ldr r1, [r3, #0x48] + lsls r2, r4, #3 + adds r1, r2, r1 + ldrb r0, [r5] + strb r0, [r1, #0xc] + ldr r0, [r3, #0x48] + adds r0, r2, r0 + ldrb r1, [r5, #1] + strb r1, [r0, #0xd] + ldr r0, [r3, #0x48] + adds r0, r2, r0 + ldrb r1, [r5, #2] + strb r1, [r0, #0xe] + ldr r0, [r3, #0x48] + adds r0, r2, r0 + ldrb r1, [r5, #3] + strb r1, [r0, #0xf] + ldr r0, [r3, #0x48] + adds r0, r2, r0 + adds r0, #0xc + strb r7, [r0, #4] + ldr r0, [r3, #0x48] + adds r2, r2, r0 + strb r4, [r2, #0x11] + adds r4, #1 + cmp r4, r6 + blo _080442CE +_08044304: + adds r0, r3, #0 + adds r0, #0x74 + strb r6, [r0] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0804430C: .4byte gUnk_080D15B4 + + thumb_func_start sub_08044310 +sub_08044310: @ 0x08044310 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + movs r4, #0xff + movs r6, #0xff + ldr r0, _08044334 @ =gUnk_03001160 + ldrb r0, [r0, #0x14] + lsrs r1, r0, #1 + movs r0, #3 + ands r1, r0 + cmp r1, #1 + beq _0804436A + cmp r1, #1 + bgt _08044338 + cmp r1, #0 + beq _08044342 + b _080443EA + .align 2, 0 +_08044334: .4byte gUnk_03001160 +_08044338: + cmp r1, #2 + beq _08044392 + cmp r1, #3 + beq _080443C4 + b _080443EA +_08044342: + movs r2, #0 + adds r0, r5, #0 + adds r0, #0x74 + ldrb r0, [r0] + cmp r2, r0 + bhs _080443EA + adds r3, r0, #0 + ldr r1, [r5, #0x48] +_08044352: + ldrb r0, [r1, #0x10] + cmp r0, #0 + bne _08044360 + ldrb r0, [r1, #0xd] + cmp r6, r0 + bls _08044360 + adds r4, r2, #0 +_08044360: + adds r1, #8 + adds r2, #1 + cmp r2, r3 + blo _08044352 + b _080443EA +_0804436A: + movs r2, #0 + adds r0, r5, #0 + adds r0, #0x74 + ldrb r0, [r0] + cmp r2, r0 + bhs _080443EA + adds r3, r0, #0 + ldr r1, [r5, #0x48] +_0804437A: + ldrb r0, [r1, #0x10] + cmp r0, #0 + bne _08044388 + ldrb r0, [r1, #0xe] + cmp r6, r0 + bls _08044388 + adds r4, r2, #0 +_08044388: + adds r1, #8 + adds r2, #1 + cmp r2, r3 + blo _0804437A + b _080443EA +_08044392: + movs r2, #0 + adds r0, r5, #0 + adds r0, #0x74 + ldrb r0, [r0] + cmp r2, r0 + bhs _080443EA + adds r3, r0, #0 + ldr r1, [r5, #0x48] +_080443A2: + ldrb r0, [r1, #0x10] + cmp r0, #0 + bne _080443B0 + ldrb r0, [r1, #0xc] + cmp r6, r0 + bls _080443B0 + adds r4, r2, #0 +_080443B0: + adds r1, #8 + adds r2, #1 + cmp r2, r3 + blo _080443A2 + b _080443EA +_080443BA: + mov r1, r8 + adds r0, r1, r4 + ldrb r0, [r0, #0x11] + strb r0, [r3, #5] + b _08044492 +_080443C4: + movs r2, #0 + adds r0, r5, #0 + adds r0, #0x74 + ldrb r0, [r0] + cmp r2, r0 + bhs _080443EA + adds r3, r0, #0 + ldr r1, [r5, #0x48] +_080443D4: + ldrb r0, [r1, #0x10] + cmp r0, #0 + bne _080443E2 + ldrb r0, [r1, #0xf] + cmp r6, r0 + bls _080443E2 + adds r4, r2, #0 +_080443E2: + adds r1, #8 + adds r2, #1 + cmp r2, r3 + blo _080443D4 +_080443EA: + cmp r4, #0xff + beq _08044492 + ldr r0, [r5, #0x48] + lsls r4, r4, #3 + adds r0, r4, r0 + movs r1, #1 + strb r1, [r0, #0x10] + ldr r1, [r5, #0x64] + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + ldr r2, [r5, #0x64] + ldrb r1, [r2] + lsls r0, r1, #2 + adds r0, r0, r1 + adds r0, #1 + adds r7, r2, r0 + ldr r0, [r5, #0x48] + adds r0, r4, r0 + ldrb r1, [r0, #0x11] + lsls r0, r1, #2 + adds r0, r0, r1 + adds r0, #1 + adds r6, r2, r0 + movs r0, #0x53 + movs r1, #1 + bl sub_0804AA60 + adds r1, r0, #0 + mov r8, r4 + cmp r1, #0 + beq _08044440 + movs r2, #0 + ldrsb r2, [r6, r2] + adds r2, #8 + lsls r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r6, r3] + adds r3, #8 + lsls r3, r3, #0x10 + adds r0, r5, #0 + bl sub_0806FA48 +_08044440: + ldr r0, [r5, #0x64] + ldrb r0, [r0] + cmp r0, #0 + bne _08044458 + movs r0, #0x12 + bl sub_0807CD04 + movs r0, #0x72 + bl sub_080A3268 + bl sub_0805E780 +_08044458: + movs r2, #0 + adds r3, r5, #0 + adds r3, #0x74 +_0804445E: + adds r0, r6, r2 + adds r1, r7, r2 + ldrb r1, [r1] + strb r1, [r0] + adds r2, #1 + cmp r2, #4 + bls _0804445E + movs r2, #0 + ldrb r1, [r3] + cmp r2, r1 + bhs _08044492 + ldr r4, [r5, #0x48] + ldr r0, [r5, #0x64] + ldrb r6, [r0] + adds r5, r1, #0 + adds r3, r4, #0 + adds r3, #0xc + adds r1, r4, #0 +_08044482: + ldrb r0, [r1, #0x11] + cmp r0, r6 + beq _080443BA + adds r3, #8 + adds r1, #8 + adds r2, #1 + cmp r2, r5 + blo _08044482 +_08044492: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08044498 +sub_08044498: @ 0x08044498 + push {r4, r5, r6, lr} + mov ip, r0 + ldr r6, _08044538 @ =gUnk_03001160 + movs r1, #0x2e + ldrsh r0, [r6, r1] + ldr r3, _0804453C @ =gUnk_03000BF0 + ldrh r1, [r3, #6] + subs r0, r0, r1 + asrs r4, r0, #4 + movs r2, #0x3f + ands r4, r2 + movs r5, #0x32 + ldrsh r0, [r6, r5] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + ldr r0, _08044540 @ =gUnk_03003F80 + adds r0, #0x92 + ldrh r0, [r0] + movs r1, #0xf0 + lsls r1, r1, #4 + ands r1, r0 + mov r2, ip + adds r2, #0x75 + ldrb r0, [r2] + cmp r1, r0 + bne _080444DE + mov r0, ip + adds r0, #0x76 + ldrh r0, [r0] + cmp r4, r0 + beq _0804454C +_080444DE: + strb r1, [r2] + mov r0, ip + adds r0, #0x76 + strh r4, [r0] + mov r1, ip + ldr r0, [r1, #0x64] + adds r2, r0, #1 + ldrb r4, [r0] + movs r3, #0x2e + ldrsh r1, [r6, r3] + mov r5, ip + movs r3, #0x2e + ldrsh r0, [r5, r3] + subs r5, r1, r0 + movs r0, #0x32 + ldrsh r1, [r6, r0] + mov r3, ip + movs r6, #0x32 + ldrsh r0, [r3, r6] + subs r1, r1, r0 + movs r3, #0 + cmp r3, r4 + bhs _0804454C +_0804450C: + movs r0, #0 + ldrsb r0, [r2, r0] + subs r0, r5, r0 + cmp r0, #0xf + bhi _08044544 + movs r0, #1 + ldrsb r0, [r2, r0] + subs r0, r1, r0 + cmp r0, #0xf + bhi _08044544 + movs r0, #0xf + movs r1, #0x11 + movs r2, #0 + bl sub_080A2960 + adds r1, r0, #0 + cmp r1, #0 + beq _0804454C + ldr r0, _08044538 @ =gUnk_03001160 + bl sub_0806FA24 + b _0804454C + .align 2, 0 +_08044538: .4byte gUnk_03001160 +_0804453C: .4byte gUnk_03000BF0 +_08044540: .4byte gUnk_03003F80 +_08044544: + adds r2, #5 + adds r3, #1 + cmp r3, r4 + blo _0804450C +_0804454C: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08044550 +sub_08044550: @ 0x08044550 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + ldr r0, _080445A8 @ =gUnk_03003F80 + ldrb r1, [r0, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #1 + bne _080445B4 + ldrh r1, [r6, #0x24] + movs r2, #0x24 + ldrsh r0, [r6, r2] + cmp r0, #0xff + bgt _08044570 + adds r0, r1, #0 + adds r0, #0x10 + strh r0, [r6, #0x24] +_08044570: + ldr r5, _080445AC @ =gUnk_03001160 + ldrb r0, [r5, #0x14] + movs r4, #0xe + ands r4, r0 + ldr r0, _080445B0 @ =gUnk_08126EE4 + adds r4, r4, r0 + movs r3, #0x2e + ldrsh r0, [r6, r3] + movs r7, #0x32 + ldrsh r1, [r6, r7] + movs r3, #0x2e + ldrsh r2, [r5, r3] + movs r3, #0 + ldrsb r3, [r4, r3] + adds r2, r2, r3 + movs r7, #0x32 + ldrsh r3, [r5, r7] + ldrb r4, [r4, #1] + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + adds r3, r3, r4 + bl sub_080045D4 + strb r0, [r6, #0x15] + adds r0, r6, #0 + bl sub_0806F69C + b _080445BE + .align 2, 0 +_080445A8: .4byte gUnk_03003F80 +_080445AC: .4byte gUnk_03001160 +_080445B0: .4byte gUnk_08126EE4 +_080445B4: + adds r0, r6, #0 + bl sub_080445C0 + bl sub_0805E780 +_080445BE: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080445C0 +sub_080445C0: @ 0x080445C0 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x21 + movs r1, #1 + movs r2, #1 + bl sub_080A2960 + adds r1, r0, #0 + cmp r1, #0 + beq _080445DA + adds r0, r4, #0 + bl sub_0806FA24 +_080445DA: + pop {r4, pc} + + thumb_func_start sub_080445DC +sub_080445DC: @ 0x080445DC + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + ldrb r0, [r4, #0xc] + cmp r0, #0 + beq _08044604 + cmp r0, #3 + beq _08044604 + ldr r1, [r5, #0x2c] + ldr r0, [r5, #0x78] + subs r1, r1, r0 + ldr r0, [r4, #0x2c] + adds r0, r0, r1 + str r0, [r4, #0x2c] + ldr r1, [r5, #0x30] + ldr r0, [r5, #0x7c] + subs r1, r1, r0 + ldr r0, [r4, #0x30] + adds r0, r0, r1 + str r0, [r4, #0x30] +_08044604: + ldr r1, _08044684 @ =gUnk_080D1604 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + adds r0, #0x84 + ldrb r0, [r0] + cmp r0, #0 + beq _08044626 + adds r1, r4, #0 + adds r1, #0x45 + movs r0, #0xff + strb r0, [r1] +_08044626: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08044680 + movs r0, #0x3f + ands r0, r1 + cmp r0, #0 + bne _0804464A + ldrb r0, [r4, #0xc] + cmp r0, #6 + bne _0804464A + movs r0, #2 + rsbs r0, r0, #0 + bl sub_080526A0 +_0804464A: + adds r2, r4, #0 + adds r2, #0x45 + ldrb r0, [r2] + cmp r0, #0xfc + bhi _08044680 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #0xff + strb r0, [r2] + adds r1, r5, #0 + adds r1, #0x80 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080A29BC + ldr r0, _08044688 @ =0x000001C3 + bl sub_080A3268 +_08044680: + pop {r4, r5, pc} + .align 2, 0 +_08044684: .4byte gUnk_080D1604 +_08044688: .4byte 0x000001C3 + + thumb_func_start sub_0804468C +sub_0804468C: @ 0x0804468C + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r0, #0x38 + movs r6, #0 + movs r5, #3 + strb r5, [r0] + ldrb r1, [r4, #0x19] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x84 + strb r6, [r0] + ldrb r3, [r4, #0xa] + cmp r3, #0 + beq _080446C8 + cmp r3, #1 + beq _08044728 + b _0804474A +_080446C8: + movs r0, #1 + strb r0, [r4, #0xc] + strb r0, [r4, #0xe] + adds r2, r4, #0 + adds r2, #0x79 + ldrb r0, [r2] + lsls r0, r0, #3 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + adds r0, #0x78 + strb r3, [r0] + adds r0, #0xb + strb r3, [r0] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + ldrb r0, [r2] + adds r1, r5, #0 + ands r1, r0 + lsls r1, r1, #1 + ldr r0, _08044724 @ =gUnk_080D1620 + adds r1, r1, r0 + ldr r0, [r4, #0x50] + movs r2, #0 + ldrsb r2, [r1, r2] + lsls r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r1, r3] + subs r3, #0x10 + lsls r3, r3, #0x10 + adds r1, r4, #0 + bl sub_0806FA48 + ldr r0, [r4, #0x50] + ldrh r0, [r0, #0x36] + strh r0, [r4, #0x36] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + b _0804474A + .align 2, 0 +_08044724: .4byte gUnk_080D1620 +_08044728: + strb r5, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x74 + strb r6, [r0] + adds r0, #0xf + movs r2, #1 + strb r3, [r0] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC +_0804474A: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0804474C +sub_0804474C: @ 0x0804474C + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldrb r2, [r0, #0xc] + cmp r2, #3 + beq _0804476C + cmp r2, #3 + bgt _08044762 + cmp r2, #2 + beq _0804479A + b _080447A8 +_08044762: + cmp r2, #5 + beq _0804477A + cmp r2, #6 + beq _0804478A + b _080447A8 +_0804476C: + movs r1, #0 + strb r2, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x74 + strb r1, [r0] + strb r1, [r4, #0xe] + b _080447A8 +_0804477A: + movs r0, #0 + strb r2, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x74 + strb r0, [r1] + movs r0, #1 + strb r0, [r4, #0xf] + b _080447A8 +_0804478A: + movs r0, #0 + strb r2, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x74 + strb r0, [r1] + movs r0, #0x20 + strb r0, [r4, #0xf] + b _080447A8 +_0804479A: + movs r1, #0 + strb r2, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x74 + strb r1, [r0] + subs r0, #0x35 + strb r1, [r0] +_080447A8: + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _080447B6 + adds r0, r4, #0 + bl sub_080042B8 + b _080447DC +_080447B6: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080447D0 + movs r0, #2 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0x15] + adds r0, #1 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] +_080447D0: + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_080042B8 +_080447DC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080447E0 +sub_080447E0: @ 0x080447E0 + push {r4, lr} + adds r4, r0, #0 + ldr r3, [r4, #0x50] + ldrb r0, [r3, #0xc] + cmp r0, #1 + bne _08044818 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x2b + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0 + bl sub_08044E74 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08044864 + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r4, #0x18] + b _08044864 +_08044818: + adds r1, r4, #0 + adds r1, #0x77 + ldrb r0, [r1] + adds r2, r0, #1 + movs r0, #7 + ands r2, r0 + strb r2, [r1] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08044852 + movs r0, #1 + ands r0, r2 + cmp r0, #0 + beq _08044848 + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r4, #0x18] + b _08044852 +_08044848: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_08044852: + adds r0, r3, #0 + adds r0, #0x74 + ldrb r0, [r0] + cmp r0, #2 + bne _08044864 + adds r0, r4, #0 + movs r1, #2 + bl sub_08044E74 +_08044864: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08044868 +sub_08044868: @ 0x08044868 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + adds r0, r5, #0 + adds r0, #0x74 + ldrb r0, [r0] + cmp r0, #3 + bne _0804487E + b _080449C8 +_0804487E: + cmp r0, #3 + bgt _0804488E + cmp r0, #1 + beq _08044948 + cmp r0, #2 + bne _0804488C + b _080449AE +_0804488C: + b _080449EA +_0804488E: + cmp r0, #0xfe + beq _08044898 + cmp r0, #0xff + beq _080448B6 + b _080449EA +_08044898: + adds r0, r4, #0 + adds r0, #0x83 + ldrb r0, [r0] + cmp r0, #0 + bne _080448A4 + b _080449EA +_080448A4: + adds r0, r4, #0 + adds r0, #0x74 + ldrb r0, [r0] + cmp r0, #2 + beq _080448B0 + b _080449EA +_080448B0: + bl sub_0805E780 + b _080449EA +_080448B6: + adds r0, r4, #0 + adds r0, #0x83 + ldrb r0, [r0] + cmp r0, #0 + bne _080448C2 + b _080449EA +_080448C2: + adds r6, r4, #0 + adds r6, #0x74 + ldrb r0, [r6] + cmp r0, #0 + beq _080448D2 + cmp r0, #1 + beq _08044900 + b _080449EA +_080448D2: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080448E2 + b _080449EA +_080448E2: + movs r0, #1 + strb r0, [r6] + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r0, #0x32 + ldrsh r2, [r5, r0] + subs r2, #0x10 + adds r0, r4, #0 + bl sub_080045B4 + strb r0, [r4, #0x15] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + b _080449EA +_08044900: + adds r0, r4, #0 + bl sub_0806F69C + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r0, #0x32 + ldrsh r2, [r5, r0] + subs r2, #0x10 + adds r0, r4, #0 + movs r3, #0xc + bl sub_0806FCB8 + cmp r0, #0 + beq _08044934 + ldrb r0, [r6] + adds r0, #1 + strb r0, [r6] + ldrh r0, [r5, #0x2e] + strh r0, [r4, #0x2e] + ldrh r0, [r5, #0x32] + subs r0, #0x10 + strh r0, [r4, #0x32] + ldrb r0, [r5, #0xe] + adds r0, #1 + strb r0, [r5, #0xe] + b _080449EA +_08044934: + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r0, #0x32 + ldrsh r2, [r5, r0] + subs r2, #0x10 + adds r0, r4, #0 + bl sub_080045B4 + strb r0, [r4, #0x15] + b _080449EA +_08044948: + adds r1, r4, #0 + adds r1, #0x83 + ldrb r0, [r1] + cmp r0, #0 + bne _08044964 + adds r0, #1 + strb r0, [r1] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] +_08044964: + adds r0, r4, #0 + bl sub_08044DEC + adds r0, r5, #0 + adds r0, #0x86 + ldrb r0, [r0] + cmp r0, #1 + bls _080449A8 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + lsrs r6, r0, #0x1e + cmp r6, #1 + bne _080449A8 + movs r0, #0x84 + adds r0, r0, r4 + mov r8, r0 + ldrb r7, [r0] + cmp r7, #0 + bne _080449A8 + adds r0, r4, #0 + movs r1, #0x18 + movs r2, #0 + bl sub_0804A98C + adds r5, r0, #0 + cmp r5, #0 + beq _080449A8 + strb r6, [r5, #0xb] + str r4, [r5, #0x50] + mov r0, r8 + strb r6, [r0] + adds r0, r4, #0 + adds r0, #0x3f + strb r7, [r0] +_080449A8: + movs r0, #0x20 + strb r0, [r4, #0xe] + b _080449EA +_080449AE: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080449EA + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x10 + bhi _080449EA + adds r0, r4, #0 + bl sub_0806F69C + b _080449EA +_080449C8: + adds r0, r4, #0 + movs r1, #1 + bl sub_08044E74 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _080449E2 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + b _080449E8 +_080449E2: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 +_080449E8: + strb r0, [r4, #0x10] +_080449EA: + adds r0, r4, #0 + bl sub_080042B8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_080449F8 +sub_080449F8: @ 0x080449F8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r4, [r5, #0x50] + bl sub_080042B8 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _08044A90 + adds r6, r4, #0 + adds r6, #0x74 + ldrb r0, [r6] + cmp r0, #1 + beq _08044A6A + cmp r0, #1 + bgt _08044A1C + cmp r0, #0 + beq _08044A26 + b _08044B02 +_08044A1C: + cmp r0, #2 + beq _08044AC6 + cmp r0, #3 + beq _08044AF8 + b _08044B02 +_08044A26: + adds r0, r5, #0 + bl sub_0806F69C + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08044B02 + adds r1, r5, #0 + adds r1, #0x78 + ldrb r0, [r1] + cmp r0, #0 + bne _08044A4C + adds r0, #1 + strb r0, [r1] + movs r0, #0xa0 + lsls r0, r0, #2 + strh r0, [r5, #0x24] +_08044A4C: + movs r0, #4 + strb r0, [r5, #0xe] + ldrb r0, [r5, #0x15] + adds r0, #1 + movs r1, #0x1f + ands r0, r1 + strb r0, [r5, #0x15] + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + bne _08044B02 + movs r0, #1 + strb r0, [r6] + b _08044B02 +_08044A6A: + ldrb r0, [r5, #0xe] + cmp r0, #2 + beq _08044A84 + cmp r0, #2 + bgt _08044A7A + cmp r0, #1 + beq _08044A9A + b _08044B02 +_08044A7A: + cmp r0, #3 + beq _08044ABA + cmp r0, #4 + beq _08044AB4 + b _08044B02 +_08044A84: + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + bne _08044B02 + strb r0, [r5, #0xf] +_08044A90: + adds r0, r5, #0 + movs r1, #0 + bl sub_08044E74 + b _08044B02 +_08044A9A: + ldrb r0, [r5, #0x15] + adds r0, #0x10 + movs r4, #0x1f + ands r0, r4 + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_0806F69C + ldrb r0, [r5, #0x15] + adds r0, #0x10 + ands r0, r4 + strb r0, [r5, #0x15] + b _08044AC0 +_08044AB4: + adds r0, r5, #0 + bl sub_0806F69C +_08044ABA: + adds r0, r5, #0 + bl sub_0806F69C +_08044AC0: + movs r0, #2 + strb r0, [r5, #0xe] + b _08044B02 +_08044AC6: + adds r1, r5, #0 + adds r1, #0x74 + ldrb r0, [r1] + cmp r0, #0 + bne _08044B02 + adds r0, #1 + strb r0, [r1] + ldrb r0, [r5, #0x18] + lsls r0, r0, #0x1e + cmp r0, #0 + beq _08044B02 + adds r0, r5, #0 + movs r1, #0x1c + movs r2, #0 + bl sub_0804A98C + adds r4, r0, #0 + cmp r4, #0 + beq _08044B02 + ldrh r0, [r4, #0x32] + adds r0, #4 + strh r0, [r4, #0x32] + str r5, [r4, #0x50] + str r4, [r5, #0x54] + b _08044B02 +_08044AF8: + ldrb r0, [r5, #0xf] + cmp r0, #0 + beq _08044B02 + movs r0, #0 + strb r0, [r5, #0xf] +_08044B02: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08044B04 +sub_08044B04: @ 0x08044B04 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + ldr r6, [r4, #0x50] + bl sub_080042B8 + ldrb r0, [r6, #0xc] + cmp r0, #1 + bne _08044B26 + adds r0, r4, #0 + movs r1, #0 + bl sub_08044E74 + movs r0, #0x20 + strb r0, [r4, #0xe] + b _08044DE6 +_08044B26: + adds r0, r6, #0 + adds r0, #0x74 + ldrb r5, [r0] + cmp r5, #1 + bne _08044B32 + b _08044D10 +_08044B32: + cmp r5, #1 + bgt _08044B3C + cmp r5, #0 + beq _08044B4A + b _08044DE6 +_08044B3C: + cmp r5, #2 + bne _08044B42 + b _08044DE6 +_08044B42: + cmp r5, #3 + bne _08044B48 + b _08044D6A +_08044B48: + b _08044DE6 +_08044B4A: + adds r0, r4, #0 + bl sub_0806F69C + adds r7, r4, #0 + adds r7, #0x74 + ldrb r0, [r7] + mov r8, r7 + cmp r0, #1 + beq _08044BF4 + cmp r0, #1 + bgt _08044B66 + cmp r0, #0 + beq _08044B72 + b _08044DE6 +_08044B66: + cmp r0, #2 + beq _08044C4C + cmp r0, #3 + bne _08044B70 + b _08044C9C +_08044B70: + b _08044DE6 +_08044B72: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08044B98 + adds r0, r4, #0 + adds r0, #0x78 + ldrb r0, [r0] + movs r1, #2 + cmp r0, #0 + beq _08044B8C + movs r1, #4 +_08044B8C: + strb r1, [r4, #0xe] + ldrb r0, [r4, #0x15] + adds r0, #1 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] +_08044B98: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + movs r2, #0xff + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + beq _08044BAA + b _08044DE6 +_08044BAA: + ldrb r0, [r4, #0xe] + cmp r0, #2 + beq _08044BB6 + movs r0, #1 + strb r0, [r4, #0xf] + b _08044DE6 +_08044BB6: + adds r1, r4, #0 + adds r1, #0x78 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ands r0, r2 + cmp r0, #2 + bls _08044BDA + mov r2, r8 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + movs r0, #1 + strb r0, [r1] + movs r0, #4 + strb r0, [r4, #0xe] + strb r3, [r4, #0xf] + b _08044BDE +_08044BDA: + movs r0, #0x20 + strb r0, [r4, #0xf] +_08044BDE: + ldrb r0, [r1] + movs r2, #0xa0 + lsls r2, r2, #3 + adds r1, r2, #0 + cmp r0, #0 + beq _08044BF0 + movs r0, #0xa0 + lsls r0, r0, #2 + adds r1, r0, #0 +_08044BF0: + strh r1, [r4, #0x24] + b _08044DE6 +_08044BF4: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08044C04 + b _08044DE6 +_08044C04: + movs r0, #6 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0x15] + adds r0, #1 + movs r2, #0x1f + mov r8, r2 + mov r2, r8 + ands r0, r2 + strb r0, [r4, #0x15] + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] + ands r0, r1 + cmp r0, #0x30 + beq _08044C24 + b _08044DE6 +_08044C24: + movs r0, #0x2e + ldrsh r1, [r6, r0] + movs r0, #0x32 + ldrsh r2, [r6, r0] + subs r2, #0x10 + adds r0, r4, #0 + bl sub_080045B4 + strh r5, [r4, #0x24] + adds r0, #0x10 + mov r1, r8 + ands r0, r1 + strb r0, [r4, #0x15] + movs r0, #0x10 + strb r0, [r4, #0xe] + strb r0, [r4, #0xf] + ldrb r0, [r7] + adds r0, #1 + strb r0, [r7] + b _08044DE6 +_08044C4C: + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _08044CA2 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #4 + beq _08044CAE + cmp r5, #4 + bgt _08044C6A + cmp r5, #0 + beq _08044C78 + b _08044DE6 +_08044C6A: + cmp r5, #0xc + beq _08044C70 + b _08044DE6 +_08044C70: + movs r0, #0xa0 + lsls r0, r0, #3 + strh r0, [r4, #0x24] + b _08044DE6 +_08044C78: + ldrb r0, [r7] + adds r0, #1 + strb r0, [r7] + movs r2, #0x2e + ldrsh r1, [r6, r2] + movs r0, #0x32 + ldrsh r2, [r6, r0] + subs r2, #0x10 + adds r0, r4, #0 + bl sub_080045B4 + strb r0, [r4, #0x15] + strh r5, [r4, #0x24] + movs r0, #4 + strb r0, [r4, #0xe] + movs r0, #0x10 + strb r0, [r4, #0xf] + b _08044DE6 +_08044C9C: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _08044CB6 +_08044CA2: + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08044CAE + b _08044DE6 +_08044CAE: + movs r0, #0xa0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + b _08044DE6 +_08044CB6: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08044CD2 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08044CD2 + movs r0, #0xa0 + lsls r0, r0, #3 + strh r0, [r4, #0x24] + ldr r0, _08044D0C @ =0x0000014F + bl sub_080A3268 +_08044CD2: + adds r0, r4, #0 + adds r0, #0x79 + ldrb r0, [r0] + cmp r0, #3 + bne _08044CF8 + movs r2, #0x2e + ldrsh r1, [r6, r2] + movs r0, #0x32 + ldrsh r2, [r6, r0] + subs r2, #0x10 + adds r0, r4, #0 + movs r3, #0xc + bl sub_0806FCB8 + cmp r0, #0 + beq _08044CF8 + ldrb r0, [r6, #0xe] + adds r0, #1 + strb r0, [r6, #0xe] +_08044CF8: + movs r2, #0x2e + ldrsh r1, [r6, r2] + movs r0, #0x32 + ldrsh r2, [r6, r0] + subs r2, #0x10 + adds r0, r4, #0 + bl sub_080045B4 + strb r0, [r4, #0x15] + b _08044DE6 + .align 2, 0 +_08044D0C: .4byte 0x0000014F +_08044D10: + adds r1, r4, #0 + adds r1, #0x74 + ldrb r0, [r1] + cmp r0, #1 + beq _08044D50 + cmp r0, #3 + bne _08044DE6 + strb r5, [r1] + movs r0, #0x50 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldr r3, _08044D4C @ =0xFFF00000 + adds r0, r6, #0 + adds r1, r4, #0 + movs r2, #0 + bl sub_0806FA48 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _08044DE6 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + b _08044DE6 + .align 2, 0 +_08044D4C: .4byte 0xFFF00000 +_08044D50: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _08044DE6 + strb r0, [r1] + movs r0, #0x20 + strb r0, [r4, #0xe] + movs r0, #4 + strb r0, [r4, #0xf] + b _08044DE6 +_08044D6A: + adds r5, r4, #0 + adds r5, #0x74 + ldrb r0, [r5] + cmp r0, #1 + beq _08044DA4 + cmp r0, #1 + bgt _08044D7E + cmp r0, #0 + beq _08044D84 + b _08044DE6 +_08044D7E: + cmp r0, #2 + beq _08044DBE + b _08044DE6 +_08044D84: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _08044DE6 + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08044DE6 + adds r0, r4, #0 + bl sub_08044DEC + movs r0, #1 + strb r0, [r5] + movs r0, #0x10 + strb r0, [r4, #0xe] + b _08044DE6 +_08044DA4: + adds r0, r4, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08044DE6 + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + b _08044DE6 +_08044DBE: + adds r0, r4, #0 + movs r1, #1 + bl sub_08044E74 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _08044DD8 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + b _08044DDE +_08044DD8: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 +_08044DDE: + strb r0, [r4, #0x10] + ldrb r0, [r6, #0xe] + adds r0, #1 + strb r0, [r6, #0xe] +_08044DE6: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08044DEC +sub_08044DEC: @ 0x08044DEC + push {lr} + mov ip, r0 + ldr r0, [r0, #0x50] + adds r0, #0x80 + mov r1, ip + adds r1, #0x79 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bls _08044E1A + mov r0, ip + ldrb r1, [r0, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + mov r1, ip + strb r0, [r1, #0x18] + adds r1, #0x45 + movs r0, #0xff + strb r0, [r1] + b _08044E26 +_08044E1A: + mov r2, ip + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x18] +_08044E26: + mov r0, ip + ldrb r1, [r0, #0x10] + movs r0, #0x7f + ands r0, r1 + movs r1, #0 + mov r2, ip + strb r0, [r2, #0x10] + mov r0, ip + adds r0, #0x78 + strb r1, [r0] + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r2, #0x24] + ldr r0, [r2, #0x50] + adds r1, r0, #0 + adds r1, #0x80 + ldrb r1, [r1] + subs r1, #1 + ldr r2, _08044E6C @ =gUnk_080D1628 + mov r3, ip + adds r3, #0x79 + lsls r1, r1, #2 + ldrb r3, [r3] + adds r1, r1, r3 + adds r1, r1, r2 + ldrb r1, [r1] + mov r2, ip + strb r1, [r2, #0x15] + ldr r3, _08044E70 @ =0xFFF00000 + mov r1, ip + movs r2, #0 + bl sub_0806FA48 + pop {pc} + .align 2, 0 +_08044E6C: .4byte gUnk_080D1628 +_08044E70: .4byte 0xFFF00000 + + thumb_func_start sub_08044E74 +sub_08044E74: @ 0x08044E74 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r2, r1, #0 + movs r0, #0 + movs r1, #1 + strb r1, [r5, #0xc] + adds r1, r5, #0 + adds r1, #0x74 + strb r0, [r1] + cmp r2, #1 + beq _08044ED4 + cmp r2, #1 + blo _08044EE4 + adds r6, r5, #0 + adds r6, #0x78 + cmp r2, #2 + bne _08044F3E + strb r2, [r5, #0xc] + ldrb r0, [r5, #0x15] + adds r0, #0x18 + movs r4, #0x1f + ands r0, r4 + strb r0, [r5, #0x15] + ldr r0, [r5, #0x50] + ldr r3, _08044ED0 @ =0xFFF00000 + adds r1, r5, #0 + movs r2, #0 + bl sub_0806FA48 + movs r0, #0xc0 + lsls r0, r0, #6 + strh r0, [r5, #0x24] + adds r0, r5, #0 + bl sub_0806F69C + ldrb r0, [r5, #0x15] + adds r0, #8 + ands r0, r4 + strb r0, [r5, #0x15] + movs r0, #0xa0 + lsls r0, r0, #3 + strh r0, [r5, #0x24] + adds r0, r5, #0 + bl sub_0806F69C + b _08044F3E + .align 2, 0 +_08044ED0: .4byte 0xFFF00000 +_08044ED4: + ldrb r0, [r5, #0x15] + adds r0, #8 + movs r1, #0x1f + ands r0, r1 + strb r0, [r5, #0x15] + adds r6, r5, #0 + adds r6, #0x78 + b _08044F3E +_08044EE4: + adds r0, r5, #0 + adds r0, #0x78 + ldrb r1, [r0] + adds r6, r0, #0 + cmp r1, #0 + beq _08044F32 + ldrb r0, [r5, #0xe] + cmp r0, #1 + beq _08044F18 + cmp r0, #1 + blt _08044F3E + cmp r0, #4 + bgt _08044F3E + cmp r0, #3 + blt _08044F3E + movs r4, #0xff +_08044F04: + adds r0, r5, #0 + bl sub_0806F69C + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + ands r0, r4 + cmp r0, #2 + bne _08044F04 + b _08044F3E +_08044F18: + ldrb r0, [r5, #0x15] + adds r0, #0x10 + movs r4, #0x1f + ands r0, r4 + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_0806F69C + ldrb r0, [r5, #0x15] + adds r0, #0x10 + ands r0, r4 + strb r0, [r5, #0x15] + b _08044F3E +_08044F32: + ldrb r0, [r5, #0xe] + cmp r0, #2 + bne _08044F3E + adds r0, r5, #0 + bl sub_0806F69C +_08044F3E: + movs r0, #0 + movs r1, #1 + strb r1, [r5, #0xe] + strb r0, [r6] + movs r0, #0xa0 + lsls r0, r0, #3 + strh r0, [r5, #0x24] + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08044F50 +sub_08044F50: @ 0x08044F50 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08044F6C @ =gUnk_080D16A4 + bl sub_0800129E + movs r3, #0xc + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, pc} + .align 2, 0 +_08044F6C: .4byte gUnk_080D16A4 + + thumb_func_start sub_08044F70 +sub_08044F70: @ 0x08044F70 + push {lr} + ldr r2, _08044F84 @ =gUnk_080D16BC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08044F84: .4byte gUnk_080D16BC + + thumb_func_start sub_08044F88 +sub_08044F88: @ 0x08044F88 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x45 + ldrb r1, [r0] + cmp r1, #0 + beq _08044FA2 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, r1 + beq _08044FA2 + movs r0, #4 + strb r0, [r4, #0xc] + b _08044FAA +_08044FA2: + ldr r1, _08044FC0 @ =gUnk_080D16A4 + adds r0, r4, #0 + bl sub_0804AA30 +_08044FAA: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _08044FBC + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08044FBC: + pop {r4, pc} + .align 2, 0 +_08044FC0: .4byte gUnk_080D16A4 + + thumb_func_start nullsub_171 +nullsub_171: @ 0x08044FC4 + bx lr + .align 2, 0 + + thumb_func_start sub_08044FC8 +sub_08044FC8: @ 0x08044FC8 + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + movs r0, #0x80 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_0804A720 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08044FF8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08044FF8 +sub_08044FF8: @ 0x08044FF8 + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x1e + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + adds r4, #0x84 + strb r0, [r4] + pop {r4, pc} + + thumb_func_start sub_08045018 +sub_08045018: @ 0x08045018 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_08004274 + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08045086 + movs r4, #3 + strb r4, [r5, #0xc] + movs r0, #1 + strb r0, [r5, #0xe] + movs r1, #0x24 + ldrsh r0, [r5, r1] + cmp r0, #0 + ble _0804504C + movs r0, #0x80 + lsls r0, r0, #5 + movs r2, #0x24 + ldrsh r1, [r5, r2] + bl sub_0806FA04 + lsrs r0, r0, #8 + strb r0, [r5, #0xe] +_0804504C: + adds r0, r5, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _0804507C + bl sub_08000E50 + ands r0, r4 + cmp r0, #0 + beq _0804507C + adds r0, r5, #0 + bl sub_08049EE4 + adds r4, r0, #0 + bl sub_08000E50 + movs r1, #8 + ands r0, r1 + adds r0, #0xfc + adds r4, r4, r0 + movs r0, #0x18 + ands r4, r0 + strb r4, [r5, #0x15] + b _08045086 +_0804507C: + bl sub_08000E50 + movs r1, #0x18 + ands r0, r1 + strb r0, [r5, #0x15] +_08045086: + pop {r4, r5, pc} + + thumb_func_start sub_08045088 +sub_08045088: @ 0x08045088 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080450A6 + movs r0, #1 + strb r0, [r4, #0xc] +_080450A6: + pop {r4, pc} + + thumb_func_start sub_080450A8 +sub_080450A8: @ 0x080450A8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x10 + mov r8, r0 + ldr r1, _0804516C @ =gUnk_080D16D0 + ldrb r0, [r0, #0xa] + adds r0, r0, r1 + ldrb r7, [r0] + movs r0, #0x48 + subs r0, r0, r7 + ldr r1, _08045170 @ =gUnk_03003DBC + ldrb r1, [r1] + cmp r0, r1 + ble _08045160 + cmp r7, #0 + beq _080450E2 + mov r4, sp + adds r5, r7, #0 +_080450D0: + mov r0, r8 + ldrb r1, [r0, #0xa] + movs r0, #0x57 + bl sub_0804AA60 + stm r4!, {r0} + subs r5, #1 + cmp r5, #0 + bne _080450D0 +_080450E2: + ldr r2, _08045174 @ =gUnk_080D16D4 + mov sb, r2 + movs r5, #0 + cmp r5, r7 + bge _08045142 +_080450EC: + lsls r0, r5, #2 + add r0, sp + ldr r6, [r0] + adds r4, r5, #1 + adds r0, r4, #0 + adds r1, r7, #0 + bl __modsi3 + lsls r0, r0, #2 + add r0, sp + ldr r0, [r0] + str r0, [r6, #0x54] + adds r0, r5, r7 + subs r0, #1 + adds r1, r7, #0 + bl __modsi3 + lsls r0, r0, #2 + add r0, sp + ldr r0, [r0] + str r0, [r6, #0x50] + movs r1, #0 + movs r0, #1 + strb r0, [r6, #0xb] + strh r1, [r6, #0x36] + adds r1, r6, #0 + adds r1, #0x3d + movs r0, #0xf0 + strb r0, [r1] + mov r0, sb + movs r2, #0 + ldrsb r2, [r0, r2] + movs r3, #1 + ldrsb r3, [r0, r3] + mov r0, r8 + adds r1, r6, #0 + bl sub_08045178 + movs r2, #2 + add sb, r2 + adds r5, r4, #0 + cmp r5, r7 + blt _080450EC +_08045142: + mov r0, r8 + movs r1, #2 + movs r2, #0 + bl sub_080A29AC + adds r6, r0, #0 + cmp r6, #0 + beq _0804515A + mov r0, r8 + adds r1, r6, #0 + bl sub_0806FA24 +_0804515A: + mov r0, r8 + bl sub_0805E7BC +_08045160: + add sp, #0x10 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0804516C: .4byte gUnk_080D16D0 +_08045170: .4byte gUnk_03003DBC +_08045174: .4byte gUnk_080D16D4 + + thumb_func_start sub_08045178 +sub_08045178: @ 0x08045178 + push {r4, r5, r6, lr} + adds r4, r1, #0 + adds r5, r2, #0 + adds r6, r3, #0 + cmp r4, #0 + beq _080451C6 + bl sub_0804A4E4 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + bl sub_080002CC + cmp r0, #0 + bne _080451C6 + movs r1, #0x2e + ldrsh r0, [r4, r1] + adds r2, r0, r5 + cmp r2, #0 + blt _080451AE + ldr r0, _080451C8 @ =gUnk_03000BF0 + ldrh r1, [r0, #6] + ldrh r0, [r0, #0x1e] + adds r1, r1, r0 + cmp r2, r1 + bge _080451AE + strh r2, [r4, #0x2e] +_080451AE: + movs r1, #0x32 + ldrsh r0, [r4, r1] + adds r2, r0, r6 + cmp r2, #0 + blt _080451C6 + ldr r0, _080451C8 @ =gUnk_03000BF0 + ldrh r1, [r0, #8] + ldrh r0, [r0, #0x20] + adds r1, r1, r0 + cmp r2, r1 + bge _080451C6 + strh r2, [r4, #0x32] +_080451C6: + pop {r4, r5, r6, pc} + .align 2, 0 +_080451C8: .4byte gUnk_03000BF0 + + thumb_func_start sub_080451CC +sub_080451CC: @ 0x080451CC + ldrb r3, [r0, #0x10] + movs r2, #0xfe + ands r2, r3 + strb r2, [r1, #0x10] + ldr r2, [r0, #0x2c] + str r2, [r1, #0x2c] + ldr r2, [r0, #0x30] + str r2, [r1, #0x30] + ldr r2, [r0, #0x34] + str r2, [r1, #0x34] + adds r0, #0x68 + adds r1, #0x68 + ldrb r2, [r0, #4] + strb r2, [r1, #4] + ldrb r2, [r0, #5] + strb r2, [r1, #5] + ldrb r2, [r0, #6] + strb r2, [r1, #6] + ldrb r2, [r0, #7] + strb r2, [r1, #7] + ldrh r2, [r0, #8] + strh r2, [r1, #8] + ldrh r0, [r0, #0xa] + strh r0, [r1, #0xa] + bx lr + .align 2, 0 + + thumb_func_start sub_08045200 +sub_08045200: @ 0x08045200 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0804521C @ =gUnk_080D17C0 + bl sub_0800129E + movs r3, #8 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, pc} + .align 2, 0 +_0804521C: .4byte gUnk_080D17C0 + + thumb_func_start sub_08045220 +sub_08045220: @ 0x08045220 + push {lr} + ldr r2, _08045234 @ =gUnk_080D17D8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08045234: .4byte gUnk_080D17D8 + + thumb_func_start sub_08045238 +sub_08045238: @ 0x08045238 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0804524C + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0804524C: + ldr r1, _08045258 @ =gUnk_080D17C0 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_08045258: .4byte gUnk_080D17C0 + + thumb_func_start sub_0804525C +sub_0804525C: @ 0x0804525C + push {r4, lr} + adds r4, r0, #0 + ldr r3, [r4, #0x50] + cmp r4, r3 + beq _08045298 + cmp r3, #0 + beq _08045298 + adds r2, r4, #0 + adds r2, #0x6c + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + ldr r1, [r4, #0x50] + ldr r0, [r4, #0x54] + str r0, [r1, #0x54] + ldr r1, [r4, #0x54] + ldr r0, [r4, #0x50] + str r0, [r1, #0x50] + adds r0, r4, #0 + adds r0, #0x6d + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08045298 + adds r0, r4, #0 + adds r1, r3, #0 + bl sub_08058800 +_08045298: + adds r0, r4, #0 + bl sub_0804A7D4 + pop {r4, pc} + + thumb_func_start nullsub_22 +nullsub_22: @ 0x080452A0 + bx lr + .align 2, 0 + + thumb_func_start sub_080452A4 +sub_080452A4: @ 0x080452A4 + push {r4, r5, lr} + adds r4, r0, #0 + movs r2, #1 + movs r5, #1 + strb r5, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_0804A720 + adds r0, r4, #0 + movs r1, #6 + bl sub_08004260 + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _080452DC + movs r0, #2 + strb r0, [r4, #0xc] + strb r5, [r4, #0xe] + b _080452E2 +_080452DC: + adds r0, r4, #0 + bl sub_080452E4 +_080452E2: + pop {r4, r5, pc} + + thumb_func_start sub_080452E4 +sub_080452E4: @ 0x080452E4 + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #1 + strb r0, [r4, #0xe] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080452FC +sub_080452FC: @ 0x080452FC + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_08004274 + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08045370 + movs r4, #3 + strb r4, [r5, #0xc] + movs r0, #1 + strb r0, [r5, #0xe] + movs r1, #0x24 + ldrsh r0, [r5, r1] + cmp r0, #0 + ble _08045330 + movs r0, #0x80 + lsls r0, r0, #5 + movs r2, #0x24 + ldrsh r1, [r5, r2] + bl sub_0806FA04 + lsrs r0, r0, #8 + strb r0, [r5, #0xe] +_08045330: + adds r0, r5, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _08045360 + bl sub_08000E50 + ands r0, r4 + cmp r0, #0 + beq _08045360 + adds r0, r5, #0 + bl sub_08049EE4 + adds r4, r0, #0 + bl sub_08000E50 + movs r1, #8 + ands r0, r1 + adds r0, #0xfc + adds r4, r4, r0 + movs r0, #0x18 + ands r4, r0 + strb r4, [r5, #0x15] + b _08045370 +_08045360: + bl sub_08000E50 + movs r1, #0x18 + ands r0, r1 + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_08045374 +_08045370: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08045374 +sub_08045374: @ 0x08045374 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08045392 + movs r0, #1 + strb r0, [r4, #0xc] +_08045392: + pop {r4, pc} + + thumb_func_start sub_08045394 +sub_08045394: @ 0x08045394 + push {lr} + ldr r1, _080453A0 @ =gUnk_080D17E8 + bl sub_0800129E + pop {pc} + .align 2, 0 +_080453A0: .4byte gUnk_080D17E8 + + thumb_func_start sub_080453A4 +sub_080453A4: @ 0x080453A4 + push {lr} + ldr r2, _080453B8 @ =gUnk_080D1800 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080453B8: .4byte gUnk_080D1800 + + thumb_func_start sub_080453BC +sub_080453BC: @ 0x080453BC + push {lr} + adds r2, r0, #0 + adds r0, #0x45 + ldrb r1, [r0] + cmp r1, #0 + beq _080453D6 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, r1 + beq _080453D6 + movs r0, #2 + strb r0, [r2, #0xc] + b _080453DE +_080453D6: + ldr r1, _080453E0 @ =gUnk_080D17E8 + adds r0, r2, #0 + bl sub_0804AA30 +_080453DE: + pop {pc} + .align 2, 0 +_080453E0: .4byte gUnk_080D17E8 + + thumb_func_start nullsub_172 +nullsub_172: @ 0x080453E4 + bx lr + .align 2, 0 + + thumb_func_start sub_080453E8 +sub_080453E8: @ 0x080453E8 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + movs r0, #0x80 + strh r0, [r4, #0x24] + adds r0, r4, #0 + adds r0, #0x45 + ldrb r1, [r0] + adds r0, #0x3f + strb r1, [r0] + adds r2, r4, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0x10 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_0804A720 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08045524 + pop {r4, pc} + + thumb_func_start sub_08045430 +sub_08045430: @ 0x08045430 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEFE0 + adds r0, r4, #0 + bl sub_08004274 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08045452 + adds r0, r4, #0 + bl sub_08045524 +_08045452: + pop {r4, pc} + + thumb_func_start sub_08045454 +sub_08045454: @ 0x08045454 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x10 + mov r8, r0 + ldr r1, _08045518 @ =gUnk_080D180C + ldrb r0, [r0, #0xa] + adds r0, r0, r1 + ldrb r7, [r0] + movs r0, #0x48 + subs r0, r0, r7 + ldr r1, _0804551C @ =gUnk_03003DBC + ldrb r1, [r1] + cmp r0, r1 + ble _0804550C + cmp r7, #0 + beq _0804548E + mov r4, sp + adds r5, r7, #0 +_0804547C: + mov r0, r8 + ldrb r1, [r0, #0xa] + movs r0, #0x59 + bl sub_0804AA60 + stm r4!, {r0} + subs r5, #1 + cmp r5, #0 + bne _0804547C +_0804548E: + ldr r2, _08045520 @ =gUnk_080D1810 + mov sb, r2 + movs r5, #0 + cmp r5, r7 + bge _080454EE +_08045498: + lsls r0, r5, #2 + add r0, sp + ldr r6, [r0] + adds r4, r5, #1 + adds r0, r4, #0 + adds r1, r7, #0 + bl __modsi3 + lsls r0, r0, #2 + add r0, sp + ldr r0, [r0] + str r0, [r6, #0x54] + adds r0, r5, r7 + subs r0, #1 + adds r1, r7, #0 + bl __modsi3 + lsls r0, r0, #2 + add r0, sp + ldr r0, [r0] + str r0, [r6, #0x50] + movs r1, #0 + movs r0, #1 + strb r0, [r6, #0xb] + strh r1, [r6, #0x36] + adds r1, r6, #0 + adds r1, #0x3d + movs r0, #0xf0 + strb r0, [r1] + mov r0, sb + movs r2, #0 + ldrsb r2, [r0, r2] + movs r3, #1 + ldrsb r3, [r0, r3] + mov r0, r8 + adds r1, r6, #0 + bl sub_08045178 + movs r2, #2 + add sb, r2 + adds r5, r4, #0 + cmp r5, r7 + blt _08045498 +_080454EE: + mov r0, r8 + movs r1, #2 + movs r2, #0 + bl sub_080A29AC + adds r6, r0, #0 + cmp r6, #0 + beq _08045506 + mov r0, r8 + adds r1, r6, #0 + bl sub_0806FA24 +_08045506: + mov r0, r8 + bl sub_0805E7BC +_0804550C: + add sp, #0x10 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08045518: .4byte gUnk_080D180C +_0804551C: .4byte gUnk_03003DBC +_08045520: .4byte gUnk_080D1810 + + thumb_func_start sub_08045524 +sub_08045524: @ 0x08045524 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0xe0 + lsls r0, r0, #9 + str r0, [r5, #0x20] + adds r0, r5, #0 + movs r1, #1 + movs r2, #8 + bl sub_0804A024 + adds r4, r0, #0 + cmp r4, #0xff + beq _08045556 + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + cmp r1, #0 + bne _08045556 + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + strb r0, [r5, #0xe] + b _08045596 +_08045556: + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _08045562 + subs r0, #1 + strb r0, [r5, #0xe] + b _080455A8 +_08045562: + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + strb r0, [r5, #0xe] + adds r0, r5, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _0804559E + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + cmp r1, #0 + beq _0804559E + adds r0, r5, #0 + bl sub_08049EE4 + adds r4, r0, #0 + bl sub_08000E50 + movs r1, #8 + ands r0, r1 + adds r0, #0xfc + adds r4, r4, r0 +_08045596: + movs r0, #0x18 + ands r4, r0 + strb r4, [r5, #0x15] + b _080455A8 +_0804559E: + bl sub_08000E50 + movs r1, #0x18 + ands r0, r1 + strb r0, [r5, #0x15] +_080455A8: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080455AC +sub_080455AC: @ 0x080455AC + push {lr} + ldr r1, _080455B8 @ =gUnk_080D1868 + bl sub_0800129E + pop {pc} + .align 2, 0 +_080455B8: .4byte gUnk_080D1868 + + thumb_func_start sub_080455BC +sub_080455BC: @ 0x080455BC + push {lr} + ldr r2, _080455D0 @ =gUnk_080D1880 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080455D0: .4byte gUnk_080D1880 + + thumb_func_start sub_080455D4 +sub_080455D4: @ 0x080455D4 + push {lr} + ldr r1, _080455E0 @ =gUnk_080D1868 + bl sub_0804AA30 + pop {pc} + .align 2, 0 +_080455E0: .4byte gUnk_080D1868 + + thumb_func_start sub_080455E4 +sub_080455E4: @ 0x080455E4 + push {lr} + adds r3, r0, #0 + ldr r0, [r3, #0x50] + cmp r3, r0 + beq _0804560A + cmp r0, #0 + beq _0804560A + adds r2, r3, #0 + adds r2, #0x6c + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + ldr r1, [r3, #0x50] + ldr r0, [r3, #0x54] + str r0, [r1, #0x54] + ldr r1, [r3, #0x54] + ldr r0, [r3, #0x50] + str r0, [r1, #0x50] +_0804560A: + adds r0, r3, #0 + bl sub_0804A7D4 + pop {pc} + .align 2, 0 + + thumb_func_start nullsub_23 +nullsub_23: @ 0x08045614 + bx lr + .align 2, 0 + + thumb_func_start sub_08045618 +sub_08045618: @ 0x08045618 + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + movs r0, #0x80 + strh r0, [r4, #0x24] + adds r2, r4, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0x10 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_0804A720 + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08045678 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08045654 +sub_08045654: @ 0x08045654 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEFE0 + adds r0, r4, #0 + bl sub_08004274 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08045676 + adds r0, r4, #0 + bl sub_08045678 +_08045676: + pop {r4, pc} + + thumb_func_start sub_08045678 +sub_08045678: @ 0x08045678 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0xe0 + lsls r0, r0, #9 + str r0, [r5, #0x20] + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _0804568E + subs r0, #1 + strb r0, [r5, #0xe] + b _080456D4 +_0804568E: + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + strb r0, [r5, #0xe] + adds r0, r5, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _080456CA + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + cmp r1, #0 + beq _080456CA + adds r0, r5, #0 + bl sub_08049EE4 + adds r4, r0, #0 + bl sub_08000E50 + movs r1, #8 + ands r0, r1 + adds r0, #0xfc + adds r4, r4, r0 + movs r0, #0x18 + ands r4, r0 + strb r4, [r5, #0x15] + b _080456D4 +_080456CA: + bl sub_08000E50 + movs r1, #0x18 + ands r0, r1 + strb r0, [r5, #0x15] +_080456D4: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080456D8 +sub_080456D8: @ 0x080456D8 + push {lr} + ldr r1, _080456E4 @ =gUnk_080D1888 + bl sub_0800129E + pop {pc} + .align 2, 0 +_080456E4: .4byte gUnk_080D1888 + + thumb_func_start sub_080456E8 +sub_080456E8: @ 0x080456E8 + push {lr} + ldr r2, _080456FC @ =gUnk_080D18A0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080456FC: .4byte gUnk_080D18A0 + + thumb_func_start sub_08045700 +sub_08045700: @ 0x08045700 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xa] + cmp r0, #0 + beq _080457D0 + ldr r0, [r5, #0x50] + ldr r3, [r0, #0x50] + adds r0, r5, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080457D0 + movs r0, #0x3f + ands r0, r1 + cmp r0, #0xe + beq _08045728 + cmp r0, #0x15 + bne _08045778 +_08045728: + adds r1, r5, #0 + adds r1, #0x81 + ldrb r0, [r1] + cmp r0, #0 + bne _0804575C + movs r0, #3 + strb r0, [r5, #0xc] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldrb r1, [r5, #0xa] + lsls r1, r1, #3 + ldrb r0, [r5, #0xe] + adds r0, #2 + orrs r1, r0 + adds r0, r5, #0 + bl sub_08004260 + ldr r0, [r5, #0x50] + ldrb r1, [r0, #0xa] + lsls r1, r1, #3 + ldrb r2, [r5, #0xe] + adds r2, #2 + orrs r1, r2 + bl sub_08004260 +_0804575C: + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _0804576C + movs r0, #0xbd + lsls r0, r0, #1 + bl sub_080A3268 + b _080457D0 +_0804576C: + ldr r0, _08045774 @ =0x00000119 + bl sub_080A3268 + b _080457D0 + .align 2, 0 +_08045774: .4byte 0x00000119 +_08045778: + adds r2, r5, #0 + adds r2, #0x45 + ldrb r1, [r2] + adds r0, r1, #0 + cmp r0, #0xff + beq _080457D0 + movs r0, #0xff + strb r0, [r2] + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _080457D0 + adds r0, r3, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + beq _080457D0 + adds r0, r3, #0 + adds r0, #0x76 + movs r1, #1 + ldrb r2, [r5, #0xb] + lsls r1, r2 + ldrb r2, [r0] + orrs r1, r2 + strb r1, [r0] + adds r1, r5, #0 + adds r1, #0x85 + ldrb r0, [r1] + cmp r0, #0 + bne _080457D0 + adds r0, #1 + strb r0, [r1] + ldrb r1, [r5, #0xa] + lsls r1, r1, #3 + movs r4, #6 + orrs r1, r4 + adds r0, r5, #0 + bl sub_08004260 + ldr r0, [r5, #0x50] + ldrb r1, [r0, #0xa] + lsls r1, r1, #3 + orrs r1, r4 + bl sub_08004260 +_080457D0: + ldr r1, _080457DC @ =gUnk_080D1888 + adds r0, r5, #0 + bl sub_0804AA30 + pop {r4, r5, pc} + .align 2, 0 +_080457DC: .4byte gUnk_080D1888 + + thumb_func_start nullsub_173 +nullsub_173: @ 0x080457E0 + bx lr + .align 2, 0 + + thumb_func_start sub_080457E4 +sub_080457E4: @ 0x080457E4 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08045850 @ =gUnk_02000050 + ldrb r0, [r0] + movs r2, #0x7f + ands r2, r0 + cmp r2, #0 + bne _08045868 + movs r3, #1 + strb r3, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x80 + strb r2, [r0] + adds r0, #1 + strb r2, [r0] + adds r0, #4 + strb r2, [r0] + strb r2, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x82 + movs r0, #0x30 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x83 + strb r2, [r0] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08045854 + adds r0, r4, #0 + bl sub_08045A00 + movs r0, #0x5a + movs r1, #1 + bl sub_0804AA60 + adds r1, r0, #0 + cmp r1, #0 + beq _0804585A + str r4, [r1, #0x50] + str r1, [r4, #0x54] + ldrb r0, [r4, #0xe] + strb r0, [r1, #0xe] + ldrb r0, [r4, #0xb] + strb r0, [r1, #0xb] + adds r0, r4, #0 + bl sub_0806FA24 + b _0804585A + .align 2, 0 +_08045850: .4byte gUnk_02000050 +_08045854: + adds r0, r4, #0 + adds r0, #0x63 + strb r3, [r0] +_0804585A: + ldrb r1, [r4, #0xa] + lsls r1, r1, #3 + movs r0, #1 + orrs r1, r0 + adds r0, r4, #0 + bl sub_08004260 +_08045868: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0804586C +sub_0804586C: @ 0x0804586C + push {r4, lr} + adds r4, r0, #0 + bl sub_08045A28 + adds r1, r4, #0 + adds r1, #0x82 + ldrb r0, [r1] + cmp r0, #0 + bne _080458AA + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080458C2 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _0804589A + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] +_0804589A: + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0xa] + lsls r1, r1, #3 + adds r0, r4, #0 + bl sub_08004260 + b _080458C2 +_080458AA: + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080458C2 + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r4, #0x18] +_080458C2: + pop {r4, pc} + + thumb_func_start sub_080458C4 +sub_080458C4: @ 0x080458C4 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_08045A28 + ldr r1, [r5, #0x50] + ldrb r2, [r5, #0xa] + cmp r2, #0 + beq _080458D6 + ldr r1, [r1, #0x50] +_080458D6: + ldrb r0, [r1, #0xc] + cmp r0, #3 + bne _08045934 + adds r0, r1, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #1 + bne _08045934 + movs r0, #0 + movs r4, #4 + strb r4, [r5, #0xc] + strb r0, [r5, #0xf] + cmp r2, #0 + beq _08045934 + ldrb r0, [r5, #0x10] + movs r1, #0x7f + ands r1, r0 + strb r1, [r5, #0x10] + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _0804591C + ldrb r1, [r5, #0xa] + lsls r1, r1, #3 + movs r4, #5 + orrs r1, r4 + adds r0, r5, #0 + bl sub_08004260 + ldr r0, [r5, #0x50] + ldrb r1, [r0, #0xa] + lsls r1, r1, #3 + orrs r1, r4 + bl sub_08004260 + b _08045934 +_0804591C: + ldrb r1, [r5, #0xa] + lsls r1, r1, #3 + orrs r1, r4 + adds r0, r5, #0 + bl sub_08004260 + ldr r0, [r5, #0x50] + ldrb r1, [r0, #0xa] + lsls r1, r1, #3 + orrs r1, r4 + bl sub_08004260 +_08045934: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08045938 +sub_08045938: @ 0x08045938 + push {r4, lr} + adds r4, r0, #0 + bl sub_08045A28 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08045980 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _08045980 + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _08045966 + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x32 + b _0804597E +_08045966: + ldr r0, [r4, #0x50] + ldr r2, [r0, #0x50] + adds r2, #0x76 + movs r0, #1 + ldrb r1, [r4, #0xb] + lsls r0, r1 + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x31 +_0804597E: + strb r0, [r1] +_08045980: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08045984 +sub_08045984: @ 0x08045984 + push {r4, lr} + adds r4, r0, #0 + bl sub_08045A28 + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _080459A6 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080459FE + movs r0, #0x20 + strb r0, [r4, #0xf] + b _080459FE +_080459A6: + ldr r2, [r4, #0x50] + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _080459B0 + ldr r2, [r2, #0x50] +_080459B0: + ldrb r0, [r2, #0x14] + cmp r0, #2 + bhi _080459FE + ldrb r0, [r2, #0xc] + cmp r0, #3 + beq _080459FE + movs r0, #0 + movs r3, #1 + strb r3, [r4, #0xc] + strb r0, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x81 + strb r0, [r1] + adds r1, #4 + strb r0, [r1] + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _080459DA + subs r1, #0x46 + movs r0, #0x33 + strb r0, [r1] +_080459DA: + adds r0, r2, #0 + adds r0, #0x75 + ldrb r0, [r0] + ldrb r1, [r4, #0xb] + asrs r0, r1 + ands r0, r3 + cmp r0, #0 + beq _080459EE + strb r3, [r4, #0xe] + b _080459F0 +_080459EE: + strb r0, [r4, #0xe] +_080459F0: + ldrb r1, [r4, #0xa] + lsls r1, r1, #3 + movs r0, #1 + orrs r1, r0 + adds r0, r4, #0 + bl sub_08004260 +_080459FE: + pop {r4, pc} + + thumb_func_start sub_08045A00 +sub_08045A00: @ 0x08045A00 + push {lr} + adds r1, r0, #0 + ldrb r3, [r1, #0xb] + lsls r3, r3, #1 + ldr r0, _08045A24 @ =gUnk_080D18B4 + adds r3, r3, r0 + ldr r0, [r1, #0x50] + movs r2, #0 + ldrsb r2, [r3, r2] + lsls r2, r2, #0x10 + ldrb r3, [r3, #1] + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + adds r3, #3 + lsls r3, r3, #0x10 + bl sub_0806FA48 + pop {pc} + .align 2, 0 +_08045A24: .4byte gUnk_080D18B4 + + thumb_func_start sub_08045A28 +sub_08045A28: @ 0x08045A28 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #0 + bne _08045A3E + adds r0, r5, #0 + bl sub_08004274 +_08045A3E: + adds r6, r5, #0 + adds r6, #0x5a + ldrb r0, [r6] + movs r1, #0x70 + mov r8, r1 + mov r4, r8 + ands r4, r0 + ldrb r7, [r5, #0xa] + cmp r7, #0 + bne _08045AF8 + adds r0, r5, #0 + bl sub_08045A00 + adds r1, r5, #0 + adds r1, #0x83 + ldrb r0, [r1] + adds r2, r1, #0 + cmp r0, #1 + beq _08045AA4 + cmp r0, #1 + bgt _08045A6E + cmp r0, #0 + beq _08045A78 + b _08045B7C +_08045A6E: + cmp r0, #2 + beq _08045ABC + cmp r0, #3 + beq _08045AE8 + b _08045B7C +_08045A78: + cmp r4, #0x20 + beq _08045A8C + cmp r4, #0x20 + bhi _08045A86 + cmp r4, #0 + beq _08045A96 + b _08045B7C +_08045A86: + cmp r4, #0x40 + beq _08045A96 + b _08045B7C +_08045A8C: + movs r0, #1 + strb r0, [r1] + movs r1, #0x9f + lsls r1, r1, #1 + b _08045B5A +_08045A96: + movs r0, #2 + strb r0, [r2] + ldr r1, _08045AA0 @ =0x0000013F + b _08045B5A + .align 2, 0 +_08045AA0: .4byte 0x0000013F +_08045AA4: + cmp r4, #0 + beq _08045AB0 + cmp r4, #0x10 + bne _08045B7C + strb r7, [r1] + b _08045B58 +_08045AB0: + movs r0, #2 + strb r0, [r1] + ldr r1, _08045AB8 @ =0x0000013F + b _08045B5A + .align 2, 0 +_08045AB8: .4byte 0x0000013F +_08045ABC: + cmp r4, #0x20 + beq _08045AD0 + cmp r4, #0x20 + bhi _08045ACA + cmp r4, #0x10 + beq _08045ADA + b _08045B7C +_08045ACA: + cmp r4, #0x40 + beq _08045ADE + b _08045B7C +_08045AD0: + movs r0, #1 + strb r0, [r1] + movs r1, #0x9f + lsls r1, r1, #1 + b _08045B5A +_08045ADA: + strb r7, [r1] + b _08045B58 +_08045ADE: + strb r0, [r1] + ldr r1, _08045AE4 @ =0x0000013F + b _08045B5A + .align 2, 0 +_08045AE4: .4byte 0x0000013F +_08045AE8: + cmp r4, #0 + bne _08045B7C + movs r0, #2 + strb r0, [r1] + ldr r1, _08045AF4 @ =0x0000013F + b _08045B5A + .align 2, 0 +_08045AF4: .4byte 0x0000013F +_08045AF8: + ldr r0, [r5, #0x50] + ldr r3, _08045B18 @ =0xFFFF0000 + adds r1, r5, #0 + movs r2, #0 + bl sub_0806FA48 + adds r2, r5, #0 + adds r2, #0x83 + ldrb r0, [r2] + cmp r0, #1 + beq _08045B3A + cmp r0, #1 + bgt _08045B1C + cmp r0, #0 + beq _08045B22 + b _08045B7C + .align 2, 0 +_08045B18: .4byte 0xFFFF0000 +_08045B1C: + cmp r0, #2 + beq _08045B68 + b _08045B7C +_08045B22: + ldrb r0, [r6] + mov r1, r8 + ands r1, r0 + cmp r1, #0x10 + beq _08045B54 + cmp r1, #0x20 + bne _08045B7C + movs r0, #1 + strb r0, [r2] + movs r1, #0x9f + lsls r1, r1, #1 + b _08045B5A +_08045B3A: + ldrb r0, [r6] + mov r1, r8 + ands r1, r0 + cmp r1, #0 + beq _08045B4A + cmp r1, #0x10 + beq _08045B54 + b _08045B7C +_08045B4A: + strb r1, [r2] + ldr r1, _08045B50 @ =0x0000013F + b _08045B5A + .align 2, 0 +_08045B50: .4byte 0x0000013F +_08045B54: + movs r0, #2 + strb r0, [r2] +_08045B58: + ldr r1, _08045B64 @ =0x0000013B +_08045B5A: + adds r0, r5, #0 + bl sub_0801D2B4 + b _08045B7C + .align 2, 0 +_08045B64: .4byte 0x0000013B +_08045B68: + ldrb r0, [r6] + mov r1, r8 + ands r1, r0 + cmp r1, #0 + bne _08045B7C + strb r1, [r2] + ldr r1, _08045B84 @ =0x0000013F + adds r0, r5, #0 + bl sub_0801D2B4 +_08045B7C: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08045B84: .4byte 0x0000013F + + thumb_func_start sub_08045B88 +sub_08045B88: @ 0x08045B88 + push {lr} + ldr r1, _08045B94 @ =gUnk_080D19FC + bl sub_0800129E + pop {pc} + .align 2, 0 +_08045B94: .4byte gUnk_080D19FC + + thumb_func_start sub_08045B98 +sub_08045B98: @ 0x08045B98 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldr r1, _08045BC4 @ =gUnk_080D1A14 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0800445C + pop {r4, pc} + .align 2, 0 +_08045BC4: .4byte gUnk_080D1A14 + + thumb_func_start sub_08045BC8 +sub_08045BC8: @ 0x08045BC8 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #1 + bne _08045C2C + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r2, #0x7f + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0x42 + bne _08045C2C + movs r1, #0 + movs r0, #4 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + movs r0, #0x28 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x10] + adds r0, r2, #0 + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #4 + bl sub_08046030 + adds r0, r4, #0 + movs r1, #3 + movs r2, #0 + bl sub_080A29AC + adds r1, r0, #0 + cmp r1, #0 + beq _08045C16 + ldrh r0, [r1, #0x36] + subs r0, #8 + strh r0, [r1, #0x36] +_08045C16: + ldr r0, _08045C30 @ =gUnk_03003F80 + adds r0, #0x27 + movs r1, #0xff + strb r1, [r0] + ldr r0, _08045C34 @ =0x000001BB + bl sub_08004488 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 +_08045C2C: + pop {r4, pc} + .align 2, 0 +_08045C30: .4byte gUnk_03003F80 +_08045C34: .4byte 0x000001BB + + thumb_func_start nullsub_174 +nullsub_174: @ 0x08045C38 + bx lr + .align 2, 0 + + thumb_func_start sub_08045C3C +sub_08045C3C: @ 0x08045C3C + push {r4, lr} + adds r4, r0, #0 + movs r0, #0 + strb r0, [r4, #0xf] + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x78 + movs r2, #0 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x7a + strh r0, [r1] + strb r2, [r4, #0x14] + movs r0, #0x10 + strb r0, [r4, #0x15] + movs r0, #5 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0xb1 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #0 + bl sub_08046030 + adds r0, r4, #0 + bl sub_08095C48 + ldr r1, _08045CA0 @ =gUnk_08015AC4 + adds r0, r4, #0 + bl sub_0807DAD0 + adds r0, r4, #0 + bl sub_0807DD50 + pop {r4, pc} + .align 2, 0 +_08045CA0: .4byte gUnk_08015AC4 + + thumb_func_start sub_08045CA4 +sub_08045CA4: @ 0x08045CA4 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xe] + adds r5, r0, #0 + cmp r5, #0 + beq _08045CC0 + subs r0, #1 + strb r0, [r4, #0xe] + b _08045CD8 +_08045CC0: + adds r0, r4, #0 + movs r1, #0 + bl sub_08045F54 + cmp r0, #0 + beq _08045CD8 + adds r0, r4, #0 + bl sub_08045FF0 + strb r5, [r4, #0xd] + movs r0, #1 + strb r0, [r4, #0xf] +_08045CD8: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start nullsub_24 +nullsub_24: @ 0x08045CDC + bx lr + .align 2, 0 + + thumb_func_start sub_08045CE0 +sub_08045CE0: @ 0x08045CE0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xd] + cmp r0, #4 + bls _08045CF0 + b _08045DF8 +_08045CF0: + lsls r0, r0, #2 + ldr r1, _08045CFC @ =_08045D00 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08045CFC: .4byte _08045D00 +_08045D00: @ jump table + .4byte _08045D14 @ case 0 + .4byte _08045D36 @ case 1 + .4byte _08045D60 @ case 2 + .4byte _08045D9A @ case 3 + .4byte _08045DBC @ case 4 +_08045D14: + movs r6, #1 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08045DF8 + strb r6, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + movs r0, #0x10 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_08045F98 + b _08045DB2 +_08045D36: + movs r6, #1 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _08045DF8 + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #0x20 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + adds r0, r4, #0 + bl sub_08045F98 + adds r0, r4, #0 + movs r1, #2 + bl sub_08046030 + b _08045DF8 +_08045D60: + movs r6, #1 + adds r0, r4, #0 + bl sub_0804604C + adds r5, r4, #0 + adds r5, #0x5a + ldrb r1, [r5] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _08045DF8 + adds r0, r4, #0 + movs r1, #4 + movs r2, #0 + bl sub_0804A98C + adds r1, r0, #0 + cmp r1, #0 + beq _08045DF8 + str r4, [r1, #0x50] + ldrb r0, [r4, #0x15] + strb r0, [r1, #0x15] + ldrb r1, [r5] + movs r0, #0xfe + ands r0, r1 + strb r0, [r5] + movs r0, #3 + strb r0, [r4, #0xd] + b _08045DF8 +_08045D9A: + movs r6, #2 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08045DF8 + movs r0, #4 + strb r0, [r4, #0xd] + movs r0, #0x50 + strb r0, [r4, #0xe] +_08045DB2: + adds r0, r4, #0 + movs r1, #1 + bl sub_08046030 + b _08045DF8 +_08045DBC: + movs r6, #2 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08045DF8 + adds r0, r4, #0 + movs r1, #0 + bl sub_08045F54 + adds r5, r0, #0 + cmp r5, #0 + beq _08045DEC + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + movs r0, #0x10 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_08045F98 + b _08045DF8 +_08045DEC: + adds r0, r4, #0 + bl sub_08045FA0 + movs r0, #0x50 + strb r0, [r4, #0xe] + strb r5, [r4, #0xf] +_08045DF8: + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08045F54 + adds r5, r0, #0 + cmp r5, #0 + bne _08045E12 + adds r0, r4, #0 + bl sub_08045FA0 + strb r5, [r4, #0xd] + strb r5, [r4, #0xe] + strb r5, [r4, #0xf] +_08045E12: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08045E14 +sub_08045E14: @ 0x08045E14 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08045E2C @ =gUnk_03003F80 + adds r0, #0x27 + movs r1, #0xff + strb r1, [r0] + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _08045E30 + cmp r0, #1 + beq _08045E70 + b _08045EBA + .align 2, 0 +_08045E2C: .4byte gUnk_03003F80 +_08045E30: + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _08045E6A + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08045EBA + movs r0, #1 + strb r0, [r4, #0xd] + adds r0, r4, #0 + bl sub_08045F98 + adds r0, r4, #0 + movs r1, #5 + bl sub_08046030 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + b _08045EBA +_08045E6A: + subs r0, #1 + strb r0, [r4, #0xe] + b _08045EBA +_08045E70: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08045EBA + movs r1, #0 + movs r0, #5 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + adds r0, r4, #0 + bl sub_08046030 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC + adds r2, r0, #0 + cmp r2, #0 + beq _08045EBA + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r3] + ldrh r0, [r2, #0x36] + subs r0, #0xc + strh r0, [r2, #0x36] + adds r0, r2, #0 + movs r1, #2 + bl sub_0805E3A0 +_08045EBA: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0800445C + pop {r4, pc} + + thumb_func_start sub_08045EC8 +sub_08045EC8: @ 0x08045EC8 + push {lr} + movs r1, #0 + bl sub_0807DD94 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08045ED4 +sub_08045ED4: @ 0x08045ED4 + push {lr} + bl sub_08045FA0 + pop {pc} + + thumb_func_start sub_08045EDC +sub_08045EDC: @ 0x08045EDC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + adds r1, r0, #0 + cmp r1, #0 + bne _08045F00 + adds r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x20 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + adds r0, r4, #0 + bl sub_08045F98 + adds r0, r4, #0 + movs r1, #2 + bl sub_08046030 +_08045F00: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0804604C + adds r3, r4, #0 + adds r3, #0x5a + ldrb r1, [r3] + movs r2, #1 + ands r2, r1 + cmp r2, #0 + beq _08045F38 + movs r0, #0xfe + ands r0, r1 + strb r0, [r3] + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080954AC + ldr r0, _08045F34 @ =0x0000018D + bl sub_08004488 + b _08045F4E + .align 2, 0 +_08045F34: .4byte 0x0000018D +_08045F38: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08045F4E + movs r0, #5 + strb r0, [r4, #0xc] + strb r2, [r4, #0xd] + adds r0, r4, #0 + movs r1, #1 + bl sub_08046030 +_08045F4E: + pop {r4, pc} + + thumb_func_start nullsub_25 +nullsub_25: @ 0x08045F50 + bx lr + .align 2, 0 + + thumb_func_start sub_08045F54 +sub_08045F54: @ 0x08045F54 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r5, r1, #0 + movs r0, #1 + bl sub_08049DF4 + adds r4, r0, #0 + cmp r4, #0 + beq _08045F90 + adds r0, r6, #0 + adds r1, r4, #0 + movs r2, #0x20 + movs r3, #0x20 + bl sub_080041A0 + cmp r0, #0 + bne _08045F90 + cmp r5, #2 + beq _08045F94 + movs r3, #0x50 + cmp r5, #0 + beq _08045F82 + movs r3, #0x58 +_08045F82: + adds r0, r6, #0 + adds r1, r4, #0 + adds r2, r3, #0 + bl sub_080041A0 + cmp r0, #0 + bne _08045F94 +_08045F90: + movs r0, #0 + b _08045F96 +_08045F94: + movs r0, #1 +_08045F96: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08045F98 +sub_08045F98: @ 0x08045F98 + movs r1, #0x10 + strb r1, [r0, #0x15] + movs r0, #1 + bx lr + + thumb_func_start sub_08045FA0 +sub_08045FA0: @ 0x08045FA0 + push {lr} + adds r2, r0, #0 + movs r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x18] + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r3] + adds r0, r2, #0 + adds r0, #0x78 + ldrh r0, [r0] + movs r1, #0 + strh r0, [r2, #0x2e] + adds r0, r2, #0 + adds r0, #0x7a + ldrh r0, [r0] + strh r0, [r2, #0x32] + adds r0, r2, #0 + adds r0, #0x62 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, r2, #0 + movs r1, #0 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08045FF0 +sub_08045FF0: @ 0x08045FF0 + push {r4, lr} + adds r4, r0, #0 + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_08045F98 + adds r0, r4, #0 + movs r1, #1 + bl sub_08046030 + pop {r4, pc} + + thumb_func_start sub_08046030 +sub_08046030: @ 0x08046030 + push {lr} + adds r3, r1, #0 + ldrb r1, [r0, #0x15] + lsrs r1, r1, #3 + ldr r2, _08046048 @ =gUnk_080D1A38 + adds r3, r3, r2 + ldrb r2, [r3] + orrs r1, r2 + bl sub_08004260 + pop {pc} + .align 2, 0 +_08046048: .4byte gUnk_080D1A38 + + thumb_func_start sub_0804604C +sub_0804604C: @ 0x0804604C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + cmp r0, #0 + beq _08046070 + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xf + bhi _08046070 + ldr r1, _08046074 @ =gUnk_080D1A3E + ldrb r0, [r2, #0xe] + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r2, #0 + adds r0, #0x63 + strb r1, [r0] +_08046070: + pop {pc} + .align 2, 0 +_08046074: .4byte gUnk_080D1A3E + + thumb_func_start sub_08046078 +sub_08046078: @ 0x08046078 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + ldr r0, _08046114 @ =gUnk_03003F80 + adds r0, #0x27 + movs r1, #0 + strb r1, [r0] + ldr r4, _08046118 @ =gUnk_080D1A4E + ldr r6, _0804611C @ =gUnk_03000BF0 + movs r5, #4 +_0804608A: + adds r0, r7, #0 + movs r1, #2 + movs r2, #0x40 + bl sub_080A29AC + adds r1, r0, #0 + cmp r1, #0 + beq _080460AE + ldrh r0, [r4] + ldrh r2, [r6, #6] + adds r0, r0, r2 + strh r0, [r1, #0x2e] + adds r4, #2 + ldrh r0, [r4] + ldrh r2, [r6, #8] + adds r0, r0, r2 + strh r0, [r1, #0x32] + adds r4, #2 +_080460AE: + subs r5, #1 + cmp r5, #0 + bge _0804608A + movs r0, #0xb7 + lsls r0, r0, #1 + bl sub_08004488 + ldr r0, _08046120 @ =0x000007A2 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _08046124 @ =0x000007A3 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _08046128 @ =0x000007A5 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _0804612C @ =0x000007A6 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _08046130 @ =0x000007A7 + movs r1, #1 + bl sub_0807BA8C + adds r0, r7, #0 + movs r1, #0x43 + movs r2, #0x40 + bl sub_080A29AC + adds r1, r0, #0 + cmp r1, #0 + beq _08046102 + adds r0, r7, #0 + bl sub_0806FA24 + movs r0, #0xc2 + lsls r0, r0, #1 + bl sub_08004488 +_08046102: + ldr r1, [r7, #0x54] + cmp r1, #0 + beq _0804610C + movs r0, #0xff + strb r0, [r1, #0xc] +_0804610C: + adds r0, r7, #0 + bl sub_0804AA1C + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08046114: .4byte gUnk_03003F80 +_08046118: .4byte gUnk_080D1A4E +_0804611C: .4byte gUnk_03000BF0 +_08046120: .4byte 0x000007A2 +_08046124: .4byte 0x000007A3 +_08046128: .4byte 0x000007A5 +_0804612C: .4byte 0x000007A6 +_08046130: .4byte 0x000007A7 + + thumb_func_start sub_08046134 +sub_08046134: @ 0x08046134 + push {lr} + ldr r2, _08046148 @ =gUnk_080D1A64 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08046148: .4byte gUnk_080D1A64 + + thumb_func_start sub_0804614C +sub_0804614C: @ 0x0804614C + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r0, _08046248 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x3d + bhi _08046244 + movs r0, #0x22 + bl sub_080A7EE0 + adds r1, r0, #0 + movs r4, #0 + strb r4, [r1, #0xa] + str r6, [r1, #0x50] + ldr r0, [r6, #0x64] + str r1, [r0, #0x14] + movs r0, #0x63 + movs r1, #0 + bl sub_0804AA60 + adds r1, r0, #0 + str r6, [r1, #0x50] + ldr r0, [r6, #0x64] + str r1, [r0, #0x10] + movs r0, #0x61 + movs r1, #0 + bl sub_0804AA60 + adds r1, r0, #0 + str r6, [r1, #0x50] + movs r0, #0x61 + movs r1, #1 + bl sub_0804AA60 + adds r1, r0, #0 + str r6, [r1, #0x50] + movs r0, #0x61 + movs r1, #2 + bl sub_0804AA60 + adds r1, r0, #0 + str r6, [r1, #0x50] + movs r0, #0x61 + movs r1, #3 + bl sub_0804AA60 + adds r1, r0, #0 + str r6, [r1, #0x50] + movs r0, #0x61 + movs r1, #4 + bl sub_0804AA60 + adds r1, r0, #0 + str r6, [r1, #0x50] + movs r0, #0x61 + movs r1, #5 + bl sub_0804AA60 + adds r1, r0, #0 + str r6, [r1, #0x50] + movs r0, #0x61 + movs r1, #6 + bl sub_0804AA60 + adds r1, r0, #0 + str r6, [r1, #0x50] + movs r0, #0x61 + movs r1, #7 + bl sub_0804AA60 + adds r1, r0, #0 + str r6, [r1, #0x50] + movs r0, #1 + strb r0, [r6, #0xc] + ldrb r2, [r6, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x80 + orrs r0, r2 + strb r0, [r6, #0x1b] + ldrb r0, [r6, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r6, #0x19] + adds r0, r6, #0 + adds r0, #0x38 + movs r5, #2 + strb r5, [r0] + adds r0, #0x40 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + adds r1, r6, #0 + adds r1, #0x70 + movs r0, #0x3c + strh r0, [r1] + ldr r0, _0804624C @ =gUnk_02019EE0 + movs r4, #0x80 + lsls r4, r4, #8 + adds r1, r4, #0 + bl sub_0801D630 + ldr r0, _08046250 @ =gUnk_02002F00 + adds r1, r4, #0 + bl sub_0801D630 + adds r0, r6, #0 + movs r1, #0 + bl sub_0804660C + adds r0, r6, #0 + bl sub_080464C0 + ldr r0, _08046254 @ =gUnk_03001160 + adds r1, r0, #0 + adds r1, #0x38 + strb r5, [r1] + bl sub_08016A04 + ldr r1, _08046258 @ =sub_08046498 + adds r0, r6, #0 + movs r2, #0 + bl sub_08052D74 +_08046244: + pop {r4, r5, r6, pc} + .align 2, 0 +_08046248: .4byte gUnk_03003DBC +_0804624C: .4byte gUnk_02019EE0 +_08046250: .4byte gUnk_02002F00 +_08046254: .4byte gUnk_03001160 +_08046258: .4byte sub_08046498 + + thumb_func_start sub_0804625C +sub_0804625C: @ 0x0804625C + push {r4, lr} + adds r4, r0, #0 + adds r3, r4, #0 + adds r3, #0x79 + ldrb r2, [r3] + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + beq _08046286 + movs r1, #0x7f + ands r1, r2 + movs r0, #0x40 + orrs r1, r0 + strb r1, [r3] + movs r0, #3 + ands r1, r0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_0804660C + b _0804629A +_08046286: + movs r0, #0x40 + ands r0, r2 + cmp r0, #0 + beq _0804629A + movs r0, #0xbf + ands r0, r2 + strb r0, [r3] + adds r0, r4, #0 + bl sub_080464C0 +_0804629A: + bl sub_080465C8 + ldr r0, [r4, #0x64] + ldr r0, [r0] + adds r0, #0x6c + ldrh r1, [r0] + movs r3, #0x38 + ands r3, r1 + cmp r3, #0 + beq _080462D6 + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x7a + movs r2, #0 + strh r1, [r0] + adds r0, #2 + strb r2, [r0] + adds r0, #1 + strb r2, [r0] + adds r1, r4, #0 + adds r1, #0x70 + movs r0, #0x3c + strh r0, [r1] + adds r0, r4, #0 + adds r0, #0x80 + strb r2, [r0] + b _0804632A +_080462D6: + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08046302 + movs r0, #3 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x70 + movs r1, #0 + movs r0, #0x3c + strh r0, [r2] + strb r1, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x7a + strh r3, [r0] + adds r0, #2 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, #3 + strb r1, [r0] + b _0804632A +_08046302: + movs r0, #0x80 + lsls r0, r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0804632A + adds r1, r4, #0 + adds r1, #0x70 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0804632A + movs r0, #0xb4 + lsls r0, r0, #1 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #1 + bl sub_08046634 +_0804632A: + pop {r4, pc} + + thumb_func_start sub_0804632C +sub_0804632C: @ 0x0804632C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_080465C8 + adds r0, r4, #0 + bl sub_080466A8 + adds r3, r4, #0 + adds r3, #0x7a + ldrh r0, [r3] + adds r2, r0, #1 + movs r5, #0 + strh r2, [r3] + lsls r1, r2, #0x10 + ldr r0, _08046360 @ =0x059F0000 + cmp r1, r0 + bls _08046364 + movs r0, #0 + strh r0, [r3] + adds r0, r4, #0 + adds r0, #0x7c + strb r5, [r0] + adds r0, #1 + strb r5, [r0] + adds r0, #3 + b _08046388 + .align 2, 0 +_08046360: .4byte 0x059F0000 +_08046364: + lsls r0, r2, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0x78 + bne _08046374 + adds r0, r4, #0 + bl sub_08046668 + b _0804638A +_08046374: + movs r0, #0xa5 + lsls r0, r0, #3 + cmp r1, r0 + bne _0804638A + adds r0, r4, #0 + adds r0, #0x78 + strb r5, [r0] + adds r0, #5 + strb r5, [r0] + adds r0, #2 +_08046388: + strb r5, [r0] +_0804638A: + ldr r0, [r4, #0x64] + ldr r0, [r0] + adds r0, #0x6c + ldrh r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080463B8 + adds r1, r4, #0 + adds r1, #0x70 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080463B8 + movs r0, #0xb4 + lsls r0, r0, #1 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #0 + bl sub_08046634 +_080463B8: + ldr r0, [r4, #0x64] + ldr r0, [r0] + adds r0, #0x6c + ldrh r1, [r0] + movs r0, #0x38 + ands r0, r1 + cmp r0, #0 + bne _080463E0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x70 + movs r2, #0 + movs r0, #0x3c + strh r0, [r1] + adds r0, r4, #0 + adds r0, #0x78 + strb r2, [r0] + adds r0, #8 + strb r2, [r0] +_080463E0: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080463E4 +sub_080463E4: @ 0x080463E4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_080465C8 + adds r1, r4, #0 + adds r1, #0x70 + ldrh r0, [r1] + subs r0, #1 + movs r5, #0 + strh r0, [r1] + ldr r2, _0804643C @ =0x0000FFFF + adds r6, r2, #0 + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08046410 + movs r0, #0xb4 + lsls r0, r0, #1 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #1 + bl sub_08046634 +_08046410: + adds r0, r4, #0 + bl sub_080466A8 + adds r3, r4, #0 + adds r3, #0x7a + ldrh r0, [r3] + adds r2, r0, #1 + strh r2, [r3] + adds r0, r2, #0 + ands r0, r6 + ldr r1, _08046440 @ =0x0000059F + cmp r0, r1 + bls _08046444 + movs r0, #0 + strh r0, [r3] + adds r0, r4, #0 + adds r0, #0x7c + strb r5, [r0] + adds r0, #1 + strb r5, [r0] + adds r0, #3 + b _08046468 + .align 2, 0 +_0804643C: .4byte 0x0000FFFF +_08046440: .4byte 0x0000059F +_08046444: + lsls r0, r2, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0x78 + bne _08046454 + adds r0, r4, #0 + bl sub_08046668 + b _0804646A +_08046454: + movs r0, #0xa5 + lsls r0, r0, #3 + cmp r1, r0 + bne _0804646A + adds r0, r4, #0 + adds r0, #0x78 + strb r5, [r0] + adds r0, #5 + strb r5, [r0] + adds r0, #2 +_08046468: + strb r5, [r0] +_0804646A: + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _08046494 + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x70 + movs r2, #0 + movs r0, #0x3c + strh r0, [r1] + adds r0, r4, #0 + adds r0, #0x78 + strb r2, [r0] + adds r0, #8 + strb r2, [r0] + movs r0, #0x94 + lsls r0, r0, #1 + bl sub_080A3268 +_08046494: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08046498 +sub_08046498: @ 0x08046498 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _080464B8 @ =gUnk_02019EE0 + movs r4, #0x80 + lsls r4, r4, #8 + adds r1, r4, #0 + bl sub_0801D630 + ldr r0, _080464BC @ =gUnk_02002F00 + adds r1, r4, #0 + bl sub_0801D630 + adds r0, r5, #0 + bl sub_080464C0 + pop {r4, r5, pc} + .align 2, 0 +_080464B8: .4byte gUnk_02019EE0 +_080464BC: .4byte gUnk_02002F00 + + thumb_func_start sub_080464C0 +sub_080464C0: @ 0x080464C0 + push {r4, r5, r6, lr} + ldr r1, _08046508 @ =gUnk_080D1A74 + ldrb r0, [r0, #0x14] + lsrs r0, r0, #6 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl sub_080197D4 + bl sub_08046518 + movs r6, #0x20 + ldr r4, _0804650C @ =gUnk_02019EE0 + ldr r0, _08046510 @ =0x00003260 + adds r5, r4, r0 +_080464DE: + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0x40 + bl sub_0801D66C + movs r0, #0x80 + lsls r0, r0, #1 + adds r5, r5, r0 + adds r4, #0x40 + subs r6, #1 + cmp r6, #0 + bne _080464DE + ldr r0, _0804650C @ =gUnk_02019EE0 + movs r1, #0x80 + lsls r1, r1, #4 + bl sub_0801D630 + ldr r1, _08046514 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + pop {r4, r5, r6, pc} + .align 2, 0 +_08046508: .4byte gUnk_080D1A74 +_0804650C: .4byte gUnk_02019EE0 +_08046510: .4byte 0x00003260 +_08046514: .4byte gUnk_02000070 + + thumb_func_start sub_08046518 +sub_08046518: @ 0x08046518 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + ldr r1, _080465AC @ =gUnk_02010654 + ldr r2, _080465B0 @ =0xFFFFBCB0 + adds r0, r1, r2 + ldr r3, _080465B4 @ =0xFFFFECB0 + adds r2, r1, r3 + ldr r7, _080465B8 @ =0x00006658 + adds r7, r1, r7 + str r7, [sp, #4] + ldr r3, _080465BC @ =0xFFFFD658 + adds r6, r1, r3 + movs r1, #0x10 +_0804653A: + movs r5, #0x10 + movs r7, #0x80 + adds r7, r7, r0 + mov sl, r7 + adds r3, r2, #0 + adds r3, #0x80 + str r3, [sp] + ldr r7, [sp, #4] + adds r7, #0x40 + mov r8, r7 + movs r3, #0x40 + adds r3, r3, r6 + mov sb, r3 + subs r1, #1 + mov ip, r1 + adds r3, r0, #0 + adds r3, #0x20 + adds r4, r2, #0 + adds r4, #0x20 +_08046560: + ldrh r0, [r3] + strh r0, [r4] + ldrh r0, [r3] + lsls r0, r0, #1 + ldr r7, _080465AC @ =gUnk_02010654 + adds r0, r0, r7 + ldrh r1, [r0] + ldr r0, [sp, #4] + adds r2, r0, r5 + ldr r7, _080465C0 @ =gUnk_080B37A0 + adds r0, r1, r7 + ldrb r0, [r0] + strb r0, [r2] + adds r2, r6, r5 + ldr r0, _080465C4 @ =gUnk_080B3E80 + adds r1, r1, r0 + ldrb r0, [r1] + strb r0, [r2] + subs r3, #2 + subs r4, #2 + subs r5, #1 + cmp r5, #0 + bne _08046560 + mov r0, sl + ldr r2, [sp] + mov r1, r8 + str r1, [sp, #4] + mov r6, sb + mov r1, ip + cmp r1, #0 + bne _0804653A + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080465AC: .4byte gUnk_02010654 +_080465B0: .4byte 0xFFFFBCB0 +_080465B4: .4byte 0xFFFFECB0 +_080465B8: .4byte 0x00006658 +_080465BC: .4byte 0xFFFFD658 +_080465C0: .4byte gUnk_080B37A0 +_080465C4: .4byte gUnk_080B3E80 + + thumb_func_start sub_080465C8 +sub_080465C8: @ 0x080465C8 + push {r4, lr} + ldr r3, _080465FC @ =gUnk_03001160 + movs r0, #0x2e + ldrsh r2, [r3, r0] + ldr r1, _08046600 @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + subs r2, r2, r0 + asrs r2, r2, #3 + movs r4, #0x32 + ldrsh r0, [r3, r4] + ldrh r1, [r1, #8] + subs r0, r0, r1 + asrs r0, r0, #3 + ldr r1, _08046604 @ =gUnk_02019EE0 + lsls r0, r0, #7 + adds r0, r0, r2 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, #0 + beq _080465F8 + ldr r1, _08046608 @ =gUnk_03003F80 + movs r0, #1 + strb r0, [r1, #0x14] +_080465F8: + pop {r4, pc} + .align 2, 0 +_080465FC: .4byte gUnk_03001160 +_08046600: .4byte gUnk_03000BF0 +_08046604: .4byte gUnk_02019EE0 +_08046608: .4byte gUnk_03003F80 + + thumb_func_start sub_0804660C +sub_0804660C: @ 0x0804660C + push {r4, lr} + strb r1, [r0, #0x14] + lsrs r1, r1, #5 + lsls r1, r1, #1 + ldr r2, _0804662C @ =gUnk_080D1A84 + adds r1, r1, r2 + ldr r3, _08046630 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + ldrh r4, [r1] + adds r2, r2, r4 + strh r2, [r0, #0x2e] + ldrh r2, [r3, #8] + ldrh r1, [r1, #2] + adds r2, r2, r1 + strh r2, [r0, #0x32] + pop {r4, pc} + .align 2, 0 +_0804662C: .4byte gUnk_080D1A84 +_08046630: .4byte gUnk_03000BF0 + + thumb_func_start sub_08046634 +sub_08046634: @ 0x08046634 + push {r4, r5, lr} + adds r5, r0, #0 + cmp r1, #0 + bne _08046650 + ldr r4, _0804664C @ =gUnk_080D1AF4 + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + adds r1, r1, r4 + ldrb r1, [r1] + b _0804665A + .align 2, 0 +_0804664C: .4byte gUnk_080D1AF4 +_08046650: + bl sub_08000E50 + adds r1, r0, #0 + movs r0, #7 + ands r1, r0 +_0804665A: + ldrb r2, [r5, #0x14] + lsrs r2, r2, #3 + adds r0, r1, #0 + movs r1, #0 + bl sub_080A1ED0 + pop {r4, r5, pc} + + thumb_func_start sub_08046668 +sub_08046668: @ 0x08046668 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _080466A0 + adds r5, r4, #0 + adds r5, #0x78 + ldrb r0, [r5] + cmp r0, #0xff + beq _080466A0 + bl sub_08000E50 + ldr r2, _080466A4 @ =gUnk_080D1AF8 + movs r1, #3 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + movs r1, #0 + strb r0, [r5] + adds r0, r4, #0 + adds r0, #0x7f + strb r1, [r0] + adds r0, #3 + strb r1, [r0] + adds r0, r4, #0 + bl sub_080467DC +_080466A0: + pop {r4, r5, pc} + .align 2, 0 +_080466A4: .4byte gUnk_080D1AF8 + + thumb_func_start sub_080466A8 +sub_080466A8: @ 0x080466A8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r0, #0x7c + ldrb r2, [r0] + cmp r2, #0 + beq _0804674C + adds r0, #1 + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] + ldrb r1, [r4, #0xe] + adds r5, r0, #0 + cmp r1, #0 + bne _080466D0 + subs r0, #5 + ldrb r0, [r0] + cmp r0, #0xff + beq _080466D0 + movs r0, #4 + strb r0, [r4, #0xe] +_080466D0: + ldrb r0, [r5] + bl sub_08000E62 + cmp r0, #2 + bls _0804674C + movs r0, #0 + strb r0, [r4, #0xe] + strb r0, [r5] + adds r7, r4, #0 + adds r7, #0x78 + subs r0, #1 + adds r6, r0, #0 + movs r0, #0xff + strb r0, [r7] + adds r0, #0x28 + bl sub_080A3268 + adds r5, r4, #0 + adds r5, #0x45 + ldrb r0, [r5] + cmp r0, #0 + beq _08046746 + movs r0, #8 + movs r1, #0 + bl sub_08080964 + adds r1, r4, #0 + adds r1, #0x82 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ands r0, r6 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xc + bhi _0804671E + ldrb r0, [r5] + subs r0, #1 + strb r0, [r5] +_0804671E: + ldrb r0, [r5] + cmp r0, #0 + bne _08046730 + strb r0, [r7] + adds r1, r4, #0 + adds r1, #0x7a + movs r0, #0xa5 + lsls r0, r0, #3 + b _08046744 +_08046730: + adds r1, r4, #0 + adds r1, #0x7f + ldrb r0, [r1] + cmp r0, #0 + bne _08046746 + movs r0, #1 + strb r0, [r1] + subs r1, #5 + movs r0, #0x87 + lsls r0, r0, #3 +_08046744: + strh r0, [r1] +_08046746: + adds r0, r4, #0 + bl sub_080467DC +_0804674C: + ldrb r1, [r4, #0xe] + cmp r1, #0 + beq _080467CC + adds r0, r4, #0 + adds r0, #0x78 + ldrb r0, [r0] + cmp r0, #0xff + beq _080467CC + subs r0, r1, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _080467CC + adds r2, r4, #0 + adds r2, #0x80 + adds r3, r4, #0 + adds r3, #0x7d + ldrb r0, [r2] + ldrb r1, [r3] + orrs r0, r1 + strb r0, [r2] + strb r5, [r3] + adds r0, r4, #0 + bl sub_080467DC + ldr r0, [r4, #0x64] + adds r0, #0x3c + ldrb r1, [r0] + adds r0, r1, #0 + cmp r0, #0xff + beq _080467CC + ldr r2, _080467D8 @ =gUnk_03001160 + adds r0, r2, #0 + adds r0, #0x3e + strb r1, [r0] + adds r1, r2, #0 + adds r1, #0x3d + movs r0, #0xf4 + strb r0, [r1] + adds r1, #5 + movs r0, #0xa + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x2c + movs r2, #0 + bl sub_080A29AC + adds r2, r0, #0 + cmp r2, #0 + beq _080467CC + ldr r0, [r4, #0x64] + ldrh r0, [r0, #0x38] + strh r0, [r2, #0x2e] + ldr r0, [r4, #0x64] + ldrh r0, [r0, #0x3a] + strh r0, [r2, #0x32] + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + adds r0, r2, #0 + bl sub_08016A04 +_080467CC: + adds r1, r4, #0 + adds r1, #0x7c + movs r0, #0 + strb r0, [r1] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080467D8: .4byte gUnk_03001160 + + thumb_func_start sub_080467DC +sub_080467DC: @ 0x080467DC + push {lr} + movs r1, #0 + ldr r0, [r0, #0x64] + movs r2, #0 + adds r0, #0x18 +_080467E6: + stm r0!, {r2} + adds r1, #1 + cmp r1, #7 + bls _080467E6 + pop {pc} + + thumb_func_start sub_080467F0 +sub_080467F0: @ 0x080467F0 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + beq _08046810 + adds r0, r4, #0 + adds r0, #0x7d + ldrb r1, [r0] + movs r0, #3 + ands r1, r0 + ldrb r2, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] +_08046810: + ldr r1, _0804688C @ =gUnk_080D1AFC + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r0, [r4, #0xc] + adds r5, r4, #0 + adds r5, #0x78 + cmp r0, #7 + beq _08046836 + ldrh r3, [r5] + adds r0, r4, #0 + movs r1, #0xaa + movs r2, #0xaa + bl sub_0805EC9C +_08046836: + ldrh r0, [r5] + lsrs r0, r0, #8 + rsbs r0, r0, #0 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_08048004 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + adds r1, r4, #0 + adds r1, #0x7d + strb r0, [r1] + ldrb r2, [r4, #0x18] + lsls r0, r2, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _08046878 + movs r1, #0x32 + ldrsh r0, [r4, r1] + ldr r1, _08046890 @ =gUnk_03000BF0 + movs r3, #0xc + ldrsh r1, [r1, r3] + subs r0, r0, r1 + adds r0, #0x30 + movs r1, #0x80 + lsls r1, r1, #1 + cmp r0, r1 + bls _08046878 + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r4, #0x18] +_08046878: + ldr r2, _08046894 @ =gUnk_03001160 + ldrh r1, [r2, #0x2e] + adds r0, r4, #0 + adds r0, #0x84 + strh r1, [r0] + ldrh r1, [r2, #0x32] + adds r0, #2 + strh r1, [r0] + pop {r4, r5, pc} + .align 2, 0 +_0804688C: .4byte gUnk_080D1AFC +_08046890: .4byte gUnk_03000BF0 +_08046894: .4byte gUnk_03001160 + + thumb_func_start sub_08046898 +sub_08046898: @ 0x08046898 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x22 + bl sub_080A7EE0 + adds r1, r0, #0 + cmp r1, #0 + beq _0804690C + movs r4, #0 + movs r3, #1 + movs r0, #1 + strb r0, [r1, #0xa] + str r5, [r1, #0x50] + str r1, [r5, #0x54] + strb r0, [r5, #0xc] + strb r4, [r5, #0xd] + ldrb r1, [r5, #0x19] + movs r0, #3 + orrs r1, r0 + ldrb r2, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r3 + strb r0, [r5, #0x18] + ldrb r2, [r5, #0x1b] + movs r3, #0x3f + adds r0, r3, #0 + ands r0, r2 + movs r2, #0x80 + orrs r0, r2 + strb r0, [r5, #0x1b] + ands r1, r3 + orrs r1, r2 + strb r1, [r5, #0x19] + adds r2, r5, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0x10 + orrs r0, r1 + strb r0, [r2] + adds r1, r5, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x7c + strb r4, [r0] + subs r0, #4 + strh r4, [r0] + adds r0, #2 + strh r4, [r0] + subs r0, #8 + strh r4, [r0] + adds r0, r5, #0 + movs r1, #0 + bl sub_080042AC +_0804690C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08046910 +sub_08046910: @ 0x08046910 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0804692C @ =gUnk_080D1B1C + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 +_0804692C: .4byte gUnk_080D1B1C + + thumb_func_start sub_08046930 +sub_08046930: @ 0x08046930 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _08046948 + movs r0, #5 + strb r0, [r4, #0xd] + movs r0, #0x20 + strb r0, [r4, #0x15] + movs r0, #0xa0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] +_08046948: + adds r0, r4, #0 + bl sub_08047D88 + adds r0, r4, #0 + adds r0, #0x7c + ldrb r0, [r0] + cmp r0, #0 + beq _0804696A + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xd] + strb r0, [r4, #0xe] + strb r1, [r4, #0x14] + strb r1, [r4, #0x15] + movs r0, #0xa0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] +_0804696A: + pop {r4, pc} + + thumb_func_start sub_0804696C +sub_0804696C: @ 0x0804696C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08047E48 + ldr r5, _080469C8 @ =gUnk_03000BF0 + ldrh r0, [r5, #8] + movs r1, #0x98 + lsls r1, r1, #1 + adds r0, r0, r1 + movs r2, #0x32 + ldrsh r1, [r4, r2] + cmp r0, r1 + ble _080469A6 + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #0x80 + strb r0, [r4, #0x15] + adds r0, #0x80 + strh r0, [r4, #0x24] + ldrb r0, [r4, #0x1b] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + orrs r0, r1 + strb r0, [r4, #0x19] + movs r0, #0x2e + bl sub_080A3268 +_080469A6: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080469C6 + ldrh r0, [r5, #8] + movs r1, #0x96 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r2, #0x32 + ldrsh r1, [r4, r2] + cmp r0, r1 + ble _080469C6 + movs r0, #0 + strb r0, [r4, #0xe] + movs r0, #0xf7 + bl sub_080A3268 +_080469C6: + pop {r4, r5, pc} + .align 2, 0 +_080469C8: .4byte gUnk_03000BF0 + + thumb_func_start sub_080469CC +sub_080469CC: @ 0x080469CC + push {r4, lr} + adds r4, r0, #0 + bl sub_08047E48 + ldr r0, _080469F0 @ =gUnk_03000BF0 + ldrh r0, [r0, #8] + movs r1, #0x84 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r2, #0x32 + ldrsh r1, [r4, r2] + cmp r0, r1 + bge _080469EE + movs r0, #3 + strb r0, [r4, #0xd] + movs r0, #0x90 + strb r0, [r4, #0x15] +_080469EE: + pop {r4, pc} + .align 2, 0 +_080469F0: .4byte gUnk_03000BF0 + + thumb_func_start sub_080469F4 +sub_080469F4: @ 0x080469F4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08047E48 + ldr r0, _08046A2C @ =gUnk_03000BF0 + ldrh r0, [r0, #8] + movs r1, #0xa4 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r2, #0x32 + ldrsh r1, [r4, r2] + cmp r0, r1 + bge _08046A28 + movs r0, #4 + strb r0, [r4, #0xd] + ldrb r2, [r4, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x80 + orrs r0, r2 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x19] +_08046A28: + pop {r4, pc} + .align 2, 0 +_08046A2C: .4byte gUnk_03000BF0 + + thumb_func_start sub_08046A30 +sub_08046A30: @ 0x08046A30 + push {r4, lr} + adds r4, r0, #0 + bl sub_08047D88 + ldr r0, [r4, #0x64] + ldr r0, [r0] + adds r0, #0x6c + ldrh r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08046A50 + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_08046A50: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08046A54 +sub_08046A54: @ 0x08046A54 + push {r4, lr} + adds r4, r0, #0 + bl sub_08047E48 + ldr r0, _08046A74 @ =gUnk_03000BF0 + ldrh r0, [r0, #6] + movs r1, #0xe0 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r2, #0x2e + ldrsh r1, [r4, r2] + cmp r0, r1 + bge _08046A72 + movs r0, #6 + strb r0, [r4, #0xd] +_08046A72: + pop {r4, pc} + .align 2, 0 +_08046A74: .4byte gUnk_03000BF0 + + thumb_func_start sub_08046A78 +sub_08046A78: @ 0x08046A78 + push {r4, lr} + adds r4, r0, #0 + bl sub_08047D88 + ldr r0, [r4, #0x64] + ldr r0, [r0] + adds r0, #0x6c + ldrh r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08046A98 + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_08046A98: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08046A9C +sub_08046A9C: @ 0x08046A9C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #1 + bne _08046ABA + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #1 + bne _08046ABA + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC +_08046ABA: + ldr r1, _08046AE4 @ =gUnk_080D1B38 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x7c + ldrb r0, [r0] + cmp r0, #0 + beq _08046AE2 + movs r1, #0 + movs r0, #6 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_08046AE2: + pop {r4, pc} + .align 2, 0 +_08046AE4: .4byte gUnk_080D1B38 + + thumb_func_start sub_08046AE8 +sub_08046AE8: @ 0x08046AE8 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + ldrb r1, [r0, #0x14] + lsrs r1, r1, #5 + adds r0, r4, #0 + bl sub_08048178 + ldrb r0, [r4, #0x15] + lsls r0, r0, #8 + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] + adds r0, r4, #0 + bl sub_08047D88 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08046B18 +sub_08046B18: @ 0x08046B18 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x80 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x82 + ldrh r1, [r1] + movs r3, #0x32 + ldrsh r2, [r4, r3] + subs r1, r1, r2 + bl sub_080045DA + adds r1, r0, #0 + ldrb r0, [r4, #0x15] + cmp r1, r0 + beq _08046B6C + subs r0, r1, r0 + movs r1, #0xff + ands r0, r1 + cmp r0, #0x80 + bls _08046B54 + adds r1, r4, #0 + adds r1, #0x76 + ldr r2, _08046B50 @ =0xFFFFFF00 + b _08046B5C + .align 2, 0 +_08046B50: .4byte 0xFFFFFF00 +_08046B54: + adds r1, r4, #0 + adds r1, #0x76 + movs r2, #0x80 + lsls r2, r2, #1 +_08046B5C: + adds r0, r2, #0 + ldrh r3, [r1] + adds r0, r0, r3 + strh r0, [r1] + ldrh r0, [r1] + lsrs r0, r0, #8 + strb r0, [r4, #0x15] + b _08046B70 +_08046B6C: + movs r0, #2 + strb r0, [r4, #0xd] +_08046B70: + adds r0, r4, #0 + bl sub_08047D88 + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047EA4 + pop {r4, pc} + + thumb_func_start sub_08046B8C +sub_08046B8C: @ 0x08046B8C + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x80 + ldrh r1, [r5] + adds r6, r4, #0 + adds r6, #0x82 + ldrh r2, [r6] + movs r3, #4 + bl sub_0806FCB8 + cmp r0, #0 + beq _08046BD8 + movs r0, #3 + strb r0, [r4, #0xd] + ldrb r0, [r4, #0x15] + lsls r0, r0, #8 + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] + ldr r1, _08046BD4 @ =gUnk_03000BF0 + movs r2, #0x80 + lsls r2, r2, #2 + adds r0, r2, #0 + ldrh r3, [r1, #6] + adds r0, r0, r3 + strh r0, [r5] + adds r2, #0x10 + adds r0, r2, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r6] + adds r0, r4, #0 + bl sub_08047D88 + b _08046C02 + .align 2, 0 +_08046BD4: .4byte gUnk_03000BF0 +_08046BD8: + ldrh r0, [r5] + movs r3, #0x2e + ldrsh r1, [r4, r3] + subs r0, r0, r1 + ldrh r1, [r6] + movs r3, #0x32 + ldrsh r2, [r4, r3] + subs r1, r1, r2 + bl sub_080045DA + strb r0, [r4, #0x15] + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047DF0 +_08046C02: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08046C04 +sub_08046C04: @ 0x08046C04 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x80 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x82 + ldrh r1, [r1] + movs r3, #0x32 + ldrsh r2, [r4, r3] + subs r1, r1, r2 + bl sub_080045DA + adds r1, r0, #0 + ldrb r0, [r4, #0x15] + cmp r1, r0 + beq _08046C58 + subs r0, r1, r0 + movs r1, #0xff + ands r0, r1 + cmp r0, #0x80 + bls _08046C40 + adds r1, r4, #0 + adds r1, #0x76 + ldr r2, _08046C3C @ =0xFFFFFF00 + b _08046C48 + .align 2, 0 +_08046C3C: .4byte 0xFFFFFF00 +_08046C40: + adds r1, r4, #0 + adds r1, #0x76 + movs r2, #0x80 + lsls r2, r2, #1 +_08046C48: + adds r0, r2, #0 + ldrh r3, [r1] + adds r0, r0, r3 + strh r0, [r1] + ldrh r0, [r1] + lsrs r0, r0, #8 + strb r0, [r4, #0x15] + b _08046C6C +_08046C58: + movs r0, #4 + strb r0, [r4, #0xd] + adds r0, r1, #0 + adds r0, #0x20 + movs r1, #0xc0 + ands r0, r1 + lsrs r0, r0, #6 + adds r1, r4, #0 + adds r1, #0x70 + strh r0, [r1] +_08046C6C: + adds r0, r4, #0 + bl sub_08047D88 + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047EA4 + pop {r4, pc} + + thumb_func_start sub_08046C88 +sub_08046C88: @ 0x08046C88 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x80 + ldrh r1, [r5] + adds r6, r4, #0 + adds r6, #0x82 + ldrh r2, [r6] + movs r3, #4 + bl sub_0806FCB8 + cmp r0, #0 + beq _08046CC0 + movs r0, #1 + strb r0, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x70 + ldrh r0, [r0] + bl sub_08048158 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08048178 + adds r0, r4, #0 + bl sub_08047D88 + b _08046CEA +_08046CC0: + ldrh r0, [r5] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + ldrh r1, [r6] + movs r3, #0x32 + ldrsh r2, [r4, r3] + subs r1, r1, r2 + bl sub_080045DA + strb r0, [r4, #0x15] + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047DF0 +_08046CEA: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08046CEC +sub_08046CEC: @ 0x08046CEC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0 + bne _08046D0A + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #1 + bne _08046D0A + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC +_08046D0A: + ldr r1, _08046D40 @ =gUnk_080D1B4C + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_080042B8 + ldr r0, [r4, #0x64] + ldr r0, [r0] + adds r0, #0x6c + ldrh r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08046D3C + movs r0, #0 + movs r1, #2 + strb r1, [r4, #0xc] + strb r0, [r4, #0xd] + ldrh r0, [r4, #0x24] + strb r0, [r4, #0x14] +_08046D3C: + pop {r4, pc} + .align 2, 0 +_08046D40: .4byte gUnk_080D1B4C + + thumb_func_start sub_08046D44 +sub_08046D44: @ 0x08046D44 + push {lr} + mov ip, r0 + movs r0, #1 + mov r1, ip + strb r0, [r1, #0xd] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r1, #0x24] + ldr r0, [r1, #0x64] + ldr r0, [r0, #4] + ldrb r1, [r0, #0x14] + lsrs r1, r1, #5 + lsls r1, r1, #1 + ldr r0, _08046D90 @ =gUnk_080D1B60 + adds r1, r1, r0 + ldr r3, _08046D94 @ =gUnk_03000BF0 + ldrh r0, [r3, #6] + ldrh r2, [r1] + adds r0, r0, r2 + mov r2, ip + adds r2, #0x80 + strh r0, [r2] + ldrh r0, [r3, #8] + ldrh r1, [r1, #2] + adds r0, r0, r1 + mov r1, ip + adds r1, #0x82 + strh r0, [r1] + mov r1, ip + ldrb r0, [r1, #0x15] + lsls r0, r0, #8 + adds r1, #0x76 + strh r0, [r1] + mov r0, ip + bl sub_08047D88 + pop {pc} + .align 2, 0 +_08046D90: .4byte gUnk_080D1B60 +_08046D94: .4byte gUnk_03000BF0 + + thumb_func_start sub_08046D98 +sub_08046D98: @ 0x08046D98 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x80 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x82 + ldrh r1, [r1] + movs r3, #0x32 + ldrsh r2, [r4, r3] + subs r1, r1, r2 + bl sub_080045DA + adds r1, r0, #0 + ldrb r0, [r4, #0x15] + cmp r1, r0 + beq _08046DEC + subs r0, r1, r0 + movs r1, #0xff + ands r0, r1 + cmp r0, #0x80 + bls _08046DD4 + adds r1, r4, #0 + adds r1, #0x76 + ldr r2, _08046DD0 @ =0xFFFFFF00 + b _08046DDC + .align 2, 0 +_08046DD0: .4byte 0xFFFFFF00 +_08046DD4: + adds r1, r4, #0 + adds r1, #0x76 + movs r2, #0x80 + lsls r2, r2, #1 +_08046DDC: + adds r0, r2, #0 + ldrh r3, [r1] + adds r0, r0, r3 + strh r0, [r1] + ldrh r0, [r1] + lsrs r0, r0, #8 + strb r0, [r4, #0x15] + b _08046DF0 +_08046DEC: + movs r0, #2 + strb r0, [r4, #0xd] +_08046DF0: + adds r0, r4, #0 + bl sub_08047D88 + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047EA4 + pop {r4, pc} + + thumb_func_start sub_08046E0C +sub_08046E0C: @ 0x08046E0C + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x80 + ldrh r1, [r5] + adds r6, r4, #0 + adds r6, #0x82 + ldrh r2, [r6] + movs r3, #4 + bl sub_0806FCB8 + cmp r0, #0 + beq _08046E3C + movs r0, #3 + strb r0, [r4, #0xd] + ldrb r0, [r4, #0x15] + lsls r0, r0, #8 + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] + adds r0, r4, #0 + bl sub_08047D88 + b _08046E66 +_08046E3C: + ldrh r0, [r5] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + ldrh r1, [r6] + movs r3, #0x32 + ldrsh r2, [r4, r3] + subs r1, r1, r2 + bl sub_080045DA + strb r0, [r4, #0x15] + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047DF0 +_08046E66: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08046E68 +sub_08046E68: @ 0x08046E68 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r0, [r5, #0x64] + ldr r0, [r0, #4] + ldrb r1, [r0, #0x14] + movs r0, #0x80 + adds r6, r0, #0 + eors r6, r1 + ldrb r0, [r5, #0x15] + cmp r6, r0 + beq _08046EC6 + subs r0, r6, r0 + movs r1, #0xff + ands r0, r1 + cmp r0, #0x80 + bls _08046E94 + adds r1, r5, #0 + adds r1, #0x76 + ldr r2, _08046E90 @ =0xFFFFFF00 + b _08046E9C + .align 2, 0 +_08046E90: .4byte 0xFFFFFF00 +_08046E94: + adds r1, r5, #0 + adds r1, #0x76 + movs r2, #0x80 + lsls r2, r2, #1 +_08046E9C: + adds r0, r2, #0 + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] + ldrh r0, [r1] + lsrs r0, r0, #8 + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_08047D88 + ldrb r0, [r5, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r5, #0 + bl sub_08047EA4 + b _08046EEE +_08046EC6: + movs r0, #4 + strb r0, [r5, #0xd] + movs r0, #0x3f + strb r0, [r5, #0xe] + movs r4, #1 + strb r4, [r5, #0xf] + bl sub_08000E50 + ldr r1, _08046EF0 @ =gUnk_080D1B70 + ands r0, r4 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + adds r0, r0, r6 + movs r1, #0xc0 + ands r0, r1 + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_08047D88 +_08046EEE: + pop {r4, r5, r6, pc} + .align 2, 0 +_08046EF0: .4byte gUnk_080D1B70 + + thumb_func_start sub_08046EF4 +sub_08046EF4: @ 0x08046EF4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r3, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08046F12 + movs r0, #0x7f + strb r0, [r4, #0xe] + ldrb r0, [r4, #0x15] + movs r1, #0x80 + eors r0, r1 + strb r0, [r4, #0x15] +_08046F12: + ldr r2, _08046F60 @ =gUnk_080D1B74 + ldrb r0, [r4, #0xe] + lsrs r0, r0, #3 + movs r1, #0xf + ands r0, r1 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + strh r0, [r4, #0x24] + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r3 + cmp r0, #0 + bne _08046F58 + bl sub_08000E50 + movs r1, #0x38 + ands r0, r1 + adds r0, #0x78 + strb r0, [r4, #0xf] + movs r0, #0x23 + bl sub_080A7EE0 + adds r2, r0, #0 + cmp r2, #0 + beq _08046F58 + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + str r4, [r2, #0x50] + adds r0, r2, #0 + bl sub_08016A04 +_08046F58: + adds r0, r4, #0 + bl sub_08047E48 + pop {r4, pc} + .align 2, 0 +_08046F60: .4byte gUnk_080D1B74 + + thumb_func_start sub_08046F64 +sub_08046F64: @ 0x08046F64 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0 + bne _08046F82 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #1 + bne _08046F82 + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC +_08046F82: + ldr r1, _08046FE4 @ =gUnk_080D1B94 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_080042B8 + adds r1, r4, #0 + adds r1, #0x7e + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08046FC8 + movs r0, #0x78 + strh r0, [r1] + movs r0, #0x23 + bl sub_080A7EE0 + adds r2, r0, #0 + cmp r2, #0 + beq _08046FC8 + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + str r4, [r2, #0x50] + adds r0, r2, #0 + bl sub_08016A04 +_08046FC8: + ldr r0, [r4, #0x64] + ldr r0, [r0] + adds r0, #0x6c + ldrh r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08046FE0 + movs r1, #0 + movs r0, #5 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_08046FE0: + pop {r4, pc} + .align 2, 0 +_08046FE4: .4byte gUnk_080D1B94 + + thumb_func_start sub_08046FE8 +sub_08046FE8: @ 0x08046FE8 + push {lr} + adds r3, r0, #0 + movs r0, #1 + strb r0, [r3, #0xd] + movs r0, #0xe0 + lsls r0, r0, #1 + strh r0, [r3, #0x24] + adds r1, r3, #0 + adds r1, #0x7e + movs r0, #0x1e + strh r0, [r1] + ldr r2, _08047028 @ =gUnk_03000BF0 + movs r1, #0xa4 + lsls r1, r1, #2 + adds r0, r1, #0 + ldrh r1, [r2, #6] + adds r0, r0, r1 + adds r1, r3, #0 + adds r1, #0x80 + strh r0, [r1] + movs r1, #0xc8 + lsls r1, r1, #1 + adds r0, r1, #0 + ldrh r2, [r2, #8] + adds r0, r0, r2 + adds r1, r3, #0 + adds r1, #0x82 + strh r0, [r1] + adds r0, r3, #0 + bl sub_08047D88 + pop {pc} + .align 2, 0 +_08047028: .4byte gUnk_03000BF0 + + thumb_func_start sub_0804702C +sub_0804702C: @ 0x0804702C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x80 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x82 + ldrh r1, [r1] + movs r3, #0x32 + ldrsh r2, [r4, r3] + subs r1, r1, r2 + bl sub_080045DA + adds r3, r0, #0 + ldrb r2, [r4, #0x15] + subs r0, r2, r3 + adds r0, #2 + movs r1, #0xff + ands r0, r1 + cmp r0, #4 + bls _0804706C + subs r0, r3, r2 + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08047068 + subs r0, r2, #1 + b _0804706A +_08047068: + adds r0, r2, #1 +_0804706A: + strb r0, [r4, #0x15] +_0804706C: + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047DF0 + adds r0, r4, #0 + adds r0, #0x80 + ldrh r1, [r0] + adds r0, #2 + ldrh r2, [r0] + movs r0, #0x24 + ldrsh r3, [r4, r0] + asrs r3, r3, #0x10 + adds r3, #0x10 + adds r0, r4, #0 + bl sub_0806FCB8 + cmp r0, #0 + beq _080470B0 + movs r0, #2 + strb r0, [r4, #0xd] + ldrb r0, [r4, #0x15] + lsls r0, r0, #8 + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] + movs r0, #0xa0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] +_080470B0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080470B4 +sub_080470B4: @ 0x080470B4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x40 + ldrb r0, [r4, #0x15] + cmp r1, r0 + beq _0804710A + subs r0, r1, r0 + movs r1, #0xff + ands r0, r1 + cmp r0, #0x80 + bls _080470D8 + adds r1, r4, #0 + adds r1, #0x76 + ldr r2, _080470D4 @ =0xFFFFFF00 + b _080470E0 + .align 2, 0 +_080470D4: .4byte 0xFFFFFF00 +_080470D8: + adds r1, r4, #0 + adds r1, #0x76 + movs r2, #0x80 + lsls r2, r2, #1 +_080470E0: + adds r0, r2, #0 + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] + ldrh r0, [r1] + lsrs r0, r0, #8 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_08047D88 + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047EA4 + b _0804713A +_0804710A: + movs r0, #3 + strb r0, [r4, #0xd] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + ldrb r0, [r4, #0x15] + lsls r0, r0, #8 + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] + bl sub_08000E50 + ldr r2, _0804713C @ =gUnk_080D1BBC + movs r1, #1 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r1, [r1] + adds r0, r4, #0 + adds r0, #0x74 + strh r1, [r0] + adds r0, r4, #0 + bl sub_08047D88 +_0804713A: + pop {r4, pc} + .align 2, 0 +_0804713C: .4byte gUnk_080D1BBC + + thumb_func_start sub_08047140 +sub_08047140: @ 0x08047140 + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x76 + adds r0, #0x74 + ldrh r0, [r0] + ldrh r3, [r1] + adds r0, r0, r3 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x18 + strb r0, [r2, #0x15] + cmp r0, #0xbf + bls _08047164 + movs r0, #0xc0 + strb r0, [r2, #0x15] + movs r0, #4 + strb r0, [r2, #0xd] +_08047164: + ldrb r0, [r2, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r2, #0 + bl sub_08047DF0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804717C +sub_0804717C: @ 0x0804717C + push {r4, lr} + adds r4, r0, #0 + ldrh r2, [r4, #0x24] + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldr r0, _080471C0 @ =0x0000027F + cmp r1, r0 + bgt _08047192 + adds r0, r2, #0 + adds r0, #8 + strh r0, [r4, #0x24] +_08047192: + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047DF0 + ldr r0, _080471C4 @ =gUnk_03000BF0 + ldrh r0, [r0, #6] + movs r1, #0x80 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r2, #0x2e + ldrsh r1, [r4, r2] + cmp r0, r1 + ble _080471BC + movs r0, #5 + strb r0, [r4, #0xd] +_080471BC: + pop {r4, pc} + .align 2, 0 +_080471C0: .4byte 0x0000027F +_080471C4: .4byte gUnk_03000BF0 + + thumb_func_start sub_080471C8 +sub_080471C8: @ 0x080471C8 + push {r4, r5, lr} + adds r4, r0, #0 + ldrh r2, [r4, #0x24] + movs r0, #0x24 + ldrsh r1, [r4, r0] + movs r0, #0xc0 + lsls r0, r0, #1 + cmp r1, r0 + ble _080471E0 + adds r0, r2, #0 + subs r0, #0x10 + strh r0, [r4, #0x24] +_080471E0: + ldrb r0, [r4, #0x15] + cmp r0, #0xdf + bhi _080471EA + adds r0, #1 + strb r0, [r4, #0x15] +_080471EA: + ldrb r1, [r4, #0x15] + movs r5, #0x80 + lsls r5, r5, #1 + subs r1, r5, r1 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047DF0 + ldr r0, _0804722C @ =gUnk_03000BF0 + ldrh r0, [r0, #8] + movs r1, #0xc8 + lsls r1, r1, #1 + adds r0, r0, r1 + movs r2, #0x32 + ldrsh r1, [r4, r2] + cmp r0, r1 + ble _08047238 + adds r0, r4, #0 + adds r0, #0x74 + ldrh r0, [r0] + cmp r0, r5 + bls _08047234 + bl sub_08000E50 + adds r1, r0, #0 + movs r0, #1 + ands r1, r0 + cmp r1, #0 + beq _08047230 + movs r0, #6 + b _08047236 + .align 2, 0 +_0804722C: .4byte gUnk_03000BF0 +_08047230: + strb r1, [r4, #0xd] + b _08047238 +_08047234: + movs r0, #0 +_08047236: + strb r0, [r4, #0xd] +_08047238: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0804723C +sub_0804723C: @ 0x0804723C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x15] + subs r0, #2 + strb r0, [r4, #0x15] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xbf + bhi _08047266 + movs r0, #7 + strb r0, [r4, #0xd] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + movs r0, #0xc0 + strb r0, [r4, #0x15] + adds r1, r4, #0 + adds r1, #0x76 + movs r0, #0xc0 + lsls r0, r0, #8 + strh r0, [r1] +_08047266: + adds r0, r4, #0 + bl sub_08047D88 + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047EA4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08047284 +sub_08047284: @ 0x08047284 + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x76 + ldrh r0, [r1] + subs r0, #0xe0 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x18 + strb r0, [r2, #0x15] + cmp r0, #0x3f + bhi _080472A4 + movs r0, #0x40 + strb r0, [r2, #0x15] + movs r0, #8 + strb r0, [r2, #0xd] +_080472A4: + ldrb r0, [r2, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r2, #0 + bl sub_08047DF0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080472BC +sub_080472BC: @ 0x080472BC + push {r4, lr} + adds r4, r0, #0 + ldrh r2, [r4, #0x24] + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldr r0, _08047308 @ =0x000002FF + cmp r1, r0 + bgt _080472D2 + adds r0, r2, #0 + adds r0, #8 + strh r0, [r4, #0x24] +_080472D2: + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047DF0 + ldr r0, _0804730C @ =gUnk_03000BF0 + ldrh r0, [r0, #6] + movs r1, #0xac + lsls r1, r1, #2 + adds r0, r0, r1 + movs r2, #0x2e + ldrsh r1, [r4, r2] + cmp r0, r1 + bge _08047306 + movs r0, #9 + strb r0, [r4, #0xd] + ldrb r0, [r4, #0x15] + lsls r0, r0, #8 + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] +_08047306: + pop {r4, pc} + .align 2, 0 +_08047308: .4byte 0x000002FF +_0804730C: .4byte gUnk_03000BF0 + + thumb_func_start sub_08047310 +sub_08047310: @ 0x08047310 + push {lr} + adds r2, r0, #0 + ldrh r3, [r2, #0x24] + movs r0, #0x24 + ldrsh r1, [r2, r0] + ldr r0, _08047364 @ =0x0000017F + cmp r1, r0 + bgt _08047326 + adds r0, r3, #0 + subs r0, #0x10 + strh r0, [r2, #0x24] +_08047326: + adds r1, r2, #0 + adds r1, #0x76 + ldr r3, _08047368 @ =0xFFFFFE30 + adds r0, r3, #0 + ldrh r3, [r1] + adds r0, r0, r3 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x18 + strb r0, [r2, #0x15] + adds r0, #0x7f + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x3f + bhi _0804734C + movs r0, #0xc0 + strb r0, [r2, #0x15] + movs r0, #4 + strb r0, [r2, #0xd] +_0804734C: + ldrb r0, [r2, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r2, #0 + bl sub_08047DF0 + pop {pc} + .align 2, 0 +_08047364: .4byte 0x0000017F +_08047368: .4byte 0xFFFFFE30 + + thumb_func_start sub_0804736C +sub_0804736C: @ 0x0804736C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #1 + bne _0804738A + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #1 + bne _0804738A + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC +_0804738A: + ldr r0, _080473B4 @ =gUnk_080D1BC0 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x45 + ldrb r1, [r0] + cmp r1, #0 + bne _080473B0 + movs r0, #7 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_080473B0: + pop {r4, pc} + .align 2, 0 +_080473B4: .4byte gUnk_080D1BC0 + + thumb_func_start sub_080473B8 +sub_080473B8: @ 0x080473B8 + push {lr} + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x90 + lsls r1, r1, #1 + strh r1, [r0, #0x24] + ldr r3, _080473EC @ =gUnk_03000BF0 + movs r2, #0x80 + lsls r2, r2, #2 + adds r1, r2, #0 + ldrh r2, [r3, #6] + adds r1, r1, r2 + adds r2, r0, #0 + adds r2, #0x80 + strh r1, [r2] + movs r2, #0xe8 + lsls r2, r2, #1 + adds r1, r2, #0 + ldrh r3, [r3, #8] + adds r1, r1, r3 + adds r2, r0, #0 + adds r2, #0x82 + strh r1, [r2] + bl sub_08047D88 + pop {pc} + .align 2, 0 +_080473EC: .4byte gUnk_03000BF0 + + thumb_func_start sub_080473F0 +sub_080473F0: @ 0x080473F0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x80 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x82 + ldrh r1, [r1] + movs r3, #0x32 + ldrsh r2, [r4, r3] + subs r1, r1, r2 + bl sub_080045DA + adds r3, r0, #0 + ldrb r2, [r4, #0x15] + subs r0, r2, r3 + adds r0, #2 + movs r1, #0xff + ands r0, r1 + cmp r0, #4 + bls _08047444 + subs r1, r3, r2 + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08047438 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bge _08047434 + subs r0, r2, #2 + b _08047442 +_08047434: + subs r0, r2, #1 + b _08047442 +_08047438: + cmp r1, #1 + ble _08047440 + adds r0, r2, #2 + b _08047442 +_08047440: + adds r0, r2, #1 +_08047442: + strb r0, [r4, #0x15] +_08047444: + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047DF0 + adds r0, r4, #0 + adds r0, #0x80 + ldrh r1, [r0] + adds r0, #2 + ldrh r2, [r0] + adds r0, r4, #0 + movs r3, #8 + bl sub_0806FCB8 + cmp r0, #0 + beq _08047482 + movs r0, #2 + strb r0, [r4, #0xd] + ldrb r0, [r4, #0x15] + lsls r0, r0, #8 + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] +_08047482: + pop {r4, pc} + + thumb_func_start sub_08047484 +sub_08047484: @ 0x08047484 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x40 + ldrb r0, [r4, #0x15] + cmp r1, r0 + beq _080474DA + subs r0, r1, r0 + movs r1, #0xff + ands r0, r1 + cmp r0, #0x80 + bls _080474A8 + adds r1, r4, #0 + adds r1, #0x76 + ldr r2, _080474A4 @ =0xFFFFFF00 + b _080474B0 + .align 2, 0 +_080474A4: .4byte 0xFFFFFF00 +_080474A8: + adds r1, r4, #0 + adds r1, #0x76 + movs r2, #0x80 + lsls r2, r2, #1 +_080474B0: + adds r0, r2, #0 + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] + ldrh r0, [r1] + lsrs r0, r0, #8 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_08047D88 + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047EA4 + b _08047504 +_080474DA: + movs r0, #3 + strb r0, [r4, #0xd] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + strb r1, [r4, #0x15] + adds r1, r4, #0 + adds r1, #0x76 + movs r0, #0x80 + lsls r0, r0, #7 + strh r0, [r1] + subs r1, #2 + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r1] + adds r1, #0xa + movs r0, #0xf0 + strh r0, [r1] + adds r0, r4, #0 + bl sub_08047D88 +_08047504: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08047508 +sub_08047508: @ 0x08047508 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0804754C @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + movs r1, #0xd0 + lsls r1, r1, #1 + adds r0, r0, r1 + movs r3, #0x2e + ldrsh r1, [r4, r3] + cmp r0, r1 + bge _0804759A + ldrb r1, [r4, #0x15] + cmp r1, #0 + bne _08047550 + ldrh r0, [r2, #8] + movs r1, #0x82 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r2, #0x32 + ldrsh r1, [r4, r2] + cmp r0, r1 + blt _0804759A + adds r0, r4, #0 + adds r0, #0x74 + ldrh r1, [r0] + rsbs r1, r1, #0 + strh r1, [r0] + adds r2, r4, #0 + adds r2, #0x76 + ldrh r0, [r2] + adds r0, r0, r1 + strh r0, [r2] + lsrs r0, r0, #8 + b _08047598 + .align 2, 0 +_0804754C: .4byte gUnk_03000BF0 +_08047550: + adds r0, r4, #0 + adds r0, #0x74 + movs r3, #0 + ldrsh r2, [r0, r3] + cmp r2, #0 + bge _0804757E + adds r3, r4, #0 + adds r3, #0x76 + ldrh r0, [r3] + adds r0, r0, r2 + strh r0, [r3] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x18 + strb r0, [r4, #0x15] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0804759A + movs r0, #0 + strb r0, [r4, #0x15] + movs r0, #0 + strh r0, [r3] + b _0804759A +_0804757E: + cmp r1, #0x3f + bhi _0804759A + adds r1, r4, #0 + adds r1, #0x76 + ldrh r0, [r1] + adds r0, r0, r2 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x18 + strb r0, [r4, #0x15] + cmp r0, #0x3f + bls _0804759A + movs r0, #0x40 +_08047598: + strb r0, [r4, #0x15] +_0804759A: + adds r0, r4, #0 + bl sub_08047E48 + ldr r0, _080475F0 @ =gUnk_03000BF0 + ldrh r0, [r0, #6] + movs r1, #0xa0 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r2, #0x2e + ldrsh r1, [r4, r2] + cmp r0, r1 + bge _080475CA + movs r0, #4 + strb r0, [r4, #0xd] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + ldrb r0, [r4, #0x15] + strb r0, [r4, #0x14] + ldrb r0, [r4, #0x15] + lsls r0, r0, #8 + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] +_080475CA: + adds r1, r4, #0 + adds r1, #0x7e + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080475EE + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + movs r0, #0x62 + bl sub_0804AA60 + cmp r0, #0 + beq _080475EE + str r4, [r0, #0x50] +_080475EE: + pop {r4, pc} + .align 2, 0 +_080475F0: .4byte gUnk_03000BF0 + + thumb_func_start sub_080475F4 +sub_080475F4: @ 0x080475F4 + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x76 + movs r3, #0xc0 + lsls r3, r3, #1 + adds r0, r3, #0 + ldrh r3, [r1] + adds r0, r0, r3 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x18 + strb r0, [r2, #0x15] + cmp r0, #0xbf + bls _08047626 + movs r0, #0xc0 + strb r0, [r2, #0x15] + movs r0, #5 + strb r0, [r2, #0xd] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r2, #0x24] + adds r1, #8 + movs r0, #0x3c + strh r0, [r1] +_08047626: + ldrb r0, [r2, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r2, #0 + bl sub_08047DF0 + pop {pc} + + thumb_func_start sub_0804763C +sub_0804763C: @ 0x0804763C + push {r4, lr} + adds r4, r0, #0 + ldr r2, _08047680 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + movs r1, #0xf8 + lsls r1, r1, #1 + adds r0, r0, r1 + movs r3, #0x2e + ldrsh r1, [r4, r3] + cmp r0, r1 + ble _080476D0 + ldrb r1, [r4, #0x15] + cmp r1, #0 + bne _08047684 + ldrh r0, [r2, #8] + movs r1, #0x82 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r2, #0x32 + ldrsh r1, [r4, r2] + cmp r0, r1 + blt _080476D0 + adds r0, r4, #0 + adds r0, #0x74 + ldrh r1, [r0] + rsbs r1, r1, #0 + strh r1, [r0] + adds r2, r4, #0 + adds r2, #0x76 + ldrh r0, [r2] + adds r0, r0, r1 + strh r0, [r2] + lsrs r0, r0, #8 + b _080476CE + .align 2, 0 +_08047680: .4byte gUnk_03000BF0 +_08047684: + adds r0, r4, #0 + adds r0, #0x74 + movs r3, #0 + ldrsh r2, [r0, r3] + cmp r2, #0 + ble _080476B4 + adds r3, r4, #0 + adds r3, #0x76 + ldrh r0, [r3] + adds r0, r0, r2 + strh r0, [r3] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x18 + strb r0, [r4, #0x15] + movs r1, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _080476D0 + movs r0, #0 + strb r0, [r4, #0x15] + strh r1, [r3] + b _080476D0 +_080476B4: + cmp r1, #0xc0 + bls _080476D0 + adds r1, r4, #0 + adds r1, #0x76 + ldrh r0, [r1] + adds r0, r0, r2 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x18 + strb r0, [r4, #0x15] + cmp r0, #0xc0 + bhi _080476D0 + movs r0, #0xc0 +_080476CE: + strb r0, [r4, #0x15] +_080476D0: + adds r0, r4, #0 + bl sub_08047E48 + ldr r0, _08047728 @ =gUnk_03000BF0 + ldrh r0, [r0, #6] + movs r1, #0xc0 + lsls r1, r1, #1 + adds r0, r0, r1 + movs r2, #0x2e + ldrsh r1, [r4, r2] + cmp r0, r1 + ble _08047700 + movs r0, #6 + strb r0, [r4, #0xd] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + ldrb r0, [r4, #0x15] + strb r0, [r4, #0x14] + ldrb r0, [r4, #0x15] + lsls r0, r0, #8 + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] +_08047700: + adds r1, r4, #0 + adds r1, #0x7e + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08047724 + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + movs r0, #0x62 + bl sub_0804AA60 + cmp r0, #0 + beq _08047724 + str r4, [r0, #0x50] +_08047724: + pop {r4, pc} + .align 2, 0 +_08047728: .4byte gUnk_03000BF0 + + thumb_func_start sub_0804772C +sub_0804772C: @ 0x0804772C + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x76 + ldr r3, _08047774 @ =0xFFFFFE80 + adds r0, r3, #0 + ldrh r3, [r1] + adds r0, r0, r3 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x18 + strb r0, [r2, #0x15] + cmp r0, #0x40 + bhi _0804775C + movs r0, #0x40 + strb r0, [r2, #0x15] + movs r0, #3 + strb r0, [r2, #0xd] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r2, #0x24] + adds r1, #8 + movs r0, #0x1e + strh r0, [r1] +_0804775C: + ldrb r0, [r2, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r2, #0 + bl sub_08047DF0 + pop {pc} + .align 2, 0 +_08047774: .4byte 0xFFFFFE80 + + thumb_func_start sub_08047778 +sub_08047778: @ 0x08047778 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08047794 @ =gUnk_080D1BDC + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 +_08047794: .4byte gUnk_080D1BDC + + thumb_func_start sub_08047798 +sub_08047798: @ 0x08047798 + push {r4, lr} + adds r3, r0, #0 + movs r0, #1 + strb r0, [r3, #0xd] + movs r0, #0x80 + strh r0, [r3, #0x24] + movs r0, #0x2e + ldrsh r1, [r3, r0] + ldr r2, _080477BC @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + ldr r0, _080477C0 @ =0x000001F7 + cmp r1, r0 + bgt _080477C4 + adds r1, r3, #0 + adds r1, #0x80 + movs r0, #0xa8 + b _080477CC + .align 2, 0 +_080477BC: .4byte gUnk_03000BF0 +_080477C0: .4byte 0x000001F7 +_080477C4: + adds r1, r3, #0 + adds r1, #0x80 + movs r0, #0xd2 + lsls r0, r0, #2 +_080477CC: + strh r0, [r1] + ldrh r0, [r2, #6] + ldrh r4, [r1] + adds r0, r0, r4 + strh r0, [r1] + movs r1, #0xd2 + lsls r1, r1, #2 + adds r0, r1, #0 + ldrh r2, [r2, #8] + adds r0, r0, r2 + adds r1, r3, #0 + adds r1, #0x82 + strh r0, [r1] + adds r0, r3, #0 + bl sub_08047D88 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080477F0 +sub_080477F0: @ 0x080477F0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + ldrh r2, [r4, #0x24] + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldr r0, _08047868 @ =0x000002FF + cmp r1, r0 + bgt _0804780A + adds r0, r2, #0 + adds r0, #8 + strh r0, [r4, #0x24] +_0804780A: + adds r7, r4, #0 + adds r7, #0x80 + ldrh r0, [r7] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + adds r6, r4, #0 + adds r6, #0x82 + ldrh r1, [r6] + movs r3, #0x32 + ldrsh r2, [r4, r3] + subs r1, r1, r2 + bl sub_080045DA + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_08047E48 + ldr r0, _0804786C @ =gUnk_03001160 + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r3, #0x32 + ldrsh r2, [r0, r3] + adds r0, r4, #0 + movs r3, #0x80 + bl sub_0806FCB8 + adds r1, r0, #0 + cmp r1, #0 + bne _08047870 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + ldrb r2, [r4, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x80 + orrs r0, r2 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x19] + ldrb r0, [r4, #0x14] + strb r0, [r4, #0x15] + b _0804790C + .align 2, 0 +_08047868: .4byte 0x000002FF +_0804786C: .4byte gUnk_03001160 +_08047870: + ldr r5, _080478FC @ =gUnk_03000BF0 + ldrh r1, [r5, #6] + movs r0, #0x80 + lsls r0, r0, #2 + mov r8, r0 + add r1, r8 + ldrh r2, [r5, #8] + movs r3, #0x84 + lsls r3, r3, #2 + adds r2, r2, r3 + movs r3, #0x80 + lsls r3, r3, #1 + adds r0, r4, #0 + bl sub_0806FCB8 + cmp r0, #0 + bne _080478A0 + ldrb r0, [r4, #0x1b] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + orrs r0, r1 + strb r0, [r4, #0x19] +_080478A0: + ldrh r1, [r7] + ldrh r2, [r6] + adds r0, r4, #0 + movs r3, #4 + bl sub_0806FCB8 + cmp r0, #0 + beq _0804790C + movs r0, #2 + strb r0, [r4, #0xd] + ldrb r0, [r4, #0x14] + lsls r0, r0, #8 + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] + bl sub_08000E50 + ldr r2, _08047900 @ =gUnk_080D1BF0 + movs r1, #1 + ands r0, r1 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r2, [r0] + adds r0, r4, #0 + adds r0, #0x74 + strh r2, [r0] + ldr r2, [r4, #0x64] + ldr r0, [r2] + adds r0, #0x6c + ldrh r0, [r0] + ands r1, r0 + cmp r1, #0 + beq _08047904 + ldr r3, [r2, #4] + ldrh r0, [r5, #6] + add r0, r8 + movs r2, #0x2e + ldrsh r1, [r4, r2] + movs r2, #0x83 + cmp r0, r1 + ble _080478F4 + movs r2, #0x81 +_080478F4: + adds r0, r3, #0 + adds r0, #0x79 + strb r2, [r0] + b _0804790C + .align 2, 0 +_080478FC: .4byte gUnk_03000BF0 +_08047900: .4byte gUnk_080D1BF0 +_08047904: + ldr r0, [r2, #4] + adds r0, #0x79 + movs r1, #0x80 + strb r1, [r0] +_0804790C: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08047914 +sub_08047914: @ 0x08047914 + push {r4, lr} + adds r4, r0, #0 + bl sub_08047D88 + ldrb r1, [r4, #0x14] + movs r0, #0x1f + ands r0, r1 + cmp r0, #0 + beq _08047950 + adds r1, r4, #0 + adds r1, #0x76 + adds r0, r4, #0 + adds r0, #0x74 + ldrh r0, [r0] + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] + lsrs r0, r0, #8 + strb r0, [r4, #0x14] + ldrb r0, [r4, #0x14] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047EA4 + b _08047976 +_08047950: + movs r0, #3 + strb r0, [r4, #0xd] + adds r1, r4, #0 + adds r1, #0x70 + movs r0, #0x3c + strh r0, [r1] + ldrb r1, [r4, #0xa] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, #0x78 + adds r1, r4, #0 + adds r1, #0x7e + strh r0, [r1] + ldr r0, [r4, #0x64] + ldr r0, [r0] + ldrb r1, [r4, #0x14] + bl sub_080A1D70 +_08047976: + pop {r4, pc} + + thumb_func_start sub_08047978 +sub_08047978: @ 0x08047978 + push {r4, lr} + adds r4, r0, #0 + bl sub_08047D88 + adds r0, r4, #0 + adds r0, #0x45 + ldrb r1, [r0] + cmp r1, #0 + beq _080479C6 + adds r2, r4, #0 + adds r2, #0x70 + ldrh r0, [r2] + subs r1, r0, #1 + strh r1, [r2] + lsls r0, r1, #0x10 + cmp r0, #0 + bne _080479B6 + adds r1, r4, #0 + adds r1, #0x72 + movs r0, #1 + strh r0, [r1] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080479AE + movs r0, #0xb4 + strh r0, [r2] + b _080479CC +_080479AE: + movs r0, #0xb4 + lsls r0, r0, #1 + strh r0, [r2] + b _080479CC +_080479B6: + lsls r0, r1, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xf0 + bne _080479CC + adds r0, r4, #0 + bl sub_0804813C + b _080479CC +_080479C6: + adds r0, r4, #0 + adds r0, #0x72 + strh r1, [r0] +_080479CC: + adds r1, r4, #0 + adds r1, #0x7e + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080479F4 + movs r0, #0xf0 + strh r0, [r1] + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + movs r0, #0x62 + bl sub_0804AA60 + cmp r0, #0 + beq _080479F4 + str r4, [r0, #0x50] +_080479F4: + ldr r0, _08047A78 @ =gUnk_03001160 + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r3, #0x32 + ldrsh r2, [r0, r3] + adds r0, r4, #0 + movs r3, #0x80 + bl sub_0806FCB8 + adds r1, r0, #0 + cmp r1, #0 + bne _08047A2C + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + ldrb r2, [r4, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x80 + orrs r0, r2 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x19] + ldrb r0, [r4, #0x14] + strb r0, [r4, #0x15] +_08047A2C: + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _08047B06 + ldr r0, [r4, #0x54] + ldrb r0, [r0, #0xc] + cmp r0, #1 + bne _08047B06 + movs r0, #4 + strb r0, [r4, #0xd] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08047AA4 + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + ldrb r0, [r0, #0x14] + lsrs r0, r0, #6 + cmp r0, #1 + bne _08047A80 + ldr r2, _08047A7C @ =gUnk_03000BF0 + movs r1, #0xe0 + lsls r1, r1, #1 + adds r0, r1, #0 + ldrh r3, [r2, #6] + adds r0, r0, r3 + adds r1, r4, #0 + adds r1, #0x80 + strh r0, [r1] + movs r1, #0x94 + lsls r1, r1, #2 + adds r0, r1, #0 + ldrh r2, [r2, #8] + adds r0, r0, r2 + adds r1, r4, #0 + adds r1, #0x82 + b _08047B04 + .align 2, 0 +_08047A78: .4byte gUnk_03001160 +_08047A7C: .4byte gUnk_03000BF0 +_08047A80: + ldr r2, _08047AA0 @ =gUnk_03000BF0 + movs r3, #0x90 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r1, [r2, #6] + adds r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x80 + strh r0, [r1] + adds r3, #0x10 + adds r0, r3, #0 + ldrh r2, [r2, #8] + adds r0, r0, r2 + adds r1, #2 + b _08047B04 + .align 2, 0 +_08047AA0: .4byte gUnk_03000BF0 +_08047AA4: + ldr r0, _08047AC4 @ =gUnk_03000BF0 + ldrh r1, [r0, #6] + movs r2, #0x80 + lsls r2, r2, #2 + adds r1, r1, r2 + movs r3, #0x2e + ldrsh r2, [r4, r3] + adds r3, r0, #0 + cmp r1, r2 + bge _08047AC8 + adds r1, r4, #0 + adds r1, #0x80 + movs r0, #0xc8 + lsls r0, r0, #1 + b _08047AD0 + .align 2, 0 +_08047AC4: .4byte gUnk_03000BF0 +_08047AC8: + adds r1, r4, #0 + adds r1, #0x80 + movs r0, #0x9c + lsls r0, r0, #2 +_08047AD0: + strh r0, [r1] + ldrh r0, [r3, #6] + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] + ldrh r0, [r3, #8] + movs r1, #0x84 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r2, #0x32 + ldrsh r1, [r4, r2] + cmp r0, r1 + bge _08047AF4 + adds r1, r4, #0 + adds r1, #0x82 + movs r0, #0xd0 + lsls r0, r0, #1 + b _08047AFC +_08047AF4: + adds r1, r4, #0 + adds r1, #0x82 + movs r0, #0xa0 + lsls r0, r0, #2 +_08047AFC: + strh r0, [r1] + ldrh r0, [r3, #8] + ldrh r3, [r1] + adds r0, r0, r3 +_08047B04: + strh r0, [r1] +_08047B06: + pop {r4, pc} + + thumb_func_start sub_08047B08 +sub_08047B08: @ 0x08047B08 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + bl sub_08047D88 + adds r4, r5, #0 + adds r4, #0x80 + ldrh r0, [r4] + movs r2, #0x2e + ldrsh r1, [r5, r2] + subs r0, r0, r1 + adds r6, r5, #0 + adds r6, #0x82 + ldrh r1, [r6] + movs r3, #0x32 + ldrsh r2, [r5, r3] + subs r1, r1, r2 + bl sub_080045DA + strb r0, [r5, #0x15] + movs r7, #0 + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r5, #0x24] + adds r0, r5, #0 + bl sub_08047E58 + ldrh r1, [r4] + ldrh r2, [r6] + adds r0, r5, #0 + movs r3, #4 + bl sub_0806FCB8 + cmp r0, #0 + beq _08047B80 + ldrb r0, [r5, #0xa] + cmp r0, #0 + bne _08047B60 + movs r0, #7 + strb r0, [r5, #0xc] + strb r7, [r5, #0xd] + ldrb r0, [r5, #0x15] + movs r1, #0x80 + eors r0, r1 + b _08047B7E +_08047B60: + movs r0, #4 + strb r0, [r5, #0xc] + strb r7, [r5, #0xd] + ldrb r2, [r5, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x80 + orrs r0, r2 + strb r0, [r5, #0x1b] + ldrb r0, [r5, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r5, #0x19] + ldrb r0, [r5, #0x14] +_08047B7E: + strb r0, [r5, #0x15] +_08047B80: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08047B84 +sub_08047B84: @ 0x08047B84 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08047BA0 @ =gUnk_080D1BF4 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 +_08047BA0: .4byte gUnk_080D1BF4 + + thumb_func_start sub_08047BA4 +sub_08047BA4: @ 0x08047BA4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xd] + movs r2, #0x78 + strb r2, [r4, #0xe] + strb r1, [r4, #0xf] + ldr r0, _08047BD0 @ =gUnk_03000BF0 + ldrh r0, [r0, #6] + movs r1, #0x80 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r3, #0x2e + ldrsh r1, [r4, r3] + cmp r0, r1 + bge _08047BD4 + adds r0, r4, #0 + adds r0, #0x76 + strh r2, [r0] + b _08047BDC + .align 2, 0 +_08047BD0: .4byte gUnk_03000BF0 +_08047BD4: + adds r1, r4, #0 + adds r1, #0x76 + movs r0, #0x88 + strh r0, [r1] +_08047BDC: + ldr r0, _08047BEC @ =0x000001B5 + bl sub_080A3268 + adds r0, r4, #0 + bl sub_08047BF0 + pop {r4, pc} + .align 2, 0 +_08047BEC: .4byte 0x000001B5 + + thumb_func_start sub_08047BF0 +sub_08047BF0: @ 0x08047BF0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r2, _08047CB8 @ =gUnk_080D1C00 + ldrb r1, [r5, #0xe] + movs r0, #3 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r5, #0x15] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r5, #0x24] + adds r0, r5, #0 + bl sub_08047E48 + ldrb r0, [r5, #0xe] + cmp r0, #0 + bne _08047CC4 + ldrb r1, [r5, #0xf] + adds r0, r1, #1 + strb r0, [r5, #0xf] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _08047C74 + adds r0, r5, #0 + movs r1, #0x51 + movs r2, #0 + bl sub_080A29AC + adds r4, r0, #0 + cmp r4, #0 + beq _08047C74 + bl sub_08000E50 + movs r3, #0x1e + adds r1, r0, #0 + ands r1, r3 + ldr r6, _08047CBC @ =0x0000FFF1 + adds r2, r6, #0 + adds r1, r2, r1 + ldrh r6, [r4, #0x2e] + adds r1, r1, r6 + strh r1, [r4, #0x2e] + lsrs r0, r0, #8 + ands r0, r3 + adds r2, r2, r0 + ldrh r0, [r4, #0x32] + adds r2, r2, r0 + strh r2, [r4, #0x32] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 +_08047C74: + adds r0, r5, #0 + adds r0, #0x76 + ldrh r0, [r0] + strb r0, [r5, #0x15] + movs r0, #0xa0 + lsls r0, r0, #1 + strh r0, [r5, #0x24] + adds r0, r5, #0 + bl sub_08047E48 + movs r2, #0x32 + ldrsh r1, [r5, r2] + ldr r0, _08047CC0 @ =gUnk_03000BF0 + ldrh r0, [r0, #8] + movs r6, #0x9c + lsls r6, r6, #2 + adds r0, r0, r6 + cmp r1, r0 + ble _08047D10 + movs r0, #2 + strb r0, [r5, #0xd] + adds r1, r5, #0 + adds r1, #0x7e + movs r0, #0xaa + strh r0, [r1] + adds r0, #0x83 + bl sub_080A3268 + adds r0, r5, #0 + movs r1, #1 + bl sub_080042AC + b _08047D10 + .align 2, 0 +_08047CB8: .4byte gUnk_080D1C00 +_08047CBC: .4byte 0x0000FFF1 +_08047CC0: .4byte gUnk_03000BF0 +_08047CC4: + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x5a + bne _08047CD4 + ldr r4, [r5, #0x54] + b _08047CDC +_08047CD4: + cmp r0, #0x3c + bne _08047CF2 + ldr r0, [r5, #0x54] + ldr r4, [r0, #0x54] +_08047CDC: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #0x51 + movs r2, #0 + bl sub_080A29AC + b _08047D10 +_08047CF2: + cmp r0, #0x1e + bne _08047D10 + ldr r0, [r5, #0x54] + ldr r0, [r0, #0x54] + ldr r4, [r0, #0x54] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #0x51 + movs r2, #0 + bl sub_080A29AC +_08047D10: + adds r0, r5, #0 + adds r0, #0x78 + ldrh r3, [r0] + adds r0, r5, #0 + movs r1, #0xaa + movs r2, #0xaa + bl sub_0805EC9C + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08047D24 +sub_08047D24: @ 0x08047D24 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7e + ldrh r0, [r1] + adds r0, #8 + movs r2, #0 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + movs r0, #0x80 + lsls r0, r0, #4 + cmp r1, r0 + bls _08047D5A + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08047D4C + ldr r0, [r4, #0x64] + str r2, [r0, #8] + b _08047D50 +_08047D4C: + ldr r0, [r4, #0x64] + str r2, [r0, #0xc] +_08047D50: + movs r0, #0 + str r0, [r4, #0x64] + bl sub_0805E780 + b _08047D84 +_08047D5A: + ldr r0, _08047D68 @ =0x000001FF + cmp r1, r0 + bhi _08047D6C + adds r0, r4, #0 + bl sub_08047E48 + b _08047D72 + .align 2, 0 +_08047D68: .4byte 0x000001FF +_08047D6C: + adds r0, r4, #0 + bl sub_08047E58 +_08047D72: + adds r0, r4, #0 + adds r0, #0x7e + ldrh r2, [r0] + subs r0, #6 + ldrh r3, [r0] + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_0805EC9C +_08047D84: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08047D88 +sub_08047D88: @ 0x08047D88 + push {r4, r5, lr} + adds r3, r0, #0 + adds r5, r3, #0 + adds r5, #0x7c + ldrb r2, [r5] + lsls r1, r2, #1 + movs r0, #0x7f + ands r1, r0 + movs r0, #0x80 + ands r0, r2 + orrs r1, r0 + strb r1, [r5] + ldrb r0, [r3, #0x19] + lsrs r0, r0, #6 + cmp r0, #3 + bne _08047DB0 + ldr r0, _08047DE8 @ =gUnk_03003F80 + ldrb r0, [r0, #0x14] + cmp r0, #0 + bne _08047DE6 +_08047DB0: + adds r0, r3, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #1 + beq _08047DE6 + ldr r4, _08047DEC @ =gUnk_03001160 + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r0, #0x32 + ldrsh r2, [r4, r0] + adds r0, r3, #0 + movs r3, #0x20 + bl sub_0806FCB8 + cmp r0, #0 + beq _08047DE6 + ldr r0, _08047DE8 @ =gUnk_03003F80 + movs r1, #1 + strb r1, [r0, #0x14] + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08047DE6 + ldrb r0, [r5] + movs r1, #1 + orrs r0, r1 + strb r0, [r5] +_08047DE6: + pop {r4, r5, pc} + .align 2, 0 +_08047DE8: .4byte gUnk_03003F80 +_08047DEC: .4byte gUnk_03001160 + + thumb_func_start sub_08047DF0 +sub_08047DF0: @ 0x08047DF0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r1, #0 + bl sub_08047D88 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08047EA4 + movs r0, #0x2e + ldrsh r4, [r5, r0] + movs r2, #0x32 + ldrsh r6, [r5, r2] + movs r0, #0x24 + ldrsh r1, [r5, r0] + ldrb r2, [r5, #0x15] + adds r0, r5, #0 + bl sub_0806F62C + adds r0, r5, #0 + adds r0, #0x7c + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08047E42 + bl sub_08079F8C + cmp r0, #0 + beq _08047E42 + ldr r0, _08047E44 @ =gUnk_03001160 + ldrh r1, [r5, #0x2e] + subs r1, r1, r4 + ldrh r2, [r0, #0x2e] + adds r1, r1, r2 + strh r1, [r0, #0x2e] + ldrh r1, [r5, #0x32] + subs r1, r1, r6 + ldrh r2, [r0, #0x32] + adds r1, r1, r2 + strh r1, [r0, #0x32] +_08047E42: + pop {r4, r5, r6, pc} + .align 2, 0 +_08047E44: .4byte gUnk_03001160 + + thumb_func_start sub_08047E48 +sub_08047E48: @ 0x08047E48 + push {r4, lr} + adds r4, r0, #0 + bl sub_08047D88 + adds r0, r4, #0 + bl sub_08047E58 + pop {r4, pc} + + thumb_func_start sub_08047E58 +sub_08047E58: @ 0x08047E58 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r0, #0x2e + ldrsh r5, [r4, r0] + movs r2, #0x32 + ldrsh r6, [r4, r2] + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F62C + adds r0, r4, #0 + adds r0, #0x7c + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08047E9C + bl sub_08079F8C + cmp r0, #0 + beq _08047E9C + ldr r0, _08047EA0 @ =gUnk_03001160 + ldrh r1, [r4, #0x2e] + subs r1, r1, r5 + ldrh r2, [r0, #0x2e] + adds r1, r1, r2 + strh r1, [r0, #0x2e] + ldrh r1, [r4, #0x32] + subs r1, r1, r6 + ldrh r2, [r0, #0x32] + adds r1, r1, r2 + strh r1, [r0, #0x32] +_08047E9C: + pop {r4, r5, r6, pc} + .align 2, 0 +_08047EA0: .4byte gUnk_03001160 + + thumb_func_start sub_08047EA4 +sub_08047EA4: @ 0x08047EA4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + adds r0, #0x78 + strh r1, [r0] + ldrh r1, [r0] + adds r0, #2 + ldrh r0, [r0] + subs r4, r1, r0 + movs r0, #0x80 + lsls r0, r0, #1 + adds r1, r4, r0 + adds r0, #0xff + cmp r1, r0 + bls _08047F58 + adds r0, r5, #0 + adds r0, #0x7c + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08047F4E + adds r0, r5, #0 + bl sub_08047F68 + lsls r0, r0, #8 + mov r8, r0 + ldr r6, _08047F60 @ =gUnk_03001160 + movs r1, #0x2e + ldrsh r0, [r6, r1] + movs r2, #0x2e + ldrsh r1, [r5, r2] + subs r0, r0, r1 + movs r3, #0x32 + ldrsh r1, [r6, r3] + movs r7, #0x32 + ldrsh r2, [r5, r7] + subs r1, r1, r2 + bl sub_080045DA + adds r3, r0, #0 + adds r0, r4, #0 + cmp r4, #0 + bge _08047F00 + adds r0, #0xff +_08047F00: + asrs r0, r0, #8 + subs r4, r3, r0 + movs r0, #0xff + ands r4, r0 + ldr r2, _08047F64 @ =gUnk_080C9160 + lsls r0, r4, #1 + adds r0, r0, r2 + movs r7, #0 + ldrsh r1, [r0, r7] + lsls r0, r3, #1 + adds r0, r0, r2 + movs r7, #0 + ldrsh r0, [r0, r7] + subs r1, r1, r0 + mov r0, r8 + muls r0, r1, r0 + adds r1, r0, #0 + ldr r0, [r6, #0x2c] + adds r0, r0, r1 + str r0, [r6, #0x2c] + adds r0, r4, #0 + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r2 + movs r4, #0 + ldrsh r1, [r0, r4] + adds r0, r3, #0 + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r2 + movs r7, #0 + ldrsh r0, [r0, r7] + subs r1, r1, r0 + mov r0, r8 + muls r0, r1, r0 + adds r1, r0, #0 + ldr r0, [r6, #0x30] + subs r0, r0, r1 + str r0, [r6, #0x30] +_08047F4E: + adds r0, r5, #0 + adds r0, #0x78 + ldrh r1, [r0] + adds r0, #2 + strh r1, [r0] +_08047F58: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08047F60: .4byte gUnk_03001160 +_08047F64: .4byte gUnk_080C9160 + + thumb_func_start sub_08047F68 +sub_08047F68: @ 0x08047F68 + push {r4, r5, lr} + ldr r3, _08047F98 @ =gUnk_03001160 + movs r1, #0x2e + ldrsh r2, [r3, r1] + movs r4, #0x2e + ldrsh r1, [r0, r4] + subs r2, r2, r1 + movs r4, #0x32 + ldrsh r1, [r3, r4] + movs r3, #0x32 + ldrsh r0, [r0, r3] + subs r1, r1, r0 + adds r4, r2, #0 + muls r4, r2, r4 + adds r2, r4, #0 + adds r0, r1, #0 + muls r0, r1, r0 + adds r4, r2, r0 + movs r0, #0x80 + lsls r0, r0, #3 + cmp r4, r0 + bne _08047F9C + movs r0, #0x20 + b _08048002 + .align 2, 0 +_08047F98: .4byte gUnk_03001160 +_08047F9C: + ldr r0, _08047FB8 @ =gUnk_080D1C04 + movs r3, #0x18 + adds r2, r0, #0 + ldrh r0, [r2, #0x20] + cmp r4, r0 + bge _08047FAA + movs r3, #8 +_08047FAA: + lsls r0, r3, #1 + adds r0, r0, r2 + ldrh r0, [r0] + cmp r4, r0 + bge _08047FBC + subs r3, #4 + b _08047FBE + .align 2, 0 +_08047FB8: .4byte gUnk_080D1C04 +_08047FBC: + adds r3, #4 +_08047FBE: + lsls r0, r3, #1 + adds r0, r0, r2 + ldrh r0, [r0] + cmp r4, r0 + bge _08047FCC + subs r3, #2 + b _08047FCE +_08047FCC: + adds r3, #2 +_08047FCE: + lsls r0, r3, #1 + adds r0, r0, r2 + ldrh r0, [r0] + cmp r4, r0 + bge _08047FDC + subs r3, #1 + b _08047FDE +_08047FDC: + adds r3, #1 +_08047FDE: + lsls r0, r3, #1 + adds r0, r0, r2 + ldrh r1, [r0] + cmp r4, r1 + bge _08048000 + subs r5, r3, #1 + lsls r0, r5, #1 + adds r0, r0, r2 + ldrh r2, [r0] + subs r0, r1, r2 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + adds r2, r2, r0 + cmp r4, r2 + bgt _08048000 + adds r3, r5, #0 +_08048000: + adds r0, r3, #0 +_08048002: + pop {r4, r5, pc} + + thumb_func_start sub_08048004 +sub_08048004: @ 0x08048004 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08048010 + b _08048138 +_08048010: + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0 + beq _0804801C + b _08048130 +_0804801C: + ldrb r0, [r4, #0x10] + movs r1, #0x7f + ands r1, r0 + strb r1, [r4, #0x10] + ldr r6, _080480A4 @ =gUnk_03001160 + movs r1, #0x36 + ldrsh r0, [r6, r1] + cmp r0, #0 + beq _08048030 + b _08048138 +_08048030: + bl sub_08079F8C + cmp r0, #0 + bne _0804803A + b _08048138 +_0804803A: + adds r1, r4, #0 + adds r1, #0x7c + ldrb r3, [r1] + movs r0, #1 + ands r0, r3 + adds r5, r1, #0 + cmp r0, #0 + beq _080480BA + ldrb r0, [r4, #0x19] + lsrs r0, r0, #6 + cmp r0, #3 + bne _080480B0 + movs r7, #0x2e + ldrsh r2, [r6, r7] + ldr r1, _080480A8 @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + subs r2, r2, r0 + asrs r2, r2, #3 + movs r7, #0x32 + ldrsh r0, [r6, r7] + ldrh r1, [r1, #8] + subs r0, r0, r1 + asrs r0, r0, #3 + ldr r1, _080480AC @ =gUnk_02019EE0 + lsls r0, r0, #7 + adds r0, r0, r2 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, #0 + beq _080480B0 + movs r0, #2 + ands r0, r3 + cmp r0, #0 + bne _08048086 + movs r0, #0x80 + orrs r0, r3 + strb r0, [r5] +_08048086: + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08048138 + adds r0, r4, #0 + adds r0, #0x84 + ldrh r0, [r0] + strh r0, [r6, #0x2e] + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + strh r0, [r6, #0x32] + b _08048138 + .align 2, 0 +_080480A4: .4byte gUnk_03001160 +_080480A8: .4byte gUnk_03000BF0 +_080480AC: .4byte gUnk_02019EE0 +_080480B0: + ldrb r1, [r5] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5] + b _08048138 +_080480BA: + ldrb r0, [r4, #0x19] + lsrs r0, r0, #6 + cmp r0, #3 + beq _08048124 + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r3, #0x32 + ldrsh r2, [r4, r3] + adds r0, r6, #0 + movs r3, #0x24 + bl sub_0806FCB8 + cmp r0, #0 + beq _08048124 + ldrb r1, [r5] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08048124 + movs r7, #0x2e + ldrsh r0, [r6, r7] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + movs r3, #0x32 + ldrsh r1, [r6, r3] + movs r7, #0x32 + ldrsh r2, [r4, r7] + subs r1, r1, r2 + bl sub_080045DA + ldr r3, _0804812C @ =gUnk_080C9160 + lsls r1, r0, #1 + adds r1, r1, r3 + movs r2, #0 + ldrsh r1, [r1, r2] + lsls r2, r1, #3 + adds r2, r2, r1 + lsls r2, r2, #0xa + ldr r1, [r4, #0x2c] + adds r1, r1, r2 + str r1, [r6, #0x2c] + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r3 + movs r3, #0 + ldrsh r0, [r0, r3] + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #0xa + ldr r0, [r4, #0x30] + subs r0, r0, r1 + str r0, [r6, #0x30] +_08048124: + movs r0, #0 + strb r0, [r5] + b _08048138 + .align 2, 0 +_0804812C: .4byte gUnk_080C9160 +_08048130: + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] +_08048138: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0804813C +sub_0804813C: @ 0x0804813C + push {lr} + bl sub_08000E50 + adds r2, r0, #0 + movs r0, #7 + ands r0, r2 + lsrs r2, r2, #8 + movs r1, #3 + ands r2, r1 + movs r1, #1 + bl sub_080A1ED0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08048158 +sub_08048158: @ 0x08048158 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r6, _08048174 @ =gUnk_080D1C44 + bl sub_08000E50 + lsls r4, r5, #1 + adds r4, r4, r5 + movs r1, #3 + bl __modsi3 + adds r4, r4, r0 + adds r4, r4, r6 + ldrb r0, [r4] + pop {r4, r5, r6, pc} + .align 2, 0 +_08048174: .4byte gUnk_080D1C44 + + thumb_func_start sub_08048178 +sub_08048178: @ 0x08048178 + push {r4, lr} + adds r4, r0, #0 + adds r2, r1, #0 + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + ldrb r0, [r0, #0x14] + lsrs r0, r0, #6 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08048198 + lsls r1, r2, #1 + ldr r0, _08048194 @ =gUnk_080D1C60 + b _0804819C + .align 2, 0 +_08048194: .4byte gUnk_080D1C60 +_08048198: + lsls r1, r2, #1 + ldr r0, _080481B8 @ =gUnk_080D1C50 +_0804819C: + adds r3, r1, r0 + ldr r2, _080481BC @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + ldrh r1, [r3] + adds r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x80 + strh r0, [r1] + ldrh r0, [r2, #8] + ldrh r3, [r3, #2] + adds r0, r0, r3 + adds r1, #2 + strh r0, [r1] + pop {r4, pc} + .align 2, 0 +_080481B8: .4byte gUnk_080D1C50 +_080481BC: .4byte gUnk_03000BF0 + + thumb_func_start sub_080481C0 +sub_080481C0: @ 0x080481C0 + push {lr} + ldr r1, _080481CC @ =gUnk_080D1CC8 + bl sub_0800129E + pop {pc} + .align 2, 0 +_080481CC: .4byte gUnk_080D1CC8 + + thumb_func_start sub_080481D0 +sub_080481D0: @ 0x080481D0 + push {lr} + ldr r2, _080481E4 @ =gUnk_080D1CE0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080481E4: .4byte gUnk_080D1CE0 + + thumb_func_start sub_080481E8 +sub_080481E8: @ 0x080481E8 + push {lr} + adds r2, r0, #0 + adds r0, #0x46 + ldrh r0, [r0] + cmp r0, #0 + beq _08048210 + movs r0, #2 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] + adds r3, r2, #0 + adds r3, #0x29 + ldrb r0, [r3] + movs r1, #7 + orrs r0, r1 + strb r0, [r3] + movs r0, #3 + b _08048212 +_08048210: + movs r0, #2 +_08048212: + strb r0, [r2, #0xe] + ldrb r1, [r2, #0xe] + adds r0, r2, #0 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start nullsub_26 +nullsub_26: @ 0x08048220 + bx lr + .align 2, 0 + + thumb_func_start sub_08048224 +sub_08048224: @ 0x08048224 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #4 + orrs r1, r0 + strb r1, [r2] + movs r0, #0x72 + bl sub_0807CBD0 + adds r1, r0, #0 + cmp r1, #0 + bne _0804824E + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + b _0804825E +_0804824E: + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #1 + strb r0, [r4, #0xe] +_0804825E: + ldrb r1, [r4, #0xe] + adds r0, r4, #0 + bl sub_08004260 + pop {r4, pc} + + thumb_func_start sub_08048268 +sub_08048268: @ 0x08048268 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08048292 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08048292 + movs r0, #0 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_08048292: + pop {r4, pc} + + thumb_func_start sub_08048294 +sub_08048294: @ 0x08048294 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080482BC + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x72 + bl sub_0807CCB4 + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_080482BC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start nullsub_27 +nullsub_27: @ 0x080482C0 + bx lr + .align 2, 0 + + thumb_func_start sub_080482C4 +sub_080482C4: @ 0x080482C4 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _080482D4 + bl sub_0805E780 +_080482D4: + ldr r0, _080482E8 @ =gUnk_080D1D48 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080482E8: .4byte gUnk_080D1D48 + + thumb_func_start sub_080482EC +sub_080482EC: @ 0x080482EC + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08048310 @ =gUnk_030010A0 + adds r0, #0x38 + ldrb r1, [r0] + movs r2, #1 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _08048314 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + b _08048326 + .align 2, 0 +_08048310: .4byte gUnk_030010A0 +_08048314: + strb r2, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + movs r0, #0xb3 + lsls r0, r0, #1 + bl sub_080A3268 +_08048326: + adds r0, r4, #0 + bl sub_080485D8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08048330 +sub_08048330: @ 0x08048330 + push {r4, lr} + adds r4, r0, #0 + bl sub_080485D8 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08048358 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_08048358: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0804835C +sub_0804835C: @ 0x0804835C + push {r4, lr} + adds r4, r0, #0 + bl sub_080485D8 + ldr r0, _08048384 @ =gUnk_030010A0 + adds r0, #0x39 + ldrb r1, [r0] + movs r2, #3 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _08048382 + strb r2, [r4, #0xc] + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r1, r0 + strb r1, [r4, #0x10] + movs r0, #0x80 + strh r0, [r4, #0x24] +_08048382: + pop {r4, pc} + .align 2, 0 +_08048384: .4byte gUnk_030010A0 + + thumb_func_start sub_08048388 +sub_08048388: @ 0x08048388 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r2, [r5, #0x50] + adds r0, r2, #0 + adds r0, #0x79 + ldrb r0, [r0] + cmp r0, #0 + beq _080483A0 + adds r0, r5, #0 + bl sub_080485D8 + b _080483F2 +_080483A0: + ldrb r1, [r5, #0xa] + lsls r1, r1, #1 + ldr r0, _080483F4 @ =gUnk_080D1D98 + adds r1, r1, r0 + movs r0, #0x2e + ldrsh r4, [r2, r0] + movs r0, #0 + ldrsb r0, [r1, r0] + adds r4, r4, r0 + movs r0, #0x32 + ldrsh r2, [r2, r0] + movs r0, #1 + ldrsb r0, [r1, r0] + adds r6, r2, r0 + movs r1, #0x2e + ldrsh r0, [r5, r1] + movs r2, #0x32 + ldrsh r1, [r5, r2] + adds r2, r4, #0 + adds r3, r6, #0 + bl sub_080045D4 + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_0806F69C + ldr r0, [r5, #0x50] + ldrh r0, [r0, #0x36] + strh r0, [r5, #0x36] + movs r1, #0x2e + ldrsh r0, [r5, r1] + cmp r0, r4 + bne _080483F2 + movs r2, #0x32 + ldrsh r0, [r5, r2] + cmp r0, r6 + bne _080483F2 + movs r0, #4 + strb r0, [r5, #0xc] + movs r0, #0x3c + strb r0, [r5, #0xe] +_080483F2: + pop {r4, r5, r6, pc} + .align 2, 0 +_080483F4: .4byte gUnk_080D1D98 + + thumb_func_start sub_080483F8 +sub_080483F8: @ 0x080483F8 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_080485FC + ldrb r0, [r4, #0xe] + adds r5, r0, #0 + cmp r5, #0 + beq _0804841C + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08048436 + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 + b _08048436 +_0804841C: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08048436 + movs r0, #5 + strb r0, [r4, #0xc] + strb r5, [r4, #0xe] +_08048436: + pop {r4, r5, pc} + + thumb_func_start sub_08048438 +sub_08048438: @ 0x08048438 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0804846A + movs r0, #6 + strb r0, [r4, #0xc] + ldr r0, [r4, #0x50] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0x14 + bls _08048454 + movs r0, #0x78 + b _08048456 +_08048454: + movs r0, #0x3c +_08048456: + strb r0, [r4, #0xe] + movs r0, #0 + str r0, [r4, #0x54] + adds r0, r4, #0 + movs r1, #5 + bl sub_08004260 + ldr r0, _08048474 @ =0x0000019B + bl sub_080A3268 +_0804846A: + adds r0, r4, #0 + bl sub_080485FC + pop {r4, pc} + .align 2, 0 +_08048474: .4byte 0x0000019B + + thumb_func_start sub_08048478 +sub_08048478: @ 0x08048478 + push {r4, lr} + adds r4, r0, #0 + bl sub_080485FC + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + adds r2, r0, #0 + cmp r2, #0 + beq _080484A2 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080484E6 + adds r0, r4, #0 + movs r1, #6 + bl sub_08004260 + b _080484E6 +_080484A2: + adds r3, r4, #0 + adds r3, #0x5a + ldrb r1, [r3] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080484BC + movs r0, #7 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + strb r2, [r4, #0xf] + b _080484E6 +_080484BC: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080484E6 + movs r0, #0xfe + ands r0, r1 + strb r0, [r3] + movs r0, #0x24 + bl sub_080A7EE0 + adds r1, r0, #0 + cmp r1, #0 + beq _080484E6 + str r4, [r1, #0x50] + str r1, [r4, #0x54] + movs r3, #0xc0 + lsls r3, r3, #0xc + adds r0, r4, #0 + movs r2, #0 + bl sub_0806FA48 +_080484E6: + pop {r4, pc} + + thumb_func_start sub_080484E8 +sub_080484E8: @ 0x080484E8 + push {r4, lr} + adds r4, r0, #0 + bl sub_080485FC + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _08048528 + movs r0, #8 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #0x1f + movs r2, #0x40 + bl sub_080A29AC + ldr r2, [r4, #0x50] + adds r2, #0x7b + movs r0, #0x10 + b _08048542 +_08048528: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0804854C + movs r0, #5 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + ldr r2, [r4, #0x50] + adds r2, #0x7b + movs r0, #1 +_08048542: + ldrb r4, [r4, #0xa] + lsls r0, r4 + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] +_0804854C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08048550 +sub_08048550: @ 0x08048550 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #0xb + bne _08048562 + movs r0, #0x3c + strb r0, [r4, #0xe] + b _0804859E +_08048562: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0804859E + movs r0, #9 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_080485FC + movs r0, #0xb3 + lsls r0, r0, #1 + bl sub_080A3268 +_0804859E: + pop {r4, pc} + + thumb_func_start sub_080485A0 +sub_080485A0: @ 0x080485A0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080485FC + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080485D6 + movs r0, #4 + strb r0, [r4, #0xc] + movs r1, #1 + strb r1, [r4, #0xe] + ldr r2, [r4, #0x50] + adds r2, #0x7b + ldrb r3, [r2] + movs r0, #0xf + ands r0, r3 + ldrb r4, [r4, #0xa] + lsls r1, r4 + orrs r0, r1 + strb r0, [r2] +_080485D6: + pop {r4, pc} + + thumb_func_start sub_080485D8 +sub_080485D8: @ 0x080485D8 + push {lr} + adds r1, r0, #0 + ldrb r3, [r1, #0xa] + lsls r3, r3, #1 + ldr r0, _080485F8 @ =gUnk_080D1D70 + adds r3, r3, r0 + ldr r0, [r1, #0x50] + movs r2, #0 + ldrsb r2, [r3, r2] + ldrb r3, [r3, #1] + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + bl sub_0806FA90 + pop {pc} + .align 2, 0 +_080485F8: .4byte gUnk_080D1D70 + + thumb_func_start sub_080485FC +sub_080485FC: @ 0x080485FC + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + ldr r0, _08048638 @ =gUnk_080D1D98 + adds r1, r1, r0 + ldr r0, [r4, #0x50] + movs r2, #0 + ldrsb r2, [r1, r2] + movs r3, #1 + ldrsb r3, [r1, r3] + adds r1, r4, #0 + bl sub_0806FA90 + ldr r3, _0804863C @ =gUnk_080D1D78 + ldrb r1, [r4, #0xa] + lsls r1, r1, #3 + ldr r0, [r4, #0x50] + adds r0, #0x78 + ldrb r0, [r0] + lsrs r0, r0, #4 + movs r2, #7 + ands r0, r2 + adds r1, r1, r0 + adds r1, r1, r3 + movs r0, #0 + ldrsb r0, [r1, r0] + strh r0, [r4, #0x36] + pop {r4, pc} + .align 2, 0 +_08048638: .4byte gUnk_080D1D98 +_0804863C: .4byte gUnk_080D1D78 + + thumb_func_start sub_08048640 +sub_08048640: @ 0x08048640 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _0804867C @ =gUnk_030010A0 + adds r0, #0x39 + ldrb r2, [r0] + cmp r2, #0 + bne _08048664 + ldrb r1, [r5, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + adds r0, r5, #0 + adds r0, #0x45 + strb r2, [r0] + adds r1, r5, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] +_08048664: + ldr r4, _08048680 @ =gUnk_080D1E6C + adds r0, r5, #0 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_0804867C: .4byte gUnk_030010A0 +_08048680: .4byte gUnk_080D1E6C + + thumb_func_start sub_08048684 +sub_08048684: @ 0x08048684 + push {lr} + ldr r2, _08048698 @ =gUnk_080D1E84 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08048698: .4byte gUnk_080D1E84 + + thumb_func_start sub_0804869C +sub_0804869C: @ 0x0804869C + push {lr} + ldr r1, _080486A8 @ =gUnk_080D1E6C + bl sub_0804AA30 + pop {pc} + .align 2, 0 +_080486A8: .4byte gUnk_080D1E6C + + thumb_func_start sub_080486AC +sub_080486AC: @ 0x080486AC + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F520 + cmp r0, #0 + beq _080486C8 + ldr r0, _080486CC @ =gUnk_080D1E94 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_080486C8: + pop {r4, pc} + .align 2, 0 +_080486CC: .4byte gUnk_080D1E94 + + thumb_func_start sub_080486D0 +sub_080486D0: @ 0x080486D0 + movs r1, #2 + strb r1, [r0, #0xd] + bx lr + .align 2, 0 + + thumb_func_start sub_080486D8 +sub_080486D8: @ 0x080486D8 + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_080486E0 +sub_080486E0: @ 0x080486E0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _080486F2 + adds r0, r4, #0 + bl sub_0804A7D4 +_080486F2: + pop {r4, pc} + + thumb_func_start sub_080486F4 +sub_080486F4: @ 0x080486F4 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #1 + strb r5, [r4, #0x1c] + ldrb r0, [r4, #0x1b] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + orrs r0, r1 + strb r0, [r4, #0x19] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4, #0x15] + lsrs r0, r0, #2 + strb r0, [r4, #0x14] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0804876C + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 + strb r5, [r4, #0xc] + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + bl sub_08000E50 + movs r1, #0xb + bl __modsi3 + ldrb r1, [r4, #0x15] + adds r1, r1, r0 + subs r1, #5 + movs r2, #0x1f + ands r1, r2 + strb r1, [r4, #0x15] + lsls r0, r0, #1 + ldr r2, _08048768 @ =gUnk_080D1EA0 + adds r1, r0, r2 + ldrb r1, [r1] + strb r1, [r4, #0xe] + adds r0, #1 + adds r0, r0, r2 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x7b + strb r0, [r1] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + b _0804877A + .align 2, 0 +_08048768: .4byte gUnk_080D1EA0 +_0804876C: + movs r0, #2 + strb r0, [r4, #0xc] + strb r5, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #6 + ands r0, r1 + strb r0, [r4, #0x18] +_0804877A: + pop {r4, r5, pc} + + thumb_func_start sub_0804877C +sub_0804877C: @ 0x0804877C + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080487AA + subs r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + ands r0, r1 + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _080487AA + adds r0, r4, #0 + adds r0, #0x7b + ldrb r0, [r0] + ldrb r1, [r4, #0x15] + adds r0, r0, r1 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] +_080487AA: + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + cmp r0, #1 + beq _080487D4 + cmp r0, #1 + bgt _080487BC + cmp r0, #0 + beq _080487C2 + b _08048804 +_080487BC: + cmp r0, #2 + beq _080487EC + b _08048804 +_080487C2: + movs r2, #0x32 + ldrsh r1, [r4, r2] + ldr r0, _080487D0 @ =gUnk_03000BF0 + movs r2, #0xc + ldrsh r0, [r0, r2] + b _0804880E + .align 2, 0 +_080487D0: .4byte gUnk_03000BF0 +_080487D4: + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r0, _080487E8 @ =gUnk_03000BF0 + movs r2, #0xa + ldrsh r0, [r0, r2] + movs r2, #0x84 + lsls r2, r2, #1 + adds r0, r0, r2 + b _080487F8 + .align 2, 0 +_080487E8: .4byte gUnk_03000BF0 +_080487EC: + movs r0, #0x32 + ldrsh r1, [r4, r0] + ldr r0, _08048800 @ =gUnk_03000BF0 + movs r2, #0xc + ldrsh r0, [r0, r2] + adds r0, #0xb8 +_080487F8: + cmp r1, r0 + blt _08048824 + b _08048814 + .align 2, 0 +_08048800: .4byte gUnk_03000BF0 +_08048804: + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r0, _08048828 @ =gUnk_03000BF0 + movs r2, #0xa + ldrsh r0, [r0, r2] +_0804880E: + subs r0, #0x18 + cmp r1, r0 + bgt _08048824 +_08048814: + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x5a + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #0x5e + ands r0, r1 + strb r0, [r4, #0x18] +_08048824: + pop {r4, pc} + .align 2, 0 +_08048828: .4byte gUnk_03000BF0 + + thumb_func_start sub_0804882C +sub_0804882C: @ 0x0804882C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080488FA + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + bl sub_08000E50 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x78 + ldrh r0, [r0] + strh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + adds r0, #0x7a + ldrb r0, [r0] + strb r0, [r4, #0x15] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1a + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + cmp r0, #1 + beq _080488D0 + cmp r0, #1 + bgt _080488AA + cmp r0, #0 + beq _080488AE + b _080488D0 +_080488AA: + cmp r0, #2 + bne _080488D0 +_080488AE: + ldr r1, _080488C8 @ =gUnk_03001160 + adds r0, r4, #0 + adds r0, #0x74 + ldrh r0, [r0] + ldrh r1, [r1, #0x2e] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + ldr r1, _080488CC @ =gUnk_03000BF0 + adds r0, r4, #0 + adds r0, #0x76 + ldrh r0, [r0] + ldrh r1, [r1, #0xc] + b _080488E8 + .align 2, 0 +_080488C8: .4byte gUnk_03001160 +_080488CC: .4byte gUnk_03000BF0 +_080488D0: + ldr r1, _080488FC @ =gUnk_03000BF0 + adds r0, r4, #0 + adds r0, #0x74 + ldrh r0, [r0] + ldrh r1, [r1, #0xa] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + ldr r1, _08048900 @ =gUnk_03001160 + adds r0, r4, #0 + adds r0, #0x76 + ldrh r0, [r0] + ldrh r1, [r1, #0x32] +_080488E8: + adds r0, r0, r1 + strh r0, [r4, #0x32] + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _080488FA + movs r0, #0xcc + lsls r0, r0, #1 + bl sub_080A3268 +_080488FA: + pop {r4, pc} + .align 2, 0 +_080488FC: .4byte gUnk_03000BF0 +_08048900: .4byte gUnk_03001160 + + thumb_func_start sub_08048904 +sub_08048904: @ 0x08048904 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + cmp r0, #1 + beq _0804893C + cmp r0, #1 + bgt _08048924 + cmp r0, #0 + beq _0804892A + b _0804896C +_08048924: + cmp r0, #2 + beq _08048954 + b _0804896C +_0804892A: + movs r0, #0x32 + ldrsh r1, [r4, r0] + ldr r0, _08048938 @ =gUnk_03000BF0 + movs r2, #0xc + ldrsh r0, [r0, r2] + b _08048976 + .align 2, 0 +_08048938: .4byte gUnk_03000BF0 +_0804893C: + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r0, _08048950 @ =gUnk_03000BF0 + movs r2, #0xa + ldrsh r0, [r0, r2] + movs r2, #0x8c + lsls r2, r2, #1 + adds r0, r0, r2 + b _08048960 + .align 2, 0 +_08048950: .4byte gUnk_03000BF0 +_08048954: + movs r0, #0x32 + ldrsh r1, [r4, r0] + ldr r0, _08048968 @ =gUnk_03000BF0 + movs r2, #0xc + ldrsh r0, [r0, r2] + adds r0, #0xc8 +_08048960: + cmp r1, r0 + blt _08048980 + b _0804897C + .align 2, 0 +_08048968: .4byte gUnk_03000BF0 +_0804896C: + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r0, _08048984 @ =gUnk_03000BF0 + movs r2, #0xa + ldrsh r0, [r0, r2] +_08048976: + subs r0, #0x28 + cmp r1, r0 + bgt _08048980 +_0804897C: + bl sub_0805E780 +_08048980: + pop {r4, pc} + .align 2, 0 +_08048984: .4byte gUnk_03000BF0 + + thumb_func_start sub_08048988 +sub_08048988: @ 0x08048988 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, [r5, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _08048998 + bl sub_0805E780 +_08048998: + ldr r4, _080489B0 @ =gUnk_080D1F64 + adds r0, r5, #0 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080489B0: .4byte gUnk_080D1F64 + + thumb_func_start sub_080489B4 +sub_080489B4: @ 0x080489B4 + push {lr} + ldr r2, _080489C8 @ =gUnk_080D1F7C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080489C8: .4byte gUnk_080D1F7C + + thumb_func_start sub_080489CC +sub_080489CC: @ 0x080489CC + push {r4, r5, r6, lr} + mov ip, r0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0xff + bne _080489DA + b _08048AD8 +_080489DA: + mov r0, ip + ldr r4, [r0, #0x50] + adds r0, r4, #0 + adds r0, #0x78 + ldrb r0, [r0] + mov r2, ip + ldrb r1, [r2, #0xa] + asrs r0, r1 + movs r3, #1 + ands r0, r3 + cmp r0, #0 + beq _08048AD8 + adds r2, r4, #0 + adds r2, #0x7c + adds r0, r3, #0 + lsls r0, r1 + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + mov r0, ip + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + subs r0, #4 + cmp r0, #0x16 + bhi _08048AD0 + lsls r0, r0, #2 + ldr r1, _08048A1C @ =_08048A20 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08048A1C: .4byte _08048A20 +_08048A20: @ jump table + .4byte _08048A7C @ case 0 + .4byte _08048A7C @ case 1 + .4byte _08048A7C @ case 2 + .4byte _08048AD0 @ case 3 + .4byte _08048A7C @ case 4 + .4byte _08048A7C @ case 5 + .4byte _08048A7C @ case 6 + .4byte _08048A7C @ case 7 + .4byte _08048A7C @ case 8 + .4byte _08048A7C @ case 9 + .4byte _08048AD0 @ case 10 + .4byte _08048AD0 @ case 11 + .4byte _08048A7C @ case 12 + .4byte _08048A7C @ case 13 + .4byte _08048A7C @ case 14 + .4byte _08048AD0 @ case 15 + .4byte _08048AD0 @ case 16 + .4byte _08048AD0 @ case 17 + .4byte _08048AD0 @ case 18 + .4byte _08048AD0 @ case 19 + .4byte _08048A7C @ case 20 + .4byte _08048A7C @ case 21 + .4byte _08048A7C @ case 22 +_08048A7C: + ldr r3, [r4, #0x64] + mov r5, ip + ldrb r0, [r5, #0xa] + lsls r0, r0, #2 + adds r1, r3, #0 + adds r1, #0x18 + adds r1, r1, r0 + ldr r0, [r5, #0x4c] + str r0, [r1] + ldr r2, _08048ACC @ =gUnk_03001160 + movs r6, #0x2e + ldrsh r0, [r2, r6] + movs r6, #0x2e + ldrsh r1, [r5, r6] + adds r0, r0, r1 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + strh r0, [r3, #0x38] + ldr r3, [r4, #0x64] + movs r1, #0x32 + ldrsh r0, [r2, r1] + movs r2, #0x32 + ldrsh r1, [r5, r2] + adds r0, r0, r1 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + strh r0, [r3, #0x3a] + ldr r2, [r4, #0x64] + mov r3, ip + adds r3, #0x3e + ldrb r0, [r3] + movs r1, #0x10 + eors r0, r1 + strb r0, [r3] + adds r2, #0x3c + strb r0, [r2] + b _08048AD8 + .align 2, 0 +_08048ACC: .4byte gUnk_03001160 +_08048AD0: + ldr r0, [r4, #0x64] + adds r0, #0x3c + movs r1, #0xff + strb r1, [r0] +_08048AD8: + mov r1, ip + adds r1, #0x45 + movs r0, #0xff + strb r0, [r1] + ldr r1, _08048AEC @ =gUnk_080D1F64 + mov r0, ip + bl sub_0804AA30 + pop {r4, r5, r6, pc} + .align 2, 0 +_08048AEC: .4byte gUnk_080D1F64 + + thumb_func_start sub_08048AF0 +sub_08048AF0: @ 0x08048AF0 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0xff + strb r1, [r0, #0x14] + ldrb r3, [r0, #0x1b] + movs r2, #0x3f + adds r1, r2, #0 + ands r1, r3 + movs r3, #0x80 + orrs r1, r3 + strb r1, [r0, #0x1b] + ldrb r1, [r0, #0x19] + ands r2, r1 + orrs r2, r3 + strb r2, [r0, #0x19] + adds r3, r0, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r2, #7 + orrs r1, r2 + strb r1, [r3] + adds r2, r0, #0 + adds r2, #0x38 + movs r1, #2 + strb r1, [r2] + bl sub_08048D20 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08048B2C +sub_08048B2C: @ 0x08048B2C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08048D20 + ldr r5, [r4, #0x50] + adds r0, r5, #0 + bl sub_08048D70 + cmp r0, #0 + beq _08048B62 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + cmp r0, #0 + bne _08048B52 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0x40 + bl sub_080A29AC +_08048B52: + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r4, #0x18] + b _08048B6C +_08048B62: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_08048B6C: + adds r0, r5, #0 + adds r0, #0x78 + ldrb r0, [r0] + ldrb r1, [r4, #0xa] + asrs r0, r1 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08048B82 + movs r0, #2 + strb r0, [r4, #0xc] +_08048B82: + pop {r4, r5, pc} + + thumb_func_start sub_08048B84 +sub_08048B84: @ 0x08048B84 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08048BAE + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x1e + strb r0, [r1] +_08048BAE: + pop {r4, pc} + + thumb_func_start sub_08048BB0 +sub_08048BB0: @ 0x08048BB0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r2, [r4, #0x50] + adds r0, r2, #0 + adds r0, #0x78 + ldrb r3, [r0] + ldrb r1, [r4, #0xa] + adds r0, r3, #0 + asrs r0, r1 + movs r6, #1 + ands r0, r6 + cmp r0, #0 + bne _08048C34 + adds r0, r2, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _08048BFC + movs r0, #4 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldr r1, _08048BF8 @ =gUnk_080D2030 + ldrb r0, [r4, #0x14] + lsls r0, r0, #3 + ldrb r2, [r4, #0xa] + adds r0, r0, r2 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08004260 + b _08048CEA + .align 2, 0 +_08048BF8: .4byte gUnk_080D2030 +_08048BFC: + strb r6, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + ldr r1, _08048C30 @ =gUnk_080D2010 + ldrb r0, [r4, #0x14] + lsls r0, r0, #3 + ldrb r2, [r4, #0xa] + adds r0, r0, r2 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0x40 + bl sub_080A29AC + b _08048CEA + .align 2, 0 +_08048C30: .4byte gUnk_080D2010 +_08048C34: + adds r5, r2, #0 + adds r5, #0x80 + ldrb r0, [r5] + asrs r0, r1 + ands r0, r6 + cmp r0, #0 + beq _08048CBC + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0x13 + bhi _08048C6C + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0xf4 + strb r0, [r1] + adds r1, #2 + movs r0, #0x89 + strb r0, [r1] + ldrb r1, [r2, #0x14] + lsrs r1, r1, #6 + adds r1, #0x14 + adds r0, r4, #0 + bl sub_08004260 + ldr r0, _08048CB4 @ =0x00000119 + bl sub_080A3268 +_08048C6C: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08048CEA + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x1e + strb r0, [r1] + ldr r1, _08048CB8 @ =gUnk_080D2010 + ldrb r0, [r4, #0x14] + lsls r0, r0, #3 + ldrb r2, [r4, #0xa] + adds r0, r0, r2 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + movs r1, #7 + bl sub_08004276 + adds r1, r6, #0 + ldrb r4, [r4, #0xa] + lsls r1, r4 + ldrb r0, [r5] + bics r0, r1 + strb r0, [r5] + b _08048CEA + .align 2, 0 +_08048CB4: .4byte 0x00000119 +_08048CB8: .4byte gUnk_080D2010 +_08048CBC: + cmp r3, #0xff + bne _08048CEA + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + subs r0, #0x10 + cmp r0, #3 + bls _08048CE4 + ldrb r1, [r4, #0x14] + adds r1, #0x10 + adds r0, r4, #0 + bl sub_08004260 + bl sub_08000E50 + movs r1, #0x1c + ands r1, r0 + adds r0, r4, #0 + bl sub_08004276 +_08048CE4: + adds r0, r4, #0 + bl sub_08004274 +_08048CEA: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08048CEC +sub_08048CEC: @ 0x08048CEC + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08048D1A + movs r0, #1 + strb r0, [r4, #0xc] + ldr r1, _08048D1C @ =gUnk_080D2010 + ldrb r0, [r4, #0x14] + lsls r0, r0, #3 + ldrb r2, [r4, #0xa] + adds r0, r0, r2 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08004260 +_08048D1A: + pop {r4, pc} + .align 2, 0 +_08048D1C: .4byte gUnk_080D2010 + + thumb_func_start sub_08048D20 +sub_08048D20: @ 0x08048D20 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0x14] + lsrs r0, r0, #6 + ldrb r1, [r4, #0x14] + cmp r0, r1 + beq _08048D60 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0xa] + lsls r3, r0, #3 + adds r1, r1, r3 + lsls r1, r1, #2 + ldr r0, _08048D64 @ =gUnk_080D1F90 + adds r1, r1, r0 + ldr r2, _08048D68 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + ldrh r5, [r1] + adds r0, r0, r5 + strh r0, [r4, #0x2e] + ldrh r0, [r2, #8] + ldrh r1, [r1, #2] + adds r0, r0, r1 + strh r0, [r4, #0x32] + ldr r1, _08048D6C @ =gUnk_080D2010 + ldrb r0, [r4, #0xa] + adds r0, r0, r3 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08004260 +_08048D60: + pop {r4, r5, pc} + .align 2, 0 +_08048D64: .4byte gUnk_080D1F90 +_08048D68: .4byte gUnk_03000BF0 +_08048D6C: .4byte gUnk_080D2010 + + thumb_func_start sub_08048D70 +sub_08048D70: @ 0x08048D70 + push {lr} + adds r1, r0, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _08048D8E + ldr r1, [r1, #0x64] + ldr r0, [r1, #8] + cmp r0, #0 + bne _08048D86 + ldr r0, [r1, #0xc] +_08048D86: + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _08048D92 +_08048D8E: + movs r0, #1 + b _08048D94 +_08048D92: + movs r0, #0 +_08048D94: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08048D98 +sub_08048D98: @ 0x08048D98 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r6, [r5, #0x50] + ldr r0, [r6, #4] + cmp r0, #0 + bne _08048DA8 + bl sub_0805E780 +_08048DA8: + ldr r4, _08048E00 @ =gUnk_080D22D8 + adds r0, r5, #0 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + ldrb r2, [r6, #0x1b] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r5, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r5, #0x1b] + ldrb r0, [r6, #0x19] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r5, #0x19] + ands r1, r2 + orrs r1, r0 + strb r1, [r5, #0x19] + adds r0, r6, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + subs r1, #1 + adds r3, r5, #0 + adds r3, #0x29 + movs r0, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + pop {r4, r5, r6, pc} + .align 2, 0 +_08048E00: .4byte gUnk_080D22D8 + + thumb_func_start sub_08048E04 +sub_08048E04: @ 0x08048E04 + push {lr} + ldr r2, _08048E18 @ =gUnk_080D22F0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08048E18: .4byte gUnk_080D22F0 + + thumb_func_start sub_08048E1C +sub_08048E1C: @ 0x08048E1C + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x45 + ldrb r1, [r0] + movs r0, #0xff + subs r0, r0, r1 + cmp r0, #0 + beq _08048E96 + ldr r4, [r5, #0x50] + adds r1, r4, #0 + adds r1, #0x45 + ldrb r2, [r1] + cmp r2, r0 + bls _08048E48 + subs r0, r2, r0 + strb r0, [r1] + ldr r0, _08048E44 @ =0x00000127 + bl sub_080A3268 + b _08048E5C + .align 2, 0 +_08048E44: .4byte 0x00000127 +_08048E48: + movs r0, #0 + strb r0, [r1] + movs r0, #0x94 + lsls r0, r0, #1 + bl sub_080A3268 + movs r0, #0x28 + movs r1, #0 + bl sub_08080964 +_08048E5C: + adds r2, r5, #0 + adds r2, #0x3d + ldrb r1, [r2] + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0 + ble _08048E8E + adds r0, r4, #0 + adds r0, #0x3d + strb r1, [r0] + ldr r4, [r4, #0x54] + ldrb r0, [r2] + adds r1, r4, #0 + adds r1, #0x3d + strb r0, [r1] + ldr r4, [r4, #0x54] + ldrb r0, [r2] + adds r1, r4, #0 + adds r1, #0x3d + strb r0, [r1] + ldr r4, [r4, #0x54] + ldrb r1, [r2] + adds r0, r4, #0 + adds r0, #0x3d + strb r1, [r0] +_08048E8E: + adds r1, r5, #0 + adds r1, #0x45 + movs r0, #0xff + strb r0, [r1] +_08048E96: + ldr r1, _08048EA0 @ =gUnk_080D22D8 + adds r0, r5, #0 + bl sub_0804AA30 + pop {r4, r5, pc} + .align 2, 0 +_08048EA0: .4byte gUnk_080D22D8 + + thumb_func_start sub_08048EA4 +sub_08048EA4: @ 0x08048EA4 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, [r4, #0x50] + ldrb r1, [r0, #0x14] + movs r0, #0xe0 + ands r0, r1 + lsrs r0, r0, #3 + ldrb r1, [r4, #0xa] + adds r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x78 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08048F50 + adds r0, r4, #0 + bl sub_08048F74 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08048ED0 +sub_08048ED0: @ 0x08048ED0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08048F50 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08048EFC + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r0, #0x2d + strb r0, [r4, #0xe] +_08048EFC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08048F00 +sub_08048F00: @ 0x08048F00 + push {r4, lr} + adds r4, r0, #0 + bl sub_08048F50 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08048F2E + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 +_08048F2E: + pop {r4, pc} + + thumb_func_start sub_08048F30 +sub_08048F30: @ 0x08048F30 + push {r4, lr} + adds r4, r0, #0 + bl sub_08048F50 + adds r0, r4, #0 + bl sub_08004274 + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08048F4E + bl sub_0805E780 +_08048F4E: + pop {r4, pc} + + thumb_func_start sub_08048F50 +sub_08048F50: @ 0x08048F50 + push {lr} + adds r1, r0, #0 + adds r0, #0x78 + ldrb r3, [r0] + lsls r3, r3, #1 + ldr r0, _08048F70 @ =gUnk_080D2300 + adds r3, r3, r0 + ldr r0, [r1, #0x50] + movs r2, #0 + ldrsb r2, [r3, r2] + ldrb r3, [r3, #1] + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + bl sub_0806FA90 + pop {pc} + .align 2, 0 +_08048F70: .4byte gUnk_080D2300 + + thumb_func_start sub_08048F74 +sub_08048F74: @ 0x08048F74 + push {lr} + ldr r2, _08048F88 @ =gUnk_080D2348 + adds r1, r0, #0 + adds r1, #0x78 + ldrb r1, [r1] + adds r1, r1, r2 + ldrb r1, [r1] + bl sub_08004260 + pop {pc} + .align 2, 0 +_08048F88: .4byte gUnk_080D2348 + + thumb_func_start sub_08048F8C +sub_08048F8C: @ 0x08048F8C + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _08048F9C + bl sub_0805E780 +_08048F9C: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08048FD4 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r2, [r4, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x80 + orrs r0, r2 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x19] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + movs r0, #0xff + strb r0, [r4, #0x14] +_08048FD4: + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0x14] + lsrs r0, r0, #5 + lsls r6, r0, #0x18 + lsrs r5, r6, #0x18 + ldrb r0, [r4, #0x14] + cmp r5, r0 + beq _08049018 + strb r5, [r4, #0x14] + ldr r3, _08049010 @ =gUnk_080D28CC + lsls r1, r5, #1 + adds r1, r1, r3 + ldr r2, _08049014 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + ldrh r1, [r1] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + adds r1, r5, #1 + lsls r1, r1, #1 + adds r1, r1, r3 + ldrh r0, [r2, #8] + ldrh r1, [r1] + adds r0, r0, r1 + strh r0, [r4, #0x32] + lsrs r1, r6, #0x19 + adds r0, r4, #0 + bl sub_08004260 + b _0804901E + .align 2, 0 +_08049010: .4byte gUnk_080D28CC +_08049014: .4byte gUnk_03000BF0 +_08049018: + adds r0, r4, #0 + bl sub_08004274 +_0804901E: + movs r0, #2 + ands r0, r5 + cmp r0, #0 + beq _08049038 + ldr r0, _08049034 @ =gUnk_03001160 + movs r2, #0x32 + ldrsh r1, [r4, r2] + movs r2, #0x32 + ldrsh r0, [r0, r2] + b _08049042 + .align 2, 0 +_08049034: .4byte gUnk_03001160 +_08049038: + ldr r0, _08049054 @ =gUnk_03001160 + movs r2, #0x2e + ldrsh r1, [r4, r2] + movs r2, #0x2e + ldrsh r0, [r0, r2] +_08049042: + cmp r1, r0 + bge _08049048 + adds r5, #1 +_08049048: + ldr r0, _08049058 @ =gUnk_080D28AC + lsls r1, r5, #2 + adds r1, r1, r0 + ldr r0, [r1] + str r0, [r4, #0x48] + pop {r4, r5, r6, pc} + .align 2, 0 +_08049054: .4byte gUnk_03001160 +_08049058: .4byte gUnk_080D28AC + + thumb_func_start sub_0804905C +sub_0804905C: @ 0x0804905C + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + beq _0804907C + adds r0, r5, #0 + adds r0, #0x7d + ldrb r1, [r0] + movs r0, #3 + ands r1, r0 + ldrb r2, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x18] +_0804907C: + adds r1, r5, #0 + adds r1, #0x45 + ldrb r0, [r1] + adds r2, r0, #0 + cmp r2, #0 + bne _08049092 + movs r0, #0xff + strb r0, [r1] + movs r0, #4 + strb r0, [r5, #0xc] + strb r2, [r5, #0xd] +_08049092: + ldr r1, _080490F8 @ =gUnk_080D2974 + ldrb r0, [r5, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + adds r4, r5, #0 + adds r4, #0x78 + ldrh r3, [r4] + adds r0, r5, #0 + movs r1, #0xaa + movs r2, #0xaa + bl sub_0805EC9C + ldrh r0, [r4] + lsrs r0, r0, #8 + rsbs r0, r0, #0 + strb r0, [r5, #0x14] + adds r0, r5, #0 + bl sub_080499F0 + ldrb r0, [r5, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + adds r1, r5, #0 + adds r1, #0x7d + strb r0, [r1] + ldrb r2, [r5, #0x18] + lsls r0, r2, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _080490F4 + movs r1, #0x32 + ldrsh r0, [r5, r1] + ldr r1, _080490FC @ =gUnk_03000BF0 + movs r3, #0xc + ldrsh r1, [r1, r3] + subs r0, r0, r1 + adds r0, #0x30 + movs r1, #0x80 + lsls r1, r1, #1 + cmp r0, r1 + bls _080490F4 + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r5, #0x18] +_080490F4: + pop {r4, r5, pc} + .align 2, 0 +_080490F8: .4byte gUnk_080D2974 +_080490FC: .4byte gUnk_03000BF0 + + thumb_func_start sub_08049100 +sub_08049100: @ 0x08049100 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x7c + bl sub_0807CBE4 + cmp r0, #0 + beq _08049144 + ldr r4, _08049140 @ =0x00004081 + adds r0, r4, #0 + movs r1, #0xa + movs r2, #2 + bl sub_0800015E + adds r0, r4, #0 + movs r1, #0x4a + movs r2, #2 + bl sub_0800015E + adds r0, r4, #0 + movs r1, #0x8a + movs r2, #2 + bl sub_0800015E + adds r0, r4, #0 + movs r1, #0xca + movs r2, #2 + bl sub_0800015E + bl sub_0805E780 + b _0804916E + .align 2, 0 +_08049140: .4byte 0x00004081 +_08049144: + ldr r4, _080491E8 @ =0x00000323 + adds r0, r4, #0 + movs r1, #0xa + movs r2, #1 + bl sub_0807B7D8 + adds r0, r4, #0 + movs r1, #0x4a + movs r2, #1 + bl sub_0807B7D8 + adds r0, r4, #0 + movs r1, #0x8a + movs r2, #1 + bl sub_0807B7D8 + adds r0, r4, #0 + movs r1, #0xca + movs r2, #1 + bl sub_0807B7D8 +_0804916E: + movs r0, #0x22 + bl sub_080A7EE0 + adds r2, r0, #0 + cmp r2, #0 + beq _080491E4 + movs r1, #0 + movs r3, #1 + movs r0, #1 + strb r0, [r2, #0xa] + str r5, [r2, #0x50] + str r2, [r5, #0x54] + strb r0, [r5, #0xc] + strb r1, [r5, #0xd] + movs r0, #0x3c + strb r0, [r5, #0xe] + movs r0, #0xc0 + strb r0, [r5, #0x15] + strb r0, [r5, #0x14] + movs r4, #0 + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r5, #0x24] + ldrb r1, [r5, #0x19] + movs r0, #3 + orrs r1, r0 + ldrb r2, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r3 + strb r0, [r5, #0x18] + ldrb r2, [r5, #0x1b] + movs r3, #0x3f + adds r0, r3, #0 + ands r0, r2 + movs r2, #0x80 + orrs r0, r2 + strb r0, [r5, #0x1b] + ands r1, r3 + orrs r1, r2 + strb r1, [r5, #0x19] + adds r1, r5, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x7c + strb r4, [r0] + subs r0, #4 + movs r1, #0x80 + lsls r1, r1, #7 + strh r1, [r0] + adds r0, #2 + strh r1, [r0] + adds r0, r5, #0 + movs r1, #0 + bl sub_080042AC +_080491E4: + pop {r4, r5, pc} + .align 2, 0 +_080491E8: .4byte 0x00000323 + + thumb_func_start sub_080491EC +sub_080491EC: @ 0x080491EC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08049208 @ =gUnk_080D2988 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 +_08049208: .4byte gUnk_080D2988 + + thumb_func_start sub_0804920C +sub_0804920C: @ 0x0804920C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0804921C + subs r0, #1 + strb r0, [r4, #0xe] + b _08049268 +_0804921C: + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08049998 + ldr r2, _0804926C @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + ldr r1, _08049270 @ =0xFFFFFF00 + adds r0, r0, r1 + movs r3, #0x2e + ldrsh r1, [r4, r3] + cmp r0, r1 + ble _08049268 + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x80 + strb r0, [r4, #0x15] + strb r0, [r4, #0x14] + movs r0, #0xc0 + strh r0, [r4, #0x24] + ldrh r0, [r2, #6] + adds r0, #0xa8 + strh r0, [r4, #0x2e] + ldrh r0, [r2, #8] + subs r0, #0x40 + strh r0, [r4, #0x32] + adds r0, r4, #0 + adds r0, #0x78 + movs r1, #0x80 + lsls r1, r1, #8 + strh r1, [r0] + adds r0, #2 + strh r1, [r0] +_08049268: + pop {r4, pc} + .align 2, 0 +_0804926C: .4byte gUnk_03000BF0 +_08049270: .4byte 0xFFFFFF00 + + thumb_func_start sub_08049274 +sub_08049274: @ 0x08049274 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08049998 + ldr r0, _080492A4 @ =gUnk_03000BF0 + ldrh r0, [r0, #8] + adds r0, #0x40 + movs r2, #0x32 + ldrsh r1, [r4, r2] + cmp r0, r1 + bge _080492A2 + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_080492A2: + pop {r4, pc} + .align 2, 0 +_080492A4: .4byte gUnk_03000BF0 + + thumb_func_start sub_080492A8 +sub_080492A8: @ 0x080492A8 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080492C4 @ =gUnk_080D2990 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 +_080492C4: .4byte gUnk_080D2990 + + thumb_func_start sub_080492C8 +sub_080492C8: @ 0x080492C8 + push {r4, r5, lr} + adds r3, r0, #0 + movs r0, #1 + strb r0, [r3, #0xd] + movs r1, #0 + movs r0, #0x90 + lsls r0, r0, #1 + strh r0, [r3, #0x24] + adds r0, r3, #0 + adds r0, #0x6e + strb r1, [r0] + movs r0, #0x2e + ldrsh r1, [r3, r0] + ldr r2, _08049300 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + adds r5, r2, #0 + cmp r1, #0xa7 + bgt _08049304 + adds r2, r3, #0 + adds r2, #0x80 + movs r0, #0xd8 + strh r0, [r2] + adds r1, r3, #0 + adds r1, #0x74 + adds r0, #0x28 + b _08049314 + .align 2, 0 +_08049300: .4byte gUnk_03000BF0 +_08049304: + adds r2, r3, #0 + adds r2, #0x80 + movs r0, #0x78 + strh r0, [r2] + adds r1, r3, #0 + adds r1, #0x74 + movs r0, #0xff + lsls r0, r0, #8 +_08049314: + strh r0, [r1] + adds r4, r1, #0 + ldrh r0, [r5, #6] + ldrh r1, [r2] + adds r0, r0, r1 + strh r0, [r2] + movs r2, #0x32 + ldrsh r0, [r3, r2] + ldrh r1, [r5, #8] + subs r0, r0, r1 + cmp r0, #0x7f + bgt _08049336 + adds r1, r3, #0 + adds r1, #0x82 + movs r0, #0xb0 + strh r0, [r1] + b _08049346 +_08049336: + adds r1, r3, #0 + adds r1, #0x82 + movs r0, #0x50 + strh r0, [r1] + movs r2, #0 + ldrsh r0, [r4, r2] + rsbs r0, r0, #0 + strh r0, [r4] +_08049346: + ldrh r0, [r5, #8] + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] + adds r0, r3, #0 + bl sub_08049358 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08049358 +sub_08049358: @ 0x08049358 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x80 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x82 + ldrh r1, [r1] + movs r3, #0x32 + ldrsh r2, [r4, r3] + subs r1, r1, r2 + bl sub_080045DA + adds r3, r0, #0 + ldrb r2, [r4, #0x15] + subs r0, r2, r3 + adds r0, #2 + movs r1, #0xff + ands r0, r1 + cmp r0, #4 + bls _08049398 + subs r0, r3, r2 + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08049394 + subs r0, r2, #1 + b _08049396 +_08049394: + adds r0, r2, #1 +_08049396: + strb r0, [r4, #0x15] +_08049398: + ldrb r1, [r4, #0x15] + movs r5, #0x80 + lsls r5, r5, #1 + subs r1, r5, r1 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08049998 + adds r0, r4, #0 + adds r0, #0x80 + ldrh r1, [r0] + adds r0, #2 + ldrh r2, [r0] + movs r0, #0x24 + ldrsh r3, [r4, r0] + asrs r3, r3, #0x10 + adds r3, #0x10 + adds r0, r4, #0 + bl sub_0806FCB8 + cmp r0, #0 + beq _080493E0 + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #0xc0 + strh r0, [r4, #0x24] + adds r0, r4, #0 + adds r0, #0x7e + strh r5, [r0] + ldrb r0, [r4, #0x15] + lsls r0, r0, #8 + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] +_080493E0: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080493E4 +sub_080493E4: @ 0x080493E4 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x76 + adds r0, #0x74 + ldrh r0, [r0] + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x18 + strb r0, [r4, #0x15] + movs r1, #0x1f + ands r0, r1 + cmp r0, #0 + bne _0804943A + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + ldr r3, _08049458 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + adds r2, #0xa8 + ldrh r3, [r3, #8] + adds r3, #0x80 + bl sub_080045D4 + adds r0, #2 + movs r1, #0x1c + ands r0, r1 + ldrb r1, [r4, #0x15] + lsrs r1, r1, #3 + subs r0, r0, r1 + movs r1, #0xf + ands r0, r1 + cmp r0, #8 + bne _0804943A + movs r0, #4 + strb r0, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + movs r0, #7 + strb r0, [r4, #0xf] +_0804943A: + adds r0, r4, #0 + bl sub_08049944 + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047EA4 + pop {r4, pc} + .align 2, 0 +_08049458: .4byte gUnk_03000BF0 + + thumb_func_start sub_0804945C +sub_0804945C: @ 0x0804945C + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x76 + adds r0, #0x74 + ldrh r0, [r0] + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r1, r0, #0x18 + strb r1, [r4, #0x15] + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _0804948C + movs r0, #0x1f + ands r1, r0 + cmp r1, #0 + bne _080494B2 + movs r0, #4 + strb r0, [r4, #0xd] + movs r0, #0x5a + strb r0, [r4, #0xe] + b _080494B2 +_0804948C: + adds r0, r4, #0 + bl sub_08049A8C + cmp r0, #0 + beq _080494B2 + movs r0, #0x23 + bl sub_080A7EE0 + adds r2, r0, #0 + cmp r2, #0 + beq _080494B2 + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + str r4, [r2, #0x50] + adds r0, r2, #0 + bl sub_08016A04 +_080494B2: + adds r0, r4, #0 + bl sub_08049944 + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047EA4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080494D0 +sub_080494D0: @ 0x080494D0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08049998 + ldrb r0, [r4, #0xe] + subs r1, r0, #1 + strb r1, [r4, #0xe] + movs r2, #0xff + lsls r0, r1, #0x18 + cmp r0, #0 + bne _08049518 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r2 + cmp r0, #0 + bne _0804950E + movs r0, #5 + strb r0, [r4, #0xd] + ldrh r0, [r4, #0x24] + adds r0, #0x40 + strh r0, [r4, #0x24] + b _08049534 +_0804950E: + movs r0, #3 + strb r0, [r4, #0xd] + movs r0, #0xa + strb r0, [r4, #0xe] + b _08049534 +_08049518: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x50 + bne _08049534 + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + movs r0, #0x62 + bl sub_0804AA60 + cmp r0, #0 + beq _08049534 + str r4, [r0, #0x50] +_08049534: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08049538 +sub_08049538: @ 0x08049538 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08049998 + ldr r0, _08049570 @ =gUnk_03000BF0 + ldrh r1, [r0, #6] + adds r1, #0xa8 + ldrh r2, [r0, #8] + adds r2, #0x80 + adds r0, r4, #0 + movs r3, #0x70 + bl sub_0806FCB8 + adds r1, r0, #0 + cmp r1, #0 + bne _0804956E + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_0804956E: + pop {r4, pc} + .align 2, 0 +_08049570: .4byte gUnk_03000BF0 + + thumb_func_start sub_08049574 +sub_08049574: @ 0x08049574 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08049590 @ =gUnk_080D29A8 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 +_08049590: .4byte gUnk_080D29A8 + + thumb_func_start sub_08049594 +sub_08049594: @ 0x08049594 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _080495C8 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + movs r3, #0x2e + ldrsh r1, [r4, r3] + subs r1, #0xa8 + subs r0, r0, r1 + ldrh r1, [r2, #8] + movs r3, #0x32 + ldrsh r2, [r4, r3] + subs r2, #0x80 + subs r1, r1, r2 + bl sub_080045DA + ldrb r2, [r4, #0x15] + cmp r0, r2 + beq _080495D2 + subs r0, r0, r2 + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080495CC + subs r0, r2, #1 + strb r0, [r4, #0x15] + b _080495DC + .align 2, 0 +_080495C8: .4byte gUnk_03000BF0 +_080495CC: + adds r0, r2, #1 + strb r0, [r4, #0x15] + b _080495DC +_080495D2: + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] +_080495DC: + adds r0, r4, #0 + bl sub_08049944 + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047EA4 + pop {r4, pc} + + thumb_func_start sub_080495F8 +sub_080495F8: @ 0x080495F8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08049654 @ =gUnk_03000BF0 + ldrh r1, [r0, #6] + adds r1, #0xa8 + ldrh r2, [r0, #8] + adds r2, #0x80 + adds r0, r4, #0 + movs r3, #0x28 + bl sub_0806FCB8 + cmp r0, #0 + beq _0804963C + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #0x2d + strb r0, [r4, #0xe] + bl sub_08000E50 + ldr r2, _08049658 @ =gUnk_080D29B8 + movs r1, #7 + ands r1, r0 + adds r1, r1, r2 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r4, #0 + adds r0, #0x74 + strh r1, [r0] + ldrb r0, [r4, #0x15] + lsls r0, r0, #8 + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] +_0804963C: + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08049998 + pop {r4, pc} + .align 2, 0 +_08049654: .4byte gUnk_03000BF0 +_08049658: .4byte gUnk_080D29B8 + + thumb_func_start sub_0804965C +sub_0804965C: @ 0x0804965C + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x76 + adds r0, #0x74 + ldrh r0, [r0] + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] + lsrs r0, r0, #8 + strb r0, [r4, #0x15] + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08049998 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0804969A + movs r0, #3 + strb r0, [r4, #0xd] + movs r0, #0x1e + strb r0, [r4, #0xe] +_0804969A: + pop {r4, pc} + + thumb_func_start sub_0804969C +sub_0804969C: @ 0x0804969C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08049998 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _080496C8 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_080496C8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080496CC +sub_080496CC: @ 0x080496CC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080496E8 @ =gUnk_080D29C0 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 +_080496E8: .4byte gUnk_080D29C0 + + thumb_func_start sub_080496EC +sub_080496EC: @ 0x080496EC + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x94 + lsls r0, r0, #1 + bl sub_080A3268 + bl sub_08079F8C + cmp r0, #0 + beq _08049720 + ldr r0, _0804971C @ =gUnk_03001160 + movs r1, #0x36 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _08049720 + movs r0, #2 + bl sub_08078A90 + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #0x1e + strb r0, [r4, #0xe] + b _08049724 + .align 2, 0 +_0804971C: .4byte gUnk_03001160 +_08049720: + movs r0, #1 + strb r0, [r4, #0xd] +_08049724: + adds r0, r4, #0 + bl sub_08049944 + pop {r4, pc} + + thumb_func_start sub_0804972C +sub_0804972C: @ 0x0804972C + push {r4, lr} + adds r4, r0, #0 + bl sub_08079F8C + cmp r0, #0 + beq _08049750 + ldr r0, _08049758 @ =gUnk_03001160 + movs r1, #0x36 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _08049750 + movs r0, #2 + bl sub_08078A90 + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #1 + strb r0, [r4, #0xe] +_08049750: + adds r0, r4, #0 + bl sub_08049944 + pop {r4, pc} + .align 2, 0 +_08049758: .4byte gUnk_03001160 + + thumb_func_start sub_0804975C +sub_0804975C: @ 0x0804975C + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0804977E + movs r0, #3 + strb r0, [r1, #0xd] + movs r0, #0xb4 + strb r0, [r1, #0xe] + adds r0, #0x4c + strh r0, [r1, #0x24] + ldrb r0, [r1, #0x15] + subs r0, #0x40 + strb r0, [r1, #0x15] +_0804977E: + adds r0, r1, #0 + bl sub_08049944 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08049788 +sub_08049788: @ 0x08049788 + push {r4, lr} + adds r4, r0, #0 + bl sub_08049AB0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080497B8 + movs r0, #0x1e + strb r0, [r4, #0xe] + movs r0, #4 + strb r0, [r4, #0xd] + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r4, #0x24] + ldrb r0, [r4, #0x14] + strb r0, [r4, #0x15] + movs r0, #0x94 + lsls r0, r0, #1 + bl sub_080A3268 + b _080497C6 +_080497B8: + ldrb r0, [r4, #0x15] + movs r1, #0x80 + eors r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_08049B20 +_080497C6: + adds r0, r4, #0 + bl sub_08049944 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080497D0 +sub_080497D0: @ 0x080497D0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08049AB0 + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08049998 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08049802 + movs r0, #5 + strb r0, [r4, #0xd] + movs r1, #0x10 + bl sub_08050054 +_08049802: + pop {r4, pc} + + thumb_func_start sub_08049804 +sub_08049804: @ 0x08049804 + push {r4, lr} + adds r4, r0, #0 + bl sub_08049944 + ldr r0, _0804987C @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08049878 + movs r0, #6 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x18] + movs r3, #4 + rsbs r3, r3, #0 + adds r0, r3, #0 + ands r0, r1 + strb r0, [r4, #0x18] + ldr r4, [r4, #0x54] + ldrb r2, [r4, #0x10] + movs r1, #0x7f + adds r0, r1, #0 + ands r0, r2 + strb r0, [r4, #0x10] + ldrb r2, [r4, #0x18] + adds r0, r3, #0 + ands r0, r2 + strb r0, [r4, #0x18] + ldr r4, [r4, #0x54] + ldrb r2, [r4, #0x10] + adds r0, r1, #0 + ands r0, r2 + strb r0, [r4, #0x10] + ldrb r2, [r4, #0x18] + adds r0, r3, #0 + ands r0, r2 + strb r0, [r4, #0x18] + ldr r4, [r4, #0x54] + ldrb r0, [r4, #0x10] + ands r1, r0 + strb r1, [r4, #0x10] + ldrb r0, [r4, #0x18] + ands r3, r0 + strb r3, [r4, #0x18] + ldr r4, _08049880 @ =gUnk_03001160 + ldr r1, _08049884 @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + adds r0, #0xa8 + movs r2, #0 + strh r0, [r4, #0x2e] + ldrh r0, [r1, #8] + adds r0, #0x80 + strh r0, [r4, #0x32] + strb r2, [r4, #0x14] + bl sub_080809D4 + movs r0, #4 + movs r1, #4 + bl sub_08050054 +_08049878: + pop {r4, pc} + .align 2, 0 +_0804987C: .4byte gUnk_03000FD0 +_08049880: .4byte gUnk_03001160 +_08049884: .4byte gUnk_03000BF0 + + thumb_func_start sub_08049888 +sub_08049888: @ 0x08049888 + push {lr} + adds r1, r0, #0 + ldr r0, _080498B0 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080498AE + movs r0, #7 + strb r0, [r1, #0xd] + movs r0, #0xa0 + strb r0, [r1, #0xe] + movs r0, #0x72 + bl sub_080A3268 + movs r0, #0x7c + bl sub_0807CCC8 + movs r0, #1 + bl sub_08078A90 +_080498AE: + pop {pc} + .align 2, 0 +_080498B0: .4byte gUnk_03000FD0 + + thumb_func_start sub_080498B4 +sub_080498B4: @ 0x080498B4 + push {lr} + ldrb r1, [r0, #0xe] + subs r1, #1 + strb r1, [r0, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _080498C8 + bl sub_0805E780 + b _0804993E +_080498C8: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x10 + bne _080498E4 + movs r0, #0x36 + movs r1, #0xca + movs r2, #1 + bl sub_0807B7D8 + ldr r0, _080498E0 @ =0x00004081 + movs r1, #0xca + b _0804990E + .align 2, 0 +_080498E0: .4byte 0x00004081 +_080498E4: + cmp r0, #0x18 + bne _080498FC + movs r0, #0x36 + movs r1, #0x8a + movs r2, #1 + bl sub_0807B7D8 + ldr r0, _080498F8 @ =0x00004081 + movs r1, #0x8a + b _0804990E + .align 2, 0 +_080498F8: .4byte 0x00004081 +_080498FC: + cmp r0, #0x20 + bne _08049920 + movs r0, #0x36 + movs r1, #0x4a + movs r2, #1 + bl sub_0807B7D8 + ldr r0, _0804991C @ =0x00004081 + movs r1, #0x4a +_0804990E: + movs r2, #2 + bl sub_0800015E + movs r0, #0x71 + bl sub_080A3268 + b _0804993E + .align 2, 0 +_0804991C: .4byte 0x00004081 +_08049920: + cmp r0, #0x28 + bne _0804993E + movs r0, #0x36 + movs r1, #0xa + movs r2, #1 + bl sub_0807B7D8 + ldr r0, _08049940 @ =0x00004081 + movs r1, #0xa + movs r2, #2 + bl sub_0800015E + movs r0, #0x71 + bl sub_080A3268 +_0804993E: + pop {pc} + .align 2, 0 +_08049940: .4byte 0x00004081 + + thumb_func_start sub_08049944 +sub_08049944: @ 0x08049944 + push {r4, r5, lr} + adds r4, r0, #0 + adds r4, #0x7c + ldrb r3, [r4] + lsls r2, r3, #1 + movs r1, #0x7f + ands r2, r1 + movs r1, #0x80 + ands r1, r3 + orrs r2, r1 + strb r2, [r4] + ldr r5, _08049990 @ =gUnk_03001160 + movs r2, #0x2e + ldrsh r1, [r5, r2] + movs r3, #0x32 + ldrsh r2, [r5, r3] + movs r3, #0x20 + bl sub_0806FCB8 + cmp r0, #0 + beq _0804998C + ldr r2, _08049994 @ =gUnk_03003F80 + movs r0, #1 + strb r0, [r2, #0x14] + movs r1, #0x36 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _0804998C + ldr r0, [r2, #0x30] + movs r1, #2 + orrs r0, r1 + str r0, [r2, #0x30] + ldrb r0, [r4] + movs r1, #1 + orrs r0, r1 + strb r0, [r4] +_0804998C: + pop {r4, r5, pc} + .align 2, 0 +_08049990: .4byte gUnk_03001160 +_08049994: .4byte gUnk_03003F80 + + thumb_func_start sub_08049998 +sub_08049998: @ 0x08049998 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r1, #0 + bl sub_08049944 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08047EA4 + movs r0, #0x2e + ldrsh r4, [r5, r0] + movs r2, #0x32 + ldrsh r6, [r5, r2] + movs r0, #0x24 + ldrsh r1, [r5, r0] + ldrb r2, [r5, #0x15] + adds r0, r5, #0 + bl sub_0806F62C + adds r0, r5, #0 + adds r0, #0x7c + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080499EA + bl sub_08079F8C + cmp r0, #0 + beq _080499EA + ldr r0, _080499EC @ =gUnk_03001160 + ldrh r1, [r5, #0x2e] + subs r1, r1, r4 + ldrh r2, [r0, #0x2e] + adds r1, r1, r2 + strh r1, [r0, #0x2e] + ldrh r1, [r5, #0x32] + subs r1, r1, r6 + ldrh r2, [r0, #0x32] + adds r1, r1, r2 + strh r1, [r0, #0x32] +_080499EA: + pop {r4, r5, r6, pc} + .align 2, 0 +_080499EC: .4byte gUnk_03001160 + + thumb_func_start sub_080499F0 +sub_080499F0: @ 0x080499F0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + beq _08049A82 + ldr r5, _08049A84 @ =gUnk_03001160 + movs r1, #0x36 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _08049A82 + bl sub_08079F8C + cmp r0, #0 + beq _08049A82 + adds r2, r4, #0 + adds r2, #0x7c + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + adds r6, r2, #0 + cmp r0, #0 + bne _08049A82 + movs r2, #0x2e + ldrsh r1, [r4, r2] + movs r3, #0x32 + ldrsh r2, [r4, r3] + adds r0, r5, #0 + movs r3, #0x24 + bl sub_0806FCB8 + cmp r0, #0 + beq _08049A7E + ldrb r1, [r6] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08049A7E + movs r1, #0x2e + ldrsh r0, [r5, r1] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + movs r3, #0x32 + ldrsh r1, [r5, r3] + movs r3, #0x32 + ldrsh r2, [r4, r3] + subs r1, r1, r2 + bl sub_080045DA + ldr r3, _08049A88 @ =gUnk_080C9160 + lsls r1, r0, #1 + adds r1, r1, r3 + movs r2, #0 + ldrsh r1, [r1, r2] + lsls r2, r1, #3 + adds r2, r2, r1 + lsls r2, r2, #0xa + ldr r1, [r4, #0x2c] + adds r1, r1, r2 + str r1, [r5, #0x2c] + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r3 + movs r3, #0 + ldrsh r0, [r0, r3] + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #0xa + ldr r0, [r4, #0x30] + subs r0, r0, r1 + str r0, [r5, #0x30] +_08049A7E: + movs r0, #0 + strb r0, [r6] +_08049A82: + pop {r4, r5, r6, pc} + .align 2, 0 +_08049A84: .4byte gUnk_03001160 +_08049A88: .4byte gUnk_080C9160 + + thumb_func_start sub_08049A8C +sub_08049A8C: @ 0x08049A8C + push {lr} + ldrb r1, [r0, #0xe] + subs r1, #1 + strb r1, [r0, #0xe] + lsls r1, r1, #0x18 + cmp r1, #0 + bne _08049AAA + bl sub_08000E50 + movs r1, #0xf + ands r1, r0 + cmp r1, #0 + beq _08049AAA + movs r0, #1 + b _08049AAC +_08049AAA: + movs r0, #0 +_08049AAC: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08049AB0 +sub_08049AB0: @ 0x08049AB0 + push {r4, r5, lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xf] + adds r0, #1 + strb r0, [r2, #0xf] + movs r1, #0xff + ands r0, r1 + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _08049B18 + adds r0, r2, #0 + movs r1, #0x48 + movs r2, #0 + bl sub_080A29AC + adds r4, r0, #0 + cmp r4, #0 + beq _08049B18 + bl sub_08000E50 + movs r3, #0x30 + adds r1, r0, #0 + ands r1, r3 + ldr r5, _08049B1C @ =0x0000FFE8 + adds r2, r5, #0 + adds r1, r2, r1 + ldrh r5, [r4, #0x2e] + adds r1, r1, r5 + strh r1, [r4, #0x2e] + lsrs r0, r0, #8 + ands r0, r3 + adds r2, r2, r0 + ldrh r0, [r4, #0x32] + adds r2, r2, r0 + strh r2, [r4, #0x32] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 +_08049B18: + pop {r4, r5, pc} + .align 2, 0 +_08049B1C: .4byte 0x0000FFE8 + + thumb_func_start sub_08049B20 +sub_08049B20: @ 0x08049B20 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_08049944 + movs r0, #0x2e + ldrsh r5, [r4, r0] + movs r2, #0x32 + ldrsh r6, [r4, r2] + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F62C + adds r0, r4, #0 + adds r0, #0x7c + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08049B68 + bl sub_08079F8C + cmp r0, #0 + beq _08049B68 + ldr r0, _08049B6C @ =gUnk_03001160 + ldrh r1, [r4, #0x2e] + subs r1, r1, r5 + ldrh r2, [r0, #0x2e] + adds r1, r1, r2 + strh r1, [r0, #0x2e] + ldrh r1, [r4, #0x32] + subs r1, r1, r6 + ldrh r2, [r0, #0x32] + adds r1, r1, r2 + strh r1, [r0, #0x32] +_08049B68: + pop {r4, r5, r6, pc} + .align 2, 0 +_08049B6C: .4byte gUnk_03001160 + + thumb_func_start sub_08049B70 +sub_08049B70: @ 0x08049B70 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _08049BB0 + adds r0, #1 + strb r0, [r5, #0xc] + ldrb r0, [r5, #0xa] + lsls r0, r0, #4 + ldr r1, _08049BEC @ =gUnk_080D29E0 + adds r0, r0, r1 + bl sub_080028F4 + adds r4, r5, #0 + adds r4, #0x68 + strb r0, [r4] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #8 + bls _08049B9C + bl sub_0805E780 +_08049B9C: + ldrb r0, [r4] + cmp r0, #7 + bhi _08049BB0 + movs r0, #0x67 + bl sub_0807CA84 + cmp r0, #0 + bne _08049BB0 + movs r0, #8 + strb r0, [r4] +_08049BB0: + adds r0, r5, #0 + bl sub_08049C2C + cmp r0, #0 + beq _08049C20 + adds r0, r5, #0 + adds r0, #0x68 + ldrb r1, [r0] + cmp r1, #0 + blt _08049C16 + cmp r1, #7 + ble _08049BF0 + cmp r1, #8 + bne _08049C16 + movs r0, #0x40 + movs r1, #0x60 + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _08049C16 + movs r0, #0 + strb r0, [r4, #0xe] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + b _08049C16 + .align 2, 0 +_08049BEC: .4byte gUnk_080D29E0 +_08049BF0: + ldr r0, _08049C24 @ =gUnk_080D2AB0 + adds r0, r1, r0 + ldrb r2, [r0] + movs r0, #0x96 + movs r1, #7 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _08049C16 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldrh r0, [r4, #0x32] + adds r0, #0x10 + strh r0, [r4, #0x32] + ldr r0, _08049C28 @ =0x0000FFE0 + strh r0, [r4, #0x36] +_08049C16: + adds r0, r5, #0 + bl sub_08049CF4 + bl sub_0805E780 +_08049C20: + pop {r4, r5, pc} + .align 2, 0 +_08049C24: .4byte gUnk_080D2AB0 +_08049C28: .4byte 0x0000FFE0 + + thumb_func_start sub_08049C2C +sub_08049C2C: @ 0x08049C2C + push {r4, r5, r6, lr} + adds r2, r0, #0 + ldr r3, _08049CA4 @ =gUnk_03001160 + ldrb r0, [r3, #0xc] + cmp r0, #6 + bne _08049CA8 + movs r0, #0x2e + ldrsh r1, [r3, r0] + movs r4, #0x2e + ldrsh r0, [r2, r4] + subs r1, r1, r0 + movs r5, #6 + movs r4, #0x80 + lsls r4, r4, #8 + adds r0, r1, #0 + ands r0, r4 + cmp r0, #0 + beq _08049C52 + movs r5, #2 +_08049C52: + adds r1, #0x28 + lsls r0, r1, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x4f + bhi _08049CA8 + movs r6, #0x32 + ldrsh r1, [r3, r6] + movs r6, #0x32 + ldrsh r0, [r2, r6] + subs r1, r1, r0 + adds r0, r1, #0 + ands r0, r4 + rsbs r0, r0, #0 + asrs r2, r0, #0x1f + movs r0, #4 + ands r2, r0 + adds r1, #0x28 + lsls r0, r1, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x4f + bhi _08049CA8 + ldrb r0, [r3, #0x14] + cmp r0, #0 + bne _08049C86 + cmp r2, #0 + beq _08049C9E +_08049C86: + cmp r0, #4 + bne _08049C8E + cmp r2, #4 + beq _08049C9E +_08049C8E: + cmp r0, #6 + bne _08049C96 + cmp r5, #6 + beq _08049C9E +_08049C96: + cmp r0, #2 + bne _08049CA8 + cmp r5, #2 + bne _08049CA8 +_08049C9E: + movs r0, #1 + b _08049CAA + .align 2, 0 +_08049CA4: .4byte gUnk_03001160 +_08049CA8: + movs r0, #0 +_08049CAA: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08049CAC +sub_08049CAC: @ 0x08049CAC + push {lr} + adds r2, r0, #0 + ldr r1, _08049CC8 @ =gUnk_080D2ABC + ldrb r0, [r2, #0xf] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + cmp r1, #0 + beq _08049CCC + adds r0, r2, #0 + bl _call_via_r1 + b _08049CD0 + .align 2, 0 +_08049CC8: .4byte gUnk_080D2ABC +_08049CCC: + bl sub_0805E780 +_08049CD0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08049CD4 +sub_08049CD4: @ 0x08049CD4 + push {r4, lr} + movs r0, #1 + rsbs r0, r0, #0 + ldr r4, _08049CEC @ =gUnk_02024050 + adds r1, r4, #0 + movs r2, #0x40 + bl sub_0801D610 + ldr r0, _08049CF0 @ =gUnk_020354B0 + str r4, [r0] + pop {r4, pc} + .align 2, 0 +_08049CEC: .4byte gUnk_02024050 +_08049CF0: .4byte gUnk_020354B0 + + thumb_func_start sub_08049CF4 +sub_08049CF4: @ 0x08049CF4 + push {lr} + adds r0, #0x6c + ldrb r3, [r0] + movs r0, #0x80 + ands r0, r3 + cmp r0, #0 + beq _08049D14 + ldr r0, _08049D18 @ =gUnk_020354B0 + ldr r2, [r0] + movs r0, #0x1f + ands r3, r0 + movs r1, #1 + lsls r1, r3 + ldr r0, [r2, #4] + orrs r0, r1 + str r0, [r2, #4] +_08049D14: + pop {pc} + .align 2, 0 +_08049D18: .4byte gUnk_020354B0 + + thumb_func_start sub_08049D1C +sub_08049D1C: @ 0x08049D1C + ldr r1, _08049D2C @ =gUnk_020354B0 + ldr r1, [r1] + ldr r1, [r1, #4] + lsrs r1, r0 + movs r0, #1 + bics r0, r1 + bx lr + .align 2, 0 +_08049D2C: .4byte gUnk_020354B0 + + thumb_func_start sub_08049D30 +sub_08049D30: @ 0x08049D30 + push {r4, r5, r6, lr} + ldr r1, _08049D58 @ =gUnk_020354B0 + ldr r0, _08049D5C @ =gUnk_02024050 + str r0, [r1] + adds r5, r1, #0 + ldr r6, _08049D60 @ =gUnk_03000BF0 + ldr r4, _08049D64 @ =0x0000FFFF +_08049D3E: + ldr r3, [r5] + ldrh r0, [r3] + ldrh r2, [r6, #4] + adds r1, r4, #0 + ands r1, r0 + adds r0, r4, #0 + ands r0, r2 + cmp r1, r0 + bne _08049D68 + adds r0, r3, #0 + bl sub_08049DCC + b _08049D7C + .align 2, 0 +_08049D58: .4byte gUnk_020354B0 +_08049D5C: .4byte gUnk_02024050 +_08049D60: .4byte gUnk_03000BF0 +_08049D64: .4byte 0x0000FFFF +_08049D68: + adds r1, r3, #0 + adds r1, #8 + str r1, [r5] + ldr r0, _08049D80 @ =gUnk_02024090 + cmp r1, r0 + blo _08049D3E + bl sub_08049D88 + ldr r1, _08049D84 @ =gUnk_020354B0 + str r0, [r1] +_08049D7C: + pop {r4, r5, r6, pc} + .align 2, 0 +_08049D80: .4byte gUnk_02024090 +_08049D84: .4byte gUnk_020354B0 + + thumb_func_start sub_08049D88 +sub_08049D88: @ 0x08049D88 + push {r4, r5, lr} + ldr r4, _08049DC0 @ =gUnk_02024050 + adds r1, r4, #0 + adds r1, #8 + ldr r3, _08049DC4 @ =gUnk_03000BF0 + adds r2, r4, #0 + adds r2, #0x40 +_08049D96: + ldrh r0, [r1, #2] + ldrh r5, [r4, #2] + cmp r0, r5 + bls _08049DA0 + adds r4, r1, #0 +_08049DA0: + adds r1, #8 + cmp r1, r2 + blo _08049D96 + ldrb r0, [r3, #4] + movs r1, #0 + strb r0, [r4] + ldrb r0, [r3, #5] + strb r0, [r4, #1] + ldr r0, _08049DC8 @ =0x0000FFFF + strh r0, [r4, #2] + str r1, [r4, #4] + adds r0, r4, #0 + bl sub_08049DCC + adds r0, r4, #0 + pop {r4, r5, pc} + .align 2, 0 +_08049DC0: .4byte gUnk_02024050 +_08049DC4: .4byte gUnk_03000BF0 +_08049DC8: .4byte 0x0000FFFF + + thumb_func_start sub_08049DCC +sub_08049DCC: @ 0x08049DCC + push {r4, lr} + adds r2, r0, #0 + ldr r1, _08049DF0 @ =gUnk_02024050 + adds r3, r1, #0 + adds r3, #0x40 +_08049DD6: + ldrh r0, [r1, #2] + ldrh r4, [r2, #2] + cmp r0, r4 + bhs _08049DE2 + adds r0, #1 + strh r0, [r1, #2] +_08049DE2: + adds r1, #8 + cmp r1, r3 + blo _08049DD6 + movs r0, #0 + strh r0, [r2, #2] + pop {r4, pc} + .align 2, 0 +_08049DF0: .4byte gUnk_02024050 + + thumb_func_start sub_08049DF4 +sub_08049DF4: @ 0x08049DF4 + push {lr} + adds r2, r0, #0 + ldr r0, _08049E10 @ =gUnk_020000B0 + ldr r0, [r0] + cmp r0, #0 + bne _08049E0C + ldr r1, _08049E14 @ =gUnk_080D3BE8 + lsls r0, r2, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 +_08049E0C: + pop {pc} + .align 2, 0 +_08049E10: .4byte gUnk_020000B0 +_08049E14: .4byte gUnk_080D3BE8 + + thumb_func_start sub_08049E18 +sub_08049E18: @ 0x08049E18 + push {lr} + ldr r1, _08049E38 @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0x3c + ldrb r0, [r0] + cmp r0, #0 + bne _08049E48 + ldr r0, [r1, #0x30] + ldr r1, _08049E3C @ =0x22189B75 + ands r0, r1 + cmp r0, #0 + bne _08049E48 + ldr r1, _08049E40 @ =gUnk_020000B0 + ldr r0, _08049E44 @ =gUnk_03001160 + str r0, [r1] + b _08049E4A + .align 2, 0 +_08049E38: .4byte gUnk_03003F80 +_08049E3C: .4byte 0x22189B75 +_08049E40: .4byte gUnk_020000B0 +_08049E44: .4byte gUnk_03001160 +_08049E48: + movs r0, #0 +_08049E4A: + pop {pc} + + thumb_func_start sub_08049E4C +sub_08049E4C: @ 0x08049E4C + push {lr} + ldr r1, _08049E6C @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0x3c + ldrb r0, [r0] + cmp r0, #0 + bne _08049E7C + ldr r0, [r1, #0x30] + ldr r1, _08049E70 @ =0x22189BF5 + ands r0, r1 + cmp r0, #0 + bne _08049E7C + ldr r1, _08049E74 @ =gUnk_020000B0 + ldr r0, _08049E78 @ =gUnk_03001160 + str r0, [r1] + b _08049E7E + .align 2, 0 +_08049E6C: .4byte gUnk_03003F80 +_08049E70: .4byte 0x22189BF5 +_08049E74: .4byte gUnk_020000B0 +_08049E78: .4byte gUnk_03001160 +_08049E7C: + movs r0, #0 +_08049E7E: + pop {pc} + + thumb_func_start sub_08049E80 +sub_08049E80: @ 0x08049E80 + push {lr} + ldr r1, _08049E9C @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0x3c + ldrb r0, [r0] + cmp r0, #0 + bne _08049E98 + ldr r0, [r1, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08049EA0 +_08049E98: + movs r0, #0 + b _08049EA6 + .align 2, 0 +_08049E9C: .4byte gUnk_03003F80 +_08049EA0: + ldr r1, _08049EA8 @ =gUnk_020000B0 + ldr r0, _08049EAC @ =gUnk_03001160 + str r0, [r1] +_08049EA6: + pop {pc} + .align 2, 0 +_08049EA8: .4byte gUnk_020000B0 +_08049EAC: .4byte gUnk_03001160 + + thumb_func_start sub_08049EB0 +sub_08049EB0: @ 0x08049EB0 + push {lr} + ldr r1, _08049ED0 @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0x3c + ldrb r0, [r0] + cmp r0, #0 + bne _08049EE0 + ldr r0, [r1, #0x30] + ldr r1, _08049ED4 @ =0x00080190 + ands r0, r1 + cmp r0, #0 + bne _08049EE0 + ldr r1, _08049ED8 @ =gUnk_020000B0 + ldr r0, _08049EDC @ =gUnk_03001160 + str r0, [r1] + b _08049EE2 + .align 2, 0 +_08049ED0: .4byte gUnk_03003F80 +_08049ED4: .4byte 0x00080190 +_08049ED8: .4byte gUnk_020000B0 +_08049EDC: .4byte gUnk_03001160 +_08049EE0: + movs r0, #0 +_08049EE2: + pop {pc} + + thumb_func_start sub_08049EE4 +sub_08049EE4: @ 0x08049EE4 + push {r4, r5, lr} + mov ip, r0 + adds r0, #0x70 + mov r1, ip + adds r1, #0x6e + ldrb r2, [r1] + lsls r2, r2, #2 + ldrh r0, [r0] + adds r2, r2, r0 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + adds r1, #4 + mov r0, ip + adds r0, #0x6f + ldrb r3, [r0] + lsls r3, r3, #2 + ldrh r1, [r1] + adds r3, r3, r1 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + mov r1, ip + movs r4, #0x2e + ldrsh r0, [r1, r4] + movs r5, #0x32 + ldrsh r1, [r1, r5] + bl sub_080045D4 + pop {r4, r5, pc} + + thumb_func_start sub_08049F1C +sub_08049F1C: @ 0x08049F1C + push {r4, r5, lr} + adds r4, r0, #0 + adds r3, r1, #0 + adds r5, r2, #0 + adds r0, #0x38 + adds r1, #0x38 + ldrb r2, [r0] + ldrb r0, [r1] + ands r0, r2 + cmp r0, #0 + beq _08049F5E + movs r0, #0x2e + ldrsh r2, [r3, r0] + movs r1, #0x2e + ldrsh r0, [r4, r1] + subs r2, r2, r0 + movs r0, #0x32 + ldrsh r1, [r3, r0] + movs r3, #0x32 + ldrsh r0, [r4, r3] + subs r1, r1, r0 + adds r3, r5, #0 + muls r3, r5, r3 + adds r0, r2, #0 + muls r0, r2, r0 + adds r2, r1, #0 + muls r2, r1, r2 + adds r1, r2, #0 + adds r0, r0, r1 + cmp r3, r0 + blt _08049F5E + movs r0, #1 + b _08049F60 +_08049F5E: + movs r0, #0 +_08049F60: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08049F64 +sub_08049F64: @ 0x08049F64 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, r1, #0 + adds r5, r2, #0 + bl sub_08049DF4 + adds r1, r0, #0 + cmp r1, #0 + beq _08049F80 + adds r0, r4, #0 + adds r2, r5, #0 + bl sub_08049F1C + b _08049F82 +_08049F80: + movs r0, #0 +_08049F82: + pop {r4, r5, pc} + + thumb_func_start sub_08049F84 +sub_08049F84: @ 0x08049F84 + push {r4, lr} + adds r4, r0, #0 + adds r0, r1, #0 + bl sub_08049DF4 + adds r1, r0, #0 + cmp r1, #0 + beq _08049F9C + adds r0, r4, #0 + bl sub_080045C4 + b _08049F9E +_08049F9C: + movs r0, #0xff +_08049F9E: + pop {r4, pc} + + thumb_func_start sub_08049FA0 +sub_08049FA0: @ 0x08049FA0 + push {lr} + adds r3, r0, #0 + adds r0, #0x6e + ldrb r2, [r0] + lsls r2, r2, #3 + movs r1, #0x2e + ldrsh r0, [r3, r1] + adds r1, r3, #0 + adds r1, #0x70 + ldrh r1, [r1] + subs r0, r0, r1 + cmp r2, r0 + blo _08049FD6 + adds r0, r3, #0 + adds r0, #0x6f + ldrb r2, [r0] + lsls r2, r2, #3 + movs r1, #0x32 + ldrsh r0, [r3, r1] + adds r1, r3, #0 + adds r1, #0x72 + ldrh r1, [r1] + subs r0, r0, r1 + cmp r2, r0 + blo _08049FD6 + movs r0, #1 + b _08049FD8 +_08049FD6: + movs r0, #0 +_08049FD8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08049FDC +sub_08049FDC: @ 0x08049FDC + push {r4, lr} + adds r4, r0, #0 + adds r0, r1, #0 + bl sub_08049DF4 + adds r3, r0, #0 + cmp r3, #0 + beq _0804A020 + adds r0, r4, #0 + adds r0, #0x6e + ldrb r2, [r0] + lsls r2, r2, #3 + movs r1, #0x2e + ldrsh r0, [r3, r1] + adds r1, r4, #0 + adds r1, #0x70 + ldrh r1, [r1] + subs r0, r0, r1 + cmp r2, r0 + blo _0804A020 + adds r0, r4, #0 + adds r0, #0x6f + ldrb r2, [r0] + lsls r2, r2, #3 + movs r1, #0x32 + ldrsh r0, [r3, r1] + adds r1, r4, #0 + adds r1, #0x72 + ldrh r1, [r1] + subs r0, r0, r1 + cmp r2, r0 + blo _0804A020 + movs r0, #1 + b _0804A022 +_0804A020: + movs r0, #0 +_0804A022: + pop {r4, pc} + + thumb_func_start sub_0804A024 +sub_0804A024: @ 0x0804A024 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, r1, #0 + adds r5, r2, #0 + bl sub_08049DF4 + adds r1, r0, #0 + cmp r1, #0 + beq _0804A040 + adds r0, r4, #0 + adds r2, r5, #0 + bl sub_0804A044 + b _0804A042 +_0804A040: + movs r0, #0xff +_0804A042: + pop {r4, r5, pc} + + thumb_func_start sub_0804A044 +sub_0804A044: @ 0x0804A044 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + adds r7, r0, #0 + mov r8, r1 + mov r0, r8 + adds r0, #0x38 + movs r1, #0x38 + adds r1, r1, r7 + mov sl, r1 + ldrb r1, [r0] + mov r3, sl + ldrb r0, [r3] + ands r0, r1 + cmp r0, #0 + beq _0804A15A + movs r5, #0 + mov r0, r8 + movs r3, #0x2e + ldrsh r1, [r0, r3] + ldr r0, [r0, #0x48] + mov ip, r0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r1, r1, r0 + movs r3, #0x2e + ldrsh r0, [r7, r3] + subs r1, r1, r0 + ldr r4, [r7, #0x48] + movs r0, #0 + ldrsb r0, [r4, r0] + subs r6, r1, r0 + lsrs r3, r2, #1 + adds r0, r6, r3 + cmp r2, r0 + blo _0804A096 + movs r5, #1 +_0804A096: + lsls r0, r2, #1 + mov sb, r0 + adds r0, r6, r2 + cmp sb, r0 + blo _0804A0A4 + movs r0, #2 + orrs r5, r0 +_0804A0A4: + mov r1, r8 + movs r0, #0x32 + ldrsh r1, [r1, r0] + str r1, [sp] + mov r1, ip + ldrb r1, [r1, #1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + mov ip, r1 + ldr r0, [sp] + add r0, ip + str r0, [sp] + movs r0, #0x32 + ldrsh r1, [r7, r0] + ldr r0, [sp] + subs r0, r0, r1 + movs r1, #1 + ldrsb r1, [r4, r1] + subs r4, r0, r1 + adds r0, r4, r3 + cmp r2, r0 + blo _0804A0D4 + movs r0, #4 + orrs r5, r0 +_0804A0D4: + adds r0, r4, r2 + cmp sb, r0 + blo _0804A0DE + movs r0, #8 + orrs r5, r0 +_0804A0DE: + cmp r5, #0 + beq _0804A15A + movs r0, #5 + ands r0, r5 + cmp r0, #0xa + beq _0804A15A + mov r1, sl + ldrb r0, [r1] + bl sub_0808094C + mov sb, r0 + cmp r6, #0 + bge _0804A0FA + rsbs r6, r6, #0 +_0804A0FA: + cmp r4, #0 + bge _0804A100 + rsbs r4, r4, #0 +_0804A100: + cmp r6, r4 + bge _0804A12E + movs r0, #1 + ands r0, r5 + cmp r0, #0 + beq _0804A11A + adds r0, r7, #0 + mov r1, r8 + mov r2, sb + bl sub_0804A168 + cmp r0, #0xff + bne _0804A15C +_0804A11A: + movs r0, #4 + ands r5, r0 + cmp r5, #0 + beq _0804A15A + adds r0, r7, #0 + mov r1, r8 + mov r2, sb + bl sub_0804A318 + b _0804A156 +_0804A12E: + movs r0, #4 + ands r0, r5 + cmp r0, #0 + beq _0804A144 + adds r0, r7, #0 + mov r1, r8 + mov r2, sb + bl sub_0804A318 + cmp r0, #0xff + bne _0804A15C +_0804A144: + movs r0, #1 + ands r5, r0 + cmp r5, #0 + beq _0804A15A + adds r0, r7, #0 + mov r1, r8 + mov r2, sb + bl sub_0804A168 +_0804A156: + cmp r0, #0xff + bne _0804A15C +_0804A15A: + movs r0, #0xff +_0804A15C: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0804A168 +sub_0804A168: @ 0x0804A168 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + adds r4, r0, #0 + mov sb, r1 + adds r5, r2, #0 + movs r0, #0x32 + ldrsh r1, [r1, r0] + movs r2, #0x32 + ldrsh r0, [r4, r2] + cmp r1, r0 + ble _0804A248 + movs r3, #0x2e + ldrsh r0, [r4, r3] + subs r2, r0, #4 + movs r0, #0xf + mov sl, r0 + adds r0, r2, #0 + mov r1, sl + ands r0, r1 + movs r7, #5 + cmp r0, #7 + bhi _0804A19E + movs r7, #0xa +_0804A19E: + ldr r3, _0804A240 @ =gUnk_03000BF0 + mov r8, r3 + ldrh r1, [r3, #6] + subs r1, r2, r1 + lsrs r1, r1, #4 + movs r6, #0x3f + ands r1, r6 + movs r2, #0x32 + ldrsh r0, [r4, r2] + ldrh r3, [r3, #8] + mov ip, r3 + mov r2, ip + subs r2, #0xa + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r0, r1 + mov r2, sb + movs r3, #0x32 + ldrsh r2, [r2, r3] + mov r3, ip + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r6 + lsls r2, r2, #6 + orrs r1, r2 + ldr r2, _0804A244 @ =0x00002004 + adds r0, r0, r2 + adds r0, r5, r0 + adds r1, r1, r2 + adds r1, r5, r1 + movs r2, #0x40 + adds r3, r7, #0 + bl sub_0804A4BC + cmp r0, #0 + bne _0804A1EC + b _0804A308 +_0804A1EC: + movs r1, #0x2e + ldrsh r0, [r4, r1] + adds r2, r0, #4 + mov r3, sl + eors r7, r3 + mov r0, r8 + ldrh r1, [r0, #6] + subs r1, r2, r1 + lsrs r1, r1, #4 + ands r1, r6 + movs r2, #0x32 + ldrsh r0, [r4, r2] + mov r4, r8 + ldrh r3, [r4, #8] + adds r2, r3, #0 + subs r2, #0xa + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r0, r1 + mov r2, sb + movs r4, #0x32 + ldrsh r2, [r2, r4] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r6 + lsls r2, r2, #6 + orrs r1, r2 + ldr r2, _0804A244 @ =0x00002004 + adds r0, r0, r2 + adds r0, r5, r0 + adds r1, r1, r2 + adds r1, r5, r1 + movs r2, #0x40 + adds r3, r7, #0 + bl sub_0804A4BC + cmp r0, #0 + beq _0804A308 + movs r0, #0x10 + b _0804A30A + .align 2, 0 +_0804A240: .4byte gUnk_03000BF0 +_0804A244: .4byte 0x00002004 +_0804A248: + movs r3, #0x2e + ldrsh r0, [r4, r3] + subs r2, r0, #4 + adds r0, r2, #0 + movs r1, #0xf + ands r0, r1 + movs r7, #5 + cmp r0, #7 + bhi _0804A25C + movs r7, #0xa +_0804A25C: + ldr r3, _0804A300 @ =gUnk_03000BF0 + mov r8, r3 + ldrh r1, [r3, #6] + subs r1, r2, r1 + lsrs r1, r1, #4 + movs r6, #0x3f + ands r1, r6 + movs r2, #0x32 + ldrsh r0, [r4, r2] + ldrh r3, [r3, #8] + mov sl, r3 + mov r2, sl + adds r2, #0xa + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r0, r1 + mov r2, sb + movs r3, #0x32 + ldrsh r2, [r2, r3] + mov r3, sl + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r6 + lsls r2, r2, #6 + orrs r1, r2 + ldr r2, _0804A304 @ =0x00002004 + adds r0, r0, r2 + adds r0, r5, r0 + adds r1, r1, r2 + adds r1, r5, r1 + movs r2, #0x40 + rsbs r2, r2, #0 + mov sl, r2 + adds r3, r7, #0 + bl sub_0804A4BC + cmp r0, #0 + beq _0804A308 + movs r3, #0x2e + ldrsh r0, [r4, r3] + adds r2, r0, #4 + movs r0, #0xf + eors r7, r0 + mov r3, r8 + ldrh r1, [r3, #6] + subs r1, r2, r1 + lsrs r1, r1, #4 + ands r1, r6 + movs r2, #0x32 + ldrsh r0, [r4, r2] + ldrh r3, [r3, #8] + adds r2, r3, #0 + adds r2, #0xa + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r0, r1 + mov r4, sb + movs r2, #0x32 + ldrsh r4, [r4, r2] + subs r2, r4, r3 + asrs r2, r2, #4 + ands r2, r6 + lsls r2, r2, #6 + orrs r1, r2 + ldr r3, _0804A304 @ =0x00002004 + adds r0, r0, r3 + adds r0, r5, r0 + adds r1, r1, r3 + adds r1, r5, r1 + mov r2, sl + adds r3, r7, #0 + bl sub_0804A4BC + cmp r0, #0 + beq _0804A308 + movs r0, #0 + b _0804A30A + .align 2, 0 +_0804A300: .4byte gUnk_03000BF0 +_0804A304: .4byte 0x00002004 +_0804A308: + movs r0, #0xff +_0804A30A: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0804A318 +sub_0804A318: @ 0x0804A318 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r5, r0, #0 + mov sl, r1 + adds r6, r2, #0 + movs r0, #0x2e + ldrsh r1, [r1, r0] + movs r2, #0x2e + ldrsh r0, [r5, r2] + cmp r1, r0 + ble _0804A3F0 + movs r4, #0x32 + ldrsh r0, [r5, r4] + subs r4, r0, #4 + adds r0, r4, #0 + movs r1, #0xf + ands r0, r1 + movs r2, #3 + mov r8, r2 + cmp r0, #7 + bhi _0804A34C + movs r0, #0xc + mov r8, r0 +_0804A34C: + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r2, _0804A3E8 @ =gUnk_03000BF0 + mov sb, r2 + ldrh r3, [r2, #6] + adds r1, r3, #0 + subs r1, #0xa + subs r0, r0, r1 + asrs r0, r0, #4 + movs r7, #0x3f + ands r0, r7 + ldrh r2, [r2, #8] + subs r2, r4, r2 + lsrs r2, r2, #4 + ands r2, r7 + lsls r2, r2, #6 + orrs r0, r2 + mov r4, sl + movs r1, #0x2e + ldrsh r4, [r4, r1] + subs r1, r4, r3 + asrs r1, r1, #4 + ands r1, r7 + orrs r1, r2 + ldr r2, _0804A3EC @ =0x00002004 + adds r0, r0, r2 + adds r0, r6, r0 + adds r1, r1, r2 + adds r1, r6, r1 + movs r2, #1 + mov r3, r8 + bl sub_0804A4BC + cmp r0, #0 + bne _0804A394 + b _0804A4B0 +_0804A394: + movs r2, #0x32 + ldrsh r0, [r5, r2] + adds r4, r0, #4 + mov r0, r8 + movs r1, #0xf + eors r0, r1 + mov r8, r0 + movs r2, #0x2e + ldrsh r0, [r5, r2] + mov r5, sb + ldrh r3, [r5, #6] + adds r1, r3, #0 + subs r1, #0xa + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r7 + ldrh r2, [r5, #8] + subs r2, r4, r2 + lsrs r2, r2, #4 + ands r2, r7 + lsls r2, r2, #6 + orrs r0, r2 + mov r4, sl + movs r5, #0x2e + ldrsh r1, [r4, r5] + subs r1, r1, r3 + asrs r1, r1, #4 + ands r1, r7 + orrs r1, r2 + ldr r2, _0804A3EC @ =0x00002004 + adds r0, r0, r2 + adds r0, r6, r0 + adds r1, r1, r2 + adds r1, r6, r1 + movs r2, #1 + mov r3, r8 + bl sub_0804A4BC + cmp r0, #0 + beq _0804A4B0 + movs r0, #8 + b _0804A4B2 + .align 2, 0 +_0804A3E8: .4byte gUnk_03000BF0 +_0804A3EC: .4byte 0x00002004 +_0804A3F0: + movs r4, #0x32 + ldrsh r0, [r5, r4] + subs r4, r0, #4 + adds r0, r4, #0 + movs r1, #0xf + ands r0, r1 + movs r2, #3 + mov r8, r2 + cmp r0, #7 + bhi _0804A408 + movs r0, #0xc + mov r8, r0 +_0804A408: + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r2, _0804A4A8 @ =gUnk_03000BF0 + mov sb, r2 + ldrh r3, [r2, #6] + adds r1, r3, #0 + adds r1, #0xa + subs r0, r0, r1 + asrs r0, r0, #4 + movs r7, #0x3f + ands r0, r7 + ldrh r2, [r2, #8] + subs r2, r4, r2 + lsrs r2, r2, #4 + ands r2, r7 + lsls r2, r2, #6 + orrs r0, r2 + mov r4, sl + movs r1, #0x2e + ldrsh r4, [r4, r1] + subs r1, r4, r3 + asrs r1, r1, #4 + ands r1, r7 + orrs r1, r2 + ldr r2, _0804A4AC @ =0x00002004 + adds r0, r0, r2 + adds r0, r6, r0 + adds r1, r1, r2 + adds r1, r6, r1 + movs r2, #1 + rsbs r2, r2, #0 + mov r3, r8 + bl sub_0804A4BC + cmp r0, #0 + beq _0804A4B0 + movs r2, #0x32 + ldrsh r0, [r5, r2] + adds r4, r0, #4 + mov r0, r8 + movs r1, #0xf + eors r0, r1 + mov r8, r0 + movs r2, #0x2e + ldrsh r0, [r5, r2] + mov r5, sb + ldrh r3, [r5, #6] + adds r1, r3, #0 + adds r1, #0xa + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r7 + ldrh r2, [r5, #8] + subs r2, r4, r2 + lsrs r2, r2, #4 + ands r2, r7 + lsls r2, r2, #6 + orrs r0, r2 + mov r4, sl + movs r5, #0x2e + ldrsh r1, [r4, r5] + subs r1, r1, r3 + asrs r1, r1, #4 + ands r1, r7 + orrs r1, r2 + ldr r2, _0804A4AC @ =0x00002004 + adds r0, r0, r2 + adds r0, r6, r0 + adds r1, r1, r2 + adds r1, r6, r1 + movs r2, #1 + rsbs r2, r2, #0 + mov r3, r8 + bl sub_0804A4BC + cmp r0, #0 + beq _0804A4B0 + movs r0, #0x18 + b _0804A4B2 + .align 2, 0 +_0804A4A8: .4byte gUnk_03000BF0 +_0804A4AC: .4byte 0x00002004 +_0804A4B0: + movs r0, #0xff +_0804A4B2: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0804A4BC +sub_0804A4BC: @ 0x0804A4BC + push {r4, lr} + adds r4, r0, #0 + cmp r4, r1 + beq _0804A4DE +_0804A4C4: + ldrb r0, [r4] + cmp r0, #0 + beq _0804A4D8 + cmp r0, #0xf + bhi _0804A4D4 + ands r0, r3 + cmp r0, #0 + beq _0804A4D8 +_0804A4D4: + movs r0, #0 + b _0804A4E0 +_0804A4D8: + adds r4, r4, r2 + cmp r4, r1 + bne _0804A4C4 +_0804A4DE: + movs r0, #1 +_0804A4E0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0804A4E4 +sub_0804A4E4: @ 0x0804A4E4 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r6, r1, #0 + adds r7, r5, #0 + adds r7, #0x6d + ldrb r1, [r7] + movs r4, #0x40 + adds r0, r4, #0 + ands r0, r1 + movs r1, #4 + adds r2, r6, #0 + adds r2, #0x6d + orrs r0, r1 + strb r0, [r2] + adds r0, r5, #0 + adds r0, #0x6c + ldrb r1, [r0] + adds r0, r6, #0 + adds r0, #0x6c + strb r1, [r0] + adds r0, r5, #0 + adds r0, #0x70 + ldrh r1, [r0] + adds r0, r6, #0 + adds r0, #0x70 + strh r1, [r0] + adds r0, r5, #0 + adds r0, #0x72 + ldrh r0, [r0] + adds r1, r6, #0 + adds r1, #0x72 + strh r0, [r1] + adds r0, r5, #0 + adds r0, #0x6e + ldrb r0, [r0] + subs r1, #4 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x6f + ldrb r0, [r0] + adds r1, #1 + strb r0, [r1] + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0806FA6C + ldrb r0, [r7] + ands r4, r0 + cmp r4, #0 + beq _0804A550 + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_08058800 +_0804A550: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0804A554 +sub_0804A554: @ 0x0804A554 + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #9] + lsls r0, r0, #4 + ldr r1, _0804A574 @ =gUnk_080D2C58 + adds r2, r0, r1 + ldrh r1, [r2] + ldr r0, _0804A578 @ =0x0000FFFF + cmp r1, r0 + bne _0804A570 + ldrb r0, [r3, #0xa] + lsls r0, r0, #4 + ldr r1, [r2, #4] + adds r2, r1, r0 +_0804A570: + adds r0, r2, #0 + pop {pc} + .align 2, 0 +_0804A574: .4byte gUnk_080D2C58 +_0804A578: .4byte 0x0000FFFF + + thumb_func_start sub_0804A57C +sub_0804A57C: @ 0x0804A57C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0804A58C + b _0804A6B6 +_0804A58C: + adds r0, r4, #0 + bl sub_0804A554 + adds r5, r0, #0 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0804A6C0 + cmp r0, #0 + bne _0804A5A4 + movs r0, #0 + b _0804A6B8 +_0804A5A4: + ldrb r1, [r4, #0x10] + movs r0, #1 + adds r2, r1, #0 + orrs r2, r0 + strb r2, [r4, #0x10] + ldrb r1, [r5, #0xa] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0804A5BE + movs r0, #0x80 + orrs r2, r0 + strb r2, [r4, #0x10] +_0804A5BE: + ldrh r0, [r5, #8] + strh r0, [r4, #0x12] + ldrb r2, [r4, #0x18] + lsls r0, r2, #0x1e + cmp r0, #0 + bne _0804A5DA + ldrb r1, [r5, #0xa] + lsls r1, r1, #0x1a + lsrs r1, r1, #0x1e + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] +_0804A5DA: + ldrb r1, [r5, #0xa] + lsls r1, r1, #0x1d + adds r3, r4, #0 + adds r3, #0x29 + movs r6, #7 + lsrs r1, r1, #0x1a + ldrb r2, [r3] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrb r1, [r5, #0xa] + movs r7, #3 + lsrs r1, r1, #6 + lsls r1, r1, #4 + ldrb r2, [r4, #0x18] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r1, #0x24 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0804A612 + ldrh r0, [r5, #0xc] + strh r0, [r4, #0x24] +_0804A612: + ldrb r0, [r5, #0xf] + adds r1, r4, #0 + adds r1, #0x3b + strb r0, [r1] + ldrb r0, [r5, #0xe] + adds r1, #4 + strb r0, [r1] + ldr r0, [r5, #4] + str r0, [r4, #0x48] + ldrb r0, [r5, #0xb] + adds r2, r4, #0 + adds r2, #0x45 + strb r0, [r2] + adds r1, #1 + ldrb r0, [r1] + cmp r0, #0 + bne _0804A638 + movs r0, #0x41 + strb r0, [r1] +_0804A638: + adds r0, r4, #0 + bl sub_08016A04 + adds r5, r4, #0 + adds r5, #0x6d + ldrb r1, [r5] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0804A6B6 + ldr r2, _0804A6BC @ =gUnk_080D3E74 + ldrb r1, [r4, #9] + lsrs r0, r1, #3 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r2, [r0] + ands r6, r1 + lsls r0, r6, #1 + asrs r2, r0 + movs r0, #3 + ands r2, r0 + cmp r2, #0 + beq _0804A6B6 + subs r1, r2, #1 + movs r0, #0xa9 + movs r2, #0 + bl sub_080A2960 + adds r2, r0, #0 + cmp r2, #0 + beq _0804A6B6 + ldrb r0, [r4, #0x10] + strb r0, [r2, #0xe] + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + strb r0, [r2, #0xf] + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r7 + strb r0, [r3] + str r4, [r2, #0x50] + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_0806FA24 + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + ldrb r0, [r5] + movs r1, #0x10 + orrs r0, r1 + strb r0, [r5] +_0804A6B6: + movs r0, #1 +_0804A6B8: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0804A6BC: .4byte gUnk_080D3E74 + + thumb_func_start sub_0804A6C0 +sub_0804A6C0: @ 0x0804A6C0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrh r2, [r5] + lsls r1, r2, #0x10 + cmp r1, #0 + beq _0804A712 + movs r0, #0x80 + lsls r0, r0, #8 + ands r0, r2 + cmp r0, #0 + beq _0804A6E8 + ldr r0, _0804A6E4 @ =0x000003FF + ands r0, r2 + adds r1, r4, #0 + adds r1, #0x60 + strh r0, [r1] + b _0804A712 + .align 2, 0 +_0804A6E4: .4byte 0x000003FF +_0804A6E8: + movs r0, #0x80 + lsls r0, r0, #7 + ands r0, r2 + cmp r0, #0 + beq _0804A702 + lsrs r1, r1, #0x14 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + movs r2, #0 + bl sub_080AE008 + b _0804A70A +_0804A702: + ldrh r1, [r5] + adds r0, r4, #0 + bl sub_080ADF80 +_0804A70A: + cmp r0, #0 + bne _0804A712 + movs r0, #0 + b _0804A71C +_0804A712: + ldrh r1, [r5, #2] + adds r0, r4, #0 + bl sub_0801D040 + movs r0, #1 +_0804A71C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0804A720 +sub_0804A720: @ 0x0804A720 + push {r4, r5, r6, lr} + adds r2, r0, #0 + adds r0, #0x6d + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _0804A7D0 + ldrb r0, [r2, #9] + lsls r0, r0, #1 + ldr r1, _0804A76C @ =gUnk_080D3D94 + adds r3, r0, r1 + adds r4, r2, #0 + adds r4, #0x68 + ldrb r1, [r4, #0x16] + cmp r1, #0 + bne _0804A744 + ldrb r1, [r3] +_0804A744: + adds r0, r2, #0 + adds r0, #0x6e + strb r1, [r0] + adds r5, r0, #0 + ldrb r1, [r4, #0x17] + cmp r1, #0 + bne _0804A754 + ldrb r1, [r3, #1] +_0804A754: + adds r0, r2, #0 + adds r0, #0x6f + strb r1, [r0] + adds r6, r0, #0 + ldrh r1, [r4, #0x1c] + adds r3, r1, #0 + cmp r3, #0 + beq _0804A774 + ldr r0, _0804A770 @ =gUnk_03000BF0 + ldrh r0, [r0, #6] + adds r0, r1, r0 + b _0804A784 + .align 2, 0 +_0804A76C: .4byte gUnk_080D3D94 +_0804A770: .4byte gUnk_03000BF0 +_0804A774: + ldrb r0, [r5] + lsls r1, r0, #2 + movs r5, #0x2e + ldrsh r0, [r2, r5] + cmp r0, r1 + blt _0804A78C + ldrh r0, [r2, #0x2e] + subs r0, r0, r1 +_0804A784: + adds r1, r2, #0 + adds r1, #0x70 + strh r0, [r1] + b _0804A792 +_0804A78C: + adds r0, r2, #0 + adds r0, #0x70 + strh r3, [r0] +_0804A792: + ldrh r1, [r4, #0x1e] + adds r3, r1, #0 + cmp r3, #0 + beq _0804A7A8 + ldr r0, _0804A7A4 @ =gUnk_03000BF0 + ldrh r0, [r0, #8] + adds r0, r1, r0 + b _0804A7B8 + .align 2, 0 +_0804A7A4: .4byte gUnk_03000BF0 +_0804A7A8: + ldrb r0, [r6] + lsls r1, r0, #2 + movs r4, #0x32 + ldrsh r0, [r2, r4] + cmp r0, r1 + blt _0804A7C0 + ldrh r0, [r2, #0x32] + subs r0, r0, r1 +_0804A7B8: + adds r1, r2, #0 + adds r1, #0x72 + strh r0, [r1] + b _0804A7C6 +_0804A7C0: + adds r0, r2, #0 + adds r0, #0x72 + strh r3, [r0] +_0804A7C6: + adds r2, #0x6d + ldrb r1, [r2] + movs r0, #4 + orrs r0, r1 + strb r0, [r2] +_0804A7D0: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0804A7D4 +sub_0804A7D4: @ 0x0804A7D4 + push {lr} + ldrb r1, [r0, #9] + movs r2, #0 + bl sub_0804A7E0 + pop {pc} + + thumb_func_start sub_0804A7E0 +sub_0804A7E0: @ 0x0804A7E0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r5, r0, #0 + mov sb, r1 + mov sl, r2 + adds r6, r5, #0 + adds r6, #0x6d + ldrb r1, [r6] + movs r7, #1 + adds r0, r7, #0 + ands r0, r1 + cmp r0, #0 + beq _0804A864 + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0804A80A + b _0804A982 +_0804A80A: + ldrb r1, [r5, #9] + movs r0, #1 + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + bne _0804A81C + b _0804A982 +_0804A81C: + adds r0, #0x6c + strb r7, [r0] + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0 + movs r3, #1 + bl sub_0806FA48 + str r5, [r4, #0x50] + ldrb r1, [r6] + movs r0, #2 + orrs r0, r1 + strb r0, [r6] + ldrb r0, [r5, #9] + cmp r0, #0x37 + bne _0804A84A + ldr r0, _0804A85C @ =gUnk_030010A0 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #0 + beq _0804A84A + bl sub_0805E780 +_0804A84A: + bl sub_0807CD9C + ldr r0, _0804A860 @ =0x80100000 + bl sub_080A3268 + bl sub_0805E780 + b _0804A982 + .align 2, 0 +_0804A85C: .4byte gUnk_030010A0 +_0804A860: .4byte 0x80100000 +_0804A864: + adds r4, r5, #0 + adds r4, #0x3a + ldrb r1, [r4] + movs r0, #2 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + cmp r0, #0 + bne _0804A934 + adds r0, r5, #0 + bl sub_08049CF4 + ldr r1, _0804A8E8 @ =gUnk_02002A40 + ldr r0, [r1, #0x50] + adds r0, #1 + str r0, [r1, #0x50] + ldrb r0, [r4] + movs r7, #0 + movs r1, #2 + orrs r0, r1 + strb r0, [r4] + movs r0, #0xff + strb r0, [r5, #0xe] + adds r0, r5, #0 + movs r1, #3 + bl sub_0805E3A0 + ldrb r1, [r5, #9] + movs r0, #1 + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _0804A8CA + adds r0, #0x6c + mov r2, r8 + strb r2, [r0] + adds r0, #1 + mov r1, sb + strb r1, [r0] + adds r0, #1 + mov r2, sl + strb r2, [r0] + str r5, [r4, #0x50] + str r5, [r4, #0x54] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 +_0804A8CA: + ldrb r1, [r6] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0804A8EC + adds r0, r4, #0 + adds r0, #0x6c + ldrb r1, [r0] + movs r2, #8 + orrs r1, r2 + strb r1, [r0] + adds r0, r5, #0 + bl sub_0805E7BC + b _0804A982 + .align 2, 0 +_0804A8E8: .4byte gUnk_02002A40 +_0804A8EC: + adds r0, r5, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x13 + bne _0804A934 + ldrb r0, [r5, #0x1c] + movs r1, #0xf + ands r1, r0 + cmp r1, #1 + beq _0804A91A + cmp r1, #2 + bne _0804A92A + cmp r4, #0 + beq _0804A92A + adds r1, r4, #0 + adds r1, #0x6c + ldrb r0, [r1] + movs r2, #2 + orrs r0, r2 + strb r0, [r1] + b _0804A92A +_0804A91A: + cmp r4, #0 + beq _0804A92A + adds r0, r4, #0 + adds r0, #0x6c + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] +_0804A92A: + movs r0, #0 + str r0, [r4, #0x50] + bl sub_0805E780 + b _0804A982 +_0804A934: + ldrb r0, [r5, #0xe] + cmp r0, #0 + bne _0804A940 + bl sub_0805E780 + b _0804A982 +_0804A940: + subs r1, r0, #1 + strb r1, [r5, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _0804A95E + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r5, #0x18] + adds r0, r5, #0 + movs r1, #0 + bl sub_0805E3A0 + b _0804A982 +_0804A95E: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #8 + bhi _0804A982 + ldrb r1, [r5, #0x18] + lsls r0, r1, #0x1e + cmp r0, #0 + beq _0804A976 + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + b _0804A980 +_0804A976: + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 +_0804A980: + strb r0, [r5, #0x18] +_0804A982: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0804A98C +sub_0804A98C: @ 0x0804A98C + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r0, r1, #0 + adds r5, r2, #0 + bl sub_080A7EE0 + adds r4, r0, #0 + cmp r4, #0 + beq _0804A9A8 + strb r5, [r4, #0xa] + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0806FA24 +_0804A9A8: + adds r0, r4, #0 + pop {r4, r5, r6, pc} + + thumb_func_start sub_0804A9AC +sub_0804A9AC: @ 0x0804A9AC + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r6, r1, #0 + adds r7, r2, #0 + mov ip, r3 + ldr r4, [r5, #0x68] + cmp r4, #0 + beq _0804A9FA + ldrb r2, [r5, #0x19] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r4, #0x19] + ldrb r0, [r5, #0x1b] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r4, #0x1b] + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #0x1b] + ldrh r0, [r5, #0x2e] + adds r0, r0, r6 + strh r0, [r4, #0x2e] + ldrh r0, [r5, #0x32] + adds r0, r0, r7 + strh r0, [r4, #0x32] + ldrh r0, [r5, #0x36] + add r0, ip + strh r0, [r4, #0x36] + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] +_0804A9FA: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0804A9FC +sub_0804A9FC: @ 0x0804A9FC + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x68] + cmp r0, #0 + bne _0804AA16 + adds r0, r4, #0 + movs r2, #0 + bl sub_080A29AC + cmp r0, #0 + beq _0804AA16 + str r0, [r4, #0x68] + b _0804AA18 +_0804AA16: + movs r0, #0 +_0804AA18: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0804AA1C +sub_0804AA1C: @ 0x0804AA1C + push {lr} + adds r2, r0, #0 + ldr r1, [r2, #0x68] + cmp r1, #0 + beq _0804AA2C + movs r0, #0 + str r0, [r1, #0x50] + str r0, [r2, #0x68] +_0804AA2C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804AA30 +sub_0804AA30: @ 0x0804AA30 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r4, #0 + adds r6, #0x41 + ldrb r1, [r6] + movs r0, #0x7f + ands r0, r1 + strb r0, [r6] + adds r0, r4, #0 + bl sub_0800279C + ldrb r2, [r6] + movs r1, #0x80 + orrs r1, r2 + strb r1, [r6] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0804AA60 +sub_0804AA60: @ 0x0804AA60 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + bl sub_0805E678 + adds r4, r0, #0 + cmp r4, #0 + beq _0804AA80 + movs r0, #3 + strb r0, [r4, #8] + strb r5, [r4, #9] + strb r6, [r4, #0xa] + adds r0, r4, #0 + movs r1, #4 + bl sub_0805EA2C +_0804AA80: + adds r0, r4, #0 + pop {r4, r5, r6, pc} + + thumb_func_start sub_0804AA84 +sub_0804AA84: @ 0x0804AA84 + push {lr} + ldr r3, _0804AA98 @ =gUnk_02033A90 + ldrb r0, [r3, #0x19] + cmp r0, #0 + bne _0804AA9C + strb r0, [r3, #0x18] + strb r0, [r3, #0x19] + movs r0, #0 + b _0804AAB0 + .align 2, 0 +_0804AA98: .4byte gUnk_02033A90 +_0804AA9C: + ldr r2, _0804AAB4 @ =gUnk_03001000 + movs r1, #0 + movs r0, #4 + strb r0, [r2, #4] + strb r1, [r3, #0xe] + strb r1, [r3, #0xf] + strh r1, [r3, #0x10] + bl sub_0805E5A8 + movs r0, #1 +_0804AAB0: + pop {pc} + .align 2, 0 +_0804AAB4: .4byte gUnk_03001000 + + thumb_func_start sub_0804AAB8 +sub_0804AAB8: @ 0x0804AAB8 + push {lr} + ldr r1, _0804AACC @ =gUnk_080D4120 + ldr r0, _0804AAD0 @ =gUnk_02033A90 + ldrb r0, [r0, #0xe] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_0804AACC: .4byte gUnk_080D4120 +_0804AAD0: .4byte gUnk_02033A90 + + thumb_func_start sub_0804AAD4 +sub_0804AAD4: @ 0x0804AAD4 + push {r4, lr} + ldr r4, _0804AAFC @ =gUnk_02018EB0 + adds r0, r4, #0 + movs r1, #0x28 + bl sub_0801D630 + movs r0, #0 + str r0, [r4, #0x14] + bl sub_0805E60C + ldr r4, _0804AB00 @ =gUnk_02033A90 + ldrb r1, [r4, #0x17] + movs r0, #0x3d + movs r2, #0 + bl sub_080A2960 + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + pop {r4, pc} + .align 2, 0 +_0804AAFC: .4byte gUnk_02018EB0 +_0804AB00: .4byte gUnk_02033A90 + + thumb_func_start sub_0804AB04 +sub_0804AB04: @ 0x0804AB04 + push {lr} + bl sub_0805E5C0 + ldr r0, _0804AB20 @ =gUnk_02033A90 + ldrh r0, [r0, #0x10] + cmp r0, #0 + beq _0804AB1E + bl sub_080AD90C + bl sub_080AD9B0 + bl sub_080AD918 +_0804AB1E: + pop {pc} + .align 2, 0 +_0804AB20: .4byte gUnk_02033A90 + + thumb_func_start sub_0804AB24 +sub_0804AB24: @ 0x0804AB24 + push {r4, r5, lr} + ldr r5, _0804AB48 @ =gUnk_03000FD0 + ldrb r1, [r5] + cmp r1, #0 + bne _0804AB46 + ldr r0, _0804AB4C @ =gUnk_03000F50 + movs r4, #0 + strh r1, [r0] + bl sub_0801E104 + ldr r0, _0804AB50 @ =gUnk_02033A90 + strb r4, [r0, #0xe] + movs r0, #6 + movs r1, #0 + bl sub_080A7138 + strb r4, [r5] +_0804AB46: + pop {r4, r5, pc} + .align 2, 0 +_0804AB48: .4byte gUnk_03000FD0 +_0804AB4C: .4byte gUnk_03000F50 +_0804AB50: .4byte gUnk_02033A90 + + thumb_func_start sub_0804AB54 +sub_0804AB54: @ 0x0804AB54 + push {lr} + ldr r1, _0804AB68 @ =gUnk_080D412C + ldr r0, _0804AB6C @ =gUnk_02033A90 + ldrb r0, [r0, #0xe] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_0804AB68: .4byte gUnk_080D412C +_0804AB6C: .4byte gUnk_02033A90 + + thumb_func_start sub_0804AB70 +sub_0804AB70: @ 0x0804AB70 + push {r4, r5, lr} + movs r0, #0 + bl sub_0801DA90 + ldr r1, _0804ABF8 @ =gUnk_03000F50 + movs r2, #0 + movs r0, #0x92 + lsls r0, r0, #5 + strh r0, [r1] + ldr r0, _0804ABFC @ =0x00009E83 + strh r0, [r1, #0x14] + ldr r0, _0804AC00 @ =gUnk_03000BF0 + strh r2, [r1, #0x16] + strh r2, [r0, #0xa] + strh r2, [r1, #0x18] + strh r2, [r0, #0xc] + ldr r0, _0804AC04 @ =gUnk_02033A90 + ldrb r5, [r0, #0x17] + cmp r5, #2 + bne _0804ABA4 + ldr r0, _0804AC08 @ =gUnk_02032EC0 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #2 + beq _0804ABA4 + movs r5, #3 +_0804ABA4: + lsls r4, r5, #1 + ldr r0, _0804AC0C @ =gUnk_080D4138 + adds r4, r4, r0 + ldrb r0, [r4] + bl sub_0801D714 + ldrb r0, [r4, #1] + bl sub_0801D7EC + ldr r0, _0804AC10 @ =gUnk_02017700 + movs r2, #0x90 + lsls r2, r2, #2 + adds r1, r0, r2 + movs r2, #0x20 + bl sub_0801D66C + ldr r2, _0804AC14 @ =gUnk_0200B644 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #0xe + orrs r0, r1 + str r0, [r2] + bl sub_0805E60C + ldr r1, _0804AC18 @ =gUnk_080D4110 + lsls r0, r5, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl sub_0804ADDC + bl sub_0805E5B4 + ldr r1, _0804AC04 @ =gUnk_02033A90 + ldrb r0, [r1, #0xe] + adds r0, #1 + strb r0, [r1, #0xe] + movs r0, #4 + movs r1, #8 + bl sub_08050054 + pop {r4, r5, pc} + .align 2, 0 +_0804ABF8: .4byte gUnk_03000F50 +_0804ABFC: .4byte 0x00009E83 +_0804AC00: .4byte gUnk_03000BF0 +_0804AC04: .4byte gUnk_02033A90 +_0804AC08: .4byte gUnk_02032EC0 +_0804AC0C: .4byte gUnk_080D4138 +_0804AC10: .4byte gUnk_02017700 +_0804AC14: .4byte gUnk_0200B644 +_0804AC18: .4byte gUnk_080D4110 + + thumb_func_start sub_0804AC1C +sub_0804AC1C: @ 0x0804AC1C + push {r4, lr} + bl sub_0805E5C0 + ldr r0, _0804AC98 @ =gUnk_02018EB0 + ldr r2, [r0, #0x14] + cmp r2, #0 + beq _0804AC5E + ldr r3, _0804AC9C @ =gUnk_03000BF0 + movs r1, #0xc + ldrsh r0, [r3, r1] + movs r4, #0x32 + ldrsh r1, [r2, r4] + subs r1, #0x50 + subs r0, r0, r1 + movs r4, #0x36 + ldrsh r1, [r2, r4] + subs r1, r0, r1 + cmp r1, #0 + beq _0804AC5E + ldrh r0, [r3, #0xc] + subs r0, r0, r1 + strh r0, [r3, #0xc] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _0804AC52 + movs r0, #0 + strh r0, [r3, #0xc] +_0804AC52: + movs r1, #0xc + ldrsh r0, [r3, r1] + cmp r0, #0x9f + ble _0804AC5E + movs r0, #0x9f + strh r0, [r3, #0xc] +_0804AC5E: + ldr r2, _0804ACA0 @ =gUnk_03000F50 + ldr r1, _0804AC9C @ =gUnk_03000BF0 + ldrh r0, [r1, #0xa] + strh r0, [r2, #0x16] + ldrh r0, [r1, #0xc] + strh r0, [r2, #0x18] + bl sub_080AD90C + bl sub_080AD9B0 + bl sub_080AD918 + ldr r0, _0804AC98 @ =gUnk_02018EB0 + ldrb r0, [r0, #0x1b] + cmp r0, #0 + bne _0804AC86 + bl sub_0804ACA8 + cmp r0, #0 + beq _0804AC96 +_0804AC86: + ldr r1, _0804ACA4 @ =gUnk_02033A90 + ldrb r0, [r1, #0xe] + adds r0, #1 + strb r0, [r1, #0xe] + movs r0, #7 + movs r1, #0x10 + bl sub_08050054 +_0804AC96: + pop {r4, pc} + .align 2, 0 +_0804AC98: .4byte gUnk_02018EB0 +_0804AC9C: .4byte gUnk_03000BF0 +_0804ACA0: .4byte gUnk_03000F50 +_0804ACA4: .4byte gUnk_02033A90 + + thumb_func_start sub_0804ACA8 +sub_0804ACA8: @ 0x0804ACA8 + push {lr} + ldr r0, _0804ACC0 @ =gUnk_03000FF0 + ldrh r1, [r0, #2] + movs r0, #0x81 + lsls r0, r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0804ACC4 + bl sub_0804AD18 + b _0804ACC6 + .align 2, 0 +_0804ACC0: .4byte gUnk_03000FF0 +_0804ACC4: + movs r0, #0 +_0804ACC6: + pop {pc} + + thumb_func_start sub_0804ACC8 +sub_0804ACC8: @ 0x0804ACC8 + push {lr} + ldr r0, _0804ACEC @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _0804ACE8 + ldr r0, _0804ACF0 @ =gUnk_02033A90 + ldrb r0, [r0, #0x17] + adds r0, #0x5e + bl sub_0807CD04 + ldr r0, _0804ACF4 @ =gUnk_02032EDC + bl sub_0804AD6C + movs r0, #0 + bl sub_080A71F4 +_0804ACE8: + pop {pc} + .align 2, 0 +_0804ACEC: .4byte gUnk_03000FD0 +_0804ACF0: .4byte gUnk_02033A90 +_0804ACF4: .4byte gUnk_02032EDC + + thumb_func_start sub_0804ACF8 +sub_0804ACF8: @ 0x0804ACF8 + push {lr} + bl sub_0804AD18 + cmp r0, #0 + beq _0804AD12 + ldr r0, _0804AD14 @ =gUnk_03000BF0 + bl sub_0804AD6C + bl sub_0805E5A8 + movs r0, #0xf8 + bl sub_080A3268 +_0804AD12: + pop {pc} + .align 2, 0 +_0804AD14: .4byte gUnk_03000BF0 + + thumb_func_start sub_0804AD18 +sub_0804AD18: @ 0x0804AD18 + push {lr} + ldr r0, _0804AD30 @ =gUnk_02033A90 + ldrb r1, [r0, #0x17] + adds r2, r0, #0 + cmp r1, #6 + bhi _0804AD66 + lsls r0, r1, #2 + ldr r1, _0804AD34 @ =_0804AD38 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0804AD30: .4byte gUnk_02033A90 +_0804AD34: .4byte _0804AD38 +_0804AD38: @ jump table + .4byte _0804AD54 @ case 0 + .4byte _0804AD54 @ case 1 + .4byte _0804AD54 @ case 2 + .4byte _0804AD66 @ case 3 + .4byte _0804AD66 @ case 4 + .4byte _0804AD66 @ case 5 + .4byte _0804AD62 @ case 6 +_0804AD54: + ldrb r0, [r2, #0x17] + adds r0, #0x5e + bl sub_0807CC30 + adds r1, r0, #0 + cmp r1, #0 + bne _0804AD68 +_0804AD62: + movs r0, #0 + b _0804AD68 +_0804AD66: + movs r0, #0 +_0804AD68: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804AD6C +sub_0804AD6C: @ 0x0804AD6C + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + ldr r3, _0804ADD0 @ =gUnk_030010A0 + movs r1, #0 + movs r6, #1 + strb r6, [r3, #8] + strb r1, [r3, #9] + ldr r4, _0804ADD4 @ =gUnk_02033A90 + ldr r5, _0804ADD8 @ =gUnk_080D4140 + ldrb r1, [r4, #0x16] + lsls r1, r1, #2 + adds r1, r1, r5 + ldrh r1, [r1] + ldrh r2, [r4, #0x12] + adds r1, r1, r2 + ldrh r2, [r0, #6] + subs r1, r1, r2 + movs r2, #0 + mov r8, r2 + strh r1, [r3, #0x10] + ldrb r1, [r4, #0x16] + lsls r1, r1, #1 + adds r1, #1 + lsls r1, r1, #1 + adds r1, r1, r5 + ldrh r1, [r1] + ldrh r2, [r4, #0x14] + adds r1, r1, r2 + ldrh r2, [r0, #8] + subs r1, r1, r2 + strh r1, [r3, #0x12] + ldrb r1, [r4, #0x16] + lsls r1, r1, #1 + strb r1, [r3, #0xe] + strb r6, [r3, #0xf] + ldrb r1, [r0, #4] + strb r1, [r3, #0xc] + ldrb r0, [r0, #5] + strb r0, [r3, #0xd] + mov r0, r8 + strb r0, [r3, #0x14] + bl sub_080300AC + bl sub_080300C4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, pc} + .align 2, 0 +_0804ADD0: .4byte gUnk_030010A0 +_0804ADD4: .4byte gUnk_02033A90 +_0804ADD8: .4byte gUnk_080D4140 + + thumb_func_start sub_0804ADDC +sub_0804ADDC: @ 0x0804ADDC + push {r4, lr} + adds r4, r0, #0 + cmp r4, #0 + beq _0804ADF4 + b _0804ADEE +_0804ADE6: + adds r0, r4, #0 + adds r4, #0x10 + bl sub_0804ADF8 +_0804ADEE: + ldrb r0, [r4] + cmp r0, #0xff + bne _0804ADE6 +_0804ADF4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0804ADF8 +sub_0804ADF8: @ 0x0804ADF8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4] + movs r6, #0xf + ands r6, r0 + ldrb r1, [r4, #1] + movs r0, #0xf0 + ands r0, r1 + cmp r0, #0x50 + bne _0804AE1C + ldrb r1, [r4, #2] + adds r0, r6, #0 + bl sub_0805EB9C + cmp r0, #0 + beq _0804AE1C + movs r0, #0 + b _0804AEAC +_0804AE1C: + adds r0, r6, #0 + bl sub_0805E768 + adds r5, r0, #0 + cmp r5, #0 + beq _0804AEAA + strb r6, [r5, #8] + ldrb r0, [r4, #2] + strb r0, [r5, #9] + ldrb r0, [r4, #3] + strb r0, [r5, #0xa] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0804AEB0 + ldrb r1, [r4, #1] + movs r7, #0xf0 + adds r0, r7, #0 + ands r0, r1 + cmp r0, #0x10 + beq _0804AEAA + ldrb r0, [r4, #4] + strb r0, [r5, #0xb] + ldr r0, [r4, #4] + movs r1, #0xff + lsls r1, r1, #8 + ands r0, r1 + lsrs r0, r0, #8 + strb r0, [r5, #0xe] + cmp r6, #9 + beq _0804AEAA + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0804AF0C + ldr r0, [r5, #4] + cmp r0, #0 + beq _0804AEAA + ldrb r0, [r4] + adds r2, r7, #0 + ands r2, r0 + movs r0, #0x10 + ands r0, r2 + cmp r0, #0 + bne _0804AE94 + movs r0, #0x20 + ands r2, r0 + cmp r2, #0 + beq _0804AE88 + adds r1, r5, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + b _0804AEAA +_0804AE88: + ldr r0, _0804AEA0 @ =gUnk_03000BF0 + ldrb r1, [r0, #0xf] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0804AEA4 +_0804AE94: + adds r1, r5, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + b _0804AEAA + .align 2, 0 +_0804AEA0: .4byte gUnk_03000BF0 +_0804AEA4: + adds r0, r5, #0 + bl sub_08016A30 +_0804AEAA: + adds r0, r5, #0 +_0804AEAC: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0804AEB0 +sub_0804AEB0: @ 0x0804AEB0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + ldrb r0, [r6, #1] + movs r1, #0xf + adds r2, r1, #0 + ands r2, r0 + ldrb r0, [r6] + adds r4, r1, #0 + ands r4, r0 + ldr r0, [r5] + cmp r0, #0 + bne _0804AEF6 + cmp r2, #0xf + bne _0804AEE0 + ldr r0, _0804AEDC @ =gUnk_081091E4 + adds r0, r4, r0 + ldrb r1, [r0] + adds r0, r5, #0 + bl sub_0805EA2C + b _0804AEF6 + .align 2, 0 +_0804AEDC: .4byte gUnk_081091E4 +_0804AEE0: + cmp r2, #8 + bne _0804AEEE + adds r0, r5, #0 + movs r1, #8 + bl sub_0805EA2C + b _0804AEF6 +_0804AEEE: + adds r0, r5, #0 + adds r1, r2, #0 + bl sub_0805EA2C +_0804AEF6: + adds r1, r5, #0 + adds r1, #0x78 + cmp r4, #9 + bne _0804AF00 + subs r1, #0x48 +_0804AF00: + adds r0, r6, #0 + movs r2, #0x10 + bl sub_0801D66C + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0804AF0C +sub_0804AF0C: @ 0x0804AF0C + push {r4, lr} + adds r4, r0, #0 + adds r2, r1, #0 + ldrb r0, [r2, #1] + movs r1, #0xf0 + ands r1, r0 + cmp r1, #0x20 + beq _0804AF40 + cmp r1, #0x20 + bgt _0804AF26 + cmp r1, #0 + beq _0804AF2C + b _0804AF88 +_0804AF26: + cmp r1, #0x40 + beq _0804AF64 + b _0804AF88 +_0804AF2C: + ldr r0, _0804AF3C @ =gUnk_03000BF0 + ldrh r1, [r0, #6] + ldrh r3, [r2, #8] + adds r1, r1, r3 + strh r1, [r4, #0x2e] + ldrh r0, [r0, #8] + b _0804AF58 + .align 2, 0 +_0804AF3C: .4byte gUnk_03000BF0 +_0804AF40: + adds r3, r4, #0 + adds r3, #0x6d + ldrb r1, [r3] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r3] + ldr r1, _0804AF60 @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + ldrh r3, [r2, #8] + adds r0, r0, r3 + strh r0, [r4, #0x2e] + ldrh r0, [r1, #8] +_0804AF58: + ldrh r2, [r2, #0xa] + adds r0, r0, r2 + strh r0, [r4, #0x32] + b _0804AF88 + .align 2, 0 +_0804AF60: .4byte gUnk_03000BF0 +_0804AF64: + ldr r1, _0804AF8C @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + ldrh r3, [r2, #8] + adds r0, r0, r3 + strh r0, [r4, #0x2e] + ldrh r0, [r1, #8] + ldrh r1, [r2, #0xa] + adds r0, r0, r1 + strh r0, [r4, #0x32] + ldr r1, [r2, #0xc] + adds r0, r4, #0 + bl sub_0807DAD0 + cmp r0, #0 + bne _0804AF88 + adds r0, r4, #0 + bl sub_0805E7BC +_0804AF88: + pop {r4, pc} + .align 2, 0 +_0804AF8C: .4byte gUnk_03000BF0 + + thumb_func_start sub_0804AF90 +sub_0804AF90: @ 0x0804AF90 + push {lr} + ldr r0, _0804AFA8 @ =gUnk_02033A90 + ldr r1, _0804AFAC @ =0x0000085C + adds r0, r0, r1 + ldr r0, [r0] + ldr r0, [r0, #0x1c] + bl sub_0804AFB0 + bl sub_080A7C7C + pop {pc} + .align 2, 0 +_0804AFA8: .4byte gUnk_02033A90 +_0804AFAC: .4byte 0x0000085C + + thumb_func_start sub_0804AFB0 +sub_0804AFB0: @ 0x0804AFB0 + push {r4, lr} + ldr r1, _0804AFD4 @ =gUnk_02017654 + str r0, [r1] + movs r2, #0 + ldr r0, _0804AFD8 @ =gUnk_02034350 + adds r3, r1, #0 + adds r4, r0, #0 + adds r4, #0x6c +_0804AFC0: + lsls r0, r2, #2 + ldr r1, [r3] + adds r0, r0, r1 + ldr r0, [r0] + stm r4!, {r0} + adds r2, #1 + cmp r2, #7 + bls _0804AFC0 + pop {r4, pc} + .align 2, 0 +_0804AFD4: .4byte gUnk_02017654 +_0804AFD8: .4byte gUnk_02034350 + + thumb_func_start sub_0804AFDC +sub_0804AFDC: @ 0x0804AFDC + push {r4, lr} + movs r4, #1 + movs r0, #6 + bl sub_0804B128 + cmp r0, #0 + beq _0804AFF0 + bl _call_via_r0 + adds r4, r0, #0 +_0804AFF0: + adds r0, r4, #0 + pop {r4, pc} + + thumb_func_start sub_0804AFF4 +sub_0804AFF4: @ 0x0804AFF4 + push {lr} + bl sub_080186EC + movs r0, #5 + bl sub_0804B128 + cmp r0, #0 + beq _0804B008 + bl _call_via_r0 +_0804B008: + movs r0, #7 + bl sub_0804B128 + cmp r0, #0 + beq _0804B016 + bl _call_via_r0 +_0804B016: + bl sub_0804B16C + pop {pc} + + thumb_func_start sub_0804B01C +sub_0804B01C: @ 0x0804B01C + push {lr} + movs r0, #1 + bl sub_0804B128 + bl sub_0804ADDC + movs r0, #0 + bl sub_0804B128 + bl sub_0804ADDC + movs r0, #0x15 + bl sub_0807CC30 + cmp r0, #0 + beq _0804B046 + movs r0, #2 + bl sub_0804B128 + bl sub_0804B058 +_0804B046: + movs r0, #3 + bl sub_0804B128 + bl sub_0804B1AC + bl sub_0801AC98 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804B058 +sub_0804B058: @ 0x0804B058 + push {r4, r5, lr} + adds r4, r0, #0 + cmp r4, #0 + beq _0804B0AE + ldrb r0, [r4] + cmp r0, #0xff + beq _0804B0AE + movs r5, #0 +_0804B068: + cmp r5, #0x1f + bhi _0804B09E + ldrb r1, [r4] + movs r0, #0xf + ands r0, r1 + cmp r0, #3 + bne _0804B09E + adds r0, r5, #0 + bl sub_08049D1C + cmp r0, #0 + beq _0804B0A4 + adds r0, r4, #0 + bl sub_0804ADF8 + adds r2, r0, #0 + cmp r2, #0 + beq _0804B0A4 + ldrb r0, [r2, #8] + cmp r0, #3 + bne _0804B0A4 + movs r0, #0x80 + adds r2, #0x6c + adds r1, r5, #0 + orrs r1, r0 + strb r1, [r2] + b _0804B0A4 +_0804B09E: + adds r0, r4, #0 + bl sub_0804ADF8 +_0804B0A4: + adds r5, #1 + adds r4, #0x10 + ldrb r0, [r4] + cmp r0, #0xff + bne _0804B068 +_0804B0AE: + pop {r4, r5, pc} + + thumb_func_start sub_0804B0B0 +sub_0804B0B0: @ 0x0804B0B0 + push {lr} + movs r2, #1 + bl sub_0804B0FC + bl sub_0804ADDC + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804B0C0 +sub_0804B0C0: @ 0x0804B0C0 + push {lr} + adds r2, r1, #0 + ldr r3, _0804B0E0 @ =gUnk_02017654 + movs r1, #0 + str r1, [r3] + ldr r1, _0804B0E4 @ =gUnk_080D50FC + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + cmp r1, #0 + beq _0804B0DE + lsls r0, r2, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r3] +_0804B0DE: + pop {pc} + .align 2, 0 +_0804B0E0: .4byte gUnk_02017654 +_0804B0E4: .4byte gUnk_080D50FC + + thumb_func_start sub_0804B0E8 +sub_0804B0E8: @ 0x0804B0E8 + push {lr} + movs r2, #4 + bl sub_0804B0FC + cmp r0, #0 + beq _0804B0F8 + bl _call_via_r0 +_0804B0F8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804B0FC +sub_0804B0FC: @ 0x0804B0FC + push {r4, lr} + adds r3, r1, #0 + adds r4, r2, #0 + movs r2, #0 + ldr r1, _0804B124 @ =gUnk_080D50FC + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + cmp r1, #0 + beq _0804B120 + lsls r0, r3, #2 + adds r0, r0, r1 + ldr r2, [r0] + cmp r2, #0 + beq _0804B120 + lsls r0, r4, #2 + adds r0, r0, r2 + ldr r2, [r0] +_0804B120: + adds r0, r2, #0 + pop {r4, pc} + .align 2, 0 +_0804B124: .4byte gUnk_080D50FC + + thumb_func_start sub_0804B128 +sub_0804B128: @ 0x0804B128 + push {lr} + adds r2, r0, #0 + ldr r0, _0804B138 @ =gUnk_02017654 + ldr r1, [r0] + cmp r1, #0 + bne _0804B13C + movs r0, #0 + b _0804B166 + .align 2, 0 +_0804B138: .4byte gUnk_02017654 +_0804B13C: + cmp r2, #0x7f + bls _0804B150 + ldr r0, _0804B14C @ =gUnk_02034350 + movs r1, #7 + ands r1, r2 + lsls r1, r1, #2 + adds r0, #0x8c + b _0804B162 + .align 2, 0 +_0804B14C: .4byte gUnk_02034350 +_0804B150: + cmp r2, #7 + bls _0804B15C + lsls r0, r2, #2 + adds r0, r0, r1 + ldr r0, [r0] + b _0804B166 +_0804B15C: + ldr r0, _0804B168 @ =gUnk_02034350 + lsls r1, r2, #2 + adds r0, #0x6c +_0804B162: + adds r1, r1, r0 + ldr r0, [r1] +_0804B166: + pop {pc} + .align 2, 0 +_0804B168: .4byte gUnk_02034350 + + thumb_func_start sub_0804B16C +sub_0804B16C: @ 0x0804B16C + push {r4, lr} + ldr r4, _0804B1A4 @ =gUnk_02017660 +_0804B170: + ldrh r0, [r4, #4] + cmp r0, #0 + beq _0804B198 + ldrb r0, [r4, #1] + bl sub_0807CBD0 + cmp r0, #0 + beq _0804B198 + ldrh r3, [r4, #4] + ldrb r1, [r4, #6] + movs r0, #1 + ands r0, r1 + movs r2, #1 + cmp r0, #0 + beq _0804B190 + movs r2, #2 +_0804B190: + movs r0, #0x74 + adds r1, r3, #0 + bl sub_0807B314 +_0804B198: + adds r4, #8 + ldr r0, _0804B1A8 @ =gUnk_020176A0 + cmp r4, r0 + blo _0804B170 + pop {r4, pc} + .align 2, 0 +_0804B1A4: .4byte gUnk_02017660 +_0804B1A8: .4byte gUnk_020176A0 + + thumb_func_start sub_0804B1AC +sub_0804B1AC: @ 0x0804B1AC + push {r4, lr} + adds r4, r0, #0 + cmp r4, #0 + beq _0804B25A + b _0804B254 +_0804B1B6: + ldrb r0, [r4] + subs r0, #1 + cmp r0, #0xc + bhi _0804B252 + lsls r0, r0, #2 + ldr r1, _0804B1C8 @ =_0804B1CC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0804B1C8: .4byte _0804B1CC +_0804B1CC: @ jump table + .4byte _0804B200 @ case 0 + .4byte _0804B208 @ case 1 + .4byte _0804B252 @ case 2 + .4byte _0804B210 @ case 3 + .4byte _0804B252 @ case 4 + .4byte _0804B252 @ case 5 + .4byte _0804B218 @ case 6 + .4byte _0804B252 @ case 7 + .4byte _0804B22C @ case 8 + .4byte _0804B234 @ case 9 + .4byte _0804B23C @ case 10 + .4byte _0804B244 @ case 11 + .4byte _0804B24C @ case 12 +_0804B200: + adds r0, r4, #0 + bl sub_0804B290 + b _0804B252 +_0804B208: + adds r0, r4, #0 + bl sub_0804B29C + b _0804B252 +_0804B210: + adds r0, r4, #0 + bl sub_0804B300 + b _0804B252 +_0804B218: + ldr r0, _0804B224 @ =gUnk_02033A90 + ldr r1, _0804B228 @ =0x00000864 + adds r0, r0, r1 + ldrb r1, [r4, #3] + str r1, [r0] + b _0804B252 + .align 2, 0 +_0804B224: .4byte gUnk_02033A90 +_0804B228: .4byte 0x00000864 +_0804B22C: + adds r0, r4, #0 + bl sub_0804B334 + b _0804B252 +_0804B234: + adds r0, r4, #0 + bl sub_0804B340 + b _0804B252 +_0804B23C: + adds r0, r4, #0 + bl sub_0804B260 + b _0804B252 +_0804B244: + adds r0, r4, #0 + bl sub_0804B27C + b _0804B252 +_0804B24C: + ldr r1, _0804B25C @ =gUnk_02034350 + ldrb r0, [r4, #3] + strb r0, [r1, #9] +_0804B252: + adds r4, #8 +_0804B254: + ldrb r0, [r4] + cmp r0, #0 + bne _0804B1B6 +_0804B25A: + pop {r4, pc} + .align 2, 0 +_0804B25C: .4byte gUnk_02034350 + + thumb_func_start sub_0804B260 +sub_0804B260: @ 0x0804B260 + push {lr} + ldrb r0, [r0, #1] + lsls r0, r0, #5 + ldr r1, _0804B274 @ =gUnk_080015BC + adds r0, r0, r1 + ldr r1, _0804B278 @ =gUnk_02034398 + movs r2, #0x20 + bl sub_0801D66C + pop {pc} + .align 2, 0 +_0804B274: .4byte gUnk_080015BC +_0804B278: .4byte gUnk_02034398 + + thumb_func_start sub_0804B27C +sub_0804B27C: @ 0x0804B27C + push {lr} + ldr r1, _0804B28C @ =gUnk_02033A90 + ldrb r0, [r0, #1] + strb r0, [r1, #1] + bl sub_08054524 + pop {pc} + .align 2, 0 +_0804B28C: .4byte gUnk_02033A90 + + thumb_func_start sub_0804B290 +sub_0804B290: @ 0x0804B290 + push {lr} + ldrb r0, [r0, #1] + bl sub_0807CCB4 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804B29C +sub_0804B29C: @ 0x0804B29C + push {r4, lr} + adds r2, r0, #0 + ldr r4, _0804B2EC @ =gUnk_02017660 + movs r1, #0 +_0804B2A4: + ldrh r0, [r4, #4] + cmp r0, #0 + bne _0804B2F4 + adds r0, r2, #0 + adds r1, r4, #0 + movs r2, #8 + bl sub_0801D66C + ldrb r1, [r4, #6] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0804B2FC + ldr r0, _0804B2F0 @ =gUnk_03000BF0 + ldrb r1, [r0, #0xf] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0804B2FC + ldrb r0, [r4, #1] + bl sub_0807CBD0 + cmp r0, #0 + bne _0804B2FC + ldrb r1, [r4, #1] + movs r0, #0x52 + movs r2, #0 + bl sub_080A2960 + cmp r0, #0 + beq _0804B2FC + ldrh r1, [r4, #4] + bl sub_0806F704 + b _0804B2FC + .align 2, 0 +_0804B2EC: .4byte gUnk_02017660 +_0804B2F0: .4byte gUnk_03000BF0 +_0804B2F4: + adds r1, #1 + adds r4, #8 + cmp r1, #7 + bls _0804B2A4 +_0804B2FC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0804B300 +sub_0804B300: @ 0x0804B300 + push {r4, lr} + adds r4, r0, #0 + bl sub_0805E8D4 + adds r1, r0, #0 + cmp r1, #0 + beq _0804B332 + movs r0, #9 + strb r0, [r1, #8] + movs r0, #0x24 + strb r0, [r1, #9] + ldrh r0, [r4, #4] + strh r0, [r1, #0x38] + ldrh r0, [r4, #6] + strh r0, [r1, #0x3a] + ldrb r0, [r4, #2] + adds r2, r1, #0 + adds r2, #0x35 + strb r0, [r2] + ldrb r0, [r4, #1] + strh r0, [r1, #0x3e] + adds r0, r1, #0 + movs r1, #6 + bl sub_0805EA2C +_0804B332: + pop {r4, pc} + + thumb_func_start sub_0804B334 +sub_0804B334: @ 0x0804B334 + push {lr} + ldrb r0, [r0, #3] + movs r1, #1 + bl sub_0805BB00 + pop {pc} + + thumb_func_start sub_0804B340 +sub_0804B340: @ 0x0804B340 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #2] + bl sub_0807CBD0 + cmp r0, #0 + beq _0804B35A + ldrh r0, [r4, #6] + ldrh r1, [r4, #4] + ldrb r2, [r4, #1] + bl sub_0807B314 + b _0804B380 +_0804B35A: + ldr r1, _0804B384 @ =gUnk_02034350 + ldrb r0, [r1, #1] + cmp r0, #0 + bne _0804B380 + movs r0, #1 + strb r0, [r1, #1] + bl sub_0805E8D4 + adds r1, r0, #0 + cmp r1, #0 + beq _0804B380 + movs r0, #9 + strb r0, [r1, #8] + movs r0, #0x2a + strb r0, [r1, #9] + adds r0, r1, #0 + movs r1, #6 + bl sub_0805EA2C +_0804B380: + pop {r4, pc} + .align 2, 0 +_0804B384: .4byte gUnk_02034350 + + thumb_func_start sub_0804B388 +sub_0804B388: @ 0x0804B388 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + movs r0, #0x34 + cmp r4, #1 + bne _0804B396 + movs r0, #0x26 +_0804B396: + adds r1, r5, #0 + adds r2, r4, #0 + bl sub_0807B314 + movs r0, #0xf + movs r1, #2 + movs r2, #0 + bl sub_080A2960 + adds r1, r0, #0 + cmp r1, #0 + beq _0804B3BA + adds r0, #0x38 + strb r4, [r0] + adds r0, r1, #0 + adds r1, r5, #0 + bl sub_0806F704 +_0804B3BA: + movs r0, #1 + rsbs r0, r0, #0 + bl sub_080526F8 + pop {r4, r5, pc} + + thumb_func_start sub_0804B3C4 +sub_0804B3C4: @ 0x0804B3C4 + push {lr} + bl sub_0804B29C + pop {pc} + + thumb_func_start sub_0804B3CC +sub_0804B3CC: @ 0x0804B3CC + movs r0, #1 + bx lr + + thumb_func_start sub_0804B3D0 +sub_0804B3D0: @ 0x0804B3D0 + push {lr} + movs r0, #0 + bl sub_08030118 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804B3DC +sub_0804B3DC: @ 0x0804B3DC + movs r0, #1 + bx lr + + thumb_func_start sub_0804B3E0 +sub_0804B3E0: @ 0x0804B3E0 + push {lr} + movs r0, #1 + bl sub_08030118 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804B3EC +sub_0804B3EC: @ 0x0804B3EC + movs r0, #1 + bx lr + + thumb_func_start sub_0804B3F0 +sub_0804B3F0: @ 0x0804B3F0 + push {lr} + movs r0, #2 + bl sub_08030118 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804B3FC +sub_0804B3FC: @ 0x0804B3FC + movs r0, #1 + bx lr + + thumb_func_start sub_0804B400 +sub_0804B400: @ 0x0804B400 + push {lr} + movs r0, #3 + bl sub_08030118 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804B40C +sub_0804B40C: @ 0x0804B40C + movs r0, #1 + bx lr + + thumb_func_start sub_0804B410 +sub_0804B410: @ 0x0804B410 + push {lr} + movs r0, #4 + bl sub_08030118 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804B41C +sub_0804B41C: @ 0x0804B41C + movs r0, #1 + bx lr + + thumb_func_start sub_0804B420 +sub_0804B420: @ 0x0804B420 + push {lr} + movs r0, #5 + bl sub_08030118 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804B42C +sub_0804B42C: @ 0x0804B42C + movs r0, #1 + bx lr + + thumb_func_start sub_0804B430 +sub_0804B430: @ 0x0804B430 + push {lr} + movs r0, #6 + bl sub_08030118 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804B43C +sub_0804B43C: @ 0x0804B43C + movs r0, #1 + bx lr + + thumb_func_start sub_0804B440 +sub_0804B440: @ 0x0804B440 + push {lr} + movs r0, #7 + bl sub_08030118 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804B44C +sub_0804B44C: @ 0x0804B44C + movs r0, #1 + bx lr + + thumb_func_start sub_0804B450 +sub_0804B450: @ 0x0804B450 + push {lr} + movs r0, #8 + bl sub_08030118 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804B45C +sub_0804B45C: @ 0x0804B45C + movs r0, #1 + bx lr + + thumb_func_start sub_0804B460 +sub_0804B460: @ 0x0804B460 + push {lr} + movs r0, #9 + bl sub_08030118 + ldr r0, _0804B474 @ =gUnk_02033A90 + movs r1, #3 + strb r1, [r0, #3] + movs r1, #0x4e + strb r1, [r0] + pop {pc} + .align 2, 0 +_0804B474: .4byte gUnk_02033A90 + + thumb_func_start sub_0804B478 +sub_0804B478: @ 0x0804B478 + movs r0, #1 + bx lr + + thumb_func_start sub_0804B47C +sub_0804B47C: @ 0x0804B47C + push {lr} + movs r0, #0xa + bl sub_08030118 + ldr r0, _0804B490 @ =gUnk_02033A90 + movs r1, #3 + strb r1, [r0, #3] + movs r1, #0x4e + strb r1, [r0] + pop {pc} + .align 2, 0 +_0804B490: .4byte gUnk_02033A90 + + thumb_func_start sub_0804B494 +sub_0804B494: @ 0x0804B494 + movs r0, #1 + bx lr + + thumb_func_start sub_0804B498 +sub_0804B498: @ 0x0804B498 + push {lr} + movs r0, #0x23 + bl sub_080575C8 + bl sub_08057688 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804B4A8 +sub_0804B4A8: @ 0x0804B4A8 + movs r0, #1 + bx lr + + thumb_func_start sub_0804B4AC +sub_0804B4AC: @ 0x0804B4AC + push {lr} + movs r0, #0x23 + bl sub_080575C8 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804B4B8 +sub_0804B4B8: @ 0x0804B4B8 + push {lr} + movs r0, #0x23 + bl sub_080575C8 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804B4C4 +sub_0804B4C4: @ 0x0804B4C4 + movs r0, #1 + bx lr + + thumb_func_start sub_0804B4C8 +sub_0804B4C8: @ 0x0804B4C8 + push {lr} + movs r0, #0x22 + bl sub_080580B0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804B4D4 +sub_0804B4D4: @ 0x0804B4D4 + push {lr} + movs r0, #0x22 + bl sub_080580B0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804B4E0 +sub_0804B4E0: @ 0x0804B4E0 + movs r0, #1 + bx lr + + thumb_func_start sub_0804B4E4 +sub_0804B4E4: @ 0x0804B4E4 + push {lr} + movs r0, #0x22 + bl sub_080580B0 + movs r0, #2 + bl sub_0807CA84 + cmp r0, #0 + beq _0804B4FC + movs r0, #0x56 + bl sub_0807CD04 +_0804B4FC: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804B500 +sub_0804B500: @ 0x0804B500 + push {lr} + movs r0, #0x22 + bl sub_080580B0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804B50C +sub_0804B50C: @ 0x0804B50C + movs r0, #1 + bx lr + + thumb_func_start sub_0804B510 +sub_0804B510: @ 0x0804B510 + push {lr} + movs r0, #0x1e + bl sub_080575C8 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804B51C +sub_0804B51C: @ 0x0804B51C + push {lr} + movs r0, #0x1e + bl sub_080575C8 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804B528 +sub_0804B528: @ 0x0804B528 + movs r0, #1 + bx lr + + thumb_func_start sub_0804B52C +sub_0804B52C: @ 0x0804B52C + push {lr} + movs r0, #0x21 + bl sub_080575C8 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804B538 +sub_0804B538: @ 0x0804B538 + push {lr} + movs r0, #0x21 + bl sub_080575C8 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804B544 +sub_0804B544: @ 0x0804B544 + movs r0, #1 + bx lr + + thumb_func_start sub_0804B548 +sub_0804B548: @ 0x0804B548 + push {lr} + movs r0, #0x1f + bl sub_080575C8 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804B554 +sub_0804B554: @ 0x0804B554 + push {lr} + movs r0, #0x1f + bl sub_080575C8 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804B560 +sub_0804B560: @ 0x0804B560 + movs r0, #1 + bx lr + + thumb_func_start sub_0804B564 +sub_0804B564: @ 0x0804B564 + push {lr} + movs r0, #0x20 + bl sub_080575C8 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804B570 +sub_0804B570: @ 0x0804B570 + push {lr} + movs r0, #0x20 + bl sub_080575C8 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804B57C +sub_0804B57C: @ 0x0804B57C + movs r0, #1 + bx lr + + thumb_func_start sub_0804B580 +sub_0804B580: @ 0x0804B580 + push {lr} + movs r0, #0x20 + bl sub_080575C8 + ldr r0, _0804B5A0 @ =gUnk_03001160 + movs r1, #0x32 + ldrsh r0, [r0, r1] + ldr r1, _0804B5A4 @ =gUnk_03000BF0 + ldrh r1, [r1, #8] + subs r0, r0, r1 + cmp r0, #0x40 + ble _0804B59E + ldr r0, _0804B5A8 @ =gUnk_080D6138 + bl sub_0804ADDC +_0804B59E: + pop {pc} + .align 2, 0 +_0804B5A0: .4byte gUnk_03001160 +_0804B5A4: .4byte gUnk_03000BF0 +_0804B5A8: .4byte gUnk_080D6138 + + thumb_func_start sub_0804B5AC +sub_0804B5AC: @ 0x0804B5AC + push {lr} + movs r0, #0x20 + bl sub_080575C8 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804B5B8 +sub_0804B5B8: @ 0x0804B5B8 + movs r0, #1 + bx lr + + thumb_func_start sub_0804B5BC +sub_0804B5BC: @ 0x0804B5BC + push {lr} + ldr r0, _0804B5D0 @ =gUnk_030010A0 + ldrh r0, [r0, #0x12] + cmp r0, #0x40 + bls _0804B5CC + ldr r0, _0804B5D4 @ =gUnk_080D6210 + bl sub_0804ADDC +_0804B5CC: + pop {pc} + .align 2, 0 +_0804B5D0: .4byte gUnk_030010A0 +_0804B5D4: .4byte gUnk_080D6210 + + thumb_func_start sub_0804B5D8 +sub_0804B5D8: @ 0x0804B5D8 + movs r0, #1 + bx lr + + thumb_func_start sub_0804B5DC +sub_0804B5DC: @ 0x0804B5DC + push {r4, r5, r6, lr} + movs r0, #0x2c + bl sub_0801E7F4 + cmp r0, #0 + beq _0804B5EE + ldr r0, _0804B618 @ =gUnk_080D6340 + bl sub_0804ADDC +_0804B5EE: + movs r6, #0 + ldr r4, _0804B61C @ =gUnk_080D64F8 + movs r5, #7 +_0804B5F4: + ldrh r0, [r4] + adds r4, #2 + bl sub_0807CA84 + cmp r0, #0 + beq _0804B602 + adds r6, #1 +_0804B602: + subs r5, #1 + cmp r5, #0 + bge _0804B5F4 + movs r0, #0x8b + bl sub_0807CBD0 + cmp r0, #0 + beq _0804B648 + ldr r4, _0804B620 @ =gUnk_080D6508 + movs r5, #0 + b _0804B628 + .align 2, 0 +_0804B618: .4byte gUnk_080D6340 +_0804B61C: .4byte gUnk_080D64F8 +_0804B620: .4byte gUnk_080D6508 +_0804B624: + adds r5, #1 + adds r4, #2 +_0804B628: + cmp r5, r6 + bge _0804B648 + ldrh r0, [r4] + bl sub_0807CBD0 + cmp r0, #0 + bne _0804B624 + ldrh r0, [r4] + bl sub_0807CCB4 + movs r0, #0x8b + bl sub_0807CD34 + movs r0, #0x8c + bl sub_0807CCB4 +_0804B648: + movs r0, #0x1f + bl sub_0807CBD0 + cmp r0, #0 + beq _0804B658 + ldr r0, _0804B6CC @ =gUnk_080D6360 + bl sub_0804ADDC +_0804B658: + movs r0, #0x20 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804B668 + ldr r0, _0804B6D0 @ =gUnk_080D6380 + bl sub_0804ADDC +_0804B668: + movs r0, #0x21 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804B678 + ldr r0, _0804B6D4 @ =gUnk_080D63A0 + bl sub_0804ADDC +_0804B678: + movs r0, #0x22 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804B688 + ldr r0, _0804B6D8 @ =gUnk_080D63C0 + bl sub_0804ADDC +_0804B688: + movs r0, #0x23 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804B698 + ldr r0, _0804B6DC @ =gUnk_080D63E0 + bl sub_0804ADDC +_0804B698: + movs r0, #0x24 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804B6A8 + ldr r0, _0804B6E0 @ =gUnk_080D6400 + bl sub_0804ADDC +_0804B6A8: + movs r0, #0x25 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804B6B8 + ldr r0, _0804B6E4 @ =gUnk_080D6420 + bl sub_0804ADDC +_0804B6B8: + movs r0, #0x26 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804B6C8 + ldr r0, _0804B6E8 @ =gUnk_080D6440 + bl sub_0804ADDC +_0804B6C8: + pop {r4, r5, r6, pc} + .align 2, 0 +_0804B6CC: .4byte gUnk_080D6360 +_0804B6D0: .4byte gUnk_080D6380 +_0804B6D4: .4byte gUnk_080D63A0 +_0804B6D8: .4byte gUnk_080D63C0 +_0804B6DC: .4byte gUnk_080D63E0 +_0804B6E0: .4byte gUnk_080D6400 +_0804B6E4: .4byte gUnk_080D6420 +_0804B6E8: .4byte gUnk_080D6440 + + thumb_func_start sub_0804B6EC +sub_0804B6EC: @ 0x0804B6EC + movs r0, #1 + bx lr + + thumb_func_start sub_0804B6F0 +sub_0804B6F0: @ 0x0804B6F0 + push {lr} + movs r0, #0x46 + bl sub_0807CA84 + cmp r0, #0 + bne _0804B71C + ldr r0, _0804B714 @ =gUnk_080D6578 + bl sub_0804ADDC + movs r0, #0x73 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804B722 + ldr r0, _0804B718 @ =gUnk_080D6638 + bl sub_0804ADDC + b _0804B728 + .align 2, 0 +_0804B714: .4byte gUnk_080D6578 +_0804B718: .4byte gUnk_080D6638 +_0804B71C: + ldr r0, _0804B72C @ =gUnk_080D6558 + bl sub_0804ADDC +_0804B722: + ldr r0, _0804B730 @ =gUnk_080D6618 + bl sub_0804ADDC +_0804B728: + pop {pc} + .align 2, 0 +_0804B72C: .4byte gUnk_080D6558 +_0804B730: .4byte gUnk_080D6618 + + thumb_func_start sub_0804B734 +sub_0804B734: @ 0x0804B734 + movs r0, #1 + bx lr + + thumb_func_start sub_0804B738 +sub_0804B738: @ 0x0804B738 + push {lr} + ldr r0, _0804B770 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + cmp r0, #4 + bls _0804B748 + ldr r0, _0804B774 @ =gUnk_080D6714 + bl sub_0804ADDC +_0804B748: + movs r0, #0x46 + bl sub_0807CA84 + cmp r0, #0 + bne _0804B77C + movs r0, #0x29 + bl sub_0807CC30 + cmp r0, #0 + beq _0804B77C + movs r0, #0x6a + bl sub_0807CBD0 + cmp r0, #0 + beq _0804B77C + ldr r0, _0804B778 @ =gUnk_080D6734 + bl sub_0804ADDC + b _0804B782 + .align 2, 0 +_0804B770: .4byte gUnk_02002A40 +_0804B774: .4byte gUnk_080D6714 +_0804B778: .4byte gUnk_080D6734 +_0804B77C: + ldr r0, _0804B784 @ =gUnk_080D66F4 + bl sub_0804ADDC +_0804B782: + pop {pc} + .align 2, 0 +_0804B784: .4byte gUnk_080D66F4 + + thumb_func_start sub_0804B788 +sub_0804B788: @ 0x0804B788 + movs r0, #1 + bx lr + + thumb_func_start sub_0804B78C +sub_0804B78C: @ 0x0804B78C + push {lr} + ldr r0, _0804B7A0 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + cmp r0, #7 + bls _0804B79C + ldr r0, _0804B7A4 @ =gUnk_080D6924 + bl sub_0804ADDC +_0804B79C: + pop {pc} + .align 2, 0 +_0804B7A0: .4byte gUnk_02002A40 +_0804B7A4: .4byte gUnk_080D6924 + + thumb_func_start sub_0804B7A8 +sub_0804B7A8: @ 0x0804B7A8 + push {r4, lr} + movs r0, #0x91 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804B7C8 + bl sub_08000E50 + movs r1, #3 + bl __modsi3 + adds r4, r0, #0 + movs r0, #1 + bl sub_0807CD34 + b _0804B7D0 +_0804B7C8: + movs r4, #0 + movs r0, #1 + bl sub_0807CCB4 +_0804B7D0: + ldr r2, _0804B7E0 @ =gUnk_02034350 + ldr r1, _0804B7E4 @ =gUnk_080D6A74 + lsls r0, r4, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r2, #0x78] + movs r0, #1 + pop {r4, pc} + .align 2, 0 +_0804B7E0: .4byte gUnk_02034350 +_0804B7E4: .4byte gUnk_080D6A74 + + thumb_func_start sub_0804B7E8 +sub_0804B7E8: @ 0x0804B7E8 + push {lr} + movs r0, #0x91 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804B81E + movs r0, #0x91 + bl sub_0807CD34 + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #5 + bl sub_08050054 + ldr r2, _0804B820 @ =gUnk_03001160 + ldr r1, _0804B824 @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + adds r0, #0x50 + strh r0, [r2, #0x2e] + ldrh r0, [r1, #8] + adds r0, #0x38 + strh r0, [r2, #0x32] + ldr r2, _0804B828 @ =gUnk_08010A5C + movs r0, #1 + movs r1, #2 + bl sub_080751E8 +_0804B81E: + pop {pc} + .align 2, 0 +_0804B820: .4byte gUnk_03001160 +_0804B824: .4byte gUnk_03000BF0 +_0804B828: .4byte gUnk_08010A5C + + thumb_func_start sub_0804B82C +sub_0804B82C: @ 0x0804B82C + push {r4, lr} + movs r0, #0x91 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804B84A + bl sub_08000E50 + adds r4, r0, #0 + movs r0, #1 + ands r4, r0 + movs r0, #2 + bl sub_0807CD34 + b _0804B852 +_0804B84A: + movs r4, #0 + movs r0, #2 + bl sub_0807CCB4 +_0804B852: + ldr r2, _0804B864 @ =gUnk_02034350 + ldr r1, _0804B868 @ =gUnk_080D6B18 + lsls r0, r4, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r2, #0x78] + movs r0, #1 + pop {r4, pc} + .align 2, 0 +_0804B864: .4byte gUnk_02034350 +_0804B868: .4byte gUnk_080D6B18 + + thumb_func_start sub_0804B86C +sub_0804B86C: @ 0x0804B86C + push {lr} + movs r0, #0x91 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804B8A2 + movs r0, #0x91 + bl sub_0807CD34 + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #5 + bl sub_08050054 + ldr r2, _0804B8A4 @ =gUnk_03001160 + ldr r1, _0804B8A8 @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + adds r0, #0x50 + strh r0, [r2, #0x2e] + ldrh r0, [r1, #8] + adds r0, #0x38 + strh r0, [r2, #0x32] + ldr r2, _0804B8AC @ =gUnk_08010A5C + movs r0, #1 + movs r1, #2 + bl sub_080751E8 +_0804B8A2: + pop {pc} + .align 2, 0 +_0804B8A4: .4byte gUnk_03001160 +_0804B8A8: .4byte gUnk_03000BF0 +_0804B8AC: .4byte gUnk_08010A5C + + thumb_func_start sub_0804B8B0 +sub_0804B8B0: @ 0x0804B8B0 + push {r4, lr} + movs r0, #0x91 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804B8D0 + bl sub_08000E50 + movs r1, #3 + bl __modsi3 + adds r4, r0, #0 + movs r0, #3 + bl sub_0807CD34 + b _0804B8D8 +_0804B8D0: + movs r4, #0 + movs r0, #3 + bl sub_0807CCB4 +_0804B8D8: + ldr r2, _0804B8E8 @ =gUnk_02034350 + ldr r1, _0804B8EC @ =gUnk_080D6BB8 + lsls r0, r4, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r2, #0x78] + movs r0, #1 + pop {r4, pc} + .align 2, 0 +_0804B8E8: .4byte gUnk_02034350 +_0804B8EC: .4byte gUnk_080D6BB8 + + thumb_func_start sub_0804B8F0 +sub_0804B8F0: @ 0x0804B8F0 + push {lr} + movs r0, #0x91 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804B926 + movs r0, #0x91 + bl sub_0807CD34 + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #5 + bl sub_08050054 + ldr r2, _0804B928 @ =gUnk_03001160 + ldr r1, _0804B92C @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + adds r0, #0x60 + strh r0, [r2, #0x2e] + ldrh r0, [r1, #8] + adds r0, #0x38 + strh r0, [r2, #0x32] + ldr r2, _0804B930 @ =gUnk_08010A5C + movs r0, #1 + movs r1, #2 + bl sub_080751E8 +_0804B926: + pop {pc} + .align 2, 0 +_0804B928: .4byte gUnk_03001160 +_0804B92C: .4byte gUnk_03000BF0 +_0804B930: .4byte gUnk_08010A5C + + thumb_func_start sub_0804B934 +sub_0804B934: @ 0x0804B934 + movs r0, #1 + bx lr + + thumb_func_start sub_0804B938 +sub_0804B938: @ 0x0804B938 + push {lr} + ldr r0, _0804B968 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + cmp r0, #3 + bls _0804B9F2 + movs r0, #0x2b + bl sub_0807CC30 + cmp r0, #0 + beq _0804B970 + movs r0, #0x2f + bl sub_0807CC30 + cmp r0, #0 + bne _0804B984 + movs r0, #0x30 + bl sub_0807CC30 + cmp r0, #0 + bne _0804B9BC + ldr r0, _0804B96C @ =gUnk_080D6C64 + bl sub_0804ADDC + b _0804B9F2 + .align 2, 0 +_0804B968: .4byte gUnk_02002A40 +_0804B96C: .4byte gUnk_080D6C64 +_0804B970: + movs r0, #0x2c + bl sub_0807CC30 + cmp r0, #0 + beq _0804B9A8 + movs r0, #0x2e + bl sub_0807CC30 + cmp r0, #0 + beq _0804B990 +_0804B984: + ldr r0, _0804B98C @ =gUnk_080D6D04 + bl sub_0804ADDC + b _0804B9F2 + .align 2, 0 +_0804B98C: .4byte gUnk_080D6D04 +_0804B990: + movs r0, #0x30 + bl sub_0807CC30 + cmp r0, #0 + bne _0804B9D2 + ldr r0, _0804B9A4 @ =gUnk_080D6C94 + bl sub_0804ADDC + b _0804B9F2 + .align 2, 0 +_0804B9A4: .4byte gUnk_080D6C94 +_0804B9A8: + movs r0, #0x2d + bl sub_0807CC30 + cmp r0, #0 + beq _0804B9EC + movs r0, #0x2e + bl sub_0807CC30 + cmp r0, #0 + beq _0804B9C8 +_0804B9BC: + ldr r0, _0804B9C4 @ =gUnk_080D6CE4 + bl sub_0804ADDC + b _0804B9F2 + .align 2, 0 +_0804B9C4: .4byte gUnk_080D6CE4 +_0804B9C8: + movs r0, #0x2f + bl sub_0807CC30 + cmp r0, #0 + beq _0804B9E0 +_0804B9D2: + ldr r0, _0804B9DC @ =gUnk_080D6CC4 + bl sub_0804ADDC + b _0804B9F2 + .align 2, 0 +_0804B9DC: .4byte gUnk_080D6CC4 +_0804B9E0: + ldr r0, _0804B9E8 @ =gUnk_080D6C34 + bl sub_0804ADDC + b _0804B9F2 + .align 2, 0 +_0804B9E8: .4byte gUnk_080D6C34 +_0804B9EC: + ldr r0, _0804B9F4 @ =gUnk_080D6BF4 + bl sub_0804ADDC +_0804B9F2: + pop {pc} + .align 2, 0 +_0804B9F4: .4byte gUnk_080D6BF4 + + thumb_func_start sub_0804B9F8 +sub_0804B9F8: @ 0x0804B9F8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_176 +nullsub_176: @ 0x0804B9FC + bx lr + .align 2, 0 + + thumb_func_start sub_0804BA00 +sub_0804BA00: @ 0x0804BA00 + movs r0, #1 + bx lr + + thumb_func_start nullsub_177 +nullsub_177: @ 0x0804BA04 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BA08 +sub_0804BA08: @ 0x0804BA08 + movs r0, #1 + bx lr + + thumb_func_start sub_0804BA0C +sub_0804BA0C: @ 0x0804BA0C + push {lr} + ldr r0, _0804BA34 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + cmp r0, #7 + bhi _0804BA1C + ldr r0, _0804BA38 @ =gUnk_080D7038 + bl sub_0804ADDC +_0804BA1C: + ldr r0, _0804BA3C @ =gUnk_02034350 + ldrb r0, [r0] + cmp r0, #0 + bne _0804BA32 + movs r2, #0xb2 + lsls r2, r2, #2 + movs r0, #2 + movs r1, #0 + movs r3, #0xa8 + bl sub_08052CA4 +_0804BA32: + pop {pc} + .align 2, 0 +_0804BA34: .4byte gUnk_02002A40 +_0804BA38: .4byte gUnk_080D7038 +_0804BA3C: .4byte gUnk_02034350 + + thumb_func_start sub_0804BA40 +sub_0804BA40: @ 0x0804BA40 + movs r0, #1 + bx lr + + thumb_func_start sub_0804BA44 +sub_0804BA44: @ 0x0804BA44 + push {r4, lr} + ldr r4, _0804BA7C @ =gUnk_02002A40 + ldrb r0, [r4, #8] + cmp r0, #6 + bne _0804BA54 + ldr r0, _0804BA80 @ =gUnk_080D7140 + bl sub_0804ADDC +_0804BA54: + ldrb r0, [r4, #8] + cmp r0, #7 + bne _0804BA60 + ldr r0, _0804BA84 @ =gUnk_080D7170 + bl sub_0804ADDC +_0804BA60: + ldrb r0, [r4, #8] + cmp r0, #7 + bls _0804BA72 + ldr r0, _0804BA88 @ =gUnk_080D71A0 + bl sub_0804ADDC + ldrb r0, [r4, #8] + cmp r0, #7 + bhi _0804BA90 +_0804BA72: + ldr r0, _0804BA8C @ =gUnk_080D71D0 + bl sub_0804ADDC + b _0804BA96 + .align 2, 0 +_0804BA7C: .4byte gUnk_02002A40 +_0804BA80: .4byte gUnk_080D7140 +_0804BA84: .4byte gUnk_080D7170 +_0804BA88: .4byte gUnk_080D71A0 +_0804BA8C: .4byte gUnk_080D71D0 +_0804BA90: + ldr r0, _0804BA98 @ =gUnk_080D71F0 + bl sub_0804ADDC +_0804BA96: + pop {r4, pc} + .align 2, 0 +_0804BA98: .4byte gUnk_080D71F0 + + thumb_func_start sub_0804BA9C +sub_0804BA9C: @ 0x0804BA9C + push {lr} + movs r0, #0x51 + bl sub_0807CC30 + cmp r0, #0 + beq _0804BAB2 + ldr r0, _0804BAB8 @ =gUnk_02034350 + ldr r1, _0804BABC @ =gUnk_080D7348 + str r1, [r0, #0x6c] + movs r1, #0 + str r1, [r0, #0x74] +_0804BAB2: + movs r0, #1 + pop {pc} + .align 2, 0 +_0804BAB8: .4byte gUnk_02034350 +_0804BABC: .4byte gUnk_080D7348 + + thumb_func_start sub_0804BAC0 +sub_0804BAC0: @ 0x0804BAC0 + push {lr} + movs r0, #3 + bl sub_0807CC30 + cmp r0, #0 + bne _0804BAD2 + ldr r0, _0804BAE8 @ =gUnk_080D7328 + bl sub_0804ADDC +_0804BAD2: + movs r0, #0x64 + bl sub_0807CC30 + cmp r0, #0 + beq _0804BAF4 + ldr r0, _0804BAEC @ =gUnk_02033A90 + ldr r1, _0804BAF0 @ =0x00000864 + adds r0, r0, r1 + movs r1, #0x1b + str r1, [r0] + b _0804BB0C + .align 2, 0 +_0804BAE8: .4byte gUnk_080D7328 +_0804BAEC: .4byte gUnk_02033A90 +_0804BAF0: .4byte 0x00000864 +_0804BAF4: + movs r0, #0x51 + bl sub_0807CC30 + cmp r0, #0 + beq _0804BB0C + ldr r0, _0804BB10 @ =gUnk_02033A90 + ldr r2, _0804BB14 @ =0x00000864 + adds r1, r0, r2 + subs r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] +_0804BB0C: + pop {pc} + .align 2, 0 +_0804BB10: .4byte gUnk_02033A90 +_0804BB14: .4byte 0x00000864 + + thumb_func_start sub_0804BB18 +sub_0804BB18: @ 0x0804BB18 + push {lr} + movs r0, #0x51 + bl sub_0807CC30 + cmp r0, #0 + beq _0804BB2E + ldr r0, _0804BB34 @ =gUnk_02034350 + ldr r1, _0804BB38 @ =gUnk_080D7410 + str r1, [r0, #0x6c] + movs r1, #0 + str r1, [r0, #0x74] +_0804BB2E: + movs r0, #1 + pop {pc} + .align 2, 0 +_0804BB34: .4byte gUnk_02034350 +_0804BB38: .4byte gUnk_080D7410 + + thumb_func_start sub_0804BB3C +sub_0804BB3C: @ 0x0804BB3C + push {lr} + movs r0, #0x51 + bl sub_0807CC30 + cmp r0, #0 + bne _0804BB7C + movs r0, #3 + bl sub_0807CC30 + cmp r0, #0 + bne _0804BB58 + ldr r0, _0804BB8C @ =gUnk_080D73B0 + bl sub_0804ADDC +_0804BB58: + movs r0, #2 + bl sub_0807CC30 + cmp r0, #0 + bne _0804BB72 + movs r0, #0x15 + bl sub_0807CC30 + cmp r0, #0 + beq _0804BB72 + ldr r0, _0804BB90 @ =gUnk_080D73E0 + bl sub_0804ADDC +_0804BB72: + movs r0, #0x64 + bl sub_0807CC30 + cmp r0, #0 + beq _0804BB8A +_0804BB7C: + ldr r0, _0804BB94 @ =gUnk_02033A90 + ldr r2, _0804BB98 @ =0x00000864 + adds r1, r0, r2 + subs r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] +_0804BB8A: + pop {pc} + .align 2, 0 +_0804BB8C: .4byte gUnk_080D73B0 +_0804BB90: .4byte gUnk_080D73E0 +_0804BB94: .4byte gUnk_02033A90 +_0804BB98: .4byte 0x00000864 + + thumb_func_start sub_0804BB9C +sub_0804BB9C: @ 0x0804BB9C + movs r0, #1 + bx lr + + thumb_func_start sub_0804BBA0 +sub_0804BBA0: @ 0x0804BBA0 + push {lr} + movs r0, #0x64 + bl sub_0807CC30 + cmp r0, #0 + beq _0804BBBA + ldr r0, _0804BBDC @ =gUnk_02033A90 + ldr r2, _0804BBE0 @ =0x00000864 + adds r1, r0, r2 + subs r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] +_0804BBBA: + movs r0, #0x51 + bl sub_0807CC30 + cmp r0, #0 + beq _0804BBE8 + ldr r0, _0804BBE4 @ =gUnk_080D7618 + bl sub_0804ADDC + ldr r0, _0804BBDC @ =gUnk_02033A90 + ldr r2, _0804BBE0 @ =0x00000864 + adds r1, r0, r2 + subs r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] + b _0804BC2E + .align 2, 0 +_0804BBDC: .4byte gUnk_02033A90 +_0804BBE0: .4byte 0x00000864 +_0804BBE4: .4byte gUnk_080D7618 +_0804BBE8: + movs r0, #0x15 + bl sub_0807CC30 + cmp r0, #0 + bne _0804BC10 + ldr r0, _0804BC04 @ =gUnk_080D74C8 + bl sub_0804ADDC + ldr r0, _0804BC08 @ =gUnk_02033A90 + ldr r1, _0804BC0C @ =0x00000864 + adds r0, r0, r1 + movs r1, #0x1b + str r1, [r0] + b _0804BC2E + .align 2, 0 +_0804BC04: .4byte gUnk_080D74C8 +_0804BC08: .4byte gUnk_02033A90 +_0804BC0C: .4byte 0x00000864 +_0804BC10: + movs r0, #2 + bl sub_0807CC30 + cmp r0, #0 + bne _0804BC28 + ldr r0, _0804BC24 @ =gUnk_080D7588 + bl sub_0804ADDC + b _0804BC2E + .align 2, 0 +_0804BC24: .4byte gUnk_080D7588 +_0804BC28: + ldr r0, _0804BC30 @ =gUnk_080D75D8 + bl sub_0804ADDC +_0804BC2E: + pop {pc} + .align 2, 0 +_0804BC30: .4byte gUnk_080D75D8 + + thumb_func_start sub_0804BC34 +sub_0804BC34: @ 0x0804BC34 + movs r0, #1 + bx lr + + thumb_func_start sub_0804BC38 +sub_0804BC38: @ 0x0804BC38 + push {lr} + movs r0, #0x9c + bl sub_0807CBD0 + cmp r0, #0 + beq _0804BC4A + ldr r0, _0804BC4C @ =gUnk_080D7690 + bl sub_0804ADDC +_0804BC4A: + pop {pc} + .align 2, 0 +_0804BC4C: .4byte gUnk_080D7690 + + thumb_func_start sub_0804BC50 +sub_0804BC50: @ 0x0804BC50 + push {lr} + movs r0, #0x9f + bl sub_0807CBD0 + cmp r0, #0 + bne _0804BC68 + ldr r1, _0804BC6C @ =gUnk_030010A0 + movs r0, #5 + strb r0, [r1, #0xf] + movs r0, #0x1c + bl sub_0807CD80 +_0804BC68: + movs r0, #1 + pop {pc} + .align 2, 0 +_0804BC6C: .4byte gUnk_030010A0 + + thumb_func_start sub_0804BC70 +sub_0804BC70: @ 0x0804BC70 + push {lr} + movs r0, #0x9f + bl sub_0807CBD0 + cmp r0, #0 + bne _0804BCA0 + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #5 + bl sub_08050054 + ldr r2, _0804BCB0 @ =gUnk_03001160 + ldr r1, _0804BCB4 @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + adds r0, #0xb0 + strh r0, [r2, #0x2e] + ldrh r0, [r1, #8] + adds r0, #0x40 + strh r0, [r2, #0x32] + ldr r2, _0804BCB8 @ =gUnk_08009E88 + movs r0, #0 + movs r1, #6 + bl sub_080751E8 +_0804BCA0: + movs r0, #0x15 + bl sub_0807CC30 + cmp r0, #0 + bne _0804BCBC + bl sub_08052878 + b _0804BCD0 + .align 2, 0 +_0804BCB0: .4byte gUnk_03001160 +_0804BCB4: .4byte gUnk_03000BF0 +_0804BCB8: .4byte gUnk_08009E88 +_0804BCBC: + movs r0, #0x64 + bl sub_0807CC30 + cmp r0, #0 + beq _0804BCD0 + ldr r0, _0804BCD4 @ =gUnk_02033A90 + ldr r1, _0804BCD8 @ =0x00000864 + adds r0, r0, r1 + movs r1, #0x1b + str r1, [r0] +_0804BCD0: + pop {pc} + .align 2, 0 +_0804BCD4: .4byte gUnk_02033A90 +_0804BCD8: .4byte 0x00000864 + + thumb_func_start sub_0804BCDC +sub_0804BCDC: @ 0x0804BCDC + push {lr} + ldr r0, _0804BCE8 @ =gUnk_0813AB80 + movs r1, #4 + bl sub_0808091C + pop {pc} + .align 2, 0 +_0804BCE8: .4byte gUnk_0813AB80 + + thumb_func_start sub_0804BCEC +sub_0804BCEC: @ 0x0804BCEC + movs r0, #1 + bx lr + + thumb_func_start nullsub_178 +nullsub_178: @ 0x0804BCF0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BCF4 +sub_0804BCF4: @ 0x0804BCF4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_179 +nullsub_179: @ 0x0804BCF8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BCFC +sub_0804BCFC: @ 0x0804BCFC + movs r0, #1 + bx lr + + thumb_func_start nullsub_180 +nullsub_180: @ 0x0804BD00 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BD04 +sub_0804BD04: @ 0x0804BD04 + movs r0, #1 + bx lr + + thumb_func_start nullsub_181 +nullsub_181: @ 0x0804BD08 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BD0C +sub_0804BD0C: @ 0x0804BD0C + movs r0, #1 + bx lr + + thumb_func_start nullsub_182 +nullsub_182: @ 0x0804BD10 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BD14 +sub_0804BD14: @ 0x0804BD14 + movs r0, #1 + bx lr + + thumb_func_start nullsub_183 +nullsub_183: @ 0x0804BD18 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BD1C +sub_0804BD1C: @ 0x0804BD1C + movs r0, #1 + bx lr + + thumb_func_start nullsub_184 +nullsub_184: @ 0x0804BD20 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BD24 +sub_0804BD24: @ 0x0804BD24 + movs r0, #1 + bx lr + + thumb_func_start nullsub_185 +nullsub_185: @ 0x0804BD28 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BD2C +sub_0804BD2C: @ 0x0804BD2C + movs r0, #1 + bx lr + + thumb_func_start nullsub_186 +nullsub_186: @ 0x0804BD30 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BD34 +sub_0804BD34: @ 0x0804BD34 + movs r0, #1 + bx lr + + thumb_func_start nullsub_187 +nullsub_187: @ 0x0804BD38 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BD3C +sub_0804BD3C: @ 0x0804BD3C + movs r0, #1 + bx lr + + thumb_func_start nullsub_188 +nullsub_188: @ 0x0804BD40 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BD44 +sub_0804BD44: @ 0x0804BD44 + movs r0, #1 + bx lr + + thumb_func_start nullsub_189 +nullsub_189: @ 0x0804BD48 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BD4C +sub_0804BD4C: @ 0x0804BD4C + movs r0, #1 + bx lr + + thumb_func_start sub_0804BD50 +sub_0804BD50: @ 0x0804BD50 + push {r4, lr} + movs r0, #6 + bl sub_0807CA84 + cmp r0, #0 + beq _0804BD94 + ldr r4, _0804BD98 @ =0x00004072 + ldr r1, _0804BD9C @ =0x0000014D + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + movs r1, #0x86 + lsls r1, r1, #1 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + adds r4, #0x1e + movs r1, #0xa6 + lsls r1, r1, #1 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + movs r1, #0xc6 + lsls r1, r1, #1 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r0, _0804BDA0 @ =gUnk_080D7D34 + bl sub_0804ADDC +_0804BD94: + pop {r4, pc} + .align 2, 0 +_0804BD98: .4byte 0x00004072 +_0804BD9C: .4byte 0x0000014D +_0804BDA0: .4byte gUnk_080D7D34 + + thumb_func_start sub_0804BDA4 +sub_0804BDA4: @ 0x0804BDA4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_190 +nullsub_190: @ 0x0804BDA8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BDAC +sub_0804BDAC: @ 0x0804BDAC + movs r0, #1 + bx lr + + thumb_func_start nullsub_191 +nullsub_191: @ 0x0804BDB0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BDB4 +sub_0804BDB4: @ 0x0804BDB4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_192 +nullsub_192: @ 0x0804BDB8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BDBC +sub_0804BDBC: @ 0x0804BDBC + movs r0, #1 + bx lr + + thumb_func_start nullsub_193 +nullsub_193: @ 0x0804BDC0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BDC4 +sub_0804BDC4: @ 0x0804BDC4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_194 +nullsub_194: @ 0x0804BDC8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BDCC +sub_0804BDCC: @ 0x0804BDCC + movs r0, #1 + bx lr + + thumb_func_start sub_0804BDD0 +sub_0804BDD0: @ 0x0804BDD0 + push {lr} + movs r0, #3 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804BDE8 + ldr r0, _0804BDE4 @ =gUnk_080D827C + bl sub_0804ADDC + b _0804BE00 + .align 2, 0 +_0804BDE4: .4byte gUnk_080D827C +_0804BDE8: + bl sub_0805BC4C + movs r0, #0x76 + movs r1, #0x82 + movs r2, #2 + bl sub_0807B314 + movs r0, #0x76 + movs r1, #0x8c + movs r2, #2 + bl sub_0807B314 +_0804BE00: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804BE04 +sub_0804BE04: @ 0x0804BE04 + movs r0, #1 + bx lr + + thumb_func_start nullsub_28 +nullsub_28: @ 0x0804BE08 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BE0C +sub_0804BE0C: @ 0x0804BE0C + movs r0, #1 + bx lr + + thumb_func_start nullsub_29 +nullsub_29: @ 0x0804BE10 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BE14 +sub_0804BE14: @ 0x0804BE14 + movs r0, #1 + bx lr + + thumb_func_start nullsub_30 +nullsub_30: @ 0x0804BE18 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BE1C +sub_0804BE1C: @ 0x0804BE1C + movs r0, #1 + bx lr + + thumb_func_start nullsub_31 +nullsub_31: @ 0x0804BE20 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BE24 +sub_0804BE24: @ 0x0804BE24 + movs r0, #1 + bx lr + + thumb_func_start nullsub_32 +nullsub_32: @ 0x0804BE28 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BE2C +sub_0804BE2C: @ 0x0804BE2C + movs r0, #1 + bx lr + + thumb_func_start nullsub_33 +nullsub_33: @ 0x0804BE30 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BE34 +sub_0804BE34: @ 0x0804BE34 + movs r0, #1 + bx lr + + thumb_func_start nullsub_34 +nullsub_34: @ 0x0804BE38 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BE3C +sub_0804BE3C: @ 0x0804BE3C + movs r0, #1 + bx lr + + thumb_func_start nullsub_35 +nullsub_35: @ 0x0804BE40 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BE44 +sub_0804BE44: @ 0x0804BE44 + movs r0, #1 + bx lr + + thumb_func_start nullsub_36 +nullsub_36: @ 0x0804BE48 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BE4C +sub_0804BE4C: @ 0x0804BE4C + movs r0, #1 + bx lr + + thumb_func_start sub_0804BE50 +sub_0804BE50: @ 0x0804BE50 + push {lr} + movs r0, #0x68 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804BE62 + movs r0, #0x68 + bl sub_0807CCB4 +_0804BE62: + movs r0, #0x2f + bl sub_0801E7F4 + cmp r0, #0 + beq _0804BE78 + ldr r0, _0804BE74 @ =gUnk_080D8B24 + bl sub_0804ADDC + b _0804BEDE + .align 2, 0 +_0804BE74: .4byte gUnk_080D8B24 +_0804BE78: + movs r0, #0x2b + bl sub_0801E7F4 + cmp r0, #0 + beq _0804BE90 + ldr r0, _0804BE8C @ =gUnk_080D8AC4 + bl sub_0804ADDC + b _0804BEDE + .align 2, 0 +_0804BE8C: .4byte gUnk_080D8AC4 +_0804BE90: + movs r0, #0x26 + bl sub_0801E7F4 + cmp r0, #0 + beq _0804BEA8 + ldr r0, _0804BEA4 @ =gUnk_080D8A74 + bl sub_0804ADDC + b _0804BEDE + .align 2, 0 +_0804BEA4: .4byte gUnk_080D8A74 +_0804BEA8: + movs r0, #0x2a + bl sub_0801E7F4 + cmp r0, #0 + beq _0804BEC0 + ldr r0, _0804BEBC @ =gUnk_080D8A34 + bl sub_0804ADDC + b _0804BEDE + .align 2, 0 +_0804BEBC: .4byte gUnk_080D8A34 +_0804BEC0: + movs r0, #0x25 + bl sub_0801E7F4 + cmp r0, #0 + beq _0804BED8 + ldr r0, _0804BED4 @ =gUnk_080D8A04 + bl sub_0804ADDC + b _0804BEDE + .align 2, 0 +_0804BED4: .4byte gUnk_080D8A04 +_0804BED8: + ldr r0, _0804BF1C @ =gUnk_080D89E4 + bl sub_0804ADDC +_0804BEDE: + movs r0, #0x25 + bl sub_0801E7F4 + cmp r0, #0 + beq _0804BEF2 + ldr r0, _0804BF20 @ =gUnk_080D8BBC + ldr r1, _0804BF24 @ =0x000007C5 + movs r2, #1 + bl sub_0807BB68 +_0804BEF2: + movs r0, #0x26 + bl sub_0801E7F4 + cmp r0, #0 + beq _0804BF06 + ldr r0, _0804BF28 @ =gUnk_080D8BFA + ldr r1, _0804BF2C @ =0x00000503 + movs r2, #1 + bl sub_0807BB68 +_0804BF06: + movs r0, #0x2f + bl sub_0801E7F4 + cmp r0, #0 + beq _0804BF1A + ldr r0, _0804BF30 @ =gUnk_080D8C68 + ldr r1, _0804BF34 @ =0x00000281 + movs r2, #1 + bl sub_0807BB68 +_0804BF1A: + pop {pc} + .align 2, 0 +_0804BF1C: .4byte gUnk_080D89E4 +_0804BF20: .4byte gUnk_080D8BBC +_0804BF24: .4byte 0x000007C5 +_0804BF28: .4byte gUnk_080D8BFA +_0804BF2C: .4byte 0x00000503 +_0804BF30: .4byte gUnk_080D8C68 +_0804BF34: .4byte 0x00000281 + + thumb_func_start sub_0804BF38 +sub_0804BF38: @ 0x0804BF38 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, [r1, #4] + lsls r0, r0, #4 + ldr r1, _0804C000 @ =gUnk_080D8E50 + adds r4, r0, r1 + ldr r0, [r4] + ldrh r1, [r4, #4] + lsrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + ldrh r2, [r4, #6] + lsrs r2, r2, #4 + ands r2, r3 + lsls r2, r2, #6 + orrs r1, r2 + movs r2, #1 + bl sub_0807BB68 + ldrh r0, [r4, #8] + mov r8, r0 + movs r5, #0 + cmp r5, r8 + bhs _0804BFE8 + ldr r7, _0804C004 @ =gUnk_03000BF0 + movs r1, #0 + mov sl, r1 + movs r6, #0 + movs r3, #1 + mov sb, r3 +_0804BF7A: + movs r0, #0xf + movs r1, #0xf + movs r2, #0 + bl sub_080A2960 + adds r2, r0, #0 + cmp r2, #0 + beq _0804BFA6 + ldrh r0, [r7, #6] + ldrh r1, [r4, #4] + adds r0, r0, r1 + adds r0, r0, r6 + strh r0, [r2, #0x2e] + ldrh r1, [r7, #8] + ldrh r3, [r4, #6] + adds r1, r1, r3 + adds r0, r5, #0 + mov r3, sb + ands r0, r3 + lsls r0, r0, #3 + adds r1, r1, r0 + strh r1, [r2, #0x32] +_0804BFA6: + movs r0, #0xf + movs r1, #0x54 + movs r2, #0 + bl sub_080A2960 + adds r2, r0, #0 + cmp r2, #0 + beq _0804BFE0 + ldrh r0, [r7, #6] + ldrh r1, [r4, #4] + adds r0, r0, r1 + adds r0, r0, r6 + strh r0, [r2, #0x2e] + ldrh r1, [r7, #8] + ldrh r3, [r4, #6] + adds r1, r1, r3 + ldr r0, _0804C008 @ =0x0000FFF4 + adds r1, r1, r0 + adds r0, r5, #0 + mov r3, sb + ands r0, r3 + lsls r0, r0, #3 + adds r1, r1, r0 + strh r1, [r2, #0x32] + mov r0, sl + strb r0, [r2, #0x15] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r2, #0x24] +_0804BFE0: + adds r6, #0x10 + adds r5, #1 + cmp r5, r8 + blo _0804BF7A +_0804BFE8: + ldrh r0, [r4, #0xa] + ldrh r1, [r4, #0xc] + bl sub_08080964 + ldrh r0, [r4, #0xe] + bl sub_080A3268 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0804C000: .4byte gUnk_080D8E50 +_0804C004: .4byte gUnk_03000BF0 +_0804C008: .4byte 0x0000FFF4 + + thumb_func_start sub_0804C00C +sub_0804C00C: @ 0x0804C00C + movs r0, #1 + bx lr + + thumb_func_start nullsub_195 +nullsub_195: @ 0x0804C010 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C014 +sub_0804C014: @ 0x0804C014 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C018 +sub_0804C018: @ 0x0804C018 + push {r4, lr} + movs r0, #0x20 + bl sub_0807CC30 + cmp r0, #0 + bne _0804C044 + movs r0, #0x3c + bl sub_0807CA84 + cmp r0, #1 + bne _0804C054 + ldr r0, _0804C03C @ =gUnk_080D90C8 + bl sub_0804ADDC + ldr r0, _0804C040 @ =gUnk_080D9108 + bl sub_0804ADDC + b _0804C054 + .align 2, 0 +_0804C03C: .4byte gUnk_080D90C8 +_0804C040: .4byte gUnk_080D9108 +_0804C044: + movs r0, #0x21 + bl sub_0807CC30 + cmp r0, #0 + bne _0804C054 + ldr r0, _0804C0D0 @ =gUnk_080D9108 + bl sub_0804ADDC +_0804C054: + movs r0, #0x3c + bl sub_0807CA84 + cmp r0, #2 + beq _0804C090 + ldr r0, _0804C0D4 @ =gUnk_080D9098 + bl sub_0804ADDC + movs r0, #0xbd + lsls r0, r0, #1 + ldr r1, _0804C0D8 @ =0x0000058E + movs r2, #1 + bl sub_0807B314 + ldr r0, _0804C0DC @ =0x0000017B + ldr r1, _0804C0E0 @ =0x0000058F + movs r2, #1 + bl sub_0807B314 + movs r0, #0xbe + lsls r0, r0, #1 + ldr r1, _0804C0E4 @ =0x000005CE + movs r2, #1 + bl sub_0807B314 + ldr r0, _0804C0E8 @ =0x0000017D + ldr r1, _0804C0EC @ =0x000005CF + movs r2, #1 + bl sub_0807B314 +_0804C090: + bl sub_08054570 + bl sub_08059278 + ldr r4, _0804C0F0 @ =0x00004072 + ldr r1, _0804C0F4 @ =0x00000A47 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r1, _0804C0F8 @ =0x00000C47 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + movs r0, #0x62 + bl sub_0807CC30 + cmp r0, #0 + beq _0804C0C8 + ldr r0, _0804C0FC @ =gUnk_030010A0 + ldr r1, [r0, #0x10] + ldr r0, _0804C100 @ =0x02780078 + cmp r1, r0 + bne _0804C0C8 + movs r0, #0x72 + bl sub_080A3268 +_0804C0C8: + movs r0, #0x62 + bl sub_0807CD80 + pop {r4, pc} + .align 2, 0 +_0804C0D0: .4byte gUnk_080D9108 +_0804C0D4: .4byte gUnk_080D9098 +_0804C0D8: .4byte 0x0000058E +_0804C0DC: .4byte 0x0000017B +_0804C0E0: .4byte 0x0000058F +_0804C0E4: .4byte 0x000005CE +_0804C0E8: .4byte 0x0000017D +_0804C0EC: .4byte 0x000005CF +_0804C0F0: .4byte 0x00004072 +_0804C0F4: .4byte 0x00000A47 +_0804C0F8: .4byte 0x00000C47 +_0804C0FC: .4byte gUnk_030010A0 +_0804C100: .4byte 0x02780078 + + thumb_func_start sub_0804C104 +sub_0804C104: @ 0x0804C104 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C108 +sub_0804C108: @ 0x0804C108 + push {lr} + ldr r2, _0804C124 @ =gUnk_02033A90 + ldrb r1, [r2] + movs r0, #0x40 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r2, #0xd] + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0xd] + bl sub_0804C128 + pop {pc} + .align 2, 0 +_0804C124: .4byte gUnk_02033A90 + + thumb_func_start sub_0804C128 +sub_0804C128: @ 0x0804C128 + push {r4, r5, lr} + movs r0, #0 + bl sub_080AF250 + ldr r0, _0804C15C @ =gUnk_02034350 + ldrb r0, [r0] + cmp r0, #0 + bne _0804C13A + b _0804C24C +_0804C13A: + ldr r1, _0804C160 @ =gUnk_02033A90 + ldrb r3, [r1, #0xd] + movs r0, #0xe + ands r0, r3 + adds r5, r1, #0 + cmp r0, #0 + bne _0804C164 + movs r0, #0xf0 + ands r0, r3 + cmp r0, #0 + bne _0804C19C + movs r0, #0xf + rsbs r0, r0, #0 + ands r0, r3 + movs r1, #2 + orrs r0, r1 + b _0804C19A + .align 2, 0 +_0804C15C: .4byte gUnk_02034350 +_0804C160: .4byte gUnk_02033A90 +_0804C164: + ldr r2, _0804C18C @ =gUnk_03000BF0 + ldr r1, _0804C190 @ =gUnk_080D9338 + lsls r4, r3, #0x1c + lsrs r0, r4, #0x1d + adds r0, r0, r1 + ldrb r1, [r2, #0x10] + ldrb r0, [r0] + cmp r1, r0 + bne _0804C194 + lsrs r0, r4, #0x1d + adds r0, #1 + movs r1, #7 + ands r0, r1 + lsls r0, r0, #1 + movs r1, #0xf + rsbs r1, r1, #0 + ands r1, r3 + orrs r1, r0 + strb r1, [r5, #0xd] + b _0804C19C + .align 2, 0 +_0804C18C: .4byte gUnk_03000BF0 +_0804C190: .4byte gUnk_080D9338 +_0804C194: + movs r0, #0xf + rsbs r0, r0, #0 + ands r0, r3 +_0804C19A: + strb r0, [r5, #0xd] +_0804C19C: + ldrb r3, [r5, #0xd] + movs r0, #0xe + ands r0, r3 + cmp r0, #0 + bne _0804C1DE + ldr r2, _0804C1D0 @ =gUnk_03000BF0 + ldr r1, _0804C1D4 @ =gUnk_080D9340 + lsls r4, r3, #0x18 + lsrs r0, r4, #0x1c + adds r0, r0, r1 + ldrb r1, [r2, #0x10] + ldrb r0, [r0] + cmp r1, r0 + bne _0804C1D8 + lsrs r0, r4, #0x1c + adds r0, #1 + lsls r0, r0, #4 + movs r1, #0xf + ands r1, r3 + orrs r1, r0 + movs r0, #0xf + rsbs r0, r0, #0 + ands r1, r0 + strb r1, [r5, #0xd] + b _0804C1DE + .align 2, 0 +_0804C1D0: .4byte gUnk_03000BF0 +_0804C1D4: .4byte gUnk_080D9340 +_0804C1D8: + movs r0, #0xf + ands r0, r3 + strb r0, [r5, #0xd] +_0804C1DE: + adds r4, r5, #0 + ldrb r1, [r4, #0xd] + movs r0, #0xe + ands r0, r1 + cmp r0, #0xc + bne _0804C206 + movs r0, #1 + bl sub_080AF250 + movs r0, #0x62 + bl sub_0807CD04 + bl sub_0804C290 + ldrb r1, [r4, #0xd] + movs r0, #0xf + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0xd] + b _0804C254 +_0804C206: + movs r0, #0xf0 + ands r0, r1 + cmp r0, #0x60 + bne _0804C250 + movs r0, #1 + bl sub_080AF250 + movs r0, #0x5c + bl sub_0807CBD0 + cmp r0, #0 + bne _0804C228 + ldr r1, _0804C244 @ =0x00000107 + movs r0, #0x73 + movs r2, #1 + bl sub_0807B314 +_0804C228: + ldr r0, _0804C248 @ =gUnk_080D9328 + bl sub_0804B1AC + movs r0, #0x62 + bl sub_0807CD04 + bl sub_0804C290 + ldrb r1, [r5, #0xd] + movs r0, #0xf + ands r0, r1 + strb r0, [r5, #0xd] + b _0804C254 + .align 2, 0 +_0804C244: .4byte 0x00000107 +_0804C248: .4byte gUnk_080D9328 +_0804C24C: + bl sub_0804C258 +_0804C250: + bl sub_0804C290 +_0804C254: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0804C258 +sub_0804C258: @ 0x0804C258 + push {lr} + ldr r3, _0804C288 @ =gUnk_02033A90 + ldrb r0, [r3, #0xd] + movs r2, #0xf + rsbs r2, r2, #0 + ands r2, r0 + movs r0, #2 + orrs r2, r0 + movs r0, #0xf + ands r2, r0 + strb r2, [r3, #0xd] + ldr r0, _0804C28C @ =gUnk_030010A0 + ldrb r0, [r0, #0xe] + cmp r0, #4 + bne _0804C284 + movs r1, #0xe + adds r0, r2, #0 + orrs r0, r1 + strb r0, [r3, #0xd] + movs r0, #1 + bl sub_080AF250 +_0804C284: + pop {pc} + .align 2, 0 +_0804C288: .4byte gUnk_02033A90 +_0804C28C: .4byte gUnk_030010A0 + + thumb_func_start sub_0804C290 +sub_0804C290: @ 0x0804C290 + push {lr} + ldr r0, _0804C2B4 @ =gUnk_02033A90 + ldrb r1, [r0, #0xd] + movs r0, #0xe + ands r0, r1 + cmp r0, #0 + beq _0804C2B2 + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1d + lsls r1, r1, #2 + ldr r0, _0804C2B8 @ =gUnk_080D9348 + adds r1, r1, r0 + ldrh r0, [r1] + ldrh r1, [r1, #2] + movs r2, #1 + bl sub_0807B314 +_0804C2B2: + pop {pc} + .align 2, 0 +_0804C2B4: .4byte gUnk_02033A90 +_0804C2B8: .4byte gUnk_080D9348 + + thumb_func_start sub_0804C2BC +sub_0804C2BC: @ 0x0804C2BC + movs r0, #1 + bx lr + + thumb_func_start nullsub_196 +nullsub_196: @ 0x0804C2C0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C2C4 +sub_0804C2C4: @ 0x0804C2C4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_197 +nullsub_197: @ 0x0804C2C8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C2CC +sub_0804C2CC: @ 0x0804C2CC + movs r0, #1 + bx lr + + thumb_func_start sub_0804C2D0 +sub_0804C2D0: @ 0x0804C2D0 + push {lr} + movs r0, #0 + bl sub_08058324 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804C2DC +sub_0804C2DC: @ 0x0804C2DC + movs r0, #1 + bx lr + + thumb_func_start sub_0804C2E0 +sub_0804C2E0: @ 0x0804C2E0 + push {lr} + movs r0, #1 + bl sub_08058324 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804C2EC +sub_0804C2EC: @ 0x0804C2EC + movs r0, #1 + bx lr + + thumb_func_start sub_0804C2F0 +sub_0804C2F0: @ 0x0804C2F0 + push {lr} + movs r0, #2 + bl sub_08058324 + movs r0, #0x29 + bl sub_0807CC30 + cmp r0, #0 + beq _0804C312 + movs r0, #0x2a + bl sub_0807CC30 + cmp r0, #0 + bne _0804C312 + ldr r0, _0804C314 @ =gUnk_080D9800 + bl sub_0804ADDC +_0804C312: + pop {pc} + .align 2, 0 +_0804C314: .4byte gUnk_080D9800 + + thumb_func_start sub_0804C318 +sub_0804C318: @ 0x0804C318 + push {lr} + bl sub_0804C2F0 + pop {pc} + + thumb_func_start sub_0804C320 +sub_0804C320: @ 0x0804C320 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C324 +sub_0804C324: @ 0x0804C324 + push {lr} + movs r0, #3 + bl sub_08058324 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804C330 +sub_0804C330: @ 0x0804C330 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C334 +sub_0804C334: @ 0x0804C334 + push {lr} + movs r0, #0x1e + bl sub_0807CD04 + movs r0, #0x5b + bl sub_0801E7F4 + cmp r0, #0 + beq _0804C34C + ldr r0, _0804C374 @ =gUnk_080D9CC8 + bl sub_0804ADDC +_0804C34C: + ldr r0, _0804C378 @ =gUnk_02002A40 + ldr r0, [r0, #0x40] + movs r1, #0x80 + lsls r1, r1, #0x16 + ands r0, r1 + cmp r0, #0 + bne _0804C360 + ldr r0, _0804C37C @ =gUnk_080D9CE8 + bl sub_0804ADDC +_0804C360: + movs r0, #0x15 + bl sub_0807CA84 + cmp r0, #0 + bne _0804C370 + ldr r0, _0804C380 @ =gUnk_080D9C38 + bl sub_0804ADDC +_0804C370: + pop {pc} + .align 2, 0 +_0804C374: .4byte gUnk_080D9CC8 +_0804C378: .4byte gUnk_02002A40 +_0804C37C: .4byte gUnk_080D9CE8 +_0804C380: .4byte gUnk_080D9C38 + + thumb_func_start sub_0804C384 +sub_0804C384: @ 0x0804C384 + push {lr} + ldr r0, _0804C39C @ =gUnk_02002A40 + ldr r0, [r0, #0x40] + movs r1, #0x80 + lsls r1, r1, #0x16 + ands r0, r1 + cmp r0, #0 + bne _0804C39A + ldr r0, _0804C3A0 @ =gUnk_080D9CE8 + bl sub_0804ADDC +_0804C39A: + pop {pc} + .align 2, 0 +_0804C39C: .4byte gUnk_02002A40 +_0804C3A0: .4byte gUnk_080D9CE8 + + thumb_func_start sub_0804C3A4 +sub_0804C3A4: @ 0x0804C3A4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_198 +nullsub_198: @ 0x0804C3A8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C3AC +sub_0804C3AC: @ 0x0804C3AC + movs r0, #1 + bx lr + + thumb_func_start nullsub_199 +nullsub_199: @ 0x0804C3B0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C3B4 +sub_0804C3B4: @ 0x0804C3B4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_200 +nullsub_200: @ 0x0804C3B8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C3BC +sub_0804C3BC: @ 0x0804C3BC + movs r0, #1 + bx lr + + thumb_func_start nullsub_201 +nullsub_201: @ 0x0804C3C0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C3C4 +sub_0804C3C4: @ 0x0804C3C4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_202 +nullsub_202: @ 0x0804C3C8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C3CC +sub_0804C3CC: @ 0x0804C3CC + push {lr} + movs r0, #0x39 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804C3DE + ldr r1, _0804C3E4 @ =gUnk_02034350 + ldr r0, _0804C3E8 @ =gUnk_080DA230 + str r0, [r1, #0x6c] +_0804C3DE: + movs r0, #1 + pop {pc} + .align 2, 0 +_0804C3E4: .4byte gUnk_02034350 +_0804C3E8: .4byte gUnk_080DA230 + + thumb_func_start nullsub_203 +nullsub_203: @ 0x0804C3EC + bx lr + .align 2, 0 + + thumb_func_start sub_0804C3F0 +sub_0804C3F0: @ 0x0804C3F0 + movs r0, #1 + bx lr + + thumb_func_start nullsub_204 +nullsub_204: @ 0x0804C3F4 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C3F8 +sub_0804C3F8: @ 0x0804C3F8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_205 +nullsub_205: @ 0x0804C3FC + bx lr + .align 2, 0 + + thumb_func_start sub_0804C400 +sub_0804C400: @ 0x0804C400 + movs r0, #1 + bx lr + + thumb_func_start nullsub_206 +nullsub_206: @ 0x0804C404 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C408 +sub_0804C408: @ 0x0804C408 + movs r0, #1 + bx lr + + thumb_func_start nullsub_207 +nullsub_207: @ 0x0804C40C + bx lr + .align 2, 0 + + thumb_func_start sub_0804C410 +sub_0804C410: @ 0x0804C410 + movs r0, #1 + bx lr + + thumb_func_start nullsub_208 +nullsub_208: @ 0x0804C414 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C418 +sub_0804C418: @ 0x0804C418 + movs r0, #1 + bx lr + + thumb_func_start nullsub_209 +nullsub_209: @ 0x0804C41C + bx lr + .align 2, 0 + + thumb_func_start sub_0804C420 +sub_0804C420: @ 0x0804C420 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C424 +sub_0804C424: @ 0x0804C424 + push {lr} + bl sub_0801AFE4 + pop {pc} + + thumb_func_start sub_0804C42C +sub_0804C42C: @ 0x0804C42C + movs r0, #1 + bx lr + + thumb_func_start sub_0804C430 +sub_0804C430: @ 0x0804C430 + push {lr} + bl sub_0801AFE4 + pop {pc} + + thumb_func_start sub_0804C438 +sub_0804C438: @ 0x0804C438 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C43C +sub_0804C43C: @ 0x0804C43C + push {lr} + bl sub_0801AFE4 + pop {pc} + + thumb_func_start sub_0804C444 +sub_0804C444: @ 0x0804C444 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C448 +sub_0804C448: @ 0x0804C448 + push {lr} + bl sub_0801AFE4 + pop {pc} + + thumb_func_start sub_0804C450 +sub_0804C450: @ 0x0804C450 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C454 +sub_0804C454: @ 0x0804C454 + push {lr} + bl sub_0801AFE4 + pop {pc} + + thumb_func_start sub_0804C45C +sub_0804C45C: @ 0x0804C45C + movs r0, #1 + bx lr + + thumb_func_start sub_0804C460 +sub_0804C460: @ 0x0804C460 + push {lr} + bl sub_0801AFE4 + pop {pc} + + thumb_func_start sub_0804C468 +sub_0804C468: @ 0x0804C468 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C46C +sub_0804C46C: @ 0x0804C46C + push {lr} + bl sub_0801AFE4 + pop {pc} + + thumb_func_start sub_0804C474 +sub_0804C474: @ 0x0804C474 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C478 +sub_0804C478: @ 0x0804C478 + push {lr} + bl sub_0801AFE4 + pop {pc} + + thumb_func_start sub_0804C480 +sub_0804C480: @ 0x0804C480 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C484 +sub_0804C484: @ 0x0804C484 + push {lr} + bl sub_0801AFE4 + pop {pc} + + thumb_func_start sub_0804C48C +sub_0804C48C: @ 0x0804C48C + movs r0, #1 + bx lr + + thumb_func_start sub_0804C490 +sub_0804C490: @ 0x0804C490 + push {r4, lr} + movs r0, #0x5b + bl sub_0807CA84 + cmp r0, #0 + bne _0804C4A8 + ldr r0, _0804C4A4 @ =gUnk_080DAB44 + bl sub_0804ADDC + b _0804C4AE + .align 2, 0 +_0804C4A4: .4byte gUnk_080DAB44 +_0804C4A8: + ldr r0, _0804C4D8 @ =gUnk_080DAB64 + bl sub_0804ADDC +_0804C4AE: + movs r0, #0x54 + bl sub_0807CC30 + cmp r0, #0 + beq _0804C4F0 + bl sub_08060354 + cmp r0, #0 + beq _0804C4F0 + movs r0, #0 + bl sub_0807CD10 + movs r0, #0x3b + bl sub_0807CC30 + cmp r0, #0 + bne _0804C4DC + movs r4, #0xc8 + lsls r4, r4, #6 + b _0804C522 + .align 2, 0 +_0804C4D8: .4byte gUnk_080DAB64 +_0804C4DC: + movs r0, #0x3c + bl sub_0807CC30 + movs r4, #0x91 + lsls r4, r4, #7 + cmp r0, #0 + bne _0804C522 + movs r4, #0x8c + lsls r4, r4, #7 + b _0804C522 +_0804C4F0: + movs r0, #0x3d + bl sub_0807CC30 + cmp r0, #0 + beq _0804C500 + movs r4, #0x92 + lsls r4, r4, #7 + b _0804C522 +_0804C500: + movs r0, #0x3c + bl sub_0807CC30 + cmp r0, #0 + beq _0804C510 + movs r4, #0x94 + lsls r4, r4, #7 + b _0804C522 +_0804C510: + movs r0, #0x3b + bl sub_0807CC30 + movs r4, #0x92 + lsls r4, r4, #8 + cmp r0, #0 + beq _0804C522 + movs r4, #0xa4 + lsls r4, r4, #7 +_0804C522: + movs r0, #0x80 + lsls r0, r0, #8 + ands r0, r4 + cmp r0, #0 + beq _0804C532 + ldr r0, _0804C5B8 @ =gUnk_080DAB84 + bl sub_0804ADDC +_0804C532: + movs r0, #0x80 + lsls r0, r0, #7 + ands r0, r4 + cmp r0, #0 + beq _0804C542 + ldr r0, _0804C5BC @ =gUnk_080DAC54 + bl sub_0804ADDC +_0804C542: + movs r0, #0x80 + lsls r0, r0, #6 + ands r0, r4 + cmp r0, #0 + beq _0804C552 + ldr r0, _0804C5C0 @ =gUnk_080DAD24 + bl sub_0804ADDC +_0804C552: + movs r0, #0x80 + lsls r0, r0, #5 + ands r0, r4 + cmp r0, #0 + beq _0804C562 + ldr r0, _0804C5C4 @ =gUnk_080DABC4 + bl sub_0804ADDC +_0804C562: + movs r0, #0x80 + lsls r0, r0, #4 + ands r0, r4 + cmp r0, #0 + beq _0804C572 + ldr r0, _0804C5C8 @ =gUnk_080DAC94 + bl sub_0804ADDC +_0804C572: + movs r0, #0x80 + lsls r0, r0, #3 + ands r0, r4 + cmp r0, #0 + beq _0804C582 + ldr r0, _0804C5CC @ =gUnk_080DAD64 + bl sub_0804ADDC +_0804C582: + movs r0, #0x80 + lsls r0, r0, #2 + ands r0, r4 + cmp r0, #0 + beq _0804C592 + ldr r0, _0804C5D0 @ =gUnk_080DAC04 + bl sub_0804ADDC +_0804C592: + movs r0, #0x80 + lsls r0, r0, #1 + ands r0, r4 + cmp r0, #0 + beq _0804C5A2 + ldr r0, _0804C5D4 @ =gUnk_080DACD4 + bl sub_0804ADDC +_0804C5A2: + movs r0, #0x80 + ands r4, r0 + cmp r4, #0 + beq _0804C5B0 + ldr r0, _0804C5D8 @ =gUnk_080DADA4 + bl sub_0804ADDC +_0804C5B0: + bl sub_0801AFE4 + pop {r4, pc} + .align 2, 0 +_0804C5B8: .4byte gUnk_080DAB84 +_0804C5BC: .4byte gUnk_080DAC54 +_0804C5C0: .4byte gUnk_080DAD24 +_0804C5C4: .4byte gUnk_080DABC4 +_0804C5C8: .4byte gUnk_080DAC94 +_0804C5CC: .4byte gUnk_080DAD64 +_0804C5D0: .4byte gUnk_080DAC04 +_0804C5D4: .4byte gUnk_080DACD4 +_0804C5D8: .4byte gUnk_080DADA4 + + thumb_func_start sub_0804C5DC +sub_0804C5DC: @ 0x0804C5DC + movs r0, #1 + bx lr + + thumb_func_start sub_0804C5E0 +sub_0804C5E0: @ 0x0804C5E0 + push {lr} + movs r0, #0x56 + bl sub_0807CC30 + cmp r0, #0 + beq _0804C5F2 + ldr r0, _0804C5F8 @ =gUnk_080DAEE8 + bl sub_0804ADDC +_0804C5F2: + bl sub_0801AFE4 + pop {pc} + .align 2, 0 +_0804C5F8: .4byte gUnk_080DAEE8 + + thumb_func_start sub_0804C5FC +sub_0804C5FC: @ 0x0804C5FC + movs r0, #1 + bx lr + + thumb_func_start sub_0804C600 +sub_0804C600: @ 0x0804C600 + push {lr} + movs r0, #0x56 + bl sub_0807CC30 + cmp r0, #0 + beq _0804C612 + ldr r0, _0804C618 @ =gUnk_080DAF80 + bl sub_0804ADDC +_0804C612: + bl sub_0801AFE4 + pop {pc} + .align 2, 0 +_0804C618: .4byte gUnk_080DAF80 + + thumb_func_start sub_0804C61C +sub_0804C61C: @ 0x0804C61C + movs r0, #1 + bx lr + + thumb_func_start sub_0804C620 +sub_0804C620: @ 0x0804C620 + push {lr} + movs r0, #0x56 + bl sub_0807CC30 + cmp r0, #0 + beq _0804C632 + ldr r0, _0804C638 @ =gUnk_080DB018 + bl sub_0804ADDC +_0804C632: + bl sub_0801AFE4 + pop {pc} + .align 2, 0 +_0804C638: .4byte gUnk_080DB018 + + thumb_func_start sub_0804C63C +sub_0804C63C: @ 0x0804C63C + movs r0, #1 + bx lr + + thumb_func_start sub_0804C640 +sub_0804C640: @ 0x0804C640 + push {lr} + bl sub_0801AFE4 + pop {pc} + + thumb_func_start sub_0804C648 +sub_0804C648: @ 0x0804C648 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C64C +sub_0804C64C: @ 0x0804C64C + push {lr} + bl sub_0801AFE4 + pop {pc} + + thumb_func_start sub_0804C654 +sub_0804C654: @ 0x0804C654 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C658 +sub_0804C658: @ 0x0804C658 + push {lr} + bl sub_0801AFE4 + pop {pc} + + thumb_func_start sub_0804C660 +sub_0804C660: @ 0x0804C660 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C664 +sub_0804C664: @ 0x0804C664 + push {lr} + ldr r0, _0804C67C @ =gUnk_02002A40 + ldrb r0, [r0, #8] + cmp r0, #8 + bls _0804C674 + ldr r0, _0804C680 @ =gUnk_080DB238 + bl sub_0804ADDC +_0804C674: + bl sub_0801AFE4 + pop {pc} + .align 2, 0 +_0804C67C: .4byte gUnk_02002A40 +_0804C680: .4byte gUnk_080DB238 + + thumb_func_start sub_0804C684 +sub_0804C684: @ 0x0804C684 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C688 +sub_0804C688: @ 0x0804C688 + push {lr} + bl sub_0801AFE4 + pop {pc} + + thumb_func_start sub_0804C690 +sub_0804C690: @ 0x0804C690 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C694 +sub_0804C694: @ 0x0804C694 + push {lr} + bl sub_0801AFE4 + pop {pc} + + thumb_func_start sub_0804C69C +sub_0804C69C: @ 0x0804C69C + movs r0, #1 + bx lr + + thumb_func_start sub_0804C6A0 +sub_0804C6A0: @ 0x0804C6A0 + push {lr} + bl sub_0801AFE4 + pop {pc} + + thumb_func_start sub_0804C6A8 +sub_0804C6A8: @ 0x0804C6A8 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C6AC +sub_0804C6AC: @ 0x0804C6AC + push {lr} + bl sub_0801AFE4 + pop {pc} + + thumb_func_start sub_0804C6B4 +sub_0804C6B4: @ 0x0804C6B4 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C6B8 +sub_0804C6B8: @ 0x0804C6B8 + push {lr} + movs r0, #0x46 + bl sub_0807CA84 + cmp r0, #0 + bne _0804C6E4 + movs r0, #0x3b + bl sub_0807CA84 + cmp r0, #0 + bne _0804C6E4 + movs r0, #0x71 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804C6E4 + ldr r0, _0804C6E0 @ =gUnk_080DB4D0 + bl sub_0804ADDC + b _0804C6EA + .align 2, 0 +_0804C6E0: .4byte gUnk_080DB4D0 +_0804C6E4: + ldr r0, _0804C6F0 @ =gUnk_080DB4A0 + bl sub_0804ADDC +_0804C6EA: + bl sub_0801AFE4 + pop {pc} + .align 2, 0 +_0804C6F0: .4byte gUnk_080DB4A0 + + thumb_func_start sub_0804C6F4 +sub_0804C6F4: @ 0x0804C6F4 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C6F8 +sub_0804C6F8: @ 0x0804C6F8 + push {lr} + bl sub_0801AFE4 + pop {pc} + + thumb_func_start sub_0804C700 +sub_0804C700: @ 0x0804C700 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C704 +sub_0804C704: @ 0x0804C704 + push {lr} + bl sub_0801AFE4 + pop {pc} + + thumb_func_start sub_0804C70C +sub_0804C70C: @ 0x0804C70C + movs r0, #1 + bx lr + + thumb_func_start sub_0804C710 +sub_0804C710: @ 0x0804C710 + push {lr} + bl sub_0801AFE4 + pop {pc} + + thumb_func_start sub_0804C718 +sub_0804C718: @ 0x0804C718 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C71C +sub_0804C71C: @ 0x0804C71C + push {lr} + bl sub_0801AFE4 + pop {pc} + + thumb_func_start sub_0804C724 +sub_0804C724: @ 0x0804C724 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C728 +sub_0804C728: @ 0x0804C728 + push {lr} + bl sub_0801AFE4 + pop {pc} + + thumb_func_start sub_0804C730 +sub_0804C730: @ 0x0804C730 + push {lr} + movs r0, #0x29 + bl sub_0807CC30 + cmp r0, #0 + beq _0804C74C + movs r0, #0x73 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804C74C + ldr r1, _0804C750 @ =gUnk_02034350 + ldr r0, _0804C754 @ =gUnk_080DB910 + str r0, [r1, #0x70] +_0804C74C: + movs r0, #1 + pop {pc} + .align 2, 0 +_0804C750: .4byte gUnk_02034350 +_0804C754: .4byte gUnk_080DB910 + + thumb_func_start sub_0804C758 +sub_0804C758: @ 0x0804C758 + push {lr} + ldr r0, _0804C780 @ =gUnk_080DB8F0 + bl sub_0804ADDC + movs r0, #0x46 + bl sub_0807CA84 + cmp r0, #0 + bne _0804C77A + movs r0, #0x29 + bl sub_0807CC30 + cmp r0, #0 + beq _0804C77A + ldr r0, _0804C784 @ =gUnk_080DB820 + bl sub_0804ADDC +_0804C77A: + bl sub_0801AFE4 + pop {pc} + .align 2, 0 +_0804C780: .4byte gUnk_080DB8F0 +_0804C784: .4byte gUnk_080DB820 + + thumb_func_start sub_0804C788 +sub_0804C788: @ 0x0804C788 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C78C +sub_0804C78C: @ 0x0804C78C + push {lr} + movs r0, #0x46 + bl sub_0807CA84 + cmp r0, #0 + bne _0804C7A2 + movs r0, #0x73 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804C7A8 +_0804C7A2: + ldr r0, _0804C7B0 @ =gUnk_080DBA08 + bl sub_0804ADDC +_0804C7A8: + bl sub_0801AFE4 + pop {pc} + .align 2, 0 +_0804C7B0: .4byte gUnk_080DBA08 + + thumb_func_start sub_0804C7B4 +sub_0804C7B4: @ 0x0804C7B4 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C7B8 +sub_0804C7B8: @ 0x0804C7B8 + push {r4, r5, lr} + movs r0, #0x60 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804C7CA + ldr r0, _0804C7E4 @ =gUnk_080DBB50 + bl sub_0804ADDC +_0804C7CA: + movs r0, #0x15 + bl sub_0807CA84 + cmp r0, #1 + bne _0804C7F0 + ldr r0, _0804C7E8 @ =gUnk_080DBB70 + bl sub_0804ADDC + ldr r0, _0804C7EC @ =gUnk_080DBB10 + bl sub_0804ADDC + b _0804C7F6 + .align 2, 0 +_0804C7E4: .4byte gUnk_080DBB50 +_0804C7E8: .4byte gUnk_080DBB70 +_0804C7EC: .4byte gUnk_080DBB10 +_0804C7F0: + ldr r0, _0804C824 @ =gUnk_080DBAD0 + bl sub_0804ADDC +_0804C7F6: + movs r0, #0x62 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804C818 + movs r5, #0xa0 + lsls r5, r5, #1 + movs r4, #0 +_0804C806: + ldr r0, _0804C828 @ =0x00004072 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 + adds r4, #1 + adds r5, #1 + cmp r4, #0x12 + bls _0804C806 +_0804C818: + ldr r0, _0804C82C @ =gUnk_080DBB90 + bl sub_0804ADDC + bl sub_0801AFE4 + pop {r4, r5, pc} + .align 2, 0 +_0804C824: .4byte gUnk_080DBAD0 +_0804C828: .4byte 0x00004072 +_0804C82C: .4byte gUnk_080DBB90 + + thumb_func_start sub_0804C830 +sub_0804C830: @ 0x0804C830 + movs r0, #1 + bx lr + + thumb_func_start nullsub_210 +nullsub_210: @ 0x0804C834 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C838 +sub_0804C838: @ 0x0804C838 + movs r0, #1 + bx lr + + thumb_func_start nullsub_211 +nullsub_211: @ 0x0804C83C + bx lr + .align 2, 0 + + thumb_func_start sub_0804C840 +sub_0804C840: @ 0x0804C840 + movs r0, #1 + bx lr + + thumb_func_start nullsub_212 +nullsub_212: @ 0x0804C844 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C848 +sub_0804C848: @ 0x0804C848 + movs r0, #1 + bx lr + + thumb_func_start nullsub_213 +nullsub_213: @ 0x0804C84C + bx lr + .align 2, 0 + + thumb_func_start sub_0804C850 +sub_0804C850: @ 0x0804C850 + movs r0, #1 + bx lr + + thumb_func_start nullsub_214 +nullsub_214: @ 0x0804C854 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C858 +sub_0804C858: @ 0x0804C858 + movs r0, #1 + bx lr + + thumb_func_start nullsub_215 +nullsub_215: @ 0x0804C85C + bx lr + .align 2, 0 + + thumb_func_start sub_0804C860 +sub_0804C860: @ 0x0804C860 + movs r0, #1 + bx lr + + thumb_func_start nullsub_216 +nullsub_216: @ 0x0804C864 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C868 +sub_0804C868: @ 0x0804C868 + movs r0, #1 + bx lr + + thumb_func_start nullsub_217 +nullsub_217: @ 0x0804C86C + bx lr + .align 2, 0 + + thumb_func_start sub_0804C870 +sub_0804C870: @ 0x0804C870 + movs r0, #1 + bx lr + + thumb_func_start nullsub_218 +nullsub_218: @ 0x0804C874 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C878 +sub_0804C878: @ 0x0804C878 + movs r0, #1 + bx lr + + thumb_func_start nullsub_219 +nullsub_219: @ 0x0804C87C + bx lr + .align 2, 0 + + thumb_func_start sub_0804C880 +sub_0804C880: @ 0x0804C880 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C884 +sub_0804C884: @ 0x0804C884 + push {lr} + movs r0, #0x5b + bl sub_0807CA84 + cmp r0, #0 + bne _0804C8B4 + ldr r0, _0804C8AC @ =gUnk_080DC390 + bl sub_0804ADDC + movs r0, #0x80 + lsls r0, r0, #2 + movs r1, #0x80 + bl sub_0807CB10 + cmp r0, #0 + bne _0804C8CA + ldr r0, _0804C8B0 @ =gUnk_080DC3F0 + bl sub_0804ADDC + b _0804C8CA + .align 2, 0 +_0804C8AC: .4byte gUnk_080DC390 +_0804C8B0: .4byte gUnk_080DC3F0 +_0804C8B4: + ldr r0, _0804C900 @ =gUnk_080DC430 + bl sub_0804ADDC + movs r0, #0x11 + bl sub_0807CA84 + cmp r0, #0 + bne _0804C8CA + ldr r0, _0804C904 @ =gUnk_080DC530 + bl sub_0804ADDC +_0804C8CA: + movs r0, #0x80 + lsls r0, r0, #2 + movs r1, #0x83 + bl sub_0807CB10 + cmp r0, #0 + bne _0804C8E8 + movs r0, #0x11 + bl sub_0807CA84 + cmp r0, #0 + beq _0804C8E8 + ldr r0, _0804C908 @ =gUnk_080DC470 + bl sub_0804ADDC +_0804C8E8: + movs r0, #0x8d + bl sub_0807CBD0 + cmp r0, #0 + bne _0804C8F8 + ldr r0, _0804C90C @ =gUnk_080DC4C0 + bl sub_0804ADDC +_0804C8F8: + bl sub_08057E64 + pop {pc} + .align 2, 0 +_0804C900: .4byte gUnk_080DC430 +_0804C904: .4byte gUnk_080DC530 +_0804C908: .4byte gUnk_080DC470 +_0804C90C: .4byte gUnk_080DC4C0 + + thumb_func_start sub_0804C910 +sub_0804C910: @ 0x0804C910 + movs r0, #1 + bx lr + + thumb_func_start nullsub_220 +nullsub_220: @ 0x0804C914 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C918 +sub_0804C918: @ 0x0804C918 + push {r4, r5, lr} + ldr r4, _0804C940 @ =gUnk_086D4460 + movs r1, #0xc0 + lsls r1, r1, #0x13 + movs r5, #0x80 + lsls r5, r5, #7 + adds r0, r4, #0 + adds r2, r5, #0 + bl sub_08000E96 + adds r4, r4, r5 + ldr r1, _0804C944 @ =0x06008000 + adds r0, r4, #0 + adds r2, r5, #0 + bl sub_08000E96 + movs r0, #0x19 + bl sub_0801D714 + pop {r4, r5, pc} + .align 2, 0 +_0804C940: .4byte gUnk_086D4460 +_0804C944: .4byte 0x06008000 + + thumb_func_start sub_0804C948 +sub_0804C948: @ 0x0804C948 + movs r0, #1 + bx lr + + thumb_func_start nullsub_221 +nullsub_221: @ 0x0804C94C + bx lr + .align 2, 0 + + thumb_func_start sub_0804C950 +sub_0804C950: @ 0x0804C950 + movs r0, #1 + bx lr + + thumb_func_start nullsub_222 +nullsub_222: @ 0x0804C954 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C958 +sub_0804C958: @ 0x0804C958 + movs r0, #1 + bx lr + + thumb_func_start nullsub_223 +nullsub_223: @ 0x0804C95C + bx lr + .align 2, 0 + + thumb_func_start sub_0804C960 +sub_0804C960: @ 0x0804C960 + movs r0, #1 + bx lr + + thumb_func_start nullsub_224 +nullsub_224: @ 0x0804C964 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C968 +sub_0804C968: @ 0x0804C968 + movs r0, #1 + bx lr + + thumb_func_start nullsub_225 +nullsub_225: @ 0x0804C96C + bx lr + .align 2, 0 + + thumb_func_start sub_0804C970 +sub_0804C970: @ 0x0804C970 + movs r0, #1 + bx lr + + thumb_func_start nullsub_226 +nullsub_226: @ 0x0804C974 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C978 +sub_0804C978: @ 0x0804C978 + movs r0, #1 + bx lr + + thumb_func_start nullsub_227 +nullsub_227: @ 0x0804C97C + bx lr + .align 2, 0 + + thumb_func_start sub_0804C980 +sub_0804C980: @ 0x0804C980 + movs r0, #1 + bx lr + + thumb_func_start nullsub_228 +nullsub_228: @ 0x0804C984 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C988 +sub_0804C988: @ 0x0804C988 + movs r0, #1 + bx lr + + thumb_func_start nullsub_229 +nullsub_229: @ 0x0804C98C + bx lr + .align 2, 0 + + thumb_func_start sub_0804C990 +sub_0804C990: @ 0x0804C990 + movs r0, #1 + bx lr + + thumb_func_start nullsub_230 +nullsub_230: @ 0x0804C994 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C998 +sub_0804C998: @ 0x0804C998 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C99C +sub_0804C99C: @ 0x0804C99C + push {lr} + movs r0, #9 + bl sub_0807CA84 + cmp r0, #0 + bne _0804C9AE + ldr r0, _0804C9B0 @ =gUnk_080DCB10 + bl sub_0804ADDC +_0804C9AE: + pop {pc} + .align 2, 0 +_0804C9B0: .4byte gUnk_080DCB10 + + thumb_func_start sub_0804C9B4 +sub_0804C9B4: @ 0x0804C9B4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_231 +nullsub_231: @ 0x0804C9B8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C9BC +sub_0804C9BC: @ 0x0804C9BC + movs r0, #1 + bx lr + + thumb_func_start nullsub_232 +nullsub_232: @ 0x0804C9C0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C9C4 +sub_0804C9C4: @ 0x0804C9C4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_233 +nullsub_233: @ 0x0804C9C8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C9CC +sub_0804C9CC: @ 0x0804C9CC + movs r0, #1 + bx lr + + thumb_func_start nullsub_234 +nullsub_234: @ 0x0804C9D0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C9D4 +sub_0804C9D4: @ 0x0804C9D4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_235 +nullsub_235: @ 0x0804C9D8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C9DC +sub_0804C9DC: @ 0x0804C9DC + movs r0, #1 + bx lr + + thumb_func_start nullsub_236 +nullsub_236: @ 0x0804C9E0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C9E4 +sub_0804C9E4: @ 0x0804C9E4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_237 +nullsub_237: @ 0x0804C9E8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C9EC +sub_0804C9EC: @ 0x0804C9EC + movs r0, #1 + bx lr + + thumb_func_start nullsub_238 +nullsub_238: @ 0x0804C9F0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C9F4 +sub_0804C9F4: @ 0x0804C9F4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_239 +nullsub_239: @ 0x0804C9F8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C9FC +sub_0804C9FC: @ 0x0804C9FC + movs r0, #1 + bx lr + + thumb_func_start nullsub_240 +nullsub_240: @ 0x0804CA00 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CA04 +sub_0804CA04: @ 0x0804CA04 + movs r0, #1 + bx lr + + thumb_func_start nullsub_241 +nullsub_241: @ 0x0804CA08 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CA0C +sub_0804CA0C: @ 0x0804CA0C + movs r0, #1 + bx lr + + thumb_func_start sub_0804CA10 +sub_0804CA10: @ 0x0804CA10 + push {lr} + movs r0, #0x56 + bl sub_0807CC30 + cmp r0, #0 + bne _0804CA22 + ldr r0, _0804CA34 @ =gUnk_080DD214 + bl sub_0804ADDC +_0804CA22: + movs r0, #0x7f + bl sub_0807CBD0 + cmp r0, #0 + bne _0804CA3C + ldr r0, _0804CA38 @ =gUnk_080DD274 + bl sub_0804ADDC + b _0804CA42 + .align 2, 0 +_0804CA34: .4byte gUnk_080DD214 +_0804CA38: .4byte gUnk_080DD274 +_0804CA3C: + ldr r0, _0804CA4C @ =gUnk_080DD294 + bl sub_0804ADDC +_0804CA42: + movs r0, #0x8e + bl sub_0807CCB4 + pop {pc} + .align 2, 0 +_0804CA4C: .4byte gUnk_080DD294 + + thumb_func_start sub_0804CA50 +sub_0804CA50: @ 0x0804CA50 + movs r0, #1 + bx lr + + thumb_func_start sub_0804CA54 +sub_0804CA54: @ 0x0804CA54 + push {lr} + ldr r0, _0804CA6C @ =gUnk_02002A40 + ldr r0, [r0, #0x40] + movs r1, #0x80 + lsls r1, r1, #0x13 + ands r0, r1 + cmp r0, #0 + bne _0804CA6A + ldr r0, _0804CA70 @ =gUnk_080DD364 + bl sub_0804ADDC +_0804CA6A: + pop {pc} + .align 2, 0 +_0804CA6C: .4byte gUnk_02002A40 +_0804CA70: .4byte gUnk_080DD364 + + thumb_func_start sub_0804CA74 +sub_0804CA74: @ 0x0804CA74 + push {lr} + ldr r0, _0804CA8C @ =gUnk_02002A40 + ldr r0, [r0, #0x40] + movs r1, #0x80 + lsls r1, r1, #0x13 + ands r0, r1 + cmp r0, #0 + bne _0804CA8A + ldr r0, _0804CA90 @ =gUnk_080DD364 + bl sub_0804ADDC +_0804CA8A: + pop {pc} + .align 2, 0 +_0804CA8C: .4byte gUnk_02002A40 +_0804CA90: .4byte gUnk_080DD364 + + thumb_func_start sub_0804CA94 +sub_0804CA94: @ 0x0804CA94 + movs r0, #1 + bx lr + + thumb_func_start nullsub_242 +nullsub_242: @ 0x0804CA98 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CA9C +sub_0804CA9C: @ 0x0804CA9C + movs r0, #1 + bx lr + + thumb_func_start sub_0804CAA0 +sub_0804CAA0: @ 0x0804CAA0 + push {lr} + movs r0, #0x24 + bl sub_0807CC30 + cmp r0, #0 + beq _0804CAB2 + ldr r0, _0804CAC4 @ =0x000006DE + bl sub_0809F814 +_0804CAB2: + movs r0, #0xf3 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804CAC8 + movs r0, #0xe0 + bl sub_0809F814 + b _0804CACE + .align 2, 0 +_0804CAC4: .4byte 0x000006DE +_0804CAC8: + ldr r0, _0804CAE0 @ =gUnk_080DD7E0 + bl sub_0804ADDC +_0804CACE: + movs r0, #0xf5 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804CAE8 + ldr r0, _0804CAE4 @ =0x00000BA3 + bl sub_0809F814 + b _0804CAEE + .align 2, 0 +_0804CAE0: .4byte gUnk_080DD7E0 +_0804CAE4: .4byte 0x00000BA3 +_0804CAE8: + ldr r0, _0804CAF0 @ =gUnk_080DD840 + bl sub_0804ADDC +_0804CAEE: + pop {pc} + .align 2, 0 +_0804CAF0: .4byte gUnk_080DD840 + + thumb_func_start sub_0804CAF4 +sub_0804CAF4: @ 0x0804CAF4 + movs r0, #1 + bx lr + + thumb_func_start sub_0804CAF8 +sub_0804CAF8: @ 0x0804CAF8 + push {lr} + bl sub_080300E8 + movs r0, #0x24 + bl sub_0807CCB4 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804CB08 +sub_0804CB08: @ 0x0804CB08 + movs r0, #1 + bx lr + + thumb_func_start nullsub_37 +nullsub_37: @ 0x0804CB0C + bx lr + .align 2, 0 + + thumb_func_start sub_0804CB10 +sub_0804CB10: @ 0x0804CB10 + movs r0, #1 + bx lr + + thumb_func_start sub_0804CB14 +sub_0804CB14: @ 0x0804CB14 + push {lr} + movs r0, #0x41 + bl sub_0801E7F4 + cmp r0, #0 + beq _0804CB26 + ldr r0, _0804CB28 @ =gUnk_080DDE88 + bl sub_0804ADDC +_0804CB26: + pop {pc} + .align 2, 0 +_0804CB28: .4byte gUnk_080DDE88 + + thumb_func_start sub_0804CB2C +sub_0804CB2C: @ 0x0804CB2C + push {lr} + movs r0, #0x80 + lsls r0, r0, #1 + movs r1, #0x27 + bl sub_0807CB10 + cmp r0, #0 + beq _0804CB42 + movs r0, #0x85 + bl sub_08059340 +_0804CB42: + pop {pc} + + thumb_func_start sub_0804CB44 +sub_0804CB44: @ 0x0804CB44 + movs r0, #1 + bx lr + + thumb_func_start nullsub_38 +nullsub_38: @ 0x0804CB48 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CB4C +sub_0804CB4C: @ 0x0804CB4C + movs r0, #1 + bx lr + + thumb_func_start sub_0804CB50 +sub_0804CB50: @ 0x0804CB50 + push {lr} + bl sub_080300E8 + movs r0, #4 + bl sub_0807CC30 + cmp r0, #0 + beq _0804CB70 + movs r0, #3 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804CB70 + ldr r0, _0804CB74 @ =gUnk_080DE008 + bl sub_0804ADDC +_0804CB70: + pop {pc} + .align 2, 0 +_0804CB74: .4byte gUnk_080DE008 + + thumb_func_start sub_0804CB78 +sub_0804CB78: @ 0x0804CB78 + movs r0, #1 + bx lr + + thumb_func_start sub_0804CB7C +sub_0804CB7C: @ 0x0804CB7C + push {lr} + bl sub_080300E8 + movs r0, #0x30 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804CB92 + ldr r0, _0804CBA4 @ =gUnk_080DE1E0 + bl sub_0804ADDC +_0804CB92: + movs r0, #0x31 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804CBA2 + ldr r0, _0804CBA8 @ =gUnk_080DE200 + bl sub_0804ADDC +_0804CBA2: + pop {pc} + .align 2, 0 +_0804CBA4: .4byte gUnk_080DE1E0 +_0804CBA8: .4byte gUnk_080DE200 + + thumb_func_start sub_0804CBAC +sub_0804CBAC: @ 0x0804CBAC + movs r0, #1 + bx lr + + thumb_func_start sub_0804CBB0 +sub_0804CBB0: @ 0x0804CBB0 + push {lr} + ldr r0, _0804CBD8 @ =gUnk_03001160 + movs r2, #0x32 + ldrsh r1, [r0, r2] + ldr r2, _0804CBDC @ =gUnk_03000BF0 + ldrh r0, [r2, #8] + subs r1, r1, r0 + ldrh r0, [r2, #0x20] + lsrs r0, r0, #1 + cmp r1, r0 + bge _0804CBD6 + movs r0, #0x17 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804CBD6 + ldr r0, _0804CBE0 @ =gUnk_080DE4C8 + bl sub_0804ADDC +_0804CBD6: + pop {pc} + .align 2, 0 +_0804CBD8: .4byte gUnk_03001160 +_0804CBDC: .4byte gUnk_03000BF0 +_0804CBE0: .4byte gUnk_080DE4C8 + + thumb_func_start sub_0804CBE4 +sub_0804CBE4: @ 0x0804CBE4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_243 +nullsub_243: @ 0x0804CBE8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CBEC +sub_0804CBEC: @ 0x0804CBEC + movs r0, #1 + bx lr + + thumb_func_start sub_0804CBF0 +sub_0804CBF0: @ 0x0804CBF0 + push {lr} + movs r0, #0x4b + bl sub_0807CBD0 + cmp r0, #0 + bne _0804CC08 + ldr r0, _0804CC04 @ =gUnk_080DE814 + bl sub_0804ADDC + b _0804CC4A + .align 2, 0 +_0804CC04: .4byte gUnk_080DE814 +_0804CC08: + movs r0, #0x4c + bl sub_0807CBD0 + cmp r0, #0 + bne _0804CC2C + ldr r0, _0804CC24 @ =gUnk_080DE834 + bl sub_0804ADDC + ldr r1, _0804CC28 @ =0x00000285 + movs r0, #0x79 + movs r2, #1 + bl sub_0807B314 + b _0804CC4A + .align 2, 0 +_0804CC24: .4byte gUnk_080DE834 +_0804CC28: .4byte 0x00000285 +_0804CC2C: + ldr r1, _0804CC4C @ =0x00000285 + movs r0, #0x7a + movs r2, #1 + bl sub_0807B314 + movs r0, #0x24 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804CC4A + ldr r1, _0804CC50 @ =0x00000205 + movs r0, #0x73 + movs r2, #1 + bl sub_0807B314 +_0804CC4A: + pop {pc} + .align 2, 0 +_0804CC4C: .4byte 0x00000285 +_0804CC50: .4byte 0x00000205 + + thumb_func_start sub_0804CC54 +sub_0804CC54: @ 0x0804CC54 + movs r0, #1 + bx lr + + thumb_func_start nullsub_244 +nullsub_244: @ 0x0804CC58 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CC5C +sub_0804CC5C: @ 0x0804CC5C + movs r0, #1 + bx lr + + thumb_func_start nullsub_245 +nullsub_245: @ 0x0804CC60 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CC64 +sub_0804CC64: @ 0x0804CC64 + movs r0, #1 + bx lr + + thumb_func_start nullsub_246 +nullsub_246: @ 0x0804CC68 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CC6C +sub_0804CC6C: @ 0x0804CC6C + movs r0, #1 + bx lr + + thumb_func_start sub_0804CC70 +sub_0804CC70: @ 0x0804CC70 + push {lr} + ldr r0, _0804CC94 @ =gUnk_02002A40 + ldrb r0, [r0, #7] + cmp r0, #0 + beq _0804CC7E + cmp r0, #2 + beq _0804CCA0 +_0804CC7E: + ldr r1, _0804CC98 @ =0x0000020B + movs r0, #0x90 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804CC9C @ =0x00000411 + movs r0, #0x90 + movs r2, #1 + bl sub_0807B314 + b _0804CCB4 + .align 2, 0 +_0804CC94: .4byte gUnk_02002A40 +_0804CC98: .4byte 0x0000020B +_0804CC9C: .4byte 0x00000411 +_0804CCA0: + ldr r1, _0804CCE4 @ =0x00000211 + movs r0, #0x90 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804CCE8 @ =0x0000040B + movs r0, #0x90 + movs r2, #1 + bl sub_0807B314 +_0804CCB4: + movs r0, #0x15 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804CCCA + movs r1, #0xc1 + lsls r1, r1, #2 + movs r0, #0x76 + movs r2, #2 + bl sub_0807B314 +_0804CCCA: + movs r0, #0x16 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804CCE0 + movs r1, #0xc6 + lsls r1, r1, #2 + movs r0, #0x76 + movs r2, #2 + bl sub_0807B314 +_0804CCE0: + pop {pc} + .align 2, 0 +_0804CCE4: .4byte 0x00000211 +_0804CCE8: .4byte 0x0000040B + + thumb_func_start sub_0804CCEC +sub_0804CCEC: @ 0x0804CCEC + movs r0, #1 + bx lr + + thumb_func_start nullsub_247 +nullsub_247: @ 0x0804CCF0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CCF4 +sub_0804CCF4: @ 0x0804CCF4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_248 +nullsub_248: @ 0x0804CCF8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CCFC +sub_0804CCFC: @ 0x0804CCFC + movs r0, #1 + bx lr + + thumb_func_start nullsub_249 +nullsub_249: @ 0x0804CD00 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CD04 +sub_0804CD04: @ 0x0804CD04 + movs r0, #1 + bx lr + + thumb_func_start nullsub_250 +nullsub_250: @ 0x0804CD08 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CD0C +sub_0804CD0C: @ 0x0804CD0C + movs r0, #1 + bx lr + + thumb_func_start nullsub_251 +nullsub_251: @ 0x0804CD10 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CD14 +sub_0804CD14: @ 0x0804CD14 + movs r0, #1 + bx lr + + thumb_func_start nullsub_252 +nullsub_252: @ 0x0804CD18 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CD1C +sub_0804CD1C: @ 0x0804CD1C + movs r0, #1 + bx lr + + thumb_func_start nullsub_253 +nullsub_253: @ 0x0804CD20 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CD24 +sub_0804CD24: @ 0x0804CD24 + movs r0, #1 + bx lr + + thumb_func_start nullsub_254 +nullsub_254: @ 0x0804CD28 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CD2C +sub_0804CD2C: @ 0x0804CD2C + movs r0, #1 + bx lr + + thumb_func_start nullsub_255 +nullsub_255: @ 0x0804CD30 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CD34 +sub_0804CD34: @ 0x0804CD34 + movs r0, #1 + bx lr + + thumb_func_start nullsub_256 +nullsub_256: @ 0x0804CD38 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CD3C +sub_0804CD3C: @ 0x0804CD3C + movs r0, #1 + bx lr + + thumb_func_start nullsub_257 +nullsub_257: @ 0x0804CD40 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CD44 +sub_0804CD44: @ 0x0804CD44 + movs r0, #1 + bx lr + + thumb_func_start sub_0804CD48 +sub_0804CD48: @ 0x0804CD48 + push {r4, lr} + movs r0, #0x48 + bl sub_0807CBD0 + adds r4, r0, #0 + cmp r4, #0 + bne _0804CD80 + movs r0, #0x48 + bl sub_0807CCB4 + movs r0, #5 + movs r1, #0 + bl sub_080A7138 + ldr r0, _0804CD94 @ =gUnk_02000070 + strb r4, [r0] + ldr r0, _0804CD98 @ =gUnk_03000FD0 + strb r4, [r0] + ldr r0, _0804CD9C @ =gUnk_0200B644 + str r4, [r0] + movs r1, #0xa0 + lsls r1, r1, #0x13 + ldr r2, _0804CDA0 @ =0x00007FFF + adds r0, r2, #0 + strh r0, [r1] + movs r0, #1 + bl sub_0801DA90 +_0804CD80: + movs r0, #2 + bl sub_0807CC30 + cmp r0, #0 + beq _0804CDA8 + ldr r0, _0804CDA4 @ =gUnk_080DF94C + bl sub_0804ADDC + b _0804CDBE + .align 2, 0 +_0804CD94: .4byte gUnk_02000070 +_0804CD98: .4byte gUnk_03000FD0 +_0804CD9C: .4byte gUnk_0200B644 +_0804CDA0: .4byte 0x00007FFF +_0804CDA4: .4byte gUnk_080DF94C +_0804CDA8: + ldr r0, _0804CDC0 @ =0x80100000 + bl sub_080A3268 + ldr r0, _0804CDC4 @ =gUnk_02033A90 + movs r2, #0x86 + lsls r2, r2, #4 + adds r1, r0, r2 + adds r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] +_0804CDBE: + pop {r4, pc} + .align 2, 0 +_0804CDC0: .4byte 0x80100000 +_0804CDC4: .4byte gUnk_02033A90 + + thumb_func_start sub_0804CDC8 +sub_0804CDC8: @ 0x0804CDC8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_258 +nullsub_258: @ 0x0804CDCC + bx lr + .align 2, 0 + + thumb_func_start sub_0804CDD0 +sub_0804CDD0: @ 0x0804CDD0 + movs r0, #1 + bx lr + + thumb_func_start sub_0804CDD4 +sub_0804CDD4: @ 0x0804CDD4 + push {lr} + bl sub_08058D34 + ldr r2, _0804CDEC @ =gUnk_02033A90 + ldrb r1, [r2] + movs r0, #0x40 + orrs r0, r1 + strb r0, [r2] + ldr r1, _0804CDF0 @ =gUnk_03001000 + movs r0, #5 + strb r0, [r1, #4] + pop {pc} + .align 2, 0 +_0804CDEC: .4byte gUnk_02033A90 +_0804CDF0: .4byte gUnk_03001000 + + thumb_func_start sub_0804CDF4 +sub_0804CDF4: @ 0x0804CDF4 + movs r0, #1 + bx lr + + thumb_func_start sub_0804CDF8 +sub_0804CDF8: @ 0x0804CDF8 + push {lr} + movs r0, #2 + bl sub_0807CC30 + cmp r0, #0 + beq _0804CE18 + movs r0, #0x80 + lsls r0, r0, #1 + movs r1, #1 + bl sub_0807CB10 + cmp r0, #0 + bne _0804CE18 + ldr r0, _0804CE1C @ =gUnk_080DFB78 + bl sub_0804ADDC +_0804CE18: + pop {pc} + .align 2, 0 +_0804CE1C: .4byte gUnk_080DFB78 + + thumb_func_start sub_0804CE20 +sub_0804CE20: @ 0x0804CE20 + movs r0, #1 + bx lr + + thumb_func_start nullsub_259 +nullsub_259: @ 0x0804CE24 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CE28 +sub_0804CE28: @ 0x0804CE28 + movs r0, #1 + bx lr + + thumb_func_start nullsub_260 +nullsub_260: @ 0x0804CE2C + bx lr + .align 2, 0 + + thumb_func_start sub_0804CE30 +sub_0804CE30: @ 0x0804CE30 + movs r0, #1 + bx lr + + thumb_func_start nullsub_261 +nullsub_261: @ 0x0804CE34 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CE38 +sub_0804CE38: @ 0x0804CE38 + movs r0, #1 + bx lr + + thumb_func_start nullsub_262 +nullsub_262: @ 0x0804CE3C + bx lr + .align 2, 0 + + thumb_func_start sub_0804CE40 +sub_0804CE40: @ 0x0804CE40 + movs r0, #1 + bx lr + + thumb_func_start nullsub_263 +nullsub_263: @ 0x0804CE44 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CE48 +sub_0804CE48: @ 0x0804CE48 + movs r0, #1 + bx lr + + thumb_func_start nullsub_264 +nullsub_264: @ 0x0804CE4C + bx lr + .align 2, 0 + + thumb_func_start sub_0804CE50 +sub_0804CE50: @ 0x0804CE50 + movs r0, #1 + bx lr + + thumb_func_start nullsub_265 +nullsub_265: @ 0x0804CE54 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CE58 +sub_0804CE58: @ 0x0804CE58 + movs r0, #1 + bx lr + + thumb_func_start nullsub_266 +nullsub_266: @ 0x0804CE5C + bx lr + .align 2, 0 + + thumb_func_start sub_0804CE60 +sub_0804CE60: @ 0x0804CE60 + movs r0, #1 + bx lr + + thumb_func_start nullsub_267 +nullsub_267: @ 0x0804CE64 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CE68 +sub_0804CE68: @ 0x0804CE68 + movs r0, #1 + bx lr + + thumb_func_start nullsub_268 +nullsub_268: @ 0x0804CE6C + bx lr + .align 2, 0 + + thumb_func_start sub_0804CE70 +sub_0804CE70: @ 0x0804CE70 + movs r0, #1 + bx lr + + thumb_func_start nullsub_269 +nullsub_269: @ 0x0804CE74 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CE78 +sub_0804CE78: @ 0x0804CE78 + movs r0, #1 + bx lr + + thumb_func_start nullsub_270 +nullsub_270: @ 0x0804CE7C + bx lr + .align 2, 0 + + thumb_func_start sub_0804CE80 +sub_0804CE80: @ 0x0804CE80 + push {lr} + movs r0, #3 + bl sub_0807CC30 + cmp r0, #0 + beq _0804CE92 + ldr r1, _0804CE98 @ =gUnk_02034350 + ldr r0, _0804CE9C @ =gUnk_080E103C + str r0, [r1, #0x70] +_0804CE92: + movs r0, #1 + pop {pc} + .align 2, 0 +_0804CE98: .4byte gUnk_02034350 +_0804CE9C: .4byte gUnk_080E103C + + thumb_func_start nullsub_271 +nullsub_271: @ 0x0804CEA0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CEA4 +sub_0804CEA4: @ 0x0804CEA4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_272 +nullsub_272: @ 0x0804CEA8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CEAC +sub_0804CEAC: @ 0x0804CEAC + movs r0, #1 + bx lr + + thumb_func_start nullsub_273 +nullsub_273: @ 0x0804CEB0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CEB4 +sub_0804CEB4: @ 0x0804CEB4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_274 +nullsub_274: @ 0x0804CEB8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CEBC +sub_0804CEBC: @ 0x0804CEBC + movs r0, #1 + bx lr + + thumb_func_start nullsub_275 +nullsub_275: @ 0x0804CEC0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CEC4 +sub_0804CEC4: @ 0x0804CEC4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_276 +nullsub_276: @ 0x0804CEC8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CECC +sub_0804CECC: @ 0x0804CECC + movs r0, #1 + bx lr + + thumb_func_start nullsub_277 +nullsub_277: @ 0x0804CED0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CED4 +sub_0804CED4: @ 0x0804CED4 + movs r0, #1 + bx lr + + thumb_func_start sub_0804CED8 +sub_0804CED8: @ 0x0804CED8 + push {lr} + movs r0, #3 + bl sub_0807CC30 + cmp r0, #0 + beq _0804CF18 + ldr r1, _0804CF04 @ =gUnk_0200B650 + movs r0, #0 + str r0, [r1] + ldr r2, _0804CF08 @ =gUnk_03000F50 + ldrh r1, [r2] + ldr r0, _0804CF0C @ =0x0000FDFF + ands r0, r1 + strh r0, [r2] + ldr r0, _0804CF10 @ =gUnk_03001160 + bl sub_0807AABC + ldr r0, _0804CF14 @ =gUnk_080E1814 + bl sub_0804ADDC + b _0804CF2E + .align 2, 0 +_0804CF04: .4byte gUnk_0200B650 +_0804CF08: .4byte gUnk_03000F50 +_0804CF0C: .4byte 0x0000FDFF +_0804CF10: .4byte gUnk_03001160 +_0804CF14: .4byte gUnk_080E1814 +_0804CF18: + ldr r0, _0804CF30 @ =0x80100000 + bl sub_080A3268 + ldr r0, _0804CF34 @ =gUnk_02033A90 + movs r2, #0x86 + lsls r2, r2, #4 + adds r1, r0, r2 + adds r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] +_0804CF2E: + pop {pc} + .align 2, 0 +_0804CF30: .4byte 0x80100000 +_0804CF34: .4byte gUnk_02033A90 + + thumb_func_start sub_0804CF38 +sub_0804CF38: @ 0x0804CF38 + movs r0, #1 + bx lr + + thumb_func_start nullsub_278 +nullsub_278: @ 0x0804CF3C + bx lr + .align 2, 0 + + thumb_func_start sub_0804CF40 +sub_0804CF40: @ 0x0804CF40 + movs r0, #1 + bx lr + + thumb_func_start sub_0804CF44 +sub_0804CF44: @ 0x0804CF44 + ldr r1, _0804CF58 @ =gUnk_030010A0 + adds r2, r1, #0 + adds r2, #0x38 + movs r0, #0 + strb r0, [r2] + adds r1, #0x39 + movs r0, #0x5a + strb r0, [r1] + bx lr + .align 2, 0 +_0804CF58: .4byte gUnk_030010A0 + + thumb_func_start sub_0804CF5C +sub_0804CF5C: @ 0x0804CF5C + movs r0, #1 + bx lr + + thumb_func_start sub_0804CF60 +sub_0804CF60: @ 0x0804CF60 + push {lr} + bl sub_080300E8 + pop {pc} + + thumb_func_start sub_0804CF68 +sub_0804CF68: @ 0x0804CF68 + movs r0, #1 + bx lr + + thumb_func_start nullsub_39 +nullsub_39: @ 0x0804CF6C + bx lr + .align 2, 0 + + thumb_func_start sub_0804CF70 +sub_0804CF70: @ 0x0804CF70 + movs r0, #1 + bx lr + + thumb_func_start sub_0804CF74 +sub_0804CF74: @ 0x0804CF74 + push {lr} + bl sub_080300E8 + pop {pc} + + thumb_func_start sub_0804CF7C +sub_0804CF7C: @ 0x0804CF7C + movs r0, #1 + bx lr + + thumb_func_start nullsub_40 +nullsub_40: @ 0x0804CF80 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CF84 +sub_0804CF84: @ 0x0804CF84 + movs r0, #1 + bx lr + + thumb_func_start nullsub_41 +nullsub_41: @ 0x0804CF88 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CF8C +sub_0804CF8C: @ 0x0804CF8C + movs r0, #1 + bx lr + + thumb_func_start nullsub_42 +nullsub_42: @ 0x0804CF90 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CF94 +sub_0804CF94: @ 0x0804CF94 + movs r0, #1 + bx lr + + thumb_func_start nullsub_43 +nullsub_43: @ 0x0804CF98 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CF9C +sub_0804CF9C: @ 0x0804CF9C + movs r0, #1 + bx lr + + thumb_func_start nullsub_44 +nullsub_44: @ 0x0804CFA0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CFA4 +sub_0804CFA4: @ 0x0804CFA4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_45 +nullsub_45: @ 0x0804CFA8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CFAC +sub_0804CFAC: @ 0x0804CFAC + movs r0, #1 + bx lr + + thumb_func_start sub_0804CFB0 +sub_0804CFB0: @ 0x0804CFB0 + push {lr} + movs r0, #0x31 + bl sub_0807CBE4 + cmp r0, #0 + bne _0804CFFE + ldr r1, _0804CFD0 @ =gUnk_030010A0 + adds r0, r1, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #0 + bne _0804CFD8 + ldr r0, _0804CFD4 @ =0x80100000 + bl sub_080A3268 + b _0804CFEE + .align 2, 0 +_0804CFD0: .4byte gUnk_030010A0 +_0804CFD4: .4byte 0x80100000 +_0804CFD8: + adds r0, r1, #0 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #0 + bne _0804CFEE + ldr r0, _0804D000 @ =0x80050000 + bl sub_080A3268 + movs r0, #3 + bl sub_08078A90 +_0804CFEE: + ldr r0, _0804D004 @ =gUnk_02033A90 + movs r2, #0x86 + lsls r2, r2, #4 + adds r1, r0, r2 + adds r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] +_0804CFFE: + pop {pc} + .align 2, 0 +_0804D000: .4byte 0x80050000 +_0804D004: .4byte gUnk_02033A90 + + thumb_func_start sub_0804D008 +sub_0804D008: @ 0x0804D008 + movs r0, #1 + bx lr + + thumb_func_start nullsub_279 +nullsub_279: @ 0x0804D00C + bx lr + .align 2, 0 + + thumb_func_start sub_0804D010 +sub_0804D010: @ 0x0804D010 + movs r0, #1 + bx lr + + thumb_func_start nullsub_280 +nullsub_280: @ 0x0804D014 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D018 +sub_0804D018: @ 0x0804D018 + movs r0, #1 + bx lr + + thumb_func_start nullsub_281 +nullsub_281: @ 0x0804D01C + bx lr + .align 2, 0 + + thumb_func_start sub_0804D020 +sub_0804D020: @ 0x0804D020 + movs r0, #1 + bx lr + + thumb_func_start nullsub_282 +nullsub_282: @ 0x0804D024 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D028 +sub_0804D028: @ 0x0804D028 + movs r0, #1 + bx lr + + thumb_func_start nullsub_283 +nullsub_283: @ 0x0804D02C + bx lr + .align 2, 0 + + thumb_func_start sub_0804D030 +sub_0804D030: @ 0x0804D030 + movs r0, #1 + bx lr + + thumb_func_start nullsub_284 +nullsub_284: @ 0x0804D034 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D038 +sub_0804D038: @ 0x0804D038 + movs r0, #1 + bx lr + + thumb_func_start nullsub_285 +nullsub_285: @ 0x0804D03C + bx lr + .align 2, 0 + + thumb_func_start sub_0804D040 +sub_0804D040: @ 0x0804D040 + movs r0, #1 + bx lr + + thumb_func_start nullsub_286 +nullsub_286: @ 0x0804D044 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D048 +sub_0804D048: @ 0x0804D048 + movs r0, #1 + bx lr + + thumb_func_start nullsub_287 +nullsub_287: @ 0x0804D04C + bx lr + .align 2, 0 + + thumb_func_start sub_0804D050 +sub_0804D050: @ 0x0804D050 + movs r0, #1 + bx lr + + thumb_func_start nullsub_288 +nullsub_288: @ 0x0804D054 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D058 +sub_0804D058: @ 0x0804D058 + movs r0, #1 + bx lr + + thumb_func_start nullsub_289 +nullsub_289: @ 0x0804D05C + bx lr + .align 2, 0 + + thumb_func_start sub_0804D060 +sub_0804D060: @ 0x0804D060 + movs r0, #1 + bx lr + + thumb_func_start nullsub_290 +nullsub_290: @ 0x0804D064 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D068 +sub_0804D068: @ 0x0804D068 + movs r0, #1 + bx lr + + thumb_func_start nullsub_291 +nullsub_291: @ 0x0804D06C + bx lr + .align 2, 0 + + thumb_func_start sub_0804D070 +sub_0804D070: @ 0x0804D070 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D074 +sub_0804D074: @ 0x0804D074 + push {lr} + movs r0, #4 + bl sub_0807CD04 + bl sub_080530C8 + movs r0, #3 + bl sub_0805B4D0 + movs r0, #0x17 + bl sub_0807CA84 + cmp r0, #0 + bne _0804D0A0 + movs r0, #0x45 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804D0A0 + ldr r0, _0804D0A4 @ =gUnk_080E3850 + bl sub_0804ADDC +_0804D0A0: + pop {pc} + .align 2, 0 +_0804D0A4: .4byte gUnk_080E3850 + + thumb_func_start sub_0804D0A8 +sub_0804D0A8: @ 0x0804D0A8 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D0AC +sub_0804D0AC: @ 0x0804D0AC + push {lr} + bl sub_0804D0B4 + pop {pc} + + thumb_func_start sub_0804D0B4 +sub_0804D0B4: @ 0x0804D0B4 + push {lr} + movs r0, #0x29 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804D0D2 + movs r0, #0x29 + bl sub_0807CCB4 + movs r0, #0x4b + bl sub_0807CCB4 + movs r0, #0x4e + bl sub_0807CCB4 +_0804D0D2: + pop {pc} + + thumb_func_start sub_0804D0D4 +sub_0804D0D4: @ 0x0804D0D4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_46 +nullsub_46: @ 0x0804D0D8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D0DC +sub_0804D0DC: @ 0x0804D0DC + movs r0, #1 + bx lr + + thumb_func_start nullsub_47 +nullsub_47: @ 0x0804D0E0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D0E4 +sub_0804D0E4: @ 0x0804D0E4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_48 +nullsub_48: @ 0x0804D0E8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D0EC +sub_0804D0EC: @ 0x0804D0EC + movs r0, #1 + bx lr + + thumb_func_start nullsub_49 +nullsub_49: @ 0x0804D0F0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D0F4 +sub_0804D0F4: @ 0x0804D0F4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_50 +nullsub_50: @ 0x0804D0F8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D0FC +sub_0804D0FC: @ 0x0804D0FC + movs r0, #1 + bx lr + + thumb_func_start nullsub_51 +nullsub_51: @ 0x0804D100 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D104 +sub_0804D104: @ 0x0804D104 + movs r0, #1 + bx lr + + thumb_func_start nullsub_52 +nullsub_52: @ 0x0804D108 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D10C +sub_0804D10C: @ 0x0804D10C + movs r0, #1 + bx lr + + thumb_func_start nullsub_53 +nullsub_53: @ 0x0804D110 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D114 +sub_0804D114: @ 0x0804D114 + movs r0, #1 + bx lr + + thumb_func_start nullsub_54 +nullsub_54: @ 0x0804D118 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D11C +sub_0804D11C: @ 0x0804D11C + movs r0, #1 + bx lr + + thumb_func_start nullsub_55 +nullsub_55: @ 0x0804D120 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D124 +sub_0804D124: @ 0x0804D124 + movs r0, #1 + bx lr + + thumb_func_start nullsub_56 +nullsub_56: @ 0x0804D128 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D12C +sub_0804D12C: @ 0x0804D12C + movs r0, #1 + bx lr + + thumb_func_start nullsub_57 +nullsub_57: @ 0x0804D130 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D134 +sub_0804D134: @ 0x0804D134 + movs r0, #1 + bx lr + + thumb_func_start nullsub_58 +nullsub_58: @ 0x0804D138 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D13C +sub_0804D13C: @ 0x0804D13C + movs r0, #1 + bx lr + + thumb_func_start sub_0804D140 +sub_0804D140: @ 0x0804D140 + push {lr} + movs r0, #0x80 + lsls r0, r0, #1 + bl sub_0805308C + movs r0, #5 + bl sub_0807CC30 + cmp r0, #0 + beq _0804D160 + ldr r0, _0804D15C @ =gUnk_080E49F4 + bl sub_0804ADDC + b _0804D176 + .align 2, 0 +_0804D15C: .4byte gUnk_080E49F4 +_0804D160: + ldr r0, _0804D178 @ =0x80100000 + bl sub_080A3268 + ldr r0, _0804D17C @ =gUnk_02033A90 + movs r2, #0x86 + lsls r2, r2, #4 + adds r1, r0, r2 + adds r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] +_0804D176: + pop {pc} + .align 2, 0 +_0804D178: .4byte 0x80100000 +_0804D17C: .4byte gUnk_02033A90 + + thumb_func_start sub_0804D180 +sub_0804D180: @ 0x0804D180 + movs r0, #1 + bx lr + + thumb_func_start nullsub_292 +nullsub_292: @ 0x0804D184 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D188 +sub_0804D188: @ 0x0804D188 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D18C +sub_0804D18C: @ 0x0804D18C + push {lr} + movs r0, #0x48 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804D1A4 + movs r0, #0x46 + bl sub_0807CD34 + ldr r0, _0804D1A8 @ =gUnk_080E4BD8 + bl sub_0804ADDC +_0804D1A4: + pop {pc} + .align 2, 0 +_0804D1A8: .4byte gUnk_080E4BD8 + + thumb_func_start sub_0804D1AC +sub_0804D1AC: @ 0x0804D1AC + movs r0, #1 + bx lr + + thumb_func_start sub_0804D1B0 +sub_0804D1B0: @ 0x0804D1B0 + push {lr} + bl sub_0804D0B4 + movs r0, #0x6c + bl sub_0807CBD0 + cmp r0, #0 + beq _0804D1CC + ldr r0, _0804D1C8 @ =gUnk_080E4CD8 + bl sub_0804ADDC + b _0804D1D2 + .align 2, 0 +_0804D1C8: .4byte gUnk_080E4CD8 +_0804D1CC: + ldr r0, _0804D1E4 @ =gUnk_080E4CF8 + bl sub_0804ADDC +_0804D1D2: + movs r0, #0x4b + bl sub_0807CBD0 + cmp r0, #0 + bne _0804D1E2 + movs r0, #0x49 + bl sub_0807CD34 +_0804D1E2: + pop {pc} + .align 2, 0 +_0804D1E4: .4byte gUnk_080E4CF8 + + thumb_func_start sub_0804D1E8 +sub_0804D1E8: @ 0x0804D1E8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_293 +nullsub_293: @ 0x0804D1EC + bx lr + .align 2, 0 + + thumb_func_start sub_0804D1F0 +sub_0804D1F0: @ 0x0804D1F0 + movs r0, #1 + bx lr + + thumb_func_start nullsub_294 +nullsub_294: @ 0x0804D1F4 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D1F8 +sub_0804D1F8: @ 0x0804D1F8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_295 +nullsub_295: @ 0x0804D1FC + bx lr + .align 2, 0 + + thumb_func_start sub_0804D200 +sub_0804D200: @ 0x0804D200 + movs r0, #1 + bx lr + + thumb_func_start nullsub_296 +nullsub_296: @ 0x0804D204 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D208 +sub_0804D208: @ 0x0804D208 + movs r0, #1 + bx lr + + thumb_func_start nullsub_297 +nullsub_297: @ 0x0804D20C + bx lr + .align 2, 0 + + thumb_func_start sub_0804D210 +sub_0804D210: @ 0x0804D210 + movs r0, #1 + bx lr + + thumb_func_start nullsub_298 +nullsub_298: @ 0x0804D214 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D218 +sub_0804D218: @ 0x0804D218 + movs r0, #1 + bx lr + + thumb_func_start nullsub_299 +nullsub_299: @ 0x0804D21C + bx lr + .align 2, 0 + + thumb_func_start sub_0804D220 +sub_0804D220: @ 0x0804D220 + movs r0, #1 + bx lr + + thumb_func_start nullsub_300 +nullsub_300: @ 0x0804D224 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D228 +sub_0804D228: @ 0x0804D228 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D22C +sub_0804D22C: @ 0x0804D22C + push {lr} + movs r0, #0x59 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804D244 + ldr r0, _0804D240 @ =gUnk_080E5660 + bl sub_0804ADDC + b _0804D24A + .align 2, 0 +_0804D240: .4byte gUnk_080E5660 +_0804D244: + ldr r0, _0804D24C @ =gUnk_080E5680 + bl sub_0804ADDC +_0804D24A: + pop {pc} + .align 2, 0 +_0804D24C: .4byte gUnk_080E5680 + + thumb_func_start sub_0804D250 +sub_0804D250: @ 0x0804D250 + movs r0, #1 + bx lr + + thumb_func_start nullsub_301 +nullsub_301: @ 0x0804D254 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D258 +sub_0804D258: @ 0x0804D258 + movs r0, #1 + bx lr + + thumb_func_start nullsub_302 +nullsub_302: @ 0x0804D25C + bx lr + .align 2, 0 + + thumb_func_start sub_0804D260 +sub_0804D260: @ 0x0804D260 + movs r0, #1 + bx lr + + thumb_func_start nullsub_303 +nullsub_303: @ 0x0804D264 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D268 +sub_0804D268: @ 0x0804D268 + movs r0, #1 + bx lr + + thumb_func_start nullsub_304 +nullsub_304: @ 0x0804D26C + bx lr + .align 2, 0 + + thumb_func_start sub_0804D270 +sub_0804D270: @ 0x0804D270 + movs r0, #1 + bx lr + + thumb_func_start nullsub_305 +nullsub_305: @ 0x0804D274 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D278 +sub_0804D278: @ 0x0804D278 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D27C +sub_0804D27C: @ 0x0804D27C + push {lr} + bl sub_0804D0B4 + movs r0, #0x4b + bl sub_0807CBD0 + cmp r0, #0 + bne _0804D298 + ldr r0, _0804D294 @ =gUnk_080E5E3C + bl sub_0804ADDC + b _0804D29E + .align 2, 0 +_0804D294: .4byte gUnk_080E5E3C +_0804D298: + ldr r0, _0804D2A0 @ =gUnk_080E5E5C + bl sub_0804ADDC +_0804D29E: + pop {pc} + .align 2, 0 +_0804D2A0: .4byte gUnk_080E5E5C + + thumb_func_start sub_0804D2A4 +sub_0804D2A4: @ 0x0804D2A4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_306 +nullsub_306: @ 0x0804D2A8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D2AC +sub_0804D2AC: @ 0x0804D2AC + movs r0, #1 + bx lr + + thumb_func_start nullsub_307 +nullsub_307: @ 0x0804D2B0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D2B4 +sub_0804D2B4: @ 0x0804D2B4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_308 +nullsub_308: @ 0x0804D2B8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D2BC +sub_0804D2BC: @ 0x0804D2BC + movs r0, #1 + bx lr + + thumb_func_start nullsub_309 +nullsub_309: @ 0x0804D2C0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D2C4 +sub_0804D2C4: @ 0x0804D2C4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_310 +nullsub_310: @ 0x0804D2C8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D2CC +sub_0804D2CC: @ 0x0804D2CC + movs r0, #1 + bx lr + + thumb_func_start nullsub_311 +nullsub_311: @ 0x0804D2D0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D2D4 +sub_0804D2D4: @ 0x0804D2D4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_312 +nullsub_312: @ 0x0804D2D8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D2DC +sub_0804D2DC: @ 0x0804D2DC + movs r0, #1 + bx lr + + thumb_func_start nullsub_313 +nullsub_313: @ 0x0804D2E0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D2E4 +sub_0804D2E4: @ 0x0804D2E4 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D2E8 +sub_0804D2E8: @ 0x0804D2E8 + push {lr} + movs r0, #0x32 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804D2FA + ldr r0, _0804D2FC @ =gUnk_080E693C + bl sub_0804ADDC +_0804D2FA: + pop {pc} + .align 2, 0 +_0804D2FC: .4byte gUnk_080E693C + + thumb_func_start sub_0804D300 +sub_0804D300: @ 0x0804D300 + movs r0, #1 + bx lr + + thumb_func_start nullsub_314 +nullsub_314: @ 0x0804D304 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D308 +sub_0804D308: @ 0x0804D308 + movs r0, #1 + bx lr + + thumb_func_start nullsub_315 +nullsub_315: @ 0x0804D30C + bx lr + .align 2, 0 + + thumb_func_start sub_0804D310 +sub_0804D310: @ 0x0804D310 + movs r0, #1 + bx lr + + thumb_func_start nullsub_316 +nullsub_316: @ 0x0804D314 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D318 +sub_0804D318: @ 0x0804D318 + movs r0, #1 + bx lr + + thumb_func_start nullsub_317 +nullsub_317: @ 0x0804D31C + bx lr + .align 2, 0 + + thumb_func_start sub_0804D320 +sub_0804D320: @ 0x0804D320 + movs r0, #1 + bx lr + + thumb_func_start nullsub_318 +nullsub_318: @ 0x0804D324 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D328 +sub_0804D328: @ 0x0804D328 + movs r0, #1 + bx lr + + thumb_func_start nullsub_319 +nullsub_319: @ 0x0804D32C + bx lr + .align 2, 0 + + thumb_func_start sub_0804D330 +sub_0804D330: @ 0x0804D330 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D334 +sub_0804D334: @ 0x0804D334 + push {lr} + bl sub_08054570 + pop {pc} + + thumb_func_start sub_0804D33C +sub_0804D33C: @ 0x0804D33C + movs r0, #1 + bx lr + + thumb_func_start sub_0804D340 +sub_0804D340: @ 0x0804D340 + push {lr} + ldr r0, _0804D374 @ =0x00000312 + movs r1, #0x84 + lsls r1, r1, #1 + movs r2, #1 + bl sub_0807B314 + bl sub_08054570 + movs r0, #0xc4 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804D362 + ldr r0, _0804D378 @ =gUnk_080E718C + bl sub_0804ADDC +_0804D362: + movs r0, #0xc5 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804D372 + ldr r0, _0804D37C @ =gUnk_080E71AC + bl sub_0804ADDC +_0804D372: + pop {pc} + .align 2, 0 +_0804D374: .4byte 0x00000312 +_0804D378: .4byte gUnk_080E718C +_0804D37C: .4byte gUnk_080E71AC + + thumb_func_start sub_0804D380 +sub_0804D380: @ 0x0804D380 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D384 +sub_0804D384: @ 0x0804D384 + push {lr} + movs r0, #0 + bl sub_0805AF60 + movs r0, #6 + bl sub_0807CC30 + cmp r0, #0 + beq _0804D39C + ldr r0, _0804D3B0 @ =gUnk_080E7314 + bl sub_0804ADDC +_0804D39C: + movs r0, #0x7b + bl sub_0807CBD0 + cmp r0, #0 + bne _0804D3B8 + ldr r0, _0804D3B4 @ =gUnk_080E72C4 + bl sub_0804ADDC + b _0804D3EA + .align 2, 0 +_0804D3B0: .4byte gUnk_080E7314 +_0804D3B4: .4byte gUnk_080E72C4 +_0804D3B8: + movs r0, #6 + bl sub_0807CD04 + movs r0, #0x43 + bl sub_0807CA84 + cmp r0, #0 + bne _0804D3EA + movs r0, #3 + bl sub_08078A90 + ldr r0, _0804D3EC @ =gUnk_080E72E4 + bl sub_0804ADDC + ldr r0, _0804D3F0 @ =gUnk_02033A90 + movs r2, #0x86 + lsls r2, r2, #4 + adds r1, r0, r2 + adds r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] + ldr r0, _0804D3F4 @ =0x80100000 + bl sub_080A3268 +_0804D3EA: + pop {pc} + .align 2, 0 +_0804D3EC: .4byte gUnk_080E72E4 +_0804D3F0: .4byte gUnk_02033A90 +_0804D3F4: .4byte 0x80100000 + + thumb_func_start sub_0804D3F8 +sub_0804D3F8: @ 0x0804D3F8 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D3FC +sub_0804D3FC: @ 0x0804D3FC + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D408 +sub_0804D408: @ 0x0804D408 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D40C +sub_0804D40C: @ 0x0804D40C + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D418 +sub_0804D418: @ 0x0804D418 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D41C +sub_0804D41C: @ 0x0804D41C + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D428 +sub_0804D428: @ 0x0804D428 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D42C +sub_0804D42C: @ 0x0804D42C + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D438 +sub_0804D438: @ 0x0804D438 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D43C +sub_0804D43C: @ 0x0804D43C + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D448 +sub_0804D448: @ 0x0804D448 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D44C +sub_0804D44C: @ 0x0804D44C + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D458 +sub_0804D458: @ 0x0804D458 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D45C +sub_0804D45C: @ 0x0804D45C + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D468 +sub_0804D468: @ 0x0804D468 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D46C +sub_0804D46C: @ 0x0804D46C + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D478 +sub_0804D478: @ 0x0804D478 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D47C +sub_0804D47C: @ 0x0804D47C + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D488 +sub_0804D488: @ 0x0804D488 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D48C +sub_0804D48C: @ 0x0804D48C + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D498 +sub_0804D498: @ 0x0804D498 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D49C +sub_0804D49C: @ 0x0804D49C + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D4A8 +sub_0804D4A8: @ 0x0804D4A8 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D4AC +sub_0804D4AC: @ 0x0804D4AC + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D4B8 +sub_0804D4B8: @ 0x0804D4B8 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D4BC +sub_0804D4BC: @ 0x0804D4BC + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D4C8 +sub_0804D4C8: @ 0x0804D4C8 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D4CC +sub_0804D4CC: @ 0x0804D4CC + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D4D8 +sub_0804D4D8: @ 0x0804D4D8 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D4DC +sub_0804D4DC: @ 0x0804D4DC + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D4E8 +sub_0804D4E8: @ 0x0804D4E8 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D4EC +sub_0804D4EC: @ 0x0804D4EC + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D4F8 +sub_0804D4F8: @ 0x0804D4F8 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D4FC +sub_0804D4FC: @ 0x0804D4FC + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D508 +sub_0804D508: @ 0x0804D508 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D50C +sub_0804D50C: @ 0x0804D50C + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D518 +sub_0804D518: @ 0x0804D518 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D51C +sub_0804D51C: @ 0x0804D51C + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D528 +sub_0804D528: @ 0x0804D528 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D52C +sub_0804D52C: @ 0x0804D52C + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D538 +sub_0804D538: @ 0x0804D538 + movs r0, #1 + bx lr + + thumb_func_start nullsub_59 +nullsub_59: @ 0x0804D53C + bx lr + .align 2, 0 + + thumb_func_start sub_0804D540 +sub_0804D540: @ 0x0804D540 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D544 +sub_0804D544: @ 0x0804D544 + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D550 +sub_0804D550: @ 0x0804D550 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D554 +sub_0804D554: @ 0x0804D554 + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D560 +sub_0804D560: @ 0x0804D560 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D564 +sub_0804D564: @ 0x0804D564 + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D570 +sub_0804D570: @ 0x0804D570 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D574 +sub_0804D574: @ 0x0804D574 + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D580 +sub_0804D580: @ 0x0804D580 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D584 +sub_0804D584: @ 0x0804D584 + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D590 +sub_0804D590: @ 0x0804D590 + movs r0, #1 + bx lr + + thumb_func_start nullsub_60 +nullsub_60: @ 0x0804D594 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D598 +sub_0804D598: @ 0x0804D598 + movs r0, #1 + bx lr + + thumb_func_start nullsub_61 +nullsub_61: @ 0x0804D59C + bx lr + .align 2, 0 + + thumb_func_start sub_0804D5A0 +sub_0804D5A0: @ 0x0804D5A0 + movs r0, #1 + bx lr + + thumb_func_start nullsub_62 +nullsub_62: @ 0x0804D5A4 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D5A8 +sub_0804D5A8: @ 0x0804D5A8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_63 +nullsub_63: @ 0x0804D5AC + bx lr + .align 2, 0 + + thumb_func_start sub_0804D5B0 +sub_0804D5B0: @ 0x0804D5B0 + movs r0, #1 + bx lr + + thumb_func_start nullsub_64 +nullsub_64: @ 0x0804D5B4 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D5B8 +sub_0804D5B8: @ 0x0804D5B8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_65 +nullsub_65: @ 0x0804D5BC + bx lr + .align 2, 0 + + thumb_func_start sub_0804D5C0 +sub_0804D5C0: @ 0x0804D5C0 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D5C4 +sub_0804D5C4: @ 0x0804D5C4 + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D5D0 +sub_0804D5D0: @ 0x0804D5D0 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D5D4 +sub_0804D5D4: @ 0x0804D5D4 + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D5E0 +sub_0804D5E0: @ 0x0804D5E0 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D5E4 +sub_0804D5E4: @ 0x0804D5E4 + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D5F0 +sub_0804D5F0: @ 0x0804D5F0 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D5F4 +sub_0804D5F4: @ 0x0804D5F4 + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D600 +sub_0804D600: @ 0x0804D600 + movs r0, #1 + bx lr + + thumb_func_start nullsub_66 +nullsub_66: @ 0x0804D604 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D608 +sub_0804D608: @ 0x0804D608 + movs r0, #1 + bx lr + + thumb_func_start nullsub_67 +nullsub_67: @ 0x0804D60C + bx lr + .align 2, 0 + + thumb_func_start sub_0804D610 +sub_0804D610: @ 0x0804D610 + movs r0, #1 + bx lr + + thumb_func_start nullsub_68 +nullsub_68: @ 0x0804D614 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D618 +sub_0804D618: @ 0x0804D618 + movs r0, #1 + bx lr + + thumb_func_start nullsub_69 +nullsub_69: @ 0x0804D61C + bx lr + .align 2, 0 + + thumb_func_start sub_0804D620 +sub_0804D620: @ 0x0804D620 + movs r0, #1 + bx lr + + thumb_func_start nullsub_70 +nullsub_70: @ 0x0804D624 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D628 +sub_0804D628: @ 0x0804D628 + movs r0, #1 + bx lr + + thumb_func_start nullsub_71 +nullsub_71: @ 0x0804D62C + bx lr + .align 2, 0 + + thumb_func_start sub_0804D630 +sub_0804D630: @ 0x0804D630 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D634 +sub_0804D634: @ 0x0804D634 + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D640 +sub_0804D640: @ 0x0804D640 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D644 +sub_0804D644: @ 0x0804D644 + push {lr} + movs r0, #0 + bl sub_0805AF60 + movs r0, #0x70 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804D65C + ldr r0, _0804D660 @ =gUnk_080EA09C + bl sub_0804ADDC +_0804D65C: + pop {pc} + .align 2, 0 +_0804D660: .4byte gUnk_080EA09C + + thumb_func_start sub_0804D664 +sub_0804D664: @ 0x0804D664 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D668 +sub_0804D668: @ 0x0804D668 + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D674 +sub_0804D674: @ 0x0804D674 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D678 +sub_0804D678: @ 0x0804D678 + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D684 +sub_0804D684: @ 0x0804D684 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D688 +sub_0804D688: @ 0x0804D688 + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D694 +sub_0804D694: @ 0x0804D694 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D698 +sub_0804D698: @ 0x0804D698 + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D6A4 +sub_0804D6A4: @ 0x0804D6A4 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D6A8 +sub_0804D6A8: @ 0x0804D6A8 + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D6B4 +sub_0804D6B4: @ 0x0804D6B4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_72 +nullsub_72: @ 0x0804D6B8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D6BC +sub_0804D6BC: @ 0x0804D6BC + movs r0, #1 + bx lr + + thumb_func_start nullsub_73 +nullsub_73: @ 0x0804D6C0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D6C4 +sub_0804D6C4: @ 0x0804D6C4 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D6C8 +sub_0804D6C8: @ 0x0804D6C8 + push {lr} + ldr r0, _0804D6E4 @ =0x80100000 + bl sub_080A3268 + ldr r0, _0804D6E8 @ =gUnk_02033A90 + movs r2, #0x86 + lsls r2, r2, #4 + adds r1, r0, r2 + adds r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] + pop {pc} + .align 2, 0 +_0804D6E4: .4byte 0x80100000 +_0804D6E8: .4byte gUnk_02033A90 + + thumb_func_start sub_0804D6EC +sub_0804D6EC: @ 0x0804D6EC + movs r0, #1 + bx lr + + thumb_func_start sub_0804D6F0 +sub_0804D6F0: @ 0x0804D6F0 + push {lr} + movs r0, #0 + bl sub_0805D3C8 + ldr r2, _0804D72C @ =gUnk_030010A0 + adds r0, r2, #0 + adds r0, #0x38 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0804D74C + adds r0, r2, #0 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #0 + beq _0804D74C + adds r0, r2, #0 + adds r0, #0x3c + ldrb r0, [r0] + cmp r0, #1 + bne _0804D734 + ldr r1, _0804D730 @ =gUnk_03001160 + adds r0, r2, #0 + adds r0, #0x48 + ldrh r0, [r0] + strh r0, [r1, #0x2e] + adds r0, r2, #0 + adds r0, #0x4a + b _0804D746 + .align 2, 0 +_0804D72C: .4byte gUnk_030010A0 +_0804D730: .4byte gUnk_03001160 +_0804D734: + cmp r0, #0 + bne _0804D74C + ldr r1, _0804D750 @ =gUnk_03001160 + adds r0, r2, #0 + adds r0, #0x44 + ldrh r0, [r0] + strh r0, [r1, #0x2e] + adds r0, r2, #0 + adds r0, #0x46 +_0804D746: + ldrh r0, [r0] + adds r0, #8 + strh r0, [r1, #0x32] +_0804D74C: + pop {pc} + .align 2, 0 +_0804D750: .4byte gUnk_03001160 + + thumb_func_start sub_0804D754 +sub_0804D754: @ 0x0804D754 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D758 +sub_0804D758: @ 0x0804D758 + push {lr} + movs r0, #6 + bl sub_0805B4D0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D764 +sub_0804D764: @ 0x0804D764 + movs r0, #1 + bx lr + + thumb_func_start nullsub_74 +nullsub_74: @ 0x0804D768 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D76C +sub_0804D76C: @ 0x0804D76C + movs r0, #1 + bx lr + + thumb_func_start nullsub_75 +nullsub_75: @ 0x0804D770 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D774 +sub_0804D774: @ 0x0804D774 + push {lr} + bl sub_080534AC + movs r0, #1 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D780 +sub_0804D780: @ 0x0804D780 + push {r4, r5, lr} + movs r0, #4 + bl sub_0805B4D0 + movs r0, #0x77 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804D7A0 + ldr r0, _0804D79C @ =gUnk_080EAD68 + bl sub_0804ADDC + b _0804D7D0 + .align 2, 0 +_0804D79C: .4byte gUnk_080EAD68 +_0804D7A0: + movs r0, #0x79 + bl sub_0807CBD0 + adds r5, r0, #0 + cmp r5, #0 + bne _0804D7D0 + ldr r0, _0804D7D4 @ =gUnk_080EADB8 + bl sub_0804ADDC + ldr r4, _0804D7D8 @ =0x00004072 + ldr r1, _0804D7DC @ =0x00000145 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804D7E0 @ =0x00000149 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r0, _0804D7E4 @ =gUnk_02033A90 + ldr r1, _0804D7E8 @ =0x00000864 + adds r0, r0, r1 + str r5, [r0] +_0804D7D0: + pop {r4, r5, pc} + .align 2, 0 +_0804D7D4: .4byte gUnk_080EADB8 +_0804D7D8: .4byte 0x00004072 +_0804D7DC: .4byte 0x00000145 +_0804D7E0: .4byte 0x00000149 +_0804D7E4: .4byte gUnk_02033A90 +_0804D7E8: .4byte 0x00000864 + + thumb_func_start sub_0804D7EC +sub_0804D7EC: @ 0x0804D7EC + push {r4, lr} + ldr r4, _0804D7F4 @ =gUnk_080EAE00 + b _0804D804 + .align 2, 0 +_0804D7F4: .4byte gUnk_080EAE00 +_0804D7F8: + ldrh r1, [r4] + adds r4, #2 + ldr r0, _0804D80C @ =0x00004072 + movs r2, #1 + bl sub_0807B314 +_0804D804: + ldrh r0, [r4] + cmp r0, #0 + bne _0804D7F8 + pop {r4, pc} + .align 2, 0 +_0804D80C: .4byte 0x00004072 + + thumb_func_start sub_0804D810 +sub_0804D810: @ 0x0804D810 + push {r4, lr} + ldr r4, _0804D818 @ =gUnk_080EAE00 + b _0804D826 + .align 2, 0 +_0804D818: .4byte gUnk_080EAE00 +_0804D81C: + ldrh r0, [r4] + adds r4, #2 + movs r1, #1 + bl sub_0807BA8C +_0804D826: + ldrh r0, [r4] + cmp r0, #0 + bne _0804D81C + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0804D830 +sub_0804D830: @ 0x0804D830 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D834 +sub_0804D834: @ 0x0804D834 + push {r4, lr} + ldr r4, _0804D86C @ =gUnk_02033A90 + movs r0, #0 + movs r1, #0x40 + strb r1, [r4] + strb r0, [r4, #1] + movs r0, #0x51 + bl sub_0807CC30 + cmp r0, #0 + beq _0804D894 + movs r0, #0x7f + bl sub_0807CBD0 + cmp r0, #0 + bne _0804D878 + ldr r0, _0804D870 @ =gUnk_080EAEC0 + bl sub_0804ADDC + movs r0, #0x7f + bl sub_0807CCB4 + ldr r0, _0804D874 @ =0x00000864 + adds r1, r4, r0 + movs r0, #0x11 + str r0, [r1] + b _0804D8BC + .align 2, 0 +_0804D86C: .4byte gUnk_02033A90 +_0804D870: .4byte gUnk_080EAEC0 +_0804D874: .4byte 0x00000864 +_0804D878: + ldr r0, _0804D88C @ =gUnk_080EAF20 + bl sub_0804ADDC + ldr r2, _0804D890 @ =0x00000864 + adds r1, r4, r2 + subs r2, #4 + adds r0, r4, r2 + ldr r0, [r0] + str r0, [r1] + b _0804D8BC + .align 2, 0 +_0804D88C: .4byte gUnk_080EAF20 +_0804D890: .4byte 0x00000864 +_0804D894: + movs r0, #0x79 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804D8AC + ldr r1, _0804D8C4 @ =0x00000864 + adds r0, r4, r1 + movs r2, #0x86 + lsls r2, r2, #4 + adds r1, r4, r2 + ldr r1, [r1] + str r1, [r0] +_0804D8AC: + movs r0, #1 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804D8BC + ldr r0, _0804D8C8 @ =gUnk_080EAE60 + bl sub_0804ADDC +_0804D8BC: + movs r0, #0x5d + bl sub_0807CD80 + pop {r4, pc} + .align 2, 0 +_0804D8C4: .4byte 0x00000864 +_0804D8C8: .4byte gUnk_080EAE60 + + thumb_func_start sub_0804D8CC +sub_0804D8CC: @ 0x0804D8CC + movs r0, #1 + bx lr + + thumb_func_start nullsub_320 +nullsub_320: @ 0x0804D8D0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D8D4 +sub_0804D8D4: @ 0x0804D8D4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_321 +nullsub_321: @ 0x0804D8D8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D8DC +sub_0804D8DC: @ 0x0804D8DC + movs r0, #1 + bx lr + + thumb_func_start nullsub_322 +nullsub_322: @ 0x0804D8E0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D8E4 +sub_0804D8E4: @ 0x0804D8E4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_323 +nullsub_323: @ 0x0804D8E8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D8EC +sub_0804D8EC: @ 0x0804D8EC + movs r0, #1 + bx lr + + thumb_func_start nullsub_324 +nullsub_324: @ 0x0804D8F0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D8F4 +sub_0804D8F4: @ 0x0804D8F4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_325 +nullsub_325: @ 0x0804D8F8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D8FC +sub_0804D8FC: @ 0x0804D8FC + movs r0, #1 + bx lr + + thumb_func_start nullsub_326 +nullsub_326: @ 0x0804D900 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D904 +sub_0804D904: @ 0x0804D904 + push {r4, r5, lr} + movs r0, #0x51 + bl sub_0807CC30 + adds r5, r0, #0 + cmp r5, #0 + beq _0804D93C + ldr r1, _0804D930 @ =gUnk_02034350 + ldr r0, _0804D934 @ =gUnk_080EB604 + str r0, [r1, #0x6c] + movs r0, #0 + str r0, [r1, #0x74] + ldr r0, _0804D938 @ =gUnk_02033A90 + movs r1, #0x86 + lsls r1, r1, #4 + adds r2, r0, r1 + adds r1, #4 + adds r0, r0, r1 + movs r1, #0x11 + str r1, [r0] + str r1, [r2] + b _0804D96A + .align 2, 0 +_0804D930: .4byte gUnk_02034350 +_0804D934: .4byte gUnk_080EB604 +_0804D938: .4byte gUnk_02033A90 +_0804D93C: + movs r0, #0x79 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804D96A + ldr r4, _0804D970 @ =gUnk_02034350 + str r5, [r4, #0x6c] + movs r0, #0x7a + bl sub_0807CBD0 + adds r5, r0, #0 + cmp r5, #0 + bne _0804D96A + movs r0, #0x1c + bl sub_0807CD04 + ldr r0, _0804D974 @ =gUnk_080EB5D4 + str r0, [r4, #0x6c] + adds r1, r4, #0 + adds r1, #0x88 + ldr r0, _0804D978 @ =sub_0804D9B0 + str r0, [r1] + str r5, [r4, #0x74] +_0804D96A: + movs r0, #1 + pop {r4, r5, pc} + .align 2, 0 +_0804D970: .4byte gUnk_02034350 +_0804D974: .4byte gUnk_080EB5D4 +_0804D978: .4byte sub_0804D9B0 + + thumb_func_start sub_0804D97C +sub_0804D97C: @ 0x0804D97C + push {lr} + movs r0, #0x51 + bl sub_0807CC30 + cmp r0, #0 + beq _0804D996 + ldr r0, _0804D9A8 @ =gUnk_02033A90 + ldr r2, _0804D9AC @ =0x00000864 + adds r1, r0, r2 + subs r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] +_0804D996: + movs r0, #0x79 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804D9A4 + bl sub_0804D9B0 +_0804D9A4: + pop {pc} + .align 2, 0 +_0804D9A8: .4byte gUnk_02033A90 +_0804D9AC: .4byte 0x00000864 + + thumb_func_start sub_0804D9B0 +sub_0804D9B0: @ 0x0804D9B0 + push {lr} + ldr r0, _0804D9EC @ =0x00000797 + movs r1, #1 + movs r2, #5 + movs r3, #1 + bl sub_0807BB98 + ldr r0, _0804D9F0 @ =0x00000357 + movs r1, #1 + movs r2, #5 + movs r3, #1 + bl sub_0807BB98 + ldr r0, _0804D9F4 @ =0x0000055F + movs r1, #1 + movs r2, #2 + movs r3, #1 + bl sub_0807BB98 + ldr r0, _0804D9F8 @ =gUnk_080EB684 + bl sub_0804ADDC + ldr r0, _0804D9FC @ =gUnk_02033A90 + ldr r2, _0804DA00 @ =0x00000864 + adds r1, r0, r2 + subs r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] + pop {pc} + .align 2, 0 +_0804D9EC: .4byte 0x00000797 +_0804D9F0: .4byte 0x00000357 +_0804D9F4: .4byte 0x0000055F +_0804D9F8: .4byte gUnk_080EB684 +_0804D9FC: .4byte gUnk_02033A90 +_0804DA00: .4byte 0x00000864 + + thumb_func_start sub_0804DA04 +sub_0804DA04: @ 0x0804DA04 + movs r0, #1 + bx lr + + thumb_func_start nullsub_327 +nullsub_327: @ 0x0804DA08 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DA0C +sub_0804DA0C: @ 0x0804DA0C + movs r0, #1 + bx lr + + thumb_func_start nullsub_328 +nullsub_328: @ 0x0804DA10 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DA14 +sub_0804DA14: @ 0x0804DA14 + movs r0, #1 + bx lr + + thumb_func_start nullsub_329 +nullsub_329: @ 0x0804DA18 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DA1C +sub_0804DA1C: @ 0x0804DA1C + movs r0, #1 + bx lr + + thumb_func_start nullsub_330 +nullsub_330: @ 0x0804DA20 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DA24 +sub_0804DA24: @ 0x0804DA24 + movs r0, #1 + bx lr + + thumb_func_start nullsub_331 +nullsub_331: @ 0x0804DA28 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DA2C +sub_0804DA2C: @ 0x0804DA2C + push {lr} + movs r0, #0x77 + bl sub_0807CBD0 + adds r1, r0, #0 + cmp r1, #0 + bne _0804DA40 + ldr r0, _0804DA44 @ =gUnk_02034350 + str r1, [r0, #0x6c] + str r1, [r0, #0x74] +_0804DA40: + movs r0, #1 + pop {pc} + .align 2, 0 +_0804DA44: .4byte gUnk_02034350 + + thumb_func_start sub_0804DA48 +sub_0804DA48: @ 0x0804DA48 + push {lr} + movs r0, #0x77 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804DA60 + ldr r0, _0804DA5C @ =gUnk_080EB9F4 + bl sub_0804ADDC + b _0804DA8C + .align 2, 0 +_0804DA5C: .4byte gUnk_080EB9F4 +_0804DA60: + movs r0, #0x78 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804DA76 + ldr r0, _0804DA90 @ =gUnk_080EBAA4 + bl sub_0804ADDC + movs r0, #0x75 + bl sub_0807CCB4 +_0804DA76: + movs r0, #0x7b + bl sub_0807CBD0 + cmp r0, #0 + beq _0804DA8C + ldr r0, _0804DA94 @ =gUnk_080EBAF4 + bl sub_0804ADDC + movs r0, #0x76 + bl sub_0807CCB4 +_0804DA8C: + pop {pc} + .align 2, 0 +_0804DA90: .4byte gUnk_080EBAA4 +_0804DA94: .4byte gUnk_080EBAF4 + + thumb_func_start sub_0804DA98 +sub_0804DA98: @ 0x0804DA98 + movs r0, #1 + bx lr + + thumb_func_start nullsub_332 +nullsub_332: @ 0x0804DA9C + bx lr + .align 2, 0 + + thumb_func_start sub_0804DAA0 +sub_0804DAA0: @ 0x0804DAA0 + movs r0, #1 + bx lr + + thumb_func_start nullsub_333 +nullsub_333: @ 0x0804DAA4 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DAA8 +sub_0804DAA8: @ 0x0804DAA8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_334 +nullsub_334: @ 0x0804DAAC + bx lr + .align 2, 0 + + thumb_func_start sub_0804DAB0 +sub_0804DAB0: @ 0x0804DAB0 + movs r0, #1 + bx lr + + thumb_func_start nullsub_335 +nullsub_335: @ 0x0804DAB4 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DAB8 +sub_0804DAB8: @ 0x0804DAB8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_336 +nullsub_336: @ 0x0804DABC + bx lr + .align 2, 0 + + thumb_func_start sub_0804DAC0 +sub_0804DAC0: @ 0x0804DAC0 + movs r0, #1 + bx lr + + thumb_func_start nullsub_337 +nullsub_337: @ 0x0804DAC4 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DAC8 +sub_0804DAC8: @ 0x0804DAC8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_338 +nullsub_338: @ 0x0804DACC + bx lr + .align 2, 0 + + thumb_func_start sub_0804DAD0 +sub_0804DAD0: @ 0x0804DAD0 + movs r0, #1 + bx lr + + thumb_func_start sub_0804DAD4 +sub_0804DAD4: @ 0x0804DAD4 + push {lr} + movs r0, #0x86 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804DAF0 + movs r0, #0x4c + bl sub_0807CBD0 + cmp r0, #0 + bne _0804DAF0 + ldr r0, _0804DAF4 @ =gUnk_080EC2CC + bl sub_0804ADDC +_0804DAF0: + pop {pc} + .align 2, 0 +_0804DAF4: .4byte gUnk_080EC2CC + + thumb_func_start sub_0804DAF8 +sub_0804DAF8: @ 0x0804DAF8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_339 +nullsub_339: @ 0x0804DAFC + bx lr + .align 2, 0 + + thumb_func_start sub_0804DB00 +sub_0804DB00: @ 0x0804DB00 + movs r0, #1 + bx lr + + thumb_func_start sub_0804DB04 +sub_0804DB04: @ 0x0804DB04 + push {lr} + movs r0, #0x86 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804DB20 + movs r0, #0x4d + bl sub_0807CBD0 + cmp r0, #0 + bne _0804DB20 + ldr r0, _0804DB24 @ =gUnk_080EC4E8 + bl sub_0804ADDC +_0804DB20: + pop {pc} + .align 2, 0 +_0804DB24: .4byte gUnk_080EC4E8 + + thumb_func_start sub_0804DB28 +sub_0804DB28: @ 0x0804DB28 + movs r0, #1 + bx lr + + thumb_func_start nullsub_340 +nullsub_340: @ 0x0804DB2C + bx lr + .align 2, 0 + + thumb_func_start sub_0804DB30 +sub_0804DB30: @ 0x0804DB30 + movs r0, #1 + bx lr + + thumb_func_start nullsub_341 +nullsub_341: @ 0x0804DB34 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DB38 +sub_0804DB38: @ 0x0804DB38 + movs r0, #1 + bx lr + + thumb_func_start sub_0804DB3C +sub_0804DB3C: @ 0x0804DB3C + push {lr} + movs r0, #0x86 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804DB58 + movs r0, #0x53 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804DB58 + ldr r0, _0804DB5C @ =gUnk_080EC820 + bl sub_0804ADDC +_0804DB58: + pop {pc} + .align 2, 0 +_0804DB5C: .4byte gUnk_080EC820 + + thumb_func_start sub_0804DB60 +sub_0804DB60: @ 0x0804DB60 + movs r0, #1 + bx lr + + thumb_func_start nullsub_342 +nullsub_342: @ 0x0804DB64 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DB68 +sub_0804DB68: @ 0x0804DB68 + movs r0, #1 + bx lr + + thumb_func_start sub_0804DB6C +sub_0804DB6C: @ 0x0804DB6C + push {lr} + movs r0, #0x86 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804DB88 + movs r0, #0x56 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804DB88 + ldr r0, _0804DB8C @ =gUnk_080ECA60 + bl sub_0804ADDC +_0804DB88: + pop {pc} + .align 2, 0 +_0804DB8C: .4byte gUnk_080ECA60 + + thumb_func_start sub_0804DB90 +sub_0804DB90: @ 0x0804DB90 + movs r0, #1 + bx lr + + thumb_func_start nullsub_343 +nullsub_343: @ 0x0804DB94 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DB98 +sub_0804DB98: @ 0x0804DB98 + movs r0, #1 + bx lr + + thumb_func_start nullsub_344 +nullsub_344: @ 0x0804DB9C + bx lr + .align 2, 0 + + thumb_func_start sub_0804DBA0 +sub_0804DBA0: @ 0x0804DBA0 + movs r0, #1 + bx lr + + thumb_func_start nullsub_345 +nullsub_345: @ 0x0804DBA4 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DBA8 +sub_0804DBA8: @ 0x0804DBA8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_346 +nullsub_346: @ 0x0804DBAC + bx lr + .align 2, 0 + + thumb_func_start sub_0804DBB0 +sub_0804DBB0: @ 0x0804DBB0 + movs r0, #1 + bx lr + + thumb_func_start nullsub_347 +nullsub_347: @ 0x0804DBB4 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DBB8 +sub_0804DBB8: @ 0x0804DBB8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_348 +nullsub_348: @ 0x0804DBBC + bx lr + .align 2, 0 + + thumb_func_start sub_0804DBC0 +sub_0804DBC0: @ 0x0804DBC0 + push {lr} + movs r0, #0x79 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804DBD2 + ldr r1, _0804DBD8 @ =gUnk_02034350 + movs r0, #0 + str r0, [r1, #0x74] +_0804DBD2: + movs r0, #1 + pop {pc} + .align 2, 0 +_0804DBD8: .4byte gUnk_02034350 + + thumb_func_start sub_0804DBDC +sub_0804DBDC: @ 0x0804DBDC + push {lr} + movs r0, #0x79 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804DC08 + movs r0, #0x90 + movs r1, #1 + movs r2, #1 + movs r3, #5 + bl sub_0807BB98 + ldr r0, _0804DC0C @ =gUnk_080ECFCC + bl sub_0804ADDC + ldr r0, _0804DC10 @ =gUnk_02033A90 + ldr r2, _0804DC14 @ =0x00000864 + adds r1, r0, r2 + subs r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] +_0804DC08: + pop {pc} + .align 2, 0 +_0804DC0C: .4byte gUnk_080ECFCC +_0804DC10: .4byte gUnk_02033A90 +_0804DC14: .4byte 0x00000864 + + thumb_func_start sub_0804DC18 +sub_0804DC18: @ 0x0804DC18 + movs r0, #1 + bx lr + + thumb_func_start nullsub_349 +nullsub_349: @ 0x0804DC1C + bx lr + .align 2, 0 + + thumb_func_start sub_0804DC20 +sub_0804DC20: @ 0x0804DC20 + movs r0, #1 + bx lr + + thumb_func_start nullsub_350 +nullsub_350: @ 0x0804DC24 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DC28 +sub_0804DC28: @ 0x0804DC28 + push {lr} + movs r0, #0x51 + bl sub_0807CC30 + cmp r0, #0 + beq _0804DC3E + ldr r0, _0804DC44 @ =gUnk_02034350 + ldr r1, _0804DC48 @ =gUnk_080ED1E4 + str r1, [r0, #0x6c] + movs r1, #0 + str r1, [r0, #0x74] +_0804DC3E: + movs r0, #1 + pop {pc} + .align 2, 0 +_0804DC44: .4byte gUnk_02034350 +_0804DC48: .4byte gUnk_080ED1E4 + + thumb_func_start sub_0804DC4C +sub_0804DC4C: @ 0x0804DC4C + push {lr} + movs r0, #0x51 + bl sub_0807CC30 + cmp r0, #0 + beq _0804DC66 + ldr r0, _0804DC68 @ =gUnk_02033A90 + ldr r2, _0804DC6C @ =0x00000864 + adds r1, r0, r2 + subs r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] +_0804DC66: + pop {pc} + .align 2, 0 +_0804DC68: .4byte gUnk_02033A90 +_0804DC6C: .4byte 0x00000864 + + thumb_func_start sub_0804DC70 +sub_0804DC70: @ 0x0804DC70 + movs r0, #1 + bx lr + + thumb_func_start nullsub_351 +nullsub_351: @ 0x0804DC74 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DC78 +sub_0804DC78: @ 0x0804DC78 + movs r0, #1 + bx lr + + thumb_func_start nullsub_352 +nullsub_352: @ 0x0804DC7C + bx lr + .align 2, 0 + + thumb_func_start sub_0804DC80 +sub_0804DC80: @ 0x0804DC80 + movs r0, #1 + bx lr + + thumb_func_start nullsub_353 +nullsub_353: @ 0x0804DC84 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DC88 +sub_0804DC88: @ 0x0804DC88 + movs r0, #1 + bx lr + + thumb_func_start nullsub_354 +nullsub_354: @ 0x0804DC8C + bx lr + .align 2, 0 + + thumb_func_start sub_0804DC90 +sub_0804DC90: @ 0x0804DC90 + movs r0, #1 + bx lr + + thumb_func_start nullsub_355 +nullsub_355: @ 0x0804DC94 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DC98 +sub_0804DC98: @ 0x0804DC98 + movs r0, #1 + bx lr + + thumb_func_start nullsub_356 +nullsub_356: @ 0x0804DC9C + bx lr + .align 2, 0 + + thumb_func_start sub_0804DCA0 +sub_0804DCA0: @ 0x0804DCA0 + movs r0, #1 + bx lr + + thumb_func_start nullsub_357 +nullsub_357: @ 0x0804DCA4 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DCA8 +sub_0804DCA8: @ 0x0804DCA8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_358 +nullsub_358: @ 0x0804DCAC + bx lr + .align 2, 0 + + thumb_func_start sub_0804DCB0 +sub_0804DCB0: @ 0x0804DCB0 + movs r0, #1 + bx lr + + thumb_func_start nullsub_359 +nullsub_359: @ 0x0804DCB4 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DCB8 +sub_0804DCB8: @ 0x0804DCB8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_360 +nullsub_360: @ 0x0804DCBC + bx lr + .align 2, 0 + + thumb_func_start sub_0804DCC0 +sub_0804DCC0: @ 0x0804DCC0 + movs r0, #1 + bx lr + + thumb_func_start nullsub_361 +nullsub_361: @ 0x0804DCC4 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DCC8 +sub_0804DCC8: @ 0x0804DCC8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_362 +nullsub_362: @ 0x0804DCCC + bx lr + .align 2, 0 + + thumb_func_start sub_0804DCD0 +sub_0804DCD0: @ 0x0804DCD0 + movs r0, #1 + bx lr + + thumb_func_start nullsub_363 +nullsub_363: @ 0x0804DCD4 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DCD8 +sub_0804DCD8: @ 0x0804DCD8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_364 +nullsub_364: @ 0x0804DCDC + bx lr + .align 2, 0 + + thumb_func_start sub_0804DCE0 +sub_0804DCE0: @ 0x0804DCE0 + movs r0, #1 + bx lr + + thumb_func_start nullsub_365 +nullsub_365: @ 0x0804DCE4 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DCE8 +sub_0804DCE8: @ 0x0804DCE8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_366 +nullsub_366: @ 0x0804DCEC + bx lr + .align 2, 0 + + thumb_func_start sub_0804DCF0 +sub_0804DCF0: @ 0x0804DCF0 + movs r0, #1 + bx lr + + thumb_func_start nullsub_367 +nullsub_367: @ 0x0804DCF4 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DCF8 +sub_0804DCF8: @ 0x0804DCF8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_368 +nullsub_368: @ 0x0804DCFC + bx lr + .align 2, 0 + + thumb_func_start sub_0804DD00 +sub_0804DD00: @ 0x0804DD00 + movs r0, #1 + bx lr + + thumb_func_start nullsub_369 +nullsub_369: @ 0x0804DD04 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DD08 +sub_0804DD08: @ 0x0804DD08 + movs r0, #1 + bx lr + + thumb_func_start nullsub_370 +nullsub_370: @ 0x0804DD0C + bx lr + .align 2, 0 + + thumb_func_start sub_0804DD10 +sub_0804DD10: @ 0x0804DD10 + movs r0, #1 + bx lr + + thumb_func_start nullsub_371 +nullsub_371: @ 0x0804DD14 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DD18 +sub_0804DD18: @ 0x0804DD18 + push {lr} + movs r0, #0x79 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804DD2C + ldr r1, _0804DD30 @ =gUnk_02034350 + movs r0, #0 + str r0, [r1, #0x74] + str r0, [r1, #0x6c] +_0804DD2C: + movs r0, #1 + pop {pc} + .align 2, 0 +_0804DD30: .4byte gUnk_02034350 + + thumb_func_start sub_0804DD34 +sub_0804DD34: @ 0x0804DD34 + push {lr} + movs r0, #0x79 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804DD60 + movs r0, #3 + movs r1, #2 + movs r2, #5 + movs r3, #1 + bl sub_0807BB98 + ldr r0, _0804DD64 @ =gUnk_080EE314 + bl sub_0804ADDC + ldr r0, _0804DD68 @ =gUnk_02033A90 + ldr r2, _0804DD6C @ =0x00000864 + adds r1, r0, r2 + subs r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] +_0804DD60: + pop {pc} + .align 2, 0 +_0804DD64: .4byte gUnk_080EE314 +_0804DD68: .4byte gUnk_02033A90 +_0804DD6C: .4byte 0x00000864 + + thumb_func_start sub_0804DD70 +sub_0804DD70: @ 0x0804DD70 + movs r0, #1 + bx lr + + thumb_func_start nullsub_372 +nullsub_372: @ 0x0804DD74 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DD78 +sub_0804DD78: @ 0x0804DD78 + push {lr} + movs r0, #0x79 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804DD8A + ldr r1, _0804DD90 @ =gUnk_02034350 + movs r0, #0 + str r0, [r1, #0x74] +_0804DD8A: + movs r0, #1 + pop {pc} + .align 2, 0 +_0804DD90: .4byte gUnk_02034350 + + thumb_func_start sub_0804DD94 +sub_0804DD94: @ 0x0804DD94 + push {lr} + movs r0, #0x79 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804DDC0 + ldr r0, _0804DDC4 @ =0x00000392 + movs r1, #2 + movs r2, #2 + movs r3, #5 + bl sub_0807BB98 + ldr r0, _0804DDC8 @ =gUnk_080EE5DC + bl sub_0804ADDC + ldr r0, _0804DDCC @ =gUnk_02033A90 + ldr r2, _0804DDD0 @ =0x00000864 + adds r1, r0, r2 + subs r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] +_0804DDC0: + pop {pc} + .align 2, 0 +_0804DDC4: .4byte 0x00000392 +_0804DDC8: .4byte gUnk_080EE5DC +_0804DDCC: .4byte gUnk_02033A90 +_0804DDD0: .4byte 0x00000864 + + thumb_func_start sub_0804DDD4 +sub_0804DDD4: @ 0x0804DDD4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_373 +nullsub_373: @ 0x0804DDD8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DDDC +sub_0804DDDC: @ 0x0804DDDC + movs r0, #1 + bx lr + + thumb_func_start sub_0804DDE0 +sub_0804DDE0: @ 0x0804DDE0 + push {lr} + movs r0, #1 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804DDF2 + ldr r0, _0804DDF4 @ =gUnk_080EE71C + bl sub_0804ADDC +_0804DDF2: + pop {pc} + .align 2, 0 +_0804DDF4: .4byte gUnk_080EE71C + + thumb_func_start sub_0804DDF8 +sub_0804DDF8: @ 0x0804DDF8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_374 +nullsub_374: @ 0x0804DDFC + bx lr + .align 2, 0 + + thumb_func_start sub_0804DE00 +sub_0804DE00: @ 0x0804DE00 + push {r4, r5, r6, lr} + bl sub_080530C8 + movs r0, #0xb + bl sub_0801E7F4 + cmp r0, #0 + beq _0804DE32 + movs r0, #0x19 + bl sub_0807CC30 + cmp r0, #0 + bne _0804DE22 + movs r0, #0x19 + bl sub_0807CD04 + b _0804DE32 +_0804DE22: + movs r0, #0x18 + bl sub_0807CC30 + cmp r0, #0 + bne _0804DE32 + movs r0, #0x18 + bl sub_0807CD04 +_0804DE32: + ldr r5, _0804DE50 @ =gUnk_080D4250 + ldr r4, _0804DE54 @ =gUnk_02002A40 + ldrb r0, [r4, #8] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r0, [r0] + bl sub_0804AFB0 + ldrb r0, [r4, #8] + cmp r0, #1 + beq _0804DE5C + ldr r1, _0804DE58 @ =gUnk_02017654 + ldr r0, [r5] + str r0, [r1] + b _0804DECC + .align 2, 0 +_0804DE50: .4byte gUnk_080D4250 +_0804DE54: .4byte gUnk_02002A40 +_0804DE58: .4byte gUnk_02017654 +_0804DE5C: + movs r0, #0x1c + bl sub_0807CD04 + ldr r4, _0804DEB4 @ =gUnk_02033A90 + ldr r0, _0804DEB8 @ =0x0000085C + adds r4, r4, r0 + ldr r0, [r4] + ldrh r5, [r0, #4] + ldrh r6, [r0, #6] + ldr r1, _0804DEBC @ =gUnk_03000BF0 + movs r2, #0 + movs r0, #0x15 + strb r0, [r1, #4] + strb r2, [r1, #5] + bl sub_08052CFC + ldr r0, [r4] + movs r1, #0x98 + lsls r1, r1, #1 + adds r5, r5, r1 + strh r5, [r0, #4] + ldr r0, [r4] + strh r6, [r0, #6] + ldr r1, _0804DEC0 @ =gUnk_030010A0 + ldr r0, [r4] + ldrh r0, [r0] + lsrs r0, r0, #1 + strh r0, [r1, #0x10] + bl sub_08052EA0 + bl sub_0804AF90 + movs r0, #0xcd + bl sub_0807CBD0 + cmp r0, #0 + bne _0804DEC4 + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #7 + bl sub_08050054 + b _0804DECC + .align 2, 0 +_0804DEB4: .4byte gUnk_02033A90 +_0804DEB8: .4byte 0x0000085C +_0804DEBC: .4byte gUnk_03000BF0 +_0804DEC0: .4byte gUnk_030010A0 +_0804DEC4: + movs r0, #6 + movs r1, #0x10 + bl sub_08050054 +_0804DECC: + movs r0, #1 + pop {r4, r5, r6, pc} + + thumb_func_start sub_0804DED0 +sub_0804DED0: @ 0x0804DED0 + push {r4, lr} + bl sub_08054570 + bl sub_08059D18 + movs r0, #0xbb + lsls r0, r0, #1 + ldr r1, _0804DEF8 @ =0x0000066B + movs r2, #1 + bl sub_0807B314 + ldr r0, _0804DEFC @ =gUnk_02002A40 + ldrb r0, [r0, #8] + cmp r0, #1 + bne _0804DF00 + movs r0, #0 + bl sub_0801D000 + b _0804E112 + .align 2, 0 +_0804DEF8: .4byte 0x0000066B +_0804DEFC: .4byte gUnk_02002A40 +_0804DF00: + ldr r0, _0804DF7C @ =0x00000DB4 + bl sub_08018C58 + movs r4, #0x80 + lsls r4, r4, #2 + adds r0, r4, #0 + movs r1, #0x84 + bl sub_0807CB10 + cmp r0, #0 + bne _0804DF1C + ldr r0, _0804DF80 @ =gUnk_080EEB6C + bl sub_0804ADDC +_0804DF1C: + adds r0, r4, #0 + movs r1, #0x85 + bl sub_0807CB10 + cmp r0, #0 + bne _0804DF2E + ldr r0, _0804DF84 @ =gUnk_080EEB8C + bl sub_0804ADDC +_0804DF2E: + movs r0, #0x67 + bl sub_0807CA84 + cmp r0, #0 + bne _0804DF48 + movs r0, #2 + bl sub_0807CC30 + cmp r0, #0 + beq _0804DF48 + ldr r0, _0804DF88 @ =gUnk_080EE88C + bl sub_0804ADDC +_0804DF48: + movs r0, #0x28 + bl sub_0801E7F4 + cmp r0, #0 + bne _0804DF58 + ldr r0, _0804DF8C @ =gUnk_080EE8FC + bl sub_0804ADDC +_0804DF58: + movs r0, #0x33 + bl sub_0801E7F4 + cmp r0, #0 + beq _0804DF68 + ldr r0, _0804DF90 @ =gUnk_080EE91C + bl sub_0804ADDC +_0804DF68: + movs r0, #0x12 + bl sub_0807CC30 + cmp r0, #0 + beq _0804DF98 + ldr r0, _0804DF94 @ =gUnk_080EE93C + bl sub_0804ADDC + b _0804DF9E + .align 2, 0 +_0804DF7C: .4byte 0x00000DB4 +_0804DF80: .4byte gUnk_080EEB6C +_0804DF84: .4byte gUnk_080EEB8C +_0804DF88: .4byte gUnk_080EE88C +_0804DF8C: .4byte gUnk_080EE8FC +_0804DF90: .4byte gUnk_080EE91C +_0804DF94: .4byte gUnk_080EE93C +_0804DF98: + ldr r0, _0804DFF4 @ =gUnk_080EECBC + bl sub_0804ADDC +_0804DF9E: + movs r0, #0x1b + bl sub_0801E7F4 + cmp r0, #0 + beq _0804E02A + ldr r0, _0804DFF8 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + cmp r0, #3 + bls _0804E02A + movs r0, #0x2e + bl sub_0807CC30 + cmp r0, #0 + bne _0804E024 + movs r0, #0x2f + bl sub_0807CC30 + cmp r0, #0 + bne _0804E024 + movs r0, #0x30 + bl sub_0807CC30 + cmp r0, #0 + bne _0804E024 + movs r0, #0x2b + bl sub_0807CC30 + cmp r0, #0 + bne _0804E000 + movs r0, #0x2c + bl sub_0807CC30 + cmp r0, #0 + bne _0804E000 + movs r0, #0x2d + bl sub_0807CC30 + cmp r0, #0 + bne _0804E000 + ldr r0, _0804DFFC @ =gUnk_080EE95C + bl sub_0804ADDC + b _0804E02A + .align 2, 0 +_0804DFF4: .4byte gUnk_080EECBC +_0804DFF8: .4byte gUnk_02002A40 +_0804DFFC: .4byte gUnk_080EE95C +_0804E000: + movs r0, #0x18 + bl sub_0807CC30 + cmp r0, #0 + bne _0804E018 + ldr r0, _0804E014 @ =gUnk_080EE97C + bl sub_0804ADDC + b _0804E02A + .align 2, 0 +_0804E014: .4byte gUnk_080EE97C +_0804E018: + ldr r0, _0804E020 @ =gUnk_080EE9BC + bl sub_0804ADDC + b _0804E02A + .align 2, 0 +_0804E020: .4byte gUnk_080EE9BC +_0804E024: + ldr r0, _0804E03C @ =gUnk_080EE99C + bl sub_0804ADDC +_0804E02A: + movs r0, #0x2b + bl sub_0807CC30 + cmp r0, #0 + beq _0804E044 + ldr r0, _0804E040 @ =gUnk_080EE9FC + bl sub_0804ADDC + b _0804E07A + .align 2, 0 +_0804E03C: .4byte gUnk_080EE99C +_0804E040: .4byte gUnk_080EE9FC +_0804E044: + movs r0, #0x2c + bl sub_0807CC30 + cmp r0, #0 + beq _0804E05C + ldr r0, _0804E058 @ =gUnk_080EEA1C + bl sub_0804ADDC + b _0804E07A + .align 2, 0 +_0804E058: .4byte gUnk_080EEA1C +_0804E05C: + movs r0, #0x2d + bl sub_0807CC30 + cmp r0, #0 + beq _0804E074 + ldr r0, _0804E070 @ =gUnk_080EEA3C + bl sub_0804ADDC + b _0804E07A + .align 2, 0 +_0804E070: .4byte gUnk_080EEA3C +_0804E074: + ldr r0, _0804E114 @ =gUnk_080EE9DC + bl sub_0804ADDC +_0804E07A: + ldr r0, _0804E118 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + cmp r0, #4 + bls _0804E0B0 + movs r0, #0xb + bl sub_0801E7F4 + cmp r0, #0 + bne _0804E0B0 + movs r0, #0x2b + bl sub_0807CC30 + cmp r0, #0 + bne _0804E0AA + movs r0, #0x2c + bl sub_0807CC30 + cmp r0, #0 + bne _0804E0AA + movs r0, #0x2d + bl sub_0807CC30 + cmp r0, #0 + beq _0804E0B0 +_0804E0AA: + ldr r0, _0804E11C @ =gUnk_080EEA5C + bl sub_0804ADDC +_0804E0B0: + movs r0, #0xd0 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804E0CA + movs r0, #0x14 + bl sub_0807CA84 + cmp r0, #0 + beq _0804E0CA + ldr r0, _0804E120 @ =gUnk_080EEABC + bl sub_0804ADDC +_0804E0CA: + ldr r0, _0804E118 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + cmp r0, #3 + bls _0804E0E2 + movs r0, #0x1d + bl sub_0807CC30 + cmp r0, #0 + beq _0804E0E2 + ldr r0, _0804E124 @ =gUnk_080EEA7C + bl sub_0804ADDC +_0804E0E2: + ldr r0, _0804E118 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + cmp r0, #5 + bhi _0804E0FA + movs r0, #0x29 + bl sub_0807CC30 + cmp r0, #0 + bne _0804E0FA + ldr r0, _0804E128 @ =gUnk_080EEA9C + bl sub_0804ADDC +_0804E0FA: + ldr r0, _0804E118 @ =gUnk_02002A40 + ldr r0, [r0, #0x40] + movs r1, #0x80 + lsls r1, r1, #0x14 + ands r0, r1 + cmp r0, #0 + bne _0804E10E + ldr r0, _0804E12C @ =gUnk_080EEBAC + bl sub_0804ADDC +_0804E10E: + bl sub_0804E150 +_0804E112: + pop {r4, pc} + .align 2, 0 +_0804E114: .4byte gUnk_080EE9DC +_0804E118: .4byte gUnk_02002A40 +_0804E11C: .4byte gUnk_080EEA5C +_0804E120: .4byte gUnk_080EEABC +_0804E124: .4byte gUnk_080EEA7C +_0804E128: .4byte gUnk_080EEA9C +_0804E12C: .4byte gUnk_080EEBAC + + thumb_func_start sub_0804E130 +sub_0804E130: @ 0x0804E130 + push {lr} + ldr r0, _0804E148 @ =gUnk_02002A40 + ldr r0, [r0, #0x40] + movs r1, #0x80 + lsls r1, r1, #0x14 + ands r0, r1 + cmp r0, #0 + bne _0804E146 + ldr r0, _0804E14C @ =gUnk_080EEBAC + bl sub_0804ADDC +_0804E146: + pop {pc} + .align 2, 0 +_0804E148: .4byte gUnk_02002A40 +_0804E14C: .4byte gUnk_080EEBAC + + thumb_func_start sub_0804E150 +sub_0804E150: @ 0x0804E150 + push {r4, r5, lr} + ldr r4, _0804E160 @ =gUnk_080EED2C + ldr r0, _0804E164 @ =gUnk_02002A40 + movs r5, #1 + ldrb r0, [r0, #8] + lsls r5, r0 + b _0804E17C + .align 2, 0 +_0804E160: .4byte gUnk_080EED2C +_0804E164: .4byte gUnk_02002A40 +_0804E168: + ldrh r0, [r4] + ands r0, r5 + cmp r0, #0 + beq _0804E17A + ldrh r0, [r4, #4] + ldrh r1, [r4, #2] + movs r2, #1 + bl sub_0800015E +_0804E17A: + adds r4, #6 +_0804E17C: + ldrh r0, [r4, #2] + cmp r0, #0 + bne _0804E168 + movs r0, #0xd1 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804E1BA + ldr r4, _0804E198 @ =gUnk_080EED7A + ldr r0, _0804E19C @ =gUnk_02002A40 + movs r5, #1 + ldrb r0, [r0, #8] + lsls r5, r0 + b _0804E1B4 + .align 2, 0 +_0804E198: .4byte gUnk_080EED7A +_0804E19C: .4byte gUnk_02002A40 +_0804E1A0: + ldrh r0, [r4] + ands r0, r5 + cmp r0, #0 + beq _0804E1B2 + ldrh r0, [r4, #4] + ldrh r1, [r4, #2] + movs r2, #1 + bl sub_0800015E +_0804E1B2: + adds r4, #6 +_0804E1B4: + ldrh r0, [r4] + cmp r0, #0 + bne _0804E1A0 +_0804E1BA: + movs r0, #0x29 + bl sub_0807CC30 + cmp r0, #0 + bne _0804E1F2 + ldr r4, _0804E1D0 @ =gUnk_080EED8C + ldr r0, _0804E1D4 @ =gUnk_02002A40 + movs r5, #1 + ldrb r0, [r0, #8] + lsls r5, r0 + b _0804E1EC + .align 2, 0 +_0804E1D0: .4byte gUnk_080EED8C +_0804E1D4: .4byte gUnk_02002A40 +_0804E1D8: + ldrh r0, [r4] + ands r0, r5 + cmp r0, #0 + beq _0804E1EA + ldrh r0, [r4, #4] + ldrh r1, [r4, #2] + movs r2, #1 + bl sub_0800015E +_0804E1EA: + adds r4, #6 +_0804E1EC: + ldrh r0, [r4] + cmp r0, #0 + bne _0804E1D8 +_0804E1F2: + pop {r4, r5, pc} + + thumb_func_start sub_0804E1F4 +sub_0804E1F4: @ 0x0804E1F4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_76 +nullsub_76: @ 0x0804E1F8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804E1FC +sub_0804E1FC: @ 0x0804E1FC + movs r0, #1 + bx lr + + thumb_func_start nullsub_77 +nullsub_77: @ 0x0804E200 + bx lr + .align 2, 0 + + thumb_func_start sub_0804E204 +sub_0804E204: @ 0x0804E204 + movs r0, #1 + bx lr + + thumb_func_start nullsub_78 +nullsub_78: @ 0x0804E208 + bx lr + .align 2, 0 + + thumb_func_start sub_0804E20C +sub_0804E20C: @ 0x0804E20C + movs r0, #1 + bx lr + + thumb_func_start nullsub_79 +nullsub_79: @ 0x0804E210 + bx lr + .align 2, 0 + + thumb_func_start sub_0804E214 +sub_0804E214: @ 0x0804E214 + movs r0, #1 + bx lr + + thumb_func_start nullsub_080 +nullsub_080: @ 0x0804E218 + bx lr + .align 2, 0 + + thumb_func_start sub_0804E21C +sub_0804E21C: @ 0x0804E21C + movs r0, #1 + bx lr + + thumb_func_start nullsub_081 +nullsub_081: @ 0x0804E220 + bx lr + .align 2, 0 + + thumb_func_start sub_0804E224 +sub_0804E224: @ 0x0804E224 + movs r0, #1 + bx lr + + thumb_func_start nullsub_082 +nullsub_082: @ 0x0804E228 + bx lr + .align 2, 0 + + thumb_func_start sub_0804E22C +sub_0804E22C: @ 0x0804E22C + movs r0, #1 + bx lr + + thumb_func_start nullsub_083 +nullsub_083: @ 0x0804E230 + bx lr + .align 2, 0 + + thumb_func_start sub_0804E234 +sub_0804E234: @ 0x0804E234 + movs r0, #1 + bx lr + + thumb_func_start nullsub_084 +nullsub_084: @ 0x0804E238 + bx lr + .align 2, 0 + + thumb_func_start sub_0804E23C +sub_0804E23C: @ 0x0804E23C + movs r0, #1 + bx lr + + thumb_func_start nullsub_085 +nullsub_085: @ 0x0804E240 + bx lr + .align 2, 0 + + thumb_func_start sub_0804E244 +sub_0804E244: @ 0x0804E244 + movs r0, #1 + bx lr + + thumb_func_start nullsub_086 +nullsub_086: @ 0x0804E248 + bx lr + .align 2, 0 + + thumb_func_start sub_0804E24C +sub_0804E24C: @ 0x0804E24C + movs r0, #1 + bx lr + + thumb_func_start nullsub_087 +nullsub_087: @ 0x0804E250 + bx lr + .align 2, 0 + + thumb_func_start sub_0804E254 +sub_0804E254: @ 0x0804E254 + movs r0, #1 + bx lr + + thumb_func_start nullsub_088 +nullsub_088: @ 0x0804E258 + bx lr + .align 2, 0 + + thumb_func_start sub_0804E25C +sub_0804E25C: @ 0x0804E25C + push {lr} + movs r0, #6 + bl sub_0807CA84 + cmp r0, #0 + beq _0804E26E + ldr r1, _0804E274 @ =gUnk_02034350 + ldr r0, _0804E278 @ =gUnk_080F09A0 + str r0, [r1, #0x70] +_0804E26E: + movs r0, #1 + pop {pc} + .align 2, 0 +_0804E274: .4byte gUnk_02034350 +_0804E278: .4byte gUnk_080F09A0 + + thumb_func_start sub_0804E27C +sub_0804E27C: @ 0x0804E27C + push {r4, lr} + movs r0, #0x15 + bl sub_0807CC30 + cmp r0, #0 + bne _0804E2AC + ldr r0, _0804E2A0 @ =gUnk_080F0650 + bl sub_0804ADDC + ldr r0, _0804E2A4 @ =gUnk_02033A90 + ldr r1, _0804E2A8 @ =0x00000864 + adds r0, r0, r1 + movs r1, #0x13 + str r1, [r0] + movs r0, #0x64 + bl sub_0807CD04 + b _0804E2C0 + .align 2, 0 +_0804E2A0: .4byte gUnk_080F0650 +_0804E2A4: .4byte gUnk_02033A90 +_0804E2A8: .4byte 0x00000864 +_0804E2AC: + movs r0, #0x64 + bl sub_0807CC30 + cmp r0, #0 + beq _0804E2C0 + ldr r0, _0804E300 @ =gUnk_02033A90 + ldr r1, _0804E304 @ =0x00000864 + adds r0, r0, r1 + movs r1, #0x1b + str r1, [r0] +_0804E2C0: + movs r0, #0x9c + bl sub_0807CBD0 + cmp r0, #0 + bne _0804E318 + ldr r0, _0804E308 @ =gUnk_080F0800 + bl sub_0804ADDC + ldr r4, _0804E30C @ =0x00004072 + movs r1, #0x96 + lsls r1, r1, #2 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + movs r1, #0xa6 + lsls r1, r1, #2 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804E310 @ =0x00000266 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804E314 @ =0x000002A6 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + b _0804E3A6 + .align 2, 0 +_0804E300: .4byte gUnk_02033A90 +_0804E304: .4byte 0x00000864 +_0804E308: .4byte gUnk_080F0800 +_0804E30C: .4byte 0x00004072 +_0804E310: .4byte 0x00000266 +_0804E314: .4byte 0x000002A6 +_0804E318: + movs r0, #6 + bl sub_0807CA84 + cmp r0, #0 + bne _0804E348 + ldr r0, _0804E360 @ =gUnk_080F08F0 + bl sub_0804ADDC + ldr r4, _0804E364 @ =0x00004072 + adds r0, r4, #0 + movs r1, #0x9e + movs r2, #1 + bl sub_0807B314 + adds r0, r4, #0 + movs r1, #0x9f + movs r2, #1 + bl sub_0807B314 + adds r0, r4, #0 + movs r1, #0xa0 + movs r2, #1 + bl sub_0807B314 +_0804E348: + ldr r0, _0804E368 @ =gUnk_080F0850 + bl sub_0804ADDC + movs r0, #0x42 + bl sub_0807CA84 + cmp r0, #0 + bne _0804E370 + ldr r0, _0804E36C @ =gUnk_080F0870 + bl sub_0804ADDC + b _0804E376 + .align 2, 0 +_0804E360: .4byte gUnk_080F08F0 +_0804E364: .4byte 0x00004072 +_0804E368: .4byte gUnk_080F0850 +_0804E36C: .4byte gUnk_080F0870 +_0804E370: + ldr r0, _0804E3AC @ =gUnk_080F0890 + bl sub_0804ADDC +_0804E376: + ldr r4, _0804E3B0 @ =0x00004072 + movs r1, #0x96 + lsls r1, r1, #2 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + movs r1, #0xa6 + lsls r1, r1, #2 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + movs r0, #0x10 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804E3A6 + ldr r0, _0804E3B4 @ =gUnk_080F0920 + bl sub_0804ADDC + movs r0, #0x10 + bl sub_0807CD34 +_0804E3A6: + bl sub_080AF284 + pop {r4, pc} + .align 2, 0 +_0804E3AC: .4byte gUnk_080F0890 +_0804E3B0: .4byte 0x00004072 +_0804E3B4: .4byte gUnk_080F0920 + + thumb_func_start sub_0804E3B8 +sub_0804E3B8: @ 0x0804E3B8 + push {lr} + movs r0, #1 + bl sub_0807CD34 + movs r0, #1 + pop {pc} + + thumb_func_start sub_0804E3C4 +sub_0804E3C4: @ 0x0804E3C4 + push {r4, r5, r6, lr} + movs r0, #5 + bl sub_0807CC30 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r6, r1, #0x1f + movs r0, #6 + bl sub_0807CC30 + cmp r0, #0 + beq _0804E3DE + movs r6, #2 +_0804E3DE: + movs r0, #0x55 + bl sub_0807CC30 + cmp r0, #0 + beq _0804E3EA + movs r6, #3 +_0804E3EA: + bl sub_08000E50 + adds r4, r0, #0 + ldr r1, _0804E448 @ =gUnk_080F0D58 + lsls r0, r6, #2 + adds r0, r0, r1 + movs r5, #0x1f + adds r1, r4, #0 + ands r1, r5 + ldr r0, [r0] + adds r0, r0, r1 + ldrb r6, [r0] + ldr r1, _0804E44C @ =gUnk_080F0CB8 + movs r0, #0xf + ands r0, r6 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl sub_0804ADDC + lsrs r6, r6, #4 + lsrs r4, r4, #8 + ldr r1, _0804E450 @ =gUnk_080F0E08 + lsls r0, r6, #2 + adds r0, r0, r1 + ands r4, r5 + ldr r0, [r0] + adds r0, r0, r4 + ldrb r6, [r0] + movs r0, #0xc6 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804E436 + movs r0, #0xc6 + bl sub_0807CCB4 + movs r6, #0xe +_0804E436: + lsls r0, r6, #3 + ldr r1, _0804E454 @ =gUnk_080F0E1C + adds r0, r0, r1 + bl sub_0804B3C4 + ldr r0, _0804E458 @ =0x80100000 + bl sub_080A3268 + pop {r4, r5, r6, pc} + .align 2, 0 +_0804E448: .4byte gUnk_080F0D58 +_0804E44C: .4byte gUnk_080F0CB8 +_0804E450: .4byte gUnk_080F0E08 +_0804E454: .4byte gUnk_080F0E1C +_0804E458: .4byte 0x80100000 + + thumb_func_start sub_0804E45C +sub_0804E45C: @ 0x0804E45C + movs r0, #1 + bx lr + + thumb_func_start sub_0804E460 +sub_0804E460: @ 0x0804E460 + push {lr} + movs r0, #0x4a + bl sub_0807CC30 + cmp r0, #0 + bne _0804E478 + ldr r0, _0804E474 @ =gUnk_080F1C68 + bl sub_0804ADDC + b _0804E47E + .align 2, 0 +_0804E474: .4byte gUnk_080F1C68 +_0804E478: + ldr r0, _0804E480 @ =gUnk_080F1C88 + bl sub_0804ADDC +_0804E47E: + pop {pc} + .align 2, 0 +_0804E480: .4byte gUnk_080F1C88 + + thumb_func_start sub_0804E484 +sub_0804E484: @ 0x0804E484 + movs r0, #1 + bx lr + + thumb_func_start sub_0804E488 +sub_0804E488: @ 0x0804E488 + push {lr} + movs r0, #0x2e + bl sub_0807CC30 + cmp r0, #0 + beq _0804E4A0 + ldr r0, _0804E49C @ =gUnk_080F1D90 + bl sub_0804ADDC + b _0804E4C8 + .align 2, 0 +_0804E49C: .4byte gUnk_080F1D90 +_0804E4A0: + movs r0, #0x2f + bl sub_0807CC30 + cmp r0, #0 + beq _0804E4B8 + ldr r0, _0804E4B4 @ =gUnk_080F1DB0 + bl sub_0804ADDC + b _0804E4C8 + .align 2, 0 +_0804E4B4: .4byte gUnk_080F1DB0 +_0804E4B8: + movs r0, #0x30 + bl sub_0807CC30 + cmp r0, #0 + beq _0804E4C8 + ldr r0, _0804E4CC @ =gUnk_080F1DD0 + bl sub_0804ADDC +_0804E4C8: + pop {pc} + .align 2, 0 +_0804E4CC: .4byte gUnk_080F1DD0 + + thumb_func_start sub_0804E4D0 +sub_0804E4D0: @ 0x0804E4D0 + movs r0, #1 + bx lr + + thumb_func_start nullsub_375 +nullsub_375: @ 0x0804E4D4 + bx lr + .align 2, 0 + + thumb_func_start sub_0804E4D8 +sub_0804E4D8: @ 0x0804E4D8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_376 +nullsub_376: @ 0x0804E4DC + bx lr + .align 2, 0 + + thumb_func_start sub_0804E4E0 +sub_0804E4E0: @ 0x0804E4E0 + movs r0, #1 + bx lr + + thumb_func_start sub_0804E4E4 +sub_0804E4E4: @ 0x0804E4E4 + push {lr} + ldr r0, _0804E518 @ =gUnk_080F2174 + bl sub_0804ADDC + movs r0, #0x3a + bl sub_0807CA84 + cmp r0, #0 + bne _0804E506 + movs r0, #0x2a + bl sub_0807CC30 + cmp r0, #0 + beq _0804E506 + ldr r0, _0804E51C @ =gUnk_080F2194 + bl sub_0804ADDC +_0804E506: + ldr r0, _0804E520 @ =gUnk_030010A0 + ldrb r0, [r0, #0xf] + cmp r0, #1 + bne _0804E514 + ldr r0, _0804E524 @ =gUnk_080F21B4 + bl sub_0804ADDC +_0804E514: + pop {pc} + .align 2, 0 +_0804E518: .4byte gUnk_080F2174 +_0804E51C: .4byte gUnk_080F2194 +_0804E520: .4byte gUnk_030010A0 +_0804E524: .4byte gUnk_080F21B4 + + thumb_func_start sub_0804E528 +sub_0804E528: @ 0x0804E528 + movs r0, #1 + bx lr + + thumb_func_start sub_0804E52C +sub_0804E52C: @ 0x0804E52C + push {lr} + ldr r0, _0804E558 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + cmp r0, #7 + bls _0804E53C + ldr r0, _0804E55C @ =gUnk_080F23BC + bl sub_0804ADDC +_0804E53C: + movs r0, #0x46 + bl sub_0807CA84 + cmp r0, #0 + bne _0804E564 + movs r0, #0x29 + bl sub_0807CC30 + cmp r0, #0 + beq _0804E564 + ldr r0, _0804E560 @ =gUnk_080F238C + bl sub_0804ADDC + b _0804E56A + .align 2, 0 +_0804E558: .4byte gUnk_02002A40 +_0804E55C: .4byte gUnk_080F23BC +_0804E560: .4byte gUnk_080F238C +_0804E564: + ldr r0, _0804E56C @ =gUnk_080F236C + bl sub_0804ADDC +_0804E56A: + pop {pc} + .align 2, 0 +_0804E56C: .4byte gUnk_080F236C + + thumb_func_start sub_0804E570 +sub_0804E570: @ 0x0804E570 + movs r0, #1 + bx lr + + thumb_func_start sub_0804E574 +sub_0804E574: @ 0x0804E574 + push {lr} + ldr r0, _0804E588 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + cmp r0, #9 + bhi _0804E608 + lsls r0, r0, #2 + ldr r1, _0804E58C @ =_0804E590 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0804E588: .4byte gUnk_02002A40 +_0804E58C: .4byte _0804E590 +_0804E590: @ jump table + .4byte _0804E5CC @ case 0 + .4byte _0804E608 @ case 1 + .4byte _0804E5CC @ case 2 + .4byte _0804E608 @ case 3 + .4byte _0804E5CC @ case 4 + .4byte _0804E5B8 @ case 5 + .4byte _0804E602 @ case 6 + .4byte _0804E602 @ case 7 + .4byte _0804E5FC @ case 8 + .4byte _0804E5FC @ case 9 +_0804E5B8: + movs r0, #0x46 + bl sub_0807CA84 + cmp r0, #0 + bne _0804E5F0 + movs r0, #0x29 + bl sub_0807CC30 + cmp r0, #0 + bne _0804E5D8 +_0804E5CC: + ldr r0, _0804E5D4 @ =gUnk_080F2570 + bl sub_0804ADDC + b _0804E608 + .align 2, 0 +_0804E5D4: .4byte gUnk_080F2570 +_0804E5D8: + movs r0, #0x39 + bl sub_0807CA84 + cmp r0, #0 + bne _0804E608 + ldr r0, _0804E5EC @ =gUnk_080F25C0 + bl sub_0804ADDC + b _0804E608 + .align 2, 0 +_0804E5EC: .4byte gUnk_080F25C0 +_0804E5F0: + ldr r0, _0804E5F8 @ =gUnk_080F2590 + bl sub_0804ADDC + b _0804E608 + .align 2, 0 +_0804E5F8: .4byte gUnk_080F2590 +_0804E5FC: + ldr r0, _0804E60C @ =gUnk_080F2600 + bl sub_0804ADDC +_0804E602: + ldr r0, _0804E610 @ =gUnk_080F2590 + bl sub_0804ADDC +_0804E608: + pop {pc} + .align 2, 0 +_0804E60C: .4byte gUnk_080F2600 +_0804E610: .4byte gUnk_080F2590 + + thumb_func_start sub_0804E614 +sub_0804E614: @ 0x0804E614 + movs r0, #1 + bx lr + + thumb_func_start sub_0804E618 +sub_0804E618: @ 0x0804E618 + push {lr} + movs r0, #0x21 + bl sub_0801E7F4 + cmp r0, #0 + beq _0804E67A + movs r0, #0x42 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804E65C + movs r0, #0x43 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804E650 + ldr r0, _0804E648 @ =gUnk_080F2718 + bl sub_0804ADDC + ldr r0, _0804E64C @ =gUnk_080F2860 + bl sub_0804B1AC + b _0804E67A + .align 2, 0 +_0804E648: .4byte gUnk_080F2718 +_0804E64C: .4byte gUnk_080F2860 +_0804E650: + ldr r0, _0804E658 @ =gUnk_080F2758 + bl sub_0804ADDC + b _0804E67A + .align 2, 0 +_0804E658: .4byte gUnk_080F2758 +_0804E65C: + movs r0, #0x3f + bl sub_0807CBD0 + cmp r0, #0 + bne _0804E674 + ldr r0, _0804E670 @ =gUnk_080F27D8 + bl sub_0804ADDC + b _0804E67A + .align 2, 0 +_0804E670: .4byte gUnk_080F27D8 +_0804E674: + ldr r0, _0804E67C @ =gUnk_080F2798 + bl sub_0804ADDC +_0804E67A: + pop {pc} + .align 2, 0 +_0804E67C: .4byte gUnk_080F2798 + + thumb_func_start sub_0804E680 +sub_0804E680: @ 0x0804E680 + movs r0, #1 + bx lr + + thumb_func_start sub_0804E684 +sub_0804E684: @ 0x0804E684 + push {lr} + movs r0, #0x2b + bl sub_0807CC30 + cmp r0, #0 + beq _0804E69C + ldr r0, _0804E698 @ =gUnk_080F28D4 + bl sub_0804ADDC + b _0804E6C4 + .align 2, 0 +_0804E698: .4byte gUnk_080F28D4 +_0804E69C: + movs r0, #0x2c + bl sub_0807CC30 + cmp r0, #0 + beq _0804E6B4 + ldr r0, _0804E6B0 @ =gUnk_080F28F4 + bl sub_0804ADDC + b _0804E6C4 + .align 2, 0 +_0804E6B0: .4byte gUnk_080F28F4 +_0804E6B4: + movs r0, #0x2d + bl sub_0807CC30 + cmp r0, #0 + beq _0804E6C4 + ldr r0, _0804E6C8 @ =gUnk_080F2914 + bl sub_0804ADDC +_0804E6C4: + pop {pc} + .align 2, 0 +_0804E6C8: .4byte gUnk_080F2914 + + thumb_func_start sub_0804E6CC +sub_0804E6CC: @ 0x0804E6CC + movs r0, #1 + bx lr + + thumb_func_start nullsub_377 +nullsub_377: @ 0x0804E6D0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804E6D4 +sub_0804E6D4: @ 0x0804E6D4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_378 +nullsub_378: @ 0x0804E6D8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804E6DC +sub_0804E6DC: @ 0x0804E6DC + movs r0, #1 + bx lr + + thumb_func_start nullsub_379 +nullsub_379: @ 0x0804E6E0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804E6E4 +sub_0804E6E4: @ 0x0804E6E4 + movs r0, #1 + bx lr + + thumb_func_start sub_0804E6E8 +sub_0804E6E8: @ 0x0804E6E8 + push {lr} + movs r0, #0x49 + bl sub_0807CC30 + cmp r0, #0 + bne _0804E70A + ldr r0, _0804E71C @ =gUnk_02033A90 + movs r2, #0x86 + lsls r2, r2, #4 + adds r1, r0, r2 + adds r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] + ldr r0, _0804E720 @ =0x800B0036 + bl sub_080A3268 +_0804E70A: + movs r0, #0x13 + bl sub_0807CC30 + cmp r0, #0 + bne _0804E71A + ldr r0, _0804E724 @ =gUnk_080F2E2C + bl sub_0804ADDC +_0804E71A: + pop {pc} + .align 2, 0 +_0804E71C: .4byte gUnk_02033A90 +_0804E720: .4byte 0x800B0036 +_0804E724: .4byte gUnk_080F2E2C + + thumb_func_start sub_0804E728 +sub_0804E728: @ 0x0804E728 + movs r0, #1 + bx lr + + thumb_func_start sub_0804E72C +sub_0804E72C: @ 0x0804E72C + push {lr} + movs r0, #0x49 + bl sub_0807CC30 + cmp r0, #0 + bne _0804E74E + ldr r0, _0804E760 @ =gUnk_02033A90 + movs r2, #0x86 + lsls r2, r2, #4 + adds r1, r0, r2 + adds r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] + ldr r0, _0804E764 @ =0x800B0036 + bl sub_080A3268 +_0804E74E: + movs r0, #0x13 + bl sub_0807CC30 + cmp r0, #0 + bne _0804E76C + ldr r0, _0804E768 @ =gUnk_080F2E94 + bl sub_0804ADDC + b _0804E772 + .align 2, 0 +_0804E760: .4byte gUnk_02033A90 +_0804E764: .4byte 0x800B0036 +_0804E768: .4byte gUnk_080F2E94 +_0804E76C: + ldr r0, _0804E774 @ =gUnk_080F2EC4 + bl sub_0804ADDC +_0804E772: + pop {pc} + .align 2, 0 +_0804E774: .4byte gUnk_080F2EC4 + + thumb_func_start sub_0804E778 +sub_0804E778: @ 0x0804E778 + movs r0, #1 + bx lr + + thumb_func_start sub_0804E77C +sub_0804E77C: @ 0x0804E77C + push {lr} + movs r0, #0x69 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804E792 + movs r0, #0x3c + bl sub_0807CA84 + cmp r0, #1 + bls _0804E798 +_0804E792: + ldr r0, _0804E79C @ =gUnk_080F2FD4 + bl sub_0804ADDC +_0804E798: + pop {pc} + .align 2, 0 +_0804E79C: .4byte gUnk_080F2FD4 + + thumb_func_start sub_0804E7A0 +sub_0804E7A0: @ 0x0804E7A0 + movs r0, #1 + bx lr + + thumb_func_start sub_0804E7A4 +sub_0804E7A4: @ 0x0804E7A4 + push {lr} + movs r0, #0x36 + bl sub_0807CA84 + cmp r0, #1 + bne _0804E7CC + movs r0, #0x5b + bl sub_0807CC30 + cmp r0, #0 + bne _0804E7CC + ldr r0, _0804E7D0 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0804E7CC + ldr r0, _0804E7D4 @ =gUnk_080F30CC + bl sub_0804ADDC +_0804E7CC: + pop {pc} + .align 2, 0 +_0804E7D0: .4byte gUnk_03003F80 +_0804E7D4: .4byte gUnk_080F30CC + + thumb_func_start sub_0804E7D8 +sub_0804E7D8: @ 0x0804E7D8 + movs r0, #1 + bx lr + + thumb_func_start sub_0804E7DC +sub_0804E7DC: @ 0x0804E7DC + push {r4, lr} + movs r0, #0x13 + bl sub_0807CC30 + cmp r0, #0 + bne _0804E818 + movs r0, #0x46 + bl sub_0807CBD0 + adds r4, r0, #0 + cmp r4, #0 + bne _0804E818 + movs r0, #5 + movs r1, #1 + movs r2, #4 + movs r3, #4 + bl sub_080A71C4 + ldr r0, _0804E84C @ =gUnk_02000070 + strb r4, [r0] + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #5 + bl sub_08050054 + ldr r2, _0804E850 @ =gUnk_08009B30 + movs r0, #0 + movs r1, #6 + bl sub_080751E8 +_0804E818: + movs r0, #0x49 + bl sub_0807CC30 + cmp r0, #0 + bne _0804E838 + ldr r0, _0804E854 @ =gUnk_02033A90 + movs r2, #0x86 + lsls r2, r2, #4 + adds r1, r0, r2 + adds r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] + ldr r0, _0804E858 @ =0x800B0036 + bl sub_080A3268 +_0804E838: + ldr r0, _0804E85C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + bne _0804E84A + ldr r0, _0804E860 @ =gUnk_080F31D8 + bl sub_0804ADDC +_0804E84A: + pop {r4, pc} + .align 2, 0 +_0804E84C: .4byte gUnk_02000070 +_0804E850: .4byte gUnk_08009B30 +_0804E854: .4byte gUnk_02033A90 +_0804E858: .4byte 0x800B0036 +_0804E85C: .4byte gUnk_03003F80 +_0804E860: .4byte gUnk_080F31D8 + + thumb_func_start sub_0804E864 +sub_0804E864: @ 0x0804E864 + push {lr} + ldr r2, _0804E888 @ =gUnk_03001160 + ldr r1, _0804E88C @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + adds r0, #0x90 + strh r0, [r2, #0x2e] + ldrh r0, [r1, #8] + adds r0, #0x38 + strh r0, [r2, #0x32] + ldr r2, _0804E890 @ =gUnk_08009E58 + movs r0, #1 + movs r1, #6 + bl sub_080751E8 + movs r0, #0xa0 + bl sub_080526A0 + pop {pc} + .align 2, 0 +_0804E888: .4byte gUnk_03001160 +_0804E88C: .4byte gUnk_03000BF0 +_0804E890: .4byte gUnk_08009E58 + + thumb_func_start sub_0804E894 +sub_0804E894: @ 0x0804E894 + movs r0, #1 + bx lr + + thumb_func_start sub_0804E898 +sub_0804E898: @ 0x0804E898 + push {r4, lr} + movs r0, #0x12 + bl sub_0807CA84 + cmp r0, #0 + beq _0804E8D8 + ldr r0, _0804E8DC @ =gUnk_080F3260 + bl sub_0804ADDC + ldr r4, _0804E8E0 @ =0x00004072 + ldr r1, _0804E8E4 @ =0x00000202 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804E8E8 @ =0x00000242 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + movs r1, #0x81 + lsls r1, r1, #2 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + movs r1, #0x91 + lsls r1, r1, #2 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 +_0804E8D8: + pop {r4, pc} + .align 2, 0 +_0804E8DC: .4byte gUnk_080F3260 +_0804E8E0: .4byte 0x00004072 +_0804E8E4: .4byte 0x00000202 +_0804E8E8: .4byte 0x00000242 + + thumb_func_start sub_0804E8EC +sub_0804E8EC: @ 0x0804E8EC + movs r0, #1 + bx lr + + thumb_func_start sub_0804E8F0 +sub_0804E8F0: @ 0x0804E8F0 + push {lr} + bl sub_08054564 + pop {pc} + + thumb_func_start sub_0804E8F8 +sub_0804E8F8: @ 0x0804E8F8 + movs r0, #1 + bx lr + + thumb_func_start sub_0804E8FC +sub_0804E8FC: @ 0x0804E8FC + push {lr} + movs r0, #0x1d + bl sub_0807CC30 + cmp r0, #0 + bne _0804E914 + ldr r0, _0804E910 @ =gUnk_080F36FC + bl sub_0804ADDC + b _0804E922 + .align 2, 0 +_0804E910: .4byte gUnk_080F36FC +_0804E914: + ldr r0, _0804E924 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + cmp r0, #3 + bhi _0804E922 + ldr r0, _0804E928 @ =gUnk_080F3604 + bl sub_0804ADDC +_0804E922: + pop {pc} + .align 2, 0 +_0804E924: .4byte gUnk_02002A40 +_0804E928: .4byte gUnk_080F3604 + + thumb_func_start sub_0804E92C +sub_0804E92C: @ 0x0804E92C + movs r0, #1 + bx lr + + thumb_func_start sub_0804E930 +sub_0804E930: @ 0x0804E930 + push {lr} + movs r0, #0x1d + bl sub_0807CC30 + cmp r0, #0 + beq _0804E942 + ldr r0, _0804E944 @ =gUnk_080F37D0 + bl sub_0804ADDC +_0804E942: + pop {pc} + .align 2, 0 +_0804E944: .4byte gUnk_080F37D0 + + thumb_func_start sub_0804E948 +sub_0804E948: @ 0x0804E948 + movs r0, #1 + bx lr + + thumb_func_start nullsub_380 +nullsub_380: @ 0x0804E94C + bx lr + .align 2, 0 + + thumb_func_start sub_0804E950 +sub_0804E950: @ 0x0804E950 + movs r0, #1 + bx lr + + thumb_func_start sub_0804E954 +sub_0804E954: @ 0x0804E954 + push {lr} + movs r0, #0x46 + bl sub_0807CA84 + cmp r0, #0 + bne _0804E97A + movs r0, #0x29 + bl sub_0807CC30 + cmp r0, #0 + beq _0804E97A + movs r0, #0x3b + bl sub_0807CA84 + cmp r0, #0 + bne _0804E97A + ldr r0, _0804E988 @ =gUnk_080F3A48 + bl sub_0804ADDC +_0804E97A: + ldr r0, _0804E98C @ =gUnk_030010A0 + ldr r1, _0804E990 @ =0x00000F28 + strh r1, [r0, #0x20] + ldr r1, _0804E994 @ =0x0000082D + strh r1, [r0, #0x22] + pop {pc} + .align 2, 0 +_0804E988: .4byte gUnk_080F3A48 +_0804E98C: .4byte gUnk_030010A0 +_0804E990: .4byte 0x00000F28 +_0804E994: .4byte 0x0000082D + + thumb_func_start sub_0804E998 +sub_0804E998: @ 0x0804E998 + push {lr} + movs r0, #5 + bl sub_0807CC30 + cmp r0, #0 + beq _0804E9BC + movs r0, #4 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804E9BC + ldr r1, _0804E9B4 @ =gUnk_02034350 + ldr r0, _0804E9B8 @ =gUnk_080F3EA4 + b _0804E9C0 + .align 2, 0 +_0804E9B4: .4byte gUnk_02034350 +_0804E9B8: .4byte gUnk_080F3EA4 +_0804E9BC: + ldr r1, _0804E9C8 @ =gUnk_02034350 + ldr r0, _0804E9CC @ =gUnk_080F3D44 +_0804E9C0: + str r0, [r1, #0x74] + movs r0, #1 + pop {pc} + .align 2, 0 +_0804E9C8: .4byte gUnk_02034350 +_0804E9CC: .4byte gUnk_080F3D44 + + thumb_func_start sub_0804E9D0 +sub_0804E9D0: @ 0x0804E9D0 + push {r4, lr} + movs r0, #5 + bl sub_0807CC30 + cmp r0, #0 + beq _0804E9EC + movs r0, #4 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804E9EC + ldr r0, _0804EAC4 @ =gUnk_080F3C64 + bl sub_0804ADDC +_0804E9EC: + movs r0, #0x12 + bl sub_0801E7F4 + cmp r0, #0 + beq _0804E9FC + ldr r0, _0804EAC8 @ =gUnk_080F3C94 + bl sub_0804ADDC +_0804E9FC: + ldr r0, _0804EACC @ =gUnk_02002A40 + ldrb r0, [r0, #8] + cmp r0, #3 + bls _0804EA14 + movs r0, #0x5c + bl sub_0807CC30 + cmp r0, #0 + beq _0804EA14 + ldr r0, _0804EAD0 @ =gUnk_080F3C44 + bl sub_0804ADDC +_0804EA14: + ldr r4, _0804EAD4 @ =0x00004091 + movs r1, #0xb2 + lsls r1, r1, #3 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r1, _0804EAD8 @ =0x00000591 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r1, _0804EADC @ =0x00000592 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r1, _0804EAE0 @ =0x00000593 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r1, _0804EAE4 @ =0x00000594 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + movs r1, #0xba + lsls r1, r1, #3 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + movs r1, #0xc2 + lsls r1, r1, #3 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + movs r1, #0xca + lsls r1, r1, #3 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r1, _0804EAE8 @ =0x000005D4 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r1, _0804EAEC @ =0x00000614 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r1, _0804EAF0 @ =0x00000654 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + movs r1, #0xd2 + lsls r1, r1, #3 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r1, _0804EAF4 @ =0x00000691 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r1, _0804EAF8 @ =0x00000692 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r1, _0804EAFC @ =0x00000693 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r1, _0804EB00 @ =0x00000694 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + pop {r4, pc} + .align 2, 0 +_0804EAC4: .4byte gUnk_080F3C64 +_0804EAC8: .4byte gUnk_080F3C94 +_0804EACC: .4byte gUnk_02002A40 +_0804EAD0: .4byte gUnk_080F3C44 +_0804EAD4: .4byte 0x00004091 +_0804EAD8: .4byte 0x00000591 +_0804EADC: .4byte 0x00000592 +_0804EAE0: .4byte 0x00000593 +_0804EAE4: .4byte 0x00000594 +_0804EAE8: .4byte 0x000005D4 +_0804EAEC: .4byte 0x00000614 +_0804EAF0: .4byte 0x00000654 +_0804EAF4: .4byte 0x00000691 +_0804EAF8: .4byte 0x00000692 +_0804EAFC: .4byte 0x00000693 +_0804EB00: .4byte 0x00000694 + + thumb_func_start sub_0804EB04 +sub_0804EB04: @ 0x0804EB04 + movs r0, #1 + bx lr + + thumb_func_start nullsub_381 +nullsub_381: @ 0x0804EB08 + bx lr + .align 2, 0 + + thumb_func_start sub_0804EB0C +sub_0804EB0C: @ 0x0804EB0C + movs r0, #1 + bx lr + + thumb_func_start nullsub_382 +nullsub_382: @ 0x0804EB10 + bx lr + .align 2, 0 + + thumb_func_start sub_0804EB14 +sub_0804EB14: @ 0x0804EB14 + movs r0, #1 + bx lr + + thumb_func_start nullsub_383 +nullsub_383: @ 0x0804EB18 + bx lr + .align 2, 0 + + thumb_func_start sub_0804EB1C +sub_0804EB1C: @ 0x0804EB1C + movs r0, #1 + bx lr + + thumb_func_start nullsub_384 +nullsub_384: @ 0x0804EB20 + bx lr + .align 2, 0 + + thumb_func_start sub_0804EB24 +sub_0804EB24: @ 0x0804EB24 + movs r0, #1 + bx lr + + thumb_func_start nullsub_385 +nullsub_385: @ 0x0804EB28 + bx lr + .align 2, 0 + + thumb_func_start sub_0804EB2C +sub_0804EB2C: @ 0x0804EB2C + movs r0, #1 + bx lr + + thumb_func_start nullsub_386 +nullsub_386: @ 0x0804EB30 + bx lr + .align 2, 0 + + thumb_func_start sub_0804EB34 +sub_0804EB34: @ 0x0804EB34 + movs r0, #1 + bx lr + + thumb_func_start nullsub_387 +nullsub_387: @ 0x0804EB38 + bx lr + .align 2, 0 + + thumb_func_start sub_0804EB3C +sub_0804EB3C: @ 0x0804EB3C + movs r0, #1 + bx lr + + thumb_func_start nullsub_388 +nullsub_388: @ 0x0804EB40 + bx lr + .align 2, 0 + + thumb_func_start sub_0804EB44 +sub_0804EB44: @ 0x0804EB44 + movs r0, #1 + bx lr + + thumb_func_start nullsub_389 +nullsub_389: @ 0x0804EB48 + bx lr + .align 2, 0 + + thumb_func_start sub_0804EB4C +sub_0804EB4C: @ 0x0804EB4C + movs r0, #1 + bx lr + + thumb_func_start nullsub_390 +nullsub_390: @ 0x0804EB50 + bx lr + .align 2, 0 + + thumb_func_start sub_0804EB54 +sub_0804EB54: @ 0x0804EB54 + ldr r2, _0804EB64 @ =gUnk_02033A90 + ldrb r1, [r2] + movs r0, #0x48 + orrs r0, r1 + strb r0, [r2] + movs r0, #1 + bx lr + .align 2, 0 +_0804EB64: .4byte gUnk_02033A90 + + thumb_func_start nullsub_391 +nullsub_391: @ 0x0804EB68 + bx lr + .align 2, 0 + + thumb_func_start sub_0804EB6C +sub_0804EB6C: @ 0x0804EB6C + ldr r2, _0804EB7C @ =gUnk_02033A90 + ldrb r1, [r2] + movs r0, #0x48 + orrs r0, r1 + strb r0, [r2] + movs r0, #1 + bx lr + .align 2, 0 +_0804EB7C: .4byte gUnk_02033A90 + + thumb_func_start nullsub_392 +nullsub_392: @ 0x0804EB80 + bx lr + .align 2, 0 + + thumb_func_start sub_0804EB84 +sub_0804EB84: @ 0x0804EB84 + ldr r2, _0804EB94 @ =gUnk_02033A90 + ldrb r1, [r2] + movs r0, #0x48 + orrs r0, r1 + strb r0, [r2] + movs r0, #1 + bx lr + .align 2, 0 +_0804EB94: .4byte gUnk_02033A90 + + thumb_func_start nullsub_393 +nullsub_393: @ 0x0804EB98 + bx lr + .align 2, 0 + + thumb_func_start sub_0804EB9C +sub_0804EB9C: @ 0x0804EB9C + push {lr} + movs r0, #0x58 + movs r1, #5 + bl sub_0801DD58 + ldr r2, _0804EBB4 @ =gUnk_02033A90 + ldrb r1, [r2] + movs r0, #0x48 + orrs r0, r1 + strb r0, [r2] + movs r0, #1 + pop {pc} + .align 2, 0 +_0804EBB4: .4byte gUnk_02033A90 + + thumb_func_start nullsub_394 +nullsub_394: @ 0x0804EBB8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804EBBC +sub_0804EBBC: @ 0x0804EBBC + push {lr} + movs r0, #0x58 + movs r1, #6 + bl sub_0801DD58 + ldr r2, _0804EBD4 @ =gUnk_02033A90 + ldrb r1, [r2] + movs r0, #0x48 + orrs r0, r1 + strb r0, [r2] + movs r0, #1 + pop {pc} + .align 2, 0 +_0804EBD4: .4byte gUnk_02033A90 + + thumb_func_start nullsub_395 +nullsub_395: @ 0x0804EBD8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804EBDC +sub_0804EBDC: @ 0x0804EBDC + push {lr} + movs r0, #0x51 + bl sub_0807CC30 + cmp r0, #0 + beq _0804EBF2 + ldr r0, _0804EBF8 @ =gUnk_02034350 + ldr r1, _0804EBFC @ =gUnk_080F4EB0 + str r1, [r0, #0x6c] + movs r1, #0 + str r1, [r0, #0x74] +_0804EBF2: + movs r0, #1 + pop {pc} + .align 2, 0 +_0804EBF8: .4byte gUnk_02034350 +_0804EBFC: .4byte gUnk_080F4EB0 + + thumb_func_start sub_0804EC00 +sub_0804EC00: @ 0x0804EC00 + push {lr} + movs r0, #0x51 + bl sub_0807CC30 + cmp r0, #0 + beq _0804EC1A + ldr r0, _0804EC48 @ =gUnk_02033A90 + ldr r2, _0804EC4C @ =0x00000864 + adds r1, r0, r2 + subs r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] +_0804EC1A: + movs r0, #0x14 + bl sub_0807CC30 + cmp r0, #0 + bne _0804EC2A + ldr r0, _0804EC50 @ =gUnk_080F4D50 + bl sub_0804ADDC +_0804EC2A: + movs r0, #0x3e + bl sub_0807CBD0 + cmp r0, #0 + bne _0804EC64 + movs r0, #0x3b + bl sub_0807CBD0 + cmp r0, #0 + bne _0804EC58 + ldr r0, _0804EC54 @ =gUnk_080F4DB0 + bl sub_0804ADDC + b _0804EC5E + .align 2, 0 +_0804EC48: .4byte gUnk_02033A90 +_0804EC4C: .4byte 0x00000864 +_0804EC50: .4byte gUnk_080F4D50 +_0804EC54: .4byte gUnk_080F4DB0 +_0804EC58: + ldr r0, _0804EC84 @ =gUnk_080F4DD0 + bl sub_0804ADDC +_0804EC5E: + ldr r0, _0804EC88 @ =gUnk_080F4DF0 + bl sub_0804ADDC +_0804EC64: + movs r0, #0x4e + bl sub_0801E7F4 + cmp r0, #0 + beq _0804EC74 + ldr r0, _0804EC8C @ =gUnk_080F4F10 + bl sub_0804ADDC +_0804EC74: + ldr r0, _0804EC90 @ =gUnk_02002A40 + ldr r0, [r0, #0x40] + cmp r0, #0 + blt _0804EC82 + ldr r0, _0804EC94 @ =gUnk_080F4E10 + bl sub_0804ADDC +_0804EC82: + pop {pc} + .align 2, 0 +_0804EC84: .4byte gUnk_080F4DD0 +_0804EC88: .4byte gUnk_080F4DF0 +_0804EC8C: .4byte gUnk_080F4F10 +_0804EC90: .4byte gUnk_02002A40 +_0804EC94: .4byte gUnk_080F4E10 + + thumb_func_start sub_0804EC98 +sub_0804EC98: @ 0x0804EC98 + push {lr} + ldr r0, _0804ECAC @ =gUnk_02002A40 + ldr r0, [r0, #0x40] + cmp r0, #0 + blt _0804ECA8 + ldr r0, _0804ECB0 @ =gUnk_080F4E10 + bl sub_0804ADDC +_0804ECA8: + pop {pc} + .align 2, 0 +_0804ECAC: .4byte gUnk_02002A40 +_0804ECB0: .4byte gUnk_080F4E10 + + thumb_func_start sub_0804ECB4 +sub_0804ECB4: @ 0x0804ECB4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_396 +nullsub_396: @ 0x0804ECB8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804ECBC +sub_0804ECBC: @ 0x0804ECBC + push {lr} + movs r0, #0x51 + bl sub_0807CC30 + cmp r0, #0 + beq _0804ECDA + ldr r1, _0804ECE0 @ =gUnk_02034350 + ldr r0, _0804ECE4 @ =gUnk_080F5348 + str r0, [r1, #0x6c] + adds r2, r1, #0 + adds r2, #0x88 + ldr r0, _0804ECE8 @ =sub_0804ED18 + str r0, [r2] + movs r0, #0 + str r0, [r1, #0x74] +_0804ECDA: + movs r0, #1 + pop {pc} + .align 2, 0 +_0804ECE0: .4byte gUnk_02034350 +_0804ECE4: .4byte gUnk_080F5348 +_0804ECE8: .4byte sub_0804ED18 + + thumb_func_start sub_0804ECEC +sub_0804ECEC: @ 0x0804ECEC + push {lr} + movs r0, #2 + bl sub_0807CA84 + cmp r0, #0 + beq _0804ED0E + ldr r0, _0804ED10 @ =gUnk_080F5328 + bl sub_0804ADDC + movs r0, #0x14 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804ED0E + ldr r0, _0804ED14 @ =gUnk_080F5308 + bl sub_0804ADDC +_0804ED0E: + pop {pc} + .align 2, 0 +_0804ED10: .4byte gUnk_080F5328 +_0804ED14: .4byte gUnk_080F5308 + + thumb_func_start sub_0804ED18 +sub_0804ED18: @ 0x0804ED18 + ldr r0, _0804ED28 @ =gUnk_02033A90 + ldr r2, _0804ED2C @ =0x00000864 + adds r1, r0, r2 + subs r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] + bx lr + .align 2, 0 +_0804ED28: .4byte gUnk_02033A90 +_0804ED2C: .4byte 0x00000864 + + thumb_func_start sub_0804ED30 +sub_0804ED30: @ 0x0804ED30 + movs r0, #1 + bx lr + + thumb_func_start sub_0804ED34 +sub_0804ED34: @ 0x0804ED34 + push {lr} + bl sub_080AF2E4 + movs r0, #0x5d + bl sub_0807CC30 + cmp r0, #0 + beq _0804ED4E + ldr r0, _0804ED50 @ =gUnk_02033A90 + ldr r1, _0804ED54 @ =0x00000864 + adds r0, r0, r1 + movs r1, #0x31 + str r1, [r0] +_0804ED4E: + pop {pc} + .align 2, 0 +_0804ED50: .4byte gUnk_02033A90 +_0804ED54: .4byte 0x00000864 + + thumb_func_start sub_0804ED58 +sub_0804ED58: @ 0x0804ED58 + movs r0, #1 + bx lr + + thumb_func_start sub_0804ED5C +sub_0804ED5C: @ 0x0804ED5C + push {lr} + movs r0, #0x79 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804ED6E + ldr r0, _0804EDA8 @ =gUnk_080F54E8 + bl sub_0804ADDC +_0804ED6E: + movs r0, #0x7a + bl sub_0807CBD0 + cmp r0, #0 + bne _0804EDB0 + movs r0, #2 + bl sub_0807CA84 + cmp r0, #0 + beq _0804EE16 + movs r0, #3 + bl sub_0807CA84 + cmp r0, #0 + bne _0804EE16 + movs r0, #0x40 + bl sub_0807CA84 + cmp r0, #0 + beq _0804EE16 + movs r0, #0x41 + bl sub_0807CA84 + cmp r0, #0 + beq _0804EE16 + ldr r0, _0804EDAC @ =gUnk_080F5508 + bl sub_0804ADDC + b _0804EE16 + .align 2, 0 +_0804EDA8: .4byte gUnk_080F54E8 +_0804EDAC: .4byte gUnk_080F5508 +_0804EDB0: + movs r0, #0x7b + bl sub_0807CBD0 + cmp r0, #0 + bne _0804EDE4 + movs r0, #3 + bl sub_0807CA84 + cmp r0, #0 + beq _0804EE16 + movs r0, #4 + bl sub_0807CA84 + cmp r0, #0 + bne _0804EE16 + movs r0, #0x42 + bl sub_0807CA84 + cmp r0, #0 + beq _0804EE16 + ldr r0, _0804EDE0 @ =gUnk_080F5558 + bl sub_0804ADDC + b _0804EE16 + .align 2, 0 +_0804EDE0: .4byte gUnk_080F5558 +_0804EDE4: + movs r0, #0x7c + bl sub_0807CBD0 + cmp r0, #0 + bne _0804EE10 + movs r0, #6 + bl sub_0807CA84 + cmp r0, #0 + bne _0804EE16 + movs r0, #0x43 + bl sub_0807CA84 + cmp r0, #0 + beq _0804EE16 + ldr r0, _0804EE0C @ =gUnk_080F5598 + bl sub_0804ADDC + b _0804EE16 + .align 2, 0 +_0804EE0C: .4byte gUnk_080F5598 +_0804EE10: + ldr r0, _0804EE5C @ =gUnk_080F55D8 + bl sub_0804ADDC +_0804EE16: + movs r0, #0x7a + bl sub_0807CBD0 + cmp r0, #0 + beq _0804EE26 + ldr r0, _0804EE60 @ =gUnk_080F5528 + bl sub_0804ADDC +_0804EE26: + movs r0, #0x7b + bl sub_0807CBD0 + cmp r0, #0 + beq _0804EE36 + ldr r0, _0804EE64 @ =gUnk_080F5578 + bl sub_0804ADDC +_0804EE36: + movs r0, #0x7c + bl sub_0807CBD0 + cmp r0, #0 + beq _0804EE46 + ldr r0, _0804EE68 @ =gUnk_080F55B8 + bl sub_0804ADDC +_0804EE46: + movs r0, #0x5d + bl sub_0807CC30 + cmp r0, #0 + beq _0804EE5A + ldr r0, _0804EE6C @ =gUnk_02033A90 + ldr r1, _0804EE70 @ =0x00000864 + adds r0, r0, r1 + movs r1, #0x31 + str r1, [r0] +_0804EE5A: + pop {pc} + .align 2, 0 +_0804EE5C: .4byte gUnk_080F55D8 +_0804EE60: .4byte gUnk_080F5528 +_0804EE64: .4byte gUnk_080F5578 +_0804EE68: .4byte gUnk_080F55B8 +_0804EE6C: .4byte gUnk_02033A90 +_0804EE70: .4byte 0x00000864 + + thumb_func_start sub_0804EE74 +sub_0804EE74: @ 0x0804EE74 + movs r0, #1 + bx lr + + thumb_func_start sub_0804EE78 +sub_0804EE78: @ 0x0804EE78 + push {lr} + movs r0, #0x78 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804EE94 + movs r0, #0x7c + bl sub_0807CBD0 + cmp r0, #0 + beq _0804EE94 + ldr r0, _0804EEAC @ =gUnk_080F5660 + bl sub_0804ADDC +_0804EE94: + movs r0, #0x5d + bl sub_0807CC30 + cmp r0, #0 + beq _0804EEA8 + ldr r0, _0804EEB0 @ =gUnk_02033A90 + ldr r1, _0804EEB4 @ =0x00000864 + adds r0, r0, r1 + movs r1, #0x31 + str r1, [r0] +_0804EEA8: + pop {pc} + .align 2, 0 +_0804EEAC: .4byte gUnk_080F5660 +_0804EEB0: .4byte gUnk_02033A90 +_0804EEB4: .4byte 0x00000864 + + thumb_func_start sub_0804EEB8 +sub_0804EEB8: @ 0x0804EEB8 + movs r0, #1 + bx lr + + thumb_func_start sub_0804EEBC +sub_0804EEBC: @ 0x0804EEBC + push {lr} + ldr r0, _0804EEF4 @ =gUnk_080F5758 + bl sub_0804ADDC + movs r0, #0x36 + bl sub_0807CA84 + cmp r0, #0 + bne _0804EEE2 + movs r0, #0x80 + lsls r0, r0, #2 + movs r1, #0x8f + bl sub_0807CB10 + cmp r0, #0 + beq _0804EEE2 + ldr r0, _0804EEF8 @ =gUnk_080F57E8 + bl sub_0804ADDC +_0804EEE2: + movs r0, #0x55 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804EF00 + ldr r0, _0804EEFC @ =gUnk_080F57A8 + bl sub_0804ADDC + b _0804EF54 + .align 2, 0 +_0804EEF4: .4byte gUnk_080F5758 +_0804EEF8: .4byte gUnk_080F57E8 +_0804EEFC: .4byte gUnk_080F57A8 +_0804EF00: + ldr r1, _0804EF34 @ =gUnk_080FD5A0 + ldr r0, _0804EF38 @ =gUnk_02002A40 + adds r0, #0xae + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0x1d + bls _0804EF16 + ldr r0, _0804EF3C @ =gUnk_080F57C8 + bl sub_0804ADDC +_0804EF16: + movs r0, #0xb + bl sub_0807CA84 + cmp r0, #0 + bne _0804EF44 + movs r0, #0xc + bl sub_0807CA84 + cmp r0, #0 + bne _0804EF44 + ldr r0, _0804EF40 @ =gUnk_080F5888 + bl sub_0804ADDC + b _0804EF54 + .align 2, 0 +_0804EF34: .4byte gUnk_080FD5A0 +_0804EF38: .4byte gUnk_02002A40 +_0804EF3C: .4byte gUnk_080F57C8 +_0804EF40: .4byte gUnk_080F5888 +_0804EF44: + movs r0, #0xcd + bl sub_0807CBD0 + cmp r0, #0 + bne _0804EF54 + ldr r0, _0804EF80 @ =gUnk_080F58A8 + bl sub_0804ADDC +_0804EF54: + movs r0, #9 + bl sub_0807CA84 + cmp r0, #0 + bne _0804EF68 + movs r0, #4 + bl sub_0807CC30 + cmp r0, #0 + beq _0804EF92 +_0804EF68: + ldr r0, _0804EF84 @ =gUnk_080F5868 + bl sub_0804ADDC + movs r0, #0x56 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804EF8C + ldr r0, _0804EF88 @ =gUnk_080F5828 + bl sub_0804ADDC + b _0804EF92 + .align 2, 0 +_0804EF80: .4byte gUnk_080F58A8 +_0804EF84: .4byte gUnk_080F5868 +_0804EF88: .4byte gUnk_080F5828 +_0804EF8C: + ldr r0, _0804EFA4 @ =gUnk_080F5848 + bl sub_0804ADDC +_0804EF92: + ldr r0, _0804EFA8 @ =gUnk_02002A40 + adds r0, #0xbb + ldrb r0, [r0] + cmp r0, #0 + bne _0804EFA2 + ldr r0, _0804EFAC @ =gUnk_080F5788 + bl sub_0804ADDC +_0804EFA2: + pop {pc} + .align 2, 0 +_0804EFA4: .4byte gUnk_080F5848 +_0804EFA8: .4byte gUnk_02002A40 +_0804EFAC: .4byte gUnk_080F5788 + + thumb_func_start sub_0804EFB0 +sub_0804EFB0: @ 0x0804EFB0 + movs r0, #1 + bx lr + + thumb_func_start nullsub_397 +nullsub_397: @ 0x0804EFB4 + bx lr + .align 2, 0 + + thumb_func_start sub_0804EFB8 +sub_0804EFB8: @ 0x0804EFB8 + movs r0, #1 + bx lr + + thumb_func_start sub_0804EFBC +sub_0804EFBC: @ 0x0804EFBC + push {lr} + movs r0, #0x38 + bl sub_0807CA84 + cmp r0, #1 + bne _0804EFCE + ldr r0, _0804EFD0 @ =gUnk_080F5B3C + bl sub_0804ADDC +_0804EFCE: + pop {pc} + .align 2, 0 +_0804EFD0: .4byte gUnk_080F5B3C + + thumb_func_start sub_0804EFD4 +sub_0804EFD4: @ 0x0804EFD4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_398 +nullsub_398: @ 0x0804EFD8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804EFDC +sub_0804EFDC: @ 0x0804EFDC + push {lr} + movs r0, #0x50 + bl sub_0807CC30 + cmp r0, #0 + beq _0804EFEE + ldr r1, _0804EFF4 @ =gUnk_030010A0 + movs r0, #5 + strb r0, [r1, #0xf] +_0804EFEE: + movs r0, #1 + pop {pc} + .align 2, 0 +_0804EFF4: .4byte gUnk_030010A0 + + thumb_func_start sub_0804EFF8 +sub_0804EFF8: @ 0x0804EFF8 + push {lr} + ldr r0, _0804F020 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + cmp r0, #7 + bls _0804F008 + ldr r0, _0804F024 @ =gUnk_080F5DD0 + bl sub_0804ADDC +_0804F008: + movs r0, #0x50 + bl sub_0807CC30 + cmp r0, #0 + beq _0804F01C + ldr r2, _0804F028 @ =gUnk_08011C50 + movs r0, #1 + movs r1, #2 + bl sub_080751E8 +_0804F01C: + pop {pc} + .align 2, 0 +_0804F020: .4byte gUnk_02002A40 +_0804F024: .4byte gUnk_080F5DD0 +_0804F028: .4byte gUnk_08011C50 + + thumb_func_start sub_0804F02C +sub_0804F02C: @ 0x0804F02C + movs r0, #1 + bx lr + + thumb_func_start sub_0804F030 +sub_0804F030: @ 0x0804F030 + push {lr} + movs r0, #0x80 + lsls r0, r0, #1 + movs r1, #0xd1 + bl sub_0807CB10 + cmp r0, #0 + bne _0804F046 + ldr r0, _0804F048 @ =gUnk_080F5E68 + bl sub_0804ADDC +_0804F046: + pop {pc} + .align 2, 0 +_0804F048: .4byte gUnk_080F5E68 + + thumb_func_start sub_0804F04C +sub_0804F04C: @ 0x0804F04C + movs r0, #1 + bx lr + + thumb_func_start sub_0804F050 +sub_0804F050: @ 0x0804F050 + push {lr} + ldr r0, _0804F074 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + cmp r0, #4 + bls _0804F060 + ldr r0, _0804F078 @ =gUnk_080F5F38 + bl sub_0804ADDC +_0804F060: + movs r0, #0x92 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804F080 + ldr r0, _0804F07C @ =gUnk_080F5F58 + bl sub_0804ADDC + b _0804F086 + .align 2, 0 +_0804F074: .4byte gUnk_02002A40 +_0804F078: .4byte gUnk_080F5F38 +_0804F07C: .4byte gUnk_080F5F58 +_0804F080: + ldr r0, _0804F088 @ =gUnk_080F5F78 + bl sub_0804ADDC +_0804F086: + pop {pc} + .align 2, 0 +_0804F088: .4byte gUnk_080F5F78 + + thumb_func_start sub_0804F08C +sub_0804F08C: @ 0x0804F08C + movs r0, #1 + bx lr + + thumb_func_start nullsub_399 +nullsub_399: @ 0x0804F090 + bx lr + .align 2, 0 + + thumb_func_start sub_0804F094 +sub_0804F094: @ 0x0804F094 + movs r0, #1 + bx lr + + thumb_func_start nullsub_400 +nullsub_400: @ 0x0804F098 + bx lr + .align 2, 0 + + thumb_func_start sub_0804F09C +sub_0804F09C: @ 0x0804F09C + push {lr} + movs r0, #0x24 + bl sub_0807CC30 + cmp r0, #0 + beq _0804F0BC + movs r0, #0x80 + lsls r0, r0, #1 + movs r1, #0xdc + bl sub_0807CB10 + cmp r0, #0 + beq _0804F0BC + movs r0, #0x58 + bl sub_0807CD04 +_0804F0BC: + movs r0, #1 + pop {pc} + + thumb_func_start sub_0804F0C0 +sub_0804F0C0: @ 0x0804F0C0 + push {r4, lr} + movs r0, #0x80 + lsls r0, r0, #1 + movs r1, #0xdc + bl sub_0807CB10 + cmp r0, #0 + beq _0804F0D6 + movs r0, #0x90 + bl sub_0807CCB4 +_0804F0D6: + movs r0, #0xf + bl sub_0801E7F4 + cmp r0, #0 + beq _0804F0E6 + ldr r0, _0804F118 @ =gUnk_080F61BC + bl sub_0804ADDC +_0804F0E6: + movs r0, #0x58 + bl sub_0807CC30 + cmp r0, #0 + bne _0804F106 + ldr r4, _0804F11C @ =0x00004072 + ldr r1, _0804F120 @ =0x000004C7 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F124 @ =0x00000507 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 +_0804F106: + movs r2, #0xf4 + lsls r2, r2, #1 + movs r3, #0xac + lsls r3, r3, #1 + movs r0, #8 + movs r1, #0 + bl sub_08052CA4 + pop {r4, pc} + .align 2, 0 +_0804F118: .4byte gUnk_080F61BC +_0804F11C: .4byte 0x00004072 +_0804F120: .4byte 0x000004C7 +_0804F124: .4byte 0x00000507 + + thumb_func_start sub_0804F128 +sub_0804F128: @ 0x0804F128 + movs r0, #1 + bx lr + + thumb_func_start sub_0804F12C +sub_0804F12C: @ 0x0804F12C + push {lr} + movs r0, #0x58 + bl sub_0807CC30 + cmp r0, #0 + bne _0804F144 + ldr r0, _0804F140 @ =gUnk_080F62E4 + bl sub_0804ADDC + b _0804F154 + .align 2, 0 +_0804F140: .4byte gUnk_080F62E4 +_0804F144: + movs r0, #0x63 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804F154 + ldr r0, _0804F158 @ =gUnk_080F6324 + bl sub_0804ADDC +_0804F154: + pop {pc} + .align 2, 0 +_0804F158: .4byte gUnk_080F6324 + + thumb_func_start sub_0804F15C +sub_0804F15C: @ 0x0804F15C + movs r0, #1 + bx lr + + thumb_func_start nullsub_401 +nullsub_401: @ 0x0804F160 + bx lr + .align 2, 0 + + thumb_func_start sub_0804F164 +sub_0804F164: @ 0x0804F164 + movs r0, #1 + bx lr + + thumb_func_start sub_0804F168 +sub_0804F168: @ 0x0804F168 + push {lr} + movs r0, #0xb1 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804F180 + ldr r0, _0804F17C @ =gUnk_080F6564 + bl sub_0804ADDC + b _0804F186 + .align 2, 0 +_0804F17C: .4byte gUnk_080F6564 +_0804F180: + ldr r0, _0804F188 @ =gUnk_080F6584 + bl sub_0804ADDC +_0804F186: + pop {pc} + .align 2, 0 +_0804F188: .4byte gUnk_080F6584 + + thumb_func_start sub_0804F18C +sub_0804F18C: @ 0x0804F18C + movs r0, #1 + bx lr + + thumb_func_start sub_0804F190 +sub_0804F190: @ 0x0804F190 + push {lr} + movs r0, #5 + bl sub_0805B4D0 + movs r0, #6 + bl sub_0807CC30 + cmp r0, #0 + beq _0804F1B6 + movs r0, #0x80 + lsls r0, r0, #1 + movs r1, #5 + bl sub_0807CB10 + cmp r0, #0 + bne _0804F1B6 + ldr r0, _0804F1D4 @ =gUnk_080F66AC + bl sub_0804ADDC +_0804F1B6: + movs r2, #0xf4 + lsls r2, r2, #1 + movs r3, #0xac + lsls r3, r3, #1 + movs r0, #8 + movs r1, #0 + bl sub_08052CA4 + ldr r2, _0804F1D8 @ =gUnk_02033A90 + ldrb r1, [r2] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2] + pop {pc} + .align 2, 0 +_0804F1D4: .4byte gUnk_080F66AC +_0804F1D8: .4byte gUnk_02033A90 + + thumb_func_start sub_0804F1DC +sub_0804F1DC: @ 0x0804F1DC + movs r0, #1 + bx lr + + thumb_func_start nullsub_402 +nullsub_402: @ 0x0804F1E0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804F1E4 +sub_0804F1E4: @ 0x0804F1E4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_403 +nullsub_403: @ 0x0804F1E8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804F1EC +sub_0804F1EC: @ 0x0804F1EC + movs r0, #1 + bx lr + + thumb_func_start nullsub_404 +nullsub_404: @ 0x0804F1F0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804F1F4 +sub_0804F1F4: @ 0x0804F1F4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_405 +nullsub_405: @ 0x0804F1F8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804F1FC +sub_0804F1FC: @ 0x0804F1FC + movs r0, #1 + bx lr + + thumb_func_start nullsub_406 +nullsub_406: @ 0x0804F200 + bx lr + .align 2, 0 + + thumb_func_start sub_0804F204 +sub_0804F204: @ 0x0804F204 + movs r0, #1 + bx lr + + thumb_func_start nullsub_407 +nullsub_407: @ 0x0804F208 + bx lr + .align 2, 0 + + thumb_func_start sub_0804F20C +sub_0804F20C: @ 0x0804F20C + movs r0, #1 + bx lr + + thumb_func_start nullsub_408 +nullsub_408: @ 0x0804F210 + bx lr + .align 2, 0 + + thumb_func_start sub_0804F214 +sub_0804F214: @ 0x0804F214 + movs r0, #1 + bx lr + + thumb_func_start nullsub_409 +nullsub_409: @ 0x0804F218 + bx lr + .align 2, 0 + + thumb_func_start sub_0804F21C +sub_0804F21C: @ 0x0804F21C + movs r0, #1 + bx lr + + thumb_func_start nullsub_410 +nullsub_410: @ 0x0804F220 + bx lr + .align 2, 0 + + thumb_func_start sub_0804F224 +sub_0804F224: @ 0x0804F224 + movs r0, #1 + bx lr + + thumb_func_start nullsub_411 +nullsub_411: @ 0x0804F228 + bx lr + .align 2, 0 + + thumb_func_start sub_0804F22C +sub_0804F22C: @ 0x0804F22C + movs r0, #1 + bx lr + + thumb_func_start sub_0804F230 +sub_0804F230: @ 0x0804F230 + push {lr} + movs r0, #0 + bl sub_0805ADD8 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804F23C +sub_0804F23C: @ 0x0804F23C + push {lr} + movs r0, #0x6d + bl sub_0807CBD0 + cmp r0, #0 + bne _0804F252 + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #7 + bl sub_08050054 +_0804F252: + movs r0, #0x49 + bl sub_0807CD04 + movs r0, #1 + pop {pc} + + thumb_func_start sub_0804F25C +sub_0804F25C: @ 0x0804F25C + push {r4, lr} + movs r0, #0 + bl sub_0805ADD8 + movs r0, #0x6d + bl sub_0807CBD0 + cmp r0, #0 + bne _0804F27A + ldr r0, _0804F2B0 @ =gUnk_080F70A8 + bl sub_0804ADDC + movs r0, #0x1c + bl sub_0807CD80 +_0804F27A: + movs r0, #0x15 + bl sub_0807CC30 + cmp r0, #0 + bne _0804F28E + ldr r0, _0804F2B4 @ =gUnk_02033A90 + ldr r1, _0804F2B8 @ =0x00000864 + adds r0, r0, r1 + movs r1, #0x10 + str r1, [r0] +_0804F28E: + ldr r4, _0804F2BC @ =gUnk_02002A40 + ldr r0, [r4, #0x40] + movs r1, #0x80 + lsls r1, r1, #0x17 + ands r0, r1 + cmp r0, #0 + bne _0804F2A2 + ldr r0, _0804F2C0 @ =gUnk_080F70D8 + bl sub_0804ADDC +_0804F2A2: + ldrb r0, [r4, #8] + cmp r0, #3 + bls _0804F2AE + ldr r0, _0804F2C4 @ =gUnk_080F7088 + bl sub_0804ADDC +_0804F2AE: + pop {r4, pc} + .align 2, 0 +_0804F2B0: .4byte gUnk_080F70A8 +_0804F2B4: .4byte gUnk_02033A90 +_0804F2B8: .4byte 0x00000864 +_0804F2BC: .4byte gUnk_02002A40 +_0804F2C0: .4byte gUnk_080F70D8 +_0804F2C4: .4byte gUnk_080F7088 + + thumb_func_start sub_0804F2C8 +sub_0804F2C8: @ 0x0804F2C8 + push {lr} + ldr r0, _0804F2E0 @ =gUnk_02002A40 + ldr r0, [r0, #0x40] + movs r1, #0x80 + lsls r1, r1, #0x17 + ands r0, r1 + cmp r0, #0 + bne _0804F2DE + ldr r0, _0804F2E4 @ =gUnk_080F70D8 + bl sub_0804ADDC +_0804F2DE: + pop {pc} + .align 2, 0 +_0804F2E0: .4byte gUnk_02002A40 +_0804F2E4: .4byte gUnk_080F70D8 + + thumb_func_start sub_0804F2E8 +sub_0804F2E8: @ 0x0804F2E8 + movs r0, #1 + bx lr + + thumb_func_start sub_0804F2EC +sub_0804F2EC: @ 0x0804F2EC + push {lr} + movs r0, #0 + bl sub_0805ADD8 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804F2F8 +sub_0804F2F8: @ 0x0804F2F8 + movs r0, #1 + bx lr + + thumb_func_start sub_0804F2FC +sub_0804F2FC: @ 0x0804F2FC + push {lr} + movs r0, #0 + bl sub_0805ADD8 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804F308 +sub_0804F308: @ 0x0804F308 + push {lr} + movs r0, #0x11 + bl sub_0807CA84 + cmp r0, #0 + beq _0804F324 + movs r0, #0x12 + bl sub_0807CA84 + cmp r0, #0 + bne _0804F324 + ldr r1, _0804F328 @ =gUnk_02034350 + ldr r0, _0804F32C @ =gUnk_080F7680 + str r0, [r1, #0x74] +_0804F324: + movs r0, #1 + pop {pc} + .align 2, 0 +_0804F328: .4byte gUnk_02034350 +_0804F32C: .4byte gUnk_080F7680 + + thumb_func_start sub_0804F330 +sub_0804F330: @ 0x0804F330 + push {r4, lr} + movs r0, #0 + bl sub_0805ADD8 + ldr r0, _0804F38C @ =gUnk_02002A40 + ldrb r0, [r0, #8] + cmp r0, #3 + bls _0804F346 + ldr r0, _0804F390 @ =gUnk_080F7500 + bl sub_0804ADDC +_0804F346: + movs r0, #0x11 + bl sub_0807CA84 + cmp r0, #0 + beq _0804F38A + movs r0, #0x12 + bl sub_0807CA84 + cmp r0, #0 + bne _0804F38A + ldr r0, _0804F394 @ =gUnk_080F7550 + bl sub_0804ADDC + ldr r4, _0804F398 @ =0x00004072 + ldr r1, _0804F39C @ =0x00000311 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F3A0 @ =0x00000351 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F3A4 @ =0x000003D9 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F3A8 @ =0x00000419 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 +_0804F38A: + pop {r4, pc} + .align 2, 0 +_0804F38C: .4byte gUnk_02002A40 +_0804F390: .4byte gUnk_080F7500 +_0804F394: .4byte gUnk_080F7550 +_0804F398: .4byte 0x00004072 +_0804F39C: .4byte 0x00000311 +_0804F3A0: .4byte 0x00000351 +_0804F3A4: .4byte 0x000003D9 +_0804F3A8: .4byte 0x00000419 + + thumb_func_start sub_0804F3AC +sub_0804F3AC: @ 0x0804F3AC + movs r0, #1 + bx lr + + thumb_func_start sub_0804F3B0 +sub_0804F3B0: @ 0x0804F3B0 + push {lr} + movs r0, #0 + bl sub_0805ADD8 + movs r0, #0x80 + lsls r0, r0, #2 + movs r1, #0x8f + bl sub_0807CB10 + cmp r0, #0 + beq _0804F3DC + movs r0, #0x1d + bl sub_0807CC30 + cmp r0, #0 + bne _0804F3EC + ldr r0, _0804F3D8 @ =gUnk_080F77C0 + bl sub_0804ADDC + b _0804F3EC + .align 2, 0 +_0804F3D8: .4byte gUnk_080F77C0 +_0804F3DC: + movs r0, #0x40 + bl sub_0807CA84 + cmp r0, #0 + beq _0804F3EC + ldr r0, _0804F444 @ =gUnk_080F77F0 + bl sub_0804ADDC +_0804F3EC: + movs r0, #0x15 + bl sub_0807CC30 + cmp r0, #0 + beq _0804F406 + movs r0, #0x40 + bl sub_0807CA84 + cmp r0, #0 + bne _0804F406 + ldr r0, _0804F448 @ =gUnk_080F7810 + bl sub_0804ADDC +_0804F406: + movs r0, #0x29 + bl sub_0801E7F4 + cmp r0, #0 + bne _0804F42A + ldr r0, _0804F44C @ =gUnk_080F7860 + bl sub_0804ADDC + ldr r0, _0804F450 @ =0x00004072 + ldr r1, _0804F454 @ =0x00000D88 + movs r2, #1 + bl sub_0800015E + ldr r0, _0804F458 @ =0x00004096 + ldr r1, _0804F45C @ =0x00000DC8 + movs r2, #1 + bl sub_0800015E +_0804F42A: + ldr r0, _0804F460 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + cmp r0, #3 + bls _0804F442 + movs r0, #0x5c + bl sub_0807CC30 + cmp r0, #0 + beq _0804F442 + ldr r0, _0804F464 @ =gUnk_080F78A0 + bl sub_0804ADDC +_0804F442: + pop {pc} + .align 2, 0 +_0804F444: .4byte gUnk_080F77F0 +_0804F448: .4byte gUnk_080F7810 +_0804F44C: .4byte gUnk_080F7860 +_0804F450: .4byte 0x00004072 +_0804F454: .4byte 0x00000D88 +_0804F458: .4byte 0x00004096 +_0804F45C: .4byte 0x00000DC8 +_0804F460: .4byte gUnk_02002A40 +_0804F464: .4byte gUnk_080F78A0 + + thumb_func_start sub_0804F468 +sub_0804F468: @ 0x0804F468 + push {lr} + movs r0, #0x15 + bl sub_0807CC30 + cmp r0, #0 + beq _0804F48A + movs r0, #0x11 + bl sub_0807CA84 + cmp r0, #0 + bne _0804F48A + ldr r0, _0804F4D0 @ =gUnk_02034350 + ldr r1, _0804F4D4 @ =gUnk_080F7CD0 + str r1, [r0, #0x6c] + adds r0, #0x88 + ldr r1, _0804F4D8 @ =sub_0804F5E8 + str r1, [r0] +_0804F48A: + movs r0, #3 + bl sub_0807CC30 + cmp r0, #0 + beq _0804F4BA + movs r0, #3 + bl sub_0807CA84 + cmp r0, #0 + beq _0804F4BA + movs r0, #0x8c + bl sub_0807CBD0 + adds r3, r0, #0 + cmp r3, #0 + bne _0804F4BA + ldr r1, _0804F4D0 @ =gUnk_02034350 + ldr r0, _0804F4DC @ =gUnk_080F7C80 + str r0, [r1, #0x6c] + adds r2, r1, #0 + adds r2, #0x88 + ldr r0, _0804F4E0 @ =sub_0804F4E4 + str r0, [r2] + str r3, [r1, #0x74] +_0804F4BA: + movs r0, #0x15 + bl sub_0807CC30 + cmp r0, #0 + beq _0804F4CA + movs r0, #0x64 + bl sub_0807CD80 +_0804F4CA: + movs r0, #1 + pop {pc} + .align 2, 0 +_0804F4D0: .4byte gUnk_02034350 +_0804F4D4: .4byte gUnk_080F7CD0 +_0804F4D8: .4byte sub_0804F5E8 +_0804F4DC: .4byte gUnk_080F7C80 +_0804F4E0: .4byte sub_0804F4E4 + + thumb_func_start sub_0804F4E4 +sub_0804F4E4: @ 0x0804F4E4 + push {lr} + movs r0, #0 + bl sub_0805ADD8 + bl sub_0804F578 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804F4F4 +sub_0804F4F4: @ 0x0804F4F4 + push {r4, lr} + bl sub_0804F4E4 + movs r0, #0x8b + bl sub_0807CBD0 + cmp r0, #0 + bne _0804F540 + ldr r0, _0804F558 @ =gUnk_080F7D70 + bl sub_0804ADDC + movs r4, #0xba + lsls r4, r4, #1 + ldr r1, _0804F55C @ =0x000007A2 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F560 @ =0x000007A3 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F564 @ =0x000007A5 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F568 @ =0x000007A6 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F56C @ =0x000007A7 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 +_0804F540: + movs r0, #0x15 + bl sub_0807CC30 + cmp r0, #0 + bne _0804F554 + ldr r0, _0804F570 @ =gUnk_02033A90 + ldr r1, _0804F574 @ =0x00000864 + adds r0, r0, r1 + movs r1, #0x13 + str r1, [r0] +_0804F554: + pop {r4, pc} + .align 2, 0 +_0804F558: .4byte gUnk_080F7D70 +_0804F55C: .4byte 0x000007A2 +_0804F560: .4byte 0x000007A3 +_0804F564: .4byte 0x000007A5 +_0804F568: .4byte 0x000007A6 +_0804F56C: .4byte 0x000007A7 +_0804F570: .4byte gUnk_02033A90 +_0804F574: .4byte 0x00000864 + + thumb_func_start sub_0804F578 +sub_0804F578: @ 0x0804F578 + push {lr} + movs r0, #0x8e + bl sub_0807CBD0 + cmp r0, #0 + bne _0804F590 + ldr r0, _0804F58C @ =gUnk_080F7DC0 + bl sub_0804ADDC + b _0804F5CC + .align 2, 0 +_0804F58C: .4byte gUnk_080F7DC0 +_0804F590: + ldr r1, _0804F5D0 @ =0x0000094A + movs r0, #0x37 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F5D4 @ =0x0000094B + movs r0, #0x37 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F5D8 @ =0x0000094C + movs r0, #0x37 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F5DC @ =0x0000098A + movs r0, #0x37 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F5E0 @ =0x0000098B + movs r0, #0x37 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F5E4 @ =0x0000098C + movs r0, #0x37 + movs r2, #1 + bl sub_0807B314 +_0804F5CC: + pop {pc} + .align 2, 0 +_0804F5D0: .4byte 0x0000094A +_0804F5D4: .4byte 0x0000094B +_0804F5D8: .4byte 0x0000094C +_0804F5DC: .4byte 0x0000098A +_0804F5E0: .4byte 0x0000098B +_0804F5E4: .4byte 0x0000098C + + thumb_func_start sub_0804F5E8 +sub_0804F5E8: @ 0x0804F5E8 + push {r4, lr} + bl sub_0804F4E4 + ldr r0, _0804F654 @ =0x000001D3 + ldr r1, _0804F658 @ =0x00000BDE + movs r2, #1 + bl sub_0807B314 + movs r4, #0xeb + lsls r4, r4, #1 + ldr r1, _0804F65C @ =0x00000BE2 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + movs r0, #0xea + lsls r0, r0, #1 + ldr r1, _0804F660 @ =0x00000C1F + movs r2, #1 + bl sub_0807B314 + ldr r0, _0804F664 @ =0x000001D5 + movs r1, #0xc2 + lsls r1, r1, #4 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F668 @ =0x00000C5E + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r4, _0804F66C @ =0x00004072 + ldr r1, _0804F670 @ =0x00000B9B + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F674 @ =0x00000BDB + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F678 @ =0x00000AA4 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F67C @ =0x00000AE4 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + pop {r4, pc} + .align 2, 0 +_0804F654: .4byte 0x000001D3 +_0804F658: .4byte 0x00000BDE +_0804F65C: .4byte 0x00000BE2 +_0804F660: .4byte 0x00000C1F +_0804F664: .4byte 0x000001D5 +_0804F668: .4byte 0x00000C5E +_0804F66C: .4byte 0x00004072 +_0804F670: .4byte 0x00000B9B +_0804F674: .4byte 0x00000BDB +_0804F678: .4byte 0x00000AA4 +_0804F67C: .4byte 0x00000AE4 + + thumb_func_start sub_0804F680 +sub_0804F680: @ 0x0804F680 + push {r4, r5, lr} + adds r4, r1, #0 + adds r5, r2, #0 + movs r1, #2 + movs r2, #0 + bl sub_080A29AC + adds r2, r0, #0 + cmp r2, #0 + beq _0804F6A2 + ldr r0, _0804F6A4 @ =gUnk_03000BF0 + ldrh r1, [r0, #6] + adds r1, r1, r4 + strh r1, [r2, #0x2e] + ldrh r0, [r0, #8] + adds r0, r0, r5 + strh r0, [r2, #0x32] +_0804F6A2: + pop {r4, r5, pc} + .align 2, 0 +_0804F6A4: .4byte gUnk_03000BF0 + + thumb_func_start sub_0804F6A8 +sub_0804F6A8: @ 0x0804F6A8 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xec + lsls r1, r1, #1 + movs r2, #0x84 + lsls r2, r2, #1 + bl sub_0804F680 + movs r1, #0x86 + lsls r1, r1, #2 + movs r2, #0xc4 + lsls r2, r2, #1 + adds r0, r4, #0 + bl sub_0804F680 + pop {r4, pc} + + thumb_func_start sub_0804F6C8 +sub_0804F6C8: @ 0x0804F6C8 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xf4 + lsls r1, r1, #1 + movs r2, #0x84 + lsls r2, r2, #1 + bl sub_0804F680 + movs r1, #0x82 + lsls r1, r1, #2 + movs r2, #0xc4 + lsls r2, r2, #1 + adds r0, r4, #0 + bl sub_0804F680 + pop {r4, pc} + + thumb_func_start sub_0804F6E8 +sub_0804F6E8: @ 0x0804F6E8 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #0xfc + lsls r5, r5, #1 + movs r2, #0x84 + lsls r2, r2, #1 + adds r1, r5, #0 + bl sub_0804F680 + movs r1, #0x96 + lsls r1, r1, #2 + movs r2, #0x9c + lsls r2, r2, #1 + adds r0, r4, #0 + bl sub_0804F680 + movs r2, #0xc4 + lsls r2, r2, #1 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0804F680 + movs r1, #0xcc + lsls r1, r1, #1 + movs r2, #0xac + lsls r2, r2, #1 + adds r0, r4, #0 + bl sub_0804F680 + pop {r4, r5, pc} + + thumb_func_start sub_0804F724 +sub_0804F724: @ 0x0804F724 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x82 + lsls r1, r1, #2 + movs r2, #0x84 + lsls r2, r2, #1 + bl sub_0804F680 + movs r1, #0x96 + lsls r1, r1, #2 + movs r5, #0xa4 + lsls r5, r5, #1 + adds r0, r4, #0 + adds r2, r5, #0 + bl sub_0804F680 + movs r1, #0xf4 + lsls r1, r1, #1 + movs r2, #0xc4 + lsls r2, r2, #1 + adds r0, r4, #0 + bl sub_0804F680 + movs r1, #0xcc + lsls r1, r1, #1 + adds r0, r4, #0 + adds r2, r5, #0 + bl sub_0804F680 + pop {r4, r5, pc} + + thumb_func_start sub_0804F760 +sub_0804F760: @ 0x0804F760 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x86 + lsls r1, r1, #2 + movs r2, #0x84 + lsls r2, r2, #1 + bl sub_0804F680 + movs r1, #0x96 + lsls r1, r1, #2 + movs r2, #0xac + lsls r2, r2, #1 + adds r0, r4, #0 + bl sub_0804F680 + movs r1, #0xec + lsls r1, r1, #1 + movs r2, #0xc4 + lsls r2, r2, #1 + adds r0, r4, #0 + bl sub_0804F680 + movs r1, #0xcc + lsls r1, r1, #1 + movs r2, #0x9c + lsls r2, r2, #1 + adds r0, r4, #0 + bl sub_0804F680 + pop {r4, pc} + + thumb_func_start sub_0804F79C +sub_0804F79C: @ 0x0804F79C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x35 + movs r2, #0 + bl sub_080A29AC + adds r2, r0, #0 + cmp r2, #0 + beq _0804F7D0 + ldrb r1, [r2, #0x19] + movs r0, #0x3f + ands r0, r1 + strb r0, [r2, #0x19] + ldr r1, _0804F804 @ =gUnk_03000BF0 + movs r3, #0xdc + lsls r3, r3, #1 + adds r0, r3, #0 + ldrh r3, [r1, #6] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + movs r3, #0xa4 + lsls r3, r3, #1 + adds r0, r3, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r2, #0x32] +_0804F7D0: + adds r0, r4, #0 + movs r1, #0x35 + movs r2, #0 + bl sub_080A29AC + adds r2, r0, #0 + cmp r2, #0 + beq _0804F802 + ldrb r1, [r2, #0x19] + movs r0, #0x3f + ands r0, r1 + strb r0, [r2, #0x19] + ldr r1, _0804F804 @ =gUnk_03000BF0 + movs r3, #0x8e + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r3, [r1, #6] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + movs r3, #0xa4 + lsls r3, r3, #1 + adds r0, r3, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r2, #0x32] +_0804F802: + pop {r4, pc} + .align 2, 0 +_0804F804: .4byte gUnk_03000BF0 + + thumb_func_start sub_0804F808 +sub_0804F808: @ 0x0804F808 + push {r4, lr} + ldr r4, _0804F824 @ =0x000001D3 + ldr r1, _0804F828 @ =0x0000041D + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F82C @ =0x00000621 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + pop {r4, pc} + .align 2, 0 +_0804F824: .4byte 0x000001D3 +_0804F828: .4byte 0x0000041D +_0804F82C: .4byte 0x00000621 + + thumb_func_start sub_0804F830 +sub_0804F830: @ 0x0804F830 + push {r4, lr} + movs r4, #0xea + lsls r4, r4, #1 + ldr r1, _0804F850 @ =0x0000041E + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + movs r1, #0xc4 + lsls r1, r1, #3 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + pop {r4, pc} + .align 2, 0 +_0804F850: .4byte 0x0000041E + + thumb_func_start sub_0804F854 +sub_0804F854: @ 0x0804F854 + push {r4, r5, lr} + ldr r5, _0804F888 @ =0x000001D5 + ldr r1, _0804F88C @ =0x0000041F + adds r0, r5, #0 + movs r2, #1 + bl sub_0807B314 + movs r4, #0xea + lsls r4, r4, #1 + ldr r1, _0804F890 @ =0x000004E5 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F894 @ =0x0000061F + adds r0, r5, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F898 @ =0x00000559 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + pop {r4, r5, pc} + .align 2, 0 +_0804F888: .4byte 0x000001D5 +_0804F88C: .4byte 0x0000041F +_0804F890: .4byte 0x000004E5 +_0804F894: .4byte 0x0000061F +_0804F898: .4byte 0x00000559 + + thumb_func_start sub_0804F89C +sub_0804F89C: @ 0x0804F89C + push {r4, r5, lr} + movs r5, #0xeb + lsls r5, r5, #1 + movs r1, #0x84 + lsls r1, r1, #3 + adds r0, r5, #0 + movs r2, #1 + bl sub_0807B314 + ldr r4, _0804F8D0 @ =0x000001D5 + ldr r1, _0804F8D4 @ =0x00000525 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F8D8 @ =0x0000061E + adds r0, r5, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F8DC @ =0x00000519 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + pop {r4, r5, pc} + .align 2, 0 +_0804F8D0: .4byte 0x000001D5 +_0804F8D4: .4byte 0x00000525 +_0804F8D8: .4byte 0x0000061E +_0804F8DC: .4byte 0x00000519 + + thumb_func_start sub_0804F8E0 +sub_0804F8E0: @ 0x0804F8E0 + push {r4, r5, lr} + ldr r5, _0804F914 @ =0x000001D3 + ldr r1, _0804F918 @ =0x00000421 + adds r0, r5, #0 + movs r2, #1 + bl sub_0807B314 + movs r4, #0xeb + lsls r4, r4, #1 + ldr r1, _0804F91C @ =0x00000565 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F920 @ =0x0000061D + adds r0, r5, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F924 @ =0x000004D9 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + pop {r4, r5, pc} + .align 2, 0 +_0804F914: .4byte 0x000001D3 +_0804F918: .4byte 0x00000421 +_0804F91C: .4byte 0x00000565 +_0804F920: .4byte 0x0000061D +_0804F924: .4byte 0x000004D9 + + thumb_func_start sub_0804F928 +sub_0804F928: @ 0x0804F928 + push {lr} + ldr r0, _0804F93C @ =0x0000041D + movs r1, #1 + bl sub_0807BA8C + ldr r0, _0804F940 @ =0x00000621 + movs r1, #1 + bl sub_0807BA8C + pop {pc} + .align 2, 0 +_0804F93C: .4byte 0x0000041D +_0804F940: .4byte 0x00000621 + + thumb_func_start sub_0804F944 +sub_0804F944: @ 0x0804F944 + push {lr} + ldr r0, _0804F95C @ =0x0000041E + movs r1, #1 + bl sub_0807BA8C + movs r0, #0xc4 + lsls r0, r0, #3 + movs r1, #1 + bl sub_0807BA8C + pop {pc} + .align 2, 0 +_0804F95C: .4byte 0x0000041E + + thumb_func_start sub_0804F960 +sub_0804F960: @ 0x0804F960 + push {lr} + ldr r0, _0804F984 @ =0x0000041F + movs r1, #1 + bl sub_0807BA8C + ldr r0, _0804F988 @ =0x000004E5 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _0804F98C @ =0x0000061F + movs r1, #1 + bl sub_0807BA8C + ldr r0, _0804F990 @ =0x00000559 + movs r1, #1 + bl sub_0807BA8C + pop {pc} + .align 2, 0 +_0804F984: .4byte 0x0000041F +_0804F988: .4byte 0x000004E5 +_0804F98C: .4byte 0x0000061F +_0804F990: .4byte 0x00000559 + + thumb_func_start sub_0804F994 +sub_0804F994: @ 0x0804F994 + push {lr} + movs r0, #0x84 + lsls r0, r0, #3 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _0804F9BC @ =0x00000525 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _0804F9C0 @ =0x0000061E + movs r1, #1 + bl sub_0807BA8C + ldr r0, _0804F9C4 @ =0x00000519 + movs r1, #1 + bl sub_0807BA8C + pop {pc} + .align 2, 0 +_0804F9BC: .4byte 0x00000525 +_0804F9C0: .4byte 0x0000061E +_0804F9C4: .4byte 0x00000519 + + thumb_func_start sub_0804F9C8 +sub_0804F9C8: @ 0x0804F9C8 + push {lr} + ldr r0, _0804F9EC @ =0x00000421 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _0804F9F0 @ =0x00000565 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _0804F9F4 @ =0x0000061D + movs r1, #1 + bl sub_0807BA8C + ldr r0, _0804F9F8 @ =0x000004D9 + movs r1, #1 + bl sub_0807BA8C + pop {pc} + .align 2, 0 +_0804F9EC: .4byte 0x00000421 +_0804F9F0: .4byte 0x00000565 +_0804F9F4: .4byte 0x0000061D +_0804F9F8: .4byte 0x000004D9 + + thumb_func_start sub_0804F9FC +sub_0804F9FC: @ 0x0804F9FC + movs r0, #1 + bx lr + + thumb_func_start sub_0804FA00 +sub_0804FA00: @ 0x0804FA00 + push {lr} + movs r0, #0 + bl sub_0805ADD8 + ldr r0, _0804FA24 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + cmp r0, #3 + bls _0804FA20 + movs r0, #0x5c + bl sub_0807CC30 + cmp r0, #0 + beq _0804FA20 + ldr r0, _0804FA28 @ =gUnk_080F806C + bl sub_0804ADDC +_0804FA20: + pop {pc} + .align 2, 0 +_0804FA24: .4byte gUnk_02002A40 +_0804FA28: .4byte gUnk_080F806C + + thumb_func_start sub_0804FA2C +sub_0804FA2C: @ 0x0804FA2C + movs r0, #1 + bx lr + + thumb_func_start sub_0804FA30 +sub_0804FA30: @ 0x0804FA30 + push {lr} + movs r0, #0 + bl sub_0805ADD8 + movs r0, #3 + bl sub_0807CC30 + cmp r0, #0 + beq _0804FA5C + movs r0, #3 + bl sub_0807CA84 + cmp r0, #0 + beq _0804FA5C + movs r0, #0x9c + bl sub_0807CBD0 + cmp r0, #0 + bne _0804FA5C + ldr r0, _0804FA60 @ =gUnk_080F82E0 + bl sub_0804ADDC +_0804FA5C: + pop {pc} + .align 2, 0 +_0804FA60: .4byte gUnk_080F82E0 + + thumb_func_start sub_0804FA64 +sub_0804FA64: @ 0x0804FA64 + movs r0, #1 + bx lr + + thumb_func_start sub_0804FA68 +sub_0804FA68: @ 0x0804FA68 + push {lr} + movs r0, #0 + bl sub_0805ADD8 + movs r0, #0x21 + bl sub_0801E7F4 + cmp r0, #0 + beq _0804FA8E + movs r0, #0x80 + lsls r0, r0, #2 + movs r1, #0x42 + bl sub_0807CB10 + cmp r0, #0 + bne _0804FA8E + ldr r0, _0804FA90 @ =gUnk_080F8430 + bl sub_0804ADDC +_0804FA8E: + pop {pc} + .align 2, 0 +_0804FA90: .4byte gUnk_080F8430 + + thumb_func_start sub_0804FA94 +sub_0804FA94: @ 0x0804FA94 + movs r0, #1 + bx lr + + thumb_func_start sub_0804FA98 +sub_0804FA98: @ 0x0804FA98 + push {lr} + movs r0, #0x57 + bl sub_0807CC30 + cmp r0, #0 + beq _0804FAB0 + ldr r0, _0804FAAC @ =gUnk_080F85D8 + bl sub_0804ADDC + b _0804FAB6 + .align 2, 0 +_0804FAAC: .4byte gUnk_080F85D8 +_0804FAB0: + ldr r0, _0804FAC8 @ =gUnk_080F85F8 + bl sub_0804ADDC +_0804FAB6: + movs r0, #0xc + bl sub_0807CA84 + cmp r0, #0 + bne _0804FAC6 + movs r0, #8 + bl sub_0807CD34 +_0804FAC6: + pop {pc} + .align 2, 0 +_0804FAC8: .4byte gUnk_080F85F8 + + thumb_func_start sub_0804FACC +sub_0804FACC: @ 0x0804FACC + movs r0, #1 + bx lr + + thumb_func_start nullsub_412 +nullsub_412: @ 0x0804FAD0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FAD4 +sub_0804FAD4: @ 0x0804FAD4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_413 +nullsub_413: @ 0x0804FAD8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FADC +sub_0804FADC: @ 0x0804FADC + movs r0, #1 + bx lr + + thumb_func_start nullsub_414 +nullsub_414: @ 0x0804FAE0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FAE4 +sub_0804FAE4: @ 0x0804FAE4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_415 +nullsub_415: @ 0x0804FAE8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FAEC +sub_0804FAEC: @ 0x0804FAEC + movs r0, #1 + bx lr + + thumb_func_start nullsub_416 +nullsub_416: @ 0x0804FAF0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FAF4 +sub_0804FAF4: @ 0x0804FAF4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_417 +nullsub_417: @ 0x0804FAF8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FAFC +sub_0804FAFC: @ 0x0804FAFC + movs r0, #1 + bx lr + + thumb_func_start nullsub_418 +nullsub_418: @ 0x0804FB00 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FB04 +sub_0804FB04: @ 0x0804FB04 + movs r0, #1 + bx lr + + thumb_func_start nullsub_419 +nullsub_419: @ 0x0804FB08 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FB0C +sub_0804FB0C: @ 0x0804FB0C + movs r0, #1 + bx lr + + thumb_func_start nullsub_420 +nullsub_420: @ 0x0804FB10 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FB14 +sub_0804FB14: @ 0x0804FB14 + movs r0, #1 + bx lr + + thumb_func_start nullsub_421 +nullsub_421: @ 0x0804FB18 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FB1C +sub_0804FB1C: @ 0x0804FB1C + movs r0, #1 + bx lr + + thumb_func_start nullsub_422 +nullsub_422: @ 0x0804FB20 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FB24 +sub_0804FB24: @ 0x0804FB24 + movs r0, #1 + bx lr + + thumb_func_start nullsub_423 +nullsub_423: @ 0x0804FB28 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FB2C +sub_0804FB2C: @ 0x0804FB2C + movs r0, #1 + bx lr + + thumb_func_start sub_0804FB30 +sub_0804FB30: @ 0x0804FB30 + push {lr} + movs r0, #0x11 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804FB64 + movs r0, #0 + bl sub_0807CD10 + movs r0, #1 + bl sub_0807CD10 + movs r0, #0x80 + lsls r0, r0, #1 + bl sub_0805308C + movs r0, #0x12 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804FB64 + movs r0, #0x73 + movs r1, #0xcb + movs r2, #1 + bl sub_0807B314 +_0804FB64: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804FB68 +sub_0804FB68: @ 0x0804FB68 + movs r0, #1 + bx lr + + thumb_func_start nullsub_089 +nullsub_089: @ 0x0804FB6C + bx lr + .align 2, 0 + + thumb_func_start sub_0804FB70 +sub_0804FB70: @ 0x0804FB70 + movs r0, #1 + bx lr + + thumb_func_start nullsub_90 +nullsub_90: @ 0x0804FB74 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FB78 +sub_0804FB78: @ 0x0804FB78 + movs r0, #1 + bx lr + + thumb_func_start nullsub_91 +nullsub_91: @ 0x0804FB7C + bx lr + .align 2, 0 + + thumb_func_start sub_0804FB80 +sub_0804FB80: @ 0x0804FB80 + movs r0, #1 + bx lr + + thumb_func_start nullsub_92 +nullsub_92: @ 0x0804FB84 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FB88 +sub_0804FB88: @ 0x0804FB88 + movs r0, #1 + bx lr + + thumb_func_start nullsub_93 +nullsub_93: @ 0x0804FB8C + bx lr + .align 2, 0 + + thumb_func_start sub_0804FB90 +sub_0804FB90: @ 0x0804FB90 + movs r0, #1 + bx lr + + thumb_func_start nullsub_94 +nullsub_94: @ 0x0804FB94 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FB98 +sub_0804FB98: @ 0x0804FB98 + movs r0, #1 + bx lr + + thumb_func_start nullsub_95 +nullsub_95: @ 0x0804FB9C + bx lr + .align 2, 0 + + thumb_func_start sub_0804FBA0 +sub_0804FBA0: @ 0x0804FBA0 + movs r0, #1 + bx lr + + thumb_func_start nullsub_96 +nullsub_96: @ 0x0804FBA4 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FBA8 +sub_0804FBA8: @ 0x0804FBA8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_97 +nullsub_97: @ 0x0804FBAC + bx lr + .align 2, 0 + + thumb_func_start sub_0804FBB0 +sub_0804FBB0: @ 0x0804FBB0 + movs r0, #1 + bx lr + + thumb_func_start nullsub_98 +nullsub_98: @ 0x0804FBB4 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FBB8 +sub_0804FBB8: @ 0x0804FBB8 + movs r0, #1 + bx lr + + thumb_func_start sub_0804FBBC +sub_0804FBBC: @ 0x0804FBBC + push {lr} + ldr r0, _0804FBD4 @ =gUnk_02002A40 + ldr r0, [r0, #0x40] + movs r1, #0x80 + lsls r1, r1, #0x12 + ands r0, r1 + cmp r0, #0 + bne _0804FBD2 + ldr r0, _0804FBD8 @ =gUnk_080F9304 + bl sub_0804ADDC +_0804FBD2: + pop {pc} + .align 2, 0 +_0804FBD4: .4byte gUnk_02002A40 +_0804FBD8: .4byte gUnk_080F9304 + + thumb_func_start sub_0804FBDC +sub_0804FBDC: @ 0x0804FBDC + push {lr} + ldr r0, _0804FBF4 @ =gUnk_02002A40 + ldr r0, [r0, #0x40] + movs r1, #0x80 + lsls r1, r1, #0x12 + ands r0, r1 + cmp r0, #0 + bne _0804FBF2 + ldr r0, _0804FBF8 @ =gUnk_080F9304 + bl sub_0804ADDC +_0804FBF2: + pop {pc} + .align 2, 0 +_0804FBF4: .4byte gUnk_02002A40 +_0804FBF8: .4byte gUnk_080F9304 + + thumb_func_start sub_0804FBFC +sub_0804FBFC: @ 0x0804FBFC + movs r0, #1 + bx lr + + thumb_func_start nullsub_424 +nullsub_424: @ 0x0804FC00 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FC04 +sub_0804FC04: @ 0x0804FC04 + movs r0, #1 + bx lr + + thumb_func_start nullsub_425 +nullsub_425: @ 0x0804FC08 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FC0C +sub_0804FC0C: @ 0x0804FC0C + movs r0, #1 + bx lr + + thumb_func_start nullsub_426 +nullsub_426: @ 0x0804FC10 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FC14 +sub_0804FC14: @ 0x0804FC14 + movs r0, #1 + bx lr + + thumb_func_start nullsub_427 +nullsub_427: @ 0x0804FC18 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FC1C +sub_0804FC1C: @ 0x0804FC1C + movs r0, #1 + bx lr + + thumb_func_start nullsub_428 +nullsub_428: @ 0x0804FC20 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FC24 +sub_0804FC24: @ 0x0804FC24 + movs r0, #1 + bx lr + + thumb_func_start nullsub_429 +nullsub_429: @ 0x0804FC28 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FC2C +sub_0804FC2C: @ 0x0804FC2C + movs r0, #1 + bx lr + + thumb_func_start nullsub_430 +nullsub_430: @ 0x0804FC30 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FC34 +sub_0804FC34: @ 0x0804FC34 + movs r0, #1 + bx lr + + thumb_func_start nullsub_431 +nullsub_431: @ 0x0804FC38 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FC3C +sub_0804FC3C: @ 0x0804FC3C + movs r0, #1 + bx lr + + thumb_func_start nullsub_432 +nullsub_432: @ 0x0804FC40 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FC44 +sub_0804FC44: @ 0x0804FC44 + movs r0, #1 + bx lr + + thumb_func_start nullsub_433 +nullsub_433: @ 0x0804FC48 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FC4C +sub_0804FC4C: @ 0x0804FC4C + push {lr} + movs r0, #0xe + bl sub_0801E7F4 + cmp r0, #0 + bne _0804FC5E + ldr r1, _0804FC64 @ =gUnk_02034350 + ldr r0, _0804FC68 @ =gUnk_080F9BF8 + str r0, [r1, #0x6c] +_0804FC5E: + movs r0, #1 + pop {pc} + .align 2, 0 +_0804FC64: .4byte gUnk_02034350 +_0804FC68: .4byte gUnk_080F9BF8 + + thumb_func_start sub_0804FC6C +sub_0804FC6C: @ 0x0804FC6C + push {lr} + movs r0, #2 + bl sub_0805B4D0 + movs r0, #0 + bl sub_0806D0B0 + pop {pc} + + thumb_func_start sub_0804FC7C +sub_0804FC7C: @ 0x0804FC7C + movs r0, #1 + bx lr + + thumb_func_start nullsub_99 +nullsub_99: @ 0x0804FC80 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FC84 +sub_0804FC84: @ 0x0804FC84 + movs r0, #1 + bx lr + + thumb_func_start nullsub_100 +nullsub_100: @ 0x0804FC88 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FC8C +sub_0804FC8C: @ 0x0804FC8C + movs r0, #1 + bx lr + + thumb_func_start nullsub_101 +nullsub_101: @ 0x0804FC90 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FC94 +sub_0804FC94: @ 0x0804FC94 + movs r0, #1 + bx lr + + thumb_func_start nullsub_102 +nullsub_102: @ 0x0804FC98 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FC9C +sub_0804FC9C: @ 0x0804FC9C + movs r0, #1 + bx lr + + thumb_func_start nullsub_103 +nullsub_103: @ 0x0804FCA0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FCA4 +sub_0804FCA4: @ 0x0804FCA4 + movs r0, #1 + bx lr + + thumb_func_start sub_0804FCA8 +sub_0804FCA8: @ 0x0804FCA8 + push {lr} + movs r0, #0x14 + bl sub_0801E7F4 + cmp r0, #0 + beq _0804FCBA + ldr r0, _0804FCCC @ =gUnk_080F9FA8 + bl sub_0804ADDC +_0804FCBA: + movs r0, #0x38 + bl sub_0807CA84 + cmp r0, #0 + bne _0804FCCA + ldr r0, _0804FCD0 @ =gUnk_080F9F88 + bl sub_0804ADDC +_0804FCCA: + pop {pc} + .align 2, 0 +_0804FCCC: .4byte gUnk_080F9FA8 +_0804FCD0: .4byte gUnk_080F9F88 + + thumb_func_start sub_0804FCD4 +sub_0804FCD4: @ 0x0804FCD4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_434 +nullsub_434: @ 0x0804FCD8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FCDC +sub_0804FCDC: @ 0x0804FCDC + movs r0, #1 + bx lr + + thumb_func_start nullsub_435 +nullsub_435: @ 0x0804FCE0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FCE4 +sub_0804FCE4: @ 0x0804FCE4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_436 +nullsub_436: @ 0x0804FCE8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FCEC +sub_0804FCEC: @ 0x0804FCEC + movs r0, #1 + bx lr + + thumb_func_start nullsub_437 +nullsub_437: @ 0x0804FCF0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FCF4 +sub_0804FCF4: @ 0x0804FCF4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_438 +nullsub_438: @ 0x0804FCF8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FCFC +sub_0804FCFC: @ 0x0804FCFC + movs r0, #1 + bx lr + + thumb_func_start nullsub_439 +nullsub_439: @ 0x0804FD00 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FD04 +sub_0804FD04: @ 0x0804FD04 + movs r0, #1 + bx lr + + thumb_func_start nullsub_440 +nullsub_440: @ 0x0804FD08 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FD0C +sub_0804FD0C: @ 0x0804FD0C + movs r0, #1 + bx lr + + thumb_func_start nullsub_441 +nullsub_441: @ 0x0804FD10 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FD14 +sub_0804FD14: @ 0x0804FD14 + movs r0, #1 + bx lr + + thumb_func_start nullsub_442 +nullsub_442: @ 0x0804FD18 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FD1C +sub_0804FD1C: @ 0x0804FD1C + movs r0, #1 + bx lr + + thumb_func_start nullsub_443 +nullsub_443: @ 0x0804FD20 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FD24 +sub_0804FD24: @ 0x0804FD24 + movs r0, #1 + bx lr + + thumb_func_start nullsub_444 +nullsub_444: @ 0x0804FD28 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FD2C +sub_0804FD2C: @ 0x0804FD2C + movs r0, #1 + bx lr + + thumb_func_start nullsub_445 +nullsub_445: @ 0x0804FD30 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FD34 +sub_0804FD34: @ 0x0804FD34 + movs r0, #1 + bx lr + + thumb_func_start nullsub_446 +nullsub_446: @ 0x0804FD38 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FD3C +sub_0804FD3C: @ 0x0804FD3C + movs r0, #1 + bx lr + + thumb_func_start nullsub_447 +nullsub_447: @ 0x0804FD40 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FD44 +sub_0804FD44: @ 0x0804FD44 + movs r0, #1 + bx lr + + thumb_func_start nullsub_448 +nullsub_448: @ 0x0804FD48 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FD4C +sub_0804FD4C: @ 0x0804FD4C + movs r0, #1 + bx lr + + thumb_func_start nullsub_449 +nullsub_449: @ 0x0804FD50 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FD54 +sub_0804FD54: @ 0x0804FD54 + movs r0, #1 + bx lr + + thumb_func_start sub_0804FD58 +sub_0804FD58: @ 0x0804FD58 + push {lr} + movs r0, #0x21 + bl sub_0801E7F4 + cmp r0, #0 + bne _0804FD6A + ldr r0, _0804FD6C @ =gUnk_080FA5D0 + bl sub_0804ADDC +_0804FD6A: + pop {pc} + .align 2, 0 +_0804FD6C: .4byte gUnk_080FA5D0 + + thumb_func_start sub_0804FD70 +sub_0804FD70: @ 0x0804FD70 + movs r0, #1 + bx lr + + thumb_func_start nullsub_450 +nullsub_450: @ 0x0804FD74 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FD78 +sub_0804FD78: @ 0x0804FD78 + movs r0, #1 + bx lr + + thumb_func_start nullsub_451 +nullsub_451: @ 0x0804FD7C + bx lr + .align 2, 0 + + thumb_func_start sub_0804FD80 +sub_0804FD80: @ 0x0804FD80 + movs r0, #1 + bx lr + + thumb_func_start nullsub_452 +nullsub_452: @ 0x0804FD84 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FD88 +sub_0804FD88: @ 0x0804FD88 + movs r0, #1 + bx lr + + thumb_func_start nullsub_453 +nullsub_453: @ 0x0804FD8C + bx lr + .align 2, 0 + + thumb_func_start sub_0804FD90 +sub_0804FD90: @ 0x0804FD90 + movs r0, #1 + bx lr + + thumb_func_start nullsub_454 +nullsub_454: @ 0x0804FD94 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FD98 +sub_0804FD98: @ 0x0804FD98 + movs r0, #1 + bx lr + + thumb_func_start nullsub_455 +nullsub_455: @ 0x0804FD9C + bx lr + .align 2, 0 + + thumb_func_start sub_0804FDA0 +sub_0804FDA0: @ 0x0804FDA0 + movs r0, #1 + bx lr + + thumb_func_start nullsub_456 +nullsub_456: @ 0x0804FDA4 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FDA8 +sub_0804FDA8: @ 0x0804FDA8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_457 +nullsub_457: @ 0x0804FDAC + bx lr + .align 2, 0 + + thumb_func_start sub_0804FDB0 +sub_0804FDB0: @ 0x0804FDB0 + movs r0, #1 + bx lr + + thumb_func_start nullsub_458 +nullsub_458: @ 0x0804FDB4 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FDB8 +sub_0804FDB8: @ 0x0804FDB8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_459 +nullsub_459: @ 0x0804FDBC + bx lr + .align 2, 0 + + thumb_func_start sub_0804FDC0 +sub_0804FDC0: @ 0x0804FDC0 + movs r0, #1 + bx lr + + thumb_func_start nullsub_460 +nullsub_460: @ 0x0804FDC4 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FDC8 +sub_0804FDC8: @ 0x0804FDC8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_461 +nullsub_461: @ 0x0804FDCC + bx lr + .align 2, 0 + + thumb_func_start sub_0804FDD0 +sub_0804FDD0: @ 0x0804FDD0 + movs r0, #1 + bx lr + + thumb_func_start nullsub_462 +nullsub_462: @ 0x0804FDD4 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FDD8 +sub_0804FDD8: @ 0x0804FDD8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_463 +nullsub_463: @ 0x0804FDDC + bx lr + .align 2, 0 + + thumb_func_start sub_0804FDE0 +sub_0804FDE0: @ 0x0804FDE0 + push {lr} + movs r0, #0x51 + bl sub_0807CC30 + cmp r0, #0 + beq _0804FDF6 + ldr r0, _0804FDFC @ =gUnk_02034350 + ldr r1, _0804FE00 @ =gUnk_080FAD48 + str r1, [r0, #0x6c] + movs r1, #0 + str r1, [r0, #0x74] +_0804FDF6: + movs r0, #1 + pop {pc} + .align 2, 0 +_0804FDFC: .4byte gUnk_02034350 +_0804FE00: .4byte gUnk_080FAD48 + + thumb_func_start sub_0804FE04 +sub_0804FE04: @ 0x0804FE04 + push {lr} + movs r0, #0x51 + bl sub_0807CC30 + cmp r0, #0 + beq _0804FE28 + ldr r0, _0804FE20 @ =gUnk_02033A90 + ldr r2, _0804FE24 @ =0x00000864 + adds r1, r0, r2 + subs r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] + b _0804FE2E + .align 2, 0 +_0804FE20: .4byte gUnk_02033A90 +_0804FE24: .4byte 0x00000864 +_0804FE28: + ldr r0, _0804FE3C @ =gUnk_080FACB8 + bl sub_0804ADDC +_0804FE2E: + movs r0, #0 + bl sub_0805B4D0 + bl sub_08059994 + pop {pc} + .align 2, 0 +_0804FE3C: .4byte gUnk_080FACB8 + + thumb_func_start sub_0804FE40 +sub_0804FE40: @ 0x0804FE40 + push {lr} + movs r0, #0 + bl sub_0805B4D0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804FE4C +sub_0804FE4C: @ 0x0804FE4C + movs r0, #1 + bx lr + + thumb_func_start nullsub_104 +nullsub_104: @ 0x0804FE50 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FE54 +sub_0804FE54: @ 0x0804FE54 + movs r0, #1 + bx lr + + thumb_func_start sub_0804FE58 +sub_0804FE58: @ 0x0804FE58 + push {lr} + movs r0, #1 + bl sub_0805B4D0 + movs r0, #3 + bl sub_0807CC30 + cmp r0, #0 + beq _0804FE7A + movs r0, #2 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804FE7A + ldr r0, _0804FEA0 @ =gUnk_080FAFE4 + bl sub_0804ADDC +_0804FE7A: + ldr r0, _0804FEA4 @ =gUnk_02002A40 + ldr r0, [r0, #0x40] + movs r1, #0x80 + lsls r1, r1, #0x11 + ands r0, r1 + cmp r0, #0 + bne _0804FE8E + ldr r0, _0804FEA8 @ =gUnk_080FB004 + bl sub_0804ADDC +_0804FE8E: + movs r0, #2 + bl sub_0807CA84 + cmp r0, #0 + beq _0804FE9E + movs r0, #0x56 + bl sub_0807CD04 +_0804FE9E: + pop {pc} + .align 2, 0 +_0804FEA0: .4byte gUnk_080FAFE4 +_0804FEA4: .4byte gUnk_02002A40 +_0804FEA8: .4byte gUnk_080FB004 + + thumb_func_start sub_0804FEAC +sub_0804FEAC: @ 0x0804FEAC + push {lr} + ldr r0, _0804FEC4 @ =gUnk_02002A40 + ldr r0, [r0, #0x40] + movs r1, #0x80 + lsls r1, r1, #0x11 + ands r0, r1 + cmp r0, #0 + bne _0804FEC2 + ldr r0, _0804FEC8 @ =gUnk_080FB004 + bl sub_0804ADDC +_0804FEC2: + pop {pc} + .align 2, 0 +_0804FEC4: .4byte gUnk_02002A40 +_0804FEC8: .4byte gUnk_080FB004 + + thumb_func_start sub_0804FECC +sub_0804FECC: @ 0x0804FECC + movs r0, #1 + bx lr + + thumb_func_start nullsub_464 +nullsub_464: @ 0x0804FED0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FED4 +sub_0804FED4: @ 0x0804FED4 + movs r0, #1 + bx lr + + thumb_func_start sub_0804FED8 +sub_0804FED8: @ 0x0804FED8 + push {lr} + movs r0, #0xbb + lsls r0, r0, #1 + ldr r1, _0804FEE8 @ =0x0000066F + movs r2, #1 + bl sub_0807B314 + pop {pc} + .align 2, 0 +_0804FEE8: .4byte 0x0000066F + + thumb_func_start sub_0804FEEC +sub_0804FEEC: @ 0x0804FEEC + movs r0, #1 + bx lr + + thumb_func_start nullsub_465 +nullsub_465: @ 0x0804FEF0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FEF4 +sub_0804FEF4: @ 0x0804FEF4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_466 +nullsub_466: @ 0x0804FEF8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FEFC +sub_0804FEFC: @ 0x0804FEFC + movs r0, #1 + bx lr + + thumb_func_start nullsub_467 +nullsub_467: @ 0x0804FF00 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FF04 +sub_0804FF04: @ 0x0804FF04 + movs r0, #1 + bx lr + + thumb_func_start nullsub_468 +nullsub_468: @ 0x0804FF08 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FF0C +sub_0804FF0C: @ 0x0804FF0C + movs r0, #1 + bx lr + + thumb_func_start nullsub_469 +nullsub_469: @ 0x0804FF10 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FF14 +sub_0804FF14: @ 0x0804FF14 + movs r0, #1 + bx lr + + thumb_func_start nullsub_470 +nullsub_470: @ 0x0804FF18 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FF1C +sub_0804FF1C: @ 0x0804FF1C + movs r0, #1 + bx lr + + thumb_func_start nullsub_471 +nullsub_471: @ 0x0804FF20 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FF24 +sub_0804FF24: @ 0x0804FF24 + movs r0, #1 + bx lr + + thumb_func_start nullsub_472 +nullsub_472: @ 0x0804FF28 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FF2C +sub_0804FF2C: @ 0x0804FF2C + movs r0, #1 + bx lr + + thumb_func_start nullsub_473 +nullsub_473: @ 0x0804FF30 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FF34 +sub_0804FF34: @ 0x0804FF34 + movs r0, #1 + bx lr + + thumb_func_start nullsub_474 +nullsub_474: @ 0x0804FF38 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FF3C +sub_0804FF3C: @ 0x0804FF3C + movs r0, #1 + bx lr + + thumb_func_start nullsub_475 +nullsub_475: @ 0x0804FF40 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FF44 +sub_0804FF44: @ 0x0804FF44 + movs r0, #1 + bx lr + + thumb_func_start nullsub_476 +nullsub_476: @ 0x0804FF48 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FF4C +sub_0804FF4C: @ 0x0804FF4C + movs r0, #1 + bx lr + + thumb_func_start nullsub_477 +nullsub_477: @ 0x0804FF50 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FF54 +sub_0804FF54: @ 0x0804FF54 + movs r0, #1 + bx lr + + thumb_func_start nullsub_478 +nullsub_478: @ 0x0804FF58 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FF5C +sub_0804FF5C: @ 0x0804FF5C + movs r0, #1 + bx lr + + thumb_func_start sub_0804FF60 +sub_0804FF60: @ 0x0804FF60 + push {lr} + movs r0, #0x70 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804FF72 + movs r0, #0x70 + bl sub_0807CCB4 +_0804FF72: + pop {pc} + + thumb_func_start sub_0804FF74 +sub_0804FF74: @ 0x0804FF74 + movs r0, #1 + bx lr + + thumb_func_start nullsub_105 +nullsub_105: @ 0x0804FF78 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FF7C +sub_0804FF7C: @ 0x0804FF7C + movs r0, #1 + bx lr + + thumb_func_start nullsub_106 +nullsub_106: @ 0x0804FF80 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FF84 +sub_0804FF84: @ 0x0804FF84 + movs r1, #0x80 + lsls r1, r1, #0x12 + strb r0, [r1, #6] + ldr r1, _0804FF94 @ =gUnk_0200B644 + movs r0, #1 + rsbs r0, r0, #0 + str r0, [r1] + bx lr + .align 2, 0 +_0804FF94: .4byte gUnk_0200B644 + + thumb_func_start sub_0804FF98 +sub_0804FF98: @ 0x0804FF98 + push {r4, r5, r6, r7, lr} + ldr r6, _0804FFD4 @ =gUnk_020354C0 + ldr r1, _0804FFD8 @ =gUnk_0200B644 + ldr r4, [r1] + movs r0, #0 + str r0, [r1] + movs r5, #0 + cmp r4, #0 + beq _0804FFD0 + ldr r7, _0804FFDC @ =gUnk_03005E98 +_0804FFAC: + movs r0, #1 + ands r0, r4 + cmp r0, #0 + beq _0804FFC6 + ldr r0, _0804FFE0 @ =gUnk_020176A0 + adds r0, r5, r0 + movs r2, #0xa0 + lsls r2, r2, #0x13 + adds r1, r5, r2 + ldrh r2, [r6, #2] + ldrb r3, [r6, #1] + bl _call_via_r7 +_0804FFC6: + adds r5, #0x20 + adds r6, #4 + lsrs r4, r4, #1 + cmp r4, #0 + bne _0804FFAC +_0804FFD0: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0804FFD4: .4byte gUnk_020354C0 +_0804FFD8: .4byte gUnk_0200B644 +_0804FFDC: .4byte gUnk_03005E98 +_0804FFE0: .4byte gUnk_020176A0 + + thumb_func_start sub_0804FFE4 +sub_0804FFE4: @ 0x0804FFE4 + push {r4, lr} + ldr r4, _08050000 @ =gUnk_03000FD0 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0801D630 + ldr r0, _08050004 @ =gUnk_020354C0 + movs r1, #0x80 + bl sub_0801D630 + movs r0, #1 + rsbs r0, r0, #0 + str r0, [r4, #4] + pop {r4, pc} + .align 2, 0 +_08050000: .4byte gUnk_03000FD0 +_08050004: .4byte gUnk_020354C0 + + thumb_func_start sub_08050008 +sub_08050008: @ 0x08050008 + push {lr} + ldr r0, _0805001C @ =gUnk_020354C0 + movs r1, #0x80 + bl sub_0801D630 + ldr r1, _08050020 @ =gUnk_03000FD0 + movs r0, #1 + rsbs r0, r0, #0 + str r0, [r1, #4] + pop {pc} + .align 2, 0 +_0805001C: .4byte gUnk_020354C0 +_08050020: .4byte gUnk_03000FD0 + + thumb_func_start sub_08050024 +sub_08050024: @ 0x08050024 + push {lr} + bl sub_0801E104 + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #5 + bl sub_08050054 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08050038 +sub_08050038: @ 0x08050038 + push {lr} + adds r3, r0, #0 + ldr r2, _0805004C @ =gUnk_03000FD0 + ldrh r1, [r2, #8] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08050050 + strh r3, [r2, #0xe] + b _08050052 + .align 2, 0 +_0805004C: .4byte gUnk_03000FD0 +_08050050: + strh r3, [r2, #0xc] +_08050052: + pop {pc} + + thumb_func_start sub_08050054 +sub_08050054: @ 0x08050054 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r2, _08050078 @ =gUnk_03000FD0 + movs r3, #0 + strh r1, [r2, #0xa] + strh r5, [r2, #8] + movs r0, #1 + strb r0, [r2] + adds r0, #0xff + strh r0, [r2, #0xc] + strh r3, [r2, #0xe] + movs r0, #2 + ands r0, r5 + adds r4, r2, #0 + cmp r0, #0 + beq _0805007C + movs r0, #0xf8 + b _0805007E + .align 2, 0 +_08050078: .4byte gUnk_03000FD0 +_0805007C: + movs r0, #0 +_0805007E: + strb r0, [r4, #2] + movs r0, #8 + ands r0, r5 + cmp r0, #0 + beq _080500A4 + ldr r1, _080500E4 @ =gUnk_03000000 + movs r0, #1 + strb r0, [r1, #2] + ldr r2, _080500E8 @ =gUnk_03000F50 + ldrh r0, [r2, #0x14] + movs r1, #0x40 + orrs r0, r1 + strh r0, [r2, #0x14] + ldrh r0, [r2, #0x20] + orrs r0, r1 + strh r0, [r2, #0x20] + ldrh r0, [r2, #0x2c] + orrs r1, r0 + strh r1, [r2, #0x2c] +_080500A4: + movs r0, #0x10 + ands r0, r5 + cmp r0, #0 + beq _080500E0 + ldrh r0, [r4, #0x16] + ldrh r1, [r4, #0x18] + bl sub_0801E1B8 + movs r1, #0x12 + ldrsh r0, [r4, r1] + movs r2, #0x14 + ldrsh r1, [r4, r2] + movs r3, #0x10 + ldrsh r2, [r4, r3] + bl sub_0801E1EC + movs r0, #1 + ands r0, r5 + cmp r0, #0 + bne _080500E0 + ldrh r1, [r4, #8] + ldr r0, _080500EC @ =0x0000FFFB + ands r0, r1 + strh r0, [r4, #8] + bl sub_08050008 + ldr r1, _080500F0 @ =gUnk_0200B644 + movs r0, #1 + rsbs r0, r0, #0 + str r0, [r1] +_080500E0: + pop {r4, r5, pc} + .align 2, 0 +_080500E4: .4byte gUnk_03000000 +_080500E8: .4byte gUnk_03000F50 +_080500EC: .4byte 0x0000FFFB +_080500F0: .4byte gUnk_0200B644 + + thumb_func_start sub_080500F4 +sub_080500F4: @ 0x080500F4 + ldr r1, _0805010C @ =gUnk_03000FD0 + strh r0, [r1, #0xa] + ldrh r0, [r1, #8] + movs r2, #1 + eors r0, r2 + strh r0, [r1, #8] + strb r2, [r1] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r1, #0xc] + bx lr + .align 2, 0 +_0805010C: .4byte gUnk_03000FD0 + + thumb_func_start sub_08050110 +sub_08050110: @ 0x08050110 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + adds r4, r2, #0 + movs r1, #1 + ands r1, r4 + cmp r1, #0 + beq _08050130 + ldr r1, _0805012C @ =gUnk_03000FD0 + movs r0, #0x96 + strh r0, [r1, #0x10] + adds r2, r1, #0 + b _08050136 + .align 2, 0 +_0805012C: .4byte gUnk_03000FD0 +_08050130: + ldr r0, _0805014C @ =gUnk_03000FD0 + strh r1, [r0, #0x10] + adds r2, r0, #0 +_08050136: + movs r1, #0 + strh r5, [r2, #0x12] + strh r6, [r2, #0x14] + ldr r0, _08050150 @ =0x00003F3F + strh r0, [r2, #0x16] + strh r1, [r2, #0x18] + adds r0, r4, #0 + adds r1, r3, #0 + bl sub_08050054 + pop {r4, r5, r6, pc} + .align 2, 0 +_0805014C: .4byte gUnk_03000FD0 +_08050150: .4byte 0x00003F3F + + thumb_func_start sub_08050154 +sub_08050154: @ 0x08050154 + push {r4, r5, r6, lr} + ldr r4, _08050180 @ =gUnk_03000FD0 + ldrh r0, [r4, #8] + movs r5, #0x1c + ands r5, r0 + movs r6, #0 + ldrb r0, [r4] + cmp r0, #0 + beq _080501BE + ldrh r0, [r4, #0xc] + ldrh r1, [r4, #0xa] + subs r0, r0, r1 + strh r0, [r4, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldrh r2, [r4, #0xe] + movs r3, #0xe + ldrsh r1, [r4, r3] + cmp r0, r1 + bgt _080501B8 + strh r2, [r4, #0xc] + b _080501B8 + .align 2, 0 +_08050180: .4byte gUnk_03000FD0 +_08050184: + mvns r0, r5 + adds r0, #1 + ands r0, r5 + eors r5, r0 + cmp r0, #8 + beq _080501A8 + cmp r0, #8 + bhi _0805019A + cmp r0, #4 + beq _080501A0 + b _080501B8 +_0805019A: + cmp r0, #0x10 + beq _080501B0 + b _080501B8 +_080501A0: + adds r0, r4, #0 + bl sub_080501C0 + b _080501B6 +_080501A8: + adds r0, r4, #0 + bl sub_08050230 + b _080501B6 +_080501B0: + adds r0, r4, #0 + bl sub_080502A4 +_080501B6: + orrs r6, r0 +_080501B8: + cmp r5, #0 + bne _08050184 + strb r6, [r4] +_080501BE: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080501C0 +sub_080501C0: @ 0x080501C0 + push {r4, r5, r6, r7, lr} + adds r3, r0, #0 + ldrh r1, [r3, #8] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080501DA + movs r0, #0xc + ldrsh r1, [r3, r0] + movs r0, #0x80 + lsls r0, r0, #1 + subs r5, r0, r1 + b _080501DE +_080501DA: + movs r2, #0xc + ldrsh r5, [r3, r2] +_080501DE: + ldr r0, _080501F8 @ =gUnk_03000FD0 + ldr r2, [r0, #4] + ldr r1, _080501FC @ =gUnk_020354C0 + movs r4, #0 + ldr r7, _08050200 @ =gUnk_0200B644 + movs r6, #1 +_080501EA: + adds r0, r2, #0 + ands r0, r6 + cmp r0, #0 + beq _08050204 + strb r6, [r1] + strh r5, [r1, #2] + b _08050208 + .align 2, 0 +_080501F8: .4byte gUnk_03000FD0 +_080501FC: .4byte gUnk_020354C0 +_08050200: .4byte gUnk_0200B644 +_08050204: + strb r0, [r1] + strh r0, [r1, #2] +_08050208: + ldrb r0, [r3, #2] + strb r0, [r1, #1] + lsrs r2, r2, #1 + adds r4, #1 + adds r1, #4 + cmp r4, #0x1f + bls _080501EA + movs r0, #1 + rsbs r0, r0, #0 + str r0, [r7] + movs r0, #0xe + ldrsh r1, [r3, r0] + movs r2, #0xc + ldrsh r0, [r3, r2] + eors r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08050230 +sub_08050230: @ 0x08050230 + push {r4, r5, lr} + ldrh r4, [r0, #8] + ldrh r0, [r0, #0xc] + lsls r5, r0, #0x10 + asrs r2, r5, #0x14 + movs r0, #0xf + ands r2, r0 + movs r0, #1 + ands r4, r0 + cmp r4, #0 + beq _0805024A + movs r0, #0xf + subs r2, r0, r2 +_0805024A: + ldr r3, _08050264 @ =gUnk_03000F50 + ldr r1, _08050268 @ =gUnk_080FC3C4 + lsls r0, r2, #1 + adds r0, r0, r1 + ldrh r1, [r0] + adds r0, r3, #0 + adds r0, #0x64 + strh r1, [r0] + cmp r5, #0 + beq _0805026C + movs r0, #1 + b _08050298 + .align 2, 0 +_08050264: .4byte gUnk_03000F50 +_08050268: .4byte gUnk_080FC3C4 +_0805026C: + ldr r1, _0805029C @ =gUnk_03000000 + movs r0, #0 + strb r0, [r1, #2] + cmp r4, #0 + bne _08050296 + ldrh r2, [r3, #8] + ldr r1, _080502A0 @ =0x0000FFBF + adds r0, r1, #0 + ands r0, r2 + strh r0, [r3, #8] + ldrh r2, [r3, #0x14] + adds r0, r1, #0 + ands r0, r2 + strh r0, [r3, #0x14] + ldrh r2, [r3, #0x20] + adds r0, r1, #0 + ands r0, r2 + strh r0, [r3, #0x20] + ldrh r0, [r3, #0x2c] + ands r1, r0 + strh r1, [r3, #0x2c] +_08050296: + movs r0, #0 +_08050298: + pop {r4, r5, pc} + .align 2, 0 +_0805029C: .4byte gUnk_03000000 +_080502A0: .4byte 0x0000FFBF + + thumb_func_start sub_080502A4 +sub_080502A4: @ 0x080502A4 + push {r4, lr} + ldrh r1, [r0, #8] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080502E4 + ldr r4, _080502E0 @ =gUnk_03000FD0 + ldrh r0, [r4, #0x10] + ldrh r1, [r4, #0xa] + subs r0, r0, r1 + strh r0, [r4, #0x10] + lsls r0, r0, #0x10 + cmp r0, #0 + bgt _080502C4 + movs r0, #0 + strh r0, [r4, #0x10] +_080502C4: + movs r1, #0x12 + ldrsh r0, [r4, r1] + movs r2, #0x14 + ldrsh r1, [r4, r2] + movs r3, #0x10 + ldrsh r2, [r4, r3] + bl sub_0801E1EC + movs r1, #0x10 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08050314 + movs r0, #0 + b _08050316 + .align 2, 0 +_080502E0: .4byte gUnk_03000FD0 +_080502E4: + ldr r4, _08050310 @ =gUnk_03000FD0 + ldrh r0, [r4, #0xa] + ldrh r2, [r4, #0x10] + adds r0, r0, r2 + strh r0, [r4, #0x10] + movs r3, #0x12 + ldrsh r0, [r4, r3] + movs r2, #0x14 + ldrsh r1, [r4, r2] + movs r3, #0x10 + ldrsh r2, [r4, r3] + bl sub_0801E1EC + movs r1, #0x10 + ldrsh r0, [r4, r1] + cmp r0, #0x96 + ble _08050314 + bl sub_0801E104 + movs r0, #0 + b _08050316 + .align 2, 0 +_08050310: .4byte gUnk_03000FD0 +_08050314: + movs r0, #1 +_08050316: + pop {r4, pc} + + thumb_func_start sub_08050318 +sub_08050318: @ 0x08050318 + push {r4, r5, r6, lr} + sub sp, #0x18 + adds r6, r0, #0 + adds r4, r1, #0 + bl sub_08050384 + ldr r0, _08050374 @ =gUnk_080FC844 + mov r1, sp + movs r2, #0x18 + bl sub_0801D66C + ldr r1, _08050378 @ =gUnk_020227E8 + adds r0, r4, #0 + bl sub_08056FEC + mov r2, sp + mov r1, sp + ldr r5, _0805037C @ =gUnk_080FC85C + lsls r4, r6, #1 + adds r4, r4, r6 + lsls r4, r4, #1 + adds r0, r4, r5 + ldrh r0, [r0] + lsls r0, r0, #0xc + ldrh r1, [r1, #0x10] + orrs r0, r1 + strh r0, [r2, #0x10] + adds r0, r5, #2 + adds r0, r4, r0 + ldrh r0, [r0] + mov r1, sp + bl sub_0805F46C + adds r5, #4 + adds r4, r4, r5 + ldrh r0, [r4] + cmp r0, #0 + beq _08050368 + bl sub_080A3268 +_08050368: + ldr r1, _08050380 @ =gUnk_03000F50 + movs r0, #1 + strh r0, [r1, #0xe] + add sp, #0x18 + pop {r4, r5, r6, pc} + .align 2, 0 +_08050374: .4byte gUnk_080FC844 +_08050378: .4byte gUnk_020227E8 +_0805037C: .4byte gUnk_080FC85C +_08050380: .4byte gUnk_03000F50 + + thumb_func_start sub_08050384 +sub_08050384: @ 0x08050384 + push {lr} + movs r0, #0 + movs r1, #0 + bl sub_0801C4A0 + ldr r0, _080503A0 @ =gUnk_02034CB0 + movs r1, #0x80 + lsls r1, r1, #4 + bl sub_0801D630 + ldr r1, _080503A4 @ =gUnk_03000F50 + movs r0, #1 + strh r0, [r1, #0xe] + pop {pc} + .align 2, 0 +_080503A0: .4byte gUnk_02034CB0 +_080503A4: .4byte gUnk_03000F50 + + thumb_func_start sub_080503A8 +sub_080503A8: @ 0x080503A8 + push {lr} + bl sub_0801D7EC + ldr r1, _080503B8 @ =gUnk_03000F50 + movs r0, #1 + strh r0, [r1, #0x1a] + strh r0, [r1, #0x26] + pop {pc} + .align 2, 0 +_080503B8: .4byte gUnk_03000F50 + + thumb_func_start sub_080503BC +sub_080503BC: @ 0x080503BC + push {r4, lr} + ldr r1, _080503D8 @ =gUnk_02032EC0 + strb r0, [r1, #4] + ldr r0, _080503DC @ =gUnk_02034CB0 + movs r4, #0x80 + lsls r4, r4, #4 + adds r1, r4, #0 + bl sub_0801D630 + ldr r0, _080503E0 @ =gUnk_02021F30 + adds r1, r4, #0 + bl sub_0801D630 + pop {r4, pc} + .align 2, 0 +_080503D8: .4byte gUnk_02032EC0 +_080503DC: .4byte gUnk_02034CB0 +_080503E0: .4byte gUnk_02021F30 + + thumb_func_start sub_080503E4 +sub_080503E4: @ 0x080503E4 + push {lr} + adds r1, r0, #0 + cmp r1, #2 + bls _080503F2 + movs r2, #1 + movs r1, #1 + b _080503FE +_080503F2: + ldr r0, _08050410 @ =0x000004B4 + muls r0, r1, r0 + ldr r1, _08050414 @ =gUnk_02019EEC + adds r0, r0, r1 + ldrb r2, [r0, #2] + ldrb r1, [r0, #3] +_080503FE: + movs r0, #0x80 + lsls r0, r0, #0x12 + strb r2, [r0, #5] + strb r1, [r0, #6] + ldr r1, _08050418 @ =gUnk_0200B644 + movs r0, #1 + rsbs r0, r0, #0 + str r0, [r1] + pop {pc} + .align 2, 0 +_08050410: .4byte 0x000004B4 +_08050414: .4byte gUnk_02019EEC +_08050418: .4byte gUnk_0200B644 + + thumb_func_start sub_0805041C +sub_0805041C: @ 0x0805041C + push {r4, lr} + adds r4, r0, #0 + cmp r4, #2 + bhi _0805043A + movs r0, #0x80 + lsls r0, r0, #0x12 + strb r4, [r0, #4] + ldr r2, _08050444 @ =0x000004B4 + adds r0, r4, #0 + muls r0, r2, r0 + ldr r1, _08050448 @ =gUnk_02019EEC + adds r0, r0, r1 + ldr r1, _0805044C @ =gUnk_02002A40 + bl sub_0801D66C +_0805043A: + adds r0, r4, #0 + bl sub_080503E4 + pop {r4, pc} + .align 2, 0 +_08050444: .4byte 0x000004B4 +_08050448: .4byte gUnk_02019EEC +_0805044C: .4byte gUnk_02002A40 + + thumb_func_start sub_08050450 +sub_08050450: @ 0x08050450 + push {r4, lr} + bl sub_080AD90C + ldr r1, _080504D8 @ =gUnk_080FC8A4 + ldr r0, _080504DC @ =gUnk_03001000 + ldrb r0, [r0, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + ldr r4, _080504E0 @ =gUnk_02032EC0 + ldrb r1, [r4, #4] + ldrb r0, [r4, #2] + cmp r0, r1 + beq _0805048A + movs r0, #0 + strb r1, [r4, #2] + ldr r1, _080504E4 @ =gUnk_03000F50 + strh r0, [r1, #0xa] + strh r0, [r1, #0xc] + strh r0, [r1, #0x16] + strh r0, [r1, #0x18] + strh r0, [r1, #0x22] + strh r0, [r1, #0x24] + ldr r0, _080504E8 @ =gUnk_02000080 + movs r1, #0x30 + bl sub_0801D630 +_0805048A: + bl sub_080507FC + ldr r1, _080504EC @ =gUnk_080FC8B0 + ldrb r0, [r4, #2] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + ldr r4, _080504F0 @ =gUnk_02019EE0 + movs r0, #0 + strb r0, [r4] + bl sub_0805E5C0 + bl sub_0805066C + bl sub_0801C1D4 + bl sub_0801C208 + bl sub_080AD9B0 + bl sub_080AD918 + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r1, [r0, #7] + ldrb r0, [r4, #3] + cmp r0, r1 + beq _080504D4 + strb r1, [r4, #3] + movs r0, #6 + bl sub_080503A8 + movs r0, #0xf + bl sub_080503A8 +_080504D4: + pop {r4, pc} + .align 2, 0 +_080504D8: .4byte gUnk_080FC8A4 +_080504DC: .4byte gUnk_03001000 +_080504E0: .4byte gUnk_02032EC0 +_080504E4: .4byte gUnk_03000F50 +_080504E8: .4byte gUnk_02000080 +_080504EC: .4byte gUnk_080FC8B0 +_080504F0: .4byte gUnk_02019EE0 + + thumb_func_start sub_080504F4 +sub_080504F4: @ 0x080504F4 + push {r4, lr} + movs r0, #1 + bl sub_0801DA90 + bl sub_080A3210 + movs r0, #0xc0 + lsls r0, r0, #0x13 + movs r1, #0x80 + bl sub_0801D630 + bl sub_08056418 + bl sub_0805E60C + bl sub_08080668 + bl sub_080ADD30 + movs r0, #0 + bl sub_0801CFA8 + ldr r0, _080505DC @ =gUnk_0200AF00 + movs r1, #0xcd + lsls r1, r1, #2 + bl sub_0801D630 + ldr r4, _080505E0 @ =gUnk_02019EE0 + ldr r1, _080505E4 @ =0x00000E28 + adds r0, r4, #0 + bl sub_0801D630 + movs r0, #7 + strb r0, [r4, #3] + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + movs r1, #0 + cmp r0, #1 + bls _08050546 + movs r1, #3 +_08050546: + strb r1, [r4, #6] + ldr r4, _080505E8 @ =gUnk_02032EC0 + movs r1, #0xed + lsls r1, r1, #2 + adds r0, r4, #0 + bl sub_0801D630 + movs r0, #8 + strb r0, [r4, #2] + movs r0, #0 + bl sub_080503BC + bl sub_0805616C + movs r0, #0 + bl sub_08050624 + movs r0, #1 + bl sub_08050624 + movs r0, #2 + bl sub_08050624 + bl sub_08056208 + movs r0, #5 + bl sub_080503A8 + movs r0, #9 + bl sub_0801D714 + movs r4, #0 +_08050586: + movs r0, #0x48 + adds r1, r4, #0 + movs r2, #0 + bl sub_080A2960 + adds r4, #1 + cmp r4, #0x19 + bls _08050586 + ldr r0, _080505EC @ =gUnk_080FC8D0 + bl sub_080A70AC + bl sub_080507FC + ldr r1, _080505F0 @ =gUnk_03000F50 + ldrh r2, [r1] + movs r3, #0xf8 + lsls r3, r3, #5 + adds r0, r3, #0 + orrs r0, r2 + strh r0, [r1] + ldr r0, _080505F4 @ =0x00001E0B + strh r0, [r1, #0x2c] + adds r2, r1, #0 + adds r2, #0x66 + ldr r0, _080505F8 @ =0x00000844 + strh r0, [r2] + adds r1, #0x68 + ldr r0, _080505FC @ =0x00000A0F + strh r0, [r1] + ldr r0, _08050600 @ =gUnk_02024490 + movs r1, #1 + strb r1, [r0] + ldr r0, _08050604 @ =gUnk_03001000 + strb r1, [r0, #3] + movs r0, #7 + bl sub_080A3268 + movs r0, #4 + movs r1, #8 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_080505DC: .4byte gUnk_0200AF00 +_080505E0: .4byte gUnk_02019EE0 +_080505E4: .4byte 0x00000E28 +_080505E8: .4byte gUnk_02032EC0 +_080505EC: .4byte gUnk_080FC8D0 +_080505F0: .4byte gUnk_03000F50 +_080505F4: .4byte 0x00001E0B +_080505F8: .4byte 0x00000844 +_080505FC: .4byte 0x00000A0F +_08050600: .4byte gUnk_02024490 +_08050604: .4byte gUnk_03001000 + + thumb_func_start nullsub_479 +nullsub_479: @ 0x08050608 + bx lr + .align 2, 0 + + thumb_func_start sub_0805060C +sub_0805060C: @ 0x0805060C + push {lr} + ldr r0, _08050620 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _0805061C + movs r0, #2 + bl sub_08056010 +_0805061C: + pop {pc} + .align 2, 0 +_08050620: .4byte gUnk_03000FD0 + + thumb_func_start sub_08050624 +sub_08050624: @ 0x08050624 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _08050648 @ =0x000004B4 + adds r1, r4, #0 + muls r1, r0, r1 + ldr r0, _0805064C @ =gUnk_02019EEC + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0807CF28 + adds r5, r0, #0 + movs r0, #1 + rsbs r0, r0, #0 + cmp r5, r0 + beq _08050650 + cmp r5, #0 + beq _08050656 + b _0805065C + .align 2, 0 +_08050648: .4byte 0x000004B4 +_0805064C: .4byte gUnk_02019EEC +_08050650: + adds r0, r4, #0 + bl sub_0807CF48 +_08050656: + adds r0, r4, #0 + bl sub_0805194C +_0805065C: + ldr r0, _08050668 @ =gUnk_02019EE0 + adds r0, #8 + adds r0, r4, r0 + strb r5, [r0] + pop {r4, r5, pc} + .align 2, 0 +_08050668: .4byte gUnk_02019EE0 + + thumb_func_start sub_0805066C +sub_0805066C: @ 0x0805066C + push {r4, lr} + movs r1, #0 + ldr r4, _080506F0 @ =gUnk_02019EE0 + ldrb r0, [r4, #1] + subs r0, #1 + strb r0, [r4, #1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08050690 + movs r0, #0x10 + strb r0, [r4, #1] + ldrb r0, [r4, #2] + adds r0, #1 + movs r1, #0xf + bl __modsi3 + strb r0, [r4, #2] + movs r1, #1 +_08050690: + ldrb r0, [r4, #2] + cmp r0, #0 + bne _080506AA + movs r0, #1 + strb r0, [r4, #2] + bl sub_08000E50 + movs r1, #7 + ands r1, r0 + lsls r1, r1, #4 + adds r1, #8 + strb r1, [r4, #1] + movs r1, #1 +_080506AA: + cmp r1, #0 + beq _080506EE + ldr r1, _080506F4 @ =gUnk_080FC8DE + ldrb r0, [r4, #2] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r4, [r0] + ldr r0, _080506F8 @ =gUnk_085A2E80 + adds r4, r4, r0 + ldr r1, _080506FC @ =0x00011AA0 + adds r0, r4, r1 + movs r1, #0xb + movs r2, #1 + bl sub_0801D754 + ldr r1, _08050700 @ =0x00011BA0 + adds r0, r4, r1 + movs r1, #0xc + movs r2, #1 + bl sub_0801D754 + ldr r1, _08050704 @ =0x00011CA0 + adds r0, r4, r1 + movs r1, #0xd + movs r2, #1 + bl sub_0801D754 + ldr r0, _08050708 @ =0x00011DA0 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0xe + movs r2, #1 + bl sub_0801D754 +_080506EE: + pop {r4, pc} + .align 2, 0 +_080506F0: .4byte gUnk_02019EE0 +_080506F4: .4byte gUnk_080FC8DE +_080506F8: .4byte gUnk_085A2E80 +_080506FC: .4byte 0x00011AA0 +_08050700: .4byte 0x00011BA0 +_08050704: .4byte 0x00011CA0 +_08050708: .4byte 0x00011DA0 + + thumb_func_start sub_0805070C +sub_0805070C: @ 0x0805070C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + bl sub_0805F2C8 + adds r5, r0, #0 + cmp r5, #0 + beq _0805077A + movs r0, #0 + strb r0, [r5, #2] + movs r0, #5 + strb r0, [r5, #3] + movs r0, #1 + strb r0, [r5, #1] + movs r0, #0x30 + strh r0, [r5, #4] + ldr r0, _08050780 @ =gUnk_02000D00 + str r0, [r5, #8] + movs r6, #0 +_08050732: + movs r0, #0 + strh r0, [r5, #6] + ldr r0, [r5, #8] + movs r1, #0x80 + lsls r1, r1, #2 + bl sub_0801D630 + ldr r0, _08050784 @ =0x000004B4 + adds r1, r6, #0 + muls r1, r0, r1 + ldr r0, _08050788 @ =gUnk_02019F6C + adds r7, r1, r0 + movs r4, #0 + lsls r0, r6, #9 + mov r8, r0 + adds r6, #1 +_08050752: + adds r0, r7, r4 + ldrb r0, [r0] + adds r1, r5, #0 + bl sub_0805F7DC + adds r4, #1 + cmp r4, #5 + ble _08050752 + ldr r0, [r5, #8] + ldr r1, _0805078C @ =0x06014000 + add r1, r8 + movs r2, #0x80 + lsls r2, r2, #2 + bl sub_0801D66C + cmp r6, #2 + bls _08050732 + adds r0, r5, #0 + bl sub_0805F300 +_0805077A: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08050780: .4byte gUnk_02000D00 +_08050784: .4byte 0x000004B4 +_08050788: .4byte gUnk_02019F6C +_0805078C: .4byte 0x06014000 + + thumb_func_start sub_08050790 +sub_08050790: @ 0x08050790 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + bl sub_0805F2C8 + adds r6, r0, #0 + cmp r6, #0 + beq _080507F0 + movs r0, #0 + strb r0, [r6, #2] + movs r0, #5 + strb r0, [r6, #3] + movs r0, #1 + strb r0, [r6, #1] + movs r0, #0x80 + strh r0, [r6, #4] + ldr r0, _080507F8 @ =gUnk_02000D00 + str r0, [r6, #8] + movs r1, #0 +_080507B6: + movs r0, #0 + strh r0, [r6, #6] + lsls r4, r1, #4 + movs r5, #0 + lsls r7, r1, #0xa + adds r1, #1 + mov r8, r1 +_080507C4: + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_0805F7DC + adds r4, #1 + adds r5, #1 + cmp r5, #0xf + bls _080507C4 + movs r0, #0xc0 + lsls r0, r0, #0x13 + adds r1, r7, r0 + ldr r0, _080507F8 @ =gUnk_02000D00 + movs r2, #0x80 + lsls r2, r2, #3 + bl sub_0801D66C + mov r1, r8 + cmp r1, #0xf + bls _080507B6 + adds r0, r6, #0 + bl sub_0805F300 +_080507F0: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080507F8: .4byte gUnk_02000D00 + + thumb_func_start sub_080507FC +sub_080507FC: @ 0x080507FC + ldr r0, _0805080C @ =gUnk_0200AF00 + movs r1, #0xa0 + lsls r1, r1, #1 + strh r1, [r0, #0x1a] + movs r1, #0x24 + strh r1, [r0, #0x20] + bx lr + .align 2, 0 +_0805080C: .4byte gUnk_0200AF00 + + thumb_func_start sub_08050810 +sub_08050810: @ 0x08050810 + ldr r0, _0805081C @ =gUnk_0200AF00 + movs r1, #0xd0 + strh r1, [r0, #0x1a] + movs r1, #0x24 + strh r1, [r0, #0x20] + bx lr + .align 2, 0 +_0805081C: .4byte gUnk_0200AF00 + + thumb_func_start sub_08050820 +sub_08050820: @ 0x08050820 + push {lr} + ldr r1, _0805083C @ =gUnk_080FC8FC + ldr r0, _08050840 @ =gUnk_02000080 + ldrb r0, [r0, #5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + ldr r0, _08050844 @ =gUnk_02019EE0 + ldrb r0, [r0, #6] + bl sub_08050A64 + pop {pc} + .align 2, 0 +_0805083C: .4byte gUnk_080FC8FC +_08050840: .4byte gUnk_02000080 +_08050844: .4byte gUnk_02019EE0 + + thumb_func_start sub_08050848 +sub_08050848: @ 0x08050848 + push {lr} + movs r0, #7 + bl sub_080503A8 + bl sub_0805070C + ldr r0, _08050868 @ =gUnk_02019EE0 + movs r1, #0 + strb r1, [r0, #7] + ldrb r0, [r0, #6] + bl sub_08050AFC + movs r0, #1 + bl sub_080A7114 + pop {pc} + .align 2, 0 +_08050868: .4byte gUnk_02019EE0 + + thumb_func_start sub_0805086C +sub_0805086C: @ 0x0805086C + push {lr} + ldr r1, _08050880 @ =gUnk_080FC908 + ldr r0, _08050884 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08050880: .4byte gUnk_080FC908 +_08050884: .4byte gUnk_02000080 + + thumb_func_start sub_08050888 +sub_08050888: @ 0x08050888 + push {r4, lr} + ldr r0, _080508C4 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080508DC + ldr r4, _080508C8 @ =gUnk_02019EE0 + ldrb r1, [r4, #7] + adds r0, r4, #0 + adds r0, #8 + adds r0, r1, r0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _080508D0 + cmp r0, #1 + beq _080508D6 + adds r0, r1, #0 + bl sub_0805194C + ldrb r1, [r4, #7] + adds r1, #1 + movs r0, #0 + bl sub_08050318 + ldr r1, _080508CC @ =gUnk_02000080 + movs r0, #0x1e + strh r0, [r1, #8] + movs r0, #1 + b _080508DA + .align 2, 0 +_080508C4: .4byte gUnk_03000FD0 +_080508C8: .4byte gUnk_02019EE0 +_080508CC: .4byte gUnk_02000080 +_080508D0: + adds r0, r1, #0 + bl sub_0805194C +_080508D6: + ldr r1, _080508E0 @ =gUnk_02000080 + movs r0, #2 +_080508DA: + strb r0, [r1, #6] +_080508DC: + pop {r4, pc} + .align 2, 0 +_080508E0: .4byte gUnk_02000080 + + thumb_func_start sub_080508E4 +sub_080508E4: @ 0x080508E4 + push {lr} + ldr r2, _08050900 @ =gUnk_02000080 + ldrh r0, [r2, #8] + cmp r0, #0 + bne _08050908 + ldr r0, _08050904 @ =gUnk_03000FF0 + ldrh r1, [r0, #2] + movs r0, #9 + ands r0, r1 + cmp r0, #0 + beq _0805090C + movs r0, #2 + strb r0, [r2, #6] + b _0805090C + .align 2, 0 +_08050900: .4byte gUnk_02000080 +_08050904: .4byte gUnk_03000FF0 +_08050908: + subs r0, #1 + strh r0, [r2, #8] +_0805090C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08050910 +sub_08050910: @ 0x08050910 + push {lr} + bl sub_08050384 + ldr r1, _08050930 @ =gUnk_02019EE0 + ldrb r0, [r1, #7] + adds r0, #1 + strb r0, [r1, #7] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bls _08050934 + movs r0, #2 + bl sub_080A7114 + b _0805093A + .align 2, 0 +_08050930: .4byte gUnk_02019EE0 +_08050934: + ldr r1, _0805093C @ =gUnk_02000080 + movs r0, #0 + strb r0, [r1, #6] +_0805093A: + pop {pc} + .align 2, 0 +_0805093C: .4byte gUnk_02000080 + + thumb_func_start sub_08050940 +sub_08050940: @ 0x08050940 + push {r4, r5, r6, lr} + ldr r3, _0805099C @ =gUnk_02019EE0 + ldrb r0, [r3] + cmp r0, #0 + beq _0805094C + b _08050A58 +_0805094C: + ldrb r4, [r3, #6] + ldr r0, _080509A0 @ =gUnk_03000FF0 + ldrh r2, [r0, #2] + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08050974 + adds r0, r3, #0 + adds r0, #8 + adds r0, r4, r0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #1 + bne _08050974 + movs r0, #0xc1 + rsbs r0, r0, #0 + ands r2, r0 +_08050974: + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + movs r6, #3 + cmp r0, #1 + bls _08050982 + movs r6, #4 +_08050982: + ldr r0, _080509A4 @ =gUnk_02032EC0 + ldrb r5, [r0, #2] + adds r1, r0, #0 + cmp r2, #0x40 + beq _080509B6 + cmp r2, #0x40 + bhi _080509A8 + cmp r2, #1 + beq _080509E0 + cmp r2, #8 + beq _080509E0 + b _08050A10 + .align 2, 0 +_0805099C: .4byte gUnk_02019EE0 +_080509A0: .4byte gUnk_03000FF0 +_080509A4: .4byte gUnk_02032EC0 +_080509A8: + cmp r2, #0x80 + beq _080509BE + movs r0, #0x80 + lsls r0, r0, #1 + cmp r2, r0 + beq _080509C8 + b _08050A10 +_080509B6: + cmp r4, #0 + ble _08050A10 + subs r4, #1 + b _08050A10 +_080509BE: + subs r0, r6, #1 + cmp r0, r4 + ble _08050A10 + adds r4, #1 + b _08050A10 +_080509C8: + ldr r0, _080509DC @ =gUnk_02019EE0 + adds r0, #8 + adds r0, r4, r0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #1 + bne _08050A10 + movs r5, #3 + b _08050A10 + .align 2, 0 +_080509DC: .4byte gUnk_02019EE0 +_080509E0: + adds r0, r4, #0 + bl sub_0805041C + cmp r4, #3 + bne _080509EE + movs r5, #2 + b _08050A0E +_080509EE: + ldr r0, _08050A04 @ =gUnk_02019EE0 + adds r0, #8 + adds r0, r4, r0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _08050A08 + cmp r0, #1 + beq _08050A0C + b _08050A0E + .align 2, 0 +_08050A04: .4byte gUnk_02019EE0 +_08050A08: + movs r5, #1 + b _08050A0E +_08050A0C: + movs r5, #4 +_08050A0E: + ldr r1, _08050A5C @ =gUnk_02032EC0 +_08050A10: + ldrb r0, [r1, #2] + cmp r0, r5 + beq _08050A22 + adds r0, r5, #0 + bl sub_080503BC + movs r0, #0x6a + bl sub_080A3268 +_08050A22: + adds r0, r4, r6 + adds r1, r6, #0 + bl __modsi3 + adds r4, r0, #0 + ldr r5, _08050A60 @ =gUnk_02019EE0 + ldrb r0, [r5, #6] + cmp r0, r4 + beq _08050A42 + strb r4, [r5, #6] + adds r0, r4, #0 + bl sub_08050AFC + movs r0, #0x69 + bl sub_080A3268 +_08050A42: + adds r0, r5, #0 + adds r0, #8 + ldrb r5, [r5, #6] + adds r0, r0, r5 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #1 + bne _08050A58 + bl sub_08050810 +_08050A58: + pop {r4, r5, r6, pc} + .align 2, 0 +_08050A5C: .4byte gUnk_02032EC0 +_08050A60: .4byte gUnk_02019EE0 + + thumb_func_start sub_08050A64 +sub_08050A64: @ 0x08050A64 + push {r4, lr} + ldr r1, _08050AF0 @ =gUnk_02019EE0 + adds r1, #8 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #1 + bne _08050AEC + ldr r4, _08050AF4 @ =gUnk_03001010 + movs r0, #0 + strh r0, [r4, #4] + strh r0, [r4, #6] + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r4, #8] + movs r0, #0x40 + bl sub_0807CA84 + cmp r0, #0 + beq _08050A9E + movs r0, #0xa2 + strh r0, [r4] + movs r0, #0x36 + strh r0, [r4, #2] + ldr r0, _08050AF8 @ =0x00000145 + movs r1, #0x24 + bl sub_080ADA14 +_08050A9E: + movs r0, #0x41 + bl sub_0807CA84 + cmp r0, #0 + beq _08050AB8 + movs r0, #0x96 + strh r0, [r4] + movs r0, #0x3d + strh r0, [r4, #2] + ldr r0, _08050AF8 @ =0x00000145 + movs r1, #0x22 + bl sub_080ADA14 +_08050AB8: + movs r0, #0x42 + bl sub_0807CA84 + cmp r0, #0 + beq _08050AD2 + movs r0, #0xae + strh r0, [r4] + movs r0, #0x3d + strh r0, [r4, #2] + ldr r0, _08050AF8 @ =0x00000145 + movs r1, #0x23 + bl sub_080ADA14 +_08050AD2: + movs r0, #0x43 + bl sub_0807CA84 + cmp r0, #0 + beq _08050AEC + movs r0, #0xa2 + strh r0, [r4] + movs r0, #0x44 + strh r0, [r4, #2] + ldr r0, _08050AF8 @ =0x00000145 + movs r1, #0x21 + bl sub_080ADA14 +_08050AEC: + pop {r4, pc} + .align 2, 0 +_08050AF0: .4byte gUnk_02019EE0 +_08050AF4: .4byte gUnk_03001010 +_08050AF8: .4byte 0x00000145 + + thumb_func_start sub_08050AFC +sub_08050AFC: @ 0x08050AFC + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0805041C + ldr r5, _08050B30 @ =gUnk_02021F30 + movs r1, #0x80 + lsls r1, r1, #4 + adds r0, r5, #0 + bl sub_0801D630 + ldr r0, _08050B34 @ =gUnk_02019EE0 + adds r0, #8 + adds r4, r4, r0 + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #1 + bne _08050B28 + movs r1, #0xa7 + lsls r1, r1, #2 + adds r0, r5, r1 + bl sub_08050B3C +_08050B28: + ldr r1, _08050B38 @ =gUnk_03000F50 + movs r0, #1 + strh r0, [r1, #0x1a] + pop {r4, r5, pc} + .align 2, 0 +_08050B30: .4byte gUnk_02021F30 +_08050B34: .4byte gUnk_02019EE0 +_08050B38: .4byte gUnk_03000F50 + + thumb_func_start sub_08050B3C +sub_08050B3C: @ 0x08050B3C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + str r0, [sp] + ldr r1, _08050C18 @ =gUnk_02002A40 + adds r0, r1, #0 + adds r0, #0xaa + ldrb r0, [r0] + lsrs r2, r0, #1 + cmp r2, #0 + bne _08050B5A + movs r2, #1 +_08050B5A: + adds r0, r1, #0 + adds r0, #0xab + ldrb r0, [r0] + lsrs r3, r0, #1 + cmp r3, #0 + beq _08050C0A + cmp r2, r3 + ble _08050B6C + adds r2, r3, #0 +_08050B6C: + movs r0, #3 + ands r0, r2 + str r0, [sp, #4] + adds r0, r2, #0 + asrs r5, r0, #2 + mov ip, r5 + cmp r5, #0xa + ble _08050B80 + movs r2, #0xa + mov ip, r2 +_08050B80: + adds r6, r5, #0 + subs r6, #0xa + mov sb, r6 + cmp r6, #0 + bge _08050B8E + movs r7, #0 + mov sb, r7 +_08050B8E: + adds r0, r3, #0 + asrs r3, r0, #2 + adds r0, r3, #0 + cmp r3, #0xa + ble _08050B9A + movs r3, #0xa +_08050B9A: + adds r4, r0, #0 + subs r4, #0xa + ldr r2, [sp] + ldr r0, _08050C1C @ =0x0000F24C + mov sl, r0 + strh r0, [r2] + ldr r1, _08050C20 @ =0x040000D4 + movs r7, #0xa + mov r8, r7 + mov r0, r8 + mov r7, ip + subs r0, r0, r7 + lsls r0, r0, #1 + ldr r7, _08050C24 @ =gUnk_080FC914 + mov ip, r7 + add r0, ip + str r0, [r1] + adds r0, r2, #2 + str r0, [r1, #4] + movs r0, #0x80 + lsls r0, r0, #0x18 + orrs r3, r0 + str r3, [r1, #8] + ldr r0, [r1, #8] + cmp r4, #0 + ble _08050BEE + adds r2, #0x40 + mov r3, sl + strh r3, [r2] + mov r7, r8 + mov r3, sb + subs r0, r7, r3 + lsls r0, r0, #1 + add r0, ip + str r0, [r1] + adds r0, r2, #2 + str r0, [r1, #4] + movs r7, #0x80 + lsls r7, r7, #0x18 + orrs r4, r7 + str r4, [r1, #8] + ldr r0, [r1, #8] +_08050BEE: + ldr r0, [sp, #4] + cmp r0, #0 + beq _08050C0A + ldr r2, [sp] + cmp r5, #9 + ble _08050BFE + adds r5, r6, #0 + adds r2, #0x40 +_08050BFE: + lsls r0, r5, #1 + adds r0, r0, r2 + ldr r2, [sp, #4] + ldr r3, _08050C28 @ =0xFFFFF24D + adds r1, r2, r3 + strh r1, [r0, #2] +_08050C0A: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08050C18: .4byte gUnk_02002A40 +_08050C1C: .4byte 0x0000F24C +_08050C20: .4byte 0x040000D4 +_08050C24: .4byte gUnk_080FC914 +_08050C28: .4byte 0xFFFFF24D + + thumb_func_start sub_08050C2C +sub_08050C2C: @ 0x08050C2C + push {lr} + ldr r1, _08050C48 @ =gUnk_080FC93C + ldr r0, _08050C4C @ =gUnk_02000080 + ldrb r0, [r0, #5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + ldr r0, _08050C50 @ =gUnk_02019EE0 + ldrb r0, [r0, #6] + bl sub_08050A64 + pop {pc} + .align 2, 0 +_08050C48: .4byte gUnk_080FC93C +_08050C4C: .4byte gUnk_02000080 +_08050C50: .4byte gUnk_02019EE0 + + thumb_func_start sub_08050C54 +sub_08050C54: @ 0x08050C54 + push {r4, lr} + ldr r0, _08050C78 @ =gUnk_02019EE0 + ldrb r0, [r0] + cmp r0, #0 + beq _08050C60 + b _08050D60 +_08050C60: + ldr r0, _08050C7C @ =gUnk_02000080 + ldrb r4, [r0, #1] + ldr r0, _08050C80 @ =gUnk_03000FF0 + ldrh r0, [r0, #2] + subs r0, #1 + cmp r0, #0x1f + bhi _08050D44 + lsls r0, r0, #2 + ldr r1, _08050C84 @ =_08050C88 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08050C78: .4byte gUnk_02019EE0 +_08050C7C: .4byte gUnk_02000080 +_08050C80: .4byte gUnk_03000FF0 +_08050C84: .4byte _08050C88 +_08050C88: @ jump table + .4byte _08050D08 @ case 0 + .4byte _08050D30 @ case 1 + .4byte _08050D44 @ case 2 + .4byte _08050D44 @ case 3 + .4byte _08050D44 @ case 4 + .4byte _08050D44 @ case 5 + .4byte _08050D44 @ case 6 + .4byte _08050D08 @ case 7 + .4byte _08050D44 @ case 8 + .4byte _08050D44 @ case 9 + .4byte _08050D44 @ case 10 + .4byte _08050D44 @ case 11 + .4byte _08050D44 @ case 12 + .4byte _08050D44 @ case 13 + .4byte _08050D44 @ case 14 + .4byte _08050D42 @ case 15 + .4byte _08050D44 @ case 16 + .4byte _08050D44 @ case 17 + .4byte _08050D44 @ case 18 + .4byte _08050D44 @ case 19 + .4byte _08050D44 @ case 20 + .4byte _08050D44 @ case 21 + .4byte _08050D44 @ case 22 + .4byte _08050D44 @ case 23 + .4byte _08050D44 @ case 24 + .4byte _08050D44 @ case 25 + .4byte _08050D44 @ case 26 + .4byte _08050D44 @ case 27 + .4byte _08050D44 @ case 28 + .4byte _08050D44 @ case 29 + .4byte _08050D44 @ case 30 + .4byte _08050D3E @ case 31 +_08050D08: + cmp r4, #0 + bne _08050D12 + ldr r0, _08050D28 @ =0x80080000 + bl sub_080A3268 +_08050D12: + ldr r1, _08050D2C @ =gUnk_02000080 + movs r0, #0xf + strh r0, [r1, #8] + movs r0, #1 + bl sub_080A7114 + movs r0, #0x6a + bl sub_080A3268 + b _08050D44 + .align 2, 0 +_08050D28: .4byte 0x80080000 +_08050D2C: .4byte gUnk_02000080 +_08050D30: + movs r0, #0x6c + bl sub_080A3268 + movs r0, #0 + bl sub_080503BC + b _08050D44 +_08050D3E: + subs r4, #1 + b _08050D44 +_08050D42: + adds r4, #1 +_08050D44: + cmp r4, #0 + bge _08050D4A + movs r4, #0 +_08050D4A: + cmp r4, #2 + ble _08050D50 + movs r4, #2 +_08050D50: + ldr r1, _08050D64 @ =gUnk_02000080 + ldrb r0, [r1, #1] + cmp r0, r4 + beq _08050D60 + strb r4, [r1, #1] + movs r0, #0x69 + bl sub_080A3268 +_08050D60: + pop {r4, pc} + .align 2, 0 +_08050D64: .4byte gUnk_02000080 + + thumb_func_start sub_08050D68 +sub_08050D68: @ 0x08050D68 + push {lr} + ldr r1, _08050D84 @ =gUnk_02000080 + ldrh r0, [r1, #8] + cmp r0, #0 + bne _08050D94 + ldrb r0, [r1, #1] + cmp r0, #1 + beq _08050D88 + cmp r0, #1 + ble _08050D80 + cmp r0, #2 + beq _08050D8C +_08050D80: + movs r0, #7 + b _08050D8E + .align 2, 0 +_08050D84: .4byte gUnk_02000080 +_08050D88: + movs r0, #5 + b _08050D8E +_08050D8C: + movs r0, #6 +_08050D8E: + bl sub_080503BC + b _08050D98 +_08050D94: + subs r0, #1 + strh r0, [r1, #8] +_08050D98: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08050D9C +sub_08050D9C: @ 0x08050D9C + push {lr} + ldr r1, _08050DB0 @ =gUnk_080FC944 + ldr r0, _08050DB4 @ =gUnk_02000080 + ldrb r0, [r0, #5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08050DB0: .4byte gUnk_080FC944 +_08050DB4: .4byte gUnk_02000080 + + thumb_func_start sub_08050DB8 +sub_08050DB8: @ 0x08050DB8 + push {lr} + ldr r0, _08050DDC @ =gUnk_020344B0 + movs r1, #0x80 + lsls r1, r1, #4 + bl sub_0801D630 + movs r0, #0xc + bl sub_080503A8 + ldr r1, _08050DE0 @ =gUnk_02000080 + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + strb r0, [r1, #4] + movs r0, #1 + bl sub_080A7114 + pop {pc} + .align 2, 0 +_08050DDC: .4byte gUnk_020344B0 +_08050DE0: .4byte gUnk_02000080 + + thumb_func_start sub_08050DE4 +sub_08050DE4: @ 0x08050DE4 + push {r4, lr} + ldr r0, _08050E0C @ =gUnk_02019EE0 + ldrb r0, [r0] + cmp r0, #0 + bne _08050E80 + movs r1, #0x80 + lsls r1, r1, #0x12 + ldrb r4, [r1, #7] + ldr r0, _08050E10 @ =gUnk_03000FF0 + ldrh r0, [r0, #2] + cmp r0, #8 + beq _08050E26 + cmp r0, #8 + bgt _08050E14 + cmp r0, #1 + beq _08050E26 + cmp r0, #2 + beq _08050E50 + b _08050E62 + .align 2, 0 +_08050E0C: .4byte gUnk_02019EE0 +_08050E10: .4byte gUnk_03000FF0 +_08050E14: + cmp r0, #0x40 + beq _08050E1E + cmp r0, #0x80 + beq _08050E22 + b _08050E62 +_08050E1E: + subs r4, #1 + b _08050E62 +_08050E22: + adds r4, #1 + b _08050E62 +_08050E26: + movs r0, #0x6a + bl sub_080A3268 + ldr r0, _08050E44 @ =gUnk_02000080 + ldrb r0, [r0, #4] + cmp r0, r4 + beq _08050E48 + movs r0, #2 + bl sub_080A7114 + movs r0, #8 + movs r1, #0 + bl sub_08050318 + b _08050E62 + .align 2, 0 +_08050E44: .4byte gUnk_02000080 +_08050E48: + movs r0, #0 + bl sub_080503BC + b _08050E62 +_08050E50: + ldr r0, _08050E84 @ =gUnk_02000080 + ldrb r4, [r0, #4] + strb r4, [r1, #7] + movs r0, #0x6c + bl sub_080A3268 + movs r0, #0 + bl sub_080503BC +_08050E62: + cmp r4, #1 + bgt _08050E68 + movs r4, #2 +_08050E68: + cmp r4, #6 + ble _08050E6E + movs r4, #6 +_08050E6E: + movs r1, #0x80 + lsls r1, r1, #0x12 + ldrb r0, [r1, #7] + cmp r0, r4 + beq _08050E80 + strb r4, [r1, #7] + movs r0, #0x69 + bl sub_080A3268 +_08050E80: + pop {r4, pc} + .align 2, 0 +_08050E84: .4byte gUnk_02000080 + + thumb_func_start sub_08050E88 +sub_08050E88: @ 0x08050E88 + push {lr} + movs r0, #2 + bl sub_0807CDA4 + cmp r0, #0 + beq _08050E9A + movs r0, #0 + bl sub_080503BC +_08050E9A: + pop {pc} + + thumb_func_start sub_08050E9C +sub_08050E9C: @ 0x08050E9C + push {lr} + ldr r1, _08050EB0 @ =gUnk_080FC950 + ldr r0, _08050EB4 @ =gUnk_02000080 + ldrb r0, [r0, #5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08050EB0: .4byte gUnk_080FC950 +_08050EB4: .4byte gUnk_02000080 + + thumb_func_start sub_08050EB8 +sub_08050EB8: @ 0x08050EB8 + push {lr} + movs r0, #0xe + bl sub_080503A8 + ldr r2, _08050EE8 @ =gUnk_02019EE0 + ldrb r1, [r2, #6] + ldr r0, _08050EEC @ =0x000004B4 + muls r1, r0, r1 + adds r0, r2, #0 + adds r0, #0xc + adds r1, r1, r0 + ldrb r0, [r1, #2] + movs r3, #0 + strb r0, [r2, #4] + ldrb r0, [r1, #3] + strb r0, [r2, #5] + ldr r1, _08050EF0 @ =gUnk_02000080 + strb r3, [r1, #1] + movs r0, #0xff + strh r0, [r1, #8] + movs r0, #1 + bl sub_080A7114 + pop {pc} + .align 2, 0 +_08050EE8: .4byte gUnk_02019EE0 +_08050EEC: .4byte 0x000004B4 +_08050EF0: .4byte gUnk_02000080 + + thumb_func_start sub_08050EF4 +sub_08050EF4: @ 0x08050EF4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r0, _08050F40 @ =gUnk_02019EE0 + ldrb r1, [r0] + adds r6, r0, #0 + cmp r1, #0 + bne _08050FF4 + ldrb r1, [r6, #6] + ldr r0, _08050F44 @ =0x000004B4 + muls r1, r0, r1 + adds r0, r6, #0 + adds r0, #0xc + adds r1, r1, r0 + ldr r0, _08050F48 @ =gUnk_02000080 + ldrb r3, [r0, #1] + adds r4, r1, #3 + mov ip, r0 + cmp r3, #0 + bne _08050F1E + adds r4, r1, #2 +_08050F1E: + ldrb r2, [r4] + movs r5, #0 + ldr r0, _08050F4C @ =gUnk_03000FF0 + ldrh r0, [r0, #2] + mov r8, r2 + cmp r0, #0x10 + beq _08050F7A + cmp r0, #0x10 + bgt _08050F56 + cmp r0, #2 + beq _08050F8C + cmp r0, #2 + bgt _08050F50 + cmp r0, #1 + beq _08050F82 + b _08050F8E + .align 2, 0 +_08050F40: .4byte gUnk_02019EE0 +_08050F44: .4byte 0x000004B4 +_08050F48: .4byte gUnk_02000080 +_08050F4C: .4byte gUnk_03000FF0 +_08050F50: + cmp r0, #8 + beq _08050F82 + b _08050F8E +_08050F56: + cmp r0, #0x40 + beq _08050F6A + cmp r0, #0x40 + bgt _08050F64 + cmp r0, #0x20 + beq _08050F72 + b _08050F8E +_08050F64: + cmp r0, #0x80 + beq _08050F6E + b _08050F8E +_08050F6A: + movs r3, #0 + b _08050F8E +_08050F6E: + movs r3, #1 + b _08050F8E +_08050F72: + cmp r2, #0 + beq _08050F8E + subs r2, #1 + b _08050F8E +_08050F7A: + cmp r2, #1 + bhi _08050F8E + adds r2, #1 + b _08050F8E +_08050F82: + ldrh r0, [r6, #4] + movs r5, #2 + ldrh r7, [r1, #2] + cmp r0, r7 + bne _08050F8E +_08050F8C: + movs r5, #3 +_08050F8E: + cmp r5, #0 + beq _08050FD0 + cmp r5, #2 + beq _08050F9C + cmp r5, #3 + beq _08050FAC + b _08050FBA +_08050F9C: + movs r0, #8 + movs r1, #0 + bl sub_08050318 + movs r0, #0x6a + bl sub_080A3268 + b _08050FBA +_08050FAC: + ldrb r0, [r6, #4] + strb r0, [r1, #2] + ldrb r0, [r6, #5] + strb r0, [r1, #3] + movs r0, #0x6c + bl sub_080A3268 +_08050FBA: + adds r0, r5, #0 + bl sub_080A7114 + ldr r0, _08050FCC @ =gUnk_02019EE0 + ldrb r0, [r0, #6] + bl sub_0805041C + b _08050FF4 + .align 2, 0 +_08050FCC: .4byte gUnk_02019EE0 +_08050FD0: + mov r1, ip + ldrb r0, [r1, #1] + cmp r0, r3 + beq _08050FE2 + strb r3, [r1, #1] + movs r0, #0x69 + bl sub_080A3268 + b _08050FF4 +_08050FE2: + cmp r2, r8 + beq _08050FF4 + strb r2, [r4] + ldrb r0, [r6, #6] + bl sub_080503E4 + movs r0, #0x69 + bl sub_080A3268 +_08050FF4: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08050FFC +sub_08050FFC: @ 0x08050FFC + push {lr} + movs r0, #0 + bl sub_0807CDA4 + adds r1, r0, #0 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _08051014 + cmp r1, #1 + beq _0805102A + b _08051030 +_08051014: + ldr r1, _08051034 @ =gUnk_02000080 + movs r0, #0x1e + strh r0, [r1, #8] + ldr r0, _08051038 @ =gUnk_02019EE0 + ldrb r0, [r0, #6] + bl sub_0805194C + movs r0, #9 + movs r1, #0 + bl sub_08050318 +_0805102A: + movs r0, #3 + bl sub_080A7114 +_08051030: + pop {pc} + .align 2, 0 +_08051034: .4byte gUnk_02000080 +_08051038: .4byte gUnk_02019EE0 + + thumb_func_start sub_0805103C +sub_0805103C: @ 0x0805103C + push {lr} + ldr r0, _08051050 @ =gUnk_02000080 + ldrb r1, [r0, #8] + adds r2, r0, #0 + cmp r1, #0 + beq _08051054 + cmp r1, #0xff + beq _0805106C + b _08051060 + .align 2, 0 +_08051050: .4byte gUnk_02000080 +_08051054: + ldr r0, _08051068 @ =gUnk_03000FF0 + ldrh r1, [r0, #2] + movs r0, #9 + ands r0, r1 + cmp r0, #0 + beq _08051072 +_08051060: + ldrh r0, [r2, #8] + subs r0, #1 + strh r0, [r2, #8] + b _08051072 + .align 2, 0 +_08051068: .4byte gUnk_03000FF0 +_0805106C: + movs r0, #0 + bl sub_080503BC +_08051072: + pop {pc} + + thumb_func_start sub_08051074 +sub_08051074: @ 0x08051074 + push {lr} + ldr r1, _08051088 @ =gUnk_080FC960 + ldr r0, _0805108C @ =gUnk_02000080 + ldrb r0, [r0, #5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08051088: .4byte gUnk_080FC960 +_0805108C: .4byte gUnk_02000080 + + thumb_func_start sub_08051090 +sub_08051090: @ 0x08051090 + push {lr} + movs r0, #8 + bl sub_080503A8 + bl sub_08050790 + bl sub_0805070C + bl sub_08051458 + ldr r1, _080510B4 @ =gUnk_03000F50 + movs r0, #0xff + strh r0, [r1, #0x18] + strh r0, [r1, #0x24] + movs r0, #1 + bl sub_080A7114 + pop {pc} + .align 2, 0 +_080510B4: .4byte gUnk_03000F50 + + thumb_func_start sub_080510B8 +sub_080510B8: @ 0x080510B8 + push {r4, r5, r6, r7, lr} + ldr r0, _080510E4 @ =gUnk_02019EE0 + ldrb r0, [r0] + cmp r0, #0 + beq _080510C4 + b _0805134C +_080510C4: + movs r7, #0 + ldr r0, _080510E8 @ =gUnk_03000FF0 + ldrh r1, [r0, #2] + adds r2, r0, #0 + cmp r1, #8 + bne _080510D2 + b _080511C8 +_080510D2: + cmp r1, #8 + bgt _080510EC + cmp r1, #1 + bne _080510DC + b _080511F2 +_080510DC: + cmp r1, #2 + beq _080511B8 + b _08051100 + .align 2, 0 +_080510E4: .4byte gUnk_02019EE0 +_080510E8: .4byte gUnk_03000FF0 +_080510EC: + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + bne _080510F6 + b _0805122C +_080510F6: + movs r0, #0x80 + lsls r0, r0, #2 + cmp r1, r0 + bne _08051100 + b _0805121C +_08051100: + movs r6, #0 + movs r5, #0 + ldrh r0, [r2, #4] + cmp r0, #0x20 + beq _08051128 + cmp r0, #0x20 + bgt _08051114 + cmp r0, #0x10 + beq _0805112E + b _08051130 +_08051114: + cmp r0, #0x40 + beq _0805111E + cmp r0, #0x80 + beq _08051124 + b _08051130 +_0805111E: + movs r5, #1 + rsbs r5, r5, #0 + b _08051130 +_08051124: + movs r5, #1 + b _08051130 +_08051128: + movs r6, #1 + rsbs r6, r6, #0 + b _08051130 +_0805112E: + movs r6, #1 +_08051130: + ldr r4, _0805117C @ =gUnk_02000080 + ldrb r0, [r4, #0x11] + adds r0, r0, r5 + adds r0, #6 + movs r1, #6 + bl __modsi3 + strb r0, [r4, #0x11] + orrs r5, r6 + cmp r5, #0 + beq _0805114C + movs r0, #0x67 + bl sub_080A3268 +_0805114C: + cmp r6, #0 + beq _0805123A + ldrb r0, [r4, #0x11] + cmp r0, #5 + beq _08051184 + ldrb r0, [r4, #0x10] + adds r0, r0, r6 + adds r0, #0xd + movs r1, #0xd + bl __modsi3 + strb r0, [r4, #0x10] + ldr r1, _08051180 @ =gUnk_080FC980 + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + cmp r0, #0 + beq _08051172 + adds r1, #0x10 +_08051172: + ldrb r0, [r4, #0x10] + adds r0, r1, r0 + ldrb r0, [r0] + strb r0, [r4, #0x12] + b _0805123A + .align 2, 0 +_0805117C: .4byte gUnk_02000080 +_08051180: .4byte gUnk_080FC980 +_08051184: + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + adds r5, r0, #0 + movs r1, #4 + cmp r5, #0 + bne _08051194 + movs r1, #5 +_08051194: + ldrb r0, [r4, #0x12] + adds r0, r0, r6 + adds r0, r0, r1 + bl __modsi3 + strb r0, [r4, #0x12] + ldr r1, _080511B4 @ =gUnk_080FC9A0 + cmp r5, #0 + beq _080511A8 + adds r1, #8 +_080511A8: + ldrb r0, [r4, #0x12] + adds r0, r1, r0 + ldrb r0, [r0] + strb r0, [r4, #0x10] + b _0805123A + .align 2, 0 +_080511B4: .4byte gUnk_080FC9A0 +_080511B8: + ldr r0, _080511C4 @ =gUnk_02000080 + ldrb r0, [r0, #0x13] + cmp r0, #0 + beq _080511EC + movs r7, #5 + b _0805123A + .align 2, 0 +_080511C4: .4byte gUnk_02000080 +_080511C8: + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + movs r1, #3 + cmp r0, #0 + bne _080511D6 + movs r1, #4 +_080511D6: + ldr r2, _080511E8 @ =gUnk_02000080 + ldrb r0, [r2, #0x11] + cmp r0, #5 + bne _080511EC + ldrb r2, [r2, #0x12] + cmp r1, r2 + bne _080511EC + movs r7, #8 + b _0805123A + .align 2, 0 +_080511E8: .4byte gUnk_02000080 +_080511EC: + bl sub_08051358 + b _0805123A +_080511F2: + ldr r1, _08051210 @ =gUnk_02000080 + ldrb r0, [r1, #0x11] + cmp r0, #5 + bne _08051218 + ldr r2, _08051214 @ =gUnk_080FC970 + ldrb r1, [r1, #0x12] + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + cmp r0, #0 + beq _0805120A + adds r1, #8 +_0805120A: + adds r0, r1, r2 + ldrb r7, [r0] + b _0805123A + .align 2, 0 +_08051210: .4byte gUnk_02000080 +_08051214: .4byte gUnk_080FC970 +_08051218: + movs r7, #6 + b _0805123A +_0805121C: + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + movs r7, #1 + cmp r0, #0 + bne _0805123A + movs r7, #4 + b _0805123A +_0805122C: + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + movs r7, #2 + cmp r0, #0 + bne _0805123A + movs r7, #7 +_0805123A: + ldr r0, _08051250 @ =gUnk_02000080 + ldrb r4, [r0, #1] + subs r0, r7, #1 + cmp r0, #7 + bhi _08051322 + lsls r0, r0, #2 + ldr r1, _08051254 @ =_08051258 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08051250: .4byte gUnk_02000080 +_08051254: .4byte _08051258 +_08051258: @ jump table + .4byte _08051278 @ case 0 + .4byte _0805127C @ case 1 + .4byte _08051280 @ case 2 + .4byte _08051284 @ case 3 + .4byte _08051288 @ case 4 + .4byte _080512C0 @ case 5 + .4byte _080512B8 @ case 6 + .4byte _080512EC @ case 7 +_08051278: + movs r4, #0 + b _08051322 +_0805127C: + movs r4, #1 + b _08051322 +_08051280: + movs r4, #2 + b _08051322 +_08051284: + adds r4, #1 + b _08051322 +_08051288: + ldr r3, _080512B0 @ =gUnk_02000080 + ldrb r0, [r3, #0x13] + cmp r0, #0 + beq _08051322 + subs r0, #1 + movs r2, #0 + strb r0, [r3, #0x13] + ldr r1, _080512B4 @ =gUnk_02002A40 + ldrb r0, [r3, #0x13] + adds r1, #0x80 + adds r0, r0, r1 + strb r2, [r0] + ldrb r0, [r3, #0x13] + adds r0, #1 + adds r0, r0, r1 + strb r2, [r0] + movs r0, #0x6c + bl sub_08051574 + b _08051322 + .align 2, 0 +_080512B0: .4byte gUnk_02000080 +_080512B4: .4byte gUnk_02002A40 +_080512B8: + movs r0, #0 + bl sub_08051480 + b _08051322 +_080512C0: + ldr r2, _080512E4 @ =gUnk_02001A40 + ldr r0, _080512E8 @ =gUnk_02000080 + ldrb r1, [r0, #0x10] + lsls r1, r1, #1 + ldrb r0, [r0, #0x11] + lsls r0, r0, #6 + adds r0, #0xc3 + adds r1, r1, r0 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r0, [r1] + lsrs r0, r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_08051480 + b _08051322 + .align 2, 0 +_080512E4: .4byte gUnk_02001A40 +_080512E8: .4byte gUnk_02000080 +_080512EC: + movs r3, #5 + ldr r0, _08051350 @ =gUnk_02002A40 + adds r6, r0, #0 + adds r6, #0x80 + movs r5, #0 +_080512F6: + adds r2, r3, r6 + ldrb r1, [r2] + cmp r1, #0 + beq _08051302 + cmp r1, #0x20 + bne _0805130A +_08051302: + strb r5, [r2] + subs r3, #1 + cmp r3, #0 + bge _080512F6 +_0805130A: + adds r0, #0x80 + ldrb r0, [r0] + movs r7, #3 + cmp r0, #0 + beq _08051316 + movs r7, #2 +_08051316: + movs r0, #0x6a + bl sub_08051574 + adds r0, r7, #0 + bl sub_080A7114 +_08051322: + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + movs r1, #2 + cmp r0, #0 + bne _08051330 + movs r1, #3 +_08051330: + adds r0, r4, r1 + bl __modsi3 + adds r4, r0, #0 + ldr r1, _08051354 @ =gUnk_02000080 + ldrb r0, [r1, #1] + cmp r0, r4 + beq _0805134C + strb r4, [r1, #1] + bl sub_08051458 + movs r0, #0x68 + bl sub_080A3268 +_0805134C: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08051350: .4byte gUnk_02002A40 +_08051354: .4byte gUnk_02000080 + + thumb_func_start sub_08051358 +sub_08051358: @ 0x08051358 + push {lr} + ldr r2, _08051384 @ =gUnk_02000080 + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + movs r1, #3 + cmp r0, #0 + bne _0805136A + movs r1, #4 +_0805136A: + strb r1, [r2, #0x12] + ldrh r1, [r2, #0x10] + ldr r0, _08051388 @ =0x0000050B + cmp r1, r0 + beq _08051382 + movs r0, #5 + strb r0, [r2, #0x11] + movs r0, #0xb + strb r0, [r2, #0x10] + movs r0, #0x67 + bl sub_080A3268 +_08051382: + pop {pc} + .align 2, 0 +_08051384: .4byte gUnk_02000080 +_08051388: .4byte 0x0000050B + + thumb_func_start sub_0805138C +sub_0805138C: @ 0x0805138C + push {lr} + ldr r1, _080513A0 @ =gUnk_080FC9B0 + ldr r0, _080513A4 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_080513A0: .4byte gUnk_080FC9B0 +_080513A4: .4byte gUnk_02000080 + + thumb_func_start sub_080513A8 +sub_080513A8: @ 0x080513A8 + push {lr} + movs r0, #5 + movs r1, #0 + bl sub_08050318 + ldr r1, _080513BC @ =gUnk_02000080 + movs r0, #1 + strb r0, [r1, #6] + pop {pc} + .align 2, 0 +_080513BC: .4byte gUnk_02000080 + + thumb_func_start sub_080513C0 +sub_080513C0: @ 0x080513C0 + push {lr} + movs r0, #0 + bl sub_0807CDA4 + adds r2, r0, #0 + cmp r2, #0 + beq _08051412 + cmp r2, #0 + bgt _080513DC + movs r0, #1 + rsbs r0, r0, #0 + cmp r2, r0 + beq _080513F8 + b _08051412 +_080513DC: + cmp r2, #1 + bne _08051412 + ldr r1, _080513F4 @ =gUnk_02019EE0 + adds r0, r1, #0 + adds r0, #8 + ldrb r1, [r1, #6] + adds r0, r0, r1 + strb r2, [r0] + movs r0, #3 + bl sub_080A7114 + b _08051412 + .align 2, 0 +_080513F4: .4byte gUnk_02019EE0 +_080513F8: + ldr r0, _08051414 @ =gUnk_02019EE0 + ldrb r0, [r0, #6] + bl sub_0805194C + movs r0, #6 + movs r1, #0 + bl sub_08050318 + ldr r1, _08051418 @ =gUnk_02000080 + movs r0, #0x1e + strh r0, [r1, #8] + movs r0, #2 + strb r0, [r1, #6] +_08051412: + pop {pc} + .align 2, 0 +_08051414: .4byte gUnk_02019EE0 +_08051418: .4byte gUnk_02000080 + + thumb_func_start sub_0805141C +sub_0805141C: @ 0x0805141C + push {lr} + ldr r1, _0805143C @ =gUnk_02000080 + ldrh r0, [r1, #8] + cmp r0, #0 + bne _08051444 + ldr r0, _08051440 @ =gUnk_03000FF0 + ldrh r1, [r0, #2] + movs r0, #9 + ands r0, r1 + cmp r0, #0 + beq _08051448 + movs r0, #3 + bl sub_080A7114 + b _08051448 + .align 2, 0 +_0805143C: .4byte gUnk_02000080 +_08051440: .4byte gUnk_03000FF0 +_08051444: + subs r0, #1 + strh r0, [r1, #8] +_08051448: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0805144C +sub_0805144C: @ 0x0805144C + push {lr} + movs r0, #0 + bl sub_080503BC + pop {pc} + .align 2, 0 + + thumb_func_start sub_08051458 +sub_08051458: @ 0x08051458 + push {lr} + ldr r0, _08051474 @ =gUnk_02000080 + ldrb r0, [r0, #1] + adds r0, #9 + bl sub_080503A8 + ldr r0, _08051478 @ =gUnk_02001B40 + ldr r1, _0805147C @ =gUnk_02022030 + movs r2, #0x80 + lsls r2, r2, #3 + bl sub_0801D66C + pop {pc} + .align 2, 0 +_08051474: .4byte gUnk_02000080 +_08051478: .4byte gUnk_02001B40 +_0805147C: .4byte gUnk_02022030 + + thumb_func_start sub_08051480 +sub_08051480: @ 0x08051480 + push {r4, lr} + adds r4, r0, #0 + bl sub_080514BC + ldr r2, _080514B4 @ =gUnk_02000080 + ldrb r1, [r2, #0x13] + cmp r0, #0 + beq _080514B0 + cmp r0, #1 + beq _08051498 + adds r4, r0, #0 + subs r1, #1 +_08051498: + cmp r1, #5 + bls _0805149E + movs r1, #5 +_0805149E: + adds r0, r1, #1 + strb r0, [r2, #0x13] + ldr r0, _080514B8 @ =gUnk_02002A40 + adds r0, #0x80 + adds r0, r1, r0 + strb r4, [r0] + movs r0, #0x6b + bl sub_08051574 +_080514B0: + pop {r4, pc} + .align 2, 0 +_080514B4: .4byte gUnk_02000080 +_080514B8: .4byte gUnk_02002A40 + + thumb_func_start sub_080514BC +sub_080514BC: @ 0x080514BC + push {lr} + adds r2, r0, #0 + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + cmp r0, #0 + bne _080514D6 + cmp r2, #0 + beq _080514DA + cmp r2, #0xf + bhi _080514D6 + cmp r2, #0xe + bhs _080514DA +_080514D6: + movs r0, #1 + b _08051572 +_080514DA: + ldr r0, _08051500 @ =gUnk_02000080 + ldrb r1, [r0, #0x13] + cmp r1, #0 + beq _08051570 + ldr r0, _08051504 @ =gUnk_02002A40 + adds r0, r0, r1 + adds r0, #0x7f + ldrb r1, [r0] + adds r0, r1, #0 + subs r0, #0xa4 + cmp r0, #0x28 + bhi _08051522 + cmp r2, #0xe + beq _0805153C + cmp r2, #0xe + bhi _08051508 + cmp r2, #0 + beq _0805150E + b _0805153C + .align 2, 0 +_08051500: .4byte gUnk_02000080 +_08051504: .4byte gUnk_02002A40 +_08051508: + cmp r2, #0xf + beq _08051518 + b _0805153C +_0805150E: + cmp r1, #0xc2 + bhi _0805151C + adds r0, r1, #0 + adds r0, #0x33 + b _08051572 +_08051518: + cmp r1, #0xc2 + bls _08051570 +_0805151C: + adds r0, r1, #0 + adds r0, #0xa + b _08051572 +_08051522: + adds r0, r1, #0 + subs r0, #0xcd + cmp r0, #9 + bhi _0805154C + cmp r2, #0xe + beq _08051546 + cmp r2, #0xe + bhi _08051538 + cmp r2, #0 + beq _08051540 + b _0805154C +_08051538: + cmp r2, #0xf + bne _0805154C +_0805153C: + adds r0, r1, #0 + b _08051572 +_08051540: + adds r0, r1, #0 + adds r0, #0x29 + b _08051572 +_08051546: + adds r0, r1, #0 + subs r0, #0xa + b _08051572 +_0805154C: + adds r0, r1, #0 + subs r0, #0xd7 + cmp r0, #0x28 + bhi _08051570 + cmp r2, #0xe + beq _08051560 + cmp r2, #0xe + bls _08051560 + cmp r2, #0xf + beq _08051566 +_08051560: + adds r0, r1, #0 + subs r0, #0x33 + b _08051572 +_08051566: + cmp r1, #0xf5 + bls _08051570 + adds r0, r1, #0 + subs r0, #0x29 + b _08051572 +_08051570: + movs r0, #0 +_08051572: + pop {pc} + + thumb_func_start sub_08051574 +sub_08051574: @ 0x08051574 + push {lr} + bl sub_080A3268 + ldr r0, _08051594 @ =gUnk_02002A40 + ldr r3, _08051598 @ =gUnk_02019EE0 + ldrb r1, [r3, #6] + ldr r2, _0805159C @ =0x000004B4 + muls r1, r2, r1 + adds r3, #0xc + adds r1, r1, r3 + bl sub_0801D66C + bl sub_0805070C + pop {pc} + .align 2, 0 +_08051594: .4byte gUnk_02002A40 +_08051598: .4byte gUnk_02019EE0 +_0805159C: .4byte 0x000004B4 + + thumb_func_start sub_080515A0 +sub_080515A0: @ 0x080515A0 + push {lr} + ldr r1, _080515BC @ =gUnk_080FC9BC + ldr r0, _080515C0 @ =gUnk_02000080 + ldrb r0, [r0, #5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + ldr r0, _080515C4 @ =gUnk_02019EE0 + ldrb r0, [r0, #6] + bl sub_08050A64 + pop {pc} + .align 2, 0 +_080515BC: .4byte gUnk_080FC9BC +_080515C0: .4byte gUnk_02000080 +_080515C4: .4byte gUnk_02019EE0 + + thumb_func_start sub_080515C8 +sub_080515C8: @ 0x080515C8 + push {lr} + movs r0, #1 + bl sub_080A7114 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080515D4 +sub_080515D4: @ 0x080515D4 + push {r4, lr} + ldr r0, _080515FC @ =gUnk_02019EE0 + ldrb r0, [r0] + cmp r0, #0 + beq _080515E0 + b _080516D8 +_080515E0: + ldr r1, _08051600 @ =gUnk_02000080 + movs r0, #4 + strh r0, [r1, #8] + ldrb r4, [r1, #1] + ldr r0, _08051604 @ =gUnk_03000FF0 + ldrh r0, [r0, #2] + subs r0, #1 + cmp r0, #0x1f + bhi _080516C8 + lsls r0, r0, #2 + ldr r1, _08051608 @ =_0805160C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080515FC: .4byte gUnk_02019EE0 +_08051600: .4byte gUnk_02000080 +_08051604: .4byte gUnk_03000FF0 +_08051608: .4byte _0805160C +_0805160C: @ jump table + .4byte _08051694 @ case 0 + .4byte _0805168C @ case 1 + .4byte _080516C8 @ case 2 + .4byte _080516C8 @ case 3 + .4byte _080516C8 @ case 4 + .4byte _080516C8 @ case 5 + .4byte _080516C8 @ case 6 + .4byte _08051694 @ case 7 + .4byte _080516C8 @ case 8 + .4byte _080516C8 @ case 9 + .4byte _080516C8 @ case 10 + .4byte _080516C8 @ case 11 + .4byte _080516C8 @ case 12 + .4byte _080516C8 @ case 13 + .4byte _080516C8 @ case 14 + .4byte _080516C6 @ case 15 + .4byte _080516C8 @ case 16 + .4byte _080516C8 @ case 17 + .4byte _080516C8 @ case 18 + .4byte _080516C8 @ case 19 + .4byte _080516C8 @ case 20 + .4byte _080516C8 @ case 21 + .4byte _080516C8 @ case 22 + .4byte _080516C8 @ case 23 + .4byte _080516C8 @ case 24 + .4byte _080516C8 @ case 25 + .4byte _080516C8 @ case 26 + .4byte _080516C8 @ case 27 + .4byte _080516C8 @ case 28 + .4byte _080516C8 @ case 29 + .4byte _080516C8 @ case 30 + .4byte _080516C2 @ case 31 +_0805168C: + ldr r1, _080516B0 @ =gUnk_02000080 + movs r0, #0 + strb r0, [r1, #1] + movs r4, #0 +_08051694: + cmp r4, #1 + bne _080516B4 + movs r0, #4 + movs r1, #0 + bl sub_08050318 + movs r0, #2 + bl sub_080A7114 + movs r0, #0x6a + bl sub_080A3268 + b _080516C8 + .align 2, 0 +_080516B0: .4byte gUnk_02000080 +_080516B4: + movs r0, #0 + bl sub_080503BC + movs r0, #0x6c + bl sub_080A3268 + b _080516C8 +_080516C2: + movs r4, #0 + b _080516C8 +_080516C6: + movs r4, #1 +_080516C8: + ldr r1, _080516DC @ =gUnk_02000080 + ldrb r0, [r1, #1] + cmp r0, r4 + beq _080516D8 + strb r4, [r1, #1] + movs r0, #0x69 + bl sub_080A3268 +_080516D8: + pop {r4, pc} + .align 2, 0 +_080516DC: .4byte gUnk_02000080 + + thumb_func_start sub_080516E0 +sub_080516E0: @ 0x080516E0 + push {r4, lr} + movs r0, #1 + bl sub_0807CDA4 + cmp r0, #0 + beq _08051706 + ldr r4, _08051708 @ =gUnk_02019EE0 + ldrb r0, [r4, #6] + bl sub_0805194C + ldrb r0, [r4, #6] + bl sub_08050AFC + ldr r1, _0805170C @ =gUnk_02000080 + movs r0, #2 + strh r0, [r1, #8] + movs r0, #0 + bl sub_080503BC +_08051706: + pop {r4, pc} + .align 2, 0 +_08051708: .4byte gUnk_02019EE0 +_0805170C: .4byte gUnk_02000080 + + thumb_func_start sub_08051710 +sub_08051710: @ 0x08051710 + push {lr} + ldr r1, _0805172C @ =gUnk_080FC9C8 + ldr r0, _08051730 @ =gUnk_02000080 + ldrb r0, [r0, #5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + ldr r0, _08051734 @ =gUnk_02019EE0 + ldrb r0, [r0, #6] + bl sub_08050A64 + pop {pc} + .align 2, 0 +_0805172C: .4byte gUnk_080FC9C8 +_08051730: .4byte gUnk_02000080 +_08051734: .4byte gUnk_02019EE0 + + thumb_func_start sub_08051738 +sub_08051738: @ 0x08051738 + push {r4, r5, r6, r7, lr} + ldr r1, _08051768 @ =gUnk_02019EE0 + movs r0, #4 + strb r0, [r1, #7] + movs r4, #0 + movs r3, #0 + adds r5, r1, #0 + adds r7, r5, #0 + adds r7, #8 + ldr r6, _0805176C @ =gUnk_02000090 +_0805174C: + adds r0, r3, r7 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #1 + bne _08051770 + ldrb r1, [r5, #6] + movs r2, #4 + eors r1, r3 + rsbs r0, r1, #0 + orrs r0, r1 + asrs r0, r0, #0x1f + ands r2, r0 + b _08051774 + .align 2, 0 +_08051768: .4byte gUnk_02019EE0 +_0805176C: .4byte gUnk_02000090 +_08051770: + adds r4, #1 + adds r2, r4, #0 +_08051774: + adds r0, r3, r6 + strb r2, [r0] + adds r3, #1 + cmp r3, #2 + bls _0805174C + cmp r4, #0 + bne _0805179C + ldr r1, _08051798 @ =gUnk_02000080 + movs r0, #0x3c + strh r0, [r1, #8] + movs r0, #1 + movs r1, #0 + bl sub_08050318 + movs r0, #3 + bl sub_080A7114 + b _080517A2 + .align 2, 0 +_08051798: .4byte gUnk_02000080 +_0805179C: + movs r0, #1 + bl sub_080A7114 +_080517A2: + adds r4, #1 + ldr r0, _080517B0 @ =gUnk_02000080 + strb r4, [r0, #0x16] + movs r1, #4 + strb r1, [r0, #0x13] + strb r4, [r0, #0x14] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080517B0: .4byte gUnk_02000080 + + thumb_func_start sub_080517B4 +sub_080517B4: @ 0x080517B4 + push {r4, lr} + adds r2, r0, #0 + ldr r0, _080517E4 @ =gUnk_02019EE0 + ldrb r1, [r0, #7] + adds r4, r0, #0 + cmp r2, #0 + beq _080517DE + adds r1, r1, r2 + cmp r1, #4 + bhi _080517DC + ldr r3, _080517E8 @ =gUnk_02000090 +_080517CA: + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, #0 + beq _080517D6 + cmp r0, #4 + bne _080517DE +_080517D6: + adds r1, r1, r2 + cmp r1, #4 + bls _080517CA +_080517DC: + ldrb r1, [r4, #7] +_080517DE: + adds r0, r1, #0 + pop {r4, pc} + .align 2, 0 +_080517E4: .4byte gUnk_02019EE0 +_080517E8: .4byte gUnk_02000090 + + thumb_func_start sub_080517EC +sub_080517EC: @ 0x080517EC + push {r4, lr} + ldr r0, _08051810 @ =gUnk_02019EE0 + ldrb r1, [r0] + adds r2, r0, #0 + cmp r1, #0 + bne _0805186E + movs r4, #0 + ldr r0, _08051814 @ =gUnk_03000FF0 + ldrh r0, [r0, #2] + cmp r0, #8 + beq _0805182C + cmp r0, #8 + bgt _08051818 + cmp r0, #1 + beq _0805182C + cmp r0, #2 + beq _08051848 + b _08051858 + .align 2, 0 +_08051810: .4byte gUnk_02019EE0 +_08051814: .4byte gUnk_03000FF0 +_08051818: + cmp r0, #0x40 + beq _08051822 + cmp r0, #0x80 + beq _08051828 + b _08051858 +_08051822: + movs r4, #1 + rsbs r4, r4, #0 + b _08051858 +_08051828: + movs r4, #1 + b _08051858 +_0805182C: + ldrb r0, [r2, #7] + cmp r0, #2 + bhi _08051848 + movs r0, #2 + movs r1, #0 + bl sub_08050318 + movs r0, #2 + bl sub_080A7114 + movs r0, #0x6a + bl sub_080A3268 + b _08051858 +_08051848: + movs r0, #4 + strb r0, [r2, #7] + movs r0, #0x6c + bl sub_080A3268 + movs r0, #0 + bl sub_080503BC +_08051858: + adds r0, r4, #0 + bl sub_080517B4 + ldr r1, _08051870 @ =gUnk_02019EE0 + ldrb r2, [r1, #7] + cmp r0, r2 + beq _0805186E + strb r0, [r1, #7] + movs r0, #0x69 + bl sub_080A3268 +_0805186E: + pop {r4, pc} + .align 2, 0 +_08051870: .4byte gUnk_02019EE0 + + thumb_func_start sub_08051874 +sub_08051874: @ 0x08051874 + push {r4, lr} + movs r1, #0x80 + lsls r1, r1, #0x12 + ldr r4, _080518B8 @ =gUnk_02019EE0 + ldrb r0, [r4, #7] + strb r0, [r1, #4] + movs r0, #0 + bl sub_0807CDA4 + adds r1, r0, #0 + adds r0, r4, #0 + adds r0, #8 + ldrb r2, [r4, #7] + adds r0, r0, r2 + strb r1, [r0] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _080518C4 + cmp r1, #1 + bne _080518DE + ldr r0, _080518BC @ =gUnk_02002A40 + ldrb r1, [r4, #7] + ldr r2, _080518C0 @ =0x000004B4 + muls r1, r2, r1 + adds r3, r4, #0 + adds r3, #0xc + adds r1, r1, r3 + bl sub_0801D66C + movs r0, #0 + bl sub_080503BC + b _080518DE + .align 2, 0 +_080518B8: .4byte gUnk_02019EE0 +_080518BC: .4byte gUnk_02002A40 +_080518C0: .4byte 0x000004B4 +_080518C4: + ldrb r0, [r4, #7] + bl sub_0805194C + movs r0, #3 + movs r1, #0 + bl sub_08050318 + ldr r1, _080518E0 @ =gUnk_02000080 + movs r0, #0x1e + strh r0, [r1, #8] + movs r0, #3 + bl sub_080A7114 +_080518DE: + pop {r4, pc} + .align 2, 0 +_080518E0: .4byte gUnk_02000080 + + thumb_func_start sub_080518E4 +sub_080518E4: @ 0x080518E4 + push {lr} + ldr r1, _08051904 @ =gUnk_02000080 + ldrh r0, [r1, #8] + cmp r0, #0 + bne _0805190C + ldr r0, _08051908 @ =gUnk_03000FF0 + ldrh r1, [r0, #2] + movs r0, #9 + ands r0, r1 + cmp r0, #0 + beq _08051910 + movs r0, #0 + bl sub_080503BC + b _08051910 + .align 2, 0 +_08051904: .4byte gUnk_02000080 +_08051908: .4byte gUnk_03000FF0 +_0805190C: + subs r0, #1 + strh r0, [r1, #8] +_08051910: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08051914 +sub_08051914: @ 0x08051914 + push {lr} + ldr r1, _08051940 @ =gUnk_02000080 + ldrb r0, [r1, #5] + cmp r0, #0 + bne _0805193E + movs r0, #1 + strb r0, [r1, #5] + movs r2, #0x80 + lsls r2, r2, #0x12 + ldr r1, _08051944 @ =gUnk_02002A40 + ldrb r0, [r1, #2] + strb r0, [r2, #5] + ldrb r0, [r1, #3] + strb r0, [r2, #6] + ldr r1, _08051948 @ =gUnk_03001000 + movs r0, #2 + strb r0, [r1, #3] + movs r0, #5 + movs r1, #8 + bl sub_08050054 +_0805193E: + pop {pc} + .align 2, 0 +_08051940: .4byte gUnk_02000080 +_08051944: .4byte gUnk_02002A40 +_08051948: .4byte gUnk_03001000 + + thumb_func_start sub_0805194C +sub_0805194C: @ 0x0805194C + push {r4, lr} + ldr r3, _08051980 @ =gUnk_02019EE0 + adds r1, r3, #0 + adds r1, #8 + adds r1, r0, r1 + movs r2, #0 + strb r2, [r1] + ldr r1, _08051984 @ =0x000004B4 + adds r4, r0, #0 + muls r4, r1, r4 + adds r3, #0xc + adds r4, r4, r3 + adds r0, r4, #0 + bl sub_0801D630 + movs r0, #1 + strb r0, [r4, #2] + strb r0, [r4, #3] + adds r1, r4, #0 + adds r1, #0xaa + movs r0, #0x18 + strb r0, [r1] + adds r4, #0xab + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_08051980: .4byte gUnk_02019EE0 +_08051984: .4byte 0x000004B4 + + thumb_func_start sub_08051988 +sub_08051988: @ 0x08051988 + push {lr} + ldr r1, _080519A4 @ =gUnk_030010A0 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + ldr r1, _080519A8 @ =gUnk_080FC9D8 + ldr r0, _080519AC @ =gUnk_03001000 + ldrb r0, [r0, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_080519A4: .4byte gUnk_030010A0 +_080519A8: .4byte gUnk_080FC9D8 +_080519AC: .4byte gUnk_03001000 + + thumb_func_start sub_080519B0 +sub_080519B0: @ 0x080519B0 + push {r4, r5, lr} + ldr r0, _08051A04 @ =gUnk_03000FD0 + ldrb r5, [r0] + cmp r5, #0 + bne _08051A02 + movs r0, #1 + bl sub_0801DA90 + bl sub_080A3210 + bl sub_0801DA7C + bl sub_080A7124 + bl sub_0807059C + ldr r4, _08051A08 @ =gUnk_030010A0 + adds r0, r4, #0 + movs r1, #0xb0 + bl sub_0801D630 + bl sub_08049CD4 + bl sub_080300AC + bl sub_0807CA18 + ldr r0, _08051A0C @ =gUnk_02002AC8 + adds r1, r4, #0 + adds r1, #0xc + movs r2, #0x20 + bl sub_0801D66C + movs r0, #4 + strb r0, [r4, #9] + bl sub_08053518 + ldr r1, _08051A10 @ =gUnk_03001000 + movs r0, #1 + strb r0, [r1, #3] + strb r5, [r1, #4] +_08051A02: + pop {r4, r5, pc} + .align 2, 0 +_08051A04: .4byte gUnk_03000FD0 +_08051A08: .4byte gUnk_030010A0 +_08051A0C: .4byte gUnk_02002AC8 +_08051A10: .4byte gUnk_03001000 + + thumb_func_start sub_08051A14 +sub_08051A14: @ 0x08051A14 + push {lr} + movs r0, #1 + bl sub_0801DA90 + ldr r1, _08051A70 @ =gUnk_03000FD0 + movs r0, #1 + rsbs r0, r0, #0 + str r0, [r1, #4] + ldr r0, _08051A74 @ =gUnk_03000000 + ldr r1, _08051A78 @ =0x00000B74 + bl sub_0801D630 + ldr r0, _08051A7C @ =gUnk_02032EC0 + movs r1, #0xed + lsls r1, r1, #2 + bl sub_0801D630 + bl sub_0805E60C + bl sub_080197AC + bl sub_08080668 + bl sub_080ADD30 + movs r0, #1 + bl sub_0801CFA8 + bl sub_0806FD8C + ldr r2, _08051A80 @ =gUnk_03000BF0 + ldr r1, _08051A84 @ =gUnk_030010A0 + ldrb r0, [r1, #0xc] + strb r0, [r2, #4] + ldrb r0, [r1, #0xd] + strb r0, [r2, #5] + bl sub_08053320 + ldr r1, _08051A88 @ =gUnk_02024490 + movs r0, #1 + strb r0, [r1] + ldr r1, _08051A8C @ =gUnk_03001000 + movs r0, #2 + strb r0, [r1, #3] + pop {pc} + .align 2, 0 +_08051A70: .4byte gUnk_03000FD0 +_08051A74: .4byte gUnk_03000000 +_08051A78: .4byte 0x00000B74 +_08051A7C: .4byte gUnk_02032EC0 +_08051A80: .4byte gUnk_03000BF0 +_08051A84: .4byte gUnk_030010A0 +_08051A88: .4byte gUnk_02024490 +_08051A8C: .4byte gUnk_03001000 + + thumb_func_start sub_08051A90 +sub_08051A90: @ 0x08051A90 + push {lr} + ldr r1, _08051AA4 @ =gUnk_080FC9E8 + ldr r0, _08051AA8 @ =gUnk_03001000 + ldrb r0, [r0, #4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08051AA4: .4byte gUnk_080FC9E8 +_08051AA8: .4byte gUnk_03001000 + + thumb_func_start sub_08051AAC +sub_08051AAC: @ 0x08051AAC + push {lr} + bl sub_0805E5A8 + ldr r1, _08051AE4 @ =gUnk_03000F50 + movs r2, #0 + movs r0, #0xba + lsls r0, r0, #5 + strh r0, [r1] + ldr r1, _08051AE8 @ =gUnk_03001000 + movs r0, #1 + strb r0, [r1, #4] + ldr r0, _08051AEC @ =gUnk_030010A0 + strb r2, [r0, #8] + strb r2, [r0, #4] + strb r2, [r0, #5] + bl sub_08056418 + bl sub_08052CFC + movs r0, #0 + bl sub_0801C370 + bl sub_08051D40 + bl sub_0801855C + pop {pc} + .align 2, 0 +_08051AE4: .4byte gUnk_03000F50 +_08051AE8: .4byte gUnk_03001000 +_08051AEC: .4byte gUnk_030010A0 + + thumb_func_start sub_08051AF0 +sub_08051AF0: @ 0x08051AF0 + push {r4, r5, lr} + bl sub_0805E5C0 + bl sub_0805BBBC + cmp r0, #0 + bne _08051B02 + bl sub_0807FC40 +_08051B02: + bl sub_0801B060 + bl sub_08000108 + bl sub_0801C344 + bl sub_0805E5F8 + bl sub_080AD90C + bl sub_0801C208 + bl sub_08078CB4 + bl sub_080AD9B0 + bl sub_080AD918 + ldr r0, _08051BB0 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08051BAE + ldr r0, _08051BB4 @ =gUnk_03000BF0 + ldrh r0, [r0] + cmp r0, #0 + bne _08051BAE + bl sub_08052F1C + ldr r5, _08051BB8 @ =gUnk_02033A90 + movs r0, #0x86 + lsls r0, r0, #4 + adds r3, r5, r0 + ldr r1, _08051BBC @ =0x00000864 + adds r0, r5, r1 + ldr r1, [r3] + ldr r2, [r0] + cmp r1, r2 + beq _08051B5A + str r2, [r3] + ldr r0, _08051BC0 @ =0x800B0000 + orrs r2, r0 + adds r0, r2, #0 + bl sub_080A3268 +_08051B5A: + bl sub_0805E9F4 + bl sub_0805BC04 + adds r4, r0, #0 + cmp r4, #0 + bne _08051BAE + bl sub_08052C5C + bl sub_0805E5B4 + bl sub_08051E04 + bl sub_080300C4 + ldr r1, _08051BC4 @ =gUnk_03001000 + movs r0, #2 + strb r0, [r1, #4] + movs r0, #0 + bl sub_08078A90 + ldr r0, _08051BC8 @ =gUnk_02034490 + strb r4, [r0] + adds r0, r5, #0 + adds r0, #0x28 + ldrb r0, [r0] + cmp r0, #0xff + beq _08051B96 + bl sub_0801855C +_08051B96: + bl sub_08052BF8 + bl sub_08053178 + ldr r0, _08051BCC @ =gUnk_02034350 + ldrb r0, [r0] + cmp r0, #0 + bne _08051BAE + movs r0, #0 + movs r1, #1 + bl sub_0805E4E0 +_08051BAE: + pop {r4, r5, pc} + .align 2, 0 +_08051BB0: .4byte gUnk_03000FD0 +_08051BB4: .4byte gUnk_03000BF0 +_08051BB8: .4byte gUnk_02033A90 +_08051BBC: .4byte 0x00000864 +_08051BC0: .4byte 0x800B0000 +_08051BC4: .4byte gUnk_03001000 +_08051BC8: .4byte gUnk_02034490 +_08051BCC: .4byte gUnk_02034350 + + thumb_func_start sub_08051BD0 +sub_08051BD0: @ 0x08051BD0 + push {lr} + bl sub_080705AC + cmp r0, #0 + bne _08051C9C + bl sub_0804AA84 + cmp r0, #0 + bne _08051C9C + bl sub_0805340C + ldr r0, _08051C5C @ =gUnk_03001000 + ldrb r0, [r0, #4] + cmp r0, #2 + bne _08051C9C + ldr r0, _08051C60 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08051C02 + ldr r0, _08051C64 @ =gUnk_03003DC0 + ldrh r0, [r0, #8] + cmp r0, #0 + beq _08051C06 +_08051C02: + bl sub_08078B48 +_08051C06: + bl sub_080AD90C + bl sub_0805E5C0 + bl sub_08080A40 + bl sub_080175F4 + bl sub_0807FC40 + bl sub_0801B060 + bl sub_08000108 + bl sub_08052C3C + bl sub_0801C344 + bl sub_0805E5F8 + bl sub_0801C208 + bl sub_08078CB4 + bl sub_080AD9B0 + bl sub_0805291C + bl sub_08052C5C + bl sub_080528B4 + bl sub_080185F8 + bl sub_080AD918 + ldr r0, _08051C68 @ =gUnk_03000BF0 + ldrh r2, [r0] + cmp r2, #1 + beq _08051C6C + cmp r2, #2 + beq _08051C88 + b _08051C9C + .align 2, 0 +_08051C5C: .4byte gUnk_03001000 +_08051C60: .4byte gUnk_02000050 +_08051C64: .4byte gUnk_03003DC0 +_08051C68: .4byte gUnk_03000BF0 +_08051C6C: + ldr r0, _08051C80 @ =gUnk_03003F80 + movs r1, #0x17 + strb r1, [r0, #0xc] + ldr r0, _08051C84 @ =gUnk_03001000 + strb r2, [r0, #4] + bl sub_0805E59C + bl sub_08051D98 + b _08051C9C + .align 2, 0 +_08051C80: .4byte gUnk_03003F80 +_08051C84: .4byte gUnk_03001000 +_08051C88: + ldr r1, _08051CA0 @ =gUnk_03003F80 + movs r0, #0x17 + strb r0, [r1, #0xc] + ldr r1, _08051CA4 @ =gUnk_03001000 + movs r0, #1 + strb r0, [r1, #4] + bl sub_0805E59C + bl sub_08051DCC +_08051C9C: + pop {pc} + .align 2, 0 +_08051CA0: .4byte gUnk_03003F80 +_08051CA4: .4byte gUnk_03001000 + + thumb_func_start sub_08051CA8 +sub_08051CA8: @ 0x08051CA8 + push {lr} + bl sub_080705AC + cmp r0, #0 + bne _08051CEA + bl sub_0805E5C0 + bl sub_080175F4 + bl sub_0801C344 + bl sub_0805E5F8 + bl sub_080AD90C + bl sub_0801C208 + bl sub_08078CB4 + bl sub_080AD9B0 + bl sub_0805291C + bl sub_080528B4 + bl sub_080AD918 + ldr r0, _08051CEC @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08051CEA + bl sub_0805E5B4 +_08051CEA: + pop {pc} + .align 2, 0 +_08051CEC: .4byte gUnk_03000FD0 + + thumb_func_start sub_08051CF0 +sub_08051CF0: @ 0x08051CF0 + push {r4, r5, r6, lr} + bl sub_080AD90C + bl sub_0801C208 + bl sub_080AD9B0 + ldr r5, _08051D20 @ =gUnk_03001000 + movs r6, #1 + strb r6, [r5, #0xb] + bl sub_080AD918 + ldr r0, _08051D24 @ =gUnk_03000FD0 + ldrb r4, [r0] + cmp r4, #0 + bne _08051D1E + movs r0, #1 + bl sub_0801DA90 + strb r6, [r5, #3] + strb r4, [r5, #4] + ldr r0, _08051D28 @ =gUnk_030010A0 + strb r6, [r0, #8] +_08051D1E: + pop {r4, r5, r6, pc} + .align 2, 0 +_08051D20: .4byte gUnk_03001000 +_08051D24: .4byte gUnk_03000FD0 +_08051D28: .4byte gUnk_030010A0 + + thumb_func_start sub_08051D2C +sub_08051D2C: @ 0x08051D2C + push {lr} + movs r0, #7 + movs r1, #8 + bl sub_08050054 + movs r0, #3 + bl sub_08056010 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08051D40 +sub_08051D40: @ 0x08051D40 + push {lr} + bl sub_08052EA0 + bl sub_0804AF90 + bl sub_0804AFDC + bl sub_080524A8 + ldr r1, _08051D90 @ =gUnk_03004030 + movs r0, #0 + str r0, [r1] + bl sub_0807C740 + ldr r1, _08051D94 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + bl sub_0805283C + movs r0, #0 + movs r1, #0 + bl sub_0801D79C + bl sub_0804B01C + bl sub_080609AC + bl sub_0804AFF4 + bl sub_0805329C + bl sub_08000108 + movs r0, #1 + rsbs r0, r0, #0 + bl sub_0805BB74 + bl sub_080531F8 + pop {pc} + .align 2, 0 +_08051D90: .4byte gUnk_03004030 +_08051D94: .4byte gUnk_02000070 + + thumb_func_start sub_08051D98 +sub_08051D98: @ 0x08051D98 + push {lr} + bl sub_08052EA0 + ldr r1, _08051DC8 @ =gUnk_02034350 + movs r0, #1 + strb r0, [r1] + bl sub_0805E9A8 + bl sub_0804AF90 + bl sub_0804AFDC + bl sub_0807C0DC + bl sub_0805283C + bl sub_0804B01C + bl sub_0804AFF4 + movs r0, #1 + bl sub_08078A90 + pop {pc} + .align 2, 0 +_08051DC8: .4byte gUnk_02034350 + + thumb_func_start sub_08051DCC +sub_08051DCC: @ 0x08051DCC + push {r4, lr} + ldr r1, _08051DFC @ =gUnk_03000BF0 + ldr r4, _08051E00 @ =gUnk_030010A0 + ldrb r0, [r4, #0xc] + strb r0, [r1, #4] + ldrb r0, [r4, #0xd] + strb r0, [r1, #5] + bl sub_080528F0 + movs r0, #3 + strb r0, [r4, #9] + bl sub_08052CFC + bl sub_08052EA0 + bl sub_0805E9A8 + bl sub_0804AF90 + bl sub_0804AFDC + bl sub_0805283C + pop {r4, pc} + .align 2, 0 +_08051DFC: .4byte gUnk_03000BF0 +_08051E00: .4byte gUnk_030010A0 + + thumb_func_start sub_08051E04 +sub_08051E04: @ 0x08051E04 + push {lr} + bl sub_08052620 + cmp r0, #0 + beq _08051E60 + ldr r1, _08051E2C @ =gUnk_03001160 + movs r2, #0x2e + ldrsh r0, [r1, r2] + cmp r0, #0 + bge _08051E1A + adds r0, #0xf +_08051E1A: + asrs r2, r0, #4 + movs r3, #0x32 + ldrsh r0, [r1, r3] + cmp r0, #0 + bge _08051E26 + adds r0, #0xf +_08051E26: + asrs r1, r0, #4 + ldr r3, _08051E30 @ =gUnk_08127F94 + b _08051E36 + .align 2, 0 +_08051E2C: .4byte gUnk_03001160 +_08051E30: .4byte gUnk_08127F94 +_08051E34: + adds r3, #8 +_08051E36: + ldrb r0, [r3] + cmp r0, #0xff + beq _08051E60 + cmp r0, r2 + bhi _08051E34 + ldrb r0, [r3, #2] + cmp r0, r2 + blo _08051E34 + ldrb r0, [r3, #1] + cmp r0, r1 + bhi _08051E34 + ldrb r0, [r3, #3] + cmp r0, r1 + blo _08051E34 + ldr r2, _08051E64 @ =gUnk_02002A40 + movs r1, #1 + ldrb r3, [r3, #4] + lsls r1, r3 + ldr r0, [r2, #0x40] + orrs r0, r1 + str r0, [r2, #0x40] +_08051E60: + pop {pc} + .align 2, 0 +_08051E64: .4byte gUnk_02002A40 + + thumb_func_start sub_08051E68 +sub_08051E68: @ 0x08051E68 + push {lr} + ldr r1, _08051E7C @ =gUnk_080FCA08 + ldr r0, _08051E80 @ =gUnk_02000080 + ldrb r0, [r0, #5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08051E7C: .4byte gUnk_080FCA08 +_08051E80: .4byte gUnk_02000080 + + thumb_func_start sub_08051E84 +sub_08051E84: @ 0x08051E84 + push {r4, r5, r6, lr} + ldr r0, _08051EF0 @ =gUnk_02032EC0 + ldrb r4, [r0, #3] + lsls r4, r4, #3 + ldr r0, _08051EF4 @ =gUnk_080FCA20 + adds r4, r4, r0 + ldr r5, _08051EF8 @ =gUnk_03000BF0 + ldrb r0, [r4] + strb r0, [r5, #4] + ldrb r0, [r4, #1] + strb r0, [r5, #5] + bl sub_08053320 + ldrb r0, [r5, #4] + bl sub_08052D58 + ldr r1, _08051EFC @ =gUnk_02033A90 + movs r6, #0 + strh r0, [r1, #4] + ldrb r0, [r4] + ldrb r1, [r4, #1] + bl sub_0804B0C0 + ldrb r0, [r4] + ldrb r1, [r4, #1] + bl sub_08052FD8 + ldrh r0, [r4, #4] + ldrh r1, [r5, #6] + adds r0, r0, r1 + strh r0, [r5, #0xa] + ldrh r0, [r4, #6] + ldrh r1, [r5, #8] + adds r0, r0, r1 + strh r0, [r5, #0xc] + ldr r1, _08051F00 @ =gUnk_02000080 + ldrb r0, [r4, #2] + strb r0, [r1] + ldrb r2, [r4, #3] + movs r0, #0xf + ands r0, r2 + strb r0, [r1, #3] + str r4, [r1, #0xc] + ldrb r0, [r1, #5] + adds r0, #1 + strb r0, [r1, #5] + strb r6, [r1, #6] + movs r0, #0x96 + lsls r0, r0, #1 + strh r0, [r1, #8] + bl sub_08051F04 + pop {r4, r5, r6, pc} + .align 2, 0 +_08051EF0: .4byte gUnk_02032EC0 +_08051EF4: .4byte gUnk_080FCA20 +_08051EF8: .4byte gUnk_03000BF0 +_08051EFC: .4byte gUnk_02033A90 +_08051F00: .4byte gUnk_02000080 + + thumb_func_start sub_08051F04 +sub_08051F04: @ 0x08051F04 + push {lr} + ldr r1, _08051F38 @ =gUnk_080FCA14 + ldr r0, _08051F3C @ =gUnk_02000080 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + bl sub_080AD90C + bl sub_0805E5C0 + bl sub_080AD9B0 + bl sub_080AD918 + bl sub_0807FC40 + bl sub_0801B060 + bl sub_0805E5F8 + bl sub_08000108 + pop {pc} + .align 2, 0 +_08051F38: .4byte gUnk_080FCA14 +_08051F3C: .4byte gUnk_02000080 + + thumb_func_start sub_08051F40 +sub_08051F40: @ 0x08051F40 + push {lr} + ldr r0, _08051F60 @ =gUnk_080FCA20 + ldr r2, _08051F64 @ =gUnk_02032EC0 + ldrb r1, [r2, #3] + lsls r1, r1, #3 + adds r1, r1, r0 + ldrb r1, [r1, #3] + movs r0, #0xf0 + ands r0, r1 + cmp r0, #0 + beq _08051F68 + lsrs r1, r1, #4 + movs r0, #2 + bl sub_080A7138 + b _08051F76 + .align 2, 0 +_08051F60: .4byte gUnk_080FCA20 +_08051F64: .4byte gUnk_02032EC0 +_08051F68: + movs r0, #3 + strb r0, [r2] + movs r0, #0x10 + bl sub_080500F4 + bl sub_08056418 +_08051F76: + pop {pc} + + thumb_func_start sub_08051F78 +sub_08051F78: @ 0x08051F78 + push {lr} + ldr r0, _08051F94 @ =gUnk_02032EC0 + ldrb r3, [r0, #3] + lsls r3, r3, #3 + ldr r0, _08051F98 @ =gUnk_080FCA20 + adds r3, r3, r0 + ldrb r0, [r3] + ldrb r1, [r3, #1] + ldrh r2, [r3, #4] + ldrh r3, [r3, #6] + bl sub_08051F9C + pop {pc} + .align 2, 0 +_08051F94: .4byte gUnk_02032EC0 +_08051F98: .4byte gUnk_080FCA20 + + thumb_func_start sub_08051F9C +sub_08051F9C: @ 0x08051F9C + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + adds r6, r2, #0 + mov r8, r3 + ldr r5, _08051FE0 @ =gUnk_03000F50 + ldrh r2, [r5] + movs r4, #0xc0 + lsls r4, r4, #7 + ands r4, r2 + bl sub_08052FF4 + ldr r1, _08051FE4 @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + adds r0, r0, r6 + movs r6, #0 + strh r0, [r1, #0xa] + ldrh r0, [r1, #8] + add r0, r8 + strh r0, [r1, #0xc] + bl sub_0807C740 + ldr r1, _08051FE8 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + ldr r0, _08051FEC @ =gUnk_0200B644 + str r6, [r0] + ldrh r0, [r5] + orrs r4, r0 + strh r4, [r5] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, pc} + .align 2, 0 +_08051FE0: .4byte gUnk_03000F50 +_08051FE4: .4byte gUnk_03000BF0 +_08051FE8: .4byte gUnk_02000070 +_08051FEC: .4byte gUnk_0200B644 + + thumb_func_start sub_08051FF0 +sub_08051FF0: @ 0x08051FF0 + push {lr} + ldr r0, _08052000 @ =gUnk_02000080 + ldr r1, [r0, #0xc] + ldrb r0, [r1] + ldrb r1, [r1, #1] + bl sub_0804B0B0 + pop {pc} + .align 2, 0 +_08052000: .4byte gUnk_02000080 + + thumb_func_start sub_08052004 +sub_08052004: @ 0x08052004 + ldr r1, _0805200C @ =gUnk_02000080 + movs r0, #2 + strb r0, [r1, #5] + bx lr + .align 2, 0 +_0805200C: .4byte gUnk_02000080 + + thumb_func_start sub_08052010 +sub_08052010: @ 0x08052010 + push {r4, lr} + bl sub_080A3210 + bl sub_08056418 + movs r0, #1 + bl sub_0801DA90 + ldr r0, _0805207C @ =gUnk_02021F30 + movs r4, #0x80 + lsls r4, r4, #4 + adds r1, r4, #0 + bl sub_0801D630 + ldr r0, _08052080 @ =gUnk_020344B0 + adds r1, r4, #0 + bl sub_0801D630 + bl sub_080A4D34 + movs r0, #0xa + bl sub_0801D714 + movs r0, #0 + movs r1, #0 + bl sub_0801D79C + movs r0, #4 + bl sub_0801D7EC + movs r0, #0xc0 + lsls r0, r0, #0x13 + movs r1, #0x20 + bl sub_0801D630 + ldr r0, _08052084 @ =gUnk_02000080 + movs r1, #0x30 + bl sub_0801D630 + ldr r1, _08052088 @ =gUnk_03000F50 + ldrh r2, [r1] + movs r3, #0x80 + lsls r3, r3, #5 + adds r0, r3, #0 + orrs r0, r2 + strh r0, [r1] + ldr r0, _0805208C @ =0x00001C01 + strh r0, [r1, #0x14] + ldr r0, _08052090 @ =0x00001D05 + strh r0, [r1, #0x20] + movs r0, #1 + strh r0, [r1, #0x1a] + strh r0, [r1, #0x26] + pop {r4, pc} + .align 2, 0 +_0805207C: .4byte gUnk_02021F30 +_08052080: .4byte gUnk_020344B0 +_08052084: .4byte gUnk_02000080 +_08052088: .4byte gUnk_03000F50 +_0805208C: .4byte 0x00001C01 +_08052090: .4byte 0x00001D05 + + thumb_func_start sub_08052094 +sub_08052094: @ 0x08052094 + push {r4, lr} + ldr r1, _080520BC @ =gUnk_080FCA70 + ldr r4, _080520C0 @ =gUnk_03001000 + ldrb r0, [r4, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + ldrb r0, [r4, #3] + cmp r0, #0 + beq _080520B8 + bl sub_080AD90C + bl sub_080523D4 + bl sub_080AD918 +_080520B8: + pop {r4, pc} + .align 2, 0 +_080520BC: .4byte gUnk_080FCA70 +_080520C0: .4byte gUnk_03001000 + + thumb_func_start sub_080520C4 +sub_080520C4: @ 0x080520C4 + push {lr} + ldr r1, _080520D4 @ =gUnk_03001000 + strb r0, [r1, #3] + movs r0, #0 + bl sub_080A7114 + pop {pc} + .align 2, 0 +_080520D4: .4byte gUnk_03001000 + + thumb_func_start sub_080520D8 +sub_080520D8: @ 0x080520D8 + push {r4, lr} + ldr r4, _08052118 @ =gUnk_03000FD0 + ldrb r0, [r4] + cmp r0, #0 + bne _08052114 + bl sub_08052010 + ldr r1, _0805211C @ =gUnk_02000080 + movs r0, #0x50 + strb r0, [r1, #0x10] + movs r2, #0x3c + movs r0, #0x3c + strh r0, [r1, #8] + ldr r0, _08052120 @ =gUnk_02002A40 + adds r0, #0xaa + movs r1, #0x18 + strb r1, [r0] + ldr r0, _08052124 @ =gUnk_03001000 + strb r2, [r0, #5] + movs r0, #0xa + bl sub_080A3268 + movs r0, #4 + bl sub_080500F4 + ldr r0, _08052128 @ =0xFFFF0001 + str r0, [r4, #4] + movs r0, #1 + bl sub_080520C4 +_08052114: + pop {r4, pc} + .align 2, 0 +_08052118: .4byte gUnk_03000FD0 +_0805211C: .4byte gUnk_02000080 +_08052120: .4byte gUnk_02002A40 +_08052124: .4byte gUnk_03001000 +_08052128: .4byte 0xFFFF0001 + + thumb_func_start sub_0805212C +sub_0805212C: @ 0x0805212C + push {r4, lr} + ldr r4, _0805214C @ =gUnk_03000FD0 + ldrb r0, [r4] + cmp r0, #0 + bne _0805219C + ldr r1, _08052150 @ =gUnk_03001000 + ldrb r0, [r1, #5] + cmp r0, #0 + bne _08052198 + ldr r1, _08052154 @ =gUnk_02000080 + ldrb r0, [r1, #0x10] + cmp r0, #0x25 + bls _08052158 + subs r0, #1 + strb r0, [r1, #0x10] + b _0805219C + .align 2, 0 +_0805214C: .4byte gUnk_03000FD0 +_08052150: .4byte gUnk_03001000 +_08052154: .4byte gUnk_02000080 +_08052158: + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0805219C + movs r0, #2 + bl sub_080520C4 + movs r0, #0 + movs r1, #0 + bl sub_08052418 + ldr r2, _08052190 @ =gUnk_03000F50 + ldrh r0, [r2] + movs r3, #0xc0 + lsls r3, r3, #3 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + ldr r0, _08052194 @ =0x0000FFFF + str r0, [r4, #4] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + b _0805219C + .align 2, 0 +_08052190: .4byte gUnk_03000F50 +_08052194: .4byte 0x0000FFFF +_08052198: + subs r0, #1 + strb r0, [r1, #5] +_0805219C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080521A0 +sub_080521A0: @ 0x080521A0 + push {r4, lr} + ldr r0, _080521C4 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + beq _080521AC + b _080522E8 +_080521AC: + ldr r0, _080521C8 @ =gUnk_02000080 + ldrb r1, [r0, #5] + adds r2, r0, #0 + cmp r1, #4 + bls _080521B8 + b _080522D4 +_080521B8: + lsls r0, r1, #2 + ldr r1, _080521CC @ =_080521D0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080521C4: .4byte gUnk_03000FD0 +_080521C8: .4byte gUnk_02000080 +_080521CC: .4byte _080521D0 +_080521D0: @ jump table + .4byte _080521E4 @ case 0 + .4byte _08052208 @ case 1 + .4byte _08052278 @ case 2 + .4byte _080522B0 @ case 3 + .4byte _080522D4 @ case 4 +_080521E4: + movs r1, #0 + movs r0, #0x1e + strh r0, [r2, #8] + strb r1, [r2, #3] + movs r0, #1 + bl sub_080A7114 + movs r0, #0 + movs r1, #0 + bl sub_08052418 + ldr r1, _08052204 @ =gUnk_03000FD0 + movs r0, #1 + rsbs r0, r0, #0 + str r0, [r1, #4] + b _080522E8 + .align 2, 0 +_08052204: .4byte gUnk_03000FD0 +_08052208: + ldrh r0, [r2, #8] + cmp r0, #0 + bne _080522B6 + ldrb r4, [r2, #3] + ldr r0, _08052224 @ =gUnk_03000FF0 + ldrh r0, [r0, #2] + cmp r0, #0x40 + beq _0805222E + cmp r0, #0x40 + bgt _08052228 + cmp r0, #1 + beq _08052236 + b _0805225A + .align 2, 0 +_08052224: .4byte gUnk_03000FF0 +_08052228: + cmp r0, #0x80 + beq _08052232 + b _0805225A +_0805222E: + movs r4, #0 + b _0805225A +_08052232: + movs r4, #1 + b _0805225A +_08052236: + cmp r4, #0 + beq _0805223E + movs r2, #4 + b _08052248 +_0805223E: + movs r0, #8 + movs r1, #0 + bl sub_08050318 + movs r2, #2 +_08052248: + ldr r1, _08052274 @ =gUnk_02000080 + movs r0, #0x3c + strh r0, [r1, #8] + adds r0, r2, #0 + bl sub_080A7114 + movs r0, #0x6a + bl sub_080A3268 +_0805225A: + ldr r1, _08052274 @ =gUnk_02000080 + ldrb r0, [r1, #3] + cmp r0, r4 + beq _080522E8 + strb r4, [r1, #3] + movs r0, #0 + adds r1, r4, #0 + bl sub_08052418 + movs r0, #0x69 + bl sub_080A3268 + b _080522E8 + .align 2, 0 +_08052274: .4byte gUnk_02000080 +_08052278: + movs r0, #0 + bl sub_0807CDA4 + adds r1, r0, #0 + ldr r2, _08052298 @ =gUnk_02000080 + strb r1, [r2] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _0805229C + cmp r1, #1 + bne _080522E8 + movs r0, #4 + bl sub_080A7114 + b _080522E8 + .align 2, 0 +_08052298: .4byte gUnk_02000080 +_0805229C: + movs r0, #0x3c + strh r0, [r2, #8] + movs r0, #9 + movs r1, #0 + bl sub_08050318 + movs r0, #3 + bl sub_080A7114 + b _080522E8 +_080522B0: + ldrh r0, [r2, #8] + cmp r0, #0 + beq _080522BC +_080522B6: + subs r0, #1 + strh r0, [r2, #8] + b _080522E8 +_080522BC: + ldr r0, _080522D0 @ =gUnk_03000FF0 + ldrh r1, [r0, #2] + movs r0, #0xb + ands r0, r1 + cmp r0, #0 + beq _080522E8 + movs r0, #0 + bl sub_080A7114 + b _080522E8 + .align 2, 0 +_080522D0: .4byte gUnk_03000FF0 +_080522D4: + ldr r2, _080522EC @ =gUnk_03000F50 + ldrh r1, [r2] + ldr r0, _080522F0 @ =0x0000FDFF + ands r0, r1 + strh r0, [r2] + bl sub_08050384 + movs r0, #3 + bl sub_080520C4 +_080522E8: + pop {r4, pc} + .align 2, 0 +_080522EC: .4byte gUnk_03000F50 +_080522F0: .4byte 0x0000FDFF + + thumb_func_start sub_080522F4 +sub_080522F4: @ 0x080522F4 + push {r4, lr} + ldr r0, _08052320 @ =gUnk_02000080 + ldrb r1, [r0, #5] + adds r3, r0, #0 + cmp r1, #1 + beq _08052324 + cmp r1, #1 + bgt _080523AC + cmp r1, #0 + bne _080523AC + movs r1, #0 + movs r0, #0x1e + strh r0, [r3, #8] + strb r1, [r3, #3] + movs r0, #1 + bl sub_080A7114 + movs r0, #1 + movs r1, #0 + bl sub_08052418 + b _080523CC + .align 2, 0 +_08052320: .4byte gUnk_02000080 +_08052324: + ldr r2, _08052340 @ =gUnk_03000F50 + ldrh r1, [r2] + movs r4, #0x80 + lsls r4, r4, #2 + adds r0, r4, #0 + orrs r0, r1 + strh r0, [r2] + ldrh r0, [r3, #8] + cmp r0, #0 + beq _08052344 + subs r0, #1 + strh r0, [r3, #8] + b _080523CC + .align 2, 0 +_08052340: .4byte gUnk_03000F50 +_08052344: + ldrb r4, [r3, #3] + ldr r0, _08052358 @ =gUnk_03000FF0 + ldrh r0, [r0, #2] + cmp r0, #0x40 + beq _08052362 + cmp r0, #0x40 + bgt _0805235C + cmp r0, #1 + beq _0805236A + b _0805238C + .align 2, 0 +_08052358: .4byte gUnk_03000FF0 +_0805235C: + cmp r0, #0x80 + beq _08052366 + b _0805238C +_08052362: + movs r4, #0 + b _0805238C +_08052366: + movs r4, #1 + b _0805238C +_0805236A: + movs r0, #2 + bl sub_080A7114 + movs r0, #0x6a + bl sub_080A3268 + cmp r4, #0 + bne _08052384 + movs r0, #5 + movs r1, #8 + bl sub_08050054 + b _0805238C +_08052384: + movs r0, #7 + movs r1, #8 + bl sub_08050054 +_0805238C: + ldr r1, _080523A8 @ =gUnk_02000080 + ldrb r0, [r1, #3] + cmp r0, r4 + beq _080523CC + strb r4, [r1, #3] + movs r0, #1 + adds r1, r4, #0 + bl sub_08052418 + movs r0, #0x69 + bl sub_080A3268 + b _080523CC + .align 2, 0 +_080523A8: .4byte gUnk_02000080 +_080523AC: + ldr r0, _080523C4 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080523CC + ldrb r0, [r3, #3] + cmp r0, #0 + bne _080523C8 + movs r0, #2 + bl sub_08056010 + b _080523CC + .align 2, 0 +_080523C4: .4byte gUnk_03000FD0 +_080523C8: + bl sub_080560A8 +_080523CC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start nullsub_107 +nullsub_107: @ 0x080523D0 + bx lr + .align 2, 0 + + thumb_func_start sub_080523D4 +sub_080523D4: @ 0x080523D4 + push {r4, r5, r6, lr} + ldr r1, _08052408 @ =gUnk_03001010 + movs r0, #0 + strh r0, [r1, #4] + strh r0, [r1, #6] + movs r0, #0x86 + lsls r0, r0, #8 + strh r0, [r1, #8] + ldr r0, _0805240C @ =gUnk_02000080 + ldrb r0, [r0, #0x10] + strh r0, [r1, #2] + movs r4, #0 + adds r6, r1, #0 + ldr r5, _08052410 @ =gUnk_080FCA84 +_080523F0: + adds r0, r4, r5 + ldrb r0, [r0] + strh r0, [r6] + ldr r0, _08052414 @ =0x000001FD + adds r1, r4, #0 + bl sub_080ADA14 + adds r4, #1 + cmp r4, #7 + bls _080523F0 + pop {r4, r5, r6, pc} + .align 2, 0 +_08052408: .4byte gUnk_03001010 +_0805240C: .4byte gUnk_02000080 +_08052410: .4byte gUnk_080FCA84 +_08052414: .4byte 0x000001FD + + thumb_func_start sub_08052418 +sub_08052418: @ 0x08052418 + push {r4, r5, r6, lr} + sub sp, #0x18 + adds r6, r0, #0 + adds r4, r1, #0 + ldr r0, _08052494 @ =gUnk_02021F30 + movs r1, #0x80 + lsls r1, r1, #4 + bl sub_0801D630 + ldr r0, _08052498 @ =gUnk_020227E8 + movs r1, #0xf + str r1, [r0] + str r1, [r0, #8] + str r1, [r0, #0x10] + str r1, [r0, #0x18] + lsls r4, r4, #3 + adds r0, #1 + adds r4, r4, r0 + movs r5, #1 + strb r5, [r4] + ldr r4, _0805249C @ =gUnk_080FCA8C + adds r0, r4, #0 + mov r1, sp + movs r2, #0x18 + bl sub_0801D66C + lsls r2, r6, #1 + adds r2, r2, r6 + lsls r2, r2, #2 + ldr r0, _080524A0 @ =gUnk_080FCAA4 + adds r2, r2, r0 + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r1, [r0, #7] + adds r1, r2, r1 + ldrb r0, [r2, #8] + lsls r0, r0, #5 + ldrb r1, [r1] + adds r0, r0, r1 + lsls r0, r0, #1 + ldr r1, [r4] + adds r1, r1, r0 + str r1, [sp] + mov r4, sp + ldrb r0, [r2, #9] + adds r1, r5, #0 + ands r1, r0 + ldrb r3, [r4, #0x13] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r4, #0x13] + ldrh r0, [r2, #0xa] + mov r1, sp + bl sub_0805F46C + ldr r0, _080524A4 @ =gUnk_03000F50 + strh r5, [r0, #0x1a] + add sp, #0x18 + pop {r4, r5, r6, pc} + .align 2, 0 +_08052494: .4byte gUnk_02021F30 +_08052498: .4byte gUnk_020227E8 +_0805249C: .4byte gUnk_080FCA8C +_080524A0: .4byte gUnk_080FCAA4 +_080524A4: .4byte gUnk_03000F50 + + thumb_func_start sub_080524A8 +sub_080524A8: @ 0x080524A8 + push {r4, r5, r6, lr} + bl sub_080784C8 + ldr r0, _08052510 @ =gUnk_03000B80 + movs r1, #0x70 + bl sub_0801D630 + ldr r6, _08052514 @ =gUnk_03003F80 + adds r0, r6, #0 + movs r1, #0xb0 + bl sub_0801D630 + movs r0, #1 + rsbs r0, r0, #0 + adds r1, r6, #0 + adds r1, #0x40 + movs r2, #0x40 + bl sub_0801D610 + ldr r4, _08052518 @ =gUnk_03001160 + adds r0, r4, #0 + movs r1, #0x88 + bl sub_0801D630 + ldr r0, _0805251C @ =gUnk_03000BF0 + str r4, [r0, #0x30] + ldr r1, _08052520 @ =gUnk_080FCAC8 + ldr r5, _08052524 @ =gUnk_030010A0 + ldrb r0, [r5, #0xf] + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r6, #0xc] + movs r0, #0x14 + bl sub_0807CC30 + cmp r0, #0 + bne _080524FA + ldr r0, [r6, #0x30] + movs r1, #8 + orrs r0, r1 + str r0, [r6, #0x30] +_080524FA: + ldrb r0, [r5, #0xf] + subs r0, #2 + adds r2, r5, #0 + cmp r0, #0xa + bhi _080525C2 + lsls r0, r0, #2 + ldr r1, _08052528 @ =_0805252C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08052510: .4byte gUnk_03000B80 +_08052514: .4byte gUnk_03003F80 +_08052518: .4byte gUnk_03001160 +_0805251C: .4byte gUnk_03000BF0 +_08052520: .4byte gUnk_080FCAC8 +_08052524: .4byte gUnk_030010A0 +_08052528: .4byte _0805252C +_0805252C: @ jump table + .4byte _08052558 @ case 0 + .4byte _08052576 @ case 1 + .4byte _08052564 @ case 2 + .4byte _080525C2 @ case 3 + .4byte _08052558 @ case 4 + .4byte _08052584 @ case 5 + .4byte _08052584 @ case 6 + .4byte _080525C2 @ case 7 + .4byte _080525A0 @ case 8 + .4byte _080525AC @ case 9 + .4byte _080525B8 @ case 10 +_08052558: + ldr r0, _08052560 @ =0x0000FF40 + strh r0, [r4, #0x36] + b _080525C0 + .align 2, 0 +_08052560: .4byte 0x0000FF40 +_08052564: + ldr r0, _0805257C @ =gUnk_03003F80 + adds r0, #0x38 + movs r1, #0x10 + strb r1, [r0] + ldr r1, _08052580 @ =gUnk_030010A0 + ldrb r0, [r1, #0xe] + lsls r0, r0, #2 + strb r0, [r4, #0x15] + adds r2, r1, #0 +_08052576: + movs r0, #0xe0 + strh r0, [r4, #0x24] + b _080525C2 + .align 2, 0 +_0805257C: .4byte gUnk_03003F80 +_08052580: .4byte gUnk_030010A0 +_08052584: + ldr r1, _08052598 @ =gUnk_03003F80 + adds r2, r1, #0 + adds r2, #0x38 + movs r0, #1 + strb r0, [r2] + ldr r2, _0805259C @ =gUnk_030010A0 + ldrb r0, [r2, #0xf] + adds r1, #0x39 + strb r0, [r1] + b _080525C2 + .align 2, 0 +_08052598: .4byte gUnk_03003F80 +_0805259C: .4byte gUnk_030010A0 +_080525A0: + ldr r0, _080525A8 @ =gUnk_03003F80 + adds r0, #0x38 + movs r1, #1 + b _080525BE + .align 2, 0 +_080525A8: .4byte gUnk_03003F80 +_080525AC: + ldr r0, _080525B4 @ =gUnk_03003F80 + adds r0, #0x38 + movs r1, #3 + b _080525BE + .align 2, 0 +_080525B4: .4byte gUnk_03003F80 +_080525B8: + ldr r0, _08052614 @ =gUnk_03003F80 + adds r0, #0x38 + movs r1, #4 +_080525BE: + strb r1, [r0] +_080525C0: + ldr r2, _08052618 @ =gUnk_030010A0 +_080525C2: + movs r0, #1 + strb r0, [r4, #8] + ldrb r1, [r4, #0x10] + movs r0, #0xa0 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r3] + ldr r0, _0805261C @ =gUnk_02002A40 + adds r0, #0xaa + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x45 + strb r0, [r1] + ldrh r0, [r2, #0x10] + strh r0, [r4, #0x2e] + ldrh r0, [r2, #0x12] + strh r0, [r4, #0x32] + ldrb r0, [r2, #0xe] + strb r0, [r4, #0x14] + ldrb r1, [r2, #0x14] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + movs r1, #1 + bl sub_0805EA2C + bl sub_08017640 + pop {r4, r5, r6, pc} + .align 2, 0 +_08052614: .4byte gUnk_03003F80 +_08052618: .4byte gUnk_030010A0 +_0805261C: .4byte gUnk_02002A40 + + thumb_func_start sub_08052620 +sub_08052620: @ 0x08052620 + push {lr} + movs r1, #0 + ldr r0, _08052634 @ =gUnk_02033A90 + ldrb r0, [r0] + cmp r0, #0x81 + bne _0805262E + movs r1, #1 +_0805262E: + adds r0, r1, #0 + pop {pc} + .align 2, 0 +_08052634: .4byte gUnk_02033A90 + + thumb_func_start sub_08052638 +sub_08052638: @ 0x08052638 + push {lr} + movs r2, #0 + ldr r1, _08052650 @ =gUnk_08127D30 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0x81 + bne _0805264A + movs r2, #1 +_0805264A: + adds r0, r2, #0 + pop {pc} + .align 2, 0 +_08052650: .4byte gUnk_08127D30 + + thumb_func_start sub_08052654 +sub_08052654: @ 0x08052654 + ldr r0, _0805265C @ =gUnk_02033A90 + ldrb r0, [r0] + lsrs r0, r0, #7 + bx lr + .align 2, 0 +_0805265C: .4byte gUnk_02033A90 + + thumb_func_start sub_08052660 +sub_08052660: @ 0x08052660 + ldr r0, _0805266C @ =gUnk_02033A90 + ldrb r0, [r0] + lsrs r0, r0, #2 + movs r1, #1 + ands r0, r1 + bx lr + .align 2, 0 +_0805266C: .4byte gUnk_02033A90 + + thumb_func_start sub_08052670 +sub_08052670: @ 0x08052670 + ldr r0, _0805267C @ =gUnk_02033A90 + ldrb r0, [r0] + lsrs r0, r0, #4 + movs r1, #1 + ands r0, r1 + bx lr + .align 2, 0 +_0805267C: .4byte gUnk_02033A90 + + thumb_func_start sub_08052680 +sub_08052680: @ 0x08052680 + ldr r0, _0805268C @ =gUnk_02033A90 + ldrb r0, [r0] + lsrs r0, r0, #6 + movs r1, #1 + ands r0, r1 + bx lr + .align 2, 0 +_0805268C: .4byte gUnk_02033A90 + + thumb_func_start sub_08052690 +sub_08052690: @ 0x08052690 + ldr r0, _0805269C @ =gUnk_02033A90 + ldrb r0, [r0] + lsrs r0, r0, #3 + movs r1, #1 + ands r0, r1 + bx lr + .align 2, 0 +_0805269C: .4byte gUnk_02033A90 + + thumb_func_start sub_080526A0 +sub_080526A0: @ 0x080526A0 + push {lr} + ldr r2, _080526C4 @ =gUnk_02002AE8 + ldrb r1, [r2, #2] + adds r1, r1, r0 + cmp r1, #0 + bge _080526AE + movs r1, #0 +_080526AE: + ldrb r0, [r2, #3] + cmp r0, r1 + bge _080526B6 + adds r1, r0, #0 +_080526B6: + strb r1, [r2, #2] + ldr r0, _080526C8 @ =gUnk_03001160 + adds r0, #0x45 + strb r1, [r0] + adds r0, r1, #0 + pop {pc} + .align 2, 0 +_080526C4: .4byte gUnk_02002AE8 +_080526C8: .4byte gUnk_03001160 + + thumb_func_start sub_080526CC +sub_080526CC: @ 0x080526CC + push {lr} + ldr r3, _080526DC @ =gUnk_02002AE8 + ldrh r1, [r3, #0x18] + adds r2, r1, r0 + cmp r2, #0 + bge _080526E0 + movs r2, #0 + b _080526F0 + .align 2, 0 +_080526DC: .4byte gUnk_02002AE8 +_080526E0: + ldr r1, _080526F4 @ =gUnk_080FD590 + ldrb r0, [r3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r2, r0 + ble _080526F0 + adds r2, r0, #0 +_080526F0: + strh r2, [r3, #0x18] + pop {pc} + .align 2, 0 +_080526F4: .4byte gUnk_080FD590 + + thumb_func_start sub_080526F8 +sub_080526F8: @ 0x080526F8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08052724 + cmp r0, #0 + beq _08052718 + ldr r0, _0805271C @ =gUnk_02033A90 + ldrb r1, [r0, #3] + ldr r0, _08052720 @ =gUnk_02002E9C + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, r0, r4 + cmp r0, #0 + bge _08052716 + movs r0, #0 +_08052716: + strb r0, [r1] +_08052718: + pop {r4, pc} + .align 2, 0 +_0805271C: .4byte gUnk_02033A90 +_08052720: .4byte gUnk_02002E9C + + thumb_func_start sub_08052724 +sub_08052724: @ 0x08052724 + ldr r0, _08052730 @ =gUnk_02033A90 + ldrb r0, [r0] + lsrs r0, r0, #1 + movs r1, #1 + ands r0, r1 + bx lr + .align 2, 0 +_08052730: .4byte gUnk_02033A90 + + thumb_func_start sub_08052734 +sub_08052734: @ 0x08052734 + push {r4, lr} + bl sub_08052724 + cmp r0, #0 + beq _0805274C + ldr r0, _08052758 @ =gUnk_02002A40 + ldr r1, _0805275C @ =gUnk_02033A90 + ldr r2, _08052760 @ =0x0000045C + adds r0, r0, r2 + ldrb r1, [r1, #3] + adds r0, r0, r1 + ldrb r4, [r0] +_0805274C: + adds r0, r4, #0 + cmp r0, #0 + beq _08052754 + movs r0, #1 +_08052754: + pop {r4, pc} + .align 2, 0 +_08052758: .4byte gUnk_02002A40 +_0805275C: .4byte gUnk_02033A90 +_08052760: .4byte 0x0000045C + + thumb_func_start sub_08052764 +sub_08052764: @ 0x08052764 + push {r4, lr} + bl sub_08052724 + cmp r0, #0 + beq _08052784 + ldr r0, _08052790 @ =gUnk_02002A40 + ldr r1, _08052794 @ =gUnk_02033A90 + ldr r2, _08052798 @ =0x0000046C + adds r0, r0, r2 + ldrb r1, [r1, #3] + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_08052784: + adds r0, r4, #0 + cmp r0, #0 + beq _0805278C + movs r0, #1 +_0805278C: + pop {r4, pc} + .align 2, 0 +_08052790: .4byte gUnk_02002A40 +_08052794: .4byte gUnk_02033A90 +_08052798: .4byte 0x0000046C + + thumb_func_start sub_0805279C +sub_0805279C: @ 0x0805279C + push {lr} + bl sub_08052724 + cmp r0, #0 + beq _080527C8 + ldr r0, _080527BC @ =gUnk_02002A40 + ldr r1, _080527C0 @ =gUnk_02033A90 + ldr r2, _080527C4 @ =0x0000046C + adds r0, r0, r2 + ldrb r1, [r1, #3] + adds r0, r0, r1 + ldrb r0, [r0] + lsrs r0, r0, #1 + movs r1, #1 + ands r0, r1 + b _080527CA + .align 2, 0 +_080527BC: .4byte gUnk_02002A40 +_080527C0: .4byte gUnk_02033A90 +_080527C4: .4byte 0x0000046C +_080527C8: + movs r0, #0 +_080527CA: + pop {pc} + + thumb_func_start sub_080527CC +sub_080527CC: @ 0x080527CC + push {lr} + bl sub_08052724 + cmp r0, #0 + beq _080527F8 + ldr r0, _080527EC @ =gUnk_02002A40 + ldr r1, _080527F0 @ =gUnk_02033A90 + ldr r2, _080527F4 @ =0x0000046C + adds r0, r0, r2 + ldrb r1, [r1, #3] + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + b _080527FA + .align 2, 0 +_080527EC: .4byte gUnk_02002A40 +_080527F0: .4byte gUnk_02033A90 +_080527F4: .4byte 0x0000046C +_080527F8: + movs r0, #0 +_080527FA: + pop {pc} + + thumb_func_start sub_080527FC +sub_080527FC: @ 0x080527FC + push {r4, lr} + adds r4, r0, #0 + bl sub_08053320 + bl sub_080AE1D8 + bl sub_080ADE24 + movs r0, #1 + bl sub_0801C370 + adds r0, r4, #0 + bl sub_0801AE44 + ldr r0, _08052830 @ =gUnk_02024090 + ldr r1, _08052834 @ =gUnk_020176A0 + movs r2, #0x80 + lsls r2, r2, #3 + bl sub_0801D66C + ldr r1, _08052838 @ =gUnk_0200B644 + movs r0, #1 + rsbs r0, r0, #0 + str r0, [r1] + pop {r4, pc} + .align 2, 0 +_08052830: .4byte gUnk_02024090 +_08052834: .4byte gUnk_020176A0 +_08052838: .4byte gUnk_0200B644 + + thumb_func_start sub_0805283C +sub_0805283C: @ 0x0805283C + push {r4, lr} + ldr r0, _08052868 @ =gUnk_02033A90 + ldr r1, _0805286C @ =0x00000864 + adds r4, r0, r1 + ldr r1, _08052870 @ =gUnk_08127D30 + ldr r0, _08052874 @ =gUnk_03000BF0 + ldrb r0, [r0, #4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #3] + str r0, [r4] + movs r0, #0x8c + lsls r0, r0, #4 + movs r1, #0x7c + bl sub_0807CB10 + cmp r0, #0 + beq _08052864 + movs r0, #0x33 + str r0, [r4] +_08052864: + pop {r4, pc} + .align 2, 0 +_08052868: .4byte gUnk_02033A90 +_0805286C: .4byte 0x00000864 +_08052870: .4byte gUnk_08127D30 +_08052874: .4byte gUnk_03000BF0 + + thumb_func_start sub_08052878 +sub_08052878: @ 0x08052878 + push {lr} + ldr r0, _08052894 @ =gUnk_02033A90 + movs r2, #0x86 + lsls r2, r2, #4 + adds r1, r0, r2 + adds r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] + ldr r0, _08052898 @ =0x80010000 + bl sub_080A3268 + pop {pc} + .align 2, 0 +_08052894: .4byte gUnk_02033A90 +_08052898: .4byte 0x80010000 + + thumb_func_start sub_0805289C +sub_0805289C: @ 0x0805289C + ldr r0, _080528AC @ =gUnk_02033A90 + ldr r2, _080528B0 @ =0x00000864 + adds r1, r0, r2 + subs r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] + bx lr + .align 2, 0 +_080528AC: .4byte gUnk_02033A90 +_080528B0: .4byte 0x00000864 + + thumb_func_start sub_080528B4 +sub_080528B4: @ 0x080528B4 + push {lr} + ldr r0, _080528C4 @ =gUnk_030010A0 + ldrb r0, [r0, #5] + cmp r0, #0 + bne _080528C8 + movs r0, #0 + b _080528E6 + .align 2, 0 +_080528C4: .4byte gUnk_030010A0 +_080528C8: + bl sub_0804FFE4 + ldr r1, _080528E8 @ =gUnk_03001000 + movs r2, #0 + movs r0, #3 + strb r0, [r1, #3] + strb r2, [r1, #4] + movs r0, #5 + movs r1, #8 + bl sub_08050054 + ldr r0, _080528EC @ =0x80100000 + bl sub_080A3268 + movs r0, #1 +_080528E6: + pop {pc} + .align 2, 0 +_080528E8: .4byte gUnk_03001000 +_080528EC: .4byte 0x80100000 + + thumb_func_start sub_080528F0 +sub_080528F0: @ 0x080528F0 + push {lr} + ldr r1, _08052914 @ =gUnk_02033A90 + ldr r2, _08052918 @ =0x00000888 + adds r0, r1, r2 + ldr r2, [r0] + cmp r2, #0 + beq _08052910 + movs r3, #0x89 + lsls r3, r3, #4 + adds r0, r1, r3 + ldr r1, [r0] + cmp r1, #0 + beq _08052910 + adds r0, r2, #0 + bl _call_via_r1 +_08052910: + pop {pc} + .align 2, 0 +_08052914: .4byte gUnk_02033A90 +_08052918: .4byte 0x00000888 + + thumb_func_start sub_0805291C +sub_0805291C: @ 0x0805291C + push {r4, lr} + ldr r4, _08052948 @ =gUnk_030010A0 + ldrb r0, [r4, #8] + cmp r0, #0 + beq _080529F4 + ldr r0, _0805294C @ =gUnk_02002A40 + adds r0, #0xaa + ldrb r0, [r0] + cmp r0, #0 + beq _080529F4 + ldr r0, _08052950 @ =gUnk_03003F80 + adds r0, #0xa8 + ldrb r0, [r0] + cmp r0, #0x12 + beq _080529F4 + bl sub_080529F8 + cmp r0, #0 + beq _08052954 + movs r0, #0 + strb r0, [r4, #8] + b _080529F6 + .align 2, 0 +_08052948: .4byte gUnk_030010A0 +_0805294C: .4byte gUnk_02002A40 +_08052950: .4byte gUnk_03003F80 +_08052954: + ldrb r0, [r4, #9] + subs r0, #1 + cmp r0, #8 + bhi _080529D4 + lsls r0, r0, #2 + ldr r1, _08052968 @ =_0805296C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08052968: .4byte _0805296C +_0805296C: @ jump table + .4byte _08052990 @ case 0 + .4byte _080529A4 @ case 1 + .4byte _080529D4 @ case 2 + .4byte _080529A8 @ case 3 + .4byte _080529B2 @ case 4 + .4byte _080529BC @ case 5 + .4byte _080529C8 @ case 6 + .4byte _080529C8 @ case 7 + .4byte _0805299A @ case 8 +_08052990: + movs r0, #0xd + movs r1, #8 + bl sub_08050054 + b _080529DC +_0805299A: + movs r0, #0xd + movs r1, #3 + bl sub_08050054 + b _080529DC +_080529A4: + movs r0, #7 + b _080529AA +_080529A8: + movs r0, #5 +_080529AA: + movs r1, #4 + bl sub_08050054 + b _080529DC +_080529B2: + movs r0, #5 + movs r1, #0x10 + bl sub_08050054 + b _080529DC +_080529BC: + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #5 + bl sub_08050054 + b _080529DC +_080529C8: + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #7 + bl sub_08050054 + b _080529DC +_080529D4: + movs r0, #7 + movs r1, #0x10 + bl sub_08050054 +_080529DC: + bl sub_080528F0 + ldr r0, _080529F0 @ =gUnk_03001000 + movs r1, #3 + strb r1, [r0, #4] + movs r1, #1 + strb r1, [r0, #0xb] + movs r0, #1 + b _080529F6 + .align 2, 0 +_080529F0: .4byte gUnk_03001000 +_080529F4: + movs r0, #0 +_080529F6: + pop {r4, pc} + + thumb_func_start sub_080529F8 +sub_080529F8: @ 0x080529F8 + push {r4, r5, r6, lr} + ldr r1, _08052A34 @ =gUnk_030010A0 + ldrh r4, [r1, #0xa] + ldr r2, _08052A38 @ =gUnk_080FCAD6 + ldrh r0, [r2] + cmp r0, #0 + beq _08052A48 + ldr r3, _08052A3C @ =gUnk_03003F80 + movs r6, #0 + movs r0, #0x39 + adds r0, r0, r3 + mov ip, r0 + movs r5, #0x1e +_08052A12: + ldrh r0, [r2] + cmp r4, r0 + bne _08052A40 + strb r5, [r3, #0xc] + adds r0, r3, #0 + adds r0, #0x38 + strb r6, [r0] + ldrh r0, [r2, #2] + mov r3, ip + strb r0, [r3] + ldrb r0, [r1, #0xf] + cmp r0, #0 + bne _08052A30 + ldrh r0, [r2, #2] + strb r0, [r1, #0xf] +_08052A30: + movs r0, #1 + b _08052A4A + .align 2, 0 +_08052A34: .4byte gUnk_030010A0 +_08052A38: .4byte gUnk_080FCAD6 +_08052A3C: .4byte gUnk_03003F80 +_08052A40: + adds r2, #4 + ldrh r0, [r2] + cmp r0, #0 + bne _08052A12 +_08052A48: + movs r0, #0 +_08052A4A: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08052A4C +sub_08052A4C: @ 0x08052A4C + push {r4, r5, lr} + ldr r2, _08052A88 @ =gUnk_030010A0 + movs r0, #1 + strb r0, [r2, #8] + ldr r5, _08052A8C @ =gUnk_03001160 + ldr r3, _08052A90 @ =gUnk_03000BF0 + ldrh r0, [r5, #0x2e] + ldrh r1, [r3, #6] + subs r0, r0, r1 + movs r1, #0xfe + lsls r1, r1, #2 + adds r4, r1, #0 + ands r0, r4 + strh r0, [r2, #0x10] + ldrh r0, [r5, #0x32] + ldrh r1, [r3, #8] + subs r0, r0, r1 + ands r0, r4 + strh r0, [r2, #0x12] + movs r0, #4 + strb r0, [r2, #0xe] + movs r0, #0xa + strb r0, [r2, #0xf] + ldrb r0, [r3, #4] + strb r0, [r2, #0xc] + ldrb r0, [r3, #5] + subs r0, #1 + strb r0, [r2, #0xd] + pop {r4, r5, pc} + .align 2, 0 +_08052A88: .4byte gUnk_030010A0 +_08052A8C: .4byte gUnk_03001160 +_08052A90: .4byte gUnk_03000BF0 + + thumb_func_start sub_08052A94 +sub_08052A94: @ 0x08052A94 + push {lr} + ldr r0, _08052AAC @ =gUnk_030010A0 + ldrb r0, [r0, #9] + subs r0, #1 + cmp r0, #8 + bhi _08052B1C + lsls r0, r0, #2 + ldr r1, _08052AB0 @ =_08052AB4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08052AAC: .4byte gUnk_030010A0 +_08052AB0: .4byte _08052AB4 +_08052AB4: @ jump table + .4byte _08052AD8 @ case 0 + .4byte _08052AE6 @ case 1 + .4byte _08052B22 @ case 2 + .4byte _08052B1C @ case 3 + .4byte _08052B08 @ case 4 + .4byte _08052AF0 @ case 5 + .4byte _08052AFC @ case 6 + .4byte _08052B12 @ case 7 + .4byte _08052ADC @ case 8 +_08052AD8: + movs r0, #0xc + b _08052B14 +_08052ADC: + movs r0, #0xc + movs r1, #3 + bl sub_08050054 + b _08052B22 +_08052AE6: + movs r0, #6 + movs r1, #4 + bl sub_08050054 + b _08052B22 +_08052AF0: + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #5 + bl sub_08050054 + b _08052B22 +_08052AFC: + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #7 + bl sub_08050054 + b _08052B22 +_08052B08: + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + b _08052B22 +_08052B12: + movs r0, #6 +_08052B14: + movs r1, #8 + bl sub_08050054 + b _08052B22 +_08052B1C: + movs r0, #0x10 + bl sub_080500F4 +_08052B22: + pop {pc} + + thumb_func_start sub_08052B24 +sub_08052B24: @ 0x08052B24 + push {lr} + ldr r0, _08052B90 @ =gUnk_03000FF0 + ldrh r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08052B8A + ldr r2, _08052B94 @ =gUnk_03003F80 + adds r0, r2, #0 + adds r0, #0x8b + ldrb r0, [r0] + cmp r0, #0 + bne _08052B8A + ldr r0, _08052B98 @ =gUnk_02034490 + ldrb r0, [r0] + cmp r0, #0 + bne _08052B8A + ldr r0, _08052B9C @ =gUnk_0200AF00 + ldrb r0, [r0, #1] + cmp r0, #0 + bne _08052B8A + ldr r0, [r2, #0x30] + movs r1, #0x8c + lsls r1, r1, #1 + ands r0, r1 + cmp r0, #0 + bne _08052B8A + adds r0, r2, #0 + adds r0, #0xa9 + ldrb r0, [r0] + cmp r0, #1 + bgt _08052B8A + ldr r0, [r2, #0x2c] + cmp r0, #0 + bne _08052B8A + ldr r1, _08052BA0 @ =gUnk_03001160 + adds r0, r1, #0 + adds r0, #0x7a + ldrh r0, [r0] + cmp r0, #0 + bne _08052B8A + movs r3, #0x36 + ldrsh r0, [r1, r3] + movs r1, #0x80 + lsls r1, r1, #8 + ands r0, r1 + cmp r0, #0 + beq _08052BA4 + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _08052BA4 +_08052B8A: + movs r0, #0 + b _08052BB4 + .align 2, 0 +_08052B90: .4byte gUnk_03000FF0 +_08052B94: .4byte gUnk_03003F80 +_08052B98: .4byte gUnk_02034490 +_08052B9C: .4byte gUnk_0200AF00 +_08052BA0: .4byte gUnk_03001160 +_08052BA4: + bl sub_0801862C + movs r0, #0x13 + bl sub_08078160 + bl sub_0805E544 + movs r0, #1 +_08052BB4: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08052BB8 +sub_08052BB8: @ 0x08052BB8 + push {lr} + ldr r0, _08052BE0 @ =gUnk_030010A0 + adds r2, r0, #0 + adds r2, #0x35 + ldrb r1, [r2] + adds r3, r0, #0 + cmp r1, #0 + bne _08052BEC + ldr r0, _08052BE4 @ =gUnk_03001160 + movs r2, #0x32 + ldrsh r1, [r0, r2] + ldr r0, _08052BE8 @ =gUnk_03000BF0 + movs r2, #0xc + ldrsh r0, [r0, r2] + subs r1, r1, r0 + movs r2, #0xd + cmp r1, #0x60 + ble _08052BEE + movs r2, #1 + b _08052BEE + .align 2, 0 +_08052BE0: .4byte gUnk_030010A0 +_08052BE4: .4byte gUnk_03001160 +_08052BE8: .4byte gUnk_03000BF0 +_08052BEC: + ldrb r2, [r2] +_08052BEE: + ldrh r0, [r3, #0x36] + adds r1, r2, #0 + bl sub_080563C8 + pop {pc} + + thumb_func_start sub_08052BF8 +sub_08052BF8: @ 0x08052BF8 + push {lr} + ldr r2, _08052C34 @ =gUnk_030010A0 + adds r1, r2, #0 + adds r1, #0x31 + ldrb r0, [r1] + cmp r0, #0 + bne _08052C30 + movs r0, #1 + strb r0, [r1] + ldr r0, _08052C38 @ =gUnk_02033A90 + ldrb r1, [r0, #1] + adds r0, r2, #0 + adds r0, #0x2e + strb r1, [r0] + bl sub_0805E8D4 + adds r1, r0, #0 + cmp r1, #0 + beq _08052C30 + movs r0, #9 + strb r0, [r1, #8] + movs r0, #0xf + strb r0, [r1, #9] + strb r0, [r1, #0xa] + adds r0, r1, #0 + movs r1, #0 + bl sub_0805EA2C +_08052C30: + pop {pc} + .align 2, 0 +_08052C34: .4byte gUnk_030010A0 +_08052C38: .4byte gUnk_02033A90 + + thumb_func_start sub_08052C3C +sub_08052C3C: @ 0x08052C3C + push {lr} + ldr r2, _08052C58 @ =gUnk_02033A90 + ldrb r0, [r2, #0x18] + cmp r0, #0 + bne _08052C48 + strb r0, [r2, #0x1a] +_08052C48: + ldrb r0, [r2, #0x1a] + cmp r0, #0 + beq _08052C56 + subs r0, #1 + movs r1, #0 + strb r0, [r2, #0x1a] + strb r1, [r2, #0x18] +_08052C56: + pop {pc} + .align 2, 0 +_08052C58: .4byte gUnk_02033A90 + + thumb_func_start sub_08052C5C +sub_08052C5C: @ 0x08052C5C + push {lr} + bl sub_08052680 + cmp r0, #0 + bne _08052C98 + bl sub_08052620 + cmp r0, #0 + beq _08052C84 + ldr r2, _08052C7C @ =gUnk_030010A0 + ldr r1, _08052C80 @ =gUnk_03001160 + ldrh r0, [r1, #0x2e] + strh r0, [r2, #0x20] + ldrh r0, [r1, #0x32] + strh r0, [r2, #0x22] + b _08052C98 + .align 2, 0 +_08052C7C: .4byte gUnk_030010A0 +_08052C80: .4byte gUnk_03001160 +_08052C84: + bl sub_08052660 + cmp r0, #0 + beq _08052C98 + ldr r2, _08052C9C @ =gUnk_030010A0 + ldr r1, _08052CA0 @ =gUnk_03001160 + ldrh r0, [r1, #0x2e] + strh r0, [r2, #0x1c] + ldrh r0, [r1, #0x32] + strh r0, [r2, #0x1e] +_08052C98: + pop {pc} + .align 2, 0 +_08052C9C: .4byte gUnk_030010A0 +_08052CA0: .4byte gUnk_03001160 + + thumb_func_start sub_08052CA4 +sub_08052CA4: @ 0x08052CA4 + push {r4, lr} + ldr r4, _08052CC8 @ =gUnk_0811E214 + lsls r0, r0, #2 + adds r0, r0, r4 + lsls r4, r1, #2 + adds r4, r4, r1 + lsls r4, r4, #1 + ldr r1, [r0] + adds r1, r1, r4 + ldr r4, _08052CCC @ =gUnk_030010A0 + ldrh r0, [r1] + adds r0, r0, r2 + strh r0, [r4, #0x20] + ldrh r0, [r1, #2] + adds r0, r0, r3 + strh r0, [r4, #0x22] + pop {r4, pc} + .align 2, 0 +_08052CC8: .4byte gUnk_0811E214 +_08052CCC: .4byte gUnk_030010A0 + + thumb_func_start sub_08052CD0 +sub_08052CD0: @ 0x08052CD0 + push {r4, lr} + ldr r4, _08052CF4 @ =gUnk_0811E214 + lsls r0, r0, #2 + adds r0, r0, r4 + lsls r4, r1, #2 + adds r4, r4, r1 + lsls r4, r4, #1 + ldr r1, [r0] + adds r1, r1, r4 + ldr r4, _08052CF8 @ =gUnk_030010A0 + ldrh r0, [r1] + adds r0, r0, r2 + strh r0, [r4, #0x1c] + ldrh r0, [r1, #2] + adds r0, r0, r3 + strh r0, [r4, #0x1e] + pop {r4, pc} + .align 2, 0 +_08052CF4: .4byte gUnk_0811E214 +_08052CF8: .4byte gUnk_030010A0 + + thumb_func_start sub_08052CFC +sub_08052CFC: @ 0x08052CFC + push {r4, lr} + ldr r4, _08052D44 @ =gUnk_02033A90 + ldr r1, _08052D48 @ =0x00000894 + adds r0, r4, #0 + bl sub_0801D630 + ldr r0, _08052D4C @ =gUnk_03000BF0 + ldrb r1, [r0, #4] + lsls r1, r1, #2 + ldr r0, _08052D50 @ =gUnk_08127D30 + adds r1, r1, r0 + ldrb r0, [r1] + strb r0, [r4] + ldrb r0, [r1, #1] + strb r0, [r4, #1] + ldrb r0, [r1, #1] + subs r0, #0x17 + strb r0, [r4, #3] + ldr r2, _08052D54 @ =gUnk_0811E454 + ldrb r0, [r1, #2] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + strh r0, [r4, #4] + ldrb r0, [r1, #2] + strb r0, [r4, #6] + movs r0, #0xb4 + strb r0, [r4, #0x1a] + adds r0, #0x4c + strh r0, [r4, #0xa] + bl sub_08052A94 + bl sub_08052DA8 + pop {r4, pc} + .align 2, 0 +_08052D44: .4byte gUnk_02033A90 +_08052D48: .4byte 0x00000894 +_08052D4C: .4byte gUnk_03000BF0 +_08052D50: .4byte gUnk_08127D30 +_08052D54: .4byte gUnk_0811E454 + + thumb_func_start sub_08052D58 +sub_08052D58: @ 0x08052D58 + lsls r0, r0, #2 + ldr r1, _08052D6C @ =gUnk_08127D30 + adds r0, r0, r1 + ldr r1, _08052D70 @ =gUnk_0811E454 + ldrb r0, [r0, #2] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + bx lr + .align 2, 0 +_08052D6C: .4byte gUnk_08127D30 +_08052D70: .4byte gUnk_0811E454 + + thumb_func_start sub_08052D74 +sub_08052D74: @ 0x08052D74 + push {r4, r5, lr} + adds r3, r0, #0 + adds r4, r1, #0 + ldr r0, _08052D98 @ =gUnk_03001000 + ldrb r0, [r0, #4] + cmp r0, #7 + beq _08052D96 + ldr r0, _08052D9C @ =gUnk_02033A90 + ldr r5, _08052DA0 @ =0x00000888 + adds r1, r0, r5 + str r3, [r1] + ldr r3, _08052DA4 @ =0x0000088C + adds r1, r0, r3 + str r4, [r1] + adds r5, #8 + adds r0, r0, r5 + str r2, [r0] +_08052D96: + pop {r4, r5, pc} + .align 2, 0 +_08052D98: .4byte gUnk_03001000 +_08052D9C: .4byte gUnk_02033A90 +_08052DA0: .4byte 0x00000888 +_08052DA4: .4byte 0x0000088C + + thumb_func_start sub_08052DA8 +sub_08052DA8: @ 0x08052DA8 + push {r4, r5, r6, r7, lr} + ldr r1, _08052DF8 @ =gUnk_0811E214 + ldr r0, _08052DFC @ =gUnk_03000BF0 + ldrb r0, [r0, #4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r4, [r0] + ldr r7, _08052E00 @ =gUnk_02033ACC + movs r5, #0 + ldrh r0, [r4] + ldr r1, _08052E04 @ =0x0000FFFF + cmp r0, r1 + beq _08052DE8 + adds r6, r1, #0 +_08052DC4: + ldrh r0, [r4, #8] + cmp r0, r6 + beq _08052DD8 + ldr r0, _08052DFC @ =gUnk_03000BF0 + ldrb r2, [r0, #4] + adds r0, r7, #0 + adds r1, r4, #0 + adds r3, r5, #0 + bl sub_08052E10 +_08052DD8: + adds r7, #0x20 + adds r5, #1 + adds r4, #0xa + cmp r5, #0x3f + bhi _08052DE8 + ldrh r0, [r4] + cmp r0, r6 + bne _08052DC4 +_08052DE8: + bl sub_08052E8C + ldr r1, _08052E08 @ =gUnk_02033A90 + ldr r2, _08052E0C @ =0x0000085C + adds r1, r1, r2 + str r0, [r1] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08052DF8: .4byte gUnk_0811E214 +_08052DFC: .4byte gUnk_03000BF0 +_08052E00: .4byte gUnk_02033ACC +_08052E04: .4byte 0x0000FFFF +_08052E08: .4byte gUnk_02033A90 +_08052E0C: .4byte 0x0000085C + + thumb_func_start sub_08052E10 +sub_08052E10: @ 0x08052E10 + push {r4, r5, lr} + adds r5, r0, #0 + ldrh r0, [r1] + strh r0, [r5, #4] + ldrh r0, [r1, #2] + strh r0, [r5, #6] + ldrh r0, [r1, #4] + strh r0, [r5] + ldrh r0, [r1, #6] + strh r0, [r5, #2] + ldr r4, _08052E74 @ =gUnk_0810246C + lsls r2, r2, #2 + adds r4, r2, r4 + ldrh r0, [r1, #8] + ldr r1, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r5, #8] + ldr r0, _08052E78 @ =gUnk_08107988 + adds r0, r2, r0 + ldr r0, [r0] + lsls r3, r3, #2 + adds r0, r3, r0 + ldr r0, [r0] + str r0, [r5, #0xc] + ldr r0, _08052E7C @ =gUnk_0810309C + adds r0, r2, r0 + ldr r0, [r0] + str r0, [r5, #0x10] + ldr r0, _08052E80 @ =gUnk_080B755C + adds r0, r2, r0 + ldr r0, [r0] + str r0, [r5, #0x14] + ldr r0, _08052E84 @ =gUnk_0813A7F0 + adds r0, r2, r0 + ldr r0, [r0] + adds r0, r3, r0 + ldr r0, [r0] + str r0, [r5, #0x18] + ldr r0, _08052E88 @ =gUnk_080D50FC + adds r2, r2, r0 + ldr r0, [r2] + cmp r0, #0 + beq _08052E70 + adds r0, r3, r0 + ldr r0, [r0] + str r0, [r5, #0x1c] +_08052E70: + pop {r4, r5, pc} + .align 2, 0 +_08052E74: .4byte gUnk_0810246C +_08052E78: .4byte gUnk_08107988 +_08052E7C: .4byte gUnk_0810309C +_08052E80: .4byte gUnk_080B755C +_08052E84: .4byte gUnk_0813A7F0 +_08052E88: .4byte gUnk_080D50FC + + thumb_func_start sub_08052E8C +sub_08052E8C: @ 0x08052E8C + ldr r0, _08052E98 @ =gUnk_03000BF0 + ldrb r0, [r0, #5] + lsls r0, r0, #5 + ldr r1, _08052E9C @ =gUnk_02033ACC + adds r0, r0, r1 + bx lr + .align 2, 0 +_08052E98: .4byte gUnk_03000BF0 +_08052E9C: .4byte gUnk_02033ACC + + thumb_func_start sub_08052EA0 +sub_08052EA0: @ 0x08052EA0 + push {r4, lr} + ldr r4, _08052EE4 @ =gUnk_02034350 + adds r0, r4, #0 + movs r1, #0xcc + bl sub_0801D630 + movs r0, #0xff + strb r0, [r4, #0x10] + strb r0, [r4, #0x11] + strb r0, [r4, #0x12] + strb r0, [r4, #0x13] + adds r0, #1 + strh r0, [r4, #0xc] + ldr r2, _08052EE8 @ =gUnk_02033A90 + ldr r1, _08052EEC @ =gUnk_08127D30 + ldr r0, _08052EF0 @ =gUnk_03000BF0 + ldrb r0, [r0, #4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #1] + strb r0, [r2, #1] + bl sub_08049D30 + bl sub_0807DA70 + bl sub_08054524 + bl sub_080186D4 + bl sub_0806F364 + bl sub_080530C8 + pop {r4, pc} + .align 2, 0 +_08052EE4: .4byte gUnk_02034350 +_08052EE8: .4byte gUnk_02033A90 +_08052EEC: .4byte gUnk_08127D30 +_08052EF0: .4byte gUnk_03000BF0 + + thumb_func_start sub_08052EF4 +sub_08052EF4: @ 0x08052EF4 + push {lr} + cmp r0, #0 + bge _08052EFE + ldr r0, _08052F10 @ =gUnk_03000BF0 + ldrb r0, [r0, #4] +_08052EFE: + lsls r0, r0, #2 + ldr r1, _08052F14 @ =gUnk_08127D30 + adds r0, r0, r1 + ldr r1, _08052F18 @ =gUnk_0811E454 + ldrb r0, [r0, #2] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + pop {pc} + .align 2, 0 +_08052F10: .4byte gUnk_03000BF0 +_08052F14: .4byte gUnk_08127D30 +_08052F18: .4byte gUnk_0811E454 + + thumb_func_start sub_08052F1C +sub_08052F1C: @ 0x08052F1C + push {r4, r5, r6, lr} + ldr r2, _08052F4C @ =gUnk_02033A90 + ldrb r1, [r2, #0xd] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08052FCC + ldr r0, _08052F50 @ =gUnk_02034350 + ldrb r0, [r0] + cmp r0, #0 + beq _08052FCC + movs r5, #0 + movs r4, #0 + ldr r0, _08052F54 @ =gUnk_03000BF0 + ldrb r1, [r0, #0x10] + adds r3, r0, #0 + cmp r1, #1 + beq _08052F62 + cmp r1, #1 + bgt _08052F58 + cmp r1, #0 + beq _08052F62 + b _08052F72 + .align 2, 0 +_08052F4C: .4byte gUnk_02033A90 +_08052F50: .4byte gUnk_02034350 +_08052F54: .4byte gUnk_03000BF0 +_08052F58: + cmp r1, #2 + beq _08052F62 + cmp r1, #3 + beq _08052F6A + b _08052F72 +_08052F62: + ldr r1, _08052FD0 @ =0x0000085C + adds r0, r2, r1 + ldr r0, [r0] + ldrh r5, [r0, #2] +_08052F6A: + ldr r1, _08052FD0 @ =0x0000085C + adds r0, r2, r1 + ldr r0, [r0] + ldrh r4, [r0] +_08052F72: + ldr r0, _08052FD0 @ =0x0000085C + adds r2, r2, r0 + ldr r1, [r2] + ldrh r0, [r1, #4] + adds r0, r0, r4 + strh r0, [r1, #4] + ldr r1, [r2] + ldrh r0, [r1, #6] + adds r0, r0, r5 + strh r0, [r1, #6] + ldrh r0, [r3, #6] + adds r0, r0, r4 + strh r0, [r3, #6] + ldrh r0, [r3, #8] + adds r0, r0, r5 + strh r0, [r3, #8] + ldrh r0, [r3, #0xa] + adds r0, r0, r4 + strh r0, [r3, #0xa] + ldrh r0, [r3, #0xc] + adds r0, r0, r5 + strh r0, [r3, #0xc] + ldr r2, _08052FD4 @ =gUnk_03003D70 + adds r6, r2, #0 + adds r6, #0x48 +_08052FA4: + ldr r1, [r2, #4] + adds r3, r2, #0 + adds r3, #8 + cmp r1, r2 + beq _08052FC6 +_08052FAE: + ldrb r0, [r1, #8] + cmp r0, #9 + beq _08052FC0 + ldrh r0, [r1, #0x2e] + adds r0, r0, r4 + strh r0, [r1, #0x2e] + ldrh r0, [r1, #0x32] + adds r0, r0, r5 + strh r0, [r1, #0x32] +_08052FC0: + ldr r1, [r1, #4] + cmp r1, r2 + bne _08052FAE +_08052FC6: + adds r2, r3, #0 + cmp r2, r6 + blo _08052FA4 +_08052FCC: + pop {r4, r5, r6, pc} + .align 2, 0 +_08052FD0: .4byte 0x0000085C +_08052FD4: .4byte gUnk_03003D70 + + thumb_func_start sub_08052FD8 +sub_08052FD8: @ 0x08052FD8 + push {lr} + bl sub_08052FF4 + ldr r1, _08052FF0 @ =gUnk_03000BF0 + movs r0, #0 + str r0, [r1, #0x30] + bl sub_0807C860 + bl sub_0807C740 + pop {pc} + .align 2, 0 +_08052FF0: .4byte gUnk_03000BF0 + + thumb_func_start sub_08052FF4 +sub_08052FF4: @ 0x08052FF4 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r4, r1, #0 + bl sub_08080668 + bl sub_080197AC + ldr r0, _0805306C @ =gUnk_03000BF0 + strb r6, [r0, #4] + strb r4, [r0, #5] + ldr r1, _08053070 @ =gUnk_03000F50 + movs r0, #0xba + lsls r0, r0, #5 + strh r0, [r1] + ldr r5, _08053074 @ =gUnk_020342CC + adds r0, r5, #0 + movs r1, #0x20 + bl sub_0801D630 + str r5, [r5, #0x20] + ldr r0, _08053078 @ =gUnk_0811E214 + lsls r6, r6, #2 + adds r0, r6, r0 + lsls r2, r4, #2 + adds r4, r2, r4 + lsls r4, r4, #1 + ldr r0, [r0] + adds r0, r0, r4 + ldrh r1, [r0] + strh r1, [r5, #4] + ldrh r1, [r0, #2] + strh r1, [r5, #6] + ldrh r1, [r0, #4] + strh r1, [r5] + ldrh r1, [r0, #6] + strh r1, [r5, #2] + ldr r1, _0805307C @ =gUnk_0810246C + adds r1, r6, r1 + ldrh r0, [r0, #8] + ldr r1, [r1] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r5, #8] + ldr r0, _08053080 @ =gUnk_08107988 + adds r0, r6, r0 + ldr r0, [r0] + adds r2, r2, r0 + ldr r0, [r2] + str r0, [r5, #0xc] + ldr r0, _08053084 @ =gUnk_0810309C + adds r0, r6, r0 + ldr r0, [r0] + str r0, [r5, #0x10] + ldr r0, _08053088 @ =gUnk_080B755C + adds r6, r6, r0 + ldr r0, [r6] + str r0, [r5, #0x14] + pop {r4, r5, r6, pc} + .align 2, 0 +_0805306C: .4byte gUnk_03000BF0 +_08053070: .4byte gUnk_03000F50 +_08053074: .4byte gUnk_020342CC +_08053078: .4byte gUnk_0811E214 +_0805307C: .4byte gUnk_0810246C +_08053080: .4byte gUnk_08107988 +_08053084: .4byte gUnk_0810309C +_08053088: .4byte gUnk_080B755C + + thumb_func_start sub_0805308C +sub_0805308C: @ 0x0805308C + push {lr} + adds r1, r0, #0 + ldr r2, _080530AC @ =gUnk_02034350 + movs r3, #0xc + ldrsh r0, [r2, r3] + adds r1, r1, r0 + cmp r1, #0 + bge _0805309E + movs r1, #0 +_0805309E: + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + ble _080530A8 + adds r1, r0, #0 +_080530A8: + strh r1, [r2, #0xc] + pop {pc} + .align 2, 0 +_080530AC: .4byte gUnk_02034350 + + thumb_func_start sub_080530B0 +sub_080530B0: @ 0x080530B0 + push {lr} + ldr r0, _080530C0 @ =gUnk_080FCAF8 + ldr r1, _080530C4 @ =gUnk_030010EC + movs r2, #0x20 + bl sub_0801D66C + pop {pc} + .align 2, 0 +_080530C0: .4byte gUnk_080FCAF8 +_080530C4: .4byte gUnk_030010EC + + thumb_func_start sub_080530C8 +sub_080530C8: @ 0x080530C8 + push {r4, r5, lr} + movs r4, #1 + movs r5, #0xc0 + lsls r5, r5, #2 + adds r0, r5, #0 + movs r1, #0x78 + bl sub_0807CB10 + cmp r0, #0 + beq _080530E0 + movs r4, #9 + b _08053138 +_080530E0: + movs r0, #6 + bl sub_0807CC30 + cmp r0, #0 + beq _080530EE + movs r4, #8 + b _08053138 +_080530EE: + adds r0, r5, #0 + movs r1, #0x32 + bl sub_0807CB10 + cmp r0, #0 + beq _080530FE + movs r4, #7 + b _08053138 +_080530FE: + movs r0, #5 + bl sub_0807CC30 + cmp r0, #0 + beq _0805310C + movs r4, #6 + b _08053138 +_0805310C: + movs r0, #4 + bl sub_0807CC30 + cmp r0, #0 + beq _0805311A + movs r4, #5 + b _08053138 +_0805311A: + movs r0, #0x80 + lsls r0, r0, #1 + movs r1, #0x9c + bl sub_0807CB10 + cmp r0, #0 + beq _0805312C + movs r4, #4 + b _08053138 +_0805312C: + movs r0, #2 + bl sub_0807CC30 + cmp r0, #0 + beq _08053138 + movs r4, #2 +_08053138: + ldr r0, _08053140 @ =gUnk_02002A40 + strb r4, [r0, #8] + pop {r4, r5, pc} + .align 2, 0 +_08053140: .4byte gUnk_02002A40 + + thumb_func_start sub_08053144 +sub_08053144: @ 0x08053144 + push {lr} + movs r0, #0x51 + bl sub_0807CC30 + cmp r0, #0 + beq _08053154 + movs r0, #0 + b _0805316E +_08053154: + movs r1, #0 + ldr r0, _08053170 @ =gUnk_02033A90 + ldrb r2, [r0, #1] + cmp r2, #0 + beq _0805316C + ldr r0, _08053174 @ =gUnk_030010A0 + adds r0, #0x2e + ldrb r1, [r0] + eors r1, r2 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r1, r0, #0x1f +_0805316C: + adds r0, r1, #0 +_0805316E: + pop {pc} + .align 2, 0 +_08053170: .4byte gUnk_02033A90 +_08053174: .4byte gUnk_030010A0 + + thumb_func_start sub_08053178 +sub_08053178: @ 0x08053178 + push {r4, r5, lr} + bl sub_08053144 + cmp r0, #0 + beq _080531E6 + ldr r0, _080531E8 @ =gUnk_030010A0 + ldr r5, _080531EC @ =gUnk_02033A90 + ldrb r1, [r5, #1] + adds r0, #0x2e + strb r1, [r0] + movs r0, #0x15 + bl sub_0807CC30 + cmp r0, #0 + beq _080531E6 + movs r0, #0x51 + bl sub_0807CC30 + cmp r0, #0 + bne _080531DC + bl sub_0805E8D4 + adds r4, r0, #0 + cmp r4, #0 + beq _080531DC + movs r0, #9 + strb r0, [r4, #8] + movs r0, #0x39 + strb r0, [r4, #9] + adds r0, r4, #0 + movs r1, #8 + bl sub_0805EA2C + ldr r0, _080531F0 @ =gUnk_02034350 + ldrb r0, [r0] + cmp r0, #0 + bne _080531DC + ldr r0, _080531F4 @ =gUnk_02002AA0 + ldrb r1, [r5, #1] + bl sub_0801D5A8 + cmp r0, #0 + bne _080531DC + movs r0, #1 + strb r0, [r4, #0xb] + movs r0, #3 + bl sub_08078A90 + bl sub_0805E5A8 +_080531DC: + ldr r0, _080531F4 @ =gUnk_02002AA0 + ldr r1, _080531EC @ =gUnk_02033A90 + ldrb r1, [r1, #1] + bl sub_0801D5BC +_080531E6: + pop {r4, r5, pc} + .align 2, 0 +_080531E8: .4byte gUnk_030010A0 +_080531EC: .4byte gUnk_02033A90 +_080531F0: .4byte gUnk_02034350 +_080531F4: .4byte gUnk_02002AA0 + + thumb_func_start sub_080531F8 +sub_080531F8: @ 0x080531F8 + push {r4, r5, lr} + ldr r1, _0805323C @ =gUnk_03003F80 + ldr r4, _08053240 @ =gUnk_03001160 + ldrh r0, [r4, #0x2e] + strh r0, [r1, #0x16] + ldrh r0, [r4, #0x32] + strh r0, [r1, #0x18] + bl sub_08053144 + cmp r0, #0 + beq _08053238 + ldr r5, _08053244 @ =gUnk_030010AC + ldr r1, _08053248 @ =gUnk_02002AC8 + adds r0, r5, #0 + movs r2, #0x20 + bl sub_0801D66C + bl sub_08052660 + cmp r0, #0 + beq _08053238 + adds r1, r5, #0 + subs r1, #0xc + ldr r2, _0805324C @ =gUnk_03000BF0 + ldrb r0, [r2, #4] + strb r0, [r1, #0x16] + ldrb r0, [r2, #5] + strb r0, [r1, #0x17] + ldrh r0, [r4, #0x2e] + strh r0, [r1, #0x18] + ldrh r0, [r4, #0x32] + strh r0, [r1, #0x1a] +_08053238: + pop {r4, r5, pc} + .align 2, 0 +_0805323C: .4byte gUnk_03003F80 +_08053240: .4byte gUnk_03001160 +_08053244: .4byte gUnk_030010AC +_08053248: .4byte gUnk_02002AC8 +_0805324C: .4byte gUnk_03000BF0 + + thumb_func_start sub_08053250 +sub_08053250: @ 0x08053250 + push {r4, lr} + ldr r0, _0805328C @ =gUnk_030010A0 + movs r1, #0 + strb r1, [r0, #0xf] + ldr r3, _08053290 @ =gUnk_03001160 + ldr r4, _08053294 @ =gUnk_03000BF0 + ldrh r1, [r3, #0x2e] + ldrh r2, [r4, #6] + subs r1, r1, r2 + strh r1, [r0, #0x10] + ldrh r1, [r3, #0x32] + ldrh r2, [r4, #8] + subs r1, r1, r2 + strh r1, [r0, #0x12] + ldrb r1, [r3, #0x14] + strb r1, [r0, #0xe] + adds r3, #0x38 + ldrb r1, [r3] + strb r1, [r0, #0x14] + ldrb r1, [r4, #4] + strb r1, [r0, #0xc] + ldrb r1, [r4, #5] + strb r1, [r0, #0xd] + adds r0, #0xc + ldr r1, _08053298 @ =gUnk_02002AC8 + movs r2, #0x20 + bl sub_0801D66C + pop {r4, pc} + .align 2, 0 +_0805328C: .4byte gUnk_030010A0 +_08053290: .4byte gUnk_03001160 +_08053294: .4byte gUnk_03000BF0 +_08053298: .4byte gUnk_02002AC8 + + thumb_func_start sub_0805329C +sub_0805329C: @ 0x0805329C + push {lr} + bl sub_08053144 + cmp r0, #0 + beq _080532E0 + ldr r0, _080532B8 @ =gUnk_03000BF0 + ldrb r0, [r0, #4] + cmp r0, #0x48 + beq _080532C2 + cmp r0, #0x48 + bgt _080532BC + cmp r0, #0x18 + beq _080532D6 + b _080532DC + .align 2, 0 +_080532B8: .4byte gUnk_03000BF0 +_080532BC: + cmp r0, #0x50 + beq _080532D0 + b _080532DC +_080532C2: + ldr r1, _080532CC @ =gUnk_02002A40 + movs r0, #0 + strb r0, [r1, #7] + b _080532E0 + .align 2, 0 +_080532CC: .4byte gUnk_02002A40 +_080532D0: + bl sub_080530B0 + b _080532E0 +_080532D6: + bl sub_080532E4 + b _080532E0 +_080532DC: + bl sub_08053460 +_080532E0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080532E4 +sub_080532E4: @ 0x080532E4 + ldr r0, _08053318 @ =gUnk_0811E214 + movs r1, #0xb0 + lsls r1, r1, #1 + adds r0, r0, r1 + ldr r0, [r0] + movs r3, #0xa5 + lsls r3, r3, #1 + adds r2, r0, r3 + ldr r1, _0805331C @ =gUnk_030010A0 + movs r0, #0x58 + strb r0, [r1, #0x16] + movs r0, #0x21 + strb r0, [r1, #0x17] + ldrh r0, [r2, #4] + lsrs r0, r0, #1 + ldrh r3, [r2] + adds r0, r0, r3 + strh r0, [r1, #0x18] + strh r0, [r1, #0x1c] + ldrh r0, [r2, #6] + ldrh r2, [r2, #2] + adds r0, r0, r2 + adds r0, #0xa0 + strh r0, [r1, #0x1a] + strh r0, [r1, #0x1e] + bx lr + .align 2, 0 +_08053318: .4byte gUnk_0811E214 +_0805331C: .4byte gUnk_030010A0 + + thumb_func_start sub_08053320 +sub_08053320: @ 0x08053320 + push {r4, lr} + ldr r0, _0805337C @ =gUnk_02034CB0 + movs r4, #0x80 + lsls r4, r4, #4 + adds r1, r4, #0 + bl sub_0801D630 + ldr r0, _08053380 @ =gUnk_02021F30 + adds r1, r4, #0 + bl sub_0801D630 + ldr r0, _08053384 @ =gUnk_020344B0 + adds r1, r4, #0 + bl sub_0801D630 + ldr r0, _08053388 @ =gUnk_02001A40 + movs r1, #0x80 + lsls r1, r1, #5 + bl sub_0801D630 + movs r0, #0x10 + bl sub_0801D7EC + movs r0, #0x17 + bl sub_0801D7EC + ldr r0, _0805338C @ =gUnk_03000BF0 + ldrb r0, [r0, #4] + cmp r0, #4 + bne _08053362 + movs r0, #0x1a + bl sub_0801D7EC +_08053362: + bl sub_08053390 + movs r0, #0xb + bl sub_0801D714 + movs r0, #0xc + bl sub_0801D714 + movs r0, #0 + movs r1, #0 + bl sub_0801D79C + pop {r4, pc} + .align 2, 0 +_0805337C: .4byte gUnk_02034CB0 +_08053380: .4byte gUnk_02021F30 +_08053384: .4byte gUnk_020344B0 +_08053388: .4byte gUnk_02001A40 +_0805338C: .4byte gUnk_03000BF0 + + thumb_func_start sub_08053390 +sub_08053390: @ 0x08053390 + push {lr} + movs r0, #8 + bl sub_0807CA84 + movs r1, #0x19 + cmp r0, #0 + beq _080533A0 + movs r1, #0x18 +_080533A0: + adds r0, r1, #0 + bl sub_0801D7EC + movs r0, #0xa + bl sub_0807CA84 + cmp r0, #0 + beq _080533B6 + movs r0, #0x1d + bl sub_0801D7EC +_080533B6: + movs r0, #0xc + bl sub_0807CA84 + movs r1, #0x1b + cmp r0, #0 + beq _080533C4 + movs r1, #0x1c +_080533C4: + adds r0, r1, #0 + bl sub_0801D7EC + pop {pc} + + thumb_func_start sub_080533CC +sub_080533CC: @ 0x080533CC + ldr r0, _08053400 @ =gUnk_020178E0 + ldr r2, _08053404 @ =0xFFFFFE00 + adds r1, r0, r2 + ldrh r2, [r0] + strh r2, [r1] + adds r0, #2 + adds r1, #2 + ldrh r2, [r0] + strh r2, [r1] + adds r0, #2 + adds r1, #2 + ldrh r2, [r0] + strh r2, [r1] + adds r0, #2 + adds r1, #2 + ldrh r2, [r0] + strh r2, [r1] + ldrh r0, [r0, #2] + strh r0, [r1, #2] + ldr r2, _08053408 @ =gUnk_0200B644 + ldr r0, [r2] + movs r1, #8 + orrs r0, r1 + str r0, [r2] + bx lr + .align 2, 0 +_08053400: .4byte gUnk_020178E0 +_08053404: .4byte 0xFFFFFE00 +_08053408: .4byte gUnk_0200B644 + + thumb_func_start sub_0805340C +sub_0805340C: @ 0x0805340C + push {r4, r5, r6, lr} + ldr r5, _08053428 @ =gUnk_02002ECC + movs r4, #0 + ldr r6, _0805342C @ =gUnk_080FCB18 +_08053414: + ldm r6!, {r1} + adds r0, r5, #0 + bl _call_via_r1 + adds r4, #1 + adds r5, #4 + cmp r4, #7 + bls _08053414 + pop {r4, r5, r6, pc} + .align 2, 0 +_08053428: .4byte gUnk_02002ECC +_0805342C: .4byte gUnk_080FCB18 + + thumb_func_start nullsub_480 +nullsub_480: @ 0x08053430 + bx lr + .align 2, 0 + + thumb_func_start sub_08053434 +sub_08053434: @ 0x08053434 + push {lr} + adds r1, r0, #0 + ldr r0, _0805345C @ =gUnk_02033A90 + ldrb r0, [r0, #1] + cmp r0, #0x1d + bne _0805345A + ldr r0, [r1] + cmp r0, #0 + beq _0805345A + subs r0, #1 + str r0, [r1] + cmp r0, #0 + bne _0805345A + bl sub_08053460 + movs r0, #5 + movs r1, #6 + bl sub_080A7138 +_0805345A: + pop {pc} + .align 2, 0 +_0805345C: .4byte gUnk_02033A90 + + thumb_func_start sub_08053460 +sub_08053460: @ 0x08053460 + push {lr} + ldr r0, _08053488 @ =gUnk_02002A40 + ldr r1, _0805348C @ =0x0000048C + adds r0, r0, r1 + movs r1, #0 + str r1, [r0] + movs r0, #0x8c + lsls r0, r0, #4 + movs r1, #0x79 + bl sub_0807CB10 + cmp r0, #0 + beq _08053480 + movs r0, #0x1c + bl sub_0807CD80 +_08053480: + ldr r0, _08053490 @ =gUnk_080FCB38 + bl sub_0805356C + pop {pc} + .align 2, 0 +_08053488: .4byte gUnk_02002A40 +_0805348C: .4byte 0x0000048C +_08053490: .4byte gUnk_080FCB38 + + thumb_func_start sub_08053494 +sub_08053494: @ 0x08053494 + ldr r0, _080534A0 @ =gUnk_02002A40 + ldr r1, _080534A4 @ =0x0000048C + adds r0, r0, r1 + ldr r1, _080534A8 @ =0x00002A30 + str r1, [r0] + bx lr + .align 2, 0 +_080534A0: .4byte gUnk_02002A40 +_080534A4: .4byte 0x0000048C +_080534A8: .4byte 0x00002A30 + + thumb_func_start sub_080534AC +sub_080534AC: @ 0x080534AC + push {r4, lr} + movs r4, #0x8c + lsls r4, r4, #4 + adds r0, r4, #0 + movs r1, #0x7c + bl sub_0807CB10 + cmp r0, #0 + beq _080534D6 + adds r0, r4, #0 + movs r1, #0x7c + bl sub_0807CD20 + ldr r0, _080534D8 @ =gUnk_02002A40 + ldr r1, _080534DC @ =0x0000048C + adds r0, r0, r1 + movs r1, #0 + str r1, [r0] + ldr r0, _080534E0 @ =0x80100000 + bl sub_080A3268 +_080534D6: + pop {r4, pc} + .align 2, 0 +_080534D8: .4byte gUnk_02002A40 +_080534DC: .4byte 0x0000048C +_080534E0: .4byte 0x80100000 + + thumb_func_start sub_080534E4 +sub_080534E4: @ 0x080534E4 + push {lr} + adds r1, r0, #0 + ldr r0, _080534FC @ =gUnk_03000BF0 + ldrb r0, [r0, #4] + cmp r0, #0x1a + beq _080534FA + ldr r0, [r1] + cmp r0, #0 + beq _080534FA + subs r0, #1 + str r0, [r1] +_080534FA: + pop {pc} + .align 2, 0 +_080534FC: .4byte gUnk_03000BF0 + + thumb_func_start sub_08053500 +sub_08053500: @ 0x08053500 + ldr r0, _0805350C @ =gUnk_02002A40 + ldr r1, _08053510 @ =0x00000494 + adds r0, r0, r1 + ldr r1, _08053514 @ =0x00008CA0 + str r1, [r0] + bx lr + .align 2, 0 +_0805350C: .4byte gUnk_02002A40 +_08053510: .4byte 0x00000494 +_08053514: .4byte 0x00008CA0 + + thumb_func_start sub_08053518 +sub_08053518: @ 0x08053518 + push {lr} + bl sub_08053460 + ldr r0, _08053568 @ =gUnk_080FCB62 + bl sub_0805356C + movs r0, #0x1b + bl sub_0807CC30 + cmp r0, #0 + bne _08053534 + movs r0, #0x1a + bl sub_0807CD80 +_08053534: + movs r0, #0x40 + bl sub_0807CA84 + cmp r0, #0 + bne _08053544 + movs r0, #2 + bl sub_0807CD80 +_08053544: + movs r0, #0x41 + bl sub_0807CA84 + cmp r0, #0 + bne _08053554 + movs r0, #3 + bl sub_0807CD80 +_08053554: + movs r0, #0x42 + bl sub_0807CA84 + cmp r0, #0 + bne _08053564 + movs r0, #5 + bl sub_0807CD80 +_08053564: + pop {pc} + .align 2, 0 +_08053568: .4byte gUnk_080FCB62 + + thumb_func_start sub_0805356C +sub_0805356C: @ 0x0805356C + push {r4, r5, lr} + adds r4, r0, #0 + ldrh r0, [r4] + ldr r1, _0805358C @ =0x0000FFFF + cmp r0, r1 + beq _0805358A + adds r5, r1, #0 +_0805357A: + ldrh r0, [r4] + ldrh r1, [r4, #2] + bl sub_0807CD20 + adds r4, #4 + ldrh r0, [r4] + cmp r0, r5 + bne _0805357A +_0805358A: + pop {r4, r5, pc} + .align 2, 0 +_0805358C: .4byte 0x0000FFFF + + thumb_func_start sub_08053590 +sub_08053590: @ 0x08053590 + push {lr} + ldr r1, _080535A4 @ =gUnk_080FCBB4 + ldr r0, _080535A8 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_080535A4: .4byte gUnk_080FCBB4 +_080535A8: .4byte gUnk_02000080 + + thumb_func_start sub_080535AC +sub_080535AC: @ 0x080535AC + push {lr} + ldr r2, _080535DC @ =gUnk_02000080 + movs r1, #1 + strb r1, [r2, #6] + movs r0, #0x78 + strh r0, [r2, #8] + ldr r0, _080535E0 @ =gUnk_02032EC0 + strb r1, [r0, #6] + ldr r0, _080535E4 @ =gUnk_02000070 + strb r1, [r0] + ldr r2, _080535E8 @ =gUnk_03000F50 + ldrh r1, [r2] + ldr r0, _080535EC @ =0x0000FEFF + ands r0, r1 + strh r0, [r2] + ldr r0, _080535F0 @ =gUnk_080FCB94 + bl sub_0804ADDC + movs r0, #6 + movs r1, #8 + bl sub_08050054 + pop {pc} + .align 2, 0 +_080535DC: .4byte gUnk_02000080 +_080535E0: .4byte gUnk_02032EC0 +_080535E4: .4byte gUnk_02000070 +_080535E8: .4byte gUnk_03000F50 +_080535EC: .4byte 0x0000FEFF +_080535F0: .4byte gUnk_080FCB94 + + thumb_func_start sub_080535F4 +sub_080535F4: @ 0x080535F4 + push {lr} + ldr r0, _0805360C @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08053608 + bl sub_0805E5B4 + ldr r1, _08053610 @ =gUnk_02000080 + movs r0, #2 + strb r0, [r1, #6] +_08053608: + pop {pc} + .align 2, 0 +_0805360C: .4byte gUnk_03000FD0 +_08053610: .4byte gUnk_02000080 + + thumb_func_start nullsub_481 +nullsub_481: @ 0x08053614 + bx lr + .align 2, 0 + + thumb_func_start sub_08053618 +sub_08053618: @ 0x08053618 + push {lr} + ldr r1, _08053630 @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0805362C + bl sub_08052004 +_0805362C: + pop {pc} + .align 2, 0 +_08053630: .4byte gUnk_02000080 + + thumb_func_start sub_08053634 +sub_08053634: @ 0x08053634 + push {lr} + ldr r1, _08053644 @ =gUnk_02032EC0 + movs r0, #3 + strb r0, [r1] + bl sub_08056418 + pop {pc} + .align 2, 0 +_08053644: .4byte gUnk_02032EC0 + + thumb_func_start sub_08053648 +sub_08053648: @ 0x08053648 + push {lr} + movs r0, #0x2d + movs r1, #0 + movs r2, #0 + bl sub_080A2960 + adds r2, r0, #0 + cmp r2, #0 + beq _08053674 + ldr r0, _08053678 @ =gUnk_03000BF0 + movs r3, #0xb4 + lsls r3, r3, #2 + adds r1, r3, #0 + ldrh r3, [r0, #6] + adds r1, r1, r3 + strh r1, [r2, #0x2e] + movs r3, #0xa4 + lsls r3, r3, #1 + adds r1, r3, #0 + ldrh r0, [r0, #8] + adds r1, r1, r0 + strh r1, [r2, #0x32] +_08053674: + pop {pc} + .align 2, 0 +_08053678: .4byte gUnk_03000BF0 + + thumb_func_start sub_0805367C +sub_0805367C: @ 0x0805367C + ldr r1, _08053688 @ =gUnk_02000080 + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] + bx lr + .align 2, 0 +_08053688: .4byte gUnk_02000080 + + thumb_func_start sub_0805368C +sub_0805368C: @ 0x0805368C + push {lr} + movs r0, #6 + movs r1, #0x5d + movs r2, #6 + bl sub_0805EB00 + cmp r0, #0 + beq _080536A6 + bl sub_0805E7BC + movs r0, #0xf0 + bl sub_080A3268 +_080536A6: + pop {pc} + + thumb_func_start sub_080536A8 +sub_080536A8: @ 0x080536A8 + push {lr} + movs r0, #5 + movs r1, #5 + movs r2, #4 + movs r3, #0x10 + bl sub_080A71C4 + pop {pc} + + thumb_func_start sub_080536B8 +sub_080536B8: @ 0x080536B8 + push {lr} + movs r0, #5 + movs r1, #3 + movs r2, #4 + movs r3, #4 + bl sub_080A71C4 + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #5 + bl sub_08050054 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080536D4 +sub_080536D4: @ 0x080536D4 + push {lr} + ldr r1, _080536E8 @ =gUnk_080FCCFC + ldr r0, _080536EC @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_080536E8: .4byte gUnk_080FCCFC +_080536EC: .4byte gUnk_02000080 + + thumb_func_start sub_080536F0 +sub_080536F0: @ 0x080536F0 + push {lr} + ldr r1, _08053704 @ =gUnk_080FCD38 + ldr r0, _08053708 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08053704: .4byte gUnk_080FCD38 +_08053708: .4byte gUnk_02000080 + + thumb_func_start sub_0805370C +sub_0805370C: @ 0x0805370C + push {lr} + ldr r1, _08053730 @ =gUnk_02000080 + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] + ldr r1, _08053734 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + bl sub_08051FF0 + ldr r0, _08053738 @ =gUnk_080FCC54 + bl sub_0804ADDC + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {pc} + .align 2, 0 +_08053730: .4byte gUnk_02000080 +_08053734: .4byte gUnk_02000070 +_08053738: .4byte gUnk_080FCC54 + + thumb_func_start sub_0805373C +sub_0805373C: @ 0x0805373C + push {lr} + ldr r1, _08053750 @ =gUnk_080FCD40 + ldr r0, _08053754 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08053750: .4byte gUnk_080FCD40 +_08053754: .4byte gUnk_02000080 + + thumb_func_start sub_08053758 +sub_08053758: @ 0x08053758 + push {r4, lr} + ldr r1, _080537DC @ =gUnk_02000080 + movs r2, #0 + movs r3, #1 + strb r3, [r1, #6] + movs r4, #0 + movs r0, #0x78 + strh r0, [r1, #8] + movs r0, #0x1e + strh r0, [r1, #0xa] + strb r4, [r1, #0x10] + ldr r0, _080537E0 @ =gUnk_02032EC0 + strb r3, [r0, #6] + ldr r0, _080537E4 @ =gUnk_02025EB0 + str r2, [r0] + ldr r0, _080537E8 @ =gUnk_0200B650 + str r2, [r0] + ldr r0, _080537EC @ =gUnk_03000BF0 + str r2, [r0, #0x30] + strh r2, [r0, #0xc] + strh r2, [r0, #0xa] + bl sub_0801B170 + movs r0, #0 + bl sub_0801DA90 + ldr r2, _080537F0 @ =gUnk_03000F50 + movs r0, #0x99 + lsls r0, r0, #6 + strh r0, [r2] + adds r1, r2, #0 + adds r1, #0x66 + ldr r0, _080537F4 @ =0x00002244 + strh r0, [r1] + adds r1, #2 + movs r0, #0x80 + lsls r0, r0, #5 + strh r0, [r1] + subs r1, #8 + movs r0, #0x1f + strh r0, [r1] + adds r1, #2 + movs r0, #0x3f + strh r0, [r1] + subs r1, #0xa + movs r0, #0xf0 + strh r0, [r1] + adds r1, #4 + movs r0, #0x60 + strh r0, [r1] + ldr r0, _080537F8 @ =0x00001C4E + strh r0, [r2, #0x14] + ldr r0, _080537FC @ =0x00001DC1 + strh r0, [r2, #0x20] + movs r0, #0xf + bl sub_080A3268 + bl sub_0805E5B4 + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #5 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_080537DC: .4byte gUnk_02000080 +_080537E0: .4byte gUnk_02032EC0 +_080537E4: .4byte gUnk_02025EB0 +_080537E8: .4byte gUnk_0200B650 +_080537EC: .4byte gUnk_03000BF0 +_080537F0: .4byte gUnk_03000F50 +_080537F4: .4byte 0x00002244 +_080537F8: .4byte 0x00001C4E +_080537FC: .4byte 0x00001DC1 + + thumb_func_start sub_08053800 +sub_08053800: @ 0x08053800 + push {r4, r5, lr} + ldr r0, _0805387C @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _0805387A + ldr r1, _08053880 @ =gUnk_02000080 + ldrb r5, [r1, #0x10] + lsls r4, r5, #1 + adds r4, r4, r5 + lsls r4, r4, #2 + ldr r0, _08053884 @ =gUnk_080FCCB4 + adds r4, r4, r0 + ldrh r0, [r4, #8] + movs r2, #0 + strh r0, [r1, #8] + movs r0, #0x1e + strh r0, [r1, #0xa] + ldrb r0, [r1, #0x10] + adds r0, #1 + strb r0, [r1, #0x10] + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] + strb r2, [r1, #7] + adds r0, r5, #0 + adds r0, #0x8a + bl sub_0801D714 + adds r0, r5, #0 + adds r0, #0x3a + bl sub_0801D7EC + ldr r0, _08053888 @ =gUnk_02021F30 + movs r1, #0x80 + lsls r1, r1, #4 + bl sub_0801D630 + ldr r0, _0805388C @ =0x00000F01 + adds r5, r5, r0 + ldr r1, [r4] + adds r0, r5, #0 + bl sub_0805F46C + ldr r2, _08053890 @ =gUnk_03000F50 + movs r0, #1 + strh r0, [r2, #0x1a] + adds r1, r2, #0 + adds r1, #0x68 + movs r0, #0x10 + strh r0, [r1] + ldrh r1, [r4, #4] + adds r0, r2, #0 + adds r0, #0x58 + strh r1, [r0] + ldrh r1, [r4, #6] + adds r0, #4 + strh r1, [r0] + ldrh r1, [r4, #0xa] + movs r0, #4 + bl sub_08050054 +_0805387A: + pop {r4, r5, pc} + .align 2, 0 +_0805387C: .4byte gUnk_03000FD0 +_08053880: .4byte gUnk_02000080 +_08053884: .4byte gUnk_080FCCB4 +_08053888: .4byte gUnk_02021F30 +_0805388C: .4byte 0x00000F01 +_08053890: .4byte gUnk_03000F50 + + thumb_func_start sub_08053894 +sub_08053894: @ 0x08053894 + push {r4, lr} + ldr r0, _080538B4 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080538F8 + ldr r1, _080538B8 @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + ldrh r0, [r1, #0xa] + adds r4, r1, #0 + cmp r0, #0 + beq _080538BC + subs r0, #1 + strh r0, [r4, #0xa] + b _080538E4 + .align 2, 0 +_080538B4: .4byte gUnk_03000FD0 +_080538B8: .4byte gUnk_02000080 +_080538BC: + ldr r0, _080538FC @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _080538E4 + ldrb r1, [r4, #7] + cmp r1, #0xf + bhi _080538E4 + adds r1, #1 + strb r1, [r4, #7] + lsls r1, r1, #0x18 + ldr r3, _08053900 @ =gUnk_03000F50 + lsrs r2, r1, #0x10 + lsrs r1, r1, #0x19 + movs r0, #0x10 + subs r0, r0, r1 + orrs r2, r0 + adds r3, #0x68 + strh r2, [r3] +_080538E4: + ldrh r0, [r4, #8] + cmp r0, #0 + bne _080538F8 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + movs r0, #5 + movs r1, #8 + bl sub_08050054 +_080538F8: + pop {r4, pc} + .align 2, 0 +_080538FC: .4byte gUnk_030010A0 +_08053900: .4byte gUnk_03000F50 + + thumb_func_start sub_08053904 +sub_08053904: @ 0x08053904 + push {r4, lr} + ldr r0, _08053924 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08053968 + ldr r1, _08053928 @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + ldrh r0, [r1, #0xa] + adds r4, r1, #0 + cmp r0, #0 + beq _0805392C + subs r0, #1 + strh r0, [r4, #0xa] + b _08053954 + .align 2, 0 +_08053924: .4byte gUnk_03000FD0 +_08053928: .4byte gUnk_02000080 +_0805392C: + ldr r0, _0805396C @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _08053954 + ldrb r1, [r4, #7] + cmp r1, #0xf + bhi _08053954 + adds r1, #1 + strb r1, [r4, #7] + lsls r1, r1, #0x18 + ldr r3, _08053970 @ =gUnk_03000F50 + lsrs r2, r1, #0x10 + lsrs r1, r1, #0x19 + movs r0, #0x10 + subs r0, r0, r1 + orrs r2, r0 + adds r3, #0x68 + strh r2, [r3] +_08053954: + ldrh r0, [r4, #8] + cmp r0, #0 + bne _08053968 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + movs r0, #5 + movs r1, #1 + bl sub_08050054 +_08053968: + pop {r4, pc} + .align 2, 0 +_0805396C: .4byte gUnk_030010A0 +_08053970: .4byte gUnk_03000F50 + + thumb_func_start sub_08053974 +sub_08053974: @ 0x08053974 + push {lr} + ldr r0, _080539AC @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080539A8 + bl sub_0804FFE4 + movs r0, #1 + bl sub_0801DA90 + bl sub_080197AC + bl sub_08051F78 + ldr r0, _080539B0 @ =gUnk_080FCBC4 + bl sub_0804ADDC + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #5 + bl sub_08050054 + ldr r1, _080539B4 @ =gUnk_02000080 + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] +_080539A8: + pop {pc} + .align 2, 0 +_080539AC: .4byte gUnk_03000FD0 +_080539B0: .4byte gUnk_080FCBC4 +_080539B4: .4byte gUnk_02000080 + + thumb_func_start nullsub_482 +nullsub_482: @ 0x080539B8 + bx lr + .align 2, 0 + + thumb_func_start sub_080539BC +sub_080539BC: @ 0x080539BC + push {lr} + bl sub_080197AC + bl sub_0805E89C + movs r0, #0x22 + movs r1, #0x11 + movs r2, #0 + movs r3, #0 + bl sub_08051F9C + movs r0, #0x22 + movs r1, #0x11 + bl sub_0804B0B0 + ldr r0, _080539EC @ =gUnk_080FCC14 + bl sub_0804ADDC + ldr r1, _080539F0 @ =gUnk_02000080 + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] + pop {pc} + .align 2, 0 +_080539EC: .4byte gUnk_080FCC14 +_080539F0: .4byte gUnk_02000080 + + thumb_func_start sub_080539F4 +sub_080539F4: @ 0x080539F4 + push {lr} + ldr r0, _08053A14 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08053A10 + movs r0, #1 + bl sub_0801DA90 + ldr r0, _08053A18 @ =gUnk_02000080 + ldrb r1, [r0, #6] + adds r1, #1 + strb r1, [r0, #6] + movs r1, #0x3c + strh r1, [r0, #8] +_08053A10: + pop {pc} + .align 2, 0 +_08053A14: .4byte gUnk_03000FD0 +_08053A18: .4byte gUnk_02000080 + + thumb_func_start sub_08053A1C +sub_08053A1C: @ 0x08053A1C + push {r4, lr} + ldr r1, _08053A50 @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08053A4E + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] + movs r4, #8 + movs r0, #8 + strh r0, [r1, #8] + ldr r0, _08053A54 @ =0x00000F07 + bl sub_08056378 + ldr r1, _08053A58 @ =gUnk_02000050 + movs r0, #1 + strb r0, [r1, #6] + strb r4, [r1, #7] + movs r0, #4 + movs r1, #8 + bl sub_08050054 +_08053A4E: + pop {r4, pc} + .align 2, 0 +_08053A50: .4byte gUnk_02000080 +_08053A54: .4byte 0x00000F07 +_08053A58: .4byte gUnk_02000050 + + thumb_func_start sub_08053A5C +sub_08053A5C: @ 0x08053A5C + push {lr} + ldr r0, _08053A88 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08053A86 + ldr r1, _08053A8C @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08053A86 + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] + movs r0, #5 + movs r1, #8 + bl sub_08050054 +_08053A86: + pop {pc} + .align 2, 0 +_08053A88: .4byte gUnk_02000050 +_08053A8C: .4byte gUnk_02000080 + + thumb_func_start sub_08053A90 +sub_08053A90: @ 0x08053A90 + push {lr} + ldr r0, _08053AA8 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08053AA4 + ldr r1, _08053AAC @ =gUnk_02032EC0 + movs r0, #3 + strb r0, [r1] + bl sub_080197AC +_08053AA4: + pop {pc} + .align 2, 0 +_08053AA8: .4byte gUnk_03000FD0 +_08053AAC: .4byte gUnk_02032EC0 + + thumb_func_start sub_08053AB0 +sub_08053AB0: @ 0x08053AB0 + push {lr} + ldr r1, _08053AC4 @ =gUnk_080FCDD4 + ldr r0, _08053AC8 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08053AC4: .4byte gUnk_080FCDD4 +_08053AC8: .4byte gUnk_02000080 + + thumb_func_start sub_08053ACC +sub_08053ACC: @ 0x08053ACC + push {lr} + ldr r1, _08053AF4 @ =gUnk_02000080 + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] + ldr r1, _08053AF8 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + bl sub_08051FF0 + ldr r0, _08053AFC @ =gUnk_080FCD84 + bl sub_0804ADDC + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #5 + bl sub_08050054 + pop {pc} + .align 2, 0 +_08053AF4: .4byte gUnk_02000080 +_08053AF8: .4byte gUnk_02000070 +_08053AFC: .4byte gUnk_080FCD84 + + thumb_func_start sub_08053B00 +sub_08053B00: @ 0x08053B00 + ldr r1, _08053B0C @ =gUnk_02000080 + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] + bx lr + .align 2, 0 +_08053B0C: .4byte gUnk_02000080 + + thumb_func_start sub_08053B10 +sub_08053B10: @ 0x08053B10 + push {lr} + movs r0, #1 + bl sub_0807CC3C + cmp r0, #0 + beq _08053B34 + ldr r0, _08053B38 @ =gUnk_02000080 + ldrb r1, [r0, #5] + adds r1, #1 + strb r1, [r0, #5] + movs r0, #1 + bl sub_0801DA90 + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #4 + bl sub_08050054 +_08053B34: + pop {pc} + .align 2, 0 +_08053B38: .4byte gUnk_02000080 + + thumb_func_start sub_08053B3C +sub_08053B3C: @ 0x08053B3C + push {r4, lr} + movs r4, #0x80 + lsls r4, r4, #1 + movs r0, #5 + movs r1, #4 + movs r2, #5 + adds r3, r4, #0 + bl sub_080A71C4 + movs r0, #5 + adds r1, r4, #0 + bl sub_08050054 + pop {r4, pc} + + thumb_func_start sub_08053B58 +sub_08053B58: @ 0x08053B58 + push {lr} + ldr r1, _08053B6C @ =gUnk_080FCEB0 + ldr r0, _08053B70 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08053B6C: .4byte gUnk_080FCEB0 +_08053B70: .4byte gUnk_02000080 + + thumb_func_start sub_08053B74 +sub_08053B74: @ 0x08053B74 + push {lr} + ldr r1, _08053BA0 @ =gUnk_02000080 + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] + ldr r1, _08053BA4 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + ldr r0, _08053BA8 @ =gUnk_080FCDE0 + bl sub_0804ADDC + bl sub_0805E5B4 + bl sub_0805E470 + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #5 + bl sub_08050054 + pop {pc} + .align 2, 0 +_08053BA0: .4byte gUnk_02000080 +_08053BA4: .4byte gUnk_02000070 +_08053BA8: .4byte gUnk_080FCDE0 + + thumb_func_start sub_08053BAC +sub_08053BAC: @ 0x08053BAC + ldr r1, _08053BB8 @ =gUnk_02000080 + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] + bx lr + .align 2, 0 +_08053BB8: .4byte gUnk_02000080 + + thumb_func_start sub_08053BBC +sub_08053BBC: @ 0x08053BBC + push {lr} + movs r0, #0 + bl sub_0807CC3C + cmp r0, #0 + beq _08053BE0 + ldr r0, _08053BE4 @ =gUnk_02000080 + ldrb r1, [r0, #5] + adds r1, #1 + strb r1, [r0, #5] + movs r0, #1 + bl sub_0801DA90 + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #4 + bl sub_08050054 +_08053BE0: + pop {pc} + .align 2, 0 +_08053BE4: .4byte gUnk_02000080 + + thumb_func_start sub_08053BE8 +sub_08053BE8: @ 0x08053BE8 + push {r4, lr} + movs r4, #0x80 + lsls r4, r4, #1 + movs r0, #5 + movs r1, #2 + movs r2, #5 + adds r3, r4, #0 + bl sub_080A71C4 + movs r0, #5 + adds r1, r4, #0 + bl sub_08050054 + pop {r4, pc} + + thumb_func_start sub_08053C04 +sub_08053C04: @ 0x08053C04 + push {lr} + ldr r1, _08053C18 @ =gUnk_080FCEEC + ldr r0, _08053C1C @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08053C18: .4byte gUnk_080FCEEC +_08053C1C: .4byte gUnk_02000080 + + thumb_func_start sub_08053C20 +sub_08053C20: @ 0x08053C20 + push {lr} + ldr r1, _08053C50 @ =gUnk_02000080 + movs r2, #1 + strb r2, [r1, #6] + movs r0, #0x78 + strh r0, [r1, #8] + ldr r0, _08053C54 @ =gUnk_02000070 + strb r2, [r0] + bl sub_08051FF0 + movs r0, #4 + bl sub_0805B4D0 + ldr r0, _08053C58 @ =gUnk_080FCEBC + bl sub_0804ADDC + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + movs r0, #0x33 + bl sub_080A3268 + pop {pc} + .align 2, 0 +_08053C50: .4byte gUnk_02000080 +_08053C54: .4byte gUnk_02000070 +_08053C58: .4byte gUnk_080FCEBC + + thumb_func_start nullsub_483 +nullsub_483: @ 0x08053C5C + bx lr + .align 2, 0 + + thumb_func_start sub_08053C60 +sub_08053C60: @ 0x08053C60 + push {lr} + movs r0, #5 + movs r1, #2 + bl sub_08050054 + movs r0, #0xf4 + bl sub_080A3268 + ldr r0, _08053C80 @ =0x80100000 + bl sub_080A3268 + movs r0, #3 + bl sub_08056010 + pop {pc} + .align 2, 0 +_08053C80: .4byte 0x80100000 + + thumb_func_start sub_08053C84 +sub_08053C84: @ 0x08053C84 + ldr r1, _08053C8C @ =gUnk_02000080 + movs r0, #2 + strb r0, [r1, #6] + bx lr + .align 2, 0 +_08053C8C: .4byte gUnk_02000080 + + thumb_func_start sub_08053C90 +sub_08053C90: @ 0x08053C90 + push {lr} + ldr r1, _08053CA4 @ =gUnk_080FCEF8 + ldr r0, _08053CA8 @ =gUnk_02000080 + ldrb r0, [r0, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08053CA4: .4byte gUnk_080FCEF8 +_08053CA8: .4byte gUnk_02000080 + + thumb_func_start sub_08053CAC +sub_08053CAC: @ 0x08053CAC + push {lr} + ldr r1, _08053CC0 @ =gUnk_080FCFA4 + ldr r0, _08053CC4 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08053CC0: .4byte gUnk_080FCFA4 +_08053CC4: .4byte gUnk_02000080 + + thumb_func_start sub_08053CC8 +sub_08053CC8: @ 0x08053CC8 + push {r4, r5, r6, lr} + ldr r6, _08053D20 @ =gUnk_02000080 + ldrb r4, [r6, #3] + lsls r4, r4, #4 + ldr r0, _08053D24 @ =gUnk_080FCF04 + adds r4, r4, r0 + adds r0, r4, #0 + adds r0, #8 + str r0, [r6, #0xc] + ldr r0, [r4] + bl sub_0804ADDC + ldrb r0, [r4, #4] + ldrb r1, [r4, #5] + movs r2, #1 + bl sub_0804B0FC + bl sub_0804ADDC + ldrb r0, [r4, #4] + ldrb r1, [r4, #5] + movs r2, #2 + bl sub_0804B0FC + bl sub_0804ADDC + movs r5, #1 + strb r5, [r6, #6] + ldr r2, _08053D28 @ =gUnk_03000F50 + ldrh r1, [r2] + ldr r0, _08053D2C @ =0x0000FEFF + ands r0, r1 + strh r0, [r2] + ldr r0, _08053D30 @ =gUnk_02000070 + strb r5, [r0] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + ldrb r0, [r4, #5] + cmp r0, #0x1d + bne _08053D1E + strh r5, [r6, #0xa] +_08053D1E: + pop {r4, r5, r6, pc} + .align 2, 0 +_08053D20: .4byte gUnk_02000080 +_08053D24: .4byte gUnk_080FCF04 +_08053D28: .4byte gUnk_03000F50 +_08053D2C: .4byte 0x0000FEFF +_08053D30: .4byte gUnk_02000070 + + thumb_func_start sub_08053D34 +sub_08053D34: @ 0x08053D34 + push {r4, lr} + ldr r1, _08053D88 @ =gUnk_02000080 + ldrh r0, [r1, #0xa] + cmp r0, #0 + beq _08053D72 + movs r0, #0 + strh r0, [r1, #0xa] + movs r4, #0xd0 + lsls r4, r4, #3 + adds r0, r4, #0 + movs r1, #0x3d + bl sub_0807CB10 + cmp r0, #0 + beq _08053D5C + movs r0, #0x74 + movs r1, #0xc4 + movs r2, #1 + bl sub_0807B314 +_08053D5C: + adds r0, r4, #0 + movs r1, #0x3e + bl sub_0807CB10 + cmp r0, #0 + beq _08053D72 + movs r0, #0x74 + movs r1, #0xcc + movs r2, #1 + bl sub_0807B314 +_08053D72: + ldr r0, _08053D8C @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08053D86 + ldr r1, _08053D88 @ =gUnk_02000080 + movs r0, #0x78 + strh r0, [r1, #8] + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] +_08053D86: + pop {r4, pc} + .align 2, 0 +_08053D88: .4byte gUnk_02000080 +_08053D8C: .4byte gUnk_03000FD0 + + thumb_func_start sub_08053D90 +sub_08053D90: @ 0x08053D90 + push {lr} + ldr r1, _08053DB0 @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08053DAC + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] + movs r0, #0x10 + bl sub_080500F4 +_08053DAC: + pop {pc} + .align 2, 0 +_08053DB0: .4byte gUnk_02000080 + + thumb_func_start sub_08053DB4 +sub_08053DB4: @ 0x08053DB4 + push {r4, r5, lr} + ldr r0, _08053E20 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08053E1C + ldr r5, _08053E24 @ =gUnk_02000080 + ldr r4, [r5, #0xc] + ldrb r0, [r4, #4] + ldrb r1, [r4, #5] + bl sub_08052FF4 + bl sub_0807C740 + ldr r1, _08053E28 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + ldr r1, _08053E2C @ =gUnk_03000BF0 + movs r0, #6 + ldrsb r0, [r4, r0] + ldrh r2, [r1, #0xa] + adds r0, r0, r2 + strh r0, [r1, #0xa] + movs r0, #7 + ldrsb r0, [r4, r0] + ldrh r2, [r1, #0xc] + adds r0, r0, r2 + strh r0, [r1, #0xc] + ldr r0, [r4] + bl sub_0804ADDC + ldrb r0, [r4, #4] + ldrb r1, [r4, #5] + movs r2, #1 + bl sub_0804B0FC + bl sub_0804ADDC + ldrb r0, [r4, #4] + ldrb r1, [r4, #5] + movs r2, #2 + bl sub_0804B0FC + bl sub_0804ADDC + movs r0, #0x78 + strh r0, [r5, #8] + ldrb r0, [r5, #6] + adds r0, #1 + strb r0, [r5, #6] + movs r0, #0x10 + bl sub_080500F4 +_08053E1C: + pop {r4, r5, pc} + .align 2, 0 +_08053E20: .4byte gUnk_03000FD0 +_08053E24: .4byte gUnk_02000080 +_08053E28: .4byte gUnk_02000070 +_08053E2C: .4byte gUnk_03000BF0 + + thumb_func_start sub_08053E30 +sub_08053E30: @ 0x08053E30 + push {lr} + ldr r0, _08053E50 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08053E4E + ldr r1, _08053E54 @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08053E4E + ldrb r0, [r1, #5] + adds r0, #1 + strb r0, [r1, #5] +_08053E4E: + pop {pc} + .align 2, 0 +_08053E50: .4byte gUnk_03000FD0 +_08053E54: .4byte gUnk_02000080 + + thumb_func_start sub_08053E58 +sub_08053E58: @ 0x08053E58 + push {lr} + ldr r1, _08053E6C @ =gUnk_080FD108 + ldr r0, _08053E70 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08053E6C: .4byte gUnk_080FD108 +_08053E70: .4byte gUnk_02000080 + + thumb_func_start sub_08053E74 +sub_08053E74: @ 0x08053E74 + push {r4, lr} + ldr r0, _08053EB0 @ =gUnk_080FCFB8 + ldr r4, _08053EB4 @ =gUnk_02000080 + str r0, [r4, #0xc] + ldr r0, [r0] + bl sub_0804ADDC + movs r0, #0x78 + strh r0, [r4, #8] + movs r0, #0x3c + strh r0, [r4, #0xa] + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + ldr r2, _08053EB8 @ =gUnk_03000F50 + ldrh r1, [r2] + ldr r0, _08053EBC @ =0x0000FEFF + ands r0, r1 + strh r0, [r2] + ldr r1, _08053EC0 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + movs r0, #1 + bl sub_0805E450 + movs r0, #4 + movs r1, #8 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_08053EB0: .4byte gUnk_080FCFB8 +_08053EB4: .4byte gUnk_02000080 +_08053EB8: .4byte gUnk_03000F50 +_08053EBC: .4byte 0x0000FEFF +_08053EC0: .4byte gUnk_02000070 + + thumb_func_start sub_08053EC4 +sub_08053EC4: @ 0x08053EC4 + push {r4, lr} + ldr r0, _08053EF4 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08053EF0 + ldr r4, _08053EF8 @ =gUnk_02000080 + ldrh r0, [r4, #0xa] + subs r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08053EF0 + ldr r1, [r4, #0xc] + adds r0, r1, #0 + adds r0, #0xc + str r0, [r4, #0xc] + ldr r0, [r1, #4] + bl sub_0804ADDC + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] +_08053EF0: + pop {r4, pc} + .align 2, 0 +_08053EF4: .4byte gUnk_03000FD0 +_08053EF8: .4byte gUnk_02000080 + + thumb_func_start sub_08053EFC +sub_08053EFC: @ 0x08053EFC + push {lr} + ldr r1, _08053F1C @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08053F18 + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] + movs r0, #8 + bl sub_080500F4 +_08053F18: + pop {pc} + .align 2, 0 +_08053F1C: .4byte gUnk_02000080 + + thumb_func_start sub_08053F20 +sub_08053F20: @ 0x08053F20 + push {r4, r5, lr} + ldr r0, _08053F78 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08053F74 + bl sub_0805E89C + ldr r5, _08053F7C @ =gUnk_02000080 + ldr r4, [r5, #0xc] + ldrb r0, [r4, #8] + ldrb r1, [r4, #9] + bl sub_08052FF4 + bl sub_0807C740 + ldr r1, _08053F80 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + ldr r1, _08053F84 @ =gUnk_03000BF0 + movs r0, #0xa + ldrsb r0, [r4, r0] + ldrh r2, [r1, #0xa] + adds r0, r0, r2 + strh r0, [r1, #0xa] + movs r0, #0xb + ldrsb r0, [r4, r0] + ldrh r2, [r1, #0xc] + adds r0, r0, r2 + strh r0, [r1, #0xc] + ldr r0, [r4] + bl sub_0804ADDC + movs r0, #0x78 + strh r0, [r5, #8] + movs r0, #0x3c + strh r0, [r5, #0xa] + ldrb r0, [r5, #6] + adds r0, #1 + strb r0, [r5, #6] + movs r0, #8 + bl sub_080500F4 +_08053F74: + pop {r4, r5, pc} + .align 2, 0 +_08053F78: .4byte gUnk_03000FD0 +_08053F7C: .4byte gUnk_02000080 +_08053F80: .4byte gUnk_02000070 +_08053F84: .4byte gUnk_03000BF0 + + thumb_func_start sub_08053F88 +sub_08053F88: @ 0x08053F88 + push {lr} + ldr r0, _08053FAC @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08053FAA + ldr r1, _08053FB0 @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08053FAA + ldrb r0, [r1, #5] + adds r0, #1 + strb r0, [r1, #5] + bl sub_0805E470 +_08053FAA: + pop {pc} + .align 2, 0 +_08053FAC: .4byte gUnk_03000FD0 +_08053FB0: .4byte gUnk_02000080 + + thumb_func_start sub_08053FB4 +sub_08053FB4: @ 0x08053FB4 + push {lr} + ldr r1, _08053FC8 @ =gUnk_080FD138 + ldr r0, _08053FCC @ =gUnk_02000080 + ldrb r0, [r0, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08053FC8: .4byte gUnk_080FD138 +_08053FCC: .4byte gUnk_02000080 + + thumb_func_start sub_08053FD0 +sub_08053FD0: @ 0x08053FD0 + lsls r0, r0, #3 + ldr r1, _08053FDC @ =gUnk_080FD964 + adds r0, r0, r1 + ldrh r0, [r0, #4] + bx lr + .align 2, 0 +_08053FDC: .4byte gUnk_080FD964 + + thumb_func_start sub_08053FE0 +sub_08053FE0: @ 0x08053FE0 + lsls r0, r0, #3 + ldr r1, _08053FEC @ =gUnk_080FD964 + adds r0, r0, r1 + ldrh r0, [r0] + bx lr + .align 2, 0 +_08053FEC: .4byte gUnk_080FD964 + + thumb_func_start sub_08053FF0 +sub_08053FF0: @ 0x08053FF0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + adds r7, r1, #0 + bl sub_0807CA84 + adds r5, r0, #0 + lsls r1, r6, #3 + ldr r0, _08054010 @ =gUnk_080FD5B4 + adds r4, r1, r0 + cmp r5, #0 + bne _08054014 + ldrh r0, [r4, #4] + mov r8, r0 + b _08054018 + .align 2, 0 +_08054010: .4byte gUnk_080FD5B4 +_08054014: + ldrh r2, [r4, #6] + mov r8, r2 +_08054018: + adds r0, r6, #0 + bl sub_080544C8 + cmp r0, #0 + bne _08054034 + adds r0, r6, #0 + bl sub_08054398 + cmp r5, #0 + bne _08054034 + adds r0, r6, #0 + movs r1, #1 + bl sub_0807CAA0 +_08054034: + ldrb r0, [r4, #1] + cmp r0, #0x12 + bls _0805403C + b _0805427C +_0805403C: + lsls r0, r0, #2 + ldr r1, _08054048 @ =_0805404C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08054048: .4byte _0805404C +_0805404C: @ jump table + .4byte _0805427C @ case 0 + .4byte _08054098 @ case 1 + .4byte _080540A6 @ case 2 + .4byte _080540C0 @ case 3 + .4byte _08054104 @ case 4 + .4byte _0805414C @ case 5 + .4byte _08054154 @ case 6 + .4byte _08054194 @ case 7 + .4byte _080541B6 @ case 8 + .4byte _080541F0 @ case 9 + .4byte _08054212 @ case 10 + .4byte _080541F8 @ case 11 + .4byte _08054238 @ case 12 + .4byte _08054174 @ case 13 + .4byte _08054240 @ case 14 + .4byte _0805425C @ case 15 + .4byte _08054264 @ case 16 + .4byte _080541B0 @ case 17 + .4byte _0805417C @ case 18 +_08054098: + ldrb r0, [r4, #2] + bl sub_080526A0 + movs r0, #0x71 + bl sub_080A3268 + b _0805427C +_080540A6: + ldr r0, _080540BC @ =gUnk_080FD5A8 + ldrb r1, [r4, #2] + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + bl sub_080526CC + movs r0, #0x6f + bl sub_080A3268 + b _0805427C + .align 2, 0 +_080540BC: .4byte gUnk_080FD5A8 +_080540C0: + movs r5, #0 + movs r4, #0x1c + b _080540CA +_080540C6: + adds r4, r1, #1 + adds r5, #1 +_080540CA: + cmp r5, #3 + bls _080540D0 + b _0805427C +_080540D0: + adds r0, r4, #0 + bl sub_0807CA84 + adds r1, r4, #0 + cmp r0, #0 + bne _080540C6 + adds r6, r4, #0 + ldr r0, _08054100 @ =gUnk_02002A40 + adds r0, #0xb6 + adds r1, r5, r0 + ldrb r0, [r1] + cmp r0, #0 + bne _080540EE + movs r0, #0x20 + strb r0, [r1] +_080540EE: + adds r0, r6, #0 + movs r1, #1 + bl sub_0807CAA0 + adds r0, r6, #0 + bl sub_08054398 + b _0805427C + .align 2, 0 +_08054100: .4byte gUnk_02002A40 +_08054104: + movs r5, #0 + ldr r0, _08054144 @ =gUnk_02002A40 + adds r2, r0, #0 + adds r2, #0xb6 + ldrb r1, [r2] + adds r3, r0, #0 + cmp r1, #0x20 + beq _08054126 + adds r1, r2, #0 +_08054116: + adds r5, #1 + cmp r5, #3 + bls _0805411E + b _0805427C +_0805411E: + adds r0, r5, r1 + ldrb r0, [r0] + cmp r0, #0x20 + bne _08054116 +_08054126: + cmp r5, #3 + bls _0805412C + b _0805427C +_0805412C: + adds r0, r3, #0 + adds r0, #0xb6 + adds r0, r5, r0 + strb r6, [r0] + adds r0, r6, #0 + movs r1, #1 + bl sub_0807CAA0 + ldr r0, _08054148 @ =0x00000109 + bl sub_080A3268 + b _0805427C + .align 2, 0 +_08054144: .4byte gUnk_02002A40 +_08054148: .4byte 0x00000109 +_0805414C: + movs r0, #1 + bl sub_080526F8 + b _0805424E +_08054154: + ldr r1, _08054168 @ =gUnk_02002A40 + ldr r0, _0805416C @ =gUnk_02033A90 + ldr r2, _08054170 @ =0x0000046C + adds r1, r1, r2 + ldrb r0, [r0, #3] + adds r1, r1, r0 + ldrb r0, [r1] + ldrb r2, [r4, #2] + orrs r0, r2 + b _0805427A + .align 2, 0 +_08054168: .4byte gUnk_02002A40 +_0805416C: .4byte gUnk_02033A90 +_08054170: .4byte 0x0000046C +_08054174: + movs r0, #0x72 + bl sub_0801E738 + b _0805427C +_0805417C: + cmp r6, #0xb + bne _0805418A + movs r0, #0xc + movs r1, #0 + bl sub_0807CAA0 + b _080541B0 +_0805418A: + movs r0, #0xb + movs r1, #0 + bl sub_0807CAA0 + b _080541B0 +_08054194: + cmp r6, #7 + bne _080541A2 + movs r0, #8 + movs r1, #0 + bl sub_0807CAA0 + b _080541AA +_080541A2: + movs r0, #7 + movs r1, #0 + bl sub_0807CAA0 +_080541AA: + movs r0, #0x63 + bl sub_080542F4 +_080541B0: + bl sub_08053390 + b _0805427C +_080541B6: + cmp r5, #0 + bne _080541CA + movs r0, #7 + movs r1, #1 + bl sub_0807CAA0 + movs r0, #7 + bl sub_08054398 + b _080541E2 +_080541CA: + ldr r0, _080541EC @ =gUnk_02002A40 + adds r1, r0, #0 + adds r1, #0xae + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bls _080541E2 + movs r0, #3 + strb r0, [r1] +_080541E2: + movs r0, #0x63 + bl sub_080542F4 + b _0805427C + .align 2, 0 +_080541EC: .4byte gUnk_02002A40 +_080541F0: + ldrb r0, [r4, #2] + bl sub_080542F4 + b _0805424E +_080541F8: + movs r0, #0x66 + bl sub_0807CA84 + cmp r0, #0 + bne _0805420A + movs r0, #0x66 + movs r1, #1 + bl sub_0807CAA0 +_0805420A: + movs r0, #0x63 + bl sub_08054330 + b _080541B0 +_08054212: + ldr r0, _08054234 @ =gUnk_02002A40 + adds r1, r0, #0 + adds r1, #0xaf + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bls _0805422A + movs r0, #3 + strb r0, [r1] +_0805422A: + movs r0, #0x63 + bl sub_08054330 + b _0805427C + .align 2, 0 +_08054234: .4byte gUnk_02002A40 +_08054238: + ldrb r0, [r4, #2] + bl sub_08054330 + b _0805424E +_08054240: + movs r0, #0x3f + movs r1, #1 + bl sub_0807CAA0 + adds r0, r7, #0 + bl sub_080542C0 +_0805424E: + ldr r0, _08054258 @ =0x00000103 + bl sub_080A3268 + b _0805427C + .align 2, 0 +_08054258: .4byte 0x00000103 +_0805425C: + adds r0, r7, #0 + bl sub_0801E738 + b _0805427C +_08054264: + ldr r0, _08054284 @ =gUnk_02002A40 + adds r1, r0, #0 + adds r1, #0xa8 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bls _0805427C + movs r0, #3 +_0805427A: + strb r0, [r1] +_0805427C: + mov r0, r8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08054284: .4byte gUnk_02002A40 + + thumb_func_start sub_08054288 +sub_08054288: @ 0x08054288 + push {lr} + ldr r1, _08054298 @ =gUnk_080FD5B4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r0, [r0, #6] + bl sub_08056378 + pop {pc} + .align 2, 0 +_08054298: .4byte gUnk_080FD5B4 + + thumb_func_start sub_0805429C +sub_0805429C: @ 0x0805429C + ldr r1, _080542A8 @ =gUnk_080FD5B4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r0, [r0, #4] + bx lr + .align 2, 0 +_080542A8: .4byte gUnk_080FD5B4 + + thumb_func_start sub_080542AC +sub_080542AC: @ 0x080542AC + ldr r1, _080542BC @ =gUnk_080FD5B4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r1, [r0, #3] + movs r0, #1 + ands r0, r1 + bx lr + .align 2, 0 +_080542BC: .4byte gUnk_080FD5B4 + + thumb_func_start sub_080542C0 +sub_080542C0: @ 0x080542C0 + push {lr} + adds r2, r0, #0 + cmp r2, #0 + bne _080542CA + movs r2, #1 +_080542CA: + ldr r1, _080542DC @ =gUnk_02002A40 + adds r0, r1, #0 + adds r0, #0xc2 + ldrh r0, [r0] + adds r2, r2, r0 + cmp r2, #0 + bge _080542E0 + movs r2, #0 + b _080542E8 + .align 2, 0 +_080542DC: .4byte gUnk_02002A40 +_080542E0: + ldr r3, _080542F0 @ =0x000003E7 + cmp r2, r3 + ble _080542E8 + adds r2, r3, #0 +_080542E8: + adds r0, r1, #0 + adds r0, #0xc2 + strh r2, [r0] + pop {pc} + .align 2, 0 +_080542F0: .4byte 0x000003E7 + + thumb_func_start sub_080542F4 +sub_080542F4: @ 0x080542F4 + push {lr} + adds r3, r0, #0 + ldr r1, _08054318 @ =gUnk_02002A40 + adds r0, r1, #0 + adds r0, #0xac + ldrb r0, [r0] + adds r3, r3, r0 + ldr r2, _0805431C @ =gUnk_080FD5A0 + adds r0, r1, #0 + adds r0, #0xae + ldrb r0, [r0] + adds r0, r0, r2 + ldrb r2, [r0] + cmp r3, #0 + bge _08054320 + movs r3, #0 + b _08054326 + .align 2, 0 +_08054318: .4byte gUnk_02002A40 +_0805431C: .4byte gUnk_080FD5A0 +_08054320: + cmp r2, r3 + bge _08054326 + adds r3, r2, #0 +_08054326: + adds r0, r1, #0 + adds r0, #0xac + strb r3, [r0] + pop {pc} + .align 2, 0 + + thumb_func_start sub_08054330 +sub_08054330: @ 0x08054330 + push {lr} + adds r3, r0, #0 + ldr r1, _08054354 @ =gUnk_02002A40 + adds r0, r1, #0 + adds r0, #0xad + ldrb r0, [r0] + adds r3, r3, r0 + ldr r2, _08054358 @ =gUnk_080FD5A4 + adds r0, r1, #0 + adds r0, #0xaf + ldrb r0, [r0] + adds r0, r0, r2 + ldrb r2, [r0] + cmp r3, #0 + bge _0805435C + movs r3, #0 + b _08054362 + .align 2, 0 +_08054354: .4byte gUnk_02002A40 +_08054358: .4byte gUnk_080FD5A4 +_0805435C: + cmp r2, r3 + bge _08054362 + adds r3, r2, #0 +_08054362: + adds r0, r1, #0 + adds r0, #0xad + strb r3, [r0] + pop {pc} + .align 2, 0 + + thumb_func_start sub_0805436C +sub_0805436C: @ 0x0805436C + push {lr} + adds r2, r0, #0 + ldr r1, _08054380 @ =gUnk_02002A40 + adds r0, r1, #0 + adds r0, #0xb4 + ldrb r0, [r0] + cmp r2, r0 + bne _08054384 + movs r1, #0 + b _08054392 + .align 2, 0 +_08054380: .4byte gUnk_02002A40 +_08054384: + adds r0, r1, #0 + adds r0, #0xb5 + movs r1, #2 + ldrb r0, [r0] + cmp r2, r0 + bne _08054392 + movs r1, #1 +_08054392: + adds r0, r1, #0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08054398 +sub_08054398: @ 0x08054398 + push {r4, r5, lr} + adds r5, r0, #0 + cmp r5, #0x46 + bhi _080543A8 + movs r0, #0 + movs r1, #1 + bl sub_0807CAA0 +_080543A8: + subs r0, r5, #1 + cmp r0, #0x1e + bhi _08054410 + movs r1, #2 + ldr r2, _080543C0 @ =gUnk_02002A40 + adds r0, r2, #0 + adds r0, #0xb4 + ldrb r0, [r0] + cmp r0, #0 + bne _080543C4 + movs r1, #0 + b _080543D0 + .align 2, 0 +_080543C0: .4byte gUnk_02002A40 +_080543C4: + adds r0, r2, #0 + adds r0, #0xb5 + ldrb r0, [r0] + cmp r0, #0 + bne _080543D0 + movs r1, #1 +_080543D0: + cmp r1, #2 + bne _0805440A + ldr r3, _080543F0 @ =gUnk_080FD5B4 + lsls r0, r5, #3 + adds r0, r0, r3 + ldrb r4, [r0] + adds r0, r2, #0 + adds r0, #0xb4 + ldrb r0, [r0] + lsls r0, r0, #3 + adds r0, r0, r3 + ldrb r0, [r0] + cmp r4, r0 + bne _080543F4 + movs r1, #0 + b _08054406 + .align 2, 0 +_080543F0: .4byte gUnk_080FD5B4 +_080543F4: + adds r0, r2, #0 + adds r0, #0xb5 + ldrb r0, [r0] + lsls r0, r0, #3 + adds r0, r0, r3 + ldrb r0, [r0] + cmp r4, r0 + bne _08054406 + movs r1, #1 +_08054406: + cmp r1, #2 + beq _08054410 +_0805440A: + adds r0, r5, #0 + bl sub_08054414 +_08054410: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08054414 +sub_08054414: @ 0x08054414 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + subs r0, r4, #1 + cmp r0, #0x1e + bhi _08054456 + cmp r1, #1 + bhi _08054456 + movs r2, #0 + cmp r1, #0 + bne _0805442A + movs r2, #1 +_0805442A: + ldr r0, _08054458 @ =gUnk_02002A40 + adds r0, #0xb4 + adds r6, r1, r0 + ldrb r7, [r6] + adds r5, r2, r0 + ldrb r3, [r5] + ldr r2, _0805445C @ =gUnk_080FD5B4 + lsls r1, r3, #3 + adds r1, r1, r2 + lsls r0, r4, #3 + adds r0, r0, r2 + ldrb r1, [r1] + ldrb r0, [r0] + cmp r1, r0 + bne _0805444A + adds r3, r7, #0 +_0805444A: + strb r4, [r6] + strb r3, [r5] + ldr r1, _08054460 @ =gUnk_0200AF00 + movs r0, #0x7f + strb r0, [r1, #0x13] + strb r0, [r1, #0x14] +_08054456: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08054458: .4byte gUnk_02002A40 +_0805445C: .4byte gUnk_080FD5B4 +_08054460: .4byte gUnk_0200AF00 + + thumb_func_start sub_08054464 +sub_08054464: @ 0x08054464 + push {r4, lr} + adds r4, r0, #0 + ldr r3, _08054498 @ =gUnk_02002A40 + cmp r1, #3 + bls _0805448C + movs r1, #0 + adds r2, r3, #0 + adds r2, #0xb6 + ldrb r0, [r2] + cmp r0, #0x20 + beq _08054488 +_0805447A: + adds r1, #1 + cmp r1, #3 + bhi _08054494 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0x20 + bne _0805447A +_08054488: + cmp r1, #3 + bhi _08054494 +_0805448C: + adds r0, r3, #0 + adds r0, #0xb6 + adds r0, r1, r0 + strb r4, [r0] +_08054494: + adds r0, r1, #0 + pop {r4, pc} + .align 2, 0 +_08054498: .4byte gUnk_02002A40 + + thumb_func_start sub_0805449C +sub_0805449C: @ 0x0805449C + push {lr} + cmp r0, #1 + blo _080544AE + cmp r0, #4 + bls _080544AA + cmp r0, #6 + bne _080544AE +_080544AA: + movs r0, #1 + b _080544B0 +_080544AE: + movs r0, #0 +_080544B0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080544B4 +sub_080544B4: @ 0x080544B4 + push {lr} + cmp r0, #0xe + bhi _080544C2 + cmp r0, #0xd + blo _080544C2 + movs r0, #1 + b _080544C4 +_080544C2: + movs r0, #0 +_080544C4: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080544C8 +sub_080544C8: @ 0x080544C8 + push {lr} + cmp r0, #0x1f + bhi _080544D6 + cmp r0, #0x1c + blo _080544D6 + movs r0, #1 + b _080544D8 +_080544D6: + movs r0, #0 +_080544D8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080544DC +sub_080544DC: @ 0x080544DC + push {lr} + adds r2, r0, #0 + ldr r1, _080544F0 @ =gUnk_02002A40 + adds r0, r1, #0 + adds r0, #0xb6 + ldrb r0, [r0] + cmp r2, r0 + bne _080544F4 + movs r0, #1 + b _08054520 + .align 2, 0 +_080544F0: .4byte gUnk_02002A40 +_080544F4: + adds r0, r1, #0 + adds r0, #0xb7 + ldrb r0, [r0] + cmp r2, r0 + bne _08054502 + movs r0, #2 + b _08054520 +_08054502: + adds r0, r1, #0 + adds r0, #0xb8 + ldrb r0, [r0] + cmp r2, r0 + bne _08054510 + movs r0, #3 + b _08054520 +_08054510: + adds r0, r1, #0 + adds r0, #0xb9 + ldrb r0, [r0] + cmp r2, r0 + beq _0805451E + movs r0, #0 + b _08054520 +_0805451E: + movs r0, #4 +_08054520: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08054524 +sub_08054524: @ 0x08054524 + push {lr} + ldr r0, _08054550 @ =gUnk_02033A90 + ldrb r1, [r0, #1] + cmp r1, #0 + bne _08054534 + ldr r0, _08054554 @ =gUnk_030010A0 + adds r0, #0x2e + ldrb r1, [r0] +_08054534: + cmp r1, #0x16 + bls _0805453A + movs r1, #0 +_0805453A: + ldr r0, _08054558 @ =gUnk_080FE1C6 + adds r0, r1, r0 + ldrb r1, [r0] + lsls r0, r1, #5 + ldr r1, _0805455C @ =gUnk_080015BC + adds r0, r0, r1 + ldr r1, _08054560 @ =gUnk_02034398 + movs r2, #0x20 + bl sub_0801D66C + pop {pc} + .align 2, 0 +_08054550: .4byte gUnk_02033A90 +_08054554: .4byte gUnk_030010A0 +_08054558: .4byte gUnk_080FE1C6 +_0805455C: .4byte gUnk_080015BC +_08054560: .4byte gUnk_02034398 + + thumb_func_start sub_08054564 +sub_08054564: @ 0x08054564 + ldr r1, _0805456C @ =gUnk_02034350 + movs r0, #1 + strb r0, [r1, #2] + bx lr + .align 2, 0 +_0805456C: .4byte gUnk_02034350 + + thumb_func_start sub_08054570 +sub_08054570: @ 0x08054570 + ldr r1, _08054578 @ =gUnk_02034350 + movs r0, #0 + strb r0, [r1, #2] + bx lr + .align 2, 0 +_08054578: .4byte gUnk_02034350 + + thumb_func_start sub_0805457C +sub_0805457C: @ 0x0805457C + push {r4, r5, r6, r7, lr} + sub sp, #0x20 + adds r6, r0, #0 + adds r3, r1, #0 + ldr r0, _080545A4 @ =gUnk_02034350 + ldrb r1, [r0, #2] + adds r5, r0, #0 + cmp r1, #1 + bne _08054590 + b _0805474C +_08054590: + ldr r2, _080545A8 @ =gUnk_08001A1C + movs r4, #0 + cmp r3, #0x19 + bhi _0805463C + lsls r0, r3, #2 + ldr r1, _080545AC @ =_080545B0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080545A4: .4byte gUnk_02034350 +_080545A8: .4byte gUnk_08001A1C +_080545AC: .4byte _080545B0 +_080545B0: @ jump table + .4byte _0805463C @ case 0 + .4byte _08054618 @ case 1 + .4byte _08054618 @ case 2 + .4byte _08054618 @ case 3 + .4byte _08054618 @ case 4 + .4byte _08054618 @ case 5 + .4byte _08054618 @ case 6 + .4byte _08054618 @ case 7 + .4byte _08054618 @ case 8 + .4byte _08054618 @ case 9 + .4byte _08054618 @ case 10 + .4byte _08054618 @ case 11 + .4byte _08054618 @ case 12 + .4byte _0805463C @ case 13 + .4byte _0805463C @ case 14 + .4byte _0805463A @ case 15 + .4byte _08054634 @ case 16 + .4byte _08054634 @ case 17 + .4byte _08054634 @ case 18 + .4byte _08054634 @ case 19 + .4byte _08054634 @ case 20 + .4byte _08054634 @ case 21 + .4byte _08054634 @ case 22 + .4byte _08054634 @ case 23 + .4byte _08054624 @ case 24 + .4byte _08054624 @ case 25 +_08054618: + lsls r1, r3, #5 + ldr r0, _08054620 @ =gUnk_0800137C + adds r4, r1, r0 + b _0805463C + .align 2, 0 +_08054620: .4byte gUnk_0800137C +_08054624: + ldrb r0, [r5, #0xa] + ldr r4, _08054630 @ =gUnk_0800191C + cmp r0, #0 + beq _0805463C + adds r4, #0x20 + b _0805463C + .align 2, 0 +_08054630: .4byte gUnk_0800191C +_08054634: + lsls r1, r3, #5 + ldr r0, _08054650 @ =gUnk_0800161C + adds r2, r1, r0 +_0805463A: + ldr r4, _08054654 @ =gUnk_02034398 +_0805463C: + cmp r4, #0 + bne _08054642 + b _0805474C +_08054642: + ldr r0, _08054658 @ =gUnk_02002A40 + adds r0, #0xb3 + ldrb r1, [r0] + cmp r1, #0 + bne _08054660 + ldr r3, _0805465C @ =gUnk_08001A1C + b _08054666 + .align 2, 0 +_08054650: .4byte gUnk_0800161C +_08054654: .4byte gUnk_02034398 +_08054658: .4byte gUnk_02002A40 +_0805465C: .4byte gUnk_08001A1C +_08054660: + lsls r1, r1, #5 + ldr r0, _0805473C @ =gUnk_0800143C + adds r3, r1, r0 +_08054666: + mov r0, sp + adds r1, r4, #0 + bl sub_08000F14 + ldr r4, _08054740 @ =gUnk_02002A40 + adds r0, r4, #0 + adds r0, #0xaa + ldrb r0, [r0] + cmp r0, #8 + bhi _08054684 + mov r1, sp + mov r0, sp + ldrh r0, [r0, #8] + adds r0, #5 + strh r0, [r1, #8] +_08054684: + adds r0, r4, #0 + adds r0, #0xac + ldrb r0, [r0] + cmp r0, #0 + bne _08054698 + mov r1, sp + mov r0, sp + ldrh r0, [r0, #0xc] + adds r0, #3 + strh r0, [r1, #0xc] +_08054698: + adds r0, r4, #0 + adds r0, #0xad + ldrb r0, [r0] + cmp r0, #0 + bne _080546AC + mov r1, sp + mov r0, sp + ldrh r0, [r0, #0xe] + adds r0, #3 + strh r0, [r1, #0xe] +_080546AC: + adds r0, r4, #0 + adds r0, #0xc0 + ldrh r0, [r0] + cmp r0, #0xa + bhi _080546C0 + mov r1, sp + mov r0, sp + ldrh r0, [r0, #4] + adds r0, #1 + strh r0, [r1, #4] +_080546C0: + ldr r2, _08054744 @ =gUnk_08001A1C + adds r0, r4, #0 + adds r0, #0xbb + ldrb r0, [r0] + adds r3, r2, #0 + cmp r0, #0 + beq _080546D0 + adds r2, #0x20 +_080546D0: + movs r1, #0x8b + lsls r1, r1, #1 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _080546DE + adds r3, #0x40 +_080546DE: + mov r0, sp + mov r1, sp + bl sub_08000F2C + adds r4, r0, #0 + bl sub_08000E50 + adds r2, r0, #0 + asrs r5, r2, #0x18 + movs r0, #0xf + ands r5, r0 + adds r0, r2, #0 + adds r1, r4, #0 + bl __modsi3 + adds r2, r0, #0 + movs r3, #0 + lsls r0, r5, #1 + add r0, sp + movs r4, #0 + ldrsh r1, [r0, r4] + cmp r1, r2 + bgt _08054726 + movs r4, #0xf +_0805470E: + adds r3, #1 + adds r5, #1 + ands r5, r4 + cmp r3, #0xf + bhi _08054726 + lsls r0, r5, #1 + add r0, sp + movs r7, #0 + ldrsh r0, [r0, r7] + adds r1, r1, r0 + cmp r1, r2 + ble _0805470E +_08054726: + ldr r0, _08054748 @ =gUnk_080FE1B4 + adds r0, r5, r0 + ldrb r1, [r0] + cmp r1, #0 + beq _0805474C + adds r0, r6, #0 + movs r2, #0 + bl sub_08054754 + b _0805474E + .align 2, 0 +_0805473C: .4byte gUnk_0800143C +_08054740: .4byte gUnk_02002A40 +_08054744: .4byte gUnk_08001A1C +_08054748: .4byte gUnk_080FE1B4 +_0805474C: + movs r0, #0 +_0805474E: + add sp, #0x20 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08054754 +sub_08054754: @ 0x08054754 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r4, r1, #0 + adds r5, r2, #0 + cmp r4, #0x5e + beq _08054786 + cmp r4, #0x5e + bhi _08054772 + cmp r4, #0x5c + beq _080547A6 + cmp r4, #0x5c + bhi _08054782 + cmp r4, #0x3f + beq _08054794 + b _080547DA +_08054772: + cmp r4, #0xfc + blo _080547DA + cmp r4, #0xfe + bls _080547A6 + cmp r4, #0xff + bne _080547DA + movs r0, #1 + b _08054788 +_08054782: + movs r0, #0x65 + b _08054788 +_08054786: + movs r0, #9 +_08054788: + bl sub_0807CA84 + cmp r0, #0 + bne _080547DA +_08054790: + movs r0, #0 + b _0805486C +_08054794: + movs r0, #0x40 + bl sub_0807CA84 + cmp r0, #0 + beq _08054790 + cmp r5, #0 + bne _080547DA + movs r5, #1 + b _080547DA +_080547A6: + movs r0, #0x67 + bl sub_0807CA84 + cmp r0, #0 + beq _08054790 + ldr r0, _080547FC @ =gUnk_02034350 + ldrb r0, [r0, #5] + cmp r0, #3 + bhi _08054790 + cmp r4, #0x5c + beq _080547DA + adds r5, r4, #0 + subs r5, #0xfc + bl sub_08000E50 + movs r1, #0x3f + ands r1, r0 + ldr r2, _08054800 @ =gUnk_080FE1DD + lsls r0, r5, #6 + adds r1, r1, r0 + adds r1, r1, r2 + ldrb r5, [r1] + movs r4, #0x5c + cmp r5, #0 + bne _080547DA + movs r4, #0 +_080547DA: + cmp r4, #0 + beq _0805486A + cmp r4, #0xff + beq _08054842 + movs r0, #0 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_080A2960 + adds r2, r0, #0 + cmp r2, #0 + beq _0805486A + ldr r0, _08054804 @ =gUnk_03001160 + cmp r6, r0 + bne _08054808 + movs r0, #1 + b _0805480A + .align 2, 0 +_080547FC: .4byte gUnk_02034350 +_08054800: .4byte gUnk_080FE1DD +_08054804: .4byte gUnk_03001160 +_08054808: + movs r0, #0 +_0805480A: + strb r0, [r2, #0xe] + ldrb r0, [r6, #8] + cmp r0, #6 + bne _08054838 + ldrb r0, [r6, #9] + cmp r0, #0x63 + bne _0805481C + str r2, [r6, #0x54] + b _08054838 +_0805481C: + cmp r0, #0x1e + bne _08054838 + ldrb r0, [r6, #0x14] + lsls r0, r0, #3 + movs r3, #0x80 + rsbs r3, r3, #0 + adds r1, r3, #0 + orrs r0, r1 + strb r0, [r2, #0x15] + movs r0, #0xc0 + strh r0, [r2, #0x24] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r2, #0x20] +_08054838: + adds r0, r6, #0 + adds r1, r2, #0 + bl sub_0806FA24 + b _0805486A +_08054842: + movs r0, #7 + movs r1, #0 + bl sub_0804AA60 + adds r2, r0, #0 + cmp r2, #0 + beq _0805486A + ldrh r0, [r6, #0x2e] + strh r0, [r2, #0x2e] + ldrh r0, [r6, #0x32] + strh r0, [r2, #0x32] + adds r0, r6, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r2, #0 + adds r0, #0x38 + strb r1, [r0] + adds r0, r2, #0 + bl sub_08016A04 +_0805486A: + adds r0, r4, #0 +_0805486C: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08054870 +sub_08054870: @ 0x08054870 + push {lr} + ldr r1, _08054884 @ =gUnk_080FE2A0 + ldr r0, _08054888 @ =gUnk_02000080 + ldrb r0, [r0, #5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08054884: .4byte gUnk_080FE2A0 +_08054888: .4byte gUnk_02000080 + + thumb_func_start sub_0805488C +sub_0805488C: @ 0x0805488C + push {r4, lr} + ldr r4, _080548DC @ =gUnk_02032EC0 + ldrb r1, [r4, #3] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080548E0 @ =gUnk_080FE320 + adds r0, r0, r1 + ldr r2, _080548E4 @ =gUnk_02000080 + ldrb r1, [r0] + movs r3, #0 + strb r1, [r2] + ldrb r1, [r0, #1] + strb r1, [r2, #3] + ldrb r1, [r4, #3] + strb r1, [r2, #4] + str r0, [r2, #0xc] + ldrb r0, [r2, #5] + adds r0, #1 + strb r0, [r2, #5] + strb r3, [r2, #6] + movs r0, #0x96 + lsls r0, r0, #1 + strh r0, [r2, #8] + movs r0, #0 + bl sub_0801DA90 + ldrb r0, [r4, #3] + movs r1, #1 + bl sub_08054974 + bl sub_0806F364 + movs r0, #0xff + bl sub_0807CD8C + bl sub_080548E8 + pop {r4, pc} + .align 2, 0 +_080548DC: .4byte gUnk_02032EC0 +_080548E0: .4byte gUnk_080FE320 +_080548E4: .4byte gUnk_02000080 + + thumb_func_start sub_080548E8 +sub_080548E8: @ 0x080548E8 + push {lr} + ldr r1, _08054918 @ =gUnk_080FE2AC + ldr r0, _0805491C @ =gUnk_02000080 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + bl sub_080AD90C + bl sub_0805E5C0 + bl sub_080AD9B0 + bl sub_080AD918 + bl sub_0807FC40 + bl sub_0801B060 + bl sub_08000108 + pop {pc} + .align 2, 0 +_08054918: .4byte gUnk_080FE2AC +_0805491C: .4byte gUnk_02000080 + + thumb_func_start sub_08054920 +sub_08054920: @ 0x08054920 + push {lr} + bl sub_08056418 + bl sub_0806F38C + ldr r1, _08054948 @ =gUnk_080C9CBC + ldr r0, _0805494C @ =gUnk_02022740 + ldrb r0, [r0, #3] + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r0, [r0, #7] + cmp r0, #0 + beq _08054954 + ldr r0, _08054950 @ =gUnk_02032EC0 + ldrb r1, [r0, #3] + movs r0, #0xa + bl sub_080A7138 + b _08054962 + .align 2, 0 +_08054948: .4byte gUnk_080C9CBC +_0805494C: .4byte gUnk_02022740 +_08054950: .4byte gUnk_02032EC0 +_08054954: + ldr r1, _08054964 @ =gUnk_02032EC0 + movs r0, #3 + strb r0, [r1] + movs r0, #7 + movs r1, #0x10 + bl sub_08050054 +_08054962: + pop {pc} + .align 2, 0 +_08054964: .4byte gUnk_02032EC0 + + thumb_func_start sub_08054968 +sub_08054968: @ 0x08054968 + ldr r1, _08054970 @ =gUnk_02000080 + movs r0, #2 + strb r0, [r1, #5] + bx lr + .align 2, 0 +_08054970: .4byte gUnk_02000080 + + thumb_func_start sub_08054974 +sub_08054974: @ 0x08054974 + push {r4, r5, r6, lr} + adds r5, r1, #0 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _080549B0 @ =gUnk_080FE320 + adds r6, r1, r0 + ldrb r0, [r6, #2] + ldrb r1, [r6, #3] + bl sub_0804B0C0 + ldr r4, _080549B4 @ =gUnk_03000BF0 + ldrb r0, [r6, #2] + strb r0, [r4, #4] + ldrb r0, [r6, #3] + strb r0, [r4, #5] + bl sub_08053320 + ldrb r0, [r4, #4] + bl sub_08052D58 + ldr r1, _080549B8 @ =gUnk_02033A90 + strh r0, [r1, #4] + cmp r5, #0 + beq _080549BC + ldrb r0, [r6, #2] + ldrb r1, [r6, #3] + bl sub_08052FD8 + b _080549CE + .align 2, 0 +_080549B0: .4byte gUnk_080FE320 +_080549B4: .4byte gUnk_03000BF0 +_080549B8: .4byte gUnk_02033A90 +_080549BC: + ldrb r0, [r6, #2] + ldrb r1, [r6, #3] + bl sub_08052FF4 + bl sub_0807C740 + ldr r1, _08054A00 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] +_080549CE: + ldr r2, _08054A04 @ =gUnk_03000F50 + ldrh r1, [r2] + ldr r0, _08054A08 @ =0x00001FFF + ands r0, r1 + strh r0, [r2] + ldr r1, _08054A0C @ =gUnk_03000BF0 + ldrh r0, [r6, #4] + ldrh r2, [r1, #6] + adds r0, r0, r2 + strh r0, [r1, #0xa] + ldrh r0, [r6, #6] + ldrh r2, [r1, #8] + adds r0, r0, r2 + strh r0, [r1, #0xc] + ldrb r0, [r6, #2] + cmp r0, #2 + bne _080549F4 + bl sub_08059D18 +_080549F4: + ldr r0, _08054A10 @ =gUnk_02032EC0 + ldrb r0, [r0, #3] + bl sub_08018710 + pop {r4, r5, r6, pc} + .align 2, 0 +_08054A00: .4byte gUnk_02000070 +_08054A04: .4byte gUnk_03000F50 +_08054A08: .4byte 0x00001FFF +_08054A0C: .4byte gUnk_03000BF0 +_08054A10: .4byte gUnk_02032EC0 + + thumb_func_start sub_08054A14 +sub_08054A14: @ 0x08054A14 + push {lr} + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _08054A38 @ =gUnk_080FE320 + adds r2, r1, r0 + ldrb r0, [r2, #0x11] + cmp r0, #0xd + bhi _08054A34 + ldr r1, _08054A3C @ =gUnk_0811E454 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + ldrh r1, [r2, #0x12] + bl sub_0807CC9C +_08054A34: + pop {pc} + .align 2, 0 +_08054A38: .4byte gUnk_080FE320 +_08054A3C: .4byte gUnk_0811E454 + + thumb_func_start sub_08054A40 +sub_08054A40: @ 0x08054A40 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08054A5C @ =gUnk_080FEEA8 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r4, #0x41 + movs r0, #0 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_08054A5C: .4byte gUnk_080FEEA8 + + thumb_func_start sub_08054A60 +sub_08054A60: @ 0x08054A60 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #0xa0 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #4 + strb r0, [r4, #0xe] + movs r0, #0xff + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r4, #0x11] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + subs r1, #1 + movs r0, #0x80 + strb r0, [r1] + ldr r0, _08054AC4 @ =gUnk_03001160 + ldrb r1, [r0, #0x14] + movs r0, #0xe + ands r0, r1 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_0806FBD8 + cmp r0, #0 + bne _08054AAC + bl sub_0805E780 +_08054AAC: + adds r0, r4, #0 + bl sub_0801766C + adds r0, r4, #0 + movs r1, #1 + movs r2, #3 + bl sub_080AE008 + adds r0, r4, #0 + bl sub_08054AC8 + pop {r4, pc} + .align 2, 0 +_08054AC4: .4byte gUnk_03001160 + + thumb_func_start sub_08054AC8 +sub_08054AC8: @ 0x08054AC8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r5, _08054B14 @ =gUnk_03001160 + ldrb r1, [r5, #0x14] + movs r0, #0xe + ands r0, r1 + strb r0, [r4, #0x14] + ldr r1, [r4, #0x48] + ldr r2, _08054B18 @ =gUnk_080FEEB0 + ldrb r0, [r4, #0x14] + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r1] + ldr r1, [r4, #0x48] + ldrb r0, [r4, #0x14] + adds r0, #1 + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r1, #1] + ldr r0, [r4, #0x48] + movs r1, #4 + strb r1, [r0, #6] + ldr r0, [r4, #0x48] + strb r1, [r0, #7] + ldrb r7, [r5, #0x1e] + adds r6, r7, #0 + cmp r6, #0x36 + bhi _08054B06 + ldrh r0, [r5, #0x12] + cmp r0, #6 + beq _08054B1C +_08054B06: + movs r0, #0xff + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + b _08054B68 + .align 2, 0 +_08054B14: .4byte gUnk_03001160 +_08054B18: .4byte gUnk_080FEEB0 +_08054B1C: + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldrb r2, [r5, #0x18] + movs r1, #0x40 + ands r1, r2 + ldrb r3, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + lsrs r2, r2, #7 + lsls r2, r2, #7 + movs r1, #0x7f + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0x1e] + cmp r6, r0 + beq _08054B52 + strb r7, [r4, #0x1e] + ldrb r1, [r4, #0x1e] + ldrh r2, [r4, #0x12] + adds r0, r4, #0 + bl sub_080042D0 +_08054B52: + adds r0, r5, #0 + adds r0, #0x5a + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x5a + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x5b + ldrb r0, [r0] + adds r1, #1 + strb r0, [r1] +_08054B68: + movs r0, #0x10 + bl sub_0805436C + cmp r0, #1 + bhi _08054BFC + ldrb r0, [r4, #0x1e] + cmp r0, #0xff + beq _08054BE8 + ldr r0, _08054BF4 @ =gUnk_03001160 + ldrb r0, [r0, #0x18] + lsls r0, r0, #0x1e + cmp r0, #0 + beq _08054BE8 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08054BE8 + movs r0, #4 + strb r0, [r4, #0xe] + movs r0, #0x45 + movs r1, #0 + movs r2, #0x10 + bl sub_080A2960 + adds r5, r0, #0 + cmp r5, #0 + beq _08054BE8 + movs r3, #0x80 + lsls r3, r3, #0xa + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0 + bl sub_0806FA48 + adds r0, r4, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + adds r3, r5, #0 + adds r3, #0x29 + lsrs r1, r1, #0x1d + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldr r1, _08054BF8 @ =gUnk_080FEEB0 + ldrb r0, [r4, #0x14] + adds r0, r0, r1 + ldrb r0, [r0] + adds r2, r5, #0 + adds r2, #0x62 + strb r0, [r2] + ldrb r0, [r4, #0x14] + adds r0, #1 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r5, #0 + adds r0, #0x63 + strb r1, [r0] +_08054BE8: + ldr r1, _08054BF4 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_08078E84 + b _08054C00 + .align 2, 0 +_08054BF4: .4byte gUnk_03001160 +_08054BF8: .4byte gUnk_080FEEB0 +_08054BFC: + bl sub_0805E780 +_08054C00: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08054C04 +sub_08054C04: @ 0x08054C04 + push {lr} + ldr r1, _08054C18 @ =gUnk_080FEEB8 + ldr r0, _08054C1C @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08054C18: .4byte gUnk_080FEEB8 +_08054C1C: .4byte gUnk_02000080 + + thumb_func_start sub_08054C20 +sub_08054C20: @ 0x08054C20 + push {r4, lr} + ldr r4, _08054C50 @ =gUnk_02000080 + ldrb r0, [r4, #4] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + ldrb r0, [r4, #4] + movs r1, #0 + bl sub_0801876C + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + ldr r1, _08054C54 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_08054C50: .4byte gUnk_02000080 +_08054C54: .4byte gUnk_02000070 + + thumb_func_start sub_08054C58 +sub_08054C58: @ 0x08054C58 + push {lr} + ldr r0, _08054C80 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08054C7C + movs r0, #0xff + bl sub_0807CC3C + cmp r0, #0 + beq _08054C7C + movs r0, #7 + movs r1, #0x10 + bl sub_08050054 + ldr r1, _08054C84 @ =gUnk_02000080 + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] +_08054C7C: + pop {pc} + .align 2, 0 +_08054C80: .4byte gUnk_03000FD0 +_08054C84: .4byte gUnk_02000080 + + thumb_func_start sub_08054C88 +sub_08054C88: @ 0x08054C88 + push {r4, lr} + ldr r0, _08054CB8 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08054CB4 + ldr r4, _08054CBC @ =gUnk_02000080 + ldrb r0, [r4, #4] + movs r1, #0 + bl sub_08054974 + movs r0, #6 + movs r1, #0x10 + bl sub_08050054 + movs r0, #0x73 + bl sub_080A3268 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + movs r0, #0x78 + strh r0, [r4, #8] +_08054CB4: + pop {r4, pc} + .align 2, 0 +_08054CB8: .4byte gUnk_03000FD0 +_08054CBC: .4byte gUnk_02000080 + + thumb_func_start sub_08054CC0 +sub_08054CC0: @ 0x08054CC0 + push {lr} + ldr r0, _08054CE0 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08054CDE + ldr r1, _08054CE4 @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08054CDE + ldrb r0, [r1, #5] + adds r0, #1 + strb r0, [r1, #5] +_08054CDE: + pop {pc} + .align 2, 0 +_08054CE0: .4byte gUnk_03000FD0 +_08054CE4: .4byte gUnk_02000080 + + thumb_func_start sub_08054CE8 +sub_08054CE8: @ 0x08054CE8 + push {lr} + ldr r1, _08054CFC @ =gUnk_080FEEC8 + ldr r0, _08054D00 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08054CFC: .4byte gUnk_080FEEC8 +_08054D00: .4byte gUnk_02000080 + + thumb_func_start sub_08054D04 +sub_08054D04: @ 0x08054D04 + push {r4, lr} + ldr r4, _08054D34 @ =gUnk_02000080 + ldr r1, [r4, #0xc] + ldrb r0, [r1, #2] + ldrb r1, [r1, #3] + bl sub_0804B0B0 + ldrb r0, [r4, #4] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + ldr r1, _08054D38 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_08054D34: .4byte gUnk_02000080 +_08054D38: .4byte gUnk_02000070 + + thumb_func_start sub_08054D3C +sub_08054D3C: @ 0x08054D3C + push {r4, lr} + ldr r0, _08054D6C @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08054D6A + movs r0, #0xff + bl sub_0807CC3C + cmp r0, #0 + beq _08054D6A + ldr r4, _08054D70 @ =gUnk_02000080 + ldrb r0, [r4, #4] + movs r1, #1 + bl sub_0801876C + ldrb r0, [r4, #4] + bl sub_080553E0 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + movs r0, #0x78 + strh r0, [r4, #8] +_08054D6A: + pop {r4, pc} + .align 2, 0 +_08054D6C: .4byte gUnk_03000FD0 +_08054D70: .4byte gUnk_02000080 + + thumb_func_start sub_08054D74 +sub_08054D74: @ 0x08054D74 + push {lr} + ldr r1, _08054D8C @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08054D8A + ldrb r0, [r1, #5] + adds r0, #1 + strb r0, [r1, #5] +_08054D8A: + pop {pc} + .align 2, 0 +_08054D8C: .4byte gUnk_02000080 + + thumb_func_start sub_08054D90 +sub_08054D90: @ 0x08054D90 + push {lr} + ldr r1, _08054DA4 @ =gUnk_080FEF34 + ldr r0, _08054DA8 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08054DA4: .4byte gUnk_080FEF34 +_08054DA8: .4byte gUnk_02000080 + + thumb_func_start sub_08054DAC +sub_08054DAC: @ 0x08054DAC + push {r4, lr} + ldr r4, _08054DF0 @ =gUnk_02000080 + ldr r1, [r4, #0xc] + ldrb r0, [r1, #2] + ldrb r1, [r1, #3] + bl sub_0804B0B0 + ldr r0, _08054DF4 @ =gUnk_080FEED4 + bl sub_0804ADDC + movs r0, #2 + bl sub_0805B4D0 + movs r0, #0 + bl sub_0806D0B0 + ldrb r0, [r4, #4] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + ldr r1, _08054DF8 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_08054DF0: .4byte gUnk_02000080 +_08054DF4: .4byte gUnk_080FEED4 +_08054DF8: .4byte gUnk_02000070 + + thumb_func_start nullsub_484 +nullsub_484: @ 0x08054DFC + bx lr + .align 2, 0 + + thumb_func_start sub_08054E00 +sub_08054E00: @ 0x08054E00 + push {lr} + ldr r1, _08054E14 @ =gUnk_080FEF3C + ldr r0, _08054E18 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08054E14: .4byte gUnk_080FEF3C +_08054E18: .4byte gUnk_02000080 + + thumb_func_start sub_08054E1C +sub_08054E1C: @ 0x08054E1C + push {r4, r5, lr} + ldr r5, _08054E54 @ =gUnk_02000080 + ldr r4, [r5, #0xc] + ldrb r0, [r4, #2] + ldrb r1, [r4, #3] + bl sub_0804B0B0 + ldrb r0, [r4, #2] + ldrb r1, [r4, #3] + bl sub_0804B0E8 + ldrb r0, [r5, #4] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + ldrb r0, [r5, #6] + adds r0, #1 + strb r0, [r5, #6] + ldr r1, _08054E58 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {r4, r5, pc} + .align 2, 0 +_08054E54: .4byte gUnk_02000080 +_08054E58: .4byte gUnk_02000070 + + thumb_func_start sub_08054E5C +sub_08054E5C: @ 0x08054E5C + push {r4, lr} + ldr r0, _08054E94 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08054E92 + movs r0, #0xff + bl sub_0807CC3C + cmp r0, #0 + beq _08054E92 + ldr r4, _08054E98 @ =gUnk_02000080 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + movs r0, #0xb4 + strh r0, [r4, #8] + movs r0, #6 + movs r1, #0x10 + bl sub_08050054 + ldrb r0, [r4, #4] + bl sub_080553E0 + ldrb r0, [r4, #4] + movs r1, #1 + bl sub_0801876C +_08054E92: + pop {r4, pc} + .align 2, 0 +_08054E94: .4byte gUnk_03000FD0 +_08054E98: .4byte gUnk_02000080 + + thumb_func_start sub_08054E9C +sub_08054E9C: @ 0x08054E9C + push {lr} + ldr r1, _08054EB4 @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08054EB2 + ldrb r0, [r1, #5] + adds r0, #1 + strb r0, [r1, #5] +_08054EB2: + pop {pc} + .align 2, 0 +_08054EB4: .4byte gUnk_02000080 + + thumb_func_start sub_08054EB8 +sub_08054EB8: @ 0x08054EB8 + push {r4, lr} + adds r4, r0, #0 + bl sub_0805E8D4 + adds r3, r0, #0 + cmp r3, #0 + beq _08054EF6 + movs r0, #9 + strb r0, [r3, #8] + movs r0, #0x24 + strb r0, [r3, #9] + ldr r2, _08054EF8 @ =gUnk_03000BF0 + ldrh r0, [r4, #0x2e] + ldrh r1, [r2, #6] + subs r0, r0, r1 + strh r0, [r3, #0x38] + ldrh r0, [r4, #0x32] + ldrh r1, [r2, #8] + subs r0, r0, r1 + subs r0, #0x10 + strh r0, [r3, #0x3a] + adds r1, r3, #0 + adds r1, #0x35 + movs r0, #1 + strb r0, [r1] + movs r0, #0x79 + strh r0, [r3, #0x3e] + adds r0, r3, #0 + movs r1, #6 + bl sub_0805EA2C +_08054EF6: + pop {r4, pc} + .align 2, 0 +_08054EF8: .4byte gUnk_03000BF0 + + thumb_func_start sub_08054EFC +sub_08054EFC: @ 0x08054EFC + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _08054F5C @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + subs r1, #0x40 + ldr r0, _08054F60 @ =0x00004074 + movs r2, #1 + bl sub_0800015E + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + movs r1, #0x35 + movs r2, #0 + bl sub_080A29AC + adds r1, r0, #0 + cmp r1, #0 + beq _08054F54 + ldrh r0, [r1, #0x32] + subs r0, #0x10 + strh r0, [r1, #0x32] + adds r0, r4, #0 + bl sub_0806FAD8 +_08054F54: + movs r0, #0xfd + bl sub_080A3268 + pop {r4, r5, pc} + .align 2, 0 +_08054F5C: .4byte gUnk_03000BF0 +_08054F60: .4byte 0x00004074 + + thumb_func_start sub_08054F64 +sub_08054F64: @ 0x08054F64 + push {lr} + ldrb r0, [r0, #0xb] + ldr r3, _08054F7C @ =gUnk_02033280 + ldr r2, [r3] + adds r1, r2, #0 + ands r1, r0 + cmp r1, r0 + beq _08054F80 + movs r0, #0 + strb r0, [r3, #6] + b _08054F8C + .align 2, 0 +_08054F7C: .4byte gUnk_02033280 +_08054F80: + bics r2, r1 + str r2, [r3] + ldrb r1, [r3, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r3, #7] +_08054F8C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08054F90 +sub_08054F90: @ 0x08054F90 + push {lr} + ldr r1, _08054FA4 @ =gUnk_080FF120 + ldr r0, _08054FA8 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08054FA4: .4byte gUnk_080FF120 +_08054FA8: .4byte gUnk_02000080 + + thumb_func_start sub_08054FAC +sub_08054FAC: @ 0x08054FAC + push {r4, r5, r6, lr} + ldr r6, _08055008 @ =gUnk_02000080 + ldr r5, [r6, #0xc] + ldr r1, _0805500C @ =gUnk_080FF108 + ldrb r0, [r5, #1] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl sub_0804ADDC + ldrb r0, [r5, #1] + movs r1, #0 + cmp r0, #0 + beq _08054FCA + movs r1, #3 +_08054FCA: + ldrb r0, [r6, #4] + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + ldrb r0, [r6, #6] + adds r0, #1 + movs r4, #0 + strb r0, [r6, #6] + ldr r1, _08055010 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + strh r4, [r6, #0xa] + movs r0, #0x80 + lsls r0, r0, #3 + movs r1, #0x77 + bl sub_0807CB10 + cmp r0, #0 + beq _08055004 + ldrb r0, [r5, #2] + cmp r0, #0x2f + bne _08055004 + movs r0, #1 + strh r0, [r6, #0xa] +_08055004: + pop {r4, r5, r6, pc} + .align 2, 0 +_08055008: .4byte gUnk_02000080 +_0805500C: .4byte gUnk_080FF108 +_08055010: .4byte gUnk_02000070 + + thumb_func_start sub_08055014 +sub_08055014: @ 0x08055014 + push {lr} + ldr r1, _08055030 @ =gUnk_02000080 + ldrh r0, [r1, #0xa] + cmp r0, #0 + beq _0805502C + movs r0, #0 + strh r0, [r1, #0xa] + ldr r1, _08055034 @ =0x00000407 + movs r0, #0x74 + movs r2, #1 + bl sub_0807B314 +_0805502C: + pop {pc} + .align 2, 0 +_08055030: .4byte gUnk_02000080 +_08055034: .4byte 0x00000407 + + thumb_func_start sub_08055038 +sub_08055038: @ 0x08055038 + push {lr} + ldr r1, _0805504C @ =gUnk_080FF148 + ldr r0, _08055050 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_0805504C: .4byte gUnk_080FF148 +_08055050: .4byte gUnk_02000080 + + thumb_func_start sub_08055054 +sub_08055054: @ 0x08055054 + push {r4, lr} + ldr r0, _08055080 @ =gUnk_080FF128 + bl sub_0804ADDC + ldr r4, _08055084 @ =gUnk_02000080 + ldrb r0, [r4, #4] + movs r1, #2 + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + ldr r1, _08055088 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_08055080: .4byte gUnk_080FF128 +_08055084: .4byte gUnk_02000080 +_08055088: .4byte gUnk_02000070 + + thumb_func_start sub_0805508C +sub_0805508C: @ 0x0805508C + bx lr + .align 2, 0 + + thumb_func_start sub_08055090 +sub_08055090: @ 0x08055090 + bx lr + .align 2, 0 + + thumb_func_start sub_08055094 +sub_08055094: @ 0x08055094 + push {lr} + ldr r1, _080550A8 @ =gUnk_080FF174 + ldr r0, _080550AC @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_080550A8: .4byte gUnk_080FF174 +_080550AC: .4byte gUnk_02000080 + + thumb_func_start sub_080550B0 +sub_080550B0: @ 0x080550B0 + push {r4, lr} + ldr r4, _080550E8 @ =gUnk_02000080 + ldr r1, [r4, #0xc] + ldrb r0, [r1, #2] + ldrb r1, [r1, #3] + bl sub_0804B0B0 + ldr r0, _080550EC @ =gUnk_080FF154 + bl sub_0804ADDC + ldrb r0, [r4, #4] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + ldr r1, _080550F0 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_080550E8: .4byte gUnk_02000080 +_080550EC: .4byte gUnk_080FF154 +_080550F0: .4byte gUnk_02000070 + + thumb_func_start nullsub_487 +nullsub_487: @ 0x080550F4 + bx lr + .align 2, 0 + + thumb_func_start sub_080550F8 +sub_080550F8: @ 0x080550F8 + push {lr} + ldr r1, _0805510C @ =gUnk_080FF1CC + ldr r0, _08055110 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_0805510C: .4byte gUnk_080FF1CC +_08055110: .4byte gUnk_02000080 + + thumb_func_start sub_08055114 +sub_08055114: @ 0x08055114 + push {r4, lr} + ldr r0, _08055150 @ =gUnk_080FF17C + bl sub_0804ADDC + ldr r0, _08055154 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + cmp r0, #9 + beq _0805512A + ldr r0, _08055158 @ =0x00000DB4 + bl sub_08018C58 +_0805512A: + ldr r4, _0805515C @ =gUnk_02000080 + ldrb r0, [r4, #4] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + ldr r1, _08055160 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_08055150: .4byte gUnk_080FF17C +_08055154: .4byte gUnk_02002A40 +_08055158: .4byte 0x00000DB4 +_0805515C: .4byte gUnk_02000080 +_08055160: .4byte gUnk_02000070 + + thumb_func_start nullsub_488 +nullsub_488: @ 0x08055164 + bx lr + .align 2, 0 + + thumb_func_start sub_08055168 +sub_08055168: @ 0x08055168 + push {lr} + ldr r1, _0805517C @ =gUnk_080FF1F4 + ldr r0, _08055180 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_0805517C: .4byte gUnk_080FF1F4 +_08055180: .4byte gUnk_02000080 + + thumb_func_start sub_08055184 +sub_08055184: @ 0x08055184 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + ldr r5, _0805520C @ =gUnk_02000080 + ldr r0, [r5, #0xc] + ldrb r1, [r0, #1] + movs r0, #0xf + ands r0, r1 + lsls r4, r0, #1 + adds r4, r4, r0 + lsls r4, r4, #1 + ldr r0, _08055210 @ =gUnk_080FF1D4 + adds r4, r4, r0 + movs r1, #0 + ldrsh r0, [r4, r1] + bl sub_0801D7EC + ldr r2, _08055214 @ =gUnk_03000F50 + ldrh r0, [r4, #2] + movs r6, #0 + movs r3, #0 + mov r8, r3 + strh r0, [r2, #0x2e] + ldrh r0, [r4, #4] + strh r0, [r2, #0x30] + ldr r0, _08055218 @ =0x00001E05 + strh r0, [r2, #0x2c] + adds r1, r2, #0 + adds r1, #0x66 + ldr r0, _0805521C @ =0x00003648 + strh r0, [r1] + adds r1, #2 + movs r0, #0x10 + strh r0, [r1] + ldrh r0, [r2] + movs r3, #0x80 + lsls r3, r3, #4 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + ldrb r0, [r5, #4] + movs r1, #1 + bl sub_0801876C + ldrb r0, [r5, #4] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + ldrb r0, [r5, #6] + adds r0, #1 + strb r0, [r5, #6] + strb r6, [r5, #7] + movs r0, #0x3c + strh r0, [r5, #8] + mov r0, r8 + strh r0, [r5, #0xa] + ldr r1, _08055220 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, pc} + .align 2, 0 +_0805520C: .4byte gUnk_02000080 +_08055210: .4byte gUnk_080FF1D4 +_08055214: .4byte gUnk_03000F50 +_08055218: .4byte 0x00001E05 +_0805521C: .4byte 0x00003648 +_08055220: .4byte gUnk_02000070 + + thumb_func_start sub_08055224 +sub_08055224: @ 0x08055224 + push {lr} + ldr r0, _08055244 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08055240 + movs r0, #0xff + bl sub_0807CC3C + cmp r0, #0 + beq _08055240 + ldr r1, _08055248 @ =gUnk_02000080 + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] +_08055240: + pop {pc} + .align 2, 0 +_08055244: .4byte gUnk_03000FD0 +_08055248: .4byte gUnk_02000080 + + thumb_func_start sub_0805524C +sub_0805524C: @ 0x0805524C + push {r4, lr} + ldr r3, _08055270 @ =gUnk_02000080 + ldrb r0, [r3, #7] + cmp r0, #0 + bne _08055274 + ldrh r0, [r3, #8] + subs r0, #1 + strh r0, [r3, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080552D6 + ldrb r0, [r3, #7] + adds r0, #1 + strb r0, [r3, #7] + movs r0, #0xf6 + bl sub_080A3268 + b _080552D6 + .align 2, 0 +_08055270: .4byte gUnk_02000080 +_08055274: + ldr r0, _080552A4 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _080552D6 + ldr r4, _080552A8 @ =gUnk_080FF204 + ldrh r2, [r3, #0xa] + lsls r0, r2, #1 + adds r0, r0, r4 + ldrh r1, [r0] + ldr r0, _080552AC @ =0x0000FFFF + cmp r1, r0 + beq _080552B4 + ldr r1, _080552B0 @ =gUnk_03000F50 + adds r0, r2, #1 + strh r0, [r3, #0xa] + lsls r0, r2, #1 + adds r0, r0, r4 + ldrh r0, [r0] + adds r1, #0x68 + strh r0, [r1] + b _080552D6 + .align 2, 0 +_080552A4: .4byte gUnk_030010A0 +_080552A8: .4byte gUnk_080FF204 +_080552AC: .4byte 0x0000FFFF +_080552B0: .4byte gUnk_03000F50 +_080552B4: + ldr r1, _080552D8 @ =gUnk_03000F50 + ldrh r2, [r1] + ldr r0, _080552DC @ =0x0000F7FF + ands r0, r2 + strh r0, [r1] + adds r1, #0x68 + movs r0, #0x80 + lsls r0, r0, #5 + strh r0, [r1] + movs r0, #0x78 + strh r0, [r3, #8] + ldrb r0, [r3, #6] + adds r0, #1 + strb r0, [r3, #6] + movs r0, #0x73 + bl sub_080A3268 +_080552D6: + pop {r4, pc} + .align 2, 0 +_080552D8: .4byte gUnk_03000F50 +_080552DC: .4byte 0x0000F7FF + + thumb_func_start sub_080552E0 +sub_080552E0: @ 0x080552E0 + push {lr} + ldr r1, _080552F8 @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080552F6 + ldrb r0, [r1, #5] + adds r0, #1 + strb r0, [r1, #5] +_080552F6: + pop {pc} + .align 2, 0 +_080552F8: .4byte gUnk_02000080 + + thumb_func_start sub_080552FC +sub_080552FC: @ 0x080552FC + push {lr} + ldr r1, _08055310 @ =gUnk_080FF228 + ldr r0, _08055314 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08055310: .4byte gUnk_080FF228 +_08055314: .4byte gUnk_02000080 + + thumb_func_start sub_08055318 +sub_08055318: @ 0x08055318 + push {r4, lr} + ldr r4, _08055348 @ =gUnk_02000080 + ldrb r0, [r4, #4] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + ldrb r0, [r4, #4] + movs r1, #0 + bl sub_0801876C + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + ldr r1, _0805534C @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_08055348: .4byte gUnk_02000080 +_0805534C: .4byte gUnk_02000070 + + thumb_func_start sub_08055350 +sub_08055350: @ 0x08055350 + push {lr} + ldr r0, _08055378 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08055374 + movs r0, #0xff + bl sub_0807CC3C + cmp r0, #0 + beq _08055374 + movs r0, #7 + movs r1, #0x10 + bl sub_08050054 + ldr r1, _0805537C @ =gUnk_02000080 + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] +_08055374: + pop {pc} + .align 2, 0 +_08055378: .4byte gUnk_03000FD0 +_0805537C: .4byte gUnk_02000080 + + thumb_func_start sub_08055380 +sub_08055380: @ 0x08055380 + push {r4, lr} + ldr r0, _080553B0 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080553AC + ldr r4, _080553B4 @ =gUnk_02000080 + ldrb r0, [r4, #4] + movs r1, #0 + bl sub_08054974 + movs r0, #6 + movs r1, #0x10 + bl sub_08050054 + movs r0, #0x73 + bl sub_080A3268 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + movs r0, #0x78 + strh r0, [r4, #8] +_080553AC: + pop {r4, pc} + .align 2, 0 +_080553B0: .4byte gUnk_03000FD0 +_080553B4: .4byte gUnk_02000080 + + thumb_func_start sub_080553B8 +sub_080553B8: @ 0x080553B8 + push {lr} + ldr r0, _080553D8 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080553D6 + ldr r1, _080553DC @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080553D6 + ldrb r0, [r1, #5] + adds r0, #1 + strb r0, [r1, #5] +_080553D6: + pop {pc} + .align 2, 0 +_080553D8: .4byte gUnk_03000FD0 +_080553DC: .4byte gUnk_02000080 + + thumb_func_start sub_080553E0 +sub_080553E0: @ 0x080553E0 + push {r4, lr} + ldr r0, _0805540C @ =gUnk_02000080 + ldr r4, [r0, #0xc] + movs r0, #0xf + movs r1, #0x43 + movs r2, #0 + bl sub_080A2960 + adds r2, r0, #0 + cmp r2, #0 + beq _08055408 + ldr r0, _08055410 @ =gUnk_03000BF0 + ldrh r1, [r0, #6] + ldrh r3, [r4, #8] + adds r1, r1, r3 + strh r1, [r2, #0x2e] + ldrh r0, [r0, #8] + ldrh r4, [r4, #0xa] + adds r0, r0, r4 + strh r0, [r2, #0x32] +_08055408: + pop {r4, pc} + .align 2, 0 +_0805540C: .4byte gUnk_02000080 +_08055410: .4byte gUnk_03000BF0 + + thumb_func_start sub_08055414 +sub_08055414: @ 0x08055414 + push {lr} + ldr r1, _08055428 @ =gUnk_080FF238 + ldr r0, _0805542C @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08055428: .4byte gUnk_080FF238 +_0805542C: .4byte gUnk_02000080 + + thumb_func_start sub_08055430 +sub_08055430: @ 0x08055430 + push {r4, lr} + ldr r4, _08055460 @ =gUnk_02000080 + ldr r1, [r4, #0xc] + ldrb r0, [r1, #2] + ldrb r1, [r1, #3] + bl sub_0804B0E8 + ldrb r0, [r4, #4] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + ldr r1, _08055464 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_08055460: .4byte gUnk_02000080 +_08055464: .4byte gUnk_02000070 + + thumb_func_start sub_08055468 +sub_08055468: @ 0x08055468 + push {lr} + ldr r0, _08055490 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _0805548C + movs r0, #0xff + bl sub_0807CC3C + cmp r0, #0 + beq _0805548C + movs r0, #7 + movs r1, #0x10 + bl sub_08050054 + ldr r1, _08055494 @ =gUnk_02000080 + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] +_0805548C: + pop {pc} + .align 2, 0 +_08055490: .4byte gUnk_03000FD0 +_08055494: .4byte gUnk_02000080 + + thumb_func_start sub_08055498 +sub_08055498: @ 0x08055498 + push {r4, lr} + ldr r0, _080554CC @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080554CA + ldr r4, _080554D0 @ =gUnk_02000080 + ldrb r0, [r4, #4] + movs r1, #1 + bl sub_0801876C + ldrb r0, [r4, #4] + bl sub_080553E0 + movs r0, #6 + movs r1, #0x10 + bl sub_08050054 + movs r0, #0x73 + bl sub_080A3268 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + movs r0, #0x78 + strh r0, [r4, #8] +_080554CA: + pop {r4, pc} + .align 2, 0 +_080554CC: .4byte gUnk_03000FD0 +_080554D0: .4byte gUnk_02000080 + + thumb_func_start sub_080554D4 +sub_080554D4: @ 0x080554D4 + push {lr} + ldr r0, _080554F4 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080554F2 + ldr r1, _080554F8 @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080554F2 + ldrb r0, [r1, #5] + adds r0, #1 + strb r0, [r1, #5] +_080554F2: + pop {pc} + .align 2, 0 +_080554F4: .4byte gUnk_03000FD0 +_080554F8: .4byte gUnk_02000080 + + thumb_func_start sub_080554FC +sub_080554FC: @ 0x080554FC + push {lr} + ldr r1, _08055510 @ =gUnk_080FF248 + ldr r0, _08055514 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08055510: .4byte gUnk_080FF248 +_08055514: .4byte gUnk_02000080 + + thumb_func_start sub_08055518 +sub_08055518: @ 0x08055518 + push {r4, lr} + ldr r4, _08055540 @ =gUnk_02000080 + ldrb r0, [r4, #4] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + ldr r1, _08055544 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_08055540: .4byte gUnk_02000080 +_08055544: .4byte gUnk_02000070 + + thumb_func_start sub_08055548 +sub_08055548: @ 0x08055548 + push {r4, lr} + ldr r0, _08055578 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08055576 + movs r0, #0xff + bl sub_0807CC3C + cmp r0, #0 + beq _08055576 + ldr r4, _0805557C @ =gUnk_02000080 + ldrb r0, [r4, #4] + movs r1, #1 + bl sub_0801876C + ldrb r0, [r4, #4] + bl sub_080553E0 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + movs r0, #0xb4 + strh r0, [r4, #8] +_08055576: + pop {r4, pc} + .align 2, 0 +_08055578: .4byte gUnk_03000FD0 +_0805557C: .4byte gUnk_02000080 + + thumb_func_start sub_08055580 +sub_08055580: @ 0x08055580 + push {lr} + ldr r1, _08055598 @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08055596 + ldrb r0, [r1, #5] + adds r0, #1 + strb r0, [r1, #5] +_08055596: + pop {pc} + .align 2, 0 +_08055598: .4byte gUnk_02000080 + + thumb_func_start sub_0805559C +sub_0805559C: @ 0x0805559C + push {lr} + ldr r1, _080555B0 @ =gUnk_080FF254 + ldr r0, _080555B4 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_080555B0: .4byte gUnk_080FF254 +_080555B4: .4byte gUnk_02000080 + + thumb_func_start sub_080555B8 +sub_080555B8: @ 0x080555B8 + push {r4, r5, lr} + ldr r5, _08055600 @ =gUnk_02000080 + ldr r4, [r5, #0xc] + ldr r1, _08055604 @ =gUnk_0811E454 + ldrb r0, [r4, #0x11] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + ldrh r1, [r4, #0x12] + bl sub_0807CC9C + ldrb r0, [r4, #2] + ldrb r1, [r4, #3] + bl sub_0804B0E8 + movs r0, #0x11 + bl sub_0801D7EC + ldrb r0, [r5, #4] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + ldrb r0, [r5, #6] + adds r0, #1 + strb r0, [r5, #6] + ldr r1, _08055608 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {r4, r5, pc} + .align 2, 0 +_08055600: .4byte gUnk_02000080 +_08055604: .4byte gUnk_0811E454 +_08055608: .4byte gUnk_02000070 + + thumb_func_start sub_0805560C +sub_0805560C: @ 0x0805560C + push {lr} + ldr r0, _0805562C @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08055628 + movs r0, #0xff + bl sub_0807CC3C + cmp r0, #0 + beq _08055628 + ldr r1, _08055630 @ =gUnk_02000080 + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] +_08055628: + pop {pc} + .align 2, 0 +_0805562C: .4byte gUnk_03000FD0 +_08055630: .4byte gUnk_02000080 + + thumb_func_start sub_08055634 +sub_08055634: @ 0x08055634 + push {r4, r5, lr} + ldr r4, _0805566C @ =gUnk_02000080 + ldr r5, [r4, #0xc] + movs r0, #0x2c + movs r1, #0 + movs r2, #0 + bl sub_080A2960 + adds r2, r0, #0 + cmp r2, #0 + beq _0805565C + ldr r0, _08055670 @ =gUnk_03000BF0 + ldrh r1, [r5, #8] + ldrh r3, [r0, #6] + adds r1, r1, r3 + strh r1, [r2, #0x2e] + ldrh r1, [r5, #0xa] + ldrh r0, [r0, #8] + adds r1, r1, r0 + strh r1, [r2, #0x32] +_0805565C: + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + movs r0, #0xc3 + lsls r0, r0, #1 + strh r0, [r4, #8] + pop {r4, r5, pc} + .align 2, 0 +_0805566C: .4byte gUnk_02000080 +_08055670: .4byte gUnk_03000BF0 + + thumb_func_start sub_08055674 +sub_08055674: @ 0x08055674 + push {lr} + ldr r1, _0805568C @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0805568A + ldrb r0, [r1, #5] + adds r0, #1 + strb r0, [r1, #5] +_0805568A: + pop {pc} + .align 2, 0 +_0805568C: .4byte gUnk_02000080 + + thumb_func_start sub_08055690 +sub_08055690: @ 0x08055690 + push {lr} + ldr r1, _080556A4 @ =gUnk_080FF284 + ldr r0, _080556A8 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_080556A4: .4byte gUnk_080FF284 +_080556A8: .4byte gUnk_02000080 + + thumb_func_start sub_080556AC +sub_080556AC: @ 0x080556AC + push {r4, lr} + ldr r4, _080556E4 @ =gUnk_02000080 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + ldr r1, _080556E8 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + ldr r1, [r4, #0xc] + ldrb r0, [r1, #2] + ldrb r1, [r1, #3] + bl sub_0804B0B0 + ldr r0, _080556EC @ =gUnk_080FF264 + bl sub_0804ADDC + ldrb r0, [r4, #4] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_080556E4: .4byte gUnk_02000080 +_080556E8: .4byte gUnk_02000070 +_080556EC: .4byte gUnk_080FF264 + + thumb_func_start nullsub_489 +nullsub_489: @ 0x080556F0 + bx lr + .align 2, 0 + + thumb_func_start sub_080556F4 +sub_080556F4: @ 0x080556F4 + push {lr} + ldr r1, _08055708 @ =gUnk_080FF28C + ldr r0, _0805570C @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08055708: .4byte gUnk_080FF28C +_0805570C: .4byte gUnk_02000080 + + thumb_func_start sub_08055710 +sub_08055710: @ 0x08055710 + push {r4, lr} + ldr r4, _0805575C @ =gUnk_02000080 + ldr r1, [r4, #0xc] + ldrb r0, [r1, #2] + ldrb r1, [r1, #3] + bl sub_0804B0B0 + ldr r0, _08055760 @ =gUnk_080FEE48 + bl sub_0804ADF8 + adds r1, r0, #0 + cmp r1, #0 + beq _08055734 + movs r0, #2 + strb r0, [r1, #0xb] + adds r1, #0x86 + ldr r0, _08055764 @ =0x000080FF + strh r0, [r1] +_08055734: + ldrb r0, [r4, #4] + bl sub_08054A14 + ldrb r0, [r4, #4] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + ldr r1, _08055768 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_0805575C: .4byte gUnk_02000080 +_08055760: .4byte gUnk_080FEE48 +_08055764: .4byte 0x000080FF +_08055768: .4byte gUnk_02000070 + + thumb_func_start sub_0805576C +sub_0805576C: @ 0x0805576C + push {lr} + ldr r0, _08055790 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _0805578C + movs r0, #0xff + bl sub_0807CC3C + cmp r0, #0 + beq _0805578C + ldr r0, _08055794 @ =gUnk_02000080 + ldrb r1, [r0, #6] + adds r1, #1 + strb r1, [r0, #6] + movs r1, #0x78 + strh r1, [r0, #8] +_0805578C: + pop {pc} + .align 2, 0 +_08055790: .4byte gUnk_03000FD0 +_08055794: .4byte gUnk_02000080 + + thumb_func_start sub_08055798 +sub_08055798: @ 0x08055798 + push {lr} + ldr r1, _080557B0 @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080557AE + ldrb r0, [r1, #5] + adds r0, #1 + strb r0, [r1, #5] +_080557AE: + pop {pc} + .align 2, 0 +_080557B0: .4byte gUnk_02000080 + + thumb_func_start sub_080557B4 +sub_080557B4: @ 0x080557B4 + push {lr} + ldr r1, _080557C8 @ =gUnk_080FF2B8 + ldr r0, _080557CC @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_080557C8: .4byte gUnk_080FF2B8 +_080557CC: .4byte gUnk_02000080 + + thumb_func_start sub_080557D0 +sub_080557D0: @ 0x080557D0 + push {r4, lr} + ldr r4, _08055808 @ =gUnk_02000080 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + ldr r1, _0805580C @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + ldr r1, [r4, #0xc] + ldrb r0, [r1, #2] + ldrb r1, [r1, #3] + bl sub_0804B0B0 + ldr r0, _08055810 @ =gUnk_080FF298 + bl sub_0804ADDC + ldrb r0, [r4, #4] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_08055808: .4byte gUnk_02000080 +_0805580C: .4byte gUnk_02000070 +_08055810: .4byte gUnk_080FF298 + + thumb_func_start nullsub_490 +nullsub_490: @ 0x08055814 + bx lr + .align 2, 0 + + thumb_func_start sub_08055818 +sub_08055818: @ 0x08055818 + push {lr} + ldr r1, _0805582C @ =gUnk_080FF300 + ldr r0, _08055830 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_0805582C: .4byte gUnk_080FF300 +_08055830: .4byte gUnk_02000080 + + thumb_func_start sub_08055834 +sub_08055834: @ 0x08055834 + push {r4, lr} + ldr r0, _08055870 @ =gUnk_080FF2C0 + bl sub_0804ADDC + ldr r0, _08055874 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + cmp r0, #9 + beq _0805584A + ldr r0, _08055878 @ =0x00000DB4 + bl sub_08018C58 +_0805584A: + ldr r4, _0805587C @ =gUnk_02000080 + ldrb r0, [r4, #4] + movs r1, #1 + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + ldr r1, _08055880 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_08055870: .4byte gUnk_080FF2C0 +_08055874: .4byte gUnk_02002A40 +_08055878: .4byte 0x00000DB4 +_0805587C: .4byte gUnk_02000080 +_08055880: .4byte gUnk_02000070 + + thumb_func_start nullsub_491 +nullsub_491: @ 0x08055884 + bx lr + .align 2, 0 + + thumb_func_start sub_08055888 +sub_08055888: @ 0x08055888 + push {lr} + ldr r1, _0805589C @ =gUnk_080FF328 + ldr r0, _080558A0 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_0805589C: .4byte gUnk_080FF328 +_080558A0: .4byte gUnk_02000080 + + thumb_func_start sub_080558A4 +sub_080558A4: @ 0x080558A4 + push {r4, lr} + ldr r4, _080558DC @ =gUnk_02000080 + ldr r1, [r4, #0xc] + ldrb r0, [r1, #2] + ldrb r1, [r1, #3] + bl sub_0804B0B0 + ldr r0, _080558E0 @ =gUnk_080FF308 + bl sub_0804ADDC + ldrb r0, [r4, #4] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + ldr r1, _080558E4 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_080558DC: .4byte gUnk_02000080 +_080558E0: .4byte gUnk_080FF308 +_080558E4: .4byte gUnk_02000070 + + thumb_func_start nullsub_492 +nullsub_492: @ 0x080558E8 + bx lr + .align 2, 0 + + thumb_func_start sub_080558EC +sub_080558EC: @ 0x080558EC + push {lr} + ldr r1, _08055900 @ =gUnk_080FF330 + ldr r0, _08055904 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08055900: .4byte gUnk_080FF330 +_08055904: .4byte gUnk_02000080 + + thumb_func_start sub_08055908 +sub_08055908: @ 0x08055908 + push {r4, r5, lr} + ldr r5, _08055940 @ =gUnk_02000080 + ldr r4, [r5, #0xc] + ldrb r0, [r4, #2] + ldrb r1, [r4, #3] + bl sub_0804B0B0 + ldrb r0, [r4, #2] + ldrb r1, [r4, #3] + bl sub_0804B0E8 + ldrb r0, [r5, #4] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + ldrb r0, [r5, #6] + adds r0, #1 + strb r0, [r5, #6] + ldr r1, _08055944 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {r4, r5, pc} + .align 2, 0 +_08055940: .4byte gUnk_02000080 +_08055944: .4byte gUnk_02000070 + + thumb_func_start sub_08055948 +sub_08055948: @ 0x08055948 + push {lr} + ldr r0, _08055970 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _0805596C + movs r0, #0xff + bl sub_0807CC3C + cmp r0, #0 + beq _0805596C + bl sub_08055994 + ldr r0, _08055974 @ =gUnk_02000080 + ldrb r1, [r0, #6] + adds r1, #1 + strb r1, [r0, #6] + movs r1, #0x78 + strh r1, [r0, #8] +_0805596C: + pop {pc} + .align 2, 0 +_08055970: .4byte gUnk_03000FD0 +_08055974: .4byte gUnk_02000080 + + thumb_func_start sub_08055978 +sub_08055978: @ 0x08055978 + push {lr} + ldr r1, _08055990 @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0805598E + ldrb r0, [r1, #5] + adds r0, #1 + strb r0, [r1, #5] +_0805598E: + pop {pc} + .align 2, 0 +_08055990: .4byte gUnk_02000080 + + thumb_func_start sub_08055994 +sub_08055994: @ 0x08055994 + push {r4, lr} + ldr r4, _080559D8 @ =gUnk_02000080 + ldrb r0, [r4, #4] + lsls r0, r0, #3 + ldr r1, _080559DC @ =gUnk_080FEAC8 + adds r0, r0, r1 + ldrb r1, [r0, #6] + movs r0, #1 + ands r0, r1 + movs r3, #1 + cmp r0, #0 + beq _080559AE + movs r3, #2 +_080559AE: + ldr r0, [r4, #0xc] + ldrh r1, [r0, #8] + lsrs r1, r1, #4 + movs r2, #0x3f + ands r1, r2 + ldrh r0, [r0, #0xa] + lsrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r1, r0 + movs r0, #0x73 + adds r2, r3, #0 + bl sub_0807B314 + ldrb r0, [r4, #4] + bl sub_080553E0 + movs r0, #0x73 + bl sub_080A3268 + pop {r4, pc} + .align 2, 0 +_080559D8: .4byte gUnk_02000080 +_080559DC: .4byte gUnk_080FEAC8 + + thumb_func_start sub_080559E0 +sub_080559E0: @ 0x080559E0 + push {lr} + ldr r1, _080559F4 @ =gUnk_080FF35C + ldr r0, _080559F8 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_080559F4: .4byte gUnk_080FF35C +_080559F8: .4byte gUnk_02000080 + + thumb_func_start sub_080559FC +sub_080559FC: @ 0x080559FC + push {r4, lr} + ldr r4, _08055A30 @ =gUnk_02000080 + ldr r0, [r4, #0xc] + ldrb r0, [r0, #1] + cmp r0, #0 + beq _08055A0E + ldr r0, _08055A34 @ =gUnk_080FF33C + bl sub_0804ADDC +_08055A0E: + ldrb r0, [r4, #4] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + ldr r1, _08055A38 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_08055A30: .4byte gUnk_02000080 +_08055A34: .4byte gUnk_080FF33C +_08055A38: .4byte gUnk_02000070 + + thumb_func_start sub_08055A3C +sub_08055A3C: @ 0x08055A3C + push {lr} + ldr r0, _08055A64 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08055A60 + movs r0, #0xff + bl sub_0807CC3C + cmp r0, #0 + beq _08055A60 + movs r0, #7 + movs r1, #0x10 + bl sub_08050054 + ldr r1, _08055A68 @ =gUnk_02000080 + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] +_08055A60: + pop {pc} + .align 2, 0 +_08055A64: .4byte gUnk_03000FD0 +_08055A68: .4byte gUnk_02000080 + + thumb_func_start sub_08055A6C +sub_08055A6C: @ 0x08055A6C + push {r4, lr} + ldr r0, _08055AA0 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08055A9E + ldr r4, _08055AA4 @ =gUnk_02000080 + ldrb r0, [r4, #4] + movs r1, #1 + bl sub_0801876C + ldrb r0, [r4, #4] + bl sub_080553E0 + movs r0, #6 + movs r1, #0x10 + bl sub_08050054 + movs r0, #0x73 + bl sub_080A3268 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + movs r0, #0x78 + strh r0, [r4, #8] +_08055A9E: + pop {r4, pc} + .align 2, 0 +_08055AA0: .4byte gUnk_03000FD0 +_08055AA4: .4byte gUnk_02000080 + + thumb_func_start sub_08055AA8 +sub_08055AA8: @ 0x08055AA8 + push {lr} + ldr r0, _08055AC8 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08055AC6 + ldr r1, _08055ACC @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08055AC6 + ldrb r0, [r1, #5] + adds r0, #1 + strb r0, [r1, #5] +_08055AC6: + pop {pc} + .align 2, 0 +_08055AC8: .4byte gUnk_03000FD0 +_08055ACC: .4byte gUnk_02000080 + + thumb_func_start sub_08055AD0 +sub_08055AD0: @ 0x08055AD0 + push {lr} + ldr r1, _08055AE4 @ =gUnk_080FF36C + ldr r0, _08055AE8 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08055AE4: .4byte gUnk_080FF36C +_08055AE8: .4byte gUnk_02000080 + + thumb_func_start sub_08055AEC +sub_08055AEC: @ 0x08055AEC + push {r4, lr} + ldr r4, _08055B2C @ =gUnk_02000080 + ldrb r0, [r4, #4] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + ldr r0, [r4, #0xc] + ldrb r0, [r0, #1] + lsls r0, r0, #4 + ldr r1, _08055B30 @ =gUnk_080FED18 + adds r0, r0, r1 + bl sub_0804ADF8 + adds r1, r0, #0 + cmp r1, #0 + beq _08055B14 + movs r0, #1 + strb r0, [r1, #0xb] +_08055B14: + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + ldr r1, _08055B34 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_08055B2C: .4byte gUnk_02000080 +_08055B30: .4byte gUnk_080FED18 +_08055B34: .4byte gUnk_02000070 + + thumb_func_start sub_08055B38 +sub_08055B38: @ 0x08055B38 + push {lr} + ldr r0, _08055B4C @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08055B48 + ldr r1, _08055B50 @ =gUnk_02000080 + movs r0, #0x78 + strh r0, [r1, #8] +_08055B48: + pop {pc} + .align 2, 0 +_08055B4C: .4byte gUnk_03000FD0 +_08055B50: .4byte gUnk_02000080 + + thumb_func_start sub_08055B54 +sub_08055B54: @ 0x08055B54 + push {lr} + ldr r1, _08055B6C @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08055B6A + ldrb r0, [r1, #5] + adds r0, #1 + strb r0, [r1, #5] +_08055B6A: + pop {pc} + .align 2, 0 +_08055B6C: .4byte gUnk_02000080 + + thumb_func_start sub_08055B70 +sub_08055B70: @ 0x08055B70 + push {r4, r5, r6, lr} + adds r0, r1, #0 + adds r5, r2, #0 + adds r6, r3, #0 + ldr r1, _08055BA4 @ =gUnk_02000080 + ldr r4, [r1, #0xc] + lsls r0, r0, #4 + ldr r1, _08055BA8 @ =gUnk_080FF378 + adds r0, r0, r1 + bl sub_0804ADF8 + adds r3, r0, #0 + cmp r3, #0 + beq _08055BA2 + ldrh r0, [r4, #8] + ldr r1, _08055BAC @ =gUnk_03000BF0 + adds r0, r0, r5 + ldrh r2, [r1, #6] + adds r0, r0, r2 + strh r0, [r3, #0x2e] + ldrh r0, [r4, #0xa] + adds r0, r0, r6 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r3, #0x32] +_08055BA2: + pop {r4, r5, r6, pc} + .align 2, 0 +_08055BA4: .4byte gUnk_02000080 +_08055BA8: .4byte gUnk_080FF378 +_08055BAC: .4byte gUnk_03000BF0 + + thumb_func_start sub_08055BB0 +sub_08055BB0: @ 0x08055BB0 + push {lr} + ldr r1, _08055BC4 @ =gUnk_080FF3C8 + ldr r0, _08055BC8 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08055BC4: .4byte gUnk_080FF3C8 +_08055BC8: .4byte gUnk_02000080 + + thumb_func_start sub_08055BCC +sub_08055BCC: @ 0x08055BCC + push {r4, lr} + ldr r4, _08055BFC @ =gUnk_02000080 + ldrb r0, [r4, #4] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + ldrb r0, [r4, #4] + movs r1, #0 + bl sub_0801876C + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + ldr r1, _08055C00 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_08055BFC: .4byte gUnk_02000080 +_08055C00: .4byte gUnk_02000070 + + thumb_func_start sub_08055C04 +sub_08055C04: @ 0x08055C04 + push {lr} + ldr r0, _08055C2C @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08055C28 + movs r0, #0xff + bl sub_0807CC3C + cmp r0, #0 + beq _08055C28 + movs r0, #7 + movs r1, #0x10 + bl sub_08050054 + ldr r1, _08055C30 @ =gUnk_02000080 + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] +_08055C28: + pop {pc} + .align 2, 0 +_08055C2C: .4byte gUnk_03000FD0 +_08055C30: .4byte gUnk_02000080 + + thumb_func_start sub_08055C34 +sub_08055C34: @ 0x08055C34 + push {r4, r5, lr} + sub sp, #4 + ldr r0, _08055C64 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08055CA6 + ldr r5, _08055C68 @ =gUnk_02000080 + ldr r4, [r5, #0xc] + ldrb r0, [r5, #4] + bl sub_080553E0 + ldrb r1, [r4, #1] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _08055C6C + ldrb r0, [r5, #4] + movs r1, #0 + bl sub_08054974 + b _08055C8C + .align 2, 0 +_08055C64: .4byte gUnk_03000FD0 +_08055C68: .4byte gUnk_02000080 +_08055C6C: + str r0, [sp] + movs r0, #6 + movs r1, #0x9e + movs r2, #6 + movs r3, #0 + bl sub_0805EB2C + adds r4, r0, #0 + cmp r4, #0 + beq _08055C8C + ldr r0, [r4, #0x54] + bl sub_0805E7BC + adds r0, r4, #0 + bl sub_0805E7BC +_08055C8C: + movs r0, #6 + movs r1, #0x10 + bl sub_08050054 + movs r0, #0x73 + bl sub_080A3268 + ldr r0, _08055CAC @ =gUnk_02000080 + ldrb r1, [r0, #6] + adds r1, #1 + strb r1, [r0, #6] + movs r1, #0x78 + strh r1, [r0, #8] +_08055CA6: + add sp, #4 + pop {r4, r5, pc} + .align 2, 0 +_08055CAC: .4byte gUnk_02000080 + + thumb_func_start sub_08055CB0 +sub_08055CB0: @ 0x08055CB0 + push {lr} + ldr r0, _08055CD0 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08055CCE + ldr r1, _08055CD4 @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08055CCE + ldrb r0, [r1, #5] + adds r0, #1 + strb r0, [r1, #5] +_08055CCE: + pop {pc} + .align 2, 0 +_08055CD0: .4byte gUnk_03000FD0 +_08055CD4: .4byte gUnk_02000080 + + thumb_func_start sub_08055CD8 +sub_08055CD8: @ 0x08055CD8 + push {lr} + ldr r1, _08055CEC @ =gUnk_080FF3E8 + ldr r0, _08055CF0 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08055CEC: .4byte gUnk_080FF3E8 +_08055CF0: .4byte gUnk_02000080 + + thumb_func_start sub_08055CF4 +sub_08055CF4: @ 0x08055CF4 + push {r4, lr} + ldr r4, _08055D24 @ =gUnk_02000080 + ldr r1, [r4, #0xc] + ldrb r0, [r1, #2] + ldrb r1, [r1, #3] + bl sub_0804B0B0 + ldrb r0, [r4, #4] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + ldr r1, _08055D28 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_08055D24: .4byte gUnk_02000080 +_08055D28: .4byte gUnk_02000070 + + thumb_func_start sub_08055D2C +sub_08055D2C: @ 0x08055D2C + push {r4, lr} + ldr r0, _08055D5C @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08055D5A + movs r0, #0xff + bl sub_0807CC3C + cmp r0, #0 + beq _08055D5A + ldr r4, _08055D60 @ =gUnk_02000080 + ldrb r0, [r4, #4] + movs r1, #1 + bl sub_0801876C + ldrb r0, [r4, #4] + bl sub_080553E0 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + movs r0, #0x78 + strh r0, [r4, #8] +_08055D5A: + pop {r4, pc} + .align 2, 0 +_08055D5C: .4byte gUnk_03000FD0 +_08055D60: .4byte gUnk_02000080 + + thumb_func_start sub_08055D64 +sub_08055D64: @ 0x08055D64 + push {lr} + ldr r1, _08055D7C @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08055D7A + ldrb r0, [r1, #5] + adds r0, #1 + strb r0, [r1, #5] +_08055D7A: + pop {pc} + .align 2, 0 +_08055D7C: .4byte gUnk_02000080 + + thumb_func_start sub_08055D80 +sub_08055D80: @ 0x08055D80 + push {lr} + ldr r1, _08055D94 @ =gUnk_080FF3F4 + ldr r0, _08055D98 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08055D94: .4byte gUnk_080FF3F4 +_08055D98: .4byte gUnk_02000080 + + thumb_func_start sub_08055D9C +sub_08055D9C: @ 0x08055D9C + push {lr} + ldr r1, _08055DB8 @ =gUnk_02000080 + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] + ldr r1, _08055DBC @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {pc} + .align 2, 0 +_08055DB8: .4byte gUnk_02000080 +_08055DBC: .4byte gUnk_02000070 + + thumb_func_start sub_08055DC0 +sub_08055DC0: @ 0x08055DC0 + push {lr} + ldr r0, _08055DE0 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08055DDC + ldr r0, _08055DE4 @ =0x00000A01 + bl sub_08056378 + ldr r1, _08055DE8 @ =gUnk_02000080 + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] + movs r0, #0x78 + strh r0, [r1, #8] +_08055DDC: + pop {pc} + .align 2, 0 +_08055DE0: .4byte gUnk_03000FD0 +_08055DE4: .4byte 0x00000A01 +_08055DE8: .4byte gUnk_02000080 + + thumb_func_start sub_08055DEC +sub_08055DEC: @ 0x08055DEC + push {lr} + ldr r1, _08055E04 @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08055E02 + ldrb r0, [r1, #5] + adds r0, #1 + strb r0, [r1, #5] +_08055E02: + pop {pc} + .align 2, 0 +_08055E04: .4byte gUnk_02000080 + + thumb_func_start sub_08055E08 +sub_08055E08: @ 0x08055E08 + push {lr} + ldr r1, _08055E1C @ =gUnk_080FF420 + ldr r0, _08055E20 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08055E1C: .4byte gUnk_080FF420 +_08055E20: .4byte gUnk_02000080 + + thumb_func_start sub_08055E24 +sub_08055E24: @ 0x08055E24 + push {r4, lr} + ldr r4, _08055E5C @ =gUnk_02000080 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + ldr r1, _08055E60 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + ldr r1, [r4, #0xc] + ldrb r0, [r1, #2] + ldrb r1, [r1, #3] + bl sub_0804B0B0 + ldr r0, _08055E64 @ =gUnk_080FF400 + bl sub_0804ADDC + ldrb r0, [r4, #4] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_08055E5C: .4byte gUnk_02000080 +_08055E60: .4byte gUnk_02000070 +_08055E64: .4byte gUnk_080FF400 + + thumb_func_start nullsub_493 +nullsub_493: @ 0x08055E68 + bx lr + .align 2, 0 + + thumb_func_start sub_08055E6C +sub_08055E6C: @ 0x08055E6C + push {r4, r5, r6, lr} + bl sub_08055F70 + bl sub_080A3204 + bl sub_0805616C + bl sub_0807CE90 + bl sub_080560B8 + bl sub_08056208 + ldr r1, _08055EEC @ =gUnk_02000010 + movs r0, #0xc1 + strb r0, [r1, #4] + bl sub_0804FFE4 + ldr r1, _08055EF0 @ =0x040000D4 + movs r0, #0xa0 + lsls r0, r0, #0x13 + str r0, [r1] + ldr r0, _08055EF4 @ =gUnk_020176A0 + str r0, [r1, #4] + ldr r0, _08055EF8 @ =0x84000080 + str r0, [r1, #8] + ldr r0, [r1, #8] + movs r0, #1 + bl sub_0804FF84 + bl sub_08056418 + bl sub_080ADD30 + ldr r1, _08055EFC @ =gUnk_03001150 + ldr r0, _08055F00 @ =0x01234567 + str r0, [r1] + ldr r4, _08055F04 @ =gUnk_03001000 + adds r0, r4, #0 + movs r1, #0x10 + bl sub_0801D630 + movs r0, #0 + bl sub_08056010 + adds r6, r4, #0 +_08055EC8: + bl sub_0801D6C0 + bl sub_08055FF4 + cmp r0, #0 + beq _08055ED8 + bl sub_080560A8 +_08055ED8: + ldrb r0, [r6, #1] + ldr r1, _08055F04 @ =gUnk_03001000 + cmp r0, #0 + beq _08055F08 + cmp r0, #1 + bne _08055F08 + bl sub_08056260 + b _08055F64 + .align 2, 0 +_08055EEC: .4byte gUnk_02000010 +_08055EF0: .4byte 0x040000D4 +_08055EF4: .4byte gUnk_020176A0 +_08055EF8: .4byte 0x84000080 +_08055EFC: .4byte gUnk_03001150 +_08055F00: .4byte 0x01234567 +_08055F04: .4byte gUnk_03001000 +_08055F08: + ldrb r0, [r1, #8] + cmp r0, #0 + beq _08055F22 + ldr r4, _08055F34 @ =gUnk_03001000 + movs r5, #0xff +_08055F12: + bl VBlankIntrWait + ldrb r0, [r4, #8] + subs r0, #1 + strb r0, [r4, #8] + ands r0, r5 + cmp r0, #0 + bne _08055F12 +_08055F22: + ldr r1, _08055F34 @ =gUnk_03001000 + ldrb r0, [r1, #9] + cmp r0, #0 + beq _08055F44 + subs r0, #1 + strb r0, [r1, #9] + ldrb r4, [r1, #0xa] + b _08055F3C + .align 2, 0 +_08055F34: .4byte gUnk_03001000 +_08055F38: + bl VBlankIntrWait +_08055F3C: + adds r0, r4, #0 + subs r4, #1 + cmp r0, #0 + bgt _08055F38 +_08055F44: + ldrh r0, [r6, #0xc] + adds r0, #1 + strh r0, [r6, #0xc] + ldr r1, _08055F6C @ =gUnk_08100CBC + ldrb r0, [r6, #2] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + bl sub_08056458 + bl sub_08050154 + bl sub_080A3480 +_08055F64: + bl sub_08016E78 + b _08055EC8 + .align 2, 0 +_08055F6C: .4byte gUnk_08100CBC + + thumb_func_start sub_08055F70 +sub_08055F70: @ 0x08055F70 + push {lr} + bl sub_08056020 + movs r0, #0xfe + bl RegisterRamReset + movs r1, #0xa0 + lsls r1, r1, #0x13 + ldr r2, _08055FC8 @ =0x00007FFF + adds r0, r2, #0 + strh r0, [r1] + ldr r1, _08055FCC @ =0x04000204 + ldr r2, _08055FD0 @ =0x00004014 + adds r0, r2, #0 + strh r0, [r1] + ldr r2, _08055FD4 @ =0x0003FFD0 + ldr r0, _08055FD8 @ =gUnk_02000030 + adds r1, r2, #0 + bl sub_0801D630 + ldr r0, _08055FDC @ =gUnk_080B2CD8 + ldr r3, _08055FE0 @ =0x080B197C + subs r2, r0, r3 + cmp r2, #0 + beq _08055FAA + ldr r1, _08055FE4 @ =gUnk_030056F0 + adds r0, r3, #0 + bl sub_0801D66C +_08055FAA: + ldr r0, _08055FE8 @ =gUnk_080B2CD8 + ldr r3, _08055FEC @ =gUnk_080B2CD8 + subs r2, r0, r3 + cmp r2, #0 + beq _08055FBC + ldr r1, _08055FF0 @ =gUnk_02038560 + adds r0, r3, #0 + bl sub_0801D66C +_08055FBC: + movs r0, #0 + bl sub_0801DA90 + bl sub_08016B34 + pop {pc} + .align 2, 0 +_08055FC8: .4byte 0x00007FFF +_08055FCC: .4byte 0x04000204 +_08055FD0: .4byte 0x00004014 +_08055FD4: .4byte 0x0003FFD0 +_08055FD8: .4byte gUnk_02000030 +_08055FDC: .4byte gUnk_080B2CD8 +_08055FE0: .4byte 0x080B197C +_08055FE4: .4byte gUnk_030056F0 +_08055FE8: .4byte gUnk_080B2CD8 +_08055FEC: .4byte gUnk_080B2CD8 +_08055FF0: .4byte gUnk_02038560 + + thumb_func_start sub_08055FF4 +sub_08055FF4: @ 0x08055FF4 + push {lr} + movs r2, #0 + ldr r0, _0805600C @ =gUnk_03000FF0 + ldrh r1, [r0] + movs r0, #0xf + ands r0, r1 + cmp r0, #0xf + bne _08056006 + movs r2, #1 +_08056006: + adds r0, r2, #0 + pop {pc} + .align 2, 0 +_0805600C: .4byte gUnk_03000FF0 + + thumb_func_start sub_08056010 +sub_08056010: @ 0x08056010 + ldr r1, _0805601C @ =gUnk_03001000 + movs r2, #0 + strb r0, [r1, #2] + strb r2, [r1, #3] + strb r2, [r1, #4] + bx lr + .align 2, 0 +_0805601C: .4byte gUnk_03001000 + + thumb_func_start sub_08056020 +sub_08056020: @ 0x08056020 + push {r4, lr} + ldr r2, _08056088 @ =0x04000208 + movs r1, #0 + strh r1, [r2] + ldr r0, _0805608C @ =0x04000200 + strh r1, [r0] + ldr r0, _08056090 @ =0x04000004 + strh r1, [r0] + ldr r0, _08056094 @ =0x04000202 + strh r1, [r0] + strh r1, [r2] + ldr r1, _08056098 @ =0x040000B0 + ldrh r2, [r1, #0xa] + ldr r4, _0805609C @ =0x0000C5FF + adds r0, r4, #0 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r2, [r1, #0xa] + ldr r3, _080560A0 @ =0x00007FFF + adds r0, r3, #0 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r0, [r1, #0xa] + adds r1, #0xc + ldrh r2, [r1, #0xa] + adds r0, r4, #0 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r2, [r1, #0xa] + adds r0, r3, #0 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r0, [r1, #0xa] + adds r1, #0xc + ldrh r2, [r1, #0xa] + adds r0, r4, #0 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r2, [r1, #0xa] + adds r0, r3, #0 + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r0, [r1, #0xa] + ldr r0, _080560A4 @ =0x040000D4 + ldrh r1, [r0, #0xa] + ands r4, r1 + strh r4, [r0, #0xa] + ldrh r1, [r0, #0xa] + ands r3, r1 + strh r3, [r0, #0xa] + ldrh r0, [r0, #0xa] + pop {r4, pc} + .align 2, 0 +_08056088: .4byte 0x04000208 +_0805608C: .4byte 0x04000200 +_08056090: .4byte 0x04000004 +_08056094: .4byte 0x04000202 +_08056098: .4byte 0x040000B0 +_0805609C: .4byte 0x0000C5FF +_080560A0: .4byte 0x00007FFF +_080560A4: .4byte 0x040000D4 + + thumb_func_start sub_080560A8 +sub_080560A8: @ 0x080560A8 + push {lr} + bl sub_08056020 + movs r0, #0xde + bl SoftReset + pop {pc} + .align 2, 0 + + thumb_func_start sub_080560B8 +sub_080560B8: @ 0x080560B8 + push {r4, lr} + bl sub_08056134 + cmp r0, #0 + bne _080560F8 + movs r0, #0x80 + lsls r0, r0, #0x12 + bl sub_0807CF30 + adds r1, r0, #0 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + blt _080560E4 + cmp r1, #0 + ble _080560E4 + cmp r1, #1 + bne _080560E4 + bl sub_08056134 + cmp r0, #0 + bne _080560F8 +_080560E4: + ldr r0, _08056128 @ =gUnk_08100CD4 + movs r4, #0x80 + lsls r4, r4, #0x12 + adds r1, r4, #0 + movs r2, #0x10 + bl sub_0801D66C + adds r0, r4, #0 + bl sub_0807CF10 +_080560F8: + ldr r2, _0805612C @ =gUnk_02000010 + ldr r1, [r2] + ldr r0, _08056130 @ =0x4D435A33 + eors r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + ldrb r1, [r2, #4] + cmp r1, #0 + beq _08056112 + cmp r1, #0xc1 + beq _08056112 + movs r0, #1 +_08056112: + cmp r0, #0 + beq _08056124 + ldr r4, _0805612C @ =gUnk_02000010 + adds r0, r4, #0 + movs r1, #0x20 + bl sub_0801D630 + ldr r0, _08056130 @ =0x4D435A33 + str r0, [r4] +_08056124: + pop {r4, pc} + .align 2, 0 +_08056128: .4byte gUnk_08100CD4 +_0805612C: .4byte gUnk_02000010 +_08056130: .4byte 0x4D435A33 + + thumb_func_start sub_08056134 +sub_08056134: @ 0x08056134 + push {lr} + movs r2, #0x80 + lsls r2, r2, #0x12 + ldr r1, [r2] + ldr r0, _08056164 @ =0x4D435A33 + cmp r1, r0 + bne _08056160 + ldrb r0, [r2, #4] + cmp r0, #2 + bhi _08056160 + ldrb r0, [r2, #5] + cmp r0, #2 + bhi _08056160 + ldrb r0, [r2, #6] + cmp r0, #2 + bhi _08056160 + ldrb r0, [r2, #7] + cmp r0, #1 + bne _08056160 + ldrb r0, [r2, #0xe] + cmp r0, #0 + beq _08056168 +_08056160: + movs r0, #0 + b _0805616A + .align 2, 0 +_08056164: .4byte 0x4D435A33 +_08056168: + movs r0, #1 +_0805616A: + pop {pc} + + thumb_func_start sub_0805616C +sub_0805616C: @ 0x0805616C + push {lr} + ldr r0, _080561E8 @ =0x80040000 + bl sub_080A3268 + ldr r0, _080561EC @ =gUnk_03000F50 + adds r3, r0, #0 + adds r3, #0x6c + ldrb r2, [r3] + adds r0, #0x6d + movs r1, #0 + strb r2, [r0] + strb r1, [r3] + ldr r1, _080561F0 @ =0x040000B0 + ldrh r2, [r1, #0xa] + ldr r0, _080561F4 @ =0x0000C5FF + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r2, [r1, #0xa] + ldr r0, _080561F8 @ =0x00007FFF + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r0, [r1, #0xa] + ldr r0, [r1, #8] + movs r2, #0x80 + lsls r2, r2, #0x18 + cmp r0, #0 + bge _080561AA +_080561A2: + ldr r0, [r1, #8] + ands r0, r2 + cmp r0, #0 + bne _080561A2 +_080561AA: + ldr r2, _080561FC @ =0x040000BC + ldr r0, [r2, #8] + movs r1, #0x80 + lsls r1, r1, #0x18 + cmp r0, #0 + bge _080561BE +_080561B6: + ldr r0, [r2, #8] + ands r0, r1 + cmp r0, #0 + bne _080561B6 +_080561BE: + ldr r2, _08056200 @ =0x040000C8 + ldr r0, [r2, #8] + movs r1, #0x80 + lsls r1, r1, #0x18 + cmp r0, #0 + bge _080561D2 +_080561CA: + ldr r0, [r2, #8] + ands r0, r1 + cmp r0, #0 + bne _080561CA +_080561D2: + ldr r2, _08056204 @ =0x040000D4 + ldr r0, [r2, #8] + movs r1, #0x80 + lsls r1, r1, #0x18 + cmp r0, #0 + bge _080561E6 +_080561DE: + ldr r0, [r2, #8] + ands r0, r1 + cmp r0, #0 + bne _080561DE +_080561E6: + pop {pc} + .align 2, 0 +_080561E8: .4byte 0x80040000 +_080561EC: .4byte gUnk_03000F50 +_080561F0: .4byte 0x040000B0 +_080561F4: .4byte 0x0000C5FF +_080561F8: .4byte 0x00007FFF +_080561FC: .4byte 0x040000BC +_08056200: .4byte 0x040000C8 +_08056204: .4byte 0x040000D4 + + thumb_func_start sub_08056208 +sub_08056208: @ 0x08056208 + push {lr} + ldr r0, _08056224 @ =0x80060000 + bl sub_080A3268 + ldr r0, _08056228 @ =gUnk_03000F50 + adds r3, r0, #0 + adds r3, #0x6d + ldrb r2, [r3] + adds r0, #0x6c + movs r1, #0 + strb r2, [r0] + strb r1, [r3] + pop {pc} + .align 2, 0 +_08056224: .4byte 0x80060000 +_08056228: .4byte gUnk_03000F50 + + thumb_func_start sub_0805622C +sub_0805622C: @ 0x0805622C + ldr r3, _08056248 @ =gUnk_03000F50 + str r0, [r3, #0x70] + str r1, [r3, #0x74] + str r2, [r3, #0x78] + adds r3, #0x6c + movs r2, #1 + movs r0, #1 + strb r0, [r3] + ldr r1, _0805624C @ =gUnk_03003DE4 + ldrb r0, [r1] + eors r0, r2 + strb r0, [r1] + bx lr + .align 2, 0 +_08056248: .4byte gUnk_03000F50 +_0805624C: .4byte gUnk_03003DE4 + + thumb_func_start sub_08056250 +sub_08056250: @ 0x08056250 + ldr r0, _0805625C @ =gUnk_03000F50 + adds r0, #0x6c + movs r1, #0 + strb r1, [r0] + bx lr + .align 2, 0 +_0805625C: .4byte gUnk_03000F50 + + thumb_func_start sub_08056260 +sub_08056260: @ 0x08056260 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + movs r1, #0x80 + lsls r1, r1, #0x13 + movs r0, #0x80 + strh r0, [r1] + ldr r1, _080562B8 @ =0x04000132 + ldr r2, _080562BC @ =0x00008304 + adds r0, r2, #0 + strh r0, [r1] + ldr r6, _080562C0 @ =0x04000208 + movs r0, #0 + mov r8, r0 + strh r0, [r6] + ldr r5, _080562C4 @ =0x04000200 + ldrh r4, [r5] + movs r1, #0xc0 + lsls r1, r1, #6 + adds r0, r1, #0 + strh r0, [r5] + movs r2, #1 + mov sb, r2 + strh r2, [r6] + bl SoundBiasReset + svc #3 + bl SoundBiasSet + mov r0, r8 + strh r0, [r6] + strh r4, [r5] + mov r1, sb + strh r1, [r6] + ldr r0, _080562C8 @ =gUnk_03001000 + ldrb r1, [r0, #1] + mov r2, r8 + strb r2, [r0, #1] + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, pc} + .align 2, 0 +_080562B8: .4byte 0x04000132 +_080562BC: .4byte 0x00008304 +_080562C0: .4byte 0x04000208 +_080562C4: .4byte 0x04000200 +_080562C8: .4byte gUnk_03001000 + + thumb_func_start sub_080562CC +sub_080562CC: @ 0x080562CC + push {r4, r5, r6, lr} + ldr r6, _080562FC @ =gUnk_03000BF0 + movs r4, #0xa + ldrsh r5, [r6, r4] + ldrh r4, [r6, #6] + subs r5, r5, r4 + subs r5, r5, r0 + adds r5, #0xf0 + movs r4, #0xc + ldrsh r0, [r6, r4] + ldrh r4, [r6, #8] + subs r0, r0, r4 + subs r0, r0, r1 + adds r0, #0xa0 + adds r2, #0xf0 + adds r3, #0xa0 + movs r1, #0 + cmp r5, r2 + bhs _080562F8 + cmp r0, r3 + bhs _080562F8 + movs r1, #1 +_080562F8: + adds r0, r1, #0 + pop {r4, r5, r6, pc} + .align 2, 0 +_080562FC: .4byte gUnk_03000BF0 + + thumb_func_start sub_08056300 +sub_08056300: @ 0x08056300 + push {r4, lr} + adds r4, r0, #0 + b _0805631C +_08056306: + ldrh r0, [r4, #2] + ldrh r1, [r4, #4] + ldrh r2, [r4, #6] + ldrh r3, [r4, #8] + bl sub_080562CC + cmp r0, #0 + beq _0805631A + ldrh r0, [r4] + b _08056324 +_0805631A: + adds r4, #0xa +_0805631C: + ldrh r0, [r4] + cmp r0, #0xff + bne _08056306 + movs r0, #0xff +_08056324: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08056328 +sub_08056328: @ 0x08056328 + push {lr} + bl sub_0805E780 + pop {pc} + + thumb_func_start sub_08056330 +sub_08056330: @ 0x08056330 + push {lr} + bl sub_0805E780 + pop {pc} + + thumb_func_start sub_08056338 +sub_08056338: @ 0x08056338 + push {lr} + movs r2, #1 + rsbs r2, r2, #0 + ldr r0, _08056358 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08056354 + ldr r1, _0805635C @ =gUnk_02000040 + ldrb r0, [r1] + cmp r0, #3 + bne _08056354 + ldrb r2, [r1, #1] +_08056354: + adds r0, r2, #0 + pop {pc} + .align 2, 0 +_08056358: .4byte gUnk_02000050 +_0805635C: .4byte gUnk_02000040 + + thumb_func_start sub_08056360 +sub_08056360: @ 0x08056360 + push {lr} + ldr r2, _08056374 @ =gUnk_02000050 + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + beq _08056372 + movs r0, #0x88 + strb r0, [r2] +_08056372: + pop {pc} + .align 2, 0 +_08056374: .4byte gUnk_02000050 + + thumb_func_start sub_08056378 +sub_08056378: @ 0x08056378 + push {lr} + adds r2, r0, #0 + ldr r0, _0805638C @ =gUnk_03000BF0 + ldr r1, [r0, #0x30] + cmp r1, #0 + beq _08056390 + adds r0, r2, #0 + bl sub_08056398 + b _08056396 + .align 2, 0 +_0805638C: .4byte gUnk_03000BF0 +_08056390: + adds r0, r2, #0 + bl sub_080563EC +_08056396: + pop {pc} + + thumb_func_start sub_08056398 +sub_08056398: @ 0x08056398 + push {r4, lr} + adds r4, r1, #0 + bl sub_080563EC + movs r1, #0x32 + ldrsh r0, [r4, r1] + movs r2, #0x36 + ldrsh r1, [r4, r2] + adds r0, r0, r1 + ldr r1, _080563C0 @ =gUnk_03000BF0 + movs r2, #0xc + ldrsh r1, [r1, r2] + subs r0, r0, r1 + cmp r0, #0x58 + ble _080563BC + ldr r1, _080563C4 @ =gUnk_02000050 + movs r0, #1 + strb r0, [r1, #7] +_080563BC: + pop {r4, pc} + .align 2, 0 +_080563C0: .4byte gUnk_03000BF0 +_080563C4: .4byte gUnk_02000050 + + thumb_func_start sub_080563C8 +sub_080563C8: @ 0x080563C8 + push {lr} + adds r2, r1, #0 + movs r1, #1 + bl sub_080563D4 + pop {pc} + + thumb_func_start sub_080563D4 +sub_080563D4: @ 0x080563D4 + push {r4, r5, lr} + adds r4, r1, #0 + adds r5, r2, #0 + bl sub_080563EC + ldr r0, _080563E8 @ =gUnk_02000050 + strb r4, [r0, #6] + strb r5, [r0, #7] + pop {r4, r5, pc} + .align 2, 0 +_080563E8: .4byte gUnk_02000050 + + thumb_func_start sub_080563EC +sub_080563EC: @ 0x080563EC + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _08056414 @ =gUnk_02000050 + adds r0, r4, #0 + movs r1, #0x20 + bl sub_0801D630 + strh r5, [r4, #8] + movs r0, #0x63 + strb r0, [r4, #2] + movs r0, #0x1a + strb r0, [r4, #4] + movs r0, #4 + strb r0, [r4, #5] + movs r1, #1 + strb r1, [r4, #6] + movs r0, #0xc + strb r0, [r4, #7] + strb r1, [r4] + pop {r4, r5, pc} + .align 2, 0 +_08056414: .4byte gUnk_02000050 + + thumb_func_start sub_08056418 +sub_08056418: @ 0x08056418 + push {lr} + ldr r0, _08056444 @ =gUnk_02000050 + movs r1, #0x20 + bl sub_0801D630 + ldr r0, _08056448 @ =gUnk_02022780 + movs r1, #0xa8 + bl sub_0801D630 + ldr r0, _0805644C @ =gUnk_02036A40 + movs r1, #8 + bl sub_0801D630 + ldr r0, _08056450 @ =gUnk_02036A38 + movs r1, #8 + bl sub_0801D630 + ldr r0, _08056454 @ =gUnk_02000040 + movs r1, #4 + bl sub_0801D630 + pop {pc} + .align 2, 0 +_08056444: .4byte gUnk_02000050 +_08056448: .4byte gUnk_02022780 +_0805644C: .4byte gUnk_02036A40 +_08056450: .4byte gUnk_02036A38 +_08056454: .4byte gUnk_02000040 + + thumb_func_start sub_08056458 +sub_08056458: @ 0x08056458 + push {r4, r5, lr} + ldr r0, _08056484 @ =gUnk_02000050 + ldrb r0, [r0] + cmp r0, #1 + bne _08056470 + ldr r0, _08056488 @ =gUnk_02022780 + movs r1, #0xa8 + bl sub_0801D630 + movs r0, #1 + bl sub_080564C8 +_08056470: + ldr r2, _08056488 @ =gUnk_02022780 + adds r1, r2, #0 + adds r1, #0x8a + ldrb r0, [r1] + cmp r0, #0 + beq _0805648C + subs r0, #1 + strb r0, [r1] + b _080564A2 + .align 2, 0 +_08056484: .4byte gUnk_02000050 +_08056488: .4byte gUnk_02022780 +_0805648C: + ldr r5, _080564C0 @ =gUnk_08107BC8 + adds r4, r2, #0 + adds r4, #0x88 +_08056492: + ldrb r0, [r4] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r0, [r0] + bl _call_via_r0 + cmp r0, #0 + bne _08056492 +_080564A2: + ldr r0, _080564C4 @ =gUnk_02022780 + adds r1, r0, #0 + adds r1, #0x9d + ldrb r0, [r1] + cmp r0, #0 + beq _080564B6 + movs r0, #0 + strb r0, [r1] + bl sub_08056F70 +_080564B6: + bl sub_08056C68 + bl sub_08056D70 + pop {r4, r5, pc} + .align 2, 0 +_080564C0: .4byte gUnk_08107BC8 +_080564C4: .4byte gUnk_02022780 + + thumb_func_start sub_080564C8 +sub_080564C8: @ 0x080564C8 + ldr r1, _080564D8 @ =gUnk_02022780 + adds r2, r1, #0 + adds r2, #0x88 + movs r3, #0 + strb r0, [r2] + adds r1, #0x89 + strb r3, [r1] + bx lr + .align 2, 0 +_080564D8: .4byte gUnk_02022780 + + thumb_func_start sub_080564DC +sub_080564DC: @ 0x080564DC + ldr r0, _080564E8 @ =gUnk_02022780 + adds r0, #0x99 + movs r1, #0 + strb r1, [r0] + movs r0, #0 + bx lr + .align 2, 0 +_080564E8: .4byte gUnk_02022780 + + thumb_func_start sub_080564EC +sub_080564EC: @ 0x080564EC + push {r4, lr} + ldr r0, _08056598 @ =gUnk_02036A40 + movs r1, #8 + bl sub_0801D630 + ldr r0, _0805659C @ =gUnk_02024030 + movs r1, #0x18 + bl sub_0801D630 + ldr r4, _080565A0 @ =gUnk_02022780 + adds r0, r4, #0 + movs r1, #0xa8 + bl sub_0801D630 + ldr r0, _080565A4 @ =gUnk_02000050 + adds r1, r4, #0 + movs r2, #0x20 + bl sub_0801D66C + ldrb r0, [r4, #2] + cmp r0, #0x63 + bne _08056520 + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #5] + strb r0, [r4, #2] +_08056520: + adds r1, r4, #0 + adds r1, #0x9c + movs r0, #0xff + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x20 + ldrh r1, [r4, #8] + bl sub_0805EEB4 + adds r3, r4, #0 + adds r3, #0x5c + movs r0, #2 + strb r0, [r3] + movs r0, #0xe + strb r0, [r3, #1] + adds r3, #2 + movs r2, #0 + ldr r0, _080565A8 @ =gUnk_02002A40 + adds r0, #0x80 + ldrb r1, [r0] + cmp r1, #0 + beq _08056560 + adds r4, r0, #0 +_0805654E: + strb r1, [r3] + adds r3, #1 + adds r2, #1 + cmp r2, #5 + bhi _08056560 + adds r0, r2, r4 + ldrb r1, [r0] + cmp r1, #0 + bne _0805654E +_08056560: + movs r0, #2 + strb r0, [r3] + movs r0, #0xf + strb r0, [r3, #1] + movs r0, #0 + strb r0, [r3, #2] + ldr r4, _080565A0 @ =gUnk_02022780 + adds r0, r4, #0 + bl sub_08056FBC + ldr r0, _080565AC @ =gUnk_08107BE0 + str r0, [r4, #0x2c] + ldr r0, _080565B0 @ =gUnk_02000D00 + str r0, [r4, #0x58] + adds r4, #0x54 + movs r0, #0xd0 + strh r0, [r4] + movs r0, #2 + bl sub_08056C54 + movs r0, #0 + bl sub_08056BDC + movs r0, #2 + bl sub_080564C8 + movs r0, #1 + pop {r4, pc} + .align 2, 0 +_08056598: .4byte gUnk_02036A40 +_0805659C: .4byte gUnk_02024030 +_080565A0: .4byte gUnk_02022780 +_080565A4: .4byte gUnk_02000050 +_080565A8: .4byte gUnk_02002A40 +_080565AC: .4byte gUnk_08107BE0 +_080565B0: .4byte gUnk_02000D00 + + thumb_func_start sub_080565B4 +sub_080565B4: @ 0x080565B4 + push {r4, lr} + ldr r4, _080565F4 @ =gUnk_02022780 + adds r1, r4, #0 + adds r1, #0x89 + ldrb r0, [r1] + cmp r0, #0 + bne _080565DA + movs r0, #1 + strb r0, [r1] + adds r1, #0x10 + strb r0, [r1] + ldrb r0, [r4, #3] + subs r1, #0x46 + ldrb r1, [r1] + bl sub_08056F88 + movs r0, #0x65 + bl sub_080A3268 +_080565DA: + movs r0, #1 + bl sub_08056CC0 + cmp r0, #0 + beq _080565F0 + adds r1, r4, #0 + adds r1, #0x99 + movs r0, #2 + strb r0, [r1] + bl sub_080564C8 +_080565F0: + movs r0, #0 + pop {r4, pc} + .align 2, 0 +_080565F4: .4byte gUnk_02022780 + + thumb_func_start sub_080565F8 +sub_080565F8: @ 0x080565F8 + push {r4, lr} + ldr r4, _0805663C @ =gUnk_02022780 + adds r1, r4, #0 + adds r1, #0x89 + ldrb r0, [r1] + cmp r0, #0 + bne _0805661C + movs r0, #1 + strb r0, [r1] + adds r1, #0x10 + movs r0, #3 + strb r0, [r1] + movs r0, #0 + bl sub_08056BDC + movs r0, #0x66 + bl sub_080A3268 +_0805661C: + movs r0, #1 + rsbs r0, r0, #0 + bl sub_08056CC0 + cmp r0, #0 + beq _08056636 + adds r1, r4, #0 + adds r1, #0x99 + movs r0, #0 + strb r0, [r1] + movs r0, #2 + bl sub_080564C8 +_08056636: + movs r0, #0 + pop {r4, pc} + .align 2, 0 +_0805663C: .4byte gUnk_02022780 + + thumb_func_start sub_08056640 +sub_08056640: @ 0x08056640 + push {lr} + movs r0, #0 + bl sub_08056C54 + movs r0, #0 + bl sub_080564C8 + movs r0, #0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08056654 +sub_08056654: @ 0x08056654 + push {lr} + movs r0, #4 + bl sub_08056C54 + ldr r2, _0805667C @ =gUnk_08107BF4 + ldr r0, _08056680 @ =gUnk_02022780 + adds r1, r0, #0 + adds r1, #0x89 + ldrb r1, [r1] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + movs r0, #0 + bl sub_08056CC0 + movs r0, #0 + pop {pc} + .align 2, 0 +_0805667C: .4byte gUnk_08107BF4 +_08056680: .4byte gUnk_02022780 + + thumb_func_start sub_08056684 +sub_08056684: @ 0x08056684 + push {r4, lr} + adds r2, r0, #0 + ldr r4, _080566AC @ =gUnk_02022780 + adds r0, r4, #0 + adds r0, #0x20 + ldrb r1, [r0] + movs r3, #1 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + bne _080566B0 + adds r0, r4, #0 + adds r0, #0x99 + ldrb r0, [r0] + cmp r0, #0 + bne _080566B6 + movs r0, #5 + bl sub_080564C8 + b _080566B6 + .align 2, 0 +_080566AC: .4byte gUnk_02022780 +_080566B0: + adds r0, r2, #0 + adds r0, #0x89 + strb r3, [r0] +_080566B6: + pop {r4, pc} + + thumb_func_start sub_080566B8 +sub_080566B8: @ 0x080566B8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x95 + ldrb r0, [r1] + cmp r0, #0 + beq _080566CC + subs r0, #1 + strb r0, [r1] + b _0805674E +_080566CC: + ldr r0, _08056740 @ =gUnk_03000FF0 + ldrh r1, [r0] + movs r0, #2 + ands r0, r1 + movs r2, #1 + cmp r0, #0 + beq _080566DC + movs r2, #8 +_080566DC: + adds r1, r4, #0 + adds r1, #0x92 + ldrb r0, [r1] + subs r0, r0, r2 + strb r0, [r1] + lsls r0, r0, #0x18 + adds r7, r1, #0 + cmp r0, #0 + bgt _0805674E + movs r5, #0 + ldr r2, _08056744 @ =gUnk_08107C0C +_080566F2: + adds r5, #1 + ldrb r0, [r4, #2] + adds r0, r0, r2 + ldrb r0, [r0] + ldrb r3, [r1] + adds r0, r0, r3 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + ble _080566F2 + movs r6, #0 +_08056708: + adds r0, r4, #0 + bl sub_08056750 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0 + beq _08056732 + adds r0, r4, #0 + adds r0, #0x95 + ldrb r0, [r0] + cmp r0, #0 + bne _08056732 + adds r0, r4, #0 + adds r0, #0x8a + ldrb r0, [r0] + cmp r0, #0 + bne _08056732 + adds r6, r6, r1 + subs r5, #1 + cmp r5, #0 + bgt _08056708 +_08056732: + cmp r6, #0 + beq _0805674C + ldr r0, _08056748 @ =gUnk_02022780 + adds r0, #0x9d + movs r1, #1 + strb r1, [r0] + b _0805674E + .align 2, 0 +_08056740: .4byte gUnk_03000FF0 +_08056744: .4byte gUnk_08107C0C +_08056748: .4byte gUnk_02022780 +_0805674C: + strb r6, [r7] +_0805674E: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08056750 +sub_08056750: @ 0x08056750 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldrh r7, [r5, #0x24] + cmp r7, #0 + beq _0805675C + b _0805694C +_0805675C: + adds r4, r5, #0 + adds r4, #0x20 + adds r0, r4, #0 + bl sub_0805EFE8 + adds r7, r0, #0 + cmp r7, #0xe + bls _0805676E + b _08056942 +_0805676E: + lsls r0, r7, #2 + ldr r1, _08056778 @ =_0805677C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08056778: .4byte _0805677C +_0805677C: @ jump table + .4byte _080567B8 @ case 0 + .4byte _080567DE @ case 1 + .4byte _08056802 @ case 2 + .4byte _0805680A @ case 3 + .4byte _08056812 @ case 4 + .4byte _08056838 @ case 5 + .4byte _08056844 @ case 6 + .4byte _08056858 @ case 7 + .4byte _0805688C @ case 8 + .4byte _08056894 @ case 9 + .4byte _080568AC @ case 10 + .4byte _08056942 @ case 11 + .4byte _080568B2 @ case 12 + .4byte _08056914 @ case 13 + .4byte _0805693A @ case 14 +_080567B8: + ldr r0, _080567D4 @ =gUnk_02000040 + ldrb r0, [r0] + cmp r0, #1 + bne _080567D8 + adds r1, r5, #0 + adds r1, #0x89 + movs r0, #5 + strb r0, [r1] + movs r0, #0 + movs r1, #0 + bl sub_08056ABC + b _08056942 + .align 2, 0 +_080567D4: .4byte gUnk_02000040 +_080567D8: + adds r1, r5, #0 + adds r1, #0x89 + b _0805692C +_080567DE: + adds r1, r5, #0 + adds r1, #0x8a + movs r0, #2 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x98 + ldrb r0, [r0] + cmp r0, #0 + bne _080567F8 + movs r0, #1 + bl sub_08056BDC + b _08056942 +_080567F8: + adds r1, r5, #0 + adds r1, #0x89 + movs r0, #3 + strb r0, [r1] + b _08056942 +_08056802: + movs r0, #3 + bl sub_080564C8 + b _08056942 +_0805680A: + movs r0, #4 + bl sub_080564C8 + b _08056942 +_08056812: + adds r0, r4, #0 + movs r1, #0 + bl sub_0805F324 + adds r3, r0, #0 + adds r4, r5, #0 + adds r4, #0x56 + adds r0, r5, #0 + adds r0, #0x54 + ldrh r0, [r0] + ldrh r2, [r4] + subs r0, r0, r2 + subs r0, r0, r3 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + adds r2, r2, r0 + strh r2, [r4] + b _08056942 +_08056838: + ldr r1, _08056840 @ =gUnk_02000050 + ldrh r0, [r5, #0x22] + strb r0, [r1, #1] + b _08056942 + .align 2, 0 +_08056840: .4byte gUnk_02000050 +_08056844: + ldr r0, _08056854 @ =gUnk_0200005C + ldrh r1, [r5, #0x22] + movs r2, #0x1f + ands r1, r2 + bl sub_0801D5BC + b _08056942 + .align 2, 0 +_08056854: .4byte gUnk_0200005C +_08056858: + ldrh r3, [r5, #0x22] + cmp r3, #0xe + beq _08056864 + cmp r3, #0xf + beq _08056874 + b _0805687A +_08056864: + adds r0, r5, #0 + adds r0, #0x8f + ldrb r0, [r0] + adds r1, r5, #0 + adds r1, #0x91 + strb r0, [r1] + movs r3, #2 + b _0805687A +_08056874: + adds r0, r5, #0 + adds r0, #0x91 + ldrb r3, [r0] +_0805687A: + adds r1, r5, #0 + adds r1, #0x90 + movs r0, #0 + strb r0, [r1] + adds r0, r5, #0 + adds r1, r3, #0 + bl sub_080569C4 + b _08056942 +_0805688C: + ldrh r0, [r5, #0x22] + bl sub_080A3268 + b _08056942 +_08056894: + ldr r1, _080568A8 @ =gUnk_02022780 + ldrh r0, [r5, #0x22] + strb r0, [r1, #3] + ldrh r0, [r5, #0x22] + adds r1, r5, #0 + adds r1, #0x53 + ldrb r1, [r1] + bl sub_08056F88 + b _08056942 + .align 2, 0 +_080568A8: .4byte gUnk_02022780 +_080568AC: + ldrh r0, [r5, #0x22] + strb r0, [r5, #7] + b _08056942 +_080568B2: + ldr r6, _0805690C @ =gUnk_02000040 + ldrb r0, [r6] + cmp r0, #1 + beq _080568D2 + adds r0, r6, #0 + movs r1, #4 + bl sub_0801D630 + ldr r4, _08056910 @ =gUnk_02024030 + adds r0, r4, #0 + movs r1, #0x18 + bl sub_0801D630 + movs r0, #1 + strb r0, [r4] + strb r0, [r6] +_080568D2: + ldr r2, _08056910 @ =gUnk_02024030 + movs r0, #2 + ldrsb r0, [r2, r0] + cmp r0, #3 + bgt _08056942 + lsls r0, r0, #1 + adds r1, r2, #0 + adds r1, #0x10 + adds r0, r0, r1 + ldrh r1, [r5, #0x26] + strh r1, [r0] + movs r0, #2 + ldrsb r0, [r2, r0] + lsls r0, r0, #1 + adds r1, r2, #0 + adds r1, #8 + adds r0, r0, r1 + adds r3, r5, #0 + adds r3, #0x56 + ldrh r1, [r3] + strh r1, [r0] + ldrb r0, [r2, #2] + adds r0, #1 + strb r0, [r2, #2] + ldrh r0, [r3] + adds r0, #8 + strh r0, [r3] + b _08056942 + .align 2, 0 +_0805690C: .4byte gUnk_02000040 +_08056910: .4byte gUnk_02024030 +_08056914: + ldrh r3, [r5, #0x22] + cmp r3, #0xfe + beq _08056928 + cmp r3, #0xff + bne _08056932 + adds r1, r5, #0 + adds r1, #0x8e + movs r0, #1 + strb r0, [r1] + b _08056942 +_08056928: + adds r1, r5, #0 + adds r1, #0x8e +_0805692C: + movs r0, #2 + strb r0, [r1] + b _08056942 +_08056932: + adds r0, r5, #0 + adds r0, #0x95 + strb r3, [r0] + b _08056942 +_0805693A: + ldrh r1, [r5, #0x22] + adds r0, r5, #0 + adds r0, #0x94 + strb r1, [r0] +_08056942: + lsrs r0, r7, #8 + cmp r0, #0 + bne _0805694C + movs r0, #0 + b _080569C2 +_0805694C: + ldr r0, _08056960 @ =gUnk_02022780 + adds r0, #0x99 + ldrb r0, [r0] + cmp r0, #2 + beq _08056964 + movs r0, #3 + bl sub_080564C8 + movs r0, #0 + b _080569C2 + .align 2, 0 +_08056960: .4byte gUnk_02022780 +_08056964: + ldr r1, _08056994 @ =gUnk_02000050 + ldrb r0, [r1, #1] + cmp r0, #0 + bne _08056970 + movs r0, #0x80 + strb r0, [r1, #1] +_08056970: + movs r0, #0 + strh r0, [r5, #0x24] + lsrs r0, r7, #8 + cmp r0, #7 + bne _08056998 + adds r0, r5, #0 + adds r0, #0x8f + ldrb r0, [r0] + movs r1, #0x80 + adds r2, r5, #0 + adds r2, #0x90 + orrs r1, r0 + strb r1, [r2] + adds r0, r5, #0 + movs r1, #0 + bl sub_080569C4 + b _080569B4 + .align 2, 0 +_08056994: .4byte gUnk_02000050 +_08056998: + adds r2, r5, #0 + adds r2, #0x90 + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080569B4 + ldrb r3, [r2] + movs r0, #0 + strb r0, [r2] + adds r0, r5, #0 + adds r1, r3, #0 + bl sub_080569C4 +_080569B4: + adds r1, r5, #0 + adds r1, #0x50 + adds r0, r7, #0 + bl sub_0805F7DC + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 +_080569C2: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080569C4 +sub_080569C4: @ 0x080569C4 + movs r2, #7 + ands r2, r1 + adds r1, r0, #0 + adds r1, #0x8f + strb r2, [r1] + adds r0, #0x52 + strb r2, [r0] + bx lr + + thumb_func_start sub_080569D4 +sub_080569D4: @ 0x080569D4 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r0, _080569F0 @ =gUnk_02024030 + movs r5, #3 + ldrsb r5, [r0, r5] + ldr r0, _080569F4 @ =gUnk_03000FF0 + ldrh r0, [r0, #2] + cmp r0, #8 + beq _08056A02 + cmp r0, #8 + bgt _080569F8 + cmp r0, #1 + beq _08056A02 + b _08056A6A + .align 2, 0 +_080569F0: .4byte gUnk_02024030 +_080569F4: .4byte gUnk_03000FF0 +_080569F8: + cmp r0, #0x10 + beq _08056A68 + cmp r0, #0x20 + beq _08056A64 + b _08056A6A +_08056A02: + ldr r0, _08056A18 @ =gUnk_02024030 + lsls r1, r5, #1 + adds r0, #0x10 + adds r1, r1, r0 + ldrh r1, [r1] + cmp r1, #0 + bne _08056A20 + ldr r1, _08056A1C @ =gUnk_08107C14 + adds r0, r6, #0 + adds r0, #0x20 + b _08056A30 + .align 2, 0 +_08056A18: .4byte gUnk_02024030 +_08056A1C: .4byte gUnk_08107C14 +_08056A20: + strh r1, [r6, #8] + adds r4, r6, #0 + adds r4, #0x20 + adds r0, r4, #0 + bl sub_0805EEB4 + ldr r1, _08056A58 @ =gUnk_08107C0F + adds r0, r4, #0 +_08056A30: + bl sub_0805EF40 + ldr r2, _08056A5C @ =gUnk_02000040 + ldr r0, _08056A60 @ =gUnk_02024030 + ldrb r1, [r0, #3] + strb r1, [r2, #1] + movs r1, #3 + strb r1, [r2] + movs r1, #0x18 + bl sub_0801D630 + movs r0, #0x6a + bl sub_080A3268 + adds r1, r6, #0 + adds r1, #0x89 + movs r0, #1 + strb r0, [r1] + b _08056A6A + .align 2, 0 +_08056A58: .4byte gUnk_08107C0F +_08056A5C: .4byte gUnk_02000040 +_08056A60: .4byte gUnk_02024030 +_08056A64: + subs r5, #1 + b _08056A6A +_08056A68: + adds r5, #1 +_08056A6A: + ldr r4, _08056A8C @ =gUnk_02024030 + movs r1, #2 + ldrsb r1, [r4, r1] + adds r0, r5, r1 + bl __modsi3 + adds r5, r0, #0 + movs r6, #3 + ldrsb r6, [r4, r6] + cmp r5, r6 + beq _08056A90 + strb r5, [r4, #3] + movs r0, #0x69 + bl sub_080A3268 + movs r1, #1 + b _08056A92 + .align 2, 0 +_08056A8C: .4byte gUnk_02024030 +_08056A90: + movs r1, #0 +_08056A92: + ldr r2, _08056AB4 @ =gUnk_02000040 + ldrb r0, [r2] + cmp r0, #1 + bne _08056AA4 + ldr r1, _08056AB8 @ =gUnk_02024030 + movs r0, #2 + strb r0, [r2] + strb r0, [r1] + movs r1, #1 +_08056AA4: + cmp r1, #0 + beq _08056AB0 + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_08056ABC +_08056AB0: + pop {r4, r5, r6, pc} + .align 2, 0 +_08056AB4: .4byte gUnk_02000040 +_08056AB8: .4byte gUnk_02024030 + + thumb_func_start sub_08056ABC +sub_08056ABC: @ 0x08056ABC + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + ldr r7, _08056B14 @ =gUnk_02022780 + movs r0, #0x56 + adds r0, r0, r7 + mov sb, r0 + ldrh r0, [r0] + mov r8, r0 + ldr r4, _08056B18 @ =gUnk_02024030 + lsls r1, r1, #1 + adds r4, #8 + adds r1, r1, r4 + ldrh r0, [r1] + mov r1, sb + strh r0, [r1] + adds r6, r7, #0 + adds r6, #0x50 + movs r0, #0 + adds r1, r6, #0 + bl sub_0805F8E4 + lsls r5, r5, #1 + adds r5, r5, r4 + ldrh r0, [r5] + mov r1, sb + strh r0, [r1] + movs r0, #1 + adds r1, r6, #0 + bl sub_0805F8E4 + mov r1, r8 + mov r0, sb + strh r1, [r0] + adds r1, r7, #0 + adds r1, #0x9d + movs r0, #1 + strb r0, [r1] + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08056B14: .4byte gUnk_02022780 +_08056B18: .4byte gUnk_02024030 + + thumb_func_start sub_08056B1C +sub_08056B1C: @ 0x08056B1C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r1, _08056B44 @ =gUnk_02000050 + movs r0, #0 + strb r0, [r1, #1] + adds r1, r4, #0 + adds r1, #0x94 + ldrb r0, [r1] + adds r5, r0, #0 + cmp r5, #0 + beq _08056B48 + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08056B7A + subs r1, #0xb + movs r0, #4 + b _08056B78 + .align 2, 0 +_08056B44: .4byte gUnk_02000050 +_08056B48: + ldr r0, _08056B68 @ =gUnk_03000FF0 + ldrh r1, [r0, #2] + ldr r0, _08056B6C @ =0x000001F3 + ands r0, r1 + cmp r0, #0 + beq _08056B70 + movs r0, #0x68 + bl sub_080A3268 + adds r0, r4, #0 + adds r0, #0x9a + strb r5, [r0] + adds r1, r4, #0 + adds r1, #0x89 + movs r0, #4 + b _08056B78 + .align 2, 0 +_08056B68: .4byte gUnk_03000FF0 +_08056B6C: .4byte 0x000001F3 +_08056B70: + adds r1, r4, #0 + adds r1, #0x9a + ldrb r0, [r1] + adds r0, #1 +_08056B78: + strb r0, [r1] +_08056B7A: + pop {r4, r5, pc} + + thumb_func_start sub_08056B7C +sub_08056B7C: @ 0x08056B7C + push {r4, lr} + adds r4, r0, #0 + movs r0, #0 + bl sub_08056BDC + adds r0, r4, #0 + adds r0, #0x8f + ldrb r0, [r0] + movs r1, #0x40 + orrs r1, r0 + adds r0, r4, #0 + bl sub_080569C4 + adds r4, #0x89 + movs r0, #1 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08056BA0 +sub_08056BA0: @ 0x08056BA0 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08056BD0 @ =gUnk_02000050 + movs r0, #0 + strb r0, [r1, #1] + movs r0, #7 + bl sub_08056C54 + adds r4, #0x8e + ldrb r0, [r4] + cmp r0, #1 + beq _08056BCE + cmp r0, #2 + beq _08056BC8 + ldr r0, _08056BD4 @ =gUnk_03000FF0 + ldrh r1, [r0, #2] + ldr r0, _08056BD8 @ =0x000001F3 + ands r0, r1 + cmp r0, #0 + beq _08056BCE +_08056BC8: + movs r0, #4 + bl sub_080564C8 +_08056BCE: + pop {r4, pc} + .align 2, 0 +_08056BD0: .4byte gUnk_02000050 +_08056BD4: .4byte gUnk_03000FF0 +_08056BD8: .4byte 0x000001F3 + + thumb_func_start sub_08056BDC +sub_08056BDC: @ 0x08056BDC + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _08056C24 @ =gUnk_02022780 + adds r0, r4, #0 + adds r0, #0x98 + strb r5, [r0] + cmp r5, #0 + bne _08056C30 + movs r0, #1 + rsbs r0, r0, #0 + ldr r1, _08056C28 @ =gUnk_02000D00 + movs r2, #0xd0 + lsls r2, r2, #4 + bl sub_0801D610 + bl sub_08056F70 + adds r1, r4, #0 + adds r1, #0x9e + ldr r0, _08056C2C @ =0x0000F082 + strh r0, [r1] + adds r1, #2 + adds r0, #1 + strh r0, [r1] + adds r1, #2 + adds r0, #0x33 + strh r0, [r1] + adds r1, #2 + adds r0, #1 + strh r0, [r1] + adds r0, r4, #0 + adds r0, #0x56 + strh r5, [r0] + subs r1, #0x50 + movs r0, #0xd0 + b _08056C3C + .align 2, 0 +_08056C24: .4byte gUnk_02022780 +_08056C28: .4byte gUnk_02000D00 +_08056C2C: .4byte 0x0000F082 +_08056C30: + adds r1, r4, #0 + adds r1, #0x56 + movs r0, #0xd0 + strh r0, [r1] + subs r1, #2 + adds r0, #0xd0 +_08056C3C: + strh r0, [r1] + ldr r0, _08056C50 @ =gUnk_02022780 + adds r1, r0, #0 + adds r1, #0x8f + ldrb r2, [r1] + movs r1, #0x40 + orrs r1, r2 + bl sub_080569C4 + pop {r4, r5, pc} + .align 2, 0 +_08056C50: .4byte gUnk_02022780 + + thumb_func_start sub_08056C54 +sub_08056C54: @ 0x08056C54 + ldr r2, _08056C60 @ =gUnk_02000050 + ldr r1, _08056C64 @ =gUnk_02022780 + strb r0, [r1] + strb r0, [r2] + bx lr + .align 2, 0 +_08056C60: .4byte gUnk_02000050 +_08056C64: .4byte gUnk_02022780 + + thumb_func_start sub_08056C68 +sub_08056C68: @ 0x08056C68 + push {r4, r5, r6, lr} + ldr r5, _08056CB8 @ =gUnk_02036A38 + ldrb r0, [r5, #1] + cmp r0, #0 + beq _08056CB4 + movs r0, #0 + strb r0, [r5, #1] + ldrb r0, [r5, #5] + lsls r0, r0, #5 + ldrb r1, [r5, #4] + adds r0, r0, r1 + lsls r0, r0, #1 + ldr r1, _08056CBC @ =gUnk_02034CB0 + adds r1, r0, r1 + ldrb r0, [r5, #7] + adds r0, #2 + movs r6, #0 +_08056C8A: + movs r2, #0 + adds r4, r1, #0 + adds r4, #0x40 + subs r3, r0, #1 +_08056C92: + strh r6, [r1] + adds r1, #2 + adds r2, #1 + ldrb r0, [r5, #6] + adds r0, #2 + cmp r2, r0 + blt _08056C92 + adds r1, r4, #0 + adds r0, r3, #0 + cmp r0, #0 + bgt _08056C8A + ldrb r0, [r5, #5] + ldrb r1, [r5, #7] + bl sub_0801C4A0 + bl sub_0801C494 +_08056CB4: + pop {r4, r5, r6, pc} + .align 2, 0 +_08056CB8: .4byte gUnk_02036A38 +_08056CBC: .4byte gUnk_02034CB0 + + thumb_func_start sub_08056CC0 +sub_08056CC0: @ 0x08056CC0 + push {r4, r5, r6, r7, lr} + movs r7, #0 + ldr r2, _08056CE0 @ =gUnk_02022780 + adds r3, r2, #0 + adds r3, #0x9b + ldrb r1, [r3] + adds r1, r1, r0 + strb r1, [r3] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + mov ip, r2 + cmp r1, #0 + bgt _08056CE4 + strb r7, [r3] + b _08056CEC + .align 2, 0 +_08056CE0: .4byte gUnk_02022780 +_08056CE4: + cmp r1, #7 + ble _08056CEE + movs r0, #8 + strb r0, [r3] +_08056CEC: + movs r7, #1 +_08056CEE: + ldr r2, _08056D54 @ =gUnk_02036A40 + mov r4, ip + adds r1, r4, #0 + adds r1, #0x9b + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08056D58 + adds r5, r0, #0 + ldrb r0, [r4, #4] + lsls r0, r0, #1 + muls r0, r5, r0 + lsrs r3, r0, #4 + strb r3, [r2, #6] + movs r6, #1 + adds r0, r3, #0 + ands r0, r6 + ldrb r1, [r4, #4] + cmp r0, #0 + beq _08056D1A + adds r0, r3, #1 + strb r0, [r2, #6] +_08056D1A: + lsrs r1, r1, #1 + ldrb r0, [r4, #6] + adds r1, r1, r0 + ldrb r0, [r2, #6] + lsrs r0, r0, #1 + subs r1, r1, r0 + strb r1, [r2, #4] + ldrb r0, [r4, #5] + lsls r0, r0, #1 + muls r0, r5, r0 + lsrs r3, r0, #4 + strb r3, [r2, #7] + adds r0, r3, #0 + ands r0, r6 + ldrb r1, [r4, #5] + cmp r0, #0 + beq _08056D40 + adds r0, r3, #1 + strb r0, [r2, #7] +_08056D40: + lsrs r1, r1, #1 + mov r3, ip + ldrb r3, [r3, #7] + adds r1, r1, r3 + ldrb r0, [r2, #7] + lsrs r0, r0, #1 + subs r1, r1, r0 + strb r1, [r2, #5] + b _08056D66 + .align 2, 0 +_08056D54: .4byte gUnk_02036A40 +_08056D58: + movs r0, #0xff + strb r0, [r2, #5] + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r2, #4] + strb r0, [r2, #7] + strb r0, [r2, #6] +_08056D66: + movs r0, #1 + strb r0, [r2, #1] + adds r0, r7, #0 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08056D70 +sub_08056D70: @ 0x08056D70 + push {r4, lr} + ldr r0, _08056DB4 @ =gUnk_02022780 + adds r0, #0x9b + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + ble _08056DB0 + ldr r4, _08056DB8 @ =gUnk_02036A40 + ldrb r0, [r4, #5] + lsls r0, r0, #5 + ldrb r1, [r4, #4] + adds r0, r0, r1 + lsls r0, r0, #1 + ldr r1, _08056DBC @ =gUnk_02034CB0 + adds r0, r0, r1 + ldr r3, _08056DC0 @ =0x0000F07B + ldrb r1, [r4, #6] + ldrb r2, [r4, #7] + bl sub_08056DC8 + bl sub_08056EC0 + bl sub_08056F1C + ldr r2, _08056DC4 @ =gUnk_02036A38 + ldr r0, [r4] + ldr r1, [r4, #4] + str r0, [r2] + str r1, [r2, #4] + bl sub_0801C494 +_08056DB0: + pop {r4, pc} + .align 2, 0 +_08056DB4: .4byte gUnk_02022780 +_08056DB8: .4byte gUnk_02036A40 +_08056DBC: .4byte gUnk_02034CB0 +_08056DC0: .4byte 0x0000F07B +_08056DC4: .4byte gUnk_02036A38 + + thumb_func_start sub_08056DC8 +sub_08056DC8: @ 0x08056DC8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r7, r0, #0 + adds r4, r1, #0 + adds r6, r2, #0 + mov r8, r3 + adds r3, r7, #0 + lsls r0, r6, #6 + adds r0, #0x40 + adds r2, r3, r0 + mov r0, r8 + strh r0, [r3] + adds r3, #2 + movs r1, #0x80 + lsls r1, r1, #4 + mov sb, r1 + mov r0, r8 + mov r5, sb + orrs r0, r5 + strh r0, [r2] + adds r2, #2 + cmp r4, #0 + ble _08056E4C + mov r0, r8 + adds r0, #1 + strh r0, [r3] + adds r3, #2 + adds r1, r0, #0 + orrs r1, r5 + strh r1, [r2] + adds r2, #2 + subs r4, #2 + adds r1, r4, #0 + subs r4, #1 + mov ip, r0 + cmp r1, #0 + ble _08056E30 + mov r5, r8 + adds r5, #2 + adds r1, r5, #0 + mov r0, sb + orrs r1, r0 +_08056E20: + strh r5, [r3] + adds r3, #2 + strh r1, [r2] + adds r2, #2 + adds r0, r4, #0 + subs r4, #1 + cmp r0, #0 + bgt _08056E20 +_08056E30: + movs r1, #0x80 + lsls r1, r1, #3 + adds r0, r1, #0 + mov r1, ip + orrs r1, r0 + strh r1, [r3] + adds r3, #2 + movs r5, #0xc0 + lsls r5, r5, #4 + adds r0, r5, #0 + mov r1, ip + orrs r1, r0 + strh r1, [r2] + adds r2, #2 +_08056E4C: + movs r0, #0x80 + lsls r0, r0, #3 + adds r5, r0, #0 + mov r0, r8 + orrs r0, r5 + strh r0, [r3] + movs r0, #0xc0 + lsls r0, r0, #4 + adds r1, r0, #0 + mov r0, r8 + orrs r0, r1 + strh r0, [r2] + adds r7, #0x40 + adds r3, #0x40 + cmp r6, #0 + ble _08056EB6 + mov r0, r8 + adds r0, #3 + strh r0, [r7] + adds r1, r0, #0 + orrs r1, r5 + strh r1, [r3] + adds r7, #0x40 + adds r3, #0x40 + subs r6, #2 + adds r1, r6, #0 + subs r6, #1 + adds r2, r0, #0 + cmp r1, #0 + ble _08056EA0 + mov r4, r8 + adds r4, #4 + adds r1, r4, #0 + orrs r1, r5 +_08056E90: + strh r4, [r7] + strh r1, [r3] + adds r7, #0x40 + adds r3, #0x40 + adds r0, r6, #0 + subs r6, #1 + cmp r0, #0 + bgt _08056E90 +_08056EA0: + movs r1, #0x80 + lsls r1, r1, #4 + adds r0, r1, #0 + adds r1, r2, #0 + orrs r1, r0 + strh r1, [r7] + movs r5, #0xc0 + lsls r5, r5, #4 + adds r0, r5, #0 + orrs r2, r0 + strh r2, [r3] +_08056EB6: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08056EC0 +sub_08056EC0: @ 0x08056EC0 + push {r4, r5, r6, r7, lr} + ldr r6, _08056F10 @ =gUnk_02036A40 + ldrb r0, [r6, #6] + cmp r0, #0 + beq _08056F0E + ldrb r0, [r6, #7] + cmp r0, #0 + beq _08056F0E + adds r4, r0, #0 + ldrb r0, [r6, #5] + lsls r0, r0, #5 + ldrb r1, [r6, #4] + adds r0, r0, r1 + lsls r0, r0, #1 + ldr r1, _08056F14 @ =gUnk_02034CB2 + adds r5, r0, r1 + movs r0, #4 + subs r0, r0, r4 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r1, r0, #1 + ldr r7, _08056F18 @ =gUnk_0202281E +_08056EEC: + ldrb r3, [r6, #6] + lsls r0, r1, #1 + adds r0, r0, r7 + ldrh r2, [r0] + adds r5, #0x40 + adds r0, r1, #1 + subs r4, #1 + adds r1, r5, #0 +_08056EFC: + strh r2, [r1] + adds r1, #2 + adds r2, #2 + subs r3, #1 + cmp r3, #0 + bgt _08056EFC + adds r1, r0, #0 + cmp r4, #0 + bne _08056EEC +_08056F0E: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08056F10: .4byte gUnk_02036A40 +_08056F14: .4byte gUnk_02034CB2 +_08056F18: .4byte gUnk_0202281E + + thumb_func_start sub_08056F1C +sub_08056F1C: @ 0x08056F1C + push {lr} + ldr r0, _08056F58 @ =gUnk_02022780 + adds r0, #0x98 + ldr r0, [r0] + ldr r1, _08056F5C @ =0x0010FF00 + ands r0, r1 + ldr r1, _08056F60 @ =0x00100200 + cmp r0, r1 + bne _08056F54 + ldr r2, _08056F64 @ =gUnk_02036A40 + ldrb r1, [r2, #5] + lsls r1, r1, #5 + ldrb r0, [r2, #4] + adds r1, r1, r0 + lsls r1, r1, #1 + ldr r0, _08056F68 @ =gUnk_02034CB0 + adds r1, r1, r0 + ldrb r0, [r2, #7] + adds r0, #1 + lsls r0, r0, #5 + subs r0, #2 + ldrb r2, [r2, #6] + adds r0, r0, r2 + lsls r0, r0, #1 + adds r1, r1, r0 + ldr r2, _08056F6C @ =0x0000F080 + adds r0, r2, #0 + strh r0, [r1] +_08056F54: + pop {pc} + .align 2, 0 +_08056F58: .4byte gUnk_02022780 +_08056F5C: .4byte 0x0010FF00 +_08056F60: .4byte 0x00100200 +_08056F64: .4byte gUnk_02036A40 +_08056F68: .4byte gUnk_02034CB0 +_08056F6C: .4byte 0x0000F080 + + thumb_func_start sub_08056F70 +sub_08056F70: @ 0x08056F70 + push {lr} + ldr r0, _08056F80 @ =gUnk_02000D00 + ldr r1, _08056F84 @ =0x0600D040 + movs r2, #0xd0 + lsls r2, r2, #4 + bl sub_08000E96 + pop {pc} + .align 2, 0 +_08056F80: .4byte gUnk_02000D00 +_08056F84: .4byte 0x0600D040 + + thumb_func_start sub_08056F88 +sub_08056F88: @ 0x08056F88 + push {r4, lr} + adds r3, r0, #0 + adds r4, r1, #0 + cmp r3, #0xf + bls _08056F94 + movs r3, #0 +_08056F94: + lsls r2, r3, #4 + orrs r2, r4 + ldr r0, _08056FB4 @ =gUnk_02022780 + adds r1, r0, #0 + adds r1, #0x9c + ldrb r0, [r1] + cmp r0, r2 + beq _08056FB0 + strb r2, [r1] + ldr r2, _08056FB8 @ =0x0600CF60 + adds r0, r3, #0 + adds r1, r4, #0 + bl sub_0805F918 +_08056FB0: + pop {r4, pc} + .align 2, 0 +_08056FB4: .4byte gUnk_02022780 +_08056FB8: .4byte 0x0600CF60 + + thumb_func_start sub_08056FBC +sub_08056FBC: @ 0x08056FBC + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x68 + bl sub_08056FEC + ldr r0, [r4, #0x14] + adds r1, r4, #0 + adds r1, #0x70 + bl sub_08056FEC + ldr r0, [r4, #0x18] + adds r1, r4, #0 + adds r1, #0x78 + bl sub_08056FEC + ldr r0, [r4, #0x1c] + adds r1, r4, #0 + adds r1, #0x80 + bl sub_08056FEC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08056FEC +sub_08056FEC: @ 0x08056FEC + push {r4, r5, r6, r7, lr} + sub sp, #8 + adds r2, r0, #0 + adds r5, r1, #0 + bl sub_0801D51C + adds r2, r0, #0 + ldr r0, _08057040 @ =0x0FFFFFFF + ands r2, r0 + movs r4, #0 + movs r3, #0xf +_08057002: + mov r0, sp + adds r1, r0, r4 + adds r0, r2, #0 + ands r0, r3 + strb r0, [r1] + adds r4, #1 + lsrs r2, r2, #4 + cmp r2, #0 + bne _08057002 + movs r3, #0 + subs r2, r4, #1 + cmp r2, #0 + blt _08057032 + movs r6, #0x30 +_0805701E: + adds r1, r5, r3 + mov r7, sp + adds r0, r7, r2 + ldrb r0, [r0] + orrs r0, r6 + strb r0, [r1] + adds r3, #1 + subs r2, #1 + cmp r2, #0 + bge _0805701E +_08057032: + adds r1, r5, r3 + movs r0, #0 + strb r0, [r1] + adds r0, r4, #0 + add sp, #8 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08057040: .4byte 0x0FFFFFFF + + thumb_func_start sub_08057044 +sub_08057044: @ 0x08057044 + push {r4, r5, lr} + sub sp, #8 + adds r5, r1, #0 + adds r4, r2, #0 + mov r1, sp + bl sub_08056FEC + ldr r2, [sp] + movs r1, #3 + subs r1, r1, r0 + lsls r1, r1, #3 + lsls r2, r1 + orrs r2, r4 + str r2, [r5] + add sp, #8 + pop {r4, r5, pc} + + thumb_func_start sub_08057064 +sub_08057064: @ 0x08057064 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r1, _080570AC @ =gUnk_08107C5C + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldr r1, _080570B0 @ =gUnk_08107C48 + adds r5, r4, #0 + adds r5, #0x21 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldr r1, _080570B4 @ =gUnk_08107C40 + ldrb r0, [r5] + adds r0, r0, r1 + ldrb r1, [r0] + cmp r1, #0 + beq _080570AA + adds r2, r4, #0 + adds r2, #0x20 + ldrb r0, [r2] + cmp r0, r1 + beq _080570AA + strb r1, [r2] + adds r0, r1, #0 + bl sub_0801D7EC +_080570AA: + pop {r4, r5, pc} + .align 2, 0 +_080570AC: .4byte gUnk_08107C5C +_080570B0: .4byte gUnk_08107C48 +_080570B4: .4byte gUnk_08107C40 + + thumb_func_start sub_080570B8 +sub_080570B8: @ 0x080570B8 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x20 + ldrb r0, [r0] + bl sub_0801D7EC + movs r0, #0 + str r0, [r4, #0x34] + adds r1, r4, #0 + adds r1, #0x21 + ldrb r0, [r1] + cmp r0, #3 + bne _080570E0 + ldr r1, _080570DC @ =gUnk_03000F50 + movs r0, #1 + strh r0, [r1, #0x32] + b _080570F0 + .align 2, 0 +_080570DC: .4byte gUnk_03000F50 +_080570E0: + ldr r0, _080570F4 @ =gUnk_08107C48 + ldrb r1, [r1] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_080570F0: + pop {r4, pc} + .align 2, 0 +_080570F4: .4byte gUnk_08107C48 + + thumb_func_start sub_080570F8 +sub_080570F8: @ 0x080570F8 + push {lr} + ldr r1, _08057110 @ =gUnk_03000F50 + ldrh r2, [r1] + ldr r0, _08057114 @ =0x0000F7FF + ands r0, r2 + movs r2, #0 + strh r0, [r1] + adds r1, #0x66 + strh r2, [r1] + bl sub_08056250 + pop {pc} + .align 2, 0 +_08057110: .4byte gUnk_03000F50 +_08057114: .4byte 0x0000F7FF + + thumb_func_start sub_08057118 +sub_08057118: @ 0x08057118 + push {r4, lr} + adds r3, r0, #0 + movs r1, #0 + strb r1, [r3, #0xe] + adds r0, #0x20 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + movs r0, #1 + strb r0, [r3, #0xc] + ldr r1, _08057160 @ =gUnk_03000F50 + ldr r0, _08057164 @ =0x00001E04 + strh r0, [r1, #0x2c] + ldrh r0, [r1] + movs r4, #0x80 + lsls r4, r4, #4 + adds r2, r4, #0 + orrs r0, r2 + strh r0, [r1] + adds r2, r1, #0 + adds r2, #0x66 + ldr r0, _08057168 @ =0x00003648 + strh r0, [r2] + adds r1, #0x68 + movs r0, #0x80 + lsls r0, r0, #5 + strh r0, [r1] + ldr r1, _0805716C @ =sub_080570B8 + ldr r2, _08057170 @ =sub_080570F8 + adds r0, r3, #0 + bl sub_08052D74 + pop {r4, pc} + .align 2, 0 +_08057160: .4byte gUnk_03000F50 +_08057164: .4byte 0x00001E04 +_08057168: .4byte 0x00003648 +_0805716C: .4byte sub_080570B8 +_08057170: .4byte sub_080570F8 + + thumb_func_start sub_08057174 +sub_08057174: @ 0x08057174 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + bl sub_0804B128 + adds r3, r0, #0 + ldrb r0, [r3] + cmp r0, #0xff + bne _08057188 + b _0805728A +_08057188: + ldr r1, _080571E8 @ =gUnk_03001160 + movs r2, #0x2e + ldrsh r0, [r1, r2] + cmp r0, #0 + bge _08057194 + adds r0, #0xf +_08057194: + asrs r6, r0, #4 + movs r7, #0x32 + ldrsh r0, [r1, r7] + cmp r0, #0 + bge _080571A0 + adds r0, #0xf +_080571A0: + asrs r5, r0, #4 + movs r0, #0x21 + adds r0, r0, r4 + mov ip, r0 +_080571A8: + ldrb r0, [r3] + mov r1, ip + ldrb r1, [r1] + cmp r0, r1 + beq _08057282 + ldr r1, _080571EC @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + lsrs r0, r0, #4 + ldrb r7, [r3, #1] + adds r2, r0, r7 + ldrh r0, [r1, #8] + lsrs r0, r0, #4 + ldrb r1, [r3, #2] + adds r0, r0, r1 + subs r0, r5, r0 + ldrb r7, [r3, #4] + cmp r0, r7 + bhs _08057282 + subs r0, r6, r2 + ldrb r1, [r3, #3] + cmp r0, r1 + bhs _08057282 + ldrb r0, [r3] + subs r0, #1 + cmp r0, #5 + bhi _08057268 + lsls r0, r0, #2 + ldr r1, _080571F0 @ =_080571F4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080571E8: .4byte gUnk_03001160 +_080571EC: .4byte gUnk_03000BF0 +_080571F0: .4byte _080571F4 +_080571F4: @ jump table + .4byte _0805720C @ case 0 + .4byte _08057220 @ case 1 + .4byte _08057258 @ case 2 + .4byte _08057246 @ case 3 + .4byte _08057216 @ case 4 + .4byte _08057236 @ case 5 +_0805720C: + mov r2, ip + ldrb r0, [r2] + cmp r0, #2 + bne _08057268 + b _08057260 +_08057216: + mov r7, ip + ldrb r0, [r7] + cmp r0, #6 + bne _08057268 + b _08057260 +_08057220: + mov r0, ip + ldrb r1, [r0] + cmp r1, #0 + bne _08057268 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x20 + strb r1, [r0] + b _08057268 +_08057236: + mov r2, ip + ldrb r1, [r2] + cmp r1, #0 + bne _08057268 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + b _08057268 +_08057246: + mov r7, ip + ldrb r1, [r7] + cmp r1, #0 + bne _08057268 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + str r1, [r4, #0x34] + b _08057268 +_08057258: + mov r1, ip + ldrb r0, [r1] + cmp r0, #4 + bne _08057268 +_08057260: + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #9 + strb r0, [r4, #0xe] +_08057268: + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _08057282 + movs r0, #8 + strb r0, [r4, #0xf] + ldrb r0, [r3] + mov r2, ip + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x22 + movs r0, #1 + strb r0, [r1] + b _0805728A +_08057282: + adds r3, #5 + ldrb r0, [r3] + cmp r0, #0xff + bne _080571A8 +_0805728A: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0805728C +sub_0805728C: @ 0x0805728C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080572CA + movs r0, #8 + strb r0, [r4, #0xf] + ldr r2, _080572CC @ =gUnk_03000F50 + ldr r3, _080572D0 @ =gUnk_08107C1C + ldrb r0, [r4, #0xe] + adds r1, r0, #1 + strb r1, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r3 + ldrh r0, [r0] + adds r2, #0x68 + strh r0, [r2] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #0xa + bne _080572CA + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x22 + movs r0, #0 + strb r0, [r1] +_080572CA: + pop {r4, pc} + .align 2, 0 +_080572CC: .4byte gUnk_03000F50 +_080572D0: .4byte gUnk_08107C1C + + thumb_func_start sub_080572D4 +sub_080572D4: @ 0x080572D4 + push {r4, r5, lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xf] + subs r0, #1 + strb r0, [r3, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08057320 + movs r0, #8 + strb r0, [r3, #0xf] + ldr r5, _08057324 @ =gUnk_03000F50 + ldr r2, _08057328 @ =gUnk_08107C1C + ldrb r0, [r3, #0xe] + adds r1, r0, #0 + adds r1, #0xff + strb r1, [r3, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r2 + ldrh r2, [r0] + adds r0, r5, #0 + adds r0, #0x68 + movs r4, #0 + strh r2, [r0] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #0xff + bne _08057320 + movs r0, #1 + strb r0, [r3, #0xc] + adds r0, r3, #0 + adds r0, #0x22 + strb r4, [r0] + subs r0, #1 + strb r4, [r0] + adds r0, r5, #0 + adds r0, #0x6c + strb r4, [r0] +_08057320: + pop {r4, r5, pc} + .align 2, 0 +_08057324: .4byte gUnk_03000F50 +_08057328: .4byte gUnk_08107C1C + + thumb_func_start sub_0805732C +sub_0805732C: @ 0x0805732C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r6, r0, #0 + adds r5, r1, #0 + ldr r2, _08057390 @ =gUnk_03003DE4 + ldrb r1, [r2] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + ldr r1, _08057394 @ =gUnk_02017AA0 + adds r4, r0, r1 + movs r3, #0 + mov ip, r2 + mov r8, r1 + ldr r0, _08057398 @ =gUnk_080C9160 + mov sb, r0 + movs r2, #0xff + ldr r1, _0805739C @ =gUnk_03000F50 +_08057354: + adds r0, r5, r3 + ands r0, r2 + lsls r0, r0, #1 + add r0, sb + movs r7, #0 + ldrsh r0, [r0, r7] + muls r0, r6, r0 + lsrs r0, r0, #8 + ldrh r7, [r1, #0x2e] + adds r0, r0, r7 + strh r0, [r4] + adds r4, #2 + adds r3, #1 + cmp r3, #0x9f + bls _08057354 + mov r0, ip + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + add r0, r8 + ldr r1, _080573A0 @ =0x0400001C + ldr r2, _080573A4 @ =0xA2600001 + bl sub_0805622C + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08057390: .4byte gUnk_03003DE4 +_08057394: .4byte gUnk_02017AA0 +_08057398: .4byte gUnk_080C9160 +_0805739C: .4byte gUnk_03000F50 +_080573A0: .4byte 0x0400001C +_080573A4: .4byte 0xA2600001 + + thumb_func_start nullsub_494 +nullsub_494: @ 0x080573A8 + bx lr + .align 2, 0 + + thumb_func_start sub_080573AC +sub_080573AC: @ 0x080573AC + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r2, _08057434 @ =gUnk_03000BF0 + ldr r0, [r2, #0x28] + ldr r1, _08057438 @ =0xFFFFE000 + adds r0, r0, r1 + str r0, [r2, #0x28] + ldr r0, [r2, #0x2c] + ldr r1, _0805743C @ =0xFFFFF000 + adds r0, r0, r1 + str r0, [r2, #0x2c] + ldr r5, _08057440 @ =gUnk_03000F50 + movs r1, #0xa + ldrsh r0, [r2, r1] + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #1 + ldrh r1, [r2, #0x2a] + adds r0, r0, r1 + strh r0, [r5, #0x2e] + movs r1, #0xc + ldrsh r0, [r2, r1] + ldrh r1, [r2, #8] + subs r0, r0, r1 + asrs r0, r0, #1 + ldrh r2, [r2, #0x2e] + adds r0, r0, r2 + strh r0, [r5, #0x30] + ldr r2, _08057444 @ =gUnk_080C9160 + ldr r4, _08057448 @ =gUnk_030010A0 + ldr r1, [r4] + ldrb r0, [r4] + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r2 + movs r2, #0 + ldrsh r0, [r0, r2] + asrs r0, r0, #5 + adds r0, #0x10 + bl sub_0805732C + adds r0, r6, #0 + adds r0, #0x22 + ldrb r0, [r0] + cmp r0, #0 + bne _08057430 + ldr r0, [r4] + movs r1, #0x1f + ands r0, r1 + cmp r0, #0 + bne _08057430 + adds r2, r6, #0 + adds r2, #0x24 + ldrb r0, [r2] + adds r0, #1 + movs r1, #7 + ands r0, r1 + strb r0, [r2] + ldr r1, _0805744C @ =gUnk_08107C30 + ldrb r0, [r2] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + adds r0, r5, #0 + adds r0, #0x68 + strh r1, [r0] +_08057430: + pop {r4, r5, r6, pc} + .align 2, 0 +_08057434: .4byte gUnk_03000BF0 +_08057438: .4byte 0xFFFFE000 +_0805743C: .4byte 0xFFFFF000 +_08057440: .4byte gUnk_03000F50 +_08057444: .4byte gUnk_080C9160 +_08057448: .4byte gUnk_030010A0 +_0805744C: .4byte gUnk_08107C30 + + thumb_func_start sub_08057450 +sub_08057450: @ 0x08057450 + push {r4, r5, r6, lr} + adds r3, r0, #0 + ldr r4, _08057504 @ =gUnk_03000F50 + movs r0, #0x10 + strh r0, [r4, #0x2e] + ldr r0, _08057508 @ =gUnk_03000BF0 + movs r2, #0xc + ldrsh r1, [r0, r2] + ldrh r0, [r0, #8] + subs r1, r1, r0 + asrs r1, r1, #2 + movs r2, #0x3f + adds r0, r1, #0 + ands r0, r2 + strh r0, [r4, #0x30] + cmp r1, #0 + bge _08057474 + adds r1, #0x3f +_08057474: + asrs r0, r1, #6 + lsls r0, r0, #9 + ldr r1, _0805750C @ =gUnk_02001A40 + adds r1, r0, r1 + str r1, [r4, #0x34] + ldr r0, [r3, #0x34] + cmp r0, r1 + beq _0805748A + str r1, [r3, #0x34] + movs r0, #1 + strh r0, [r4, #0x32] +_0805748A: + adds r0, r3, #0 + adds r0, #0x22 + ldrb r0, [r0] + ldr r5, _08057510 @ =gUnk_030010A0 + cmp r0, #0 + bne _080574BE + ldr r0, [r5] + movs r1, #0x1f + ands r0, r1 + cmp r0, #0 + bne _080574BE + adds r2, r3, #0 + adds r2, #0x24 + ldrb r0, [r2] + adds r0, #1 + movs r1, #7 + ands r0, r1 + strb r0, [r2] + ldr r1, _08057514 @ =gUnk_08107C30 + ldrb r0, [r2] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + adds r0, r4, #0 + adds r0, #0x68 + strh r1, [r0] +_080574BE: + ldr r0, [r5] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _08057502 + adds r0, r3, #0 + adds r0, #0x23 + ldrb r1, [r0] + lsls r1, r1, #5 + ldr r2, _08057518 @ =gUnk_085B4180 + adds r1, r1, r2 + movs r5, #0 + adds r6, r0, #0 + adds r4, r1, #0 + adds r4, #0xe +_080574DC: + adds r0, r5, #0 + adds r0, #0x87 + ldrh r1, [r4] + bl sub_0801D79C + adds r0, r5, #0 + adds r0, #0x8c + ldrh r1, [r4, #0xa] + bl sub_0801D79C + adds r4, #2 + adds r5, #1 + cmp r5, #3 + bls _080574DC + ldrb r0, [r6] + adds r0, #1 + movs r1, #3 + ands r0, r1 + strb r0, [r6] +_08057502: + pop {r4, r5, r6, pc} + .align 2, 0 +_08057504: .4byte gUnk_03000F50 +_08057508: .4byte gUnk_03000BF0 +_0805750C: .4byte gUnk_02001A40 +_08057510: .4byte gUnk_030010A0 +_08057514: .4byte gUnk_08107C30 +_08057518: .4byte gUnk_085B4180 + + thumb_func_start sub_0805751C +sub_0805751C: @ 0x0805751C + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xc] + cmp r1, #0 + bne _0805753A + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _08057544 @ =gUnk_03000F50 + strh r1, [r0, #0x32] + strh r1, [r0, #0x1a] + ldr r1, _08057548 @ =sub_080576A0 + adds r0, r4, #0 + movs r2, #0 + bl sub_08052D74 +_0805753A: + adds r0, r4, #0 + bl sub_0805754C + pop {r4, pc} + .align 2, 0 +_08057544: .4byte gUnk_03000F50 +_08057548: .4byte sub_080576A0 + + thumb_func_start sub_0805754C +sub_0805754C: @ 0x0805754C + push {r4, r5, r6, lr} + adds r2, r0, #0 + ldr r3, _080575BC @ =gUnk_03000BF0 + movs r0, #0xc + ldrsh r1, [r3, r0] + ldrh r0, [r3, #8] + subs r1, r1, r0 + asrs r0, r1, #3 + adds r1, r1, r0 + ldr r4, _080575C0 @ =gUnk_03000F50 + movs r6, #0x3f + adds r0, r1, #0 + ands r0, r6 + strh r0, [r4, #0x30] + adds r0, r1, #0 + cmp r1, #0 + bge _08057570 + adds r0, #0x3f +_08057570: + asrs r0, r0, #6 + lsls r0, r0, #9 + ldr r5, _080575C4 @ =gUnk_02002F00 + adds r1, r0, r5 + str r1, [r4, #0x34] + ldr r0, [r2, #0x38] + cmp r0, r1 + beq _08057586 + str r1, [r2, #0x38] + movs r0, #1 + strh r0, [r4, #0x32] +_08057586: + movs r0, #0xc + ldrsh r1, [r3, r0] + ldrh r0, [r3, #8] + subs r1, r1, r0 + asrs r0, r1, #2 + adds r1, r1, r0 + adds r0, r1, #0 + ands r0, r6 + strh r0, [r4, #0x18] + adds r0, r1, #0 + cmp r0, #0 + bge _080575A0 + adds r0, #0x3f +_080575A0: + asrs r0, r0, #6 + lsls r0, r0, #9 + movs r3, #0x80 + lsls r3, r3, #6 + adds r1, r5, r3 + adds r1, r0, r1 + str r1, [r4, #0x1c] + ldr r0, [r2, #0x3c] + cmp r0, r1 + beq _080575BA + str r1, [r2, #0x3c] + movs r0, #1 + strh r0, [r4, #0x1a] +_080575BA: + pop {r4, r5, r6, pc} + .align 2, 0 +_080575BC: .4byte gUnk_03000BF0 +_080575C0: .4byte gUnk_03000F50 +_080575C4: .4byte gUnk_02002F00 + + thumb_func_start sub_080575C8 +sub_080575C8: @ 0x080575C8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r0, _08057664 @ =gUnk_0200B650 + movs r5, #0 + str r5, [r0] + movs r0, #0x80 + lsls r0, r0, #0x13 + strh r5, [r0] + adds r0, r4, #0 + bl sub_0801D7EC + ldr r0, _08057668 @ =gUnk_02034350 + strb r4, [r0, #0x10] + ldr r3, _0805766C @ =gUnk_03000BF0 + movs r0, #0xc + ldrsh r1, [r3, r0] + ldrh r0, [r3, #8] + subs r1, r1, r0 + asrs r0, r1, #3 + adds r1, r1, r0 + ldr r2, _08057670 @ =gUnk_03000F50 + movs r7, #0x3f + adds r0, r1, #0 + ands r0, r7 + strh r0, [r2, #0x30] + strh r5, [r2, #0x2e] + adds r0, r1, #0 + cmp r1, #0 + bge _08057604 + adds r0, #0x3f +_08057604: + asrs r0, r0, #6 + lsls r0, r0, #9 + ldr r4, _08057674 @ =gUnk_02002F00 + adds r0, r0, r4 + str r0, [r2, #0x34] + ldr r0, _08057678 @ =0x00001D49 + strh r0, [r2, #0x2c] + movs r6, #1 + strh r6, [r2, #0x32] + movs r0, #0xc + ldrsh r1, [r3, r0] + ldrh r0, [r3, #8] + subs r1, r1, r0 + asrs r0, r1, #2 + adds r1, r1, r0 + adds r0, r1, #0 + ands r0, r7 + strh r0, [r2, #0x18] + strh r5, [r2, #0x16] + adds r0, r1, #0 + cmp r0, #0 + bge _08057632 + adds r0, #0x3f +_08057632: + asrs r0, r0, #6 + lsls r0, r0, #9 + movs r3, #0x80 + lsls r3, r3, #6 + adds r1, r4, r3 + adds r0, r0, r1 + str r0, [r2, #0x1c] + ldr r0, _0805767C @ =0x00001E49 + strh r0, [r2, #0x14] + strh r6, [r2, #0x1a] + adds r1, r2, #0 + adds r1, #0x66 + ldr r0, _08057680 @ =0x00003C48 + strh r0, [r1] + adds r1, #2 + ldr r0, _08057684 @ =0x00000609 + strh r0, [r1] + ldrh r0, [r2] + movs r3, #0xa0 + lsls r3, r3, #4 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08057664: .4byte gUnk_0200B650 +_08057668: .4byte gUnk_02034350 +_0805766C: .4byte gUnk_03000BF0 +_08057670: .4byte gUnk_03000F50 +_08057674: .4byte gUnk_02002F00 +_08057678: .4byte 0x00001D49 +_0805767C: .4byte 0x00001E49 +_08057680: .4byte 0x00003C48 +_08057684: .4byte 0x00000609 + + thumb_func_start sub_08057688 +sub_08057688: @ 0x08057688 + ldr r0, _08057694 @ =gUnk_03000F50 + ldr r1, _08057698 @ =0x00001D48 + strh r1, [r0, #0x2c] + ldr r1, _0805769C @ =0x00001E48 + strh r1, [r0, #0x14] + bx lr + .align 2, 0 +_08057694: .4byte gUnk_03000F50 +_08057698: .4byte 0x00001D48 +_0805769C: .4byte 0x00001E48 + + thumb_func_start sub_080576A0 +sub_080576A0: @ 0x080576A0 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080576BC @ =gUnk_02034350 + ldrb r0, [r0, #0x10] + bl sub_0801D7EC + movs r0, #0 + str r0, [r4, #0x38] + str r0, [r4, #0x3c] + adds r0, r4, #0 + bl sub_0805754C + pop {r4, pc} + .align 2, 0 +_080576BC: .4byte gUnk_02034350 + + thumb_func_start sub_080576C0 +sub_080576C0: @ 0x080576C0 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080576EC + movs r0, #1 + strb r0, [r4, #0xc] + ldrh r0, [r4, #0x38] + ldr r2, _080576E8 @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + adds r0, r0, r1 + subs r0, #0x20 + str r0, [r4, #0x20] + ldrh r0, [r4, #0x3a] + ldrh r1, [r2, #8] + adds r0, r0, r1 + subs r0, #0x20 + str r0, [r4, #0x24] + b _080577AA + .align 2, 0 +_080576E8: .4byte gUnk_03000BF0 +_080576EC: + ldr r0, [r4, #0x20] + ldr r1, [r4, #0x24] + movs r2, #0x40 + movs r3, #0x40 + bl sub_0806FBFC + cmp r0, #0 + beq _080577A8 + ldr r5, _08057738 @ =gUnk_02033A90 + ldr r0, [r4, #0x20] + adds r0, #0x20 + strh r0, [r5, #0x12] + ldr r1, [r4, #0x24] + ldr r2, _0805773C @ =gUnk_08107C6C + ldrb r0, [r4, #0xa] + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #0x20 + adds r1, r1, r0 + strh r1, [r5, #0x14] + adds r0, r4, #0 + adds r0, #0x34 + ldrb r0, [r0] + strb r0, [r5, #0x16] + ldrb r0, [r4, #0xa] + strb r0, [r5, #0x17] + movs r0, #0x14 + bl sub_0807CC30 + cmp r0, #0 + bne _08057740 + movs r0, #1 + strb r0, [r5, #0x18] + movs r0, #5 + strb r0, [r5, #0x17] + b _080577AA + .align 2, 0 +_08057738: .4byte gUnk_02033A90 +_0805773C: .4byte gUnk_08107C6C +_08057740: + ldr r2, _08057758 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0805775C + ldrb r0, [r2, #2] + cmp r0, #0 + bne _0805775C + movs r0, #2 + strb r0, [r5, #0x18] + b _0805776A + .align 2, 0 +_08057758: .4byte gUnk_03003F80 +_0805775C: + bl sub_08057810 + cmp r0, #0 + beq _0805776A + ldr r1, _080577A0 @ =gUnk_02033A90 + movs r0, #3 + strb r0, [r1, #0x18] +_0805776A: + ldrh r0, [r4, #0x38] + ldrh r1, [r4, #0x3a] + ldrb r2, [r4, #0xe] + bl sub_080002C0 + cmp r0, #0x3d + bne _080577AA + ldrh r0, [r4, #0x38] + ldr r2, _080577A4 @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + adds r0, r0, r1 + ldrh r1, [r4, #0x3a] + ldrh r2, [r2, #8] + adds r1, r1, r2 + ldrb r2, [r4, #0xe] + bl sub_080577AC + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _080577AA + movs r0, #1 + strb r0, [r4, #0xf] + movs r0, #0xa9 + lsls r0, r0, #1 + bl sub_080A3268 + b _080577AA + .align 2, 0 +_080577A0: .4byte gUnk_02033A90 +_080577A4: .4byte gUnk_03000BF0 +_080577A8: + strb r0, [r4, #0xf] +_080577AA: + pop {r4, r5, pc} + + thumb_func_start sub_080577AC +sub_080577AC: @ 0x080577AC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + adds r7, r1, #0 + mov r8, r2 + bl sub_08000E50 + adds r5, r0, #0 + movs r0, #7 + ands r0, r5 + cmp r0, #0 + bne _08057808 + movs r0, #0xf + movs r1, #0x26 + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _08057808 + lsrs r3, r5, #8 + movs r0, #0xf + ands r3, r0 + lsrs r2, r5, #0x10 + ands r2, r0 + cmp r2, #4 + ble _080577E6 + rsbs r2, r2, #0 +_080577E6: + lsrs r0, r5, #0x18 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _080577F2 + rsbs r3, r3, #0 +_080577F2: + adds r0, r6, r3 + strh r0, [r4, #0x2e] + adds r0, r7, r2 + strh r0, [r4, #0x32] + adds r0, r4, #0 + adds r0, #0x38 + mov r1, r8 + strb r1, [r0] + adds r0, r4, #0 + bl sub_08016A04 +_08057808: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08057810 +sub_08057810: @ 0x08057810 + push {lr} + ldr r2, _08057848 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08057850 + adds r0, r2, #0 + adds r0, #0xaa + ldrb r0, [r0] + cmp r0, #0 + bne _08057850 + ldr r0, _0805784C @ =gUnk_02033A90 + ldrb r0, [r0, #0x17] + cmp r0, #6 + beq _08057850 + ldrb r0, [r2, #5] + cmp r0, #0 + bne _08057850 + adds r0, r2, #0 + adds r0, #0xa8 + ldrb r0, [r0] + cmp r0, #1 + bgt _08057850 + cmp r0, #0 + blt _08057850 + movs r0, #1 + b _08057852 + .align 2, 0 +_08057848: .4byte gUnk_03003F80 +_0805784C: .4byte gUnk_02033A90 +_08057850: + movs r0, #0 +_08057852: + pop {pc} + + thumb_func_start sub_08057854 +sub_08057854: @ 0x08057854 + push {lr} + ldr r2, _08057868 @ =gUnk_08107C70 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08057868: .4byte gUnk_08107C70 + + thumb_func_start sub_0805786C +sub_0805786C: @ 0x0805786C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r8, r0 + bl sub_080805F8 + ldr r6, _080578D4 @ =gUnk_03004030 + ldrb r0, [r6, #8] + cmp r0, #0 + beq _08057914 + ldr r0, [r6] + cmp r0, #0 + bne _080578C0 + movs r0, #0xff + strb r0, [r6, #0xa] + ldr r0, _080578D8 @ =gUnk_03000BF0 + ldrb r5, [r0, #5] + ldr r7, _080578DC @ =gUnk_08107DC0 + ldrb r0, [r0, #4] + lsls r0, r0, #2 + adds r0, r0, r7 + ldr r4, [r0] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08057AA8 + adds r4, r0, #0 + cmp r4, #0 + beq _080578C0 + ldrb r5, [r4, #5] + ldrb r0, [r4, #4] + lsls r0, r0, #2 + adds r0, r0, r7 + ldr r4, [r0] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08057AA8 + adds r4, r0, #0 + cmp r4, #0 + beq _080578C0 + str r4, [r6] +_080578C0: + ldr r0, _080578D8 @ =gUnk_03000BF0 + ldrb r5, [r0, #5] + ldr r1, _080578DC @ =gUnk_08107DC0 + ldrb r0, [r0, #4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r4, [r0] + movs r6, #0x81 + lsls r6, r6, #7 + b _08057906 + .align 2, 0 +_080578D4: .4byte gUnk_03004030 +_080578D8: .4byte gUnk_03000BF0 +_080578DC: .4byte gUnk_08107DC0 +_080578E0: + ldrh r1, [r4] + adds r1, #0x3f + adds r0, r6, #0 + movs r2, #1 + bl sub_0800015E + ldrh r1, [r4] + adds r1, #0x40 + adds r0, r6, #0 + movs r2, #1 + bl sub_0800015E + ldrh r1, [r4] + adds r1, #0x41 + adds r0, r6, #0 + movs r2, #1 + bl sub_0800015E + adds r4, #8 +_08057906: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08057AA8 + adds r4, r0, #0 + cmp r4, #0 + bne _080578E0 +_08057914: + movs r0, #1 + mov r1, r8 + strb r0, [r1, #0xc] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08057920 +sub_08057920: @ 0x08057920 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r0, _08057934 @ =gUnk_03000BF0 + ldrb r5, [r0, #5] + ldr r1, _08057938 @ =gUnk_08107DC0 + ldrb r0, [r0, #4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r4, [r0] + b _0805793E + .align 2, 0 +_08057934: .4byte gUnk_03000BF0 +_08057938: .4byte gUnk_08107DC0 +_0805793C: + adds r4, #8 +_0805793E: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08057AA8 + adds r4, r0, #0 + cmp r4, #0 + beq _08057958 + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0805795C + cmp r0, #0 + beq _0805793C +_08057958: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0805795C +sub_0805795C: @ 0x0805795C + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r6, r1, #0 + ldr r0, _080579BC @ =gUnk_03004030 + ldrb r0, [r0, #8] + cmp r0, #0 + beq _080579C8 + ldr r1, _080579C0 @ =gUnk_03001160 + ldr r3, _080579C4 @ =gUnk_03000BF0 + ldrh r2, [r1, #0x2e] + ldrh r0, [r3, #6] + subs r2, r2, r0 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + ldrh r0, [r1, #0x32] + ldrh r1, [r3, #8] + subs r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldrh r3, [r6] + movs r1, #0x3f + ands r1, r3 + lsls r1, r1, #4 + adds r1, #8 + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r3 + lsls r0, r0, #0xe + movs r3, #0xc0 + lsls r3, r3, #0xd + adds r0, r0, r3 + lsrs r3, r0, #0x10 + subs r2, r2, r1 + adds r0, r2, #0 + adds r0, #0x18 + cmp r0, #0x30 + bhi _08057A14 + subs r0, r4, r3 + adds r0, #8 + cmp r0, #0x10 + bhi _08057A14 + cmp r4, r3 + bhs _08057A00 + adds r0, r2, #0 + adds r0, #0xc + cmp r0, #0x18 + bls _08057A14 + b _08057A00 + .align 2, 0 +_080579BC: .4byte gUnk_03004030 +_080579C0: .4byte gUnk_03001160 +_080579C4: .4byte gUnk_03000BF0 +_080579C8: + ldr r3, _08057A0C @ =gUnk_03001160 + movs r1, #0x2e + ldrsh r0, [r3, r1] + ldr r2, _08057A10 @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r4, r0, #4 + movs r1, #0x3f + ands r4, r1 + movs r0, #0x32 + ldrsh r5, [r3, r0] + ldrh r2, [r2, #8] + subs r0, r5, r2 + asrs r0, r0, #4 + ands r0, r1 + lsls r0, r0, #6 + orrs r4, r0 + ldrh r1, [r6] + cmp r4, r1 + bne _08057A14 + lsrs r0, r4, #6 + lsls r0, r0, #4 + adds r0, r2, r0 + adds r0, #6 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r5, r3 + bge _08057A14 +_08057A00: + adds r0, r7, #0 + adds r1, r6, #0 + bl sub_08057A18 + movs r0, #1 + b _08057A16 + .align 2, 0 +_08057A0C: .4byte gUnk_03001160 +_08057A10: .4byte gUnk_03000BF0 +_08057A14: + movs r0, #0 +_08057A16: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08057A18 +sub_08057A18: @ 0x08057A18 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r5, r1, #0 + bl sub_0805E5A8 + ldr r6, _08057A94 @ =gUnk_03004030 + ldrb r0, [r6, #9] + strb r0, [r6, #0xa] + ldr r3, _08057A98 @ =gUnk_03000BF0 + ldrb r0, [r3, #4] + strb r0, [r6, #9] + ldr r1, _08057A9C @ =gUnk_030010A0 + ldrb r0, [r5, #4] + strb r0, [r1, #0xc] + ldrb r0, [r5, #5] + strb r0, [r1, #0xd] + ldrb r0, [r5, #4] + strb r0, [r3, #4] + ldrb r0, [r5, #5] + strb r0, [r3, #5] + str r5, [r6] + ldr r4, _08057AA0 @ =gUnk_03001160 + ldrh r1, [r4, #0x2e] + ldrh r0, [r3, #6] + subs r1, r1, r0 + ldrh r2, [r5] + movs r0, #0x3f + ands r0, r2 + lsls r0, r0, #4 + subs r1, r1, r0 + strh r1, [r6, #4] + ldrh r1, [r4, #0x32] + ldrh r0, [r3, #8] + subs r1, r1, r0 + ldrh r2, [r5] + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r2 + lsrs r0, r0, #2 + subs r1, r1, r0 + strh r1, [r6, #6] + ldrb r1, [r6, #8] + cmp r1, #0 + bne _08057A86 + ldrb r0, [r5, #5] + movs r2, #0x80 + orrs r0, r2 + ldrb r3, [r6, #0xb] + cmp r0, r3 + beq _08057A80 + ldr r0, _08057AA4 @ =gUnk_02034480 + strh r1, [r0] +_08057A80: + ldrb r0, [r5, #5] + orrs r0, r2 + strb r0, [r6, #0xb] +_08057A86: + ldrb r0, [r5, #3] + bl sub_08080930 + adds r0, r7, #0 + bl sub_0805E900 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08057A94: .4byte gUnk_03004030 +_08057A98: .4byte gUnk_03000BF0 +_08057A9C: .4byte gUnk_030010A0 +_08057AA0: .4byte gUnk_03001160 +_08057AA4: .4byte gUnk_02034480 + + thumb_func_start sub_08057AA8 +sub_08057AA8: @ 0x08057AA8 + push {lr} + adds r2, r0, #0 + ldrh r0, [r2] + ldr r3, _08057AC0 @ =0x0000FFFF + cmp r0, r3 + beq _08057ACC +_08057AB4: + ldrb r0, [r2, #2] + cmp r0, r1 + bne _08057AC4 + adds r0, r2, #0 + b _08057ACE + .align 2, 0 +_08057AC0: .4byte 0x0000FFFF +_08057AC4: + adds r2, #8 + ldrh r0, [r2] + cmp r0, r3 + bne _08057AB4 +_08057ACC: + movs r0, #0 +_08057ACE: + pop {pc} + + thumb_func_start sub_08057AD0 +sub_08057AD0: @ 0x08057AD0 + push {lr} + ldr r2, _08057AE4 @ =gUnk_08108044 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08057AE4: .4byte gUnk_08108044 + + thumb_func_start sub_08057AE8 +sub_08057AE8: @ 0x08057AE8 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xb] + movs r1, #3 + ands r1, r0 + lsls r1, r1, #1 + ldrb r0, [r5, #0xe] + cmp r0, #1 + bne _08057B04 + ldr r0, _08057B00 @ =0x00000323 + strh r0, [r5, #0x30] + b _08057B12 + .align 2, 0 +_08057B00: .4byte 0x00000323 +_08057B04: + movs r0, #2 + ands r0, r1 + movs r2, #0x36 + cmp r0, #0 + beq _08057B10 + movs r2, #0x37 +_08057B10: + strh r2, [r5, #0x30] +_08057B12: + ldr r2, _08057B9C @ =gUnk_08108024 + lsls r3, r1, #1 + adds r0, r3, r2 + ldrh r0, [r0] + movs r4, #0 + strh r0, [r5, #0x28] + adds r1, #1 + lsls r1, r1, #1 + adds r2, r1, r2 + ldrh r0, [r2] + strh r0, [r5, #0x2a] + ldr r2, _08057BA0 @ =gUnk_08108034 + adds r3, r3, r2 + ldrh r0, [r3] + strh r0, [r5, #0x2c] + adds r1, r1, r2 + ldrh r0, [r1] + strh r0, [r5, #0x2e] + ldrb r2, [r5, #0xb] + lsrs r0, r2, #2 + movs r1, #0xf + ands r0, r1 + adds r0, #1 + strh r0, [r5, #0x32] + movs r0, #0x1c + strb r0, [r5, #0xe] + strb r4, [r5, #0xf] + movs r0, #0x80 + ands r0, r2 + movs r1, #1 + cmp r0, #0 + beq _08057B54 + movs r1, #2 +_08057B54: + strb r1, [r5, #0xc] + cmp r1, #2 + bne _08057B9A + ldrh r0, [r5, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _08057B9A + ldrh r0, [r5, #0x32] + cmp r0, #0 + beq _08057B94 +_08057B6A: + ldrh r1, [r5, #0x28] + ldrh r2, [r5, #0x2a] + adds r0, r5, #0 + bl sub_08057CA4 + ldrh r0, [r5, #0x30] + movs r2, #0x38 + ldrsh r1, [r5, r2] + movs r3, #0x3a + ldrsh r2, [r5, r3] + lsls r2, r2, #6 + orrs r1, r2 + ldrh r2, [r5, #0x3c] + bl sub_0807B7D8 + ldrh r0, [r5, #0x32] + subs r0, #1 + strh r0, [r5, #0x32] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08057B6A +_08057B94: + adds r0, r5, #0 + bl sub_0805E900 +_08057B9A: + pop {r4, r5, pc} + .align 2, 0 +_08057B9C: .4byte gUnk_08108024 +_08057BA0: .4byte gUnk_08108034 + + thumb_func_start sub_08057BA4 +sub_08057BA4: @ 0x08057BA4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08057C24 + movs r0, #8 + strb r0, [r4, #0xe] + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _08057BF6 + ldrh r0, [r4, #0x32] + ldrb r1, [r4, #0xf] + cmp r0, r1 + beq _08057C24 + ldrh r1, [r4, #0x28] + ldrh r2, [r4, #0x2a] + adds r0, r4, #0 + bl sub_08057CA4 + ldrh r0, [r4, #0x30] + movs r2, #0x38 + ldrsh r1, [r4, r2] + movs r3, #0x3a + ldrsh r2, [r4, r3] + lsls r2, r2, #6 + orrs r1, r2 + ldrh r2, [r4, #0x3c] + bl sub_0807B7D8 + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] + movs r0, #0x71 + bl sub_080A3268 + b _08057C24 +_08057BF6: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _08057C24 + movs r1, #0x38 + ldrsh r0, [r4, r1] + movs r2, #0x3a + ldrsh r1, [r4, r2] + lsls r1, r1, #6 + orrs r0, r1 + ldrh r1, [r4, #0x3c] + bl sub_0807BA8C + ldrh r1, [r4, #0x2c] + ldrh r2, [r4, #0x2e] + adds r0, r4, #0 + bl sub_08057CA4 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + movs r0, #0x71 + bl sub_080A3268 +_08057C24: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08057C28 +sub_08057C28: @ 0x08057C28 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _08057C44 + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _08057C9C + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + b _08057C9C +_08057C44: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08057C9C + movs r0, #8 + strb r0, [r4, #0xe] + ldrh r0, [r4, #0x32] + ldrb r1, [r4, #0xf] + cmp r0, r1 + beq _08057C88 + ldrh r1, [r4, #0x28] + ldrh r2, [r4, #0x2a] + adds r0, r4, #0 + bl sub_08057CA4 + ldrh r0, [r4, #0x30] + movs r2, #0x38 + ldrsh r1, [r4, r2] + movs r3, #0x3a + ldrsh r2, [r4, r3] + lsls r2, r2, #6 + orrs r1, r2 + ldrh r2, [r4, #0x3c] + bl sub_0807B7D8 + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] + movs r0, #0x71 + bl sub_080A3268 + b _08057C9C +_08057C88: + ldrh r1, [r4, #0x30] + ldr r0, _08057CA0 @ =0x00000323 + cmp r1, r0 + beq _08057C96 + movs r0, #0x72 + bl sub_080A3268 +_08057C96: + adds r0, r4, #0 + bl sub_0805E900 +_08057C9C: + pop {r4, pc} + .align 2, 0 +_08057CA0: .4byte 0x00000323 + + thumb_func_start sub_08057CA4 +sub_08057CA4: @ 0x08057CA4 + ldrh r3, [r0, #0x38] + adds r3, r3, r1 + strh r3, [r0, #0x38] + ldrh r1, [r0, #0x3a] + adds r1, r1, r2 + strh r1, [r0, #0x3a] + bx lr + .align 2, 0 + + thumb_func_start sub_08057CB4 +sub_08057CB4: @ 0x08057CB4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08057CD6 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + bl sub_0804B128 + str r0, [r4, #0x20] + cmp r0, #0 + bne _08057CD6 + adds r0, r4, #0 + bl sub_0805E900 + b _08057D42 +_08057CD6: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08057CE4 + ldr r0, _08057D44 @ =gUnk_03003F80 + ldrb r0, [r0, #0x12] + cmp r0, #0x1e + bne _08057D42 +_08057CE4: + ldr r4, [r4, #0x20] + ldrh r0, [r4] + ldr r1, _08057D48 @ =0x0000FFFF + cmp r0, r1 + beq _08057D42 + ldr r5, _08057D4C @ =gUnk_03001160 + adds r6, r1, #0 +_08057CF2: + ldrb r2, [r4, #7] + movs r0, #3 + ands r0, r2 + adds r1, r5, #0 + adds r1, #0x38 + ldrb r1, [r1] + ands r0, r1 + cmp r0, #0 + beq _08057D3A + ldr r0, _08057D44 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08057D18 + movs r0, #0x10 + ands r0, r2 + cmp r0, #0 + beq _08057D3A +_08057D18: + ldrh r0, [r4] + ldrh r1, [r4, #2] + ldrb r2, [r4, #4] + ldrb r3, [r4, #5] + bl sub_0800293E + cmp r0, #0 + beq _08057D3A + movs r1, #0x36 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _08057D3A + ldrb r0, [r4, #6] + bl sub_0804B128 + bl sub_08080840 +_08057D3A: + adds r4, #8 + ldrh r0, [r4] + cmp r0, r6 + bne _08057CF2 +_08057D42: + pop {r4, r5, r6, pc} + .align 2, 0 +_08057D44: .4byte gUnk_03003F80 +_08057D48: .4byte 0x0000FFFF +_08057D4C: .4byte gUnk_03001160 + + thumb_func_start sub_08057D50 +sub_08057D50: @ 0x08057D50 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08057D7C + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #8 + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x20 + movs r0, #0xff + strb r0, [r1] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + ldr r1, _08057DC0 @ =sub_08057E30 + adds r0, r4, #0 + movs r2, #0 + bl sub_08052D74 +_08057D7C: + adds r0, r4, #0 + bl sub_08057E40 + cmp r0, #0 + beq _08057D9A + ldr r0, _08057DC4 @ =gUnk_02034350 + ldrb r5, [r0, #0x10] + adds r1, r4, #0 + adds r1, #0x20 + ldrb r0, [r1] + cmp r0, r5 + beq _08057D9A + movs r0, #0 + strb r5, [r1] + strb r0, [r4, #0xe] +_08057D9A: + ldr r0, _08057DC8 @ =gUnk_03000BF0 + ldrh r3, [r0] + cmp r3, #0 + bne _08057E2A + adds r0, r4, #0 + adds r0, #0x20 + ldrb r5, [r0] + lsls r1, r5, #6 + ldr r0, _08057DCC @ =gUnk_081080A4 + adds r2, r1, r0 + ldrb r1, [r4, #0xe] + cmp r1, #7 + bgt _08057DD0 + cmp r1, #1 + bge _08057E04 + cmp r1, #0 + beq _08057DD6 + b _08057E2A + .align 2, 0 +_08057DC0: .4byte sub_08057E30 +_08057DC4: .4byte gUnk_02034350 +_08057DC8: .4byte gUnk_03000BF0 +_08057DCC: .4byte gUnk_081080A4 +_08057DD0: + cmp r1, #8 + beq _08057E20 + b _08057E2A +_08057DD6: + ldr r1, _08057DF8 @ =gUnk_02034490 + movs r0, #1 + strb r0, [r1] + ldr r0, [r2] + ldr r1, _08057DFC @ =gUnk_085A2E80 + adds r0, r0, r1 + ldr r1, [r2, #4] + movs r2, #0x80 + lsls r2, r2, #5 + bl sub_08000E96 + ldr r0, _08057E00 @ =gUnk_081081E4 + adds r0, r5, r0 + ldrb r0, [r0] + bl sub_0801D714 + b _08057E24 + .align 2, 0 +_08057DF8: .4byte gUnk_02034490 +_08057DFC: .4byte gUnk_085A2E80 +_08057E00: .4byte gUnk_081081E4 +_08057E04: + lsls r1, r1, #3 + adds r1, r1, r2 + ldr r0, [r1] + ldr r2, _08057E1C @ =gUnk_085A2E80 + adds r0, r0, r2 + ldr r1, [r1, #4] + movs r2, #0x80 + lsls r2, r2, #5 + bl sub_08000E96 + b _08057E24 + .align 2, 0 +_08057E1C: .4byte gUnk_085A2E80 +_08057E20: + ldr r0, _08057E2C @ =gUnk_02034490 + strb r3, [r0] +_08057E24: + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] +_08057E2A: + pop {r4, r5, pc} + .align 2, 0 +_08057E2C: .4byte gUnk_02034490 + + thumb_func_start sub_08057E30 +sub_08057E30: @ 0x08057E30 + push {lr} + ldr r0, _08057E3C @ =gUnk_02034350 + ldrb r0, [r0, #0x10] + bl sub_08057E7C + pop {pc} + .align 2, 0 +_08057E3C: .4byte gUnk_02034350 + + thumb_func_start sub_08057E40 +sub_08057E40: @ 0x08057E40 + push {lr} + ldr r0, _08057E54 @ =gUnk_08108050 + bl sub_08056300 + adds r1, r0, #0 + cmp r1, #0xff + bne _08057E58 + movs r0, #0 + b _08057E5E + .align 2, 0 +_08057E54: .4byte gUnk_08108050 +_08057E58: + ldr r0, _08057E60 @ =gUnk_02034350 + strb r1, [r0, #0x10] + movs r0, #1 +_08057E5E: + pop {pc} + .align 2, 0 +_08057E60: .4byte gUnk_02034350 + + thumb_func_start sub_08057E64 +sub_08057E64: @ 0x08057E64 + push {lr} + ldr r0, _08057E78 @ =gUnk_08108050 + bl sub_08056300 + cmp r0, #0xff + beq _08057E74 + bl sub_08057E7C +_08057E74: + pop {pc} + .align 2, 0 +_08057E78: .4byte gUnk_08108050 + + thumb_func_start sub_08057E7C +sub_08057E7C: @ 0x08057E7C + push {r4, r5, r6, lr} + adds r4, r0, #0 + cmp r4, #4 + bhi _08057EB6 + ldr r0, _08057EB8 @ =gUnk_081081E4 + adds r0, r4, r0 + ldrb r0, [r0] + bl sub_0801D714 + lsls r1, r4, #6 + ldr r0, _08057EBC @ =gUnk_081080A4 + adds r1, r1, r0 + movs r3, #0 + ldr r2, _08057EC0 @ =0x040000D4 + ldr r6, _08057EC4 @ =gUnk_085A2E80 + ldr r5, _08057EC8 @ =0x84000400 +_08057E9C: + ldr r0, [r1] + adds r0, r0, r6 + str r0, [r2] + ldr r0, [r1, #4] + str r0, [r2, #4] + str r5, [r2, #8] + ldr r0, [r2, #8] + adds r3, #1 + adds r1, #8 + cmp r3, #7 + bls _08057E9C + ldr r0, _08057ECC @ =gUnk_02034350 + strb r4, [r0, #0x10] +_08057EB6: + pop {r4, r5, r6, pc} + .align 2, 0 +_08057EB8: .4byte gUnk_081081E4 +_08057EBC: .4byte gUnk_081080A4 +_08057EC0: .4byte 0x040000D4 +_08057EC4: .4byte gUnk_085A2E80 +_08057EC8: .4byte 0x84000400 +_08057ECC: .4byte gUnk_02034350 + + thumb_func_start sub_08057ED0 +sub_08057ED0: @ 0x08057ED0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08057F20 + ldrb r1, [r4, #0xc] + cmp r1, #0 + bne _08057EF2 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _08057EF4 @ =gUnk_03000F50 + strh r1, [r0, #0x1a] + strh r1, [r0, #0x32] + ldr r1, _08057EF8 @ =sub_08057EFC + adds r0, r4, #0 + movs r2, #0 + bl sub_08052D74 +_08057EF2: + pop {r4, pc} + .align 2, 0 +_08057EF4: .4byte gUnk_03000F50 +_08057EF8: .4byte sub_08057EFC + + thumb_func_start sub_08057EFC +sub_08057EFC: @ 0x08057EFC + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08057F1C @ =gUnk_02034350 + ldrb r0, [r0, #0x10] + bl sub_0801D7EC + bl sub_08058034 + movs r0, #0 + str r0, [r4, #0x3c] + str r0, [r4, #0x38] + adds r0, r4, #0 + bl sub_08057F20 + pop {r4, pc} + .align 2, 0 +_08057F1C: .4byte gUnk_02034350 + + thumb_func_start sub_08057F20 +sub_08057F20: @ 0x08057F20 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r7, r0, #0 + ldr r5, _08057FF4 @ =gUnk_03000BF0 + movs r0, #0xa + ldrsh r1, [r5, r0] + ldrh r0, [r5, #6] + subs r4, r1, r0 + lsrs r2, r4, #3 + adds r2, r4, r2 + ldrh r0, [r5, #0x1e] + movs r1, #0x80 + lsls r1, r1, #3 + subs r0, r1, r0 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + adds r4, r2, r0 + ldr r6, _08057FF8 @ =gUnk_03000F50 + adds r0, r4, #0 + movs r1, #0xf + ands r0, r1 + strh r0, [r6, #0x2e] + movs r1, #0xc + ldrsh r0, [r5, r1] + ldrh r1, [r5, #8] + subs r0, r0, r1 + movs r1, #0x30 + subs r0, r1, r0 + asrs r0, r0, #2 + mov sl, r1 + mov r1, sl + subs r0, r1, r0 + strh r0, [r6, #0x30] + ldr r0, _08057FFC @ =gUnk_02001A40 + mov r8, r0 + str r0, [r6, #0x34] + ldr r1, _08058000 @ =gUnk_02006F00 + mov sb, r1 + adds r0, r4, #0 + mov r2, r8 + bl sub_08058004 + lsrs r0, r4, #4 + lsls r4, r0, #1 + ldr r0, [r7, #0x38] + cmp r0, r4 + beq _08057F8C + str r4, [r7, #0x38] + movs r0, #1 + strh r0, [r6, #0x32] +_08057F8C: + movs r0, #0xa + ldrsh r1, [r5, r0] + ldrh r0, [r5, #6] + subs r4, r1, r0 + lsrs r2, r4, #2 + adds r2, r4, r2 + ldrh r0, [r5, #0x1e] + movs r1, #0x80 + lsls r1, r1, #3 + subs r0, r1, r0 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + adds r4, r2, r0 + adds r0, r4, #0 + movs r1, #0xf + ands r0, r1 + strh r0, [r6, #0x16] + movs r1, #0xc + ldrsh r0, [r5, r1] + ldrh r1, [r5, #8] + subs r0, r0, r1 + movs r1, #0x30 + subs r0, r1, r0 + asrs r0, r0, #1 + mov r1, sl + subs r0, r1, r0 + strh r0, [r6, #0x18] + movs r2, #0x80 + lsls r2, r2, #4 + add r2, r8 + str r2, [r6, #0x1c] + movs r1, #0x80 + lsls r1, r1, #6 + add r1, sb + adds r0, r4, #0 + bl sub_08058004 + lsrs r0, r4, #4 + lsls r4, r0, #1 + ldr r0, [r7, #0x3c] + cmp r0, r4 + beq _08057FE8 + str r4, [r7, #0x3c] + movs r0, #1 + strh r0, [r6, #0x1a] +_08057FE8: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08057FF4: .4byte gUnk_03000BF0 +_08057FF8: .4byte gUnk_03000F50 +_08057FFC: .4byte gUnk_02001A40 +_08058000: .4byte gUnk_02006F00 + + thumb_func_start sub_08058004 +sub_08058004: @ 0x08058004 + push {r4, r5, r6, lr} + movs r4, #0x20 + lsrs r0, r0, #4 + lsls r0, r0, #2 + adds r1, r1, r0 + ldr r3, _0805802C @ =0x040000D4 + ldr r6, _08058030 @ =0x80000020 + movs r5, #0x80 + lsls r5, r5, #1 +_08058016: + str r1, [r3] + str r2, [r3, #4] + str r6, [r3, #8] + ldr r0, [r3, #8] + adds r1, r1, r5 + adds r2, #0x40 + subs r4, #1 + cmp r4, #0 + bne _08058016 + pop {r4, r5, r6, pc} + .align 2, 0 +_0805802C: .4byte 0x040000D4 +_08058030: .4byte 0x80000020 + + thumb_func_start sub_08058034 +sub_08058034: @ 0x08058034 + push {r4, r5, r6, lr} + ldr r6, _08058080 @ =gUnk_02002F00 + movs r0, #0x80 + lsls r0, r0, #7 + adds r5, r6, r0 + movs r4, #0 +_08058040: + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_08058084 + movs r1, #0x80 + lsls r1, r1, #4 + adds r6, r6, r1 + adds r5, #0x40 + adds r4, #1 + cmp r4, #3 + bls _08058040 + ldr r0, _08058080 @ =gUnk_02002F00 + movs r1, #0x80 + lsls r1, r1, #6 + adds r6, r0, r1 + movs r1, #0xc0 + lsls r1, r1, #7 + adds r5, r0, r1 + movs r4, #0 +_08058066: + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_08058084 + movs r0, #0x80 + lsls r0, r0, #4 + adds r6, r6, r0 + adds r5, #0x40 + adds r4, #1 + cmp r4, #3 + bls _08058066 + pop {r4, r5, r6, pc} + .align 2, 0 +_08058080: .4byte gUnk_02002F00 + + thumb_func_start sub_08058084 +sub_08058084: @ 0x08058084 + push {r4, r5, r6, lr} + adds r3, r0, #0 + movs r4, #0 + ldr r2, _080580A8 @ =0x040000D4 + ldr r6, _080580AC @ =0x80000020 + movs r5, #0x80 + lsls r5, r5, #1 +_08058092: + str r3, [r2] + str r1, [r2, #4] + str r6, [r2, #8] + ldr r0, [r2, #8] + adds r4, #1 + adds r3, #0x40 + adds r1, r1, r5 + cmp r4, #0x1f + bls _08058092 + pop {r4, r5, r6, pc} + .align 2, 0 +_080580A8: .4byte 0x040000D4 +_080580AC: .4byte 0x80000020 + + thumb_func_start sub_080580B0 +sub_080580B0: @ 0x080580B0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + adds r4, r0, #0 + ldr r0, _080581B0 @ =gUnk_0200B650 + movs r1, #0 + str r1, [r0] + movs r0, #0x80 + lsls r0, r0, #0x13 + strh r1, [r0] + adds r0, r4, #0 + bl sub_0801D7EC + ldr r0, _080581B4 @ =gUnk_02034350 + strb r4, [r0, #0x10] + bl sub_08058034 + ldr r5, _080581B8 @ =gUnk_03000BF0 + movs r0, #0xa + ldrsh r1, [r5, r0] + ldrh r0, [r5, #6] + subs r7, r1, r0 + asrs r2, r7, #3 + adds r2, r7, r2 + ldrh r0, [r5, #0x1e] + movs r4, #0x80 + lsls r4, r4, #3 + subs r0, r4, r0 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + adds r7, r2, r0 + ldr r1, _080581BC @ =gUnk_02006F00 + mov sb, r1 + ldr r2, _080581C0 @ =gUnk_02001A40 + mov r8, r2 + adds r0, r7, #0 + bl sub_08058004 + ldr r0, _080581C4 @ =gUnk_03000F50 + mov sl, r0 + movs r1, #0xf + ands r7, r1 + strh r7, [r0, #0x2e] + movs r2, #0xc + ldrsh r0, [r5, r2] + ldrh r1, [r5, #8] + subs r0, r0, r1 + movs r6, #0x30 + subs r0, r6, r0 + asrs r0, r0, #1 + movs r3, #0x30 + subs r0, r3, r0 + mov r1, sl + strh r0, [r1, #0x30] + ldr r0, _080581C8 @ =0x00001D09 + strh r0, [r1, #0x2c] + mov r2, r8 + str r2, [r1, #0x34] + movs r0, #1 + strh r0, [r1, #0x32] + movs r2, #0xa + ldrsh r1, [r5, r2] + ldrh r0, [r5, #6] + subs r7, r1, r0 + asrs r1, r7, #2 + adds r1, r7, r1 + ldrh r0, [r5, #0x1e] + subs r4, r4, r0 + lsrs r0, r4, #0x1f + adds r4, r4, r0 + asrs r4, r4, #1 + adds r7, r1, r4 + movs r0, #0x80 + lsls r0, r0, #6 + add sb, r0 + movs r1, #0x80 + lsls r1, r1, #4 + add r8, r1 + adds r0, r7, #0 + mov r1, sb + mov r2, r8 + str r3, [sp] + bl sub_08058004 + movs r2, #0xf + ands r7, r2 + mov r0, sl + strh r7, [r0, #0x16] + movs r1, #0xc + ldrsh r0, [r5, r1] + ldrh r1, [r5, #8] + subs r0, r0, r1 + subs r6, r6, r0 + asrs r6, r6, #1 + ldr r3, [sp] + subs r3, r3, r6 + mov r2, sl + strh r3, [r2, #0x18] + ldr r0, _080581CC @ =0x00001E09 + strh r0, [r2, #0x14] + mov r0, r8 + str r0, [r2, #0x1c] + movs r1, #1 + strh r1, [r2, #0x1a] + mov r1, sl + adds r1, #0x66 + ldr r0, _080581D0 @ =0x00003C48 + strh r0, [r1] + adds r1, #2 + ldr r0, _080581D4 @ =0x00000609 + strh r0, [r1] + ldrh r1, [r2] + movs r2, #0xa0 + lsls r2, r2, #4 + adds r0, r2, #0 + orrs r0, r1 + mov r1, sl + strh r0, [r1] + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080581B0: .4byte gUnk_0200B650 +_080581B4: .4byte gUnk_02034350 +_080581B8: .4byte gUnk_03000BF0 +_080581BC: .4byte gUnk_02006F00 +_080581C0: .4byte gUnk_02001A40 +_080581C4: .4byte gUnk_03000F50 +_080581C8: .4byte 0x00001D09 +_080581CC: .4byte 0x00001E09 +_080581D0: .4byte 0x00003C48 +_080581D4: .4byte 0x00000609 + + thumb_func_start sub_080581D8 +sub_080581D8: @ 0x080581D8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08058210 + ldrb r1, [r4, #0xc] + cmp r1, #0 + bne _080581F8 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _080581FC @ =gUnk_03000F50 + strh r1, [r0, #0x1a] + ldr r1, _08058200 @ =sub_08058204 + adds r0, r4, #0 + movs r2, #0 + bl sub_08052D74 +_080581F8: + pop {r4, pc} + .align 2, 0 +_080581FC: .4byte gUnk_03000F50 +_08058200: .4byte sub_08058204 + + thumb_func_start sub_08058204 +sub_08058204: @ 0x08058204 + push {lr} + ldrb r0, [r0, #0xa] + bl sub_08058324 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08058210 +sub_08058210: @ 0x08058210 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + bl sub_08058244 + adds r3, r0, #0 + ldr r0, [r4, #0x3c] + cmp r0, r3 + beq _08058234 + str r3, [r4, #0x3c] + ldr r1, _08058238 @ =gUnk_02006F00 + ldr r2, _0805823C @ =gUnk_02001A40 + adds r0, r3, #0 + bl sub_080582A0 + ldr r1, _08058240 @ =gUnk_03000F50 + movs r0, #1 + strh r0, [r1, #0x1a] +_08058234: + pop {r4, pc} + .align 2, 0 +_08058238: .4byte gUnk_02006F00 +_0805823C: .4byte gUnk_02001A40 +_08058240: .4byte gUnk_03000F50 + + thumb_func_start sub_08058244 +sub_08058244: @ 0x08058244 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + adds r6, r0, #0 + ldr r5, _08058294 @ =gUnk_03000BF0 + movs r1, #0xc + ldrsh r0, [r5, r1] + ldrh r4, [r5, #8] + subs r0, r0, r4 + lsls r0, r0, #5 + ldrh r1, [r5, #0x20] + subs r1, #0xa0 + bl __divsi3 + ldr r2, _08058298 @ =gUnk_03000F50 + mov r8, r2 + adds r4, r4, r0 + strh r4, [r2, #0x18] + movs r0, #0xa + ldrsh r1, [r5, r0] + ldrh r0, [r5, #6] + subs r1, r1, r0 + ldr r0, _0805829C @ =gUnk_081081EC + lsls r6, r6, #1 + adds r6, r6, r0 + ldrh r0, [r6] + muls r0, r1, r0 + ldrh r1, [r5, #0x1e] + subs r1, #0xf0 + bl __divsi3 + movs r2, #0xf + adds r1, r0, #0 + ands r1, r2 + mov r2, r8 + strh r1, [r2, #0x16] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, pc} + .align 2, 0 +_08058294: .4byte gUnk_03000BF0 +_08058298: .4byte gUnk_03000F50 +_0805829C: .4byte gUnk_081081EC + + thumb_func_start sub_080582A0 +sub_080582A0: @ 0x080582A0 + push {r4, r5, r6, lr} + movs r4, #0x20 + lsrs r0, r0, #4 + lsls r0, r0, #2 + adds r1, r1, r0 + ldr r3, _080582C8 @ =0x040000D4 + ldr r6, _080582CC @ =0x80000020 + movs r5, #0x80 + lsls r5, r5, #1 +_080582B2: + str r1, [r3] + str r2, [r3, #4] + str r6, [r3, #8] + ldr r0, [r3, #8] + adds r1, r1, r5 + adds r2, #0x40 + subs r4, #1 + cmp r4, #0 + bne _080582B2 + pop {r4, r5, r6, pc} + .align 2, 0 +_080582C8: .4byte 0x040000D4 +_080582CC: .4byte 0x80000020 + + thumb_func_start sub_080582D0 +sub_080582D0: @ 0x080582D0 + push {r4, r5, lr} + ldr r4, _080582F4 @ =gUnk_02002F00 + movs r0, #0x80 + lsls r0, r0, #7 + adds r5, r4, r0 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080582F8 + movs r0, #0x80 + lsls r0, r0, #4 + adds r4, r4, r0 + adds r5, #0x40 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080582F8 + pop {r4, r5, pc} + .align 2, 0 +_080582F4: .4byte gUnk_02002F00 + + thumb_func_start sub_080582F8 +sub_080582F8: @ 0x080582F8 + push {r4, r5, r6, lr} + adds r3, r0, #0 + movs r4, #0 + ldr r2, _0805831C @ =0x040000D4 + ldr r6, _08058320 @ =0x80000020 + movs r5, #0x80 + lsls r5, r5, #1 +_08058306: + str r3, [r2] + str r1, [r2, #4] + str r6, [r2, #8] + ldr r0, [r2, #8] + adds r4, #1 + adds r3, #0x40 + adds r1, r1, r5 + cmp r4, #0x1f + bls _08058306 + pop {r4, r5, r6, pc} + .align 2, 0 +_0805831C: .4byte 0x040000D4 +_08058320: .4byte 0x80000020 + + thumb_func_start sub_08058324 +sub_08058324: @ 0x08058324 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0805836C @ =gUnk_0200B650 + movs r0, #0 + str r0, [r1] + adds r0, r4, #0 + adds r0, #0x86 + bl sub_0801D714 + adds r0, r4, #0 + adds r0, #0x36 + bl sub_0801D7EC + bl sub_080582D0 + adds r0, r4, #0 + bl sub_08058244 + ldr r1, _08058370 @ =gUnk_02006F00 + ldr r4, _08058374 @ =gUnk_02001A40 + adds r2, r4, #0 + bl sub_080582A0 + ldr r1, _08058378 @ =gUnk_03000F50 + ldr r0, _0805837C @ =0x00001D47 + strh r0, [r1, #0x14] + str r4, [r1, #0x1c] + movs r0, #1 + strh r0, [r1, #0x1a] + ldrh r2, [r1] + movs r3, #0x80 + lsls r3, r3, #2 + adds r0, r3, #0 + orrs r0, r2 + strh r0, [r1] + pop {r4, pc} + .align 2, 0 +_0805836C: .4byte gUnk_0200B650 +_08058370: .4byte gUnk_02006F00 +_08058374: .4byte gUnk_02001A40 +_08058378: .4byte gUnk_03000F50 +_0805837C: .4byte 0x00001D47 + + thumb_func_start sub_08058380 +sub_08058380: @ 0x08058380 + push {lr} + ldr r2, _08058394 @ =gUnk_081081F4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08058394: .4byte gUnk_081081F4 + + thumb_func_start sub_08058398 +sub_08058398: @ 0x08058398 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x3c] + bl sub_0807CBE4 + cmp r0, #0 + beq _080583AA + bl sub_0805E780 +_080583AA: + adds r0, r4, #0 + adds r0, #0x3a + ldrb r1, [r0] + lsls r1, r1, #3 + strh r1, [r4, #0x24] + adds r0, #1 + ldrb r2, [r0] + lsls r2, r2, #3 + strh r2, [r4, #0x26] + subs r0, #3 + ldrb r0, [r0] + lsls r0, r0, #4 + adds r1, r1, r0 + strh r1, [r4, #0x20] + adds r0, r4, #0 + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #4 + adds r2, r2, r0 + strh r2, [r4, #0x22] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + ldrh r0, [r4, #0x3e] + cmp r0, #0 + bne _080583E4 + movs r0, #2 + b _080583E6 +_080583E4: + movs r0, #1 +_080583E6: + strb r0, [r4, #0xc] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080583EC +sub_080583EC: @ 0x080583EC + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _08058404 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_08058408 +_08058404: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08058408 +sub_08058408: @ 0x08058408 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r6, _0805843C @ =gUnk_03003F80 + ldr r5, [r6, #0x30] + movs r0, #8 + ands r5, r0 + cmp r5, #0 + bne _08058488 + ldrh r0, [r4, #0x20] + ldrh r1, [r4, #0x22] + ldrh r2, [r4, #0x24] + ldrh r3, [r4, #0x26] + bl sub_0800293E + cmp r0, #0 + beq _08058488 + ldrb r0, [r4, #0xa] + cmp r0, #1 + beq _08058488 + cmp r0, #1 + ble _08058450 + cmp r0, #2 + beq _08058440 + cmp r0, #3 + beq _0805847C + b _08058450 + .align 2, 0 +_0805843C: .4byte gUnk_03003F80 +_08058440: + adds r0, r4, #0 + bl sub_080585DC + ldr r0, [r6, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08058488 +_08058450: + adds r0, r4, #0 + bl sub_080585DC + adds r0, r4, #0 + bl sub_0805848C + cmp r0, #0 + beq _08058488 + movs r0, #3 + bl sub_08078A90 + bl sub_08078B48 + bl sub_0805E544 + movs r0, #0 + movs r1, #3 + strb r1, [r4, #0xc] + strb r0, [r4, #0xd] + movs r0, #0x1e + strb r0, [r4, #0xe] + b _08058488 +_0805847C: + movs r0, #4 + strb r0, [r4, #0xc] + strb r5, [r4, #0xd] + ldrh r0, [r4, #0x36] + bl sub_080186C0 +_08058488: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0805848C +sub_0805848C: @ 0x0805848C + push {lr} + ldr r0, _080584A4 @ =gUnk_03003F80 + adds r0, #0xa8 + ldrb r0, [r0] + subs r0, #5 + cmp r0, #0x17 + bhi _08058510 + lsls r0, r0, #2 + ldr r1, _080584A8 @ =_080584AC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080584A4: .4byte gUnk_03003F80 +_080584A8: .4byte _080584AC +_080584AC: @ jump table + .4byte _0805850C @ case 0 + .4byte _08058510 @ case 1 + .4byte _0805850C @ case 2 + .4byte _0805850C @ case 3 + .4byte _08058510 @ case 4 + .4byte _0805850C @ case 5 + .4byte _0805850C @ case 6 + .4byte _0805850C @ case 7 + .4byte _0805850C @ case 8 + .4byte _0805850C @ case 9 + .4byte _0805850C @ case 10 + .4byte _0805850C @ case 11 + .4byte _0805850C @ case 12 + .4byte _0805850C @ case 13 + .4byte _0805850C @ case 14 + .4byte _0805850C @ case 15 + .4byte _0805850C @ case 16 + .4byte _0805850C @ case 17 + .4byte _0805850C @ case 18 + .4byte _0805850C @ case 19 + .4byte _08058510 @ case 20 + .4byte _08058510 @ case 21 + .4byte _0805850C @ case 22 + .4byte _0805850C @ case 23 +_0805850C: + movs r0, #0 + b _08058512 +_08058510: + movs r0, #1 +_08058512: + pop {pc} + + thumb_func_start sub_08058514 +sub_08058514: @ 0x08058514 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #1 + beq _08058532 + cmp r0, #1 + bgt _08058528 + cmp r0, #0 + beq _08058570 + b _080585A6 +_08058528: + cmp r0, #2 + beq _08058570 + cmp r0, #3 + beq _08058584 + b _080585A6 +_08058532: + ldr r2, _08058564 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + ldr r1, _08058568 @ =0x00001235 + ands r0, r1 + cmp r0, #0 + bne _080585A6 + ldr r0, _0805856C @ =gUnk_03001160 + movs r1, #0x36 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _080585A6 + strb r0, [r2, #2] + ldrh r0, [r4, #0x36] + adds r1, r4, #0 + adds r1, #0x35 + ldrb r1, [r1] + bl sub_08078AA8 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x1e + strb r0, [r4, #0xe] + b _080585A6 + .align 2, 0 +_08058564: .4byte gUnk_03003F80 +_08058568: .4byte 0x00001235 +_0805856C: .4byte gUnk_03001160 +_08058570: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080585A6 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + b _080585A6 +_08058584: + ldr r0, _080585A8 @ =gUnk_03001160 + ldrb r0, [r0, #0xc] + cmp r0, #1 + beq _08058590 + cmp r0, #9 + bne _080585A6 +_08058590: + ldr r0, _080585AC @ =gUnk_03003F80 + adds r0, #0x8b + movs r1, #1 + strb r1, [r0] + bl sub_0805E564 + ldrh r0, [r4, #0x3c] + bl sub_0807CCC8 + bl sub_0805E780 +_080585A6: + pop {r4, pc} + .align 2, 0 +_080585A8: .4byte gUnk_03001160 +_080585AC: .4byte gUnk_03003F80 + + thumb_func_start sub_080585B0 +sub_080585B0: @ 0x080585B0 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080585D8 @ =gUnk_02033A90 + adds r0, #0x28 + ldrb r0, [r0] + cmp r0, #0xff + beq _080585C2 + bl sub_0805E780 +_080585C2: + ldrh r0, [r4, #0x3c] + bl sub_0807CBE4 + cmp r0, #0 + beq _080585D4 + bl sub_0801855C + bl sub_0805E780 +_080585D4: + pop {r4, pc} + .align 2, 0 +_080585D8: .4byte gUnk_02033A90 + + thumb_func_start sub_080585DC +sub_080585DC: @ 0x080585DC + push {lr} + ldrh r0, [r0, #0x3c] + bl sub_0807CBE4 + cmp r0, #0 + beq _080585EC + bl sub_0805E780 +_080585EC: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080585F0 +sub_080585F0: @ 0x080585F0 + push {lr} + ldr r2, _08058604 @ =gUnk_08108208 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08058604: .4byte gUnk_08108208 + + thumb_func_start sub_08058608 +sub_08058608: @ 0x08058608 + push {lr} + ldr r2, _0805861C @ =gUnk_08108210 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805861C: .4byte gUnk_08108210 + + thumb_func_start sub_08058620 +sub_08058620: @ 0x08058620 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + bne _08058648 + movs r0, #1 + strb r0, [r4, #0xc] + ldrh r0, [r4, #0x3c] + cmp r0, #0 + bne _0805863E + adds r0, r4, #0 + bl sub_080586EC +_0805863E: + adds r0, r4, #0 + movs r1, #3 + bl sub_0805E3A0 + b _0805864C +_08058648: + bl sub_0805E780 +_0805864C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08058650 +sub_08058650: @ 0x08058650 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x3c] + bl sub_0807CBE4 + cmp r0, #0 + beq _08058698 + adds r0, r4, #0 + bl sub_080586EC + adds r0, r4, #0 + adds r0, #0x35 + ldrb r0, [r0] + cmp r0, #0 + bne _08058692 + ldr r1, _0805869C @ =gUnk_02034350 + ldrb r0, [r1, #9] + movs r3, #0x33 + cmp r0, #0 + beq _0805867A + adds r3, r0, #0 +_0805867A: + ldr r0, _080586A0 @ =gUnk_02033A90 + movs r1, #0x86 + lsls r1, r1, #4 + adds r0, r0, r1 + ldr r2, [r0] + adds r1, r4, #0 + adds r1, #0x20 + strb r2, [r1] + str r3, [r0] + adds r0, r3, #0 + bl sub_080A3268 +_08058692: + ldr r0, _080586A4 @ =0x00000B0F + bl sub_080186C0 +_08058698: + pop {r4, pc} + .align 2, 0 +_0805869C: .4byte gUnk_02034350 +_080586A0: .4byte gUnk_02033A90 +_080586A4: .4byte 0x00000B0F + + thumb_func_start sub_080586A8 +sub_080586A8: @ 0x080586A8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _080586E4 + ldrh r0, [r4, #0x3e] + bl sub_0807CCC8 + ldrh r0, [r4, #0x3c] + cmp r0, #0 + beq _080586E0 + adds r0, r4, #0 + adds r0, #0x35 + ldrb r0, [r0] + cmp r0, #0 + bne _080586E0 + ldr r1, _080586E8 @ =gUnk_02033A90 + movs r0, #0x86 + lsls r0, r0, #4 + adds r1, r1, r0 + adds r0, r4, #0 + adds r0, #0x20 + ldrb r0, [r0] + str r0, [r1] + bl sub_080A3268 + bl sub_0801855C +_080586E0: + bl sub_0805E780 +_080586E4: + pop {r4, pc} + .align 2, 0 +_080586E8: .4byte gUnk_02033A90 + + thumb_func_start sub_080586EC +sub_080586EC: @ 0x080586EC + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + movs r1, #0 + movs r0, #2 + strb r0, [r7, #0xc] + strb r1, [r7, #0xe] + movs r6, #0 + adds r0, r7, #0 + bl sub_08058760 + adds r5, r0, #0 + cmp r5, #0 + bne _0805870A + bl sub_0805E780 +_0805870A: + ldrb r0, [r7, #0xb] + bl sub_0804B128 + adds r4, r0, #0 + cmp r4, #0 + beq _0805875C + b _08058756 +_08058718: + adds r0, r4, #0 + adds r4, #0x10 + bl sub_0804ADF8 + adds r3, r0, #0 + cmp r3, #0 + beq _08058744 + ldrb r0, [r3, #8] + cmp r0, #3 + bne _08058744 + adds r2, r3, #0 + adds r2, #0x6d + ldrb r0, [r2] + movs r1, #0x40 + orrs r1, r0 + strb r1, [r2] + adds r2, r6, #0 + adds r6, #1 + adds r0, r5, #0 + adds r1, r3, #0 + bl sub_08058798 +_08058744: + cmp r6, #6 + bls _08058756 + movs r6, #0 + adds r0, r7, #0 + bl sub_08058760 + adds r5, r0, #0 + cmp r5, #0 + beq _0805875C +_08058756: + ldrb r0, [r4] + cmp r0, #0xff + bne _08058718 +_0805875C: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08058760 +sub_08058760: @ 0x08058760 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_0805E8D4 + adds r4, r0, #0 + cmp r4, #0 + beq _08058794 + movs r0, #9 + strb r0, [r4, #8] + movs r0, #0xb + strb r0, [r4, #9] + movs r0, #1 + strb r0, [r4, #0xa] + str r5, [r4, #0x14] + ldrb r0, [r5, #0xe] + adds r0, #1 + strb r0, [r5, #0xe] + adds r0, r4, #0 + adds r0, #0x20 + movs r1, #0x20 + bl sub_0801D630 + adds r0, r4, #0 + movs r1, #8 + bl sub_0805EA2C +_08058794: + adds r0, r4, #0 + pop {r4, r5, pc} + + thumb_func_start sub_08058798 +sub_08058798: @ 0x08058798 + lsls r2, r2, #2 + adds r3, r0, #0 + adds r3, #0x20 + adds r3, r3, r2 + str r1, [r3] + ldrb r1, [r0, #0xe] + adds r1, #1 + strb r1, [r0, #0xe] + bx lr + .align 2, 0 + + thumb_func_start sub_080587AC +sub_080587AC: @ 0x080587AC + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080587C2 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #3 + bl sub_0805E3A0 +_080587C2: + movs r3, #0 + movs r2, #0 + adds r5, r4, #0 + adds r5, #0x20 +_080587CA: + lsls r0, r2, #2 + adds r1, r5, r0 + ldr r0, [r1] + cmp r0, #0 + beq _080587E0 + ldr r0, [r0, #4] + cmp r0, #0 + bne _080587DE + str r0, [r1] + b _080587E0 +_080587DE: + movs r3, #1 +_080587E0: + adds r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #7 + bls _080587CA + cmp r3, #0 + bne _080587FE + ldr r1, [r4, #0x14] + ldrb r0, [r1, #0xe] + cmp r0, #0 + beq _080587FA + subs r0, #1 + strb r0, [r1, #0xe] +_080587FA: + bl sub_0805E780 +_080587FE: + pop {r4, r5, pc} + + thumb_func_start sub_08058800 +sub_08058800: @ 0x08058800 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r6, _08058830 @ =gUnk_03003DB0 + ldr r3, [r6, #4] + cmp r3, r6 + beq _0805884A + ldr r0, _08058834 @ =0x0000FFFF + mov ip, r0 + ldr r7, _08058838 @ =0x00000B09 +_08058814: + ldrh r1, [r3, #8] + mov r0, ip + ands r0, r1 + cmp r0, r7 + bne _08058844 + movs r2, #0 + adds r1, r3, #0 + adds r1, #0x20 +_08058824: + ldr r0, [r1] + cmp r4, r0 + bne _0805883C + str r5, [r1] + b _0805884A + .align 2, 0 +_08058830: .4byte gUnk_03003DB0 +_08058834: .4byte 0x0000FFFF +_08058838: .4byte 0x00000B09 +_0805883C: + adds r1, #4 + adds r2, #1 + cmp r2, #7 + bls _08058824 +_08058844: + ldr r3, [r3, #4] + cmp r3, r6 + bne _08058814 +_0805884A: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0805884C +sub_0805884C: @ 0x0805884C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08058880 @ =gUnk_0810821C + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_08058BC8 + ldr r0, _08058884 @ =gUnk_03003DE4 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + ldr r1, _08058888 @ =gUnk_02017AA0 + adds r0, r0, r1 + ldr r1, _0805888C @ =0x04000020 + ldr r2, _08058890 @ =0xA2600008 + bl sub_0805622C + pop {r4, pc} + .align 2, 0 +_08058880: .4byte gUnk_0810821C +_08058884: .4byte gUnk_03003DE4 +_08058888: .4byte gUnk_02017AA0 +_0805888C: .4byte 0x04000020 +_08058890: .4byte 0xA2600008 + + thumb_func_start sub_08058894 +sub_08058894: @ 0x08058894 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _080588C4 @ =0x00001234 + str r0, [r4, #0x28] + movs r0, #0x15 + movs r1, #2 + bl sub_0807CC60 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r1, r1, #0x1f + strb r1, [r4, #0xe] + adds r0, r4, #0 + bl sub_08058CB0 + ldr r1, _080588C8 @ =sub_08058D34 + adds r0, r4, #0 + movs r2, #0 + bl sub_08052D74 + pop {r4, pc} + .align 2, 0 +_080588C4: .4byte 0x00001234 +_080588C8: .4byte sub_08058D34 + + thumb_func_start sub_080588CC +sub_080588CC: @ 0x080588CC + push {r4, lr} + adds r4, r0, #0 + bl sub_08058CFC + adds r0, r4, #0 + bl sub_08058A04 + ldr r0, _080588E8 @ =gUnk_030010A0 + ldrb r0, [r0, #8] + cmp r0, #0 + beq _080588EC + movs r0, #2 + strb r0, [r4, #0xc] + b _080588F2 + .align 2, 0 +_080588E8: .4byte gUnk_030010A0 +_080588EC: + adds r0, r4, #0 + bl sub_080588F8 +_080588F2: + pop {r4, pc} + + thumb_func_start nullsub_108 +nullsub_108: @ 0x080588F4 + bx lr + .align 2, 0 + + thumb_func_start sub_080588F8 +sub_080588F8: @ 0x080588F8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _08058952 + movs r0, #0x26 + ldrsh r2, [r4, r0] + ldr r0, [r4, #0x28] + subs r1, r0, r2 + cmp r1, #0 + blt _08058914 + cmp r1, #8 + bhi _0805891A + b _08058968 +_08058914: + subs r0, r2, r0 + cmp r0, #8 + bls _08058968 +_0805891A: + ldr r0, _08058934 @ =0x00001234 + str r0, [r4, #0x28] + movs r2, #0x26 + ldrsh r1, [r4, r2] + ldr r0, _08058938 @ =0x0000FFFE + ands r1, r0 + cmp r1, #0xa0 + beq _08058940 + cmp r1, #0xa0 + bgt _0805893C + cmp r1, #0x48 + beq _08058940 + b _08058968 + .align 2, 0 +_08058934: .4byte 0x00001234 +_08058938: .4byte 0x0000FFFE +_0805893C: + cmp r1, #0xf0 + bne _08058968 +_08058940: + movs r3, #0x26 + ldrsh r0, [r4, r3] + str r0, [r4, #0x28] + movs r0, #0x2d + strb r0, [r4, #0xf] + movs r0, #0x8c + bl sub_080A3268 + b _08058968 +_08058952: + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x29 + bls _08058964 + ldr r0, [r4, #0x28] + subs r0, #2 + b _08058966 +_08058964: + ldr r0, [r4, #0x28] +_08058966: + strh r0, [r4, #0x26] +_08058968: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080589DE + ldr r0, _080589A4 @ =gUnk_03001160 + movs r2, #0x32 + ldrsh r1, [r0, r2] + ldr r0, _080589A8 @ =gUnk_03000BF0 + ldrh r0, [r0, #8] + subs r2, r1, r0 + adds r1, r2, #0 + subs r1, #0x50 + cmp r1, #0 + bge _08058986 + movs r1, #0x50 + subs r1, r1, r2 +_08058986: + lsrs r1, r1, #3 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #0xc + movs r3, #0x80 + lsls r3, r3, #7 + adds r1, r0, r3 + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _080589DE + cmp r2, #0x48 + bgt _080589AC + ldr r0, [r4, #0x24] + subs r0, r0, r1 + b _080589B4 + .align 2, 0 +_080589A4: .4byte gUnk_03001160 +_080589A8: .4byte gUnk_03000BF0 +_080589AC: + cmp r2, #0x57 + ble _080589B6 + ldr r0, [r4, #0x24] + adds r0, r0, r1 +_080589B4: + str r0, [r4, #0x24] +_080589B6: + ldr r2, [r4, #0x2c] + ldr r0, [r4, #0x24] + subs r1, r2, r0 + adds r3, r0, #0 + cmp r1, #0 + blt _080589CC + movs r0, #0x80 + lsls r0, r0, #0xd + cmp r1, r0 + bhi _080589D6 + b _080589DE +_080589CC: + subs r1, r3, r2 + movs r0, #0x80 + lsls r0, r0, #0xd + cmp r1, r0 + bls _080589DE +_080589D6: + str r3, [r4, #0x2c] + movs r0, #0x8b + bl sub_080A3268 +_080589DE: + movs r0, #0x26 + ldrsh r1, [r4, r0] + str r1, [r4, #0x20] + cmp r1, #0 + bge _080589F0 + ldr r0, _080589EC @ =0x000001FF + b _080589F8 + .align 2, 0 +_080589EC: .4byte 0x000001FF +_080589F0: + ldr r0, _08058A00 @ =0x000001FF + cmp r1, r0 + ble _080589FC + movs r0, #0 +_080589F8: + str r0, [r4, #0x20] + strh r0, [r4, #0x26] +_080589FC: + pop {r4, pc} + .align 2, 0 +_08058A00: .4byte 0x000001FF + + thumb_func_start sub_08058A04 +sub_08058A04: @ 0x08058A04 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + ldr r6, _08058A68 @ =gUnk_03001160 + movs r0, #0x2e + ldrsh r1, [r6, r0] + ldr r7, _08058A6C @ =gUnk_03000BF0 + ldrh r0, [r7, #6] + subs r1, r1, r0 + mov r8, r1 + movs r0, #0x32 + ldrsh r1, [r6, r0] + ldrh r0, [r7, #8] + subs r5, r1, r0 + ldr r0, [r4, #0x20] + ldr r1, _08058A70 @ =0xFFFFFEE8 + adds r0, r0, r1 + cmp r0, #0xc + bhi _08058A78 + movs r0, #0x17 + bl sub_0807CC30 + cmp r0, #0 + beq _08058A78 + mov r0, r8 + subs r0, #0x6d + cmp r0, #0x16 + bhi _08058A78 + adds r0, r5, #0 + subs r0, #0x45 + cmp r0, #0x16 + bhi _08058A78 + movs r0, #0x36 + ldrsh r2, [r6, r0] + cmp r2, #0 + bne _08058A78 + ldr r0, _08058A74 @ =gUnk_03003F80 + movs r1, #3 + strb r1, [r0, #0xc] + adds r0, #0x38 + strb r2, [r0] + ldrh r0, [r7, #6] + adds r0, #0x78 + strh r0, [r6, #0x2e] + ldrh r0, [r7, #8] + adds r0, #0x50 + strh r0, [r6, #0x32] + b _08058AFC + .align 2, 0 +_08058A68: .4byte gUnk_03001160 +_08058A6C: .4byte gUnk_03000BF0 +_08058A70: .4byte 0xFFFFFEE8 +_08058A74: .4byte gUnk_03003F80 +_08058A78: + mov r1, r8 + cmp r1, #0x77 + bgt _08058AC0 + cmp r5, #0x4f + bgt _08058AA0 + ldr r3, _08058A9C @ =gUnk_08108228 + adds r0, r4, #0 + movs r1, #0x88 + movs r2, #0xb0 + bl sub_08058B08 + cmp r0, #0 + beq _08058AFC + adds r0, r4, #0 + movs r1, #0 + bl sub_08058B5C + b _08058AFC + .align 2, 0 +_08058A9C: .4byte gUnk_08108228 +_08058AA0: + ldr r3, _08058ABC @ =gUnk_08108258 + adds r0, r4, #0 + movs r1, #0x38 + movs r2, #0x60 + bl sub_08058B08 + cmp r0, #0 + beq _08058AFC + adds r0, r4, #0 + movs r1, #1 + bl sub_08058B5C + b _08058AFC + .align 2, 0 +_08058ABC: .4byte gUnk_08108258 +_08058AC0: + cmp r5, #0x4f + bgt _08058AE4 + movs r2, #0x84 + lsls r2, r2, #1 + ldr r3, _08058AE0 @ =gUnk_08108288 + adds r0, r4, #0 + movs r1, #0xe0 + bl sub_08058B08 + cmp r0, #0 + beq _08058AFC + adds r0, r4, #0 + movs r1, #2 + bl sub_08058B5C + b _08058AFC + .align 2, 0 +_08058AE0: .4byte gUnk_08108288 +_08058AE4: + ldr r3, _08058B04 @ =gUnk_081082B8 + adds r0, r4, #0 + movs r1, #0x90 + movs r2, #0xb8 + bl sub_08058B08 + cmp r0, #0 + beq _08058AFC + adds r0, r4, #0 + movs r1, #3 + bl sub_08058B5C +_08058AFC: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08058B04: .4byte gUnk_081082B8 + + thumb_func_start sub_08058B08 +sub_08058B08: @ 0x08058B08 + push {r4, r5, lr} + adds r4, r3, #0 + ldr r0, [r0, #0x20] + cmp r0, r1 + blo _08058B16 + cmp r0, r2 + bls _08058B1A +_08058B16: + movs r0, #0 + b _08058B50 +_08058B1A: + subs r0, r0, r1 + lsrs r0, r0, #3 + lsls r0, r0, #3 + adds r4, r4, r0 + ldr r3, _08058B54 @ =gUnk_03001160 + movs r0, #0x2e + ldrsh r2, [r3, r0] + ldr r1, _08058B58 @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + subs r2, r2, r0 + ldrh r0, [r4] + subs r2, r2, r0 + movs r5, #0x32 + ldrsh r0, [r3, r5] + ldrh r1, [r1, #8] + subs r0, r0, r1 + ldrh r1, [r4, #2] + subs r0, r0, r1 + movs r1, #0 + ldrh r3, [r4, #4] + cmp r2, r3 + bhs _08058B4E + ldrh r4, [r4, #6] + cmp r0, r4 + bhs _08058B4E + movs r1, #1 +_08058B4E: + adds r0, r1, #0 +_08058B50: + pop {r4, r5, pc} + .align 2, 0 +_08058B54: .4byte gUnk_03001160 +_08058B58: .4byte gUnk_03000BF0 + + thumb_func_start sub_08058B5C +sub_08058B5C: @ 0x08058B5C + push {r4, r5, lr} + ldr r3, _08058BB4 @ =gUnk_030010A0 + movs r0, #0 + movs r4, #1 + strb r4, [r3, #8] + strb r0, [r3, #9] + movs r5, #4 + movs r0, #4 + strb r0, [r3, #0xf] + ldr r0, _08058BB8 @ =gUnk_03000BF0 + ldrb r0, [r0, #4] + strb r0, [r3, #0xc] + movs r0, #6 + strb r0, [r3, #0xd] + adds r2, r1, #0 + ands r2, r4 + rsbs r0, r2, #0 + orrs r0, r2 + asrs r0, r0, #0x1f + ands r0, r5 + strb r0, [r3, #0xe] + ldr r4, _08058BBC @ =gUnk_081082E8 + lsls r2, r1, #1 + adds r2, r2, r1 + lsls r0, r2, #1 + adds r0, r0, r4 + ldrh r0, [r0] + strh r0, [r3, #0x10] + adds r0, r2, #1 + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r0, [r0] + strh r0, [r3, #0x12] + ldr r1, _08058BC0 @ =gUnk_02002A40 + adds r2, #2 + lsls r2, r2, #1 + adds r2, r2, r4 + ldrh r0, [r2] + strb r0, [r1, #7] + ldr r0, _08058BC4 @ =0x00000121 + bl sub_080A3268 + pop {r4, r5, pc} + .align 2, 0 +_08058BB4: .4byte gUnk_030010A0 +_08058BB8: .4byte gUnk_03000BF0 +_08058BBC: .4byte gUnk_081082E8 +_08058BC0: .4byte gUnk_02002A40 +_08058BC4: .4byte 0x00000121 + + thumb_func_start sub_08058BC8 +sub_08058BC8: @ 0x08058BC8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x14 + mov sb, r0 + ldr r0, _08058C9C @ =gUnk_03003DE4 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + ldr r1, _08058CA0 @ =gUnk_02017AA0 + adds r4, r0, r1 + movs r0, #0x80 + lsls r0, r0, #9 + str r0, [sp] + mov r1, sp + movs r2, #0 + movs r0, #0x78 + strh r0, [r1, #8] + movs r0, #0x80 + strh r0, [r1, #0xa] + mov r0, sp + strh r2, [r0, #0x10] + movs r1, #0x80 + lsls r1, r1, #1 + strh r1, [r0, #0xe] + strh r1, [r0, #0xc] + movs r5, #0 + mov r6, sp + ldr r0, _08058CA4 @ =gUnk_080C9160 + mov r8, r0 + adds r7, r1, #0 +_08058C0A: + lsls r0, r5, #7 + movs r1, #0xa0 + bl __divsi3 + movs r1, #0xff + ands r0, r1 + lsls r1, r0, #1 + add r1, r8 + movs r3, #0 + ldrsh r2, [r1, r3] + lsls r1, r2, #1 + adds r1, r1, r2 + asrs r1, r1, #2 + adds r1, r1, r7 + strh r1, [r6, #0xc] + lsls r0, r0, #2 + add r0, r8 + movs r1, #0 + ldrsh r0, [r0, r1] + asrs r0, r0, #4 + subs r0, r7, r0 + strh r0, [r6, #0xe] + mov r3, sb + ldr r0, [r3, #0x20] + adds r0, r0, r5 + lsls r0, r0, #8 + str r0, [sp, #4] + mov r0, sp + adds r1, r4, #0 + movs r2, #1 + bl BgAffineSet + adds r4, #0x10 + adds r5, #1 + cmp r5, #0x9f + bls _08058C0A + ldr r0, _08058C9C @ =gUnk_03003DE4 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + ldr r1, _08058CA8 @ =gUnk_02017BA0 + adds r4, r0, r1 + ldr r2, _08058CAC @ =gUnk_03000F50 + ldrh r0, [r4] + strh r0, [r2, #0x38] + ldrh r0, [r4, #2] + strh r0, [r2, #0x3a] + ldrh r0, [r4, #4] + strh r0, [r2, #0x3c] + ldrh r0, [r4, #6] + strh r0, [r2, #0x3e] + ldrh r1, [r4, #8] + adds r0, r2, #0 + adds r0, #0x40 + strh r1, [r0] + ldrh r0, [r4, #0xa] + adds r1, r2, #0 + adds r1, #0x42 + strh r0, [r1] + ldrh r1, [r4, #0xc] + adds r0, r2, #0 + adds r0, #0x44 + strh r1, [r0] + ldrh r1, [r4, #0xe] + adds r0, #2 + strh r1, [r0] + add sp, #0x14 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08058C9C: .4byte gUnk_03003DE4 +_08058CA0: .4byte gUnk_02017AA0 +_08058CA4: .4byte gUnk_080C9160 +_08058CA8: .4byte gUnk_02017BA0 +_08058CAC: .4byte gUnk_03000F50 + + thumb_func_start sub_08058CB0 +sub_08058CB0: @ 0x08058CB0 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _08058CD8 @ =gUnk_03001160 + movs r0, #0x2e + ldrsh r1, [r2, r0] + ldr r3, _08058CDC @ =gUnk_03000BF0 + ldrh r0, [r3, #6] + subs r1, r1, r0 + movs r0, #0x32 + ldrsh r2, [r2, r0] + ldrh r0, [r3, #8] + subs r2, r2, r0 + cmp r1, #0x77 + bhi _08058CE0 + movs r1, #1 + cmp r2, #0x4f + bhi _08058CE8 + movs r1, #0 + b _08058CE8 + .align 2, 0 +_08058CD8: .4byte gUnk_03001160 +_08058CDC: .4byte gUnk_03000BF0 +_08058CE0: + movs r1, #3 + cmp r2, #0x4f + bhi _08058CE8 + movs r1, #2 +_08058CE8: + ldr r0, _08058CF8 @ =gUnk_08108300 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + str r0, [r4, #0x20] + strh r0, [r4, #0x26] + pop {r4, pc} + .align 2, 0 +_08058CF8: .4byte gUnk_08108300 + + thumb_func_start sub_08058CFC +sub_08058CFC: @ 0x08058CFC + push {r4, r5, lr} + ldr r5, _08058D2C @ =gUnk_03001160 + movs r1, #0x32 + ldrsh r0, [r5, r1] + ldr r1, _08058D30 @ =gUnk_03000BF0 + movs r2, #0xc + ldrsh r1, [r1, r2] + subs r4, r0, r1 + cmp r4, #0x4b + bhi _08058D1A + adds r0, r5, #0 + movs r1, #0xc0 + movs r2, #0x10 + bl sub_080044AE +_08058D1A: + cmp r4, #0x54 + bls _08058D28 + adds r0, r5, #0 + movs r1, #0xc0 + movs r2, #0 + bl sub_080044AE +_08058D28: + pop {r4, r5, pc} + .align 2, 0 +_08058D2C: .4byte gUnk_03001160 +_08058D30: .4byte gUnk_03000BF0 + + thumb_func_start sub_08058D34 +sub_08058D34: @ 0x08058D34 + push {r4, lr} + movs r0, #0x28 + bl sub_0801D714 + ldr r0, _08058DAC @ =gUnk_02017700 + movs r2, #0x90 + lsls r2, r2, #2 + adds r1, r0, r2 + movs r2, #0x20 + bl sub_0801D66C + ldr r2, _08058DB0 @ =gUnk_0200B644 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #0xe + orrs r0, r1 + str r0, [r2] + movs r0, #0x16 + bl sub_0801D7EC + ldr r1, _08058DB4 @ =gUnk_03000F50 + ldrh r0, [r1] + movs r3, #0 + movs r2, #1 + movs r4, #0 + orrs r0, r2 + strh r0, [r1] + ldr r0, _08058DB8 @ =0x0000BC82 + strh r0, [r1, #0x20] + ldr r0, _08058DBC @ =0x00005E86 + strh r0, [r1, #0x14] + strh r3, [r1, #0x16] + strh r3, [r1, #0x18] + adds r2, r1, #0 + adds r2, #0x66 + ldr r0, _08058DC0 @ =0x00003456 + strh r0, [r2] + adds r1, #0x68 + ldr r0, _08058DC4 @ =0x00000909 + strh r0, [r1] + ldr r0, _08058DC8 @ =gUnk_02033A90 + movs r2, #0x86 + lsls r2, r2, #4 + adds r1, r0, r2 + adds r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] + ldr r0, _08058DCC @ =gUnk_02000070 + strb r4, [r0] + movs r0, #0x17 + bl sub_0807CC30 + cmp r0, #0 + beq _08058DA8 + movs r0, #0x4a + bl sub_0801D7EC +_08058DA8: + pop {r4, pc} + .align 2, 0 +_08058DAC: .4byte gUnk_02017700 +_08058DB0: .4byte gUnk_0200B644 +_08058DB4: .4byte gUnk_03000F50 +_08058DB8: .4byte 0x0000BC82 +_08058DBC: .4byte 0x00005E86 +_08058DC0: .4byte 0x00003456 +_08058DC4: .4byte 0x00000909 +_08058DC8: .4byte gUnk_02033A90 +_08058DCC: .4byte gUnk_02000070 + + thumb_func_start sub_08058DD0 +sub_08058DD0: @ 0x08058DD0 + push {lr} + ldr r2, _08058DE4 @ =gUnk_08108308 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08058DE4: .4byte gUnk_08108308 + + thumb_func_start sub_08058DE8 +sub_08058DE8: @ 0x08058DE8 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _08058DFC + bl sub_0805E780 + b _08058E14 +_08058DFC: + movs r0, #1 + strb r0, [r4, #0xc] + ldrh r0, [r4, #0x3a] + bl sub_0808094C + ldrh r1, [r4, #0x38] + lsls r1, r1, #1 + adds r1, #4 + adds r0, r0, r1 + str r0, [r4, #0x30] + ldrh r0, [r0] + strh r0, [r4, #0x28] +_08058E14: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08058E18 +sub_08058E18: @ 0x08058E18 + push {lr} + adds r2, r0, #0 + ldr r1, [r2, #0x30] + ldrh r0, [r2, #0x28] + ldrh r1, [r1] + cmp r0, r1 + beq _08058E30 + ldrb r0, [r2, #0xc] + adds r0, #1 + strb r0, [r2, #0xc] + movs r0, #0xf + strb r0, [r2, #0xe] +_08058E30: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08058E34 +sub_08058E34: @ 0x08058E34 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08058E5E + ldrh r0, [r4, #0x3e] + bl sub_0807CCC8 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _08058E58 + bl sub_0804B128 + bl sub_0804ADDC +_08058E58: + adds r0, r4, #0 + bl sub_0805E900 +_08058E5E: + pop {r4, pc} + + thumb_func_start sub_08058E60 +sub_08058E60: @ 0x08058E60 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08058E80 + movs r0, #1 + strb r0, [r4, #0xc] + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _08058E80 + adds r0, r4, #0 + bl sub_0805E900 + b _08058EC8 +_08058E80: + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _08058EC8 + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _08058E9E + movs r0, #0 + strb r0, [r4, #0xb] + movs r0, #0xff + bl sub_08078A90 + bl sub_08078B48 +_08058E9E: + ldrh r1, [r4, #0x3a] + movs r2, #0x3a + ldrsh r0, [r4, r2] + cmp r0, #0 + bne _08058EC4 + movs r1, #0x38 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _08058EB4 + bl sub_080A3268 +_08058EB4: + ldrb r0, [r4, #0xa] + bl sub_0804B128 + bl sub_0804ADDC + bl sub_0805E780 + b _08058EC8 +_08058EC4: + subs r0, r1, #1 + strh r0, [r4, #0x3a] +_08058EC8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08058ECC +sub_08058ECC: @ 0x08058ECC + push {lr} + ldr r2, _08058EE0 @ =gUnk_08108314 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08058EE0: .4byte gUnk_08108314 + + thumb_func_start sub_08058EE4 +sub_08058EE4: @ 0x08058EE4 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldrb r0, [r6, #0xc] + cmp r0, #0 + bne _08058EF2 + movs r0, #1 + strb r0, [r6, #0xc] +_08058EF2: + ldrb r0, [r6, #0xb] + bl sub_0807CC3C + cmp r0, #0 + beq _08058F40 + movs r5, #0x94 + lsls r5, r5, #1 + ldrb r2, [r6, #0xb] + adds r2, #1 + adds r0, r5, #0 + movs r1, #0x68 + bl sub_08058F44 + movs r4, #0xac + lsls r4, r4, #1 + ldrb r2, [r6, #0xb] + adds r2, #2 + adds r0, r4, #0 + movs r1, #0x68 + bl sub_08058F44 + ldrb r2, [r6, #0xb] + adds r2, #3 + adds r0, r5, #0 + movs r1, #0x98 + bl sub_08058F44 + ldrb r2, [r6, #0xb] + adds r2, #4 + adds r0, r4, #0 + movs r1, #0x98 + bl sub_08058F44 + movs r0, #0x92 + lsls r0, r0, #1 + bl sub_080A3268 + bl sub_0805E780 +_08058F40: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08058F44 +sub_08058F44: @ 0x08058F44 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r0, r2, #0 + bl sub_0807CC3C + cmp r0, #0 + bne _08058F80 + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #1 + bl sub_080002A8 + cmp r0, #0x61 + bne _08058F80 + lsrs r1, r4, #4 + movs r2, #0x3f + ands r1, r2 + lsrs r0, r5, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r1, r0 + movs r0, #0x26 + movs r2, #1 + bl sub_0807B314 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08058F84 +_08058F80: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08058F84 +sub_08058F84: @ 0x08058F84 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #0x21 + movs r1, #0 + movs r2, #0 + bl sub_080A2960 + adds r2, r0, #0 + cmp r2, #0 + beq _08058FA8 + ldr r0, _08058FAC @ =gUnk_03000BF0 + ldrh r1, [r0, #6] + adds r1, r1, r4 + strh r1, [r2, #0x2e] + ldrh r0, [r0, #8] + adds r0, r0, r5 + strh r0, [r2, #0x32] +_08058FA8: + pop {r4, r5, pc} + .align 2, 0 +_08058FAC: .4byte gUnk_03000BF0 + + thumb_func_start sub_08058FB0 +sub_08058FB0: @ 0x08058FB0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _08058FF6 + cmp r0, #1 + bgt _08058FC4 + cmp r0, #0 + beq _08058FCA + b _08059050 +_08058FC4: + cmp r0, #2 + beq _08059018 + b _08059050 +_08058FCA: + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + cmp r0, #1 + bne _08058FDC + movs r0, #7 + strb r0, [r4, #0xd] + movs r0, #6 + b _08058FE2 +_08058FDC: + movs r0, #8 + strb r0, [r4, #0xd] + movs r0, #2 +_08058FE2: + strb r0, [r4, #0xf] + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _08059060 + adds r0, r4, #0 + bl sub_0805E900 + b _08059060 +_08058FF6: + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _08059060 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0xf0 + bl sub_0805E4E0 + adds r0, r4, #0 + bl sub_08059064 + b _08059060 +_08059018: + ldrb r0, [r4, #0xe] + cmp r0, #0x5a + bne _08059028 + movs r0, #2 + bl sub_08078A90 + bl sub_08077B20 +_08059028: + ldrb r2, [r4, #0xe] + cmp r2, #0x3c + bne _08059034 + ldr r1, _0805904C @ =gUnk_03001160 + ldrb r0, [r4, #0xf] + strb r0, [r1, #0x14] +_08059034: + subs r0, r2, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08059060 + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0xd] + movs r0, #5 + bl sub_080A7138 + b _08059060 + .align 2, 0 +_0805904C: .4byte gUnk_03001160 +_08059050: + ldrh r0, [r4, #0x3e] + bl sub_0807CCC8 + movs r0, #1 + bl sub_08078A90 + bl sub_0805E780 +_08059060: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08059064 +sub_08059064: @ 0x08059064 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0 + movs r1, #0x53 + movs r2, #0 + bl sub_080A2960 + adds r2, r0, #0 + cmp r2, #0 + beq _0805908E + movs r0, #2 + strb r0, [r2, #0xe] + ldr r1, _08059090 @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + ldrh r3, [r4, #0x38] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + ldrh r0, [r1, #8] + ldrh r4, [r4, #0x3a] + adds r0, r0, r4 + strh r0, [r2, #0x32] +_0805908E: + pop {r4, pc} + .align 2, 0 +_08059090: .4byte gUnk_03000BF0 + + thumb_func_start sub_08059094 +sub_08059094: @ 0x08059094 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080590B6 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x60 + bl sub_0807CBD0 + cmp r0, #0 + bne _080590CC + movs r0, #0x5f + bl sub_0807CCB4 + b _080590C8 +_080590B6: + movs r0, #0x60 + bl sub_0807CBD0 + cmp r0, #0 + beq _080590C8 + movs r0, #0x5f + bl sub_0807CD34 + movs r5, #1 +_080590C8: + cmp r5, #0 + beq _080590D8 +_080590CC: + ldr r0, _080590DC @ =gUnk_080F4B88 + bl sub_0804ADDC + adds r0, r4, #0 + bl sub_0805E900 +_080590D8: + pop {r4, r5, pc} + .align 2, 0 +_080590DC: .4byte gUnk_080F4B88 + + thumb_func_start sub_080590E0 +sub_080590E0: @ 0x080590E0 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xc] + cmp r0, #0 + bne _080590F6 + movs r0, #1 + strb r0, [r1, #0xc] + adds r0, r1, #0 + movs r1, #6 + bl sub_0805E3A0 +_080590F6: + movs r0, #0x6c + bl sub_0807CBD0 + cmp r0, #0 + beq _0805911A + movs r0, #0x4b + bl sub_0807CBD0 + cmp r0, #0 + beq _08059112 + movs r0, #0x4a + bl sub_0807CCB4 + b _08059120 +_08059112: + movs r0, #0x4a + bl sub_0807CD34 + b _08059120 +_0805911A: + movs r0, #0x4a + bl sub_0807CD34 +_08059120: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08059124 +sub_08059124: @ 0x08059124 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + beq _08059174 + cmp r0, #1 + beq _080591AC + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080591C8 + movs r1, #0x38 + ldrsh r0, [r4, r1] + movs r2, #0x3a + ldrsh r1, [r4, r2] + ldrb r2, [r4, #0xb] + bl sub_080A29C8 + ldrh r0, [r4, #0x38] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + movs r2, #0x3f + ands r0, r2 + ldrh r1, [r4, #0x3a] + lsls r1, r1, #0x10 + asrs r1, r1, #0x14 + ands r1, r2 + lsls r1, r1, #6 + orrs r0, r1 + ldrb r1, [r4, #0xb] + bl sub_0807BA8C + movs r0, #0xcd + bl sub_080A3268 + bl sub_0805E780 + b _080591C8 +_08059174: + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _08059182 + bl sub_0805E780 +_08059182: + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _080591A8 @ =0x00000365 + ldrh r1, [r4, #0x38] + lsls r1, r1, #0x10 + asrs r1, r1, #0x14 + movs r3, #0x3f + ands r1, r3 + ldrh r2, [r4, #0x3a] + lsls r2, r2, #0x10 + asrs r2, r2, #0x14 + ands r2, r3 + lsls r2, r2, #6 + orrs r1, r2 + ldrb r2, [r4, #0xb] + bl sub_0807B314 + b _080591C8 + .align 2, 0 +_080591A8: .4byte 0x00000365 +_080591AC: + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _080591C8 + adds r0, r4, #0 + movs r1, #0x4b + bl sub_0805E4E0 + movs r0, #0x2d + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] +_080591C8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080591CC +sub_080591CC: @ 0x080591CC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080591F4 + movs r0, #1 + strb r0, [r4, #0xc] + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + strb r0, [r4, #0xb] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08059214 + ldr r1, _080591F0 @ =gUnk_02034350 + ldrh r0, [r4, #0x3a] + b _08059218 + .align 2, 0 +_080591F0: .4byte gUnk_02034350 +_080591F4: + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + adds r1, r0, #0 + ldrb r0, [r4, #0xb] + cmp r0, r1 + beq _0805921A + strb r1, [r4, #0xb] + cmp r1, #0 + beq _08059214 + ldr r1, _08059210 @ =gUnk_02034350 + ldrh r0, [r4, #0x3a] + b _08059218 + .align 2, 0 +_08059210: .4byte gUnk_02034350 +_08059214: + ldr r1, _0805921C @ =gUnk_02034350 + ldrh r0, [r4, #0x38] +_08059218: + strh r0, [r1, #0xc] +_0805921A: + pop {r4, pc} + .align 2, 0 +_0805921C: .4byte gUnk_02034350 + + thumb_func_start sub_08059220 +sub_08059220: @ 0x08059220 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldr r2, _08059268 @ =gUnk_02034350 + movs r0, #0 + strh r0, [r2, #0xc] + ldr r4, _0805926C @ =gUnk_08108354 + ldrh r0, [r4] + ldr r1, _08059270 @ =0x0000FFFF + cmp r0, r1 + beq _08059254 + adds r7, r2, #0 + adds r6, r1, #0 +_08059238: + ldrh r0, [r4] + ldrh r1, [r4, #2] + ldrh r2, [r4, #4] + ldrh r3, [r4, #6] + bl sub_0800293E + cmp r0, #0 + beq _0805924C + ldrh r0, [r4, #8] + strh r0, [r7, #0xc] +_0805924C: + adds r4, #0xa + ldrh r0, [r4] + cmp r0, r6 + bne _08059238 +_08059254: + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _08059266 + movs r0, #1 + strb r0, [r5, #0xc] + ldr r1, _08059274 @ =gUnk_02033A90 + ldr r0, _08059268 @ =gUnk_02034350 + ldrh r0, [r0, #0xc] + strh r0, [r1, #0xa] +_08059266: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08059268: .4byte gUnk_02034350 +_0805926C: .4byte gUnk_08108354 +_08059270: .4byte 0x0000FFFF +_08059274: .4byte gUnk_02033A90 + + thumb_func_start sub_08059278 +sub_08059278: @ 0x08059278 + push {lr} + movs r0, #9 + movs r1, #0xf + movs r2, #6 + bl sub_0805EB00 + cmp r0, #0 + beq _0805928C + bl sub_08058ECC +_0805928C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08059290 +sub_08059290: @ 0x08059290 + movs r1, #1 + strb r1, [r0, #0xc] + ldr r1, _0805929C @ =gUnk_03000BF0 + ldr r0, _080592A0 @ =gUnk_03001160 + str r0, [r1, #0x30] + bx lr + .align 2, 0 +_0805929C: .4byte gUnk_03000BF0 +_080592A0: .4byte gUnk_03001160 + + thumb_func_start sub_080592A4 +sub_080592A4: @ 0x080592A4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080592C8 + movs r0, #1 + strb r0, [r4, #0xc] + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _080592EA + adds r0, r4, #0 + bl sub_080592EC + bl sub_0805E780 + b _080592EA +_080592C8: + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _080592EA + adds r0, r4, #0 + bl sub_080592EC + adds r0, r4, #0 + bl sub_0805930C + movs r0, #0xb7 + lsls r0, r0, #1 + bl sub_080A3268 + bl sub_0805E780 +_080592EA: + pop {r4, pc} + + thumb_func_start sub_080592EC +sub_080592EC: @ 0x080592EC + push {lr} + adds r1, r0, #0 + ldrh r0, [r1, #0x38] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + movs r2, #0x3f + ands r0, r2 + ldrh r1, [r1, #0x3a] + lsls r1, r1, #0x10 + asrs r1, r1, #0x14 + ands r1, r2 + lsls r1, r1, #6 + orrs r0, r1 + bl sub_08059340 + pop {pc} + + thumb_func_start sub_0805930C +sub_0805930C: @ 0x0805930C + push {r4, lr} + adds r4, r0, #0 + movs r0, #0xf + movs r1, #0x43 + movs r2, #0x40 + bl sub_080A2960 + adds r2, r0, #0 + cmp r2, #0 + beq _0805933A + ldr r1, _0805933C @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + ldrh r3, [r4, #0x38] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + ldrh r0, [r1, #8] + ldrh r4, [r4, #0x3a] + adds r0, r0, r4 + strh r0, [r2, #0x32] + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] +_0805933A: + pop {r4, pc} + .align 2, 0 +_0805933C: .4byte gUnk_03000BF0 + + thumb_func_start sub_08059340 +sub_08059340: @ 0x08059340 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x1d + adds r1, r4, #0 + movs r2, #1 + bl sub_0807B314 + movs r0, #0 + adds r1, r4, #0 + movs r2, #2 + bl sub_0807B314 + subs r4, #0x40 + movs r0, #0 + adds r1, r4, #0 + movs r2, #2 + bl sub_0807B314 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08059368 +sub_08059368: @ 0x08059368 + push {lr} + adds r2, r0, #0 + movs r0, #1 + strb r0, [r2, #0xc] + ldr r1, _08059388 @ =gUnk_02022780 + ldrh r0, [r2, #0x3c] + ldrh r1, [r1, #0x28] + cmp r0, r1 + bne _08059384 + ldrh r0, [r2, #0x3e] + bl sub_0807CCC8 + bl sub_0805E780 +_08059384: + pop {pc} + .align 2, 0 +_08059388: .4byte gUnk_02022780 + + thumb_func_start sub_0805938C +sub_0805938C: @ 0x0805938C + push {r4, lr} + adds r4, r0, #0 + bl sub_080593CC + cmp r0, #0 + beq _080593C8 + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #7 + bls _080593CA + movs r1, #0x38 + ldrsh r0, [r4, r1] + ldr r2, _080593C4 @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + subs r0, r0, r1 + movs r3, #0x3a + ldrsh r1, [r4, r3] + ldrh r2, [r2, #8] + subs r1, r1, r2 + movs r2, #0xff + movs r3, #0xa + bl sub_080806BC + b _080593CA + .align 2, 0 +_080593C4: .4byte gUnk_03000BF0 +_080593C8: + strb r0, [r4, #0xe] +_080593CA: + pop {r4, pc} + + thumb_func_start sub_080593CC +sub_080593CC: @ 0x080593CC + push {r4, lr} + adds r3, r0, #0 + ldr r2, _08059418 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08059420 + adds r0, r2, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + beq _08059420 + ldr r4, _0805941C @ =gUnk_03001160 + ldrb r0, [r4, #0x14] + cmp r0, #0 + bne _08059420 + adds r0, r2, #0 + adds r0, #0x90 + ldrh r1, [r0] + movs r0, #0xf0 + lsls r0, r0, #4 + ands r0, r1 + movs r1, #0x80 + lsls r1, r1, #3 + cmp r0, r1 + bne _08059420 + movs r0, #0x38 + ldrsh r1, [r3, r0] + movs r0, #0x3a + ldrsh r2, [r3, r0] + adds r2, #0xc + adds r0, r4, #0 + movs r3, #6 + bl sub_0806FCB8 + b _08059422 + .align 2, 0 +_08059418: .4byte gUnk_03003F80 +_0805941C: .4byte gUnk_03001160 +_08059420: + movs r0, #0 +_08059422: + pop {r4, pc} + + thumb_func_start sub_08059424 +sub_08059424: @ 0x08059424 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _08059436 + bl sub_0805E780 +_08059436: + ldrh r0, [r4, #0x3c] + bl sub_0807CBE4 + cmp r0, #0 + beq _08059476 + movs r0, #0xf + movs r1, #0x35 + movs r2, #0 + bl sub_080A2960 + adds r2, r0, #0 + cmp r2, #0 + beq _08059476 + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + ldr r1, _08059478 @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + ldrh r3, [r4, #0x38] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + ldrh r0, [r1, #8] + ldrh r4, [r4, #0x3a] + adds r0, r0, r4 + strh r0, [r2, #0x32] + movs r0, #0xd8 + lsls r0, r0, #1 + bl sub_08004488 + bl sub_0805E780 +_08059476: + pop {r4, pc} + .align 2, 0 +_08059478: .4byte gUnk_03000BF0 + + thumb_func_start sub_0805947C +sub_0805947C: @ 0x0805947C + push {lr} + ldrh r0, [r0, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + bne _080594CE + movs r0, #3 + bl sub_08078A90 + ldr r1, _080594B0 @ =gUnk_03000BF0 + ldrh r0, [r1] + cmp r0, #0 + bne _080594D2 + ldr r0, _080594B4 @ =gUnk_02034350 + ldrb r0, [r0] + cmp r0, #0 + beq _080594BC + ldr r0, _080594B8 @ =gUnk_08108380 + ldrb r1, [r1, #0x10] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl sub_0807DB2C + b _080594CE + .align 2, 0 +_080594B0: .4byte gUnk_03000BF0 +_080594B4: .4byte gUnk_02034350 +_080594B8: .4byte gUnk_08108380 +_080594BC: + ldr r1, _080594D4 @ =gUnk_08108380 + ldr r0, _080594D8 @ =gUnk_03001160 + ldrb r0, [r0, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl sub_0807DB2C +_080594CE: + bl sub_0805E780 +_080594D2: + pop {pc} + .align 2, 0 +_080594D4: .4byte gUnk_08108380 +_080594D8: .4byte gUnk_03001160 + + thumb_func_start sub_080594DC +sub_080594DC: @ 0x080594DC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _080594F2 + cmp r0, #1 + bgt _0805951C + cmp r0, #0 + bne _0805951C + movs r0, #1 + strb r0, [r4, #0xc] +_080594F2: + movs r0, #6 + bl sub_0807CA84 + cmp r0, #0 + beq _08059540 + movs r0, #0x8c + lsls r0, r0, #4 + movs r1, #0x85 + bl sub_0807CB10 + cmp r0, #0 + bne _08059540 + movs r0, #2 + strb r0, [r4, #0xc] + ldr r0, _08059518 @ =0x00000B0F + bl sub_080186C0 + b _08059540 + .align 2, 0 +_08059518: .4byte 0x00000B0F +_0805951C: + ldr r0, _08059544 @ =gUnk_02033A90 + adds r0, #0x28 + ldrb r0, [r0] + cmp r0, #0xff + beq _0805952A + bl sub_0805E780 +_0805952A: + movs r0, #0x8c + lsls r0, r0, #4 + movs r1, #0x85 + bl sub_0807CB10 + cmp r0, #0 + beq _08059540 + bl sub_0801855C + bl sub_0805E780 +_08059540: + pop {r4, pc} + .align 2, 0 +_08059544: .4byte gUnk_02033A90 + + thumb_func_start sub_08059548 +sub_08059548: @ 0x08059548 + push {lr} + movs r1, #6 + bl sub_0805E3A0 + ldr r0, _08059568 @ =gUnk_03001160 + ldrb r0, [r0, #0xc] + cmp r0, #0x16 + bne _0805955C + bl sub_0805E780 +_0805955C: + ldr r2, _0805956C @ =gUnk_03000FF0 + ldrh r1, [r2] + movs r0, #4 + orrs r0, r1 + strh r0, [r2] + pop {pc} + .align 2, 0 +_08059568: .4byte gUnk_03001160 +_0805956C: .4byte gUnk_03000FF0 + + thumb_func_start sub_08059570 +sub_08059570: @ 0x08059570 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xc] + cmp r5, #0 + bne _080595C8 + movs r6, #1 + strb r6, [r4, #0xc] + adds r0, #0x21 + strb r5, [r0] + adds r0, #2 + strb r5, [r0] + bl sub_0805986C + cmp r0, #0 + beq _080595A8 + adds r0, r4, #0 + adds r0, #0x20 + strb r6, [r0] + adds r1, r4, #0 + adds r1, #0x22 + movs r0, #2 + strb r0, [r1] + ldr r0, _080595A4 @ =gUnk_0200B650 + str r5, [r0] + b _080595B8 + .align 2, 0 +_080595A4: .4byte gUnk_0200B650 +_080595A8: + adds r0, r4, #0 + adds r0, #0x20 + movs r1, #0x1f + strb r1, [r0] + adds r1, r4, #0 + adds r1, #0x22 + movs r0, #5 + strb r0, [r1] +_080595B8: + ldr r0, _080595DC @ =gUnk_02034350 + movs r1, #0xff + strb r1, [r0, #0x10] + ldr r1, _080595E0 @ =sub_080595E4 + adds r0, r4, #0 + movs r2, #0 + bl sub_08052D74 +_080595C8: + adds r0, r4, #0 + bl sub_08059608 + adds r0, r4, #0 + bl sub_08059690 + adds r0, r4, #0 + bl sub_080596E0 + pop {r4, r5, r6, pc} + .align 2, 0 +_080595DC: .4byte gUnk_02034350 +_080595E0: .4byte sub_080595E4 + + thumb_func_start sub_080595E4 +sub_080595E4: @ 0x080595E4 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08059604 @ =gUnk_02034350 + movs r0, #0xff + strb r0, [r1, #0x10] + adds r0, r4, #0 + bl sub_08059690 + adds r0, r4, #0 + bl sub_080596E0 + movs r0, #0 + bl sub_0805B4D0 + pop {r4, pc} + .align 2, 0 +_08059604: .4byte gUnk_02034350 + + thumb_func_start sub_08059608 +sub_08059608: @ 0x08059608 + push {r4, lr} + adds r4, r0, #0 + adds r4, #0x23 + ldrb r0, [r4] + cmp r0, #0 + beq _08059638 + subs r0, #1 + strb r0, [r4] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08059682 + ldr r0, _08059634 @ =gUnk_02033A90 + movs r2, #0x86 + lsls r2, r2, #4 + adds r1, r0, r2 + adds r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] + bl sub_080A3268 + b _08059682 + .align 2, 0 +_08059634: .4byte gUnk_02033A90 +_08059638: + bl sub_0805986C + cmp r0, #0 + beq _08059668 + ldr r0, _0805965C @ =gUnk_02033A90 + ldr r2, _08059660 @ =0x00000864 + adds r1, r0, r2 + ldr r0, [r1] + cmp r0, #0x1e + beq _08059682 + movs r0, #0x1e + str r0, [r1] + movs r0, #0x78 + strb r0, [r4] + ldr r0, _08059664 @ =0x800D0000 + bl sub_080A3268 + b _08059682 + .align 2, 0 +_0805965C: .4byte gUnk_02033A90 +_08059660: .4byte 0x00000864 +_08059664: .4byte 0x800D0000 +_08059668: + ldr r0, _08059684 @ =gUnk_02033A90 + ldr r2, _08059688 @ =0x00000864 + adds r1, r0, r2 + ldr r0, [r1] + cmp r0, #0x37 + beq _08059682 + movs r0, #0x37 + str r0, [r1] + movs r0, #0x78 + strb r0, [r4] + ldr r0, _0805968C @ =0x800D0000 + bl sub_080A3268 +_08059682: + pop {r4, pc} + .align 2, 0 +_08059684: .4byte gUnk_02033A90 +_08059688: .4byte 0x00000864 +_0805968C: .4byte 0x800D0000 + + thumb_func_start sub_08059690 +sub_08059690: @ 0x08059690 + push {r4, lr} + adds r4, r0, #0 + bl sub_08059844 + cmp r0, #0 + beq _080596BC + adds r4, #0x20 + ldrb r0, [r4] + cmp r0, #0 + beq _080596D8 + ldr r0, _080596B8 @ =gUnk_085A7320 + movs r2, #0xd0 + lsls r2, r2, #1 + adds r1, r0, r2 + ldrb r2, [r4] + bl sub_08059894 + ldrb r0, [r4] + subs r0, #1 + b _080596D6 + .align 2, 0 +_080596B8: .4byte gUnk_085A7320 +_080596BC: + adds r4, #0x20 + ldrb r0, [r4] + cmp r0, #0x1f + bhi _080596D8 + ldr r0, _080596DC @ =gUnk_085A7320 + movs r2, #0xd0 + lsls r2, r2, #1 + adds r1, r0, r2 + ldrb r2, [r4] + bl sub_08059894 + ldrb r0, [r4] + adds r0, #1 +_080596D6: + strb r0, [r4] +_080596D8: + pop {r4, pc} + .align 2, 0 +_080596DC: .4byte gUnk_085A7320 + + thumb_func_start sub_080596E0 +sub_080596E0: @ 0x080596E0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r0, _08059730 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _080596FC + ldr r0, _08059734 @ =gUnk_03000F50 + ldrh r1, [r0, #0x16] + adds r1, #8 + movs r2, #0x1f + ands r1, r2 + strh r1, [r0, #0x16] +_080596FC: + bl sub_0805986C + cmp r0, #0 + beq _08059740 + adds r0, r4, #0 + adds r0, #0x21 + ldrb r1, [r0] + adds r5, r0, #0 + adds r2, r4, #0 + adds r2, #0x22 + cmp r1, #0 + bne _08059764 + ldrb r0, [r2] + cmp r0, #2 + beq _08059764 + movs r0, #1 + strb r0, [r5] + movs r0, #3 + strb r0, [r2] + ldr r0, _08059738 @ =gUnk_08108390 + ldrb r0, [r0, #3] + strb r0, [r4, #0xe] + ldr r0, _0805973C @ =gUnk_0200B650 + str r1, [r0] + b _08059764 + .align 2, 0 +_08059730: .4byte gUnk_030010A0 +_08059734: .4byte gUnk_03000F50 +_08059738: .4byte gUnk_08108390 +_0805973C: .4byte gUnk_0200B650 +_08059740: + adds r0, r4, #0 + adds r0, #0x21 + ldrb r1, [r0] + adds r5, r0, #0 + adds r2, r4, #0 + adds r2, #0x22 + cmp r1, #0 + bne _08059764 + ldrb r0, [r2] + cmp r0, #5 + beq _08059764 + movs r0, #2 + strb r0, [r5] + ldr r1, _08059774 @ =gUnk_08108390 + ldrb r0, [r2] + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r4, #0xe] +_08059764: + adds r6, r5, #0 + ldrb r0, [r6] + cmp r0, #1 + beq _08059778 + cmp r0, #2 + beq _080597A8 + b _080597D0 + .align 2, 0 +_08059774: .4byte gUnk_08108390 +_08059778: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r3, #0xff + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _080597D0 + ldr r1, _080597A4 @ =gUnk_08108390 + ldrb r0, [r2] + subs r0, #1 + strb r0, [r2] + ands r0, r3 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r4, #0xe] + ldrb r0, [r2] + cmp r0, #2 + bne _080597D0 + strb r5, [r6] + b _080597D0 + .align 2, 0 +_080597A4: .4byte gUnk_08108390 +_080597A8: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r3, #0xff + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0 + bne _080597D0 + ldr r1, _080597EC @ =gUnk_08108390 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + ands r0, r3 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r4, #0xe] + ldrb r0, [r2] + cmp r0, #5 + bne _080597D0 + strb r6, [r5] +_080597D0: + ldr r3, _080597F0 @ =gUnk_02034350 + ldrb r1, [r2] + ldrb r0, [r3, #0x10] + cmp r0, r1 + beq _08059838 + strb r1, [r3, #0x10] + ldrb r0, [r2] + cmp r0, #4 + beq _08059800 + cmp r0, #4 + ble _080597F4 + cmp r0, #5 + beq _08059824 + b _08059838 + .align 2, 0 +_080597EC: .4byte gUnk_08108390 +_080597F0: .4byte gUnk_02034350 +_080597F4: + cmp r0, #0 + blt _08059838 + adds r0, #0x2b + bl sub_0801D7EC + b _08059838 +_08059800: + ldr r4, _0805981C @ =gUnk_02001A40 + movs r5, #0x80 + lsls r5, r5, #4 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0801D630 + ldr r1, _08059820 @ =0x0600E800 + adds r0, r4, #0 + adds r2, r5, #0 + bl sub_08000E96 + b _08059838 + .align 2, 0 +_0805981C: .4byte gUnk_02001A40 +_08059820: .4byte 0x0600E800 +_08059824: + ldr r0, _0805983C @ =gUnk_0200B650 + ldr r1, _08059840 @ =gUnk_03000F64 + str r1, [r0] + subs r1, #0x14 + ldrh r2, [r1] + movs r3, #0x80 + lsls r3, r3, #2 + adds r0, r3, #0 + orrs r0, r2 + strh r0, [r1] +_08059838: + pop {r4, r5, r6, pc} + .align 2, 0 +_0805983C: .4byte gUnk_0200B650 +_08059840: .4byte gUnk_03000F64 + + thumb_func_start sub_08059844 +sub_08059844: @ 0x08059844 + push {lr} + movs r3, #0 + ldr r0, _08059864 @ =gUnk_03001160 + movs r2, #0x2e + ldrsh r1, [r0, r2] + ldr r2, _08059868 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + ldrh r0, [r2, #0x1e] + lsrs r0, r0, #1 + cmp r1, r0 + ble _0805985E + movs r3, #1 +_0805985E: + adds r0, r3, #0 + pop {pc} + .align 2, 0 +_08059864: .4byte gUnk_03001160 +_08059868: .4byte gUnk_03000BF0 + + thumb_func_start sub_0805986C +sub_0805986C: @ 0x0805986C + push {lr} + movs r2, #0 + ldr r0, _0805988C @ =gUnk_03001160 + movs r3, #0x2e + ldrsh r1, [r0, r3] + ldr r0, _08059890 @ =gUnk_03000BF0 + ldrh r0, [r0, #6] + subs r1, r1, r0 + movs r0, #0x80 + lsls r0, r0, #2 + cmp r1, r0 + ble _08059886 + movs r2, #1 +_08059886: + adds r0, r2, #0 + pop {pc} + .align 2, 0 +_0805988C: .4byte gUnk_03001160 +_08059890: .4byte gUnk_03000BF0 + + thumb_func_start sub_08059894 +sub_08059894: @ 0x08059894 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + adds r4, r1, #0 + ldr r0, _080598E8 @ =gUnk_020176E0 + mov sb, r0 + movs r6, #0 + lsls r2, r2, #0x18 + mov r8, r2 +_080598AA: + adds r0, r5, #0 + adds r1, r4, #0 + mov r2, sb + mov r7, r8 + lsrs r3, r7, #0x18 + bl sub_08059960 + adds r5, #0x20 + adds r4, #0x20 + movs r0, #0x20 + add sb, r0 + adds r6, #1 + cmp r6, #0xc + bls _080598AA + ldr r0, _080598EC @ =gUnk_02017700 + movs r2, #0x90 + lsls r2, r2, #2 + adds r1, r0, r2 + movs r2, #0x20 + bl sub_0801D66C + ldr r2, _080598F0 @ =gUnk_0200B644 + ldr r0, [r2] + ldr r1, _080598F4 @ =0x00207FFC + orrs r0, r1 + str r0, [r2] + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080598E8: .4byte gUnk_020176E0 +_080598EC: .4byte gUnk_02017700 +_080598F0: .4byte gUnk_0200B644 +_080598F4: .4byte 0x00207FFC + + thumb_func_start sub_080598F8 +sub_080598F8: @ 0x080598F8 + push {r4, r5, r6, r7, lr} + movs r4, #0x1f + adds r3, r0, #0 + ands r3, r4 + lsls r6, r3, #8 + adds r3, r6, #0 + muls r3, r2, r3 + lsrs r6, r3, #5 + adds r3, r1, #0 + ands r3, r4 + lsls r3, r3, #8 + movs r4, #0x20 + subs r4, r4, r2 + muls r3, r4, r3 + lsrs r3, r3, #5 + adds r3, r6, r3 + lsrs r6, r3, #8 + movs r5, #0xf8 + lsls r5, r5, #2 + adds r3, r0, #0 + ands r3, r5 + lsls r7, r3, #3 + adds r3, r7, #0 + muls r3, r2, r3 + lsrs r7, r3, #5 + adds r3, r1, #0 + ands r3, r5 + lsls r3, r3, #3 + muls r3, r4, r3 + lsrs r3, r3, #5 + adds r3, r7, r3 + lsrs r7, r3, #8 + movs r3, #0xf8 + lsls r3, r3, #7 + ands r0, r3 + lsrs r5, r0, #2 + adds r0, r5, #0 + muls r0, r2, r0 + lsrs r5, r0, #5 + ands r1, r3 + lsrs r0, r1, #2 + muls r0, r4, r0 + lsrs r0, r0, #5 + adds r0, r5, r0 + lsrs r5, r0, #8 + lsls r0, r7, #5 + orrs r6, r0 + lsls r0, r5, #0xa + orrs r6, r0 + adds r0, r6, #0 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08059960 +sub_08059960: @ 0x08059960 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + adds r5, r1, #0 + adds r4, r2, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + mov r8, r3 + movs r7, #0 +_08059974: + ldrh r0, [r6] + adds r6, #2 + ldrh r1, [r5] + adds r5, #2 + mov r2, r8 + bl sub_080598F8 + strh r0, [r4] + adds r4, #2 + adds r7, #1 + cmp r7, #0xf + bls _08059974 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08059994 +sub_08059994: @ 0x08059994 + push {lr} + bl sub_0805986C + cmp r0, #0 + beq _080599AE + movs r0, #0x5b + bl sub_0801D714 + ldr r0, _080599B0 @ =gUnk_02033A90 + ldr r1, _080599B4 @ =0x00000864 + adds r0, r0, r1 + movs r1, #0x1e + str r1, [r0] +_080599AE: + pop {pc} + .align 2, 0 +_080599B0: .4byte gUnk_02033A90 +_080599B4: .4byte 0x00000864 + + thumb_func_start sub_080599B8 +sub_080599B8: @ 0x080599B8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080599D6 + movs r0, #1 + strb r0, [r4, #0xc] + ldrh r0, [r4, #0x3c] + bl sub_0807CBE4 + cmp r0, #0 + beq _080599EA + bl sub_0805E780 + b _080599EA +_080599D6: + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _080599EA + ldrh r0, [r4, #0x3c] + bl sub_0807CCC8 + bl sub_0805E780 +_080599EA: + pop {r4, pc} + + thumb_func_start sub_080599EC +sub_080599EC: @ 0x080599EC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08059A20 + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x22 + movs r0, #0xff + strb r0, [r1] + subs r1, #1 + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r1] + subs r1, #1 + strb r0, [r1] + ldr r1, _08059A28 @ =sub_08059A2C + adds r0, r4, #0 + movs r2, #0 + bl sub_08052D74 + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 +_08059A20: + adds r0, r4, #0 + bl sub_08059A58 + pop {r4, pc} + .align 2, 0 +_08059A28: .4byte sub_08059A2C + + thumb_func_start sub_08059A2C +sub_08059A2C: @ 0x08059A2C + push {lr} + adds r2, r0, #0 + ldr r1, _08059A54 @ =gUnk_02034350 + movs r0, #0xff + strb r0, [r1, #0x12] + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r1, #0x11] + strb r0, [r1, #0x10] + adds r1, r2, #0 + adds r1, #0x22 + strb r0, [r1] + subs r1, #1 + strb r0, [r1] + subs r1, #1 + strb r0, [r1] + adds r0, r2, #0 + bl sub_08059A58 + pop {pc} + .align 2, 0 +_08059A54: .4byte gUnk_02034350 + + thumb_func_start sub_08059A58 +sub_08059A58: @ 0x08059A58 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _08059AC4 @ =gUnk_03000BF0 + ldrb r0, [r0, #4] + cmp r0, #0x15 + beq _08059AD4 + adds r4, r5, #0 + adds r4, #0x20 + ldr r3, _08059AC8 @ =gUnk_08108398 + adds r0, r5, #0 + movs r1, #0 + adds r2, r4, #0 + bl sub_08059C8C + cmp r0, #0 + beq _08059A80 + ldrb r1, [r4] + movs r0, #0 + bl sub_08059CC0 +_08059A80: + adds r4, r5, #0 + adds r4, #0x21 + ldr r3, _08059ACC @ =gUnk_081083AE + adds r0, r5, #0 + movs r1, #1 + adds r2, r4, #0 + bl sub_08059C8C + cmp r0, #0 + beq _08059AA6 + ldrb r1, [r4] + movs r0, #1 + bl sub_08059CC0 + ldrb r0, [r4] + cmp r0, #2 + bne _08059AA6 + bl sub_08059B18 +_08059AA6: + adds r4, r5, #0 + adds r4, #0x22 + ldr r3, _08059AD0 @ =gUnk_081083C4 + adds r0, r5, #0 + movs r1, #2 + adds r2, r4, #0 + bl sub_08059C8C + cmp r0, #0 + beq _08059B0C + ldrb r1, [r4] + movs r0, #2 + bl sub_08059CC0 + b _08059B0C + .align 2, 0 +_08059AC4: .4byte gUnk_03000BF0 +_08059AC8: .4byte gUnk_08108398 +_08059ACC: .4byte gUnk_081083AE +_08059AD0: .4byte gUnk_081083C4 +_08059AD4: + adds r4, r5, #0 + adds r4, #0x20 + ldr r3, _08059B10 @ =gUnk_081083DA + adds r0, r5, #0 + movs r1, #0 + adds r2, r4, #0 + bl sub_08059C8C + cmp r0, #0 + beq _08059AF0 + ldrb r1, [r4] + movs r0, #0 + bl sub_08059CC0 +_08059AF0: + adds r4, r5, #0 + adds r4, #0x22 + ldr r3, _08059B14 @ =gUnk_081083F2 + adds r0, r5, #0 + movs r1, #2 + adds r2, r4, #0 + bl sub_08059C8C + cmp r0, #0 + beq _08059B0C + ldrb r1, [r4] + movs r0, #2 + bl sub_08059CC0 +_08059B0C: + pop {r4, r5, pc} + .align 2, 0 +_08059B10: .4byte gUnk_081083DA +_08059B14: .4byte gUnk_081083F2 + + thumb_func_start sub_08059B18 +sub_08059B18: @ 0x08059B18 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + movs r0, #0x18 + bl sub_0807CC30 + cmp r0, #0 + beq _08059BEC + movs r6, #0 + movs r0, #0x3f + mov sb, r0 + movs r2, #0xc4 + lsls r2, r2, #1 + mov r8, r2 +_08059B38: + movs r5, #0 + lsls r1, r6, #4 + mov r2, r8 + lsrs r0, r2, #4 + mov r2, sb + ands r0, r2 + lsls r3, r0, #6 + movs r7, #0x28 + ldr r0, _08059BD8 @ =0x000004AB + adds r4, r1, r0 +_08059B4C: + lsrs r1, r7, #4 + mov r2, sb + ands r1, r2 + orrs r1, r3 + adds r0, r4, #0 + movs r2, #1 + str r3, [sp] + bl sub_0807B9B8 + adds r7, #0x10 + adds r4, #1 + adds r5, #1 + ldr r3, [sp] + cmp r5, #3 + bls _08059B4C + movs r0, #0x10 + add r8, r0 + adds r6, #1 + cmp r6, #3 + bls _08059B38 + movs r6, #0 + movs r3, #0x3f +_08059B78: + movs r5, #0 + lsls r1, r6, #4 + adds r6, #1 + mov r8, r6 + movs r2, #0xc4 + lsls r2, r2, #1 + adds r0, r1, r2 + lsrs r0, r0, #4 + ands r0, r3 + lsls r7, r0, #6 + movs r6, #0x28 + movs r0, #0x88 + lsls r0, r0, #3 + adds r4, r1, r0 +_08059B94: + lsrs r1, r6, #4 + ands r1, r3 + orrs r1, r7 + adds r0, r4, #0 + movs r2, #2 + str r3, [sp] + bl sub_0807B9B8 + adds r6, #0x10 + adds r4, #1 + adds r5, #1 + ldr r3, [sp] + cmp r5, #3 + bls _08059B94 + mov r6, r8 + cmp r6, #2 + bls _08059B78 + ldr r1, _08059BDC @ =0x000005C2 + movs r0, #0xd6 + movs r2, #2 + bl sub_0807B9B8 + ldr r1, _08059BE0 @ =0x000005C3 + movs r0, #0xd7 + movs r2, #2 + bl sub_0807B9B8 + ldr r0, _08059BE4 @ =gUnk_086E8460 + ldr r1, _08059BE8 @ =0x06001800 + movs r2, #0x80 + lsls r2, r2, #4 + bl sub_08000E96 + b _08059C5E + .align 2, 0 +_08059BD8: .4byte 0x000004AB +_08059BDC: .4byte 0x000005C2 +_08059BE0: .4byte 0x000005C3 +_08059BE4: .4byte gUnk_086E8460 +_08059BE8: .4byte 0x06001800 +_08059BEC: + movs r0, #0x19 + bl sub_0807CC30 + cmp r0, #0 + beq _08059C5E + movs r6, #0 + movs r3, #0x3f +_08059BFA: + movs r5, #0 + lsls r1, r6, #4 + adds r6, #1 + mov r8, r6 + movs r2, #0xc4 + lsls r2, r2, #1 + adds r0, r1, r2 + lsrs r0, r0, #4 + ands r0, r3 + lsls r7, r0, #6 + movs r6, #0x28 + ldr r0, _08059C68 @ =0x000004A6 + adds r4, r1, r0 +_08059C14: + lsrs r1, r6, #4 + ands r1, r3 + orrs r1, r7 + adds r0, r4, #0 + movs r2, #1 + str r3, [sp] + bl sub_0807B9B8 + adds r6, #0x10 + adds r4, #1 + adds r5, #1 + ldr r3, [sp] + cmp r5, #3 + bls _08059C14 + mov r6, r8 + cmp r6, #4 + bls _08059BFA + ldr r0, _08059C6C @ =0x00000444 + ldr r1, _08059C70 @ =0x00000602 + movs r2, #2 + bl sub_0807B9B8 + ldr r0, _08059C74 @ =0x00000445 + ldr r1, _08059C78 @ =0x00000605 + movs r2, #2 + bl sub_0807B9B8 + ldr r0, _08059C7C @ =0x00000454 + ldr r1, _08059C80 @ =0x00000642 + movs r2, #2 + bl sub_0807B9B8 + ldr r0, _08059C84 @ =0x00000455 + ldr r1, _08059C88 @ =0x00000645 + movs r2, #2 + bl sub_0807B9B8 +_08059C5E: + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08059C68: .4byte 0x000004A6 +_08059C6C: .4byte 0x00000444 +_08059C70: .4byte 0x00000602 +_08059C74: .4byte 0x00000445 +_08059C78: .4byte 0x00000605 +_08059C7C: .4byte 0x00000454 +_08059C80: .4byte 0x00000642 +_08059C84: .4byte 0x00000455 +_08059C88: .4byte 0x00000645 + + thumb_func_start sub_08059C8C +sub_08059C8C: @ 0x08059C8C + push {r4, r5, lr} + adds r5, r1, #0 + adds r4, r2, #0 + adds r0, r3, #0 + bl sub_08056300 + adds r2, r0, #0 + strb r2, [r4] + lsls r0, r2, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0xff + beq _08059CBC + ldr r0, _08059CB8 @ =gUnk_02034350 + adds r0, #0x10 + adds r1, r5, r0 + ldrb r0, [r1] + cmp r0, r3 + beq _08059CBC + strb r2, [r1] + movs r0, #1 + b _08059CBE + .align 2, 0 +_08059CB8: .4byte gUnk_02034350 +_08059CBC: + movs r0, #0 +_08059CBE: + pop {r4, r5, pc} + + thumb_func_start sub_08059CC0 +sub_08059CC0: @ 0x08059CC0 + push {r4, r5, r6, lr} + adds r2, r1, #0 + ldr r1, _08059CDC @ =gUnk_02034350 + adds r1, #0x10 + adds r0, r0, r1 + strb r2, [r0] + ldr r0, _08059CE0 @ =gUnk_03000BF0 + ldrb r0, [r0, #4] + cmp r0, #0x15 + beq _08059CE8 + lsls r1, r2, #4 + ldr r0, _08059CE4 @ =gUnk_08108408 + b _08059CEC + .align 2, 0 +_08059CDC: .4byte gUnk_02034350 +_08059CE0: .4byte gUnk_03000BF0 +_08059CE4: .4byte gUnk_08108408 +_08059CE8: + lsls r1, r2, #4 + ldr r0, _08059D10 @ =gUnk_08108468 +_08059CEC: + adds r6, r1, r0 + ldr r0, [r6] + ldr r4, _08059D14 @ =gUnk_085A2E80 + adds r0, r0, r4 + ldr r1, [r6, #4] + movs r5, #0x80 + lsls r5, r5, #5 + adds r2, r5, #0 + bl sub_08000E96 + ldr r0, [r6, #8] + adds r0, r0, r4 + ldr r1, [r6, #0xc] + adds r2, r5, #0 + bl sub_08000E96 + pop {r4, r5, r6, pc} + .align 2, 0 +_08059D10: .4byte gUnk_08108468 +_08059D14: .4byte gUnk_085A2E80 + + thumb_func_start sub_08059D18 +sub_08059D18: @ 0x08059D18 + push {r4, lr} + ldr r0, _08059D68 @ =gUnk_03000BF0 + ldrb r0, [r0, #4] + cmp r0, #0x15 + beq _08059D78 + ldr r0, _08059D6C @ =gUnk_08108398 + bl sub_08056300 + adds r4, r0, #0 + cmp r4, #0xff + beq _08059D36 + movs r0, #0 + adds r1, r4, #0 + bl sub_08059CC0 +_08059D36: + ldr r0, _08059D70 @ =gUnk_081083AE + bl sub_08056300 + adds r4, r0, #0 + cmp r4, #0xff + beq _08059D52 + movs r0, #1 + adds r1, r4, #0 + bl sub_08059CC0 + cmp r4, #2 + bne _08059D52 + bl sub_08059B18 +_08059D52: + ldr r0, _08059D74 @ =gUnk_081083C4 + bl sub_08056300 + adds r4, r0, #0 + cmp r4, #0xff + beq _08059DA0 + movs r0, #2 + adds r1, r4, #0 + bl sub_08059CC0 + b _08059DA0 + .align 2, 0 +_08059D68: .4byte gUnk_03000BF0 +_08059D6C: .4byte gUnk_08108398 +_08059D70: .4byte gUnk_081083AE +_08059D74: .4byte gUnk_081083C4 +_08059D78: + ldr r0, _08059DA4 @ =gUnk_081083DA + bl sub_08056300 + adds r4, r0, #0 + cmp r4, #0xff + beq _08059D8C + movs r0, #0 + adds r1, r4, #0 + bl sub_08059CC0 +_08059D8C: + ldr r0, _08059DA8 @ =gUnk_081083F2 + bl sub_08056300 + adds r4, r0, #0 + cmp r4, #0xff + beq _08059DA0 + movs r0, #2 + adds r1, r4, #0 + bl sub_08059CC0 +_08059DA0: + pop {r4, pc} + .align 2, 0 +_08059DA4: .4byte gUnk_081083DA +_08059DA8: .4byte gUnk_081083F2 + + thumb_func_start sub_08059DAC +sub_08059DAC: @ 0x08059DAC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _08059DBE + movs r0, #1 + strb r0, [r5, #0xc] +_08059DBE: + ldr r1, _08059E4C @ =gUnk_03000BF0 + ldrb r0, [r1, #4] + ldr r4, _08059E50 @ =gUnk_081084C8 + cmp r0, #0x15 + bne _08059DCA + ldr r4, _08059E54 @ =gUnk_08108530 +_08059DCA: + movs r7, #0 + ldrh r0, [r4] + cmp r0, #0 + beq _08059E46 + mov r8, r1 +_08059DD4: + movs r6, #1 + lsls r6, r7 + ldr r0, [r5, #0x20] + ands r0, r6 + cmp r0, #0 + bne _08059E38 + ldrh r0, [r4] + ldrh r1, [r4, #2] + movs r2, #0x10 + movs r3, #0x10 + bl sub_0800290E + cmp r0, #0 + beq _08059E38 + ldrb r1, [r4, #4] + movs r0, #0x1c + adds r2, r7, #0 + bl sub_080A2960 + adds r2, r0, #0 + cmp r2, #0 + beq _08059E38 + ldrb r0, [r4, #5] + strb r0, [r2, #0x1e] + ldrh r0, [r4] + mov r1, r8 + ldrh r1, [r1, #6] + adds r0, r0, r1 + strh r0, [r2, #0x2e] + ldrh r0, [r4, #2] + mov r3, r8 + ldrh r3, [r3, #8] + adds r0, r0, r3 + strh r0, [r2, #0x32] + str r5, [r2, #0x50] + ldrh r1, [r4] + adds r0, r2, #0 + adds r0, #0x80 + strh r1, [r0] + ldrh r0, [r4, #2] + adds r1, r2, #0 + adds r1, #0x82 + strh r0, [r1] + ldrb r1, [r4, #6] + adds r0, r2, #0 + adds r0, #0x38 + strb r1, [r0] + ldr r0, [r5, #0x20] + orrs r0, r6 + str r0, [r5, #0x20] +_08059E38: + adds r4, #8 + adds r7, #1 + ldrh r0, [r4] + cmp r0, #0 + beq _08059E46 + cmp r7, #0x1f + bls _08059DD4 +_08059E46: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08059E4C: .4byte gUnk_03000BF0 +_08059E50: .4byte gUnk_081084C8 +_08059E54: .4byte gUnk_08108530 + + thumb_func_start sub_08059E58 +sub_08059E58: @ 0x08059E58 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x20] + adds r0, #1 + strh r0, [r4, #0x20] + ldr r1, _08059E7C @ =gUnk_081085A4 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0805A1D8 + pop {r4, pc} + .align 2, 0 +_08059E7C: .4byte gUnk_081085A4 + + thumb_func_start sub_08059E80 +sub_08059E80: @ 0x08059E80 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0805EABC + cmp r0, #0 + beq _08059E90 + bl sub_0805E780 +_08059E90: + adds r1, r4, #0 + adds r1, #0x22 + movs r2, #0 + movs r0, #1 + strb r0, [r1] + movs r0, #0 + strh r2, [r4, #0x20] + strb r0, [r4, #0xe] + movs r0, #4 + strb r0, [r4, #0xf] + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r4, #0x10] + ldr r3, _08059EE4 @ =gUnk_03000F50 + ldr r0, _08059EE8 @ =0x00001E04 + strh r0, [r3, #0x2c] + ldrh r0, [r3] + movs r5, #0x80 + lsls r5, r5, #4 + adds r1, r5, #0 + orrs r0, r1 + strh r0, [r3] + adds r1, r3, #0 + adds r1, #0x66 + ldr r0, _08059EEC @ =0x00003E48 + strh r0, [r1] + adds r1, #2 + movs r0, #0x80 + lsls r0, r0, #5 + strh r0, [r1] + movs r0, #0x80 + strh r0, [r3, #0x2e] + strh r2, [r3, #0x30] + ldr r1, _08059EF0 @ =nullsub_495 + ldr r2, _08059EF4 @ =sub_0805A25C + adds r0, r4, #0 + bl sub_08052D74 + pop {r4, r5, pc} + .align 2, 0 +_08059EE4: .4byte gUnk_03000F50 +_08059EE8: .4byte 0x00001E04 +_08059EEC: .4byte 0x00003E48 +_08059EF0: .4byte nullsub_495 +_08059EF4: .4byte sub_0805A25C + + thumb_func_start sub_08059EF8 +sub_08059EF8: @ 0x08059EF8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + movs r6, #0xff + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _08059F90 + movs r0, #4 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_08059F9C + cmp r0, #0 + beq _08059F64 + ldr r2, _08059F50 @ =gUnk_08108588 + ldrb r0, [r4, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r1, [r0] + ldr r0, _08059F54 @ =0x00000808 + cmp r1, r0 + beq _08059F5C + adds r1, r4, #0 + adds r1, #0x22 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x24 + strb r5, [r0] + ldr r1, _08059F58 @ =gUnk_03000F50 + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + ands r0, r6 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + adds r1, #0x68 + strh r0, [r1] + b _08059F90 + .align 2, 0 +_08059F50: .4byte gUnk_08108588 +_08059F54: .4byte 0x00000808 +_08059F58: .4byte gUnk_03000F50 +_08059F5C: + adds r0, r4, #0 + adds r0, #0x22 + strb r5, [r0] + b _08059F90 +_08059F64: + adds r1, r4, #0 + adds r1, #0x22 + movs r0, #1 + strb r0, [r1] + ldr r3, _08059F94 @ =gUnk_08108588 + ldrb r2, [r4, #0xe] + lsls r0, r2, #1 + adds r0, r0, r3 + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #5 + cmp r1, r0 + beq _08059F90 + ldr r0, _08059F98 @ =gUnk_03000F50 + subs r1, r2, #1 + strb r1, [r4, #0xe] + ands r1, r6 + lsls r1, r1, #1 + adds r1, r1, r3 + ldrh r1, [r1] + adds r0, #0x68 + strh r1, [r0] +_08059F90: + pop {r4, r5, r6, pc} + .align 2, 0 +_08059F94: .4byte gUnk_08108588 +_08059F98: .4byte gUnk_03000F50 + + thumb_func_start sub_08059F9C +sub_08059F9C: @ 0x08059F9C + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08059FB4 @ =gUnk_03000BF0 + ldrb r0, [r0, #5] + cmp r0, #0x17 + bhi _0805A03A + lsls r0, r0, #2 + ldr r1, _08059FB8 @ =_08059FBC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08059FB4: .4byte gUnk_03000BF0 +_08059FB8: .4byte _08059FBC +_08059FBC: @ jump table + .4byte _0805A036 @ case 0 + .4byte _0805A01C @ case 1 + .4byte _0805A03A @ case 2 + .4byte _0805A03A @ case 3 + .4byte _0805A03A @ case 4 + .4byte _0805A03A @ case 5 + .4byte _0805A03A @ case 6 + .4byte _0805A02A @ case 7 + .4byte _0805A036 @ case 8 + .4byte _0805A036 @ case 9 + .4byte _0805A03A @ case 10 + .4byte _0805A03A @ case 11 + .4byte _0805A03A @ case 12 + .4byte _0805A03A @ case 13 + .4byte _0805A03A @ case 14 + .4byte _0805A03A @ case 15 + .4byte _0805A03A @ case 16 + .4byte _0805A03A @ case 17 + .4byte _0805A03A @ case 18 + .4byte _0805A03A @ case 19 + .4byte _0805A03A @ case 20 + .4byte _0805A03A @ case 21 + .4byte _0805A03A @ case 22 + .4byte _0805A036 @ case 23 +_0805A01C: + movs r0, #0x16 + bl sub_0807CBD0 + cmp r0, #0 + beq _0805A02A + movs r0, #0 + b _0805A03C +_0805A02A: + adds r0, r4, #0 + bl sub_0805A25C + bl sub_0805E780 + b _0805A03C +_0805A036: + movs r0, #1 + b _0805A03C +_0805A03A: + movs r0, #0 +_0805A03C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805A040 +sub_0805A040: @ 0x0805A040 + push {lr} + bl sub_0805A098 + pop {pc} + + thumb_func_start sub_0805A048 +sub_0805A048: @ 0x0805A048 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805A086 + movs r0, #4 + strb r0, [r4, #0xf] + ldr r2, _0805A090 @ =gUnk_03000F50 + ldr r3, _0805A094 @ =gUnk_08108588 + ldrb r0, [r4, #0xe] + adds r1, r0, #1 + strb r1, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r3 + ldrh r0, [r0] + adds r2, #0x68 + strh r0, [r2] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #9 + bne _0805A086 + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x22 + movs r0, #0 + strb r0, [r1] +_0805A086: + adds r0, r4, #0 + bl sub_0805A098 + pop {r4, pc} + .align 2, 0 +_0805A090: .4byte gUnk_03000F50 +_0805A094: .4byte gUnk_08108588 + + thumb_func_start sub_0805A098 +sub_0805A098: @ 0x0805A098 + push {lr} + adds r1, r0, #0 + ldr r0, _0805A0B0 @ =gUnk_03000BF0 + ldrb r0, [r0, #5] + cmp r0, #9 + bgt _0805A0B4 + cmp r0, #8 + bge _0805A0BC + cmp r0, #0 + beq _0805A0BC + b _0805A0B8 + .align 2, 0 +_0805A0B0: .4byte gUnk_03000BF0 +_0805A0B4: + cmp r0, #0x17 + beq _0805A0BC +_0805A0B8: + movs r0, #3 + strb r0, [r1, #0xc] +_0805A0BC: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0805A0C0 +sub_0805A0C0: @ 0x0805A0C0 + push {r4, lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xf] + subs r0, #1 + strb r0, [r3, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805A106 + movs r0, #4 + strb r0, [r3, #0xf] + ldr r4, _0805A108 @ =gUnk_03000F50 + ldr r2, _0805A10C @ =gUnk_08108588 + ldrb r0, [r3, #0xe] + adds r1, r0, #0 + adds r1, #0xff + strb r1, [r3, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r2 + ldrh r2, [r0] + adds r0, r4, #0 + adds r0, #0x68 + strh r2, [r0] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #0xff + bne _0805A106 + ldrh r1, [r4] + ldr r0, _0805A110 @ =0x0000F7FF + ands r0, r1 + strh r0, [r4] + bl sub_08056250 + bl sub_0805E780 +_0805A106: + pop {r4, pc} + .align 2, 0 +_0805A108: .4byte gUnk_03000F50 +_0805A10C: .4byte gUnk_08108588 +_0805A110: .4byte 0x0000F7FF + + thumb_func_start sub_0805A114 +sub_0805A114: @ 0x0805A114 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r7, r0, #0 + adds r6, r1, #0 + ldr r2, _0805A154 @ =gUnk_03003DE4 + ldrb r1, [r2] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + ldr r1, _0805A158 @ =gUnk_02017AA0 + adds r4, r0, r1 + movs r5, #0 + mov r8, r2 + mov sb, r1 + ldr r2, _0805A15C @ =gUnk_03000F50 + ldr r0, _0805A160 @ =gUnk_080C9160 + mov ip, r0 +_0805A13A: + movs r1, #0x30 + ldrsh r0, [r2, r1] + adds r3, r5, r0 + asrs r1, r3, #3 + movs r0, #7 + ands r1, r0 + cmp r1, #7 + bhi _0805A190 + lsls r0, r1, #2 + ldr r1, _0805A164 @ =_0805A168 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0805A154: .4byte gUnk_03003DE4 +_0805A158: .4byte gUnk_02017AA0 +_0805A15C: .4byte gUnk_03000F50 +_0805A160: .4byte gUnk_080C9160 +_0805A164: .4byte _0805A168 +_0805A168: @ jump table + .4byte _0805A190 @ case 0 + .4byte _0805A18C @ case 1 + .4byte _0805A190 @ case 2 + .4byte _0805A190 @ case 3 + .4byte _0805A188 @ case 4 + .4byte _0805A190 @ case 5 + .4byte _0805A190 @ case 6 + .4byte _0805A18C @ case 7 +_0805A188: + subs r3, #8 + b _0805A190 +_0805A18C: + movs r0, #0xf0 + b _0805A192 +_0805A190: + movs r0, #0xf8 +_0805A192: + ands r3, r0 + adds r0, r6, r3 + movs r1, #0xff + ands r0, r1 + lsls r0, r0, #1 + add r0, ip + movs r1, #0 + ldrsh r0, [r0, r1] + muls r0, r7, r0 + lsrs r0, r0, #8 + ldrh r1, [r2, #0x2e] + adds r0, r0, r1 + strh r0, [r4] + adds r4, #2 + adds r5, #1 + cmp r5, #0x9f + ble _0805A13A + mov r0, r8 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + add r0, sb + ldr r1, _0805A1D0 @ =0x0400001C + ldr r2, _0805A1D4 @ =0xA2600001 + bl sub_0805622C + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0805A1D0: .4byte 0x0400001C +_0805A1D4: .4byte 0xA2600001 + + thumb_func_start sub_0805A1D8 +sub_0805A1D8: @ 0x0805A1D8 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r1, _0805A244 @ =gUnk_03000BF0 + ldr r0, [r1, #0x28] + ldr r2, _0805A248 @ =0xFFFFF000 + adds r0, r0, r2 + str r0, [r1, #0x28] + ldr r5, _0805A24C @ =gUnk_03000F50 + ldrh r0, [r1, #0x2a] + strh r0, [r5, #0x2e] + ldr r0, [r1, #0x2c] + adds r0, r0, r2 + str r0, [r1, #0x2c] + ldrh r0, [r1, #0x2e] + strh r0, [r5, #0x30] + ldrh r1, [r5] + movs r0, #0x80 + lsls r0, r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0805A240 + ldrh r1, [r4, #0x20] + lsrs r1, r1, #1 + movs r0, #6 + bl sub_0805A114 + adds r0, r4, #0 + adds r0, #0x22 + ldrb r0, [r0] + cmp r0, #0 + bne _0805A240 + ldr r0, _0805A250 @ =gUnk_03001000 + ldrh r1, [r0, #0xc] + movs r0, #0x1f + ands r0, r1 + cmp r0, #0 + bne _0805A240 + adds r2, r4, #0 + adds r2, #0x24 + ldrb r0, [r2] + adds r0, #1 + movs r1, #3 + ands r0, r1 + strb r0, [r2] + ldr r1, _0805A254 @ =gUnk_0810859A + ldrb r0, [r2] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + adds r0, r5, #0 + adds r0, #0x68 + strh r1, [r0] +_0805A240: + pop {r4, r5, pc} + .align 2, 0 +_0805A244: .4byte gUnk_03000BF0 +_0805A248: .4byte 0xFFFFF000 +_0805A24C: .4byte gUnk_03000F50 +_0805A250: .4byte gUnk_03001000 +_0805A254: .4byte gUnk_0810859A + + thumb_func_start nullsub_495 +nullsub_495: @ 0x0805A258 + bx lr + .align 2, 0 + + thumb_func_start sub_0805A25C +sub_0805A25C: @ 0x0805A25C + push {lr} + ldr r1, _0805A278 @ =gUnk_03000F50 + adds r2, r1, #0 + adds r2, #0x66 + movs r0, #0 + strh r0, [r2] + ldrh r2, [r1] + ldr r0, _0805A27C @ =0x0000F7FF + ands r0, r2 + strh r0, [r1] + bl sub_08056250 + pop {pc} + .align 2, 0 +_0805A278: .4byte gUnk_03000F50 +_0805A27C: .4byte 0x0000F7FF + + thumb_func_start sub_0805A280 +sub_0805A280: @ 0x0805A280 + push {lr} + ldr r2, _0805A294 @ =gUnk_081085D8 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805A294: .4byte gUnk_081085D8 + + thumb_func_start sub_0805A298 +sub_0805A298: @ 0x0805A298 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0805A2D6 + adds r0, r4, #0 + bl sub_0805A89C + ldrh r0, [r4, #0x3e] + bl sub_0807CBD0 + cmp r0, #0 + bne _0805A2BA + adds r1, r4, #0 + adds r1, #0x23 + movs r0, #1 + b _0805A2C0 +_0805A2BA: + adds r1, r4, #0 + adds r1, #0x23 + movs r0, #2 +_0805A2C0: + strb r0, [r1] + ldrb r0, [r1] + bl sub_0805AAF0 + ldr r2, _0805A2E0 @ =gUnk_03000F50 + ldrh r1, [r2] + movs r3, #0x90 + lsls r3, r3, #7 + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2] +_0805A2D6: + adds r0, r4, #0 + bl sub_0805A8EC + pop {r4, pc} + .align 2, 0 +_0805A2E0: .4byte gUnk_03000F50 + + thumb_func_start sub_0805A2E4 +sub_0805A2E4: @ 0x0805A2E4 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0805A34C + adds r0, r4, #0 + bl sub_0805A89C + adds r0, r4, #0 + adds r0, #0x23 + movs r5, #1 + strb r5, [r0] + movs r0, #1 + bl sub_0805AAF0 + ldrh r0, [r4, #0x3e] + bl sub_0807CBD0 + cmp r0, #0 + bne _0805A324 + strb r5, [r4, #0xc] + ldr r2, _0805A31C @ =gUnk_03000F50 + ldrh r1, [r2] + ldr r0, _0805A320 @ =0x0000B7FF + ands r0, r1 + strh r0, [r2] + b _0805A35C + .align 2, 0 +_0805A31C: .4byte gUnk_03000F50 +_0805A320: .4byte 0x0000B7FF +_0805A324: + movs r0, #0x48 + bl sub_0807CBD0 + cmp r0, #0 + beq _0805A332 + movs r0, #4 + b _0805A334 +_0805A332: + movs r0, #3 +_0805A334: + strb r0, [r4, #0xc] + ldr r2, _0805A348 @ =gUnk_03000F50 + ldrh r1, [r2] + movs r3, #0x90 + lsls r3, r3, #7 + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2] + b _0805A35C + .align 2, 0 +_0805A348: .4byte gUnk_03000F50 +_0805A34C: + ldr r0, _0805A36C @ =gUnk_081085F8 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_0805A35C: + ldr r0, [r4, #4] + cmp r0, #0 + beq _0805A368 + adds r0, r4, #0 + bl sub_0805A8EC +_0805A368: + pop {r4, r5, pc} + .align 2, 0 +_0805A36C: .4byte gUnk_081085F8 + + thumb_func_start sub_0805A370 +sub_0805A370: @ 0x0805A370 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _0805A38A + ldr r0, _0805A38C @ =gUnk_080E4C08 + bl sub_0804ADDC + movs r0, #3 + strb r0, [r4, #0xc] + ldr r0, _0805A390 @ =0x80100000 + bl sub_080A3268 +_0805A38A: + pop {r4, pc} + .align 2, 0 +_0805A38C: .4byte gUnk_080E4C08 +_0805A390: .4byte 0x80100000 + + thumb_func_start sub_0805A394 +sub_0805A394: @ 0x0805A394 + push {lr} + movs r0, #3 + movs r1, #0x13 + movs r2, #4 + bl sub_0805EB00 + cmp r0, #0 + beq _0805A3AA + ldrb r0, [r0, #0xa] + cmp r0, #4 + bne _0805A3C4 +_0805A3AA: + movs r0, #0x48 + bl sub_0807CCB4 + movs r0, #0 + bl sub_0807CD8C + ldr r2, _0805A3C8 @ =gUnk_03000F50 + ldrh r1, [r2] + ldr r0, _0805A3CC @ =0x0000B7FF + ands r0, r1 + strh r0, [r2] + bl sub_0805E780 +_0805A3C4: + pop {pc} + .align 2, 0 +_0805A3C8: .4byte gUnk_03000F50 +_0805A3CC: .4byte 0x0000B7FF + + thumb_func_start nullsub_496 +nullsub_496: @ 0x0805A3D0 + bx lr + .align 2, 0 + + thumb_func_start sub_0805A3D4 +sub_0805A3D4: @ 0x0805A3D4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0805A448 + adds r0, r4, #0 + bl sub_0805A89C + ldrb r0, [r4, #0xa] + cmp r0, #3 + bne _0805A3F2 + adds r1, r4, #0 + adds r1, #0x23 + movs r0, #2 + b _0805A3F8 +_0805A3F2: + adds r1, r4, #0 + adds r1, #0x23 + movs r0, #1 +_0805A3F8: + strb r0, [r1] + ldrb r0, [r1] + bl sub_0805AAF0 + ldrh r0, [r4, #0x3e] + bl sub_0807CBD0 + cmp r0, #0 + bne _0805A428 + ldrh r0, [r4, #0x3c] + bl sub_0807CD48 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r2, _0805A420 @ =gUnk_03000F50 + ldrh r1, [r2] + ldr r0, _0805A424 @ =0x0000B7FF + ands r0, r1 + strh r0, [r2] + b _0805A458 + .align 2, 0 +_0805A420: .4byte gUnk_03000F50 +_0805A424: .4byte 0x0000B7FF +_0805A428: + ldrh r0, [r4, #0x3c] + bl sub_0807CCC8 + movs r0, #3 + strb r0, [r4, #0xc] + ldr r2, _0805A444 @ =gUnk_03000F50 + ldrh r1, [r2] + movs r3, #0x90 + lsls r3, r3, #7 + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2] + b _0805A458 + .align 2, 0 +_0805A444: .4byte gUnk_03000F50 +_0805A448: + ldr r0, _0805A460 @ =gUnk_0810860C + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_0805A458: + adds r0, r4, #0 + bl sub_0805A8EC + pop {r4, pc} + .align 2, 0 +_0805A460: .4byte gUnk_0810860C + + thumb_func_start sub_0805A464 +sub_0805A464: @ 0x0805A464 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x3e] + bl sub_0807CBD0 + cmp r0, #0 + beq _0805A47E + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0 + bl sub_0805A4CC +_0805A47E: + pop {r4, pc} + + thumb_func_start sub_0805A480 +sub_0805A480: @ 0x0805A480 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xd] + cmp r0, #0 + beq _0805A494 + movs r0, #3 + strb r0, [r1, #0xc] + ldrh r0, [r1, #0x3c] + bl sub_0807CCC8 +_0805A494: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0805A498 +sub_0805A498: @ 0x0805A498 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x3e] + bl sub_0807CBD0 + cmp r0, #0 + bne _0805A4B2 + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl sub_0805A4CC +_0805A4B2: + pop {r4, pc} + + thumb_func_start sub_0805A4B4 +sub_0805A4B4: @ 0x0805A4B4 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xd] + cmp r0, #0 + beq _0805A4C8 + movs r0, #1 + strb r0, [r1, #0xc] + ldrh r0, [r1, #0x3c] + bl sub_0807CD48 +_0805A4C8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0805A4CC +sub_0805A4CC: @ 0x0805A4CC + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x8e + movs r2, #0 + bl sub_080A2960 + adds r3, r0, #0 + cmp r3, #0 + beq _0805A4F8 + ldr r1, _0805A4FC @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + ldrh r2, [r4, #0x38] + adds r0, r0, r2 + movs r2, #0 + strh r0, [r3, #0x2e] + ldrh r0, [r1, #8] + ldrh r1, [r4, #0x3a] + adds r0, r0, r1 + subs r0, #0x30 + strh r0, [r3, #0x32] + str r4, [r3, #0x50] + strb r2, [r4, #0xd] +_0805A4F8: + pop {r4, pc} + .align 2, 0 +_0805A4FC: .4byte gUnk_03000BF0 + + thumb_func_start sub_0805A500 +sub_0805A500: @ 0x0805A500 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xc] + cmp r5, #0 + bne _0805A588 + bl sub_0805A89C + str r5, [r4, #0x28] + movs r0, #0x36 + bl sub_0807CBD0 + cmp r0, #0 + beq _0805A538 + adds r3, r4, #0 + adds r3, #0x23 + movs r0, #3 + strb r0, [r3] + movs r0, #5 + strb r0, [r4, #0xc] + ldr r2, _0805A534 @ =gUnk_03000F50 + ldrh r1, [r2] + movs r5, #0x90 + lsls r5, r5, #7 + adds r0, r5, #0 + orrs r0, r1 + b _0805A574 + .align 2, 0 +_0805A534: .4byte gUnk_03000F50 +_0805A538: + movs r0, #0x34 + bl sub_0807CBD0 + cmp r0, #0 + beq _0805A560 + adds r3, r4, #0 + adds r3, #0x23 + movs r0, #4 + strb r0, [r3] + movs r0, #3 + strb r0, [r4, #0xc] + ldr r2, _0805A55C @ =gUnk_03000F50 + ldrh r1, [r2] + movs r5, #0x90 + lsls r5, r5, #7 + adds r0, r5, #0 + orrs r0, r1 + b _0805A574 + .align 2, 0 +_0805A55C: .4byte gUnk_03000F50 +_0805A560: + adds r3, r4, #0 + adds r3, #0x23 + movs r0, #4 + strb r0, [r3] + movs r0, #1 + strb r0, [r4, #0xc] + ldr r2, _0805A580 @ =gUnk_03000F50 + ldrh r1, [r2] + ldr r0, _0805A584 @ =0x0000B7FF + ands r0, r1 +_0805A574: + strh r0, [r2] + ldrb r0, [r3] + bl sub_0805AAF0 + b _0805A598 + .align 2, 0 +_0805A580: .4byte gUnk_03000F50 +_0805A584: .4byte 0x0000B7FF +_0805A588: + ldr r0, _0805A5C0 @ =gUnk_08108620 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_0805A598: + adds r0, r4, #0 + bl sub_0805AA58 + adds r0, r4, #0 + bl sub_0805A9CC + ldr r1, _0805A5C4 @ =gUnk_03000BF0 + ldrh r3, [r1] + cmp r3, #1 + bne _0805A5CC + ldr r2, _0805A5C8 @ =gUnk_03000F50 + ldrh r1, [r2] + movs r5, #0x80 + lsls r5, r5, #7 + adds r0, r5, #0 + orrs r0, r1 + strh r0, [r2] + strb r3, [r4, #0xd] + b _0805A5F0 + .align 2, 0 +_0805A5C0: .4byte gUnk_08108620 +_0805A5C4: .4byte gUnk_03000BF0 +_0805A5C8: .4byte gUnk_03000F50 +_0805A5CC: + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _0805A5F0 + movs r0, #0 + strb r0, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x20 + ldrb r0, [r0] + ldrb r1, [r1, #5] + cmp r0, r1 + beq _0805A5F0 + ldr r2, _0805A5F4 @ =gUnk_03000F50 + ldrh r1, [r2] + ldr r0, _0805A5F8 @ =0x0000B7FF + ands r0, r1 + strh r0, [r2] + bl sub_0805E780 +_0805A5F0: + pop {r4, r5, pc} + .align 2, 0 +_0805A5F4: .4byte gUnk_03000F50 +_0805A5F8: .4byte 0x0000B7FF + + thumb_func_start sub_0805A5FC +sub_0805A5FC: @ 0x0805A5FC + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x34 + bl sub_0807CBD0 + cmp r0, #0 + beq _0805A616 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805A4CC +_0805A616: + pop {r4, pc} + + thumb_func_start sub_0805A618 +sub_0805A618: @ 0x0805A618 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xd] + cmp r0, #0 + beq _0805A626 + movs r0, #3 + strb r0, [r1, #0xc] +_0805A626: + pop {pc} + + thumb_func_start sub_0805A628 +sub_0805A628: @ 0x0805A628 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x36 + bl sub_0807CBD0 + cmp r0, #0 + beq _0805A64A + movs r0, #4 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x23 + movs r0, #3 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #3 + bl sub_0805A4CC +_0805A64A: + pop {r4, pc} + + thumb_func_start sub_0805A64C +sub_0805A64C: @ 0x0805A64C + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xd] + cmp r0, #0 + beq _0805A65A + movs r0, #5 + strb r0, [r1, #0xc] +_0805A65A: + pop {pc} + + thumb_func_start sub_0805A65C +sub_0805A65C: @ 0x0805A65C + bx lr + .align 2, 0 + + thumb_func_start sub_0805A660 +sub_0805A660: @ 0x0805A660 + bx lr + .align 2, 0 + + thumb_func_start sub_0805A664 +sub_0805A664: @ 0x0805A664 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0805A688 @ =gUnk_08108638 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0805A8EC + adds r0, r4, #0 + bl sub_0805A68C + pop {r4, pc} + .align 2, 0 +_0805A688: .4byte gUnk_08108638 + + thumb_func_start sub_0805A68C +sub_0805A68C: @ 0x0805A68C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x38 + ldrsh r0, [r4, r1] + subs r0, #0x18 + movs r2, #0x3a + ldrsh r1, [r4, r2] + subs r1, #0x18 + movs r2, #0x30 + movs r3, #0x30 + bl sub_0806FBFC + cmp r0, #0 + beq _0805A6CC + ldrh r1, [r4, #0x2c] + ldr r0, _0805A6C4 @ =0x00001007 + cmp r1, r0 + bhi _0805A6E2 + ldr r0, _0805A6C8 @ =gUnk_03000F50 + adds r1, #1 + movs r2, #0 + strh r1, [r4, #0x2c] + adds r0, #0x68 + strh r1, [r0] + adds r0, r4, #0 + adds r0, #0x22 + strb r2, [r0] + b _0805A6E2 + .align 2, 0 +_0805A6C4: .4byte 0x00001007 +_0805A6C8: .4byte gUnk_03000F50 +_0805A6CC: + ldrh r1, [r4, #0x2c] + movs r0, #0x80 + lsls r0, r0, #5 + cmp r1, r0 + bls _0805A6DA + subs r0, r1, #1 + strh r0, [r4, #0x2c] +_0805A6DA: + ldr r0, _0805A6E4 @ =gUnk_03000F50 + ldrh r1, [r4, #0x2c] + adds r0, #0x68 + strh r1, [r0] +_0805A6E2: + pop {r4, pc} + .align 2, 0 +_0805A6E4: .4byte gUnk_03000F50 + + thumb_func_start sub_0805A6E8 +sub_0805A6E8: @ 0x0805A6E8 + push {r4, lr} + adds r4, r0, #0 + bl sub_0805A89C + adds r1, r4, #0 + adds r1, #0x23 + movs r0, #0 + strb r0, [r1] + bl sub_0805AAF0 + ldr r1, _0805A734 @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + ldrh r2, [r4, #0x38] + adds r0, r0, r2 + strh r0, [r4, #0x38] + ldrh r0, [r1, #8] + ldrh r3, [r4, #0x3a] + adds r0, r0, r3 + strh r0, [r4, #0x3a] + adds r0, r4, #0 + bl sub_0805A73C + cmp r0, #0 + bne _0805A71E + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] +_0805A71E: + movs r0, #0x80 + lsls r0, r0, #5 + strh r0, [r4, #0x2c] + ldr r2, _0805A738 @ =gUnk_03000F50 + ldrh r1, [r2] + movs r3, #0x90 + lsls r3, r3, #7 + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2] + pop {r4, pc} + .align 2, 0 +_0805A734: .4byte gUnk_03000BF0 +_0805A738: .4byte gUnk_03000F50 + + thumb_func_start sub_0805A73C +sub_0805A73C: @ 0x0805A73C + push {lr} + adds r1, r0, #0 + movs r2, #0x38 + ldrsh r0, [r1, r2] + subs r0, #6 + movs r2, #0x3a + ldrsh r1, [r1, r2] + subs r1, #6 + movs r2, #0xc + movs r3, #0xc + bl sub_0806FBFC + pop {pc} + .align 2, 0 + + thumb_func_start sub_0805A758 +sub_0805A758: @ 0x0805A758 + push {r4, lr} + adds r4, r0, #0 + bl sub_0805A73C + cmp r0, #0 + bne _0805A76A + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] +_0805A76A: + pop {r4, pc} + + thumb_func_start sub_0805A76C +sub_0805A76C: @ 0x0805A76C + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r5, _0805A7D4 @ =gUnk_03001160 + adds r0, r5, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _0805A7D0 + movs r1, #0x36 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _0805A7D0 + ldr r0, _0805A7D8 @ =gUnk_03003F80 + ldr r6, [r0, #0x2c] + cmp r6, #0 + bne _0805A7D0 + adds r0, #0xa9 + ldrb r0, [r0] + cmp r0, #1 + bgt _0805A7D0 + cmp r0, #0 + blt _0805A7D0 + adds r0, r4, #0 + bl sub_0805A73C + cmp r0, #0 + beq _0805A7D0 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r5, #0 + bl sub_08004168 + movs r0, #4 + strb r0, [r5, #0x14] + movs r1, #0x96 + lsls r1, r1, #2 + adds r0, r4, #0 + bl sub_0805E4E0 + movs r0, #0xff + bl sub_08078A90 + ldr r1, _0805A7DC @ =gUnk_02034490 + movs r0, #1 + strb r0, [r1] + ldr r0, _0805A7E0 @ =gUnk_03000BF0 + str r6, [r0, #0x30] + bl sub_08077B20 +_0805A7D0: + pop {r4, r5, r6, pc} + .align 2, 0 +_0805A7D4: .4byte gUnk_03001160 +_0805A7D8: .4byte gUnk_03003F80 +_0805A7DC: .4byte gUnk_02034490 +_0805A7E0: .4byte gUnk_03000BF0 + + thumb_func_start sub_0805A7E4 +sub_0805A7E4: @ 0x0805A7E4 + push {lr} + ldr r2, _0805A800 @ =gUnk_03003F80 + ldrb r0, [r2, #0xc] + cmp r0, #0x12 + beq _0805A7FE + movs r1, #0 + movs r0, #0x12 + strb r0, [r2, #0xc] + adds r0, r2, #0 + adds r0, #0x38 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] +_0805A7FE: + pop {pc} + .align 2, 0 +_0805A800: .4byte gUnk_03003F80 + + thumb_func_start sub_0805A804 +sub_0805A804: @ 0x0805A804 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #4 + bhi _0805A896 + lsls r0, r0, #2 + ldr r1, _0805A818 @ =_0805A81C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0805A818: .4byte _0805A81C +_0805A81C: @ jump table + .4byte _0805A830 @ case 0 + .4byte _0805A858 @ case 1 + .4byte _0805A866 @ case 2 + .4byte _0805A872 @ case 3 + .4byte _0805A88A @ case 4 +_0805A830: + ldrh r0, [r4, #0x3e] + bl sub_0807CBD0 + cmp r0, #0 + beq _0805A83E + movs r0, #1 + b _0805A840 +_0805A83E: + movs r0, #2 +_0805A840: + strb r0, [r4, #0xc] + movs r0, #1 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x10] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + b _0805A89A +_0805A858: + ldrh r0, [r4, #0x3e] + bl sub_0807CBD0 + cmp r0, #0 + bne _0805A89A + movs r0, #2 + b _0805A87E +_0805A866: + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _0805A89A + movs r0, #3 + strb r0, [r4, #0xc] + b _0805A89A +_0805A872: + ldrh r0, [r4, #0x3e] + bl sub_0807CBD0 + cmp r0, #0 + beq _0805A89A + movs r0, #4 +_0805A87E: + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #4 + bl sub_0805A4CC + b _0805A89A +_0805A88A: + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _0805A89A + movs r0, #1 + strb r0, [r4, #0xc] + b _0805A89A +_0805A896: + bl sub_0805E780 +_0805A89A: + pop {r4, pc} + + thumb_func_start sub_0805A89C +sub_0805A89C: @ 0x0805A89C + push {r4, lr} + adds r4, r0, #0 + movs r1, #6 + bl sub_0805E3A0 + movs r2, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r0, #8 + strb r0, [r4, #0xe] + movs r0, #0x10 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x21 + strb r2, [r0] + adds r0, #1 + strb r2, [r0] + ldr r1, _0805A8E4 @ =gUnk_03000BF0 + ldrb r2, [r1, #5] + subs r0, #2 + strb r2, [r0] + ldrh r0, [r1, #6] + strh r0, [r4, #0x24] + ldrh r0, [r1, #8] + strh r0, [r4, #0x26] + ldr r1, _0805A8E8 @ =sub_0805AAC8 + adds r0, r4, #0 + movs r2, #0 + bl sub_08052D74 + pop {r4, pc} + .align 2, 0 +_0805A8E4: .4byte gUnk_03000BF0 +_0805A8E8: .4byte sub_0805AAC8 + + thumb_func_start sub_0805A8EC +sub_0805A8EC: @ 0x0805A8EC + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0805AA58 + adds r0, r4, #0 + bl sub_0805A94C + ldr r1, _0805A914 @ =gUnk_03000BF0 + ldrh r3, [r1] + cmp r3, #1 + bne _0805A91C + ldr r2, _0805A918 @ =gUnk_03000F50 + ldrh r1, [r2] + movs r5, #0x80 + lsls r5, r5, #7 + adds r0, r5, #0 + orrs r0, r1 + strh r0, [r2] + strb r3, [r4, #0xd] + b _0805A940 + .align 2, 0 +_0805A914: .4byte gUnk_03000BF0 +_0805A918: .4byte gUnk_03000F50 +_0805A91C: + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _0805A940 + movs r0, #0 + strb r0, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x20 + ldrb r0, [r0] + ldrb r1, [r1, #5] + cmp r0, r1 + beq _0805A940 + ldr r2, _0805A944 @ =gUnk_03000F50 + ldrh r1, [r2] + ldr r0, _0805A948 @ =0x0000B7FF + ands r0, r1 + strh r0, [r2] + bl sub_0805E780 +_0805A940: + pop {r4, r5, pc} + .align 2, 0 +_0805A944: .4byte gUnk_03000F50 +_0805A948: .4byte 0x0000B7FF + + thumb_func_start sub_0805A94C +sub_0805A94C: @ 0x0805A94C + push {r4, lr} + ldr r4, _0805A9C4 @ =gUnk_03000F50 + ldr r3, _0805A9C8 @ =gUnk_03000BF0 + ldrh r1, [r3, #0xa] + ldrh r2, [r0, #0x24] + subs r1, r1, r2 + ldrh r2, [r0, #0x34] + adds r1, r1, r2 + strh r1, [r4, #0x2e] + ldrh r1, [r3, #0xc] + ldrh r2, [r0, #0x26] + subs r1, r1, r2 + ldrh r0, [r0, #0x36] + adds r1, r1, r0 + strh r1, [r4, #0x30] + movs r1, #0x2e + ldrsh r0, [r4, r1] + rsbs r0, r0, #0 + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r0, r2 + cmp r0, #0 + bge _0805A97C + movs r0, #0 +_0805A97C: + cmp r0, #0xf0 + ble _0805A982 + movs r0, #0xf0 +_0805A982: + cmp r1, #0 + bge _0805A988 + movs r1, #0 +_0805A988: + cmp r1, #0xf0 + ble _0805A98E + movs r1, #0xf0 +_0805A98E: + lsls r0, r0, #8 + orrs r0, r1 + adds r1, r4, #0 + adds r1, #0x5a + strh r0, [r1] + movs r1, #0x30 + ldrsh r0, [r4, r1] + rsbs r0, r0, #0 + adds r1, r0, r2 + cmp r0, #0 + bge _0805A9A6 + movs r0, #0 +_0805A9A6: + cmp r0, #0xa0 + ble _0805A9AC + movs r0, #0xa0 +_0805A9AC: + cmp r1, #0 + bge _0805A9B2 + movs r1, #0 +_0805A9B2: + cmp r1, #0xa0 + ble _0805A9B8 + movs r1, #0xa0 +_0805A9B8: + lsls r0, r0, #8 + orrs r0, r1 + adds r1, r4, #0 + adds r1, #0x5e + strh r0, [r1] + pop {r4, pc} + .align 2, 0 +_0805A9C4: .4byte gUnk_03000F50 +_0805A9C8: .4byte gUnk_03000BF0 + + thumb_func_start sub_0805A9CC +sub_0805A9CC: @ 0x0805A9CC + push {r4, r5, lr} + adds r4, r0, #0 + ldr r3, _0805AA4C @ =gUnk_03000F50 + ldr r5, _0805AA50 @ =gUnk_03000BF0 + ldrh r0, [r5, #0xa] + ldrh r1, [r4, #0x24] + subs r0, r0, r1 + ldrh r1, [r4, #0x34] + adds r0, r0, r1 + strh r0, [r3, #0x2e] + movs r2, #0x2e + ldrsh r0, [r3, r2] + rsbs r2, r0, #0 + movs r0, #0x80 + lsls r0, r0, #1 + adds r1, r2, r0 + cmp r2, #0 + bge _0805A9F2 + movs r2, #0 +_0805A9F2: + cmp r2, #0xf0 + ble _0805A9F8 + movs r2, #0xf0 +_0805A9F8: + cmp r1, #0 + bge _0805A9FE + movs r1, #0 +_0805A9FE: + cmp r1, #0xf0 + ble _0805AA04 + movs r1, #0xf0 +_0805AA04: + lsls r0, r2, #8 + orrs r0, r1 + adds r1, r3, #0 + adds r1, #0x5a + strh r0, [r1] + movs r1, #0xc + ldrsh r0, [r5, r1] + ldrh r1, [r4, #0x26] + subs r0, r0, r1 + movs r2, #0x36 + ldrsh r1, [r4, r2] + adds r2, r0, r1 + movs r1, #0x3f + adds r0, r2, #0 + ands r0, r1 + strh r0, [r3, #0x30] + adds r0, r2, #0 + cmp r0, #0 + bge _0805AA2C + adds r0, #0x3f +_0805AA2C: + asrs r0, r0, #6 + lsls r0, r0, #9 + ldr r1, _0805AA54 @ =gUnk_02001A40 + adds r1, r0, r1 + str r1, [r3, #0x34] + adds r2, r3, #0 + adds r2, #0x5e + movs r0, #0xa0 + strh r0, [r2] + ldr r0, [r4, #0x28] + cmp r0, r1 + beq _0805AA4A + str r1, [r4, #0x28] + movs r0, #1 + strh r0, [r3, #0x32] +_0805AA4A: + pop {r4, r5, pc} + .align 2, 0 +_0805AA4C: .4byte gUnk_03000F50 +_0805AA50: .4byte gUnk_03000BF0 +_0805AA54: .4byte gUnk_02001A40 + + thumb_func_start sub_0805AA58 +sub_0805AA58: @ 0x0805AA58 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r5, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805AA8C + movs r0, #8 + strb r0, [r4, #0xe] + adds r2, r4, #0 + adds r2, #0x21 + ldrb r0, [r2] + adds r0, #1 + movs r1, #3 + ands r0, r1 + strb r0, [r2] + ldrb r0, [r2] + lsls r0, r0, #5 + ldr r1, _0805AABC @ =gUnk_085A97A0 + adds r0, r0, r1 + movs r1, #5 + movs r2, #1 + bl sub_0801D754 +_0805AA8C: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r5 + cmp r0, #0 + bne _0805AABA + movs r0, #0x10 + strb r0, [r4, #0xf] + adds r2, r4, #0 + adds r2, #0x22 + ldrb r0, [r2] + adds r0, #1 + movs r1, #0xf + ands r0, r1 + strb r0, [r2] + ldr r1, _0805AAC0 @ =gUnk_03000F50 + ldr r3, _0805AAC4 @ =gUnk_081085B8 + ldrb r0, [r2] + lsls r0, r0, #1 + adds r0, r0, r3 + ldrh r0, [r0] + adds r1, #0x68 + strh r0, [r1] +_0805AABA: + pop {r4, r5, pc} + .align 2, 0 +_0805AABC: .4byte gUnk_085A97A0 +_0805AAC0: .4byte gUnk_03000F50 +_0805AAC4: .4byte gUnk_081085B8 + + thumb_func_start sub_0805AAC8 +sub_0805AAC8: @ 0x0805AAC8 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x23 + ldrb r0, [r0] + bl sub_0805AAF0 + adds r0, r4, #0 + bl sub_0805A280 + pop {r4, pc} + + thumb_func_start sub_0805AADC +sub_0805AADC: @ 0x0805AADC + push {lr} + ldr r1, _0805AAEC @ =gUnk_08108648 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + bl sub_0801D7EC + pop {pc} + .align 2, 0 +_0805AAEC: .4byte gUnk_08108648 + + thumb_func_start sub_0805AAF0 +sub_0805AAF0: @ 0x0805AAF0 + push {lr} + bl sub_0805AADC + ldr r3, _0805AB34 @ =gUnk_03000F50 + adds r1, r3, #0 + adds r1, #0x66 + movs r2, #0 + ldr r0, _0805AB38 @ =0x00003E48 + strh r0, [r1] + adds r1, #2 + ldr r0, _0805AB3C @ =0x00001008 + strh r0, [r1] + ldr r0, _0805AB40 @ =0x00001E04 + strh r0, [r3, #0x2c] + ldr r0, _0805AB44 @ =gUnk_02001A40 + str r0, [r3, #0x34] + strh r2, [r3, #0x2e] + strh r2, [r3, #0x30] + movs r0, #1 + strh r0, [r3, #0x32] + subs r1, #8 + ldr r0, _0805AB48 @ =0x00003F3F + strh r0, [r1] + adds r1, #2 + movs r0, #0x37 + strh r0, [r1] + subs r1, #8 + movs r0, #0xf0 + strh r0, [r1] + adds r1, #4 + movs r0, #0xa0 + strh r0, [r1] + pop {pc} + .align 2, 0 +_0805AB34: .4byte gUnk_03000F50 +_0805AB38: .4byte 0x00003E48 +_0805AB3C: .4byte 0x00001008 +_0805AB40: .4byte 0x00001E04 +_0805AB44: .4byte gUnk_02001A40 +_0805AB48: .4byte 0x00003F3F + + thumb_func_start sub_0805AB4C +sub_0805AB4C: @ 0x0805AB4C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r6, r0, #0 + ldrb r0, [r6, #0xa] + bl sub_0804B128 + adds r4, r0, #0 + cmp r4, #0 + bne _0805AB68 + bl sub_0805E780 +_0805AB68: + ldrb r0, [r6, #0xc] + movs r1, #0x20 + adds r1, r1, r6 + mov r8, r1 + cmp r0, #0 + bne _0805ABC8 + adds r0, #1 + strb r0, [r6, #0xc] + ldr r0, _0805ABF0 @ =gUnk_02033A90 + ldrb r0, [r0, #8] + strb r0, [r1] + adds r0, r6, #0 + movs r1, #6 + bl sub_0805E3A0 + ldr r2, _0805ABF4 @ =gUnk_02031EC0 + ldrb r0, [r6, #0xb] + mov r3, r8 + ldrb r1, [r3] + adds r0, r0, r1 + lsls r0, r0, #4 + adds r2, r0, r2 + movs r5, #0 + mov sl, r5 + ldrb r0, [r4] + movs r7, #0x21 + adds r7, r7, r6 + mov ip, r7 + cmp r0, #0xff + beq _0805ABBE +_0805ABA4: + adds r1, r2, #0 + adds r0, r4, #0 + ldm r0!, {r3, r5, r7} + stm r1!, {r3, r5, r7} + ldr r0, [r0] + str r0, [r1] + movs r0, #1 + add sl, r0 + adds r4, #0x10 + adds r2, #0x10 + ldrb r0, [r4] + cmp r0, #0xff + bne _0805ABA4 +_0805ABBE: + movs r0, #0xff + strb r0, [r2] + mov r2, sl + mov r1, ip + strb r2, [r1] +_0805ABC8: + ldr r4, _0805ABF4 @ =gUnk_02031EC0 + ldrb r2, [r6, #0xb] + mov r3, r8 + ldrb r1, [r3] + adds r0, r2, r1 + lsls r0, r0, #4 + adds r4, r0, r4 + ldr r0, _0805ABF8 @ =gUnk_02002A40 + movs r5, #1 + mov sl, r5 + mov r7, sl + ldrb r0, [r0, #8] + lsls r7, r0 + mov sl, r7 + adds r0, r1, #7 + asrs r0, r0, #3 + ldr r1, _0805ABFC @ =gUnk_020342F8 + adds r7, r0, r1 + adds r5, r2, #0 + b _0805ACAA + .align 2, 0 +_0805ABF0: .4byte gUnk_02033A90 +_0805ABF4: .4byte gUnk_02031EC0 +_0805ABF8: .4byte gUnk_02002A40 +_0805ABFC: .4byte gUnk_020342F8 +_0805AC00: + ldrh r0, [r4, #4] + ldrh r1, [r4, #6] + movs r2, #0x18 + movs r3, #0x20 + bl sub_0800290E + cmp r0, #0 + bne _0805AC1A + adds r0, r7, #0 + adds r1, r5, #0 + bl sub_0801D5D4 + b _0805ACA6 +_0805AC1A: + ldrh r0, [r4, #0xe] + mov r1, sl + ands r0, r1 + cmp r0, #0 + beq _0805ACA6 + ldr r0, _0805AC5C @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x46 + bhi _0805ACA6 + adds r0, r7, #0 + adds r1, r5, #0 + bl sub_0801D5BC + cmp r0, #0 + bne _0805ACA6 + ldr r0, [r4, #8] + cmp r0, #0 + beq _0805AC48 + bl sub_0807DAA0 + mov sb, r0 + cmp r0, #0 + beq _0805ACA6 +_0805AC48: + ldrb r0, [r6, #0xe] + cmp r0, #0 + bne _0805AC60 + ldrb r0, [r4] + ldrb r1, [r4, #1] + ldrb r2, [r4, #2] + bl sub_0806ED50 + b _0805AC6A + .align 2, 0 +_0805AC5C: .4byte gUnk_03003DBC +_0805AC60: + ldrb r0, [r4] + ldrb r1, [r4, #1] + ldrb r2, [r4, #2] + bl sub_080A2960 +_0805AC6A: + adds r3, r0, #0 + mov r2, r8 + ldrb r0, [r2] + adds r0, #1 + adds r0, r5, r0 + adds r1, r3, #0 + adds r1, #0x45 + strb r0, [r1] + ldrh r0, [r4, #0xc] + strb r0, [r3, #0xe] + ldr r1, _0805ACBC @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + ldrh r2, [r4, #4] + adds r0, r0, r2 + strh r0, [r3, #0x2e] + ldrh r0, [r1, #8] + ldrh r1, [r4, #6] + adds r0, r0, r1 + strh r0, [r3, #0x32] + ldrb r1, [r4, #3] + adds r0, r3, #0 + adds r0, #0x38 + strb r1, [r0] + ldr r2, [r4, #8] + cmp r2, #0 + beq _0805ACA6 + adds r0, r3, #0 + mov r1, sb + bl sub_0807DAF0 +_0805ACA6: + adds r4, #0x10 + adds r5, #1 +_0805ACAA: + ldrb r0, [r4] + cmp r0, #0xff + bne _0805AC00 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0805ACBC: .4byte gUnk_03000BF0 + + thumb_func_start sub_0805ACC0 +sub_0805ACC0: @ 0x0805ACC0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r0, #0x45 + ldrb r1, [r0] + cmp r1, #0 + bne _0805ACF0 + b _0805AD32 +_0805ACD0: + ldrb r0, [r4, #0xb] + subs r0, r5, r0 + lsls r0, r0, #4 + adds r3, r3, r0 + ldrh r0, [r3, #4] + ldr r2, _0805ACEC @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + adds r0, r0, r1 + lsls r0, r0, #0x10 + ldrh r1, [r3, #6] + orrs r0, r1 + ldrh r2, [r2, #8] + adds r0, r0, r2 + b _0805AD34 + .align 2, 0 +_0805ACEC: .4byte gUnk_03000BF0 +_0805ACF0: + movs r0, #0x7f + ands r0, r1 + subs r5, r0, #1 + ldr r6, _0805AD3C @ =gUnk_03003DA0 + ldr r4, [r6, #4] + cmp r4, r6 + beq _0805AD32 + ldr r0, _0805AD40 @ =0x00001609 + mov r8, r0 + ldr r0, _0805AD44 @ =0x0000FFFF + adds r7, r0, #0 +_0805AD06: + ldrh r0, [r4, #8] + ands r0, r7 + cmp r0, r8 + bne _0805AD2C + ldrb r1, [r4, #0xb] + cmp r1, r5 + bgt _0805AD2C + adds r0, r4, #0 + adds r0, #0x21 + ldrb r0, [r0] + adds r0, r1, r0 + cmp r0, r5 + ble _0805AD2C + ldrb r0, [r4, #0xa] + bl sub_0804B128 + adds r3, r0, #0 + cmp r3, #0 + bne _0805ACD0 +_0805AD2C: + ldr r4, [r4, #4] + cmp r4, r6 + bne _0805AD06 +_0805AD32: + movs r0, #0 +_0805AD34: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0805AD3C: .4byte gUnk_03003DA0 +_0805AD40: .4byte 0x00001609 +_0805AD44: .4byte 0x0000FFFF + + thumb_func_start sub_0805AD48 +sub_0805AD48: @ 0x0805AD48 + push {lr} + ldr r2, _0805AD5C @ =gUnk_08108654 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805AD5C: .4byte gUnk_08108654 + + thumb_func_start sub_0805AD60 +sub_0805AD60: @ 0x0805AD60 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrh r0, [r4, #0x3c] + bl sub_0807CBE4 + cmp r0, #0 + beq _0805AD76 + bl sub_0805E780 +_0805AD76: + adds r0, r4, #0 + bl sub_0805AD80 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805AD80 +sub_0805AD80: @ 0x0805AD80 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _0805ADD0 + ldrb r1, [r4, #0xa] + ldrb r2, [r4, #0xb] + movs r0, #0 + bl sub_080A2960 + adds r2, r0, #0 + cmp r2, #0 + beq _0805ADCC + adds r0, r4, #0 + adds r0, #0x35 + ldrb r0, [r0] + strb r0, [r2, #0xe] + adds r0, r4, #0 + adds r0, #0x36 + ldrb r1, [r0] + adds r0, r2, #0 + adds r0, #0x38 + strb r1, [r0] + ldr r1, _0805ADD4 @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + ldrh r3, [r4, #0x38] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + ldrh r0, [r1, #8] + ldrh r1, [r4, #0x3a] + adds r0, r0, r1 + strh r0, [r2, #0x32] + ldrh r1, [r4, #0x3c] + adds r0, r2, #0 + adds r0, #0x86 + strh r1, [r0] +_0805ADCC: + bl sub_0805E780 +_0805ADD0: + pop {r4, pc} + .align 2, 0 +_0805ADD4: .4byte gUnk_03000BF0 + + thumb_func_start sub_0805ADD8 +sub_0805ADD8: @ 0x0805ADD8 + push {r4, lr} + adds r4, r0, #0 + cmp r4, #0 + bne _0805AE04 + ldr r0, _0805ADF8 @ =gUnk_02033A90 + ldr r1, _0805ADFC @ =0x0000088C + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _0805AE00 @ =sub_0805AEDC + cmp r0, r1 + beq _0805AEC4 + movs r0, #0 + bl _call_via_r1 + b _0805AEC4 + .align 2, 0 +_0805ADF8: .4byte gUnk_02033A90 +_0805ADFC: .4byte 0x0000088C +_0805AE00: .4byte sub_0805AEDC +_0805AE04: + ldrb r2, [r4, #0xc] + cmp r2, #0 + bne _0805AE5E + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r4, #0x10] + strb r2, [r4, #0xe] + movs r0, #8 + strb r0, [r4, #0xf] + ldr r0, _0805AE44 @ =gUnk_0810865C + ldrh r0, [r0] + strh r0, [r4, #0x20] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + ldr r0, _0805AE48 @ =gUnk_02033A90 + ldr r2, _0805AE4C @ =0x0000088C + adds r0, r0, r2 + ldr r0, [r0] + cmp r0, #0 + bne _0805AE58 + ldr r1, _0805AE50 @ =sub_0805AEDC + ldr r2, _0805AE54 @ =sub_0805AF3C + adds r0, r4, #0 + bl sub_08052D74 + b _0805AEC4 + .align 2, 0 +_0805AE44: .4byte gUnk_0810865C +_0805AE48: .4byte gUnk_02033A90 +_0805AE4C: .4byte 0x0000088C +_0805AE50: .4byte sub_0805AEDC +_0805AE54: .4byte sub_0805AF3C +_0805AE58: + bl sub_0805E780 + b _0805AEC4 +_0805AE5E: + ldr r2, _0805AEC8 @ =gUnk_0810865C + ldrb r0, [r4, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + ldr r3, _0805AECC @ =gUnk_03000F50 + cmp r0, #0 + beq _0805AEA2 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + movs r1, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805AEA2 + movs r0, #4 + strb r0, [r4, #0xf] + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + ands r0, r1 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + cmp r0, #0 + beq _0805AEA2 + ldrb r0, [r4, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r1, [r0] + strh r1, [r4, #0x20] + adds r0, r3, #0 + adds r0, #0x68 + strh r1, [r0] +_0805AEA2: + ldr r1, _0805AED0 @ =gUnk_03000BF0 + ldr r0, [r1, #0x28] + ldr r2, _0805AED4 @ =0xFFFFE000 + adds r0, r0, r2 + str r0, [r1, #0x28] + ldr r0, [r1, #0x2c] + ldr r2, _0805AED8 @ =0xFFFFF000 + adds r0, r0, r2 + str r0, [r1, #0x2c] + ldrh r0, [r1, #0x2a] + ldrh r2, [r1, #0xa] + adds r0, r0, r2 + strh r0, [r3, #0x2e] + ldrh r0, [r1, #0x2e] + ldrh r1, [r1, #0xc] + adds r0, r0, r1 + strh r0, [r3, #0x30] +_0805AEC4: + pop {r4, pc} + .align 2, 0 +_0805AEC8: .4byte gUnk_0810865C +_0805AECC: .4byte gUnk_03000F50 +_0805AED0: .4byte gUnk_03000BF0 +_0805AED4: .4byte 0xFFFFE000 +_0805AED8: .4byte 0xFFFFF000 + + thumb_func_start sub_0805AEDC +sub_0805AEDC: @ 0x0805AEDC + push {r4, lr} + adds r3, r0, #0 + ldr r2, _0805AF2C @ =gUnk_03000F50 + ldr r0, _0805AF30 @ =0x00001E05 + strh r0, [r2, #0x2c] + ldrh r0, [r2] + movs r4, #0x80 + lsls r4, r4, #4 + adds r1, r4, #0 + orrs r0, r1 + strh r0, [r2] + adds r1, r2, #0 + adds r1, #0x66 + ldr r0, _0805AF34 @ =0x00003648 + strh r0, [r1] + movs r0, #0x80 + lsls r0, r0, #5 + adds r1, r0, #0 + cmp r3, #0 + beq _0805AF06 + ldrh r1, [r3, #0x20] +_0805AF06: + adds r0, r2, #0 + adds r0, #0x68 + strh r1, [r0] + ldr r1, _0805AF38 @ =gUnk_03000BF0 + ldrh r0, [r1, #0x2a] + ldrh r4, [r1, #0xa] + adds r0, r0, r4 + strh r0, [r2, #0x2e] + ldrh r0, [r1, #0x2e] + ldrh r1, [r1, #0xc] + adds r0, r0, r1 + strh r0, [r2, #0x30] + cmp r3, #0 + beq _0805AF28 + adds r0, r3, #0 + bl sub_0805ADD8 +_0805AF28: + pop {r4, pc} + .align 2, 0 +_0805AF2C: .4byte gUnk_03000F50 +_0805AF30: .4byte 0x00001E05 +_0805AF34: .4byte 0x00003648 +_0805AF38: .4byte gUnk_03000BF0 + + thumb_func_start sub_0805AF3C +sub_0805AF3C: @ 0x0805AF3C + ldrb r2, [r0, #0x10] + movs r1, #0xdf + ands r1, r2 + movs r3, #0 + strb r1, [r0, #0x10] + ldr r1, _0805AF58 @ =gUnk_03000F50 + ldrh r2, [r1] + ldr r0, _0805AF5C @ =0x0000F7FF + ands r0, r2 + strh r0, [r1] + adds r1, #0x66 + strh r3, [r1] + bx lr + .align 2, 0 +_0805AF58: .4byte gUnk_03000F50 +_0805AF5C: .4byte 0x0000F7FF + + thumb_func_start sub_0805AF60 +sub_0805AF60: @ 0x0805AF60 + push {r4, lr} + adds r4, r0, #0 + cmp r4, #0 + bne _0805AF8C + ldr r0, _0805AF80 @ =gUnk_02033A90 + ldr r1, _0805AF84 @ =0x0000088C + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _0805AF88 @ =sub_0805AFFC + cmp r0, r1 + beq _0805AFEE + movs r0, #0 + bl _call_via_r1 + b _0805AFEE + .align 2, 0 +_0805AF80: .4byte gUnk_02033A90 +_0805AF84: .4byte 0x0000088C +_0805AF88: .4byte sub_0805AFFC +_0805AF8C: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0805AFD2 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + ldr r0, _0805AFC0 @ =gUnk_02033A90 + ldr r2, _0805AFC4 @ =0x0000088C + adds r0, r0, r2 + ldr r0, [r0] + cmp r0, #0 + bne _0805AFCC + ldr r1, _0805AFC8 @ =sub_0805AFFC + adds r0, r4, #0 + movs r2, #0 + bl sub_08052D74 + b _0805AFEE + .align 2, 0 +_0805AFC0: .4byte gUnk_02033A90 +_0805AFC4: .4byte 0x0000088C +_0805AFC8: .4byte sub_0805AFFC +_0805AFCC: + bl sub_0805E780 + b _0805AFEE +_0805AFD2: + ldr r1, _0805AFF0 @ =gUnk_03000BF0 + ldr r0, [r1, #0x28] + ldr r3, _0805AFF4 @ =0xFFFFE000 + adds r0, r0, r3 + str r0, [r1, #0x28] + ldr r2, _0805AFF8 @ =gUnk_03000F50 + ldrh r0, [r1, #0x2a] + ldrh r3, [r1, #0xa] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + ldrh r0, [r1, #0x2e] + ldrh r1, [r1, #0xc] + adds r0, r0, r1 + strh r0, [r2, #0x30] +_0805AFEE: + pop {r4, pc} + .align 2, 0 +_0805AFF0: .4byte gUnk_03000BF0 +_0805AFF4: .4byte 0xFFFFE000 +_0805AFF8: .4byte gUnk_03000F50 + + thumb_func_start sub_0805AFFC +sub_0805AFFC: @ 0x0805AFFC + ldr r2, _0805B024 @ =gUnk_03000F50 + ldr r0, _0805B028 @ =0x00001E03 + strh r0, [r2, #0x2c] + ldrh r1, [r2] + movs r3, #0x80 + lsls r3, r3, #4 + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2] + ldr r1, _0805B02C @ =gUnk_03000BF0 + ldrh r0, [r1, #0x2a] + ldrh r3, [r1, #0xa] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + ldrh r0, [r1, #0x2e] + ldrh r1, [r1, #0xc] + adds r0, r0, r1 + strh r0, [r2, #0x30] + bx lr + .align 2, 0 +_0805B024: .4byte gUnk_03000F50 +_0805B028: .4byte 0x00001E03 +_0805B02C: .4byte gUnk_03000BF0 + + thumb_func_start sub_0805B030 +sub_0805B030: @ 0x0805B030 + push {lr} + ldr r2, _0805B044 @ =gUnk_08108668 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805B044: .4byte gUnk_08108668 + + thumb_func_start sub_0805B048 +sub_0805B048: @ 0x0805B048 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #6 + bl sub_0805E3A0 + adds r0, r4, #0 + adds r0, #0x20 + movs r1, #0x20 + bl sub_0801D630 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r2, _0805B08C @ =gUnk_03000BF0 + ldrb r0, [r2, #5] + adds r1, r4, #0 + adds r1, #0x3f + strb r0, [r1] + ldrb r1, [r4, #0xa] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0805B090 @ =gUnk_08108764 + adds r5, r0, r1 + ldrb r0, [r5, #0xa] + cmp r0, #0 + bne _0805B094 + ldrh r0, [r2, #6] + strh r0, [r4, #0x20] + ldrh r0, [r2, #8] + strh r0, [r4, #0x22] + ldrh r0, [r2, #0x1e] + strh r0, [r4, #0x24] + ldrh r0, [r2, #0x20] + b _0805B0B2 + .align 2, 0 +_0805B08C: .4byte gUnk_03000BF0 +_0805B090: .4byte gUnk_08108764 +_0805B094: + ldrb r0, [r5, #8] + lsls r0, r0, #4 + ldrh r1, [r2, #6] + adds r0, r0, r1 + strh r0, [r4, #0x20] + ldrb r0, [r5, #9] + lsls r0, r0, #4 + ldrh r2, [r2, #8] + adds r0, r0, r2 + strh r0, [r4, #0x22] + ldrb r0, [r5, #0xa] + lsls r0, r0, #4 + strh r0, [r4, #0x24] + ldrb r0, [r5, #0xb] + lsls r0, r0, #4 +_0805B0B2: + strh r0, [r4, #0x26] + ldr r1, [r5, #0xc] + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + strb r0, [r4, #0xb] + cmp r0, #0 + beq _0805B0FC + ldrb r0, [r4, #0x10] + movs r1, #0x20 + orrs r0, r1 + strb r0, [r4, #0x10] + ldr r0, [r5, #0xc] + ldrh r0, [r0, #4] + strh r0, [r4, #0x34] + ldr r0, [r5, #0xc] + ldrh r0, [r0, #6] + strh r0, [r4, #0x36] + ldr r0, [r5, #0xc] + ldrh r0, [r0, #8] + strh r0, [r4, #0x30] + ldr r0, [r5, #0xc] + ldrh r0, [r0, #0xa] + strh r0, [r4, #0x32] + bl sub_0805BC4C + adds r0, r4, #0 + bl sub_0805B2B0 + adds r0, r4, #0 + bl sub_0805B328 + ldr r1, _0805B160 @ =sub_0805B328 + adds r0, r4, #0 + movs r2, #0 + bl sub_08052D74 +_0805B0FC: + ldr r0, [r5, #0x10] + cmp r0, #0 + beq _0805B15E + ldrb r1, [r0] + ldrb r2, [r0, #1] + movs r0, #0x28 + bl sub_080A2960 + adds r3, r0, #0 + cmp r3, #0 + beq _0805B128 + ldr r1, [r5, #0x10] + ldr r2, _0805B164 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + ldrh r1, [r1, #4] + adds r0, r0, r1 + strh r0, [r3, #0x2e] + ldr r1, [r5, #0x10] + ldrh r0, [r2, #8] + ldrh r1, [r1, #6] + adds r0, r0, r1 + strh r0, [r3, #0x32] +_0805B128: + ldrb r0, [r4, #0xa] + cmp r0, #0xa + bne _0805B15E + movs r0, #0x4b + bl sub_0807CBD0 + cmp r0, #0 + bne _0805B15E + movs r0, #0x28 + movs r1, #3 + movs r2, #3 + bl sub_080A2960 + adds r3, r0, #0 + cmp r3, #0 + beq _0805B15E + ldr r1, [r5, #0x10] + ldr r2, _0805B164 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + ldrh r1, [r1, #4] + adds r0, r0, r1 + strh r0, [r3, #0x2e] + ldr r1, [r5, #0x10] + ldrh r0, [r2, #8] + ldrh r1, [r1, #6] + adds r0, r0, r1 + strh r0, [r3, #0x32] +_0805B15E: + pop {r4, r5, pc} + .align 2, 0 +_0805B160: .4byte sub_0805B328 +_0805B164: .4byte gUnk_03000BF0 + + thumb_func_start sub_0805B168 +sub_0805B168: @ 0x0805B168 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0805B1CC + adds r5, r0, #0 + cmp r5, #0 + beq _0805B182 + adds r0, r4, #0 + bl sub_0805B210 + bl sub_0805E780 + b _0805B1C0 +_0805B182: + adds r0, r4, #0 + bl sub_0805B2B0 + ldr r1, _0805B194 @ =gUnk_03000BF0 + ldrh r0, [r1] + cmp r0, #1 + bne _0805B198 + strb r0, [r4, #0xd] + b _0805B1C0 + .align 2, 0 +_0805B194: .4byte gUnk_03000BF0 +_0805B198: + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _0805B1C0 + strb r5, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x3f + ldrb r0, [r0] + ldrb r1, [r1, #5] + cmp r0, r1 + beq _0805B1C0 + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _0805B1BC + ldr r2, _0805B1C4 @ =gUnk_03000F50 + ldrh r1, [r2] + ldr r0, _0805B1C8 @ =0x0000F7FF + ands r0, r1 + strh r0, [r2] +_0805B1BC: + bl sub_0805E780 +_0805B1C0: + pop {r4, r5, pc} + .align 2, 0 +_0805B1C4: .4byte gUnk_03000F50 +_0805B1C8: .4byte 0x0000F7FF + + thumb_func_start sub_0805B1CC +sub_0805B1CC: @ 0x0805B1CC + push {r4, r5, lr} + movs r5, #0 + movs r1, #0x20 + ldrsh r4, [r0, r1] + movs r2, #0x22 + ldrsh r1, [r0, r2] + ldrh r2, [r0, #0x24] + ldrh r3, [r0, #0x26] + adds r0, r4, #0 + bl sub_0806FBFC + cmp r0, #0 + beq _0805B20C + ldr r2, _0805B1FC @ =gUnk_03003F80 + ldr r1, [r2, #0x30] + movs r0, #5 + ands r0, r1 + cmp r0, #5 + bne _0805B200 + movs r0, #0x80 + lsls r0, r0, #8 + orrs r1, r0 + str r1, [r2, #0x30] + b _0805B20C + .align 2, 0 +_0805B1FC: .4byte gUnk_03003F80 +_0805B200: + movs r0, #0x80 + lsls r0, r0, #8 + ands r1, r0 + cmp r1, #0 + beq _0805B20C + movs r5, #1 +_0805B20C: + adds r0, r5, #0 + pop {r4, r5, pc} + + thumb_func_start sub_0805B210 +sub_0805B210: @ 0x0805B210 + push {r4, r5, lr} + ldr r2, _0805B248 @ =gUnk_030010A0 + movs r1, #1 + strb r1, [r2, #8] + strb r1, [r2, #9] + movs r1, #4 + strb r1, [r2, #0xe] + ldrb r1, [r0, #0xa] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0805B24C @ =gUnk_08108764 + adds r4, r0, r1 + ldrb r0, [r4, #1] + strb r0, [r2, #0xc] + ldrb r0, [r4, #2] + strb r0, [r2, #0xd] + ldrb r0, [r4, #3] + strb r0, [r2, #0x14] + ldr r0, _0805B250 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + adds r5, r2, #0 + cmp r0, #0 + beq _0805B254 + movs r0, #6 + b _0805B256 + .align 2, 0 +_0805B248: .4byte gUnk_030010A0 +_0805B24C: .4byte gUnk_08108764 +_0805B250: .4byte gUnk_03003F80 +_0805B254: + movs r0, #2 +_0805B256: + strb r0, [r5, #0xf] + ldrb r0, [r4] + cmp r0, #1 + beq _0805B278 + cmp r0, #1 + bgt _0805B268 + cmp r0, #0 + beq _0805B26E + b _0805B2AC +_0805B268: + cmp r0, #2 + beq _0805B2A0 + b _0805B2AC +_0805B26E: + ldrh r0, [r4, #4] + strh r0, [r5, #0x10] + ldrh r0, [r4, #6] + strh r0, [r5, #0x12] + b _0805B2AC +_0805B278: + ldr r2, _0805B298 @ =gUnk_03001160 + ldr r3, _0805B29C @ =gUnk_03000BF0 + ldrh r0, [r2, #0x2e] + ldrh r1, [r3, #6] + subs r0, r0, r1 + ldrh r1, [r4, #4] + adds r0, r0, r1 + strh r0, [r5, #0x10] + ldrh r0, [r2, #0x32] + ldrh r1, [r3, #8] + subs r0, r0, r1 + ldrh r4, [r4, #6] + adds r0, r0, r4 + strh r0, [r5, #0x12] + b _0805B2AC + .align 2, 0 +_0805B298: .4byte gUnk_03001160 +_0805B29C: .4byte gUnk_03000BF0 +_0805B2A0: + ldrh r0, [r4, #4] + strh r0, [r5, #0x10] + ldrh r0, [r4, #6] + strh r0, [r5, #0x12] + movs r0, #6 + strb r0, [r5, #0xf] +_0805B2AC: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0805B2B0 +sub_0805B2B0: @ 0x0805B2B0 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xb] + cmp r0, #0 + beq _0805B31E + ldrh r1, [r5, #0x30] + ldr r6, _0805B320 @ =gUnk_03000BF0 + movs r2, #0xa + ldrsh r0, [r6, r2] + subs r1, r1, r0 + cmp r1, #0 + bge _0805B2CA + adds r1, #3 +_0805B2CA: + asrs r4, r1, #2 + ldrh r1, [r5, #0x32] + movs r7, #0xc + ldrsh r0, [r6, r7] + subs r1, r1, r0 + cmp r1, #0 + bge _0805B2DA + adds r1, #3 +_0805B2DA: + asrs r3, r1, #2 + movs r0, #0xc + rsbs r0, r0, #0 + cmp r4, r0 + bge _0805B2E6 + adds r4, r0, #0 +_0805B2E6: + cmp r4, #0xc + ble _0805B2EC + movs r4, #0xc +_0805B2EC: + cmp r3, r0 + bge _0805B2F2 + adds r3, r0, #0 +_0805B2F2: + cmp r3, #0xc + ble _0805B2F8 + movs r3, #0xc +_0805B2F8: + ldr r2, _0805B324 @ =gUnk_03000F50 + ldrh r1, [r2] + movs r7, #0x80 + lsls r7, r7, #4 + adds r0, r7, #0 + orrs r0, r1 + strh r0, [r2] + ldrh r0, [r5, #0x34] + ldrh r1, [r6, #0xa] + adds r0, r0, r1 + adds r0, r0, r4 + strh r0, [r6, #0x2a] + strh r0, [r2, #0x2e] + ldrh r0, [r5, #0x36] + ldrh r7, [r6, #0xc] + adds r0, r0, r7 + adds r0, r0, r3 + strh r0, [r6, #0x2e] + strh r0, [r2, #0x30] +_0805B31E: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0805B320: .4byte gUnk_03000BF0 +_0805B324: .4byte gUnk_03000F50 + + thumb_func_start sub_0805B328 +sub_0805B328: @ 0x0805B328 + push {r4, lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xb] + cmp r0, #0 + beq _0805B372 + ldrb r1, [r1, #0xa] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0805B374 @ =gUnk_08108764 + adds r0, r0, r1 + ldr r0, [r0, #0xc] + ldr r0, [r0] + ldr r1, _0805B378 @ =gUnk_085A2E80 + adds r0, r0, r1 + ldr r1, _0805B37C @ =0x0600F000 + movs r4, #0x80 + lsls r4, r4, #4 + adds r2, r4, #0 + bl sub_08000E96 + ldr r1, _0805B380 @ =gUnk_03000F50 + ldr r0, _0805B384 @ =0x00001E07 + strh r0, [r1, #0x2c] + ldrh r0, [r1] + orrs r4, r0 + strh r4, [r1] + ldr r2, _0805B388 @ =gUnk_03000BF0 + ldrh r0, [r2, #0x2a] + strh r0, [r1, #0x2e] + ldrh r0, [r2, #0x2e] + strh r0, [r1, #0x30] + adds r1, #0x66 + ldrh r2, [r1] + ldr r0, _0805B38C @ =0x0000FFF7 + ands r0, r2 + strh r0, [r1] +_0805B372: + pop {r4, pc} + .align 2, 0 +_0805B374: .4byte gUnk_08108764 +_0805B378: .4byte gUnk_085A2E80 +_0805B37C: .4byte 0x0600F000 +_0805B380: .4byte gUnk_03000F50 +_0805B384: .4byte 0x00001E07 +_0805B388: .4byte gUnk_03000BF0 +_0805B38C: .4byte 0x0000FFF7 + + thumb_func_start sub_0805B390 +sub_0805B390: @ 0x0805B390 + push {r4, lr} + adds r4, r0, #0 + bl sub_0805E8D4 + adds r1, r0, #0 + cmp r1, #0 + beq _0805B3B0 + movs r0, #9 + strb r0, [r1, #8] + movs r0, #0x1a + strb r0, [r1, #9] + strb r4, [r1, #0xa] + adds r0, r1, #0 + movs r1, #6 + bl sub_0805EA2C +_0805B3B0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805B3B4 +sub_0805B3B4: @ 0x0805B3B4 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0805EABC + cmp r0, #0 + beq _0805B3C4 + bl sub_0805E780 +_0805B3C4: + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + ldr r1, _0805B438 @ =gUnk_08108C28 + adds r5, r0, r1 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0805B41E + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _0805B3F6 + ldr r1, _0805B43C @ =sub_0805B4B4 + adds r0, r4, #0 + movs r2, #0 + bl sub_08052D74 +_0805B3F6: + ldr r0, _0805B440 @ =gUnk_03000BF0 + ldrh r1, [r0, #0x20] + movs r0, #0x80 + lsls r0, r0, #1 + subs r1, r0, r1 + cmp r1, #0 + bge _0805B406 + movs r1, #0 +_0805B406: + movs r0, #2 + ldrsb r0, [r5, r0] + adds r0, r1, r0 + str r0, [r4, #0x20] + ldr r1, _0805B444 @ =gUnk_08108C54 + ldrb r0, [r5, #1] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 +_0805B41E: + ldr r0, _0805B440 @ =gUnk_03000BF0 + ldrh r0, [r0] + cmp r0, #0 + bne _0805B436 + ldr r0, _0805B444 @ =gUnk_08108C54 + ldrb r1, [r5, #1] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_0805B436: + pop {r4, r5, pc} + .align 2, 0 +_0805B438: .4byte gUnk_08108C28 +_0805B43C: .4byte sub_0805B4B4 +_0805B440: .4byte gUnk_03000BF0 +_0805B444: .4byte gUnk_08108C54 + + thumb_func_start sub_0805B448 +sub_0805B448: @ 0x0805B448 + push {r4, lr} + ldr r4, _0805B46C @ =gUnk_03000F50 + ldr r3, _0805B470 @ =gUnk_03000BF0 + movs r2, #0xa + ldrsh r1, [r3, r2] + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #2 + strh r1, [r4, #0x2e] + movs r2, #0xc + ldrsh r1, [r3, r2] + ldrh r2, [r3, #8] + subs r1, r1, r2 + asrs r1, r1, #1 + ldr r0, [r0, #0x20] + adds r0, r0, r1 + strh r0, [r4, #0x30] + pop {r4, pc} + .align 2, 0 +_0805B46C: .4byte gUnk_03000F50 +_0805B470: .4byte gUnk_03000BF0 + + thumb_func_start sub_0805B474 +sub_0805B474: @ 0x0805B474 + push {r4, r5, lr} + ldr r5, _0805B4A8 @ =gUnk_03000BF0 + movs r0, #0xc + ldrsh r1, [r5, r0] + ldrh r4, [r5, #8] + subs r1, r1, r4 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #5 + ldrh r1, [r5, #0x20] + subs r1, #0xa0 + bl __divsi3 + ldr r2, _0805B4AC @ =gUnk_03000F50 + adds r4, r4, r0 + strh r4, [r2, #0x30] + ldrh r0, [r5, #0x1e] + ldr r1, _0805B4B0 @ =0xFFFFFF00 + adds r0, r0, r1 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + ldrh r1, [r5, #0xa] + subs r1, r1, r0 + strh r1, [r2, #0x2e] + pop {r4, r5, pc} + .align 2, 0 +_0805B4A8: .4byte gUnk_03000BF0 +_0805B4AC: .4byte gUnk_03000F50 +_0805B4B0: .4byte 0xFFFFFF00 + + thumb_func_start sub_0805B4B4 +sub_0805B4B4: @ 0x0805B4B4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + bl sub_0805B4D0 + ldrb r0, [r4, #0xa] + cmp r0, #2 + bne _0805B4C8 + bl sub_0806D0F8 +_0805B4C8: + adds r0, r4, #0 + bl sub_0805B3B4 + pop {r4, pc} + + thumb_func_start sub_0805B4D0 +sub_0805B4D0: @ 0x0805B4D0 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _0805B528 @ =gUnk_08108C5C + adds r0, r5, r0 + ldrb r0, [r0] + bl sub_0801D7EC + ldr r4, _0805B52C @ =gUnk_03000F50 + ldr r0, _0805B530 @ =0x00001E07 + strh r0, [r4, #0x2c] + ldrh r1, [r4] + movs r2, #0x80 + lsls r2, r2, #4 + adds r0, r2, #0 + orrs r0, r1 + strh r0, [r4] + ldr r2, _0805B534 @ =gUnk_03000BF0 + movs r1, #0xa + ldrsh r0, [r2, r1] + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #2 + strh r0, [r4, #0x2e] + movs r1, #0xc + ldrsh r0, [r2, r1] + ldrh r1, [r2, #8] + subs r0, r0, r1 + asrs r3, r0, #1 + ldrh r1, [r2, #0x20] + movs r0, #0x80 + lsls r0, r0, #1 + subs r2, r0, r1 + cmp r2, #0 + bge _0805B516 + movs r2, #0 +_0805B516: + ldr r0, _0805B538 @ =gUnk_08108C44 + lsls r1, r5, #1 + adds r1, r1, r0 + adds r0, r3, r2 + ldrh r1, [r1] + adds r0, r0, r1 + strh r0, [r4, #0x30] + pop {r4, r5, pc} + .align 2, 0 +_0805B528: .4byte gUnk_08108C5C +_0805B52C: .4byte gUnk_03000F50 +_0805B530: .4byte 0x00001E07 +_0805B534: .4byte gUnk_03000BF0 +_0805B538: .4byte gUnk_08108C44 + + thumb_func_start sub_0805B53C +sub_0805B53C: @ 0x0805B53C + push {lr} + ldr r2, _0805B550 @ =gUnk_08108C64 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805B550: .4byte gUnk_08108C64 + + thumb_func_start sub_0805B554 +sub_0805B554: @ 0x0805B554 + movs r1, #1 + strb r1, [r0, #0xc] + strb r1, [r0, #0xe] + bx lr + + thumb_func_start sub_0805B55C +sub_0805B55C: @ 0x0805B55C + push {r4, r5, lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805B5B4 + movs r0, #0xf + strb r0, [r1, #0xe] + movs r0, #0x19 + movs r1, #0 + bl sub_0804AA60 + adds r5, r0, #0 + cmp r5, #0 + beq _0805B5B4 + bl sub_08000E50 + ldr r4, _0805B5B8 @ =gUnk_03000BF0 + ldr r2, _0805B5BC @ =gUnk_08108C6C + movs r1, #7 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r0, [r1] + adds r0, #0x78 + ldrh r1, [r4, #0xa] + adds r0, r0, r1 + strh r0, [r5, #0x2e] + bl sub_08000E50 + ldr r2, _0805B5C0 @ =gUnk_08108C7C + movs r1, #3 + ands r1, r0 + adds r1, r1, r2 + movs r0, #0 + ldrsb r0, [r1, r0] + adds r0, #0x50 + ldrh r4, [r4, #0xc] + adds r0, r0, r4 + strh r0, [r5, #0x32] + ldr r0, _0805B5C4 @ =0x0000FF38 + strh r0, [r5, #0x36] +_0805B5B4: + pop {r4, r5, pc} + .align 2, 0 +_0805B5B8: .4byte gUnk_03000BF0 +_0805B5BC: .4byte gUnk_08108C6C +_0805B5C0: .4byte gUnk_08108C7C +_0805B5C4: .4byte 0x0000FF38 + + thumb_func_start sub_0805B5C8 +sub_0805B5C8: @ 0x0805B5C8 + push {lr} + ldr r2, _0805B5DC @ =gUnk_08108C80 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805B5DC: .4byte gUnk_08108C80 + + thumb_func_start sub_0805B5E0 +sub_0805B5E0: @ 0x0805B5E0 + push {r4, r5, lr} + movs r4, #0 + movs r1, #1 + strb r1, [r0, #0xc] + ldr r3, _0805B618 @ =gUnk_03000F50 + ldrh r2, [r3] + movs r5, #0x80 + lsls r5, r5, #4 + adds r1, r5, #0 + orrs r1, r2 + strh r1, [r3] + ldr r2, _0805B61C @ =gUnk_08108C88 + ldrb r1, [r0, #0xa] + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r1, [r1] + strh r1, [r3, #0x2c] + ldr r1, _0805B620 @ =gUnk_03000BF0 + str r4, [r1, #0x2c] + str r4, [r1, #0x28] + ldrb r0, [r0, #0xa] + cmp r0, #0 + beq _0805B612 + cmp r0, #1 + beq _0805B624 +_0805B612: + strh r4, [r3, #0x30] + strh r4, [r3, #0x2e] + b _0805B634 + .align 2, 0 +_0805B618: .4byte gUnk_03000F50 +_0805B61C: .4byte gUnk_08108C88 +_0805B620: .4byte gUnk_03000BF0 +_0805B624: + ldrh r0, [r1, #0x2a] + ldrh r2, [r1, #0xa] + adds r0, r0, r2 + strh r0, [r3, #0x2e] + ldrh r0, [r1, #0x2e] + ldrh r1, [r1, #0xc] + adds r0, r0, r1 + strh r0, [r3, #0x30] +_0805B634: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0805B638 +sub_0805B638: @ 0x0805B638 + push {lr} + ldrb r0, [r0, #0xa] + cmp r0, #1 + bne _0805B65E + ldr r1, _0805B660 @ =gUnk_03000BF0 + ldr r0, [r1, #0x28] + movs r2, #0x80 + lsls r2, r2, #6 + adds r0, r0, r2 + str r0, [r1, #0x28] + ldr r2, _0805B664 @ =gUnk_03000F50 + ldrh r0, [r1, #0x2a] + ldrh r3, [r1, #0xa] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + ldrh r0, [r1, #0x2e] + ldrh r1, [r1, #0xc] + adds r0, r0, r1 + strh r0, [r2, #0x30] +_0805B65E: + pop {pc} + .align 2, 0 +_0805B660: .4byte gUnk_03000BF0 +_0805B664: .4byte gUnk_03000F50 + + thumb_func_start sub_0805B668 +sub_0805B668: @ 0x0805B668 + push {lr} + ldr r2, _0805B67C @ =gUnk_08108C8C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805B67C: .4byte gUnk_08108C8C + + thumb_func_start sub_0805B680 +sub_0805B680: @ 0x0805B680 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrh r1, [r4, #0x34] + lsrs r1, r1, #1 + strh r1, [r4, #0x34] + ldrh r0, [r4, #0x38] + adds r0, r0, r1 + strh r0, [r4, #0x38] + ldrh r1, [r4, #0x36] + lsrs r1, r1, #1 + strh r1, [r4, #0x36] + ldrh r0, [r4, #0x3a] + adds r0, r0, r1 + strh r0, [r4, #0x3a] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0805B6B8 + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _0805B6B8 + adds r0, r4, #0 + bl sub_0805E900 + b _0805B6BE +_0805B6B8: + adds r0, r4, #0 + bl sub_0805B6C0 +_0805B6BE: + pop {r4, pc} + + thumb_func_start sub_0805B6C0 +sub_0805B6C0: @ 0x0805B6C0 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x38 + ldrsh r0, [r4, r1] + movs r2, #0x3a + ldrsh r1, [r4, r2] + ldrh r2, [r4, #0x34] + ldrh r3, [r4, #0x36] + bl sub_0800293E + cmp r0, #0 + beq _0805B6EC + ldrh r0, [r4, #0x3e] + bl sub_0807CCC8 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0805B6F2 + adds r0, r4, #0 + bl sub_0805E900 + b _0805B6F2 +_0805B6EC: + ldrh r0, [r4, #0x3e] + bl sub_0807CD48 +_0805B6F2: + pop {r4, pc} + + thumb_func_start sub_0805B6F4 +sub_0805B6F4: @ 0x0805B6F4 + push {lr} + ldr r2, _0805B708 @ =gUnk_08108C94 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805B708: .4byte gUnk_08108C94 + + thumb_func_start sub_0805B70C +sub_0805B70C: @ 0x0805B70C + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _0805B71E + movs r0, #1 + strb r0, [r4, #0xb] +_0805B71E: + movs r0, #1 + strb r0, [r4, #0xc] + ldrh r1, [r4, #0x38] + lsls r1, r1, #0x10 + asrs r1, r1, #0x14 + movs r2, #0x3f + ands r1, r2 + ldrh r0, [r4, #0x3a] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + ands r0, r2 + lsls r0, r0, #6 + orrs r1, r0 + strh r1, [r4, #0x38] + adds r0, r4, #0 + bl sub_0805B778 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805B744 +sub_0805B744: @ 0x0805B744 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + adds r1, r0, #0 + cmp r1, #0 + beq _0805B766 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _0805B774 + movs r0, #1 + strb r0, [r4, #0xb] + adds r0, r4, #0 + bl sub_0805B778 + b _0805B774 +_0805B766: + ldrb r0, [r4, #0xb] + cmp r0, #1 + bne _0805B774 + strb r1, [r4, #0xb] + adds r0, r4, #0 + bl sub_0805B778 +_0805B774: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805B778 +sub_0805B778: @ 0x0805B778 + push {lr} + ldr r2, _0805B79C @ =gUnk_08108C9C + ldrb r1, [r0, #0xa] + lsls r1, r1, #1 + ldrb r3, [r0, #0xb] + adds r1, r1, r3 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r3, [r1] + movs r2, #0x38 + ldrsh r1, [r0, r2] + adds r0, #0x36 + ldrb r2, [r0] + adds r0, r3, #0 + bl sub_0807B314 + pop {pc} + .align 2, 0 +_0805B79C: .4byte gUnk_08108C9C + + thumb_func_start sub_0805B7A0 +sub_0805B7A0: @ 0x0805B7A0 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xe] + ldrb r1, [r5, #0xa] + ldrb r2, [r5, #0xb] + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _0805B81A + ldrh r0, [r5, #0x3e] + adds r1, r4, #0 + adds r1, #0x86 + strh r0, [r1] + ldrh r0, [r5, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _0805B7EC + adds r0, r5, #0 + adds r0, #0x36 + ldrb r1, [r0] + adds r0, #1 + ldrb r2, [r0] + movs r0, #0xf + ands r0, r2 + lsls r0, r0, #8 + orrs r1, r0 + strh r1, [r4, #0x2e] + ldrh r1, [r5, #0x3c] + ldr r0, _0805B7E8 @ =0x00000FFF + ands r0, r1 + strh r0, [r4, #0x32] + ldrh r0, [r5, #0x3c] + lsrs r0, r0, #0xc + b _0805B7FC + .align 2, 0 +_0805B7E8: .4byte 0x00000FFF +_0805B7EC: + ldrh r0, [r5, #0x38] + strh r0, [r4, #0x2e] + ldrh r0, [r5, #0x3a] + strh r0, [r4, #0x32] + adds r0, r5, #0 + adds r0, #0x37 + ldrb r0, [r0] + lsrs r0, r0, #4 +_0805B7FC: + adds r1, r4, #0 + adds r1, #0x38 + strb r0, [r1] + ldr r0, _0805B81C @ =gUnk_03000BF0 + ldrh r1, [r0, #6] + ldrh r2, [r4, #0x2e] + adds r1, r1, r2 + strh r1, [r4, #0x2e] + ldrh r0, [r0, #8] + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + adds r0, r5, #0 + bl sub_0805E900 +_0805B81A: + pop {r4, r5, pc} + .align 2, 0 +_0805B81C: .4byte gUnk_03000BF0 + + thumb_func_start sub_0805B820 +sub_0805B820: @ 0x0805B820 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + ldrb r1, [r5, #0xc] + cmp r1, #0 + bne _0805B834 + movs r0, #1 + strb r0, [r5, #0xc] + str r1, [r5, #0x20] +_0805B834: + ldrb r0, [r5, #0xa] + bl sub_0804B128 + adds r4, r0, #0 + movs r7, #0 + ldrh r0, [r4] + cmp r0, #0 + beq _0805B8C4 + ldr r0, _0805B8A8 @ =gUnk_03000BF0 + mov r8, r0 +_0805B848: + ldrh r0, [r4] + ldrh r1, [r4, #2] + movs r2, #4 + movs r3, #4 + bl sub_0800290E + cmp r0, #0 + beq _0805B8AC + movs r6, #1 + lsls r6, r7 + ldr r0, [r5, #0x20] + ands r0, r6 + cmp r0, #0 + bne _0805B8B6 + ldrh r0, [r4, #4] + bl sub_0805B8CC + cmp r0, #0 + beq _0805B8B6 + movs r0, #0x4e + movs r1, #1 + movs r2, #0 + bl sub_080A2960 + adds r1, r0, #0 + cmp r1, #0 + beq _0805B8B6 + ldrh r0, [r4, #6] + strb r0, [r1, #0xe] + strb r7, [r1, #0xf] + ldrh r0, [r4] + mov r2, r8 + ldrh r2, [r2, #6] + adds r0, r0, r2 + strh r0, [r1, #0x2e] + ldrh r0, [r4, #2] + mov r3, r8 + ldrh r3, [r3, #8] + adds r0, r0, r3 + strh r0, [r1, #0x32] + str r5, [r1, #0x50] + adds r0, r1, #0 + bl sub_08016A30 + ldr r0, [r5, #0x20] + orrs r0, r6 + b _0805B8B4 + .align 2, 0 +_0805B8A8: .4byte gUnk_03000BF0 +_0805B8AC: + movs r1, #1 + lsls r1, r7 + ldr r0, [r5, #0x20] + bics r0, r1 +_0805B8B4: + str r0, [r5, #0x20] +_0805B8B6: + adds r4, #8 + adds r7, #1 + ldrh r0, [r4] + cmp r0, #0 + beq _0805B8C4 + cmp r7, #0x1f + bls _0805B848 +_0805B8C4: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0805B8CC +sub_0805B8CC: @ 0x0805B8CC + push {lr} + cmp r0, #4 + bne _0805B8DA + movs r0, #0x18 + bl sub_0807CC30 + b _0805B8E8 +_0805B8DA: + cmp r0, #4 + bls _0805B8E6 + cmp r0, #6 + bhi _0805B8E6 + movs r0, #0 + b _0805B8E8 +_0805B8E6: + movs r0, #1 +_0805B8E8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0805B8EC +sub_0805B8EC: @ 0x0805B8EC + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r4, _0805B964 @ =gUnk_02033A90 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0805B90A + bl sub_0801E104 + ldr r2, _0805B968 @ =gUnk_03000F50 + ldrh r1, [r2] + ldr r0, _0805B96C @ =0x0000D7FF + ands r0, r1 + strh r0, [r2] + bl sub_0805E780 +_0805B90A: + ldrb r2, [r5, #0xc] + cmp r2, #0 + bne _0805B934 + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x10] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r5, #0x10] + movs r0, #0x11 + strb r0, [r5, #0xe] + str r2, [r5, #0x20] + adds r0, r5, #0 + movs r1, #6 + bl sub_0805E3A0 + bl sub_0801E120 + ldrb r0, [r5, #0xe] + bl sub_0801E154 +_0805B934: + ldr r0, _0805B970 @ =gUnk_03001000 + ldrb r0, [r0, #4] + cmp r0, #2 + bne _0805B952 + ldr r2, _0805B968 @ =gUnk_03000F50 + ldrh r1, [r2] + movs r3, #0x80 + lsls r3, r3, #4 + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2] + bl sub_0805BA78 + bl sub_0805BAD4 +_0805B952: + ldrb r0, [r4, #0xc] + cmp r0, #2 + bne _0805B978 + ldr r2, _0805B968 @ =gUnk_03000F50 + ldrh r1, [r2] + ldr r0, _0805B974 @ =0x0000DFFF + ands r0, r1 + strh r0, [r2] + b _0805BA6C + .align 2, 0 +_0805B964: .4byte gUnk_02033A90 +_0805B968: .4byte gUnk_03000F50 +_0805B96C: .4byte 0x0000D7FF +_0805B970: .4byte gUnk_03001000 +_0805B974: .4byte 0x0000DFFF +_0805B978: + ldr r3, _0805B9A8 @ =gUnk_03001160 + movs r4, #0x2e + ldrsh r0, [r3, r4] + ldr r2, _0805B9AC @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + subs r0, r0, r1 + movs r6, #0x32 + ldrsh r1, [r3, r6] + ldrh r2, [r2, #8] + subs r1, r1, r2 + movs r2, #0 + movs r3, #0 + bl sub_0800290E + cmp r0, #0 + beq _0805B9B4 + ldr r2, _0805B9B0 @ =gUnk_03000F50 + ldrh r1, [r2] + movs r3, #0x80 + lsls r3, r3, #6 + adds r0, r3, #0 + orrs r0, r1 + b _0805B9BC + .align 2, 0 +_0805B9A8: .4byte gUnk_03001160 +_0805B9AC: .4byte gUnk_03000BF0 +_0805B9B0: .4byte gUnk_03000F50 +_0805B9B4: + ldr r2, _0805B9E8 @ =gUnk_03000F50 + ldrh r1, [r2] + ldr r0, _0805B9EC @ =0x0000DFFF + ands r0, r1 +_0805B9BC: + strh r0, [r2] + ldrb r4, [r5, #0xe] + ldr r0, _0805B9F0 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0805BA2C + ldr r0, _0805B9F4 @ =gUnk_02033A90 + ldrb r0, [r0, #0xc] + cmp r0, #0 + beq _0805BA2C + cmp r4, #0x47 + bhi _0805B9F8 + adds r4, #4 + adds r0, r4, #0 + bl sub_0801E154 + movs r0, #0 + str r0, [r5, #0x20] + b _0805BA42 + .align 2, 0 +_0805B9E8: .4byte gUnk_03000F50 +_0805B9EC: .4byte 0x0000DFFF +_0805B9F0: .4byte gUnk_03003F80 +_0805B9F4: .4byte gUnk_02033A90 +_0805B9F8: + ldr r0, _0805BA24 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0805BA42 + ldrb r0, [r5, #0xf] + adds r0, #0x10 + strb r0, [r5, #0xf] + ldr r1, _0805BA28 @ =gUnk_080C9160 + ldrb r0, [r5, #0xf] + lsls r0, r0, #1 + adds r0, r0, r1 + movs r6, #0 + ldrsh r0, [r0, r6] + asrs r0, r0, #7 + str r0, [r5, #0x20] + adds r0, r4, r0 + bl sub_0801E154 + b _0805BA42 + .align 2, 0 +_0805BA24: .4byte gUnk_030010A0 +_0805BA28: .4byte gUnk_080C9160 +_0805BA2C: + movs r0, #0 + str r0, [r5, #0x20] + cmp r4, #0x11 + bls _0805BA42 + subs r4, #4 + cmp r4, #0x10 + bhi _0805BA3C + movs r4, #0x11 +_0805BA3C: + adds r0, r4, #0 + bl sub_0801E154 +_0805BA42: + strb r4, [r5, #0xe] + ldr r3, _0805BA70 @ =gUnk_03001160 + movs r1, #0x2e + ldrsh r0, [r3, r1] + ldr r2, _0805BA74 @ =gUnk_03000BF0 + movs r6, #0xa + ldrsh r1, [r2, r6] + subs r0, r0, r1 + movs r6, #0x32 + ldrsh r1, [r3, r6] + movs r6, #0xc + ldrsh r2, [r2, r6] + subs r1, r1, r2 + movs r6, #0x36 + ldrsh r2, [r3, r6] + subs r2, #9 + adds r1, r1, r2 + ldr r2, [r5, #0x20] + adds r2, r4, r2 + bl sub_0801E160 +_0805BA6C: + pop {r4, r5, r6, pc} + .align 2, 0 +_0805BA70: .4byte gUnk_03001160 +_0805BA74: .4byte gUnk_03000BF0 + + thumb_func_start sub_0805BA78 +sub_0805BA78: @ 0x0805BA78 + push {r4, lr} + ldr r1, _0805BAA8 @ =gUnk_02033A90 + movs r0, #0xa + ldrsh r3, [r1, r0] + ldr r0, _0805BAAC @ =gUnk_02034350 + movs r4, #0xc + ldrsh r2, [r0, r4] + cmp r2, #0 + bge _0805BA8C + movs r2, #0 +_0805BA8C: + movs r0, #0x80 + lsls r0, r0, #1 + cmp r2, r0 + ble _0805BA96 + adds r2, r0, #0 +_0805BA96: + cmp r3, r2 + beq _0805BACE + subs r0, r2, r3 + cmp r0, #0 + blt _0805BAB0 + cmp r0, #4 + bls _0805BAB6 + b _0805BABA + .align 2, 0 +_0805BAA8: .4byte gUnk_02033A90 +_0805BAAC: .4byte gUnk_02034350 +_0805BAB0: + subs r0, r3, r2 + cmp r0, #4 + bhi _0805BABA +_0805BAB6: + adds r3, r2, #0 + b _0805BAC8 +_0805BABA: + cmp r2, r3 + bge _0805BAC2 + subs r3, #4 + b _0805BAC8 +_0805BAC2: + cmp r2, r3 + ble _0805BAC8 + adds r3, #4 +_0805BAC8: + strh r3, [r1, #0xa] + movs r0, #1 + b _0805BAD0 +_0805BACE: + movs r0, #0 +_0805BAD0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805BAD4 +sub_0805BAD4: @ 0x0805BAD4 + push {lr} + ldr r3, _0805BAF4 @ =gUnk_02033A90 + ldrb r0, [r3, #0xc] + cmp r0, #0 + beq _0805BAF2 + ldr r1, _0805BAF8 @ =gUnk_03000F50 + ldr r2, _0805BAFC @ =gUnk_08108CA8 + ldrh r0, [r3, #0xa] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + adds r1, #0x68 + strh r0, [r1] +_0805BAF2: + pop {pc} + .align 2, 0 +_0805BAF4: .4byte gUnk_02033A90 +_0805BAF8: .4byte gUnk_03000F50 +_0805BAFC: .4byte gUnk_08108CA8 + + thumb_func_start sub_0805BB00 +sub_0805BB00: @ 0x0805BB00 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r0, _0805BB50 @ =gUnk_02033A90 + ldrb r0, [r0, #0xc] + cmp r0, #0 + bne _0805BB28 + bl sub_0805E8D4 + adds r1, r0, #0 + cmp r1, #0 + beq _0805BB28 + movs r0, #9 + strb r0, [r1, #8] + movs r0, #0x22 + strb r0, [r1, #9] + adds r0, r1, #0 + movs r1, #0 + bl sub_0805EA2C +_0805BB28: + ldr r1, _0805BB54 @ =0x0600F000 + movs r2, #0x80 + lsls r2, r2, #4 + movs r0, #0xf + bl sub_0801D5EC + ldr r0, _0805BB58 @ =gUnk_03000F50 + ldr r1, _0805BB5C @ =0x00001E0C + strh r1, [r0, #0x2c] + adds r0, #0x66 + ldr r1, _0805BB60 @ =0x00003E48 + strh r1, [r0] + ldr r0, _0805BB64 @ =gUnk_02034350 + strh r4, [r0, #0xc] + cmp r5, #0 + beq _0805BB68 + ldr r1, _0805BB50 @ =gUnk_02033A90 + movs r0, #1 + b _0805BB6C + .align 2, 0 +_0805BB50: .4byte gUnk_02033A90 +_0805BB54: .4byte 0x0600F000 +_0805BB58: .4byte gUnk_03000F50 +_0805BB5C: .4byte 0x00001E0C +_0805BB60: .4byte 0x00003E48 +_0805BB64: .4byte gUnk_02034350 +_0805BB68: + ldr r1, _0805BB70 @ =gUnk_02033A90 + movs r0, #2 +_0805BB6C: + strb r0, [r1, #0xc] + pop {r4, r5, pc} + .align 2, 0 +_0805BB70: .4byte gUnk_02033A90 + + thumb_func_start sub_0805BB74 +sub_0805BB74: @ 0x0805BB74 + push {lr} + adds r1, r0, #0 + ldr r2, _0805BBB0 @ =gUnk_02034350 + cmp r1, #0 + bge _0805BB82 + movs r0, #0xc + ldrsh r1, [r2, r0] +_0805BB82: + ldr r0, _0805BBB4 @ =gUnk_02033A90 + strh r1, [r0, #0xa] + strh r1, [r2, #0xc] + movs r0, #9 + movs r1, #0x22 + bl sub_0805EB9C + cmp r0, #0 + beq _0805BBAE + bl sub_0805B8EC + ldr r0, _0805BBB8 @ =gUnk_03000F50 + ldrh r1, [r0] + movs r3, #0x80 + lsls r3, r3, #4 + adds r2, r3, #0 + orrs r1, r2 + strh r1, [r0] + bl sub_0805BA78 + bl sub_0805BAD4 +_0805BBAE: + pop {pc} + .align 2, 0 +_0805BBB0: .4byte gUnk_02034350 +_0805BBB4: .4byte gUnk_02033A90 +_0805BBB8: .4byte gUnk_03000F50 + + thumb_func_start sub_0805BBBC +sub_0805BBBC: @ 0x0805BBBC + push {r4, lr} + movs r4, #0 + ldr r2, _0805BBF8 @ =gUnk_02033A90 + ldrb r0, [r2, #0xc] + cmp r0, #0 + beq _0805BBF2 + ldr r0, _0805BBFC @ =gUnk_02034350 + movs r3, #0xc + ldrsh r1, [r0, r3] + movs r3, #0xa + ldrsh r0, [r2, r3] + cmp r1, r0 + bge _0805BBF2 + ldr r2, _0805BC00 @ =gUnk_03000F50 + ldrh r1, [r2] + movs r3, #0x80 + lsls r3, r3, #4 + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2] + bl sub_0805BA78 + adds r4, r0, #0 + cmp r4, #0 + beq _0805BBF2 + bl sub_0805BAD4 +_0805BBF2: + adds r0, r4, #0 + pop {r4, pc} + .align 2, 0 +_0805BBF8: .4byte gUnk_02033A90 +_0805BBFC: .4byte gUnk_02034350 +_0805BC00: .4byte gUnk_03000F50 + + thumb_func_start sub_0805BC04 +sub_0805BC04: @ 0x0805BC04 + push {r4, lr} + movs r4, #0 + ldr r2, _0805BC40 @ =gUnk_02033A90 + ldrb r0, [r2, #0xc] + cmp r0, #0 + beq _0805BC3A + ldr r0, _0805BC44 @ =gUnk_02034350 + movs r3, #0xc + ldrsh r1, [r0, r3] + movs r3, #0xa + ldrsh r0, [r2, r3] + cmp r1, r0 + ble _0805BC3A + ldr r2, _0805BC48 @ =gUnk_03000F50 + ldrh r1, [r2] + movs r3, #0x80 + lsls r3, r3, #4 + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2] + bl sub_0805BA78 + adds r4, r0, #0 + cmp r4, #0 + beq _0805BC3A + bl sub_0805BAD4 +_0805BC3A: + adds r0, r4, #0 + pop {r4, pc} + .align 2, 0 +_0805BC40: .4byte gUnk_02033A90 +_0805BC44: .4byte gUnk_02034350 +_0805BC48: .4byte gUnk_03000F50 + + thumb_func_start sub_0805BC4C +sub_0805BC4C: @ 0x0805BC4C + push {lr} + ldr r1, _0805BC68 @ =gUnk_02033A90 + ldrb r0, [r1, #0xc] + cmp r0, #0 + beq _0805BC64 + movs r0, #0 + strb r0, [r1, #0xc] + ldr r2, _0805BC6C @ =gUnk_03000F50 + ldrh r1, [r2] + ldr r0, _0805BC70 @ =0x0000D7FF + ands r0, r1 + strh r0, [r2] +_0805BC64: + pop {pc} + .align 2, 0 +_0805BC68: .4byte gUnk_02033A90 +_0805BC6C: .4byte gUnk_03000F50 +_0805BC70: .4byte 0x0000D7FF + + thumb_func_start sub_0805BC74 +sub_0805BC74: @ 0x0805BC74 + push {lr} + ldr r2, _0805BC88 @ =gUnk_08108CCC + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805BC88: .4byte gUnk_08108CCC + + thumb_func_start sub_0805BC8C +sub_0805BC8C: @ 0x0805BC8C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0805BCAE + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xf] + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _0805BCAE + adds r0, r4, #0 + bl sub_0805BE94 +_0805BCAE: + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _0805BCD0 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805BCD0 + adds r0, r4, #0 + bl sub_0805BEC4 + adds r0, r4, #0 + bl sub_0805BE94 +_0805BCD0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805BCD4 +sub_0805BCD4: @ 0x0805BCD4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _0805BD0E + cmp r0, #1 + bgt _0805BCE8 + cmp r0, #0 + beq _0805BCEE + b _0805BD5A +_0805BCE8: + cmp r0, #2 + beq _0805BD38 + b _0805BD5A +_0805BCEE: + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xf] + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _0805BD5A + adds r0, r4, #0 + movs r1, #0x75 + bl sub_0805BE70 + movs r0, #2 + strb r0, [r4, #0xc] + b _0805BD5A +_0805BD0E: + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _0805BD5A + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805BD5A + movs r0, #0x1e + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_0805BEC4 + adds r0, r4, #0 + movs r1, #0x76 + bl sub_0805BE70 + b _0805BD5A +_0805BD38: + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + bne _0805BD5A + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805BD5A + movs r0, #0x1e + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #0x75 + bl sub_0805BE70 +_0805BD5A: + pop {r4, pc} + + thumb_func_start sub_0805BD5C +sub_0805BD5C: @ 0x0805BD5C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0805BD94 + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _0805BD76 + adds r0, r4, #0 + bl sub_0805BE94 +_0805BD76: + ldrh r1, [r4, #0x38] + lsls r1, r1, #0x10 + asrs r1, r1, #0x14 + movs r2, #0x3f + ands r1, r2 + ldrh r0, [r4, #0x3a] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + ands r0, r2 + lsls r0, r0, #6 + orrs r1, r0 + strh r1, [r4, #0x20] + movs r0, #1 + strb r0, [r4, #0xc] + b _0805BDB0 +_0805BD94: + ldrh r0, [r4, #0x20] + ldrb r1, [r4, #0xb] + bl sub_080002B0 + cmp r0, #0x76 + bne _0805BDB0 + ldrh r0, [r4, #0x3e] + bl sub_0807CCC8 + ldrb r0, [r4, #0xe] + bl sub_0805308C + bl sub_0805E780 +_0805BDB0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805BDB4 +sub_0805BDB4: @ 0x0805BDB4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + beq _0805BDF4 + cmp r0, #1 + beq _0805BE2C + ldrh r0, [r4, #0x22] + subs r0, #1 + strh r0, [r4, #0x22] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0805BE58 + movs r1, #0x38 + ldrsh r0, [r4, r1] + movs r2, #0x3a + ldrsh r1, [r4, r2] + ldrb r2, [r4, #0xb] + bl sub_080A29C8 + ldrh r0, [r4, #0x3e] + bl sub_0807CD48 + ldrh r0, [r4, #0x20] + ldrb r1, [r4, #0xb] + bl sub_0807BA8C + ldrb r0, [r4, #0xe] + rsbs r0, r0, #0 + bl sub_0805308C + b _0805BE26 +_0805BDF4: + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + bne _0805BE08 + ldrh r0, [r4, #0x3c] + bl sub_0807CBE4 + cmp r0, #0 + beq _0805BE0E +_0805BE08: + adds r0, r4, #0 + bl sub_0805BE94 +_0805BE0E: + ldrh r1, [r4, #0x38] + lsls r1, r1, #0x10 + asrs r1, r1, #0x14 + movs r2, #0x3f + ands r1, r2 + ldrh r0, [r4, #0x3a] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + ands r0, r2 + lsls r0, r0, #6 + orrs r1, r0 + strh r1, [r4, #0x20] +_0805BE26: + movs r0, #1 + strb r0, [r4, #0xc] + b _0805BE6C +_0805BE2C: + ldrh r0, [r4, #0x20] + ldrb r1, [r4, #0xb] + bl sub_080002B0 + cmp r0, #0x76 + bne _0805BE6C + ldrh r0, [r4, #0x3e] + bl sub_0807CCC8 + ldrb r0, [r4, #0xe] + bl sub_0805308C + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x36 + ldrb r1, [r0] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #2 + strh r0, [r4, #0x22] + b _0805BE6C +_0805BE58: + ldrh r0, [r4, #0x3c] + bl sub_0807CBE4 + cmp r0, #0 + beq _0805BE6C + adds r0, r4, #0 + bl sub_0805BEC4 + bl sub_0805E780 +_0805BE6C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805BE70 +sub_0805BE70: @ 0x0805BE70 + push {r4, lr} + adds r4, r1, #0 + ldrh r1, [r0, #0x38] + lsls r1, r1, #0x10 + asrs r1, r1, #0x14 + movs r3, #0x3f + ands r1, r3 + ldrh r2, [r0, #0x3a] + lsls r2, r2, #0x10 + asrs r2, r2, #0x14 + ands r2, r3 + lsls r2, r2, #6 + orrs r1, r2 + ldrb r2, [r0, #0xb] + adds r0, r4, #0 + bl sub_0807B314 + pop {r4, pc} + + thumb_func_start sub_0805BE94 +sub_0805BE94: @ 0x0805BE94 + push {r4, lr} + adds r4, r0, #0 + ldrh r1, [r4, #0x38] + lsls r1, r1, #0x10 + asrs r1, r1, #0x14 + movs r2, #0x3f + ands r1, r2 + ldrh r0, [r4, #0x3a] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + ands r0, r2 + lsls r0, r0, #6 + orrs r1, r0 + ldrb r2, [r4, #0xb] + movs r0, #0x76 + bl sub_0807B314 + ldrb r0, [r4, #0xe] + bl sub_0805308C + bl sub_0805E780 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805BEC4 +sub_0805BEC4: @ 0x0805BEC4 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x2a + movs r1, #1 + movs r2, #0 + bl sub_080A2960 + adds r2, r0, #0 + cmp r2, #0 + beq _0805BF10 + ldrb r1, [r2, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2, #0x11] + ldr r1, _0805BF14 @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + ldrh r3, [r4, #0x38] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + ldrh r0, [r1, #8] + ldrh r1, [r4, #0x3a] + adds r0, r0, r1 + strh r0, [r2, #0x32] + ldrb r1, [r4, #0xb] + adds r0, r2, #0 + adds r0, #0x38 + strb r1, [r0] + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r2] +_0805BF10: + pop {r4, pc} + .align 2, 0 +_0805BF14: .4byte gUnk_03000BF0 + + thumb_func_start sub_0805BF18 +sub_0805BF18: @ 0x0805BF18 + push {lr} + ldr r2, _0805BF2C @ =gUnk_08108CDC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805BF2C: .4byte gUnk_08108CDC + + thumb_func_start sub_0805BF30 +sub_0805BF30: @ 0x0805BF30 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrh r1, [r4, #0x38] + lsls r1, r1, #0x10 + asrs r1, r1, #0x14 + movs r2, #0x3f + ands r1, r2 + ldrh r0, [r4, #0x3a] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + ands r0, r2 + lsls r0, r0, #6 + orrs r1, r0 + strh r1, [r4, #0x3c] + ldrh r0, [r4, #0x3c] + adds r1, r4, #0 + adds r1, #0x35 + ldrb r1, [r1] + bl sub_0805BFC4 + strb r0, [r4, #0xa] + ldrh r0, [r4, #0x3e] + bl sub_0807CBD0 + cmp r0, #0 + beq _0805BF74 + adds r0, r4, #0 + bl sub_0805C02C + adds r0, r4, #0 + bl sub_0805E900 +_0805BF74: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805BF78 +sub_0805BF78: @ 0x0805BF78 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x3c] + adds r1, r4, #0 + adds r1, #0x35 + ldrb r1, [r1] + bl sub_080002C8 + cmp r0, #0x2e + beq _0805BFA0 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x5a + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_0805C02C + ldrh r0, [r4, #0x3e] + bl sub_0807CCB4 +_0805BFA0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805BFA4 +sub_0805BFA4: @ 0x0805BFA4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805BFC0 + movs r0, #0x72 + bl sub_080A3268 + adds r0, r4, #0 + bl sub_0805E900 +_0805BFC0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805BFC4 +sub_0805BFC4: @ 0x0805BFC4 + push {lr} + bl sub_080002B0 + adds r1, r0, #0 + cmp r1, #0xec + beq _0805C018 + cmp r1, #0xec + bhi _0805BFEC + cmp r1, #0xbf + beq _0805C024 + cmp r1, #0xbf + bhi _0805BFE2 + cmp r1, #0xaf + beq _0805C014 + b _0805C028 +_0805BFE2: + cmp r1, #0xcc + beq _0805C01C + cmp r1, #0xdf + beq _0805C020 + b _0805C028 +_0805BFEC: + movs r0, #0x84 + lsls r0, r0, #1 + cmp r1, r0 + beq _0805C01C + cmp r1, r0 + bhi _0805C004 + cmp r1, #0xff + beq _0805C014 + subs r0, #3 + cmp r1, r0 + beq _0805C024 + b _0805C028 +_0805C004: + movs r0, #0x88 + lsls r0, r0, #1 + cmp r1, r0 + beq _0805C020 + adds r0, #5 + cmp r1, r0 + beq _0805C018 + b _0805C028 +_0805C014: + movs r0, #0 + b _0805C02A +_0805C018: + movs r0, #1 + b _0805C02A +_0805C01C: + movs r0, #2 + b _0805C02A +_0805C020: + movs r0, #3 + b _0805C02A +_0805C024: + movs r0, #4 + b _0805C02A +_0805C028: + movs r0, #0xff +_0805C02A: + pop {pc} + + thumb_func_start sub_0805C02C +sub_0805C02C: @ 0x0805C02C + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xa] + cmp r0, #0xff + beq _0805C04A + ldr r0, _0805C04C @ =gUnk_08108CE8 + ldrb r2, [r1, #0xa] + lsls r2, r2, #2 + adds r2, r2, r0 + ldrh r0, [r1, #0x3c] + adds r1, #0x35 + ldrb r1, [r1] + ldr r2, [r2] + bl _call_via_r2 +_0805C04A: + pop {pc} + .align 2, 0 +_0805C04C: .4byte gUnk_08108CE8 + + thumb_func_start sub_0805C050 +sub_0805C050: @ 0x0805C050 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r1, r5, #0 + subs r1, #0x41 + movs r0, #0xb1 + adds r2, r4, #0 + bl sub_0807B314 + adds r1, r5, #0 + subs r1, #0x40 + movs r0, #0xb2 + adds r2, r4, #0 + bl sub_0807B314 + adds r1, r5, #0 + subs r1, #0x3f + movs r0, #0xb3 + adds r2, r4, #0 + bl sub_0807B314 + subs r1, r5, #1 + movs r0, #0xb4 + adds r2, r4, #0 + bl sub_0807B314 + adds r1, r5, #1 + movs r0, #0xb7 + adds r2, r4, #0 + bl sub_0807B314 + cmp r4, #1 + bne _0805C11C + bl sub_08052670 + cmp r0, #0 + beq _0805C0D8 + movs r0, #0x4f + movs r1, #0xe + movs r2, #0 + bl sub_080A2960 + adds r3, r0, #0 + cmp r3, #0 + beq _0805C0E0 + movs r1, #0x3f + adds r0, r5, #0 + ands r0, r1 + lsls r0, r0, #4 + adds r0, #8 + ldr r2, _0805C0D0 @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + adds r1, r1, r0 + strh r1, [r3, #0x2e] + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r5 + lsrs r0, r0, #2 + ldr r1, _0805C0D4 @ =0x0000FFF8 + adds r0, r0, r1 + ldrh r2, [r2, #8] + adds r0, r0, r2 + strh r0, [r3, #0x32] + b _0805C0E0 + .align 2, 0 +_0805C0D0: .4byte gUnk_03000BF0 +_0805C0D4: .4byte 0x0000FFF8 +_0805C0D8: + bl sub_08052660 + cmp r0, #0 + beq _0805C0EC +_0805C0E0: + movs r0, #0xb5 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 + b _0805C0F6 +_0805C0EC: + movs r0, #0xb6 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 +_0805C0F6: + adds r1, r5, #0 + subs r1, #0x41 + movs r0, #0xb8 + movs r2, #2 + bl sub_0807B314 + adds r1, r5, #0 + subs r1, #0x40 + movs r0, #0xb9 + movs r2, #2 + bl sub_0807B314 + adds r1, r5, #0 + subs r1, #0x3f + movs r0, #0xba + movs r2, #2 + bl sub_0807B314 + b _0805C16E +_0805C11C: + movs r0, #0xb5 + adds r1, r5, #0 + movs r2, #2 + bl sub_0807B314 + bl sub_08052660 + cmp r0, #0 + beq _0805C16E + bl sub_0805C608 + adds r1, r0, #0 + movs r0, #0x4f + movs r2, #6 + bl sub_080A2960 + adds r3, r0, #0 + cmp r3, #0 + beq _0805C16E + movs r1, #0x3f + adds r0, r5, #0 + ands r0, r1 + lsls r0, r0, #4 + adds r0, #8 + ldr r2, _0805C170 @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + adds r1, r1, r0 + strh r1, [r3, #0x2e] + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r5 + lsrs r0, r0, #2 + ldr r1, _0805C174 @ =0x0000FFF0 + adds r0, r0, r1 + ldrh r2, [r2, #8] + adds r0, r0, r2 + strh r0, [r3, #0x32] + adds r1, r3, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] +_0805C16E: + pop {r4, r5, pc} + .align 2, 0 +_0805C170: .4byte gUnk_03000BF0 +_0805C174: .4byte 0x0000FFF0 + + thumb_func_start sub_0805C178 +sub_0805C178: @ 0x0805C178 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r1, r5, #0 + subs r1, #0x40 + movs r0, #0xf1 + adds r2, r4, #0 + bl sub_0807B314 + adds r1, r5, #0 + subs r1, #0x3f + movs r0, #0xf5 + adds r2, r4, #0 + bl sub_0807B314 + adds r1, r5, #1 + movs r0, #0xf6 + adds r2, r4, #0 + bl sub_0807B314 + adds r1, r5, #0 + adds r1, #0x40 + movs r0, #0xf4 + adds r2, r4, #0 + bl sub_0807B314 + adds r1, r5, #0 + adds r1, #0x41 + movs r0, #0xf7 + adds r2, r4, #0 + bl sub_0807B314 + cmp r4, #1 + bne _0805C23E + bl sub_08052670 + cmp r0, #0 + beq _0805C1FC + movs r0, #0x4f + movs r1, #0xe + movs r2, #1 + bl sub_080A2960 + adds r2, r0, #0 + cmp r2, #0 + beq _0805C204 + movs r1, #0x3f + adds r0, r5, #0 + ands r0, r1 + lsls r0, r0, #4 + ldr r1, _0805C1F8 @ =gUnk_03000BF0 + adds r0, #0x18 + ldrh r3, [r1, #6] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r5 + lsrs r0, r0, #2 + adds r0, #8 + ldrh r1, [r1, #8] + adds r1, r1, r0 + strh r1, [r2, #0x32] + b _0805C204 + .align 2, 0 +_0805C1F8: .4byte gUnk_03000BF0 +_0805C1FC: + bl sub_08052660 + cmp r0, #0 + beq _0805C210 +_0805C204: + movs r0, #0xf2 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 + b _0805C21A +_0805C210: + movs r0, #0xf3 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 +_0805C21A: + adds r1, r5, #0 + subs r1, #0x3f + movs r0, #0xf8 + movs r2, #2 + bl sub_0807B314 + adds r1, r5, #1 + movs r0, #0xf9 + movs r2, #2 + bl sub_0807B314 + adds r1, r5, #0 + adds r1, #0x41 + movs r0, #0xfa + movs r2, #2 + bl sub_0807B314 + b _0805C28E +_0805C23E: + movs r0, #0xf2 + adds r1, r5, #0 + movs r2, #2 + bl sub_0807B314 + bl sub_08052660 + cmp r0, #0 + beq _0805C28E + bl sub_0805C608 + adds r1, r0, #0 + movs r0, #0x4f + movs r2, #7 + bl sub_080A2960 + adds r2, r0, #0 + cmp r2, #0 + beq _0805C28E + movs r1, #0x3f + adds r0, r5, #0 + ands r0, r1 + lsls r0, r0, #4 + ldr r1, _0805C290 @ =gUnk_03000BF0 + adds r0, #0x20 + ldrh r3, [r1, #6] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r5 + lsrs r0, r0, #2 + adds r0, #8 + ldrh r1, [r1, #8] + adds r1, r1, r0 + strh r1, [r2, #0x32] + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] +_0805C28E: + pop {r4, r5, pc} + .align 2, 0 +_0805C290: .4byte gUnk_03000BF0 + + thumb_func_start sub_0805C294 +sub_0805C294: @ 0x0805C294 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + subs r1, r5, #1 + movs r0, #0xd1 + adds r2, r4, #0 + bl sub_0807B314 + adds r1, r5, #1 + movs r0, #0xd4 + adds r2, r4, #0 + bl sub_0807B314 + adds r1, r5, #0 + adds r1, #0x3f + movs r0, #0xd5 + adds r2, r4, #0 + bl sub_0807B314 + adds r1, r5, #0 + adds r1, #0x40 + movs r0, #0xd6 + adds r2, r4, #0 + bl sub_0807B314 + adds r1, r5, #0 + adds r1, #0x41 + movs r0, #0xd7 + adds r2, r4, #0 + bl sub_0807B314 + cmp r4, #1 + bne _0805C35C + bl sub_08052670 + cmp r0, #0 + beq _0805C318 + movs r0, #0x4f + movs r1, #0xe + movs r2, #2 + bl sub_080A2960 + adds r3, r0, #0 + cmp r3, #0 + beq _0805C320 + movs r1, #0x3f + adds r0, r5, #0 + ands r0, r1 + lsls r0, r0, #4 + adds r0, #8 + ldr r2, _0805C314 @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + adds r1, r1, r0 + strh r1, [r3, #0x2e] + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r5 + lsrs r0, r0, #2 + adds r0, #0x20 + ldrh r2, [r2, #8] + adds r0, r0, r2 + strh r0, [r3, #0x32] + b _0805C320 + .align 2, 0 +_0805C314: .4byte gUnk_03000BF0 +_0805C318: + bl sub_08052660 + cmp r0, #0 + beq _0805C32C +_0805C320: + movs r0, #0xd2 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 + b _0805C336 +_0805C32C: + movs r0, #0xd3 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 +_0805C336: + adds r1, r5, #0 + adds r1, #0x3f + movs r0, #0xd8 + movs r2, #2 + bl sub_0807B314 + adds r1, r5, #0 + adds r1, #0x40 + movs r0, #0xd9 + movs r2, #2 + bl sub_0807B314 + adds r1, r5, #0 + adds r1, #0x41 + movs r0, #0xda + movs r2, #2 + bl sub_0807B314 + b _0805C3AC +_0805C35C: + movs r0, #0xd2 + adds r1, r5, #0 + movs r2, #2 + bl sub_0807B314 + bl sub_08052660 + cmp r0, #0 + beq _0805C3AC + bl sub_0805C608 + adds r1, r0, #0 + movs r0, #0x4f + movs r2, #8 + bl sub_080A2960 + adds r3, r0, #0 + cmp r3, #0 + beq _0805C3AC + movs r1, #0x3f + adds r0, r5, #0 + ands r0, r1 + lsls r0, r0, #4 + adds r0, #8 + ldr r2, _0805C3B0 @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + adds r1, r1, r0 + strh r1, [r3, #0x2e] + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r5 + lsrs r0, r0, #2 + adds r0, #0x20 + ldrh r2, [r2, #8] + adds r0, r0, r2 + strh r0, [r3, #0x32] + adds r1, r3, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] +_0805C3AC: + pop {r4, r5, pc} + .align 2, 0 +_0805C3B0: .4byte gUnk_03000BF0 + + thumb_func_start sub_0805C3B4 +sub_0805C3B4: @ 0x0805C3B4 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r1, r5, #0 + subs r1, #0x41 + movs r0, #0xe1 + adds r2, r4, #0 + bl sub_0807B314 + adds r1, r5, #0 + subs r1, #0x40 + movs r0, #0xe4 + adds r2, r4, #0 + bl sub_0807B314 + subs r1, r5, #1 + movs r0, #0xe2 + adds r2, r4, #0 + bl sub_0807B314 + adds r1, r5, #0 + adds r1, #0x3f + movs r0, #0xe3 + adds r2, r4, #0 + bl sub_0807B314 + adds r1, r5, #0 + adds r1, #0x40 + movs r0, #0xe7 + adds r2, r4, #0 + bl sub_0807B314 + cmp r4, #1 + bne _0805C482 + bl sub_08052670 + cmp r0, #0 + beq _0805C440 + movs r0, #0x4f + movs r1, #0xe + movs r2, #3 + bl sub_080A2960 + adds r2, r0, #0 + cmp r2, #0 + beq _0805C448 + movs r1, #0x3f + adds r0, r5, #0 + ands r0, r1 + lsls r0, r0, #4 + ldr r1, _0805C438 @ =gUnk_03000BF0 + ldr r3, _0805C43C @ =0x0000FFF0 + adds r0, r0, r3 + ldrh r3, [r1, #6] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r5 + lsrs r0, r0, #2 + adds r0, #8 + ldrh r1, [r1, #8] + adds r1, r1, r0 + strh r1, [r2, #0x32] + b _0805C448 + .align 2, 0 +_0805C438: .4byte gUnk_03000BF0 +_0805C43C: .4byte 0x0000FFF0 +_0805C440: + bl sub_08052660 + cmp r0, #0 + beq _0805C454 +_0805C448: + movs r0, #0xe5 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 + b _0805C45E +_0805C454: + movs r0, #0xe6 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 +_0805C45E: + adds r1, r5, #0 + subs r1, #0x41 + movs r0, #0xe8 + movs r2, #2 + bl sub_0807B314 + subs r1, r5, #1 + movs r0, #0xe9 + movs r2, #2 + bl sub_0807B314 + adds r1, r5, #0 + adds r1, #0x3f + movs r0, #0xea + movs r2, #2 + bl sub_0807B314 + b _0805C4D4 +_0805C482: + movs r0, #0xe5 + adds r1, r5, #0 + movs r2, #2 + bl sub_0807B314 + bl sub_08052660 + cmp r0, #0 + beq _0805C4D4 + bl sub_0805C608 + adds r1, r0, #0 + movs r0, #0x4f + movs r2, #9 + bl sub_080A2960 + adds r2, r0, #0 + cmp r2, #0 + beq _0805C4D4 + movs r1, #0x3f + adds r0, r5, #0 + ands r0, r1 + lsls r0, r0, #4 + ldr r1, _0805C4D8 @ =gUnk_03000BF0 + ldr r3, _0805C4DC @ =0x0000FFF0 + adds r0, r0, r3 + ldrh r3, [r1, #6] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r5 + lsrs r0, r0, #2 + adds r0, #8 + ldrh r1, [r1, #8] + adds r1, r1, r0 + strh r1, [r2, #0x32] + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] +_0805C4D4: + pop {r4, r5, pc} + .align 2, 0 +_0805C4D8: .4byte gUnk_03000BF0 +_0805C4DC: .4byte 0x0000FFF0 + + thumb_func_start sub_0805C4E0 +sub_0805C4E0: @ 0x0805C4E0 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r1, r5, #0 + subs r1, #0x41 + movs r0, #0xc1 + adds r2, r4, #0 + bl sub_0807B314 + adds r1, r5, #0 + subs r1, #0x40 + movs r0, #0xc2 + adds r2, r4, #0 + bl sub_0807B314 + adds r1, r5, #0 + subs r1, #0x3f + movs r0, #0xc3 + adds r2, r4, #0 + bl sub_0807B314 + subs r1, r5, #1 + movs r0, #0xc4 + adds r2, r4, #0 + bl sub_0807B314 + adds r1, r5, #1 + movs r0, #0xc7 + adds r2, r4, #0 + bl sub_0807B314 + cmp r4, #1 + bne _0805C5AC + bl sub_08052670 + cmp r0, #0 + beq _0805C568 + movs r0, #0x4f + movs r1, #0xe + movs r2, #0 + bl sub_080A2960 + adds r3, r0, #0 + cmp r3, #0 + beq _0805C570 + movs r1, #0x3f + adds r0, r5, #0 + ands r0, r1 + lsls r0, r0, #4 + adds r0, #8 + ldr r2, _0805C560 @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + adds r1, r1, r0 + strh r1, [r3, #0x2e] + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r5 + lsrs r0, r0, #2 + ldr r1, _0805C564 @ =0x0000FFF0 + adds r0, r0, r1 + ldrh r2, [r2, #8] + adds r0, r0, r2 + strh r0, [r3, #0x32] + b _0805C570 + .align 2, 0 +_0805C560: .4byte gUnk_03000BF0 +_0805C564: .4byte 0x0000FFF0 +_0805C568: + bl sub_08052660 + cmp r0, #0 + beq _0805C57C +_0805C570: + movs r0, #0xc5 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 + b _0805C586 +_0805C57C: + movs r0, #0xc6 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 +_0805C586: + adds r1, r5, #0 + subs r1, #0x41 + movs r0, #0xc8 + movs r2, #2 + bl sub_0807B314 + adds r1, r5, #0 + subs r1, #0x40 + movs r0, #0xc9 + movs r2, #2 + bl sub_0807B314 + adds r1, r5, #0 + subs r1, #0x3f + movs r0, #0xca + movs r2, #2 + bl sub_0807B314 + b _0805C5FE +_0805C5AC: + movs r0, #0xc5 + adds r1, r5, #0 + movs r2, #2 + bl sub_0807B314 + bl sub_08052660 + cmp r0, #0 + beq _0805C5FE + bl sub_0805C608 + adds r1, r0, #0 + movs r0, #0x4f + movs r2, #6 + bl sub_080A2960 + adds r3, r0, #0 + cmp r3, #0 + beq _0805C5FE + movs r1, #0x3f + adds r0, r5, #0 + ands r0, r1 + lsls r0, r0, #4 + adds r0, #8 + ldr r2, _0805C600 @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + adds r1, r1, r0 + strh r1, [r3, #0x2e] + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r5 + lsrs r0, r0, #2 + ldr r1, _0805C604 @ =0x0000FFF0 + adds r0, r0, r1 + ldrh r2, [r2, #8] + adds r0, r0, r2 + strh r0, [r3, #0x32] + adds r1, r3, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] +_0805C5FE: + pop {r4, r5, pc} + .align 2, 0 +_0805C600: .4byte gUnk_03000BF0 +_0805C604: .4byte 0x0000FFF0 + + thumb_func_start sub_0805C608 +sub_0805C608: @ 0x0805C608 + ldr r1, _0805C614 @ =gUnk_08108CFC + ldr r0, _0805C618 @ =gUnk_02033A90 + ldrb r0, [r0, #3] + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_0805C614: .4byte gUnk_08108CFC +_0805C618: .4byte gUnk_02033A90 + + thumb_func_start sub_0805C61C +sub_0805C61C: @ 0x0805C61C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0805C674 + movs r0, #0x38 + ldrsh r1, [r4, r0] + ldr r2, _0805C668 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x3a + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + strh r1, [r4, #0x38] + movs r1, #0x38 + ldrsh r0, [r4, r1] + movs r1, #2 + bl sub_080002B0 + cmp r0, #0x75 + bne _0805C670 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _0805C66C @ =0x0000406A + movs r2, #0x38 + ldrsh r1, [r4, r2] + movs r2, #1 + bl sub_0800015E + b _0805C674 + .align 2, 0 +_0805C668: .4byte gUnk_03000BF0 +_0805C66C: .4byte 0x0000406A +_0805C670: + bl sub_0805E780 +_0805C674: + movs r5, #0x38 + ldrsh r0, [r4, r5] + movs r1, #1 + bl sub_080002B0 + ldr r5, _0805C6B4 @ =0x0000406B + cmp r0, r5 + bne _0805C694 + movs r0, #0x38 + ldrsh r1, [r4, r0] + movs r0, #0x76 + movs r2, #2 + bl sub_0807B7D8 + bl sub_0805E780 +_0805C694: + movs r1, #0x38 + ldrsh r0, [r4, r1] + movs r1, #2 + bl sub_080002B0 + cmp r0, #0x76 + bne _0805C6B2 + movs r2, #0x38 + ldrsh r1, [r4, r2] + adds r0, r5, #0 + movs r2, #1 + bl sub_0800015E + bl sub_0805E780 +_0805C6B2: + pop {r4, r5, pc} + .align 2, 0 +_0805C6B4: .4byte 0x0000406B + + thumb_func_start sub_0805C6B8 +sub_0805C6B8: @ 0x0805C6B8 + push {lr} + ldr r2, _0805C6CC @ =gUnk_08108D04 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805C6CC: .4byte gUnk_08108D04 + + thumb_func_start sub_0805C6D0 +sub_0805C6D0: @ 0x0805C6D0 + push {r4, r5, r6, r7, lr} + sub sp, #4 + adds r5, r0, #0 + ldrb r0, [r5, #0xa] + bl sub_0804B128 + adds r4, r0, #0 + cmp r4, #0 + bne _0805C6EA + adds r0, r5, #0 + bl sub_0805E900 + b _0805C79A +_0805C6EA: + ldr r3, _0805C784 @ =gUnk_03000BF0 + ldrh r0, [r3, #8] + ldrb r1, [r5, #0xe] + adds r0, r0, r1 + movs r1, #0 + strh r0, [r5, #0x2a] + strb r1, [r5, #0xe] + adds r0, r5, #0 + adds r0, #0x28 + strb r1, [r0] + adds r2, r5, #0 + adds r2, #0x29 + strb r1, [r2] + ldrb r0, [r4] + cmp r0, #0xff + beq _0805C778 + ldrb r0, [r5, #0xe] + cmp r0, #0x1f + bhi _0805C778 + adds r7, r3, #0 + movs r3, #1 + adds r6, r2, #0 +_0805C716: + ldrb r1, [r4, #1] + ldrb r2, [r4, #2] + movs r0, #0x4c + str r3, [sp] + bl sub_080A2960 + adds r2, r0, #0 + ldr r3, [sp] + cmp r2, #0 + beq _0805C762 + ldrb r0, [r4, #3] + strb r0, [r2, #0xe] + ldrh r0, [r4, #4] + ldrh r1, [r7, #6] + adds r0, r0, r1 + strh r0, [r2, #0x2e] + ldrh r0, [r4, #6] + ldrh r1, [r7, #8] + adds r0, r0, r1 + strh r0, [r2, #0x32] + str r5, [r2, #0x50] + adds r0, r2, #0 + adds r0, #0x38 + strb r3, [r0] + ldrb r0, [r5, #0xe] + adds r1, r2, #0 + adds r1, #0x83 + strb r0, [r1] + ldrb r1, [r4] + adds r0, r2, #0 + adds r0, #0x82 + strb r1, [r0] + adds r0, r3, #0 + ldrb r1, [r5, #0xe] + lsls r0, r1 + ldrb r1, [r6] + orrs r0, r1 + strb r0, [r6] +_0805C762: + adds r4, #8 + ldrb r0, [r5, #0xe] + adds r1, r0, #1 + strb r1, [r5, #0xe] + ldrb r0, [r4] + cmp r0, #0xff + beq _0805C778 + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1f + bls _0805C716 +_0805C778: + ldrb r0, [r5, #0xb] + cmp r0, #0xff + bne _0805C788 + movs r0, #2 + b _0805C798 + .align 2, 0 +_0805C784: .4byte gUnk_03000BF0 +_0805C788: + ldrb r0, [r5, #0xb] + bl sub_0807CBD0 + cmp r0, #0 + beq _0805C796 + movs r0, #2 + b _0805C798 +_0805C796: + movs r0, #1 +_0805C798: + strb r0, [r5, #0xc] +_0805C79A: + add sp, #4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0805C7A0 +sub_0805C7A0: @ 0x0805C7A0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x28 + adds r1, r4, #0 + adds r1, #0x29 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bne _0805C7BC + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xb] + bl sub_0807CCB4 +_0805C7BC: + adds r0, r4, #0 + bl sub_0805C7CC + pop {r4, pc} + + thumb_func_start sub_0805C7C4 +sub_0805C7C4: @ 0x0805C7C4 + push {lr} + bl sub_0805C7CC + pop {pc} + + thumb_func_start sub_0805C7CC +sub_0805C7CC: @ 0x0805C7CC + push {lr} + adds r2, r0, #0 + ldr r0, _0805C7F0 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0805C7FC + ldr r0, _0805C7F4 @ =gUnk_03001160 + movs r3, #0x32 + ldrsh r1, [r0, r3] + ldrh r0, [r2, #0x2a] + adds r0, #0x10 + cmp r1, r0 + bge _0805C7F8 + movs r0, #1 + b _0805C816 + .align 2, 0 +_0805C7F0: .4byte gUnk_03003F80 +_0805C7F4: .4byte gUnk_03001160 +_0805C7F8: + movs r0, #0 + b _0805C816 +_0805C7FC: + ldr r0, _0805C810 @ =gUnk_03001160 + movs r3, #0x32 + ldrsh r1, [r0, r3] + ldrh r0, [r2, #0x2a] + adds r0, #0x28 + cmp r1, r0 + bge _0805C814 + movs r0, #3 + b _0805C816 + .align 2, 0 +_0805C810: .4byte gUnk_03001160 +_0805C814: + movs r0, #2 +_0805C816: + strb r0, [r2, #0xd] + pop {pc} + .align 2, 0 + + thumb_func_start sub_0805C81C +sub_0805C81C: @ 0x0805C81C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0805C854 @ =gUnk_08108D10 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + movs r0, #0xc0 + lsls r0, r0, #2 + ldrb r1, [r4, #0xa] + adds r1, #0x67 + bl sub_0807CB10 + cmp r0, #0 + beq _0805C85C + ldr r0, _0805C858 @ =gUnk_030010A0 + adds r0, #0xac + movs r1, #1 + ldrb r4, [r4, #0xa] + lsls r1, r4 + ldrh r2, [r0] + orrs r1, r2 + strh r1, [r0] + b _0805C86C + .align 2, 0 +_0805C854: .4byte gUnk_08108D10 +_0805C858: .4byte gUnk_030010A0 +_0805C85C: + ldr r2, _0805C870 @ =gUnk_030010A0 + adds r2, #0xac + movs r1, #1 + ldrb r4, [r4, #0xa] + lsls r1, r4 + ldrh r0, [r2] + bics r0, r1 + strh r0, [r2] +_0805C86C: + pop {r4, pc} + .align 2, 0 +_0805C870: .4byte gUnk_030010A0 + + thumb_func_start sub_0805C874 +sub_0805C874: @ 0x0805C874 + push {r4, lr} + adds r4, r0, #0 + bl sub_0805C920 + cmp r0, #0 + beq _0805C884 + movs r0, #2 + b _0805C886 +_0805C884: + movs r0, #1 +_0805C886: + strb r0, [r4, #0xc] + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805C894 +sub_0805C894: @ 0x0805C894 + push {r4, lr} + adds r4, r0, #0 + bl sub_0805C920 + cmp r0, #0 + beq _0805C8B0 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #1 + strb r0, [r4, #0xe] + movs r0, #0x8d + lsls r0, r0, #1 + bl sub_080A3268 +_0805C8B0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805C8B4 +sub_0805C8B4: @ 0x0805C8B4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r2, #0xff + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0805C8F4 + movs r0, #0x14 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] + ands r0, r2 + cmp r0, #5 + bls _0805C8DA + strb r1, [r4, #0xf] +_0805C8DA: + ldr r1, _0805C904 @ =gUnk_08108D20 + ldrb r0, [r4, #0xf] + adds r0, r0, r1 + ldrb r0, [r0] + bl sub_0801D714 + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _0805C8F4 + movs r0, #0x8d + lsls r0, r0, #1 + bl sub_080A3268 +_0805C8F4: + adds r0, r4, #0 + bl sub_0805C920 + cmp r0, #0 + bne _0805C902 + movs r0, #3 + strb r0, [r4, #0xc] +_0805C902: + pop {r4, pc} + .align 2, 0 +_0805C904: .4byte gUnk_08108D20 + + thumb_func_start sub_0805C908 +sub_0805C908: @ 0x0805C908 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xf] + cmp r0, #0 + bne _0805C918 + movs r0, #1 + strb r0, [r1, #0xc] + b _0805C91E +_0805C918: + adds r0, r1, #0 + bl sub_0805C8B4 +_0805C91E: + pop {pc} + + thumb_func_start sub_0805C920 +sub_0805C920: @ 0x0805C920 + push {lr} + movs r2, #0xc0 + lsls r2, r2, #2 + ldrb r1, [r0, #0xa] + adds r1, #0x67 + adds r0, r2, #0 + bl sub_0807CB10 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0805C934 +sub_0805C934: @ 0x0805C934 + push {lr} + ldr r2, _0805C948 @ =gUnk_08108D28 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805C948: .4byte gUnk_08108D28 + + thumb_func_start sub_0805C94C +sub_0805C94C: @ 0x0805C94C + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0805C9B0 + adds r6, r4, #0 + adds r6, #0x20 + adds r1, r6, #0 + movs r2, #0 + adds r0, r4, #0 + adds r0, #0x3c +_0805C962: + str r2, [r0] + subs r0, #4 + cmp r0, r1 + bge _0805C962 + adds r0, r4, #0 + bl sub_0805CA6C + adds r5, r0, #0 + cmp r5, #1 + ble _0805C9A8 + bl sub_0805E8D4 + adds r2, r0, #0 + cmp r2, #0 + beq _0805C9A8 + movs r0, #9 + strb r0, [r2, #8] + movs r0, #0x28 + strb r0, [r2, #9] + movs r0, #1 + strb r0, [r2, #0xa] + strb r5, [r2, #0xe] + adds r1, r2, #0 + adds r1, #0x20 + adds r0, r6, #0 + ldm r0!, {r3, r5, r6} + stm r1!, {r3, r5, r6} + ldm r0!, {r3, r5, r6} + stm r1!, {r3, r5, r6} + ldm r0!, {r3, r5} + stm r1!, {r3, r5} + adds r0, r2, #0 + movs r1, #6 + bl sub_0805EA2C +_0805C9A8: + adds r0, r4, #0 + bl sub_0805E900 + b _0805C9B8 +_0805C9B0: + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xf] +_0805C9B8: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0805C9BC +sub_0805C9BC: @ 0x0805C9BC + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + adds r6, r0, #0 + bl sub_0805CB48 + ldrb r0, [r6, #0xe] + subs r0, #1 + mov sb, r0 + ldrb r1, [r6, #0xf] + adds r0, r1, #1 + strb r0, [r6, #0xf] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0805CA22 + movs r2, #0 + cmp r2, sb + bge _0805CA62 + movs r0, #0x20 + adds r0, r0, r6 + mov r8, r0 +_0805C9EC: + lsls r1, r2, #2 + adds r0, r6, #0 + adds r0, #0x20 + adds r0, r0, r1 + ldr r3, [r0] + adds r4, r2, #1 + adds r5, r4, #0 + ldrb r1, [r6, #0xe] + cmp r5, r1 + bge _0805CA1A + lsls r0, r5, #2 + mov r1, r8 + adds r7, r0, r1 +_0805CA06: + ldm r7!, {r1} + adds r0, r3, #0 + str r3, [sp] + bl sub_08004484 + adds r4, #1 + ldr r3, [sp] + ldrb r0, [r6, #0xe] + cmp r4, r0 + blt _0805CA06 +_0805CA1A: + adds r2, r5, #0 + cmp r2, sb + blt _0805C9EC + b _0805CA62 +_0805CA22: + movs r2, #0 + cmp r2, sb + bge _0805CA62 + movs r1, #0x20 + adds r1, r1, r6 + mov r8, r1 +_0805CA2E: + lsls r1, r2, #2 + adds r0, r6, #0 + adds r0, #0x20 + adds r0, r0, r1 + ldr r3, [r0] + adds r4, r2, #1 + adds r5, r4, #0 + ldrb r0, [r6, #0xe] + cmp r5, r0 + bge _0805CA5C + lsls r0, r5, #2 + mov r1, r8 + adds r7, r0, r1 +_0805CA48: + ldm r7!, {r0} + adds r1, r3, #0 + str r3, [sp] + bl sub_08004484 + adds r4, #1 + ldr r3, [sp] + ldrb r0, [r6, #0xe] + cmp r4, r0 + blt _0805CA48 +_0805CA5C: + adds r2, r5, #0 + cmp r2, sb + blt _0805CA2E +_0805CA62: + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0805CA6C +sub_0805CA6C: @ 0x0805CA6C + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r5, #0 + ldrb r0, [r6, #0xb] + bl sub_0804B128 + adds r4, r0, #0 + cmp r4, #0 + bne _0805CACE + movs r0, #0 + b _0805CAE4 +_0805CA82: + movs r0, #8 + b _0805CAE4 +_0805CA86: + movs r0, #0xf + ands r0, r2 + cmp r0, #3 + bne _0805CACC + adds r0, r4, #0 + bl sub_0805CAF0 + adds r2, r0, #0 + cmp r2, #0 + beq _0805CACC + movs r3, #0 + cmp r3, r5 + bhs _0805CAB8 + ldr r0, [r6, #0x20] + cmp r0, r2 + beq _0805CAB8 + adds r1, r6, #0 + adds r1, #0x20 +_0805CAAA: + adds r1, #4 + adds r3, #1 + cmp r3, r5 + bhs _0805CAB8 + ldr r0, [r1] + cmp r0, r2 + bne _0805CAAA +_0805CAB8: + cmp r3, r5 + bne _0805CACC + lsls r1, r5, #2 + adds r0, r6, #0 + adds r0, #0x20 + adds r0, r0, r1 + str r2, [r0] + adds r5, #1 + cmp r5, #8 + beq _0805CA82 +_0805CACC: + adds r4, #0x10 +_0805CACE: + ldrb r2, [r4] + adds r0, r2, #0 + cmp r0, #0xff + beq _0805CAE2 + ldr r0, [r4] + ldr r1, _0805CAE8 @ =0x00FF000F + ands r0, r1 + ldr r1, _0805CAEC @ =0x00280009 + cmp r0, r1 + bne _0805CA86 +_0805CAE2: + adds r0, r5, #0 +_0805CAE4: + pop {r4, r5, r6, pc} + .align 2, 0 +_0805CAE8: .4byte 0x00FF000F +_0805CAEC: .4byte 0x00280009 + + thumb_func_start sub_0805CAF0 +sub_0805CAF0: @ 0x0805CAF0 + push {r4, r5, r6, lr} + adds r3, r0, #0 + ldrh r1, [r3, #8] + ldr r2, _0805CB34 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + adds r5, r1, r0 + ldrh r1, [r3, #0xa] + ldrh r0, [r2, #8] + adds r4, r1, r0 + ldr r1, _0805CB38 @ =gUnk_03003D90 + ldr r2, [r1, #4] + cmp r2, r1 + beq _0805CB42 +_0805CB0A: + movs r6, #0x2e + ldrsh r0, [r2, r6] + cmp r5, r0 + bne _0805CB3C + movs r6, #0x32 + ldrsh r0, [r2, r6] + cmp r4, r0 + bne _0805CB3C + ldrb r0, [r3, #2] + ldrb r6, [r2, #9] + cmp r0, r6 + bne _0805CB3C + ldrb r0, [r2, #8] + cmp r0, #3 + bne _0805CB3C + ldrb r0, [r3, #3] + ldrb r6, [r2, #0xa] + cmp r0, r6 + bne _0805CB3C + adds r0, r2, #0 + b _0805CB44 + .align 2, 0 +_0805CB34: .4byte gUnk_03000BF0 +_0805CB38: .4byte gUnk_03003D90 +_0805CB3C: + ldr r2, [r2, #4] + cmp r2, r1 + bne _0805CB0A +_0805CB42: + movs r0, #0 +_0805CB44: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0805CB48 +sub_0805CB48: @ 0x0805CB48 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r5, #0 + ldrb r1, [r4, #0xe] + cmp r5, r1 + bge _0805CB84 + adds r3, r4, #0 + adds r3, #0x20 + adds r6, r3, #0 +_0805CB5A: + ldr r0, [r3] + ldr r2, [r0, #4] + cmp r2, #0 + bne _0805CB7A + subs r0, r1, #1 + cmp r0, r5 + bne _0805CB6C + str r2, [r3] + b _0805CB74 +_0805CB6C: + lsls r0, r0, #2 + adds r0, r6, r0 + ldr r0, [r0] + str r0, [r3] +_0805CB74: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] +_0805CB7A: + adds r3, #4 + adds r5, #1 + ldrb r1, [r4, #0xe] + cmp r5, r1 + blt _0805CB5A +_0805CB84: + ldrb r0, [r4, #0xe] + cmp r0, #1 + bhi _0805CB8E + bl sub_0805E780 +_0805CB8E: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0805CB90 +sub_0805CB90: @ 0x0805CB90 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0805CBB8 + adds r0, r4, #0 + bl sub_0805CBD0 + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _0805CBCE + adds r0, r4, #0 + bl sub_0805CC3C + adds r0, r4, #0 + bl sub_0805E900 + b _0805CBCE +_0805CBB8: + adds r0, r4, #0 + bl sub_0805CF80 + cmp r0, #0 + beq _0805CBCE + ldrh r0, [r4, #0x3e] + bl sub_0807CCC8 + adds r0, r4, #0 + bl sub_0805E900 +_0805CBCE: + pop {r4, pc} + + thumb_func_start sub_0805CBD0 +sub_0805CBD0: @ 0x0805CBD0 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #1 + strb r0, [r5, #0xc] + ldrh r1, [r5, #0x38] + lsls r1, r1, #0x10 + asrs r1, r1, #0x14 + movs r3, #0x3f + ands r1, r3 + ldrh r0, [r5, #0x3a] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + strh r1, [r5, #0x38] + ldrh r2, [r5, #0x3c] + lsrs r2, r2, #4 + ands r2, r3 + adds r0, r5, #0 + adds r0, #0x36 + ldrb r1, [r0] + adds r0, #1 + ldrb r0, [r0] + lsls r0, r0, #8 + adds r1, r1, r0 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r2, r1 + strh r2, [r5, #0x3a] + movs r1, #0x38 + ldrsh r0, [r5, r1] + adds r4, r5, #0 + adds r4, #0x34 + ldrb r1, [r4] + bl sub_080002B0 + strh r0, [r5, #0x3c] + ldrb r0, [r4] + bl sub_0808094C + ldr r2, _0805CC38 @ =0x00005004 + adds r1, r0, r2 + str r1, [r5, #0x28] + movs r2, #0x3a + ldrsh r1, [r5, r2] + lsls r1, r1, #1 + adds r1, #4 + adds r0, r0, r1 + str r0, [r5, #0x2c] + pop {r4, r5, pc} + .align 2, 0 +_0805CC38: .4byte 0x00005004 + + thumb_func_start sub_0805CC3C +sub_0805CC3C: @ 0x0805CC3C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + movs r0, #0x38 + ldrsh r5, [r4, r0] + movs r0, #0x3a + ldrsh r1, [r4, r0] + mov r8, r1 + adds r7, r4, #0 + adds r7, #0x34 + ldrb r0, [r7] + ldr r6, _0805CC6C @ =0x00000322 + cmp r0, #1 + bne _0805CC5C + subs r6, #1 +_0805CC5C: + ldrb r0, [r4, #0xa] + cmp r0, #2 + beq _0805CCF4 + cmp r0, #2 + bgt _0805CC70 + cmp r0, #1 + beq _0805CC94 + b _0805CC76 + .align 2, 0 +_0805CC6C: .4byte 0x00000322 +_0805CC70: + cmp r0, #3 + bne _0805CC76 + b _0805CDE4 +_0805CC76: + adds r4, #0x34 + ldrb r2, [r4] + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_0807B7D8 + ldr r0, _0805CC90 @ =0x00000365 + ldrb r2, [r4] + mov r1, r8 + bl sub_0807B7D8 + b _0805CF68 + .align 2, 0 +_0805CC90: .4byte 0x00000365 +_0805CC94: + ldrb r2, [r7] + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_0807B7D8 + adds r1, r5, #1 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r5, #0 + adds r1, #0x40 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r5, #0 + adds r1, #0x41 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + ldrh r0, [r4, #0x3c] + ldrb r2, [r7] + mov r1, r8 + bl sub_0807B7D8 + ldr r0, _0805CCEC @ =0x0000036F + mov r1, r8 + adds r1, #1 + ldrb r2, [r7] + bl sub_0807B7D8 + movs r0, #0xdc + lsls r0, r0, #2 + mov r1, r8 + adds r1, #0x40 + ldrb r2, [r7] + bl sub_0807B7D8 + ldr r0, _0805CCF0 @ =0x00000371 + mov r1, r8 + adds r1, #0x41 + b _0805CDC2 + .align 2, 0 +_0805CCEC: .4byte 0x0000036F +_0805CCF0: .4byte 0x00000371 +_0805CCF4: + ldrb r2, [r7] + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_0807B7D8 + adds r1, r5, #1 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r5, #2 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r5, #0 + adds r1, #0x40 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r5, #0 + adds r1, #0x41 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r5, #0 + adds r1, #0x42 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r5, #0 + adds r1, #0x80 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r5, #0 + adds r1, #0x81 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r5, #0 + adds r1, #0x82 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + ldrh r0, [r4, #0x3c] + ldrb r2, [r7] + mov r1, r8 + bl sub_0807B7D8 + ldr r0, _0805CDCC @ =0x00000372 + mov r1, r8 + adds r1, #1 + ldrb r2, [r7] + bl sub_0807B7D8 + ldr r0, _0805CDD0 @ =0x0000036F + mov r1, r8 + adds r1, #2 + ldrb r2, [r7] + bl sub_0807B7D8 + movs r0, #0xdd + lsls r0, r0, #2 + mov r1, r8 + adds r1, #0x40 + ldrb r2, [r7] + bl sub_0807B7D8 + ldr r0, _0805CDD4 @ =0x00000376 + mov r1, r8 + adds r1, #0x41 + ldrb r2, [r7] + bl sub_0807B7D8 + ldr r0, _0805CDD8 @ =0x00000375 + mov r1, r8 + adds r1, #0x42 + ldrb r2, [r7] + bl sub_0807B7D8 + movs r0, #0xdc + lsls r0, r0, #2 + mov r1, r8 + adds r1, #0x80 + ldrb r2, [r7] + bl sub_0807B7D8 + ldr r0, _0805CDDC @ =0x00000373 + mov r1, r8 + adds r1, #0x81 + ldrb r2, [r7] + bl sub_0807B7D8 + ldr r0, _0805CDE0 @ =0x00000371 + mov r1, r8 + adds r1, #0x82 +_0805CDC2: + ldrb r2, [r7] + bl sub_0807B7D8 + b _0805CF68 + .align 2, 0 +_0805CDCC: .4byte 0x00000372 +_0805CDD0: .4byte 0x0000036F +_0805CDD4: .4byte 0x00000376 +_0805CDD8: .4byte 0x00000375 +_0805CDDC: .4byte 0x00000373 +_0805CDE0: .4byte 0x00000371 +_0805CDE4: + ldrb r2, [r7] + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_0807B7D8 + adds r1, r5, #1 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r5, #2 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r5, #3 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r5, #0 + adds r1, #0x40 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r5, #0 + adds r1, #0x41 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r5, #0 + adds r1, #0x42 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r5, #0 + adds r1, #0x43 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r5, #0 + adds r1, #0x80 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r5, #0 + adds r1, #0x81 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r5, #0 + adds r1, #0x82 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r5, #0 + adds r1, #0x83 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r5, #0 + adds r1, #0xc0 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r5, #0 + adds r1, #0xc1 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r5, #0 + adds r1, #0xc2 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r5, #0 + adds r1, #0xc3 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + ldrh r0, [r4, #0x3c] + ldrb r2, [r7] + mov r1, r8 + bl sub_0807B7D8 + ldr r4, _0805CF70 @ =0x00000372 + mov r1, r8 + adds r1, #1 + ldrb r2, [r7] + adds r0, r4, #0 + bl sub_0807B7D8 + mov r1, r8 + adds r1, #2 + ldrb r2, [r7] + adds r0, r4, #0 + bl sub_0807B7D8 + ldr r0, _0805CF74 @ =0x0000036F + mov r1, r8 + adds r1, #3 + ldrb r2, [r7] + bl sub_0807B7D8 + movs r6, #0xdd + lsls r6, r6, #2 + mov r1, r8 + adds r1, #0x40 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r4, #4 + mov r1, r8 + adds r1, #0x41 + ldrb r2, [r7] + adds r0, r4, #0 + bl sub_0807B7D8 + mov r1, r8 + adds r1, #0x42 + ldrb r2, [r7] + adds r0, r4, #0 + bl sub_0807B7D8 + ldr r5, _0805CF78 @ =0x00000375 + mov r1, r8 + adds r1, #0x43 + ldrb r2, [r7] + adds r0, r5, #0 + bl sub_0807B7D8 + mov r1, r8 + adds r1, #0x80 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0807B7D8 + mov r1, r8 + adds r1, #0x81 + ldrb r2, [r7] + adds r0, r4, #0 + bl sub_0807B7D8 + mov r1, r8 + adds r1, #0x82 + ldrb r2, [r7] + adds r0, r4, #0 + bl sub_0807B7D8 + mov r1, r8 + adds r1, #0x83 + ldrb r2, [r7] + adds r0, r5, #0 + bl sub_0807B7D8 + movs r0, #0xdc + lsls r0, r0, #2 + mov r1, r8 + adds r1, #0xc0 + ldrb r2, [r7] + bl sub_0807B7D8 + subs r4, #3 + mov r1, r8 + adds r1, #0xc1 + ldrb r2, [r7] + adds r0, r4, #0 + bl sub_0807B7D8 + mov r1, r8 + adds r1, #0xc2 + ldrb r2, [r7] + adds r0, r4, #0 + bl sub_0807B7D8 + ldr r0, _0805CF7C @ =0x00000371 + mov r1, r8 + adds r1, #0xc3 + ldrb r2, [r7] + bl sub_0807B7D8 +_0805CF68: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0805CF70: .4byte 0x00000372 +_0805CF74: .4byte 0x0000036F +_0805CF78: .4byte 0x00000375 +_0805CF7C: .4byte 0x00000371 + + thumb_func_start sub_0805CF80 +sub_0805CF80: @ 0x0805CF80 + push {lr} + ldr r1, [r0, #0x2c] + ldrh r1, [r1] + ldr r0, [r0, #0x28] + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r1, [r1] + movs r2, #0 + ldr r0, _0805CFBC @ =0x00000365 + cmp r1, r0 + beq _0805CFB4 + adds r0, #4 + cmp r1, r0 + beq _0805CFB4 + adds r0, #1 + cmp r1, r0 + beq _0805CFB4 + adds r0, #1 + cmp r1, r0 + beq _0805CFB4 + adds r0, #2 + cmp r1, r0 + beq _0805CFB4 + subs r0, #1 + cmp r1, r0 + bne _0805CFB6 +_0805CFB4: + movs r2, #1 +_0805CFB6: + adds r0, r2, #0 + pop {pc} + .align 2, 0 +_0805CFBC: .4byte 0x00000365 + + thumb_func_start sub_0805CFC0 +sub_0805CFC0: @ 0x0805CFC0 + push {r4, lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xc] + cmp r0, #0 + bne _0805CFCE + adds r0, #1 + strb r0, [r1, #0xc] +_0805CFCE: + movs r0, #3 + bl sub_0804B128 + adds r4, r0, #0 + cmp r4, #0 + beq _0805CFEE + b _0805CFE8 +_0805CFDC: + cmp r0, #0xa + bne _0805CFE6 + adds r0, r4, #0 + bl sub_0805CFF0 +_0805CFE6: + adds r4, #8 +_0805CFE8: + ldrb r0, [r4] + cmp r0, #0 + bne _0805CFDC +_0805CFEE: + pop {r4, pc} + + thumb_func_start sub_0805CFF0 +sub_0805CFF0: @ 0x0805CFF0 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #2] + bl sub_0807CBD0 + cmp r0, #0 + bne _0805D012 + ldrh r0, [r4, #4] + ldrb r1, [r4, #1] + bl sub_080002B0 + ldrh r1, [r4, #6] + cmp r1, r0 + bne _0805D012 + ldrh r0, [r4, #2] + bl sub_0807CCB4 +_0805D012: + pop {r4, pc} + + thumb_func_start sub_0805D014 +sub_0805D014: @ 0x0805D014 + push {lr} + ldr r2, _0805D028 @ =gUnk_08108D30 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805D028: .4byte gUnk_08108D30 + + thumb_func_start sub_0805D02C +sub_0805D02C: @ 0x0805D02C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r6, r0, #0 + ldrh r0, [r6, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _0805D046 + bl sub_0805E780 +_0805D046: + ldr r0, _0805D0BC @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x43 + bhi _0805D0B0 + ldrb r0, [r6, #0xa] + bl sub_0804B128 + adds r5, r0, #0 + movs r7, #0 + movs r0, #0x36 + adds r0, r0, r6 + mov sl, r0 + ldr r1, _0805D0C0 @ =gUnk_03000BF0 + mov r8, r1 + movs r0, #0x20 + adds r0, r0, r6 + mov sb, r0 +_0805D068: + ldrh r1, [r5, #4] + movs r0, #0xa0 + adds r2, r7, #0 + bl sub_080A2960 + adds r4, r0, #0 + mov r1, r8 + ldrh r0, [r1, #6] + ldrh r1, [r5] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + mov r1, r8 + ldrh r0, [r1, #8] + ldrh r1, [r5, #2] + adds r0, r0, r1 + strh r0, [r4, #0x32] + str r6, [r4, #0x50] + adds r0, r4, #0 + bl sub_08016A30 + mov r0, sb + adds r0, #4 + mov sb, r0 + subs r0, #4 + stm r0!, {r4} + adds r7, #1 + adds r5, #6 + cmp r7, #3 + bls _0805D068 + movs r0, #0 + movs r1, #1 + strb r1, [r6, #0xc] + movs r1, #0x3c + strb r1, [r6, #0xf] + mov r1, sl + strb r0, [r1] +_0805D0B0: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0805D0BC: .4byte gUnk_03003DBC +_0805D0C0: .4byte gUnk_03000BF0 + + thumb_func_start sub_0805D0C4 +sub_0805D0C4: @ 0x0805D0C4 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805D0D8 + movs r0, #0xb4 + strb r0, [r4, #0xf] +_0805D0D8: + adds r5, r4, #0 + adds r5, #0x36 + ldrb r0, [r5] + cmp r0, #0xf + bne _0805D0F6 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #8 + strb r0, [r4, #0xe] + movs r0, #0x72 + bl sub_080A3268 + adds r0, r4, #0 + bl sub_0805D11C +_0805D0F6: + movs r0, #0 + strb r0, [r5] + pop {r4, r5, pc} + + thumb_func_start sub_0805D0FC +sub_0805D0FC: @ 0x0805D0FC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805D118 + ldrh r0, [r4, #0x3e] + bl sub_0807CCC8 + adds r0, r4, #0 + bl sub_0805E900 +_0805D118: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805D11C +sub_0805D11C: @ 0x0805D11C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + movs r6, #0 + ldr r1, _0805D170 @ =gUnk_03000BF0 + mov r8, r1 + movs r7, #0x3f + adds r5, r0, #0 + adds r5, #0x20 +_0805D12E: + ldr r4, [r5] + movs r0, #0 + stm r5!, {r0} + movs r2, #0x2e + ldrsh r0, [r4, r2] + mov r3, r8 + ldrh r1, [r3, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r7 + movs r2, #0x32 + ldrsh r1, [r4, r2] + ldrh r2, [r3, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r7 + lsls r1, r1, #6 + orrs r0, r1 + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_0807BA8C + adds r0, r4, #0 + bl sub_0805E7BC + adds r6, #1 + cmp r6, #3 + bls _0805D12E + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0805D170: .4byte gUnk_03000BF0 + + thumb_func_start sub_0805D174 +sub_0805D174: @ 0x0805D174 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r1, [r5, #0xc] + cmp r1, #0 + bne _0805D184 + movs r0, #1 + strb r0, [r5, #0xc] + strh r1, [r5, #0x3a] +_0805D184: + movs r1, #0x38 + ldrsh r0, [r5, r1] + movs r2, #0x3a + ldrsh r1, [r5, r2] + movs r2, #0x14 + movs r3, #0x40 + bl sub_0800293E + cmp r0, #0 + beq _0805D1EE + ldr r0, _0805D1F0 @ =gUnk_03001160 + movs r4, #0x32 + ldrsh r1, [r0, r4] + ldr r3, _0805D1F4 @ =gUnk_03000BF0 + ldrh r2, [r3, #8] + subs r1, r1, r2 + movs r4, #0x36 + ldrsh r0, [r0, r4] + adds r1, r1, r0 + cmp r1, #0 + bge _0805D1EE + movs r1, #0xc + ldrsh r0, [r3, r1] + cmp r0, r2 + bne _0805D1EE + ldr r4, _0805D1F8 @ =gUnk_030010AC + adds r0, r4, #0 + movs r1, #0x20 + bl sub_0801D630 + subs r4, #0xc + movs r1, #0 + movs r0, #1 + strb r0, [r4, #8] + strb r1, [r4, #9] + movs r0, #0xb + strb r0, [r4, #0xf] + ldrb r0, [r5, #0xb] + strb r0, [r4, #0xc] + ldrb r0, [r5, #0xe] + strb r0, [r4, #0xd] + adds r0, r5, #0 + adds r0, #0x37 + ldrb r0, [r0] + strb r0, [r4, #0xe] + ldrh r0, [r5, #0x3c] + strh r0, [r4, #0x10] + ldrh r0, [r5, #0x3e] + strh r0, [r4, #0x12] + adds r0, r5, #0 + adds r0, #0x36 + ldrb r0, [r0] + strb r0, [r4, #0x14] +_0805D1EE: + pop {r4, r5, pc} + .align 2, 0 +_0805D1F0: .4byte gUnk_03001160 +_0805D1F4: .4byte gUnk_03000BF0 +_0805D1F8: .4byte gUnk_030010AC + + thumb_func_start sub_0805D1FC +sub_0805D1FC: @ 0x0805D1FC + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _0805D240 @ =0x00004014 + ldr r1, _0805D244 @ =0x000005C3 + movs r2, #1 + bl sub_0800015E + ldr r3, _0805D248 @ =gUnk_03000BF0 + ldrh r0, [r3, #8] + adds r0, #0xc8 + ldr r2, _0805D24C @ =gUnk_03001160 + movs r5, #0x32 + ldrsh r1, [r2, r5] + cmp r0, r1 + bge _0805D236 + movs r1, #0x2e + ldrsh r0, [r2, r1] + ldrh r1, [r3, #6] + subs r0, r0, r1 + subs r0, #0x30 + cmp r0, #0x10 + bhi _0805D236 + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + adds r0, r2, #0 + bl sub_08016A04 +_0805D236: + adds r0, r4, #0 + bl sub_0805E900 + pop {r4, r5, pc} + .align 2, 0 +_0805D240: .4byte 0x00004014 +_0805D244: .4byte 0x000005C3 +_0805D248: .4byte gUnk_03000BF0 +_0805D24C: .4byte gUnk_03001160 + + thumb_func_start sub_0805D250 +sub_0805D250: @ 0x0805D250 + push {lr} + ldr r2, _0805D264 @ =gUnk_08108D3C + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805D264: .4byte gUnk_08108D3C + + thumb_func_start sub_0805D268 +sub_0805D268: @ 0x0805D268 + push {lr} + ldr r2, _0805D27C @ =gUnk_08108D44 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805D27C: .4byte gUnk_08108D44 + + thumb_func_start sub_0805D280 +sub_0805D280: @ 0x0805D280 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x3c] + bl sub_0807CBE4 + cmp r0, #0 + beq _0805D292 + bl sub_0805E780 +_0805D292: + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _0805D2A6 + ldrh r0, [r4, #0x3c] + bl sub_0807CCC8 + bl sub_0805E780 +_0805D2A6: + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _0805D2B4 + movs r0, #0x1e + strb r0, [r4, #0xe] +_0805D2B4: + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805D2C0 +sub_0805D2C0: @ 0x0805D2C0 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _0805D2EE + ldr r0, _0805D2F0 @ =gUnk_03003DC0 + ldrh r0, [r0, #8] + cmp r0, #1 + bhi _0805D2EE + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xe] + cmp r0, #1 + bne _0805D2E6 + adds r0, r4, #0 + bl sub_0805D2F4 +_0805D2E6: + ldrb r1, [r4, #0xe] + adds r0, r4, #0 + bl sub_0805E4E0 +_0805D2EE: + pop {r4, pc} + .align 2, 0 +_0805D2F0: .4byte gUnk_03003DC0 + + thumb_func_start sub_0805D2F4 +sub_0805D2F4: @ 0x0805D2F4 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0805D310 @ =gUnk_03003DC0 + ldrh r0, [r0, #8] + cmp r0, #0 + bne _0805D328 + movs r1, #0x38 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _0805D314 + bl sub_080A3268 + b _0805D31A + .align 2, 0 +_0805D310: .4byte gUnk_03003DC0 +_0805D314: + movs r0, #0x72 + bl sub_080A3268 +_0805D31A: + ldrh r0, [r4, #0x3c] + cmp r0, #0 + beq _0805D324 + bl sub_0807CCC8 +_0805D324: + bl sub_0805E780 +_0805D328: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805D32C +sub_0805D32C: @ 0x0805D32C + push {lr} + ldr r2, _0805D340 @ =gUnk_08108D50 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805D340: .4byte gUnk_08108D50 + + thumb_func_start sub_0805D344 +sub_0805D344: @ 0x0805D344 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _0805D35C + movs r0, #0x1e + strb r0, [r4, #0xe] +_0805D35C: + ldrb r0, [r4, #0xe] + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805D36C +sub_0805D36C: @ 0x0805D36C + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _0805D382 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xf] + strb r0, [r4, #0xe] +_0805D382: + pop {r4, pc} + + thumb_func_start sub_0805D384 +sub_0805D384: @ 0x0805D384 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0805D3B2 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805D3C6 + movs r1, #0x38 + ldrsh r0, [r4, r1] + movs r1, #0x72 + cmp r0, #0 + beq _0805D3A4 + adds r1, r0, #0 +_0805D3A4: + adds r0, r1, #0 + bl sub_080A3268 + ldrh r0, [r4, #0x3c] + bl sub_0807CCC8 + b _0805D3C6 +_0805D3B2: + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + bne _0805D3C6 + movs r0, #1 + strb r0, [r4, #0xc] + ldrh r0, [r4, #0x3c] + bl sub_0807CD48 +_0805D3C6: + pop {r4, pc} + + thumb_func_start sub_0805D3C8 +sub_0805D3C8: @ 0x0805D3C8 + push {r4, lr} + adds r4, r0, #0 + cmp r4, #0 + bne _0805D3F4 + ldr r0, _0805D3E8 @ =gUnk_02033A90 + ldr r1, _0805D3EC @ =0x0000088C + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _0805D3F0 @ =sub_0805D470 + cmp r0, r1 + beq _0805D45E + movs r0, #0 + bl _call_via_r1 + b _0805D45E + .align 2, 0 +_0805D3E8: .4byte gUnk_02033A90 +_0805D3EC: .4byte 0x0000088C +_0805D3F0: .4byte sub_0805D470 +_0805D3F4: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0805D43A + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + ldr r0, _0805D428 @ =gUnk_02033A90 + ldr r2, _0805D42C @ =0x0000088C + adds r0, r0, r2 + ldr r0, [r0] + cmp r0, #0 + bne _0805D434 + ldr r1, _0805D430 @ =sub_0805D470 + adds r0, r4, #0 + movs r2, #0 + bl sub_08052D74 + b _0805D45E + .align 2, 0 +_0805D428: .4byte gUnk_02033A90 +_0805D42C: .4byte 0x0000088C +_0805D430: .4byte sub_0805D470 +_0805D434: + bl sub_0805E780 + b _0805D45E +_0805D43A: + ldr r1, _0805D460 @ =gUnk_03000BF0 + ldr r0, [r1, #0x28] + ldr r3, _0805D464 @ =0xFFFFC000 + adds r0, r0, r3 + str r0, [r1, #0x28] + ldr r0, [r1, #0x2c] + ldr r2, _0805D468 @ =0xFFFFE000 + adds r0, r0, r2 + str r0, [r1, #0x2c] + ldr r2, _0805D46C @ =gUnk_03000F50 + ldrh r0, [r1, #0x2a] + ldrh r3, [r1, #0xa] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + ldrh r0, [r1, #0x2e] + ldrh r1, [r1, #0xc] + adds r0, r0, r1 + strh r0, [r2, #0x30] +_0805D45E: + pop {r4, pc} + .align 2, 0 +_0805D460: .4byte gUnk_03000BF0 +_0805D464: .4byte 0xFFFFC000 +_0805D468: .4byte 0xFFFFE000 +_0805D46C: .4byte gUnk_03000F50 + + thumb_func_start sub_0805D470 +sub_0805D470: @ 0x0805D470 + push {lr} + movs r0, #0x4c + bl sub_0801D7EC + ldr r2, _0805D4A0 @ =gUnk_03000F50 + ldr r0, _0805D4A4 @ =0x00001E07 + strh r0, [r2, #0x2c] + ldrh r1, [r2] + movs r3, #0x80 + lsls r3, r3, #4 + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2] + ldr r1, _0805D4A8 @ =gUnk_03000BF0 + ldrh r0, [r1, #0x2a] + ldrh r3, [r1, #0xa] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + ldrh r0, [r1, #0x2e] + ldrh r1, [r1, #0xc] + adds r0, r0, r1 + strh r0, [r2, #0x30] + pop {pc} + .align 2, 0 +_0805D4A0: .4byte gUnk_03000F50 +_0805D4A4: .4byte 0x00001E07 +_0805D4A8: .4byte gUnk_03000BF0 + + thumb_func_start sub_0805D4AC +sub_0805D4AC: @ 0x0805D4AC + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r6, r0, #0 + ldrb r0, [r6, #0xc] + cmp r0, #1 + beq _0805D520 + cmp r0, #1 + bgt _0805D4C6 + cmp r0, #0 + beq _0805D4D2 + b _0805D628 +_0805D4C6: + cmp r0, #2 + beq _0805D5A4 + cmp r0, #3 + bne _0805D4D0 + b _0805D604 +_0805D4D0: + b _0805D628 +_0805D4D2: + movs r0, #1 + strb r0, [r6, #0xc] + ldrb r0, [r6, #0xe] + strb r0, [r6, #0xf] + ldrh r1, [r6, #0x38] + lsls r1, r1, #0x10 + asrs r1, r1, #0x14 + movs r3, #0x3f + ands r1, r3 + ldrh r0, [r6, #0x3a] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + strh r1, [r6, #0x28] + ldr r4, _0805D518 @ =gUnk_03001160 + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0805D51C @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + strh r1, [r6, #0x2e] + strh r1, [r6, #0x2c] + b _0805D628 + .align 2, 0 +_0805D518: .4byte gUnk_03001160 +_0805D51C: .4byte gUnk_03000BF0 +_0805D520: + ldr r4, _0805D568 @ =gUnk_03001160 + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r3, _0805D56C @ =gUnk_03000BF0 + ldrh r1, [r3, #6] + subs r0, r0, r1 + asrs r5, r0, #4 + movs r2, #0x3f + ands r5, r2 + movs r1, #0x32 + ldrsh r0, [r4, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r5, r0 + strh r5, [r6, #0x2e] + ldrh r2, [r6, #0x2c] + cmp r5, r2 + beq _0805D5A4 + strh r5, [r6, #0x2c] + ldrh r0, [r6, #0x2e] + ldrb r1, [r6, #0xb] + bl sub_080002B0 + adds r1, r0, #0 + ldr r3, _0805D570 @ =0x00000317 + cmp r1, r3 + beq _0805D574 + movs r0, #0xc6 + lsls r0, r0, #2 + cmp r1, r0 + beq _0805D580 + b _0805D5A4 + .align 2, 0 +_0805D568: .4byte gUnk_03001160 +_0805D56C: .4byte gUnk_03000BF0 +_0805D570: .4byte 0x00000317 +_0805D574: + movs r0, #2 + strb r0, [r6, #0xc] + movs r0, #0x6d + bl sub_080A3268 + b _0805D5A4 +_0805D580: + ldrh r1, [r6, #0x2e] + ldrb r2, [r6, #0xb] + adds r0, r3, #0 + bl sub_0807B7D8 + movs r0, #0x6b + bl sub_080A3268 + ldrb r0, [r6, #0xe] + subs r0, #1 + strb r0, [r6, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805D5A4 + movs r0, #3 + strb r0, [r6, #0xc] + movs r0, #0x40 + strb r0, [r6, #0xe] +_0805D5A4: + ldrh r0, [r6, #0x3e] + cmp r0, #0 + beq _0805D628 + bl sub_0807CBE4 + cmp r0, #0 + beq _0805D628 + ldrh r0, [r6, #0x3e] + bl sub_0807CD48 + movs r0, #1 + strb r0, [r6, #0xc] + ldrb r0, [r6, #0xf] + strb r0, [r6, #0xe] + movs r1, #0 + adds r0, r6, #0 + adds r0, #0x37 + mov sb, r0 + ldrb r5, [r0] + cmp r1, r5 + bhs _0805D628 + movs r0, #0x36 + adds r0, r0, r6 + mov r8, r0 +_0805D5D4: + lsls r0, r1, #6 + ldrh r2, [r6, #0x28] + adds r5, r0, r2 + movs r4, #0 + adds r7, r1, #1 + mov r0, r8 + ldrb r0, [r0] + cmp r4, r0 + bhs _0805D5F8 +_0805D5E6: + adds r0, r5, r4 + ldrb r1, [r6, #0xb] + bl sub_0807BA8C + adds r4, #1 + mov r1, r8 + ldrb r1, [r1] + cmp r4, r1 + blo _0805D5E6 +_0805D5F8: + adds r1, r7, #0 + mov r2, sb + ldrb r2, [r2] + cmp r1, r2 + blo _0805D5D4 + b _0805D628 +_0805D604: + ldrb r0, [r6, #0xe] + cmp r0, #0 + beq _0805D628 + subs r0, #1 + strb r0, [r6, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _0805D622 + cmp r0, #0x20 + bne _0805D628 + ldrh r0, [r6, #0x3c] + bl sub_0807CCC8 + b _0805D628 +_0805D622: + movs r0, #0x72 + bl sub_080A3268 +_0805D628: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0805D630 +sub_0805D630: @ 0x0805D630 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r6, r0, #0 + ldrb r0, [r6, #0xc] + cmp r0, #0 + beq _0805D642 + b _0805D768 +_0805D642: + adds r0, #1 + strb r0, [r6, #0xc] + movs r0, #0x42 + bl sub_0807CC30 + cmp r0, #0 + beq _0805D6E4 + movs r0, #0x43 + bl sub_0807CC30 + cmp r0, #0 + beq _0805D6E4 + movs r0, #0x44 + bl sub_0807CC30 + cmp r0, #0 + beq _0805D6E4 + movs r0, #0x3e + bl sub_0807CC30 + cmp r0, #0 + bne _0805D680 + movs r0, #2 + bl sub_0807CC30 + cmp r0, #0 + beq _0805D6E4 + movs r0, #0x3e + bl sub_0807CD04 + b _0805D6D2 +_0805D680: + movs r0, #0x3f + bl sub_0807CC30 + cmp r0, #0 + bne _0805D69C + movs r0, #3 + bl sub_0807CC30 + cmp r0, #0 + beq _0805D6E4 + movs r0, #0x3f + bl sub_0807CD04 + b _0805D6D2 +_0805D69C: + movs r0, #0x40 + bl sub_0807CC30 + cmp r0, #0 + bne _0805D6B8 + movs r0, #4 + bl sub_0807CC30 + cmp r0, #0 + beq _0805D6E4 + movs r0, #0x40 + bl sub_0807CD04 + b _0805D6D2 +_0805D6B8: + movs r0, #0x41 + bl sub_0807CC30 + cmp r0, #0 + bne _0805D6E4 + movs r0, #5 + bl sub_0807CC30 + cmp r0, #0 + beq _0805D6E4 + movs r0, #0x41 + bl sub_0807CD04 +_0805D6D2: + movs r0, #0x42 + bl sub_0807CD80 + movs r0, #0x43 + bl sub_0807CD80 + movs r0, #0x44 + bl sub_0807CD80 +_0805D6E4: + adds r1, r6, #0 + adds r1, #0x22 + movs r0, #0 + strb r0, [r1] + subs r1, #1 + strb r0, [r1] + subs r1, #1 + strb r0, [r1] + ldr r4, _0805D79C @ =gUnk_08108D5C + movs r5, #0 + mov sb, r1 + movs r7, #1 + ldr r0, _0805D7A0 @ =gUnk_03000BF0 + mov r8, r0 +_0805D700: + adds r0, r5, #0 + adds r0, #0x42 + bl sub_0807CC30 + cmp r0, #0 + bne _0805D760 + bl sub_08000E50 + ldrh r1, [r4, #2] + bl __modsi3 + adds r2, r0, #0 + ldrh r0, [r4] + adds r2, r2, r0 + movs r0, #2 + movs r1, #0x5c + bl sub_080A2960 + adds r2, r0, #0 + cmp r2, #0 + beq _0805D760 + strb r7, [r2, #0xe] + strb r5, [r2, #0xf] + mov r1, r8 + ldrh r0, [r1, #6] + ldrh r1, [r4, #4] + adds r0, r0, r1 + strh r0, [r2, #0x2e] + mov r1, r8 + ldrh r0, [r1, #8] + ldrh r1, [r4, #6] + adds r0, r0, r1 + strh r0, [r2, #0x32] + ldrh r1, [r4, #4] + adds r0, r2, #0 + adds r0, #0x80 + strh r1, [r0] + ldrh r0, [r4, #6] + adds r1, r2, #0 + adds r1, #0x82 + strh r0, [r1] + adds r0, r2, #0 + adds r0, #0x38 + strb r7, [r0] + str r6, [r2, #0x50] + mov r1, sb + adds r0, r1, r5 + strb r7, [r0] +_0805D760: + adds r5, #1 + adds r4, #8 + cmp r5, #2 + ble _0805D700 +_0805D768: + movs r5, #0 +_0805D76A: + adds r4, r5, #0 + adds r4, #0x42 + adds r0, r4, #0 + bl sub_0807CC30 + cmp r0, #0 + bne _0805D78E + adds r0, r6, #0 + adds r0, #0x20 + adds r0, r0, r5 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bge _0805D78E + adds r0, r4, #0 + bl sub_0807CD04 +_0805D78E: + adds r5, #1 + cmp r5, #2 + ble _0805D76A + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0805D79C: .4byte gUnk_08108D5C +_0805D7A0: .4byte gUnk_03000BF0 + + thumb_func_start sub_0805D7A4 +sub_0805D7A4: @ 0x0805D7A4 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0805D7D4 @ =gUnk_08108D7C + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldr r0, _0805D7D8 @ =gUnk_030010A0 + ldr r0, [r0] + lsls r0, r0, #4 + str r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_0805D9D8 + ldr r0, [r4, #0x20] + ldr r1, [r4, #0x28] + ldr r2, [r4, #0x24] + bl sub_0805DA08 + pop {r4, pc} + .align 2, 0 +_0805D7D4: .4byte gUnk_08108D7C +_0805D7D8: .4byte gUnk_030010A0 + + thumb_func_start sub_0805D7DC +sub_0805D7DC: @ 0x0805D7DC + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xa] + movs r2, #2 + cmp r0, #0 + bne _0805D7EA + movs r2, #1 +_0805D7EA: + movs r0, #0 + strb r2, [r1, #0xc] + str r0, [r1, #0x20] + str r0, [r1, #0x24] + ldr r0, _0805D80C @ =gUnk_03000BF0 + ldrb r0, [r0, #4] + cmp r0, #0x78 + beq _0805D83C + cmp r0, #0x78 + bgt _0805D816 + cmp r0, #7 + beq _0805D828 + cmp r0, #7 + bgt _0805D810 + cmp r0, #3 + beq _0805D82C + b _0805D828 + .align 2, 0 +_0805D80C: .4byte gUnk_03000BF0 +_0805D810: + cmp r0, #0x38 + beq _0805D840 + b _0805D828 +_0805D816: + cmp r0, #0x81 + beq _0805D830 + cmp r0, #0x81 + bgt _0805D824 + cmp r0, #0x80 + beq _0805D834 + b _0805D828 +_0805D824: + cmp r0, #0x88 + beq _0805D838 +_0805D828: + movs r1, #0 + b _0805D842 +_0805D82C: + movs r1, #1 + b _0805D842 +_0805D830: + movs r1, #2 + b _0805D842 +_0805D834: + movs r1, #3 + b _0805D842 +_0805D838: + movs r1, #4 + b _0805D842 +_0805D83C: + movs r1, #5 + b _0805D842 +_0805D840: + movs r1, #6 +_0805D842: + ldr r0, _0805D854 @ =gUnk_08108D74 + adds r0, r1, r0 + ldrb r0, [r0] + bl sub_0801D7EC + ldr r1, _0805D858 @ =gUnk_03000F50 + ldr r0, _0805D85C @ =0x00001E04 + strh r0, [r1, #0x2c] + pop {pc} + .align 2, 0 +_0805D854: .4byte gUnk_08108D74 +_0805D858: .4byte gUnk_03000F50 +_0805D85C: .4byte 0x00001E04 + + thumb_func_start sub_0805D860 +sub_0805D860: @ 0x0805D860 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xd] + cmp r0, #1 + beq _0805D89C + cmp r0, #1 + bgt _0805D874 + cmp r0, #0 + beq _0805D87E + b _0805D8D6 +_0805D874: + cmp r0, #2 + beq _0805D8B0 + cmp r0, #3 + beq _0805D8C2 + b _0805D8D6 +_0805D87E: + movs r0, #1 + strb r0, [r1, #0xd] + movs r0, #0x80 + str r0, [r1, #0x20] + ldr r2, _0805D898 @ =gUnk_03000F50 + ldrh r1, [r2] + movs r3, #0x80 + lsls r3, r3, #4 + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2] + b _0805D8F4 + .align 2, 0 +_0805D898: .4byte gUnk_03000F50 +_0805D89C: + ldr r0, [r1, #0x20] + subs r0, #1 + str r0, [r1, #0x20] + cmp r0, #0x10 + bne _0805D8F4 + movs r0, #2 + strb r0, [r1, #0xd] + movs r0, #0x2d + strb r0, [r1, #0xe] + b _0805D8F4 +_0805D8B0: + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805D8F4 + movs r0, #3 + strb r0, [r1, #0xd] + b _0805D8F4 +_0805D8C2: + ldr r0, [r1, #0x20] + subs r0, #1 + str r0, [r1, #0x20] + cmp r0, #0 + bne _0805D8F4 + movs r0, #4 + strb r0, [r1, #0xd] + movs r0, #0x3c + strb r0, [r1, #0xe] + b _0805D8F4 +_0805D8D6: + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805D8F4 + bl sub_0801E104 + ldr r2, _0805D8F8 @ =gUnk_03000F50 + ldrh r1, [r2] + ldr r0, _0805D8FC @ =0x0000F7FF + ands r0, r1 + strh r0, [r2] + bl sub_0805E780 +_0805D8F4: + pop {pc} + .align 2, 0 +_0805D8F8: .4byte gUnk_03000F50 +_0805D8FC: .4byte 0x0000F7FF + + thumb_func_start sub_0805D900 +sub_0805D900: @ 0x0805D900 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xd] + cmp r0, #1 + beq _0805D938 + cmp r0, #1 + bgt _0805D914 + cmp r0, #0 + beq _0805D91A + b _0805D966 +_0805D914: + cmp r0, #2 + beq _0805D94E + b _0805D966 +_0805D91A: + movs r1, #1 + strb r1, [r2, #0xd] + movs r0, #0x2d + strb r0, [r2, #0xe] + str r1, [r2, #0x20] + ldr r2, _0805D934 @ =gUnk_03000F50 + ldrh r1, [r2] + movs r3, #0x80 + lsls r3, r3, #4 + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2] + b _0805D982 + .align 2, 0 +_0805D934: .4byte gUnk_03000F50 +_0805D938: + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805D982 + movs r0, #2 + strb r0, [r2, #0xd] + movs r0, #0x14 + strb r0, [r2, #0xe] + b _0805D982 +_0805D94E: + ldr r0, [r2, #0x20] + adds r0, #1 + str r0, [r2, #0x20] + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805D982 + movs r0, #3 + strb r0, [r2, #0xd] + b _0805D982 +_0805D966: + ldr r0, [r2, #0x20] + adds r0, #4 + str r0, [r2, #0x20] + cmp r0, #0x80 + bls _0805D982 + bl sub_0801E104 + ldr r2, _0805D984 @ =gUnk_03000F50 + ldrh r1, [r2] + ldr r0, _0805D988 @ =0x0000F7FF + ands r0, r1 + strh r0, [r2] + bl sub_0805E780 +_0805D982: + pop {pc} + .align 2, 0 +_0805D984: .4byte gUnk_03000F50 +_0805D988: .4byte 0x0000F7FF + + thumb_func_start sub_0805D98C +sub_0805D98C: @ 0x0805D98C + push {lr} + adds r2, r0, #0 + ldr r3, _0805D9D4 @ =gUnk_03000FF0 + ldrh r1, [r3] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0805D9A2 + ldr r0, [r2, #0x20] + subs r0, #1 + str r0, [r2, #0x20] +_0805D9A2: + ldrh r1, [r3] + movs r0, #0x80 + ands r0, r1 + adds r3, r1, #0 + cmp r0, #0 + beq _0805D9B4 + ldr r0, [r2, #0x20] + adds r0, #1 + str r0, [r2, #0x20] +_0805D9B4: + movs r0, #0x20 + ands r0, r3 + cmp r0, #0 + beq _0805D9C2 + ldr r0, [r2, #0x28] + subs r0, #1 + str r0, [r2, #0x28] +_0805D9C2: + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0805D9D0 + ldr r0, [r2, #0x28] + adds r0, #1 + str r0, [r2, #0x28] +_0805D9D0: + pop {pc} + .align 2, 0 +_0805D9D4: .4byte gUnk_03000FF0 + + thumb_func_start sub_0805D9D8 +sub_0805D9D8: @ 0x0805D9D8 + push {r4, lr} + ldr r4, [r0, #0x14] + cmp r4, #0 + beq _0805D9FC + ldr r3, _0805DA00 @ =gUnk_03000F50 + ldr r2, _0805DA04 @ =gUnk_03000BF0 + ldrh r1, [r4, #0x2e] + ldrh r0, [r2, #0xa] + subs r1, r1, r0 + movs r0, #0x80 + subs r0, r0, r1 + strh r0, [r3, #0x2e] + ldrh r1, [r4, #0x32] + ldrh r0, [r2, #0xc] + subs r1, r1, r0 + movs r0, #0x8c + subs r0, r0, r1 + strh r0, [r3, #0x30] +_0805D9FC: + pop {r4, pc} + .align 2, 0 +_0805DA00: .4byte gUnk_03000F50 +_0805DA04: .4byte gUnk_03000BF0 + + thumb_func_start sub_0805DA08 +sub_0805DA08: @ 0x0805DA08 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov sl, r0 + adds r5, r1, #0 + adds r6, r2, #0 + ldr r2, _0805DA78 @ =gUnk_03003DE4 + ldrb r1, [r2] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + ldr r1, _0805DA7C @ =gUnk_02017AA0 + adds r4, r0, r1 + movs r3, #0 + mov r8, r2 + mov sb, r1 + ldr r0, _0805DA80 @ =gUnk_080C9160 + mov ip, r0 + movs r2, #0xff + ldr r1, _0805DA84 @ =gUnk_03000F50 +_0805DA34: + adds r0, r6, r3 + adds r0, r0, r5 + ands r0, r2 + lsls r0, r0, #1 + add r0, ip + movs r7, #0 + ldrsh r0, [r0, r7] + mov r7, sl + muls r7, r0, r7 + adds r0, r7, #0 + lsrs r0, r0, #8 + ldrh r7, [r1, #0x2e] + adds r0, r0, r7 + strh r0, [r4] + adds r4, #2 + adds r3, #1 + adds r5, #0x17 + cmp r3, #0x9f + bls _0805DA34 + mov r0, r8 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + add r0, sb + ldr r1, _0805DA88 @ =0x0400001C + ldr r2, _0805DA8C @ =0xA2600001 + bl sub_0805622C + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0805DA78: .4byte gUnk_03003DE4 +_0805DA7C: .4byte gUnk_02017AA0 +_0805DA80: .4byte gUnk_080C9160 +_0805DA84: .4byte gUnk_03000F50 +_0805DA88: .4byte 0x0400001C +_0805DA8C: .4byte 0xA2600001 + + thumb_func_start sub_0805DA90 +sub_0805DA90: @ 0x0805DA90 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + bl sub_0805E8D4 + adds r1, r0, #0 + cmp r1, #0 + beq _0805DAB4 + movs r0, #9 + strb r0, [r1, #8] + movs r0, #0x32 + strb r0, [r1, #9] + strb r4, [r1, #0xa] + str r5, [r1, #0x14] + adds r0, r1, #0 + movs r1, #8 + bl sub_0805EA2C +_0805DAB4: + ldr r0, _0805DAD8 @ =gUnk_02033A90 + ldr r1, _0805DADC @ =0x0000088C + adds r4, r0, r1 + ldr r0, [r4] + cmp r0, #0 + beq _0805DAD4 + ldr r2, _0805DAE0 @ =gUnk_03000F50 + ldrh r1, [r2] + ldr r0, _0805DAE4 @ =0x0000F7FF + ands r0, r1 + strh r0, [r2] + bl sub_080528F0 + ldr r0, [r4] + bl sub_0805E900 +_0805DAD4: + pop {r4, r5, pc} + .align 2, 0 +_0805DAD8: .4byte gUnk_02033A90 +_0805DADC: .4byte 0x0000088C +_0805DAE0: .4byte gUnk_03000F50 +_0805DAE4: .4byte 0x0000F7FF + + thumb_func_start sub_0805DAE8 +sub_0805DAE8: @ 0x0805DAE8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r2, r0, #0 + ldr r5, _0805DB4C @ =gUnk_03000BF0 + ldrh r0, [r5, #6] + movs r1, #0xfc + lsls r1, r1, #1 + mov r8, r1 + add r0, r8 + ldr r3, _0805DB50 @ =gUnk_03001160 + movs r4, #0x2e + ldrsh r1, [r3, r4] + subs r0, r0, r1 + adds r4, r0, #0 + adds r4, #0x10 + ldrh r0, [r5, #8] + movs r7, #0xa0 + lsls r7, r7, #1 + adds r0, r0, r7 + movs r6, #0x32 + ldrsh r1, [r3, r6] + subs r0, r0, r1 + adds r0, #0x10 + ldrb r6, [r2, #0xc] + cmp r6, #0 + bne _0805DB58 + cmp r4, #0x1f + bhi _0805DB88 + cmp r0, #0x1f + bhi _0805DB88 + movs r0, #0x36 + ldrsh r1, [r3, r0] + movs r0, #0x18 + rsbs r0, r0, #0 + cmp r1, r0 + bge _0805DB88 + ldr r0, _0805DB54 @ =gUnk_03003F80 + adds r0, #0xa8 + ldrb r0, [r0] + cmp r0, #0x14 + bne _0805DB88 + adds r0, r6, #1 + strb r0, [r2, #0xc] + movs r0, #0x5a + strb r0, [r2, #0xe] + adds r0, #0xb0 + bl sub_080A3268 + b _0805DB88 + .align 2, 0 +_0805DB4C: .4byte gUnk_03000BF0 +_0805DB50: .4byte gUnk_03001160 +_0805DB54: .4byte gUnk_03003F80 +_0805DB58: + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805DB88 + movs r0, #0x96 + movs r1, #1 + movs r2, #0 + bl sub_080A2960 + adds r1, r0, #0 + cmp r1, #0 + beq _0805DB84 + ldrh r0, [r5, #6] + add r0, r8 + strh r0, [r1, #0x2e] + ldrh r0, [r5, #8] + adds r0, r0, r7 + strh r0, [r1, #0x32] + ldr r0, _0805DB90 @ =0x0000FFE8 + strh r0, [r1, #0x36] +_0805DB84: + bl sub_0805E780 +_0805DB88: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0805DB90: .4byte 0x0000FFE8 + + thumb_func_start sub_0805DB94 +sub_0805DB94: @ 0x0805DB94 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0805DBB0 @ =gUnk_08108D8C + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0805DBF0 + pop {r4, pc} + .align 2, 0 +_0805DBB0: .4byte gUnk_08108D8C + + thumb_func_start sub_0805DBB4 +sub_0805DBB4: @ 0x0805DBB4 + movs r1, #1 + strb r1, [r0, #0xc] + ldr r1, _0805DBC8 @ =gUnk_030010A0 + adds r1, #0x3d + ldrb r2, [r1] + lsls r1, r2, #4 + subs r1, r1, r2 + lsls r1, r1, #2 + strh r1, [r0, #0x20] + bx lr + .align 2, 0 +_0805DBC8: .4byte gUnk_030010A0 + + thumb_func_start sub_0805DBCC +sub_0805DBCC: @ 0x0805DBCC + push {lr} + adds r1, r0, #0 + ldr r0, [r1, #0x14] + ldr r0, [r0, #4] + cmp r0, #0 + bne _0805DBE6 + movs r0, #2 + strb r0, [r1, #0xc] + ldrh r0, [r1, #0x20] + ldr r2, _0805DBE8 @ =0x0000012D + cmp r0, r2 + bls _0805DBE6 + strh r2, [r1, #0x20] +_0805DBE6: + pop {pc} + .align 2, 0 +_0805DBE8: .4byte 0x0000012D + + thumb_func_start nullsub_498 +nullsub_498: @ 0x0805DBEC + bx lr + .align 2, 0 + + thumb_func_start sub_0805DBF0 +sub_0805DBF0: @ 0x0805DBF0 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x20] + subs r1, r0, #1 + strh r1, [r4, #0x20] + lsls r0, r1, #0x10 + cmp r0, #0 + bne _0805DC06 + bl sub_0805DC70 + b _0805DC6C +_0805DC06: + lsls r0, r1, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0x78 + bne _0805DC18 + movs r0, #0x78 + movs r1, #2 + bl sub_08080964 + b _0805DC36 +_0805DC18: + cmp r1, #0xd2 + bne _0805DC26 + movs r0, #0x5a + movs r1, #1 + bl sub_08080964 + b _0805DC36 +_0805DC26: + movs r0, #0x96 + lsls r0, r0, #1 + cmp r1, r0 + bne _0805DC36 + movs r0, #0x5a + movs r1, #0 + bl sub_08080964 +_0805DC36: + ldrh r1, [r4, #0x20] + adds r0, r1, #0 + cmp r0, #0x77 + bhi _0805DC42 + movs r0, #0xf + b _0805DC48 +_0805DC42: + cmp r0, #0xd1 + bhi _0805DC58 + movs r0, #0x1f +_0805DC48: + ands r0, r1 + cmp r0, #0 + bne _0805DC6C + movs r0, #0x93 + lsls r0, r0, #1 + bl sub_080A3268 + b _0805DC6C +_0805DC58: + cmp r0, #0xc7 + bhi _0805DC6C + movs r0, #0x3f + ands r0, r1 + cmp r0, #0 + bne _0805DC6C + movs r0, #0x93 + lsls r0, r0, #1 + bl sub_080A3268 +_0805DC6C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805DC70 +sub_0805DC70: @ 0x0805DC70 + push {lr} + bl sub_0805E5A8 + ldr r0, _0805DC80 @ =gUnk_0813AC48 + bl sub_08080840 + pop {pc} + .align 2, 0 +_0805DC80: .4byte gUnk_0813AC48 + + thumb_func_start sub_0805DC84 +sub_0805DC84: @ 0x0805DC84 + push {lr} + ldr r2, _0805DC98 @ =gUnk_08108D98 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805DC98: .4byte gUnk_08108D98 + + thumb_func_start sub_0805DC9C +sub_0805DC9C: @ 0x0805DC9C + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x3c] + bl sub_0807CBE4 + cmp r0, #0 + beq _0805DCAE + bl sub_0805E780 +_0805DCAE: + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _0805DCC2 + ldrh r0, [r4, #0x3c] + bl sub_0807CCC8 + bl sub_0805E780 +_0805DCC2: + movs r0, #1 + strb r0, [r4, #0xc] + pop {r4, pc} + + thumb_func_start sub_0805DCC8 +sub_0805DCC8: @ 0x0805DCC8 + push {r4, r5, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x3e] + bl sub_0807CBE4 + cmp r0, #0 + beq _0805DD1E + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x35 + ldrb r0, [r0] + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805DCEC + movs r0, #0x1e + strb r0, [r4, #0xe] +_0805DCEC: + ldr r5, _0805DD20 @ =gUnk_03000BF0 + ldr r0, [r5, #0x30] + str r0, [r4, #0x14] + movs r0, #0x69 + movs r1, #0 + movs r2, #0 + bl sub_080A2960 + adds r1, r0, #0 + cmp r1, #0 + beq _0805DD1E + ldrh r0, [r5, #6] + ldrh r2, [r4, #0x38] + adds r0, r0, r2 + strh r0, [r1, #0x2e] + ldrh r0, [r5, #8] + ldrh r2, [r4, #0x3a] + adds r0, r0, r2 + strh r0, [r1, #0x32] + str r1, [r4, #0x18] + str r1, [r5, #0x30] + adds r0, r1, #0 + movs r1, #0x1e + bl sub_0805E4E0 +_0805DD1E: + pop {r4, r5, pc} + .align 2, 0 +_0805DD20: .4byte gUnk_03000BF0 + + thumb_func_start sub_0805DD24 +sub_0805DD24: @ 0x0805DD24 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0 + movs r1, #8 + bl sub_0805E4E0 + ldr r0, _0805DD64 @ =gUnk_03000BF0 + ldrb r1, [r0, #0xf] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _0805DD60 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805DD60 + movs r0, #3 + strb r0, [r4, #0xc] + ldrh r0, [r4, #0x3c] + bl sub_0807CCC8 + adds r1, r4, #0 + adds r1, #0x36 + ldrb r0, [r1] + cmp r0, #0 + bne _0805DD60 + movs r0, #1 + strb r0, [r1] +_0805DD60: + pop {r4, pc} + .align 2, 0 +_0805DD64: .4byte gUnk_03000BF0 + + thumb_func_start sub_0805DD68 +sub_0805DD68: @ 0x0805DD68 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0 + movs r1, #8 + bl sub_0805E4E0 + adds r1, r4, #0 + adds r1, #0x36 + ldrb r0, [r1] + cmp r0, #0 + beq _0805DD94 + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805DDAE + ldr r1, _0805DD90 @ =gUnk_03000BF0 + ldr r0, [r4, #0x14] + str r0, [r1, #0x30] + b _0805DDAE + .align 2, 0 +_0805DD90: .4byte gUnk_03000BF0 +_0805DD94: + ldr r0, _0805DDB0 @ =gUnk_03000BF0 + ldrb r1, [r0, #0xf] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _0805DDAE + ldr r0, [r4, #0x18] + cmp r0, #0 + beq _0805DDAA + bl sub_0805E7BC +_0805DDAA: + bl sub_0805E780 +_0805DDAE: + pop {r4, pc} + .align 2, 0 +_0805DDB0: .4byte gUnk_03000BF0 + + thumb_func_start sub_0805DDB4 +sub_0805DDB4: @ 0x0805DDB4 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + lsls r0, r0, #2 + ldr r1, _0805DDE0 @ =gUnk_08108DA8 + adds r3, r0, r1 + ldrb r0, [r2, #0xc] + adds r1, r0, #0 + cmp r1, #0 + bne _0805DDCE + adds r0, #1 + strb r0, [r2, #0xc] + strb r1, [r2, #0xe] +_0805DDCE: + ldrb r0, [r2, #0xe] + cmp r0, #0 + bne _0805DDE4 + ldrh r0, [r3] + strb r0, [r2, #0xe] + ldrh r0, [r3, #2] + bl sub_080A3268 + b _0805DDE8 + .align 2, 0 +_0805DDE0: .4byte gUnk_08108DA8 +_0805DDE4: + subs r0, #1 + strb r0, [r2, #0xe] +_0805DDE8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0805DDEC +sub_0805DDEC: @ 0x0805DDEC + push {r4, r5, lr} + adds r5, r1, #0 + bl sub_0805E8D4 + adds r4, r0, #0 + cmp r4, #0 + beq _0805DE16 + movs r0, #9 + strb r0, [r4, #8] + movs r0, #0x36 + strb r0, [r4, #9] + ldr r0, [r5, #4] + strb r0, [r4, #0xa] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805EA2C + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 +_0805DE16: + pop {r4, r5, pc} + + thumb_func_start sub_0805DE18 +sub_0805DE18: @ 0x0805DE18 + push {lr} + sub sp, #4 + ldr r3, [r1, #4] + movs r0, #0 + str r0, [sp] + movs r0, #9 + movs r1, #0x36 + movs r2, #6 + bl sub_0805EB2C + cmp r0, #0 + beq _0805DE34 + bl sub_0805E79C +_0805DE34: + add sp, #4 + pop {pc} + + thumb_func_start sub_0805DE38 +sub_0805DE38: @ 0x0805DE38 + push {lr} + ldr r2, _0805DE4C @ =gUnk_08108DBC + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805DE4C: .4byte gUnk_08108DBC + + thumb_func_start sub_0805DE50 +sub_0805DE50: @ 0x0805DE50 + push {lr} + ldr r2, _0805DE64 @ =gUnk_08108DC4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805DE64: .4byte gUnk_08108DC4 + + thumb_func_start sub_0805DE68 +sub_0805DE68: @ 0x0805DE68 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x7b + bl sub_0807CBD0 + cmp r0, #0 + bne _0805DE7A + bl sub_0805E780 +_0805DE7A: + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r2, _0805DEAC @ =gUnk_030010A0 + adds r0, r2, #0 + adds r0, #0x38 + strb r1, [r0] + adds r1, r2, #0 + adds r1, #0x39 + movs r0, #0xf + strb r0, [r1] + adds r0, r2, #0 + adds r0, #0x3a + movs r1, #0x20 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + ldr r0, _0805DEB0 @ =gUnk_02002A40 + movs r1, #0x93 + lsls r1, r1, #3 + adds r0, r0, r1 + ldr r1, _0805DEB4 @ =0x00001194 + str r1, [r0] + pop {r4, pc} + .align 2, 0 +_0805DEAC: .4byte gUnk_030010A0 +_0805DEB0: .4byte gUnk_02002A40 +_0805DEB4: .4byte 0x00001194 + + thumb_func_start sub_0805DEB8 +sub_0805DEB8: @ 0x0805DEB8 + push {r4, r5, lr} + adds r3, r0, #0 + ldr r5, _0805DF44 @ =gUnk_03001160 + movs r0, #0x2e + ldrsh r2, [r5, r0] + subs r2, #0x88 + ldr r4, _0805DF48 @ =gUnk_03000BF0 + ldrh r0, [r4, #6] + subs r2, r2, r0 + movs r1, #0x32 + ldrsh r0, [r5, r1] + subs r0, #0x40 + ldrh r1, [r4, #8] + subs r0, r0, r1 + adds r1, r2, #0 + muls r1, r2, r1 + adds r2, r0, #0 + muls r2, r0, r2 + adds r0, r2, #0 + adds r1, r1, r0 + movs r0, #0x90 + lsls r0, r0, #4 + cmp r1, r0 + bgt _0805DF42 + movs r0, #0 + movs r1, #2 + strb r1, [r3, #0xc] + strb r0, [r3, #0xd] + movs r0, #0x78 + strb r0, [r3, #0xe] + movs r0, #2 + bl sub_08078A90 + bl sub_08078B48 + movs r0, #0x64 + movs r1, #0 + movs r2, #0 + bl sub_080A2960 + adds r2, r0, #0 + cmp r2, #0 + beq _0805DF1A + ldrh r0, [r4, #6] + adds r0, #0x88 + strh r0, [r2, #0x2e] + ldrh r0, [r4, #8] + adds r0, #0x48 + strh r0, [r2, #0x32] +_0805DF1A: + movs r2, #0x10 + rsbs r2, r2, #0 + adds r0, r5, #0 + movs r1, #8 + bl sub_080A2CFC + adds r2, r0, #0 + cmp r2, #0 + beq _0805DF3C + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] +_0805DF3C: + movs r0, #0x32 + bl sub_080A3268 +_0805DF42: + pop {r4, r5, pc} + .align 2, 0 +_0805DF44: .4byte gUnk_03001160 +_0805DF48: .4byte gUnk_03000BF0 + + thumb_func_start sub_0805DF4C +sub_0805DF4C: @ 0x0805DF4C + push {lr} + adds r1, r0, #0 + ldr r2, _0805DF70 @ =gUnk_03001160 + movs r0, #0 + strb r0, [r2, #0x14] + movs r3, #0x36 + ldrsh r0, [r2, r3] + cmp r0, #0 + beq _0805DF78 + movs r1, #0x32 + ldrsh r0, [r2, r1] + ldr r1, _0805DF74 @ =gUnk_03000BF0 + ldrh r1, [r1, #8] + adds r1, #0x48 + cmp r0, r1 + bge _0805DF92 + strh r1, [r2, #0x32] + b _0805DF92 + .align 2, 0 +_0805DF70: .4byte gUnk_03001160 +_0805DF74: .4byte gUnk_03000BF0 +_0805DF78: + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805DF92 + movs r0, #3 + strb r0, [r1, #0xc] + movs r0, #0x1e + strb r0, [r1, #0xe] + ldr r0, _0805DF94 @ =0x0000164F + bl sub_08056378 +_0805DF92: + pop {pc} + .align 2, 0 +_0805DF94: .4byte 0x0000164F + + thumb_func_start sub_0805DF98 +sub_0805DF98: @ 0x0805DF98 + push {lr} + adds r2, r0, #0 + ldr r0, _0805DFB4 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0805DFCA + ldrb r0, [r2, #0xe] + cmp r0, #0 + beq _0805DFB8 + subs r0, #1 + strb r0, [r2, #0xe] + b _0805DFCA + .align 2, 0 +_0805DFB4: .4byte gUnk_02000050 +_0805DFB8: + movs r0, #4 + strb r0, [r2, #0xc] + movs r0, #7 + movs r1, #4 + bl sub_08050054 + movs r0, #0xf6 + bl sub_080A3268 +_0805DFCA: + pop {pc} + + thumb_func_start sub_0805DFCC +sub_0805DFCC: @ 0x0805DFCC + push {lr} + ldr r0, _0805DFE4 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _0805DFE0 + movs r0, #0x1c + bl sub_0807CD80 + bl sub_0805E094 +_0805DFE0: + pop {pc} + .align 2, 0 +_0805DFE4: .4byte gUnk_03000FD0 + + thumb_func_start sub_0805DFE8 +sub_0805DFE8: @ 0x0805DFE8 + push {lr} + ldr r2, _0805DFFC @ =gUnk_08108DD8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805DFFC: .4byte gUnk_08108DD8 + + thumb_func_start sub_0805E000 +sub_0805E000: @ 0x0805E000 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r0, #0x51 + movs r1, #0 + bl sub_0804AA60 + adds r4, r0, #0 + cmp r4, #0 + beq _0805E062 + ldr r1, _0805E064 @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + adds r0, #0xb0 + strh r0, [r4, #0x2e] + ldrh r0, [r1, #8] + adds r0, #0x48 + strh r0, [r4, #0x32] + adds r0, r4, #0 + adds r0, #0x38 + movs r5, #1 + strb r5, [r0] + adds r0, r4, #0 + bl sub_08016A04 + ldr r0, _0805E068 @ =gUnk_030010A0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _0805E040 + bl sub_0805E780 +_0805E040: + str r4, [r6, #0x18] + strb r5, [r6, #0xc] + movs r0, #3 + bl sub_08078A90 + ldr r0, _0805E06C @ =gUnk_02033A90 + ldr r1, _0805E070 @ =0x00000864 + adds r0, r0, r1 + ldr r1, _0805E074 @ =0x80010000 + str r1, [r0] + movs r0, #6 + movs r1, #4 + bl sub_08050054 + movs r0, #0xf7 + bl sub_080A3268 +_0805E062: + pop {r4, r5, r6, pc} + .align 2, 0 +_0805E064: .4byte gUnk_03000BF0 +_0805E068: .4byte gUnk_030010A0 +_0805E06C: .4byte gUnk_02033A90 +_0805E070: .4byte 0x00000864 +_0805E074: .4byte 0x80010000 + + thumb_func_start sub_0805E078 +sub_0805E078: @ 0x0805E078 + push {lr} + adds r1, r0, #0 + ldr r0, _0805E090 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _0805E08E + ldr r1, [r1, #0x18] + movs r0, #1 + strb r0, [r1, #0xd] + bl sub_0805E780 +_0805E08E: + pop {pc} + .align 2, 0 +_0805E090: .4byte gUnk_03000FD0 + + thumb_func_start sub_0805E094 +sub_0805E094: @ 0x0805E094 + push {lr} + bl sub_0805E5A8 + ldr r0, _0805E0A4 @ =gUnk_0813AC34 + movs r1, #7 + bl sub_0808091C + pop {pc} + .align 2, 0 +_0805E0A4: .4byte gUnk_0813AC34 + + thumb_func_start sub_0805E0A8 +sub_0805E0A8: @ 0x0805E0A8 + push {lr} + ldr r2, _0805E0BC @ =gUnk_08108DE0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805E0BC: .4byte gUnk_08108DE0 + + thumb_func_start sub_0805E0C0 +sub_0805E0C0: @ 0x0805E0C0 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0 + movs r1, #1 + strb r1, [r5, #0xc] + strb r0, [r5, #0xe] + ldrb r0, [r5, #0xa] + bl sub_0804B128 + adds r4, r0, #0 + cmp r4, #0 + bne _0805E0EC + bl sub_0805E780 + b _0805E0EC +_0805E0DE: + adds r0, r4, #0 + adds r4, #0x10 + bl sub_0804ADF8 + str r5, [r0, #0x50] + movs r1, #0xff + strb r1, [r0, #0xe] +_0805E0EC: + ldrb r0, [r4] + cmp r0, #0xff + bne _0805E0DE + pop {r4, r5, pc} + + thumb_func_start sub_0805E0F4 +sub_0805E0F4: @ 0x0805E0F4 + movs r1, #0 + strb r1, [r0, #0xe] + bx lr + .align 2, 0 + + thumb_func_start sub_0805E0FC +sub_0805E0FC: @ 0x0805E0FC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0805E134 @ =gUnk_08108E28 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldr r0, _0805E138 @ =gUnk_03000BF0 + adds r1, r4, #0 + adds r1, #0x20 + ldrb r0, [r0, #5] + ldrb r1, [r1] + cmp r0, r1 + bne _0805E12A + ldr r0, _0805E13C @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + beq _0805E130 +_0805E12A: + adds r0, r4, #0 + bl sub_0805E1D8 +_0805E130: + pop {r4, pc} + .align 2, 0 +_0805E134: .4byte gUnk_08108E28 +_0805E138: .4byte gUnk_03000BF0 +_0805E13C: .4byte gUnk_02000050 + + thumb_func_start sub_0805E140 +sub_0805E140: @ 0x0805E140 + push {r4, lr} + ldrb r2, [r0, #0x10] + movs r1, #0x20 + orrs r1, r2 + strb r1, [r0, #0x10] + movs r1, #1 + strb r1, [r0, #0xc] + ldr r1, _0805E180 @ =gUnk_03000BF0 + ldrb r2, [r1, #5] + adds r1, r0, #0 + adds r1, #0x20 + strb r2, [r1] + movs r1, #0x78 + strb r1, [r0, #0xe] + movs r1, #0x3c + strb r1, [r0, #0xf] + movs r1, #7 + bl sub_0805E3A0 + ldr r1, _0805E184 @ =gUnk_08108DE8 + ldr r0, _0805E188 @ =gUnk_02033A90 + ldrb r0, [r0, #1] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r4, [r0] + bl sub_08052660 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_0805E1F8 + pop {r4, pc} + .align 2, 0 +_0805E180: .4byte gUnk_03000BF0 +_0805E184: .4byte gUnk_08108DE8 +_0805E188: .4byte gUnk_02033A90 + + thumb_func_start sub_0805E18C +sub_0805E18C: @ 0x0805E18C + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0805E1D0 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _0805E1CC + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _0805E1BA + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _0805E1BA + strb r0, [r4, #0xb] + ldr r0, _0805E1D4 @ =gUnk_03003F80 + adds r0, #0x8b + movs r1, #1 + strb r1, [r0] + bl sub_0805E5B4 +_0805E1BA: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0805E1CC + adds r0, r4, #0 + bl sub_0805E1D8 +_0805E1CC: + pop {r4, pc} + .align 2, 0 +_0805E1D0: .4byte gUnk_03000FD0 +_0805E1D4: .4byte gUnk_03003F80 + + thumb_func_start sub_0805E1D8 +sub_0805E1D8: @ 0x0805E1D8 + push {lr} + ldr r0, _0805E1F0 @ =gUnk_02034DF0 + movs r1, #0x80 + bl sub_0801D630 + ldr r1, _0805E1F4 @ =gUnk_03000F50 + movs r0, #1 + strh r0, [r1, #0xe] + bl sub_0805E780 + pop {pc} + .align 2, 0 +_0805E1F0: .4byte gUnk_02034DF0 +_0805E1F4: .4byte gUnk_03000F50 + + thumb_func_start sub_0805E1F8 +sub_0805E1F8: @ 0x0805E1F8 + push {r4, r5, lr} + sub sp, #0xc + adds r4, r0, #0 + adds r5, r1, #0 + ldr r0, _0805E234 @ =gUnk_02034DF0 + movs r1, #0x80 + bl sub_0801D630 + ldr r0, _0805E238 @ =gUnk_08108E60 + mov r1, sp + movs r2, #9 + bl sub_0801D66C + mov r1, sp + lsrs r0, r4, #8 + strb r0, [r1, #4] + mov r0, sp + strb r4, [r0, #5] + ldr r1, _0805E23C @ =gUnk_08108E48 + cmp r5, #0 + bne _0805E224 + ldr r1, _0805E240 @ =gUnk_08108E30 +_0805E224: + mov r0, sp + bl sub_0805F46C + ldr r1, _0805E244 @ =gUnk_03000F50 + movs r0, #1 + strh r0, [r1, #0xe] + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 +_0805E234: .4byte gUnk_02034DF0 +_0805E238: .4byte gUnk_08108E60 +_0805E23C: .4byte gUnk_08108E48 +_0805E240: .4byte gUnk_08108E30 +_0805E244: .4byte gUnk_03000F50 + + thumb_func_start sub_0805E248 +sub_0805E248: @ 0x0805E248 + push {r4, r5, lr} + ldr r0, _0805E2C8 @ =gUnk_03004030 + ldr r0, [r0] + ldrh r5, [r0, #6] + ldr r0, _0805E2CC @ =gUnk_03000BF0 + ldrb r0, [r0, #4] + cmp r0, #0xa + beq _0805E25C + cmp r0, #0x16 + bne _0805E2E8 +_0805E25C: + movs r0, #0x9f + lsls r0, r0, #2 + adds r4, r5, #0 + subs r4, #0x41 + adds r1, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r0, _0805E2D0 @ =0x00000283 + adds r1, r4, #0 + movs r2, #2 + bl sub_0807B314 + ldr r0, _0805E2D4 @ =0x0000027D + adds r4, #1 + adds r1, r4, #0 + movs r2, #1 + bl sub_0807B314 + movs r0, #0xa1 + lsls r0, r0, #2 + adds r1, r4, #0 + movs r2, #2 + bl sub_0807B314 + ldr r0, _0805E2D8 @ =0x0000027E + adds r4, #1 + adds r1, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r0, _0805E2DC @ =0x00000285 + adds r1, r4, #0 + movs r2, #2 + bl sub_0807B314 + ldr r0, _0805E2E0 @ =0x0000027F + subs r1, r5, #1 + movs r2, #1 + bl sub_0807B314 + movs r0, #0xa0 + lsls r0, r0, #2 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 + ldr r0, _0805E2E4 @ =0x00000282 + adds r1, r5, #1 + movs r2, #1 + bl sub_0807B314 + b _0805E350 + .align 2, 0 +_0805E2C8: .4byte gUnk_03004030 +_0805E2CC: .4byte gUnk_03000BF0 +_0805E2D0: .4byte 0x00000283 +_0805E2D4: .4byte 0x0000027D +_0805E2D8: .4byte 0x0000027E +_0805E2DC: .4byte 0x00000285 +_0805E2E0: .4byte 0x0000027F +_0805E2E4: .4byte 0x00000282 +_0805E2E8: + movs r0, #0x9b + lsls r0, r0, #2 + adds r4, r5, #0 + subs r4, #0x41 + adds r1, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r0, _0805E358 @ =0x00000273 + adds r1, r4, #0 + movs r2, #2 + bl sub_0807B314 + ldr r0, _0805E35C @ =0x0000026D + adds r4, #1 + adds r1, r4, #0 + movs r2, #1 + bl sub_0807B314 + movs r0, #0x9d + lsls r0, r0, #2 + adds r1, r4, #0 + movs r2, #2 + bl sub_0807B314 + ldr r0, _0805E360 @ =0x0000026E + adds r4, #1 + adds r1, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r0, _0805E364 @ =0x00000275 + adds r1, r4, #0 + movs r2, #2 + bl sub_0807B314 + ldr r0, _0805E368 @ =0x0000026F + subs r1, r5, #1 + movs r2, #1 + bl sub_0807B314 + movs r0, #0x9c + lsls r0, r0, #2 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 + ldr r0, _0805E36C @ =0x00000272 + adds r1, r5, #1 + movs r2, #1 + bl sub_0807B314 +_0805E350: + ldr r1, _0805E370 @ =gUnk_02000070 + movs r0, #0 + strb r0, [r1] + pop {r4, r5, pc} + .align 2, 0 +_0805E358: .4byte 0x00000273 +_0805E35C: .4byte 0x0000026D +_0805E360: .4byte 0x0000026E +_0805E364: .4byte 0x00000275 +_0805E368: .4byte 0x0000026F +_0805E36C: .4byte 0x00000272 +_0805E370: .4byte gUnk_02000070 + + thumb_func_start sub_0805E374 +sub_0805E374: @ 0x0805E374 + push {lr} + adds r2, r0, #0 + ldr r0, _0805E394 @ =gUnk_030010A0 + adds r0, #0x2c + ldrb r0, [r0] + ldr r1, _0805E398 @ =gUnk_081091F8 + cmp r0, #2 + beq _0805E386 + ldr r1, _0805E39C @ =gUnk_081091EE +_0805E386: + ldrb r0, [r2, #8] + adds r0, r1, r0 + ldrb r1, [r0] + adds r0, r2, #0 + bl sub_0805E3A0 + pop {pc} + .align 2, 0 +_0805E394: .4byte gUnk_030010A0 +_0805E398: .4byte gUnk_081091F8 +_0805E39C: .4byte gUnk_081091EE + + thumb_func_start sub_0805E3A0 +sub_0805E3A0: @ 0x0805E3A0 + movs r3, #0xf + adds r2, r1, #0 + ands r2, r3 + lsls r1, r1, #4 + orrs r1, r2 + strb r1, [r0, #0x11] + bx lr + .align 2, 0 + + thumb_func_start sub_0805E3B0 +sub_0805E3B0: @ 0x0805E3B0 + push {lr} + adds r3, r0, #0 + ldrb r1, [r3, #0x10] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0805E3C2 + movs r0, #1 + b _0805E404 +_0805E3C2: + ldrb r0, [r3, #0xc] + cmp r0, #0 + bne _0805E3CC + movs r0, #0 + b _0805E404 +_0805E3CC: + ldr r1, _0805E3DC @ =gUnk_03003DC0 + ldrb r0, [r1] + ldrb r2, [r1, #1] + cmp r0, r2 + bls _0805E3E0 + adds r2, r0, #0 + b _0805E3E2 + .align 2, 0 +_0805E3DC: .4byte gUnk_03003DC0 +_0805E3E0: + ldrb r2, [r1, #1] +_0805E3E2: + ldr r0, _0805E408 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + beq _0805E3F4 + cmp r2, #2 + bhs _0805E3F4 + movs r2, #2 +_0805E3F4: + movs r1, #0 + ldrb r0, [r3, #0x11] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + cmp r2, r0 + bls _0805E402 + movs r1, #1 +_0805E402: + adds r0, r1, #0 +_0805E404: + pop {pc} + .align 2, 0 +_0805E408: .4byte gUnk_02000050 + + thumb_func_start sub_0805E40C +sub_0805E40C: @ 0x0805E40C + push {lr} + ldr r1, _0805E424 @ =gUnk_03003DC0 + ldrb r0, [r1] + ldrb r2, [r1, #1] + cmp r0, r2 + bhi _0805E41A + ldrb r0, [r1, #1] +_0805E41A: + cmp r0, #0 + beq _0805E420 + movs r0, #1 +_0805E420: + pop {pc} + .align 2, 0 +_0805E424: .4byte gUnk_03003DC0 + + thumb_func_start sub_0805E428 +sub_0805E428: @ 0x0805E428 + push {lr} + bl sub_0805E524 + ldr r2, _0805E440 @ =gUnk_03003DC0 + ldrb r3, [r2, #2] + adds r1, r3, #0 + cmp r1, #0 + beq _0805E444 + movs r0, #0 + strb r3, [r2, #1] + strb r0, [r2, #2] + b _0805E44E + .align 2, 0 +_0805E440: .4byte gUnk_03003DC0 +_0805E444: + ldrb r0, [r2, #3] + cmp r0, #0 + beq _0805E44E + strb r1, [r2, #3] + strb r1, [r2, #1] +_0805E44E: + pop {pc} + + thumb_func_start sub_0805E450 +sub_0805E450: @ 0x0805E450 + push {lr} + ldr r1, _0805E464 @ =gUnk_03003DC0 + ldrb r2, [r1, #2] + cmp r0, r2 + blo _0805E460 + ldrb r2, [r1, #1] + cmp r0, r2 + bhs _0805E468 +_0805E460: + movs r0, #0 + b _0805E46C + .align 2, 0 +_0805E464: .4byte gUnk_03003DC0 +_0805E468: + strb r0, [r1, #2] + movs r0, #1 +_0805E46C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0805E470 +sub_0805E470: @ 0x0805E470 + ldr r1, _0805E478 @ =gUnk_03003DC0 + movs r0, #1 + strb r0, [r1, #3] + bx lr + .align 2, 0 +_0805E478: .4byte gUnk_03003DC0 + + thumb_func_start sub_0805E47C +sub_0805E47C: @ 0x0805E47C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x11] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x18 + movs r1, #2 + orrs r0, r1 + strb r0, [r4, #0x11] + movs r0, #2 + bl sub_0805E450 + cmp r0, #0 + beq _0805E49A + ldr r0, _0805E49C @ =gUnk_03003DC0 + str r4, [r0, #4] +_0805E49A: + pop {r4, pc} + .align 2, 0 +_0805E49C: .4byte gUnk_03003DC0 + + thumb_func_start sub_0805E4A0 +sub_0805E4A0: @ 0x0805E4A0 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + bl sub_08078A90 + ldrb r0, [r4, #0x11] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x18 + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x11] + movs r0, #1 + bl sub_0805E450 + cmp r0, #0 + beq _0805E4C4 + ldr r0, _0805E4C8 @ =gUnk_03003DC0 + str r4, [r0, #4] +_0805E4C4: + pop {r4, pc} + .align 2, 0 +_0805E4C8: .4byte gUnk_03003DC0 + + thumb_func_start sub_0805E4CC +sub_0805E4CC: @ 0x0805E4CC + push {r4, lr} + adds r4, r0, #0 + movs r0, #0 + bl sub_08078A90 + adds r0, r4, #0 + bl sub_0805E584 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805E4E0 +sub_0805E4E0: @ 0x0805E4E0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + cmp r4, #0 + beq _0805E4F6 + ldrb r0, [r4, #0x11] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x18 + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x11] +_0805E4F6: + movs r0, #1 + bl sub_0805E450 + cmp r0, #0 + beq _0805E504 + ldr r0, _0805E50C @ =gUnk_03003DC0 + str r4, [r0, #4] +_0805E504: + adds r0, r5, #0 + bl sub_0805E510 + pop {r4, r5, pc} + .align 2, 0 +_0805E50C: .4byte gUnk_03003DC0 + + thumb_func_start sub_0805E510 +sub_0805E510: @ 0x0805E510 + push {lr} + adds r1, r0, #0 + ldr r2, _0805E520 @ =gUnk_03003DC0 + ldrh r0, [r2, #8] + cmp r0, r1 + bhs _0805E51E + strh r1, [r2, #8] +_0805E51E: + pop {pc} + .align 2, 0 +_0805E520: .4byte gUnk_03003DC0 + + thumb_func_start sub_0805E524 +sub_0805E524: @ 0x0805E524 + push {lr} + ldr r1, _0805E540 @ =gUnk_03003DC0 + ldrh r0, [r1, #8] + cmp r0, #0 + beq _0805E53C + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0805E53C + bl sub_0805E470 +_0805E53C: + pop {pc} + .align 2, 0 +_0805E540: .4byte gUnk_03003DC0 + + thumb_func_start sub_0805E544 +sub_0805E544: @ 0x0805E544 + ldr r1, _0805E55C @ =gUnk_03003DC0 + movs r3, #6 + movs r0, #6 + strb r0, [r1] + ldr r2, _0805E560 @ =gUnk_03001160 + ldrb r1, [r2, #0x11] + subs r0, #0x16 + ands r0, r1 + orrs r0, r3 + strb r0, [r2, #0x11] + bx lr + .align 2, 0 +_0805E55C: .4byte gUnk_03003DC0 +_0805E560: .4byte gUnk_03001160 + + thumb_func_start sub_0805E564 +sub_0805E564: @ 0x0805E564 + ldr r1, _0805E57C @ =gUnk_03003DC0 + movs r0, #0 + strb r0, [r1] + ldr r2, _0805E580 @ =gUnk_03001160 + ldrb r1, [r2, #0x11] + subs r0, #0x10 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x11] + bx lr + .align 2, 0 +_0805E57C: .4byte gUnk_03003DC0 +_0805E580: .4byte gUnk_03001160 + + thumb_func_start sub_0805E584 +sub_0805E584: @ 0x0805E584 + push {lr} + ldrb r2, [r0, #0x11] + lsrs r3, r2, #4 + movs r1, #0x10 + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r3 + strb r1, [r0, #0x11] + bl sub_0805E470 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0805E59C +sub_0805E59C: @ 0x0805E59C + ldr r1, _0805E5A4 @ =gUnk_03003DC0 + movs r0, #6 + strb r0, [r1] + bx lr + .align 2, 0 +_0805E5A4: .4byte gUnk_03003DC0 + + thumb_func_start sub_0805E5A8 +sub_0805E5A8: @ 0x0805E5A8 + ldr r1, _0805E5B0 @ =gUnk_03003DC0 + movs r0, #7 + strb r0, [r1] + bx lr + .align 2, 0 +_0805E5B0: .4byte gUnk_03003DC0 + + thumb_func_start sub_0805E5B4 +sub_0805E5B4: @ 0x0805E5B4 + ldr r1, _0805E5BC @ =gUnk_03003DC0 + movs r0, #0 + strb r0, [r1] + bx lr + .align 2, 0 +_0805E5BC: .4byte gUnk_03003DC0 + + thumb_func_start sub_0805E5C0 +sub_0805E5C0: @ 0x0805E5C0 + push {lr} + ldr r0, _0805E5F0 @ =gUnk_02034350 + ldrb r1, [r0, #4] + movs r2, #0 + strb r1, [r0, #5] + strb r2, [r0, #4] + bl sub_0805ED30 + bl sub_0805E428 + bl sub_080175E8 + bl sub_0806F0A4 + ldr r1, _0805E5F4 @ =gUnk_03005F40 + movs r0, #0 + bl _call_via_r1 + bl sub_0805E84C + bl sub_0805EE88 + pop {pc} + .align 2, 0 +_0805E5F0: .4byte gUnk_02034350 +_0805E5F4: .4byte gUnk_03005F40 + + thumb_func_start sub_0805E5F8 +sub_0805E5F8: @ 0x0805E5F8 + push {lr} + ldr r1, _0805E608 @ =gUnk_03005F40 + movs r0, #1 + bl _call_via_r1 + bl sub_0805E84C + pop {pc} + .align 2, 0 +_0805E608: .4byte gUnk_03005F40 + + thumb_func_start sub_0805E60C +sub_0805E60C: @ 0x0805E60C + push {lr} + bl sub_0805E89C + ldr r0, _0805E654 @ =gUnk_03003DC0 + movs r1, #0xc + bl sub_0801D630 + ldr r0, _0805E658 @ =gUnk_03001160 + movs r1, #0xaa + lsls r1, r1, #6 + bl sub_0801D630 + ldr r0, _0805E65C @ =gUnk_02033290 + movs r1, #0x80 + lsls r1, r1, #4 + bl sub_0801D630 + bl sub_0805E98C + ldr r0, _0805E660 @ =gUnk_03003DBC + movs r1, #0 + strb r1, [r0] + ldr r0, _0805E664 @ =gUnk_020354B4 + strb r1, [r0] + ldr r1, _0805E668 @ =gUnk_03000000 + ldr r2, _0805E66C @ =0x00000427 + adds r0, r1, r2 + movs r2, #1 + strb r2, [r0] + ldr r3, _0805E670 @ =0x00000426 + adds r0, r1, r3 + strb r2, [r0] + ldr r0, _0805E674 @ =0x0000042E + adds r1, r1, r0 + strb r2, [r1] + pop {pc} + .align 2, 0 +_0805E654: .4byte gUnk_03003DC0 +_0805E658: .4byte gUnk_03001160 +_0805E65C: .4byte gUnk_02033290 +_0805E660: .4byte gUnk_03003DBC +_0805E664: .4byte gUnk_020354B4 +_0805E668: .4byte gUnk_03000000 +_0805E66C: .4byte 0x00000427 +_0805E670: .4byte 0x00000426 +_0805E674: .4byte 0x0000042E + + thumb_func_start sub_0805E678 +sub_0805E678: @ 0x0805E678 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r0, _0805E698 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x46 + bhi _0805E6A6 + ldr r4, _0805E69C @ =gUnk_030015A0 + movs r0, #0x99 + lsls r0, r0, #6 + adds r1, r4, r0 +_0805E68E: + ldr r0, [r4] + cmp r0, #0 + bne _0805E6A0 + adds r0, r4, #0 + b _0805E730 + .align 2, 0 +_0805E698: .4byte gUnk_03003DBC +_0805E69C: .4byte gUnk_030015A0 +_0805E6A0: + adds r4, #0x88 + cmp r4, r1 + blo _0805E68E +_0805E6A6: + ldr r4, _0805E6CC @ =gUnk_03001160 +_0805E6A8: + ldr r0, [r4] + cmp r0, #0 + bge _0805E6D4 + ldrb r1, [r4, #0x10] + movs r0, #0xc + ands r0, r1 + cmp r0, #0 + beq _0805E6D4 + ldr r0, _0805E6D0 @ =gUnk_03003DD0 + ldr r0, [r0, #8] + cmp r4, r0 + beq _0805E6D4 + adds r0, r4, #0 + bl sub_0805E870 + adds r0, r4, #0 + b _0805E730 + .align 2, 0 +_0805E6CC: .4byte gUnk_03001160 +_0805E6D0: .4byte gUnk_03003DD0 +_0805E6D4: + adds r4, #0x88 + ldr r0, _0805E738 @ =gUnk_03003BE0 + cmp r4, r0 + blo _0805E6A8 + movs r0, #0 + mov ip, r0 + movs r5, #0 + ldr r2, _0805E73C @ =gUnk_03003D70 + movs r0, #0x48 + adds r0, r0, r2 + mov r8, r0 +_0805E6EA: + ldr r4, [r2, #4] + adds r3, r2, #0 + adds r3, #8 + cmp r4, r2 + beq _0805E718 + movs r7, #0x1c + ldr r6, _0805E740 @ =gUnk_03003DD0 +_0805E6F8: + ldrb r0, [r4, #8] + cmp r0, #9 + beq _0805E712 + ldrb r0, [r4, #0x10] + adds r1, r7, #0 + ands r1, r0 + cmp ip, r1 + bhs _0805E712 + ldr r0, [r6, #8] + cmp r0, r4 + beq _0805E712 + mov ip, r1 + adds r5, r4, #0 +_0805E712: + ldr r4, [r4, #4] + cmp r4, r2 + bne _0805E6F8 +_0805E718: + adds r2, r3, #0 + cmp r2, r8 + blo _0805E6EA + cmp r5, #0 + beq _0805E72E + adds r0, r5, #0 + bl sub_0805E7BC + adds r0, r5, #0 + bl sub_0805E870 +_0805E72E: + adds r0, r5, #0 +_0805E730: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0805E738: .4byte gUnk_03003BE0 +_0805E73C: .4byte gUnk_03003D70 +_0805E740: .4byte gUnk_03003DD0 + + thumb_func_start sub_0805E744 +sub_0805E744: @ 0x0805E744 + push {lr} + ldr r1, _0805E760 @ =gUnk_030011E8 + movs r0, #0xee + lsls r0, r0, #2 + adds r2, r1, r0 +_0805E74E: + ldr r0, [r1] + cmp r0, #0 + beq _0805E764 + adds r1, #0x88 + cmp r1, r2 + blo _0805E74E + movs r0, #0 + b _0805E766 + .align 2, 0 +_0805E760: .4byte gUnk_030011E8 +_0805E764: + adds r0, r1, #0 +_0805E766: + pop {pc} + + thumb_func_start sub_0805E768 +sub_0805E768: @ 0x0805E768 + push {lr} + ldr r1, _0805E778 @ =sub_0805E678 + cmp r0, #9 + bne _0805E772 + ldr r1, _0805E77C @ =sub_0805E8D4 +_0805E772: + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805E778: .4byte sub_0805E678 +_0805E77C: .4byte sub_0805E8D4 + + thumb_func_start sub_0805E780 +sub_0805E780: @ 0x0805E780 + push {lr} + ldr r0, _0805E794 @ =gUnk_03003DD0 + ldr r0, [r0, #8] + bl sub_0805E79C + ldr r0, _0805E798 @ =gUnk_03005F24 + bl _call_via_r0 + pop {pc} + .align 2, 0 +_0805E794: .4byte gUnk_03003DD0 +_0805E798: .4byte gUnk_03005F24 + + thumb_func_start sub_0805E79C +sub_0805E79C: @ 0x0805E79C + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #8] + ldr r2, _0805E7B4 @ =sub_0805E7BC + cmp r0, #9 + bne _0805E7AA + ldr r2, _0805E7B8 @ =sub_0805E900 +_0805E7AA: + adds r0, r1, #0 + bl _call_via_r2 + pop {pc} + .align 2, 0 +_0805E7B4: .4byte sub_0805E7BC +_0805E7B8: .4byte sub_0805E900 + + thumb_func_start sub_0805E7BC +sub_0805E7BC: @ 0x0805E7BC + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, [r4, #4] + cmp r0, #0 + beq _0805E84A + adds r0, r4, #0 + bl sub_080AE068 + adds r0, r4, #0 + bl sub_0801D230 + adds r0, r4, #0 + bl sub_0806FE84 + adds r0, r4, #0 + bl sub_080788E0 + adds r0, r4, #0 + bl sub_08078954 + adds r0, r4, #0 + bl sub_0805EC60 + adds r0, r4, #0 + bl sub_08017744 + adds r0, r4, #0 + bl sub_0805E92C + adds r0, r4, #0 + bl sub_0807DB08 + adds r0, r4, #0 + bl sub_0806FBEC + ldr r0, [r4, #0x64] + bl sub_0801DA0C + movs r5, #0 + str r5, [r4, #0x64] + ldrb r0, [r4, #8] + cmp r0, #3 + bne _0805E818 + adds r0, r4, #0 + bl sub_0804AA1C +_0805E818: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x3c + strb r5, [r0] + adds r0, #5 + strb r5, [r0] + adds r0, #1 + strb r5, [r0] + adds r0, #3 + strb r5, [r0] + adds r0, r4, #0 + bl sub_0805EA98 + str r5, [r4, #4] + movs r0, #1 + rsbs r0, r0, #0 + str r0, [r4] +_0805E84A: + pop {r4, r5, pc} + + thumb_func_start sub_0805E84C +sub_0805E84C: @ 0x0805E84C + push {r4, r5, lr} + ldr r4, _0805E86C @ =gUnk_03001160 + movs r0, #0xaa + lsls r0, r0, #6 + adds r5, r4, r0 +_0805E856: + ldr r0, [r4] + cmp r0, #0 + bge _0805E862 + adds r0, r4, #0 + bl sub_0805E870 +_0805E862: + adds r4, #0x88 + cmp r4, r5 + blo _0805E856 + pop {r4, r5, pc} + .align 2, 0 +_0805E86C: .4byte gUnk_03001160 + + thumb_func_start sub_0805E870 +sub_0805E870: @ 0x0805E870 + sub sp, #4 + movs r1, #0 + str r1, [sp] + ldr r1, _0805E890 @ =0x040000D4 + mov r2, sp + str r2, [r1] + str r0, [r1, #4] + ldr r0, _0805E894 @ =0x85000022 + str r0, [r1, #8] + ldr r0, [r1, #8] + ldr r1, _0805E898 @ =gUnk_03003DBC + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + add sp, #4 + bx lr + .align 2, 0 +_0805E890: .4byte 0x040000D4 +_0805E894: .4byte 0x85000022 +_0805E898: .4byte gUnk_03003DBC + + thumb_func_start sub_0805E89C +sub_0805E89C: @ 0x0805E89C + push {r4, r5, r6, lr} + ldr r5, _0805E8CC @ =gUnk_03003D70 + ldr r0, [r5, #4] + cmp r0, #0 + beq _0805E8C8 +_0805E8A6: + ldr r0, [r5, #4] + adds r6, r5, #0 + adds r6, #8 + cmp r0, r5 + beq _0805E8BC +_0805E8B0: + ldr r4, [r0, #4] + bl sub_0805E79C + adds r0, r4, #0 + cmp r0, r5 + bne _0805E8B0 +_0805E8BC: + adds r5, r6, #0 + ldr r0, _0805E8D0 @ =gUnk_03003DB8 + cmp r5, r0 + blo _0805E8A6 + bl sub_0805E84C +_0805E8C8: + pop {r4, r5, r6, pc} + .align 2, 0 +_0805E8CC: .4byte gUnk_03003D70 +_0805E8D0: .4byte gUnk_03003DB8 + + thumb_func_start sub_0805E8D4 +sub_0805E8D4: @ 0x0805E8D4 + push {lr} + ldr r1, _0805E8F0 @ =gUnk_02033290 + movs r2, #0x80 + lsls r2, r2, #4 + adds r0, r1, r2 + cmp r1, r0 + bhs _0805E8FA + adds r2, r0, #0 +_0805E8E4: + ldr r0, [r1] + cmp r0, #0 + bne _0805E8F4 + adds r0, r1, #0 + b _0805E8FC + .align 2, 0 +_0805E8F0: .4byte gUnk_02033290 +_0805E8F4: + adds r1, #0x40 + cmp r1, r2 + blo _0805E8E4 +_0805E8FA: + movs r0, #0 +_0805E8FC: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0805E900 +sub_0805E900: @ 0x0805E900 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #4] + cmp r0, #0 + beq _0805E926 + adds r0, r4, #0 + bl sub_0805E92C + adds r0, r4, #0 + bl sub_0805EA98 + adds r0, r4, #0 + movs r1, #0x40 + bl sub_0801D630 + ldr r1, _0805E928 @ =gUnk_020354B4 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] +_0805E926: + pop {r4, pc} + .align 2, 0 +_0805E928: .4byte gUnk_020354B4 + + thumb_func_start sub_0805E92C +sub_0805E92C: @ 0x0805E92C + push {lr} + ldr r2, _0805E94C @ =gUnk_02033A90 + ldr r1, _0805E950 @ =0x00000888 + adds r3, r2, r1 + ldr r1, [r3] + cmp r0, r1 + bne _0805E94A + movs r0, #0 + str r0, [r3] + ldr r3, _0805E954 @ =0x0000088C + adds r1, r2, r3 + str r0, [r1] + adds r3, #4 + adds r1, r2, r3 + str r0, [r1] +_0805E94A: + pop {pc} + .align 2, 0 +_0805E94C: .4byte gUnk_02033A90 +_0805E950: .4byte 0x00000888 +_0805E954: .4byte 0x0000088C + + thumb_func_start sub_0805E958 +sub_0805E958: @ 0x0805E958 + push {lr} + ldr r0, _0805E96C @ =gUnk_03003D70 + ldr r1, _0805E970 @ =gUnk_020369F0 + movs r2, #0x48 + bl sub_0801D66C + bl sub_0805E98C + pop {pc} + .align 2, 0 +_0805E96C: .4byte gUnk_03003D70 +_0805E970: .4byte gUnk_020369F0 + + thumb_func_start sub_0805E974 +sub_0805E974: @ 0x0805E974 + push {lr} + ldr r0, _0805E984 @ =gUnk_020369F0 + ldr r1, _0805E988 @ =gUnk_03003D70 + movs r2, #0x48 + bl sub_0801D66C + pop {pc} + .align 2, 0 +_0805E984: .4byte gUnk_020369F0 +_0805E988: .4byte gUnk_03003D70 + + thumb_func_start sub_0805E98C +sub_0805E98C: @ 0x0805E98C + push {lr} + ldr r0, _0805E9A4 @ =gUnk_03003D70 + adds r1, r0, #0 + adds r1, #0x48 + cmp r0, r1 + bhs _0805E9A2 +_0805E998: + str r0, [r0] + str r0, [r0, #4] + adds r0, #8 + cmp r0, r1 + blo _0805E998 +_0805E9A2: + pop {pc} + .align 2, 0 +_0805E9A4: .4byte gUnk_03003D70 + + thumb_func_start sub_0805E9A8 +sub_0805E9A8: @ 0x0805E9A8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r3, _0805E9F0 @ =gUnk_03003D70 + movs r7, #0x10 + movs r0, #0x48 + adds r0, r0, r3 + mov r8, r0 +_0805E9B8: + ldr r2, [r3, #4] + adds r4, r3, #0 + adds r4, #8 + cmp r2, r3 + beq _0805E9E2 + movs r6, #0xfd + movs r5, #0x20 +_0805E9C6: + ldrb r0, [r2, #0x10] + adds r1, r6, #0 + ands r1, r0 + strb r1, [r2, #0x10] + adds r0, r1, #0 + ands r0, r5 + cmp r0, #0 + bne _0805E9DC + adds r0, r1, #0 + orrs r0, r7 + strb r0, [r2, #0x10] +_0805E9DC: + ldr r2, [r2, #4] + cmp r2, r3 + bne _0805E9C6 +_0805E9E2: + adds r3, r4, #0 + cmp r3, r8 + blo _0805E9B8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0805E9F0: .4byte gUnk_03003D70 + + thumb_func_start sub_0805E9F4 +sub_0805E9F4: @ 0x0805E9F4 + push {r4, r5, r6, lr} + ldr r5, _0805EA24 @ =gUnk_03003D70 +_0805E9F8: + ldr r2, [r5, #4] + adds r6, r5, #0 + adds r6, #8 + cmp r2, r5 + beq _0805EA1A +_0805EA02: + ldr r4, [r2, #4] + ldrb r1, [r2, #0x10] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0805EA14 + adds r0, r2, #0 + bl sub_0805E79C +_0805EA14: + adds r2, r4, #0 + cmp r2, r5 + bne _0805EA02 +_0805EA1A: + adds r5, r6, #0 + ldr r0, _0805EA28 @ =gUnk_03003DB8 + cmp r5, r0 + blo _0805E9F8 + pop {r4, r5, r6, pc} + .align 2, 0 +_0805EA24: .4byte gUnk_03003D70 +_0805EA28: .4byte gUnk_03003DB8 + + thumb_func_start sub_0805EA2C +sub_0805EA2C: @ 0x0805EA2C + push {lr} + adds r2, r0, #0 + lsls r1, r1, #3 + ldr r0, _0805EA5C @ =gUnk_03003D70 + adds r1, r1, r0 + str r1, [r2, #4] + ldr r0, [r1] + str r0, [r2] + str r2, [r0, #4] + str r2, [r1] + ldrb r0, [r2, #8] + cmp r0, #9 + beq _0805EA64 + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r3] + ldr r1, _0805EA60 @ =gUnk_03003DBC + b _0805EA66 + .align 2, 0 +_0805EA5C: .4byte gUnk_03003D70 +_0805EA60: .4byte gUnk_03003DBC +_0805EA64: + ldr r1, _0805EA74 @ =gUnk_020354B4 +_0805EA66: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + adds r0, r2, #0 + bl sub_0805E374 + pop {pc} + .align 2, 0 +_0805EA74: .4byte gUnk_020354B4 + + thumb_func_start sub_0805EA78 +sub_0805EA78: @ 0x0805EA78 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + bl sub_0805EA98 + lsls r4, r4, #3 + ldr r0, _0805EA94 @ =gUnk_03003D70 + adds r4, r4, r0 + str r4, [r5] + ldr r0, [r4, #4] + str r0, [r5, #4] + str r5, [r0] + str r5, [r4, #4] + pop {r4, r5, pc} + .align 2, 0 +_0805EA94: .4byte gUnk_03003D70 + + thumb_func_start sub_0805EA98 +sub_0805EA98: @ 0x0805EA98 + push {lr} + adds r2, r0, #0 + ldr r1, _0805EAB8 @ =gUnk_03003DD0 + ldr r0, [r1, #8] + cmp r2, r0 + bne _0805EAA8 + ldr r0, [r2] + str r0, [r1, #8] +_0805EAA8: + ldr r1, [r2] + ldr r0, [r2, #4] + str r0, [r1, #4] + ldr r1, [r2, #4] + ldr r0, [r2] + str r0, [r1] + pop {pc} + .align 2, 0 +_0805EAB8: .4byte gUnk_03003DD0 + + thumb_func_start sub_0805EABC +sub_0805EABC: @ 0x0805EABC + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + ldr r4, _0805EAE8 @ =gUnk_03003D70 + adds r7, r4, #0 + adds r7, #0x48 +_0805EAC6: + ldr r3, [r4, #4] + cmp r3, r4 + beq _0805EAF6 + ldr r5, _0805EAEC @ =0x0000FFFF +_0805EACE: + cmp r3, r6 + beq _0805EAF0 + ldrh r0, [r3, #8] + ldrh r2, [r6, #8] + adds r1, r5, #0 + ands r1, r0 + adds r0, r5, #0 + ands r0, r2 + cmp r1, r0 + bne _0805EAF0 + movs r0, #1 + b _0805EAFE + .align 2, 0 +_0805EAE8: .4byte gUnk_03003D70 +_0805EAEC: .4byte 0x0000FFFF +_0805EAF0: + ldr r3, [r3, #4] + cmp r3, r4 + bne _0805EACE +_0805EAF6: + adds r4, #8 + cmp r4, r7 + blo _0805EAC6 + movs r0, #0 +_0805EAFE: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0805EB00 +sub_0805EB00: @ 0x0805EB00 + push {r4, lr} + adds r3, r0, #0 + lsls r2, r2, #3 + ldr r0, _0805EB28 @ =gUnk_03003D70 + adds r2, r2, r0 + ldr r0, [r2, #4] + cmp r0, r2 + beq _0805EB22 +_0805EB10: + ldrb r4, [r0, #8] + cmp r3, r4 + bne _0805EB1C + ldrb r4, [r0, #9] + cmp r1, r4 + beq _0805EB24 +_0805EB1C: + ldr r0, [r0, #4] + cmp r0, r2 + bne _0805EB10 +_0805EB22: + movs r0, #0 +_0805EB24: + pop {r4, pc} + .align 2, 0 +_0805EB28: .4byte gUnk_03003D70 + + thumb_func_start sub_0805EB2C +sub_0805EB2C: @ 0x0805EB2C + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r5, [sp, #0x10] + lsls r2, r2, #3 + ldr r0, _0805EB60 @ =gUnk_03003D70 + adds r2, r2, r0 + ldr r0, [r2, #4] + cmp r0, r2 + beq _0805EB5C +_0805EB3E: + ldrb r6, [r0, #8] + cmp r4, r6 + bne _0805EB56 + ldrb r6, [r0, #9] + cmp r1, r6 + bne _0805EB56 + ldrb r6, [r0, #0xa] + cmp r3, r6 + bne _0805EB56 + ldrb r6, [r0, #0xb] + cmp r5, r6 + beq _0805EB5E +_0805EB56: + ldr r0, [r0, #4] + cmp r0, r2 + bne _0805EB3E +_0805EB5C: + movs r0, #0 +_0805EB5E: + pop {r4, r5, r6, pc} + .align 2, 0 +_0805EB60: .4byte gUnk_03003D70 + + thumb_func_start sub_0805EB64 +sub_0805EB64: @ 0x0805EB64 + push {r4, r5, lr} + adds r4, r0, #0 + lsls r1, r1, #3 + ldr r0, _0805EB88 @ =gUnk_03003D70 + adds r3, r1, r0 + ldr r2, [r4, #4] + cmp r2, r3 + beq _0805EB96 + ldr r5, _0805EB8C @ =0x0000FFFF + ldrh r4, [r4, #8] +_0805EB78: + ldrh r1, [r2, #8] + adds r0, r5, #0 + ands r0, r1 + cmp r0, r4 + bne _0805EB90 + adds r0, r2, #0 + b _0805EB98 + .align 2, 0 +_0805EB88: .4byte gUnk_03003D70 +_0805EB8C: .4byte 0x0000FFFF +_0805EB90: + ldr r2, [r2, #4] + cmp r2, r3 + bne _0805EB78 +_0805EB96: + movs r0, #0 +_0805EB98: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0805EB9C +sub_0805EB9C: @ 0x0805EB9C + push {r4, r5, lr} + adds r3, r0, #0 + ldr r2, _0805EBC8 @ =gUnk_03003D70 + adds r4, r2, #0 + adds r4, #0x48 +_0805EBA6: + ldr r0, [r2, #4] + cmp r0, r2 + beq _0805EBBE +_0805EBAC: + ldrb r5, [r0, #8] + cmp r3, r5 + bne _0805EBB8 + ldrb r5, [r0, #9] + cmp r1, r5 + beq _0805EBC6 +_0805EBB8: + ldr r0, [r0, #4] + cmp r0, r2 + bne _0805EBAC +_0805EBBE: + adds r2, #8 + cmp r2, r4 + blo _0805EBA6 + movs r0, #0 +_0805EBC6: + pop {r4, r5, pc} + .align 2, 0 +_0805EBC8: .4byte gUnk_03003D70 + + thumb_func_start sub_0805EBCC +sub_0805EBCC: @ 0x0805EBCC + push {r4, r5, r6, lr} + ldr r5, _0805EBFC @ =gUnk_03003D70 +_0805EBD0: + ldr r1, [r5, #4] + adds r6, r5, #0 + adds r6, #8 + cmp r1, r5 + beq _0805EBEE +_0805EBDA: + ldr r4, [r1, #4] + ldrb r0, [r1, #8] + cmp r0, #3 + bne _0805EBE8 + adds r0, r1, #0 + bl sub_0805E7BC +_0805EBE8: + adds r1, r4, #0 + cmp r1, r5 + bne _0805EBDA +_0805EBEE: + adds r5, r6, #0 + ldr r0, _0805EC00 @ =gUnk_03003DB8 + cmp r5, r0 + blo _0805EBD0 + bl sub_0805E84C + pop {r4, r5, r6, pc} + .align 2, 0 +_0805EBFC: .4byte gUnk_03003D70 +_0805EC00: .4byte gUnk_03003DB8 + + thumb_func_start sub_0805EC04 +sub_0805EC04: @ 0x0805EC04 + push {r4, r5, r6, r7, lr} + adds r3, r0, #0 + movs r2, #1 + ldr r0, _0805EC4C @ =gUnk_03000000 + movs r5, #1 + movs r6, #0x3f + rsbs r6, r6, #0 + movs r7, #4 + rsbs r7, r7, #0 + adds r4, r0, #0 + adds r4, #8 +_0805EC1A: + ldr r0, _0805EC50 @ =0x00000426 + adds r1, r4, r0 + ldrb r0, [r1] + cmp r0, #0 + bne _0805EC54 + strb r5, [r1] + movs r0, #0x1f + ands r2, r0 + lsls r2, r2, #1 + ldrb r1, [r3, #0x1b] + adds r0, r6, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r3, #0x1b] + ldrb r2, [r3, #0x19] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + orrs r1, r5 + adds r0, r7, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x19] + movs r0, #1 + b _0805EC5E + .align 2, 0 +_0805EC4C: .4byte gUnk_03000000 +_0805EC50: .4byte 0x00000426 +_0805EC54: + adds r4, #8 + adds r2, #1 + cmp r2, #0x1f + bls _0805EC1A + movs r0, #0 +_0805EC5E: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0805EC60 +sub_0805EC60: @ 0x0805EC60 + push {lr} + adds r3, r0, #0 + ldrb r1, [r3, #0x19] + lsls r0, r1, #0x1e + cmp r0, #0 + beq _0805EC90 + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r3, #0x19] + ldrb r2, [r3, #0x1b] + lsls r1, r2, #0x1a + lsrs r1, r1, #0x1b + movs r0, #0x3f + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r3, #0x1b] + ldr r0, _0805EC94 @ =gUnk_03000000 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _0805EC98 @ =0x00000426 + adds r1, r1, r0 + movs r0, #0 + strb r0, [r1] +_0805EC90: + pop {pc} + .align 2, 0 +_0805EC94: .4byte gUnk_03000000 +_0805EC98: .4byte 0x00000426 + + thumb_func_start sub_0805EC9C +sub_0805EC9C: @ 0x0805EC9C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + adds r7, r3, #0 + ldrb r0, [r4, #0x1b] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + cmp r0, #0 + bne _0805ECBE + adds r0, r4, #0 + bl sub_0805EC04 + cmp r0, #0 + bne _0805ECBE + movs r0, #0 + b _0805ECE0 +_0805ECBE: + ldr r1, _0805ECE4 @ =gUnk_03000000 + ldr r0, _0805ECE8 @ =0x00000427 + adds r2, r1, r0 + movs r0, #1 + strb r0, [r2] + ldrb r0, [r4, #0x1b] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + lsls r0, r0, #3 + movs r2, #0x84 + lsls r2, r2, #3 + adds r1, r1, r2 + adds r0, r0, r1 + strh r5, [r0] + strh r6, [r0, #2] + strh r7, [r0, #4] + movs r0, #1 +_0805ECE0: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0805ECE4: .4byte gUnk_03000000 +_0805ECE8: .4byte 0x00000427 + + thumb_func_start sub_0805ECEC +sub_0805ECEC: @ 0x0805ECEC + push {r4, r5, r6, lr} + ldr r5, _0805ED0C @ =gUnk_03000000 + ldr r4, _0805ED10 @ =0x00000427 + adds r6, r5, r4 + movs r4, #1 + strb r4, [r6] + lsls r0, r0, #3 + movs r4, #0x84 + lsls r4, r4, #3 + adds r5, r5, r4 + adds r0, r0, r5 + strh r1, [r0] + strh r2, [r0, #2] + strh r3, [r0, #4] + pop {r4, r5, r6, pc} + .align 2, 0 +_0805ED0C: .4byte gUnk_03000000 +_0805ED10: .4byte 0x00000427 + + thumb_func_start sub_0805ED14 +sub_0805ED14: @ 0x0805ED14 + ldr r2, _0805ED2C @ =gUnk_03003F80 + adds r1, r2, #0 + adds r1, #0x9c + str r0, [r1] + adds r0, r2, #0 + adds r0, #0x98 + movs r1, #0 + strh r1, [r0] + adds r0, #2 + strh r1, [r0] + bx lr + .align 2, 0 +_0805ED2C: .4byte gUnk_03003F80 + + thumb_func_start sub_0805ED30 +sub_0805ED30: @ 0x0805ED30 + push {r4, lr} + ldr r2, _0805ED50 @ =gUnk_03003F80 + adds r0, r2, #0 + adds r0, #0x9c + ldr r0, [r0] + adds r4, r2, #0 + cmp r0, #0 + beq _0805ED88 + adds r1, r4, #0 + adds r1, #0x90 + ldr r2, [r1, #0xc] + ldrh r0, [r1, #8] + cmp r0, #0 + bne _0805ED7E + movs r4, #0 + b _0805ED62 + .align 2, 0 +_0805ED50: .4byte gUnk_03003F80 +_0805ED54: + cmp r0, #2 + beq _0805ED5E + strh r3, [r1, #8] + ldrh r0, [r2, #2] + strh r0, [r1, #0xa] +_0805ED5E: + adds r2, #4 + b _0805ED7C +_0805ED62: + ldrh r3, [r2] + lsrs r0, r3, #0xe + cmp r0, #1 + bne _0805ED72 + movs r3, #2 + ldrsh r0, [r2, r3] + adds r2, r2, r0 + b _0805ED62 +_0805ED72: + cmp r0, #3 + bne _0805ED54 + strh r4, [r1, #8] + strh r4, [r1, #0xa] + movs r2, #0 +_0805ED7C: + str r2, [r1, #0xc] +_0805ED7E: + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + ldrh r1, [r1, #0xa] + b _0805EDCA +_0805ED88: + adds r0, r4, #0 + adds r0, #0x8b + ldrb r0, [r0] + cmp r0, #3 + bgt _0805ED98 + cmp r0, #0 + blt _0805ED98 + movs r1, #0 +_0805ED98: + adds r2, r4, #0 + adds r2, #0x8b + ldrb r0, [r2] + cmp r0, #1 + beq _0805EDB4 + cmp r0, #1 + bgt _0805EDAC + cmp r0, #0 + beq _0805EDC6 + b _0805EDCA +_0805EDAC: + cmp r0, #3 + bgt _0805EDCA + movs r1, #0 + b _0805EDCA +_0805EDB4: + movs r0, #0 + strb r0, [r2] + ldr r0, _0805EDF8 @ =gUnk_03000FF0 + ldrh r0, [r0] + bl sub_0805EE04 + adds r1, r4, #0 + adds r1, #0x90 + strh r0, [r1] +_0805EDC6: + ldr r0, _0805EDF8 @ =gUnk_03000FF0 + ldrh r1, [r0] +_0805EDCA: + adds r0, r1, #0 + bl sub_0805EE04 + ldr r3, _0805EDFC @ =gUnk_03003F80 + adds r1, r3, #0 + adds r1, #0x90 + ldrh r2, [r1] + strh r0, [r1] + adds r1, r0, #0 + bics r1, r2 + adds r2, r3, #0 + adds r2, #0x92 + strh r1, [r2] + ldr r2, _0805EE00 @ =gUnk_08109202 + movs r1, #0xf0 + lsls r1, r1, #4 + ands r1, r0 + lsrs r1, r1, #8 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r3, #0xd] + pop {r4, pc} + .align 2, 0 +_0805EDF8: .4byte gUnk_03000FF0 +_0805EDFC: .4byte gUnk_03003F80 +_0805EE00: .4byte gUnk_08109202 + + thumb_func_start sub_0805EE04 +sub_0805EE04: @ 0x0805EE04 + push {r4, r5, lr} + adds r2, r0, #0 + movs r5, #0x80 + lsls r5, r5, #2 + ands r0, r5 + rsbs r0, r0, #0 + asrs r1, r0, #0x1f + movs r0, #0x80 + lsls r0, r0, #5 + ands r1, r0 + movs r4, #0x80 + lsls r4, r4, #1 + adds r0, r2, #0 + ands r0, r4 + cmp r0, #0 + beq _0805EE32 + movs r0, #0x20 + orrs r1, r0 + movs r0, #0x80 + lsls r0, r0, #8 + orrs r1, r0 + movs r0, #0x80 + orrs r1, r0 +_0805EE32: + movs r0, #1 + ands r0, r2 + cmp r0, #0 + beq _0805EE42 + movs r0, #8 + orrs r1, r0 + movs r0, #0x41 + orrs r1, r0 +_0805EE42: + movs r3, #2 + adds r0, r2, #0 + ands r0, r3 + cmp r0, #0 + beq _0805EE52 + movs r0, #0x10 + orrs r1, r0 + orrs r1, r3 +_0805EE52: + movs r0, #0x10 + ands r0, r2 + cmp r0, #0 + beq _0805EE5C + orrs r1, r4 +_0805EE5C: + movs r0, #0x20 + ands r0, r2 + cmp r0, #0 + beq _0805EE66 + orrs r1, r5 +_0805EE66: + movs r0, #0x40 + ands r0, r2 + cmp r0, #0 + beq _0805EE74 + movs r0, #0x80 + lsls r0, r0, #3 + orrs r1, r0 +_0805EE74: + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + beq _0805EE82 + movs r0, #0x80 + lsls r0, r0, #4 + orrs r1, r0 +_0805EE82: + adds r0, r1, #0 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0805EE88 +sub_0805EE88: @ 0x0805EE88 + push {lr} + ldr r1, _0805EEB0 @ =gUnk_030010A0 + adds r0, r1, #0 + adds r0, #0x2f + ldrb r0, [r0] + cmp r0, #0 + beq _0805EEAC + ldr r1, [r1] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _0805EEAC + movs r0, #0xc + ands r1, r0 + lsrs r0, r1, #2 + adds r0, #0x2f + bl sub_0801D714 +_0805EEAC: + pop {pc} + .align 2, 0 +_0805EEB0: .4byte gUnk_030010A0 + + thumb_func_start sub_0805EEB4 +sub_0805EEB4: @ 0x0805EEB4 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r3, r1, #0 + strh r3, [r7, #8] + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r1, [r0, #7] + cmp r1, #1 + bls _0805EED6 + lsrs r0, r3, #8 + cmp r0, #1 + bne _0805EED6 + movs r0, #0x8c + lsls r0, r0, #1 + cmp r3, r0 + bhi _0805EED6 + movs r1, #3 +_0805EED6: + ldr r0, _0805EF14 @ =gUnk_08109214 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r2, [r1] + lsrs r0, r3, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x16 + adds r0, r0, r2 + ldr r4, [r0] + adds r2, r2, r4 + lsls r0, r3, #0x18 + lsrs r0, r0, #0x16 + adds r0, r0, r2 + ldr r4, [r0] + ldr r0, [r1] + ldr r1, [r0] + lsrs r1, r1, #2 + ldr r0, [r2] + lsrs r6, r0, #2 + movs r5, #0 + ldrh r3, [r7, #8] + lsrs r0, r3, #8 + cmp r0, r1 + bhs _0805EF0E + lsls r0, r3, #0x18 + lsrs r0, r0, #0x18 + cmp r0, r6 + blo _0805EF18 +_0805EF0E: + movs r5, #1 + b _0805EF22 + .align 2, 0 +_0805EF14: .4byte gUnk_08109214 +_0805EF18: + adds r0, r2, r4 + ldrb r0, [r0] + cmp r0, #0 + bne _0805EF22 + movs r5, #2 +_0805EF22: + cmp r5, #2 + bhi _0805EF2E + cmp r5, #1 + blo _0805EF2E + ldr r2, _0805EF3C @ =gUnk_08109244 + movs r4, #0 +_0805EF2E: + adds r2, r2, r4 + adds r0, r7, #0 + adds r1, r2, #0 + bl sub_0805EF40 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0805EF3C: .4byte gUnk_08109244 + + thumb_func_start sub_0805EF40 +sub_0805EF40: @ 0x0805EF40 + push {r4, lr} + adds r3, r0, #0 + adds r4, r1, #0 + ldrb r2, [r3] + movs r0, #1 + ands r0, r2 + cmp r0, #0 + beq _0805EF70 + lsls r1, r2, #0x1b + lsrs r0, r1, #0x1c + cmp r0, #6 + bls _0805EF5C + movs r0, #0 + b _0805EF8A +_0805EF5C: + lsrs r0, r1, #0x1c + adds r0, #1 + movs r1, #0xf + ands r0, r1 + lsls r0, r0, #1 + movs r1, #0x1f + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3] +_0805EF70: + ldrb r0, [r3] + lsls r0, r0, #0x1b + lsrs r0, r0, #0x1c + lsls r0, r0, #2 + adds r1, r3, #0 + adds r1, #0x10 + adds r1, r1, r0 + str r4, [r1] + ldrb r0, [r3] + movs r1, #1 + orrs r0, r1 + strb r0, [r3] + movs r0, #1 +_0805EF8A: + pop {r4, pc} + + thumb_func_start sub_0805EF8C +sub_0805EF8C: @ 0x0805EF8C + push {lr} + adds r2, r0, #0 + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0805EFAE + lsls r0, r1, #0x1b + lsrs r0, r0, #0x1c + lsls r0, r0, #2 + adds r2, #0x10 + adds r2, r2, r0 + ldr r1, [r2] + ldrb r0, [r1] + adds r1, #1 + str r1, [r2] + b _0805EFB0 +_0805EFAE: + movs r0, #0 +_0805EFB0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0805EFB4 +sub_0805EFB4: @ 0x0805EFB4 + push {r4, lr} + adds r3, r0, #0 + ldrb r2, [r3] + lsls r1, r2, #0x1b + lsrs r4, r1, #0x1c + movs r0, #0x1e + ands r0, r2 + cmp r0, #0 + beq _0805EFDC + adds r0, r4, #0 + subs r0, #1 + movs r1, #0xf + ands r0, r1 + lsls r0, r0, #1 + movs r1, #0x1f + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3] + b _0805EFE4 +_0805EFDC: + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r3] +_0805EFE4: + adds r0, r4, #0 + pop {r4, pc} + + thumb_func_start sub_0805EFE8 +sub_0805EFE8: @ 0x0805EFE8 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 +_0805EFEC: + adds r0, r6, #0 + bl sub_0805EF8C + adds r5, r0, #0 + strb r5, [r6, #1] + movs r7, #0 + cmp r5, #0xf + bls _0805EFFE + b _0805F22C +_0805EFFE: + lsls r0, r5, #2 + ldr r1, _0805F008 @ =_0805F00C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0805F008: .4byte _0805F00C +_0805F00C: @ jump table + .4byte _0805F04C @ case 0 + .4byte _0805F058 @ case 1 + .4byte _0805F06E @ case 2 + .4byte _0805F07A @ case 3 + .4byte _0805F090 @ case 4 + .4byte _0805F130 @ case 5 + .4byte _0805F150 @ case 6 + .4byte _0805F196 @ case 7 + .4byte _0805F1C0 @ case 8 + .4byte _0805F1CC @ case 9 + .4byte _0805F1D8 @ case 10 + .4byte _0805F1DC @ case 11 + .4byte _0805F1EC @ case 12 + .4byte _0805F1FC @ case 13 + .4byte _0805F20C @ case 14 + .4byte _0805F21C @ case 15 +_0805F04C: + adds r0, r6, #0 + bl sub_0805EFB4 + adds r7, r0, #0 + movs r5, #0 + b _0805F232 +_0805F058: + adds r0, r6, #0 + bl sub_0805EF8C + adds r4, r0, #0 + strh r4, [r6, #2] + movs r5, #6 + cmp r4, #0xa + bls _0805F06A + b _0805F232 +_0805F06A: + movs r5, #5 + b _0805F232 +_0805F06E: + adds r0, r6, #0 + bl sub_0805EF8C + strh r0, [r6, #2] + movs r5, #7 + b _0805F232 +_0805F07A: + adds r0, r6, #0 + bl sub_0805EF8C + lsls r4, r0, #8 + adds r0, r6, #0 + bl sub_0805EF8C + adds r4, r4, r0 + strh r4, [r6, #2] + movs r5, #8 + b _0805F232 +_0805F090: + adds r0, r6, #0 + bl sub_0805EF8C + adds r4, r0, #0 + cmp r4, #0x15 + bhi _0805F12C + lsls r0, r4, #2 + ldr r1, _0805F0A8 @ =_0805F0AC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0805F0A8: .4byte _0805F0AC +_0805F0AC: @ jump table + .4byte _0805F104 @ case 0 + .4byte _0805F104 @ case 1 + .4byte _0805F104 @ case 2 + .4byte _0805F104 @ case 3 + .4byte _0805F104 @ case 4 + .4byte _0805F104 @ case 5 + .4byte _0805F104 @ case 6 + .4byte _0805F104 @ case 7 + .4byte _0805F104 @ case 8 + .4byte _0805F104 @ case 9 + .4byte _0805F104 @ case 10 + .4byte _0805F104 @ case 11 + .4byte _0805F104 @ case 12 + .4byte _0805F104 @ case 13 + .4byte _0805F104 @ case 14 + .4byte _0805F104 @ case 15 + .4byte _0805F108 @ case 16 + .4byte _0805F114 @ case 17 + .4byte _0805F118 @ case 18 + .4byte _0805F11C @ case 19 + .4byte _0805F120 @ case 20 + .4byte _0805F120 @ case 21 +_0805F104: + movs r5, #9 + b _0805F12C +_0805F108: + adds r0, r6, #0 + bl sub_0805EF8C + adds r4, r0, #0 + movs r5, #0xa + b _0805F12C +_0805F114: + movs r5, #2 + b _0805F12C +_0805F118: + movs r5, #3 + b _0805F12C +_0805F11C: + movs r5, #4 + b _0805F12C +_0805F120: + movs r5, #0xb + movs r1, #0x14 + eors r1, r4 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r4, r0, #0x1f +_0805F12C: + strh r4, [r6, #2] + b _0805F232 +_0805F130: + adds r0, r6, #0 + bl sub_0805EF8C + adds r4, r0, #0 + cmp r4, #0xff + bne _0805F140 + movs r4, #0 + b _0805F14A +_0805F140: + lsls r4, r4, #8 + adds r0, r6, #0 + bl sub_0805EF8C + adds r4, r4, r0 +_0805F14A: + strh r4, [r6, #6] + movs r5, #0xc + b _0805F232 +_0805F150: + adds r0, r6, #0 + bl sub_0805EF8C + adds r4, r0, #0 + cmp r4, #4 + bls _0805F162 + cmp r4, #5 + beq _0805F17C + b _0805EFEC +_0805F162: + ldr r1, [r6, #0xc] + cmp r1, #0 + bne _0805F16A + ldr r1, _0805F178 @ =gUnk_08109230 +_0805F16A: + lsls r0, r4, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r6, #0 + bl sub_0805EF40 + b _0805EFEC + .align 2, 0 +_0805F178: .4byte gUnk_08109230 +_0805F17C: + adds r0, r6, #0 + bl sub_0805EF8C + lsls r4, r0, #8 + adds r0, r6, #0 + bl sub_0805EF8C + adds r4, r4, r0 + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0805EEB4 + b _0805EFEC +_0805F196: + adds r0, r6, #0 + bl sub_0805EF8C + lsls r4, r0, #8 + adds r0, r6, #0 + bl sub_0805EF8C + adds r4, r4, r0 + ldrb r1, [r6] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x1f + rsbs r1, r1, #0 + ands r0, r1 + strb r0, [r6] + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0805EEB4 + b _0805EFEC +_0805F1C0: + adds r0, r6, #0 + bl sub_0805EF8C + strh r0, [r6, #2] + movs r5, #0xd + b _0805F232 +_0805F1CC: + adds r0, r6, #0 + bl sub_0805EF8C + strh r0, [r6, #2] + movs r5, #0xe + b _0805F232 +_0805F1D8: + movs r5, #1 + b _0805F232 +_0805F1DC: + adds r0, r6, #0 + bl sub_0805EF8C + adds r5, r0, #0 + movs r0, #0x80 + lsls r0, r0, #3 + orrs r5, r0 + b _0805F232 +_0805F1EC: + adds r0, r6, #0 + bl sub_0805EF8C + adds r5, r0, #0 + movs r0, #0xe0 + lsls r0, r0, #3 + orrs r5, r0 + b _0805F232 +_0805F1FC: + adds r0, r6, #0 + bl sub_0805EF8C + adds r5, r0, #0 + movs r0, #0xa0 + lsls r0, r0, #3 + orrs r5, r0 + b _0805F232 +_0805F20C: + adds r0, r6, #0 + bl sub_0805EF8C + adds r5, r0, #0 + movs r0, #0xc0 + lsls r0, r0, #3 + orrs r5, r0 + b _0805F232 +_0805F21C: + adds r0, r6, #0 + bl sub_0805EF8C + adds r5, r0, #0 + movs r0, #0xc0 + lsls r0, r0, #2 + orrs r5, r0 + b _0805F232 +_0805F22C: + movs r0, #0x80 + lsls r0, r0, #1 + adds r5, r5, r0 +_0805F232: + cmp r7, #0 + beq _0805F238 + b _0805EFEC +_0805F238: + lsrs r0, r5, #8 + cmp r0, #0 + beq _0805F256 + ldrb r0, [r6] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x1e + cmp r0, #0 + beq _0805F254 + cmp r0, #1 + bne _0805F254 + adds r0, r5, #0 + bl sub_0805F9A0 + adds r5, r0, #0 +_0805F254: + strh r5, [r6, #4] +_0805F256: + adds r0, r5, #0 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0805F25C +sub_0805F25C: @ 0x0805F25C + push {lr} + adds r2, r0, #0 + lsrs r3, r2, #8 + movs r0, #0xf + ands r3, r0 + movs r0, #0xff + ands r2, r0 + cmp r3, #8 + bhi _0805F2B6 + lsls r0, r3, #2 + ldr r1, _0805F278 @ =_0805F27C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0805F278: .4byte _0805F27C +_0805F27C: @ jump table + .4byte _0805F2A0 @ case 0 + .4byte _0805F2A0 @ case 1 + .4byte _0805F2B6 @ case 2 + .4byte _0805F2B6 @ case 3 + .4byte _0805F2B6 @ case 4 + .4byte _0805F2B4 @ case 5 + .4byte _0805F2B4 @ case 6 + .4byte _0805F2B4 @ case 7 + .4byte _0805F2B4 @ case 8 +_0805F2A0: + cmp r2, #0x7f + bls _0805F2B6 + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + cmp r0, #0 + beq _0805F2B6 + subs r2, #0x80 + movs r3, #2 + b _0805F2B6 +_0805F2B4: + lsls r2, r2, #1 +_0805F2B6: + ldr r1, _0805F2C4 @ =gUnk_08109248 + lsls r0, r3, #2 + adds r0, r0, r1 + lsls r1, r2, #6 + ldr r0, [r0] + adds r0, r0, r1 + pop {pc} + .align 2, 0 +_0805F2C4: .4byte gUnk_08109248 + + thumb_func_start sub_0805F2C8 +sub_0805F2C8: @ 0x0805F2C8 + push {r4, r5, lr} + movs r1, #0 + ldr r4, _0805F2EC @ =gUnk_02036540 + adds r5, r4, #0 +_0805F2D0: + ldrb r0, [r4] + lsls r0, r0, #0x1f + cmp r0, #0 + bne _0805F2F0 + adds r0, r5, #0 + movs r1, #0xc + bl sub_0801D630 + ldrb r0, [r4] + movs r1, #1 + orrs r0, r1 + strb r0, [r4] + adds r0, r5, #0 + b _0805F2FC + .align 2, 0 +_0805F2EC: .4byte gUnk_02036540 +_0805F2F0: + adds r4, #0xc + adds r5, #0xc + adds r1, #1 + cmp r1, #3 + bls _0805F2D0 + movs r0, #0 +_0805F2FC: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0805F300 +sub_0805F300: @ 0x0805F300 + push {lr} + adds r2, r0, #0 + movs r1, #0 + ldr r0, _0805F314 @ =gUnk_02036540 +_0805F308: + cmp r0, r2 + bne _0805F318 + movs r1, #0xc + bl sub_0801D630 + b _0805F320 + .align 2, 0 +_0805F314: .4byte gUnk_02036540 +_0805F318: + adds r0, #0xc + adds r1, #1 + cmp r1, #3 + bls _0805F308 +_0805F320: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0805F324 +sub_0805F324: @ 0x0805F324 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x38 + adds r7, r1, #0 + mov r1, sp + movs r2, #0x30 + bl sub_0801D66C + movs r0, #0 + str r0, [sp, #0x34] + movs r1, #0 + str r1, [sp, #0x30] + mov sl, r1 + mov r8, r1 + b _0805F34C +_0805F348: + cmp r6, #0 + beq _0805F41E +_0805F34C: + movs r5, #0 + movs r2, #1 + mov sb, r2 +_0805F352: + mov r0, sp + bl sub_0805EFE8 + adds r6, r0, #0 + cmp r6, #0xe + bhi _0805F3B4 + lsls r0, r6, #2 + ldr r1, _0805F368 @ =_0805F36C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0805F368: .4byte _0805F36C +_0805F36C: @ jump table + .4byte _0805F402 @ case 0 + .4byte _0805F402 @ case 1 + .4byte _0805F3FC @ case 2 + .4byte _0805F3FC @ case 3 + .4byte _0805F3FC @ case 4 + .4byte _0805F3FC @ case 5 + .4byte _0805F3FC @ case 6 + .4byte _0805F3FC @ case 7 + .4byte _0805F3FC @ case 8 + .4byte _0805F3FC @ case 9 + .4byte _0805F3FC @ case 10 + .4byte _0805F3AC @ case 11 + .4byte _0805F3A8 @ case 12 + .4byte _0805F3FC @ case 13 + .4byte _0805F3FC @ case 14 +_0805F3A8: + adds r5, #8 + b _0805F3FC +_0805F3AC: + mov r0, sp + ldrh r0, [r0, #2] + mov r8, r0 + b _0805F3FC +_0805F3B4: + mov r0, r8 + cmp r0, #0 + bne _0805F3DE + adds r0, r6, #0 + bl sub_0805F25C + adds r4, r0, #0 + lsrs r0, r6, #8 + cmp r0, #4 + bls _0805F3D2 + ldr r0, [r4, #0x40] + bl sub_0805F7A0 + lsrs r0, r0, #8 + adds r5, r5, r0 +_0805F3D2: + ldr r0, [r4] + bl sub_0805F7A0 + lsrs r0, r0, #8 + adds r5, r5, r0 + b _0805F3EA +_0805F3DE: + lsrs r0, r6, #8 + cmp r0, #4 + bls _0805F3E8 + adds r5, #0x10 + b _0805F3EA +_0805F3E8: + adds r5, #8 +_0805F3EA: + mov r0, sp + ldrb r1, [r0] + movs r0, #0x60 + ands r0, r1 + cmp r0, #0x20 + bne _0805F3FC + cmp r5, #1 + bls _0805F3FC + subs r5, #1 +_0805F3FC: + mov r1, sb + cmp r1, #0 + bne _0805F352 +_0805F402: + cmp r5, sl + bls _0805F408 + mov sl, r5 +_0805F408: + cmp r5, #0 + beq _0805F414 + ldr r2, [sp, #0x30] + adds r2, #1 + str r2, [sp, #0x30] + b _0805F41A +_0805F414: + ldr r0, [sp, #0x34] + adds r0, #1 + str r0, [sp, #0x34] +_0805F41A: + cmp r7, #0 + bne _0805F348 +_0805F41E: + cmp r7, #0 + bne _0805F426 + mov r0, sl + b _0805F434 +_0805F426: + ldr r1, [sp, #0x34] + lsls r0, r1, #0x18 + ldr r2, [sp, #0x30] + lsls r1, r2, #0x10 + orrs r0, r1 + mov r1, sl + orrs r0, r1 +_0805F434: + add sp, #0x38 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0805F440 +sub_0805F440: @ 0x0805F440 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r1, #0x30 + bl sub_0801D630 + ldr r0, _0805F45C @ =0x0000FFFF + cmp r5, r0 + bls _0805F460 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0805EF40 + b _0805F468 + .align 2, 0 +_0805F45C: .4byte 0x0000FFFF +_0805F460: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0805EEB4 +_0805F468: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0805F46C +sub_0805F46C: @ 0x0805F46C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x48 + adds r6, r0, #0 + adds r5, r1, #0 + bl sub_0805F2C8 + mov r8, r0 + cmp r0, #0 + bne _0805F486 + b _0805F5BC +_0805F486: + add r4, sp, #0x30 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0x18 + bl sub_0801D66C + mov r0, sp + adds r1, r6, #0 + bl sub_0805F440 + mov r3, sp + ldrb r0, [r4, #0x17] + movs r1, #3 + ands r1, r0 + lsls r1, r1, #5 + ldrb r2, [r3] + movs r0, #0x61 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrb r1, [r4, #0x17] + lsls r1, r1, #4 + mov r0, r8 + ldrb r2, [r0] + movs r0, #0xf + ands r0, r2 + orrs r0, r1 + mov r1, r8 + strb r0, [r1] + ldrb r0, [r4, #0x12] + strh r0, [r1, #4] + ldr r0, [r4, #8] + str r0, [r1, #8] + ldrb r0, [r4, #0x15] + strb r0, [r1, #2] + ldrb r0, [r4, #0x14] + strb r0, [r1, #3] + ldrb r1, [r4, #0x13] + movs r0, #8 + ands r0, r1 + mov sb, r4 + cmp r0, #0 + beq _0805F59E + lsrs r0, r1, #4 + ldrb r1, [r4, #0x14] + ldr r2, [r4, #4] + bl sub_0805F918 + ldr r0, [r4, #4] + adds r0, #0xe0 + str r0, [r4, #4] + mov r0, sp + movs r1, #1 + bl sub_0805F324 + lsrs r2, r0, #0x18 + ldrb r1, [r4, #0x16] + muls r2, r1, r2 + asrs r1, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x17 + adds r7, r2, r1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r1, r4, #0 + mov r2, sb + ldrb r3, [r2, #0x12] + cmp r3, r1 + bge _0805F514 + adds r1, r3, #0 +_0805F514: + adds r4, r1, #7 + movs r2, #8 + rsbs r2, r2, #0 + mov r0, sb + ldrb r1, [r0, #0x13] + movs r0, #2 + ands r0, r1 + ands r4, r2 + cmp r0, #0 + bne _0805F52A + adds r4, r3, #0 +_0805F52A: + ldr r5, [sp, #0x30] + adds r0, r5, #0 + adds r0, #0x40 + str r0, [sp, #0x30] + mov r2, sb + ldrb r1, [r2, #0x13] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0805F54E + adds r4, #0xf + movs r0, #0x10 + rsbs r0, r0, #0 + ands r4, r0 + lsrs r0, r4, #3 + adds r0, #2 + subs r5, r5, r0 + b _0805F554 +_0805F54E: + adds r0, r5, #0 + adds r0, #0x42 + str r0, [sp, #0x30] +_0805F554: + lsrs r4, r4, #3 + mov r3, sb + ldrh r6, [r3, #0x10] + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r7, #0 + adds r3, r6, #0 + bl sub_08056DC8 + adds r5, #2 + mov r1, sb + ldrh r0, [r1, #0x10] + adds r0, #7 + strh r0, [r1, #0x10] + ldrh r0, [r1, #0x10] + subs r6, r0, #1 + adds r0, r7, #0 + subs r7, #1 + cmp r0, #0 + beq _0805F59E +_0805F57C: + adds r1, r5, #0 + adds r1, #0x40 + adds r5, r1, #0 + subs r2, r4, #1 + subs r3, r7, #1 + cmp r4, #0 + ble _0805F596 +_0805F58A: + strh r6, [r1] + adds r1, #2 + adds r0, r2, #0 + subs r2, #1 + cmp r0, #0 + bgt _0805F58A +_0805F596: + adds r0, r7, #0 + adds r7, r3, #0 + cmp r0, #0 + bne _0805F57C +_0805F59E: + ldr r0, _0805F5C8 @ =gUnk_02034330 + movs r1, #0x18 + bl sub_0801D630 +_0805F5A6: + mov r0, sb + mov r1, sp + mov r2, r8 + bl sub_0805F5CC + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0805F5A6 + mov r0, r8 + bl sub_0805F300 +_0805F5BC: + movs r0, #0 + add sp, #0x48 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0805F5C8: .4byte gUnk_02034330 + + thumb_func_start sub_0805F5CC +sub_0805F5CC: @ 0x0805F5CC + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + adds r5, r2, #0 + ldrb r0, [r4, #0x14] + bl sub_0805F8F8 + ldr r1, [r4, #8] + ldrb r2, [r4, #0x12] + adds r2, #7 + movs r3, #0xfc + lsls r3, r3, #1 + ands r2, r3 + lsls r2, r2, #3 + bl sub_0801D610 + adds r0, r6, #0 + movs r1, #0 + bl sub_0805F324 + adds r2, r0, #0 + ldrb r1, [r4, #0x13] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0805F60E + adds r0, r2, #1 + lsrs r0, r0, #1 + movs r1, #8 + subs r1, r1, r0 + movs r0, #7 + ands r0, r1 + b _0805F610 +_0805F60E: + movs r0, #0 +_0805F610: + strh r0, [r5, #6] + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_0805F6A4 + adds r2, r0, #0 + cmp r2, #0 + beq _0805F660 + ldrh r1, [r5, #6] + adds r0, r1, #7 + asrs r5, r0, #3 + ldr r2, [r4] + ldrb r1, [r4, #0x13] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0805F63A + adds r0, r5, #1 + lsrs r0, r0, #1 + lsls r0, r0, #1 + subs r2, r2, r0 +_0805F63A: + ldrh r1, [r4, #0x10] + adds r0, r2, #0 + adds r2, r5, #0 + bl sub_0805F67C + strh r0, [r4, #0x10] + ldr r0, [r4] + adds r0, #0x80 + str r0, [r4] + lsls r5, r5, #6 + ldr r0, [r4, #8] + ldr r1, [r4, #4] + adds r2, r5, #0 + bl sub_0801D66C + ldr r0, [r4, #4] + adds r0, r0, r5 + str r0, [r4, #4] + b _0805F670 +_0805F660: + ldrb r0, [r6, #1] + cmp r0, #0xa + bne _0805F670 + ldrb r1, [r4, #0x16] + lsls r1, r1, #6 + ldr r0, [r4] + adds r0, r0, r1 + str r0, [r4] +_0805F670: + ldrb r1, [r6, #1] + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0805F67C +sub_0805F67C: @ 0x0805F67C + push {r4, lr} + adds r3, r0, #0 + subs r2, #1 + movs r0, #1 + rsbs r0, r0, #0 + cmp r2, r0 + beq _0805F6A0 + adds r4, r0, #0 +_0805F68C: + strh r1, [r3] + adds r1, #1 + adds r0, r3, #0 + adds r0, #0x40 + strh r1, [r0] + adds r1, #1 + adds r3, #2 + subs r2, #1 + cmp r2, r4 + bne _0805F68C +_0805F6A0: + adds r0, r1, #0 + pop {r4, pc} + + thumb_func_start sub_0805F6A4 +sub_0805F6A4: @ 0x0805F6A4 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r4, r1, #0 + movs r6, #0 +_0805F6AC: + adds r0, r5, #0 + bl sub_0805EFE8 + movs r7, #1 + cmp r0, #0xe + bhi _0805F746 + lsls r0, r0, #2 + ldr r1, _0805F6C4 @ =_0805F6C8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0805F6C4: .4byte _0805F6C8 +_0805F6C8: @ jump table + .4byte _0805F768 @ case 0 + .4byte _0805F768 @ case 1 + .4byte _0805F764 @ case 2 + .4byte _0805F764 @ case 3 + .4byte _0805F764 @ case 4 + .4byte _0805F764 @ case 5 + .4byte _0805F764 @ case 6 + .4byte _0805F704 @ case 7 + .4byte _0805F764 @ case 8 + .4byte _0805F764 @ case 9 + .4byte _0805F764 @ case 10 + .4byte _0805F740 @ case 11 + .4byte _0805F70E @ case 12 + .4byte _0805F764 @ case 13 + .4byte _0805F764 @ case 14 +_0805F704: + ldrh r0, [r5, #2] + cmp r0, #0xd + bhi _0805F764 + strb r0, [r4, #2] + b _0805F764 +_0805F70E: + ldr r3, _0805F73C @ =gUnk_02034330 + movs r2, #2 + ldrsb r2, [r3, r2] + cmp r2, #3 + bhi _0805F732 + adds r0, r2, #1 + strb r0, [r3, #2] + lsls r2, r2, #1 + adds r0, r3, #0 + adds r0, #0x10 + adds r0, r2, r0 + ldrh r1, [r5, #6] + strh r1, [r0] + adds r0, r3, #0 + adds r0, #8 + adds r2, r2, r0 + ldrh r0, [r4, #6] + strh r0, [r2] +_0805F732: + ldrh r0, [r4, #6] + adds r0, #8 + strh r0, [r4, #6] + adds r6, #8 + b _0805F764 + .align 2, 0 +_0805F73C: .4byte gUnk_02034330 +_0805F740: + ldrh r0, [r5, #2] + strb r0, [r4, #1] + b _0805F764 +_0805F746: + adds r1, r4, #0 + bl sub_0805F7DC + adds r6, r6, r0 + ldrb r1, [r5] + movs r0, #0x60 + ands r0, r1 + cmp r0, #0x20 + bne _0805F764 + ldrh r0, [r4, #6] + cmp r0, #1 + bls _0805F764 + subs r6, #1 + subs r0, #1 + strh r0, [r4, #6] +_0805F764: + cmp r7, #0 + bne _0805F6AC +_0805F768: + adds r0, r6, #0 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0805F76C +sub_0805F76C: @ 0x0805F76C + push {r4, lr} + sub sp, #0x30 + adds r2, r0, #0 + adds r4, r1, #0 + mov r0, sp + adds r1, r2, #0 + bl sub_0805F440 + mov r3, sp + ldrb r0, [r4] + lsrs r0, r0, #4 + movs r1, #3 + ands r1, r0 + lsls r1, r1, #5 + ldrb r2, [r3] + movs r0, #0x61 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + mov r0, sp + adds r1, r4, #0 + bl sub_0805F6A4 + add sp, #0x30 + pop {r4, pc} + + thumb_func_start sub_0805F7A0 +sub_0805F7A0: @ 0x0805F7A0 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xf + movs r2, #0 + b _0805F7B4 +_0805F7AA: + lsls r1, r1, #4 + adds r2, #1 + cmp r2, #7 + bhi _0805F7BA + adds r0, r4, #0 +_0805F7B4: + ands r0, r1 + cmp r1, r0 + beq _0805F7AA +_0805F7BA: + adds r3, r2, #0 + cmp r3, #7 + bhi _0805F7D2 + b _0805F7CA +_0805F7C2: + lsls r1, r1, #4 + adds r2, #1 + cmp r2, #7 + bhi _0805F7D2 +_0805F7CA: + adds r0, r4, #0 + ands r0, r1 + cmp r1, r0 + bne _0805F7C2 +_0805F7D2: + subs r2, r2, r3 + lsls r0, r2, #8 + orrs r0, r3 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805F7DC +sub_0805F7DC: @ 0x0805F7DC + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r4, r1, #0 + ldrh r0, [r4, #4] + ldrh r1, [r4, #6] + cmp r0, r1 + bhi _0805F7EE + movs r0, #0 + b _0805F81E +_0805F7EE: + adds r0, r6, #0 + bl sub_0805F25C + adds r5, r0, #0 + ldrh r7, [r4, #6] + lsrs r0, r6, #8 + cmp r0, #4 + bls _0805F808 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0805F820 + adds r5, #0x40 +_0805F808: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0805F820 + ldrh r1, [r4, #4] + ldrh r0, [r4, #6] + cmp r0, r1 + bls _0805F81A + strh r1, [r4, #6] +_0805F81A: + ldrh r0, [r4, #6] + subs r0, r0, r7 +_0805F81E: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0805F820 +sub_0805F820: @ 0x0805F820 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r7, r0, #0 + adds r4, r1, #0 + ldrh r0, [r7, #4] + ldrh r1, [r7, #6] + subs r0, r0, r1 + cmp r0, #0 + ble _0805F8DC + ldr r1, _0805F854 @ =gUnk_02036A58 + adds r0, r4, #0 + bl sub_08002724 + ldrb r0, [r7, #1] + cmp r0, #0 + bne _0805F858 + ldr r0, [r4] + bl sub_0805F7A0 + movs r1, #0xf + ands r1, r0 + lsrs r4, r0, #8 + b _0805F85C + .align 2, 0 +_0805F854: .4byte gUnk_02036A58 +_0805F858: + movs r1, #0 + movs r4, #8 +_0805F85C: + ldrh r0, [r7, #4] + ldrh r3, [r7, #6] + subs r0, r0, r3 + cmp r0, #8 + ble _0805F868 + movs r0, #8 +_0805F868: + cmp r0, r4 + bge _0805F86E + adds r4, r0, #0 +_0805F86E: + ldr r0, _0805F8BC @ =gUnk_02036A58 + adds r6, r1, r0 + ldr r0, [r7, #8] + mov sb, r0 + ldrb r0, [r7, #3] + lsls r2, r0, #1 + adds r2, r2, r0 + lsls r2, r2, #6 + ldrb r0, [r7, #2] + lsls r0, r0, #5 + ldr r1, _0805F8C0 @ =gUnk_0810942E + adds r0, r0, r1 + adds r2, r2, r0 + mov r8, r2 + adds r5, r3, #0 + adds r0, r5, r4 + strh r0, [r7, #6] + ldrb r0, [r7] + lsrs r0, r0, #4 + cmp r0, #1 + beq _0805F8D4 + adds r0, r4, #0 + subs r4, #1 + cmp r0, #0 + ble _0805F8DC +_0805F8A0: + adds r0, r6, #0 + mov r1, sb + mov r2, r8 + adds r3, r5, #0 + bl sub_080026C4 + adds r6, #1 + adds r5, #1 + adds r0, r4, #0 + subs r4, #1 + cmp r0, #0 + bgt _0805F8A0 + b _0805F8DC + .align 2, 0 +_0805F8BC: .4byte gUnk_02036A58 +_0805F8C0: .4byte gUnk_0810942E +_0805F8C4: + adds r0, r6, #0 + mov r1, sb + mov r2, r8 + adds r3, r5, #0 + bl sub_080026F2 + adds r6, #1 + adds r5, #1 +_0805F8D4: + adds r0, r4, #0 + subs r4, #1 + cmp r0, #0 + bgt _0805F8C4 +_0805F8DC: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0805F8E4 +sub_0805F8E4: @ 0x0805F8E4 + push {r4, r5, lr} + adds r4, r1, #0 + ldrb r5, [r4, #1] + movs r1, #1 + strb r1, [r4, #1] + adds r1, r4, #0 + bl sub_0805F7DC + strb r5, [r4, #1] + pop {r4, r5, pc} + + thumb_func_start sub_0805F8F8 +sub_0805F8F8: @ 0x0805F8F8 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #6 + ldr r0, _0805F910 @ =gUnk_081094CE + adds r1, r1, r0 + ldr r2, _0805F914 @ =gUnk_0810926C + ldrb r0, [r1, #0xa] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + bx lr + .align 2, 0 +_0805F910: .4byte gUnk_081094CE +_0805F914: .4byte gUnk_0810926C + + thumb_func_start sub_0805F918 +sub_0805F918: @ 0x0805F918 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r4, r0, #0 + adds r5, r1, #0 + mov sl, r2 + adds r0, r5, #0 + bl sub_0805F8F8 + ldr r1, _0805F990 @ =gUnk_02036AD8 + movs r2, #0xe0 + bl sub_0801D610 + ldr r0, _0805F994 @ =gUnk_081092AC + lsls r4, r4, #2 + adds r4, r4, r0 + ldr r4, [r4] + mov r8, r4 + lsls r0, r5, #1 + adds r0, r0, r5 + lsls r0, r0, #6 + ldr r1, _0805F998 @ =gUnk_081094CE + adds r0, r0, r1 + mov sb, r0 + movs r7, #0 + movs r6, #0 +_0805F950: + ldr r4, _0805F99C @ =gUnk_02036A58 + mov r0, r8 + adds r1, r4, #0 + bl sub_08002724 + movs r0, #0x40 + add r8, r0 + movs r5, #0 + adds r6, #1 +_0805F962: + adds r0, r4, #0 + ldr r1, _0805F990 @ =gUnk_02036AD8 + mov r2, sb + adds r3, r7, #0 + bl sub_080026C4 + adds r4, #1 + adds r7, #1 + adds r5, #1 + cmp r5, #7 + bls _0805F962 + cmp r6, #2 + bls _0805F950 + ldr r0, _0805F990 @ =gUnk_02036AD8 + mov r1, sl + movs r2, #0xe0 + bl sub_08000E96 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0805F990: .4byte gUnk_02036AD8 +_0805F994: .4byte gUnk_081092AC +_0805F998: .4byte gUnk_081094CE +_0805F99C: .4byte gUnk_02036A58 + + thumb_func_start sub_0805F9A0 +sub_0805F9A0: @ 0x0805F9A0 + push {lr} + adds r2, r0, #0 + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + cmp r0, #0 + bne _0805F9D0 + ldr r1, _0805F9C4 @ =gUnk_081092D4 + movs r3, #0 +_0805F9B2: + ldrh r0, [r1] + cmp r0, r2 + beq _0805F9C8 + adds r3, #1 + adds r1, #2 + ldrh r0, [r1] + cmp r0, #0 + bne _0805F9B2 + b _0805F9D8 + .align 2, 0 +_0805F9C4: .4byte gUnk_081092D4 +_0805F9C8: + movs r1, #0x80 + lsls r1, r1, #4 + adds r0, r3, r1 + b _0805F9E2 +_0805F9D0: + ldr r0, _0805F9E4 @ =0x0000031A + cmp r2, r0 + bne _0805F9D8 + movs r2, #1 +_0805F9D8: + movs r0, #0xff + ands r0, r2 + movs r1, #0x80 + lsls r1, r1, #4 + adds r0, r0, r1 +_0805F9E2: + pop {pc} + .align 2, 0 +_0805F9E4: .4byte 0x0000031A + + thumb_func_start sub_0805F9E8 +sub_0805F9E8: @ 0x0805F9E8 + push {lr} + ldr r1, _0805F9FC @ =gUnk_08109A30 + ldr r0, _0805FA00 @ =gUnk_03001000 + ldrb r0, [r0, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_0805F9FC: .4byte gUnk_08109A30 +_0805FA00: .4byte gUnk_03001000 + + thumb_func_start sub_0805FA04 +sub_0805FA04: @ 0x0805FA04 + push {r4, r5, lr} + movs r0, #1 + bl sub_0801DA90 + ldr r0, _0805FA78 @ =gUnk_02034CB0 + movs r1, #0x80 + lsls r1, r1, #4 + bl sub_0801D630 + ldr r0, _0805FA7C @ =gUnk_02001A40 + movs r1, #0x80 + lsls r1, r1, #5 + bl sub_0801D630 + ldr r0, _0805FA80 @ =gUnk_03000F50 + movs r2, #0 + movs r1, #0x94 + lsls r1, r1, #4 + strh r1, [r0] + strh r2, [r0, #0xa] + strh r2, [r0, #0xc] + strh r2, [r0, #0x2e] + strh r2, [r0, #0x30] + ldr r1, _0805FA84 @ =0x00001E0F + strh r1, [r0, #0x2c] + movs r5, #1 + movs r1, #1 + strh r1, [r0, #0x32] + bl sub_08056418 + ldr r0, _0805FA88 @ =gUnk_02032EC0 + movs r1, #0xed + lsls r1, r1, #2 + bl sub_0801D630 + ldr r4, _0805FA8C @ =gUnk_02000080 + adds r0, r4, #0 + movs r1, #0x30 + bl sub_0801D630 + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + strb r0, [r4, #0x16] + bl sub_08053320 + ldr r1, _0805FA90 @ =0x00001144 + movs r0, #0 + bl sub_0801D79C + ldr r0, _0805FA94 @ =gUnk_03001000 + strb r5, [r0, #3] + bl sub_080A3210 + bl sub_08050008 + pop {r4, r5, pc} + .align 2, 0 +_0805FA78: .4byte gUnk_02034CB0 +_0805FA7C: .4byte gUnk_02001A40 +_0805FA80: .4byte gUnk_03000F50 +_0805FA84: .4byte 0x00001E0F +_0805FA88: .4byte gUnk_02032EC0 +_0805FA8C: .4byte gUnk_02000080 +_0805FA90: .4byte 0x00001144 +_0805FA94: .4byte gUnk_03001000 + + thumb_func_start sub_0805FA98 +sub_0805FA98: @ 0x0805FA98 + push {r4, lr} + ldr r0, _0805FAB4 @ =gUnk_03000FF0 + ldrh r1, [r0, #2] + adds r2, r0, #0 + cmp r1, #0x80 + beq _0805FAD8 + cmp r1, #0x80 + bgt _0805FAB8 + cmp r1, #2 + beq _0805FB44 + cmp r1, #0x40 + beq _0805FACA + b _0805FB4A + .align 2, 0 +_0805FAB4: .4byte gUnk_03000FF0 +_0805FAB8: + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + beq _0805FB28 + movs r0, #0x80 + lsls r0, r0, #2 + cmp r1, r0 + beq _0805FAE8 + b _0805FB4A +_0805FACA: + ldr r1, _0805FAD4 @ =gUnk_02000080 + ldrb r0, [r1, #0x11] + subs r0, #1 + strb r0, [r1, #0x11] + b _0805FBA4 + .align 2, 0 +_0805FAD4: .4byte gUnk_02000080 +_0805FAD8: + ldr r1, _0805FAE4 @ =gUnk_02000080 + ldrb r0, [r1, #0x11] + adds r0, #1 + strb r0, [r1, #0x11] + b _0805FBA4 + .align 2, 0 +_0805FAE4: .4byte gUnk_02000080 +_0805FAE8: + ldr r0, _0805FB04 @ =gUnk_02000080 + ldrb r1, [r0, #0x10] + movs r2, #1 + eors r1, r2 + strb r1, [r0, #0x10] + cmp r1, #0 + bne _0805FB10 + ldr r0, _0805FB08 @ =gUnk_03000F50 + ldr r1, _0805FB0C @ =0x00001F0C + strh r1, [r0, #8] + subs r1, #0xfd + strh r1, [r0, #0x2c] + b _0805FBA4 + .align 2, 0 +_0805FB04: .4byte gUnk_02000080 +_0805FB08: .4byte gUnk_03000F50 +_0805FB0C: .4byte 0x00001F0C +_0805FB10: + ldr r0, _0805FB1C @ =gUnk_03000F50 + ldr r1, _0805FB20 @ =0x00001F0F + strh r1, [r0, #8] + ldr r1, _0805FB24 @ =0x00001E0C + strh r1, [r0, #0x2c] + b _0805FBA4 + .align 2, 0 +_0805FB1C: .4byte gUnk_03000F50 +_0805FB20: .4byte 0x00001F0F +_0805FB24: .4byte 0x00001E0C +_0805FB28: + movs r2, #0x80 + lsls r2, r2, #0x12 + ldr r1, _0805FB40 @ =gUnk_02000080 + ldrb r0, [r1, #0x16] + strb r0, [r2, #7] + ldrb r0, [r1, #0x14] + lsls r0, r0, #8 + ldrb r1, [r1, #0x15] + adds r0, r0, r1 + bl sub_08056378 + b _0805FBA4 + .align 2, 0 +_0805FB40: .4byte gUnk_02000080 +_0805FB44: + bl sub_08056418 + b _0805FBA4 +_0805FB4A: + ldrh r0, [r2, #4] + cmp r0, #0x10 + beq _0805FB5A + cmp r0, #0x20 + bne _0805FB5E + movs r1, #1 + rsbs r1, r1, #0 + b _0805FB60 +_0805FB5A: + movs r1, #1 + b _0805FB60 +_0805FB5E: + movs r1, #0 +_0805FB60: + ldr r4, _0805FB74 @ =gUnk_02000080 + ldrb r0, [r4, #0x11] + cmp r0, #1 + beq _0805FB8E + cmp r0, #1 + bgt _0805FB78 + cmp r0, #0 + beq _0805FB7E + b _0805FBA4 + .align 2, 0 +_0805FB74: .4byte gUnk_02000080 +_0805FB78: + cmp r0, #2 + beq _0805FB96 + b _0805FBA4 +_0805FB7E: + ldrb r0, [r4, #0x14] + adds r0, r0, r1 + adds r0, #0x50 + movs r1, #0x50 + bl __modsi3 + strb r0, [r4, #0x14] + b _0805FBA4 +_0805FB8E: + ldrb r0, [r4, #0x15] + adds r0, r0, r1 + strb r0, [r4, #0x15] + b _0805FBA4 +_0805FB96: + ldrb r0, [r4, #0x16] + adds r0, r0, r1 + adds r0, #7 + movs r1, #7 + bl __modsi3 + strb r0, [r4, #0x16] +_0805FBA4: + ldr r4, _0805FBBC @ =gUnk_02000080 + ldrb r0, [r4, #0x11] + adds r0, #3 + movs r1, #3 + bl __modsi3 + strb r0, [r4, #0x11] + ldr r1, _0805FBC0 @ =gUnk_03000F50 + movs r0, #1 + strh r0, [r1, #0x32] + pop {r4, pc} + .align 2, 0 +_0805FBBC: .4byte gUnk_02000080 +_0805FBC0: .4byte gUnk_03000F50 + + thumb_func_start sub_0805FBC4 +sub_0805FBC4: @ 0x0805FBC4 + push {lr} + movs r0, #0 + bl sub_08056010 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0805FBD0 +sub_0805FBD0: @ 0x0805FBD0 + push {lr} + ldr r2, _0805FBE4 @ =gUnk_08109AC8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805FBE4: .4byte gUnk_08109AC8 + + thumb_func_start sub_0805FBE8 +sub_0805FBE8: @ 0x0805FBE8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _0805FC68 @ =gUnk_03001160 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FA24 + ldrb r0, [r5, #0xc] + adds r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #0x18] + adds r4, #0x3c + ldrb r0, [r4] + adds r0, #1 + adds r1, r5, #0 + adds r1, #0x3c + strb r0, [r1] + ldr r0, _0805FC6C @ =gUnk_08109AD0 + str r0, [r5, #0x48] + movs r0, #0xe0 + lsls r0, r0, #2 + strh r0, [r5, #0x24] + ldrb r1, [r5, #0x14] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x14] + adds r0, r5, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #2 + bne _0805FC36 + movs r0, #1 + strb r0, [r5, #0xb] +_0805FC36: + ldrb r1, [r5, #0x14] + lsls r0, r1, #2 + strb r0, [r5, #0x15] + movs r0, #0x3c + str r0, [r5, #0x6c] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x19 + adds r1, #0xc + adds r0, r5, #0 + bl sub_08004260 + adds r0, r5, #0 + bl sub_0801766C + adds r0, r5, #0 + bl sub_0806F69C + adds r0, r5, #0 + bl sub_0805FC74 + ldr r0, _0805FC70 @ =0x0000013F + bl sub_080A3268 + pop {r4, r5, pc} + .align 2, 0 +_0805FC68: .4byte gUnk_03001160 +_0805FC6C: .4byte gUnk_08109AD0 +_0805FC70: .4byte 0x0000013F + + thumb_func_start sub_0805FC74 +sub_0805FC74: @ 0x0805FC74 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x6c] + subs r0, #1 + str r0, [r4, #0x6c] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _0805FD1C + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _0805FCA4 + adds r0, r4, #0 + bl sub_0800451C +_0805FCA4: + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _0805FD10 @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r5, #0x32 + ldrsh r1, [r4, r5] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + ldr r1, _0805FD14 @ =gUnk_03001160 + adds r1, #0x38 + ldrb r1, [r1] + movs r2, #0x80 + bl sub_080002F0 + cmp r0, #0 + bne _0805FCF6 + ldr r1, _0805FD18 @ =gUnk_08003E44 + movs r0, #0x2e + ldrsh r2, [r4, r0] + movs r5, #0x32 + ldrsh r3, [r4, r5] + adds r0, r4, #0 + bl sub_080040D8 + cmp r0, #0 + beq _0805FCF6 + adds r0, r4, #0 + movs r1, #0x19 + movs r2, #0 + bl sub_080A29AC + bl sub_0805E780 +_0805FCF6: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0 + beq _0805FD20 + adds r0, r4, #0 + movs r1, #0x19 + movs r2, #0 + bl sub_080A29AC + bl sub_0805E780 + b _0805FD20 + .align 2, 0 +_0805FD10: .4byte gUnk_03000BF0 +_0805FD14: .4byte gUnk_03001160 +_0805FD18: .4byte gUnk_08003E44 +_0805FD1C: + bl sub_0805E780 +_0805FD20: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0805FD24 +sub_0805FD24: @ 0x0805FD24 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _0805FD72 + cmp r0, #1 + bgt _0805FD38 + cmp r0, #0 + beq _0805FD3E + b _0805FDBC +_0805FD38: + cmp r0, #2 + beq _0805FDAE + b _0805FDBC +_0805FD3E: + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + adds r0, r4, #0 + bl sub_0807DD50 + b _0805FDBC +_0805FD72: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0805FDA4 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + ldr r1, _0805FDA0 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0806F118 + b _0805FDBC + .align 2, 0 +_0805FDA0: .4byte gUnk_03001160 +_0805FDA4: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + b _0805FDBC +_0805FDAE: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0805FDBC + movs r0, #1 + strb r0, [r4, #0xc] +_0805FDBC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805FDC0 +sub_0805FDC0: @ 0x0805FDC0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0805FDEE + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #0xa + bl sub_080042AC + b _0805FDF4 +_0805FDEE: + adds r0, r4, #0 + bl sub_080042B8 +_0805FDF4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805FDF8 +sub_0805FDF8: @ 0x0805FDF8 + push {lr} + ldr r2, _0805FE0C @ =gUnk_08109BBC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805FE0C: .4byte gUnk_08109BBC + + thumb_func_start sub_0805FE10 +sub_0805FE10: @ 0x0805FE10 + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + adds r0, r4, #0 + bl sub_0807DD50 + pop {r4, pc} + + thumb_func_start sub_0805FE48 +sub_0805FE48: @ 0x0805FE48 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r2, r5, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0805FE80 + movs r0, #0 + strb r1, [r5, #0xc] + strb r0, [r2] + ldr r1, _0805FE7C @ =gUnk_03001160 + adds r0, r5, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r5, #0 + bl sub_080042AC + adds r0, r5, #0 + bl sub_0806F118 + b _0805FF14 + .align 2, 0 +_0805FE7C: .4byte gUnk_03001160 +_0805FE80: + adds r4, r5, #0 + adds r4, #0x84 + ldr r1, [r4] + adds r0, r5, #0 + bl sub_0807DF74 + ldr r1, [r4] + adds r0, r5, #0 + bl sub_0805FF2C + adds r0, r5, #0 + adds r0, #0x80 + ldrh r3, [r0] + adds r7, r0, #0 + adds r6, r5, #0 + adds r6, #0x82 + cmp r3, #7 + bhi _0805FEC6 + ldrh r1, [r6] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0805FEBA + movs r1, #0xfc + ands r1, r3 + ldrb r0, [r5, #0xf] + lsrs r0, r0, #1 + adds r3, r1, r0 + b _0805FEC6 +_0805FEBA: + movs r0, #0xfc + ands r0, r3 + ldrb r2, [r5, #0x14] + lsrs r1, r2, #1 + adds r3, r0, r1 + strb r2, [r5, #0xf] +_0805FEC6: + adds r4, r5, #0 + adds r4, #0x58 + ldrb r0, [r4] + cmp r3, r0 + beq _0805FED8 + adds r0, r5, #0 + adds r1, r3, #0 + bl sub_080042AC +_0805FED8: + adds r0, r5, #0 + bl sub_080042B8 + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0805FF02 + ldrb r0, [r4] + cmp r0, #8 + beq _0805FEFE + cmp r0, #8 + blt _0805FF02 + cmp r0, #0xc + bgt _0805FF02 + cmp r0, #0xa + blt _0805FF02 +_0805FEFE: + movs r0, #0 + strh r0, [r7] +_0805FF02: + ldrh r1, [r6] + mvns r0, r1 + adds r0, #1 + ands r1, r0 + cmp r1, #2 + bne _0805FF14 + adds r0, r5, #0 + bl sub_0806ED78 +_0805FF14: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0805FF18 +sub_0805FF18: @ 0x0805FF18 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0805FF28 + movs r0, #1 + strb r0, [r4, #0xc] +_0805FF28: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805FF2C +sub_0805FF2C: @ 0x0805FF2C + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r0, [r5, #8] + ldr r1, _0805FF60 @ =0xFFF00004 + ands r1, r0 + eors r0, r1 + str r0, [r5, #8] + cmp r1, #0 + beq _0805FF94 + movs r6, #0x80 + lsls r6, r6, #0xd + adds r3, r4, #0 + adds r3, #0x80 +_0805FF48: + mvns r0, r1 + adds r2, r0, #1 + ands r2, r1 + eors r1, r2 + cmp r2, r6 + beq _0805FF8C + cmp r2, r6 + bhi _0805FF64 + cmp r2, #4 + beq _0805FF76 + b _0805FF90 + .align 2, 0 +_0805FF60: .4byte 0xFFF00004 +_0805FF64: + movs r0, #0x80 + lsls r0, r0, #0xe + cmp r2, r0 + beq _0805FF7A + movs r0, #0x80 + lsls r0, r0, #0xf + cmp r2, r0 + beq _0805FF7E + b _0805FF90 +_0805FF76: + movs r0, #9 + b _0805FF8E +_0805FF7A: + movs r0, #0xa + b _0805FF8E +_0805FF7E: + ldrb r0, [r4, #0x14] + cmp r0, #2 + bne _0805FF88 + movs r0, #0xb + b _0805FF8E +_0805FF88: + movs r0, #0xc + b _0805FF8E +_0805FF8C: + movs r0, #8 +_0805FF8E: + strh r0, [r3] +_0805FF90: + cmp r1, #0 + bne _0805FF48 +_0805FF94: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0807DB98 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0805FFA0 +sub_0805FFA0: @ 0x0805FFA0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0805FFCE + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #8 + bl sub_080042AC + b _0805FFD4 +_0805FFCE: + adds r0, r4, #0 + bl sub_080042B8 +_0805FFD4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805FFD8 +sub_0805FFD8: @ 0x0805FFD8 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xc] + cmp r5, #1 + beq _08060044 + cmp r5, #1 + bgt _0805FFEC + cmp r5, #0 + beq _0805FFF2 + b _0806008C +_0805FFEC: + cmp r5, #2 + beq _0806007E + b _0806008C +_0805FFF2: + ldr r1, _0806003C @ =gUnk_0810A348 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806008C + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xe] + lsls r0, r0, #1 + strb r0, [r4, #0x14] + adds r1, r4, #0 + adds r1, #0x69 + strb r0, [r1] + strb r5, [r4, #0xe] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + ldr r1, _08060040 @ =gUnk_08109D18 + ldrb r0, [r4, #0xb] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_0807DAD0 + adds r0, r4, #0 + bl sub_0807DD50 + b _0806008C + .align 2, 0 +_0806003C: .4byte gUnk_0810A348 +_08060040: .4byte gUnk_08109D18 +_08060044: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0806005E + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + adds r0, r4, #0 + bl sub_0806F118 + b _0806008C +_0806005E: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + adds r0, #0x59 + ldrb r0, [r0] + cmp r0, #0xf0 + beq _0806008C + adds r0, r4, #0 + bl sub_080600F0 + b _0806008C +_0806007E: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806008C + movs r0, #1 + strb r0, [r4, #0xc] +_0806008C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08060090 +sub_08060090: @ 0x08060090 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_080600A8 +sub_080600A8: @ 0x080600A8 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r2, [r0] + cmp r2, #0xff + beq _080600BA + movs r0, #0x81 + rsbs r0, r0, #0 + ands r2, r0 +_080600BA: + adds r0, r4, #0 + adds r0, #0x5b + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080600CA + movs r2, #0xff +_080600CA: + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080600F0 +sub_080600F0: @ 0x080600F0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x80 + ldrh r3, [r0] + cmp r3, #7 + bhi _08060120 + adds r0, #2 + ldrh r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08060114 + movs r1, #0xfc + ands r1, r3 + ldrb r0, [r4, #0xf] + lsrs r0, r0, #1 + adds r3, r1, r0 + b _08060120 +_08060114: + movs r0, #0xfc + ands r0, r3 + ldrb r2, [r4, #0x14] + lsrs r1, r2, #1 + adds r3, r0, r1 + strb r2, [r4, #0xf] +_08060120: + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r3, r0 + beq _08060132 + adds r0, r4, #0 + adds r1, r3, #0 + bl sub_080042AC +_08060132: + adds r0, r4, #0 + adds r0, #0x82 + ldrh r1, [r0] + movs r0, #4 + ands r0, r1 + movs r1, #1 + cmp r0, #0 + beq _08060144 + movs r1, #2 +_08060144: + adds r0, r4, #0 + bl sub_080042BA + pop {r4, pc} + + thumb_func_start sub_0806014C +sub_0806014C: @ 0x0806014C + push {lr} + movs r1, #0 + strb r1, [r0, #0xe] + bl sub_08060158 + pop {pc} + + thumb_func_start sub_08060158 +sub_08060158: @ 0x08060158 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + adds r7, r0, #0 + cmp r7, #0 + beq _0806016A + subs r0, #1 + strb r0, [r4, #0xe] + b _080601CC +_0806016A: + movs r0, #2 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0x20 + movs r2, #0x20 + bl sub_0806EDD8 + adds r3, r0, #0 + cmp r3, #0 + bge _08060188 + adds r0, r4, #0 + adds r0, #0x69 + ldrb r0, [r0] + strb r0, [r4, #0x14] + lsls r3, r0, #2 +_08060188: + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #5 + asrs r1, r3, #1 + lsls r1, r1, #1 + ldr r2, _080601D0 @ =gUnk_08109C98 + adds r1, r1, r2 + adds r0, r0, r1 + ldrb r6, [r0] + ldrb r5, [r0, #1] + movs r0, #0x80 + ands r0, r5 + cmp r0, #0 + beq _080601AC + adds r0, r3, #0 + bl sub_0806F5B0 + strb r0, [r4, #0x14] +_080601AC: + movs r0, #0x7f + ands r5, r0 + adds r0, r4, #0 + adds r0, #0x5a + strb r6, [r0] + strb r5, [r4, #0x1e] + adds r1, r4, #0 + adds r1, #0x5b + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x58 + strb r7, [r0] + subs r1, #2 + movs r0, #0xf0 + strb r0, [r1] +_080601CC: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080601D0: .4byte gUnk_08109C98 + + thumb_func_start sub_080601D4 +sub_080601D4: @ 0x080601D4 + push {r4, lr} + adds r4, r0, #0 + movs r0, #4 + bl sub_0807CC30 + cmp r0, #0 + bne _080601E6 + movs r1, #2 + b _080601F2 +_080601E6: + movs r0, #0x17 + bl sub_0801E7F4 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r1, r1, #0x1f +_080601F2: + ldr r0, _08060204 @ =gUnk_0810A354 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r4, #0 + bl sub_08056398 + pop {r4, pc} + .align 2, 0 +_08060204: .4byte gUnk_0810A354 + + thumb_func_start sub_08060208 +sub_08060208: @ 0x08060208 + push {lr} + ldrb r1, [r0, #0xb] + lsls r1, r1, #5 + ldr r2, _08060218 @ =gUnk_08109DC8 + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_08060218: .4byte gUnk_08109DC8 + + thumb_func_start sub_0806021C +sub_0806021C: @ 0x0806021C + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x5b + bl sub_0807CA84 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r4, r1, #0x1f + movs r0, #0x40 + bl sub_0807CA84 + cmp r0, #0 + beq _08060238 + movs r4, #2 +_08060238: + movs r0, #0x13 + bl sub_0807CA84 + cmp r0, #0 + beq _08060244 + movs r4, #3 +_08060244: + ldrb r1, [r5, #0xb] + lsls r1, r1, #5 + lsls r0, r4, #3 + ldr r2, _08060258 @ =gUnk_08109DC8 + adds r0, r0, r2 + adds r1, r1, r0 + adds r0, r5, #0 + bl sub_0806F1AC + pop {r4, r5, pc} + .align 2, 0 +_08060258: .4byte gUnk_08109DC8 + + thumb_func_start sub_0806025C +sub_0806025C: @ 0x0806025C + push {lr} + ldrb r1, [r0, #0xb] + lsls r1, r1, #5 + ldr r2, _0806026C @ =gUnk_08109DC8 + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806026C: .4byte gUnk_08109DC8 + + thumb_func_start sub_08060270 +sub_08060270: @ 0x08060270 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x46 + bl sub_0807CA84 + cmp r0, #0 + bne _08060294 + movs r4, #1 + movs r0, #0x29 + bl sub_0807CC30 + cmp r0, #0 + bne _080602A8 + movs r4, #0 + movs r0, #0x29 + bl sub_0807CD04 + b _080602A8 +_08060294: + movs r4, #3 + movs r0, #0x76 + bl sub_0807CBD0 + cmp r0, #0 + bne _080602A8 + movs r4, #2 + movs r0, #0x76 + bl sub_0807CCB4 +_080602A8: + ldr r0, _080602B8 @ =gUnk_0810A35A + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl sub_08056398 + pop {r4, r5, pc} + .align 2, 0 +_080602B8: .4byte gUnk_0810A35A + + thumb_func_start sub_080602BC +sub_080602BC: @ 0x080602BC + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x48 + bl sub_0807CA84 + cmp r0, #0 + beq _080602D6 + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + adds r2, r1, #2 + b _080602F0 +_080602D6: + ldr r0, _08060300 @ =gUnk_02002A40 + adds r2, r0, #0 + adds r2, #0xac + ldr r1, _08060304 @ =gUnk_080FD5A0 + adds r0, #0xae + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r2] + movs r2, #0 + ldrb r0, [r0] + cmp r1, r0 + bhs _080602F0 + movs r2, #1 +_080602F0: + ldr r0, _08060308 @ =gUnk_0810A362 + lsls r1, r2, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r4, #0 + bl sub_08056398 + pop {r4, pc} + .align 2, 0 +_08060300: .4byte gUnk_02002A40 +_08060304: .4byte gUnk_080FD5A0 +_08060308: .4byte gUnk_0810A362 + + thumb_func_start sub_0806030C +sub_0806030C: @ 0x0806030C + push {lr} + ldr r0, [r1, #4] + bl sub_080542F4 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08060318 +sub_08060318: @ 0x08060318 + push {r4, r5, lr} + movs r5, #2 +_0806031C: + movs r0, #8 + movs r1, #2 + movs r2, #2 + bl sub_0805EB00 + adds r4, r0, #0 + cmp r4, #0 + beq _08060336 + bl sub_080A29BC + adds r0, r4, #0 + bl sub_0805E7BC +_08060336: + subs r5, #1 + cmp r5, #0 + bge _0806031C + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08060340 +sub_08060340: @ 0x08060340 + ldr r0, _08060350 @ =gUnk_02002A40 + movs r2, #0x92 + lsls r2, r2, #3 + adds r1, r0, r2 + ldr r0, [r0, #0x50] + str r0, [r1] + bx lr + .align 2, 0 +_08060350: .4byte gUnk_02002A40 + + thumb_func_start sub_08060354 +sub_08060354: @ 0x08060354 + push {r4, lr} + ldr r0, _08060378 @ =gUnk_02002A40 + movs r2, #0x92 + lsls r2, r2, #3 + adds r1, r0, r2 + ldr r2, [r0, #0x50] + ldr r0, [r1] + subs r4, r2, r0 + movs r0, #0x3b + bl sub_0807CC30 + cmp r0, #0 + bne _08060380 + cmp r4, #4 + ble _080603B0 + ldr r0, _0806037C @ =0x00008444 + b _080603B2 + .align 2, 0 +_08060378: .4byte gUnk_02002A40 +_0806037C: .4byte 0x00008444 +_08060380: + movs r0, #0x3c + bl sub_0807CC30 + cmp r0, #0 + bne _08060398 + cmp r4, #9 + ble _080603B0 + ldr r0, _08060394 @ =0x00008444 + b _080603B2 + .align 2, 0 +_08060394: .4byte 0x00008444 +_08060398: + movs r0, #0x3d + bl sub_0807CC30 + cmp r0, #0 + bne _080603B0 + cmp r4, #0xe + ble _080603B0 + ldr r0, _080603AC @ =0x00008444 + b _080603B2 + .align 2, 0 +_080603AC: .4byte 0x00008444 +_080603B0: + movs r0, #0 +_080603B2: + pop {r4, pc} + + thumb_func_start sub_080603B4 +sub_080603B4: @ 0x080603B4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080603F4 + ldr r1, _080603F0 @ =gUnk_0810A348 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _080603FA + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #6 + bl sub_08004260 + b _080603FA + .align 2, 0 +_080603F0: .4byte gUnk_0810A348 +_080603F4: + adds r0, r4, #0 + bl sub_08004274 +_080603FA: + pop {r4, pc} + + thumb_func_start sub_080603FC +sub_080603FC: @ 0x080603FC + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08060412 + adds r0, r2, #0 + bl sub_08060528 + b _08060422 +_08060412: + ldr r0, _08060424 @ =gUnk_0810AA24 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 +_08060422: + pop {pc} + .align 2, 0 +_08060424: .4byte gUnk_0810AA24 + + thumb_func_start sub_08060428 +sub_08060428: @ 0x08060428 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x5a + strb r0, [r4, #0xe] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _08060444 + bl sub_0804B128 + adds r1, r0, #0 + b _08060446 +_08060444: + movs r1, #0 +_08060446: + adds r0, r4, #0 + movs r2, #0 + bl sub_0806EE04 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #4 + bl sub_080042AC + pop {r4, pc} + + thumb_func_start sub_0806045C +sub_0806045C: @ 0x0806045C + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_080604DC + adds r0, r4, #0 + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #2 + bgt _08060488 + cmp r0, #1 + blt _08060488 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0 + bl sub_08056378 + b _080604C0 +_08060488: + adds r0, r4, #0 + adds r0, #0x3e + ldrb r1, [r0] + ldrb r0, [r4, #0x14] + cmp r1, r0 + beq _0806049E + strb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC +_0806049E: + adds r0, r4, #0 + movs r1, #0x18 + movs r2, #0x18 + bl sub_0806ED9C + movs r1, #0 + cmp r0, #0 + blt _080604B6 + ldrb r2, [r4, #0x14] + cmp r0, r2 + bne _080604B6 + movs r1, #1 +_080604B6: + cmp r1, #0 + bne _080604C0 + adds r0, r4, #0 + bl sub_0806EE20 +_080604C0: + adds r0, r4, #0 + bl sub_0806ED78 + pop {r4, pc} + + thumb_func_start sub_080604C8 +sub_080604C8: @ 0x080604C8 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_080604DC + movs r0, #1 + strb r0, [r4, #0xc] + pop {r4, pc} + + thumb_func_start sub_080604DC +sub_080604DC: @ 0x080604DC + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0x18] + lsls r0, r0, #0x1e + lsrs r4, r0, #0x1e + cmp r4, #1 + bne _08060524 + adds r0, r5, #0 + bl sub_080040A8 + cmp r0, #0 + beq _08060524 + adds r2, r5, #0 + adds r2, #0x5a + ldrb r1, [r2] + ands r4, r1 + cmp r4, #0 + beq _08060524 + movs r0, #0xfe + ands r0, r1 + strb r0, [r2] + adds r0, r5, #0 + movs r1, #0x11 + movs r2, #0x40 + bl sub_080A29AC + adds r1, r0, #0 + cmp r1, #0 + beq _08060524 + ldrh r0, [r1, #0x32] + adds r0, #1 + strh r0, [r1, #0x32] + adds r0, r1, #0 + movs r1, #3 + bl sub_0805E3A0 +_08060524: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08060528 +sub_08060528: @ 0x08060528 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r3, [r4, #0xc] + cmp r3, #1 + beq _08060582 + cmp r3, #1 + bgt _0806053C + cmp r3, #0 + beq _08060546 + b _080605EC +_0806053C: + cmp r3, #2 + beq _080605F6 + cmp r3, #3 + beq _08060618 + b _080605EC +_08060546: + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x68 + strb r3, [r0] + adds r0, #1 + strb r3, [r0] + adds r5, r4, #0 + adds r5, #0x6a + movs r0, #0 + strh r3, [r5] + adds r6, r4, #0 + adds r6, #0x6d + strb r0, [r6] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x6c + strb r0, [r1] + adds r0, r4, #0 + bl sub_0807DD50 + b _08060634 +_08060582: + adds r2, r4, #0 + adds r2, #0x39 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #2 + bne _080605B8 + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r2] + adds r0, r4, #0 + bl sub_0806F118 + ldr r1, _080605B4 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_080042AC + b _080605EC + .align 2, 0 +_080605B4: .4byte gUnk_03001160 +_080605B8: + cmp r0, #0 + beq _080605E4 + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r2] + adds r0, r4, #0 + bl sub_080606D8 + ldr r1, _080605E0 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_080042AC + b _080605EC + .align 2, 0 +_080605E0: .4byte gUnk_03001160 +_080605E4: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 +_080605EC: + adds r5, r4, #0 + adds r5, #0x6a + adds r6, r4, #0 + adds r6, #0x6d + b _08060634 +_080605F6: + adds r0, r4, #0 + bl sub_080042B8 + ldr r0, _08060614 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + adds r5, r4, #0 + adds r5, #0x6a + adds r6, r4, #0 + adds r6, #0x6d + cmp r0, #0 + bne _08060634 + b _08060630 + .align 2, 0 +_08060614: .4byte gUnk_02000050 +_08060618: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0806F148 + adds r5, r4, #0 + adds r5, #0x6a + adds r6, r4, #0 + adds r6, #0x6d + cmp r0, #0 + beq _08060634 +_08060630: + movs r0, #1 + strb r0, [r4, #0xc] +_08060634: + adds r0, r4, #0 + bl sub_080604DC + adds r1, r5, #0 + ldrh r3, [r1] + movs r0, #0 + ldrsh r2, [r1, r0] + cmp r2, #0 + ble _08060670 + ldr r0, _08060668 @ =0x0000012B + cmp r2, r0 + ble _0806066C + movs r0, #0 + strh r0, [r1] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + movs r0, #1 + strb r0, [r6] + adds r0, r4, #0 + bl sub_080788E0 + movs r0, #0x7c + bl sub_08004488 + b _08060670 + .align 2, 0 +_08060668: .4byte 0x0000012B +_0806066C: + subs r0, r3, #1 + strh r0, [r5] +_08060670: + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + ldrb r0, [r6] + cmp r0, #0 + beq _08060694 + ldr r0, [r4, #0x20] + cmp r0, #0 + bne _08060694 + ldr r0, [r4, #0x34] + cmp r0, #0 + bne _08060694 + strb r0, [r6] + adds r0, r4, #0 + bl sub_080606C0 +_08060694: + ldr r0, [r4, #0x34] + cmp r0, #0 + blt _080606B4 + ldr r0, _080606BC @ =gUnk_03001160 + adds r0, #0x38 + ldrb r1, [r0] + cmp r1, #0 + beq _080606AE + adds r0, r4, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, r1 + bne _080606B4 +_080606AE: + adds r0, r4, #0 + bl sub_0806ED78 +_080606B4: + adds r0, r4, #0 + bl sub_0800451C + pop {r4, r5, r6, pc} + .align 2, 0 +_080606BC: .4byte gUnk_03001160 + + thumb_func_start sub_080606C0 +sub_080606C0: @ 0x080606C0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x6c + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_080606D8 +sub_080606D8: @ 0x080606D8 + push {lr} + adds r2, r0, #0 + ldr r0, _080606F8 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + subs r0, #2 + cmp r0, #0 + bge _080606E8 + movs r0, #0 +_080606E8: + lsls r1, r0, #3 + ldr r0, _080606FC @ =gUnk_0810AA30 + adds r1, r1, r0 + adds r0, r2, #0 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_080606F8: .4byte gUnk_02002A40 +_080606FC: .4byte gUnk_0810AA30 + + thumb_func_start sub_08060700 +sub_08060700: @ 0x08060700 + push {r4, r5, lr} + ldr r3, _0806074C @ =gUnk_0810A918 + adds r2, r0, #0 + adds r2, #0x68 + ldrb r2, [r2] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + adds r3, r0, #0 + adds r3, #0x69 + ldrb r3, [r3] + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + adds r2, r2, r3 + movs r3, #0 + ldrsb r3, [r2, r3] + lsls r3, r3, #2 + ldr r2, _08060750 @ =gUnk_0810A66C + adds r3, r3, r2 + ldr r4, _08060754 @ =gUnk_03000BF0 + movs r5, #0 + ldrsh r2, [r3, r5] + ldrh r5, [r4, #6] + adds r2, r2, r5 + movs r5, #2 + ldrsh r3, [r3, r5] + ldrh r4, [r4, #8] + adds r3, r3, r4 + bl sub_0807DEDC + ldr r2, _08060758 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, r5, pc} + .align 2, 0 +_0806074C: .4byte gUnk_0810A918 +_08060750: .4byte gUnk_0810A66C +_08060754: .4byte gUnk_03000BF0 +_08060758: .4byte gUnk_02033280 + + thumb_func_start sub_0806075C +sub_0806075C: @ 0x0806075C + adds r2, r0, #0 + adds r2, #0x68 + movs r1, #0xb + strb r1, [r2] + adds r0, #0x69 + movs r1, #0xff + strb r1, [r0] + bx lr + + thumb_func_start sub_0806076C +sub_0806076C: @ 0x0806076C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + adds r7, r0, #0 + mov sb, r1 + ldr r0, [r7, #0x34] + cmp r0, #0 + bge _08060790 + ldr r1, _0806078C @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] + b _080608D8 + .align 2, 0 +_0806078C: .4byte gUnk_02033280 +_08060790: + adds r4, r7, #0 + adds r4, #0x69 + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + adds r5, r7, #0 + adds r5, #0x38 + movs r0, #1 + strb r0, [r5] + adds r0, r7, #0 + bl sub_080606C0 + ldr r1, _080607DC @ =gUnk_0810A918 + adds r2, r7, #0 + adds r2, #0x68 + movs r0, #0 + ldrsb r0, [r2, r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r6, [r0] + movs r0, #0 + ldrsb r0, [r4, r0] + adds r6, r6, r0 + mov sl, r4 + mov r8, r2 +_080607C2: + ldrb r0, [r6] + adds r0, #5 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #5 + bls _080607D0 + b _080608D8 +_080607D0: + lsls r0, r0, #2 + ldr r1, _080607E0 @ =_080607E4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080607DC: .4byte gUnk_0810A918 +_080607E0: .4byte _080607E4 +_080607E4: @ jump table + .4byte _08060846 @ case 0 + .4byte _08060836 @ case 1 + .4byte _08060830 @ case 2 + .4byte _0806082A @ case 3 + .4byte _0806081E @ case 4 + .4byte _080607FC @ case 5 +_080607FC: + adds r6, #1 + movs r5, #0 + ldrsb r5, [r6, r5] + adds r6, #1 + bl sub_08000E50 + adds r1, r5, #0 + bl __modsi3 + adds r0, r6, r0 + ldrb r0, [r0] + movs r1, #0 + mov r2, r8 + strb r0, [r2] + mov r3, sl + strb r1, [r3] + b _080608D8 +_0806081E: + adds r1, r7, #0 + adds r1, #0x6a + movs r0, #0x96 + lsls r0, r0, #1 + strh r0, [r1] + b _080608CC +_0806082A: + movs r0, #1 + strb r0, [r5] + b _080608CC +_08060830: + movs r0, #2 + strb r0, [r5] + b _080608CC +_08060836: + movs r0, #0x1e + mov r4, sb + strh r0, [r4, #0x10] + ldrb r1, [r7, #0x18] + subs r0, #0x22 + ands r0, r1 + strb r0, [r7, #0x18] + b _080608CC +_08060846: + adds r6, #1 + movs r5, #0 + ldrsb r5, [r6, r5] + adds r6, #1 + bl sub_08000E50 + adds r1, r5, #0 + bl __modsi3 + str r0, [sp, #4] + movs r2, #0 + cmp r2, r5 + bhs _080608B8 + ldr r0, _080608C0 @ =gUnk_03000BF0 + mov sb, r0 +_08060864: + ldr r1, [sp, #4] + adds r0, r6, r1 + ldrb r0, [r0] + mov r3, r8 + strb r0, [r3] + movs r0, #0 + ldrsb r0, [r3, r0] + lsls r0, r0, #2 + ldr r4, _080608C4 @ =gUnk_0810A918 + adds r0, r0, r4 + ldr r0, [r0] + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r1, r1, #2 + ldr r0, _080608C8 @ =gUnk_0810A66C + adds r1, r1, r0 + ldrh r0, [r1] + mov r3, sb + ldrh r3, [r3, #6] + adds r0, r0, r3 + strh r0, [r7, #0x2e] + ldrh r0, [r1, #2] + mov r4, sb + ldrh r4, [r4, #8] + adds r0, r0, r4 + strh r0, [r7, #0x32] + adds r0, r7, #0 + str r2, [sp] + bl sub_080040A8 + cmp r0, #0 + beq _080608B8 + ldr r0, [sp, #4] + adds r0, #1 + adds r1, r5, #0 + bl __modsi3 + str r0, [sp, #4] + ldr r2, [sp] + adds r2, #1 + cmp r2, r5 + blo _08060864 +_080608B8: + movs r0, #0 + mov r1, sl + strb r0, [r1] + b _080608D8 + .align 2, 0 +_080608C0: .4byte gUnk_03000BF0 +_080608C4: .4byte gUnk_0810A918 +_080608C8: .4byte gUnk_0810A66C +_080608CC: + mov r2, sl + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + adds r6, #1 + b _080607C2 +_080608D8: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080608E4 +sub_080608E4: @ 0x080608E4 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #0 + str r0, [r5, #0x14] + ldr r0, [r4, #0x34] + cmp r0, #0 + blt _08060970 + adds r0, r4, #0 + adds r0, #0x38 + ldrb r1, [r0] + ldr r6, _08060974 @ =gUnk_03001160 + cmp r1, #1 + bne _0806090A + adds r0, r6, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #2 + beq _08060970 +_0806090A: + cmp r1, #2 + bne _08060918 + adds r0, r6, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #1 + beq _08060970 +_08060918: + ldr r2, [r5, #4] + lsls r2, r2, #4 + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #2 + ldr r1, _08060978 @ =gUnk_0810AA70 + adds r0, r0, r1 + adds r2, r2, r0 + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r0, #0 + ldrsb r0, [r2, r0] + adds r1, r1, r0 + movs r7, #0x32 + ldrsh r3, [r4, r7] + movs r0, #1 + ldrsb r0, [r2, r0] + adds r3, r3, r0 + movs r7, #0x2e + ldrsh r0, [r6, r7] + subs r1, r0, r1 + movs r7, #0x32 + ldrsh r0, [r6, r7] + subs r3, r0, r3 + movs r0, #2 + ldrsb r0, [r2, r0] + adds r1, r1, r0 + ldrb r2, [r2, #3] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + adds r3, r3, r2 + lsls r0, r0, #1 + cmp r0, r1 + bls _08060970 + lsls r0, r2, #1 + cmp r0, r3 + bls _08060970 + movs r0, #1 + str r0, [r5, #0x14] + adds r1, r4, #0 + adds r1, #0x6a + ldrh r0, [r1] + adds r0, #2 + strh r0, [r1] +_08060970: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08060974: .4byte gUnk_03001160 +_08060978: .4byte gUnk_0810AA70 + + thumb_func_start sub_0806097C +sub_0806097C: @ 0x0806097C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _080609A2 + adds r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + adds r0, r2, #0 + movs r1, #2 + bl sub_080042AC + b _080609A8 +_080609A2: + adds r0, r2, #0 + bl sub_080042B8 +_080609A8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080609AC +sub_080609AC: @ 0x080609AC + push {r4, lr} + movs r0, #0x1c + bl sub_0807CC30 + cmp r0, #0 + beq _080609E0 + movs r0, #0x2e + movs r1, #0 + movs r2, #0 + bl sub_0806ED50 + adds r4, r0, #0 + cmp r4, #0 + beq _080609E0 + ldr r0, _080609E4 @ =gUnk_03001160 + adds r1, r4, #0 + bl sub_0806FA24 + ldrb r1, [r4, #0x10] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + bl sub_0806EDC4 + strb r0, [r4, #0x14] +_080609E0: + pop {r4, pc} + .align 2, 0 +_080609E4: .4byte gUnk_03001160 + + thumb_func_start sub_080609E8 +sub_080609E8: @ 0x080609E8 + push {lr} + ldr r2, _080609FC @ =gUnk_0810AC1C + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080609FC: .4byte gUnk_0810AC1C + + thumb_func_start sub_08060A00 +sub_08060A00: @ 0x08060A00 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _08060AD0 @ =gUnk_03003F80 + ldrb r1, [r0, #2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08060A44 + ldrb r0, [r5, #0xc] + cmp r0, #0 + beq _08060A52 + ldr r2, [r5, #0x64] + ldrb r1, [r2] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _08060A44 + movs r0, #4 + orrs r0, r1 + strb r0, [r2] + ldr r4, [r5, #0x64] + ldr r3, _08060AD4 @ =gUnk_03001160 + ldrh r2, [r3, #0x2e] + movs r1, #0x10 + rsbs r1, r1, #0 + adds r0, r1, #0 + ands r0, r2 + adds r0, #8 + strh r0, [r4, #0xa] + ldr r2, [r5, #0x64] + ldrh r0, [r3, #0x32] + ands r1, r0 + adds r1, #8 + strh r1, [r2, #0xc] +_08060A44: + ldrb r0, [r5, #0xc] + cmp r0, #0 + beq _08060A52 + ldrb r0, [r5, #0x18] + lsls r0, r0, #0x1e + cmp r0, #0 + beq _08060A62 +_08060A52: + ldr r0, _08060AD8 @ =gUnk_0810AC2C + ldrb r1, [r5, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r5, #0 + bl _call_via_r1 +_08060A62: + ldrb r0, [r5, #0xc] + cmp r0, #0 + beq _08060A76 + ldr r1, [r5, #0x64] + ldr r2, _08060AD4 @ =gUnk_03001160 + ldrh r0, [r2, #0x2e] + strh r0, [r1, #2] + ldr r1, [r5, #0x64] + ldrh r0, [r2, #0x32] + strh r0, [r1, #4] +_08060A76: + adds r2, r5, #0 + adds r2, #0x74 + ldr r4, _08060ADC @ =gUnk_03000BF0 + ldrb r1, [r4, #5] + ldrh r0, [r2] + cmp r0, r1 + beq _08060ACE + strh r1, [r2] + ldr r0, _08060AD4 @ =gUnk_03001160 + adds r1, r5, #0 + bl sub_0806FA24 + movs r2, #1 + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + movs r0, #0x90 + lsls r0, r0, #1 + strh r0, [r5, #0x24] + ldrb r1, [r4, #0x10] + lsls r0, r1, #1 + strb r0, [r5, #0x14] + lsls r1, r1, #0x19 + lsrs r1, r1, #0x19 + adds r0, r5, #0 + bl sub_080042AC + bl sub_08000E50 + movs r1, #0x7f + ands r0, r1 + adds r0, #0x80 + adds r1, r5, #0 + adds r1, #0x59 + strb r0, [r1] + ldr r2, [r5, #0x64] + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 + strb r0, [r2] +_08060ACE: + pop {r4, r5, pc} + .align 2, 0 +_08060AD0: .4byte gUnk_03003F80 +_08060AD4: .4byte gUnk_03001160 +_08060AD8: .4byte gUnk_0810AC2C +_08060ADC: .4byte gUnk_03000BF0 + + thumb_func_start sub_08060AE0 +sub_08060AE0: @ 0x08060AE0 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x14 + bl sub_0801D8E0 + adds r1, r0, #0 + cmp r1, #0 + beq _08060B54 + str r1, [r4, #0x64] + movs r0, #0x20 + strb r0, [r1, #1] + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x14] + movs r2, #3 + adds r0, r2, #0 + ands r0, r1 + strb r0, [r4, #0x14] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #4 + movs r0, #0x48 + strb r0, [r1] + subs r1, #1 + movs r0, #0x49 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x3b + strb r2, [r0] + ldr r0, _08060B58 @ =gUnk_080FD150 + str r0, [r4, #0x48] + ldrb r1, [r4, #0x17] + movs r0, #0xfe + ands r0, r1 + strb r0, [r4, #0x17] + adds r1, r4, #0 + adds r1, #0x6c + movs r0, #0xff + strb r0, [r1] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08060E70 + movs r0, #5 + movs r1, #2 + movs r2, #0 + bl sub_0806ED50 + cmp r0, #0 + beq _08060B54 + str r4, [r0, #0x50] + str r0, [r4, #0x78] +_08060B54: + pop {r4, pc} + .align 2, 0 +_08060B58: .4byte gUnk_080FD150 + + thumb_func_start sub_08060B5C +sub_08060B5C: @ 0x08060B5C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08061230 + cmp r0, #0 + bne _08060B9E + adds r0, r4, #0 + bl sub_08060F80 + adds r5, r0, #0 + cmp r5, #0 + bne _08060B98 + ldr r1, _08060B94 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + ldrb r1, [r4, #0x14] + lsls r1, r1, #2 + subs r0, r0, r1 + adds r0, #4 + movs r1, #0x1f + ands r0, r1 + cmp r0, #8 + bhi _08060B98 + movs r0, #2 + strb r0, [r4, #0xc] + strb r5, [r4, #0xf] + b _08060B9E + .align 2, 0 +_08060B94: .4byte gUnk_03001160 +_08060B98: + adds r0, r4, #0 + bl sub_08060EDC +_08060B9E: + pop {r4, r5, pc} + + thumb_func_start sub_08060BA0 +sub_08060BA0: @ 0x08060BA0 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08061230 + cmp r0, #0 + beq _08060BAE + b _08060D74 +_08060BAE: + ldr r2, [r4, #0x64] + ldrb r1, [r2] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08060C66 + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _08060BF6 + movs r0, #0xf0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + ldrh r1, [r2, #0xe] + ldrh r2, [r2, #0x10] + adds r0, r4, #0 + movs r3, #0xc + bl sub_08061120 + adds r0, r4, #0 + bl sub_08061170 + ldr r0, [r4, #0x64] + ldrh r1, [r0, #0xe] + ldrh r2, [r0, #0x10] + adds r0, r4, #0 + movs r3, #4 + bl sub_0806FCB8 + cmp r0, #0 + bne _08060BEE + b _08060D54 +_08060BEE: + ldr r2, [r4, #0x64] + ldrb r1, [r2] + movs r0, #0xf7 + b _08060D36 +_08060BF6: + ldrh r1, [r2, #0xa] + ldrh r2, [r2, #0xc] + adds r0, r4, #0 + bl sub_08060FD0 + cmp r0, #0 + beq _08060C56 + ldr r0, [r4, #0x64] + ldrh r1, [r0, #0xa] + ldrh r2, [r0, #0xc] + adds r0, r4, #0 + movs r3, #4 + bl sub_0806FCB8 + cmp r0, #0 + beq _08060C38 + ldr r2, [r4, #0x64] + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 + strb r0, [r2] + movs r0, #5 + strb r0, [r4, #0xc] + ldrb r0, [r5, #0x15] + strb r0, [r4, #0x15] + movs r0, #0xb0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + adds r0, r4, #0 + movs r1, #8 + bl sub_08060E70 + b _08060D54 +_08060C38: + movs r0, #0xf0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r0, #0x32 + ldrsh r2, [r5, r0] + adds r0, r4, #0 + movs r3, #0xc + bl sub_08061120 + adds r0, r4, #0 + bl sub_08061170 + b _08060D54 +_08060C56: + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r0, #0x32 + ldrsh r2, [r5, r0] + adds r0, r4, #0 + bl sub_08061464 + b _08060D54 +_08060C66: + ldr r5, _08060C98 @ =gUnk_03001160 + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r0, #0x32 + ldrsh r2, [r5, r0] + adds r0, r4, #0 + bl sub_08060FD0 + cmp r0, #0 + beq _08060C9C + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r0, #0x32 + ldrsh r2, [r5, r0] + adds r0, r4, #0 + bl sub_08061090 + adds r0, r4, #0 + bl sub_08061170 + ldr r2, [r4, #0x64] + ldrb r1, [r2] + movs r0, #0xf5 + b _08060D36 + .align 2, 0 +_08060C98: .4byte gUnk_03001160 +_08060C9C: + ldr r2, [r4, #0x64] + ldrb r1, [r2] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _08060CDA + movs r0, #0xf0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + ldrh r1, [r2, #0xe] + ldrh r2, [r2, #0x10] + adds r0, r4, #0 + movs r3, #0xc + bl sub_08061120 + adds r0, r4, #0 + bl sub_08061170 + ldr r0, [r4, #0x64] + ldrh r1, [r0, #0xe] + ldrh r2, [r0, #0x10] + adds r0, r4, #0 + movs r3, #4 + bl sub_0806FCB8 + cmp r0, #0 + beq _08060D54 + ldr r2, [r4, #0x64] + ldrb r1, [r2] + movs r0, #0xf7 + b _08060D36 +_08060CDA: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08060CF4 + movs r0, #2 + orrs r0, r1 + strb r0, [r2] + ldr r1, [r4, #0x64] + ldrh r0, [r1, #2] + strh r0, [r1, #6] + ldr r1, [r4, #0x64] + ldrh r0, [r1, #4] + strh r0, [r1, #8] +_08060CF4: + ldr r0, [r4, #0x64] + ldrh r1, [r0, #6] + ldrh r2, [r0, #8] + adds r0, r4, #0 + bl sub_08060FD0 + cmp r0, #0 + beq _08060D3C + movs r0, #0xf0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + ldr r0, [r4, #0x64] + ldrh r1, [r0, #6] + ldrh r2, [r0, #8] + adds r0, r4, #0 + movs r3, #0xc + bl sub_08061120 + adds r0, r4, #0 + bl sub_08061170 + ldr r0, [r4, #0x64] + ldrh r1, [r0, #6] + ldrh r2, [r0, #8] + adds r0, r4, #0 + movs r3, #4 + bl sub_0806FCB8 + cmp r0, #0 + beq _08060D54 + ldr r2, [r4, #0x64] + ldrb r1, [r2] + movs r0, #0xfd +_08060D36: + ands r0, r1 + strb r0, [r2] + b _08060D54 +_08060D3C: + ldr r2, [r4, #0x64] + ldrb r1, [r2] + movs r0, #0xfd + ands r0, r1 + strb r0, [r2] + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r0, #0x32 + ldrsh r2, [r5, r0] + adds r0, r4, #0 + bl sub_08061464 +_08060D54: + adds r0, r4, #0 + bl sub_08060F80 + cmp r0, #0 + beq _08060D74 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r2, [r4, #0x64] + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #0 + bl sub_08060E70 +_08060D74: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08060D78 +sub_08060D78: @ 0x08060D78 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08061358 + adds r0, r4, #0 + bl sub_08060F80 + cmp r0, #0 + beq _08060DCE + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + subs r0, #0x20 + cmp r0, #0xf + bhi _08060DC2 + adds r5, r4, #0 + adds r5, #0x5a + ldrb r1, [r5] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + beq _08060DB2 + adds r1, r4, #0 + adds r1, #0x59 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080042B8 +_08060DB2: + ldrb r1, [r5] + movs r0, #0x18 + ands r0, r1 + strb r0, [r4, #0x14] + adds r1, r4, #0 + adds r1, #0x6c + movs r0, #0xff + strb r0, [r1] +_08060DC2: + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0 + bl sub_08060E70 +_08060DCE: + pop {r4, r5, pc} + + thumb_func_start sub_08060DD0 +sub_08060DD0: @ 0x08060DD0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08060DF2 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0 + bl sub_08060E70 +_08060DF2: + pop {r4, pc} + + thumb_func_start sub_08060DF4 +sub_08060DF4: @ 0x08060DF4 + push {lr} + bl sub_08061170 + pop {pc} + + thumb_func_start sub_08060DFC +sub_08060DFC: @ 0x08060DFC + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_08060E94 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08060E32 + movs r0, #7 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_08060E70 +_08060E32: + pop {r4, pc} + + thumb_func_start sub_08060E34 +sub_08060E34: @ 0x08060E34 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08060E68 + movs r0, #2 + strb r0, [r4, #0xc] + ldr r1, _08060E6C @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + lsrs r0, r0, #2 + strb r0, [r4, #0x14] + adds r0, r4, #0 + movs r1, #8 + bl sub_08060E70 +_08060E68: + pop {r4, pc} + .align 2, 0 +_08060E6C: .4byte gUnk_03001160 + + thumb_func_start sub_08060E70 +sub_08060E70: @ 0x08060E70 + push {lr} + adds r2, r0, #0 + adds r3, r1, #0 + ldrb r0, [r2, #0x14] + lsrs r0, r0, #1 + adds r1, r3, r0 + adds r0, r2, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r1, r0 + beq _08060E92 + adds r0, r2, #0 + adds r0, #0x6c + strb r3, [r0] + adds r0, r2, #0 + bl sub_080042AC +_08060E92: + pop {pc} + + thumb_func_start sub_08060E94 +sub_08060E94: @ 0x08060E94 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x58] + ldr r1, _08060ECC @ =0x0080FF00 + ands r0, r1 + ldr r1, _08060ED0 @ =0x00800100 + cmp r0, r1 + bne _08060ED4 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #3 + bhi _08060ED4 + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 + adds r0, r4, #0 + bl sub_080042AC + bl sub_08000E50 + movs r1, #0x7f + ands r0, r1 + adds r0, #0x80 + adds r1, r4, #0 + adds r1, #0x59 + strb r0, [r1] + b _08060EDA + .align 2, 0 +_08060ECC: .4byte 0x0080FF00 +_08060ED0: .4byte 0x00800100 +_08060ED4: + adds r0, r4, #0 + bl sub_080042B8 +_08060EDA: + pop {r4, pc} + + thumb_func_start sub_08060EDC +sub_08060EDC: @ 0x08060EDC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x58 + ldrb r0, [r0] + subs r0, #0x20 + cmp r0, #0xf + bhi _08060F00 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08060F00 + adds r0, r4, #0 + bl sub_080042B8 + b _08060F7C +_08060F00: + ldr r1, _08060F30 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + ldrb r2, [r4, #0x14] + lsls r1, r2, #2 + subs r1, r0, r1 + adds r0, r1, #3 + movs r3, #0x1f + ands r0, r3 + cmp r0, #6 + ble _08060F4A + ands r1, r3 + cmp r1, #0xf + bgt _08060F34 + adds r1, r2, #0 + adds r1, #0x20 + adds r0, r4, #0 + bl sub_080042AC + ldrb r0, [r4, #0x14] + adds r0, #1 + b _08060F42 + .align 2, 0 +_08060F30: .4byte gUnk_03001160 +_08060F34: + adds r1, r2, #0 + adds r1, #0x28 + adds r0, r4, #0 + bl sub_080042AC + ldrb r0, [r4, #0x14] + subs r0, #1 +_08060F42: + movs r1, #7 + ands r0, r1 + strb r0, [r4, #0x14] + b _08060F7C +_08060F4A: + movs r0, #1 + ands r2, r0 + cmp r2, #0 + bne _08060F7C + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08060F76 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + subs r0, #0x20 + cmp r0, #0xf + bhi _08060F76 + adds r0, r4, #0 + movs r1, #0 + bl sub_08060E70 + b _08060F7C +_08060F76: + adds r0, r4, #0 + bl sub_08060E94 +_08060F7C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08060F80 +sub_08060F80: @ 0x08060F80 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08060FC8 @ =gUnk_03001160 + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r3, #0x32 + ldrsh r2, [r5, r3] + adds r0, r4, #0 + bl sub_08060FD0 + cmp r0, #0 + beq _08060FC2 + ldr r2, [r4, #0x64] + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 + strb r0, [r2] + movs r1, #0x2e + ldrsh r0, [r5, r1] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + movs r3, #0x32 + ldrsh r1, [r5, r3] + movs r3, #0x32 + ldrsh r2, [r4, r3] + subs r1, r1, r2 + ldr r2, [r4, #0x64] + ldrb r2, [r2, #1] + bl sub_0806FCD0 + cmp r0, #0 + bne _08060FCC +_08060FC2: + movs r0, #0 + b _08060FCE + .align 2, 0 +_08060FC8: .4byte gUnk_03001160 +_08060FCC: + movs r0, #1 +_08060FCE: + pop {r4, r5, pc} + + thumb_func_start sub_08060FD0 +sub_08060FD0: @ 0x08060FD0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + adds r4, r0, #0 + mov sb, r1 + mov r8, r2 + movs r0, #0x2e + ldrsh r7, [r4, r0] + movs r1, #0x32 + ldrsh r6, [r4, r1] + mov r2, sb + subs r0, r2, r7 + mov r5, r8 + subs r1, r5, r6 + bl sub_080045DA + lsls r7, r7, #8 + lsls r6, r6, #8 + ldr r3, _08061058 @ =gUnk_080C9160 + lsls r1, r0, #1 + adds r1, r1, r3 + movs r5, #0 + ldrsh r2, [r1, r5] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + str r1, [sp] + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r3 + movs r2, #0 + ldrsh r1, [r0, r2] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + str r0, [sp, #4] + adds r4, #0x38 + ldrb r0, [r4] + ldr r5, _0806105C @ =gUnk_0200D654 + mov sl, r5 + cmp r0, #2 + beq _0806102E + ldr r0, _08061060 @ =gUnk_02027EB4 + mov sl, r0 +_0806102E: + adds r1, r7, #0 + cmp r7, #0 + bge _08061036 + adds r1, #0xff +_08061036: + asrs r5, r1, #8 + adds r2, r6, #0 + cmp r6, #0 + bge _08061040 + adds r2, #0xff +_08061040: + asrs r4, r2, #8 + mov r0, sl + adds r1, r5, #0 + adds r2, r4, #0 + movs r3, #6 + bl sub_080AE4CC + cmp r0, #0 + beq _08061064 + movs r0, #0 + b _08061084 + .align 2, 0 +_08061058: .4byte gUnk_080C9160 +_0806105C: .4byte gUnk_0200D654 +_08061060: .4byte gUnk_02027EB4 +_08061064: + mov r1, sb + subs r0, r1, r5 + adds r0, #6 + cmp r0, #0xc + bhi _08061078 + mov r2, r8 + subs r0, r2, r4 + adds r0, #6 + cmp r0, #0xc + bls _08061082 +_08061078: + ldr r5, [sp] + adds r7, r7, r5 + ldr r0, [sp, #4] + subs r6, r6, r0 + b _0806102E +_08061082: + movs r0, #1 +_08061084: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08061090 +sub_08061090: @ 0x08061090 + push {r4, r5, r6, lr} + adds r3, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + ldr r1, _080610C8 @ =gUnk_03001160 + movs r0, #0x2e + ldrsh r2, [r1, r0] + movs r4, #0x2e + ldrsh r0, [r3, r4] + subs r2, r2, r0 + movs r4, #0x32 + ldrsh r0, [r1, r4] + movs r4, #0x32 + ldrsh r1, [r3, r4] + subs r0, r0, r1 + adds r1, r2, #0 + muls r1, r2, r1 + adds r2, r0, #0 + muls r2, r0, r2 + adds r0, r2, #0 + adds r1, r1, r0 + ldr r0, _080610CC @ =0x000008FF + cmp r1, r0 + bgt _080610D0 + movs r0, #0x90 + lsls r0, r0, #1 + b _080610F0 + .align 2, 0 +_080610C8: .4byte gUnk_03001160 +_080610CC: .4byte 0x000008FF +_080610D0: + ldr r0, _080610E4 @ =0x000018FF + cmp r1, r0 + bgt _080610EC + ldr r4, _080610E8 @ =0xFFFFF700 + adds r0, r1, r4 + asrs r0, r0, #4 + movs r1, #0x90 + lsls r1, r1, #1 + adds r0, r0, r1 + b _080610F0 + .align 2, 0 +_080610E4: .4byte 0x000018FF +_080610E8: .4byte 0xFFFFF700 +_080610EC: + movs r0, #0x88 + lsls r0, r0, #2 +_080610F0: + strh r0, [r3, #0x24] + movs r2, #0x24 + ldrsh r1, [r3, r2] + movs r0, #0x90 + lsls r0, r0, #1 + cmp r1, r0 + bne _08061102 + movs r4, #4 + b _0806110C +_08061102: + ldr r0, _0806111C @ =0x0000015F + movs r4, #0xc + cmp r1, r0 + bgt _0806110C + movs r4, #8 +_0806110C: + adds r0, r3, #0 + adds r1, r5, #0 + adds r2, r6, #0 + adds r3, r4, #0 + bl sub_08061120 + pop {r4, r5, r6, pc} + .align 2, 0 +_0806111C: .4byte 0x0000015F + + thumb_func_start sub_08061120 +sub_08061120: @ 0x08061120 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r4, r1, #0 + adds r5, r2, #0 + adds r7, r3, #0 + movs r1, #0x2e + ldrsh r0, [r6, r1] + movs r2, #0x32 + ldrsh r1, [r6, r2] + adds r2, r4, #0 + adds r3, r5, #0 + bl sub_080045D4 + strb r0, [r6, #0x15] + adds r0, r6, #0 + adds r0, #0x6c + ldrb r0, [r0] + cmp r7, r0 + bne _08061158 + ldrb r0, [r6, #0x15] + ldrb r1, [r6, #0x14] + lsls r1, r1, #2 + subs r0, r0, r1 + adds r0, #5 + movs r1, #0x1f + ands r0, r1 + cmp r0, #0xa + ble _0806116C +_08061158: + ldrb r0, [r6, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + asrs r0, r0, #2 + strb r0, [r6, #0x14] + adds r0, r6, #0 + adds r1, r7, #0 + bl sub_08060E70 +_0806116C: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08061170 +sub_08061170: @ 0x08061170 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_080AF1EC + cmp r0, #0 + bne _080611CA + adds r0, r4, #0 + bl sub_080611D4 + adds r5, r0, #0 + cmp r5, #0xff + beq _080611C6 + movs r0, #6 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl sub_08079FD4 + lsls r0, r0, #4 + subs r0, #4 + lsls r0, r0, #0xc + str r0, [r4, #0x20] + movs r1, #0x80 + lsls r1, r1, #1 + strh r1, [r4, #0x24] + strb r5, [r4, #0x15] + lsrs r1, r5, #2 + strb r1, [r4, #0x14] + lsrs r0, r0, #0x10 + cmp r0, #0 + beq _080611BE + adds r0, r4, #0 + movs r1, #0x14 + bl sub_08060E70 + b _080611C6 +_080611BE: + adds r0, r4, #0 + movs r1, #0x18 + bl sub_08060E70 +_080611C6: + movs r0, #0 + b _080611D2 +_080611CA: + adds r0, r4, #0 + bl sub_08016AD2 + movs r0, #1 +_080611D2: + pop {r4, r5, pc} + + thumb_func_start sub_080611D4 +sub_080611D4: @ 0x080611D4 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x14] + movs r0, #6 + ands r0, r1 + ldr r1, _08061218 @ =gUnk_0810AC4C + adds r0, r0, r1 + movs r1, #0 + ldrsb r1, [r0, r1] + movs r2, #1 + ldrsb r2, [r0, r2] + adds r0, r4, #0 + bl sub_080002B4 + adds r3, r0, #0 + ldr r2, _0806121C @ =gUnk_0810AC54 +_080611F4: + ldrb r0, [r2] + cmp r0, r3 + bne _08061220 + ldrb r0, [r2, #1] + ldrb r1, [r4, #0x14] + lsrs r0, r0, #2 + cmp r1, r0 + bne _08061220 + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #7 + bls _0806122A + ldrb r0, [r2, #1] + b _0806122C + .align 2, 0 +_08061218: .4byte gUnk_0810AC4C +_0806121C: .4byte gUnk_0810AC54 +_08061220: + adds r2, #2 + ldrb r0, [r2] + cmp r0, #0 + bne _080611F4 + strb r0, [r4, #0xf] +_0806122A: + movs r0, #0xff +_0806122C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08061230 +sub_08061230: @ 0x08061230 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x64] + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08061302 + adds r1, r4, #0 + adds r1, #0x41 + ldrb r3, [r1] + movs r0, #0x80 + ands r0, r3 + adds r2, r1, #0 + cmp r0, #0 + beq _0806133A + movs r0, #0x7f + ands r0, r3 + cmp r0, #0x1f + bhi _080612E8 + lsls r0, r0, #2 + ldr r1, _08061264 @ =_08061268 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08061264: .4byte _08061268 +_08061268: @ jump table + .4byte _0806133A @ case 0 + .4byte _0806133A @ case 1 + .4byte _0806133A @ case 2 + .4byte _0806133A @ case 3 + .4byte _080612E8 @ case 4 + .4byte _080612E8 @ case 5 + .4byte _080612E8 @ case 6 + .4byte _080612E8 @ case 7 + .4byte _080612E8 @ case 8 + .4byte _080612E8 @ case 9 + .4byte _080612E8 @ case 10 + .4byte _080612E8 @ case 11 + .4byte _080612E8 @ case 12 + .4byte _080612E8 @ case 13 + .4byte _080612E8 @ case 14 + .4byte _0806133A @ case 15 + .4byte _080612E8 @ case 16 + .4byte _080612E8 @ case 17 + .4byte _080612E8 @ case 18 + .4byte _0806133A @ case 19 + .4byte _080612E8 @ case 20 + .4byte _080612E8 @ case 21 + .4byte _080612E8 @ case 22 + .4byte _080612E8 @ case 23 + .4byte _080612E8 @ case 24 + .4byte _080612E8 @ case 25 + .4byte _080612E8 @ case 26 + .4byte _0806133A @ case 27 + .4byte _080612E8 @ case 28 + .4byte _080612E8 @ case 29 + .4byte _0806133A @ case 30 + .4byte _0806133A @ case 31 +_080612E8: + ldr r2, [r4, #0x64] + ldrb r1, [r2] + movs r0, #1 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 + adds r1, #0x40 + adds r0, r4, #0 + bl sub_080042AC + movs r0, #1 + b _08061356 +_08061302: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0806131A + movs r0, #1 + b _08061356 +_0806131A: + ldr r2, [r4, #0x64] + ldrb r1, [r2] + movs r0, #0xfe + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x6c + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 + ldrb r0, [r0] + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_080042AC + adds r2, r4, #0 + adds r2, #0x41 +_0806133A: + ldrb r0, [r2] + movs r1, #0x7f + ands r1, r0 + strb r1, [r2] + adds r1, r4, #0 + adds r1, #0x3d + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08061354 + adds r0, r2, #1 + strb r0, [r1] +_08061354: + movs r0, #0 +_08061356: + pop {r4, pc} + + thumb_func_start sub_08061358 +sub_08061358: @ 0x08061358 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xd] + cmp r5, #1 + beq _0806139C + cmp r5, #1 + bgt _0806136C + cmp r5, #0 + beq _08061376 + b _08061460 +_0806136C: + cmp r5, #2 + beq _080613D0 + cmp r5, #3 + beq _0806141E + b _08061460 +_08061376: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08061460 + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0xf + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0 + bl sub_08060E70 + b _08061460 +_0806139C: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08061460 + bl sub_08000E50 + adds r6, r0, #0 + ands r5, r6 + cmp r5, #0 + beq _080613FA + movs r0, #2 + strb r0, [r4, #0xd] + ldr r3, _080613CC @ =gUnk_0810AC5D + ldrb r0, [r4, #0x14] + lsls r0, r0, #1 + lsrs r1, r6, #4 + movs r2, #3 + ands r1, r2 + adds r0, r0, r1 + adds r0, r0, r3 + b _0806143A + .align 2, 0 +_080613CC: .4byte gUnk_0810AC5D +_080613D0: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08061460 + movs r0, #0x18 + ands r0, r1 + lsrs r0, r0, #2 + strb r0, [r4, #0x14] + bl sub_08000E50 + adds r1, r0, #0 + movs r0, #1 + ands r1, r0 + cmp r1, #0 + beq _08061412 +_080613FA: + movs r0, #3 + strb r0, [r4, #0xd] + movs r0, #0x18 + ands r6, r0 + adds r0, r6, #0 + adds r0, #0x1e + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #4 + bl sub_08060E70 + b _08061460 +_08061412: + strb r1, [r4, #0xd] + adds r0, r4, #0 + movs r1, #0x10 + bl sub_08060E70 + b _08061460 +_0806141E: + adds r0, r4, #0 + bl sub_08061170 + cmp r0, #0 + bne _08061448 + movs r0, #2 + strb r0, [r4, #0xd] + ldr r2, _08061444 @ =gUnk_0810AC5D + ldrb r0, [r4, #0x14] + lsls r0, r0, #1 + lsrs r1, r6, #4 + ands r1, r5 + adds r0, r0, r1 + adds r0, r0, r2 +_0806143A: + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080042AC + b _08061460 + .align 2, 0 +_08061444: .4byte gUnk_0810AC5D +_08061448: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _08061460 + strb r0, [r4, #0xd] + adds r0, r4, #0 + movs r1, #0x10 + bl sub_08060E70 +_08061460: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08061464 +sub_08061464: @ 0x08061464 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r4, r0, #0 + mov r8, r1 + adds r5, r2, #0 + movs r0, #0x2e + ldrsh r7, [r4, r0] + movs r1, #0x32 + ldrsh r6, [r4, r1] + adds r0, r7, #0 + adds r1, r6, #0 + mov r2, r8 + adds r3, r5, #0 + bl sub_080045D4 + adds r0, #2 + movs r1, #0x1c + ands r0, r1 + lsrs r0, r0, #2 + cmp r0, #7 + bls _08061494 + b _08061612 +_08061494: + lsls r0, r0, #2 + ldr r1, _080614A0 @ =_080614A4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080614A0: .4byte _080614A4 +_080614A4: @ jump table + .4byte _080614C4 @ case 0 + .4byte _080614E2 @ case 1 + .4byte _08061514 @ case 2 + .4byte _08061544 @ case 3 + .4byte _08061566 @ case 4 + .4byte _08061584 @ case 5 + .4byte _080615B4 @ case 6 + .4byte _080615E4 @ case 7 +_080614C4: + adds r0, r4, #0 + adds r0, #0x6e + strh r5, [r0] + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, r8 + ble _08061504 + adds r2, r6, #0 + subs r2, #8 + adds r0, r4, #0 + adds r1, r7, #0 + mov r3, r8 + bl sub_08061630 + b _08061612 +_080614E2: + movs r0, #0x6e + adds r0, r0, r4 + mov sb, r0 + mov r1, r8 + strh r1, [r0] + adds r1, r7, #0 + adds r1, #8 + adds r0, r4, #0 + adds r2, r6, #0 + adds r3, r5, #0 + bl sub_08061720 + cmp r0, #0 + beq _08061500 + b _08061612 +_08061500: + mov r0, sb + strh r5, [r0] +_08061504: + adds r2, r6, #0 + subs r2, #8 + adds r0, r4, #0 + adds r1, r7, #0 + mov r3, r8 + bl sub_080616A8 + b _08061612 +_08061514: + adds r0, r4, #0 + adds r0, #0x6e + mov r1, r8 + strh r1, [r0] + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, r5 + ble _08061534 + adds r1, r7, #0 + adds r1, #8 + adds r0, r4, #0 + adds r2, r6, #0 + adds r3, r5, #0 + bl sub_08061720 + b _08061612 +_08061534: + adds r1, r7, #0 + adds r1, #8 + adds r0, r4, #0 + adds r2, r6, #0 + adds r3, r5, #0 + bl sub_08061798 + b _08061612 +_08061544: + movs r0, #0x6e + adds r0, r0, r4 + mov sb, r0 + mov r1, r8 + strh r1, [r0] + adds r1, r7, #0 + adds r1, #8 + adds r0, r4, #0 + adds r2, r6, #0 + adds r3, r5, #0 + bl sub_08061798 + cmp r0, #0 + bne _08061612 + mov r0, sb + strh r5, [r0] + b _08061574 +_08061566: + adds r0, r4, #0 + adds r0, #0x6e + strh r5, [r0] + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, r8 + bgt _080615A4 +_08061574: + adds r2, r6, #0 + adds r2, #8 + adds r0, r4, #0 + adds r1, r7, #0 + mov r3, r8 + bl sub_08061888 + b _08061612 +_08061584: + movs r0, #0x6e + adds r0, r0, r4 + mov sb, r0 + mov r1, r8 + strh r1, [r0] + adds r1, r7, #0 + subs r1, #8 + adds r0, r4, #0 + adds r2, r6, #0 + adds r3, r5, #0 + bl sub_08061978 + cmp r0, #0 + bne _08061612 + mov r0, sb + strh r5, [r0] +_080615A4: + adds r2, r6, #0 + adds r2, #8 + adds r0, r4, #0 + adds r1, r7, #0 + mov r3, r8 + bl sub_08061810 + b _08061612 +_080615B4: + adds r0, r4, #0 + adds r0, #0x6e + mov r1, r8 + strh r1, [r0] + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, r5 + ble _080615D4 + adds r1, r7, #0 + subs r1, #8 + adds r0, r4, #0 + adds r2, r6, #0 + adds r3, r5, #0 + bl sub_08061900 + b _08061612 +_080615D4: + adds r1, r7, #0 + subs r1, #8 + adds r0, r4, #0 + adds r2, r6, #0 + adds r3, r5, #0 + bl sub_08061978 + b _08061612 +_080615E4: + movs r0, #0x6e + adds r0, r0, r4 + mov sb, r0 + mov r1, r8 + strh r1, [r0] + adds r1, r7, #0 + subs r1, #8 + adds r0, r4, #0 + adds r2, r6, #0 + adds r3, r5, #0 + bl sub_08061900 + cmp r0, #0 + bne _08061612 + mov r0, sb + strh r5, [r0] + adds r2, r6, #0 + subs r2, #8 + adds r0, r4, #0 + adds r1, r7, #0 + mov r3, r8 + bl sub_08061630 +_08061612: + ldr r0, [r4, #0x64] + ldrb r1, [r0] + movs r0, #8 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _08061628 + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_08061628: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08061630 +sub_08061630: @ 0x08061630 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + adds r6, r1, #0 + adds r4, r2, #0 + mov sb, r3 + mov r8, r4 + adds r0, #0x38 + ldrb r0, [r0] + ldr r7, _08061650 @ =gUnk_02027EB4 + cmp r0, #2 + bne _0806168C + ldr r7, _08061654 @ =gUnk_0200D654 + b _0806168C + .align 2, 0 +_08061650: .4byte gUnk_02027EB4 +_08061654: .4byte gUnk_0200D654 +_08061658: + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r4, #0 + mov r3, sb + bl sub_08061A74 + cmp r0, #0 + beq _0806168A + ldr r0, [r5, #0x64] + strh r6, [r0, #0xe] + ldr r0, [r5, #0x64] + mov r1, r8 + strh r1, [r0, #0x10] + ldr r2, [r5, #0x64] + ldrb r1, [r2] + movs r0, #8 + orrs r0, r1 + strb r0, [r2] + adds r0, r5, #0 + adds r0, #0x6e + ldrh r0, [r0] + cmp r0, r4 + blt _0806168A + movs r0, #1 + b _0806169E +_0806168A: + subs r4, #8 +_0806168C: + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r4, #0 + movs r3, #6 + bl sub_080AE4CC + cmp r0, #0 + beq _08061658 + movs r0, #0 +_0806169E: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_080616A8 +sub_080616A8: @ 0x080616A8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + adds r6, r1, #0 + adds r4, r2, #0 + mov sb, r3 + mov r8, r4 + adds r0, #0x38 + ldrb r0, [r0] + ldr r7, _080616C8 @ =gUnk_02027EB4 + cmp r0, #2 + bne _08061704 + ldr r7, _080616CC @ =gUnk_0200D654 + b _08061704 + .align 2, 0 +_080616C8: .4byte gUnk_02027EB4 +_080616CC: .4byte gUnk_0200D654 +_080616D0: + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r4, #0 + mov r3, sb + bl sub_08061A1C + cmp r0, #0 + beq _08061702 + ldr r0, [r5, #0x64] + strh r6, [r0, #0xe] + ldr r0, [r5, #0x64] + mov r1, r8 + strh r1, [r0, #0x10] + ldr r2, [r5, #0x64] + ldrb r1, [r2] + movs r0, #8 + orrs r0, r1 + strb r0, [r2] + adds r0, r5, #0 + adds r0, #0x6e + ldrh r0, [r0] + cmp r0, r4 + blt _08061702 + movs r0, #1 + b _08061716 +_08061702: + subs r4, #8 +_08061704: + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r4, #0 + movs r3, #6 + bl sub_080AE4CC + cmp r0, #0 + beq _080616D0 + movs r0, #0 +_08061716: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08061720 +sub_08061720: @ 0x08061720 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + adds r4, r1, #0 + adds r6, r2, #0 + mov sb, r3 + mov r8, r4 + adds r0, #0x38 + ldrb r0, [r0] + ldr r7, _08061740 @ =gUnk_02027EB4 + cmp r0, #2 + bne _0806177C + ldr r7, _08061744 @ =gUnk_0200D654 + b _0806177C + .align 2, 0 +_08061740: .4byte gUnk_02027EB4 +_08061744: .4byte gUnk_0200D654 +_08061748: + adds r0, r7, #0 + adds r1, r4, #0 + adds r2, r6, #0 + mov r3, sb + bl sub_080619F0 + cmp r0, #0 + beq _0806177A + ldr r0, [r5, #0x64] + mov r1, r8 + strh r1, [r0, #0xe] + ldr r0, [r5, #0x64] + strh r6, [r0, #0x10] + ldr r2, [r5, #0x64] + ldrb r1, [r2] + movs r0, #8 + orrs r0, r1 + strb r0, [r2] + adds r0, r5, #0 + adds r0, #0x6e + ldrh r0, [r0] + cmp r0, r4 + bgt _0806177A + movs r0, #1 + b _0806178E +_0806177A: + adds r4, #8 +_0806177C: + adds r0, r7, #0 + adds r1, r4, #0 + adds r2, r6, #0 + movs r3, #6 + bl sub_080AE4CC + cmp r0, #0 + beq _08061748 + movs r0, #0 +_0806178E: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08061798 +sub_08061798: @ 0x08061798 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + adds r4, r1, #0 + adds r6, r2, #0 + mov sb, r3 + mov r8, r4 + adds r0, #0x38 + ldrb r0, [r0] + ldr r7, _080617B8 @ =gUnk_02027EB4 + cmp r0, #2 + bne _080617F4 + ldr r7, _080617BC @ =gUnk_0200D654 + b _080617F4 + .align 2, 0 +_080617B8: .4byte gUnk_02027EB4 +_080617BC: .4byte gUnk_0200D654 +_080617C0: + adds r0, r7, #0 + adds r1, r4, #0 + adds r2, r6, #0 + mov r3, sb + bl sub_08061A48 + cmp r0, #0 + beq _080617F2 + ldr r0, [r5, #0x64] + mov r1, r8 + strh r1, [r0, #0xe] + ldr r0, [r5, #0x64] + strh r6, [r0, #0x10] + ldr r2, [r5, #0x64] + ldrb r1, [r2] + movs r0, #8 + orrs r0, r1 + strb r0, [r2] + adds r0, r5, #0 + adds r0, #0x6e + ldrh r0, [r0] + cmp r0, r4 + bgt _080617F2 + movs r0, #1 + b _08061806 +_080617F2: + adds r4, #8 +_080617F4: + adds r0, r7, #0 + adds r1, r4, #0 + adds r2, r6, #0 + movs r3, #6 + bl sub_080AE4CC + cmp r0, #0 + beq _080617C0 + movs r0, #0 +_08061806: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08061810 +sub_08061810: @ 0x08061810 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + adds r6, r1, #0 + adds r4, r2, #0 + mov sb, r3 + mov r8, r4 + adds r0, #0x38 + ldrb r0, [r0] + ldr r7, _08061830 @ =gUnk_02027EB4 + cmp r0, #2 + bne _0806186C + ldr r7, _08061834 @ =gUnk_0200D654 + b _0806186C + .align 2, 0 +_08061830: .4byte gUnk_02027EB4 +_08061834: .4byte gUnk_0200D654 +_08061838: + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r4, #0 + mov r3, sb + bl sub_08061A74 + cmp r0, #0 + beq _0806186A + ldr r0, [r5, #0x64] + strh r6, [r0, #0xe] + ldr r0, [r5, #0x64] + mov r1, r8 + strh r1, [r0, #0x10] + ldr r2, [r5, #0x64] + ldrb r1, [r2] + movs r0, #8 + orrs r0, r1 + strb r0, [r2] + adds r0, r5, #0 + adds r0, #0x6e + ldrh r0, [r0] + cmp r0, r4 + bgt _0806186A + movs r0, #1 + b _0806187E +_0806186A: + adds r4, #8 +_0806186C: + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r4, #0 + movs r3, #6 + bl sub_080AE4CC + cmp r0, #0 + beq _08061838 + movs r0, #0 +_0806187E: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08061888 +sub_08061888: @ 0x08061888 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + adds r6, r1, #0 + adds r4, r2, #0 + mov sb, r3 + mov r8, r4 + adds r0, #0x38 + ldrb r0, [r0] + ldr r7, _080618A8 @ =gUnk_02027EB4 + cmp r0, #2 + bne _080618E4 + ldr r7, _080618AC @ =gUnk_0200D654 + b _080618E4 + .align 2, 0 +_080618A8: .4byte gUnk_02027EB4 +_080618AC: .4byte gUnk_0200D654 +_080618B0: + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r4, #0 + mov r3, sb + bl sub_08061A1C + cmp r0, #0 + beq _080618E2 + ldr r0, [r5, #0x64] + strh r6, [r0, #0xe] + ldr r0, [r5, #0x64] + mov r1, r8 + strh r1, [r0, #0x10] + ldr r2, [r5, #0x64] + ldrb r1, [r2] + movs r0, #8 + orrs r0, r1 + strb r0, [r2] + adds r0, r5, #0 + adds r0, #0x6e + ldrh r0, [r0] + cmp r0, r4 + bgt _080618E2 + movs r0, #1 + b _080618F6 +_080618E2: + adds r4, #8 +_080618E4: + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r4, #0 + movs r3, #6 + bl sub_080AE4CC + cmp r0, #0 + beq _080618B0 + movs r0, #0 +_080618F6: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08061900 +sub_08061900: @ 0x08061900 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + adds r4, r1, #0 + adds r6, r2, #0 + mov sb, r3 + mov r8, r4 + adds r0, #0x38 + ldrb r0, [r0] + ldr r7, _08061920 @ =gUnk_02027EB4 + cmp r0, #2 + bne _0806195C + ldr r7, _08061924 @ =gUnk_0200D654 + b _0806195C + .align 2, 0 +_08061920: .4byte gUnk_02027EB4 +_08061924: .4byte gUnk_0200D654 +_08061928: + adds r0, r7, #0 + adds r1, r4, #0 + adds r2, r6, #0 + mov r3, sb + bl sub_080619F0 + cmp r0, #0 + beq _0806195A + ldr r0, [r5, #0x64] + mov r1, r8 + strh r1, [r0, #0xe] + ldr r0, [r5, #0x64] + strh r6, [r0, #0x10] + ldr r2, [r5, #0x64] + ldrb r1, [r2] + movs r0, #8 + orrs r0, r1 + strb r0, [r2] + adds r0, r5, #0 + adds r0, #0x6e + ldrh r0, [r0] + cmp r0, r4 + blt _0806195A + movs r0, #1 + b _0806196E +_0806195A: + subs r4, #8 +_0806195C: + adds r0, r7, #0 + adds r1, r4, #0 + adds r2, r6, #0 + movs r3, #6 + bl sub_080AE4CC + cmp r0, #0 + beq _08061928 + movs r0, #0 +_0806196E: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08061978 +sub_08061978: @ 0x08061978 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + adds r4, r1, #0 + adds r6, r2, #0 + mov sb, r3 + mov r8, r4 + adds r0, #0x38 + ldrb r0, [r0] + ldr r7, _08061998 @ =gUnk_02027EB4 + cmp r0, #2 + bne _080619D4 + ldr r7, _0806199C @ =gUnk_0200D654 + b _080619D4 + .align 2, 0 +_08061998: .4byte gUnk_02027EB4 +_0806199C: .4byte gUnk_0200D654 +_080619A0: + adds r0, r7, #0 + adds r1, r4, #0 + adds r2, r6, #0 + mov r3, sb + bl sub_08061A48 + cmp r0, #0 + beq _080619D2 + ldr r0, [r5, #0x64] + mov r1, r8 + strh r1, [r0, #0xe] + ldr r0, [r5, #0x64] + strh r6, [r0, #0x10] + ldr r2, [r5, #0x64] + ldrb r1, [r2] + movs r0, #8 + orrs r0, r1 + strb r0, [r2] + adds r0, r5, #0 + adds r0, #0x6e + ldrh r0, [r0] + cmp r0, r4 + blt _080619D2 + movs r0, #1 + b _080619E6 +_080619D2: + subs r4, #8 +_080619D4: + adds r0, r7, #0 + adds r1, r4, #0 + adds r2, r6, #0 + movs r3, #6 + bl sub_080AE4CC + cmp r0, #0 + beq _080619A0 + movs r0, #0 +_080619E6: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_080619F0 +sub_080619F0: @ 0x080619F0 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r6, r1, #0 + adds r4, r2, #0 + adds r5, r3, #0 + cmp r5, r4 + bgt _08061A18 +_080619FE: + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r4, #0 + movs r3, #6 + bl sub_080AE4CC + cmp r0, #0 + beq _08061A12 + movs r0, #0 + b _08061A1A +_08061A12: + subs r4, #8 + cmp r5, r4 + ble _080619FE +_08061A18: + movs r0, #1 +_08061A1A: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08061A1C +sub_08061A1C: @ 0x08061A1C + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r4, r1, #0 + adds r6, r2, #0 + adds r5, r3, #0 + cmp r5, r4 + blt _08061A44 +_08061A2A: + adds r0, r7, #0 + adds r1, r4, #0 + adds r2, r6, #0 + movs r3, #6 + bl sub_080AE4CC + cmp r0, #0 + beq _08061A3E + movs r0, #0 + b _08061A46 +_08061A3E: + adds r4, #8 + cmp r5, r4 + bge _08061A2A +_08061A44: + movs r0, #1 +_08061A46: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08061A48 +sub_08061A48: @ 0x08061A48 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r6, r1, #0 + adds r4, r2, #0 + adds r5, r3, #0 + cmp r5, r4 + blt _08061A70 +_08061A56: + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r4, #0 + movs r3, #6 + bl sub_080AE4CC + cmp r0, #0 + beq _08061A6A + movs r0, #0 + b _08061A72 +_08061A6A: + adds r4, #8 + cmp r5, r4 + bge _08061A56 +_08061A70: + movs r0, #1 +_08061A72: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08061A74 +sub_08061A74: @ 0x08061A74 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r4, r1, #0 + adds r6, r2, #0 + adds r5, r3, #0 + cmp r5, r4 + bgt _08061A9C +_08061A82: + adds r0, r7, #0 + adds r1, r4, #0 + adds r2, r6, #0 + movs r3, #6 + bl sub_080AE4CC + cmp r0, #0 + beq _08061A96 + movs r0, #0 + b _08061A9E +_08061A96: + subs r4, #8 + cmp r5, r4 + ble _08061A82 +_08061A9C: + movs r0, #1 +_08061A9E: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08061AA0 +sub_08061AA0: @ 0x08061AA0 + push {lr} + bl sub_0805E780 + pop {pc} + + thumb_func_start sub_08061AA8 +sub_08061AA8: @ 0x08061AA8 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08061AC8 @ =gUnk_0810AC70 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 + pop {r4, pc} + .align 2, 0 +_08061AC8: .4byte gUnk_0810AC70 + + thumb_func_start sub_08061ACC +sub_08061ACC: @ 0x08061ACC + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #0x20 + movs r2, #0 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xff + strb r0, [r4, #0xd] + strb r2, [r4, #0xe] + ldrb r1, [r4, #0x17] + movs r0, #0xfe + ands r0, r1 + strb r0, [r4, #0x17] + adds r0, r4, #0 + bl sub_08078778 + adds r0, r4, #0 + bl sub_08061AFC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08061AFC +sub_08061AFC: @ 0x08061AFC + push {lr} + adds r1, r0, #0 + movs r2, #0 + ldrb r0, [r1, #0xd] + cmp r0, #0 + beq _08061B12 + strb r2, [r1, #0xd] + ldr r0, _08061B14 @ =gUnk_0810B660 + ldr r0, [r0] + str r0, [r1, #0x68] + strb r2, [r1, #0xe] +_08061B12: + pop {pc} + .align 2, 0 +_08061B14: .4byte gUnk_0810B660 + + thumb_func_start sub_08061B18 +sub_08061B18: @ 0x08061B18 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08061B54 + cmp r0, #1 + bne _08061B54 + movs r0, #0 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08061AFC + ldr r2, [r4, #0x68] + ldrb r0, [r4, #0xe] + adds r1, r0, #1 + strb r1, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r2, r2, r0 + ldrh r0, [r2, #2] + cmp r0, #0 + bne _08061B4C + strb r0, [r4, #0xe] +_08061B4C: + ldrh r0, [r2] + adds r1, r4, #0 + bl sub_08056398 +_08061B54: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08061B58 +sub_08061B58: @ 0x08061B58 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08061B6E + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC +_08061B6E: + ldr r0, _08061B88 @ =gUnk_030010A0 + adds r0, #0x2c + ldrb r0, [r0] + cmp r0, #2 + bne _08061B7E + adds r0, r4, #0 + bl sub_080042B8 +_08061B7E: + adds r0, r4, #0 + bl sub_0806FD3C + pop {r4, pc} + .align 2, 0 +_08061B88: .4byte gUnk_030010A0 + + thumb_func_start sub_08061B8C +sub_08061B8C: @ 0x08061B8C + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08061BB0 + ldr r0, _08061BAC @ =gUnk_0810B77C + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _08061BC0 + .align 2, 0 +_08061BAC: .4byte gUnk_0810B77C +_08061BB0: + ldr r0, _08061BC4 @ =gUnk_0810B774 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 +_08061BC0: + pop {pc} + .align 2, 0 +_08061BC4: .4byte gUnk_0810B774 + + thumb_func_start sub_08061BC8 +sub_08061BC8: @ 0x08061BC8 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08061BFC @ =gUnk_0810B6EC + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _08061BF8 + movs r0, #2 + strb r0, [r4, #0x14] + ldrb r0, [r4, #0xa] + adds r0, #1 + strb r0, [r4, #0xf] + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_08061CB4 +_08061BF8: + pop {r4, pc} + .align 2, 0 +_08061BFC: .4byte gUnk_0810B6EC + + thumb_func_start sub_08061C00 +sub_08061C00: @ 0x08061C00 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x20 + movs r2, #0x20 + bl sub_0806ED9C + adds r1, r0, #0 + cmp r1, #0 + bge _08061C18 + ldrb r0, [r4, #0x14] + adds r1, r0, #4 + b _08061C32 +_08061C18: + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _08061C24 + movs r0, #0x10 + strb r0, [r4, #0xf] + b _08061C32 +_08061C24: + subs r0, #1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + movs r1, #3 + ands r1, r0 +_08061C32: + adds r0, r4, #0 + bl sub_08061CB4 + adds r0, r4, #0 + bl sub_0806ED78 + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08061C58 + movs r0, #0 + strb r0, [r1] + ldrb r0, [r4, #0xb] + ldr r1, _08061C5C @ =0x00000A01 + adds r0, r0, r1 + bl sub_08056378 +_08061C58: + pop {r4, pc} + .align 2, 0 +_08061C5C: .4byte 0x00000A01 + + thumb_func_start sub_08061C60 +sub_08061C60: @ 0x08061C60 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x58 + ldrb r1, [r0] + movs r0, #3 + ands r0, r1 + ldr r1, _08061CAC @ =gUnk_0810B78C + adds r0, r0, r1 + ldrb r1, [r0] + ldr r5, _08061CB0 @ =gUnk_0810B680 + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r5 + ldrb r2, [r0] + adds r2, r1, r2 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r5 + ldrb r0, [r0, #1] + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + pop {r4, r5, pc} + .align 2, 0 +_08061CAC: .4byte gUnk_0810B78C +_08061CB0: .4byte gUnk_0810B680 + + thumb_func_start sub_08061CB4 +sub_08061CB4: @ 0x08061CB4 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, r1 + beq _08061CC8 + adds r0, r4, #0 + bl sub_08004260 + b _08061CCE +_08061CC8: + adds r0, r4, #0 + bl sub_08004274 +_08061CCE: + adds r2, r4, #0 + adds r2, #0x59 + ldrb r0, [r2] + cmp r0, #0xff + bne _08061CE4 + ldr r0, _08061CE8 @ =gUnk_0810B680 + ldrb r1, [r4, #0xa] + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #2] + strb r0, [r2] +_08061CE4: + pop {r4, pc} + .align 2, 0 +_08061CE8: .4byte gUnk_0810B680 + + thumb_func_start sub_08061CEC +sub_08061CEC: @ 0x08061CEC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08061D38 @ =gUnk_0810B6EC + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _08061D62 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xe] + strb r0, [r4, #0x14] + adds r1, r4, #0 + adds r1, #0x69 + movs r0, #0xff + strb r0, [r1] + adds r0, r4, #0 + bl sub_0805ACC0 + adds r1, r0, #0 + cmp r1, #0 + bne _08061D3C + ldrh r0, [r4, #0x2e] + adds r1, r4, #0 + adds r1, #0x6a + strh r0, [r1] + ldrh r1, [r4, #0x32] + b _08061D44 + .align 2, 0 +_08061D38: .4byte gUnk_0810B6EC +_08061D3C: + lsrs r0, r1, #0x10 + adds r2, r4, #0 + adds r2, #0x6a + strh r0, [r2] +_08061D44: + adds r0, r4, #0 + adds r0, #0x6c + strh r1, [r0] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + bl sub_08061D64 +_08061D62: + pop {r4, pc} + + thumb_func_start sub_08061D64 +sub_08061D64: @ 0x08061D64 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r5, #0 + adds r4, #0x39 + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #2 + bne _08061DB0 + movs r1, #0 + movs r0, #3 + strb r0, [r5, #0xc] + strb r1, [r4] + adds r0, r5, #0 + bl sub_0806F118 + adds r4, #0x1f + ldrb r0, [r4] + adds r1, r5, #0 + adds r1, #0x69 + strb r0, [r1] + ldr r1, _08061DAC @ =gUnk_03001160 + adds r0, r5, #0 + bl sub_080045C4 + bl sub_0806F5A4 + ldrb r1, [r4] + movs r2, #4 + rsbs r2, r2, #0 + ands r1, r2 + adds r1, r1, r0 + adds r0, r5, #0 + bl sub_08004260 + b _08061E18 + .align 2, 0 +_08061DAC: .4byte gUnk_03001160 +_08061DB0: + adds r0, r5, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r5, #0 + bl sub_0807DDE4 + adds r2, r5, #0 + adds r2, #0x59 + ldrb r0, [r2] + cmp r0, #0xff + bne _08061DD4 + ldr r0, _08061E1C @ =gUnk_0810B680 + ldrb r1, [r5, #0xa] + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #2] + strb r0, [r2] +_08061DD4: + adds r0, r5, #0 + bl sub_08004274 + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #0 + beq _08061E18 + movs r1, #0 + movs r0, #2 + strb r0, [r5, #0xc] + strb r1, [r4] + adds r0, r5, #0 + bl sub_08062048 + adds r4, r5, #0 + adds r4, #0x58 + ldrb r0, [r4] + adds r1, r5, #0 + adds r1, #0x69 + strb r0, [r1] + ldr r1, _08061E20 @ =gUnk_03001160 + adds r0, r5, #0 + bl sub_080045C4 + bl sub_0806F5A4 + ldrb r1, [r4] + movs r2, #4 + rsbs r2, r2, #0 + ands r1, r2 + adds r1, r1, r0 + adds r0, r5, #0 + bl sub_08004260 +_08061E18: + pop {r4, r5, pc} + .align 2, 0 +_08061E1C: .4byte gUnk_0810B680 +_08061E20: .4byte gUnk_03001160 + + thumb_func_start sub_08061E24 +sub_08061E24: @ 0x08061E24 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldr r0, _08061E4C @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08061E48 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x69 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08004260 +_08061E48: + pop {r4, pc} + .align 2, 0 +_08061E4C: .4byte gUnk_02000050 + + thumb_func_start sub_08061E50 +sub_08061E50: @ 0x08061E50 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08061E6C + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x69 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08004260 +_08061E6C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08061E70 +sub_08061E70: @ 0x08061E70 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #9] + cmp r0, #6 + bne _08061E88 + adds r0, r2, #0 + adds r0, #0x68 + ldrb r1, [r0] + adds r0, r2, #0 + bl sub_08078784 + b _08061E8E +_08061E88: + adds r0, r2, #0 + bl sub_08078778 +_08061E8E: + pop {pc} + + thumb_func_start sub_08061E90 +sub_08061E90: @ 0x08061E90 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r5, #0x18] + cmp r0, #0 + bne _08061F04 + adds r0, #1 + strb r0, [r5, #0x18] + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + adds r0, #0x20 + strh r0, [r5, #0x12] + bl sub_08000E50 + adds r1, r0, #0 + movs r0, #0x18 + ands r1, r0 + ldrb r0, [r4, #0x15] + cmp r0, #8 + beq _08061ED8 + cmp r0, #8 + bgt _08061EC6 + cmp r0, #0 + beq _08061ED0 + b _08061EEE +_08061EC6: + cmp r0, #0x10 + beq _08061EE0 + cmp r0, #0x18 + beq _08061EE8 + b _08061EEE +_08061ED0: + cmp r1, #0x10 + bne _08061EEE + movs r1, #8 + b _08061EEE +_08061ED8: + cmp r1, #0x18 + bne _08061EEE + movs r1, #0x10 + b _08061EEE +_08061EE0: + cmp r1, #0 + bne _08061EEE + movs r1, #0x18 + b _08061EEE +_08061EE8: + cmp r1, #8 + bne _08061EEE + movs r1, #0 +_08061EEE: + strb r1, [r4, #0x15] + adds r0, r1, #0 + bl sub_0806F5B0 + strb r0, [r4, #0x14] + ldr r1, _08061F8C @ =gUnk_0810B74A + ldrb r0, [r4, #0xa] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r4, #0x24] +_08061F04: + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + adds r1, r0, #4 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r1, r0 + beq _08061F1A + adds r0, r4, #0 + bl sub_08004260 +_08061F1A: + adds r0, r4, #0 + bl sub_080AEF88 + movs r0, #0x2e + ldrsh r1, [r4, r0] + adds r2, r4, #0 + adds r2, #0x6a + movs r3, #0 + ldrsh r0, [r2, r3] + subs r1, r1, r0 + cmp r1, #0x10 + ble _08061F3C + ldrh r0, [r2] + adds r0, #0x10 + strh r0, [r4, #0x2e] + movs r0, #1 + strh r0, [r5, #0x12] +_08061F3C: + movs r3, #0x10 + rsbs r3, r3, #0 + cmp r1, r3 + bge _08061F4E + ldrh r0, [r2] + subs r0, #0x10 + strh r0, [r4, #0x2e] + movs r0, #1 + strh r0, [r5, #0x12] +_08061F4E: + movs r6, #0x32 + ldrsh r1, [r4, r6] + adds r2, r4, #0 + adds r2, #0x6c + movs r6, #0 + ldrsh r0, [r2, r6] + subs r1, r1, r0 + cmp r1, #0x10 + ble _08061F6A + ldrh r0, [r2] + adds r0, #0x10 + strh r0, [r4, #0x32] + movs r0, #1 + strh r0, [r5, #0x12] +_08061F6A: + cmp r1, r3 + bge _08061F78 + ldrh r0, [r2] + subs r0, #0x10 + strh r0, [r4, #0x32] + movs r0, #1 + strh r0, [r5, #0x12] +_08061F78: + ldrh r0, [r5, #0x12] + subs r0, #1 + strh r0, [r5, #0x12] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08061F8A + ldr r1, _08061F90 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_08061F8A: + pop {r4, r5, r6, pc} + .align 2, 0 +_08061F8C: .4byte gUnk_0810B74A +_08061F90: .4byte gUnk_02033280 + + thumb_func_start sub_08061F94 +sub_08061F94: @ 0x08061F94 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x35 + movs r2, #0 + bl sub_080A29AC + adds r1, r0, #0 + cmp r1, #0 + beq _08061FAC + adds r0, r4, #0 + bl sub_0806FAB0 +_08061FAC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08061FB0 +sub_08061FB0: @ 0x08061FB0 + movs r1, #0 + str r1, [r0, #0x48] + bx lr + .align 2, 0 + + thumb_func_start sub_08061FB8 +sub_08061FB8: @ 0x08061FB8 + push {lr} + ldr r2, _08061FD0 @ =gUnk_0810B748 + ldr r3, [r1, #4] + adds r2, r3, r2 + ldrb r2, [r2] + lsls r3, r3, #2 + ldr r1, _08061FD4 @ =gUnk_0810B740 + adds r3, r3, r1 + movs r1, #1 + bl sub_08078850 + pop {pc} + .align 2, 0 +_08061FD0: .4byte gUnk_0810B748 +_08061FD4: .4byte gUnk_0810B740 + + thumb_func_start sub_08061FD8 +sub_08061FD8: @ 0x08061FD8 + push {lr} + ldrb r1, [r0, #0x14] + lsrs r1, r1, #1 + bl sub_08004260 + pop {pc} + + thumb_func_start sub_08061FE4 +sub_08061FE4: @ 0x08061FE4 + push {lr} + ldrb r1, [r0, #0x14] + lsrs r1, r1, #1 + adds r1, #4 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08061FF4 +sub_08061FF4: @ 0x08061FF4 + push {lr} + adds r1, r0, #0 + ldr r2, _08062008 @ =gUnk_0810B790 + ldrb r0, [r1, #0xa] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + bl sub_08056398 + pop {pc} + .align 2, 0 +_08062008: .4byte gUnk_0810B790 + + thumb_func_start sub_0806200C +sub_0806200C: @ 0x0806200C + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 + movs r0, #0x29 + bl sub_0807CC30 + cmp r0, #0 + beq _08062034 + movs r0, #0x6b + bl sub_0807CBD0 + cmp r0, #0 + beq _08062034 + movs r0, #0x39 + bl sub_0807CA84 + movs r4, #1 + cmp r0, #2 + bne _08062034 + movs r4, #2 +_08062034: + ldr r0, _08062044 @ =gUnk_0810B7BA + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl sub_08056398 + pop {r4, r5, pc} + .align 2, 0 +_08062044: .4byte gUnk_0810B7BA + + thumb_func_start sub_08062048 +sub_08062048: @ 0x08062048 + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #9] + cmp r0, #6 + bne _0806207C + ldr r0, _08062074 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + subs r0, #2 + cmp r0, #0 + bge _0806205E + movs r0, #0 +_0806205E: + ldrb r1, [r3, #0xa] + lsls r1, r1, #6 + lsls r0, r0, #3 + ldr r2, _08062078 @ =gUnk_0810B7C0 + adds r0, r0, r2 + adds r1, r1, r0 + adds r0, r3, #0 + bl sub_0806F1AC + b _08062084 + .align 2, 0 +_08062074: .4byte gUnk_02002A40 +_08062078: .4byte gUnk_0810B7C0 +_0806207C: + movs r0, #0 + adds r1, r3, #0 + bl sub_08056398 +_08062084: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08062088 +sub_08062088: @ 0x08062088 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080620BA + ldr r1, _080620C4 @ =gUnk_0810B6EC + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _080620C2 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] +_080620BA: + adds r0, r4, #0 + movs r1, #6 + bl sub_08061CB4 +_080620C2: + pop {r4, pc} + .align 2, 0 +_080620C4: .4byte gUnk_0810B6EC + + thumb_func_start sub_080620C8 +sub_080620C8: @ 0x080620C8 + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080620DE + adds r0, r2, #0 + bl sub_080621AC + b _080620EE +_080620DE: + ldr r0, _080620F0 @ =gUnk_0810BE0C + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 +_080620EE: + pop {pc} + .align 2, 0 +_080620F0: .4byte gUnk_0810BE0C + + thumb_func_start sub_080620F4 +sub_080620F4: @ 0x080620F4 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0806212C @ =gUnk_0810BDC4 + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806212A + movs r1, #0 + movs r0, #4 + strb r0, [r4, #0x14] + adds r0, r4, #0 + adds r0, #0x68 + strb r1, [r0] + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC + adds r0, r4, #0 + bl sub_08078778 +_0806212A: + pop {r4, pc} + .align 2, 0 +_0806212C: .4byte gUnk_0810BDC4 + + thumb_func_start sub_08062130 +sub_08062130: @ 0x08062130 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _08062152 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0806EDC4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_080042AC +_08062152: + ldrb r0, [r4, #0xf] + adds r1, r0, #1 + strb r1, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x78 + bls _08062184 + movs r0, #0 + strb r0, [r4, #0xf] + ldrb r0, [r4, #0xe] + adds r1, r0, #1 + movs r0, #7 + ands r1, r0 + strb r1, [r4, #0xe] + ldrb r0, [r4, #0xa] + cmp r0, #6 + bne _0806217A + adds r0, r1, #0 + adds r0, #0x10 + strb r0, [r4, #0xe] +_0806217A: + ldrb r1, [r4, #0xe] + adds r0, r4, #0 + bl sub_080042AC + b _0806218A +_08062184: + adds r0, r4, #0 + bl sub_080042B8 +_0806218A: + adds r0, r4, #0 + bl sub_0806ED78 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08062194 +sub_08062194: @ 0x08062194 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0 + bl sub_08056378 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r4, #0x39 + strb r1, [r4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080621AC +sub_080621AC: @ 0x080621AC + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xc] + cmp r5, #1 + beq _08062234 + cmp r5, #1 + bgt _080621C0 + cmp r5, #0 + beq _080621CE + b _080622F2 +_080621C0: + cmp r5, #2 + bne _080621C6 + b _080622CC +_080621C6: + cmp r5, #3 + bne _080621CC + b _080622E4 +_080621CC: + b _080622F2 +_080621CE: + ldr r1, _0806221C @ =gUnk_0810BDC4 + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + bne _080621E4 + b _080622F2 +_080621E4: + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xe] + strb r0, [r4, #0x14] + strb r5, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x68 + strb r5, [r0] + adds r0, #1 + strb r5, [r0] + adds r1, r4, #0 + adds r1, #0x6b + movs r0, #0xff + strb r0, [r1] + adds r0, r4, #0 + bl sub_0805ACC0 + adds r2, r0, #0 + cmp r2, #0 + bne _08062220 + ldrh r0, [r4, #0x2e] + adds r1, r4, #0 + adds r1, #0x6c + strh r0, [r1] + ldrh r0, [r4, #0x32] + adds r1, #2 + strh r0, [r1] + b _0806222C + .align 2, 0 +_0806221C: .4byte gUnk_0810BDC4 +_08062220: + lsrs r1, r2, #0x10 + adds r0, r4, #0 + adds r0, #0x6c + strh r1, [r0] + adds r0, #2 + strh r2, [r0] +_0806222C: + adds r0, r4, #0 + bl sub_0807DD50 + b _080622F2 +_08062234: + adds r5, r4, #0 + adds r5, #0x39 + movs r1, #0 + ldrsb r1, [r5, r1] + cmp r1, #2 + bne _08062252 + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r5] + adds r0, r4, #0 + bl sub_0806F118 + adds r5, #0x1f + b _0806229A +_08062252: + adds r0, r4, #0 + adds r0, #0x68 + movs r6, #0 + ldrsb r6, [r0, r6] + cmp r6, #0 + beq _08062274 + cmp r1, #0 + beq _0806226C + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r5] + b _0806228A +_0806226C: + adds r0, r4, #0 + bl sub_080622F4 + b _080622F2 +_08062274: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + movs r0, #0 + ldrsb r0, [r5, r0] + cmp r0, #0 + beq _080622F2 + movs r0, #2 + strb r0, [r4, #0xc] + strb r6, [r5] +_0806228A: + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_0806265C + adds r5, r4, #0 + adds r5, #0x58 +_0806229A: + ldrb r0, [r5] + adds r1, r4, #0 + adds r1, #0x6b + strb r0, [r1] + ldrb r0, [r5] + cmp r0, #7 + bhi _080622F2 + ldr r1, _080622C8 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + ldrb r1, [r5] + movs r2, #4 + rsbs r2, r2, #0 + ands r1, r2 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_08004260 + b _080622F2 + .align 2, 0 +_080622C8: .4byte gUnk_03001160 +_080622CC: + adds r0, r4, #0 + bl sub_08004274 + ldr r0, _080622E0 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _080622F2 + b _080622EE + .align 2, 0 +_080622E0: .4byte gUnk_02000050 +_080622E4: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _080622F2 +_080622EE: + movs r0, #1 + strb r0, [r4, #0xc] +_080622F2: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080622F4 +sub_080622F4: @ 0x080622F4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r7, r0, #0 + ldr r0, _0806239C @ =gUnk_03001160 + mov r8, r0 + ldrh r1, [r0, #0x2e] + ldr r3, _080623A0 @ =0xFFFF0000 + adds r0, r3, #0 + ands r0, r5 + orrs r0, r1 + mov r2, r8 + ldrh r1, [r2, #0x32] + lsls r1, r1, #0x10 + ldr r2, _080623A4 @ =0x0000FFFF + ands r0, r2 + adds r5, r0, #0 + orrs r5, r1 + mov r1, r8 + ldrh r0, [r1, #0x36] + ands r3, r6 + orrs r3, r0 + ldr r0, _080623A8 @ =gUnk_03003F80 + adds r0, #0xa8 + ldrb r0, [r0] + lsls r0, r0, #0x10 + ldr r2, _080623AC @ =0xFF00FFFF + ands r2, r3 + orrs r2, r0 + ldrb r1, [r1, #0x14] + movs r0, #0x3f + ands r1, r0 + lsls r1, r1, #0x18 + ldr r0, _080623B0 @ =0xC0FFFFFF + ands r0, r2 + orrs r0, r1 + mov r1, r8 + adds r1, #0x38 + ldrb r1, [r1] + lsls r1, r1, #0x1e + ldr r2, _080623B4 @ =0x3FFFFFFF + ands r0, r2 + adds r6, r0, #0 + orrs r6, r1 + ldr r4, [r7, #0x64] + ldrb r0, [r4, #6] + cmp r0, #0x16 + bne _080623BE + lsrs r0, r6, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x16 + beq _080623BE + movs r2, #0x2e + ldrsh r1, [r7, r2] + mov r3, r8 + movs r2, #0x2e + ldrsh r0, [r3, r2] + subs r2, r1, r0 + movs r0, #0x32 + ldrsh r3, [r7, r0] + mov sb, r3 + mov r1, r8 + movs r3, #0x32 + ldrsh r0, [r1, r3] + mov r3, sb + subs r1, r3, r0 + cmp r2, #0 + bge _08062382 + rsbs r2, r2, #0 +_08062382: + cmp r1, #0 + bge _08062388 + rsbs r1, r1, #0 +_08062388: + cmp r2, #0x78 + bgt _08062390 + cmp r1, #0x50 + ble _080623B8 +_08062390: + adds r1, r7, #0 + adds r1, #0x68 + movs r0, #0 + strb r0, [r1] + b _080624F8 + .align 2, 0 +_0806239C: .4byte gUnk_03001160 +_080623A0: .4byte 0xFFFF0000 +_080623A4: .4byte 0x0000FFFF +_080623A8: .4byte gUnk_03003F80 +_080623AC: .4byte 0xFF00FFFF +_080623B0: .4byte 0xC0FFFFFF +_080623B4: .4byte 0x3FFFFFFF +_080623B8: + adds r0, r7, #0 + bl sub_0806252C +_080623BE: + movs r0, #0 + mov sb, r0 + ldr r0, [r4] + cmp r5, r0 + bne _080623CE + ldr r0, [r4, #4] + cmp r6, r0 + beq _08062410 +_080623CE: + ldr r4, [r7, #0x64] + adds r4, #0x90 + movs r1, #0x69 + adds r1, r1, r7 + mov r8, r1 + adds r3, r7, #0 + adds r3, #0x38 + movs r2, #0x58 + adds r2, r2, r7 + mov ip, r2 + movs r2, #0x12 +_080623E4: + ldr r0, [r4] + ldr r1, [r4, #4] + str r0, [r4, #8] + str r1, [r4, #0xc] + subs r4, #8 + subs r2, #1 + cmp r2, #0 + bge _080623E4 + ldr r4, [r7, #0x64] + str r5, [r4] + str r6, [r4, #4] + movs r0, #4 + mov sb, r0 + mov r2, r8 + ldrb r1, [r2] + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0 + ble _08062484 + subs r0, r1, #1 + strb r0, [r2] + b _08062484 +_08062410: + adds r4, #0x98 + movs r3, #4 + ldrsh r0, [r4, r3] + cmp r0, #0 + bge _08062442 + ldr r4, [r7, #0x64] + adds r4, #0x90 + movs r0, #0x69 + adds r0, r0, r7 + mov r8, r0 + adds r3, r7, #0 + adds r3, #0x38 + movs r1, #0x58 + adds r1, r1, r7 + mov ip, r1 + movs r2, #0x12 +_08062430: + ldr r0, [r4] + ldr r1, [r4, #4] + str r0, [r4, #8] + str r1, [r4, #0xc] + subs r4, #8 + subs r2, #1 + cmp r2, #0 + bge _08062430 + b _08062480 +_08062442: + ldr r1, _080624E8 @ =gUnk_03001160 + movs r3, #0x2e + ldrsh r0, [r1, r3] + movs r2, #0x32 + ldrsh r1, [r1, r2] + ldrh r2, [r4] + ldrh r3, [r4, #2] + bl sub_080041E8 + lsrs r0, r0, #4 + movs r3, #0x69 + adds r3, r3, r7 + mov r8, r3 + adds r3, r7, #0 + adds r3, #0x38 + movs r1, #0x58 + adds r1, r1, r7 + mov ip, r1 + cmp r0, #0x18 + ble _08062484 + ldr r4, [r7, #0x64] + adds r4, #0x90 + movs r2, #0x12 +_08062470: + ldr r0, [r4] + ldr r1, [r4, #4] + str r0, [r4, #8] + str r1, [r4, #0xc] + subs r4, #8 + subs r2, #1 + cmp r2, #0 + bge _08062470 +_08062480: + movs r2, #4 + mov sb, r2 +_08062484: + ldr r4, [r7, #0x64] + adds r4, #0x98 + ldrh r0, [r4] + strh r0, [r7, #0x2e] + ldrh r0, [r4, #2] + strh r0, [r7, #0x32] + ldrh r0, [r4, #4] + strh r0, [r7, #0x36] + ldrb r0, [r4, #7] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1a + strb r0, [r7, #0x14] + ldrb r0, [r4, #7] + lsrs r0, r0, #6 + strb r0, [r3] + mov r1, r8 + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + ble _080624B2 + subs r0, r2, #1 + strb r0, [r1] +_080624B2: + mov r2, sb + ldrb r0, [r7, #0x14] + lsrs r0, r0, #1 + add sb, r0 + ldrb r0, [r7, #0xa] + cmp r0, #6 + bne _080624C4 + movs r3, #0x10 + add sb, r3 +_080624C4: + mov r0, ip + ldrb r0, [r0] + cmp sb, r0 + beq _080624EC + cmp r2, #0 + bne _080624D8 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bgt _080624EC +_080624D8: + adds r0, r7, #0 + mov r1, sb + bl sub_080042AC + movs r0, #0x1e + mov r1, r8 + strb r0, [r1] + b _080624F2 + .align 2, 0 +_080624E8: .4byte gUnk_03001160 +_080624EC: + adds r0, r7, #0 + bl sub_080042B8 +_080624F2: + adds r0, r7, #0 + bl sub_0800451C +_080624F8: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08062500 +sub_08062500: @ 0x08062500 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0xa0 + bl sub_0801D8E0 + str r0, [r5, #0x64] + cmp r0, #0 + beq _08062528 + adds r0, r5, #0 + adds r0, #0x68 + movs r4, #0 + movs r1, #1 + strb r1, [r0] + adds r0, r5, #0 + bl sub_080788E0 + str r4, [r5, #0x48] + adds r0, r5, #0 + bl sub_0806252C +_08062528: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806252C +sub_0806252C: @ 0x0806252C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r7, r0, #0 + ldr r4, _08062618 @ =gUnk_03001160 + ldrh r1, [r4, #0x2e] + ldr r3, _0806261C @ =0xFFFF0000 + adds r0, r3, #0 + ands r0, r5 + orrs r0, r1 + ldrh r1, [r4, #0x32] + lsls r1, r1, #0x10 + ldr r2, _08062620 @ =0x0000FFFF + ands r0, r2 + adds r5, r0, #0 + orrs r5, r1 + ldrh r0, [r4, #0x36] + ands r3, r6 + orrs r3, r0 + ldr r0, _08062624 @ =gUnk_03003F80 + adds r0, #0xa8 + ldrb r0, [r0] + lsls r0, r0, #0x10 + ldr r2, _08062628 @ =0xFF00FFFF + ands r2, r3 + orrs r2, r0 + ldrb r1, [r4, #0x14] + movs r0, #0x3f + ands r1, r0 + lsls r1, r1, #0x18 + ldr r0, _0806262C @ =0xC0FFFFFF + ands r0, r2 + orrs r0, r1 + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + lsls r1, r1, #0x1e + ldr r2, _08062630 @ =0x3FFFFFFF + ands r0, r2 + adds r6, r0, #0 + orrs r6, r1 + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r2, #0x2e + ldrsh r0, [r7, r2] + subs r1, r1, r0 + mov sl, r1 + movs r0, #0x32 + ldrsh r1, [r4, r0] + movs r2, #0x32 + ldrsh r0, [r7, r2] + subs r1, r1, r0 + mov r8, r1 + mov r1, sl + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x14 + bl sub_0806FA04 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + mov sl, r0 + mov r2, r8 + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x14 + bl sub_0806FA04 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + mov r8, r0 + ldr r3, [r7, #0x64] + movs r0, #0 + mov sb, r0 + mov ip, r0 + movs r4, #0x13 +_080625C8: + mov r1, ip + asrs r0, r1, #8 + subs r0, r5, r0 + strh r0, [r3] + lsrs r0, r5, #0x10 + mov r2, sb + asrs r1, r2, #8 + subs r0, r0, r1 + strh r0, [r3, #2] + strh r6, [r3, #4] + lsrs r0, r6, #0x10 + strb r0, [r3, #6] + ldrb r0, [r7, #0x14] + movs r1, #0x3f + ands r1, r0 + ldrb r2, [r3, #7] + movs r0, #0x40 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #7] + adds r1, r7, #0 + adds r1, #0x38 + ldrb r1, [r1] + lsls r1, r1, #6 + movs r2, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #7] + adds r3, #8 + add sb, r8 + add ip, sl + subs r4, #1 + cmp r4, #0 + bge _080625C8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08062618: .4byte gUnk_03001160 +_0806261C: .4byte 0xFFFF0000 +_08062620: .4byte 0x0000FFFF +_08062624: .4byte gUnk_03003F80 +_08062628: .4byte 0xFF00FFFF +_0806262C: .4byte 0xC0FFFFFF +_08062630: .4byte 0x3FFFFFFF + + thumb_func_start sub_08062634 +sub_08062634: @ 0x08062634 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r4, [r5, #0xb] + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + ldr r0, _08062658 @ =gUnk_0810BDE8 + lsls r1, r1, #1 + lsls r4, r4, #2 + adds r1, r1, r4 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl sub_08056398 + pop {r4, r5, pc} + .align 2, 0 +_08062658: .4byte gUnk_0810BDE8 + + thumb_func_start sub_0806265C +sub_0806265C: @ 0x0806265C + push {lr} + adds r2, r0, #0 + ldr r3, _08062674 @ =gUnk_02002A40 + ldrb r0, [r3, #8] + cmp r0, #0 + bne _08062678 + movs r0, #0 + adds r1, r2, #0 + bl sub_08056398 + b _08062690 + .align 2, 0 +_08062674: .4byte gUnk_02002A40 +_08062678: + ldrb r0, [r2, #0xa] + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _08062694 @ =gUnk_0810BE10 + adds r1, r1, r0 + ldrb r0, [r3, #8] + lsls r0, r0, #3 + adds r1, r1, r0 + adds r0, r2, #0 + bl sub_0806F1AC +_08062690: + pop {pc} + .align 2, 0 +_08062694: .4byte gUnk_0810BE10 + + thumb_func_start sub_08062698 +sub_08062698: @ 0x08062698 + push {r4, lr} + adds r4, r0, #0 + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + adds r0, #0xc0 + strh r0, [r4, #0x24] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080626AC +sub_080626AC: @ 0x080626AC + push {r4, lr} + adds r4, r0, #0 + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x40 + strb r0, [r4, #0xe] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080626C0 +sub_080626C0: @ 0x080626C0 + push {lr} + adds r2, r0, #0 + movs r0, #0 + str r0, [r1, #0x14] + ldrb r0, [r2, #0xe] + cmp r0, #0 + beq _080626DC + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080626DC + movs r0, #1 + str r0, [r1, #0x14] +_080626DC: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080626E0 +sub_080626E0: @ 0x080626E0 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + ldrb r0, [r4, #0x18] + cmp r0, #0 + bne _0806270E + adds r0, #1 + strb r0, [r4, #0x18] + movs r0, #0xa + strb r0, [r4, #0x19] + ldr r0, [r4, #8] + movs r1, #2 + orrs r0, r1 + str r0, [r4, #8] + ldrh r2, [r4, #4] + ldr r1, _08062778 @ =gUnk_03000BF0 + ldrh r0, [r4, #6] + ldrh r3, [r1, #6] + adds r0, r0, r3 + strh r0, [r4, #0x1e] + ldrh r0, [r1, #8] + adds r0, r0, r2 + strh r0, [r4, #0x22] +_0806270E: + ldrb r0, [r4, #0x19] + subs r0, #1 + strb r0, [r4, #0x19] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806274A + movs r0, #0xa + strb r0, [r4, #0x19] + movs r1, #0x1e + ldrsh r0, [r4, r1] + movs r2, #0x2e + ldrsh r1, [r5, r2] + subs r0, r0, r1 + movs r3, #0x22 + ldrsh r1, [r4, r3] + movs r3, #0x32 + ldrsh r2, [r5, r3] + subs r1, r1, r2 + bl sub_080045DA + strb r0, [r5, #0x15] + bl sub_08000E50 + movs r1, #0xb + bl __modsi3 + ldrb r1, [r5, #0x15] + adds r1, r1, r0 + subs r1, #5 + strb r1, [r5, #0x15] +_0806274A: + movs r0, #0x24 + ldrsh r1, [r5, r0] + ldrb r2, [r5, #0x15] + adds r0, r5, #0 + bl sub_0806F62C + movs r2, #0x2e + ldrsh r1, [r5, r2] + movs r3, #0x1e + ldrsh r0, [r4, r3] + subs r1, r1, r0 + lsls r1, r1, #8 + ldrh r0, [r5, #0x24] + lsls r0, r0, #0x10 + asrs r0, r0, #0x11 + adds r1, r1, r0 + movs r2, #0x24 + ldrsh r0, [r5, r2] + cmp r1, r0 + bhi _0806277C + ldrh r0, [r4, #0x1e] + strh r0, [r5, #0x2e] + b _08062782 + .align 2, 0 +_08062778: .4byte gUnk_03000BF0 +_0806277C: + ldr r1, _08062784 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_08062782: + pop {r4, r5, pc} + .align 2, 0 +_08062784: .4byte gUnk_02033280 + + thumb_func_start sub_08062788 +sub_08062788: @ 0x08062788 + push {r4, lr} + ldr r4, _080627CC @ =0x00004072 + ldr r1, _080627D0 @ =0x0000060B + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r1, _080627D4 @ =0x0000060C + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r1, _080627D8 @ =0x0000060D + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r1, _080627DC @ =0x0000064B + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r1, _080627E0 @ =0x0000064C + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r1, _080627E4 @ =0x0000064D + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + pop {r4, pc} + .align 2, 0 +_080627CC: .4byte 0x00004072 +_080627D0: .4byte 0x0000060B +_080627D4: .4byte 0x0000060C +_080627D8: .4byte 0x0000060D +_080627DC: .4byte 0x0000064B +_080627E0: .4byte 0x0000064C +_080627E4: .4byte 0x0000064D + + thumb_func_start sub_080627E8 +sub_080627E8: @ 0x080627E8 + push {lr} + ldr r0, _0806281C @ =0x0000060B + movs r1, #1 + bl sub_0807BA8C + ldr r0, _08062820 @ =0x0000060C + movs r1, #1 + bl sub_0807BA8C + ldr r0, _08062824 @ =0x0000060D + movs r1, #1 + bl sub_0807BA8C + ldr r0, _08062828 @ =0x0000064B + movs r1, #1 + bl sub_0807BA8C + ldr r0, _0806282C @ =0x0000064C + movs r1, #1 + bl sub_0807BA8C + ldr r0, _08062830 @ =0x0000064D + movs r1, #1 + bl sub_0807BA8C + pop {pc} + .align 2, 0 +_0806281C: .4byte 0x0000060B +_08062820: .4byte 0x0000060C +_08062824: .4byte 0x0000060D +_08062828: .4byte 0x0000064B +_0806282C: .4byte 0x0000064C +_08062830: .4byte 0x0000064D + + thumb_func_start sub_08062834 +sub_08062834: @ 0x08062834 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldrb r4, [r5, #0xa] + lsls r0, r4, #2 + mov ip, r0 + ldr r2, _08062868 @ =gUnk_0810C0A0 + add r2, ip + adds r0, r5, #0 + adds r0, #0x5a + ldrb r3, [r0] + movs r1, #0x1f + adds r0, r1, #0 + ands r0, r3 + ldrb r3, [r2] + adds r6, r0, r3 + ldrb r0, [r5, #0x1e] + ands r1, r0 + ldrb r2, [r2, #1] + adds r7, r1, r2 + cmp r4, #8 + bhi _08062946 + ldr r0, _0806286C @ =_08062870 + add r0, ip + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08062868: .4byte gUnk_0810C0A0 +_0806286C: .4byte _08062870 @ jump table +_08062870: + .4byte _08062894 @ case 0 + .4byte _08062894 @ case 1 + .4byte _08062894 @ case 2 + .4byte _08062894 @ case 3 + .4byte _08062894 @ case 4 + .4byte _08062894 @ case 5 + .4byte _080628D8 @ case 6 + .4byte _08062922 @ case 7 + .4byte _08062922 @ case 8 +_08062894: + adds r0, r5, #0 + adds r0, #0x5b + ldrb r1, [r0] + movs r0, #0x30 + ands r0, r1 + lsrs r4, r0, #4 + cmp r4, #0 + beq _080628A6 + adds r4, #0x50 +_080628A6: + subs r4, #1 + adds r0, r5, #0 + movs r1, #0 + adds r2, r6, #0 + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #1 + adds r2, r7, #0 + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #2 + adds r2, r4, #0 + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r5, #0 + movs r1, #1 + movs r2, #2 + b _08062916 +_080628D8: + adds r0, r5, #0 + adds r0, #0x5b + ldrb r0, [r0] + movs r2, #0xf + ands r2, r0 + cmp r2, #0 + beq _080628E8 + adds r2, #0x93 +_080628E8: + subs r2, #1 + adds r0, r5, #0 + movs r1, #0 + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #1 + adds r2, r6, #0 + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #2 + adds r2, r7, #0 + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #2 + movs r2, #1 + bl sub_0806FF88 + adds r0, r5, #0 + movs r1, #1 + movs r2, #0 +_08062916: + bl sub_0806FFD8 + adds r0, r5, #0 + bl sub_0807000C + b _08062946 +_08062922: + adds r0, r5, #0 + movs r1, #0 + adds r2, r6, #0 + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #1 + adds r2, r7, #0 + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r5, #0 + bl sub_0807000C +_08062946: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08062948 +sub_08062948: @ 0x08062948 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + ldrb r0, [r6, #0x18] + cmp r0, #0 + bne _080629B4 + adds r0, #1 + strb r0, [r6, #0x18] + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + adds r0, #0x20 + strh r0, [r6, #0x12] + bl sub_08000E50 + adds r1, r0, #0 + movs r0, #0x18 + ands r1, r0 + ldrb r0, [r4, #0x15] + cmp r0, #8 + beq _08062990 + cmp r0, #8 + bgt _0806297E + cmp r0, #0 + beq _08062988 + b _080629A6 +_0806297E: + cmp r0, #0x10 + beq _08062998 + cmp r0, #0x18 + beq _080629A0 + b _080629A6 +_08062988: + cmp r1, #0x10 + bne _080629A6 + movs r1, #8 + b _080629A6 +_08062990: + cmp r1, #0x18 + bne _080629A6 + movs r1, #0x10 + b _080629A6 +_08062998: + cmp r1, #0 + bne _080629A6 + movs r1, #0x18 + b _080629A6 +_080629A0: + cmp r1, #8 + bne _080629A6 + movs r1, #0 +_080629A6: + strb r1, [r4, #0x15] + adds r0, r1, #0 + bl sub_0806F5B0 + strb r0, [r4, #0x14] + movs r0, #0x80 + strh r0, [r4, #0x24] +_080629B4: + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + adds r1, r0, #4 + adds r5, r4, #0 + adds r5, #0x58 + ldrb r0, [r5] + cmp r1, r0 + beq _080629D2 + adds r0, r4, #0 + bl sub_08004260 + ldrb r1, [r5] + adds r0, r4, #0 + adds r0, #0x80 + strh r1, [r0] +_080629D2: + adds r0, r4, #0 + bl sub_080AEF88 + movs r3, #0x2e + ldrsh r1, [r4, r3] + adds r2, r4, #0 + adds r2, #0x6c + movs r5, #0 + ldrsh r0, [r2, r5] + subs r1, r1, r0 + cmp r1, #0x10 + ble _080629F4 + ldrh r0, [r2] + adds r0, #0x10 + strh r0, [r4, #0x2e] + movs r0, #1 + strh r0, [r6, #0x12] +_080629F4: + movs r3, #0x10 + rsbs r3, r3, #0 + cmp r1, r3 + bge _08062A06 + ldrh r0, [r2] + subs r0, #0x10 + strh r0, [r4, #0x2e] + movs r0, #1 + strh r0, [r6, #0x12] +_08062A06: + movs r0, #0x32 + ldrsh r1, [r4, r0] + adds r2, r4, #0 + adds r2, #0x6e + movs r5, #0 + ldrsh r0, [r2, r5] + subs r1, r1, r0 + cmp r1, #0x10 + ble _08062A22 + ldrh r0, [r2] + adds r0, #0x10 + strh r0, [r4, #0x32] + movs r0, #1 + strh r0, [r6, #0x12] +_08062A22: + cmp r1, r3 + bge _08062A30 + ldrh r0, [r2] + subs r0, #0x10 + strh r0, [r4, #0x32] + movs r0, #1 + strh r0, [r6, #0x12] +_08062A30: + ldrh r0, [r6, #0x12] + subs r0, #1 + strh r0, [r6, #0x12] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08062A42 + ldr r1, _08062A44 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_08062A42: + pop {r4, r5, r6, pc} + .align 2, 0 +_08062A44: .4byte gUnk_02033280 + + thumb_func_start sub_08062A48 +sub_08062A48: @ 0x08062A48 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x6a + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_08062A60 +sub_08062A60: @ 0x08062A60 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08062AB0 + ldr r1, _08062AAC @ =gUnk_0810BDC4 + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _08062AB6 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrh r0, [r4, #0x32] + subs r0, #8 + strh r0, [r4, #0x32] + movs r1, #6 + ldrb r0, [r4, #0xa] + cmp r0, #6 + bne _08062AA2 + movs r1, #0x16 +_08062AA2: + adds r0, r4, #0 + bl sub_08004260 + b _08062AB6 + .align 2, 0 +_08062AAC: .4byte gUnk_0810BDC4 +_08062AB0: + adds r0, r4, #0 + bl sub_08004274 +_08062AB6: + pop {r4, pc} + + thumb_func_start sub_08062AB8 +sub_08062AB8: @ 0x08062AB8 + push {lr} + ldr r2, _08062ACC @ =gUnk_0810C268 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08062ACC: .4byte gUnk_0810C268 + + thumb_func_start sub_08062AD0 +sub_08062AD0: @ 0x08062AD0 + bx lr + .align 2, 0 + + thumb_func_start sub_08062AD4 +sub_08062AD4: @ 0x08062AD4 + bx lr + .align 2, 0 + + thumb_func_start sub_08062AD8 +sub_08062AD8: @ 0x08062AD8 + push {lr} + ldr r2, _08062AEC @ =gUnk_0810C290 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08062AEC: .4byte gUnk_0810C290 + + thumb_func_start sub_08062AF0 +sub_08062AF0: @ 0x08062AF0 + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08078778 + pop {r4, pc} + + thumb_func_start sub_08062B14 +sub_08062B14: @ 0x08062B14 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08062B40 + movs r0, #0 + strb r0, [r1] + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0805E47C +_08062B40: + adds r0, r4, #0 + bl sub_0806ED78 + pop {r4, pc} + + thumb_func_start sub_08062B48 +sub_08062B48: @ 0x08062B48 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08062B6A + ldr r0, _08062B6C @ =0x00000A01 + bl sub_08056378 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] +_08062B6A: + pop {r4, pc} + .align 2, 0 +_08062B6C: .4byte 0x00000A01 + + thumb_func_start sub_08062B70 +sub_08062B70: @ 0x08062B70 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08062B94 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08062B92 + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0805E584 +_08062B92: + pop {r4, pc} + .align 2, 0 +_08062B94: .4byte gUnk_02000050 + + thumb_func_start sub_08062B98 +sub_08062B98: @ 0x08062B98 + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08062BBC + ldr r0, _08062BB8 @ =gUnk_0810C2DC + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _08062BCC + .align 2, 0 +_08062BB8: .4byte gUnk_0810C2DC +_08062BBC: + ldr r0, _08062BD0 @ =gUnk_0810C2CC + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 +_08062BCC: + pop {pc} + .align 2, 0 +_08062BD0: .4byte gUnk_0810C2CC + + thumb_func_start sub_08062BD4 +sub_08062BD4: @ 0x08062BD4 + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08078778 + pop {r4, pc} + + thumb_func_start sub_08062BF8 +sub_08062BF8: @ 0x08062BF8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08062C1C + movs r0, #0 + strb r0, [r1] + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0805E47C +_08062C1C: + adds r0, r4, #0 + bl sub_0806ED78 + pop {r4, pc} + + thumb_func_start sub_08062C24 +sub_08062C24: @ 0x08062C24 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08062C4E + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 + ldr r0, _08062C50 @ =0x00000A01 + bl sub_08056378 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] +_08062C4E: + pop {r4, pc} + .align 2, 0 +_08062C50: .4byte 0x00000A01 + + thumb_func_start sub_08062C54 +sub_08062C54: @ 0x08062C54 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08062C78 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08062C76 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0805E584 +_08062C76: + pop {r4, pc} + .align 2, 0 +_08062C78: .4byte gUnk_02000050 + + thumb_func_start sub_08062C7C +sub_08062C7C: @ 0x08062C7C + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + movs r1, #0x25 + movs r2, #0 + bl sub_080A29AC + adds r0, r4, #0 + bl sub_08062CA4 + pop {r4, pc} + + thumb_func_start sub_08062CA4 +sub_08062CA4: @ 0x08062CA4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_08062CBC +sub_08062CBC: @ 0x08062CBC + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x2c + bl sub_0801E7F4 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r1, r1, #0x1f + lsls r1, r1, #3 + ldr r0, _08062CDC @ =gUnk_0810C2E4 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806F1AC + pop {r4, pc} + .align 2, 0 +_08062CDC: .4byte gUnk_0810C2E4 + + thumb_func_start sub_08062CE0 +sub_08062CE0: @ 0x08062CE0 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xc] + cmp r0, #0 + bne _08062CEE + movs r0, #1 + strb r0, [r1, #0xc] +_08062CEE: + pop {pc} + + thumb_func_start sub_08062CF0 +sub_08062CF0: @ 0x08062CF0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08062D0C + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD64 +_08062D0C: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08062D18 +sub_08062D18: @ 0x08062D18 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + movs r4, #0 + movs r0, #0x4f + bl sub_0807CA84 + cmp r0, #0 + beq _08062D36 + movs r0, #0x26 + bl sub_0807CBD0 + cmp r0, #0 + bne _08062D36 + movs r4, #7 +_08062D36: + movs r0, #0x4e + bl sub_0807CA84 + cmp r0, #0 + beq _08062D4C + movs r0, #0x25 + bl sub_0807CBD0 + cmp r0, #0 + bne _08062D4C + movs r4, #6 +_08062D4C: + movs r0, #0x4d + bl sub_0807CA84 + cmp r0, #0 + beq _08062D62 + movs r0, #0x24 + bl sub_0807CBD0 + cmp r0, #0 + bne _08062D62 + movs r4, #5 +_08062D62: + movs r0, #0x4c + bl sub_0807CA84 + cmp r0, #0 + beq _08062D78 + movs r0, #0x23 + bl sub_0807CBD0 + cmp r0, #0 + bne _08062D78 + movs r4, #4 +_08062D78: + movs r0, #0x4b + bl sub_0807CA84 + cmp r0, #0 + beq _08062D8E + movs r0, #0x22 + bl sub_0807CBD0 + cmp r0, #0 + bne _08062D8E + movs r4, #3 +_08062D8E: + movs r0, #0x4a + bl sub_0807CA84 + cmp r0, #0 + beq _08062DA4 + movs r0, #0x21 + bl sub_0807CBD0 + cmp r0, #0 + bne _08062DA4 + movs r4, #2 +_08062DA4: + movs r0, #0x49 + bl sub_0807CA84 + cmp r0, #0 + beq _08062DBA + movs r0, #0x20 + bl sub_0807CBD0 + cmp r0, #0 + bne _08062DBA + movs r4, #1 +_08062DBA: + strb r4, [r5, #0xb] + movs r4, #0 + ldr r0, _08062DCC @ =0x00001C1F + bl sub_0807CBE4 + cmp r0, #0 + beq _08062DD0 + movs r4, #1 + b _08062DF0 + .align 2, 0 +_08062DCC: .4byte 0x00001C1F +_08062DD0: + movs r0, #0x8c + bl sub_0807CBD0 + cmp r0, #0 + beq _08062DE4 + movs r4, #2 + movs r0, #0x8c + bl sub_0807CD34 + b _08062DF0 +_08062DE4: + movs r0, #0x8b + bl sub_0807CBD0 + cmp r0, #0 + beq _08062DF0 + movs r4, #3 +_08062DF0: + ldr r0, _08062E08 @ =gUnk_0810C34C + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl sub_08056398 + cmp r4, #0 + bne _08062E0C + movs r0, #1 + b _08062E0E + .align 2, 0 +_08062E08: .4byte gUnk_0810C34C +_08062E0C: + movs r0, #0 +_08062E0E: + str r0, [r6, #0x14] + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08062E14 +sub_08062E14: @ 0x08062E14 + push {lr} + movs r0, #0x8b + bl sub_0807CCB4 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08062E20 +sub_08062E20: @ 0x08062E20 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08062E50 + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + adds r1, r4, #0 + bl sub_0806FAB0 + ldr r0, _08062E5C @ =gUnk_0810C3C0 + str r0, [r4, #0x48] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #0xfe + strb r0, [r1] + adds r0, r4, #0 + bl sub_0807DD64 +_08062E50: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + pop {r4, pc} + .align 2, 0 +_08062E5C: .4byte gUnk_0810C3C0 + + thumb_func_start sub_08062E60 +sub_08062E60: @ 0x08062E60 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08062E88 + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + adds r1, r4, #0 + bl sub_0806FAB0 + ldr r0, _08062EB4 @ =gUnk_0810C428 + str r0, [r4, #0x48] + adds r0, r4, #0 + bl sub_0807DD64 +_08062E88: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08062EB2 + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] + adds r0, #0x28 + strh r1, [r0] +_08062EB2: + pop {r4, pc} + .align 2, 0 +_08062EB4: .4byte gUnk_0810C428 + + thumb_func_start sub_08062EB8 +sub_08062EB8: @ 0x08062EB8 + push {lr} + movs r0, #0x68 + movs r1, #0 + bl sub_0807CAA0 + movs r0, #0x69 + movs r1, #0 + bl sub_0807CAA0 + movs r0, #0x6a + movs r1, #0 + bl sub_0807CAA0 + movs r0, #0x6b + movs r1, #0 + bl sub_0807CAA0 + pop {pc} + + thumb_func_start sub_08062EDC +sub_08062EDC: @ 0x08062EDC + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r5, r1, #0 + movs r0, #0x68 + bl sub_0807CA84 + cmp r0, #0 + beq _08062EEE + movs r4, #0 +_08062EEE: + movs r0, #0x69 + bl sub_0807CA84 + cmp r0, #0 + beq _08062EFA + movs r4, #1 +_08062EFA: + movs r0, #0x6a + bl sub_0807CA84 + cmp r0, #0 + beq _08062F06 + movs r4, #2 +_08062F06: + movs r0, #0x6b + bl sub_0807CA84 + cmp r0, #0 + beq _08062F12 + movs r4, #3 +_08062F12: + movs r0, #0x5b + bl sub_0807CBD0 + cmp r0, #0 + bne _08062F24 + movs r0, #0x5b + bl sub_0807CCB4 + movs r4, #4 +_08062F24: + bl sub_08000E50 + movs r1, #0xff + ands r1, r0 + ldr r0, _08062F58 @ =gUnk_0810C430 + adds r0, r4, r0 + ldrb r0, [r0] + cmp r1, r0 + bhi _08062F68 + ldr r0, _08062F5C @ =gUnk_0810C435 + bl sub_080028F4 + adds r4, r0, #0 + ldr r0, _08062F60 @ =gUnk_0810C43D + adds r0, r4, r0 + ldrb r1, [r0] + movs r0, #0x5c + movs r2, #1 + bl sub_080A7C18 + ldr r0, _08062F64 @ =0x00003C05 + adds r1, r6, #0 + bl sub_08056398 + movs r0, #1 + b _08062F6A + .align 2, 0 +_08062F58: .4byte gUnk_0810C430 +_08062F5C: .4byte gUnk_0810C435 +_08062F60: .4byte gUnk_0810C43D +_08062F64: .4byte 0x00003C05 +_08062F68: + movs r0, #0 +_08062F6A: + str r0, [r5, #0x14] + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08062F70 +sub_08062F70: @ 0x08062F70 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08062FA0 + ldr r1, _08062FE8 @ =gUnk_0810C48C + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _08062FE4 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xe] + lsls r0, r0, #1 + strb r0, [r4, #0x14] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD50 +_08062FA0: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + adds r4, #0x5b + ldrb r1, [r4] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08062FCC + movs r0, #0xef + ands r0, r1 + strb r0, [r4] + ldr r0, _08062FEC @ =0x000001CF + bl sub_08004488 +_08062FCC: + ldrb r1, [r4] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _08062FE4 + movs r0, #0xdf + ands r0, r1 + strb r0, [r4] + movs r0, #0x88 + lsls r0, r0, #2 + bl sub_08004488 +_08062FE4: + pop {r4, pc} + .align 2, 0 +_08062FE8: .4byte gUnk_0810C48C +_08062FEC: .4byte 0x000001CF + + thumb_func_start sub_08062FF0 +sub_08062FF0: @ 0x08062FF0 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r0, #0x5b + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08063006 + movs r6, #1 + movs r5, #0 + b _0806300A +_08063006: + movs r6, #0 + movs r5, #1 +_0806300A: + adds r0, r4, #0 + adds r0, #0x5b + ldrb r1, [r0] + movs r0, #8 + ands r0, r1 + movs r7, #0x8e + lsls r7, r7, #1 + cmp r0, #0 + beq _0806301E + movs r7, #0x16 +_0806301E: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r2, [r0] + movs r0, #0x81 + rsbs r0, r0, #0 + ands r2, r0 + subs r2, #1 + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FF60 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r7, #0 + bl sub_0806FF10 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0806305C +sub_0806305C: @ 0x0806305C + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldrb r0, [r4, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x19] + movs r2, #0x80 + lsls r2, r2, #1 + str r2, [r4, #0x6c] + str r2, [r4, #0x70] + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C + adds r0, r4, #0 + movs r1, #0x10 + bl sub_080042AC + adds r4, #0x80 + movs r0, #0x10 + strh r0, [r4] + ldr r0, _080630A0 @ =0x0000016F + bl sub_080A3268 + pop {r4, pc} + .align 2, 0 +_080630A0: .4byte 0x0000016F + + thumb_func_start sub_080630A4 +sub_080630A4: @ 0x080630A4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r0, #0x6d + ldrb r0, [r0] + cmp r0, #0 + beq _080630BA + ldr r0, [r4, #0x6c] + adds r0, #0x80 + lsls r0, r0, #0x14 + lsrs r5, r0, #0x17 + b _080630D0 +_080630BA: + adds r0, r4, #0 + adds r0, #0x6c + ldrb r1, [r0] + lsrs r1, r1, #6 + movs r0, #3 + eors r1, r0 + adds r1, #1 + movs r0, #0x10 + bl __divsi3 + asrs r5, r0, #1 +_080630D0: + movs r0, #0x80 + lsls r0, r0, #1 + ldr r2, [r4, #0x70] + cmp r2, r0 + bls _080630E4 + adds r0, r2, #0 + adds r0, #0x80 + lsls r0, r0, #0x14 + lsrs r3, r0, #0x17 + b _080630F4 +_080630E4: + cmp r2, r0 + bne _080630EC + movs r3, #0x10 + b _080630F4 +_080630EC: + ldr r1, _08063110 @ =gUnk_0810C498 + lsrs r0, r2, #5 + adds r0, r0, r1 + ldrb r3, [r0] +_080630F4: + movs r6, #0x80 + lsls r6, r6, #9 + adds r0, r4, #0 + adds r0, #0x5b + ldrb r0, [r0] + movs r1, #3 + ands r1, r0 + cmp r1, #2 + beq _08063144 + cmp r1, #2 + bgt _08063114 + cmp r1, #1 + beq _0806311A + b _080631CA + .align 2, 0 +_08063110: .4byte gUnk_0810C498 +_08063114: + cmp r1, #3 + beq _0806317A + b _080631CA +_0806311A: + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldr r0, [r4, #0x6c] + cmp r0, #0x80 + bls _08063132 + subs r0, r0, r5 + str r0, [r4, #0x6c] +_08063132: + lsls r1, r3, #1 + ldr r0, [r4, #0x70] + adds r0, r0, r1 + str r0, [r4, #0x70] + lsls r1, r6, #1 + ldr r0, [r4, #0x30] + adds r0, r0, r1 + str r0, [r4, #0x30] + b _080631CA +_08063144: + ldr r0, [r4, #0x6c] + adds r0, r0, r5 + str r0, [r4, #0x6c] + ldr r1, [r4, #0x70] + movs r2, #0x80 + lsls r2, r2, #1 + cmp r1, r2 + bls _0806316C + ldr r0, _08063168 @ =0x0000017F + cmp r1, r0 + bhi _0806315C + lsrs r3, r3, #1 +_0806315C: + subs r0, r1, r3 + cmp r0, #0xff + bhi _08063172 + str r2, [r4, #0x70] + b _08063174 + .align 2, 0 +_08063168: .4byte 0x0000017F +_0806316C: + cmp r1, #0x80 + bls _08063174 + subs r0, r1, r3 +_08063172: + str r0, [r4, #0x70] +_08063174: + ldr r0, [r4, #0x34] + subs r0, r0, r6 + b _080631C8 +_0806317A: + ldr r0, [r4, #0x6c] + ldr r1, _080631B4 @ =0x0000033F + cmp r0, r1 + bhi _08063186 + adds r0, r0, r5 + str r0, [r4, #0x6c] +_08063186: + cmp r2, r1 + bls _080631BC + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C + adds r0, r4, #0 + movs r1, #0x11 + bl sub_080042AC + adds r1, r4, #0 + adds r1, #0x80 + movs r0, #0x11 + strh r0, [r1] + ldr r2, _080631B8 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + b _080631DC + .align 2, 0 +_080631B4: .4byte 0x0000033F +_080631B8: .4byte gUnk_02033280 +_080631BC: + lsls r0, r3, #1 + adds r0, r2, r0 + str r0, [r4, #0x70] + ldr r0, [r4, #0x34] + ldr r1, _080631E0 @ =0xFFFE0000 + adds r0, r0, r1 +_080631C8: + str r0, [r4, #0x34] +_080631CA: + ldr r1, [r4, #0x6c] + ldr r2, [r4, #0x70] + adds r0, r4, #0 + movs r3, #0 + bl sub_0805EC9C + ldr r1, _080631E4 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_080631DC: + pop {r4, r5, r6, pc} + .align 2, 0 +_080631E0: .4byte 0xFFFE0000 +_080631E4: .4byte gUnk_02033280 + + thumb_func_start sub_080631E8 +sub_080631E8: @ 0x080631E8 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0806320C @ =gUnk_0810C804 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r0, [r4, #0xc] + cmp r0, #0 + beq _08063208 + adds r0, r4, #0 + bl sub_0806ED78 +_08063208: + pop {r4, pc} + .align 2, 0 +_0806320C: .4byte gUnk_0810C804 + + thumb_func_start sub_08063210 +sub_08063210: @ 0x08063210 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0 + bl sub_080042AC + pop {pc} + .align 2, 0 + + thumb_func_start sub_08063220 +sub_08063220: @ 0x08063220 + push {lr} + adds r2, r0, #0 + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _08063238 + movs r0, #2 + strb r0, [r2, #0xc] + movs r1, #8 + b _0806323A +_08063238: + movs r1, #0 +_0806323A: + adds r0, r2, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, r1 + beq _0806324C + adds r0, r2, #0 + bl sub_080042AC + b _08063252 +_0806324C: + adds r0, r2, #0 + bl sub_08063280 +_08063252: + pop {pc} + + thumb_func_start sub_08063254 +sub_08063254: @ 0x08063254 + push {r4, lr} + adds r4, r0, #0 + bl sub_08063280 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08063274 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0 + bl sub_08056378 +_08063274: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08063278 +sub_08063278: @ 0x08063278 + push {lr} + bl sub_08063280 + pop {pc} + + thumb_func_start sub_08063280 +sub_08063280: @ 0x08063280 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r3, r4, #0 + adds r3, #0x5a + ldrb r2, [r3] + movs r1, #0x7f + ands r1, r2 + adds r0, r1, #0 + eors r0, r2 + strb r0, [r3] + cmp r1, #2 + bne _080632A6 + adds r0, r4, #0 + movs r1, #0x31 + movs r2, #0 + bl sub_080A29AC +_080632A6: + pop {r4, pc} + + thumb_func_start sub_080632A8 +sub_080632A8: @ 0x080632A8 + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080632BE + adds r0, r2, #0 + bl sub_08063410 + b _080632C4 +_080632BE: + adds r0, r2, #0 + bl sub_080632C8 +_080632C4: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080632C8 +sub_080632C8: @ 0x080632C8 + push {lr} + ldr r2, _080632DC @ =gUnk_0810C8E0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080632DC: .4byte gUnk_0810C8E0 + + thumb_func_start sub_080632E0 +sub_080632E0: @ 0x080632E0 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08063310 @ =gUnk_0810C8D4 + bl sub_0806FDEC + cmp r0, #0 + beq _0806330E + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08078778 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #1 + strb r0, [r4, #0xc] +_0806330E: + pop {r4, pc} + .align 2, 0 +_08063310: .4byte gUnk_0810C8D4 + + thumb_func_start sub_08063314 +sub_08063314: @ 0x08063314 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] + movs r1, #0xff + ands r0, r1 + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _08063342 + adds r0, r4, #0 + bl sub_080633C8 + adds r1, r0, #0 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, r1 + beq _08063342 + adds r0, r4, #0 + bl sub_08004260 +_08063342: + adds r0, r4, #0 + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _08063360 + ldrb r0, [r4, #0xe] + ldr r1, _08063368 @ =0x00000A01 + adds r0, r0, r1 + bl sub_08056378 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] +_08063360: + adds r0, r4, #0 + bl sub_0806ED78 + pop {r4, pc} + .align 2, 0 +_08063368: .4byte 0x00000A01 + + thumb_func_start sub_0806336C +sub_0806336C: @ 0x0806336C + push {lr} + adds r2, r0, #0 + ldr r0, _0806338C @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0806338A + ldrb r0, [r2, #0xc] + adds r0, #1 + strb r0, [r2, #0xc] + adds r0, r2, #0 + movs r1, #8 + bl sub_08004260 +_0806338A: + pop {pc} + .align 2, 0 +_0806338C: .4byte gUnk_02000050 + + thumb_func_start sub_08063390 +sub_08063390: @ 0x08063390 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080633BE + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0806EDC4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08078778 +_080633BE: + adds r0, r4, #0 + bl sub_0806ED78 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080633C8 +sub_080633C8: @ 0x080633C8 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x20 + movs r2, #0x20 + bl sub_0806ED9C + cmp r0, #0 + bge _080633DE + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] +_080633DE: + pop {r4, pc} + + thumb_func_start sub_080633E0 +sub_080633E0: @ 0x080633E0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r2, #0x3f + ands r2, r0 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + pop {r4, pc} + + thumb_func_start sub_08063410 +sub_08063410: @ 0x08063410 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xc] + cmp r5, #0 + bne _08063442 + ldr r1, _08063464 @ =gUnk_0810C8D4 + bl sub_0806FDEC + cmp r0, #0 + beq _08063462 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _08063436 + ldr r0, _08063468 @ =gUnk_0810C894 + str r0, [r4, #0x48] + strb r5, [r4, #0xb] +_08063436: + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + bl sub_08078778 +_08063442: + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _0806344E + adds r0, r4, #0 + bl sub_0806346C +_0806344E: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 +_08063462: + pop {r4, r5, pc} + .align 2, 0 +_08063464: .4byte gUnk_0810C8D4 +_08063468: .4byte gUnk_0810C894 + + thumb_func_start sub_0806346C +sub_0806346C: @ 0x0806346C + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r6, _080634D8 @ =gUnk_03001160 + movs r0, #0x2e + ldrsh r1, [r6, r0] + movs r2, #0x2e + ldrsh r0, [r5, r2] + subs r4, r1, r0 + movs r0, #0x32 + ldrsh r1, [r6, r0] + movs r2, #0x32 + ldrsh r0, [r5, r2] + subs r3, r1, r0 + adds r4, #0x30 + adds r3, #0x18 + cmp r4, #0 + bge _08063490 + movs r4, #0 +_08063490: + cmp r4, #0x50 + ble _08063496 + movs r4, #0x50 +_08063496: + cmp r3, #0 + bge _0806349C + movs r3, #0 +_0806349C: + cmp r3, #0x40 + ble _080634A2 + movs r3, #0x40 +_080634A2: + asrs r4, r4, #4 + asrs r3, r3, #4 + ldr r2, _080634DC @ =gUnk_0810C8F0 + ldrb r1, [r6, #0x14] + lsrs r1, r1, #1 + lsls r0, r4, #2 + adds r1, r1, r0 + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #3 + adds r1, r1, r0 + adds r1, r1, r2 + ldrb r4, [r1] + ldrb r0, [r5, #0xb] + cmp r4, r0 + beq _080634D6 + lsls r3, r4, #3 + ldr r0, _080634E0 @ =gUnk_0810C89C + adds r3, r3, r0 + movs r2, #4 + ldrsb r2, [r3, r2] + adds r0, r5, #0 + movs r1, #1 + bl sub_08078850 + strb r4, [r5, #0xb] +_080634D6: + pop {r4, r5, r6, pc} + .align 2, 0 +_080634D8: .4byte gUnk_03001160 +_080634DC: .4byte gUnk_0810C8F0 +_080634E0: .4byte gUnk_0810C89C + + thumb_func_start sub_080634E4 +sub_080634E4: @ 0x080634E4 + ldrb r0, [r0, #0xb] + str r0, [r1, #4] + bx lr + .align 2, 0 + + thumb_func_start sub_080634EC +sub_080634EC: @ 0x080634EC + ldr r2, _080634FC @ =gUnk_02034350 + ldr r1, _08063500 @ =gUnk_0810C88C + ldrb r0, [r0, #0xb] + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r2, #6] + bx lr + .align 2, 0 +_080634FC: .4byte gUnk_02034350 +_08063500: .4byte gUnk_0810C88C + + thumb_func_start sub_08063504 +sub_08063504: @ 0x08063504 + push {r4, lr} + adds r4, r1, #0 + ldr r1, _08063520 @ =gUnk_0810C88C + ldrb r0, [r0, #0xb] + adds r0, r0, r1 + ldrb r0, [r0] + bl sub_080544DC + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r1, r1, #0x1f + str r1, [r4, #0x14] + pop {r4, pc} + .align 2, 0 +_08063520: .4byte gUnk_0810C88C + + thumb_func_start sub_08063524 +sub_08063524: @ 0x08063524 + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0806353A + adds r0, r2, #0 + bl sub_0806362C + b _08063540 +_0806353A: + adds r0, r2, #0 + bl sub_08063544 +_08063540: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08063544 +sub_08063544: @ 0x08063544 + push {lr} + ldr r2, _08063558 @ =gUnk_0810CAA0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08063558: .4byte gUnk_0810CAA0 + + thumb_func_start sub_0806355C +sub_0806355C: @ 0x0806355C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #4 + bl sub_080042AC + adds r0, r4, #0 + bl sub_08078778 + pop {r4, pc} + + thumb_func_start sub_08063584 +sub_08063584: @ 0x08063584 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x20 + movs r2, #0x20 + bl sub_0806ED9C + cmp r0, #0 + blt _080635B2 + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _080635B8 + bl sub_08000E50 + movs r1, #0x3f + ands r1, r0 + cmp r1, #0 + bne _080635B2 + movs r0, #1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC +_080635B2: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _080635D0 +_080635B8: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080635D0 + movs r0, #0 + strb r0, [r4, #0xf] +_080635D0: + adds r0, r4, #0 + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _080635FC + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0806EDC4 + adds r1, r0, #0 + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC + ldrb r0, [r4, #0xe] + ldr r1, _08063604 @ =0x00000A01 + adds r0, r0, r1 + bl sub_08056378 +_080635FC: + adds r0, r4, #0 + bl sub_0806ED78 + pop {r4, pc} + .align 2, 0 +_08063604: .4byte 0x00000A01 + + thumb_func_start sub_08063608 +sub_08063608: @ 0x08063608 + push {lr} + adds r2, r0, #0 + ldr r0, _08063628 @ =gUnk_02000050 + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0 + bne _08063626 + movs r0, #1 + strb r0, [r2, #0xc] + strb r1, [r2, #0xf] + adds r0, r2, #0 + movs r1, #4 + bl sub_080042AC +_08063626: + pop {pc} + .align 2, 0 +_08063628: .4byte gUnk_02000050 + + thumb_func_start sub_0806362C +sub_0806362C: @ 0x0806362C + push {r4, lr} + adds r4, r0, #0 + ldrb r3, [r4, #0xc] + cmp r3, #1 + beq _08063662 + cmp r3, #1 + bgt _08063640 + cmp r3, #0 + beq _08063646 + b _080636D4 +_08063640: + cmp r3, #2 + beq _080636BA + b _080636D4 +_08063646: + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x69 + strb r3, [r0] + adds r0, r4, #0 + bl sub_0807DD64 +_08063662: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _080636A4 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x69 + strb r0, [r1] + ldr r1, _080636A0 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0806F118 + b _080636D4 + .align 2, 0 +_080636A0: .4byte gUnk_03001160 +_080636A4: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_080042B8 + b _080636D4 +_080636BA: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _080636D4 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x69 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080042AC +_080636D4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080636D8 +sub_080636D8: @ 0x080636D8 + push {lr} + ldr r1, _080636EC @ =gUnk_02002A40 + ldrb r1, [r1, #8] + lsls r1, r1, #3 + ldr r2, _080636F0 @ =gUnk_0810CAAC + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_080636EC: .4byte gUnk_02002A40 +_080636F0: .4byte gUnk_0810CAAC + + thumb_func_start sub_080636F4 +sub_080636F4: @ 0x080636F4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_0806370C +sub_0806370C: @ 0x0806370C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _08063738 + adds r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + ldrh r0, [r2, #0x32] + subs r0, #4 + strh r0, [r2, #0x32] + adds r0, r2, #0 + movs r1, #2 + bl sub_080042AC + b _0806373E +_08063738: + adds r0, r2, #0 + bl sub_080042B8 +_0806373E: + pop {pc} + + thumb_func_start sub_08063740 +sub_08063740: @ 0x08063740 + push {lr} + ldr r2, _08063754 @ =gUnk_0810CBD8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08063754: .4byte gUnk_0810CBD8 + + thumb_func_start sub_08063758 +sub_08063758: @ 0x08063758 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _08063794 @ =gUnk_0810CB78 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _080637B4 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0xe] + ands r1, r2 + lsls r1, r1, #6 + ldrb r2, [r4, #0x18] + subs r0, #0x42 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + lsls r0, r0, #0x19 + cmp r0, #0 + blt _08063798 + movs r0, #6 + b _0806379A + .align 2, 0 +_08063794: .4byte gUnk_0810CB78 +_08063798: + movs r0, #2 +_0806379A: + strb r0, [r4, #0x14] + ldrb r0, [r4, #0x14] + movs r1, #0 + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x69 + strb r1, [r0] + adds r0, r4, #0 + bl sub_0807DD50 + adds r0, r4, #0 + bl sub_080637B8 +_080637B4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080637B8 +sub_080637B8: @ 0x080637B8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _08063804 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x69 + strb r0, [r1] + ldr r1, _08063800 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x19 + cmp r0, #0 + bge _080637F2 + adds r1, #4 +_080637F2: + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0806F118 + b _0806382E + .align 2, 0 +_08063800: .4byte gUnk_03001160 +_08063804: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r5, r4, #0 + adds r5, #0x59 + ldrb r0, [r5] + cmp r0, #0xfe + bne _08063828 + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x1e + strb r0, [r5] +_08063828: + adds r0, r4, #0 + bl sub_08004274 +_0806382E: + pop {r4, r5, pc} + + thumb_func_start sub_08063830 +sub_08063830: @ 0x08063830 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806384C + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x69 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08004260 +_0806384C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08063850 +sub_08063850: @ 0x08063850 + push {lr} + ldrb r3, [r0, #0x18] + lsls r3, r3, #0x19 + lsrs r3, r3, #0x1f + rsbs r2, r3, #0 + orrs r2, r3 + asrs r2, r2, #0x1f + movs r3, #4 + ands r2, r3 + ldr r1, [r1, #4] + adds r1, r1, r2 + ldrb r2, [r0, #0x14] + lsrs r2, r2, #1 + adds r1, r1, r2 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08063874 +sub_08063874: @ 0x08063874 + ldrb r1, [r0, #0xe] + strb r1, [r0, #0x14] + bx lr + .align 2, 0 + + thumb_func_start sub_0806387C +sub_0806387C: @ 0x0806387C + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r4, #3 + movs r0, #0xda + bl sub_0807CBD0 + cmp r0, #0 + bne _08063896 + movs r4, #0 + movs r0, #0xda + bl sub_0807CCB4 + b _080638D6 +_08063896: + movs r0, #0xd1 + bl sub_0807CBD0 + cmp r0, #0 + bne _080638D6 + movs r5, #0 + movs r4, #1 +_080638A4: + ldr r0, _080638F8 @ =gUnk_02002B0E + adds r1, r4, #0 + bl sub_0801D5A8 + cmp r0, #0 + beq _080638B2 + adds r5, #1 +_080638B2: + adds r4, #1 + cmp r4, #0x82 + ble _080638A4 + movs r4, #1 + cmp r5, #0x81 + ble _080638D6 + movs r4, #2 + movs r0, #0xd1 + bl sub_0807CCB4 + ldr r0, _080638FC @ =0x00000A17 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _08063900 @ =0x00000A57 + movs r1, #1 + bl sub_0807BA8C +_080638D6: + ldr r0, _08063904 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + subs r1, r0, #6 + cmp r1, #0 + bge _080638E2 + movs r1, #0 +_080638E2: + ldr r2, _08063908 @ =gUnk_0810CBE4 + lsls r0, r4, #1 + lsls r1, r1, #3 + adds r0, r0, r1 + adds r0, r0, r2 + ldrh r0, [r0] + adds r1, r6, #0 + bl sub_08056398 + pop {r4, r5, r6, pc} + .align 2, 0 +_080638F8: .4byte gUnk_02002B0E +_080638FC: .4byte 0x00000A17 +_08063900: .4byte 0x00000A57 +_08063904: .4byte gUnk_02002A40 +_08063908: .4byte gUnk_0810CBE4 + + thumb_func_start sub_0806390C +sub_0806390C: @ 0x0806390C + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #1 + movs r0, #0xd9 + bl sub_0807CBD0 + cmp r0, #0 + bne _0806392E + movs r5, #0 + movs r0, #0xd9 + bl sub_0807CCB4 + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + movs r0, #1 + str r0, [r1, #0x14] +_0806392E: + ldr r0, _08063940 @ =gUnk_0810CC04 + lsls r1, r5, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r4, #0 + bl sub_08056398 + pop {r4, r5, pc} + .align 2, 0 +_08063940: .4byte gUnk_0810CC04 + + thumb_func_start sub_08063944 +sub_08063944: @ 0x08063944 + push {lr} + adds r3, r0, #0 + movs r0, #0 + str r0, [r1, #0x14] + ldr r0, _0806396C @ =gUnk_02002A40 + ldrb r0, [r0, #8] + subs r0, #2 + cmp r0, #0 + bge _08063958 + movs r0, #0 +_08063958: + ldrb r1, [r3, #0xb] + lsls r1, r1, #6 + lsls r0, r0, #3 + ldr r2, _08063970 @ =gUnk_0810CC08 + adds r0, r0, r2 + adds r1, r1, r0 + adds r0, r3, #0 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806396C: .4byte gUnk_02002A40 +_08063970: .4byte gUnk_0810CC08 + + thumb_func_start sub_08063974 +sub_08063974: @ 0x08063974 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xa] + lsls r5, r5, #2 + ldr r0, _080639C8 @ =gUnk_0810CBC0 + adds r5, r5, r0 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r2, #0xf + ands r2, r0 + ldrb r0, [r5] + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldr r2, _080639CC @ =gUnk_0810CD88 + ldrb r1, [r4, #0x1e] + movs r0, #3 + ands r0, r1 + ldrb r1, [r4, #0xa] + lsls r1, r1, #2 + adds r0, r0, r1 + adds r0, r0, r2 + ldrb r2, [r0] + ldrb r0, [r5, #1] + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + pop {r4, r5, pc} + .align 2, 0 +_080639C8: .4byte gUnk_0810CBC0 +_080639CC: .4byte gUnk_0810CD88 + + thumb_func_start sub_080639D0 +sub_080639D0: @ 0x080639D0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_080639E8 +sub_080639E8: @ 0x080639E8 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08063A40 + ldrb r0, [r4, #0xa] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _08063A3C @ =gUnk_0810CB78 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _08063A5C + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + movs r1, #0x41 + rsbs r1, r1, #0 + ands r0, r1 + strb r0, [r4, #0x18] + ldrh r0, [r4, #0x32] + subs r0, #4 + strh r0, [r4, #0x32] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_08096208 + b _08063A5C + .align 2, 0 +_08063A3C: .4byte gUnk_0810CB78 +_08063A40: + adds r5, r4, #0 + adds r5, #0x59 + ldrb r0, [r5] + cmp r0, #0xfe + bne _08063A56 + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x1e + strb r0, [r5] +_08063A56: + adds r0, r4, #0 + bl sub_08004274 +_08063A5C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08063A60 +sub_08063A60: @ 0x08063A60 + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08063A76 + adds r0, r2, #0 + bl sub_08063B68 + b _08063A7C +_08063A76: + adds r0, r2, #0 + bl sub_08063A80 +_08063A7C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08063A80 +sub_08063A80: @ 0x08063A80 + push {lr} + ldr r2, _08063A94 @ =gUnk_0810CDF8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08063A94: .4byte gUnk_0810CDF8 + + thumb_func_start sub_08063A98 +sub_08063A98: @ 0x08063A98 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #4 + bl sub_080042AC + adds r0, r4, #0 + bl sub_08078778 + pop {r4, pc} + + thumb_func_start sub_08063AC0 +sub_08063AC0: @ 0x08063AC0 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x20 + movs r2, #0x20 + bl sub_0806ED9C + cmp r0, #0 + blt _08063AEE + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _08063AF4 + bl sub_08000E50 + movs r1, #0x3f + ands r1, r0 + cmp r1, #0 + bne _08063AEE + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + movs r0, #1 + strb r0, [r4, #0xf] +_08063AEE: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _08063B0C +_08063AF4: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08063B0C + movs r0, #0 + strb r0, [r4, #0xf] +_08063B0C: + adds r0, r4, #0 + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _08063B38 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0806EDC4 + adds r1, r0, #0 + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC + ldrb r0, [r4, #0xe] + ldr r1, _08063B40 @ =0x00000A01 + adds r0, r0, r1 + bl sub_08056378 +_08063B38: + adds r0, r4, #0 + bl sub_0806ED78 + pop {r4, pc} + .align 2, 0 +_08063B40: .4byte 0x00000A01 + + thumb_func_start sub_08063B44 +sub_08063B44: @ 0x08063B44 + push {lr} + adds r2, r0, #0 + ldr r0, _08063B64 @ =gUnk_02000050 + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0 + bne _08063B62 + movs r0, #1 + strb r0, [r2, #0xc] + strb r1, [r2, #0xf] + adds r0, r2, #0 + movs r1, #4 + bl sub_080042AC +_08063B62: + pop {pc} + .align 2, 0 +_08063B64: .4byte gUnk_02000050 + + thumb_func_start sub_08063B68 +sub_08063B68: @ 0x08063B68 + push {r4, lr} + adds r4, r0, #0 + ldrb r3, [r4, #0xc] + cmp r3, #1 + beq _08063B9E + cmp r3, #1 + bgt _08063B7C + cmp r3, #0 + beq _08063B82 + b _08063C10 +_08063B7C: + cmp r3, #2 + beq _08063BF6 + b _08063C10 +_08063B82: + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x69 + strb r3, [r0] + adds r0, r4, #0 + bl sub_0807DD64 +_08063B9E: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _08063BE0 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x69 + strb r0, [r1] + ldr r1, _08063BDC @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0806F118 + b _08063C10 + .align 2, 0 +_08063BDC: .4byte gUnk_03001160 +_08063BE0: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_080042B8 + b _08063C10 +_08063BF6: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08063C10 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x69 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080042AC +_08063C10: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08063C14 +sub_08063C14: @ 0x08063C14 + push {lr} + movs r0, #7 + movs r1, #0x14 + bl sub_0805EB9C + cmp r0, #0 + beq _08063C28 + movs r1, #8 + bl sub_080042AC +_08063C28: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08063C2C +sub_08063C2C: @ 0x08063C2C + push {lr} + movs r0, #7 + movs r1, #0x14 + bl sub_0805EB9C + cmp r0, #0 + beq _08063C40 + movs r1, #4 + bl sub_080042AC +_08063C40: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08063C44 +sub_08063C44: @ 0x08063C44 + push {lr} + movs r0, #7 + movs r1, #0x14 + bl sub_0805EB9C + cmp r0, #0 + beq _08063C58 + movs r1, #0 + bl sub_080042AC +_08063C58: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08063C5C +sub_08063C5C: @ 0x08063C5C + push {lr} + movs r0, #7 + movs r1, #0x14 + bl sub_0805EB9C + cmp r0, #0 + beq _08063C70 + movs r1, #9 + bl sub_080042AC +_08063C70: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08063C74 +sub_08063C74: @ 0x08063C74 + push {lr} + movs r0, #7 + movs r1, #0x14 + bl sub_0805EB9C + cmp r0, #0 + beq _08063C8C + movs r2, #0x18 + rsbs r2, r2, #0 + movs r1, #8 + bl sub_080A2CFC +_08063C8C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08063C90 +sub_08063C90: @ 0x08063C90 + push {lr} + ldr r1, _08063CA4 @ =gUnk_02002A40 + ldrb r1, [r1, #8] + lsls r1, r1, #3 + ldr r2, _08063CA8 @ =gUnk_0810CE04 + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_08063CA4: .4byte gUnk_02002A40 +_08063CA8: .4byte gUnk_0810CE04 + + thumb_func_start sub_08063CAC +sub_08063CAC: @ 0x08063CAC + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_08063CC4 +sub_08063CC4: @ 0x08063CC4 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _08063CF0 + adds r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + ldrh r0, [r2, #0x32] + subs r0, #4 + strh r0, [r2, #0x32] + adds r0, r2, #0 + movs r1, #2 + bl sub_080042AC + b _08063CF6 +_08063CF0: + adds r0, r2, #0 + bl sub_080042B8 +_08063CF6: + pop {pc} + + thumb_func_start sub_08063CF8 +sub_08063CF8: @ 0x08063CF8 + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08063D1C + ldr r0, _08063D18 @ =gUnk_0810F544 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _08063D22 + .align 2, 0 +_08063D18: .4byte gUnk_0810F544 +_08063D1C: + adds r0, r2, #0 + bl sub_08063D24 +_08063D22: + pop {pc} + + thumb_func_start sub_08063D24 +sub_08063D24: @ 0x08063D24 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08063D40 @ =gUnk_0810F550 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0806ED78 + pop {r4, pc} + .align 2, 0 +_08063D40: .4byte gUnk_0810F550 + + thumb_func_start sub_08063D44 +sub_08063D44: @ 0x08063D44 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08063DA0 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x46 + bhi _08063DC6 + ldrb r0, [r4, #9] + movs r1, #0x15 + eors r0, r1 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r1, r1, #0x1f + lsls r1, r1, #4 + ldr r0, _08063DA4 @ =gUnk_0810F524 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _08063DC6 + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 + ldr r0, _08063DA8 @ =gUnk_0810F6BC + ldrb r1, [r4, #0xa] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + movs r2, #0 + bl sub_0806EE04 + ldrb r0, [r4, #0xa] + cmp r0, #0 + blt _08063DB6 + cmp r0, #3 + bgt _08063DAC + movs r0, #0xc + bl sub_080A7EE0 + str r4, [r0, #0x50] + movs r1, #0x3c + strb r1, [r0, #0xf] + b _08063DB6 + .align 2, 0 +_08063DA0: .4byte gUnk_03003DBC +_08063DA4: .4byte gUnk_0810F524 +_08063DA8: .4byte gUnk_0810F6BC +_08063DAC: + cmp r0, #5 + bgt _08063DB6 + adds r0, r4, #0 + bl sub_08078778 +_08063DB6: + ldrb r0, [r4, #0xc] + adds r0, #1 + movs r1, #0 + strb r0, [r4, #0xc] + strb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_08063DC8 +_08063DC6: + pop {r4, pc} + + thumb_func_start sub_08063DC8 +sub_08063DC8: @ 0x08063DC8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0xff + bne _08063DF8 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + ldr r1, _08063DF4 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC + b _08063E4C + .align 2, 0 +_08063DF4: .4byte gUnk_03001160 +_08063DF8: + adds r0, r4, #0 + bl sub_0806EE20 + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + ldrb r1, [r4, #0x14] + cmp r0, r1 + beq _08063E18 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 + b _08063E1E +_08063E18: + adds r0, r4, #0 + bl sub_08004274 +_08063E1E: + adds r2, r4, #0 + adds r2, #0x39 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0 + beq _08063E4C + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r2] + ldr r1, _08063E50 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08064428 +_08063E4C: + pop {r4, pc} + .align 2, 0 +_08063E50: .4byte gUnk_03001160 + + thumb_func_start sub_08063E54 +sub_08063E54: @ 0x08063E54 + push {lr} + ldrb r1, [r0, #0xe] + subs r1, #1 + strb r1, [r0, #0xe] + lsls r1, r1, #0x18 + cmp r1, #0 + bne _08063E68 + movs r0, #0xf + bl sub_0807CD10 +_08063E68: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08063E6C +sub_08063E6C: @ 0x08063E6C + push {lr} + adds r2, r0, #0 + ldr r0, _08063E8C @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08063E8A + movs r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x14] + adds r1, #4 + adds r0, r2, #0 + bl sub_08004260 +_08063E8A: + pop {pc} + .align 2, 0 +_08063E8C: .4byte gUnk_02000050 + + thumb_func_start sub_08063E90 +sub_08063E90: @ 0x08063E90 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #9] + movs r1, #0x15 + eors r0, r1 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r1, r1, #0x1f + lsls r1, r1, #4 + ldr r0, _08063EC8 @ =gUnk_0810F524 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _08063F1E + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0xe] + cmp r1, #0 + beq _08063ECC + adds r1, r4, #0 + adds r1, #0x70 + movs r0, #8 + strb r0, [r1] + b _08063ED2 + .align 2, 0 +_08063EC8: .4byte gUnk_0810F524 +_08063ECC: + adds r0, r4, #0 + adds r0, #0x70 + strb r1, [r0] +_08063ED2: + movs r0, #0 + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_0805ACC0 + adds r2, r0, #0 + cmp r2, #0 + bne _08063EF2 + ldrh r0, [r4, #0x2e] + adds r1, r4, #0 + adds r1, #0x68 + strh r0, [r1] + ldrh r0, [r4, #0x32] + adds r1, #2 + strh r0, [r1] + b _08063EFE +_08063EF2: + lsrs r1, r2, #0x10 + adds r0, r4, #0 + adds r0, #0x68 + strh r1, [r0] + adds r0, #2 + strh r2, [r0] +_08063EFE: + adds r1, r4, #0 + adds r1, #0x71 + movs r0, #0 + strb r0, [r1] + subs r1, #0x39 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + bl sub_08063F20 +_08063F1E: + pop {r4, pc} + + thumb_func_start sub_08063F20 +sub_08063F20: @ 0x08063F20 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + adds r2, r4, #0 + adds r2, #0x39 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0 + beq _08063F72 + ldrb r0, [r4, #0xc] + adds r0, #1 + movs r1, #0 + strb r0, [r4, #0xc] + strb r1, [r2] + ldr r1, _08063F74 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + adds r0, #0x70 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08064428 +_08063F72: + pop {r4, pc} + .align 2, 0 +_08063F74: .4byte gUnk_03001160 + + thumb_func_start sub_08063F78 +sub_08063F78: @ 0x08063F78 + push {lr} + adds r2, r0, #0 + ldr r0, _08063FA8 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08063FA6 + ldrb r0, [r2, #0xc] + subs r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x14] + lsrs r1, r1, #1 + adds r0, r2, #0 + adds r0, #0x70 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + adds r1, r1, r0 + adds r0, r2, #0 + bl sub_08004260 +_08063FA6: + pop {pc} + .align 2, 0 +_08063FA8: .4byte gUnk_02000050 + + thumb_func_start sub_08063FAC +sub_08063FAC: @ 0x08063FAC + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x3f + adds r2, r0, #0 + ands r2, r1 + ldrb r3, [r6, #0x1e] + adds r5, r0, #0 + ands r5, r3 + adds r1, r6, #0 + adds r1, #0x5b + ldrb r1, [r1] + adds r4, r0, #0 + ands r4, r1 + ldrb r0, [r6, #9] + cmp r0, #0x15 + bne _08063FEC + movs r0, #0x40 + ands r0, r3 + cmp r0, #0 + beq _08063FE2 + adds r5, #0x21 + movs r2, #1 + rsbs r2, r2, #0 + movs r4, #0 + b _08063FF6 +_08063FE2: + adds r2, #0x19 + cmp r4, #0 + beq _08063FF6 + adds r4, #0x1f + b _08063FF6 +_08063FEC: + adds r2, #0x46 + adds r5, #0x2d + cmp r4, #0 + beq _08063FF6 + adds r4, #0x4c +_08063FF6: + subs r4, #1 + adds r0, r6, #0 + movs r1, #0 + bl sub_0806FF60 + adds r0, r6, #0 + movs r1, #1 + adds r2, r5, #0 + bl sub_0806FF60 + adds r0, r6, #0 + movs r1, #2 + adds r2, r4, #0 + bl sub_0806FF60 + adds r0, r6, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r6, #0 + movs r1, #1 + movs r2, #2 + bl sub_0806FFD8 + adds r0, r6, #0 + bl sub_0807000C + pop {r4, r5, r6, pc} + + thumb_func_start sub_08064030 +sub_08064030: @ 0x08064030 + ldr r0, _08064040 @ =gUnk_02034350 + ldr r2, [r0, #0x68] + rsbs r0, r2, #0 + orrs r0, r2 + lsrs r0, r0, #0x1f + str r0, [r1, #0x14] + bx lr + .align 2, 0 +_08064040: .4byte gUnk_02034350 + + thumb_func_start sub_08064044 +sub_08064044: @ 0x08064044 + ldr r1, _0806404C @ =gUnk_030010A0 + movs r0, #1 + strb r0, [r1, #8] + bx lr + .align 2, 0 +_0806404C: .4byte gUnk_030010A0 + + thumb_func_start sub_08064050 +sub_08064050: @ 0x08064050 + push {lr} + adds r2, r1, #0 + movs r1, #0 + str r1, [r2, #4] + ldrb r0, [r0, #0xb] + cmp r0, #0x12 + beq _08064072 + cmp r0, #0x12 + bgt _08064068 + cmp r0, #0x11 + beq _0806406E + b _0806407A +_08064068: + cmp r0, #0x13 + beq _08064076 + b _0806407A +_0806406E: + movs r0, #1 + b _08064078 +_08064072: + movs r0, #2 + b _08064078 +_08064076: + movs r0, #3 +_08064078: + str r0, [r2, #4] +_0806407A: + pop {pc} + + thumb_func_start sub_0806407C +sub_0806407C: @ 0x0806407C + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r5, #0x18] + cmp r0, #0 + bne _080640E8 + adds r0, #1 + strb r0, [r5, #0x18] + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + adds r0, #0x20 + strh r0, [r5, #0x12] + bl sub_08000E50 + adds r1, r0, #0 + movs r0, #0x18 + ands r1, r0 + ldrb r0, [r4, #0x15] + cmp r0, #8 + beq _080640C4 + cmp r0, #8 + bgt _080640B2 + cmp r0, #0 + beq _080640BC + b _080640DA +_080640B2: + cmp r0, #0x10 + beq _080640CC + cmp r0, #0x18 + beq _080640D4 + b _080640DA +_080640BC: + cmp r1, #0x10 + bne _080640DA + movs r1, #8 + b _080640DA +_080640C4: + cmp r1, #0x18 + bne _080640DA + movs r1, #0x10 + b _080640DA +_080640CC: + cmp r1, #0 + bne _080640DA + movs r1, #0x18 + b _080640DA +_080640D4: + cmp r1, #8 + bne _080640DA + movs r1, #0 +_080640DA: + strb r1, [r4, #0x15] + adds r0, r1, #0 + bl sub_0806F5B0 + strb r0, [r4, #0x14] + movs r0, #0x80 + strh r0, [r4, #0x24] +_080640E8: + ldrb r0, [r4, #0x14] + lsrs r2, r0, #1 + adds r1, r2, #4 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r1, r0 + beq _0806410A + adds r0, r4, #0 + adds r0, #0x70 + movs r1, #0 + ldrsb r1, [r0, r1] + adds r1, #4 + adds r1, r2, r1 + adds r0, r4, #0 + bl sub_08004260 +_0806410A: + adds r0, r4, #0 + bl sub_080AEF88 + movs r0, #0x2e + ldrsh r1, [r4, r0] + adds r2, r4, #0 + adds r2, #0x68 + movs r3, #0 + ldrsh r0, [r2, r3] + subs r1, r1, r0 + cmp r1, #0x10 + ble _0806412C + ldrh r0, [r2] + adds r0, #0x10 + strh r0, [r4, #0x2e] + movs r0, #1 + strh r0, [r5, #0x12] +_0806412C: + movs r3, #0x10 + rsbs r3, r3, #0 + cmp r1, r3 + bge _0806413E + ldrh r0, [r2] + subs r0, #0x10 + strh r0, [r4, #0x2e] + movs r0, #1 + strh r0, [r5, #0x12] +_0806413E: + movs r6, #0x32 + ldrsh r1, [r4, r6] + adds r2, r4, #0 + adds r2, #0x6a + movs r6, #0 + ldrsh r0, [r2, r6] + subs r1, r1, r0 + cmp r1, #0x10 + ble _0806415A + ldrh r0, [r2] + adds r0, #0x10 + strh r0, [r4, #0x32] + movs r0, #1 + strh r0, [r5, #0x12] +_0806415A: + cmp r1, r3 + bge _08064168 + ldrh r0, [r2] + subs r0, #0x10 + strh r0, [r4, #0x32] + movs r0, #1 + strh r0, [r5, #0x12] +_08064168: + ldrh r0, [r5, #0x12] + subs r0, #1 + strh r0, [r5, #0x12] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0806417A + ldr r1, _0806417C @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0806417A: + pop {r4, r5, r6, pc} + .align 2, 0 +_0806417C: .4byte gUnk_02033280 + + thumb_func_start sub_08064180 +sub_08064180: @ 0x08064180 + push {lr} + movs r0, #7 + movs r1, #0x15 + movs r2, #7 + bl sub_0805EB00 + cmp r0, #0 + beq _08064194 + bl sub_0805E7BC +_08064194: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08064198 +sub_08064198: @ 0x08064198 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r5, #0 + adds r4, #0x71 + ldrb r1, [r4] + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #0 + ble _080641AE + subs r0, r1, #1 + strb r0, [r4] +_080641AE: + ldr r0, _080641D8 @ =gUnk_03001160 + movs r2, #0x32 + ldrsh r1, [r0, r2] + movs r2, #0x32 + ldrsh r0, [r5, r2] + subs r1, r1, r0 + cmp r1, #2 + ble _080641C0 + movs r1, #2 +_080641C0: + movs r0, #2 + rsbs r0, r0, #0 + cmp r1, r0 + bge _080641CA + adds r1, r0, #0 +_080641CA: + adds r6, r4, #0 + cmp r1, #0 + beq _08064256 + cmp r1, #0 + ble _080641DC + movs r0, #0x10 + b _080641DE + .align 2, 0 +_080641D8: .4byte gUnk_03001160 +_080641DC: + movs r0, #0 +_080641DE: + strb r0, [r5, #0x15] + cmp r1, #0 + bge _080641E6 + rsbs r1, r1, #0 +_080641E6: + lsls r0, r1, #8 + strh r0, [r5, #0x24] + movs r0, #0x32 + ldrsh r4, [r5, r0] + adds r0, r5, #0 + bl sub_080AEF88 + movs r1, #0x32 + ldrsh r0, [r5, r1] + adds r6, r5, #0 + adds r6, #0x71 + cmp r4, r0 + beq _08064256 + ldr r0, _080642B0 @ =gUnk_03001160 + movs r2, #0x24 + ldrsh r1, [r0, r2] + movs r0, #0xa0 + lsls r0, r0, #1 + cmp r1, r0 + ble _08064222 + ldr r0, _080642B4 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #6 + bl __modsi3 + cmp r0, #0 + bne _08064222 + adds r0, r5, #0 + bl sub_080A29FC +_08064222: + adds r4, r5, #0 + adds r4, #0x71 + movs r0, #0xa + strb r0, [r4] + ldrb r0, [r5, #0x15] + bl sub_0806F5B0 + strb r0, [r5, #0x14] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x19 + adds r1, r5, #0 + adds r1, #0x70 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r1, #4 + adds r1, r0, r1 + adds r0, r5, #0 + adds r0, #0x58 + adds r6, r4, #0 + ldrb r0, [r0] + cmp r1, r0 + beq _08064256 + adds r0, r5, #0 + bl sub_08004260 +_08064256: + movs r0, #0 + ldrsb r0, [r6, r0] + cmp r0, #0 + bne _0806428C + ldr r1, _080642B0 @ =gUnk_03001160 + adds r0, r5, #0 + bl sub_080045C4 + bl sub_0806F5B0 + strb r0, [r5, #0x14] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x19 + adds r1, r5, #0 + adds r1, #0x70 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r1, r0, r1 + adds r0, r5, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r1, r0 + beq _0806428C + adds r0, r5, #0 + bl sub_08004260 +_0806428C: + adds r0, r5, #0 + bl sub_0806ED78 + movs r0, #0x36 + ldrsh r4, [r5, r0] + ldr r0, _080642B0 @ =gUnk_03001160 + ldrh r0, [r0, #0x36] + strh r0, [r5, #0x36] + cmp r4, #0 + bge _080642AC + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080642AC + adds r0, r5, #0 + bl sub_080A29FC +_080642AC: + pop {r4, r5, r6, pc} + .align 2, 0 +_080642B0: .4byte gUnk_03001160 +_080642B4: .4byte gUnk_030010A0 + + thumb_func_start sub_080642B8 +sub_080642B8: @ 0x080642B8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r5, #0 + adds r4, #0x71 + ldrb r1, [r4] + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #0 + ble _080642CE + subs r0, r1, #1 + strb r0, [r4] +_080642CE: + ldr r0, _080642F8 @ =gUnk_03001160 + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r2, #0x2e + ldrsh r0, [r5, r2] + subs r1, r1, r0 + cmp r1, #2 + ble _080642E0 + movs r1, #2 +_080642E0: + movs r0, #2 + rsbs r0, r0, #0 + cmp r1, r0 + bge _080642EA + adds r1, r0, #0 +_080642EA: + adds r6, r4, #0 + cmp r1, #0 + beq _08064376 + cmp r1, #0 + ble _080642FC + movs r0, #8 + b _080642FE + .align 2, 0 +_080642F8: .4byte gUnk_03001160 +_080642FC: + movs r0, #0x18 +_080642FE: + strb r0, [r5, #0x15] + cmp r1, #0 + bge _08064306 + rsbs r1, r1, #0 +_08064306: + lsls r0, r1, #8 + strh r0, [r5, #0x24] + movs r0, #0x2e + ldrsh r4, [r5, r0] + adds r0, r5, #0 + bl sub_080AEF88 + movs r1, #0x2e + ldrsh r0, [r5, r1] + adds r6, r5, #0 + adds r6, #0x71 + cmp r4, r0 + beq _08064376 + ldr r0, _080643D0 @ =gUnk_03001160 + movs r2, #0x24 + ldrsh r1, [r0, r2] + movs r0, #0xa0 + lsls r0, r0, #1 + cmp r1, r0 + ble _08064342 + ldr r0, _080643D4 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #6 + bl __modsi3 + cmp r0, #0 + bne _08064342 + adds r0, r5, #0 + bl sub_080A29FC +_08064342: + adds r4, r5, #0 + adds r4, #0x71 + movs r0, #0xa + strb r0, [r4] + ldrb r0, [r5, #0x15] + bl sub_0806F5B0 + strb r0, [r5, #0x14] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x19 + adds r1, r5, #0 + adds r1, #0x70 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r1, #4 + adds r1, r0, r1 + adds r0, r5, #0 + adds r0, #0x58 + adds r6, r4, #0 + ldrb r0, [r0] + cmp r1, r0 + beq _08064376 + adds r0, r5, #0 + bl sub_08004260 +_08064376: + movs r0, #0 + ldrsb r0, [r6, r0] + cmp r0, #0 + bne _080643AC + ldr r1, _080643D0 @ =gUnk_03001160 + adds r0, r5, #0 + bl sub_080045C4 + bl sub_0806F5B0 + strb r0, [r5, #0x14] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x19 + adds r1, r5, #0 + adds r1, #0x70 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r1, r0, r1 + adds r0, r5, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r1, r0 + beq _080643AC + adds r0, r5, #0 + bl sub_08004260 +_080643AC: + adds r0, r5, #0 + bl sub_0806ED78 + movs r0, #0x36 + ldrsh r4, [r5, r0] + ldr r0, _080643D0 @ =gUnk_03001160 + ldrh r0, [r0, #0x36] + strh r0, [r5, #0x36] + cmp r4, #0 + bge _080643CC + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080643CC + adds r0, r5, #0 + bl sub_080A29FC +_080643CC: + pop {r4, r5, r6, pc} + .align 2, 0 +_080643D0: .4byte gUnk_03001160 +_080643D4: .4byte gUnk_030010A0 + + thumb_func_start sub_080643D8 +sub_080643D8: @ 0x080643D8 + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + bl sub_0807CC30 + cmp r0, #0 + bne _080643EA + movs r3, #0 + b _08064406 +_080643EA: + movs r0, #2 + bl sub_0807CA84 + cmp r0, #0 + bne _080643F8 + movs r3, #1 + b _08064406 +_080643F8: + movs r0, #3 + bl sub_0807CA84 + movs r3, #3 + cmp r0, #0 + bne _08064406 + movs r3, #2 +_08064406: + ldrb r1, [r4, #0xb] + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + ldr r2, _08064424 @ =gUnk_0810F6D4 + lsls r1, r3, #1 + lsls r0, r0, #3 + adds r1, r1, r0 + adds r1, r1, r2 + ldrh r0, [r1] + adds r1, r4, #0 + bl sub_08056398 + pop {r4, pc} + .align 2, 0 +_08064424: .4byte gUnk_0810F6D4 + + thumb_func_start sub_08064428 +sub_08064428: @ 0x08064428 + push {lr} + adds r3, r0, #0 + ldr r0, _0806444C @ =gUnk_02002A40 + ldrb r0, [r0, #8] + subs r1, r0, #2 + cmp r1, #0 + bge _08064438 + movs r1, #0 +_08064438: + ldrb r2, [r3, #0xb] + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + bne _08064454 + ldrb r0, [r3, #0xb] + lsls r0, r0, #3 + ldr r1, _08064450 @ =gUnk_0810CF4C + b _08064460 + .align 2, 0 +_0806444C: .4byte gUnk_02002A40 +_08064450: .4byte gUnk_0810CF4C +_08064454: + movs r0, #0x7f + ands r0, r2 + lsls r0, r0, #6 + lsls r1, r1, #3 + ldr r2, _0806446C @ =gUnk_0810D0A4 + adds r1, r1, r2 +_08064460: + adds r1, r0, r1 + adds r0, r3, #0 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806446C: .4byte gUnk_0810D0A4 + + thumb_func_start sub_08064470 +sub_08064470: @ 0x08064470 + push {lr} + ldr r0, _08064484 @ =gUnk_03003F80 + adds r0, #0xab + ldrb r0, [r0] + cmp r0, #1 + beq _0806447E + movs r0, #0 +_0806447E: + str r0, [r1, #0x14] + pop {pc} + .align 2, 0 +_08064484: .4byte gUnk_03003F80 + + thumb_func_start sub_08064488 +sub_08064488: @ 0x08064488 + push {lr} + ldr r1, _080644A0 @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0xa8 + ldrb r0, [r0] + cmp r0, #2 + beq _0806449C + adds r1, #0xab + movs r0, #0 + strb r0, [r1] +_0806449C: + pop {pc} + .align 2, 0 +_080644A0: .4byte gUnk_03003F80 + + thumb_func_start sub_080644A4 +sub_080644A4: @ 0x080644A4 + ldr r0, _080644B0 @ =gUnk_03003F80 + adds r0, #0xab + movs r1, #0 + strb r1, [r0] + bx lr + .align 2, 0 +_080644B0: .4byte gUnk_03003F80 + + thumb_func_start sub_080644B4 +sub_080644B4: @ 0x080644B4 + push {lr} + adds r2, r1, #0 + movs r3, #0 + ldrb r1, [r0, #0x14] + ldr r0, [r2, #4] + cmp r1, r0 + bne _080644C4 + movs r3, #1 +_080644C4: + str r3, [r2, #0x14] + pop {pc} + + thumb_func_start sub_080644C8 +sub_080644C8: @ 0x080644C8 + push {r4, lr} + adds r2, r0, #0 + movs r1, #0x2e + ldrsh r0, [r2, r1] + ldr r3, _08064500 @ =gUnk_03000BF0 + movs r4, #0xa + ldrsh r1, [r3, r4] + subs r1, r0, r1 + adds r0, r1, #0 + adds r0, #8 + cmp r0, #0 + blt _08064504 + adds r0, r1, #0 + subs r0, #8 + cmp r0, #0xf0 + bgt _08064504 + movs r0, #0x32 + ldrsh r1, [r2, r0] + movs r2, #0xc + ldrsh r0, [r3, r2] + subs r0, r1, r0 + cmp r0, #0 + blt _08064504 + subs r0, #0x18 + cmp r0, #0xa0 + bgt _08064504 + movs r0, #1 + b _08064506 + .align 2, 0 +_08064500: .4byte gUnk_03000BF0 +_08064504: + movs r0, #0 +_08064506: + pop {r4, pc} + + thumb_func_start sub_08064508 +sub_08064508: @ 0x08064508 + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0806451E + adds r0, r2, #0 + bl sub_08064570 + b _08064522 +_0806451E: + bl sub_0805E780 +_08064522: + pop {pc} + + thumb_func_start sub_08064524 +sub_08064524: @ 0x08064524 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r2, #0x7f + ands r2, r0 + ldrb r5, [r4, #0x1e] + ldrb r0, [r4, #9] + cmp r0, #0x16 + bne _08064540 + cmp r2, #0 + beq _08064548 + adds r2, #0xa + b _08064548 +_08064540: + cmp r2, #0 + beq _08064546 + adds r2, #0x1a +_08064546: + adds r5, #0x10 +_08064548: + subs r2, #1 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + adds r2, r5, #0 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08064570 +sub_08064570: @ 0x08064570 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xc] + cmp r5, #1 + beq _080645EA + cmp r5, #1 + bgt _08064584 + cmp r5, #0 + beq _0806458A + b _0806463C +_08064584: + cmp r5, #2 + beq _0806462C + b _0806463C +_0806458A: + ldrb r1, [r4, #9] + movs r0, #0x16 + eors r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _080645D0 @ =gUnk_0810F874 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806463C + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + strb r5, [r4, #0xe] + adds r0, r4, #0 + bl sub_0805ACC0 + adds r2, r0, #0 + cmp r2, #0 + bne _080645D4 + ldrh r0, [r4, #0x2e] + adds r1, r4, #0 + adds r1, #0x6c + strh r0, [r1] + ldrh r0, [r4, #0x32] + adds r1, #2 + strh r0, [r1] + b _080645E0 + .align 2, 0 +_080645D0: .4byte gUnk_0810F874 +_080645D4: + lsrs r1, r2, #0x10 + adds r0, r4, #0 + adds r0, #0x6c + strh r1, [r0] + adds r0, #2 + strh r2, [r0] +_080645E0: + movs r0, #0 + str r0, [r4, #0x68] + adds r0, r4, #0 + bl sub_0807DD50 +_080645EA: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + adds r2, r4, #0 + adds r2, #0x39 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0 + beq _0806463C + ldrb r0, [r4, #0xc] + adds r0, #1 + movs r1, #0 + strb r0, [r4, #0xc] + strb r1, [r2] + ldr r1, _08064628 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004260 + ldr r0, [r4, #0x68] + cmp r0, #0 + beq _0806463C + bl _call_via_r0 + b _0806463C + .align 2, 0 +_08064628: .4byte gUnk_03001160 +_0806462C: + ldr r0, _08064640 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0806463C + movs r0, #1 + strb r0, [r4, #0xc] +_0806463C: + pop {r4, r5, pc} + .align 2, 0 +_08064640: .4byte gUnk_02000050 + + thumb_func_start sub_08064644 +sub_08064644: @ 0x08064644 + ldr r1, [r1, #4] + str r1, [r0, #0x68] + bx lr + .align 2, 0 + + thumb_func_start sub_0806464C +sub_0806464C: @ 0x0806464C + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x15 + bl sub_0807CC30 + cmp r0, #0 + beq _0806465E + movs r4, #2 + b _08064674 +_0806465E: + movs r0, #0xa0 + bl sub_0807CBD0 + cmp r0, #0 + bne _08064672 + movs r4, #0 + movs r0, #0xa0 + bl sub_0807CCB4 + b _08064674 +_08064672: + movs r4, #1 +_08064674: + ldr r0, _08064684 @ =gUnk_0810F88C + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl sub_08056398 + pop {r4, r5, pc} + .align 2, 0 +_08064684: .4byte gUnk_0810F88C + + thumb_func_start sub_08064688 +sub_08064688: @ 0x08064688 + push {lr} + ldr r1, _0806469C @ =gUnk_02002A40 + ldrb r1, [r1, #8] + lsls r1, r1, #3 + ldr r2, _080646A0 @ =gUnk_0810F894 + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806469C: .4byte gUnk_02002A40 +_080646A0: .4byte gUnk_0810F894 + + thumb_func_start sub_080646A4 +sub_080646A4: @ 0x080646A4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r5, #0x18] + cmp r0, #0 + bne _08064710 + adds r0, #1 + strb r0, [r5, #0x18] + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + adds r0, #0x20 + strh r0, [r5, #0x12] + bl sub_08000E50 + adds r1, r0, #0 + movs r0, #0x18 + ands r1, r0 + ldrb r0, [r4, #0x15] + cmp r0, #8 + beq _080646EC + cmp r0, #8 + bgt _080646DA + cmp r0, #0 + beq _080646E4 + b _08064702 +_080646DA: + cmp r0, #0x10 + beq _080646F4 + cmp r0, #0x18 + beq _080646FC + b _08064702 +_080646E4: + cmp r1, #0x10 + bne _08064702 + movs r1, #8 + b _08064702 +_080646EC: + cmp r1, #0x18 + bne _08064702 + movs r1, #0x10 + b _08064702 +_080646F4: + cmp r1, #0 + bne _08064702 + movs r1, #0x18 + b _08064702 +_080646FC: + cmp r1, #8 + bne _08064702 + movs r1, #0 +_08064702: + strb r1, [r4, #0x15] + adds r0, r1, #0 + bl sub_0806F5B0 + strb r0, [r4, #0x14] + movs r0, #0x80 + strh r0, [r4, #0x24] +_08064710: + ldr r0, [r5, #8] + movs r1, #2 + orrs r0, r1 + str r0, [r5, #8] + adds r0, r4, #0 + bl sub_080AEF88 + movs r0, #0x2e + ldrsh r1, [r4, r0] + adds r2, r4, #0 + adds r2, #0x6c + movs r3, #0 + ldrsh r0, [r2, r3] + subs r1, r1, r0 + cmp r1, #0x10 + ble _0806473A + ldrh r0, [r2] + adds r0, #0x10 + strh r0, [r4, #0x2e] + movs r0, #1 + strh r0, [r5, #0x12] +_0806473A: + movs r3, #0x10 + rsbs r3, r3, #0 + cmp r1, r3 + bge _0806474C + ldrh r0, [r2] + subs r0, #0x10 + strh r0, [r4, #0x2e] + movs r0, #1 + strh r0, [r5, #0x12] +_0806474C: + movs r6, #0x32 + ldrsh r1, [r4, r6] + adds r2, r4, #0 + adds r2, #0x6e + movs r6, #0 + ldrsh r0, [r2, r6] + subs r1, r1, r0 + cmp r1, #0x10 + ble _08064768 + ldrh r0, [r2] + adds r0, #0x10 + strh r0, [r4, #0x32] + movs r0, #1 + strh r0, [r5, #0x12] +_08064768: + cmp r1, r3 + bge _08064776 + ldrh r0, [r2] + subs r0, #0x10 + strh r0, [r4, #0x32] + movs r0, #1 + strh r0, [r5, #0x12] +_08064776: + ldrh r0, [r5, #0x12] + subs r0, #1 + strh r0, [r5, #0x12] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08064788 + ldr r1, _0806478C @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_08064788: + pop {r4, r5, r6, pc} + .align 2, 0 +_0806478C: .4byte gUnk_02033280 + + thumb_func_start sub_08064790 +sub_08064790: @ 0x08064790 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _080647C2 + cmp r0, #1 + bgt _080647A4 + cmp r0, #0 + beq _080647AA + b _08064824 +_080647A4: + cmp r0, #2 + beq _0806480A + b _08064824 +_080647AA: + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0807DD50 + b _08064824 +_080647C2: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _08064800 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + adds r0, r4, #0 + bl sub_0806F118 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] + adds r0, #0x10 + strb r1, [r0] + ldr r1, _080647FC @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_080042AC + b _08064824 + .align 2, 0 +_080647FC: .4byte gUnk_03001160 +_08064800: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + b _08064824 +_0806480A: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08064824 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x68 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080042AC +_08064824: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08064828 +sub_08064828: @ 0x08064828 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r5, r0, #0 + ldr r6, _08064858 @ =gUnk_02002A40 + adds r0, r4, #0 + bl sub_08002632 + ldr r2, _0806485C @ =0x00000141 + adds r1, r6, r2 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _0806484E + ldrb r0, [r6, #8] + cmp r0, #6 + bhi _0806484E + movs r5, #0 +_0806484E: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08078784 + pop {r4, r5, r6, pc} + .align 2, 0 +_08064858: .4byte gUnk_02002A40 +_0806485C: .4byte 0x00000141 + + thumb_func_start sub_08064860 +sub_08064860: @ 0x08064860 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _08064886 + adds r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + adds r0, r2, #0 + movs r1, #6 + bl sub_080042AC + b _0806488C +_08064886: + adds r0, r2, #0 + bl sub_080042B8 +_0806488C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08064890 +sub_08064890: @ 0x08064890 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _080648C2 + cmp r0, #1 + bgt _080648A4 + cmp r0, #0 + beq _080648AA + b _08064924 +_080648A4: + cmp r0, #2 + beq _0806490A + b _08064924 +_080648AA: + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0807DD50 + b _08064924 +_080648C2: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _08064900 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + adds r0, r4, #0 + bl sub_0806F118 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] + adds r0, #0x10 + strb r1, [r0] + ldr r1, _080648FC @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_080042AC + b _08064924 + .align 2, 0 +_080648FC: .4byte gUnk_03001160 +_08064900: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + b _08064924 +_0806490A: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08064924 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x68 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080042AC +_08064924: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08064928 +sub_08064928: @ 0x08064928 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r5, r0, #0 + ldr r6, _08064958 @ =gUnk_02002A40 + adds r0, r4, #0 + bl sub_08002632 + ldr r2, _0806495C @ =0x00000141 + adds r1, r6, r2 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _0806494E + ldrb r0, [r6, #8] + cmp r0, #6 + bhi _0806494E + movs r5, #0 +_0806494E: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08078784 + pop {r4, r5, r6, pc} + .align 2, 0 +_08064958: .4byte gUnk_02002A40 +_0806495C: .4byte 0x00000141 + + thumb_func_start sub_08064960 +sub_08064960: @ 0x08064960 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _08064986 + adds r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + adds r0, r2, #0 + movs r1, #6 + bl sub_080042AC + b _0806498C +_08064986: + adds r0, r2, #0 + bl sub_080042B8 +_0806498C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08064990 +sub_08064990: @ 0x08064990 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _080649C2 + cmp r0, #1 + bgt _080649A4 + cmp r0, #0 + beq _080649AA + b _08064A24 +_080649A4: + cmp r0, #2 + beq _08064A0A + b _08064A24 +_080649AA: + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0807DD50 + b _08064A24 +_080649C2: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _08064A00 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + adds r0, r4, #0 + bl sub_0806F118 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] + adds r0, #0x10 + strb r1, [r0] + ldr r1, _080649FC @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_080042AC + b _08064A24 + .align 2, 0 +_080649FC: .4byte gUnk_03001160 +_08064A00: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + b _08064A24 +_08064A0A: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08064A24 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x68 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080042AC +_08064A24: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08064A28 +sub_08064A28: @ 0x08064A28 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r5, r0, #0 + ldr r6, _08064A58 @ =gUnk_02002A40 + adds r0, r4, #0 + bl sub_08002632 + ldr r2, _08064A5C @ =0x00000141 + adds r1, r6, r2 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _08064A4E + ldrb r0, [r6, #8] + cmp r0, #6 + bhi _08064A4E + movs r5, #0 +_08064A4E: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08078784 + pop {r4, r5, r6, pc} + .align 2, 0 +_08064A58: .4byte gUnk_02002A40 +_08064A5C: .4byte 0x00000141 + + thumb_func_start sub_08064A60 +sub_08064A60: @ 0x08064A60 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _08064A86 + adds r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + adds r0, r2, #0 + movs r1, #6 + bl sub_080042AC + b _08064A8C +_08064A86: + adds r0, r2, #0 + bl sub_080042B8 +_08064A8C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08064A90 +sub_08064A90: @ 0x08064A90 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08064ABC + ldr r0, _08064AB8 @ =gUnk_0810FA44 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0806ED78 + b _08064B42 + .align 2, 0 +_08064AB8: .4byte gUnk_0810FA44 +_08064ABC: + ldrb r1, [r4, #0xc] + adds r5, r1, #0 + cmp r5, #0 + bne _08064AE4 + ldr r1, _08064AE0 @ =gUnk_0810FA38 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _08064B42 + movs r0, #1 + strb r0, [r4, #0xc] + strb r5, [r4, #0xe] + adds r0, r4, #0 + bl sub_0807DD50 + b _08064B42 + .align 2, 0 +_08064AE0: .4byte gUnk_0810FA38 +_08064AE4: + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + beq _08064B00 + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08064B42 + movs r0, #1 + strb r0, [r4, #0xc] + b _08064B42 +_08064B00: + adds r2, r4, #0 + adds r2, #0x39 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #2 + bne _08064B34 + movs r0, #0xff + orrs r0, r1 + strb r0, [r4, #0xc] + strb r3, [r2] + ldr r1, _08064B30 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0806F118 + b _08064B42 + .align 2, 0 +_08064B30: .4byte gUnk_03001160 +_08064B34: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + adds r0, r4, #0 + bl sub_08064C9C +_08064B42: + pop {r4, r5, pc} + + thumb_func_start sub_08064B44 +sub_08064B44: @ 0x08064B44 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08064B80 @ =gUnk_0810FA38 + bl sub_0806FDEC + cmp r0, #0 + beq _08064B7E + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + ldr r1, _08064B84 @ =gUnk_0810FA5A + adds r0, r4, #0 + movs r2, #0 + bl sub_0806EE04 + adds r0, r4, #0 + bl sub_08064CC0 + movs r1, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] +_08064B7E: + pop {r4, pc} + .align 2, 0 +_08064B80: .4byte gUnk_0810FA38 +_08064B84: .4byte gUnk_0810FA5A + + thumb_func_start sub_08064B88 +sub_08064B88: @ 0x08064B88 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x39 + movs r0, #0 + ldrsb r0, [r5, r0] + cmp r0, #1 + beq _08064BFA + cmp r0, #1 + bgt _08064BA2 + cmp r0, #0 + beq _08064BA8 + b _08064BFA +_08064BA2: + cmp r0, #2 + beq _08064BCE + b _08064BFA +_08064BA8: + adds r0, r4, #0 + bl sub_0806EE20 + adds r2, r0, #0 + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + strb r0, [r4, #0x14] + cmp r2, #0 + beq _08064BC6 + movs r1, #0x7f + ands r1, r2 + adds r0, r4, #0 + bl sub_08004260 +_08064BC6: + adds r0, r4, #0 + bl sub_08004274 + b _08064C28 +_08064BCE: + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0806EDC4 + adds r1, r0, #0 + cmp r1, #0 + bge _08064BE0 + ldrb r1, [r4, #0x14] +_08064BE0: + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_08004260 + movs r0, #0 + strb r0, [r5] + adds r0, r4, #0 + bl sub_0806F118 + b _08064C28 +_08064BFA: + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0806EDC4 + adds r1, r0, #0 + cmp r1, #0 + bge _08064C0C + ldrb r1, [r4, #0x14] +_08064C0C: + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_08004260 + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08064CD8 +_08064C28: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08064C2C +sub_08064C2C: @ 0x08064C2C + push {lr} + adds r2, r0, #0 + ldr r0, _08064C4C @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08064C48 + movs r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0xf] + adds r0, r2, #0 + bl sub_08004260 +_08064C48: + pop {pc} + .align 2, 0 +_08064C4C: .4byte gUnk_02000050 + + thumb_func_start sub_08064C50 +sub_08064C50: @ 0x08064C50 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08064C68 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0xf] + adds r0, r4, #0 + bl sub_08004260 +_08064C68: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08064C6C +sub_08064C6C: @ 0x08064C6C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r2, #0x3f + ands r2, r0 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + pop {r4, pc} + + thumb_func_start sub_08064C9C +sub_08064C9C: @ 0x08064C9C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + cmp r0, #0 + beq _08064CB8 + ldr r0, _08064CBC @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _08064CB8 + adds r0, r2, #0 + bl sub_080A29BC +_08064CB8: + pop {pc} + .align 2, 0 +_08064CBC: .4byte gUnk_030010A0 + + thumb_func_start sub_08064CC0 +sub_08064CC0: @ 0x08064CC0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_08064CD8 +sub_08064CD8: @ 0x08064CD8 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #2 + movs r0, #0x46 + bl sub_0807CA84 + cmp r0, #0 + bne _08064CF4 + movs r0, #0x73 + bl sub_0807CBD0 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r4, r1, #0x1f +_08064CF4: + ldr r0, _08064D04 @ =gUnk_0810FA54 + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl sub_08056398 + pop {r4, r5, pc} + .align 2, 0 +_08064D04: .4byte gUnk_0810FA54 + + thumb_func_start sub_08064D08 +sub_08064D08: @ 0x08064D08 + movs r1, #1 + strb r1, [r0, #0xe] + bx lr + .align 2, 0 + + thumb_func_start sub_08064D10 +sub_08064D10: @ 0x08064D10 + movs r1, #0 + strb r1, [r0, #0xe] + bx lr + .align 2, 0 + + thumb_func_start sub_08064D18 +sub_08064D18: @ 0x08064D18 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08064D50 + ldr r1, _08064D4C @ =gUnk_0810FA38 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _08064D56 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #6 + bl sub_08004260 + b _08064D56 + .align 2, 0 +_08064D4C: .4byte gUnk_0810FA38 +_08064D50: + adds r0, r4, #0 + bl sub_08004274 +_08064D56: + pop {r4, pc} + + thumb_func_start sub_08064D58 +sub_08064D58: @ 0x08064D58 + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08064D6E + adds r0, r2, #0 + bl sub_08064DE4 + b _08064D74 +_08064D6E: + adds r0, r2, #0 + bl sub_08064D78 +_08064D74: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08064D78 +sub_08064D78: @ 0x08064D78 + push {lr} + ldr r2, _08064D8C @ =gUnk_0810FBFC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08064D8C: .4byte gUnk_0810FBFC + + thumb_func_start sub_08064D90 +sub_08064D90: @ 0x08064D90 + push {r4, lr} + adds r4, r0, #0 + movs r1, #2 + bl sub_080042AC + movs r0, #1 + strb r0, [r4, #0xf] + pop {r4, pc} + + thumb_func_start sub_08064DA0 +sub_08064DA0: @ 0x08064DA0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08064EE8 + adds r0, r4, #0 + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _08064DC8 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #6 + bl sub_080042AC + movs r0, #0 + bl sub_08056378 +_08064DC8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08064DCC +sub_08064DCC: @ 0x08064DCC + push {r4, lr} + adds r4, r0, #0 + bl sub_08064EE8 + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC + movs r0, #1 + strb r0, [r4, #0xc] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08064DE4 +sub_08064DE4: @ 0x08064DE4 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _08064E1A + cmp r0, #1 + bgt _08064DF8 + cmp r0, #0 + beq _08064DFE + b _08064E6A +_08064DF8: + cmp r0, #2 + beq _08064E56 + b _08064E6A +_08064DFE: + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + movs r0, #4 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_0807DD50 + b _08064E6A +_08064E1A: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _08064E4C + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + ldr r1, _08064E48 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0806F118 + b _08064E6A + .align 2, 0 +_08064E48: .4byte gUnk_03001160 +_08064E4C: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + b _08064E6A +_08064E56: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08064E6A + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0801E99C +_08064E6A: + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r5, #0xf + ands r5, r1 + adds r0, r5, #0 + eors r0, r1 + strb r0, [r2] + cmp r5, #0 + beq _08064EA0 + movs r1, #0x29 + cmp r5, #3 + bne _08064E86 + movs r1, #0x2a +_08064E86: + adds r0, r4, #0 + movs r2, #0 + bl sub_080A29AC + adds r2, r0, #0 + cmp r2, #0 + beq _08064EA0 + cmp r5, #2 + bne _08064EA0 + ldrb r0, [r2, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r2, #0x18] +_08064EA0: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08064EA4 +sub_08064EA4: @ 0x08064EA4 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r5, r4, #0 + adds r5, #0x68 + strb r0, [r5] + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _08064EBE + cmp r0, #3 + beq _08064EC2 + b _08064ED8 +_08064EBE: + movs r0, #0x59 + b _08064EC4 +_08064EC2: + movs r0, #0x5a +_08064EC4: + bl sub_0801E7F4 + cmp r0, #0 + beq _08064ED8 + movs r0, #0xc + bl sub_0807CA84 + cmp r0, #0 + bne _08064ED8 + strb r0, [r5] +_08064ED8: + adds r0, r4, #0 + adds r0, #0x68 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08064EE8 +sub_08064EE8: @ 0x08064EE8 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r5, #0xf + ands r5, r1 + adds r0, r5, #0 + eors r0, r1 + strb r0, [r2] + cmp r5, #0 + beq _08064F26 + movs r1, #0x2a + cmp r5, #3 + beq _08064F0C + movs r1, #0x29 +_08064F0C: + adds r0, r4, #0 + movs r2, #0 + bl sub_080A29AC + adds r2, r0, #0 + cmp r2, #0 + beq _08064F26 + cmp r5, #2 + bne _08064F26 + ldrb r0, [r2, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r2, #0x18] +_08064F26: + pop {r4, r5, pc} + + thumb_func_start sub_08064F28 +sub_08064F28: @ 0x08064F28 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + mov r8, r1 + movs r0, #0 + str r0, [r1, #0x14] + ldr r1, _08064F60 @ =gUnk_0810FC50 + ldrb r0, [r6, #0xa] + adds r0, r0, r1 + ldrb r7, [r0] + adds r0, r7, #0 + bl sub_0807CC3C + cmp r0, #0 + bne _08064F84 + ldr r4, _08064F64 @ =gUnk_02002A40 + adds r0, r6, #0 + bl sub_08002632 + ldr r1, _08064F68 @ =0x00000141 + adds r4, r4, r1 + adds r0, r0, r4 + ldrb r4, [r0] + cmp r4, #1 + bls _08064F6C + movs r5, #3 + b _08064F7E + .align 2, 0 +_08064F60: .4byte gUnk_0810FC50 +_08064F64: .4byte gUnk_02002A40 +_08064F68: .4byte 0x00000141 +_08064F6C: + movs r0, #0xc + bl sub_0807CA84 + movs r5, #2 + cmp r0, #0 + bne _08064F7E + rsbs r0, r4, #0 + orrs r0, r4 + lsrs r5, r0, #0x1f +_08064F7E: + movs r4, #1 + rsbs r4, r4, #0 + b _08064FD2 +_08064F84: + movs r0, #0x3a + bl sub_0807CC30 + cmp r0, #0 + bne _08064FCE + ldr r0, _08064FB0 @ =gUnk_02002A40 + ldr r1, _08064FB4 @ =0x00000117 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #0x64 + subs r4, r0, r1 + cmp r4, #0 + bgt _08064FB8 + movs r5, #8 + movs r4, #0 + movs r0, #0x3a + bl sub_0807CD04 + movs r0, #1 + mov r1, r8 + str r0, [r1, #0x14] + b _08064FD2 + .align 2, 0 +_08064FB0: .4byte gUnk_02002A40 +_08064FB4: .4byte 0x00000117 +_08064FB8: + movs r5, #7 + cmp r4, #9 + ble _08064FC0 + movs r5, #6 +_08064FC0: + cmp r4, #0x27 + ble _08064FC6 + movs r5, #5 +_08064FC6: + cmp r4, #0x45 + ble _08064FD2 + movs r5, #4 + b _08064FD2 +_08064FCE: + movs r5, #8 + movs r4, #0 +_08064FD2: + ldr r2, _08065008 @ =gUnk_0810FC08 + ldrb r1, [r6, #0xa] + lsls r0, r1, #3 + adds r0, r0, r1 + adds r0, r0, r5 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + adds r1, r6, #0 + bl sub_08056398 + cmp r4, #0 + ble _08064FF4 + ldr r1, _0806500C @ =gUnk_02000050 + lsls r0, r4, #0x10 + lsrs r0, r0, #0x10 + str r0, [r1, #0x10] +_08064FF4: + adds r0, r7, #0 + bl sub_0807CC3C + cmp r0, #0 + bne _08065010 + adds r0, r7, #0 + bl sub_0807CD10 + b _08065016 + .align 2, 0 +_08065008: .4byte gUnk_0810FC08 +_0806500C: .4byte gUnk_02000050 +_08065010: + adds r0, r7, #0 + bl sub_0807CD8C +_08065016: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0806501C +sub_0806501C: @ 0x0806501C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _0806504A + adds r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + movs r1, #6 + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _08065042 + movs r1, #0xa +_08065042: + adds r0, r2, #0 + bl sub_080042AC + b _08065050 +_0806504A: + adds r0, r2, #0 + bl sub_08064EE8 +_08065050: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08065054 +sub_08065054: @ 0x08065054 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0806507C @ =gUnk_0810FDA4 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_0807DF74 + adds r0, r4, #0 + bl sub_0806ED78 + pop {r4, pc} + .align 2, 0 +_0806507C: .4byte gUnk_0810FDA4 + + thumb_func_start sub_08065080 +sub_08065080: @ 0x08065080 + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08078778 + ldr r3, _080650C4 @ =gUnk_0810FDA0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #0 + bl sub_08078850 + ldr r1, _080650C8 @ =gUnk_080142B0 + adds r0, r4, #0 + bl sub_0807DAD0 + adds r4, #0x84 + str r0, [r4] + pop {r4, pc} + .align 2, 0 +_080650C4: .4byte gUnk_0810FDA0 +_080650C8: .4byte gUnk_080142B0 + + thumb_func_start sub_080650CC +sub_080650CC: @ 0x080650CC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + ldr r6, _080650F8 @ =gUnk_02034350 + ldr r0, [r6, #0x68] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08065100 + movs r1, #0 + movs r0, #4 + strb r0, [r5, #0xc] + strb r1, [r5, #0xd] + adds r0, r5, #0 + adds r0, #0x84 + ldr r0, [r0] + ldr r1, _080650FC @ =gUnk_080143C0 + bl sub_0807DB88 + b _080651A6 + .align 2, 0 +_080650F8: .4byte gUnk_02034350 +_080650FC: .4byte gUnk_080143C0 +_08065100: + adds r2, r5, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0x20 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _0806517C + adds r3, r5, #0 + adds r3, #0x39 + movs r0, #0 + ldrsb r0, [r3, r0] + cmp r0, #0 + beq _0806517C + strb r4, [r3] + ldrb r0, [r5, #0xc] + adds r0, #1 + strb r0, [r5, #0xc] + adds r0, r5, #0 + movs r1, #7 + bl sub_08004260 + ldrb r0, [r6, #6] + cmp r0, #0 + bne _0806513C + ldr r7, _08065138 @ =0x00002C01 + b _0806515E + .align 2, 0 +_08065138: .4byte 0x00002C01 +_0806513C: + ldrb r0, [r6, #6] + bl sub_08053FD0 + adds r7, r0, #0 + ldrb r0, [r6, #6] + bl sub_08053FE0 + mov r8, r0 + movs r0, #4 + strb r0, [r5, #0xc] + strb r4, [r5, #0xd] + adds r0, r5, #0 + adds r0, #0x84 + ldr r0, [r0] + ldr r1, _08065174 @ =gUnk_08014384 + bl sub_0807DB88 +_0806515E: + adds r0, r7, #0 + adds r1, r5, #0 + bl sub_08056398 + ldr r1, _08065178 @ =gUnk_02000050 + mov r2, r8 + lsls r0, r2, #0x10 + lsrs r0, r0, #0x10 + str r0, [r1, #0x10] + b _080651A6 + .align 2, 0 +_08065174: .4byte gUnk_08014384 +_08065178: .4byte gUnk_02000050 +_0806517C: + ldrb r1, [r2] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080651A0 + ldr r4, _0806519C @ =gUnk_0810FDB8 + bl sub_08000E50 + movs r1, #0xf + ands r1, r0 + adds r1, r1, r4 + ldrb r1, [r1] + adds r0, r5, #0 + bl sub_08004260 + b _080651A6 + .align 2, 0 +_0806519C: .4byte gUnk_0810FDB8 +_080651A0: + adds r0, r5, #0 + bl sub_08004274 +_080651A6: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080651AC +sub_080651AC: @ 0x080651AC + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldr r0, _080651D4 @ =gUnk_02000050 + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0 + bne _080651D2 + adds r0, r4, #0 + adds r0, #0x39 + strb r1, [r0] + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 +_080651D2: + pop {r4, pc} + .align 2, 0 +_080651D4: .4byte gUnk_02000050 + + thumb_func_start sub_080651D8 +sub_080651D8: @ 0x080651D8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldr r1, _080651F4 @ =gUnk_0810FDC8 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080651F4: .4byte gUnk_0810FDC8 + + thumb_func_start sub_080651F8 +sub_080651F8: @ 0x080651F8 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _0806522A + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + movs r2, #0x18 + rsbs r2, r2, #0 + adds r0, r4, #0 + movs r1, #8 + bl sub_080A2CFC + movs r0, #1 + bl sub_08078A90 +_0806522A: + pop {r4, pc} + + thumb_func_start sub_0806522C +sub_0806522C: @ 0x0806522C + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08065248 + ldrb r0, [r1, #0xd] + adds r0, #1 + strb r0, [r1, #0xd] + ldr r0, _0806524C @ =0x00002C16 + bl sub_08056398 +_08065248: + pop {pc} + .align 2, 0 +_0806524C: .4byte 0x00002C16 + + thumb_func_start sub_08065250 +sub_08065250: @ 0x08065250 + push {r4, lr} + adds r4, r0, #0 + bl sub_08056338 + adds r1, r0, #0 + cmp r1, #0 + beq _08065264 + cmp r1, #1 + beq _0806527E + b _0806528A +_08065264: + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x1e + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + movs r2, #0x18 + rsbs r2, r2, #0 + adds r0, r4, #0 + movs r1, #8 + bl sub_080A2CFC + b _0806528A +_0806527E: + movs r0, #0 + movs r1, #7 + strb r1, [r4, #0xd] + strb r0, [r4, #0xe] + movs r0, #2 + strb r0, [r4, #0xf] +_0806528A: + pop {r4, pc} + + thumb_func_start sub_0806528C +sub_0806528C: @ 0x0806528C + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080652A8 + ldrb r0, [r1, #0xd] + adds r0, #1 + strb r0, [r1, #0xd] + ldr r0, _080652AC @ =0x00002C18 + bl sub_08056398 +_080652A8: + pop {pc} + .align 2, 0 +_080652AC: .4byte 0x00002C18 + + thumb_func_start sub_080652B0 +sub_080652B0: @ 0x080652B0 + push {lr} + adds r2, r0, #0 + ldr r0, _080652DC @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _080652DA + ldrb r0, [r2, #0xd] + adds r0, #1 + strb r0, [r2, #0xd] + movs r0, #0xa + strb r0, [r2, #0xe] + ldr r1, _080652E0 @ =gUnk_02034350 + ldrb r0, [r2, #0xf] + str r0, [r1, #0x68] + movs r0, #0x36 + movs r1, #0 + movs r2, #0 + bl sub_080A7C00 +_080652DA: + pop {pc} + .align 2, 0 +_080652DC: .4byte gUnk_02000050 +_080652E0: .4byte gUnk_02034350 + + thumb_func_start sub_080652E4 +sub_080652E4: @ 0x080652E4 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + cmp r0, #0 + beq _080652F4 + subs r0, #1 + strb r0, [r1, #0xe] + b _08065308 +_080652F4: + ldr r0, _0806530C @ =gUnk_03001160 + ldrb r0, [r0, #0xc] + cmp r0, #8 + beq _08065308 + ldrb r0, [r1, #0xd] + adds r0, #1 + strb r0, [r1, #0xd] + ldr r0, _08065310 @ =0x00002C19 + bl sub_08056398 +_08065308: + pop {pc} + .align 2, 0 +_0806530C: .4byte gUnk_03001160 +_08065310: .4byte 0x00002C19 + + thumb_func_start sub_08065314 +sub_08065314: @ 0x08065314 + push {lr} + adds r2, r0, #0 + ldr r0, _08065334 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08065332 + ldrb r0, [r2, #0xd] + adds r0, #1 + strb r0, [r2, #0xd] + movs r0, #3 + movs r1, #3 + bl sub_080A7138 +_08065332: + pop {pc} + .align 2, 0 +_08065334: .4byte gUnk_02000050 + + thumb_func_start sub_08065338 +sub_08065338: @ 0x08065338 + push {lr} + adds r2, r0, #0 + ldr r0, _08065360 @ =gUnk_02000050 + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0 + bne _0806535C + movs r0, #1 + strb r0, [r2, #0xc] + strb r1, [r2, #0xd] + ldr r1, _08065364 @ =gUnk_02034350 + ldrb r0, [r2, #0xf] + str r0, [r1, #0x68] + adds r0, r2, #0 + movs r1, #4 + bl sub_08004260 +_0806535C: + pop {pc} + .align 2, 0 +_08065360: .4byte gUnk_02000050 +_08065364: .4byte gUnk_02034350 + + thumb_func_start sub_08065368 +sub_08065368: @ 0x08065368 + push {lr} + bl sub_08004274 + pop {pc} + + thumb_func_start sub_08065370 +sub_08065370: @ 0x08065370 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r4, r0, #0 + mov r8, r1 + movs r6, #1 + ldr r0, _0806539C @ =gUnk_02034350 + ldrb r5, [r0, #6] + movs r0, #0 + mov sb, r0 + cmp r5, #0x66 + beq _0806541A + cmp r5, #0x66 + bhi _080653AA + cmp r5, #0x61 + beq _08065426 + cmp r5, #0x61 + bhi _080653A0 + cmp r5, #0xd + beq _080653D0 + b _0806543C + .align 2, 0 +_0806539C: .4byte gUnk_02034350 +_080653A0: + cmp r5, #0x64 + beq _08065414 + cmp r5, #0x65 + beq _08065420 + b _0806543C +_080653AA: + cmp r5, #0x6c + blo _0806543C + cmp r5, #0x6d + bls _080653EC + cmp r5, #0x6f + bhi _0806543C + ldr r2, _080653C8 @ =gUnk_080FD5A4 + ldr r1, _080653CC @ =gUnk_02002A40 + adds r0, r1, #0 + adds r0, #0xaf + ldrb r0, [r0] + adds r0, r0, r2 + adds r1, #0xad + b _080653FA + .align 2, 0 +_080653C8: .4byte gUnk_080FD5A4 +_080653CC: .4byte gUnk_02002A40 +_080653D0: + movs r0, #0xd + bl sub_0807CA84 + cmp r0, #0 + bne _080653E4 + movs r0, #0xe + bl sub_0807CA84 + cmp r0, #0 + beq _0806543C +_080653E4: + ldr r0, _080653E8 @ =0x00002C0B + b _080654C2 + .align 2, 0 +_080653E8: .4byte 0x00002C0B +_080653EC: + ldr r2, _08065408 @ =gUnk_080FD5A0 + ldr r1, _0806540C @ =gUnk_02002A40 + adds r0, r1, #0 + adds r0, #0xae + ldrb r0, [r0] + adds r0, r0, r2 + adds r1, #0xac +_080653FA: + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bhi _0806543C + ldr r0, _08065410 @ =0x00002C0E + b _080654C2 + .align 2, 0 +_08065408: .4byte gUnk_080FD5A0 +_0806540C: .4byte gUnk_02002A40 +_08065410: .4byte 0x00002C0E +_08065414: + movs r1, #0x55 + mov sb, r1 + b _0806543C +_0806541A: + movs r0, #0x56 + mov sb, r0 + b _0806543C +_08065420: + movs r1, #0xcd + mov sb, r1 + b _0806543C +_08065426: + ldr r0, _08065494 @ =gUnk_02002A40 + adds r0, #0xc2 + ldrh r1, [r0] + ldr r0, _08065498 @ =0x000003E6 + cmp r1, r0 + bls _0806543C + ldr r0, _0806549C @ =0x00002C0E + adds r1, r4, #0 + bl sub_08056398 + movs r6, #0 +_0806543C: + cmp r6, #0 + beq _080654C8 + adds r0, r5, #0 + bl sub_08053FE0 + adds r6, r0, #0 + ldr r7, _08065494 @ =gUnk_02002A40 + adds r0, r7, #0 + adds r0, #0xc0 + ldrh r0, [r0] + cmp r6, r0 + bhi _080654C0 + rsbs r0, r6, #0 + bl sub_080526CC + ldr r4, _080654A0 @ =gUnk_02034350 + ldrb r1, [r4, #7] + adds r0, r5, #0 + movs r2, #2 + bl sub_080A7C18 + movs r0, #0 + strb r0, [r4, #6] + strb r0, [r4, #7] + movs r0, #1 + mov r1, r8 + str r0, [r1, #0x14] + mov r0, sb + cmp r0, #0 + beq _0806547C + bl sub_0807CCB4 +_0806547C: + ldr r1, [r7, #0x5c] + movs r0, #2 + rsbs r0, r0, #0 + cmp r1, r0 + bhi _0806548A + adds r0, r1, #1 + str r0, [r7, #0x5c] +_0806548A: + ldr r0, [r7, #0x5c] + cmp r0, #9 + bls _080654A8 + ldr r0, _080654A4 @ =0x00002C11 + b _080654B6 + .align 2, 0 +_08065494: .4byte gUnk_02002A40 +_08065498: .4byte 0x000003E6 +_0806549C: .4byte 0x00002C0E +_080654A0: .4byte gUnk_02034350 +_080654A4: .4byte 0x00002C11 +_080654A8: + cmp r6, #0x63 + bls _080654B4 + ldr r0, _080654B0 @ =0x00002C10 + b _080654B6 + .align 2, 0 +_080654B0: .4byte 0x00002C10 +_080654B4: + ldr r0, _080654BC @ =0x00002C0F +_080654B6: + mov r1, r8 + str r0, [r1, #4] + b _080654CE + .align 2, 0 +_080654BC: .4byte 0x00002C0F +_080654C0: + ldr r0, _080654D8 @ =0x00002C0D +_080654C2: + adds r1, r4, #0 + bl sub_08056398 +_080654C8: + movs r0, #0 + mov r1, r8 + str r0, [r1, #0x14] +_080654CE: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080654D8: .4byte 0x00002C0D + + thumb_func_start sub_080654DC +sub_080654DC: @ 0x080654DC + push {lr} + movs r2, #0x18 + rsbs r2, r2, #0 + movs r1, #8 + bl sub_080A2D0C + pop {pc} + .align 2, 0 + + thumb_func_start sub_080654EC +sub_080654EC: @ 0x080654EC + push {lr} + movs r2, #0x18 + rsbs r2, r2, #0 + movs r1, #8 + bl sub_080A2CFC + pop {pc} + .align 2, 0 + + thumb_func_start sub_080654FC +sub_080654FC: @ 0x080654FC + push {lr} + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _08065518 + ldr r1, _08065514 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] + b _08065522 + .align 2, 0 +_08065514: .4byte gUnk_02033280 +_08065518: + ldr r2, _08065524 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] +_08065522: + pop {pc} + .align 2, 0 +_08065524: .4byte gUnk_02033280 + + thumb_func_start sub_08065528 +sub_08065528: @ 0x08065528 + ldr r2, _08065530 @ =gUnk_02034350 + ldr r0, [r1, #4] + str r0, [r2, #0x68] + bx lr + .align 2, 0 +_08065530: .4byte gUnk_02034350 + + thumb_func_start sub_08065534 +sub_08065534: @ 0x08065534 + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08065558 + ldr r0, _08065554 @ =gUnk_0810FEC4 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _08065568 + .align 2, 0 +_08065554: .4byte gUnk_0810FEC4 +_08065558: + ldr r0, _0806556C @ =gUnk_0810FEBC + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 +_08065568: + pop {pc} + .align 2, 0 +_0806556C: .4byte gUnk_0810FEBC + + thumb_func_start sub_08065570 +sub_08065570: @ 0x08065570 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08065598 @ =gUnk_0810FEB0 + bl sub_0806FDEC + cmp r0, #0 + beq _08065596 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08078778 + movs r0, #1 + strb r0, [r4, #0xc] + strb r0, [r4, #0xf] + movs r0, #2 + strb r0, [r4, #0x14] +_08065596: + pop {r4, pc} + .align 2, 0 +_08065598: .4byte gUnk_0810FEB0 + + thumb_func_start sub_0806559C +sub_0806559C: @ 0x0806559C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #8 + bls _080655D0 + movs r0, #0 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0x20 + movs r2, #0x20 + bl sub_0806ED9C + cmp r0, #0 + bge _080655C6 + ldrb r0, [r4, #0x14] + adds r1, r0, #4 + b _080655CA +_080655C6: + strb r0, [r4, #0x14] + adds r1, r0, #0 +_080655CA: + adds r0, r4, #0 + adds r0, #0x58 + b _080655D6 +_080655D0: + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] +_080655D6: + ldrb r0, [r0] + cmp r0, r1 + beq _080655E4 + adds r0, r4, #0 + bl sub_08004260 + b _080655EA +_080655E4: + adds r0, r4, #0 + bl sub_08004274 +_080655EA: + adds r0, r4, #0 + bl sub_0806ED78 + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08065604 + movs r0, #0 + strb r0, [r1] + bl sub_080791D0 +_08065604: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08065608 +sub_08065608: @ 0x08065608 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08065644 @ =gUnk_0810FEB0 + bl sub_0806FDEC + cmp r0, #0 + beq _08065640 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + adds r0, r4, #0 + bl sub_0807DD50 +_08065640: + pop {r4, pc} + .align 2, 0 +_08065644: .4byte gUnk_0810FEB0 + + thumb_func_start sub_08065648 +sub_08065648: @ 0x08065648 + push {lr} + adds r2, r0, #0 + movs r0, #0x39 + adds r0, r0, r2 + mov ip, r0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #2 + bne _08065676 + ldrb r0, [r2, #0xc] + adds r3, r2, #0 + adds r3, #0x69 + movs r1, #0 + strb r0, [r3] + movs r0, #4 + strb r0, [r2, #0xc] + mov r0, ip + strb r1, [r0] + adds r0, r2, #0 + bl sub_0806F118 + b _0806567E +_08065676: + adds r0, r2, #0 + movs r1, #0 + bl sub_0807DD94 +_0806567E: + pop {pc} + + thumb_func_start sub_08065680 +sub_08065680: @ 0x08065680 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _080656A0 + adds r0, r4, #0 + adds r0, #0x69 + ldrb r0, [r0] + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x6a + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080042AC +_080656A0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080656A4 +sub_080656A4: @ 0x080656A4 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080656D0 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _080656C8 + adds r0, r4, #0 + adds r0, #0x69 + ldrb r0, [r0] + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x6a + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080042AC +_080656C8: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 +_080656D0: .4byte gUnk_02000050 + + thumb_func_start sub_080656D4 +sub_080656D4: @ 0x080656D4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x39 + movs r0, #0 + ldrsb r0, [r5, r0] + cmp r0, #2 + bne _080656FC + ldrb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x69 + movs r1, #0 + strb r0, [r2] + movs r0, #4 + strb r0, [r4, #0xc] + strb r1, [r5] + adds r0, r4, #0 + bl sub_0806F118 + b _08065738 +_080656FC: + cmp r0, #0 + beq _08065740 + movs r0, #0x37 + bl sub_0807CA84 + adds r2, r0, #0 + cmp r2, #0 + beq _0806571C + ldr r1, _08065718 @ =gUnk_0800B41C + adds r0, r4, #0 + bl sub_0807DAD0 + b _08065740 + .align 2, 0 +_08065718: .4byte gUnk_0800B41C +_0806571C: + ldrb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x69 + strb r0, [r1] + movs r0, #3 + strb r0, [r4, #0xc] + strb r2, [r5] + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + ldr r0, [r0, #4] + adds r1, r4, #0 + bl sub_08056398 +_08065738: + adds r0, r4, #0 + bl sub_0806574C + b _08065748 +_08065740: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 +_08065748: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806574C +sub_0806574C: @ 0x0806574C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r1, _0806577C @ =gUnk_03001160 + bl sub_080045C4 + bl sub_0806F5A4 + adds r5, r4, #0 + adds r5, #0x58 + ldrb r2, [r5] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r2 + adds r1, r1, r0 + cmp r2, r1 + beq _08065772 + adds r0, r4, #0 + bl sub_080042AC +_08065772: + ldrb r1, [r5] + adds r0, r4, #0 + adds r0, #0x6a + strb r1, [r0] + pop {r4, r5, pc} + .align 2, 0 +_0806577C: .4byte gUnk_03001160 + + thumb_func_start sub_08065780 +sub_08065780: @ 0x08065780 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08000E50 + movs r2, #6 + adds r1, r0, #0 + ands r1, r2 + strb r1, [r4, #0x14] + ldr r2, _080657A4 @ =gUnk_0810FED8 + lsrs r0, r0, #8 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + strh r0, [r5, #0x10] + pop {r4, r5, pc} + .align 2, 0 +_080657A4: .4byte gUnk_0810FED8 + + thumb_func_start sub_080657A8 +sub_080657A8: @ 0x080657A8 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r2, #7 + ands r2, r0 + adds r2, #0xb + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080657DC +sub_080657DC: @ 0x080657DC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08065814 + ldr r1, _08065810 @ =gUnk_0810FEB0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806581A + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #6 + bl sub_08004260 + b _0806581A + .align 2, 0 +_08065810: .4byte gUnk_0810FEB0 +_08065814: + adds r0, r4, #0 + bl sub_08004274 +_0806581A: + pop {r4, pc} + + thumb_func_start sub_0806581C +sub_0806581C: @ 0x0806581C + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08065840 + ldr r0, _0806583C @ =gUnk_0810FF64 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _0806585C + .align 2, 0 +_0806583C: .4byte gUnk_0810FF64 +_08065840: + ldr r1, _08065860 @ =gUnk_0810FF5C + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r0, [r4, #0xc] + cmp r0, #0 + beq _0806585C + adds r0, r4, #0 + bl sub_0806ED78 +_0806585C: + pop {r4, pc} + .align 2, 0 +_08065860: .4byte gUnk_0810FF5C + + thumb_func_start sub_08065864 +sub_08065864: @ 0x08065864 + push {lr} + movs r3, #1 + movs r1, #1 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x18] + subs r1, #5 + ands r1, r2 + orrs r1, r3 + strb r1, [r0, #0x18] + movs r1, #0xc + bl sub_080042AC + pop {pc} + .align 2, 0 + + thumb_func_start sub_08065880 +sub_08065880: @ 0x08065880 + push {lr} + bl sub_080042B8 + pop {pc} + + thumb_func_start sub_08065888 +sub_08065888: @ 0x08065888 + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + movs r0, #4 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + adds r0, r4, #0 + bl sub_0807DD50 + pop {r4, pc} + + thumb_func_start sub_080658BC +sub_080658BC: @ 0x080658BC + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _080658F4 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + ldr r1, _080658F0 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0806F118 + b _080658FC + .align 2, 0 +_080658F0: .4byte gUnk_03001160 +_080658F4: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 +_080658FC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08065900 +sub_08065900: @ 0x08065900 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08065910 + movs r0, #1 + strb r0, [r4, #0xc] +_08065910: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08065914 +sub_08065914: @ 0x08065914 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #7 + movs r1, #0x1f + movs r2, #7 + bl sub_0805EB00 + adds r4, r0, #0 + cmp r4, #0 + beq _08065938 + movs r2, #0xc0 + lsls r2, r2, #0xd + ldr r3, _0806595C @ =0xFFFF0000 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA48 + str r5, [r4, #0x50] +_08065938: + movs r0, #7 + movs r1, #0x20 + movs r2, #7 + bl sub_0805EB00 + adds r4, r0, #0 + cmp r4, #0 + beq _08065958 + movs r2, #0xa0 + lsls r2, r2, #0xe + adds r0, r5, #0 + adds r1, r4, #0 + movs r3, #0 + bl sub_0806FA48 + str r5, [r4, #0x50] +_08065958: + pop {r4, r5, pc} + .align 2, 0 +_0806595C: .4byte 0xFFFF0000 + + thumb_func_start sub_08065960 +sub_08065960: @ 0x08065960 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _08065986 + adds r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + adds r0, r2, #0 + movs r1, #0xc + bl sub_080042AC + b _0806598C +_08065986: + adds r0, r2, #0 + bl sub_080042B8 +_0806598C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08065990 +sub_08065990: @ 0x08065990 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080659B4 @ =gUnk_0811006C + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_08065A64 + adds r0, r4, #0 + bl sub_0806ED78 + pop {r4, pc} + .align 2, 0 +_080659B4: .4byte gUnk_0811006C + + thumb_func_start sub_080659B8 +sub_080659B8: @ 0x080659B8 + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + movs r0, #6 + strb r0, [r4, #0x14] + adds r1, r4, #0 + adds r1, #0x69 + movs r0, #0xff + strb r0, [r1] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 + adds r0, r4, #0 + bl sub_080042AC + pop {r4, pc} + + thumb_func_start sub_080659F0 +sub_080659F0: @ 0x080659F0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_08065AA4 + pop {r4, pc} + + thumb_func_start sub_08065A00 +sub_08065A00: @ 0x08065A00 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_08065AA4 + pop {r4, pc} + + thumb_func_start sub_08065A10 +sub_08065A10: @ 0x08065A10 + push {lr} + adds r2, r0, #0 + ldr r0, _08065A30 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08065A2E + movs r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x14] + lsrs r1, r1, #1 + adds r0, r2, #0 + bl sub_080042AC +_08065A2E: + pop {pc} + .align 2, 0 +_08065A30: .4byte gUnk_02000050 + + thumb_func_start sub_08065A34 +sub_08065A34: @ 0x08065A34 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08065A4E + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 + adds r0, r4, #0 + bl sub_080042AC +_08065A4E: + pop {r4, pc} + + thumb_func_start sub_08065A50 +sub_08065A50: @ 0x08065A50 + push {lr} + ldrb r1, [r0, #0xa] + lsls r1, r1, #3 + ldr r2, _08065A60 @ =gUnk_08110080 + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_08065A60: .4byte gUnk_08110080 + + thumb_func_start sub_08065A64 +sub_08065A64: @ 0x08065A64 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _08065A8C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + rsbs r0, r0, #0 + lsrs r5, r0, #0x1f + adds r0, r4, #0 + adds r0, #0x69 + ldrb r0, [r0] + cmp r5, r0 + beq _08065A9C + cmp r5, #0 + bne _08065A90 + adds r0, r4, #0 + bl sub_08078778 + b _08065A9C + .align 2, 0 +_08065A8C: .4byte gUnk_03003F80 +_08065A90: + adds r0, r4, #0 + adds r0, #0x68 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080787A8 +_08065A9C: + adds r0, r4, #0 + adds r0, #0x69 + strb r5, [r0] + pop {r4, r5, pc} + + thumb_func_start sub_08065AA4 +sub_08065AA4: @ 0x08065AA4 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x39 + movs r2, #0 + ldrsb r2, [r0, r2] + cmp r2, #0 + beq _08065B18 + ldr r0, _08065AD0 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08065B00 + cmp r2, #2 + bne _08065AD4 + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0806F118 + b _08065AE6 + .align 2, 0 +_08065AD0: .4byte gUnk_03003F80 +_08065AD4: + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_08065A50 +_08065AE6: + ldr r1, _08065AFC @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_080042AC + b _08065B0A + .align 2, 0 +_08065AFC: .4byte gUnk_03001160 +_08065B00: + adds r0, r4, #0 + bl sub_08065A50 + bl sub_080791D0 +_08065B0A: + movs r0, #0xd3 + bl sub_080A3268 + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + strb r0, [r1] +_08065B18: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08065B1C +sub_08065B1C: @ 0x08065B1C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _08065B42 + adds r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + adds r0, r2, #0 + movs r1, #7 + bl sub_080042AC + b _08065B48 +_08065B42: + adds r0, r2, #0 + bl sub_080042B8 +_08065B48: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08065B4C +sub_08065B4C: @ 0x08065B4C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08065B68 @ =gUnk_08110118 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0806ED78 + pop {r4, pc} + .align 2, 0 +_08065B68: .4byte gUnk_08110118 + + thumb_func_start sub_08065B6C +sub_08065B6C: @ 0x08065B6C + push {lr} + ldrb r1, [r0, #0xc] + adds r1, #1 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #1 + orrs r1, r2 + strb r1, [r0, #0x18] + ldr r2, _08065B98 @ =0xFFFF8000 + adds r1, r2, #0 + ldrh r2, [r0, #0x30] + adds r1, r1, r2 + strh r1, [r0, #0x30] + movs r1, #6 + strb r1, [r0, #0x14] + movs r1, #3 + bl sub_080042AC + pop {pc} + .align 2, 0 +_08065B98: .4byte 0xFFFF8000 + + thumb_func_start sub_08065B9C +sub_08065B9C: @ 0x08065B9C + push {lr} + bl sub_080042B8 + pop {pc} + + thumb_func_start sub_08065BA4 +sub_08065BA4: @ 0x08065BA4 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08065BBA + adds r0, r4, #0 + bl sub_08065C0C + b _08065BEA +_08065BBA: + ldr r1, _08065BEC @ =gUnk_08110164 + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r0, [r4, #0xa] + cmp r0, #2 + bhi _08065BEA + ldr r2, _08065BF0 @ =gUnk_0811015C + ldrb r0, [r4, #0xf] + adds r1, r0, #1 + strb r1, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1b + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r4, #0x36] +_08065BEA: + pop {r4, pc} + .align 2, 0 +_08065BEC: .4byte gUnk_08110164 +_08065BF0: .4byte gUnk_0811015C + + thumb_func_start sub_08065BF4 +sub_08065BF4: @ 0x08065BF4 + push {lr} + ldr r2, _08065C08 @ =gUnk_0811017C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08065C08: .4byte gUnk_0811017C + + thumb_func_start sub_08065C0C +sub_08065C0C: @ 0x08065C0C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _08065C42 + cmp r0, #1 + bgt _08065C20 + cmp r0, #0 + beq _08065C2A + b _08065CCA +_08065C20: + cmp r0, #2 + beq _08065C7E + cmp r0, #3 + beq _08065C8A + b _08065CCA +_08065C2A: + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0807DD50 + b _08065CCA +_08065C42: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _08065C74 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + ldr r1, _08065C70 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0806F118 + b _08065CCA + .align 2, 0 +_08065C70: .4byte gUnk_03001160 +_08065C74: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + b _08065CCA +_08065C7E: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08065CCA + b _08065CC6 +_08065C8A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08065CCA + ldr r1, [r4, #0x6c] + ldrh r2, [r1] + ldr r0, _08065CB4 @ =0x0000FFFF + cmp r2, r0 + beq _08065CBC + ldr r0, _08065CB8 @ =gUnk_03000F50 + adds r0, #0x68 + strh r2, [r0] + adds r1, #2 + ldrh r0, [r1] + strb r0, [r4, #0xe] + adds r1, #2 + str r1, [r4, #0x6c] + b _08065CCA + .align 2, 0 +_08065CB4: .4byte 0x0000FFFF +_08065CB8: .4byte gUnk_03000F50 +_08065CBC: + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r4, #0x18] +_08065CC6: + movs r0, #1 + strb r0, [r4, #0xc] +_08065CCA: + pop {r4, pc} + + thumb_func_start sub_08065CCC +sub_08065CCC: @ 0x08065CCC + movs r1, #3 + strb r1, [r0, #0xc] + movs r1, #0x1e + strb r1, [r0, #0xe] + ldrb r2, [r0, #0x19] + subs r1, #0x2b + ands r1, r2 + movs r2, #4 + orrs r1, r2 + strb r1, [r0, #0x19] + ldr r1, _08065CF8 @ =gUnk_0811022E + str r1, [r0, #0x6c] + ldr r1, _08065CFC @ =gUnk_03000F50 + adds r2, r1, #0 + adds r2, #0x66 + movs r0, #0xfd + lsls r0, r0, #6 + strh r0, [r2] + adds r1, #0x68 + movs r0, #0x10 + strh r0, [r1] + bx lr + .align 2, 0 +_08065CF8: .4byte gUnk_0811022E +_08065CFC: .4byte gUnk_03000F50 + + thumb_func_start sub_08065D00 +sub_08065D00: @ 0x08065D00 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_08065D18 +sub_08065D18: @ 0x08065D18 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + ldrb r1, [r4, #0x18] + subs r0, #0x22 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x19] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r4, #0x19] + ldr r0, _08065D6C @ =gUnk_08110188 + str r0, [r4, #0x6c] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC + ldr r1, _08065D70 @ =gUnk_03000F50 + adds r2, r1, #0 + adds r2, #0x66 + movs r0, #0xfd + lsls r0, r0, #6 + strh r0, [r2] + adds r1, #0x68 + movs r0, #0x80 + lsls r0, r0, #5 + strh r0, [r1] + pop {r4, pc} + .align 2, 0 +_08065D6C: .4byte gUnk_08110188 +_08065D70: .4byte gUnk_03000F50 + + thumb_func_start sub_08065D74 +sub_08065D74: @ 0x08065D74 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08065DB4 + ldr r2, [r1, #0x6c] + ldrh r3, [r2] + ldr r0, _08065DA0 @ =0x0000FFFF + cmp r3, r0 + beq _08065DA8 + ldr r0, _08065DA4 @ =gUnk_03000F50 + adds r0, #0x68 + strh r3, [r0] + ldrh r0, [r2, #2] + strb r0, [r1, #0xe] + adds r0, r2, #4 + str r0, [r1, #0x6c] + b _08065DB4 + .align 2, 0 +_08065DA0: .4byte 0x0000FFFF +_08065DA4: .4byte gUnk_03000F50 +_08065DA8: + ldrb r0, [r1, #0xc] + adds r0, #1 + strb r0, [r1, #0xc] + movs r0, #0 + bl sub_08056378 +_08065DB4: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08065DB8 +sub_08065DB8: @ 0x08065DB8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #4 + bhi _08065E74 + lsls r0, r0, #2 + ldr r1, _08065DCC @ =_08065DD0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08065DCC: .4byte _08065DD0 +_08065DD0: @ jump table + .4byte _08065DE4 @ case 0 + .4byte _08065E08 @ case 1 + .4byte _08065EB0 @ case 2 + .4byte _08065E34 @ case 3 + .4byte _08065E4E @ case 4 +_08065DE4: + ldr r0, _08065E04 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08065EB0 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #4 + bl sub_080042AC + b _08065EB0 + .align 2, 0 +_08065E04: .4byte gUnk_02000050 +_08065E08: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08065EB0 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + movs r0, #0xb4 + strb r0, [r4, #0xe] + ldr r1, _08065E30 @ =gUnk_02018EB0 + ldrb r0, [r1, #1] + adds r0, #1 + strb r0, [r1, #1] + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC + b _08065EB0 + .align 2, 0 +_08065E30: .4byte gUnk_02018EB0 +_08065E34: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08065EB0 + movs r0, #0 + bl sub_08056378 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + b _08065EB0 +_08065E4E: + ldr r0, _08065E6C @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08065EB0 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x1e + strb r0, [r4, #0xe] + ldr r0, _08065E70 @ =gUnk_0811022E + str r0, [r4, #0x6c] + b _08065EB0 + .align 2, 0 +_08065E6C: .4byte gUnk_02000050 +_08065E70: .4byte gUnk_0811022E +_08065E74: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08065EB0 + ldr r1, [r4, #0x6c] + ldrh r2, [r1] + ldr r0, _08065E9C @ =0x0000FFFF + cmp r2, r0 + beq _08065EA4 + ldr r0, _08065EA0 @ =gUnk_03000F50 + adds r0, #0x68 + strh r2, [r0] + ldrh r0, [r1, #2] + strb r0, [r4, #0xe] + adds r0, r1, #4 + str r0, [r4, #0x6c] + b _08065EB0 + .align 2, 0 +_08065E9C: .4byte 0x0000FFFF +_08065EA0: .4byte gUnk_03000F50 +_08065EA4: + ldr r1, _08065EB8 @ =gUnk_02018EB0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + bl sub_0805E780 +_08065EB0: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 +_08065EB8: .4byte gUnk_02018EB0 + + thumb_func_start sub_08065EBC +sub_08065EBC: @ 0x08065EBC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08065ED8 @ =gUnk_08110274 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0806ED78 + pop {r4, pc} + .align 2, 0 +_08065ED8: .4byte gUnk_08110274 + + thumb_func_start sub_08065EDC +sub_08065EDC: @ 0x08065EDC + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08065F1C + ldr r1, [r2, #0x6c] + ldrh r3, [r1] + ldr r0, _08065F08 @ =0x0000FFFF + cmp r3, r0 + beq _08065F10 + ldr r0, _08065F0C @ =gUnk_03000F50 + adds r0, #0x68 + strh r3, [r0] + adds r1, #2 + ldrh r0, [r1] + strb r0, [r2, #0xe] + adds r1, #2 + str r1, [r2, #0x6c] + b _08065F1C + .align 2, 0 +_08065F08: .4byte 0x0000FFFF +_08065F0C: .4byte gUnk_03000F50 +_08065F10: + ldrb r0, [r2, #0xc] + adds r0, #1 + strb r0, [r2, #0xc] + adds r0, r2, #0 + bl sub_08078778 +_08065F1C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08065F20 +sub_08065F20: @ 0x08065F20 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08065F5E + movs r0, #0 + strb r0, [r1] + bl sub_08056378 + adds r2, r4, #0 + adds r2, #0x58 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + ldr r1, _08065F60 @ =gUnk_0811033C + ldrb r0, [r2] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + cmp r0, #0 + bne _08065F56 + strb r0, [r2] +_08065F56: + ldrb r1, [r2] + adds r0, r4, #0 + bl sub_080042AC +_08065F5E: + pop {r4, pc} + .align 2, 0 +_08065F60: .4byte gUnk_0811033C + + thumb_func_start sub_08065F64 +sub_08065F64: @ 0x08065F64 + push {lr} + adds r3, r0, #0 + ldr r0, _08065F88 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + subs r0, #2 + cmp r0, #0 + bge _08065F74 + movs r0, #0 +_08065F74: + ldrb r1, [r3, #0xa] + lsls r1, r1, #6 + lsls r0, r0, #3 + ldr r2, _08065F8C @ =gUnk_08110280 + adds r0, r0, r2 + adds r1, r1, r0 + adds r0, r3, #0 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_08065F88: .4byte gUnk_02002A40 +_08065F8C: .4byte gUnk_08110280 + + thumb_func_start sub_08065F90 +sub_08065F90: @ 0x08065F90 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _08065FB6 + adds r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + adds r0, r2, #0 + movs r1, #2 + bl sub_080042AC + b _08065FBC +_08065FB6: + adds r0, r2, #0 + bl sub_080042B8 +_08065FBC: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08065FC0 +sub_08065FC0: @ 0x08065FC0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08066028 + adds r2, r4, #0 + adds r2, #0x39 + movs r0, #0 + ldrsb r0, [r2, r0] + adds r6, r4, #0 + adds r6, #0x58 + cmp r0, #2 + bne _0806600C + movs r0, #0 + movs r1, #4 + strb r1, [r4, #0xc] + strb r0, [r2] + ldrb r0, [r6] + movs r5, #0 + cmp r0, #0xc + bne _08065FF0 + movs r5, #8 +_08065FF0: + ldr r1, _08066020 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r5, r5, r0 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0806F118 +_0806600C: + ldr r0, _08066024 @ =gUnk_0811036C + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _08066042 + .align 2, 0 +_08066020: .4byte gUnk_03001160 +_08066024: .4byte gUnk_0811036C +_08066028: + ldr r0, _08066058 @ =gUnk_08110360 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0806ED78 + adds r6, r4, #0 + adds r6, #0x58 +_08066042: + ldrb r0, [r6] + cmp r0, #0xc + bne _0806605C + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + b _0806606E + .align 2, 0 +_08066058: .4byte gUnk_08110360 +_0806605C: + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #8 + orrs r1, r0 + strb r1, [r2] +_0806606E: + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080660A0 + movs r0, #0xfe + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #0x3d + movs r2, #0x20 + bl sub_080A29AC + ldr r4, _080660A4 @ =gUnk_08110380 + bl sub_08000E50 + movs r1, #7 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r0, [r1] + bl sub_080A3268 +_080660A0: + pop {r4, r5, r6, pc} + .align 2, 0 +_080660A4: .4byte gUnk_08110380 + + thumb_func_start sub_080660A8 +sub_080660A8: @ 0x080660A8 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x5a + ldrb r4, [r0] + ldrb r2, [r5, #0x1e] + adds r0, r5, #0 + movs r1, #0 + bl sub_0806FF60 + movs r0, #0x40 + ands r4, r0 + cmp r4, #0 + beq _080660CE + adds r0, r5, #0 + movs r1, #1 + movs r2, #0x16 + bl sub_0806FF60 + b _080660D8 +_080660CE: + adds r0, r5, #0 + movs r1, #1 + movs r2, #0xff + bl sub_0806FF60 +_080660D8: + adds r0, r5, #0 + movs r1, #0 + movs r2, #1 + bl sub_0806FF88 + adds r0, r5, #0 + bl sub_0807000C + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080660EC +sub_080660EC: @ 0x080660EC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08066114 @ =gUnk_08110354 + bl sub_0806FDEC + cmp r0, #0 + beq _08066112 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC +_08066112: + pop {r4, pc} + .align 2, 0 +_08066114: .4byte gUnk_08110354 + + thumb_func_start sub_08066118 +sub_08066118: @ 0x08066118 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x28 + movs r2, #0x28 + bl sub_0806ED9C + adds r1, r0, #0 + cmp r1, #0 + bge _0806612E + movs r1, #2 + b _08066144 +_0806612E: + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _0806613A + movs r0, #0x10 + strb r0, [r4, #0xf] + b _08066144 +_0806613A: + subs r0, #1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] +_08066144: + adds r0, r4, #0 + bl sub_0806F078 + cmp r0, #0 + bne _08066154 + adds r0, r4, #0 + bl sub_080042B8 +_08066154: + adds r0, r4, #0 + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _0806616C + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0 + bl sub_08056378 +_0806616C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08066170 +sub_08066170: @ 0x08066170 + movs r1, #1 + strb r1, [r0, #0xc] + bx lr + .align 2, 0 + + thumb_func_start sub_08066178 +sub_08066178: @ 0x08066178 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080661AC @ =gUnk_08110354 + bl sub_0806FDEC + cmp r0, #0 + beq _080661A8 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0807DD50 +_080661A8: + pop {r4, pc} + .align 2, 0 +_080661AC: .4byte gUnk_08110354 + + thumb_func_start sub_080661B0 +sub_080661B0: @ 0x080661B0 + push {lr} + movs r1, #0 + bl sub_0807DD94 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080661BC +sub_080661BC: @ 0x080661BC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0xc + bne _080661F4 + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080661FC + adds r0, r4, #0 + bl sub_0806EDC4 + adds r0, #8 + adds r1, r4, #0 + adds r1, #0x80 + strh r0, [r1] + ldrh r1, [r1] + adds r0, r4, #0 + bl sub_080042AC + b _080661FC +_080661F4: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 +_080661FC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08066200 +sub_08066200: @ 0x08066200 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + + thumb_func_start sub_08066218 +sub_08066218: @ 0x08066218 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08066228 + movs r0, #1 + strb r0, [r4, #0xc] +_08066228: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806622C +sub_0806622C: @ 0x0806622C + push {lr} + adds r2, r0, #0 + ldr r0, _0806624C @ =gUnk_02002A40 + ldrb r0, [r0, #8] + subs r0, #2 + cmp r0, #0 + bge _0806623C + movs r0, #0 +_0806623C: + lsls r1, r0, #3 + ldr r0, _08066250 @ =gUnk_08110390 + adds r1, r1, r0 + adds r0, r2, #0 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806624C: .4byte gUnk_02002A40 +_08066250: .4byte gUnk_08110390 + + thumb_func_start nullsub_501 +nullsub_501: @ 0x08066254 + bx lr + .align 2, 0 + + thumb_func_start sub_08066258 +sub_08066258: @ 0x08066258 + push {r4, lr} + ldr r4, _08066270 @ =gUnk_081103D0 + bl sub_08000E50 + movs r1, #7 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r0, [r1] + bl sub_080A3268 + pop {r4, pc} + .align 2, 0 +_08066270: .4byte gUnk_081103D0 + + thumb_func_start sub_08066274 +sub_08066274: @ 0x08066274 + push {lr} + ldr r3, _08066284 @ =gUnk_081103E0 + movs r1, #1 + movs r2, #0 + bl sub_08078850 + pop {pc} + .align 2, 0 +_08066284: .4byte gUnk_081103E0 + + thumb_func_start sub_08066288 +sub_08066288: @ 0x08066288 + push {lr} + adds r1, r0, #0 + adds r1, #0x68 + ldrb r1, [r1] + bl sub_08078784 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08066298 +sub_08066298: @ 0x08066298 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080662D0 + ldr r1, _080662CC @ =gUnk_08110354 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _080662D6 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #6 + bl sub_080042AC + b _080662D6 + .align 2, 0 +_080662CC: .4byte gUnk_08110354 +_080662D0: + adds r0, r4, #0 + bl sub_080042B8 +_080662D6: + pop {r4, pc} + + thumb_func_start sub_080662D8 +sub_080662D8: @ 0x080662D8 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080662F4 @ =gUnk_081104C8 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0806ED78 + pop {r4, pc} + .align 2, 0 +_080662F4: .4byte gUnk_081104C8 + + thumb_func_start sub_080662F8 +sub_080662F8: @ 0x080662F8 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r5, #0xc] + strb r4, [r5, #0xd] + ldrb r1, [r5, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + ldrb r0, [r5, #0xa] + lsls r0, r0, #1 + strb r0, [r5, #0x14] + ldrb r1, [r5, #0xa] + adds r0, r5, #0 + bl sub_08004260 + ldrh r0, [r5, #0x2e] + adds r1, r5, #0 + adds r1, #0x7e + strh r0, [r1] + ldrh r1, [r5, #0x32] + adds r0, r5, #0 + adds r0, #0x80 + strh r1, [r0] + adds r0, #6 + strh r4, [r0] + ldrb r0, [r5, #0xe] + adds r1, r5, #0 + adds r1, #0x82 + strh r0, [r1] + ldr r0, _08066354 @ =gUnk_03001160 + str r0, [r5, #0x50] + adds r0, r5, #0 + adds r0, #0x84 + strh r4, [r0] + ldr r1, [r5, #0x50] + adds r0, r5, #0 + bl sub_08066490 + adds r0, r5, #0 + bl sub_08078778 + pop {r4, r5, pc} + .align 2, 0 +_08066354: .4byte gUnk_03001160 + + thumb_func_start sub_08066358 +sub_08066358: @ 0x08066358 + push {r4, r5, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _080663B8 + movs r5, #0 + strb r5, [r1] + movs r0, #0 + bl sub_08056378 + ldrb r1, [r4, #0xb] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080663C0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r5, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x7e + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + cmp r0, #8 + ble _08066396 + movs r0, #8 + b _08066398 +_08066396: + movs r0, #0x18 +_08066398: + strb r0, [r4, #0x15] + movs r0, #0x80 + strh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x84 + movs r2, #1 + movs r0, #1 + strh r0, [r1] + ldr r0, _080663B4 @ =gUnk_02034490 + strb r2, [r0] + adds r0, r4, #0 + bl sub_080788E0 + b _080663C0 + .align 2, 0 +_080663B4: .4byte gUnk_02034490 +_080663B8: + ldr r1, [r4, #0x50] + adds r0, r4, #0 + bl sub_08066490 +_080663C0: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_08066570 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start nullsub_110 +nullsub_110: @ 0x080663D0 + bx lr + .align 2, 0 + + thumb_func_start sub_080663D4 +sub_080663D4: @ 0x080663D4 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x2e + ldrsh r1, [r4, r0] + adds r0, r4, #0 + adds r0, #0x7e + ldrh r0, [r0] + subs r0, #8 + cmp r1, r0 + bne _08066410 + ldr r0, _0806640C @ =gUnk_03001160 + ldrb r0, [r0, #0xc] + cmp r0, #0xf + beq _0806642E + movs r0, #0 + movs r1, #4 + strb r1, [r4, #0xc] + strb r0, [r4, #0x15] + strh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x84 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + b _0806642E + .align 2, 0 +_0806640C: .4byte gUnk_03001160 +_08066410: + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _08066428 + ldrb r1, [r4, #0x15] + lsrs r1, r1, #3 + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] +_08066428: + adds r0, r4, #0 + bl sub_080AEF88 +_0806642E: + bl sub_08078B48 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806643C +sub_0806643C: @ 0x0806643C + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_0806650C + adds r4, r0, #0 + cmp r4, #0 + bne _08066462 + movs r0, #5 + strb r0, [r5, #0xc] + ldr r0, _0806646C @ =gUnk_03000BF0 + str r4, [r0, #0x30] + movs r0, #0x40 + movs r1, #0 + movs r2, #0 + bl sub_08078AC0 + ldr r0, _08066470 @ =gUnk_03001160 + strb r4, [r0, #0x14] + strb r4, [r0, #0x15] +_08066462: + adds r0, r5, #0 + bl sub_08004274 + pop {r4, r5, pc} + .align 2, 0 +_0806646C: .4byte gUnk_03000BF0 +_08066470: .4byte gUnk_03001160 + + thumb_func_start sub_08066474 +sub_08066474: @ 0x08066474 + push {lr} + ldr r0, _08066488 @ =gUnk_03001160 + ldrb r0, [r0, #0xc] + cmp r0, #0xf + beq _08066484 + ldr r1, _0806648C @ =gUnk_02034490 + movs r0, #0 + strb r0, [r1] +_08066484: + pop {pc} + .align 2, 0 +_08066488: .4byte gUnk_03001160 +_0806648C: .4byte gUnk_02034490 + + thumb_func_start sub_08066490 +sub_08066490: @ 0x08066490 + push {r4, r5, r6, lr} + mov ip, r0 + adds r5, r1, #0 + ldrb r1, [r0, #0xb] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0806650A + mov r1, ip + ldrh r0, [r1, #0x2e] + adds r1, #0x86 + strh r0, [r1] + mov r0, ip + adds r0, #0x7e + ldrh r2, [r0] + adds r0, #4 + ldrh r0, [r0] + adds r3, r2, r0 + subs r4, r2, r0 + movs r6, #0x2e + ldrsh r0, [r5, r6] + cmp r0, r3 + bge _080664C6 + cmp r0, r4 + ble _080664C6 + adds r2, r0, #0 + b _080664D2 +_080664C6: + movs r2, #0x2e + ldrsh r0, [r5, r2] + adds r2, r4, #0 + cmp r0, r3 + blt _080664D2 + adds r2, r3, #0 +_080664D2: + ldrh r0, [r1] + cmp r0, r2 + bne _080664F0 + mov r1, ip + adds r1, #0x84 + ldrh r0, [r1] + cmp r0, #1 + bne _0806650A + movs r0, #0 + strh r0, [r1] + mov r0, ip + movs r1, #2 + bl sub_08004260 + b _0806650A +_080664F0: + mov r6, ip + strh r2, [r6, #0x2e] + mov r1, ip + adds r1, #0x84 + ldrh r0, [r1] + cmp r0, #0 + bne _0806650A + movs r0, #1 + strh r0, [r1] + mov r0, ip + movs r1, #6 + bl sub_08004260 +_0806650A: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0806650C +sub_0806650C: @ 0x0806650C + push {r4, r5, r6, r7, lr} + adds r3, r0, #0 + movs r4, #0 + ldr r1, _0806652C @ =gUnk_03001160 + ldrh r5, [r1, #0x2e] + adds r7, r5, #0 + ldrh r2, [r1, #0x32] + adds r0, #0x80 + ldrh r0, [r0] + adds r0, #0x10 + adds r6, r1, #0 + cmp r2, r0 + bge _08066530 + movs r4, #4 + b _0806654C + .align 2, 0 +_0806652C: .4byte gUnk_03001160 +_08066530: + adds r0, r3, #0 + adds r0, #0x7e + ldrh r1, [r0] + adds r0, r1, #2 + cmp r5, r0 + bge _0806653E + movs r4, #2 +_0806653E: + adds r0, r1, #6 + cmp r7, r0 + ble _08066546 + movs r4, #6 +_08066546: + cmp r4, #0 + bne _0806654C + strh r4, [r6, #0x24] +_0806654C: + ldrb r0, [r6, #0xc] + cmp r0, #0xf + beq _0806656A + cmp r4, #0 + bne _0806655A + movs r0, #0 + b _0806656C +_0806655A: + movs r0, #8 + movs r1, #0 + movs r2, #0 + bl sub_08078AC0 + strb r4, [r6, #0x14] + lsls r0, r4, #2 + strb r0, [r6, #0x15] +_0806656A: + movs r0, #1 +_0806656C: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08066570 +sub_08066570: @ 0x08066570 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080665DE + ldrb r0, [r5, #0xc] + cmp r0, #3 + beq _080665DE + ldr r4, _080665E0 @ =gUnk_03001160 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0x50 + bl sub_0806FC80 + cmp r0, #0 + beq _080665DE + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080045C4 + adds r3, r0, #0 + movs r6, #1 + movs r1, #0x18 + adds r4, r3, #0 + ands r4, r1 + ldrb r0, [r5, #0x15] + adds r2, r1, #0 + ands r2, r0 + cmp r2, r4 + bne _080665C8 + adds r2, r3, #5 + movs r1, #7 + ands r2, r1 + ldrb r0, [r5, #0x15] + adds r0, #5 + ands r0, r1 + cmp r0, #2 + bhi _080665C8 + cmp r2, #2 + bhi _080665C8 + movs r6, #0 +_080665C8: + cmp r6, #0 + beq _080665DE + strb r3, [r5, #0x15] + adds r3, #4 + movs r0, #0x18 + ands r3, r0 + lsrs r3, r3, #3 + adds r0, r5, #0 + adds r1, r3, #0 + bl sub_08004260 +_080665DE: + pop {r4, r5, r6, pc} + .align 2, 0 +_080665E0: .4byte gUnk_03001160 + + thumb_func_start sub_080665E4 +sub_080665E4: @ 0x080665E4 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08066638 + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0806661E + movs r0, #0 + strb r0, [r2] + strb r1, [r4, #0xc] + ldr r1, _08066630 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0806F118 +_0806661E: + ldr r0, _08066634 @ =gUnk_081104EC + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _0806664E + .align 2, 0 +_08066630: .4byte gUnk_03001160 +_08066634: .4byte gUnk_081104EC +_08066638: + ldr r0, _08066650 @ =gUnk_081104E0 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0806ED78 +_0806664E: + pop {r4, pc} + .align 2, 0 +_08066650: .4byte gUnk_081104E0 + + thumb_func_start sub_08066654 +sub_08066654: @ 0x08066654 + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08066688 +sub_08066688: @ 0x08066688 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x28 + movs r2, #0x28 + bl sub_0806ED9C + adds r1, r0, #0 + cmp r1, #0 + bge _0806669E + movs r1, #2 + b _080666B4 +_0806669E: + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _080666AA + movs r0, #0x10 + strb r0, [r4, #0xf] + b _080666B4 +_080666AA: + subs r0, #1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] +_080666B4: + adds r0, r4, #0 + bl sub_0806F078 + cmp r0, #0 + bne _080666C4 + adds r0, r4, #0 + bl sub_080042B8 +_080666C4: + adds r2, r4, #0 + adds r2, #0x39 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0 + beq _080666D8 + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r2] +_080666D8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080666DC +sub_080666DC: @ 0x080666DC + movs r1, #1 + strb r1, [r0, #0xc] + bx lr + .align 2, 0 + + thumb_func_start sub_080666E4 +sub_080666E4: @ 0x080666E4 + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0807DD50 + pop {r4, pc} + + thumb_func_start sub_0806670C +sub_0806670C: @ 0x0806670C + push {lr} + movs r1, #0 + bl sub_0807DD94 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08066718 +sub_08066718: @ 0x08066718 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08066728 + movs r0, #1 + strb r0, [r4, #0xc] +_08066728: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806672C +sub_0806672C: @ 0x0806672C + push {lr} + adds r1, r0, #0 + adds r1, #0x68 + ldrb r1, [r1] + bl sub_08078784 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806673C +sub_0806673C: @ 0x0806673C + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + bl sub_0807CC30 + cmp r0, #0 + bne _0806674E + movs r1, #0 + b _0806676A +_0806674E: + movs r0, #2 + bl sub_0807CA84 + cmp r0, #0 + bne _0806675C + movs r1, #1 + b _0806676A +_0806675C: + movs r0, #3 + bl sub_0807CA84 + movs r1, #3 + cmp r0, #0 + bne _0806676A + movs r1, #2 +_0806676A: + ldr r0, _0806677C @ =gUnk_081104F8 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r4, #0 + bl sub_08056398 + pop {r4, pc} + .align 2, 0 +_0806677C: .4byte gUnk_081104F8 + + thumb_func_start sub_08066780 +sub_08066780: @ 0x08066780 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _080667A6 + adds r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + adds r0, r2, #0 + movs r1, #6 + bl sub_080042AC + b _080667AC +_080667A6: + adds r0, r2, #0 + bl sub_080042B8 +_080667AC: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080667B0 +sub_080667B0: @ 0x080667B0 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080667C6 + adds r0, r4, #0 + bl sub_08066864 + b _080667DC +_080667C6: + ldr r0, _080667E0 @ =gUnk_08110644 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0806ED78 +_080667DC: + pop {r4, pc} + .align 2, 0 +_080667E0: .4byte gUnk_08110644 + + thumb_func_start sub_080667E4 +sub_080667E4: @ 0x080667E4 + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC + adds r0, r4, #0 + bl sub_08078778 + pop {r4, pc} + + thumb_func_start sub_08066808 +sub_08066808: @ 0x08066808 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x28 + movs r2, #0x28 + bl sub_0806ED9C + adds r1, r0, #0 + cmp r1, #0 + bge _0806681E + movs r1, #2 + b _08066834 +_0806681E: + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _0806682A + movs r0, #0x10 + strb r0, [r4, #0xf] + b _08066834 +_0806682A: + subs r0, #1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] +_08066834: + adds r0, r4, #0 + bl sub_0806F078 + cmp r0, #0 + bne _08066844 + adds r0, r4, #0 + bl sub_080042B8 +_08066844: + adds r2, r4, #0 + adds r2, #0x39 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0 + beq _08066858 + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r2] +_08066858: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806685C +sub_0806685C: @ 0x0806685C + movs r1, #1 + strb r1, [r0, #0xc] + bx lr + .align 2, 0 + + thumb_func_start sub_08066864 +sub_08066864: @ 0x08066864 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _080668A2 + cmp r0, #1 + bgt _08066878 + cmp r0, #0 + beq _0806687E + b _080668EC +_08066878: + cmp r0, #2 + beq _080668DE + b _080668EC +_0806687E: + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0807DD50 + b _080668EC +_080668A2: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _080668D4 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + ldr r1, _080668D0 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0806F118 + b _080668EC + .align 2, 0 +_080668D0: .4byte gUnk_03001160 +_080668D4: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + b _080668EC +_080668DE: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _080668EC + movs r0, #1 + strb r0, [r4, #0xc] +_080668EC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080668F0 +sub_080668F0: @ 0x080668F0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08066904 +sub_08066904: @ 0x08066904 + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + bl sub_0807CC30 + cmp r0, #0 + bne _08066916 + movs r1, #0 + b _08066932 +_08066916: + movs r0, #2 + bl sub_0807CA84 + cmp r0, #0 + bne _08066924 + movs r1, #1 + b _08066932 +_08066924: + movs r0, #3 + bl sub_0807CA84 + movs r1, #3 + cmp r0, #0 + bne _08066932 + movs r1, #2 +_08066932: + ldr r0, _08066944 @ =gUnk_08110650 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r4, #0 + bl sub_08056398 + pop {r4, pc} + .align 2, 0 +_08066944: .4byte gUnk_08110650 + + thumb_func_start sub_08066948 +sub_08066948: @ 0x08066948 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _0806696E + adds r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + adds r0, r2, #0 + movs r1, #6 + bl sub_080042AC + b _08066974 +_0806696E: + adds r0, r2, #0 + bl sub_080042B8 +_08066974: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08066978 +sub_08066978: @ 0x08066978 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0806699C + ldr r0, _08066998 @ =gUnk_081106E0 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _080669B2 + .align 2, 0 +_08066998: .4byte gUnk_081106E0 +_0806699C: + ldr r0, _080669B4 @ =gUnk_081106D4 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0806ED78 +_080669B2: + pop {r4, pc} + .align 2, 0 +_080669B4: .4byte gUnk_081106D4 + + thumb_func_start sub_080669B8 +sub_080669B8: @ 0x080669B8 + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC + adds r0, r4, #0 + bl sub_08078778 + pop {r4, pc} + + thumb_func_start sub_080669DC +sub_080669DC: @ 0x080669DC + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x28 + movs r2, #0x28 + bl sub_0806ED9C + adds r1, r0, #0 + cmp r1, #0 + bge _080669F2 + movs r1, #2 + b _08066A08 +_080669F2: + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _080669FE + movs r0, #0x10 + strb r0, [r4, #0xf] + b _08066A08 +_080669FE: + subs r0, #1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] +_08066A08: + adds r0, r4, #0 + bl sub_0806F078 + cmp r0, #0 + bne _08066A18 + adds r0, r4, #0 + bl sub_080042B8 +_08066A18: + adds r2, r4, #0 + adds r2, #0x39 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0 + beq _08066A2C + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r2] +_08066A2C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08066A30 +sub_08066A30: @ 0x08066A30 + movs r1, #1 + strb r1, [r0, #0xc] + bx lr + .align 2, 0 + + thumb_func_start sub_08066A38 +sub_08066A38: @ 0x08066A38 + push {lr} + movs r3, #1 + movs r1, #1 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x18] + subs r1, #5 + ands r1, r2 + orrs r1, r3 + strb r1, [r0, #0x18] + bl sub_0807DD50 + pop {pc} + + thumb_func_start sub_08066A50 +sub_08066A50: @ 0x08066A50 + push {lr} + movs r1, #0 + bl sub_0807DD94 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08066A5C +sub_08066A5C: @ 0x08066A5C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08066A90 @ =gUnk_08110734 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r3, [r4, #0x1a] + lsrs r1, r3, #4 + adds r0, r4, #0 + adds r0, #0x5b + ldrb r2, [r0] + movs r0, #1 + ands r0, r2 + adds r1, r1, r0 + movs r0, #0xf + ands r1, r0 + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r4, #0x1a] + pop {r4, pc} + .align 2, 0 +_08066A90: .4byte gUnk_08110734 + + thumb_func_start sub_08066A94 +sub_08066A94: @ 0x08066A94 + push {r4, lr} + adds r4, r0, #0 + movs r2, #0 + movs r3, #1 + movs r0, #1 + strb r0, [r4, #0xc] + strb r2, [r4, #0xd] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r3 + strb r0, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x68 + strb r2, [r0] + adds r0, #1 + strb r2, [r0] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + bl sub_08066ACC + pop {r4, pc} + + thumb_func_start sub_08066ACC +sub_08066ACC: @ 0x08066ACC + push {r4, r5, lr} + adds r4, r0, #0 + ldr r1, _08066B18 @ =sub_08066B74 + bl sub_0807DD94 + adds r0, r4, #0 + adds r0, #0x69 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _08066AF6 + ldr r0, _08066B1C @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _08066AF6 + adds r0, r4, #0 + bl sub_08095CB0 +_08066AF6: + adds r1, r4, #0 + adds r1, #0x5a + ldrb r2, [r1] + movs r0, #0x81 + rsbs r0, r0, #0 + ands r2, r0 + adds r5, r1, #0 + cmp r2, #0 + beq _08066B6E + cmp r2, #2 + beq _08066B34 + cmp r2, #2 + bhi _08066B20 + cmp r2, #1 + beq _08066B2A + b _08066B66 + .align 2, 0 +_08066B18: .4byte sub_08066B74 +_08066B1C: .4byte gUnk_030010A0 +_08066B20: + cmp r2, #3 + beq _08066B40 + cmp r2, #4 + beq _08066B52 + b _08066B66 +_08066B2A: + movs r0, #0x87 + lsls r0, r0, #2 + bl sub_08004488 + b _08066B66 +_08066B34: + ldr r0, _08066B3C @ =0x0000021E + bl sub_08004488 + b _08066B66 + .align 2, 0 +_08066B3C: .4byte 0x0000021E +_08066B40: + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + movs r0, #4 + str r0, [r1, #4] + adds r0, r4, #0 + bl sub_0805DDEC + b _08066B66 +_08066B52: + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + str r2, [r1, #4] + adds r0, r4, #0 + bl sub_0805DE18 + ldr r0, _08066B70 @ =0x0000021D + bl sub_08004488 +_08066B66: + ldrb r1, [r5] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5] +_08066B6E: + pop {r4, r5, pc} + .align 2, 0 +_08066B70: .4byte 0x0000021D + + thumb_func_start sub_08066B74 +sub_08066B74: @ 0x08066B74 + push {r4, r5, r6, lr} + mov ip, r0 + ldr r0, [r1, #8] + ldr r4, _08066BCC @ =0xFFF00000 + ands r4, r0 + ldr r2, _08066BD0 @ =0x000FFFFF + ands r0, r2 + str r0, [r1, #8] + cmp r4, #0 + bne _08066B8A + b _08066C86 +_08066B8A: + mov r3, ip + adds r3, #0x80 + mov r5, ip + adds r5, #0x68 + movs r6, #1 +_08066B94: + mvns r0, r4 + adds r1, r0, #1 + ands r1, r4 + eors r4, r1 + mov r2, ip + ldrb r0, [r2, #0x14] + lsrs r2, r0, #1 + movs r0, #0x80 + lsls r0, r0, #0x12 + cmp r1, r0 + beq _08066C4C + cmp r1, r0 + bhi _08066BE6 + movs r0, #0x80 + lsls r0, r0, #0xf + cmp r1, r0 + beq _08066C34 + cmp r1, r0 + bhi _08066BD4 + movs r0, #0x80 + lsls r0, r0, #0xd + cmp r1, r0 + beq _08066C24 + movs r0, #0x80 + lsls r0, r0, #0xe + cmp r1, r0 + beq _08066C2C + b _08066C82 + .align 2, 0 +_08066BCC: .4byte 0xFFF00000 +_08066BD0: .4byte 0x000FFFFF +_08066BD4: + movs r0, #0x80 + lsls r0, r0, #0x10 + cmp r1, r0 + beq _08066C3C + movs r0, #0x80 + lsls r0, r0, #0x11 + cmp r1, r0 + beq _08066C44 + b _08066C82 +_08066BE6: + movs r0, #0x80 + lsls r0, r0, #0x15 + cmp r1, r0 + beq _08066C64 + cmp r1, r0 + bhi _08066C04 + movs r0, #0x80 + lsls r0, r0, #0x13 + cmp r1, r0 + beq _08066C54 + movs r0, #0x80 + lsls r0, r0, #0x14 + cmp r1, r0 + beq _08066C5C + b _08066C82 +_08066C04: + movs r0, #0x80 + lsls r0, r0, #0x17 + cmp r1, r0 + beq _08066C70 + cmp r1, r0 + bhi _08066C1A + movs r0, #0x80 + lsls r0, r0, #0x16 + cmp r1, r0 + beq _08066C6C + b _08066C82 +_08066C1A: + movs r0, #0x80 + lsls r0, r0, #0x18 + cmp r1, r0 + beq _08066C76 + b _08066C82 +_08066C24: + adds r0, r2, #0 + adds r0, #0x10 + strh r0, [r3] + b _08066C82 +_08066C2C: + adds r0, r2, #0 + adds r0, #0x14 + strh r0, [r3] + b _08066C82 +_08066C34: + adds r0, r2, #0 + adds r0, #0x18 + strh r0, [r3] + b _08066C82 +_08066C3C: + adds r0, r2, #0 + adds r0, #0x1c + strh r0, [r3] + b _08066C82 +_08066C44: + adds r0, r2, #0 + adds r0, #0x20 + strh r0, [r3] + b _08066C82 +_08066C4C: + adds r0, r2, #0 + adds r0, #0x24 + strh r0, [r3] + b _08066C82 +_08066C54: + adds r0, r2, #0 + adds r0, #0x28 + strh r0, [r3] + b _08066C82 +_08066C5C: + adds r0, r2, #0 + adds r0, #0x2c + strh r0, [r3] + b _08066C82 +_08066C64: + adds r0, r2, #0 + adds r0, #0x30 + strh r0, [r3] + b _08066C82 +_08066C6C: + strb r6, [r5] + b _08066C82 +_08066C70: + movs r0, #0xff + strb r0, [r5] + b _08066C82 +_08066C76: + mov r2, ip + adds r2, #0x69 + ldrb r1, [r2] + adds r0, r6, #0 + eors r0, r1 + strb r0, [r2] +_08066C82: + cmp r4, #0 + bne _08066B94 +_08066C86: + mov r0, ip + adds r0, #0x84 + ldr r1, [r0] + mov r0, ip + bl sub_0807DB98 + pop {r4, r5, r6, pc} + + thumb_func_start sub_08066C94 +sub_08066C94: @ 0x08066C94 + push {lr} + movs r1, #0 + bl sub_0805DA90 + movs r0, #0xf7 + bl sub_080A3268 + pop {pc} + + thumb_func_start sub_08066CA4 +sub_08066CA4: @ 0x08066CA4 + push {lr} + movs r1, #1 + bl sub_0805DA90 + movs r0, #0xf6 + bl sub_080A3268 + pop {pc} + + thumb_func_start sub_08066CB4 +sub_08066CB4: @ 0x08066CB4 + push {lr} + ldr r2, _08066CC8 @ =gUnk_08110BD8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08066CC8: .4byte gUnk_08110BD8 + + thumb_func_start sub_08066CCC +sub_08066CCC: @ 0x08066CCC + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #7 + bl sub_0805EA78 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD50 + pop {r4, pc} + + thumb_func_start sub_08066CF8 +sub_08066CF8: @ 0x08066CF8 + push {lr} + movs r1, #0 + bl sub_0807DD94 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08066D04 +sub_08066D04: @ 0x08066D04 + push {r4, lr} + adds r4, r0, #0 + movs r0, #7 + movs r1, #0x2e + bl sub_0805EB9C + str r0, [r4, #0x50] + pop {r4, pc} + + thumb_func_start sub_08066D14 +sub_08066D14: @ 0x08066D14 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r2, [r4, #0x50] + cmp r2, #0 + beq _08066D48 + ldrb r0, [r2, #0x14] + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r2, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldr r1, [r4, #0x50] + adds r0, r4, #0 + bl sub_08068680 + movs r0, #1 + str r0, [r5, #0x14] + b _08066D4A +_08066D48: + str r2, [r5, #0x14] +_08066D4A: + pop {r4, r5, pc} + + thumb_func_start sub_08066D4C +sub_08066D4C: @ 0x08066D4C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, [r4, #0x50] + cmp r1, #0 + beq _08066D90 + bl sub_0806FA24 + ldr r3, [r4, #0x50] + ldrb r1, [r3, #0x18] + movs r2, #4 + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r3, #0x18] + ldr r1, [r4, #0x50] + ldrb r0, [r4, #0x14] + strb r0, [r1, #0x14] + ldrb r0, [r4, #0x18] + ands r2, r0 + strb r2, [r4, #0x18] + ldrb r1, [r4, #0x17] + movs r0, #0xfe + ands r0, r1 + strb r0, [r4, #0x17] + ldr r1, [r4, #0x50] + adds r0, r4, #0 + bl sub_08068694 + movs r0, #1 + str r0, [r5, #0x14] + b _08066D92 +_08066D90: + str r1, [r5, #0x14] +_08066D92: + pop {r4, r5, pc} + + thumb_func_start sub_08066D94 +sub_08066D94: @ 0x08066D94 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x1c + bl sub_0807CD04 + movs r0, #0x2e + movs r1, #0 + movs r2, #0 + bl sub_0806ED50 + adds r4, r0, #0 + cmp r4, #0 + beq _08066DD6 + ldr r0, _08066DDC @ =gUnk_03001160 + ldrb r0, [r0, #0x14] + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x10] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r5, #0 + bl sub_0806EDC4 + strb r0, [r4, #0x14] + ldr r0, _08066DE0 @ =gUnk_03000BF0 + ldrb r1, [r0, #5] + adds r0, r4, #0 + adds r0, #0x74 + strh r1, [r0] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 +_08066DD6: + bl sub_0805E780 + pop {r4, r5, pc} + .align 2, 0 +_08066DDC: .4byte gUnk_03001160 +_08066DE0: .4byte gUnk_03000BF0 + + thumb_func_start sub_08066DE4 +sub_08066DE4: @ 0x08066DE4 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #7 + movs r1, #0x2e + bl sub_0805EB9C + adds r4, r0, #0 + cmp r4, #0 + beq _08066E06 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080686C4 +_08066E06: + pop {r4, r5, pc} + + thumb_func_start sub_08066E08 +sub_08066E08: @ 0x08066E08 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x50 + bl sub_080042AC + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r4, #0x80 + strh r0, [r4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08066E20 +sub_08066E20: @ 0x08066E20 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x44 + bl sub_080042AC + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r4, #0x80 + strh r0, [r4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08066E38 +sub_08066E38: @ 0x08066E38 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x48 + bl sub_080042AC + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r4, #0x80 + strh r0, [r4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08066E50 +sub_08066E50: @ 0x08066E50 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x4c + bl sub_080042AC + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r4, #0x80 + strh r0, [r4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08066E68 +sub_08066E68: @ 0x08066E68 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x54 + bl sub_080042AC + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r4, #0x80 + strh r0, [r4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08066E80 +sub_08066E80: @ 0x08066E80 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r5, #0x18] + cmp r0, #4 + bhi _08066F7C + lsls r0, r0, #2 + ldr r1, _08066E98 @ =_08066E9C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08066E98: .4byte _08066E9C +_08066E9C: @ jump table + .4byte _08066EB0 @ case 0 + .4byte _08066EC0 @ case 1 + .4byte _08066EF0 @ case 2 + .4byte _08066F28 @ case 3 + .4byte _08066F58 @ case 4 +_08066EB0: + ldrb r0, [r5, #0x18] + adds r0, #1 + strb r0, [r5, #0x18] + adds r0, r4, #0 + movs r1, #0x16 + bl sub_080042AC + b _08066F7C +_08066EC0: + adds r0, r4, #0 + bl sub_080042B8 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08066F7C + ldrb r0, [r5, #0x18] + adds r0, #1 + strb r0, [r5, #0x18] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + ldrb r1, [r2] + movs r0, #0xfe + ands r0, r1 + strb r0, [r2] + movs r0, #0x7c + bl sub_080A3268 + b _08066F7C +_08066EF0: + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r4, #0 + movs r2, #0x80 + bl sub_0806F62C + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08066F1A + adds r0, r4, #0 + bl sub_080042B8 +_08066F1A: + ldr r0, [r4, #0x20] + cmp r0, #0 + bge _08066F7C + ldrb r0, [r5, #0x18] + adds r0, #1 + strb r0, [r5, #0x18] + b _08066F7C +_08066F28: + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r4, #0 + movs r2, #0x80 + bl sub_0806F62C + adds r0, r4, #0 + bl sub_080042B8 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08066F7C + ldrb r0, [r5, #0x18] + adds r0, #1 + strb r0, [r5, #0x18] + adds r0, r4, #0 + movs r1, #0x1e + bl sub_080042AC + b _08066F7C +_08066F58: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08066F7C + ldr r2, _08066F78 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + b _08066F8C + .align 2, 0 +_08066F78: .4byte gUnk_02033280 +_08066F7C: + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] + adds r0, #0x28 + movs r2, #0 + strh r1, [r0] + ldr r0, _08066F90 @ =gUnk_02033280 + strb r2, [r0, #6] +_08066F8C: + pop {r4, r5, pc} + .align 2, 0 +_08066F90: .4byte gUnk_02033280 + + thumb_func_start sub_08066F94 +sub_08066F94: @ 0x08066F94 + push {r4, lr} + ldr r4, _08066F9C @ =gUnk_08110BE0 + b _08066FAC + .align 2, 0 +_08066F9C: .4byte gUnk_08110BE0 +_08066FA0: + ldrh r1, [r4] + adds r4, #2 + ldr r0, _08066FB4 @ =0x00004072 + movs r2, #1 + bl sub_0807B314 +_08066FAC: + ldrh r0, [r4] + cmp r0, #0 + bne _08066FA0 + pop {r4, pc} + .align 2, 0 +_08066FB4: .4byte 0x00004072 + + thumb_func_start sub_08066FB8 +sub_08066FB8: @ 0x08066FB8 + push {r4, lr} + ldr r4, _08066FC0 @ =gUnk_08110BE0 + b _08066FCE + .align 2, 0 +_08066FC0: .4byte gUnk_08110BE0 +_08066FC4: + ldrh r0, [r4] + adds r4, #2 + movs r1, #1 + bl sub_0807BA8C +_08066FCE: + ldrh r0, [r4] + cmp r0, #0 + bne _08066FC4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08066FD8 +sub_08066FD8: @ 0x08066FD8 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x84 + ldr r0, [r0] + cmp r0, #0 + bne _08066FE8 + bl sub_0805E780 +_08066FE8: + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _08067030 + cmp r0, #1 + bgt _08066FF8 + cmp r0, #0 + beq _08066FFE + b _0806707C +_08066FF8: + cmp r0, #2 + beq _0806706E + b _0806707C +_08066FFE: + ldr r1, _0806702C @ =gUnk_08110C00 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806707C + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD50 + b _0806707C + .align 2, 0 +_0806702C: .4byte gUnk_08110C00 +_08067030: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _08067064 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + ldr r1, _08067060 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0806F118 + b _0806707C + .align 2, 0 +_08067060: .4byte gUnk_03001160 +_08067064: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + b _0806707C +_0806706E: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806707C + movs r0, #1 + strb r0, [r4, #0xc] +_0806707C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08067080 +sub_08067080: @ 0x08067080 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r2, [r0] + movs r0, #0x81 + rsbs r0, r0, #0 + ands r2, r0 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080670B4 +sub_080670B4: @ 0x080670B4 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 + movs r0, #0x11 + bl sub_0807CA84 + cmp r0, #0 + bne _080670D0 + movs r0, #0x15 + bl sub_0807CC30 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r4, r1, #0x1f +_080670D0: + ldr r0, _080670E0 @ =gUnk_08110C0C + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl sub_08056398 + pop {r4, r5, pc} + .align 2, 0 +_080670E0: .4byte gUnk_08110C0C + + thumb_func_start sub_080670E4 +sub_080670E4: @ 0x080670E4 + push {lr} + ldr r1, _080670F8 @ =gUnk_02002A40 + ldrb r1, [r1, #8] + lsls r1, r1, #3 + ldr r2, _080670FC @ =gUnk_08110C10 + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_080670F8: .4byte gUnk_02002A40 +_080670FC: .4byte gUnk_08110C10 + + thumb_func_start sub_08067100 +sub_08067100: @ 0x08067100 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_08067118 +sub_08067118: @ 0x08067118 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08067150 + ldr r1, _0806714C @ =gUnk_08110C00 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _08067156 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + b _08067156 + .align 2, 0 +_0806714C: .4byte gUnk_08110C00 +_08067150: + adds r0, r4, #0 + bl sub_08004274 +_08067156: + pop {r4, pc} + + thumb_func_start sub_08067158 +sub_08067158: @ 0x08067158 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x84 + ldr r0, [r0] + cmp r0, #0 + bne _08067168 + bl sub_0805E780 +_08067168: + ldrb r5, [r4, #0xc] + cmp r5, #1 + beq _080671A8 + cmp r5, #1 + bgt _08067178 + cmp r5, #0 + beq _0806717E + b _08067224 +_08067178: + cmp r5, #2 + beq _0806720A + b _08067224 +_0806717E: + ldrb r1, [r4, #0xa] + lsls r1, r1, #4 + ldr r0, _080671EC @ =gUnk_08110CA8 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _08067224 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x69 + strb r5, [r0] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD64 +_080671A8: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _080671F4 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x69 + strb r0, [r1] + ldr r1, _080671F0 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + ldrb r0, [r4, #0xa] + lsls r0, r0, #3 + adds r0, #4 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0806F118 + b _08067224 + .align 2, 0 +_080671EC: .4byte gUnk_08110CA8 +_080671F0: .4byte gUnk_03001160 +_080671F4: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + b _08067224 +_0806720A: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08067224 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x69 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08004260 +_08067224: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08067228 +sub_08067228: @ 0x08067228 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #1 + bhi _0806727E + adds r0, r4, #0 + adds r0, #0x5a + ldrb r2, [r0] + movs r0, #0x81 + rsbs r0, r0, #0 + ands r2, r0 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + adds r0, #0x5b + ldrb r0, [r0] + movs r2, #0x3f + ands r2, r0 + adds r0, r4, #0 + movs r1, #2 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + movs r1, #1 + movs r2, #2 + bl sub_0806FFD8 + adds r0, r4, #0 + bl sub_0807000C + b _080672AC +_0806727E: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r2, [r0] + movs r0, #0x81 + rsbs r0, r0, #0 + ands r2, r0 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C +_080672AC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080672B0 +sub_080672B0: @ 0x080672B0 + push {lr} + ldrb r2, [r0, #0x14] + lsrs r2, r2, #1 + ldr r1, [r1, #4] + adds r1, r1, r2 + ldrb r2, [r0, #0xa] + lsls r2, r2, #3 + adds r1, r1, r2 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080672C8 +sub_080672C8: @ 0x080672C8 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 + movs r0, #0x11 + bl sub_0807CA84 + cmp r0, #0 + bne _080672E4 + movs r0, #0x15 + bl sub_0807CC30 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r4, r1, #0x1f +_080672E4: + ldr r3, _08067300 @ =gUnk_08110CE8 + lsls r1, r4, #1 + ldrb r2, [r5, #0xa] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #1 + adds r1, r1, r0 + adds r1, r1, r3 + ldrh r0, [r1] + adds r1, r5, #0 + bl sub_08056398 + pop {r4, r5, pc} + .align 2, 0 +_08067300: .4byte gUnk_08110CE8 + + thumb_func_start sub_08067304 +sub_08067304: @ 0x08067304 + push {lr} + ldr r1, _08067310 @ =gUnk_08110D00 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_08067310: .4byte gUnk_08110D00 + + thumb_func_start sub_08067314 +sub_08067314: @ 0x08067314 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_0806732C +sub_0806732C: @ 0x0806732C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08067378 + ldrb r1, [r4, #0xa] + lsls r1, r1, #4 + ldr r0, _08067374 @ =gUnk_08110CA8 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806737E + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + ldrb r1, [r4, #0xa] + lsls r1, r1, #3 + adds r1, #2 + adds r0, r4, #0 + bl sub_08004260 + b _0806737E + .align 2, 0 +_08067374: .4byte gUnk_08110CA8 +_08067378: + adds r0, r4, #0 + bl sub_08004274 +_0806737E: + pop {r4, pc} + + thumb_func_start sub_08067380 +sub_08067380: @ 0x08067380 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080673A4 + ldr r0, _080673A0 @ =gUnk_08110E5C + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _080673BA + .align 2, 0 +_080673A0: .4byte gUnk_08110E5C +_080673A4: + ldr r0, _080673BC @ =gUnk_08110E4C + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0806ED78 +_080673BA: + pop {r4, pc} + .align 2, 0 +_080673BC: .4byte gUnk_08110E4C + + thumb_func_start sub_080673C0 +sub_080673C0: @ 0x080673C0 + push {lr} + adds r2, r0, #0 + ldr r0, _080673D4 @ =gUnk_030010A0 + adds r0, #0x2c + ldrb r0, [r0] + cmp r0, #0 + beq _080673D8 + movs r0, #3 + b _080673DA + .align 2, 0 +_080673D4: .4byte gUnk_030010A0 +_080673D8: + movs r0, #1 +_080673DA: + strb r0, [r2, #0xc] + ldrb r1, [r2, #0xa] + movs r0, #1 + ands r0, r1 + strb r0, [r2, #0x1e] + cmp r0, #0 + bne _080673EC + ldr r0, _080673F0 @ =gUnk_08110E94 + str r0, [r2, #0x48] +_080673EC: + pop {pc} + .align 2, 0 +_080673F0: .4byte gUnk_08110E94 + + thumb_func_start sub_080673F4 +sub_080673F4: @ 0x080673F4 + push {lr} + adds r2, r0, #0 + adds r3, r2, #0 + adds r3, #0x39 + movs r0, #0 + ldrsb r0, [r3, r0] + cmp r0, #0 + beq _0806740C + movs r1, #0 + movs r0, #2 + strb r0, [r2, #0xc] + strb r1, [r3] +_0806740C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08067410 +sub_08067410: @ 0x08067410 + movs r1, #1 + strb r1, [r0, #0xc] + bx lr + .align 2, 0 + + thumb_func_start sub_08067418 +sub_08067418: @ 0x08067418 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + movs r0, #1 + strb r0, [r6, #0xc] + movs r0, #0x2e + ldrsh r1, [r6, r0] + ldr r2, _08067488 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r4, #0x32 + ldrsh r0, [r6, r4] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r7, r6, #0 + adds r7, #0x74 + strh r1, [r7] + ldrb r0, [r6, #0xa] + cmp r0, #0 + bne _08067494 + ldr r0, _0806748C @ =gUnk_08110E94 + str r0, [r6, #0x48] + ldr r5, _08067490 @ =0x00004022 + ldrh r1, [r7] + subs r1, #1 + adds r4, r6, #0 + adds r4, #0x38 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldrh r1, [r7] + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldrh r1, [r7] + adds r1, #0x3f + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldrh r1, [r7] + adds r1, #0x40 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + b _080674F8 + .align 2, 0 +_08067488: .4byte gUnk_03000BF0 +_0806748C: .4byte gUnk_08110E94 +_08067490: .4byte 0x00004022 +_08067494: + adds r1, r6, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + ldrb r2, [r6, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r6, #0x1b] + ldrb r0, [r6, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r6, #0x19] + adds r2, r6, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x1d + bl sub_0807CBD0 + cmp r0, #0 + bne _080674F8 + ldr r4, _08067500 @ =0x00004022 + ldr r1, _08067504 @ =0x00000E81 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r1, _08067508 @ =0x00000E82 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r1, _0806750C @ =0x00000E83 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r1, _08067510 @ =0x00000EC3 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E +_080674F8: + adds r0, r6, #0 + bl sub_0807DD50 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08067500: .4byte 0x00004022 +_08067504: .4byte 0x00000E81 +_08067508: .4byte 0x00000E82 +_0806750C: .4byte 0x00000E83 +_08067510: .4byte 0x00000EC3 + + thumb_func_start sub_08067514 +sub_08067514: @ 0x08067514 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + bl sub_0807DD94 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0806752A + adds r0, r4, #0 + bl sub_0806ED78 +_0806752A: + pop {r4, pc} + + thumb_func_start sub_0806752C +sub_0806752C: @ 0x0806752C + push {lr} + bl sub_0806FD3C + pop {pc} + + thumb_func_start sub_08067534 +sub_08067534: @ 0x08067534 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 +_0806753A: + adds r0, r5, #0 + movs r1, #2 + movs r2, #0 + bl sub_080A29AC + adds r1, r0, #0 + cmp r1, #0 + beq _08067560 + ldr r0, _08067578 @ =gUnk_08110E64 + adds r0, r4, r0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r2, [r1, #0x2e] + adds r0, r0, r2 + strh r0, [r1, #0x2e] + ldrh r0, [r1, #0x32] + adds r0, #0x1c + strh r0, [r1, #0x32] +_08067560: + adds r4, #1 + cmp r4, #1 + ble _0806753A + movs r0, #0xa6 + lsls r0, r0, #1 + bl sub_08004488 + movs r0, #0x28 + movs r1, #4 + bl sub_08080964 + pop {r4, r5, pc} + .align 2, 0 +_08067578: .4byte gUnk_08110E64 + + thumb_func_start sub_0806757C +sub_0806757C: @ 0x0806757C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xd] + cmp r0, #0 + beq _080675CC + cmp r0, #2 + bls _080675BC + ldr r0, _080675AC @ =0x00000E81 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _080675B0 @ =0x00000E82 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _080675B4 @ =0x00000E83 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _080675B8 @ =0x00000EC3 + movs r1, #1 + bl sub_0807BA8C + b _080675CC + .align 2, 0 +_080675AC: .4byte 0x00000E81 +_080675B0: .4byte 0x00000E82 +_080675B4: .4byte 0x00000E83 +_080675B8: .4byte 0x00000EC3 +_080675BC: + ldr r0, _080675D0 @ =gUnk_08110E68 + ldrb r1, [r2, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl sub_080ADF80 +_080675CC: + pop {pc} + .align 2, 0 +_080675D0: .4byte gUnk_08110E68 + + thumb_func_start sub_080675D4 +sub_080675D4: @ 0x080675D4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + ldr r5, _080676D0 @ =gUnk_08110E78 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r7, r0, #0 + subs r7, #0xc + movs r0, #0x3f + mov r8, r0 + movs r6, #8 +_080675EC: + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl sub_080A29AC + adds r3, r0, #0 + cmp r3, #0 + beq _08067646 + movs r0, #0 + ldrsb r0, [r5, r0] + ldrh r1, [r3, #0x2e] + adds r0, r0, r1 + strh r0, [r3, #0x2e] + movs r0, #1 + ldrsb r0, [r5, r0] + ldrh r1, [r3, #0x32] + adds r0, r0, r1 + strh r0, [r3, #0x32] + strh r7, [r3, #0x36] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r3, #0 + adds r0, #0x38 + strb r1, [r0] + ldrb r1, [r4, #0x1b] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r3, #0x1b] + mov r0, r8 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x1b] + ldrb r1, [r4, #0x19] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r3, #0x19] + mov r0, r8 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x19] + adds r0, r4, #0 + adds r1, r3, #0 + bl sub_0806FAB0 +_08067646: + subs r6, #1 + adds r5, #2 + cmp r6, #0 + bge _080675EC + ldr r5, _080676D4 @ =gUnk_08110E8A + movs r0, #0x3f + mov r8, r0 + movs r6, #3 +_08067656: + adds r0, r4, #0 + movs r1, #4 + movs r2, #0 + bl sub_080A29AC + adds r3, r0, #0 + cmp r3, #0 + beq _080676B0 + movs r0, #0 + ldrsb r0, [r5, r0] + ldrh r1, [r3, #0x2e] + adds r0, r0, r1 + strh r0, [r3, #0x2e] + movs r0, #1 + ldrsb r0, [r5, r0] + ldrh r1, [r3, #0x32] + adds r0, r0, r1 + strh r0, [r3, #0x32] + strh r7, [r3, #0x36] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r3, #0 + adds r0, #0x38 + strb r1, [r0] + ldrb r1, [r4, #0x1b] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r3, #0x1b] + mov r0, r8 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x1b] + ldrb r1, [r4, #0x19] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r3, #0x19] + mov r0, r8 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x19] + adds r0, r4, #0 + adds r1, r3, #0 + bl sub_0806FAB0 +_080676B0: + subs r6, #1 + adds r5, #2 + cmp r6, #0 + bge _08067656 + ldrb r0, [r4, #0xd] + cmp r0, #2 + bls _080676C8 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_080676C8: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080676D0: .4byte gUnk_08110E78 +_080676D4: .4byte gUnk_08110E8A + + thumb_func_start sub_080676D8 +sub_080676D8: @ 0x080676D8 + ldrb r1, [r0, #0xd] + adds r1, #1 + strb r1, [r0, #0xd] + bx lr + + thumb_func_start sub_080676E0 +sub_080676E0: @ 0x080676E0 + push {lr} + adds r3, r0, #0 + adds r2, r1, #0 + ldrb r0, [r2, #0x18] + cmp r0, #1 + beq _08067706 + cmp r0, #1 + bgt _080676F6 + cmp r0, #0 + beq _080676FC + b _08067734 +_080676F6: + cmp r0, #2 + beq _08067722 + b _08067734 +_080676FC: + movs r0, #1 + strb r0, [r2, #0x18] + movs r0, #0x20 + strb r0, [r2, #0x19] + b _08067742 +_08067706: + ldrb r1, [r2, #0x19] + lsrs r0, r1, #1 + subs r0, #0x10 + strh r0, [r3, #0x36] + subs r1, #1 + strb r1, [r2, #0x19] + lsls r1, r1, #0x18 + cmp r1, #0 + bne _08067742 + movs r0, #2 + strb r0, [r2, #0x18] + movs r0, #0x24 + strb r0, [r2, #0x19] + b _08067742 +_08067722: + ldrb r0, [r2, #0x19] + subs r0, #1 + strb r0, [r2, #0x19] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08067742 + movs r0, #3 + strb r0, [r2, #0x18] + b _08067742 +_08067734: + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r3, #0 + bl sub_08003FC4 + cmp r0, #0 + beq _08067748 +_08067742: + ldr r1, _0806774C @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_08067748: + pop {pc} + .align 2, 0 +_0806774C: .4byte gUnk_02033280 + + thumb_func_start sub_08067750 +sub_08067750: @ 0x08067750 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08067788 + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrh r0, [r4, #0x32] + subs r0, #0x18 + strh r0, [r4, #0x32] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + ldr r1, _08067784 @ =0x0000017B + adds r0, r4, #0 + bl sub_0801D2B4 + b _0806778E + .align 2, 0 +_08067784: .4byte 0x0000017B +_08067788: + adds r0, r4, #0 + bl sub_08004274 +_0806778E: + pop {r4, pc} + + thumb_func_start sub_08067790 +sub_08067790: @ 0x08067790 + push {lr} + ldrb r2, [r0, #0xa] + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #4 + ldr r2, _080677AC @ =gUnk_02002A40 + ldrb r2, [r2, #8] + lsls r2, r2, #3 + ldr r3, _080677B0 @ =gUnk_08110EF8 + adds r2, r2, r3 + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_080677AC: .4byte gUnk_02002A40 +_080677B0: .4byte gUnk_08110EF8 + + thumb_func_start sub_080677B4 +sub_080677B4: @ 0x080677B4 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080677E8 @ =gUnk_081110D8 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_08067C44 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080677E4 + ldrb r0, [r4, #0xa] + cmp r0, #5 + beq _080677E4 + adds r0, r4, #0 + bl sub_0806ED78 +_080677E4: + pop {r4, pc} + .align 2, 0 +_080677E8: .4byte gUnk_081110D8 + + thumb_func_start sub_080677EC +sub_080677EC: @ 0x080677EC + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #8 + strb r0, [r4, #0x15] + movs r0, #0x80 + strh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #4 + movs r0, #0x48 + strb r0, [r1] + subs r1, #1 + movs r0, #0xa8 + strb r0, [r1] + subs r1, #4 + movs r0, #1 + strb r0, [r1] + adds r1, #0x2e + movs r0, #0xff + strb r0, [r1] + ldr r0, _0806783C @ =gUnk_03001160 + movs r2, #0x2e + ldrsh r1, [r4, r2] + movs r2, #0x2e + ldrsh r0, [r0, r2] + cmp r1, r0 + bge _08067840 + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + b _08067848 + .align 2, 0 +_0806783C: .4byte gUnk_03001160 +_08067840: + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 +_08067848: + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldr r0, _0806786C @ =gUnk_08110EF0 + str r0, [r4, #0x48] + adds r0, r4, #0 + bl sub_0805ACC0 + adds r2, r0, #0 + cmp r2, #0 + bne _08067870 + movs r0, #0x2e + ldrsh r2, [r4, r0] + b _08067872 + .align 2, 0 +_0806786C: .4byte gUnk_08110EF0 +_08067870: + lsrs r2, r2, #0x10 +_08067872: + adds r0, r4, #0 + adds r0, #0x6c + movs r1, #0 + strh r2, [r0] + ldrb r0, [r4, #0xe] + adds r0, r0, r2 + adds r2, r4, #0 + adds r2, #0x6e + strh r0, [r2] + strb r1, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x75 + strb r1, [r0] + bl sub_08000E50 + movs r1, #0x7f + ands r0, r1 + adds r0, #0x1e + adds r1, r4, #0 + adds r1, #0x74 + strb r0, [r1] + subs r1, #0xb + movs r0, #0xff + strb r0, [r1] + adds r0, r4, #0 + bl sub_08067B08 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080678AC +sub_080678AC: @ 0x080678AC + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08067D20 + cmp r0, #0 + beq _080678C2 + adds r0, r4, #0 + movs r1, #5 + bl sub_08067B80 + b _08067900 +_080678C2: + adds r2, r4, #0 + adds r2, #0x72 + ldrh r0, [r2] + cmp r0, #0 + beq _080678D0 + subs r0, #1 + strh r0, [r2] +_080678D0: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #1 + bne _080678EA + ldrh r0, [r2] + cmp r0, #0 + bne _080678EA + adds r0, r4, #0 + bl sub_08067AAC + b _08067900 +_080678EA: + adds r0, r4, #0 + bl sub_080042B8 + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08067900 + adds r0, r4, #0 + bl sub_08067B34 +_08067900: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08067904 +sub_08067904: @ 0x08067904 + push {r4, lr} + adds r4, r0, #0 + bl sub_08067D20 + cmp r0, #0 + beq _0806791A + adds r0, r4, #0 + movs r1, #8 + bl sub_08067B80 + b _08067978 +_0806791A: + adds r1, r4, #0 + adds r1, #0x72 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08067932 + adds r0, r4, #0 + bl sub_08067B70 + b _08067978 +_08067932: + ldrb r0, [r4, #0x15] + cmp r0, #8 + bne _08067952 + movs r1, #0x2e + ldrsh r0, [r4, r1] + adds r1, r4, #0 + adds r1, #0x6e + ldrh r1, [r1] + cmp r0, r1 + ble _0806796C + movs r0, #0x18 + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x18] + subs r0, #0x59 + ands r0, r1 + b _0806796A +_08067952: + movs r0, #0x2e + ldrsh r1, [r4, r0] + adds r0, r4, #0 + adds r0, #0x6c + ldrh r0, [r0] + cmp r1, r0 + bge _0806796C + movs r0, #8 + strb r0, [r4, #0x15] + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 +_0806796A: + strb r0, [r4, #0x18] +_0806796C: + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_080042B8 +_08067978: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806797C +sub_0806797C: @ 0x0806797C + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08067998 + adds r0, r4, #0 + bl sub_08067B08 +_08067998: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806799C +sub_0806799C: @ 0x0806799C + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldr r0, _080679C0 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _080679BE + adds r0, r4, #0 + bl sub_08067B08 + adds r0, r4, #0 + movs r1, #1 + bl sub_0805E3A0 +_080679BE: + pop {r4, pc} + .align 2, 0 +_080679C0: .4byte gUnk_02000050 + + thumb_func_start sub_080679C4 +sub_080679C4: @ 0x080679C4 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x74 + ldrb r0, [r1] + cmp r0, #0 + beq _080679E6 + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080679E6 + adds r0, r4, #0 + bl sub_08067D20 + cmp r0, #0 + bne _080679EE +_080679E6: + adds r0, r4, #0 + bl sub_08067C24 + b _08067A0A +_080679EE: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_08067BD4 + adds r0, r4, #0 + bl sub_08067D74 + cmp r0, #0 + beq _08067A0A + adds r0, r4, #0 + bl sub_08067C18 +_08067A0A: + pop {r4, pc} + + thumb_func_start sub_08067A0C +sub_08067A0C: @ 0x08067A0C + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08067A44 + adds r0, r4, #0 + bl sub_08067D20 + cmp r0, #0 + beq _08067A3C + adds r0, r4, #0 + movs r1, #5 + bl sub_08067B80 + ldrb r0, [r4, #0xe] + adds r0, #0x14 + strb r0, [r4, #0xe] + b _08067A76 +_08067A3C: + adds r0, r4, #0 + bl sub_08067C24 + b _08067A76 +_08067A44: + movs r2, #7 + ands r2, r1 + cmp r2, #0 + beq _08067A70 + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldr r1, _08067A6C @ =gUnk_08111154 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x1f + lsls r0, r0, #2 + subs r0, #1 + adds r0, r2, r0 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r4, #0x48] + b _08067A76 + .align 2, 0 +_08067A6C: .4byte gUnk_08111154 +_08067A70: + adds r0, r4, #0 + bl sub_08067DDC +_08067A76: + pop {r4, pc} + + thumb_func_start sub_08067A78 +sub_08067A78: @ 0x08067A78 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08067A94 + adds r0, r4, #0 + bl sub_08067AAC +_08067A94: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08067A98 +sub_08067A98: @ 0x08067A98 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08067AAA + adds r0, r4, #0 + bl sub_08067B08 +_08067AAA: + pop {r4, pc} + + thumb_func_start sub_08067AAC +sub_08067AAC: @ 0x08067AAC + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + strb r0, [r4, #0xc] + bl sub_08000E50 + ldr r2, _08067AFC @ =gUnk_081110FC + movs r1, #3 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r0, [r1] + adds r1, r4, #0 + adds r1, #0x72 + strh r0, [r1] + ldrb r1, [r4, #0x15] + lsrs r1, r1, #4 + movs r0, #1 + eors r1, r0 + ands r1, r0 + lsls r1, r1, #6 + ldrb r2, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #3 + bl sub_08067DCC + ldr r0, _08067B00 @ =gUnk_0811110C + ldrb r2, [r0, #2] + ldr r3, _08067B04 @ =gUnk_0811110F + adds r0, r4, #0 + movs r1, #0 + bl sub_08078850 + pop {r4, pc} + .align 2, 0 +_08067AFC: .4byte gUnk_081110FC +_08067B00: .4byte gUnk_0811110C +_08067B04: .4byte gUnk_0811110F + + thumb_func_start sub_08067B08 +sub_08067B08: @ 0x08067B08 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + bl sub_08000E50 + ldr r2, _08067B30 @ =gUnk_08111104 + movs r1, #3 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r0, [r1] + adds r1, r4, #0 + adds r1, #0x72 + strh r0, [r1] + adds r0, r4, #0 + bl sub_08067B34 + pop {r4, pc} + .align 2, 0 +_08067B30: .4byte gUnk_08111104 + + thumb_func_start sub_08067B34 +sub_08067B34: @ 0x08067B34 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + bl sub_08067DCC + bl sub_08000E50 + movs r1, #0x30 + ands r0, r1 + adds r0, #0xb4 + adds r1, r4, #0 + adds r1, #0x59 + strb r0, [r1] + ldr r1, _08067B68 @ =gUnk_0811110C + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x1f + adds r0, r0, r1 + ldrb r2, [r0] + ldr r3, _08067B6C @ =gUnk_0811110F + adds r0, r4, #0 + movs r1, #0 + bl sub_08078850 + pop {r4, pc} + .align 2, 0 +_08067B68: .4byte gUnk_0811110C +_08067B6C: .4byte gUnk_0811110F + + thumb_func_start sub_08067B70 +sub_08067B70: @ 0x08067B70 + push {lr} + movs r1, #3 + strb r1, [r0, #0xc] + movs r1, #4 + bl sub_08067DCC + pop {pc} + .align 2, 0 + + thumb_func_start sub_08067B80 +sub_08067B80: @ 0x08067B80 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + movs r0, #5 + strb r0, [r5, #0xc] + movs r0, #0x14 + strb r0, [r5, #0xe] + bl sub_08000E50 + movs r1, #0x7f + ands r0, r1 + adds r0, #0x1e + adds r1, r5, #0 + adds r1, #0x74 + strb r0, [r1] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080042AC + adds r0, r5, #0 + bl sub_08067DDC + ldr r0, _08067BC4 @ =gUnk_03001160 + movs r2, #0x2e + ldrsh r1, [r5, r2] + movs r2, #0x2e + ldrsh r0, [r0, r2] + cmp r1, r0 + bge _08067BC8 + ldrb r0, [r5, #0x18] + movs r1, #0x40 + orrs r0, r1 + b _08067BD0 + .align 2, 0 +_08067BC4: .4byte gUnk_03001160 +_08067BC8: + ldrb r1, [r5, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 +_08067BD0: + strb r0, [r5, #0x18] + pop {r4, r5, pc} + + thumb_func_start sub_08067BD4 +sub_08067BD4: @ 0x08067BD4 + push {r4, lr} + adds r2, r0, #0 + ldrb r3, [r2, #0x18] + lsls r0, r3, #0x19 + cmp r0, #0 + bge _08067BFC + movs r1, #0x2e + ldrsh r0, [r2, r1] + subs r0, #4 + ldr r1, _08067BF8 @ =gUnk_03001160 + movs r4, #0x2e + ldrsh r1, [r1, r4] + cmp r0, r1 + ble _08067C12 + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r3 + b _08067C10 + .align 2, 0 +_08067BF8: .4byte gUnk_03001160 +_08067BFC: + movs r1, #0x2e + ldrsh r0, [r2, r1] + adds r0, #4 + ldr r1, _08067C14 @ =gUnk_03001160 + movs r4, #0x2e + ldrsh r1, [r1, r4] + cmp r0, r1 + bge _08067C12 + movs r0, #0x40 + orrs r0, r3 +_08067C10: + strb r0, [r2, #0x18] +_08067C12: + pop {r4, pc} + .align 2, 0 +_08067C14: .4byte gUnk_03001160 + + thumb_func_start sub_08067C18 +sub_08067C18: @ 0x08067C18 + push {lr} + movs r1, #6 + strb r1, [r0, #0xc] + bl sub_080042AC + pop {pc} + + thumb_func_start sub_08067C24 +sub_08067C24: @ 0x08067C24 + push {r4, lr} + adds r4, r0, #0 + movs r0, #7 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x75 + movs r0, #0x14 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08067DDC + adds r0, r4, #0 + movs r1, #7 + bl sub_080042AC + pop {r4, pc} + + thumb_func_start sub_08067C44 +sub_08067C44: @ 0x08067C44 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _08067C6C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + rsbs r0, r0, #0 + lsrs r5, r0, #0x1f + adds r0, r4, #0 + adds r0, #0x69 + ldrb r0, [r0] + cmp r5, r0 + beq _08067C7C + cmp r5, #0 + bne _08067C70 + adds r0, r4, #0 + bl sub_08078778 + b _08067C7C + .align 2, 0 +_08067C6C: .4byte gUnk_03003F80 +_08067C70: + adds r0, r4, #0 + adds r0, #0x68 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080787A8 +_08067C7C: + adds r0, r4, #0 + adds r0, #0x69 + strb r5, [r0] + subs r0, #0x30 + movs r1, #0 + ldrsb r1, [r0, r1] + adds r5, r0, #0 + cmp r1, #0 + beq _08067D1C + ldr r1, _08067CB4 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_0806FCA0 + adds r2, r0, #0 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0 + beq _08067CA6 + cmp r0, #3 + beq _08067CB8 +_08067CA6: + cmp r2, #2 + bne _08067CDA + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC + b _08067CEC + .align 2, 0 +_08067CB4: .4byte gUnk_03001160 +_08067CB8: + cmp r2, #1 + bne _08067CC4 + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + b _08067CD4 +_08067CC4: + ldrb r1, [r4, #0x18] + lsls r0, r1, #0x19 + lsrs r0, r0, #0x1f + cmp r0, #3 + bne _08067CD6 + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 +_08067CD4: + strb r0, [r4, #0x18] +_08067CD6: + cmp r2, #2 + beq _08067CE4 +_08067CDA: + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC + b _08067CEC +_08067CE4: + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC +_08067CEC: + movs r0, #0 + ldrsb r0, [r5, r0] + cmp r0, #2 + bne _08067D00 + movs r0, #8 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0806F118 + b _08067D12 +_08067D00: + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_08067790 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 +_08067D12: + movs r0, #0 + strb r0, [r5] + movs r0, #0xd2 + bl sub_080A3268 +_08067D1C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08067D20 +sub_08067D20: @ 0x08067D20 + push {r4, r5, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x75 + ldrb r0, [r1] + cmp r0, #0 + beq _08067D34 + subs r0, #1 + strb r0, [r1] + b _08067D70 +_08067D34: + movs r0, #2 + bl sub_08049DF4 + adds r2, r0, #0 + cmp r2, #0 + beq _08067D70 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x19 + movs r3, #0x28 + cmp r0, #0 + bge _08067D4C + movs r3, #0x10 +_08067D4C: + movs r0, #0x2e + ldrsh r1, [r2, r0] + movs r5, #0x2e + ldrsh r0, [r4, r5] + subs r0, r0, r3 + subs r1, r1, r0 + cmp r1, #0x30 + bhi _08067D70 + movs r1, #0x32 + ldrsh r0, [r2, r1] + adds r0, #4 + movs r2, #0x32 + ldrsh r1, [r4, r2] + subs r0, r0, r1 + cmp r0, #0x38 + bhi _08067D70 + movs r0, #1 + b _08067D72 +_08067D70: + movs r0, #0 +_08067D72: + pop {r4, r5, pc} + + thumb_func_start sub_08067D74 +sub_08067D74: @ 0x08067D74 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #5 + beq _08067DC8 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08067D88 + subs r0, #1 + strb r0, [r4, #0xe] +_08067D88: + movs r0, #2 + bl sub_08049DF4 + adds r2, r0, #0 + cmp r2, #0 + beq _08067DC8 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x19 + movs r3, #0x18 + cmp r0, #0 + bge _08067DA0 + movs r3, #8 +_08067DA0: + movs r0, #0x2e + ldrsh r1, [r2, r0] + movs r5, #0x2e + ldrsh r0, [r4, r5] + subs r0, r0, r3 + subs r1, r1, r0 + cmp r1, #0x1e + bhi _08067DC8 + movs r1, #0x32 + ldrsh r0, [r2, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + subs r0, r0, r1 + cmp r0, #0x16 + bhi _08067DC8 + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _08067DC8 + movs r0, #1 + b _08067DCA +_08067DC8: + movs r0, #0 +_08067DCA: + pop {r4, r5, pc} + + thumb_func_start sub_08067DCC +sub_08067DCC: @ 0x08067DCC + push {lr} + adds r2, r0, #0 + adds r2, #0x71 + strb r1, [r2] + bl sub_080042AC + pop {pc} + .align 2, 0 + + thumb_func_start sub_08067DDC +sub_08067DDC: @ 0x08067DDC + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + movs r1, #0 + strb r0, [r2, #0x10] + adds r0, r2, #0 + adds r0, #0x41 + strb r1, [r0] + subs r0, #4 + strb r1, [r0] + ldr r0, _08067DF8 @ =gUnk_08110EF0 + str r0, [r2, #0x48] + bx lr + .align 2, 0 +_08067DF8: .4byte gUnk_08110EF0 + + thumb_func_start sub_08067DFC +sub_08067DFC: @ 0x08067DFC + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _08067E22 + adds r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + adds r0, r2, #0 + movs r1, #5 + bl sub_080042AC + b _08067E28 +_08067E22: + adds r0, r2, #0 + bl sub_080042B8 +_08067E28: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08067E2C +sub_08067E2C: @ 0x08067E2C + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08067E58 + ldr r0, _08067E54 @ =gUnk_08111368 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0806ED78 + b _08067E5E + .align 2, 0 +_08067E54: .4byte gUnk_08111368 +_08067E58: + adds r0, r4, #0 + bl sub_08067EF0 +_08067E5E: + pop {r4, pc} + + thumb_func_start sub_08067E60 +sub_08067E60: @ 0x08067E60 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08067E84 @ =gUnk_08111358 + bl sub_0806FDEC + cmp r0, #0 + beq _08067E80 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_08078778 + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 +_08067E80: + pop {r4, pc} + .align 2, 0 +_08067E84: .4byte gUnk_08111358 + + thumb_func_start sub_08067E88 +sub_08067E88: @ 0x08067E88 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x28 + movs r2, #0x28 + bl sub_0806ED9C + adds r1, r0, #0 + cmp r1, #0 + bge _08067E9E + movs r1, #2 + b _08067EB4 +_08067E9E: + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _08067EAA + movs r0, #0x10 + strb r0, [r4, #0xf] + b _08067EB4 +_08067EAA: + subs r0, #1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] +_08067EB4: + adds r0, r4, #0 + bl sub_0806F078 + cmp r0, #0 + bne _08067EC4 + adds r0, r4, #0 + bl sub_08004274 +_08067EC4: + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08067EE4 + movs r0, #0 + strb r0, [r1] + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xe] + movs r1, #0x90 + lsls r1, r1, #5 + adds r0, r0, r1 + bl sub_08056378 +_08067EE4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08067EE8 +sub_08067EE8: @ 0x08067EE8 + movs r1, #1 + strb r1, [r0, #0xc] + bx lr + .align 2, 0 + + thumb_func_start sub_08067EF0 +sub_08067EF0: @ 0x08067EF0 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldrb r4, [r5, #0xc] + cmp r4, #1 + beq _08067F58 + cmp r4, #1 + bgt _08067F04 + cmp r4, #0 + beq _08067F10 + b _0806801A +_08067F04: + cmp r4, #2 + beq _08067FDC + cmp r4, #3 + bne _08067F0E + b _08068000 +_08067F0E: + b _0806801A +_08067F10: + ldr r1, _08067F50 @ =gUnk_08111358 + adds r0, r5, #0 + bl sub_0806FDEC + cmp r0, #0 + bne _08067F1E + b _080680F0 +_08067F1E: + movs r2, #1 + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + ldrb r0, [r5, #0xa] + strb r0, [r5, #0x14] + adds r0, r5, #0 + adds r0, #0x69 + strb r4, [r0] + adds r0, r5, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r5, #0 + bl sub_0807DD50 + ldr r1, _08067F54 @ =gUnk_08111304 + ldrb r0, [r5, #0xb] + adds r0, r0, r1 + ldrb r1, [r0] + b _08067FF2 + .align 2, 0 +_08067F50: .4byte gUnk_08111358 +_08067F54: .4byte gUnk_08111304 +_08067F58: + adds r4, r5, #0 + adds r4, #0x39 + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #2 + bne _08067F98 + movs r1, #0 + movs r0, #3 + strb r0, [r5, #0xc] + strb r1, [r4] + adds r0, r5, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r1, r5, #0 + adds r1, #0x69 + strb r0, [r1] + ldr r1, _08067F94 @ =gUnk_03001160 + adds r0, r5, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r5, #0 + bl sub_08004260 + adds r0, r5, #0 + bl sub_0806F118 + b _0806801A + .align 2, 0 +_08067F94: .4byte gUnk_03001160 +_08067F98: + adds r0, r5, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r5, #0 + bl sub_0807DDE4 + ldrb r0, [r5, #0xb] + cmp r0, #3 + bne _0806801A + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #0 + beq _0806801A + movs r1, #0 + movs r0, #2 + strb r0, [r5, #0xc] + strb r1, [r4] + ldr r1, _08067FD8 @ =gUnk_03001160 + adds r0, r5, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r5, #0 + bl sub_08004260 + adds r0, r5, #0 + bl sub_08068190 + b _0806801A + .align 2, 0 +_08067FD8: .4byte gUnk_03001160 +_08067FDC: + ldr r0, _08067FFC @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0806801A + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x14] + lsrs r1, r1, #1 + adds r1, #4 +_08067FF2: + adds r0, r5, #0 + bl sub_08004260 + b _0806801A + .align 2, 0 +_08067FFC: .4byte gUnk_02000050 +_08068000: + adds r0, r5, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806801A + movs r0, #1 + strb r0, [r5, #0xc] + adds r0, r5, #0 + adds r0, #0x69 + ldrb r1, [r0] + adds r0, r5, #0 + bl sub_08004260 +_0806801A: + adds r0, r5, #0 + adds r0, #0x59 + ldrb r1, [r0] + adds r7, r0, #0 + cmp r1, #0xff + beq _0806802C + adds r0, r5, #0 + bl sub_08004274 +_0806802C: + adds r1, r5, #0 + adds r1, #0x5b + ldrb r2, [r1] + movs r0, #1 + ands r0, r2 + adds r6, r1, #0 + cmp r0, #0 + beq _0806807E + movs r0, #0xfe + ands r0, r2 + strb r0, [r6] + adds r0, r5, #0 + bl sub_080040A8 + cmp r0, #0 + bne _08068068 + ldr r4, _08068064 @ =gUnk_0811137A + bl sub_08000E50 + movs r1, #3 + bl __modsi3 + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r0, [r0] + bl sub_080A3268 + b _0806807E + .align 2, 0 +_08068064: .4byte gUnk_0811137A +_08068068: + ldr r4, _080680F4 @ =gUnk_08111374 + bl sub_08000E50 + movs r1, #3 + bl __modsi3 + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r0, [r0] + bl sub_08004488 +_0806807E: + ldrb r1, [r6] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080680A8 + movs r0, #0xfd + ands r0, r1 + strb r0, [r6] + adds r0, r5, #0 + movs r1, #4 + movs r2, #0 + bl sub_080A29AC + adds r1, r0, #0 + cmp r1, #0 + beq _080680A8 + ldr r3, _080680F8 @ =0xFFE80000 + adds r0, r5, #0 + movs r2, #0 + bl sub_0806FA48 +_080680A8: + ldrb r1, [r6] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080680D2 + movs r0, #0xfb + ands r0, r1 + strb r0, [r6] + adds r0, r5, #0 + movs r1, #0x3d + movs r2, #0x20 + bl sub_080A29AC + adds r1, r0, #0 + cmp r1, #0 + beq _080680D2 + ldr r2, _080680FC @ =0xFFEC0000 + ldr r3, _08068100 @ =0xFFF60000 + adds r0, r5, #0 + bl sub_0806FA48 +_080680D2: + ldrb r1, [r6] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080680F0 + movs r0, #0xf7 + ands r0, r1 + strb r0, [r6] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + ldrb r1, [r7] + adds r0, r0, r1 + strb r0, [r7] +_080680F0: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080680F4: .4byte gUnk_08111374 +_080680F8: .4byte 0xFFE80000 +_080680FC: .4byte 0xFFEC0000 +_08068100: .4byte 0xFFF60000 + + thumb_func_start sub_08068104 +sub_08068104: @ 0x08068104 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_0806811C +sub_0806811C: @ 0x0806811C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + adds r7, r0, #0 + cmp r7, #0 + beq _0806812E + subs r0, #1 + strb r0, [r4, #0xe] + b _0806818A +_0806812E: + movs r0, #2 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0x20 + movs r2, #0x20 + bl sub_0806EDD8 + adds r3, r0, #0 + cmp r3, #0 + bge _08068148 + ldrb r0, [r4, #0xa] + strb r0, [r4, #0x14] + lsls r3, r0, #2 +_08068148: + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #5 + asrs r1, r3, #1 + lsls r1, r1, #1 + ldr r2, _0806818C @ =gUnk_08111284 + adds r1, r1, r2 + adds r0, r0, r1 + ldrb r6, [r0] + ldrb r5, [r0, #1] + movs r0, #0x80 + ands r0, r5 + cmp r0, #0 + beq _0806816C + adds r0, r3, #0 + bl sub_0806F5B0 + strb r0, [r4, #0x14] +_0806816C: + movs r0, #0x40 + orrs r6, r0 + adds r0, r4, #0 + adds r0, #0x5a + strb r6, [r0] + movs r0, #0x7f + ands r5, r0 + strb r5, [r4, #0x1e] + adds r0, r4, #0 + adds r0, #0x58 + strb r7, [r0] + adds r1, r4, #0 + adds r1, #0x59 + movs r0, #0xff + strb r0, [r1] +_0806818A: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806818C: .4byte gUnk_08111284 + + thumb_func_start sub_08068190 +sub_08068190: @ 0x08068190 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldrb r5, [r6, #0xb] + cmp r5, #8 + bls _0806819C + movs r5, #8 +_0806819C: + movs r0, #0x7e + bl sub_0807CBD0 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r4, r1, #0x1f + movs r0, #0x41 + bl sub_0807CA84 + cmp r0, #0 + beq _080681B4 + movs r4, #2 +_080681B4: + movs r0, #2 + bl sub_0807CA84 + cmp r0, #0 + beq _080681C0 + movs r4, #3 +_080681C0: + ldr r2, _080681D4 @ =gUnk_0811130E + lsls r0, r4, #1 + lsls r1, r5, #3 + adds r0, r0, r1 + adds r0, r0, r2 + ldrh r0, [r0] + adds r1, r6, #0 + bl sub_08056398 + pop {r4, r5, r6, pc} + .align 2, 0 +_080681D4: .4byte gUnk_0811130E + + thumb_func_start sub_080681D8 +sub_080681D8: @ 0x080681D8 + ldr r1, [r1, #4] + strb r1, [r0, #0xa] + bx lr + .align 2, 0 + + thumb_func_start sub_080681E0 +sub_080681E0: @ 0x080681E0 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x5a + ldrb r4, [r0] + movs r0, #0x81 + rsbs r0, r0, #0 + ands r4, r0 + ldrb r2, [r5, #0x1e] + adds r0, r5, #0 + movs r1, #1 + bl sub_0806FF60 + movs r0, #0x40 + ands r0, r4 + cmp r0, #0 + beq _08068226 + movs r0, #0xe1 + rsbs r0, r0, #0 + ands r4, r0 + adds r2, r4, #4 + adds r0, r5, #0 + movs r1, #0 + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #2 + movs r2, #0xff + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + b _08068268 +_08068226: + movs r0, #0x20 + ands r0, r4 + cmp r0, #0 + beq _08068254 + adds r0, r5, #0 + movs r1, #0 + movs r2, #0xff + bl sub_0806FF60 + movs r0, #0xe1 + rsbs r0, r0, #0 + ands r4, r0 + adds r0, r5, #0 + movs r1, #2 + adds r2, r4, #0 + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #1 + movs r2, #2 + bl sub_0806FF88 + b _08068268 +_08068254: + adds r0, r5, #0 + movs r1, #0 + movs r2, #0xff + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #2 + movs r2, #0xff + bl sub_0806FF60 +_08068268: + adds r0, r5, #0 + bl sub_0807000C + pop {r4, r5, pc} + + thumb_func_start sub_08068270 +sub_08068270: @ 0x08068270 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080682A8 + ldr r1, _080682A4 @ =gUnk_08111358 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _080682AE + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #6 + bl sub_08004260 + b _080682AE + .align 2, 0 +_080682A4: .4byte gUnk_08111358 +_080682A8: + adds r0, r4, #0 + bl sub_08004274 +_080682AE: + pop {r4, pc} + + thumb_func_start sub_080682B0 +sub_080682B0: @ 0x080682B0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r2, r0, #0 + cmp r2, #0 + bne _080682F4 + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #4 + strb r0, [r4, #0x14] + adds r0, r4, #0 + adds r0, #0x68 + strb r2, [r0] + adds r0, #1 + strb r2, [r0] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + adds r0, r4, #0 + movs r1, #0 + bl sub_0806854C +_080682F4: + adds r0, r4, #0 + adds r0, #0x68 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _0806830A + adds r0, r4, #0 + bl sub_08068318 + b _08068314 +_0806830A: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_08068314: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08068318 +sub_08068318: @ 0x08068318 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov r8, r0 + ldr r4, _08068414 @ =gUnk_03001160 + ldrh r1, [r4, #0x2e] + ldr r3, _08068418 @ =0xFFFF0000 + adds r0, r3, #0 + ands r0, r6 + orrs r0, r1 + ldrh r1, [r4, #0x32] + lsls r1, r1, #0x10 + ldr r2, _0806841C @ =0x0000FFFF + ands r0, r2 + adds r6, r0, #0 + orrs r6, r1 + ldrh r0, [r4, #0x36] + ands r3, r7 + orrs r3, r0 + adds r7, r3, #0 + ldr r0, _08068420 @ =gUnk_03003F80 + adds r0, #0xa8 + ldrb r0, [r0] + lsls r0, r0, #0x10 + ldr r2, _08068424 @ =0xFF00FFFF + ands r2, r3 + orrs r2, r0 + adds r7, r2, #0 + ldrb r1, [r4, #0x14] + movs r0, #0x3f + ands r1, r0 + lsls r1, r1, #0x18 + ldr r0, _08068428 @ =0xC0FFFFFF + ands r0, r2 + orrs r0, r1 + adds r7, r0, #0 + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + lsls r1, r1, #0x1e + ldr r2, _0806842C @ =0x3FFFFFFF + ands r0, r2 + adds r7, r0, #0 + orrs r7, r1 + mov r0, r8 + ldr r5, [r0, #0x64] + ldrb r1, [r5, #6] + cmp r1, #0xa + bne _08068386 + lsrs r0, r7, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xa + bne _08068394 +_08068386: + cmp r1, #0x16 + bne _080683B4 + lsrs r0, r7, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x16 + beq _080683B4 +_08068394: + ldrh r0, [r4, #0x2e] + mov r1, r8 + strh r0, [r1, #0x2e] + ldrh r0, [r4, #0x32] + strh r0, [r1, #0x32] + ldrb r1, [r1, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + mov r2, r8 + strb r0, [r2, #0x18] + mov r0, r8 + bl sub_08068578 +_080683B4: + movs r3, #0 + mov sb, r3 + ldr r0, [r5] + cmp r6, r0 + bne _080683D0 + ldr r0, [r5, #4] + cmp r7, r0 + bne _080683D0 + lsls r1, r7, #8 + lsrs r0, r1, #0x18 + cmp r0, #0x16 + beq _080683D0 + cmp r0, #0xa + bne _08068430 +_080683D0: + mov r0, r8 + ldr r5, [r0, #0x64] + adds r5, #0x90 + mov r4, r8 + adds r4, #0x69 + mov r3, r8 + adds r3, #0x38 + movs r1, #0x58 + add r1, r8 + mov ip, r1 + movs r2, #0x12 +_080683E6: + ldr r0, [r5] + ldr r1, [r5, #4] + str r0, [r5, #8] + str r1, [r5, #0xc] + subs r5, #8 + subs r2, #1 + cmp r2, #0 + bge _080683E6 + mov r2, r8 + ldr r5, [r2, #0x64] + str r6, [r5] + str r7, [r5, #4] + movs r0, #4 + mov sb, r0 + ldrb r1, [r4] + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #0 + ble _080684A8 + subs r0, r1, #1 + strb r0, [r4] + b _080684A8 + .align 2, 0 +_08068414: .4byte gUnk_03001160 +_08068418: .4byte 0xFFFF0000 +_0806841C: .4byte 0x0000FFFF +_08068420: .4byte gUnk_03003F80 +_08068424: .4byte 0xFF00FFFF +_08068428: .4byte 0xC0FFFFFF +_0806842C: .4byte 0x3FFFFFFF +_08068430: + adds r5, #0x98 + movs r1, #4 + ldrsh r0, [r5, r1] + cmp r0, #0 + bge _08068466 + mov r2, r8 + ldr r5, [r2, #0x64] + adds r5, #0x90 + mov r4, r8 + adds r4, #0x69 + mov r3, r8 + adds r3, #0x38 + movs r0, #0x58 + add r0, r8 + mov ip, r0 + movs r2, #0x12 +_08068450: + ldr r0, [r5] + ldr r1, [r5, #4] + str r0, [r5, #8] + str r1, [r5, #0xc] + subs r5, #8 + subs r2, #1 + cmp r2, #0 + bge _08068450 + movs r1, #4 + mov sb, r1 + b _080684A8 +_08068466: + ldr r1, _0806851C @ =gUnk_03001160 + movs r2, #0x2e + ldrsh r0, [r1, r2] + movs r3, #0x32 + ldrsh r1, [r1, r3] + ldrh r2, [r5] + ldrh r3, [r5, #2] + bl sub_080041E8 + lsrs r0, r0, #4 + mov r4, r8 + adds r4, #0x69 + mov r3, r8 + adds r3, #0x38 + movs r1, #0x58 + add r1, r8 + mov ip, r1 + cmp r0, #0x18 + ble _080684A8 + mov r2, r8 + ldr r5, [r2, #0x64] + adds r5, #0x90 + movs r2, #0x12 +_08068494: + ldr r0, [r5] + ldr r1, [r5, #4] + str r0, [r5, #8] + str r1, [r5, #0xc] + subs r5, #8 + subs r2, #1 + cmp r2, #0 + bge _08068494 + movs r0, #4 + mov sb, r0 +_080684A8: + mov r1, r8 + ldr r5, [r1, #0x64] + adds r5, #0x98 + ldrh r0, [r5] + strh r0, [r1, #0x2e] + ldrh r0, [r5, #2] + strh r0, [r1, #0x32] + ldrh r0, [r5, #4] + strh r0, [r1, #0x36] + ldrb r0, [r5, #7] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1a + strb r0, [r1, #0x14] + ldrb r0, [r5, #7] + lsrs r0, r0, #6 + strb r0, [r3] + ldrb r0, [r5, #6] + cmp r0, #0x16 + beq _080684D2 + cmp r0, #0xa + bne _080684DE +_080684D2: + mov r2, r8 + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x18] +_080684DE: + adds r1, r4, #0 + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + ble _080684EE + subs r0, r2, #1 + strb r0, [r1] +_080684EE: + mov r2, sb + mov r3, r8 + ldrb r0, [r3, #0x14] + lsrs r0, r0, #1 + add sb, r0 + mov r0, ip + ldrb r0, [r0] + cmp sb, r0 + beq _08068520 + cmp r2, #0 + bne _0806850C + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bgt _08068520 +_0806850C: + mov r0, r8 + mov r1, sb + bl sub_080042AC + movs r0, #0x1e + strb r0, [r4] + b _08068526 + .align 2, 0 +_0806851C: .4byte gUnk_03001160 +_08068520: + mov r0, r8 + bl sub_080042B8 +_08068526: + mov r0, r8 + bl sub_0800451C + mov r1, r8 + movs r2, #0x36 + ldrsh r0, [r1, r2] + cmp r0, #0 + bge _08068542 + movs r2, #0xc + rsbs r2, r2, #0 + mov r0, r8 + movs r1, #0 + bl sub_0806F854 +_08068542: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0806854C +sub_0806854C: @ 0x0806854C + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0xa0 + bl sub_0801D8E0 + str r0, [r5, #0x64] + cmp r0, #0 + beq _08068574 + adds r0, r5, #0 + adds r0, #0x68 + movs r4, #0 + movs r1, #1 + strb r1, [r0] + adds r0, r5, #0 + bl sub_080788E0 + str r4, [r5, #0x48] + adds r0, r5, #0 + bl sub_08068578 +_08068574: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08068578 +sub_08068578: @ 0x08068578 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r7, r0, #0 + ldr r4, _08068664 @ =gUnk_03001160 + ldrh r1, [r4, #0x2e] + ldr r3, _08068668 @ =0xFFFF0000 + adds r0, r3, #0 + ands r0, r5 + orrs r0, r1 + ldrh r1, [r4, #0x32] + lsls r1, r1, #0x10 + ldr r2, _0806866C @ =0x0000FFFF + ands r0, r2 + adds r5, r0, #0 + orrs r5, r1 + ldrh r0, [r4, #0x36] + ands r3, r6 + orrs r3, r0 + ldr r0, _08068670 @ =gUnk_03003F80 + adds r0, #0xa8 + ldrb r0, [r0] + lsls r0, r0, #0x10 + ldr r2, _08068674 @ =0xFF00FFFF + ands r2, r3 + orrs r2, r0 + ldrb r1, [r4, #0x14] + movs r0, #0x3f + ands r1, r0 + lsls r1, r1, #0x18 + ldr r0, _08068678 @ =0xC0FFFFFF + ands r0, r2 + orrs r0, r1 + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + lsls r1, r1, #0x1e + ldr r2, _0806867C @ =0x3FFFFFFF + ands r0, r2 + adds r6, r0, #0 + orrs r6, r1 + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r2, #0x2e + ldrsh r0, [r7, r2] + subs r1, r1, r0 + mov sl, r1 + movs r0, #0x32 + ldrsh r1, [r4, r0] + movs r2, #0x32 + ldrsh r0, [r7, r2] + subs r1, r1, r0 + mov r8, r1 + mov r1, sl + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x14 + bl sub_0806FA04 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + mov sl, r0 + mov r2, r8 + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x14 + bl sub_0806FA04 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + mov r8, r0 + ldr r3, [r7, #0x64] + movs r0, #0 + mov sb, r0 + mov ip, r0 + movs r4, #0x13 +_08068614: + mov r1, ip + asrs r0, r1, #8 + subs r0, r5, r0 + strh r0, [r3] + lsrs r0, r5, #0x10 + mov r2, sb + asrs r1, r2, #8 + subs r0, r0, r1 + strh r0, [r3, #2] + strh r6, [r3, #4] + lsrs r0, r6, #0x10 + strb r0, [r3, #6] + ldrb r0, [r7, #0x14] + movs r1, #0x3f + ands r1, r0 + ldrb r2, [r3, #7] + movs r0, #0x40 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #7] + adds r1, r7, #0 + adds r1, #0x38 + ldrb r1, [r1] + lsls r1, r1, #6 + movs r2, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #7] + adds r3, #8 + add sb, r8 + add ip, sl + subs r4, #1 + cmp r4, #0 + bge _08068614 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08068664: .4byte gUnk_03001160 +_08068668: .4byte 0xFFFF0000 +_0806866C: .4byte 0x0000FFFF +_08068670: .4byte gUnk_03003F80 +_08068674: .4byte 0xFF00FFFF +_08068678: .4byte 0xC0FFFFFF +_0806867C: .4byte 0x3FFFFFFF + + thumb_func_start sub_08068680 +sub_08068680: @ 0x08068680 + adds r2, r1, #0 + adds r2, #0x68 + movs r0, #0 + strb r0, [r2] + ldrb r2, [r1, #0x18] + subs r0, #4 + ands r0, r2 + strb r0, [r1, #0x18] + bx lr + .align 2, 0 + + thumb_func_start sub_08068694 +sub_08068694: @ 0x08068694 + push {r4, lr} + adds r4, r1, #0 + adds r2, r4, #0 + adds r2, #0x68 + movs r3, #1 + movs r1, #1 + strb r1, [r2] + ldrb r2, [r4, #0x18] + subs r1, #5 + ands r1, r2 + orrs r1, r3 + strb r1, [r4, #0x18] + ldrb r0, [r0, #0x14] + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_08068578 + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 + adds r0, r4, #0 + bl sub_080042AC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080686C4 +sub_080686C4: @ 0x080686C4 + push {lr} + adds r0, r1, #0 + ldrh r1, [r0, #0x32] + subs r1, #0x10 + strh r1, [r0, #0x32] + bl sub_08068578 + pop {pc} + + thumb_func_start sub_080686D4 +sub_080686D4: @ 0x080686D4 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08068700 + ldr r0, _080686FC @ =gUnk_08111530 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0806ED78 + b _08068706 + .align 2, 0 +_080686FC: .4byte gUnk_08111530 +_08068700: + adds r0, r4, #0 + bl sub_08068780 +_08068706: + pop {r4, pc} + + thumb_func_start sub_08068708 +sub_08068708: @ 0x08068708 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0806872C @ =gUnk_08111520 + bl sub_0806FDEC + cmp r0, #0 + beq _08068728 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08078778 +_08068728: + pop {r4, pc} + .align 2, 0 +_0806872C: .4byte gUnk_08111520 + + thumb_func_start sub_08068730 +sub_08068730: @ 0x08068730 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x20 + movs r2, #0x20 + bl sub_0806ED9C + adds r1, r0, #0 + cmp r1, #0 + blt _08068762 + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _0806875E + movs r0, #0x10 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, r1 + beq _08068762 + adds r0, r4, #0 + bl sub_08004260 + b _08068762 +_0806875E: + subs r0, #1 + strb r0, [r4, #0xf] +_08068762: + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _0806877E + movs r0, #0 + strb r0, [r1] + ldrb r0, [r4, #0xe] + movs r1, #0x90 + lsls r1, r1, #5 + adds r0, r0, r1 + bl sub_08056378 +_0806877E: + pop {r4, pc} + + thumb_func_start sub_08068780 +sub_08068780: @ 0x08068780 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #1 + beq _080687D0 + cmp r0, #1 + bgt _08068794 + cmp r0, #0 + beq _0806879A + b _0806880E +_08068794: + cmp r0, #2 + beq _08068800 + b _0806880E +_0806879A: + ldr r1, _080687CC @ =gUnk_08111520 + adds r0, r5, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806887A + movs r2, #1 + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + ldrb r0, [r5, #0xa] + strb r0, [r5, #0x14] + adds r0, r5, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r5, #0 + bl sub_0807DD50 + b _0806880E + .align 2, 0 +_080687CC: .4byte gUnk_08111520 +_080687D0: + adds r2, r5, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _080687EA + movs r0, #0 + strb r1, [r5, #0xc] + strb r0, [r2] + adds r0, r5, #0 + bl sub_0806F118 + b _0806880E +_080687EA: + adds r0, r5, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r5, #0 + bl sub_0807DDE4 + adds r0, r5, #0 + bl sub_08004274 + b _0806880E +_08068800: + adds r0, r5, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806880E + movs r0, #1 + strb r0, [r5, #0xc] +_0806880E: + adds r2, r5, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0806887A + movs r0, #0xbf + ands r0, r1 + strb r0, [r2] + adds r0, r5, #0 + bl sub_080040A8 + cmp r0, #0 + bne _08068848 + ldr r4, _08068844 @ =gUnk_0811153E + bl sub_08000E50 + movs r1, #3 + bl __modsi3 + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r0, [r0] + bl sub_080A3268 + b _0806885E + .align 2, 0 +_08068844: .4byte gUnk_0811153E +_08068848: + ldr r4, _0806887C @ =gUnk_08111538 + bl sub_08000E50 + movs r1, #3 + bl __modsi3 + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r0, [r0] + bl sub_08004488 +_0806885E: + adds r0, r5, #0 + movs r1, #0x3d + movs r2, #0x20 + bl sub_080A29AC + adds r1, r0, #0 + cmp r1, #0 + beq _0806887A + movs r2, #0xc0 + lsls r2, r2, #0xd + ldr r3, _08068880 @ =0xFFF60000 + adds r0, r5, #0 + bl sub_0806FA48 +_0806887A: + pop {r4, r5, pc} + .align 2, 0 +_0806887C: .4byte gUnk_08111538 +_08068880: .4byte 0xFFF60000 + + thumb_func_start sub_08068884 +sub_08068884: @ 0x08068884 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_0806889C +sub_0806889C: @ 0x0806889C + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x5a + ldrb r4, [r0] + movs r0, #0xc1 + rsbs r0, r0, #0 + ands r4, r0 + ldrb r2, [r5, #0x1e] + adds r0, r5, #0 + movs r1, #1 + bl sub_0806FF60 + movs r0, #0x20 + ands r0, r4 + cmp r0, #0 + beq _080688E2 + movs r0, #0xe1 + rsbs r0, r0, #0 + ands r4, r0 + adds r0, r5, #0 + movs r1, #0 + adds r2, r4, #0 + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #2 + movs r2, #0xff + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + b _08068906 +_080688E2: + adds r0, r5, #0 + movs r1, #0 + movs r2, #0xff + bl sub_0806FF60 + movs r0, #0xe1 + rsbs r0, r0, #0 + ands r4, r0 + adds r0, r5, #0 + movs r1, #2 + adds r2, r4, #0 + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #1 + movs r2, #2 + bl sub_0806FFD8 +_08068906: + adds r0, r5, #0 + bl sub_0807000C + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08068910 +sub_08068910: @ 0x08068910 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08068920 + subs r0, #1 + strb r0, [r4, #0xe] + b _08068960 +_08068920: + movs r0, #0x10 + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _08068960 + adds r0, r4, #0 + movs r1, #0x30 + movs r2, #0x30 + bl sub_0806EDD8 + adds r2, r0, #0 + cmp r2, #0 + bge _08068944 + movs r2, #0x10 +_08068944: + adds r0, r2, #0 + bl sub_0806F5A4 + adds r2, r0, #0 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] + movs r0, #4 + rsbs r0, r0, #0 + ands r1, r0 + adds r1, r1, r2 + adds r0, r4, #0 + bl sub_08004260 +_08068960: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08068964 +sub_08068964: @ 0x08068964 + push {lr} + movs r0, #0x35 + movs r1, #0 + movs r2, #3 + bl sub_080A7C18 + movs r0, #0x35 + movs r1, #2 + bl sub_0807CAA0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806897C +sub_0806897C: @ 0x0806897C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080689B4 + ldr r1, _080689B0 @ =gUnk_08111520 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _080689BA + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #6 + bl sub_08004260 + b _080689BA + .align 2, 0 +_080689B0: .4byte gUnk_08111520 +_080689B4: + adds r0, r4, #0 + bl sub_08004274 +_080689BA: + pop {r4, pc} + + thumb_func_start nullsub_502 +nullsub_502: @ 0x080689BC + bx lr + .align 2, 0 + + thumb_func_start sub_080689C0 +sub_080689C0: @ 0x080689C0 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080689E4 + ldr r0, _080689E0 @ =gUnk_081115D0 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _080689FA + .align 2, 0 +_080689E0: .4byte gUnk_081115D0 +_080689E4: + ldr r0, _08068A18 @ =gUnk_081115C0 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0806ED78 +_080689FA: + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08068A16 + movs r0, #0xfe + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #0 + bl sub_08068BEC +_08068A16: + pop {r4, pc} + .align 2, 0 +_08068A18: .4byte gUnk_081115C0 + + thumb_func_start sub_08068A1C +sub_08068A1C: @ 0x08068A1C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + strb r0, [r4, #0xb] + ldr r0, _08068A34 @ =gUnk_030010A0 + adds r0, #0x2c + ldrb r0, [r0] + cmp r0, #0 + beq _08068A38 + movs r1, #6 + movs r0, #3 + b _08068A42 + .align 2, 0 +_08068A34: .4byte gUnk_030010A0 +_08068A38: + adds r0, r4, #0 + bl sub_08078778 + movs r1, #2 + movs r0, #1 +_08068A42: + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_08004260 + pop {r4, pc} + + thumb_func_start sub_08068A4C +sub_08068A4C: @ 0x08068A4C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x28 + movs r2, #0x28 + bl sub_0806ED9C + adds r1, r0, #0 + cmp r1, #0 + bge _08068A62 + movs r1, #2 + b _08068A78 +_08068A62: + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _08068A6E + movs r0, #0x10 + strb r0, [r4, #0xf] + b _08068A78 +_08068A6E: + subs r0, #1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] +_08068A78: + adds r0, r4, #0 + bl sub_0806F078 + cmp r0, #0 + bne _08068A88 + adds r0, r4, #0 + bl sub_08004274 +_08068A88: + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08068AA2 + movs r0, #0 + strb r0, [r1] + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0 + bl sub_08056378 +_08068AA2: + pop {r4, pc} + + thumb_func_start sub_08068AA4 +sub_08068AA4: @ 0x08068AA4 + push {lr} + adds r2, r0, #0 + movs r0, #1 + strb r0, [r2, #0xc] + ldrb r0, [r2, #0xa] + cmp r0, #0 + beq _08068AD4 + ldrb r0, [r2, #0xb] + adds r1, r0, #1 + movs r0, #7 + ands r1, r0 + strb r1, [r2, #0xb] + cmp r1, #0 + bne _08068AC4 + adds r0, r1, #1 + strb r0, [r2, #0xb] +_08068AC4: + ldr r0, _08068AD8 @ =gUnk_081115DC + ldrb r1, [r2, #0xb] + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r1, [r1] + adds r0, r2, #0 + bl sub_0801D2B4 +_08068AD4: + pop {pc} + .align 2, 0 +_08068AD8: .4byte gUnk_081115DC + + thumb_func_start sub_08068ADC +sub_08068ADC: @ 0x08068ADC + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08068AF8 @ =gUnk_030010A0 + adds r0, #0x2c + ldrb r0, [r0] + cmp r0, #2 + bne _08068AF0 + adds r0, r4, #0 + bl sub_08004274 +_08068AF0: + adds r0, r4, #0 + bl sub_0806FD3C + pop {r4, pc} + .align 2, 0 +_08068AF8: .4byte gUnk_030010A0 + + thumb_func_start sub_08068AFC +sub_08068AFC: @ 0x08068AFC + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + adds r0, r4, #0 + bl sub_0807DD50 + pop {r4, pc} + + thumb_func_start sub_08068B2C +sub_08068B2C: @ 0x08068B2C + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _08068B64 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + ldr r1, _08068B60 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0806F118 + b _08068B6C + .align 2, 0 +_08068B60: .4byte gUnk_03001160 +_08068B64: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 +_08068B6C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08068B70 +sub_08068B70: @ 0x08068B70 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08068B80 + movs r0, #1 + strb r0, [r4, #0xc] +_08068B80: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08068B84 +sub_08068B84: @ 0x08068B84 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08068BAC @ =gUnk_08111618 + ldrb r0, [r4, #0xe] + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _08068B9A + movs r1, #0 + bl sub_08054414 +_08068B9A: + ldr r0, _08068BB0 @ =gUnk_081115EC + ldrb r1, [r4, #0xe] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl sub_0805ED14 + pop {r4, pc} + .align 2, 0 +_08068BAC: .4byte gUnk_08111618 +_08068BB0: .4byte gUnk_081115EC + + thumb_func_start sub_08068BB4 +sub_08068BB4: @ 0x08068BB4 + ldr r2, _08068BCC @ =gUnk_02002A40 + adds r1, r2, #0 + adds r1, #0xb4 + ldrb r1, [r1] + adds r3, r0, #0 + adds r3, #0x69 + strb r1, [r3] + adds r2, #0xb5 + ldrb r1, [r2] + adds r0, #0x6a + strb r1, [r0] + bx lr + .align 2, 0 +_08068BCC: .4byte gUnk_02002A40 + + thumb_func_start sub_08068BD0 +sub_08068BD0: @ 0x08068BD0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x69 + ldrb r0, [r0] + movs r1, #0 + bl sub_08054414 + adds r4, #0x6a + ldrb r0, [r4] + movs r1, #1 + bl sub_08054414 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08068BEC +sub_08068BEC: @ 0x08068BEC + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x44 + movs r2, #0 + bl sub_080A29AC + adds r2, r0, #0 + cmp r2, #0 + beq _08068C22 + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r3] + ldr r3, _08068C24 @ =0xFFF00000 + adds r0, r4, #0 + adds r1, r2, #0 + movs r2, #0 + bl sub_0806FA48 + movs r0, #0xfa + bl sub_080A3268 +_08068C22: + pop {r4, pc} + .align 2, 0 +_08068C24: .4byte 0xFFF00000 + + thumb_func_start sub_08068C28 +sub_08068C28: @ 0x08068C28 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _08068C54 @ =gUnk_08111623 + ldrb r1, [r4, #0xa] + adds r1, r1, r0 + ldrb r0, [r1] + strb r0, [r4, #0xe] + ldrb r5, [r4, #0xa] + cmp r5, #1 + bne _08068C6A + movs r0, #0x48 + bl sub_0807CA84 + cmp r0, #0 + beq _08068C6A + movs r0, #0x4b + bl sub_0807CA84 + cmp r0, #0 + bne _08068C58 + strb r5, [r4, #0xe] + b _08068C6A + .align 2, 0 +_08068C54: .4byte gUnk_08111623 +_08068C58: + movs r0, #0x4a + bl sub_0807CA84 + cmp r0, #0 + bne _08068C66 + movs r0, #2 + b _08068C68 +_08068C66: + movs r0, #3 +_08068C68: + strb r0, [r4, #0xe] +_08068C6A: + pop {r4, r5, pc} + + thumb_func_start sub_08068C6C +sub_08068C6C: @ 0x08068C6C + push {lr} + ldr r1, _08068C88 @ =gUnk_0811162B + ldrb r0, [r0, #0xe] + adds r0, r0, r1 + ldrb r0, [r0] + movs r1, #0x81 + rsbs r1, r1, #0 + ands r0, r1 + movs r1, #0 + movs r2, #0 + bl sub_080A7C18 + pop {pc} + .align 2, 0 +_08068C88: .4byte gUnk_0811162B + + thumb_func_start sub_08068C8C +sub_08068C8C: @ 0x08068C8C + ldr r2, _08068C9C @ =gUnk_08111638 + ldrb r0, [r0, #0xe] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1, #0x14] + bx lr + .align 2, 0 +_08068C9C: .4byte gUnk_08111638 + + thumb_func_start sub_08068CA0 +sub_08068CA0: @ 0x08068CA0 + push {r4, lr} + adds r4, r1, #0 + ldrb r1, [r0, #0xa] + cmp r1, #1 + bne _08068CDC + str r1, [r4, #0x14] + movs r0, #0x48 + bl sub_0807CA84 + cmp r0, #0 + bne _08068CB8 + str r0, [r4, #0x14] +_08068CB8: + movs r0, #0x4b + bl sub_0807CA84 + cmp r0, #0 + bne _08068CC4 + str r0, [r4, #0x14] +_08068CC4: + movs r0, #0x4a + bl sub_0807CA84 + cmp r0, #0 + bne _08068CD0 + str r0, [r4, #0x14] +_08068CD0: + movs r0, #0x4e + bl sub_0807CA84 + cmp r0, #0 + bne _08068CF6 + b _08068CF4 +_08068CDC: + ldr r1, _08068CF8 @ =gUnk_0811162B + ldrb r0, [r0, #0xe] + adds r0, r0, r1 + ldrb r0, [r0] + movs r1, #0x81 + rsbs r1, r1, #0 + ands r0, r1 + bl sub_0807CA84 + cmp r0, #0 + beq _08068CF4 + movs r0, #1 +_08068CF4: + str r0, [r4, #0x14] +_08068CF6: + pop {r4, pc} + .align 2, 0 +_08068CF8: .4byte gUnk_0811162B + + thumb_func_start sub_08068CFC +sub_08068CFC: @ 0x08068CFC + push {r4, lr} + adds r4, r1, #0 + movs r1, #0 + str r1, [r4, #0x14] + ldrb r0, [r0, #0xe] + cmp r0, #0xa + bhi _08068DB6 + lsls r0, r0, #2 + ldr r1, _08068D14 @ =_08068D18 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08068D14: .4byte _08068D18 +_08068D18: @ jump table + .4byte _08068DB2 @ case 0 + .4byte _08068D44 @ case 1 + .4byte _08068D48 @ case 2 + .4byte _08068D4C @ case 3 + .4byte _08068DB2 @ case 4 + .4byte _08068D50 @ case 5 + .4byte _08068D58 @ case 6 + .4byte _08068D68 @ case 7 + .4byte _08068DB2 @ case 8 + .4byte _08068DB2 @ case 9 + .4byte _08068DA8 @ case 10 +_08068D44: + movs r0, #2 + b _08068DAA +_08068D48: + movs r0, #0x15 + b _08068DAA +_08068D4C: + movs r0, #0x14 + b _08068DAA +_08068D50: + movs r0, #3 + bl sub_0807CBD0 + b _08068DAE +_08068D58: + ldr r0, _08068D64 @ =gUnk_02002A40 + adds r0, #0xab + ldrb r0, [r0] + cmp r0, #0x4f + bls _08068DB6 + b _08068DB2 + .align 2, 0 +_08068D64: .4byte gUnk_02002A40 +_08068D68: + movs r0, #0x48 + bl sub_0807CA84 + cmp r0, #0 + beq _08068DB6 + movs r0, #0x49 + bl sub_0807CA84 + cmp r0, #0 + beq _08068DB6 + movs r0, #0x4a + bl sub_0807CA84 + cmp r0, #0 + beq _08068DB6 + movs r0, #0x4b + bl sub_0807CA84 + cmp r0, #0 + beq _08068DB6 + movs r0, #0x4c + bl sub_0807CA84 + cmp r0, #0 + beq _08068DB6 + movs r0, #0x4e + bl sub_0807CA84 + cmp r0, #0 + beq _08068DB6 + movs r0, #0x4f + b _08068DAA +_08068DA8: + movs r0, #0x4d +_08068DAA: + bl sub_0807CA84 +_08068DAE: + cmp r0, #0 + beq _08068DB6 +_08068DB2: + movs r0, #1 + str r0, [r4, #0x14] +_08068DB6: + pop {r4, pc} + + thumb_func_start sub_08068DB8 +sub_08068DB8: @ 0x08068DB8 + push {lr} + adds r1, r0, #0 + ldr r2, _08068DCC @ =gUnk_08111664 + ldrb r0, [r1, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + bl sub_08056398 + pop {pc} + .align 2, 0 +_08068DCC: .4byte gUnk_08111664 + + thumb_func_start sub_08068DD0 +sub_08068DD0: @ 0x08068DD0 + push {lr} + adds r1, r0, #0 + ldr r2, _08068DE4 @ =gUnk_0811167A + ldrb r0, [r1, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + bl sub_08056398 + pop {pc} + .align 2, 0 +_08068DE4: .4byte gUnk_0811167A + + thumb_func_start sub_08068DE8 +sub_08068DE8: @ 0x08068DE8 + push {lr} + adds r1, r0, #0 + ldr r2, _08068DFC @ =gUnk_08111690 + ldrb r0, [r1, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + bl sub_08056398 + pop {pc} + .align 2, 0 +_08068DFC: .4byte gUnk_08111690 + + thumb_func_start sub_08068E00 +sub_08068E00: @ 0x08068E00 + push {lr} + adds r1, r0, #0 + ldr r2, _08068E14 @ =gUnk_081116A6 + ldrb r0, [r1, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + bl sub_08056398 + pop {pc} + .align 2, 0 +_08068E14: .4byte gUnk_081116A6 + + thumb_func_start sub_08068E18 +sub_08068E18: @ 0x08068E18 + push {lr} + adds r1, r0, #0 + ldr r2, _08068E2C @ =gUnk_081116BC + ldrb r0, [r1, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + bl sub_08056398 + pop {pc} + .align 2, 0 +_08068E2C: .4byte gUnk_081116BC + + thumb_func_start sub_08068E30 +sub_08068E30: @ 0x08068E30 + push {lr} + adds r1, r0, #0 + ldr r2, _08068E44 @ =gUnk_081116D2 + ldrb r0, [r1, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + bl sub_08056398 + pop {pc} + .align 2, 0 +_08068E44: .4byte gUnk_081116D2 + + thumb_func_start sub_08068E48 +sub_08068E48: @ 0x08068E48 + push {lr} + adds r1, r0, #0 + ldr r2, _08068E5C @ =gUnk_081116E8 + ldrb r0, [r1, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + bl sub_08056398 + pop {pc} + .align 2, 0 +_08068E5C: .4byte gUnk_081116E8 + + thumb_func_start sub_08068E60 +sub_08068E60: @ 0x08068E60 + push {lr} + adds r1, r0, #0 + ldr r2, _08068E74 @ =gUnk_081116FE + ldrb r0, [r1, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + bl sub_08056398 + pop {pc} + .align 2, 0 +_08068E74: .4byte gUnk_081116FE + + thumb_func_start sub_08068E78 +sub_08068E78: @ 0x08068E78 + push {lr} + adds r1, r0, #0 + ldr r2, _08068E8C @ =gUnk_08111714 + ldrb r0, [r1, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + bl sub_08056398 + pop {pc} + .align 2, 0 +_08068E8C: .4byte gUnk_08111714 + + thumb_func_start sub_08068E90 +sub_08068E90: @ 0x08068E90 + ldr r2, _08068EAC @ =gUnk_03003F80 + adds r2, #0xac + ldr r1, _08068EB0 @ =gUnk_08111740 + ldrb r0, [r0, #0xe] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + subs r1, #1 + movs r0, #1 + lsls r0, r1 + ldrh r1, [r2] + orrs r0, r1 + strh r0, [r2] + bx lr + .align 2, 0 +_08068EAC: .4byte gUnk_03003F80 +_08068EB0: .4byte gUnk_08111740 + + thumb_func_start sub_08068EB4 +sub_08068EB4: @ 0x08068EB4 + ldr r0, _08068EC0 @ =gUnk_03003F80 + adds r0, #0xab + movs r1, #0 + strb r1, [r0] + bx lr + .align 2, 0 +_08068EC0: .4byte gUnk_03003F80 + + thumb_func_start sub_08068EC4 +sub_08068EC4: @ 0x08068EC4 + push {r4, lr} + adds r3, r1, #0 + ldr r2, _08068EEC @ =gUnk_08111740 + ldrb r4, [r0, #0xe] + lsls r1, r4, #2 + adds r1, r1, r2 + ldr r0, _08068EF0 @ =gUnk_03003F80 + adds r0, #0xab + ldr r1, [r1] + ldrb r0, [r0] + cmp r1, r0 + bne _08068EF8 + ldr r1, _08068EF4 @ =gUnk_0811172A + lsls r0, r4, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r3, #0x10] + movs r0, #1 + b _08068EFA + .align 2, 0 +_08068EEC: .4byte gUnk_08111740 +_08068EF0: .4byte gUnk_03003F80 +_08068EF4: .4byte gUnk_0811172A +_08068EF8: + movs r0, #0 +_08068EFA: + str r0, [r3, #0x14] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08068F00 +sub_08068F00: @ 0x08068F00 + push {lr} + ldrb r0, [r0, #0xe] + cmp r0, #1 + bne _08068F0E + ldr r0, _08068F10 @ =gUnk_080F3494 + bl sub_0804ADDC +_08068F0E: + pop {pc} + .align 2, 0 +_08068F10: .4byte gUnk_080F3494 + + thumb_func_start sub_08068F14 +sub_08068F14: @ 0x08068F14 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #5 + bne _08068F24 + movs r0, #0xa0 + bl sub_080526A0 +_08068F24: + ldrb r0, [r4, #0xe] + cmp r0, #6 + bne _08068F38 + movs r0, #0xa0 + rsbs r0, r0, #0 + bl sub_080526A0 + movs r0, #2 + bl sub_080526A0 +_08068F38: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08068F3C +sub_08068F3C: @ 0x08068F3C + push {lr} + ldrb r0, [r0, #0xe] + cmp r0, #6 + bne _08068F4A + movs r0, #0xa0 + bl sub_080526A0 +_08068F4A: + pop {pc} + + thumb_func_start sub_08068F4C +sub_08068F4C: @ 0x08068F4C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08068F72 + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #4 + bl sub_080042AC + b _08068F78 +_08068F72: + adds r0, r4, #0 + bl sub_080042B8 +_08068F78: + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08068F94 + movs r0, #0xfe + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #0 + bl sub_08068BEC +_08068F94: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08068F98 +sub_08068F98: @ 0x08068F98 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08068FBC @ =gUnk_08111914 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0806ED78 + adds r0, r4, #0 + bl sub_0806920C + pop {r4, pc} + .align 2, 0 +_08068FBC: .4byte gUnk_08111914 + + thumb_func_start sub_08068FC0 +sub_08068FC0: @ 0x08068FC0 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xb] + strb r0, [r4, #0x14] + movs r0, #0x40 + strh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x6d + movs r0, #0xff + strb r0, [r1] + adds r0, r4, #0 + bl sub_0805ACC0 + adds r2, r0, #0 + cmp r2, #0 + bne _08068FF4 + ldrh r0, [r4, #0x2e] + adds r1, r4, #0 + adds r1, #0x68 + strh r0, [r1] + ldrh r0, [r4, #0x32] + adds r1, #2 + strh r0, [r1] + b _08069000 +_08068FF4: + lsrs r1, r2, #0x10 + adds r0, r4, #0 + adds r0, #0x68 + strh r1, [r0] + adds r0, #2 + strh r2, [r0] +_08069000: + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x6c + strb r0, [r1] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC + pop {r4, pc} + + thumb_func_start sub_08069018 +sub_08069018: @ 0x08069018 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _0806903A + adds r0, #1 + strb r0, [r4, #0xd] + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + adds r0, #0x3c + strb r0, [r4, #0xf] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_080042AC +_0806903A: + adds r0, r4, #0 + bl sub_080042B8 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0806905E + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _08069058 + movs r0, #2 + b _0806905A +_08069058: + movs r0, #3 +_0806905A: + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_0806905E: + adds r0, r4, #0 + bl sub_0806924C + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08069068 +sub_08069068: @ 0x08069068 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _080690A4 + adds r0, #1 + strb r0, [r4, #0xd] + bl sub_08000E50 + movs r1, #2 + ands r1, r0 + subs r1, #1 + ldrb r0, [r4, #0x14] + adds r1, r1, r0 + movs r0, #3 + ands r1, r0 + strb r1, [r4, #0x14] + lsls r1, r1, #3 + strb r1, [r4, #0x15] + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + adds r0, #0x3c + strb r0, [r4, #0xf] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC +_080690A4: + adds r0, r4, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_080042B8 + movs r0, #0x2e + ldrsh r1, [r4, r0] + adds r2, r4, #0 + adds r2, #0x68 + movs r3, #0 + ldrsh r0, [r2, r3] + subs r1, r1, r0 + cmp r1, #0x10 + ble _080690CC + ldrh r0, [r2] + adds r0, #0x10 + strh r0, [r4, #0x2e] + movs r0, #1 + strb r0, [r4, #0xf] +_080690CC: + movs r3, #0x10 + rsbs r3, r3, #0 + cmp r1, r3 + bge _080690DE + ldrh r0, [r2] + subs r0, #0x10 + strh r0, [r4, #0x2e] + movs r0, #1 + strb r0, [r4, #0xf] +_080690DE: + movs r5, #0x32 + ldrsh r1, [r4, r5] + adds r2, r4, #0 + adds r2, #0x6a + movs r5, #0 + ldrsh r0, [r2, r5] + subs r1, r1, r0 + cmp r1, #0x10 + ble _080690FA + ldrh r0, [r2] + adds r0, #0x10 + strh r0, [r4, #0x32] + movs r0, #1 + strb r0, [r4, #0xf] +_080690FA: + cmp r1, r3 + bge _08069108 + ldrh r0, [r2] + subs r0, #0x10 + strh r0, [r4, #0x32] + movs r0, #1 + strb r0, [r4, #0xf] +_08069108: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0806911C + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_0806911C: + adds r0, r4, #0 + bl sub_0806924C + pop {r4, r5, pc} + + thumb_func_start sub_08069124 +sub_08069124: @ 0x08069124 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldr r1, _08069144 @ =gUnk_08111928 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0806924C + pop {r4, pc} + .align 2, 0 +_08069144: .4byte gUnk_08111928 + + thumb_func_start sub_08069148 +sub_08069148: @ 0x08069148 + push {r4, lr} + adds r4, r0, #0 + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + adds r0, #3 + strb r0, [r4, #0xf] + movs r0, #1 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x14] + adds r1, #8 + adds r0, r4, #0 + bl sub_080042AC + pop {r4, pc} + + thumb_func_start sub_08069168 +sub_08069168: @ 0x08069168 + push {lr} + adds r2, r0, #0 + adds r0, #0x5a + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bge _08069186 + movs r0, #2 + strb r0, [r2, #0xd] + ldrb r1, [r2, #0x14] + adds r1, #0xc + adds r0, r2, #0 + bl sub_080042AC +_08069186: + pop {pc} + + thumb_func_start sub_08069188 +sub_08069188: @ 0x08069188 + push {lr} + adds r2, r0, #0 + adds r3, r2, #0 + adds r3, #0x5a + ldrb r1, [r3] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080691B8 + movs r0, #0 + strb r0, [r3] + ldrb r0, [r2, #0xf] + subs r0, #1 + strb r0, [r2, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080691B8 + movs r0, #3 + strb r0, [r2, #0xd] + ldrb r1, [r2, #0x14] + adds r1, #0x10 + adds r0, r2, #0 + bl sub_080042AC +_080691B8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080691BC +sub_080691BC: @ 0x080691BC + push {lr} + adds r2, r0, #0 + adds r0, #0x5a + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bge _080691DE + movs r1, #0 + movs r0, #1 + strb r0, [r2, #0xc] + strb r1, [r2, #0xd] + ldrb r1, [r2, #0x14] + adds r1, #4 + adds r0, r2, #0 + bl sub_080042AC +_080691DE: + pop {pc} + + thumb_func_start sub_080691E0 +sub_080691E0: @ 0x080691E0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _080691F4 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_080691F4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080691F8 +sub_080691F8: @ 0x080691F8 + push {lr} + ldrb r1, [r0, #0xa] + lsls r1, r1, #3 + ldr r2, _08069208 @ =gUnk_08111938 + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_08069208: .4byte gUnk_08111938 + + thumb_func_start sub_0806920C +sub_0806920C: @ 0x0806920C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _08069234 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + rsbs r0, r0, #0 + lsrs r5, r0, #0x1f + adds r0, r4, #0 + adds r0, #0x6d + ldrb r0, [r0] + cmp r5, r0 + beq _08069244 + cmp r5, #0 + bne _08069238 + adds r0, r4, #0 + bl sub_08078778 + b _08069244 + .align 2, 0 +_08069234: .4byte gUnk_03003F80 +_08069238: + adds r0, r4, #0 + adds r0, #0x6c + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080787A8 +_08069244: + adds r0, r4, #0 + adds r0, #0x6d + strb r5, [r0] + pop {r4, r5, pc} + + thumb_func_start sub_0806924C +sub_0806924C: @ 0x0806924C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x39 + movs r2, #0 + ldrsb r2, [r0, r2] + cmp r2, #0 + beq _0806929C + ldr r0, _08069278 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08069284 + cmp r2, #2 + bne _0806927C + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0806F118 + b _0806928E + .align 2, 0 +_08069278: .4byte gUnk_03003F80 +_0806927C: + adds r0, r4, #0 + bl sub_080691F8 + b _0806928E +_08069284: + adds r0, r4, #0 + bl sub_080691F8 + bl sub_080791D0 +_0806928E: + movs r0, #0xd4 + bl sub_080A3268 + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + strb r0, [r1] +_0806929C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080692A0 +sub_080692A0: @ 0x080692A0 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _080692C6 + adds r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + adds r0, r2, #0 + movs r1, #0xf + bl sub_080042AC + b _080692CC +_080692C6: + adds r0, r2, #0 + bl sub_080042B8 +_080692CC: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080692D0 +sub_080692D0: @ 0x080692D0 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080692F4 + ldr r0, _080692F0 @ =gUnk_08111A8C + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _0806930A + .align 2, 0 +_080692F0: .4byte gUnk_08111A8C +_080692F4: + ldr r0, _0806930C @ =gUnk_08111A80 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0806ED78 +_0806930A: + pop {r4, pc} + .align 2, 0 +_0806930C: .4byte gUnk_08111A80 + + thumb_func_start sub_08069310 +sub_08069310: @ 0x08069310 + push {r4, lr} + adds r4, r0, #0 + bl sub_08078778 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08069328 +sub_08069328: @ 0x08069328 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x10 + bls _0806934E + movs r0, #0 + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #0x28 + movs r2, #0x28 + bl sub_0806ED9C + cmp r0, #0 + blt _0806934E + strb r0, [r4, #0x14] +_0806934E: + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + ldrb r1, [r4, #0x14] + cmp r0, r1 + beq _08069362 + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_080042AC +_08069362: + adds r0, r4, #0 + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _0806938E + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0805E47C + adds r0, r4, #0 + movs r1, #8 + bl sub_080042AC + ldrb r0, [r4, #0xe] + movs r1, #0x90 + lsls r1, r1, #5 + adds r0, r0, r1 + bl sub_08056378 +_0806938E: + pop {r4, pc} + + thumb_func_start sub_08069390 +sub_08069390: @ 0x08069390 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldr r0, _080693C0 @ =gUnk_02000050 + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0 + bne _080693BC + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x39 + strb r1, [r0] + adds r0, r4, #0 + bl sub_0805E584 + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_080042AC +_080693BC: + pop {r4, pc} + .align 2, 0 +_080693C0: .4byte gUnk_02000050 + + thumb_func_start sub_080693C4 +sub_080693C4: @ 0x080693C4 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + bl sub_0807DD50 + pop {pc} + + thumb_func_start sub_080693D0 +sub_080693D0: @ 0x080693D0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r1, #0 + bl sub_0807DD94 + adds r0, r5, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #8 + bne _08069422 + adds r0, r5, #0 + adds r0, #0x82 + ldrh r0, [r0] + movs r1, #0xf + ands r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r6, r0, #0x1f + adds r4, r5, #0 + adds r4, #0x5a + ldrb r0, [r4] + cmp r0, #1 + bne _0806940C + movs r0, #0 + strb r0, [r4] + ldr r1, _08069424 @ =0xFFF80000 + adds r0, r5, #0 + adds r2, r6, #0 + bl sub_08069428 +_0806940C: + ldrb r0, [r4] + cmp r0, #2 + bne _08069422 + movs r0, #0 + strb r0, [r4] + movs r1, #0x80 + lsls r1, r1, #0xc + adds r0, r5, #0 + adds r2, r6, #0 + bl sub_08069428 +_08069422: + pop {r4, r5, r6, pc} + .align 2, 0 +_08069424: .4byte 0xFFF80000 + + thumb_func_start sub_08069428 +sub_08069428: @ 0x08069428 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r7, r1, #0 + adds r6, r2, #0 + movs r1, #4 + movs r2, #0 + bl sub_080A29AC + adds r4, r0, #0 + cmp r4, #0 + beq _08069452 + ldr r3, _0806947C @ =0xFFF00000 + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r7, #0 + bl sub_0806FA48 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAB0 +_08069452: + cmp r6, #0 + beq _0806947A + adds r0, r5, #0 + movs r1, #0x41 + movs r2, #0 + bl sub_080A29AC + adds r4, r0, #0 + cmp r4, #0 + beq _0806947A + ldr r3, _0806947C @ =0xFFF00000 + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r7, #0 + bl sub_0806FA48 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAB0 +_0806947A: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806947C: .4byte 0xFFF00000 + + thumb_func_start sub_08069480 +sub_08069480: @ 0x08069480 + push {lr} + bl sub_0801E99C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {pc} + + thumb_func_start sub_0806948C +sub_0806948C: @ 0x0806948C + push {r4, lr} + adds r4, r1, #0 + bl sub_08069480 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_0801E7F4 + str r0, [r4, #0x14] + ldr r2, _080694AC @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, pc} + .align 2, 0 +_080694AC: .4byte gUnk_02033280 + + thumb_func_start sub_080694B0 +sub_080694B0: @ 0x080694B0 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08069480 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r5, #0 + bl sub_0801E7F4 + cmp r0, #0 + beq _080694CE + adds r0, r4, #0 + bl sub_08078778 + b _080694D6 +_080694CE: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08078784 +_080694D6: + pop {r4, r5, pc} + + thumb_func_start sub_080694D8 +sub_080694D8: @ 0x080694D8 + push {lr} + ldrb r1, [r0, #0xa] + lsls r1, r1, #3 + ldr r2, _080694E8 @ =gUnk_08111A94 + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_080694E8: .4byte gUnk_08111A94 + + thumb_func_start sub_080694EC +sub_080694EC: @ 0x080694EC + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #4 + strb r0, [r4, #0x14] + movs r5, #2 + movs r0, #0x2f + bl sub_0801E7F4 + cmp r0, #0 + bne _08069502 + movs r5, #8 +_08069502: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080042AC + adds r0, r4, #0 + adds r0, #0x80 + strh r5, [r0] + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08069514 +sub_08069514: @ 0x08069514 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _0806953A + adds r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + adds r0, r2, #0 + movs r1, #2 + bl sub_080042AC + b _08069540 +_0806953A: + adds r0, r2, #0 + bl sub_080042B8 +_08069540: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08069544 +sub_08069544: @ 0x08069544 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08069568 + ldr r0, _08069564 @ =gUnk_08111B98 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _0806957E + .align 2, 0 +_08069564: .4byte gUnk_08111B98 +_08069568: + ldr r0, _08069580 @ =gUnk_08111B88 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0806ED78 +_0806957E: + pop {r4, pc} + .align 2, 0 +_08069580: .4byte gUnk_08111B88 + + thumb_func_start sub_08069584 +sub_08069584: @ 0x08069584 + push {lr} + adds r1, r0, #0 + ldr r0, _08069598 @ =gUnk_030010A0 + adds r0, #0x2c + ldrb r0, [r0] + cmp r0, #0 + beq _0806959C + movs r0, #3 + b _0806959E + .align 2, 0 +_08069598: .4byte gUnk_030010A0 +_0806959C: + movs r0, #1 +_0806959E: + strb r0, [r1, #0xc] + adds r0, r1, #0 + movs r1, #2 + bl sub_080042AC + pop {pc} + .align 2, 0 + + thumb_func_start sub_080695AC +sub_080695AC: @ 0x080695AC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x10 + bls _080695D2 + movs r0, #0 + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #0x28 + movs r2, #0x28 + bl sub_0806ED9C + cmp r0, #0 + blt _080695D2 + strb r0, [r4, #0x14] +_080695D2: + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + ldrb r1, [r4, #0x14] + cmp r0, r1 + beq _080695E6 + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_080042AC +_080695E6: + pop {r4, pc} + + thumb_func_start sub_080695E8 +sub_080695E8: @ 0x080695E8 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldr r0, _08069618 @ =gUnk_02000050 + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0 + bne _08069614 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x39 + strb r1, [r0] + adds r0, r4, #0 + bl sub_0805E584 + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_080042AC +_08069614: + pop {r4, pc} + .align 2, 0 +_08069618: .4byte gUnk_02000050 + + thumb_func_start sub_0806961C +sub_0806961C: @ 0x0806961C + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08069638 @ =gUnk_030010A0 + adds r0, #0x2c + ldrb r0, [r0] + cmp r0, #2 + bne _08069630 + adds r0, r4, #0 + bl sub_080042B8 +_08069630: + adds r0, r4, #0 + bl sub_0806FD3C + pop {r4, pc} + .align 2, 0 +_08069638: .4byte gUnk_030010A0 + + thumb_func_start sub_0806963C +sub_0806963C: @ 0x0806963C + push {lr} + movs r3, #1 + movs r1, #1 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x18] + subs r1, #5 + ands r1, r2 + orrs r1, r3 + strb r1, [r0, #0x18] + bl sub_0807DD50 + pop {pc} + + thumb_func_start sub_08069654 +sub_08069654: @ 0x08069654 + push {lr} + movs r1, #0 + bl sub_0807DD94 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08069660 +sub_08069660: @ 0x08069660 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0806967C @ =0x00002C1C + adds r1, r4, #0 + bl sub_08056398 + adds r0, r4, #0 + bl sub_080696BC + ldr r1, _08069680 @ =gUnk_02000050 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [r1, #0x10] + pop {r4, pc} + .align 2, 0 +_0806967C: .4byte 0x00002C1C +_08069680: .4byte gUnk_02000050 + + thumb_func_start sub_08069684 +sub_08069684: @ 0x08069684 + push {lr} + movs r0, #9 + movs r1, #0x31 + movs r2, #8 + bl sub_0805EB00 + cmp r0, #0 + bne _080696AE + bl sub_0805E8D4 + adds r1, r0, #0 + cmp r1, #0 + beq _080696AE + movs r0, #9 + strb r0, [r1, #8] + movs r0, #0x31 + strb r0, [r1, #9] + adds r0, r1, #0 + movs r1, #8 + bl sub_0805EA2C +_080696AE: + pop {pc} + + thumb_func_start sub_080696B0 +sub_080696B0: @ 0x080696B0 + ldr r1, _080696B8 @ =gUnk_02034350 + movs r0, #0 + strb r0, [r1, #6] + bx lr + .align 2, 0 +_080696B8: .4byte gUnk_02034350 + + thumb_func_start sub_080696BC +sub_080696BC: @ 0x080696BC + push {r4, r5, lr} + ldr r0, _08069710 @ =gUnk_02034350 + ldrb r0, [r0, #7] + movs r5, #0 + cmp r0, #0x70 + ble _080696CA + movs r5, #1 +_080696CA: + cmp r0, #0x72 + ble _080696D0 + movs r5, #2 +_080696D0: + movs r0, #0x3e + bl sub_0807CC30 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r4, r1, #0x1f + movs r0, #0x3f + bl sub_0807CC30 + cmp r0, #0 + beq _080696E8 + movs r4, #2 +_080696E8: + movs r0, #0x40 + bl sub_0807CC30 + cmp r0, #0 + beq _080696F4 + movs r4, #3 +_080696F4: + movs r0, #0x41 + bl sub_0807CC30 + cmp r0, #0 + beq _08069700 + movs r4, #4 +_08069700: + ldr r0, _08069714 @ =gUnk_08111BA0 + lsls r1, r4, #1 + adds r1, r1, r4 + adds r1, r1, r5 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + pop {r4, r5, pc} + .align 2, 0 +_08069710: .4byte gUnk_02034350 +_08069714: .4byte gUnk_08111BA0 + + thumb_func_start sub_08069718 +sub_08069718: @ 0x08069718 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r7, r1, #0 + bl sub_080696BC + adds r6, r0, #0 + ldr r0, _08069754 @ =gUnk_02002A40 + adds r0, #0xc0 + ldrh r0, [r0] + cmp r6, r0 + bgt _08069764 + ldr r5, _08069758 @ =gUnk_02034350 + ldrb r0, [r5, #7] + bl sub_0801E7D0 + cmp r0, #0x62 + bhi _0806975C + rsbs r0, r6, #0 + bl sub_080526CC + ldrb r1, [r5, #7] + movs r0, #0x5c + movs r2, #0 + bl sub_080A7C18 + movs r0, #0 + strb r0, [r5, #6] + strb r0, [r5, #7] + movs r0, #1 + b _0806976E + .align 2, 0 +_08069754: .4byte gUnk_02002A40 +_08069758: .4byte gUnk_02034350 +_0806975C: + ldr r0, _08069760 @ =0x00002C1F + b _08069766 + .align 2, 0 +_08069760: .4byte 0x00002C1F +_08069764: + ldr r0, _0806977C @ =0x00002C1E +_08069766: + adds r1, r4, #0 + bl sub_08056398 + movs r0, #0 +_0806976E: + str r0, [r7, #0x14] + ldr r2, _08069780 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806977C: .4byte 0x00002C1E +_08069780: .4byte gUnk_02033280 + + thumb_func_start sub_08069784 +sub_08069784: @ 0x08069784 + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0806979A + adds r0, r2, #0 + bl sub_08069838 + b _080697A0 +_0806979A: + adds r0, r2, #0 + bl sub_080697A4 +_080697A0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080697A4 +sub_080697A4: @ 0x080697A4 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080697C0 @ =gUnk_08111C48 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0806ED78 + pop {r4, pc} + .align 2, 0 +_080697C0: .4byte gUnk_08111C48 + + thumb_func_start sub_080697C4 +sub_080697C4: @ 0x080697C4 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080697E8 @ =gUnk_08111C3C + bl sub_0806FDEC + cmp r0, #0 + beq _080697E4 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08078778 +_080697E4: + pop {r4, pc} + .align 2, 0 +_080697E8: .4byte gUnk_08111C3C + + thumb_func_start sub_080697EC +sub_080697EC: @ 0x080697EC + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x20 + movs r2, #0x20 + bl sub_0806ED9C + adds r1, r0, #0 + cmp r1, #0 + blt _0806981E + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _0806981A + movs r0, #0x10 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, r1 + beq _0806981E + adds r0, r4, #0 + bl sub_08004260 + b _0806981E +_0806981A: + subs r0, #1 + strb r0, [r4, #0xf] +_0806981E: + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08069834 + movs r0, #0 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08069888 +_08069834: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08069838 +sub_08069838: @ 0x08069838 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xc] + cmp r5, #0 + bne _08069862 + ldr r1, _08069884 @ =gUnk_08111C3C + bl sub_0806FDEC + cmp r0, #0 + beq _08069880 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x68 + strb r5, [r0] + adds r0, #1 + strb r5, [r0] + adds r0, r4, #0 + bl sub_0807DD64 +_08069862: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08069880 + movs r0, #0 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08069888 +_08069880: + pop {r4, r5, pc} + .align 2, 0 +_08069884: .4byte gUnk_08111C3C + + thumb_func_start sub_08069888 +sub_08069888: @ 0x08069888 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x47 + bl sub_0807CC30 + cmp r0, #0 + bne _080698A0 + movs r4, #0 + movs r0, #0x47 + bl sub_0807CD04 + b _08069906 +_080698A0: + movs r0, #0x2b + bl sub_0807CC30 + cmp r0, #0 + bne _080698C2 + movs r0, #0x2c + bl sub_0807CC30 + cmp r0, #0 + bne _080698C2 + movs r0, #0x2d + bl sub_0807CC30 + cmp r0, #0 + bne _080698C2 + movs r4, #1 + b _08069906 +_080698C2: + movs r0, #0x18 + bl sub_0807CC30 + cmp r0, #0 + bne _080698D0 + movs r4, #2 + b _08069906 +_080698D0: + movs r0, #0x48 + bl sub_0807CC30 + cmp r0, #0 + bne _080698E4 + movs r4, #3 + movs r0, #0x48 + bl sub_0807CD04 + b _08069906 +_080698E4: + movs r0, #0x2e + bl sub_0807CC30 + cmp r0, #0 + bne _08069904 + movs r0, #0x2f + bl sub_0807CC30 + cmp r0, #0 + bne _08069904 + movs r0, #0x30 + bl sub_0807CC30 + movs r4, #4 + cmp r0, #0 + beq _08069906 +_08069904: + movs r4, #5 +_08069906: + ldr r0, _08069918 @ =gUnk_08111C50 + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl sub_08056398 + pop {r4, r5, pc} + .align 2, 0 +_08069918: .4byte gUnk_08111C50 + + thumb_func_start sub_0806991C +sub_0806991C: @ 0x0806991C + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r1, #0 + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x3c + adds r1, r5, #0 + adds r1, #0x68 + movs r3, #0 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x69 + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r1, r1, #2 + ldr r0, _0806999C @ =gUnk_08111C5C + adds r1, r1, r0 + ldr r2, _080699A0 @ =gUnk_03000BF0 + ldrh r0, [r1] + ldrh r6, [r2, #6] + adds r0, r0, r6 + strh r0, [r4, #0x1e] + ldrh r0, [r1, #2] + ldrh r2, [r2, #8] + adds r0, r0, r2 + strh r0, [r4, #0x22] + movs r0, #8 + strb r0, [r4, #0x19] + ldr r0, [r4, #8] + movs r1, #2 + orrs r0, r1 + str r0, [r4, #8] + str r3, [r4, #0x14] + movs r1, #0x1e + ldrsh r0, [r4, r1] + movs r2, #0x2e + ldrsh r1, [r5, r2] + subs r0, r0, r1 + movs r3, #0x22 + ldrsh r1, [r4, r3] + movs r6, #0x32 + ldrsh r2, [r5, r6] + subs r1, r1, r2 + bl sub_080045DA + strb r0, [r5, #0x15] + ldrb r2, [r5, #0x14] + movs r1, #0x80 + ands r1, r2 + ldr r2, _080699A4 @ =gUnk_08111C74 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1c + adds r0, r0, r2 + ldrb r0, [r0] + orrs r1, r0 + strb r1, [r5, #0x14] + ldr r2, _080699A8 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, r5, r6, pc} + .align 2, 0 +_0806999C: .4byte gUnk_08111C5C +_080699A0: .4byte gUnk_03000BF0 +_080699A4: .4byte gUnk_08111C74 +_080699A8: .4byte gUnk_02033280 + + thumb_func_start sub_080699AC +sub_080699AC: @ 0x080699AC + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r1, #0 + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x3c + adds r1, r5, #0 + adds r1, #0x68 + movs r3, #0 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x69 + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r1, r1, #2 + ldr r0, _08069A2C @ =gUnk_08111C84 + adds r1, r1, r0 + ldr r2, _08069A30 @ =gUnk_03000BF0 + ldrh r0, [r1] + ldrh r6, [r2, #6] + adds r0, r0, r6 + strh r0, [r4, #0x1e] + ldrh r0, [r1, #2] + ldrh r2, [r2, #8] + adds r0, r0, r2 + strh r0, [r4, #0x22] + movs r0, #8 + strb r0, [r4, #0x19] + ldr r0, [r4, #8] + movs r1, #2 + orrs r0, r1 + str r0, [r4, #8] + str r3, [r4, #0x14] + movs r1, #0x1e + ldrsh r0, [r4, r1] + movs r2, #0x2e + ldrsh r1, [r5, r2] + subs r0, r0, r1 + movs r3, #0x22 + ldrsh r1, [r4, r3] + movs r6, #0x32 + ldrsh r2, [r5, r6] + subs r1, r1, r2 + bl sub_080045DA + strb r0, [r5, #0x15] + ldrb r2, [r5, #0x14] + movs r1, #0x80 + ands r1, r2 + ldr r2, _08069A34 @ =gUnk_08111C8C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1c + adds r0, r0, r2 + ldrb r0, [r0] + orrs r1, r0 + strb r1, [r5, #0x14] + ldr r2, _08069A38 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, r5, r6, pc} + .align 2, 0 +_08069A2C: .4byte gUnk_08111C84 +_08069A30: .4byte gUnk_03000BF0 +_08069A34: .4byte gUnk_08111C8C +_08069A38: .4byte gUnk_02033280 + + thumb_func_start sub_08069A3C +sub_08069A3C: @ 0x08069A3C + push {r4, lr} + adds r4, r0, #0 + bl sub_08000E50 + ldr r2, _08069A5C @ =gUnk_08111C9C + movs r1, #1 + ands r1, r0 + adds r4, #0x69 + movs r0, #0 + ldrsb r0, [r4, r0] + lsls r0, r0, #1 + adds r1, r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_08069A5C: .4byte gUnk_08111C9C + + thumb_func_start sub_08069A60 +sub_08069A60: @ 0x08069A60 + push {r4, lr} + adds r4, r0, #0 + bl sub_08000E50 + ldr r2, _08069A80 @ =gUnk_08111CA8 + movs r1, #1 + ands r1, r0 + adds r4, #0x69 + movs r0, #0 + ldrsb r0, [r4, r0] + lsls r0, r0, #1 + adds r1, r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_08069A80: .4byte gUnk_08111CA8 + + thumb_func_start sub_08069A84 +sub_08069A84: @ 0x08069A84 + push {r4, lr} + adds r4, r0, #0 + bl sub_08000E50 + ldr r2, _08069AA4 @ =gUnk_08111CB4 + movs r1, #1 + ands r1, r0 + adds r4, #0x69 + movs r0, #0 + ldrsb r0, [r4, r0] + lsls r0, r0, #1 + adds r1, r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_08069AA4: .4byte gUnk_08111CB4 + + thumb_func_start sub_08069AA8 +sub_08069AA8: @ 0x08069AA8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08000E50 + ldr r2, _08069AC8 @ =gUnk_08111CB8 + movs r1, #1 + ands r1, r0 + adds r4, #0x69 + movs r0, #0 + ldrsb r0, [r4, r0] + lsls r0, r0, #1 + adds r1, r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_08069AC8: .4byte gUnk_08111CB8 + + thumb_func_start sub_08069ACC +sub_08069ACC: @ 0x08069ACC + push {lr} + adds r2, r1, #0 + adds r0, #0x68 + ldrb r1, [r0] + subs r1, #1 + strb r1, [r0] + lsls r1, r1, #0x18 + cmp r1, #0 + bgt _08069AE2 + movs r0, #1 + b _08069AE4 +_08069AE2: + movs r0, #0 +_08069AE4: + str r0, [r2, #0x14] + pop {pc} + + thumb_func_start sub_08069AE8 +sub_08069AE8: @ 0x08069AE8 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r2, #7 + ands r2, r0 + adds r2, #0xf + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08069B1C +sub_08069B1C: @ 0x08069B1C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08069B40 @ =gUnk_08111D88 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0806ED78 + adds r0, r4, #0 + bl sub_08069FE8 + pop {r4, pc} + .align 2, 0 +_08069B40: .4byte gUnk_08111D88 + + thumb_func_start sub_08069B44 +sub_08069B44: @ 0x08069B44 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_08069EF0 + cmp r0, #0 + beq _08069C30 + adds r0, r5, #0 + bl sub_0805ACC0 + cmp r0, #0 + bne _08069B64 + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r2, #0x32 + ldrsh r4, [r5, r2] + b _08069B68 +_08069B64: + lsrs r1, r0, #0x10 + adds r4, r0, #0 +_08069B68: + ldrb r0, [r5, #0xe] + movs r3, #0x20 + cmp r0, #0 + beq _08069B72 + adds r3, r0, #0 +_08069B72: + subs r0, r1, r3 + adds r2, r5, #0 + adds r2, #0x6e + strh r0, [r2] + adds r1, r1, r3 + adds r0, r5, #0 + adds r0, #0x6c + strh r1, [r0] + adds r1, r4, #0 + subs r1, #8 + adds r0, #4 + strh r1, [r0] + adds r0, r4, #0 + adds r0, #8 + adds r2, #4 + strh r0, [r2] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r5, #0x24] + movs r0, #0x1e + strb r0, [r5, #0xe] + movs r4, #2 + strb r4, [r5, #0x14] + adds r1, r5, #0 + adds r1, #0x6a + movs r0, #0xff + strb r0, [r1] + adds r0, r5, #0 + bl sub_0801E99C + adds r1, r5, #0 + adds r1, #0x74 + strb r0, [r1] + adds r0, r5, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r5, #0 + movs r1, #0xa + bl sub_080042AC + ldrb r0, [r5, #0x10] + ands r4, r0 + cmp r4, #0 + beq _08069BD2 + adds r0, r5, #0 + bl sub_0807DD50 +_08069BD2: + ldrb r0, [r5, #0xa] + cmp r0, #0 + bne _08069BF2 + ldr r0, _08069C34 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08069BF2 + movs r0, #0x36 + bl sub_0807CA84 + cmp r0, #2 + beq _08069BF2 + movs r0, #4 + strb r0, [r5, #0xc] +_08069BF2: + ldrb r0, [r5, #0xa] + cmp r0, #2 + bne _08069C30 + movs r0, #0xcf + bl sub_0807CBD0 + cmp r0, #0 + bne _08069C30 + ldr r0, _08069C38 @ =0x00004072 + movs r6, #0x2e + ldrsh r1, [r5, r6] + ldr r3, _08069C3C @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + adds r3, #8 + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E +_08069C30: + pop {r4, r5, r6, pc} + .align 2, 0 +_08069C34: .4byte gUnk_03003F80 +_08069C38: .4byte 0x00004072 +_08069C3C: .4byte gUnk_03000BF0 + + thumb_func_start sub_08069C40 +sub_08069C40: @ 0x08069C40 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_08069F90 + cmp r0, #0 + beq _08069C80 + ldr r0, _08069C68 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08069C6C + adds r0, r4, #0 + bl sub_08069CB8 + b _08069C7A + .align 2, 0 +_08069C68: .4byte gUnk_03003F80 +_08069C6C: + adds r0, r4, #0 + bl sub_0806EDC4 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_08069D00 +_08069C7A: + movs r0, #0x1e + strb r0, [r4, #0xe] + b _08069CB2 +_08069C80: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08069CB2 + movs r0, #2 + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x1e + strb r0, [r4, #0xe] + bl sub_08000E50 + ldr r2, _08069CB4 @ =gUnk_08111DA8 + movs r1, #7 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_08069F6C +_08069CB2: + pop {r4, pc} + .align 2, 0 +_08069CB4: .4byte gUnk_08111DA8 + + thumb_func_start sub_08069CB8 +sub_08069CB8: @ 0x08069CB8 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r1, _08069CF8 @ =gUnk_03001160 + bl sub_080045C4 + ldr r2, _08069CFC @ =gUnk_08111DB0 + ldrb r1, [r4, #0x14] + lsls r1, r1, #5 + adds r0, r0, r1 + adds r0, r0, r2 + ldrb r1, [r0] + lsrs r0, r1, #6 + strb r0, [r4, #0x14] + movs r0, #0x3f + ands r1, r0 + adds r5, r4, #0 + adds r5, #0x6b + strb r1, [r5] + adds r0, r4, #0 + bl sub_0806A028 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + ldrb r1, [r5] + cmp r0, r1 + beq _08069CF6 + ldrb r1, [r5] + adds r0, r4, #0 + bl sub_080042AC +_08069CF6: + pop {r4, r5, pc} + .align 2, 0 +_08069CF8: .4byte gUnk_03001160 +_08069CFC: .4byte gUnk_08111DB0 + + thumb_func_start sub_08069D00 +sub_08069D00: @ 0x08069D00 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x6b + movs r7, #8 + strb r7, [r5] + bl sub_0806A028 + adds r6, r4, #0 + adds r6, #0x58 + ldrb r0, [r6] + cmp r0, #0x1f + bls _08069D2A + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08069D4E + strb r7, [r5] +_08069D2A: + bl sub_08000E50 + ldr r1, _08069D50 @ =0x000001FF + ands r1, r0 + cmp r1, #2 + bhi _08069D3C + adds r0, r4, #0 + bl sub_08069FBC +_08069D3C: + ldrb r2, [r6] + ldrb r1, [r5] + ldrb r0, [r4, #0x14] + adds r1, r1, r0 + cmp r2, r1 + beq _08069D4E + adds r0, r4, #0 + bl sub_080042AC +_08069D4E: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08069D50: .4byte 0x000001FF + + thumb_func_start sub_08069D54 +sub_08069D54: @ 0x08069D54 + push {r4, lr} + adds r4, r0, #0 + bl sub_08069F90 + cmp r0, #0 + bne _08069DD8 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08069DD8 + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_080AEF88 + ldrh r1, [r4, #0x2a] + movs r0, #0x2e + ldrsh r2, [r4, r0] + adds r0, r4, #0 + adds r0, #0x6e + ldrh r0, [r0] + cmp r2, r0 + bge _08069D92 + adds r0, #1 + strh r0, [r4, #0x2e] + movs r1, #0xe0 + lsls r1, r1, #4 + b _08069DA4 +_08069D92: + adds r0, r4, #0 + adds r0, #0x6c + ldrh r0, [r0] + cmp r2, r0 + ble _08069DA4 + subs r0, #1 + strh r0, [r4, #0x2e] + movs r1, #0xe0 + lsls r1, r1, #8 +_08069DA4: + movs r0, #0x32 + ldrsh r2, [r4, r0] + adds r0, r4, #0 + adds r0, #0x70 + ldrh r0, [r0] + cmp r2, r0 + bge _08069DBA + adds r0, #1 + strh r0, [r4, #0x32] + movs r1, #0xe + b _08069DCA +_08069DBA: + adds r0, r4, #0 + adds r0, #0x72 + ldrh r0, [r0] + cmp r2, r0 + ble _08069DCA + subs r0, #1 + strh r0, [r4, #0x32] + movs r1, #0xe0 +_08069DCA: + adds r0, r4, #0 + bl sub_0800417E + adds r0, r4, #0 + bl sub_08069F6C + b _08069DF6 +_08069DD8: + adds r0, r4, #0 + bl sub_08069F90 + cmp r0, #0 + beq _08069DE6 + movs r0, #1 + b _08069DE8 +_08069DE6: + movs r0, #3 +_08069DE8: + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x1e + strb r0, [r4, #0xe] +_08069DF6: + pop {r4, pc} + + thumb_func_start sub_08069DF8 +sub_08069DF8: @ 0x08069DF8 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_08069F90 + cmp r0, #0 + beq _08069E0E + movs r0, #1 + b _08069E34 +_08069E0E: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08069E22 + adds r0, r4, #0 + bl sub_08069D00 + b _08069E42 +_08069E22: + bl sub_08000E50 + movs r1, #0xff + ands r1, r0 + cmp r1, #0x2f + bhi _08069E32 + movs r0, #2 + b _08069E34 +_08069E32: + movs r0, #3 +_08069E34: + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x1e + strb r0, [r4, #0xe] +_08069E42: + pop {r4, pc} + + thumb_func_start sub_08069E44 +sub_08069E44: @ 0x08069E44 + push {lr} + movs r1, #0 + bl sub_0807DD94 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08069E50 +sub_08069E50: @ 0x08069E50 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + bl sub_0806EDC4 + strb r0, [r4, #0x14] + adds r5, r4, #0 + adds r5, #0x6b + movs r7, #8 + strb r7, [r5] + adds r0, r4, #0 + bl sub_0806A028 + adds r0, r4, #0 + bl sub_080042B8 + adds r6, r4, #0 + adds r6, #0x58 + ldrb r0, [r6] + cmp r0, #0x1f + bls _08069E88 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08069EC8 + strb r7, [r5] +_08069E88: + adds r0, r4, #0 + bl sub_08069FBC + ldrb r2, [r6] + ldrb r1, [r5] + ldrb r0, [r4, #0x14] + adds r1, r1, r0 + cmp r2, r1 + beq _08069EA0 + adds r0, r4, #0 + bl sub_080042AC +_08069EA0: + movs r0, #0x36 + bl sub_0807CA84 + cmp r0, #2 + bne _08069EC8 + movs r0, #7 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0x29 + bl sub_080042AC + adds r0, r4, #0 + bl sub_080788E0 + movs r0, #0xd1 + bl sub_08004488 + movs r0, #0xcd + bl sub_08004488 +_08069EC8: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08069ECC +sub_08069ECC: @ 0x08069ECC + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08069EDC + movs r0, #1 + strb r0, [r4, #0xc] +_08069EDC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08069EE0 +sub_08069EE0: @ 0x08069EE0 + push {lr} + bl sub_080042B8 + pop {pc} + + thumb_func_start sub_08069EE8 +sub_08069EE8: @ 0x08069EE8 + movs r1, #5 + strb r1, [r0, #0xc] + bx lr + .align 2, 0 + + thumb_func_start sub_08069EF0 +sub_08069EF0: @ 0x08069EF0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _08069F20 @ =gUnk_08111D58 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _08069F28 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r1, _08069F24 @ =gUnk_08111E30 + ldrb r0, [r4, #0xa] + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x68 + strh r1, [r0] + movs r0, #1 + b _08069F2A + .align 2, 0 +_08069F20: .4byte gUnk_08111D58 +_08069F24: .4byte gUnk_08111E30 +_08069F28: + movs r0, #0 +_08069F2A: + pop {r4, pc} + + thumb_func_start sub_08069F2C +sub_08069F2C: @ 0x08069F2C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r2, [r0] + movs r0, #0x81 + rsbs r0, r0, #0 + ands r2, r0 + cmp r2, #0 + beq _08069F46 + adds r0, r4, #0 + adds r0, #0x68 + ldrh r0, [r0] + adds r2, r2, r0 +_08069F46: + subs r2, #1 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + pop {r4, pc} + + thumb_func_start sub_08069F6C +sub_08069F6C: @ 0x08069F6C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x15] + bl sub_0806F5A4 + strb r0, [r4, #0x14] + ldrb r0, [r4, #0x14] + adds r1, r0, #4 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r1, r0 + beq _08069F8C + adds r0, r4, #0 + bl sub_080042AC +_08069F8C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08069F90 +sub_08069F90: @ 0x08069F90 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #2 + bne _08069FA8 + movs r0, #0xcf + bl sub_0807CBD0 + cmp r0, #0 + bne _08069FA8 + movs r0, #1 + b _08069FB4 +_08069FA8: + ldr r1, _08069FB8 @ =gUnk_03001160 + adds r0, r4, #0 + movs r2, #0x14 + movs r3, #0x14 + bl sub_080041A0 +_08069FB4: + pop {r4, pc} + .align 2, 0 +_08069FB8: .4byte gUnk_03001160 + + thumb_func_start sub_08069FBC +sub_08069FBC: @ 0x08069FBC + push {lr} + adds r2, r0, #0 + ldr r0, _08069FE4 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + movs r1, #0x20 + cmp r0, #0 + beq _08069FD0 + movs r1, #0x24 +_08069FD0: + ldrb r0, [r2, #0x14] + cmp r0, #1 + beq _08069FDA + cmp r0, #3 + bne _08069FE0 +_08069FDA: + adds r0, r2, #0 + adds r0, #0x6b + strb r1, [r0] +_08069FE0: + pop {pc} + .align 2, 0 +_08069FE4: .4byte gUnk_03003F80 + + thumb_func_start sub_08069FE8 +sub_08069FE8: @ 0x08069FE8 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _0806A010 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + rsbs r0, r0, #0 + lsrs r5, r0, #0x1f + adds r0, r4, #0 + adds r0, #0x6a + ldrb r0, [r0] + cmp r5, r0 + beq _0806A020 + cmp r5, #0 + bne _0806A014 + adds r0, r4, #0 + bl sub_08078778 + b _0806A020 + .align 2, 0 +_0806A010: .4byte gUnk_03003F80 +_0806A014: + adds r0, r4, #0 + adds r0, #0x74 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080787A8 +_0806A020: + adds r0, r4, #0 + adds r0, #0x6a + strb r5, [r0] + pop {r4, r5, pc} + + thumb_func_start sub_0806A028 +sub_0806A028: @ 0x0806A028 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x39 + movs r2, #0 + ldrsb r2, [r0, r2] + cmp r2, #0 + beq _0806A07E + ldr r0, _0806A054 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806A060 + cmp r2, #2 + bne _0806A058 + movs r0, #6 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0806F118 + b _0806A076 + .align 2, 0 +_0806A054: .4byte gUnk_03003F80 +_0806A058: + adds r0, r4, #0 + bl sub_0806A080 + b _0806A076 +_0806A060: + adds r0, r4, #0 + bl sub_08069FBC + adds r0, r4, #0 + bl sub_0806A080 + movs r0, #0xd1 + bl sub_080A3268 + bl sub_080791D0 +_0806A076: + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + strb r0, [r1] +_0806A07E: + pop {r4, pc} + + thumb_func_start sub_0806A080 +sub_0806A080: @ 0x0806A080 + push {lr} + ldrb r2, [r0, #0xb] + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #4 + ldr r2, _0806A09C @ =gUnk_02002A40 + ldrb r2, [r2, #8] + lsls r2, r2, #3 + ldr r3, _0806A0A0 @ =gUnk_08111E34 + adds r2, r2, r3 + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806A09C: .4byte gUnk_02002A40 +_0806A0A0: .4byte gUnk_08111E34 + + thumb_func_start sub_0806A0A4 +sub_0806A0A4: @ 0x0806A0A4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r0, _0806A0F8 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806A100 + movs r5, #4 + movs r0, #0xcf + bl sub_0807CBD0 + cmp r0, #0 + bne _0806A120 + movs r5, #3 + movs r0, #0xcf + bl sub_0807CCB4 + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _0806A0FC @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r6, #0x32 + ldrsh r1, [r4, r6] + ldrh r2, [r2, #8] + adds r2, #8 + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_0807BA8C + b _0806A120 + .align 2, 0 +_0806A0F8: .4byte gUnk_03003F80 +_0806A0FC: .4byte gUnk_03000BF0 +_0806A100: + movs r5, #2 + movs r0, #0xcf + bl sub_0807CBD0 + cmp r0, #0 + bne _0806A120 + movs r5, #1 + movs r0, #0xdb + bl sub_0807CBD0 + cmp r0, #0 + bne _0806A120 + movs r5, #0 + movs r0, #0xdb + bl sub_0807CCB4 +_0806A120: + ldr r2, _0806A13C @ =gUnk_08111F74 + ldr r0, _0806A140 @ =gUnk_02002A40 + ldrb r1, [r0, #8] + lsls r0, r1, #2 + adds r0, r0, r1 + adds r0, r0, r5 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + adds r1, r4, #0 + bl sub_08056398 + pop {r4, r5, r6, pc} + .align 2, 0 +_0806A13C: .4byte gUnk_08111F74 +_0806A140: .4byte gUnk_02002A40 + + thumb_func_start sub_0806A144 +sub_0806A144: @ 0x0806A144 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #4 + ldr r0, _0806A18C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806A17A + movs r4, #3 + movs r0, #0x46 + bl sub_0807CA84 + cmp r0, #0 + bne _0806A17A + movs r0, #0x29 + bl sub_0807CC30 + cmp r0, #0 + beq _0806A17A + movs r0, #0x85 + bl sub_0807CBD0 + movs r4, #2 + cmp r0, #0 + bne _0806A17A + movs r4, #1 +_0806A17A: + ldr r0, _0806A190 @ =gUnk_08111FD8 + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl sub_08056398 + pop {r4, r5, pc} + .align 2, 0 +_0806A18C: .4byte gUnk_03003F80 +_0806A190: .4byte gUnk_08111FD8 + + thumb_func_start sub_0806A194 +sub_0806A194: @ 0x0806A194 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806A1CE + adds r0, r4, #0 + bl sub_08069EF0 + cmp r0, #0 + beq _0806A1D4 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #0x23 + bl sub_08004260 + b _0806A1D4 +_0806A1CE: + adds r0, r4, #0 + bl sub_08004274 +_0806A1D4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806A1D8 +sub_0806A1D8: @ 0x0806A1D8 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0806A1F4 @ =gUnk_081121D4 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0806ED78 + pop {r4, pc} + .align 2, 0 +_0806A1F4: .4byte gUnk_081121D4 + + thumb_func_start sub_0806A1F8 +sub_0806A1F8: @ 0x0806A1F8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + ldr r1, _0806A22C @ =gUnk_081121C4 + cmp r0, #0 + bne _0806A206 + ldr r1, _0806A230 @ =gUnk_081121B4 +_0806A206: + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806A22A + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD50 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_0806A22A: + pop {r4, pc} + .align 2, 0 +_0806A22C: .4byte gUnk_081121C4 +_0806A230: .4byte gUnk_081121B4 + + thumb_func_start sub_0806A234 +sub_0806A234: @ 0x0806A234 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + bl sub_0807DD94 + adds r0, r4, #0 + adds r0, #0x82 + ldrh r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0806A266 + ldr r0, _0806A268 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _0806A25E + adds r0, r4, #0 + bl sub_0806A26C +_0806A25E: + adds r0, r4, #0 + movs r1, #2 + bl sub_080042BA +_0806A266: + pop {r4, pc} + .align 2, 0 +_0806A268: .4byte gUnk_030010A0 + + thumb_func_start sub_0806A26C +sub_0806A26C: @ 0x0806A26C + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0xf + movs r1, #0x2f + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _0806A2AE + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA30 + bl sub_08000E50 + adds r5, r0, #0 + ldr r2, _0806A2B0 @ =gUnk_081121DC + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + adds r3, r4, #0 + adds r3, #0x62 + strb r0, [r3] + lsrs r0, r5, #8 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + subs r0, #8 + adds r1, r4, #0 + adds r1, #0x63 + strb r0, [r1] +_0806A2AE: + pop {r4, r5, pc} + .align 2, 0 +_0806A2B0: .4byte gUnk_081121DC + + thumb_func_start sub_0806A2B4 +sub_0806A2B4: @ 0x0806A2B4 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + adds r5, r0, #0 + adds r0, #0x5b + ldrb r0, [r0] + movs r1, #1 + mov sb, r1 + mov r2, sb + ands r2, r0 + mov sb, r2 + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + lsrs r0, r1, #4 + mov r8, r0 + movs r0, #7 + mov r2, r8 + ands r2, r0 + mov r8, r2 + movs r6, #7 + ands r6, r1 + ldrb r4, [r5, #0x14] + lsrs r4, r4, #1 + ldr r1, _0806A350 @ =gUnk_081121E4 + ldrb r0, [r5, #0x1e] + lsls r0, r0, #2 + adds r0, r4, r0 + adds r0, r0, r1 + ldrb r2, [r0] + adds r2, #0x10 + adds r0, r5, #0 + movs r1, #0 + bl sub_0806FF60 + ldr r0, _0806A354 @ =gUnk_08112204 + adds r4, r4, r0 + ldrb r2, [r4] + adds r0, r5, #0 + movs r1, #0 + bl sub_0806FF48 + adds r0, r5, #0 + movs r1, #1 + mov r2, r8 + bl sub_0806FF60 + adds r6, #0x1c + adds r0, r5, #0 + movs r1, #2 + adds r2, r6, #0 + bl sub_0806FF60 + movs r0, #0x1a + add sb, r0 + adds r0, r5, #0 + movs r1, #3 + mov r2, sb + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r5, #0 + movs r1, #1 + movs r2, #3 + bl sub_0806FFD8 + adds r0, r5, #0 + bl sub_0807000C + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, pc} + .align 2, 0 +_0806A350: .4byte gUnk_081121E4 +_0806A354: .4byte gUnk_08112204 + + thumb_func_start sub_0806A358 +sub_0806A358: @ 0x0806A358 + push {lr} + ldr r2, _0806A36C @ =gUnk_08112260 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0806A36C: .4byte gUnk_08112260 + + thumb_func_start sub_0806A370 +sub_0806A370: @ 0x0806A370 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0806A3D0 @ =gUnk_08112278 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0806ED78 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0xf + bne _0806A3CC + adds r4, #0x5a + ldrb r0, [r4] + cmp r0, #1 + bne _0806A3BC + movs r0, #0 + strb r0, [r4] + movs r0, #0x86 + lsls r0, r0, #2 + bl sub_080A3268 +_0806A3BC: + ldrb r0, [r4] + cmp r0, #2 + bne _0806A3CC + movs r0, #0 + strb r0, [r4] + ldr r0, _0806A3D4 @ =0x00000219 + bl sub_080A3268 +_0806A3CC: + pop {r4, pc} + .align 2, 0 +_0806A3D0: .4byte gUnk_08112278 +_0806A3D4: .4byte 0x00000219 + + thumb_func_start sub_0806A3D8 +sub_0806A3D8: @ 0x0806A3D8 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xb4 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0806A8C8 + ldr r1, _0806A40C @ =gUnk_08012F0C + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + pop {r4, pc} + .align 2, 0 +_0806A40C: .4byte gUnk_08012F0C + + thumb_func_start sub_0806A410 +sub_0806A410: @ 0x0806A410 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xd] + cmp r0, #0 + beq _0806A420 + cmp r0, #1 + beq _0806A43C + b _0806A456 +_0806A420: + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806A456 + ldrb r0, [r2, #0xd] + adds r0, #1 + strb r0, [r2, #0xd] + adds r0, r2, #0 + movs r1, #8 + bl sub_08004260 + b _0806A456 +_0806A43C: + adds r0, r2, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806A456 + adds r0, r2, #0 + adds r0, #0x84 + ldr r1, [r0] + adds r0, r2, #0 + bl sub_0806A9B0 +_0806A456: + pop {pc} + + thumb_func_start sub_0806A458 +sub_0806A458: @ 0x0806A458 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xd] + cmp r0, #1 + beq _0806A486 + cmp r0, #1 + bgt _0806A46C + cmp r0, #0 + beq _0806A472 + b _0806A4CA +_0806A46C: + cmp r0, #2 + beq _0806A4A8 + b _0806A4CA +_0806A472: + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806A4CA + ldrb r0, [r2, #0xd] + adds r0, #1 + strb r0, [r2, #0xd] + b _0806A4CA +_0806A486: + adds r0, r2, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806A4CA + movs r0, #2 + strb r0, [r2, #0xd] + adds r0, r2, #0 + movs r1, #0xa + bl sub_08004260 + movs r0, #0x62 + bl sub_0807CD34 + b _0806A4CA +_0806A4A8: + adds r0, r2, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806A4CA + movs r0, #0 + movs r1, #1 + strb r1, [r2, #0xc] + strb r0, [r2, #0xd] + movs r0, #0x3c + strb r0, [r2, #0xe] + adds r0, r2, #0 + movs r1, #2 + bl sub_08004260 +_0806A4CA: + pop {pc} + + thumb_func_start sub_0806A4CC +sub_0806A4CC: @ 0x0806A4CC + push {r4, lr} + adds r4, r0, #0 + ldrb r2, [r4, #0xd] + cmp r2, #0 + beq _0806A4E0 + cmp r2, #1 + beq _0806A52C + movs r0, #0xb4 + strb r0, [r4, #0xe] + b _0806A54C +_0806A4E0: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806A54C + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + subs r0, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _0806A512 + movs r0, #1 + strb r0, [r4, #0xd] + adds r1, r4, #0 + adds r1, #0x6a + strh r0, [r1] + adds r0, r4, #0 + movs r1, #0xa + bl sub_08004260 + b _0806A54C +_0806A512: + movs r0, #2 + strb r0, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x6a + strh r2, [r0] + adds r0, r4, #0 + bl sub_0806EDC4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004260 + b _0806A54C +_0806A52C: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806A54C + movs r0, #2 + strb r0, [r4, #0xd] + adds r0, r4, #0 + bl sub_0806EDC4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004260 +_0806A54C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806A550 +sub_0806A550: @ 0x0806A550 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _0806A568 + movs r0, #1 + strb r0, [r4, #0xd] + adds r0, r4, #0 + movs r1, #0xc + bl sub_08004260 + b _0806A5B0 +_0806A568: + adds r5, r4, #0 + adds r5, #0x5a + ldrb r0, [r5] + cmp r0, #1 + bne _0806A590 + movs r0, #0 + strb r0, [r5] + movs r0, #8 + movs r1, #2 + bl sub_08080964 + ldr r2, _0806A5B4 @ =gUnk_02033280 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #1 + orrs r0, r1 + str r0, [r2] + ldr r0, _0806A5B8 @ =0x0000011B + bl sub_080A3268 +_0806A590: + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806A5B0 + movs r1, #0 + movs r0, #5 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + adds r0, r4, #0 + movs r1, #0xd + bl sub_08004260 + adds r0, r4, #0 + bl sub_0806A914 +_0806A5B0: + pop {r4, r5, pc} + .align 2, 0 +_0806A5B4: .4byte gUnk_02033280 +_0806A5B8: .4byte 0x0000011B + + thumb_func_start nullsub_503 +nullsub_503: @ 0x0806A5BC + bx lr + .align 2, 0 + + thumb_func_start sub_0806A5C0 +sub_0806A5C0: @ 0x0806A5C0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806A5E6 + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 +_0806A5E6: + pop {r4, pc} + + thumb_func_start sub_0806A5E8 +sub_0806A5E8: @ 0x0806A5E8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806A60A + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0x10 + bl sub_08004260 + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + adds r0, #0x3c + strb r0, [r4, #0xe] +_0806A60A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806A628 + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + adds r0, #0x78 + strb r0, [r4, #0xe] + movs r0, #0xcc + bl sub_080A3268 +_0806A628: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_0806A630 +sub_0806A630: @ 0x0806A630 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806A646 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0x12 + bl sub_08004260 +_0806A646: + ldr r0, _0806A670 @ =gUnk_02033280 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0806A65A + adds r0, r4, #0 + bl sub_08004274 +_0806A65A: + adds r1, r4, #0 + adds r1, #0x5a + ldrb r0, [r1] + cmp r0, #1 + bne _0806A66E + movs r0, #0 + strb r0, [r1] + movs r0, #0x72 + bl sub_080A3268 +_0806A66E: + pop {r4, pc} + .align 2, 0 +_0806A670: .4byte gUnk_02033280 + + thumb_func_start sub_0806A674 +sub_0806A674: @ 0x0806A674 + push {r4, lr} + sub sp, #8 + adds r4, r0, #0 + ldr r1, _0806A694 @ =gUnk_08112294 + mov r0, sp + movs r2, #8 + bl memcpy + ldrb r3, [r4, #0xc] + cmp r3, #1 + beq _0806A6BE + cmp r3, #1 + bgt _0806A698 + cmp r3, #0 + beq _0806A6A0 + b _0806A82A + .align 2, 0 +_0806A694: .4byte gUnk_08112294 +_0806A698: + cmp r3, #2 + bne _0806A69E + b _0806A824 +_0806A69E: + b _0806A82A +_0806A6A0: + movs r0, #1 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #9 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #0x13 + bl sub_08004260 + b _0806A82A +_0806A6BE: + ldr r0, _0806A6E0 @ =gUnk_02033280 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0806A6E4 + movs r0, #0 + movs r1, #2 + strb r1, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x63 + strb r0, [r1] + subs r1, #1 + strb r0, [r1] + b _0806A82A + .align 2, 0 +_0806A6E0: .4byte gUnk_02033280 +_0806A6E4: + ldr r0, [r4, #0x50] + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #9 + bne _0806A7C8 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #3 + orrs r1, r0 + strb r1, [r2] + ldrb r2, [r4, #0xe] + cmp r2, #0 + bne _0806A724 + bl sub_08000E50 + adds r2, r0, #0 + movs r1, #7 + ands r0, r1 + strb r0, [r4, #0xe] + lsrs r0, r2, #8 + movs r1, #7 + ands r0, r1 + add r0, sp + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x68 + strb r1, [r0] + b _0806A75A +_0806A724: + ldr r0, _0806A780 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0806A75A + subs r0, r2, #1 + strb r0, [r4, #0xe] + adds r2, r4, #0 + adds r2, #0x62 + movs r0, #0 + ldrsb r0, [r2, r0] + adds r1, r4, #0 + adds r1, #0x68 + cmp r0, #0 + bgt _0806A746 + strb r3, [r1] +_0806A746: + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0xf + ble _0806A752 + movs r0, #0xff + strb r0, [r1] +_0806A752: + ldrb r0, [r1] + ldrb r1, [r2] + adds r0, r0, r1 + strb r0, [r2] +_0806A75A: + ldrb r2, [r4, #0xf] + cmp r2, #0 + bne _0806A784 + bl sub_08000E50 + adds r2, r0, #0 + movs r1, #7 + ands r0, r1 + strb r0, [r4, #0xf] + lsrs r0, r2, #8 + movs r1, #7 + ands r0, r1 + add r0, sp + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x69 + strb r1, [r0] + b _0806A82A + .align 2, 0 +_0806A780: .4byte gUnk_030010A0 +_0806A784: + ldr r0, _0806A7C4 @ =gUnk_030010A0 + ldr r0, [r0] + lsrs r0, r0, #4 + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0806A82A + subs r0, r2, #1 + strb r0, [r4, #0xf] + adds r3, r4, #0 + adds r3, #0x63 + movs r0, #0 + ldrsb r0, [r3, r0] + adds r2, r4, #0 + adds r2, #0x69 + cmp r0, #0 + blt _0806A7AA + movs r0, #0xff + strb r0, [r2] +_0806A7AA: + movs r1, #0 + ldrsb r1, [r3, r1] + movs r0, #8 + rsbs r0, r0, #0 + cmp r1, r0 + bgt _0806A7BA + movs r0, #1 + strb r0, [r2] +_0806A7BA: + ldrb r0, [r2] + ldrb r1, [r3] + adds r0, r0, r1 + strb r0, [r3] + b _0806A82A + .align 2, 0 +_0806A7C4: .4byte gUnk_030010A0 +_0806A7C8: + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #6 + orrs r1, r0 + strb r1, [r2] + adds r1, r4, #0 + adds r1, #0x62 + ldrb r0, [r1] + movs r2, #0 + ldrsb r2, [r1, r2] + cmp r2, #0 + beq _0806A7FE + cmp r2, #0 + ble _0806A7F0 + subs r0, #1 + strb r0, [r1] +_0806A7F0: + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bge _0806A7FE + adds r0, r2, #1 + strb r0, [r1] +_0806A7FE: + adds r1, r4, #0 + adds r1, #0x63 + ldrb r0, [r1] + movs r2, #0 + ldrsb r2, [r1, r2] + cmp r2, #0 + beq _0806A82A + cmp r2, #0 + ble _0806A814 + subs r0, #1 + strb r0, [r1] +_0806A814: + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bge _0806A82A + adds r0, r2, #1 + strb r0, [r1] + b _0806A82A +_0806A824: + adds r0, r4, #0 + bl sub_08004274 +_0806A82A: + add sp, #8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806A830 +sub_0806A830: @ 0x0806A830 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806A84E + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0x14 + bl sub_08004260 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 +_0806A84E: + ldr r0, _0806A88C @ =gUnk_02033280 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #2 + ands r0, r1 + cmp r0, #0 + beq _0806A860 + bl sub_0805E780 +_0806A860: + adds r0, r4, #0 + bl sub_08004274 + adds r1, r4, #0 + adds r1, #0x5a + ldrb r0, [r1] + cmp r0, #1 + bne _0806A88A + movs r0, #0 + strb r0, [r1] + movs r0, #0x37 + movs r1, #5 + movs r2, #0 + bl sub_0806ED50 + adds r1, r0, #0 + cmp r1, #0 + beq _0806A88A + adds r0, r4, #0 + bl sub_0806FA30 +_0806A88A: + pop {r4, pc} + .align 2, 0 +_0806A88C: .4byte gUnk_02033280 + + thumb_func_start sub_0806A890 +sub_0806A890: @ 0x0806A890 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806A8AE + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0x15 + bl sub_08004260 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 +_0806A8AE: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806A8C6 + bl sub_0805E780 +_0806A8C6: + pop {r4, pc} + + thumb_func_start sub_0806A8C8 +sub_0806A8C8: @ 0x0806A8C8 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x60 + bl sub_0807CBD0 + cmp r0, #0 + bne _0806A8F0 + movs r0, #0x37 + movs r1, #2 + movs r2, #0 + bl sub_0806ED50 + adds r4, r0, #0 + cmp r4, #0 + beq _0806A8F0 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + str r5, [r4, #0x50] +_0806A8F0: + movs r0, #0x37 + movs r1, #3 + movs r2, #0 + bl sub_0806ED50 + adds r4, r0, #0 + cmp r4, #0 + beq _0806A910 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldrh r0, [r4, #0x32] + adds r0, #2 + strh r0, [r4, #0x32] + str r5, [r4, #0x50] +_0806A910: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806A914 +sub_0806A914: @ 0x0806A914 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x37 + movs r1, #1 + movs r2, #0 + bl sub_0806ED50 + adds r4, r0, #0 + cmp r4, #0 + beq _0806A938 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAB0 +_0806A938: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806A93C +sub_0806A93C: @ 0x0806A93C + push {r4, lr} + adds r4, r0, #0 + bl sub_08078778 + ldr r3, _0806A954 @ =gUnk_0811229C + adds r0, r4, #0 + movs r1, #0 + movs r2, #0 + bl sub_08078850 + pop {r4, pc} + .align 2, 0 +_0806A954: .4byte gUnk_0811229C + + thumb_func_start sub_0806A958 +sub_0806A958: @ 0x0806A958 + push {lr} + ldrb r0, [r0, #0xc] + cmp r0, #5 + beq _0806A966 + ldr r1, _0806A968 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0806A966: + pop {pc} + .align 2, 0 +_0806A968: .4byte gUnk_02033280 + + thumb_func_start sub_0806A96C +sub_0806A96C: @ 0x0806A96C + push {r4, lr} + adds r2, r0, #0 + movs r3, #0 + str r3, [r1, #0x14] + movs r0, #0x39 + adds r0, r0, r2 + mov ip, r0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _0806A9A8 + ldrb r0, [r2, #0xc] + cmp r0, #3 + beq _0806A992 + movs r0, #3 + strb r0, [r2, #0xc] + strb r3, [r2, #0xd] + b _0806A9A8 +_0806A992: + ldrb r0, [r2, #0xd] + cmp r0, #1 + bls _0806A9A8 + mov r4, ip + strb r3, [r4] + movs r0, #1 + str r0, [r1, #0x14] + ldr r2, _0806A9AC @ =gUnk_02033280 + ldrb r1, [r2, #7] + orrs r0, r1 + strb r0, [r2, #7] +_0806A9A8: + pop {r4, pc} + .align 2, 0 +_0806A9AC: .4byte gUnk_02033280 + + thumb_func_start sub_0806A9B0 +sub_0806A9B0: @ 0x0806A9B0 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + bl sub_08000E50 + ldr r2, _0806A9E4 @ =gUnk_081122A0 + movs r1, #7 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x80 + movs r0, #9 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #9 + bl sub_08004260 + movs r0, #0x62 + bl sub_0807CCB4 + pop {r4, pc} + .align 2, 0 +_0806A9E4: .4byte gUnk_081122A0 + + thumb_func_start sub_0806A9E8 +sub_0806A9E8: @ 0x0806A9E8 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x37 + movs r1, #4 + movs r2, #0 + bl sub_0806ED50 + adds r4, r0, #0 + cmp r4, #0 + beq _0806AA0C + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAD8 +_0806AA0C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806AA10 +sub_0806AA10: @ 0x0806AA10 + push {lr} + bl sub_0806A914 + pop {pc} + + thumb_func_start sub_0806AA18 +sub_0806AA18: @ 0x0806AA18 + push {lr} + adds r2, r0, #0 + adds r0, #0x6a + ldrh r0, [r0] + cmp r0, #0 + beq _0806AA2C + ldr r1, _0806AA28 @ =0x00004408 + b _0806AA3C + .align 2, 0 +_0806AA28: .4byte 0x00004408 +_0806AA2C: + ldr r0, _0806AA48 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + ldr r1, _0806AA4C @ =0x0000440D + cmp r0, #0 + bne _0806AA3C + subs r1, #6 +_0806AA3C: + adds r0, r1, #0 + adds r1, r2, #0 + bl sub_08056398 + pop {pc} + .align 2, 0 +_0806AA48: .4byte gUnk_030010A0 +_0806AA4C: .4byte 0x0000440D + + thumb_func_start sub_0806AA50 +sub_0806AA50: @ 0x0806AA50 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + adds r5, r1, #0 + ldrb r0, [r5, #0x18] + cmp r0, #1 + beq _0806AB38 + cmp r0, #1 + bgt _0806AA6A + cmp r0, #0 + beq _0806AA70 + b _0806AB64 +_0806AA6A: + cmp r0, #2 + beq _0806AB5C + b _0806AB64 +_0806AA70: + str r0, [r5, #0x14] + movs r0, #0x8f + bl sub_0807CBD0 + cmp r0, #0 + bne _0806AA84 + ldr r2, _0806AA80 @ =gUnk_081122A8 + b _0806AA9A + .align 2, 0 +_0806AA80: .4byte gUnk_081122A8 +_0806AA84: + movs r0, #0x15 + bl sub_0807CA84 + cmp r0, #0 + bne _0806AA98 + ldr r2, _0806AA94 @ =gUnk_081122B0 + b _0806AA9A + .align 2, 0 +_0806AA94: .4byte gUnk_081122B0 +_0806AA98: + ldr r2, _0806AAD0 @ =gUnk_081122B8 +_0806AA9A: + ldr r1, _0806AAD4 @ =gUnk_02034350 + ldr r0, [r1, #0x68] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r7, [r0] + mov r8, r1 + mov r4, r8 + ldr r0, [r4, #0x68] + adds r0, #1 + str r0, [r4, #0x68] + cmp r0, #2 + bls _0806AAB6 + movs r0, #0 + str r0, [r4, #0x68] +_0806AAB6: + adds r0, r7, #0 + adds r1, r6, #0 + bl sub_08056398 + ldr r0, [r5, #4] + cmp r0, #1 + beq _0806AAEE + cmp r0, #1 + blo _0806AAD8 + cmp r0, #2 + beq _0806AB02 + b _0806AB1C + .align 2, 0 +_0806AAD0: .4byte gUnk_081122B8 +_0806AAD4: .4byte gUnk_02034350 +_0806AAD8: + adds r0, r4, #0 + adds r0, #0xac + str r6, [r0] + adds r0, r6, #0 + movs r1, #7 + bl sub_0805EA78 + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r6, #0x20] + b _0806AB1C +_0806AAEE: + adds r0, r4, #0 + adds r0, #0xac + ldr r0, [r0] + movs r1, #7 + bl sub_0805EB64 + adds r1, r0, #0 + adds r0, r4, #0 + adds r0, #0xb0 + b _0806AB14 +_0806AB02: + mov r0, r8 + adds r0, #0xb0 + ldr r0, [r0] + movs r1, #7 + bl sub_0805EB64 + adds r1, r0, #0 + mov r0, r8 + adds r0, #0xb4 +_0806AB14: + str r1, [r0] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r1, #0x20] +_0806AB1C: + ldr r0, _0806AB34 @ =0x0000441E + cmp r7, r0 + bne _0806AB2C + movs r0, #0x8f + bl sub_0807CCB4 + movs r0, #1 + str r0, [r5, #0x14] +_0806AB2C: + movs r0, #1 + strb r0, [r5, #0x18] + b _0806AB64 + .align 2, 0 +_0806AB34: .4byte 0x0000441E +_0806AB38: + ldr r0, _0806AB58 @ =gUnk_02034350 + ldr r1, [r5, #4] + lsls r1, r1, #2 + adds r0, #0xac + adds r1, r1, r0 + ldr r1, [r1] + movs r2, #0x36 + ldrsh r0, [r1, r2] + cmp r0, #0 + blt _0806AB64 + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r1, #0x20] + movs r0, #2 + strb r0, [r5, #0x18] + b _0806AB64 + .align 2, 0 +_0806AB58: .4byte gUnk_02034350 +_0806AB5C: + movs r1, #0x36 + ldrsh r0, [r6, r1] + cmp r0, #0 + bge _0806AB6A +_0806AB64: + ldr r1, _0806AB70 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0806AB6A: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806AB70: .4byte gUnk_02033280 + + thumb_func_start sub_0806AB74 +sub_0806AB74: @ 0x0806AB74 + push {lr} + adds r2, r0, #0 + ldr r1, _0806AB94 @ =gUnk_02034350 + movs r0, #1 + strb r0, [r1, #3] + movs r1, #0x32 + ldrsh r0, [r2, r1] + ldr r1, _0806AB98 @ =gUnk_03000BF0 + ldrh r1, [r1, #8] + subs r0, r0, r1 + cmp r0, #0xa7 + bgt _0806AB92 + adds r0, r1, #0 + adds r0, #0xa8 + strh r0, [r2, #0x32] +_0806AB92: + pop {pc} + .align 2, 0 +_0806AB94: .4byte gUnk_02034350 +_0806AB98: .4byte gUnk_03000BF0 + + thumb_func_start sub_0806AB9C +sub_0806AB9C: @ 0x0806AB9C + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #0 + str r0, [sp] + movs r0, #7 + movs r1, #0x37 + movs r2, #7 + movs r3, #1 + bl sub_0805EB2C + cmp r0, #0 + beq _0806ABBC + bl sub_0805E7BC +_0806ABBC: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0807F950 + add sp, #4 + pop {r4, r5, pc} + + thumb_func_start sub_0806ABC8 +sub_0806ABC8: @ 0x0806ABC8 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _0806ABF4 + ldr r0, _0806ABF0 @ =gUnk_081126E8 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0806ED78 + b _0806ABFA + .align 2, 0 +_0806ABF0: .4byte gUnk_081126E8 +_0806ABF4: + adds r0, r4, #0 + bl sub_0806ACC4 +_0806ABFA: + pop {r4, pc} + + thumb_func_start sub_0806ABFC +sub_0806ABFC: @ 0x0806ABFC + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xa] + lsls r1, r1, #4 + ldr r0, _0806AC38 @ =gUnk_08112674 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806AC36 + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xe] + adds r2, r4, #0 + adds r2, #0x6a + strb r0, [r2] + lsls r0, r0, #1 + strb r0, [r4, #0x14] + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 + subs r2, #1 + strb r0, [r2] + strb r1, [r4, #0xe] +_0806AC36: + pop {r4, pc} + .align 2, 0 +_0806AC38: .4byte gUnk_08112674 + + thumb_func_start sub_0806AC3C +sub_0806AC3C: @ 0x0806AC3C + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #3 + bhi _0806ACBA + ldr r4, _0806AC6C @ =gUnk_03001160 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0x18 + movs r3, #0x18 + bl sub_080041A0 + cmp r0, #0 + beq _0806AC70 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080045C4 + adds r2, r0, #0 + movs r0, #0x1e + ands r2, r0 + b _0806AC74 + .align 2, 0 +_0806AC6C: .4byte gUnk_03001160 +_0806AC70: + ldrb r0, [r5, #0x14] + lsls r2, r0, #2 +_0806AC74: + adds r0, r5, #0 + adds r0, #0x69 + ldrb r3, [r0] + adds r4, r0, #0 + cmp r2, r3 + beq _0806AC9A + subs r0, r2, r3 + movs r1, #0x1f + ands r0, r1 + cmp r0, #0xf + bgt _0806AC8E + subs r0, r3, #1 + b _0806AC90 +_0806AC8E: + adds r0, r3, #1 +_0806AC90: + strb r0, [r4] + ldrb r1, [r4] + movs r0, #0x1f + ands r0, r1 + strb r0, [r4] +_0806AC9A: + ldrb r1, [r4] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + bne _0806ACBA + ldrb r0, [r4] + bl sub_0806F5B0 + strb r0, [r5, #0x14] + ldrb r1, [r5, #0x14] + lsrs r1, r1, #1 + movs r0, #2 + eors r1, r0 + adds r0, r5, #0 + bl sub_08004260 +_0806ACBA: + adds r0, r5, #0 + bl sub_080042B8 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806ACC4 +sub_0806ACC4: @ 0x0806ACC4 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xc] + cmp r5, #1 + beq _0806AD28 + cmp r5, #1 + bgt _0806ACD8 + cmp r5, #0 + beq _0806ACE4 + b _0806ADEA +_0806ACD8: + cmp r5, #2 + beq _0806ADB8 + cmp r5, #3 + bne _0806ACE2 + b _0806ADDC +_0806ACE2: + b _0806ADEA +_0806ACE4: + ldrb r1, [r4, #0xa] + lsls r1, r1, #4 + ldr r0, _0806AD24 @ =gUnk_08112674 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + bne _0806ACF8 + b _0806ADFA +_0806ACF8: + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x6a + strb r0, [r1] + lsls r0, r0, #1 + strb r0, [r4, #0x14] + strb r5, [r4, #0xe] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0807DD50 + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 + adds r1, #8 + b _0806ADCE + .align 2, 0 +_0806AD24: .4byte gUnk_08112674 +_0806AD28: + adds r5, r4, #0 + adds r5, #0x39 + movs r0, #0 + ldrsb r0, [r5, r0] + cmp r0, #2 + bne _0806AD44 + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r5] + adds r0, r4, #0 + bl sub_0806F118 + b _0806ADEA +_0806AD44: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0806AEA8 + ldrb r0, [r4, #0xb] + cmp r0, #0xa + bne _0806AD8A + movs r0, #0 + ldrsb r0, [r5, r0] + cmp r0, #0 + beq _0806AD8A + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r5] + ldr r1, _0806ADAC @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r1, #8 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_0806AFE8 +_0806AD8A: + ldrb r0, [r4, #0xa] + cmp r0, #1 + bne _0806ADEA + ldr r0, _0806ADAC @ =gUnk_03001160 + ldrb r3, [r0, #0x14] + lsrs r3, r3, #1 + ldr r0, _0806ADB0 @ =gUnk_081126E4 + adds r0, r3, r0 + ldrb r2, [r0] + lsls r3, r3, #2 + ldr r0, _0806ADB4 @ =gUnk_081126D4 + adds r3, r3, r0 + adds r0, r4, #0 + movs r1, #1 + bl sub_08078850 + b _0806ADEA + .align 2, 0 +_0806ADAC: .4byte gUnk_03001160 +_0806ADB0: .4byte gUnk_081126E4 +_0806ADB4: .4byte gUnk_081126D4 +_0806ADB8: + ldr r0, _0806ADD8 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0806ADEA + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 + adds r1, #4 +_0806ADCE: + adds r0, r4, #0 + bl sub_08004260 + b _0806ADEA + .align 2, 0 +_0806ADD8: .4byte gUnk_02000050 +_0806ADDC: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806ADEA + movs r0, #1 + strb r0, [r4, #0xc] +_0806ADEA: + adds r0, r4, #0 + adds r0, #0x59 + ldrb r0, [r0] + cmp r0, #0xff + beq _0806ADFA + adds r0, r4, #0 + bl sub_08004274 +_0806ADFA: + pop {r4, r5, pc} + + thumb_func_start sub_0806ADFC +sub_0806ADFC: @ 0x0806ADFC + push {lr} + adds r1, r0, #0 + adds r1, #0x68 + ldrb r1, [r1] + bl sub_08078784 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806AE0C +sub_0806AE0C: @ 0x0806AE0C + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _0806AE62 + adds r0, r4, #0 + adds r0, #0x69 + ldrb r0, [r0] + lsrs r2, r0, #1 + adds r0, r4, #0 + adds r0, #0x5b + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0806AE3C + adds r2, #0x1c + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + b _0806AE46 +_0806AE3C: + adds r0, r4, #0 + movs r1, #0 + movs r2, #0xff + bl sub_0806FF60 +_0806AE46: + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + b _0806AEA4 +_0806AE62: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r2, [r0] + cmp r2, #0xff + beq _0806AE72 + movs r0, #0x81 + rsbs r0, r0, #0 + ands r2, r0 +_0806AE72: + adds r0, r4, #0 + adds r0, #0x5b + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0806AE82 + movs r2, #0xff +_0806AE82: + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C +_0806AEA4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806AEA8 +sub_0806AEA8: @ 0x0806AEA8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r4, #0 + adds r6, #0x82 + ldrh r5, [r6] + ldr r0, _0806AED4 @ =0x0000FFDF + ands r0, r5 + strh r0, [r6] + movs r0, #0x20 + ands r0, r5 + cmp r0, #0 + beq _0806AECA + movs r1, #0x80 + lsls r1, r1, #7 + adds r0, r4, #0 + bl sub_08003FC4 +_0806AECA: + adds r0, r4, #0 + bl sub_0807DDE4 + strh r5, [r6] + pop {r4, r5, r6, pc} + .align 2, 0 +_0806AED4: .4byte 0x0000FFDF + + thumb_func_start sub_0806AED8 +sub_0806AED8: @ 0x0806AED8 + push {lr} + movs r1, #0 + strb r1, [r0, #0xe] + bl sub_0806AEE4 + pop {pc} + + thumb_func_start sub_0806AEE4 +sub_0806AEE4: @ 0x0806AEE4 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + adds r7, r0, #0 + cmp r7, #0 + beq _0806AEF6 + subs r0, #1 + strb r0, [r4, #0xe] + b _0806AF5A +_0806AEF6: + movs r0, #2 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0x20 + movs r2, #0x20 + bl sub_0806EDD8 + adds r3, r0, #0 + cmp r3, #0 + bge _0806AF16 + adds r0, r4, #0 + adds r0, #0x6a + ldrb r1, [r0] + lsls r0, r1, #1 + strb r0, [r4, #0x14] + lsls r3, r1, #3 +_0806AF16: + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #5 + asrs r1, r3, #1 + lsls r1, r1, #1 + ldr r2, _0806AF5C @ =gUnk_081125F4 + adds r1, r1, r2 + adds r0, r0, r1 + ldrb r6, [r0] + ldrb r5, [r0, #1] + movs r0, #0x80 + ands r0, r5 + cmp r0, #0 + beq _0806AF3A + adds r0, r3, #0 + bl sub_0806F5B0 + strb r0, [r4, #0x14] +_0806AF3A: + movs r0, #0x7f + ands r5, r0 + adds r0, r4, #0 + adds r0, #0x5a + strb r6, [r0] + strb r5, [r4, #0x1e] + adds r1, r4, #0 + adds r1, #0x5b + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x58 + strb r7, [r0] + subs r1, #2 + movs r0, #0xff + strb r0, [r1] +_0806AF5A: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806AF5C: .4byte gUnk_081125F4 + + thumb_func_start sub_0806AF60 +sub_0806AF60: @ 0x0806AF60 + push {lr} + ldrb r2, [r0, #0x14] + lsrs r2, r2, #1 + ldr r1, [r1, #4] + adds r1, r1, r2 + bl sub_08004260 + pop {pc} + + thumb_func_start sub_0806AF70 +sub_0806AF70: @ 0x0806AF70 + movs r1, #0x90 + lsls r1, r1, #0xa + str r1, [r0, #0x20] + bx lr + + thumb_func_start sub_0806AF78 +sub_0806AF78: @ 0x0806AF78 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r1, #0xc0 + lsls r1, r1, #5 + bl sub_08003FC4 + ldr r0, [r4, #0x34] + cmp r0, #0 + blt _0806AF9E + ldr r0, [r4, #0x20] + cmp r0, #0 + bgt _0806AF9E + movs r0, #0 + str r0, [r4, #0x34] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806AF70 +_0806AF9E: + pop {r4, r5, pc} + + thumb_func_start sub_0806AFA0 +sub_0806AFA0: @ 0x0806AFA0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806ED78 + cmp r0, #0 + beq _0806AFBA + movs r0, #0x24 + ldrsh r1, [r4, r0] + rsbs r1, r1, #0 + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F62C +_0806AFBA: + pop {r4, pc} + + thumb_func_start sub_0806AFBC +sub_0806AFBC: @ 0x0806AFBC + push {lr} + adds r3, r0, #0 + ldr r0, _0806AFE0 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + subs r0, #2 + cmp r0, #0 + bge _0806AFCC + movs r0, #0 +_0806AFCC: + ldrb r1, [r3, #0xb] + lsls r1, r1, #6 + lsls r0, r0, #3 + ldr r2, _0806AFE4 @ =gUnk_081126F0 + adds r0, r0, r2 + adds r1, r1, r0 + adds r0, r3, #0 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806AFE0: .4byte gUnk_02002A40 +_0806AFE4: .4byte gUnk_081126F0 + + thumb_func_start sub_0806AFE8 +sub_0806AFE8: @ 0x0806AFE8 + push {lr} + movs r2, #0 + str r2, [r1, #0x14] + ldr r3, _0806B000 @ =gUnk_08112BF0 + ldrb r2, [r0, #0xb] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_0806B000: .4byte gUnk_08112BF0 + + thumb_func_start sub_0806B004 +sub_0806B004: @ 0x0806B004 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r5, r1, #0 + movs r4, #0 + movs r0, #0x29 + bl sub_0807CC30 + cmp r0, #0 + beq _0806B050 + movs r0, #0x73 + bl sub_0807CBD0 + cmp r0, #0 + beq _0806B048 + movs r0, #0x46 + bl sub_0807CA84 + cmp r0, #0 + bne _0806B044 + movs r4, #3 + movs r0, #0x78 + bl sub_0807CBD0 + cmp r0, #0 + bne _0806B050 + movs r4, #2 + movs r0, #1 + str r0, [r5, #0x14] + movs r0, #0x78 + bl sub_0807CCB4 + b _0806B050 +_0806B044: + movs r4, #4 + b _0806B050 +_0806B048: + movs r4, #1 + movs r0, #0x6a + bl sub_0807CCB4 +_0806B050: + ldr r0, _0806B060 @ =gUnk_08112C40 + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r6, #0 + bl sub_08056398 + pop {r4, r5, r6, pc} + .align 2, 0 +_0806B060: .4byte gUnk_08112C40 + + thumb_func_start sub_0806B064 +sub_0806B064: @ 0x0806B064 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 + movs r0, #0x29 + bl sub_0807CC30 + cmp r0, #0 + beq _0806B082 + movs r4, #1 + movs r0, #0x73 + bl sub_0807CBD0 + cmp r0, #0 + beq _0806B082 + movs r4, #2 +_0806B082: + ldr r0, _0806B094 @ =gUnk_08112C4A + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl sub_08056398 + pop {r4, r5, pc} + .align 2, 0 +_0806B094: .4byte gUnk_08112C4A + + thumb_func_start sub_0806B098 +sub_0806B098: @ 0x0806B098 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #2 + movs r0, #0x46 + bl sub_0807CA84 + cmp r0, #0 + bne _0806B0C0 + movs r4, #1 + movs r0, #0x29 + bl sub_0807CC30 + cmp r0, #0 + beq _0806B0C0 + movs r0, #0x2a + bl sub_0807CC30 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r4, r1, #0x1f +_0806B0C0: + ldr r2, _0806B0DC @ =gUnk_08112C50 + ldrb r1, [r5, #0xb] + subs r1, #7 + lsls r0, r1, #1 + adds r0, r0, r1 + adds r0, r0, r4 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + adds r1, r5, #0 + bl sub_08056398 + pop {r4, r5, pc} + .align 2, 0 +_0806B0DC: .4byte gUnk_08112C50 + + thumb_func_start sub_0806B0E0 +sub_0806B0E0: @ 0x0806B0E0 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #0 + movs r0, #0x38 + movs r1, #0xb8 + movs r2, #1 + bl sub_080002C0 + cmp r0, #0x57 + bne _0806B120 + movs r0, #0x48 + movs r1, #0xb8 + movs r2, #1 + bl sub_080002C0 + cmp r0, #0x57 + bne _0806B120 + movs r0, #0x38 + movs r1, #0xc8 + movs r2, #1 + bl sub_080002C0 + cmp r0, #0x57 + bne _0806B120 + movs r0, #0x48 + movs r1, #0xc8 + movs r2, #1 + bl sub_080002C0 + cmp r0, #0x57 + bne _0806B120 + movs r5, #1 +_0806B120: + ldr r0, _0806B130 @ =gUnk_08112C5C + lsls r1, r5, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r4, #0 + bl sub_08056398 + pop {r4, r5, pc} + .align 2, 0 +_0806B130: .4byte gUnk_08112C5C + + thumb_func_start sub_0806B134 +sub_0806B134: @ 0x0806B134 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x45 + bl sub_0807CA84 + cmp r0, #0 + beq _0806B158 + movs r4, #2 + movs r0, #0x7b + bl sub_0807CBD0 + cmp r0, #0 + bne _0806B160 + movs r4, #1 + movs r0, #0x7b + bl sub_0807CCB4 + b _0806B160 +_0806B158: + movs r4, #0 + movs r0, #0x4a + bl sub_0807CD04 +_0806B160: + ldr r0, _0806B17C @ =gUnk_02002A40 + ldrb r0, [r0, #8] + cmp r0, #5 + bls _0806B16A + movs r4, #3 +_0806B16A: + ldr r0, _0806B180 @ =gUnk_08112C60 + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl sub_08056398 + pop {r4, r5, pc} + .align 2, 0 +_0806B17C: .4byte gUnk_02002A40 +_0806B180: .4byte gUnk_08112C60 + + thumb_func_start sub_0806B184 +sub_0806B184: @ 0x0806B184 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806B1C4 + ldrb r1, [r4, #0xa] + lsls r1, r1, #4 + ldr r0, _0806B1C0 @ =gUnk_08112674 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806B1CA + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #6 + bl sub_08004260 + b _0806B1CA + .align 2, 0 +_0806B1C0: .4byte gUnk_08112674 +_0806B1C4: + adds r0, r4, #0 + bl sub_08004274 +_0806B1CA: + pop {r4, pc} + + thumb_func_start sub_0806B1CC +sub_0806B1CC: @ 0x0806B1CC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _0806B21E + cmp r0, #1 + bgt _0806B1E0 + cmp r0, #0 + beq _0806B1E6 + b _0806B25C +_0806B1E0: + cmp r0, #2 + beq _0806B24E + b _0806B25C +_0806B1E6: + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xe] + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD50 + b _0806B25C +_0806B21E: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0806B238 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + adds r0, r4, #0 + bl sub_0806F118 + b _0806B25C +_0806B238: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_080042B8 + b _0806B25C +_0806B24E: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806B25C + movs r0, #1 + strb r0, [r4, #0xc] +_0806B25C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806B260 +sub_0806B260: @ 0x0806B260 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r5, r1, #0 + movs r0, #0 + str r0, [r5, #0x14] + movs r0, #0x46 + bl sub_0807CA84 + cmp r0, #0 + bne _0806B29E + movs r0, #0x29 + bl sub_0807CC30 + cmp r0, #0 + beq _0806B286 + movs r4, #2 + movs r0, #1 + str r0, [r5, #0x14] + b _0806B2A0 +_0806B286: + movs r0, #0x7a + bl sub_0807CBD0 + cmp r0, #0 + bne _0806B29A + movs r4, #0 + movs r0, #0x7a + bl sub_0807CCB4 + b _0806B2A0 +_0806B29A: + movs r4, #1 + b _0806B2A0 +_0806B29E: + movs r4, #3 +_0806B2A0: + ldr r0, _0806B2B0 @ =gUnk_08112D48 + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r6, #0 + bl sub_08056398 + pop {r4, r5, r6, pc} + .align 2, 0 +_0806B2B0: .4byte gUnk_08112D48 + + thumb_func_start sub_0806B2B4 +sub_0806B2B4: @ 0x0806B2B4 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0xb3 + bl sub_0807CBD0 + cmp r0, #0 + beq _0806B314 + movs r0, #0 + bl sub_0807CC3C + cmp r0, #0 + bne _0806B2D6 + movs r4, #1 + movs r0, #0 + bl sub_0807CD10 + b _0806B316 +_0806B2D6: + movs r0, #1 + bl sub_0807CC3C + cmp r0, #0 + bne _0806B2EA + movs r4, #2 + movs r0, #1 + bl sub_0807CD10 + b _0806B316 +_0806B2EA: + movs r0, #2 + bl sub_0807CC3C + cmp r0, #0 + bne _0806B2FE + movs r4, #3 + movs r0, #2 + bl sub_0807CD10 + b _0806B316 +_0806B2FE: + movs r4, #4 + movs r0, #0 + bl sub_0807CD8C + movs r0, #1 + bl sub_0807CD8C + movs r0, #2 + bl sub_0807CD8C + b _0806B316 +_0806B314: + movs r4, #0 +_0806B316: + ldr r0, _0806B328 @ =gUnk_08112D50 + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl sub_08056398 + pop {r4, r5, pc} + .align 2, 0 +_0806B328: .4byte gUnk_08112D50 + + thumb_func_start sub_0806B32C +sub_0806B32C: @ 0x0806B32C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _0806B352 + adds r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + adds r0, r2, #0 + movs r1, #9 + bl sub_080042AC + b _0806B358 +_0806B352: + adds r0, r2, #0 + bl sub_080042B8 +_0806B358: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806B35C +sub_0806B35C: @ 0x0806B35C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5b + ldrb r0, [r0] + movs r2, #0x3f + ands r2, r0 + adds r2, #0x13 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r2, #0x7f + ands r2, r0 + adds r2, #0xb + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #2 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #2 + movs r2, #1 + bl sub_0806FF88 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl sub_0806FFD8 + adds r0, r4, #0 + bl sub_0807000C + pop {r4, pc} + + thumb_func_start sub_0806B3AC +sub_0806B3AC: @ 0x0806B3AC + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0806B3C2 + adds r0, r2, #0 + bl sub_0806B41C + b _0806B3C8 +_0806B3C2: + adds r0, r2, #0 + bl sub_0806B3CC +_0806B3C8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806B3CC +sub_0806B3CC: @ 0x0806B3CC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806B3F4 + ldr r1, _0806B418 @ =gUnk_08112E1C + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806B414 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08078778 +_0806B3F4: + adds r0, r4, #0 + bl sub_08004274 + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _0806B40E + movs r0, #0 + strb r0, [r1] + bl sub_08056378 +_0806B40E: + adds r0, r4, #0 + bl sub_0806ED78 +_0806B414: + pop {r4, pc} + .align 2, 0 +_0806B418: .4byte gUnk_08112E1C + + thumb_func_start sub_0806B41C +sub_0806B41C: @ 0x0806B41C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _0806B470 + cmp r0, #1 + bgt _0806B430 + cmp r0, #0 + beq _0806B436 + b _0806B4EC +_0806B430: + cmp r0, #2 + beq _0806B4DE + b _0806B4EC +_0806B436: + ldr r1, _0806B46C @ =gUnk_08112E1C + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806B4EC + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xb] + cmp r0, #2 + bne _0806B462 + adds r0, r4, #0 + movs r1, #0x25 + movs r2, #0 + bl sub_080A29AC +_0806B462: + adds r0, r4, #0 + bl sub_0807DD50 + b _0806B4EC + .align 2, 0 +_0806B46C: .4byte gUnk_08112E1C +_0806B470: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0806B4D4 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + ldr r1, _0806B4C8 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08002632 + ldr r1, _0806B4CC @ =gUnk_08001A7C + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r3, [r0] + adds r0, r4, #0 + adds r0, #0x68 + ldrb r0, [r0] + cmp r0, #0x21 + bne _0806B4B2 + adds r3, #6 +_0806B4B2: + ldrh r1, [r3] + ldrh r2, [r3, #2] + ldrh r3, [r3, #4] + adds r0, r4, #0 + bl sub_0801DFB4 + ldr r0, _0806B4D0 @ =gUnk_03003F80 + adds r0, #0x8b + movs r1, #3 + strb r1, [r0] + b _0806B4EC + .align 2, 0 +_0806B4C8: .4byte gUnk_03001160 +_0806B4CC: .4byte gUnk_08001A7C +_0806B4D0: .4byte gUnk_03003F80 +_0806B4D4: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + b _0806B4EC +_0806B4DE: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806B4EC + movs r0, #1 + strb r0, [r4, #0xc] +_0806B4EC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806B4F0 +sub_0806B4F0: @ 0x0806B4F0 + push {lr} + ldrb r1, [r0, #0xb] + lsls r1, r1, #3 + ldr r2, _0806B500 @ =gUnk_08112E2C + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806B500: .4byte gUnk_08112E2C + + thumb_func_start sub_0806B504 +sub_0806B504: @ 0x0806B504 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #1 + movs r0, #0x21 + bl sub_0801E7F4 + cmp r0, #0 + beq _0806B518 + movs r4, #3 + b _0806B52A +_0806B518: + movs r0, #0x86 + bl sub_0807CBD0 + cmp r0, #0 + bne _0806B52A + movs r4, #0 + movs r0, #0x86 + bl sub_0807CCB4 +_0806B52A: + ldr r0, _0806B53C @ =gUnk_08112E54 + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl sub_08056398 + pop {r4, r5, pc} + .align 2, 0 +_0806B53C: .4byte gUnk_08112E54 + + thumb_func_start sub_0806B540 +sub_0806B540: @ 0x0806B540 + push {r4, lr} + adds r2, r0, #0 + adds r0, #0x84 + ldr r4, [r0] + ldrb r0, [r4, #0x18] + cmp r0, #1 + beq _0806B588 + cmp r0, #1 + bgt _0806B558 + cmp r0, #0 + beq _0806B562 + b _0806B600 +_0806B558: + cmp r0, #2 + beq _0806B5AC + cmp r0, #3 + beq _0806B5EE + b _0806B600 +_0806B562: + ldr r0, _0806B584 @ =0x00002312 + adds r1, r2, #0 + bl sub_08056398 + movs r0, #0x3f + bl sub_0807CBD0 + cmp r0, #0 + bne _0806B606 + ldrb r0, [r4, #0x18] + adds r0, #1 + strb r0, [r4, #0x18] + movs r0, #0x3f + bl sub_0807CCB4 + b _0806B600 + .align 2, 0 +_0806B584: .4byte 0x00002312 +_0806B588: + ldr r0, _0806B5A4 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0806B600 + movs r0, #2 + strb r0, [r4, #0x18] + ldr r0, _0806B5A8 @ =0x00002315 + adds r1, r2, #0 + bl sub_08056398 + b _0806B600 + .align 2, 0 +_0806B5A4: .4byte gUnk_02000050 +_0806B5A8: .4byte 0x00002315 +_0806B5AC: + ldr r0, _0806B5D4 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0806B600 + movs r0, #3 + strb r0, [r4, #0x18] + ldr r0, _0806B5D8 @ =gUnk_02002A40 + adds r0, #0xbb + ldrb r0, [r0] + cmp r0, #0 + beq _0806B5DC + movs r0, #0x58 + movs r1, #0 + movs r2, #0 + bl sub_080A7C18 + b _0806B5E6 + .align 2, 0 +_0806B5D4: .4byte gUnk_02000050 +_0806B5D8: .4byte gUnk_02002A40 +_0806B5DC: + movs r0, #0x3f + movs r1, #0x64 + movs r2, #0 + bl sub_080A7C18 +_0806B5E6: + movs r0, #0xf + bl sub_0807CD10 + b _0806B600 +_0806B5EE: + ldr r0, _0806B5FC @ =gUnk_03001160 + ldrb r0, [r0, #0xc] + cmp r0, #8 + beq _0806B600 + movs r0, #0x2d + strh r0, [r4, #0x10] + b _0806B606 + .align 2, 0 +_0806B5FC: .4byte gUnk_03001160 +_0806B600: + ldr r1, _0806B608 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0806B606: + pop {r4, pc} + .align 2, 0 +_0806B608: .4byte gUnk_02033280 + + thumb_func_start sub_0806B60C +sub_0806B60C: @ 0x0806B60C + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_0806B624 +sub_0806B624: @ 0x0806B624 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806B65C + ldr r1, _0806B658 @ =gUnk_08112E1C + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806B662 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + b _0806B662 + .align 2, 0 +_0806B658: .4byte gUnk_08112E1C +_0806B65C: + adds r0, r4, #0 + bl sub_08004274 +_0806B662: + pop {r4, pc} + + thumb_func_start sub_0806B664 +sub_0806B664: @ 0x0806B664 + push {lr} + ldr r2, _0806B678 @ =gUnk_08112F78 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0806B678: .4byte gUnk_08112F78 + + thumb_func_start sub_0806B67C +sub_0806B67C: @ 0x0806B67C + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r1, #0 + movs r0, #1 + strb r0, [r6, #0xc] + strb r1, [r6, #0xd] + strb r1, [r6, #0xe] + ldrb r0, [r6, #0xa] + cmp r0, #5 + bls _0806B692 + b _0806B7B8 +_0806B692: + lsls r0, r0, #2 + ldr r1, _0806B69C @ =_0806B6A0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0806B69C: .4byte _0806B6A0 +_0806B6A0: @ jump table + .4byte _0806B6B8 @ case 0 + .4byte _0806B7A6 @ case 1 + .4byte _0806B70C @ case 2 + .4byte _0806B726 @ case 3 + .4byte _0806B7B0 @ case 4 + .4byte _0806B7A6 @ case 5 +_0806B6B8: + ldrh r0, [r6, #0x32] + subs r0, #0xa0 + strh r0, [r6, #0x32] + movs r0, #0xa0 + strb r0, [r6, #0xe] + movs r0, #0x20 + strb r0, [r6, #0xf] + adds r1, r6, #0 + adds r1, #0x63 + strb r0, [r1] + movs r5, #0 +_0806B6CE: + movs r0, #0x3b + movs r1, #2 + adds r2, r5, #0 + bl sub_0806ED50 + adds r4, r0, #0 + cmp r4, #0 + beq _0806B6E0 + str r6, [r4, #0x50] +_0806B6E0: + adds r5, #1 + cmp r5, #3 + bls _0806B6CE + movs r0, #0x3b + movs r1, #1 + movs r2, #0 + bl sub_0806ED50 + adds r4, r0, #0 + str r6, [r4, #0x50] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #0xff + strb r0, [r1] + movs r3, #0x80 + lsls r3, r3, #9 + adds r0, r6, #0 + adds r1, r4, #0 + movs r2, #0 + bl sub_0806FA48 + b _0806B7A6 +_0806B70C: + ldrb r1, [r6, #0xb] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0806B71E + ldrb r0, [r6, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r6, #0x18] +_0806B71E: + adds r0, r6, #0 + bl sub_0806B96C + b _0806B7A6 +_0806B726: + movs r0, #1 + strb r0, [r6, #0xe] + movs r0, #0x20 + strb r0, [r6, #0xf] + movs r0, #0x3b + movs r1, #4 + movs r2, #0 + bl sub_0806ED50 + adds r4, r0, #0 + cmp r4, #0 + beq _0806B76C + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0806FA24 + str r6, [r4, #0x50] + adds r0, r6, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + subs r1, #1 + adds r3, r4, #0 + adds r3, #0x29 + movs r0, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + movs r0, #0 + strb r0, [r4, #0x1e] +_0806B76C: + movs r0, #0x3b + movs r1, #5 + movs r2, #0 + bl sub_0806ED50 + adds r4, r0, #0 + cmp r4, #0 + beq _0806B7A6 + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0806FA24 + str r6, [r4, #0x50] + adds r0, r6, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + adds r1, #1 + adds r3, r4, #0 + adds r3, #0x29 + movs r0, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_0806B7A6: + adds r0, r6, #0 + movs r1, #0 + bl sub_080042AC + b _0806B7B8 +_0806B7B0: + adds r0, r6, #0 + movs r1, #0 + bl sub_08004260 +_0806B7B8: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0806B7BC +sub_0806B7BC: @ 0x0806B7BC + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #3 + bl sub_0807CC3C + cmp r0, #0 + bne _0806B7CC + b _0806B968 +_0806B7CC: + ldrb r0, [r5, #0xa] + cmp r0, #1 + beq _0806B84C + cmp r0, #1 + bgt _0806B7DC + cmp r0, #0 + beq _0806B7E6 + b _0806B93C +_0806B7DC: + cmp r0, #2 + beq _0806B86C + cmp r0, #3 + beq _0806B874 + b _0806B93C +_0806B7E6: + ldrh r0, [r5, #0x32] + adds r0, #1 + strh r0, [r5, #0x32] + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + movs r1, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806B82C + movs r0, #0x3b + movs r1, #3 + movs r2, #0 + bl sub_0806ED50 + adds r4, r0, #0 + cmp r4, #0 + bne _0806B80C + b _0806B968 +_0806B80C: + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldr r0, _0806B828 @ =0x00001634 + bl sub_08056378 + ldrb r0, [r5, #0xd] + adds r0, #1 + strb r0, [r5, #0xd] + bl sub_0805E780 + b _0806B968 + .align 2, 0 +_0806B828: .4byte 0x00001634 +_0806B82C: + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + ands r0, r1 + cmp r0, #0 + beq _0806B83A + b _0806B95A +_0806B83A: + movs r0, #0x20 + strb r0, [r5, #0xf] + ldr r0, _0806B848 @ =0x000001A9 + bl sub_080A3268 + b _0806B95A + .align 2, 0 +_0806B848: .4byte 0x000001A9 +_0806B84C: + adds r0, r5, #0 + bl sub_0806B9BC + adds r4, r0, #0 + cmp r4, #0 + bne _0806B85C + bl sub_0805E780 +_0806B85C: + movs r3, #0x84 + lsls r3, r3, #0xe + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0 + bl sub_0806FA48 + b _0806B95A +_0806B86C: + adds r0, r5, #0 + bl sub_0806B96C + b _0806B95A +_0806B874: + ldrb r0, [r5, #0xd] + cmp r0, #1 + beq _0806B8A2 + cmp r0, #1 + bgt _0806B884 + cmp r0, #0 + beq _0806B88E + b _0806B91E +_0806B884: + cmp r0, #2 + beq _0806B8C4 + cmp r0, #3 + beq _0806B906 + b _0806B91E +_0806B88E: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806B91E + ldrb r0, [r5, #0xd] + adds r0, #1 + strb r0, [r5, #0xd] + b _0806B91E +_0806B8A2: + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806B91E + movs r0, #2 + strb r0, [r5, #0xd] + ldr r1, _0806B8C0 @ =0x0000013F + adds r0, r5, #0 + bl sub_0801D2B4 + b _0806B8FA + .align 2, 0 +_0806B8C0: .4byte 0x0000013F +_0806B8C4: + adds r2, r5, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0806B91E + movs r0, #0xef + ands r0, r1 + strb r0, [r2] + ldrb r0, [r5, #0xe] + adds r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0806B91E + cmp r0, #0xa + bne _0806B91E + ldrb r0, [r5, #0xd] + adds r0, #1 + strb r0, [r5, #0xd] + movs r0, #0xf4 + bl sub_08004488 + movs r0, #0 + strb r0, [r5, #0xe] +_0806B8FA: + ldrb r1, [r5, #0xd] + subs r1, #1 + adds r0, r5, #0 + bl sub_080042AC + b _0806B91E +_0806B906: + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806B91E + movs r0, #0 + bl sub_0807CD10 + bl sub_0805E780 +_0806B91E: + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806B95A + movs r0, #0x20 + strb r0, [r5, #0xf] + ldr r0, _0806B938 @ =0x000001A9 + bl sub_080A3268 + b _0806B95A + .align 2, 0 +_0806B938: .4byte 0x000001A9 +_0806B93C: + adds r0, r5, #0 + bl sub_0806B9BC + adds r4, r0, #0 + cmp r4, #0 + bne _0806B94E + bl sub_0805E780 + b _0806B968 +_0806B94E: + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _0806B968 + ldrb r0, [r5, #0xa] + cmp r0, #4 + beq _0806B962 +_0806B95A: + adds r0, r5, #0 + bl sub_080042B8 + b _0806B968 +_0806B962: + adds r0, r5, #0 + bl sub_08004274 +_0806B968: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806B96C +sub_0806B96C: @ 0x0806B96C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0806B9BC + adds r5, r0, #0 + cmp r5, #0 + bne _0806B97E + bl sub_0805E780 +_0806B97E: + ldrb r3, [r4, #0xb] + lsls r3, r3, #1 + ldr r0, _0806B9B8 @ =gUnk_08112F80 + adds r3, r3, r0 + ldrb r1, [r5, #0x18] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1e + ldrb r2, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r2, #0 + ldrsb r2, [r3, r2] + lsls r2, r2, #0x10 + ldrb r3, [r3, #1] + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + adds r3, #0x21 + lsls r3, r3, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA48 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + .align 2, 0 +_0806B9B8: .4byte gUnk_08112F80 + + thumb_func_start sub_0806B9BC +sub_0806B9BC: @ 0x0806B9BC + push {lr} + ldr r1, [r0, #0x50] + cmp r1, #0 + beq _0806B9CC + ldr r0, [r1, #4] + cmp r0, #0 + bne _0806B9CC + movs r1, #0 +_0806B9CC: + adds r0, r1, #0 + pop {pc} + + thumb_func_start sub_0806B9D0 +sub_0806B9D0: @ 0x0806B9D0 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xc] + cmp r0, #0 + bne _0806B9E6 + adds r0, #1 + strb r0, [r1, #0xc] + adds r0, r1, #0 + bl sub_0807DD50 + b _0806B9EE +_0806B9E6: + adds r0, r1, #0 + movs r1, #0 + bl sub_0807DD94 +_0806B9EE: + pop {pc} + + thumb_func_start sub_0806B9F0 +sub_0806B9F0: @ 0x0806B9F0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806BA18 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0807DD50 + ldr r1, _0806BA30 @ =gUnk_08114F30 + ldrb r2, [r4, #0x19] + lsrs r0, r2, #6 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r1, r1, #6 + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x19] +_0806BA18: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 +_0806BA30: .4byte gUnk_08114F30 + + thumb_func_start sub_0806BA34 +sub_0806BA34: @ 0x0806BA34 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov sb, r0 + adds r4, r1, #0 + ldr r0, _0806BA58 @ =0x00004912 + mov r8, r0 + movs r0, #0 + str r0, [r4, #0x14] + movs r0, #0x73 + bl sub_0807CBD0 + cmp r0, #0 + beq _0806BA60 + ldr r0, _0806BA5C @ =0x00004913 + mov r8, r0 + b _0806BB06 + .align 2, 0 +_0806BA58: .4byte 0x00004912 +_0806BA5C: .4byte 0x00004913 +_0806BA60: + movs r0, #0x39 + bl sub_0807CA84 + adds r7, r0, #0 + movs r0, #0x3a + bl sub_0807CA84 + adds r6, r0, #0 + movs r0, #0x3b + bl sub_0807CA84 + adds r5, r0, #0 + cmp r7, #1 + bne _0806BA88 + ldr r0, _0806BA84 @ =0x00004906 + mov r8, r0 + str r7, [r4, #0x14] + b _0806BAA2 + .align 2, 0 +_0806BA84: .4byte 0x00004906 +_0806BA88: + cmp r6, #1 + bne _0806BA98 + ldr r0, _0806BA94 @ =0x00004907 + mov r8, r0 + str r6, [r4, #0x14] + b _0806BAA2 + .align 2, 0 +_0806BA94: .4byte 0x00004907 +_0806BA98: + cmp r5, #1 + bne _0806BAB4 + ldr r0, _0806BAB0 @ =0x00004908 + mov r8, r0 + str r5, [r4, #0x14] +_0806BAA2: + movs r0, #0x6b + bl sub_0807CCB4 + movs r0, #0x6a + bl sub_0807CCB4 + b _0806BB06 + .align 2, 0 +_0806BAB0: .4byte 0x00004908 +_0806BAB4: + movs r0, #0x6a + bl sub_0807CBD0 + cmp r0, #0 + beq _0806BB06 + movs r0, #0x6b + bl sub_0807CBD0 + cmp r0, #0 + bne _0806BAD0 + ldr r0, _0806BACC @ =0x00004901 + b _0806BAD6 + .align 2, 0 +_0806BACC: .4byte 0x00004901 +_0806BAD0: + cmp r7, #0 + bne _0806BAE4 + ldr r0, _0806BAE0 @ =0x00004902 +_0806BAD6: + mov r8, r0 + movs r0, #0x6b + bl sub_0807CCB4 + b _0806BB06 + .align 2, 0 +_0806BAE0: .4byte 0x00004902 +_0806BAE4: + cmp r6, #0 + bne _0806BAF8 + ldr r0, _0806BAF4 @ =0x00004903 + mov r8, r0 + movs r0, #0x6d + bl sub_0807CCB4 + b _0806BB06 + .align 2, 0 +_0806BAF4: .4byte 0x00004903 +_0806BAF8: + cmp r5, #0 + bne _0806BB06 + ldr r0, _0806BB18 @ =0x00004904 + mov r8, r0 + movs r0, #0x70 + bl sub_0807CCB4 +_0806BB06: + mov r0, r8 + mov r1, sb + bl sub_08056398 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806BB18: .4byte 0x00004904 + + thumb_func_start sub_0806BB1C +sub_0806BB1C: @ 0x0806BB1C + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + movs r4, #1 + rsbs r4, r4, #0 + movs r0, #0x39 + bl sub_0807CA84 + cmp r0, #1 + bne _0806BB34 + movs r4, #0x39 + b _0806BB52 +_0806BB34: + movs r0, #0x3a + bl sub_0807CA84 + cmp r0, #1 + bne _0806BB42 + movs r4, #0x3a + b _0806BB52 +_0806BB42: + movs r0, #0x3b + bl sub_0807CA84 + cmp r0, #1 + bne _0806BB4E + movs r4, #0x3b +_0806BB4E: + cmp r4, #0 + ble _0806BB78 +_0806BB52: + ldr r0, [r6, #4] + cmp r0, #0 + bne _0806BB70 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08095BE0 + adds r0, r5, #0 + movs r1, #0xc + bl sub_08004260 + movs r0, #0xcd + bl sub_080A3268 + b _0806BB78 +_0806BB70: + adds r0, r4, #0 + movs r1, #2 + bl sub_0807CAA0 +_0806BB78: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0806BB7C +sub_0806BB7C: @ 0x0806BB7C + push {r4, lr} + adds r4, r1, #0 + movs r0, #0 + str r0, [r4, #0x14] + movs r0, #0x39 + bl sub_0807CA84 + cmp r0, #2 + bne _0806BBAC + movs r0, #0x3a + bl sub_0807CA84 + cmp r0, #2 + bne _0806BBAC + movs r0, #0x3b + bl sub_0807CA84 + cmp r0, #2 + bne _0806BBAC + movs r0, #0x73 + bl sub_0807CCB4 + movs r0, #1 + str r0, [r4, #0x14] +_0806BBAC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806BBB0 +sub_0806BBB0: @ 0x0806BBB0 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x46 + bl sub_0807CA84 + cmp r0, #0 + bne _0806BBCC + movs r0, #0x29 + bl sub_0807CC30 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r1, r1, #0x1f + b _0806BBCE +_0806BBCC: + movs r1, #2 +_0806BBCE: + ldr r0, _0806BBE0 @ =gUnk_08113078 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r4, #0 + bl sub_08056398 + pop {r4, pc} + .align 2, 0 +_0806BBE0: .4byte gUnk_08113078 + + thumb_func_start sub_0806BBE4 +sub_0806BBE4: @ 0x0806BBE4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806BC40 + ldrb r0, [r4, #0xa] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _0806BC28 @ =gUnk_08113140 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806BC54 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0xe] + movs r0, #1 + ands r1, r0 + lsls r1, r1, #6 + ldrb r2, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + lsls r0, r0, #0x19 + cmp r0, #0 + blt _0806BC2C + movs r0, #6 + b _0806BC2E + .align 2, 0 +_0806BC28: .4byte gUnk_08113140 +_0806BC2C: + movs r0, #2 +_0806BC2E: + strb r0, [r4, #0x14] + ldrb r0, [r4, #0x14] + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_0806BC58 + adds r0, r4, #0 + bl sub_0807DD64 +_0806BC40: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 +_0806BC54: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806BC58 +sub_0806BC58: @ 0x0806BC58 + push {lr} + movs r1, #2 + bl sub_0805E3A0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806BC64 +sub_0806BC64: @ 0x0806BC64 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r2, #0x7f + ands r2, r0 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + pop {r4, pc} + + thumb_func_start sub_0806BC94 +sub_0806BC94: @ 0x0806BC94 + push {lr} + ldrb r3, [r0, #0x18] + lsls r3, r3, #0x19 + lsrs r3, r3, #0x1f + rsbs r2, r3, #0 + orrs r2, r3 + asrs r2, r2, #0x1f + movs r3, #8 + ands r2, r3 + ldr r1, [r1, #4] + adds r1, r1, r2 + ldrb r2, [r0, #0x14] + lsrs r2, r2, #1 + adds r1, r1, r2 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806BCB8 +sub_0806BCB8: @ 0x0806BCB8 + ldrb r1, [r0, #0xe] + strb r1, [r0, #0x14] + bx lr + .align 2, 0 + + thumb_func_start sub_0806BCC0 +sub_0806BCC0: @ 0x0806BCC0 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xa] + cmp r0, #0 + bne _0806BCD0 + adds r0, r1, #0 + bl sub_0806F188 +_0806BCD0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806BCD4 +sub_0806BCD4: @ 0x0806BCD4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806BCE8 +sub_0806BCE8: @ 0x0806BCE8 + push {lr} + ldrb r1, [r0, #0xa] + lsls r1, r1, #3 + ldr r2, _0806BCF8 @ =gUnk_08113158 + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806BCF8: .4byte gUnk_08113158 + + thumb_func_start sub_0806BCFC +sub_0806BCFC: @ 0x0806BCFC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806BD4C + ldrb r0, [r4, #0xa] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _0806BD48 @ =gUnk_08113140 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806BD52 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + movs r1, #0x41 + rsbs r1, r1, #0 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0806BC58 + adds r0, r4, #0 + movs r1, #3 + bl sub_080042AC + b _0806BD52 + .align 2, 0 +_0806BD48: .4byte gUnk_08113140 +_0806BD4C: + adds r0, r4, #0 + bl sub_080042B8 +_0806BD52: + pop {r4, pc} + + thumb_func_start sub_0806BD54 +sub_0806BD54: @ 0x0806BD54 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806BD6A + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0807DD50 + b _0806BD72 +_0806BD6A: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 +_0806BD72: + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0806BD94 + movs r0, #0xef + ands r0, r1 + strb r0, [r4] + movs r0, #0x82 + lsls r0, r0, #1 + bl sub_08004488 + movs r0, #0x10 + movs r1, #0 + bl sub_08080964 +_0806BD94: + ldrb r1, [r4] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0806BDAA + movs r0, #0xdf + ands r0, r1 + strb r0, [r4] + movs r0, #0x7c + bl sub_08004488 +_0806BDAA: + pop {r4, pc} + + thumb_func_start sub_0806BDAC +sub_0806BDAC: @ 0x0806BDAC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _0806BDE6 + cmp r0, #1 + bgt _0806BDC0 + cmp r0, #0 + beq _0806BDC6 + b _0806BE3A +_0806BDC0: + cmp r0, #2 + beq _0806BE26 + b _0806BE3A +_0806BDC6: + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD50 + b _0806BE3A +_0806BDE6: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0806BE1C + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + ldr r1, _0806BE18 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0806F118 + b _0806BE3A + .align 2, 0 +_0806BE18: .4byte gUnk_03001160 +_0806BE1C: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + b _0806BE3A +_0806BE26: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806BE3A + movs r0, #1 + strb r0, [r4, #0xc] +_0806BE3A: + pop {r4, pc} + + thumb_func_start sub_0806BE3C +sub_0806BE3C: @ 0x0806BE3C + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_0806BE54 +sub_0806BE54: @ 0x0806BE54 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _0806BE7A + adds r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + adds r0, r2, #0 + movs r1, #2 + bl sub_080042AC + b _0806BE80 +_0806BE7A: + adds r0, r2, #0 + bl sub_080042B8 +_0806BE80: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806BE84 +sub_0806BE84: @ 0x0806BE84 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r4, r1, #0 + movs r0, #0 + str r0, [r4, #0x14] + movs r5, #1 + movs r0, #0x69 + bl sub_0807CBD0 + cmp r0, #0 + bne _0806BEA6 + movs r5, #0 + movs r0, #0x69 + bl sub_0807CCB4 + movs r0, #1 + str r0, [r4, #0x14] +_0806BEA6: + movs r0, #0x3c + bl sub_0807CA84 + cmp r0, #1 + bls _0806BEB2 + movs r5, #2 +_0806BEB2: + ldr r0, _0806BEC4 @ =gUnk_08113344 + lsls r1, r5, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r6, #0 + bl sub_08056398 + pop {r4, r5, r6, pc} + .align 2, 0 +_0806BEC4: .4byte gUnk_08113344 + + thumb_func_start sub_0806BEC8 +sub_0806BEC8: @ 0x0806BEC8 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r5, r1, #0 + movs r4, #0 + str r4, [r5, #0x14] + movs r0, #0x3c + bl sub_0807CA84 + cmp r0, #1 + bne _0806BEE2 + movs r4, #1 + str r4, [r5, #0x14] + b _0806BEE8 +_0806BEE2: + cmp r0, #1 + bls _0806BEE8 + movs r4, #2 +_0806BEE8: + ldr r0, _0806BEF8 @ =gUnk_0811334A + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r6, #0 + bl sub_08056398 + pop {r4, r5, r6, pc} + .align 2, 0 +_0806BEF8: .4byte gUnk_0811334A + + thumb_func_start sub_0806BEFC +sub_0806BEFC: @ 0x0806BEFC + push {lr} + movs r0, #0xbf + lsls r0, r0, #1 + ldr r1, _0806BF2C @ =0x0000058E + movs r2, #1 + bl sub_0807B314 + ldr r0, _0806BF30 @ =0x0000017F + ldr r1, _0806BF34 @ =0x0000058F + movs r2, #1 + bl sub_0807B314 + movs r0, #0xc0 + lsls r0, r0, #1 + ldr r1, _0806BF38 @ =0x000005CE + movs r2, #1 + bl sub_0807B314 + ldr r0, _0806BF3C @ =0x00000181 + ldr r1, _0806BF40 @ =0x000005CF + movs r2, #1 + bl sub_0807B314 + pop {pc} + .align 2, 0 +_0806BF2C: .4byte 0x0000058E +_0806BF30: .4byte 0x0000017F +_0806BF34: .4byte 0x0000058F +_0806BF38: .4byte 0x000005CE +_0806BF3C: .4byte 0x00000181 +_0806BF40: .4byte 0x000005CF + + thumb_func_start sub_0806BF44 +sub_0806BF44: @ 0x0806BF44 + push {r4, r5, lr} + adds r2, r0, #0 + adds r4, r1, #0 + movs r0, #0 + str r0, [r4, #0x14] + movs r1, #0x2e + ldrsh r0, [r2, r1] + ldr r3, _0806BF78 @ =gUnk_03000BF0 + movs r5, #0xa + ldrsh r1, [r3, r5] + subs r0, r0, r1 + adds r0, #0x10 + ldr r1, _0806BF7C @ =0x0000010F + cmp r0, r1 + bhi _0806BF76 + movs r1, #0x32 + ldrsh r0, [r2, r1] + movs r2, #0xc + ldrsh r1, [r3, r2] + subs r0, r0, r1 + adds r0, #0x18 + cmp r0, #0xcf + bhi _0806BF76 + movs r0, #1 + str r0, [r4, #0x14] +_0806BF76: + pop {r4, r5, pc} + .align 2, 0 +_0806BF78: .4byte gUnk_03000BF0 +_0806BF7C: .4byte 0x0000010F + + thumb_func_start sub_0806BF80 +sub_0806BF80: @ 0x0806BF80 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0806BFBE + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806BFA2 + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD50 +_0806BFA2: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0806BFD8 + b _0806BFD4 +_0806BFBE: + ldrb r0, [r4, #0xc] + adds r1, r0, #0 + cmp r1, #0 + bne _0806BFD4 + adds r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0x1e] + adds r0, r4, #0 + adds r1, r4, #0 + bl sub_0806FAD8 +_0806BFD4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806BFD8 +sub_0806BFD8: @ 0x0806BFD8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x5b + ldrb r0, [r0] + movs r5, #3 + adds r1, r5, #0 + ands r1, r0 + cmp r1, #1 + beq _0806BFF0 + cmp r1, #2 + beq _0806C002 + b _0806C00A +_0806BFF0: + bl sub_08000E50 + adds r1, r0, #0 + ands r1, r5 + adds r1, #0xc + adds r0, r4, #0 + bl sub_08004260 + b _0806C00A +_0806C002: + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_0806C00A: + pop {r4, r5, pc} + + thumb_func_start sub_0806C00C +sub_0806C00C: @ 0x0806C00C + push {lr} + adds r2, r1, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _0806C022 + movs r0, #1 +_0806C022: + str r0, [r2, #0x14] + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806C028 +sub_0806C028: @ 0x0806C028 + push {lr} + ldrb r2, [r0, #0x14] + lsrs r2, r2, #1 + ldr r1, [r1, #4] + adds r1, r1, r2 + bl sub_08004260 + pop {pc} + + thumb_func_start sub_0806C038 +sub_0806C038: @ 0x0806C038 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _0806C074 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + subs r4, r0, #5 + cmp r4, #0 + beq _0806C048 + movs r4, #0 +_0806C048: + movs r0, #0x46 + bl sub_0807CA84 + cmp r0, #0 + bne _0806C086 + movs r0, #0x3a + bl sub_0807CA84 + cmp r0, #0 + bne _0806C078 + movs r4, #6 + movs r0, #0xaf + bl sub_0807CBD0 + cmp r0, #0 + bne _0806C086 + movs r4, #5 + movs r0, #0xaf + bl sub_0807CCB4 + b _0806C086 + .align 2, 0 +_0806C074: .4byte gUnk_02002A40 +_0806C078: + movs r4, #7 + movs r0, #0x3a + bl sub_0807CA84 + cmp r0, #1 + bls _0806C086 + movs r4, #0 +_0806C086: + ldr r0, _0806C098 @ =gUnk_081133A4 + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl sub_08056398 + pop {r4, r5, pc} + .align 2, 0 +_0806C098: .4byte gUnk_081133A4 + + thumb_func_start sub_0806C09C +sub_0806C09C: @ 0x0806C09C + push {lr} + ldr r3, _0806C0AC @ =gUnk_081133B4 + movs r1, #1 + movs r2, #0 + bl sub_08078850 + pop {pc} + .align 2, 0 +_0806C0AC: .4byte gUnk_081133B4 + + thumb_func_start sub_0806C0B0 +sub_0806C0B0: @ 0x0806C0B0 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r5, r0, #0 + cmp r5, #0 + bne _0806C104 + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x19] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD50 + ldr r1, _0806C100 @ =gUnk_03000F50 + adds r2, r1, #0 + adds r2, #0x66 + movs r0, #0xfd + lsls r0, r0, #6 + strh r0, [r2] + adds r1, #0x68 + movs r0, #0x80 + lsls r0, r0, #5 + strh r0, [r1] + strh r0, [r4, #0x24] + str r5, [r4, #0x20] + b _0806C134 + .align 2, 0 +_0806C100: .4byte gUnk_03000F50 +_0806C104: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + movs r1, #0x24 + ldrsh r0, [r4, r1] + lsls r3, r0, #8 + ldr r0, [r4, #0x20] + adds r3, r3, r0 + asrs r3, r3, #0x10 + cmp r3, #0x10 + ble _0806C11E + movs r3, #0x10 +_0806C11E: + cmp r3, #3 + bgt _0806C124 + movs r3, #4 +_0806C124: + ldr r2, _0806C138 @ =gUnk_03000F50 + lsls r1, r3, #8 + movs r0, #0x10 + subs r0, r0, r3 + orrs r1, r0 + adds r2, #0x68 + strh r1, [r2] + strh r1, [r4, #0x24] +_0806C134: + pop {r4, r5, pc} + .align 2, 0 +_0806C138: .4byte gUnk_03000F50 + + thumb_func_start sub_0806C13C +sub_0806C13C: @ 0x0806C13C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _0806C182 + cmp r0, #1 + bgt _0806C150 + cmp r0, #0 + beq _0806C156 + b _0806C1D2 +_0806C150: + cmp r0, #2 + beq _0806C1BE + b _0806C1D2 +_0806C156: + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + adds r0, r4, #0 + bl sub_0807DD50 + b _0806C1D2 +_0806C182: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0806C1B4 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + ldr r1, _0806C1B0 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0806F118 + b _0806C1D2 + .align 2, 0 +_0806C1B0: .4byte gUnk_03001160 +_0806C1B4: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + b _0806C1D2 +_0806C1BE: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806C1D2 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x88 + bl sub_0807CCB4 +_0806C1D2: + pop {r4, pc} + + thumb_func_start sub_0806C1D4 +sub_0806C1D4: @ 0x0806C1D4 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _0806C1FA + adds r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + adds r0, r2, #0 + movs r1, #2 + bl sub_080042AC + b _0806C200 +_0806C1FA: + adds r0, r2, #0 + bl sub_080042B8 +_0806C200: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806C204 +sub_0806C204: @ 0x0806C204 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xc] + cmp r0, #0 + bne _0806C21A + adds r0, #1 + strb r0, [r1, #0xc] + adds r0, r1, #0 + bl sub_0807DD50 + b _0806C222 +_0806C21A: + adds r0, r1, #0 + movs r1, #0 + bl sub_0807DD94 +_0806C222: + pop {pc} + + thumb_func_start sub_0806C224 +sub_0806C224: @ 0x0806C224 + push {lr} + ldr r0, _0806C234 @ =gUnk_0813AD60 + bl sub_08080840 + ldr r1, _0806C238 @ =gUnk_030010A0 + movs r0, #6 + strb r0, [r1, #9] + pop {pc} + .align 2, 0 +_0806C234: .4byte gUnk_0813AD60 +_0806C238: .4byte gUnk_030010A0 + + thumb_func_start sub_0806C23C +sub_0806C23C: @ 0x0806C23C + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0xf + movs r2, #0x43 + movs r3, #0 + bl sub_080A2988 + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0806C27C @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r4, #0x38 + ldrb r2, [r4] + movs r0, #0x73 + bl sub_0807B314 + movs r0, #0x73 + bl sub_080A3268 + pop {r4, r5, pc} + .align 2, 0 +_0806C27C: .4byte gUnk_03000BF0 + + thumb_func_start sub_0806C280 +sub_0806C280: @ 0x0806C280 + push {lr} + movs r0, #0x50 + bl sub_0807CD04 + ldr r0, _0806C298 @ =gUnk_0813AD74 + bl sub_08080840 + ldr r1, _0806C29C @ =gUnk_030010A0 + movs r0, #6 + strb r0, [r1, #9] + pop {pc} + .align 2, 0 +_0806C298: .4byte gUnk_0813AD74 +_0806C29C: .4byte gUnk_030010A0 + + thumb_func_start sub_0806C2A0 +sub_0806C2A0: @ 0x0806C2A0 + push {lr} + ldr r0, [r1, #4] + cmp r0, #0 + beq _0806C2AE + cmp r0, #1 + beq _0806C2B8 + b _0806C2C0 +_0806C2AE: + movs r0, #0xd + movs r1, #4 + bl sub_08050054 + b _0806C2C0 +_0806C2B8: + movs r0, #0xc + movs r1, #4 + bl sub_08050054 +_0806C2C0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806C2C4 +sub_0806C2C4: @ 0x0806C2C4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _0806C2FA + cmp r0, #1 + bgt _0806C2D8 + cmp r0, #0 + beq _0806C2DE + b _0806C350 +_0806C2D8: + cmp r0, #2 + beq _0806C342 + b _0806C350 +_0806C2DE: + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xe] + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_0807DD50 + b _0806C350 +_0806C2FA: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0806C338 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + ldr r1, _0806C334 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r4, #0 + adds r1, #0x58 + ldrb r1, [r1] + movs r2, #4 + rsbs r2, r2, #0 + ands r1, r2 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0806F118 + b _0806C350 + .align 2, 0 +_0806C334: .4byte gUnk_03001160 +_0806C338: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + b _0806C350 +_0806C342: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806C350 + movs r0, #1 + strb r0, [r4, #0xc] +_0806C350: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806C354 +sub_0806C354: @ 0x0806C354 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_0806C36C +sub_0806C36C: @ 0x0806C36C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _0806C392 + adds r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + adds r0, r2, #0 + movs r1, #6 + bl sub_080042AC + b _0806C398 +_0806C392: + adds r0, r2, #0 + bl sub_080042B8 +_0806C398: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806C39C +sub_0806C39C: @ 0x0806C39C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xc] + cmp r5, #1 + beq _0806C3E2 + cmp r5, #1 + bgt _0806C3B0 + cmp r5, #0 + beq _0806C3B6 + b _0806C450 +_0806C3B0: + cmp r5, #2 + beq _0806C436 + b _0806C450 +_0806C3B6: + adds r0, r4, #0 + bl sub_0806C454 + cmp r0, #0 + beq _0806C450 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xe] + strb r0, [r4, #0x14] + adds r0, r4, #0 + adds r0, #0x69 + strb r5, [r0] + adds r0, r4, #0 + bl sub_0807DD50 + b _0806C450 +_0806C3E2: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0806C420 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x69 + strb r0, [r1] + ldr r1, _0806C41C @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0806F118 + b _0806C450 + .align 2, 0 +_0806C41C: .4byte gUnk_03001160 +_0806C420: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + b _0806C450 +_0806C436: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806C450 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x69 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08004260 +_0806C450: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806C454 +sub_0806C454: @ 0x0806C454 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0806C470 @ =gUnk_08113754 + bl sub_0806FDEC + cmp r0, #0 + beq _0806C474 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + movs r0, #1 + b _0806C476 + .align 2, 0 +_0806C470: .4byte gUnk_08113754 +_0806C474: + movs r0, #0 +_0806C476: + pop {r4, pc} + + thumb_func_start sub_0806C478 +sub_0806C478: @ 0x0806C478 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r2, #0x7f + ands r2, r0 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + pop {r4, pc} + + thumb_func_start sub_0806C4A8 +sub_0806C4A8: @ 0x0806C4A8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _0806C4D8 + adds r0, r4, #0 + bl sub_0806EDC4 + adds r1, r0, #0 + cmp r1, #0 + bge _0806C4CC + movs r1, #3 +_0806C4CC: + lsls r0, r1, #1 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_080042AC + movs r0, #1 +_0806C4D8: + str r0, [r5, #0x14] + pop {r4, r5, pc} + + thumb_func_start sub_0806C4DC +sub_0806C4DC: @ 0x0806C4DC + push {lr} + ldr r1, _0806C4F0 @ =gUnk_02002A40 + ldrb r1, [r1, #8] + lsls r1, r1, #3 + ldr r2, _0806C4F4 @ =gUnk_08113760 + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806C4F0: .4byte gUnk_02002A40 +_0806C4F4: .4byte gUnk_08113760 + + thumb_func_start sub_0806C4F8 +sub_0806C4F8: @ 0x0806C4F8 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_0806C510 +sub_0806C510: @ 0x0806C510 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806C548 + adds r0, r4, #0 + bl sub_0806C454 + cmp r0, #0 + beq _0806C54E + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrh r0, [r4, #0x32] + subs r0, #4 + strh r0, [r4, #0x32] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + b _0806C54E +_0806C548: + adds r0, r4, #0 + bl sub_08004274 +_0806C54E: + pop {r4, pc} + + thumb_func_start sub_0806C550 +sub_0806C550: @ 0x0806C550 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806C56E + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD50 + b _0806C576 +_0806C56E: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 +_0806C576: + pop {r4, pc} + + thumb_func_start sub_0806C578 +sub_0806C578: @ 0x0806C578 + push {lr} + ldr r0, _0806C584 @ =gUnk_0813AD10 + bl sub_08080840 + pop {pc} + .align 2, 0 +_0806C584: .4byte gUnk_0813AD10 + + thumb_func_start sub_0806C588 +sub_0806C588: @ 0x0806C588 + push {lr} + ldr r0, _0806C594 @ =gUnk_0813AD24 + bl sub_08080840 + pop {pc} + .align 2, 0 +_0806C594: .4byte gUnk_0813AD24 + + thumb_func_start sub_0806C598 +sub_0806C598: @ 0x0806C598 + push {lr} + ldr r0, _0806C5A4 @ =gUnk_0813AD38 + bl sub_08080840 + pop {pc} + .align 2, 0 +_0806C5A4: .4byte gUnk_0813AD38 + + thumb_func_start sub_0806C5A8 +sub_0806C5A8: @ 0x0806C5A8 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r4, [r5, #0xc] + cmp r4, #1 + beq _0806C604 + cmp r4, #1 + bgt _0806C5BC + cmp r4, #0 + beq _0806C5C2 + b _0806C670 +_0806C5BC: + cmp r4, #2 + beq _0806C656 + b _0806C670 +_0806C5C2: + ldrb r1, [r5, #0xa] + lsls r1, r1, #4 + ldr r0, _0806C600 @ =gUnk_08113910 + adds r1, r1, r0 + adds r0, r5, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806C670 + movs r2, #1 + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + ldrb r0, [r5, #0xe] + strb r0, [r5, #0x14] + adds r0, r5, #0 + adds r0, #0x69 + strb r4, [r0] + adds r0, r5, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r5, #0 + bl sub_0807DD50 + b _0806C670 + .align 2, 0 +_0806C600: .4byte gUnk_08113910 +_0806C604: + adds r2, r5, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0806C64C + movs r0, #0 + strb r1, [r5, #0xc] + strb r0, [r2] + adds r4, r5, #0 + adds r4, #0x58 + ldrb r0, [r4] + adds r1, r5, #0 + adds r1, #0x69 + strb r0, [r1] + ldr r1, _0806C648 @ =gUnk_03001160 + adds r0, r5, #0 + bl sub_080045C4 + bl sub_0806F5A4 + ldrb r1, [r4] + movs r2, #4 + rsbs r2, r2, #0 + ands r1, r2 + adds r1, r1, r0 + adds r0, r5, #0 + bl sub_08004260 + adds r0, r5, #0 + bl sub_0806F118 + b _0806C670 + .align 2, 0 +_0806C648: .4byte gUnk_03001160 +_0806C64C: + adds r0, r5, #0 + movs r1, #0 + bl sub_0807DD94 + b _0806C670 +_0806C656: + adds r0, r5, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806C670 + movs r0, #1 + strb r0, [r5, #0xc] + adds r0, r5, #0 + adds r0, #0x69 + ldrb r1, [r0] + adds r0, r5, #0 + bl sub_08004260 +_0806C670: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806C674 +sub_0806C674: @ 0x0806C674 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_0806C68C +sub_0806C68C: @ 0x0806C68C + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r2, [r0] + movs r0, #0x81 + rsbs r0, r0, #0 + ands r2, r0 + ldrb r6, [r4, #0x1e] + adds r0, r4, #0 + adds r0, #0x5b + ldrb r0, [r0] + movs r5, #0x3f + ands r5, r0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0806C6D2 + adds r2, #3 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + adds r2, r6, #0 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + b _0806C70A +_0806C6D2: + adds r2, #6 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + adds r2, r5, #3 + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #2 + adds r2, r6, #0 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #2 + movs r2, #1 + bl sub_0806FF88 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl sub_0806FFD8 + adds r0, r4, #0 + bl sub_0807000C +_0806C70A: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0806C70C +sub_0806C70C: @ 0x0806C70C + push {lr} + adds r3, r0, #0 + ldr r0, _0806C730 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + subs r0, #2 + cmp r0, #0 + bge _0806C71C + movs r0, #0 +_0806C71C: + ldrb r1, [r3, #0xa] + lsls r1, r1, #6 + lsls r0, r0, #3 + ldr r2, _0806C734 @ =gUnk_08113930 + adds r0, r0, r2 + adds r1, r1, r0 + adds r0, r3, #0 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806C730: .4byte gUnk_02002A40 +_0806C734: .4byte gUnk_08113930 + + thumb_func_start sub_0806C738 +sub_0806C738: @ 0x0806C738 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806C778 + ldrb r1, [r4, #0xa] + lsls r1, r1, #4 + ldr r0, _0806C774 @ =gUnk_08113910 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806C77E + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + b _0806C77E + .align 2, 0 +_0806C774: .4byte gUnk_08113910 +_0806C778: + adds r0, r4, #0 + bl sub_08004274 +_0806C77E: + pop {r4, pc} + + thumb_func_start sub_0806C780 +sub_0806C780: @ 0x0806C780 + push {lr} + ldr r2, _0806C794 @ =gUnk_08113A7C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0806C794: .4byte gUnk_08113A7C + + thumb_func_start sub_0806C798 +sub_0806C798: @ 0x0806C798 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xa] + lsls r1, r1, #4 + ldr r0, _0806C7D0 @ =gUnk_08113A1C + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806C7CE + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xe] + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_0807DD50 + adds r0, r4, #0 + bl sub_0806C7D4 +_0806C7CE: + pop {r4, pc} + .align 2, 0 +_0806C7D0: .4byte gUnk_08113A1C + + thumb_func_start sub_0806C7D4 +sub_0806C7D4: @ 0x0806C7D4 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x39 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #2 + bne _0806C7F4 + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r2] + adds r0, r4, #0 + bl sub_0806F118 + b _0806C82C +_0806C7F4: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + ldrb r0, [r4, #0xb] + cmp r0, #3 + bne _0806C82C + movs r0, #0x58 + bl sub_0807CC30 + cmp r0, #0 + bne _0806C82C + movs r0, #0x63 + bl sub_0807CBD0 + cmp r0, #0 + beq _0806C82C + movs r0, #0 + bl sub_0807CC3C + cmp r0, #0 + beq _0806C82C + movs r0, #7 + strb r0, [r4, #0xb] + ldr r1, _0806C830 @ =gUnk_08014A80 + adds r0, r4, #0 + bl sub_0807DD80 +_0806C82C: + pop {r4, pc} + .align 2, 0 +_0806C830: .4byte gUnk_08014A80 + + thumb_func_start sub_0806C834 +sub_0806C834: @ 0x0806C834 + push {lr} + adds r2, r0, #0 + ldr r0, _0806C858 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0806C856 + ldrb r0, [r2, #0xc] + subs r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x14] + lsrs r1, r1, #1 + adds r1, #4 + adds r0, r2, #0 + bl sub_08004260 +_0806C856: + pop {pc} + .align 2, 0 +_0806C858: .4byte gUnk_02000050 + + thumb_func_start sub_0806C85C +sub_0806C85C: @ 0x0806C85C + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806C86C + movs r0, #1 + strb r0, [r4, #0xc] +_0806C86C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806C870 +sub_0806C870: @ 0x0806C870 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_0806C888 +sub_0806C888: @ 0x0806C888 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r7, #0x3f + ands r7, r1 + ldrb r0, [r4, #0xa] + cmp r0, #4 + bne _0806C8D4 + adds r0, r4, #0 + movs r1, #0 + movs r2, #9 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + adds r2, r7, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #2 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl sub_0806FFD8 + adds r0, r4, #0 + movs r1, #2 + movs r2, #1 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + b _0806C90A +_0806C8D4: + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0806C8E2 + movs r6, #1 + movs r5, #0 + b _0806C8E6 +_0806C8E2: + movs r6, #0 + movs r5, #1 +_0806C8E6: + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r7, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FF60 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C +_0806C90A: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0806C90C +sub_0806C90C: @ 0x0806C90C + push {lr} + movs r2, #0 + str r2, [r1, #0x14] + ldr r3, _0806C924 @ =gUnk_08113A8C + ldrb r2, [r0, #0xb] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_0806C924: .4byte gUnk_08113A8C + + thumb_func_start sub_0806C928 +sub_0806C928: @ 0x0806C928 + push {lr} + ldr r1, _0806C93C @ =gUnk_02002A40 + ldrb r1, [r1, #8] + lsls r1, r1, #3 + ldr r2, _0806C940 @ =gUnk_08113ABC + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806C93C: .4byte gUnk_02002A40 +_0806C940: .4byte gUnk_08113ABC + + thumb_func_start sub_0806C944 +sub_0806C944: @ 0x0806C944 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x58 + bl sub_0807CC30 + cmp r0, #0 + bne _0806C956 + movs r1, #0 + b _0806C964 +_0806C956: + movs r0, #0x63 + bl sub_0807CBD0 + movs r1, #2 + cmp r0, #0 + beq _0806C964 + movs r1, #1 +_0806C964: + ldr r0, _0806C974 @ =gUnk_08113B0C + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r4, #0 + bl sub_08056398 + pop {r4, pc} + .align 2, 0 +_0806C974: .4byte gUnk_08113B0C + + thumb_func_start sub_0806C978 +sub_0806C978: @ 0x0806C978 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x58 + bl sub_0807CC30 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r1, r1, #0x1f + ldr r0, _0806C998 @ =gUnk_08113B12 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r4, #0 + bl sub_08056398 + pop {r4, pc} + .align 2, 0 +_0806C998: .4byte gUnk_08113B12 + + thumb_func_start sub_0806C99C +sub_0806C99C: @ 0x0806C99C + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x58 + bl sub_0807CC30 + rsbs r1, r0, #0 + orrs r1, r0 + asrs r4, r1, #0x1f + movs r0, #2 + ands r4, r0 + movs r0, #0x63 + bl sub_0807CBD0 + cmp r0, #0 + beq _0806C9BC + adds r4, #1 +_0806C9BC: + ldr r0, _0806C9CC @ =gUnk_08113B16 + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl sub_08056398 + pop {r4, r5, pc} + .align 2, 0 +_0806C9CC: .4byte gUnk_08113B16 + + thumb_func_start sub_0806C9D0 +sub_0806C9D0: @ 0x0806C9D0 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 + movs r0, #0x64 + bl sub_0807CBD0 + cmp r0, #0 + bne _0806C9E2 + movs r4, #1 +_0806C9E2: + ldr r0, _0806C9F4 @ =gUnk_08113B1E + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl sub_08056398 + pop {r4, r5, pc} + .align 2, 0 +_0806C9F4: .4byte gUnk_08113B1E + + thumb_func_start sub_0806C9F8 +sub_0806C9F8: @ 0x0806C9F8 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x58 + bl sub_0807CC30 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r1, r1, #0x1f + ldr r0, _0806CA18 @ =gUnk_08113B22 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r4, #0 + bl sub_08056398 + pop {r4, pc} + .align 2, 0 +_0806CA18: .4byte gUnk_08113B22 + + thumb_func_start sub_0806CA1C +sub_0806CA1C: @ 0x0806CA1C + push {lr} + adds r1, r0, #0 + ldr r0, _0806CA28 @ =0x0000251B + bl sub_08056398 + pop {pc} + .align 2, 0 +_0806CA28: .4byte 0x0000251B + + thumb_func_start sub_0806CA2C +sub_0806CA2C: @ 0x0806CA2C + push {lr} + adds r1, r0, #0 + ldr r0, _0806CA38 @ =0x00002527 + bl sub_08056398 + pop {pc} + .align 2, 0 +_0806CA38: .4byte 0x00002527 + + thumb_func_start sub_0806CA3C +sub_0806CA3C: @ 0x0806CA3C + push {lr} + ldr r1, _0806CA48 @ =gUnk_08113B28 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806CA48: .4byte gUnk_08113B28 + + thumb_func_start sub_0806CA4C +sub_0806CA4C: @ 0x0806CA4C + push {lr} + ldr r1, _0806CA58 @ =gUnk_08113B30 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806CA58: .4byte gUnk_08113B30 + + thumb_func_start sub_0806CA5C +sub_0806CA5C: @ 0x0806CA5C + push {r4, lr} + adds r4, r1, #0 + ldr r3, _0806CA8C @ =gUnk_08113B38 + ldrb r1, [r4, #0x18] + adds r2, r1, #1 + strb r2, [r4, #0x18] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r1, r1, r3 + ldrb r1, [r1] + strh r1, [r4, #0x10] + ldrb r0, [r0, #0xb] + cmp r0, #0xa + bne _0806CA7E + movs r0, #0xe8 + bl sub_08004488 +_0806CA7E: + ldrh r0, [r4, #0x10] + cmp r0, #0 + beq _0806CA8A + ldr r1, _0806CA90 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0806CA8A: + pop {r4, pc} + .align 2, 0 +_0806CA8C: .4byte gUnk_08113B38 +_0806CA90: .4byte gUnk_02033280 + + thumb_func_start sub_0806CA94 +sub_0806CA94: @ 0x0806CA94 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806CAD4 + ldrb r1, [r4, #0xa] + lsls r1, r1, #4 + ldr r0, _0806CAD0 @ =gUnk_08113A1C + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806CADA + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #6 + bl sub_08004260 + b _0806CADA + .align 2, 0 +_0806CAD0: .4byte gUnk_08113A1C +_0806CAD4: + adds r0, r4, #0 + bl sub_08004274 +_0806CADA: + pop {r4, pc} + + thumb_func_start sub_0806CADC +sub_0806CADC: @ 0x0806CADC + push {lr} + ldr r2, _0806CAF0 @ =gUnk_08113D8C + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0806CAF0: .4byte gUnk_08113D8C + + thumb_func_start sub_0806CAF4 +sub_0806CAF4: @ 0x0806CAF4 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _0806CB66 + adds r0, #1 + strb r0, [r5, #0xc] + adds r0, r5, #0 + movs r1, #2 + bl sub_0805E3A0 + movs r0, #0x4a + movs r1, #1 + movs r2, #0 + bl sub_0806ED50 + adds r4, r0, #0 + cmp r4, #0 + beq _0806CB2C + str r5, [r4, #0x50] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAD8 +_0806CB2C: + movs r0, #0x4a + movs r1, #2 + movs r2, #0 + bl sub_0806ED50 + adds r4, r0, #0 + cmp r4, #0 + beq _0806CB4E + str r5, [r4, #0x50] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAB0 +_0806CB4E: + adds r0, r5, #0 + bl sub_0807DD64 + adds r0, r5, #0 + bl sub_08078778 + ldr r3, _0806CB7C @ =gUnk_08113D84 + ldrb r2, [r3, #4] + adds r0, r5, #0 + movs r1, #1 + bl sub_08078850 +_0806CB66: + adds r0, r5, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r5, #0 + bl sub_0807DDE4 + adds r0, r5, #0 + bl sub_08004274 + pop {r4, r5, pc} + .align 2, 0 +_0806CB7C: .4byte gUnk_08113D84 + + thumb_func_start sub_0806CB80 +sub_0806CB80: @ 0x0806CB80 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r1, r0, #0 + cmp r1, #0 + bne _0806CB9E + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #2 + strb r0, [r4, #0x14] + strb r1, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 +_0806CB9E: + ldr r0, [r4, #0x50] + cmp r0, #0 + beq _0806CBB0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #3 + ands r0, r1 + adds r0, #0x21 + strb r0, [r4, #0x1e] +_0806CBB0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806CBB4 +sub_0806CBB4: @ 0x0806CBB4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806CBD6 + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #2 + strb r0, [r4, #0x14] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #0x11 + bl sub_08004260 +_0806CBD6: + adds r0, r4, #0 + bl sub_08004274 + ldr r1, [r4, #0x50] + cmp r1, #0 + beq _0806CC06 + ldrb r0, [r4, #0x18] + movs r3, #4 + rsbs r3, r3, #0 + adds r2, r3, #0 + ands r2, r0 + strb r2, [r4, #0x18] + adds r0, r1, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0806CC06 + adds r0, r2, #0 + ands r0, r3 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] +_0806CC06: + pop {r4, pc} + + thumb_func_start sub_0806CC08 +sub_0806CC08: @ 0x0806CC08 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _0806CC40 + cmp r0, #1 + bgt _0806CC1C + cmp r0, #0 + beq _0806CC22 + b _0806CCB0 +_0806CC1C: + cmp r0, #2 + beq _0806CC96 + b _0806CCB0 +_0806CC22: + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD64 +_0806CC40: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0806CC80 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x69 + strb r0, [r1] + ldr r1, _0806CC7C @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r1, #8 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0806F118 + b _0806CCB0 + .align 2, 0 +_0806CC7C: .4byte gUnk_03001160 +_0806CC80: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + b _0806CCB0 +_0806CC96: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806CCB0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x69 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080042AC +_0806CCB0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806CCB4 +sub_0806CCB4: @ 0x0806CCB4 + push {lr} + adds r2, r1, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _0806CCCA + movs r0, #1 +_0806CCCA: + str r0, [r2, #0x14] + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806CCD0 +sub_0806CCD0: @ 0x0806CCD0 + push {r4, lr} + adds r3, r0, #0 + adds r4, r1, #0 + adds r0, #0x5b + ldrb r0, [r0] + movs r2, #0x3f + ands r2, r0 + cmp r2, #0 + beq _0806CCF4 + ldrb r1, [r3, #0x14] + lsrs r1, r1, #1 + adds r1, r2, r1 + adds r0, r3, #0 + bl sub_08004260 + movs r0, #1 + str r0, [r4, #0x14] + b _0806CCF6 +_0806CCF4: + str r2, [r4, #0x14] +_0806CCF6: + pop {r4, pc} + + thumb_func_start sub_0806CCF8 +sub_0806CCF8: @ 0x0806CCF8 + push {lr} + movs r1, #0x85 + lsls r1, r1, #1 + bl sub_0801D2B4 + pop {pc} + + thumb_func_start sub_0806CD04 +sub_0806CD04: @ 0x0806CD04 + push {lr} + ldr r1, _0806CD10 @ =0x0000010B + bl sub_0801D2B4 + pop {pc} + .align 2, 0 +_0806CD10: .4byte 0x0000010B + + thumb_func_start sub_0806CD14 +sub_0806CD14: @ 0x0806CD14 + push {lr} + movs r1, #0x86 + lsls r1, r1, #1 + bl sub_0801D2B4 + pop {pc} + + thumb_func_start sub_0806CD20 +sub_0806CD20: @ 0x0806CD20 + push {lr} + ldr r1, _0806CD2C @ =0x0000010D + bl sub_0801D2B4 + pop {pc} + .align 2, 0 +_0806CD2C: .4byte 0x0000010D + + thumb_func_start sub_0806CD30 +sub_0806CD30: @ 0x0806CD30 + push {lr} + movs r1, #0x87 + lsls r1, r1, #1 + bl sub_0801D2B4 + pop {pc} + + thumb_func_start sub_0806CD3C +sub_0806CD3C: @ 0x0806CD3C + push {lr} + ldr r1, _0806CD48 @ =0x0000010F + bl sub_0801D2B4 + pop {pc} + .align 2, 0 +_0806CD48: .4byte 0x0000010F + + thumb_func_start sub_0806CD4C +sub_0806CD4C: @ 0x0806CD4C + push {lr} + movs r1, #0x88 + lsls r1, r1, #1 + bl sub_0801D2B4 + pop {pc} + + thumb_func_start sub_0806CD58 +sub_0806CD58: @ 0x0806CD58 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_0806CD70 +sub_0806CD70: @ 0x0806CD70 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806CD9E + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #6 + bl sub_080042AC + b _0806CDA4 +_0806CD9E: + adds r0, r4, #0 + bl sub_080042B8 +_0806CDA4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806CDA8 +sub_0806CDA8: @ 0x0806CDA8 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xc] + cmp r1, #1 + beq _0806CDE8 + cmp r1, #1 + bgt _0806CDBC + cmp r1, #0 + beq _0806CDC2 + b _0806CE58 +_0806CDBC: + cmp r1, #2 + beq _0806CE3E + b _0806CE58 +_0806CDC2: + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x69 + strb r1, [r0] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD50 + b _0806CE58 +_0806CDE8: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0806CE28 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x69 + strb r0, [r1] + ldr r1, _0806CE24 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0806F118 + b _0806CE58 + .align 2, 0 +_0806CE24: .4byte gUnk_03001160 +_0806CE28: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_080042B8 + b _0806CE58 +_0806CE3E: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806CE58 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x69 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080042AC +_0806CE58: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806CE5C +sub_0806CE5C: @ 0x0806CE5C + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08078784 + ldr r3, _0806CE7C @ =gUnk_08113F44 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_08078850 + pop {r4, pc} + .align 2, 0 +_0806CE7C: .4byte gUnk_08113F44 + + thumb_func_start sub_0806CE80 +sub_0806CE80: @ 0x0806CE80 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _0806CEB4 @ =gUnk_02002A40 + ldrb r4, [r0, #8] + cmp r4, #5 + bne _0806CED6 + movs r0, #0x46 + bl sub_0807CA84 + cmp r0, #0 + bne _0806CEC0 + movs r0, #0x70 + bl sub_0807CBD0 + cmp r0, #0 + beq _0806CEBC + movs r0, #0x71 + bl sub_0807CBD0 + cmp r0, #0 + bne _0806CEB8 + movs r4, #0xb + movs r0, #0x71 + bl sub_0807CCB4 + b _0806CED6 + .align 2, 0 +_0806CEB4: .4byte gUnk_02002A40 +_0806CEB8: + movs r4, #0xc + b _0806CED6 +_0806CEBC: + movs r4, #0xa + b _0806CED6 +_0806CEC0: + movs r0, #0x89 + bl sub_0807CBD0 + cmp r0, #0 + bne _0806CED4 + movs r4, #0xd + movs r0, #0x89 + bl sub_0807CCB4 + b _0806CED6 +_0806CED4: + movs r4, #0xe +_0806CED6: + lsls r1, r4, #3 + ldr r0, _0806CEE4 @ =gUnk_08113F48 + adds r1, r1, r0 + adds r0, r5, #0 + bl sub_0806F1AC + pop {r4, r5, pc} + .align 2, 0 +_0806CEE4: .4byte gUnk_08113F48 + + thumb_func_start sub_0806CEE8 +sub_0806CEE8: @ 0x0806CEE8 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _0806CF0E + adds r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + adds r0, r2, #0 + movs r1, #8 + bl sub_080042AC + b _0806CF14 +_0806CF0E: + adds r0, r2, #0 + bl sub_080042B8 +_0806CF14: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806CF18 +sub_0806CF18: @ 0x0806CF18 + push {lr} + ldr r2, _0806CF2C @ =gUnk_081140D4 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0806CF2C: .4byte gUnk_081140D4 + + thumb_func_start sub_0806CF30 +sub_0806CF30: @ 0x0806CF30 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _0806CF5E + movs r0, #1 + strb r0, [r5, #0xc] + strb r0, [r5, #0xd] + ldrh r1, [r5, #0x2e] + adds r0, r5, #0 + adds r0, #0x68 + strh r1, [r0] + adds r0, r5, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r5, #0 + bl sub_0806D0B0 + adds r0, r5, #0 + bl sub_0807DD64 + b _0806CF6C +_0806CF5E: + adds r0, r5, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r5, #0 + bl sub_0807DDE4 +_0806CF6C: + ldrb r0, [r5, #0xd] + cmp r0, #2 + beq _0806CFD4 + cmp r0, #2 + bgt _0806D000 + cmp r0, #0 + blt _0806D000 + ldr r0, _0806CFCC @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0806D000 + ldr r0, _0806CFD0 @ =gUnk_03001160 + movs r1, #0x2e + ldrsh r2, [r0, r1] + ldrh r3, [r5, #0x2e] + movs r4, #0x2e + ldrsh r1, [r5, r4] + adds r4, r0, #0 + cmp r2, r1 + bge _0806CFA8 + adds r0, r5, #0 + adds r0, #0x68 + ldrh r0, [r0] + subs r0, #0x20 + cmp r0, r1 + bge _0806CFA8 + subs r0, r3, #1 + strh r0, [r5, #0x2e] +_0806CFA8: + movs r3, #0x2e + ldrsh r1, [r4, r3] + ldrh r2, [r5, #0x2e] + movs r4, #0x2e + ldrsh r0, [r5, r4] + cmp r1, r0 + ble _0806D000 + adds r0, r5, #0 + adds r0, #0x68 + ldrh r0, [r0] + adds r0, #0x20 + movs r3, #0x2e + ldrsh r1, [r5, r3] + cmp r0, r1 + ble _0806D000 + adds r0, r2, #1 + strh r0, [r5, #0x2e] + b _0806D000 + .align 2, 0 +_0806CFCC: .4byte gUnk_030010A0 +_0806CFD0: .4byte gUnk_03001160 +_0806CFD4: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806D000 + bl sub_08000E50 + adds r4, r0, #0 + ldr r1, _0806D008 @ =gUnk_081140CC + movs r0, #3 + ands r0, r4 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + bl sub_080A3268 + movs r0, #7 + ands r4, r0 + lsls r4, r4, #4 + adds r4, #0x80 + strb r4, [r5, #0xe] +_0806D000: + adds r0, r5, #0 + bl sub_0806D02C + pop {r4, r5, pc} + .align 2, 0 +_0806D008: .4byte gUnk_081140CC + + thumb_func_start sub_0806D00C +sub_0806D00C: @ 0x0806D00C + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + movs r0, #0 + str r0, [sp] + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + movs r3, #0 + bl sub_0805EB2C + cmp r0, #0 + beq _0806D028 + str r0, [r4, #0x50] +_0806D028: + add sp, #4 + pop {r4, pc} + + thumb_func_start sub_0806D02C +sub_0806D02C: @ 0x0806D02C + push {lr} + bl sub_0806D164 + ldr r2, _0806D0A8 @ =gUnk_03000F50 + ldrh r1, [r2] + movs r3, #0x80 + lsls r3, r3, #7 + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2] + adds r1, r2, #0 + adds r1, #0x60 + ldr r0, _0806D0AC @ =0x00003F3F + strh r0, [r1] + adds r1, #2 + movs r0, #0x3d + strh r0, [r1] + movs r1, #0x16 + ldrsh r0, [r2, r1] + rsbs r0, r0, #0 + movs r3, #0x80 + lsls r3, r3, #1 + adds r1, r0, r3 + cmp r0, #0 + bge _0806D060 + movs r0, #0 +_0806D060: + cmp r0, #0xf0 + ble _0806D066 + movs r0, #0xf0 +_0806D066: + cmp r1, #0 + bge _0806D06C + movs r1, #0 +_0806D06C: + cmp r1, #0xf0 + ble _0806D072 + movs r1, #0xf0 +_0806D072: + lsls r0, r0, #8 + orrs r0, r1 + adds r1, r2, #0 + adds r1, #0x5a + strh r0, [r1] + movs r1, #0x18 + ldrsh r0, [r2, r1] + rsbs r0, r0, #0 + adds r1, r0, r3 + cmp r0, #0 + bge _0806D08A + movs r0, #0 +_0806D08A: + cmp r0, #0xa0 + ble _0806D090 + movs r0, #0xa0 +_0806D090: + cmp r1, #0 + bge _0806D096 + movs r1, #0 +_0806D096: + cmp r1, #0xa0 + ble _0806D09C + movs r1, #0xa0 +_0806D09C: + lsls r0, r0, #8 + orrs r0, r1 + adds r1, r2, #0 + adds r1, #0x5e + strh r0, [r1] + pop {pc} + .align 2, 0 +_0806D0A8: .4byte gUnk_03000F50 +_0806D0AC: .4byte 0x00003F3F + + thumb_func_start sub_0806D0B0 +sub_0806D0B0: @ 0x0806D0B0 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _0806D0E8 @ =gUnk_0200B650 + movs r1, #0 + str r1, [r0] + movs r0, #0x30 + bl sub_0801D7EC + bl sub_0806D110 + ldr r5, _0806D0EC @ =gUnk_02002F00 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r5, #0 + bl sub_0801D630 + cmp r4, #0 + beq _0806D0DA + adds r0, r4, #0 + bl sub_0806D164 +_0806D0DA: + ldr r0, _0806D0F0 @ =gUnk_03000F50 + ldr r1, _0806D0F4 @ =0x00001D47 + strh r1, [r0, #0x14] + str r5, [r0, #0x1c] + movs r1, #1 + strh r1, [r0, #0x1a] + pop {r4, r5, pc} + .align 2, 0 +_0806D0E8: .4byte gUnk_0200B650 +_0806D0EC: .4byte gUnk_02002F00 +_0806D0F0: .4byte gUnk_03000F50 +_0806D0F4: .4byte 0x00001D47 + + thumb_func_start sub_0806D0F8 +sub_0806D0F8: @ 0x0806D0F8 + push {lr} + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + bl sub_0805EB00 + cmp r0, #0 + beq _0806D10C + bl sub_0806D0B0 +_0806D10C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806D110 +sub_0806D110: @ 0x0806D110 + push {r4, r5, lr} + ldr r4, _0806D134 @ =gUnk_02002F00 + movs r0, #0x80 + lsls r0, r0, #7 + adds r5, r4, r0 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806D138 + movs r0, #0x80 + lsls r0, r0, #4 + adds r4, r4, r0 + adds r5, #0x40 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806D138 + pop {r4, r5, pc} + .align 2, 0 +_0806D134: .4byte gUnk_02002F00 + + thumb_func_start sub_0806D138 +sub_0806D138: @ 0x0806D138 + push {r4, r5, r6, lr} + adds r3, r0, #0 + movs r4, #0 + ldr r2, _0806D15C @ =0x040000D4 + ldr r6, _0806D160 @ =0x80000020 + movs r5, #0x80 + lsls r5, r5, #1 +_0806D146: + str r3, [r2] + str r1, [r2, #4] + str r6, [r2, #8] + ldr r0, [r2, #8] + adds r4, #1 + adds r3, #0x40 + adds r1, r1, r5 + cmp r4, #0x1f + bls _0806D146 + pop {r4, r5, r6, pc} + .align 2, 0 +_0806D15C: .4byte 0x040000D4 +_0806D160: .4byte 0x80000020 + + thumb_func_start sub_0806D164 +sub_0806D164: @ 0x0806D164 + push {r4, r5, r6, r7, lr} + ldr r5, _0806D1B8 @ =gUnk_03000BF0 + movs r1, #0xa + ldrsh r2, [r5, r1] + movs r3, #0x2e + ldrsh r1, [r0, r3] + subs r2, r2, r1 + adds r2, #0xa0 + ldr r4, _0806D1BC @ =gUnk_03000F50 + movs r3, #0xf + adds r1, r2, #0 + ands r1, r3 + strh r1, [r4, #0x16] + ldrh r1, [r5, #0xc] + ldrh r0, [r0, #0x32] + subs r1, r1, r0 + adds r1, #0xb0 + strh r1, [r4, #0x18] + ldr r3, _0806D1C0 @ =gUnk_02006F00 + ldr r0, _0806D1C4 @ =0xFFFFC000 + adds r6, r3, r0 + movs r5, #0x20 + lsrs r2, r2, #4 + lsls r2, r2, #2 + adds r3, r2, r3 + adds r7, r4, #0 + ldr r1, _0806D1C8 @ =0x040000D4 + ldr r4, _0806D1CC @ =0x80000020 + movs r2, #0x80 + lsls r2, r2, #1 +_0806D1A0: + str r3, [r1] + str r6, [r1, #4] + str r4, [r1, #8] + ldr r0, [r1, #8] + adds r3, r3, r2 + adds r6, #0x40 + subs r5, #1 + cmp r5, #0 + bne _0806D1A0 + movs r0, #1 + strh r0, [r7, #0x1a] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806D1B8: .4byte gUnk_03000BF0 +_0806D1BC: .4byte gUnk_03000F50 +_0806D1C0: .4byte gUnk_02006F00 +_0806D1C4: .4byte 0xFFFFC000 +_0806D1C8: .4byte 0x040000D4 +_0806D1CC: .4byte 0x80000020 + + thumb_func_start sub_0806D1D0 +sub_0806D1D0: @ 0x0806D1D0 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xc] + cmp r5, #0 + bne _0806D21A + bl sub_0806D00C + cmp r0, #0 + bne _0806D1E6 + bl sub_0805E780 +_0806D1E6: + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0x1b] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + orrs r0, r1 + strb r0, [r4, #0x19] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + strb r5, [r4, #0x1e] + movs r0, #0x1e + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 +_0806D21A: + ldrb r0, [r4, #0xd] + cmp r0, #1 + beq _0806D25A + cmp r0, #1 + ble _0806D228 + cmp r0, #2 + beq _0806D25E +_0806D228: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r5, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806D24A + bl sub_08000E50 + movs r1, #0x7f + ands r0, r1 + adds r0, #0x30 + strb r0, [r4, #0xe] + movs r0, #8 + strb r0, [r4, #0xf] + movs r0, #1 + strb r0, [r4, #0x1e] +_0806D24A: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0806D268 + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r5 + cmp r0, #0 + bne _0806D268 +_0806D25A: + strb r0, [r4, #0x1e] + b _0806D268 +_0806D25E: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_0806D268: + ldr r0, [r4, #0x50] + ldrh r1, [r0, #0x2e] + strh r1, [r4, #0x2e] + ldrh r0, [r0, #0x32] + strh r0, [r4, #0x32] + pop {r4, r5, pc} + + thumb_func_start sub_0806D274 +sub_0806D274: @ 0x0806D274 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806D2CA + adds r0, r4, #0 + bl sub_0806D00C + cmp r0, #0 + bne _0806D28C + bl sub_0805E780 +_0806D28C: + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0x1b] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + orrs r0, r1 + strb r0, [r4, #0x19] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + movs r0, #2 + strb r0, [r4, #0x1e] + movs r0, #8 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + movs r0, #0x4c + movs r1, #3 + movs r2, #0 + bl sub_0806ED50 + cmp r0, #0 + beq _0806D2CA + str r4, [r0, #0x54] +_0806D2CA: + ldrb r0, [r4, #0xd] + cmp r0, #4 + bhi _0806D2F4 + lsls r0, r0, #2 + ldr r1, _0806D2DC @ =_0806D2E0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0806D2DC: .4byte _0806D2E0 +_0806D2E0: @ jump table + .4byte _0806D2F4 @ case 0 + .4byte _0806D2F4 @ case 1 + .4byte _0806D31C @ case 2 + .4byte _0806D334 @ case 3 + .4byte _0806D338 @ case 4 +_0806D2F4: + ldr r0, _0806D318 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + beq _0806D338 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806D33C + movs r0, #8 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0x1e] + movs r1, #1 + eors r0, r1 + b _0806D33A + .align 2, 0 +_0806D318: .4byte gUnk_02000050 +_0806D31C: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806D33C + movs r0, #8 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0x1e] + movs r1, #1 + eors r0, r1 + b _0806D33A +_0806D334: + movs r0, #4 + b _0806D33A +_0806D338: + movs r0, #2 +_0806D33A: + strb r0, [r4, #0x1e] +_0806D33C: + ldr r0, [r4, #0x50] + ldrh r1, [r0, #0x2e] + strh r1, [r4, #0x2e] + ldrh r0, [r0, #0x32] + strh r0, [r4, #0x32] + pop {r4, pc} + + thumb_func_start sub_0806D348 +sub_0806D348: @ 0x0806D348 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806D39A + adds r0, r4, #0 + bl sub_0806D00C + cmp r0, #0 + bne _0806D360 + bl sub_0805E780 +_0806D360: + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0x1b] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + orrs r0, r1 + strb r0, [r4, #0x19] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + movs r0, #5 + strb r0, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 +_0806D39A: + ldr r0, [r4, #0x54] + ldrb r0, [r0, #0x1e] + cmp r0, #4 + bne _0806D3AA + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + b _0806D3B2 +_0806D3AA: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 +_0806D3B2: + strb r0, [r4, #0x18] + ldr r0, [r4, #0x50] + ldrh r1, [r0, #0x2e] + strh r1, [r4, #0x2e] + ldrh r0, [r0, #0x32] + strh r0, [r4, #0x32] + pop {r4, pc} + + thumb_func_start sub_0806D3C0 +sub_0806D3C0: @ 0x0806D3C0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806D3F4 + adds r0, r4, #0 + bl sub_0806D00C + cmp r0, #0 + bne _0806D3D8 + bl sub_0805E780 +_0806D3D8: + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _0806D3F0 @ =gUnk_080FD180 + str r0, [r4, #0x48] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD64 + b _0806D408 + .align 2, 0 +_0806D3F0: .4byte gUnk_080FD180 +_0806D3F4: + ldr r0, [r4, #0x50] + ldrh r0, [r0, #0x2e] + strh r0, [r4, #0x2e] + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 +_0806D408: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806D40C +sub_0806D40C: @ 0x0806D40C + push {lr} + ldrb r1, [r0, #0x18] + movs r2, #0x40 + orrs r1, r2 + strb r1, [r0, #0x18] + bl sub_0806D41C + pop {pc} + + thumb_func_start sub_0806D41C +sub_0806D41C: @ 0x0806D41C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806D45E + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #6 + strb r0, [r4, #0x1e] + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806D4C0 + adds r0, r4, #0 + movs r1, #1 + bl sub_0806D4C0 + adds r0, r4, #0 + movs r1, #2 + bl sub_0806D4C0 + adds r0, r4, #0 + movs r1, #3 + bl sub_0806D4C0 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + b _0806D46C +_0806D45E: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 +_0806D46C: + ldr r0, _0806D4A8 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _0806D4BE + movs r1, #0x2e + ldrsh r0, [r4, r1] + subs r0, #0x20 + movs r2, #0x32 + ldrsh r1, [r4, r2] + movs r2, #0x40 + movs r3, #0x40 + bl sub_0806FBFC + cmp r0, #0 + beq _0806D4AC + adds r2, r4, #0 + adds r2, #0x63 + ldrb r3, [r2] + movs r1, #0 + ldrsb r1, [r2, r1] + movs r0, #8 + rsbs r0, r0, #0 + cmp r1, r0 + ble _0806D4BE + subs r0, r3, #1 + strb r0, [r2] + b _0806D4BE + .align 2, 0 +_0806D4A8: .4byte gUnk_030010A0 +_0806D4AC: + adds r1, r4, #0 + adds r1, #0x63 + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bge _0806D4BE + adds r0, r2, #1 + strb r0, [r1] +_0806D4BE: + pop {r4, pc} + + thumb_func_start sub_0806D4C0 +sub_0806D4C0: @ 0x0806D4C0 + push {r4, r5, lr} + adds r5, r0, #0 + adds r1, #6 + movs r0, #0x4c + movs r2, #0 + bl sub_0806ED50 + adds r4, r0, #0 + cmp r4, #0 + beq _0806D4EE + str r5, [r4, #0x50] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAB0 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 +_0806D4EE: + pop {r4, r5, pc} + + thumb_func_start sub_0806D4F0 +sub_0806D4F0: @ 0x0806D4F0 + push {lr} + movs r1, #0 + bl sub_0806D520 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806D4FC +sub_0806D4FC: @ 0x0806D4FC + push {lr} + movs r1, #1 + bl sub_0806D520 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806D508 +sub_0806D508: @ 0x0806D508 + push {lr} + movs r1, #2 + bl sub_0806D520 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806D514 +sub_0806D514: @ 0x0806D514 + push {lr} + movs r1, #3 + bl sub_0806D520 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806D520 +sub_0806D520: @ 0x0806D520 + push {r4, lr} + adds r4, r0, #0 + adds r3, r1, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806D540 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _0806D5B0 @ =gUnk_08114100 + adds r0, r3, r0 + ldrb r0, [r0] + adds r0, #6 + strb r0, [r4, #0xf] + strb r0, [r4, #0x1e] + movs r0, #8 + strb r0, [r4, #0xe] +_0806D540: + ldr r0, [r4, #0x50] + ldrh r1, [r0, #0x2e] + strh r1, [r4, #0x2e] + ldrh r1, [r0, #0x32] + strh r1, [r4, #0x32] + adds r0, #0x62 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x62 + strb r0, [r1] + ldr r0, [r4, #0x50] + adds r0, #0x63 + ldrb r0, [r0] + adds r1, #1 + strb r0, [r1] + ldr r0, [r4, #0x50] + ldrb r1, [r0, #0x1b] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r4, #0x1b] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _0806D590 + movs r1, #0x2e + ldrsh r0, [r4, r1] + lsls r1, r3, #4 + subs r0, r0, r1 + adds r0, #0xc + movs r2, #0x32 + ldrsh r1, [r4, r2] + movs r2, #0x18 + movs r3, #0x40 + bl sub_0806FBFC + cmp r0, #0 + beq _0806D5B4 +_0806D590: + ldrb r1, [r4, #0x1e] + ldrb r0, [r4, #0xf] + adds r0, #2 + cmp r1, r0 + bge _0806D5D0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806D5D0 + movs r0, #8 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0x1e] + adds r0, #1 + b _0806D5CE + .align 2, 0 +_0806D5B0: .4byte gUnk_08114100 +_0806D5B4: + ldrb r1, [r4, #0x1e] + ldrb r0, [r4, #0xf] + cmp r1, r0 + bls _0806D5D0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806D5D0 + movs r0, #8 + strb r0, [r4, #0xe] + subs r0, r1, #1 +_0806D5CE: + strb r0, [r4, #0x1e] +_0806D5D0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806D5D4 +sub_0806D5D4: @ 0x0806D5D4 + push {lr} + bl sub_08053500 + movs r0, #0xd + bl sub_0805436C + adds r1, r0, #0 + cmp r1, #2 + beq _0806D5F0 + ldr r0, _0806D5FC @ =gUnk_02002A40 + adds r0, #0xb4 + adds r0, r1, r0 + movs r1, #0 + strb r1, [r0] +_0806D5F0: + movs r0, #0xd + movs r1, #0 + bl sub_0807CAA0 + pop {pc} + .align 2, 0 +_0806D5FC: .4byte gUnk_02002A40 + + thumb_func_start sub_0806D600 +sub_0806D600: @ 0x0806D600 + push {lr} + movs r2, #0 + ldr r0, _0806D618 @ =gUnk_02002A40 + ldr r3, _0806D61C @ =0x00000494 + adds r0, r0, r3 + ldr r0, [r0] + cmp r0, #0 + bne _0806D612 + movs r2, #1 +_0806D612: + str r2, [r1, #0x14] + pop {pc} + .align 2, 0 +_0806D618: .4byte gUnk_02002A40 +_0806D61C: .4byte 0x00000494 + + thumb_func_start sub_0806D620 +sub_0806D620: @ 0x0806D620 + push {lr} + movs r0, #0xd + movs r1, #0 + bl sub_0807CAA0 + movs r0, #0xe + movs r1, #0 + movs r2, #0 + bl sub_080A7C18 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806D638 +sub_0806D638: @ 0x0806D638 + ldrh r1, [r0, #0x32] + subs r1, #0x20 + strh r1, [r0, #0x32] + bx lr + + thumb_func_start sub_0806D640 +sub_0806D640: @ 0x0806D640 + ldrh r1, [r0, #0x32] + adds r1, #0x20 + movs r2, #0 + strh r1, [r0, #0x32] + adds r0, #0x39 + strb r2, [r0] + bx lr + .align 2, 0 + + thumb_func_start sub_0806D650 +sub_0806D650: @ 0x0806D650 + movs r1, #2 + strb r1, [r0, #0xd] + bx lr + .align 2, 0 + + thumb_func_start sub_0806D658 +sub_0806D658: @ 0x0806D658 + ldr r1, [r1, #4] + strb r1, [r0, #0xd] + bx lr + .align 2, 0 + + thumb_func_start sub_0806D660 +sub_0806D660: @ 0x0806D660 + ldrb r1, [r0, #0x1b] + movs r2, #0xc0 + orrs r1, r2 + strb r1, [r0, #0x1b] + bx lr + .align 2, 0 + + thumb_func_start sub_0806D66C +sub_0806D66C: @ 0x0806D66C + ldrb r2, [r0, #0x1b] + movs r1, #0x3f + ands r1, r2 + movs r2, #0x80 + orrs r1, r2 + strb r1, [r0, #0x1b] + bx lr + .align 2, 0 + + thumb_func_start sub_0806D67C +sub_0806D67C: @ 0x0806D67C + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r4, _0806D6CC @ =gUnk_08114104 + movs r0, #0 + ldrsb r0, [r4, r0] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _0806D6CA + adds r6, r1, #0 +_0806D690: + movs r1, #0 + ldrsb r1, [r4, r1] + adds r0, r5, #0 + movs r2, #0x40 + bl sub_080A29AC + adds r1, r0, #0 + cmp r1, #0 + beq _0806D6C0 + movs r0, #1 + ldrsb r0, [r4, r0] + ldrh r2, [r1, #0x2e] + adds r0, r0, r2 + strh r0, [r1, #0x2e] + movs r0, #2 + ldrsb r0, [r4, r0] + ldrh r2, [r1, #0x32] + adds r0, r0, r2 + strh r0, [r1, #0x32] + ldrb r0, [r4, #3] + strb r0, [r1, #0x15] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r1, #0x24] +_0806D6C0: + adds r4, #4 + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, r6 + bne _0806D690 +_0806D6CA: + pop {r4, r5, r6, pc} + .align 2, 0 +_0806D6CC: .4byte gUnk_08114104 + + thumb_func_start sub_0806D6D0 +sub_0806D6D0: @ 0x0806D6D0 + push {r4, lr} + sub sp, #4 + movs r4, #0 + str r4, [sp] + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + movs r3, #2 + bl sub_0805EB2C + adds r1, r0, #0 + cmp r1, #0 + beq _0806D6EE + movs r0, #2 + strb r0, [r1, #0xd] +_0806D6EE: + str r4, [sp] + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + movs r3, #1 + bl sub_0805EB2C + adds r1, r0, #0 + cmp r1, #0 + beq _0806D706 + movs r0, #1 + strb r0, [r1, #0xd] +_0806D706: + add sp, #4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806D70C +sub_0806D70C: @ 0x0806D70C + push {r4, lr} + sub sp, #4 + movs r4, #0 + str r4, [sp] + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + movs r3, #2 + bl sub_0805EB2C + adds r2, r0, #0 + cmp r2, #0 + beq _0806D728 + strb r4, [r2, #0xd] +_0806D728: + str r4, [sp] + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + movs r3, #1 + bl sub_0805EB2C + adds r2, r0, #0 + cmp r2, #0 + beq _0806D746 + strb r4, [r2, #0xd] + ldrb r0, [r2, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r2, #0x18] +_0806D746: + add sp, #4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806D74C +sub_0806D74C: @ 0x0806D74C + push {r4, lr} + sub sp, #4 + movs r4, #0 + str r4, [sp] + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + movs r3, #2 + bl sub_0805EB2C + adds r1, r0, #0 + cmp r1, #0 + beq _0806D76A + movs r0, #3 + strb r0, [r1, #0xd] +_0806D76A: + str r4, [sp] + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + movs r3, #1 + bl sub_0805EB2C + adds r1, r0, #0 + cmp r1, #0 + beq _0806D782 + movs r0, #2 + strb r0, [r1, #0xd] +_0806D782: + add sp, #4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806D788 +sub_0806D788: @ 0x0806D788 + push {r4, lr} + sub sp, #4 + movs r4, #0 + str r4, [sp] + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + movs r3, #2 + bl sub_0805EB2C + adds r1, r0, #0 + cmp r1, #0 + beq _0806D7A6 + movs r0, #4 + strb r0, [r1, #0xd] +_0806D7A6: + str r4, [sp] + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + movs r3, #1 + bl sub_0805EB2C + adds r1, r0, #0 + cmp r1, #0 + beq _0806D7BE + movs r0, #1 + strb r0, [r1, #0xd] +_0806D7BE: + add sp, #4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806D7C4 +sub_0806D7C4: @ 0x0806D7C4 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _0806D800 @ =gUnk_03001160 + ldrh r0, [r1, #0x2e] + movs r2, #0 + strh r0, [r4, #0x2e] + ldrh r0, [r1, #0x32] + subs r0, #0x18 + strh r0, [r4, #0x32] + str r2, [sp] + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + movs r3, #2 + bl sub_0805EB2C + cmp r0, #0 + beq _0806D7FC + movs r1, #0x2e + ldrsh r2, [r0, r1] + movs r1, #0x32 + ldrsh r3, [r0, r1] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0807DEDC +_0806D7FC: + add sp, #4 + pop {r4, r5, pc} + .align 2, 0 +_0806D800: .4byte gUnk_03001160 + + thumb_func_start sub_0806D804 +sub_0806D804: @ 0x0806D804 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #0 + str r0, [sp] + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + movs r3, #2 + bl sub_0805EB2C + adds r1, r0, #0 + cmp r1, #0 + beq _0806D83A + ldrh r0, [r1, #0x2e] + strh r0, [r4, #0x2e] + ldrh r0, [r1, #0x32] + subs r0, #0x10 + strh r0, [r4, #0x32] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] +_0806D83A: + ldr r0, _0806D854 @ =gUnk_03001160 + movs r1, #0x2e + ldrsh r2, [r0, r1] + movs r1, #0x32 + ldrsh r3, [r0, r1] + subs r3, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0807DEDC + add sp, #4 + pop {r4, r5, pc} + .align 2, 0 +_0806D854: .4byte gUnk_03001160 + + thumb_func_start sub_0806D858 +sub_0806D858: @ 0x0806D858 + adds r0, #0x29 + ldrb r2, [r0] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #8 + orrs r1, r2 + strb r1, [r0] + bx lr + .align 2, 0 + + thumb_func_start sub_0806D86C +sub_0806D86C: @ 0x0806D86C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806D888 + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD50 +_0806D888: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806D8A0 +sub_0806D8A0: @ 0x0806D8A0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r3, r1, #0 + movs r2, #0 + movs r0, #8 + strb r0, [r3, #0x19] + ldr r0, [r3, #8] + movs r1, #2 + orrs r0, r1 + str r0, [r3, #8] + str r2, [r3, #0x14] + movs r2, #0x10 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x19 + cmp r0, #0 + bge _0806D8C2 + rsbs r2, r2, #0 +_0806D8C2: + ldr r1, _0806D900 @ =gUnk_03001160 + movs r5, #0x2e + ldrsh r0, [r1, r5] + adds r2, r2, r0 + movs r0, #0x32 + ldrsh r1, [r1, r0] + adds r1, #2 + strh r2, [r3, #0x1e] + strh r1, [r3, #0x22] + movs r3, #0x2e + ldrsh r0, [r4, r3] + subs r2, r2, r0 + movs r5, #0x32 + ldrsh r0, [r4, r5] + subs r1, r1, r0 + adds r0, r2, #0 + bl sub_080045DA + strb r0, [r4, #0x15] + ldrb r2, [r4, #0x14] + movs r1, #0x80 + ands r1, r2 + ldr r2, _0806D904 @ =gUnk_08114134 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1c + adds r0, r0, r2 + ldrb r0, [r0] + orrs r1, r0 + strb r1, [r4, #0x14] + pop {r4, r5, pc} + .align 2, 0 +_0806D900: .4byte gUnk_03001160 +_0806D904: .4byte gUnk_08114134 + + thumb_func_start sub_0806D908 +sub_0806D908: @ 0x0806D908 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + ldr r3, _0806D93C @ =gUnk_03001160 + movs r5, #0x2e + ldrsh r2, [r3, r5] + movs r5, #0x32 + ldrsh r3, [r3, r5] + bl sub_080045D4 + strb r0, [r4, #0x15] + ldrb r2, [r4, #0x14] + movs r1, #0x80 + ands r1, r2 + ldr r2, _0806D940 @ =gUnk_08114144 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x19 + adds r0, r0, r2 + ldrb r0, [r0] + orrs r1, r0 + strb r1, [r4, #0x14] + pop {r4, r5, pc} + .align 2, 0 +_0806D93C: .4byte gUnk_03001160 +_0806D940: .4byte gUnk_08114144 + + thumb_func_start sub_0806D944 +sub_0806D944: @ 0x0806D944 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0x18] + movs r3, #0x41 + rsbs r3, r3, #0 + ands r3, r0 + strb r3, [r2, #0x18] + ldr r0, _0806D968 @ =gUnk_03001160 + ldr r1, [r2, #0x2c] + ldr r0, [r0, #0x2c] + cmp r1, r0 + bgt _0806D964 + movs r1, #0x40 + adds r0, r3, #0 + orrs r0, r1 + strb r0, [r2, #0x18] +_0806D964: + pop {pc} + .align 2, 0 +_0806D968: .4byte gUnk_03001160 + + thumb_func_start sub_0806D96C +sub_0806D96C: @ 0x0806D96C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x42 + movs r2, #0 + bl sub_080A29AC + adds r2, r0, #0 + cmp r2, #0 + beq _0806D99C + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r3] + ldr r3, _0806D9A0 @ =0xFFE80000 + adds r0, r4, #0 + adds r1, r2, #0 + movs r2, #0 + bl sub_0806FA48 +_0806D99C: + pop {r4, pc} + .align 2, 0 +_0806D9A0: .4byte 0xFFE80000 + + thumb_func_start sub_0806D9A4 +sub_0806D9A4: @ 0x0806D9A4 + push {lr} + ldr r1, _0806D9BC @ =gUnk_03001160 + ldr r2, [r0, #0x2c] + ldr r0, [r1, #0x2c] + adds r3, r1, #0 + cmp r2, r0 + bgt _0806D9C0 + ldrb r1, [r3, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + b _0806D9C6 + .align 2, 0 +_0806D9BC: .4byte gUnk_03001160 +_0806D9C0: + ldrb r0, [r3, #0x18] + movs r1, #0x40 + orrs r0, r1 +_0806D9C6: + strb r0, [r3, #0x18] + movs r0, #4 + strb r0, [r3, #0x14] + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806D9D0 +sub_0806D9D0: @ 0x0806D9D0 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _0806D9F8 + movs r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + subs r0, #5 + ands r0, r1 + strb r0, [r2, #0x18] + ldr r0, _0806D9F4 @ =gUnk_080FD170 + str r0, [r2, #0x48] + adds r0, r2, #0 + bl sub_0807DD50 + b _0806DA00 + .align 2, 0 +_0806D9F4: .4byte gUnk_080FD170 +_0806D9F8: + adds r0, r2, #0 + movs r1, #0 + bl sub_0807DD94 +_0806DA00: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806DA04 +sub_0806DA04: @ 0x0806DA04 + push {lr} + ldr r3, [r1, #4] + lsls r3, r3, #3 + ldr r1, _0806DA18 @ =gUnk_0811415C + adds r3, r3, r1 + ldrb r2, [r3, #4] + movs r1, #1 + bl sub_08078850 + pop {pc} + .align 2, 0 +_0806DA18: .4byte gUnk_0811415C + + thumb_func_start sub_0806DA1C +sub_0806DA1C: @ 0x0806DA1C + push {lr} + ldr r3, _0806DA34 @ =gUnk_081141A4 + ldr r2, [r1, #4] + lsls r0, r2, #2 + adds r0, r0, r3 + ldr r0, [r0] + ldr r1, _0806DA38 @ =gUnk_081141E4 + adds r2, r2, r1 + ldrb r1, [r2] + bl sub_0808091C + pop {pc} + .align 2, 0 +_0806DA34: .4byte gUnk_081141A4 +_0806DA38: .4byte gUnk_081141E4 + + thumb_func_start sub_0806DA3C +sub_0806DA3C: @ 0x0806DA3C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + subs r0, #1 + cmp r0, #0xa + bhi _0806DA84 + lsls r0, r0, #2 + ldr r1, _0806DA54 @ =_0806DA58 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0806DA54: .4byte _0806DA58 +_0806DA58: @ jump table + .4byte _0806DA88 @ case 0 + .4byte _0806DA8C @ case 1 + .4byte _0806DA90 @ case 2 + .4byte _0806DA94 @ case 3 + .4byte _0806DA98 @ case 4 + .4byte _0806DAA0 @ case 5 + .4byte _0806DAA0 @ case 6 + .4byte _0806DAA0 @ case 7 + .4byte _0806DAA0 @ case 8 + .4byte _0806DAA0 @ case 9 + .4byte _0806DA9C @ case 10 +_0806DA84: + movs r0, #0 + b _0806DAA6 +_0806DA88: + movs r0, #1 + b _0806DAA6 +_0806DA8C: + movs r0, #2 + b _0806DAA6 +_0806DA90: + movs r0, #3 + b _0806DAA6 +_0806DA94: + movs r0, #4 + b _0806DAA6 +_0806DA98: + movs r0, #5 + b _0806DAA6 +_0806DA9C: + movs r0, #9 + b _0806DAA6 +_0806DAA0: + adds r0, r2, #0 + bl sub_0801E99C +_0806DAA6: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {pc} + + thumb_func_start sub_0806DAAC +sub_0806DAAC: @ 0x0806DAAC + push {r4, lr} + adds r4, r1, #0 + bl sub_0806DA3C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_0801E7F4 + str r0, [r4, #0x14] + ldr r2, _0806DACC @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, pc} + .align 2, 0 +_0806DACC: .4byte gUnk_02033280 + + thumb_func_start sub_0806DAD0 +sub_0806DAD0: @ 0x0806DAD0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806DA3C + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl sub_08078790 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806DAE8 +sub_0806DAE8: @ 0x0806DAE8 + push {lr} + ldrb r0, [r0, #0xa] + subs r0, #1 + cmp r0, #4 + bhi _0806DB3A + lsls r0, r0, #2 + ldr r1, _0806DAFC @ =_0806DB00 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0806DAFC: .4byte _0806DB00 +_0806DB00: @ jump table + .4byte _0806DB14 @ case 0 + .4byte _0806DB1C @ case 1 + .4byte _0806DB24 @ case 2 + .4byte _0806DB2C @ case 3 + .4byte _0806DB34 @ case 4 +_0806DB14: + movs r0, #0xee + bl sub_0807CCB4 + b _0806DB3A +_0806DB1C: + movs r0, #0xef + bl sub_0807CCB4 + b _0806DB3A +_0806DB24: + movs r0, #0xf0 + bl sub_0807CCB4 + b _0806DB3A +_0806DB2C: + movs r0, #0xf1 + bl sub_0807CCB4 + b _0806DB3A +_0806DB34: + movs r0, #0xf2 + bl sub_0807CCB4 +_0806DB3A: + movs r0, #0xcd + bl sub_080A3268 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806DB44 +sub_0806DB44: @ 0x0806DB44 + push {r4, lr} + adds r4, r1, #0 + movs r0, #0 + str r0, [r4, #0x14] + movs r0, #0xee + bl sub_0807CBD0 + cmp r0, #0 + beq _0806DB82 + movs r0, #0xef + bl sub_0807CBD0 + cmp r0, #0 + beq _0806DB82 + movs r0, #0xf0 + bl sub_0807CBD0 + cmp r0, #0 + beq _0806DB82 + movs r0, #0xf1 + bl sub_0807CBD0 + cmp r0, #0 + beq _0806DB82 + movs r0, #0xf2 + bl sub_0807CBD0 + cmp r0, #0 + beq _0806DB82 + movs r0, #1 + str r0, [r4, #0x14] +_0806DB82: + pop {r4, pc} + + thumb_func_start sub_0806DB84 +sub_0806DB84: @ 0x0806DB84 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _0806DBE4 @ =gUnk_08114154 + str r0, [r5, #0x48] + movs r0, #0x3e + movs r1, #4 + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _0806DBB6 + ldr r2, _0806DBE8 @ =0xFFF80000 + adds r0, r5, #0 + adds r1, r4, #0 + movs r3, #0 + bl sub_0806FA48 + ldr r1, _0806DBEC @ =gUnk_08016030 + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] +_0806DBB6: + movs r0, #0x3e + movs r1, #5 + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _0806DBE2 + movs r2, #0x80 + lsls r2, r2, #0xc + adds r0, r5, #0 + adds r1, r4, #0 + movs r3, #0 + bl sub_0806FA48 + ldr r1, _0806DBF0 @ =gUnk_0801606C + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] +_0806DBE2: + pop {r4, r5, pc} + .align 2, 0 +_0806DBE4: .4byte gUnk_08114154 +_0806DBE8: .4byte 0xFFF80000 +_0806DBEC: .4byte gUnk_08016030 +_0806DBF0: .4byte gUnk_0801606C + + thumb_func_start sub_0806DBF4 +sub_0806DBF4: @ 0x0806DBF4 + push {r4, lr} + adds r4, r0, #0 + cmp r4, #1 + blo _0806DC36 + cmp r4, #4 + bls _0806DC04 + cmp r4, #6 + bne _0806DC36 +_0806DC04: + movs r4, #1 + movs r0, #2 + bl sub_0807CA84 + cmp r0, #0 + beq _0806DC12 + movs r4, #2 +_0806DC12: + movs r0, #3 + bl sub_0807CA84 + cmp r0, #0 + beq _0806DC1E + movs r4, #3 +_0806DC1E: + movs r0, #4 + bl sub_0807CA84 + cmp r0, #0 + beq _0806DC2A + movs r4, #4 +_0806DC2A: + movs r0, #6 + bl sub_0807CA84 + cmp r0, #0 + beq _0806DC36 + movs r4, #6 +_0806DC36: + adds r0, r4, #0 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806DC3C +sub_0806DC3C: @ 0x0806DC3C + ldr r2, _0806DC54 @ =gUnk_02002A40 + adds r1, r2, #0 + adds r1, #0xb4 + ldrb r3, [r1] + adds r1, r0, #0 + adds r1, #0x68 + strb r3, [r1] + adds r2, #0xb5 + ldrb r1, [r2] + adds r0, #0x69 + strb r1, [r0] + bx lr + .align 2, 0 +_0806DC54: .4byte gUnk_02002A40 + + thumb_func_start sub_0806DC58 +sub_0806DC58: @ 0x0806DC58 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x68 + ldrb r0, [r0] + bl sub_0806DBF4 + movs r1, #0 + bl sub_08054414 + adds r4, #0x69 + ldrb r0, [r4] + bl sub_0806DBF4 + movs r1, #1 + bl sub_08054414 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806DC7C +sub_0806DC7C: @ 0x0806DC7C + push {r4, lr} + ldr r4, _0806DC84 @ =gUnk_081141F4 + b _0806DC94 + .align 2, 0 +_0806DC84: .4byte gUnk_081141F4 +_0806DC88: + ldrh r1, [r4] + adds r4, #2 + ldr r0, _0806DC9C @ =0x00004072 + movs r2, #1 + bl sub_0807B314 +_0806DC94: + ldrh r0, [r4] + cmp r0, #0 + bne _0806DC88 + pop {r4, pc} + .align 2, 0 +_0806DC9C: .4byte 0x00004072 + + thumb_func_start sub_0806DCA0 +sub_0806DCA0: @ 0x0806DCA0 + push {r4, lr} + ldr r4, _0806DCA8 @ =gUnk_081141F4 + b _0806DCB6 + .align 2, 0 +_0806DCA8: .4byte gUnk_081141F4 +_0806DCAC: + ldrh r0, [r4] + adds r4, #2 + movs r1, #1 + bl sub_0807BA8C +_0806DCB6: + ldrh r0, [r4] + cmp r0, #0 + bne _0806DCAC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806DCC0 +sub_0806DCC0: @ 0x0806DCC0 + ldr r0, _0806DCD0 @ =gUnk_030010A0 + movs r1, #0xf9 + lsls r1, r1, #3 + strh r1, [r0, #0x20] + movs r1, #0xf8 + strh r1, [r0, #0x22] + bx lr + .align 2, 0 +_0806DCD0: .4byte gUnk_030010A0 + + thumb_func_start sub_0806DCD4 +sub_0806DCD4: @ 0x0806DCD4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806DD40 + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + subs r0, #1 + cmp r0, #0xa + bhi _0806DD40 + lsls r0, r0, #2 + ldr r1, _0806DCF4 @ =_0806DCF8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0806DCF4: .4byte _0806DCF8 +_0806DCF8: @ jump table + .4byte _0806DD24 @ case 0 + .4byte _0806DD24 @ case 1 + .4byte _0806DD24 @ case 2 + .4byte _0806DD24 @ case 3 + .4byte _0806DD24 @ case 4 + .4byte _0806DD2C @ case 5 + .4byte _0806DD2C @ case 6 + .4byte _0806DD2C @ case 7 + .4byte _0806DD2C @ case 8 + .4byte _0806DD2C @ case 9 + .4byte _0806DD34 @ case 10 +_0806DD24: + adds r0, r4, #0 + bl sub_0809623C + b _0806DD40 +_0806DD2C: + adds r0, r4, #0 + bl sub_08096260 + b _0806DD40 +_0806DD34: + adds r0, r4, #0 + movs r1, #0 + bl sub_0806DB84 + movs r0, #0 + str r0, [r4, #0x48] +_0806DD40: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806DD44 +sub_0806DD44: @ 0x0806DD44 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806DD5A + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_080042AC +_0806DD5A: + adds r0, r4, #0 + bl sub_080042B8 + adds r4, #0x59 + ldrb r0, [r4] + cmp r0, #0xfe + bne _0806DD74 + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x14 + strb r0, [r4] +_0806DD74: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806DD78 +sub_0806DD78: @ 0x0806DD78 + push {lr} + ldr r2, _0806DD8C @ =gUnk_0811423C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0806DD8C: .4byte gUnk_0811423C + + thumb_func_start sub_0806DD90 +sub_0806DD90: @ 0x0806DD90 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r7, r0, #0 + movs r0, #1 + strb r0, [r7, #0xc] + movs r0, #0x3b + bl sub_0807CC30 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r4, r1, #0x1f + movs r0, #0x3c + bl sub_0807CC30 + cmp r0, #0 + beq _0806DDB8 + movs r4, #2 +_0806DDB8: + movs r0, #0x3d + bl sub_0807CC30 + cmp r0, #0 + beq _0806DDC4 + movs r4, #3 +_0806DDC4: + adds r0, r7, #0 + adds r1, r4, #0 + bl sub_08004260 + movs r0, #0x2e + ldrsh r5, [r7, r0] + movs r1, #0x32 + ldrsh r4, [r7, r1] + ldr r2, _0806DEC0 @ =0x00004072 + mov sl, r2 + ldr r0, _0806DEC4 @ =gUnk_03000BF0 + mov r8, r0 + ldrh r1, [r0, #6] + adds r1, #0x18 + subs r1, r5, r1 + lsrs r1, r1, #4 + movs r6, #0x3f + ands r1, r6 + ldrh r0, [r0, #8] + adds r0, #0x10 + subs r0, r4, r0 + lsrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r1, r0 + adds r7, #0x38 + mov sb, r7 + mov r0, sb + ldrb r2, [r0] + mov r0, sl + bl sub_0800015E + mov r2, r8 + ldrh r1, [r2, #6] + adds r1, #0x18 + subs r1, r5, r1 + lsrs r1, r1, #4 + ands r1, r6 + ldrh r0, [r2, #8] + subs r0, r4, r0 + lsrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r1, r0 + mov r0, sb + ldrb r2, [r0] + mov r0, sl + bl sub_0800015E + mov r2, r8 + ldrh r1, [r2, #6] + adds r1, #0x18 + subs r1, r5, r1 + lsrs r1, r1, #4 + ands r1, r6 + ldrh r0, [r2, #8] + subs r0, #0x10 + subs r0, r4, r0 + lsrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r1, r0 + mov r0, sb + ldrb r2, [r0] + mov r0, sl + bl sub_0800015E + mov r2, r8 + ldrh r1, [r2, #6] + subs r1, #0x18 + subs r1, r5, r1 + lsrs r1, r1, #4 + ands r1, r6 + ldrh r0, [r2, #8] + adds r0, #0x10 + subs r0, r4, r0 + lsrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r1, r0 + mov r0, sb + ldrb r2, [r0] + mov r0, sl + bl sub_0800015E + mov r2, r8 + ldrh r1, [r2, #6] + subs r1, #0x18 + subs r1, r5, r1 + lsrs r1, r1, #4 + ands r1, r6 + ldrh r0, [r2, #8] + subs r0, r4, r0 + lsrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r1, r0 + mov r0, sb + ldrb r2, [r0] + mov r0, sl + bl sub_0800015E + mov r1, r8 + ldrh r0, [r1, #6] + subs r0, #0x18 + subs r5, r5, r0 + lsrs r5, r5, #4 + ands r5, r6 + ldrh r0, [r1, #8] + subs r0, #0x10 + subs r4, r4, r0 + lsrs r4, r4, #4 + ands r4, r6 + lsls r4, r4, #6 + orrs r5, r4 + mov r0, sb + ldrb r2, [r0] + mov r0, sl + adds r1, r5, #0 + bl sub_0800015E + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806DEC0: .4byte 0x00004072 +_0806DEC4: .4byte gUnk_03000BF0 + + thumb_func_start sub_0806DEC8 +sub_0806DEC8: @ 0x0806DEC8 + push {lr} + bl sub_08004274 + pop {pc} + + thumb_func_start sub_0806DED0 +sub_0806DED0: @ 0x0806DED0 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0806DEF8 @ =gUnk_081142BC + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0806DEF4 + ldr r2, _0806DEFC @ =gUnk_03003F80 + ldrb r1, [r2, #0x1a] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x1a] +_0806DEF4: + pop {r4, pc} + .align 2, 0 +_0806DEF8: .4byte gUnk_081142BC +_0806DEFC: .4byte gUnk_03003F80 + + thumb_func_start sub_0806DF00 +sub_0806DF00: @ 0x0806DF00 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xa] + cmp r5, #0 + bne _0806DF5C + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x51 + movs r1, #1 + movs r2, #0 + bl sub_0806ED50 + str r0, [r4, #0x68] + str r4, [r0, #0x50] + movs r0, #0x51 + movs r1, #1 + movs r2, #1 + bl sub_0806ED50 + str r0, [r4, #0x6c] + str r4, [r0, #0x50] + movs r0, #0x51 + movs r1, #1 + movs r2, #2 + bl sub_0806ED50 + str r0, [r4, #0x70] + str r4, [r0, #0x50] + adds r0, r4, #0 + adds r0, #0x74 + strh r5, [r0] + adds r0, #2 + movs r1, #0xa + strh r1, [r0] + ldr r0, _0806DF58 @ =gUnk_030010A0 + strh r1, [r0, #6] + adds r0, r4, #0 + bl sub_0806E014 + adds r0, r4, #0 + bl sub_0807DD50 + b _0806DF6E + .align 2, 0 +_0806DF58: .4byte gUnk_030010A0 +_0806DF5C: + ldr r0, _0806DF70 @ =gUnk_080FD150 + str r0, [r4, #0x48] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0806E0DC +_0806DF6E: + pop {r4, r5, pc} + .align 2, 0 +_0806DF70: .4byte gUnk_080FD150 + + thumb_func_start sub_0806DF74 +sub_0806DF74: @ 0x0806DF74 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + bl sub_0807DD94 + ldrb r0, [r4, #0xe] + cmp r0, #0xff + beq _0806DFB0 + adds r0, r4, #0 + adds r0, #0x44 + ldrb r0, [r0] + cmp r0, #0 + beq _0806DF96 + ldr r1, [r4, #0x70] + ldrb r0, [r1, #0xe] + adds r0, #1 + strb r0, [r1, #0xe] +_0806DF96: + ldr r1, [r4, #0x68] + ldrb r0, [r1, #0xe] + adds r0, #1 + strb r0, [r1, #0xe] + ldr r1, [r4, #0x6c] + ldrb r0, [r1, #0xe] + adds r0, #1 + strb r0, [r1, #0xe] + movs r0, #0xff + strb r0, [r4, #0xe] + movs r0, #0 + bl sub_0807CD10 +_0806DFB0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806DFB4 +sub_0806DFB4: @ 0x0806DFB4 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x39 + movs r2, #0 + ldrsb r2, [r1, r2] + cmp r2, #0 + beq _0806DFD6 + movs r0, #0 + strb r0, [r1] + ldr r1, [r4, #0x50] + ldrb r0, [r4, #0xb] + strb r0, [r1, #0xe] + ldr r1, [r4, #0x50] + ldrb r0, [r4, #0xf] + strb r0, [r1, #0xb] + b _0806E00C +_0806DFD6: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0806E00C + strb r2, [r4, #0xe] + ldrb r2, [r4, #0xf] + movs r0, #0x35 + movs r1, #2 + bl sub_080A2960 + adds r1, r0, #0 + cmp r1, #0 + beq _0806DFF8 + str r4, [r1, #0x50] + str r1, [r4, #0x54] + adds r0, r4, #0 + bl sub_0806FA24 +_0806DFF8: + adds r0, r4, #0 + bl sub_080788E0 + adds r0, r4, #0 + adds r0, #0x76 + ldrh r1, [r0] + movs r0, #0x74 + movs r2, #2 + bl sub_0807B7D8 +_0806E00C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start nullsub_111 +nullsub_111: @ 0x0806E010 + bx lr + .align 2, 0 + + thumb_func_start sub_0806E014 +sub_0806E014: @ 0x0806E014 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + bl sub_08000E50 + movs r1, #0x70 + ands r1, r0 + lsrs r4, r1, #4 + movs r0, #0xff + strb r0, [r5, #0xb] + movs r0, #1 + rsbs r0, r0, #0 + adds r7, r0, #0 + strb r0, [r5, #0xe] + movs r0, #0x93 + bl sub_0807CBD0 + adds r1, r0, #0 + cmp r1, #0 + bne _0806E088 + adds r0, r5, #0 + adds r0, #0x44 + strb r1, [r0] + lsls r1, r4, #1 + ldr r0, _0806E084 @ =gUnk_081142CC + adds r6, r1, r0 + ldr r1, [r5, #0x68] + ldrb r0, [r6] + strb r0, [r1, #0xf] + ldr r1, [r5, #0x68] + movs r4, #0x90 + lsls r4, r4, #0xf + adds r0, r5, #0 + adds r2, r4, #0 + adds r3, r4, #0 + bl sub_0806FA48 + ldr r1, [r5, #0x6c] + ldrb r0, [r6, #1] + strb r0, [r1, #0xf] + ldr r1, [r5, #0x6c] + movs r2, #0xd0 + lsls r2, r2, #0xf + adds r0, r5, #0 + adds r3, r4, #0 + bl sub_0806FA48 + ldr r1, [r5, #0x70] + ldrb r0, [r1, #0xf] + orrs r0, r7 + strb r0, [r1, #0xf] + ldr r1, [r5, #0x70] + adds r0, r5, #0 + bl sub_0806FA24 + b _0806E0D6 + .align 2, 0 +_0806E084: .4byte gUnk_081142CC +_0806E088: + adds r1, r5, #0 + adds r1, #0x44 + movs r0, #1 + strb r0, [r1] + lsls r1, r4, #2 + ldr r0, _0806E0D8 @ =gUnk_081142DC + adds r6, r1, r0 + ldr r1, [r5, #0x68] + ldrb r0, [r6] + strb r0, [r1, #0xf] + ldr r1, [r5, #0x68] + movs r2, #0xe0 + lsls r2, r2, #0xe + movs r4, #0x90 + lsls r4, r4, #0xf + adds r0, r5, #0 + adds r3, r4, #0 + bl sub_0806FA48 + ldr r1, [r5, #0x6c] + ldrb r0, [r6, #1] + strb r0, [r1, #0xf] + ldr r1, [r5, #0x6c] + movs r2, #0xb0 + lsls r2, r2, #0xf + adds r0, r5, #0 + adds r3, r4, #0 + bl sub_0806FA48 + ldr r1, [r5, #0x70] + ldrb r0, [r6, #2] + strb r0, [r1, #0xf] + ldr r1, [r5, #0x70] + movs r2, #0xf0 + lsls r2, r2, #0xf + adds r0, r5, #0 + adds r3, r4, #0 + bl sub_0806FA48 +_0806E0D6: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806E0D8: .4byte gUnk_081142DC + + thumb_func_start sub_0806E0DC +sub_0806E0DC: @ 0x0806E0DC + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r6, #0 + strb r6, [r4, #0xe] + ldrb r0, [r4, #0xf] + cmp r0, #0xff + beq _0806E138 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0806E134 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r5, r4, #0 + adds r5, #0x76 + strh r1, [r5] + ldr r0, [r4, #0x54] + cmp r0, #0 + beq _0806E120 + bl sub_0805E7BC + str r6, [r4, #0x54] +_0806E120: + adds r0, r4, #0 + bl sub_08078828 + ldrh r1, [r5] + movs r0, #0x73 + movs r2, #2 + bl sub_0807B7D8 + b _0806E13C + .align 2, 0 +_0806E134: .4byte gUnk_03000BF0 +_0806E138: + movs r0, #3 + strb r0, [r4, #0xc] +_0806E13C: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0806E140 +sub_0806E140: @ 0x0806E140 + push {r4, r5, lr} + adds r3, r0, #0 + adds r5, r1, #0 + ldrb r1, [r3, #0xb] + cmp r1, #0 + beq _0806E1AC + movs r0, #1 + str r0, [r5, #0x14] + adds r1, r3, #0 + adds r1, #0x74 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + adds r1, #2 + ldrh r2, [r1] + adds r0, r3, #0 + adds r0, #0x44 + ldrb r0, [r0] + adds r4, r1, #0 + cmp r0, #0 + bne _0806E16E + lsls r0, r2, #1 + b _0806E172 +_0806E16E: + lsls r0, r2, #1 + adds r0, r0, r2 +_0806E172: + strh r0, [r4] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _0806E18C @ =0x000003E7 + cmp r0, r1 + bls _0806E194 + strh r1, [r4] + movs r0, #0 + str r0, [r5, #0x14] + ldr r0, _0806E190 @ =0x0000421B + bl sub_08056378 + b _0806E1C0 + .align 2, 0 +_0806E18C: .4byte 0x000003E7 +_0806E190: .4byte 0x0000421B +_0806E194: + ldr r0, _0806E1A4 @ =0x00004218 + bl sub_08056378 + ldr r1, _0806E1A8 @ =gUnk_02000050 + ldrh r0, [r4] + str r0, [r1, #0x10] + b _0806E1C0 + .align 2, 0 +_0806E1A4: .4byte 0x00004218 +_0806E1A8: .4byte gUnk_02000050 +_0806E1AC: + str r1, [r5, #0x14] + adds r0, r3, #0 + adds r0, #0x74 + strh r1, [r0] + adds r4, r3, #0 + adds r4, #0x76 + strh r1, [r4] + ldr r0, _0806E1D4 @ =0x0000421C + bl sub_08056378 +_0806E1C0: + ldr r1, _0806E1D8 @ =gUnk_030010A0 + ldrh r0, [r4] + strh r0, [r1, #6] + ldr r2, _0806E1DC @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, r5, pc} + .align 2, 0 +_0806E1D4: .4byte 0x0000421C +_0806E1D8: .4byte gUnk_030010A0 +_0806E1DC: .4byte gUnk_02033280 + + thumb_func_start sub_0806E1E0 +sub_0806E1E0: @ 0x0806E1E0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806E014 + ldr r0, [r4, #0x68] + bl sub_0806E0DC + ldr r0, [r4, #0x6c] + bl sub_0806E0DC + ldr r0, [r4, #0x70] + bl sub_0806E0DC + pop {r4, pc} + + thumb_func_start sub_0806E1FC +sub_0806E1FC: @ 0x0806E1FC + push {lr} + ldr r0, _0806E208 @ =gUnk_0813AD4C + bl sub_08080840 + pop {pc} + .align 2, 0 +_0806E208: .4byte gUnk_0813AD4C + + thumb_func_start sub_0806E20C +sub_0806E20C: @ 0x0806E20C + push {r4, lr} + ldr r4, _0806E224 @ =gUnk_030010A0 + ldrh r0, [r4, #6] + cmp r0, #0 + beq _0806E230 + ldr r0, _0806E228 @ =0x0000421F + bl sub_08056378 + ldr r1, _0806E22C @ =gUnk_02000050 + ldrh r0, [r4, #6] + str r0, [r1, #0x10] + b _0806E236 + .align 2, 0 +_0806E224: .4byte gUnk_030010A0 +_0806E228: .4byte 0x0000421F +_0806E22C: .4byte gUnk_02000050 +_0806E230: + ldr r0, _0806E238 @ =0x00004220 + bl sub_08056378 +_0806E236: + pop {r4, pc} + .align 2, 0 +_0806E238: .4byte 0x00004220 + + thumb_func_start sub_0806E23C +sub_0806E23C: @ 0x0806E23C + push {lr} + ldr r1, _0806E24C @ =gUnk_030010A0 + ldrh r0, [r1, #6] + cmp r0, #0 + beq _0806E24A + bl sub_080526CC +_0806E24A: + pop {pc} + .align 2, 0 +_0806E24C: .4byte gUnk_030010A0 + + thumb_func_start sub_0806E250 +sub_0806E250: @ 0x0806E250 + push {r4, lr} + adds r4, r1, #0 + movs r0, #0 + str r0, [r4, #0x14] + movs r0, #0x31 + bl sub_0801E7F4 + cmp r0, #0 + beq _0806E266 + movs r0, #1 + str r0, [r4, #0x14] +_0806E266: + ldr r2, _0806E274 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, pc} + .align 2, 0 +_0806E274: .4byte gUnk_02033280 + + thumb_func_start sub_0806E278 +sub_0806E278: @ 0x0806E278 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806E2A8 + adds r0, #1 + strb r0, [r4, #0xc] + ldr r0, _0806E2A0 @ =gUnk_081142FC + str r0, [r4, #0x48] + adds r0, r4, #0 + bl sub_0807DD50 + ldr r3, _0806E2A4 @ =gUnk_08114304 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_08078850 + b _0806E2B0 + .align 2, 0 +_0806E2A0: .4byte gUnk_081142FC +_0806E2A4: .4byte gUnk_08114304 +_0806E2A8: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 +_0806E2B0: + ldr r0, _0806E2CC @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806E2D0 + ldrb r0, [r4, #0x18] + subs r1, #0x84 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r4, #0x18] + b _0806E2DA + .align 2, 0 +_0806E2CC: .4byte gUnk_03003F80 +_0806E2D0: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_0806E2DA: + pop {r4, pc} + + thumb_func_start sub_0806E2DC +sub_0806E2DC: @ 0x0806E2DC + push {lr} + adds r3, r0, #0 + ldr r0, _0806E300 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + subs r0, #2 + cmp r0, #0 + bge _0806E2EC + movs r0, #0 +_0806E2EC: + ldrb r1, [r3, #0xb] + lsls r1, r1, #6 + lsls r0, r0, #3 + ldr r2, _0806E304 @ =gUnk_08114308 + adds r0, r0, r2 + adds r1, r1, r0 + adds r0, r3, #0 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806E300: .4byte gUnk_02002A40 +_0806E304: .4byte gUnk_08114308 + + thumb_func_start sub_0806E308 +sub_0806E308: @ 0x0806E308 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xc] + cmp r5, #1 + beq _0806E34C + cmp r5, #1 + bgt _0806E31C + cmp r5, #0 + beq _0806E322 + b _0806E3E0 +_0806E31C: + cmp r5, #2 + beq _0806E3C6 + b _0806E3E0 +_0806E322: + ldr r1, _0806E348 @ =gUnk_081144F0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806E3E0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x69 + strb r5, [r0] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD50 + b _0806E3E0 + .align 2, 0 +_0806E348: .4byte gUnk_081144F0 +_0806E34C: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0806E3BC + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x69 + strb r0, [r1] + ldr r1, _0806E3B0 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08002632 + ldr r1, _0806E3B4 @ =gUnk_08001A7C + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r3, [r0] + adds r0, r4, #0 + adds r0, #0x68 + ldrb r0, [r0] + cmp r0, #0x32 + bne _0806E398 + adds r3, #6 +_0806E398: + ldrh r1, [r3] + ldrh r2, [r3, #2] + ldrh r3, [r3, #4] + adds r0, r4, #0 + bl sub_0801DFB4 + ldr r0, _0806E3B8 @ =gUnk_03003F80 + adds r0, #0x8b + movs r1, #3 + strb r1, [r0] + b _0806E3E0 + .align 2, 0 +_0806E3B0: .4byte gUnk_03001160 +_0806E3B4: .4byte gUnk_08001A7C +_0806E3B8: .4byte gUnk_03003F80 +_0806E3BC: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + b _0806E3E0 +_0806E3C6: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806E3E0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x69 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08004260 +_0806E3E0: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806E3E4 +sub_0806E3E4: @ 0x0806E3E4 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r2, [r0] + movs r0, #0x81 + rsbs r0, r0, #0 + ands r2, r0 + adds r2, #8 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + pop {r4, pc} + + thumb_func_start sub_0806E418 +sub_0806E418: @ 0x0806E418 + push {lr} + adds r2, r0, #0 + ldr r0, _0806E438 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + subs r0, #2 + cmp r0, #0 + bge _0806E428 + movs r0, #0 +_0806E428: + lsls r1, r0, #3 + ldr r0, _0806E43C @ =gUnk_081144FC + adds r1, r1, r0 + adds r0, r2, #0 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806E438: .4byte gUnk_02002A40 +_0806E43C: .4byte gUnk_081144FC + + thumb_func_start sub_0806E440 +sub_0806E440: @ 0x0806E440 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_0806E458 +sub_0806E458: @ 0x0806E458 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806E498 + ldr r1, _0806E494 @ =gUnk_081144F0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806E49E + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #0xa + bl sub_08004260 + b _0806E49E + .align 2, 0 +_0806E494: .4byte gUnk_081144F0 +_0806E498: + adds r0, r4, #0 + bl sub_08004274 +_0806E49E: + pop {r4, pc} + + thumb_func_start sub_0806E4A0 +sub_0806E4A0: @ 0x0806E4A0 + push {lr} + ldr r2, _0806E4B4 @ =gUnk_081145B4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0806E4B4: .4byte gUnk_081145B4 + + thumb_func_start sub_0806E4B8 +sub_0806E4B8: @ 0x0806E4B8 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + movs r5, #0 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_080787A8 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + strb r5, [r4, #0xd] + adds r0, r4, #0 + bl sub_0806E4EC + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806E4EC +sub_0806E4EC: @ 0x0806E4EC + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xd] + cmp r0, #0 + bne _0806E50E + adds r0, #1 + strb r0, [r5, #0xd] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x3c + strb r0, [r5, #0xe] + adds r0, r5, #0 + movs r1, #0 + bl sub_080042AC +_0806E50E: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806E552 + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _0806E52A + movs r0, #3 + b _0806E52C +_0806E52A: + movs r0, #2 +_0806E52C: + strb r0, [r5, #0xc] + movs r0, #0 + strb r0, [r5, #0xd] + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _0806E552 + ldr r4, _0806E560 @ =gUnk_081145C8 + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r0, [r1] + bl sub_08004488 +_0806E552: + adds r0, r5, #0 + bl sub_0806E65C + adds r0, r5, #0 + bl sub_080042B8 + pop {r4, r5, pc} + .align 2, 0 +_0806E560: .4byte gUnk_081145C8 + + thumb_func_start sub_0806E564 +sub_0806E564: @ 0x0806E564 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _0806E5AA + adds r0, #1 + strb r0, [r4, #0xd] + bl sub_08000E50 + movs r2, #1 + ands r0, r2 + cmp r0, #0 + beq _0806E590 + ldrb r0, [r4, #0x18] + lsls r1, r0, #0x19 + lsrs r1, r1, #0x1f + eors r1, r2 + lsls r1, r1, #6 + subs r2, #0x42 + ands r2, r0 + orrs r2, r1 + strb r2, [r4, #0x18] +_0806E590: + bl sub_08000E50 + movs r1, #1 + ands r0, r1 + adds r0, #1 + strb r0, [r4, #0xe] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC +_0806E5AA: + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _0806E5D4 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0806E5CE + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + b _0806E5D4 +_0806E5CE: + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] +_0806E5D4: + adds r0, r4, #0 + bl sub_0806E65C + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806E5E4 +sub_0806E5E4: @ 0x0806E5E4 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _0806E622 + adds r0, #1 + strb r0, [r4, #0xd] + bl sub_08000E50 + movs r5, #1 + ands r0, r5 + cmp r0, #0 + beq _0806E612 + ldrb r0, [r4, #0x18] + lsls r1, r0, #0x19 + lsrs r1, r1, #0x1f + eors r1, r5 + lsls r1, r1, #6 + movs r2, #0x41 + rsbs r2, r2, #0 + ands r2, r0 + orrs r2, r1 + strb r2, [r4, #0x18] +_0806E612: + bl sub_08000E50 + adds r1, r0, #0 + ands r1, r5 + adds r1, #2 + adds r0, r4, #0 + bl sub_080042AC +_0806E622: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806E638 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_0806E638: + adds r0, r4, #0 + bl sub_0806E65C + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806E648 +sub_0806E648: @ 0x0806E648 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806E658 + movs r0, #1 + strb r0, [r4, #0xc] +_0806E658: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806E65C +sub_0806E65C: @ 0x0806E65C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x39 + movs r2, #0 + ldrsb r2, [r0, r2] + cmp r2, #0 + beq _0806E6A6 + ldr r0, _0806E688 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806E694 + cmp r2, #2 + bne _0806E68C + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0806F118 + b _0806E698 + .align 2, 0 +_0806E688: .4byte gUnk_03003F80 +_0806E68C: + adds r0, r4, #0 + bl sub_0806E6A8 + b _0806E698 +_0806E694: + bl sub_080791D0 +_0806E698: + movs r0, #0xd5 + bl sub_080A3268 + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + strb r0, [r1] +_0806E6A6: + pop {r4, pc} + + thumb_func_start sub_0806E6A8 +sub_0806E6A8: @ 0x0806E6A8 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #0 + bl sub_08002632 + ldr r1, _0806E6D4 @ =gUnk_02002A40 + ldr r2, _0806E6D8 @ =0x000001C1 + adds r1, r1, r2 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0xf3 + bne _0806E6C2 + movs r5, #1 +_0806E6C2: + ldr r0, _0806E6DC @ =gUnk_081145D0 + lsls r1, r5, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r4, #0 + bl sub_08056398 + pop {r4, r5, pc} + .align 2, 0 +_0806E6D4: .4byte gUnk_02002A40 +_0806E6D8: .4byte 0x000001C1 +_0806E6DC: .4byte gUnk_081145D0 + + thumb_func_start sub_0806E6E0 +sub_0806E6E0: @ 0x0806E6E0 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _0806E706 + adds r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + adds r0, r2, #0 + movs r1, #1 + bl sub_080042AC + b _0806E70C +_0806E706: + adds r0, r2, #0 + bl sub_080042B8 +_0806E70C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806E710 +sub_0806E710: @ 0x0806E710 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0806E72C @ =gUnk_081145D4 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0806ED78 + pop {r4, pc} + .align 2, 0 +_0806E72C: .4byte gUnk_081145D4 + + thumb_func_start sub_0806E730 +sub_0806E730: @ 0x0806E730 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + movs r5, #0 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_080787A8 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + strb r5, [r4, #0xd] + adds r0, r4, #0 + bl sub_0806E764 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806E764 +sub_0806E764: @ 0x0806E764 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + adds r5, r0, #0 + cmp r5, #0 + bne _0806E782 + adds r0, #1 + strb r0, [r4, #0xd] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x1e + strb r0, [r4, #0xe] + strb r5, [r4, #0x1e] +_0806E782: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0806E7A8 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _0806E7A8 + movs r0, #0xd6 + bl sub_08004488 +_0806E7A8: + adds r0, r4, #0 + bl sub_0806E838 + pop {r4, r5, pc} + + thumb_func_start sub_0806E7B0 +sub_0806E7B0: @ 0x0806E7B0 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _0806E7F2 + adds r0, #1 + strb r0, [r4, #0xd] + bl sub_08000E50 + movs r5, #1 + ands r0, r5 + cmp r0, #0 + beq _0806E7DE + ldrb r0, [r4, #0x18] + lsls r1, r0, #0x19 + lsrs r1, r1, #0x1f + eors r1, r5 + lsls r1, r1, #6 + movs r2, #0x41 + rsbs r2, r2, #0 + ands r2, r0 + orrs r2, r1 + strb r2, [r4, #0x18] +_0806E7DE: + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + adds r0, #1 + strb r0, [r4, #0xe] + movs r0, #0x80 + lsls r0, r0, #9 + str r0, [r4, #0x20] + strb r5, [r4, #0x1e] +_0806E7F2: + movs r1, #0xc0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _0806E81C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0806E816 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + b _0806E81C +_0806E816: + movs r0, #0x80 + lsls r0, r0, #9 + str r0, [r4, #0x20] +_0806E81C: + adds r0, r4, #0 + bl sub_0806E838 + pop {r4, r5, pc} + + thumb_func_start sub_0806E824 +sub_0806E824: @ 0x0806E824 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806E834 + movs r0, #1 + strb r0, [r4, #0xc] +_0806E834: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806E838 +sub_0806E838: @ 0x0806E838 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x39 + movs r2, #0 + ldrsb r2, [r0, r2] + cmp r2, #0 + beq _0806E882 + ldr r0, _0806E864 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806E870 + cmp r2, #2 + bne _0806E868 + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0806F118 + b _0806E874 + .align 2, 0 +_0806E864: .4byte gUnk_03003F80 +_0806E868: + adds r0, r4, #0 + bl sub_0806E884 + b _0806E874 +_0806E870: + bl sub_080791D0 +_0806E874: + movs r0, #0xd6 + bl sub_080A3268 + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + strb r0, [r1] +_0806E882: + pop {r4, pc} + + thumb_func_start sub_0806E884 +sub_0806E884: @ 0x0806E884 + push {lr} + adds r1, r0, #0 + ldr r0, _0806E890 @ =0x00000DB6 + bl sub_08056398 + pop {pc} + .align 2, 0 +_0806E890: .4byte 0x00000DB6 + + thumb_func_start sub_0806E894 +sub_0806E894: @ 0x0806E894 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806E8B6 + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #1 + strb r0, [r4, #0x1e] + b _0806E8CA +_0806E8B6: + movs r1, #0xc0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _0806E8CA + movs r0, #0x80 + lsls r0, r0, #9 + str r0, [r4, #0x20] +_0806E8CA: + pop {r4, pc} + + thumb_func_start sub_0806E8CC +sub_0806E8CC: @ 0x0806E8CC + push {lr} + adds r3, r0, #0 + ldr r2, _0806E8EC @ =gUnk_080B313C + ldrb r1, [r3, #0xf] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #8 + adds r0, r0, r2 + ldr r1, [r0] + cmp r1, #0 + beq _0806E8F0 + adds r0, r3, #0 + bl _call_via_r1 + b _0806E8F4 + .align 2, 0 +_0806E8EC: .4byte gUnk_080B313C +_0806E8F0: + bl sub_0805E780 +_0806E8F4: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806E8F8 +sub_0806E8F8: @ 0x0806E8F8 + push {lr} + adds r3, r0, #0 + ldr r2, _0806E918 @ =gUnk_080B313C + ldrb r1, [r3, #0xf] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #4 + adds r0, r0, r2 + ldr r1, [r0] + cmp r1, #0 + beq _0806E916 + adds r0, r3, #0 + bl _call_via_r1 +_0806E916: + pop {pc} + .align 2, 0 +_0806E918: .4byte gUnk_080B313C + + thumb_func_start sub_0806E91C +sub_0806E91C: @ 0x0806E91C + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _0806E950 + adds r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #0x18] + adds r1, r5, #0 + adds r1, #0x68 + movs r4, #0 + movs r0, #1 + strh r0, [r1] + adds r1, #2 + ldr r0, _0806E960 @ =0x0000FFFF + strh r0, [r1] + adds r0, r5, #0 + bl sub_0807DD64 + strb r4, [r5, #0x1e] +_0806E950: + adds r0, r5, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r5, #0 + bl sub_0807DDE4 + pop {r4, r5, pc} + .align 2, 0 +_0806E960: .4byte 0x0000FFFF + + thumb_func_start sub_0806E964 +sub_0806E964: @ 0x0806E964 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov sb, r0 + adds r2, r1, #0 + ldr r0, _0806E984 @ =gUnk_03000FF0 + mov r8, r0 + ldrh r1, [r0, #2] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0806E988 + bl sub_08050384 + b _0806EAAA + .align 2, 0 +_0806E984: .4byte gUnk_03000FF0 +_0806E988: + ldrb r0, [r2, #0x18] + adds r1, r0, #0 + mov r6, sb + adds r6, #0x6c + mov r7, sb + adds r7, #0x68 + cmp r1, #0 + bne _0806E9A8 + adds r0, #1 + strb r0, [r2, #0x18] + strh r1, [r6] + movs r2, #0 + ldrsh r1, [r7, r2] + mov r0, sb + bl sub_0806EABC +_0806E9A8: + movs r5, #0x1c + movs r0, #0x55 + bl sub_0807CC30 + cmp r0, #0 + beq _0806E9B6 + movs r5, #0x34 +_0806E9B6: + movs r0, #0 + ldrsh r4, [r7, r0] + mov r2, r8 + ldrh r1, [r2, #2] + movs r2, #0xc0 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _0806E9E4 + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0806E9D4 + adds r4, #1 + b _0806E9D6 +_0806E9D4: + subs r4, #1 +_0806E9D6: + cmp r4, #0 + bgt _0806E9DC + adds r4, r5, #0 +_0806E9DC: + cmp r4, r5 + ble _0806EA0A + movs r4, #1 + b _0806EA0A +_0806E9E4: + mov r0, r8 + ldrh r1, [r0, #4] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _0806EA0A + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0806E9FC + adds r4, #1 + b _0806E9FE +_0806E9FC: + subs r4, #1 +_0806E9FE: + cmp r4, #0 + bgt _0806EA04 + movs r4, #1 +_0806EA04: + cmp r4, r5 + ble _0806EA0A + adds r4, r5, #0 +_0806EA0A: + movs r1, #0 + ldrsh r0, [r7, r1] + cmp r4, r0 + beq _0806EA28 + mov r0, sb + adds r1, r4, #0 + bl sub_0806EABC + ldrh r1, [r6] + movs r2, #0 + ldrsh r0, [r6, r2] + cmp r0, #0 + ble _0806EA28 + subs r0, r1, #1 + strh r0, [r6] +_0806EA28: + strh r4, [r7] + ldr r0, _0806EA74 @ =gUnk_03000FF0 + ldrh r1, [r0, #2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0806EA86 + mov r5, sb + adds r5, #0x6a + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + movs r2, #0 + ldrsh r1, [r5, r2] + cmp r0, r1 + bne _0806EA4E + movs r1, #0 + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _0806EA7C +_0806EA4E: + ldr r4, _0806EA78 @ =gUnk_081145E4 + movs r2, #0 + ldrsh r0, [r7, r2] + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0 + ldrsh r0, [r0, r1] + bl sub_080A3268 + ldrh r0, [r7] + strh r0, [r5] + movs r2, #0 + ldrsh r0, [r7, r2] + lsls r0, r0, #2 + adds r4, #2 + adds r0, r0, r4 + ldrh r0, [r0] + strh r0, [r6] + b _0806EA86 + .align 2, 0 +_0806EA74: .4byte gUnk_03000FF0 +_0806EA78: .4byte gUnk_081145E4 +_0806EA7C: + ldr r0, _0806EAB4 @ =0x80010000 + bl sub_080A3268 + movs r0, #0 + strh r0, [r5] +_0806EA86: + ldrh r1, [r6] + movs r2, #0 + ldrsh r0, [r6, r2] + cmp r0, #0 + ble _0806EAA4 + subs r0, r1, #1 + movs r1, #0 + strh r0, [r6] + lsls r0, r0, #0x10 + cmp r0, #0 + bgt _0806EAA4 + mov r0, sb + adds r0, #0x6a + strh r1, [r0] + strh r1, [r6] +_0806EAA4: + ldr r1, _0806EAB8 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0806EAAA: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806EAB4: .4byte 0x80010000 +_0806EAB8: .4byte gUnk_02033280 + + thumb_func_start sub_0806EABC +sub_0806EABC: @ 0x0806EABC + push {r4, lr} + adds r4, r1, #0 + bl sub_08050384 + ldr r1, _0806EAE0 @ =gUnk_020227E8 + ldr r2, _0806EAE4 @ =0x00202020 + adds r0, r4, #0 + bl sub_08057044 + ldr r0, _0806EAE8 @ =0x00003302 + ldr r1, _0806EAEC @ =gUnk_081146B8 + bl sub_0805F46C + ldr r1, _0806EAF0 @ =gUnk_03000F50 + movs r0, #1 + strh r0, [r1, #0xe] + pop {r4, pc} + .align 2, 0 +_0806EAE0: .4byte gUnk_020227E8 +_0806EAE4: .4byte 0x00202020 +_0806EAE8: .4byte 0x00003302 +_0806EAEC: .4byte gUnk_081146B8 +_0806EAF0: .4byte gUnk_03000F50 + + thumb_func_start sub_0806EAF4 +sub_0806EAF4: @ 0x0806EAF4 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + ldrb r0, [r6, #0xc] + cmp r0, #0 + bne _0806EB48 + ldr r1, _0806EBA0 @ =gUnk_081146D0 + adds r0, r6, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806EBA8 + ldrb r0, [r6, #0xc] + adds r0, #1 + strb r0, [r6, #0xc] + ldrb r1, [r6, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r6, #0x18] + ldrb r2, [r6, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + strb r0, [r6, #0x19] + adds r3, r6, #0 + adds r3, #0x29 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r3] + ldrb r0, [r6, #0x1b] + ands r1, r0 + movs r0, #0x40 + orrs r1, r0 + strb r1, [r6, #0x1b] + movs r0, #0x78 + strh r0, [r6, #0x2e] + movs r0, #0x10 + strh r0, [r6, #0x32] +_0806EB48: + ldr r7, [r6, #0x50] + cmp r7, #0 + beq _0806EBA4 + adds r0, r7, #0 + adds r0, #0x68 + movs r1, #0 + ldrsh r4, [r0, r1] + movs r5, #0x96 + lsls r5, r5, #2 + adds r0, r4, #0 + adds r1, r5, #0 + bl __divsi3 + adds r1, r6, #0 + adds r1, #0x68 + strh r0, [r1] + adds r0, r4, #0 + adds r1, r5, #0 + bl __modsi3 + adds r4, r0, #0 + movs r1, #0x3c + bl __divsi3 + adds r1, r6, #0 + adds r1, #0x6a + strh r0, [r1] + adds r0, r4, #0 + movs r1, #0x3c + bl __modsi3 + movs r1, #6 + bl __divsi3 + adds r1, r6, #0 + adds r1, #0x6c + strh r0, [r1] + ldr r0, [r7, #4] + cmp r0, #0 + bne _0806EBA8 + bl sub_0805E780 + b _0806EBA8 + .align 2, 0 +_0806EBA0: .4byte gUnk_081146D0 +_0806EBA4: + bl sub_0805E780 +_0806EBA8: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0806EBAC +sub_0806EBAC: @ 0x0806EBAC + push {r4, lr} + adds r4, r0, #0 + movs r0, #0xff + strb r0, [r4, #0x1e] + adds r0, r4, #0 + adds r0, #0x68 + movs r1, #0 + ldrsh r2, [r0, r1] + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + adds r0, r4, #0 + adds r0, #0x6a + movs r1, #0 + ldrsh r2, [r0, r1] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + adds r0, #0x6c + movs r1, #0 + ldrsh r2, [r0, r1] + adds r0, r4, #0 + movs r1, #2 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #3 + movs r2, #0xa + bl sub_0806FF60 + movs r2, #0xc + rsbs r2, r2, #0 + adds r0, r4, #0 + movs r1, #0 + movs r3, #0 + bl sub_0806FFBC + movs r2, #4 + rsbs r2, r2, #0 + adds r0, r4, #0 + movs r1, #1 + movs r3, #0 + bl sub_0806FFBC + adds r0, r4, #0 + movs r1, #2 + movs r2, #0xc + movs r3, #0 + bl sub_0806FFBC + adds r0, r4, #0 + bl sub_0807000C + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806EC20 +sub_0806EC20: @ 0x0806EC20 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x58 + movs r1, #0 + movs r2, #0 + bl sub_0806ED50 + cmp r0, #0 + beq _0806EC34 + str r4, [r0, #0x50] +_0806EC34: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806EC38 +sub_0806EC38: @ 0x0806EC38 + push {lr} + movs r0, #7 + movs r1, #0x58 + movs r2, #7 + bl sub_0805EB00 + cmp r0, #0 + beq _0806EC4C + bl sub_0805E7BC +_0806EC4C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806EC50 +sub_0806EC50: @ 0x0806EC50 + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #9] + lsls r0, r0, #3 + ldr r1, _0806EC74 @ =gUnk_08114AE4 + adds r2, r0, r1 + ldrb r1, [r2] + movs r0, #3 + ands r0, r1 + cmp r0, #2 + bne _0806EC6E + ldrb r0, [r3, #0xa] + lsls r0, r0, #3 + ldr r1, [r2, #4] + adds r2, r1, r0 +_0806EC6E: + adds r0, r2, #0 + pop {pc} + .align 2, 0 +_0806EC74: .4byte gUnk_08114AE4 + + thumb_func_start sub_0806EC78 +sub_0806EC78: @ 0x0806EC78 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0806ED4A + adds r0, r4, #0 + bl sub_0806EC50 + adds r5, r0, #0 + ldrb r1, [r5] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _0806ECA2 + ldrb r1, [r4, #0x10] + movs r0, #1 + orrs r0, r1 + strb r0, [r4, #0x10] + b _0806ED4A +_0806ECA2: + ldrh r0, [r5, #2] + lsls r0, r0, #0x16 + lsrs r2, r0, #0x16 + adds r1, r2, #0 + ldrb r0, [r5, #3] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1e + cmp r0, #1 + beq _0806ECC0 + cmp r0, #2 + bne _0806ECCA + adds r0, r4, #0 + adds r0, #0x60 + strh r2, [r0] + b _0806ECD0 +_0806ECC0: + adds r0, r4, #0 + movs r2, #0 + bl sub_080AE008 + b _0806ECD0 +_0806ECCA: + adds r0, r4, #0 + bl sub_080ADF80 +_0806ECD0: + ldrh r0, [r5, #4] + lsls r0, r0, #0x16 + lsrs r1, r0, #0x16 + adds r0, r4, #0 + bl sub_0801D040 + ldrh r0, [r5, #6] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x16 + strh r0, [r4, #0x12] + ldrb r0, [r5, #5] + movs r3, #3 + movs r1, #0x30 + ands r1, r0 + ldrb r2, [r4, #0x18] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r5, #7] + lsls r1, r1, #0x1b + movs r0, #0x29 + adds r0, r0, r4 + mov ip, r0 + lsrs r1, r1, #0x1d + lsls r1, r1, #3 + ldrb r2, [r0] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + ldrb r1, [r5, #7] + lsrs r1, r1, #5 + ands r1, r3 + ldrb r2, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldr r1, _0806ED4C @ =gUnk_08114EE4 + ldrb r0, [r5, #1] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r4, #0x48] + ldrb r1, [r4, #0x10] + movs r0, #1 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r1, #0xff + adds r0, r4, #0 + adds r0, #0x58 + strb r1, [r0] + strb r1, [r4, #0x1e] + adds r0, r4, #0 + bl sub_08016A04 +_0806ED4A: + pop {r4, r5, pc} + .align 2, 0 +_0806ED4C: .4byte gUnk_08114EE4 + + thumb_func_start sub_0806ED50 +sub_0806ED50: @ 0x0806ED50 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r6, r1, #0 + adds r7, r2, #0 + bl sub_0805E678 + adds r4, r0, #0 + cmp r4, #0 + beq _0806ED74 + movs r0, #7 + strb r0, [r4, #8] + strb r5, [r4, #9] + strb r6, [r4, #0xa] + strb r7, [r4, #0xb] + adds r0, r4, #0 + movs r1, #7 + bl sub_0805EA2C +_0806ED74: + adds r0, r4, #0 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0806ED78 +sub_0806ED78: @ 0x0806ED78 + push {r4, lr} + bl sub_0800445C + adds r4, r0, #0 + cmp r4, #0 + beq _0806ED94 + ldr r0, _0806ED98 @ =gUnk_03003F80 + ldrb r1, [r0, #0x1e] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0806ED94 + bl sub_08077B20 +_0806ED94: + adds r0, r4, #0 + pop {r4, pc} + .align 2, 0 +_0806ED98: .4byte gUnk_03003F80 + + thumb_func_start sub_0806ED9C +sub_0806ED9C: @ 0x0806ED9C + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r3, r2, #0 + movs r6, #1 + rsbs r6, r6, #0 + ldr r1, _0806EDC0 @ =gUnk_03001160 + adds r2, r4, #0 + bl sub_080041A0 + cmp r0, #0 + beq _0806EDBC + adds r0, r5, #0 + bl sub_0806EDC4 + adds r6, r0, #0 +_0806EDBC: + adds r0, r6, #0 + pop {r4, r5, r6, pc} + .align 2, 0 +_0806EDC0: .4byte gUnk_03001160 + + thumb_func_start sub_0806EDC4 +sub_0806EDC4: @ 0x0806EDC4 + push {lr} + ldr r1, _0806EDD4 @ =gUnk_03001160 + bl sub_080045C4 + bl sub_0806F5A4 + pop {pc} + .align 2, 0 +_0806EDD4: .4byte gUnk_03001160 + + thumb_func_start sub_0806EDD8 +sub_0806EDD8: @ 0x0806EDD8 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r3, r2, #0 + movs r7, #1 + rsbs r7, r7, #0 + ldr r6, _0806EE00 @ =gUnk_03001160 + adds r1, r6, #0 + adds r2, r4, #0 + bl sub_080041A0 + cmp r0, #0 + beq _0806EDFC + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_080045C4 + adds r7, r0, #0 +_0806EDFC: + adds r0, r7, #0 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806EE00: .4byte gUnk_03001160 + + thumb_func_start sub_0806EE04 +sub_0806EE04: @ 0x0806EE04 + adds r3, r0, #0 + str r1, [r3, #0x54] + adds r0, #0x3c + movs r1, #0 + strb r2, [r0] + adds r0, #3 + strb r1, [r0] + adds r2, r3, #0 + adds r2, #0x46 + movs r0, #0 + strh r1, [r2] + strb r0, [r3, #0x16] + bx lr + .align 2, 0 + + thumb_func_start sub_0806EE20 +sub_0806EE20: @ 0x0806EE20 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _0806EE4C + ldr r0, [r4, #0x54] + cmp r0, #0 + beq _0806EE66 + ldr r1, _0806EE48 @ =gUnk_08114EFC + ldrb r0, [r4, #0x16] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + b _0806EE68 + .align 2, 0 +_0806EE48: .4byte gUnk_08114EFC +_0806EE4C: + adds r1, r4, #0 + adds r1, #0x46 + movs r0, #8 + strh r0, [r1] + ldr r1, _0806EE6C @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r4, #0 + adds r1, #0x3e + strb r0, [r1] +_0806EE66: + movs r0, #0 +_0806EE68: + pop {r4, pc} + .align 2, 0 +_0806EE6C: .4byte gUnk_03001160 + + thumb_func_start sub_0806EE70 +sub_0806EE70: @ 0x0806EE70 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x46 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #8 + bls _0806EE92 + movs r0, #0 + strh r0, [r1] + adds r0, r4, #0 + bl sub_0806EF14 +_0806EE92: + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + mov r1, sp + bl sub_0806EF4C + mov r0, sp + ldrh r1, [r0] + ldrh r2, [r0, #2] + adds r0, r4, #0 + bl sub_080041DC + adds r1, r0, #0 + movs r2, #0x24 + ldrsh r0, [r4, r2] + cmp r0, #0 + bge _0806EEB8 + rsbs r0, r0, #0 +_0806EEB8: + lsrs r0, r0, #3 + cmp r0, r1 + bhi _0806EEC2 + movs r0, #0 + b _0806EECA +_0806EEC2: + adds r0, r4, #0 + movs r1, #3 + bl sub_0806EF74 +_0806EECA: + add sp, #4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806EED0 +sub_0806EED0: @ 0x0806EED0 + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x46 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0806EEE8 + movs r0, #0 + b _0806EEF0 +_0806EEE8: + adds r0, r2, #0 + movs r1, #2 + bl sub_0806EF74 +_0806EEF0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806EEF4 +sub_0806EEF4: @ 0x0806EEF4 + push {lr} + adds r2, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0806EF08 + movs r0, #0 + b _0806EF10 +_0806EF08: + adds r0, r2, #0 + movs r1, #1 + bl sub_0806EF74 +_0806EF10: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806EF14 +sub_0806EF14: @ 0x0806EF14 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + mov r1, sp + bl sub_0806EF4C + mov r0, sp + ldrh r1, [r0] + ldrh r2, [r0, #2] + adds r0, r4, #0 + bl sub_080045B4 + strb r0, [r4, #0x15] + adds r0, r4, #0 + adds r0, #0x3c + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0806EF48 + ldrb r0, [r4, #0x15] + bl sub_0806F5A4 + adds r1, r4, #0 + adds r1, #0x3e + strb r0, [r1] +_0806EF48: + add sp, #4 + pop {r4, pc} + + thumb_func_start sub_0806EF4C +sub_0806EF4C: @ 0x0806EF4C + push {r4, lr} + adds r2, r0, #0 + adds r2, #0x3f + ldrb r2, [r2] + lsls r2, r2, #1 + ldr r3, [r0, #0x54] + adds r3, r3, r2 + ldr r2, _0806EF70 @ =gUnk_03000BF0 + ldrh r0, [r3, #2] + ldrh r4, [r2, #6] + adds r0, r0, r4 + strh r0, [r1] + ldrh r0, [r3, #4] + ldrh r2, [r2, #8] + adds r0, r0, r2 + strh r0, [r1, #2] + pop {r4, pc} + .align 2, 0 +_0806EF70: .4byte gUnk_03000BF0 + + thumb_func_start sub_0806EF74 +sub_0806EF74: @ 0x0806EF74 + push {lr} + adds r3, r0, #0 + adds r3, #0x3f + ldrb r2, [r3] + adds r2, r2, r1 + strb r2, [r3] + bl sub_0806EF88 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806EF88 +sub_0806EF88: @ 0x0806EF88 + push {lr} + adds r1, r0, #0 + adds r1, #0x3f + ldrb r2, [r1] + lsls r2, r2, #1 + ldr r1, [r0, #0x54] + adds r1, r1, r2 + ldr r3, _0806EFA8 @ =gUnk_08114F0C + ldrb r2, [r1] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_0806EFA8: .4byte gUnk_08114F0C + + thumb_func_start sub_0806EFAC +sub_0806EFAC: @ 0x0806EFAC + push {lr} + adds r2, r0, #0 + adds r2, #0x3f + movs r1, #0 + strb r1, [r2] + bl sub_0806EF88 + pop {pc} + + thumb_func_start sub_0806EFBC +sub_0806EFBC: @ 0x0806EFBC + movs r1, #1 + strb r1, [r0, #0x16] + adds r0, #0x46 + movs r1, #8 + strh r1, [r0] + movs r0, #0 + bx lr + .align 2, 0 + + thumb_func_start sub_0806EFCC +sub_0806EFCC: @ 0x0806EFCC + movs r2, #2 + strb r2, [r0, #0x16] + ldrh r1, [r1, #2] + adds r0, #0x46 + strh r1, [r0] + movs r0, #0 + bx lr + .align 2, 0 + + thumb_func_start sub_0806EFDC +sub_0806EFDC: @ 0x0806EFDC + push {lr} + adds r3, r0, #0 + ldrh r0, [r1] + lsrs r0, r0, #8 + cmp r0, #0 + beq _0806EFF4 + adds r2, r3, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0xfe + ands r0, r1 + b _0806EFFE +_0806EFF4: + adds r2, r3, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #1 + orrs r0, r1 +_0806EFFE: + strb r0, [r2] + adds r1, r3, #0 + adds r1, #0x3f + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + adds r0, r3, #0 + bl sub_0806EF88 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806F014 +sub_0806F014: @ 0x0806F014 + push {lr} + ldrh r1, [r1, #2] + strh r1, [r0, #0x24] + adds r2, r0, #0 + adds r2, #0x3f + ldrb r1, [r2] + adds r1, #2 + strb r1, [r2] + bl sub_0806EF88 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806F02C +sub_0806F02C: @ 0x0806F02C + push {lr} + ldrh r1, [r1] + lsrs r1, r1, #8 + adds r2, r0, #0 + adds r2, #0x3e + strb r1, [r2] + adds r2, #1 + ldrb r1, [r2] + adds r1, #1 + strb r1, [r2] + bl sub_0806EF88 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806F048 +sub_0806F048: @ 0x0806F048 + movs r1, #3 + strb r1, [r0, #0x16] + movs r0, #0 + bx lr + + thumb_func_start sub_0806F050 +sub_0806F050: @ 0x0806F050 + push {lr} + adds r1, #2 + str r1, [r0, #0x54] + adds r2, r0, #0 + adds r2, #0x3f + movs r1, #0 + strb r1, [r2] + bl sub_0806EF88 + pop {pc} + + thumb_func_start sub_0806F064 +sub_0806F064: @ 0x0806F064 + movs r2, #0 + strb r2, [r0, #0x16] + adds r0, #0x3f + ldrb r2, [r0] + adds r2, #1 + strb r2, [r0] + ldrh r0, [r1] + lsrs r0, r0, #8 + bx lr + .align 2, 0 + + thumb_func_start sub_0806F078 +sub_0806F078: @ 0x0806F078 + push {lr} + adds r2, r0, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r1, r0 + beq _0806F0A0 + adds r0, r2, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + beq _0806F096 + adds r0, r2, #0 + bl sub_080042AC + b _0806F09C +_0806F096: + adds r0, r2, #0 + bl sub_08004260 +_0806F09C: + movs r0, #1 + b _0806F0A2 +_0806F0A0: + movs r0, #0 +_0806F0A2: + pop {pc} + + thumb_func_start sub_0806F0A4 +sub_0806F0A4: @ 0x0806F0A4 + push {r4, r5, r6, r7, lr} + sub sp, #4 + ldr r7, _0806F114 @ =gUnk_03003DA8 + ldr r5, [r7, #4] + movs r0, #0 + cmp r5, r7 + beq _0806F0BA +_0806F0B2: + adds r0, #1 + ldr r5, [r5, #4] + cmp r5, r7 + bne _0806F0B2 +_0806F0BA: + cmp r0, #1 + bls _0806F10E + ldr r5, [r7, #4] + cmp r5, r7 + beq _0806F10E + movs r2, #1 +_0806F0C6: + ldrb r1, [r5, #0x10] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _0806F108 + ldrb r1, [r5, #0x17] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _0806F108 + ldr r4, [r5, #4] + cmp r4, r7 + beq _0806F108 + movs r6, #1 +_0806F0E2: + ldrb r1, [r4, #0x10] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _0806F102 + ldrb r1, [r4, #0x17] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _0806F102 + adds r0, r5, #0 + adds r1, r4, #0 + str r2, [sp] + bl sub_08004484 + ldr r2, [sp] +_0806F102: + ldr r4, [r4, #4] + cmp r4, r7 + bne _0806F0E2 +_0806F108: + ldr r5, [r5, #4] + cmp r5, r7 + bne _0806F0C6 +_0806F10E: + add sp, #4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806F114: .4byte gUnk_03003DA8 + + thumb_func_start sub_0806F118 +sub_0806F118: @ 0x0806F118 + push {r4, lr} + adds r4, r0, #0 + bl sub_08002632 + ldr r1, _0806F140 @ =gUnk_08001A7C + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldrh r1, [r0] + ldrh r2, [r0, #2] + ldrh r3, [r0, #4] + adds r0, r4, #0 + bl sub_0801DFB4 + ldr r0, _0806F144 @ =gUnk_03003F80 + adds r0, #0x8b + movs r1, #3 + strb r1, [r0] + pop {r4, pc} + .align 2, 0 +_0806F140: .4byte gUnk_08001A7C +_0806F144: .4byte gUnk_03003F80 + + thumb_func_start sub_0806F148 +sub_0806F148: @ 0x0806F148 + push {r4, lr} + bl sub_0801E00C + movs r4, #1 + rsbs r4, r4, #0 + ldr r0, _0806F164 @ =gUnk_02022740 + ldrb r0, [r0] + cmp r0, #1 + beq _0806F172 + cmp r0, #2 + beq _0806F168 + movs r4, #0 + b _0806F17E + .align 2, 0 +_0806F164: .4byte gUnk_02022740 +_0806F168: + ldr r0, _0806F184 @ =gUnk_03003F80 + adds r0, #0x8b + movs r1, #3 + strb r1, [r0] + movs r4, #1 +_0806F172: + bl sub_0807919C + ldr r0, _0806F184 @ =gUnk_03003F80 + adds r0, #0x8b + movs r1, #1 + strb r1, [r0] +_0806F17E: + adds r0, r4, #0 + pop {r4, pc} + .align 2, 0 +_0806F184: .4byte gUnk_03003F80 + + thumb_func_start sub_0806F188 +sub_0806F188: @ 0x0806F188 + push {lr} + bl sub_08002632 + adds r1, r0, #0 + cmp r1, #0 + beq _0806F1A0 + ldr r0, _0806F1A4 @ =gUnk_02002A40 + ldr r2, _0806F1A8 @ =0x000001C1 + adds r0, r0, r2 + adds r0, r1, r0 + movs r1, #0xf3 + strb r1, [r0] +_0806F1A0: + pop {pc} + .align 2, 0 +_0806F1A4: .4byte gUnk_02002A40 +_0806F1A8: .4byte 0x000001C1 + + thumb_func_start sub_0806F1AC +sub_0806F1AC: @ 0x0806F1AC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r8, r0 + adds r6, r1, #0 + ldrh r1, [r6, #2] + asrs r7, r1, #4 + movs r0, #1 + ands r7, r0 + movs r0, #0xf + ands r1, r0 + cmp r1, #6 + bls _0806F1C8 + b _0806F332 +_0806F1C8: + lsls r0, r1, #2 + ldr r1, _0806F1D4 @ =_0806F1D8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0806F1D4: .4byte _0806F1D8 +_0806F1D8: @ jump table + .4byte _0806F332 @ case 0 + .4byte _0806F342 @ case 1 + .4byte _0806F1F4 @ case 2 + .4byte _0806F24E @ case 3 + .4byte _0806F2BA @ case 4 + .4byte _0806F324 @ case 5 + .4byte _0806F336 @ case 6 +_0806F1F4: + ldr r4, [r6] + asrs r1, r4, #0xc + movs r0, #0xf + ands r1, r0 + ldr r0, _0806F210 @ =0x00000FFF + ands r4, r0 + movs r5, #0 + cmp r1, #1 + beq _0806F22A + cmp r1, #1 + bgt _0806F214 + cmp r1, #0 + beq _0806F21A + b _0806F248 + .align 2, 0 +_0806F210: .4byte 0x00000FFF +_0806F214: + cmp r1, #2 + beq _0806F23A + b _0806F248 +_0806F21A: + adds r0, r4, #0 + bl sub_0807CC3C + adds r5, r0, #0 +_0806F222: + adds r0, r4, #0 + bl sub_0807CD10 + b _0806F248 +_0806F22A: + adds r0, r4, #0 + bl sub_0807CBD0 + adds r5, r0, #0 +_0806F232: + adds r0, r4, #0 + bl sub_0807CCB4 + b _0806F248 +_0806F23A: + adds r0, r4, #0 + bl sub_0807CC30 + adds r5, r0, #0 + adds r0, r4, #0 + bl sub_0807CD04 +_0806F248: + cmp r5, #0 + beq _0806F342 + b _0806F34C +_0806F24E: + ldr r4, [r6] + asrs r1, r4, #0xc + movs r0, #0xf + ands r1, r0 + ldr r0, _0806F26C @ =0x00000FFF + ands r4, r0 + movs r5, #0 + cmp r1, #1 + beq _0806F28A + cmp r1, #1 + bgt _0806F270 + cmp r1, #0 + beq _0806F276 + b _0806F248 + .align 2, 0 +_0806F26C: .4byte 0x00000FFF +_0806F270: + cmp r1, #2 + beq _0806F29E + b _0806F248 +_0806F276: + adds r0, r4, #0 + bl sub_0807CC3C + adds r5, r0, #0 + cmp r5, #0 + beq _0806F222 + adds r0, r4, #0 + bl sub_0807CD8C + b _0806F248 +_0806F28A: + adds r0, r4, #0 + bl sub_0807CBD0 + adds r5, r0, #0 + cmp r5, #0 + beq _0806F232 + adds r0, r4, #0 + bl sub_0807CD34 + b _0806F248 +_0806F29E: + adds r0, r4, #0 + bl sub_0807CC30 + adds r5, r0, #0 + cmp r5, #0 + bne _0806F2B2 + adds r0, r4, #0 + bl sub_0807CD04 + b _0806F248 +_0806F2B2: + adds r0, r4, #0 + bl sub_0807CD80 + b _0806F248 +_0806F2BA: + ldr r4, [r6] + asrs r1, r4, #0xc + movs r0, #0xf + ands r1, r0 + ldr r0, _0806F2D8 @ =0x00000FFF + ands r4, r0 + movs r5, #0 + cmp r1, #4 + bhi _0806F248 + lsls r0, r1, #2 + ldr r1, _0806F2DC @ =_0806F2E0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0806F2D8: .4byte 0x00000FFF +_0806F2DC: .4byte _0806F2E0 +_0806F2E0: @ jump table + .4byte _0806F2F4 @ case 0 + .4byte _0806F2FC @ case 1 + .4byte _0806F304 @ case 2 + .4byte _0806F30C @ case 3 + .4byte _0806F314 @ case 4 +_0806F2F4: + adds r0, r4, #0 + bl sub_0807CC3C + b _0806F320 +_0806F2FC: + adds r0, r4, #0 + bl sub_0807CBD0 + b _0806F320 +_0806F304: + adds r0, r4, #0 + bl sub_0807CC30 + b _0806F320 +_0806F30C: + adds r0, r4, #0 + bl sub_0801E7F4 + b _0806F320 +_0806F314: + adds r0, r4, #0 + bl sub_0807CA84 + cmp r0, #0 + beq _0806F320 + movs r0, #1 +_0806F320: + adds r5, r0, #0 + b _0806F248 +_0806F324: + ldr r1, [r6, #4] + cmp r1, #0 + beq _0806F332 + mov r0, r8 + bl _call_via_r1 + b _0806F35E +_0806F332: + movs r0, #0 + b _0806F34E +_0806F336: + ldr r0, _0806F348 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806F34C +_0806F342: + ldrh r0, [r6, #6] + b _0806F34E + .align 2, 0 +_0806F348: .4byte gUnk_03003F80 +_0806F34C: + ldrh r0, [r6, #4] +_0806F34E: + cmp r7, #0 + beq _0806F35A + mov r1, r8 + bl sub_08056398 + b _0806F35E +_0806F35A: + bl sub_08056378 +_0806F35E: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0806F364 +sub_0806F364: @ 0x0806F364 + push {lr} + ldr r2, _0806F384 @ =gUnk_02033A90 + ldrb r0, [r2, #8] + movs r1, #0x80 + eors r0, r1 + strb r0, [r2, #8] + ldrb r1, [r2, #8] + adds r0, r1, #7 + asrs r0, r0, #3 + ldr r3, _0806F388 @ =0x00000868 + adds r1, r2, r3 + adds r0, r0, r1 + movs r1, #0x10 + bl sub_0801D630 + pop {pc} + .align 2, 0 +_0806F384: .4byte gUnk_02033A90 +_0806F388: .4byte 0x00000868 + + thumb_func_start sub_0806F38C +sub_0806F38C: @ 0x0806F38C + ldr r0, _0806F398 @ =gUnk_02033A90 + ldrb r1, [r0, #8] + movs r2, #0x80 + eors r1, r2 + strb r1, [r0, #8] + bx lr + .align 2, 0 +_0806F398: .4byte gUnk_02033A90 + + thumb_func_start sub_0806F39C +sub_0806F39C: @ 0x0806F39C + push {r4, lr} + adds r3, r0, #0 + ldr r2, _0806F3B8 @ =gUnk_03001160 + ldrb r1, [r2, #0x14] + movs r0, #2 + ands r0, r1 + adds r4, r2, #0 + cmp r0, #0 + beq _0806F3BC + movs r0, #0x2e + ldrsh r1, [r3, r0] + movs r2, #0x2e + ldrsh r0, [r4, r2] + b _0806F3C4 + .align 2, 0 +_0806F3B8: .4byte gUnk_03001160 +_0806F3BC: + movs r0, #0x32 + ldrsh r1, [r3, r0] + movs r2, #0x32 + ldrsh r0, [r4, r2] +_0806F3C4: + subs r1, r1, r0 + cmp r1, #0 + bge _0806F3CC + rsbs r1, r1, #0 +_0806F3CC: + cmp r1, #0x40 + bgt _0806F3D4 + movs r0, #0 + b _0806F3E2 +_0806F3D4: + movs r0, #0x24 + ldrsh r1, [r3, r0] + ldrb r2, [r3, #0x15] + adds r0, r4, #0 + bl sub_080027EA + movs r0, #1 +_0806F3E2: + pop {r4, pc} + + thumb_func_start sub_0806F3E4 +sub_0806F3E4: @ 0x0806F3E4 + push {r4, r5, r6, lr} + sub sp, #0x88 + adds r5, r0, #0 + ldr r2, _0806F408 @ =gUnk_03003F80 + ldrb r1, [r2, #0x1c] + movs r0, #0x7f + ands r0, r1 + cmp r0, #1 + bne _0806F4E0 + ldrb r0, [r2, #0x1d] + cmp r0, #2 + beq _0806F420 + cmp r0, #2 + bgt _0806F40C + cmp r0, #1 + beq _0806F416 + b _0806F410 + .align 2, 0 +_0806F408: .4byte gUnk_03003F80 +_0806F40C: + cmp r0, #3 + beq _0806F42A +_0806F410: + adds r3, r5, #0 + adds r3, #0x46 + b _0806F436 +_0806F416: + adds r1, r5, #0 + adds r1, #0x46 + ldrh r0, [r1] + adds r0, #0x40 + b _0806F432 +_0806F420: + adds r1, r5, #0 + adds r1, #0x46 + ldrh r0, [r1] + adds r0, #0x80 + b _0806F432 +_0806F42A: + adds r1, r5, #0 + adds r1, #0x46 + ldrh r0, [r1] + adds r0, #0xc0 +_0806F432: + strh r0, [r1] + adds r3, r1, #0 +_0806F436: + adds r2, r3, #0 + ldrh r0, [r2] + movs r1, #0xa0 + lsls r1, r1, #3 + cmp r0, r1 + bls _0806F444 + strh r1, [r2] +_0806F444: + ldr r6, _0806F4BC @ =gUnk_03001160 + ldrb r0, [r6, #0x14] + movs r1, #0xe + ands r1, r0 + ldr r0, _0806F4C0 @ =gUnk_08126EE4 + adds r1, r1, r0 + mov r2, sp + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r4, [r6, #0x2e] + adds r0, r0, r4 + strh r0, [r2, #0x2e] + movs r0, #1 + ldrsb r0, [r1, r0] + ldrh r1, [r6, #0x32] + adds r0, r0, r1 + strh r0, [r2, #0x32] + ldrh r4, [r3] + adds r0, r5, #0 + mov r1, sp + bl sub_080045C4 + adds r2, r0, #0 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806F5BC + mov r0, sp + adds r1, r5, #0 + movs r2, #4 + movs r3, #4 + bl sub_0800419C + cmp r0, #0 + beq _0806F4E0 + ldrb r0, [r5, #0x1c] + movs r1, #0xf + ands r1, r0 + cmp r1, #2 + bne _0806F4C8 + movs r0, #3 + strb r0, [r5, #0xd] + str r5, [r6, #0x70] + ldr r1, _0806F4C4 @ =gUnk_03003F80 + movs r0, #7 + strb r0, [r1, #0x1c] + movs r0, #0x11 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08077CB8 + cmp r0, #0 + beq _0806F4B4 + str r5, [r0, #0x54] + str r0, [r5, #0x50] +_0806F4B4: + movs r0, #0xed + bl sub_080A3268 + b _0806F4D8 + .align 2, 0 +_0806F4BC: .4byte gUnk_03001160 +_0806F4C0: .4byte gUnk_08126EE4 +_0806F4C4: .4byte gUnk_03003F80 +_0806F4C8: + cmp r1, #1 + bne _0806F4D8 + ldr r0, _0806F4DC @ =gUnk_03003F80 + ldr r0, [r0, #0x2c] + strb r1, [r0, #0xa] + movs r0, #0xef + bl sub_080A3268 +_0806F4D8: + movs r0, #1 + b _0806F4E2 + .align 2, 0 +_0806F4DC: .4byte gUnk_03003F80 +_0806F4E0: + movs r0, #0 +_0806F4E2: + add sp, #0x88 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0806F4E8 +sub_0806F4E8: @ 0x0806F4E8 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0x1d] + movs r2, #3 + ands r2, r0 + cmp r2, #1 + beq _0806F516 + cmp r2, #1 + bgt _0806F500 + cmp r2, #0 + beq _0806F510 + b _0806F51C +_0806F500: + cmp r2, #2 + beq _0806F50A + cmp r2, #3 + beq _0806F516 + b _0806F51C +_0806F50A: + adds r1, #0x62 + movs r0, #0xfe + b _0806F51A +_0806F510: + adds r1, #0x62 + movs r0, #2 + b _0806F51A +_0806F516: + adds r1, #0x62 + movs r0, #0 +_0806F51A: + strb r0, [r1] +_0806F51C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806F520 +sub_0806F520: @ 0x0806F520 + push {lr} + adds r2, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x93 + beq _0806F544 + adds r3, r2, #0 + adds r3, #0x3a + ldrb r1, [r3] + movs r0, #0xfb + ands r0, r1 + movs r1, #0 + strb r0, [r3] + adds r0, r2, #0 + adds r0, #0x63 + strb r1, [r0] + movs r0, #0 + b _0806F546 +_0806F544: + movs r0, #1 +_0806F546: + pop {pc} + + thumb_func_start sub_0806F548 +sub_0806F548: @ 0x0806F548 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_080041A0 + cmp r0, #0 + bne _0806F55A + movs r0, #0 + b _0806F562 +_0806F55A: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806F58C +_0806F562: + pop {r4, r5, pc} + + thumb_func_start sub_0806F564 +sub_0806F564: @ 0x0806F564 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r3, r2, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + adds r2, r5, #0 + bl sub_080045D4 + bl sub_0806F5A4 + movs r2, #0 + ldrb r1, [r4, #0x14] + cmp r1, r0 + bne _0806F588 + movs r2, #1 +_0806F588: + adds r0, r2, #0 + pop {r4, r5, pc} + + thumb_func_start sub_0806F58C +sub_0806F58C: @ 0x0806F58C + push {r4, lr} + adds r4, r0, #0 + bl sub_0806FCA0 + movs r2, #0 + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 + cmp r1, r0 + bne _0806F5A0 + movs r2, #1 +_0806F5A0: + adds r0, r2, #0 + pop {r4, pc} + + thumb_func_start sub_0806F5A4 +sub_0806F5A4: @ 0x0806F5A4 + ldr r1, _0806F5AC @ =gUnk_08114F38 + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_0806F5AC: .4byte gUnk_08114F38 + + thumb_func_start sub_0806F5B0 +sub_0806F5B0: @ 0x0806F5B0 + ldr r1, _0806F5B8 @ =gUnk_08114F58 + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_0806F5B8: .4byte gUnk_08114F58 + + thumb_func_start sub_0806F5BC +sub_0806F5BC: @ 0x0806F5BC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r0, #0 + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + bne _0806F620 + ldr r0, _0806F628 @ =gUnk_080C9160 + mov r8, r0 + lsls r4, r2, #3 + lsls r0, r2, #4 + add r0, r8 + movs r2, #0 + ldrsh r0, [r0, r2] + lsls r5, r1, #0x10 + asrs r5, r5, #0x10 + adds r1, r5, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r6, #0x80 + lsls r6, r6, #1 + adds r1, r6, #0 + bl sub_0806FA04 + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r7, #0x2c] + adds r1, r1, r0 + str r1, [r7, #0x2c] + adds r4, #0x40 + lsls r4, r4, #1 + add r4, r8 + movs r1, #0 + ldrsh r0, [r4, r1] + adds r1, r5, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r6, #0 + bl sub_0806FA04 + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r7, #0x30] + subs r1, r1, r0 + str r1, [r7, #0x30] +_0806F620: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806F628: .4byte gUnk_080C9160 + + thumb_func_start sub_0806F62C +sub_0806F62C: @ 0x0806F62C + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + adds r6, r0, #0 + adds r5, r1, #0 + adds r4, r2, #0 + ldr r0, _0806F698 @ =gUnk_080C9160 + mov sb, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r0, r4, #1 + add r0, sb + movs r1, #0 + ldrsh r0, [r0, r1] + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + adds r1, r5, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x80 + lsls r1, r1, #1 + mov r8, r1 + bl sub_0806FA04 + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r6, #0x2c] + adds r1, r1, r0 + str r1, [r6, #0x2c] + adds r4, #0x40 + lsls r4, r4, #1 + add r4, sb + movs r1, #0 + ldrsh r0, [r4, r1] + adds r1, r5, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + mov r1, r8 + bl sub_0806FA04 + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r6, #0x30] + subs r1, r1, r0 + str r1, [r6, #0x30] + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, pc} + .align 2, 0 +_0806F698: .4byte gUnk_080C9160 + + thumb_func_start sub_0806F69C +sub_0806F69C: @ 0x0806F69C + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldrb r1, [r6, #0x15] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0806F6FE + ldr r5, _0806F700 @ =gUnk_080C9160 + ldrb r0, [r6, #0x15] + lsls r0, r0, #4 + adds r0, r0, r5 + movs r1, #0 + ldrsh r0, [r0, r1] + movs r2, #0x24 + ldrsh r1, [r6, r2] + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r4, #0x80 + lsls r4, r4, #1 + adds r1, r4, #0 + bl sub_0806FA04 + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r6, #0x2c] + adds r1, r1, r0 + str r1, [r6, #0x2c] + ldrb r0, [r6, #0x15] + lsls r0, r0, #4 + adds r0, #0x80 + adds r0, r0, r5 + movs r1, #0 + ldrsh r0, [r0, r1] + movs r2, #0x24 + ldrsh r1, [r6, r2] + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r4, #0 + bl sub_0806FA04 + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r6, #0x30] + subs r1, r1, r0 + str r1, [r6, #0x30] +_0806F6FE: + pop {r4, r5, r6, pc} + .align 2, 0 +_0806F700: .4byte gUnk_080C9160 + + thumb_func_start sub_0806F704 +sub_0806F704: @ 0x0806F704 + push {r4, r5, r6, lr} + lsls r3, r1, #4 + movs r2, #0xfc + lsls r2, r2, #2 + adds r6, r2, #0 + ands r3, r6 + movs r5, #8 + orrs r3, r5 + ldr r4, _0806F72C @ =gUnk_03000BF0 + ldrh r2, [r4, #6] + adds r2, r2, r3 + strh r2, [r0, #0x2e] + lsrs r1, r1, #2 + ands r1, r6 + orrs r1, r5 + ldrh r2, [r4, #8] + adds r2, r2, r1 + strh r2, [r0, #0x32] + pop {r4, r5, r6, pc} + .align 2, 0 +_0806F72C: .4byte gUnk_03000BF0 + + thumb_func_start sub_0806F730 +sub_0806F730: @ 0x0806F730 + push {r4, r5, r6, lr} + movs r6, #0x3f + movs r1, #0x2e + ldrsh r2, [r0, r1] + ldr r4, [r0, #0x48] + movs r1, #0 + ldrsb r1, [r4, r1] + adds r2, r2, r1 + ldr r3, _0806F764 @ =gUnk_03000BF0 + ldrh r1, [r3, #6] + subs r5, r2, r1 + movs r2, #0x32 + ldrsh r1, [r0, r2] + movs r2, #1 + ldrsb r2, [r4, r2] + adds r1, r1, r2 + ldrh r2, [r3, #8] + subs r1, r1, r2 + ldrb r0, [r0, #0x14] + cmp r0, #2 + beq _0806F77E + cmp r0, #2 + bgt _0806F768 + cmp r0, #0 + beq _0806F772 + b _0806F788 + .align 2, 0 +_0806F764: .4byte gUnk_03000BF0 +_0806F768: + cmp r0, #4 + beq _0806F778 + cmp r0, #6 + beq _0806F784 + b _0806F788 +_0806F772: + ldrb r0, [r4, #5] + subs r1, r1, r0 + b _0806F788 +_0806F778: + ldrb r0, [r4, #5] + adds r1, r1, r0 + b _0806F788 +_0806F77E: + ldrb r0, [r4, #2] + adds r5, r5, r0 + b _0806F788 +_0806F784: + ldrb r0, [r4, #2] + subs r5, r5, r0 +_0806F788: + lsrs r0, r5, #4 + ands r0, r6 + lsrs r1, r1, #4 + ands r1, r6 + lsls r1, r1, #6 + adds r0, r0, r1 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0806F798 +sub_0806F798: @ 0x0806F798 + push {r4, r5, lr} + adds r2, r0, #0 + movs r1, #0x2e + ldrsh r0, [r2, r1] + ldr r4, [r2, #0x48] + movs r1, #0 + ldrsb r1, [r4, r1] + adds r0, r0, r1 + ldr r3, _0806F7CC @ =gUnk_03000BF0 + ldrh r1, [r3, #6] + subs r0, r0, r1 + movs r5, #0x32 + ldrsh r1, [r2, r5] + movs r2, #1 + ldrsb r2, [r4, r2] + adds r1, r1, r2 + ldrh r2, [r3, #8] + subs r1, r1, r2 + movs r2, #0x3f + lsrs r0, r0, #4 + ands r0, r2 + lsrs r1, r1, #4 + ands r1, r2 + lsls r1, r1, #6 + adds r0, r0, r1 + pop {r4, r5, pc} + .align 2, 0 +_0806F7CC: .4byte gUnk_03000BF0 + + thumb_func_start sub_0806F7D0 +sub_0806F7D0: @ 0x0806F7D0 + push {r4, lr} + ldr r4, _0806F7E4 @ =gUnk_02025EB0 + bl sub_0806F730 + ldr r1, _0806F7E8 @ =0x00002004 + adds r4, r4, r1 + adds r0, r0, r4 + ldrb r0, [r0] + pop {r4, pc} + .align 2, 0 +_0806F7E4: .4byte gUnk_02025EB0 +_0806F7E8: .4byte 0x00002004 + + thumb_func_start sub_0806F7EC +sub_0806F7EC: @ 0x0806F7EC + push {r4, lr} + ldr r4, _0806F800 @ =gUnk_02025EB0 + bl sub_0806F730 + lsls r0, r0, #1 + adds r4, #4 + adds r0, r0, r4 + ldrh r0, [r0] + pop {r4, pc} + .align 2, 0 +_0806F800: .4byte gUnk_02025EB0 + + thumb_func_start sub_0806F804 +sub_0806F804: @ 0x0806F804 + lsrs r0, r0, #4 + movs r2, #0x3f + ands r0, r2 + movs r2, #0xfc + lsls r2, r2, #2 + ands r2, r1 + lsls r2, r2, #2 + adds r0, r0, r2 + ldr r1, _0806F820 @ =gUnk_02025EB0 + lsls r0, r0, #1 + adds r1, #4 + adds r0, r0, r1 + ldrh r0, [r0] + bx lr + .align 2, 0 +_0806F820: .4byte gUnk_02025EB0 + + thumb_func_start sub_0806F824 +sub_0806F824: @ 0x0806F824 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + adds r4, r2, #0 + adds r5, r3, #0 + movs r2, #0x2e + ldrsh r6, [r0, r2] + movs r2, #0x32 + ldrsh r3, [r0, r2] + mov r8, r3 + movs r3, #0x2e + ldrsh r2, [r1, r3] + adds r2, r2, r4 + movs r0, #0x32 + ldrsh r3, [r1, r0] + adds r3, r3, r5 + adds r0, r6, #0 + mov r1, r8 + bl sub_080045D4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0806F854 +sub_0806F854: @ 0x0806F854 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r3, r1, #0 + adds r6, r2, #0 + ldr r0, [r4, #0x34] + cmp r0, #0 + beq _0806F8D6 + adds r0, r4, #0 + adds r0, #0x38 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _0806F8D6 + movs r1, #0x2e + ldrsh r0, [r4, r1] + adds r0, r0, r3 + ldr r2, _0806F8BC @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r5, #0x3f + ands r0, r5 + movs r3, #0x32 + ldrsh r1, [r4, r3] + adds r1, r1, r6 + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r5 + lsls r1, r1, #6 + orrs r0, r1 + movs r1, #2 + movs r2, #8 + bl sub_080002F0 + cmp r0, #0 + beq _0806F8C0 + ldrb r1, [r4, #0x19] + adds r0, r5, #0 + ands r0, r1 + movs r2, #0x80 + orrs r0, r2 + strb r0, [r4, #0x19] + ldrb r1, [r4, #0x1b] + adds r0, r5, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x1b] + movs r0, #1 + b _0806F8D8 + .align 2, 0 +_0806F8BC: .4byte gUnk_03000BF0 +_0806F8C0: + ldrb r1, [r4, #0x19] + adds r0, r5, #0 + ands r0, r1 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r4, #0x19] + ldrb r1, [r4, #0x1b] + adds r0, r5, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x1b] +_0806F8D6: + movs r0, #0 +_0806F8D8: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0806F8DC +sub_0806F8DC: @ 0x0806F8DC + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x38 + ldrb r1, [r5] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _0806F942 + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + subs r1, #4 + movs r2, #2 + bl sub_080002A4 + cmp r0, #0 + beq _0806F91C + ldrb r2, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x80 + orrs r0, r2 + strb r0, [r4, #0x19] + ldrb r0, [r4, #0x1b] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x1b] + movs r0, #1 + b _0806F944 +_0806F91C: + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + subs r1, #4 + ldrb r2, [r5] + bl sub_080002A4 + ldrb r2, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r4, #0x19] + ldrb r0, [r4, #0x1b] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x1b] +_0806F942: + movs r0, #0 +_0806F944: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806F948 +sub_0806F948: @ 0x0806F948 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0806F974 @ =gUnk_03003F80 + ldrb r0, [r1, #0xd] + cmp r0, #0xff + beq _0806F994 + ldrb r0, [r1, #0xd] + lsrs r3, r0, #2 + movs r0, #1 + ands r0, r3 + cmp r0, #0 + beq _0806F978 + ldrb r2, [r4, #0x14] + subs r0, r2, #1 + subs r0, r3, r0 + movs r1, #4 + ands r0, r1 + cmp r0, #0 + bne _0806F978 + adds r0, r2, #0 + b _0806F996 + .align 2, 0 +_0806F974: .4byte gUnk_03003F80 +_0806F978: + movs r2, #0 + cmp r3, #4 + bls _0806F980 + movs r2, #1 +_0806F980: + lsls r2, r2, #6 + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + movs r0, #6 + ands r3, r0 + strb r3, [r4, #0x14] +_0806F994: + ldrb r0, [r4, #0x14] +_0806F996: + pop {r4, pc} + + thumb_func_start sub_0806F998 +sub_0806F998: @ 0x0806F998 + push {r4, lr} + adds r2, r0, #0 + ldrb r4, [r2, #0x14] + ldrb r1, [r2, #0x15] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0806F9E6 + movs r0, #0x1c + ands r0, r1 + lsrs r3, r0, #2 + movs r1, #1 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _0806F9C4 + subs r0, r3, r4 + adds r0, #1 + movs r1, #4 + ands r0, r1 + cmp r0, #0 + beq _0806F9E6 +_0806F9C4: + ldrb r0, [r2, #0x15] + lsrs r0, r0, #2 + movs r1, #0x7e + ands r0, r1 + strb r0, [r2, #0x14] + adds r4, r0, #0 + cmp r4, #4 + bhi _0806F9DE + ldrb r1, [r2, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + b _0806F9E4 +_0806F9DE: + ldrb r0, [r2, #0x18] + movs r1, #0x40 + orrs r0, r1 +_0806F9E4: + strb r0, [r2, #0x18] +_0806F9E6: + adds r0, r4, #0 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806F9EC +sub_0806F9EC: @ 0x0806F9EC + push {lr} + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + muls r0, r1, r0 + cmp r0, #0 + bge _0806F9FE + adds r0, #0xff +_0806F9FE: + lsls r0, r0, #8 + asrs r0, r0, #0x10 + pop {pc} + + thumb_func_start sub_0806FA04 +sub_0806FA04: @ 0x0806FA04 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r1, #0 + beq _0806FA20 + lsls r0, r0, #0x10 + asrs r0, r0, #8 + bl __divsi3 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + b _0806FA22 +_0806FA20: + movs r0, #0 +_0806FA22: + pop {pc} + + thumb_func_start sub_0806FA24 +sub_0806FA24: @ 0x0806FA24 + push {lr} + movs r2, #0 + movs r3, #0 + bl sub_0806FA48 + pop {pc} + + thumb_func_start sub_0806FA30 +sub_0806FA30: @ 0x0806FA30 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_0806FA48 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FAB0 + pop {r4, r5, pc} + + thumb_func_start sub_0806FA48 +sub_0806FA48: @ 0x0806FA48 + push {r4, lr} + ldr r4, [r0, #0x2c] + adds r4, r4, r2 + str r4, [r1, #0x2c] + ldr r2, [r0, #0x30] + adds r2, r2, r3 + str r2, [r1, #0x30] + ldr r2, [r0, #0x34] + str r2, [r1, #0x34] + adds r0, #0x38 + ldrb r2, [r0] + adds r0, r1, #0 + adds r0, #0x38 + strb r2, [r0] + adds r0, r1, #0 + bl sub_08016A04 + pop {r4, pc} + + thumb_func_start sub_0806FA6C +sub_0806FA6C: @ 0x0806FA6C + push {lr} + adds r2, r0, #0 + adds r2, #0x62 + ldrb r2, [r2] + adds r3, r1, #0 + adds r3, #0x62 + strb r2, [r3] + adds r2, r0, #0 + adds r2, #0x63 + ldrb r2, [r2] + adds r3, #1 + strb r2, [r3] + movs r2, #0 + movs r3, #0 + bl sub_0806FA48 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806FA90 +sub_0806FA90: @ 0x0806FA90 + push {r4, r5, lr} + adds r4, r0, #0 + adds r4, #0x62 + ldrb r4, [r4] + movs r5, #0x62 + strb r4, [r5, r1] + adds r4, r0, #0 + adds r4, #0x63 + ldrb r4, [r4] + movs r5, #0x63 + strb r4, [r5, r1] + lsls r2, r2, #0x10 + lsls r3, r3, #0x10 + bl sub_0806FA48 + pop {r4, r5, pc} + + thumb_func_start sub_0806FAB0 +sub_0806FAB0: @ 0x0806FAB0 + ldr r2, _0806FAD4 @ =gUnk_08114F78 + adds r0, #0x29 + ldrb r0, [r0] + lsls r0, r0, #0x1d + lsrs r0, r0, #0x1d + adds r0, r0, r2 + ldrb r0, [r0] + adds r1, #0x29 + movs r2, #7 + ands r2, r0 + ldrb r3, [r1] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r1] + bx lr + .align 2, 0 +_0806FAD4: .4byte gUnk_08114F78 + + thumb_func_start sub_0806FAD8 +sub_0806FAD8: @ 0x0806FAD8 + ldr r2, _0806FAFC @ =gUnk_08114F80 + adds r0, #0x29 + ldrb r0, [r0] + lsls r0, r0, #0x1d + lsrs r0, r0, #0x1d + adds r0, r0, r2 + ldrb r0, [r0] + adds r1, #0x29 + movs r2, #7 + ands r2, r0 + ldrb r3, [r1] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r1] + bx lr + .align 2, 0 +_0806FAFC: .4byte gUnk_08114F80 + + thumb_func_start sub_0806FB00 +sub_0806FB00: @ 0x0806FB00 + push {r4, lr} + mov ip, r0 + adds r4, r1, #0 + cmp r3, #0 + bne _0806FB0C + movs r3, #1 +_0806FB0C: + mov r1, ip + adds r1, #0x7e + movs r0, #0 + strb r0, [r1] + mov r0, ip + adds r0, #0x7f + strb r3, [r0] + mov r0, ip + ldrh r1, [r0, #0x2e] + adds r0, #0x80 + strh r1, [r0] + mov r1, ip + ldrh r0, [r1, #0x32] + adds r1, #0x82 + strh r0, [r1] + mov r0, ip + adds r0, #0x84 + strh r4, [r0] + adds r0, #2 + strh r2, [r0] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806FB38 +sub_0806FB38: @ 0x0806FB38 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r6, r5, #0 + adds r6, #0x7e + adds r7, r5, #0 + adds r7, #0x7f + ldrb r0, [r6] + ldrb r1, [r7] + cmp r0, r1 + bhs _0806FBA0 + adds r0, #1 + strb r0, [r6] + adds r0, r5, #0 + adds r0, #0x84 + movs r2, #0 + ldrsh r1, [r0, r2] + adds r4, r5, #0 + adds r4, #0x80 + movs r2, #0 + ldrsh r0, [r4, r2] + subs r1, r1, r0 + ldrb r0, [r6] + muls r0, r1, r0 + lsls r0, r0, #8 + ldrb r1, [r7] + bl __divsi3 + asrs r0, r0, #8 + ldrh r4, [r4] + adds r0, r0, r4 + strh r0, [r5, #0x2e] + adds r0, r5, #0 + adds r0, #0x86 + movs r2, #0 + ldrsh r1, [r0, r2] + adds r4, r5, #0 + adds r4, #0x82 + movs r2, #0 + ldrsh r0, [r4, r2] + subs r1, r1, r0 + ldrb r0, [r6] + muls r0, r1, r0 + lsls r0, r0, #8 + ldrb r1, [r7] + bl __divsi3 + asrs r0, r0, #8 + ldrh r4, [r4] + adds r0, r0, r4 + strh r0, [r5, #0x32] + movs r0, #0 + b _0806FBB2 +_0806FBA0: + adds r0, r5, #0 + adds r0, #0x84 + ldrh r0, [r0] + strh r0, [r5, #0x2e] + adds r0, r5, #0 + adds r0, #0x86 + ldrh r0, [r0] + strh r0, [r5, #0x32] + movs r0, #1 +_0806FBB2: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0806FBB4 +sub_0806FBB4: @ 0x0806FBB4 + push {lr} + adds r1, r0, #0 + ldr r0, _0806FBD0 @ =gUnk_030010A0 + ldrb r0, [r0, #5] + cmp r0, #0 + bne _0806FBC8 + ldr r0, _0806FBD4 @ =gUnk_03003F80 + ldrb r0, [r0, #5] + cmp r0, #0 + bne _0806FBCC +_0806FBC8: + movs r0, #6 + strb r0, [r1, #0xd] +_0806FBCC: + pop {pc} + .align 2, 0 +_0806FBD0: .4byte gUnk_030010A0 +_0806FBD4: .4byte gUnk_03003F80 + + thumb_func_start sub_0806FBD8 +sub_0806FBD8: @ 0x0806FBD8 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806FBEC + movs r0, #0xc + bl sub_0801D8E0 + str r0, [r4, #0x48] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806FBEC +sub_0806FBEC: @ 0x0806FBEC + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x48] + bl sub_0801DA0C + movs r0, #0 + str r0, [r4, #0x48] + pop {r4, pc} + + thumb_func_start sub_0806FBFC +sub_0806FBFC: @ 0x0806FBFC + push {r4, r5, r6, lr} + adds r5, r3, #0 + ldr r4, _0806FC20 @ =gUnk_03001160 + movs r6, #0x2e + ldrsh r3, [r4, r6] + subs r3, r3, r0 + movs r6, #0x32 + ldrsh r0, [r4, r6] + subs r0, r0, r1 + movs r1, #0 + cmp r3, r2 + bhs _0806FC1A + cmp r0, r5 + bhs _0806FC1A + movs r1, #1 +_0806FC1A: + adds r0, r1, #0 + pop {r4, r5, r6, pc} + .align 2, 0 +_0806FC20: .4byte gUnk_03001160 + + thumb_func_start sub_0806FC24 +sub_0806FC24: @ 0x0806FC24 + push {r4, lr} + adds r4, r1, #0 + ldr r1, _0806FC44 @ =gUnk_080046A4 + bl sub_08007DD6 + cmp r0, #0 + beq _0806FC4C + lsls r0, r0, #3 + ldr r1, _0806FC48 @ =gUnk_080047F6 + adds r0, r0, r1 + ldrh r0, [r0] + asrs r0, r4 + movs r1, #1 + ands r0, r1 + b _0806FC4E + .align 2, 0 +_0806FC44: .4byte gUnk_080046A4 +_0806FC48: .4byte gUnk_080047F6 +_0806FC4C: + movs r0, #0 +_0806FC4E: + pop {r4, pc} + + thumb_func_start sub_0806FC50 +sub_0806FC50: @ 0x0806FC50 + push {r4, lr} + adds r4, r1, #0 + ldr r1, _0806FC74 @ =gUnk_080046A4 + bl sub_08007DD6 + cmp r0, #0 + beq _0806FC70 + ldr r1, _0806FC78 @ =gUnk_080047F6 + lsls r0, r0, #3 + adds r2, r0, r1 + ldrh r0, [r2] + asrs r0, r4 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _0806FC7C +_0806FC70: + movs r0, #0 + b _0806FC7E + .align 2, 0 +_0806FC74: .4byte gUnk_080046A4 +_0806FC78: .4byte gUnk_080047F6 +_0806FC7C: + adds r0, r2, #0 +_0806FC7E: + pop {r4, pc} + + thumb_func_start sub_0806FC80 +sub_0806FC80: @ 0x0806FC80 + push {r4, r5, lr} + lsls r4, r2, #4 + movs r2, #0x2e + ldrsh r3, [r1, r2] + movs r5, #0x32 + ldrsh r2, [r1, r5] + adds r1, r3, #0 + bl sub_080041DC + cmp r4, r0 + bhs _0806FC9A + movs r0, #0 + b _0806FC9C +_0806FC9A: + movs r0, #1 +_0806FC9C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806FCA0 +sub_0806FCA0: @ 0x0806FCA0 + push {lr} + bl sub_080045C4 + bl sub_0806F5A4 + pop {pc} + + thumb_func_start sub_0806FCAC +sub_0806FCAC: @ 0x0806FCAC + push {lr} + bl sub_080045C4 + bl sub_0806F5B0 + pop {pc} + + thumb_func_start sub_0806FCB8 +sub_0806FCB8: @ 0x0806FCB8 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #0x2e + ldrsh r0, [r4, r5] + subs r0, r0, r1 + movs r5, #0x32 + ldrsh r1, [r4, r5] + subs r1, r1, r2 + adds r2, r3, #0 + bl sub_0806FCD0 + pop {r4, r5, pc} + + thumb_func_start sub_0806FCD0 +sub_0806FCD0: @ 0x0806FCD0 + push {r4, lr} + movs r3, #0 + adds r4, r2, #0 + muls r4, r2, r4 + adds r2, r4, #0 + adds r4, r0, #0 + muls r4, r0, r4 + adds r0, r4, #0 + adds r4, r1, #0 + muls r4, r1, r4 + adds r1, r4, #0 + adds r0, r0, r1 + cmp r2, r0 + blt _0806FCEE + movs r3, #1 +_0806FCEE: + adds r0, r3, #0 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806FCF4 +sub_0806FCF4: @ 0x0806FCF4 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r4, r2, #0 + adds r5, r3, #0 + movs r2, #0 + cmp r1, #0 + bge _0806FD04 + rsbs r1, r1, #0 +_0806FD04: + cmp r4, #0 + beq _0806FD1A + movs r0, #0x80 + lsls r0, r0, #9 + bl __divsi3 + adds r1, r0, #0 + adds r0, r4, #0 + muls r0, r1, r0 + lsrs r1, r0, #8 + subs r2, r4, r1 +_0806FD1A: + cmp r5, #0 + beq _0806FD22 + cmp r5, #3 + bne _0806FD24 +_0806FD22: + rsbs r2, r2, #0 +_0806FD24: + cmp r5, #0 + beq _0806FD2C + cmp r5, #2 + bne _0806FD32 +_0806FD2C: + adds r0, r6, #0 + adds r0, #0x63 + b _0806FD36 +_0806FD32: + adds r0, r6, #0 + adds r0, #0x62 +_0806FD36: + strb r2, [r0] + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0806FD3C +sub_0806FD3C: @ 0x0806FD3C + ldrb r2, [r0, #0x18] + movs r1, #0x31 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0, #0x18] + adds r0, #0x29 + ldrb r2, [r0] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + bx lr + + thumb_func_start sub_0806FD54 +sub_0806FD54: @ 0x0806FD54 + push {r4, lr} + adds r3, r0, #0 + ldr r0, _0806FD6C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x10 + ands r0, r1 + cmp r0, #0 + bne _0806FD70 + movs r0, #0 + b _0806FD84 + .align 2, 0 +_0806FD6C: .4byte gUnk_03003F80 +_0806FD70: + ldr r0, _0806FD88 @ =gUnk_03001160 + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r4, #0x32 + ldrsh r2, [r0, r4] + subs r2, #9 + adds r0, r3, #0 + movs r3, #0x48 + bl sub_0806FCB8 +_0806FD84: + pop {r4, pc} + .align 2, 0 +_0806FD88: .4byte gUnk_03001160 + + thumb_func_start sub_0806FD8C +sub_0806FD8C: @ 0x0806FD8C + push {lr} + ldr r0, _0806FD9C @ =gUnk_020000C0 + movs r1, #0xc0 + lsls r1, r1, #4 + bl sub_0801D630 + pop {pc} + .align 2, 0 +_0806FD9C: .4byte gUnk_020000C0 + + thumb_func_start sub_0806FDA0 +sub_0806FDA0: @ 0x0806FDA0 + push {r4, lr} + movs r3, #1 + ldr r1, _0806FDD8 @ =gUnk_020000C0 + movs r4, #0xff + movs r2, #0x61 + adds r2, r2, r1 + mov ip, r2 + adds r2, r1, #0 + adds r2, #0x40 + adds r1, r0, #0 + adds r1, #0x28 +_0806FDB6: + ldrb r0, [r2] + lsls r0, r0, #0x1f + cmp r0, #0 + bne _0806FDDC + strb r3, [r1] + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + strb r4, [r2, #1] + strb r4, [r2, #0x11] + mov r0, ip + strb r4, [r0] + strb r4, [r0, #0x10] + movs r0, #1 + b _0806FDEA + .align 2, 0 +_0806FDD8: .4byte gUnk_020000C0 +_0806FDDC: + movs r0, #0x40 + add ip, r0 + adds r2, #0x40 + adds r3, #1 + cmp r3, #0x2f + bls _0806FDB6 + movs r0, #0 +_0806FDEA: + pop {r4, pc} + + thumb_func_start sub_0806FDEC +sub_0806FDEC: @ 0x0806FDEC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + adds r4, r1, #0 + bl sub_0806FDA0 + cmp r0, #0 + bne _0806FE02 + movs r0, #0 + b _0806FE74 +_0806FE02: + adds r0, r6, #0 + bl sub_0801D230 + adds r0, r6, #0 + adds r0, #0x28 + ldrb r0, [r0] + lsls r0, r0, #6 + ldr r1, _0806FE7C @ =gUnk_020000C0 + adds r5, r0, r1 + movs r7, #0 + ldrh r1, [r4, #2] + ldr r0, _0806FE80 @ =0x000003FF + ands r0, r1 + movs r1, #0x27 + adds r1, r1, r6 + mov r8, r1 + cmp r0, #0 + beq _0806FE6C +_0806FE26: + ldr r1, [r4] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x16 + adds r0, r6, #0 + bl sub_0801D040 + adds r2, r0, #0 + ldr r3, [r4] + lsls r1, r3, #6 + lsrs r1, r1, #0x16 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x1a + adds r0, r5, #0 + bl sub_0806FEE8 + ldrb r1, [r4, #3] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0806FE56 + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0806FEFC +_0806FE56: + adds r5, #0x10 + adds r4, #4 + adds r7, #1 + cmp r7, #3 + bhi _0806FE6C + ldrh r1, [r4, #2] + ldr r2, _0806FE80 @ =0x000003FF + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _0806FE26 +_0806FE6C: + movs r0, #0 + mov r1, r8 + strb r0, [r1] + movs r0, #1 +_0806FE74: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806FE7C: .4byte gUnk_020000C0 +_0806FE80: .4byte 0x000003FF + + thumb_func_start sub_0806FE84 +sub_0806FE84: @ 0x0806FE84 + push {r4, r5, r6, lr} + adds r0, #0x28 + ldrb r2, [r0] + movs r1, #0 + strb r1, [r0] + subs r0, r2, #1 + cmp r0, #0x7e + bhi _0806FEB4 + lsls r1, r2, #6 + ldr r0, _0806FEB8 @ =gUnk_020000C0 + adds r6, r1, r0 + movs r5, #0 + adds r4, r6, #0 +_0806FE9E: + ldrb r0, [r4, #5] + bl sub_0801D244 + adds r4, #0x10 + adds r5, #1 + cmp r5, #3 + bls _0806FE9E + adds r0, r6, #0 + movs r1, #0x40 + bl sub_0801D630 +_0806FEB4: + pop {r4, r5, r6, pc} + .align 2, 0 +_0806FEB8: .4byte gUnk_020000C0 + + thumb_func_start sub_0806FEBC +sub_0806FEBC: @ 0x0806FEBC + adds r0, #0x28 + ldrb r3, [r0] + lsls r3, r3, #6 + lsls r1, r1, #4 + ldr r0, _0806FEE4 @ =gUnk_020000C0 + adds r1, r1, r0 + adds r3, r3, r1 + movs r0, #0 + str r0, [r3] + str r0, [r3, #4] + str r0, [r3, #8] + str r2, [r3, #0xc] + ldrb r0, [r3] + movs r1, #1 + orrs r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r3] + bx lr + .align 2, 0 +_0806FEE4: .4byte gUnk_020000C0 + + thumb_func_start sub_0806FEE8 +sub_0806FEE8: @ 0x0806FEE8 + strb r3, [r0, #8] + strh r1, [r0, #2] + strb r2, [r0, #5] + ldrb r1, [r0] + movs r2, #8 + orrs r1, r2 + movs r2, #1 + orrs r1, r2 + strb r1, [r0] + bx lr + + thumb_func_start sub_0806FEFC +sub_0806FEFC: @ 0x0806FEFC + adds r1, #0x60 + ldrh r1, [r1] + ldrb r2, [r0, #8] + adds r1, r1, r2 + strh r1, [r0, #0xa] + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + bx lr + + thumb_func_start sub_0806FF10 +sub_0806FF10: @ 0x0806FF10 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r5, r2, #0 + adds r0, #0x28 + ldrb r2, [r0] + lsls r2, r2, #6 + lsls r1, r1, #4 + ldr r0, _0806FF44 @ =gUnk_020000C0 + adds r1, r1, r0 + adds r4, r2, r1 + adds r0, r5, #0 + bl sub_0801D108 + ldrb r1, [r4, #5] + cmp r1, r0 + beq _0806FF40 + adds r0, r1, #0 + bl sub_0801D244 + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_0801D040 + strb r0, [r4, #5] +_0806FF40: + pop {r4, r5, r6, pc} + .align 2, 0 +_0806FF44: .4byte gUnk_020000C0 + + thumb_func_start sub_0806FF48 +sub_0806FF48: @ 0x0806FF48 + adds r0, #0x28 + ldrb r0, [r0] + lsls r0, r0, #6 + lsls r1, r1, #4 + ldr r3, _0806FF5C @ =gUnk_020000C0 + adds r1, r1, r3 + adds r0, r0, r1 + strb r2, [r0, #4] + bx lr + .align 2, 0 +_0806FF5C: .4byte gUnk_020000C0 + + thumb_func_start sub_0806FF60 +sub_0806FF60: @ 0x0806FF60 + push {lr} + adds r3, r2, #0 + adds r0, #0x28 + ldrb r0, [r0] + lsls r0, r0, #6 + ldr r2, _0806FF84 @ =gUnk_020000C0 + adds r0, r0, r2 + lsls r1, r1, #4 + adds r2, r0, r1 + ldrb r0, [r2, #1] + cmp r0, r3 + beq _0806FF82 + strb r3, [r2, #1] + ldrb r0, [r2] + movs r1, #8 + orrs r0, r1 + strb r0, [r2] +_0806FF82: + pop {pc} + .align 2, 0 +_0806FF84: .4byte gUnk_020000C0 + + thumb_func_start sub_0806FF88 +sub_0806FF88: @ 0x0806FF88 + push {r4, r5, lr} + adds r5, r1, #0 + adds r0, #0x28 + ldrb r4, [r0] + lsls r4, r4, #6 + ldr r0, _0806FFB8 @ =gUnk_020000C0 + adds r4, r4, r0 + lsls r5, r5, #4 + adds r5, r4, r5 + lsls r2, r2, #4 + adds r4, r4, r2 + ldrh r0, [r5, #2] + ldrb r1, [r5, #1] + bl sub_080700C8 + ldrb r1, [r5, #6] + ldrb r2, [r0] + adds r1, r1, r2 + strb r1, [r4, #6] + ldrb r1, [r5, #7] + ldrb r0, [r0, #1] + adds r1, r1, r0 + strb r1, [r4, #7] + pop {r4, r5, pc} + .align 2, 0 +_0806FFB8: .4byte gUnk_020000C0 + + thumb_func_start sub_0806FFBC +sub_0806FFBC: @ 0x0806FFBC + push {r4, lr} + adds r0, #0x28 + ldrb r0, [r0] + lsls r0, r0, #6 + lsls r1, r1, #4 + ldr r4, _0806FFD4 @ =gUnk_020000C0 + adds r1, r1, r4 + adds r0, r0, r1 + strb r2, [r0, #6] + strb r3, [r0, #7] + pop {r4, pc} + .align 2, 0 +_0806FFD4: .4byte gUnk_020000C0 + + thumb_func_start sub_0806FFD8 +sub_0806FFD8: @ 0x0806FFD8 + push {r4, r5, lr} + adds r5, r1, #0 + adds r0, #0x28 + ldrb r4, [r0] + lsls r4, r4, #6 + ldr r0, _08070008 @ =gUnk_020000C0 + adds r4, r4, r0 + lsls r5, r5, #4 + adds r5, r4, r5 + lsls r2, r2, #4 + adds r4, r4, r2 + ldrh r0, [r5, #2] + ldrb r1, [r5, #1] + bl sub_080700C8 + ldrb r1, [r5, #6] + ldrb r2, [r0, #2] + adds r1, r1, r2 + strb r1, [r4, #6] + ldrb r1, [r5, #7] + ldrb r0, [r0, #3] + adds r1, r1, r0 + strb r1, [r4, #7] + pop {r4, r5, pc} + .align 2, 0 +_08070008: .4byte gUnk_020000C0 + + thumb_func_start sub_0807000C +sub_0807000C: @ 0x0807000C + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r7, r6, #0 + adds r7, #0x28 + ldrb r4, [r7] + lsls r4, r4, #6 + ldr r0, _08070074 @ =gUnk_020000C0 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0 + bl sub_0807007C + adds r5, r0, #0 + adds r0, r4, #0 + movs r1, #1 + bl sub_0807007C + orrs r5, r0 + adds r0, r4, #0 + movs r1, #2 + bl sub_0807007C + orrs r5, r0 + adds r0, r4, #0 + movs r1, #3 + bl sub_0807007C + orrs r5, r0 + cmp r5, #0 + beq _08070072 + ldr r3, _08070078 @ =gUnk_02024490 + adds r2, r6, #0 + adds r2, #0x26 + ldrb r1, [r2] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r7] + strb r1, [r0, #7] + ldrb r1, [r2] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r2, [r0, #4] + movs r1, #0xf + ands r1, r2 + movs r2, #0x30 + orrs r1, r2 + strb r1, [r0, #4] +_08070072: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08070074: .4byte gUnk_020000C0 +_08070078: .4byte gUnk_02024490 + + thumb_func_start sub_0807007C +sub_0807007C: @ 0x0807007C + push {lr} + lsls r1, r1, #4 + adds r2, r0, r1 + ldrb r1, [r2] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080700C4 + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080700C4 + ldrb r0, [r2, #1] + cmp r0, #0xff + beq _080700C4 + ldrh r0, [r2, #2] + lsls r0, r0, #4 + ldr r1, _080700C0 @ =gUnk_080029B4 + adds r3, r0, r1 + ldr r1, [r3, #4] + cmp r1, #0 + beq _080700C4 + ldrb r0, [r2, #1] + lsls r0, r0, #2 + adds r0, r1, r0 + ldrb r1, [r0] + strb r1, [r2, #9] + ldrh r1, [r0, #2] + lsls r1, r1, #5 + ldr r0, [r3, #8] + adds r0, r0, r1 + str r0, [r2, #0xc] + movs r0, #1 + b _080700C6 + .align 2, 0 +_080700C0: .4byte gUnk_080029B4 +_080700C4: + movs r0, #0 +_080700C6: + pop {pc} + + thumb_func_start sub_080700C8 +sub_080700C8: @ 0x080700C8 + lsls r0, r0, #1 + ldr r2, _080700E4 @ =gUnk_089FB780 + adds r0, r0, r2 + ldrh r0, [r0] + subs r2, #0x10 + adds r0, r0, r2 + adds r1, r0, r1 + ldrb r0, [r1] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r1, [r2] + adds r0, r1, r0 + bx lr + .align 2, 0 +_080700E4: .4byte gUnk_089FB780 + + thumb_func_start sub_080700E8 +sub_080700E8: @ 0x080700E8 + push {lr} + ldr r2, _080700FC @ =gUnk_0811B98C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080700FC: .4byte gUnk_0811B98C + + thumb_func_start sub_08070100 +sub_08070100: @ 0x08070100 + push {r4, r5, lr} + adds r5, r0, #0 + movs r2, #1 + movs r3, #1 + strb r3, [r5, #0xc] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + ldrb r1, [r5, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + ldrb r0, [r5, #0x14] + lsls r0, r0, #2 + strb r0, [r5, #0x15] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r5, #0x24] + movs r0, #0x40 + str r0, [r5, #0x74] + movs r0, #0xf0 + lsls r0, r0, #1 + str r0, [r5, #0x78] + ldr r2, _0807017C @ =gUnk_03001160 + ldr r1, _08070180 @ =gUnk_0811B9A0 + ldrb r0, [r5, #0x14] + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r4, [r2, #0x2e] + adds r0, r0, r4 + strh r0, [r5, #0x2e] + ldrb r0, [r5, #0x14] + adds r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r2, #0x32] + adds r0, r0, r1 + strh r0, [r5, #0x32] + adds r1, r5, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + subs r1, #1 + movs r0, #0x8a + strb r0, [r1] + ldr r0, _08070184 @ =gUnk_0811B9D0 + str r0, [r5, #0x48] + adds r0, r5, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #2 + bne _08070188 + strb r3, [r5, #0xa] + b _0807018C + .align 2, 0 +_0807017C: .4byte gUnk_03001160 +_08070180: .4byte gUnk_0811B9A0 +_08070184: .4byte gUnk_0811B9D0 +_08070188: + movs r0, #0 + strb r0, [r5, #0xa] +_0807018C: + ldrb r1, [r2, #0x1b] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r5, #0x1b] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x1b] + ldrb r3, [r5, #0x14] + lsrs r3, r3, #1 + lsls r3, r3, #3 + ldr r0, _080701F0 @ =gUnk_0811B9A8 + adds r3, r3, r0 + ldrb r1, [r3] + movs r0, #1 + ands r1, r0 + lsls r1, r1, #6 + ldrb r2, [r5, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x18] + ldrb r1, [r3, #1] + lsls r1, r1, #7 + movs r2, #0x7f + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x18] + ldrb r0, [r3, #4] + adds r4, r5, #0 + adds r4, #0x58 + strb r0, [r4] + movs r0, #2 + ldrsb r0, [r3, r0] + str r0, [r5, #0x6c] + movs r0, #3 + ldrsb r0, [r3, r0] + str r0, [r5, #0x70] + adds r0, r5, #0 + bl sub_0801766C + ldrb r1, [r4] + adds r0, r5, #0 + bl sub_08004260 + ldr r0, _080701F4 @ =0x000001DD + bl sub_080A3268 + pop {r4, r5, pc} + .align 2, 0 +_080701F0: .4byte gUnk_0811B9A8 +_080701F4: .4byte 0x000001DD + + thumb_func_start sub_080701F8 +sub_080701F8: @ 0x080701F8 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldr r0, _08070244 @ =gUnk_0811B9C8 + ldrb r1, [r5, #0x14] + adds r2, r1, r0 + movs r6, #0 + ldrsb r6, [r2, r6] + adds r1, #1 + adds r1, r1, r0 + movs r7, #0 + ldrsb r7, [r1, r7] + adds r0, r5, #0 + movs r1, #0xa + adds r2, r6, #0 + adds r3, r7, #0 + bl sub_08008782 + adds r4, r0, #0 + cmp r4, #0 + beq _08070248 + ldrb r1, [r4, #5] + ldrb r2, [r4, #2] + movs r0, #0x53 + bl sub_080A2960 + adds r1, r0, #0 + cmp r1, #0 + beq _08070260 + ldrb r0, [r4, #3] + strb r0, [r1, #0xe] + ldrh r0, [r5, #0x2e] + adds r0, r0, r6 + strh r0, [r1, #0x2e] + ldrh r0, [r5, #0x32] + adds r0, r0, r7 + strh r0, [r1, #0x32] + b _08070260 + .align 2, 0 +_08070244: .4byte gUnk_0811B9C8 +_08070248: + ldr r0, [r5, #0x74] + subs r0, #1 + str r0, [r5, #0x74] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _08070260 + ldr r0, [r5, #0x78] + subs r0, #1 + str r0, [r5, #0x78] + cmp r0, r1 + bne _08070268 +_08070260: + adds r0, r5, #0 + bl sub_08070458 + b _0807037A +_08070268: + adds r0, r5, #0 + bl sub_08004274 + adds r0, r5, #0 + bl sub_0806F69C + ldrb r0, [r5, #0xa] + cmp r0, #0 + bne _08070280 + adds r0, r5, #0 + bl sub_0800451C +_08070280: + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r7, _08070354 @ =gUnk_03000BF0 + ldrh r1, [r7, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r6, #0x3f + ands r0, r6 + movs r2, #0x32 + ldrsh r1, [r5, r2] + ldrh r2, [r7, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r6 + lsls r1, r1, #6 + orrs r0, r1 + ldr r1, _08070358 @ =gUnk_03001160 + adds r1, #0x38 + ldrb r1, [r1] + movs r2, #0x80 + bl sub_080002F0 + cmp r0, #0 + bne _0807036A + ldr r1, _0807035C @ =gUnk_08003E44 + movs r3, #0x2e + ldrsh r2, [r5, r3] + movs r0, #0x32 + ldrsh r3, [r5, r0] + adds r0, r5, #0 + bl sub_080040D8 + cmp r0, #0 + bne _08070364 + adds r0, r5, #0 + bl sub_080002B8 + cmp r0, #0x19 + bne _0807036A + movs r0, #4 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + ldrh r2, [r5, #0x2e] + movs r1, #0x10 + rsbs r1, r1, #0 + adds r0, r1, #0 + ands r0, r2 + movs r2, #8 + orrs r0, r2 + strh r0, [r5, #0x2e] + ldrh r0, [r5, #0x32] + ands r1, r0 + orrs r1, r2 + strh r1, [r5, #0x32] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldrh r1, [r7, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r6 + movs r2, #0x32 + ldrsh r1, [r5, r2] + ldrh r2, [r7, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r6 + lsls r1, r1, #6 + orrs r0, r1 + adds r4, r5, #0 + adds r4, #0x38 + ldrb r1, [r4] + bl sub_080001DA + str r0, [r5, #0x7c] + adds r0, r5, #0 + movs r1, #0x14 + bl sub_08004260 + ldr r0, _08070360 @ =0x00004020 + movs r3, #0x2e + ldrsh r1, [r5, r3] + ldrh r2, [r7, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r6 + movs r3, #0x32 + ldrsh r2, [r5, r3] + ldrh r3, [r7, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r6 + lsls r2, r2, #6 + orrs r1, r2 + ldrb r2, [r4] + bl sub_0800015E + b _0807037A + .align 2, 0 +_08070354: .4byte gUnk_03000BF0 +_08070358: .4byte gUnk_03001160 +_0807035C: .4byte gUnk_08003E44 +_08070360: .4byte 0x00004020 +_08070364: + adds r0, r5, #0 + bl sub_08070458 +_0807036A: + adds r0, r5, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0 + beq _0807037A + adds r0, r5, #0 + bl sub_08070458 +_0807037A: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0807037C +sub_0807037C: @ 0x0807037C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08070394 + bl sub_0805E780 +_08070394: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08070398 +sub_08070398: @ 0x08070398 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0806F69C + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _080703B8 + bl sub_0805E780 +_080703B8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080703BC +sub_080703BC: @ 0x080703BC + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08004274 + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _08070404 @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r5, #0x32 + ldrsh r1, [r4, r5] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080001DA + adds r1, r0, #0 + ldr r0, _08070408 @ =0x00004021 + cmp r1, r0 + beq _0807042E + cmp r1, r0 + bhi _0807040C + subs r0, #1 + cmp r1, r0 + beq _08070420 + b _08070412 + .align 2, 0 +_08070404: .4byte gUnk_03000BF0 +_08070408: .4byte 0x00004021 +_0807040C: + ldr r0, _08070418 @ =0x00004070 + cmp r1, r0 + beq _0807041C +_08070412: + movs r0, #0 + str r0, [r4, #0x7c] + b _0807042E + .align 2, 0 +_08070418: .4byte 0x00004070 +_0807041C: + movs r0, #0xff + str r0, [r4, #0x78] +_08070420: + ldr r0, [r4, #0x78] + subs r0, #1 + str r0, [r4, #0x78] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _08070436 +_0807042E: + adds r0, r4, #0 + bl sub_08070458 + b _08070454 +_08070436: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + cmp r1, #0 + beq _08070454 + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0807044E + ldrb r0, [r4, #0xc] + cmp r0, #0x1a + bne _08070454 +_0807044E: + adds r0, r4, #0 + bl sub_08070458 +_08070454: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08070458 +sub_08070458: @ 0x08070458 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r2, #0 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + strh r2, [r4, #0x24] + ldr r5, [r4, #0x7c] + cmp r5, #0 + beq _0807049E + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _080704B4 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r6, #0x32 + ldrsh r0, [r4, r6] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r4, #0 + adds r0, #0x38 + ldrb r2, [r0] + adds r0, r5, #0 + bl sub_0800015E +_0807049E: + adds r0, r4, #0 + movs r1, #0x13 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08017744 + ldr r0, _080704B8 @ =0x00000199 + bl sub_080A3268 + pop {r4, r5, r6, pc} + .align 2, 0 +_080704B4: .4byte gUnk_03000BF0 +_080704B8: .4byte 0x00000199 + + thumb_func_start sub_080704BC +sub_080704BC: @ 0x080704BC + push {lr} + ldr r2, _080704D0 @ =gUnk_0811B9D8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080704D0: .4byte gUnk_0811B9D8 + + thumb_func_start sub_080704D4 +sub_080704D4: @ 0x080704D4 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xff + strb r0, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + movs r2, #3 + bl sub_080AE008 + movs r0, #0x87 + lsls r0, r0, #1 + bl sub_080A3268 + adds r0, r4, #0 + bl sub_080704FC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080704FC +sub_080704FC: @ 0x080704FC + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _0807052C @ =gUnk_03001160 + adds r0, r5, #0 + adds r0, #0x5a + ldrb r2, [r0] + movs r0, #0x80 + ands r0, r2 + ldr r1, _08070530 @ =gUnk_03003F80 + cmp r0, #0 + bne _08070518 + ldr r0, [r1, #0x2c] + cmp r4, r0 + beq _08070534 +_08070518: + ldr r0, [r1, #0x2c] + cmp r4, r0 + bne _08070522 + movs r0, #0 + str r0, [r1, #0x2c] +_08070522: + adds r0, r4, #0 + bl sub_0805E7BC + b _08070566 + .align 2, 0 +_0807052C: .4byte gUnk_03001160 +_08070530: .4byte gUnk_03003F80 +_08070534: + movs r0, #0xf + ands r0, r2 + cmp r0, #0xf + beq _08070562 + ldrb r1, [r5, #0x1e] + adds r0, #0x91 + subs r0, r1, r0 + ldrb r2, [r4, #0x1e] + cmp r0, r2 + beq _08070558 + adds r0, r1, #0 + adds r0, #0x6f + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x1e] + ldrh r2, [r4, #0x12] + adds r0, r4, #0 + bl sub_080042D0 +_08070558: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08078E84 + b _08070566 +_08070562: + movs r0, #0xff + strb r0, [r4, #0x1e] +_08070566: + ldr r2, _08070580 @ =gUnk_03001160 + ldrb r1, [r2, #0x14] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08070584 + ldrb r0, [r2, #0x18] + lsls r0, r0, #0x19 + lsrs r2, r0, #0x1f + movs r0, #1 + eors r2, r0 + b _0807058A + .align 2, 0 +_08070580: .4byte gUnk_03001160 +_08070584: + ldrb r0, [r2, #0x18] + lsls r0, r0, #0x19 + lsrs r2, r0, #0x1f +_0807058A: + lsls r2, r2, #6 + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0807059C +sub_0807059C: @ 0x0807059C + push {lr} + ldr r0, _080705A8 @ =gUnk_02034490 + movs r1, #0x18 + bl sub_0801D630 + pop {pc} + .align 2, 0 +_080705A8: .4byte gUnk_02034490 + + thumb_func_start sub_080705AC +sub_080705AC: @ 0x080705AC + push {lr} + ldr r0, _08070614 @ =gUnk_03000FF0 + ldrh r1, [r0, #2] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _08070674 + ldr r0, _08070618 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08070674 + ldr r0, _0807061C @ =gUnk_02034490 + ldrb r0, [r0] + cmp r0, #0 + bne _08070674 + ldr r0, _08070620 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08070674 + ldr r1, _08070624 @ =gUnk_02002A40 + adds r0, r1, #0 + adds r0, #0xaa + ldrb r0, [r0] + cmp r0, #0 + beq _08070674 + adds r0, r1, #0 + adds r0, #0xf2 + ldrb r0, [r0] + cmp r0, #0 + beq _08070674 + ldr r1, _08070628 @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0x8b + ldrb r0, [r0] + cmp r0, #0 + bne _08070674 + ldr r0, _0807062C @ =gUnk_03003DC0 + ldrh r0, [r0, #8] + cmp r0, #0 + bne _08070674 + adds r2, r1, #0 + adds r2, #0xa8 + ldrb r0, [r2] + cmp r0, #0 + bne _08070630 + adds r0, r1, #0 + adds r0, #0xa9 + ldrb r0, [r0] + b _08070632 + .align 2, 0 +_08070614: .4byte gUnk_03000FF0 +_08070618: .4byte gUnk_03000FD0 +_0807061C: .4byte gUnk_02034490 +_08070620: .4byte gUnk_02000050 +_08070624: .4byte gUnk_02002A40 +_08070628: .4byte gUnk_03003F80 +_0807062C: .4byte gUnk_03003DC0 +_08070630: + ldrb r0, [r2] +_08070632: + subs r0, #0x12 + cmp r0, #0xa + bhi _08070678 + lsls r0, r0, #2 + ldr r1, _08070644 @ =_08070648 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08070644: .4byte _08070648 +_08070648: @ jump table + .4byte _08070674 @ case 0 + .4byte _08070674 @ case 1 + .4byte _08070678 @ case 2 + .4byte _08070674 @ case 3 + .4byte _08070674 @ case 4 + .4byte _08070678 @ case 5 + .4byte _08070678 @ case 6 + .4byte _08070678 @ case 7 + .4byte _08070678 @ case 8 + .4byte _08070678 @ case 9 + .4byte _08070674 @ case 10 +_08070674: + movs r0, #0 + b _0807067E +_08070678: + bl sub_080A4D88 + movs r0, #1 +_0807067E: + pop {pc} + + thumb_func_start sub_08070680 +sub_08070680: @ 0x08070680 + push {lr} + ldr r2, _08070694 @ =gUnk_0811B9E0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08070694: .4byte gUnk_0811B9E0 + + thumb_func_start sub_08070698 +sub_08070698: @ 0x08070698 + push {r4, r5, r6, lr} + sub sp, #4 + adds r4, r0, #0 + ldr r6, _08070788 @ =gUnk_03003F80 + movs r0, #0xff + strb r0, [r6] + ldr r1, _0807078C @ =gUnk_03001160 + ldrh r0, [r1, #0x2e] + strh r0, [r6, #0x16] + ldrh r0, [r1, #0x32] + strh r0, [r6, #0x18] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + movs r1, #0x39 + rsbs r1, r1, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0x18] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #0x20 + strb r0, [r4, #0x16] + adds r1, r4, #0 + adds r1, #0x3b + movs r0, #8 + strb r0, [r1] + adds r1, #4 + movs r0, #0x79 + strb r0, [r1] + ldr r0, _08070790 @ =gUnk_08114F88 + str r0, [r4, #0x48] + movs r0, #1 + strh r0, [r4, #0x12] + adds r0, #0xff + strh r0, [r6, #8] + adds r0, r4, #0 + bl sub_0806FDA0 + adds r0, r4, #0 + movs r1, #1 + movs r2, #2 + bl sub_080AE008 + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC + adds r0, r4, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #0 + bne _08070726 + adds r0, r4, #0 + bl sub_08016A30 +_08070726: + movs r0, #0x10 + bl sub_0805436C + cmp r0, #2 + beq _08070734 + bl sub_08077728 +_08070734: + bl sub_0807A108 + bl sub_0807AEE4 + bl sub_08078EFC + adds r5, r0, #0 + cmp r5, #0 + bne _08070784 + bl sub_0807921C + bl sub_0807A1B8 + adds r1, r6, #0 + adds r1, #0x26 + ldrb r0, [r1] + cmp r0, #0 + beq _08070784 + movs r0, #1 + strb r0, [r1] + bl sub_08079938 + adds r1, r6, #0 + adds r1, #0xa8 + movs r0, #7 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0807ACCC + str r5, [sp] + movs r0, #6 + movs r1, #0xf + movs r2, #6 + movs r3, #0xb + bl sub_0805EB2C + cmp r0, #0 + beq _08070784 + bl sub_0805E7BC +_08070784: + add sp, #4 + pop {r4, r5, r6, pc} + .align 2, 0 +_08070788: .4byte gUnk_03003F80 +_0807078C: .4byte gUnk_03001160 +_08070790: .4byte gUnk_08114F88 + + thumb_func_start sub_08070794 +sub_08070794: @ 0x08070794 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldr r6, _080707F0 @ =gUnk_03003F80 + adds r3, r6, #0 + adds r3, #0xa8 + movs r4, #0 + strb r4, [r3] + ldr r1, [r6, #0x30] + movs r7, #0x10 + adds r0, r1, #0 + ands r0, r7 + mov ip, r6 + cmp r0, #0 + beq _08070818 + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + adds r0, r5, #0 + adds r0, #0x42 + strb r4, [r0] + movs r0, #0xa0 + lsls r0, r0, #1 + strh r0, [r5, #0x24] + movs r0, #0x80 + strb r0, [r6, #6] + strb r7, [r3] + ldrb r0, [r5, #0x14] + lsrs r0, r0, #1 + adds r0, #0x5c + adds r1, r5, #0 + adds r1, #0x58 + ldrb r1, [r1] + cmp r0, r1 + bne _080707F8 + ldrh r0, [r5, #0x12] + cmp r0, #2 + bne _080707F8 + ldr r0, _080707F4 @ =gUnk_03001160 + bl sub_080042B8 + b _08070800 + .align 2, 0 +_080707F0: .4byte gUnk_03003F80 +_080707F4: .4byte gUnk_03001160 +_080707F8: + movs r0, #0x97 + lsls r0, r0, #2 + mov r1, ip + strh r0, [r1, #8] +_08070800: + ldr r0, _08070814 @ =gUnk_03001160 + bl sub_0806F948 + bl sub_08077B2C + adds r0, r5, #0 + bl sub_08077698 + b _08070BE4 + .align 2, 0 +_08070814: .4byte gUnk_03001160 +_08070818: + movs r0, #0x80 + lsls r0, r0, #5 + ands r0, r1 + cmp r0, #0 + beq _08070842 + adds r1, r5, #0 + adds r1, #0x40 + movs r0, #0x1e + strb r0, [r1] + movs r0, #0xc + strb r0, [r3] + movs r1, #0 + movs r2, #0x24 + ldrsh r0, [r5, r2] + cmp r0, #0 + bne _0807083A + movs r1, #1 +_0807083A: + adds r0, r5, #0 + bl sub_08070BEC + b _08070BE4 +_08070842: + movs r4, #0x80 + lsls r4, r4, #0xc + ands r4, r1 + cmp r4, #0 + beq _08070852 + bl sub_08079938 + b _08070BE4 +_08070852: + adds r0, r5, #0 + bl sub_080085B0 + adds r0, r5, #0 + adds r0, #0x40 + strb r4, [r0] + bl sub_08078EFC + cmp r0, #0 + beq _08070868 + b _08070BE4 +_08070868: + adds r0, r6, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + bne _080708AC + ldrb r1, [r6, #2] + movs r2, #0xc0 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _080708AC + ldrb r0, [r6, #3] + cmp r0, #0 + bne _0807088E + adds r0, r6, #0 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #0 + beq _08070892 +_0807088E: + strh r2, [r5, #0x24] + b _080708AC +_08070892: + ldrb r0, [r6, #0x1b] + cmp r0, #0 + beq _0807089C + movs r0, #0xe0 + b _080708AA +_0807089C: + ldrb r0, [r6, #0x1c] + cmp r0, #0 + beq _080708A6 + movs r0, #0x80 + b _080708AA +_080708A6: + movs r0, #0xa0 + lsls r0, r0, #1 +_080708AA: + strh r0, [r5, #0x24] +_080708AC: + ldr r4, _08070918 @ =gUnk_03003F80 + ldrb r0, [r4, #6] + movs r1, #0x80 + orrs r1, r0 + strb r1, [r4, #6] + ldr r0, [r4, #0x30] + ldr r6, _0807091C @ =0x10000002 + ands r0, r6 + cmp r0, #0 + bne _080708C4 + bl sub_0807A1B8 +_080708C4: + bl sub_08078EFC + cmp r0, #0 + beq _080708CE + b _08070BE4 +_080708CE: + ldrb r0, [r4, #2] + cmp r0, #0 + beq _080708D6 + b _080709D8 +_080708D6: + ldr r0, [r4, #0x30] + movs r1, #0x80 + lsls r1, r1, #3 + ands r0, r1 + cmp r0, #0 + beq _080708E4 + b _080709D8 +_080708E4: + adds r0, r5, #0 + adds r0, #0x42 + ldrb r0, [r0] + cmp r0, #0 + bne _08070924 + bl sub_080782C0 + cmp r0, #0 + beq _08070924 + ldr r0, _08070920 @ =gUnk_02034350 + ldrb r0, [r0, #6] + cmp r0, #0 + bne _08070902 + bl sub_08077B2C +_08070902: + ldr r0, [r4, #0x30] + ands r0, r6 + cmp r0, #0 + beq _0807090C + b _08070BE4 +_0807090C: + bl sub_0807A1B8 + bl sub_08078EFC + b _08070BE4 + .align 2, 0 +_08070918: .4byte gUnk_03003F80 +_0807091C: .4byte 0x10000002 +_08070920: .4byte gUnk_02034350 +_08070924: + ldr r0, _0807094C @ =gUnk_03003F80 + ldr r1, [r0, #0x30] + ldr r2, _08070950 @ =0x00041635 + ands r1, r2 + adds r0, #0xaa + ldrb r0, [r0] + orrs r1, r0 + cmp r1, #0 + bne _080709D8 + bl sub_08019840 + cmp r0, #0xf + bls _08070940 + b _08070BE4 +_08070940: + lsls r0, r0, #2 + ldr r1, _08070954 @ =_08070958 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0807094C: .4byte gUnk_03003F80 +_08070950: .4byte 0x00041635 +_08070954: .4byte _08070958 +_08070958: @ jump table + .4byte _08070998 @ case 0 + .4byte _08070BE4 @ case 1 + .4byte _08070BE4 @ case 2 + .4byte _080709A8 @ case 3 + .4byte _080709C2 @ case 4 + .4byte _08070BE4 @ case 5 + .4byte _08070BE4 @ case 6 + .4byte _08070BE4 @ case 7 + .4byte _08070BE4 @ case 8 + .4byte _08070BE4 @ case 9 + .4byte _08070BE4 @ case 10 + .4byte _08070BE4 @ case 11 + .4byte _08070BE4 @ case 12 + .4byte _08070BE4 @ case 13 + .4byte _08070BE4 @ case 14 + .4byte _080709B4 @ case 15 +_08070998: + ldr r0, _080709A4 @ =gUnk_03003F80 + ldrb r1, [r0, #6] + movs r2, #0x80 + eors r1, r2 + strb r1, [r0, #6] + b _080709D8 + .align 2, 0 +_080709A4: .4byte gUnk_03003F80 +_080709A8: + ldr r1, _080709B0 @ =gUnk_03003F80 + movs r0, #0x80 + strb r0, [r1, #6] + b _080709D8 + .align 2, 0 +_080709B0: .4byte gUnk_03003F80 +_080709B4: + ldrb r1, [r5, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + bl sub_080797EC + b _08070BE4 +_080709C2: + ldr r0, _080709D4 @ =gUnk_03003F80 + ldrb r1, [r0, #6] + movs r2, #0x80 + eors r1, r2 + strb r1, [r0, #6] + bl sub_080797EC + b _08070BE4 + .align 2, 0 +_080709D4: .4byte gUnk_03003F80 +_080709D8: + adds r1, r5, #0 + adds r1, #0x3c + movs r0, #0 + strb r0, [r1] + adds r6, r5, #0 + adds r6, #0x29 + ldrb r1, [r6] + subs r0, #8 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r6] + adds r0, r5, #0 + bl sub_0807AC54 + cmp r0, #0 + beq _080709FC + b _08070BE4 +_080709FC: + adds r0, r5, #0 + bl sub_08077698 + bl sub_08078EFC + cmp r0, #0 + beq _08070A0C + b _08070BE4 +_08070A0C: + bl sub_080792D8 + ldr r4, _08070A78 @ =gUnk_03003F80 + ldrb r1, [r4, #2] + ldrb r0, [r4, #0xa] + orrs r0, r1 + cmp r0, #0 + bne _08070A32 + bl sub_08079550 + cmp r0, #0 + beq _08070A26 + b _08070BE4 +_08070A26: + adds r0, r5, #0 + bl sub_08078F74 + cmp r0, #0 + beq _08070A32 + b _08070BE4 +_08070A32: + adds r0, r5, #0 + bl sub_08073904 + bl sub_08078EFC + cmp r0, #0 + beq _08070A42 + b _08070BE4 +_08070A42: + ldrb r2, [r4, #2] + cmp r2, #0 + beq _08070AAC + adds r1, r4, #0 + adds r1, #0xa8 + movs r0, #0x14 + strb r0, [r1] + movs r0, #0xc0 + ands r0, r2 + cmp r0, #0 + bne _08070A80 + movs r0, #7 + ands r0, r2 + cmp r0, #3 + beq _08070A7C + movs r0, #0x20 + ands r0, r2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _08070A7C + strh r0, [r5, #0x24] + adds r0, r5, #0 + bl sub_08008926 + b _08070A80 + .align 2, 0 +_08070A78: .4byte gUnk_03003F80 +_08070A7C: + movs r0, #0xff + strb r0, [r5, #0x15] +_08070A80: + bl sub_08079E08 + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08070A94 + b _08070BE4 +_08070A94: + ldr r0, _08070AA8 @ =gUnk_03003F80 + ldrb r0, [r0, #4] + cmp r0, #0 + beq _08070A9E + b _08070BE4 +_08070A9E: + adds r0, r5, #0 + bl sub_080042B8 + b _08070BE4 + .align 2, 0 +_08070AA8: .4byte gUnk_03003F80 +_08070AAC: + adds r0, r5, #0 + adds r0, #0x42 + ldrb r1, [r0] + adds r7, r0, #0 + cmp r1, #0 + beq _08070ABA + b _08070BBC +_08070ABA: + adds r0, r4, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + beq _08070AD4 + adds r1, r4, #0 + adds r1, #0xa8 + movs r0, #7 + strb r0, [r1] + adds r0, r5, #0 + bl sub_0807ACCC + b _08070B56 +_08070AD4: + ldr r0, [r4, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x12 + ands r0, r1 + cmp r0, #0 + bne _08070AEE + ldrb r0, [r6] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #8 + orrs r1, r0 + strb r1, [r6] +_08070AEE: + ldrb r1, [r4, #0x1e] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08070B00 + adds r0, r5, #0 + bl sub_08008AA0 + b _08070B1E +_08070B00: + ldrb r0, [r4, #0x12] + cmp r0, #0x17 + bne _08070B0E + adds r0, r5, #0 + bl sub_08008926 + b _08070B1E +_08070B0E: + cmp r0, #1 + bne _08070B18 + bl sub_08078F60 + b _08070B1E +_08070B18: + adds r0, r5, #0 + bl sub_08008AA0 +_08070B1E: + ldr r2, _08070BB8 @ =gUnk_03003F80 + ldrb r1, [r2, #0x1b] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + bne _08070B56 + ldrb r3, [r2, #0xd] + strb r3, [r5, #0x15] + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #3 + ands r0, r1 + cmp r0, #0 + beq _08070B56 + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r5, #0x24] + movs r0, #0x80 + ands r0, r3 + cmp r0, #0 + beq _08070B52 + ldrb r1, [r5, #0x14] + movs r0, #0xe + ands r0, r1 + lsls r0, r0, #2 + strb r0, [r5, #0x15] +_08070B52: + bl sub_0807A108 +_08070B56: + movs r4, #0 + ldr r3, _08070BB8 @ =gUnk_03003F80 + ldrb r2, [r3, #7] + ldrb r0, [r5, #0x15] + orrs r0, r2 + movs r1, #0x80 + ands r0, r1 + ldrb r1, [r3, #0xa] + orrs r0, r1 + cmp r0, #0 + bne _08070B8E + movs r0, #0x10 + ands r0, r2 + cmp r0, #0 + bne _08070B8E + movs r4, #1 + ldrb r0, [r7] + cmp r0, #0 + bne _08070B8E + ldrb r1, [r3, #0x1e] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _08070B8C + ldrb r0, [r3, #0x12] + cmp r0, #0x17 + beq _08070B8E +_08070B8C: + movs r4, #3 +_08070B8E: + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08070BEC + adds r0, r5, #0 + bl sub_08008AC6 + ldrb r0, [r7] + cmp r0, #0 + bne _08070BE4 + ldr r1, _08070BB8 @ =gUnk_03003F80 + ldrb r0, [r1, #0xb] + cmp r0, #0 + bne _08070BE4 + ldrb r0, [r1, #0x12] + cmp r0, #0x1e + beq _08070BE4 + adds r0, r5, #0 + bl sub_0806F948 + b _08070BE4 + .align 2, 0 +_08070BB8: .4byte gUnk_03003F80 +_08070BBC: + ldr r0, [r4, #0x2c] + cmp r0, #0 + bne _08070BC8 + adds r0, r5, #0 + bl sub_080042B8 +_08070BC8: + adds r0, r4, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + beq _08070BE4 + ldr r0, _08070BE8 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _08070BE4 + adds r0, r5, #0 + bl sub_080A2A64 +_08070BE4: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08070BE8: .4byte gUnk_030010A0 + + thumb_func_start sub_08070BEC +sub_08070BEC: @ 0x08070BEC + push {r4, lr} + adds r4, r1, #0 + movs r0, #1 + ands r0, r4 + cmp r0, #0 + beq _08070BFE + bl sub_080797EC + b _08070C02 +_08070BFE: + bl sub_08079938 +_08070C02: + movs r0, #2 + ands r0, r4 + cmp r0, #0 + beq _08070C0E + bl sub_08079E08 +_08070C0E: + pop {r4, pc} + + thumb_func_start sub_08070C10 +sub_08070C10: @ 0x08070C10 + push {lr} + ldr r2, _08070C34 @ =gUnk_03003F80 + movs r1, #0xff + strb r1, [r2, #0xd] + movs r1, #0x80 + strb r1, [r2, #6] + adds r2, #0xa8 + movs r1, #0xa + strb r1, [r2] + ldr r2, _08070C38 @ =gUnk_0811BA60 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08070C34: .4byte gUnk_03003F80 +_08070C38: .4byte gUnk_0811BA60 + + thumb_func_start sub_08070C3C +sub_08070C3C: @ 0x08070C3C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004168 + ldr r2, _08070C64 @ =gUnk_03003F80 + ldr r1, [r2, #0x30] + movs r0, #5 + orrs r1, r0 + ldr r0, _08070C68 @ =0xFFFFFBFF + ands r1, r0 + str r1, [r2, #0x30] + movs r0, #0 + strb r0, [r2, #2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08070C6C + movs r0, #0xdd + lsls r0, r0, #1 + b _08070C7E + .align 2, 0 +_08070C64: .4byte gUnk_03003F80 +_08070C68: .4byte 0xFFFFFBFF +_08070C6C: + movs r0, #8 + ands r1, r0 + cmp r1, #0 + beq _08070C7A + movs r0, #0x8b + lsls r0, r0, #3 + b _08070C7E +_08070C7A: + movs r0, #0xdc + lsls r0, r0, #1 +_08070C7E: + strh r0, [r2, #8] + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + bl sub_08077B2C + bl sub_0807A108 + movs r0, #0x7b + bl sub_080A3268 + movs r0, #0x85 + bl sub_080A3268 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08070CB4 +sub_08070CB4: @ 0x08070CB4 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080042B8 + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08070D1A + ldr r0, _08070CF4 @ =gUnk_02002A40 + adds r0, #0xaa + ldrb r0, [r0] + ldr r4, _08070CF8 @ =gUnk_03003F80 + cmp r0, #0 + beq _08070CFC + ldr r1, [r4, #0x30] + movs r0, #0x80 + lsls r0, r0, #8 + ands r0, r1 + cmp r0, #0 + beq _08070CFC + movs r0, #6 + rsbs r0, r0, #0 + ands r1, r0 + str r1, [r4, #0x30] + ldrb r1, [r5, #0x18] + adds r0, #2 + ands r0, r1 + strb r0, [r5, #0x18] + b _08070D1A + .align 2, 0 +_08070CF4: .4byte gUnk_02002A40 +_08070CF8: .4byte gUnk_03003F80 +_08070CFC: + ldr r0, [r4, #0x30] + ldr r1, _08070D1C @ =0xFFFF7FFB + ands r0, r1 + str r0, [r4, #0x30] + bl sub_08079458 + movs r0, #0 + strb r0, [r4, #0xa] + adds r1, r5, #0 + adds r1, #0x3d + movs r0, #0x20 + strb r0, [r1] + subs r0, #0x22 + bl sub_080526A0 +_08070D1A: + pop {r4, r5, pc} + .align 2, 0 +_08070D1C: .4byte 0xFFFF7FFB + + thumb_func_start sub_08070D20 +sub_08070D20: @ 0x08070D20 + push {lr} + ldr r2, _08070D34 @ =gUnk_0811BA68 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08070D34: .4byte gUnk_0811BA68 + + thumb_func_start sub_08070D38 +sub_08070D38: @ 0x08070D38 + push {r4, lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] + ldrb r1, [r2, #0x14] + movs r0, #0xe + ands r0, r1 + lsls r0, r0, #2 + movs r1, #0x10 + eors r0, r1 + strb r0, [r2, #0x15] + movs r4, #0 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r2, #0x24] + adds r0, r2, #0 + adds r0, #0x42 + strb r4, [r0] + ldrb r0, [r2, #0xd] + adds r0, #1 + strb r0, [r2, #0xd] + ldr r3, _08070D94 @ =gUnk_03003F80 + adds r0, r3, #0 + adds r0, #0x38 + ldrb r0, [r0] + strb r0, [r2, #0xe] + movs r0, #1 + strh r0, [r2, #0x12] + ldr r0, [r3, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08070D98 + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r2, #0x20] + movs r0, #0x8a + lsls r0, r0, #1 + strh r0, [r3, #8] + movs r0, #0x10 + movs r1, #0 + bl sub_08080964 + b _08070DA2 + .align 2, 0 +_08070D94: .4byte gUnk_03003F80 +_08070D98: + ldr r0, _08070DBC @ =0x00000C18 + strh r0, [r3, #8] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r2, #0x20] +_08070DA2: + ldr r0, _08070DC0 @ =gUnk_03003F80 + movs r1, #0x80 + strb r1, [r0, #2] + movs r0, #0xa6 + lsls r0, r0, #1 + bl sub_080A3268 + bl sub_08077B2C + bl sub_08078F60 + pop {r4, pc} + .align 2, 0 +_08070DBC: .4byte 0x00000C18 +_08070DC0: .4byte gUnk_03003F80 + + thumb_func_start sub_08070DC4 +sub_08070DC4: @ 0x08070DC4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_080085B0 + bl sub_08079E08 + bl sub_0807A1B8 + bl sub_08078EFC + cmp r0, #0 + bne _08070E76 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08070E76 + ldr r6, _08070E18 @ =gUnk_03003F80 + strb r0, [r6, #2] + bl sub_08078EFC + adds r5, r0, #0 + cmp r5, #0 + bne _08070E76 + bl sub_08079D48 + cmp r0, #0 + bne _08070E10 + adds r0, r6, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + beq _08070E1C +_08070E10: + strb r5, [r6, #2] + bl sub_080791D0 + b _08070E76 + .align 2, 0 +_08070E18: .4byte gUnk_03003F80 +_08070E1C: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _08070E32 + movs r0, #0x80 + lsls r0, r0, #9 + str r0, [r4, #0x20] + b _08070E76 +_08070E32: + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldrb r0, [r6, #0x14] + cmp r0, #0 + bne _08070E56 + bl sub_08008B22 + cmp r0, #0 + beq _08070E56 + movs r0, #7 + strb r0, [r6, #0x11] + bl sub_08079938 + bl sub_080791BC + b _08070E76 +_08070E56: + movs r0, #1 + strh r0, [r4, #0x12] + movs r0, #8 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + ldr r2, _08070E78 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08070E76 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r2, #8] +_08070E76: + pop {r4, r5, r6, pc} + .align 2, 0 +_08070E78: .4byte gUnk_03003F80 + + thumb_func_start sub_08070E7C +sub_08070E7C: @ 0x08070E7C + push {lr} + ldrb r1, [r0, #0xe] + subs r1, #1 + strb r1, [r0, #0xe] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #0 + bne _08070E94 + ldr r0, _08070E98 @ =gUnk_03003F80 + strb r1, [r0, #2] + bl sub_080791D0 +_08070E94: + pop {pc} + .align 2, 0 +_08070E98: .4byte gUnk_03003F80 + + thumb_func_start sub_08070E9C +sub_08070E9C: @ 0x08070E9C + push {r4, lr} + adds r4, r0, #0 + bl sub_08078EFC + cmp r0, #0 + beq _08070EAE + bl sub_08056360 + b _08070ED2 +_08070EAE: + ldr r1, _08070ED4 @ =gUnk_03003F80 + adds r2, r1, #0 + adds r2, #0x27 + movs r0, #4 + strb r0, [r2] + adds r1, #0xa8 + movs r0, #0x13 + strb r0, [r1] + bl sub_0807A1B8 + ldr r1, _08070ED8 @ =gUnk_0811BA74 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 +_08070ED2: + pop {r4, pc} + .align 2, 0 +_08070ED4: .4byte gUnk_03003F80 +_08070ED8: .4byte gUnk_0811BA74 + + thumb_func_start sub_08070EDC +sub_08070EDC: @ 0x08070EDC + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r2, #0x11] + ldr r0, _08070F10 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + beq _08070EFE + movs r0, #1 + strb r0, [r2, #0xd] +_08070EFE: + ldr r2, _08070F14 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08070F18 + bl sub_08079938 + b _08070F1C + .align 2, 0 +_08070F10: .4byte gUnk_02000050 +_08070F14: .4byte gUnk_03003F80 +_08070F18: + ldr r0, _08070F20 @ =0x00000C18 + strh r0, [r2, #8] +_08070F1C: + pop {pc} + .align 2, 0 +_08070F20: .4byte 0x00000C18 + + thumb_func_start sub_08070F24 +sub_08070F24: @ 0x08070F24 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldr r0, _08070F4C @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08070F4A + ldrb r0, [r4, #0x11] + lsrs r2, r0, #4 + movs r1, #0x10 + rsbs r1, r1, #0 + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x11] + bl sub_080791D0 +_08070F4A: + pop {r4, pc} + .align 2, 0 +_08070F4C: .4byte gUnk_02000050 + + thumb_func_start sub_08070F50 +sub_08070F50: @ 0x08070F50 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _08070F9C @ =gUnk_03003F80 + adds r0, #0xa8 + movs r1, #0x15 + strb r1, [r0] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldr r1, _08070FA0 @ =gUnk_0811BA7C + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldr r5, [r4, #0x54] + cmp r5, #0 + beq _08070F9A + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FA30 + ldrh r0, [r4, #0x12] + ldrb r1, [r4, #0x1e] + bl sub_080700C8 + ldrb r1, [r0] + adds r2, r5, #0 + adds r2, #0x62 + strb r1, [r2] + ldrb r1, [r0, #1] + adds r0, r5, #0 + adds r0, #0x63 + strb r1, [r0] +_08070F9A: + pop {r4, r5, pc} + .align 2, 0 +_08070F9C: .4byte gUnk_03003F80 +_08070FA0: .4byte gUnk_0811BA7C + + thumb_func_start sub_08070FA4 +sub_08070FA4: @ 0x08070FA4 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + movs r1, #0 + movs r0, #4 + strb r0, [r4, #0x14] + ldr r3, _08070FE8 @ =gUnk_03003F80 + ldr r2, [r3, #0x30] + movs r0, #1 + orrs r2, r0 + str r2, [r3, #0x30] + strb r1, [r3, #2] + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + bne _08071008 + movs r0, #8 + ands r2, r0 + cmp r2, #0 + beq _08070FF0 + adds r0, r3, #0 + adds r0, #0x38 + ldrb r0, [r0] + bl sub_080542AC + ldr r1, _08070FEC @ =0x0000045B + cmp r0, #0 + beq _08071004 + adds r1, #3 + b _08071004 + .align 2, 0 +_08070FE8: .4byte gUnk_03003F80 +_08070FEC: .4byte 0x0000045B +_08070FF0: + adds r0, r3, #0 + adds r0, #0x38 + ldrb r0, [r0] + bl sub_080542AC + ldr r1, _08071018 @ =0x000001B9 + cmp r0, #0 + beq _08071004 + movs r1, #0xb8 + lsls r1, r1, #2 +_08071004: + ldr r0, _0807101C @ =gUnk_03003F80 + strh r1, [r0, #8] +_08071008: + movs r0, #1 + strb r0, [r4, #0xd] + bl sub_08077B2C + bl sub_08078F60 + pop {r4, pc} + .align 2, 0 +_08071018: .4byte 0x000001B9 +_0807101C: .4byte gUnk_03003F80 + + thumb_func_start sub_08071020 +sub_08071020: @ 0x08071020 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #0 + beq _08071036 + movs r0, #2 + strb r0, [r4, #0xd] +_08071036: + pop {r4, pc} + + thumb_func_start sub_08071038 +sub_08071038: @ 0x08071038 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + bl sub_08078EFC + cmp r0, #0 + bne _08071078 + ldr r0, _0807107C @ =gUnk_02000050 + ldrb r0, [r0] + movs r2, #0x7f + ands r2, r0 + cmp r2, #0 + bne _08071078 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08071078 + str r2, [r4, #0x54] + adds r0, r4, #0 + adds r0, #0x42 + strb r2, [r0] + subs r0, #5 + movs r1, #0xf8 + strb r1, [r0] + ldr r0, _08071080 @ =gUnk_03003F80 + strb r2, [r0, #2] + bl sub_080791D0 +_08071078: + pop {r4, pc} + .align 2, 0 +_0807107C: .4byte gUnk_02000050 +_08071080: .4byte gUnk_03003F80 + + thumb_func_start sub_08071084 +sub_08071084: @ 0x08071084 + push {lr} + ldr r1, _080710A0 @ =gUnk_03003F80 + adds r1, #0xa8 + movs r2, #0xb + strb r2, [r1] + ldr r2, _080710A4 @ =gUnk_0811BA88 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080710A0: .4byte gUnk_03003F80 +_080710A4: .4byte gUnk_0811BA88 + + thumb_func_start sub_080710A8 +sub_080710A8: @ 0x080710A8 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + adds r0, #1 + movs r2, #0 + strb r0, [r4, #0xd] + ldr r1, _080710EC @ =gUnk_03003F80 + ldr r3, [r1, #0x30] + movs r0, #1 + orrs r3, r0 + ldr r0, _080710F0 @ =0xFFFFF3FF + ands r3, r0 + str r3, [r1, #0x30] + strb r2, [r1, #0xc] + ldrb r2, [r1, #5] + ldrb r0, [r1, #0x1b] + orrs r0, r2 + adds r5, r1, #0 + cmp r0, #0 + bne _080710FA + movs r0, #0x80 + ands r3, r0 + cmp r3, #0 + bne _080710FA + bl sub_08077B2C + ldr r0, [r5, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _080710F4 + movs r0, #0x84 + lsls r0, r0, #3 + b _080710F8 + .align 2, 0 +_080710EC: .4byte gUnk_03003F80 +_080710F0: .4byte 0xFFFFF3FF +_080710F4: + movs r0, #0x81 + lsls r0, r0, #4 +_080710F8: + strh r0, [r5, #8] +_080710FA: + movs r0, #0 + strb r0, [r5, #0x1e] + ldrb r1, [r4, #0x14] + movs r0, #0xe + ands r0, r1 + lsls r0, r0, #2 + strb r0, [r4, #0x15] + movs r0, #1 + bl sub_08079FC4 + lsls r0, r0, #4 + subs r0, #4 + lsls r0, r0, #0xc + str r0, [r4, #0x20] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + bl sub_0807A108 + movs r0, #0x7c + bl sub_080A3268 + movs r0, #0x78 + bl sub_080A3268 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08071130 +sub_08071130: @ 0x08071130 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_08078EFC + cmp r0, #0 + bne _08071206 + ldr r6, _080711B4 @ =gUnk_03003F80 + ldrb r0, [r6, #0x1b] + cmp r0, #0 + bne _08071158 + adds r0, r5, #0 + bl sub_080042B8 + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08071206 +_08071158: + adds r0, r5, #0 + bl sub_0806F69C + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r5, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08071206 + strb r0, [r6, #2] + adds r0, r5, #0 + bl sub_0800455E + ldr r0, [r5, #0x74] + cmp r0, #0 + beq _0807117E + bl sub_0800455E +_0807117E: + adds r0, r5, #0 + movs r1, #7 + bl sub_08008790 + ldrb r0, [r6, #0x14] + cmp r0, #0 + bne _08071206 + bl sub_0807A1B8 + bl sub_08078EFC + adds r4, r0, #0 + cmp r4, #0 + bne _08071206 + bl sub_08079D48 + cmp r0, #0 + beq _080711AC + adds r0, r6, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + beq _080711B8 +_080711AC: + strb r4, [r6, #2] + bl sub_080791D0 + b _08071206 + .align 2, 0 +_080711B4: .4byte gUnk_03003F80 +_080711B8: + movs r0, #6 + strb r0, [r5, #0xe] + ldrb r1, [r6, #5] + ldrb r0, [r6, #0xb] + orrs r0, r1 + cmp r0, #0 + bne _080711EE + ldr r1, [r6, #0x30] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080711EE + movs r0, #8 + ands r1, r0 + cmp r1, #0 + beq _080711E0 + ldr r0, _080711DC @ =0x00000424 + b _080711E4 + .align 2, 0 +_080711DC: .4byte 0x00000424 +_080711E0: + movs r0, #0x82 + lsls r0, r0, #4 +_080711E4: + strh r0, [r6, #8] + adds r1, r5, #0 + adds r1, #0x58 + movs r0, #0xff + strb r0, [r1] +_080711EE: + ldrb r0, [r5, #0xd] + adds r0, #1 + movs r4, #0 + strb r0, [r5, #0xd] + bl sub_08078F60 + adds r0, r5, #0 + adds r0, #0x42 + strb r4, [r0] + movs r0, #0x7d + bl sub_080A3268 +_08071206: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08071208 +sub_08071208: @ 0x08071208 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _08071244 @ =gUnk_03003F80 + ldrb r1, [r2, #5] + ldrb r0, [r2, #0xb] + orrs r0, r1 + cmp r0, #0 + bne _08071228 + ldr r0, [r2, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08071228 + adds r0, r4, #0 + bl sub_080042B8 +_08071228: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08071240 + ldr r1, _08071244 @ =gUnk_03003F80 + movs r0, #0 + strb r0, [r1, #2] + bl sub_080791D0 +_08071240: + pop {r4, pc} + .align 2, 0 +_08071244: .4byte gUnk_03003F80 + + thumb_func_start sub_08071248 +sub_08071248: @ 0x08071248 + push {lr} + ldr r3, _08071274 @ =gUnk_03003F80 + adds r2, r3, #0 + adds r2, #0xa8 + movs r1, #0x16 + strb r1, [r2] + ldr r1, [r3, #0x30] + movs r2, #4 + orrs r1, r2 + str r1, [r3, #0x30] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + ldr r2, _08071278 @ =gUnk_0811BA94 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08071274: .4byte gUnk_03003F80 +_08071278: .4byte gUnk_0811BA94 + + thumb_func_start sub_0807127C +sub_0807127C: @ 0x0807127C + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xd] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0x3a + ands r0, r1 + strb r0, [r2] + ldr r5, _080712AC @ =gUnk_03003F80 + ldr r1, [r5, #0x30] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080712B4 + movs r0, #0x3c + strb r0, [r4, #0xe] + ldr r0, _080712B0 @ =0x00000C19 + strh r0, [r5, #8] + movs r0, #0x84 + bl sub_080A3268 + b _080712E4 + .align 2, 0 +_080712AC: .4byte gUnk_03003F80 +_080712B0: .4byte 0x00000C19 +_080712B4: + movs r0, #0x80 + lsls r0, r0, #9 + ands r1, r0 + cmp r1, #0 + bne _080712C4 + adds r0, r4, #0 + bl sub_08004168 +_080712C4: + adds r0, r4, #0 + movs r1, #0xb + movs r2, #0 + bl sub_080A29AC + ldr r0, [r5, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + bne _080712E0 + ldr r0, _080712DC @ =0x0000072C + b _080712E2 + .align 2, 0 +_080712DC: .4byte 0x0000072C +_080712E0: + ldr r0, _080712EC @ =0x0000044C +_080712E2: + strh r0, [r5, #8] +_080712E4: + bl sub_08077B2C + pop {r4, r5, pc} + .align 2, 0 +_080712EC: .4byte 0x0000044C + + thumb_func_start sub_080712F0 +sub_080712F0: @ 0x080712F0 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_080042B8 + movs r5, #0 + ldr r3, _08071314 @ =gUnk_03003F80 + ldr r0, [r3, #0x30] + movs r2, #0x80 + ands r0, r2 + cmp r0, #0 + beq _08071318 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0807133E + b _08071342 + .align 2, 0 +_08071314: .4byte gUnk_03003F80 +_08071318: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _0807133E + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0xce + beq _0807133C + ldr r0, _08071338 @ =0x000002CE + strh r0, [r3, #8] + b _0807133E + .align 2, 0 +_08071338: .4byte 0x000002CE +_0807133C: + movs r5, #1 +_0807133E: + cmp r5, #0 + beq _0807137A +_08071342: + adds r1, r4, #0 + adds r1, #0x42 + movs r0, #0 + strb r0, [r1] + subs r1, #5 + movs r0, #0x20 + strb r0, [r1] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0x59 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + ldr r2, _0807137C @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #5 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r2, #0x30] + bl sub_08079458 +_0807137A: + pop {r4, r5, pc} + .align 2, 0 +_0807137C: .4byte gUnk_03003F80 + + thumb_func_start sub_08071380 +sub_08071380: @ 0x08071380 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _080713E8 @ =gUnk_03003F80 + adds r1, r5, #0 + adds r1, #0xa8 + movs r0, #0xe + strb r0, [r1] + ldr r1, _080713EC @ =gUnk_0811BA9C + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r0, [r4, #0xd] + cmp r0, #7 + beq _080713FC + cmp r0, #2 + bls _080713FC + ldr r0, [r5, #0x30] + movs r1, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080713FC + ldr r0, _080713F0 @ =gUnk_03000FF0 + ldrh r1, [r0, #2] + movs r0, #0x81 + lsls r0, r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080713FC + bl sub_08052660 + cmp r0, #0 + bne _080713D0 + ldr r0, _080713F4 @ =gUnk_02033A90 + ldrb r0, [r0, #0x17] + cmp r0, #3 + bne _080713F8 +_080713D0: + movs r0, #7 + strb r0, [r4, #0xd] + movs r0, #0x1e + strb r0, [r4, #0xe] + movs r0, #7 + movs r1, #0x10 + bl sub_08050054 + movs r0, #0xf8 + bl sub_080A3268 + b _080713FC + .align 2, 0 +_080713E8: .4byte gUnk_03003F80 +_080713EC: .4byte gUnk_0811BA9C +_080713F0: .4byte gUnk_03000FF0 +_080713F4: .4byte gUnk_02033A90 +_080713F8: + bl sub_0804ACF8 +_080713FC: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08071400 +sub_08071400: @ 0x08071400 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + movs r1, #0 + strb r0, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x42 + strb r1, [r0] + ldr r0, _0807149C @ =gUnk_02033A90 + ldrh r3, [r0, #0x12] + ldrh r5, [r0, #0x14] + movs r0, #0x2e + ldrsh r2, [r4, r0] + cmp r2, r3 + bne _0807142A + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, r5 + beq _08071444 +_0807142A: + movs r0, #0x32 + ldrsh r1, [r4, r0] + adds r0, r2, #0 + adds r2, r3, #0 + adds r3, r5, #0 + bl sub_080045D4 + strb r0, [r4, #0x15] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + bl sub_08079E08 +_08071444: + adds r0, r4, #0 + bl sub_08073904 + adds r0, r4, #0 + bl sub_080042B8 + ldr r2, _080714A0 @ =gUnk_03003F80 + ldrb r0, [r2, #2] + cmp r0, #0 + bne _0807147C + ldr r0, [r2, #0x30] + movs r1, #0x20 + orrs r0, r1 + str r0, [r2, #0x30] + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #4 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x18] + subs r0, #0x45 + ands r0, r1 + strb r0, [r4, #0x18] + ldr r0, _0807149C @ =gUnk_02033A90 + ldrb r0, [r0, #0x17] + cmp r0, #4 + bne _0807147C + ldr r0, _080714A4 @ =0x0000052C + strh r0, [r2, #8] +_0807147C: + movs r0, #8 + strb r0, [r4, #0xe] + ldr r0, _0807149C @ =gUnk_02033A90 + ldrb r0, [r0, #0x17] + cmp r0, #3 + beq _0807149A + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] +_0807149A: + pop {r4, r5, pc} + .align 2, 0 +_0807149C: .4byte gUnk_02033A90 +_080714A0: .4byte gUnk_03003F80 +_080714A4: .4byte 0x0000052C + + thumb_func_start sub_080714A8 +sub_080714A8: @ 0x080714A8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08071524 @ =gUnk_02033A90 + ldrb r0, [r0, #0x17] + cmp r0, #5 + bgt _080714BE + cmp r0, #4 + blt _080714BE + ldr r0, _08071528 @ =gUnk_03001160 + bl sub_0806F948 +_080714BE: + ldr r3, _0807152C @ =gUnk_03003F80 + ldrb r1, [r3, #0xd] + movs r0, #0x84 + ands r0, r1 + cmp r0, #0 + bne _0807153E + ldrb r0, [r4, #0x15] + cmp r0, r1 + beq _080714D4 + movs r0, #8 + strb r0, [r4, #0xe] +_080714D4: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08071538 + ldrb r0, [r3, #0xd] + strb r0, [r4, #0x15] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1a + strb r0, [r4, #0x14] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + movs r1, #0 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + movs r0, #9 + strb r0, [r4, #0xc] + movs r0, #7 + strb r0, [r4, #0xd] + strb r1, [r4, #0xf] + ldr r1, [r3, #0x30] + movs r0, #8 + ands r0, r1 + ldr r4, _08071530 @ =0x0000080C + adds r2, r4, #0 + cmp r0, #0 + beq _08071516 + ldr r0, _08071534 @ =0x0000041C + adds r2, r0, #0 +_08071516: + strh r2, [r3, #8] + movs r0, #0x21 + rsbs r0, r0, #0 + ands r1, r0 + str r1, [r3, #0x30] + b _0807156A + .align 2, 0 +_08071524: .4byte gUnk_02033A90 +_08071528: .4byte gUnk_03001160 +_0807152C: .4byte gUnk_03003F80 +_08071530: .4byte 0x0000080C +_08071534: .4byte 0x0000041C +_08071538: + ldrb r0, [r3, #0xd] + strb r0, [r4, #0x15] + b _08071542 +_0807153E: + movs r0, #8 + strb r0, [r4, #0xe] +_08071542: + ldr r0, _0807155C @ =gUnk_02033A90 + ldrb r0, [r0, #0x17] + cmp r0, #4 + bne _08071560 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #0 + bne _08071566 + adds r0, r4, #0 + bl sub_080042B8 + b _0807156A + .align 2, 0 +_0807155C: .4byte gUnk_02033A90 +_08071560: + adds r0, r4, #0 + bl sub_08077698 +_08071566: + bl sub_08079938 +_0807156A: + pop {r4, pc} + + thumb_func_start sub_0807156C +sub_0807156C: @ 0x0807156C + push {lr} + ldr r2, _080715A0 @ =gUnk_03000BF0 + movs r1, #0 + str r1, [r2, #0x30] + ldr r2, _080715A4 @ =gUnk_02034490 + movs r1, #1 + strb r1, [r2] + movs r1, #3 + strb r1, [r0, #0xd] + movs r1, #0x1e + strb r1, [r0, #0xf] + ldr r2, _080715A8 @ =gUnk_03003F80 + movs r1, #0xe7 + lsls r1, r1, #3 + strh r1, [r2, #8] + movs r1, #6 + movs r2, #1 + movs r3, #0 + bl sub_080A2988 + bl sub_08077B20 + bl sub_0805E544 + pop {pc} + .align 2, 0 +_080715A0: .4byte gUnk_03000BF0 +_080715A4: .4byte gUnk_02034490 +_080715A8: .4byte gUnk_03003F80 + + thumb_func_start sub_080715AC +sub_080715AC: @ 0x080715AC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _080715CC + adds r0, r4, #0 + bl sub_080042B8 + ldr r0, _080715D0 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080715CC + movs r0, #4 + strb r0, [r4, #0xd] +_080715CC: + pop {r4, pc} + .align 2, 0 +_080715D0: .4byte gUnk_03003F80 + + thumb_func_start sub_080715D4 +sub_080715D4: @ 0x080715D4 + push {lr} + adds r3, r0, #0 + movs r2, #0 + movs r0, #5 + strb r0, [r3, #0xd] + movs r0, #0x29 + adds r0, r0, r3 + mov ip, r0 + ldrb r1, [r0] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + mov r1, ip + strb r0, [r1] + strb r2, [r3, #0xf] + ldrb r0, [r3, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r3, #0x19] + adds r0, r3, #0 + adds r0, #0x80 + movs r2, #0x80 + lsls r2, r2, #1 + str r2, [r0] + adds r0, #4 + str r2, [r0] + adds r0, r3, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C + ldr r2, _08071628 @ =gUnk_03003F80 + ldr r0, _0807162C @ =0x000002C3 + strh r0, [r2, #8] + ldr r0, [r2, #0x30] + movs r1, #0x80 + orrs r0, r1 + str r0, [r2, #0x30] + ldr r0, _08071630 @ =0x0000016F + bl sub_080A3268 + pop {pc} + .align 2, 0 +_08071628: .4byte gUnk_03003F80 +_0807162C: .4byte 0x000002C3 +_08071630: .4byte 0x0000016F + + thumb_func_start sub_08071634 +sub_08071634: @ 0x08071634 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + beq _08071654 + adds r1, r5, #0 + adds r1, #0x80 + ldr r0, [r1] + adds r0, #0x80 + lsls r0, r0, #0x14 + lsrs r7, r0, #0x17 + adds r4, r1, #0 + b _0807166A +_08071654: + adds r4, r5, #0 + adds r4, #0x80 + ldrb r1, [r4] + lsrs r1, r1, #6 + movs r0, #3 + eors r1, r0 + adds r1, #1 + movs r0, #0x10 + bl __divsi3 + asrs r7, r0, #1 +_0807166A: + adds r0, r5, #0 + adds r0, #0x84 + ldr r3, [r0] + movs r1, #0x80 + lsls r1, r1, #1 + adds r2, r0, #0 + cmp r3, r1 + bls _08071684 + adds r0, r3, #0 + adds r0, #0x80 + lsls r0, r0, #0x14 + lsrs r3, r0, #0x17 + b _08071694 +_08071684: + cmp r3, r1 + bne _0807168C + movs r3, #0x10 + b _08071694 +_0807168C: + ldr r1, _080716B0 @ =gUnk_0811BABC + lsrs r0, r3, #5 + adds r0, r0, r1 + ldrb r3, [r0] +_08071694: + movs r0, #0x80 + lsls r0, r0, #9 + mov r8, r0 + adds r0, r5, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #2 + beq _080716EA + cmp r0, #2 + bgt _080716B4 + cmp r0, #1 + beq _080716BA + b _08071754 + .align 2, 0 +_080716B0: .4byte gUnk_0811BABC +_080716B4: + cmp r0, #3 + beq _0807171E + b _08071754 +_080716BA: + movs r1, #0x29 + adds r1, r1, r5 + mov ip, r1 + ldrb r1, [r1] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + mov r1, ip + strb r0, [r1] + ldr r0, [r4] + cmp r0, #0x80 + bls _080716D6 + subs r0, r0, r7 + str r0, [r4] +_080716D6: + lsls r1, r3, #1 + ldr r0, [r2] + adds r0, r0, r1 + str r0, [r2] + mov r0, r8 + lsls r1, r0, #1 + ldr r0, [r5, #0x30] + adds r0, r0, r1 + str r0, [r5, #0x30] + b _08071754 +_080716EA: + ldr r0, [r4] + adds r0, r0, r7 + str r0, [r4] + ldr r1, [r2] + movs r6, #0x80 + lsls r6, r6, #1 + cmp r1, r6 + bls _08071710 + ldr r0, _0807170C @ =0x0000017F + cmp r1, r0 + bhi _08071702 + lsrs r3, r3, #1 +_08071702: + subs r0, r1, r3 + cmp r0, #0xff + bhi _08071716 + str r6, [r2] + b _08071718 + .align 2, 0 +_0807170C: .4byte 0x0000017F +_08071710: + cmp r1, #0x80 + bls _08071718 + subs r0, r1, r3 +_08071716: + str r0, [r2] +_08071718: + ldr r0, [r5, #0x34] + mov r1, r8 + b _08071750 +_0807171E: + ldr r0, [r4] + ldr r6, _08071740 @ =0x0000033F + cmp r0, r6 + bhi _0807172A + adds r0, r0, r7 + str r0, [r4] +_0807172A: + ldr r1, [r2] + cmp r1, r6 + bls _08071744 + movs r0, #8 + strb r0, [r5, #0xe] + movs r0, #0x1e + strb r0, [r5, #0xf] + movs r0, #6 + strb r0, [r5, #0xd] + b _0807174A + .align 2, 0 +_08071740: .4byte 0x0000033F +_08071744: + lsls r0, r3, #1 + adds r0, r1, r0 + str r0, [r2] +_0807174A: + mov r0, r8 + lsls r1, r0, #1 + ldr r0, [r5, #0x34] +_08071750: + subs r0, r0, r1 + str r0, [r5, #0x34] +_08071754: + ldr r1, [r4] + ldr r2, [r2] + adds r0, r5, #0 + movs r3, #0 + bl sub_0805EC9C + adds r0, r5, #0 + bl sub_080042B8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0807176C +sub_0807176C: @ 0x0807176C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _080717C6 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _080717CA + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + ldr r1, _080717AC @ =gUnk_02033A90 + ldrb r0, [r1, #0x17] + cmp r0, #3 + bne _080717B0 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080717CA + adds r0, r4, #0 + bl sub_080717F8 + b _080717CA + .align 2, 0 +_080717AC: .4byte gUnk_02033A90 +_080717B0: + cmp r0, #6 + bne _080717C0 + ldr r0, _080717BC @ =gUnk_0813AB58 + bl sub_08080840 + b _080717CA + .align 2, 0 +_080717BC: .4byte gUnk_0813AB58 +_080717C0: + movs r0, #1 + strb r0, [r1, #0x19] + b _080717CA +_080717C6: + subs r0, #1 + strb r0, [r4, #0xe] +_080717CA: + pop {r4, pc} + + thumb_func_start sub_080717CC +sub_080717CC: @ 0x080717CC + push {lr} + adds r1, r0, #0 + ldr r0, _080717E4 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080717F4 + ldrb r0, [r1, #0xe] + cmp r0, #0 + beq _080717E8 + subs r0, #1 + strb r0, [r1, #0xe] + b _080717F4 + .align 2, 0 +_080717E4: .4byte gUnk_03000FD0 +_080717E8: + adds r0, r1, #0 + bl sub_080717F8 + movs r0, #0x10 + bl sub_080500F4 +_080717F4: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080717F8 +sub_080717F8: @ 0x080717F8 + push {r4, lr} + ldr r2, _08071850 @ =gUnk_02033A90 + ldrb r1, [r2, #0x16] + lsls r1, r1, #1 + strb r1, [r0, #0x14] + ldr r3, _08071854 @ =gUnk_0811BAC4 + ldrb r1, [r2, #0x16] + lsls r1, r1, #2 + adds r1, r1, r3 + ldrh r1, [r1] + ldrh r4, [r2, #0x12] + adds r1, r1, r4 + movs r4, #0 + strh r1, [r0, #0x2e] + ldrb r1, [r2, #0x16] + lsls r1, r1, #1 + adds r1, #1 + lsls r1, r1, #1 + adds r1, r1, r3 + ldrh r1, [r1] + ldrh r3, [r2, #0x14] + adds r1, r1, r3 + strh r1, [r0, #0x32] + movs r1, #0xb4 + strb r1, [r2, #0x1a] + ldr r1, _08071858 @ =gUnk_02034490 + strb r4, [r1] + movs r1, #9 + strb r1, [r0, #0xc] + strb r4, [r0, #0xd] + ldr r3, _0807185C @ =gUnk_03003F80 + ldr r1, [r3, #0x30] + movs r2, #0x21 + rsbs r2, r2, #0 + ands r1, r2 + movs r2, #0x80 + orrs r1, r2 + str r1, [r3, #0x30] + bl sub_0805EC60 + bl sub_0805E564 + pop {r4, pc} + .align 2, 0 +_08071850: .4byte gUnk_02033A90 +_08071854: .4byte gUnk_0811BAC4 +_08071858: .4byte gUnk_02034490 +_0807185C: .4byte gUnk_03003F80 + + thumb_func_start sub_08071860 +sub_08071860: @ 0x08071860 + push {r4, lr} + adds r4, r0, #0 + bl sub_08078EFC + cmp r0, #0 + beq _08071876 + bl sub_08056360 + bl sub_08071A6C + b _08071896 +_08071876: + ldr r0, _08071898 @ =gUnk_03003F80 + adds r0, #0xa8 + movs r1, #0x13 + strb r1, [r0] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldr r1, _0807189C @ =gUnk_0811BAD4 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 +_08071896: + pop {r4, pc} + .align 2, 0 +_08071898: .4byte gUnk_03003F80 +_0807189C: .4byte gUnk_0811BAD4 + + thumb_func_start sub_080718A0 +sub_080718A0: @ 0x080718A0 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08077B2C + ldr r0, _080718EC @ =gUnk_03000B80 + adds r0, #0x63 + movs r1, #0 + strb r1, [r0] + adds r0, r4, #0 + adds r0, #0x3d + strb r1, [r0] + ldr r1, _080718F0 @ =gUnk_03003DC0 + movs r2, #6 + movs r0, #6 + strb r0, [r1] + ldrb r1, [r4, #0x11] + subs r0, #0x16 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x11] + ldr r5, _080718F4 @ =gUnk_03003F80 + ldr r0, [r5, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080718F8 + movs r0, #2 + strb r0, [r4, #0xd] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0x3b + ands r0, r1 + strb r0, [r2] + bl sub_08052BB8 + b _08071938 + .align 2, 0 +_080718EC: .4byte gUnk_03000B80 +_080718F0: .4byte gUnk_03003DC0 +_080718F4: .4byte gUnk_03003F80 +_080718F8: + ldrb r0, [r5, #2] + cmp r0, #0 + bne _08071928 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + ldrb r0, [r4, #0x14] + cmp r0, #2 + bne _08071914 + ldr r0, _08071910 @ =0x000003CA + b _08071916 + .align 2, 0 +_08071910: .4byte 0x000003CA +_08071914: + ldr r0, _08071924 @ =0x000003C6 +_08071916: + strh r0, [r5, #8] + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + b _08071938 + .align 2, 0 +_08071924: .4byte 0x000003C6 +_08071928: + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08071938 + strb r0, [r5, #2] +_08071938: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0807193C +sub_0807193C: @ 0x0807193C + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08071986 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + adds r0, r4, #0 + movs r1, #6 + movs r2, #0 + movs r3, #0 + bl sub_080A2988 + str r0, [r4, #0x54] + cmp r0, #0 + beq _08071986 + ldrb r0, [r4, #0x14] + cmp r0, #2 + bne _0807197C + ldr r1, _08071978 @ =gUnk_03003F80 + movs r0, #0xf3 + lsls r0, r0, #2 + b _08071980 + .align 2, 0 +_08071978: .4byte gUnk_03003F80 +_0807197C: + ldr r1, _08071988 @ =gUnk_03003F80 + ldr r0, _0807198C @ =0x000003C7 +_08071980: + strh r0, [r1, #8] + bl sub_08052BB8 +_08071986: + pop {r4, pc} + .align 2, 0 +_08071988: .4byte gUnk_03003F80 +_0807198C: .4byte 0x000003C7 + + thumb_func_start sub_08071990 +sub_08071990: @ 0x08071990 + push {r4, lr} + adds r2, r0, #0 + ldr r0, _080719C0 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _080719E2 + ldrb r0, [r2, #0xd] + adds r0, #1 + strb r0, [r2, #0xd] + ldr r3, _080719C4 @ =gUnk_03003F80 + ldr r0, [r3, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080719D8 + ldrb r0, [r2, #0x14] + cmp r0, #2 + bne _080719CC + ldr r0, _080719C8 @ =0x000003CD + strh r0, [r3, #8] + b _08071A4A + .align 2, 0 +_080719C0: .4byte gUnk_02000050 +_080719C4: .4byte gUnk_03003F80 +_080719C8: .4byte 0x000003CD +_080719CC: + ldr r0, _080719D4 @ =0x000003C9 + strh r0, [r3, #8] + b _08071A4A + .align 2, 0 +_080719D4: .4byte 0x000003C9 +_080719D8: + bl sub_08071A6C + bl sub_08079258 + b _08071A4A +_080719E2: + ldr r4, _08071A20 @ =gUnk_03003F80 + ldr r0, [r4, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08071A4A + ldrb r0, [r2, #0x14] + movs r3, #0 + cmp r0, #2 + bne _080719F8 + movs r3, #4 +_080719F8: + ldr r0, [r2, #0x54] + ldrb r0, [r0, #0xe] + cmp r0, #0 + beq _08071A24 + adds r0, r3, #0 + adds r0, #0xc8 + adds r1, r2, #0 + adds r1, #0x58 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r1] + cmp r0, r1 + beq _08071A44 + movs r1, #0xf2 + lsls r1, r1, #2 + adds r0, r1, #0 + adds r0, r3, r0 + strh r0, [r4, #8] + b _08071A4A + .align 2, 0 +_08071A20: .4byte gUnk_03003F80 +_08071A24: + adds r0, r3, #0 + adds r0, #0xc7 + adds r1, r2, #0 + adds r1, #0x58 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r1] + cmp r0, r1 + beq _08071A44 + ldr r1, _08071A40 @ =0x000003C7 + adds r0, r3, r1 + strh r0, [r4, #8] + b _08071A4A + .align 2, 0 +_08071A40: .4byte 0x000003C7 +_08071A44: + adds r0, r2, #0 + bl sub_080042B8 +_08071A4A: + pop {r4, pc} + + thumb_func_start sub_08071A4C +sub_08071A4C: @ 0x08071A4C + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08071A68 + bl sub_08071A6C + bl sub_0807921C +_08071A68: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08071A6C +sub_08071A6C: @ 0x08071A6C + ldr r1, _08071A84 @ =gUnk_03003DC0 + movs r0, #0 + strb r0, [r1] + ldr r3, _08071A88 @ =gUnk_03001160 + ldrb r1, [r3, #0x11] + lsrs r2, r1, #4 + subs r0, #0x10 + ands r0, r1 + orrs r0, r2 + strb r0, [r3, #0x11] + bx lr + .align 2, 0 +_08071A84: .4byte gUnk_03003DC0 +_08071A88: .4byte gUnk_03001160 + + thumb_func_start sub_08071A8C +sub_08071A8C: @ 0x08071A8C + push {lr} + ldr r1, _08071AA8 @ =gUnk_03003F80 + adds r1, #0xa8 + movs r2, #0x19 + strb r2, [r1] + ldr r2, _08071AAC @ =gUnk_0811BAE4 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08071AA8: .4byte gUnk_03003F80 +_08071AAC: .4byte gUnk_0811BAE4 + + thumb_func_start sub_08071AB0 +sub_08071AB0: @ 0x08071AB0 + push {r4, lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xd] + adds r0, #1 + strb r0, [r3, #0xd] + ldr r1, _08071AD8 @ =gUnk_03003F80 + ldr r2, [r1, #0x30] + movs r0, #1 + orrs r2, r0 + str r2, [r1, #0x30] + ldrb r4, [r3, #0xa] + cmp r4, #1 + bne _08071ADC + movs r1, #0 + movs r0, #0 + strh r0, [r3, #0x24] + strb r1, [r3, #0xe] + strb r4, [r3, #0xf] + b _08071AE8 + .align 2, 0 +_08071AD8: .4byte gUnk_03003F80 +_08071ADC: + movs r0, #0x80 + ands r2, r0 + cmp r2, #0 + beq _08071AE6 + movs r0, #0x40 +_08071AE6: + strh r0, [r3, #0x24] +_08071AE8: + adds r0, r3, #0 + bl sub_08071AF0 + pop {r4, pc} + + thumb_func_start sub_08071AF0 +sub_08071AF0: @ 0x08071AF0 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08071B34 @ =gUnk_03003F80 + adds r0, r5, #0 + adds r0, #0x80 + movs r1, #0 + strh r1, [r0] + adds r0, r4, #0 + bl sub_080042B8 + ldrb r0, [r4, #0xa] + cmp r0, #1 + bne _08071B44 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08071B58 + ldr r0, _08071B38 @ =gUnk_0811BAF0 + ldrb r1, [r4, #0xe] + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1] + adds r0, r2, #0 + cmp r0, #0xff + beq _08071B3C + strb r2, [r4, #0xf] + ldrh r0, [r1, #2] + strh r0, [r4, #0x24] + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + b _08071B58 + .align 2, 0 +_08071B34: .4byte gUnk_03003F80 +_08071B38: .4byte gUnk_0811BAF0 +_08071B3C: + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + b _08071B5C +_08071B44: + ldrb r0, [r5, #6] + subs r0, #1 + strb r0, [r5, #6] + movs r1, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08071B58 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] +_08071B58: + bl sub_08079E08 +_08071B5C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08071B60 +sub_08071B60: @ 0x08071B60 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08071BAC @ =gUnk_03003F80 + movs r2, #0 + movs r0, #2 + strb r0, [r5, #6] + ldr r0, [r5, #0x30] + movs r1, #2 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r5, #0x30] + strb r2, [r4, #0xa] + adds r0, r4, #0 + adds r0, #0x42 + strb r2, [r0] + adds r0, r4, #0 + bl sub_080728AC + movs r0, #6 + strb r0, [r4, #0xf] + ldr r0, [r5, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08071BA8 + movs r0, #0x82 + lsls r0, r0, #1 + strh r0, [r5, #8] + movs r0, #3 + strh r0, [r4, #0x12] + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 + adds r1, #0x3c + adds r0, r4, #0 + bl sub_080042AC +_08071BA8: + pop {r4, r5, pc} + .align 2, 0 +_08071BAC: .4byte gUnk_03003F80 + + thumb_func_start sub_08071BB0 +sub_08071BB0: @ 0x08071BB0 + push {lr} + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + ldr r2, _08071BD4 @ =gUnk_0811BB2C + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + ldr r0, _08071BD8 @ =gUnk_03003F80 + adds r0, #0xa8 + movs r1, #0x12 + strb r1, [r0] + pop {pc} + .align 2, 0 +_08071BD4: .4byte gUnk_0811BB2C +_08071BD8: .4byte gUnk_03003F80 + + thumb_func_start sub_08071BDC +sub_08071BDC: @ 0x08071BDC + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08071C10 @ =gUnk_03003F80 + ldr r0, [r5, #0x30] + movs r1, #0x88 + lsls r1, r1, #1 + ands r0, r1 + cmp r0, #0 + bne _08071C9C + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + beq _08071C1C + ldr r0, [r5, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _08071C14 + movs r0, #0x84 + lsls r0, r0, #3 + strh r0, [r5, #8] + b _08071C9C + .align 2, 0 +_08071C10: .4byte gUnk_03003F80 +_08071C14: + movs r0, #0x81 + lsls r0, r0, #4 + strh r0, [r5, #8] + b _08071C9C +_08071C1C: + strb r0, [r5, #0xc] + ldr r1, [r5, #0x30] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08071C4C + ldrb r0, [r5, #0x12] + subs r0, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bhi _08071C42 + adds r0, r4, #0 + bl sub_0807A298 + bl sub_08079458 + movs r0, #0xa + strb r0, [r4, #0xc] +_08071C42: + ldr r0, _08071C48 @ =0x00000C1A + b _08071C5A + .align 2, 0 +_08071C48: .4byte 0x00000C1A +_08071C4C: + movs r0, #8 + ands r1, r0 + movs r0, #0xde + lsls r0, r0, #1 + cmp r1, #0 + beq _08071C5A + ldr r0, _08071CA0 @ =0x00000459 +_08071C5A: + ldr r2, _08071CA4 @ =gUnk_03003F80 + movs r3, #0 + strh r0, [r2, #8] + ldr r0, [r2, #0x30] + ldr r1, _08071CA8 @ =0xFEDBF2FE + ands r0, r1 + str r0, [r2, #0x30] + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #4 + strb r0, [r4, #0x14] + adds r5, r4, #0 + adds r5, #0x29 + ldrb r1, [r5] + subs r0, #0x3d + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r5] + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + strb r3, [r2, #2] + strb r3, [r2, #6] + adds r0, r4, #0 + bl sub_0800451C + bl sub_08077B2C + movs r0, #0x87 + bl sub_080A3268 +_08071C9C: + pop {r4, r5, pc} + .align 2, 0 +_08071CA0: .4byte 0x00000459 +_08071CA4: .4byte gUnk_03003F80 +_08071CA8: .4byte 0xFEDBF2FE + + thumb_func_start sub_08071CAC +sub_08071CAC: @ 0x08071CAC + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r3, #0x80 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _08071CFE + ldr r1, _08071CE0 @ =gUnk_03003F80 + ldr r2, [r1, #0x30] + adds r0, r2, #0 + ands r0, r3 + cmp r0, #0 + bne _08071CEC + movs r0, #8 + ands r2, r0 + ldr r0, _08071CE4 @ =0x000002BD + cmp r2, #0 + beq _08071CEE + ldr r0, _08071CE8 @ =0x0000045A + b _08071CEE + .align 2, 0 +_08071CE0: .4byte gUnk_03003F80 +_08071CE4: .4byte 0x000002BD +_08071CE8: .4byte 0x0000045A +_08071CEC: + ldr r0, _08071D00 @ =0x00000C1B +_08071CEE: + strh r0, [r1, #8] + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #0xf0 + strb r0, [r4, #0xe] + movs r0, #0x7b + bl sub_080A3268 +_08071CFE: + pop {r4, pc} + .align 2, 0 +_08071D00: .4byte 0x00000C1B + + thumb_func_start sub_08071D04 +sub_08071D04: @ 0x08071D04 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080042B8 + adds r0, r5, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #0 + beq _08071D7A + movs r4, #0 + movs r0, #0x28 + bl sub_080544DC + adds r1, r0, #0 + cmp r1, #0 + beq _08071D3A + ldr r0, _08071D6C @ =gUnk_02002A40 + adds r0, r0, r1 + adds r0, #0xb5 + movs r1, #0x20 + strb r1, [r0] + movs r0, #0x40 + movs r1, #0x60 + movs r2, #2 + bl sub_080A2960 + movs r4, #0x20 +_08071D3A: + cmp r4, #0 + beq _08071D74 + adds r0, r4, #0 + bl sub_080526A0 + movs r2, #0 + movs r0, #3 + strb r0, [r5, #0xd] + ldr r1, _08071D70 @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0x3c + strb r2, [r0] + movs r0, #0xff + strb r0, [r5, #0x15] + movs r3, #0 + strh r2, [r5, #0x24] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r5, #0x20] + movs r0, #1 + strb r0, [r1, #2] + adds r1, #0x26 + strb r3, [r1] + b _08071D7A + .align 2, 0 +_08071D6C: .4byte gUnk_02002A40 +_08071D70: .4byte gUnk_03003F80 +_08071D74: + ldr r1, _08071D7C @ =gUnk_030010A0 + movs r0, #1 + strb r0, [r1, #5] +_08071D7A: + pop {r4, r5, pc} + .align 2, 0 +_08071D7C: .4byte gUnk_030010A0 + + thumb_func_start sub_08071D80 +sub_08071D80: @ 0x08071D80 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldr r5, _08071DB4 @ =gUnk_03003F80 + movs r0, #1 + strb r0, [r5, #0x14] + adds r0, r4, #0 + bl sub_08073904 + ldrb r1, [r5, #2] + movs r0, #7 + ands r0, r1 + cmp r0, #3 + bne _08071DB2 + movs r0, #0 + strb r0, [r5, #2] + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0xe2 + strb r0, [r1] + bl sub_0805E564 + bl sub_080791D0 +_08071DB2: + pop {r4, r5, pc} + .align 2, 0 +_08071DB4: .4byte gUnk_03003F80 + + thumb_func_start sub_08071DB8 +sub_08071DB8: @ 0x08071DB8 + push {lr} + ldr r2, _08071DCC @ =gUnk_0811BB3C + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08071DCC: .4byte gUnk_0811BB3C + + thumb_func_start sub_08071DD0 +sub_08071DD0: @ 0x08071DD0 + push {lr} + adds r2, r0, #0 + ldr r1, _08071DF4 @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0x38 + ldrb r0, [r0] + strb r0, [r2, #0xe] + adds r3, r1, #0 + adds r3, #0x39 + ldrb r0, [r3] + cmp r0, #0 + beq _08071DF8 + movs r0, #0 + strb r0, [r3] + movs r0, #2 + strb r0, [r2, #0xd] + adds r0, #0xfe + b _08071E00 + .align 2, 0 +_08071DF4: .4byte gUnk_03003F80 +_08071DF8: + movs r0, #1 + strb r0, [r2, #0xd] + movs r0, #0x8a + lsls r0, r0, #1 +_08071E00: + strh r0, [r1, #8] + pop {pc} + + thumb_func_start sub_08071E04 +sub_08071E04: @ 0x08071E04 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x34] + cmp r0, #0 + beq _08071E38 + ldr r5, _08071E34 @ =gUnk_03003F80 + ldrb r0, [r5, #0x14] + cmp r0, #0 + bne _08071E38 + bl sub_0807A1B8 + ldrb r0, [r5, #0x12] + cmp r0, #1 + bne _08071E38 + movs r0, #7 + strb r0, [r5, #0x11] + ldr r0, [r5, #0x30] + movs r1, #0x80 + lsls r1, r1, #2 + orrs r0, r1 + str r0, [r5, #0x30] + bl sub_080791BC + b _08071E72 + .align 2, 0 +_08071E34: .4byte gUnk_03003F80 +_08071E38: + adds r0, r4, #0 + bl sub_080042B8 + bl sub_08079B24 + cmp r0, #0 + bne _08071E4E + adds r0, r4, #0 + bl sub_08079708 + b _08071E72 +_08071E4E: + bl sub_080792D8 + bl sub_0807953C + cmp r0, #0 + beq _08071E60 + ldrb r0, [r4, #0xe] + subs r0, #2 + b _08071E64 +_08071E60: + ldrb r0, [r4, #0xe] + subs r0, #1 +_08071E64: + strb r0, [r4, #0xe] + movs r0, #0xe + ldrsb r0, [r4, r0] + cmp r0, #0 + bgt _08071E72 + bl sub_080791BC +_08071E72: + pop {r4, r5, pc} + + thumb_func_start sub_08071E74 +sub_08071E74: @ 0x08071E74 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x80 + lsls r1, r1, #6 + bl sub_08003FC4 + bl sub_08079E08 + ldrb r0, [r4, #0xe] + adds r1, r0, #0 + adds r1, #0xff + strb r1, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08071E96 + bl sub_080791BC +_08071E96: + pop {r4, pc} + + thumb_func_start sub_08071E98 +sub_08071E98: @ 0x08071E98 + push {lr} + ldr r2, _08071EAC @ =gUnk_0811BB48 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08071EAC: .4byte gUnk_0811BB48 + + thumb_func_start sub_08071EB0 +sub_08071EB0: @ 0x08071EB0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08077B2C + adds r0, r4, #0 + movs r1, #0xe + bl sub_08077C3C + cmp r0, #0 + beq _08071F12 + ldr r3, _08071EE4 @ =gUnk_03003F80 + adds r2, r3, #0 + adds r2, #0x38 + ldrb r1, [r2] + adds r0, #0x68 + strb r1, [r0] + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + ldrb r0, [r2] + cmp r0, #0x20 + bne _08071EEC + ldr r0, _08071EE8 @ =0x00000614 + strh r0, [r3, #8] + b _08071F12 + .align 2, 0 +_08071EE4: .4byte gUnk_03003F80 +_08071EE8: .4byte 0x00000614 +_08071EEC: + cmp r0, #0x20 + blt _08071F00 + cmp r0, #0x25 + bgt _08071F00 + ldr r0, _08071EFC @ =0x000002DF + strh r0, [r3, #8] + b _08071F12 + .align 2, 0 +_08071EFC: .4byte 0x000002DF +_08071F00: + movs r0, #0xc2 + lsls r0, r0, #3 + strh r0, [r3, #8] + adds r0, r3, #0 + adds r0, #0x38 + ldrb r0, [r0] + movs r1, #2 + bl sub_0807CAA0 +_08071F12: + pop {r4, pc} + + thumb_func_start sub_08071F14 +sub_08071F14: @ 0x08071F14 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08071F32 + ldr r1, _08071F34 @ =gUnk_03003F80 + movs r0, #0 + str r0, [r1, #0x2c] + bl sub_0807921C +_08071F32: + pop {r4, pc} + .align 2, 0 +_08071F34: .4byte gUnk_03003F80 + + thumb_func_start sub_08071F38 +sub_08071F38: @ 0x08071F38 + push {lr} + ldr r2, _08071F4C @ =gUnk_0811BB50 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08071F4C: .4byte gUnk_0811BB50 + + thumb_func_start sub_08071F50 +sub_08071F50: @ 0x08071F50 + push {lr} + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + movs r1, #0x78 + strb r1, [r0, #0xe] + ldrb r1, [r0, #0xd] + adds r1, #1 + strb r1, [r0, #0xd] + ldr r1, _08071F78 @ =gUnk_03003F80 + movs r0, #0xa5 + lsls r0, r0, #2 + strh r0, [r1, #8] + bl sub_08077B20 + ldr r0, _08071F7C @ =0x00000195 + bl sub_080A3268 + pop {pc} + .align 2, 0 +_08071F78: .4byte gUnk_03003F80 +_08071F7C: .4byte 0x00000195 + + thumb_func_start sub_08071F80 +sub_08071F80: @ 0x08071F80 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x80 + lsls r1, r1, #6 + bl sub_08003FC4 + adds r5, r0, #0 + cmp r5, #0 + bne _08071FB8 + adds r0, r4, #0 + bl sub_08016A04 + ldr r0, _08071FB4 @ =gUnk_03003F80 + strb r5, [r0, #2] + ldrb r0, [r0, #0x14] + cmp r0, #0 + bne _08071FB8 + bl sub_08079D48 + cmp r0, #0 + bne _08071FB8 + adds r0, r4, #0 + bl sub_08072008 + b _08072004 + .align 2, 0 +_08071FB4: .4byte gUnk_03003F80 +_08071FB8: + bl sub_08079B24 + cmp r0, #0 + bne _08071FC8 + adds r0, r4, #0 + bl sub_08079708 + b _08071FFE +_08071FC8: + ldr r0, _08071FEC @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + lsls r1, r1, #4 + ands r0, r1 + cmp r0, #0 + beq _08071FFE + bl sub_0807953C + cmp r0, #0 + beq _08071FF0 + ldrb r0, [r4, #0xe] + subs r0, #3 + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x62 + movs r0, #2 + b _08071FF4 + .align 2, 0 +_08071FEC: .4byte gUnk_03003F80 +_08071FF0: + adds r1, r4, #0 + adds r1, #0x62 +_08071FF4: + strb r0, [r1] + movs r0, #0xe + ldrsb r0, [r4, r0] + cmp r0, #0 + bgt _08072004 +_08071FFE: + adds r0, r4, #0 + bl sub_08072008 +_08072004: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08072008 +sub_08072008: @ 0x08072008 + push {lr} + adds r3, r0, #0 + adds r1, r3, #0 + adds r1, #0x3d + movs r2, #0 + movs r0, #0xa0 + strb r0, [r1] + adds r0, r3, #0 + adds r0, #0x42 + strb r2, [r0] + ldrb r1, [r3, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r3, #0x10] + adds r0, r3, #0 + adds r0, #0x62 + strb r2, [r0] + ldr r2, _08072044 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + ldr r1, _08072048 @ =0xFFFFF7FE + ands r0, r1 + str r0, [r2, #0x30] + adds r0, r3, #0 + movs r1, #0xd + movs r2, #0 + bl sub_080A29AC + bl sub_080791BC + pop {pc} + .align 2, 0 +_08072044: .4byte gUnk_03003F80 +_08072048: .4byte 0xFFFFF7FE + + thumb_func_start sub_0807204C +sub_0807204C: @ 0x0807204C + push {lr} + ldr r2, _08072060 @ =gUnk_0811BB58 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08072060: .4byte gUnk_0811BB58 + + thumb_func_start sub_08072064 +sub_08072064: @ 0x08072064 + push {lr} + movs r1, #1 + strb r1, [r0, #0xd] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + ldr r2, _08072094 @ =gUnk_03003F80 + adds r1, r2, #0 + adds r1, #0x3a + ldrb r1, [r1] + strb r1, [r0, #0xe] + adds r0, r2, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, #1 + ldrb r0, [r0] + lsls r0, r0, #8 + orrs r1, r0 + strh r1, [r2, #8] + bl sub_08077B2C + pop {pc} + .align 2, 0 +_08072094: .4byte gUnk_03003F80 + + thumb_func_start sub_08072098 +sub_08072098: @ 0x08072098 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080720B4 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _080720D8 + b _080720C2 +_080720B4: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080720D8 +_080720C2: + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _080720D4 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] +_080720D4: + bl sub_080791BC +_080720D8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080720DC +sub_080720DC: @ 0x080720DC + push {r4, lr} + adds r4, r0, #0 + bl sub_08078EFC + cmp r0, #0 + bne _080720F8 + ldr r0, _080720FC @ =gUnk_0811BB60 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_080720F8: + pop {r4, pc} + .align 2, 0 +_080720FC: .4byte gUnk_0811BB60 + + thumb_func_start sub_08072100 +sub_08072100: @ 0x08072100 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #0xa0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + ldr r0, _08072148 @ =gUnk_08114F88 + str r0, [r4, #0x48] + ldr r2, _0807214C @ =gUnk_03003F80 + adds r0, r2, #0 + adds r0, #0x38 + ldrb r0, [r0] + strb r0, [r4, #0xe] + movs r0, #1 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r2, #0 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #0 + beq _0807213A + movs r0, #0xff + strb r0, [r4, #0x15] +_0807213A: + ldr r0, [r2, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _08072154 + ldr r0, _08072150 @ =0x00000404 + b _08072158 + .align 2, 0 +_08072148: .4byte gUnk_08114F88 +_0807214C: .4byte gUnk_03003F80 +_08072150: .4byte 0x00000404 +_08072154: + movs r0, #0x82 + lsls r0, r0, #1 +_08072158: + strh r0, [r2, #8] + bl sub_08077B2C + adds r0, r4, #0 + bl sub_08072168 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08072168 +sub_08072168: @ 0x08072168 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + movs r2, #0xc + rsbs r2, r2, #0 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806F854 + lsls r0, r0, #0x10 + movs r1, #0x80 + lsls r1, r1, #6 + cmp r0, #0 + beq _0807218A + movs r1, #0x80 + lsls r1, r1, #7 +_0807218A: + adds r0, r4, #0 + bl sub_08003FC4 + ldr r0, _080721A4 @ =gUnk_03003F80 + adds r0, #0x3a + ldrb r0, [r0] + cmp r0, #0 + beq _080721A8 + adds r0, r4, #0 + bl sub_0806F69C + b _080721AC + .align 2, 0 +_080721A4: .4byte gUnk_03003F80 +_080721A8: + bl sub_08079E08 +_080721AC: + ldr r1, _080721E0 @ =gUnk_03003F80 + ldrb r0, [r4, #0x15] + strb r0, [r1, #0xd] + bl sub_08019840 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _080721DE + adds r1, r4, #0 + adds r1, #0x42 + movs r0, #0 + strb r0, [r1] + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + bl sub_08016A04 + bl sub_080791BC +_080721DE: + pop {r4, pc} + .align 2, 0 +_080721E0: .4byte gUnk_03003F80 + + thumb_func_start sub_080721E4 +sub_080721E4: @ 0x080721E4 + push {lr} + ldr r1, _08072208 @ =gUnk_03003F80 + adds r1, #0xa8 + movs r2, #0x1a + strb r2, [r1] + ldr r2, _0807220C @ =gUnk_0811BB68 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + ldr r0, _08072210 @ =gUnk_0200AF00 + adds r0, #0x2e + movs r1, #8 + strb r1, [r0] + pop {pc} + .align 2, 0 +_08072208: .4byte gUnk_03003F80 +_0807220C: .4byte gUnk_0811BB68 +_08072210: .4byte gUnk_0200AF00 + + thumb_func_start sub_08072214 +sub_08072214: @ 0x08072214 + push {lr} + adds r3, r0, #0 + movs r0, #1 + strb r0, [r3, #0xd] + movs r0, #0x80 + strh r0, [r3, #0x24] + ldr r2, _08072244 @ =gUnk_03003F80 + adds r0, r2, #0 + adds r0, #0x38 + ldrb r0, [r0] + strb r0, [r3, #0xe] + ldrb r0, [r3, #0x14] + movs r1, #4 + eors r0, r1 + lsls r0, r0, #2 + strb r0, [r3, #0x15] + ldr r0, [r2, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + bne _08072248 + movs r0, #0xd3 + lsls r0, r0, #2 + b _0807224A + .align 2, 0 +_08072244: .4byte gUnk_03003F80 +_08072248: + ldr r0, _0807225C @ =0x00000944 +_0807224A: + strh r0, [r2, #8] + ldr r0, [r2, #0x30] + movs r1, #1 + orrs r0, r1 + str r0, [r2, #0x30] + adds r0, r3, #0 + bl sub_08072260 + pop {pc} + .align 2, 0 +_0807225C: .4byte 0x00000944 + + thumb_func_start sub_08072260 +sub_08072260: @ 0x08072260 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _0807229C @ =gUnk_03003F80 + adds r1, r5, #0 + adds r1, #0x80 + movs r0, #0 + strh r0, [r1] + bl sub_08079E08 + adds r0, r4, #0 + bl sub_080042B8 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080722B0 + ldr r0, [r5, #0x30] + movs r1, #2 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r5, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + bne _080722A0 + movs r0, #0xd3 + lsls r0, r0, #2 + b _080722A2 + .align 2, 0 +_0807229C: .4byte gUnk_03003F80 +_080722A0: + ldr r0, _080722B4 @ =0x00000944 +_080722A2: + strh r0, [r5, #8] + adds r1, r4, #0 + adds r1, #0x42 + movs r0, #0 + strb r0, [r1] + bl sub_080791BC +_080722B0: + pop {r4, r5, pc} + .align 2, 0 +_080722B4: .4byte 0x00000944 + + thumb_func_start sub_080722B8 +sub_080722B8: @ 0x080722B8 + push {lr} + ldr r1, _080722D4 @ =gUnk_03003F80 + adds r1, #0xa8 + movs r2, #0xa + strb r2, [r1] + ldr r2, _080722D8 @ =gUnk_0811BB70 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080722D4: .4byte gUnk_03003F80 +_080722D8: .4byte gUnk_0811BB70 + + thumb_func_start sub_080722DC +sub_080722DC: @ 0x080722DC + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldr r2, _08072318 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + ands r0, r1 + adds r5, r2, #0 + cmp r0, #0 + bne _0807231C + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0xa0 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + movs r0, #0x42 + movs r2, #0 + bl sub_080A2960 + cmp r0, #0 + beq _0807230E + str r4, [r0, #0x54] +_0807230E: + movs r0, #0x8a + lsls r0, r0, #1 + strh r0, [r5, #8] + b _08072332 + .align 2, 0 +_08072318: .4byte gUnk_03003F80 +_0807231C: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + movs r0, #3 + strb r0, [r4, #0xd] + adds r1, r4, #0 + adds r1, #0x42 + movs r0, #0xa + strb r0, [r1] +_08072332: + ldr r0, [r5, #0x30] + ldr r1, _08072350 @ =0x00000401 + orrs r0, r1 + str r0, [r5, #0x30] + bl sub_08077B2C + movs r0, #0x92 + lsls r0, r0, #1 + bl sub_080A3268 + movs r0, #0x7a + bl sub_080A3268 + pop {r4, r5, pc} + .align 2, 0 +_08072350: .4byte 0x00000401 + + thumb_func_start sub_08072354 +sub_08072354: @ 0x08072354 + push {r4, lr} + adds r4, r0, #0 + movs r2, #0xc + rsbs r2, r2, #0 + movs r1, #0 + bl sub_0806F854 + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_08079744 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + adds r3, r0, #0 + cmp r3, #0 + bne _080723C0 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x42 + strb r3, [r0] + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldr r2, _080723C4 @ =gUnk_03003F80 + ldr r0, _080723C8 @ =0x000002C1 + strh r0, [r2, #8] + ldr r0, [r2, #0x30] + ldr r1, _080723CC @ =0xFFFFFBFF + ands r0, r1 + str r0, [r2, #0x30] + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + movs r1, #0xc + movs r2, #0 + bl sub_080A29AC + movs r0, #0xd3 + lsls r0, r0, #1 + bl sub_080A3268 +_080723C0: + pop {r4, pc} + .align 2, 0 +_080723C4: .4byte gUnk_03003F80 +_080723C8: .4byte 0x000002C1 +_080723CC: .4byte 0xFFFFFBFF + + thumb_func_start sub_080723D0 +sub_080723D0: @ 0x080723D0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _0807240A + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0x14 + strb r0, [r1] + subs r0, #0x16 + bl sub_080526A0 + bl sub_08079458 +_0807240A: + pop {r4, pc} + + thumb_func_start sub_0807240C +sub_0807240C: @ 0x0807240C + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x42 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08072448 + ldrb r0, [r2, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r2, #0x18] + adds r1, r2, #0 + adds r1, #0x3d + movs r0, #0x14 + strb r0, [r1] + ldr r2, _0807244C @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + ldr r1, _08072450 @ =0xFFFFFBFF + ands r0, r1 + str r0, [r2, #0x30] + movs r0, #2 + rsbs r0, r0, #0 + bl sub_080526A0 + bl sub_08079458 +_08072448: + pop {pc} + .align 2, 0 +_0807244C: .4byte gUnk_03003F80 +_08072450: .4byte 0xFFFFFBFF + + thumb_func_start sub_08072454 +sub_08072454: @ 0x08072454 + push {lr} + ldr r2, _08072468 @ =gUnk_0811BB80 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08072468: .4byte gUnk_0811BB80 + + thumb_func_start sub_0807246C +sub_0807246C: @ 0x0807246C + push {lr} + movs r1, #1 + strb r1, [r0, #0xd] + ldr r2, _0807248C @ =gUnk_03003F80 + adds r1, r2, #0 + adds r1, #0x38 + ldrb r1, [r1] + strb r1, [r0, #0xe] + movs r0, #0xf0 + lsls r0, r0, #2 + strh r0, [r2, #8] + movs r0, #0x7b + bl sub_080A3268 + pop {pc} + .align 2, 0 +_0807248C: .4byte gUnk_03003F80 + + thumb_func_start sub_08072490 +sub_08072490: @ 0x08072490 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _080724AE + adds r0, r1, #0 + bl sub_080042B8 + bl sub_08079E08 + b _080724C2 +_080724AE: + adds r0, r1, #0 + adds r0, #0x3d + movs r1, #0x3c + strb r1, [r0] + movs r0, #8 + rsbs r0, r0, #0 + bl sub_080526A0 + bl sub_080791D0 +_080724C2: + pop {pc} + + thumb_func_start sub_080724C4 +sub_080724C4: @ 0x080724C4 + push {lr} + ldr r2, _080724D8 @ =gUnk_0811BB88 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080724D8: .4byte gUnk_0811BB88 + + thumb_func_start sub_080724DC +sub_080724DC: @ 0x080724DC + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x42 + movs r0, #0 + strb r0, [r1] + bl sub_0807A108 + adds r0, r4, #0 + bl sub_080002B8 + cmp r0, #0x29 + beq _0807254C + ldr r1, _08072530 @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0x89 + ldrb r0, [r0] + cmp r0, #0 + bne _08072512 + adds r0, r1, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + beq _08072512 + adds r0, r4, #0 + bl sub_0807AE20 +_08072512: + ldr r0, _08072534 @ =gUnk_03000BF0 + ldrh r0, [r0] + cmp r0, #0 + bne _08072538 + ldrb r0, [r4, #0x11] + lsrs r2, r0, #4 + movs r1, #0x10 + rsbs r1, r1, #0 + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x11] + adds r0, r4, #0 + bl sub_080728AC + b _08072588 + .align 2, 0 +_08072530: .4byte gUnk_03003F80 +_08072534: .4byte gUnk_03000BF0 +_08072538: + ldr r0, _08072548 @ =gUnk_03003F80 + ldrb r0, [r0, #0x1c] + cmp r0, #0 + bne _08072588 + adds r0, r4, #0 + bl sub_080042B8 + b _08072588 + .align 2, 0 +_08072548: .4byte gUnk_03003F80 +_0807254C: + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #1 + strb r0, [r4, #0xd] + ldr r0, _08072570 @ =gUnk_02034350 + ldrb r0, [r0] + cmp r0, #0 + bne _08072588 + ldr r2, _08072574 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807257C + ldr r0, _08072578 @ =0x00000C18 + b _08072580 + .align 2, 0 +_08072570: .4byte gUnk_02034350 +_08072574: .4byte gUnk_03003F80 +_08072578: .4byte 0x00000C18 +_0807257C: + movs r0, #0x82 + lsls r0, r0, #1 +_08072580: + strh r0, [r2, #8] + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] +_08072588: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0807258C +sub_0807258C: @ 0x0807258C + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080725D0 @ =gUnk_03000BF0 + ldrh r0, [r0] + cmp r0, #0 + bne _08072604 + adds r0, r4, #0 + bl sub_0807A894 + cmp r0, #0x29 + bne _080725E4 + bl sub_08079E08 + bl sub_080797C4 + cmp r0, #0 + beq _080725DC + ldr r2, _080725D4 @ =gUnk_03003F80 + ldr r1, _080725D8 @ =gUnk_03001160 + ldrh r0, [r1, #0x2e] + strh r0, [r2, #0x16] + ldrh r0, [r1, #0x32] + strh r0, [r2, #0x18] + ldrb r1, [r4, #0x11] + lsrs r2, r1, #4 + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x11] + adds r0, r4, #0 + bl sub_080728AC + b _08072604 + .align 2, 0 +_080725D0: .4byte gUnk_03000BF0 +_080725D4: .4byte gUnk_03003F80 +_080725D8: .4byte gUnk_03001160 +_080725DC: + adds r0, r4, #0 + bl sub_080042B8 + b _08072604 +_080725E4: + ldr r2, _08072624 @ =gUnk_03003F80 + ldr r1, _08072628 @ =gUnk_03001160 + ldrh r0, [r1, #0x2e] + strh r0, [r2, #0x16] + ldrh r0, [r1, #0x32] + strh r0, [r2, #0x18] + ldrb r1, [r4, #0x11] + lsrs r2, r1, #4 + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x11] + adds r0, r4, #0 + bl sub_080728AC +_08072604: + ldr r1, _08072624 @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0x89 + ldrb r0, [r0] + cmp r0, #0 + bne _08072620 + adds r0, r1, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + beq _08072620 + adds r0, r4, #0 + bl sub_0807AE20 +_08072620: + pop {r4, pc} + .align 2, 0 +_08072624: .4byte gUnk_03003F80 +_08072628: .4byte gUnk_03001160 + + thumb_func_start sub_0807262C +sub_0807262C: @ 0x0807262C + push {lr} + ldr r1, _08072648 @ =gUnk_03003F80 + adds r1, #0xa8 + movs r2, #9 + strb r2, [r1] + ldr r2, _0807264C @ =gUnk_0811BB90 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08072648: .4byte gUnk_03003F80 +_0807264C: .4byte gUnk_0811BB90 + + thumb_func_start sub_08072650 +sub_08072650: @ 0x08072650 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08072698 @ =gUnk_03003F80 + ldr r0, [r5, #0x30] + movs r1, #0x80 + lsls r1, r1, #0xe + ands r0, r1 + cmp r0, #0 + bne _0807266E + ldr r0, _0807269C @ =gUnk_03001160 + bl sub_0806F948 + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] +_0807266E: + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xd] + strb r1, [r4, #0xe] + bl sub_08077B2C + ldr r3, [r5, #0x30] + movs r0, #0x80 + ands r0, r3 + cmp r0, #0 + beq _080726A4 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldr r0, _080726A0 @ =0x00000C08 + b _080726BE + .align 2, 0 +_08072698: .4byte gUnk_03003F80 +_0807269C: .4byte gUnk_03001160 +_080726A0: .4byte 0x00000C08 +_080726A4: + adds r0, r4, #0 + adds r0, #0x40 + movs r1, #0x1e + strb r1, [r0] + movs r0, #8 + ands r3, r0 + cmp r3, #0 + beq _080726BA + movs r0, #0x87 + lsls r0, r0, #3 + b _080726BE +_080726BA: + movs r0, #0xab + lsls r0, r0, #2 +_080726BE: + strh r0, [r5, #8] + ldr r2, _080726E0 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #0xb + orrs r0, r1 + str r0, [r2, #0x30] + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _080726E4 + movs r0, #0x79 + bl sub_080A3268 + b _080726EA + .align 2, 0 +_080726E0: .4byte gUnk_03003F80 +_080726E4: + movs r0, #0x78 + bl sub_080A3268 +_080726EA: + movs r0, #0x7e + bl sub_080A3268 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080726F4 +sub_080726F4: @ 0x080726F4 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r3, _08072744 @ =gUnk_03003F80 + ldr r2, [r3, #0x30] + movs r0, #0xc0 + lsls r0, r0, #0xc + ands r0, r2 + movs r1, #0x80 + lsls r1, r1, #0xb + cmp r0, r1 + bne _08072730 + movs r0, #0x80 + lsls r0, r0, #0xe + ands r0, r2 + cmp r0, #0 + bne _0807274C + adds r0, r4, #0 + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _0807274C + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807274C +_08072730: + ldr r0, _08072748 @ =0xFFFBFFFF + ands r2, r0 + str r2, [r3, #0x30] + bl sub_08078EFC + cmp r0, #0 + beq _08072740 + b _080728A0 +_08072740: + b _080727E0 + .align 2, 0 +_08072744: .4byte gUnk_03003F80 +_08072748: .4byte 0xFFFBFFFF +_0807274C: + ldrb r1, [r4, #0x14] + movs r0, #6 + ands r0, r1 + lsls r0, r0, #2 + strb r0, [r4, #0x15] + ldr r0, _080727A0 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0807277E + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _0807277E + ldr r0, _080727A4 @ =gUnk_03001160 + movs r1, #0x11 + movs r2, #0x40 + bl sub_080A29AC + movs r0, #4 + strb r0, [r4, #0xe] +_0807277E: + ldr r5, _080727A0 @ =gUnk_03003F80 + ldr r0, [r5, #0x30] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + bne _0807278E + bl sub_0807A1B8 +_0807278E: + bl sub_08078EFC + cmp r0, #0 + beq _080727AC + ldr r0, [r5, #0x30] + ldr r1, _080727A8 @ =0xFFFBFFFF + ands r0, r1 + str r0, [r5, #0x30] + b _080728A0 + .align 2, 0 +_080727A0: .4byte gUnk_03003F80 +_080727A4: .4byte gUnk_03001160 +_080727A8: .4byte 0xFFFBFFFF +_080727AC: + ldr r1, [r5, #0x30] + movs r0, #0x80 + lsls r0, r0, #0xc + ands r0, r1 + cmp r0, #0 + beq _080727C4 + ldr r0, _080727C0 @ =0xFFFBFFFF + ands r1, r0 + str r1, [r5, #0x30] + b _080728A0 + .align 2, 0 +_080727C0: .4byte 0xFFFBFFFF +_080727C4: + adds r0, r4, #0 + bl sub_0807AC54 + cmp r0, #0 + bne _080728A0 + ldr r1, [r5, #0x30] + movs r3, #0x94 + lsls r3, r3, #2 + ands r3, r1 + cmp r3, #0 + beq _080727EC + ldr r0, _080727E8 @ =0xFFFBFFFF + ands r1, r0 + str r1, [r5, #0x30] +_080727E0: + adds r0, r4, #0 + bl sub_080728AC + b _080728A0 + .align 2, 0 +_080727E8: .4byte 0xFFFBFFFF +_080727EC: + ldrb r0, [r5, #0x12] + cmp r0, #0x17 + bne _080727FE + adds r0, r4, #0 + bl sub_0800892E + adds r5, r4, #0 + adds r5, #0x5a + b _08072844 +_080727FE: + adds r1, r4, #0 + adds r1, #0x5a + ldrb r0, [r1] + movs r2, #0xf + ands r2, r0 + adds r5, r1, #0 + cmp r2, #1 + beq _0807282A + cmp r2, #1 + bgt _08072818 + cmp r2, #0 + beq _08072822 + b _0807283C +_08072818: + cmp r2, #2 + beq _08072832 + cmp r2, #3 + beq _0807283A + b _0807283C +_08072822: + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + b _0807283C +_0807282A: + ldrh r0, [r4, #0x24] + adds r0, #0x20 + strh r0, [r4, #0x24] + b _0807283C +_08072832: + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + b _0807283C +_0807283A: + strh r3, [r4, #0x24] +_0807283C: + bl sub_08078F24 + bl sub_08079E08 +_08072844: + ldrb r1, [r5] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + bne _08072860 + ldr r0, _080728A4 @ =gUnk_03003F80 + ldr r1, [r0, #0x30] + movs r0, #0x80 + ands r1, r0 + cmp r1, #0 + bne _08072860 + adds r0, r4, #0 + adds r0, #0x40 + strb r1, [r0] +_08072860: + ldrb r1, [r5] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08072870 + adds r0, r4, #0 + bl sub_08077698 +_08072870: + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08072882 + ldr r0, _080728A4 @ =gUnk_03003F80 + ldrb r0, [r0, #4] + cmp r0, #0 + beq _08072886 +_08072882: + bl sub_080791D0 +_08072886: + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807289A + ldr r0, _080728A4 @ =gUnk_03003F80 + ldr r1, [r0, #0x30] + ldr r2, _080728A8 @ =0xFFDBFFFF + ands r1, r2 + str r1, [r0, #0x30] +_0807289A: + adds r0, r4, #0 + bl sub_080042B8 +_080728A0: + pop {r4, r5, pc} + .align 2, 0 +_080728A4: .4byte gUnk_03003F80 +_080728A8: .4byte 0xFFDBFFFF + + thumb_func_start sub_080728AC +sub_080728AC: @ 0x080728AC + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08079938 + ldr r0, _080728C8 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080728CC + adds r0, r4, #0 + bl sub_0807B068 + b _080728D0 + .align 2, 0 +_080728C8: .4byte gUnk_03003F80 +_080728CC: + bl sub_08078F60 +_080728D0: + ldr r1, _08072940 @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + beq _080728E0 + movs r0, #0 + strh r0, [r4, #0x24] +_080728E0: + ldr r0, [r1, #0x30] + movs r5, #0x40 + ands r5, r0 + adds r3, r0, #0 + cmp r5, #0 + bne _080728F6 + ldr r0, _08072944 @ =gUnk_03001160 + ldrb r1, [r0, #0x18] + movs r2, #3 + orrs r1, r2 + strb r1, [r0, #0x18] +_080728F6: + movs r0, #0x80 + ands r0, r3 + cmp r0, #0 + bne _08072910 + ldr r2, _08072944 @ =gUnk_03001160 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] +_08072910: + ldr r0, _08072948 @ =gUnk_03000BF0 + ldrb r1, [r0, #0xf] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _0807292C + cmp r5, #0 + beq _08072928 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] +_08072928: + bl sub_080791D0 +_0807292C: + ldr r0, _08072940 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + bne _0807293C + bl sub_0807A1B8 +_0807293C: + pop {r4, r5, pc} + .align 2, 0 +_08072940: .4byte gUnk_03003F80 +_08072944: .4byte gUnk_03001160 +_08072948: .4byte gUnk_03000BF0 + + thumb_func_start sub_0807294C +sub_0807294C: @ 0x0807294C + push {lr} + ldr r1, _08072968 @ =gUnk_03003F80 + adds r1, #0xa8 + movs r2, #0x17 + strb r2, [r1] + ldr r2, _0807296C @ =gUnk_0811BB98 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08072968: .4byte gUnk_03003F80 +_0807296C: .4byte gUnk_0811BB98 + + thumb_func_start sub_08072970 +sub_08072970: @ 0x08072970 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _08072A4C + movs r7, #1 + strb r7, [r5, #0xd] + ldrh r2, [r5, #0x2e] + movs r1, #0x10 + rsbs r1, r1, #0 + adds r0, r1, #0 + ands r0, r2 + movs r2, #8 + orrs r0, r2 + strh r0, [r5, #0x2e] + ldrh r0, [r5, #0x32] + ands r1, r0 + movs r0, #0xa + movs r3, #0 + orrs r1, r0 + strh r1, [r5, #0x32] + ldrb r1, [r5, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + movs r1, #0x39 + rsbs r1, r1, #0 + ands r0, r1 + strb r0, [r2] + strb r3, [r5, #0xe] + ldr r2, _080729D8 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #0xd + orrs r0, r1 + str r0, [r2, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _080729DC + movs r0, #0x95 + lsls r0, r0, #4 + strh r0, [r2, #8] + adds r6, r5, #0 + adds r6, #0x38 + b _08072A14 + .align 2, 0 +_080729D8: .4byte gUnk_03003F80 +_080729DC: + ldr r0, _08072A50 @ =0x0000061C + strh r0, [r2, #8] + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r2, _08072A54 @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r4, #0x32 + ldrsh r1, [r5, r4] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + adds r4, r5, #0 + adds r4, #0x38 + ldrb r1, [r4] + bl sub_080001DA + ldr r1, _08072A58 @ =0x00004020 + adds r6, r4, #0 + cmp r0, r1 + bne _08072A14 + strb r7, [r5, #0xe] +_08072A14: + ldr r0, _08072A5C @ =0x00004070 + movs r7, #0x2e + ldrsh r1, [r5, r7] + ldr r3, _08072A54 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r7, #0x32 + ldrsh r2, [r5, r7] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + ldrb r2, [r6] + bl sub_0800015E + bl sub_08077B2C + adds r0, r5, #0 + bl sub_08072A60 + movs r0, #0x81 + bl sub_080A3268 +_08072A4C: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08072A50: .4byte 0x0000061C +_08072A54: .4byte gUnk_03000BF0 +_08072A58: .4byte 0x00004020 +_08072A5C: .4byte 0x00004070 + + thumb_func_start sub_08072A60 +sub_08072A60: @ 0x08072A60 + push {lr} + adds r2, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08072AC4 + ldrb r0, [r2, #0xe] + cmp r0, #1 + bne _08072A9C + movs r0, #3 + strb r0, [r2, #0xd] + movs r0, #0x28 + strb r0, [r2, #0xe] + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0x61 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + ldr r1, _08072A94 @ =gUnk_03003F80 + ldr r0, _08072A98 @ =0x00000624 + strh r0, [r1, #8] + b _08072ACA + .align 2, 0 +_08072A94: .4byte gUnk_03003F80 +_08072A98: .4byte 0x00000624 +_08072A9C: + movs r0, #2 + strb r0, [r2, #0xd] + ldr r2, _08072AB4 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _08072ABC + ldr r0, _08072AB8 @ =0x00000954 + strh r0, [r2, #8] + b _08072ACA + .align 2, 0 +_08072AB4: .4byte gUnk_03003F80 +_08072AB8: .4byte 0x00000954 +_08072ABC: + movs r0, #0xc4 + lsls r0, r0, #3 + strh r0, [r2, #8] + b _08072ACA +_08072AC4: + adds r0, r2, #0 + bl sub_080042B8 +_08072ACA: + pop {pc} + + thumb_func_start sub_08072ACC +sub_08072ACC: @ 0x08072ACC + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08072AE0 @ =gUnk_03003F80 + ldrb r3, [r5, #0xd] + lsls r2, r3, #0x18 + lsrs r0, r2, #0x18 + cmp r0, #0xff + bne _08072AE4 + movs r0, #0 + b _08072B56 + .align 2, 0 +_08072AE0: .4byte gUnk_03003F80 +_08072AE4: + ldrb r1, [r4, #0xf] + cmp r1, #7 + bls _08072B50 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + strb r3, [r4, #0x15] + movs r0, #0xd0 + lsls r0, r0, #9 + str r0, [r4, #0x20] + movs r0, #0x78 + strh r0, [r4, #0x24] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0x80 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + movs r1, #0x39 + rsbs r1, r1, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x41 + strb r0, [r5, #2] + bl sub_0807921C + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _08072B4C @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r5, #0x32 + ldrsh r1, [r4, r5] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_0807BA8C + b _08072B58 + .align 2, 0 +_08072B4C: .4byte gUnk_03000BF0 +_08072B50: + lsrs r0, r2, #0x1a + strb r0, [r4, #0x14] + adds r0, r1, #1 +_08072B56: + strb r0, [r4, #0xf] +_08072B58: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08072B5C +sub_08072B5C: @ 0x08072B5C + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xe] + movs r1, #0x28 + subs r1, r1, r0 + asrs r1, r1, #4 + adds r1, #1 + adds r0, r5, #0 + bl sub_080042BA + adds r0, r5, #0 + bl sub_0806F948 + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _08072B82 + subs r0, #1 + strb r0, [r5, #0xe] + b _08072C40 +_08072B82: + ldr r0, _08072C04 @ =0x00004021 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08072C08 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + ldrb r0, [r5, #0x14] + lsls r0, r0, #2 + strb r0, [r5, #0x15] + movs r0, #1 + bl sub_0807A2F8 + adds r4, r0, #0 + cmp r4, #0 + bne _08072C10 + ldrb r0, [r5, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x40 + strh r0, [r5, #0x24] + movs r0, #0xe4 + lsls r0, r0, #0xa + str r0, [r5, #0x20] + ldr r0, [r5, #0x34] + subs r0, #1 + str r0, [r5, #0x34] + ldr r1, _08072C0C @ =gUnk_03003F80 + movs r0, #0x41 + strb r0, [r1, #2] + movs r2, #0xc + rsbs r2, r2, #0 + adds r0, r5, #0 + movs r1, #0 + bl sub_0806F854 + bl sub_0807921C + b _08072C40 + .align 2, 0 +_08072C04: .4byte 0x00004021 +_08072C08: .4byte gUnk_03000BF0 +_08072C0C: .4byte gUnk_03003F80 +_08072C10: + bl sub_08052620 + cmp r0, #0 + bne _08072C1E + adds r0, r5, #0 + bl sub_08004542 +_08072C1E: + ldrb r0, [r5, #0xd] + adds r0, #1 + strb r0, [r5, #0xd] + lsls r4, r4, #4 + subs r4, #4 + lsls r4, r4, #0xc + str r4, [r5, #0x20] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r5, #0x24] + ldr r1, _08072C44 @ =gUnk_03003F80 + movs r0, #0x81 + lsls r0, r0, #4 + strh r0, [r1, #8] + movs r0, #0x7c + bl sub_080A3268 +_08072C40: + pop {r4, r5, r6, pc} + .align 2, 0 +_08072C44: .4byte gUnk_03003F80 + + thumb_func_start sub_08072C48 +sub_08072C48: @ 0x08072C48 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0806F69C + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08072C98 + adds r0, r4, #0 + movs r1, #7 + bl sub_08008790 + ldr r4, _08072C90 @ =gUnk_03003F80 + ldrb r0, [r4, #0x14] + cmp r0, #0 + beq _08072C94 + bl sub_08008B22 + cmp r0, #0 + beq _08072C98 + movs r0, #7 + strb r0, [r4, #0x11] + ldr r0, [r4, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08072C98 + bl sub_080791BC + b _08072C98 + .align 2, 0 +_08072C90: .4byte gUnk_03003F80 +_08072C94: + bl sub_0807921C +_08072C98: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08072C9C +sub_08072C9C: @ 0x08072C9C + push {lr} + ldr r1, _08072CB8 @ =gUnk_03003F80 + adds r1, #0xa8 + movs r2, #0x11 + strb r2, [r1] + ldr r2, _08072CBC @ =gUnk_0811BBAC + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08072CB8: .4byte gUnk_03003F80 +_08072CBC: .4byte gUnk_0811BBAC + + thumb_func_start sub_08072CC0 +sub_08072CC0: @ 0x08072CC0 + movs r1, #1 + strb r1, [r0, #0xd] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + ldr r3, _08072CF4 @ =gUnk_03003F80 + adds r1, r3, #0 + adds r1, #0x3a + ldrb r1, [r1] + lsrs r1, r1, #2 + adds r1, #1 + strb r1, [r0, #0xf] + adds r1, r3, #0 + adds r1, #0x39 + ldrb r1, [r1] + strb r1, [r0, #0x15] + movs r2, #0 + movs r1, #0x80 + lsls r1, r1, #3 + strh r1, [r0, #0x24] + ldr r0, _08072CF8 @ =0x00000524 + strh r0, [r3, #8] + strb r2, [r3, #5] + bx lr + .align 2, 0 +_08072CF4: .4byte gUnk_03003F80 +_08072CF8: .4byte 0x00000524 + + thumb_func_start sub_08072CFC +sub_08072CFC: @ 0x08072CFC + push {r4, lr} + adds r4, r0, #0 + movs r1, #2 + bl sub_080042BA + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _08072D1C + adds r0, r4, #0 + bl sub_0806F69C + b _08072D4E +_08072D1C: + movs r0, #2 + strb r0, [r4, #0xd] + ldr r2, _08072D50 @ =gUnk_03003F80 + adds r1, r2, #0 + adds r1, #0x38 + ldrb r0, [r1] + cmp r0, #7 + bhi _08072D30 + movs r0, #8 + strb r0, [r1] +_08072D30: + ldrb r0, [r1] + lsls r0, r0, #0xc + str r0, [r4, #0x20] + movs r1, #0 + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + movs r0, #0x81 + lsls r0, r0, #4 + strh r0, [r2, #8] + movs r0, #5 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + bl sub_08077B2C +_08072D4E: + pop {r4, pc} + .align 2, 0 +_08072D50: .4byte gUnk_03003F80 + + thumb_func_start sub_08072D54 +sub_08072D54: @ 0x08072D54 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_080042B8 + movs r2, #0xc + rsbs r2, r2, #0 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806F854 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08072D7A + adds r0, r4, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + b _08072E80 +_08072D7A: + adds r0, r4, #0 + bl sub_0806F730 + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002B0 + adds r2, r0, #0 + ldrb r5, [r4, #0xf] + cmp r5, #1 + beq _08072DD0 + cmp r5, #1 + bgt _08072D9C + cmp r5, #0 + beq _08072DA6 + b _08072E6C +_08072D9C: + cmp r5, #2 + beq _08072DFA + cmp r5, #3 + beq _08072E30 + b _08072E6C +_08072DA6: + ldr r1, _08072DC8 @ =gUnk_0811BBD4 + ldr r0, _08072DCC @ =gUnk_03001160 + ldrb r0, [r0, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r2, #0 + bl sub_08007DD6 + cmp r0, #0 + beq _08072E6C + movs r0, #1 + strb r0, [r4, #0xe] + strb r0, [r4, #0xf] + b _08072E6C + .align 2, 0 +_08072DC8: .4byte gUnk_0811BBD4 +_08072DCC: .4byte gUnk_03001160 +_08072DD0: + ldr r1, _08072DEC @ =gUnk_0811BBD4 + ldr r0, _08072DF0 @ =gUnk_03001160 + ldrb r0, [r0, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r2, #0 + bl sub_08007DD6 + cmp r0, #0 + beq _08072DF4 + strb r5, [r4, #0xe] + b _08072E6C + .align 2, 0 +_08072DEC: .4byte gUnk_0811BBD4 +_08072DF0: .4byte gUnk_03001160 +_08072DF4: + movs r0, #2 + strb r0, [r4, #0xf] + b _08072E6C +_08072DFA: + ldrb r0, [r4, #0x14] + movs r5, #4 + eors r0, r5 + strb r0, [r4, #0x14] + ldr r1, _08072E28 @ =gUnk_0811BBD4 + ldr r0, _08072E2C @ =gUnk_03001160 + ldrb r0, [r0, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r2, #0 + bl sub_08007DD6 + cmp r0, #0 + beq _08072E22 + movs r0, #1 + strb r0, [r4, #0xe] + movs r0, #3 + strb r0, [r4, #0xf] +_08072E22: + ldrb r0, [r4, #0x14] + eors r0, r5 + b _08072E6A + .align 2, 0 +_08072E28: .4byte gUnk_0811BBD4 +_08072E2C: .4byte gUnk_03001160 +_08072E30: + ldrb r0, [r4, #0x14] + movs r1, #4 + eors r0, r1 + strb r0, [r4, #0x14] + ldr r1, _08072E58 @ =gUnk_0811BBD4 + ldr r0, _08072E5C @ =gUnk_03001160 + ldrb r0, [r0, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r2, #0 + bl sub_08007DD6 + cmp r0, #0 + beq _08072E60 + movs r0, #1 + strb r0, [r4, #0xe] + b _08072E64 + .align 2, 0 +_08072E58: .4byte gUnk_0811BBD4 +_08072E5C: .4byte gUnk_03001160 +_08072E60: + movs r0, #4 + strb r0, [r4, #0xf] +_08072E64: + ldrb r0, [r4, #0x14] + movs r1, #4 + eors r0, r1 +_08072E6A: + strb r0, [r4, #0x14] +_08072E6C: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08072E7A + adds r0, r4, #0 + bl sub_0806F69C + b _08072E7E +_08072E7A: + bl sub_08079E08 +_08072E7E: + movs r0, #0 +_08072E80: + strb r0, [r4, #0xe] + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08072F10 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #1 + bne _08072EAA + adds r0, r4, #0 + bl sub_0800455E + b _08072EB0 +_08072EAA: + adds r0, r4, #0 + bl sub_08004542 +_08072EB0: + adds r0, r4, #0 + movs r1, #7 + bl sub_08008790 + ldr r5, _08072EDC @ =gUnk_03003F80 + ldrb r0, [r5, #0x14] + cmp r0, #0 + beq _08072EE0 + bl sub_08008B22 + cmp r0, #0 + beq _08072F10 + movs r0, #7 + strb r0, [r5, #0x11] + ldr r0, [r5, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08072F10 + bl sub_080791BC + b _08072F10 + .align 2, 0 +_08072EDC: .4byte gUnk_03003F80 +_08072EE0: + ldr r0, [r5, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _08072EF4 + ldr r0, _08072EF0 @ =0x00000424 + b _08072EF8 + .align 2, 0 +_08072EF0: .4byte 0x00000424 +_08072EF4: + movs r0, #0x82 + lsls r0, r0, #4 +_08072EF8: + strh r0, [r5, #8] + movs r1, #0 + movs r0, #6 + strb r0, [r4, #0xe] + movs r0, #3 + strb r0, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x42 + strb r1, [r0] + movs r0, #0x7d + bl sub_080A3268 +_08072F10: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08072F14 +sub_08072F14: @ 0x08072F14 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _08072F2C + bl sub_0807921C + b _08072F32 +_08072F2C: + adds r0, r1, #0 + bl sub_080042B8 +_08072F32: + pop {pc} + + thumb_func_start sub_08072F34 +sub_08072F34: @ 0x08072F34 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_08078EFC + cmp r0, #0 + bne _08072F86 + ldr r6, _08072F88 @ =gUnk_03003F80 + adds r1, r6, #0 + adds r1, #0xa8 + movs r0, #0x18 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0 + movs r2, #0 + bl sub_0807A1E8 + strb r0, [r6, #0x12] + ldr r1, _08072F8C @ =gUnk_0811BBE4 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r5, r4, #0 + adds r5, #0x42 + ldrb r0, [r5] + cmp r0, #0 + beq _08072F86 + bl sub_080792D8 + ldrb r1, [r5] + cmp r1, #0 + bne _08072F86 + movs r0, #0x1d + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + strh r1, [r4, #0x30] + ldr r0, _08072F90 @ =0x000002CF + strh r0, [r6, #8] +_08072F86: + pop {r4, r5, r6, pc} + .align 2, 0 +_08072F88: .4byte gUnk_03003F80 +_08072F8C: .4byte gUnk_0811BBE4 +_08072F90: .4byte 0x000002CF + + thumb_func_start sub_08072F94 +sub_08072F94: @ 0x08072F94 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08072FB4 @ =gUnk_03003F80 + ldrb r1, [r0, #0x12] + adds r3, r0, #0 + cmp r1, #0x1e + beq _08072FB8 + cmp r1, #0x1e + blt _08072FAE + cmp r1, #0x2c + bgt _08072FAE + cmp r1, #0x2a + bge _08072FB8 +_08072FAE: + bl sub_0807921C + b _0807308C + .align 2, 0 +_08072FB4: .4byte gUnk_03003F80 +_08072FB8: + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r2] + adds r2, r3, #0 + ldrb r1, [r2, #0xd] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08073072 + strb r1, [r4, #0x15] + ldrb r0, [r2, #0xd] + cmp r0, #8 + beq _08072FDE + cmp r0, #0x18 + bne _08073008 +_08072FDE: + ldrb r0, [r2, #0x12] + cmp r0, #0x1e + beq _0807308C + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08072FF8 + movs r0, #0xb5 + lsls r0, r0, #2 + b _08072FFA +_08072FF8: + ldr r0, _08073004 @ =0x000002D5 +_08072FFA: + strh r0, [r2, #8] + adds r0, r4, #0 + bl sub_08073094 + b _0807306A + .align 2, 0 +_08073004: .4byte 0x000002D5 +_08073008: + ldrb r0, [r2, #0x12] + cmp r0, #0x1e + bne _08073020 + movs r0, #7 + ands r0, r1 + cmp r0, #0 + beq _08073020 + adds r0, r1, #0 + adds r0, #8 + movs r1, #0x10 + ands r0, r1 + strb r0, [r4, #0x15] +_08073020: + ldrb r1, [r4, #0x15] + movs r2, #0x10 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _0807304C + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _08073044 + ldr r0, _08073040 @ =0x000002D1 + b _08073068 + .align 2, 0 +_08073040: .4byte 0x000002D1 +_08073044: + ldr r0, _08073048 @ =0x000002D2 + b _08073068 + .align 2, 0 +_08073048: .4byte 0x000002D2 +_0807304C: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _08073064 + ldr r0, _08073060 @ =0x000002CF + b _08073068 + .align 2, 0 +_08073060: .4byte 0x000002CF +_08073064: + movs r0, #0xb4 + lsls r0, r0, #2 +_08073068: + strh r0, [r3, #8] +_0807306A: + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + b _0807308C +_08073072: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08073088 + movs r0, #0xb5 + lsls r0, r0, #2 + strh r0, [r2, #8] + b _0807308C +_08073088: + ldr r0, _08073090 @ =0x000002D5 + strh r0, [r3, #8] +_0807308C: + pop {r4, pc} + .align 2, 0 +_08073090: .4byte 0x000002D5 + + thumb_func_start sub_08073094 +sub_08073094: @ 0x08073094 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldr r2, _080730FC @ =gUnk_0811BBEC + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0xf + ands r0, r1 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + strh r0, [r4, #0x24] + bl sub_08079E08 + bl sub_08019840 + cmp r0, #0 + bne _080731A4 + ldr r0, _08073100 @ =gUnk_03003F80 + ldrb r1, [r0, #6] + movs r2, #0x80 + eors r1, r2 + strb r1, [r0, #6] + ldrb r0, [r0, #0x12] + cmp r0, #0x2a + beq _080730DE + cmp r0, #0x2c + beq _080730DE + bl sub_0807A1B8 +_080730DE: + bl sub_08078EFC + cmp r0, #0 + bne _080731A4 + ldr r1, _08073100 @ =gUnk_03003F80 + ldrb r0, [r1, #0x12] + subs r0, #0x19 + adds r2, r1, #0 + cmp r0, #0x13 + bhi _08073178 + lsls r0, r0, #2 + ldr r1, _08073104 @ =_08073108 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080730FC: .4byte gUnk_0811BBEC +_08073100: .4byte gUnk_03003F80 +_08073104: .4byte _08073108 +_08073108: @ jump table + .4byte _0807316C @ case 0 + .4byte _08073178 @ case 1 + .4byte _08073178 @ case 2 + .4byte _08073178 @ case 3 + .4byte _08073178 @ case 4 + .4byte _0807317E @ case 5 + .4byte _08073178 @ case 6 + .4byte _08073178 @ case 7 + .4byte _08073178 @ case 8 + .4byte _08073178 @ case 9 + .4byte _08073178 @ case 10 + .4byte _08073178 @ case 11 + .4byte _08073178 @ case 12 + .4byte _08073178 @ case 13 + .4byte _08073178 @ case 14 + .4byte _08073178 @ case 15 + .4byte _08073178 @ case 16 + .4byte _08073158 @ case 17 + .4byte _0807317E @ case 18 + .4byte _08073158 @ case 19 +_08073158: + adds r1, r4, #0 + adds r1, #0x42 + movs r0, #0 + strb r0, [r1] + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x16 + orrs r0, r1 + str r0, [r2, #0x30] + b _0807317E +_0807316C: + adds r0, r4, #0 + bl sub_08074808 + bl sub_080791D0 + b _080731A4 +_08073178: + bl sub_0807921C + b _080731A4 +_0807317E: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080731A4 + bl sub_0807A1B8 + bl sub_08078EFC + cmp r0, #0 + bne _080731A4 + ldrb r0, [r4, #0xd] + subs r0, #1 + strb r0, [r4, #0xd] +_080731A4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080731A8 +sub_080731A8: @ 0x080731A8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080731D0 @ =gUnk_03003F80 + adds r0, #0xa8 + movs r1, #0x1c + strb r1, [r0] + movs r0, #0 + movs r1, #8 + bl sub_0805E4E0 + ldr r1, _080731D4 @ =gUnk_0811BBF8 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080731D0: .4byte gUnk_03003F80 +_080731D4: .4byte gUnk_0811BBF8 + + thumb_func_start sub_080731D8 +sub_080731D8: @ 0x080731D8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + movs r2, #0 + strb r0, [r4, #0x10] + movs r1, #0 + movs r0, #0x40 + strh r0, [r4, #0x24] + strb r1, [r4, #0x14] + ldrh r1, [r4, #0x2e] + movs r5, #0x10 + rsbs r5, r5, #0 + adds r0, r5, #0 + ands r0, r1 + movs r7, #8 + orrs r0, r7 + strh r0, [r4, #0x2e] + strh r2, [r4, #0x2c] + ldr r6, _08073214 @ =gUnk_03003F80 + adds r0, r6, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #0 + bne _08073218 + movs r0, #1 + strb r0, [r4, #0xd] + b _0807329A + .align 2, 0 +_08073214: .4byte gUnk_03003F80 +_08073218: + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #3 + strb r0, [r4, #0xd] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x7e + strh r0, [r1] + ldrh r0, [r4, #0x32] + subs r0, #0x10 + strh r0, [r4, #0x32] + adds r0, r4, #0 + movs r1, #0x70 + movs r2, #1 + movs r3, #0 + bl sub_080A2988 + str r0, [r4, #0x54] + adds r0, r6, #0 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #7 + bne _08073270 + ldrh r1, [r4, #0x32] + adds r0, r5, #0 + ands r0, r1 + adds r0, #8 + strh r0, [r4, #0x32] + ldrh r1, [r4, #0x2e] + adds r0, r5, #0 + ands r0, r1 + strh r0, [r4, #0x2e] + strb r7, [r4, #0x15] + movs r0, #2 + strb r0, [r4, #0x14] + ldr r0, _0807326C @ =0x00000187 + bl sub_080A3268 + b _08073294 + .align 2, 0 +_0807326C: .4byte 0x00000187 +_08073270: + ldrh r1, [r4, #0x32] + adds r0, r5, #0 + ands r0, r1 + adds r0, #2 + strh r0, [r4, #0x32] + ldrh r1, [r4, #0x2e] + adds r0, r5, #0 + ands r0, r1 + adds r0, #0xf + strh r0, [r4, #0x2e] + movs r0, #0x18 + strb r0, [r4, #0x15] + movs r0, #6 + strb r0, [r4, #0x14] + movs r0, #0xc4 + lsls r0, r0, #1 + bl sub_080A3268 +_08073294: + adds r0, r4, #0 + bl sub_08066DE4 +_0807329A: + ldr r2, _080732AC @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _080732B4 + ldr r0, _080732B0 @ =0x00000404 + b _080732B8 + .align 2, 0 +_080732AC: .4byte gUnk_03003F80 +_080732B0: .4byte 0x00000404 +_080732B4: + movs r0, #0x82 + lsls r0, r0, #1 +_080732B8: + strh r0, [r2, #8] + ldr r1, _080732CC @ =gUnk_03000BF0 + movs r0, #0 + str r0, [r1, #0x30] + bl sub_0807A108 + bl sub_08077B2C + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080732CC: .4byte gUnk_03000BF0 + + thumb_func_start sub_080732D0 +sub_080732D0: @ 0x080732D0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_080002B8 + cmp r0, #0x28 + beq _080732EE + movs r0, #0 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F69C + b _08073328 +_080732EE: + ldrb r0, [r4, #0xd] + adds r0, #1 + movs r1, #0 + strb r0, [r4, #0xd] + strh r1, [r4, #0x30] + adds r0, r4, #0 + movs r1, #0x70 + movs r2, #1 + movs r3, #0 + bl sub_080A2988 + ldr r0, _08073318 @ =gUnk_03003F80 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #7 + bne _08073320 + ldr r0, _0807331C @ =0x00000187 + bl sub_080A3268 + b _08073328 + .align 2, 0 +_08073318: .4byte gUnk_03003F80 +_0807331C: .4byte 0x00000187 +_08073320: + movs r0, #0xc4 + lsls r0, r0, #1 + bl sub_080A3268 +_08073328: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0807332C +sub_0807332C: @ 0x0807332C + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldr r0, _08073344 @ =gUnk_03003F80 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #7 + bne _08073348 + movs r0, #0 + b _0807334A + .align 2, 0 +_08073344: .4byte gUnk_03003F80 +_08073348: + movs r0, #0x1c +_0807334A: + strb r0, [r4, #0x15] + ldrh r1, [r4, #0x2e] + movs r0, #0xf + ands r0, r1 + cmp r0, #0xf + beq _08073386 + ldr r0, _08073368 @ =gUnk_03003F80 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #7 + bne _0807336C + movs r0, #2 + strb r0, [r4, #0x14] + movs r0, #4 + b _0807337C + .align 2, 0 +_08073368: .4byte gUnk_03003F80 +_0807336C: + movs r0, #6 + strb r0, [r4, #0x14] + ldrb r0, [r4, #0x15] + cmp r0, #0x18 + bls _0807337E + subs r0, #1 + movs r1, #0x1f + ands r0, r1 +_0807337C: + strb r0, [r4, #0x15] +_0807337E: + adds r0, r4, #0 + bl sub_0806F69C + b _080733B6 +_08073386: + ldr r0, _0807339C @ =gUnk_03003F80 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #0 + beq _080733A4 + ldr r0, _080733A0 @ =gUnk_03000BF0 + str r4, [r0, #0x30] + bl sub_080791BC + b _080733B6 + .align 2, 0 +_0807339C: .4byte gUnk_03003F80 +_080733A0: .4byte gUnk_03000BF0 +_080733A4: + ldr r0, _080733B8 @ =gUnk_03001000 + movs r1, #3 + strb r1, [r0, #4] + movs r1, #1 + strb r1, [r0, #0xb] + movs r0, #5 + movs r1, #8 + bl sub_08050054 +_080733B6: + pop {r4, pc} + .align 2, 0 +_080733B8: .4byte gUnk_03001000 + + thumb_func_start sub_080733BC +sub_080733BC: @ 0x080733BC + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldrh r1, [r4, #0x2e] + movs r0, #0xf + ands r0, r1 + cmp r0, #8 + bne _080733FC + movs r0, #0x10 + strb r0, [r4, #0x15] + movs r0, #4 + strb r0, [r4, #0x14] + ldr r0, [r4, #0x54] + cmp r0, #0 + beq _080733FC + bl sub_0805E7BC + movs r0, #0 + str r0, [r4, #0x54] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #1 + bne _080733F6 + adds r0, r4, #0 + bl sub_0807AABC + b _080733FC +_080733F6: + adds r0, r4, #0 + bl sub_0807AA80 +_080733FC: + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + adds r0, #0x7e + ldrh r1, [r0] + movs r2, #0x32 + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _08073418 + ldr r0, _0807341C @ =gUnk_03000BF0 + str r4, [r0, #0x30] + bl sub_0807921C +_08073418: + pop {r4, pc} + .align 2, 0 +_0807341C: .4byte gUnk_03000BF0 + + thumb_func_start sub_08073420 +sub_08073420: @ 0x08073420 + push {r4, lr} + adds r4, r0, #0 + bl sub_08078EFC + cmp r0, #0 + bne _0807345E + bl sub_0807A1B8 + ldrb r2, [r4, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x19] + ldr r0, _08073460 @ =gUnk_03003F80 + adds r0, #0xa8 + movs r1, #8 + strb r1, [r0] + ldr r1, _08073464 @ =gUnk_0811BC08 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 +_0807345E: + pop {r4, pc} + .align 2, 0 +_08073460: .4byte gUnk_03003F80 +_08073464: .4byte gUnk_0811BC08 + + thumb_func_start sub_08073468 +sub_08073468: @ 0x08073468 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _080734CC @ =gUnk_03003F80 + movs r1, #0 + movs r0, #0xe0 + lsls r0, r0, #3 + strh r0, [r5, #8] + strb r1, [r5, #2] + ldr r0, _080734D0 @ =0xFFFF0000 + str r0, [r4, #0x20] + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + movs r0, #0xf0 + lsls r0, r0, #1 + str r0, [r4, #0x7c] + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] + ldr r1, [r5, #0x30] + movs r2, #0x80 + lsls r2, r2, #0x11 + adds r0, r1, #0 + ands r0, r2 + cmp r0, #0 + bne _080734AC + orrs r1, r2 + str r1, [r5, #0x30] + adds r0, r4, #0 + movs r1, #0x61 + movs r2, #0 + movs r3, #0 + bl sub_080A2988 +_080734AC: + bl sub_08077B2C + ldr r0, [r4, #0x20] + cmp r0, #0 + bgt _080734C0 + adds r0, r5, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #1 + bne _080734C8 +_080734C0: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] +_080734C8: + pop {r4, r5, pc} + .align 2, 0 +_080734CC: .4byte gUnk_03003F80 +_080734D0: .4byte 0xFFFF0000 + + thumb_func_start sub_080734D4 +sub_080734D4: @ 0x080734D4 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080734FC @ =0xFFFFF000 + bl sub_08003FC4 + ldr r0, [r4, #0x20] + cmp r0, #0 + bgt _080734EE + ldr r0, _08073500 @ =gUnk_03003F80 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #1 + bne _080734FA +_080734EE: + movs r0, #0x92 + lsls r0, r0, #0xb + str r0, [r4, #0x20] + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] +_080734FA: + pop {r4, pc} + .align 2, 0 +_080734FC: .4byte 0xFFFFF000 +_08073500: .4byte gUnk_03003F80 + + thumb_func_start sub_08073504 +sub_08073504: @ 0x08073504 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x20] + movs r1, #0x80 + lsls r1, r1, #7 + cmp r0, #0 + bge _08073516 + movs r1, #0x80 + lsls r1, r1, #4 +_08073516: + adds r0, r4, #0 + bl sub_08003FC4 + ldr r0, [r4, #0x20] + cmp r0, #0 + bge _08073576 + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #0x20 + rsbs r0, r0, #0 + cmp r1, r0 + ble _08073576 + ldrb r0, [r4, #0xd] + adds r0, #1 + movs r2, #0 + strb r0, [r4, #0xd] + adds r1, r4, #0 + adds r1, #0x80 + ldrb r0, [r4, #0x15] + lsls r0, r0, #8 + str r0, [r1] + adds r0, r4, #0 + adds r0, #0x87 + strb r2, [r0] + subs r0, #1 + strb r2, [r0] + ldr r0, _08073580 @ =gUnk_03003F80 + movs r1, #0xe1 + lsls r1, r1, #3 + strh r1, [r0, #8] + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #1 + bne _08073576 + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #6 + strb r0, [r4, #0xd] + movs r0, #0x10 + strh r0, [r4, #0x24] + movs r0, #0x1e + strb r0, [r4, #0xe] + movs r0, #0xa9 + lsls r0, r0, #1 + bl sub_080A3268 +_08073576: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 +_08073580: .4byte gUnk_03003F80 + + thumb_func_start sub_08073584 +sub_08073584: @ 0x08073584 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r2, _080735DC @ =gUnk_03003F80 + adds r0, r2, #0 + adds r0, #0x92 + ldrh r1, [r0] + movs r5, #0x80 + adds r0, r5, #0 + ands r0, r1 + adds r6, r2, #0 + cmp r0, #0 + bne _080735C0 + adds r0, r4, #0 + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bgt _080735C0 + adds r0, r6, #0 + adds r0, #0x3c + ldrb r0, [r0] + cmp r0, #0 + bne _080735C0 + ldr r0, [r6, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x11 + ands r0, r1 + cmp r0, #0 + bne _080735E0 +_080735C0: + ldrb r0, [r6, #2] + movs r1, #0x40 + orrs r1, r0 + strb r1, [r6, #2] + bl sub_0807921C + adds r0, r4, #0 + bl sub_08073904 + movs r0, #0xe6 + lsls r0, r0, #3 + strh r0, [r6, #8] + b _08073794 + .align 2, 0 +_080735DC: .4byte gUnk_03003F80 +_080735E0: + ldr r0, _0807360C @ =gUnk_0200AF00 + adds r0, #0x2f + movs r1, #1 + strb r1, [r0] + movs r0, #0 + bl sub_0807A2F8 + cmp r0, #0 + beq _08073610 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x14] + movs r0, #6 + ands r0, r1 + lsls r0, r0, #2 + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + b _08073794 + .align 2, 0 +_0807360C: .4byte gUnk_0200AF00 +_08073610: + ldr r0, _08073620 @ =gUnk_02033A90 + ldrb r0, [r0, #1] + cmp r0, #0x10 + bne _08073624 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + b _08073626 + .align 2, 0 +_08073620: .4byte gUnk_02033A90 +_08073624: + strh r5, [r4, #0x24] +_08073626: + ldr r3, _08073650 @ =gUnk_03003F80 + ldrb r1, [r3, #0xd] + movs r0, #0x80 + ands r0, r1 + adds r2, r4, #0 + adds r2, #0x80 + cmp r0, #0 + bne _0807365A + ldrb r0, [r4, #0x15] + cmp r0, r1 + beq _0807365A + ldrb r1, [r3, #0xd] + subs r0, r0, r1 + movs r1, #0x1f + ands r0, r1 + cmp r0, #0xf + bgt _08073654 + ldr r0, [r2] + subs r0, #0x20 + b _08073658 + .align 2, 0 +_08073650: .4byte gUnk_03003F80 +_08073654: + ldr r0, [r2] + adds r0, #0x20 +_08073658: + str r0, [r2] +_0807365A: + ldr r0, [r2] + lsrs r0, r0, #8 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] + bl sub_08079E08 + ldrb r2, [r4, #0x14] + lsls r3, r2, #2 + ldrb r1, [r4, #0x15] + cmp r2, #0 + bne _0807367C + adds r3, #8 + movs r0, #0x1f + ands r3, r0 + adds r1, #8 + ands r1, r0 +_0807367C: + subs r0, r3, #7 + cmp r0, r1 + bls _08073686 + subs r3, r2, #2 + b _0807368E +_08073686: + adds r0, r3, #7 + cmp r0, r1 + bhs _08073694 + adds r3, r2, #2 +_0807368E: + movs r0, #7 + ands r3, r0 + b _08073696 +_08073694: + adds r3, r2, #0 +_08073696: + movs r0, #0x87 + adds r0, r0, r4 + mov ip, r0 + ldrb r1, [r4, #0x14] + cmp r3, r1 + beq _080736A8 + movs r0, #0x14 + mov r2, ip + strb r0, [r2] +_080736A8: + strb r3, [r4, #0x14] + movs r5, #0 + ldr r1, _080736E4 @ =gUnk_03003F80 + ldrb r2, [r1, #0xd] + lsrs r3, r2, #2 + mov r6, ip + ldrb r0, [r6] + adds r6, r1, #0 + cmp r0, #0 + beq _080736CA + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + bne _08073736 + ldrb r0, [r4, #0x14] + cmp r0, r3 + beq _08073736 +_080736CA: + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + bne _080736FA + ldrb r2, [r4, #0x14] + cmp r2, r3 + beq _080736FA + movs r0, #4 + eors r0, r3 + cmp r2, r0 + bne _080736E8 + movs r5, #2 + b _080736FA + .align 2, 0 +_080736E4: .4byte gUnk_03003F80 +_080736E8: + movs r0, #6 + ands r0, r3 + adds r0, #2 + movs r1, #7 + ands r0, r1 + movs r5, #3 + cmp r2, r0 + bne _080736FA + movs r5, #1 +_080736FA: + ldr r1, _0807371C @ =gUnk_0811BC28 + lsls r0, r5, #1 + adds r0, r0, r1 + ldrh r0, [r0] + ldrh r1, [r6, #8] + cmp r0, r1 + bne _0807372C + ldr r0, _08073720 @ =gUnk_02033A90 + ldrb r0, [r0, #1] + cmp r0, #0x10 + bne _08073724 + adds r0, r4, #0 + movs r1, #2 + bl sub_080042BA + b _0807372E + .align 2, 0 +_0807371C: .4byte gUnk_0811BC28 +_08073720: .4byte gUnk_02033A90 +_08073724: + adds r0, r4, #0 + bl sub_080042B8 + b _0807372E +_0807372C: + strh r0, [r6, #8] +_0807372E: + adds r0, r4, #0 + adds r0, #0x86 + strb r5, [r0] + b _08073762 +_08073736: + mov r2, ip + ldrb r0, [r2] + subs r0, #1 + strb r0, [r2] + ldr r1, _0807375C @ =gUnk_0811BC30 + adds r0, r4, #0 + adds r0, #0x86 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + ldrh r1, [r6, #8] + cmp r0, r1 + bne _08073760 + adds r0, r4, #0 + bl sub_080042B8 + b _08073762 + .align 2, 0 +_0807375C: .4byte gUnk_0811BC30 +_08073760: + strh r0, [r6, #8] +_08073762: + ldr r0, [r4, #0x7c] + subs r1, r0, #1 + str r1, [r4, #0x7c] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bne _08073784 + ldr r2, _08073780 @ =gUnk_03003F80 + ldrb r1, [r2, #2] + movs r0, #0x40 + orrs r0, r1 + strb r0, [r2, #2] + bl sub_0807921C + b _08073794 + .align 2, 0 +_08073780: .4byte gUnk_03003F80 +_08073784: + adds r0, r1, #0 + movs r1, #0x14 + bl __divsi3 + ldr r2, _08073798 @ =0x0000FFF8 + adds r1, r2, #0 + subs r1, r1, r0 + strh r1, [r4, #0x36] +_08073794: + pop {r4, r5, r6, pc} + .align 2, 0 +_08073798: .4byte 0x0000FFF8 + + thumb_func_start sub_0807379C +sub_0807379C: @ 0x0807379C + push {lr} + adds r2, r0, #0 + ldrh r3, [r2, #0x36] + movs r0, #0x36 + ldrsh r1, [r2, r0] + movs r0, #0x20 + rsbs r0, r0, #0 + cmp r1, r0 + ble _080737B4 + subs r0, r3, #1 + strh r0, [r2, #0x36] + b _080737BA +_080737B4: + ldrb r0, [r2, #0xd] + adds r0, #1 + strb r0, [r2, #0xd] +_080737BA: + pop {pc} + + thumb_func_start sub_080737BC +sub_080737BC: @ 0x080737BC + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0806F69C + ldr r0, [r4, #0x34] + movs r1, #0x98 + lsls r1, r1, #7 + adds r0, r0, r1 + str r0, [r4, #0x34] + ldrb r1, [r4, #0x15] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080737E2 + ldrh r1, [r4, #0x2e] + b _080737E4 +_080737E2: + ldrh r1, [r4, #0x32] +_080737E4: + movs r0, #0xf + ands r0, r1 + cmp r0, #8 + bne _08073804 + adds r0, r4, #0 + bl sub_080002D0 + cmp r0, #0 + bne _08073804 + ldr r2, _08073808 @ =gUnk_03003F80 + ldrb r1, [r2, #2] + movs r0, #0x40 + orrs r0, r1 + strb r0, [r2, #2] + bl sub_0807921C +_08073804: + pop {r4, pc} + .align 2, 0 +_08073808: .4byte gUnk_03003F80 + + thumb_func_start sub_0807380C +sub_0807380C: @ 0x0807380C + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08073854 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0807382A + ldrb r0, [r4, #0x14] + adds r0, #2 + movs r1, #6 + ands r0, r1 + strb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] +_0807382A: + ldr r2, _08073858 @ =gUnk_03003F80 + ldr r1, _0807385C @ =gUnk_0811BC38 + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r2, #8] + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #0x10 + rsbs r0, r0, #0 + cmp r1, r0 + bge _08073860 + movs r1, #0x80 + lsls r1, r1, #2 + adds r0, r4, #0 + bl sub_08003FC4 + b _0807387A + .align 2, 0 +_08073854: .4byte gUnk_030010A0 +_08073858: .4byte gUnk_03003F80 +_0807385C: .4byte gUnk_0811BC38 +_08073860: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0807387A + movs r0, #7 + strb r0, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r4, #0x20] +_0807387A: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08073884 +sub_08073884: @ 0x08073884 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080738DC @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _080738A2 + ldrb r0, [r4, #0x14] + adds r0, #2 + movs r1, #6 + ands r0, r1 + strb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] +_080738A2: + ldr r2, _080738E0 @ =gUnk_03003F80 + ldr r1, _080738E4 @ =gUnk_0811BC40 + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r2, #8] + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080738F0 + adds r1, r2, #0 + adds r1, #0x39 + ldrb r0, [r1] + cmp r0, #0xff + beq _080738EC + adds r1, r0, #0 + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080738E8 @ =gUnk_0813AD88 + adds r0, r0, r1 + bl sub_08080840 + b _080738F0 + .align 2, 0 +_080738DC: .4byte gUnk_030010A0 +_080738E0: .4byte gUnk_03003F80 +_080738E4: .4byte gUnk_0811BC40 +_080738E8: .4byte gUnk_0813AD88 +_080738EC: + bl sub_08052A4C +_080738F0: + ldr r1, _08073900 @ =0xFFFFE800 + adds r0, r4, #0 + bl sub_08003FC4 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 +_08073900: .4byte 0xFFFFE800 + + thumb_func_start sub_08073904 +sub_08073904: @ 0x08073904 + push {lr} + ldr r3, _0807391C @ =gUnk_0811BC48 + ldr r1, _08073920 @ =gUnk_03003F80 + ldrb r2, [r1, #2] + movs r1, #7 + ands r1, r2 + lsls r1, r1, #2 + adds r1, r1, r3 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0807391C: .4byte gUnk_0811BC48 +_08073920: .4byte gUnk_03003F80 + + thumb_func_start sub_08073924 +sub_08073924: @ 0x08073924 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _08073964 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #0xb + ands r0, r1 + cmp r0, #0 + bne _08073962 + movs r1, #0x36 + ldrsh r0, [r4, r1] + movs r1, #0x80 + lsls r1, r1, #8 + ands r0, r1 + cmp r0, #0 + beq _08073962 + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _08073962 + movs r0, #0x40 + strb r0, [r2, #2] + movs r0, #0xff + strb r0, [r2, #0xd] + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r4, #0x15] + bl sub_08077B20 + adds r0, r4, #0 + bl sub_08073968 +_08073962: + pop {r4, pc} + .align 2, 0 +_08073964: .4byte gUnk_03003F80 + + thumb_func_start sub_08073968 +sub_08073968: @ 0x08073968 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _08073998 @ =gUnk_03003F80 + ldrb r1, [r4, #2] + movs r0, #0xc0 + ands r0, r1 + cmp r0, #0 + bne _0807397C + ldrb r0, [r4, #0xd] + strb r0, [r5, #0x15] +_0807397C: + bl sub_08078F24 + ldrb r1, [r4, #5] + ldrb r0, [r4, #0xb] + orrs r0, r1 + cmp r0, #0 + bne _080739D4 + ldr r1, [r4, #0x30] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080739A0 + ldr r0, _0807399C @ =0x0000041C + b _080739BA + .align 2, 0 +_08073998: .4byte gUnk_03003F80 +_0807399C: .4byte 0x0000041C +_080739A0: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080739BC + movs r0, #0x80 + lsls r0, r0, #0x13 + ands r1, r0 + cmp r1, #0 + beq _080739B8 + movs r0, #0x81 + lsls r0, r0, #4 + b _080739BA +_080739B8: + ldr r0, _080739E4 @ =0x0000080C +_080739BA: + strh r0, [r4, #8] +_080739BC: + ldr r0, _080739E8 @ =gUnk_03003F80 + ldrb r1, [r0, #2] + movs r0, #0xc0 + ands r0, r1 + cmp r0, #0 + bne _080739CE + adds r0, r5, #0 + bl sub_0806F948 +_080739CE: + movs r0, #0x7c + bl sub_080A3268 +_080739D4: + ldr r2, _080739E8 @ =gUnk_03003F80 + ldrb r1, [r2, #2] + movs r0, #0xf8 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r2, #2] + pop {r4, r5, pc} + .align 2, 0 +_080739E4: .4byte 0x0000080C +_080739E8: .4byte gUnk_03003F80 + + thumb_func_start sub_080739EC +sub_080739EC: @ 0x080739EC + push {r4, r5, lr} + adds r4, r0, #0 + ldr r1, _08073A14 @ =gUnk_03003F80 + ldrb r2, [r1, #2] + movs r0, #0xc0 + ands r0, r2 + adds r5, r1, #0 + cmp r0, #0 + beq _08073A18 + ldrb r0, [r4, #0x15] + strb r0, [r5, #0xd] + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + beq _08073A0E + movs r0, #0 + strh r0, [r4, #0x2a] +_08073A0E: + movs r2, #0x80 + lsls r2, r2, #6 + b _08073A48 + .align 2, 0 +_08073A14: .4byte gUnk_03003F80 +_08073A18: + movs r2, #0xc + rsbs r2, r2, #0 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806F854 + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08073A38 + ldrb r1, [r5, #2] + movs r0, #8 + orrs r0, r1 + strb r0, [r5, #2] + movs r2, #0x80 + lsls r2, r2, #7 + b _08073A48 +_08073A38: + movs r2, #0x80 + lsls r2, r2, #6 + ldrb r1, [r5, #2] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08073A48 + lsrs r2, r2, #1 +_08073A48: + ldrb r1, [r5, #2] + movs r0, #0xc0 + ands r0, r1 + cmp r0, #0 + bne _08073A7E + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _08073A7E + ldr r0, [r4, #0x20] + cmp r0, #0 + bne _08073A7E + movs r0, #0xa0 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + movs r0, #0xa + strb r0, [r4, #0xe] + movs r0, #0xff + strb r0, [r4, #0x15] + adds r0, r1, #2 + strb r0, [r5, #2] + movs r0, #0xba + lsls r0, r0, #1 + strh r0, [r5, #8] + bl sub_08078F60 + b _08073A90 +_08073A7E: + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08073A90 + adds r0, r4, #0 + bl sub_08073AD4 +_08073A90: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08073A94 +sub_08073A94: @ 0x08073A94 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08073AAE + adds r0, r4, #0 + adds r0, #0x42 + ldrb r0, [r0] + cmp r0, #0 + beq _08073AB4 +_08073AAE: + adds r0, r4, #0 + bl sub_08073B60 +_08073AB4: + ldr r0, _08073ACC @ =gUnk_03001160 + ldr r0, [r0, #0x34] + cmp r0, #0 + beq _08073AC8 + ldr r1, _08073AD0 @ =gUnk_03003F80 + movs r0, #0 + strb r0, [r1, #2] + adds r0, r4, #0 + bl sub_08073924 +_08073AC8: + pop {r4, pc} + .align 2, 0 +_08073ACC: .4byte gUnk_03001160 +_08073AD0: .4byte gUnk_03003F80 + + thumb_func_start sub_08073AD4 +sub_08073AD4: @ 0x08073AD4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r0, #0x38 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08073AFA + ldrb r2, [r4, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x80 + orrs r0, r2 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x19] +_08073AFA: + ldr r6, _08073B48 @ =gUnk_03003F80 + ldrb r5, [r6, #2] + movs r0, #0xc1 + rsbs r0, r0, #0 + ands r5, r0 + ldrb r0, [r4, #0xc] + cmp r0, #0xa + beq _08073B32 + bl sub_0807A2B8 + movs r0, #0 + strb r0, [r6, #2] + bl sub_0807A1B8 + ldrb r0, [r6, #0xc] + cmp r0, #0 + bne _08073B5C + adds r0, r6, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + bne _08073B5C + ldrb r0, [r6, #4] + cmp r0, #0 + beq _08073B32 + adds r0, r4, #0 + bl sub_08073B60 +_08073B32: + ldr r2, _08073B48 @ =gUnk_03003F80 + adds r0, r5, #1 + strb r0, [r2, #2] + ldr r0, [r2, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _08073B50 + ldr r0, _08073B4C @ =0x00000424 + b _08073B54 + .align 2, 0 +_08073B48: .4byte gUnk_03003F80 +_08073B4C: .4byte 0x00000424 +_08073B50: + movs r0, #0x82 + lsls r0, r0, #4 +_08073B54: + strh r0, [r2, #8] + movs r0, #0x7d + bl sub_080A3268 +_08073B5C: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08073B60 +sub_08073B60: @ 0x08073B60 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _08073B88 @ =gUnk_03003F80 + movs r0, #0 + strb r0, [r4, #0x1b] + strb r0, [r4, #4] + strb r0, [r4, #2] + bl sub_08079938 + adds r0, r5, #0 + bl sub_080085B0 + ldr r0, [r4, #0x30] + movs r1, #0x20 + ands r0, r1 + cmp r0, #0 + bne _08073B86 + bl sub_080791BC +_08073B86: + pop {r4, r5, pc} + .align 2, 0 +_08073B88: .4byte gUnk_03003F80 + + thumb_func_start sub_08073B8C +sub_08073B8C: @ 0x08073B8C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08073BCC @ =gUnk_03003F80 + ldrb r0, [r5, #4] + cmp r0, #0 + beq _08073C04 + movs r2, #0xc + rsbs r2, r2, #0 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806F854 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08073BB8 + adds r0, r4, #0 + bl sub_080042B8 +_08073BB8: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08073BD0 + subs r0, #1 + strb r0, [r4, #0xe] + b _08073C28 + .align 2, 0 +_08073BCC: .4byte gUnk_03003F80 +_08073BD0: + movs r1, #0x80 + lsls r1, r1, #7 + adds r0, r4, #0 + bl sub_08003FC4 + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #8 + rsbs r0, r0, #0 + cmp r1, r0 + blt _08073C28 + ldrb r0, [r5, #0x14] + cmp r0, #0 + bne _08073C0C + bl sub_0807A2B8 + cmp r0, #0 + bne _08073BFC + bl sub_08079D48 + cmp r0, #0 + bne _08073C0C +_08073BFC: + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] +_08073C04: + adds r0, r4, #0 + bl sub_08073B60 + b _08073C28 +_08073C0C: + ldr r1, _08073C2C @ =gUnk_03003F80 + ldrb r0, [r1, #2] + adds r0, #1 + strb r0, [r1, #2] + movs r0, #0xf + strb r0, [r4, #0xe] + movs r0, #0x10 + movs r1, #0 + bl sub_08080964 + movs r0, #0xa6 + lsls r0, r0, #1 + bl sub_080A3268 +_08073C28: + pop {r4, r5, pc} + .align 2, 0 +_08073C2C: .4byte gUnk_03003F80 + + thumb_func_start sub_08073C30 +sub_08073C30: @ 0x08073C30 + push {lr} + adds r2, r0, #0 + ldr r0, _08073C54 @ =gUnk_03003F80 + ldrb r0, [r0, #4] + cmp r0, #0 + beq _08073C4A + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08073C58 +_08073C4A: + adds r0, r2, #0 + bl sub_08073B60 + b _08073C66 + .align 2, 0 +_08073C54: .4byte gUnk_03003F80 +_08073C58: + ldrb r0, [r2, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + adds r0, r2, #0 + bl sub_080042B8 +_08073C66: + pop {pc} + + thumb_func_start sub_08073C68 +sub_08073C68: @ 0x08073C68 + push {lr} + ldr r2, _08073C7C @ =gUnk_0811BC60 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08073C7C: .4byte gUnk_0811BC60 + + thumb_func_start sub_08073C80 +sub_08073C80: @ 0x08073C80 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r2, _08073D00 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + orrs r0, r1 + str r0, [r2, #0x30] + movs r5, #0 + ldr r0, _08073D04 @ =0x00000C18 + strh r0, [r2, #8] + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x18 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0x18] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x19] + movs r7, #4 + rsbs r7, r7, #0 + adds r0, r7, #0 + ands r0, r1 + strb r0, [r4, #0x19] + ldr r0, _08073D08 @ =gUnk_0811BC80 + str r0, [r4, #0x48] + strb r5, [r4, #0xe] + movs r6, #2 + strb r6, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x42 + strb r5, [r0] + movs r0, #1 + strb r0, [r4, #0xd] + adds r0, r4, #0 + movs r1, #1 + movs r2, #2 + bl sub_080AE008 + ldr r0, _08073D0C @ =gUnk_03000BF0 + str r4, [r0, #0x30] + bl sub_080809D4 + ldr r1, _08073D10 @ =gUnk_030010A0 + ldrb r0, [r1, #0xf] + cmp r0, #9 + bne _08073D14 + strb r5, [r1, #0xf] + ldrb r1, [r4, #0x18] + adds r0, r7, #0 + ands r0, r1 + strb r0, [r4, #0x18] + strb r6, [r4, #0xd] + b _08073D1E + .align 2, 0 +_08073D00: .4byte gUnk_03003F80 +_08073D04: .4byte 0x00000C18 +_08073D08: .4byte gUnk_0811BC80 +_08073D0C: .4byte gUnk_03000BF0 +_08073D10: .4byte gUnk_030010A0 +_08073D14: + movs r0, #4 + movs r1, #0 + movs r2, #0 + bl sub_080A2960 +_08073D1E: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08073D20 +sub_08073D20: @ 0x08073D20 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + ldr r5, _08073D70 @ =gUnk_03003F80 + movs r0, #0xa8 + adds r0, r0, r5 + mov r8, r0 + movs r0, #0 + mov r1, r8 + strb r0, [r1] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0x39 + ands r0, r1 + movs r1, #0x18 + orrs r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x40 + movs r0, #1 + strb r0, [r1] + bl sub_08078F60 + adds r7, r5, #0 + adds r7, #0x26 + ldrb r0, [r7] + cmp r0, #0 + bne _08073D60 + movs r0, #0xc0 + strh r0, [r4, #0x24] +_08073D60: + bl sub_08079B24 + cmp r0, #0 + bne _08073D74 + adds r0, r4, #0 + bl sub_08079708 + b _08073EFC + .align 2, 0 +_08073D70: .4byte gUnk_03003F80 +_08073D74: + bl sub_08078EFC + adds r6, r0, #0 + cmp r6, #0 + beq _08073D80 + b _08073EFC +_08073D80: + adds r0, r4, #0 + bl sub_08073904 + bl sub_0807A1B8 + ldrb r0, [r5, #2] + cmp r0, #0 + beq _08073D96 + movs r0, #0x14 + mov r1, r8 + strb r0, [r1] +_08073D96: + ldrb r0, [r5, #0x12] + subs r0, #0x18 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _08073DB0 + strb r6, [r7] + adds r2, r4, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 + strb r0, [r2] +_08073DB0: + bl sub_08078EFC + cmp r0, #0 + beq _08073DBA + b _08073EFC +_08073DBA: + ldrb r0, [r4, #0xd] + cmp r0, #2 + bne _08073DC2 + b _08073EFC +_08073DC2: + ldr r0, [r5, #0x30] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + bne _08073E10 + adds r0, r4, #0 + bl sub_080085B0 + bl sub_080792D8 + ldrb r0, [r5, #0xa] + cmp r0, #0 + bne _08073DE6 + bl sub_08079550 + cmp r0, #0 + beq _08073DE6 + b _08073EFC +_08073DE6: + adds r0, r4, #0 + adds r0, #0x42 + ldrb r0, [r0] + cmp r0, #0 + beq _08073DFA + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + strb r0, [r4, #0x15] + b _08073EFC +_08073DFA: + bl sub_080782C0 + cmp r0, #0 + beq _08073E08 + bl sub_08078EFC + b _08073EFC +_08073E08: + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] +_08073E10: + bl sub_08019840 + cmp r0, #0 + bne _08073EFC + adds r0, r4, #0 + bl sub_08077698 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + adds r1, r0, #0 + cmp r1, #0 + bne _08073E32 + ldr r0, _08073E74 @ =gUnk_03003F80 + strb r1, [r0, #2] +_08073E32: + ldr r2, _08073E74 @ =gUnk_03003F80 + ldrb r1, [r2, #7] + movs r3, #0x80 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + bne _08073EFC + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _08073EFC + adds r0, r4, #0 + adds r0, #0x3d + movs r1, #0 + ldrsb r1, [r0, r1] + adds r6, r0, #0 + cmp r1, #8 + bgt _08073E90 + adds r0, r2, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + beq _08073E78 + adds r1, r2, #0 + adds r1, #0xa8 + movs r0, #7 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0807ACCC + bl sub_08079E08 + b _08073E90 + .align 2, 0 +_08073E74: .4byte gUnk_03003F80 +_08073E78: + ldrb r1, [r2, #0xd] + strb r1, [r4, #0x15] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + bne _08073E90 + adds r1, r2, #0 + adds r1, #0xa8 + movs r0, #1 + strb r0, [r1] + bl sub_08079E08 +_08073E90: + ldr r5, _08073EF0 @ =gUnk_03003F80 + ldrb r0, [r5, #0xb] + cmp r0, #0 + bne _08073E9E + adds r0, r4, #0 + bl sub_0806F948 +_08073E9E: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0807B068 + movs r0, #0x10 + bl sub_080793E4 + cmp r0, #0 + beq _08073EDC + movs r0, #0x14 + strb r0, [r6] + adds r1, r4, #0 + adds r1, #0x42 + movs r0, #4 + strb r0, [r1] + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 + movs r1, #0x10 + eors r0, r1 + adds r1, r4, #0 + adds r1, #0x3e + strb r0, [r1] + movs r0, #2 + rsbs r0, r0, #0 + bl sub_080526A0 + movs r0, #0x7a + bl sub_080A3268 +_08073EDC: + ldr r0, [r5, #0x30] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + bne _08073EF4 + adds r0, r4, #0 + bl sub_08008AC6 + b _08073EFC + .align 2, 0 +_08073EF0: .4byte gUnk_03003F80 +_08073EF4: + adds r1, r5, #0 + adds r1, #0xa8 + movs r0, #0xd + strb r0, [r1] +_08073EFC: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08073F04 +sub_08073F04: @ 0x08073F04 + push {lr} + adds r3, r0, #0 + adds r3, #0x29 + ldrb r2, [r3] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #0x10 + orrs r1, r2 + strb r1, [r3] + ldrb r2, [r0, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0, #0x18] + ldrb r1, [r0, #0xd] + adds r1, #1 + strb r1, [r0, #0xd] + movs r1, #0xa0 + lsls r1, r1, #0xa + str r1, [r0, #0x20] + movs r1, #0x80 + lsls r1, r1, #1 + strh r1, [r0, #0x24] + ldr r2, _08073F48 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x81 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r2, #0x30] + bl sub_08077B2C + pop {pc} + .align 2, 0 +_08073F48: .4byte gUnk_03003F80 + + thumb_func_start sub_08073F4C +sub_08073F4C: @ 0x08073F4C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _08073F84 @ =gUnk_02033A90 + ldrh r3, [r0, #0x12] + ldrh r5, [r0, #0x14] + movs r0, #0x2e + ldrsh r2, [r4, r0] + cmp r2, r3 + bne _08073F66 + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, r5 + beq _08073F88 +_08073F66: + movs r0, #0x32 + ldrsh r1, [r4, r0] + adds r0, r2, #0 + adds r2, r3, #0 + adds r3, r5, #0 + bl sub_080045D4 + strb r0, [r4, #0x15] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_0806F69C + b _08073FC6 + .align 2, 0 +_08073F84: .4byte gUnk_02033A90 +_08073F88: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #0x1e + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x80 + movs r1, #0x90 + lsls r1, r1, #3 + str r1, [r0] + adds r0, #4 + str r1, [r0] + ldrb r0, [r4, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r4, #0 + bl sub_08074018 + ldr r1, _08073FC8 @ =gUnk_03003F80 + ldr r0, _08073FCC @ =0x0000073C + strh r0, [r1, #8] +_08073FC6: + pop {r4, r5, pc} + .align 2, 0 +_08073FC8: .4byte gUnk_03003F80 +_08073FCC: .4byte 0x0000073C + + thumb_func_start sub_08073FD0 +sub_08073FD0: @ 0x08073FD0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08073FF8 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08074016 + ldrb r1, [r4, #0x18] + lsls r0, r1, #0x1e + cmp r0, #0 + bne _08073FF8 + movs r0, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #0x7c + bl sub_080A3268 +_08073FF8: + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + ldr r0, [r4, #0x20] + cmp r0, #0 + bne _08074016 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + movs r0, #0xb8 + lsls r0, r0, #1 + bl sub_080A3268 +_08074016: + pop {r4, pc} + + thumb_func_start sub_08074018 +sub_08074018: @ 0x08074018 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x80 + ldr r0, [r1] + movs r3, #0x80 + lsls r3, r3, #1 + cmp r0, r3 + bls _0807402E + subs r0, #0x20 + str r0, [r1] +_0807402E: + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + adds r2, r0, #0 + cmp r1, r3 + bls _08074042 + adds r0, r1, #0 + subs r0, #0x20 + str r0, [r2] + b _08074048 +_08074042: + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] +_08074048: + adds r0, r4, #0 + adds r0, #0x80 + ldr r1, [r0] + ldr r2, [r2] + adds r0, r4, #0 + movs r3, #0 + bl sub_0805EC9C + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + + thumb_func_start sub_08074060 +sub_08074060: @ 0x08074060 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x80 + lsls r1, r1, #6 + bl sub_08003FC4 + cmp r0, #0 + bne _080740D0 + ldr r0, _080740C4 @ =gUnk_08114F88 + str r0, [r4, #0x48] + movs r3, #0x10 + movs r0, #0x10 + strb r0, [r4, #0x15] + movs r0, #4 + strb r0, [r4, #0x14] + movs r2, #0 + adds r0, #0xfc + strh r0, [r4, #0x24] + movs r0, #0x29 + adds r0, r0, r4 + mov ip, r0 + ldrb r1, [r0] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + ldrb r1, [r4, #0x18] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r3 + strb r0, [r4, #0x18] + strb r2, [r4, #0xf] + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + ldr r1, _080740C8 @ =gUnk_03003F80 + ldr r0, _080740CC @ =0x0000080C + strh r0, [r1, #8] + adds r0, r4, #0 + bl sub_0805EC60 + b _080740D6 + .align 2, 0 +_080740C4: .4byte gUnk_08114F88 +_080740C8: .4byte gUnk_03003F80 +_080740CC: .4byte 0x0000080C +_080740D0: + adds r0, r4, #0 + bl sub_080042B8 +_080740D6: + pop {r4, pc} + + thumb_func_start sub_080740D8 +sub_080740D8: @ 0x080740D8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _080740EA + ldrb r0, [r4, #0x15] + b _080740F0 +_080740EA: + ldrb r1, [r4, #0x15] + movs r0, #0x10 + eors r0, r1 +_080740F0: + cmp r0, #8 + beq _08074128 + cmp r0, #8 + bhi _080740FE + cmp r0, #0 + beq _08074168 + b _0807418C +_080740FE: + cmp r0, #0x10 + beq _08074148 + cmp r0, #0x18 + bne _0807418C + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, [r4, #0x48] + ldrb r0, [r2, #2] + subs r1, r1, r0 + movs r0, #0 + ldrsb r0, [r2, r0] + adds r1, r1, r0 + ldr r3, _08074124 @ =gUnk_03000BF0 + ldrh r0, [r3, #6] + subs r6, r1, r0 + movs r1, #0x32 + ldrsh r0, [r4, r1] + b _08074182 + .align 2, 0 +_08074124: .4byte gUnk_03000BF0 +_08074128: + ldr r2, [r4, #0x48] + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldrb r1, [r2, #2] + adds r0, r0, r1 + movs r1, #0 + ldrsb r1, [r2, r1] + adds r0, r0, r1 + ldr r3, _08074144 @ =gUnk_03000BF0 + ldrh r1, [r3, #6] + subs r6, r0, r1 + movs r1, #0x32 + ldrsh r0, [r4, r1] + b _08074182 + .align 2, 0 +_08074144: .4byte gUnk_03000BF0 +_08074148: + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, [r4, #0x48] + movs r0, #0 + ldrsb r0, [r2, r0] + adds r1, r1, r0 + ldr r3, _08074164 @ =gUnk_03000BF0 + ldrh r0, [r3, #6] + subs r6, r1, r0 + movs r1, #0x32 + ldrsh r0, [r4, r1] + ldrb r1, [r2, #5] + adds r0, r0, r1 + b _08074182 + .align 2, 0 +_08074164: .4byte gUnk_03000BF0 +_08074168: + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, [r4, #0x48] + movs r0, #0 + ldrsb r0, [r2, r0] + adds r1, r1, r0 + ldr r3, _080741A4 @ =gUnk_03000BF0 + ldrh r0, [r3, #6] + subs r6, r1, r0 + movs r1, #0x32 + ldrsh r0, [r4, r1] + ldrb r1, [r2, #5] + subs r0, r0, r1 +_08074182: + movs r1, #1 + ldrsb r1, [r2, r1] + adds r0, r0, r1 + ldrh r1, [r3, #8] + subs r5, r0, r1 +_0807418C: + ldr r2, _080741A8 @ =gUnk_080082DC + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_080086B4 + cmp r0, #0 + beq _080741AC + adds r0, r4, #0 + bl sub_0806F69C + b _080741B0 + .align 2, 0 +_080741A4: .4byte gUnk_03000BF0 +_080741A8: .4byte gUnk_080082DC +_080741AC: + movs r0, #1 + strb r0, [r4, #0xf] +_080741B0: + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _080741C2 + bl sub_0807921C +_080741C2: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080741C4 +sub_080741C4: @ 0x080741C4 + push {lr} + ldr r0, _080741F0 @ =gUnk_03003F80 + ldrb r1, [r0, #2] + adds r2, r0, #0 + cmp r1, #0 + beq _080741D8 + movs r0, #7 + ands r0, r1 + cmp r0, #3 + bne _080741E0 +_080741D8: + ldr r0, _080741F4 @ =gUnk_03001160 + ldr r0, [r0, #0x34] + cmp r0, #0 + beq _080741F8 +_080741E0: + movs r1, #0 + strb r1, [r2, #0x11] + adds r0, r2, #0 + adds r0, #0x37 + strb r1, [r0] + movs r0, #1 + b _080741FA + .align 2, 0 +_080741F0: .4byte gUnk_03003F80 +_080741F4: .4byte gUnk_03001160 +_080741F8: + movs r0, #0 +_080741FA: + pop {pc} + + thumb_func_start nullsub_112 +nullsub_112: @ 0x080741FC + bx lr + .align 2, 0 + + thumb_func_start sub_08074200 +sub_08074200: @ 0x08074200 + push {r4, lr} + adds r4, r0, #0 + bl sub_080741C4 + cmp r0, #0 + bne _08074226 + adds r0, r4, #0 + bl sub_08079C30 + cmp r0, #0 + beq _08074226 + ldrb r0, [r4, #0xc] + cmp r0, #3 + beq _08074226 + bl sub_08077B2C + ldr r1, _08074228 @ =gUnk_03003F80 + movs r0, #3 + strb r0, [r1, #0xc] +_08074226: + pop {r4, pc} + .align 2, 0 +_08074228: .4byte gUnk_03003F80 + + thumb_func_start sub_0807422C +sub_0807422C: @ 0x0807422C + push {lr} + movs r1, #8 + movs r2, #0x18 + bl sub_08074244 + pop {pc} + + thumb_func_start sub_08074238 +sub_08074238: @ 0x08074238 + push {lr} + movs r1, #0 + movs r2, #0x10 + bl sub_08074244 + pop {pc} + + thumb_func_start sub_08074244 +sub_08074244: @ 0x08074244 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r6, r1, #0 + adds r7, r2, #0 + ldr r5, _0807428C @ =gUnk_03003F80 + ldrb r0, [r5, #0x12] + subs r0, #0x28 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _08074278 + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + ldrb r2, [r4, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x19] +_08074278: + bl sub_080741C4 + cmp r0, #0 + bne _080742A6 + ldrb r0, [r5, #0x1e] + cmp r0, #0 + bne _08074290 + ldrb r0, [r5, #0xd] + b _08074294 + .align 2, 0 +_0807428C: .4byte gUnk_03003F80 +_08074290: + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 +_08074294: + cmp r6, r0 + bne _0807429C + cmp r7, r0 + beq _080742A6 +_0807429C: + ldr r1, _080742A8 @ =gUnk_03003F80 + adds r1, #0x80 + ldrh r0, [r1] + subs r0, #0x50 + strh r0, [r1] +_080742A6: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080742A8: .4byte gUnk_03003F80 + + thumb_func_start sub_080742AC +sub_080742AC: @ 0x080742AC + push {lr} + adds r2, r0, #0 + ldr r0, _080742E0 @ =gUnk_03003F80 + adds r1, r0, #0 + adds r1, #0x26 + ldrb r0, [r1] + cmp r0, #0 + beq _080742C0 + movs r0, #0 + strb r0, [r1] +_080742C0: + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r3] + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 + strb r0, [r2] + pop {pc} + .align 2, 0 +_080742E0: .4byte gUnk_03003F80 + + thumb_func_start sub_080742E4 +sub_080742E4: @ 0x080742E4 + push {r4, lr} + adds r4, r0, #0 + bl sub_080741C4 + cmp r0, #0 + bne _0807430E + ldr r2, _08074310 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0807430E + ldrb r0, [r2, #0x11] + cmp r0, #0xf + bne _0807430E + adds r0, r4, #0 + movs r1, #0xe + movs r2, #0 + movs r3, #0 + bl sub_080A2988 +_0807430E: + pop {r4, pc} + .align 2, 0 +_08074310: .4byte gUnk_03003F80 + + thumb_func_start sub_08074314 +sub_08074314: @ 0x08074314 + push {lr} + adds r2, r0, #0 + ldrh r1, [r2, #0x32] + movs r0, #0xf + ands r0, r1 + cmp r0, #0xd + bgt _08074330 + movs r0, #0xcc + lsls r0, r0, #7 + strh r0, [r2, #0x2a] + adds r0, r2, #0 + bl sub_080743A4 + b _08074336 +_08074330: + adds r0, r2, #0 + bl sub_0807A298 +_08074336: + pop {pc} + + thumb_func_start sub_08074338 +sub_08074338: @ 0x08074338 + push {lr} + adds r2, r0, #0 + ldrh r1, [r2, #0x32] + movs r0, #0xf + ands r0, r1 + cmp r0, #1 + ble _08074354 + movs r0, #0xcc + lsls r0, r0, #7 + strh r0, [r2, #0x2a] + adds r0, r2, #0 + bl sub_080743A4 + b _0807435A +_08074354: + adds r0, r2, #0 + bl sub_0807A298 +_0807435A: + pop {pc} + + thumb_func_start sub_0807435C +sub_0807435C: @ 0x0807435C + push {lr} + adds r2, r0, #0 + ldrh r1, [r2, #0x2e] + movs r0, #0xf + ands r0, r1 + cmp r0, #0xb + bgt _08074376 + movs r0, #0x66 + strh r0, [r2, #0x2a] + adds r0, r2, #0 + bl sub_080743A4 + b _0807437C +_08074376: + adds r0, r2, #0 + bl sub_0807A298 +_0807437C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08074380 +sub_08074380: @ 0x08074380 + push {lr} + adds r2, r0, #0 + ldrh r1, [r2, #0x2e] + movs r0, #0xf + ands r0, r1 + cmp r0, #4 + ble _0807439A + movs r0, #0x66 + strh r0, [r2, #0x2a] + adds r0, r2, #0 + bl sub_080743A4 + b _080743A0 +_0807439A: + adds r0, r2, #0 + bl sub_0807A298 +_080743A0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080743A4 +sub_080743A4: @ 0x080743A4 + push {lr} + ldr r3, _080743D0 @ =gUnk_03003F80 + ldr r1, [r3, #0x30] + movs r2, #0x40 + orrs r1, r2 + str r1, [r3, #0x30] + movs r3, #0 + movs r1, #0x80 + strb r1, [r0, #0xb] + ldrb r2, [r0, #0x18] + subs r1, #0x84 + ands r1, r2 + strb r1, [r0, #0x18] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + adds r0, #0x42 + strb r3, [r0] + bl sub_08077B2C + pop {pc} + .align 2, 0 +_080743D0: .4byte gUnk_03003F80 + + thumb_func_start sub_080743D4 +sub_080743D4: @ 0x080743D4 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080741C4 + cmp r0, #0 + bne _08074416 + adds r0, r5, #0 + bl sub_08079C30 + cmp r0, #0 + beq _08074416 + adds r0, r5, #0 + bl sub_0807AABC + adds r0, r5, #0 + bl sub_08074808 + movs r0, #0x24 + ldrsh r4, [r5, r0] + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r5, #0x24] + movs r0, #0x10 + strb r0, [r5, #0x15] + ldr r2, _08074418 @ =gUnk_03003F80 + ldrb r1, [r2, #0xa] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0xa] + adds r0, r5, #0 + bl sub_0806F69C + strh r4, [r5, #0x24] +_08074416: + pop {r4, r5, pc} + .align 2, 0 +_08074418: .4byte gUnk_03003F80 + + thumb_func_start sub_0807441C +sub_0807441C: @ 0x0807441C + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + ldr r0, _08074440 @ =gUnk_03003F80 + adds r0, #0xa0 + ldrb r0, [r0] + cmp r0, #4 + bne _08074502 + ldr r6, _08074444 @ =gUnk_02002A40 + adds r4, r6, #0 + adds r4, #0xb4 + ldrb r0, [r4] + bl sub_0805449C + cmp r0, #0 + beq _08074448 + ldrb r0, [r4] + b _0807444E + .align 2, 0 +_08074440: .4byte gUnk_03003F80 +_08074444: .4byte gUnk_02002A40 +_08074448: + adds r0, r6, #0 + adds r0, #0xb5 + ldrb r0, [r0] +_0807444E: + subs r0, #1 + cmp r0, #5 + bhi _0807448A + lsls r0, r0, #2 + ldr r1, _08074460 @ =_08074464 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08074460: .4byte _08074464 +_08074464: @ jump table + .4byte _0807447C @ case 0 + .4byte _0807447C @ case 1 + .4byte _08074480 @ case 2 + .4byte _08074484 @ case 3 + .4byte _0807448A @ case 4 + .4byte _08074488 @ case 5 +_0807447C: + movs r5, #0 + b _0807448A +_08074480: + movs r5, #1 + b _0807448A +_08074484: + movs r5, #2 + b _0807448A +_08074488: + movs r5, #3 +_0807448A: + movs r4, #0 + cmp r4, r5 + bhs _080744A6 + ldr r1, _08074494 @ =gUnk_03004040 + b _080744A0 + .align 2, 0 +_08074494: .4byte gUnk_03004040 +_08074498: + adds r1, #4 + adds r4, #1 + cmp r4, r5 + bhs _080744A6 +_080744A0: + ldr r0, [r1] + cmp r0, #0 + bne _08074498 +_080744A6: + cmp r5, r4 + bls _080744D4 + adds r0, r7, #0 + movs r1, #0x10 + adds r2, r4, #0 + movs r3, #0 + bl sub_080A2988 + adds r3, r0, #0 + ldr r1, _080744D0 @ =gUnk_03004040 + lsls r0, r4, #2 + adds r0, r0, r1 + str r3, [r0] + cmp r3, #0 + beq _08074502 + adds r0, r7, #0 + adds r1, r3, #0 + bl sub_0806FA24 + b _08074502 + .align 2, 0 +_080744D0: .4byte gUnk_03004040 +_080744D4: + ldr r2, _08074504 @ =gUnk_03003F80 + ldrb r1, [r2, #0x1b] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x1b] + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #0xf + orrs r0, r1 + str r0, [r2, #0x30] + ldr r0, [r7, #0x2c] + ldr r2, _08074508 @ =0xFFF00000 + ands r0, r2 + movs r1, #0x80 + lsls r1, r1, #0xc + orrs r0, r1 + str r0, [r7, #0x2c] + ldr r0, [r7, #0x30] + ands r0, r2 + orrs r0, r1 + str r0, [r7, #0x30] + bl sub_08077AEC +_08074502: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08074504: .4byte gUnk_03003F80 +_08074508: .4byte 0xFFF00000 + + thumb_func_start sub_0807450C +sub_0807450C: @ 0x0807450C + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + bl sub_080741C4 + cmp r0, #0 + bne _0807457A + ldr r7, _0807457C @ =gUnk_03003F80 + ldrb r0, [r7, #0x14] + cmp r0, #0 + bne _0807457A + adds r4, r6, #0 + adds r4, #0x3d + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #0 + bne _08074568 + movs r0, #2 + rsbs r0, r0, #0 + bl sub_080526A0 + movs r0, #0x7a + bl sub_080A3268 + movs r0, #0x18 + strb r0, [r4] + adds r1, r6, #0 + adds r1, #0x42 + movs r0, #4 + strb r0, [r1] + movs r0, #0x2e + ldrsh r2, [r6, r0] + ldr r5, _08074580 @ =0x0000FFF0 + adds r0, r2, #0 + ands r0, r5 + movs r4, #8 + orrs r0, r4 + movs r1, #0x32 + ldrsh r3, [r6, r1] + adds r1, r3, #0 + ands r1, r5 + orrs r1, r4 + bl sub_080045D4 + adds r1, r6, #0 + adds r1, #0x3e + strb r0, [r1] +_08074568: + ldr r0, [r7, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0807457A + adds r0, r6, #0 + movs r1, #7 + bl sub_08008790 +_0807457A: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807457C: .4byte gUnk_03003F80 +_08074580: .4byte 0x0000FFF0 + + thumb_func_start sub_08074584 +sub_08074584: @ 0x08074584 + push {r4, lr} + adds r4, r0, #0 + bl sub_080741C4 + cmp r0, #0 + bne _080745AC + ldr r0, _080745B0 @ =gUnk_03003F80 + adds r0, #0x35 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080745A8 + adds r0, r4, #0 + adds r0, #0x42 + ldrb r0, [r0] + cmp r0, #0 + beq _080745AC +_080745A8: + bl sub_08078F60 +_080745AC: + pop {r4, pc} + .align 2, 0 +_080745B0: .4byte gUnk_03003F80 + + thumb_func_start sub_080745B4 +sub_080745B4: @ 0x080745B4 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_080741C4 + cmp r0, #0 + bne _08074636 + ldr r0, _080745E4 @ =gUnk_03003F80 + mov ip, r0 + ldr r3, [r0, #0x30] + movs r0, #0x80 + ands r3, r0 + cmp r3, #0 + beq _080745E8 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0xb9 + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_0807479C + b _08074636 + .align 2, 0 +_080745E4: .4byte gUnk_03003F80 +_080745E8: + mov r5, ip + adds r5, #0x26 + ldrb r0, [r5] + cmp r0, #0 + beq _08074618 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r2, r4, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 + strb r0, [r2] + subs r2, #0x13 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + strb r3, [r5] +_08074618: + mov r0, ip + adds r0, #0x92 + ldrh r1, [r0] + movs r0, #0xf0 + lsls r0, r0, #4 + ands r0, r1 + cmp r0, #0 + bne _08074630 + mov r1, ip + ldrb r0, [r1, #0x11] + cmp r0, #1 + bne _08074636 +_08074630: + movs r0, #0x83 + bl sub_080A3268 +_08074636: + pop {r4, r5, pc} + + thumb_func_start sub_08074638 +sub_08074638: @ 0x08074638 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _08074674 @ =gUnk_03003F80 + adds r5, r0, #0 + adds r5, #0x26 + ldrb r0, [r5] + cmp r0, #0 + beq _08074670 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + movs r3, #0 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r2, r4, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 + strb r0, [r2] + subs r2, #0x13 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + strb r3, [r5] +_08074670: + pop {r4, r5, pc} + .align 2, 0 +_08074674: .4byte gUnk_03003F80 + + thumb_func_start sub_08074678 +sub_08074678: @ 0x08074678 + push {r4, lr} + adds r4, r0, #0 + bl sub_080741C4 + cmp r0, #0 + beq _08074690 + ldr r0, _0807468C @ =gUnk_03003F80 + movs r1, #0 + strb r1, [r0, #0x11] + b _080746CE + .align 2, 0 +_0807468C: .4byte gUnk_03003F80 +_08074690: + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _0807476C + adds r0, r4, #0 + bl sub_08079C30 + adds r1, r0, #0 + cmp r1, #0 + bne _080746B0 + ldr r0, _080746AC @ =gUnk_03003F80 + strb r1, [r0, #0x11] + b _080746CE + .align 2, 0 +_080746AC: .4byte gUnk_03003F80 +_080746B0: + ldr r3, _080746D4 @ =gUnk_03003F80 + ldr r1, [r3, #0x30] + movs r0, #0x80 + ands r1, r0 + cmp r1, #0 + bne _0807476C + ldrb r2, [r3, #0x1e] + cmp r2, #0 + beq _080746D8 + movs r0, #0x40 + ands r0, r2 + cmp r0, #0 + beq _080746DC + strb r1, [r3, #0x11] + adds r0, r3, #0 +_080746CE: + adds r0, #0x37 + strb r1, [r0] + b _08074792 + .align 2, 0 +_080746D4: .4byte gUnk_03003F80 +_080746D8: + bl sub_08077B20 +_080746DC: + ldr r1, _08074700 @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0x37 + ldrb r0, [r0] + cmp r0, #1 + bne _08074704 + adds r0, r4, #0 + movs r1, #0x70 + movs r2, #0 + movs r3, #0 + bl sub_080A2988 + adds r0, r4, #0 + movs r1, #0x52 + movs r2, #0 + bl sub_080A29AC + b _08074714 + .align 2, 0 +_08074700: .4byte gUnk_03003F80 +_08074704: + adds r0, r1, #0 + adds r0, #0x92 + ldrh r1, [r0] + movs r0, #0xf0 + lsls r0, r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08074720 +_08074714: + ldr r0, _0807471C @ =0x00000161 + bl sub_080A3268 + b _08074732 + .align 2, 0 +_0807471C: .4byte 0x00000161 +_08074720: + ldr r0, _08074760 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _08074732 + ldr r0, _08074764 @ =0x00000161 + bl sub_080A3268 +_08074732: + ldr r2, _08074768 @ =gUnk_03003F80 + adds r1, r2, #0 + adds r1, #0x80 + ldrh r0, [r1] + subs r0, #0xf0 + strh r0, [r1] + adds r1, #0x28 + movs r0, #0x1b + strb r0, [r1] + adds r0, r2, #0 + adds r0, #0x37 + ldrb r0, [r0] + lsls r3, r0, #0x18 + lsrs r0, r3, #0x18 + cmp r0, #0xef + bhi _0807476C + subs r1, #0x69 + lsrs r0, r3, #0x1d + adds r0, #4 + ldrb r2, [r1] + adds r0, r0, r2 + strb r0, [r1] + b _08074792 + .align 2, 0 +_08074760: .4byte gUnk_030010A0 +_08074764: .4byte 0x00000161 +_08074768: .4byte gUnk_03003F80 +_0807476C: + ldr r2, _08074794 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + ldr r1, _08074798 @ =0xFFFBFFFF + ands r0, r1 + str r0, [r2, #0x30] + adds r0, r4, #0 + movs r1, #0x52 + movs r2, #0 + bl sub_080A29AC + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0x20 + strb r0, [r1] + subs r0, #0x24 + bl sub_080526A0 + bl sub_08079458 +_08074792: + pop {r4, pc} + .align 2, 0 +_08074794: .4byte gUnk_03003F80 +_08074798: .4byte 0xFFFBFFFF + + thumb_func_start sub_0807479C +sub_0807479C: @ 0x0807479C + push {r4, lr} + adds r4, r0, #0 + bl sub_080741C4 + adds r2, r0, #0 + cmp r2, #0 + bne _08074804 + ldr r1, _080747C0 @ =gUnk_03003F80 + ldrb r0, [r1, #0x14] + adds r3, r1, #0 + cmp r0, #0 + bne _080747C4 + adds r1, #0x3f + ldrb r0, [r1] + adds r0, #2 + strb r0, [r1] + b _080747E6 + .align 2, 0 +_080747C0: .4byte gUnk_03003F80 +_080747C4: + adds r0, r3, #0 + adds r0, #0x26 + strb r2, [r0] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + adds r2, #0x13 + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 + strb r0, [r2] +_080747E6: + adds r0, r3, #0 + adds r0, #0x26 + ldrb r1, [r0] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _080747FE + adds r0, r4, #0 + bl sub_08079C30 + cmp r0, #0 + beq _08074804 +_080747FE: + adds r0, r4, #0 + bl sub_08074808 +_08074804: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08074808 +sub_08074808: @ 0x08074808 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + bl sub_08077AEC + movs r0, #0x46 + bl sub_0807CA84 + adds r3, r0, #0 + cmp r3, #1 + bne _080748B8 + ldr r1, _08074838 @ =gUnk_03003F80 + adds r2, r1, #0 + adds r2, #0x26 + ldrb r0, [r2] + cmp r0, #0 + bne _0807486C + ldr r0, [r1, #0x30] + movs r1, #0x80 + lsls r1, r1, #9 + ands r0, r1 + cmp r0, #0 + beq _0807483C + strb r3, [r2] + b _08074840 + .align 2, 0 +_08074838: .4byte gUnk_03003F80 +_0807483C: + movs r0, #8 + strb r0, [r2] +_08074840: + movs r1, #0 + movs r0, #0 + strh r0, [r6, #0x24] + ldr r0, _080748AC @ =gUnk_03003F80 + adds r2, r0, #0 + adds r2, #0x89 + strb r1, [r2] + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08074862 + adds r0, r6, #0 + movs r1, #0xb + movs r2, #0 + bl sub_080A29AC +_08074862: + ldr r0, _080748B0 @ =0x000001A5 + bl sub_080A3268 + bl sub_08077B2C +_0807486C: + ldr r5, _080748AC @ =gUnk_03003F80 + adds r4, r5, #0 + adds r4, #0x26 + ldrb r1, [r4] + movs r7, #0xf + adds r0, r7, #0 + ands r0, r1 + cmp r0, #1 + beq _0807488A + adds r0, r6, #0 + bl sub_08079744 + ldrb r0, [r4] + subs r0, #1 + strb r0, [r4] +_0807488A: + ldr r0, [r5, #0x30] + ldr r1, _080748B4 @ =0xFFFFF3FF + ands r0, r1 + str r0, [r5, #0x30] + movs r1, #0x80 + lsls r1, r1, #7 + ands r0, r1 + cmp r0, #0 + beq _080748BE + adds r1, r6, #0 + adds r1, #0x7a + ldrh r0, [r1] + cmp r0, #0xe + bhi _080748BE + strh r7, [r1] + b _080748BE + .align 2, 0 +_080748AC: .4byte gUnk_03003F80 +_080748B0: .4byte 0x000001A5 +_080748B4: .4byte 0xFFFFF3FF +_080748B8: + ldr r1, _080748C0 @ =gUnk_03003F80 + movs r0, #0x14 + strb r0, [r1, #0xc] +_080748BE: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080748C0: .4byte gUnk_03003F80 + + thumb_func_start sub_080748C4 +sub_080748C4: @ 0x080748C4 + ldr r1, _080748D0 @ =gUnk_03003F80 + adds r1, #0x3f + ldrb r0, [r1] + subs r0, #2 + strb r0, [r1] + bx lr + .align 2, 0 +_080748D0: .4byte gUnk_03003F80 + + thumb_func_start sub_080748D4 +sub_080748D4: @ 0x080748D4 + push {lr} + bl sub_080741C4 + pop {pc} + + thumb_func_start sub_080748DC +sub_080748DC: @ 0x080748DC + push {r4, lr} + adds r4, r0, #0 + bl sub_080741C4 + cmp r0, #0 + bne _08074910 + adds r0, r4, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #1 + beq _0807490A + ldrh r0, [r4, #0x32] + adds r0, #0xc + strh r0, [r4, #0x32] + ldr r0, _08074914 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0807490A + ldrh r0, [r4, #0x36] + subs r0, #0xc + strh r0, [r4, #0x36] +_0807490A: + adds r0, r4, #0 + bl sub_0807AABC +_08074910: + pop {r4, pc} + .align 2, 0 +_08074914: .4byte gUnk_03003F80 + + thumb_func_start sub_08074918 +sub_08074918: @ 0x08074918 + push {r4, lr} + adds r4, r0, #0 + bl sub_080741C4 + cmp r0, #0 + bne _08074934 + adds r0, r4, #0 + bl sub_08079C30 + cmp r0, #0 + beq _08074934 + ldr r1, _08074938 @ =gUnk_03003F80 + movs r0, #0x11 + strb r0, [r1, #0xc] +_08074934: + pop {r4, pc} + .align 2, 0 +_08074938: .4byte gUnk_03003F80 + + thumb_func_start sub_0807493C +sub_0807493C: @ 0x0807493C + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x44 + bl sub_0807CA84 + cmp r0, #1 + bne _08074952 + adds r0, r4, #0 + bl sub_0807496C + b _08074966 +_08074952: + ldrh r1, [r4, #0x32] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0xf + movs r2, #0 + orrs r0, r1 + strh r0, [r4, #0x32] + ldr r0, _08074968 @ =gUnk_03003F80 + strb r2, [r0, #0x12] +_08074966: + pop {r4, pc} + .align 2, 0 +_08074968: .4byte gUnk_03003F80 + + thumb_func_start sub_0807496C +sub_0807496C: @ 0x0807496C + push {r4, lr} + adds r4, r0, #0 + bl sub_080741C4 + adds r3, r0, #0 + cmp r3, #0 + bne _080749A2 + ldr r0, _080749A4 @ =gUnk_03003F80 + strb r3, [r0, #2] + ldrb r2, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r4, #0x19] + ldrb r0, [r4, #0x1b] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x1b] + strb r3, [r4, #0x14] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + bl sub_08077B2C +_080749A2: + pop {r4, pc} + .align 2, 0 +_080749A4: .4byte gUnk_03003F80 + + thumb_func_start sub_080749A8 +sub_080749A8: @ 0x080749A8 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x44 + bl sub_0807CA84 + cmp r0, #1 + bne _080749BE + adds r0, r4, #0 + bl sub_080749D4 + b _080749CE +_080749BE: + ldrh r1, [r4, #0x32] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0 + strh r0, [r4, #0x32] + ldr r0, _080749D0 @ =gUnk_03003F80 + strb r1, [r0, #0x12] +_080749CE: + pop {r4, pc} + .align 2, 0 +_080749D0: .4byte gUnk_03003F80 + + thumb_func_start sub_080749D4 +sub_080749D4: @ 0x080749D4 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_080741C4 + adds r3, r0, #0 + cmp r3, #0 + bne _08074A40 + ldrb r2, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r4, #0x19] + ldrb r0, [r4, #0x1b] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x1b] + strb r3, [r4, #0x14] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + ldr r5, _08074A2C @ =gUnk_03003F80 + adds r0, r5, #0 + adds r0, #0x26 + strb r3, [r0] + adds r2, r4, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 + strb r0, [r2] + ldrh r1, [r4, #0x32] + movs r0, #0xf + ands r0, r1 + cmp r0, #7 + bgt _08074A34 + ldr r0, _08074A30 @ =0x000002D3 + strh r0, [r5, #8] + movs r0, #0x10 + strb r0, [r4, #0x15] + b _08074A3C + .align 2, 0 +_08074A2C: .4byte gUnk_03003F80 +_08074A30: .4byte 0x000002D3 +_08074A34: + movs r1, #0 + ldr r0, _08074A44 @ =0x000002D6 + strh r0, [r5, #8] + strb r1, [r4, #0x15] +_08074A3C: + bl sub_08077B2C +_08074A40: + pop {r4, r5, pc} + .align 2, 0 +_08074A44: .4byte 0x000002D6 + + thumb_func_start sub_08074A48 +sub_08074A48: @ 0x08074A48 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08074A90 @ =gUnk_03003F80 + adds r0, r5, #0 + adds r0, #0x26 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08074A86 + ldr r0, _08074A94 @ =gUnk_03001160 + movs r1, #0 + movs r2, #0x54 + movs r3, #0 + bl sub_080A2988 + adds r1, r0, #0 + cmp r1, #0 + beq _08074A86 + movs r0, #1 + strb r0, [r1, #0xe] + adds r0, r1, #0 + bl sub_08016A04 + ldrh r1, [r5, #0x22] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r2, [r0] + movs r0, #0x39 + bl sub_08000152 +_08074A86: + adds r0, r4, #0 + bl sub_0807479C + pop {r4, r5, pc} + .align 2, 0 +_08074A90: .4byte gUnk_03003F80 +_08074A94: .4byte gUnk_03001160 + + thumb_func_start nullsub_504 +nullsub_504: @ 0x08074A98 + bx lr + .align 2, 0 + + thumb_func_start sub_08074A9C +sub_08074A9C: @ 0x08074A9C + push {r4, lr} + adds r4, r0, #0 + bl sub_080741C4 + cmp r0, #0 + bne _08074AF0 + ldr r2, _08074AE0 @ =gUnk_03003F80 + adds r0, r2, #0 + adds r0, #0x80 + ldrh r1, [r0] + subs r1, #0x80 + strh r1, [r0] + ldrb r0, [r2, #0x11] + cmp r0, #1 + beq _08074ACA + adds r0, r2, #0 + adds r0, #0x92 + ldrh r1, [r0] + movs r0, #0xf0 + lsls r0, r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08074AF0 +_08074ACA: + ldrb r0, [r2, #0x12] + cmp r0, #0x25 + bne _08074AE4 + adds r0, r4, #0 + movs r1, #0x21 + movs r2, #1 + movs r3, #0 + bl sub_080A2988 + b _08074AF0 + .align 2, 0 +_08074AE0: .4byte gUnk_03003F80 +_08074AE4: + adds r0, r4, #0 + movs r1, #0x21 + movs r2, #1 + movs r3, #1 + bl sub_080A2988 +_08074AF0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08074AF4 +sub_08074AF4: @ 0x08074AF4 + push {lr} + adds r3, r0, #0 + ldr r1, _08074B04 @ =gUnk_03003F80 + ldrb r0, [r1, #0x1e] + cmp r0, #0 + bne _08074B08 + ldrb r2, [r1, #0xd] + b _08074B0C + .align 2, 0 +_08074B04: .4byte gUnk_03003F80 +_08074B08: + ldrb r0, [r3, #0x14] + lsls r2, r0, #2 +_08074B0C: + adds r0, r3, #0 + adds r1, r2, #0 + bl sub_08074244 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08074B18 +sub_08074B18: @ 0x08074B18 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _08074B40 @ =gUnk_03003F80 + ldrb r0, [r4, #0x14] + cmp r0, #0 + bne _08074B48 + bl sub_080741C4 + cmp r0, #0 + bne _08074B48 + ldr r0, [r4, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08074B44 + adds r0, r5, #0 + bl sub_08074200 + b _08074B48 + .align 2, 0 +_08074B40: .4byte gUnk_03003F80 +_08074B44: + movs r0, #0x1a + strb r0, [r4, #0xc] +_08074B48: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08074B4C +sub_08074B4C: @ 0x08074B4C + push {r4, lr} + adds r4, r0, #0 + bl sub_080741C4 + cmp r0, #0 + bne _08074B6E + ldr r0, _08074B70 @ =gUnk_03003F80 + ldr r1, [r0, #0x30] + movs r0, #0x80 + ands r1, r0 + cmp r1, #0 + bne _08074B6E + strb r1, [r4, #0x14] + strb r1, [r4, #0x15] + adds r0, r4, #0 + bl sub_08074BF8 +_08074B6E: + pop {r4, pc} + .align 2, 0 +_08074B70: .4byte gUnk_03003F80 + + thumb_func_start sub_08074B74 +sub_08074B74: @ 0x08074B74 + push {r4, lr} + adds r4, r0, #0 + bl sub_080741C4 + cmp r0, #0 + bne _08074B9A + ldr r0, _08074B9C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08074B9A + movs r0, #4 + strb r0, [r4, #0x14] + movs r0, #0x10 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_08074BF8 +_08074B9A: + pop {r4, pc} + .align 2, 0 +_08074B9C: .4byte gUnk_03003F80 + + thumb_func_start sub_08074BA0 +sub_08074BA0: @ 0x08074BA0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080741C4 + cmp r0, #0 + bne _08074BC6 + ldr r0, _08074BC8 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08074BC6 + movs r0, #6 + strb r0, [r4, #0x14] + movs r0, #0x18 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_08074BF8 +_08074BC6: + pop {r4, pc} + .align 2, 0 +_08074BC8: .4byte gUnk_03003F80 + + thumb_func_start sub_08074BCC +sub_08074BCC: @ 0x08074BCC + push {r4, lr} + adds r4, r0, #0 + bl sub_080741C4 + cmp r0, #0 + bne _08074BF2 + ldr r0, _08074BF4 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08074BF2 + movs r0, #2 + strb r0, [r4, #0x14] + movs r0, #8 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_08074BF8 +_08074BF2: + pop {r4, pc} + .align 2, 0 +_08074BF4: .4byte gUnk_03003F80 + + thumb_func_start sub_08074BF8 +sub_08074BF8: @ 0x08074BF8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08077B2C + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + movs r0, #0xa0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + ldr r1, _08074C40 @ =gUnk_03003F80 + ldr r0, [r1, #0x30] + movs r2, #0x80 + lsls r2, r2, #0x12 + orrs r0, r2 + str r0, [r1, #0x30] + ldrb r2, [r1, #0xa] + movs r0, #0x80 + orrs r2, r0 + strb r2, [r1, #0xa] + ldrb r2, [r1, #0x1a] + orrs r0, r2 + strb r0, [r1, #0x1a] + adds r1, #0x27 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0806F69C + pop {r4, pc} + .align 2, 0 +_08074C40: .4byte gUnk_03003F80 + + thumb_func_start sub_08074C44 +sub_08074C44: @ 0x08074C44 + push {r4, lr} + adds r4, r0, #0 + bl sub_08078EFC + cmp r0, #0 + bne _08074C60 + ldr r0, _08074C64 @ =gUnk_0811BC88 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_08074C60: + pop {r4, pc} + .align 2, 0 +_08074C64: .4byte gUnk_0811BC88 + + thumb_func_start sub_08074C68 +sub_08074C68: @ 0x08074C68 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r4, #0 + adds r6, #0x68 + movs r2, #0 + strb r2, [r6] + ldr r5, _08074CA0 @ =gUnk_03003F80 + adds r0, r5, #0 + adds r0, #0x38 + ldrb r3, [r0] + cmp r3, #1 + beq _08074CA8 + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + ldr r0, _08074CA4 @ =gUnk_02022750 + cmp r1, r0 + bne _08074CF2 + movs r0, #1 + strb r0, [r4, #0xd] + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + bl sub_08074CF8 + b _08074CF2 + .align 2, 0 +_08074CA0: .4byte gUnk_03003F80 +_08074CA4: .4byte gUnk_02022750 +_08074CA8: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + strb r2, [r4, #0x14] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + movs r0, #2 + strb r0, [r4, #0xd] + strb r3, [r6] + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r5, #0 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #0 + bne _08074CE4 + ldr r0, _08074CE0 @ =0x0000073A + b _08074CE6 + .align 2, 0 +_08074CE0: .4byte 0x0000073A +_08074CE4: + ldr r0, _08074CF4 @ =0x00000736 +_08074CE6: + strh r0, [r5, #8] + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #5 + bl sub_08050054 +_08074CF2: + pop {r4, r5, r6, pc} + .align 2, 0 +_08074CF4: .4byte 0x00000736 + + thumb_func_start sub_08074CF8 +sub_08074CF8: @ 0x08074CF8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r6, [r5, #0x14] + adds r4, r5, #0 + adds r4, #0x84 + ldr r1, [r4] + bl sub_0807DF74 + ldr r1, [r4] + adds r0, r5, #0 + bl sub_08074D34 + adds r0, r5, #0 + adds r0, #0x82 + ldrh r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08074D20 + strb r6, [r5, #0x14] +_08074D20: + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r5, #0 + bl sub_08003FC4 + adds r0, r5, #0 + bl sub_080042B8 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08074D34 +sub_08074D34: @ 0x08074D34 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + adds r6, r1, #0 + ldr r0, [r6, #8] + cmp r0, #0 + bne _08074D46 + b _08074EF8 +_08074D46: + movs r7, #0x80 + lsls r7, r7, #1 + adds r5, r4, #0 + adds r5, #0x82 +_08074D4E: + ldr r1, [r6, #8] + mvns r0, r1 + adds r2, r0, #1 + ands r2, r1 + eors r1, r2 + str r1, [r6, #8] + cmp r2, r7 + bne _08074D60 + b _08074E82 +_08074D60: + cmp r2, r7 + bhi _08074D90 + cmp r2, #8 + beq _08074E2C + cmp r2, #8 + bhi _08074D7C + cmp r2, #2 + beq _08074E08 + cmp r2, #2 + bls _08074D76 + b _08074EF0 +_08074D76: + cmp r2, #1 + beq _08074DEC + b _08074EF0 +_08074D7C: + cmp r2, #0x20 + beq _08074E62 + cmp r2, #0x20 + bhi _08074D8A + cmp r2, #0x10 + beq _08074E54 + b _08074EF0 +_08074D8A: + cmp r2, #0x80 + beq _08074E70 + b _08074EF0 +_08074D90: + movs r0, #0x80 + lsls r0, r0, #7 + cmp r2, r0 + bne _08074D9A + b _08074EAE +_08074D9A: + cmp r2, r0 + bhi _08074DBE + movs r0, #0x80 + lsls r0, r0, #5 + cmp r2, r0 + beq _08074E96 + cmp r2, r0 + bhi _08074DB4 + movs r0, #0x80 + lsls r0, r0, #2 + cmp r2, r0 + beq _08074E90 + b _08074EF0 +_08074DB4: + movs r0, #0x80 + lsls r0, r0, #6 + cmp r2, r0 + beq _08074EA8 + b _08074EF0 +_08074DBE: + movs r0, #0x80 + lsls r0, r0, #0xa + cmp r2, r0 + bne _08074DC8 + b _08074EBE +_08074DC8: + cmp r2, r0 + bhi _08074DD6 + movs r0, #0x80 + lsls r0, r0, #8 + cmp r2, r0 + beq _08074EB4 + b _08074EF0 +_08074DD6: + movs r0, #0x80 + lsls r0, r0, #0xd + cmp r2, r0 + bne _08074DE0 + b _08074ED8 +_08074DE0: + movs r0, #0x80 + lsls r0, r0, #0xe + cmp r2, r0 + bne _08074DEA + b _08074EE4 +_08074DEA: + b _08074EF0 +_08074DEC: + ldr r2, _08074E00 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _08074E04 + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r2, #8] + b _08074EF0 + .align 2, 0 +_08074E00: .4byte gUnk_03003F80 +_08074E04: + strh r7, [r2, #8] + b _08074EF0 +_08074E08: + ldr r2, _08074E1C @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _08074E24 + ldr r0, _08074E20 @ =0x00000404 + strh r0, [r2, #8] + b _08074EF0 + .align 2, 0 +_08074E1C: .4byte gUnk_03003F80 +_08074E20: .4byte 0x00000404 +_08074E24: + movs r0, #0x82 + lsls r0, r0, #1 + strh r0, [r2, #8] + b _08074EF0 +_08074E2C: + ldr r1, _08074E3C @ =gUnk_03003F80 + ldr r0, [r1, #0x30] + ands r0, r2 + cmp r0, #0 + beq _08074E44 + ldr r0, _08074E40 @ =0x0000041C + b _08074E46 + .align 2, 0 +_08074E3C: .4byte gUnk_03003F80 +_08074E40: .4byte 0x0000041C +_08074E44: + ldr r0, _08074E50 @ =0x0000080C +_08074E46: + strh r0, [r1, #8] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] + b _08074EF0 + .align 2, 0 +_08074E50: .4byte 0x0000080C +_08074E54: + adds r0, r4, #0 + movs r1, #8 + movs r2, #0x18 + rsbs r2, r2, #0 + bl sub_080A2CFC + b _08074EF0 +_08074E62: + adds r0, r4, #0 + movs r1, #8 + movs r2, #0x18 + rsbs r2, r2, #0 + bl sub_080A2D0C + b _08074EF0 +_08074E70: + ldrb r0, [r4, #0x18] + movs r2, #4 + rsbs r2, r2, #0 + adds r1, r2, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + b _08074EF0 +_08074E82: + ldrb r0, [r4, #0x18] + movs r3, #4 + rsbs r3, r3, #0 + adds r1, r3, #0 + ands r0, r1 + strb r0, [r4, #0x18] + b _08074EF0 +_08074E90: + movs r0, #0 + strh r0, [r5] + b _08074EF0 +_08074E96: + ldrh r0, [r5] + ldr r2, _08074EA4 @ =0x0000FFFE + adds r1, r2, #0 + ands r0, r1 + strh r0, [r5] + b _08074EF0 + .align 2, 0 +_08074EA4: .4byte 0x0000FFFE +_08074EA8: + ldrh r0, [r5] + movs r1, #1 + b _08074EB8 +_08074EAE: + ldrh r0, [r5] + movs r1, #8 + b _08074EB8 +_08074EB4: + ldrh r0, [r5] + movs r1, #4 +_08074EB8: + orrs r0, r1 + strh r0, [r5] + b _08074EF0 +_08074EBE: + ldrb r2, [r4, #0x18] + lsls r0, r2, #0x19 + lsrs r0, r0, #0x1f + movs r1, #1 + eors r0, r1 + lsls r0, r0, #6 + movs r3, #0x41 + rsbs r3, r3, #0 + adds r1, r3, #0 + ands r2, r1 + orrs r2, r0 + strb r2, [r4, #0x18] + b _08074EF0 +_08074ED8: + movs r1, #2 + strb r1, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x68 + strb r1, [r0] + b _08074EF0 +_08074EE4: + movs r0, #0 + movs r1, #3 + strb r1, [r4, #0xd] + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] +_08074EF0: + ldr r0, [r6, #8] + cmp r0, #0 + beq _08074EF8 + b _08074D4E +_08074EF8: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08074F00 +sub_08074F00: @ 0x08074F00 + push {lr} + ldr r2, _08074F18 @ =gUnk_0811BC98 + adds r1, r0, #0 + adds r1, #0x68 + ldrb r1, [r1] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08074F18: .4byte gUnk_0811BC98 + + thumb_func_start sub_08074F1C +sub_08074F1C: @ 0x08074F1C + adds r2, r0, #0 + adds r2, #0x68 + movs r3, #0 + movs r1, #1 + strb r1, [r2] + strb r3, [r0, #0x14] + bx lr + .align 2, 0 + + thumb_func_start sub_08074F2C +sub_08074F2C: @ 0x08074F2C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x84 + ldr r1, [r5] + bl sub_0807DF74 + ldr r1, [r5] + adds r0, r4, #0 + bl sub_08074D34 + pop {r4, r5, pc} + + thumb_func_start sub_08074F44 +sub_08074F44: @ 0x08074F44 + push {lr} + adds r0, #0x68 + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + ldr r0, _08074F74 @ =gUnk_03001160 + ldr r0, [r0, #0x6c] + cmp r0, #0 + beq _08074F5A + bl sub_0805E7BC +_08074F5A: + ldr r2, _08074F78 @ =gUnk_03003F80 + adds r0, r2, #0 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #0 + bne _08074F80 + ldr r0, _08074F7C @ =0x0000073B + strh r0, [r2, #8] + ldr r0, [r2, #0x30] + movs r1, #8 + orrs r0, r1 + str r0, [r2, #0x30] + b _08074F84 + .align 2, 0 +_08074F74: .4byte gUnk_03001160 +_08074F78: .4byte gUnk_03003F80 +_08074F7C: .4byte 0x0000073B +_08074F80: + ldr r0, _08074F88 @ =0x00000737 + strh r0, [r2, #8] +_08074F84: + pop {pc} + .align 2, 0 +_08074F88: .4byte 0x00000737 + + thumb_func_start sub_08074F8C +sub_08074F8C: @ 0x08074F8C + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r3, r4, #0 + adds r3, #0x5a + ldrb r0, [r3] + cmp r0, #1 + bne _08074FAC + movs r0, #0 + strb r0, [r3] + ldr r2, _08074FDC @ =gUnk_02033280 + ldr r0, [r2] + movs r1, #4 + orrs r0, r1 + str r0, [r2] +_08074FAC: + ldrb r1, [r3] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08074FEA + adds r1, r4, #0 + adds r1, #0x68 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #8 + strb r0, [r4, #0xe] + movs r0, #4 + strb r0, [r4, #0x14] + ldr r1, _08074FE0 @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #0 + bne _08074FE4 + movs r0, #0x80 + lsls r0, r0, #3 + b _08074FE8 + .align 2, 0 +_08074FDC: .4byte gUnk_02033280 +_08074FE0: .4byte gUnk_03003F80 +_08074FE4: + movs r0, #0x80 + lsls r0, r0, #1 +_08074FE8: + strh r0, [r1, #8] +_08074FEA: + pop {r4, pc} + + thumb_func_start sub_08074FEC +sub_08074FEC: @ 0x08074FEC + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08075016 + adds r1, r4, #0 + adds r1, #0x68 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #4 + strb r0, [r4, #0xe] + ldr r0, _08075018 @ =gUnk_03003F80 + adds r0, #0x3a + ldrb r0, [r0] + strb r0, [r4, #0x14] +_08075016: + pop {r4, pc} + .align 2, 0 +_08075018: .4byte gUnk_03003F80 + + thumb_func_start sub_0807501C +sub_0807501C: @ 0x0807501C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08075086 + ldr r1, _08075044 @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0x3a + ldrb r0, [r0] + strb r0, [r2, #0x14] + adds r0, r1, #0 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #0 + bne _0807504C + ldr r0, _08075048 @ =0x0000041C + b _0807504E + .align 2, 0 +_08075044: .4byte gUnk_03003F80 +_08075048: .4byte 0x0000041C +_0807504C: + ldr r0, _08075088 @ =0x0000080C +_0807504E: + strh r0, [r1, #8] + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r3] + ldrb r0, [r2, #0x14] + lsls r0, r0, #2 + strb r0, [r2, #0x15] + movs r0, #0xc8 + strh r0, [r2, #0x24] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r2, #0x20] + movs r0, #8 + strb r0, [r2, #0xe] + adds r1, r2, #0 + adds r1, #0x68 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #0x7c + bl sub_080A3268 +_08075086: + pop {pc} + .align 2, 0 +_08075088: .4byte 0x0000080C + + thumb_func_start sub_0807508C +sub_0807508C: @ 0x0807508C + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + beq _080750AA + adds r0, r4, #0 + bl sub_0806F69C + b _080750F2 +_080750AA: + ldr r2, _080750BC @ =gUnk_03003F80 + adds r0, r2, #0 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #0 + bne _080750C0 + movs r0, #0x80 + lsls r0, r0, #3 + b _080750CE + .align 2, 0 +_080750BC: .4byte gUnk_03003F80 +_080750C0: + ldr r0, [r2, #0x30] + movs r1, #9 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r2, #0x30] + movs r0, #0x80 + lsls r0, r0, #1 +_080750CE: + strh r0, [r2, #8] + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _080750F2 + movs r0, #4 + strb r0, [r4, #0x14] + movs r0, #1 + strb r0, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x68 + strb r1, [r0] + movs r0, #0x7d + bl sub_080A3268 +_080750F2: + pop {r4, pc} + + thumb_func_start sub_080750F4 +sub_080750F4: @ 0x080750F4 + push {lr} + ldr r2, _0807510C @ =gUnk_0811BCB4 + adds r1, r0, #0 + adds r1, #0x68 + ldrb r1, [r1] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0807510C: .4byte gUnk_0811BCB4 + + thumb_func_start sub_08075110 +sub_08075110: @ 0x08075110 + adds r2, r0, #0 + adds r2, #0x68 + ldrb r1, [r2] + adds r1, #1 + movs r3, #0 + strb r1, [r2] + ldrb r1, [r0, #0x14] + strb r1, [r0, #0xf] + strb r3, [r0, #0x14] + ldr r2, _08075134 @ =gUnk_03003F80 + ldr r0, _08075138 @ =0x00000734 + strh r0, [r2, #8] + ldr r0, [r2, #0x30] + movs r1, #9 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r2, #0x30] + bx lr + .align 2, 0 +_08075134: .4byte gUnk_03003F80 +_08075138: .4byte 0x00000734 + + thumb_func_start sub_0807513C +sub_0807513C: @ 0x0807513C + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080042B8 + adds r4, r5, #0 + adds r4, #0x5a + ldrb r0, [r4] + cmp r0, #1 + bne _08075158 + movs r0, #0 + strb r0, [r4] + movs r0, #0x7c + bl sub_080A3268 +_08075158: + ldrb r0, [r4] + cmp r0, #2 + bne _0807516E + movs r0, #0 + strb r0, [r4] + ldr r0, _08075188 @ =0x0000014B + bl sub_080A3268 + movs r0, #0x7a + bl sub_080A3268 +_0807516E: + ldrb r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08075186 + adds r0, r5, #0 + adds r0, #0x68 + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + movs r0, #0x3c + strb r0, [r5, #0xe] +_08075186: + pop {r4, r5, pc} + .align 2, 0 +_08075188: .4byte 0x0000014B + + thumb_func_start sub_0807518C +sub_0807518C: @ 0x0807518C + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080751AA + adds r1, #0x68 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r1, _080751AC @ =gUnk_03003F80 + ldr r0, _080751B0 @ =0x000003C9 + strh r0, [r1, #8] +_080751AA: + pop {pc} + .align 2, 0 +_080751AC: .4byte gUnk_03003F80 +_080751B0: .4byte 0x000003C9 + + thumb_func_start sub_080751B4 +sub_080751B4: @ 0x080751B4 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080751E2 + movs r1, #0 + movs r0, #4 + strb r0, [r4, #0x14] + movs r0, #1 + strb r0, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x68 + strb r1, [r0] + ldr r1, _080751E4 @ =gUnk_03003F80 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r1, #8] +_080751E2: + pop {r4, pc} + .align 2, 0 +_080751E4: .4byte gUnk_03003F80 + + thumb_func_start sub_080751E8 +sub_080751E8: @ 0x080751E8 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + ldr r4, _08075230 @ =gUnk_02022750 + adds r0, r4, #0 + movs r1, #0x24 + bl sub_0801D630 + str r6, [r4] + ldr r0, _08075234 @ =gUnk_03001160 + adds r0, #0x84 + str r4, [r0] + ldr r2, _08075238 @ =gUnk_03003F80 + movs r1, #0 + movs r0, #0x1c + strb r0, [r2, #0xc] + adds r0, r2, #0 + adds r0, #0x38 + movs r4, #1 + strb r4, [r0] + adds r3, r2, #0 + adds r3, #0x39 + strb r1, [r3] + adds r0, #2 + strb r5, [r0] + ldr r0, [r2, #0x30] + movs r1, #8 + orrs r0, r1 + str r0, [r2, #0x30] + cmp r7, #0 + bne _08075240 + strb r7, [r3] + ldr r6, _0807523C @ =gUnk_08009ECC + b _08075244 + .align 2, 0 +_08075230: .4byte gUnk_02022750 +_08075234: .4byte gUnk_03001160 +_08075238: .4byte gUnk_03003F80 +_0807523C: .4byte gUnk_08009ECC +_08075240: + strb r4, [r3] + ldr r6, _08075290 @ =gUnk_08009EF0 +_08075244: + ldr r0, _08075294 @ =gUnk_03003F80 + adds r0, #0x39 + ldrb r0, [r0] + movs r1, #0 + cmp r0, #0 + bne _08075252 + movs r1, #2 +_08075252: + movs r0, #0x5b + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _08075270 + ldr r0, _08075298 @ =gUnk_03001160 + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_0807DAD0 +_08075270: + ldr r4, _08075298 @ =gUnk_03001160 + movs r1, #0xe + rsbs r1, r1, #0 + movs r2, #0x1c + rsbs r2, r2, #0 + adds r0, r4, #0 + bl sub_080A2D1C + str r0, [r4, #0x6c] + cmp r0, #0 + beq _0807528C + movs r1, #3 + bl sub_0805E3A0 +_0807528C: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08075290: .4byte gUnk_08009EF0 +_08075294: .4byte gUnk_03003F80 +_08075298: .4byte gUnk_03001160 + + thumb_func_start sub_0807529C +sub_0807529C: @ 0x0807529C + push {lr} + movs r2, #0x20 + rsbs r2, r2, #0 + movs r1, #8 + bl sub_080A2D0C + pop {pc} + .align 2, 0 + + thumb_func_start sub_080752AC +sub_080752AC: @ 0x080752AC + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + bl sub_0806F69C + ldrb r0, [r4, #0x18] + cmp r0, #0 + bne _080752D0 + adds r0, r5, #0 + bl sub_080002B8 + cmp r0, #0x29 + beq _080752DC + movs r0, #1 + strb r0, [r4, #0x18] + movs r0, #6 + strb r0, [r4, #0x19] + b _080752DC +_080752D0: + ldrb r0, [r4, #0x19] + subs r0, #1 + strb r0, [r4, #0x19] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080752E2 +_080752DC: + ldr r1, _080752E4 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_080752E2: + pop {r4, r5, pc} + .align 2, 0 +_080752E4: .4byte gUnk_02033280 + + thumb_func_start sub_080752E8 +sub_080752E8: @ 0x080752E8 + push {lr} + ldr r3, _080752FC @ =gUnk_0811BCC4 + ldrb r2, [r0, #1] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_080752FC: .4byte gUnk_0811BCC4 + + thumb_func_start sub_08075300 +sub_08075300: @ 0x08075300 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08077BD4 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077E78 + pop {r4, r5, pc} + + thumb_func_start sub_08075314 +sub_08075314: @ 0x08075314 + push {lr} + ldr r2, _08075330 @ =gUnk_03003F80 + adds r2, #0xa8 + movs r3, #2 + strb r3, [r2] + ldr r3, _08075334 @ =gUnk_0811BD44 + ldrb r2, [r0, #4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_08075330: .4byte gUnk_03003F80 +_08075334: .4byte gUnk_0811BD44 + + thumb_func_start sub_08075338 +sub_08075338: @ 0x08075338 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r7, r1, #0 + ldr r4, _0807536C @ =gUnk_03003F80 + ldr r1, [r4, #0x30] + movs r3, #0x80 + adds r0, r1, #0 + ands r0, r3 + cmp r0, #0 + beq _08075370 + ldrb r0, [r5, #9] + movs r1, #0x80 + orrs r1, r0 + strb r1, [r5, #9] + adds r0, r5, #0 + adds r1, r7, #0 + bl sub_08077D38 + movs r0, #0xc0 + lsls r0, r0, #4 + strh r0, [r4, #8] + movs r0, #0x75 + bl sub_080A3268 + b _080754B4 + .align 2, 0 +_0807536C: .4byte gUnk_03003F80 +_08075370: + ldrb r2, [r4, #2] + cmp r2, #0 + beq _080753DC + movs r6, #7 + adds r0, r6, #0 + ands r0, r2 + cmp r0, #3 + beq _080753E4 + movs r0, #0x78 + ands r0, r2 + cmp r0, #0 + bne _080753E4 + ldr r3, _080753D4 @ =gUnk_03001160 + ldr r1, [r3, #0x20] + ldr r0, _080753D8 @ =0x00017FFF + cmp r1, r0 + bhi _080753E4 + adds r0, r4, #0 + adds r0, #0xac + ldrh r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080753E4 + ldr r0, [r3, #0x34] + cmp r0, #0 + beq _080753E4 + movs r0, #0x20 + orrs r0, r2 + strb r0, [r4, #2] + adds r0, r4, #0 + adds r0, #0xab + strb r6, [r0] + movs r0, #8 + asrs r0, r7 + lsls r1, r0, #4 + orrs r0, r1 + ldrb r1, [r4, #4] + orrs r0, r1 + strb r0, [r4, #4] + adds r0, r5, #0 + bl sub_08077B98 + movs r0, #6 + strb r0, [r5, #4] + adds r0, r5, #0 + adds r1, r7, #0 + bl sub_08075898 + b _080754B4 + .align 2, 0 +_080753D4: .4byte gUnk_03001160 +_080753D8: .4byte 0x00017FFF +_080753DC: + ldr r2, _080753F0 @ =gUnk_03001160 + ldr r0, [r2, #0x34] + cmp r0, #0 + beq _080753F4 +_080753E4: + adds r0, r5, #0 + adds r1, r7, #0 + bl sub_080759B8 + b _080754B4 + .align 2, 0 +_080753F0: .4byte gUnk_03001160 +_080753F4: + movs r6, #0x80 + lsls r6, r6, #0xb + ands r6, r1 + cmp r6, #0 + beq _08075480 + adds r0, r4, #0 + adds r0, #0xac + ldrh r1, [r0] + movs r0, #2 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #0 + bne _0807541E + ldr r0, [r4, #0x2c] + cmp r0, #0 + beq _080754B4 + bl sub_0805E7BC + str r6, [r4, #0x2c] + b _080754B4 +_0807541E: + adds r0, r5, #0 + adds r1, r7, #0 + bl sub_08077D38 + adds r0, r5, #0 + bl sub_08077B98 + movs r3, #8 + adds r1, r3, #0 + asrs r1, r7 + lsls r0, r1, #4 + orrs r0, r1 + ldrb r2, [r4, #4] + orrs r0, r2 + strb r0, [r4, #4] + ldrb r2, [r4, #0xa] + adds r0, r1, #0 + orrs r0, r2 + strb r0, [r4, #0xa] + ldrb r0, [r4, #0xb] + orrs r1, r0 + strb r1, [r4, #0xb] + strb r3, [r5, #4] + movs r0, #0x14 + strb r0, [r5, #7] + movs r0, #6 + strb r0, [r5, #0xf] + ldrb r1, [r5, #9] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r5, #9] + adds r1, r4, #0 + adds r1, #0xab + movs r0, #2 + strb r0, [r1] + ldr r0, [r4, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x14 + orrs r0, r1 + str r0, [r4, #0x30] + movs r1, #0x98 + lsls r1, r1, #1 + adds r0, r5, #0 + bl sub_08077DF4 + movs r0, #0x77 + bl sub_080A3268 + b _080754B4 +_08075480: + ldrb r1, [r4, #0x1b] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + bne _08075492 + strb r6, [r4, #0x1b] + adds r0, r2, #0 + bl sub_0806F948 +_08075492: + ldr r1, [r4, #0x2c] + cmp r1, #0 + beq _080754A6 + ldrb r0, [r1, #9] + cmp r0, #1 + beq _080754A6 + adds r0, r1, #0 + bl sub_0805E7BC + str r6, [r4, #0x2c] +_080754A6: + adds r0, r5, #0 + adds r1, r7, #0 + bl sub_08077D38 + adds r0, r5, #0 + bl sub_08077B98 +_080754B4: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_080754B8 +sub_080754B8: @ 0x080754B8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r6, r1, #0 + ldr r7, _080754D4 @ =gUnk_03003F80 + ldrb r1, [r7, #0x1b] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080754D8 + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08075694 + b _0807557E + .align 2, 0 +_080754D4: .4byte gUnk_03003F80 +_080754D8: + ldrb r0, [r7, #4] + cmp r0, #0 + beq _08075576 + adds r0, r4, #0 + bl sub_08077E24 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080754F2 + ldrb r1, [r4, #9] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #9] +_080754F2: + ldr r0, _0807552C @ =gUnk_03001160 + adds r0, #0x5b + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08075538 + bl sub_0807B014 + adds r5, r0, #0 + cmp r5, #0 + beq _08075538 + movs r0, #8 + movs r1, #0xf + movs r2, #2 + bl sub_0805EB00 + cmp r0, #0 + bne _08075538 + adds r0, r4, #0 + movs r1, #0xf + bl sub_08077C3C + cmp r5, #0xf + bne _08075530 + adds r1, r7, #0 + adds r1, #0xab + movs r0, #5 + b _08075536 + .align 2, 0 +_0807552C: .4byte gUnk_03001160 +_08075530: + adds r1, r7, #0 + adds r1, #0xab + movs r0, #8 +_08075536: + strb r0, [r1] +_08075538: + ldrb r1, [r4, #0xe] + movs r2, #0x80 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _0807557E + ldr r1, _08075568 @ =gUnk_03003F80 + ldr r0, [r1, #0x30] + ands r0, r2 + cmp r0, #0 + bne _0807555C + adds r0, r1, #0 + adds r0, #0xac + ldrh r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0807556C +_0807555C: + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_080759B8 + b _0807557E + .align 2, 0 +_08075568: .4byte gUnk_03003F80 +_0807556C: + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08075580 + b _0807557E +_08075576: + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_080759B8 +_0807557E: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08075580 +sub_08075580: @ 0x08075580 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08077EFC + cmp r0, #0 + beq _080755E6 + ldr r2, _080755C8 @ =gUnk_03003F80 + ldrb r3, [r2, #2] + cmp r3, #0 + bne _080755E6 + movs r1, #8 + asrs r1, r5 + ldrb r0, [r2, #0xa] + bics r0, r1 + strb r0, [r2, #0xa] + movs r0, #1 + strb r0, [r2, #0x1b] + ldr r0, [r2, #0x2c] + adds r0, #0x40 + movs r1, #0xd + strb r1, [r0] + strb r3, [r4, #0xf] + movs r0, #2 + strb r0, [r4, #4] + adds r0, r2, #0 + adds r0, #0xac + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080755CC + movs r0, #0x28 + b _080755CE + .align 2, 0 +_080755C8: .4byte gUnk_03003F80 +_080755CC: + movs r0, #0x50 +_080755CE: + strb r0, [r4, #7] + movs r1, #0xb4 + lsls r1, r1, #1 + adds r0, r4, #0 + bl sub_08077DF4 + movs r0, #0x43 + movs r1, #0 + movs r2, #0 + bl sub_080A2960 + b _080755EE +_080755E6: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080759B8 +_080755EE: + pop {r4, r5, pc} + + thumb_func_start sub_080755F0 +sub_080755F0: @ 0x080755F0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08077EFC + cmp r0, #0 + beq _08075642 + adds r0, r4, #0 + bl sub_08077EC8 + cmp r0, #0 + bne _0807564A + ldr r2, _08075634 @ =gUnk_03003F80 + ldrb r3, [r2, #0x1b] + ldrb r0, [r2, #4] + orrs r0, r3 + cmp r0, #0 + beq _08075638 + ldrb r0, [r4, #7] + subs r0, #1 + strb r0, [r4, #7] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0807564A + movs r0, #3 + strb r0, [r4, #4] + ldrb r0, [r4, #9] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #9] + movs r0, #0x20 + orrs r0, r3 + strb r0, [r2, #0x1b] + b _0807564A + .align 2, 0 +_08075634: .4byte gUnk_03003F80 +_08075638: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080759B8 + b _0807564A +_08075642: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080759B8 +_0807564A: + pop {r4, r5, pc} + + thumb_func_start sub_0807564C +sub_0807564C: @ 0x0807564C + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + ldr r5, _08075668 @ =gUnk_03003F80 + ldrb r1, [r5, #0x1b] + ldrb r0, [r5, #4] + orrs r0, r1 + cmp r0, #0 + bne _0807566C + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_080759B8 + b _08075692 + .align 2, 0 +_08075668: .4byte gUnk_03003F80 +_0807566C: + adds r0, r4, #0 + bl sub_08077EC8 + cmp r0, #0 + bne _08075692 + adds r0, r4, #0 + bl sub_08077EFC + cmp r0, #0 + beq _0807568A + ldrb r1, [r5, #0x1b] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08075692 +_0807568A: + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08075694 +_08075692: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08075694 +sub_08075694: @ 0x08075694 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r3, #1 + strb r3, [r4, #7] + ldr r2, _080756C4 @ =gUnk_03003F80 + ldr r1, [r2, #0x30] + movs r0, #0x80 + lsls r0, r0, #0x14 + ands r0, r1 + cmp r0, #0 + beq _080756D0 + ldr r0, _080756C8 @ =0xF7FFFFFF + ands r1, r0 + ldr r0, _080756CC @ =0xFFFBFFFF + ands r1, r0 + str r1, [r2, #0x30] + movs r1, #0x96 + lsls r1, r1, #1 + adds r0, r4, #0 + bl sub_08077DF4 + b _080756E0 + .align 2, 0 +_080756C4: .4byte gUnk_03003F80 +_080756C8: .4byte 0xF7FFFFFF +_080756CC: .4byte 0xFFFBFFFF +_080756D0: + adds r0, r2, #0 + adds r0, #0xab + strb r3, [r0] + movs r1, #0x92 + lsls r1, r1, #1 + adds r0, r4, #0 + bl sub_08077DF4 +_080756E0: + ldr r2, _08075730 @ =gUnk_03003F80 + movs r0, #8 + asrs r0, r5 + ldrb r1, [r2, #0xa] + orrs r0, r1 + strb r0, [r2, #0xa] + movs r0, #4 + strb r0, [r4, #4] + movs r0, #6 + strb r0, [r4, #0xf] + ldr r0, _08075734 @ =gUnk_03001160 + adds r0, #0x40 + movs r1, #0x1e + strb r1, [r0] + ldrb r1, [r2, #0x1b] + movs r0, #0x40 + orrs r0, r1 + movs r1, #0xdf + ands r0, r1 + strb r0, [r2, #0x1b] + adds r3, r2, #0 + adds r3, #0xa0 + ldrb r0, [r3] + cmp r0, #4 + bne _08075726 + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _08075726 + movs r0, #1 + strb r0, [r3] + bl sub_0807A108 +_08075726: + movs r0, #0x76 + bl sub_080A3268 + pop {r4, r5, pc} + .align 2, 0 +_08075730: .4byte gUnk_03003F80 +_08075734: .4byte gUnk_03001160 + + thumb_func_start sub_08075738 +sub_08075738: @ 0x08075738 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r6, r1, #0 + ldr r5, _08075750 @ =gUnk_03003F80 + ldrb r0, [r5, #4] + cmp r0, #0 + bne _08075754 + adds r0, r4, #0 + bl sub_080759B8 + b _0807588C + .align 2, 0 +_08075750: .4byte gUnk_03003F80 +_08075754: + adds r0, r4, #0 + bl sub_08077E24 + adds r0, r4, #0 + bl sub_08077F10 + cmp r0, #0 + beq _08075768 + movs r0, #2 + strb r0, [r4, #7] +_08075768: + ldrb r2, [r5, #0x1b] + movs r0, #0x10 + ands r0, r2 + cmp r0, #0 + beq _080757D4 + ldrb r1, [r5, #0xd] + movs r2, #0x80 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _08075780 + strb r1, [r4, #0xb] +_08075780: + ldr r1, _080757D0 @ =gUnk_03001160 + ldrb r0, [r4, #0xb] + strb r0, [r1, #0x15] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r1, #0x24] + ldrb r1, [r4, #0xe] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _0807588C + movs r2, #0xa + adds r0, r5, #0 + adds r0, #0xac + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080757AA + movs r2, #0xf +_080757AA: + ldrb r0, [r4, #8] + adds r0, #1 + strb r0, [r4, #8] + movs r1, #0xff + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r2, r0 + bls _080757C6 + ldrb r0, [r4, #7] + subs r0, #1 + strb r0, [r4, #7] + ands r0, r1 + cmp r0, #0 + bne _0807588C +_080757C6: + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_080759B8 + b _0807588C + .align 2, 0 +_080757D0: .4byte gUnk_03001160 +_080757D4: + ldr r7, _08075890 @ =gUnk_03001160 + adds r0, r7, #0 + adds r0, #0x5b + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08075816 + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + bne _08075816 + adds r0, r5, #0 + adds r0, #0xac + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08075816 + adds r0, r4, #0 + movs r1, #0x14 + bl sub_08077C3C + adds r2, r0, #0 + cmp r2, #0 + beq _08075816 + ldrb r0, [r7, #0x14] + movs r1, #6 + ands r1, r0 + movs r0, #0x80 + orrs r1, r0 + strb r1, [r2, #0x14] +_08075816: + ldr r5, _08075890 @ =gUnk_03001160 + adds r0, r5, #0 + adds r0, #0x5b + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0807587A + ldr r2, _08075894 @ =gUnk_03003F80 + ldrb r3, [r2, #0x1b] + movs r0, #0x80 + ands r0, r3 + cmp r0, #0 + bne _0807587A + adds r0, r2, #0 + adds r0, #0xac + ldrh r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0807587A + ldrb r0, [r4, #7] + subs r0, #1 + strb r0, [r4, #7] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0807587A + movs r0, #0x10 + orrs r0, r3 + strb r0, [r2, #0x1b] + adds r1, r2, #0 + adds r1, #0xab + movs r0, #6 + strb r0, [r1] + ldrb r0, [r5, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0xb] + movs r0, #1 + strb r0, [r4, #7] + strb r0, [r4, #8] + movs r1, #8 + asrs r1, r6 + ldrb r0, [r2, #0xa] + bics r0, r1 + strb r0, [r2, #0xa] + movs r1, #0x94 + lsls r1, r1, #1 + adds r0, r4, #0 + bl sub_08077DF4 +_0807587A: + ldrb r1, [r4, #0xe] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807588C + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_080759B8 +_0807588C: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08075890: .4byte gUnk_03001160 +_08075894: .4byte gUnk_03003F80 + + thumb_func_start sub_08075898 +sub_08075898: @ 0x08075898 + push {lr} + adds r2, r0, #0 + ldr r0, _080758AC @ =gUnk_03003F80 + ldrb r0, [r0, #4] + cmp r0, #0 + bne _080758AA + adds r0, r2, #0 + bl sub_080759B8 +_080758AA: + pop {pc} + .align 2, 0 +_080758AC: .4byte gUnk_03003F80 + + thumb_func_start sub_080758B0 +sub_080758B0: @ 0x080758B0 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _080758C4 @ =gUnk_03003F80 + ldrb r0, [r5, #4] + cmp r0, #0 + bne _080758C8 + adds r0, r4, #0 + bl sub_080759B8 + b _080758F8 + .align 2, 0 +_080758C4: .4byte gUnk_03003F80 +_080758C8: + adds r0, r4, #0 + bl sub_08077E24 + ldrb r1, [r4, #0xe] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080758F8 + movs r0, #0 + strb r0, [r4, #0xf] + ldrb r1, [r5, #0x1b] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080758EA + movs r0, #3 + b _080758EC +_080758EA: + movs r0, #5 +_080758EC: + strb r0, [r4, #4] + ldr r2, _080758FC @ =gUnk_03003F80 + ldrb r1, [r2, #0x1b] + movs r0, #0xf7 + ands r0, r1 + strb r0, [r2, #0x1b] +_080758F8: + pop {r4, r5, pc} + .align 2, 0 +_080758FC: .4byte gUnk_03003F80 + + thumb_func_start sub_08075900 +sub_08075900: @ 0x08075900 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + ldr r5, _08075920 @ =gUnk_03003F80 + ldrb r0, [r5, #0x12] + cmp r0, #0x11 + bne _08075928 + ldr r0, [r5, #0x30] + ldr r1, _08075924 @ =0xFFFBFFFF + ands r0, r1 + str r0, [r5, #0x30] + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_080759B8 + b _080759B2 + .align 2, 0 +_08075920: .4byte gUnk_03003F80 +_08075924: .4byte 0xFFFBFFFF +_08075928: + adds r0, r4, #0 + bl sub_08077E24 + ldrb r1, [r5, #0x1b] + movs r2, #0x80 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _08075948 + movs r0, #0xa0 + strb r0, [r5, #0x1b] + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_0807564C + b _080759B2 +_08075948: + ldrb r0, [r4, #7] + cmp r0, #0 + beq _08075998 + subs r0, #1 + strb r0, [r4, #7] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08075962 + movs r1, #0x9a + lsls r1, r1, #1 + adds r0, r4, #0 + bl sub_08077DF4 +_08075962: + ldr r4, _08075990 @ =gUnk_03001160 + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #3 + strb r0, [r4, #0x15] + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + bl sub_08079E08 + ldr r0, _08075994 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _080759B2 + adds r0, r4, #0 + movs r1, #0x11 + movs r2, #0x40 + bl sub_080A29AC + b _080759B2 + .align 2, 0 +_08075990: .4byte gUnk_03001160 +_08075994: .4byte gUnk_030010A0 +_08075998: + ldrb r1, [r4, #0xe] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _080759B2 + ldr r0, [r5, #0x30] + ldr r1, _080759B4 @ =0xFFFBFFFF + ands r0, r1 + str r0, [r5, #0x30] + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_080759B8 +_080759B2: + pop {r4, r5, r6, pc} + .align 2, 0 +_080759B4: .4byte 0xFFFBFFFF + + thumb_func_start sub_080759B8 +sub_080759B8: @ 0x080759B8 + push {r4, lr} + adds r3, r0, #0 + adds r4, r1, #0 + ldr r2, _080759E8 @ =gUnk_03003F80 + ldr r1, [r2, #0x30] + movs r0, #0x80 + ands r1, r0 + cmp r1, #0 + bne _080759D0 + ldr r0, _080759EC @ =gUnk_03001160 + adds r0, #0x40 + strb r1, [r0] +_080759D0: + ldr r0, [r2, #0x30] + ldr r1, _080759F0 @ =0xF7FFFFFF + ands r0, r1 + str r0, [r2, #0x30] + movs r0, #0 + strb r0, [r2, #0x1b] + str r0, [r2, #0x2c] + adds r0, r3, #0 + adds r1, r4, #0 + bl sub_08077E78 + pop {r4, pc} + .align 2, 0 +_080759E8: .4byte gUnk_03003F80 +_080759EC: .4byte gUnk_03001160 +_080759F0: .4byte 0xF7FFFFFF + + thumb_func_start sub_080759F4 +sub_080759F4: @ 0x080759F4 + push {lr} + ldr r3, _08075A08 @ =gUnk_0811BD68 + ldrb r2, [r0, #4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_08075A08: .4byte gUnk_0811BD68 + + thumb_func_start sub_08075A0C +sub_08075A0C: @ 0x08075A0C + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r4, #1] + bl sub_0805436C + adds r6, r0, #0 + ldr r1, _08075A64 @ =gUnk_03003F80 + ldrb r0, [r1, #5] + cmp r0, #0 + bne _08075A3E + ldrb r0, [r1, #0xc] + cmp r0, #0x18 + beq _08075A3E + ldrb r0, [r1, #2] + cmp r0, #0 + bne _08075A3E + ldr r0, [r1, #0x2c] + cmp r0, #0 + bne _08075A3E + ldr r0, [r1, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08075A6C +_08075A3E: + movs r0, #0xf + adds r1, r6, #0 + bl sub_08054414 + ldr r0, _08075A64 @ =gUnk_03003F80 + ldr r1, [r0, #0x30] + ldr r2, _08075A68 @ =0xFF7FFFFF + ands r1, r2 + str r1, [r0, #0x30] + movs r0, #0xf + adds r1, r6, #0 + bl sub_08054414 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077E78 + b _08075AD0 + .align 2, 0 +_08075A64: .4byte gUnk_03003F80 +_08075A68: .4byte 0xFF7FFFFF +_08075A6C: + ldrb r1, [r4, #9] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #9] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077D38 + adds r0, r4, #0 + bl sub_08077BD4 + ldr r5, _08075AD4 @ =gUnk_03001160 + adds r0, r5, #0 + bl sub_0806F948 + movs r0, #0x10 + strb r0, [r4, #1] + adds r1, r6, #0 + bl sub_08054414 + ldrb r1, [r5, #0x14] + movs r0, #6 + ands r0, r1 + ldr r1, _08075AD8 @ =gUnk_08126EEC + adds r4, r0, r1 + adds r0, r5, #0 + movs r1, #0x45 + movs r2, #1 + movs r3, #0 + bl sub_080A2988 + adds r2, r0, #0 + cmp r2, #0 + beq _08075AD0 + adds r0, r5, #0 + adds r0, #0x60 + ldrh r1, [r0] + adds r0, r2, #0 + adds r0, #0x60 + strh r1, [r0] + movs r0, #0 + ldrsb r0, [r4, r0] + ldrh r1, [r2, #0x2e] + adds r0, r0, r1 + strh r0, [r2, #0x2e] + movs r0, #1 + ldrsb r0, [r4, r0] + ldrh r1, [r2, #0x32] + adds r0, r0, r1 + strh r0, [r2, #0x32] +_08075AD0: + pop {r4, r5, r6, pc} + .align 2, 0 +_08075AD4: .4byte gUnk_03001160 +_08075AD8: .4byte gUnk_08126EEC + + thumb_func_start sub_08075ADC +sub_08075ADC: @ 0x08075ADC + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r2, _08075B44 @ =gUnk_03003F80 + ldr r0, [r2, #0x2c] + cmp r0, #0 + bne _08075B08 + ldrb r1, [r4, #0xe] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08075B08 + ldr r0, [r2, #0x30] + movs r1, #0x88 + lsls r1, r1, #1 + ands r0, r1 + cmp r0, #0 + bne _08075B08 + bl sub_08079D48 + cmp r0, #0 + bne _08075B4C +_08075B08: + movs r0, #0 + strb r0, [r4, #0xf] + ldrb r0, [r4, #4] + adds r0, #1 + strb r0, [r4, #4] + ldr r3, _08075B44 @ =gUnk_03003F80 + ldr r0, [r3, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x10 + orrs r0, r1 + str r0, [r3, #0x30] + movs r2, #8 + asrs r2, r5 + lsls r1, r2, #4 + orrs r1, r2 + ldrb r0, [r3, #4] + bics r0, r1 + strb r0, [r3, #4] + mvns r2, r2 + ldrb r1, [r3, #0xa] + adds r0, r2, #0 + ands r0, r1 + strb r0, [r3, #0xa] + ldrb r0, [r3, #0xb] + ands r2, r0 + strb r2, [r3, #0xb] + ldr r0, _08075B48 @ =0x0000013D + bl sub_080A3268 + b _08075B52 + .align 2, 0 +_08075B44: .4byte gUnk_03003F80 +_08075B48: .4byte 0x0000013D +_08075B4C: + adds r0, r4, #0 + bl sub_08077E24 +_08075B52: + pop {r4, r5, pc} + + thumb_func_start sub_08075B54 +sub_08075B54: @ 0x08075B54 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r6, r0, #0 + mov sb, r1 + ldr r5, _08075BB0 @ =gUnk_03003F80 + ldr r0, [r5, #0x30] + movs r1, #0x88 + lsls r1, r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08075B70 + b _08075C80 +_08075B70: + ldrb r0, [r6, #1] + bl sub_0805436C + adds r4, r0, #0 + adds r0, r6, #0 + bl sub_08077F10 + cmp r0, #0 + bne _08075B86 + cmp r4, #1 + bls _08075BB8 +_08075B86: + ldrb r0, [r5, #2] + cmp r0, #0 + bne _08075BB8 + movs r0, #0xf + adds r1, r4, #0 + bl sub_08054414 + ldr r0, [r5, #0x30] + ldr r1, _08075BB4 @ =0xFF7FFFFF + ands r0, r1 + str r0, [r5, #0x30] + adds r0, r6, #0 + mov r1, sb + bl sub_08077E78 + movs r0, #0x9f + lsls r0, r0, #1 + bl sub_080A3268 + b _08075C80 + .align 2, 0 +_08075BB0: .4byte gUnk_03003F80 +_08075BB4: .4byte 0xFF7FFFFF +_08075BB8: + ldr r0, _08075C88 @ =gUnk_03003F80 + mov r8, r0 + ldrb r0, [r0, #0xc] + cmp r0, #0x18 + beq _08075C80 + ldr r5, _08075C8C @ =gUnk_03001160 + ldrb r0, [r5, #0x1e] + cmp r0, #0x36 + bhi _08075C80 + ldrh r1, [r5, #0x12] + cmp r1, #6 + bne _08075C80 + ldrb r0, [r5, #0x14] + ands r1, r0 + ldr r0, _08075C90 @ =gUnk_08126EEC + adds r7, r1, r0 + mov r1, r8 + ldrb r0, [r1, #2] + cmp r0, #0 + bne _08075C80 + movs r2, #0x2e + ldrsh r0, [r5, r2] + movs r1, #0 + ldrsb r1, [r7, r1] + adds r0, r0, r1 + ldr r4, _08075C94 @ =gUnk_03000BF0 + ldrh r1, [r4, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r2, #0x32 + ldrsh r1, [r5, r2] + movs r2, #1 + ldrsb r2, [r7, r2] + adds r1, r1, r2 + ldrh r2, [r4, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + adds r1, r5, #0 + adds r1, #0x38 + ldrb r1, [r1] + movs r2, #0x40 + bl sub_080002F0 + cmp r0, #0 + beq _08075C80 + movs r0, #0xf + strb r0, [r6, #0xf] + ldrb r0, [r6, #4] + adds r0, #1 + strb r0, [r6, #4] + adds r1, r5, #0 + adds r1, #0x7a + movs r0, #2 + strh r0, [r1] + adds r0, r5, #0 + movs r1, #0x45 + movs r2, #1 + movs r3, #0 + bl sub_080A2988 + adds r2, r0, #0 + cmp r2, #0 + beq _08075C60 + adds r0, r5, #0 + adds r0, #0x60 + ldrh r1, [r0] + adds r0, r2, #0 + adds r0, #0x60 + strh r1, [r0] + movs r0, #0 + ldrsb r0, [r7, r0] + ldrh r1, [r2, #0x2e] + adds r0, r0, r1 + strh r0, [r2, #0x2e] + movs r0, #1 + ldrsb r0, [r7, r0] + ldrh r1, [r2, #0x32] + adds r0, r0, r1 + strh r0, [r2, #0x32] +_08075C60: + ldr r1, _08075C98 @ =0x0000060C + adds r0, r6, #0 + bl sub_08077DF4 + movs r1, #8 + mov r2, sb + asrs r1, r2 + mov r0, r8 + ldrb r2, [r0, #0xa] + adds r0, r1, #0 + orrs r0, r2 + mov r2, r8 + strb r0, [r2, #0xa] + ldrb r0, [r2, #0xb] + orrs r1, r0 + strb r1, [r2, #0xb] +_08075C80: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08075C88: .4byte gUnk_03003F80 +_08075C8C: .4byte gUnk_03001160 +_08075C90: .4byte gUnk_08126EEC +_08075C94: .4byte gUnk_03000BF0 +_08075C98: .4byte 0x0000060C + + thumb_func_start sub_08075C9C +sub_08075C9C: @ 0x08075C9C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08077E24 + ldrb r1, [r4, #0xe] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08075CCA + ldr r0, _08075CF8 @ =gUnk_03001160 + ldrb r1, [r0, #0x14] + movs r2, #6 + ands r2, r1 + ldr r1, _08075CFC @ =gUnk_08126EEC + adds r2, r2, r1 + movs r1, #0 + ldrsb r1, [r2, r1] + ldrb r2, [r2, #1] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + bl sub_0807AB44 +_08075CCA: + ldrb r1, [r4, #0xe] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08075D04 + movs r0, #0 + strb r0, [r4, #0xf] + ldrb r0, [r4, #4] + subs r0, #1 + strb r0, [r4, #4] + ldr r2, _08075D00 @ =gUnk_03003F80 + movs r1, #8 + asrs r1, r5 + mvns r1, r1 + ldrb r3, [r2, #0xa] + adds r0, r1, #0 + ands r0, r3 + strb r0, [r2, #0xa] + ldrb r0, [r2, #0xb] + ands r1, r0 + strb r1, [r2, #0xb] + b _08075D0E + .align 2, 0 +_08075CF8: .4byte gUnk_03001160 +_08075CFC: .4byte gUnk_08126EEC +_08075D00: .4byte gUnk_03003F80 +_08075D04: + ldr r1, _08075D10 @ =gUnk_03001160 + adds r1, #0x7a + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] +_08075D0E: + pop {r4, r5, pc} + .align 2, 0 +_08075D10: .4byte gUnk_03001160 + + thumb_func_start sub_08075D14 +sub_08075D14: @ 0x08075D14 + push {lr} + ldr r3, _08075D28 @ =gUnk_0811BD78 + ldrb r2, [r0, #4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_08075D28: .4byte gUnk_0811BD78 + + thumb_func_start sub_08075D2C +sub_08075D2C: @ 0x08075D2C + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + ldr r5, _08075D74 @ =gUnk_03003F80 + ldrb r1, [r5, #4] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + bne _08075D7C + ldrb r1, [r4, #1] + adds r0, r4, #0 + bl sub_08077C94 + cmp r0, #0 + bne _08075D7C + ldrb r1, [r4, #9] + movs r0, #0xf + orrs r0, r1 + strb r0, [r4, #9] + ldr r0, _08075D78 @ =gUnk_03001160 + bl sub_0806F948 + adds r0, r4, #0 + movs r1, #0xb + bl sub_08077C0C + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08077D38 + ldrb r1, [r5, #4] + movs r0, #8 + orrs r0, r1 + strb r0, [r5, #4] + b _08075D84 + .align 2, 0 +_08075D74: .4byte gUnk_03003F80 +_08075D78: .4byte gUnk_03001160 +_08075D7C: + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08077E78 +_08075D84: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08075D88 +sub_08075D88: @ 0x08075D88 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r2, _08075DBC @ =gUnk_03003F80 + ldrb r1, [r2, #4] + movs r3, #0x80 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + bne _08075DD0 + ldrb r0, [r4, #1] + cmp r0, #0xc + bne _08075DC0 + ldrb r1, [r2, #0xa] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _08075DC0 + ldrb r1, [r4, #0xe] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08075DC0 + bl sub_08078F60 + b _08075DD8 + .align 2, 0 +_08075DBC: .4byte gUnk_03003F80 +_08075DC0: + adds r0, r4, #0 + bl sub_08077E24 + ldrb r1, [r4, #0xe] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08075DD8 +_08075DD0: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077E78 +_08075DD8: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08075DDC +sub_08075DDC: @ 0x08075DDC + push {lr} + ldr r3, _08075DF0 @ =gUnk_0811BD80 + ldrb r2, [r0, #4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_08075DF0: .4byte gUnk_0811BD80 + + thumb_func_start sub_08075DF4 +sub_08075DF4: @ 0x08075DF4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r6, _08075E2C @ =gUnk_03003F80 + ldrb r1, [r6, #4] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + bne _08075E34 + ldrb r1, [r4, #9] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #9] + ldr r0, _08075E30 @ =gUnk_03001160 + bl sub_0806F948 + adds r0, r4, #0 + bl sub_08077BB8 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077D38 + adds r1, r6, #0 + adds r1, #0x21 + movs r0, #1 + strb r0, [r1] + b _08075E3C + .align 2, 0 +_08075E2C: .4byte gUnk_03003F80 +_08075E30: .4byte gUnk_03001160 +_08075E34: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077E78 +_08075E3C: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08075E40 +sub_08075E40: @ 0x08075E40 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + mov r8, r1 + ldr r0, _08075EA0 @ =gUnk_03003F80 + adds r1, r0, #0 + adds r1, #0x21 + ldrb r1, [r1] + adds r6, r0, #0 + cmp r1, #0 + beq _08075EA8 + ldrb r1, [r6, #4] + movs r5, #0x80 + adds r0, r5, #0 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #0 + bne _08075EA8 + adds r0, r4, #0 + bl sub_08077E24 + ldrb r1, [r4, #0xe] + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _08075EB8 + movs r0, #2 + strb r0, [r4, #4] + ldrb r1, [r4, #9] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #9] + ldr r0, _08075EA4 @ =gUnk_02002A40 + adds r0, #0xad + ldrb r0, [r0] + cmp r0, #0 + beq _08075EB8 + strb r7, [r4, #0xf] + movs r1, #8 + mov r0, r8 + asrs r1, r0 + ldrb r0, [r6, #0xa] + bics r0, r1 + strb r0, [r6, #0xa] + b _08075EB8 + .align 2, 0 +_08075EA0: .4byte gUnk_03003F80 +_08075EA4: .4byte gUnk_02002A40 +_08075EA8: + adds r1, r6, #0 + adds r1, #0x21 + movs r0, #0 + strb r0, [r1] + adds r0, r4, #0 + mov r1, r8 + bl sub_08077E78 +_08075EB8: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08075EC0 +sub_08075EC0: @ 0x08075EC0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + ldr r0, _08075F04 @ =gUnk_02002A40 + adds r0, #0xad + ldrb r5, [r0] + adds r0, r4, #0 + bl sub_08077EFC + cmp r0, #0 + beq _08075F0C + cmp r5, #0 + beq _08075F0C + ldr r2, _08075F08 @ =gUnk_03003F80 + ldrb r1, [r2, #4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08075EF0 + adds r0, r2, #0 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #0 + bne _08075F32 +_08075EF0: + adds r1, r2, #0 + adds r1, #0x21 + movs r0, #0 + strb r0, [r1] + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08077E78 + b _08075F32 + .align 2, 0 +_08075F04: .4byte gUnk_02002A40 +_08075F08: .4byte gUnk_03003F80 +_08075F0C: + ldr r2, _08075F34 @ =gUnk_03003F80 + movs r0, #8 + asrs r0, r6 + ldrb r1, [r2, #0xa] + orrs r0, r1 + strb r0, [r2, #0xa] + movs r1, #0x9f + lsls r1, r1, #2 + adds r0, r4, #0 + bl sub_08077DF4 + movs r1, #0xf + movs r0, #0xf + strb r0, [r4, #0xf] + ldrb r0, [r4, #9] + orrs r1, r0 + strb r1, [r4, #9] + movs r0, #3 + strb r0, [r4, #4] +_08075F32: + pop {r4, r5, r6, pc} + .align 2, 0 +_08075F34: .4byte gUnk_03003F80 + + thumb_func_start sub_08075F38 +sub_08075F38: @ 0x08075F38 + push {r4, lr} + adds r4, r0, #0 + adds r3, r1, #0 + ldr r2, _08075F6C @ =gUnk_03003F80 + ldrb r1, [r2, #4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08075F70 + adds r0, r2, #0 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #0 + beq _08075F70 + adds r0, r4, #0 + bl sub_08077E24 + ldrb r1, [r4, #0xe] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08075F80 + movs r0, #4 + strb r0, [r4, #4] + b _08075F80 + .align 2, 0 +_08075F6C: .4byte gUnk_03003F80 +_08075F70: + adds r1, r2, #0 + adds r1, #0x21 + movs r0, #0 + strb r0, [r1] + adds r0, r4, #0 + adds r1, r3, #0 + bl sub_08077E78 +_08075F80: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08075F84 +sub_08075F84: @ 0x08075F84 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r2, _08075FB4 @ =gUnk_03003F80 + ldrb r1, [r2, #4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08075FC8 + adds r0, r2, #0 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #0 + beq _08075FC8 + movs r0, #0x70 + bl sub_0807CA84 + cmp r0, #1 + bne _08075FB8 + adds r0, r4, #0 + movs r1, #5 + bl sub_08077E3C + b _08075FBE + .align 2, 0 +_08075FB4: .4byte gUnk_03003F80 +_08075FB8: + adds r0, r4, #0 + bl sub_08077E24 +_08075FBE: + ldrb r1, [r4, #0xe] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08075FD8 +_08075FC8: + ldr r0, _08075FDC @ =gUnk_03003F80 + adds r0, #0x21 + movs r1, #0 + strb r1, [r0] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077E78 +_08075FD8: + pop {r4, r5, pc} + .align 2, 0 +_08075FDC: .4byte gUnk_03003F80 + + thumb_func_start sub_08075FE0 +sub_08075FE0: @ 0x08075FE0 + push {lr} + ldr r3, _08075FF4 @ =gUnk_0811BD98 + ldrb r2, [r0, #4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_08075FF4: .4byte gUnk_0811BD98 + + thumb_func_start sub_08075FF8 +sub_08075FF8: @ 0x08075FF8 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r7, r1, #0 + ldr r0, _08076018 @ =gUnk_03003F80 + ldrb r1, [r0, #2] + ldrb r0, [r0, #4] + orrs r0, r1 + cmp r0, #0 + bne _08076076 + movs r5, #0 + movs r0, #8 + movs r1, #2 + movs r2, #2 + bl sub_0805EB00 + b _08076026 + .align 2, 0 +_08076018: .4byte gUnk_03003F80 +_0807601C: + adds r5, #1 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805EB64 +_08076026: + adds r4, r0, #0 + cmp r4, #0 + bne _0807601C + ldrb r0, [r6, #1] + movs r1, #1 + cmp r0, #7 + bne _08076036 + movs r1, #3 +_08076036: + cmp r1, r5 + bls _08076076 + adds r0, r6, #0 + movs r1, #2 + bl sub_08077C3C + adds r4, r0, #0 + cmp r4, #0 + beq _08076076 + ldr r0, _08076080 @ =gUnk_03001160 + ldrb r2, [r0, #0x14] + movs r1, #6 + ands r1, r2 + ldr r2, _08076084 @ =gUnk_0811BDAC + adds r1, r1, r2 + movs r2, #0 + ldrsb r2, [r1, r2] + lsls r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r1, r3] + lsls r3, r3, #0x10 + adds r1, r4, #0 + bl sub_0806FA48 + movs r0, #1 + rsbs r0, r0, #0 + bl sub_080542F4 + movs r0, #0x82 + lsls r0, r0, #1 + bl sub_080A3268 +_08076076: + adds r0, r6, #0 + adds r1, r7, #0 + bl sub_08077E78 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08076080: .4byte gUnk_03001160 +_08076084: .4byte gUnk_0811BDAC + + thumb_func_start sub_08076088 +sub_08076088: @ 0x08076088 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + adds r3, r1, #0 + adds r5, r2, #0 + cmp r3, #0 + beq _080760AA + ldrb r0, [r3, #0x16] + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _080760A4 + b _080761A0 +_080760A4: + movs r0, #2 + strb r0, [r3, #0xc] + strb r1, [r3, #0xd] +_080760AA: + str r3, [r4, #0x18] + ldr r0, _080760C4 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _080760CC + ldr r1, _080760C8 @ =0x00000928 + adds r0, r4, #0 + bl sub_08077DF4 + b _080760D6 + .align 2, 0 +_080760C4: .4byte gUnk_03003F80 +_080760C8: .4byte 0x00000928 +_080760CC: + movs r1, #0xce + lsls r1, r1, #2 + adds r0, r4, #0 + bl sub_08077DF4 +_080760D6: + ldr r3, _08076130 @ =gUnk_03003F80 + movs r0, #0 + mov r8, r0 + movs r7, #3 + strb r7, [r3, #5] + adds r0, r3, #0 + adds r0, #0xa8 + movs r6, #4 + strb r6, [r0] + movs r0, #2 + strb r0, [r4, #4] + movs r0, #0xf + strb r0, [r4, #0xf] + ldr r2, _08076134 @ =gUnk_03001160 + movs r1, #0x79 + adds r1, r1, r2 + mov ip, r1 + ldrb r1, [r1] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08076138 + mov r1, r8 + mov r0, ip + strb r1, [r0] + ldrb r0, [r2, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + strb r6, [r3, #5] + movs r1, #8 + asrs r1, r5 + mvns r1, r1 + ldrb r2, [r3, #0xb] + adds r0, r1, #0 + ands r0, r2 + strb r0, [r3, #0xb] + ldrb r0, [r3, #0xa] + ands r1, r0 + strb r1, [r3, #0xa] + strb r7, [r4, #4] + mov r0, r8 + strb r0, [r4, #0xf] + b _0807614A + .align 2, 0 +_08076130: .4byte gUnk_03003F80 +_08076134: .4byte gUnk_03001160 +_08076138: + movs r1, #8 + asrs r1, r5 + ldrb r2, [r3, #0xa] + adds r0, r1, #0 + orrs r0, r2 + strb r0, [r3, #0xa] + ldrb r0, [r3, #0xb] + orrs r1, r0 + strb r1, [r3, #0xb] +_0807614A: + adds r0, r4, #0 + movs r1, #0x13 + bl sub_08077C3C + adds r3, r0, #0 + cmp r3, #0 + bne _08076162 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077F50 + b _080761A0 +_08076162: + ldr r1, _08076194 @ =gUnk_03001160 + str r3, [r1, #0x74] + movs r2, #0 + strb r2, [r1, #0xf] + ldr r0, [r4, #0x18] + str r0, [r3, #0x54] + ldrb r0, [r1, #0x16] + strb r0, [r3, #0x16] + str r4, [r3, #0x50] + str r3, [r4, #0x18] + ldrb r0, [r4, #3] + strb r0, [r3, #0xb] + ldrb r0, [r4, #7] + strb r0, [r3, #0xe] + ldrb r0, [r4, #8] + strb r0, [r3, #0xf] + ldr r0, [r4, #0x18] + ldrb r1, [r0, #0x16] + movs r0, #0xf0 + ands r0, r1 + cmp r0, #0x10 + bne _08076198 + movs r0, #8 + strb r0, [r4, #7] + b _0807619A + .align 2, 0 +_08076194: .4byte gUnk_03001160 +_08076198: + strb r2, [r4, #7] +_0807619A: + movs r0, #0x7f + bl sub_080A3268 +_080761A0: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_080761A8 +sub_080761A8: @ 0x080761A8 + push {lr} + ldr r3, _080761BC @ =gUnk_0811BDB4 + ldrb r2, [r0, #4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_080761BC: .4byte gUnk_0811BDB4 + + thumb_func_start sub_080761C0 +sub_080761C0: @ 0x080761C0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + ldr r5, _08076220 @ =gUnk_03003F80 + ldrb r0, [r5, #4] + cmp r0, #0 + bne _080762B8 + ldrb r0, [r5, #2] + cmp r0, #0 + beq _080761DE + ldr r0, [r5, #0x30] + ldr r1, _08076224 @ =0x00001201 + ands r0, r1 + cmp r0, #0 + beq _080762B8 +_080761DE: + ldr r1, _08076228 @ =gUnk_03001160 + ldrb r2, [r1, #0x14] + movs r0, #0x80 + orrs r0, r2 + strb r0, [r5, #1] + adds r1, #0x3d + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #8 + bgt _080762B8 + bl sub_080789A8 + adds r3, r0, #0 + cmp r3, #1 + beq _08076258 + cmp r3, #1 + blo _0807626E + cmp r3, #2 + bne _080762C0 + ldr r0, _0807622C @ =gUnk_03003BE0 + ldr r2, [r0, #8] + ldrb r1, [r2, #0x16] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _08076230 + adds r0, r4, #0 + adds r1, r2, #0 + adds r2, r6, #0 + bl sub_08076088 + b _080762C0 + .align 2, 0 +_08076220: .4byte gUnk_03003F80 +_08076224: .4byte 0x00001201 +_08076228: .4byte gUnk_03001160 +_0807622C: .4byte gUnk_03003BE0 +_08076230: + str r2, [r4, #0x18] + strb r3, [r2, #0xc] + movs r1, #5 + strb r1, [r2, #0xd] + adds r0, r5, #0 + adds r0, #0xa8 + strb r1, [r0] + adds r0, r4, #0 + adds r1, r2, #0 + movs r2, #2 + adds r3, r6, #0 + bl sub_080762C4 + ldr r0, _08076254 @ =gUnk_0200AF00 + adds r0, #0x2e + movs r1, #8 + strb r1, [r0] + b _08076264 + .align 2, 0 +_08076254: .4byte gUnk_0200AF00 +_08076258: + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + adds r3, r6, #0 + bl sub_080762C4 +_08076264: + movs r0, #0x81 + lsls r0, r0, #1 + bl sub_080A3268 + b _080762C0 +_0807626E: + movs r0, #5 + strb r0, [r4, #4] + movs r0, #0xf + strb r0, [r4, #7] + movs r0, #6 + strb r0, [r4, #0xf] + movs r3, #8 + adds r1, r3, #0 + asrs r1, r6 + ldrb r2, [r5, #0xa] + adds r0, r1, #0 + orrs r0, r2 + strb r0, [r5, #0xa] + ldrb r0, [r5, #0xb] + orrs r1, r0 + strb r1, [r5, #0xb] + ldr r0, [r5, #0x30] + ands r0, r3 + cmp r0, #0 + bne _080762A2 + movs r1, #0xde + lsls r1, r1, #2 + adds r0, r4, #0 + bl sub_08077DF4 + b _080762AA +_080762A2: + ldr r1, _080762B4 @ =0x00000948 + adds r0, r4, #0 + bl sub_08077DF4 +_080762AA: + movs r0, #0x88 + bl sub_080A3268 + b _080762C0 + .align 2, 0 +_080762B4: .4byte 0x00000948 +_080762B8: + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08077F50 +_080762C0: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080762C4 +sub_080762C4: @ 0x080762C4 + push {lr} + str r1, [r0, #0x18] + ldr r1, _080762D4 @ =gUnk_03003F80 + strb r2, [r1, #5] + adds r1, r3, #0 + bl sub_08077D38 + pop {pc} + .align 2, 0 +_080762D4: .4byte gUnk_03003F80 + + thumb_func_start sub_080762D8 +sub_080762D8: @ 0x080762D8 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r6, r1, #0 + ldr r4, _08076334 @ =gUnk_03003F80 + ldrb r0, [r4, #5] + movs r1, #0xcf + ands r1, r0 + strb r1, [r4, #5] + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_08077F64 + cmp r0, #0 + bne _080762F6 + b _08076486 +_080762F6: + ldr r0, _08076338 @ =gUnk_03001160 + adds r1, r0, #0 + adds r1, #0x3d + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r3, r0, #0 + cmp r1, #8 + bgt _0807636C + adds r0, #0x42 + ldrb r0, [r0] + cmp r0, #0 + bne _0807636C + ldr r2, [r5, #0x18] + cmp r2, #0 + beq _08076340 + ldrh r1, [r2, #0xc] + ldr r0, _0807633C @ =0x00000502 + cmp r1, r0 + bne _08076376 + adds r0, r4, #0 + adds r0, #0x90 + ldrh r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08076340 + movs r0, #6 + strb r0, [r2, #0xd] + b _08076376 + .align 2, 0 +_08076334: .4byte gUnk_03003F80 +_08076338: .4byte gUnk_03001160 +_0807633C: .4byte 0x00000502 +_08076340: + ldr r2, _08076364 @ =gUnk_03003F80 + adds r1, r2, #0 + adds r1, #0xa8 + movs r0, #5 + strb r0, [r1] + ldr r0, _08076368 @ =gUnk_0200AF00 + adds r0, #0x2e + movs r1, #8 + strb r1, [r0] + ldrb r0, [r2, #2] + cmp r0, #0 + beq _0807635A + b _0807647E +_0807635A: + ldrb r0, [r2, #5] + cmp r0, #1 + bne _08076394 + b _08076380 + .align 2, 0 +_08076364: .4byte gUnk_03003F80 +_08076368: .4byte gUnk_0200AF00 +_0807636C: + ldr r1, [r5, #0x18] + cmp r1, #0 + beq _08076376 + movs r0, #6 + strb r0, [r1, #0xd] +_08076376: + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_08077F50 + b _08076486 +_08076380: + adds r0, r3, #0 + movs r1, #6 + adds r2, r5, #0 + bl sub_0800875A + cmp r0, #0 + beq _08076394 + adds r0, r5, #0 + movs r1, #0 + b _080763EC +_08076394: + ldr r1, _080763F4 @ =gUnk_0811BE38 + ldr r7, _080763F8 @ =gUnk_03001160 + ldrb r0, [r7, #0x14] + lsrs r0, r0, #1 + lsls r3, r0, #1 + adds r1, r3, r1 + ldr r4, _080763FC @ =gUnk_03003F80 + adds r2, r4, #0 + adds r2, #0x90 + ldrh r0, [r1] + ldrh r2, [r2] + ands r0, r2 + cmp r0, #0 + beq _08076400 + adds r0, r5, #0 + bl sub_08077E24 + ldr r0, [r4, #0x30] + movs r1, #8 + ands r0, r1 + movs r1, #0x94 + lsls r1, r1, #4 + cmp r0, #0 + bne _080763C8 + movs r1, #0xd0 + lsls r1, r1, #2 +_080763C8: + ldrh r0, [r5, #0x10] + cmp r1, r0 + beq _080763D4 + adds r0, r5, #0 + bl sub_08077DF4 +_080763D4: + ldrb r0, [r4, #5] + movs r1, #0x10 + orrs r1, r0 + strb r1, [r4, #5] + adds r2, r4, #0 + adds r2, #0xa8 + movs r0, #0x1a + strb r0, [r2] + cmp r1, #1 + beq _08076486 + ldr r1, [r5, #0x18] + adds r0, r5, #0 +_080763EC: + adds r2, r6, #0 + bl sub_08076088 + b _08076486 + .align 2, 0 +_080763F4: .4byte gUnk_0811BE38 +_080763F8: .4byte gUnk_03001160 +_080763FC: .4byte gUnk_03003F80 +_08076400: + ldr r0, _08076418 @ =gUnk_0811BE40 + adds r0, r3, r0 + ldrh r0, [r0] + ands r0, r2 + cmp r0, #0 + beq _08076460 + ldrb r0, [r7, #0xf] + cmp r0, #5 + bhi _0807641C + adds r0, #1 + strb r0, [r7, #0xf] + b _08076486 + .align 2, 0 +_08076418: .4byte gUnk_0811BE40 +_0807641C: + ldrb r0, [r5, #0xa] + adds r1, r4, #0 + adds r1, #0x35 + strb r0, [r1] + ldrb r0, [r4, #6] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #6] + ldrb r1, [r4, #5] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r4, #5] + adds r1, r4, #0 + adds r1, #0xa8 + movs r0, #0x19 + strb r0, [r1] + ldr r0, [r4, #0x30] + movs r1, #8 + ands r0, r1 + ldr r1, _0807645C @ =0x0000093C + cmp r0, #0 + bne _0807644C + movs r1, #0xcf + lsls r1, r1, #2 +_0807644C: + ldrh r0, [r5, #0x10] + cmp r1, r0 + bne _08076476 + adds r0, r5, #0 + bl sub_08077E24 + b _08076486 + .align 2, 0 +_0807645C: .4byte 0x0000093C +_08076460: + strb r0, [r7, #0xf] + ldr r0, [r4, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + bne _08076472 + movs r1, #0xd0 + lsls r1, r1, #2 + b _08076476 +_08076472: + movs r1, #0x94 + lsls r1, r1, #4 +_08076476: + adds r0, r5, #0 + bl sub_08077DF4 + b _08076486 +_0807647E: + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_08077F50 +_08076486: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08076488 +sub_08076488: @ 0x08076488 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r4, #7] + adds r6, r0, #0 + cmp r6, #0 + bne _08076504 + adds r0, r4, #0 + bl sub_08077F64 + cmp r0, #0 + beq _08076508 + ldr r0, [r4, #0x18] + ldrb r1, [r0, #0x16] + movs r0, #0xf0 + ands r0, r1 + cmp r0, #0x10 + bne _080764B8 + ldr r0, _080764F8 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _08076510 +_080764B8: + adds r0, r4, #0 + bl sub_08077E24 + ldrb r1, [r4, #0xe] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08076508 + ldr r2, _080764FC @ =gUnk_03001160 + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + ldr r2, _08076500 @ =gUnk_03003F80 + movs r0, #4 + strb r0, [r2, #5] + movs r1, #8 + asrs r1, r5 + mvns r1, r1 + ldrb r3, [r2, #0xb] + adds r0, r1, #0 + ands r0, r3 + strb r0, [r2, #0xb] + ldrb r0, [r2, #0xa] + ands r1, r0 + strb r1, [r2, #0xa] + ldrb r0, [r4, #4] + adds r0, #1 + strb r0, [r4, #4] + strb r6, [r4, #0xf] + b _08076508 + .align 2, 0 +_080764F8: .4byte gUnk_030010A0 +_080764FC: .4byte gUnk_03001160 +_08076500: .4byte gUnk_03003F80 +_08076504: + subs r0, #1 + strb r0, [r4, #7] +_08076508: + ldr r0, _08076514 @ =gUnk_03003F80 + adds r0, #0xa8 + movs r1, #4 + strb r1, [r0] +_08076510: + pop {r4, r5, r6, pc} + .align 2, 0 +_08076514: .4byte gUnk_03003F80 + + thumb_func_start sub_08076518 +sub_08076518: @ 0x08076518 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + mov r8, r1 + bl sub_08077F64 + cmp r0, #0 + beq _080765D4 + ldr r5, _0807655C @ =gUnk_03003F80 + adds r1, r5, #0 + adds r1, #0xa8 + movs r0, #4 + strb r0, [r1] + ldrb r1, [r5, #2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080765D4 + ldrb r0, [r5, #0x1f] + cmp r0, #0 + bne _080765D4 + ldr r6, _08076560 @ =gUnk_03001160 + adds r0, r6, #0 + adds r0, #0x42 + ldrb r7, [r0] + cmp r7, #0 + beq _08076564 + adds r0, r4, #0 + mov r1, r8 + bl sub_08077F50 + b _080765D4 + .align 2, 0 +_0807655C: .4byte gUnk_03003F80 +_08076560: .4byte gUnk_03001160 +_08076564: + adds r0, r5, #0 + adds r0, #0x92 + ldrh r1, [r0] + ldr r0, _080765B0 @ =0x00008018 + ands r0, r1 + cmp r0, #0 + beq _080765D4 + adds r0, r6, #0 + bl sub_0806F948 + movs r0, #5 + strb r0, [r5, #5] + ldr r1, [r4, #0x18] + movs r0, #2 + strb r0, [r1, #0xd] + ldr r2, [r4, #0x18] + ldrb r1, [r6, #0x14] + movs r0, #0xe + ands r0, r1 + lsls r0, r0, #2 + strb r0, [r2, #0x15] + str r7, [r4, #0x18] + ldrb r0, [r4, #4] + adds r0, #1 + strb r0, [r4, #4] + movs r0, #0xf + strb r0, [r4, #0xf] + ldr r0, [r5, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _080765B4 + movs r1, #0x93 + lsls r1, r1, #4 + adds r0, r4, #0 + bl sub_08077DF4 + b _080765BE + .align 2, 0 +_080765B0: .4byte 0x00008018 +_080765B4: + movs r1, #0xd1 + lsls r1, r1, #2 + adds r0, r4, #0 + bl sub_08077DF4 +_080765BE: + ldr r2, _080765DC @ =gUnk_03003F80 + movs r1, #8 + mov r0, r8 + asrs r1, r0 + ldrb r3, [r2, #0xa] + adds r0, r1, #0 + orrs r0, r3 + strb r0, [r2, #0xa] + ldrb r0, [r2, #0xb] + orrs r1, r0 + strb r1, [r2, #0xb] +_080765D4: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080765DC: .4byte gUnk_03003F80 + + thumb_func_start sub_080765E0 +sub_080765E0: @ 0x080765E0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08077F64 + cmp r0, #0 + beq _08076608 + ldrb r1, [r4, #0xe] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08076602 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077F50 + b _08076608 +_08076602: + adds r0, r4, #0 + bl sub_08077E24 +_08076608: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0807660C +sub_0807660C: @ 0x0807660C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08077E24 + ldrb r0, [r4, #7] + subs r0, #1 + strb r0, [r4, #7] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _0807662C + ldr r0, _0807663C @ =gUnk_03003F80 + ldrb r0, [r0, #1] + cmp r0, #0 + bne _0807663A +_0807662C: + ldr r1, _0807663C @ =gUnk_03003F80 + movs r0, #0 + strb r0, [r1, #1] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077E78 +_0807663A: + pop {r4, r5, pc} + .align 2, 0 +_0807663C: .4byte gUnk_03003F80 + + thumb_func_start sub_08076640 +sub_08076640: @ 0x08076640 + push {r4, r5, lr} + adds r3, r0, #0 + adds r4, r1, #0 + ldrb r0, [r3, #4] + cmp r0, #0 + beq _08076654 + adds r0, r3, #0 + bl sub_08076758 + b _08076754 +_08076654: + ldr r0, _080766BC @ =gUnk_03003F80 + ldr r1, [r0, #0x2c] + adds r2, r0, #0 + cmp r1, #0 + bne _0807674C + ldrb r0, [r2, #1] + cmp r0, #0 + beq _080766C4 + ldrb r1, [r2, #4] + ldrb r0, [r2, #5] + orrs r0, r1 + cmp r0, #0 + bne _0807674C + ldrb r0, [r2, #0x12] + cmp r0, #0x12 + beq _08076678 + cmp r0, #1 + bne _08076686 +_08076678: + ldr r0, _080766C0 @ =gUnk_03001160 + ldr r0, [r0, #0x34] + cmp r0, #0 + bne _08076686 + ldrb r0, [r2, #0x14] + cmp r0, #0 + beq _0807674C +_08076686: + ldrb r1, [r2, #2] + cmp r1, #0 + beq _08076694 + movs r0, #7 + ands r0, r1 + cmp r0, #3 + bne _08076710 +_08076694: + ldr r5, _080766C0 @ =gUnk_03001160 + ldr r0, [r5, #0x34] + cmp r0, #0 + blt _0807674C + movs r1, #0 + strb r1, [r2, #1] + ldrb r0, [r3, #4] + adds r0, #1 + strb r0, [r3, #4] + strb r1, [r2, #0xb] + movs r0, #1 + strb r0, [r2, #2] + movs r0, #0xff + strb r0, [r2, #0xe] + str r1, [r2, #0x2c] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r5, #0x20] + b _0807673C + .align 2, 0 +_080766BC: .4byte gUnk_03003F80 +_080766C0: .4byte gUnk_03001160 +_080766C4: + ldrb r0, [r2, #0x1b] + ldrb r1, [r2, #0xa] + orrs r0, r1 + ldrb r1, [r2, #4] + orrs r0, r1 + ldrb r1, [r2, #5] + orrs r0, r1 + ldrb r1, [r2, #0x1c] + orrs r0, r1 + adds r1, r2, #0 + adds r1, #0x3d + ldrb r1, [r1] + orrs r0, r1 + cmp r0, #0 + bne _0807674C + ldrb r1, [r2, #0x12] + adds r0, r1, #0 + subs r0, #0x12 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _080766F4 + cmp r1, #1 + bne _08076702 +_080766F4: + ldr r0, _0807671C @ =gUnk_03001160 + ldr r0, [r0, #0x34] + cmp r0, #0 + bne _08076702 + ldrb r0, [r2, #0x14] + cmp r0, #0 + beq _0807674C +_08076702: + ldrb r1, [r2, #2] + cmp r1, #0 + beq _08076720 + movs r0, #7 + ands r0, r1 + cmp r0, #3 + beq _08076720 +_08076710: + adds r0, r3, #0 + adds r1, r4, #0 + bl sub_08076758 + b _08076754 + .align 2, 0 +_0807671C: .4byte gUnk_03001160 +_08076720: + ldr r1, _08076748 @ =gUnk_03001160 + ldr r0, [r1, #0x34] + cmp r0, #0 + blt _0807674C + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r1, #0x20] + movs r1, #0 + movs r0, #1 + strb r0, [r2, #2] + str r1, [r2, #0x2c] + ldrb r0, [r3, #4] + adds r0, #1 + strb r0, [r3, #4] +_0807673C: + bl sub_08077F84 + movs r0, #0x78 + bl sub_080A3268 + b _08076754 + .align 2, 0 +_08076748: .4byte gUnk_03001160 +_0807674C: + adds r0, r3, #0 + adds r1, r4, #0 + bl sub_08077E78 +_08076754: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08076758 +sub_08076758: @ 0x08076758 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _080767C0 @ =gUnk_03003F80 + movs r0, #0 + strb r0, [r5, #0xe] + ldrb r2, [r5, #2] + movs r0, #0x28 + ands r0, r2 + cmp r0, #0 + bne _080767F8 + cmp r2, #0 + beq _080767F8 + movs r0, #7 + ands r0, r2 + cmp r0, #3 + beq _080767F8 + adds r0, r4, #0 + bl sub_08077EFC + cmp r0, #0 + beq _080767D8 + ldrb r0, [r4, #4] + cmp r0, #1 + bhi _080767C8 + ldr r2, _080767C4 @ =gUnk_03001160 + ldr r0, [r2, #0x20] + cmp r0, #0 + bgt _080767FE + ldrb r3, [r5, #2] + movs r0, #0x10 + ands r0, r3 + cmp r0, #0 + bne _080767FE + movs r0, #2 + strb r0, [r4, #4] + adds r1, r2, #0 + adds r1, #0x7a + strh r0, [r1] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r2, #0x20] + movs r0, #0x10 + orrs r0, r3 + strb r0, [r5, #2] + movs r0, #0xa2 + lsls r0, r0, #2 + strh r0, [r5, #8] + movs r0, #0xb9 + lsls r0, r0, #1 + bl sub_080A3268 + b _080767FE + .align 2, 0 +_080767C0: .4byte gUnk_03003F80 +_080767C4: .4byte gUnk_03001160 +_080767C8: + ldr r1, _080767D4 @ =gUnk_03001160 + adds r1, #0x7a + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _080767FE + .align 2, 0 +_080767D4: .4byte gUnk_03001160 +_080767D8: + ldrb r0, [r4, #4] + cmp r0, #1 + bls _080767FE + ldr r1, _080767F4 @ =gUnk_03001160 + adds r1, #0x7a + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + ldrb r1, [r5, #2] + movs r0, #0xef + ands r0, r1 + strb r0, [r5, #2] + b _080767FE + .align 2, 0 +_080767F4: .4byte gUnk_03001160 +_080767F8: + adds r0, r4, #0 + bl sub_08077E78 +_080767FE: + pop {r4, r5, pc} + + thumb_func_start sub_08076800 +sub_08076800: @ 0x08076800 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r6, r0, #0 + mov sb, r1 + ldr r4, _0807682C @ =gUnk_03001160 + adds r0, r4, #0 + adds r0, #0x7a + ldrh r0, [r0] + cmp r0, #0 + beq _08076834 + ldr r1, _08076830 @ =gUnk_03003F80 + movs r0, #0 + strb r0, [r1, #0x1e] + strb r0, [r1, #0xe] + adds r0, r6, #0 + mov r1, sb + bl sub_08077E78 + b _080768EC + .align 2, 0 +_0807682C: .4byte gUnk_03001160 +_08076830: .4byte gUnk_03003F80 +_08076834: + ldrb r0, [r6, #7] + subs r0, #1 + strb r0, [r6, #7] + movs r1, #7 + mov r8, r1 + ands r0, r1 + cmp r0, #0 + bne _0807684A + movs r0, #0x7d + bl sub_080A3268 +_0807684A: + ldr r2, _08076880 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080768DA + ldrb r1, [r6, #7] + mov r0, r8 + ands r0, r1 + cmp r0, #0 + bne _080768DA + ldrb r0, [r2, #0x12] + cmp r0, #0x11 + bne _08076884 + adds r0, r4, #0 + adds r0, #0x63 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _080768DA + adds r0, r4, #0 + movs r1, #0x52 + movs r2, #0 + bl sub_080A29AC + b _080768DA + .align 2, 0 +_08076880: .4byte gUnk_03003F80 +_08076884: + adds r0, r4, #0 + movs r1, #0x11 + movs r2, #0x40 + bl sub_080A29AC + adds r5, r0, #0 + cmp r5, #0 + beq _080768DA + ldrh r0, [r5, #0x32] + adds r0, #2 + strh r0, [r5, #0x32] + ldrb r0, [r6, #4] + cmp r0, #2 + beq _080768DA + bl sub_08000E50 + adds r4, r0, #0 + movs r0, #3 + ands r4, r0 + bl sub_08000E50 + movs r7, #1 + ands r0, r7 + cmp r0, #0 + beq _080768B8 + rsbs r4, r4, #0 +_080768B8: + ldrh r0, [r5, #0x32] + adds r0, r0, r4 + strh r0, [r5, #0x32] + bl sub_08000E50 + adds r4, r0, #0 + mov r0, r8 + ands r4, r0 + bl sub_08000E50 + ands r0, r7 + cmp r0, #0 + beq _080768D4 + rsbs r4, r4, #0 +_080768D4: + ldrh r0, [r5, #0x2e] + adds r0, r0, r4 + strh r0, [r5, #0x2e] +_080768DA: + ldr r0, _080768F4 @ =gUnk_0811BDCC + ldrb r1, [r6, #4] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r2, [r1] + adds r0, r6, #0 + mov r1, sb + bl _call_via_r2 +_080768EC: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080768F4: .4byte gUnk_0811BDCC + + thumb_func_start sub_080768F8 +sub_080768F8: @ 0x080768F8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r3, _08076934 @ =gUnk_03003F80 + ldrb r1, [r3, #0x1c] + ldrb r0, [r3, #4] + orrs r1, r0 + ldrb r0, [r3, #5] + orrs r1, r0 + ldrb r0, [r3, #2] + orrs r1, r0 + ldr r2, [r3, #0x30] + movs r0, #0x80 + lsls r0, r0, #5 + ands r0, r2 + orrs r1, r0 + cmp r1, #0 + bne _08076954 + movs r0, #1 + strb r0, [r3, #0x1e] + adds r0, r3, #0 + adds r0, #0x21 + strb r1, [r0] + movs r0, #0x80 + ands r2, r0 + cmp r2, #0 + bne _08076938 + movs r0, #0x10 + strb r0, [r4, #7] + b _0807693C + .align 2, 0 +_08076934: .4byte gUnk_03003F80 +_08076938: + ldr r0, _08076950 @ =0x00000C14 + strh r0, [r3, #8] +_0807693C: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077D38 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08076964 + b _08076962 + .align 2, 0 +_08076950: .4byte 0x00000C14 +_08076954: + movs r0, #0 + strb r0, [r3, #0x1e] + strb r0, [r3, #0xe] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077E78 +_08076962: + pop {r4, r5, pc} + + thumb_func_start sub_08076964 +sub_08076964: @ 0x08076964 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + adds r6, r1, #0 + bl sub_08077EFC + cmp r0, #0 + bne _08076978 + b _08076A70 +_08076978: + ldr r0, _080769C4 @ =gUnk_03001160 + ldr r7, [r0, #0x34] + cmp r7, #0 + bne _08076A70 + ldr r5, _080769C8 @ =gUnk_03003F80 + ldrb r0, [r5, #0x1e] + cmp r0, #0 + beq _08076A70 + adds r0, r4, #0 + bl sub_08077E24 + ldr r0, [r5, #0x30] + movs r1, #0x80 + mov r8, r1 + ands r0, r1 + cmp r0, #0 + bne _080769A0 + adds r0, r4, #0 + bl sub_08077E24 +_080769A0: + ldrb r0, [r5, #0x1e] + adds r0, #1 + strb r0, [r5, #0x1e] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1e + bne _08076A7E + ldr r0, [r5, #0x30] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _080769CC + strb r7, [r5, #0x1e] + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08077E78 + b _08076A7E + .align 2, 0 +_080769C4: .4byte gUnk_03001160 +_080769C8: .4byte gUnk_03003F80 +_080769CC: + movs r0, #0x40 + strb r0, [r5, #0x1e] + movs r1, #8 + asrs r1, r6 + ldrb r0, [r5, #0xa] + bics r0, r1 + strb r0, [r5, #0xa] + ldrb r0, [r4, #4] + adds r0, #1 + strb r0, [r4, #4] + bl sub_0807A158 + cmp r0, #0 + beq _08076A46 + ldr r0, [r5, #0x30] + mov r1, r8 + ands r0, r1 + cmp r0, #0 + bne _08076A60 + adds r0, r5, #0 + adds r0, #0xac + ldrh r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08076A46 + adds r0, r5, #0 + adds r0, #0xab + movs r1, #3 + strb r1, [r0] + movs r1, #0xa6 + lsls r1, r1, #2 + adds r0, r4, #0 + bl sub_08077DF4 + adds r0, r4, #0 + movs r1, #0xc + bl sub_08077C3C + adds r5, r0, #0 + cmp r5, #0 + beq _08076A70 + ldr r6, _08076A34 @ =gUnk_02002A40 + adds r4, r6, #0 + adds r4, #0xb4 + ldrb r0, [r4] + bl sub_0805449C + cmp r0, #0 + beq _08076A38 + ldrb r1, [r4] + b _08076A3E + .align 2, 0 +_08076A34: .4byte gUnk_02002A40 +_08076A38: + adds r0, r6, #0 + adds r0, #0xb5 + ldrb r1, [r0] +_08076A3E: + adds r0, r5, #0 + adds r0, #0x68 + strb r1, [r0] + b _08076A7E +_08076A46: + ldr r0, _08076A5C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08076A60 + adds r1, #0x84 + adds r0, r4, #0 + bl sub_08077DF4 + b _08076A7E + .align 2, 0 +_08076A5C: .4byte gUnk_03003F80 +_08076A60: + ldr r1, _08076A6C @ =gUnk_03003F80 + movs r0, #0xc1 + lsls r0, r0, #4 + strh r0, [r1, #8] + b _08076A7E + .align 2, 0 +_08076A6C: .4byte gUnk_03003F80 +_08076A70: + ldr r1, _08076A84 @ =gUnk_03003F80 + movs r0, #0 + strb r0, [r1, #0x1e] + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08077E78 +_08076A7E: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08076A84: .4byte gUnk_03003F80 + + thumb_func_start sub_08076A88 +sub_08076A88: @ 0x08076A88 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r7, r1, #0 + bl sub_08077EFC + cmp r0, #0 + beq _08076B64 + ldr r1, _08076AB4 @ =gUnk_03003F80 + ldrb r0, [r1, #0x1e] + adds r3, r1, #0 + cmp r0, #0 + beq _08076B64 + ldr r0, [r3, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08076ABC + ldr r1, _08076AB8 @ =gUnk_03001160 + movs r0, #0xc0 + lsls r0, r0, #2 + b _08076AC2 + .align 2, 0 +_08076AB4: .4byte gUnk_03003F80 +_08076AB8: .4byte gUnk_03001160 +_08076ABC: + ldr r1, _08076B00 @ =gUnk_03001160 + movs r0, #0xa0 + lsls r0, r0, #2 +_08076AC2: + strh r0, [r1, #0x24] + adds r5, r1, #0 + ldr r1, _08076B04 @ =0x0800275C + ldrb r2, [r5, #0x14] + movs r6, #0xe + adds r0, r6, #0 + ands r0, r2 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r1, [r0] + ldrh r0, [r5, #0x2a] + ands r0, r1 + cmp r1, r0 + bne _08076B0E + ldrb r0, [r4, #8] + cmp r0, #0 + beq _08076B08 + movs r2, #0 + movs r0, #6 + strb r0, [r5, #0xc] + strb r2, [r5, #0xd] + ldrb r1, [r5, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + adds r0, r3, #0 + adds r0, #0x38 + strb r2, [r0] + movs r0, #0xff + strb r0, [r3, #0xd] + b _08076B72 + .align 2, 0 +_08076B00: .4byte gUnk_03001160 +_08076B04: .4byte 0x0800275C +_08076B08: + movs r0, #1 + strb r0, [r4, #8] + b _08076B72 +_08076B0E: + ldr r1, _08076B60 @ =gUnk_0811BE38 + movs r0, #0xfe + ands r0, r2 + adds r0, r0, r1 + adds r1, r3, #0 + adds r1, #0x90 + ldrh r2, [r0] + ldrh r0, [r1] + ands r0, r2 + cmp r0, #0 + bne _08076B64 + ldrb r0, [r4, #0xa] + adds r1, r6, #0 + ands r1, r0 + lsls r0, r1, #2 + strb r0, [r4, #0xb] + ldrb r2, [r3, #0xd] + cmp r2, #0xff + beq _08076B52 + cmp r2, r0 + beq _08076B52 + adds r0, r2, #0 + ldrb r1, [r4, #0xb] + subs r0, r0, r1 + movs r2, #0x1f + ands r0, r2 + cmp r0, #0xf + bgt _08076B4A + adds r0, r1, #2 + strb r0, [r4, #0xb] +_08076B4A: + ldrb r0, [r4, #0xb] + subs r0, #1 + ands r0, r2 + strb r0, [r4, #0xb] +_08076B52: + ldrb r0, [r4, #0xb] + strb r0, [r3, #0xd] + adds r0, r4, #0 + bl sub_08077E24 + b _08076B72 + .align 2, 0 +_08076B60: .4byte gUnk_0811BE38 +_08076B64: + ldr r1, _08076B74 @ =gUnk_03003F80 + movs r0, #0 + strb r0, [r1, #0x1e] + adds r0, r4, #0 + adds r1, r7, #0 + bl sub_08077E78 +_08076B72: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08076B74: .4byte gUnk_03003F80 + + thumb_func_start sub_08076B78 +sub_08076B78: @ 0x08076B78 + push {lr} + ldr r3, _08076B94 @ =gUnk_0811BDD8 + ldrb r2, [r0, #4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + ldr r1, _08076B98 @ =gUnk_03001160 + adds r1, #0x7a + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + pop {pc} + .align 2, 0 +_08076B94: .4byte gUnk_0811BDD8 +_08076B98: .4byte gUnk_03001160 + + thumb_func_start sub_08076B9C +sub_08076B9C: @ 0x08076B9C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r3, _08076BB4 @ =gUnk_03003F80 + ldrb r0, [r3, #0xc] + cmp r0, #0x18 + bne _08076BB8 + adds r0, r4, #0 + bl sub_08077E78 + b _08076C1C + .align 2, 0 +_08076BB4: .4byte gUnk_03003F80 +_08076BB8: + ldrb r1, [r4, #9] + movs r0, #0xf + orrs r0, r1 + strb r0, [r4, #9] + ldr r1, _08076C20 @ =gUnk_03001160 + movs r0, #4 + strb r0, [r1, #0x14] + ldrb r2, [r1, #0x18] + subs r0, #0x45 + ands r0, r2 + strb r0, [r1, #0x18] + ldrb r2, [r1, #0x10] + movs r0, #0x7f + ands r0, r2 + strb r0, [r1, #0x10] + adds r1, #0x7a + movs r0, #2 + strh r0, [r1] + ldr r0, [r3, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x15 + orrs r0, r1 + str r0, [r3, #0x30] + adds r1, r3, #0 + adds r1, #0x27 + movs r0, #0xff + strb r0, [r1] + ldr r1, _08076C24 @ =gUnk_02034490 + movs r0, #1 + strb r0, [r1] + movs r1, #8 + asrs r1, r5 + ldrb r2, [r3, #0xa] + adds r0, r1, #0 + orrs r0, r2 + strb r0, [r3, #0xa] + ldrb r0, [r3, #0xb] + orrs r1, r0 + strb r1, [r3, #0xb] + bl sub_08078F60 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077D38 + ldr r0, _08076C28 @ =0x00000216 + bl sub_080A3268 + bl sub_0805E544 +_08076C1C: + pop {r4, r5, pc} + .align 2, 0 +_08076C20: .4byte gUnk_03001160 +_08076C24: .4byte gUnk_02034490 +_08076C28: .4byte 0x00000216 + + thumb_func_start sub_08076C2C +sub_08076C2C: @ 0x08076C2C + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + bl sub_08077E24 + ldrb r1, [r5, #0xe] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08076C6E + ldr r0, _08076C70 @ =gUnk_03001160 + ldrb r2, [r0, #0x10] + movs r4, #0 + movs r1, #0x80 + orrs r1, r2 + strb r1, [r0, #0x10] + ldr r2, _08076C74 @ =gUnk_03003F80 + ldr r1, [r2, #0x30] + ldr r3, _08076C78 @ =0xEFFFFFFF + ands r1, r3 + str r1, [r2, #0x30] + adds r2, #0x27 + strb r4, [r2] + ldr r1, _08076C7C @ =gUnk_02034490 + strb r4, [r1] + bl sub_0809D700 + bl sub_0805E564 + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_08077E78 +_08076C6E: + pop {r4, r5, r6, pc} + .align 2, 0 +_08076C70: .4byte gUnk_03001160 +_08076C74: .4byte gUnk_03003F80 +_08076C78: .4byte 0xEFFFFFFF +_08076C7C: .4byte gUnk_02034490 + + thumb_func_start sub_08076C80 +sub_08076C80: @ 0x08076C80 + push {lr} + ldr r3, _08076C94 @ =gUnk_0811BDE0 + ldrb r2, [r0, #4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_08076C94: .4byte gUnk_0811BDE0 + + thumb_func_start sub_08076C98 +sub_08076C98: @ 0x08076C98 + push {r4, lr} + adds r4, r0, #0 + ldrb r2, [r4, #9] + movs r0, #0xf + orrs r0, r2 + strb r0, [r4, #9] + adds r0, r4, #0 + bl sub_08077D38 + ldr r0, _08076CB8 @ =gUnk_03001160 + bl sub_0806F948 + adds r0, r4, #0 + bl sub_08077BB8 + pop {r4, pc} + .align 2, 0 +_08076CB8: .4byte gUnk_03001160 + + thumb_func_start sub_08076CBC +sub_08076CBC: @ 0x08076CBC + push {r4, lr} + adds r4, r0, #0 + ldrb r2, [r4, #0xe] + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + beq _08076CD2 + adds r0, r4, #0 + bl sub_08077E78 + b _08076CE8 +_08076CD2: + movs r0, #0x40 + ands r0, r2 + cmp r0, #0 + beq _08076CE2 + adds r0, r4, #0 + movs r1, #0x12 + bl sub_08077C3C +_08076CE2: + adds r0, r4, #0 + bl sub_08077E24 +_08076CE8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08076CEC +sub_08076CEC: @ 0x08076CEC + push {lr} + ldr r3, _08076D00 @ =gUnk_0811BDE8 + ldrb r2, [r0, #4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_08076D00: .4byte gUnk_0811BDE8 + + thumb_func_start sub_08076D04 +sub_08076D04: @ 0x08076D04 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _08076D2C @ =gUnk_03003F80 + movs r0, #0x81 + strb r0, [r1, #3] + movs r0, #2 + strb r0, [r4, #9] + ldr r0, _08076D30 @ =gUnk_03001160 + bl sub_0806F948 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077D38 + adds r0, r4, #0 + bl sub_08077BB8 + pop {r4, r5, pc} + .align 2, 0 +_08076D2C: .4byte gUnk_03003F80 +_08076D30: .4byte gUnk_03001160 + + thumb_func_start sub_08076D34 +sub_08076D34: @ 0x08076D34 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + bl sub_08077EFC + adds r1, r0, #0 + cmp r1, #0 + beq _08076D80 + ldr r5, _08076D78 @ =gUnk_03003F80 + ldrb r0, [r5, #3] + movs r1, #1 + orrs r1, r0 + strb r1, [r5, #3] + adds r0, r4, #0 + bl sub_08077E24 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08076D8C + ldrb r0, [r4, #4] + adds r0, #1 + strb r0, [r4, #4] + movs r0, #0 + strb r0, [r4, #0xf] + movs r1, #8 + asrs r1, r6 + ldrb r0, [r5, #0xa] + bics r0, r1 + strb r0, [r5, #0xa] + ldr r0, _08076D7C @ =0x0000015D + bl sub_080A3268 + b _08076D8C + .align 2, 0 +_08076D78: .4byte gUnk_03003F80 +_08076D7C: .4byte 0x0000015D +_08076D80: + ldr r0, _08076D90 @ =gUnk_03003F80 + strb r1, [r0, #3] + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08077E78 +_08076D8C: + pop {r4, r5, r6, pc} + .align 2, 0 +_08076D90: .4byte gUnk_03003F80 + + thumb_func_start sub_08076D94 +sub_08076D94: @ 0x08076D94 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08077EFC + adds r1, r0, #0 + cmp r1, #0 + beq _08076DBC + ldr r2, _08076DB8 @ =gUnk_03003F80 + ldrb r1, [r2, #3] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #3] + adds r0, r4, #0 + bl sub_08077E24 + b _08076DC8 + .align 2, 0 +_08076DB8: .4byte gUnk_03003F80 +_08076DBC: + ldr r0, _08076DCC @ =gUnk_03003F80 + strb r1, [r0, #3] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077E78 +_08076DC8: + pop {r4, r5, pc} + .align 2, 0 +_08076DCC: .4byte gUnk_03003F80 + + thumb_func_start sub_08076DD0 +sub_08076DD0: @ 0x08076DD0 + push {lr} + ldr r2, _08076DEC @ =gUnk_03003F80 + adds r2, #0xa8 + movs r3, #3 + strb r3, [r2] + ldr r3, _08076DF0 @ =gUnk_0811BDF4 + ldrb r2, [r0, #4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_08076DEC: .4byte gUnk_03003F80 +_08076DF0: .4byte gUnk_0811BDF4 + + thumb_func_start sub_08076DF4 +sub_08076DF4: @ 0x08076DF4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + adds r7, r1, #0 + ldr r0, _08076E48 @ =gUnk_03001160 + mov r8, r0 + bl sub_0807A894 + cmp r0, #0x29 + beq _08076E50 + ldr r6, _08076E4C @ =gUnk_03003F80 + ldrb r0, [r6, #0x12] + cmp r0, #0x12 + beq _08076E50 + cmp r0, #0x13 + beq _08076E50 + ldrb r5, [r6, #2] + cmp r5, #0 + bne _08076E50 + adds r0, r4, #0 + adds r1, r7, #0 + bl sub_08077D38 + strb r5, [r4, #7] + mov r1, r8 + ldrb r0, [r1, #0x14] + strb r0, [r4, #0xa] + ldrb r1, [r4, #9] + movs r0, #0x80 + orrs r0, r1 + adds r0, #1 + strb r0, [r4, #9] + movs r0, #1 + strb r0, [r6, #0x1d] + mov r1, r8 + str r5, [r1, #0x74] + strb r0, [r6, #0x1c] + adds r0, r4, #0 + bl sub_08077BB8 + b _08076E58 + .align 2, 0 +_08076E48: .4byte gUnk_03001160 +_08076E4C: .4byte gUnk_03003F80 +_08076E50: + adds r0, r4, #0 + adds r1, r7, #0 + bl sub_08077E78 +_08076E58: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08076E60 +sub_08076E60: @ 0x08076E60 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + ldr r5, _08076EB4 @ =gUnk_03003F80 + ldrb r1, [r5, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _08076E7A + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08077E78 +_08076E7A: + ldrb r1, [r4, #0xe] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08076EC0 + movs r0, #2 + strb r0, [r4, #4] + ldr r1, _08076EB8 @ =0x00000504 + adds r0, r4, #0 + bl sub_08077DF4 + movs r1, #8 + asrs r1, r6 + ldrb r0, [r5, #0xa] + bics r0, r1 + strb r0, [r5, #0xa] + movs r0, #0x10 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08077CB8 + adds r1, r0, #0 + cmp r1, #0 + beq _08076EC6 + ldr r0, _08076EBC @ =gUnk_03001160 + str r0, [r1, #0x50] + b _08076EC6 + .align 2, 0 +_08076EB4: .4byte gUnk_03003F80 +_08076EB8: .4byte 0x00000504 +_08076EBC: .4byte gUnk_03001160 +_08076EC0: + adds r0, r4, #0 + bl sub_08077E24 +_08076EC6: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08076EC8 +sub_08076EC8: @ 0x08076EC8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + ldr r5, _08076EE4 @ =gUnk_03003F80 + ldrb r1, [r5, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _08076EE8 + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08077E78 + b _08076F60 + .align 2, 0 +_08076EE4: .4byte gUnk_03003F80 +_08076EE8: + adds r0, r4, #0 + bl sub_08077EFC + cmp r0, #0 + beq _08076F50 + ldrb r0, [r4, #7] + cmp r0, #0xef + bls _08076EFC + movs r0, #3 + b _08076F0E +_08076EFC: + adds r0, #1 + strb r0, [r4, #7] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x77 + bls _08076F0C + movs r0, #2 + b _08076F0E +_08076F0C: + movs r0, #1 +_08076F0E: + strb r0, [r5, #0x1d] + ldr r0, _08076F1C @ =gUnk_03001160 + ldrb r0, [r0, #0xd] + cmp r0, #0x1b + bne _08076F24 + ldr r1, _08076F20 @ =0x00000524 + b _08076F36 + .align 2, 0 +_08076F1C: .4byte gUnk_03001160 +_08076F20: .4byte 0x00000524 +_08076F24: + ldr r0, _08076F44 @ =gUnk_03003F80 + ldrb r1, [r0, #0xd] + movs r0, #0x80 + ands r0, r1 + movs r1, #0xa3 + lsls r1, r1, #3 + cmp r0, #0 + beq _08076F36 + subs r1, #0x14 +_08076F36: + ldrh r0, [r4, #0x10] + cmp r1, r0 + beq _08076F48 + adds r0, r4, #0 + bl sub_08077DF4 + b _08076F60 + .align 2, 0 +_08076F44: .4byte gUnk_03003F80 +_08076F48: + adds r0, r4, #0 + bl sub_08077E24 + b _08076F60 +_08076F50: + ldrb r0, [r4, #4] + adds r0, #1 + strb r0, [r4, #4] + movs r0, #8 + asrs r0, r6 + ldrb r1, [r5, #0xa] + orrs r0, r1 + strb r0, [r5, #0xa] +_08076F60: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08076F64 +sub_08076F64: @ 0x08076F64 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + ldr r1, _08076F84 @ =gUnk_03003F80 + ldrb r0, [r1, #0x1c] + movs r2, #0xf + ands r2, r0 + adds r3, r1, #0 + cmp r2, #7 + bls _08076F7A + b _080770EC +_08076F7A: + lsls r0, r2, #2 + ldr r1, _08076F88 @ =_08076F8C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08076F84: .4byte gUnk_03003F80 +_08076F88: .4byte _08076F8C +_08076F8C: @ jump table + .4byte _08077100 @ case 0 + .4byte _080770EC @ case 1 + .4byte _080770EC @ case 2 + .4byte _0807704C @ case 3 + .4byte _08077052 @ case 4 + .4byte _08076FAC @ case 5 + .4byte _080770B8 @ case 6 + .4byte _080770D0 @ case 7 +_08076FAC: + ldrb r1, [r4, #0xe] + movs r5, #0x80 + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _0807700E + ldrb r0, [r4, #8] + cmp r0, #0 + beq _08077004 + movs r0, #0 + strb r0, [r4, #8] + strb r0, [r4, #7] + movs r1, #1 + strb r1, [r3, #0x1d] + ldr r5, _08076FFC @ =gUnk_03001160 + str r0, [r5, #0x74] + strb r1, [r3, #0x1c] + movs r1, #8 + asrs r1, r6 + ldrb r0, [r3, #0xa] + bics r0, r1 + strb r0, [r3, #0xa] + movs r0, #2 + strb r0, [r4, #4] + ldr r1, _08077000 @ =0x00000504 + adds r0, r4, #0 + bl sub_08077DF4 + movs r0, #0x10 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08077CB8 + cmp r0, #0 + bne _08076FF6 + b _08077110 +_08076FF6: + str r5, [r0, #0x50] + b _08077110 + .align 2, 0 +_08076FFC: .4byte gUnk_03001160 +_08077000: .4byte 0x00000504 +_08077004: + movs r0, #6 + strb r0, [r3, #0x1c] + movs r1, #0xa2 + lsls r1, r1, #3 + b _080770F2 +_0807700E: + adds r0, r4, #0 + bl sub_08077EFC + cmp r0, #0 + beq _0807701C + movs r0, #1 + strb r0, [r4, #8] +_0807701C: + adds r0, r4, #0 + bl sub_08077E24 + ldr r0, _08077044 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + bne _08077110 + ldr r0, _08077048 @ =gUnk_03001160 + ldrb r1, [r0, #0x14] + lsls r1, r1, #2 + movs r2, #0x10 + eors r1, r2 + strb r1, [r0, #0x15] + strh r5, [r0, #0x24] + bl sub_08079E08 + b _08077110 + .align 2, 0 +_08077044: .4byte gUnk_03003F80 +_08077048: .4byte gUnk_03001160 +_0807704C: + ldr r1, _080770B0 @ =gUnk_03003F80 + movs r0, #4 + strb r0, [r1, #0x1c] +_08077052: + adds r0, r4, #0 + bl sub_08077EFC + cmp r0, #0 + beq _08077060 + movs r0, #1 + strb r0, [r4, #8] +_08077060: + adds r0, r4, #0 + bl sub_08077E24 + ldrb r1, [r4, #0xe] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0807708C + ldr r1, _080770B0 @ =gUnk_03003F80 + movs r2, #0 + movs r0, #5 + strb r0, [r1, #0x1c] + ldr r0, _080770B4 @ =gUnk_03001160 + str r2, [r0, #0x70] + ldrb r0, [r1, #0x1d] + cmp r0, #0 + beq _0807708C + movs r0, #0x11 + movs r1, #0 + movs r3, #0 + bl sub_08077CB8 +_0807708C: + ldr r0, _080770B0 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + bne _08077110 + ldr r2, _080770B4 @ =gUnk_03001160 + ldrb r0, [r2, #0x14] + lsls r0, r0, #2 + movs r1, #0x10 + eors r0, r1 + strb r0, [r2, #0x15] + movs r0, #0x80 + strh r0, [r2, #0x24] + bl sub_08079E08 + b _08077110 + .align 2, 0 +_080770B0: .4byte gUnk_03003F80 +_080770B4: .4byte gUnk_03001160 +_080770B8: + adds r0, r4, #0 + bl sub_08077E24 + ldrb r1, [r4, #0xe] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08077110 + ldr r3, _080770CC @ =gUnk_03003F80 + b _08077100 + .align 2, 0 +_080770CC: .4byte gUnk_03003F80 +_080770D0: + ldr r1, _080770E4 @ =0x00000514 + adds r0, r4, #0 + bl sub_08077DF4 + ldr r1, _080770E8 @ =gUnk_03003F80 + movs r2, #0 + movs r0, #3 + strb r0, [r1, #0x1c] + strb r2, [r1, #0x1d] + b _08077110 + .align 2, 0 +_080770E4: .4byte 0x00000514 +_080770E8: .4byte gUnk_03003F80 +_080770EC: + movs r0, #3 + strb r0, [r3, #0x1c] + ldr r1, _080770FC @ =0x00000514 +_080770F2: + adds r0, r4, #0 + bl sub_08077DF4 + b _08077110 + .align 2, 0 +_080770FC: .4byte 0x00000514 +_08077100: + movs r1, #0 + strb r1, [r3, #0x1c] + ldr r0, _08077114 @ =gUnk_03001160 + str r1, [r0, #0x70] + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08077E78 +_08077110: + pop {r4, r5, r6, pc} + .align 2, 0 +_08077114: .4byte gUnk_03001160 + + thumb_func_start sub_08077118 +sub_08077118: @ 0x08077118 + push {lr} + ldr r3, _0807712C @ =gUnk_0811BE04 + ldrb r2, [r0, #4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_0807712C: .4byte gUnk_0811BE04 + + thumb_func_start sub_08077130 +sub_08077130: @ 0x08077130 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r5, _0807718C @ =gUnk_03003F80 + ldrb r0, [r5, #2] + cmp r0, #0 + bne _080771B6 + adds r0, r4, #0 + bl sub_08077D38 + adds r0, r5, #0 + adds r0, #0x3d + movs r6, #1 + strb r6, [r0] + ldrb r1, [r4, #9] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #9] + bl sub_080774A0 + adds r5, r0, #0 + cmp r5, #0 + beq _080771A8 + ldrb r0, [r4, #7] + cmp r0, #0 + bne _080771C4 + ldr r1, _08077190 @ =0x0000050C + adds r0, r4, #0 + bl sub_08077DF4 + movs r0, #2 + strb r0, [r4, #4] + cmp r5, #0x56 + bne _080771C4 + ldr r2, _08077194 @ =gUnk_03001160 + ldrb r1, [r2, #0x14] + ands r0, r1 + cmp r0, #0 + beq _08077198 + ldrh r0, [r2, #0x32] + movs r1, #0x10 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #6 + orrs r1, r0 + strh r1, [r2, #0x32] + b _080771C4 + .align 2, 0 +_0807718C: .4byte gUnk_03003F80 +_08077190: .4byte 0x0000050C +_08077194: .4byte gUnk_03001160 +_08077198: + ldrh r0, [r2, #0x2e] + movs r1, #0x10 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #8 + orrs r1, r0 + strh r1, [r2, #0x2e] + b _080771C4 +_080771A8: + movs r1, #0xa1 + lsls r1, r1, #3 + adds r0, r4, #0 + bl sub_08077DF4 + strb r6, [r4, #4] + b _080771C4 +_080771B6: + adds r0, r4, #0 + bl sub_08077E78 + adds r1, r5, #0 + adds r1, #0x3d + movs r0, #0 + strb r0, [r1] +_080771C4: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080771C8 +sub_080771C8: @ 0x080771C8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08077E24 + ldrb r1, [r4, #0xe] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080771F4 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077E78 + ldr r0, _080771F0 @ =gUnk_03003F80 + adds r0, #0x3d + movs r1, #0 + strb r1, [r0] + b _080772A4 + .align 2, 0 +_080771F0: .4byte gUnk_03003F80 +_080771F4: + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0807720E + ldrb r0, [r4, #8] + cmp r0, #0xff + bne _0807720E + ldr r0, _08077240 @ =gUnk_03001160 + ldrb r2, [r4, #0xe] + movs r1, #0x1e + movs r3, #1 + bl sub_080A2988 +_0807720E: + ldrb r1, [r4, #0xe] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080772A4 + ldr r5, _08077240 @ =gUnk_03001160 + adds r0, r5, #0 + movs r1, #0xd + adds r2, r4, #0 + bl sub_0800875A + cmp r0, #0 + bne _08077248 + movs r1, #0xa4 + lsls r1, r1, #3 + adds r0, r4, #0 + bl sub_08077DF4 + movs r0, #3 + strb r0, [r4, #4] + ldr r0, _08077244 @ =0x00000107 + bl sub_080A3268 + b _080772A4 + .align 2, 0 +_08077240: .4byte gUnk_03001160 +_08077244: .4byte 0x00000107 +_08077248: + ldrb r0, [r4, #8] + cmp r0, #0xff + beq _0807728C + ldrb r3, [r4, #3] + adds r0, r5, #0 + movs r1, #0x1f + movs r2, #0 + bl sub_080A2988 + adds r3, r0, #0 + cmp r3, #0 + beq _0807729C + ldrb r0, [r4, #7] + movs r2, #0 + strb r0, [r3, #0xe] + ldrb r0, [r4, #8] + strb r0, [r3, #0xf] + ldrb r1, [r5, #0x14] + movs r0, #6 + ands r0, r1 + strb r0, [r3, #0x14] + adds r0, r5, #0 + adds r0, #0x5a + strb r2, [r0] + ldr r1, _08077288 @ =gUnk_0811BE14 + ldrb r0, [r4, #8] + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r5, #0 + adds r0, #0x59 + strb r1, [r0] + b _0807729C + .align 2, 0 +_08077288: .4byte gUnk_0811BE14 +_0807728C: + ldrb r0, [r4, #3] + cmp r0, #0xf + bne _0807729C + ldrb r0, [r4, #7] + cmp r0, #0x17 + bne _0807729C + movs r0, #0 + strb r0, [r4, #8] +_0807729C: + movs r0, #0x84 + lsls r0, r0, #1 + bl sub_080A3268 +_080772A4: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080772A8 +sub_080772A8: @ 0x080772A8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + ldrb r1, [r4, #0xe] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080772C6 + adds r0, r4, #0 + bl sub_08077F10 + cmp r0, #0 + beq _080772C6 + movs r0, #1 + strb r0, [r4, #7] +_080772C6: + movs r0, #0x71 + bl sub_0807CA84 + cmp r0, #1 + bne _08077318 + ldrb r1, [r4, #0xe] + movs r5, #7 + adds r0, r5, #0 + ands r0, r1 + cmp r0, #3 + beq _08077300 + adds r0, r4, #0 + movs r1, #2 + bl sub_08077E3C + ldr r3, _080772F8 @ =gUnk_03001160 + ldr r2, _080772FC @ =gUnk_0811BE16 + ldrb r1, [r4, #0xe] + adds r0, r5, #0 + ands r0, r1 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + lsls r0, r0, #1 + b _0807732E + .align 2, 0 +_080772F8: .4byte gUnk_03001160 +_080772FC: .4byte gUnk_0811BE16 +_08077300: + adds r0, r4, #0 + bl sub_08077E24 + ldr r3, _08077310 @ =gUnk_03001160 + ldr r2, _08077314 @ =gUnk_0811BE16 + ldrb r1, [r4, #0xe] + adds r0, r5, #0 + b _08077326 + .align 2, 0 +_08077310: .4byte gUnk_03001160 +_08077314: .4byte gUnk_0811BE16 +_08077318: + adds r0, r4, #0 + bl sub_08077E24 + ldr r3, _0807736C @ =gUnk_03001160 + ldr r2, _08077370 @ =gUnk_0811BE16 + ldrb r1, [r4, #0xe] + movs r0, #7 +_08077326: + ands r0, r1 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] +_0807732E: + strh r0, [r3, #0x24] + ldr r5, _0807736C @ =gUnk_03001160 + ldrb r0, [r5, #0x14] + lsls r0, r0, #2 + strb r0, [r5, #0x15] + movs r1, #0x24 + ldrsh r0, [r5, r1] + cmp r0, #0 + beq _08077344 + bl sub_08079E08 +_08077344: + ldrb r1, [r4, #0xe] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0807738C + ldrb r0, [r4, #7] + cmp r0, #0 + beq _08077374 + adds r0, r5, #0 + adds r0, #0x59 + movs r1, #1 + strb r1, [r0] + bl sub_080774A0 + cmp r0, #0 + beq _08077374 + movs r0, #0 + strb r0, [r4, #7] + b _0807743E + .align 2, 0 +_0807736C: .4byte gUnk_03001160 +_08077370: .4byte gUnk_0811BE16 +_08077374: + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08077E78 + ldr r0, _08077388 @ =gUnk_03003F80 + adds r0, #0x3d + movs r1, #0 + strb r1, [r0] + b _0807743E + .align 2, 0 +_08077388: .4byte gUnk_03003F80 +_0807738C: + movs r0, #0x60 + ands r0, r1 + cmp r0, #0 + beq _0807743E + adds r0, r5, #0 + adds r0, #0x59 + movs r6, #1 + strb r6, [r0] + adds r0, r5, #0 + bl sub_0807B5B0 + cmp r0, #0 + beq _080773BC + movs r0, #0x84 + lsls r0, r0, #1 + bl sub_080A3268 + ldrb r2, [r4, #0xe] + adds r0, r5, #0 + movs r1, #0x1e + movs r3, #0 + bl sub_080A2988 + b _0807743E +_080773BC: + ldr r1, _08077440 @ =0x0000051C + adds r0, r4, #0 + bl sub_08077DF4 + adds r0, r5, #0 + movs r1, #0x1d + movs r2, #0 + bl sub_080A29AC + adds r3, r0, #0 + cmp r3, #0 + beq _080773F6 + ldrb r0, [r4, #0xa] + strb r0, [r3, #0x14] + adds r0, r5, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + subs r1, #1 + adds r3, #0x29 + movs r0, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080773F6: + adds r0, r5, #0 + movs r1, #0x1d + movs r2, #0 + bl sub_080A29AC + adds r3, r0, #0 + cmp r3, #0 + beq _08077432 + ldrb r0, [r4, #0xa] + strb r0, [r3, #0x14] + adds r0, r5, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + subs r1, #1 + movs r0, #0x29 + adds r0, r0, r3 + mov ip, r0 + movs r0, #7 + ands r1, r0 + mov r0, ip + ldrb r2, [r0] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + strb r6, [r3, #0xf] +_08077432: + movs r0, #3 + strb r0, [r4, #4] + strb r6, [r4, #5] + ldr r0, _08077444 @ =0x00000119 + bl sub_080A3268 +_0807743E: + pop {r4, r5, r6, pc} + .align 2, 0 +_08077440: .4byte 0x0000051C +_08077444: .4byte 0x00000119 + + thumb_func_start sub_08077448 +sub_08077448: @ 0x08077448 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r2, _08077498 @ =gUnk_03001160 + ldrb r0, [r2, #0x14] + lsls r0, r0, #2 + movs r1, #0x10 + eors r0, r1 + strb r0, [r2, #0x15] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r2, #0x24] + ldrb r1, [r4, #0xe] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08077474 + ldrb r0, [r4, #5] + cmp r0, #0 + beq _08077474 + bl sub_08079E08 +_08077474: + adds r0, r4, #0 + bl sub_08077E24 + ldrb r1, [r4, #0xe] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08077494 + ldr r0, _0807749C @ =gUnk_03003F80 + adds r0, #0x3d + movs r1, #0 + strb r1, [r0] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077E78 +_08077494: + pop {r4, r5, pc} + .align 2, 0 +_08077498: .4byte gUnk_03001160 +_0807749C: .4byte gUnk_03003F80 + + thumb_func_start sub_080774A0 +sub_080774A0: @ 0x080774A0 + push {r4, r5, r6, r7, lr} + ldr r3, _080774FC @ =gUnk_03001160 + movs r0, #0x2e + ldrsh r2, [r3, r0] + ldr r5, _08077500 @ =gUnk_0811BE1E + ldrb r0, [r3, #0x14] + movs r1, #6 + ands r1, r0 + adds r0, r1, r5 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r2, r2, r0 + ldr r4, _08077504 @ =gUnk_03000BF0 + ldrh r0, [r4, #6] + subs r2, r2, r0 + asrs r6, r2, #4 + movs r2, #0x3f + ands r6, r2 + movs r7, #0x32 + ldrsh r0, [r3, r7] + adds r1, #1 + adds r1, r1, r5 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r0, r1 + ldrh r1, [r4, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r6, r0 + adds r4, r3, #0 + adds r4, #0x38 + ldrb r1, [r4] + adds r0, r6, #0 + bl sub_080002E0 + cmp r0, #0x16 + bhi _080774F6 + cmp r0, #0xe + bhi _08077508 +_080774F6: + movs r0, #0 + b _0807751A + .align 2, 0 +_080774FC: .4byte gUnk_03001160 +_08077500: .4byte gUnk_0811BE1E +_08077504: .4byte gUnk_03000BF0 +_08077508: + adds r0, r6, #0 + ldrb r1, [r4] + bl sub_080002C8 + cmp r0, #0x56 + bne _08077518 + movs r0, #0x56 + b _0807751A +_08077518: + movs r0, #1 +_0807751A: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0807751C +sub_0807751C: @ 0x0807751C + push {lr} + ldr r3, _08077530 @ =gUnk_0811BE28 + ldrb r2, [r0, #4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_08077530: .4byte gUnk_0811BE28 + + thumb_func_start sub_08077534 +sub_08077534: @ 0x08077534 + push {r4, lr} + adds r4, r0, #0 + bl sub_08077D38 + ldr r0, _08077570 @ =gUnk_03001160 + bl sub_0806F948 + adds r0, r4, #0 + bl sub_08077BB8 + ldrb r1, [r4, #9] + movs r0, #0xf + orrs r0, r1 + strb r0, [r4, #9] + ldrb r1, [r4, #1] + ldr r0, _08077574 @ =gUnk_02002A40 + adds r0, r0, r1 + adds r0, #0x9a + ldrb r0, [r0] + strb r0, [r4, #7] + ldrb r0, [r4, #7] + subs r0, #0x20 + cmp r0, #0x11 + bhi _080775F8 + lsls r0, r0, #2 + ldr r1, _08077578 @ =_0807757C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08077570: .4byte gUnk_03001160 +_08077574: .4byte gUnk_02002A40 +_08077578: .4byte _0807757C +_0807757C: @ jump table + .4byte _080775C4 @ case 0 + .4byte _080775D4 @ case 1 + .4byte _080775D4 @ case 2 + .4byte _080775D4 @ case 3 + .4byte _080775D4 @ case 4 + .4byte _080775D4 @ case 5 + .4byte _080775F8 @ case 6 + .4byte _080775F8 @ case 7 + .4byte _080775F8 @ case 8 + .4byte _080775D4 @ case 9 + .4byte _080775D4 @ case 10 + .4byte _080775D4 @ case 11 + .4byte _080775D4 @ case 12 + .4byte _080775D4 @ case 13 + .4byte _080775D4 @ case 14 + .4byte _080775F8 @ case 15 + .4byte _080775F8 @ case 16 + .4byte _080775F8 @ case 17 +_080775C4: + ldr r1, _080775D0 @ =0x00000614 + adds r0, r4, #0 + bl sub_08077DF4 + b _08077610 + .align 2, 0 +_080775D0: .4byte 0x00000614 +_080775D4: + movs r0, #3 + strb r0, [r4, #4] + ldr r1, _080775F0 @ =gUnk_03001160 + movs r0, #4 + strb r0, [r1, #0x14] + ldrb r2, [r1, #0x18] + subs r0, #0x45 + ands r0, r2 + strb r0, [r1, #0x18] + ldr r1, _080775F4 @ =0x000002DF + adds r0, r4, #0 + bl sub_08077DF4 + b _08077606 + .align 2, 0 +_080775F0: .4byte gUnk_03001160 +_080775F4: .4byte 0x000002DF +_080775F8: + movs r0, #3 + strb r0, [r4, #4] + movs r1, #0xc2 + lsls r1, r1, #3 + adds r0, r4, #0 + bl sub_08077DF4 +_08077606: + ldr r2, _08077614 @ =gUnk_03001160 + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] +_08077610: + pop {r4, pc} + .align 2, 0 +_08077614: .4byte gUnk_03001160 + + thumb_func_start sub_08077618 +sub_08077618: @ 0x08077618 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xe] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08077638 + movs r1, #0xc3 + lsls r1, r1, #3 + adds r0, r4, #0 + bl sub_08077DF4 + ldrb r0, [r4, #4] + adds r0, #1 + strb r0, [r4, #4] + b _0807763E +_08077638: + adds r0, r4, #0 + bl sub_08077E24 +_0807763E: + pop {r4, pc} + + thumb_func_start sub_08077640 +sub_08077640: @ 0x08077640 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08077E24 + ldrb r1, [r4, #0xe] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08077666 + ldr r2, _08077668 @ =gUnk_03001160 + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077E78 +_08077666: + pop {r4, r5, pc} + .align 2, 0 +_08077668: .4byte gUnk_03001160 + + thumb_func_start sub_0807766C +sub_0807766C: @ 0x0807766C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08077E24 + ldrb r1, [r4, #0xe] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08077692 + ldr r2, _08077694 @ =gUnk_03001160 + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077E78 +_08077692: + pop {r4, r5, pc} + .align 2, 0 +_08077694: .4byte gUnk_03001160 + + thumb_func_start sub_08077698 +sub_08077698: @ 0x08077698 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r2, _0807771C @ =gUnk_03003F80 + ldrb r1, [r2, #3] + movs r0, #0xfe + ands r0, r1 + strb r0, [r2, #3] + ldrb r1, [r2, #4] + movs r0, #0xf + ands r0, r1 + strb r0, [r2, #4] + ldrb r0, [r2, #7] + ldrb r3, [r2, #2] + orrs r0, r3 + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08077700 + movs r0, #0x40 + ands r0, r3 + cmp r0, #0 + bne _08077700 + adds r0, r2, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + bne _08077700 + adds r0, r4, #0 + bl sub_08077758 + cmp r0, #0 + beq _08077700 + bl sub_080777A0 + cmp r0, #0 + bne _08077700 + ldr r4, _08077720 @ =gUnk_02002A40 + adds r0, r4, #0 + adds r0, #0xb4 + ldrb r0, [r0] + movs r1, #1 + movs r2, #0 + bl sub_08077880 + adds r4, #0xb5 + ldrb r0, [r4] + movs r1, #2 + movs r2, #0 + bl sub_08077880 + bl sub_080778CC +_08077700: + movs r5, #0 + ldr r4, _08077724 @ =gUnk_03000B80 +_08077704: + ldrb r0, [r4, #9] + cmp r0, #0 + beq _08077712 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080752E8 +_08077712: + adds r4, #0x1c + adds r5, #1 + cmp r5, #3 + bls _08077704 + pop {r4, r5, pc} + .align 2, 0 +_0807771C: .4byte gUnk_03003F80 +_08077720: .4byte gUnk_02002A40 +_08077724: .4byte gUnk_03000B80 + + thumb_func_start sub_08077728 +sub_08077728: @ 0x08077728 + push {lr} + cmp r0, #0 + bne _08077744 + ldr r0, _08077740 @ =gUnk_02002A40 + adds r0, #0xb4 + ldrb r0, [r0] + movs r1, #1 + movs r2, #1 + bl sub_08077880 + b _08077752 + .align 2, 0 +_08077740: .4byte gUnk_02002A40 +_08077744: + ldr r0, _08077754 @ =gUnk_02002A40 + adds r0, #0xb5 + ldrb r0, [r0] + movs r1, #2 + movs r2, #1 + bl sub_08077880 +_08077752: + pop {pc} + .align 2, 0 +_08077754: .4byte gUnk_02002A40 + + thumb_func_start sub_08077758 +sub_08077758: @ 0x08077758 + push {lr} + adds r3, r0, #0 + ldr r2, _08077794 @ =gUnk_03003F80 + ldr r1, [r2, #0x30] + movs r0, #0x80 + lsls r0, r0, #7 + ands r0, r1 + cmp r0, #0 + bne _0807779C + movs r0, #0xd5 + lsls r0, r0, #4 + ands r1, r0 + cmp r1, #0 + bne _08077798 + ldrb r0, [r2, #0x1e] + ldrb r1, [r2, #0x1a] + orrs r1, r0 + adds r0, r3, #0 + adds r0, #0x7a + ldrh r0, [r0] + orrs r1, r0 + cmp r1, #0 + bne _0807779C + adds r0, r3, #0 + adds r0, #0x42 + ldrb r0, [r0] + cmp r0, #0 + bne _0807779C + movs r0, #1 + b _0807779E + .align 2, 0 +_08077794: .4byte gUnk_03003F80 +_08077798: + bl sub_0807A108 +_0807779C: + movs r0, #0 +_0807779E: + pop {pc} + + thumb_func_start sub_080777A0 +sub_080777A0: @ 0x080777A0 + push {r4, lr} + ldr r3, _080777D0 @ =gUnk_03003F80 + adds r0, r3, #0 + adds r0, #0x92 + ldrh r1, [r0] + movs r4, #0x80 + adds r0, r4, #0 + ands r0, r1 + cmp r0, #0 + beq _08077870 + ldr r1, [r3, #0x30] + movs r0, #0x80 + lsls r0, r0, #0xf + ands r0, r1 + cmp r0, #0 + beq _080777D4 + adds r1, r3, #0 + adds r1, #0xa0 + movs r0, #1 + strb r0, [r1] + bl sub_0807A108 +_080777CC: + movs r0, #1 + b _0807787C + .align 2, 0 +_080777D0: .4byte gUnk_03003F80 +_080777D4: + ldr r2, _080777F4 @ =gUnk_02033A90 + ldrb r0, [r2, #0x18] + cmp r0, #2 + beq _080777FC + cmp r0, #3 + beq _08077810 + ldr r0, _080777F8 @ =gUnk_0200AF00 + adds r0, #0x2c + ldrb r0, [r0] + cmp r0, #0xc + bne _0807787A + adds r2, r3, #0 + ldrb r0, [r2, #0x1c] + cmp r0, #0 + bne _0807787A + b _08077838 + .align 2, 0 +_080777F4: .4byte gUnk_02033A90 +_080777F8: .4byte gUnk_0200AF00 +_080777FC: + ldrb r0, [r2, #0x1a] + cmp r0, #0 + bne _080777CC + ldr r1, _0807780C @ =gUnk_03001160 + ldrb r0, [r1, #0xd] + adds r0, #1 + strb r0, [r1, #0xd] + b _080777CC + .align 2, 0 +_0807780C: .4byte gUnk_03001160 +_08077810: + ldrb r0, [r2, #0x1a] + cmp r0, #0 + bne _0807787A + ands r1, r4 + cmp r1, #0 + beq _0807787A + ldr r0, _08077834 @ =gUnk_03001160 + ldrb r1, [r0, #0xd] + adds r1, #1 + strb r1, [r0, #0xd] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + movs r1, #0xb4 + bl sub_0805E4E0 + b _080777CC + .align 2, 0 +_08077834: .4byte gUnk_03001160 +_08077838: + ldrb r0, [r2, #0x12] + cmp r0, #0x11 + beq _0807787A + adds r0, r2, #0 + adds r0, #0x90 + ldrh r1, [r0] + movs r0, #0xf0 + lsls r0, r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0807787A + ldr r0, [r2, #0x30] + ldr r1, _0807786C @ =0x00040400 + ands r0, r1 + cmp r0, #0 + bne _0807787A + ldrb r0, [r2, #2] + cmp r0, #0 + bne _0807787A + ldrb r0, [r2, #4] + cmp r0, #0 + bne _0807787A + movs r0, #0x18 + strb r0, [r2, #0xc] + b _0807787A + .align 2, 0 +_0807786C: .4byte 0x00040400 +_08077870: + ldr r0, [r3, #0x30] + movs r1, #0x20 + ands r0, r1 + cmp r0, #0 + bne _080777CC +_0807787A: + movs r0, #0 +_0807787C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08077880 +sub_08077880: @ 0x08077880 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + subs r0, r4, #1 + cmp r0, #0x1e + bhi _080778C0 + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #2 + ldr r1, _080778C4 @ =gUnk_0811BE48 + adds r5, r0, r1 + ldr r1, _080778C8 @ =gUnk_03004010 + ldrb r0, [r5] + cmp r0, #0 + beq _080778A0 + adds r1, #2 +_080778A0: + ldrh r0, [r1] + ands r0, r6 + cmp r0, #0 + bne _080778AC + cmp r2, #0 + beq _080778C0 +_080778AC: + adds r0, r4, #0 + bl sub_0807794C + adds r1, r0, #0 + cmp r1, #0 + beq _080778C0 + ldrb r0, [r5, #1] + strb r0, [r1, #9] + strb r4, [r1, #1] + strb r6, [r1, #3] +_080778C0: + pop {r4, r5, r6, pc} + .align 2, 0 +_080778C4: .4byte gUnk_0811BE48 +_080778C8: .4byte gUnk_03004010 + + thumb_func_start sub_080778CC +sub_080778CC: @ 0x080778CC + push {lr} + ldr r2, _08077920 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + ldr r1, _08077924 @ =0x000400A0 + ands r0, r1 + cmp r0, #0 + bne _0807791C + ldr r0, _08077928 @ =gUnk_03001160 + adds r0, #0x79 + ldrb r0, [r0] + cmp r0, #0 + bne _080778FA + ldrb r0, [r2, #5] + cmp r0, #0 + bne _080778FA + adds r0, r2, #0 + adds r0, #0x92 + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0807791C +_080778FA: + bl sub_080789A8 + cmp r0, #0 + bne _08077910 + ldr r0, _08077920 @ =gUnk_03003F80 + adds r0, #0x90 + ldrh r1, [r0] + ldr r0, _0807792C @ =0x00000F03 + ands r0, r1 + cmp r0, #0 + bne _0807791C +_08077910: + movs r0, #0x1b + bl sub_0807794C + adds r1, r0, #0 + cmp r1, #0 + bne _08077930 +_0807791C: + movs r0, #0 + b _08077940 + .align 2, 0 +_08077920: .4byte gUnk_03003F80 +_08077924: .4byte 0x000400A0 +_08077928: .4byte gUnk_03001160 +_0807792C: .4byte 0x00000F03 +_08077930: + movs r0, #0x1b + strb r0, [r1, #1] + ldr r0, _08077944 @ =gUnk_0811BE48 + ldr r2, _08077948 @ =0x00000145 + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r1, #9] + movs r0, #1 +_08077940: + pop {pc} + .align 2, 0 +_08077944: .4byte gUnk_0811BE48 +_08077948: .4byte 0x00000145 + + thumb_func_start sub_0807794C +sub_0807794C: @ 0x0807794C + push {lr} + adds r2, r0, #0 + ldr r0, _080779B8 @ =gUnk_03003F80 + ldrb r1, [r0, #0xc] + adds r3, r0, #0 + cmp r1, #0x18 + bne _0807795E + cmp r2, #0x1b + bne _080779B2 +_0807795E: + ldr r0, [r3, #0x30] + movs r1, #0x88 + lsls r1, r1, #0xf + ands r0, r1 + cmp r0, #0 + beq _0807796E + cmp r2, #6 + bhi _080779B2 +_0807796E: + ldrb r0, [r3, #2] + cmp r0, #0 + bne _0807797C + ldr r0, _080779BC @ =gUnk_03001160 + ldr r0, [r0, #0x34] + cmp r0, #0 + beq _08077980 +_0807797C: + cmp r2, #6 + bhi _080779B2 +_08077980: + ldr r0, [r3, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807799A + ldr r0, _080779C0 @ =gUnk_0811BE48 + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #8] + cmp r0, #0 + beq _080779B2 +_0807799A: + ldrb r0, [r3, #0x12] + cmp r0, #0x11 + bne _080779C4 + adds r0, r3, #0 + adds r0, #0x37 + ldrb r0, [r0] + cmp r0, #0 + beq _080779C4 + adds r0, r2, #0 + subs r0, #0x14 + cmp r0, #1 + bls _080779C4 +_080779B2: + movs r0, #0 + b _080779DE + .align 2, 0 +_080779B8: .4byte gUnk_03003F80 +_080779BC: .4byte gUnk_03001160 +_080779C0: .4byte gUnk_0811BE48 +_080779C4: + ldr r1, _080779E0 @ =gUnk_0811BE48 + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #2] + ldr r1, _080779E4 @ =gUnk_0811BFC8 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r2, #0 + bl _call_via_r1 +_080779DE: + pop {pc} + .align 2, 0 +_080779E0: .4byte gUnk_0811BE48 +_080779E4: .4byte gUnk_0811BFC8 + + thumb_func_start sub_080779E8 +sub_080779E8: @ 0x080779E8 + movs r0, #0 + bx lr + + thumb_func_start sub_080779EC +sub_080779EC: @ 0x080779EC + push {lr} + ldr r1, _08077A00 @ =gUnk_03000B80 + adds r0, r1, #0 + adds r0, #0x25 + ldrb r0, [r0] + cmp r0, #0 + bne _08077A04 + adds r0, r1, #0 + adds r0, #0x1c + b _08077A16 + .align 2, 0 +_08077A00: .4byte gUnk_03000B80 +_08077A04: + adds r0, r1, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0 + beq _08077A12 + movs r0, #0 + b _08077A16 +_08077A12: + adds r0, r1, #0 + adds r0, #0x38 +_08077A16: + pop {pc} + + thumb_func_start sub_08077A18 +sub_08077A18: @ 0x08077A18 + push {lr} + adds r1, r0, #0 + ldr r0, _08077A3C @ =gUnk_03003F80 + ldrb r0, [r0, #5] + cmp r0, #0 + bne _08077A44 + ldr r0, _08077A40 @ =gUnk_03000B80 + ldrb r2, [r0, #0x1d] + cmp r1, r2 + beq _08077A44 + adds r0, #0x39 + ldrb r0, [r0] + cmp r1, r0 + beq _08077A44 + adds r0, r1, #0 + bl sub_080779EC + b _08077A46 + .align 2, 0 +_08077A3C: .4byte gUnk_03003F80 +_08077A40: .4byte gUnk_03000B80 +_08077A44: + movs r0, #0 +_08077A46: + pop {pc} + + thumb_func_start sub_08077A48 +sub_08077A48: @ 0x08077A48 + push {r4, r5, r6, lr} + adds r2, r0, #0 + ldr r6, _08077A88 @ =gUnk_03003F80 + ldrb r0, [r6, #5] + cmp r0, #0 + bne _08077A94 + ldrb r1, [r6, #2] + movs r0, #0x20 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _08077A94 + ldr r0, _08077A8C @ =gUnk_0811BE48 + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r5, _08077A90 @ =gUnk_03000B80 + ldrb r0, [r1, #1] + ldrb r1, [r5, #9] + cmp r0, r1 + blo _08077A94 + adds r0, r5, #0 + movs r1, #0 + bl sub_08077E78 + strb r4, [r6, #1] + strb r4, [r6, #0x1c] + strb r4, [r6, #0x1b] + adds r0, r5, #0 + b _08077A96 + .align 2, 0 +_08077A88: .4byte gUnk_03003F80 +_08077A8C: .4byte gUnk_0811BE48 +_08077A90: .4byte gUnk_03000B80 +_08077A94: + movs r0, #0 +_08077A96: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08077A98 +sub_08077A98: @ 0x08077A98 + push {lr} + ldr r0, _08077AB8 @ =gUnk_02002A40 + adds r0, #0xac + ldrb r0, [r0] + cmp r0, #0 + beq _08077AC4 + ldr r0, _08077ABC @ =gUnk_03003F80 + ldrb r0, [r0, #5] + cmp r0, #0 + bne _08077AC4 + ldr r1, _08077AC0 @ =gUnk_03000B80 + ldrb r0, [r1, #9] + cmp r0, #0 + bne _08077AC4 + adds r0, r1, #0 + b _08077AC6 + .align 2, 0 +_08077AB8: .4byte gUnk_02002A40 +_08077ABC: .4byte gUnk_03003F80 +_08077AC0: .4byte gUnk_03000B80 +_08077AC4: + movs r0, #0 +_08077AC6: + pop {pc} + + thumb_func_start sub_08077AC8 +sub_08077AC8: @ 0x08077AC8 + push {lr} + movs r2, #0 + ldr r1, _08077AD8 @ =gUnk_03000B80 +_08077ACE: + ldrb r0, [r1, #9] + cmp r0, #0 + beq _08077ADC + movs r0, #0 + b _08077AE6 + .align 2, 0 +_08077AD8: .4byte gUnk_03000B80 +_08077ADC: + adds r1, #0x1c + adds r2, #1 + cmp r2, #3 + bls _08077ACE + ldr r0, _08077AE8 @ =gUnk_03000BD4 +_08077AE6: + pop {pc} + .align 2, 0 +_08077AE8: .4byte gUnk_03000BD4 + + thumb_func_start sub_08077AEC +sub_08077AEC: @ 0x08077AEC + push {lr} + ldr r0, _08077B14 @ =gUnk_03000BD4 + movs r1, #3 + bl sub_08077E78 + ldr r2, _08077B18 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + ldr r1, _08077B1C @ =0xFF7FFFFF + ands r0, r1 + str r0, [r2, #0x30] + movs r0, #0x10 + bl sub_0805436C + adds r1, r0, #0 + cmp r1, #2 + beq _08077B12 + movs r0, #0xf + bl sub_08054414 +_08077B12: + pop {pc} + .align 2, 0 +_08077B14: .4byte gUnk_03000BD4 +_08077B18: .4byte gUnk_03003F80 +_08077B1C: .4byte 0xFF7FFFFF + + thumb_func_start sub_08077B20 +sub_08077B20: @ 0x08077B20 + push {lr} + bl sub_08077B2C + bl sub_08077AEC + pop {pc} + + thumb_func_start sub_08077B2C +sub_08077B2C: @ 0x08077B2C + push {r4, r5, lr} + movs r4, #0 + ldr r5, _08077B88 @ =gUnk_03000B80 +_08077B32: + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08077E78 + adds r5, #0x1c + adds r4, #1 + cmp r4, #2 + bls _08077B32 + ldr r2, _08077B8C @ =gUnk_03003F80 + adds r0, r2, #0 + adds r0, #0x3d + movs r3, #0 + strb r3, [r0] + strb r3, [r2, #0x1c] + subs r0, #0x1c + strb r3, [r0] + strb r3, [r2, #1] + strb r3, [r2, #0xe] + strb r3, [r2, #0x1e] + strb r3, [r2, #0x1b] + strb r3, [r2, #3] + strb r3, [r2, #5] + ldr r0, [r2, #0x30] + ldr r1, _08077B90 @ =0xF7FBFFFF + ands r0, r1 + str r0, [r2, #0x30] + ldr r0, _08077B94 @ =gUnk_03001160 + str r3, [r0, #0x70] + ldrb r1, [r2, #2] + movs r0, #0xc0 + ands r0, r1 + cmp r0, #0 + bne _08077B76 + strb r3, [r2, #2] +_08077B76: + adds r1, r2, #0 + adds r1, #0xa8 + ldrb r0, [r1] + cmp r0, #4 + bgt _08077B86 + cmp r0, #2 + blt _08077B86 + strb r3, [r1] +_08077B86: + pop {r4, r5, pc} + .align 2, 0 +_08077B88: .4byte gUnk_03000B80 +_08077B8C: .4byte gUnk_03003F80 +_08077B90: .4byte 0xF7FBFFFF +_08077B94: .4byte gUnk_03001160 + + thumb_func_start sub_08077B98 +sub_08077B98: @ 0x08077B98 + push {r4, lr} + adds r1, r0, #0 + ldr r4, _08077BB4 @ =gUnk_03003F80 + ldr r0, [r4, #0x2c] + cmp r0, #0 + beq _08077BAA + ldrb r0, [r0, #9] + cmp r0, #1 + beq _08077BB2 +_08077BAA: + adds r0, r1, #0 + bl sub_08077C54 + str r0, [r4, #0x2c] +_08077BB2: + pop {r4, pc} + .align 2, 0 +_08077BB4: .4byte gUnk_03003F80 + + thumb_func_start sub_08077BB8 +sub_08077BB8: @ 0x08077BB8 + push {lr} + bl sub_08077C54 + adds r1, r0, #0 + cmp r1, #0 + beq _08077BC8 + movs r0, #0x20 + strb r0, [r1, #0x10] +_08077BC8: + ldr r0, _08077BD0 @ =gUnk_03003F80 + str r1, [r0, #0x2c] + pop {pc} + .align 2, 0 +_08077BD0: .4byte gUnk_03003F80 + + thumb_func_start sub_08077BD4 +sub_08077BD4: @ 0x08077BD4 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08077C04 @ =gUnk_0811BE48 + ldrb r1, [r4, #1] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrb r1, [r0, #3] + adds r0, r4, #0 + bl sub_08077C94 + cmp r0, #0 + bne _08077C08 + ldrb r1, [r4, #1] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrb r1, [r0, #3] + adds r0, r4, #0 + bl sub_08077C3C + b _08077C0A + .align 2, 0 +_08077C04: .4byte gUnk_0811BE48 +_08077C08: + movs r0, #0 +_08077C0A: + pop {r4, r5, pc} + + thumb_func_start sub_08077C0C +sub_08077C0C: @ 0x08077C0C + push {r4, r5, lr} + adds r5, r0, #0 + ldr r2, _08077C34 @ =gUnk_0811BE48 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r4, [r0, #3] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08077C94 + cmp r0, #0 + bne _08077C38 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08077C3C + b _08077C3A + .align 2, 0 +_08077C34: .4byte gUnk_0811BE48 +_08077C38: + movs r0, #0 +_08077C3A: + pop {r4, r5, pc} + + thumb_func_start sub_08077C3C +sub_08077C3C: @ 0x08077C3C + push {r4, lr} + adds r4, r0, #0 + adds r0, r1, #0 + ldrb r3, [r4, #1] + movs r1, #0 + movs r2, #0 + bl sub_08077CB8 + cmp r0, #0 + beq _08077C52 + str r4, [r0, #0x50] +_08077C52: + pop {r4, pc} + + thumb_func_start sub_08077C54 +sub_08077C54: @ 0x08077C54 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_0805E744 + adds r4, r0, #0 + cmp r4, #0 + beq _08077C8C + ldr r2, _08077C90 @ =gUnk_0811BE48 + ldrb r1, [r5, #1] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #3] + strb r0, [r4, #9] + movs r0, #8 + strb r0, [r4, #8] + movs r0, #0xa0 + strb r0, [r4, #0x10] + str r5, [r4, #0x50] + ldrb r1, [r5, #1] + adds r0, r4, #0 + adds r0, #0x68 + strb r1, [r0] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805EA2C +_08077C8C: + adds r0, r4, #0 + pop {r4, r5, pc} + .align 2, 0 +_08077C90: .4byte gUnk_0811BE48 + + thumb_func_start sub_08077C94 +sub_08077C94: @ 0x08077C94 + push {lr} + ldr r2, _08077CB4 @ =gUnk_0811BE48 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #3] + movs r0, #8 + movs r2, #2 + bl sub_0805EB00 + cmp r0, #0 + bne _08077CB0 + movs r0, #0 +_08077CB0: + pop {pc} + .align 2, 0 +_08077CB4: .4byte gUnk_0811BE48 + + thumb_func_start sub_08077CB8 +sub_08077CB8: @ 0x08077CB8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + adds r6, r1, #0 + adds r7, r2, #0 + mov r8, r3 + bl sub_0805E678 + adds r4, r0, #0 + cmp r4, #0 + beq _08077CEE + movs r0, #0x80 + strb r0, [r4, #0x10] + movs r0, #8 + strb r0, [r4, #8] + strb r5, [r4, #9] + strb r6, [r4, #0xa] + strb r7, [r4, #0xb] + adds r0, r4, #0 + adds r0, #0x68 + mov r1, r8 + strb r1, [r0] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805EA2C +_08077CEE: + adds r0, r4, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08077CF8 +sub_08077CF8: @ 0x08077CF8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + adds r6, r1, #0 + adds r7, r2, #0 + mov r8, r3 + bl sub_0805E744 + adds r4, r0, #0 + cmp r4, #0 + beq _08077D2E + movs r0, #0x80 + strb r0, [r4, #0x10] + movs r0, #8 + strb r0, [r4, #8] + strb r5, [r4, #9] + strb r6, [r4, #0xa] + strb r7, [r4, #0xb] + adds r0, r4, #0 + adds r0, #0x68 + mov r1, r8 + strb r1, [r0] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805EA2C +_08077D2E: + adds r0, r4, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08077D38 +sub_08077D38: @ 0x08077D38 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + mov r8, r1 + ldr r3, _08077D94 @ =gUnk_03003F80 + movs r7, #8 + adds r1, r7, #0 + mov r0, r8 + asrs r1, r0 + ldrb r2, [r3, #0xa] + adds r0, r1, #0 + orrs r0, r2 + strb r0, [r3, #0xa] + ldrb r0, [r3, #0xb] + orrs r1, r0 + strb r1, [r3, #0xb] + ldr r0, _08077D98 @ =gUnk_03001160 + ldrb r0, [r0, #0x14] + strb r0, [r4, #0xa] + ldrb r0, [r4, #4] + cmp r0, #0 + bne _08077D6A + adds r0, #1 + strb r0, [r4, #4] +_08077D6A: + ldrb r2, [r4, #1] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r1, _08077D9C @ =gUnk_0811BE48 + adds r5, r0, r1 + ldrh r0, [r5, #4] + cmp r0, #0 + beq _08077DCC + ldr r0, [r3, #0x30] + ands r0, r7 + cmp r0, #0 + beq _08077DC4 + cmp r2, #0xd + beq _08077DB2 + cmp r2, #0xd + bgt _08077DA0 + cmp r2, #1 + beq _08077DAC + b _08077DB4 + .align 2, 0 +_08077D94: .4byte gUnk_03003F80 +_08077D98: .4byte gUnk_03001160 +_08077D9C: .4byte gUnk_0811BE48 +_08077DA0: + cmp r2, #0x1b + bne _08077DB4 + ldr r6, _08077DA8 @ =0x00000948 + b _08077DB4 + .align 2, 0 +_08077DA8: .4byte 0x00000948 +_08077DAC: + movs r6, #0x81 + lsls r6, r6, #3 + b _08077DB4 +_08077DB2: + ldr r6, _08077DC0 @ =0x0000040C +_08077DB4: + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08077DF4 + b _08077DCC + .align 2, 0 +_08077DC0: .4byte 0x0000040C +_08077DC4: + ldrh r1, [r5, #4] + adds r0, r4, #0 + bl sub_08077DF4 +_08077DCC: + ldrb r0, [r5, #6] + strb r0, [r4, #0xf] + ldrb r0, [r5, #7] + cmp r0, #0 + beq _08077DE8 + ldr r2, _08077DF0 @ =gUnk_03003F80 + movs r0, #8 + mov r1, r8 + asrs r0, r1 + lsls r1, r0, #4 + orrs r0, r1 + ldrb r1, [r2, #4] + orrs r0, r1 + strb r0, [r2, #4] +_08077DE8: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08077DF0: .4byte gUnk_03003F80 + + thumb_func_start sub_08077DF4 +sub_08077DF4: @ 0x08077DF4 + push {r4, lr} + adds r4, r0, #0 + adds r2, r1, #0 + strh r2, [r4, #0x10] + movs r0, #0xff + ands r0, r2 + cmp r0, #0xb8 + bls _08077E0A + ldrb r0, [r4, #0xa] + lsrs r0, r0, #1 + adds r2, r2, r0 +_08077E0A: + ldr r0, _08077E20 @ =gUnk_03001160 + lsrs r1, r2, #8 + strh r1, [r0, #0x12] + lsls r1, r2, #0x18 + lsrs r1, r1, #0x18 + bl sub_080042AC + adds r0, r4, #0 + bl sub_08077E54 + pop {r4, pc} + .align 2, 0 +_08077E20: .4byte gUnk_03001160 + + thumb_func_start sub_08077E24 +sub_08077E24: @ 0x08077E24 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08077E38 @ =gUnk_03001160 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_08077E54 + pop {r4, pc} + .align 2, 0 +_08077E38: .4byte gUnk_03001160 + + thumb_func_start sub_08077E3C +sub_08077E3C: @ 0x08077E3C + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08077E50 @ =gUnk_03001160 + bl sub_080042BA + adds r0, r4, #0 + bl sub_08077E54 + pop {r4, pc} + .align 2, 0 +_08077E50: .4byte gUnk_03001160 + + thumb_func_start sub_08077E54 +sub_08077E54: @ 0x08077E54 + ldr r2, _08077E74 @ =gUnk_03001160 + adds r1, r2, #0 + adds r1, #0x58 + ldrb r1, [r1] + strb r1, [r0, #0xc] + ldrb r1, [r2, #0x1e] + strb r1, [r0, #0x12] + adds r1, r2, #0 + adds r1, #0x59 + ldrb r1, [r1] + strb r1, [r0, #0xd] + adds r1, r2, #0 + adds r1, #0x5a + ldrb r1, [r1] + strb r1, [r0, #0xe] + bx lr + .align 2, 0 +_08077E74: .4byte gUnk_03001160 + + thumb_func_start sub_08077E78 +sub_08077E78: @ 0x08077E78 + push {r4, r5, lr} + adds r5, r0, #0 + adds r3, r1, #0 + ldr r4, _08077EC4 @ =gUnk_03003F80 + cmp r3, #0 + bne _08077E9A + ldr r2, [r4, #0x2c] + cmp r2, #0 + beq _08077E98 + ldrb r0, [r2, #0x11] + movs r1, #0x10 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #6 + orrs r1, r0 + strb r1, [r2, #0x11] +_08077E98: + str r3, [r4, #0x2c] +_08077E9A: + movs r2, #8 + asrs r2, r3 + lsls r1, r2, #4 + orrs r1, r2 + ldrb r0, [r4, #4] + bics r0, r1 + strb r0, [r4, #4] + mvns r2, r2 + ldrb r1, [r4, #0xa] + adds r0, r2, #0 + ands r0, r1 + strb r0, [r4, #0xa] + ldrb r0, [r4, #0xb] + ands r2, r0 + strb r2, [r4, #0xb] + adds r0, r5, #0 + movs r1, #0x1c + bl sub_0801D630 + pop {r4, r5, pc} + .align 2, 0 +_08077EC4: .4byte gUnk_03003F80 + + thumb_func_start sub_08077EC8 +sub_08077EC8: @ 0x08077EC8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08077EDC @ =gUnk_03003F80 + ldrb r1, [r0, #0x1b] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + bne _08077EE0 + movs r0, #0 + b _08077EF8 + .align 2, 0 +_08077EDC: .4byte gUnk_03003F80 +_08077EE0: + movs r1, #0xb8 + lsls r1, r1, #1 + adds r0, r4, #0 + bl sub_08077DF4 + movs r0, #0x28 + strb r0, [r4, #7] + movs r0, #7 + strb r0, [r4, #4] + movs r0, #6 + strb r0, [r4, #0xf] + movs r0, #1 +_08077EF8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08077EFC +sub_08077EFC: @ 0x08077EFC + push {lr} + ldr r1, _08077F0C @ =gUnk_03003F80 + adds r1, #0x90 + ldrh r1, [r1] + bl sub_08077F24 + pop {pc} + .align 2, 0 +_08077F0C: .4byte gUnk_03003F80 + + thumb_func_start sub_08077F10 +sub_08077F10: @ 0x08077F10 + push {lr} + ldr r1, _08077F20 @ =gUnk_03003F80 + adds r1, #0x92 + ldrh r1, [r1] + bl sub_08077F24 + pop {pc} + .align 2, 0 +_08077F20: .4byte gUnk_03003F80 + + thumb_func_start sub_08077F24 +sub_08077F24: @ 0x08077F24 + push {lr} + ldr r2, _08077F34 @ =gUnk_02002AE8 + ldrb r3, [r0, #1] + ldrb r0, [r2, #0xc] + cmp r0, r3 + bne _08077F38 + movs r2, #1 + b _08077F42 + .align 2, 0 +_08077F34: .4byte gUnk_02002AE8 +_08077F38: + ldrb r0, [r2, #0xd] + movs r2, #0 + cmp r0, r3 + bne _08077F42 + movs r2, #2 +_08077F42: + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _08077F4C + movs r0, #1 +_08077F4C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08077F50 +sub_08077F50: @ 0x08077F50 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08079184 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077E78 + pop {r4, r5, pc} + + thumb_func_start sub_08077F64 +sub_08077F64: @ 0x08077F64 + push {lr} + adds r2, r0, #0 + ldr r0, _08077F7C @ =gUnk_03003F80 + ldrb r0, [r0, #5] + cmp r0, #0 + bne _08077F80 + adds r0, r2, #0 + bl sub_08077F50 + movs r0, #0 + b _08077F82 + .align 2, 0 +_08077F7C: .4byte gUnk_03003F80 +_08077F80: + movs r0, #1 +_08077F82: + pop {pc} + + thumb_func_start sub_08077F84 +sub_08077F84: @ 0x08077F84 + push {r4, lr} + ldr r4, _08077FE0 @ =gUnk_03001160 + adds r0, r4, #0 + adds r0, #0x38 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08077FDE + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + subs r1, #0xc + movs r2, #2 + bl sub_080002A4 + ldr r1, _08077FE4 @ =0xFFFFFCBD + adds r0, r0, r1 + cmp r0, #3 + bhi _08077FDE + adds r0, r4, #0 + bl sub_0807AA80 + ldr r2, _08077FE8 @ =gUnk_03003F80 + ldrb r1, [r2, #2] + movs r0, #8 + orrs r0, r1 + strb r0, [r2, #2] + movs r0, #0x44 + movs r1, #0 + movs r2, #0 + bl sub_080A2960 + adds r1, r0, #0 + cmp r1, #0 + beq _08077FDE + ldr r0, [r4, #0x2c] + str r0, [r1, #0x2c] + ldrh r0, [r4, #0x32] + subs r0, #0xc + strh r0, [r1, #0x32] + ldrh r0, [r4, #0x32] + subs r0, #0xc + strh r0, [r4, #0x32] +_08077FDE: + pop {r4, pc} + .align 2, 0 +_08077FE0: .4byte gUnk_03001160 +_08077FE4: .4byte 0xFFFFFCBD +_08077FE8: .4byte gUnk_03003F80 + + thumb_func_start sub_08077FEC +sub_08077FEC: @ 0x08077FEC + push {lr} + ldr r0, _08078000 @ =gUnk_03004020 + ldr r2, _08078004 @ =gUnk_0811BFE8 + ldrb r1, [r0] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08078000: .4byte gUnk_03004020 +_08078004: .4byte gUnk_0811BFE8 + + thumb_func_start sub_08078008 +sub_08078008: @ 0x08078008 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r6, _08078060 @ =gUnk_02002A40 + adds r5, r6, #0 + adds r5, #0xb4 + ldrb r0, [r5] + bl sub_0805449C + cmp r0, #0 + bne _0807802C + adds r5, r6, #0 + adds r5, #0xb5 + ldrb r0, [r5] + bl sub_0805449C + movs r2, #0 + cmp r0, #0 + beq _0807802E +_0807802C: + ldrb r2, [r5] +_0807802E: + subs r0, r2, #1 + cmp r0, #1 + bhi _08078036 + movs r2, #0 +_08078036: + cmp r2, #0 + beq _08078068 + ldr r0, _08078064 @ =gUnk_03003F80 + ldrb r1, [r0, #0x1b] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _08078068 + ldrb r0, [r4, #1] + adds r0, #1 + strb r0, [r4, #1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0x14 + ble _0807806C + movs r0, #0xa + strb r0, [r4, #1] + movs r0, #3 + strb r0, [r4] + strb r2, [r4, #2] + b _0807806C + .align 2, 0 +_08078060: .4byte gUnk_02002A40 +_08078064: .4byte gUnk_03003F80 +_08078068: + movs r0, #0 + strb r0, [r4, #1] +_0807806C: + movs r0, #0 + pop {r4, r5, r6, pc} + + thumb_func_start sub_08078070 +sub_08078070: @ 0x08078070 + push {lr} + adds r2, r0, #0 + ldr r3, _08078098 @ =gUnk_03003F80 + ldrb r1, [r3, #0x1b] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080780D6 + adds r0, r3, #0 + adds r0, #0xac + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #3 + ands r0, r1 + cmp r0, #0 + beq _0807809C + ldrh r0, [r2, #4] + adds r0, #0xc + b _080780A0 + .align 2, 0 +_08078098: .4byte gUnk_03003F80 +_0807809C: + ldrh r0, [r2, #4] + adds r0, #6 +_080780A0: + strh r0, [r2, #4] + movs r0, #4 + ldrsh r1, [r2, r0] + ldr r0, _080780BC @ =0x0000031F + cmp r1, r0 + ble _080780C0 + adds r0, #1 + strh r0, [r2, #4] + movs r0, #4 + strb r0, [r2] + movs r0, #0xd8 + bl sub_080A3268 + b _080780DA + .align 2, 0 +_080780BC: .4byte 0x0000031F +_080780C0: + movs r1, #4 + ldrsh r0, [r2, r1] + movs r1, #0x14 + bl Mod + cmp r0, #0 + bne _080780DA + movs r0, #0xd7 + bl sub_080A3268 + b _080780DA +_080780D6: + movs r0, #1 + strb r0, [r2] +_080780DA: + movs r0, #1 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080780E0 +sub_080780E0: @ 0x080780E0 + push {lr} + adds r2, r0, #0 + ldr r0, _080780F4 @ =gUnk_03003F80 + ldrb r1, [r0, #0x1b] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080780F8 + movs r0, #5 + b _08078102 + .align 2, 0 +_080780F4: .4byte gUnk_03003F80 +_080780F8: + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _08078104 + movs r0, #1 +_08078102: + strb r0, [r2] +_08078104: + movs r0, #1 + pop {pc} + + thumb_func_start sub_08078108 +sub_08078108: @ 0x08078108 + push {lr} + adds r1, r0, #0 + ldrh r0, [r1, #4] + subs r0, #1 + strh r0, [r1, #4] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _08078120 + movs r0, #0 + strh r0, [r1, #4] + movs r0, #2 + strb r0, [r1] +_08078120: + movs r0, #1 + pop {pc} + + thumb_func_start sub_08078124 +sub_08078124: @ 0x08078124 + push {lr} + adds r1, r0, #0 + ldrh r0, [r1, #4] + subs r0, #0x10 + strh r0, [r1, #4] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _0807813C + movs r0, #0 + strh r0, [r1, #4] + movs r0, #2 + strb r0, [r1] +_0807813C: + movs r0, #1 + pop {pc} + + thumb_func_start sub_08078140 +sub_08078140: @ 0x08078140 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #1] + subs r0, #1 + movs r2, #0 + strb r0, [r1, #1] + lsls r0, r0, #0x18 + cmp r0, #0 + blt _08078156 + movs r0, #0 + b _0807815C +_08078156: + strb r2, [r1, #1] + strb r2, [r1] + movs r0, #1 +_0807815C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08078160 +sub_08078160: @ 0x08078160 + push {lr} + ldr r1, _08078178 @ =gUnk_03003F80 + adds r1, #0xa8 + strb r0, [r1] + ldr r2, _0807817C @ =gUnk_03001160 + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] + bl sub_08078B48 + pop {pc} + .align 2, 0 +_08078178: .4byte gUnk_03003F80 +_0807817C: .4byte gUnk_03001160 + + thumb_func_start sub_08078180 +sub_08078180: @ 0x08078180 + push {r4, r5, r6, lr} + ldr r0, _080781C8 @ =gUnk_0200AF00 + adds r1, r0, #0 + adds r1, #0x2f + ldrb r1, [r1] + adds r6, r0, #0 + cmp r1, #0 + beq _08078192 + b _080782BC +_08078192: + movs r4, #0 + ldr r5, _080781CC @ =gUnk_03003F80 + ldrb r0, [r5, #2] + cmp r0, #0 + beq _0807819E + b _080782B6 +_0807819E: + ldr r0, [r5, #0x30] + ldr r1, _080781D0 @ =0x00104D00 + ands r0, r1 + cmp r0, #0 + beq _080781AA + b _080782B6 +_080781AA: + ldrb r0, [r5, #5] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bhi _080781D4 + adds r1, r6, #0 + adds r1, #0x2e + ldrb r0, [r1] + movs r4, #3 + cmp r0, #0 + bne _080781C4 + b _080782B6 +_080781C4: + adds r4, r0, #0 + b _080782B6 + .align 2, 0 +_080781C8: .4byte gUnk_0200AF00 +_080781CC: .4byte gUnk_03003F80 +_080781D0: .4byte 0x00104D00 +_080781D4: + adds r1, r6, #0 + adds r1, #0x2d + ldrb r0, [r1] + cmp r0, #0 + bne _080781C4 + bl sub_080784E4 + adds r1, r0, #0 + ldr r0, [r1, #8] + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _08078278 + ldrb r0, [r1, #1] + subs r0, #1 + cmp r0, #9 + bhi _080782B6 + lsls r0, r0, #2 + ldr r1, _08078204 @ =_08078208 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08078204: .4byte _08078208 +_08078208: @ jump table + .4byte _08078230 @ case 0 + .4byte _080782B6 @ case 1 + .4byte _08078254 @ case 2 + .4byte _080782B6 @ case 3 + .4byte _08078254 @ case 4 + .4byte _08078254 @ case 5 + .4byte _08078230 @ case 6 + .4byte _0807823C @ case 7 + .4byte _08078260 @ case 8 + .4byte _0807826C @ case 9 +_08078230: + movs r4, #7 + ldr r6, _08078238 @ =gUnk_0200AF00 + b _080782B6 + .align 2, 0 +_08078238: .4byte gUnk_0200AF00 +_0807823C: + ldr r0, _0807824C @ =gUnk_02034350 + ldrb r0, [r0, #6] + ldr r6, _08078250 @ =gUnk_0200AF00 + cmp r0, #0 + bne _080782B6 + movs r4, #9 + b _080782B6 + .align 2, 0 +_0807824C: .4byte gUnk_02034350 +_08078250: .4byte gUnk_0200AF00 +_08078254: + movs r4, #6 + ldr r6, _0807825C @ =gUnk_0200AF00 + b _080782B6 + .align 2, 0 +_0807825C: .4byte gUnk_0200AF00 +_08078260: + movs r4, #5 + ldr r6, _08078268 @ =gUnk_0200AF00 + b _080782B6 + .align 2, 0 +_08078268: .4byte gUnk_0200AF00 +_0807826C: + movs r4, #2 + ldr r6, _08078274 @ =gUnk_0200AF00 + b _080782B6 + .align 2, 0 +_08078274: .4byte gUnk_0200AF00 +_08078278: + bl sub_080789A8 + cmp r0, #0 + beq _080782A4 + adds r0, r5, #0 + adds r0, #0xa8 + ldrb r0, [r0] + cmp r0, #0xe + beq _080782BC + ldr r1, _080782A0 @ =gUnk_03003BE0 + ldrb r0, [r1, #1] + movs r4, #9 + cmp r0, #2 + bne _080782B6 + ldr r0, [r1, #8] + ldrb r0, [r0, #0x16] + cmp r0, #1 + bne _080782B6 + movs r4, #8 + b _080782B6 + .align 2, 0 +_080782A0: .4byte gUnk_03003BE0 +_080782A4: + adds r0, r5, #0 + adds r0, #0xa8 + ldrb r0, [r0] + cmp r0, #1 + bne _080782B6 + ldrb r0, [r5, #0x1a] + cmp r0, #0 + bne _080782B6 + movs r4, #0xc +_080782B6: + adds r0, r6, #0 + adds r0, #0x2c + strb r4, [r0] +_080782BC: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080782C0 +sub_080782C0: @ 0x080782C0 + push {r4, r5, r6, lr} + ldr r1, _080782D8 @ =gUnk_03003F80 + adds r2, r1, #0 + adds r2, #0xa8 + ldrb r0, [r2] + adds r4, r1, #0 + cmp r0, #0 + bne _080782DC + adds r0, r4, #0 + adds r0, #0xa9 + ldrb r0, [r0] + b _080782DE + .align 2, 0 +_080782D8: .4byte gUnk_03003F80 +_080782DC: + ldrb r0, [r2] +_080782DE: + subs r0, #2 + cmp r0, #0x14 + bhi _08078348 + lsls r0, r0, #2 + ldr r1, _080782F0 @ =_080782F4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080782F0: .4byte _080782F4 +_080782F4: @ jump table + .4byte _080784AC @ case 0 + .4byte _080784AC @ case 1 + .4byte _08078348 @ case 2 + .4byte _08078348 @ case 3 + .4byte _08078348 @ case 4 + .4byte _08078348 @ case 5 + .4byte _08078348 @ case 6 + .4byte _08078348 @ case 7 + .4byte _08078348 @ case 8 + .4byte _08078348 @ case 9 + .4byte _080784AC @ case 10 + .4byte _08078348 @ case 11 + .4byte _08078348 @ case 12 + .4byte _08078348 @ case 13 + .4byte _08078348 @ case 14 + .4byte _08078348 @ case 15 + .4byte _080784AC @ case 16 + .4byte _08078348 @ case 17 + .4byte _08078348 @ case 18 + .4byte _080784AC @ case 19 + .4byte _080784AC @ case 20 +_08078348: + adds r0, r4, #0 + adds r0, #0x27 + adds r2, r4, #0 + adds r2, #0x26 + ldrb r1, [r0] + ldrb r0, [r2] + orrs r0, r1 + cmp r0, #0 + beq _0807835C + b _080784AC +_0807835C: + ldrb r0, [r4, #0x12] + cmp r0, #1 + bne _08078376 + ldrb r0, [r4, #0x14] + cmp r0, #0 + bne _0807836A + b _080784AC +_0807836A: + bl sub_08052B24 + cmp r0, #0 + beq _08078374 + b _080784C4 +_08078374: + b _080784AC +_08078376: + ldr r0, [r4, #0x30] + movs r1, #0x80 + lsls r1, r1, #7 + ands r0, r1 + cmp r0, #0 + beq _08078384 + b _080784AC +_08078384: + bl sub_08052B24 + cmp r0, #0 + beq _0807838E + b _080784C4 +_0807838E: + bl sub_080784E4 + ldr r6, [r0, #8] + cmp r6, #0 + bne _0807839A + b _080784AC +_0807839A: + ldrb r0, [r4, #5] + cmp r0, #0 + beq _080783B6 + cmp r0, #4 + beq _080783A6 + b _080784AC +_080783A6: + ldr r0, _08078400 @ =gUnk_03001160 + ldr r0, [r0, #0x74] + ldr r0, [r0, #0x54] + ldrh r1, [r0, #8] + ldr r0, _08078404 @ =0x00000206 + cmp r1, r0 + beq _080783B6 + b _080784AC +_080783B6: + ldr r2, _08078408 @ =gUnk_03003F80 + adds r0, r2, #0 + adds r0, #0x92 + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #5 + ands r0, r1 + adds r4, r2, #0 + cmp r0, #0 + beq _0807842C + ldr r5, _0807840C @ =gUnk_03003DF0 + ldr r0, [r5, #4] + ldrb r0, [r0, #3] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x63 + bhi _0807842C + movs r0, #0 + bl sub_0801E738 + ldr r0, _08078410 @ =gUnk_02002A40 + ldr r1, _08078414 @ =0x0000012B + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _08078418 + ldr r1, [r5, #4] + ldrb r0, [r1, #3] + strb r0, [r5, #2] + ldr r0, [r1, #8] + adds r0, #0x39 + movs r1, #2 + strb r1, [r0] + movs r0, #7 + strb r0, [r4, #0xc] + b _08078420 + .align 2, 0 +_08078400: .4byte gUnk_03001160 +_08078404: .4byte 0x00000206 +_08078408: .4byte gUnk_03003F80 +_0807840C: .4byte gUnk_03003DF0 +_08078410: .4byte gUnk_02002A40 +_08078414: .4byte 0x0000012B +_08078418: + ldr r0, _08078428 @ =0x00000B65 + movs r1, #0 + bl sub_08078AA8 +_08078420: + movs r0, #0x13 + bl sub_08078160 + b _080784C4 + .align 2, 0 +_08078428: .4byte 0x00000B65 +_0807842C: + adds r0, r4, #0 + adds r0, #0x92 + ldrh r1, [r0] + movs r0, #0x88 + ands r0, r1 + cmp r0, #0 + beq _080784AC + ldr r0, _08078450 @ =gUnk_03003DF0 + ldr r0, [r0, #4] + ldrb r0, [r0, #1] + cmp r0, #0xa + bhi _080784C4 + lsls r0, r0, #2 + ldr r1, _08078454 @ =_08078458 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08078450: .4byte gUnk_03003DF0 +_08078454: .4byte _08078458 +_08078458: @ jump table + .4byte _080784C4 @ case 0 + .4byte _08078484 @ case 1 + .4byte _080784C4 @ case 2 + .4byte _0807848E @ case 3 + .4byte _080784C4 @ case 4 + .4byte _0807848E @ case 5 + .4byte _08078484 @ case 6 + .4byte _0807848E @ case 7 + .4byte _080784A4 @ case 8 + .4byte _08078484 @ case 9 + .4byte _08078484 @ case 10 +_08078484: + movs r0, #7 + strb r0, [r4, #0xc] + movs r0, #0x13 + bl sub_08078160 +_0807848E: + adds r1, r6, #0 + adds r1, #0x39 + movs r2, #0 + movs r0, #1 + strb r0, [r1] + ldr r0, _080784A0 @ =gUnk_03003DF0 + strb r2, [r0, #2] + b _080784C4 + .align 2, 0 +_080784A0: .4byte gUnk_03003DF0 +_080784A4: + ldr r2, _080784B0 @ =gUnk_02034350 + ldrb r0, [r2, #6] + cmp r0, #0 + beq _080784B4 +_080784AC: + movs r0, #0 + b _080784C6 + .align 2, 0 +_080784B0: .4byte gUnk_02034350 +_080784B4: + adds r1, r6, #0 + adds r1, #0x39 + movs r0, #1 + strb r0, [r1] + ldrb r0, [r6, #0xa] + strb r0, [r2, #6] + ldrb r0, [r6, #0xb] + strb r0, [r2, #7] +_080784C4: + movs r0, #1 +_080784C6: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080784C8 +sub_080784C8: @ 0x080784C8 + push {r4, lr} + ldr r4, _080784DC @ =gUnk_03003DF0 + movs r1, #0xc4 + lsls r1, r1, #1 + adds r0, r4, #0 + bl sub_0801D630 + ldr r0, _080784E0 @ =gUnk_0811C000 + str r0, [r4, #4] + pop {r4, pc} + .align 2, 0 +_080784DC: .4byte gUnk_03003DF0 +_080784E0: .4byte gUnk_0811C000 + + thumb_func_start sub_080784E4 +sub_080784E4: @ 0x080784E4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, _080784FC @ =gUnk_03003DF0 + ldrb r1, [r0] + mov r8, r0 + cmp r1, #0 + beq _08078500 + ldr r0, [r0, #4] + b _0807876A + .align 2, 0 +_080784FC: .4byte gUnk_03003DF0 +_08078500: + ldr r2, _08078528 @ =gUnk_03003F80 + adds r0, r2, #0 + adds r0, #0x27 + adds r3, r2, #0 + adds r3, #0x26 + ldrb r1, [r0] + ldrb r0, [r3] + orrs r0, r1 + cmp r0, #0 + bne _08078598 + adds r1, r2, #0 + adds r1, #0xa8 + ldrb r0, [r1] + cmp r0, #0 + bne _0807852C + adds r0, r2, #0 + adds r0, #0xa9 + ldrb r0, [r0] + b _0807852E + .align 2, 0 +_08078528: .4byte gUnk_03003F80 +_0807852C: + ldrb r0, [r1] +_0807852E: + subs r0, #2 + cmp r0, #0x14 + bhi _080785B0 + lsls r0, r0, #2 + ldr r1, _08078540 @ =_08078544 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08078540: .4byte _08078544 +_08078544: @ jump table + .4byte _08078598 @ case 0 + .4byte _08078598 @ case 1 + .4byte _080785B0 @ case 2 + .4byte _080785B0 @ case 3 + .4byte _080785B0 @ case 4 + .4byte _080785B0 @ case 5 + .4byte _080785B0 @ case 6 + .4byte _080785B0 @ case 7 + .4byte _080785B0 @ case 8 + .4byte _080785B0 @ case 9 + .4byte _080785B0 @ case 10 + .4byte _080785B0 @ case 11 + .4byte _080785B0 @ case 12 + .4byte _080785B0 @ case 13 + .4byte _080785B0 @ case 14 + .4byte _080785B0 @ case 15 + .4byte _08078598 @ case 16 + .4byte _080785B0 @ case 17 + .4byte _080785B0 @ case 18 + .4byte _08078598 @ case 19 + .4byte _08078598 @ case 20 +_08078598: + movs r0, #0xff + mov r1, r8 + strb r0, [r1, #3] + ldr r0, _080785AC @ =gUnk_0811C000 + str r0, [r1, #4] + movs r1, #1 + mov r2, r8 + strb r1, [r2] + b _0807876A + .align 2, 0 +_080785AC: .4byte gUnk_0811C000 +_080785B0: + ldr r0, [r2, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080785F0 + bl sub_08052734 + cmp r0, #0 + beq _080785C4 + movs r0, #1 +_080785C4: + adds r7, r0, #0 + bl sub_08052764 + cmp r0, #0 + beq _080785D2 + movs r0, #2 + orrs r7, r0 +_080785D2: + ldr r3, _080785E4 @ =gUnk_03001160 + ldrb r0, [r3, #0x14] + movs r1, #6 + ands r1, r0 + ldr r0, _080785E8 @ =gUnk_0811C00C + adds r2, r1, r0 + ldr r5, _080785EC @ =gUnk_03003DF0 + mov r8, r5 + b _080785FE + .align 2, 0 +_080785E4: .4byte gUnk_03001160 +_080785E8: .4byte gUnk_0811C00C +_080785EC: .4byte gUnk_03003DF0 +_080785F0: + ldr r3, _08078624 @ =gUnk_03001160 + ldrb r0, [r3, #0x14] + movs r1, #6 + ands r1, r0 + ldr r0, _08078628 @ =gUnk_0811C014 + adds r2, r1, r0 + movs r7, #0 +_080785FE: + mov ip, r3 + mov r0, ip + movs r3, #0x2e + ldrsh r1, [r0, r3] + movs r0, #0 + ldrsb r0, [r2, r0] + adds r1, r1, r0 + mov sl, r1 + mov r5, ip + movs r0, #0x32 + ldrsh r1, [r5, r0] + movs r0, #1 + ldrsb r0, [r2, r0] + adds r1, r1, r0 + mov sb, r1 + movs r6, #0 + ldr r5, _0807862C @ =gUnk_03003DF8 + b _08078724 + .align 2, 0 +_08078624: .4byte gUnk_03001160 +_08078628: .4byte gUnk_0811C014 +_0807862C: .4byte gUnk_03003DF8 +_08078630: + ldrb r1, [r5] + movs r3, #1 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + bne _0807864E + mov r0, ip + adds r0, #0x38 + adds r1, r2, #0 + adds r1, #0x38 + ldrb r2, [r0] + ldrb r0, [r1] + ands r0, r2 + cmp r0, #0 + beq _08078714 +_0807864E: + ldrb r1, [r5, #2] + mov r2, ip + ldrb r0, [r2, #0x14] + lsrs r0, r0, #1 + asrs r1, r0 + ands r1, r3 + cmp r1, #0 + bne _08078714 + ldrb r0, [r5, #1] + cmp r0, #0xa + bhi _080786D4 + lsls r0, r0, #2 + ldr r1, _08078670 @ =_08078674 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08078670: .4byte _08078674 +_08078674: @ jump table + .4byte _08078714 @ case 0 + .4byte _080786A0 @ case 1 + .4byte _080786C4 @ case 2 + .4byte _080786A0 @ case 3 + .4byte _080786A0 @ case 4 + .4byte _080786C8 @ case 5 + .4byte _080786CC @ case 6 + .4byte _080786B4 @ case 7 + .4byte _080786A0 @ case 8 + .4byte _080786A0 @ case 9 + .4byte _080786D4 @ case 10 +_080786A0: + ldr r0, _080786B0 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08078714 + b _080786D4 + .align 2, 0 +_080786B0: .4byte gUnk_03003F80 +_080786B4: + ldr r0, _080786C0 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + b _080786D0 + .align 2, 0 +_080786C0: .4byte gUnk_03003F80 +_080786C4: + ldrb r0, [r5, #3] + b _080786D0 +_080786C8: + movs r0, #1 + b _080786CE +_080786CC: + movs r0, #2 +_080786CE: + ands r0, r7 +_080786D0: + cmp r0, #0 + beq _08078714 +_080786D4: + ldr r0, [r5, #8] + movs r1, #0x2e + ldrsh r3, [r0, r1] + movs r2, #0x32 + ldrsh r4, [r0, r2] + ldr r1, [r5, #4] + cmp r1, #0 + beq _080786F4 + movs r0, #0 + ldrsb r0, [r1, r0] + adds r3, r3, r0 + movs r0, #1 + ldrsb r0, [r1, r0] + adds r4, r4, r0 + adds r2, r1, #2 + b _080786F8 +_080786F4: + ldr r0, [r0, #0x48] + adds r2, r0, #6 +_080786F8: + ldrb r1, [r2] + mov r5, sl + adds r0, r1, r5 + subs r0, r0, r3 + lsls r1, r1, #1 + cmp r0, r1 + bhs _08078714 + ldrb r1, [r2, #1] + mov r2, sb + adds r0, r1, r2 + subs r0, r0, r4 + lsls r1, r1, #1 + cmp r0, r1 + blo _0807873A +_08078714: + adds r6, #1 + cmp r6, #0x1f + bhi _08078758 + lsls r0, r6, #1 + adds r0, r0, r6 + lsls r0, r0, #2 + ldr r3, _08078754 @ =gUnk_03003DF8 + adds r5, r0, r3 +_08078724: + ldr r2, [r5, #8] + cmp r2, #0 + beq _08078714 + adds r0, r2, #0 + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + blt _0807873A + b _08078630 +_0807873A: + cmp r6, #0x1f + bhi _08078758 + mov r5, r8 + strb r6, [r5, #3] + lsls r0, r6, #1 + adds r0, r0, r6 + lsls r0, r0, #2 + mov r1, r8 + adds r1, #8 + adds r0, r0, r1 + str r0, [r5, #4] + b _08078762 + .align 2, 0 +_08078754: .4byte gUnk_03003DF8 +_08078758: + movs r0, #0xff + mov r1, r8 + strb r0, [r1, #3] + ldr r0, _08078774 @ =gUnk_0811C000 + str r0, [r1, #4] +_08078762: + movs r0, #1 + mov r2, r8 + strb r0, [r2] + ldr r0, [r2, #4] +_0807876A: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08078774: .4byte gUnk_0811C000 + + thumb_func_start sub_08078778 +sub_08078778: @ 0x08078778 + push {lr} + movs r1, #1 + movs r2, #0 + bl sub_0807887C + pop {pc} + + thumb_func_start sub_08078784 +sub_08078784: @ 0x08078784 + push {lr} + adds r2, r1, #0 + movs r1, #1 + bl sub_0807887C + pop {pc} + + thumb_func_start sub_08078790 +sub_08078790: @ 0x08078790 + push {lr} + adds r2, r1, #0 + movs r1, #2 + bl sub_0807887C + pop {pc} + + thumb_func_start sub_0807879C +sub_0807879C: @ 0x0807879C + push {lr} + movs r1, #7 + movs r2, #0 + bl sub_0807887C + pop {pc} + + thumb_func_start sub_080787A8 +sub_080787A8: @ 0x080787A8 + push {lr} + adds r2, r1, #0 + movs r1, #7 + bl sub_0807887C + pop {pc} + + thumb_func_start sub_080787B4 +sub_080787B4: @ 0x080787B4 + push {lr} + movs r1, #9 + movs r2, #0 + bl sub_0807887C + pop {pc} + + thumb_func_start sub_080787C0 +sub_080787C0: @ 0x080787C0 + push {lr} + movs r1, #0xa + movs r2, #0 + bl sub_0807887C + pop {pc} + + thumb_func_start sub_080787CC +sub_080787CC: @ 0x080787CC + push {lr} + movs r1, #5 + movs r2, #0 + bl sub_0807887C + pop {pc} + + thumb_func_start sub_080787D8 +sub_080787D8: @ 0x080787D8 + push {lr} + movs r1, #8 + movs r2, #0 + bl sub_0807887C + adds r2, r0, #0 + cmp r2, #0 + blt _080787F6 + ldr r0, _080787FC @ =gUnk_03003DF0 + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + movs r0, #0xbe + strb r0, [r1, #0xa] +_080787F6: + adds r0, r2, #0 + pop {pc} + .align 2, 0 +_080787FC: .4byte gUnk_03003DF0 + + thumb_func_start sub_08078800 +sub_08078800: @ 0x08078800 + push {lr} + movs r1, #6 + movs r2, #0 + bl sub_0807887C + adds r2, r0, #0 + cmp r2, #0 + blt _0807881E + ldr r0, _08078824 @ =gUnk_03003DF0 + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + movs r0, #0xbe + strb r0, [r1, #0xa] +_0807881E: + adds r0, r2, #0 + pop {pc} + .align 2, 0 +_08078824: .4byte gUnk_03003DF0 + + thumb_func_start sub_08078828 +sub_08078828: @ 0x08078828 + push {lr} + movs r1, #3 + movs r2, #0 + bl sub_0807887C + adds r2, r0, #0 + cmp r2, #0 + blt _08078846 + ldr r0, _0807884C @ =gUnk_03003DF0 + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + movs r0, #0xbe + strb r0, [r1, #0xa] +_08078846: + adds r0, r2, #0 + pop {pc} + .align 2, 0 +_0807884C: .4byte gUnk_03003DF0 + + thumb_func_start sub_08078850 +sub_08078850: @ 0x08078850 + push {r4, r5, r6, lr} + adds r4, r1, #0 + adds r5, r2, #0 + adds r6, r3, #0 + bl sub_08078904 + adds r2, r0, #0 + cmp r2, #0 + blt _08078876 + ldr r0, _08078878 @ =gUnk_03003DF0 + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r2, r1, r0 + strb r4, [r2, #8] + strb r5, [r2, #0xa] + adds r0, #0xc + adds r1, r1, r0 + str r6, [r1] +_08078876: + pop {r4, r5, r6, pc} + .align 2, 0 +_08078878: .4byte gUnk_03003DF0 + + thumb_func_start sub_0807887C +sub_0807887C: @ 0x0807887C + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r7, r1, #0 + adds r6, r2, #0 + adds r1, r5, #0 + adds r1, #0x39 + movs r0, #0 + strb r0, [r1] + adds r0, r5, #0 + bl sub_08078904 + adds r4, r0, #0 + cmp r4, #0 + bge _080788A4 + movs r0, #0 + bl sub_08078904 + adds r4, r0, #0 + cmp r4, #0 + blt _080788BA +_080788A4: + ldr r2, _080788DC @ =gUnk_03003DF0 + lsls r1, r4, #1 + adds r1, r1, r4 + lsls r1, r1, #2 + adds r0, r2, #0 + adds r0, #0x10 + adds r0, r1, r0 + str r5, [r0] + adds r1, r1, r2 + strb r7, [r1, #9] + strb r6, [r1, #0xb] +_080788BA: + cmp r6, #0 + beq _080788D6 + movs r0, #6 + movs r1, #9 + movs r2, #6 + bl sub_0805EB00 + cmp r0, #0 + bne _080788D6 + movs r0, #9 + movs r1, #0 + movs r2, #0 + bl sub_080A2960 +_080788D6: + adds r0, r4, #0 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080788DC: .4byte gUnk_03003DF0 + + thumb_func_start sub_080788E0 +sub_080788E0: @ 0x080788E0 + push {lr} + bl sub_08078904 + adds r1, r0, #0 + cmp r1, #0 + blt _080788FC + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08078900 @ =gUnk_03003DF8 + adds r0, r0, r1 + movs r1, #0xc + bl sub_0801D630 +_080788FC: + pop {pc} + .align 2, 0 +_08078900: .4byte gUnk_03003DF8 + + thumb_func_start sub_08078904 +sub_08078904: @ 0x08078904 + push {lr} + adds r3, r0, #0 + movs r1, #0 + ldr r0, _0807891C @ =gUnk_03003DF0 + adds r2, r0, #0 + adds r2, #0x10 +_08078910: + ldr r0, [r2] + cmp r3, r0 + bne _08078920 + adds r0, r1, #0 + b _0807892C + .align 2, 0 +_0807891C: .4byte gUnk_03003DF0 +_08078920: + adds r2, #0xc + adds r1, #1 + cmp r1, #0x1f + bls _08078910 + movs r0, #1 + rsbs r0, r0, #0 +_0807892C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08078930 +sub_08078930: @ 0x08078930 + push {lr} + adds r3, r0, #0 + ldr r2, _08078950 @ =gUnk_03003BE0 + ldrb r0, [r2, #2] + cmp r0, #0x1f + bhi _0807894C + lsls r0, r0, #2 + adds r1, r2, #0 + adds r1, #0xc + adds r0, r0, r1 + str r3, [r0] + ldrb r0, [r2, #2] + adds r0, #1 + strb r0, [r2, #2] +_0807894C: + pop {pc} + .align 2, 0 +_08078950: .4byte gUnk_03003BE0 + + thumb_func_start sub_08078954 +sub_08078954: @ 0x08078954 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 + ldr r0, _08078970 @ =gUnk_03003BE0 + ldrb r1, [r0, #2] + adds r2, r0, #0 + cmp r4, r1 + bhs _080789A6 + ldr r0, [r2, #0xc] + cmp r0, r5 + bne _08078974 + subs r0, r1, #1 + b _0807898C + .align 2, 0 +_08078970: .4byte gUnk_03003BE0 +_08078974: + adds r4, #1 + ldrb r3, [r2, #2] + cmp r4, r3 + bhs _080789A6 + lsls r0, r4, #2 + adds r1, r2, #0 + adds r1, #0xc + adds r0, r0, r1 + ldr r0, [r0] + cmp r0, r5 + bne _08078974 + subs r0, r3, #1 +_0807898C: + strb r0, [r2, #2] + ldrb r0, [r2, #2] + cmp r4, r0 + bhs _080789A6 + lsls r0, r4, #2 + adds r0, #0xc + adds r1, r0, r2 +_0807899A: + ldr r0, [r1, #4] + stm r1!, {r0} + adds r4, #1 + ldrb r0, [r2, #2] + cmp r4, r0 + blo _0807899A +_080789A6: + pop {r4, r5, pc} + + thumb_func_start sub_080789A8 +sub_080789A8: @ 0x080789A8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r1, _080789BC @ =gUnk_03003BE0 + ldrb r0, [r1] + cmp r0, #0 + beq _080789C0 + ldrb r0, [r1, #1] + b _08078A88 + .align 2, 0 +_080789BC: .4byte gUnk_03003BE0 +_080789C0: + ldr r0, _08078A5C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08078A56 + ldr r0, _08078A60 @ =gUnk_03001160 + bl sub_080002D0 + adds r4, r0, #0 + cmp r4, #0xf + bls _080789E6 + ldr r0, _08078A64 @ =gUnk_080084BC + adds r1, r4, #0 + subs r1, #0x10 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0xf + beq _08078A56 +_080789E6: + ldr r0, _08078A5C @ =gUnk_03003F80 + ldrb r0, [r0, #0x12] + cmp r0, #0x12 + beq _08078A56 + ldr r3, _08078A68 @ =gUnk_03003BE0 + movs r0, #1 + strb r0, [r3] + ldrb r4, [r3, #2] + cmp r4, #0 + beq _08078A2E + ldr r2, _08078A60 @ =gUnk_03001160 + ldrb r1, [r2, #0x14] + movs r0, #6 + ands r0, r1 + ldr r1, _08078A6C @ =gUnk_0811BFE0 + adds r6, r0, r1 + adds r7, r2, #0 + adds r3, #8 + mov r8, r3 +_08078A0C: + lsls r0, r4, #2 + mov r1, r8 + adds r5, r0, r1 + ldr r1, [r5] + cmp r1, #0 + beq _08078A26 + ldrb r2, [r6] + ldrb r3, [r6, #1] + adds r0, r7, #0 + bl sub_0807A180 + cmp r0, #0 + bne _08078A74 +_08078A26: + subs r4, #1 + ldr r7, _08078A60 @ =gUnk_03001160 + cmp r4, #0 + bne _08078A0C +_08078A2E: + ldr r0, _08078A60 @ =gUnk_03001160 + ldrb r1, [r0, #0x14] + movs r2, #6 + ands r2, r1 + ldr r1, _08078A70 @ =gUnk_08007DF4 + adds r2, r2, r1 + movs r1, #0 + ldrsb r1, [r2, r1] + ldrb r2, [r2, #1] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + bl sub_0800029C + ldr r4, _08078A68 @ =gUnk_03003BE0 + strh r0, [r4, #4] + movs r1, #6 + bl sub_0806FC24 + cmp r0, #0 + bne _08078A84 +_08078A56: + movs r0, #0 + b _08078A88 + .align 2, 0 +_08078A5C: .4byte gUnk_03003F80 +_08078A60: .4byte gUnk_03001160 +_08078A64: .4byte gUnk_080084BC +_08078A68: .4byte gUnk_03003BE0 +_08078A6C: .4byte gUnk_0811BFE0 +_08078A70: .4byte gUnk_08007DF4 +_08078A74: + mov r0, r8 + subs r0, #8 + ldr r1, [r5] + str r1, [r0, #8] + movs r1, #2 + strb r1, [r0, #1] + movs r0, #2 + b _08078A88 +_08078A84: + movs r0, #1 + strb r0, [r4, #1] +_08078A88: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08078A90 +sub_08078A90: @ 0x08078A90 + push {lr} + adds r1, r0, #0 + ldr r0, _08078AA4 @ =gUnk_03003F80 + adds r2, r0, #0 + adds r2, #0x8b + ldrb r0, [r2] + cmp r0, #3 + beq _08078AA2 + strb r1, [r2] +_08078AA2: + pop {pc} + .align 2, 0 +_08078AA4: .4byte gUnk_03003F80 + + thumb_func_start sub_08078AA8 +sub_08078AA8: @ 0x08078AA8 + ldr r3, _08078AB8 @ =gUnk_03003F80 + movs r2, #0x16 + strb r2, [r3, #0xc] + ldr r2, _08078ABC @ =gUnk_030010A0 + strh r0, [r2, #0x36] + adds r2, #0x35 + strb r1, [r2] + bx lr + .align 2, 0 +_08078AB8: .4byte gUnk_03003F80 +_08078ABC: .4byte gUnk_030010A0 + + thumb_func_start sub_08078AC0 +sub_08078AC0: @ 0x08078AC0 + push {r4, lr} + ldr r3, _08078AEC @ =gUnk_03003F80 + mov ip, r3 + movs r3, #0xf + mov r4, ip + strb r3, [r4, #0xc] + mov r3, ip + adds r3, #0x38 + strb r0, [r3] + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + mov r1, ip + adds r1, #0x39 + strb r0, [r1] + rsbs r0, r2, #0 + orrs r0, r2 + lsrs r0, r0, #0x1f + adds r1, #1 + strb r0, [r1] + pop {r4, pc} + .align 2, 0 +_08078AEC: .4byte gUnk_03003F80 + + thumb_func_start sub_08078AF0 +sub_08078AF0: @ 0x08078AF0 + push {r4, lr} + ldr r3, _08078B40 @ =gUnk_03003F80 + mov ip, r3 + adds r3, #0x38 + movs r4, #0 + strb r1, [r3] + mov r1, ip + adds r1, #0x39 + strb r2, [r1] + adds r1, #1 + strb r4, [r1] + movs r1, #8 + mov r2, ip + strb r1, [r2, #0xc] + adds r2, #0xa8 + movs r1, #0x15 + strb r1, [r2] + mov r1, ip + adds r1, #0x26 + strb r4, [r1] + movs r1, #1 + mov r3, ip + strb r1, [r3, #0x14] + ldr r2, _08078B44 @ =gUnk_03001160 + str r0, [r2, #0x54] + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] + ldrb r1, [r2, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r2, #0x11] + bl sub_0807A108 + pop {r4, pc} + .align 2, 0 +_08078B40: .4byte gUnk_03003F80 +_08078B44: .4byte gUnk_03001160 + + thumb_func_start sub_08078B48 +sub_08078B48: @ 0x08078B48 + push {lr} + ldr r1, _08078B80 @ =gUnk_03003F80 + ldrb r0, [r1, #7] + movs r2, #0x80 + orrs r0, r2 + strb r0, [r1, #7] + ldrb r0, [r1, #0xb] + orrs r0, r2 + strb r0, [r1, #0xb] + ldrb r0, [r1, #0xa] + orrs r2, r0 + strb r2, [r1, #0xa] + adds r2, r1, #0 + adds r2, #0x27 + movs r0, #2 + strb r0, [r2] + adds r0, r1, #0 + adds r0, #0xa8 + ldrb r0, [r0] + subs r0, #4 + adds r2, r1, #0 + cmp r0, #0x19 + bhi _08078BF8 + lsls r0, r0, #2 + ldr r1, _08078B84 @ =_08078B88 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08078B80: .4byte gUnk_03003F80 +_08078B84: .4byte _08078B88 +_08078B88: @ jump table + .4byte _08078C04 @ case 0 + .4byte _08078C04 @ case 1 + .4byte _08078BF8 @ case 2 + .4byte _08078BF8 @ case 3 + .4byte _08078BF8 @ case 4 + .4byte _08078BF0 @ case 5 + .4byte _08078BF8 @ case 6 + .4byte _08078BF8 @ case 7 + .4byte _08078BF8 @ case 8 + .4byte _08078BF8 @ case 9 + .4byte _08078BF8 @ case 10 + .4byte _08078BF8 @ case 11 + .4byte _08078BF8 @ case 12 + .4byte _08078BF8 @ case 13 + .4byte _08078BF8 @ case 14 + .4byte _08078BF8 @ case 15 + .4byte _08078BF8 @ case 16 + .4byte _08078BF8 @ case 17 + .4byte _08078BF8 @ case 18 + .4byte _08078BF8 @ case 19 + .4byte _08078BF8 @ case 20 + .4byte _08078C04 @ case 21 + .4byte _08078C04 @ case 22 + .4byte _08078BF8 @ case 23 + .4byte _08078BF8 @ case 24 + .4byte _08078C04 @ case 25 +_08078BF0: + ldr r0, [r2, #0x30] + ldr r1, _08078C18 @ =0xFFFBFFFF + ands r0, r1 + str r0, [r2, #0x30] +_08078BF8: + ldr r0, _08078C1C @ =gUnk_02034350 + ldrb r0, [r0, #6] + cmp r0, #0 + bne _08078C04 + movs r0, #1 + strb r0, [r2, #0x1a] +_08078C04: + ldr r0, _08078C20 @ =gUnk_03001160 + adds r0, #0x3d + movs r1, #0xfe + strb r1, [r0] + adds r1, r2, #0 + adds r1, #0x8a + movs r0, #2 + strb r0, [r1] + pop {pc} + .align 2, 0 +_08078C18: .4byte 0xFFFBFFFF +_08078C1C: .4byte gUnk_02034350 +_08078C20: .4byte gUnk_03001160 + + thumb_func_start sub_08078C24 +sub_08078C24: @ 0x08078C24 + push {lr} + ldr r3, _08078CAC @ =gUnk_03003F80 + movs r2, #0 + strb r2, [r3] + strb r2, [r3, #1] + strb r2, [r3, #2] + strb r2, [r3, #3] + strb r2, [r3, #4] + strb r2, [r3, #5] + strb r2, [r3, #6] + strb r2, [r3, #7] + movs r0, #0 + strh r2, [r3, #8] + strb r0, [r3, #0xa] + strb r0, [r3, #0xb] + movs r1, #0x35 + adds r1, r1, r3 + mov ip, r1 + adds r1, r3, #0 + adds r1, #0x36 + strb r0, [r1] + strb r0, [r3, #0xc] + strb r0, [r3, #0xd] + strb r0, [r3, #0xe] + strb r0, [r3, #0x11] + strb r0, [r3, #0x12] + strb r0, [r3, #0x13] + strb r0, [r3, #0x14] + strb r0, [r3, #0x1b] + strb r0, [r3, #0x1e] + strb r0, [r3, #0x1f] + subs r1, #0x16 + strb r0, [r1] + adds r1, #1 + strb r0, [r1] + strh r2, [r3, #0x22] + strh r2, [r3, #0x24] + adds r1, #5 + strb r0, [r1] + str r2, [r3, #0x2c] + adds r1, #0x5a + strh r2, [r1] + mov r1, ip + strb r0, [r1] + str r2, [r3, #0x30] + adds r1, r3, #0 + adds r1, #0x38 + strb r0, [r1] + adds r1, #1 + strb r0, [r1] + adds r1, #1 + strb r0, [r1] + adds r1, #5 + strb r0, [r1] + subs r1, #3 + strb r0, [r1] + movs r0, #1 + rsbs r0, r0, #0 + adds r1, #4 + movs r2, #0x40 + bl sub_0801D610 + ldr r0, _08078CB0 @ =gUnk_03003DF0 + movs r1, #0xc4 + lsls r1, r1, #1 + bl sub_0801D630 + pop {pc} + .align 2, 0 +_08078CAC: .4byte gUnk_03003F80 +_08078CB0: .4byte gUnk_03003DF0 + + thumb_func_start sub_08078CB4 +sub_08078CB4: @ 0x08078CB4 + push {lr} + ldr r0, _08078CCC @ =gUnk_03003F80 + ldrb r0, [r0, #5] + subs r0, #3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _08078CC8 + bl sub_08078D60 +_08078CC8: + pop {pc} + .align 2, 0 +_08078CCC: .4byte gUnk_03003F80 + + thumb_func_start sub_08078CD0 +sub_08078CD0: @ 0x08078CD0 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, [r5, #0x70] + ldrh r0, [r5, #0x36] + subs r0, #1 + strh r0, [r4, #0x36] + ldrb r1, [r5, #0x1b] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r4, #0x1b] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1b] + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + ldr r1, _08078D28 @ =gUnk_0811C01C + ldr r0, _08078D2C @ =gUnk_03003F80 + ldr r0, [r0, #0x2c] + ldrb r0, [r0, #0x1e] + adds r0, r0, r1 + ldrb r2, [r0] + ldr r3, _08078D30 @ =gUnk_0811C0B0 + ldrb r1, [r4, #0x1c] + movs r0, #0x30 + ands r0, r1 + lsrs r0, r0, #2 + adds r0, r0, r3 + lsls r2, r2, #1 + ldr r0, [r0] + adds r2, r0, r2 + ldrb r0, [r5, #0x18] + lsls r0, r0, #0x19 + cmp r0, #0 + bge _08078D34 + movs r1, #0 + ldrsb r1, [r2, r1] + ldrh r0, [r5, #0x2e] + subs r0, r0, r1 + b _08078D3C + .align 2, 0 +_08078D28: .4byte gUnk_0811C01C +_08078D2C: .4byte gUnk_03003F80 +_08078D30: .4byte gUnk_0811C0B0 +_08078D34: + movs r0, #0 + ldrsb r0, [r2, r0] + ldrh r1, [r5, #0x2e] + adds r0, r0, r1 +_08078D3C: + strh r0, [r4, #0x2e] + movs r0, #1 + ldrsb r0, [r2, r0] + ldrh r1, [r5, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + adds r0, r5, #0 + movs r1, #0 + adds r2, r4, #0 + bl sub_0806FEBC + ldr r1, [r4, #0x50] + cmp r1, #0 + beq _08078D5E + adds r0, r4, #0 + bl sub_0806FA24 +_08078D5E: + pop {r4, r5, pc} + + thumb_func_start sub_08078D60 +sub_08078D60: @ 0x08078D60 + push {r4, r5, r6, lr} + ldr r1, _08078DCC @ =gUnk_03001160 + ldr r0, [r1, #0x74] + ldr r4, [r0, #0x54] + ldrb r0, [r4, #0xc] + adds r6, r1, #0 + cmp r0, #2 + beq _08078D72 + b _08078E82 +_08078D72: + adds r0, r6, #0 + adds r0, #0x63 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r6, #0x36] + adds r0, r0, r1 + strh r0, [r4, #0x36] + ldrb r1, [r6, #0x1b] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r4, #0x1b] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1b] + adds r0, r6, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + adds r0, r6, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r2, #0x7f + ands r2, r0 + ldr r1, _08078DD0 @ =gUnk_0811C0E8 + ldrb r0, [r4, #0x16] + lsrs r0, r0, #4 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + ldrb r0, [r6, #0x18] + lsls r0, r0, #0x19 + cmp r0, #0 + bge _08078DD4 + adds r2, r1, r2 + movs r1, #0 + ldrsb r1, [r2, r1] + ldrh r0, [r6, #0x2e] + subs r0, r0, r1 + strh r0, [r4, #0x2e] + adds r1, r2, #0 + b _08078DE0 + .align 2, 0 +_08078DCC: .4byte gUnk_03001160 +_08078DD0: .4byte gUnk_0811C0E8 +_08078DD4: + adds r1, r1, r2 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r2, [r6, #0x2e] + adds r0, r0, r2 + strh r0, [r4, #0x2e] +_08078DE0: + movs r0, #1 + ldrsb r0, [r1, r0] + ldrh r1, [r4, #0x36] + adds r0, r0, r1 + strh r0, [r4, #0x36] + adds r5, r6, #0 + ldrh r0, [r5, #0x32] + strh r0, [r4, #0x32] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAB0 + ldr r0, _08078E34 @ =gUnk_03003F80 + ldrb r0, [r0, #5] + cmp r0, #4 + bne _08078E4C + ldrb r1, [r5, #0x19] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r4, #0x19] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r4, #0 + bl sub_0806F8DC + ldrb r1, [r4, #0x16] + movs r0, #0xf + ands r0, r1 + cmp r0, #2 + bne _08078E82 + ldr r0, _08078E38 @ =gUnk_030010A0 + ldr r1, [r0] + movs r0, #3 + ands r1, r0 + cmp r1, #1 + beq _08078E3C + cmp r1, #3 + beq _08078E44 + b _08078E82 + .align 2, 0 +_08078E34: .4byte gUnk_03003F80 +_08078E38: .4byte gUnk_030010A0 +_08078E3C: + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + b _08078E82 +_08078E44: + ldrh r0, [r4, #0x2e] + subs r0, #1 + strh r0, [r4, #0x2e] + b _08078E82 +_08078E4C: + ldrb r0, [r5, #0x14] + lsrs r0, r0, #1 + cmp r0, #0 + beq _08078E62 + adds r0, r5, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + subs r1, #1 + b _08078E6E +_08078E62: + adds r0, r6, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + adds r1, #1 +_08078E6E: + adds r3, r4, #0 + adds r3, #0x29 + movs r0, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_08078E82: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08078E84 +sub_08078E84: @ 0x08078E84 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + ldr r0, _08078ED0 @ =gUnk_03001160 + cmp r4, r0 + bne _08078EAC + adds r0, r5, #0 + bl sub_08079BD8 + adds r0, r4, #0 + adds r0, #0x62 + ldrb r0, [r0] + adds r1, r5, #0 + adds r1, #0x62 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x63 + ldrb r0, [r0] + adds r1, #1 + strb r0, [r1] +_08078EAC: + ldr r0, _08078ED4 @ =gUnk_080029B4 + ldrh r2, [r4, #0x12] + lsls r2, r2, #4 + adds r0, #4 + adds r2, r2, r0 + ldrb r1, [r4, #0x1e] + lsls r1, r1, #2 + ldr r0, [r2] + adds r0, r0, r1 + ldrb r0, [r0, #1] + cmp r0, #0 + beq _08078ED8 + adds r0, r4, #0 + movs r1, #1 + adds r2, r5, #0 + bl sub_0806FEBC + b _08078EE2 + .align 2, 0 +_08078ED0: .4byte gUnk_03001160 +_08078ED4: .4byte gUnk_080029B4 +_08078ED8: + adds r0, r4, #0 + movs r1, #3 + adds r2, r5, #0 + bl sub_0806FEBC +_08078EE2: + pop {r4, r5, pc} + + thumb_func_start sub_08078EE4 +sub_08078EE4: @ 0x08078EE4 + ldr r2, _08078EF4 @ =gUnk_03001160 + ldr r1, _08078EF8 @ =gUnk_03003F80 + ldrh r0, [r1, #0x16] + strh r0, [r2, #0x2e] + ldrh r0, [r1, #0x18] + strh r0, [r2, #0x32] + bx lr + .align 2, 0 +_08078EF4: .4byte gUnk_03001160 +_08078EF8: .4byte gUnk_03003F80 + + thumb_func_start sub_08078EFC +sub_08078EFC: @ 0x08078EFC + push {lr} + ldr r3, _08078F18 @ =gUnk_03003F80 + ldrb r2, [r3, #0xc] + cmp r2, #0 + beq _08078F20 + ldr r0, _08078F1C @ =gUnk_03001160 + movs r1, #0 + strb r2, [r0, #0xc] + strb r1, [r0, #0xd] + strb r1, [r3, #0xc] + bl sub_08070680 + movs r0, #1 + b _08078F22 + .align 2, 0 +_08078F18: .4byte gUnk_03003F80 +_08078F1C: .4byte gUnk_03001160 +_08078F20: + movs r0, #0 +_08078F22: + pop {pc} + + thumb_func_start sub_08078F24 +sub_08078F24: @ 0x08078F24 + push {r4, lr} + ldr r4, _08078F38 @ =gUnk_03003F80 + ldrb r3, [r4, #0xd] + movs r0, #0x80 + ands r0, r3 + cmp r0, #0 + beq _08078F3C + bl sub_08078F60 + b _08078F5A + .align 2, 0 +_08078F38: .4byte gUnk_03003F80 +_08078F3C: + ldr r2, _08078F5C @ =gUnk_080C9160 + lsls r0, r3, #4 + adds r0, r0, r2 + ldrh r1, [r0] + adds r0, r4, #0 + adds r0, #0x8c + strh r1, [r0] + lsls r0, r3, #4 + adds r0, #0x80 + adds r0, r0, r2 + ldrh r0, [r0] + rsbs r0, r0, #0 + adds r1, r4, #0 + adds r1, #0x8e + strh r0, [r1] +_08078F5A: + pop {r4, pc} + .align 2, 0 +_08078F5C: .4byte gUnk_080C9160 + + thumb_func_start sub_08078F60 +sub_08078F60: @ 0x08078F60 + ldr r0, _08078F70 @ =gUnk_03003F80 + adds r1, r0, #0 + adds r1, #0x8c + movs r2, #0 + strh r2, [r1] + adds r0, #0x8e + strh r2, [r0] + bx lr + .align 2, 0 +_08078F70: .4byte gUnk_03003F80 + + thumb_func_start sub_08078F74 +sub_08078F74: @ 0x08078F74 + push {lr} + adds r2, r0, #0 + ldr r0, _08078FA4 @ =gUnk_02033A90 + ldrb r0, [r0, #0x18] + cmp r0, #3 + bne _08078FAC + ldr r3, _08078FA8 @ =gUnk_03003F80 + adds r0, r3, #0 + adds r0, #0x35 + ldrb r0, [r0] + cmp r0, #0xff + beq _08078FAC + movs r1, #0 + movs r0, #0x81 + strb r0, [r3, #2] + movs r0, #0x15 + strb r0, [r2, #0xc] + strb r1, [r2, #0xd] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r2, #0x20] + movs r0, #1 + b _08078FAE + .align 2, 0 +_08078FA4: .4byte gUnk_02033A90 +_08078FA8: .4byte gUnk_03003F80 +_08078FAC: + movs r0, #0 +_08078FAE: + pop {pc} + + thumb_func_start sub_08078FB0 +sub_08078FB0: @ 0x08078FB0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r5, _08078FE0 @ =gUnk_03003F80 + ldrb r1, [r5, #6] + movs r6, #0x80 + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + bne _08078FCA + adds r1, r5, #0 + adds r1, #0x35 + movs r0, #0xff + strb r0, [r1] +_08078FCA: + adds r0, r4, #0 + bl sub_08079064 + ldr r1, [r5, #0x30] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _08078FE4 + movs r2, #0x58 + b _08078FFA + .align 2, 0 +_08078FE0: .4byte gUnk_03003F80 +_08078FE4: + ands r1, r6 + cmp r1, #0 + beq _08078FEE + movs r2, #0x18 + b _08078FFA +_08078FEE: + ldrh r0, [r5, #8] + lsrs r0, r0, #8 + movs r2, #0xb8 + cmp r0, #7 + bne _08078FFA + movs r2, #0x34 +_08078FFA: + ldr r0, _08079014 @ =gUnk_03003F80 + adds r3, r0, #0 + ldrb r1, [r0, #8] + cmp r2, r1 + bls _08079040 + ldrb r0, [r4, #0x14] + adds r2, r0, #0 + cmp r2, #4 + bls _08079018 + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + b _08079020 + .align 2, 0 +_08079014: .4byte gUnk_03003F80 +_08079018: + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 +_08079020: + strb r0, [r4, #0x18] + ldr r0, [r3, #0x30] + movs r1, #0x80 + lsls r1, r1, #0xc + ands r0, r1 + cmp r0, #0 + beq _08079036 + ldrh r1, [r3, #8] + ldrb r0, [r4, #0x14] + adds r2, r1, r0 + b _08079042 +_08079036: + lsls r0, r2, #0x18 + lsrs r0, r0, #0x19 + ldrh r3, [r3, #8] + adds r2, r0, r3 + b _08079042 +_08079040: + ldrh r2, [r0, #8] +_08079042: + ldrh r0, [r4, #0x12] + lsls r0, r0, #8 + adds r1, r4, #0 + adds r1, #0x58 + ldrb r1, [r1] + orrs r0, r1 + cmp r2, r0 + beq _08079062 + lsrs r0, r2, #8 + strh r0, [r4, #0x12] + movs r0, #0xff + ands r2, r0 + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_080042AC +_08079062: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08079064 +sub_08079064: @ 0x08079064 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r0, _0807909C @ =gUnk_03003F80 + ldr r1, [r0, #0x30] + ldr r2, _080790A0 @ =0x00100080 + ands r1, r2 + adds r5, r0, #0 + cmp r1, #0 + bne _080790DE + movs r3, #0 + movs r2, #0 + ldr r1, _080790A4 @ =gUnk_03000B80 +_0807907C: + ldrb r0, [r1, #0xf] + cmp r0, r3 + bls _08079086 + adds r3, r0, #0 + ldrh r4, [r1, #0x10] +_08079086: + adds r1, #0x1c + adds r2, #1 + cmp r2, #3 + bls _0807907C + adds r2, r5, #0 + ldrb r0, [r2, #0xe] + cmp r0, r3 + bhs _080790A8 + strh r4, [r2, #8] + b _080790DE + .align 2, 0 +_0807909C: .4byte gUnk_03003F80 +_080790A0: .4byte 0x00100080 +_080790A4: .4byte gUnk_03000B80 +_080790A8: + adds r0, r2, #0 + adds r0, #0x26 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080790C0 + ldr r0, _080790BC @ =0x000002BE + strh r0, [r2, #8] + b _080790DE + .align 2, 0 +_080790BC: .4byte 0x000002BE +_080790C0: + ldrh r1, [r5, #8] + movs r0, #0xc1 + lsls r0, r0, #3 + cmp r1, r0 + beq _080790D8 + movs r0, #0x82 + lsls r0, r0, #1 + cmp r1, r0 + beq _080790D8 + ldr r0, _080790E0 @ =0x00000404 + cmp r1, r0 + bne _080790DE +_080790D8: + adds r0, r6, #0 + bl sub_080790E4 +_080790DE: + pop {r4, r5, r6, pc} + .align 2, 0 +_080790E0: .4byte 0x00000404 + + thumb_func_start sub_080790E4 +sub_080790E4: @ 0x080790E4 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08079128 @ =gUnk_03003F80 + ldrb r0, [r5, #0xb] + cmp r0, #0 + bne _08079182 + movs r0, #0x10 + bl sub_080793E4 + cmp r0, #0 + beq _0807912C + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0x14 + strb r0, [r1] + adds r1, #5 + movs r0, #4 + strb r0, [r1] + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 + movs r1, #0x10 + eors r0, r1 + adds r1, r4, #0 + adds r1, #0x3e + strb r0, [r1] + movs r0, #2 + rsbs r0, r0, #0 + bl sub_080526A0 + movs r0, #0x7a + bl sub_080A3268 + b _08079182 + .align 2, 0 +_08079128: .4byte gUnk_03003F80 +_0807912C: + ldrb r1, [r5, #6] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08079182 + cmp r1, #0 + bne _08079150 + movs r0, #1 + bl sub_080793E4 + cmp r0, #0 + beq _0807914C + ldrb r0, [r4, #0xf] + cmp r0, #5 + bhi _08079154 + adds r0, #1 +_0807914C: + strb r0, [r4, #0xf] + b _08079182 +_08079150: + subs r0, r1, #1 + strb r0, [r5, #6] +_08079154: + ldr r2, _08079174 @ =gUnk_03003F80 + ldrb r0, [r4, #0x14] + adds r1, r2, #0 + adds r1, #0x35 + strb r0, [r1] + adds r1, #0x73 + movs r0, #0x19 + strb r0, [r1] + ldr r0, [r2, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _0807917C + ldr r0, _08079178 @ =0x0000093C + b _08079180 + .align 2, 0 +_08079174: .4byte gUnk_03003F80 +_08079178: .4byte 0x0000093C +_0807917C: + movs r0, #0xcf + lsls r0, r0, #2 +_08079180: + strh r0, [r2, #8] +_08079182: + pop {r4, r5, pc} + + thumb_func_start sub_08079184 +sub_08079184: @ 0x08079184 + ldr r0, _08079194 @ =gUnk_03003F80 + movs r1, #0 + strb r1, [r0, #5] + strb r1, [r0, #1] + ldr r0, _08079198 @ =gUnk_03001160 + str r1, [r0, #0x74] + bx lr + .align 2, 0 +_08079194: .4byte gUnk_03003F80 +_08079198: .4byte gUnk_03001160 + + thumb_func_start sub_0807919C +sub_0807919C: @ 0x0807919C + push {lr} + ldr r0, _080791B0 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080791B4 + bl sub_080791BC + b _080791B8 + .align 2, 0 +_080791B0: .4byte gUnk_03003F80 +_080791B4: + bl sub_08079258 +_080791B8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080791BC +sub_080791BC: @ 0x080791BC + ldr r0, _080791CC @ =gUnk_03001160 + movs r2, #0 + movs r1, #1 + strb r1, [r0, #0xc] + strb r2, [r0, #0xd] + strb r2, [r0, #0xf] + bx lr + .align 2, 0 +_080791CC: .4byte gUnk_03001160 + + thumb_func_start sub_080791D0 +sub_080791D0: @ 0x080791D0 + push {lr} + ldr r3, _0807920C @ =gUnk_03003F80 + ldr r0, [r3, #0x30] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + bne _080791E8 + ldr r0, _08079210 @ =gUnk_03001160 + ldrb r1, [r0, #0x18] + movs r2, #3 + orrs r1, r2 + strb r1, [r0, #0x18] +_080791E8: + ldr r0, [r3, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08079214 + ldr r2, _08079210 @ =gUnk_03001160 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + bl sub_0807921C + b _08079218 + .align 2, 0 +_0807920C: .4byte gUnk_03003F80 +_08079210: .4byte gUnk_03001160 +_08079214: + bl sub_08079258 +_08079218: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807921C +sub_0807921C: @ 0x0807921C + push {r4, lr} + ldr r4, _0807924C @ =gUnk_03001160 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + ldr r2, _08079250 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + ldr r1, _08079254 @ =0xFECBF6FA + ands r0, r1 + str r0, [r2, #0x30] + bl sub_08079938 + bl sub_080791BC + adds r0, r4, #0 + bl sub_0805E374 + pop {r4, pc} + .align 2, 0 +_0807924C: .4byte gUnk_03001160 +_08079250: .4byte gUnk_03003F80 +_08079254: .4byte 0xFECBF6FA + + thumb_func_start sub_08079258 +sub_08079258: @ 0x08079258 + push {r4, lr} + ldr r4, _080792AC @ =gUnk_03003F80 + ldr r0, [r4, #0x30] + movs r1, #0x40 + ands r0, r1 + ldr r3, _080792B0 @ =gUnk_03001160 + cmp r0, #0 + bne _08079278 + ldrb r1, [r3, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r3, #0x10] + ldrb r0, [r3, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r3, #0x18] +_08079278: + movs r0, #9 + strb r0, [r3, #0xc] + movs r0, #1 + strb r0, [r3, #0xd] + adds r2, r3, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 + strb r0, [r2] + movs r2, #0 + ldr r0, _080792B4 @ =0x00000C18 + strh r0, [r4, #8] + ldr r0, [r4, #0x30] + ldr r1, _080792B8 @ =0xFECFFEFA + ands r0, r1 + str r0, [r4, #0x30] + adds r0, r4, #0 + adds r0, #0x26 + strb r2, [r0] + strb r2, [r4, #0xc] + adds r0, r3, #0 + bl sub_0805E374 + pop {r4, pc} + .align 2, 0 +_080792AC: .4byte gUnk_03003F80 +_080792B0: .4byte gUnk_03001160 +_080792B4: .4byte 0x00000C18 +_080792B8: .4byte 0xFECFFEFA + + thumb_func_start sub_080792BC +sub_080792BC: @ 0x080792BC + push {r4, lr} + ldr r3, _080792D0 @ =gUnk_03003F80 + movs r4, #0x13 + strb r4, [r3, #0xc] + adds r3, #0x38 + strb r2, [r3] + ldr r2, _080792D4 @ =gUnk_03001160 + strh r0, [r2, #0x24] + strb r1, [r2, #0x15] + pop {r4, pc} + .align 2, 0 +_080792D0: .4byte gUnk_03003F80 +_080792D4: .4byte gUnk_03001160 + + thumb_func_start sub_080792D8 +sub_080792D8: @ 0x080792D8 + push {r4, r5, r6, lr} + ldr r5, _08079344 @ =gUnk_03001160 + adds r3, r5, #0 + adds r3, #0x42 + ldrb r0, [r3] + cmp r0, #0 + beq _080793E0 + ldrb r2, [r5, #0xc] + cmp r2, #0xb + beq _08079338 + ldr r0, _08079348 @ =gUnk_03003F80 + ldrb r1, [r0, #0x1e] + adds r6, r0, #0 + cmp r1, #0 + bne _08079338 + ldrb r0, [r6, #5] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bls _08079338 + ldrb r0, [r6, #2] + cmp r0, #0 + bne _08079338 + ldrb r0, [r6, #0x12] + cmp r0, #0xff + beq _08079338 + ldrb r1, [r6, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08079338 + adds r0, r6, #0 + adds r0, #0x26 + ldrb r1, [r0] + movs r0, #0xf + ands r0, r1 + subs r0, #1 + cmp r0, #0 + bgt _08079338 + cmp r2, #3 + beq _08079338 + ldr r1, [r6, #0x30] + movs r0, #0x80 + lsls r0, r0, #0xb + ands r1, r0 + cmp r1, #0 + beq _0807934C +_08079338: + adds r1, r5, #0 + adds r1, #0x42 + movs r0, #0 + strb r0, [r1] + b _080793E0 + .align 2, 0 +_08079344: .4byte gUnk_03001160 +_08079348: .4byte gUnk_03003F80 +_0807934C: + cmp r2, #0x1d + bne _0807935E + adds r0, r5, #0 + adds r0, #0x3e + ldrb r0, [r0] + cmp r0, #0x10 + beq _0807935E + strb r1, [r3] + b _080793E0 +_0807935E: + adds r0, r5, #0 + adds r0, #0x42 + ldrb r3, [r0] + movs r1, #0 + ldrsb r1, [r0, r1] + adds r2, r0, #0 + cmp r1, #0 + ble _08079372 + subs r0, r3, #1 + b _08079374 +_08079372: + adds r0, r3, #1 +_08079374: + strb r0, [r2] + ldrb r0, [r2] + cmp r0, #0 + beq _080793E0 + adds r4, r6, #0 + ldrb r0, [r4, #7] + movs r1, #0xdf + ands r1, r0 + strb r1, [r4, #7] + adds r0, r5, #0 + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + ble _080793CA + adds r0, r4, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + bne _080793CA + ldr r0, [r4, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080793CA + ldrb r0, [r4, #2] + cmp r0, #0 + bne _080793CA + bl sub_08077B2C + ldr r0, [r4, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + bne _080793C4 + movs r0, #0x8a + lsls r0, r0, #1 + strh r0, [r4, #8] + b _080793CA +_080793C4: + movs r0, #0x83 + lsls r0, r0, #3 + strh r0, [r6, #8] +_080793CA: + movs r1, #0xa0 + lsls r1, r1, #2 + adds r4, r5, #0 + adds r4, #0x3e + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_080027EA + ldrb r0, [r4] + bl sub_0807A5B8 +_080793E0: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080793E4 +sub_080793E4: @ 0x080793E4 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _080793FC @ =gUnk_03003F80 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + bne _08079408 + ldr r1, _08079400 @ =gUnk_0811C0F8 + ldr r0, _08079404 @ =gUnk_03001160 + ldrb r0, [r0, #0x14] + lsrs r0, r0, #1 + b _08079410 + .align 2, 0 +_080793FC: .4byte gUnk_03003F80 +_08079400: .4byte gUnk_0811C0F8 +_08079404: .4byte gUnk_03001160 +_08079408: + ldr r1, _08079448 @ =gUnk_0811C0F8 + ldr r0, _0807944C @ =gUnk_03001160 + ldrb r0, [r0, #0x15] + lsrs r0, r0, #2 +_08079410: + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r4, [r0] + bl sub_08079778 + cmp r0, #0 + beq _08079454 + ldr r0, _08079450 @ =gUnk_03003F80 + adds r0, #0x90 + ldrh r0, [r0] + ands r0, r4 + cmp r0, #0 + beq _08079454 + cmp r5, #0 + beq _08079442 + bl sub_0807A500 + ldr r1, _0807944C @ =gUnk_03001160 + adds r1, #0x38 + ldrb r1, [r1] + adds r2, r5, #0 + bl sub_080002F0 + cmp r0, #0 + beq _08079454 +_08079442: + movs r0, #1 + b _08079456 + .align 2, 0 +_08079448: .4byte gUnk_0811C0F8 +_0807944C: .4byte gUnk_03001160 +_08079450: .4byte gUnk_03003F80 +_08079454: + movs r0, #0 +_08079456: + pop {r4, r5, pc} + + thumb_func_start sub_08079458 +sub_08079458: @ 0x08079458 + push {r4, r5, lr} + ldr r4, _08079498 @ =gUnk_03001160 + movs r1, #0 + movs r0, #0x19 + strb r0, [r4, #0xc] + str r1, [r4, #0x34] + str r1, [r4, #0x20] + adds r0, r4, #0 + adds r0, #0x42 + strb r1, [r0] + bl sub_08078EE4 + ldr r2, _0807949C @ =gUnk_03003F80 + ldr r1, [r2, #0x30] + movs r0, #0x80 + lsls r0, r0, #0xa + ands r0, r1 + cmp r0, #0 + bne _08079514 + movs r0, #0x80 + lsls r0, r0, #9 + ands r1, r0 + cmp r1, #0 + beq _080794E4 + adds r0, r2, #0 + adds r0, #0x84 + ldr r1, [r0] + ldrh r0, [r1, #0x2e] + strh r0, [r4, #0x2e] + ldrh r0, [r1, #0x32] + strh r0, [r4, #0x32] + b _08079514 + .align 2, 0 +_08079498: .4byte gUnk_03001160 +_0807949C: .4byte gUnk_03003F80 +_080794A0: + ldr r2, _080794DC @ =gUnk_03001160 + ldr r0, [r4] + lsrs r0, r0, #0x1e + adds r1, r2, #0 + adds r1, #0x38 + strb r0, [r1] + ldr r3, _080794E0 @ =gUnk_03000BF0 + ldr r0, [r4] + movs r1, #0x3f + ands r0, r1 + lsls r0, r0, #4 + ldrh r1, [r3, #6] + adds r0, r0, r1 + adds r0, #8 + strh r0, [r2, #0x2e] + ldr r0, [r4] + movs r1, #0xfc + lsls r1, r1, #4 + ands r0, r1 + lsrs r0, r0, #2 + ldrh r3, [r3, #8] + adds r0, r0, r3 + adds r0, #8 + strh r0, [r2, #0x32] + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + b _08079514 + .align 2, 0 +_080794DC: .4byte gUnk_03001160 +_080794E0: .4byte gUnk_03000BF0 +_080794E4: + movs r5, #0 + ldr r1, [r2, #0x40] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _08079514 + adds r4, r2, #0 + adds r4, #0x40 +_080794F4: + ldr r1, [r4] + ldrh r0, [r4] + lsrs r1, r1, #0x1e + bl sub_080002E0 + cmp r0, #0xf + bne _080794A0 + adds r4, #4 + adds r5, #1 + cmp r5, #0xf + bhi _08079514 + ldr r1, [r4] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bne _080794F4 +_08079514: + ldr r0, _0807951C @ =gUnk_03001160 + bl sub_08016A04 + pop {r4, r5, pc} + .align 2, 0 +_0807951C: .4byte gUnk_03001160 + + thumb_func_start sub_08079520 +sub_08079520: @ 0x08079520 + push {lr} + adds r1, r0, #0 + ldr r0, _08079538 @ =gUnk_03003F80 + ldrb r0, [r0, #0xd] + cmp r0, #0x7f + ble _08079532 + ldrb r0, [r1, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #3 +_08079532: + strb r0, [r1, #0x15] + pop {pc} + .align 2, 0 +_08079538: .4byte gUnk_03003F80 + + thumb_func_start sub_0807953C +sub_0807953C: @ 0x0807953C + ldr r1, _08079548 @ =0x00000F38 + ldr r0, _0807954C @ =gUnk_03003F80 + adds r0, #0x92 + ldrh r0, [r0] + ands r0, r1 + bx lr + .align 2, 0 +_08079548: .4byte 0x00000F38 +_0807954C: .4byte gUnk_03003F80 + + thumb_func_start sub_08079550 +sub_08079550: @ 0x08079550 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r0, _080795A8 @ =gUnk_03004030 + ldrb r0, [r0, #8] + cmp r0, #0 + beq _08079562 + b _080796FC +_08079562: + ldr r2, _080795AC @ =gUnk_03003F80 + ldrb r0, [r2, #0x1e] + cmp r0, #0 + beq _08079576 + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #3 + ands r0, r1 + cmp r0, #0 + beq _080795B4 +_08079576: + adds r0, r2, #0 + adds r0, #0x26 + ldrb r0, [r0] + ldr r1, _080795B0 @ =gUnk_03001160 + mov r8, r1 + cmp r0, #0 + bne _080795A0 + ldrb r1, [r2, #0x1b] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _080795A0 + mov r3, r8 + ldrb r1, [r3, #0x15] + ldrb r2, [r2, #0xd] + cmp r1, r2 + bne _080795A0 + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080795B4 +_080795A0: + movs r0, #0 + mov r5, r8 + strb r0, [r5, #0xf] + b _080796FE + .align 2, 0 +_080795A8: .4byte gUnk_03004030 +_080795AC: .4byte gUnk_03003F80 +_080795B0: .4byte gUnk_03001160 +_080795B4: + bl sub_08079778 + cmp r0, #0 + bne _080795BE + b _080796FC +_080795BE: + ldr r3, _08079610 @ =gUnk_03001160 + ldrb r2, [r3, #0x14] + movs r0, #6 + ands r0, r2 + ldr r1, _08079614 @ =gUnk_0811C100 + adds r1, r0, r1 + movs r0, #2 + ands r0, r2 + mov r8, r3 + cmp r0, #0 + beq _0807961C + movs r6, #0x2e + ldrsh r2, [r3, r6] + movs r0, #0 + ldrsb r0, [r1, r0] + adds r2, r2, r0 + ldr r4, _08079618 @ =gUnk_03000BF0 + ldrh r0, [r4, #6] + subs r2, r2, r0 + asrs r2, r2, #4 + movs r3, #0x3f + ands r2, r3 + mov r0, r8 + movs r5, #0x32 + ldrsh r1, [r0, r5] + ldr r0, [r0, #0x48] + ldrb r5, [r0, #3] + adds r0, r1, r5 + ldrh r4, [r4, #8] + subs r0, r0, r4 + asrs r0, r0, #4 + ands r0, r3 + lsls r7, r0, #6 + orrs r7, r2 + subs r1, r1, r5 + subs r1, r1, r4 + asrs r1, r1, #4 + ands r1, r3 + lsls r4, r1, #6 + orrs r4, r2 + b _0807965E + .align 2, 0 +_08079610: .4byte gUnk_03001160 +_08079614: .4byte gUnk_0811C100 +_08079618: .4byte gUnk_03000BF0 +_0807961C: + mov r6, r8 + movs r0, #0x2e + ldrsh r2, [r6, r0] + ldr r0, [r6, #0x48] + ldrb r0, [r0, #4] + mov ip, r0 + adds r0, r2, r0 + ldr r4, _080796EC @ =gUnk_03000BF0 + ldrh r3, [r4, #6] + mov sb, r3 + subs r0, r0, r3 + asrs r7, r0, #4 + movs r3, #0x3f + ands r7, r3 + movs r5, #0x32 + ldrsh r0, [r6, r5] + ldrb r1, [r1, #1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r0, r1 + ldrh r1, [r4, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r7, r0 + mov r6, ip + subs r2, r2, r6 + mov r1, sb + subs r2, r2, r1 + asrs r4, r2, #4 + ands r4, r3 + orrs r4, r0 +_0807965E: + adds r0, r7, #0 + mov r5, r8 + adds r5, #0x38 + ldrb r1, [r5] + bl sub_080002C8 + adds r3, r0, #0 + ldr r6, _080796F0 @ =gUnk_0811C1E8 + mov r1, r8 + ldrb r0, [r1, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r1, [r0] + adds r0, r3, #0 + bl sub_08007DD6 + adds r3, r0, #0 + cmp r3, #0 + beq _080796FC + adds r0, r4, #0 + ldrb r1, [r5] + bl sub_080002C8 + adds r3, r0, #0 + mov r5, r8 + ldrb r0, [r5, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r1, [r0] + adds r0, r3, #0 + bl sub_08007DD6 + adds r3, r0, #0 + cmp r3, #0 + beq _080796FC + ldr r1, _080796F4 @ =gUnk_03003F80 + ldrb r2, [r1, #6] + movs r0, #0x80 + orrs r0, r2 + strb r0, [r1, #6] + ldrb r0, [r1, #0x1e] + adds r4, r1, #0 + cmp r0, #0 + bne _080796C8 + ldrb r0, [r5, #0xf] + adds r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #5 + bls _080796FC +_080796C8: + ldr r0, _080796F8 @ =gUnk_03001160 + subs r1, r3, #1 + movs r2, #0 + strb r1, [r0, #0x14] + movs r1, #4 + strb r1, [r0, #0xc] + strb r2, [r0, #0xd] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + movs r1, #0x81 + strb r1, [r4, #2] + bl sub_08070680 + movs r0, #1 + b _080796FE + .align 2, 0 +_080796EC: .4byte gUnk_03000BF0 +_080796F0: .4byte gUnk_0811C1E8 +_080796F4: .4byte gUnk_03003F80 +_080796F8: .4byte gUnk_03001160 +_080796FC: + movs r0, #0 +_080796FE: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08079708 +sub_08079708: @ 0x08079708 + push {r4, lr} + ldr r4, _08079740 @ =gUnk_03003F80 + adds r2, r4, #0 + adds r2, #0xa8 + movs r3, #0 + movs r1, #0x12 + strb r1, [r2] + subs r2, #0x6c + movs r1, #0xff + strb r1, [r2] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + movs r1, #0xa + strb r1, [r0, #0xc] + strb r3, [r0, #0xd] + bl sub_080085B0 + ldr r0, [r4, #0x30] + movs r1, #0x88 + lsls r1, r1, #1 + ands r0, r1 + cmp r0, #0 + bne _0807973E + bl sub_0805E544 +_0807973E: + pop {r4, pc} + .align 2, 0 +_08079740: .4byte gUnk_03003F80 + + thumb_func_start sub_08079744 +sub_08079744: @ 0x08079744 + push {lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x2e] + movs r1, #0xf + ands r1, r0 + cmp r1, #8 + beq _0807975E + cmp r1, #8 + ble _0807975A + subs r0, #1 + b _0807975C +_0807975A: + adds r0, #1 +_0807975C: + strh r0, [r2, #0x2e] +_0807975E: + ldrh r0, [r2, #0x32] + movs r1, #0xf + ands r1, r0 + cmp r1, #8 + beq _08079774 + cmp r1, #8 + ble _08079770 + subs r0, #1 + b _08079772 +_08079770: + adds r0, #1 +_08079772: + strh r0, [r2, #0x32] +_08079774: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08079778 +sub_08079778: @ 0x08079778 + push {lr} + ldr r0, _08079790 @ =gUnk_03003F80 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + bne _0807979C + ldr r2, _08079794 @ =gUnk_0811C108 + ldr r1, _08079798 @ =gUnk_03001160 + ldrb r0, [r1, #0x14] + lsrs r0, r0, #1 + b _080797A4 + .align 2, 0 +_08079790: .4byte gUnk_03003F80 +_08079794: .4byte gUnk_0811C108 +_08079798: .4byte gUnk_03001160 +_0807979C: + ldr r2, _080797BC @ =gUnk_0811C108 + ldr r1, _080797C0 @ =gUnk_03001160 + ldrb r0, [r1, #0x15] + lsrs r0, r0, #2 +_080797A4: + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r2, [r0] + movs r3, #0 + ldrh r0, [r1, #0x2a] + ands r0, r2 + cmp r2, r0 + bne _080797B6 + movs r3, #1 +_080797B6: + adds r0, r3, #0 + pop {pc} + .align 2, 0 +_080797BC: .4byte gUnk_0811C108 +_080797C0: .4byte gUnk_03001160 + + thumb_func_start sub_080797C4 +sub_080797C4: @ 0x080797C4 + push {lr} + ldr r1, _080797E4 @ =gUnk_0811C110 + ldr r2, _080797E8 @ =gUnk_03001160 + ldrb r0, [r2, #0x15] + lsrs r0, r0, #3 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r3, #0 + ldrh r0, [r2, #0x2a] + ands r0, r1 + cmp r1, r0 + bne _080797E0 + movs r3, #1 +_080797E0: + adds r0, r3, #0 + pop {pc} + .align 2, 0 +_080797E4: .4byte gUnk_0811C110 +_080797E8: .4byte gUnk_03001160 + + thumb_func_start sub_080797EC +sub_080797EC: @ 0x080797EC + push {r4, r5, lr} + ldr r4, _08079804 @ =gUnk_03003F80 + ldr r1, [r4, #0x30] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0807985C + ldrb r0, [r4, #5] + cmp r0, #0 + beq _0807980C + ldr r5, _08079808 @ =0x00000934 + b _0807991E + .align 2, 0 +_08079804: .4byte gUnk_03003F80 +_08079808: .4byte 0x00000934 +_0807980C: + ldrb r0, [r4, #3] + cmp r0, #0 + beq _08079818 + movs r5, #0x82 + lsls r5, r5, #3 + b _0807991E +_08079818: + adds r0, r4, #0 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #0 + bne _080798A0 + adds r0, r4, #0 + adds r0, #0x26 + ldrb r0, [r0] + movs r5, #0xa4 + lsls r5, r5, #2 + cmp r0, #0 + bne _0807991E + movs r5, #0xb6 + lsls r5, r5, #1 + ldrb r1, [r4, #0x1b] + movs r0, #0x48 + ands r0, r1 + cmp r0, #0 + bne _080798C2 + lsls r0, r1, #0x18 + cmp r0, #0 + bne _080798CE + adds r1, r4, #0 + adds r1, #0xa8 + ldrb r0, [r1] + cmp r0, #0 + bne _08079852 + movs r0, #1 + strb r0, [r1] +_08079852: + ldr r5, _08079858 @ =0x00000404 + b _0807991E + .align 2, 0 +_08079858: .4byte 0x00000404 +_0807985C: + ldrb r0, [r4, #0x1c] + cmp r0, #0 + bne _0807992E + ldrb r0, [r4, #5] + cmp r0, #0 + beq _0807986E + movs r5, #0xd2 + lsls r5, r5, #2 + b _0807991E +_0807986E: + ldrb r0, [r4, #0x1e] + cmp r0, #0 + beq _0807987A + movs r5, #0xa6 + lsls r5, r5, #2 + b _0807991E +_0807987A: + movs r0, #0x80 + lsls r0, r0, #5 + ands r1, r0 + cmp r1, #0 + beq _0807988A + movs r5, #0xe2 + lsls r5, r5, #3 + b _0807991E +_0807988A: + ldrb r0, [r4, #3] + cmp r0, #0 + beq _08079896 + movs r5, #0xb0 + lsls r5, r5, #1 + b _0807991E +_08079896: + adds r0, r4, #0 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #0 + beq _080798A6 +_080798A0: + movs r5, #0xa1 + lsls r5, r5, #2 + b _0807991E +_080798A6: + adds r0, r4, #0 + adds r0, #0x26 + ldrb r0, [r0] + movs r5, #0xa4 + lsls r5, r5, #2 + cmp r0, #0 + bne _0807991E + movs r5, #0xb6 + lsls r5, r5, #1 + ldrb r1, [r4, #0x1b] + movs r0, #0x48 + ands r0, r1 + cmp r0, #0 + beq _080798C8 +_080798C2: + movs r0, #0x6c + strb r0, [r4] + b _0807992E +_080798C8: + lsls r0, r1, #0x18 + cmp r0, #0 + beq _080798FC +_080798CE: + movs r0, #0 + bl sub_080793E4 + cmp r0, #0 + beq _0807991E + bl sub_0807A500 + ldr r1, _080798F8 @ =gUnk_03001160 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002E0 + cmp r0, #0xff + beq _0807991E + ldrb r1, [r4, #0x1b] + movs r0, #0xf7 + ands r0, r1 + strb r0, [r4, #0x1b] + movs r5, #0xb8 + lsls r5, r5, #1 + b _0807991E + .align 2, 0 +_080798F8: .4byte gUnk_03001160 +_080798FC: + adds r1, r4, #0 + adds r1, #0xa8 + ldrb r0, [r1] + cmp r0, #0 + bne _0807990A + movs r0, #1 + strb r0, [r1] +_0807990A: + ldr r0, [r4, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x10 + ands r0, r1 + movs r5, #0x82 + lsls r5, r5, #1 + cmp r0, #0 + beq _0807991E + movs r5, #0xc1 + lsls r5, r5, #3 +_0807991E: + ldr r0, _08079930 @ =gUnk_03003F80 + strh r5, [r0, #8] + ldrb r0, [r0, #3] + cmp r0, #0 + bne _0807992E + ldr r0, _08079934 @ =gUnk_03001160 + bl sub_080042B8 +_0807992E: + pop {r4, r5, pc} + .align 2, 0 +_08079930: .4byte gUnk_03003F80 +_08079934: .4byte gUnk_03001160 + + thumb_func_start sub_08079938 +sub_08079938: @ 0x08079938 + push {r4, lr} + ldr r3, _08079954 @ =gUnk_03003F80 + ldr r2, [r3, #0x30] + movs r0, #8 + ands r0, r2 + mov ip, r3 + cmp r0, #0 + beq _080799E4 + ldrb r0, [r3, #5] + cmp r0, #0 + beq _0807995C + ldr r4, _08079958 @ =0x0000092C + b _08079AD8 + .align 2, 0 +_08079954: .4byte gUnk_03003F80 +_08079958: .4byte 0x0000092C +_0807995C: + mov r0, ip + adds r0, #0x3d + mov r3, ip + ldrb r1, [r3, #0x1c] + ldrb r0, [r0] + orrs r0, r1 + cmp r0, #0 + beq _0807996E + b _08079B14 +_0807996E: + movs r0, #0x80 + lsls r0, r0, #0x12 + ands r0, r2 + cmp r0, #0 + bne _08079A1E + mov r4, ip + ldrb r0, [r4, #3] + cmp r0, #0 + beq _08079988 + ldr r4, _08079984 @ =0x00000414 + b _08079AD8 + .align 2, 0 +_08079984: .4byte 0x00000414 +_08079988: + mov r0, ip + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #0 + bne _08079A5C + mov r0, ip + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + bne _08079A6C + mov r0, ip + ldrb r1, [r0, #0x1b] + movs r0, #0x48 + ands r0, r1 + cmp r0, #0 + beq _080799AA + b _08079B14 +_080799AA: + cmp r1, #0 + beq _080799B0 + b _08079AA4 +_080799B0: + mov r1, ip + ldrb r0, [r1, #4] + cmp r0, #0 + beq _080799BA + b _08079B14 +_080799BA: + movs r0, #0x20 + ands r2, r0 + cmp r2, #0 + beq _080799D0 + ldr r0, _080799D8 @ =gUnk_02033A90 + ldrb r0, [r0, #0x17] + cmp r0, #4 + bne _080799CC + b _08079AD4 +_080799CC: + cmp r0, #5 + bne _080799DC +_080799D0: + movs r4, #0x80 + lsls r4, r4, #3 + b _08079AD8 + .align 2, 0 +_080799D8: .4byte gUnk_02033A90 +_080799DC: + ldr r4, _080799E0 @ =0x000002C2 + b _08079AD8 + .align 2, 0 +_080799E0: .4byte 0x000002C2 +_080799E4: + mov r4, ip + ldrb r0, [r4, #5] + cmp r0, #0 + beq _080799F2 + movs r4, #0xd4 + lsls r4, r4, #2 + b _08079AD8 +_080799F2: + mov r0, ip + adds r0, #0x3d + mov r4, ip + ldrb r1, [r4, #0x1c] + ldrb r0, [r0] + orrs r0, r1 + cmp r0, #0 + beq _08079A04 + b _08079B14 +_08079A04: + movs r0, #0x80 + lsls r0, r0, #0xc + ands r0, r2 + cmp r0, #0 + beq _08079A14 + movs r4, #0x8b + lsls r4, r4, #4 + b _08079AD8 +_08079A14: + movs r0, #0x80 + lsls r0, r0, #0x12 + ands r0, r2 + cmp r0, #0 + beq _08079A24 +_08079A1E: + movs r4, #0x81 + lsls r4, r4, #4 + b _08079AD8 +_08079A24: + mov r1, ip + ldrb r0, [r1, #0x1e] + cmp r0, #0 + beq _08079A32 + movs r4, #0xa6 + lsls r4, r4, #2 + b _08079AD8 +_08079A32: + movs r0, #0x80 + lsls r0, r0, #5 + ands r0, r2 + cmp r0, #0 + beq _08079A44 + ldr r4, _08079A40 @ =0x0000070C + b _08079AD8 + .align 2, 0 +_08079A40: .4byte 0x0000070C +_08079A44: + mov r4, ip + ldrb r0, [r4, #3] + cmp r0, #0 + beq _08079A52 + movs r4, #0xb2 + lsls r4, r4, #1 + b _08079AD8 +_08079A52: + mov r0, ip + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #0 + beq _08079A62 +_08079A5C: + movs r4, #0xa0 + lsls r4, r4, #2 + b _08079AD8 +_08079A62: + mov r0, ip + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + beq _08079A72 +_08079A6C: + movs r4, #0xa3 + lsls r4, r4, #2 + b _08079AD8 +_08079A72: + mov r0, ip + ldrb r1, [r0, #0x1b] + movs r0, #0x48 + ands r0, r1 + cmp r0, #0 + bne _08079B14 + movs r0, #0x20 + ands r2, r0 + cmp r2, #0 + beq _08079AA0 + ldr r0, _08079A98 @ =gUnk_02033A90 + ldrb r0, [r0, #0x17] + ldr r4, _08079A9C @ =0x000002C2 + cmp r0, #4 + bne _08079AD8 + movs r4, #0xa6 + lsls r4, r4, #3 + b _08079AD8 + .align 2, 0 +_08079A98: .4byte gUnk_02033A90 +_08079A9C: .4byte 0x000002C2 +_08079AA0: + cmp r1, #0 + beq _08079AAA +_08079AA4: + movs r4, #0xb4 + lsls r4, r4, #1 + b _08079AD8 +_08079AAA: + ldrb r0, [r3, #4] + cmp r0, #0 + bne _08079B14 + ldr r0, [r3, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08079AD4 + ldr r0, _08079ACC @ =gUnk_03000B80 + adds r0, #0x63 + ldrb r0, [r0] + cmp r0, #0 + bne _08079B14 + ldr r4, _08079AD0 @ =0x00000604 + b _08079AD8 + .align 2, 0 +_08079ACC: .4byte gUnk_03000B80 +_08079AD0: .4byte 0x00000604 +_08079AD4: + movs r4, #0x80 + lsls r4, r4, #1 +_08079AD8: + mov r1, ip + strh r4, [r1, #8] + ldrb r0, [r1, #5] + cmp r0, #0 + bne _08079B10 + movs r3, #0 + movs r2, #0 + ldr r1, _08079B18 @ =gUnk_03000B80 +_08079AE8: + ldrb r0, [r1, #0xf] + cmp r0, r3 + bls _08079AF0 + adds r3, r0, #0 +_08079AF0: + adds r1, #0x1c + adds r2, #1 + cmp r2, #3 + bls _08079AE8 + mov r2, ip + ldrb r0, [r2, #0xe] + cmp r0, r3 + blo _08079B14 + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + ldrb r3, [r2] + cmp r0, r3 + bne _08079B10 + ldr r0, _08079B1C @ =gUnk_03001160 + bl sub_080042B8 +_08079B10: + ldr r0, _08079B20 @ =gUnk_03003F80 + strb r4, [r0] +_08079B14: + pop {r4, pc} + .align 2, 0 +_08079B18: .4byte gUnk_03000B80 +_08079B1C: .4byte gUnk_03001160 +_08079B20: .4byte gUnk_03003F80 + + thumb_func_start sub_08079B24 +sub_08079B24: @ 0x08079B24 + push {r4, r5, lr} + ldr r2, _08079B60 @ =gUnk_03001160 + ldrb r0, [r2, #0xc] + cmp r0, #0xa + beq _08079BD4 + adds r0, r2, #0 + adds r0, #0x45 + ldrb r3, [r0] + cmp r3, #0 + bne _08079BD4 + ldr r4, _08079B64 @ =gUnk_03003F80 + ldr r1, [r4, #0x30] + ldr r0, _08079B68 @ =0xFEFFFFFF + ands r1, r0 + str r1, [r4, #0x30] + adds r0, r2, #0 + adds r0, #0x42 + strb r3, [r0] + ldrb r0, [r4, #7] + cmp r0, #0 + bne _08079BD4 + adds r0, r4, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + beq _08079B6C + bl sub_08079458 + b _08079BC0 + .align 2, 0 +_08079B60: .4byte gUnk_03001160 +_08079B64: .4byte gUnk_03003F80 +_08079B68: .4byte 0xFEFFFFFF +_08079B6C: + ldrb r0, [r4, #0x14] + cmp r0, #0 + bne _08079BC0 + movs r3, #0x80 + lsls r3, r3, #5 + ands r3, r1 + cmp r3, #0 + bne _08079BC0 + movs r5, #0x36 + ldrsh r0, [r2, r5] + cmp r0, #0 + bge _08079BA6 + ldr r0, [r2, #0x20] + cmp r0, #0 + ble _08079B8C + str r3, [r2, #0x20] +_08079B8C: + ldrb r1, [r4, #2] + movs r3, #0x41 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + bne _08079BD4 + strb r3, [r4, #2] + movs r0, #0xff + strb r0, [r2, #0x15] + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r4, #0xd] + b _08079BD4 +_08079BA6: + movs r0, #2 + ands r1, r0 + cmp r1, #0 + bne _08079BC0 + bl sub_08079D48 + cmp r0, #0 + bne _08079BC0 + ldrb r0, [r4, #0xa] + movs r1, #0x10 + orrs r0, r1 + strb r0, [r4, #0xa] + b _08079BD4 +_08079BC0: + ldr r2, _08079BD0 @ =gUnk_03001160 + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] + movs r0, #0 + b _08079BD6 + .align 2, 0 +_08079BD0: .4byte gUnk_03001160 +_08079BD4: + movs r0, #1 +_08079BD6: + pop {r4, r5, pc} + + thumb_func_start sub_08079BD8 +sub_08079BD8: @ 0x08079BD8 + push {r4, r5, lr} + ldr r4, _08079C2C @ =gUnk_03001160 + ldr r1, [r4, #0x2c] + str r1, [r0, #0x2c] + ldr r1, [r4, #0x30] + str r1, [r0, #0x30] + ldr r1, [r4, #0x34] + str r1, [r0, #0x34] + adds r1, r4, #0 + adds r1, #0x38 + ldrb r2, [r1] + adds r1, r0, #0 + adds r1, #0x38 + strb r2, [r1] + ldrb r3, [r4, #0x19] + lsrs r3, r3, #6 + lsls r3, r3, #6 + ldrb r5, [r0, #0x19] + movs r2, #0x3f + adds r1, r2, #0 + ands r1, r5 + orrs r1, r3 + strb r1, [r0, #0x19] + ldrb r1, [r4, #0x1b] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r3, [r0, #0x1b] + ands r2, r3 + orrs r2, r1 + strb r2, [r0, #0x1b] + adds r4, #0x29 + ldrb r2, [r4] + lsls r2, r2, #0x1d + adds r0, #0x29 + lsrs r2, r2, #0x1d + ldrb r3, [r0] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r3 + orrs r1, r2 + strb r1, [r0] + pop {r4, r5, pc} + .align 2, 0 +_08079C2C: .4byte gUnk_03001160 + + thumb_func_start sub_08079C30 +sub_08079C30: @ 0x08079C30 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + ldr r0, _08079C68 @ =gUnk_03003F80 + ldrb r1, [r0, #0x14] + adds r7, r0, #0 + cmp r1, #0 + beq _08079C44 + b _08079D40 +_08079C44: + ldr r1, [r7, #0x30] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08079D40 + movs r0, #0x80 + ands r1, r0 + cmp r1, #0 + bne _08079D36 + ldrb r0, [r7, #0x13] + subs r0, #0xd + cmp r0, #0x1d + bhi _08079CE8 + lsls r0, r0, #2 + ldr r1, _08079C6C @ =_08079C70 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08079C68: .4byte gUnk_03003F80 +_08079C6C: .4byte _08079C70 +_08079C70: @ jump table + .4byte _08079D36 @ case 0 + .4byte _08079D36 @ case 1 + .4byte _08079D36 @ case 2 + .4byte _08079D36 @ case 3 + .4byte _08079CE8 @ case 4 + .4byte _08079CE8 @ case 5 + .4byte _08079CE8 @ case 6 + .4byte _08079D36 @ case 7 + .4byte _08079CE8 @ case 8 + .4byte _08079CE8 @ case 9 + .4byte _08079D36 @ case 10 + .4byte _08079CE8 @ case 11 + .4byte _08079CE8 @ case 12 + .4byte _08079CE8 @ case 13 + .4byte _08079CE8 @ case 14 + .4byte _08079CE8 @ case 15 + .4byte _08079CE8 @ case 16 + .4byte _08079CE8 @ case 17 + .4byte _08079CE8 @ case 18 + .4byte _08079CE8 @ case 19 + .4byte _08079CE8 @ case 20 + .4byte _08079CE8 @ case 21 + .4byte _08079CE8 @ case 22 + .4byte _08079CE8 @ case 23 + .4byte _08079CE8 @ case 24 + .4byte _08079CE8 @ case 25 + .4byte _08079CE8 @ case 26 + .4byte _08079CE8 @ case 27 + .4byte _08079CE8 @ case 28 + .4byte _08079D36 @ case 29 +_08079CE8: + mov r8, r7 + mov r0, r8 + ldrb r4, [r0, #0x12] + movs r2, #1 + rsbs r2, r2, #0 + adds r0, r6, #0 + movs r1, #0 + bl sub_080002B4 + ldr r5, _08079D3C @ =gUnk_08007CAC + adds r1, r5, #0 + bl sub_08007DD6 + cmp r4, r0 + bne _08079D40 + mov r0, r8 + ldrb r4, [r0, #0x12] + adds r0, r6, #0 + movs r1, #2 + movs r2, #0 + bl sub_080002B4 + adds r1, r5, #0 + bl sub_08007DD6 + cmp r4, r0 + bne _08079D40 + ldrb r4, [r7, #0x12] + movs r1, #2 + rsbs r1, r1, #0 + adds r0, r6, #0 + movs r2, #0 + bl sub_080002B4 + adds r1, r5, #0 + bl sub_08007DD6 + cmp r4, r0 + bne _08079D40 +_08079D36: + movs r0, #1 + b _08079D42 + .align 2, 0 +_08079D3C: .4byte gUnk_08007CAC +_08079D40: + movs r0, #0 +_08079D42: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08079D48 +sub_08079D48: @ 0x08079D48 + push {r4, lr} + ldr r4, _08079D78 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_08079C30 + cmp r0, #0 + beq _08079D72 + bl sub_08008B22 + cmp r0, #0 + bne _08079D80 + adds r0, r4, #0 + bl sub_080002B8 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _08079D7C @ =gUnk_0811C268 + bl sub_08007DD6 + cmp r0, #0 + bne _08079D80 +_08079D72: + movs r0, #1 + b _08079D82 + .align 2, 0 +_08079D78: .4byte gUnk_03001160 +_08079D7C: .4byte gUnk_0811C268 +_08079D80: + movs r0, #0 +_08079D82: + pop {r4, pc} + + thumb_func_start sub_08079D84 +sub_08079D84: @ 0x08079D84 + push {lr} + ldr r3, _08079DC0 @ =gUnk_03001160 + ldrb r0, [r3, #0xc] + cmp r0, #1 + beq _08079D92 + cmp r0, #0x18 + bne _08079DBE +_08079D92: + ldr r2, _08079DC4 @ =gUnk_03003F80 + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #0x9c + strb r0, [r1] + adds r1, #1 + movs r0, #2 + strb r0, [r1] + adds r1, #1 + movs r0, #0x3c + strb r0, [r1] + movs r0, #0xe + strb r0, [r2, #0xc] + adds r1, r3, #0 + adds r1, #0x3d + movs r0, #0x7c + strb r0, [r1] + bl sub_08077B20 + ldr r0, _08079DC8 @ =0x00000193 + bl sub_080A3268 +_08079DBE: + pop {pc} + .align 2, 0 +_08079DC0: .4byte gUnk_03001160 +_08079DC4: .4byte gUnk_03003F80 +_08079DC8: .4byte 0x00000193 + + thumb_func_start sub_08079DCC +sub_08079DCC: @ 0x08079DCC + push {lr} + ldr r0, _08079DFC @ =gUnk_03001160 + ldrb r0, [r0, #0xc] + cmp r0, #1 + bne _08079DF8 + ldr r3, _08079E00 @ =gUnk_03003F80 + adds r1, r3, #0 + adds r1, #0x38 + movs r2, #0 + movs r0, #0xa0 + strb r0, [r1] + adds r1, #1 + movs r0, #3 + strb r0, [r1] + adds r0, r3, #0 + adds r0, #0x3a + strb r2, [r0] + movs r0, #0xe + strb r0, [r3, #0xc] + ldr r0, _08079E04 @ =0x00000193 + bl sub_080A3268 +_08079DF8: + pop {pc} + .align 2, 0 +_08079DFC: .4byte gUnk_03001160 +_08079E00: .4byte gUnk_03003F80 +_08079E04: .4byte 0x00000193 + + thumb_func_start sub_08079E08 +sub_08079E08: @ 0x08079E08 + push {r4, lr} + ldr r0, _08079E50 @ =gUnk_03001160 + ldrh r2, [r0, #0x24] + movs r3, #0x24 + ldrsh r1, [r0, r3] + adds r4, r0, #0 + cmp r1, #0 + beq _08079E2E + ldr r0, _08079E54 @ =gUnk_03003F80 + adds r0, #0x80 + ldrh r0, [r0] + adds r0, r2, r0 + strh r0, [r4, #0x24] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x1f + bgt _08079E2E + movs r0, #0x20 + strh r0, [r4, #0x24] +_08079E2E: + adds r2, r4, #0 + ldrb r1, [r2, #0x15] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _08079E40 + ldrb r0, [r2, #0x15] + bl sub_08079E90 +_08079E40: + adds r0, r4, #0 + bl sub_0800857C + ldrb r0, [r4, #0x15] + bl sub_0807A5B8 + pop {r4, pc} + .align 2, 0 +_08079E50: .4byte gUnk_03001160 +_08079E54: .4byte gUnk_03003F80 + + thumb_func_start sub_08079E58 +sub_08079E58: @ 0x08079E58 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r4, r1, #0 + ldr r5, _08079E8C @ =gUnk_03001160 + ldrb r1, [r5, #0x15] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _08079E70 + adds r0, r4, #0 + bl sub_08079E90 +_08079E70: + adds r0, r5, #0 + bl sub_080085B0 + lsls r1, r6, #0x10 + asrs r1, r1, #0x10 + lsls r2, r4, #0x18 + lsrs r2, r2, #0x18 + adds r0, r5, #0 + bl sub_080027EA + adds r0, r4, #0 + bl sub_0807A5B8 + pop {r4, r5, r6, pc} + .align 2, 0 +_08079E8C: .4byte gUnk_03001160 + + thumb_func_start sub_08079E90 +sub_08079E90: @ 0x08079E90 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov sb, r0 + ldr r1, _08079EBC @ =gUnk_03001160 + ldrb r2, [r1, #0x15] + movs r0, #8 + ands r0, r2 + adds r7, r1, #0 + cmp r0, #0 + beq _08079ECA + movs r0, #0x10 + ands r0, r2 + cmp r0, #0 + beq _08079EC0 + ldr r0, [r7, #0x48] + ldrb r0, [r0, #2] + rsbs r0, r0, #0 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + b _08079EC4 + .align 2, 0 +_08079EBC: .4byte gUnk_03001160 +_08079EC0: + ldr r0, [r7, #0x48] + ldrb r5, [r0, #2] +_08079EC4: + ldr r0, [r7, #0x48] + ldrb r4, [r0, #3] + b _08079EDE +_08079ECA: + ldr r0, [r7, #0x48] + ldrb r5, [r0, #4] + cmp r2, #0 + beq _08079ED6 + ldrb r4, [r0, #5] + b _08079EDE +_08079ED6: + ldrb r0, [r0, #5] + rsbs r0, r0, #0 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 +_08079EDE: + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + mov r8, r0 + lsls r0, r4, #0x10 + asrs r6, r0, #0x10 + adds r0, r7, #0 + mov r1, r8 + adds r2, r6, #0 + bl sub_080002CC + adds r1, r0, #0 + mov r0, sb + bl sub_08079F48 + cmp r0, #0 + bne _08079F3C + ldrb r1, [r7, #0x15] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08079F10 + rsbs r0, r6, #0 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + b _08079F18 +_08079F10: + mov r1, r8 + rsbs r0, r1, #0 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 +_08079F18: + ldr r0, _08079F38 @ =gUnk_03001160 + lsls r1, r5, #0x10 + asrs r1, r1, #0x10 + lsls r2, r4, #0x10 + asrs r2, r2, #0x10 + bl sub_080002CC + adds r1, r0, #0 + mov r0, sb + bl sub_08079F48 + cmp r0, #0 + bne _08079F3C + movs r0, #0 + b _08079F3E + .align 2, 0 +_08079F38: .4byte gUnk_03001160 +_08079F3C: + movs r0, #1 +_08079F3E: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08079F48 +sub_08079F48: @ 0x08079F48 + push {lr} + ldr r3, _08079F60 @ =gUnk_0811C118 + lsrs r2, r0, #2 + adds r0, r2, r3 + ldrb r0, [r0] + cmp r0, r1 + bne _08079F68 + ldr r0, _08079F64 @ =gUnk_03001160 + ldrb r1, [r0, #0x15] + adds r1, #4 + b _08079F7C + .align 2, 0 +_08079F60: .4byte gUnk_0811C118 +_08079F64: .4byte gUnk_03001160 +_08079F68: + adds r0, r2, #1 + adds r0, r0, r3 + ldrb r0, [r0] + cmp r0, r1 + beq _08079F76 + movs r0, #0 + b _08079F84 +_08079F76: + ldr r0, _08079F88 @ =gUnk_03001160 + ldrb r1, [r0, #0x15] + subs r1, #4 +_08079F7C: + movs r2, #0x1f + ands r1, r2 + strb r1, [r0, #0x15] + movs r0, #1 +_08079F84: + pop {pc} + .align 2, 0 +_08079F88: .4byte gUnk_03001160 + + thumb_func_start sub_08079F8C +sub_08079F8C: @ 0x08079F8C + push {lr} + ldr r2, _08079FB4 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + ldr r1, _08079FB8 @ =0x22189B75 + ands r0, r1 + cmp r0, #0 + bne _08079FB0 + adds r0, r2, #0 + adds r0, #0x3c + ldrb r0, [r0] + cmp r0, #0 + bne _08079FB0 + ldr r0, _08079FBC @ =gUnk_03001160 + ldrb r0, [r0, #0xc] + cmp r0, #3 + beq _08079FB0 + cmp r0, #0xb + bne _08079FC0 +_08079FB0: + movs r0, #0 + b _08079FC2 + .align 2, 0 +_08079FB4: .4byte gUnk_03003F80 +_08079FB8: .4byte 0x22189B75 +_08079FBC: .4byte gUnk_03001160 +_08079FC0: + movs r0, #1 +_08079FC2: + pop {pc} + + thumb_func_start sub_08079FC4 +sub_08079FC4: @ 0x08079FC4 + push {lr} + adds r1, r0, #0 + ldr r0, _08079FD0 @ =gUnk_03001160 + bl sub_08079FD4 + pop {pc} + .align 2, 0 +_08079FD0: .4byte gUnk_03001160 + + thumb_func_start sub_08079FD4 +sub_08079FD4: @ 0x08079FD4 + push {r4, r5, r6, lr} + sub sp, #4 + adds r5, r0, #0 + movs r0, #0x2e + ldrsh r2, [r5, r0] + ldr r3, _0807A008 @ =gUnk_03000BF0 + ldrh r0, [r3, #6] + subs r2, r2, r0 + asrs r2, r2, #4 + movs r4, #0x3f + ands r2, r4 + movs r6, #0x32 + ldrsh r0, [r5, r6] + ldrh r3, [r3, #8] + subs r0, r0, r3 + asrs r0, r0, #4 + ands r0, r4 + lsls r0, r0, #6 + orrs r2, r0 + lsls r2, r2, #1 + ldr r6, _0807A00C @ =gUnk_02027EB4 + cmp r1, #2 + bne _0807A004 + ldr r6, _0807A010 @ =gUnk_0200D654 +_0807A004: + movs r4, #0 + b _0807A028 + .align 2, 0 +_0807A008: .4byte gUnk_03000BF0 +_0807A00C: .4byte gUnk_02027EB4 +_0807A010: .4byte gUnk_0200D654 +_0807A014: + cmp r1, #0x23 + beq _0807A028 + cmp r1, #0x27 + beq _0807A028 + ldr r0, _0807A04C @ =gUnk_080082DC + subs r1, #0x10 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0 + beq _0807A046 +_0807A028: + adds r4, #1 + adds r0, r5, #0 + mov r1, sp + bl sub_08004202 + adds r2, r0, #0 + lsrs r0, r2, #1 + adds r0, r6, r0 + ldrb r1, [r0] + cmp r1, #0xe + bls _0807A046 + cmp r1, #0xf + bls _0807A028 + cmp r1, #0x1d + bne _0807A014 +_0807A046: + adds r0, r4, #0 + add sp, #4 + pop {r4, r5, r6, pc} + .align 2, 0 +_0807A04C: .4byte gUnk_080082DC + + thumb_func_start sub_0807A050 +sub_0807A050: @ 0x0807A050 + push {lr} + ldr r3, _0807A088 @ =gUnk_03003F80 + ldrb r2, [r3, #0xf] + cmp r2, #0 + beq _0807A06A + ldr r0, _0807A08C @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0807A06A + subs r0, r2, #1 + strb r0, [r3, #0xf] +_0807A06A: + movs r0, #0 + bl sub_0807A094 + adds r1, r0, #0 + ldr r0, _0807A088 @ =gUnk_03003F80 + adds r0, #0x83 + ldrb r2, [r0] + cmp r1, r2 + beq _0807A084 + strb r1, [r0] + ldr r0, _0807A090 @ =gUnk_03001160 + bl sub_0801D2B4 +_0807A084: + pop {pc} + .align 2, 0 +_0807A088: .4byte gUnk_03003F80 +_0807A08C: .4byte gUnk_02000050 +_0807A090: .4byte gUnk_03001160 + + thumb_func_start sub_0807A094 +sub_0807A094: @ 0x0807A094 + push {r4, r5, lr} + adds r3, r0, #0 + movs r2, #0x16 + ldr r0, _0807A0AC @ =gUnk_03003F80 + ldrb r0, [r0, #0xf] + cmp r0, #0 + beq _0807A0B0 + movs r2, #0x1b + cmp r0, #0x78 + bls _0807A104 + movs r2, #0x1a + b _0807A104 + .align 2, 0 +_0807A0AC: .4byte gUnk_03003F80 +_0807A0B0: + ldr r0, _0807A0F0 @ =gUnk_02002A40 + adds r1, r0, #0 + adds r1, #0xb2 + ldrb r1, [r1] + adds r5, r0, #0 + cmp r1, #0 + beq _0807A104 + movs r4, #1 + cmp r3, #0 + bne _0807A0D6 + adds r0, #0xc4 + ldrh r1, [r0] + cmp r1, #0xb3 + bhi _0807A0D6 + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0807A0D6 + movs r4, #0 +_0807A0D6: + cmp r4, #0 + beq _0807A104 + adds r0, r5, #0 + adds r0, #0xb2 + ldrb r0, [r0] + cmp r0, #0x30 + beq _0807A102 + cmp r0, #0x30 + bgt _0807A0F4 + cmp r0, #0x2f + beq _0807A0FA + b _0807A102 + .align 2, 0 +_0807A0F0: .4byte gUnk_02002A40 +_0807A0F4: + cmp r0, #0x31 + beq _0807A0FE + b _0807A102 +_0807A0FA: + movs r2, #0x18 + b _0807A104 +_0807A0FE: + movs r2, #0x17 + b _0807A104 +_0807A102: + movs r2, #0x19 +_0807A104: + adds r0, r2, #0 + pop {r4, r5, pc} + + thumb_func_start sub_0807A108 +sub_0807A108: @ 0x0807A108 + push {lr} + ldr r1, _0807A148 @ =gUnk_03004040 + movs r0, #0 + str r0, [r1] + str r0, [r1, #4] + str r0, [r1, #8] + ldr r2, _0807A14C @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + ldr r1, _0807A150 @ =0xFFBFFFFF + ands r0, r1 + str r0, [r2, #0x30] + ldr r0, _0807A154 @ =gUnk_03001160 + ldrb r0, [r0, #0xc] + cmp r0, #0x17 + bne _0807A130 + adds r0, r2, #0 + adds r0, #0xa0 + ldrb r0, [r0] + cmp r0, #4 + beq _0807A144 +_0807A130: + adds r1, r2, #0 + adds r1, #0xa0 + ldrb r0, [r1] + subs r0, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _0807A144 + movs r0, #1 + strb r0, [r1] +_0807A144: + pop {pc} + .align 2, 0 +_0807A148: .4byte gUnk_03004040 +_0807A14C: .4byte gUnk_03003F80 +_0807A150: .4byte 0xFFBFFFFF +_0807A154: .4byte gUnk_03001160 + + thumb_func_start sub_0807A158 +sub_0807A158: @ 0x0807A158 + push {r4, lr} + ldr r4, _0807A178 @ =gUnk_02002A40 + adds r0, r4, #0 + adds r0, #0xb4 + ldrb r0, [r0] + bl sub_0805449C + cmp r0, #0 + bne _0807A17C + adds r0, r4, #0 + adds r0, #0xb5 + ldrb r0, [r0] + bl sub_0805449C + b _0807A17E + .align 2, 0 +_0807A178: .4byte gUnk_02002A40 +_0807A17C: + movs r0, #1 +_0807A17E: + pop {r4, pc} + + thumb_func_start sub_0807A180 +sub_0807A180: @ 0x0807A180 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0x88 + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + mov r8, r3 + ldr r3, _0807A1B4 @ =0xFFFC0000 + mov r1, sp + movs r2, #0 + bl sub_0806FA48 + mov r1, sp + ldrb r0, [r4, #0x14] + strb r0, [r1, #0x14] + mov r0, sp + adds r1, r5, #0 + adds r2, r6, #0 + mov r3, r8 + bl sub_08003FDE + add sp, #0x88 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, pc} + .align 2, 0 +_0807A1B4: .4byte 0xFFFC0000 + + thumb_func_start sub_0807A1B8 +sub_0807A1B8: @ 0x0807A1B8 + push {r4, lr} + ldr r4, _0807A1DC @ =gUnk_03001160 + adds r0, r4, #0 + movs r1, #0 + movs r2, #0 + bl sub_0807A1E8 + ldr r1, _0807A1E0 @ =gUnk_03003F80 + strb r0, [r1, #0x12] + ldr r2, _0807A1E4 @ =gUnk_0811C120 + ldrb r0, [r1, #0x12] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_0807A1DC: .4byte gUnk_03001160 +_0807A1E0: .4byte gUnk_03003F80 +_0807A1E4: .4byte gUnk_0811C120 + + thumb_func_start sub_0807A1E8 +sub_0807A1E8: @ 0x0807A1E8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + adds r6, r1, #0 + mov r8, r2 + movs r1, #0x2e + ldrsh r0, [r5, r1] + adds r0, r0, r6 + ldr r2, _0807A288 @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + subs r1, r0, r1 + lsrs r4, r1, #4 + movs r3, #0x3f + ands r4, r3 + movs r7, #0x32 + ldrsh r1, [r5, r7] + add r1, r8 + ldrh r2, [r2, #8] + subs r2, r1, r2 + asrs r2, r2, #4 + ands r2, r3 + lsls r2, r2, #6 + orrs r4, r2 + ldr r2, _0807A28C @ =gUnk_03001160 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_080002A4 + adds r2, r0, #0 + ldr r1, _0807A290 @ =gUnk_03003F80 + ldrh r0, [r1, #0x24] + cmp r2, r0 + beq _0807A23A + adds r3, r1, #0 + adds r3, #0x37 + movs r0, #0 + strb r0, [r3] + ldrh r7, [r1, #0x24] + cmp r2, r7 + bne _0807A242 +_0807A23A: + adds r3, r1, #0 + ldrh r0, [r3, #0x22] + cmp r4, r0 + beq _0807A24E +_0807A242: + ldr r0, _0807A290 @ =gUnk_03003F80 + movs r1, #0 + strh r4, [r0, #0x22] + strh r2, [r0, #0x24] + strb r1, [r0, #0x11] + adds r3, r0, #0 +_0807A24E: + adds r2, r3, #0 + ldrb r1, [r2, #0x11] + adds r0, r1, #0 + cmp r0, #0xff + beq _0807A25C + adds r0, r1, #1 + strb r0, [r2, #0x11] +_0807A25C: + adds r2, #0x37 + ldrb r1, [r2] + adds r0, r1, #0 + cmp r0, #0xff + beq _0807A26A + adds r0, r1, #1 + strb r0, [r2] +_0807A26A: + ldrb r0, [r3, #0x12] + strb r0, [r3, #0x13] + adds r0, r5, #0 + adds r1, r6, #0 + mov r2, r8 + bl sub_080002B4 + adds r2, r0, #0 + ldr r1, _0807A294 @ =gUnk_08007CAC + bl sub_08007DD6 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807A288: .4byte gUnk_03000BF0 +_0807A28C: .4byte gUnk_03001160 +_0807A290: .4byte gUnk_03003F80 +_0807A294: .4byte gUnk_08007CAC + + thumb_func_start sub_0807A298 +sub_0807A298: @ 0x0807A298 + movs r1, #0 + strb r1, [r0, #0xb] + ldrb r1, [r0, #0x18] + movs r2, #3 + orrs r1, r2 + strb r1, [r0, #0x18] + ldr r2, _0807A2B4 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r2, #0x30] + bx lr + .align 2, 0 +_0807A2B4: .4byte gUnk_03003F80 + + thumb_func_start sub_0807A2B8 +sub_0807A2B8: @ 0x0807A2B8 + push {lr} + bl sub_08008B22 + cmp r0, #0 + beq _0807A2C6 + movs r0, #1 + b _0807A2EC +_0807A2C6: + ldr r0, _0807A2F0 @ =gUnk_03003F80 + ldrb r1, [r0, #2] + movs r0, #0xc8 + ands r0, r1 + cmp r0, #0 + bne _0807A2EA + ldr r1, _0807A2F4 @ =gUnk_03001160 + adds r0, r1, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #1 + beq _0807A2EA + adds r0, r1, #0 + movs r1, #0x44 + movs r2, #0 + movs r3, #0 + bl sub_080A2988 +_0807A2EA: + movs r0, #0 +_0807A2EC: + pop {pc} + .align 2, 0 +_0807A2F0: .4byte gUnk_03003F80 +_0807A2F4: .4byte gUnk_03001160 + + thumb_func_start sub_0807A2F8 +sub_0807A2F8: @ 0x0807A2F8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + adds r4, r0, #0 + ldr r0, _0807A364 @ =gUnk_03000BF0 + mov r8, r0 + ldrb r0, [r0, #4] + cmp r0, #8 + bne _0807A312 + b _0807A4F2 +_0807A312: + bl sub_08079778 + orrs r0, r4 + cmp r0, #0 + bne _0807A31E + b _0807A4F2 +_0807A31E: + ldr r7, _0807A368 @ =gUnk_03001160 + ldrb r1, [r7, #0x14] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0807A36C + movs r1, #0x2e + ldrsh r2, [r7, r1] + mov r6, r8 + ldrh r0, [r6, #6] + subs r2, r2, r0 + asrs r2, r2, #4 + movs r3, #0x3f + ands r2, r3 + movs r0, #0x32 + ldrsh r1, [r7, r0] + ldr r0, [r7, #0x48] + ldrb r5, [r0, #5] + adds r0, r1, r5 + ldrh r4, [r6, #8] + subs r0, r0, r4 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r0, r2 + lsls r7, r0, #1 + subs r1, r1, r5 + subs r1, r1, r4 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r2, r1 + lsls r6, r2, #1 + b _0807A3A2 + .align 2, 0 +_0807A364: .4byte gUnk_03000BF0 +_0807A368: .4byte gUnk_03001160 +_0807A36C: + movs r1, #0x2e + ldrsh r3, [r7, r1] + ldr r0, [r7, #0x48] + ldrb r6, [r0, #2] + adds r1, r3, r6 + mov r2, r8 + ldrh r5, [r2, #6] + subs r1, r1, r5 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r2, #0x32 + ldrsh r0, [r7, r2] + mov r7, r8 + ldrh r2, [r7, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r4 + lsls r0, r0, #6 + orrs r1, r0 + lsls r7, r1, #1 + subs r3, r3, r6 + subs r3, r3, r5 + asrs r3, r3, #4 + ands r3, r4 + orrs r3, r0 + lsls r6, r3, #1 +_0807A3A2: + movs r0, #0 + mov sb, r0 + ldr r1, _0807A3F4 @ =gUnk_03001160 + mov sl, r1 +_0807A3AA: + movs r2, #0 + mov r8, r2 + mov r0, sl + mov r1, sp + adds r2, r7, #0 + bl sub_08004202 + adds r7, r0, #0 + lsrs r4, r7, #1 + adds r0, r4, #0 + movs r1, #1 + bl sub_080002E0 + cmp r0, #0 + beq _0807A3FC + lsls r0, r4, #0x10 + lsrs r0, r0, #0x10 + mov r1, sl + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002C8 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r2, sl + ldrb r1, [r2, #0x14] + lsrs r1, r1, #1 + lsls r1, r1, #2 + ldr r2, _0807A3F8 @ =gUnk_0811C1D8 + adds r1, r1, r2 + ldr r1, [r1] + bl sub_08007DD6 + cmp r0, #0 + beq _0807A468 + b _0807A400 + .align 2, 0 +_0807A3F4: .4byte gUnk_03001160 +_0807A3F8: .4byte gUnk_0811C1D8 +_0807A3FC: + movs r0, #1 + mov r8, r0 +_0807A400: + ldr r5, _0807A444 @ =gUnk_03001160 + adds r0, r5, #0 + mov r1, sp + adds r2, r6, #0 + bl sub_08004202 + adds r6, r0, #0 + lsrs r4, r6, #1 + adds r0, r4, #0 + movs r1, #1 + bl sub_080002E0 + cmp r0, #0 + beq _0807A44C + lsls r0, r4, #0x10 + lsrs r0, r0, #0x10 + adds r1, r5, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002C8 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrb r1, [r5, #0x14] + lsrs r1, r1, #1 + lsls r1, r1, #2 + ldr r2, _0807A448 @ =gUnk_0811C1D8 + adds r1, r1, r2 + ldr r1, [r1] + bl sub_08007DD6 + cmp r0, #0 + beq _0807A468 + b _0807A450 + .align 2, 0 +_0807A444: .4byte gUnk_03001160 +_0807A448: .4byte gUnk_0811C1D8 +_0807A44C: + movs r0, #1 + add r8, r0 +_0807A450: + mov r1, r8 + cmp r1, #2 + bne _0807A45E + mov r2, sb + cmp r2, #0 + bne _0807A46E + b _0807A4F2 +_0807A45E: + movs r0, #1 + add sb, r0 + mov r1, sb + cmp r1, #1 + bls _0807A3AA +_0807A468: + mov r2, sb + cmp r2, #0 + beq _0807A4F2 +_0807A46E: + bl sub_08052660 + cmp r0, #0 + beq _0807A4B0 + ldr r4, _0807A4AC @ =gUnk_03001160 + adds r0, r4, #0 + mov r1, sp + adds r2, r7, #0 + bl sub_08004202 + adds r7, r0, #0 + lsrs r0, r7, #1 + movs r1, #2 + bl sub_080002E0 + cmp r0, #0 + bne _0807A4F2 + adds r0, r4, #0 + mov r1, sp + adds r2, r6, #0 + bl sub_08004202 + adds r6, r0, #0 + lsrs r0, r6, #1 + movs r1, #2 +_0807A4A0: + bl sub_080002E0 + cmp r0, #0 + beq _0807A4EC + b _0807A4F2 + .align 2, 0 +_0807A4AC: .4byte gUnk_03001160 +_0807A4B0: + mov r0, sb + cmp r0, #2 + bne _0807A4C2 + ldr r0, _0807A4E8 @ =gUnk_03001160 + mov r1, sp + adds r2, r7, #0 + bl sub_08004202 + adds r7, r0, #0 +_0807A4C2: + lsrs r0, r7, #1 + movs r1, #1 + bl sub_080002E0 + cmp r0, #0 + bne _0807A4F2 + mov r1, sb + cmp r1, #2 + bne _0807A4E0 + ldr r0, _0807A4E8 @ =gUnk_03001160 + mov r1, sp + adds r2, r6, #0 + bl sub_08004202 + adds r6, r0, #0 +_0807A4E0: + lsrs r0, r6, #1 + movs r1, #1 + b _0807A4A0 + .align 2, 0 +_0807A4E8: .4byte gUnk_03001160 +_0807A4EC: + mov r0, sb + adds r0, #1 + b _0807A4F4 +_0807A4F2: + movs r0, #0 +_0807A4F4: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0807A500 +sub_0807A500: @ 0x0807A500 + push {r4, r5, r6, lr} + ldr r6, _0807A518 @ =gUnk_03001160 + ldrb r0, [r6, #0x14] + lsrs r0, r0, #1 + cmp r0, #1 + beq _0807A574 + cmp r0, #1 + bgt _0807A51C + cmp r0, #0 + beq _0807A526 + b _0807A5B4 + .align 2, 0 +_0807A518: .4byte gUnk_03001160 +_0807A51C: + cmp r0, #2 + beq _0807A554 + cmp r0, #3 + beq _0807A580 + b _0807A5B4 +_0807A526: + movs r1, #0x2e + ldrsh r0, [r6, r1] + ldr r5, _0807A550 @ =gUnk_03000BF0 + ldrh r1, [r5, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r4, #0x3f + ands r0, r4 + movs r2, #0x32 + ldrsh r1, [r6, r2] + ldr r3, [r6, #0x48] + ldrb r2, [r3, #5] + subs r1, r1, r2 + movs r2, #1 + ldrsb r2, [r3, r2] + adds r1, r1, r2 + ldrh r2, [r5, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r4 + b _0807A5AA + .align 2, 0 +_0807A550: .4byte gUnk_03000BF0 +_0807A554: + movs r5, #0x2e + ldrsh r0, [r6, r5] + ldr r4, _0807A570 @ =gUnk_03000BF0 + ldrh r1, [r4, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + ldr r2, [r6, #0x48] + movs r5, #0x32 + ldrsh r1, [r6, r5] + ldrb r5, [r2, #5] + adds r1, r1, r5 + b _0807A59A + .align 2, 0 +_0807A570: .4byte gUnk_03000BF0 +_0807A574: + ldr r2, [r6, #0x48] + movs r1, #0x2e + ldrsh r0, [r6, r1] + ldrb r5, [r2, #2] + adds r0, r0, r5 + b _0807A58A +_0807A580: + movs r1, #0x2e + ldrsh r0, [r6, r1] + ldr r2, [r6, #0x48] + ldrb r1, [r2, #2] + subs r0, r0, r1 +_0807A58A: + ldr r4, _0807A5B0 @ =gUnk_03000BF0 + ldrh r1, [r4, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r5, #0x32 + ldrsh r1, [r6, r5] +_0807A59A: + ldrb r2, [r2, #1] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + adds r1, r1, r2 + ldrh r2, [r4, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 +_0807A5AA: + lsls r1, r1, #6 + orrs r0, r1 + b _0807A5B6 + .align 2, 0 +_0807A5B0: .4byte gUnk_03000BF0 +_0807A5B4: + movs r0, #0 +_0807A5B6: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0807A5B8 +sub_0807A5B8: @ 0x0807A5B8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov sb, r0 + ldr r2, _0807A5F8 @ =gUnk_03003F80 + ldrb r3, [r2, #2] + movs r4, #0x80 + adds r0, r4, #0 + ands r0, r3 + cmp r0, #0 + beq _0807A5D2 + b _0807A736 +_0807A5D2: + ldr r1, [r2, #0x30] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0807A5DE + b _0807A736 +_0807A5DE: + adds r0, r2, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + beq _0807A5EA + b _0807A736 +_0807A5EA: + adds r0, r1, #0 + ands r0, r4 + cmp r0, #0 + beq _0807A600 + ldr r7, _0807A5FC @ =gUnk_0800833C + b _0807A63A + .align 2, 0 +_0807A5F8: .4byte gUnk_03003F80 +_0807A5FC: .4byte gUnk_0800833C +_0807A600: + movs r0, #0x80 + lsls r0, r0, #0x11 + ands r1, r0 + cmp r1, #0 + bne _0807A60E + cmp r3, #0 + beq _0807A618 +_0807A60E: + ldr r7, _0807A614 @ =gUnk_0800845C + b _0807A63A + .align 2, 0 +_0807A614: .4byte gUnk_0800845C +_0807A618: + ldrb r0, [r2, #5] + cmp r0, #0 + bne _0807A624 + ldrb r0, [r2, #0x1c] + cmp r0, #0 + beq _0807A62C +_0807A624: + ldr r7, _0807A628 @ =gUnk_080084BC + b _0807A63A + .align 2, 0 +_0807A628: .4byte gUnk_080084BC +_0807A62C: + adds r0, r2, #0 + adds r0, #0xaa + ldrb r0, [r0] + ldr r7, _0807A740 @ =gUnk_080082DC + cmp r0, #0 + beq _0807A63A + ldr r7, _0807A744 @ =gUnk_0800851C +_0807A63A: + mov r0, sb + cmp r0, #0 + beq _0807A6B8 + cmp r0, #0x10 + beq _0807A6B8 + ldr r6, _0807A748 @ =gUnk_03001160 + ldr r2, [r6, #0x48] + movs r1, #0x2e + ldrsh r0, [r6, r1] + ldrb r3, [r2, #2] + adds r0, r0, r3 + movs r1, #0 + ldrsb r1, [r2, r1] + adds r0, r0, r1 + ldr r1, _0807A74C @ =gUnk_03000BF0 + mov r8, r1 + ldrh r1, [r1, #6] + subs r5, r0, r1 + movs r3, #0x32 + ldrsh r0, [r6, r3] + movs r1, #1 + ldrsb r1, [r2, r1] + adds r0, r0, r1 + mov r2, r8 + ldrh r1, [r2, #8] + subs r4, r0, r1 + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r7, #0 + bl sub_080086B4 + cmp r0, #0 + beq _0807A688 + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r7, #0 + movs r3, #1 + bl sub_0807A750 +_0807A688: + movs r3, #0x2e + ldrsh r1, [r6, r3] + ldr r2, [r6, #0x48] + ldrb r0, [r2, #2] + subs r1, r1, r0 + movs r0, #0 + ldrsb r0, [r2, r0] + adds r1, r1, r0 + mov r2, r8 + ldrh r0, [r2, #6] + subs r5, r1, r0 + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r7, #0 + bl sub_080086B4 + cmp r0, #0 + beq _0807A6B8 + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r7, #0 + movs r3, #3 + bl sub_0807A750 +_0807A6B8: + mov r3, sb + cmp r3, #8 + beq _0807A736 + cmp r3, #0x18 + beq _0807A736 + ldr r6, _0807A748 @ =gUnk_03001160 + movs r0, #0x2e + ldrsh r1, [r6, r0] + ldr r2, [r6, #0x48] + movs r0, #0 + ldrsb r0, [r2, r0] + adds r1, r1, r0 + ldr r3, _0807A74C @ =gUnk_03000BF0 + mov r8, r3 + ldrh r0, [r3, #6] + subs r5, r1, r0 + movs r1, #0x32 + ldrsh r0, [r6, r1] + ldrb r3, [r2, #5] + adds r0, r0, r3 + movs r1, #1 + ldrsb r1, [r2, r1] + adds r0, r0, r1 + mov r2, r8 + ldrh r1, [r2, #8] + subs r4, r0, r1 + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r7, #0 + bl sub_080086B4 + cmp r0, #0 + beq _0807A706 + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r7, #0 + movs r3, #2 + bl sub_0807A750 +_0807A706: + movs r3, #0x32 + ldrsh r1, [r6, r3] + ldr r2, [r6, #0x48] + ldrb r0, [r2, #5] + subs r1, r1, r0 + movs r0, #1 + ldrsb r0, [r2, r0] + adds r1, r1, r0 + mov r2, r8 + ldrh r0, [r2, #8] + subs r4, r1, r0 + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r7, #0 + bl sub_080086B4 + cmp r0, #0 + beq _0807A736 + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r7, #0 + movs r3, #0 + bl sub_0807A750 +_0807A736: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807A740: .4byte gUnk_080082DC +_0807A744: .4byte gUnk_0800851C +_0807A748: .4byte gUnk_03001160 +_0807A74C: .4byte gUnk_03000BF0 + + thumb_func_start sub_0807A750 +sub_0807A750: @ 0x0807A750 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r0, #0 + adds r6, r1, #0 + mov r8, r2 + adds r5, r3, #0 + movs r0, #1 + ands r0, r5 + cmp r0, #0 + bne _0807A76C + movs r4, #0xf + ands r4, r6 + b _0807A770 +_0807A76C: + movs r4, #0xf + ands r4, r7 +_0807A770: + cmp r4, #0 + bne _0807A776 + b _0807A88E +_0807A776: + cmp r4, #0xf + bne _0807A77C + b _0807A88E +_0807A77C: + lsrs r0, r7, #4 + movs r2, #0x3f + ands r0, r2 + lsrs r1, r6, #4 + ands r1, r2 + lsls r1, r1, #6 + orrs r0, r1 + ldr r1, _0807A7A8 @ =gUnk_03001160 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002E0 + adds r1, r0, #0 + cmp r1, #0xf + bls _0807A7AE + cmp r1, #0xff + beq _0807A7AC + mov r2, r8 + adds r0, r1, r2 + subs r0, #0x10 + ldrb r1, [r0] + b _0807A7AE + .align 2, 0 +_0807A7A8: .4byte gUnk_03001160 +_0807A7AC: + movs r1, #0xf +_0807A7AE: + ldr r0, _0807A7D8 @ =gUnk_0800823C + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + movs r0, #1 + ands r0, r5 + cmp r0, #0 + bne _0807A824 + movs r0, #0xf + ands r0, r7 + movs r2, #0x80 + lsls r2, r2, #8 + asrs r2, r0 + cmp r5, #0 + bne _0807A7F4 + ldr r3, _0807A7DC @ =gUnk_03001160 + cmp r4, #0xe + bgt _0807A7F0 + lsls r0, r4, #1 + adds r1, r0, r1 + b _0807A7E8 + .align 2, 0 +_0807A7D8: .4byte gUnk_0800823C +_0807A7DC: .4byte gUnk_03001160 +_0807A7E0: + adds r1, #2 + adds r4, #1 + cmp r4, #0xe + bgt _0807A7F0 +_0807A7E8: + ldrh r0, [r1] + ands r0, r2 + cmp r0, #0 + bne _0807A7E0 +_0807A7F0: + subs r4, #1 + b _0807A816 +_0807A7F4: + ldr r3, _0807A800 @ =gUnk_03001160 + cmp r4, #0 + ble _0807A814 + lsls r0, r4, #1 + adds r1, r0, r1 + b _0807A80C + .align 2, 0 +_0807A800: .4byte gUnk_03001160 +_0807A804: + subs r1, #2 + subs r4, #1 + cmp r4, #0 + ble _0807A814 +_0807A80C: + ldrh r0, [r1] + ands r0, r2 + cmp r0, #0 + bne _0807A804 +_0807A814: + adds r4, #1 +_0807A816: + movs r0, #0xf + ands r0, r6 + subs r0, r4, r0 + ldrh r1, [r3, #0x32] + adds r0, r0, r1 + strh r0, [r3, #0x32] + b _0807A88E +_0807A824: + movs r3, #0xf + ands r6, r3 + lsls r0, r6, #1 + adds r0, r0, r1 + ldrh r2, [r0] + cmp r5, #1 + bne _0807A85C + subs r0, r3, r4 + lsrs r2, r0 + ldr r3, _0807A858 @ =gUnk_03001160 + cmp r4, #0 + ble _0807A854 + ands r5, r2 + cmp r5, #0 + beq _0807A854 + movs r1, #1 +_0807A844: + lsrs r2, r2, #1 + subs r4, #1 + cmp r4, #0 + ble _0807A854 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _0807A844 +_0807A854: + adds r4, #1 + b _0807A882 + .align 2, 0 +_0807A858: .4byte gUnk_03001160 +_0807A85C: + lsls r2, r4 + ldr r3, _0807A86C @ =gUnk_03001160 + cmp r4, #0xe + bgt _0807A880 + movs r1, #0x80 + lsls r1, r1, #8 + b _0807A878 + .align 2, 0 +_0807A86C: .4byte gUnk_03001160 +_0807A870: + lsls r2, r2, #1 + adds r4, #1 + cmp r4, #0xe + bgt _0807A880 +_0807A878: + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _0807A870 +_0807A880: + subs r4, #1 +_0807A882: + movs r0, #0xf + ands r0, r7 + subs r0, r4, r0 + ldrh r2, [r3, #0x2e] + adds r0, r0, r2 + strh r0, [r3, #0x2e] +_0807A88E: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0807A894 +sub_0807A894: @ 0x0807A894 + push {lr} + ldrb r1, [r0, #0x15] + cmp r1, #8 + beq _0807A8BA + cmp r1, #8 + bgt _0807A8A6 + cmp r1, #0 + beq _0807A8B0 + b _0807A8C8 +_0807A8A6: + cmp r1, #0x10 + beq _0807A8B6 + cmp r1, #0x18 + beq _0807A8C0 + b _0807A8C8 +_0807A8B0: + movs r2, #8 + rsbs r2, r2, #0 + b _0807A8CA +_0807A8B6: + movs r2, #5 + b _0807A8CA +_0807A8BA: + movs r2, #0 + movs r1, #8 + b _0807A8CC +_0807A8C0: + movs r2, #0 + movs r1, #8 + rsbs r1, r1, #0 + b _0807A8CC +_0807A8C8: + movs r2, #0 +_0807A8CA: + movs r1, #0 +_0807A8CC: + bl sub_080002B4 + pop {pc} + .align 2, 0 + + thumb_func_start nullsub_505 +nullsub_505: @ 0x0807A8D4 + bx lr + .align 2, 0 + + thumb_func_start sub_0807A8D8 +sub_0807A8D8: @ 0x0807A8D8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + ldr r0, _0807AA5C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807A8F0 + b _0807A9F6 +_0807A8F0: + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r7, _0807AA60 @ =gUnk_03000BF0 + ldrh r1, [r7, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r6, #0x3f + ands r0, r6 + movs r2, #0x32 + ldrsh r1, [r5, r2] + ldrh r2, [r7, #8] + adds r2, #1 + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r6 + lsls r1, r1, #6 + orrs r0, r1 + ldr r1, _0807AA64 @ =gUnk_03001160 + adds r1, #0x38 + mov sb, r1 + ldrb r1, [r1] + bl sub_080002EC + adds r4, r0, #0 + movs r0, #0x20 + mov r8, r0 + ands r4, r0 + cmp r4, #0 + beq _0807A94E + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldrh r0, [r7, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + ands r1, r6 + movs r2, #0x32 + ldrsh r0, [r5, r2] + ldrh r2, [r7, #8] + adds r2, #1 + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r5, #0 + bl sub_0807AAF8 +_0807A94E: + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldrh r1, [r7, #6] + subs r1, #2 + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r6 + movs r2, #0x32 + ldrsh r1, [r5, r2] + ldrh r2, [r7, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r6 + lsls r1, r1, #6 + orrs r0, r1 + mov r2, sb + ldrb r1, [r2] + bl sub_080002EC + adds r4, r0, #0 + mov r0, r8 + ands r4, r0 + cmp r4, #0 + beq _0807A9A2 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldrh r0, [r7, #6] + subs r0, #2 + subs r1, r1, r0 + asrs r1, r1, #4 + ands r1, r6 + movs r2, #0x32 + ldrsh r0, [r5, r2] + ldrh r2, [r7, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r5, #0 + bl sub_0807AAF8 +_0807A9A2: + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldrh r1, [r7, #6] + adds r1, #2 + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r6 + movs r2, #0x32 + ldrsh r1, [r5, r2] + ldrh r2, [r7, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r6 + lsls r1, r1, #6 + orrs r0, r1 + mov r2, sb + ldrb r1, [r2] + bl sub_080002EC + adds r4, r0, #0 + mov r0, r8 + ands r4, r0 + cmp r4, #0 + beq _0807A9F6 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldrh r0, [r7, #6] + adds r0, #2 + subs r1, r1, r0 + asrs r1, r1, #4 + ands r1, r6 + movs r2, #0x32 + ldrsh r0, [r5, r2] + ldrh r2, [r7, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r5, #0 + bl sub_0807AAF8 +_0807A9F6: + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r7, _0807AA60 @ =gUnk_03000BF0 + ldrh r1, [r7, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r6, #0x3f + ands r0, r6 + movs r2, #0x32 + ldrsh r1, [r5, r2] + ldrh r2, [r7, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r6 + lsls r1, r1, #6 + orrs r0, r1 + ldr r1, _0807AA64 @ =gUnk_03001160 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002EC + adds r4, r0, #0 + movs r0, #0x20 + ands r0, r4 + cmp r0, #0 + beq _0807AA4C + movs r0, #0x2e + ldrsh r1, [r5, r0] + ldrh r0, [r7, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + ands r1, r6 + movs r2, #0x32 + ldrsh r0, [r5, r2] + ldrh r2, [r7, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r5, #0 + bl sub_0807AAF8 +_0807AA4C: + movs r0, #2 + ands r0, r4 + cmp r0, #0 + beq _0807AA68 + adds r0, r5, #0 + bl sub_0807AABC + b _0807AA76 + .align 2, 0 +_0807AA5C: .4byte gUnk_03003F80 +_0807AA60: .4byte gUnk_03000BF0 +_0807AA64: .4byte gUnk_03001160 +_0807AA68: + movs r0, #4 + ands r0, r4 + cmp r0, #0 + beq _0807AA76 + adds r0, r5, #0 + bl sub_0807AA80 +_0807AA76: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0807AA80 +sub_0807AA80: @ 0x0807AA80 + push {lr} + adds r3, r0, #0 + ldr r0, _0807AAB8 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + bne _0807AAB6 + adds r0, r3, #0 + adds r0, #0x38 + movs r1, #2 + strb r1, [r0] + movs r1, #0x36 + ldrsh r0, [r3, r1] + cmp r0, #0 + bne _0807AAB6 + ldrb r2, [r3, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r3, #0x1b] + ldrb r0, [r3, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r3, #0x19] +_0807AAB6: + pop {pc} + .align 2, 0 +_0807AAB8: .4byte gUnk_03003F80 + + thumb_func_start sub_0807AABC +sub_0807AABC: @ 0x0807AABC + push {lr} + adds r3, r0, #0 + ldr r0, _0807AAF4 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + bne _0807AAF2 + adds r0, r3, #0 + adds r0, #0x38 + movs r1, #1 + strb r1, [r0] + movs r1, #0x36 + ldrsh r0, [r3, r1] + cmp r0, #0 + bne _0807AAF2 + ldrb r2, [r3, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x80 + orrs r0, r2 + strb r0, [r3, #0x1b] + ldrb r0, [r3, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r3, #0x19] +_0807AAF2: + pop {pc} + .align 2, 0 +_0807AAF4: .4byte gUnk_03003F80 + + thumb_func_start sub_0807AAF8 +sub_0807AAF8: @ 0x0807AAF8 + push {r4, lr} + adds r3, r0, #0 + adds r2, r1, #0 + movs r1, #0x36 + ldrsh r0, [r3, r1] + cmp r0, #0 + bne _0807AB3C + adds r0, r3, #0 + adds r0, #0x38 + ldrb r0, [r0] + lsls r0, r0, #0x1e + orrs r2, r0 + movs r3, #0 + ldr r0, _0807AB40 @ =gUnk_03003F80 + ldr r1, [r0, #0x40] + adds r4, r0, #0 + cmp r1, r2 + beq _0807AB32 + adds r1, r4, #0 + adds r1, #0x40 +_0807AB20: + ldr r0, [r1] + stm r1!, {r2} + adds r2, r0, #0 + adds r3, #1 + cmp r3, #0xe + bhi _0807AB32 + ldr r0, [r1] + cmp r0, r2 + bne _0807AB20 +_0807AB32: + lsls r0, r3, #2 + adds r1, r4, #0 + adds r1, #0x40 + adds r0, r0, r1 + str r2, [r0] +_0807AB3C: + pop {r4, pc} + .align 2, 0 +_0807AB40: .4byte gUnk_03003F80 + + thumb_func_start sub_0807AB44 +sub_0807AB44: @ 0x0807AB44 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r6, r0, #0 + adds r7, r1, #0 + mov r8, r2 + movs r1, #0x2e + ldrsh r0, [r6, r1] + adds r0, r0, r7 + ldr r2, _0807ABF0 @ =gUnk_03000BF0 + mov sb, r2 + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + mov sl, r3 + ands r0, r3 + movs r5, #0x32 + ldrsh r1, [r6, r5] + add r1, r8 + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + adds r1, r6, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002B0 + movs r1, #0xb + bl sub_0806FC50 + adds r5, r0, #0 + cmp r5, #0 + beq _0807AC44 + ldrh r0, [r5, #6] + cmp r0, #0x76 + bne _0807ABF4 + movs r0, #0x2a + movs r1, #1 + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _0807AC44 + lsls r2, r7, #0x10 + mov r0, r8 + lsls r3, r0, #0x10 + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0806FA48 + adds r0, r4, #0 + bl sub_08004168 + ldrh r0, [r5, #6] + movs r2, #0x2e + ldrsh r1, [r4, r2] + mov r3, sb + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + mov r5, sl + ands r1, r5 + movs r3, #0x32 + ldrsh r2, [r4, r3] + mov r5, sb + ldrh r3, [r5, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + mov r3, sl + ands r2, r3 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0807B7D8 + b _0807AC44 + .align 2, 0 +_0807ABF0: .4byte gUnk_03000BF0 +_0807ABF4: + movs r0, #0x2a + movs r1, #2 + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _0807AC44 + lsls r2, r7, #0x10 + mov r0, r8 + lsls r3, r0, #0x10 + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0806FA48 + str r5, [r4, #0x54] + ldr r0, _0807AC50 @ =0x0000404F + movs r2, #0x2e + ldrsh r1, [r4, r2] + mov r3, sb + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + mov r5, sl + ands r1, r5 + movs r3, #0x32 + ldrsh r2, [r4, r3] + mov r5, sb + ldrh r3, [r5, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + mov r3, sl + ands r2, r3 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E +_0807AC44: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807AC50: .4byte 0x0000404F + + thumb_func_start sub_0807AC54 +sub_0807AC54: @ 0x0807AC54 + push {lr} + adds r2, r0, #0 + ldr r0, _0807AC74 @ =gUnk_03003F80 + ldrb r1, [r0, #0x11] + adds r3, r0, #0 + cmp r1, #0 + beq _0807ACC6 + ldrb r0, [r3, #0x12] + cmp r0, #0x2a + beq _0807ACA8 + cmp r0, #0x2a + bgt _0807AC78 + cmp r0, #0x1e + beq _0807AC82 + b _0807ACC6 + .align 2, 0 +_0807AC74: .4byte gUnk_03003F80 +_0807AC78: + cmp r0, #0x2b + beq _0807AC90 + cmp r0, #0x2c + beq _0807ACB6 + b _0807ACC6 +_0807AC82: + ldrh r0, [r2, #0x2e] + movs r1, #0x10 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #8 + orrs r1, r0 + strh r1, [r2, #0x2e] +_0807AC90: + movs r0, #0 + movs r1, #0x1d + strb r1, [r2, #0xc] + strb r0, [r2, #0xd] + strh r0, [r2, #0x30] + ldr r0, _0807ACA4 @ =0x000002CF + strh r0, [r3, #8] + movs r0, #1 + b _0807ACC8 + .align 2, 0 +_0807ACA4: .4byte 0x000002CF +_0807ACA8: + ldrh r0, [r2, #0x2e] + movs r1, #0x10 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #8 + orrs r1, r0 + strh r1, [r2, #0x2e] +_0807ACB6: + movs r0, #0 + movs r1, #0x1d + strb r1, [r2, #0xc] + movs r1, #1 + strb r1, [r2, #0xd] + strh r0, [r2, #0x30] + movs r0, #1 + b _0807ACC8 +_0807ACC6: + movs r0, #0 +_0807ACC8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807ACCC +sub_0807ACCC: @ 0x0807ACCC + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x42 + movs r0, #0 + strb r0, [r1] + movs r0, #0x72 + bl sub_0807CA84 + movs r1, #0xc0 + cmp r0, #1 + bne _0807ACF4 + adds r1, #0x40 +_0807ACF4: + movs r2, #0x24 + ldrsh r0, [r4, r2] + cmp r1, r0 + ble _0807AD18 + strh r1, [r4, #0x24] + ldr r0, _0807AD14 @ =gUnk_03003F80 + ldrb r1, [r0, #0xd] + strb r1, [r4, #0x15] + adds r0, #0x26 + ldrb r1, [r0] + movs r0, #0xf + ands r0, r1 + cmp r0, #1 + bne _0807ADB4 + b _0807AD1E + .align 2, 0 +_0807AD14: .4byte gUnk_03003F80 +_0807AD18: + ldrh r0, [r4, #0x24] + subs r0, #4 + strh r0, [r4, #0x24] +_0807AD1E: + ldr r2, _0807AD3C @ =gUnk_03003F80 + adds r1, r2, #0 + adds r1, #0x89 + ldrb r0, [r1] + cmp r0, #0 + bne _0807AD40 + adds r0, r4, #0 + bl sub_0807ADB8 + cmp r0, #0 + bne _0807AD74 + adds r0, r4, #0 + bl sub_0807AE20 + b _0807AD74 + .align 2, 0 +_0807AD3C: .4byte gUnk_03003F80 +_0807AD40: + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0807AD52 + adds r0, r4, #0 + bl sub_0807ADB8 + b _0807AD74 +_0807AD52: + adds r2, #0x26 + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _0807ADA0 @ =0x00000163 + bl sub_080A3268 +_0807AD74: + ldr r0, _0807ADA4 @ =gUnk_03003F80 + adds r0, #0x26 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807ADA8 + adds r2, r4, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #4 + orrs r0, r1 + strb r0, [r2] + subs r2, #0x13 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + b _0807ADB2 + .align 2, 0 +_0807ADA0: .4byte 0x00000163 +_0807ADA4: .4byte gUnk_03003F80 +_0807ADA8: + adds r2, r4, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 +_0807ADB2: + strb r0, [r2] +_0807ADB4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0807ADB8 +sub_0807ADB8: @ 0x0807ADB8 + push {r4, lr} + adds r2, r0, #0 + ldr r3, _0807ADF4 @ =gUnk_03003F80 + adds r0, r3, #0 + adds r0, #0x92 + ldrh r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0807AE1C + movs r0, #0x26 + adds r0, r0, r3 + mov ip, r0 + ldrb r0, [r0] + movs r1, #0x80 + eors r0, r1 + mov r1, ip + strb r0, [r1] + movs r1, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + beq _0807ADF8 + adds r1, r3, #0 + adds r1, #0x89 + movs r0, #0x78 + strb r0, [r1] + b _0807AE0E + .align 2, 0 +_0807ADF4: .4byte gUnk_03003F80 +_0807ADF8: + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + adds r0, r3, #0 + adds r0, #0x89 + strb r4, [r0] +_0807AE0E: + ldr r0, _0807AE18 @ =0x00000163 + bl sub_080A3268 + movs r0, #1 + b _0807AE1E + .align 2, 0 +_0807AE18: .4byte 0x00000163 +_0807AE1C: + movs r0, #0 +_0807AE1E: + pop {r4, pc} + + thumb_func_start sub_0807AE20 +sub_0807AE20: @ 0x0807AE20 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0x17 + bne _0807AE32 + ldr r0, _0807AE58 @ =gUnk_03003F80 + ldrb r0, [r0, #0xa] + cmp r0, #0 + bne _0807AE74 +_0807AE32: + ldr r0, _0807AE5C @ =gUnk_03000BF0 + ldrh r0, [r0] + cmp r0, #0 + bne _0807AE74 + ldr r0, _0807AE58 @ =gUnk_03003F80 + adds r0, #0x92 + ldrh r1, [r0] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0807AE74 + movs r0, #0x72 + bl sub_0807CA84 + cmp r0, #1 + bne _0807AE60 + movs r0, #0xe0 + lsls r0, r0, #1 + b _0807AE64 + .align 2, 0 +_0807AE58: .4byte gUnk_03003F80 +_0807AE5C: .4byte gUnk_03000BF0 +_0807AE60: + movs r0, #0xc0 + lsls r0, r0, #1 +_0807AE64: + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_08079520 + movs r0, #0xb1 + lsls r0, r0, #1 + bl sub_080A3268 +_0807AE74: + movs r0, #0x10 + bl sub_080793E4 + cmp r0, #0 + beq _0807AEA8 + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0x14 + strb r0, [r1] + adds r1, #5 + movs r0, #4 + strb r0, [r1] + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 + movs r1, #0x10 + eors r0, r1 + adds r1, r4, #0 + adds r1, #0x3e + strb r0, [r1] + movs r0, #2 + rsbs r0, r0, #0 + bl sub_080526A0 + movs r0, #0x7a + bl sub_080A3268 +_0807AEA8: + ldrb r1, [r4, #0x15] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807AECC + ldr r0, _0807AEC8 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _0807AEDE + adds r0, r4, #0 + movs r1, #4 + bl sub_080A2A84 + b _0807AEDE + .align 2, 0 +_0807AEC8: .4byte gUnk_030010A0 +_0807AECC: + ldr r0, _0807AEE0 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _0807AEDE + adds r0, r4, #0 + bl sub_080A2A64 +_0807AEDE: + pop {r4, pc} + .align 2, 0 +_0807AEE0: .4byte gUnk_030010A0 + + thumb_func_start sub_0807AEE4 +sub_0807AEE4: @ 0x0807AEE4 + push {r4, lr} + ldr r0, _0807AFE4 @ =gUnk_03003F80 + adds r4, r0, #0 + adds r4, #0xac + movs r0, #0 + strh r0, [r4] + movs r0, #0x48 + bl sub_0807CA84 + cmp r0, #1 + bne _0807AF02 + ldrh r0, [r4] + movs r1, #1 + orrs r0, r1 + strh r0, [r4] +_0807AF02: + movs r0, #0x49 + bl sub_0807CA84 + cmp r0, #1 + bne _0807AF14 + ldrh r0, [r4] + movs r1, #2 + orrs r0, r1 + strh r0, [r4] +_0807AF14: + movs r0, #0x4a + bl sub_0807CA84 + cmp r0, #1 + bne _0807AF26 + ldrh r0, [r4] + movs r1, #4 + orrs r0, r1 + strh r0, [r4] +_0807AF26: + movs r0, #0x4b + bl sub_0807CA84 + cmp r0, #1 + bne _0807AF38 + ldrh r0, [r4] + movs r1, #8 + orrs r0, r1 + strh r0, [r4] +_0807AF38: + movs r0, #0x4c + bl sub_0807CA84 + cmp r0, #1 + bne _0807AF4A + ldrh r0, [r4] + movs r1, #0x10 + orrs r0, r1 + strh r0, [r4] +_0807AF4A: + movs r0, #0x4d + bl sub_0807CA84 + cmp r0, #1 + bne _0807AF5C + ldrh r0, [r4] + movs r1, #0x20 + orrs r0, r1 + strh r0, [r4] +_0807AF5C: + movs r0, #0x4e + bl sub_0807CA84 + cmp r0, #1 + bne _0807AF6E + ldrh r0, [r4] + movs r1, #0x40 + orrs r0, r1 + strh r0, [r4] +_0807AF6E: + movs r0, #0x4f + bl sub_0807CA84 + cmp r0, #1 + bne _0807AF80 + ldrh r0, [r4] + movs r1, #0x80 + orrs r0, r1 + strh r0, [r4] +_0807AF80: + movs r0, #6 + bl sub_0807CA84 + cmp r0, #1 + bne _0807AF96 + ldrh r0, [r4] + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r2, #0 + orrs r0, r1 + strh r0, [r4] +_0807AF96: + movs r0, #0x73 + bl sub_0807CA84 + cmp r0, #1 + bne _0807AFAC + ldrh r0, [r4] + movs r3, #0x80 + lsls r3, r3, #2 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r4] +_0807AFAC: + movs r0, #0x74 + bl sub_0807CA84 + cmp r0, #1 + bne _0807AFC6 + ldr r0, _0807AFE4 @ =gUnk_03003F80 + adds r0, #0xac + ldrh r2, [r0] + movs r3, #0x80 + lsls r3, r3, #3 + adds r1, r3, #0 + orrs r1, r2 + strh r1, [r0] +_0807AFC6: + movs r0, #0x75 + bl sub_0807CA84 + cmp r0, #1 + bne _0807AFE0 + ldr r0, _0807AFE4 @ =gUnk_03003F80 + adds r0, #0xac + ldrh r2, [r0] + movs r3, #0x80 + lsls r3, r3, #4 + adds r1, r3, #0 + orrs r1, r2 + strh r1, [r0] +_0807AFE0: + pop {r4, pc} + .align 2, 0 +_0807AFE4: .4byte gUnk_03003F80 + + thumb_func_start sub_0807AFE8 +sub_0807AFE8: @ 0x0807AFE8 + push {lr} + bl sub_08077B20 + ldr r0, _0807B00C @ =gUnk_03001160 + movs r1, #0x43 + movs r2, #0 + bl sub_080A29AC + adds r1, r0, #0 + cmp r1, #0 + beq _0807B004 + ldrh r0, [r1, #0x32] + adds r0, #1 + strh r0, [r1, #0x32] +_0807B004: + ldr r1, _0807B010 @ =gUnk_03003F80 + movs r0, #9 + strb r0, [r1, #0xc] + pop {pc} + .align 2, 0 +_0807B00C: .4byte gUnk_03001160 +_0807B010: .4byte gUnk_03003F80 + + thumb_func_start sub_0807B014 +sub_0807B014: @ 0x0807B014 + push {lr} + ldr r2, _0807B03C @ =gUnk_03003F80 + adds r0, r2, #0 + adds r0, #0xac + ldrh r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0807B044 + ldr r0, _0807B040 @ =gUnk_02002A40 + adds r1, r0, #0 + adds r1, #0xaa + adds r0, #0xab + ldrb r1, [r1] + ldrb r0, [r0] + cmp r1, r0 + bne _0807B044 + movs r0, #0xf + b _0807B066 + .align 2, 0 +_0807B03C: .4byte gUnk_03003F80 +_0807B040: .4byte gUnk_02002A40 +_0807B044: + adds r0, r2, #0 + adds r0, #0xac + ldrh r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807B064 + ldr r0, _0807B060 @ =gUnk_02002A40 + adds r0, #0xaa + ldrb r0, [r0] + cmp r0, #8 + bhi _0807B064 + movs r0, #0x16 + b _0807B066 + .align 2, 0 +_0807B060: .4byte gUnk_02002A40 +_0807B064: + movs r0, #0 +_0807B066: + pop {pc} + + thumb_func_start sub_0807B068 +sub_0807B068: @ 0x0807B068 + push {lr} + ldr r2, _0807B090 @ =gUnk_03003F80 + ldrb r1, [r2, #0x1e] + ldrb r0, [r2, #4] + orrs r0, r1 + cmp r0, #0 + bne _0807B0C2 + adds r0, r2, #0 + adds r0, #0x26 + ldrb r1, [r0] + cmp r1, #0 + beq _0807B0A4 + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807B098 + ldr r0, _0807B094 @ =0x00000C1C + strh r0, [r2, #8] + b _0807B0C2 + .align 2, 0 +_0807B090: .4byte gUnk_03003F80 +_0807B094: .4byte 0x00000C1C +_0807B098: + ldr r0, _0807B0A0 @ =0x00000C0C + strh r0, [r2, #8] + b _0807B0C2 + .align 2, 0 +_0807B0A0: .4byte 0x00000C0C +_0807B0A4: + ldrb r1, [r2, #0xd] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807B0B8 + ldrh r0, [r2, #8] + ldr r1, _0807B0B4 @ =0x00000C18 + b _0807B0BC + .align 2, 0 +_0807B0B4: .4byte 0x00000C18 +_0807B0B8: + ldrh r0, [r2, #8] + ldr r1, _0807B0C4 @ =0x00000C04 +_0807B0BC: + cmp r0, r1 + beq _0807B0C2 + strh r1, [r2, #8] +_0807B0C2: + pop {pc} + .align 2, 0 +_0807B0C4: .4byte 0x00000C04 + + thumb_func_start sub_0807B0C8 +sub_0807B0C8: @ 0x0807B0C8 + push {r4, lr} + ldr r4, _0807B0F8 @ =gUnk_03001160 + adds r0, r4, #0 + movs r1, #0 + movs r2, #0 + bl sub_0806FEBC + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FEBC + adds r0, r4, #0 + movs r1, #2 + adds r2, r4, #0 + bl sub_0806FEBC + adds r0, r4, #0 + movs r1, #3 + movs r2, #0 + bl sub_0806FEBC + pop {r4, pc} + .align 2, 0 +_0807B0F8: .4byte gUnk_03001160 + + thumb_func_start sub_0807B0FC +sub_0807B0FC: @ 0x0807B0FC + push {lr} + ldr r2, _0807B110 @ =gUnk_0811C27C + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0807B110: .4byte gUnk_0811C27C + + thumb_func_start sub_0807B114 +sub_0807B114: @ 0x0807B114 + movs r1, #1 + strb r1, [r0, #0xd] + ldr r1, _0807B124 @ =gUnk_03003F80 + adds r1, #0x38 + ldrb r1, [r1] + adds r0, #0x6c + strb r1, [r0] + bx lr + .align 2, 0 +_0807B124: .4byte gUnk_03003F80 + + thumb_func_start sub_0807B128 +sub_0807B128: @ 0x0807B128 + push {lr} + ldr r2, _0807B140 @ =gUnk_0811C284 + adds r1, r0, #0 + adds r1, #0x6c + ldrb r1, [r1] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0807B140: .4byte gUnk_0811C284 + + thumb_func_start sub_0807B144 +sub_0807B144: @ 0x0807B144 + push {lr} + ldrb r2, [r0, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #1 + orrs r1, r2 + strb r1, [r0, #0x18] + ldrb r1, [r0, #0x14] + lsls r1, r1, #2 + strb r1, [r0, #0x15] + movs r1, #0xa0 + strh r1, [r0, #0x24] + movs r1, #0x80 + lsls r1, r1, #0xb + str r1, [r0, #0x20] + ldr r1, _0807B170 @ =gUnk_03003F80 + movs r0, #0x81 + strb r0, [r1, #2] + bl sub_080791BC + pop {pc} + .align 2, 0 +_0807B170: .4byte gUnk_03003F80 + + thumb_func_start nullsub_506 +nullsub_506: @ 0x0807B174 + bx lr + .align 2, 0 + + thumb_func_start sub_0807B178 +sub_0807B178: @ 0x0807B178 + push {lr} + ldrb r2, [r0, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #1 + orrs r1, r2 + strb r1, [r0, #0x18] + movs r2, #0 + movs r1, #0x10 + strb r1, [r0, #0x15] + strh r2, [r0, #0x24] + movs r1, #0x80 + lsls r1, r1, #0xb + str r1, [r0, #0x20] + ldr r1, _0807B1A4 @ =gUnk_03003F80 + movs r0, #0x81 + strb r0, [r1, #2] + bl sub_080791BC + pop {pc} + .align 2, 0 +_0807B1A4: .4byte gUnk_03003F80 + + thumb_func_start sub_0807B1A8 +sub_0807B1A8: @ 0x0807B1A8 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0807B1D4 @ =gUnk_0811C298 + adds r0, #0x6e + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldr r0, _0807B1D8 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _0807B1D0 + adds r0, r4, #0 + bl sub_080A2B80 +_0807B1D0: + pop {r4, pc} + .align 2, 0 +_0807B1D4: .4byte gUnk_0811C298 +_0807B1D8: .4byte gUnk_030010A0 + + thumb_func_start sub_0807B1DC +sub_0807B1DC: @ 0x0807B1DC + adds r2, r0, #0 + adds r2, #0x6e + ldrb r1, [r2] + adds r1, #1 + strb r1, [r2] + movs r1, #0x1e + strb r1, [r0, #0xe] + bx lr + + thumb_func_start sub_0807B1EC +sub_0807B1EC: @ 0x0807B1EC + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0807B212 + adds r1, r2, #0 + adds r1, #0x6e + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #0x80 + lsls r0, r0, #9 + str r0, [r2, #0x20] + ldr r1, _0807B214 @ =gUnk_03003F80 + ldr r0, _0807B218 @ =0x000002C2 + strh r0, [r1, #8] +_0807B212: + pop {pc} + .align 2, 0 +_0807B214: .4byte gUnk_03003F80 +_0807B218: .4byte 0x000002C2 + + thumb_func_start sub_0807B21C +sub_0807B21C: @ 0x0807B21C + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldr r0, [r4, #0x20] + cmp r0, #0 + bge _0807B236 + movs r1, #0x80 + lsls r1, r1, #3 + adds r0, r4, #0 + bl sub_08003FC4 + b _0807B240 +_0807B236: + movs r1, #0x80 + lsls r1, r1, #4 + adds r0, r4, #0 + bl sub_08003FC4 +_0807B240: + ldr r1, [r4, #0x20] + ldr r0, _0807B260 @ =0xFFFF8000 + cmp r1, r0 + bge _0807B25E + movs r1, #0 + movs r0, #0x78 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x6e + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r0, [r4, #0x34] + str r0, [r4, #0x68] +_0807B25E: + pop {r4, pc} + .align 2, 0 +_0807B260: .4byte 0xFFFF8000 + + thumb_func_start sub_0807B264 +sub_0807B264: @ 0x0807B264 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldrb r0, [r4, #0xf] + adds r0, #2 + strb r0, [r4, #0xf] + ldr r1, _0807B2B4 @ =gUnk_080C9160 + ldrb r0, [r4, #0xf] + lsls r0, r0, #1 + adds r0, r0, r1 + movs r2, #0 + ldrsh r1, [r0, r2] + asrs r1, r1, #7 + lsls r1, r1, #0x10 + ldr r0, [r4, #0x68] + adds r0, r0, r1 + str r0, [r4, #0x34] + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0807B2B0 + movs r0, #0x50 + strb r0, [r4, #0xe] + movs r0, #0x80 + lsls r0, r0, #8 + str r0, [r4, #0x20] + adds r1, r4, #0 + adds r1, #0x6e + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #0xa9 + lsls r0, r0, #1 + bl sub_080A3268 +_0807B2B0: + pop {r4, pc} + .align 2, 0 +_0807B2B4: .4byte gUnk_080C9160 + + thumb_func_start sub_0807B2B8 +sub_0807B2B8: @ 0x0807B2B8 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0807B2F0 @ =0xFFFFE000 + bl sub_08003FC4 + adds r0, r4, #0 + bl sub_080042B8 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0807B2EC + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0807B2EC + adds r0, r4, #0 + adds r0, #0x6d + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0807B2F4 @ =gUnk_0813AD88 + adds r0, r0, r1 + bl sub_08080840 +_0807B2EC: + pop {r4, pc} + .align 2, 0 +_0807B2F0: .4byte 0xFFFFE000 +_0807B2F4: .4byte gUnk_0813AD88 + + thumb_func_start sub_0807B2F8 +sub_0807B2F8: @ 0x0807B2F8 + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x6e + ldrb r0, [r1] + cmp r0, #0 + bne _0807B310 + adds r0, #1 + strb r0, [r1] + adds r0, r2, #0 + bl sub_0809D738 +_0807B310: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807B314 +sub_0807B314: @ 0x0807B314 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r6, r2, #0 + ldr r0, _0807B3A0 @ =0x000007FF + cmp r5, r0 + bhi _0807B410 + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_0801AF8C + adds r0, r6, #0 + bl sub_0808094C + adds r2, r0, #0 + lsls r1, r5, #1 + ldr r3, _0807B3A4 @ =0x00006004 + adds r0, r2, r3 + adds r0, r0, r1 + ldrh r0, [r0] + mov ip, r0 + lsls r1, r4, #1 + adds r0, r2, #4 + adds r0, r0, r1 + mov r1, ip + strh r1, [r0] + ldr r0, _0807B3A8 @ =gUnk_080B3E80 + adds r0, r5, r0 + ldrb r3, [r0] + ldr r1, _0807B3AC @ =0x00002004 + adds r0, r2, r1 + adds r0, r0, r4 + strb r3, [r0] + ldr r7, _0807B3B0 @ =gUnk_03000BF0 + ldrb r1, [r7, #0xf] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0807B36C + ldr r0, _0807B3B4 @ =gUnk_02025EB0 + ldr r1, _0807B3AC @ =0x00002004 + adds r0, r0, r1 + adds r0, r4, r0 + strb r3, [r0] +_0807B36C: + ldr r3, _0807B3B8 @ =0x0000B004 + adds r1, r2, r3 + adds r1, r1, r4 + ldr r0, _0807B3BC @ =gUnk_080B37A0 + adds r0, r5, r0 + ldrb r0, [r0] + strb r0, [r1] + ldrb r1, [r7, #0xf] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0807B430 + movs r1, #0x3f + ands r1, r4 + lsls r1, r1, #1 + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r4 + lsls r0, r0, #2 + adds r1, r1, r0 + cmp r6, #2 + beq _0807B3C4 + lsls r1, r1, #1 + ldr r0, _0807B3C0 @ =gUnk_02019EE0 + b _0807B3C8 + .align 2, 0 +_0807B3A0: .4byte 0x000007FF +_0807B3A4: .4byte 0x00006004 +_0807B3A8: .4byte gUnk_080B3E80 +_0807B3AC: .4byte 0x00002004 +_0807B3B0: .4byte gUnk_03000BF0 +_0807B3B4: .4byte gUnk_02025EB0 +_0807B3B8: .4byte 0x0000B004 +_0807B3BC: .4byte gUnk_080B37A0 +_0807B3C0: .4byte gUnk_02019EE0 +_0807B3C4: + lsls r1, r1, #1 + ldr r0, _0807B400 @ =gUnk_02002F00 +_0807B3C8: + adds r3, r1, r0 + mov r1, ip + lsls r0, r1, #3 + ldr r1, _0807B404 @ =0x00007004 + adds r0, r0, r1 + adds r0, r2, r0 + ldrh r1, [r0] + strh r1, [r3] + ldrh r1, [r0, #2] + strh r1, [r3, #2] + movs r1, #0x80 + lsls r1, r1, #1 + adds r2, r3, r1 + ldrh r1, [r0, #4] + strh r1, [r2] + movs r2, #0x81 + lsls r2, r2, #1 + adds r1, r3, r2 + ldrh r0, [r0, #6] + strh r0, [r1] + ldr r0, _0807B408 @ =gUnk_03000BF0 + ldrh r0, [r0] + cmp r0, #1 + beq _0807B430 + ldr r1, _0807B40C @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + b _0807B430 + .align 2, 0 +_0807B400: .4byte gUnk_02002F00 +_0807B404: .4byte 0x00007004 +_0807B408: .4byte gUnk_03000BF0 +_0807B40C: .4byte gUnk_02000070 +_0807B410: + ldr r0, _0807B424 @ =0x00003FFF + cmp r5, r0 + bls _0807B428 + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r6, #0 + bl sub_0800015E + b _0807B430 + .align 2, 0 +_0807B424: .4byte 0x00003FFF +_0807B428: + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_0807BA8C +_0807B430: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0807B434 +sub_0807B434: @ 0x0807B434 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_080002B0 + cmp r0, #0x37 + bhi _0807B44A + cmp r0, #0x36 + blo _0807B44A + movs r0, #0 + b _0807B462 +_0807B44A: + lsls r0, r4, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r5, #0x18 + lsrs r1, r1, #0x18 + bl sub_080002C8 + adds r1, r0, #0 + movs r0, #0xd + eors r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f +_0807B462: + pop {r4, r5, pc} + + thumb_func_start sub_0807B464 +sub_0807B464: @ 0x0807B464 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl sub_080002C8 + movs r1, #0 + cmp r0, #0x56 + bne _0807B47A + movs r1, #1 +_0807B47A: + adds r0, r1, #0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807B480 +sub_0807B480: @ 0x0807B480 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r7, r1, #0 + movs r1, #2 + bl sub_0807B464 + cmp r0, #0 + beq _0807B558 + adds r0, r6, #0 + subs r0, #0x40 + movs r1, #2 + bl sub_0807B464 + adds r5, r0, #0 + adds r0, r6, #1 + movs r1, #2 + bl sub_0807B464 + lsls r0, r0, #1 + orrs r5, r0 + adds r4, r6, #0 + adds r4, #0x40 + adds r0, r4, #0 + movs r1, #2 + bl sub_0807B464 + lsls r0, r0, #2 + orrs r5, r0 + subs r0, r6, #1 + movs r1, #2 + bl sub_0807B464 + lsls r0, r0, #3 + orrs r5, r0 + adds r0, r6, #0 + adds r0, #0x41 + movs r1, #1 + bl sub_0807B464 + lsls r0, r0, #1 + orrs r5, r0 + adds r0, r6, #0 + adds r0, #0x3f + movs r1, #1 + bl sub_0807B464 + lsls r0, r0, #3 + orrs r5, r0 + adds r0, r4, #0 + movs r1, #2 + bl sub_080002B0 + cmp r0, #0 + beq _0807B4FA + adds r0, r6, #0 + adds r0, #0x80 + movs r1, #1 + bl sub_0807B464 + lsls r0, r0, #2 + orrs r5, r0 +_0807B4FA: + ldr r0, _0807B514 @ =gUnk_0811C2CC + lsls r1, r5, #1 + adds r1, r1, r0 + ldrh r4, [r1] + adds r0, r6, #0 + movs r1, #2 + bl sub_080002B0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r2, _0807B518 @ =gUnk_0811C2EC + movs r3, #0 + b _0807B51E + .align 2, 0 +_0807B514: .4byte gUnk_0811C2CC +_0807B518: .4byte gUnk_0811C2EC +_0807B51C: + adds r2, #6 +_0807B51E: + ldrh r1, [r2] + cmp r1, #0 + beq _0807B52A + cmp r0, r1 + bne _0807B51C + ldrh r3, [r2, #2] +_0807B52A: + movs r0, #1 + lsls r0, r7 + bics r3, r0 + ldr r2, _0807B534 @ =gUnk_0811C2EC + b _0807B53A + .align 2, 0 +_0807B534: .4byte gUnk_0811C2EC +_0807B538: + adds r2, #6 +_0807B53A: + ldrh r0, [r2] + cmp r0, #0 + beq _0807B54E + ldrh r0, [r2, #2] + cmp r3, r0 + bne _0807B538 + ldrh r0, [r2, #4] + cmp r5, r0 + bne _0807B538 + ldrh r4, [r2] +_0807B54E: + adds r0, r4, #0 + adds r1, r6, #0 + movs r2, #2 + bl sub_0807B314 +_0807B558: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0807B55C +sub_0807B55C: @ 0x0807B55C + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r6, r1, #0 + adds r7, r2, #0 + bl sub_0807B464 + cmp r0, #0 + beq _0807B5AC + adds r0, r5, #0 + subs r0, #0x40 + adds r1, r6, #0 + bl sub_0807B464 + adds r4, r0, #0 + adds r0, r5, #1 + adds r1, r6, #0 + bl sub_0807B464 + lsls r0, r0, #1 + orrs r4, r0 + adds r0, r5, #0 + adds r0, #0x40 + adds r1, r6, #0 + bl sub_0807B464 + lsls r0, r0, #2 + orrs r4, r0 + subs r0, r5, #1 + adds r1, r6, #0 + bl sub_0807B464 + lsls r0, r0, #3 + orrs r0, r4 + lsls r0, r0, #1 + adds r0, r0, r7 + ldrh r0, [r0] + adds r1, r5, #0 + adds r2, r6, #0 + bl sub_0807B314 +_0807B5AC: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0807B5B0 +sub_0807B5B0: @ 0x0807B5B0 + push {r4, r5, r6, r7, lr} + adds r3, r0, #0 + movs r1, #0x2e + ldrsh r0, [r3, r1] + ldr r6, _0807B5F8 @ =gUnk_0811C456 + ldrb r1, [r3, #0x14] + movs r2, #6 + ands r2, r1 + lsls r1, r2, #1 + adds r1, r1, r6 + movs r4, #0 + ldrsh r1, [r1, r4] + adds r0, r0, r1 + ldr r5, _0807B5FC @ =gUnk_03000BF0 + ldrh r1, [r5, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r4, #0x3f + ands r0, r4 + movs r7, #0x32 + ldrsh r1, [r3, r7] + adds r2, #1 + lsls r2, r2, #1 + adds r2, r2, r6 + movs r3, #0 + ldrsh r2, [r2, r3] + adds r1, r1, r2 + ldrh r2, [r5, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r4 + lsls r1, r1, #6 + orrs r0, r1 + bl sub_0807B600 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807B5F8: .4byte gUnk_0811C456 +_0807B5FC: .4byte gUnk_03000BF0 + + thumb_func_start sub_0807B600 +sub_0807B600: @ 0x0807B600 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r5, #0 + subs r6, #0x40 + lsls r0, r5, #0x10 + lsrs r0, r0, #0x10 + movs r1, #1 + bl sub_080002C8 + cmp r0, #0x56 + beq _0807B61A + movs r0, #0 + b _0807B76E +_0807B61A: + adds r0, r5, #0 + movs r1, #1 + bl sub_080002B0 + adds r1, r0, #0 + ldr r0, _0807B634 @ =0x0000026A + cmp r1, r0 + bne _0807B638 + adds r0, r5, #0 + bl sub_0807B820 + b _0807B76C + .align 2, 0 +_0807B634: .4byte 0x0000026A +_0807B638: + ldr r0, _0807B648 @ =0x00000267 + cmp r1, r0 + bne _0807B64C + adds r0, r5, #0 + adds r0, #0x40 + bl sub_0807B820 + b _0807B76C + .align 2, 0 +_0807B648: .4byte 0x00000267 +_0807B64C: + ldr r0, _0807B65C @ =0x0000027A + cmp r1, r0 + bne _0807B660 + adds r0, r5, #0 + bl sub_0807B8A8 + b _0807B76C + .align 2, 0 +_0807B65C: .4byte 0x0000027A +_0807B660: + ldr r0, _0807B670 @ =0x00000277 + cmp r1, r0 + bne _0807B674 + adds r0, r5, #0 + adds r0, #0x40 + bl sub_0807B8A8 + b _0807B76C + .align 2, 0 +_0807B670: .4byte 0x00000277 +_0807B674: + ldr r0, _0807B684 @ =0x0000028A + cmp r1, r0 + bne _0807B688 + adds r0, r5, #0 + bl sub_0807B930 + b _0807B76C + .align 2, 0 +_0807B684: .4byte 0x0000028A +_0807B688: + ldr r0, _0807B698 @ =0x00000287 + cmp r1, r0 + bne _0807B69C + adds r0, r5, #0 + adds r0, #0x40 + bl sub_0807B930 + b _0807B76C + .align 2, 0 +_0807B698: .4byte 0x00000287 +_0807B69C: + adds r0, r5, #0 + movs r1, #2 + bl sub_080002B0 + cmp r0, #0 + beq _0807B6EC + ldr r0, _0807B6E8 @ =0x000002F2 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 + adds r0, r6, #0 + movs r1, #1 + bl sub_080002E0 + cmp r0, #3 + bne _0807B6CA + movs r0, #0xbd + lsls r0, r0, #2 + adds r1, r6, #0 + movs r2, #1 + bl sub_0807B314 +_0807B6CA: + adds r0, r5, #0 + adds r0, #0x40 + movs r1, #1 + bl sub_080002E0 + cmp r0, #3 + bne _0807B6F8 + movs r0, #0xbd + lsls r0, r0, #2 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 + b _0807B6F8 + .align 2, 0 +_0807B6E8: .4byte 0x000002F2 +_0807B6EC: + movs r0, #0xbd + lsls r0, r0, #2 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 +_0807B6F8: + adds r0, r6, #0 + movs r1, #2 + bl sub_0807B464 + cmp r0, #0 + beq _0807B748 + movs r0, #0 + adds r1, r6, #0 + movs r2, #2 + bl sub_0807B314 + adds r0, r6, #0 + movs r1, #1 + bl sub_080002B0 + ldr r1, _0807B770 @ =0x000002F2 + cmp r0, r1 + bne _0807B728 + movs r0, #0xbd + lsls r0, r0, #2 + adds r1, r6, #0 + movs r2, #1 + bl sub_0807B314 +_0807B728: + adds r0, r5, #1 + ldr r4, _0807B774 @ =gUnk_0811C2AC + movs r1, #1 + adds r2, r4, #0 + bl sub_0807B55C + subs r0, r5, #1 + movs r1, #1 + adds r2, r4, #0 + bl sub_0807B55C + adds r0, r6, #0 + movs r1, #1 + adds r2, r4, #0 + bl sub_0807B55C +_0807B748: + adds r0, r6, #1 + movs r1, #3 + bl sub_0807B480 + subs r0, r6, #1 + movs r1, #1 + bl sub_0807B480 + adds r0, r6, #0 + adds r0, #0x40 + movs r1, #0 + bl sub_0807B480 + adds r0, r6, #0 + subs r0, #0x40 + movs r1, #2 + bl sub_0807B480 +_0807B76C: + movs r0, #1 +_0807B76E: + pop {r4, r5, r6, pc} + .align 2, 0 +_0807B770: .4byte 0x000002F2 +_0807B774: .4byte gUnk_0811C2AC + + thumb_func_start sub_0807B778 +sub_0807B778: @ 0x0807B778 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + lsls r0, r5, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r6, #0x18 + lsrs r1, r1, #0x18 + bl sub_080002C8 + cmp r0, #0xd + bne _0807B7D0 + adds r0, r5, #0 + subs r0, #0x40 + adds r1, r6, #0 + bl sub_0807B434 + adds r4, r0, #0 + adds r0, r5, #1 + adds r1, r6, #0 + bl sub_0807B434 + lsls r0, r0, #1 + orrs r4, r0 + adds r0, r5, #0 + adds r0, #0x40 + adds r1, r6, #0 + bl sub_0807B434 + lsls r0, r0, #2 + orrs r4, r0 + subs r0, r5, #1 + adds r1, r6, #0 + bl sub_0807B434 + lsls r0, r0, #3 + orrs r0, r4 + ldr r1, _0807B7D4 @ =gUnk_0811C466 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + adds r1, r5, #0 + adds r2, r6, #0 + bl sub_0807B314 +_0807B7D0: + pop {r4, r5, r6, pc} + .align 2, 0 +_0807B7D4: .4byte gUnk_0811C466 + + thumb_func_start sub_0807B7D8 +sub_0807B7D8: @ 0x0807B7D8 + push {r4, r5, lr} + adds r4, r1, #0 + adds r5, r2, #0 + cmp r0, #0x35 + bne _0807B816 + movs r0, #0x35 + bl sub_08000152 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0807B778 + adds r0, r4, #1 + adds r1, r5, #0 + bl sub_0807B778 + subs r0, r4, #1 + adds r1, r5, #0 + bl sub_0807B778 + adds r0, r4, #0 + adds r0, #0x40 + adds r1, r5, #0 + bl sub_0807B778 + adds r0, r4, #0 + subs r0, #0x40 + adds r1, r5, #0 + bl sub_0807B778 + b _0807B81E +_0807B816: + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_0807B314 +_0807B81E: + pop {r4, r5, pc} + + thumb_func_start sub_0807B820 +sub_0807B820: @ 0x0807B820 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x9b + lsls r0, r0, #2 + adds r5, r4, #0 + subs r5, #0x41 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 + ldr r0, _0807B890 @ =0x00000273 + adds r1, r5, #0 + movs r2, #2 + bl sub_0807B314 + ldr r0, _0807B894 @ =0x0000026D + adds r5, #1 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 + movs r0, #0x9d + lsls r0, r0, #2 + adds r1, r5, #0 + movs r2, #2 + bl sub_0807B314 + ldr r0, _0807B898 @ =0x0000026E + adds r5, #1 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 + ldr r0, _0807B89C @ =0x00000275 + adds r1, r5, #0 + movs r2, #2 + bl sub_0807B314 + ldr r0, _0807B8A0 @ =0x0000026F + subs r1, r4, #1 + movs r2, #1 + bl sub_0807B314 + movs r0, #0x9c + lsls r0, r0, #2 + adds r1, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r0, _0807B8A4 @ =0x00000272 + adds r4, #1 + adds r1, r4, #0 + movs r2, #1 + bl sub_0807B314 + pop {r4, r5, pc} + .align 2, 0 +_0807B890: .4byte 0x00000273 +_0807B894: .4byte 0x0000026D +_0807B898: .4byte 0x0000026E +_0807B89C: .4byte 0x00000275 +_0807B8A0: .4byte 0x0000026F +_0807B8A4: .4byte 0x00000272 + + thumb_func_start sub_0807B8A8 +sub_0807B8A8: @ 0x0807B8A8 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x9f + lsls r0, r0, #2 + adds r5, r4, #0 + subs r5, #0x41 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 + ldr r0, _0807B918 @ =0x00000283 + adds r1, r5, #0 + movs r2, #2 + bl sub_0807B314 + ldr r0, _0807B91C @ =0x0000027D + adds r5, #1 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 + movs r0, #0xa1 + lsls r0, r0, #2 + adds r1, r5, #0 + movs r2, #2 + bl sub_0807B314 + ldr r0, _0807B920 @ =0x0000027E + adds r5, #1 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 + ldr r0, _0807B924 @ =0x00000285 + adds r1, r5, #0 + movs r2, #2 + bl sub_0807B314 + ldr r0, _0807B928 @ =0x0000027F + subs r1, r4, #1 + movs r2, #1 + bl sub_0807B314 + movs r0, #0xa0 + lsls r0, r0, #2 + adds r1, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r0, _0807B92C @ =0x00000282 + adds r4, #1 + adds r1, r4, #0 + movs r2, #1 + bl sub_0807B314 + pop {r4, r5, pc} + .align 2, 0 +_0807B918: .4byte 0x00000283 +_0807B91C: .4byte 0x0000027D +_0807B920: .4byte 0x0000027E +_0807B924: .4byte 0x00000285 +_0807B928: .4byte 0x0000027F +_0807B92C: .4byte 0x00000282 + + thumb_func_start sub_0807B930 +sub_0807B930: @ 0x0807B930 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0xa3 + lsls r0, r0, #2 + adds r5, r4, #0 + subs r5, #0x41 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 + ldr r0, _0807B9A0 @ =0x00000293 + adds r1, r5, #0 + movs r2, #2 + bl sub_0807B314 + ldr r0, _0807B9A4 @ =0x0000028D + adds r5, #1 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 + movs r0, #0xa5 + lsls r0, r0, #2 + adds r1, r5, #0 + movs r2, #2 + bl sub_0807B314 + ldr r0, _0807B9A8 @ =0x0000028E + adds r5, #1 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 + ldr r0, _0807B9AC @ =0x00000295 + adds r1, r5, #0 + movs r2, #2 + bl sub_0807B314 + ldr r0, _0807B9B0 @ =0x0000028F + subs r1, r4, #1 + movs r2, #1 + bl sub_0807B314 + movs r0, #0xa4 + lsls r0, r0, #2 + adds r1, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r0, _0807B9B4 @ =0x00000292 + adds r4, #1 + adds r1, r4, #0 + movs r2, #1 + bl sub_0807B314 + pop {r4, r5, pc} + .align 2, 0 +_0807B9A0: .4byte 0x00000293 +_0807B9A4: .4byte 0x0000028D +_0807B9A8: .4byte 0x0000028E +_0807B9AC: .4byte 0x00000295 +_0807B9B0: .4byte 0x0000028F +_0807B9B4: .4byte 0x00000292 + + thumb_func_start sub_0807B9B8 +sub_0807B9B8: @ 0x0807B9B8 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r4, r1, #0 + adds r6, r2, #0 + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_0801AF8C + adds r0, r6, #0 + bl sub_0808094C + adds r5, r0, #0 + lsls r1, r4, #1 + adds r0, r5, #4 + adds r0, r0, r1 + strh r7, [r0] + lsls r1, r7, #1 + ldr r2, _0807BA24 @ =0x00005004 + adds r0, r5, r2 + adds r0, r0, r1 + ldrh r2, [r0] + ldr r0, _0807BA28 @ =0x00002004 + adds r1, r5, r0 + adds r1, r1, r4 + ldr r0, _0807BA2C @ =gUnk_080B3E80 + adds r0, r2, r0 + ldrb r0, [r0] + strb r0, [r1] + ldr r0, _0807BA30 @ =0x0000B004 + adds r1, r5, r0 + adds r1, r1, r4 + ldr r0, _0807BA34 @ =gUnk_080B37A0 + adds r2, r2, r0 + ldrb r0, [r2] + strb r0, [r1] + ldr r0, _0807BA38 @ =gUnk_03000BF0 + ldrb r1, [r0, #0xf] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0807BA78 + movs r1, #0x3f + ands r1, r4 + lsls r1, r1, #1 + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r4 + lsls r0, r0, #2 + adds r1, r1, r0 + cmp r6, #2 + beq _0807BA40 + lsls r1, r1, #1 + ldr r0, _0807BA3C @ =gUnk_02019EE0 + b _0807BA44 + .align 2, 0 +_0807BA24: .4byte 0x00005004 +_0807BA28: .4byte 0x00002004 +_0807BA2C: .4byte gUnk_080B3E80 +_0807BA30: .4byte 0x0000B004 +_0807BA34: .4byte gUnk_080B37A0 +_0807BA38: .4byte gUnk_03000BF0 +_0807BA3C: .4byte gUnk_02019EE0 +_0807BA40: + lsls r1, r1, #1 + ldr r0, _0807BA7C @ =gUnk_02002F00 +_0807BA44: + adds r3, r1, r0 + lsls r0, r7, #3 + ldr r1, _0807BA80 @ =0x00007004 + adds r0, r0, r1 + adds r0, r5, r0 + ldrh r1, [r0] + strh r1, [r3] + ldrh r1, [r0, #2] + strh r1, [r3, #2] + movs r1, #0x80 + lsls r1, r1, #1 + adds r2, r3, r1 + ldrh r1, [r0, #4] + strh r1, [r2] + movs r2, #0x81 + lsls r2, r2, #1 + adds r1, r3, r2 + ldrh r0, [r0, #6] + strh r0, [r1] + ldr r0, _0807BA84 @ =gUnk_03000BF0 + ldrh r0, [r0] + cmp r0, #1 + beq _0807BA78 + ldr r1, _0807BA88 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] +_0807BA78: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807BA7C: .4byte gUnk_02002F00 +_0807BA80: .4byte 0x00007004 +_0807BA84: .4byte gUnk_03000BF0 +_0807BA88: .4byte gUnk_02000070 + + thumb_func_start sub_0807BA8C +sub_0807BA8C: @ 0x0807BA8C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r7, r1, #0 + bl sub_0801AF8C + adds r0, r7, #0 + bl sub_0808094C + adds r5, r0, #0 + lsls r2, r4, #1 + adds r1, r5, #4 + adds r1, r1, r2 + ldr r3, _0807BAFC @ =0x00003004 + adds r0, r5, r3 + adds r0, r0, r2 + ldrh r6, [r0] + strh r6, [r1] + lsls r1, r6, #1 + ldr r2, _0807BB00 @ =0x00005004 + adds r0, r5, r2 + adds r0, r0, r1 + ldrh r2, [r0] + ldr r3, _0807BB04 @ =0x00002004 + adds r1, r5, r3 + adds r1, r1, r4 + ldr r0, _0807BB08 @ =gUnk_080B3E80 + adds r0, r2, r0 + ldrb r0, [r0] + strb r0, [r1] + ldr r0, _0807BB0C @ =0x0000B004 + adds r1, r5, r0 + adds r1, r1, r4 + ldr r0, _0807BB10 @ =gUnk_080B37A0 + adds r2, r2, r0 + ldrb r0, [r2] + strb r0, [r1] + ldr r0, _0807BB14 @ =gUnk_03000BF0 + ldrb r1, [r0, #0xf] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0807BB54 + movs r1, #0x3f + ands r1, r4 + lsls r1, r1, #1 + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r4 + lsls r0, r0, #2 + adds r1, r1, r0 + cmp r7, #2 + beq _0807BB1C + lsls r1, r1, #1 + ldr r0, _0807BB18 @ =gUnk_02019EE0 + b _0807BB20 + .align 2, 0 +_0807BAFC: .4byte 0x00003004 +_0807BB00: .4byte 0x00005004 +_0807BB04: .4byte 0x00002004 +_0807BB08: .4byte gUnk_080B3E80 +_0807BB0C: .4byte 0x0000B004 +_0807BB10: .4byte gUnk_080B37A0 +_0807BB14: .4byte gUnk_03000BF0 +_0807BB18: .4byte gUnk_02019EE0 +_0807BB1C: + lsls r1, r1, #1 + ldr r0, _0807BB58 @ =gUnk_02002F00 +_0807BB20: + adds r3, r1, r0 + lsls r0, r6, #3 + ldr r1, _0807BB5C @ =0x00007004 + adds r0, r0, r1 + adds r0, r5, r0 + ldrh r1, [r0] + strh r1, [r3] + ldrh r1, [r0, #2] + strh r1, [r3, #2] + movs r1, #0x80 + lsls r1, r1, #1 + adds r2, r3, r1 + ldrh r1, [r0, #4] + strh r1, [r2] + movs r2, #0x81 + lsls r2, r2, #1 + adds r1, r3, r2 + ldrh r0, [r0, #6] + strh r0, [r1] + ldr r0, _0807BB60 @ =gUnk_03000BF0 + ldrh r0, [r0] + cmp r0, #1 + beq _0807BB54 + ldr r1, _0807BB64 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] +_0807BB54: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807BB58: .4byte gUnk_02002F00 +_0807BB5C: .4byte 0x00007004 +_0807BB60: .4byte gUnk_03000BF0 +_0807BB64: .4byte gUnk_02000070 + + thumb_func_start sub_0807BB68 +sub_0807BB68: @ 0x0807BB68 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r6, r1, #0 + adds r5, r2, #0 + movs r1, #0 + ldrsh r0, [r4, r1] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _0807BB96 + adds r7, r1, #0 +_0807BB7E: + ldrh r0, [r4] + movs r2, #2 + ldrsh r1, [r4, r2] + adds r1, r6, r1 + adds r2, r5, #0 + bl sub_0807B314 + adds r4, #4 + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, r7 + bne _0807BB7E +_0807BB96: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0807BB98 +sub_0807BB98: @ 0x0807BB98 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r5, r0, #0 + mov sl, r1 + mov r8, r2 + mov sb, r3 + movs r0, #0 + cmp r0, sb + bhs _0807BBD4 +_0807BBB0: + movs r4, #0 + adds r7, r5, #0 + adds r7, #0x40 + adds r6, r0, #1 + cmp r4, r8 + bhs _0807BBCC +_0807BBBC: + adds r1, r5, r4 + ldr r0, _0807BBE0 @ =0x00004072 + mov r2, sl + bl sub_0800015E + adds r4, #1 + cmp r4, r8 + blo _0807BBBC +_0807BBCC: + adds r5, r7, #0 + adds r0, r6, #0 + cmp r0, sb + blo _0807BBB0 +_0807BBD4: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807BBE0: .4byte 0x00004072 + + thumb_func_start sub_0807BBE4 +sub_0807BBE4: @ 0x0807BBE4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, _0807BC28 @ =gUnk_0202AEB4 + mov sl, r0 + ldr r0, _0807BC2C @ =gUnk_02010654 + mov sb, r0 + ldr r5, _0807BC30 @ =0xFFFFB000 + add r5, sl + ldr r4, _0807BC30 @ =0xFFFFB000 + add r4, sb + ldr r2, _0807BC34 @ =0xFFFFD000 + add r2, sl + ldr r1, _0807BC34 @ =0xFFFFD000 + add r1, sb + movs r3, #0 + ldr r0, _0807BC38 @ =0x00003FFF + mov r8, r0 + ldr r0, _0807BC3C @ =gUnk_080B3E80 + mov ip, r0 + ldr r7, _0807BC40 @ =gUnk_080B79A7 + ldr r6, _0807BC44 @ =0xFFFFC000 +_0807BC14: + ldrh r0, [r5] + adds r5, #2 + cmp r0, r8 + bhi _0807BC48 + lsls r0, r0, #1 + add r0, sl + ldrh r0, [r0] + add r0, ip + b _0807BC4C + .align 2, 0 +_0807BC28: .4byte gUnk_0202AEB4 +_0807BC2C: .4byte gUnk_02010654 +_0807BC30: .4byte 0xFFFFB000 +_0807BC34: .4byte 0xFFFFD000 +_0807BC38: .4byte 0x00003FFF +_0807BC3C: .4byte gUnk_080B3E80 +_0807BC40: .4byte gUnk_080B79A7 +_0807BC44: .4byte 0xFFFFC000 +_0807BC48: + adds r0, r0, r6 + adds r0, r0, r7 +_0807BC4C: + ldrb r0, [r0] + strb r0, [r2] + adds r2, #1 + ldrh r0, [r4] + adds r4, #2 + cmp r0, r8 + bhi _0807BC64 + lsls r0, r0, #1 + add r0, sb + ldrh r0, [r0] + add r0, ip + b _0807BC68 +_0807BC64: + adds r0, r0, r6 + adds r0, r0, r7 +_0807BC68: + ldrb r0, [r0] + strb r0, [r1] + adds r1, #1 + adds r3, #1 + ldr r0, _0807BC80 @ =0x00000FFF + cmp r3, r0 + bls _0807BC14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807BC80: .4byte 0x00000FFF + + thumb_func_start sub_0807BC84 +sub_0807BC84: @ 0x0807BC84 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r1, _0807BD04 @ =gUnk_03000BF0 + ldrh r0, [r1, #0x1e] + lsrs r2, r0, #4 + mov r8, r1 + cmp r2, #0x40 + bne _0807BC98 + movs r2, #0x3f +_0807BC98: + ldr r1, _0807BD08 @ =gUnk_02027EB4 + adds r3, r2, r1 + adds r6, r1, #0 + adds r6, #0x3f + ldr r0, _0807BD0C @ =gUnk_0200D654 + adds r2, r2, r0 + adds r5, r0, #0 + adds r5, #0x3f + movs r4, #0 + adds r7, r1, #0 + mov ip, r0 + movs r0, #0xff +_0807BCB0: + strb r0, [r3] + strb r0, [r6] + strb r0, [r2] + strb r0, [r5] + adds r3, #0x40 + adds r6, #0x40 + adds r2, #0x40 + adds r5, #0x40 + adds r4, #1 + cmp r4, #0x3f + bls _0807BCB0 + mov r0, r8 + ldrh r1, [r0, #0x20] + ldr r0, _0807BD10 @ =0x0000FFF0 + ands r0, r1 + lsls r0, r0, #2 + adds r3, r0, r7 + movs r1, #0xfc + lsls r1, r1, #4 + adds r6, r7, r1 + mov r1, ip + adds r2, r0, r1 + movs r5, #0xfc + lsls r5, r5, #4 + add r5, ip + movs r4, #0 + movs r0, #0xff +_0807BCE6: + strb r0, [r3] + adds r3, #1 + strb r0, [r6] + adds r6, #1 + strb r0, [r2] + adds r2, #1 + strb r0, [r5] + adds r5, #1 + adds r4, #1 + cmp r4, #0x3f + bls _0807BCE6 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807BD04: .4byte gUnk_03000BF0 +_0807BD08: .4byte gUnk_02027EB4 +_0807BD0C: .4byte gUnk_0200D654 +_0807BD10: .4byte 0x0000FFF0 + + thumb_func_start sub_0807BD14 +sub_0807BD14: @ 0x0807BD14 + push {r4, r5, lr} + adds r5, r1, #0 + movs r1, #0x2e + ldrsh r2, [r0, r1] + movs r3, #0x32 + ldrsh r1, [r0, r3] + adds r0, r2, #0 + adds r2, r5, #0 + bl sub_0807BEEC + adds r3, r0, #0 + cmp r3, #0xff + beq _0807BDB4 + ldr r1, _0807BD68 @ =gUnk_03000BF0 + movs r2, #0 + movs r0, #2 + strb r0, [r1, #2] + strb r2, [r1, #3] + movs r4, #1 + strh r4, [r1] + strb r3, [r1, #5] + strb r5, [r1, #0x10] + bl sub_08052E8C + adds r2, r0, #0 + ldr r1, _0807BD6C @ =gUnk_02033A90 + ldr r3, _0807BD70 @ =0x0000085C + adds r0, r1, r3 + str r2, [r0] + ldrb r0, [r1, #0xd] + ands r4, r0 + cmp r4, #0 + beq _0807BD98 + cmp r5, #1 + beq _0807BD7E + cmp r5, #1 + blo _0807BD74 + cmp r5, #2 + beq _0807BD86 + cmp r5, #3 + beq _0807BD90 + b _0807BD98 + .align 2, 0 +_0807BD68: .4byte gUnk_03000BF0 +_0807BD6C: .4byte gUnk_02033A90 +_0807BD70: .4byte 0x0000085C +_0807BD74: + ldrh r0, [r2, #6] + ldrh r1, [r2, #2] + subs r0, r0, r1 + strh r0, [r2, #6] + b _0807BD98 +_0807BD7E: + ldrh r0, [r2] + ldrh r1, [r2, #4] + adds r0, r0, r1 + b _0807BD96 +_0807BD86: + ldrh r0, [r2, #2] + ldrh r3, [r2, #6] + adds r0, r0, r3 + strh r0, [r2, #6] + b _0807BD98 +_0807BD90: + ldrh r0, [r2, #4] + ldrh r1, [r2] + subs r0, r0, r1 +_0807BD96: + strh r0, [r2, #4] +_0807BD98: + ldr r2, _0807BDB0 @ =gUnk_03001160 + ldrb r1, [r2, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2, #0x11] + bl sub_0805E5A8 + movs r0, #1 + b _0807BDB6 + .align 2, 0 +_0807BDB0: .4byte gUnk_03001160 +_0807BDB4: + movs r0, #0 +_0807BDB6: + pop {r4, r5, pc} + + thumb_func_start sub_0807BDB8 +sub_0807BDB8: @ 0x0807BDB8 + push {r4, r5, lr} + adds r3, r0, #0 + movs r5, #0xff + movs r0, #7 + ands r1, r0 + cmp r1, #7 + bls _0807BDC8 + b _0807BEE2 +_0807BDC8: + lsls r0, r1, #2 + ldr r1, _0807BDD4 @ =_0807BDD8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0807BDD4: .4byte _0807BDD8 +_0807BDD8: @ jump table + .4byte _0807BDF8 @ case 0 + .4byte _0807BE10 @ case 1 + .4byte _0807BE30 @ case 2 + .4byte _0807BE4C @ case 3 + .4byte _0807BE78 @ case 4 + .4byte _0807BE94 @ case 5 + .4byte _0807BEB4 @ case 6 + .4byte _0807BEC4 @ case 7 +_0807BDF8: + movs r1, #0x32 + ldrsh r0, [r3, r1] + ldr r1, _0807BE0C @ =gUnk_03000BF0 + ldrh r1, [r1, #8] + subs r0, r0, r1 + cmp r0, #9 + bhi _0807BEE2 + movs r5, #0 + b _0807BEE2 + .align 2, 0 +_0807BE0C: .4byte gUnk_03000BF0 +_0807BE10: + movs r2, #0x32 + ldrsh r0, [r3, r2] + ldr r2, _0807BE2C @ =gUnk_03000BF0 + ldrh r1, [r2, #8] + subs r0, r0, r1 + cmp r0, #9 + bhi _0807BE20 + movs r5, #0 +_0807BE20: + ldrh r0, [r2, #0x1e] + subs r0, #0xa + movs r4, #0x2e + ldrsh r1, [r3, r4] + ldrh r2, [r2, #6] + b _0807BE6A + .align 2, 0 +_0807BE2C: .4byte gUnk_03000BF0 +_0807BE30: + ldr r1, _0807BE48 @ =gUnk_03000BF0 + ldrh r2, [r1, #0x1e] + subs r2, #0xa + movs r4, #0x2e + ldrsh r0, [r3, r4] + ldrh r1, [r1, #6] + subs r0, r0, r1 + cmp r2, r0 + bhs _0807BEE2 + movs r5, #1 + b _0807BEE2 + .align 2, 0 +_0807BE48: .4byte gUnk_03000BF0 +_0807BE4C: + ldr r4, _0807BE74 @ =gUnk_03000BF0 + ldrh r0, [r4, #0x20] + subs r0, #0xa + movs r2, #0x32 + ldrsh r1, [r3, r2] + ldrh r2, [r4, #8] + subs r1, r1, r2 + cmp r0, r1 + bhs _0807BE60 + movs r5, #2 +_0807BE60: + ldrh r0, [r4, #0x1e] + subs r0, #0xa + movs r2, #0x2e + ldrsh r1, [r3, r2] + ldrh r2, [r4, #6] +_0807BE6A: + subs r1, r1, r2 + cmp r0, r1 + bhs _0807BEE2 + movs r5, #1 + b _0807BEE2 + .align 2, 0 +_0807BE74: .4byte gUnk_03000BF0 +_0807BE78: + ldr r1, _0807BE90 @ =gUnk_03000BF0 + ldrh r2, [r1, #0x20] + subs r2, #0xa + movs r4, #0x32 + ldrsh r0, [r3, r4] + ldrh r1, [r1, #8] + subs r0, r0, r1 + cmp r2, r0 + bhs _0807BEE2 + movs r5, #2 + b _0807BEE2 + .align 2, 0 +_0807BE90: .4byte gUnk_03000BF0 +_0807BE94: + ldr r4, _0807BEB0 @ =gUnk_03000BF0 + ldrh r0, [r4, #0x20] + subs r0, #0xa + movs r2, #0x32 + ldrsh r1, [r3, r2] + ldrh r2, [r4, #8] + subs r1, r1, r2 + cmp r0, r1 + bhs _0807BEA8 + movs r5, #2 +_0807BEA8: + movs r1, #0x2e + ldrsh r0, [r3, r1] + ldrh r1, [r4, #6] + b _0807BEDA + .align 2, 0 +_0807BEB0: .4byte gUnk_03000BF0 +_0807BEB4: + movs r2, #0x2e + ldrsh r0, [r3, r2] + ldr r1, _0807BEC0 @ =gUnk_03000BF0 + ldrh r1, [r1, #6] + b _0807BEDA + .align 2, 0 +_0807BEC0: .4byte gUnk_03000BF0 +_0807BEC4: + movs r4, #0x32 + ldrsh r0, [r3, r4] + ldr r2, _0807BEE8 @ =gUnk_03000BF0 + ldrh r1, [r2, #8] + subs r0, r0, r1 + cmp r0, #9 + bhi _0807BED4 + movs r5, #0 +_0807BED4: + movs r1, #0x2e + ldrsh r0, [r3, r1] + ldrh r1, [r2, #6] +_0807BEDA: + subs r0, r0, r1 + cmp r0, #9 + bhi _0807BEE2 + movs r5, #3 +_0807BEE2: + adds r0, r5, #0 + pop {r4, r5, pc} + .align 2, 0 +_0807BEE8: .4byte gUnk_03000BF0 + + thumb_func_start sub_0807BEEC +sub_0807BEEC: @ 0x0807BEEC + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r7, r1, #0 + ldr r0, _0807BF04 @ =gUnk_02033A90 + ldrb r1, [r0, #0xd] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0807BF0C + ldr r0, _0807BF08 @ =gUnk_03000BF0 + ldrb r0, [r0, #5] + b _0807BF7C + .align 2, 0 +_0807BF04: .4byte gUnk_02033A90 +_0807BF08: .4byte gUnk_03000BF0 +_0807BF0C: + cmp r2, #1 + beq _0807BF2C + cmp r2, #1 + blo _0807BF1E + cmp r2, #2 + beq _0807BF40 + cmp r2, #3 + beq _0807BF58 + b _0807BF7A +_0807BF1E: + ldr r0, _0807BF28 @ =gUnk_03000BF0 + ldrh r0, [r0, #8] + adds r7, r0, #0 + subs r7, #0x10 + b _0807BF60 + .align 2, 0 +_0807BF28: .4byte gUnk_03000BF0 +_0807BF2C: + ldr r0, _0807BF3C @ =gUnk_03000BF0 + ldrh r1, [r0, #6] + ldrh r0, [r0, #0x1e] + adds r1, r1, r0 + adds r6, r1, #0 + adds r6, #0x10 + b _0807BF60 + .align 2, 0 +_0807BF3C: .4byte gUnk_03000BF0 +_0807BF40: + ldr r0, _0807BF50 @ =gUnk_03000BF0 + ldrh r1, [r0, #8] + ldrh r0, [r0, #0x20] + adds r1, r1, r0 + adds r7, r1, #0 + adds r7, #0x10 + b _0807BF60 + .align 2, 0 +_0807BF50: .4byte gUnk_03000BF0 +_0807BF54: + adds r0, r4, #0 + b _0807BF7C +_0807BF58: + ldr r0, _0807BF80 @ =gUnk_03000BF0 + ldrh r0, [r0, #6] + adds r6, r0, #0 + subs r6, #0x10 +_0807BF60: + ldr r5, _0807BF84 @ =gUnk_02033ACC + movs r4, #0 +_0807BF64: + adds r0, r6, #0 + adds r1, r7, #0 + adds r2, r5, #0 + bl sub_0807BF88 + cmp r0, #0 + bne _0807BF54 + adds r4, #1 + adds r5, #0x20 + cmp r4, #0x3f + bls _0807BF64 +_0807BF7A: + movs r0, #0xff +_0807BF7C: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807BF80: .4byte gUnk_03000BF0 +_0807BF84: .4byte gUnk_02033ACC + + thumb_func_start sub_0807BF88 +sub_0807BF88: @ 0x0807BF88 + push {r4, lr} + adds r3, r2, #0 + ldrh r2, [r3, #4] + subs r0, r0, r2 + ldrh r2, [r3, #6] + subs r1, r1, r2 + movs r2, #0 + ldrh r4, [r3] + cmp r0, r4 + bhs _0807BFA4 + ldrh r3, [r3, #2] + cmp r1, r3 + bhs _0807BFA4 + movs r2, #1 +_0807BFA4: + adds r0, r2, #0 + pop {r4, pc} + + thumb_func_start sub_0807BFA8 +sub_0807BFA8: @ 0x0807BFA8 + ldr r2, _0807BFC4 @ =gUnk_03000BF0 + ldr r0, _0807BFC8 @ =gUnk_02033A90 + ldr r1, _0807BFCC @ =0x0000085C + adds r0, r0, r1 + ldr r1, [r0] + ldrh r0, [r1, #4] + strh r0, [r2, #6] + ldrh r0, [r1, #6] + strh r0, [r2, #8] + ldrh r0, [r1] + strh r0, [r2, #0x1e] + ldrh r0, [r1, #2] + strh r0, [r2, #0x20] + bx lr + .align 2, 0 +_0807BFC4: .4byte gUnk_03000BF0 +_0807BFC8: .4byte gUnk_02033A90 +_0807BFCC: .4byte 0x0000085C + + thumb_func_start sub_0807BFD0 +sub_0807BFD0: @ 0x0807BFD0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + bl sub_0801B170 + bl sub_0807BFA8 + ldr r7, _0807C0B8 @ =0x0000FFFF + ldr r6, _0807C0BC @ =gUnk_0202AEB4 + movs r0, #0x80 + lsls r0, r0, #5 + mov r8, r0 + adds r0, r7, #0 + adds r1, r6, #0 + mov r2, r8 + bl sub_0801D5EC + movs r5, #0 + strh r5, [r6] + ldr r4, _0807C0C0 @ =gUnk_02010654 + adds r0, r7, #0 + adds r1, r4, #0 + mov r2, r8 + bl sub_0801D5EC + strh r5, [r4] + ldr r2, _0807C0C4 @ =gUnk_03000BF0 + ldr r0, _0807C0C8 @ =gUnk_02033A90 + ldr r1, _0807C0CC @ =0x0000085C + adds r4, r0, r1 + ldr r0, [r4] + ldr r1, [r2, #0x34] + ldr r0, [r0, #8] + cmp r1, r0 + beq _0807C01C + str r0, [r2, #0x34] + bl sub_080197D4 +_0807C01C: + ldr r0, [r4] + ldr r0, [r0, #0x10] + bl sub_080197D4 + ldr r1, _0807C0D0 @ =gUnk_020176A0 + adds r0, r1, #0 + adds r0, #0x60 + movs r2, #0xa8 + lsls r2, r2, #2 + adds r1, r1, r2 + movs r2, #0x20 + bl sub_0801D66C + ldr r2, _0807C0D4 @ =gUnk_0200B644 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #0xe + orrs r0, r1 + str r0, [r2] + ldr r0, [r4] + ldr r0, [r0, #0x14] + cmp r0, #0 + beq _0807C04E + bl sub_0801B130 +_0807C04E: + adds r5, r6, #0 + movs r0, #0x80 + lsls r0, r0, #5 + adds r6, r5, r0 + adds r0, r7, #0 + adds r1, r6, #0 + mov r2, r8 + bl sub_0801D5EC + movs r2, #0 + ldr r3, _0807C0D8 @ =0x000007FF + adds r4, r7, #0 +_0807C066: + ldrh r0, [r5] + cmp r0, r3 + bhi _0807C078 + lsls r0, r0, #1 + adds r1, r0, r6 + ldrh r0, [r1] + cmp r0, r4 + bne _0807C078 + strh r2, [r1] +_0807C078: + adds r2, #1 + adds r5, #2 + cmp r2, r3 + ble _0807C066 + movs r2, #0x80 + lsls r2, r2, #5 + ldr r5, _0807C0C0 @ =gUnk_02010654 + adds r6, r5, r2 + ldr r4, _0807C0B8 @ =0x0000FFFF + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_0801D5EC + movs r2, #0 + ldr r3, _0807C0D8 @ =0x000007FF +_0807C096: + ldrh r0, [r5] + cmp r0, r3 + bhi _0807C0A8 + lsls r0, r0, #1 + adds r1, r0, r6 + ldrh r0, [r1] + cmp r0, r4 + bne _0807C0A8 + strh r2, [r1] +_0807C0A8: + adds r2, #1 + adds r5, #2 + cmp r2, r3 + ble _0807C096 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807C0B8: .4byte 0x0000FFFF +_0807C0BC: .4byte gUnk_0202AEB4 +_0807C0C0: .4byte gUnk_02010654 +_0807C0C4: .4byte gUnk_03000BF0 +_0807C0C8: .4byte gUnk_02033A90 +_0807C0CC: .4byte 0x0000085C +_0807C0D0: .4byte gUnk_020176A0 +_0807C0D4: .4byte gUnk_0200B644 +_0807C0D8: .4byte 0x000007FF + + thumb_func_start sub_0807C0DC +sub_0807C0DC: @ 0x0807C0DC + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + bl sub_0807BFA8 + ldr r7, _0807C158 @ =gUnk_03000BF0 + ldrb r1, [r7, #0xf] + movs r0, #0xfc + ands r0, r1 + strb r0, [r7, #0xf] + ldr r5, _0807C15C @ =gUnk_0200B654 + movs r6, #0x80 + lsls r6, r6, #6 + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0801D630 + adds r0, r5, r6 + movs r1, #0x80 + lsls r1, r1, #5 + bl sub_0801D630 + ldr r0, _0807C160 @ =gUnk_02019EE0 + movs r4, #0x80 + lsls r4, r4, #8 + adds r1, r4, #0 + bl sub_0801D630 + ldr r0, _0807C164 @ =gUnk_02002F00 + adds r1, r4, #0 + bl sub_0801D630 + ldr r0, _0807C168 @ =gUnk_02033A90 + ldr r1, _0807C16C @ =0x0000085C + adds r0, r0, r1 + ldr r0, [r0] + ldr r0, [r0, #0xc] + bl sub_080197D4 + ldr r2, _0807C170 @ =gUnk_02025EB0 + ldrh r1, [r2, #4] + ldr r0, _0807C174 @ =0x0000FFFF + cmp r1, r0 + beq _0807C178 + adds r0, r2, #4 + ldrh r1, [r7, #0x1e] + lsrs r1, r1, #4 + ldrh r2, [r7, #0x20] + lsrs r2, r2, #4 + bl sub_0807C8B0 + ldrh r1, [r7, #0x1e] + lsrs r1, r1, #4 + ldrh r2, [r7, #0x20] + lsrs r2, r2, #4 + adds r0, r5, #0 + bl sub_0807C8B0 + movs r2, #0 + mov sb, r2 + b _0807C184 + .align 2, 0 +_0807C158: .4byte gUnk_03000BF0 +_0807C15C: .4byte gUnk_0200B654 +_0807C160: .4byte gUnk_02019EE0 +_0807C164: .4byte gUnk_02002F00 +_0807C168: .4byte gUnk_02033A90 +_0807C16C: .4byte 0x0000085C +_0807C170: .4byte gUnk_02025EB0 +_0807C174: .4byte 0x0000FFFF +_0807C178: + adds r0, r2, #4 + adds r1, r6, #0 + bl sub_0801D630 + movs r3, #1 + mov sb, r3 +_0807C184: + ldr r0, _0807C1B0 @ =gUnk_030010A0 + adds r0, #0x2d + ldrb r0, [r0] + cmp r0, #0 + bne _0807C1BC + ldr r0, _0807C1B4 @ =gUnk_02025EB4 + movs r2, #0xc0 + lsls r2, r2, #6 + adds r1, r0, r2 + movs r4, #0x80 + lsls r4, r4, #6 + adds r2, r4, #0 + bl sub_0801D66C + ldr r0, _0807C1B8 @ =gUnk_0200B654 + movs r3, #0xc0 + lsls r3, r3, #6 + adds r1, r0, r3 + adds r2, r4, #0 + bl sub_0801D66C + b _0807C26C + .align 2, 0 +_0807C1B0: .4byte gUnk_030010A0 +_0807C1B4: .4byte gUnk_02025EB4 +_0807C1B8: .4byte gUnk_0200B654 +_0807C1BC: + cmp r0, #2 + bne _0807C26C + ldr r4, _0807C278 @ =gUnk_02025EB4 + movs r0, #0xb0 + lsls r0, r0, #8 + adds r0, r0, r4 + mov r8, r0 + movs r5, #0x80 + lsls r5, r5, #5 + adds r0, r4, #0 + mov r1, r8 + adds r2, r5, #0 + bl sub_0801D66C + movs r1, #0xc0 + lsls r1, r1, #6 + adds r6, r4, r1 + adds r0, r6, #0 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_0801D66C + mov r0, r8 + adds r1, r6, #0 + adds r2, r5, #0 + bl sub_0801D66C + adds r6, r4, r5 + adds r0, r6, #0 + mov r1, r8 + adds r2, r5, #0 + bl sub_0801D66C + movs r2, #0x80 + lsls r2, r2, #7 + adds r4, r4, r2 + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r5, #0 + bl sub_0801D66C + mov r0, r8 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_0801D66C + ldr r4, _0807C27C @ =gUnk_0200B654 + movs r3, #0xb0 + lsls r3, r3, #8 + adds r3, r3, r4 + mov r8, r3 + adds r0, r4, #0 + mov r1, r8 + adds r2, r5, #0 + bl sub_0801D66C + movs r0, #0xc0 + lsls r0, r0, #6 + adds r6, r4, r0 + adds r0, r6, #0 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_0801D66C + mov r0, r8 + adds r1, r6, #0 + adds r2, r5, #0 + bl sub_0801D66C + adds r6, r4, r5 + adds r0, r6, #0 + mov r1, r8 + adds r2, r5, #0 + bl sub_0801D66C + movs r1, #0x80 + lsls r1, r1, #7 + adds r4, r4, r1 + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r5, #0 + bl sub_0801D66C + mov r0, r8 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_0801D66C +_0807C26C: + mov r2, sb + cmp r2, #0 + bne _0807C280 + bl sub_0807BBE4 + b _0807C2A0 + .align 2, 0 +_0807C278: .4byte gUnk_02025EB4 +_0807C27C: .4byte gUnk_0200B654 +_0807C280: + ldr r0, _0807C2CC @ =gUnk_02027EB4 + ldrh r1, [r7, #0x1e] + lsrs r1, r1, #4 + ldrh r2, [r7, #0x20] + lsrs r2, r2, #4 + bl sub_0807C69C + ldr r0, _0807C2D0 @ =gUnk_0200D654 + ldrh r1, [r7, #0x1e] + lsrs r1, r1, #4 + ldrh r2, [r7, #0x20] + lsrs r2, r2, #4 + bl sub_0807C69C + bl sub_0807C460 +_0807C2A0: + bl sub_0807BC84 + ldr r4, _0807C2D4 @ =gUnk_02025EB0 + adds r0, r4, #0 + bl sub_08080B60 + ldr r5, _0807C2D8 @ =gUnk_0200B650 + adds r0, r5, #0 + bl sub_08080B60 + mov r3, sb + cmp r3, #0 + bne _0807C2E4 + ldr r0, _0807C2DC @ =gUnk_02019EE0 + adds r1, r4, #0 + bl sub_0801AB08 + ldr r0, _0807C2E0 @ =gUnk_02002F00 + adds r1, r5, #0 + bl sub_0801AB08 + b _0807C326 + .align 2, 0 +_0807C2CC: .4byte gUnk_02027EB4 +_0807C2D0: .4byte gUnk_0200D654 +_0807C2D4: .4byte gUnk_02025EB0 +_0807C2D8: .4byte gUnk_0200B650 +_0807C2DC: .4byte gUnk_02019EE0 +_0807C2E0: .4byte gUnk_02002F00 +_0807C2E4: + ldr r4, _0807C34C @ =gUnk_02019EE0 + movs r0, #0x80 + lsls r0, r0, #7 + adds r5, r4, r0 + adds r6, r0, #0 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + bl sub_0801D66C + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0807C5F4 + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0801D630 + ldr r4, _0807C350 @ =gUnk_02002F00 + adds r5, r4, r6 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + bl sub_0801D66C + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0807C5F4 + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0801D630 +_0807C326: + mov r1, sb + cmp r1, #0 + bne _0807C332 + ldrb r0, [r7, #4] + cmp r0, #0x71 + bne _0807C33A +_0807C332: + ldrb r1, [r7, #0xf] + movs r0, #1 + orrs r0, r1 + strb r0, [r7, #0xf] +_0807C33A: + ldrb r0, [r7, #4] + subs r0, #0x20 + cmp r0, #0x18 + bhi _0807C400 + lsls r0, r0, #2 + ldr r1, _0807C354 @ =_0807C358 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0807C34C: .4byte gUnk_02019EE0 +_0807C350: .4byte gUnk_02002F00 +_0807C354: .4byte _0807C358 +_0807C358: @ jump table + .4byte _0807C3BC @ case 0 + .4byte _0807C3E4 @ case 1 + .4byte _0807C3E4 @ case 2 + .4byte _0807C3E4 @ case 3 + .4byte _0807C3E4 @ case 4 + .4byte _0807C3E4 @ case 5 + .4byte _0807C400 @ case 6 + .4byte _0807C3E4 @ case 7 + .4byte _0807C3E4 @ case 8 + .4byte _0807C400 @ case 9 + .4byte _0807C400 @ case 10 + .4byte _0807C400 @ case 11 + .4byte _0807C400 @ case 12 + .4byte _0807C3BC @ case 13 + .4byte _0807C400 @ case 14 + .4byte _0807C400 @ case 15 + .4byte _0807C3E4 @ case 16 + .4byte _0807C400 @ case 17 + .4byte _0807C400 @ case 18 + .4byte _0807C400 @ case 19 + .4byte _0807C400 @ case 20 + .4byte _0807C400 @ case 21 + .4byte _0807C400 @ case 22 + .4byte _0807C400 @ case 23 + .4byte _0807C3E4 @ case 24 +_0807C3BC: + ldr r0, _0807C3D8 @ =gUnk_02025EB0 + ldr r2, [r0] + cmp r2, #0 + beq _0807C3CC + ldrh r1, [r2] + movs r0, #0x80 + orrs r0, r1 + strh r0, [r2] +_0807C3CC: + ldr r2, _0807C3DC @ =gUnk_03000F50 + ldrh r1, [r2] + ldr r0, _0807C3E0 @ =0x0000FDFF + ands r0, r1 + strh r0, [r2] + b _0807C444 + .align 2, 0 +_0807C3D8: .4byte gUnk_02025EB0 +_0807C3DC: .4byte gUnk_03000F50 +_0807C3E0: .4byte 0x0000FDFF +_0807C3E4: + ldr r0, _0807C3F8 @ =gUnk_0200B650 + ldr r1, [r0] + cmp r1, #0 + beq _0807C3F2 + ldr r0, _0807C3FC @ =gUnk_080B77C0 + ldrh r0, [r0, #4] + strh r0, [r1] +_0807C3F2: + bl sub_0807C5B0 + b _0807C444 + .align 2, 0 +_0807C3F8: .4byte gUnk_0200B650 +_0807C3FC: .4byte gUnk_080B77C0 +_0807C400: + ldr r0, _0807C44C @ =gUnk_02025EB0 + ldr r1, [r0] + cmp r1, #0 + beq _0807C40E + ldr r0, _0807C450 @ =gUnk_080B77C0 + ldrh r0, [r0] + strh r0, [r1] +_0807C40E: + ldr r0, _0807C454 @ =gUnk_0200B650 + ldr r1, [r0] + cmp r1, #0 + beq _0807C41C + ldr r0, _0807C450 @ =gUnk_080B77C0 + ldrh r0, [r0, #2] + strh r0, [r1] +_0807C41C: + ldr r2, _0807C458 @ =gUnk_03000F50 + ldrh r0, [r2] + movs r1, #0x80 + lsls r1, r1, #4 + ands r1, r0 + movs r3, #0xba + lsls r3, r3, #5 + adds r0, r3, #0 + movs r3, #0 + orrs r1, r0 + strh r1, [r2] + ldr r0, _0807C45C @ =gUnk_02033A90 + ldrb r0, [r0, #0xc] + cmp r0, #0 + beq _0807C444 + movs r3, #0xa0 + lsls r3, r3, #8 + adds r0, r3, #0 + orrs r1, r0 + strh r1, [r2] +_0807C444: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807C44C: .4byte gUnk_02025EB0 +_0807C450: .4byte gUnk_080B77C0 +_0807C454: .4byte gUnk_0200B650 +_0807C458: .4byte gUnk_03000F50 +_0807C45C: .4byte gUnk_02033A90 + + thumb_func_start sub_0807C460 +sub_0807C460: @ 0x0807C460 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + ldr r7, _0807C4E8 @ =gUnk_02025EB4 + ldr r6, _0807C4EC @ =gUnk_0200B654 + ldr r0, _0807C4F0 @ =gUnk_03000BF0 + ldrh r1, [r0, #0x1e] + lsrs r3, r1, #4 + ldrh r0, [r0, #0x20] + lsrs r0, r0, #4 + str r0, [sp] + movs r4, #0 + movs r1, #0 + cmp r1, r0 + bhs _0807C4DC + movs r0, #0x40 + subs r0, r0, r3 + lsls r0, r0, #1 + mov sb, r0 +_0807C48C: + movs r5, #0 + adds r1, #1 + mov sl, r1 + cmp r5, r3 + bhs _0807C4CA + ldr r0, _0807C4F4 @ =0x00003FFF + mov r8, r0 +_0807C49A: + ldrh r0, [r7] + cmp r0, r8 + bls _0807C4AC + adds r1, r4, #0 + movs r2, #1 + str r3, [sp, #4] + bl sub_0800015E + ldr r3, [sp, #4] +_0807C4AC: + ldrh r0, [r6] + cmp r0, r8 + bls _0807C4BE + adds r1, r4, #0 + movs r2, #2 + str r3, [sp, #4] + bl sub_0800015E + ldr r3, [sp, #4] +_0807C4BE: + adds r7, #2 + adds r6, #2 + adds r4, #1 + adds r5, #1 + cmp r5, r3 + blo _0807C49A +_0807C4CA: + add r7, sb + add r6, sb + adds r0, r4, #0 + adds r0, #0x40 + subs r4, r0, r3 + mov r1, sl + ldr r0, [sp] + cmp r1, r0 + blo _0807C48C +_0807C4DC: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807C4E8: .4byte gUnk_02025EB4 +_0807C4EC: .4byte gUnk_0200B654 +_0807C4F0: .4byte gUnk_03000BF0 +_0807C4F4: .4byte 0x00003FFF + + thumb_func_start sub_0807C4F8 +sub_0807C4F8: @ 0x0807C4F8 + push {r4, r5, r6, lr} + ldr r0, _0807C594 @ =gUnk_03000BF0 + ldrb r0, [r0, #4] + cmp r0, #0x71 + beq _0807C592 + ldr r0, _0807C598 @ =gUnk_02019EE0 + movs r4, #0x80 + lsls r4, r4, #8 + adds r1, r4, #0 + bl sub_0801D630 + ldr r0, _0807C59C @ =gUnk_02002F00 + adds r1, r4, #0 + bl sub_0801D630 + ldr r5, _0807C5A0 @ =gUnk_02022830 + ldr r0, _0807C5A4 @ =gUnk_02033A90 + ldr r1, _0807C5A8 @ =0x0000085C + adds r0, r0, r1 + ldr r0, [r0] + ldr r4, [r0, #0xc] + subs r4, #0xc +_0807C524: + adds r4, #0xc + ldr r1, [r4, #4] + ldr r0, _0807C598 @ =gUnk_02019EE0 + cmp r1, r0 + beq _0807C534 + ldr r0, _0807C59C @ =gUnk_02002F00 + cmp r1, r0 + bne _0807C54A +_0807C534: + ldr r0, [r4] + ldr r1, _0807C5AC @ =0x7FFFFFFF + ands r0, r1 + str r0, [r5] + ldr r0, [r4, #4] + str r0, [r5, #4] + ldr r0, [r4, #8] + str r0, [r5, #8] + adds r0, r5, #0 + bl sub_080197D4 +_0807C54A: + ldr r0, [r4] + cmp r0, #0 + blt _0807C524 + ldr r4, _0807C598 @ =gUnk_02019EE0 + movs r0, #0x80 + lsls r0, r0, #7 + adds r5, r4, r0 + adds r6, r0, #0 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + bl sub_0801D66C + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0807C5F4 + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0801D630 + ldr r4, _0807C59C @ =gUnk_02002F00 + adds r5, r4, r6 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + bl sub_0801D66C + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0807C5F4 + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0801D630 +_0807C592: + pop {r4, r5, r6, pc} + .align 2, 0 +_0807C594: .4byte gUnk_03000BF0 +_0807C598: .4byte gUnk_02019EE0 +_0807C59C: .4byte gUnk_02002F00 +_0807C5A0: .4byte gUnk_02022830 +_0807C5A4: .4byte gUnk_02033A90 +_0807C5A8: .4byte 0x0000085C +_0807C5AC: .4byte 0x7FFFFFFF + + thumb_func_start sub_0807C5B0 +sub_0807C5B0: @ 0x0807C5B0 + push {r4, r5, r6, lr} + ldr r5, _0807C5E8 @ =gUnk_0200D654 + movs r4, #0x80 + lsls r4, r4, #5 + movs r3, #0 + ldr r6, _0807C5EC @ =gUnk_03000BF0 + ldr r2, _0807C5F0 @ =gUnk_02027EB4 +_0807C5BE: + adds r0, r5, r3 + ldrb r0, [r0] + cmp r0, #0 + beq _0807C5D4 + cmp r0, #0xf + bhi _0807C5D2 + ldrb r1, [r2] + cmp r1, #0xf + bhi _0807C5D4 + orrs r0, r1 +_0807C5D2: + strb r0, [r2] +_0807C5D4: + adds r2, #1 + adds r3, #1 + cmp r3, r4 + blo _0807C5BE + ldrb r1, [r6, #0xf] + movs r0, #2 + orrs r0, r1 + strb r0, [r6, #0xf] + pop {r4, r5, r6, pc} + .align 2, 0 +_0807C5E8: .4byte gUnk_0200D654 +_0807C5EC: .4byte gUnk_03000BF0 +_0807C5F0: .4byte gUnk_02027EB4 + + thumb_func_start sub_0807C5F4 +sub_0807C5F4: @ 0x0807C5F4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r2, r5, #0 + movs r0, #0x20 + ldr r6, _0807C698 @ =gUnk_03000BF0 +_0807C5FE: + movs r3, #0 + subs r4, r0, #1 +_0807C602: + ldrh r0, [r1] + strh r0, [r2] + adds r1, #2 + adds r2, #2 + adds r3, #1 + cmp r3, #0x1f + bls _0807C602 + adds r2, #0xc0 + adds r0, r4, #0 + cmp r0, #0 + bne _0807C5FE + ldrh r0, [r6, #0x1e] + cmp r0, #0xff + bls _0807C63E + adds r2, r5, #0 + adds r2, #0x40 + movs r0, #0x20 +_0807C624: + movs r3, #0 + subs r4, r0, #1 +_0807C628: + ldrh r0, [r1] + strh r0, [r2] + adds r1, #2 + adds r2, #2 + adds r3, #1 + cmp r3, #0x1f + bls _0807C628 + adds r2, #0xc0 + adds r0, r4, #0 + cmp r0, #0 + bne _0807C624 +_0807C63E: + ldrh r0, [r6, #0x20] + cmp r0, #0xff + bls _0807C666 + movs r0, #0x80 + lsls r0, r0, #6 + adds r2, r5, r0 + movs r0, #0x20 +_0807C64C: + movs r3, #0 + subs r4, r0, #1 +_0807C650: + ldrh r0, [r1] + strh r0, [r2] + adds r1, #2 + adds r2, #2 + adds r3, #1 + cmp r3, #0x1f + bls _0807C650 + adds r2, #0xc0 + adds r0, r4, #0 + cmp r0, #0 + bne _0807C64C +_0807C666: + ldrh r0, [r6, #0x1e] + cmp r0, #0xff + bls _0807C694 + ldrh r0, [r6, #0x20] + cmp r0, #0xff + bls _0807C694 + movs r0, #0x81 + lsls r0, r0, #6 + adds r2, r5, r0 + movs r0, #0x20 +_0807C67A: + movs r3, #0 + subs r4, r0, #1 +_0807C67E: + ldrh r0, [r1] + strh r0, [r2] + adds r1, #2 + adds r2, #2 + adds r3, #1 + cmp r3, #0x1f + bls _0807C67E + adds r2, #0xc0 + adds r0, r4, #0 + cmp r0, #0 + bne _0807C67A +_0807C694: + pop {r4, r5, r6, pc} + .align 2, 0 +_0807C698: .4byte gUnk_03000BF0 + + thumb_func_start sub_0807C69C +sub_0807C69C: @ 0x0807C69C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov sb, r0 + adds r6, r1, #0 + mov r8, r2 + mov r0, r8 + muls r0, r6, r0 + add r0, sb + subs r2, r0, #1 + mov r0, r8 + subs r0, #1 + lsls r0, r0, #6 + add r0, sb + subs r1, r6, #1 + adds r4, r0, r1 + movs r5, #0 + cmp r5, r8 + bhs _0807C6EA +_0807C6C4: + movs r3, #0 + adds r7, r4, #0 + subs r7, #0x40 + subs r0, r2, r6 + mov ip, r0 + cmp r3, r6 + bhs _0807C6E0 +_0807C6D2: + subs r0, r4, r3 + subs r1, r2, r3 + ldrb r1, [r1] + strb r1, [r0] + adds r3, #1 + cmp r3, r6 + blo _0807C6D2 +_0807C6E0: + adds r4, r7, #0 + mov r2, ip + adds r5, #1 + cmp r5, r8 + blo _0807C6C4 +_0807C6EA: + movs r0, #0x40 + subs r7, r0, r6 + movs r5, #0 + mov r1, r8 + lsls r2, r1, #6 + mov r0, sb + adds r1, r0, r6 +_0807C6F8: + lsls r0, r5, #6 + adds r4, r1, r0 + movs r3, #0 + adds r6, r5, #1 + cmp r3, r7 + bhs _0807C710 + movs r5, #0 +_0807C706: + adds r0, r4, r3 + strb r5, [r0] + adds r3, #1 + cmp r3, r7 + blo _0807C706 +_0807C710: + adds r5, r6, #0 + cmp r5, #0x3f + bls _0807C6F8 + movs r0, #0x40 + mov r1, r8 + subs r7, r0, r1 + mov r0, sb + adds r4, r0, r2 + movs r5, #0 + cmp r5, r7 + bhs _0807C736 +_0807C726: + adds r0, r4, #0 + movs r1, #0x40 + bl sub_0801D630 + adds r4, #0x40 + adds r5, #1 + cmp r5, r7 + blo _0807C726 +_0807C736: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0807C740 +sub_0807C740: @ 0x0807C740 + push {r4, r5, lr} + bl sub_0807BFD0 + bl sub_0807C0DC + ldr r4, _0807C780 @ =gUnk_03000BF0 + ldr r2, [r4, #0x30] + cmp r2, #0 + beq _0807C788 + ldrh r1, [r2, #0x2e] + lsls r0, r1, #0x10 + cmp r0, #0 + bge _0807C764 + ldr r0, _0807C784 @ =0x00007FFF + ands r0, r1 + ldrh r1, [r4, #6] + subs r0, r0, r1 + strh r0, [r2, #0x2e] +_0807C764: + movs r0, #0x2e + ldrsh r3, [r2, r0] + ldrh r1, [r2, #0x32] + lsls r0, r1, #0x10 + cmp r0, #0 + bge _0807C77A + ldr r0, _0807C784 @ =0x00007FFF + ands r0, r1 + ldrh r1, [r4, #8] + subs r0, r0, r1 + strh r0, [r2, #0x32] +_0807C77A: + movs r0, #0x32 + ldrsh r5, [r2, r0] + b _0807C78C + .align 2, 0 +_0807C780: .4byte gUnk_03000BF0 +_0807C784: .4byte 0x00007FFF +_0807C788: + movs r3, #0 + movs r5, #0 +_0807C78C: + cmp r3, #0x77 + bgt _0807C794 + movs r0, #0 + b _0807C7A2 +_0807C794: + ldrh r1, [r4, #0x1e] + adds r0, r1, #0 + subs r0, #0x78 + cmp r0, r3 + blt _0807C7A0 + adds r0, r3, #0 +_0807C7A0: + subs r0, #0x78 +_0807C7A2: + strh r0, [r4, #0xa] + ldrh r1, [r4, #6] + ldrh r2, [r4, #0xa] + adds r0, r1, r2 + strh r0, [r4, #0xa] + cmp r5, #0x4f + bgt _0807C7B4 + movs r0, #0 + b _0807C7C2 +_0807C7B4: + ldrh r2, [r4, #0x20] + adds r0, r2, #0 + subs r0, #0x50 + cmp r0, r5 + blt _0807C7C0 + adds r0, r5, #0 +_0807C7C0: + subs r0, #0x50 +_0807C7C2: + strh r0, [r4, #0xc] + ldrh r0, [r4, #8] + ldrh r3, [r4, #0xc] + adds r0, r0, r3 + strh r0, [r4, #0xc] + ldr r2, [r4, #0x30] + cmp r2, #0 + beq _0807C7FC + ldrh r3, [r2, #0x2e] + adds r0, r1, r3 + strh r0, [r2, #0x2e] + ldr r1, [r4, #0x30] + ldrh r0, [r4, #8] + ldrh r2, [r1, #0x32] + adds r0, r0, r2 + strh r0, [r1, #0x32] + ldr r0, _0807C80C @ =gUnk_03000BF0 + ldrb r1, [r0, #0xf] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0807C7FC + ldr r0, [r4, #0x30] + adds r0, #0x38 + movs r1, #1 + strb r1, [r0] + ldr r0, [r4, #0x30] + bl sub_08016A04 +_0807C7FC: + ldrb r1, [r4, #0xf] + movs r0, #0xfb + ands r0, r1 + strb r0, [r4, #0xf] + bl sub_08080BC4 + pop {r4, r5, pc} + .align 2, 0 +_0807C80C: .4byte gUnk_03000BF0 + + thumb_func_start sub_0807C810 +sub_0807C810: @ 0x0807C810 + push {r4, r5, r6, lr} + bl sub_0807BFD0 + ldr r2, _0807C850 @ =gUnk_03004030 + ldr r6, _0807C854 @ =gUnk_03001160 + ldr r4, _0807C858 @ =gUnk_03000BF0 + ldr r3, [r2] + ldrh r1, [r3, #6] + movs r0, #0x3f + ands r0, r1 + lsls r0, r0, #4 + ldrh r1, [r4, #6] + adds r0, r0, r1 + ldrh r1, [r2, #4] + adds r1, r1, r0 + movs r5, #0 + strh r1, [r6, #0x2e] + ldrh r1, [r3, #6] + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r1 + lsrs r0, r0, #2 + ldrh r4, [r4, #8] + adds r0, r0, r4 + ldrh r1, [r2, #6] + adds r1, r1, r0 + strh r1, [r6, #0x32] + bl sub_080809D4 + ldr r0, _0807C85C @ =gUnk_02000070 + strb r5, [r0] + pop {r4, r5, r6, pc} + .align 2, 0 +_0807C850: .4byte gUnk_03004030 +_0807C854: .4byte gUnk_03001160 +_0807C858: .4byte gUnk_03000BF0 +_0807C85C: .4byte gUnk_02000070 + + thumb_func_start sub_0807C860 +sub_0807C860: @ 0x0807C860 + push {r4, lr} + ldr r0, _0807C88C @ =gUnk_030010A0 + adds r0, #0x2d + movs r1, #1 + strb r1, [r0] + ldr r0, _0807C890 @ =gUnk_02025EB4 + movs r2, #0xc0 + lsls r2, r2, #6 + adds r1, r0, r2 + movs r4, #0x80 + lsls r4, r4, #6 + adds r2, r4, #0 + bl sub_0801D66C + ldr r0, _0807C894 @ =gUnk_0200B654 + movs r2, #0xc0 + lsls r2, r2, #6 + adds r1, r0, r2 + adds r2, r4, #0 + bl sub_0801D66C + pop {r4, pc} + .align 2, 0 +_0807C88C: .4byte gUnk_030010A0 +_0807C890: .4byte gUnk_02025EB4 +_0807C894: .4byte gUnk_0200B654 + + thumb_func_start sub_0807C898 +sub_0807C898: @ 0x0807C898 + push {r4, r5, lr} + ldr r4, _0807C8AC @ =gUnk_030010A0 + adds r4, #0x2d + movs r5, #0 + movs r0, #2 + strb r0, [r4] + bl sub_0807C0DC + strb r5, [r4] + pop {r4, r5, pc} + .align 2, 0 +_0807C8AC: .4byte gUnk_030010A0 + + thumb_func_start sub_0807C8B0 +sub_0807C8B0: @ 0x0807C8B0 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov r8, r0 + adds r4, r1, #0 + mov ip, r2 + mov r0, ip + muls r0, r4, r0 + lsls r0, r0, #1 + add r0, r8 + subs r7, r0, #2 + mov r0, ip + subs r0, #1 + lsls r0, r0, #7 + add r0, r8 + lsls r3, r4, #1 + subs r1, r3, #2 + adds r0, r0, r1 + movs r5, #0 + cmp r5, ip + bhs _0807C906 + mov sb, r3 +_0807C8DE: + movs r2, #0 + adds r6, r0, #0 + subs r6, #0x80 + cmp r2, r4 + bhs _0807C8FA + adds r1, r7, #0 + adds r3, r0, #0 +_0807C8EC: + ldrh r0, [r1] + strh r0, [r3] + subs r1, #2 + subs r3, #2 + adds r2, #1 + cmp r2, r4 + blo _0807C8EC +_0807C8FA: + adds r0, r6, #0 + mov r1, sb + subs r7, r7, r1 + adds r5, #1 + cmp r5, ip + blo _0807C8DE +_0807C906: + movs r0, #0x40 + subs r6, r0, r4 + movs r5, #0 + lsls r0, r4, #1 + mov r2, ip + lsls r7, r2, #7 + mov r2, r8 + adds r1, r2, r0 +_0807C916: + lsls r0, r5, #7 + adds r0, r1, r0 + movs r2, #0 + adds r3, r5, #1 + cmp r2, r6 + bhs _0807C92E + movs r4, #0 +_0807C924: + strh r4, [r0] + adds r0, #2 + adds r2, #1 + cmp r2, r6 + blo _0807C924 +_0807C92E: + adds r5, r3, #0 + cmp r5, #0x3f + bls _0807C916 + movs r0, #0x40 + mov r1, ip + subs r6, r0, r1 + mov r2, r8 + adds r0, r2, r7 + movs r5, #0 + cmp r5, r6 + bhs _0807C956 + adds r4, r0, #0 +_0807C946: + adds r0, r4, #0 + movs r1, #0x80 + bl sub_0801D630 + adds r4, #0x80 + adds r5, #1 + cmp r5, r6 + blo _0807C946 +_0807C956: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0807C960 +sub_0807C960: @ 0x0807C960 + push {lr} + adds r2, r0, #0 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _0807C994 + ldr r0, _0807C984 @ =0x7FFFFFFF + ands r0, r1 + ldr r1, _0807C988 @ =gUnk_08324AE4 + adds r1, r0, r1 + lsrs r0, r2, #0x18 + cmp r0, #6 + bne _0807C98C + adds r0, r1, #0 + adds r1, r2, #0 + bl LZ77UnCompVram + b _0807C994 + .align 2, 0 +_0807C984: .4byte 0x7FFFFFFF +_0807C988: .4byte gUnk_08324AE4 +_0807C98C: + adds r0, r1, #0 + adds r1, r2, #0 + bl LZ77UnCompWram +_0807C994: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807C998 +sub_0807C998: @ 0x0807C998 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _0807C9CC @ =gUnk_0202CEB4 + ldr r1, [r5] + adds r0, r4, #0 + bl sub_0807C960 + ldr r0, _0807C9D0 @ =0xFFFFE000 + adds r4, r4, r0 + ldr r1, [r5, #4] + adds r0, r4, #0 + bl sub_0807C960 + ldr r4, _0807C9D4 @ =gUnk_02012654 + ldr r1, [r5, #8] + adds r0, r4, #0 + bl sub_0807C960 + ldr r0, _0807C9D0 @ =0xFFFFE000 + adds r4, r4, r0 + ldr r1, [r5, #0xc] + adds r0, r4, #0 + bl sub_0807C960 + pop {r4, r5, pc} + .align 2, 0 +_0807C9CC: .4byte gUnk_0202CEB4 +_0807C9D0: .4byte 0xFFFFE000 +_0807C9D4: .4byte gUnk_02012654 + + thumb_func_start sub_0807C9D8 +sub_0807C9D8: @ 0x0807C9D8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _0807CA0C @ =0x06004000 + ldr r1, [r5] + bl sub_0807C960 + movs r0, #0xc0 + lsls r0, r0, #0x13 + ldr r1, [r5, #4] + bl sub_0807C960 + ldr r0, _0807CA10 @ =0x06008000 + ldr r1, [r5, #8] + bl sub_0807C960 + ldr r4, _0807CA14 @ =gUnk_020176E0 + ldr r1, [r5, #0xc] + adds r0, r4, #0 + bl sub_0807C960 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0xd + bl sub_0801D754 + pop {r4, r5, pc} + .align 2, 0 +_0807CA0C: .4byte 0x06004000 +_0807CA10: .4byte 0x06008000 +_0807CA14: .4byte gUnk_020176E0 + + thumb_func_start sub_0807CA18 +sub_0807CA18: @ 0x0807CA18 + push {lr} + ldr r0, _0807CA7C @ =gUnk_02002A40 + mov ip, r0 + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + beq _0807CA66 + movs r2, #0 + mov r0, ip + strb r2, [r0] + movs r3, #1 + strb r3, [r0, #1] + strb r3, [r0, #8] + mov r1, ip + adds r1, #0xaa + movs r0, #0x18 + strb r0, [r1] + adds r1, #1 + strb r0, [r1] + subs r1, #0x23 + movs r0, #0x22 + strb r0, [r1] + adds r1, #1 + movs r0, #0x15 + strb r0, [r1] + mov r0, ip + adds r0, #0x8a + strb r2, [r0] + adds r0, #1 + strb r2, [r0] + adds r0, #5 + strb r3, [r0] + adds r1, #3 + movs r0, #0x90 + strh r0, [r1] + adds r1, #2 + movs r0, #0x38 + strh r0, [r1] +_0807CA66: + mov r1, ip + adds r1, #0x80 + ldrb r0, [r1] + cmp r0, #0 + bne _0807CA78 + ldr r0, _0807CA80 @ =gUnk_0811E470 + movs r2, #5 + bl sub_0801D66C +_0807CA78: + movs r0, #1 + pop {pc} + .align 2, 0 +_0807CA7C: .4byte gUnk_02002A40 +_0807CA80: .4byte gUnk_0811E470 + + thumb_func_start sub_0807CA84 +sub_0807CA84: @ 0x0807CA84 + adds r2, r0, #0 + lsrs r0, r2, #2 + ldr r1, _0807CA9C @ =gUnk_02002B32 + adds r0, r0, r1 + ldrb r0, [r0] + movs r1, #3 + ands r2, r1 + lsls r2, r2, #1 + asrs r0, r2 + ands r0, r1 + bx lr + .align 2, 0 +_0807CA9C: .4byte gUnk_02002B32 + + thumb_func_start sub_0807CAA0 +sub_0807CAA0: @ 0x0807CAA0 + push {r4, lr} + adds r3, r0, #0 + lsrs r4, r3, #2 + ldr r0, _0807CAC4 @ =gUnk_02002B32 + adds r4, r4, r0 + movs r0, #3 + ands r3, r0 + lsls r3, r3, #1 + lsls r1, r3 + ldrb r2, [r4] + lsls r0, r3 + ands r0, r2 + eors r2, r0 + orrs r2, r1 + strb r2, [r4] + lsrs r0, r3 + pop {r4, pc} + .align 2, 0 +_0807CAC4: .4byte gUnk_02002B32 + + thumb_func_start sub_0807CAC8 +sub_0807CAC8: @ 0x0807CAC8 + ldr r2, _0807CAE0 @ =gUnk_02002A40 + ldr r1, _0807CAE4 @ =gUnk_02033A90 + ldr r3, _0807CAE8 @ =0x0000047C + adds r2, r2, r3 + ldrb r1, [r1, #3] + adds r2, r2, r1 + movs r1, #1 + lsls r1, r0 + ldrb r0, [r2] + orrs r1, r0 + strb r1, [r2] + bx lr + .align 2, 0 +_0807CAE0: .4byte gUnk_02002A40 +_0807CAE4: .4byte gUnk_02033A90 +_0807CAE8: .4byte 0x0000047C + + thumb_func_start sub_0807CAEC +sub_0807CAEC: @ 0x0807CAEC + adds r2, r0, #0 + ldr r0, _0807CB04 @ =gUnk_02002A40 + ldr r1, _0807CB08 @ =gUnk_02033A90 + ldr r3, _0807CB0C @ =0x0000047C + adds r0, r0, r3 + ldrb r1, [r1, #3] + adds r0, r0, r1 + ldrb r0, [r0] + asrs r0, r2 + movs r1, #1 + ands r0, r1 + bx lr + .align 2, 0 +_0807CB04: .4byte gUnk_02002A40 +_0807CB08: .4byte gUnk_02033A90 +_0807CB0C: .4byte 0x0000047C + + thumb_func_start sub_0807CB10 +sub_0807CB10: @ 0x0807CB10 + push {lr} + adds r2, r0, #0 + ldr r0, _0807CB20 @ =gUnk_02002C9C + adds r2, r2, r1 + adds r1, r2, #0 + bl sub_0801D5A8 + pop {pc} + .align 2, 0 +_0807CB20: .4byte gUnk_02002C9C + + thumb_func_start sub_0807CB24 +sub_0807CB24: @ 0x0807CB24 + push {lr} + adds r2, r0, #0 + adds r3, r1, #0 + cmp r2, #0x11 + bhi _0807CB84 + lsls r0, r2, #2 + ldr r1, _0807CB38 @ =_0807CB3C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0807CB38: .4byte _0807CB3C +_0807CB3C: @ jump table + .4byte _0807CB84 @ case 0 + .4byte _0807CB88 @ case 1 + .4byte _0807CB88 @ case 2 + .4byte _0807CB88 @ case 3 + .4byte _0807CB88 @ case 4 + .4byte _0807CB88 @ case 5 + .4byte _0807CB88 @ case 6 + .4byte _0807CB88 @ case 7 + .4byte _0807CB88 @ case 8 + .4byte _0807CB88 @ case 9 + .4byte _0807CB88 @ case 10 + .4byte _0807CB88 @ case 11 + .4byte _0807CB88 @ case 12 + .4byte _0807CB88 @ case 13 + .4byte _0807CB84 @ case 14 + .4byte _0807CBA0 @ case 15 + .4byte _0807CBAE @ case 16 + .4byte _0807CBBC @ case 17 +_0807CB84: + movs r1, #0 + b _0807CBCA +_0807CB88: + ldr r0, _0807CB9C @ =gUnk_0811E454 + lsls r1, r2, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r3, #0 + bl sub_0807CB10 +_0807CB96: + adds r1, r0, #0 + b _0807CBCA + .align 2, 0 +_0807CB9C: .4byte gUnk_0811E454 +_0807CBA0: + adds r0, r3, #0 + bl sub_0807CA84 + cmp r0, #0 + beq _0807CB96 + movs r0, #1 + b _0807CB96 +_0807CBAE: + adds r0, r3, #0 + bl sub_0807CA84 + movs r1, #0 + cmp r0, #1 + bne _0807CBCA + b _0807CBC8 +_0807CBBC: + adds r0, r3, #0 + bl sub_0807CA84 + movs r1, #0 + cmp r0, #2 + bne _0807CBCA +_0807CBC8: + movs r1, #1 +_0807CBCA: + adds r0, r1, #0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807CBD0 +sub_0807CBD0: @ 0x0807CBD0 + push {lr} + adds r1, r0, #0 + ldr r0, _0807CBE0 @ =gUnk_02033A90 + ldrh r0, [r0, #4] + bl sub_0807CB10 + pop {pc} + .align 2, 0 +_0807CBE0: .4byte gUnk_02033A90 + + thumb_func_start sub_0807CBE4 +sub_0807CBE4: @ 0x0807CBE4 + push {lr} + ldr r3, _0807CC14 @ =0x000003FF + ands r3, r0 + movs r1, #0xf0 + lsls r1, r1, #6 + ands r1, r0 + lsrs r1, r1, #0xa + adds r2, r1, #1 + movs r1, #0xc0 + lsls r1, r1, #8 + ands r1, r0 + lsrs r1, r1, #0xe + cmp r1, #1 + beq _0807CC22 + cmp r1, #1 + blo _0807CC18 + cmp r1, #2 + bne _0807CC2C + adds r0, r3, #0 + adds r1, r2, #0 + bl sub_0807CC88 + b _0807CC2E + .align 2, 0 +_0807CC14: .4byte 0x000003FF +_0807CC18: + adds r0, r3, #0 + adds r1, r2, #0 + bl sub_0807CC60 + b _0807CC2E +_0807CC22: + adds r0, r3, #0 + adds r1, r2, #0 + bl sub_0807CC78 + b _0807CC2E +_0807CC2C: + movs r0, #0 +_0807CC2E: + pop {pc} + + thumb_func_start sub_0807CC30 +sub_0807CC30: @ 0x0807CC30 + push {lr} + adds r1, r0, #0 + movs r0, #0 + bl sub_0807CB10 + pop {pc} + + thumb_func_start sub_0807CC3C +sub_0807CC3C: @ 0x0807CC3C + push {lr} + adds r1, r0, #0 + ldr r0, _0807CC48 @ =gUnk_02034364 + bl sub_0801D5A8 + pop {pc} + .align 2, 0 +_0807CC48: .4byte gUnk_02034364 + + thumb_func_start sub_0807CC4C +sub_0807CC4C: @ 0x0807CC4C + push {lr} + adds r3, r0, #0 + ldr r0, _0807CC5C @ =gUnk_02002C9C + adds r3, r3, r1 + adds r1, r3, #0 + bl sub_08000F10 + pop {pc} + .align 2, 0 +_0807CC5C: .4byte gUnk_02002C9C + + thumb_func_start sub_0807CC60 +sub_0807CC60: @ 0x0807CC60 + push {lr} + adds r3, r0, #0 + adds r2, r1, #0 + ldr r0, _0807CC74 @ =gUnk_02033A90 + ldrh r0, [r0, #4] + adds r1, r3, #0 + bl sub_0807CC4C + pop {pc} + .align 2, 0 +_0807CC74: .4byte gUnk_02033A90 + + thumb_func_start sub_0807CC78 +sub_0807CC78: @ 0x0807CC78 + push {lr} + adds r3, r0, #0 + adds r2, r1, #0 + movs r0, #0 + adds r1, r3, #0 + bl sub_0807CC4C + pop {pc} + + thumb_func_start sub_0807CC88 +sub_0807CC88: @ 0x0807CC88 + push {lr} + adds r3, r0, #0 + adds r2, r1, #0 + ldr r0, _0807CC98 @ =gUnk_02034364 + adds r1, r3, #0 + bl sub_08000F10 + pop {pc} + .align 2, 0 +_0807CC98: .4byte gUnk_02034364 + + thumb_func_start sub_0807CC9C +sub_0807CC9C: @ 0x0807CC9C + push {lr} + adds r2, r0, #0 + cmp r1, #0 + beq _0807CCAC + ldr r0, _0807CCB0 @ =gUnk_02002C9C + adds r1, r2, r1 + bl sub_0801D5BC +_0807CCAC: + pop {pc} + .align 2, 0 +_0807CCB0: .4byte gUnk_02002C9C + + thumb_func_start sub_0807CCB4 +sub_0807CCB4: @ 0x0807CCB4 + push {lr} + adds r1, r0, #0 + ldr r0, _0807CCC4 @ =gUnk_02033A90 + ldrh r0, [r0, #4] + bl sub_0807CC9C + pop {pc} + .align 2, 0 +_0807CCC4: .4byte gUnk_02033A90 + + thumb_func_start sub_0807CCC8 +sub_0807CCC8: @ 0x0807CCC8 + push {lr} + adds r1, r0, #0 + cmp r1, #0 + beq _0807CD02 + ldr r2, _0807CCF0 @ =0x000003FF + ands r2, r1 + movs r0, #0xc0 + lsls r0, r0, #8 + ands r0, r1 + lsrs r0, r0, #0xe + cmp r0, #1 + beq _0807CCFC + cmp r0, #1 + blo _0807CCF4 + cmp r0, #2 + bne _0807CD02 + adds r0, r2, #0 + bl sub_0807CD10 + b _0807CD02 + .align 2, 0 +_0807CCF0: .4byte 0x000003FF +_0807CCF4: + adds r0, r2, #0 + bl sub_0807CCB4 + b _0807CD02 +_0807CCFC: + adds r0, r2, #0 + bl sub_0807CD04 +_0807CD02: + pop {pc} + + thumb_func_start sub_0807CD04 +sub_0807CD04: @ 0x0807CD04 + push {lr} + adds r1, r0, #0 + movs r0, #0 + bl sub_0807CC9C + pop {pc} + + thumb_func_start sub_0807CD10 +sub_0807CD10: @ 0x0807CD10 + push {lr} + adds r1, r0, #0 + ldr r0, _0807CD1C @ =gUnk_02034364 + bl sub_0801D5BC + pop {pc} + .align 2, 0 +_0807CD1C: .4byte gUnk_02034364 + + thumb_func_start sub_0807CD20 +sub_0807CD20: @ 0x0807CD20 + push {lr} + adds r2, r0, #0 + ldr r0, _0807CD30 @ =gUnk_02002C9C + adds r2, r2, r1 + adds r1, r2, #0 + bl sub_0801D5D4 + pop {pc} + .align 2, 0 +_0807CD30: .4byte gUnk_02002C9C + + thumb_func_start sub_0807CD34 +sub_0807CD34: @ 0x0807CD34 + push {lr} + adds r1, r0, #0 + ldr r0, _0807CD44 @ =gUnk_02033A90 + ldrh r0, [r0, #4] + bl sub_0807CD20 + pop {pc} + .align 2, 0 +_0807CD44: .4byte gUnk_02033A90 + + thumb_func_start sub_0807CD48 +sub_0807CD48: @ 0x0807CD48 + push {lr} + ldr r2, _0807CD6C @ =0x000003FF + ands r2, r0 + movs r1, #0xc0 + lsls r1, r1, #8 + ands r1, r0 + lsrs r1, r1, #0xe + cmp r1, #1 + beq _0807CD78 + cmp r1, #1 + blo _0807CD70 + cmp r1, #2 + bne _0807CD7E + adds r0, r2, #0 + bl sub_0807CD8C + b _0807CD7E + .align 2, 0 +_0807CD6C: .4byte 0x000003FF +_0807CD70: + adds r0, r2, #0 + bl sub_0807CD34 + b _0807CD7E +_0807CD78: + adds r0, r2, #0 + bl sub_0807CD80 +_0807CD7E: + pop {pc} + + thumb_func_start sub_0807CD80 +sub_0807CD80: @ 0x0807CD80 + push {lr} + adds r1, r0, #0 + movs r0, #0 + bl sub_0807CD20 + pop {pc} + + thumb_func_start sub_0807CD8C +sub_0807CD8C: @ 0x0807CD8C + push {lr} + adds r1, r0, #0 + ldr r0, _0807CD98 @ =gUnk_02034364 + bl sub_0801D5D4 + pop {pc} + .align 2, 0 +_0807CD98: .4byte gUnk_02034364 + + thumb_func_start sub_0807CD9C +sub_0807CD9C: @ 0x0807CD9C + push {lr} + bl sub_080530C8 + pop {pc} + + thumb_func_start sub_0807CDA4 +sub_0807CDA4: @ 0x0807CDA4 + push {lr} + ldr r2, _0807CDB8 @ =gUnk_0811E478 + ldr r1, _0807CDBC @ =gUnk_02000080 + ldrb r1, [r1, #7] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0807CDB8: .4byte gUnk_0811E478 +_0807CDBC: .4byte gUnk_02000080 + + thumb_func_start sub_0807CDC0 +sub_0807CDC0: @ 0x0807CDC0 + push {lr} + ldr r0, _0807CDE0 @ =gUnk_02021EE0 + ldrh r1, [r0, #0xa] + subs r1, #8 + strh r1, [r0, #0xa] + movs r1, #8 + ldrsh r0, [r0, r1] + cmp r0, #0 + bgt _0807CDDC + ldr r0, _0807CDE4 @ =gUnk_02000080 + movs r1, #8 + strh r1, [r0, #0xa] + movs r1, #1 + strb r1, [r0, #7] +_0807CDDC: + movs r0, #0 + pop {pc} + .align 2, 0 +_0807CDE0: .4byte gUnk_02021EE0 +_0807CDE4: .4byte gUnk_02000080 + + thumb_func_start sub_0807CDE8 +sub_0807CDE8: @ 0x0807CDE8 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r1, _0807CE08 @ =gUnk_02000080 + ldrh r0, [r1, #0xa] + cmp r0, #0 + bne _0807CE4C + bl sub_0805616C + cmp r4, #1 + beq _0807CE20 + cmp r4, #1 + blo _0807CE0C + cmp r4, #2 + beq _0807CE2E + b _0807CE38 + .align 2, 0 +_0807CE08: .4byte gUnk_02000080 +_0807CE0C: + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #4] + ldr r1, _0807CE1C @ =gUnk_02002A40 + bl sub_0807CF08 + b _0807CE36 + .align 2, 0 +_0807CE1C: .4byte gUnk_02002A40 +_0807CE20: + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #4] + bl sub_0807CF48 + movs r5, #1 + b _0807CE38 +_0807CE2E: + movs r0, #0x80 + lsls r0, r0, #0x12 + bl sub_0807CF10 +_0807CE36: + adds r5, r0, #0 +_0807CE38: + ldr r1, _0807CE48 @ =gUnk_02000080 + strh r5, [r1, #0xa] + movs r0, #2 + strb r0, [r1, #7] + bl sub_08056208 + b _0807CE50 + .align 2, 0 +_0807CE48: .4byte gUnk_02000080 +_0807CE4C: + subs r0, #1 + strh r0, [r1, #0xa] +_0807CE50: + movs r0, #0 + pop {r4, r5, pc} + + thumb_func_start sub_0807CE54 +sub_0807CE54: @ 0x0807CE54 + push {r4, r5, lr} + movs r4, #0 + ldr r2, _0807CE88 @ =gUnk_02021EE0 + ldrh r0, [r2, #0xa] + adds r0, #8 + strh r0, [r2, #0xa] + ldrh r3, [r2, #6] + movs r5, #6 + ldrsh r1, [r2, r5] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r1, r0 + bgt _0807CE84 + strh r3, [r2, #0xa] + bl sub_08050384 + ldr r0, _0807CE8C @ =gUnk_02000080 + movs r1, #0 + strb r1, [r0, #7] + ldrh r0, [r0, #0xa] + subs r4, #1 + cmp r0, #1 + bne _0807CE84 + movs r4, #1 +_0807CE84: + adds r0, r4, #0 + pop {r4, r5, pc} + .align 2, 0 +_0807CE88: .4byte gUnk_02021EE0 +_0807CE8C: .4byte gUnk_02000080 + + thumb_func_start sub_0807CE90 +sub_0807CE90: @ 0x0807CE90 + push {r4, r5, r6, lr} + movs r0, #0x40 + bl sub_080B1520 + movs r0, #4 + bl sub_0807D1C4 + adds r4, r0, #0 + movs r5, #0 + ldrh r0, [r4, #6] + ldr r6, _0807CF04 @ =gUnk_0811E484 + ldrh r2, [r4] + adds r1, r6, #0 + bl sub_0807D24C + cmp r0, #0 + bne _0807CEB4 + movs r5, #1 +_0807CEB4: + ldrh r0, [r4, #8] + ldrh r2, [r4] + adds r1, r6, #0 + bl sub_0807D24C + cmp r0, #0 + bne _0807CEC4 + adds r5, #2 +_0807CEC4: + cmp r5, #0 + beq _0807CEFE + cmp r5, #3 + bne _0807CEEA + movs r0, #5 + bl sub_0807CF68 + movs r0, #3 + bl sub_0807CF68 + movs r0, #2 + bl sub_0807CF68 + movs r0, #1 + bl sub_0807CF68 + movs r0, #0 + bl sub_0807CF68 +_0807CEEA: + ldrh r0, [r4, #8] + ldrh r2, [r4] + adds r1, r6, #0 + bl sub_0807D20C + ldrh r0, [r4, #6] + ldrh r2, [r4] + adds r1, r6, #0 + bl sub_0807D20C +_0807CEFE: + movs r0, #1 + pop {r4, r5, r6, pc} + .align 2, 0 +_0807CF04: .4byte gUnk_0811E484 + + thumb_func_start sub_0807CF08 +sub_0807CF08: @ 0x0807CF08 + push {lr} + bl sub_0807CF88 + pop {pc} + + thumb_func_start sub_0807CF10 +sub_0807CF10: @ 0x0807CF10 + push {lr} + adds r1, r0, #0 + movs r0, #3 + bl sub_0807CF88 + pop {pc} + + thumb_func_start sub_0807CF1C +sub_0807CF1C: @ 0x0807CF1C + push {lr} + adds r1, r0, #0 + movs r0, #5 + bl sub_0807CF88 + pop {pc} + + thumb_func_start sub_0807CF28 +sub_0807CF28: @ 0x0807CF28 + push {lr} + bl sub_0807D008 + pop {pc} + + thumb_func_start sub_0807CF30 +sub_0807CF30: @ 0x0807CF30 + push {lr} + adds r1, r0, #0 + movs r0, #3 + bl sub_0807D008 + pop {pc} + + thumb_func_start sub_0807CF3C +sub_0807CF3C: @ 0x0807CF3C + push {lr} + adds r1, r0, #0 + movs r0, #5 + bl sub_0807D008 + pop {pc} + + thumb_func_start sub_0807CF48 +sub_0807CF48: @ 0x0807CF48 + push {r4, r5, lr} + bl sub_0807D1C4 + adds r4, r0, #0 + ldrh r0, [r4, #4] + ldr r5, _0807CF64 @ =gUnk_0811E4AC + adds r1, r5, #0 + bl sub_0807D184 + ldrh r0, [r4, #2] + adds r1, r5, #0 + bl sub_0807D184 + pop {r4, r5, pc} + .align 2, 0 +_0807CF64: .4byte gUnk_0811E4AC + + thumb_func_start sub_0807CF68 +sub_0807CF68: @ 0x0807CF68 + push {r4, r5, lr} + bl sub_0807D1C4 + adds r4, r0, #0 + ldr r5, _0807CF84 @ =gUnk_0811E4A4 + ldrh r0, [r4, #4] + adds r1, r5, #0 + bl sub_0807D184 + ldrh r0, [r4, #2] + adds r1, r5, #0 + bl sub_0807D184 + pop {r4, r5, pc} + .align 2, 0 +_0807CF84: .4byte gUnk_0811E4A4 + + thumb_func_start sub_0807CF88 +sub_0807CF88: @ 0x0807CF88 + push {r4, r5, r6, r7, lr} + sub sp, #8 + adds r7, r1, #0 + bl sub_0807D1C4 + adds r6, r0, #0 + ldr r0, _0807D004 @ =0x4D435A33 + mov r5, sp + str r0, [sp, #4] + add r0, sp, #4 + movs r1, #4 + bl sub_0807D1A4 + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldrh r1, [r6] + adds r0, r7, #0 + bl sub_0807D1A4 + adds r4, r4, r0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + mov r0, sp + strh r4, [r0] + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + rsbs r4, r4, #0 + strh r4, [r5, #2] + ldrh r0, [r6, #6] + ldrh r2, [r6] + adds r1, r7, #0 + bl sub_0807D20C + adds r4, r0, #0 + cmp r4, #0 + beq _0807CFDC + ldrh r0, [r6, #2] + mov r1, sp + bl sub_0807D184 + adds r4, r0, #0 +_0807CFDC: + ldrh r0, [r6, #8] + ldrh r2, [r6] + adds r1, r7, #0 + bl sub_0807D20C + cmp r0, #0 + beq _0807CFF2 + ldrh r0, [r6, #4] + mov r1, sp + bl sub_0807D184 +_0807CFF2: + movs r1, #0 + cmp r4, #0 + bne _0807CFFC + cmp r0, #0 + beq _0807CFFE +_0807CFFC: + movs r1, #1 +_0807CFFE: + adds r0, r1, #0 + add sp, #8 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807D004: .4byte 0x4D435A33 + + thumb_func_start sub_0807D008 +sub_0807D008: @ 0x0807D008 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #0xc + adds r7, r1, #0 + bl sub_0807D1C4 + adds r5, r0, #0 + ldrh r0, [r5, #2] + add r4, sp, #4 + adds r1, r4, #0 + bl sub_0807D0EC + adds r6, r0, #0 + mov r8, r4 + cmp r6, #2 + bne _0807D048 + ldrh r0, [r5, #6] + ldrh r2, [r5] + adds r1, r7, #0 + bl sub_0807D1D8 + cmp r0, #0 + beq _0807D046 + ldrh r2, [r5] + mov r0, r8 + adds r1, r7, #0 + bl sub_0807D0A0 + cmp r0, #0 + bne _0807D072 +_0807D046: + movs r6, #0 +_0807D048: + ldrh r0, [r5, #4] + mov r1, r8 + bl sub_0807D0EC + adds r4, r0, #0 + cmp r4, #2 + bne _0807D078 + ldrh r0, [r5, #8] + ldrh r2, [r5] + adds r1, r7, #0 + bl sub_0807D1D8 + cmp r0, #0 + beq _0807D076 + ldrh r2, [r5] + mov r0, r8 + adds r1, r7, #0 + bl sub_0807D0A0 + cmp r0, #0 + beq _0807D076 +_0807D072: + movs r0, #1 + b _0807D098 +_0807D076: + movs r4, #0 +_0807D078: + movs r0, #0 + str r0, [sp] + ldrh r2, [r5] + lsrs r2, r2, #2 + movs r0, #0xa0 + lsls r0, r0, #0x13 + orrs r2, r0 + mov r0, sp + adds r1, r7, #0 + bl CpuSet + orrs r6, r4 + movs r0, #0 + cmp r6, #0 + bne _0807D098 + subs r0, #1 +_0807D098: + add sp, #0xc + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0807D0A0 +sub_0807D0A0: @ 0x0807D0A0 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + adds r0, r7, #4 + movs r1, #4 + bl sub_0807D1A4 + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0807D1A4 + adds r4, r4, r0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + ldrh r0, [r7] + cmp r0, r4 + bne _0807D0DE + lsls r0, r0, #0x10 + ldrh r1, [r7, #2] + rsbs r0, r0, #0 + lsrs r0, r0, #0x10 + cmp r1, r0 + bne _0807D0DE + ldr r1, [r7, #4] + ldr r0, _0807D0E4 @ =0x4D435A33 + cmp r1, r0 + beq _0807D0E8 +_0807D0DE: + movs r0, #0 + b _0807D0EA + .align 2, 0 +_0807D0E4: .4byte 0x4D435A33 +_0807D0E8: + movs r0, #1 +_0807D0EA: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0807D0EC +sub_0807D0EC: @ 0x0807D0EC + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r4, r1, #0 + movs r2, #8 + bl sub_0807D1D8 + cmp r0, #0 + bne _0807D100 + movs r5, #0 + b _0807D10C +_0807D100: + adds r0, r4, #0 + bl sub_0807D128 + adds r5, r0, #0 + cmp r5, #0 + bne _0807D124 +_0807D10C: + adds r0, r6, #0 + adds r0, #8 + adds r1, r4, #0 + movs r2, #8 + bl sub_0807D1D8 + cmp r0, #0 + beq _0807D124 + adds r0, r4, #0 + bl sub_0807D128 + adds r5, r0, #0 +_0807D124: + adds r0, r5, #0 + pop {r4, r5, r6, pc} + + thumb_func_start sub_0807D128 +sub_0807D128: @ 0x0807D128 + push {lr} + adds r2, r0, #0 + ldr r1, [r2, #4] + ldr r0, _0807D13C @ =0x4D435A33 + cmp r1, r0 + beq _0807D150 + cmp r1, r0 + bhi _0807D144 + ldr r0, _0807D140 @ =0x466C6544 + b _0807D146 + .align 2, 0 +_0807D13C: .4byte 0x4D435A33 +_0807D140: .4byte 0x466C6544 +_0807D144: + ldr r0, _0807D14C @ =0x54494E49 +_0807D146: + cmp r1, r0 + beq _0807D164 + b _0807D17C + .align 2, 0 +_0807D14C: .4byte 0x54494E49 +_0807D150: + ldrh r0, [r2] + ldrh r1, [r2, #2] + adds r0, r0, r1 + movs r1, #0x80 + lsls r1, r1, #9 + movs r3, #0 + cmp r0, r1 + bne _0807D17E + movs r3, #2 + b _0807D17E +_0807D164: + movs r3, #0 + ldrh r0, [r2] + ldrh r1, [r2, #2] + ands r1, r0 + ldr r0, _0807D178 @ =0x0000FFFF + cmp r1, r0 + bne _0807D17E + movs r3, #1 + b _0807D17E + .align 2, 0 +_0807D178: .4byte 0x0000FFFF +_0807D17C: + movs r3, #0 +_0807D17E: + adds r0, r3, #0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807D184 +sub_0807D184: @ 0x0807D184 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #8 + bl sub_0807D20C + cmp r0, #0 + bne _0807D1A0 + adds r0, r4, #0 + adds r0, #8 + adds r1, r5, #0 + movs r2, #8 + bl sub_0807D20C +_0807D1A0: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0807D1A4 +sub_0807D1A4: @ 0x0807D1A4 + push {lr} + adds r2, r0, #0 + movs r3, #0 + cmp r1, #0 + beq _0807D1BC +_0807D1AE: + ldrh r0, [r2] + eors r0, r1 + adds r3, r3, r0 + adds r2, #2 + subs r1, #2 + cmp r1, #0 + bne _0807D1AE +_0807D1BC: + lsls r0, r3, #0x10 + lsrs r0, r0, #0x10 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807D1C4 +sub_0807D1C4: @ 0x0807D1C4 + adds r1, r0, #0 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0807D1D4 @ =gUnk_0811E4BC + adds r0, r0, r1 + bx lr + .align 2, 0 +_0807D1D4: .4byte gUnk_0811E4BC + + thumb_func_start sub_0807D1D8 +sub_0807D1D8: @ 0x0807D1D8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + lsrs r4, r2, #3 + adds r0, r4, #0 + lsrs r5, r5, #3 + b _0807D200 +_0807D1E6: + lsls r0, r5, #0x10 + lsrs r0, r0, #0x10 + adds r1, r6, #0 + bl sub_080B15E8 + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0807D1FA + movs r0, #0 + b _0807D208 +_0807D1FA: + adds r5, #1 + adds r6, #8 + adds r0, r4, #0 +_0807D200: + subs r4, #1 + cmp r0, #0 + bne _0807D1E6 + movs r0, #1 +_0807D208: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0807D20C +sub_0807D20C: @ 0x0807D20C + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r7, r1, #0 + lsrs r5, r2, #3 + adds r0, r5, #0 + lsrs r6, r6, #3 + b _0807D242 +_0807D21A: + lsls r0, r6, #0x10 + lsrs r4, r0, #0x10 + adds r0, r4, #0 + adds r1, r7, #0 + bl sub_080B18DC + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0807D23C + adds r0, r4, #0 + ldr r1, _0807D238 @ =gUnk_0811E4B4 + bl sub_080B18DC + movs r0, #0 + b _0807D24A + .align 2, 0 +_0807D238: .4byte gUnk_0811E4B4 +_0807D23C: + adds r6, #1 + adds r7, #8 + adds r0, r5, #0 +_0807D242: + subs r5, #1 + cmp r0, #0 + bne _0807D21A + movs r0, #1 +_0807D24A: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0807D24C +sub_0807D24C: @ 0x0807D24C + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + lsrs r4, r2, #3 + adds r0, r4, #0 + lsrs r5, r5, #3 + b _0807D274 +_0807D25A: + lsls r0, r5, #0x10 + lsrs r0, r0, #0x10 + adds r1, r6, #0 + bl sub_080B180C + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0807D26E + movs r0, #0 + b _0807D27C +_0807D26E: + adds r5, #1 + adds r6, #8 + adds r0, r4, #0 +_0807D274: + subs r4, #1 + cmp r0, #0 + bne _0807D25A + movs r0, #1 +_0807D27C: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0807D280 +sub_0807D280: @ 0x0807D280 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r6, r0, #0 + adds r5, r1, #0 + ldr r1, _0807D2B0 @ =gUnk_03000BF0 + movs r0, #0xa + ldrsh r2, [r1, r0] + ldrh r0, [r1, #6] + subs r3, r2, r0 + movs r0, #0xc + ldrsh r2, [r1, r0] + ldrh r0, [r1, #8] + subs r4, r2, r0 + ldrb r0, [r1, #0x10] + mov r8, r1 + cmp r0, #1 + beq _0807D330 + cmp r0, #1 + bgt _0807D2B4 + cmp r0, #0 + beq _0807D2BA + b _0807D404 + .align 2, 0 +_0807D2B0: .4byte gUnk_03000BF0 +_0807D2B4: + cmp r0, #2 + beq _0807D3A0 + b _0807D404 +_0807D2BA: + mov r2, r8 + ldrh r1, [r2, #0x18] + movs r0, #3 + ands r0, r1 + cmp r0, #1 + beq _0807D2C8 + b _0807D462 +_0807D2C8: + movs r2, #0x1c + asrs r3, r3, #4 + mov sb, r3 + movs r3, #0x40 + adds r3, r3, r5 + mov ip, r3 + ldr r4, _0807D328 @ =0x040000D4 + ldr r7, _0807D32C @ =0x80000020 + movs r0, #0xe8 + lsls r0, r0, #3 + adds r3, r5, r0 + subs r0, #0x80 + adds r1, r5, r0 +_0807D2E2: + str r1, [r4] + str r3, [r4, #4] + str r7, [r4, #8] + ldr r0, [r4, #8] + subs r3, #0x40 + subs r1, #0x40 + subs r2, #1 + cmp r2, #0 + bgt _0807D2E2 + mov r1, r8 + ldrh r0, [r1, #0x20] + lsrs r0, r0, #4 + subs r0, #1 + ldrh r1, [r1, #0x18] + lsrs r1, r1, #2 + subs r0, r0, r1 + lsls r0, r0, #8 + mov r2, sb + lsls r1, r2, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + adds r6, r6, r0 + ldr r0, _0807D328 @ =0x040000D4 + str r6, [r0] + str r5, [r0, #4] + ldr r2, _0807D32C @ =0x80000020 + str r2, [r0, #8] + ldr r1, [r0, #8] + movs r3, #0x80 + lsls r3, r3, #1 + adds r1, r6, r3 + str r1, [r0] + mov r1, ip + b _0807D3F0 + .align 2, 0 +_0807D328: .4byte 0x040000D4 +_0807D32C: .4byte 0x80000020 +_0807D330: + mov r2, r8 + ldrh r3, [r2, #0x18] + movs r0, #3 + ands r0, r3 + cmp r0, #0 + beq _0807D33E + b _0807D462 +_0807D33E: + asrs r7, r4, #4 + movs r0, #0x3c + adds r0, r0, r5 + mov sb, r0 + cmp r3, #0 + beq _0807D36A + ldr r4, _0807D398 @ =0x040000D4 + ldr r1, _0807D39C @ =0x8000001E + mov ip, r1 + adds r3, r5, #4 + adds r1, r5, #0 + movs r2, #0x15 +_0807D356: + str r3, [r4] + str r1, [r4, #4] + mov r0, ip + str r0, [r4, #8] + ldr r0, [r4, #8] + adds r3, #0x40 + adds r1, #0x40 + subs r2, #1 + cmp r2, #0 + bge _0807D356 +_0807D36A: + lsls r1, r7, #8 + mov r2, r8 + ldrh r0, [r2, #0x18] + lsrs r0, r0, #2 + lsls r0, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #1 + adds r6, r6, r1 + mov r5, sb + movs r1, #0x80 + lsls r1, r1, #1 + movs r2, #0x15 +_0807D382: + ldrh r0, [r6] + strh r0, [r5] + ldrh r0, [r6, #2] + strh r0, [r5, #2] + adds r5, #0x40 + adds r6, r6, r1 + subs r2, #1 + cmp r2, #0 + bge _0807D382 + b _0807D462 + .align 2, 0 +_0807D398: .4byte 0x040000D4 +_0807D39C: .4byte 0x8000001E +_0807D3A0: + mov r0, r8 + ldrh r1, [r0, #0x18] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _0807D462 + lsls r2, r1, #0x10 + cmp r2, #0 + beq _0807D3C2 + ldr r1, _0807D3F8 @ =0x040000D4 + adds r0, r5, #0 + adds r0, #0x80 + str r0, [r1] + str r5, [r1, #4] + ldr r0, _0807D3FC @ =0x800003C0 + str r0, [r1, #8] + ldr r0, [r1, #8] +_0807D3C2: + lsrs r0, r2, #0x12 + lsls r0, r0, #8 + asrs r1, r3, #4 + lsls r1, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + adds r6, r6, r0 + ldr r0, _0807D3F8 @ =0x040000D4 + str r6, [r0] + movs r2, #0xa0 + lsls r2, r2, #3 + adds r1, r5, r2 + str r1, [r0, #4] + ldr r2, _0807D400 @ =0x80000020 + str r2, [r0, #8] + ldr r1, [r0, #8] + movs r3, #0x80 + lsls r3, r3, #1 + adds r1, r6, r3 + str r1, [r0] + movs r3, #0xa8 + lsls r3, r3, #3 + adds r1, r5, r3 +_0807D3F0: + str r1, [r0, #4] + str r2, [r0, #8] + ldr r0, [r0, #8] + b _0807D462 + .align 2, 0 +_0807D3F8: .4byte 0x040000D4 +_0807D3FC: .4byte 0x800003C0 +_0807D400: .4byte 0x80000020 +_0807D404: + mov r0, r8 + ldrh r1, [r0, #0x18] + movs r0, #3 + ands r0, r1 + cmp r0, #1 + bne _0807D462 + movs r2, #0 + asrs r7, r4, #4 + mov ip, r5 +_0807D416: + movs r1, #0x1d + mov r3, ip + adds r3, #0x3a +_0807D41C: + ldrh r0, [r3] + strh r0, [r3, #4] + subs r3, #2 + subs r1, #1 + cmp r1, #0 + bge _0807D41C + movs r1, #0x40 + add ip, r1 + adds r2, #1 + cmp r2, #0x15 + ble _0807D416 + lsls r0, r7, #8 + mov r2, r8 + ldrh r1, [r2, #0x1e] + lsrs r1, r1, #4 + subs r1, #1 + ldrh r2, [r2, #0x18] + lsrs r2, r2, #2 + subs r1, r1, r2 + lsls r1, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + adds r6, r6, r0 + movs r1, #0x80 + lsls r1, r1, #1 + movs r2, #0x15 +_0807D450: + ldrh r0, [r6] + strh r0, [r5] + ldrh r0, [r6, #2] + strh r0, [r5, #2] + adds r5, #0x40 + adds r6, r6, r1 + subs r2, #1 + cmp r2, #0 + bge _0807D450 +_0807D462: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0807D46C +sub_0807D46C: @ 0x0807D46C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + str r0, [sp] + str r1, [sp, #4] + ldr r0, _0807D494 @ =gUnk_03000BF0 + ldrb r2, [r0, #0x10] + mov sb, r0 + cmp r2, #1 + bne _0807D488 + b _0807D5C4 +_0807D488: + cmp r2, #1 + bgt _0807D498 + cmp r2, #0 + beq _0807D4A4 + b _0807D6CC + .align 2, 0 +_0807D494: .4byte gUnk_03000BF0 +_0807D498: + cmp r2, #2 + beq _0807D4A4 + cmp r2, #3 + bne _0807D4A2 + b _0807D5C4 +_0807D4A2: + b _0807D6CC +_0807D4A4: + mov r1, sb + movs r2, #0xa + ldrsh r0, [r1, r2] + ldrh r1, [r1, #6] + subs r5, r0, r1 + cmp r5, #7 + ble _0807D4B4 + subs r5, #8 +_0807D4B4: + mov r3, sb + ldr r0, [r3, #0x30] + movs r2, #0x2e + ldrsh r0, [r0, r2] + subs r0, r0, r1 + subs r3, r0, #4 + mov r8, r3 + cmp r3, #7 + ble _0807D4CA + subs r0, #0xc + mov r8, r0 +_0807D4CA: + mov r0, sb + movs r2, #0xc + ldrsh r1, [r0, r2] + ldrh r0, [r0, #8] + subs r1, r1, r0 + mov ip, r1 + cmp r1, #7 + ble _0807D4E0 + movs r3, #8 + rsbs r3, r3, #0 + add ip, r3 +_0807D4E0: + mov r1, sb + ldrh r0, [r1, #0x18] + lsls r0, r0, #3 + mov r2, r8 + subs r0, r2, r0 + adds r7, r5, #0 + adds r7, #0xf8 + cmp r0, r5 + blt _0807D548 + mov r1, ip + asrs r3, r1, #3 + lsls r1, r3, #8 + ldr r2, [sp] + adds r1, r2, r1 + asrs r0, r0, #3 + lsls r2, r0, #1 + adds r4, r1, r2 + movs r1, #0x1f + ands r0, r1 + lsls r0, r0, #1 + ldr r2, [sp, #4] + adds r6, r2, r0 + ands r3, r1 + lsls r2, r3, #5 + mov r3, sb + ldrh r0, [r3, #0x20] + lsls r1, r0, #0x10 + lsrs r0, r1, #0x10 + cmp r0, #0xaf + bhi _0807D520 + lsrs r3, r1, #0x13 + b _0807D522 +_0807D520: + movs r3, #0x16 +_0807D522: + adds r7, r5, #0 + adds r7, #0xf8 + cmp r3, #0 + ble _0807D548 + ldr r0, _0807D55C @ =0x000003FF + mov sl, r0 +_0807D52E: + lsls r0, r2, #1 + adds r0, r0, r6 + ldrh r1, [r4] + strh r1, [r0] + movs r1, #0x80 + lsls r1, r1, #1 + adds r4, r4, r1 + adds r2, #0x20 + mov r0, sl + ands r2, r0 + subs r3, #1 + cmp r3, #0 + bgt _0807D52E +_0807D548: + mov r1, sb + ldrh r0, [r1, #0x18] + adds r0, #1 + lsls r0, r0, #3 + add r0, r8 + ldrh r2, [r1, #0x1e] + cmp r7, r2 + blt _0807D560 + adds r1, r7, #0 + b _0807D566 + .align 2, 0 +_0807D55C: .4byte 0x000003FF +_0807D560: + movs r3, #0x80 + lsls r3, r3, #1 + adds r1, r5, r3 +_0807D566: + cmp r0, r1 + blt _0807D56C + b _0807D6CC +_0807D56C: + mov r1, ip + asrs r3, r1, #3 + lsls r1, r3, #8 + ldr r2, [sp] + adds r1, r2, r1 + asrs r0, r0, #3 + lsls r2, r0, #1 + adds r4, r1, r2 + movs r1, #0x1f + ands r0, r1 + lsls r0, r0, #1 + ldr r2, [sp, #4] + adds r6, r2, r0 + ands r3, r1 + lsls r2, r3, #5 + mov r3, sb + ldrh r0, [r3, #0x20] + lsls r1, r0, #0x10 + lsrs r0, r1, #0x10 + cmp r0, #0xaf + bhi _0807D59A + lsrs r3, r1, #0x13 + b _0807D59C +_0807D59A: + movs r3, #0x16 +_0807D59C: + cmp r3, #0 + bgt _0807D5A2 + b _0807D6CC +_0807D5A2: + movs r7, #0x80 + lsls r7, r7, #1 + ldr r5, _0807D5C0 @ =0x000003FF +_0807D5A8: + lsls r0, r2, #1 + adds r0, r0, r6 + ldrh r1, [r4] + strh r1, [r0] + adds r4, r4, r7 + adds r2, #0x20 + ands r2, r5 + subs r3, #1 + cmp r3, #0 + bgt _0807D5A8 + b _0807D6CC + .align 2, 0 +_0807D5C0: .4byte 0x000003FF +_0807D5C4: + mov r1, sb + movs r2, #0xc + ldrsh r0, [r1, r2] + ldrh r2, [r1, #8] + subs r5, r0, r2 + cmp r5, #7 + ble _0807D5D4 + subs r5, #8 +_0807D5D4: + mov r3, sb + movs r0, #0xa + ldrsh r1, [r3, r0] + ldrh r0, [r3, #6] + subs r1, r1, r0 + mov r8, r1 + cmp r1, #7 + ble _0807D5EA + movs r1, #8 + rsbs r1, r1, #0 + add r8, r1 +_0807D5EA: + mov r3, sb + ldr r0, [r3, #0x30] + movs r1, #0x32 + ldrsh r0, [r0, r1] + subs r0, r0, r2 + subs r2, r0, #4 + mov ip, r2 + cmp r2, #7 + ble _0807D600 + subs r0, #0xc + mov ip, r0 +_0807D600: + mov r3, sb + ldrh r0, [r3, #0x18] + lsls r0, r0, #3 + mov r1, ip + subs r0, r1, r0 + adds r7, r5, #0 + adds r7, #0xa8 + movs r2, #0xb0 + adds r2, r2, r5 + mov sl, r2 + cmp r0, r5 + blt _0807D66A + asrs r2, r0, #3 + lsls r0, r2, #8 + ldr r3, [sp] + adds r0, r3, r0 + mov r1, r8 + asrs r3, r1, #3 + lsls r1, r3, #1 + adds r4, r0, r1 + movs r0, #0x1f + ands r2, r0 + lsls r2, r2, #6 + ldr r1, [sp, #4] + adds r6, r1, r2 + adds r2, r0, #0 + ands r2, r3 + mov r3, sb + ldrh r0, [r3, #0x1e] + lsls r1, r0, #0x10 + lsrs r0, r1, #0x10 + cmp r0, #0xff + bhi _0807D646 + lsrs r3, r1, #0x13 + b _0807D648 +_0807D646: + movs r3, #0x20 +_0807D648: + adds r7, r5, #0 + adds r7, #0xa8 + adds r5, #0xb0 + mov sl, r5 + cmp r3, #0 + ble _0807D66A + movs r5, #0x1f +_0807D656: + lsls r0, r2, #1 + adds r0, r0, r6 + ldrh r1, [r4] + strh r1, [r0] + adds r4, #2 + adds r2, #1 + ands r2, r5 + subs r3, #1 + cmp r3, #0 + bgt _0807D656 +_0807D66A: + mov r1, sb + ldrh r0, [r1, #0x18] + adds r0, #1 + lsls r0, r0, #3 + add r0, ip + mov r2, sl + ldrh r1, [r1, #0x20] + cmp r7, r1 + blt _0807D67E + adds r2, r7, #0 +_0807D67E: + cmp r0, r2 + bge _0807D6CC + asrs r2, r0, #3 + lsls r0, r2, #8 + ldr r1, [sp] + adds r0, r1, r0 + mov r1, r8 + asrs r3, r1, #3 + lsls r1, r3, #1 + adds r4, r0, r1 + movs r0, #0x1f + ands r2, r0 + lsls r2, r2, #6 + ldr r1, [sp, #4] + adds r6, r1, r2 + adds r2, r0, #0 + ands r2, r3 + mov r3, sb + ldrh r0, [r3, #0x1e] + lsls r1, r0, #0x10 + lsrs r0, r1, #0x10 + cmp r0, #0xff + bhi _0807D6B0 + lsrs r3, r1, #0x13 + b _0807D6B2 +_0807D6B0: + movs r3, #0x20 +_0807D6B2: + cmp r3, #0 + ble _0807D6CC + movs r5, #0x1f +_0807D6B8: + lsls r0, r2, #1 + adds r0, r0, r6 + ldrh r1, [r4] + strh r1, [r0] + adds r4, #2 + adds r2, #1 + ands r2, r5 + subs r3, #1 + cmp r3, #0 + bgt _0807D6B8 +_0807D6CC: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0807D6D8 +sub_0807D6D8: @ 0x0807D6D8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x44 + str r0, [sp] + str r1, [sp, #4] + ldr r5, _0807D8BC @ =gUnk_03000BF0 + ldrh r0, [r5, #0x18] + cmp r0, #0 + bne _0807D6F2 + b _0807DA62 +_0807D6F2: + ldrh r0, [r5, #0x1a] + cmp r0, #0 + bne _0807D6FA + b _0807DA62 +_0807D6FA: + movs r1, #0xa + ldrsh r0, [r5, r1] + ldrh r1, [r5, #6] + subs r0, r0, r1 + movs r4, #0x10 + rsbs r4, r4, #0 + ands r0, r4 + str r0, [sp, #0x24] + ldr r3, [r5, #0x30] + movs r2, #0x2e + ldrsh r0, [r3, r2] + subs r0, r0, r1 + movs r2, #8 + rsbs r2, r2, #0 + ands r0, r2 + str r0, [sp, #0x14] + ldr r1, [sp, #0x24] + subs r0, r0, r1 + str r0, [sp, #0x1c] + movs r1, #0xc + ldrsh r0, [r5, r1] + ldrh r1, [r5, #8] + subs r0, r0, r1 + ands r0, r4 + str r0, [sp, #0x28] + movs r4, #0x32 + ldrsh r0, [r3, r4] + subs r0, r0, r1 + ands r0, r2 + str r0, [sp, #0x18] + ldr r1, [sp, #0x28] + subs r0, r0, r1 + str r0, [sp, #0x20] + ldrh r0, [r5, #0x18] + adds r2, r0, #0 + muls r2, r0, r2 + str r2, [sp, #0xc] + ldrh r3, [r5, #0x1a] + str r3, [sp, #8] + adds r4, r3, #0 + muls r4, r3, r4 + str r4, [sp, #0x10] + adds r4, r0, #0 + movs r0, #0 + mov sb, r0 + lsls r0, r4, #1 + rsbs r0, r0, #0 + adds r0, #1 + ldr r1, [sp, #0x10] + muls r0, r1, r0 + lsls r6, r2, #1 + adds r7, r0, r6 + adds r2, r4, #0 + muls r2, r1, r2 + mov r8, r2 + mov r0, r8 + ldr r1, [sp, #0xc] + bl __divsi3 + mov ip, r0 + cmp sb, ip + ble _0807D778 + b _0807D8D8 +_0807D778: + mov sl, r5 + ldr r3, [sp, #0xc] + adds r0, r6, r3 + lsls r0, r0, #1 + str r0, [sp, #0x3c] + mov r0, r8 + str r0, [sp, #0x40] + ldr r1, [sp, #0x14] + subs r1, r1, r4 + mov r8, r1 + ldr r2, [sp, #0x14] + adds r6, r4, r2 + movs r0, #0x80 + lsls r0, r0, #1 + ldr r3, [sp, #0x24] + adds r0, r3, r0 + str r0, [sp, #0x2c] +_0807D79A: + ldr r0, [sp, #0x28] + adds r0, #0xb0 + ldr r1, [sp, #0x18] + add r1, sb + cmp r0, r1 + ble _0807D812 + ldr r0, [sp, #0x20] + add r0, sb + asrs r0, r0, #3 + movs r5, #0x1f + ands r0, r5 + cmp r0, #0x1f + beq _0807D812 + lsls r0, r0, #6 + ldr r3, [sp, #4] + adds r2, r3, r0 + asrs r0, r1, #3 + lsls r0, r0, #8 + ldr r1, [sp] + adds r3, r1, r0 + ldr r0, [sp, #0x2c] + cmp r0, r6 + ble _0807D7EA + ldr r0, [sp, #0x1c] + adds r1, r0, r4 + asrs r1, r1, #3 + ands r1, r5 + lsls r1, r1, #1 + adds r1, r1, r2 + asrs r0, r6, #3 + lsls r0, r0, #1 + adds r0, r0, r3 + ldrh r0, [r0] + strh r0, [r1] + mov r1, sl + ldrh r0, [r1, #0x1c] + movs r1, #1 + orrs r0, r1 + mov r1, sl + strh r0, [r1, #0x1c] +_0807D7EA: + ldr r0, [sp, #0x24] + cmp r0, r8 + bge _0807D812 + ldr r0, [sp, #0x1c] + subs r1, r0, r4 + asrs r1, r1, #3 + ands r1, r5 + lsls r1, r1, #1 + adds r1, r1, r2 + mov r2, r8 + asrs r0, r2, #3 + lsls r0, r0, #1 + adds r0, r0, r3 + ldrh r0, [r0] + strh r0, [r1] + mov r3, sl + ldrh r0, [r3, #0x1c] + movs r1, #2 + orrs r0, r1 + strh r0, [r3, #0x1c] +_0807D812: + ldr r0, [sp, #0x18] + mov r2, sb + subs r1, r0, r2 + adds r0, r1, #0 + adds r0, #8 + ldr r3, [sp, #0x28] + cmp r3, r0 + bge _0807D88E + ldr r3, [sp, #0x20] + subs r0, r3, r2 + asrs r0, r0, #3 + movs r5, #0x1f + ands r0, r5 + cmp r0, #0x1f + beq _0807D88E + lsls r0, r0, #6 + ldr r3, [sp, #4] + adds r2, r3, r0 + asrs r0, r1, #3 + lsls r0, r0, #8 + ldr r1, [sp] + adds r3, r1, r0 + ldr r0, [sp, #0x2c] + cmp r0, r6 + ble _0807D866 + ldr r0, [sp, #0x1c] + adds r1, r0, r4 + asrs r1, r1, #3 + ands r1, r5 + lsls r1, r1, #1 + adds r1, r1, r2 + asrs r0, r6, #3 + lsls r0, r0, #1 + adds r0, r0, r3 + ldrh r0, [r0] + strh r0, [r1] + mov r1, sl + ldrh r0, [r1, #0x1c] + movs r1, #4 + orrs r0, r1 + mov r1, sl + strh r0, [r1, #0x1c] +_0807D866: + ldr r0, [sp, #0x24] + cmp r0, r8 + bge _0807D88E + ldr r0, [sp, #0x1c] + subs r1, r0, r4 + asrs r1, r1, #3 + ands r1, r5 + lsls r1, r1, #1 + adds r1, r1, r2 + mov r2, r8 + asrs r0, r2, #3 + lsls r0, r0, #1 + adds r0, r0, r3 + ldrh r0, [r0] + strh r0, [r1] + mov r3, sl + ldrh r0, [r3, #0x1c] + movs r1, #8 + orrs r0, r1 + strh r0, [r3, #0x1c] +_0807D88E: + cmp r7, #0 + ble _0807D8C0 + lsls r0, r4, #2 + rsbs r0, r0, #0 + adds r0, #4 + ldr r1, [sp, #0x10] + muls r0, r1, r0 + ldr r2, [sp, #0x3c] + adds r0, r0, r2 + adds r7, r7, r0 + ldr r3, [sp, #0x40] + subs r3, r3, r1 + str r3, [sp, #0x40] + movs r0, #1 + add r8, r0 + subs r6, #1 + subs r4, #1 + adds r0, r3, #0 + ldr r1, [sp, #0xc] + bl __divsi3 + mov ip, r0 + b _0807D8C4 + .align 2, 0 +_0807D8BC: .4byte gUnk_03000BF0 +_0807D8C0: + ldr r1, [sp, #0x3c] + adds r7, r7, r1 +_0807D8C4: + ldr r2, [sp, #0xc] + lsls r0, r2, #2 + ldr r3, [sp, #0x3c] + adds r3, r3, r0 + str r3, [sp, #0x3c] + movs r0, #1 + add sb, r0 + cmp sb, ip + bgt _0807D8D8 + b _0807D79A +_0807D8D8: + movs r4, #0 + ldr r1, [sp, #8] + mov sb, r1 + ldr r2, [sp, #0x10] + lsls r6, r2, #1 + lsls r0, r1, #1 + rsbs r0, r0, #0 + adds r0, #1 + ldr r3, [sp, #0xc] + muls r0, r3, r0 + adds r7, r6, r0 + mov r5, sb + muls r5, r3, r5 + adds r0, r5, #0 + adds r1, r2, #0 + bl __divsi3 + mov ip, r0 + cmp r4, ip + ble _0807D902 + b _0807DA62 +_0807D902: + ldr r0, _0807DA40 @ =gUnk_03000BF0 + mov sl, r0 + ldr r1, [sp, #0x10] + adds r0, r6, r1 + lsls r0, r0, #1 + str r0, [sp, #0x34] + ldr r6, [sp, #0x14] + mov r8, r6 + str r5, [sp, #0x38] + movs r3, #0x80 + lsls r3, r3, #1 + ldr r2, [sp, #0x24] + adds r3, r2, r3 + str r3, [sp, #0x30] +_0807D91E: + ldr r0, [sp, #0x28] + adds r0, #0xb0 + ldr r1, [sp, #0x18] + add r1, sb + cmp r0, r1 + ble _0807D996 + ldr r0, [sp, #0x20] + add r0, sb + asrs r0, r0, #3 + movs r5, #0x1f + ands r0, r5 + cmp r0, #0x1f + beq _0807D996 + lsls r0, r0, #6 + ldr r3, [sp, #4] + adds r2, r3, r0 + asrs r0, r1, #3 + lsls r0, r0, #8 + ldr r1, [sp] + adds r3, r1, r0 + ldr r0, [sp, #0x30] + cmp r0, r6 + ble _0807D96E + ldr r0, [sp, #0x1c] + adds r1, r0, r4 + asrs r1, r1, #3 + ands r1, r5 + lsls r1, r1, #1 + adds r1, r1, r2 + asrs r0, r6, #3 + lsls r0, r0, #1 + adds r0, r0, r3 + ldrh r0, [r0] + strh r0, [r1] + mov r1, sl + ldrh r0, [r1, #0x1c] + movs r1, #0x10 + orrs r0, r1 + mov r1, sl + strh r0, [r1, #0x1c] +_0807D96E: + ldr r0, [sp, #0x24] + cmp r0, r8 + bge _0807D996 + ldr r0, [sp, #0x1c] + subs r1, r0, r4 + asrs r1, r1, #3 + ands r1, r5 + lsls r1, r1, #1 + adds r1, r1, r2 + mov r2, r8 + asrs r0, r2, #3 + lsls r0, r0, #1 + adds r0, r0, r3 + ldrh r0, [r0] + strh r0, [r1] + mov r3, sl + ldrh r0, [r3, #0x1c] + movs r1, #0x20 + orrs r0, r1 + strh r0, [r3, #0x1c] +_0807D996: + ldr r0, [sp, #0x18] + mov r2, sb + subs r1, r0, r2 + adds r0, r1, #0 + adds r0, #8 + ldr r3, [sp, #0x28] + cmp r3, r0 + bge _0807DA12 + ldr r3, [sp, #0x20] + subs r0, r3, r2 + asrs r0, r0, #3 + movs r5, #0x1f + ands r0, r5 + cmp r0, #0x1f + beq _0807DA12 + lsls r0, r0, #6 + ldr r3, [sp, #4] + adds r2, r3, r0 + asrs r0, r1, #3 + lsls r0, r0, #8 + ldr r1, [sp] + adds r3, r1, r0 + ldr r0, [sp, #0x30] + cmp r0, r6 + ble _0807D9EA + ldr r0, [sp, #0x1c] + adds r1, r0, r4 + asrs r1, r1, #3 + ands r1, r5 + lsls r1, r1, #1 + adds r1, r1, r2 + asrs r0, r6, #3 + lsls r0, r0, #1 + adds r0, r0, r3 + ldrh r0, [r0] + strh r0, [r1] + mov r1, sl + ldrh r0, [r1, #0x1c] + movs r1, #0x40 + orrs r0, r1 + mov r1, sl + strh r0, [r1, #0x1c] +_0807D9EA: + ldr r0, [sp, #0x24] + cmp r0, r8 + bge _0807DA12 + ldr r0, [sp, #0x1c] + subs r1, r0, r4 + asrs r1, r1, #3 + ands r1, r5 + lsls r1, r1, #1 + adds r1, r1, r2 + mov r2, r8 + asrs r0, r2, #3 + lsls r0, r0, #1 + adds r0, r0, r3 + ldrh r0, [r0] + strh r0, [r1] + mov r3, sl + ldrh r0, [r3, #0x1c] + movs r1, #0x80 + orrs r0, r1 + strh r0, [r3, #0x1c] +_0807DA12: + cmp r7, #0 + ble _0807DA44 + mov r1, sb + lsls r0, r1, #2 + rsbs r0, r0, #0 + adds r0, #4 + ldr r2, [sp, #0xc] + muls r0, r2, r0 + ldr r3, [sp, #0x34] + adds r0, r3, r0 + adds r7, r7, r0 + ldr r0, [sp, #0x38] + subs r0, r0, r2 + str r0, [sp, #0x38] + movs r1, #1 + rsbs r1, r1, #0 + add sb, r1 + ldr r1, [sp, #0x10] + bl __divsi3 + mov ip, r0 + b _0807DA48 + .align 2, 0 +_0807DA40: .4byte gUnk_03000BF0 +_0807DA44: + ldr r2, [sp, #0x34] + adds r7, r7, r2 +_0807DA48: + ldr r3, [sp, #0x10] + lsls r0, r3, #2 + ldr r1, [sp, #0x34] + adds r1, r1, r0 + str r1, [sp, #0x34] + movs r2, #1 + rsbs r2, r2, #0 + add r8, r2 + adds r6, #1 + adds r4, #1 + cmp r4, ip + bgt _0807DA62 + b _0807D91E +_0807DA62: + add sp, #0x44 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0807DA70 +sub_0807DA70: @ 0x0807DA70 + push {r4, lr} + ldr r4, _0807DA94 @ =gUnk_02033280 + adds r0, r4, #0 + movs r1, #0xc + bl sub_0801D630 + ldr r0, _0807DA98 @ =gUnk_02036570 + movs r1, #0x90 + lsls r1, r1, #3 + bl sub_0801D630 + ldr r0, _0807DA9C @ =gUnk_02022750 + movs r1, #0x24 + bl sub_0801D630 + movs r0, #8 + strb r0, [r4, #8] + pop {r4, pc} + .align 2, 0 +_0807DA94: .4byte gUnk_02033280 +_0807DA98: .4byte gUnk_02036570 +_0807DA9C: .4byte gUnk_02022750 + + thumb_func_start sub_0807DAA0 +sub_0807DAA0: @ 0x0807DAA0 + push {lr} + ldr r1, _0807DABC @ =gUnk_02036570 + movs r0, #0x90 + lsls r0, r0, #3 + adds r2, r1, r0 +_0807DAAA: + ldr r0, [r1] + cmp r0, #0 + beq _0807DAC0 + adds r1, #0x24 + cmp r1, r2 + blo _0807DAAA + movs r0, #0 + b _0807DAC2 + .align 2, 0 +_0807DABC: .4byte gUnk_02036570 +_0807DAC0: + adds r0, r1, #0 +_0807DAC2: + pop {pc} + + thumb_func_start sub_0807DAC4 +sub_0807DAC4: @ 0x0807DAC4 + push {lr} + movs r1, #0x24 + bl sub_0801D630 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807DAD0 +sub_0807DAD0: @ 0x0807DAD0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + bl sub_0807DAA0 + adds r4, r0, #0 + cmp r4, #0 + beq _0807DAEA + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r6, #0 + bl sub_0807DAF0 +_0807DAEA: + adds r0, r4, #0 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0807DAF0 +sub_0807DAF0: @ 0x0807DAF0 + push {r4, lr} + ldrb r4, [r0, #0x10] + movs r3, #2 + orrs r3, r4 + strb r3, [r0, #0x10] + adds r0, #0x84 + str r1, [r0] + adds r0, r1, #0 + adds r1, r2, #0 + bl sub_0807DB88 + pop {r4, pc} + + thumb_func_start sub_0807DB08 +sub_0807DB08: @ 0x0807DB08 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0807DB28 + movs r0, #0xfd + ands r0, r1 + movs r5, #0 + strb r0, [r4, #0x10] + adds r4, #0x84 + ldr r0, [r4] + bl sub_0807DAC4 + str r5, [r4] +_0807DB28: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0807DB2C +sub_0807DB2C: @ 0x0807DB2C + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _0807DB5C @ =gUnk_02022750 + adds r0, r4, #0 + movs r1, #0x24 + bl sub_0801D630 + str r5, [r4] + ldr r0, _0807DB60 @ =gUnk_03001160 + adds r0, #0x84 + str r4, [r0] + ldr r2, _0807DB64 @ =gUnk_03003F80 + movs r1, #0 + movs r0, #0x1c + strb r0, [r2, #0xc] + adds r0, r2, #0 + adds r0, #0x3a + strb r1, [r0] + subs r0, #1 + strb r1, [r0] + subs r0, #1 + strb r1, [r0] + pop {r4, r5, pc} + .align 2, 0 +_0807DB5C: .4byte gUnk_02022750 +_0807DB60: .4byte gUnk_03001160 +_0807DB64: .4byte gUnk_03003F80 + + thumb_func_start sub_0807DB68 +sub_0807DB68: @ 0x0807DB68 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_0807DAA0 + adds r2, r0, #0 + cmp r2, #0 + beq _0807DB84 + ldrb r1, [r4, #0x10] + movs r0, #2 + orrs r0, r1 + strb r0, [r4, #0x10] + str r2, [r4, #0x3c] + str r5, [r2] +_0807DB84: + adds r0, r2, #0 + pop {r4, r5, pc} + + thumb_func_start sub_0807DB88 +sub_0807DB88: @ 0x0807DB88 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r1, #0x24 + bl sub_0801D630 + str r5, [r4] + pop {r4, r5, pc} + + thumb_func_start sub_0807DB98 +sub_0807DB98: @ 0x0807DB98 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r6, r1, #0 + ldr r0, [r6, #8] + cmp r0, #0 + bne _0807DBA6 + b _0807DD48 +_0807DBA6: + movs r7, #0 + adds r4, r5, #0 + adds r4, #0x82 +_0807DBAC: + ldr r1, [r6, #8] + mvns r0, r1 + adds r2, r0, #1 + ands r2, r1 + eors r1, r2 + str r1, [r6, #8] + movs r0, #0x80 + lsls r0, r0, #2 + cmp r2, r0 + bne _0807DBC2 + b _0807DCC8 +_0807DBC2: + cmp r2, r0 + bhi _0807DC04 + cmp r2, #0x10 + beq _0807DC82 + cmp r2, #0x10 + bhi _0807DBE8 + cmp r2, #2 + beq _0807DC70 + cmp r2, #2 + bhi _0807DBDC + cmp r2, #1 + beq _0807DC68 + b _0807DD40 +_0807DBDC: + cmp r2, #4 + bne _0807DBE2 + b _0807DD40 +_0807DBE2: + cmp r2, #8 + beq _0807DC7A + b _0807DD40 +_0807DBE8: + cmp r2, #0x40 + beq _0807DC9E + cmp r2, #0x40 + bhi _0807DBF6 + cmp r2, #0x20 + beq _0807DC90 + b _0807DD40 +_0807DBF6: + cmp r2, #0x80 + beq _0807DCA8 + movs r0, #0x80 + lsls r0, r0, #1 + cmp r2, r0 + beq _0807DCBA + b _0807DD40 +_0807DC04: + movs r0, #0x80 + lsls r0, r0, #7 + cmp r2, r0 + beq _0807DCFC + cmp r2, r0 + bhi _0807DC38 + movs r0, #0x80 + lsls r0, r0, #4 + cmp r2, r0 + beq _0807DCDE + cmp r2, r0 + bhi _0807DC26 + movs r0, #0x80 + lsls r0, r0, #3 + cmp r2, r0 + beq _0807DCD6 + b _0807DD40 +_0807DC26: + movs r0, #0x80 + lsls r0, r0, #5 + cmp r2, r0 + beq _0807DCE8 + movs r0, #0x80 + lsls r0, r0, #6 + cmp r2, r0 + beq _0807DCF4 + b _0807DD40 +_0807DC38: + movs r0, #0x80 + lsls r0, r0, #0xa + cmp r2, r0 + beq _0807DD14 + cmp r2, r0 + bhi _0807DC56 + movs r0, #0x80 + lsls r0, r0, #8 + cmp r2, r0 + beq _0807DD04 + movs r0, #0x80 + lsls r0, r0, #9 + cmp r2, r0 + beq _0807DD0C + b _0807DD40 +_0807DC56: + movs r0, #0x80 + lsls r0, r0, #0xb + cmp r2, r0 + beq _0807DD2E + movs r0, #0x80 + lsls r0, r0, #0xc + cmp r2, r0 + beq _0807DD36 + b _0807DD40 +_0807DC68: + adds r0, r5, #0 + adds r0, #0x80 + strh r7, [r0] + b _0807DD40 +_0807DC70: + adds r1, r5, #0 + adds r1, #0x80 + movs r0, #4 + strh r0, [r1] + b _0807DD40 +_0807DC7A: + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r5, #0x20] + b _0807DD40 +_0807DC82: + adds r0, r5, #0 + movs r1, #8 + movs r2, #0x18 + rsbs r2, r2, #0 + bl sub_080A2CFC + b _0807DD40 +_0807DC90: + adds r0, r5, #0 + movs r1, #8 + movs r2, #0x18 + rsbs r2, r2, #0 + bl sub_080A2D0C + b _0807DD40 +_0807DC9E: + adds r0, r6, #0 + bl sub_0807DAC4 + bl sub_0805E780 +_0807DCA8: + ldrb r0, [r5, #0x18] + movs r2, #4 + rsbs r2, r2, #0 + adds r1, r2, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #0x18] + b _0807DD40 +_0807DCBA: + ldrb r0, [r5, #0x18] + movs r3, #4 + rsbs r3, r3, #0 + adds r1, r3, #0 + ands r0, r1 + strb r0, [r5, #0x18] + b _0807DD40 +_0807DCC8: + adds r0, r5, #0 + adds r0, #0x63 + strb r7, [r0] + subs r0, #1 + strb r7, [r0] + strh r7, [r4] + b _0807DD40 +_0807DCD6: + ldrh r0, [r4] + movs r1, #2 + orrs r0, r1 + b _0807DD3E +_0807DCDE: + ldrh r0, [r4] + ldr r2, _0807DCE4 @ =0x0000FFFD + b _0807DD3A + .align 2, 0 +_0807DCE4: .4byte 0x0000FFFD +_0807DCE8: + ldrh r0, [r4] + ldr r3, _0807DCF0 @ =0x0000FFFE + adds r1, r3, #0 + b _0807DD3C + .align 2, 0 +_0807DCF0: .4byte 0x0000FFFE +_0807DCF4: + ldrh r0, [r4] + movs r1, #1 + orrs r0, r1 + b _0807DD3E +_0807DCFC: + ldrh r0, [r4] + movs r1, #8 + orrs r0, r1 + b _0807DD3E +_0807DD04: + ldrh r0, [r4] + movs r1, #4 + eors r0, r1 + b _0807DD3E +_0807DD0C: + ldrh r0, [r4] + movs r1, #0x10 + eors r0, r1 + b _0807DD3E +_0807DD14: + ldrb r2, [r5, #0x18] + lsls r0, r2, #0x19 + lsrs r0, r0, #0x1f + movs r1, #1 + eors r0, r1 + lsls r0, r0, #6 + movs r3, #0x41 + rsbs r3, r3, #0 + adds r1, r3, #0 + ands r2, r1 + orrs r2, r0 + strb r2, [r5, #0x18] + b _0807DD40 +_0807DD2E: + ldrh r0, [r4] + movs r1, #0x20 + orrs r0, r1 + b _0807DD3E +_0807DD36: + ldrh r0, [r4] + ldr r2, _0807DD4C @ =0x0000FFDF +_0807DD3A: + adds r1, r2, #0 +_0807DD3C: + ands r0, r1 +_0807DD3E: + strh r0, [r4] +_0807DD40: + ldr r0, [r6, #8] + cmp r0, #0 + beq _0807DD48 + b _0807DBAC +_0807DD48: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807DD4C: .4byte 0x0000FFDF + + thumb_func_start sub_0807DD50 +sub_0807DD50: @ 0x0807DD50 + push {r4, lr} + adds r4, r0, #0 + bl sub_0807DD64 + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0807DD64 +sub_0807DD64: @ 0x0807DD64 + adds r3, r0, #0 + ldrb r0, [r3, #0x14] + movs r2, #0 + strb r0, [r3, #0xf] + adds r1, r3, #0 + adds r1, #0x58 + movs r0, #0xff + strb r0, [r1] + adds r0, r3, #0 + adds r0, #0x80 + strh r2, [r0] + adds r0, #2 + strh r2, [r0] + bx lr + + thumb_func_start sub_0807DD80 +sub_0807DD80: @ 0x0807DD80 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x84 + ldr r0, [r0] + bl sub_0807DB88 + adds r0, r4, #0 + bl sub_0807DD64 + pop {r4, pc} + + thumb_func_start sub_0807DD94 +sub_0807DD94: @ 0x0807DD94 + push {r4, lr} + adds r4, r0, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_0807DE80 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0807DDAC +sub_0807DDAC: @ 0x0807DDAC + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + adds r4, r5, #0 + adds r4, #0x84 + ldr r1, [r4] + cmp r1, #0 + beq _0807DDE0 + bl sub_0807DF74 + cmp r6, #0 + beq _0807DDCE + ldr r1, [r4] + adds r0, r5, #0 + bl _call_via_r6 + b _0807DDD6 +_0807DDCE: + ldr r1, [r4] + adds r0, r5, #0 + bl sub_0807DB98 +_0807DDD6: + ldr r0, [r5, #4] + cmp r0, #0 + bne _0807DDE0 + bl sub_0805E780 +_0807DDE0: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0807DDE4 +sub_0807DDE4: @ 0x0807DDE4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x82 + ldrh r5, [r0] +_0807DDEC: + cmp r5, #0 + beq _0807DE7C + mvns r0, r5 + adds r0, #1 + ands r0, r5 + eors r5, r0 + cmp r0, #8 + beq _0807DE26 + cmp r0, #8 + bhi _0807DE06 + cmp r0, #2 + beq _0807DE10 + b _0807DDEC +_0807DE06: + cmp r0, #0x10 + beq _0807DE44 + cmp r0, #0x20 + beq _0807DE70 + b _0807DDEC +_0807DE10: + ldrb r0, [r4, #8] + cmp r0, #7 + bne _0807DE1E + adds r0, r4, #0 + bl sub_0806ED78 + b _0807DDEC +_0807DE1E: + adds r0, r4, #0 + bl sub_0800445C + b _0807DDEC +_0807DE26: + ldr r0, _0807DE40 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0807DDEC + ldrb r0, [r4, #0xf] + adds r0, #2 + movs r1, #7 + ands r0, r1 + strb r0, [r4, #0x14] + strb r0, [r4, #0xf] + b _0807DDEC + .align 2, 0 +_0807DE40: .4byte gUnk_030010A0 +_0807DE44: + ldr r0, _0807DE68 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _0807DDEC + bl sub_08000E50 + ldr r2, _0807DE6C @ =gUnk_0811E510 + movs r1, #3 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + adds r1, r4, #0 + adds r1, #0x62 + strb r0, [r1] + b _0807DDEC + .align 2, 0 +_0807DE68: .4byte gUnk_030010A0 +_0807DE6C: .4byte gUnk_0811E510 +_0807DE70: + adds r0, r4, #0 + movs r1, #0x80 + lsls r1, r1, #6 + bl sub_08003FC4 + b _0807DDEC +_0807DE7C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0807DE80 +sub_0807DE80: @ 0x0807DE80 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x80 + ldrh r3, [r0] + cmp r3, #7 + bhi _0807DEB0 + adds r0, #2 + ldrh r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0807DEA4 + movs r1, #0xfc + ands r1, r3 + ldrb r0, [r4, #0xf] + lsrs r0, r0, #1 + adds r3, r1, r0 + b _0807DEB0 +_0807DEA4: + movs r0, #0xfc + ands r0, r3 + ldrb r2, [r4, #0x14] + lsrs r1, r2, #1 + adds r3, r0, r1 + strb r2, [r4, #0xf] +_0807DEB0: + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r3, r0 + beq _0807DEC2 + adds r0, r4, #0 + adds r1, r3, #0 + bl sub_080042AC +_0807DEC2: + adds r0, r4, #0 + adds r0, #0x82 + ldrh r1, [r0] + movs r0, #4 + ands r0, r1 + movs r1, #1 + cmp r0, #0 + beq _0807DED4 + movs r1, #2 +_0807DED4: + adds r0, r4, #0 + bl sub_080042BA + pop {r4, pc} + + thumb_func_start sub_0807DEDC +sub_0807DEDC: @ 0x0807DEDC + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r6, #0 + movs r0, #8 + strb r0, [r1, #0x19] + ldr r0, [r1, #8] + movs r4, #2 + orrs r0, r4 + str r0, [r1, #8] + str r6, [r1, #0x14] + strh r2, [r1, #0x1e] + strh r3, [r1, #0x22] + movs r2, #0x1e + ldrsh r0, [r1, r2] + movs r3, #0x2e + ldrsh r2, [r5, r3] + subs r0, r0, r2 + movs r2, #0x22 + ldrsh r1, [r1, r2] + movs r3, #0x32 + ldrsh r2, [r5, r3] + subs r1, r1, r2 + bl sub_080045DA + strb r0, [r5, #0x15] + ldrb r2, [r5, #0x14] + movs r1, #0x80 + ands r1, r2 + ldr r2, _0807DF24 @ =gUnk_0811E514 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1c + adds r0, r0, r2 + ldrb r0, [r0] + orrs r1, r0 + strb r1, [r5, #0x14] + pop {r4, r5, r6, pc} + .align 2, 0 +_0807DF24: .4byte gUnk_0811E514 + + thumb_func_start sub_0807DF28 +sub_0807DF28: @ 0x0807DF28 + push {lr} + bl sub_0807DF38 + bl sub_08079184 + bl sub_08077B20 + pop {pc} + + thumb_func_start sub_0807DF38 +sub_0807DF38: @ 0x0807DF38 + ldr r1, _0807DF48 @ =gUnk_0200AF00 + movs r0, #0xff + strb r0, [r1, #1] + ldr r1, _0807DF4C @ =gUnk_02034490 + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r1] + bx lr + .align 2, 0 +_0807DF48: .4byte gUnk_0200AF00 +_0807DF4C: .4byte gUnk_02034490 + + thumb_func_start sub_0807DF50 +sub_0807DF50: @ 0x0807DF50 + push {lr} + ldr r0, _0807DF6C @ =gUnk_02034490 + movs r1, #0 + strb r1, [r0] + ldr r0, _0807DF70 @ =gUnk_0200AF00 + strb r1, [r0, #1] + movs r0, #0 + bl sub_0801C4A0 + bl sub_080791D0 + bl sub_08079184 + pop {pc} + .align 2, 0 +_0807DF6C: .4byte gUnk_02034490 +_0807DF70: .4byte gUnk_0200AF00 + + thumb_func_start sub_0807DF74 +sub_0807DF74: @ 0x0807DF74 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r8, r0 + adds r5, r1, #0 + ldr r0, [r5] + cmp r0, #0 + beq _0807DFE8 + ldrh r0, [r5, #0x10] + adds r1, r0, #0 + cmp r1, #0 + beq _0807DF92 + subs r0, #1 + strh r0, [r5, #0x10] + b _0807DFE8 +_0807DF92: + ldr r6, _0807DFF0 @ =gUnk_02033280 + strb r1, [r6, #7] +_0807DF96: + ldr r0, [r5] + bl sub_08016986 + adds r1, r0, #0 + ldr r0, _0807DFF4 @ =0x0000FFFF + cmp r1, r0 + beq _0807DFE8 + lsrs r0, r1, #0xa + strb r0, [r6, #6] + ldr r2, _0807DFF8 @ =0x000003FF + adds r0, r2, #0 + ands r1, r0 + movs r7, #0 + strh r1, [r6, #4] + ldr r4, [r5] + ldrb r1, [r6, #7] + movs r0, #0xfe + ands r0, r1 + strb r0, [r6, #7] + ldr r1, _0807DFFC @ =gUnk_0811E524 + ldrh r0, [r6, #4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r2, [r0] + mov r0, r8 + adds r1, r5, #0 + bl _call_via_r2 + ldrb r1, [r6, #6] + lsls r1, r1, #1 + ldr r0, [r5] + adds r0, r0, r1 + str r0, [r5] + cmp r4, r0 + beq _0807DFDE + strb r7, [r5, #0x18] +_0807DFDE: + ldrb r1, [r6, #7] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _0807DF96 +_0807DFE8: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807DFF0: .4byte gUnk_02033280 +_0807DFF4: .4byte 0x0000FFFF +_0807DFF8: .4byte 0x000003FF +_0807DFFC: .4byte gUnk_0811E524 + + thumb_func_start nullsub_507 +nullsub_507: @ 0x0807E000 + bx lr + .align 2, 0 + + thumb_func_start sub_0807E004 +sub_0807E004: @ 0x0807E004 + ldr r2, _0807E010 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #2 + orrs r0, r1 + strb r0, [r2, #7] + bx lr + .align 2, 0 +_0807E010: .4byte gUnk_02033280 + + thumb_func_start sub_0807E014 +sub_0807E014: @ 0x0807E014 + ldr r2, _0807E020 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #0xfd + ands r0, r1 + strb r0, [r2, #7] + bx lr + .align 2, 0 +_0807E020: .4byte gUnk_02033280 + + thumb_func_start sub_0807E024 +sub_0807E024: @ 0x0807E024 + push {r4, lr} + adds r4, r1, #0 + ldr r0, [r4] + adds r0, #2 + str r0, [r4] + bl sub_08016986 + lsls r0, r0, #0x10 + asrs r1, r0, #0x10 + lsrs r0, r0, #0x1f + adds r1, r1, r0 + asrs r1, r1, #1 + lsls r1, r1, #1 + ldr r0, [r4] + adds r0, r0, r1 + str r0, [r4] + ldr r1, _0807E04C @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] + pop {r4, pc} + .align 2, 0 +_0807E04C: .4byte gUnk_02033280 + + thumb_func_start sub_0807E050 +sub_0807E050: @ 0x0807E050 + push {lr} + adds r2, r0, #0 + ldr r0, [r1, #0x14] + cmp r0, #0 + beq _0807E060 + adds r0, r2, #0 + bl sub_0807E024 +_0807E060: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807E064 +sub_0807E064: @ 0x0807E064 + push {lr} + adds r2, r0, #0 + ldr r0, [r1, #0x14] + cmp r0, #0 + bne _0807E074 + adds r0, r2, #0 + bl sub_0807E024 +_0807E074: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807E078 +sub_0807E078: @ 0x0807E078 + push {lr} + adds r3, r0, #0 + adds r2, r1, #0 + ldr r0, _0807E09C @ =gUnk_02033280 + ldrb r0, [r0, #6] + ldr r1, [r2, #4] + cmp r0, r1 + bls _0807E098 + lsls r1, r1, #1 + ldr r0, [r2] + adds r0, r0, r1 + str r0, [r2] + adds r0, r3, #0 + adds r1, r2, #0 + bl sub_0807E024 +_0807E098: + pop {pc} + .align 2, 0 +_0807E09C: .4byte gUnk_02033280 + + thumb_func_start sub_0807E0A0 +sub_0807E0A0: @ 0x0807E0A0 + push {r4, lr} + adds r4, r1, #0 + ldr r0, [r4] + bl sub_08016998 + str r0, [r4] + ldr r1, _0807E0B4 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] + pop {r4, pc} + .align 2, 0 +_0807E0B4: .4byte gUnk_02033280 + + thumb_func_start sub_0807E0B8 +sub_0807E0B8: @ 0x0807E0B8 + push {lr} + adds r2, r0, #0 + ldr r0, [r1, #0x14] + cmp r0, #0 + beq _0807E0C8 + adds r0, r2, #0 + bl sub_0807E0A0 +_0807E0C8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807E0CC +sub_0807E0CC: @ 0x0807E0CC + push {lr} + adds r2, r0, #0 + ldr r0, [r1, #0x14] + cmp r0, #0 + bne _0807E0DC + adds r0, r2, #0 + bl sub_0807E0A0 +_0807E0DC: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807E0E0 +sub_0807E0E0: @ 0x0807E0E0 + push {r4, lr} + adds r4, r0, #0 + adds r2, r1, #0 + ldr r0, _0807E108 @ =gUnk_02033280 + ldrb r1, [r0, #6] + ldr r3, [r2, #4] + lsls r0, r3, #1 + adds r0, #1 + cmp r1, r0 + bls _0807E104 + lsls r1, r3, #2 + ldr r0, [r2] + adds r0, r0, r1 + str r0, [r2] + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_0807E0A0 +_0807E104: + pop {r4, pc} + .align 2, 0 +_0807E108: .4byte gUnk_02033280 + + thumb_func_start sub_0807E10C +sub_0807E10C: @ 0x0807E10C + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + ldr r0, [r4] + bl sub_08016998 + adds r2, r0, #0 + adds r0, r5, #0 + adds r1, r4, #0 + bl _call_via_r2 + pop {r4, r5, pc} + + thumb_func_start sub_0807E124 +sub_0807E124: @ 0x0807E124 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r4, r1, #0 + ldr r0, [r4] + bl sub_08016998 + adds r5, r0, #0 + ldr r0, [r4] + adds r0, #6 + bl sub_0801698E + str r0, [r4, #4] + adds r0, r6, #0 + adds r1, r4, #0 + bl _call_via_r5 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0807E148 +sub_0807E148: @ 0x0807E148 + push {lr} + ldr r0, [r1] + bl sub_08016998 + bl sub_0804ADDC + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807E158 +sub_0807E158: @ 0x0807E158 + push {r4, r5, lr} + adds r4, r1, #0 + ldr r0, [r4] + bl sub_08016998 + adds r2, r0, #0 + movs r5, #0 + ldr r3, _0807E184 @ =gUnk_02033280 + ldr r1, [r3] + adds r0, r1, #0 + ands r0, r2 + cmp r0, r2 + bne _0807E174 + movs r5, #1 +_0807E174: + str r5, [r4, #0x14] + bics r1, r2 + str r1, [r3] + ldrb r1, [r3, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r3, #7] + pop {r4, r5, pc} + .align 2, 0 +_0807E184: .4byte gUnk_02033280 + + thumb_func_start sub_0807E188 +sub_0807E188: @ 0x0807E188 + push {r4, lr} + adds r4, r1, #0 + ldr r0, [r4] + bl sub_0801698A + cmp r0, #0x51 + beq _0807E1B4 + cmp r0, #0x51 + bhi _0807E1A0 + cmp r0, #0x50 + beq _0807E1BA + b _0807E1C0 +_0807E1A0: + cmp r0, #0x52 + beq _0807E1AE + cmp r0, #0x53 + bne _0807E1C0 + bl sub_08052734 + b _0807E1C4 +_0807E1AE: + bl sub_08052764 + b _0807E1C4 +_0807E1B4: + bl sub_0805279C + b _0807E1C4 +_0807E1BA: + bl sub_080527CC + b _0807E1C4 +_0807E1C0: + bl sub_0807CA84 +_0807E1C4: + str r0, [r4, #0x14] + ldr r2, _0807E1D4 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, pc} + .align 2, 0 +_0807E1D4: .4byte gUnk_02033280 + + thumb_func_start sub_0807E1D8 +sub_0807E1D8: @ 0x0807E1D8 + push {r4, lr} + adds r4, r1, #0 + ldr r0, [r4] + ldrh r0, [r0, #2] + bl sub_0807CA84 + movs r1, #0 + cmp r0, #2 + bne _0807E1EC + movs r1, #1 +_0807E1EC: + str r1, [r4, #0x14] + ldr r2, _0807E1FC @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, pc} + .align 2, 0 +_0807E1FC: .4byte gUnk_02033280 + + thumb_func_start sub_0807E200 +sub_0807E200: @ 0x0807E200 + push {r4, lr} + adds r4, r1, #0 + ldr r0, [r4] + ldrh r0, [r0, #2] + bl sub_0807CBD0 + str r0, [r4, #0x14] + ldr r2, _0807E21C @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, pc} + .align 2, 0 +_0807E21C: .4byte gUnk_02033280 + + thumb_func_start sub_0807E220 +sub_0807E220: @ 0x0807E220 + push {r4, lr} + adds r4, r1, #0 + ldr r1, [r4] + ldrh r0, [r1, #2] + ldrh r1, [r1, #4] + bl sub_0807CB10 + str r0, [r4, #0x14] + ldr r2, _0807E23C @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, pc} + .align 2, 0 +_0807E23C: .4byte gUnk_02033280 + + thumb_func_start sub_0807E240 +sub_0807E240: @ 0x0807E240 + push {r4, lr} + adds r4, r1, #0 + ldr r0, [r4] + bl sub_0801698A + bl sub_0807CC30 + str r0, [r4, #0x14] + ldr r2, _0807E25C @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, pc} + .align 2, 0 +_0807E25C: .4byte gUnk_02033280 + + thumb_func_start sub_0807E260 +sub_0807E260: @ 0x0807E260 + push {r4, lr} + adds r4, r1, #0 + ldr r0, [r4] + ldrh r0, [r0, #2] + bl sub_0807CC3C + str r0, [r4, #0x14] + ldr r2, _0807E27C @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, pc} + .align 2, 0 +_0807E27C: .4byte gUnk_02033280 + + thumb_func_start sub_0807E280 +sub_0807E280: @ 0x0807E280 + push {r4, lr} + adds r4, r1, #0 + ldr r1, [r4] + ldrh r2, [r1, #6] + lsrs r3, r2, #8 + movs r0, #0xff + ands r2, r0 + ldrh r0, [r1, #2] + ldrh r1, [r1, #4] + bl sub_0800293E + str r0, [r4, #0x14] + ldr r2, _0807E2A4 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, pc} + .align 2, 0 +_0807E2A4: .4byte gUnk_02033280 + + thumb_func_start sub_0807E2A8 +sub_0807E2A8: @ 0x0807E2A8 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r6, r1, #0 + ldr r0, [r6] + ldrh r3, [r0, #2] + ldrb r2, [r0, #2] + lsrs r3, r3, #8 + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r4, _0807E2DC @ =gUnk_03000BF0 + ldrh r1, [r4, #6] + subs r0, r0, r1 + movs r7, #0x32 + ldrsh r1, [r5, r7] + ldrh r4, [r4, #8] + subs r1, r1, r4 + bl sub_0800293E + str r0, [r6, #0x14] + ldr r2, _0807E2E0 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807E2DC: .4byte gUnk_03000BF0 +_0807E2E0: .4byte gUnk_02033280 + + thumb_func_start sub_0807E2E4 +sub_0807E2E4: @ 0x0807E2E4 + push {lr} + adds r2, r0, #0 + adds r2, #0x39 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0 + beq _0807E2F8 + movs r0, #0 + strb r0, [r2] + movs r0, #1 +_0807E2F8: + str r0, [r1, #0x14] + ldr r2, _0807E308 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {pc} + .align 2, 0 +_0807E308: .4byte gUnk_02033280 + + thumb_func_start sub_0807E30C +sub_0807E30C: @ 0x0807E30C + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r1, #0 + ldrb r1, [r4, #0x1a] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _0807E348 + ldr r0, _0807E374 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0807E348 + ldr r6, _0807E378 @ =gUnk_03001160 + adds r0, r5, #0 + adds r1, r6, #0 + movs r2, #0x28 + movs r3, #0x28 + bl sub_080041A0 + cmp r0, #0 + beq _0807E348 + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_080045C4 + bl sub_0806F5B0 + strb r0, [r5, #0x14] +_0807E348: + ldrb r0, [r4, #0x1a] + adds r0, #1 + strb r0, [r4, #0x1a] + adds r1, r5, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _0807E37C + movs r0, #0 + strb r0, [r1] + movs r0, #1 + str r0, [r4, #0x14] + ldr r1, _0807E378 @ =gUnk_03001160 + adds r0, r5, #0 + bl sub_080045C4 + bl sub_0806F5B0 + strb r0, [r5, #0x14] + b _0807E37E + .align 2, 0 +_0807E374: .4byte gUnk_03003F80 +_0807E378: .4byte gUnk_03001160 +_0807E37C: + str r0, [r4, #0x14] +_0807E37E: + ldr r2, _0807E38C @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, r5, r6, pc} + .align 2, 0 +_0807E38C: .4byte gUnk_02033280 + + thumb_func_start sub_0807E390 +sub_0807E390: @ 0x0807E390 + push {lr} + adds r2, r1, #0 + movs r3, #0 + ldr r0, [r2] + ldr r1, _0807E3B4 @ =gUnk_02002A40 + adds r1, #0xc0 + ldrh r0, [r0, #2] + ldrh r1, [r1] + cmp r0, r1 + bhi _0807E3A6 + movs r3, #1 +_0807E3A6: + str r3, [r2, #0x14] + ldr r2, _0807E3B8 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {pc} + .align 2, 0 +_0807E3B4: .4byte gUnk_02002A40 +_0807E3B8: .4byte gUnk_02033280 + + thumb_func_start sub_0807E3BC +sub_0807E3BC: @ 0x0807E3BC + push {lr} + adds r2, r1, #0 + movs r3, #0 + ldr r0, [r2] + ldr r1, _0807E3E0 @ =gUnk_02002A40 + adds r1, #0xc2 + ldrh r0, [r0, #2] + ldrh r1, [r1] + cmp r0, r1 + bhi _0807E3D2 + movs r3, #1 +_0807E3D2: + str r3, [r2, #0x14] + ldr r2, _0807E3E4 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {pc} + .align 2, 0 +_0807E3E0: .4byte gUnk_02002A40 +_0807E3E4: .4byte gUnk_02033280 + + thumb_func_start sub_0807E3E8 +sub_0807E3E8: @ 0x0807E3E8 + push {lr} + movs r2, #0 + ldr r0, _0807E404 @ =gUnk_02000040 + ldrb r0, [r0, #1] + cmp r0, #0 + bne _0807E3F6 + movs r2, #1 +_0807E3F6: + str r2, [r1, #0x14] + ldr r2, _0807E408 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {pc} + .align 2, 0 +_0807E404: .4byte gUnk_02000040 +_0807E408: .4byte gUnk_02033280 + + thumb_func_start sub_0807E40C +sub_0807E40C: @ 0x0807E40C + push {r4, lr} + adds r4, r1, #0 + ldr r0, [r4] + ldrh r0, [r0, #2] + bl sub_0801E7F4 + str r0, [r4, #0x14] + ldr r2, _0807E428 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, pc} + .align 2, 0 +_0807E428: .4byte gUnk_02033280 + + thumb_func_start sub_0807E42C +sub_0807E42C: @ 0x0807E42C + push {r4, r5, r6, lr} + adds r5, r1, #0 + ldr r0, [r5] + ldrh r4, [r0, #2] + ldrh r6, [r0, #4] + cmp r4, #0 + bne _0807E440 + ldr r0, _0807E480 @ =gUnk_02034350 + ldrb r4, [r0, #6] + ldrb r6, [r0, #7] +_0807E440: + adds r0, r4, #0 + bl sub_08053FE0 + adds r2, r0, #0 + movs r1, #0 + ldr r0, _0807E484 @ =gUnk_02002A40 + adds r0, #0xc0 + ldrh r0, [r0] + cmp r2, r0 + bgt _0807E456 + movs r1, #1 +_0807E456: + str r1, [r5, #0x14] + cmp r1, #0 + beq _0807E474 + rsbs r0, r2, #0 + bl sub_080526CC + adds r0, r4, #0 + adds r1, r6, #0 + movs r2, #0 + bl sub_080A7C18 + ldr r1, _0807E480 @ =gUnk_02034350 + movs r0, #0 + strb r0, [r1, #6] + strb r0, [r1, #7] +_0807E474: + ldr r2, _0807E488 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, r5, r6, pc} + .align 2, 0 +_0807E480: .4byte gUnk_02034350 +_0807E484: .4byte gUnk_02002A40 +_0807E488: .4byte gUnk_02033280 + + thumb_func_start sub_0807E48C +sub_0807E48C: @ 0x0807E48C + push {r4, lr} + adds r4, r1, #0 + ldr r0, [r4] + ldrh r0, [r0, #2] + bl sub_080544DC + str r0, [r4, #0x14] + ldr r2, _0807E4A8 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, pc} + .align 2, 0 +_0807E4A8: .4byte gUnk_02033280 + + thumb_func_start sub_0807E4AC +sub_0807E4AC: @ 0x0807E4AC + ldr r0, _0807E4C4 @ =gUnk_02034350 + ldrb r2, [r0, #6] + rsbs r0, r2, #0 + orrs r0, r2 + lsrs r0, r0, #0x1f + str r0, [r1, #0x14] + ldr r2, _0807E4C8 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + bx lr + .align 2, 0 +_0807E4C4: .4byte gUnk_02034350 +_0807E4C8: .4byte gUnk_02033280 + + thumb_func_start sub_0807E4CC +sub_0807E4CC: @ 0x0807E4CC + ldr r0, [r1] + ldrh r0, [r0, #2] + ldr r2, [r1, #4] + ands r2, r0 + rsbs r0, r2, #0 + orrs r0, r2 + lsrs r0, r0, #0x1f + str r0, [r1, #0x14] + ldr r2, _0807E4E8 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + bx lr + .align 2, 0 +_0807E4E8: .4byte gUnk_02033280 + + thumb_func_start sub_0807E4EC +sub_0807E4EC: @ 0x0807E4EC + push {lr} + adds r2, r1, #0 + ldr r0, [r2] + ldrh r1, [r0, #2] + movs r3, #0 + ldr r0, [r2, #4] + ands r0, r1 + cmp r1, r0 + bne _0807E500 + movs r3, #1 +_0807E500: + str r3, [r2, #0x14] + ldr r2, _0807E510 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {pc} + .align 2, 0 +_0807E510: .4byte gUnk_02033280 + + thumb_func_start sub_0807E514 +sub_0807E514: @ 0x0807E514 + push {lr} + adds r2, r1, #0 + ldr r0, [r2] + ldrh r1, [r0, #2] + movs r3, #0 + ldr r0, [r2, #4] + cmp r1, r0 + bne _0807E526 + movs r3, #1 +_0807E526: + str r3, [r2, #0x14] + ldr r2, _0807E534 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {pc} + .align 2, 0 +_0807E534: .4byte gUnk_02033280 + + thumb_func_start sub_0807E538 +sub_0807E538: @ 0x0807E538 + push {r4, lr} + adds r4, r1, #0 + ldr r0, [r4] + bl sub_08016998 + ldr r1, _0807E55C @ =gUnk_03003F80 + ldr r1, [r1, #0x30] + ands r0, r1 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r1, r1, #0x1f + str r1, [r4, #0x14] + ldr r2, _0807E560 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, pc} + .align 2, 0 +_0807E55C: .4byte gUnk_03003F80 +_0807E560: .4byte gUnk_02033280 + + thumb_func_start sub_0807E564 +sub_0807E564: @ 0x0807E564 + ldr r0, _0807E57C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + lsrs r0, r0, #7 + movs r2, #1 + ands r0, r2 + str r0, [r1, #0x14] + ldr r2, _0807E580 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + bx lr + .align 2, 0 +_0807E57C: .4byte gUnk_03003F80 +_0807E580: .4byte gUnk_02033280 + + thumb_func_start sub_0807E584 +sub_0807E584: @ 0x0807E584 + ldr r2, [r0, #0x34] + rsbs r0, r2, #0 + orrs r0, r2 + lsrs r0, r0, #0x1f + str r0, [r1, #0x14] + ldr r2, _0807E59C @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + bx lr + .align 2, 0 +_0807E59C: .4byte gUnk_02033280 + + thumb_func_start sub_0807E5A0 +sub_0807E5A0: @ 0x0807E5A0 + push {lr} + adds r2, r1, #0 + movs r3, #0 + ldr r0, [r2] + ldr r1, _0807E5C4 @ =gUnk_03001160 + ldrh r0, [r0, #2] + ldrb r1, [r1, #0xc] + cmp r0, r1 + bne _0807E5B4 + movs r3, #1 +_0807E5B4: + str r3, [r2, #0x14] + ldr r2, _0807E5C8 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {pc} + .align 2, 0 +_0807E5C4: .4byte gUnk_03001160 +_0807E5C8: .4byte gUnk_02033280 + + thumb_func_start sub_0807E5CC +sub_0807E5CC: @ 0x0807E5CC + push {lr} + adds r2, r1, #0 + movs r3, #0 + ldr r0, [r2] + ldr r1, _0807E5F0 @ =gUnk_03001160 + ldrh r0, [r0, #2] + ldrb r1, [r1, #0x14] + cmp r0, r1 + bne _0807E5E0 + movs r3, #1 +_0807E5E0: + str r3, [r2, #0x14] + ldr r2, _0807E5F4 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {pc} + .align 2, 0 +_0807E5F0: .4byte gUnk_03001160 +_0807E5F4: .4byte gUnk_02033280 + + thumb_func_start sub_0807E5F8 +sub_0807E5F8: @ 0x0807E5F8 + push {lr} + ldr r0, [r1] + bl sub_08016998 + ldr r2, _0807E60C @ =gUnk_02033280 + ldr r1, [r2] + orrs r1, r0 + str r1, [r2] + pop {pc} + .align 2, 0 +_0807E60C: .4byte gUnk_02033280 + + thumb_func_start sub_0807E610 +sub_0807E610: @ 0x0807E610 + push {lr} + ldr r0, [r1] + bl sub_08016998 + ldr r2, _0807E624 @ =gUnk_02033280 + ldr r1, [r2] + bics r1, r0 + str r1, [r2] + pop {pc} + .align 2, 0 +_0807E624: .4byte gUnk_02033280 + + thumb_func_start sub_0807E628 +sub_0807E628: @ 0x0807E628 + push {lr} + ldr r0, [r1] + ldrh r0, [r0, #2] + bl sub_0807CCB4 + pop {pc} + + thumb_func_start sub_0807E634 +sub_0807E634: @ 0x0807E634 + push {lr} + ldr r1, [r1] + ldrh r0, [r1, #2] + ldrh r1, [r1, #4] + bl sub_0807CC9C + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807E644 +sub_0807E644: @ 0x0807E644 + push {lr} + ldr r0, [r1] + ldrh r0, [r0, #2] + bl sub_0807CD34 + pop {pc} + + thumb_func_start sub_0807E650 +sub_0807E650: @ 0x0807E650 + push {lr} + ldr r0, [r1] + ldrh r0, [r0, #2] + bl sub_0807CD04 + pop {pc} + + thumb_func_start sub_0807E65C +sub_0807E65C: @ 0x0807E65C + push {lr} + ldr r0, [r1] + ldrh r0, [r0, #2] + bl sub_0807CD80 + pop {pc} + + thumb_func_start sub_0807E668 +sub_0807E668: @ 0x0807E668 + push {lr} + ldr r0, [r1] + ldrh r0, [r0, #2] + bl sub_0807CD10 + pop {pc} + + thumb_func_start sub_0807E674 +sub_0807E674: @ 0x0807E674 + push {lr} + ldr r0, [r1] + ldrh r0, [r0, #2] + bl sub_0807CD8C + pop {pc} + + thumb_func_start sub_0807E680 +sub_0807E680: @ 0x0807E680 + push {r4, lr} + adds r4, r1, #0 + ldr r0, [r4] + bl sub_0801698A + strh r0, [r4, #0x10] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0807E690 +sub_0807E690: @ 0x0807E690 + push {lr} + ldr r0, [r1] + bl sub_08016998 + ldr r2, _0807E6A8 @ =gUnk_02033280 + ldr r1, [r2] + ands r1, r0 + cmp r1, r0 + beq _0807E6A6 + movs r0, #0 + strb r0, [r2, #6] +_0807E6A6: + pop {pc} + .align 2, 0 +_0807E6A8: .4byte gUnk_02033280 + + thumb_func_start sub_0807E6AC +sub_0807E6AC: @ 0x0807E6AC + push {lr} + ldr r0, [r1] + bl sub_08016998 + ldr r3, _0807E6C8 @ =gUnk_02033280 + ldr r2, [r3] + adds r1, r2, #0 + ands r1, r0 + cmp r1, r0 + beq _0807E6CC + movs r0, #0 + strb r0, [r3, #6] + b _0807E6D8 + .align 2, 0 +_0807E6C8: .4byte gUnk_02033280 +_0807E6CC: + bics r2, r1 + str r2, [r3] + ldrb r1, [r3, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r3, #7] +_0807E6D8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807E6DC +sub_0807E6DC: @ 0x0807E6DC + push {lr} + ldr r0, _0807E6F0 @ =gUnk_03001160 + ldrb r0, [r0, #0xc] + cmp r0, #8 + bne _0807E6F8 + ldr r1, _0807E6F4 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] + b _0807E6FC + .align 2, 0 +_0807E6F0: .4byte gUnk_03001160 +_0807E6F4: .4byte gUnk_02033280 +_0807E6F8: + movs r0, #0x2d + strh r0, [r1, #0x10] +_0807E6FC: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807E700 +sub_0807E700: @ 0x0807E700 + push {lr} + ldr r0, _0807E718 @ =gUnk_03001160 + ldrb r0, [r0, #0xc] + cmp r0, #0x17 + beq _0807E720 + ldr r2, _0807E71C @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + b _0807E726 + .align 2, 0 +_0807E718: .4byte gUnk_03001160 +_0807E71C: .4byte gUnk_02033280 +_0807E720: + ldr r1, _0807E728 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0807E726: + pop {pc} + .align 2, 0 +_0807E728: .4byte gUnk_02033280 + + thumb_func_start sub_0807E72C +sub_0807E72C: @ 0x0807E72C + push {lr} + ldr r0, _0807E744 @ =gUnk_03000BF0 + ldrb r1, [r0, #0xf] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0807E74C + ldr r1, _0807E748 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] + b _0807E756 + .align 2, 0 +_0807E744: .4byte gUnk_03000BF0 +_0807E748: .4byte gUnk_02033280 +_0807E74C: + ldr r2, _0807E758 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] +_0807E756: + pop {pc} + .align 2, 0 +_0807E758: .4byte gUnk_02033280 + + thumb_func_start sub_0807E75C +sub_0807E75C: @ 0x0807E75C + push {lr} + ldr r0, _0807E770 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + beq _0807E76C + ldr r1, _0807E774 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0807E76C: + pop {pc} + .align 2, 0 +_0807E770: .4byte gUnk_03000FD0 +_0807E774: .4byte gUnk_02033280 + + thumb_func_start sub_0807E778 +sub_0807E778: @ 0x0807E778 + ldr r2, _0807E784 @ =gUnk_02033280 + ldr r0, [r1] + ldrh r0, [r0, #2] + strb r0, [r2, #8] + bx lr + .align 2, 0 +_0807E784: .4byte gUnk_02033280 + + thumb_func_start sub_0807E788 +sub_0807E788: @ 0x0807E788 + push {lr} + ldr r0, [r1] + bl sub_08016998 + ldr r1, _0807E798 @ =gUnk_03000FD0 + str r0, [r1, #4] + pop {pc} + .align 2, 0 +_0807E798: .4byte gUnk_03000FD0 + + thumb_func_start sub_0807E79C +sub_0807E79C: @ 0x0807E79C + push {lr} + ldr r0, _0807E7A8 @ =gUnk_02033280 + ldrb r0, [r0, #8] + bl sub_080500F4 + pop {pc} + .align 2, 0 +_0807E7A8: .4byte gUnk_02033280 + + thumb_func_start nullsub_508 +nullsub_508: @ 0x0807E7AC + bx lr + .align 2, 0 + + thumb_func_start sub_0807E7B0 +sub_0807E7B0: @ 0x0807E7B0 + push {lr} + ldr r0, _0807E7C0 @ =gUnk_02033280 + ldrb r1, [r0, #8] + movs r0, #4 + bl sub_08050054 + pop {pc} + .align 2, 0 +_0807E7C0: .4byte gUnk_02033280 + + thumb_func_start sub_0807E7C4 +sub_0807E7C4: @ 0x0807E7C4 + push {lr} + ldr r0, _0807E7D4 @ =gUnk_02033280 + ldrb r1, [r0, #8] + movs r0, #5 + bl sub_08050054 + pop {pc} + .align 2, 0 +_0807E7D4: .4byte gUnk_02033280 + + thumb_func_start sub_0807E7D8 +sub_0807E7D8: @ 0x0807E7D8 + push {lr} + ldr r0, _0807E7E8 @ =gUnk_02033280 + ldrb r1, [r0, #8] + movs r0, #6 + bl sub_08050054 + pop {pc} + .align 2, 0 +_0807E7E8: .4byte gUnk_02033280 + + thumb_func_start sub_0807E7EC +sub_0807E7EC: @ 0x0807E7EC + push {lr} + ldr r0, _0807E7FC @ =gUnk_02033280 + ldrb r1, [r0, #8] + movs r0, #7 + bl sub_08050054 + pop {pc} + .align 2, 0 +_0807E7FC: .4byte gUnk_02033280 + + thumb_func_start sub_0807E800 +sub_0807E800: @ 0x0807E800 + push {lr} + movs r0, #0x10 + bl sub_0807E818 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807E80C +sub_0807E80C: @ 0x0807E80C + push {lr} + movs r0, #0x11 + bl sub_0807E818 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807E818 +sub_0807E818: @ 0x0807E818 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r2, _0807E83C @ =gUnk_03000BF0 + ldr r3, [r2, #0x30] + cmp r3, #0 + beq _0807E840 + movs r0, #0x2e + ldrsh r1, [r3, r0] + movs r4, #0xa + ldrsh r0, [r2, r4] + subs r4, r1, r0 + movs r0, #0x32 + ldrsh r1, [r3, r0] + movs r3, #0xc + ldrsh r0, [r2, r3] + subs r1, r1, r0 + b _0807E844 + .align 2, 0 +_0807E83C: .4byte gUnk_03000BF0 +_0807E840: + movs r4, #0x78 + movs r1, #0x50 +_0807E844: + ldr r0, _0807E854 @ =gUnk_02033280 + ldrb r3, [r0, #8] + adds r0, r4, #0 + adds r2, r5, #0 + bl sub_08050110 + pop {r4, r5, pc} + .align 2, 0 +_0807E854: .4byte gUnk_02033280 + + thumb_func_start sub_0807E858 +sub_0807E858: @ 0x0807E858 + push {lr} + ldr r0, [r1] + ldrh r0, [r0, #2] + bl sub_08050038 + pop {pc} + + thumb_func_start sub_0807E864 +sub_0807E864: @ 0x0807E864 + push {lr} + ldr r0, _0807E874 @ =gUnk_03003F80 + adds r0, #0x8b + movs r1, #3 + strb r1, [r0] + bl sub_08078B48 + pop {pc} + .align 2, 0 +_0807E874: .4byte gUnk_03003F80 + + thumb_func_start sub_0807E878 +sub_0807E878: @ 0x0807E878 + ldr r0, _0807E884 @ =gUnk_03003F80 + adds r0, #0x8b + movs r1, #1 + strb r1, [r0] + bx lr + .align 2, 0 +_0807E884: .4byte gUnk_03003F80 + + thumb_func_start sub_0807E888 +sub_0807E888: @ 0x0807E888 + ldr r0, _0807E894 @ =gUnk_03003F80 + adds r0, #0x8b + movs r1, #3 + strb r1, [r0] + bx lr + .align 2, 0 +_0807E894: .4byte gUnk_03003F80 + + thumb_func_start sub_0807E898 +sub_0807E898: @ 0x0807E898 + push {lr} + ldr r0, [r1] + bl sub_08016998 + ldr r3, _0807E8C0 @ =gUnk_03003F80 + strb r0, [r3, #0xc] + lsrs r2, r0, #8 + adds r1, r3, #0 + adds r1, #0x38 + strb r2, [r1] + lsrs r1, r0, #0x10 + adds r2, r3, #0 + adds r2, #0x39 + strb r1, [r2] + lsrs r0, r0, #0x18 + adds r1, r3, #0 + adds r1, #0x3a + strb r0, [r1] + pop {pc} + .align 2, 0 +_0807E8C0: .4byte gUnk_03003F80 + + thumb_func_start sub_0807E8C4 +sub_0807E8C4: @ 0x0807E8C4 + push {lr} + ldr r0, [r1] + bl sub_08016998 + bl sub_0807DB2C + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807E8D4 +sub_0807E8D4: @ 0x0807E8D4 + ldr r2, _0807E8E0 @ =gUnk_03003F80 + ldr r0, [r1] + ldrh r0, [r0, #2] + strh r0, [r2, #8] + bx lr + .align 2, 0 +_0807E8E0: .4byte gUnk_03003F80 + + thumb_func_start sub_0807E8E4 +sub_0807E8E4: @ 0x0807E8E4 + ldr r0, _0807E8FC @ =gUnk_08016984 + ldrh r0, [r0] + ldr r2, _0807E900 @ =0x000003FF + ands r2, r0 + ldr r3, _0807E904 @ =gUnk_03001160 + ldr r0, [r1] + ldrh r0, [r0] + subs r0, r0, r2 + lsls r0, r0, #1 + strb r0, [r3, #0x14] + bx lr + .align 2, 0 +_0807E8FC: .4byte gUnk_08016984 +_0807E900: .4byte 0x000003FF +_0807E904: .4byte gUnk_03001160 + + thumb_func_start sub_0807E908 +sub_0807E908: @ 0x0807E908 + ldr r1, [r1] + ldrh r1, [r1, #2] + movs r2, #0 + strb r1, [r0, #0xc] + strb r2, [r0, #0xd] + bx lr + + thumb_func_start sub_0807E914 +sub_0807E914: @ 0x0807E914 + push {r4, lr} + adds r4, r1, #0 + ldr r0, [r4] + bl sub_08016998 + str r0, [r4, #4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0807E924 +sub_0807E924: @ 0x0807E924 + adds r0, #0x5a + ldrb r2, [r0] + str r2, [r1, #4] + movs r1, #0 + strb r1, [r0] + bx lr + + thumb_func_start sub_0807E930 +sub_0807E930: @ 0x0807E930 + push {lr} + ldr r3, [r1] + ldrh r2, [r3, #2] + adds r1, r0, #0 + adds r1, #0x80 + strh r2, [r1] + ldrh r1, [r3, #2] + bl sub_080042AC + pop {pc} + + thumb_func_start sub_0807E944 +sub_0807E944: @ 0x0807E944 + push {lr} + adds r2, r0, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #0 + beq _0807E968 + movs r0, #0 + strb r0, [r2] + ldr r2, _0807E964 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + b _0807E96C + .align 2, 0 +_0807E964: .4byte gUnk_02033280 +_0807E968: + ldr r0, _0807E970 @ =gUnk_02033280 + strb r1, [r0, #6] +_0807E96C: + pop {pc} + .align 2, 0 +_0807E970: .4byte gUnk_02033280 + + thumb_func_start sub_0807E974 +sub_0807E974: @ 0x0807E974 + push {lr} + adds r2, r1, #0 + ldrb r1, [r2, #0x18] + cmp r1, #0 + beq _0807E990 + cmp r1, #1 + beq _0807E9AE + ldrb r0, [r2, #0x19] + subs r0, #1 + strb r0, [r2, #0x19] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0807E9C8 + b _0807E9C2 +_0807E990: + adds r3, r0, #0 + adds r3, #0x39 + movs r0, #0 + ldrsb r0, [r3, r0] + cmp r0, #0 + beq _0807E9C2 + strb r1, [r3] + ldrb r0, [r2, #0x18] + adds r0, #1 + strb r0, [r2, #0x18] + ldr r0, [r2] + ldrh r0, [r0, #2] + bl sub_08056378 + b _0807E9C2 +_0807E9AE: + ldr r0, _0807E9CC @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0807E9C2 + movs r0, #2 + strb r0, [r2, #0x18] + movs r0, #0xf + strb r0, [r2, #0x19] +_0807E9C2: + ldr r1, _0807E9D0 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0807E9C8: + pop {pc} + .align 2, 0 +_0807E9CC: .4byte gUnk_02000050 +_0807E9D0: .4byte gUnk_02033280 + + thumb_func_start sub_0807E9D4 +sub_0807E9D4: @ 0x0807E9D4 + push {lr} + bl sub_08078778 + pop {pc} + + thumb_func_start sub_0807E9DC +sub_0807E9DC: @ 0x0807E9DC + push {lr} + bl sub_080788E0 + pop {pc} + + thumb_func_start sub_0807E9E4 +sub_0807E9E4: @ 0x0807E9E4 + push {lr} + ldr r1, [r1] + ldrh r1, [r1, #2] + bl sub_08078784 + pop {pc} + + thumb_func_start sub_0807E9F0 +sub_0807E9F0: @ 0x0807E9F0 + push {r4, lr} + adds r4, r1, #0 + bl sub_0801E00C + movs r2, #1 + ldr r0, _0807EA18 @ =gUnk_02022740 + ldrb r0, [r0] + cmp r0, #1 + beq _0807EA24 + cmp r0, #2 + bne _0807EA40 + ldr r0, _0807EA1C @ =gUnk_03003F80 + adds r0, #0x8b + movs r1, #3 + strb r1, [r0] + ldr r0, _0807EA20 @ =gUnk_02034490 + strb r2, [r0] + str r2, [r4, #0x14] + b _0807EA28 + .align 2, 0 +_0807EA18: .4byte gUnk_02022740 +_0807EA1C: .4byte gUnk_03003F80 +_0807EA20: .4byte gUnk_02034490 +_0807EA24: + movs r0, #0 + str r0, [r4, #0x14] +_0807EA28: + cmp r2, #0 + beq _0807EA40 + bl sub_0807919C + ldr r0, _0807EA3C @ =gUnk_03003F80 + adds r0, #0x8b + movs r1, #1 + strb r1, [r0] + b _0807EA46 + .align 2, 0 +_0807EA3C: .4byte gUnk_03003F80 +_0807EA40: + ldr r1, _0807EA48 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0807EA46: + pop {r4, pc} + .align 2, 0 +_0807EA48: .4byte gUnk_02033280 + + thumb_func_start sub_0807EA4C +sub_0807EA4C: @ 0x0807EA4C + push {r4, lr} + adds r1, r0, #0 + adds r4, r1, #0 + adds r4, #0x39 + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #2 + bne _0807EA7C + adds r0, r1, #0 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_0801DFB4 + movs r0, #0 + strb r0, [r4] + ldr r2, _0807EA78 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + b _0807EA82 + .align 2, 0 +_0807EA78: .4byte gUnk_02033280 +_0807EA7C: + ldr r1, _0807EA84 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0807EA82: + pop {r4, pc} + .align 2, 0 +_0807EA84: .4byte gUnk_02033280 + + thumb_func_start sub_0807EA88 +sub_0807EA88: @ 0x0807EA88 + push {lr} + ldr r1, [r1] + ldrh r1, [r1, #2] + bl sub_08078790 + pop {pc} + + thumb_func_start sub_0807EA94 +sub_0807EA94: @ 0x0807EA94 + push {lr} + ldr r0, _0807EAAC @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + beq _0807EAA8 + ldr r1, _0807EAB0 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0807EAA8: + pop {pc} + .align 2, 0 +_0807EAAC: .4byte gUnk_02000050 +_0807EAB0: .4byte gUnk_02033280 + + thumb_func_start sub_0807EAB4 +sub_0807EAB4: @ 0x0807EAB4 + push {lr} + ldr r0, [r1] + ldrh r0, [r0, #2] + bl sub_08056378 + pop {pc} + + thumb_func_start sub_0807EAC0 +sub_0807EAC0: @ 0x0807EAC0 + push {lr} + adds r2, r0, #0 + ldr r0, [r1] + ldrh r0, [r0, #2] + adds r1, r2, #0 + bl sub_08056398 + pop {pc} + + thumb_func_start sub_0807EAD0 +sub_0807EAD0: @ 0x0807EAD0 + push {r4, lr} + adds r4, r1, #0 + ldr r0, [r4] + ldrh r0, [r0, #2] + bl sub_08056378 + ldr r1, _0807EAEC @ =gUnk_02000050 + movs r0, #1 + strb r0, [r1, #6] + ldr r0, [r4] + ldrh r0, [r0, #4] + strb r0, [r1, #7] + pop {r4, pc} + .align 2, 0 +_0807EAEC: .4byte gUnk_02000050 + + thumb_func_start sub_0807EAF0 +sub_0807EAF0: @ 0x0807EAF0 + push {lr} + ldr r0, _0807EB0C @ =gUnk_02033280 + ldrb r0, [r0, #6] + ldr r2, [r1, #4] + cmp r0, r2 + bls _0807EB10 + lsls r0, r2, #1 + ldr r1, [r1] + adds r1, r1, r0 + ldrh r0, [r1, #2] + bl sub_08056378 + b _0807EB16 + .align 2, 0 +_0807EB0C: .4byte gUnk_02033280 +_0807EB10: + movs r0, #0 + bl sub_08056378 +_0807EB16: + pop {pc} + + thumb_func_start sub_0807EB18 +sub_0807EB18: @ 0x0807EB18 + push {lr} + adds r2, r0, #0 + ldr r0, [r1, #4] + adds r1, r2, #0 + bl sub_08056398 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807EB28 +sub_0807EB28: @ 0x0807EB28 + push {lr} + ldr r0, [r1] + ldrh r0, [r0, #2] + movs r1, #0 + bl sub_08078AA8 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807EB38 +sub_0807EB38: @ 0x0807EB38 + ldr r0, _0807EB40 @ =gUnk_02000040 + ldrb r0, [r0, #1] + str r0, [r1, #4] + bx lr + .align 2, 0 +_0807EB40: .4byte gUnk_02000040 + + thumb_func_start sub_0807EB44 +sub_0807EB44: @ 0x0807EB44 + ldr r1, [r1] + ldrh r1, [r1, #2] + strb r1, [r0, #0x14] + bx lr + + thumb_func_start sub_0807EB4C +sub_0807EB4C: @ 0x0807EB4C + push {r4, lr} + adds r4, r0, #0 + ldr r2, [r1] + ldrh r1, [r2, #2] + ldr r3, _0807EB70 @ =gUnk_03000BF0 + ldrh r0, [r3, #6] + adds r1, r1, r0 + ldrh r2, [r2, #4] + ldrh r0, [r3, #8] + adds r2, r2, r0 + adds r0, r4, #0 + bl sub_080045B4 + bl sub_0806F5B0 + strb r0, [r4, #0x14] + pop {r4, pc} + .align 2, 0 +_0807EB70: .4byte gUnk_03000BF0 + + thumb_func_start sub_0807EB74 +sub_0807EB74: @ 0x0807EB74 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0807EB88 @ =gUnk_03001160 + bl sub_080045C4 + bl sub_0806F5B0 + strb r0, [r4, #0x14] + pop {r4, pc} + .align 2, 0 +_0807EB88: .4byte gUnk_03001160 + + thumb_func_start sub_0807EB8C +sub_0807EB8C: @ 0x0807EB8C + push {r4, lr} + adds r1, r0, #0 + ldr r4, _0807EBA4 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5B0 + movs r1, #0xfe + ands r0, r1 + strb r0, [r4, #0x14] + pop {r4, pc} + .align 2, 0 +_0807EBA4: .4byte gUnk_03001160 + + thumb_func_start sub_0807EBA8 +sub_0807EBA8: @ 0x0807EBA8 + ldr r1, [r1] + ldrh r1, [r1, #2] + strb r1, [r0, #0x15] + bx lr + + thumb_func_start sub_0807EBB0 +sub_0807EBB0: @ 0x0807EBB0 + ldr r1, [r1] + ldrh r1, [r1, #2] + strb r1, [r0, #0x15] + ldrb r1, [r0, #0x15] + lsrs r1, r1, #2 + strb r1, [r0, #0x14] + bx lr + .align 2, 0 + + thumb_func_start sub_0807EBC0 +sub_0807EBC0: @ 0x0807EBC0 + ldr r1, [r1] + ldrh r1, [r1, #2] + strh r1, [r0, #0x24] + bx lr + + thumb_func_start sub_0807EBC8 +sub_0807EBC8: @ 0x0807EBC8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r1] + bl sub_08016998 + str r0, [r4, #0x20] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0807EBD8 +sub_0807EBD8: @ 0x0807EBD8 + push {r4, lr} + ldr r3, _0807EBF0 @ =gUnk_03000BF0 + ldr r2, [r1] + ldrh r1, [r2, #2] + ldrh r4, [r3, #6] + adds r1, r1, r4 + strh r1, [r0, #0x2e] + ldrh r1, [r2, #4] + ldrh r3, [r3, #8] + adds r1, r1, r3 + strh r1, [r0, #0x32] + pop {r4, pc} + .align 2, 0 +_0807EBF0: .4byte gUnk_03000BF0 + + thumb_func_start sub_0807EBF4 +sub_0807EBF4: @ 0x0807EBF4 + ldr r2, [r1] + ldrh r1, [r2, #2] + ldrh r3, [r0, #0x2e] + adds r1, r1, r3 + strh r1, [r0, #0x2e] + ldrh r1, [r2, #4] + ldrh r2, [r0, #0x32] + adds r1, r1, r2 + strh r1, [r0, #0x32] + bx lr + + thumb_func_start sub_0807EC08 +sub_0807EC08: @ 0x0807EC08 + push {lr} + adds r1, r0, #0 + ldr r0, _0807EC14 @ =gUnk_03001160 + bl sub_0806FA24 + pop {pc} + .align 2, 0 +_0807EC14: .4byte gUnk_03001160 + + thumb_func_start nullsub_509 +nullsub_509: @ 0x0807EC18 + bx lr + .align 2, 0 + + thumb_func_start sub_0807EC1C +sub_0807EC1C: @ 0x0807EC1C + push {lr} + adds r3, r0, #0 + adds r2, r1, #0 + ldrb r0, [r2, #0x18] + cmp r0, #0 + bne _0807EC3A + movs r0, #1 + strb r0, [r2, #0x18] + ldr r0, [r2] + ldrh r0, [r0, #2] + strh r0, [r2, #0x12] + ldr r0, [r2, #8] + movs r1, #2 + orrs r0, r1 + str r0, [r2, #8] +_0807EC3A: + adds r0, r3, #0 + adds r1, r2, #0 + bl sub_0807EC44 + pop {pc} + + thumb_func_start sub_0807EC44 +sub_0807EC44: @ 0x0807EC44 + push {r4, lr} + adds r4, r1, #0 + bl sub_0806F69C + ldrh r0, [r4, #0x12] + subs r0, #1 + strh r0, [r4, #0x12] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0807EC5E + ldr r1, _0807EC60 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0807EC5E: + pop {r4, pc} + .align 2, 0 +_0807EC60: .4byte gUnk_02033280 + + thumb_func_start sub_0807EC64 +sub_0807EC64: @ 0x0807EC64 + push {lr} + adds r3, r0, #0 + adds r2, r1, #0 + ldrb r0, [r2, #0x18] + cmp r0, #0 + bne _0807EC88 + movs r0, #1 + strb r0, [r2, #0x18] + ldr r0, [r2] + ldrh r0, [r0, #2] + movs r1, #0 + strh r0, [r2, #0x12] + strb r1, [r3, #0x14] + strb r1, [r3, #0x15] + ldr r0, [r2, #8] + movs r1, #2 + orrs r0, r1 + str r0, [r2, #8] +_0807EC88: + adds r0, r3, #0 + adds r1, r2, #0 + bl sub_0807EC44 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807EC94 +sub_0807EC94: @ 0x0807EC94 + push {lr} + adds r3, r0, #0 + adds r2, r1, #0 + ldrb r0, [r2, #0x18] + cmp r0, #0 + bne _0807ECB8 + movs r0, #1 + strb r0, [r2, #0x18] + ldr r0, [r2] + ldrh r0, [r0, #2] + strh r0, [r2, #0x12] + movs r1, #2 + strb r1, [r3, #0x14] + movs r0, #8 + strb r0, [r3, #0x15] + ldr r0, [r2, #8] + orrs r0, r1 + str r0, [r2, #8] +_0807ECB8: + adds r0, r3, #0 + adds r1, r2, #0 + bl sub_0807EC44 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807ECC4 +sub_0807ECC4: @ 0x0807ECC4 + push {lr} + adds r3, r0, #0 + adds r2, r1, #0 + ldrb r0, [r2, #0x18] + cmp r0, #0 + bne _0807ECEA + movs r0, #1 + strb r0, [r2, #0x18] + ldr r0, [r2] + ldrh r0, [r0, #2] + strh r0, [r2, #0x12] + movs r0, #4 + strb r0, [r3, #0x14] + movs r0, #0x10 + strb r0, [r3, #0x15] + ldr r0, [r2, #8] + movs r1, #2 + orrs r0, r1 + str r0, [r2, #8] +_0807ECEA: + adds r0, r3, #0 + adds r1, r2, #0 + bl sub_0807EC44 + pop {pc} + + thumb_func_start sub_0807ECF4 +sub_0807ECF4: @ 0x0807ECF4 + push {lr} + adds r3, r0, #0 + adds r2, r1, #0 + ldrb r0, [r2, #0x18] + cmp r0, #0 + bne _0807ED1A + movs r0, #1 + strb r0, [r2, #0x18] + ldr r0, [r2] + ldrh r0, [r0, #2] + strh r0, [r2, #0x12] + movs r0, #6 + strb r0, [r3, #0x14] + movs r0, #0x18 + strb r0, [r3, #0x15] + ldr r0, [r2, #8] + movs r1, #2 + orrs r0, r1 + str r0, [r2, #8] +_0807ED1A: + adds r0, r3, #0 + adds r1, r2, #0 + bl sub_0807EC44 + pop {pc} + + thumb_func_start sub_0807ED24 +sub_0807ED24: @ 0x0807ED24 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r6, r1, #0 + ldrb r0, [r6, #0x18] + cmp r0, #0 + bne _0807ED90 + movs r0, #1 + strb r0, [r6, #0x18] + ldr r4, [r6] + ldrh r0, [r4, #6] + strh r0, [r6, #0x12] + ldrh r2, [r4, #2] + movs r1, #0x2e + ldrsh r0, [r7, r1] + ldr r5, _0807ED8C @ =gUnk_03000BF0 + ldrh r1, [r5, #6] + subs r0, r0, r1 + subs r0, r2, r0 + lsls r0, r0, #0x10 + ldrh r1, [r6, #0x12] + bl __divsi3 + str r0, [r6, #0x1c] + ldrh r2, [r4, #4] + movs r3, #0x32 + ldrsh r0, [r7, r3] + ldrh r1, [r5, #8] + subs r0, r0, r1 + subs r0, r2, r0 + lsls r0, r0, #0x10 + ldrh r1, [r6, #0x12] + bl __divsi3 + str r0, [r6, #0x20] + ldrh r1, [r4, #2] + ldrh r0, [r5, #6] + adds r1, r1, r0 + ldrh r2, [r4, #4] + ldrh r0, [r5, #8] + adds r2, r2, r0 + adds r0, r7, #0 + bl sub_080045B4 + bl sub_0806F5B0 + strb r0, [r7, #0x14] + ldr r0, [r6, #8] + movs r1, #2 + orrs r0, r1 + str r0, [r6, #8] + b _0807EDC8 + .align 2, 0 +_0807ED8C: .4byte gUnk_03000BF0 +_0807ED90: + ldrh r0, [r6, #0x12] + subs r0, #1 + strh r0, [r6, #0x12] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0807EDB8 + ldr r2, [r6] + ldr r1, _0807EDB4 @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + ldrh r3, [r2, #2] + adds r0, r0, r3 + strh r0, [r7, #0x2e] + ldrh r0, [r1, #8] + ldrh r2, [r2, #4] + adds r0, r0, r2 + strh r0, [r7, #0x32] + b _0807EDCE + .align 2, 0 +_0807EDB4: .4byte gUnk_03000BF0 +_0807EDB8: + ldr r0, [r7, #0x2c] + ldr r1, [r6, #0x1c] + adds r0, r0, r1 + str r0, [r7, #0x2c] + ldr r0, [r7, #0x30] + ldr r1, [r6, #0x20] + adds r0, r0, r1 + str r0, [r7, #0x30] +_0807EDC8: + ldr r1, _0807EDD0 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0807EDCE: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807EDD0: .4byte gUnk_02033280 + + thumb_func_start sub_0807EDD4 +sub_0807EDD4: @ 0x0807EDD4 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + ldrb r0, [r4, #0x18] + cmp r0, #0 + bne _0807EDEA + movs r0, #1 + strb r0, [r4, #0x18] + adds r0, r5, #0 + bl sub_0807EE04 +_0807EDEA: + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0807EE30 + ldr r1, [r4, #0x14] + cmp r1, #0 + bne _0807EDFC + ldr r0, _0807EE00 @ =gUnk_02033280 + strb r1, [r0, #6] +_0807EDFC: + pop {r4, r5, pc} + .align 2, 0 +_0807EE00: .4byte gUnk_02033280 + + thumb_func_start sub_0807EE04 +sub_0807EE04: @ 0x0807EE04 + push {r4, r5, lr} + ldr r5, [r1] + ldrh r2, [r5, #2] + ldr r4, _0807EE28 @ =gUnk_03000BF0 + ldrh r3, [r4, #6] + adds r2, r2, r3 + ldrh r3, [r5, #4] + ldrh r4, [r4, #8] + adds r3, r3, r4 + bl sub_0807DEDC + ldr r2, _0807EE2C @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, r5, pc} + .align 2, 0 +_0807EE28: .4byte gUnk_03000BF0 +_0807EE2C: .4byte gUnk_02033280 + + thumb_func_start sub_0807EE30 +sub_0807EE30: @ 0x0807EE30 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r5, r1, #0 + ldrb r0, [r5, #0x19] + subs r0, #1 + strb r0, [r5, #0x19] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0807EE60 + movs r0, #8 + strb r0, [r5, #0x19] + movs r1, #0x1e + ldrsh r0, [r5, r1] + movs r2, #0x2e + ldrsh r1, [r6, r2] + subs r0, r0, r1 + movs r3, #0x22 + ldrsh r1, [r5, r3] + movs r3, #0x32 + ldrsh r2, [r6, r3] + subs r1, r1, r2 + bl sub_080045DA + strb r0, [r6, #0x15] +_0807EE60: + movs r0, #0x2e + ldrsh r4, [r6, r0] + movs r1, #0x1e + ldrsh r0, [r5, r1] + subs r4, r4, r0 + movs r2, #0x32 + ldrsh r1, [r6, r2] + movs r3, #0x22 + ldrsh r0, [r5, r3] + subs r7, r1, r0 + movs r0, #0x24 + ldrsh r1, [r6, r0] + ldrb r2, [r6, #0x15] + adds r0, r6, #0 + bl sub_0806F62C + movs r1, #0x2e + ldrsh r0, [r6, r1] + movs r2, #0x1e + ldrsh r1, [r5, r2] + subs r0, r0, r1 + muls r4, r0, r4 + movs r3, #0x32 + ldrsh r0, [r6, r3] + movs r2, #0x22 + ldrsh r1, [r5, r2] + subs r0, r0, r1 + muls r7, r0, r7 + cmp r4, #0 + bgt _0807EEAC + cmp r7, #0 + bgt _0807EEAC + ldrh r0, [r5, #0x1e] + strh r0, [r6, #0x2e] + ldrh r0, [r5, #0x22] + strh r0, [r6, #0x32] + movs r0, #1 + b _0807EEAE +_0807EEAC: + movs r0, #0 +_0807EEAE: + str r0, [r5, #0x14] + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0807EEB4 +sub_0807EEB4: @ 0x0807EEB4 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + ldrb r0, [r4, #0x18] + cmp r0, #0 + bne _0807EED6 + movs r0, #1 + strb r0, [r4, #0x18] + ldr r0, _0807EEEC @ =gUnk_03001160 + movs r1, #0x2e + ldrsh r2, [r0, r1] + movs r1, #0x32 + ldrsh r3, [r0, r1] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0807DEDC +_0807EED6: + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0807EE30 + ldr r1, [r4, #0x14] + cmp r1, #0 + bne _0807EEE8 + ldr r0, _0807EEF0 @ =gUnk_02033280 + strb r1, [r0, #6] +_0807EEE8: + pop {r4, r5, pc} + .align 2, 0 +_0807EEEC: .4byte gUnk_03001160 +_0807EEF0: .4byte gUnk_02033280 + + thumb_func_start sub_0807EEF4 +sub_0807EEF4: @ 0x0807EEF4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r1, #0 + ldrb r0, [r4, #0x18] + cmp r0, #0 + bne _0807EF22 + movs r0, #1 + strb r0, [r4, #0x18] + movs r0, #0x2e + ldrsh r2, [r5, r0] + ldr r1, [r4] + movs r3, #2 + ldrsh r0, [r1, r3] + adds r2, r2, r0 + movs r6, #0x32 + ldrsh r3, [r5, r6] + movs r6, #4 + ldrsh r0, [r1, r6] + adds r3, r3, r0 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0807DEDC +_0807EF22: + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0807EE30 + ldr r1, [r4, #0x14] + cmp r1, #0 + bne _0807EF34 + ldr r0, _0807EF38 @ =gUnk_02033280 + strb r1, [r0, #6] +_0807EF34: + pop {r4, r5, r6, pc} + .align 2, 0 +_0807EF38: .4byte gUnk_02033280 + + thumb_func_start sub_0807EF3C +sub_0807EF3C: @ 0x0807EF3C + push {r4, lr} + adds r3, r0, #0 + adds r2, r1, #0 + ldrb r0, [r2, #0x18] + cmp r0, #0 + bne _0807EF66 + movs r0, #1 + strb r0, [r2, #0x18] + ldr r1, [r2] + movs r4, #2 + ldrsh r0, [r1, r4] + lsls r0, r0, #8 + str r0, [r3, #0x20] + ldrh r0, [r1, #4] + lsls r0, r0, #8 + strh r0, [r2, #0x1c] + ldrh r1, [r2, #0x1c] + adds r0, r3, #0 + bl sub_08003FC4 + b _0807EF72 +_0807EF66: + ldrh r1, [r2, #0x1c] + adds r0, r3, #0 + bl sub_08003FC4 + cmp r0, #0 + beq _0807EF78 +_0807EF72: + ldr r1, _0807EF7C @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0807EF78: + pop {r4, pc} + .align 2, 0 +_0807EF7C: .4byte gUnk_02033280 + + thumb_func_start sub_0807EF80 +sub_0807EF80: @ 0x0807EF80 + ldr r0, [r1] + movs r2, #1 + ldrh r0, [r0, #2] + lsls r2, r0 + ldr r0, [r1, #8] + orrs r0, r2 + str r0, [r1, #8] + bx lr + + thumb_func_start sub_0807EF90 +sub_0807EF90: @ 0x0807EF90 + ldr r0, [r1] + movs r2, #1 + ldrh r0, [r0, #2] + lsls r2, r0 + ldr r0, [r1, #8] + orrs r0, r2 + str r0, [r1, #8] + bx lr + + thumb_func_start sub_0807EFA0 +sub_0807EFA0: @ 0x0807EFA0 + push {lr} + ldr r0, [r1] + ldrh r0, [r0, #2] + bl sub_080A3268 + pop {pc} + + thumb_func_start sub_0807EFAC +sub_0807EFAC: @ 0x0807EFAC + push {lr} + ldr r1, [r1] + ldrh r0, [r1, #2] + cmp r0, #0x63 + bls _0807EFCC + ldr r0, _0807EFC8 @ =gUnk_02033A90 + movs r1, #0x86 + lsls r1, r1, #4 + adds r0, r0, r1 + ldr r0, [r0] + bl sub_080A3268 + b _0807EFD2 + .align 2, 0 +_0807EFC8: .4byte gUnk_02033A90 +_0807EFCC: + ldrh r0, [r1, #2] + bl sub_080A3268 +_0807EFD2: + pop {pc} + + thumb_func_start sub_0807EFD4 +sub_0807EFD4: @ 0x0807EFD4 + push {lr} + ldr r0, [r1] + bl sub_08016998 + bl sub_080A3268 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807EFE4 +sub_0807EFE4: @ 0x0807EFE4 + push {lr} + ldr r0, _0807EFF0 @ =0x80100000 + bl sub_080A3268 + pop {pc} + .align 2, 0 +_0807EFF0: .4byte 0x80100000 + + thumb_func_start sub_0807EFF4 +sub_0807EFF4: @ 0x0807EFF4 + push {lr} + ldr r0, [r1] + movs r1, #2 + ldrsh r0, [r0, r1] + bl sub_080526CC + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807F004 +sub_0807F004: @ 0x0807F004 + push {lr} + ldr r0, [r1] + ldrh r0, [r0, #2] + bl sub_080526A0 + pop {pc} + + thumb_func_start sub_0807F010 +sub_0807F010: @ 0x0807F010 + push {lr} + ldr r3, _0807F030 @ =gUnk_02002A40 + adds r2, r3, #0 + adds r2, #0xab + ldrb r0, [r2] + adds r1, r0, #0 + adds r1, #8 + cmp r1, #0xa0 + ble _0807F024 + movs r1, #0xa0 +_0807F024: + strb r1, [r2] + adds r0, r3, #0 + adds r0, #0xaa + strb r1, [r0] + pop {pc} + .align 2, 0 +_0807F030: .4byte gUnk_02002A40 + + thumb_func_start sub_0807F034 +sub_0807F034: @ 0x0807F034 + push {lr} + movs r3, #0 + ldr r2, [r1] + ldrh r0, [r2, #2] + cmp r0, #0x3f + bne _0807F042 + ldr r3, [r1, #4] +_0807F042: + ldrh r0, [r2, #2] + adds r1, r3, #0 + movs r2, #0 + bl sub_080A7C18 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807F050 +sub_0807F050: @ 0x0807F050 + push {lr} + ldr r0, [r1] + ldrh r1, [r0, #2] + movs r0, #0x5c + movs r2, #0 + bl sub_080A7C18 + pop {pc} + + thumb_func_start sub_0807F060 +sub_0807F060: @ 0x0807F060 + push {r4, lr} + adds r4, r1, #0 + ldr r0, [r4] + ldrh r0, [r0, #2] + bl sub_0807CA84 + str r0, [r4, #4] + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r1, r1, #0x1f + str r1, [r4, #0x14] + pop {r4, pc} + + thumb_func_start sub_0807F078 +sub_0807F078: @ 0x0807F078 + push {lr} + ldr r1, [r1] + ldrh r0, [r1, #2] + ldrh r1, [r1, #4] + bl sub_0807CAA0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807F088 +sub_0807F088: @ 0x0807F088 + push {lr} + ldr r0, [r1] + ldrh r0, [r0, #2] + movs r1, #0 + movs r2, #3 + bl sub_080A7C18 + pop {pc} + + thumb_func_start sub_0807F098 +sub_0807F098: @ 0x0807F098 + ldr r1, _0807F0A0 @ =gUnk_03000BF0 + str r0, [r1, #0x30] + bx lr + .align 2, 0 +_0807F0A0: .4byte gUnk_03000BF0 + + thumb_func_start sub_0807F0A4 +sub_0807F0A4: @ 0x0807F0A4 + ldr r1, _0807F0AC @ =gUnk_03000BF0 + ldr r0, _0807F0B0 @ =gUnk_03001160 + str r0, [r1, #0x30] + bx lr + .align 2, 0 +_0807F0AC: .4byte gUnk_03000BF0 +_0807F0B0: .4byte gUnk_03001160 + + thumb_func_start sub_0807F0B4 +sub_0807F0B4: @ 0x0807F0B4 + ldr r2, _0807F0C4 @ =gUnk_03000BF0 + ldr r0, [r1] + ldrb r1, [r0, #2] + movs r0, #7 + ands r0, r1 + strb r0, [r2, #0xe] + bx lr + .align 2, 0 +_0807F0C4: .4byte gUnk_03000BF0 + + thumb_func_start sub_0807F0C8 +sub_0807F0C8: @ 0x0807F0C8 + push {lr} + ldr r1, [r1] + ldrh r0, [r1, #2] + ldrh r1, [r1, #4] + bl sub_08080964 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807F0D8 +sub_0807F0D8: @ 0x0807F0D8 + ldr r0, _0807F0E8 @ =gUnk_03000FF0 + ldrh r2, [r0, #2] + rsbs r0, r2, #0 + orrs r0, r2 + lsrs r0, r0, #0x1f + str r0, [r1, #0x14] + bx lr + .align 2, 0 +_0807F0E8: .4byte gUnk_03000FF0 + + thumb_func_start sub_0807F0EC +sub_0807F0EC: @ 0x0807F0EC + push {r4, lr} + adds r4, r1, #0 + bl sub_08000E50 + ldr r1, [r4, #4] + bl __modsi3 + str r0, [r4, #4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0807F100 +sub_0807F100: @ 0x0807F100 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08000E50 + movs r2, #6 + adds r1, r0, #0 + ands r1, r2 + strb r1, [r4, #0x14] + ldr r2, _0807F124 @ =gUnk_0811E750 + lsrs r0, r0, #8 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r5, #0x1a] + pop {r4, r5, pc} + .align 2, 0 +_0807F124: .4byte gUnk_0811E750 + + thumb_func_start sub_0807F128 +sub_0807F128: @ 0x0807F128 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08000E50 + ldr r2, _0807F150 @ =gUnk_0811E758 + movs r3, #7 + adds r1, r0, #0 + ands r1, r3 + adds r1, r1, r2 + ldrb r1, [r1] + strb r1, [r4, #0x14] + ldr r1, _0807F154 @ =gUnk_0811E760 + lsrs r0, r0, #8 + ands r0, r3 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r5, #0x1a] + pop {r4, r5, pc} + .align 2, 0 +_0807F150: .4byte gUnk_0811E758 +_0807F154: .4byte gUnk_0811E760 + + thumb_func_start sub_0807F158 +sub_0807F158: @ 0x0807F158 + push {lr} + adds r2, r0, #0 + adds r2, #0x38 + movs r1, #1 + strb r1, [r2] + bl sub_08016A04 + pop {pc} + + thumb_func_start sub_0807F168 +sub_0807F168: @ 0x0807F168 + push {lr} + ldr r0, _0807F17C @ =gUnk_03001160 + adds r2, r0, #0 + adds r2, #0x38 + movs r1, #1 + strb r1, [r2] + bl sub_08016A04 + pop {pc} + .align 2, 0 +_0807F17C: .4byte gUnk_03001160 + + thumb_func_start sub_0807F180 +sub_0807F180: @ 0x0807F180 + push {lr} + adds r2, r0, #0 + adds r2, #0x38 + movs r1, #2 + strb r1, [r2] + bl sub_08016A04 + pop {pc} + + thumb_func_start sub_0807F190 +sub_0807F190: @ 0x0807F190 + push {lr} + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #4 + bl sub_08050054 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807F1A0 +sub_0807F1A0: @ 0x0807F1A0 + push {r4, lr} + ldr r3, _0807F1BC @ =gUnk_03001160 + movs r4, #0x2e + ldrsh r2, [r3, r4] + movs r4, #0x32 + ldrsh r3, [r3, r4] + bl sub_0807DEDC + ldr r2, _0807F1C0 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, pc} + .align 2, 0 +_0807F1BC: .4byte gUnk_03001160 +_0807F1C0: .4byte gUnk_02033280 + + thumb_func_start sub_0807F1C4 +sub_0807F1C4: @ 0x0807F1C4 + push {lr} + ldr r2, _0807F1D8 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _0807F1E0 + ldr r0, _0807F1DC @ =0x00000459 + b _0807F1E4 + .align 2, 0 +_0807F1D8: .4byte gUnk_03003F80 +_0807F1DC: .4byte 0x00000459 +_0807F1E0: + movs r0, #0xde + lsls r0, r0, #1 +_0807F1E4: + strh r0, [r2, #8] + pop {pc} + + thumb_func_start sub_0807F1E8 +sub_0807F1E8: @ 0x0807F1E8 + push {lr} + ldr r2, _0807F1FC @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _0807F204 + ldr r0, _0807F200 @ =0x0000045A + b _0807F206 + .align 2, 0 +_0807F1FC: .4byte gUnk_03003F80 +_0807F200: .4byte 0x0000045A +_0807F204: + ldr r0, _0807F20C @ =0x000002BD +_0807F206: + strh r0, [r2, #8] + pop {pc} + .align 2, 0 +_0807F20C: .4byte 0x000002BD + + thumb_func_start sub_0807F210 +sub_0807F210: @ 0x0807F210 + push {lr} + ldr r2, _0807F224 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _0807F22C + ldr r0, _0807F228 @ =0x0000041C + b _0807F22E + .align 2, 0 +_0807F224: .4byte gUnk_03003F80 +_0807F228: .4byte 0x0000041C +_0807F22C: + ldr r0, _0807F234 @ =0x0000080C +_0807F22E: + strh r0, [r2, #8] + pop {pc} + .align 2, 0 +_0807F234: .4byte 0x0000080C + + thumb_func_start sub_0807F238 +sub_0807F238: @ 0x0807F238 + ldr r2, _0807F240 @ =gUnk_03003F80 + ldr r0, [r1, #4] + strh r0, [r2, #8] + bx lr + .align 2, 0 +_0807F240: .4byte gUnk_03003F80 + + thumb_func_start sub_0807F244 +sub_0807F244: @ 0x0807F244 + push {r4, r5, lr} + ldr r0, [r1, #4] + ldr r4, _0807F298 @ =0x0000FFFF + lsrs r5, r0, #0x10 + ands r4, r0 + cmp r4, #1 + blo _0807F28C + cmp r4, #4 + bls _0807F25A + cmp r4, #6 + bne _0807F28C +_0807F25A: + movs r4, #1 + movs r0, #2 + bl sub_0807CA84 + cmp r0, #0 + beq _0807F268 + movs r4, #2 +_0807F268: + movs r0, #3 + bl sub_0807CA84 + cmp r0, #0 + beq _0807F274 + movs r4, #3 +_0807F274: + movs r0, #4 + bl sub_0807CA84 + cmp r0, #0 + beq _0807F280 + movs r4, #4 +_0807F280: + movs r0, #6 + bl sub_0807CA84 + cmp r0, #0 + beq _0807F28C + movs r4, #6 +_0807F28C: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08054414 + pop {r4, r5, pc} + .align 2, 0 +_0807F298: .4byte 0x0000FFFF + + thumb_func_start sub_0807F29C +sub_0807F29C: @ 0x0807F29C + push {lr} + ldr r0, [r1, #4] + bl sub_0805ED14 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807F2A8 +sub_0807F2A8: @ 0x0807F2A8 + push {lr} + ldr r0, _0807F2C0 @ =gUnk_03003F80 + adds r0, #0x9c + ldr r0, [r0] + cmp r0, #0 + bne _0807F2C8 + ldr r2, _0807F2C4 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + b _0807F2CE + .align 2, 0 +_0807F2C0: .4byte gUnk_03003F80 +_0807F2C4: .4byte gUnk_02033280 +_0807F2C8: + ldr r1, _0807F2D0 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0807F2CE: + pop {pc} + .align 2, 0 +_0807F2D0: .4byte gUnk_02033280 + + thumb_func_start sub_0807F2D4 +sub_0807F2D4: @ 0x0807F2D4 + push {lr} + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _0807F2F8 + ldr r2, _0807F2F4 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + b _0807F2FC + .align 2, 0 +_0807F2F4: .4byte gUnk_02033280 +_0807F2F8: + ldr r0, _0807F300 @ =gUnk_02033280 + strb r1, [r0, #6] +_0807F2FC: + pop {pc} + .align 2, 0 +_0807F300: .4byte gUnk_02033280 + + thumb_func_start sub_0807F304 +sub_0807F304: @ 0x0807F304 + push {lr} + ldr r0, _0807F324 @ =gUnk_03001160 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _0807F32C + ldr r2, _0807F328 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + b _0807F330 + .align 2, 0 +_0807F324: .4byte gUnk_03001160 +_0807F328: .4byte gUnk_02033280 +_0807F32C: + ldr r0, _0807F334 @ =gUnk_02033280 + strb r1, [r0, #6] +_0807F330: + pop {pc} + .align 2, 0 +_0807F334: .4byte gUnk_02033280 + + thumb_func_start sub_0807F338 +sub_0807F338: @ 0x0807F338 + movs r1, #0 + str r1, [r0, #0x48] + ldrb r2, [r0, #0x17] + movs r1, #0xfe + ands r1, r2 + strb r1, [r0, #0x17] + bx lr + .align 2, 0 + + thumb_func_start sub_0807F348 +sub_0807F348: @ 0x0807F348 + push {lr} + movs r1, #2 + bl sub_0805E3A0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807F354 +sub_0807F354: @ 0x0807F354 + push {lr} + movs r1, #6 + bl sub_0805E3A0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807F360 +sub_0807F360: @ 0x0807F360 + push {lr} + movs r1, #3 + bl sub_0805E3A0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807F36C +sub_0807F36C: @ 0x0807F36C + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #0x41 + movs r2, #0 + bl sub_080A29AC + adds r4, r0, #0 + cmp r4, #0 + beq _0807F3C2 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + ldr r3, _0807F3C4 @ =0xFFF80000 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0 + bl sub_0806FA48 + bl sub_08000E50 + movs r5, #1 + ands r0, r5 + cmp r0, #0 + beq _0807F3B0 + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x18] +_0807F3B0: + bl sub_08000E50 + ands r0, r5 + cmp r0, #0 + beq _0807F3C2 + ldrb r0, [r4, #0x18] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x18] +_0807F3C2: + pop {r4, r5, pc} + .align 2, 0 +_0807F3C4: .4byte 0xFFF80000 + + thumb_func_start sub_0807F3C8 +sub_0807F3C8: @ 0x0807F3C8 + push {lr} + bl sub_0807F36C + movs r0, #0xe5 + bl sub_080A3268 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807F3D8 +sub_0807F3D8: @ 0x0807F3D8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + ldr r1, [r1, #4] + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r4, #0x80 + strh r0, [r4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0807F3F8 +sub_0807F3F8: @ 0x0807F3F8 + push {lr} + ldr r0, _0807F408 @ =gUnk_03001160 + movs r2, #0x18 + rsbs r2, r2, #0 + movs r1, #8 + bl sub_080A2CFC + pop {pc} + .align 2, 0 +_0807F408: .4byte gUnk_03001160 + + thumb_func_start sub_0807F40C +sub_0807F40C: @ 0x0807F40C + push {lr} + ldr r0, _0807F41C @ =gUnk_03001160 + movs r2, #0x18 + rsbs r2, r2, #0 + movs r1, #8 + bl sub_080A2D0C + pop {pc} + .align 2, 0 +_0807F41C: .4byte gUnk_03001160 + + thumb_func_start sub_0807F420 +sub_0807F420: @ 0x0807F420 + push {lr} + ldr r2, [r1, #4] + ldrb r0, [r1, #4] + lsrs r2, r2, #8 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r1, r2, #0 + bl sub_080A7138 + pop {pc} + + thumb_func_start sub_0807F434 +sub_0807F434: @ 0x0807F434 + push {lr} + adds r3, r0, #0 + adds r3, #0x39 + movs r2, #0 + ldrsb r2, [r3, r2] + cmp r2, #1 + beq _0807F44C + cmp r2, #2 + beq _0807F44C + movs r0, #0 + str r0, [r1, #4] + b _0807F452 +_0807F44C: + movs r0, #0 + strb r0, [r3] + str r2, [r1, #4] +_0807F452: + ldr r2, _0807F460 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {pc} + .align 2, 0 +_0807F460: .4byte gUnk_02033280 + + thumb_func_start sub_0807F464 +sub_0807F464: @ 0x0807F464 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r5, #0x18] + cmp r0, #0 + bne _0807F4BC + adds r0, #1 + movs r3, #0 + strb r0, [r5, #0x18] + ldr r0, [r5, #8] + movs r1, #2 + orrs r0, r1 + str r0, [r5, #8] + ldr r2, [r5, #4] + ldr r1, _0807F4A8 @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + adds r0, r0, r2 + strh r0, [r5, #0x1e] + ldrh r0, [r4, #0x32] + strh r0, [r5, #0x22] + movs r6, #0x2e + ldrsh r0, [r4, r6] + ldrh r1, [r1, #6] + subs r0, r0, r1 + cmp r2, r0 + ble _0807F4AC + movs r0, #0x40 + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x14] + movs r0, #0x80 + ands r0, r1 + movs r1, #2 + b _0807F4B8 + .align 2, 0 +_0807F4A8: .4byte gUnk_03000BF0 +_0807F4AC: + movs r0, #0xc0 + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x14] + movs r0, #0x80 + ands r0, r1 + movs r1, #6 +_0807F4B8: + orrs r0, r1 + strb r0, [r4, #0x14] +_0807F4BC: + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F62C + movs r2, #0x1e + ldrsh r1, [r5, r2] + movs r6, #0x2e + ldrsh r0, [r4, r6] + subs r1, r1, r0 + ldrb r2, [r4, #0x15] + movs r0, #0x80 + ands r0, r2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r0, r0, #0x18 + eors r1, r0 + cmp r1, #0 + bge _0807F4EA + ldrh r0, [r5, #0x1e] + strh r0, [r4, #0x2e] + b _0807F4F0 +_0807F4EA: + ldr r1, _0807F4F4 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0807F4F0: + pop {r4, r5, r6, pc} + .align 2, 0 +_0807F4F4: .4byte gUnk_02033280 + + thumb_func_start sub_0807F4F8 +sub_0807F4F8: @ 0x0807F4F8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r5, #0x18] + cmp r0, #0 + bne _0807F548 + adds r0, #1 + strb r0, [r5, #0x18] + ldr r0, [r5, #8] + movs r1, #2 + orrs r0, r1 + str r0, [r5, #8] + ldr r2, [r5, #4] + ldrh r0, [r4, #0x2e] + strh r0, [r5, #0x1e] + ldr r1, _0807F538 @ =gUnk_03000BF0 + ldrh r0, [r1, #8] + adds r0, r0, r2 + strh r0, [r5, #0x22] + movs r3, #0x32 + ldrsh r0, [r4, r3] + ldrh r1, [r1, #8] + subs r0, r0, r1 + cmp r2, r0 + ble _0807F53C + movs r0, #0x80 + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x14] + ands r0, r1 + movs r1, #4 + orrs r0, r1 + b _0807F546 + .align 2, 0 +_0807F538: .4byte gUnk_03000BF0 +_0807F53C: + movs r0, #0 + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x14] + movs r0, #0x80 + ands r0, r1 +_0807F546: + strb r0, [r4, #0x14] +_0807F548: + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F62C + movs r2, #0x22 + ldrsh r1, [r5, r2] + movs r3, #0x32 + ldrsh r0, [r4, r3] + subs r1, r1, r0 + ldrb r2, [r4, #0x15] + movs r0, #0x80 + ands r0, r2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r0, r0, #0x18 + eors r1, r0 + cmp r1, #0 + blt _0807F576 + ldrh r0, [r5, #0x22] + strh r0, [r4, #0x32] + b _0807F57C +_0807F576: + ldr r1, _0807F580 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0807F57C: + pop {r4, r5, pc} + .align 2, 0 +_0807F580: .4byte gUnk_02033280 + + thumb_func_start sub_0807F584 +sub_0807F584: @ 0x0807F584 + ldr r0, _0807F590 @ =gUnk_03001160 + ldrb r0, [r0, #0x14] + lsrs r0, r0, #1 + str r0, [r1, #4] + bx lr + .align 2, 0 +_0807F590: .4byte gUnk_03001160 + + thumb_func_start sub_0807F594 +sub_0807F594: @ 0x0807F594 + push {lr} + ldr r0, _0807F5A8 @ =gUnk_03003F80 + adds r0, #0xa8 + ldrb r0, [r0] + cmp r0, #0 + beq _0807F5A6 + ldr r1, _0807F5AC @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0807F5A6: + pop {pc} + .align 2, 0 +_0807F5A8: .4byte gUnk_03003F80 +_0807F5AC: .4byte gUnk_02033280 + + thumb_func_start sub_0807F5B0 +sub_0807F5B0: @ 0x0807F5B0 + ldr r0, _0807F5BC @ =gUnk_03003F80 + ldr r1, [r1, #4] + adds r0, #0x27 + strb r1, [r0] + bx lr + .align 2, 0 +_0807F5BC: .4byte gUnk_03003F80 + + thumb_func_start sub_0807F5C0 +sub_0807F5C0: @ 0x0807F5C0 + push {r4, lr} + ldr r4, _0807F620 @ =gUnk_03000BF0 + ldr r1, [r4, #0x30] + cmp r1, #0 + beq _0807F62E + movs r2, #0x2e + ldrsh r0, [r1, r2] + adds r2, r0, #0 + subs r2, #0x78 + movs r3, #0x32 + ldrsh r0, [r1, r3] + adds r3, r0, #0 + subs r3, #0x50 + ldrh r1, [r4, #6] + cmp r2, r1 + bge _0807F5E2 + adds r2, r1, #0 +_0807F5E2: + ldrh r0, [r4, #0x1e] + adds r0, r1, r0 + subs r0, #0xf0 + cmp r2, r0 + ble _0807F5EE + adds r2, r0, #0 +_0807F5EE: + ldrh r1, [r4, #8] + cmp r3, r1 + bge _0807F5F6 + adds r3, r1, #0 +_0807F5F6: + ldrh r0, [r4, #0x20] + adds r0, r1, r0 + subs r0, #0xa0 + cmp r3, r0 + ble _0807F602 + adds r3, r0, #0 +_0807F602: + movs r1, #0xa + ldrsh r0, [r4, r1] + cmp r2, r0 + bne _0807F628 + movs r2, #0xc + ldrsh r0, [r4, r2] + cmp r3, r0 + bne _0807F628 + ldr r2, _0807F624 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + b _0807F62E + .align 2, 0 +_0807F620: .4byte gUnk_03000BF0 +_0807F624: .4byte gUnk_02033280 +_0807F628: + ldr r1, _0807F630 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0807F62E: + pop {r4, pc} + .align 2, 0 +_0807F630: .4byte gUnk_02033280 + + thumb_func_start sub_0807F634 +sub_0807F634: @ 0x0807F634 + push {lr} + ldr r3, [r1, #4] + ldrh r1, [r3] + ldrh r2, [r3, #2] + ldrh r3, [r3, #4] + bl sub_0801DFB4 + ldr r0, _0807F64C @ =gUnk_03003F80 + adds r0, #0x8b + movs r1, #3 + strb r1, [r0] + pop {pc} + .align 2, 0 +_0807F64C: .4byte gUnk_03003F80 + + thumb_func_start sub_0807F650 +sub_0807F650: @ 0x0807F650 + push {r4, lr} + adds r4, r0, #0 + bl sub_08002632 + ldr r1, _0807F678 @ =gUnk_08001A7C + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldrh r1, [r0] + ldrh r2, [r0, #2] + ldrh r3, [r0, #4] + adds r0, r4, #0 + bl sub_0801DFB4 + ldr r0, _0807F67C @ =gUnk_03003F80 + adds r0, #0x8b + movs r1, #3 + strb r1, [r0] + pop {r4, pc} + .align 2, 0 +_0807F678: .4byte gUnk_08001A7C +_0807F67C: .4byte gUnk_03003F80 + + thumb_func_start sub_0807F680 +sub_0807F680: @ 0x0807F680 + push {lr} + adds r2, r1, #0 + movs r3, #0 + ldr r0, _0807F6A8 @ =gUnk_03001160 + movs r1, #0x2e + ldrsh r0, [r0, r1] + ldr r1, _0807F6AC @ =gUnk_03000BF0 + ldrh r1, [r1, #6] + subs r0, r0, r1 + ldrh r1, [r2, #4] + cmp r0, r1 + ble _0807F69A + movs r3, #1 +_0807F69A: + str r3, [r2, #0x14] + ldr r2, _0807F6B0 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {pc} + .align 2, 0 +_0807F6A8: .4byte gUnk_03001160 +_0807F6AC: .4byte gUnk_03000BF0 +_0807F6B0: .4byte gUnk_02033280 + + thumb_func_start sub_0807F6B4 +sub_0807F6B4: @ 0x0807F6B4 + push {lr} + adds r2, r1, #0 + movs r3, #0 + ldr r0, _0807F6DC @ =gUnk_03001160 + movs r1, #0x32 + ldrsh r0, [r0, r1] + ldr r1, _0807F6E0 @ =gUnk_03000BF0 + ldrh r1, [r1, #8] + subs r0, r0, r1 + ldrh r1, [r2, #4] + cmp r0, r1 + ble _0807F6CE + movs r3, #1 +_0807F6CE: + str r3, [r2, #0x14] + ldr r2, _0807F6E4 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {pc} + .align 2, 0 +_0807F6DC: .4byte gUnk_03001160 +_0807F6E0: .4byte gUnk_03000BF0 +_0807F6E4: .4byte gUnk_02033280 + + thumb_func_start sub_0807F6E8 +sub_0807F6E8: @ 0x0807F6E8 + ldr r2, _0807F6F4 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + ldr r1, [r1, #4] + orrs r0, r1 + str r0, [r2, #0x30] + bx lr + .align 2, 0 +_0807F6F4: .4byte gUnk_03003F80 + + thumb_func_start sub_0807F6F8 +sub_0807F6F8: @ 0x0807F6F8 + ldr r2, _0807F704 @ =gUnk_03003F80 + ldr r1, [r1, #4] + ldr r0, [r2, #0x30] + bics r0, r1 + str r0, [r2, #0x30] + bx lr + .align 2, 0 +_0807F704: .4byte gUnk_03003F80 + + thumb_func_start sub_0807F708 +sub_0807F708: @ 0x0807F708 + push {lr} + ldr r1, [r1, #4] + bl sub_0806F1AC + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807F714 +sub_0807F714: @ 0x0807F714 + push {lr} + adds r1, r0, #0 + ldr r2, _0807F734 @ =gUnk_08114F30 + ldrb r3, [r1, #0x19] + lsrs r0, r3, #6 + adds r0, r0, r2 + ldrb r2, [r0] + lsls r2, r2, #6 + movs r0, #0x3f + ands r0, r3 + orrs r0, r2 + strb r0, [r1, #0x19] + adds r0, r1, #0 + bl sub_0806FAB0 + pop {pc} + .align 2, 0 +_0807F734: .4byte gUnk_08114F30 + + thumb_func_start sub_0807F738 +sub_0807F738: @ 0x0807F738 + push {lr} + adds r1, r0, #0 + ldr r2, _0807F758 @ =gUnk_08114F34 + ldrb r3, [r1, #0x19] + lsrs r0, r3, #6 + adds r0, r0, r2 + ldrb r2, [r0] + lsls r2, r2, #6 + movs r0, #0x3f + ands r0, r3 + orrs r0, r2 + strb r0, [r1, #0x19] + adds r0, r1, #0 + bl sub_0806FAD8 + pop {pc} + .align 2, 0 +_0807F758: .4byte gUnk_08114F34 + + thumb_func_start sub_0807F75C +sub_0807F75C: @ 0x0807F75C + push {r4, lr} + ldr r2, [r1, #4] + ldr r3, _0807F774 @ =gUnk_03001160 + ldr r1, _0807F778 @ =gUnk_03000BF0 + asrs r0, r2, #0x10 + ldrh r4, [r1, #6] + adds r0, r0, r4 + strh r0, [r3, #0x2e] + ldrh r0, [r1, #8] + adds r0, r0, r2 + strh r0, [r3, #0x32] + pop {r4, pc} + .align 2, 0 +_0807F774: .4byte gUnk_03001160 +_0807F778: .4byte gUnk_03000BF0 + + thumb_func_start sub_0807F77C +sub_0807F77C: @ 0x0807F77C + push {lr} + ldr r0, [r1, #0x14] + cmp r0, #0 + beq _0807F786 + movs r0, #1 +_0807F786: + str r0, [r1, #4] + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807F78C +sub_0807F78C: @ 0x0807F78C + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r5, [r1, #4] + cmp r5, #0 + bne _0807F79A + ldr r0, _0807F7BC @ =gUnk_02034350 + ldrb r5, [r0, #6] +_0807F79A: + adds r0, r5, #0 + bl sub_08053FD0 + adds r4, r0, #0 + adds r0, r5, #0 + bl sub_08053FE0 + adds r5, r0, #0 + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08056398 + ldr r0, _0807F7C0 @ =gUnk_02000050 + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + str r5, [r0, #0x10] + pop {r4, r5, r6, pc} + .align 2, 0 +_0807F7BC: .4byte gUnk_02034350 +_0807F7C0: .4byte gUnk_02000050 + + thumb_func_start sub_0807F7C4 +sub_0807F7C4: @ 0x0807F7C4 + push {r4, lr} + adds r4, r1, #0 + ldr r0, [r4, #4] + cmp r0, #0 + bne _0807F7D2 + ldr r0, _0807F7F4 @ =gUnk_02034350 + ldrb r0, [r0, #6] +_0807F7D2: + bl sub_08053FE0 + movs r2, #0 + ldr r1, _0807F7F8 @ =gUnk_02002A40 + adds r1, #0xc0 + ldrh r1, [r1] + cmp r0, r1 + bgt _0807F7E4 + movs r2, #1 +_0807F7E4: + str r2, [r4, #0x14] + ldr r2, _0807F7FC @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, pc} + .align 2, 0 +_0807F7F4: .4byte gUnk_02034350 +_0807F7F8: .4byte gUnk_02002A40 +_0807F7FC: .4byte gUnk_02033280 + + thumb_func_start sub_0807F800 +sub_0807F800: @ 0x0807F800 + push {r4, lr} + ldr r4, [r1, #4] + cmp r4, #0 + bne _0807F80C + ldr r0, _0807F834 @ =gUnk_02034350 + ldrb r4, [r0, #6] +_0807F80C: + adds r0, r4, #0 + bl sub_08053FE0 + rsbs r0, r0, #0 + bl sub_080526CC + adds r0, r4, #0 + movs r1, #0 + movs r2, #0 + bl sub_080A7C18 + ldr r1, _0807F834 @ =gUnk_02034350 + movs r0, #0 + strb r0, [r1, #6] + ldr r2, _0807F838 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, pc} + .align 2, 0 +_0807F834: .4byte gUnk_02034350 +_0807F838: .4byte gUnk_02033280 + + thumb_func_start sub_0807F83C +sub_0807F83C: @ 0x0807F83C + push {lr} + bl sub_08079184 + pop {pc} + + thumb_func_start sub_0807F844 +sub_0807F844: @ 0x0807F844 + push {lr} + ldr r1, _0807F850 @ =gUnk_03000BF0 + str r0, [r1, #0x30] + bl sub_080809D4 + pop {pc} + .align 2, 0 +_0807F850: .4byte gUnk_03000BF0 + + thumb_func_start sub_0807F854 +sub_0807F854: @ 0x0807F854 + push {lr} + ldr r1, [r1, #4] + lsrs r2, r1, #0x10 + movs r0, #3 + ands r2, r0 + ldr r3, _0807F870 @ =0x0000FFFF + ands r3, r1 + cmp r2, #4 + bhi _0807F8B4 + lsls r0, r2, #2 + ldr r1, _0807F874 @ =_0807F878 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0807F870: .4byte 0x0000FFFF +_0807F874: .4byte _0807F878 +_0807F878: @ jump table + .4byte _0807F88C @ case 0 + .4byte _0807F88C @ case 1 + .4byte _0807F898 @ case 2 + .4byte _0807F8A4 @ case 3 + .4byte _0807F8B0 @ case 4 +_0807F88C: + ldr r0, _0807F894 @ =gUnk_02000050 + str r3, [r0, #0x10] + b _0807F8B4 + .align 2, 0 +_0807F894: .4byte gUnk_02000050 +_0807F898: + ldr r0, _0807F8A0 @ =gUnk_02000050 + str r3, [r0, #0x14] + b _0807F8B4 + .align 2, 0 +_0807F8A0: .4byte gUnk_02000050 +_0807F8A4: + ldr r0, _0807F8AC @ =gUnk_02000050 + str r3, [r0, #0x18] + b _0807F8B4 + .align 2, 0 +_0807F8AC: .4byte gUnk_02000050 +_0807F8B0: + ldr r0, _0807F8B8 @ =gUnk_02000050 + str r3, [r0, #0x1c] +_0807F8B4: + pop {pc} + .align 2, 0 +_0807F8B8: .4byte gUnk_02000050 + + thumb_func_start sub_0807F8BC +sub_0807F8BC: @ 0x0807F8BC + push {r4, lr} + adds r4, r1, #0 + bl sub_080040A8 + cmp r0, #0 + beq _0807F8CA + movs r0, #1 +_0807F8CA: + str r0, [r4, #0x14] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0807F8D0 +sub_0807F8D0: @ 0x0807F8D0 + push {lr} + ldr r1, [r1, #4] + bl sub_08003FC4 + ldr r2, _0807F8E4 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {pc} + .align 2, 0 +_0807F8E4: .4byte gUnk_02033280 + + thumb_func_start sub_0807F8E8 +sub_0807F8E8: @ 0x0807F8E8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r1, #0xa6 + movs r2, #0 + movs r3, #0 + bl sub_080A2988 + adds r2, r0, #0 + cmp r2, #0 + beq _0807F912 + str r4, [r2, #0x50] + ldr r0, [r5, #4] + ldr r1, _0807F914 @ =0x000003FF + ands r0, r1 + movs r3, #0x80 + lsls r3, r3, #8 + adds r1, r3, #0 + adds r2, #0x86 + orrs r0, r1 + strh r0, [r2] +_0807F912: + pop {r4, r5, pc} + .align 2, 0 +_0807F914: .4byte 0x000003FF + + thumb_func_start sub_0807F918 +sub_0807F918: @ 0x0807F918 + push {lr} + ldr r0, [r1, #4] + bl sub_08054398 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807F924 +sub_0807F924: @ 0x0807F924 + push {lr} + bl sub_0807879C + pop {pc} + + thumb_func_start sub_0807F92C +sub_0807F92C: @ 0x0807F92C + push {lr} + bl sub_080787C0 + pop {pc} + + thumb_func_start sub_0807F934 +sub_0807F934: @ 0x0807F934 + push {lr} + bl sub_080787B4 + pop {pc} + + thumb_func_start sub_0807F93C +sub_0807F93C: @ 0x0807F93C + push {lr} + ldr r2, [r1, #4] + lsrs r1, r2, #8 + movs r3, #0xff + ands r1, r3 + ands r2, r3 + bl sub_080A2D1C + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807F950 +sub_0807F950: @ 0x0807F950 + push {lr} + sub sp, #4 + movs r0, #2 + str r0, [sp] + movs r0, #6 + movs r1, #0x56 + movs r2, #6 + movs r3, #0 + bl sub_0805EB2C + cmp r0, #0 + beq _0807F96C + bl sub_0805E7BC +_0807F96C: + add sp, #4 + pop {pc} + + thumb_func_start sub_0807F970 +sub_0807F970: @ 0x0807F970 + push {lr} + adds r2, r1, #0 + movs r3, #0 + ldr r1, _0807F988 @ =gUnk_02022780 + ldr r0, [r2, #4] + ldrh r1, [r1, #0x28] + cmp r0, r1 + bne _0807F982 + movs r3, #1 +_0807F982: + str r3, [r2, #0x14] + pop {pc} + .align 2, 0 +_0807F988: .4byte gUnk_02022780 + + thumb_func_start sub_0807F98C +sub_0807F98C: @ 0x0807F98C + ldr r1, [r1, #4] + str r1, [r0, #0x34] + bx lr + .align 2, 0 + + thumb_func_start sub_0807F994 +sub_0807F994: @ 0x0807F994 + ldr r2, [r1, #4] + asrs r1, r2, #0x10 + adds r3, r0, #0 + adds r3, #0x62 + strb r1, [r3] + adds r0, #0x63 + strb r2, [r0] + bx lr + + thumb_func_start sub_0807F9A4 +sub_0807F9A4: @ 0x0807F9A4 + push {lr} + ldr r0, _0807F9BC @ =gUnk_03003F80 + adds r0, #0xa8 + ldrb r0, [r0] + subs r0, #5 + cmp r0, #0x17 + bhi _0807FA30 + lsls r0, r0, #2 + ldr r1, _0807F9C0 @ =_0807F9C4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0807F9BC: .4byte gUnk_03003F80 +_0807F9C0: .4byte _0807F9C4 +_0807F9C4: @ jump table + .4byte _0807FA24 @ case 0 + .4byte _0807FA30 @ case 1 + .4byte _0807FA24 @ case 2 + .4byte _0807FA24 @ case 3 + .4byte _0807FA30 @ case 4 + .4byte _0807FA24 @ case 5 + .4byte _0807FA24 @ case 6 + .4byte _0807FA24 @ case 7 + .4byte _0807FA24 @ case 8 + .4byte _0807FA24 @ case 9 + .4byte _0807FA24 @ case 10 + .4byte _0807FA24 @ case 11 + .4byte _0807FA24 @ case 12 + .4byte _0807FA24 @ case 13 + .4byte _0807FA24 @ case 14 + .4byte _0807FA24 @ case 15 + .4byte _0807FA24 @ case 16 + .4byte _0807FA24 @ case 17 + .4byte _0807FA24 @ case 18 + .4byte _0807FA24 @ case 19 + .4byte _0807FA30 @ case 20 + .4byte _0807FA30 @ case 21 + .4byte _0807FA24 @ case 22 + .4byte _0807FA24 @ case 23 +_0807FA24: + ldr r1, _0807FA2C @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] + b _0807FA3A + .align 2, 0 +_0807FA2C: .4byte gUnk_02033280 +_0807FA30: + ldr r2, _0807FA3C @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] +_0807FA3A: + pop {pc} + .align 2, 0 +_0807FA3C: .4byte gUnk_02033280 + + thumb_func_start sub_0807FA40 +sub_0807FA40: @ 0x0807FA40 + push {lr} + ldr r0, _0807FA58 @ =gUnk_03003F80 + adds r0, #0xa8 + ldrb r0, [r0] + subs r0, #5 + cmp r0, #0x17 + bhi _0807FACC + lsls r0, r0, #2 + ldr r1, _0807FA5C @ =_0807FA60 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0807FA58: .4byte gUnk_03003F80 +_0807FA5C: .4byte _0807FA60 +_0807FA60: @ jump table + .4byte _0807FAC0 @ case 0 + .4byte _0807FACC @ case 1 + .4byte _0807FAC0 @ case 2 + .4byte _0807FAC0 @ case 3 + .4byte _0807FACC @ case 4 + .4byte _0807FAC0 @ case 5 + .4byte _0807FAC0 @ case 6 + .4byte _0807FAC0 @ case 7 + .4byte _0807FAC0 @ case 8 + .4byte _0807FAC0 @ case 9 + .4byte _0807FAC0 @ case 10 + .4byte _0807FAC0 @ case 11 + .4byte _0807FAC0 @ case 12 + .4byte _0807FAC0 @ case 13 + .4byte _0807FACC @ case 14 + .4byte _0807FAC0 @ case 15 + .4byte _0807FAC0 @ case 16 + .4byte _0807FAC0 @ case 17 + .4byte _0807FAC0 @ case 18 + .4byte _0807FAC0 @ case 19 + .4byte _0807FACC @ case 20 + .4byte _0807FACC @ case 21 + .4byte _0807FAC0 @ case 22 + .4byte _0807FAC0 @ case 23 +_0807FAC0: + ldr r1, _0807FAC8 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] + b _0807FAD6 + .align 2, 0 +_0807FAC8: .4byte gUnk_02033280 +_0807FACC: + ldr r2, _0807FAD8 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] +_0807FAD6: + pop {pc} + .align 2, 0 +_0807FAD8: .4byte gUnk_02033280 + + thumb_func_start sub_0807FADC +sub_0807FADC: @ 0x0807FADC + push {r4, lr} + adds r2, r0, #0 + adds r4, r1, #0 + ldrb r0, [r4, #0x18] + cmp r0, #1 + beq _0807FB06 + cmp r0, #1 + bgt _0807FAF2 + cmp r0, #0 + beq _0807FAF8 + b _0807FB1C +_0807FAF2: + cmp r0, #2 + beq _0807FB16 + b _0807FB1C +_0807FAF8: + movs r0, #1 + strb r0, [r4, #0x18] + ldr r1, [r4, #4] + adds r0, r2, #0 + bl sub_0808C650 + b _0807FB1C +_0807FB06: + bl sub_0808C67C + cmp r0, #0 + beq _0807FB1C + ldrb r0, [r4, #0x18] + adds r0, #1 + strb r0, [r4, #0x18] + b _0807FB1C +_0807FB16: + bl sub_0808C688 + b _0807FB22 +_0807FB1C: + ldr r1, _0807FB24 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0807FB22: + pop {r4, pc} + .align 2, 0 +_0807FB24: .4byte gUnk_02033280 + + thumb_func_start sub_0807FB28 +sub_0807FB28: @ 0x0807FB28 + push {r4, lr} + adds r4, r1, #0 + ldrb r0, [r4, #0x18] + cmp r0, #0 + bne _0807FB3A + ldr r0, _0807FB54 @ =0x00007FFF + movs r1, #1 + bl sub_0801D7BC +_0807FB3A: + ldrb r0, [r4, #0x18] + adds r0, #1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x18] + ldr r0, [r4, #4] + cmp r1, r0 + blo _0807FB58 + movs r0, #0 + movs r1, #0 + bl sub_0801D7BC + b _0807FB5E + .align 2, 0 +_0807FB54: .4byte 0x00007FFF +_0807FB58: + ldr r1, _0807FB60 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0807FB5E: + pop {r4, pc} + .align 2, 0 +_0807FB60: .4byte gUnk_02033280 + + thumb_func_start sub_0807FB64 +sub_0807FB64: @ 0x0807FB64 + ldr r0, _0807FB70 @ =gUnk_03001160 + ldr r1, [r1, #4] + adds r0, #0x3d + strb r1, [r0] + bx lr + .align 2, 0 +_0807FB70: .4byte gUnk_03001160 + + thumb_func_start sub_0807FB74 +sub_0807FB74: @ 0x0807FB74 + ldr r0, _0807FB8C @ =gUnk_03003F80 + adds r0, #0x26 + movs r1, #0 + strb r1, [r0] + ldr r1, _0807FB90 @ =gUnk_03001160 + adds r1, #0x3c + ldrb r2, [r1] + movs r0, #0xfb + ands r0, r2 + strb r0, [r1] + bx lr + .align 2, 0 +_0807FB8C: .4byte gUnk_03003F80 +_0807FB90: .4byte gUnk_03001160 + + thumb_func_start sub_0807FB94 +sub_0807FB94: @ 0x0807FB94 + push {lr} + movs r0, #4 + bl sub_08056010 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807FBA0 +sub_0807FBA0: @ 0x0807FBA0 + ldr r2, _0807FBB0 @ =gUnk_03000BF0 + ldrh r1, [r2, #0xa] + adds r1, #0x78 + strh r1, [r0, #0x2e] + ldrh r1, [r2, #0xc] + adds r1, #0x50 + strh r1, [r0, #0x32] + bx lr + .align 2, 0 +_0807FBB0: .4byte gUnk_03000BF0 + + thumb_func_start sub_0807FBB4 +sub_0807FBB4: @ 0x0807FBB4 + ldr r2, _0807FBC0 @ =gUnk_03003F80 + ldrb r1, [r2, #0x1a] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x1a] + bx lr + .align 2, 0 +_0807FBC0: .4byte gUnk_03003F80 + + thumb_func_start sub_0807FBC4 +sub_0807FBC4: @ 0x0807FBC4 + push {lr} + bl sub_0805E4A0 + pop {pc} + + thumb_func_start sub_0807FBCC +sub_0807FBCC: @ 0x0807FBCC + push {lr} + bl sub_0805E4CC + pop {pc} + + thumb_func_start sub_0807FBD4 +sub_0807FBD4: @ 0x0807FBD4 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F62C + adds r0, r4, #0 + bl sub_080040A8 + cmp r0, #0 + beq _0807FBF4 + ldr r1, _0807FBF8 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0807FBF4: + pop {r4, pc} + .align 2, 0 +_0807FBF8: .4byte gUnk_02033280 + + thumb_func_start sub_0807FBFC +sub_0807FBFC: @ 0x0807FBFC + ldr r3, _0807FC20 @ =gUnk_02002A40 + adds r0, r3, #0 + adds r0, #0xb2 + movs r1, #0 + strb r1, [r0] + adds r0, #0x12 + movs r2, #0 + strh r1, [r0] + subs r0, #0x11 + strb r2, [r0] + adds r0, #0x13 + strh r1, [r0] + subs r0, #0xc + strb r2, [r0] + adds r0, #0xe + strh r1, [r0] + bx lr + .align 2, 0 +_0807FC20: .4byte gUnk_02002A40 + + thumb_func_start sub_0807FC24 +sub_0807FC24: @ 0x0807FC24 + push {lr} + ldr r0, _0807FC3C @ =gUnk_03000BF0 + ldrb r0, [r0, #5] + movs r1, #0xd1 + cmp r0, #1 + bne _0807FC32 + movs r1, #0xcf +_0807FC32: + adds r0, r1, #0 + bl sub_0807CCB4 + pop {pc} + .align 2, 0 +_0807FC3C: .4byte gUnk_03000BF0 + + thumb_func_start sub_0807FC40 +sub_0807FC40: @ 0x0807FC40 + push {lr} + ldr r0, _0807FC5C @ =gUnk_03000BF0 + ldrb r2, [r0, #0xf] + movs r1, #0xfb + ands r1, r2 + strb r1, [r0, #0xf] + ldr r2, _0807FC60 @ =gUnk_0811E768 + ldrb r1, [r0, #2] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0807FC5C: .4byte gUnk_03000BF0 +_0807FC60: .4byte gUnk_0811E768 + + thumb_func_start sub_0807FC64 +sub_0807FC64: @ 0x0807FC64 + push {lr} + movs r2, #0 + movs r1, #1 + strb r1, [r0, #2] + strh r2, [r0] + movs r1, #4 + strb r1, [r0, #0xe] + bl sub_0807FC7C + bl sub_080805F8 + pop {pc} + + thumb_func_start sub_0807FC7C +sub_0807FC7C: @ 0x0807FC7C + push {r4, r5, r6, r7, lr} + adds r2, r0, #0 + ldr r0, [r2, #0x30] + cmp r0, #0 + bne _0807FC88 + b _0807FDA6 +_0807FC88: + movs r1, #0xa + ldrsh r4, [r2, r1] + movs r1, #0x2e + ldrsh r0, [r0, r1] + subs r0, #0x78 + subs r3, r4, r0 + cmp r3, #0 + beq _0807FD16 + ldrh r6, [r2, #0xa] + movs r7, #7 + ands r7, r6 + mov ip, r6 + cmp r3, #0 + ble _0807FCDC + ldrh r0, [r2, #6] + adds r5, r0, #0 + cmp r5, r4 + bge _0807FD16 + ldrb r0, [r2, #0xe] + cmp r0, r3 + bgt _0807FCBC + adds r3, r0, #0 + ldrb r1, [r2, #0xf] + movs r0, #4 + orrs r0, r1 + strb r0, [r2, #0xf] +_0807FCBC: + mov r1, ip + subs r0, r1, r3 + strh r0, [r2, #0xa] + subs r0, r7, r3 + cmp r0, #0 + bgt _0807FCCE + ldr r1, _0807FCD8 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] +_0807FCCE: + movs r1, #0xa + ldrsh r0, [r2, r1] + cmp r5, r0 + blt _0807FD16 + b _0807FD14 + .align 2, 0 +_0807FCD8: .4byte gUnk_02000070 +_0807FCDC: + ldrh r0, [r2, #6] + ldrh r1, [r2, #0x1e] + adds r0, r0, r1 + adds r5, r0, #0 + subs r5, #0xf0 + cmp r4, r5 + bge _0807FD16 + ldrb r0, [r2, #0xe] + rsbs r0, r0, #0 + cmp r0, r3 + blt _0807FCFC + adds r3, r0, #0 + ldrb r1, [r2, #0xf] + movs r0, #4 + orrs r0, r1 + strb r0, [r2, #0xf] +_0807FCFC: + subs r0, r6, r3 + strh r0, [r2, #0xa] + subs r0, r7, r3 + cmp r0, #7 + ble _0807FD0C + ldr r1, _0807FD68 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] +_0807FD0C: + movs r1, #0xa + ldrsh r0, [r2, r1] + cmp r0, r5 + blt _0807FD16 +_0807FD14: + strh r5, [r2, #0xa] +_0807FD16: + movs r0, #0xc + ldrsh r4, [r2, r0] + ldr r0, [r2, #0x30] + movs r1, #0x32 + ldrsh r0, [r0, r1] + subs r0, #0x50 + subs r3, r4, r0 + cmp r3, #0 + beq _0807FDA6 + ldrh r6, [r2, #0xc] + movs r7, #7 + ands r7, r6 + mov ip, r6 + cmp r3, #0 + ble _0807FD6C + ldrh r0, [r2, #8] + adds r5, r0, #0 + cmp r5, r4 + bge _0807FDA6 + ldrb r0, [r2, #0xe] + cmp r0, r3 + bgt _0807FD4C + adds r3, r0, #0 + ldrb r1, [r2, #0xf] + movs r0, #4 + orrs r0, r1 + strb r0, [r2, #0xf] +_0807FD4C: + mov r1, ip + subs r0, r1, r3 + strh r0, [r2, #0xc] + subs r0, r7, r3 + cmp r0, #0 + bgt _0807FD5E + ldr r1, _0807FD68 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] +_0807FD5E: + movs r1, #0xc + ldrsh r0, [r2, r1] + cmp r5, r0 + blt _0807FDA6 + b _0807FDA4 + .align 2, 0 +_0807FD68: .4byte gUnk_02000070 +_0807FD6C: + ldrh r0, [r2, #8] + ldrh r1, [r2, #0x20] + adds r0, r0, r1 + adds r5, r0, #0 + subs r5, #0xa0 + cmp r4, r5 + bge _0807FDA6 + ldrb r0, [r2, #0xe] + rsbs r0, r0, #0 + cmp r0, r3 + blt _0807FD8C + adds r3, r0, #0 + ldrb r1, [r2, #0xf] + movs r0, #4 + orrs r0, r1 + strb r0, [r2, #0xf] +_0807FD8C: + subs r0, r6, r3 + strh r0, [r2, #0xc] + subs r0, r7, r3 + cmp r0, #7 + ble _0807FD9C + ldr r1, _0807FDAC @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] +_0807FD9C: + movs r1, #0xc + ldrsh r0, [r2, r1] + cmp r0, r5 + blt _0807FDA6 +_0807FDA4: + strh r5, [r2, #0xc] +_0807FDA6: + bl sub_08080BC4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807FDAC: .4byte gUnk_02000070 + + thumb_func_start sub_0807FDB0 +sub_0807FDB0: @ 0x0807FDB0 + push {lr} + ldr r2, _0807FDC4 @ =gUnk_0811E780 + ldrb r1, [r0, #3] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0807FDC4: .4byte gUnk_0811E780 + + thumb_func_start sub_0807FDC8 +sub_0807FDC8: @ 0x0807FDC8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _0807FDE0 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r4] + bl sub_08000108 + movs r1, #0 + movs r0, #1 + strb r0, [r5, #3] + strb r1, [r4] + pop {r4, r5, pc} + .align 2, 0 +_0807FDE0: .4byte gUnk_02000070 + + thumb_func_start sub_0807FDE4 +sub_0807FDE4: @ 0x0807FDE4 + movs r2, #0 + movs r1, #2 + strb r1, [r0, #3] + strh r2, [r0, #0x18] + ldr r0, _0807FDF4 @ =gUnk_02000070 + strb r1, [r0] + bx lr + .align 2, 0 +_0807FDF4: .4byte gUnk_02000070 + + thumb_func_start sub_0807FDF8 +sub_0807FDF8: @ 0x0807FDF8 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0807FE18 @ =gUnk_02000070 + movs r0, #2 + strb r0, [r1] + ldrh r0, [r4, #0x18] + adds r0, #1 + strh r0, [r4, #0x18] + ldrb r0, [r4, #0x10] + cmp r0, #1 + beq _0807FE44 + cmp r0, #1 + bgt _0807FE1C + cmp r0, #0 + beq _0807FE26 + b _0807FEB6 + .align 2, 0 +_0807FE18: .4byte gUnk_02000070 +_0807FE1C: + cmp r0, #2 + beq _0807FE68 + cmp r0, #3 + beq _0807FE94 + b _0807FEB6 +_0807FE26: + ldrh r0, [r4, #0xc] + subs r0, #4 + strh r0, [r4, #0xc] + ldr r1, [r4, #0x30] + ldr r0, _0807FE3C @ =gUnk_03001160 + cmp r1, r0 + bne _0807FE80 + ldr r0, [r1, #0x30] + ldr r2, _0807FE40 @ =0xFFFFA000 + b _0807FE7C + .align 2, 0 +_0807FE3C: .4byte gUnk_03001160 +_0807FE40: .4byte 0xFFFFA000 +_0807FE44: + ldrh r0, [r4, #0xa] + adds r0, #4 + strh r0, [r4, #0xa] + ldr r1, [r4, #0x30] + ldr r0, _0807FE64 @ =gUnk_03001160 + cmp r1, r0 + bne _0807FE5C + ldr r0, [r1, #0x2c] + movs r2, #0x80 + lsls r2, r2, #7 + adds r0, r0, r2 + str r0, [r1, #0x2c] +_0807FE5C: + ldrh r0, [r4, #0x18] + cmp r0, #0x3c + bne _0807FEB6 + b _0807FE86 + .align 2, 0 +_0807FE64: .4byte gUnk_03001160 +_0807FE68: + ldrh r0, [r4, #0xc] + adds r0, #4 + strh r0, [r4, #0xc] + ldr r1, [r4, #0x30] + ldr r0, _0807FE90 @ =gUnk_03001160 + cmp r1, r0 + bne _0807FE80 + ldr r0, [r1, #0x30] + movs r2, #0xc0 + lsls r2, r2, #7 +_0807FE7C: + adds r0, r0, r2 + str r0, [r1, #0x30] +_0807FE80: + ldrh r0, [r4, #0x18] + cmp r0, #0x28 + bne _0807FEB6 +_0807FE86: + adds r0, r4, #0 + bl sub_0807FEC8 + b _0807FEB6 + .align 2, 0 +_0807FE90: .4byte gUnk_03001160 +_0807FE94: + ldrh r0, [r4, #0xa] + subs r0, #4 + strh r0, [r4, #0xa] + ldr r1, [r4, #0x30] + ldr r0, _0807FEC0 @ =gUnk_03001160 + cmp r1, r0 + bne _0807FEAA + ldr r0, [r1, #0x2c] + ldr r2, _0807FEC4 @ =0xFFFFC000 + adds r0, r0, r2 + str r0, [r1, #0x2c] +_0807FEAA: + ldrh r0, [r4, #0x18] + cmp r0, #0x3c + bne _0807FEB6 + adds r0, r4, #0 + bl sub_0807FEC8 +_0807FEB6: + movs r0, #0 + strh r0, [r4, #0x16] + bl sub_08080BC4 + pop {r4, pc} + .align 2, 0 +_0807FEC0: .4byte gUnk_03001160 +_0807FEC4: .4byte 0xFFFFC000 + + thumb_func_start sub_0807FEC8 +sub_0807FEC8: @ 0x0807FEC8 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0 + strb r0, [r5, #2] + subs r0, #1 + ldr r4, _0807FEEC @ =gUnk_03003FC0 + adds r1, r4, #0 + movs r2, #0x40 + bl sub_0801D610 + subs r4, #0x40 + ldr r1, [r5, #0x30] + ldrh r0, [r1, #0x2e] + strh r0, [r4, #0x16] + ldrh r0, [r1, #0x32] + strh r0, [r4, #0x18] + pop {r4, r5, pc} + .align 2, 0 +_0807FEEC: .4byte gUnk_03003FC0 + + thumb_func_start sub_0807FEF0 +sub_0807FEF0: @ 0x0807FEF0 + push {lr} + ldr r2, _0807FF04 @ =gUnk_0811E78C + ldrb r1, [r0, #3] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0807FF04: .4byte gUnk_0811E78C + + thumb_func_start sub_0807FF08 +sub_0807FF08: @ 0x0807FF08 + movs r2, #0 + movs r1, #1 + strb r1, [r0, #3] + strh r2, [r0, #0x18] + ldr r1, _0807FF18 @ =gUnk_02000070 + movs r0, #3 + strb r0, [r1] + bx lr + .align 2, 0 +_0807FF18: .4byte gUnk_02000070 + + thumb_func_start sub_0807FF1C +sub_0807FF1C: @ 0x0807FF1C + push {lr} + adds r2, r0, #0 + ldr r0, _0807FF4C @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _0807FF48 + ldr r1, _0807FF50 @ =gUnk_02000070 + movs r0, #3 + strb r0, [r1] + ldrh r0, [r2, #0x18] + adds r0, #1 + strh r0, [r2, #0x18] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x13 + bls _0807FF48 + movs r0, #0 + strb r0, [r2, #2] + bl sub_0805E5B4 +_0807FF48: + pop {pc} + .align 2, 0 +_0807FF4C: .4byte gUnk_030010A0 +_0807FF50: .4byte gUnk_02000070 + + thumb_func_start sub_0807FF54 +sub_0807FF54: @ 0x0807FF54 + push {lr} + ldr r2, _0807FF68 @ =gUnk_0811E794 + ldrb r1, [r0, #3] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0807FF68: .4byte gUnk_0811E794 + + thumb_func_start sub_0807FF6C +sub_0807FF6C: @ 0x0807FF6C + push {r4, lr} + movs r1, #1 + strb r1, [r0, #3] + ldr r3, _0807FFC8 @ =gUnk_03000F50 + ldrh r1, [r3] + movs r2, #0x80 + lsls r2, r2, #7 + adds r0, r2, #0 + orrs r0, r1 + strh r0, [r3] + adds r2, r3, #0 + adds r2, #0x60 + ldrb r0, [r2] + movs r4, #0xb8 + lsls r4, r4, #5 + adds r1, r4, #0 + orrs r0, r1 + strh r0, [r2] + adds r2, #2 + ldrh r1, [r2] + movs r0, #0xff + lsls r0, r0, #8 + ands r0, r1 + movs r1, #7 + movs r4, #0 + orrs r0, r1 + strh r0, [r2] + adds r0, r3, #0 + adds r0, #0x5a + movs r1, #0xf0 + strh r1, [r0] + adds r0, #4 + strh r1, [r0] + bl sub_08077B2C + bl sub_080791D0 + ldr r0, _0807FFCC @ =gUnk_03004030 + ldrb r0, [r0, #8] + cmp r0, #0 + beq _0807FFD4 + ldr r1, _0807FFD0 @ =gUnk_03001160 + movs r0, #4 + strb r0, [r1, #0x14] + b _0807FFD8 + .align 2, 0 +_0807FFC8: .4byte gUnk_03000F50 +_0807FFCC: .4byte gUnk_03004030 +_0807FFD0: .4byte gUnk_03001160 +_0807FFD4: + ldr r0, _0807FFE0 @ =gUnk_03001160 + strb r4, [r0, #0x14] +_0807FFD8: + bl sub_080809D4 + pop {r4, pc} + .align 2, 0 +_0807FFE0: .4byte gUnk_03001160 + + thumb_func_start sub_0807FFE4 +sub_0807FFE4: @ 0x0807FFE4 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #2 + strb r0, [r5, #3] + bl sub_080803D0 + adds r0, #6 + strh r0, [r5, #0x18] + ldr r4, _0808002C @ =gUnk_0200B640 + bl sub_08080278 + strh r0, [r4] + ldr r1, _08080030 @ =gUnk_08109194 + ldr r0, _08080034 @ =gUnk_03004030 + ldr r0, [r0] + ldrb r0, [r0, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldr r0, [r0] + bl sub_080197D4 + ldr r4, _08080038 @ =gUnk_0200B654 + ldrh r1, [r5, #0x1e] + lsrs r1, r1, #4 + ldrh r2, [r5, #0x20] + lsrs r2, r2, #4 + adds r0, r4, #0 + bl sub_0807C8B0 + ldr r0, _0808003C @ =gUnk_02002F00 + subs r4, #4 + adds r1, r4, #0 + bl sub_0801AB08 + pop {r4, r5, pc} + .align 2, 0 +_0808002C: .4byte gUnk_0200B640 +_08080030: .4byte gUnk_08109194 +_08080034: .4byte gUnk_03004030 +_08080038: .4byte gUnk_0200B654 +_0808003C: .4byte gUnk_02002F00 + + thumb_func_start sub_08080040 +sub_08080040: @ 0x08080040 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldrh r4, [r5, #0x18] + subs r4, #6 + strh r4, [r5, #0x18] + ldrh r0, [r5, #0x18] + lsls r0, r0, #1 + movs r1, #3 + bl __divsi3 + strh r0, [r5, #0x1a] + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + cmp r4, #0x2a + bls _080800C6 + ldr r3, [r5, #0x30] + movs r1, #0x2e + ldrsh r0, [r3, r1] + movs r2, #0xa + ldrsh r1, [r5, r2] + subs r2, r0, r1 + ldrh r1, [r5, #0x18] + subs r0, r2, r1 + adds r7, r0, #0 + adds r7, #8 + cmp r7, #0 + bge _08080078 + movs r7, #0 +_08080078: + adds r0, r2, r1 + adds r6, r0, #0 + subs r6, #8 + cmp r6, #0xf0 + ble _08080084 + movs r6, #0xf0 +_08080084: + movs r1, #0x32 + ldrsh r0, [r3, r1] + movs r2, #0xc + ldrsh r1, [r5, r2] + subs r2, r0, r1 + ldrh r1, [r5, #0x1a] + subs r0, r2, r1 + adds r4, r0, #0 + adds r4, #8 + cmp r4, #0 + bge _0808009C + movs r4, #0 +_0808009C: + adds r0, r2, r1 + adds r3, r0, #0 + subs r3, #8 + cmp r3, #0xa0 + ble _080800A8 + movs r3, #0xa0 +_080800A8: + ldr r2, _080800F0 @ =gUnk_03000F50 + movs r1, #0xff + ands r7, r1 + lsls r0, r7, #8 + ands r6, r1 + orrs r0, r6 + adds r6, r2, #0 + adds r6, #0x5a + strh r0, [r6] + ands r4, r1 + lsls r0, r4, #8 + ands r3, r1 + orrs r0, r3 + adds r2, #0x5e + strh r0, [r2] +_080800C6: + ldrh r0, [r5, #0x18] + cmp r0, #0 + bne _080800FC + movs r0, #3 + strb r0, [r5, #3] + bl sub_0805E9F4 + bl sub_0807C810 + ldr r1, _080800F4 @ =gUnk_08109194 + ldr r0, _080800F8 @ =gUnk_03004030 + ldr r0, [r0] + ldrb r0, [r0, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldr r0, [r0, #4] + bl sub_08080C80 + b _08080102 + .align 2, 0 +_080800F0: .4byte gUnk_03000F50 +_080800F4: .4byte gUnk_08109194 +_080800F8: .4byte gUnk_03004030 +_080800FC: + ldr r1, _08080104 @ =gUnk_02000070 + movs r0, #4 + strb r0, [r1] +_08080102: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08080104: .4byte gUnk_02000070 + + thumb_func_start sub_08080108 +sub_08080108: @ 0x08080108 + push {r4, r5, r6, lr} + movs r1, #4 + strb r1, [r0, #3] + ldr r5, _08080178 @ =gUnk_02025EB4 + movs r0, #0xc0 + lsls r0, r0, #6 + adds r1, r5, r0 + movs r6, #0x80 + lsls r6, r6, #6 + adds r0, r5, #0 + adds r2, r6, #0 + bl sub_0801D66C + ldr r4, _0808017C @ =gUnk_0200B654 + movs r0, #0xc0 + lsls r0, r0, #6 + adds r1, r4, r0 + adds r0, r4, #0 + adds r2, r6, #0 + bl sub_0801D66C + bl sub_08080368 + ldr r1, _08080180 @ =gUnk_02034480 + ldr r0, _08080184 @ =gUnk_0200B640 + ldrh r0, [r0] + strh r0, [r1] + ldr r0, _08080188 @ =gUnk_02022830 + ldr r1, _0808018C @ =gUnk_020246B0 + movs r2, #0xc0 + lsls r2, r2, #5 + bl sub_0801D66C + subs r5, #4 + adds r0, r5, #0 + bl sub_08080B60 + subs r4, #4 + adds r0, r4, #0 + bl sub_08080B60 + bl sub_0807BBE4 + bl sub_0807BC84 + bl sub_0805E248 + ldr r0, _08080190 @ =gUnk_02019EE0 + adds r1, r5, #0 + bl sub_0801AB08 + ldr r0, _08080194 @ =gUnk_02002F00 + adds r1, r4, #0 + bl sub_0801AB08 + pop {r4, r5, r6, pc} + .align 2, 0 +_08080178: .4byte gUnk_02025EB4 +_0808017C: .4byte gUnk_0200B654 +_08080180: .4byte gUnk_02034480 +_08080184: .4byte gUnk_0200B640 +_08080188: .4byte gUnk_02022830 +_0808018C: .4byte gUnk_020246B0 +_08080190: .4byte gUnk_02019EE0 +_08080194: .4byte gUnk_02002F00 + + thumb_func_start sub_08080198 +sub_08080198: @ 0x08080198 + push {r4, lr} + movs r1, #5 + strb r1, [r0, #3] + movs r4, #0 + movs r1, #0xff + strh r1, [r0, #0x1c] + bl sub_0804B01C + bl sub_0804AFF4 + ldr r0, _080801B8 @ =gUnk_02000070 + strb r4, [r0] + bl sub_080805F8 + pop {r4, pc} + .align 2, 0 +_080801B8: .4byte gUnk_02000070 + + thumb_func_start sub_080801BC +sub_080801BC: @ 0x080801BC + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldrh r4, [r5, #0x18] + adds r4, #6 + strh r4, [r5, #0x18] + ldrh r0, [r5, #0x18] + lsls r0, r0, #1 + movs r1, #3 + bl __divsi3 + strh r0, [r5, #0x1a] + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + cmp r4, #0x1e + bls _08080232 + ldr r2, [r5, #0x30] + movs r0, #0x2e + ldrsh r1, [r2, r0] + movs r3, #0xa + ldrsh r0, [r5, r3] + subs r0, r1, r0 + ldrh r1, [r5, #0x18] + subs r7, r0, r1 + cmp r7, #0 + bge _080801F0 + movs r7, #0 +_080801F0: + adds r6, r0, r1 + cmp r6, #0xf0 + ble _080801F8 + movs r6, #0xf0 +_080801F8: + movs r0, #0x32 + ldrsh r1, [r2, r0] + movs r2, #0xc + ldrsh r0, [r5, r2] + subs r0, r1, r0 + ldrh r1, [r5, #0x1a] + subs r4, r0, r1 + cmp r4, #0 + bge _0808020C + movs r4, #0 +_0808020C: + adds r3, r0, r1 + cmp r3, #0xa0 + ble _08080214 + movs r3, #0xa0 +_08080214: + ldr r2, _08080260 @ =gUnk_03000F50 + movs r1, #0xff + ands r7, r1 + lsls r0, r7, #8 + ands r6, r1 + orrs r0, r6 + adds r6, r2, #0 + adds r6, #0x5a + strh r0, [r6] + ands r4, r1 + lsls r0, r4, #8 + ands r3, r1 + orrs r0, r3 + adds r2, #0x5e + strh r0, [r2] +_08080232: + ldrh r0, [r5, #0x1c] + cmp r0, #0 + bne _08080268 + strb r0, [r5, #2] + strh r0, [r5] + bl sub_0805E5B4 + ldr r1, _08080260 @ =gUnk_03000F50 + ldrh r2, [r1] + ldr r0, _08080264 @ =0x0000BFFF + ands r0, r2 + strh r0, [r1] + adds r2, r1, #0 + adds r2, #0x60 + ldrb r0, [r2] + strh r0, [r2] + adds r1, #0x62 + ldrh r2, [r1] + movs r0, #0xff + lsls r0, r0, #8 + ands r0, r2 + strh r0, [r1] + b _08080272 + .align 2, 0 +_08080260: .4byte gUnk_03000F50 +_08080264: .4byte 0x0000BFFF +_08080268: + ldr r0, _08080274 @ =gUnk_02000070 + movs r1, #4 + strb r1, [r0] + movs r0, #0 + strh r0, [r5, #0x1c] +_08080272: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08080274: .4byte gUnk_02000070 + + thumb_func_start sub_08080278 +sub_08080278: @ 0x08080278 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + ldr r0, _08080344 @ =gUnk_02022830 + mov ip, r0 + ldr r1, _08080348 @ =gUnk_03000BF0 + ldrh r0, [r1, #0x1e] + lsrs r0, r0, #4 + str r0, [sp] + ldrh r0, [r1, #0x20] + lsrs r0, r0, #4 + lsls r0, r0, #6 + str r0, [sp, #4] + movs r5, #0 + mov sl, r5 + cmp r5, r0 + bhs _08080336 + mov sb, r5 +_080802A2: + movs r1, #0 + mov r8, r1 + ldr r0, [sp] + cmp r8, r0 + bhs _08080328 + ldr r4, _0808034C @ =gUnk_0200B654 + add r4, sb + ldr r7, _08080350 @ =gUnk_0200E654 + add r7, sb + ldr r3, _08080354 @ =gUnk_02025EB4 + add r3, sb + ldr r6, _08080358 @ =gUnk_02028EB4 + add r6, sb +_080802BC: + mov r2, sl + add r2, r8 + ldrh r0, [r6] + ldrh r1, [r3] + cmp r0, r1 + beq _080802EA + ldr r0, _0808035C @ =0x00003FFF + cmp r1, r0 + bhi _080802EA + adds r0, #1 + adds r1, r0, #0 + adds r0, r2, #0 + orrs r0, r1 + mov r1, ip + strh r0, [r1] + ldrh r0, [r3] + strh r0, [r1, #2] + movs r0, #4 + add ip, r0 + adds r5, #1 + ldr r0, _08080360 @ =0x000005FF + cmp r5, r0 + bhi _08080336 +_080802EA: + ldrh r0, [r7] + ldrh r1, [r4] + cmp r0, r1 + beq _08080316 + ldr r0, _0808035C @ =0x00003FFF + cmp r1, r0 + bhi _08080316 + movs r1, #0x80 + lsls r1, r1, #8 + adds r0, r1, #0 + orrs r2, r0 + mov r0, ip + strh r2, [r0] + ldrh r0, [r4] + mov r1, ip + strh r0, [r1, #2] + movs r0, #4 + add ip, r0 + adds r5, #1 + ldr r0, _08080364 @ =0x000007FF + cmp r5, r0 + bhi _08080336 +_08080316: + adds r4, #2 + adds r7, #2 + adds r3, #2 + adds r6, #2 + movs r1, #1 + add r8, r1 + ldr r0, [sp] + cmp r8, r0 + blo _080802BC +_08080328: + movs r1, #0x80 + add sb, r1 + movs r0, #0x40 + add sl, r0 + ldr r1, [sp, #4] + cmp sl, r1 + blo _080802A2 +_08080336: + adds r0, r5, #0 + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08080344: .4byte gUnk_02022830 +_08080348: .4byte gUnk_03000BF0 +_0808034C: .4byte gUnk_0200B654 +_08080350: .4byte gUnk_0200E654 +_08080354: .4byte gUnk_02025EB4 +_08080358: .4byte gUnk_02028EB4 +_0808035C: .4byte 0x00003FFF +_08080360: .4byte 0x000005FF +_08080364: .4byte 0x000007FF + + thumb_func_start sub_08080368 +sub_08080368: @ 0x08080368 + push {r4, r5, r6, r7, lr} + ldr r0, _08080384 @ =gUnk_03004030 + ldr r1, _08080388 @ =gUnk_03000BF0 + ldrb r0, [r0, #0xa] + ldrb r1, [r1, #4] + cmp r0, r1 + beq _08080390 + cmp r0, #0xff + beq _08080390 + ldr r1, _0808038C @ =gUnk_02034480 + movs r0, #0 + strh r0, [r1] + b _080803BE + .align 2, 0 +_08080384: .4byte gUnk_03004030 +_08080388: .4byte gUnk_03000BF0 +_0808038C: .4byte gUnk_02034480 +_08080390: + ldr r5, _080803C0 @ =gUnk_020246B0 + ldr r0, _080803C4 @ =gUnk_02034480 + ldrh r0, [r0] + lsls r6, r0, #1 + movs r4, #0 + cmp r4, r6 + bhs _080803B8 + ldr r0, _080803C8 @ =0x00000FFF + adds r7, r0, #0 +_080803A2: + ldrh r0, [r5, #2] + ldrh r2, [r5] + adds r1, r7, #0 + ands r1, r2 + lsrs r2, r2, #0xe + bl sub_0807B9B8 + adds r5, #4 + adds r4, #2 + cmp r4, r6 + blo _080803A2 +_080803B8: + ldr r1, _080803CC @ =gUnk_02000070 + movs r0, #0 + strb r0, [r1] +_080803BE: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080803C0: .4byte gUnk_020246B0 +_080803C4: .4byte gUnk_02034480 +_080803C8: .4byte 0x00000FFF +_080803CC: .4byte gUnk_02000070 + + thumb_func_start sub_080803D0 +sub_080803D0: @ 0x080803D0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x38 + ldr r1, _080804F0 @ =gUnk_03000BF0 + movs r2, #0xa + ldrsh r0, [r1, r2] + ldrh r2, [r1, #6] + subs r0, r0, r2 + str r0, [sp, #0x18] + ldr r3, [r1, #0x30] + movs r4, #0x2e + ldrsh r0, [r3, r4] + subs r0, r0, r2 + str r0, [sp, #0x10] + movs r2, #0xc + ldrsh r0, [r1, r2] + ldrh r1, [r1, #8] + subs r0, r0, r1 + str r0, [sp, #0x1c] + movs r4, #0x32 + ldrsh r0, [r3, r4] + subs r0, r0, r1 + str r0, [sp, #0x14] + movs r0, #0x3c + str r0, [sp, #8] +_08080408: + movs r7, #0 + ldr r1, [sp, #8] + adds r1, #6 + str r1, [sp, #8] + adds r2, r1, #0 + muls r2, r1, r2 + mov sl, r2 + lsls r4, r1, #1 + adds r0, r4, #0 + movs r1, #3 + bl __divsi3 + str r0, [sp, #0xc] + adds r1, r0, #0 + muls r1, r0, r1 + mov sb, r1 + movs r2, #0 + str r2, [sp, #4] + rsbs r4, r4, #0 + adds r4, #1 + mov r0, sb + muls r0, r4, r0 + mov r4, sl + lsls r5, r4, #1 + adds r4, r0, r5 + ldr r0, [sp, #8] + mov r6, sb + muls r6, r0, r6 + adds r0, r6, #0 + mov r1, sl + bl __divsi3 + adds r2, r0, #0 + cmp r7, r2 + bgt _08080506 + ldr r1, [sp, #0x18] + adds r1, #0xf8 + str r1, [sp, #0x20] + mov r1, sl + adds r0, r5, r1 + lsls r3, r0, #1 + str r6, [sp, #0x2c] + ldr r0, [sp, #8] + lsls r1, r0, #2 + rsbs r1, r1, #0 + adds r1, #4 + mov r8, r1 + rsbs r0, r0, #0 + adds r0, #8 + ldr r1, [sp, #0x10] + adds r6, r0, r1 + ldr r0, [sp, #8] + adds r5, r0, r1 + mov r0, r8 + mov r1, sb + muls r1, r0, r1 + mov r8, r1 +_0808047A: + ldr r1, [sp, #0x1c] + adds r1, #0xa8 + mov ip, r1 + ldr r0, [sp, #0x14] + ldr r1, [sp, #4] + adds r0, r0, r1 + str r0, [sp, #0x34] + cmp ip, r0 + ble _080804A0 + ldr r0, [sp, #0x20] + cmp r0, r5 + ble _08080496 + movs r0, #1 + orrs r7, r0 +_08080496: + ldr r1, [sp, #0x18] + cmp r1, r6 + bge _080804A0 + movs r0, #2 + orrs r7, r0 +_080804A0: + ldr r0, [sp, #0x14] + ldr r1, [sp, #4] + subs r0, r0, r1 + mov ip, r0 + adds r0, #8 + ldr r1, [sp, #0x1c] + cmp r1, r0 + bge _080804C4 + ldr r0, [sp, #0x20] + cmp r0, r5 + ble _080804BA + movs r0, #4 + orrs r7, r0 +_080804BA: + ldr r1, [sp, #0x18] + cmp r1, r6 + bge _080804C4 + movs r0, #8 + orrs r7, r0 +_080804C4: + cmp r4, #0 + ble _080804F4 + mov r2, r8 + adds r0, r2, r3 + adds r4, r4, r0 + ldr r0, [sp, #0x2c] + mov r1, sb + subs r0, r0, r1 + str r0, [sp, #0x2c] + lsls r0, r1, #2 + add r8, r0 + adds r6, #1 + subs r5, #1 + ldr r0, [sp, #0x2c] + mov r1, sl + str r3, [sp, #0x30] + bl __divsi3 + adds r2, r0, #0 + ldr r3, [sp, #0x30] + b _080804F6 + .align 2, 0 +_080804F0: .4byte gUnk_03000BF0 +_080804F4: + adds r4, r4, r3 +_080804F6: + mov r1, sl + lsls r0, r1, #2 + adds r3, r3, r0 + ldr r0, [sp, #4] + adds r0, #1 + str r0, [sp, #4] + cmp r0, r2 + ble _0808047A +_08080506: + movs r1, #0 + str r1, [sp] + ldr r2, [sp, #0xc] + str r2, [sp, #4] + mov r4, sb + lsls r6, r4, #1 + lsls r0, r2, #1 + rsbs r0, r0, #0 + adds r0, #1 + mov r1, sl + muls r1, r0, r1 + adds r0, r1, #0 + adds r4, r6, r0 + mov r5, sl + muls r5, r2, r5 + adds r0, r5, #0 + mov r1, sb + bl __divsi3 + adds r2, r0, #0 + ldr r0, [sp] + cmp r0, r2 + bgt _080805E4 + ldr r1, [sp, #0x18] + adds r1, #0xf8 + str r1, [sp, #0x24] + mov r1, sb + adds r0, r6, r1 + lsls r0, r0, #1 + mov r8, r0 + ldr r3, [sp, #0x10] + adds r3, #8 + ldr r6, [sp, #0x10] + str r5, [sp, #0x28] + ldr r1, [sp, #4] + lsls r0, r1, #2 + rsbs r0, r0, #0 + adds r0, #4 + mov r5, sl + muls r5, r0, r5 +_08080556: + ldr r0, [sp, #0x1c] + adds r0, #0xa8 + mov ip, r0 + ldr r1, [sp, #0x14] + ldr r0, [sp, #4] + adds r1, r1, r0 + str r1, [sp, #0x34] + cmp ip, r1 + ble _0808057C + ldr r1, [sp, #0x24] + cmp r1, r6 + ble _08080572 + movs r0, #0x10 + orrs r7, r0 +_08080572: + ldr r0, [sp, #0x18] + cmp r0, r3 + bge _0808057C + movs r0, #0x20 + orrs r7, r0 +_0808057C: + ldr r1, [sp, #0x14] + ldr r0, [sp, #4] + subs r1, r1, r0 + mov ip, r1 + mov r0, ip + adds r0, #8 + ldr r1, [sp, #0x1c] + cmp r1, r0 + bge _080805A2 + ldr r0, [sp, #0x24] + cmp r0, r6 + ble _08080598 + movs r0, #0x40 + orrs r7, r0 +_08080598: + ldr r1, [sp, #0x18] + cmp r1, r3 + bge _080805A2 + movs r0, #0x80 + orrs r7, r0 +_080805A2: + cmp r4, #0 + ble _080805CE + mov r2, r8 + adds r0, r2, r5 + adds r4, r4, r0 + ldr r0, [sp, #0x28] + mov r1, sl + subs r0, r0, r1 + str r0, [sp, #0x28] + lsls r0, r1, #2 + adds r5, r5, r0 + ldr r2, [sp, #4] + subs r2, #1 + str r2, [sp, #4] + ldr r0, [sp, #0x28] + mov r1, sb + str r3, [sp, #0x30] + bl __divsi3 + adds r2, r0, #0 + ldr r3, [sp, #0x30] + b _080805D0 +_080805CE: + add r4, r8 +_080805D0: + mov r1, sb + lsls r0, r1, #2 + add r8, r0 + subs r3, #1 + adds r6, #1 + ldr r0, [sp] + adds r0, #1 + str r0, [sp] + cmp r0, r2 + ble _08080556 +_080805E4: + cmp r7, #0 + beq _080805EA + b _08080408 +_080805EA: + ldr r0, [sp, #8] + add sp, #0x38 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080805F8 +sub_080805F8: @ 0x080805F8 + push {lr} + ldr r0, _08080610 @ =gUnk_03000BF0 + ldrb r0, [r0, #4] + subs r0, #0xc + cmp r0, #0xd + bhi _0808065C + lsls r0, r0, #2 + ldr r1, _08080614 @ =_08080618 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08080610: .4byte gUnk_03000BF0 +_08080614: .4byte _08080618 +_08080618: @ jump table + .4byte _08080650 @ case 0 + .4byte _0808065C @ case 1 + .4byte _0808065C @ case 2 + .4byte _08080650 @ case 3 + .4byte _0808065C @ case 4 + .4byte _0808065C @ case 5 + .4byte _0808065C @ case 6 + .4byte _08080650 @ case 7 + .4byte _08080650 @ case 8 + .4byte _0808065C @ case 9 + .4byte _08080650 @ case 10 + .4byte _08080650 @ case 11 + .4byte _0808065C @ case 12 + .4byte _08080650 @ case 13 +_08080650: + ldr r1, _08080658 @ =gUnk_03004030 + movs r0, #1 + b _08080660 + .align 2, 0 +_08080658: .4byte gUnk_03004030 +_0808065C: + ldr r1, _08080664 @ =gUnk_03004030 + movs r0, #0 +_08080660: + strb r0, [r1, #8] + pop {pc} + .align 2, 0 +_08080664: .4byte gUnk_03004030 + + thumb_func_start sub_08080668 +sub_08080668: @ 0x08080668 + push {r4, r5, lr} + ldr r5, _080806A4 @ =gUnk_03000BF0 + adds r0, r5, #0 + movs r1, #0x38 + bl sub_0801D630 + ldr r4, _080806A8 @ =gUnk_03004030 + adds r0, r4, #0 + movs r1, #0xc + bl sub_0801D630 + ldr r0, _080806AC @ =0x0000FFFF + strh r0, [r5, #0x22] + movs r0, #0xff + strb r0, [r4, #0xa] + ldr r1, _080806B0 @ =gUnk_02034480 + movs r0, #0 + strh r0, [r1] + ldr r0, _080806B4 @ =gUnk_02019EE0 + movs r4, #0x80 + lsls r4, r4, #8 + adds r1, r4, #0 + bl sub_0801D630 + ldr r0, _080806B8 @ =gUnk_02002F00 + adds r1, r4, #0 + bl sub_0801D630 + pop {r4, r5, pc} + .align 2, 0 +_080806A4: .4byte gUnk_03000BF0 +_080806A8: .4byte gUnk_03004030 +_080806AC: .4byte 0x0000FFFF +_080806B0: .4byte gUnk_02034480 +_080806B4: .4byte gUnk_02019EE0 +_080806B8: .4byte gUnk_02002F00 + + thumb_func_start sub_080806BC +sub_080806BC: @ 0x080806BC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov sb, r0 + mov r8, r1 + adds r7, r2, #0 + adds r6, r3, #0 + ldr r0, _08080710 @ =gUnk_02033A90 + ldr r1, _08080714 @ =0x0000085C + adds r0, r0, r1 + ldr r0, [r0] + ldr r5, [r0, #0x18] + ldrh r0, [r5] + ldr r1, _08080718 @ =0x0000FFFF + cmp r0, r1 + beq _08080728 + mov sl, r1 +_080806E2: + ldrh r2, [r5] + movs r0, #1 + lsls r0, r2 + ands r0, r6 + cmp r0, #0 + beq _08080720 + ldr r1, _0808071C @ =gUnk_0811E7AC + lsls r0, r2, #2 + adds r0, r0, r1 + ldr r4, [r0] + adds r0, r5, #0 + mov r1, sb + mov r2, r8 + adds r3, r7, #0 + bl _call_via_r4 + cmp r0, #0 + beq _08080720 + adds r0, r5, #0 + bl sub_08080840 + movs r0, #1 + b _0808072A + .align 2, 0 +_08080710: .4byte gUnk_02033A90 +_08080714: .4byte 0x0000085C +_08080718: .4byte 0x0000FFFF +_0808071C: .4byte gUnk_0811E7AC +_08080720: + adds r5, #0x14 + ldrh r0, [r5] + cmp r0, sl + bne _080806E2 +_08080728: + movs r0, #0 +_0808072A: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08080734 +sub_08080734: @ 0x08080734 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + adds r5, r1, #0 + ldr r0, _08080778 @ =gUnk_02033A90 + ldr r1, _0808077C @ =0x0000085C + adds r0, r0, r1 + ldr r0, [r0] + ldr r4, [r0, #0x18] + movs r0, #0xa + mov r8, r0 + ldrh r0, [r4] + ldr r1, _08080780 @ =0x0000FFFF + cmp r0, r1 + beq _0808078C + adds r7, r1, #0 +_08080756: + movs r0, #1 + ldrh r1, [r4] + lsls r0, r1 + mov r1, r8 + ands r0, r1 + cmp r0, #0 + beq _08080784 + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r5, #0 + movs r3, #0 + bl sub_08080808 + cmp r0, #0 + beq _08080784 + adds r0, r4, #0 + b _0808078E + .align 2, 0 +_08080778: .4byte gUnk_02033A90 +_0808077C: .4byte 0x0000085C +_08080780: .4byte 0x0000FFFF +_08080784: + adds r4, #0x14 + ldrh r0, [r4] + cmp r0, r7 + bne _08080756 +_0808078C: + movs r0, #0 +_0808078E: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08080794 +sub_08080794: @ 0x08080794 + push {r4, lr} + adds r4, r0, #0 + cmp r3, #1 + beq _080807C0 + cmp r3, #1 + blo _080807AC + cmp r3, #2 + beq _080807D4 + cmp r3, #3 + beq _080807E8 +_080807A8: + movs r0, #0 + b _08080800 +_080807AC: + ldr r0, _080807BC @ =gUnk_03000BF0 + ldrh r0, [r0, #0x1e] + lsrs r0, r0, #1 + movs r3, #1 + cmp r0, r1 + bhs _080807F6 + movs r3, #2 + b _080807F6 + .align 2, 0 +_080807BC: .4byte gUnk_03000BF0 +_080807C0: + ldr r0, _080807D0 @ =gUnk_03000BF0 + ldrh r0, [r0, #0x20] + lsrs r0, r0, #1 + movs r3, #4 + cmp r0, r2 + bhs _080807F6 + movs r3, #8 + b _080807F6 + .align 2, 0 +_080807D0: .4byte gUnk_03000BF0 +_080807D4: + ldr r0, _080807E4 @ =gUnk_03000BF0 + ldrh r0, [r0, #0x1e] + lsrs r0, r0, #1 + movs r3, #0x10 + cmp r0, r1 + bhs _080807F6 + movs r3, #0x20 + b _080807F6 + .align 2, 0 +_080807E4: .4byte gUnk_03000BF0 +_080807E8: + ldr r0, _08080804 @ =gUnk_03000BF0 + ldrh r0, [r0, #0x20] + lsrs r0, r0, #1 + movs r3, #0x40 + cmp r0, r2 + bhs _080807F6 + movs r3, #0x80 +_080807F6: + ldrb r0, [r4, #0xa] + ands r0, r3 + cmp r0, #0 + beq _080807A8 + movs r0, #1 +_08080800: + pop {r4, pc} + .align 2, 0 +_08080804: .4byte gUnk_03000BF0 + + thumb_func_start sub_08080808 +sub_08080808: @ 0x08080808 + push {r4, r5, lr} + adds r3, r0, #0 + adds r5, r2, #0 + ldrb r0, [r3, #0xa] + lsls r0, r0, #1 + ldr r2, _08080838 @ =gUnk_0811E7BC + adds r4, r0, r2 + ldrb r0, [r4] + ldrh r2, [r3, #2] + subs r1, r1, r2 + adds r1, r1, r0 + lsls r0, r0, #1 + cmp r1, r0 + bhi _0808083C + ldrb r1, [r4, #1] + ldrh r0, [r3, #4] + subs r0, r5, r0 + adds r0, r0, r1 + lsls r1, r1, #1 + cmp r0, r1 + bhi _0808083C + movs r0, #1 + b _0808083E + .align 2, 0 +_08080838: .4byte gUnk_0811E7BC +_0808083C: + movs r0, #0 +_0808083E: + pop {r4, r5, pc} + + thumb_func_start sub_08080840 +sub_08080840: @ 0x08080840 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0808085C @ =gUnk_030010A0 + movs r1, #1 + strb r1, [r0, #8] + adds r2, r0, #0 + adds r2, #0xc + ldrh r1, [r4, #6] + ldr r0, _08080860 @ =0x000003FF + cmp r1, r0 + bhi _08080864 + strh r1, [r2, #4] + b _08080872 + .align 2, 0 +_0808085C: .4byte gUnk_030010A0 +_08080860: .4byte 0x000003FF +_08080864: + ldr r0, _08080880 @ =gUnk_03000BF0 + ldr r0, [r0, #0x30] + ldrh r1, [r0, #0x2e] + ldr r3, _08080884 @ =0xFFFF8000 + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2, #4] +_08080872: + ldrh r1, [r4, #8] + ldr r0, _08080888 @ =0x000003FF + cmp r1, r0 + bhi _0808088C + strh r1, [r2, #6] + b _0808089A + .align 2, 0 +_08080880: .4byte gUnk_03000BF0 +_08080884: .4byte 0xFFFF8000 +_08080888: .4byte 0x000003FF +_0808088C: + ldr r0, _080808CC @ =gUnk_03000BF0 + ldr r0, [r0, #0x30] + ldrh r1, [r0, #0x32] + ldr r3, _080808D0 @ =0xFFFF8000 + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2, #6] +_0808089A: + ldrb r0, [r4, #0xb] + strb r0, [r2] + ldrb r0, [r4, #0xc] + strb r0, [r2, #1] + ldrb r0, [r4, #0xd] + strb r0, [r2, #8] + ldrb r0, [r4, #0xe] + strb r0, [r2, #3] + ldrb r0, [r4, #0xf] + strb r0, [r2, #2] + ldrh r0, [r4, #0x10] + cmp r0, #0 + beq _080808B8 + bl sub_080A3268 +_080808B8: + ldr r0, _080808D4 @ =gUnk_0811E7C4 + ldrh r1, [r4] + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r4, #0xa] + ldr r1, [r1] + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080808CC: .4byte gUnk_03000BF0 +_080808D0: .4byte 0xFFFF8000 +_080808D4: .4byte gUnk_0811E7C4 + + thumb_func_start sub_080808D8 +sub_080808D8: @ 0x080808D8 + ldr r1, _080808E0 @ =gUnk_030010A0 + movs r0, #0 + strb r0, [r1, #9] + bx lr + .align 2, 0 +_080808E0: .4byte gUnk_030010A0 + + thumb_func_start sub_080808E4 +sub_080808E4: @ 0x080808E4 + push {r4, lr} + ldr r4, _080808F8 @ =gUnk_030010A0 + ldrb r0, [r4, #0xc] + bl sub_08052638 + cmp r0, #0 + beq _080808FC + movs r0, #0 + b _080808FE + .align 2, 0 +_080808F8: .4byte gUnk_030010A0 +_080808FC: + movs r0, #5 +_080808FE: + strb r0, [r4, #9] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08080904 +sub_08080904: @ 0x08080904 + ldr r1, _0808090C @ =gUnk_030010A0 + movs r0, #1 + strb r0, [r1, #9] + bx lr + .align 2, 0 +_0808090C: .4byte gUnk_030010A0 + + thumb_func_start sub_08080910 +sub_08080910: @ 0x08080910 + ldr r1, _08080918 @ =gUnk_030010A0 + movs r0, #1 + strb r0, [r1, #9] + bx lr + .align 2, 0 +_08080918: .4byte gUnk_030010A0 + + thumb_func_start sub_0808091C +sub_0808091C: @ 0x0808091C + push {r4, lr} + adds r4, r1, #0 + bl sub_08080840 + ldr r0, _0808092C @ =gUnk_030010A0 + strb r4, [r0, #9] + pop {r4, pc} + .align 2, 0 +_0808092C: .4byte gUnk_030010A0 + + thumb_func_start sub_08080930 +sub_08080930: @ 0x08080930 + push {lr} + ldr r1, _08080948 @ =gUnk_03000BF0 + movs r2, #0 + movs r0, #5 + strb r0, [r1, #2] + strb r2, [r1, #3] + movs r0, #2 + strh r0, [r1] + strb r2, [r1, #0x10] + bl sub_0805E5A8 + pop {pc} + .align 2, 0 +_08080948: .4byte gUnk_03000BF0 + + thumb_func_start sub_0808094C +sub_0808094C: @ 0x0808094C + push {lr} + cmp r0, #2 + beq _0808095C + ldr r0, _08080958 @ =gUnk_02025EB0 + b _0808095E + .align 2, 0 +_08080958: .4byte gUnk_02025EB0 +_0808095C: + ldr r0, _08080960 @ =gUnk_0200B650 +_0808095E: + pop {pc} + .align 2, 0 +_08080960: .4byte gUnk_0200B650 + + thumb_func_start sub_08080964 +sub_08080964: @ 0x08080964 + ldr r2, _08080970 @ =gUnk_03000BF0 + strh r0, [r2, #0x16] + movs r0, #7 + ands r1, r0 + strb r1, [r2, #0x14] + bx lr + .align 2, 0 +_08080970: .4byte gUnk_03000BF0 + + thumb_func_start sub_08080974 +sub_08080974: @ 0x08080974 + push {r4, lr} + adds r3, r0, #0 + adds r4, r1, #0 + ldr r1, _0808098C @ =gUnk_03000BF0 + ldrh r2, [r1, #6] + adds r0, r2, #0 + adds r0, #0x78 + cmp r3, r0 + bhi _08080990 + strh r2, [r1, #0xa] + b _080809A2 + .align 2, 0 +_0808098C: .4byte gUnk_03000BF0 +_08080990: + ldrh r0, [r1, #0x1e] + adds r2, r2, r0 + adds r0, r2, #0 + subs r0, #0x78 + cmp r3, r0 + bhs _0808099E + adds r0, r3, #0 +_0808099E: + subs r0, #0x78 + strh r0, [r1, #0xa] +_080809A2: + ldrh r2, [r1, #8] + adds r0, r2, #0 + adds r0, #0x50 + cmp r4, r0 + bhi _080809B0 + strh r2, [r1, #0xc] + b _080809C2 +_080809B0: + ldrh r0, [r1, #0x20] + adds r2, r2, r0 + adds r0, r2, #0 + subs r0, #0x50 + cmp r4, r0 + bhs _080809BE + adds r0, r4, #0 +_080809BE: + subs r0, #0x50 + strh r0, [r1, #0xc] +_080809C2: + bl sub_080809D4 + ldr r1, _080809D0 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + pop {r4, pc} + .align 2, 0 +_080809D0: .4byte gUnk_02000070 + + thumb_func_start sub_080809D4 +sub_080809D4: @ 0x080809D4 + push {r4, lr} + ldr r2, _080809F4 @ =gUnk_03000BF0 + ldrb r0, [r2, #0xf] + movs r1, #0xfb + ands r1, r0 + strb r1, [r2, #0xf] + ldr r4, [r2, #0x30] + movs r0, #0x2e + ldrsh r3, [r4, r0] + ldrh r1, [r2, #6] + adds r0, r1, #0 + adds r0, #0x78 + cmp r3, r0 + bgt _080809F8 + strh r1, [r2, #0xa] + b _08080A0A + .align 2, 0 +_080809F4: .4byte gUnk_03000BF0 +_080809F8: + ldrh r0, [r2, #0x1e] + adds r1, r1, r0 + adds r0, r1, #0 + subs r0, #0x78 + cmp r3, r0 + bge _08080A06 + ldrh r0, [r4, #0x2e] +_08080A06: + subs r0, #0x78 + strh r0, [r2, #0xa] +_08080A0A: + ldr r4, [r2, #0x30] + movs r0, #0x32 + ldrsh r3, [r4, r0] + ldrh r1, [r2, #8] + adds r0, r1, #0 + adds r0, #0x50 + cmp r3, r0 + bgt _08080A1E + strh r1, [r2, #0xc] + b _08080A30 +_08080A1E: + ldrh r0, [r2, #0x20] + adds r1, r1, r0 + adds r0, r1, #0 + subs r0, #0x50 + cmp r3, r0 + bge _08080A2C + ldrh r0, [r4, #0x32] +_08080A2C: + subs r0, #0x50 + strh r0, [r2, #0xc] +_08080A30: + bl sub_08080BC4 + ldr r1, _08080A3C @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + pop {r4, pc} + .align 2, 0 +_08080A3C: .4byte gUnk_02000070 + + thumb_func_start sub_08080A40 +sub_08080A40: @ 0x08080A40 + push {r4, r5, r6, r7, lr} + ldr r7, _08080A70 @ =gUnk_03000BF0 + ldr r1, [r7, #0x30] + ldr r0, _08080A74 @ =gUnk_03001160 + adds r2, r7, #0 + cmp r1, r0 + beq _08080A50 + b _08080B5C +_08080A50: + ldr r0, _08080A78 @ =gUnk_03003F80 + ldrb r0, [r0, #2] + cmp r0, #0 + beq _08080A5A + b _08080B5C +_08080A5A: + ldrb r0, [r1, #0xc] + subs r0, #1 + cmp r0, #0x1c + bls _08080A64 + b _08080B5C +_08080A64: + lsls r0, r0, #2 + ldr r1, _08080A7C @ =_08080A80 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08080A70: .4byte gUnk_03000BF0 +_08080A74: .4byte gUnk_03001160 +_08080A78: .4byte gUnk_03003F80 +_08080A7C: .4byte _08080A80 +_08080A80: @ jump table + .4byte _08080AFA @ case 0 + .4byte _08080B5C @ case 1 + .4byte _08080B5C @ case 2 + .4byte _08080B5C @ case 3 + .4byte _08080B5C @ case 4 + .4byte _08080B5C @ case 5 + .4byte _08080B5C @ case 6 + .4byte _08080B5C @ case 7 + .4byte _08080AFA @ case 8 + .4byte _08080B5C @ case 9 + .4byte _08080B5C @ case 10 + .4byte _08080B5C @ case 11 + .4byte _08080B5C @ case 12 + .4byte _08080B5C @ case 13 + .4byte _08080AF4 @ case 14 + .4byte _08080B5C @ case 15 + .4byte _08080B5C @ case 16 + .4byte _08080B5C @ case 17 + .4byte _08080B5C @ case 18 + .4byte _08080B5C @ case 19 + .4byte _08080B5C @ case 20 + .4byte _08080B5C @ case 21 + .4byte _08080B5C @ case 22 + .4byte _08080AFA @ case 23 + .4byte _08080B5C @ case 24 + .4byte _08080B5C @ case 25 + .4byte _08080B5C @ case 26 + .4byte _08080B5C @ case 27 + .4byte _08080AFA @ case 28 +_08080AF4: + ldrb r0, [r2, #4] + cmp r0, #0x48 + beq _08080B5C +_08080AFA: + ldr r3, [r7, #0x30] + movs r0, #0x32 + ldrsh r1, [r3, r0] + ldrh r0, [r7, #8] + subs r6, r1, r0 + movs r0, #0x2e + ldrsh r1, [r3, r0] + ldrh r0, [r7, #6] + subs r5, r1, r0 + asrs r0, r5, #4 + movs r2, #0x3f + ands r0, r2 + asrs r1, r6, #4 + ands r1, r2 + lsls r1, r1, #6 + orrs r0, r1 + adds r3, #0x38 + ldrb r1, [r3] + bl sub_080002C8 + adds r4, r0, #0 + ldr r0, [r7, #0x30] + adds r0, #0x38 + ldrb r2, [r0] + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_080002A8 + ldr r1, _08080B48 @ =gUnk_030010A0 + strh r0, [r1, #0xa] + cmp r4, #0x3f + beq _08080B50 + cmp r4, #0x3f + bhi _08080B4C + cmp r4, #0x29 + bhi _08080B5C + cmp r4, #0x28 + blo _08080B5C + b _08080B50 + .align 2, 0 +_08080B48: .4byte gUnk_030010A0 +_08080B4C: + cmp r4, #0xf1 + bne _08080B5C +_08080B50: + adds r0, r5, #0 + adds r1, r6, #0 + movs r2, #0xff + movs r3, #0xa + bl sub_080806BC +_08080B5C: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08080B60 +sub_08080B60: @ 0x08080B60 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r1, _08080B90 @ =0x00005004 + adds r4, r0, r1 + ldr r2, _08080B94 @ =gUnk_080B37A0 + mov r8, r2 + movs r3, #0 + ldr r1, _08080B98 @ =0x00003FFF + mov ip, r1 + ldr r7, _08080B9C @ =gUnk_080B7910 + ldr r2, _08080BA0 @ =0x0000B004 + adds r1, r0, r2 + adds r2, r0, #4 + ldr r6, _08080BA4 @ =0xFFFFC000 + ldr r5, _08080BA8 @ =0x00000FFF +_08080B80: + ldrh r0, [r2] + cmp r0, ip + bhi _08080BAC + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r0, [r0] + add r0, r8 + b _08080BB0 + .align 2, 0 +_08080B90: .4byte 0x00005004 +_08080B94: .4byte gUnk_080B37A0 +_08080B98: .4byte 0x00003FFF +_08080B9C: .4byte gUnk_080B7910 +_08080BA0: .4byte 0x0000B004 +_08080BA4: .4byte 0xFFFFC000 +_08080BA8: .4byte 0x00000FFF +_08080BAC: + adds r0, r0, r6 + adds r0, r0, r7 +_08080BB0: + ldrb r0, [r0] + strb r0, [r1] + adds r1, #1 + adds r2, #2 + adds r3, #1 + cmp r3, r5 + bls _08080B80 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08080BC4 +sub_08080BC4: @ 0x08080BC4 + push {r4, r5, r6, lr} + ldr r3, _08080C40 @ =gUnk_03000BF0 + movs r0, #0xa + ldrsh r1, [r3, r0] + ldrh r0, [r3, #6] + subs r5, r1, r0 + movs r2, #0xf + ands r5, r2 + movs r1, #0xc + ldrsh r0, [r3, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + ands r0, r2 + adds r6, r0, #0 + adds r6, #8 + ldrh r2, [r3, #0x16] + adds r4, r2, #0 + cmp r4, #0 + beq _08080C50 + subs r2, #1 + strh r2, [r3, #0x16] + ldrb r0, [r3, #0x14] + lsls r0, r0, #4 + movs r1, #0xe + ands r2, r1 + adds r0, r0, r2 + ldr r1, _08080C44 @ =0x080169A4 + adds r2, r0, r1 + ldr r4, _08080C48 @ =gUnk_02025EB0 + ldr r1, [r4] + cmp r1, #0 + beq _08080C16 + movs r0, #0 + ldrsb r0, [r2, r0] + adds r0, r0, r5 + strh r0, [r1, #2] + ldr r1, [r4] + movs r0, #1 + ldrsb r0, [r2, r0] + adds r0, r0, r6 + strh r0, [r1, #4] +_08080C16: + ldr r4, _08080C4C @ =gUnk_0200B650 + ldr r1, [r4] + cmp r1, #0 + beq _08080C30 + movs r0, #0 + ldrsb r0, [r2, r0] + adds r0, r0, r5 + strh r0, [r1, #2] + ldr r1, [r4] + movs r0, #1 + ldrsb r0, [r2, r0] + adds r0, r0, r6 + strh r0, [r1, #4] +_08080C30: + ldrb r1, [r2] + adds r0, r3, #0 + adds r0, #0x24 + strb r1, [r0] + ldrb r1, [r2, #1] + adds r0, #1 + strb r1, [r0] + b _08080C76 + .align 2, 0 +_08080C40: .4byte gUnk_03000BF0 +_08080C44: .4byte 0x080169A4 +_08080C48: .4byte gUnk_02025EB0 +_08080C4C: .4byte gUnk_0200B650 +_08080C50: + ldr r0, _08080C78 @ =gUnk_02025EB0 + ldr r1, [r0] + cmp r1, #0 + beq _08080C5E + strh r5, [r1, #2] + ldr r0, [r0] + strh r6, [r0, #4] +_08080C5E: + ldr r0, _08080C7C @ =gUnk_0200B650 + ldr r1, [r0] + cmp r1, #0 + beq _08080C6C + strh r5, [r1, #2] + ldr r0, [r0] + strh r6, [r0, #4] +_08080C6C: + adds r0, r3, #0 + adds r0, #0x24 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] +_08080C76: + pop {r4, r5, r6, pc} + .align 2, 0 +_08080C78: .4byte gUnk_02025EB0 +_08080C7C: .4byte gUnk_0200B650 + + thumb_func_start sub_08080C80 +sub_08080C80: @ 0x08080C80 + push {r4, lr} + bl sub_080197D4 + ldr r0, _08080CA8 @ =gUnk_02025EB4 + ldr r4, _08080CAC @ =gUnk_03000BF0 + ldrh r1, [r4, #0x1e] + lsrs r1, r1, #4 + ldrh r2, [r4, #0x20] + lsrs r2, r2, #4 + bl sub_0807C8B0 + ldr r0, _08080CB0 @ =gUnk_0200B654 + ldrh r1, [r4, #0x1e] + lsrs r1, r1, #4 + ldrh r2, [r4, #0x20] + lsrs r2, r2, #4 + bl sub_0807C8B0 + pop {r4, pc} + .align 2, 0 +_08080CA8: .4byte gUnk_02025EB4 +_08080CAC: .4byte gUnk_03000BF0 +_08080CB0: .4byte gUnk_0200B654 + + thumb_func_start sub_08080CB4 +sub_08080CB4: @ 0x08080CB4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x58 + ldrb r0, [r4, #0xa] + ldrb r1, [r1] + cmp r0, r1 + beq _08080CF0 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_080042AC + ldrb r0, [r4, #0xa] + cmp r0, #0x5c + beq _08080CD4 + b _08080E00 +_08080CD4: + ldrb r0, [r4, #0xb] + lsls r0, r0, #3 + ldr r1, _08080CEC @ =gUnk_080C9CBC + adds r0, r0, r1 + ldrb r0, [r0] + movs r1, #0xf + ands r1, r0 + lsls r0, r0, #4 + orrs r0, r1 + strb r0, [r4, #0x1a] + b _08080E00 + .align 2, 0 +_08080CEC: .4byte gUnk_080C9CBC +_08080CF0: + adds r0, r4, #0 + bl sub_080042B8 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + cmp r0, #0 + bne _08080D00 + b _08080E00 +_08080D00: + ldrb r0, [r4, #0xa] + subs r0, #0x40 + cmp r0, #0x22 + bhi _08080E00 + lsls r0, r0, #2 + ldr r1, _08080D14 @ =_08080D18 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08080D14: .4byte _08080D18 +_08080D18: @ jump table + .4byte _08080DEE @ case 0 + .4byte _08080DEE @ case 1 + .4byte _08080DEE @ case 2 + .4byte _08080DEE @ case 3 + .4byte _08080E00 @ case 4 + .4byte _08080E00 @ case 5 + .4byte _08080E00 @ case 6 + .4byte _08080E00 @ case 7 + .4byte _08080E00 @ case 8 + .4byte _08080E00 @ case 9 + .4byte _08080E00 @ case 10 + .4byte _08080E00 @ case 11 + .4byte _08080E00 @ case 12 + .4byte _08080E00 @ case 13 + .4byte _08080E00 @ case 14 + .4byte _08080E00 @ case 15 + .4byte _08080E00 @ case 16 + .4byte _08080E00 @ case 17 + .4byte _08080E00 @ case 18 + .4byte _08080E00 @ case 19 + .4byte _08080E00 @ case 20 + .4byte _08080E00 @ case 21 + .4byte _08080E00 @ case 22 + .4byte _08080E00 @ case 23 + .4byte _08080E00 @ case 24 + .4byte _08080E00 @ case 25 + .4byte _08080E00 @ case 26 + .4byte _08080E00 @ case 27 + .4byte _08080DEE @ case 28 + .4byte _08080E00 @ case 29 + .4byte _08080E00 @ case 30 + .4byte _08080E00 @ case 31 + .4byte _08080DA4 @ case 32 + .4byte _08080E00 @ case 33 + .4byte _08080DEE @ case 34 +_08080DA4: + adds r5, r4, #0 + adds r5, #0x6a + ldrb r0, [r5] + cmp r0, #0 + beq _08080DB4 + subs r0, #1 + strb r0, [r5] + b _08080E00 +_08080DB4: + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0xa + strb r0, [r5] + adds r0, r4, #0 + movs r1, #7 + movs r2, #0 + bl sub_080A29AC + adds r1, r0, #0 + cmp r1, #0 + beq _08080E00 + adds r0, r4, #0 + adds r0, #0x62 + ldrb r0, [r0] + adds r2, r1, #0 + adds r2, #0x62 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x63 + ldrb r0, [r0] + adds r2, #1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_0806FAB0 + b _08080E00 +_08080DEE: + ldr r0, _08080E04 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _08080E00 + adds r0, r4, #0 + bl sub_080A2B80 +_08080E00: + pop {r4, r5, pc} + .align 2, 0 +_08080E04: .4byte gUnk_030010A0 + + thumb_func_start sub_08080E08 +sub_08080E08: @ 0x08080E08 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08080EDE + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x1e + bhi _08080EDE + lsls r0, r0, #2 + ldr r1, _08080E2C @ =_08080E30 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08080E2C: .4byte _08080E30 +_08080E30: @ jump table + .4byte _08080ED8 @ case 0 + .4byte _08080ED8 @ case 1 + .4byte _08080EDE @ case 2 + .4byte _08080EDE @ case 3 + .4byte _08080ED8 @ case 4 + .4byte _08080ED8 @ case 5 + .4byte _08080ED8 @ case 6 + .4byte _08080EDE @ case 7 + .4byte _08080ED8 @ case 8 + .4byte _08080ED8 @ case 9 + .4byte _08080ED8 @ case 10 + .4byte _08080ED8 @ case 11 + .4byte _08080ED8 @ case 12 + .4byte _08080EDE @ case 13 + .4byte _08080EDE @ case 14 + .4byte _08080EDE @ case 15 + .4byte _08080EDE @ case 16 + .4byte _08080EDE @ case 17 + .4byte _08080EDE @ case 18 + .4byte _08080EDE @ case 19 + .4byte _08080EAC @ case 20 + .4byte _08080EDE @ case 21 + .4byte _08080EDE @ case 22 + .4byte _08080EDE @ case 23 + .4byte _08080EDE @ case 24 + .4byte _08080EDE @ case 25 + .4byte _08080EDE @ case 26 + .4byte _08080EDE @ case 27 + .4byte _08080EDE @ case 28 + .4byte _08080EDE @ case 29 + .4byte _08080ED8 @ case 30 +_08080EAC: + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r2, r4, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0x10 + orrs r0, r1 + strb r0, [r2] + ldr r0, [r4, #0x4c] + str r0, [r4, #0x54] + b _08080EDE +_08080ED8: + adds r0, r4, #0 + bl sub_08081598 +_08080EDE: + adds r0, r4, #0 + bl sub_0806F520 + cmp r0, #0 + beq _08080EF0 + adds r0, r4, #0 + bl sub_080813BC + b _08080F00 +_08080EF0: + ldr r0, _08080F18 @ =gUnk_0811E7D4 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_08080F00: + ldrb r0, [r4, #0xa] + cmp r0, #0x5c + bne _08080F0E + ldr r1, _08080F1C @ =gUnk_02034350 + ldrb r0, [r1, #4] + adds r0, #1 + strb r0, [r1, #4] +_08080F0E: + adds r0, r4, #0 + bl sub_08080CB4 + pop {r4, pc} + .align 2, 0 +_08080F18: .4byte gUnk_0811E7D4 +_08080F1C: .4byte gUnk_02034350 + + thumb_func_start sub_08080F20 +sub_08080F20: @ 0x08080F20 + push {r4, r5, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x86 + ldrh r0, [r1] + cmp r0, #0 + beq _08080F3A + bl sub_0807CBE4 + cmp r0, #0 + beq _08080F3A + bl sub_0805E780 +_08080F3A: + ldrb r0, [r4, #0xa] + cmp r0, #0x60 + bne _08080F42 + b _0808107C +_08080F42: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x18 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0x18] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #7 + strb r0, [r1] + subs r1, #3 + movs r0, #0x47 + strb r0, [r1] + adds r1, #4 + movs r0, #0x44 + strb r0, [r1] + adds r1, #5 + movs r0, #0xff + strb r0, [r1] + ldr r0, _08080F9C @ =gUnk_080FD1A8 + str r0, [r4, #0x48] + ldrb r0, [r4, #0xa] + subs r0, #0x3f + cmp r0, #0x20 + bhi _08081030 + lsls r0, r0, #2 + ldr r1, _08080FA0 @ =_08080FA4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08080F9C: .4byte gUnk_080FD1A8 +_08080FA0: .4byte _08080FA4 +_08080FA4: @ jump table + .4byte _08081028 @ case 0 + .4byte _08081030 @ case 1 + .4byte _08081030 @ case 2 + .4byte _08081030 @ case 3 + .4byte _08081030 @ case 4 + .4byte _08081030 @ case 5 + .4byte _08081030 @ case 6 + .4byte _08081030 @ case 7 + .4byte _08081030 @ case 8 + .4byte _08081030 @ case 9 + .4byte _08081030 @ case 10 + .4byte _08081030 @ case 11 + .4byte _08081030 @ case 12 + .4byte _08081030 @ case 13 + .4byte _08081030 @ case 14 + .4byte _08081030 @ case 15 + .4byte _08081030 @ case 16 + .4byte _08081030 @ case 17 + .4byte _08081030 @ case 18 + .4byte _08081030 @ case 19 + .4byte _08081030 @ case 20 + .4byte _08081028 @ case 21 + .4byte _08081028 @ case 22 + .4byte _08081028 @ case 23 + .4byte _08081028 @ case 24 + .4byte _08081028 @ case 25 + .4byte _08081030 @ case 26 + .4byte _08081030 @ case 27 + .4byte _08081030 @ case 28 + .4byte _08081028 @ case 29 + .4byte _08081028 @ case 30 + .4byte _08081028 @ case 31 + .4byte _08081028 @ case 32 +_08081028: + adds r1, r4, #0 + adds r1, #0x3b + movs r0, #0x17 + b _08081036 +_08081030: + adds r1, r4, #0 + adds r1, #0x3b + movs r0, #0x11 +_08081036: + strb r0, [r1] + ldrb r0, [r4, #0xe] + adds r5, r4, #0 + adds r5, #0x69 + movs r2, #0 + strb r0, [r5] + adds r0, r4, #0 + adds r0, #0x6a + strb r2, [r0] + adds r0, #2 + movs r1, #0 + strh r2, [r0] + subs r0, #4 + strb r1, [r0] + strb r1, [r4, #0xe] + adds r0, r4, #0 + movs r1, #3 + bl sub_0805E3A0 + ldrb r0, [r4, #0xa] + bl sub_0808147C + strb r0, [r4, #0x1c] + ldr r1, _08081078 @ =gUnk_0811E7E8 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + b _080810A4 + .align 2, 0 +_08081078: .4byte gUnk_0811E7E8 +_0808107C: + movs r0, #0x40 + movs r1, #0x60 + movs r2, #0 + bl sub_080A2960 + adds r1, r0, #0 + cmp r1, #0 + beq _080810A4 + movs r0, #0 + strb r0, [r1, #0xe] + ldrb r0, [r4, #0xe] + cmp r0, #1 + bne _0808109A + movs r0, #2 + strb r0, [r1, #0xb] +_0808109A: + adds r0, r4, #0 + bl sub_0806FA24 + bl sub_0805E780 +_080810A4: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080810A8 +sub_080810A8: @ 0x080810A8 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_080814A4 + ldrb r1, [r4, #0x15] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080810D6 + movs r0, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] + movs r1, #0x24 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _080810DC + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + b _080810DC +_080810D6: + movs r0, #0xff + orrs r0, r1 + strb r0, [r4, #0x15] +_080810DC: + ldr r0, [r4, #0x20] + cmp r0, #0 + bne _080810E8 + movs r0, #0xf0 + lsls r0, r0, #9 + str r0, [r4, #0x20] +_080810E8: + adds r0, r4, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #2 + bne _080810F8 + adds r0, r4, #0 + bl sub_08016A30 +_080810F8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080810FC +sub_080810FC: @ 0x080810FC + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #0x5f + beq _0808110E + adds r0, r2, #0 + bl sub_08081598 + b _0808112E +_0808110E: + movs r1, #0 + movs r0, #2 + strb r0, [r2, #0xc] + strb r1, [r2, #0xd] + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + adds r1, r2, #0 + adds r1, #0x3b + movs r0, #0x11 + strb r0, [r1] + ldr r0, _08081130 @ =gUnk_03001160 + adds r1, r2, #0 + bl sub_0806FA24 +_0808112E: + pop {pc} + .align 2, 0 +_08081130: .4byte gUnk_03001160 + + thumb_func_start sub_08081134 +sub_08081134: @ 0x08081134 + push {r4, lr} + adds r4, r0, #0 + bl sub_080814A4 + adds r1, r4, #0 + adds r1, #0x6c + ldrh r0, [r1] + adds r0, #0x50 + strh r0, [r1] + adds r0, r4, #0 + bl sub_08081150 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08081150 +sub_08081150: @ 0x08081150 + push {lr} + movs r1, #2 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x10] + movs r1, #0x80 + orrs r1, r2 + strb r1, [r0, #0x10] + ldr r1, _08081180 @ =0x0000FF80 + strh r1, [r0, #0x36] + ldrb r3, [r0, #0x1b] + movs r2, #0x3f + adds r1, r2, #0 + ands r1, r3 + movs r3, #0x40 + orrs r1, r3 + strb r1, [r0, #0x1b] + ldrb r1, [r0, #0x19] + ands r2, r1 + orrs r2, r3 + strb r2, [r0, #0x19] + ldr r0, _08081184 @ =0x0000012D + bl sub_080A3268 + pop {pc} + .align 2, 0 +_08081180: .4byte 0x0000FF80 +_08081184: .4byte 0x0000012D + + thumb_func_start sub_08081188 +sub_08081188: @ 0x08081188 + push {lr} + adds r2, r0, #0 + movs r0, #2 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + adds r0, r2, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #2 + bne _080811A8 + adds r0, r2, #0 + bl sub_08016A30 +_080811A8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080811AC +sub_080811AC: @ 0x080811AC + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #6 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_080002A0 + adds r4, #0x6e + strh r0, [r4] + pop {r4, pc} + + thumb_func_start sub_080811C8 +sub_080811C8: @ 0x080811C8 + movs r1, #2 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x18] + subs r1, #6 + ands r1, r2 + strb r1, [r0, #0x18] + bx lr + .align 2, 0 + + thumb_func_start sub_080811D8 +sub_080811D8: @ 0x080811D8 + push {lr} + bl sub_08081188 + ldr r0, _080811E8 @ =0x00000215 + bl sub_080A3268 + pop {pc} + .align 2, 0 +_080811E8: .4byte 0x00000215 + + thumb_func_start sub_080811EC +sub_080811EC: @ 0x080811EC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x69 + ldrb r0, [r0] + cmp r0, #6 + beq _08081200 + adds r0, r4, #0 + bl sub_080AEFE0 + b _08081206 +_08081200: + adds r0, r4, #0 + bl sub_0806F69C +_08081206: + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + ldr r0, [r4, #0x20] + cmp r0, #0 + bgt _08081228 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + bl sub_080814A4 +_08081228: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808122C +sub_0808122C: @ 0x0808122C + push {lr} + ldr r2, _08081244 @ =gUnk_0811E814 + adds r1, r0, #0 + adds r1, #0x69 + ldrb r1, [r1] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08081244: .4byte gUnk_0811E814 + + thumb_func_start sub_08081248 +sub_08081248: @ 0x08081248 + push {r4, lr} + adds r4, r0, #0 + bl sub_08081500 + adds r0, r4, #0 + bl sub_080814C0 + cmp r0, #0 + beq _08081264 + adds r0, r4, #0 + movs r1, #0 + bl sub_08081404 + b _0808126A +_08081264: + adds r0, r4, #0 + bl sub_0800442E +_0808126A: + pop {r4, pc} + + thumb_func_start sub_0808126C +sub_0808126C: @ 0x0808126C + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0808153C + pop {r4, pc} + + thumb_func_start sub_0808127C +sub_0808127C: @ 0x0808127C + push {r4, lr} + adds r4, r0, #0 + bl sub_080814C0 + cmp r0, #0 + beq _08081292 + adds r0, r4, #0 + movs r1, #0 + bl sub_08081404 + b _08081298 +_08081292: + adds r0, r4, #0 + bl sub_0808153C +_08081298: + pop {r4, pc} + .align 2, 0 + + thumb_func_start nullsub_113 +nullsub_113: @ 0x0808129C + bx lr + .align 2, 0 + + thumb_func_start sub_080812A0 +sub_080812A0: @ 0x080812A0 + push {lr} + bl sub_08081500 + pop {pc} + + thumb_func_start sub_080812A8 +sub_080812A8: @ 0x080812A8 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080002D0 + cmp r0, #0xf + beq _080812E4 + adds r0, r5, #0 + adds r0, #0x6e + ldrh r4, [r0] + adds r0, r5, #0 + bl sub_080002A0 + cmp r4, r0 + beq _080812E4 + movs r0, #0 + strb r0, [r5, #0x15] + movs r2, #0 + strh r0, [r5, #0x24] + ldrb r1, [r5, #0x18] + subs r0, #4 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #0x18] + adds r0, r5, #0 + adds r0, #0x69 + strb r2, [r0] + adds r0, r5, #0 + bl sub_080810A8 +_080812E4: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080812E8 +sub_080812E8: @ 0x080812E8 + push {r4, lr} + adds r4, r0, #0 + ldr r3, _0808131C @ =gUnk_03003F80 + adds r0, r3, #0 + adds r0, #0x26 + ldrb r1, [r0] + movs r2, #0x80 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _08081318 + ldr r0, [r3, #0x30] + ands r0, r2 + cmp r0, #0 + bne _08081318 + ldr r1, _08081320 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080177A0 + cmp r0, #0 + beq _08081318 + adds r0, r4, #0 + bl sub_080810FC +_08081318: + pop {r4, pc} + .align 2, 0 +_0808131C: .4byte gUnk_03003F80 +_08081320: .4byte gUnk_03001160 + + thumb_func_start nullsub_510 +nullsub_510: @ 0x08081324 + bx lr + .align 2, 0 + + thumb_func_start sub_08081328 +sub_08081328: @ 0x08081328 + push {r4, lr} + adds r4, r0, #0 + ldr r2, [r4, #0x54] + ldrh r1, [r2, #8] + movs r0, #0xc2 + lsls r0, r0, #2 + cmp r1, r0 + beq _08081342 + adds r0, r4, #0 + movs r1, #0 + bl sub_08081404 + b _08081364 +_08081342: + adds r0, r2, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldrh r0, [r4, #0x36] + subs r0, #1 + strh r0, [r4, #0x36] + ldr r2, _08081368 @ =gUnk_03001160 + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_080177A0 + cmp r0, #0 + beq _08081364 + adds r0, r4, #0 + bl sub_080810FC +_08081364: + pop {r4, pc} + .align 2, 0 +_08081368: .4byte gUnk_03001160 + + thumb_func_start sub_0808136C +sub_0808136C: @ 0x0808136C + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080813B2 + ldr r3, [r5, #0x54] + ldr r0, [r3, #0x2c] + str r0, [r5, #0x2c] + ldr r0, [r3, #0x30] + str r0, [r5, #0x30] + ldrb r2, [r3, #0x1b] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r4, [r5, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r4 + orrs r0, r2 + strb r0, [r5, #0x1b] + ldrb r0, [r3, #0x19] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r5, #0x19] + ands r1, r2 + orrs r1, r0 + strb r1, [r5, #0x19] + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r5, #0 + bl sub_08003FC4 + b _080813BA +_080813B2: + adds r0, r5, #0 + movs r1, #1 + bl sub_08081404 +_080813BA: + pop {r4, r5, pc} + + thumb_func_start sub_080813BC +sub_080813BC: @ 0x080813BC + push {lr} + ldr r2, _080813D0 @ =gUnk_0811E840 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080813D0: .4byte gUnk_0811E840 + + thumb_func_start sub_080813D4 +sub_080813D4: @ 0x080813D4 + movs r3, #1 + movs r1, #1 + strb r1, [r0, #0xd] + strb r1, [r0, #0x1d] + ldrb r2, [r0, #0x18] + subs r1, #5 + ands r1, r2 + orrs r1, r3 + strb r1, [r0, #0x18] + bx lr + + thumb_func_start sub_080813E8 +sub_080813E8: @ 0x080813E8 + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_080813F0 +sub_080813F0: @ 0x080813F0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _08081402 + adds r0, r4, #0 + bl sub_080810FC +_08081402: + pop {r4, pc} + + thumb_func_start sub_08081404 +sub_08081404: @ 0x08081404 + push {lr} + cmp r1, #0 + beq _08081418 + adds r1, r0, #0 + adds r1, #0x86 + ldrh r0, [r1] + cmp r0, #0 + beq _08081418 + bl sub_0807CCC8 +_08081418: + bl sub_0805E780 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08081420 +sub_08081420: @ 0x08081420 + push {r4, lr} + adds r4, r0, #0 + bl sub_08081450 + cmp r0, #0 + bne _08081438 + ldrb r0, [r4, #0xa] + ldrb r1, [r4, #0xb] + bl sub_08053FF0 + movs r0, #0 + b _0808144C +_08081438: + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + ldrb r0, [r4, #0xa] + ldrb r1, [r4, #0xb] + movs r2, #0 + bl sub_080A7C00 + movs r0, #1 +_0808144C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08081450 +sub_08081450: @ 0x08081450 + push {r4, lr} + movs r4, #0 + ldr r1, _08081478 @ =gUnk_080FD5B4 + ldrb r2, [r0, #0xa] + lsls r0, r2, #3 + adds r0, r0, r1 + ldrb r1, [r0, #3] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08081470 + adds r0, r2, #0 + bl sub_0807CA84 + cmp r0, #0 + bne _08081472 +_08081470: + movs r4, #1 +_08081472: + adds r0, r4, #0 + pop {r4, pc} + .align 2, 0 +_08081478: .4byte gUnk_080FD5B4 + + thumb_func_start sub_0808147C +sub_0808147C: @ 0x0808147C + lsls r0, r0, #3 + ldr r1, _08081488 @ =gUnk_0811E84C + adds r0, r0, r1 + ldrb r0, [r0, #4] + bx lr + .align 2, 0 +_08081488: .4byte gUnk_0811E84C + + thumb_func_start sub_0808148C +sub_0808148C: @ 0x0808148C + push {lr} + lsls r0, r0, #3 + ldr r1, _080814A0 @ =gUnk_0811E84C + adds r1, r0, r1 + ldrh r0, [r1, #2] + cmp r0, #0 + beq _0808149E + bl sub_080A3268 +_0808149E: + pop {pc} + .align 2, 0 +_080814A0: .4byte gUnk_0811E84C + + thumb_func_start sub_080814A4 +sub_080814A4: @ 0x080814A4 + push {lr} + adds r1, r0, #0 + adds r0, #0x69 + ldrb r0, [r0] + cmp r0, #0xa + bne _080814B6 + adds r1, #0x6c + movs r0, #0x78 + b _080814BC +_080814B6: + adds r1, #0x6c + movs r0, #0x96 + lsls r0, r0, #2 +_080814BC: + strh r0, [r1] + pop {pc} + + thumb_func_start sub_080814C0 +sub_080814C0: @ 0x080814C0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0805E40C + cmp r0, #0 + bne _080814FA + adds r0, r4, #0 + adds r0, #0x6c + ldrh r1, [r0] + subs r1, #1 + strh r1, [r0] + lsls r0, r1, #0x10 + cmp r0, #0 + bne _080814E0 + movs r0, #1 + b _080814FC +_080814E0: + lsls r0, r1, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x59 + bhi _080814FA + ldrb r2, [r4, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] +_080814FA: + movs r0, #0 +_080814FC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08081500 +sub_08081500: @ 0x08081500 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x68 + ldrb r0, [r5] + cmp r0, #0 + bne _08081538 + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #0 + bne _08081522 + movs r0, #1 + strb r0, [r5] + b _08081538 +_08081522: + cmp r0, #1 + bne _08081532 + ldrb r0, [r4, #0xa] + bl sub_0808148C + adds r0, r4, #0 + bl sub_08016A04 +_08081532: + adds r0, r4, #0 + bl sub_080AEFE0 +_08081538: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0808153C +sub_0808153C: @ 0x0808153C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x68 + ldrb r0, [r5] + cmp r0, #1 + bhi _08081596 + cmp r0, #0 + bne _0808157E + movs r1, #0x80 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08081596 + adds r0, r4, #0 + bl sub_0800442E + cmp r0, #0 + bne _08081596 + movs r0, #1 + strb r0, [r5] + movs r0, #0xf0 + lsls r0, r0, #9 + str r0, [r4, #0x20] + ldrb r0, [r4, #0xa] + bl sub_0808148C + adds r0, r4, #0 + bl sub_08016A04 + b _08081596 +_0808157E: + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08081596 + movs r0, #2 + strb r0, [r5] + ldrb r0, [r4, #0xa] + bl sub_0808148C +_08081596: + pop {r4, r5, pc} + + thumb_func_start sub_08081598 +sub_08081598: @ 0x08081598 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _080815AC + adds r0, r4, #0 + movs r1, #1 + bl sub_08081404 +_080815AC: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0xe + strb r0, [r4, #0xe] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + movs r1, #8 + rsbs r1, r1, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] + ldr r0, _08081618 @ =gUnk_03001160 + str r0, [r4, #0x54] + adds r1, r4, #0 + bl sub_0806FA24 + ldrh r0, [r4, #0x36] + subs r0, #4 + strh r0, [r4, #0x36] + ldrb r0, [r4, #0xa] + cmp r0, #0x5f + beq _08081614 + adds r0, r4, #0 + bl sub_08081420 + cmp r0, #0 + beq _08081614 + adds r0, r4, #0 + movs r1, #1 + bl sub_08081404 +_08081614: + pop {r4, pc} + .align 2, 0 +_08081618: .4byte gUnk_03001160 + + thumb_func_start sub_0808161C +sub_0808161C: @ 0x0808161C + push {lr} + ldr r2, _08081630 @ =gUnk_0811EBFC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08081630: .4byte gUnk_0811EBFC + + thumb_func_start sub_08081634 +sub_08081634: @ 0x08081634 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x6c + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0808169C + movs r5, #0 + movs r0, #0x65 + strh r0, [r4, #0x12] + movs r1, #2 + strb r1, [r4, #0xc] + strb r5, [r4, #0x15] + movs r0, #0x40 + strh r0, [r4, #0x24] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + adds r0, r4, #0 + bl sub_08016A04 + ldrb r0, [r4, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x19] + ldrb r0, [r4, #0xe] + movs r2, #0x80 + cmp r0, #0 + beq _08081674 + adds r2, r0, #0 + strb r5, [r4, #0xe] +_08081674: + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C + adds r0, r4, #0 + movs r1, #4 + movs r2, #0 + bl sub_080AE008 + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + ldr r0, _08081698 @ =0x00000129 + bl sub_080A3268 + b _0808170C + .align 2, 0 +_08081698: .4byte 0x00000129 +_0808169C: + movs r0, #0xc + ands r0, r1 + cmp r0, #0 + beq _080816B2 + adds r0, r4, #0 + bl sub_08081790 + adds r0, r4, #0 + bl sub_0808180C + b _08081702 +_080816B2: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080816C4 + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + b _08081702 +_080816C4: + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] + ldr r1, _08081718 @ =gUnk_0811EC08 + ldrb r0, [r4, #0xa] + lsrs r0, r0, #2 + adds r0, r0, r1 + ldrb r2, [r0] + ldrb r0, [r4, #0xa] + movs r1, #3 + ands r0, r1 + lsls r0, r0, #1 + asrs r2, r0 + ands r2, r1 + ldr r1, [r4, #0x50] + cmp r1, #0 + beq _080816FA + ldr r0, _0808171C @ =gUnk_0811EC20 + adds r0, r2, r0 + ldrb r0, [r0] + strb r0, [r1, #0xe] +_080816FA: + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_08004260 +_08081702: + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xff + bl sub_08004488 +_0808170C: + adds r0, r4, #0 + movs r1, #3 + bl sub_0805E3A0 + pop {r4, r5, pc} + .align 2, 0 +_08081718: .4byte gUnk_0811EC08 +_0808171C: .4byte gUnk_0811EC20 + + thumb_func_start sub_08081720 +sub_08081720: @ 0x08081720 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08081744 + adds r0, r4, #0 + bl sub_08081790 + adds r0, r4, #0 + bl sub_0808180C + b _0808175E +_08081744: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0808175E + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] +_0808175E: + pop {r4, pc} + + thumb_func_start sub_08081760 +sub_08081760: @ 0x08081760 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808177E + adds r0, r4, #0 + bl sub_0808180C + b _0808178C +_0808177E: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0808178C + adds r0, r4, #0 + bl sub_0806F69C +_0808178C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08081790 +sub_08081790: @ 0x08081790 + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x6d + ldrb r0, [r1] + cmp r0, #0xef + bhi _080817B4 + ldr r0, _080817B0 @ =gUnk_0811EC64 + ldrb r1, [r1] + adds r1, r1, r0 + ldrb r1, [r1] + adds r0, r2, #0 + bl sub_0805457C + b _080817C6 + .align 2, 0 +_080817B0: .4byte gUnk_0811EC64 +_080817B4: + ldr r0, _080817C8 @ =gUnk_0811EC24 + ldrb r1, [r1] + subs r1, #0xf0 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 +_080817C6: + pop {pc} + .align 2, 0 +_080817C8: .4byte gUnk_0811EC24 + + thumb_func_start sub_080817CC +sub_080817CC: @ 0x080817CC + push {lr} + movs r1, #9 + bl sub_0805457C + pop {pc} + .align 2, 0 + + thumb_func_start sub_080817D8 +sub_080817D8: @ 0x080817D8 + push {lr} + movs r1, #0xd + bl sub_0805457C + pop {pc} + .align 2, 0 + + thumb_func_start sub_080817E4 +sub_080817E4: @ 0x080817E4 + push {lr} + movs r1, #0xe + bl sub_0805457C + pop {pc} + .align 2, 0 + + thumb_func_start sub_080817F0 +sub_080817F0: @ 0x080817F0 + push {lr} + movs r1, #1 + bl sub_0805457C + pop {pc} + .align 2, 0 + + thumb_func_start sub_080817FC +sub_080817FC: @ 0x080817FC + push {lr} + adds r1, r0, #0 + adds r1, #0x6e + ldrb r1, [r1] + movs r2, #0 + bl sub_08054754 + pop {pc} + + thumb_func_start sub_0808180C +sub_0808180C: @ 0x0808180C + push {lr} + bl sub_0805E780 + pop {pc} + + thumb_func_start sub_08081814 +sub_08081814: @ 0x08081814 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08081850 @ =gUnk_0811EE28 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_080040A8 + cmp r0, #0 + beq _08081838 + adds r0, r4, #0 + bl sub_08080CB4 +_08081838: + ldrb r0, [r4, #0xe] + cmp r0, #2 + bgt _0808184E + cmp r0, #1 + blt _0808184E + ldrb r0, [r4, #0xc] + cmp r0, #1 + bne _0808184E + adds r0, r4, #0 + bl sub_0800445C +_0808184E: + pop {r4, pc} + .align 2, 0 +_08081850: .4byte gUnk_0811EE28 + + thumb_func_start sub_08081854 +sub_08081854: @ 0x08081854 + push {r4, lr} + adds r4, r0, #0 + movs r3, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + strb r3, [r4, #0x16] + str r4, [r4, #0x54] + adds r0, r4, #0 + bl sub_08081A5C + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0808188E + cmp r0, #1 + beq _08081898 + b _0808189C +_0808188E: + ldr r0, _08081894 @ =gUnk_080FD328 + b _0808189A + .align 2, 0 +_08081894: .4byte gUnk_080FD328 +_08081898: + ldr r0, _080818A0 @ =gUnk_080FD198 +_0808189A: + str r0, [r4, #0x48] +_0808189C: + pop {r4, pc} + .align 2, 0 +_080818A0: .4byte gUnk_080FD198 + + thumb_func_start sub_080818A4 +sub_080818A4: @ 0x080818A4 + push {r4, lr} + adds r4, r0, #0 + ldrb r2, [r4, #0xd] + cmp r2, #0 + beq _080818C0 + movs r1, #2 + strb r1, [r4, #0xc] + ldr r0, _080818BC @ =gUnk_0200AF00 + adds r0, #0x2f + strb r1, [r0] + b _08081920 + .align 2, 0 +_080818BC: .4byte gUnk_0200AF00 +_080818C0: + ldrb r0, [r4, #0xa] + cmp r0, #0x36 + bne _080818F0 + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08081920 + strb r2, [r1] + movs r0, #3 + strb r0, [r4, #0xc] + ldr r1, _080818E8 @ =gUnk_02034350 + movs r0, #1 + str r0, [r1, #0x68] + ldr r1, _080818EC @ =gUnk_03003F80 + movs r0, #7 + strb r0, [r1, #0xc] + b _08081920 + .align 2, 0 +_080818E8: .4byte gUnk_02034350 +_080818EC: .4byte gUnk_03003F80 +_080818F0: + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08081920 + strb r2, [r1] + movs r0, #1 + strb r0, [r4, #0xd] + bl sub_08078B48 + bl sub_08077B2C + ldr r1, _08081924 @ =gUnk_03003F80 + movs r0, #4 + strb r0, [r1, #5] + ldr r0, _08081928 @ =gUnk_03001160 + str r4, [r0, #0x74] + ldr r0, _0808192C @ =gUnk_0200AF00 + adds r0, #0x2f + movs r1, #2 + strb r1, [r0] + bl sub_08056360 +_08081920: + pop {r4, pc} + .align 2, 0 +_08081924: .4byte gUnk_03003F80 +_08081928: .4byte gUnk_03001160 +_0808192C: .4byte gUnk_0200AF00 + + thumb_func_start sub_08081930 +sub_08081930: @ 0x08081930 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r0, _08081968 @ =gUnk_0200AF00 + adds r6, r0, #0 + adds r6, #0x2f + movs r0, #2 + strb r0, [r6] + ldr r3, _0808196C @ =gUnk_03001160 + ldrb r1, [r3, #0x18] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1e + ldrb r2, [r4, #0x18] + subs r0, #6 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldr r5, _08081970 @ =gUnk_03003F80 + ldrb r0, [r5, #5] + cmp r0, #0 + beq _0808195E + ldr r0, [r3, #0x74] + cmp r4, r0 + beq _08081974 +_0808195E: + adds r0, r4, #0 + bl sub_080819B4 + b _080819AC + .align 2, 0 +_08081968: .4byte gUnk_0200AF00 +_0808196C: .4byte gUnk_03001160 +_08081970: .4byte gUnk_03003F80 +_08081974: + bl sub_080784E4 + adds r1, r0, #0 + ldr r0, [r1, #8] + cmp r0, #0 + beq _08081998 + ldrb r0, [r1, #1] + cmp r0, #1 + bne _08081998 + movs r0, #7 + strb r0, [r6] + adds r0, r5, #0 + adds r0, #0x92 + ldrh r1, [r0] + movs r0, #0x88 + ands r0, r1 + cmp r0, #0 + bne _080819AC +_08081998: + ldr r0, _080819B0 @ =gUnk_03003F80 + adds r0, #0x92 + ldrh r1, [r0] + movs r0, #0x98 + ands r0, r1 + cmp r0, #0 + beq _080819AC + adds r0, r4, #0 + bl sub_080819B4 +_080819AC: + pop {r4, r5, r6, pc} + .align 2, 0 +_080819B0: .4byte gUnk_03003F80 + + thumb_func_start sub_080819B4 +sub_080819B4: @ 0x080819B4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r0, _08081A48 @ =gUnk_02034350 + ldrb r0, [r0, #6] + cmp r0, #0 + bne _080819D4 + ldr r0, [r5, #0x50] + cmp r0, #0 + beq _080819D0 + adds r0, #0x20 + ldrb r1, [r5, #0xf] + adds r0, r0, r1 + movs r1, #0xff + strb r1, [r0] +_080819D0: + bl sub_0805E780 +_080819D4: + ldr r0, _08081A4C @ =gUnk_03003F80 + movs r2, #0 + strb r2, [r0, #5] + ldr r4, _08081A50 @ =gUnk_03001160 + str r2, [r4, #0x74] + ldr r1, _08081A54 @ =gUnk_0200AF00 + ldr r3, _08081A48 @ =gUnk_02034350 + strb r2, [r3, #6] + adds r0, r1, #0 + adds r0, #0x2c + strb r2, [r0] + adds r1, #0x2f + strb r2, [r1] + strb r2, [r3, #7] + adds r1, r5, #0 + adds r1, #0x80 + ldr r3, _08081A58 @ =gUnk_03000BF0 + ldrh r0, [r3, #6] + ldrh r1, [r1] + adds r0, r0, r1 + movs r1, #0 + strh r0, [r5, #0x2e] + movs r6, #0x82 + ldrh r0, [r3, #8] + ldrh r3, [r6, r5] + adds r0, r0, r3 + strh r0, [r5, #0x32] + str r2, [r5, #0x34] + movs r3, #1 + strb r3, [r5, #0xc] + strb r1, [r5, #0xd] + ldrb r1, [r4, #0x1b] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r5, #0x1b] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x1b] + adds r0, r5, #0 + adds r0, #0x38 + strb r3, [r0] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + adds r0, r5, #0 + bl sub_08016A04 + adds r0, r5, #0 + bl sub_08081A5C + pop {r4, r5, r6, pc} + .align 2, 0 +_08081A48: .4byte gUnk_02034350 +_08081A4C: .4byte gUnk_03003F80 +_08081A50: .4byte gUnk_03001160 +_08081A54: .4byte gUnk_0200AF00 +_08081A58: .4byte gUnk_03000BF0 + + thumb_func_start sub_08081A5C +sub_08081A5C: @ 0x08081A5C + push {r4, lr} + adds r4, r0, #0 + bl sub_080787D8 + adds r2, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #1 + bne _08081A7A + ldr r0, _08081A7C @ =gUnk_03003DF0 + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + movs r0, #0 + strb r0, [r1, #0xa] +_08081A7A: + pop {r4, pc} + .align 2, 0 +_08081A7C: .4byte gUnk_03003DF0 + + thumb_func_start sub_08081A80 +sub_08081A80: @ 0x08081A80 + push {lr} + adds r2, r0, #0 + ldr r0, _08081A98 @ =gUnk_02034350 + ldr r0, [r0, #0x68] + cmp r0, #0 + bne _08081A9C + bl sub_08081AB0 + bl sub_0805E780 + b _08081AAC + .align 2, 0 +_08081A98: .4byte gUnk_02034350 +_08081A9C: + cmp r0, #2 + bne _08081AAC + movs r1, #0 + movs r0, #1 + strb r0, [r2, #0xc] + strb r1, [r2, #0xd] + bl sub_08081AB0 +_08081AAC: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08081AB0 +sub_08081AB0: @ 0x08081AB0 + push {lr} + ldr r1, _08081AC4 @ =gUnk_02034350 + movs r0, #0 + str r0, [r1, #0x68] + strb r0, [r1, #6] + strb r0, [r1, #7] + bl sub_08078A90 + pop {pc} + .align 2, 0 +_08081AC4: .4byte gUnk_02034350 + + thumb_func_start sub_08081AC8 +sub_08081AC8: @ 0x08081AC8 + push {lr} + ldr r2, _08081ADC @ =gUnk_0811EE38 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08081ADC: .4byte gUnk_0811EE38 + + thumb_func_start sub_08081AE0 +sub_08081AE0: @ 0x08081AE0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x11] + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + adds r0, r4, #0 + adds r0, #0x84 + ldrh r1, [r0] + cmp r1, #0 + beq _08081B0E + subs r0, #0x4c + strb r1, [r0] +_08081B0E: + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _08081B6C @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r5, r4, #0 + adds r5, #0x74 + strh r1, [r5] + ldrh r0, [r5] + adds r6, r4, #0 + adds r6, #0x38 + ldrb r1, [r6] + bl sub_080002B0 + adds r1, r4, #0 + adds r1, #0x72 + strh r0, [r1] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08081B70 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _08081B70 + movs r0, #5 + strb r0, [r4, #0xc] + ldrh r1, [r5] + ldrb r2, [r6] + movs r0, #0x7a + bl sub_0807B314 + b _08081B82 + .align 2, 0 +_08081B6C: .4byte gUnk_03000BF0 +_08081B70: + adds r0, r4, #0 + bl sub_08081E3C + cmp r0, #0 + beq _08081B7E + movs r0, #2 + b _08081B80 +_08081B7E: + movs r0, #1 +_08081B80: + strb r0, [r4, #0xc] +_08081B82: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08081B84 +sub_08081B84: @ 0x08081B84 + push {r4, lr} + adds r4, r0, #0 + bl sub_08081E3C + cmp r0, #0 + beq _08081BAA + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x74 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002B0 + adds r1, r4, #0 + adds r1, #0x72 + strh r0, [r1] +_08081BAA: + pop {r4, pc} + + thumb_func_start sub_08081BAC +sub_08081BAC: @ 0x08081BAC + push {r4, lr} + adds r4, r0, #0 + bl sub_08081CB0 + cmp r0, #0 + beq _08081BDC + movs r0, #0 + strb r0, [r4, #0xd] + movs r0, #0xa + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0xa + bl sub_0805E4E0 + adds r0, r4, #0 + bl sub_08081FF8 + ldrb r0, [r4, #0xa] + cmp r0, #1 + bne _08081BD8 + movs r0, #3 + b _08081BDA +_08081BD8: + movs r0, #5 +_08081BDA: + strb r0, [r4, #0xc] +_08081BDC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08081BE0 +sub_08081BE0: @ 0x08081BE0 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x78 + bl sub_08081F7C + cmp r0, #0 + beq _08081C2C + adds r0, r4, #0 + bl sub_08081D28 + cmp r0, #0 + bne _08081C26 + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #1 + strb r0, [r4, #0xf] + ldr r1, _08081C1C @ =gUnk_03003F80 + ldrb r0, [r1, #5] + cmp r0, #2 + beq _08081C16 + adds r0, r1, #0 + adds r0, #0x35 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08081C20 +_08081C16: + movs r0, #0x18 + strb r0, [r4, #0xe] + b _08081C2C + .align 2, 0 +_08081C1C: .4byte gUnk_03003F80 +_08081C20: + movs r0, #8 + strb r0, [r4, #0xe] + b _08081C2C +_08081C26: + adds r0, r4, #0 + bl sub_08081E6C +_08081C2C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08081C30 +sub_08081C30: @ 0x08081C30 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08081C70 + subs r0, #1 + movs r5, #0 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _08081C5A + strb r5, [r4, #0xf] + ldr r0, _08081C6C @ =0x00004035 + adds r1, r4, #0 + adds r1, #0x74 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E +_08081C5A: + adds r0, r4, #0 + bl sub_08081CB0 + cmp r0, #0 + beq _08081C96 + movs r0, #3 + strb r0, [r4, #0xc] + strb r5, [r4, #0xe] + b _08081C96 + .align 2, 0 +_08081C6C: .4byte 0x00004035 +_08081C70: + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CD48 + adds r0, r4, #0 + adds r0, #0x74 + ldrh r1, [r0] + subs r0, #0x3c + ldrb r2, [r0] + movs r0, #0x77 + bl sub_0807B314 + movs r0, #0x86 + lsls r0, r0, #1 + bl sub_080A3268 +_08081C96: + pop {r4, r5, pc} + + thumb_func_start sub_08081C98 +sub_08081C98: @ 0x08081C98 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x7a + bl sub_08081F7C + cmp r0, #0 + beq _08081CAC + adds r0, r4, #0 + bl sub_08081E6C +_08081CAC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08081CB0 +sub_08081CB0: @ 0x08081CB0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_08081D74 + cmp r0, #0 + beq _08081CEC + adds r1, r4, #0 + adds r1, #0x70 + ldr r0, _08081CE4 @ =0x0000FFFF + strh r0, [r1] + adds r5, r4, #0 + adds r5, #0x74 + ldrh r0, [r5] + adds r4, #0x38 + ldrb r1, [r4] + bl sub_080002B0 + ldr r1, _08081CE8 @ =0x00004035 + cmp r0, r1 + bne _08081D1C + ldrh r1, [r5] + ldrb r2, [r4] + movs r0, #0x78 + bl sub_0807B7D8 + b _08081D1C + .align 2, 0 +_08081CE4: .4byte 0x0000FFFF +_08081CE8: .4byte 0x00004035 +_08081CEC: + adds r6, r4, #0 + adds r6, #0x74 + ldrh r0, [r6] + adds r5, r4, #0 + adds r5, #0x38 + ldrb r1, [r5] + bl sub_080002B0 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0x77 + beq _08081D24 + cmp r1, #0x79 + beq _08081D24 + ldr r0, _08081D20 @ =0x00004035 + cmp r1, r0 + beq _08081D24 + ldrh r0, [r6] + ldrb r1, [r5] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x70 + strh r0, [r1] +_08081D1C: + movs r0, #1 + b _08081D26 + .align 2, 0 +_08081D20: .4byte 0x00004035 +_08081D24: + movs r0, #0 +_08081D26: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08081D28 +sub_08081D28: @ 0x08081D28 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08081D74 + cmp r0, #0 + beq _08081D44 + adds r1, r4, #0 + adds r1, #0x70 + ldr r0, _08081D40 @ =0x0000FFFF + strh r0, [r1] + movs r0, #1 + b _08081D72 + .align 2, 0 +_08081D40: .4byte 0x0000FFFF +_08081D44: + adds r5, r4, #0 + adds r5, #0x70 + ldrh r1, [r5] + ldr r0, _08081D6C @ =0x0000FFFF + cmp r1, r0 + beq _08081D70 + adds r0, r4, #0 + adds r0, #0x74 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080001DA + ldrh r5, [r5] + cmp r0, r5 + bne _08081D70 + movs r0, #1 + b _08081D72 + .align 2, 0 +_08081D6C: .4byte 0x0000FFFF +_08081D70: + movs r0, #0 +_08081D72: + pop {r4, r5, pc} + + thumb_func_start sub_08081D74 +sub_08081D74: @ 0x08081D74 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r0, #0x74 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002E0 + cmp r0, #0xf + bne _08081D8E + movs r0, #0 + b _08081E0A +_08081D8E: + movs r6, #0 + adds r0, r4, #0 + bl sub_08081E0C + cmp r0, #0 + beq _08081DB4 + ldr r0, _08081DAC @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x90 + ands r0, r1 + cmp r0, #0 + bne _08081E06 + ldr r6, _08081DB0 @ =gUnk_03001160 + b _08081E06 + .align 2, 0 +_08081DAC: .4byte gUnk_03003F80 +_08081DB0: .4byte gUnk_03001160 +_08081DB4: + ldr r0, _08081DD8 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + lsls r1, r1, #0xf + ands r0, r1 + cmp r0, #0 + beq _08081E06 + ldr r5, _08081DDC @ =gUnk_03004040 + ldr r1, [r5] + adds r0, r4, #0 + movs r2, #5 + movs r3, #6 + bl sub_080041A0 + cmp r0, #0 + beq _08081DE0 + ldr r6, [r5] + b _08081E06 + .align 2, 0 +_08081DD8: .4byte gUnk_03003F80 +_08081DDC: .4byte gUnk_03004040 +_08081DE0: + ldr r1, [r5, #4] + adds r0, r4, #0 + movs r2, #5 + movs r3, #6 + bl sub_080041A0 + cmp r0, #0 + beq _08081DF4 + ldr r6, [r5, #4] + b _08081E06 +_08081DF4: + ldr r1, [r5, #8] + adds r0, r4, #0 + movs r2, #5 + movs r3, #6 + bl sub_080041A0 + cmp r0, #0 + beq _08081E06 + ldr r6, [r5, #8] +_08081E06: + str r6, [r4, #0x54] + adds r0, r6, #0 +_08081E0A: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08081E0C +sub_08081E0C: @ 0x08081E0C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08081E28 @ =gUnk_03001160 + movs r1, #0x36 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _08081E22 + bl sub_08079F8C + cmp r0, #0 + bne _08081E2C +_08081E22: + movs r0, #0 + b _08081E38 + .align 2, 0 +_08081E28: .4byte gUnk_03001160 +_08081E2C: + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #5 + movs r3, #6 + bl sub_080041A0 +_08081E38: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08081E3C +sub_08081E3C: @ 0x08081E3C + push {lr} + adds r1, r0, #0 + adds r1, #0x74 + ldrh r2, [r1] + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r2, #0 + bl sub_080002B0 + adds r2, r0, #0 + ldr r1, _08081E64 @ =gUnk_0811EE50 +_08081E52: + ldrh r0, [r1] + cmp r0, r2 + beq _08081E68 + adds r1, #2 + ldrh r0, [r1] + cmp r0, #0 + bne _08081E52 + movs r0, #0 + b _08081E6A + .align 2, 0 +_08081E64: .4byte gUnk_0811EE50 +_08081E68: + movs r0, #1 +_08081E6A: + pop {pc} + + thumb_func_start sub_08081E6C +sub_08081E6C: @ 0x08081E6C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r0, #0x74 + ldrh r6, [r0] + subs r0, #0x3c + ldrb r5, [r0] + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_080002B0 + adds r7, r0, #0 + ldr r0, _08081EEC @ =0x00003FFF + cmp r7, r0 + bls _08081EE8 + adds r0, r5, #0 + bl sub_0808094C + adds r1, r0, #0 + ldrb r0, [r4, #0xa] + movs r4, #0x78 + cmp r0, #0 + bne _08081E9A + movs r4, #0x7a +_08081E9A: + ldr r0, _08081EF0 @ =0x00007004 + adds r3, r1, r0 + lsls r0, r4, #1 + ldr r2, _08081EF4 @ =0x00006004 + adds r1, r1, r2 + adds r1, r1, r0 + ldrh r0, [r1] + lsls r0, r0, #3 + adds r3, r3, r0 + ldr r2, _08081EF8 @ =gUnk_02019EE0 + cmp r5, #2 + bne _08081EB4 + ldr r2, _08081EFC @ =gUnk_02002F00 +_08081EB4: + movs r0, #0x3f + ands r0, r6 + lsls r0, r0, #1 + movs r1, #0xfc + lsls r1, r1, #4 + ands r1, r6 + lsls r1, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #1 + adds r2, r2, r0 + adds r0, r2, #0 + adds r1, r3, #0 + bl sub_08081F00 + cmp r0, #0 + bne _08081EE8 + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r5, #0 + bl sub_0807B314 + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r5, #0 + bl sub_0800015E +_08081EE8: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08081EEC: .4byte 0x00003FFF +_08081EF0: .4byte 0x00007004 +_08081EF4: .4byte 0x00006004 +_08081EF8: .4byte gUnk_02019EE0 +_08081EFC: .4byte gUnk_02002F00 + + thumb_func_start sub_08081F00 +sub_08081F00: @ 0x08081F00 + push {lr} + adds r2, r0, #0 + adds r3, r1, #0 + ldr r1, [r2] + ldr r0, [r3] + cmp r1, r0 + bne _08081F20 + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r2, r1 + ldr r1, [r0] + ldr r0, [r3, #4] + cmp r1, r0 + bne _08081F20 + movs r0, #1 + b _08081F22 +_08081F20: + movs r0, #0 +_08081F22: + pop {pc} + + thumb_func_start sub_08081F24 +sub_08081F24: @ 0x08081F24 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x11 + movs r2, #0x40 + bl sub_080A29AC + adds r2, r0, #0 + cmp r2, #0 + beq _08081F50 + ldrb r1, [r2, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2, #0x11] + ldrh r0, [r2, #0x2e] + adds r0, #7 + strh r0, [r2, #0x2e] + ldrh r0, [r2, #0x32] + adds r0, #5 + strh r0, [r2, #0x32] +_08081F50: + adds r0, r4, #0 + movs r1, #0x11 + movs r2, #0x40 + bl sub_080A29AC + adds r2, r0, #0 + cmp r2, #0 + beq _08081F7A + ldrb r1, [r2, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2, #0x11] + ldrh r0, [r2, #0x2e] + subs r0, #7 + strh r0, [r2, #0x2e] + ldrh r0, [r2, #0x32] + adds r0, #5 + strh r0, [r2, #0x32] +_08081F7A: + pop {r4, pc} + + thumb_func_start sub_08081F7C +sub_08081F7C: @ 0x08081F7C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r7, r1, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08081FF4 + subs r1, r0, #1 + strb r1, [r4, #0xe] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #6 + bls _08081FA4 + ldr r0, [r4, #0x54] + cmp r0, #0 + beq _08081FF4 + adds r1, r0, #0 + adds r1, #0x63 + movs r0, #0xfc + strb r0, [r1] + b _08081FF4 +_08081FA4: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #6 + bne _08081FF4 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + adds r6, r4, #0 + adds r6, #0x74 + ldrh r1, [r6] + adds r5, r4, #0 + adds r5, #0x38 + ldrb r2, [r5] + adds r0, r7, #0 + bl sub_0807B314 + adds r0, r4, #0 + bl sub_08081F24 + movs r0, #0x86 + lsls r0, r0, #1 + bl sub_080A3268 + adds r2, r4, #0 + adds r2, #0x70 + ldrh r1, [r2] + ldr r0, _08081FF0 @ =0x0000FFFF + cmp r1, r0 + beq _08081FEC + adds r0, r1, #0 + ldrh r1, [r6] + ldrb r2, [r5] + bl sub_0800015E +_08081FEC: + movs r0, #0 + b _08081FF6 + .align 2, 0 +_08081FF0: .4byte 0x0000FFFF +_08081FF4: + movs r0, #1 +_08081FF6: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08081FF8 +sub_08081FF8: @ 0x08081FF8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r1, [r4, #0x54] + ldr r0, _08082038 @ =gUnk_03001160 + cmp r1, r0 + bne _08082036 + adds r0, r1, #0 + adds r1, r4, #0 + bl sub_080045C4 + adds r6, r0, #0 + ldr r0, [r4, #0x54] + movs r1, #0x80 + lsls r1, r1, #2 + adds r2, r6, #0 + bl sub_080044AE + movs r5, #0 + ldr r4, _0808203C @ =gUnk_03004040 +_0808201E: + ldr r0, [r4] + cmp r0, #0 + beq _0808202E + movs r1, #0x80 + lsls r1, r1, #2 + adds r2, r6, #0 + bl sub_080044AE +_0808202E: + adds r4, #4 + adds r5, #1 + cmp r5, #2 + bls _0808201E +_08082036: + pop {r4, r5, r6, pc} + .align 2, 0 +_08082038: .4byte gUnk_03001160 +_0808203C: .4byte gUnk_03004040 + + thumb_func_start sub_08082040 +sub_08082040: @ 0x08082040 + push {lr} + ldr r2, _08082054 @ =gUnk_0811EE5C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08082054: .4byte gUnk_0811EE5C + + thumb_func_start sub_08082058 +sub_08082058: @ 0x08082058 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r4, #0x11] + ldrb r1, [r4, #0x10] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + movs r2, #3 + bl sub_080AE008 + adds r0, r4, #0 + bl sub_08082098 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08082098 +sub_08082098: @ 0x08082098 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r0, _08082100 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080820AC + bl sub_0805E780 +_080820AC: + ldr r5, _08082104 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_08079BD8 + ldrb r1, [r4, #0x1b] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x1b] + ldrb r1, [r5, #0x1a] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1c + ldrb r2, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1a] + ldrb r1, [r5, #0x14] + movs r0, #0xe + ands r0, r1 + strb r0, [r4, #0x14] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldrb r0, [r5, #0x14] + lsrs r3, r0, #1 + adds r7, r3, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0x14 + beq _08082122 + cmp r0, #0x14 + bgt _08082108 + cmp r0, #0xa + beq _0808212A + b _0808212E + .align 2, 0 +_08082100: .4byte gUnk_03003F80 +_08082104: .4byte gUnk_03001160 +_08082108: + cmp r0, #0x16 + beq _08082112 + cmp r0, #0x18 + beq _08082126 + b _0808212E +_08082112: + ldrb r0, [r4, #0x14] + movs r3, #0xd + adds r5, r4, #0 + adds r5, #0x58 + cmp r0, #2 + bne _080821F2 + movs r3, #0xe + b _080821F2 +_08082122: + movs r3, #0xc + b _080821EE +_08082126: + adds r3, #0xf + b _080821EE +_0808212A: + movs r3, #0x13 + b _080821EE +_0808212E: + adds r0, r5, #0 + adds r0, #0x42 + ldrb r0, [r0] + cmp r0, #0 + beq _0808213E + adds r3, r7, #0 + adds r3, #8 + b _080821EE +_0808213E: + ldr r2, _0808215C @ =gUnk_03003F80 + ldrb r1, [r2, #2] + adds r6, r1, #0 + cmp r6, #0 + beq _08082160 + movs r0, #0x10 + ands r0, r1 + adds r5, r4, #0 + adds r5, #0x58 + cmp r0, #0 + bne _080821F2 + adds r3, r7, #0 + adds r3, #0x19 + b _080821F2 + .align 2, 0 +_0808215C: .4byte gUnk_03003F80 +_08082160: + adds r0, r2, #0 + adds r0, #0xa8 + ldrb r0, [r0] + cmp r0, #1 + beq _0808216E + cmp r0, #0x19 + bne _080821C8 +_0808216E: + adds r3, r7, #4 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, r3 + beq _08082180 + str r6, [r4, #0x34] + b _080821BA +_08082180: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r7, #0xff + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _080821F2 + adds r2, r4, #0 + adds r2, #0x63 + movs r1, #0 + ldrsb r1, [r2, r1] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _080821C0 + cmp r1, r0 + bgt _080821AC + subs r0, #1 + cmp r1, r0 + beq _080821B4 + b _080821F2 +_080821AC: + cmp r1, #0 + bne _080821F2 + movs r0, #0xfe + b _080821B8 +_080821B4: + ldrb r0, [r2] + orrs r0, r7 +_080821B8: + strb r0, [r2] +_080821BA: + movs r0, #6 + strb r0, [r4, #0xe] + b _080821F2 +_080821C0: + strb r6, [r2] + movs r0, #3 + strb r0, [r4, #0xe] + b _080821F2 +_080821C8: + adds r0, r2, #0 + adds r0, #0x26 + ldrb r2, [r0] + adds r1, r2, #0 + cmp r1, #0 + beq _080821E8 + movs r0, #0x80 + ands r0, r2 + adds r3, r7, #0 + adds r3, #0x14 + adds r5, r4, #0 + adds r5, #0x58 + cmp r0, #0 + beq _080821F2 + movs r3, #0x18 + b _080821F2 +_080821E8: + adds r0, r4, #0 + adds r0, #0x63 + strb r1, [r0] +_080821EE: + adds r5, r4, #0 + adds r5, #0x58 +_080821F2: + ldrb r0, [r5] + cmp r0, r3 + beq _08082202 + adds r0, r4, #0 + adds r1, r3, #0 + bl sub_080042AC + b _08082208 +_08082202: + adds r0, r4, #0 + bl sub_080042B8 +_08082208: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0808220C +sub_0808220C: @ 0x0808220C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08082228 @ =gUnk_0811F090 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r4, #0x41 + movs r0, #0 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_08082228: .4byte gUnk_0811F090 + + thumb_func_start sub_0808222C +sub_0808222C: @ 0x0808222C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + cmp r0, #1 + bne _0808224C + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0808224C + bl sub_0805E780 +_0808224C: + movs r2, #1 + strb r2, [r4, #0xc] + ldr r0, _08082308 @ =gUnk_080FD338 + str r0, [r4, #0x48] + movs r1, #0 + movs r0, #0x80 + strh r0, [r4, #0x24] + ldrh r0, [r4, #0x32] + adds r0, #3 + strh r0, [r4, #0x32] + strb r1, [r4, #0x16] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x45 + strb r2, [r0] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #3 + movs r0, #0x6e + strb r0, [r1] + subs r1, #4 + movs r0, #0x84 + strb r0, [r1] + movs r0, #0x12 + strb r0, [r4, #0x1c] + adds r5, r4, #0 + adds r5, #0x38 + ldrb r0, [r5] + cmp r0, #0 + bne _08082298 + adds r0, r4, #0 + bl sub_08016A30 +_08082298: + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r7, _0808230C @ =gUnk_03000BF0 + ldrh r1, [r7, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r6, #0x3f + ands r0, r6 + movs r2, #0x32 + ldrsh r1, [r4, r2] + ldrh r2, [r7, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r6 + lsls r1, r1, #6 + orrs r0, r1 + ldrb r1, [r5] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x70 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r1, #0x80 + lsls r1, r1, #7 + mov r8, r1 + cmp r0, r8 + bne _080822D6 + bl sub_0805E780 +_080822D6: + movs r2, #0x2e + ldrsh r1, [r4, r2] + ldrh r0, [r7, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + ands r1, r6 + movs r2, #0x32 + ldrsh r0, [r4, r2] + ldrh r2, [r7, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r1, r0 + ldrb r2, [r5] + mov r0, r8 + bl sub_0800015E + adds r0, r4, #0 + movs r1, #5 + bl sub_08004260 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08082308: .4byte gUnk_080FD338 +_0808230C: .4byte gUnk_03000BF0 + + thumb_func_start sub_08082310 +sub_08082310: @ 0x08082310 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + movs r6, #0x7f + adds r1, r6, #0 + ands r1, r0 + cmp r1, #0x13 + beq _08082342 + cmp r1, #0x1d + beq _0808234C + adds r0, r5, #0 + bl sub_080002A0 + adds r4, r0, #0 + movs r0, #0x80 + lsls r0, r0, #7 + cmp r4, r0 + bne _08082338 + b _080824F0 +_08082338: + adds r0, #1 + cmp r4, r0 + bhs _08082340 + b _08082484 +_08082340: + b _080823C4 +_08082342: + movs r1, #0 + movs r0, #3 + strb r0, [r5, #0xc] + strb r1, [r5, #0xd] + b _080824F6 +_0808234C: + adds r0, r5, #0 + adds r0, #0x70 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _080823C0 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r7, #0x32 + ldrsh r2, [r5, r7] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + movs r1, #0 + movs r0, #5 + strb r0, [r5, #0xc] + movs r0, #0xa8 + lsls r0, r0, #0xa + str r0, [r5, #0x20] + adds r0, r5, #0 + adds r0, #0x63 + strb r1, [r0] + ldrb r1, [r5, #0x18] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r5, #0x18] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x18 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r5, #0x10] + adds r0, r6, #0 + ands r0, r1 + strb r0, [r5, #0x10] + adds r0, r5, #0 + bl sub_08082824 + b _080824F6 + .align 2, 0 +_080823C0: .4byte gUnk_03000BF0 +_080823C4: + ldr r0, _080823D4 @ =0x00004004 + cmp r4, r0 + bls _080823D8 + adds r0, #0x63 + cmp r4, r0 + beq _08082448 + b _08082484 + .align 2, 0 +_080823D4: .4byte 0x00004004 +_080823D8: + ldr r1, _08082438 @ =0xFFFFBFFF + adds r0, r4, r1 + lsls r0, r0, #3 + strb r0, [r5, #0x15] + movs r0, #0x20 + strb r0, [r5, #0xe] + movs r0, #4 + strb r0, [r5, #0xc] + ldr r0, _0808243C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08082400 + ldrh r0, [r5, #0x24] + lsls r0, r0, #0x10 + asrs r0, r0, #0x11 + strh r0, [r5, #0x24] + movs r0, #0x40 + strb r0, [r5, #0xe] +_08082400: + adds r0, r5, #0 + adds r0, #0x70 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08082440 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + ldr r0, _08082444 @ =0x0000010F + bl sub_08004488 + b _080824F6 + .align 2, 0 +_08082438: .4byte 0xFFFFBFFF +_0808243C: .4byte gUnk_03003F80 +_08082440: .4byte gUnk_03000BF0 +_08082444: .4byte 0x0000010F +_08082448: + adds r0, r5, #0 + adds r0, #0x70 + ldrh r0, [r0] + movs r7, #0x2e + ldrsh r1, [r5, r7] + ldr r3, _08082480 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + bl sub_0805E780 + b _080824F6 + .align 2, 0 +_08082480: .4byte gUnk_03000BF0 +_08082484: + adds r0, r5, #0 + bl sub_080002B8 + cmp r0, #0xd + bne _0808249A + adds r0, r5, #0 + movs r1, #0 + movs r2, #0 + bl sub_080A29AC + b _080824D8 +_0808249A: + ldr r0, _080824E4 @ =0x00004005 + cmp r4, r0 + bne _080824D8 + ldr r0, _080824E8 @ =gUnk_03003F80 + adds r0, #0xab + movs r1, #4 + strb r1, [r0] + adds r0, r5, #0 + adds r0, #0x70 + ldrh r0, [r0] + movs r7, #0x2e + ldrsh r1, [r5, r7] + ldr r3, _080824EC @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E +_080824D8: + adds r0, r5, #0 + movs r1, #0 + bl sub_08082850 + b _080824F6 + .align 2, 0 +_080824E4: .4byte 0x00004005 +_080824E8: .4byte gUnk_03003F80 +_080824EC: .4byte gUnk_03000BF0 +_080824F0: + adds r0, r5, #0 + bl sub_08078930 +_080824F6: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080824F8 +sub_080824F8: @ 0x080824F8 + push {lr} + ldr r2, _0808250C @ =gUnk_0811F0A8 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808250C: .4byte gUnk_0811F0A8 + + thumb_func_start sub_08082510 +sub_08082510: @ 0x08082510 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r1, [r5, #0x10] + movs r0, #0x80 + movs r2, #0 + orrs r0, r1 + strb r0, [r5, #0x10] + ldr r0, _08082578 @ =gUnk_080FD340 + str r0, [r5, #0x48] + adds r1, r5, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #3 + movs r0, #1 + strb r0, [r1] + ldr r0, _0808257C @ =gUnk_03001160 + adds r0, #0x3b + ldrb r0, [r0] + subs r1, #4 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x63 + strb r2, [r0] + adds r0, #0xd + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08082580 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + ldrb r0, [r5, #0xd] + adds r0, #1 + strb r0, [r5, #0xd] + pop {r4, r5, r6, pc} + .align 2, 0 +_08082578: .4byte gUnk_080FD340 +_0808257C: .4byte gUnk_03001160 +_08082580: .4byte gUnk_03000BF0 + + thumb_func_start nullsub_511 +nullsub_511: @ 0x08082584 + bx lr + .align 2, 0 + + thumb_func_start sub_08082588 +sub_08082588: @ 0x08082588 + adds r0, #0x29 + ldrb r2, [r0] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #0x18 + orrs r1, r2 + strb r1, [r0] + bx lr + .align 2, 0 + + thumb_func_start sub_0808259C +sub_0808259C: @ 0x0808259C + push {r4, lr} + adds r4, r0, #0 + bl sub_080043E8 + cmp r0, #2 + beq _080825B8 + cmp r0, #2 + bhi _080825B2 + cmp r0, #1 + beq _080825BE + b _080825D0 +_080825B2: + cmp r0, #3 + beq _080825C4 + b _080825D0 +_080825B8: + adds r0, r4, #0 + movs r1, #0xb + b _080825C8 +_080825BE: + adds r0, r4, #0 + movs r1, #0 + b _080825C8 +_080825C4: + adds r0, r4, #0 + movs r1, #0xc +_080825C8: + movs r2, #0 + bl sub_080A29AC + b _080825E0 +_080825D0: + ldr r1, _080825DC @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_08082850 + b _080825E4 + .align 2, 0 +_080825DC: .4byte gUnk_03001160 +_080825E0: + bl sub_0805E780 +_080825E4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080825E8 +sub_080825E8: @ 0x080825E8 + push {lr} + bl sub_0805E780 + pop {pc} + + thumb_func_start sub_080825F0 +sub_080825F0: @ 0x080825F0 + push {lr} + adds r1, r0, #0 + ldr r0, _08082604 @ =gUnk_03003F80 + ldrb r0, [r0, #5] + cmp r0, #0 + bne _08082602 + adds r0, r1, #0 + bl sub_08082608 +_08082602: + pop {pc} + .align 2, 0 +_08082604: .4byte gUnk_03003F80 + + thumb_func_start sub_08082608 +sub_08082608: @ 0x08082608 + movs r2, #0 + movs r1, #1 + strb r1, [r0, #0xc] + strb r2, [r0, #0xd] + bx lr + .align 2, 0 + + thumb_func_start sub_08082614 +sub_08082614: @ 0x08082614 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + bl sub_0800445C + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _08082638 + adds r0, r5, #0 + bl sub_0806F69C + adds r0, r5, #0 + bl sub_08016A6C + b _080826DC +_08082638: + adds r0, r5, #0 + bl sub_0800442E + cmp r0, #0 + bne _080826DC + movs r0, #1 + strb r0, [r5, #0xc] + ldr r0, _080826A4 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08082658 + ldrh r0, [r5, #0x24] + lsls r0, r0, #1 + strh r0, [r5, #0x24] +_08082658: + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r2, _080826A8 @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r4, #0x32 + ldrsh r1, [r5, r4] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + adds r4, r5, #0 + adds r4, #0x38 + ldrb r1, [r4] + bl sub_080001DA + adds r1, r5, #0 + adds r1, #0x70 + strh r0, [r1] + adds r0, r5, #0 + bl sub_080002A0 + adds r6, r4, #0 + cmp r0, #0x72 + bhi _080826AC + cmp r0, #0x71 + blo _080826AC + adds r0, r5, #0 + movs r1, #0 + bl sub_08082850 + b _080826DC + .align 2, 0 +_080826A4: .4byte gUnk_03003F80 +_080826A8: .4byte gUnk_03000BF0 +_080826AC: + movs r0, #0x80 + lsls r0, r0, #7 + movs r7, #0x2e + ldrsh r1, [r5, r7] + ldr r3, _080826E0 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r7, #0x32 + ldrsh r2, [r5, r7] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + ldrb r2, [r6] + bl sub_0800015E + adds r0, r5, #0 + bl sub_08078930 +_080826DC: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080826E0: .4byte gUnk_03000BF0 + + thumb_func_start sub_080826E4 +sub_080826E4: @ 0x080826E4 + push {lr} + ldr r2, _080826F8 @ =gUnk_0811F0C4 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080826F8: .4byte gUnk_0811F0C4 + + thumb_func_start sub_080826FC +sub_080826FC: @ 0x080826FC + movs r2, #0 + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x30 + strb r1, [r0, #0x1d] + strb r2, [r0, #0xe] + bx lr + .align 2, 0 + + thumb_func_start sub_0808270C +sub_0808270C: @ 0x0808270C + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r0, _08082768 @ =gUnk_03003F80 + ldrb r1, [r0, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #1 + bne _0808272A + adds r0, r5, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x13 + beq _08082770 +_0808272A: + adds r1, r5, #0 + adds r1, #0x62 + movs r0, #0 + strb r0, [r1] + movs r0, #1 + strb r0, [r5, #0xc] + movs r0, #0x80 + lsls r0, r0, #7 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _0808276C @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + b _08082776 + .align 2, 0 +_08082768: .4byte gUnk_03003F80 +_0808276C: .4byte gUnk_03000BF0 +_08082770: + adds r0, r5, #0 + bl sub_0806F4E8 +_08082776: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08082778 +sub_08082778: @ 0x08082778 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r1, [r5, #0xe] + cmp r1, #0 + bne _080827C4 + movs r0, #1 + strb r0, [r5, #0xe] + adds r0, r5, #0 + adds r0, #0x62 + strb r1, [r0] + adds r1, r5, #0 + adds r1, #0x63 + movs r0, #0xfe + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x70 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _080827E8 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E +_080827C4: + ldr r0, _080827EC @ =gUnk_03003F80 + ldrb r1, [r0, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #1 + bne _080827DE + adds r0, r5, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x13 + beq _080827F0 +_080827DE: + adds r0, r5, #0 + movs r1, #0 + bl sub_08082850 + b _080827F6 + .align 2, 0 +_080827E8: .4byte gUnk_03000BF0 +_080827EC: .4byte gUnk_03003F80 +_080827F0: + adds r0, r5, #0 + bl sub_0806F3E4 +_080827F6: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080827F8 +sub_080827F8: @ 0x080827F8 + push {lr} + adds r1, r0, #0 + ldr r0, _08082810 @ =gUnk_03003F80 + ldrb r0, [r0, #0x1c] + cmp r0, #0 + bne _0808280C + adds r0, r1, #0 + movs r1, #0 + bl sub_08082850 +_0808280C: + pop {pc} + .align 2, 0 +_08082810: .4byte gUnk_03003F80 + + thumb_func_start nullsub_512 +nullsub_512: @ 0x08082814 + bx lr + .align 2, 0 + + thumb_func_start sub_08082818 +sub_08082818: @ 0x08082818 + push {lr} + movs r1, #0 + bl sub_08082850 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08082824 +sub_08082824: @ 0x08082824 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x20] + cmp r0, #0 + bge _08082836 + ldrb r0, [r4, #0x18] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x18] +_08082836: + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _0808284C + adds r0, r4, #0 + movs r1, #0 + bl sub_08082850 +_0808284C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08082850 +sub_08082850: @ 0x08082850 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r1, [r4, #0xa] + adds r0, #0x7d + ldrb r2, [r0] + ldrb r3, [r4, #0xb] + adds r0, r4, #0 + bl sub_0808288C + adds r2, r0, #0 + adds r0, r4, #0 + movs r1, #5 + bl sub_080A29AC + cmp r0, #0 + beq _08082874 + str r5, [r0, #0x50] +_08082874: + ldrb r0, [r4, #0xb] + cmp r0, #1 + bne _08082884 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 +_08082884: + bl sub_0805E780 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0808288C +sub_0808288C: @ 0x0808288C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r0, #0 + adds r4, r1, #0 + adds r5, r2, #0 + mov r8, r3 + movs r6, #0 + cmp r4, #0 + beq _080828A6 + cmp r4, #0xff + bne _080828AA + b _080828D6 +_080828A6: + movs r6, #0x80 + b _080828D6 +_080828AA: + adds r0, r7, #0 + movs r1, #0 + adds r2, r4, #0 + adds r3, r5, #0 + bl sub_080A2988 + adds r2, r0, #0 + cmp r2, #0 + beq _080828D6 + mov r0, r8 + cmp r0, #2 + bne _080828D4 + movs r0, #5 + strb r0, [r2, #0xe] + adds r0, r7, #0 + adds r0, #0x86 + ldrh r1, [r0] + adds r0, r2, #0 + adds r0, #0x86 + strh r1, [r0] + b _080828D6 +_080828D4: + strb r6, [r2, #0xe] +_080828D6: + adds r0, r6, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_080828E0 +sub_080828E0: @ 0x080828E0 + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080828F8 + ldr r0, _080828F4 @ =gUnk_0811F15C + b _08082900 + .align 2, 0 +_080828F4: .4byte gUnk_0811F15C +_080828F8: + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _08082914 + ldr r0, _08082910 @ =gUnk_0811F14C +_08082900: + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _08082924 + .align 2, 0 +_08082910: .4byte gUnk_0811F14C +_08082914: + ldr r0, _08082928 @ =gUnk_0811F154 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 +_08082924: + pop {pc} + .align 2, 0 +_08082928: .4byte gUnk_0811F154 + + thumb_func_start sub_0808292C +sub_0808292C: @ 0x0808292C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x11] + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r3, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r4, #0x11] + ldr r5, _080829C8 @ =gUnk_03001160 + ldrb r1, [r5, #0x19] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r4, #0x19] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r5, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + subs r1, #1 + movs r0, #0x29 + adds r0, r0, r4 + mov ip, r0 + movs r0, #7 + ands r1, r0 + mov r0, ip + ldrb r2, [r0] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + ldrb r0, [r5, #0x1a] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + ldrb r1, [r4, #0x1a] + ands r3, r1 + orrs r3, r0 + strb r3, [r4, #0x1a] + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r5, #0x14] + cmp r0, #2 + bne _080829A4 + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x18] +_080829A4: + adds r0, r4, #0 + movs r1, #1 + movs r2, #3 + bl sub_080AE008 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080829CC + movs r0, #7 + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #7 + bl sub_080042AC + movs r0, #0xf3 + bl sub_080A3268 + b _080829E2 + .align 2, 0 +_080829C8: .4byte gUnk_03001160 +_080829CC: + movs r0, #0 + strb r0, [r4, #0xe] + movs r0, #0xa + strb r0, [r4, #0xf] + ldrh r0, [r4, #0x32] + subs r0, #0xe + strh r0, [r4, #0x32] + adds r0, r4, #0 + movs r1, #0x14 + bl sub_080042AC +_080829E2: + pop {r4, r5, pc} + + thumb_func_start sub_080829E4 +sub_080829E4: @ 0x080829E4 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _08082A10 @ =gUnk_03001160 + ldrb r1, [r0, #0x1a] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1c + ldrb r2, [r5, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x1a] + ldr r3, _08082A14 @ =gUnk_02000050 + ldrb r0, [r3] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0 + bne _08082A18 + adds r0, r5, #0 + bl sub_0805E7BC + b _08082AB4 + .align 2, 0 +_08082A10: .4byte gUnk_03001160 +_08082A14: .4byte gUnk_02000050 +_08082A18: + cmp r1, #5 + beq _08082A9C + ldrb r1, [r3, #1] + adds r0, r1, #0 + cmp r0, #0xa + beq _08082A30 + cmp r0, #0 + beq _08082A30 + movs r0, #0xf + ands r0, r1 + cmp r0, #9 + bls _08082A4A +_08082A30: + adds r1, r5, #0 + adds r1, #0x58 + ldrb r2, [r5, #0xf] + movs r0, #3 + ldrb r1, [r1] + orrs r2, r0 + cmp r1, r2 + beq _08082A9C + adds r0, r5, #0 + adds r1, r2, #0 + bl sub_080042AC + b _08082AB4 +_08082A4A: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08082A78 + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x90 + ands r0, r1 + cmp r0, #0 + beq _08082A9C + bl sub_08000E50 + ldr r4, _08082A74 @ =gUnk_0811F16C + movs r1, #9 + bl __modsi3 + adds r0, r0, r4 + ldrb r0, [r0] + strb r0, [r5, #0xf] + b _08082A8C + .align 2, 0 +_08082A74: .4byte gUnk_0811F16C +_08082A78: + adds r2, r5, #0 + adds r2, #0x58 + ldr r1, _08082A98 @ =gUnk_0811F16C + ldrb r0, [r3, #1] + adds r0, r0, r1 + ldrb r1, [r0] + ldrb r0, [r2] + cmp r0, r1 + beq _08082A9C + strb r1, [r5, #0xf] +_08082A8C: + ldrb r1, [r5, #0xf] + adds r0, r5, #0 + bl sub_080042AC + b _08082AB4 + .align 2, 0 +_08082A98: .4byte gUnk_0811F16C +_08082A9C: + adds r0, r5, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #7 + bls _08082AAA + movs r0, #1 + b _08082AAC +_08082AAA: + movs r0, #0 +_08082AAC: + strb r0, [r5, #0xe] + adds r0, r5, #0 + bl sub_080042B8 +_08082AB4: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08082AB8 +sub_08082AB8: @ 0x08082AB8 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _08082B10 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r5, #0x80 + ands r0, r5 + cmp r0, #0 + beq _08082ACC + bl sub_0805E780 +_08082ACC: + adds r0, r4, #0 + bl sub_080042B8 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _08082B5C + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08082B98 + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + movs r0, #0xa + strb r0, [r4, #0xf] + ldrb r0, [r4, #0xe] + subs r5, r0, #1 + adds r0, r4, #0 + movs r1, #0x79 + adds r2, r5, #0 + movs r3, #0 + bl sub_080A2988 + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _08082B18 + cmp r5, #0 + bne _08082B14 + str r1, [r4, #0x50] + b _08082B18 + .align 2, 0 +_08082B10: .4byte gUnk_03003F80 +_08082B14: + ldr r0, [r4, #0x50] + str r0, [r1, #0x50] +_08082B18: + ldrb r0, [r4, #0xe] + cmp r0, #6 + bne _08082B36 + movs r0, #3 + strb r0, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldr r1, [r4, #0x50] + movs r0, #1 + strb r0, [r1, #0xb] + adds r0, r4, #0 + movs r1, #0x1c + bl sub_080042AC + b _08082B98 +_08082B36: + ldr r1, _08082B58 @ =gUnk_0811F178 + ldrb r0, [r4, #0xe] + subs r0, #1 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080042AC + ldrb r0, [r4, #0xe] + cmp r0, #2 + bls _08082B98 + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x18] + b _08082B98 + .align 2, 0 +_08082B58: .4byte gUnk_0811F178 +_08082B5C: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _08082B98 + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + strb r0, [r4, #0xe] + cmp r0, #0 + beq _08082B98 + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + lsls r1, r1, #6 + ldrb r2, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0xe] + adds r1, #0x1b + adds r0, r4, #0 + bl sub_080042AC +_08082B98: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08082B9C +sub_08082B9C: @ 0x08082B9C + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldrb r1, [r6, #0x11] + movs r2, #0x10 + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r6, #0x11] + ldr r5, _08082C34 @ =gUnk_03001160 + ldrb r0, [r5, #0x1a] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + ldrb r1, [r6, #0x1a] + ands r2, r1 + orrs r2, r0 + strb r2, [r6, #0x1a] + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r6, #0 + adds r0, #0x38 + movs r4, #0 + strb r1, [r0] + adds r2, r6, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x18 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r6, #0x18] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r6, #0x18] + movs r0, #1 + strb r0, [r6, #0xc] + adds r0, r6, #0 + movs r1, #1 + movs r2, #3 + bl sub_080AE008 + adds r0, r6, #0 + movs r1, #0xc + bl sub_080042AC + adds r0, r6, #0 + adds r0, #0x82 + strh r4, [r0] + adds r4, r6, #0 + adds r4, #0x84 + ldr r1, [r4] + adds r0, r6, #0 + bl sub_0807DF74 + ldr r1, [r4] + adds r0, r6, #0 + bl sub_08082D20 + ldrb r0, [r5, #0x14] + cmp r0, #2 + bne _08082C2C + ldrb r0, [r6, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r6, #0x18] +_08082C2C: + adds r0, r6, #0 + bl sub_08082C5C + pop {r4, r5, r6, pc} + .align 2, 0 +_08082C34: .4byte gUnk_03001160 + + thumb_func_start sub_08082C38 +sub_08082C38: @ 0x08082C38 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r5, #0 + adds r4, #0x84 + ldr r1, [r4] + bl sub_0807DF74 + ldr r1, [r4] + adds r0, r5, #0 + bl sub_08082D20 + ldrb r0, [r5, #0xc] + cmp r0, #1 + bhi _08082C5A + adds r0, r5, #0 + bl sub_08082C5C +_08082C5A: + pop {r4, r5, pc} + + thumb_func_start sub_08082C5C +sub_08082C5C: @ 0x08082C5C + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xd] + cmp r0, #4 + bhi _08082D0C + lsls r0, r0, #2 + ldr r1, _08082C70 @ =_08082C74 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08082C70: .4byte _08082C74 +_08082C74: @ jump table + .4byte _08082C88 @ case 0 + .4byte _08082C9C @ case 1 + .4byte _08082CB0 @ case 2 + .4byte _08082CE4 @ case 3 + .4byte _08082CF8 @ case 4 +_08082C88: + adds r0, r5, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0x17 + beq _08082D0C + adds r0, r5, #0 + movs r1, #0x17 + bl sub_080042AC + b _08082D1C +_08082C9C: + adds r0, r5, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0x18 + beq _08082D0C + adds r0, r5, #0 + movs r1, #0x18 + bl sub_080042AC + b _08082D1C +_08082CB0: + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08082D0C + bl sub_08000E50 + adds r4, r0, #0 + bl sub_08000E50 + adds r1, r0, #0 + ldr r2, _08082CE0 @ =gUnk_0811F18C + movs r0, #3 + ands r4, r0 + adds r4, r4, r2 + ands r1, r0 + ldrb r4, [r4] + adds r1, r1, r4 + adds r0, r5, #0 + bl sub_080042AC + b _08082D1C + .align 2, 0 +_08082CE0: .4byte gUnk_0811F18C +_08082CE4: + adds r0, r5, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0x13 + beq _08082D0C + adds r0, r5, #0 + movs r1, #0x13 + bl sub_080042AC + b _08082D1C +_08082CF8: + adds r0, r5, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0x1a + beq _08082D0C + adds r0, r5, #0 + movs r1, #0x1a + bl sub_080042AC + b _08082D1C +_08082D0C: + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r5, #0 + bl sub_08003FC4 + adds r0, r5, #0 + bl sub_080042B8 +_08082D1C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08082D20 +sub_08082D20: @ 0x08082D20 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r3, r1, #0 + ldr r0, [r3, #8] + cmp r0, #0 + beq _08082E10 + movs r6, #0 + movs r5, #1 + movs r0, #4 + rsbs r0, r0, #0 + mov ip, r0 +_08082D36: + ldr r1, [r3, #8] + mvns r0, r1 + adds r2, r0, #1 + ands r2, r1 + eors r1, r2 + str r1, [r3, #8] + cmp r2, #0x80 + beq _08082DB4 + cmp r2, #0x80 + bhi _08082D66 + cmp r2, #4 + beq _08082D9E + cmp r2, #4 + bhi _08082D5C + cmp r2, #1 + beq _08082D96 + cmp r2, #2 + beq _08082D9A + b _08082E0A +_08082D5C: + cmp r2, #8 + beq _08082DA4 + cmp r2, #0x40 + beq _08082DDA + b _08082E0A +_08082D66: + movs r0, #0x80 + lsls r0, r0, #0xd + cmp r2, r0 + beq _08082DDE + cmp r2, r0 + bhi _08082D84 + movs r0, #0x80 + lsls r0, r0, #1 + cmp r2, r0 + beq _08082DAA + movs r0, #0x80 + lsls r0, r0, #0xa + cmp r2, r0 + beq _08082DC0 + b _08082E0A +_08082D84: + movs r0, #0x80 + lsls r0, r0, #0xe + cmp r2, r0 + beq _08082DE6 + movs r0, #0x80 + lsls r0, r0, #0xf + cmp r2, r0 + beq _08082DF2 + b _08082E0A +_08082D96: + strb r6, [r4, #0xd] + b _08082E0A +_08082D9A: + strb r5, [r4, #0xd] + b _08082E0A +_08082D9E: + movs r0, #2 + strb r0, [r4, #0xd] + b _08082E0A +_08082DA4: + movs r0, #3 + strb r0, [r4, #0xd] + b _08082E0A +_08082DAA: + ldrb r0, [r4, #0x18] + mov r1, ip + ands r0, r1 + strb r0, [r4, #0x18] + b _08082E0A +_08082DB4: + ldrb r0, [r4, #0x18] + mov r7, ip + ands r0, r7 + orrs r0, r5 + strb r0, [r4, #0x18] + b _08082E0A +_08082DC0: + ldrb r0, [r4, #0x18] + lsls r1, r0, #0x19 + lsrs r1, r1, #0x1f + eors r1, r5 + ands r1, r5 + lsls r1, r1, #6 + movs r7, #0x41 + rsbs r7, r7, #0 + adds r2, r7, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + b _08082E0A +_08082DDA: + bl sub_0805E780 +_08082DDE: + movs r0, #2 + strb r0, [r4, #0xc] + strb r6, [r4, #0xd] + b _08082E10 +_08082DE6: + movs r0, #4 + strb r0, [r4, #0xd] + adds r1, r4, #0 + adds r1, #0x62 + strb r0, [r1] + b _08082E0A +_08082DF2: + movs r0, #3 + strb r0, [r4, #0xc] + strb r6, [r4, #0xd] + adds r1, r4, #0 + adds r1, #0x62 + movs r0, #4 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x1b + bl sub_080042AC + b _08082E10 +_08082E0A: + ldr r0, [r3, #8] + cmp r0, #0 + bne _08082D36 +_08082E10: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08082E14 +sub_08082E14: @ 0x08082E14 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x84 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_0807DF74 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _08082E38 + cmp r0, #1 + beq _08082E44 + b _08082E5E +_08082E38: + ldr r0, [r4, #0x20] + cmp r0, #0 + bge _08082E5E + movs r0, #1 + strb r0, [r4, #0xd] + b _08082E5E +_08082E44: + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #0xa + rsbs r0, r0, #0 + cmp r1, r0 + ble _08082E5E + ldr r0, _08082E68 @ =gUnk_02033280 + ldr r1, [r0] + movs r2, #2 + orrs r1, r2 + str r1, [r0] + bl sub_0805E780 +_08082E5E: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 +_08082E68: .4byte gUnk_02033280 + + thumb_func_start sub_08082E6C +sub_08082E6C: @ 0x08082E6C + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08082E98 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x62 + strb r1, [r0] + adds r0, r4, #0 + movs r1, #0x17 + bl sub_080042AC +_08082E98: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08082E9C +sub_08082E9C: @ 0x08082E9C + push {lr} + ldr r2, _08082EB0 @ =gUnk_0811F624 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08082EB0: .4byte gUnk_0811F624 + + thumb_func_start sub_08082EB4 +sub_08082EB4: @ 0x08082EB4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r0, _08082EE0 @ =gUnk_03000BF0 + ldrb r1, [r0, #4] + adds r6, r0, #0 + cmp r1, #0x11 + bne _08082EF6 + adds r0, r4, #0 + bl sub_080AE068 + ldr r1, _08082EE4 @ =0x000001C1 + adds r0, r4, #0 + bl sub_080ADF80 + cmp r0, #0 + bne _08082EE8 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + b _0808308E + .align 2, 0 +_08082EE0: .4byte gUnk_03000BF0 +_08082EE4: .4byte 0x000001C1 +_08082EE8: + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r4, #0x18] +_08082EF6: + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x20 + strb r0, [r4, #0xe] + movs r0, #0x80 + strh r0, [r4, #0x24] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0x88 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldrh r1, [r6, #6] + subs r0, r0, r1 + asrs r5, r0, #4 + movs r2, #0x3f + ands r5, r2 + movs r1, #0x32 + ldrsh r0, [r4, r1] + ldrh r1, [r6, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r5, r0 + ldrb r1, [r4, #0xa] + lsls r1, r1, #3 + ldrh r0, [r4, #0x2e] + adds r0, r1, r0 + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x32] + adds r1, r1, r0 + strh r1, [r4, #0x32] + ldr r1, _08082F6C @ =gUnk_0811F64C + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r4, #0x48] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r5, #0 + bl sub_080002B0 + str r0, [r4, #0x68] + ldrb r0, [r4, #0xa] + cmp r0, #1 + beq _08082F7A + cmp r0, #1 + bgt _08082F70 + cmp r0, #0 + beq _08082F76 + b _08082FF0 + .align 2, 0 +_08082F6C: .4byte gUnk_0811F64C +_08082F70: + cmp r0, #2 + beq _08082F9A + b _08082FF0 +_08082F76: + adds r0, r5, #0 + b _08082FE8 +_08082F7A: + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #1 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #0 + adds r0, #0x40 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #0 + adds r0, #0x41 + b _08082FE8 +_08082F9A: + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #1 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #2 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #0 + adds r0, #0x40 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #0 + adds r0, #0x41 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #0 + adds r0, #0x42 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #0 + adds r0, #0x80 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #0 + adds r0, #0x81 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #0 + adds r0, #0x82 +_08082FE8: + adds r1, r4, #0 + bl sub_080832D8 + b _08083088 +_08082FF0: + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #1 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #2 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #3 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #0 + adds r0, #0x40 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #0 + adds r0, #0x41 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #0 + adds r0, #0x42 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #0 + adds r0, #0x43 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #0 + adds r0, #0x80 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #0 + adds r0, #0x81 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #0 + adds r0, #0x82 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #0 + adds r0, #0x83 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #0 + adds r0, #0xc0 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #0 + adds r0, #0xc1 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #0 + adds r0, #0xc2 + adds r1, r4, #0 + bl sub_080832D8 + adds r0, r5, #0 + adds r0, #0xc3 + adds r1, r4, #0 + bl sub_080832D8 +_08083088: + ldr r0, _08083090 @ =0x0000010F + bl sub_08004488 +_0808308E: + pop {r4, r5, r6, pc} + .align 2, 0 +_08083090: .4byte 0x0000010F + + thumb_func_start sub_08083094 +sub_08083094: @ 0x08083094 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_0800445C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080830B4 + adds r0, r4, #0 + bl sub_080830B8 +_080830B4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080830B8 +sub_080830B8: @ 0x080830B8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov sb, r0 + ldrb r5, [r0, #0xa] + lsls r4, r5, #3 + movs r1, #0x2e + ldrsh r0, [r0, r1] + subs r0, r0, r4 + ldr r3, _080830FC @ =gUnk_03000BF0 + ldrh r1, [r3, #6] + subs r0, r0, r1 + asrs r7, r0, #4 + movs r2, #0x3f + ands r7, r2 + mov r6, sb + movs r1, #0x32 + ldrsh r0, [r6, r1] + subs r0, r0, r4 + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r7, r0 + cmp r5, #1 + beq _08083128 + cmp r5, #1 + bgt _08083100 + cmp r5, #0 + beq _08083106 + b _080831EC + .align 2, 0 +_080830FC: .4byte gUnk_03000BF0 +_08083100: + cmp r5, #2 + beq _08083160 + b _080831EC +_08083106: + mov r0, sb + bl sub_0800442E + cmp r0, #0 + beq _08083112 + b _080832C0 +_08083112: + ldr r0, _08083124 @ =0x00000365 + mov r1, sb + adds r1, #0x38 + ldrb r2, [r1] + adds r1, r7, #0 + bl sub_0807B7D8 + b _080832BA + .align 2, 0 +_08083124: .4byte 0x00000365 +_08083128: + mov r2, sb + ldr r0, [r2, #0x68] + mov r4, sb + adds r4, #0x38 + ldrb r2, [r4] + adds r1, r7, #0 + bl sub_0807B7D8 + ldr r0, _08083158 @ =0x0000036F + adds r1, r7, #1 + ldrb r2, [r4] + bl sub_0807B7D8 + movs r0, #0xdc + lsls r0, r0, #2 + adds r1, r7, #0 + adds r1, #0x40 + ldrb r2, [r4] + bl sub_0807B7D8 + ldr r0, _0808315C @ =0x00000371 + adds r1, r7, #0 + adds r1, #0x41 + b _080831CA + .align 2, 0 +_08083158: .4byte 0x0000036F +_0808315C: .4byte 0x00000371 +_08083160: + mov r6, sb + ldr r0, [r6, #0x68] + mov r4, sb + adds r4, #0x38 + ldrb r2, [r4] + adds r1, r7, #0 + bl sub_0807B7D8 + ldr r0, _080831D4 @ =0x00000372 + adds r1, r7, #1 + ldrb r2, [r4] + bl sub_0807B7D8 + ldr r0, _080831D8 @ =0x0000036F + adds r1, r7, #2 + ldrb r2, [r4] + bl sub_0807B7D8 + movs r0, #0xdd + lsls r0, r0, #2 + adds r1, r7, #0 + adds r1, #0x40 + ldrb r2, [r4] + bl sub_0807B7D8 + ldr r0, _080831DC @ =0x00000376 + adds r1, r7, #0 + adds r1, #0x41 + ldrb r2, [r4] + bl sub_0807B7D8 + ldr r0, _080831E0 @ =0x00000375 + adds r1, r7, #0 + adds r1, #0x42 + ldrb r2, [r4] + bl sub_0807B7D8 + movs r0, #0xdc + lsls r0, r0, #2 + adds r1, r7, #0 + adds r1, #0x80 + ldrb r2, [r4] + bl sub_0807B7D8 + ldr r0, _080831E4 @ =0x00000373 + adds r1, r7, #0 + adds r1, #0x81 + ldrb r2, [r4] + bl sub_0807B7D8 + ldr r0, _080831E8 @ =0x00000371 + adds r1, r7, #0 + adds r1, #0x82 +_080831CA: + ldrb r2, [r4] + bl sub_0807B7D8 + b _080832BA + .align 2, 0 +_080831D4: .4byte 0x00000372 +_080831D8: .4byte 0x0000036F +_080831DC: .4byte 0x00000376 +_080831E0: .4byte 0x00000375 +_080831E4: .4byte 0x00000373 +_080831E8: .4byte 0x00000371 +_080831EC: + mov r1, sb + ldr r0, [r1, #0x68] + mov r4, sb + adds r4, #0x38 + ldrb r2, [r4] + adds r1, r7, #0 + bl sub_0807B7D8 + ldr r5, _080832C8 @ =0x00000372 + adds r1, r7, #1 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0807B7D8 + adds r1, r7, #2 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0807B7D8 + ldr r0, _080832CC @ =0x0000036F + adds r1, r7, #3 + ldrb r2, [r4] + bl sub_0807B7D8 + movs r2, #0xdd + lsls r2, r2, #2 + mov r8, r2 + adds r1, r7, #0 + adds r1, #0x40 + ldrb r2, [r4] + mov r0, r8 + bl sub_0807B7D8 + adds r5, #4 + adds r1, r7, #0 + adds r1, #0x41 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0807B7D8 + adds r1, r7, #0 + adds r1, #0x42 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0807B7D8 + ldr r6, _080832D0 @ =0x00000375 + adds r1, r7, #0 + adds r1, #0x43 + ldrb r2, [r4] + adds r0, r6, #0 + bl sub_0807B7D8 + adds r1, r7, #0 + adds r1, #0x80 + ldrb r2, [r4] + mov r0, r8 + bl sub_0807B7D8 + adds r1, r7, #0 + adds r1, #0x81 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0807B7D8 + adds r1, r7, #0 + adds r1, #0x82 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0807B7D8 + adds r1, r7, #0 + adds r1, #0x83 + ldrb r2, [r4] + adds r0, r6, #0 + bl sub_0807B7D8 + movs r0, #0xdc + lsls r0, r0, #2 + adds r1, r7, #0 + adds r1, #0xc0 + ldrb r2, [r4] + bl sub_0807B7D8 + subs r5, #3 + adds r1, r7, #0 + adds r1, #0xc1 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0807B7D8 + adds r1, r7, #0 + adds r1, #0xc2 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0807B7D8 + ldr r0, _080832D4 @ =0x00000371 + adds r1, r7, #0 + adds r1, #0xc3 + ldrb r2, [r4] + bl sub_0807B7D8 +_080832BA: + mov r0, sb + bl sub_0805E7BC +_080832C0: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080832C8: .4byte 0x00000372 +_080832CC: .4byte 0x0000036F +_080832D0: .4byte 0x00000375 +_080832D4: .4byte 0x00000371 + + thumb_func_start sub_080832D8 +sub_080832D8: @ 0x080832D8 + push {lr} + adds r3, r0, #0 + adds r2, r1, #0 + adds r2, #0x38 + ldrb r0, [r2] + cmp r0, #2 + beq _080832FC + ldrb r1, [r1, #0x15] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080832F6 + ldrb r2, [r2] + movs r0, #0x21 + b _0808330A +_080832F6: + ldrb r2, [r2] + movs r0, #0x20 + b _0808330A +_080832FC: + ldrb r1, [r1, #0x15] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _08083312 + ldrb r2, [r2] + movs r0, #0x2f +_0808330A: + adds r1, r3, #0 + bl sub_0807B7D8 + b _0808331C +_08083312: + ldrb r2, [r2] + movs r0, #0x2e + adds r1, r3, #0 + bl sub_0807B7D8 +_0808331C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08083320 +sub_08083320: @ 0x08083320 + push {lr} + ldr r2, _08083334 @ =gUnk_0811F65C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08083334: .4byte gUnk_0811F65C + + thumb_func_start sub_08083338 +sub_08083338: @ 0x08083338 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x84 + ldrh r1, [r2] + ldr r0, _08083400 @ =0x0000FFFF + cmp r1, r0 + beq _08083356 + adds r0, r1, #0 + bl sub_0807CBE4 + cmp r0, #0 + beq _08083356 + bl sub_0805E780 +_08083356: + adds r0, r4, #0 + bl sub_080837B0 + cmp r0, #0 + bne _08083362 + b _080834B2 +_08083362: + ldrb r2, [r4, #0xa] + lsrs r0, r2, #2 + movs r1, #3 + ands r0, r1 + strb r0, [r4, #0xb] + movs r7, #3 + adds r0, r7, #0 + ands r0, r2 + strb r0, [r4, #0x1e] + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x70 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x72 + strh r0, [r1] + ldrb r1, [r4, #0xa] + adds r0, r7, #0 + ands r0, r1 + adds r6, r4, #0 + adds r6, #0x7e + strb r0, [r6] + ldr r0, _08083404 @ =gUnk_080FD170 + str r0, [r4, #0x48] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0xa] + movs r0, #0xf + ands r0, r1 + adds r1, r4, #0 + adds r1, #0x5a + strb r0, [r1] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _08083408 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r5, r4, #0 + adds r5, #0x76 + strh r1, [r5] + ldrh r0, [r5] + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x74 + strh r0, [r1] + ldrb r0, [r4, #0xb] + cmp r0, #1 + beq _08083438 + cmp r0, #1 + bgt _0808340C + cmp r0, #0 + beq _08083412 + b _080834AE + .align 2, 0 +_08083400: .4byte 0x0000FFFF +_08083404: .4byte gUnk_080FD170 +_08083408: .4byte gUnk_03000BF0 +_0808340C: + cmp r0, #2 + beq _08083456 + b _080834AE +_08083412: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + bne _0808342E + ldrb r1, [r4, #0xa] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0808344E + strb r7, [r4, #0xc] + b _080834B2 +_0808342E: + ldrb r1, [r4, #0xa] + movs r0, #0xef + ands r0, r1 + strb r0, [r4, #0xa] + b _08083446 +_08083438: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + bne _0808344E +_08083446: + adds r0, r4, #0 + bl sub_08083638 + b _080834B2 +_0808344E: + adds r0, r4, #0 + bl sub_080836A0 + b _080834B2 +_08083456: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + bne _080834A8 + ldrb r0, [r4, #0x1e] + movs r1, #4 + orrs r0, r1 + strb r0, [r4, #0x1e] + ldrb r1, [r6] + ldrh r2, [r5] + adds r0, r4, #0 + bl sub_080836DC + bl sub_08052660 + cmp r0, #0 + bne _08083484 + movs r0, #5 + strb r0, [r4, #0xc] + b _080834B2 +_08083484: + movs r0, #8 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_080787CC + ldr r1, _080834A4 @ =gUnk_0811F740 + ldrb r0, [r6] + adds r0, r0, r1 + ldrb r2, [r0] + adds r0, r4, #0 + movs r1, #0 + movs r3, #0 + bl sub_08078850 + b _080834B2 + .align 2, 0 +_080834A4: .4byte gUnk_0811F740 +_080834A8: + bl sub_0805E780 + b _080834B2 +_080834AE: + bl sub_0805E780 +_080834B2: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080834B4 +sub_080834B4: @ 0x080834B4 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080834E6 + movs r0, #2 + strb r0, [r2, #0xc] + movs r0, #7 + strb r0, [r2, #0xe] + adds r0, r2, #0 + adds r0, #0x74 + ldrh r0, [r0] + adds r1, r2, #0 + adds r1, #0x76 + ldrh r1, [r1] + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + ldr r0, _080834E8 @ =0x0000010B + bl sub_08004488 +_080834E6: + pop {pc} + .align 2, 0 +_080834E8: .4byte 0x0000010B + + thumb_func_start sub_080834EC +sub_080834EC: @ 0x080834EC + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08083516 + ldrb r1, [r4, #0xa] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08083512 + adds r0, r4, #0 + bl sub_08083638 + b _08083516 +_08083512: + bl sub_0805E780 +_08083516: + pop {r4, pc} + + thumb_func_start sub_08083518 +sub_08083518: @ 0x08083518 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x7e + ldrb r1, [r5] + bl sub_08083734 + cmp r0, #0 + beq _0808353C + movs r0, #4 + strb r0, [r4, #0xc] + ldrb r1, [r5] + adds r0, r4, #0 + adds r0, #0x76 + ldrh r2, [r0] + adds r0, r4, #0 + bl sub_080836DC +_0808353C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08083540 +sub_08083540: @ 0x08083540 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808358C + ldrb r1, [r4, #0xa] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08083566 + movs r0, #0xef + ands r0, r1 + strb r0, [r4, #0xa] + b _0808356E +_08083566: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08083576 +_0808356E: + adds r0, r4, #0 + bl sub_080836A0 + b _0808357A +_08083576: + movs r0, #5 + strb r0, [r4, #0xc] +_0808357A: + adds r0, r4, #0 + adds r0, #0x7e + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08083814 + ldr r0, _08083590 @ =0x0000010B + bl sub_08004488 +_0808358C: + pop {r4, pc} + .align 2, 0 +_08083590: .4byte 0x0000010B + + thumb_func_start nullsub_513 +nullsub_513: @ 0x08083594 + bx lr + .align 2, 0 + + thumb_func_start sub_08083598 +sub_08083598: @ 0x08083598 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _080835B2 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _080835C6 + b _080835C0 +_080835B2: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + bne _080835C6 +_080835C0: + adds r0, r4, #0 + bl sub_08083658 +_080835C6: + pop {r4, pc} + + thumb_func_start sub_080835C8 +sub_080835C8: @ 0x080835C8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _080835E2 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + bne _080835F4 + b _080835F0 +_080835E2: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _080835F4 +_080835F0: + movs r0, #3 + strb r0, [r4, #0xc] +_080835F4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080835F8 +sub_080835F8: @ 0x080835F8 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _08083616 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _08083636 +_08083616: + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x14 + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_08083658 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + movs r0, #1 + rsbs r0, r0, #0 + bl sub_080526F8 +_08083636: + pop {r4, pc} + + thumb_func_start sub_08083638 +sub_08083638: @ 0x08083638 + adds r2, r0, #0 + movs r0, #7 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + subs r0, #0xb + ands r0, r1 + strb r0, [r2, #0x18] + adds r0, r2, #0 + adds r0, #0x70 + ldrh r0, [r0] + strh r0, [r2, #0x2e] + adds r0, r2, #0 + adds r0, #0x72 + ldrh r0, [r0] + strh r0, [r2, #0x32] + bx lr + + thumb_func_start sub_08083658 +sub_08083658: @ 0x08083658 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0x14 + strb r1, [r0, #0xe] + adds r2, r0, #0 + adds r2, #0x7e + ldrb r1, [r2] + lsls r1, r1, #3 + strb r1, [r0, #0x15] + ldrb r2, [r2] + lsls r2, r2, #1 + ldr r1, _08083698 @ =gUnk_0811F680 + adds r2, r2, r1 + movs r1, #0 + ldrsb r1, [r2, r1] + ldrh r3, [r0, #0x2e] + adds r1, r1, r3 + strh r1, [r0, #0x2e] + movs r1, #1 + ldrsb r1, [r2, r1] + ldrh r2, [r0, #0x32] + adds r1, r1, r2 + strh r1, [r0, #0x32] + movs r1, #0x3c + bl sub_0805E4E0 + ldr r0, _0808369C @ =0x0000010B + bl sub_080A3268 + pop {pc} + .align 2, 0 +_08083698: .4byte gUnk_0811F680 +_0808369C: .4byte 0x0000010B + + thumb_func_start sub_080836A0 +sub_080836A0: @ 0x080836A0 + push {lr} + adds r2, r0, #0 + movs r0, #6 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + subs r0, #0xa + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + adds r0, r2, #0 + adds r0, #0x70 + ldrh r0, [r0] + strh r0, [r2, #0x2e] + adds r0, r2, #0 + adds r0, #0x72 + ldrh r0, [r0] + strh r0, [r2, #0x32] + ldr r0, _080836D8 @ =0x00004022 + adds r1, r2, #0 + adds r1, #0x76 + ldrh r1, [r1] + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + pop {pc} + .align 2, 0 +_080836D8: .4byte 0x00004022 + + thumb_func_start sub_080836DC +sub_080836DC: @ 0x080836DC + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r1, r2, #0 + ldr r0, _0808372C @ =0x00004022 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + movs r0, #7 + strb r0, [r5, #0xe] + ldrb r1, [r5, #0x18] + subs r0, #0xb + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #0x18] + lsls r0, r4, #3 + movs r1, #0x10 + eors r0, r1 + strb r0, [r5, #0x15] + lsls r4, r4, #1 + ldr r0, _08083730 @ =gUnk_0811F688 + adds r4, r4, r0 + ldrb r0, [r5, #0xb] + cmp r0, #2 + beq _08083728 + movs r0, #0 + ldrsb r0, [r4, r0] + ldrh r1, [r5, #0x2e] + adds r0, r0, r1 + strh r0, [r5, #0x2e] + movs r0, #1 + ldrsb r0, [r4, r0] + ldrh r1, [r5, #0x32] + adds r0, r0, r1 + strh r0, [r5, #0x32] +_08083728: + pop {r4, r5, pc} + .align 2, 0 +_0808372C: .4byte 0x00004022 +_08083730: .4byte gUnk_0811F688 + + thumb_func_start sub_08083734 +sub_08083734: @ 0x08083734 + push {lr} + adds r2, r0, #0 + cmp r1, #1 + beq _08083760 + cmp r1, #1 + blo _0808374A + cmp r1, #2 + beq _08083774 + cmp r1, #3 + beq _08083790 + b _080837AC +_0808374A: + adds r0, r2, #0 + adds r0, #0x72 + ldrh r1, [r0] + ldr r0, _0808375C @ =gUnk_03001160 + movs r2, #0x32 + ldrsh r0, [r0, r2] + subs r0, #0xd + b _0808379E + .align 2, 0 +_0808375C: .4byte gUnk_03001160 +_08083760: + ldr r0, _08083770 @ =gUnk_03001160 + movs r1, #0x2e + ldrsh r0, [r0, r1] + adds r0, #0xb + adds r1, r2, #0 + adds r1, #0x70 + b _08083780 + .align 2, 0 +_08083770: .4byte gUnk_03001160 +_08083774: + ldr r0, _0808378C @ =gUnk_03001160 + movs r1, #0x32 + ldrsh r0, [r0, r1] + adds r0, #8 + adds r1, r2, #0 + adds r1, #0x72 +_08083780: + ldrh r1, [r1] + subs r0, r0, r1 + cmp r0, #0 + bge _080837AC + movs r0, #1 + b _080837AE + .align 2, 0 +_0808378C: .4byte gUnk_03001160 +_08083790: + adds r0, r2, #0 + adds r0, #0x70 + ldrh r1, [r0] + ldr r0, _080837A8 @ =gUnk_03001160 + movs r2, #0x2e + ldrsh r0, [r0, r2] + subs r0, #0xa +_0808379E: + subs r1, r1, r0 + cmp r1, #0 + bge _080837AC + movs r0, #1 + b _080837AE + .align 2, 0 +_080837A8: .4byte gUnk_03001160 +_080837AC: + movs r0, #0 +_080837AE: + pop {pc} + + thumb_func_start sub_080837B0 +sub_080837B0: @ 0x080837B0 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _080837C8 @ =gUnk_03000BF0 + ldrb r2, [r0, #4] + cmp r2, #0x3f + bhi _080837DC + cmp r2, #0x25 + beq _080837CC + cmp r2, #0x35 + beq _080837D4 + movs r5, #0xa + b _080837E8 + .align 2, 0 +_080837C8: .4byte gUnk_03000BF0 +_080837CC: + ldr r5, _080837D0 @ =0x000001E7 + b _080837E8 + .align 2, 0 +_080837D0: .4byte 0x000001E7 +_080837D4: + ldr r5, _080837D8 @ =0x000001C3 + b _080837E8 + .align 2, 0 +_080837D8: .4byte 0x000001C3 +_080837DC: + ldr r1, _080837F8 @ =gUnk_0811F690 + adds r0, r2, #0 + subs r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r5, [r0] +_080837E8: + cmp r2, #0x68 + bne _080837FC + adds r0, r4, #0 + movs r1, #0 + bl sub_0801D2B4 + b _08083808 + .align 2, 0 +_080837F8: .4byte gUnk_0811F690 +_080837FC: + cmp r2, #0x88 + bne _08083808 + adds r0, r4, #0 + movs r1, #1 + bl sub_0801D2B4 +_08083808: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080ADF80 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08083814 +sub_08083814: @ 0x08083814 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r1, r1, #2 + ldr r0, _08083868 @ =gUnk_0811F730 + adds r4, r1, r0 + adds r0, r5, #0 + movs r1, #0x11 + movs r2, #0x40 + bl sub_080A29AC + adds r2, r0, #0 + cmp r2, #0 + beq _08083842 + movs r0, #0 + ldrsb r0, [r4, r0] + ldrh r1, [r2, #0x2e] + adds r0, r0, r1 + strh r0, [r2, #0x2e] + movs r0, #1 + ldrsb r0, [r4, r0] + ldrh r1, [r2, #0x32] + adds r0, r0, r1 + strh r0, [r2, #0x32] +_08083842: + adds r0, r5, #0 + movs r1, #0x11 + movs r2, #0x40 + bl sub_080A29AC + adds r2, r0, #0 + cmp r2, #0 + beq _08083866 + movs r0, #2 + ldrsb r0, [r4, r0] + ldrh r1, [r2, #0x2e] + adds r0, r0, r1 + strh r0, [r2, #0x2e] + movs r0, #3 + ldrsb r0, [r4, r0] + ldrh r1, [r2, #0x32] + adds r0, r0, r1 + strh r0, [r2, #0x32] +_08083866: + pop {r4, r5, pc} + .align 2, 0 +_08083868: .4byte gUnk_0811F730 + + thumb_func_start sub_0808386C +sub_0808386C: @ 0x0808386C + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080838C8 @ =gUnk_03003F80 + adds r0, #0x27 + ldrb r1, [r0] + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r2, r0, #0x1f + ldr r0, _080838CC @ =gUnk_02022740 + ldrb r0, [r0] + cmp r0, #2 + bgt _08083894 + cmp r0, #0 + blt _08083894 + ldr r0, _080838D0 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + beq _080838AC +_08083894: + ldr r0, _080838D4 @ =gUnk_03003DF0 + ldr r0, [r0, #4] + ldrb r0, [r0, #3] + cmp r0, #0x32 + bne _080838AA + movs r0, #0x32 + bl sub_0801E7F4 + movs r2, #0 + cmp r0, #0 + beq _080838AC +_080838AA: + movs r2, #1 +_080838AC: + cmp r2, #0 + beq _080838B6 + adds r0, r4, #0 + bl sub_080838DC +_080838B6: + ldr r0, _080838D8 @ =gUnk_0811F754 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080838C8: .4byte gUnk_03003F80 +_080838CC: .4byte gUnk_02022740 +_080838D0: .4byte gUnk_02000050 +_080838D4: .4byte gUnk_03003DF0 +_080838D8: .4byte gUnk_0811F754 + + thumb_func_start sub_080838DC +sub_080838DC: @ 0x080838DC + ldrb r2, [r0, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0, #0x18] + ldrb r2, [r0, #0x1b] + movs r3, #0x3f + adds r1, r3, #0 + ands r1, r2 + movs r2, #0x40 + orrs r1, r2 + strb r1, [r0, #0x1b] + ldrb r1, [r0, #0x19] + ands r3, r1 + strb r3, [r0, #0x19] + adds r3, r0, #0 + adds r3, #0x29 + ldrb r2, [r3] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r3] + movs r2, #0 + movs r1, #4 + strb r1, [r0, #0xe] + str r2, [r0, #0x54] + strb r2, [r0, #0xc] + bx lr + + thumb_func_start sub_08083914 +sub_08083914: @ 0x08083914 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #1 + beq _08083942 + adds r0, r4, #0 + movs r1, #1 + movs r2, #1 + bl sub_080AE008 + adds r0, r4, #0 + adds r0, #0x60 + ldrh r1, [r0] + subs r1, #0x10 + strh r1, [r0] + ldr r1, _08083958 @ =0x01027820 + movs r0, #1 + bl sub_080ADDD8 + adds r0, r4, #0 + bl sub_080838DC +_08083942: + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + pop {r4, pc} + .align 2, 0 +_08083958: .4byte 0x01027820 + + thumb_func_start sub_0808395C +sub_0808395C: @ 0x0808395C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + cmp r0, #0 + beq _0808396C + subs r0, #1 + strb r0, [r2, #0xe] + b _08083992 +_0808396C: + ldr r3, _08083994 @ =gUnk_03003DF0 + ldr r0, [r3, #4] + ldr r1, [r0, #8] + cmp r1, #0 + beq _08083992 + ldrb r0, [r0, #3] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x63 + bhi _08083992 + str r1, [r2, #0x54] + ldrb r0, [r3, #3] + adds r1, r2, #0 + adds r1, #0x39 + strb r0, [r1] + adds r0, r2, #0 + bl sub_08083A40 +_08083992: + pop {pc} + .align 2, 0 +_08083994: .4byte gUnk_03003DF0 + + thumb_func_start sub_08083998 +sub_08083998: @ 0x08083998 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #1 + beq _080839C8 + ldr r0, _080839C4 @ =gUnk_03003DF0 + ldr r2, [r0, #4] + ldrb r0, [r2, #3] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x63 + bhi _080839BA + ldr r1, [r4, #0x54] + ldr r0, [r2, #8] + cmp r1, r0 + beq _080839C8 +_080839BA: + adds r0, r4, #0 + bl sub_080838DC + b _08083A32 + .align 2, 0 +_080839C4: .4byte gUnk_03003DF0 +_080839C8: + ldr r1, [r4, #0x54] + ldr r0, [r1, #0x2c] + str r0, [r4, #0x2c] + ldr r0, [r1, #0x30] + str r0, [r4, #0x30] + ldr r0, [r1, #0x34] + str r0, [r4, #0x34] + adds r1, r4, #0 + adds r1, #0x5a + ldrb r0, [r1] + cmp r0, #1 + bne _08083A2C + movs r0, #0 + strb r0, [r1] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080839F8 + ldr r0, _080839F4 @ =gUnk_03003DF0 + ldr r0, [r0, #4] + ldrb r0, [r0, #3] + b _080839FA + .align 2, 0 +_080839F4: .4byte gUnk_03003DF0 +_080839F8: + ldrb r0, [r4, #0xb] +_080839FA: + lsls r0, r0, #3 + ldr r1, _08083A34 @ =gUnk_080C9CBC + adds r0, r0, r1 + ldrb r2, [r0, #6] + movs r1, #1 + ands r1, r2 + ldrb r3, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r4, #0x1a] + ldr r0, _08083A38 @ =gUnk_0811F744 + lsls r2, r2, #2 + adds r2, r2, r0 + ldr r1, [r2] + lsrs r2, r1, #0x1f + ldr r0, _08083A3C @ =0x00FFFFFF + ands r1, r0 + orrs r1, r2 + adds r0, #1 + orrs r1, r0 + movs r0, #0 + bl sub_080ADDD8 +_08083A2C: + adds r0, r4, #0 + bl sub_08004274 +_08083A32: + pop {r4, pc} + .align 2, 0 +_08083A34: .4byte gUnk_080C9CBC +_08083A38: .4byte gUnk_0811F744 +_08083A3C: .4byte 0x00FFFFFF + + thumb_func_start sub_08083A40 +sub_08083A40: @ 0x08083A40 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #2 + strb r0, [r4, #0xc] + ldr r0, [r4, #0x54] + ldr r1, _08083A70 @ =gUnk_03001160 + movs r3, #0x2e + ldrsh r2, [r0, r3] + movs r3, #0x2e + ldrsh r0, [r1, r3] + cmp r2, r0 + ble _08083A74 + movs r1, #0 + adds r2, r4, #0 + adds r2, #0x62 + movs r0, #8 + b _08083A7C + .align 2, 0 +_08083A70: .4byte gUnk_03001160 +_08083A74: + movs r1, #1 + adds r2, r4, #0 + adds r2, #0x62 + movs r0, #0xf8 +_08083A7C: + strb r0, [r2] + adds r2, r4, #0 + adds r2, #0x63 + movs r0, #0xee + strb r0, [r2] + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08083998 + pop {r4, pc} + + thumb_func_start sub_08083A94 +sub_08083A94: @ 0x08083A94 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + ldrb r0, [r6, #0xc] + cmp r0, #0 + bne _08083B24 + movs r0, #1 + mov r8, r0 + mov r2, r8 + strb r2, [r6, #0xc] + ldr r0, _08083B10 @ =gUnk_080FD170 + str r0, [r6, #0x48] + adds r7, r6, #0 + adds r7, #0x38 + ldrb r0, [r7] + movs r1, #0x34 + cmp r0, #1 + bne _08083ABC + movs r1, #0x26 +_08083ABC: + adds r4, r6, #0 + adds r4, #0x70 + strh r1, [r4] + adds r0, r6, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _08083B1C + ldrh r0, [r4] + movs r3, #0x2e + ldrsh r1, [r6, r3] + ldr r5, _08083B14 @ =gUnk_03000BF0 + ldrh r2, [r5, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r3, #0x32 + ldrsh r2, [r6, r3] + ldrh r3, [r5, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + ldrb r2, [r7] + bl sub_0807B314 + ldrh r1, [r5] + mov r0, r8 + ands r0, r1 + cmp r0, #0 + beq _08083B08 + ldr r1, _08083B18 @ =gUnk_02000070 + movs r0, #0 + strb r0, [r1] +_08083B08: + bl sub_0805E780 + b _08083B7E + .align 2, 0 +_08083B10: .4byte gUnk_080FD170 +_08083B14: .4byte gUnk_03000BF0 +_08083B18: .4byte gUnk_02000070 +_08083B1C: + adds r0, r6, #0 + bl sub_080787CC + b _08083B7E +_08083B24: + adds r0, r6, #0 + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _08083B7E + adds r0, r6, #0 + adds r0, #0x70 + ldrh r0, [r0] + movs r5, #0x2e + ldrsh r1, [r6, r5] + ldr r3, _08083B84 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r5, #0x32 + ldrsh r2, [r6, r5] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r6, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0807B314 + adds r0, r6, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + adds r0, r6, #0 + bl sub_080A29BC + movs r0, #1 + rsbs r0, r0, #0 + bl sub_080526F8 + bl sub_0805E780 +_08083B7E: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08083B84: .4byte gUnk_03000BF0 + + thumb_func_start sub_08083B88 +sub_08083B88: @ 0x08083B88 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08083BDC @ =gUnk_0811F7D8 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldr r0, [r4, #0x50] + adds r0, #0x5a + ldrb r1, [r0] + lsrs r1, r1, #6 + movs r0, #1 + ands r1, r0 + ldrb r2, [r4, #0x18] + subs r0, #5 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_08080CB4 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0x1b] + movs r2, #0x3f + adds r0, r2, #0 + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + ands r2, r0 + strb r2, [r4, #0x19] + pop {r4, pc} + .align 2, 0 +_08083BDC: .4byte gUnk_0811F7D8 + + thumb_func_start sub_08083BE0 +sub_08083BE0: @ 0x08083BE0 + push {r4, lr} + adds r4, r0, #0 + movs r1, #6 + bl sub_0805E3A0 + movs r0, #1 + strb r0, [r4, #0xc] + pop {r4, pc} + + thumb_func_start sub_08083BF0 +sub_08083BF0: @ 0x08083BF0 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #0x41 + bne _08083C98 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xe] + cmp r0, #5 + bhi _08083C98 + lsls r0, r0, #2 + ldr r1, _08083C14 @ =_08083C18 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08083C14: .4byte _08083C18 +_08083C18: @ jump table + .4byte _08083C30 @ case 0 + .4byte _08083C30 @ case 1 + .4byte _08083C4A @ case 2 + .4byte _08083C98 @ case 3 + .4byte _08083C98 @ case 4 + .4byte _08083C74 @ case 5 +_08083C30: + ldrb r0, [r4, #0xa] + ldrb r1, [r4, #0xb] + bl sub_08053FF0 + adds r1, r4, #0 + adds r1, #0x68 + strh r0, [r1] + ldrb r0, [r4, #0xa] + cmp r0, #0x43 + bgt _08083C62 + cmp r0, #0x40 + bge _08083C98 + b _08083C62 +_08083C4A: + ldrb r0, [r4, #0xa] + ldrb r1, [r4, #0xb] + bl sub_08053FF0 + ldr r1, _08083C6C @ =gUnk_080FD964 + ldrb r0, [r4, #0xa] + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r1, [r0, #6] + adds r0, r4, #0 + adds r0, #0x68 + strh r1, [r0] +_08083C62: + ldr r0, _08083C70 @ =0x00000109 + bl sub_080A3268 + b _08083C98 + .align 2, 0 +_08083C6C: .4byte gUnk_080FD964 +_08083C70: .4byte 0x00000109 +_08083C74: + ldrb r0, [r4, #0xa] + bl sub_0807CA84 + ldrb r1, [r4, #0xa] + lsls r1, r1, #3 + ldr r2, _08083C8C @ =gUnk_080FD5B4 + adds r1, r1, r2 + cmp r0, #0 + bne _08083C90 + ldrh r1, [r1, #4] + b _08083C92 + .align 2, 0 +_08083C8C: .4byte gUnk_080FD5B4 +_08083C90: + ldrh r1, [r1, #6] +_08083C92: + adds r0, r4, #0 + adds r0, #0x68 + strh r1, [r0] +_08083C98: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08083C9C +sub_08083C9C: @ 0x08083C9C + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #0x42 + bne _08083D22 + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xe] + cmp r0, #5 + bhi _08083D22 + lsls r0, r0, #2 + ldr r1, _08083CC0 @ =_08083CC4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08083CC0: .4byte _08083CC4 +_08083CC4: @ jump table + .4byte _08083CDC @ case 0 + .4byte _08083D22 @ case 1 + .4byte _08083CDC @ case 2 + .4byte _08083D22 @ case 3 + .4byte _08083D22 @ case 4 + .4byte _08083CDC @ case 5 +_08083CDC: + adds r0, r4, #0 + adds r0, #0x68 + ldrh r1, [r0] + cmp r1, #0 + beq _08083D22 + ldrb r0, [r4, #0xa] + cmp r0, #0x3f + beq _08083D00 + cmp r0, #0x63 + bne _08083D16 + ldr r0, _08083CFC @ =gUnk_02002A40 + adds r0, #0xa9 + ldrb r0, [r0] + adds r1, r1, r0 + b _08083D16 + .align 2, 0 +_08083CFC: .4byte gUnk_02002A40 +_08083D00: + ldrb r0, [r4, #0xb] + cmp r0, #1 + bls _08083D16 + ldr r0, _08083D10 @ =0x00000577 + cmp r1, r0 + bne _08083D14 + subs r1, #1 + b _08083D16 + .align 2, 0 +_08083D10: .4byte 0x00000577 +_08083D14: + adds r1, #1 +_08083D16: + adds r0, r1, #0 + bl sub_08056378 + ldr r1, _08083D24 @ =gUnk_02000050 + ldrb r0, [r4, #0xb] + str r0, [r1, #0x10] +_08083D22: + pop {r4, pc} + .align 2, 0 +_08083D24: .4byte gUnk_02000050 + + thumb_func_start sub_08083D28 +sub_08083D28: @ 0x08083D28 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #8 + beq _08083DD4 + ldrb r0, [r4, #0xe] + cmp r0, #5 + bhi _08083DD0 + lsls r0, r0, #2 + ldr r1, _08083D44 @ =_08083D48 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08083D44: .4byte _08083D48 +_08083D48: @ jump table + .4byte _08083D60 @ case 0 + .4byte _08083D60 @ case 1 + .4byte _08083D60 @ case 2 + .4byte _08083DAC @ case 3 + .4byte _08083DD0 @ case 4 + .4byte _08083DD0 @ case 5 +_08083D60: + ldrb r0, [r4, #0xa] + cmp r0, #0x62 + beq _08083D88 + cmp r0, #0x63 + bne _08083DD0 + movs r0, #0xa0 + bl sub_080526A0 + ldr r0, _08083DA8 @ =gUnk_02002A40 + adds r1, r0, #0 + adds r1, #0xa9 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bls _08083DD0 + movs r0, #0 + strb r0, [r1] +_08083D88: + ldr r0, _08083DA8 @ =gUnk_02002A40 + adds r1, r0, #0 + adds r1, #0xab + ldrb r0, [r1] + adds r0, #8 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xa0 + bls _08083DA0 + movs r0, #0xa0 + strb r0, [r1] +_08083DA0: + movs r0, #0xa0 + bl sub_080526A0 + b _08083DD0 + .align 2, 0 +_08083DA8: .4byte gUnk_02002A40 +_08083DAC: + ldrb r0, [r4, #0xa] + bl sub_080544DC + adds r1, r0, #0 + cmp r1, #0 + beq _08083DC8 + ldr r0, _08083DC4 @ =gUnk_02002A40 + adds r0, r0, r1 + adds r0, #0xb5 + movs r1, #0x20 + strb r1, [r0] + b _08083DD0 + .align 2, 0 +_08083DC4: .4byte gUnk_02002A40 +_08083DC8: + ldrb r0, [r4, #0xa] + movs r1, #2 + bl sub_0807CAA0 +_08083DD0: + bl sub_0805E780 +_08083DD4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08083DD8 +sub_08083DD8: @ 0x08083DD8 + push {lr} + ldr r2, _08083DEC @ =gUnk_0811F7E8 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08083DEC: .4byte gUnk_0811F7E8 + + thumb_func_start sub_08083DF0 +sub_08083DF0: @ 0x08083DF0 + push {lr} + ldr r2, _08083E04 @ =gUnk_0811F808 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08083E04: .4byte gUnk_0811F808 + + thumb_func_start sub_08083E08 +sub_08083E08: @ 0x08083E08 + push {lr} + ldr r2, _08083E1C @ =gUnk_0811F818 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08083E1C: .4byte gUnk_0811F818 + + thumb_func_start sub_08083E20 +sub_08083E20: @ 0x08083E20 + push {r4, lr} + adds r4, r0, #0 + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #7 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x19] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x19] + adds r0, r4, #0 + bl sub_080842D8 + adds r0, r4, #0 + bl sub_08078828 + pop {r4, pc} + + thumb_func_start sub_08083E4C +sub_08083E4C: @ 0x08083E4C + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08083E80 @ =gUnk_0811F8B0 + str r0, [r4, #0x48] + ldrb r0, [r4, #0xb] + bl sub_0807CBD0 + cmp r0, #0 + beq _08083E84 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #5 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_080842D8 + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + b _08083EAC + .align 2, 0 +_08083E80: .4byte gUnk_0811F8B0 +_08083E84: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + bne _08083E98 + ldrb r0, [r4, #0xa] + cmp r0, #4 + bne _08083EA0 +_08083E98: + adds r0, r4, #0 + bl sub_08083E20 + b _08083EA4 +_08083EA0: + movs r0, #1 + strb r0, [r4, #0xc] +_08083EA4: + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_08083EAC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08083EB0 +sub_08083EB0: @ 0x08083EB0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _08083F0A + ldr r1, _08083F0C @ =gUnk_03000F50 + adds r2, r1, #0 + adds r2, #0x66 + movs r3, #0 + movs r0, #0xf4 + lsls r0, r0, #4 + strh r0, [r2] + adds r1, #0x68 + adds r0, #0xc0 + strh r0, [r1] + ldr r1, _08083F10 @ =gUnk_02034490 + movs r2, #1 + movs r0, #1 + strb r0, [r1] + movs r0, #2 + strb r0, [r4, #0xc] + strb r3, [r4, #0xd] + movs r0, #0x1e + strb r0, [r4, #0xf] + ldrb r1, [r4, #0x18] + subs r0, #0x22 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x19] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r4, #0 + movs r1, #0x1e + bl sub_0805E4E0 + bl sub_0805BC4C +_08083F0A: + pop {r4, pc} + .align 2, 0 +_08083F0C: .4byte gUnk_03000F50 +_08083F10: .4byte gUnk_02034490 + + thumb_func_start sub_08083F14 +sub_08083F14: @ 0x08083F14 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x1e + bl sub_0805E510 + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _08083F78 + cmp r0, #1 + beq _08083FA4 + adds r0, r4, #0 + bl sub_0800445C + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + movs r2, #2 + bl sub_080577AC + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r2, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08083FE6 + movs r0, #8 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] + ands r2, r0 + ldr r3, _08083F74 @ =gUnk_03000F50 + movs r0, #0x10 + subs r0, r0, r2 + lsls r0, r0, #8 + movs r5, #0xff + lsls r5, r5, #8 + adds r1, r5, #0 + ands r0, r1 + orrs r0, r2 + adds r1, r3, #0 + adds r1, #0x68 + strh r0, [r1] + cmp r0, #0x10 + bne _08083FE6 + b _08083FCC + .align 2, 0 +_08083F74: .4byte gUnk_03000F50 +_08083F78: + ldr r5, _08083FA0 @ =gUnk_03001160 + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0x10 + movs r3, #8 + bl sub_080041A0 + cmp r0, #0 + beq _08083F98 + movs r0, #0x10 + movs r1, #0 + movs r2, #0 + bl sub_08078AC0 + movs r0, #0x10 + strb r0, [r5, #0x15] +_08083F98: + movs r0, #1 + strb r0, [r4, #0xd] + b _08083FE6 + .align 2, 0 +_08083FA0: .4byte gUnk_03001160 +_08083FA4: + ldrb r0, [r4, #0xa] + cmp r0, #5 + beq _08083FB2 + ldr r0, _08083FC8 @ =gUnk_03001160 + ldrb r0, [r0, #0xc] + cmp r0, #1 + bne _08083FE6 +_08083FB2: + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #8 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + movs r0, #0xa5 + lsls r0, r0, #1 + bl sub_080A3268 + b _08083FE6 + .align 2, 0 +_08083FC8: .4byte gUnk_03001160 +_08083FCC: + ldr r1, _08083FE8 @ =gUnk_02034490 + movs r0, #0 + strb r0, [r1] + adds r1, r3, #0 + adds r1, #0x66 + movs r0, #0 + strh r0, [r1] + adds r0, r4, #0 + bl sub_08083E20 + movs r0, #0x73 + bl sub_080A3268 +_08083FE6: + pop {r4, r5, pc} + .align 2, 0 +_08083FE8: .4byte gUnk_02034490 + + thumb_func_start sub_08083FEC +sub_08083FEC: @ 0x08083FEC + push {r4, lr} + adds r4, r0, #0 + bl sub_0800445C + adds r0, r4, #0 + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _0808401E + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_080788E0 + adds r0, r4, #0 + movs r1, #0x3c + bl sub_0805E4E0 + ldr r0, _08084020 @ =0x0000011B + bl sub_080A3268 +_0808401E: + pop {r4, pc} + .align 2, 0 +_08084020: .4byte 0x0000011B + + thumb_func_start sub_08084024 +sub_08084024: @ 0x08084024 + push {r4, lr} + adds r4, r0, #0 + bl sub_0800445C + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08084070 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808406A + ldrb r0, [r4, #0xe] + cmp r0, #0x18 + bne _08084060 + movs r0, #6 + strb r0, [r4, #0xc] + movs r0, #8 + strb r0, [r4, #0xe] + movs r0, #0x10 + strb r0, [r4, #0xf] + b _0808406A +_08084060: + movs r0, #5 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xb] + bl sub_08084074 +_0808406A: + ldrb r0, [r4, #0xb] + bl sub_0807CCB4 +_08084070: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08084074 +sub_08084074: @ 0x08084074 + push {r4, lr} + adds r4, r0, #0 + movs r0, #3 + bl sub_0804B128 + adds r1, r0, #0 + cmp r1, #0 + beq _080840A4 + b _0808409E +_08084086: + cmp r0, #3 + bne _0808409C + ldrb r0, [r1, #1] + cmp r4, r0 + bne _0808409C + ldrb r0, [r1, #2] + ldrb r1, [r1, #3] + movs r2, #0 + bl sub_080A7C00 + b _080840A4 +_0808409C: + adds r1, #8 +_0808409E: + ldrb r0, [r1] + cmp r0, #0 + bne _08084086 +_080840A4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080840A8 +sub_080840A8: @ 0x080840A8 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r7, r1, #0 + ldr r4, _0808413C @ =gUnk_0811F838 + bl sub_08000E50 + movs r1, #7 + ands r1, r0 + adds r1, r1, r4 + ldrb r1, [r1] + movs r0, #0 + movs r2, #0 + bl sub_080A2960 + adds r5, r0, #0 + cmp r5, #0 + beq _08084138 + movs r0, #6 + strb r0, [r5, #0xe] + bl sub_08000E50 + movs r1, #7 + ands r0, r1 + adds r0, #0xc + movs r1, #0x80 + orrs r0, r1 + strb r0, [r5, #0x15] + bl sub_08000E50 + movs r1, #0xf + ands r1, r0 + lsls r1, r1, #1 + adds r1, #0x20 + strh r1, [r5, #0x24] + bl sub_08000E50 + ldr r1, _08084140 @ =gUnk_0811F840 + movs r4, #3 + ands r0, r4 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r5, #0x20] + bl sub_08000E50 + ldr r1, _08084144 @ =gUnk_0811F850 + ands r0, r4 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, r0, r6 + strh r0, [r5, #0x2e] + adds r0, r7, #1 + strh r0, [r5, #0x32] + ldr r0, _08084148 @ =0x0000FFF8 + strh r0, [r5, #0x36] + adds r0, r5, #0 + bl sub_08016A30 + adds r0, r5, #0 + movs r1, #0x11 + movs r2, #0 + bl sub_080A29AC + adds r5, r0, #0 + cmp r5, #0 + beq _08084138 + movs r0, #0x92 + lsls r0, r0, #1 + bl sub_080A3268 +_08084138: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0808413C: .4byte gUnk_0811F838 +_08084140: .4byte gUnk_0811F840 +_08084144: .4byte gUnk_0811F850 +_08084148: .4byte 0x0000FFF8 + + thumb_func_start sub_0808414C +sub_0808414C: @ 0x0808414C + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + movs r2, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08084180 + movs r0, #8 + strb r0, [r1, #0xe] + ldrb r0, [r1, #0xf] + subs r0, #1 + strb r0, [r1, #0xf] + ands r0, r2 + cmp r0, #0 + beq _0808417C + movs r2, #0x2e + ldrsh r0, [r1, r2] + movs r2, #0x32 + ldrsh r1, [r1, r2] + bl sub_080840A8 + b _08084180 +_0808417C: + movs r0, #5 + strb r0, [r1, #0xc] +_08084180: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08084184 +sub_08084184: @ 0x08084184 + push {lr} + bl sub_0800445C + pop {pc} + + thumb_func_start nullsub_114 +nullsub_114: @ 0x0808418C + bx lr + .align 2, 0 + + thumb_func_start sub_08084190 +sub_08084190: @ 0x08084190 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _08084204 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r5, r4, #0 + adds r5, #0x70 + strh r1, [r5] + ldr r0, _08084208 @ =gUnk_0811F8A8 + str r0, [r4, #0x48] + adds r0, r4, #0 + bl sub_080002A0 + cmp r0, #0x74 + bne _080841D2 + bl sub_0805E780 +_080841D2: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _08084200 + movs r0, #3 + strb r0, [r4, #0xc] + ldrh r1, [r5] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r2, [r0] + movs r0, #0x73 + bl sub_0807B7D8 + ldrb r1, [r4, #0xa] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08084200 + bl sub_0805E780 +_08084200: + pop {r4, r5, pc} + .align 2, 0 +_08084204: .4byte gUnk_03000BF0 +_08084208: .4byte gUnk_0811F8A8 + + thumb_func_start sub_0808420C +sub_0808420C: @ 0x0808420C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _08084220 + movs r0, #2 + strb r0, [r4, #0xc] +_08084220: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08084224 +sub_08084224: @ 0x08084224 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x70 + ldrh r1, [r0] + subs r0, #0x38 + ldrb r2, [r0] + movs r0, #0x73 + bl sub_0807B7D8 + ldrb r0, [r4, #0xa] + cmp r0, #7 + bgt _0808424C + cmp r0, #6 + blt _0808424C + ldr r0, _08084248 @ =0x00000215 + bl sub_080A3268 + b _08084258 + .align 2, 0 +_08084248: .4byte 0x00000215 +_0808424C: + movs r0, #0x72 + bl sub_080A3268 + adds r0, r4, #0 + bl sub_080A29BC +_08084258: + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0xe] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r1, r4, #0 + adds r1, #0x72 + strh r0, [r1] + ldrb r1, [r4, #0xa] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08084278 + bl sub_0805E780 +_08084278: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808427C +sub_0808427C: @ 0x0808427C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #1 + beq _0808428A + cmp r0, #7 + bne _080842D4 +_0808428A: + adds r0, r4, #0 + bl sub_080002A0 + cmp r0, #0x74 + bne _0808429C + adds r0, r4, #0 + bl sub_0805E7BC + b _080842D4 +_0808429C: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + bne _080842D4 + adds r1, r4, #0 + adds r1, #0x72 + ldrh r0, [r1] + cmp r0, #0 + beq _080842BA + subs r0, #1 + strh r0, [r1] + b _080842D4 +_080842BA: + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x70 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_0807BA8C + adds r0, r4, #0 + bl sub_080A29BC +_080842D4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080842D8 +sub_080842D8: @ 0x080842D8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrh r2, [r5, #0x2e] + movs r1, #8 + adds r0, r1, #0 + ands r0, r2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + rsbs r0, r0, #0 + lsrs r2, r0, #0x1f + ldrh r0, [r5, #0x32] + ands r1, r0 + cmp r1, #0 + beq _080842F6 + adds r2, #2 +_080842F6: + ldr r1, _0808432C @ =gUnk_0811F898 + lsls r0, r2, #2 + adds r0, r0, r1 + ldr r0, [r0] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08084330 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0801AF18 + pop {r4, r5, r6, pc} + .align 2, 0 +_0808432C: .4byte gUnk_0811F898 +_08084330: .4byte gUnk_03000BF0 + + thumb_func_start sub_08084334 +sub_08084334: @ 0x08084334 + push {lr} + ldr r2, _08084348 @ =gUnk_0811F908 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08084348: .4byte gUnk_0811F908 + + thumb_func_start sub_0808434C +sub_0808434C: @ 0x0808434C + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r2, #1 + movs r3, #1 + strb r3, [r5, #0xc] + ldrb r1, [r5, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + adds r1, r5, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x3f + strb r3, [r0] + adds r1, #4 + movs r0, #0x47 + strb r0, [r1] + subs r1, #5 + movs r0, #2 + strb r0, [r1] + ldr r0, _080843E0 @ =gUnk_080FD188 + str r0, [r5, #0x48] + ldr r0, _080843E4 @ =0x00004050 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _080843E8 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + ldrb r0, [r5, #0xa] + cmp r0, #1 + beq _080843C8 + adds r0, r5, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _080843EC +_080843C8: + movs r0, #3 + strb r0, [r5, #0xc] + adds r0, r5, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + adds r0, r5, #0 + movs r1, #1 + bl sub_08004260 + b _080843F4 + .align 2, 0 +_080843E0: .4byte gUnk_080FD188 +_080843E4: .4byte 0x00004050 +_080843E8: .4byte gUnk_03000BF0 +_080843EC: + ldrb r1, [r5, #0xa] + adds r0, r5, #0 + bl sub_08004260 +_080843F4: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080843F8 +sub_080843F8: @ 0x080843F8 + push {lr} + adds r2, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x9c + bne _08084420 + movs r0, #2 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] + adds r0, r2, #0 + movs r1, #0xd + movs r2, #0 + bl sub_080A29AC + ldr r0, _08084424 @ =0x0000010D + bl sub_08004488 +_08084420: + pop {pc} + .align 2, 0 +_08084424: .4byte 0x0000010D + + thumb_func_start sub_08084428 +sub_08084428: @ 0x08084428 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08084454 + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + movs r0, #0x86 + lsls r0, r0, #1 + bl sub_08004488 +_08084454: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08084458 +sub_08084458: @ 0x08084458 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08084472 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x14 + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_08004168 + b _080844C2 +_08084472: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _080844C2 + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _080844C4 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r4, #0 + adds r0, #0x38 + ldrb r2, [r0] + movs r0, #0x35 + bl sub_0807B7D8 + adds r0, r4, #0 + movs r1, #0 + movs r2, #0x40 + bl sub_080A29AC + movs r0, #0x93 + lsls r0, r0, #1 + bl sub_080A3268 + bl sub_0805E780 +_080844C2: + pop {r4, r5, pc} + .align 2, 0 +_080844C4: .4byte gUnk_03000BF0 + + thumb_func_start sub_080844C8 +sub_080844C8: @ 0x080844C8 + push {lr} + ldr r2, _080844DC @ =gUnk_0811FAC0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080844DC: .4byte gUnk_0811FAC0 + + thumb_func_start sub_080844E0 +sub_080844E0: @ 0x080844E0 + push {r4, r5, lr} + adds r5, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + adds r0, r5, #0 + movs r1, #6 + bl sub_0805E3A0 + adds r0, r5, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #0 + bne _08084516 + adds r0, r5, #0 + bl sub_08016A30 +_08084516: + ldrb r0, [r5, #0xa] + cmp r0, #0x20 + bne _08084524 + ldrb r0, [r5, #0x10] + movs r1, #0x20 + orrs r0, r1 + strb r0, [r5, #0x10] +_08084524: + ldrb r4, [r5, #0xa] + cmp r4, #3 + bne _08084538 + bl sub_08000E50 + ldr r1, _080845AC @ =gUnk_0811FAC8 + ands r4, r0 + adds r1, r4, r1 + ldrb r0, [r1] + strb r0, [r5, #0xa] +_08084538: + ldrb r0, [r5, #0xa] + cmp r0, #0x17 + bne _0808454E + bl sub_08000E50 + ldr r2, _080845B0 @ =gUnk_0811FACC + movs r1, #3 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r5, #0xa] +_0808454E: + ldrb r1, [r5, #0xa] + adds r0, r5, #0 + bl sub_08004260 + ldrb r0, [r5, #0xa] + lsls r0, r0, #2 + ldr r1, _080845B4 @ =gUnk_0811F960 + adds r4, r0, r1 + ldrb r1, [r4] + movs r0, #0xf + ands r0, r1 + cmp r0, #6 + bne _0808456C + movs r0, #0x40 + strh r0, [r5, #0x24] +_0808456C: + ldrh r0, [r4, #2] + cmp r0, #0 + beq _08084582 + ldrb r1, [r5, #0xb] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _08084582 + ldrh r0, [r4, #2] + bl sub_08004488 +_08084582: + ldrb r1, [r5, #0xb] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08084594 + ldrb r1, [r4, #1] + adds r0, r5, #0 + bl sub_0805457C +_08084594: + ldrb r1, [r5, #0xb] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080845AA + ldrb r0, [r5, #0x19] + movs r1, #0x3f + ands r1, r0 + movs r0, #0x40 + orrs r1, r0 + strb r1, [r5, #0x19] +_080845AA: + pop {r4, r5, pc} + .align 2, 0 +_080845AC: .4byte gUnk_0811FAC8 +_080845B0: .4byte gUnk_0811FACC +_080845B4: .4byte gUnk_0811F960 + + thumb_func_start sub_080845B8 +sub_080845B8: @ 0x080845B8 + push {lr} + ldr r3, _080845D4 @ =gUnk_0811FAD0 + ldr r2, _080845D8 @ =gUnk_0811F960 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r1, [r1] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1a + adds r1, r1, r3 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080845D4: .4byte gUnk_0811FAD0 +_080845D8: .4byte gUnk_0811F960 + + thumb_func_start sub_080845DC +sub_080845DC: @ 0x080845DC + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080845F4 + bl sub_0805E780 +_080845F4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080845F8 +sub_080845F8: @ 0x080845F8 + push {r4, lr} + adds r4, r0, #0 + ldrh r2, [r4, #0x2e] + movs r1, #0xf + adds r0, r1, #0 + ands r0, r2 + movs r2, #8 + subs r3, r2, r0 + ldrh r0, [r4, #0x32] + ands r1, r0 + subs r1, r2, r1 + adds r0, r3, #0 + orrs r0, r1 + cmp r0, #0 + beq _08084626 + adds r0, r3, #0 + bl sub_080045DA + lsrs r0, r0, #3 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F69C +_08084626: + adds r0, r4, #0 + bl sub_08084630 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08084630 +sub_08084630: @ 0x08084630 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808467E + ldrb r1, [r4, #0xb] + movs r3, #1 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _0808467A + ldr r1, [r4, #0x54] + cmp r1, #0 + beq _0808467A + adds r1, #0x6a + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + ldr r0, [r4, #0x68] + cmp r0, #0 + beq _0808467A + ldr r2, [r4, #0x54] + adds r2, #0x6c + subs r0, #1 + movs r1, #0x1f + ands r0, r1 + adds r1, r3, #0 + lsls r1, r0 + ldrh r0, [r2] + bics r0, r1 + strh r0, [r2] +_0808467A: + bl sub_0805E780 +_0808467E: + pop {r4, pc} + + thumb_func_start sub_08084680 +sub_08084680: @ 0x08084680 + push {lr} + ldr r1, [r0, #0x34] + movs r2, #0x80 + lsls r2, r2, #7 + adds r1, r1, r2 + str r1, [r0, #0x34] + bl sub_080845DC + pop {pc} + .align 2, 0 + + thumb_func_start sub_08084694 +sub_08084694: @ 0x08084694 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + cmp r0, #0 + beq _080846A4 + ldr r0, [r0, #4] + cmp r0, #0 + bne _080846A8 +_080846A4: + bl sub_0805E780 +_080846A8: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_080846B0 +sub_080846B0: @ 0x080846B0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080846D8 + ldrh r1, [r4, #0x24] + movs r2, #0x24 + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _080846CA + adds r0, r1, #0 + subs r0, #0x10 + strh r0, [r4, #0x24] +_080846CA: + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_080845DC + b _08084718 +_080846D8: + movs r0, #1 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x14] + movs r0, #2 + orrs r0, r1 + cmp r0, #2 + bne _080846EA + movs r0, #0x1e + b _080846EC +_080846EA: + movs r0, #2 +_080846EC: + strb r0, [r4, #0x15] + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _08084712 + adds r1, r4, #0 + adds r1, #0x60 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + ldrb r0, [r4, #0x15] + movs r1, #1 + cmp r0, #0x17 + bls _08084708 + subs r1, #2 +_08084708: + adds r0, r0, r1 + strb r0, [r4, #0x15] + movs r0, #0xa0 + lsls r0, r0, #2 + b _08084716 +_08084712: + movs r0, #0xc0 + lsls r0, r0, #2 +_08084716: + strh r0, [r4, #0x24] +_08084718: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808471C +sub_0808471C: @ 0x0808471C + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_08004274 + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08084768 + movs r4, #0 +_08084734: + adds r0, r5, #0 + movs r1, #0x24 + movs r2, #0 + bl sub_080A29AC + adds r2, r0, #0 + cmp r2, #0 + beq _0808475E + lsls r1, r4, #1 + ldr r0, _0808476C @ =gUnk_0811FB08 + adds r1, r1, r0 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r3, [r2, #0x2e] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + movs r0, #1 + ldrsb r0, [r1, r0] + ldrh r1, [r2, #0x32] + adds r0, r0, r1 + strh r0, [r2, #0x32] +_0808475E: + adds r4, #1 + cmp r4, #3 + bls _08084734 + bl sub_0805E780 +_08084768: + pop {r4, r5, pc} + .align 2, 0 +_0808476C: .4byte gUnk_0811FB08 + + thumb_func_start sub_08084770 +sub_08084770: @ 0x08084770 + push {lr} + ldr r1, [r0, #0x34] + ldr r2, _08084780 @ =0xFFFFC000 + adds r1, r1, r2 + str r1, [r0, #0x34] + bl sub_080845DC + pop {pc} + .align 2, 0 +_08084780: .4byte 0xFFFFC000 + + thumb_func_start sub_08084784 +sub_08084784: @ 0x08084784 + push {lr} + ldr r1, [r0, #0x34] + movs r2, #0x80 + lsls r2, r2, #7 + adds r1, r1, r2 + str r1, [r0, #0x34] + bl sub_080845DC + pop {pc} + .align 2, 0 + + thumb_func_start sub_08084798 +sub_08084798: @ 0x08084798 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080847B6 + ldr r0, [r4, #0x54] + ldr r0, [r0, #4] + cmp r0, #0 + bne _080847BA +_080847B6: + bl sub_0805E780 +_080847BA: + pop {r4, pc} + + thumb_func_start sub_080847BC +sub_080847BC: @ 0x080847BC + push {lr} + ldr r1, [r0, #0x34] + ldr r2, _080847CC @ =0xFFFFE000 + adds r1, r1, r2 + str r1, [r0, #0x34] + bl sub_080845DC + pop {pc} + .align 2, 0 +_080847CC: .4byte 0xFFFFE000 + + thumb_func_start sub_080847D0 +sub_080847D0: @ 0x080847D0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_080845DC + pop {r4, pc} + + thumb_func_start sub_080847E0 +sub_080847E0: @ 0x080847E0 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _08084814 @ =gUnk_03000BF0 + ldrh r0, [r0] + cmp r0, #1 + bne _080847F0 + bl sub_0805E780 +_080847F0: + ldr r4, _08084818 @ =gUnk_03001160 + ldr r3, _0808481C @ =0xFFFD0000 + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0 + bl sub_0806FA48 + ldr r0, _08084820 @ =0x0000FFFD + strh r0, [r5, #0x36] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FAB0 + adds r0, r5, #0 + bl sub_080845DC + pop {r4, r5, pc} + .align 2, 0 +_08084814: .4byte gUnk_03000BF0 +_08084818: .4byte gUnk_03001160 +_0808481C: .4byte 0xFFFD0000 +_08084820: .4byte 0x0000FFFD + + thumb_func_start sub_08084824 +sub_08084824: @ 0x08084824 + push {lr} + ldr r2, _08084838 @ =gUnk_08120560 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08084838: .4byte gUnk_08120560 + + thumb_func_start sub_0808483C +sub_0808483C: @ 0x0808483C + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x19] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldrh r2, [r4, #0x2e] + movs r1, #0x10 + rsbs r1, r1, #0 + adds r0, r1, #0 + ands r0, r2 + movs r2, #8 + orrs r0, r2 + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x32] + ands r1, r0 + orrs r1, r2 + strh r1, [r4, #0x32] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _080848C0 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r5, r4, #0 + adds r5, #0x74 + strh r1, [r5] + adds r0, r4, #0 + movs r1, #8 + bl sub_08004260 + ldr r0, _080848C4 @ =0x00004016 + ldrh r1, [r5] + adds r4, #0x38 + ldrb r2, [r4] + bl sub_0800015E + movs r0, #0x89 + lsls r0, r0, #1 + bl sub_080A3268 + pop {r4, r5, pc} + .align 2, 0 +_080848C0: .4byte gUnk_03000BF0 +_080848C4: .4byte 0x00004016 + + thumb_func_start sub_080848C8 +sub_080848C8: @ 0x080848C8 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _08084980 @ =gUnk_03003F80 + adds r0, #0xa0 + ldrb r0, [r0] + cmp r0, #5 + bne _08084994 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x45 + movs r5, #1 + strb r5, [r0] + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x11] + subs r0, #0x12 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r4, #0x11] + ldr r0, _08084984 @ =gUnk_08120574 + str r0, [r4, #0x48] + ldrb r1, [r4, #0xa] + adds r1, #1 + lsls r0, r1, #4 + subs r0, r0, r1 + strb r0, [r4, #0xf] + ldr r2, _08084988 @ =gUnk_03001160 + ldrh r0, [r4, #0x2e] + ldrh r1, [r2, #0x2e] + subs r0, r0, r1 + adds r3, r4, #0 + adds r3, #0x78 + strh r0, [r3] + ldrh r1, [r4, #0x32] + ldrh r0, [r2, #0x32] + subs r1, r1, r0 + adds r0, r4, #0 + adds r0, #0x7a + strh r1, [r0] + ldrh r0, [r3] + cmp r0, #0 + beq _0808493C + lsls r0, r1, #0x10 + cmp r0, #0 + beq _0808493C + ldr r0, _0808498C @ =gUnk_03004040 + ldrb r1, [r4, #0xa] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + str r5, [r0, #0x70] +_0808493C: + ldr r0, _08084990 @ =0x00000315 + adds r1, r4, #0 + adds r1, #0x74 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_08000152 + ldrb r1, [r4, #0xa] + adds r1, #1 + ldr r0, _08084980 @ =gUnk_03003F80 + ldr r0, [r0, #0x2c] + adds r0, #0x68 + ldrb r3, [r0] + movs r0, #1 + movs r2, #0 + bl sub_08077CF8 + str r0, [r4, #0x54] + cmp r0, #0 + beq _0808496A + str r4, [r0, #0x50] +_0808496A: + adds r0, r4, #0 + bl sub_0801766C + adds r0, r4, #0 + bl sub_0806FDA0 + adds r0, r4, #0 + bl sub_080849D8 + b _080849D6 + .align 2, 0 +_08084980: .4byte gUnk_03003F80 +_08084984: .4byte gUnk_08120574 +_08084988: .4byte gUnk_03001160 +_0808498C: .4byte gUnk_03004040 +_08084990: .4byte 0x00000315 +_08084994: + cmp r0, #4 + beq _080849C4 + ldr r0, _080849BC @ =0x00000315 + adds r1, r4, #0 + adds r1, #0x74 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_08000152 + ldr r1, _080849C0 @ =gUnk_03004040 + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r1 + movs r1, #0 + str r1, [r0] + bl sub_0805E780 + b _080849D6 + .align 2, 0 +_080849BC: .4byte 0x00000315 +_080849C0: .4byte gUnk_03004040 +_080849C4: + ldrb r2, [r4, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] +_080849D6: + pop {r4, r5, pc} + + thumb_func_start sub_080849D8 +sub_080849D8: @ 0x080849D8 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + adds r1, r0, #0 + cmp r1, #1 + bne _080849EE + movs r0, #0x76 + bl sub_080A3268 + ldrb r0, [r4, #0xf] + b _080849F2 +_080849EE: + cmp r1, #0 + beq _080849F6 +_080849F2: + subs r0, #1 + strb r0, [r4, #0xf] +_080849F6: + ldr r2, _08084A3C @ =gUnk_03003F80 + adds r3, r2, #0 + adds r3, #0xa0 + ldrb r0, [r3] + cmp r0, #5 + beq _08084A04 + b _08084AF8 +_08084A04: + ldr r0, _08084A40 @ =gUnk_03004040 + ldrb r1, [r4, #0xa] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + cmp r0, #0 + beq _08084AF8 + adds r0, r2, #0 + adds r0, #0xa8 + ldrb r0, [r0] + cmp r0, #0x13 + beq _08084AF8 + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _08084AF8 + ldr r5, _08084A44 @ =gUnk_03001160 + adds r0, r5, #0 + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + ble _08084A48 + movs r0, #1 + strb r0, [r3] + b _08084AF8 + .align 2, 0 +_08084A3C: .4byte gUnk_03003F80 +_08084A40: .4byte gUnk_03004040 +_08084A44: .4byte gUnk_03001160 +_08084A48: + adds r0, r4, #0 + bl sub_080002B8 + adds r0, r4, #0 + bl sub_08084B1C + adds r0, r4, #0 + adds r0, #0x78 + ldrh r0, [r0] + ldrh r1, [r5, #0x2e] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x7a + ldrh r0, [r0] + ldrh r5, [r5, #0x32] + adds r0, r0, r5 + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl sub_08084CAC + adds r0, r4, #0 + bl sub_080085B0 + ldrh r2, [r4, #0x2a] + ldr r1, _08084AB8 @ =0x00006666 + adds r0, r1, #0 + ands r0, r2 + cmp r0, r1 + beq _08084AEA + movs r3, #0 + ldr r5, _08084ABC @ =gUnk_0812056C + ldrh r1, [r5] + adds r0, r1, #0 + ands r0, r2 + cmp r1, r0 + beq _08084AA6 + adds r2, r5, #0 +_08084A94: + adds r2, #2 + adds r3, #1 + cmp r3, #3 + bhi _08084AA6 + ldrh r1, [r2] + ldrh r0, [r4, #0x2a] + ands r0, r1 + cmp r1, r0 + bne _08084A94 +_08084AA6: + cmp r3, #4 + bne _08084AC0 + movs r0, #0 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #4 + ands r0, r1 + movs r1, #1 + b _08084ADE + .align 2, 0 +_08084AB8: .4byte 0x00006666 +_08084ABC: .4byte gUnk_0812056C +_08084AC0: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08084AE4 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08084AEA + ldrb r2, [r4, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 +_08084ADE: + orrs r0, r1 + strb r0, [r4, #0x18] + b _08084B16 +_08084AE4: + movs r0, #0x1e + strb r0, [r4, #0xe] + b _08084B16 +_08084AEA: + ldr r0, _08084AF4 @ =gUnk_03003F80 + adds r0, #0xa0 + movs r1, #1 + strb r1, [r0] + b _08084B16 + .align 2, 0 +_08084AF4: .4byte gUnk_03003F80 +_08084AF8: + bl sub_0807A108 + adds r0, r4, #0 + movs r1, #0x30 + movs r2, #0 + bl sub_080A29AC + ldr r0, [r4, #0x54] + bl sub_0805E7BC + ldr r0, _08084B18 @ =0x0000018F + bl sub_080A3268 + bl sub_0805E780 +_08084B16: + pop {r4, r5, pc} + .align 2, 0 +_08084B18: .4byte 0x0000018F + + thumb_func_start sub_08084B1C +sub_08084B1C: @ 0x08084B1C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r4, r0, #0 + ldr r3, _08084CA4 @ =gUnk_03001160 + ldrb r0, [r3, #0x10] + strb r0, [r4, #0x10] + adds r0, r3, #0 + adds r0, #0x60 + ldrh r1, [r0] + adds r0, r4, #0 + adds r0, #0x60 + strh r1, [r0] + ldrb r0, [r3, #0x1e] + strb r0, [r4, #0x1e] + adds r0, r3, #0 + adds r0, #0x5b + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x5b + strb r0, [r1] + ldrh r0, [r3, #0x12] + strh r0, [r4, #0x12] + ldrb r0, [r3, #0x15] + strb r0, [r4, #0x15] + ldrb r0, [r3, #0x14] + strb r0, [r4, #0x14] + ldrb r0, [r3, #0x18] + movs r1, #1 + mov r8, r1 + movs r1, #0x40 + ands r1, r0 + ldrb r2, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + mov sb, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r3, #0x19] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r4, #0x19] + movs r7, #0x3f + adds r0, r7, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r3, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + movs r0, #0x29 + adds r0, r0, r4 + mov ip, r0 + movs r6, #7 + lsrs r1, r1, #0x1d + ldrb r2, [r0] + movs r0, #8 + rsbs r0, r0, #0 + mov sl, r0 + ands r0, r2 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + ldrb r1, [r3, #0x1b] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r4, #0x1b] + adds r0, r7, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1b] + adds r0, r3, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + adds r0, r3, #0 + adds r0, #0x3b + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x3b + strb r0, [r1] + adds r0, r3, #0 + adds r0, #0x3f + ldrb r0, [r0] + adds r1, #4 + strb r0, [r1] + adds r0, r3, #0 + adds r0, #0x3c + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x3c + strb r1, [r0] + adds r0, r3, #0 + adds r0, #0x40 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x40 + strb r1, [r0] + ldr r1, [r4, #0x54] + adds r0, r4, #0 + bl sub_0806FA24 + ldr r5, _08084CA8 @ =gUnk_03003F80 + ldrb r0, [r5, #4] + cmp r0, #0 + beq _08084C6A + ldr r1, [r4, #0x54] + ldr r0, [r5, #0x2c] + adds r0, #0x44 + ldrb r0, [r0] + adds r1, #0x44 + strb r0, [r1] + ldr r1, [r4, #0x54] + ldr r0, [r5, #0x2c] + ldrb r0, [r0, #0x1e] + strb r0, [r1, #0x1e] + ldr r3, [r4, #0x54] + ldr r0, [r5, #0x2c] + ldrb r1, [r0, #0x18] + lsls r1, r1, #0x19 + lsrs r1, r1, #0x1f + mov r0, r8 + ands r1, r0 + lsls r1, r1, #6 + ldrb r2, [r3, #0x18] + mov r0, sb + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x18] + ldr r3, [r4, #0x54] + ldr r0, [r5, #0x2c] + ldrb r1, [r0, #0x19] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r3, #0x19] + adds r0, r7, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x19] + ldr r2, [r4, #0x54] + ldr r0, [r5, #0x2c] + adds r0, #0x29 + ldrb r0, [r0] + lsls r0, r0, #0x1d + lsrs r0, r0, #0x1d + adds r2, #0x29 + ands r6, r0 + ldrb r1, [r2] + mov r0, sl + ands r0, r1 + orrs r0, r6 + strb r0, [r2] + ldr r1, [r4, #0x54] + ldrb r0, [r1, #0x18] + lsls r0, r0, #0x19 + cmp r0, #0 + bge _08084C6A + ldr r1, [r1, #0x48] + ldrb r0, [r1] + rsbs r0, r0, #0 + strb r0, [r1] +_08084C6A: + adds r0, r4, #0 + movs r1, #0 + movs r2, #0 + bl sub_0806FEBC + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FEBC + adds r0, r4, #0 + movs r1, #2 + adds r2, r4, #0 + bl sub_0806FEBC + adds r0, r4, #0 + movs r1, #3 + movs r2, #0 + bl sub_0806FEBC + ldr r0, [r4, #0x54] + adds r1, r4, #0 + bl sub_08078E84 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08084CA4: .4byte gUnk_03001160 +_08084CA8: .4byte gUnk_03003F80 + + thumb_func_start sub_08084CAC +sub_08084CAC: @ 0x08084CAC + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldr r6, _08084D18 @ =gUnk_03004040 + ldrb r0, [r5, #0xa] + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r0, [r0] + ldr r0, [r0, #0x70] + cmp r0, #0 + bne _08084D32 + ldrb r0, [r5, #0x14] + movs r2, #6 + ands r2, r0 + lsls r2, r2, #1 + ldr r0, _08084D1C @ =gUnk_080B4468 + adds r2, r2, r0 + movs r1, #0x2e + ldrsh r0, [r5, r1] + movs r3, #0 + ldrsh r1, [r2, r3] + adds r0, r0, r1 + ldr r4, _08084D20 @ =gUnk_03000BF0 + ldrh r1, [r4, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r7, #0x32 + ldrsh r1, [r5, r7] + movs r7, #2 + ldrsh r2, [r2, r7] + adds r1, r1, r2 + ldrh r2, [r4, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + adds r1, r5, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002B0 + bl sub_080002E4 + cmp r0, #0x72 + bne _08084D24 + ldr r2, [r6] + movs r1, #1 + ldrb r5, [r5, #0xa] + lsls r1, r5 + ldr r0, [r2, #0x6c] + orrs r0, r1 + b _08084D30 + .align 2, 0 +_08084D18: .4byte gUnk_03004040 +_08084D1C: .4byte gUnk_080B4468 +_08084D20: .4byte gUnk_03000BF0 +_08084D24: + ldr r2, [r6] + movs r1, #1 + ldrb r5, [r5, #0xa] + lsls r1, r5 + ldr r0, [r2, #0x6c] + bics r0, r1 +_08084D30: + str r0, [r2, #0x6c] +_08084D32: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08084D34 +sub_08084D34: @ 0x08084D34 + push {r4, lr} + adds r4, r0, #0 + bl sub_0805E3B0 + cmp r0, #0 + bne _08084D50 + ldr r0, _08084D54 @ =gUnk_0812057C + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_08084D50: + pop {r4, pc} + .align 2, 0 +_08084D54: .4byte gUnk_0812057C + + thumb_func_start sub_08084D58 +sub_08084D58: @ 0x08084D58 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r0, #0 + ldrb r0, [r7, #0xa] + cmp r0, #3 + bne _08084D6C + adds r0, r7, #0 + bl sub_08084F8C +_08084D6C: + adds r0, r7, #0 + bl sub_08004168 + ldrb r0, [r7, #0xa] + cmp r0, #4 + bne _08084D7E + adds r0, r7, #0 + bl sub_08084F8C +_08084D7E: + movs r0, #2 + strb r0, [r7, #0xc] + ldrb r0, [r7, #0x10] + movs r2, #0x80 + orrs r0, r2 + strb r0, [r7, #0x10] + ldrb r1, [r7, #0x19] + movs r5, #0x3f + adds r0, r5, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r7, #0x19] + ldr r0, _08084E48 @ =gUnk_08120588 + mov r8, r0 + ldrb r0, [r7, #0xa] + lsls r0, r0, #2 + add r0, r8 + ldrb r0, [r0, #1] + strb r0, [r7, #0x1d] + ldrb r0, [r7, #0xa] + lsls r0, r0, #2 + add r0, r8 + ldrb r0, [r0, #2] + strb r0, [r7, #0x1c] + movs r2, #0 + movs r0, #0x80 + strh r0, [r7, #0x24] + ldr r0, _08084E4C @ =gUnk_03001160 + adds r0, #0x38 + ldrb r0, [r0] + adds r6, r7, #0 + adds r6, #0x38 + strb r0, [r6] + adds r1, r7, #0 + adds r1, #0x45 + movs r0, #1 + strb r0, [r1] + subs r1, #9 + movs r0, #7 + strb r0, [r1] + adds r1, #3 + movs r0, #0x6e + strb r0, [r1] + subs r1, #4 + movs r0, #4 + strb r0, [r1] + ldr r0, _08084E50 @ =gUnk_081205B4 + str r0, [r7, #0x48] + adds r0, r7, #0 + adds r0, #0x72 + strb r2, [r0] + movs r1, #0x2e + ldrsh r0, [r7, r1] + ldr r4, _08084E54 @ =gUnk_03000BF0 + ldrh r1, [r4, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r5 + movs r2, #0x32 + ldrsh r1, [r7, r2] + ldrh r2, [r4, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r5 + lsls r1, r1, #6 + orrs r0, r1 + ldrb r1, [r6] + bl sub_080001DA + adds r1, r7, #0 + adds r1, #0x70 + strh r0, [r1] + ldr r0, _08084E58 @ =0x00004022 + movs r3, #0x2e + ldrsh r1, [r7, r3] + ldrh r2, [r4, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r5 + movs r3, #0x32 + ldrsh r2, [r7, r3] + ldrh r3, [r4, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r5 + lsls r2, r2, #6 + orrs r1, r2 + ldrb r2, [r6] + bl sub_0800015E + ldrb r0, [r7, #0xa] + lsls r0, r0, #2 + add r0, r8 + ldrb r1, [r0] + adds r0, r7, #0 + bl sub_08004260 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08084E48: .4byte gUnk_08120588 +_08084E4C: .4byte gUnk_03001160 +_08084E50: .4byte gUnk_081205B4 +_08084E54: .4byte gUnk_03000BF0 +_08084E58: .4byte 0x00004022 + + thumb_func_start sub_08084E5C +sub_08084E5C: @ 0x08084E5C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _08084EAC @ =gUnk_03003F80 + ldrb r1, [r0, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #1 + bne _08084E7A + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x13 + beq _08084EA8 +_08084E7A: + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _08084EB0 @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r5, #0x32 + ldrsh r1, [r4, r5] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_0807BA8C + bl sub_0805E780 +_08084EA8: + pop {r4, r5, pc} + .align 2, 0 +_08084EAC: .4byte gUnk_03003F80 +_08084EB0: .4byte gUnk_03000BF0 + + thumb_func_start sub_08084EB4 +sub_08084EB4: @ 0x08084EB4 + push {lr} + ldr r2, _08084EC8 @ =gUnk_0812059C + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08084EC8: .4byte gUnk_0812059C + + thumb_func_start sub_08084ECC +sub_08084ECC: @ 0x08084ECC + push {lr} + movs r1, #1 + strb r1, [r0, #0xd] + bl sub_08084ED8 + pop {pc} + + thumb_func_start sub_08084ED8 +sub_08084ED8: @ 0x08084ED8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08084E5C + adds r0, r4, #0 + bl sub_0806F4E8 + ldrb r0, [r4, #0x1d] + cmp r0, #0 + beq _08084EFA + subs r0, #1 + strb r0, [r4, #0x1d] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08084EFA + movs r0, #2 + strb r0, [r4, #0xd] +_08084EFA: + pop {r4, pc} + + thumb_func_start sub_08084EFC +sub_08084EFC: @ 0x08084EFC + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r2, r5, #0 + adds r2, #0x72 + ldrb r1, [r2] + cmp r1, #0 + bne _08084F42 + movs r0, #1 + strb r0, [r2] + adds r0, r5, #0 + adds r0, #0x62 + strb r1, [r0] + adds r0, #0xe + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08084F7C @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0807B9B8 +_08084F42: + ldr r0, _08084F80 @ =gUnk_03003F80 + ldrb r1, [r0, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #1 + bne _08084F5C + adds r0, r5, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x13 + beq _08084F62 +_08084F5C: + adds r0, r5, #0 + bl sub_08084F8C +_08084F62: + adds r0, r5, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _08084F7A + ldrb r1, [r5, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #1 + bne _08084F7A + bl sub_0805E780 +_08084F7A: + pop {r4, r5, r6, pc} + .align 2, 0 +_08084F7C: .4byte gUnk_03000BF0 +_08084F80: .4byte gUnk_03003F80 + + thumb_func_start sub_08084F84 +sub_08084F84: @ 0x08084F84 + bx lr + .align 2, 0 + + thumb_func_start sub_08084F88 +sub_08084F88: @ 0x08084F88 + bx lr + .align 2, 0 + + thumb_func_start sub_08084F8C +sub_08084F8C: @ 0x08084F8C + push {lr} + ldrb r1, [r0, #0xb] + cmp r1, #0xf + beq _08084FA4 + cmp r1, #0xf + bgt _08084F9E + cmp r1, #0 + beq _08084FB8 + b _08084FAE +_08084F9E: + cmp r1, #0xff + bne _08084FAE + b _08084FB8 +_08084FA4: + ldrb r1, [r0, #0xe] + movs r2, #0x80 + bl sub_080A29AC + b _08084FB8 +_08084FAE: + ldrb r1, [r0, #0xb] + ldrb r2, [r0, #0xe] + movs r3, #0 + bl sub_080A2988 +_08084FB8: + bl sub_0805E780 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08084FC0 +sub_08084FC0: @ 0x08084FC0 + push {lr} + ldr r2, _08084FD4 @ =gUnk_081205BC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08084FD4: .4byte gUnk_081205BC + + thumb_func_start sub_08084FD8 +sub_08084FD8: @ 0x08084FD8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0808500C + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _08084FF4 + bl sub_0805E780 +_08084FF4: + movs r0, #1 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_080850FC + b _0808501C +_0808500C: + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0xf0 + strb r0, [r4, #0xe] + movs r0, #0x80 + strh r0, [r4, #0x24] + movs r0, #0x18 + strb r0, [r4, #0x15] +_0808501C: + movs r0, #0 + strb r0, [r4, #0x1e] + pop {r4, pc} + .align 2, 0 + + thumb_func_start nullsub_115 +nullsub_115: @ 0x08085024 + bx lr + .align 2, 0 + + thumb_func_start sub_08085028 +sub_08085028: @ 0x08085028 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080850A6 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #4 + strb r0, [r1] + ldr r0, _080850A8 @ =gUnk_03000F50 + mov ip, r0 + ldrh r1, [r0] + movs r2, #0x80 + lsls r2, r2, #6 + adds r0, r2, #0 + orrs r0, r1 + mov r1, ip + strh r0, [r1] + adds r1, #0x60 + movs r0, #0x1f + strh r0, [r1] + adds r1, #2 + movs r0, #0xf + strh r0, [r1] + movs r2, #0x2e + ldrsh r0, [r4, r2] + ldr r3, _080850AC @ =gUnk_03000BF0 + movs r2, #0xa + ldrsh r1, [r3, r2] + subs r0, r0, r1 + adds r1, r0, #0 + subs r1, #0x18 + movs r2, #0xff + ands r1, r2 + lsls r1, r1, #8 + adds r0, #0x18 + ands r0, r2 + orrs r1, r0 + mov r0, ip + adds r0, #0x58 + strh r1, [r0] + movs r1, #0x32 + ldrsh r0, [r4, r1] + movs r4, #0xc + ldrsh r1, [r3, r4] + subs r0, r0, r1 + adds r1, r0, #0 + subs r1, #0x18 + ands r1, r2 + lsls r1, r1, #8 + adds r0, #0x18 + ands r0, r2 + orrs r1, r0 + mov r0, ip + adds r0, #0x5c + strh r1, [r0] +_080850A6: + pop {r4, pc} + .align 2, 0 +_080850A8: .4byte gUnk_03000F50 +_080850AC: .4byte gUnk_03000BF0 + + thumb_func_start sub_080850B0 +sub_080850B0: @ 0x080850B0 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080850C8 + movs r0, #4 + strb r0, [r1, #0xc] + movs r0, #0x60 + strb r0, [r1, #0xe] +_080850C8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080850CC +sub_080850CC: @ 0x080850CC + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080850F0 + ldr r2, _080850F4 @ =gUnk_03000F50 + ldrh r1, [r2] + ldr r0, _080850F8 @ =0x0000DFFF + ands r0, r1 + strh r0, [r2] + adds r0, r4, #0 + bl sub_0805E7BC +_080850F0: + pop {r4, pc} + .align 2, 0 +_080850F4: .4byte gUnk_03000F50 +_080850F8: .4byte 0x0000DFFF + + thumb_func_start sub_080850FC +sub_080850FC: @ 0x080850FC + push {r4, r5, r6, lr} + movs r1, #0x2e + ldrsh r4, [r0, r1] + ldr r2, _0808518C @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + subs r4, r4, r1 + asrs r4, r4, #4 + movs r3, #0x3f + ands r4, r3 + movs r5, #0x32 + ldrsh r1, [r0, r5] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r4, r1 + adds r0, #0x38 + ldrb r6, [r0] + ldr r5, _08085190 @ =0x0000403D + adds r1, r4, #0 + subs r1, #0x41 + adds r0, r5, #0 + adds r2, r6, #0 + bl sub_0800015E + adds r1, r4, #0 + subs r1, #0x40 + adds r0, r5, #0 + adds r2, r6, #0 + bl sub_0800015E + adds r1, r4, #0 + subs r1, #0x3f + adds r0, r5, #0 + adds r2, r6, #0 + bl sub_0800015E + subs r1, r4, #1 + adds r0, r5, #0 + adds r2, r6, #0 + bl sub_0800015E + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r6, #0 + bl sub_0800015E + adds r1, r4, #1 + adds r0, r5, #0 + adds r2, r6, #0 + bl sub_0800015E + adds r1, r4, #0 + adds r1, #0x3f + adds r0, r5, #0 + adds r2, r6, #0 + bl sub_0800015E + adds r1, r4, #0 + adds r1, #0x40 + adds r0, r5, #0 + adds r2, r6, #0 + bl sub_0800015E + adds r4, #0x41 + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r6, #0 + bl sub_0800015E + pop {r4, r5, r6, pc} + .align 2, 0 +_0808518C: .4byte gUnk_03000BF0 +_08085190: .4byte 0x0000403D + + thumb_func_start sub_08085194 +sub_08085194: @ 0x08085194 + push {lr} + ldr r2, _080851A8 @ =gUnk_081205D0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080851A8: .4byte gUnk_081205D0 + + thumb_func_start sub_080851AC +sub_080851AC: @ 0x080851AC + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r2, #1 + movs r3, #1 + strb r3, [r5, #0xc] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r5, #0xb] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _080851E8 + adds r1, r5, #0 + adds r1, #0x7c + ldr r0, _080851E4 @ =0x0000FFFF + strh r0, [r1] + b _080851EE + .align 2, 0 +_080851E4: .4byte 0x0000FFFF +_080851E8: + adds r0, r5, #0 + adds r0, #0x7c + strh r3, [r0] +_080851EE: + ldrb r1, [r5, #0xb] + movs r0, #2 + ands r0, r1 + strb r0, [r5, #0x14] + ldrb r4, [r5, #0xa] + cmp r4, #3 + bne _0808521E + adds r0, r5, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + adds r1, r5, #0 + adds r1, #0x7a + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0808521E + ldrb r0, [r5, #0x14] + adds r0, #2 + movs r1, #3 + ands r0, r1 + strb r0, [r5, #0x14] + strb r4, [r5, #0xc] +_0808521E: + ldrb r1, [r5, #0x14] + adds r0, r5, #0 + bl sub_08004260 + adds r0, r5, #0 + adds r0, #0x38 + ldrb r0, [r0] + bl sub_0808094C + movs r1, #0x2e + ldrsh r2, [r5, r1] + ldr r3, _08085260 @ =gUnk_03000BF0 + ldrh r1, [r3, #6] + subs r2, r2, r1 + asrs r2, r2, #4 + movs r4, #0x3f + ands r2, r4 + movs r6, #0x32 + ldrsh r1, [r5, r6] + ldrh r3, [r3, #8] + subs r1, r1, r3 + asrs r1, r1, #4 + ands r1, r4 + lsls r1, r1, #6 + orrs r2, r1 + lsls r2, r2, #1 + adds r2, #4 + adds r0, r0, r2 + str r0, [r5, #0x70] + adds r0, r5, #0 + bl sub_08085394 + pop {r4, r5, r6, pc} + .align 2, 0 +_08085260: .4byte gUnk_03000BF0 + + thumb_func_start sub_08085264 +sub_08085264: @ 0x08085264 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x86 + ldrh r0, [r5] + bl sub_0807CBE4 + cmp r0, #0 + beq _080852AE + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #8 + strb r0, [r4, #0xf] + ldrb r0, [r4, #0xa] + cmp r0, #1 + bne _0808528A + ldrh r0, [r5] + bl sub_0807CD48 +_0808528A: + adds r0, r4, #0 + adds r0, #0x7c + ldrb r0, [r0] + ldrb r1, [r4, #0x14] + adds r0, r0, r1 + movs r1, #3 + ands r0, r1 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0808543C + ldr r0, _080852B0 @ =0x00000151 + bl sub_08004488 +_080852AE: + pop {r4, r5, pc} + .align 2, 0 +_080852B0: .4byte 0x00000151 + + thumb_func_start sub_080852B4 +sub_080852B4: @ 0x080852B4 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08085300 + movs r4, #3 + movs r0, #3 + strb r0, [r5, #0xc] + ldrb r0, [r5, #0xe] + strb r0, [r5, #0xf] + adds r0, r5, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + adds r1, r5, #0 + adds r1, #0x7a + strh r0, [r1] + adds r0, r5, #0 + adds r0, #0x7c + ldrb r0, [r0] + ldrb r1, [r5, #0x14] + adds r0, r0, r1 + ands r0, r4 + strb r0, [r5, #0x14] + ldrb r1, [r5, #0x14] + adds r0, r5, #0 + bl sub_08004260 + adds r0, r5, #0 + bl sub_08085394 + ldr r0, _08085304 @ =0x00000151 + bl sub_08004488 +_08085300: + pop {r4, r5, pc} + .align 2, 0 +_08085304: .4byte 0x00000151 + + thumb_func_start sub_08085308 +sub_08085308: @ 0x08085308 + push {r4, lr} + adds r4, r0, #0 + bl sub_080854A8 + cmp r0, #0 + bne _0808538C + ldrb r0, [r4, #0xa] + cmp r0, #2 + beq _08085324 + cmp r0, #2 + ble _08085354 + cmp r0, #3 + beq _08085338 + b _08085354 +_08085324: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + bne _08085354 + movs r0, #1 + strb r0, [r4, #0xc] + b _0808538C +_08085338: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + adds r1, r4, #0 + adds r1, #0x7a + ldrh r1, [r1] + cmp r0, r1 + bne _08085350 + movs r0, #0xff + b _08085352 +_08085350: + movs r0, #1 +_08085352: + strb r0, [r4, #0xf] +_08085354: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808538C + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #8 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x7c + ldrb r0, [r0] + ldrb r1, [r4, #0x14] + adds r0, r0, r1 + movs r1, #3 + ands r0, r1 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0808543C + ldr r0, _08085390 @ =0x00000151 + bl sub_08004488 +_0808538C: + pop {r4, pc} + .align 2, 0 +_08085390: .4byte 0x00000151 + + thumb_func_start sub_08085394 +sub_08085394: @ 0x08085394 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r7, r0, #0 + ldr r0, _08085430 @ =gUnk_081205E0 + ldrb r2, [r7, #0x14] + lsrs r2, r2, #1 + lsls r2, r2, #1 + adds r0, r2, r0 + ldrh r0, [r0] + mov sl, r0 + ldr r0, _08085434 @ =gUnk_080B4488 + adds r2, r2, r0 + ldr r0, [r7, #0x70] + mov sb, r0 + movs r1, #0x2e + ldrsh r4, [r7, r1] + ldr r1, _08085438 @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + subs r4, r4, r0 + asrs r4, r4, #4 + movs r3, #0x3f + ands r4, r3 + movs r5, #0x32 + ldrsh r0, [r7, r5] + ldrh r1, [r1, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r4, r0 + ldrb r2, [r2] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + mov r8, r2 + lsls r5, r2, #1 + mov r1, sb + subs r0, r1, r5 + ldrh r1, [r0] + adds r0, r7, #0 + adds r0, #0x74 + strh r1, [r0] + subs r1, r4, r2 + adds r6, r7, #0 + adds r6, #0x38 + ldrb r2, [r6] + mov r0, sl + bl sub_0800015E + mov r1, sb + ldrh r0, [r1] + adds r1, r7, #0 + adds r1, #0x76 + strh r0, [r1] + ldrb r2, [r6] + mov r0, sl + adds r1, r4, #0 + bl sub_0800015E + add r5, sb + ldrh r1, [r5] + adds r0, r7, #0 + adds r0, #0x78 + strh r1, [r0] + add r4, r8 + ldrb r2, [r6] + mov r0, sl + adds r1, r4, #0 + bl sub_0800015E + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08085430: .4byte gUnk_081205E0 +_08085434: .4byte gUnk_080B4488 +_08085438: .4byte gUnk_03000BF0 + + thumb_func_start sub_0808543C +sub_0808543C: @ 0x0808543C + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + ldr r0, _080854A0 @ =gUnk_080B4488 + ldrb r2, [r7, #0x14] + lsrs r2, r2, #1 + lsls r2, r2, #1 + adds r2, r2, r0 + movs r0, #0x2e + ldrsh r4, [r7, r0] + ldr r1, _080854A4 @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + subs r4, r4, r0 + asrs r4, r4, #4 + movs r3, #0x3f + ands r4, r3 + movs r5, #0x32 + ldrsh r0, [r7, r5] + ldrh r1, [r1, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r4, r0 + adds r0, r7, #0 + adds r0, #0x74 + ldrh r0, [r0] + movs r6, #0 + ldrsb r6, [r2, r6] + subs r1, r4, r6 + adds r5, r7, #0 + adds r5, #0x38 + ldrb r2, [r5] + bl sub_0800015E + adds r0, r7, #0 + adds r0, #0x76 + ldrh r0, [r0] + ldrb r2, [r5] + adds r1, r4, #0 + bl sub_0800015E + adds r0, r7, #0 + adds r0, #0x78 + ldrh r0, [r0] + adds r4, r4, r6 + ldrb r2, [r5] + adds r1, r4, #0 + bl sub_0800015E + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080854A0: .4byte gUnk_080B4488 +_080854A4: .4byte gUnk_03000BF0 + + thumb_func_start sub_080854A8 +sub_080854A8: @ 0x080854A8 + push {r4, lr} + ldr r2, _080854E0 @ =gUnk_081205E0 + ldrb r1, [r0, #0x14] + lsrs r1, r1, #1 + lsls r1, r1, #1 + adds r2, r1, r2 + ldrh r3, [r2] + adds r4, r3, #0 + ldr r2, _080854E4 @ =gUnk_080B4488 + adds r1, r1, r2 + ldr r2, [r0, #0x70] + movs r0, #0 + ldrsb r0, [r1, r0] + lsls r1, r0, #1 + subs r0, r2, r1 + ldrh r0, [r0] + cmp r3, r0 + bne _080854E8 + ldrh r0, [r2] + cmp r3, r0 + bne _080854E8 + adds r0, r1, r2 + ldrh r0, [r0] + cmp r4, r0 + bne _080854E8 + movs r0, #0 + b _080854EA + .align 2, 0 +_080854E0: .4byte gUnk_081205E0 +_080854E4: .4byte gUnk_080B4488 +_080854E8: + movs r0, #1 +_080854EA: + pop {r4, pc} + + thumb_func_start sub_080854EC +sub_080854EC: @ 0x080854EC + push {lr} + ldr r2, _08085500 @ =gUnk_08120608 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08085500: .4byte gUnk_08120608 + + thumb_func_start sub_08085504 +sub_08085504: @ 0x08085504 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0xff + bne _08085520 + movs r0, #0x46 + bl sub_0807CA84 + cmp r0, #0 + beq _0808551C + bl sub_0805E780 +_0808551C: + movs r0, #0 + strb r0, [r4, #0xa] +_08085520: + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _08085552 + ldr r0, _08085540 @ =gUnk_02033A90 + ldrb r0, [r0, #1] + cmp r0, #0x1b + beq _08085544 + ldrb r0, [r4, #0xb] + bl sub_0807CBD0 + cmp r0, #0 + bne _08085552 + movs r0, #5 + strb r0, [r4, #0xc] + b _080855E2 + .align 2, 0 +_08085540: .4byte gUnk_02033A90 +_08085544: + ldrb r0, [r4, #0xb] + bl sub_0807CBD0 + cmp r0, #0 + bne _08085552 + bl sub_0805E780 +_08085552: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0808556C + adds r0, r4, #0 + bl sub_080040A2 + cmp r0, #0 + bne _08085566 + bl sub_0805E780 +_08085566: + movs r0, #0 + strb r0, [r4, #0xe] + b _0808557A +_0808556C: + adds r0, r4, #0 + bl sub_0805EABC + cmp r0, #0 + beq _0808557A + bl sub_0805E780 +_0808557A: + movs r2, #1 + strb r2, [r4, #0xc] + movs r3, #0 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + movs r0, #0x29 + adds r0, r0, r4 + mov ip, r0 + ldrb r1, [r0] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + ldr r0, _080855E4 @ =gUnk_08120640 + str r0, [r4, #0x48] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x3f + strb r2, [r0] + subs r1, #1 + movs r0, #4 + strb r0, [r1] + movs r0, #0x80 + lsls r0, r0, #0x11 + str r0, [r4, #0x78] + adds r1, #0x43 + movs r0, #0x80 + lsls r0, r0, #5 + strh r0, [r1] + adds r0, r4, #0 + adds r0, #0x85 + strb r3, [r0] + subs r0, #1 + strb r3, [r0] + adds r0, r4, #0 + movs r1, #9 + bl sub_08004260 + adds r0, r4, #0 + bl sub_080855E8 +_080855E2: + pop {r4, pc} + .align 2, 0 +_080855E4: .4byte gUnk_08120640 + + thumb_func_start sub_080855E8 +sub_080855E8: @ 0x080855E8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r0, #0 + ldrb r1, [r7, #0x10] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r7, #0x10] + ldr r6, _0808564C @ =gUnk_03001160 + adds r0, r7, #0 + adds r1, r6, #0 + movs r2, #0x18 + bl sub_0806FC80 + adds r1, r0, #0 + cmp r1, #0 + beq _080856EE + ldr r3, _08085650 @ =gUnk_03003F80 + ldr r0, [r3, #0x30] + movs r1, #2 + orrs r0, r1 + str r0, [r3, #0x30] + ldr r4, [r6, #0x34] + cmp r4, #0 + beq _0808561C + b _080857CE +_0808561C: + adds r5, r3, #0 + adds r5, #0x26 + ldrb r0, [r5] + cmp r0, #0 + beq _08085634 + adds r2, r6, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 + strb r0, [r2] + strb r4, [r5] +_08085634: + adds r0, r3, #0 + adds r0, #0x84 + str r7, [r0] + adds r0, r7, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #1 + bne _08085654 + adds r0, r6, #0 + bl sub_0800455E + b _0808565A + .align 2, 0 +_0808564C: .4byte gUnk_03001160 +_08085650: .4byte gUnk_03003F80 +_08085654: + adds r0, r6, #0 + bl sub_08004542 +_0808565A: + ldrb r0, [r7, #0xf] + cmp r0, #0 + bne _0808568C + movs r0, #4 + strb r0, [r7, #0xf] +_08085664: + adds r0, r7, #0 + movs r1, #8 + movs r2, #0xa + bl sub_080A2AF4 + ldrb r0, [r7, #0xf] + subs r0, #1 + strb r0, [r7, #0xf] + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + bne _08085664 + movs r0, #1 + strb r0, [r7, #0xf] + ldrb r1, [r7, #0xe] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r7, #0xe] + str r2, [r7, #0x70] + str r2, [r7, #0x6c] +_0808568C: + ldr r2, _080856B8 @ =gUnk_03003F80 + ldrb r0, [r2, #0x1c] + cmp r0, #3 + beq _08085696 + b _080857CE +_08085696: + ldr r1, _080856BC @ =gUnk_08120620 + ldrb r0, [r2, #0x1d] + subs r0, #1 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r4, [r0] + ldr r0, _080856C0 @ =gUnk_03001160 + ldrb r0, [r0, #0x14] + movs r1, #6 + ands r1, r0 + cmp r1, #2 + beq _080856DE + cmp r1, #2 + bgt _080856C4 + cmp r1, #0 + beq _080856D6 + b _080857CE + .align 2, 0 +_080856B8: .4byte gUnk_03003F80 +_080856BC: .4byte gUnk_08120620 +_080856C0: .4byte gUnk_03001160 +_080856C4: + cmp r1, #4 + beq _080856CE + cmp r1, #6 + beq _080856E6 + b _080857CE +_080856CE: + ldr r0, [r7, #0x70] + subs r0, r0, r4 + str r0, [r7, #0x70] + b _080857CE +_080856D6: + ldr r0, [r7, #0x70] + adds r0, r0, r4 + str r0, [r7, #0x70] + b _080857CE +_080856DE: + ldr r0, [r7, #0x6c] + subs r0, r0, r4 + str r0, [r7, #0x6c] + b _080857CE +_080856E6: + ldr r0, [r7, #0x6c] + adds r0, r0, r4 + str r0, [r7, #0x6c] + b _080857CE +_080856EE: + ldrb r0, [r7, #0xf] + cmp r0, #0 + beq _080856FC + strb r1, [r7, #0xf] + movs r0, #0x83 + bl sub_080A3268 +_080856FC: + adds r2, r7, #0 + adds r2, #0x41 + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + mov r8, r2 + cmp r0, #0x13 + bne _080857C8 + movs r0, #0x2e + ldrsh r1, [r6, r0] + ldr r3, _08085758 @ =gUnk_08126EE4 + ldrb r2, [r6, #0x14] + movs r0, #0xe + ands r0, r2 + adds r0, r0, r3 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r5, r1, r0 + movs r0, #0x32 + ldrsh r1, [r6, r0] + movs r0, #1 + orrs r0, r2 + adds r0, r0, r3 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r3, r1, r0 + movs r1, #0x2e + ldrsh r0, [r7, r1] + movs r2, #0x32 + ldrsh r1, [r7, r2] + adds r2, r5, #0 + bl sub_080045D4 + strb r0, [r7, #0x15] + ldr r0, _0808575C @ =gUnk_03003F80 + ldrb r0, [r0, #0x1d] + cmp r0, #2 + beq _0808576A + cmp r0, #2 + bgt _08085760 + cmp r0, #1 + beq _08085770 + b _08085774 + .align 2, 0 +_08085758: .4byte gUnk_08126EE4 +_0808575C: .4byte gUnk_03003F80 +_08085760: + cmp r0, #3 + bne _08085774 + movs r4, #0x80 + lsls r4, r4, #3 + b _08085774 +_0808576A: + movs r4, #0xc0 + lsls r4, r4, #2 + b _08085774 +_08085770: + movs r4, #0x80 + lsls r4, r4, #2 +_08085774: + ldr r6, _080858A8 @ =gUnk_080C9160 + ldrb r0, [r7, #0x15] + lsls r0, r0, #4 + adds r0, r0, r6 + movs r1, #0 + ldrsh r0, [r0, r1] + lsls r4, r4, #0x10 + asrs r4, r4, #0x18 + adds r1, r4, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r5, #0x80 + lsls r5, r5, #1 + adds r1, r5, #0 + bl sub_0806FA04 + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r7, #0x6c] + adds r1, r1, r0 + str r1, [r7, #0x6c] + ldrb r0, [r7, #0x15] + lsls r0, r0, #4 + adds r0, #0x80 + adds r0, r0, r6 + movs r2, #0 + ldrsh r0, [r0, r2] + adds r1, r4, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r5, #0 + bl sub_0806FA04 + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r7, #0x70] + subs r1, r1, r0 + str r1, [r7, #0x70] +_080857C8: + movs r0, #0 + mov r1, r8 + strb r0, [r1] +_080857CE: + ldr r0, [r7, #0x2c] + str r0, [r7, #0x54] + ldr r0, [r7, #0x30] + str r0, [r7, #0x50] + ldr r0, [r7, #0x6c] + cmp r0, #0 + bne _080857E4 + ldr r0, [r7, #0x70] + cmp r0, #0 + bne _080857E4 + b _080859F4 +_080857E4: + ldr r0, [r7, #0x70] + ldr r1, _080858AC @ =0xFFFF0000 + cmp r0, r1 + blt _080857F4 + movs r1, #0x80 + lsls r1, r1, #9 + cmp r0, r1 + ble _080857F6 +_080857F4: + str r1, [r7, #0x70] +_080857F6: + ldr r0, [r7, #0x6c] + ldr r1, _080858AC @ =0xFFFF0000 + cmp r0, r1 + blt _08085806 + movs r1, #0x80 + lsls r1, r1, #9 + cmp r0, r1 + ble _08085808 +_08085806: + str r1, [r7, #0x6c] +_08085808: + ldr r0, _080858B0 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _0808581A + adds r0, r7, #0 + bl sub_080A2AD4 +_0808581A: + ldr r0, [r7, #0x2c] + ldr r1, [r7, #0x6c] + adds r5, r0, r1 + ldr r1, [r7, #0x30] + ldr r2, [r7, #0x70] + adds r3, r1, r2 + adds r2, r5, #0 + bl sub_080045D4 + strb r0, [r7, #0x15] + ldr r0, [r7, #0x6c] + lsls r0, r0, #8 + asrs r0, r0, #0x10 + movs r4, #0x80 + lsls r4, r4, #1 + adds r1, r4, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldr r5, _080858A8 @ =gUnk_080C9160 + ldrb r1, [r7, #0x15] + lsls r1, r1, #4 + adds r1, r1, r5 + movs r2, #0 + ldrsh r1, [r1, r2] + bl sub_0806FA04 + strh r0, [r7, #0x24] + ldr r0, [r7, #0x70] + lsls r0, r0, #8 + asrs r0, r0, #0x10 + adds r1, r4, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldrb r1, [r7, #0x15] + lsls r1, r1, #4 + adds r1, #0x80 + adds r1, r1, r5 + movs r2, #0 + ldrsh r1, [r1, r2] + bl sub_0806FA04 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + rsbs r4, r0, #0 + movs r1, #0x24 + ldrsh r0, [r7, r1] + cmp r4, r0 + ble _08085884 + strh r4, [r7, #0x24] +_08085884: + ldrb r0, [r7, #0xb] + cmp r0, #0 + beq _080858BC + adds r0, r7, #0 + adds r0, #0x7e + movs r2, #0 + ldrsh r1, [r0, r2] + ldr r0, _080858B4 @ =0x00000FFF + cmp r1, r0 + bgt _080858B8 + movs r0, #0x24 + ldrsh r1, [r7, r0] + lsls r1, r1, #0xc + ldr r0, [r7, #0x7c] + adds r0, r0, r1 + str r0, [r7, #0x7c] + b _080858E0 + .align 2, 0 +_080858A8: .4byte gUnk_080C9160 +_080858AC: .4byte 0xFFFF0000 +_080858B0: .4byte gUnk_030010A0 +_080858B4: .4byte 0x00000FFF +_080858B8: + movs r0, #0 + b _080858DE +_080858BC: + adds r0, r7, #0 + adds r0, #0x7e + movs r2, #0 + ldrsh r1, [r0, r2] + ldr r0, _080858D8 @ =0xFFFFF000 + cmp r1, r0 + ble _080858DC + movs r0, #0x24 + ldrsh r1, [r7, r0] + lsls r1, r1, #0xc + ldr r0, [r7, #0x7c] + subs r0, r0, r1 + str r0, [r7, #0x7c] + b _080858E0 + .align 2, 0 +_080858D8: .4byte 0xFFFFF000 +_080858DC: + movs r0, #1 +_080858DE: + strb r0, [r7, #0xb] +_080858E0: + adds r0, r7, #0 + bl sub_08085EFC + adds r0, r7, #0 + bl sub_080AF134 + ldr r1, [r7, #0x54] + ldr r0, [r7, #0x2c] + cmp r1, r0 + bne _0808590C + adds r0, r7, #0 + adds r0, #0x85 + ldrb r1, [r0] + adds r2, r0, #0 + cmp r1, #2 + bne _08085906 + movs r0, #0 + str r0, [r7, #0x6c] + b _08085916 +_08085906: + adds r0, r1, #1 + strb r0, [r2] + b _08085916 +_0808590C: + adds r1, r7, #0 + adds r1, #0x85 + movs r0, #0 + strb r0, [r1] + adds r2, r1, #0 +_08085916: + ldr r1, [r7, #0x50] + ldr r0, [r7, #0x30] + cmp r1, r0 + bne _0808592E + ldrb r0, [r2] + cmp r0, #2 + bne _0808592A + movs r0, #0 + str r0, [r7, #0x70] + b _08085932 +_0808592A: + adds r0, #1 + b _08085930 +_0808592E: + movs r0, #0 +_08085930: + strb r0, [r2] +_08085932: + ldr r0, _0808595C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _08085944 + adds r0, r7, #0 + bl sub_08085F1C +_08085944: + ldr r1, [r7, #0x6c] + cmp r1, #0 + beq _08085998 + cmp r1, #0 + bge _0808596E + movs r0, #0x80 + rsbs r0, r0, #0 + cmp r1, r0 + ble _08085960 + movs r0, #0 + b _08085964 + .align 2, 0 +_0808595C: .4byte gUnk_03003F80 +_08085960: + adds r0, r1, #0 + adds r0, #0x80 +_08085964: + str r0, [r7, #0x6c] + ldrh r2, [r7, #0x2a] + movs r1, #0xe0 + lsls r1, r1, #4 + b _08085982 +_0808596E: + cmp r1, #0x7f + bhi _08085976 + movs r0, #0 + b _0808597A +_08085976: + adds r0, r1, #0 + subs r0, #0x80 +_0808597A: + str r0, [r7, #0x6c] + ldrh r2, [r7, #0x2a] + movs r1, #0xe0 + lsls r1, r1, #8 +_08085982: + adds r0, r1, #0 + ands r0, r2 + cmp r0, r1 + bne _08085998 + ldr r0, [r7, #0x6c] + cmp r0, #0 + bge _08085992 + adds r0, #3 +_08085992: + asrs r0, r0, #2 + rsbs r0, r0, #0 + str r0, [r7, #0x6c] +_08085998: + ldr r1, [r7, #0x70] + cmp r1, #0 + beq _080859E6 + cmp r1, #0 + bge _080859C0 + movs r0, #0x80 + rsbs r0, r0, #0 + cmp r1, r0 + ble _080859AE + movs r0, #0 + b _080859B2 +_080859AE: + adds r0, r1, #0 + adds r0, #0x80 +_080859B2: + str r0, [r7, #0x70] + ldrh r1, [r7, #0x2a] + movs r0, #0xe + ands r0, r1 + cmp r0, #0xe + bne _080859E6 + b _080859D8 +_080859C0: + cmp r1, #0x7f + bhi _080859C8 + movs r0, #0 + b _080859CC +_080859C8: + adds r0, r1, #0 + subs r0, #0x80 +_080859CC: + str r0, [r7, #0x70] + ldrh r1, [r7, #0x2a] + movs r0, #0xe0 + ands r0, r1 + cmp r0, #0xe0 + bne _080859E6 +_080859D8: + ldr r0, [r7, #0x70] + cmp r0, #0 + bge _080859E0 + adds r0, #3 +_080859E0: + asrs r0, r0, #2 + rsbs r0, r0, #0 + str r0, [r7, #0x70] +_080859E6: + adds r0, r7, #0 + bl sub_08085D28 + adds r0, r7, #0 + bl sub_08085D60 + b _08085A0A +_080859F4: + ldr r0, _08085A18 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #0x1f + ands r0, r1 + cmp r0, #0 + bne _08085A0A + adds r0, r7, #0 + movs r1, #8 + movs r2, #0xa + bl sub_080A2AF4 +_08085A0A: + adds r0, r7, #0 + bl sub_08085F48 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08085A18: .4byte gUnk_030010A0 + + thumb_func_start sub_08085A1C +sub_08085A1C: @ 0x08085A1C + push {lr} + ldr r2, _08085A3C @ =gUnk_0812062C + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + ldr r2, _08085A40 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #2 + orrs r0, r1 + str r0, [r2, #0x30] + bl sub_08078B48 + pop {pc} + .align 2, 0 +_08085A3C: .4byte gUnk_0812062C +_08085A40: .4byte gUnk_03003F80 + + thumb_func_start sub_08085A44 +sub_08085A44: @ 0x08085A44 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + adds r0, r4, #0 + movs r1, #0x10 + movs r2, #0x18 + bl sub_080002B4 + cmp r0, #0x11 + beq _08085A62 + movs r0, #0x18 + strb r0, [r4, #0x15] + b _08085A82 +_08085A62: + movs r1, #0x10 + rsbs r1, r1, #0 + adds r0, r4, #0 + movs r2, #0x18 + bl sub_080002B4 + cmp r0, #0x11 + beq _08085A78 + movs r0, #8 + strb r0, [r4, #0x15] + b _08085A82 +_08085A78: + movs r0, #0x10 + strb r0, [r4, #0x15] + movs r0, #1 + strb r0, [r4, #0xd] + b _08085A94 +_08085A82: + adds r0, r4, #0 + bl sub_08085EFC + adds r0, r4, #0 + bl sub_080AF134 + adds r0, r4, #0 + bl sub_08085F1C +_08085A94: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08085A98 +sub_08085A98: @ 0x08085A98 + push {r4, lr} + adds r4, r0, #0 + bl sub_08085EFC + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_08085F1C + ldr r1, [r4, #0x78] + ldr r0, _08085B00 @ =0x007FFFFF + cmp r1, r0 + bls _08085ACC + ldr r2, _08085B04 @ =0xFFFE0000 + adds r0, r1, r2 + str r0, [r4, #0x78] + adds r0, r4, #0 + adds r0, #0x7a + ldrh r2, [r0] + adds r0, #4 + ldrh r3, [r0] + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_0805EC9C +_08085ACC: + adds r0, r4, #0 + movs r1, #0 + movs r2, #0x18 + bl sub_080002B4 + cmp r0, #0x11 + beq _08085B34 + movs r0, #2 + strb r0, [r4, #0xd] + ldr r0, _08085B08 @ =gUnk_02033A90 + ldrb r0, [r0, #1] + cmp r0, #0x1b + bne _08085B10 + ldrh r0, [r4, #0x32] + adds r0, #0xd0 + strh r0, [r4, #0x32] + ldr r0, _08085B0C @ =0x0000FF30 + strh r0, [r4, #0x36] + adds r1, r4, #0 + adds r1, #0x82 + movs r0, #0x46 + strh r0, [r1] + movs r0, #0x73 + bl sub_0807CCB4 + b _08085B22 + .align 2, 0 +_08085B00: .4byte 0x007FFFFF +_08085B04: .4byte 0xFFFE0000 +_08085B08: .4byte gUnk_02033A90 +_08085B0C: .4byte 0x0000FF30 +_08085B10: + ldrh r0, [r4, #0x32] + adds r0, #0x40 + strh r0, [r4, #0x32] + ldr r0, _08085B38 @ =0x0000FFC0 + strh r0, [r4, #0x36] + adds r1, r4, #0 + adds r1, #0x82 + movs r0, #0xf + strh r0, [r1] +_08085B22: + adds r0, r4, #0 + movs r1, #0x2b + movs r2, #0 + movs r3, #0 + bl sub_080A2988 + ldr r0, _08085B3C @ =0x0000012D + bl sub_080A3268 +_08085B34: + pop {r4, pc} + .align 2, 0 +_08085B38: .4byte 0x0000FFC0 +_08085B3C: .4byte 0x0000012D + + thumb_func_start sub_08085B40 +sub_08085B40: @ 0x08085B40 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, [r5, #0x34] + cmp r0, #0 + beq _08085BB4 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r5, #0 + bl sub_08003FC4 + cmp r0, #0 + beq _08085BE8 + ldr r1, [r5, #0x78] + ldr r0, _08085B9C @ =0x011FFFFF + cmp r1, r0 + bhi _08085B7A + movs r2, #0x80 + lsls r2, r2, #0xd + adds r0, r1, r2 + str r0, [r5, #0x78] + adds r0, r5, #0 + adds r0, #0x7a + ldrh r2, [r0] + adds r0, #4 + ldrh r3, [r0] + adds r0, r5, #0 + adds r1, r2, #0 + bl sub_0805EC9C +_08085B7A: + ldr r4, _08085BA0 @ =gUnk_03001160 + ldrh r3, [r5, #0x32] + ldrh r0, [r5, #0x36] + adds r0, r3, r0 + adds r1, r5, #0 + adds r1, #0x74 + ldrh r1, [r1] + subs r2, r0, r1 + strh r2, [r4, #0x32] + ldr r0, _08085BA4 @ =gUnk_02033A90 + ldrb r0, [r0, #1] + cmp r0, #0x1b + bne _08085BA8 + subs r0, r3, r1 + adds r1, r2, #0 + adds r1, #0xd0 + b _08085BAE + .align 2, 0 +_08085B9C: .4byte 0x011FFFFF +_08085BA0: .4byte gUnk_03001160 +_08085BA4: .4byte gUnk_02033A90 +_08085BA8: + subs r0, r3, r1 + adds r1, r2, #0 + adds r1, #0x40 +_08085BAE: + subs r0, r0, r1 + strh r0, [r4, #0x36] + b _08085BE8 +_08085BB4: + adds r0, r5, #0 + bl sub_0800455E + adds r0, r5, #0 + bl sub_080002B8 + cmp r0, #0xd + bne _08085BE8 + ldr r4, _08085C50 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_0800455E + adds r0, r5, #0 + bl sub_08085CDC + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080045C4 + strb r0, [r5, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + ldrb r2, [r5, #0x15] + adds r0, r4, #0 + bl sub_0806F5BC +_08085BE8: + adds r1, r5, #0 + adds r1, #0x82 + ldrh r0, [r1] + cmp r0, #0 + bne _08085C54 + ldr r4, _08085C50 @ =gUnk_03001160 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08085C58 + adds r0, r4, #0 + bl sub_0800455E + adds r0, r5, #0 + bl sub_08085F1C + movs r0, #1 + strb r0, [r5, #0xc] + movs r0, #4 + strb r0, [r5, #0xf] +_08085C16: + adds r0, r5, #0 + movs r1, #8 + movs r2, #0xa + bl sub_080A2AF4 + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + bne _08085C16 + movs r0, #1 + strb r0, [r5, #0xf] + ldrb r1, [r5, #0xe] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r5, #0xe] + str r2, [r5, #0x70] + str r2, [r5, #0x6c] + adds r0, r5, #0 + bl sub_080002B8 + cmp r0, #0xd + bne _08085C58 + movs r0, #4 + strb r0, [r5, #0xc] + b _08085C58 + .align 2, 0 +_08085C50: .4byte gUnk_03001160 +_08085C54: + subs r0, #1 + strh r0, [r1] +_08085C58: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08085C5C +sub_08085C5C: @ 0x08085C5C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08085CA0 @ =gUnk_03001160 + adds r1, r5, #0 + movs r2, #0x18 + bl sub_0806FC80 + cmp r0, #0 + beq _08085CAE + adds r0, r4, #0 + bl sub_0806F69C + ldrh r0, [r4, #0x24] + strh r0, [r5, #0x24] + ldrb r0, [r4, #0x15] + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_0806F69C + ldr r2, _08085CA4 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #2 + orrs r0, r1 + str r0, [r2, #0x30] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #1 + bne _08085CA8 + adds r0, r5, #0 + bl sub_0800455E + b _08085CAE + .align 2, 0 +_08085CA0: .4byte gUnk_03001160 +_08085CA4: .4byte gUnk_03003F80 +_08085CA8: + adds r0, r5, #0 + bl sub_08004542 +_08085CAE: + ldr r3, _08085CD4 @ =gUnk_03000BF0 + ldrh r0, [r3] + cmp r0, #0 + bne _08085CD2 + ldrb r1, [r4, #0x10] + movs r0, #0xdf + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x11] + lsrs r2, r1, #4 + subs r0, #0x11 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x11] + ldr r0, _08085CD8 @ =gUnk_03001160 + str r0, [r3, #0x30] +_08085CD2: + pop {r4, r5, pc} + .align 2, 0 +_08085CD4: .4byte gUnk_03000BF0 +_08085CD8: .4byte gUnk_03001160 + + thumb_func_start sub_08085CDC +sub_08085CDC: @ 0x08085CDC + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x78] + movs r1, #0x80 + lsls r1, r1, #0xd + adds r0, r0, r1 + str r0, [r4, #0x78] + ldr r1, _08085D04 @ =0x03FFFFFF + cmp r0, r1 + bhi _08085D08 + adds r0, r4, #0 + adds r0, #0x7a + ldrh r2, [r0] + adds r0, #4 + ldrh r3, [r0] + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_0805EC9C + b _08085D0C + .align 2, 0 +_08085D04: .4byte 0x03FFFFFF +_08085D08: + bl sub_0805E780 +_08085D0C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08085D10 +sub_08085D10: @ 0x08085D10 + push {r4, lr} + adds r4, r0, #0 + bl sub_0805EABC + cmp r0, #0 + beq _08085D26 + ldrb r0, [r4, #0xb] + bl sub_0807CCB4 + bl sub_0805E780 +_08085D26: + pop {r4, pc} + + thumb_func_start sub_08085D28 +sub_08085D28: @ 0x08085D28 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r1, _08085D5C @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0xa8 + ldrb r0, [r0] + cmp r0, #0x13 + beq _08085D5A + ldr r0, [r1, #0x30] + movs r5, #2 + ands r0, r5 + cmp r0, #0 + beq _08085D5A + adds r0, r4, #0 + movs r1, #0 + movs r2, #0x18 + bl sub_080002B4 + cmp r0, #0x11 + bne _08085D5A + movs r0, #0 + strb r5, [r4, #0xc] + strb r0, [r4, #0xd] + bl sub_08078B48 +_08085D5A: + pop {r4, r5, pc} + .align 2, 0 +_08085D5C: .4byte gUnk_03003F80 + + thumb_func_start sub_08085D60 +sub_08085D60: @ 0x08085D60 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + ldr r2, _08085D94 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _08085E64 + adds r0, r2, #0 + adds r0, #0xa8 + ldrb r0, [r0] + cmp r0, #0x12 + beq _08085E64 + ldrb r0, [r2, #2] + cmp r0, #0 + bne _08085E64 + ldrb r1, [r5, #0x15] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + bne _08085D98 + ldrb r6, [r5, #0x15] + adds r4, r6, #0 + b _08085DB0 + .align 2, 0 +_08085D94: .4byte gUnk_03003F80 +_08085D98: + movs r0, #0x10 + ands r0, r1 + movs r4, #8 + cmp r0, #0 + beq _08085DA4 + movs r4, #0x18 +_08085DA4: + ldrb r0, [r5, #0x15] + subs r0, #8 + movs r6, #0x10 + cmp r0, #0x10 + ble _08085DB0 + movs r6, #0 +_08085DB0: + cmp r4, #0x18 + beq _08085DB8 + cmp r4, #8 + bne _08085E20 +_08085DB8: + lsrs r3, r4, #2 + ldr r1, _08085E10 @ =gUnk_08120638 + adds r0, r3, r1 + movs r7, #0 + ldrsb r7, [r0, r7] + adds r0, r3, #1 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + mov r8, r0 + adds r0, r5, #0 + adds r1, r7, #0 + mov r2, r8 + bl sub_080002CC + cmp r0, #0xff + bne _08085E20 + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r2, _08085E14 @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + subs r0, r0, r1 + adds r0, r0, r7 + movs r3, #0x32 + ldrsh r1, [r5, r3] + ldrh r2, [r2, #8] + subs r1, r1, r2 + add r1, r8 + adds r2, r4, #0 + movs r3, #5 + bl sub_080806BC + cmp r0, #0 + bne _08085E1C + ldr r0, _08085E18 @ =gUnk_03001160 + lsrs r1, r4, #3 + bl sub_0807BD14 + cmp r0, #0 + beq _08085E20 + strb r4, [r5, #0x15] + b _08085E52 + .align 2, 0 +_08085E10: .4byte gUnk_08120638 +_08085E14: .4byte gUnk_03000BF0 +_08085E18: .4byte gUnk_03001160 +_08085E1C: + strb r4, [r5, #0x15] + b _08085E6C +_08085E20: + cmp r6, #0 + beq _08085E28 + cmp r6, #0x10 + bne _08085E6C +_08085E28: + lsrs r3, r6, #2 + ldr r2, _08085E5C @ =gUnk_08120638 + adds r0, r3, r2 + movs r1, #0 + ldrsb r1, [r0, r1] + adds r0, r3, #1 + adds r0, r0, r2 + movs r2, #0 + ldrsb r2, [r0, r2] + adds r0, r5, #0 + bl sub_080002CC + cmp r0, #0xff + bne _08085E6C + ldr r0, _08085E60 @ =gUnk_03001160 + lsrs r1, r6, #3 + bl sub_0807BD14 + cmp r0, #0 + beq _08085E6C + strb r6, [r5, #0x15] +_08085E52: + adds r0, r5, #0 + bl sub_08085E74 + b _08085E6C + .align 2, 0 +_08085E5C: .4byte gUnk_08120638 +_08085E60: .4byte gUnk_03001160 +_08085E64: + ldrb r1, [r5, #0x10] + movs r0, #0xdf + ands r0, r1 + strb r0, [r5, #0x10] +_08085E6C: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08085E74 +sub_08085E74: @ 0x08085E74 + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r2, #0x10] + ldrb r1, [r2, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2, #0x11] + movs r0, #3 + strb r0, [r2, #0xc] + ldrb r0, [r2, #0x15] + cmp r0, #8 + beq _08085EB8 + cmp r0, #8 + bgt _08085EA2 + cmp r0, #0 + beq _08085EAC + b _08085EBE +_08085EA2: + cmp r0, #0x10 + beq _08085EB2 + cmp r0, #0x18 + beq _08085EB8 + b _08085EBE +_08085EAC: + movs r0, #0x90 + lsls r0, r0, #1 + b _08085EBC +_08085EB2: + movs r0, #0x9c + lsls r0, r0, #1 + b _08085EBC +_08085EB8: + movs r0, #0x80 + lsls r0, r0, #1 +_08085EBC: + strh r0, [r2, #0x24] +_08085EBE: + movs r0, #0 + str r0, [r2, #0x70] + str r0, [r2, #0x6c] + strh r0, [r2, #0x2c] + strh r0, [r2, #0x30] + ldr r1, _08085EF0 @ =gUnk_03001160 + strh r0, [r1, #0x2c] + strh r0, [r1, #0x30] + ldrb r0, [r2, #0x15] + strb r0, [r1, #0x15] + ldr r1, _08085EF4 @ =gUnk_03003F80 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r1, #8] + ldr r0, _08085EF8 @ =gUnk_03000BF0 + str r2, [r0, #0x30] + ldr r0, [r1, #0x2c] + cmp r0, #0 + beq _08085EE8 + bl sub_0805E7BC +_08085EE8: + bl sub_08077B2C + pop {pc} + .align 2, 0 +_08085EF0: .4byte gUnk_03001160 +_08085EF4: .4byte gUnk_03003F80 +_08085EF8: .4byte gUnk_03000BF0 + + thumb_func_start sub_08085EFC +sub_08085EFC: @ 0x08085EFC + ldr r3, _08085F18 @ =gUnk_03001160 + ldrh r1, [r0, #0x2e] + ldrh r2, [r3, #0x2e] + subs r1, r1, r2 + adds r2, r0, #0 + adds r2, #0x76 + strh r1, [r2] + ldrh r1, [r0, #0x32] + ldrh r2, [r3, #0x32] + subs r1, r1, r2 + adds r0, #0x74 + strh r1, [r0] + bx lr + .align 2, 0 +_08085F18: .4byte gUnk_03001160 + + thumb_func_start sub_08085F1C +sub_08085F1C: @ 0x08085F1C + push {lr} + adds r3, r0, #0 + ldr r2, _08085F44 @ =gUnk_03001160 + adds r1, r3, #0 + adds r1, #0x76 + ldrh r0, [r3, #0x2e] + ldrh r1, [r1] + subs r0, r0, r1 + strh r0, [r2, #0x2e] + adds r1, r3, #0 + adds r1, #0x74 + ldrh r0, [r3, #0x32] + ldrh r1, [r1] + subs r0, r0, r1 + strh r0, [r2, #0x32] + ldrb r0, [r3, #0x15] + bl sub_0807A5B8 + pop {pc} + .align 2, 0 +_08085F44: .4byte gUnk_03001160 + + thumb_func_start sub_08085F48 +sub_08085F48: @ 0x08085F48 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r2, [r4, #0xe] + movs r0, #0x80 + ands r0, r2 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + beq _08085F8C + ldr r5, _08085F80 @ =gUnk_03003F80 + ldrb r0, [r5, #0x12] + cmp r0, #0x17 + bne _08085F6A + bl sub_08078F60 + movs r0, #0x19 + strb r0, [r5, #0x12] +_08085F6A: + movs r0, #0x83 + bl sub_080A3268 + ldr r1, [r4, #0x78] + ldr r0, _08085F84 @ =0x0127FFFF + cmp r1, r0 + bhi _08085F88 + movs r2, #0x80 + lsls r2, r2, #0xc + b _08085FF8 + .align 2, 0 +_08085F80: .4byte gUnk_03003F80 +_08085F84: .4byte 0x0127FFFF +_08085F88: + movs r0, #0 + b _08086006 +_08085F8C: + ldr r0, _08085FAC @ =gUnk_03003F80 + ldr r1, [r0, #0x30] + movs r0, #2 + ands r1, r0 + cmp r1, #0 + beq _08085FCC + lsls r0, r2, #0x18 + cmp r0, #0 + beq _08085FB8 + ldr r1, [r4, #0x78] + ldr r0, _08085FB0 @ =0x011FFFFF + cmp r1, r0 + bhi _08085FB4 + movs r2, #0x80 + lsls r2, r2, #8 + b _08085FF8 + .align 2, 0 +_08085FAC: .4byte gUnk_03003F80 +_08085FB0: .4byte 0x011FFFFF +_08085FB4: + strb r3, [r4, #0xe] + b _08086008 +_08085FB8: + ldr r1, [r4, #0x78] + movs r0, #0x88 + lsls r0, r0, #0x11 + cmp r1, r0 + bls _08086004 + ldr r2, _08085FC8 @ =0xFFFF8000 + b _08085FF8 + .align 2, 0 +_08085FC8: .4byte 0xFFFF8000 +_08085FCC: + lsls r0, r2, #0x18 + cmp r0, #0 + beq _08085FEC + ldr r2, [r4, #0x78] + ldr r0, _08085FE4 @ =0x010FFFFF + cmp r2, r0 + bhi _08085FE8 + movs r1, #0x80 + lsls r1, r1, #7 + adds r0, r2, r1 + str r0, [r4, #0x78] + b _08086008 + .align 2, 0 +_08085FE4: .4byte 0x010FFFFF +_08085FE8: + strb r1, [r4, #0xe] + b _08086008 +_08085FEC: + ldr r1, [r4, #0x78] + movs r0, #0x83 + lsls r0, r0, #0x11 + cmp r1, r0 + bls _08086004 + ldr r2, _08086000 @ =0xFFFFC000 +_08085FF8: + adds r0, r1, r2 + str r0, [r4, #0x78] + b _08086008 + .align 2, 0 +_08086000: .4byte 0xFFFFC000 +_08086004: + movs r0, #1 +_08086006: + strb r0, [r4, #0xe] +_08086008: + adds r0, r4, #0 + adds r0, #0x7a + ldrh r2, [r0] + adds r0, #4 + ldrh r3, [r0] + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_0805EC9C + pop {r4, r5, pc} + + thumb_func_start sub_0808601C +sub_0808601C: @ 0x0808601C + push {lr} + ldr r2, _08086030 @ =gUnk_08120648 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08086030: .4byte gUnk_08120648 + + thumb_func_start sub_08086034 +sub_08086034: @ 0x08086034 + push {lr} + movs r3, #1 + movs r1, #1 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x18] + subs r1, #5 + ands r1, r2 + orrs r1, r3 + strb r1, [r0, #0x18] + adds r1, r0, #0 + adds r1, #0x58 + ldrb r1, [r1] + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08086054 +sub_08086054: @ 0x08086054 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08086064 + adds r0, r4, #0 + bl sub_08004274 +_08086064: + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _0808607C + ldrb r2, [r4, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] +_0808607C: + ldrb r0, [r4, #0xe] + lsls r1, r0, #0x18 + cmp r1, #0 + blt _080860AA + cmp r1, #0 + beq _08086098 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080860AA + bl sub_0805E780 + b _080860AA +_08086098: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080860AA + bl sub_0805E780 +_080860AA: + ldr r1, [r4, #0x54] + cmp r1, #0 + beq _080860BC + ldr r0, [r1, #0x2c] + str r0, [r4, #0x2c] + ldr r0, [r1, #0x30] + str r0, [r4, #0x30] + ldr r0, [r1, #0x34] + str r0, [r4, #0x34] +_080860BC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080860C0 +sub_080860C0: @ 0x080860C0 + push {lr} + ldr r2, _080860D4 @ =gUnk_08120650 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080860D4: .4byte gUnk_08120650 + + thumb_func_start sub_080860D8 +sub_080860D8: @ 0x080860D8 + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, #0xff + strh r0, [r4, #0x24] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xa] + strb r0, [r4, #0x1e] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4, #0xb] + bl sub_0804B128 + str r0, [r4, #0x54] + adds r1, r4, #0 + adds r1, #0x54 + adds r2, r4, #0 + adds r2, #0x70 + adds r0, r4, #0 + bl sub_080A2CC0 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808611C +sub_0808611C: @ 0x0808611C + push {r4, lr} + adds r4, r0, #0 + bl sub_08086168 + adds r1, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0808613C + ldr r2, [r4, #0x50] + ldrb r0, [r2, #0xe] + cmp r0, #0 + bne _08086144 + cmp r1, #0 + beq _0808613C + adds r0, #1 + strb r0, [r2, #0xe] +_0808613C: + adds r0, r4, #0 + bl sub_080A2BE4 + b _0808614C +_08086144: + adds r0, r4, #0 + movs r1, #0 + bl sub_080A2BE4 +_0808614C: + adds r2, r4, #0 + adds r2, #0x70 + ldrh r0, [r2] + subs r0, #1 + strh r0, [r2] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08086166 + adds r1, r4, #0 + adds r1, #0x54 + adds r0, r4, #0 + bl sub_080A2CC0 +_08086166: + pop {r4, pc} + + thumb_func_start sub_08086168 +sub_08086168: @ 0x08086168 + push {r4, lr} + ldrb r1, [r0, #0xa] + lsls r1, r1, #1 + ldr r2, _0808619C @ =gUnk_08120658 + adds r1, r1, r2 + ldr r4, _080861A0 @ =gUnk_03001160 + ldrb r2, [r1] + ldrb r3, [r1, #1] + adds r1, r4, #0 + bl sub_080041A0 + cmp r0, #0 + beq _080861A8 + bl sub_08079F8C + cmp r0, #0 + beq _080861A8 + ldr r0, _080861A4 @ =gUnk_03003F80 + movs r1, #1 + strb r1, [r0, #0x14] + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _080861A8 + movs r0, #1 + b _080861AA + .align 2, 0 +_0808619C: .4byte gUnk_08120658 +_080861A0: .4byte gUnk_03001160 +_080861A4: .4byte gUnk_03003F80 +_080861A8: + movs r0, #0 +_080861AA: + pop {r4, pc} + + thumb_func_start sub_080861AC +sub_080861AC: @ 0x080861AC + push {lr} + ldr r2, _080861C0 @ =gUnk_08120660 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080861C0: .4byte gUnk_08120660 + + thumb_func_start sub_080861C4 +sub_080861C4: @ 0x080861C4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r5, #1 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x80 + strh r0, [r4, #0x24] + ldr r0, _08086230 @ =gUnk_03001160 + mov ip, r0 + ldrb r1, [r0, #0x19] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r3, [r4, #0x19] + movs r2, #0x3f + adds r0, r2, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r4, #0x19] + mov r0, ip + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + adds r6, r4, #0 + adds r6, #0x29 + lsrs r1, r1, #0x1d + ldrb r3, [r6] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r6] + mov r0, ip + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + mov r1, ip + ldrb r0, [r1, #0x1b] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r1, [r4, #0x1b] + ands r2, r1 + orrs r2, r0 + strb r2, [r4, #0x1b] + bl sub_08000E50 + ands r0, r5 + strb r0, [r4, #0xa] + adds r0, r4, #0 + movs r1, #0x11 + bl sub_08004260 + pop {r4, r5, r6, pc} + .align 2, 0 +_08086230: .4byte gUnk_03001160 + + thumb_func_start sub_08086234 +sub_08086234: @ 0x08086234 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _08086258 + ldr r0, _08086254 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _0808625E + adds r0, r4, #0 + bl sub_08004274 + b _0808625E + .align 2, 0 +_08086254: .4byte gUnk_030010A0 +_08086258: + adds r0, r4, #0 + bl sub_08004274 +_0808625E: + adds r0, r4, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _0808626E + bl sub_0805E780 + b _0808627E +_0808626E: + ldr r0, _08086280 @ =gUnk_03003F80 + ldrb r1, [r0, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #1 + beq _0808627E + bl sub_0805E780 +_0808627E: + pop {r4, pc} + .align 2, 0 +_08086280: .4byte gUnk_03003F80 + + thumb_func_start sub_08086284 +sub_08086284: @ 0x08086284 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080862B4 @ =gUnk_08120668 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r1, r4, #0 + adds r1, #0x41 + movs r0, #0 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x76 + ldrh r1, [r0] + adds r0, #4 + ldrh r2, [r0] + adds r0, r4, #0 + movs r3, #0 + bl sub_0805EC9C + pop {r4, pc} + .align 2, 0 +_080862B4: .4byte gUnk_08120668 + + thumb_func_start sub_080862B8 +sub_080862B8: @ 0x080862B8 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x63 + bl sub_0807CBD0 + cmp r0, #0 + beq _080862CA + bl sub_0805E780 +_080862CA: + movs r3, #1 + strb r3, [r4, #0xc] + ldr r1, _08086350 @ =gUnk_08120678 + ldrb r0, [r4, #0xa] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x7c + strh r0, [r1] + adds r2, r4, #0 + adds r2, #0x76 + strh r0, [r2] + ldrh r0, [r1] + subs r1, #2 + strh r0, [r1] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08086354 + adds r1, #6 + ldr r0, [r4, #0x2c] + str r0, [r1] + adds r1, #4 + ldr r0, [r4, #0x30] + str r0, [r1] + ldrb r1, [r4, #0x19] + movs r0, #0x3f + ands r0, r1 + strb r0, [r4, #0x19] + str r4, [r4, #0x50] + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x3f + strb r3, [r0] + subs r1, #1 + movs r0, #4 + strb r0, [r1] + movs r2, #0 +_08086324: + adds r5, r2, #1 + adds r0, r4, #0 + movs r1, #0x18 + adds r2, r5, #0 + movs r3, #0 + bl sub_080A2988 + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _08086346 + ldr r0, [r4, #0x50] + str r0, [r1, #0x50] + ldr r0, [r4, #0x54] + str r4, [r0, #0x54] + ldr r0, [r4, #0x54] + str r0, [r4, #0x50] +_08086346: + adds r2, r5, #0 + cmp r2, #3 + bls _08086324 + b _08086360 + .align 2, 0 +_08086350: .4byte gUnk_08120678 +_08086354: + ldrb r0, [r4, #0x19] + movs r1, #0x3f + ands r1, r0 + movs r0, #0x40 + orrs r1, r0 + strb r1, [r4, #0x19] +_08086360: + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08086370 + pop {r4, r5, pc} + + thumb_func_start sub_08086370 +sub_08086370: @ 0x08086370 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldrb r2, [r6, #0xa] + cmp r2, #0 + beq _08086440 + ldr r0, [r6, #0x54] + adds r0, #0x7f + ldrb r0, [r0] + cmp r0, #0 + bne _080863B6 + adds r1, r6, #0 + adds r1, #0x7c + ldrh r0, [r1] + adds r2, r6, #0 + adds r2, #0x76 + strh r0, [r2] + ldrh r0, [r1] + subs r1, #2 + strh r0, [r1] + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r6, #0x24] + ldr r2, [r6, #0x50] + ldr r0, [r2, #0x2c] + ldr r1, [r6, #0x2c] + subs r0, r0, r1 + ldr r1, [r2, #0x30] + ldr r2, [r6, #0x30] + subs r1, r1, r2 + bl sub_080045DA + movs r1, #0x80 + eors r0, r1 + strb r0, [r6, #0x15] + b _08086428 +_080863B6: + movs r0, #0xc0 + lsls r0, r0, #3 + strh r0, [r6, #0x24] + ldr r2, _080863E8 @ =gUnk_03001160 + ldr r0, [r2, #0x2c] + ldr r1, [r6, #0x2c] + subs r0, r0, r1 + ldr r1, [r2, #0x30] + ldr r2, [r6, #0x30] + subs r1, r1, r2 + bl sub_080045DA + adds r1, r0, #0 + movs r0, #0x80 + eors r1, r0 + ldrb r2, [r6, #0x15] + cmp r1, r2 + beq _080863F0 + subs r0, r1, r2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x80 + bls _080863EC + adds r0, r2, #3 + b _080863EE + .align 2, 0 +_080863E8: .4byte gUnk_03001160 +_080863EC: + subs r0, r2, #3 +_080863EE: + strb r0, [r6, #0x15] +_080863F0: + ldr r0, _0808640C @ =gUnk_03001160 + ldrb r1, [r0, #0x14] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08086410 + adds r0, r6, #0 + adds r0, #0x7c + ldrh r0, [r0] + adds r0, #0x40 + adds r1, r6, #0 + adds r1, #0x76 + b _08086426 + .align 2, 0 +_0808640C: .4byte gUnk_03001160 +_08086410: + adds r0, r6, #0 + adds r0, #0x7c + ldrh r1, [r0] + subs r1, #0x20 + adds r2, r6, #0 + adds r2, #0x76 + strh r1, [r2] + ldrh r0, [r0] + adds r0, #0x50 + adds r1, r6, #0 + adds r1, #0x7a +_08086426: + strh r0, [r1] +_08086428: + ldr r1, [r6, #0x50] + ldr r0, [r1, #0x2c] + str r0, [r6, #0x2c] + ldr r0, [r1, #0x30] + str r0, [r6, #0x30] + movs r0, #0x24 + ldrsh r1, [r6, r0] + ldrb r2, [r6, #0x15] + adds r0, r6, #0 + bl sub_0806F62C + b _0808654A +_08086440: + adds r0, r6, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x13 + bne _08086498 + ldrb r0, [r6, #0x15] + adds r0, #1 + strb r0, [r6, #0x15] + ldrb r0, [r6, #0x1d] + subs r0, #1 + strb r0, [r6, #0x1d] + adds r2, r6, #0 + adds r2, #0x7f + movs r0, #1 + strb r0, [r2] + ldr r0, _08086480 @ =gUnk_03001160 + ldrb r1, [r0, #0x14] + movs r0, #2 + ands r0, r1 + adds r3, r2, #0 + cmp r0, #0 + bne _08086484 + adds r0, r6, #0 + adds r0, #0x7c + ldrh r0, [r0] + adds r0, #0x10 + adds r1, r6, #0 + adds r1, #0x76 + strh r0, [r1] + b _080864BC + .align 2, 0 +_08086480: .4byte gUnk_03001160 +_08086484: + adds r1, r6, #0 + adds r1, #0x7c + ldrh r0, [r1] + subs r0, #0x20 + adds r2, r6, #0 + adds r2, #0x76 + strh r0, [r2] + ldrh r0, [r1] + adds r0, #0x30 + b _080864B6 +_08086498: + ldrb r0, [r6, #0x15] + adds r0, #2 + strb r0, [r6, #0x15] + movs r0, #0xf0 + strb r0, [r6, #0x1d] + adds r3, r6, #0 + adds r3, #0x7f + strb r2, [r3] + adds r1, r6, #0 + adds r1, #0x7c + ldrh r0, [r1] + adds r2, r6, #0 + adds r2, #0x76 + strh r0, [r2] + ldrh r0, [r1] +_080864B6: + subs r1, #2 + strh r0, [r1] + adds r1, r2, #0 +_080864BC: + ldrb r2, [r6, #0x1d] + cmp r2, #0 + bne _080864CA + movs r0, #2 + strb r0, [r6, #0xc] + strb r2, [r3] + b _0808654A +_080864CA: + ldrb r0, [r6, #0x15] + adds r0, #0x40 + lsls r0, r0, #0x18 + cmp r0, #0 + blt _080864E0 + ldrh r2, [r1] + movs r3, #0 + ldrsh r0, [r1, r3] + cmp r0, #0 + ble _080864EE + b _080864EA +_080864E0: + ldrh r2, [r1] + movs r3, #0 + ldrsh r0, [r1, r3] + cmp r0, #0 + bge _080864EE +_080864EA: + rsbs r0, r2, #0 + strh r0, [r1] +_080864EE: + ldr r5, _0808654C @ =gUnk_080C9160 + ldrb r0, [r6, #0x15] + lsls r0, r0, #1 + adds r0, r0, r5 + movs r1, #0 + ldrsh r0, [r0, r1] + movs r1, #0x80 + lsls r1, r1, #6 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r4, #0x80 + lsls r4, r4, #1 + adds r1, r4, #0 + bl sub_0806FA04 + adds r1, r6, #0 + adds r1, #0x80 + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r1] + adds r1, r1, r0 + str r1, [r6, #0x2c] + ldrb r0, [r6, #0x15] + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r5 + movs r3, #0 + ldrsh r0, [r0, r3] + movs r1, #0x80 + lsls r1, r1, #5 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r4, #0 + bl sub_0806FA04 + adds r1, r6, #0 + adds r1, #0x84 + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r1] + subs r1, r1, r0 + str r1, [r6, #0x30] +_0808654A: + pop {r4, r5, r6, pc} + .align 2, 0 +_0808654C: .4byte gUnk_080C9160 + + thumb_func_start sub_08086550 +sub_08086550: @ 0x08086550 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x13 + beq _08086566 + movs r0, #3 + strb r0, [r4, #0xc] + b _08086592 +_08086566: + adds r0, r4, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _08086592 + movs r0, #0x63 + bl sub_0807CCB4 + movs r0, #0 + bl sub_0807CD10 + movs r5, #0 +_0808657E: + ldr r0, [r4, #0x54] + ldr r1, [r0, #0x50] + str r1, [r4, #0x54] + bl sub_0805E7BC + adds r5, #1 + cmp r5, #3 + bls _0808657E + bl sub_0805E780 +_08086592: + pop {r4, r5, pc} + + thumb_func_start sub_08086594 +sub_08086594: @ 0x08086594 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r0, #0x80 + ldr r0, [r0] + ldr r1, [r7, #0x2c] + subs r0, r0, r1 + adds r1, r7, #0 + adds r1, #0x84 + ldr r1, [r1] + ldr r2, [r7, #0x30] + subs r1, r1, r2 + bl sub_080045DA + strb r0, [r7, #0x15] + adds r0, r7, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x13 + bne _08086608 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r7, #0x24] + ldrb r0, [r7, #0x1d] + subs r0, #1 + strb r0, [r7, #0x1d] + adds r2, r7, #0 + adds r2, #0x7f + movs r0, #1 + strb r0, [r2] + ldr r0, _080865EC @ =gUnk_03001160 + ldrb r1, [r0, #0x14] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _080865F0 + adds r0, r7, #0 + adds r0, #0x7c + ldrh r0, [r0] + adds r0, #0x10 + adds r1, r7, #0 + adds r1, #0x76 + b _0808662A + .align 2, 0 +_080865EC: .4byte gUnk_03001160 +_080865F0: + adds r0, r7, #0 + adds r0, #0x7c + ldrh r1, [r0] + subs r1, #0x20 + adds r3, r7, #0 + adds r3, #0x76 + strh r1, [r3] + ldrh r0, [r0] + adds r0, #0x30 + adds r1, r7, #0 + adds r1, #0x7a + b _0808662A +_08086608: + movs r1, #0 + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r7, #0x24] + movs r0, #0xf0 + strb r0, [r7, #0x1d] + adds r2, r7, #0 + adds r2, #0x7f + strb r1, [r2] + adds r1, r7, #0 + adds r1, #0x7c + ldrh r0, [r1] + adds r3, r7, #0 + adds r3, #0x76 + strh r0, [r3] + ldrh r0, [r1] + subs r1, #2 +_0808662A: + strh r0, [r1] + ldrb r1, [r7, #0x1d] + cmp r1, #0 + bne _0808663A + movs r0, #2 + strb r0, [r7, #0xc] + strb r1, [r2] + b _080866B8 +_0808663A: + movs r0, #0x24 + ldrsh r1, [r7, r0] + ldrb r2, [r7, #0x15] + adds r0, r7, #0 + bl sub_0806F62C + ldrb r0, [r7, #0x15] + movs r1, #0x80 + eors r0, r1 + strb r0, [r7, #0x15] + ldr r6, _080866BC @ =gUnk_080C9160 + ldrb r0, [r7, #0x15] + lsls r0, r0, #1 + adds r0, r0, r6 + movs r1, #0 + ldrsh r0, [r0, r1] + movs r1, #0x80 + lsls r1, r1, #6 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r5, #0x80 + lsls r5, r5, #1 + adds r1, r5, #0 + bl sub_0806FA04 + adds r1, r7, #0 + adds r1, #0x80 + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r4, [r1] + adds r4, r4, r0 + ldrb r0, [r7, #0x15] + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r6 + movs r1, #0 + ldrsh r0, [r0, r1] + movs r1, #0x80 + lsls r1, r1, #5 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r5, #0 + bl sub_0806FA04 + adds r1, r7, #0 + adds r1, #0x84 + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r2, [r1] + subs r2, r2, r0 + adds r0, r7, #0 + adds r1, r4, #0 + movs r3, #2 + bl sub_0806FCB8 + cmp r0, #0 + beq _080866B8 + movs r0, #1 + strb r0, [r7, #0xc] +_080866B8: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080866BC: .4byte gUnk_080C9160 + + thumb_func_start sub_080866C0 +sub_080866C0: @ 0x080866C0 + push {lr} + ldr r2, _080866D4 @ =gUnk_081206B4 + ldrb r1, [r0, #0xb] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080866D4: .4byte gUnk_081206B4 + + thumb_func_start sub_080866D8 +sub_080866D8: @ 0x080866D8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r6, r0, #0 + ldrb r1, [r6, #0xc] + cmp r1, #0 + bne _080866FE + movs r0, #1 + strb r0, [r6, #0xc] + str r1, [r6, #0x68] + ldrb r1, [r6, #0xe] + adds r0, r6, #0 + adds r0, #0x6c + strb r1, [r0] + adds r0, r6, #0 + movs r1, #6 + bl sub_0805E3A0 +_080866FE: + adds r0, r6, #0 + adds r0, #0x6c + ldrb r0, [r0] + bl sub_0804B128 + adds r5, r0, #0 + movs r0, #0 + mov r8, r0 + ldrh r0, [r5] + ldr r1, _080867C4 @ =0x0000FFFF + cmp r0, r1 + beq _080867BA + mov sb, r1 +_08086718: + movs r7, #1 + mov r1, r8 + lsls r7, r1 + ldr r0, [r6, #0x68] + ands r0, r7 + cmp r0, #0 + bne _080867A8 + ldrb r0, [r5, #5] + bl sub_080867CC + cmp r0, #0 + beq _080867A8 + ldrh r0, [r5] + ldrh r1, [r5, #2] + movs r2, #0x20 + movs r3, #0x20 + bl sub_080562CC + cmp r0, #0 + beq _080867A8 + ldrb r1, [r5, #7] + ldrb r2, [r5, #6] + movs r0, #0x19 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _080867A8 + adds r0, #0x6c + mov r2, r8 + strb r2, [r0] + ldr r1, _080867C8 @ =gUnk_03000BF0 + ldrh r0, [r5] + ldrh r2, [r1, #6] + adds r0, r0, r2 + adds r0, #0x10 + strh r0, [r4, #0x2e] + ldrh r0, [r5, #2] + ldrh r1, [r1, #8] + adds r0, r0, r1 + adds r0, #0x20 + strh r0, [r4, #0x32] + str r6, [r4, #0x50] + ldrh r1, [r5] + adds r0, r4, #0 + adds r0, #0x68 + strh r1, [r0] + ldrh r0, [r5, #2] + adds r1, r4, #0 + adds r1, #0x6a + strh r0, [r1] + ldrb r1, [r5, #4] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + ldrb r0, [r5, #5] + strb r0, [r4, #0xd] + adds r0, r4, #0 + bl sub_08016A04 + ldr r0, [r6, #0x68] + orrs r0, r7 + str r0, [r6, #0x68] + ldr r1, [r5, #8] + cmp r1, #0 + beq _080867A8 + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] +_080867A8: + adds r5, #0xc + movs r0, #1 + add r8, r0 + ldrh r0, [r5] + cmp r0, sb + beq _080867BA + mov r1, r8 + cmp r1, #0x1f + bls _08086718 +_080867BA: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080867C4: .4byte 0x0000FFFF +_080867C8: .4byte gUnk_03000BF0 + + thumb_func_start sub_080867CC +sub_080867CC: @ 0x080867CC + push {lr} + cmp r0, #0 + beq _080867DE + cmp r0, #2 + bne _080867DE + movs r0, #0x18 + bl sub_0807CC30 + b _080867E0 +_080867DE: + movs r0, #1 +_080867E0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080867E4 +sub_080867E4: @ 0x080867E4 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x68 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x6a + ldrh r1, [r1] + movs r2, #0x20 + movs r3, #0x20 + bl sub_080562CC + cmp r0, #0 + bne _08086814 + ldr r2, [r4, #0x50] + adds r0, r4, #0 + adds r0, #0x6c + movs r1, #1 + ldrb r0, [r0] + lsls r1, r0 + ldr r0, [r2, #0x68] + bics r0, r1 + str r0, [r2, #0x68] + bl sub_0805E780 +_08086814: + adds r0, r4, #0 + bl sub_0808681C + pop {r4, pc} + + thumb_func_start sub_0808681C +sub_0808681C: @ 0x0808681C + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r4, [r5, #0xc] + cmp r4, #0 + beq _0808682C + cmp r4, #1 + beq _08086868 + b _0808688C +_0808682C: + movs r2, #1 + movs r0, #1 + strb r0, [r5, #0xc] + movs r0, #8 + strb r0, [r5, #0xe] + ldrb r1, [r5, #0x18] + subs r0, #0xc + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + strb r4, [r5, #0x1e] + ldr r0, _08086864 @ =gUnk_081206AC + str r0, [r5, #0x48] + ldrb r1, [r5, #0xd] + cmp r1, #1 + bne _08086852 + movs r0, #2 + strb r0, [r5, #0xc] + strb r1, [r5, #0x1e] +_08086852: + ldrb r1, [r5, #0x10] + movs r2, #2 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _080868AA + strb r2, [r5, #0xc] + b _0808688C + .align 2, 0 +_08086864: .4byte gUnk_081206AC +_08086868: + adds r0, r5, #0 + bl sub_08086954 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808688C + ldrb r0, [r5, #0xc] + adds r0, #1 + strb r0, [r5, #0xc] + strb r4, [r5, #0x1e] + movs r0, #0x10 + movs r1, #0 + movs r2, #1 + bl sub_08078AC0 + ldr r0, _080868AC @ =0x00000111 + bl sub_080A3268 +_0808688C: + ldrb r1, [r5, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080868AA + adds r4, r5, #0 + adds r4, #0x84 + ldr r1, [r4] + adds r0, r5, #0 + bl sub_0807DF74 + ldr r1, [r4] + adds r0, r5, #0 + bl sub_080868EC +_080868AA: + pop {r4, r5, pc} + .align 2, 0 +_080868AC: .4byte 0x00000111 + + thumb_func_start sub_080868B0 +sub_080868B0: @ 0x080868B0 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _080868D2 + movs r2, #1 + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + ldr r0, _080868E8 @ =gUnk_081206AC + str r0, [r5, #0x48] + movs r0, #8 + strb r0, [r5, #0xe] +_080868D2: + adds r4, r5, #0 + adds r4, #0x84 + ldr r1, [r4] + adds r0, r5, #0 + bl sub_0807DF74 + ldr r1, [r4] + adds r0, r5, #0 + bl sub_080868EC + pop {r4, r5, pc} + .align 2, 0 +_080868E8: .4byte gUnk_081206AC + + thumb_func_start sub_080868EC +sub_080868EC: @ 0x080868EC + push {r4, r5, lr} + adds r3, r0, #0 + ldr r2, [r1, #8] + movs r0, #0 + str r0, [r1, #8] + cmp r2, #0 + beq _0808691E + movs r5, #0x80 + lsls r5, r5, #1 + movs r4, #0 + movs r1, #1 +_08086902: + mvns r0, r2 + adds r0, #1 + ands r0, r2 + eors r2, r0 + cmp r0, #0x80 + beq _08086914 + cmp r0, r5 + beq _08086918 + b _0808691A +_08086914: + strb r4, [r3, #0x1e] + b _0808691A +_08086918: + strb r1, [r3, #0x1e] +_0808691A: + cmp r2, #0 + bne _08086902 +_0808691E: + ldrb r0, [r3, #0x1e] + cmp r0, #0 + bne _0808692A + adds r0, r3, #0 + bl sub_0800445C +_0808692A: + pop {r4, r5, pc} + + thumb_func_start sub_0808692C +sub_0808692C: @ 0x0808692C + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #0xfd + ands r0, r1 + strb r0, [r2, #0x10] + movs r0, #2 + strb r0, [r2, #0xb] + ldrb r0, [r2, #0x1e] + movs r1, #2 + cmp r0, #0 + bne _08086946 + movs r1, #1 +_08086946: + strb r1, [r2, #0xc] + movs r0, #0 + strb r0, [r2, #0xd] + movs r0, #8 + strb r0, [r2, #0xe] + pop {pc} + .align 2, 0 + + thumb_func_start sub_08086954 +sub_08086954: @ 0x08086954 + push {r4, lr} + adds r4, r0, #0 + bl sub_0800445C + cmp r0, #0 + beq _0808699C + adds r0, r4, #0 + movs r1, #6 + movs r2, #0x14 + bl sub_0806ED9C + cmp r0, #0 + blt _080869A0 + ldr r0, _08086994 @ =gUnk_03001160 + ldrb r0, [r0, #0x14] + cmp r0, #0 + bne _080869A0 + ldr r2, _08086998 @ =gUnk_03003F80 + adds r0, r2, #0 + adds r0, #0x90 + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #3 + cmp r1, r0 + bne _080869A0 + ldrb r0, [r2, #2] + cmp r0, #0 + bne _080869A0 + ldrb r0, [r4, #0xe] + subs r0, #1 + b _0808699E + .align 2, 0 +_08086994: .4byte gUnk_03001160 +_08086998: .4byte gUnk_03003F80 +_0808699C: + movs r0, #8 +_0808699E: + strb r0, [r4, #0xe] +_080869A0: + ldrb r0, [r4, #0xe] + pop {r4, pc} + + thumb_func_start sub_080869A4 +sub_080869A4: @ 0x080869A4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #0 + str r0, [r5, #0x14] + adds r0, r4, #0 + bl sub_08086954 + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080869C2 + movs r0, #8 + strb r0, [r4, #0xe] + movs r0, #1 + str r0, [r5, #0x14] +_080869C2: + pop {r4, r5, pc} + + thumb_func_start sub_080869C4 +sub_080869C4: @ 0x080869C4 + push {lr} + ldr r2, _080869D8 @ =gUnk_081206C4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080869D8: .4byte gUnk_081206C4 + + thumb_func_start sub_080869DC +sub_080869DC: @ 0x080869DC + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + strb r0, [r4, #0x18] + ldr r0, _08086A24 @ =gUnk_080FD1A8 + str r0, [r4, #0x48] + adds r2, r4, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0x10 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0xa] + movs r0, #0 + movs r2, #0 + bl sub_080A2960 + adds r1, r0, #0 + cmp r1, #0 + beq _08086A20 + movs r0, #0xa + strb r0, [r1, #0xe] + str r4, [r1, #0x50] + str r1, [r4, #0x54] + adds r0, r4, #0 + bl sub_0806FA24 + adds r0, r4, #0 + bl sub_08086A6C +_08086A20: + pop {r4, pc} + .align 2, 0 +_08086A24: .4byte gUnk_080FD1A8 + + thumb_func_start sub_08086A28 +sub_08086A28: @ 0x08086A28 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x54] + ldr r0, [r0, #4] + cmp r0, #0 + bne _08086A3A + movs r0, #2 + strb r0, [r4, #0xc] + b _08086A5A +_08086A3A: + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #0 + bne _08086A4C + movs r0, #2 + strb r0, [r4, #0xc] +_08086A4C: + adds r0, r4, #0 + bl sub_080AEF88 + ldr r1, [r4, #0x54] + adds r0, r4, #0 + bl sub_0806FA24 +_08086A5A: + pop {r4, pc} + + thumb_func_start sub_08086A5C +sub_08086A5C: @ 0x08086A5C + push {lr} + ldr r1, [r0, #0x54] + movs r0, #0 + str r0, [r1, #0x50] + bl sub_0805E780 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08086A6C +sub_08086A6C: @ 0x08086A6C + push {r4, lr} + adds r4, r0, #0 + bl sub_08000E50 + movs r1, #0xa0 + lsls r1, r1, #0xa + str r1, [r4, #0x20] + lsrs r1, r0, #0x10 + movs r2, #0x1f + ands r1, r2 + strb r1, [r4, #0x15] + movs r2, #0xf0 + lsls r2, r2, #1 + adds r1, r2, #0 + ands r0, r1 + strh r0, [r4, #0x24] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08086A90 +sub_08086A90: @ 0x08086A90 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08086AA4 + ldrb r0, [r4, #0xa] + movs r1, #0xb + bl __modsi3 + strb r0, [r4, #0xb] +_08086AA4: + ldr r0, _08086AB8 @ =gUnk_081206D0 + ldrb r1, [r4, #0xb] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_08086AB8: .4byte gUnk_081206D0 + + thumb_func_start sub_08086ABC +sub_08086ABC: @ 0x08086ABC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08086AE4 @ =gUnk_081206FC + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldr r3, _08086AE8 @ =gUnk_03001160 + movs r1, #0x32 + ldrsh r0, [r3, r1] + ldr r2, _08086AEC @ =gUnk_03000BF0 + ldrh r1, [r2, #8] + subs r0, r0, r1 + cmp r0, #0xa7 + bgt _08086AF0 + str r4, [r2, #0x30] + b _08086AF2 + .align 2, 0 +_08086AE4: .4byte gUnk_081206FC +_08086AE8: .4byte gUnk_03001160 +_08086AEC: .4byte gUnk_03000BF0 +_08086AF0: + str r3, [r2, #0x30] +_08086AF2: + movs r0, #2 + strb r0, [r2, #0xe] + pop {r4, pc} + + thumb_func_start sub_08086AF8 +sub_08086AF8: @ 0x08086AF8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08087380 + movs r0, #0 + strb r0, [r4, #0xe] + adds r4, #0x84 + movs r0, #0x91 + lsls r0, r0, #1 + strh r0, [r4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08086B10 +sub_08086B10: @ 0x08086B10 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r0, #0 + bl sub_0807CC3C + cmp r0, #0 + beq _08086B9A + adds r1, r4, #0 + adds r1, #0x84 + ldrh r0, [r1] + cmp r0, #0 + beq _08086B2C + subs r0, #1 + strh r0, [r1] +_08086B2C: + ldrh r1, [r1] + cmp r1, #0x96 + beq _08086B62 + cmp r1, #0x96 + bgt _08086B40 + cmp r1, #0 + beq _08086B5C + cmp r1, #0x82 + beq _08086B62 + b _08086B9A +_08086B40: + cmp r1, #0xd2 + beq _08086B62 + cmp r1, #0xd2 + bgt _08086B4E + cmp r1, #0xaa + beq _08086B62 + b _08086B9A +_08086B4E: + ldr r0, _08086B58 @ =0x00000121 + cmp r1, r0 + beq _08086B62 + b _08086B9A + .align 2, 0 +_08086B58: .4byte 0x00000121 +_08086B5C: + movs r0, #2 + strb r0, [r4, #0xc] + b _08086B9A +_08086B62: + adds r0, r4, #0 + movs r1, #6 + movs r2, #0 + bl sub_080873AC + adds r5, r0, #0 + cmp r5, #0 + beq _08086B9A + ldr r3, _08086B9C @ =gUnk_08120714 + ldrb r1, [r4, #0xe] + lsls r0, r1, #1 + adds r0, r0, r3 + movs r6, #0 + ldrsh r2, [r0, r6] + lsls r2, r2, #0x10 + adds r1, #1 + lsls r1, r1, #1 + adds r1, r1, r3 + movs r0, #0 + ldrsh r3, [r1, r0] + lsls r3, r3, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FA48 + ldrb r0, [r4, #0xe] + adds r0, #2 + strb r0, [r4, #0xe] +_08086B9A: + pop {r4, r5, r6, pc} + .align 2, 0 +_08086B9C: .4byte gUnk_08120714 + + thumb_func_start sub_08086BA0 +sub_08086BA0: @ 0x08086BA0 + push {r4, lr} + adds r4, r0, #0 + movs r1, #7 + movs r2, #0 + bl sub_080873AC + adds r1, r0, #0 + cmp r1, #0 + beq _08086BC2 + movs r3, #0x80 + lsls r3, r3, #0xc + adds r0, r4, #0 + movs r2, #0 + bl sub_0806FA48 + movs r0, #3 + strb r0, [r4, #0xc] +_08086BC2: + pop {r4, pc} + + thumb_func_start sub_08086BC4 +sub_08086BC4: @ 0x08086BC4 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08086C10 @ =gUnk_02034350 + ldr r0, [r0, #0x68] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08086C0C + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl sub_080873AC + adds r1, r0, #0 + cmp r1, #0 + beq _08086C0C + adds r0, r4, #0 + bl sub_0806FA24 + movs r0, #6 + movs r1, #4 + bl sub_08050054 + ldr r0, _08086C14 @ =0x00000145 + bl sub_080A3268 + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #0x40 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] +_08086C0C: + pop {r4, pc} + .align 2, 0 +_08086C10: .4byte gUnk_02034350 +_08086C14: .4byte 0x00000145 + + thumb_func_start sub_08086C18 +sub_08086C18: @ 0x08086C18 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + adds r5, r0, #0 + cmp r5, #0 + beq _08086C2E + subs r0, #1 + strb r0, [r4, #0xe] + b _08086C52 +_08086C2E: + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_080873AC + adds r1, r0, #0 + cmp r1, #0 + beq _08086C52 + ldr r3, _08086C54 @ =0xFFEC0000 + adds r0, r4, #0 + movs r2, #0 + bl sub_0806FA48 + movs r0, #5 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + strb r5, [r4, #0xf] +_08086C52: + pop {r4, r5, pc} + .align 2, 0 +_08086C54: .4byte 0xFFEC0000 + + thumb_func_start sub_08086C58 +sub_08086C58: @ 0x08086C58 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08086C68 + subs r0, #1 + strb r0, [r4, #0xe] + b _08086C90 +_08086C68: + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _08086C90 + adds r0, r4, #0 + movs r1, #9 + movs r2, #0 + bl sub_080873AC + adds r5, r0, #0 + cmp r5, #0 + beq _08086C90 + ldr r3, _08086C98 @ =0xFFB40000 + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0 + bl sub_0806FA48 + str r4, [r5, #0x50] + movs r0, #1 + strb r0, [r4, #0xf] +_08086C90: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, r5, pc} + .align 2, 0 +_08086C98: .4byte 0xFFB40000 + + thumb_func_start sub_08086C9C +sub_08086C9C: @ 0x08086C9C + push {lr} + ldr r2, _08086CB0 @ =gUnk_08120728 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08086CB0: .4byte gUnk_08120728 + + thumb_func_start sub_08086CB4 +sub_08086CB4: @ 0x08086CB4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08087380 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x19] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r4, #0x19] + ldr r1, _08086D10 @ =gUnk_03000F50 + adds r2, r1, #0 + adds r2, #0x66 + movs r0, #0xf4 + lsls r0, r0, #4 + strh r0, [r2] + adds r1, #0x68 + ldr r0, _08086D14 @ =0x00000809 + strh r0, [r1] + movs r1, #0x80 + lsls r1, r1, #3 + strh r1, [r4, #0x24] + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r4, #0 + movs r3, #0 + bl sub_0805EC9C + pop {r4, pc} + .align 2, 0 +_08086D10: .4byte gUnk_03000F50 +_08086D14: .4byte 0x00000809 + + thumb_func_start sub_08086D18 +sub_08086D18: @ 0x08086D18 + push {lr} + adds r3, r0, #0 + ldrh r0, [r3, #0x24] + subs r0, #0x20 + strh r0, [r3, #0x24] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x80 + lsls r2, r2, #1 + cmp r0, r2 + bne _08086D58 + movs r0, #2 + strb r0, [r3, #0xc] + adds r0, r3, #0 + bl sub_0805EC60 + ldr r2, _08086D50 @ =gUnk_02034350 + ldr r0, [r2, #0x68] + movs r1, #0x20 + orrs r0, r1 + str r0, [r2, #0x68] + ldr r2, _08086D54 @ =gUnk_02033280 + ldr r0, [r2] + movs r1, #4 + orrs r0, r1 + str r0, [r2] + b _08086D64 + .align 2, 0 +_08086D50: .4byte gUnk_02034350 +_08086D54: .4byte gUnk_02033280 +_08086D58: + movs r0, #0x24 + ldrsh r1, [r3, r0] + adds r0, r3, #0 + movs r3, #0 + bl sub_0805EC9C +_08086D64: + pop {pc} + .align 2, 0 + + thumb_func_start nullsub_116 +nullsub_116: @ 0x08086D68 + bx lr + .align 2, 0 + + thumb_func_start sub_08086D6C +sub_08086D6C: @ 0x08086D6C + push {lr} + ldr r2, _08086D80 @ =gUnk_08120734 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08086D80: .4byte gUnk_08120734 + + thumb_func_start sub_08086D84 +sub_08086D84: @ 0x08086D84 + push {r4, lr} + adds r4, r0, #0 + bl sub_08087380 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r4, #0x29 + ldrb r1, [r4] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r4] + pop {r4, pc} + + thumb_func_start sub_08086DAC +sub_08086DAC: @ 0x08086DAC + push {lr} + bl sub_08004274 + pop {pc} + + thumb_func_start sub_08086DB4 +sub_08086DB4: @ 0x08086DB4 + push {lr} + ldr r2, _08086DC8 @ =gUnk_0812073C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08086DC8: .4byte gUnk_0812073C + + thumb_func_start sub_08086DCC +sub_08086DCC: @ 0x08086DCC + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #4 + movs r2, #0 + bl sub_080873AC + adds r4, r0, #0 + cmp r4, #0 + beq _08086E00 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + str r5, [r4, #0x50] + adds r0, r5, #0 + bl sub_08087380 + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #0x18] + movs r0, #0 + strb r0, [r5, #0xf] +_08086E00: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08086E04 +sub_08086E04: @ 0x08086E04 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldr r0, [r4, #0x34] + ldr r1, _08086E2C @ =0xFFFF8000 + adds r0, r0, r1 + str r0, [r4, #0x34] + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #0x14 + rsbs r0, r0, #0 + cmp r1, r0 + bne _08086E34 + movs r0, #2 + strb r0, [r4, #0xc] + ldr r0, _08086E30 @ =0x00000141 + bl sub_080A3268 + b _08086E62 + .align 2, 0 +_08086E2C: .4byte 0xFFFF8000 +_08086E30: .4byte 0x00000141 +_08086E34: + movs r0, #0xa + rsbs r0, r0, #0 + cmp r1, r0 + bne _08086E62 + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _08086E62 + adds r0, r4, #0 + movs r1, #5 + movs r2, #0 + bl sub_080873AC + adds r1, r0, #0 + cmp r1, #0 + beq _08086E62 + movs r3, #0x80 + lsls r3, r3, #0xb + adds r0, r4, #0 + movs r2, #0 + bl sub_0806FA48 + movs r0, #1 + strb r0, [r4, #0xf] +_08086E62: + pop {r4, pc} + + thumb_func_start sub_08086E64 +sub_08086E64: @ 0x08086E64 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080873D0 + ldr r0, _08086E88 @ =gUnk_02034350 + ldr r0, [r0, #0x68] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08086E84 + adds r0, r4, #0 + bl sub_0805E7BC +_08086E84: + pop {r4, pc} + .align 2, 0 +_08086E88: .4byte gUnk_02034350 + + thumb_func_start sub_08086E8C +sub_08086E8C: @ 0x08086E8C + push {lr} + ldr r2, _08086EA0 @ =gUnk_08120748 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08086EA0: .4byte gUnk_08120748 + + thumb_func_start sub_08086EA4 +sub_08086EA4: @ 0x08086EA4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08087380 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08086ED0 +sub_08086ED0: @ 0x08086ED0 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #0x14 + rsbs r0, r0, #0 + cmp r1, r0 + bne _08086F0C + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x5a + strb r0, [r4, #0xe] + movs r0, #0x80 + lsls r0, r0, #5 + strh r0, [r4, #0x24] + ldrb r0, [r4, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x19] + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C +_08086F0C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08086F10 +sub_08086F10: @ 0x08086F10 + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xe] + subs r0, #1 + strb r0, [r3, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08086F3C + ldr r2, _08086F38 @ =gUnk_02034350 + ldr r0, [r2, #0x68] + movs r1, #1 + orrs r0, r1 + str r0, [r2, #0x68] + movs r0, #3 + strb r0, [r3, #0xc] + adds r0, r3, #0 + bl sub_0805EC60 + b _08086F52 + .align 2, 0 +_08086F38: .4byte gUnk_02034350 +_08086F3C: + ldrh r2, [r3, #0x24] + subs r2, #0x18 + strh r2, [r3, #0x24] + movs r1, #0x80 + lsls r1, r1, #1 + lsls r2, r2, #0x10 + asrs r2, r2, #0x14 + adds r0, r3, #0 + movs r3, #0 + bl sub_0805EC9C +_08086F52: + pop {pc} + + thumb_func_start sub_08086F54 +sub_08086F54: @ 0x08086F54 + push {lr} + ldr r2, _08086F68 @ =gUnk_08120758 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08086F68: .4byte gUnk_08120758 + + thumb_func_start sub_08086F6C +sub_08086F6C: @ 0x08086F6C + push {r4, lr} + adds r4, r0, #0 + bl sub_08087380 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #0 + strh r0, [r4, #0x36] + adds r4, #0x29 + ldrb r1, [r4] + subs r0, #8 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r4] + movs r0, #0xa0 + lsls r0, r0, #1 + bl sub_080A3268 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08086FA0 +sub_08086FA0: @ 0x08086FA0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08086FBC + adds r0, r4, #0 + bl sub_0805E7BC +_08086FBC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08086FC0 +sub_08086FC0: @ 0x08086FC0 + push {lr} + ldr r2, _08086FD4 @ =gUnk_08120760 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08086FD4: .4byte gUnk_08120760 + + thumb_func_start sub_08086FD8 +sub_08086FD8: @ 0x08086FD8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08087380 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r4, #0x29 + ldrb r1, [r4] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r4] + pop {r4, pc} + + thumb_func_start sub_08087000 +sub_08087000: @ 0x08087000 + push {lr} + adds r2, r0, #0 + ldr r0, _08087018 @ =gUnk_02034350 + ldr r0, [r0, #0x68] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _0808701C + adds r0, r2, #0 + bl sub_0805E7BC + b _08087022 + .align 2, 0 +_08087018: .4byte gUnk_02034350 +_0808701C: + adds r0, r2, #0 + bl sub_08004274 +_08087022: + pop {pc} + + thumb_func_start sub_08087024 +sub_08087024: @ 0x08087024 + push {lr} + ldr r2, _08087038 @ =gUnk_08120768 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08087038: .4byte gUnk_08120768 + + thumb_func_start sub_0808703C +sub_0808703C: @ 0x0808703C + push {r4, lr} + adds r4, r0, #0 + bl sub_08087380 + movs r0, #0x78 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #0x7c + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r4, #0x29 + ldrb r1, [r4] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r4] + movs r0, #0xf9 + bl sub_080A3268 + pop {r4, pc} + + thumb_func_start sub_0808706C +sub_0808706C: @ 0x0808706C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08087080 + subs r0, #1 + strb r0, [r4, #0xe] + b _080870AA +_08087080: + adds r0, r4, #0 + movs r1, #3 + movs r2, #0 + bl sub_080873AC + adds r1, r0, #0 + cmp r1, #0 + beq _080870AA + ldr r3, _080870AC @ =0xFFF80000 + adds r0, r4, #0 + movs r2, #0 + bl sub_0806FA48 + ldr r2, _080870B0 @ =gUnk_02034350 + ldr r0, [r2, #0x68] + movs r1, #2 + orrs r0, r1 + str r0, [r2, #0x68] + adds r0, r4, #0 + bl sub_0805E7BC +_080870AA: + pop {r4, pc} + .align 2, 0 +_080870AC: .4byte 0xFFF80000 +_080870B0: .4byte gUnk_02034350 + + thumb_func_start sub_080870B4 +sub_080870B4: @ 0x080870B4 + push {lr} + ldr r2, _080870C8 @ =gUnk_08120770 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080870C8: .4byte gUnk_08120770 + + thumb_func_start sub_080870CC +sub_080870CC: @ 0x080870CC + push {r4, lr} + adds r4, r0, #0 + bl sub_08087380 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r4, #0x29 + ldrb r1, [r4] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r4] + pop {r4, pc} + + thumb_func_start sub_080870F4 +sub_080870F4: @ 0x080870F4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08087110 + adds r0, r4, #0 + bl sub_0805E7BC +_08087110: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08087114 +sub_08087114: @ 0x08087114 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _08087134 + ldr r0, _08087130 @ =gUnk_08120778 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _0808714A + .align 2, 0 +_08087130: .4byte gUnk_08120778 +_08087134: + ldr r0, _0808714C @ =gUnk_08120788 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_08004274 +_0808714A: + pop {r4, pc} + .align 2, 0 +_0808714C: .4byte gUnk_08120788 + + thumb_func_start sub_08087150 +sub_08087150: @ 0x08087150 + push {r4, lr} + adds r4, r0, #0 + bl sub_08087380 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r2, [r4, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + ands r1, r0 + strb r1, [r4, #0x19] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x80 + strh r0, [r4, #0x24] + movs r0, #0x10 + strb r0, [r4, #0x15] + ldr r0, _080871A0 @ =gUnk_0812079C + ldrb r0, [r0] + movs r1, #0xf + ands r1, r0 + lsls r0, r0, #4 + orrs r0, r1 + strb r0, [r4, #0x1a] + pop {r4, pc} + .align 2, 0 +_080871A0: .4byte gUnk_0812079C + + thumb_func_start nullsub_516 +nullsub_516: @ 0x080871A4 + bx lr + .align 2, 0 + + thumb_func_start sub_080871A8 +sub_080871A8: @ 0x080871A8 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080871CA + movs r0, #3 + strb r0, [r1, #0xc] + movs r0, #0x3c + strb r0, [r1, #0xe] + ldr r2, _080871CC @ =gUnk_02034350 + ldr r0, [r2, #0x68] + movs r1, #4 + orrs r0, r1 + str r0, [r2, #0x68] +_080871CA: + pop {pc} + .align 2, 0 +_080871CC: .4byte gUnk_02034350 + + thumb_func_start sub_080871D0 +sub_080871D0: @ 0x080871D0 + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xe] + subs r0, #1 + strb r0, [r3, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080871F0 + ldr r0, _080871F4 @ =gUnk_02034350 + ldr r1, [r0, #0x68] + movs r2, #8 + orrs r1, r2 + str r1, [r0, #0x68] + adds r0, r3, #0 + bl sub_0805E7BC +_080871F0: + pop {pc} + .align 2, 0 +_080871F4: .4byte gUnk_02034350 + + thumb_func_start sub_080871F8 +sub_080871F8: @ 0x080871F8 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r3, [r4, #0x54] + movs r0, #0x2e + ldrsh r1, [r3, r0] + movs r2, #0x2e + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _0808721E + movs r5, #0x32 + ldrsh r0, [r3, r5] + subs r0, #0x20 + movs r2, #0x32 + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _0808721E + movs r0, #2 + strb r0, [r4, #0xc] + b _0808723C +_0808721E: + movs r5, #0x2e + ldrsh r0, [r4, r5] + movs r2, #0x32 + ldrsh r1, [r4, r2] + movs r5, #0x2e + ldrsh r2, [r3, r5] + movs r5, #0x32 + ldrsh r3, [r3, r5] + subs r3, #0x20 + bl sub_080045D4 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F69C +_0808723C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08087240 +sub_08087240: @ 0x08087240 + push {lr} + adds r2, r0, #0 + ldr r0, _08087260 @ =gUnk_02034350 + ldr r0, [r0, #0x68] + movs r1, #4 + ands r0, r1 + cmp r0, #0 + beq _0808725C + movs r0, #3 + strb r0, [r2, #0xc] + movs r0, #0x14 + strb r0, [r2, #0xe] + movs r0, #0x10 + strb r0, [r2, #0x15] +_0808725C: + pop {pc} + .align 2, 0 +_08087260: .4byte gUnk_02034350 + + thumb_func_start sub_08087264 +sub_08087264: @ 0x08087264 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + cmp r0, #0 + beq _08087278 + subs r0, #1 + strb r0, [r1, #0xe] + adds r0, r1, #0 + bl sub_0806F69C +_08087278: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808727C +sub_0808727C: @ 0x0808727C + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08087292 + adds r0, r1, #0 + bl sub_0805E7BC +_08087292: + pop {pc} + + thumb_func_start sub_08087294 +sub_08087294: @ 0x08087294 + push {lr} + ldr r2, _080872A8 @ =gUnk_081207A4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080872A8: .4byte gUnk_081207A4 + + thumb_func_start sub_080872AC +sub_080872AC: @ 0x080872AC + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x1b] + movs r2, #0x3f + adds r0, r2, #0 + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + ands r2, r0 + strb r2, [r4, #0x19] + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x68 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x6a + strh r0, [r1] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] + movs r0, #0x20 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_08087380 + pop {r4, pc} + + thumb_func_start sub_080872F8 +sub_080872F8: @ 0x080872F8 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_08004274 + adds r2, r4, #0 + adds r2, #0x68 + ldrh r0, [r2] + ldrh r1, [r4, #0x2e] + subs r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xc + bhi _0808732A + adds r0, r4, #0 + adds r0, #0x6a + ldrh r0, [r0] + ldrh r1, [r4, #0x32] + subs r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xc + bls _0808735C +_0808732A: + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r3, #0x32 + ldrsh r1, [r4, r3] + movs r5, #0 + ldrsh r2, [r2, r5] + adds r3, r4, #0 + adds r3, #0x6a + movs r5, #0 + ldrsh r3, [r3, r5] + bl sub_080045D4 + strb r0, [r4, #0x15] + bl sub_08000E50 + ldr r2, _08087378 @ =gUnk_081207AC + movs r1, #3 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + ldrb r1, [r4, #0x15] + adds r0, r0, r1 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] +_0808735C: + ldr r1, _0808737C @ =gUnk_080C9160 + ldrb r0, [r4, #0xe] + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r1 + movs r3, #0 + ldrsh r0, [r0, r3] + asrs r0, r0, #6 + subs r0, #8 + strh r0, [r4, #0x36] + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + pop {r4, r5, pc} + .align 2, 0 +_08087378: .4byte gUnk_081207AC +_0808737C: .4byte gUnk_080C9160 + + thumb_func_start sub_08087380 +sub_08087380: @ 0x08087380 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + movs r1, #0xb + bl __modsi3 + strb r0, [r4, #0xb] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + ldrb r1, [r4, #0xb] + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + pop {r4, pc} + + thumb_func_start sub_080873AC +sub_080873AC: @ 0x080873AC + push {r4, r5, r6, lr} + adds r5, r1, #0 + adds r6, r2, #0 + ldrb r0, [r0, #0xa] + movs r4, #0xb + movs r1, #0xb + bl __divsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r0, #0 + muls r1, r4, r1 + adds r1, r1, r5 + movs r0, #0x1b + adds r2, r6, #0 + bl sub_080A2960 + pop {r4, r5, r6, pc} + + thumb_func_start sub_080873D0 +sub_080873D0: @ 0x080873D0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080873DE + subs r0, #1 + b _080873F6 +_080873DE: + adds r0, r4, #0 + movs r1, #8 + movs r2, #0 + bl sub_080873AC + adds r1, r0, #0 + cmp r1, #0 + beq _080873F8 + adds r0, r4, #0 + bl sub_0806FA24 + movs r0, #0x30 +_080873F6: + strb r0, [r4, #0xe] +_080873F8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080873FC +sub_080873FC: @ 0x080873FC + push {lr} + movs r0, #0xf7 + bl sub_080A3268 + ldr r1, _0808740C @ =gUnk_03000BF0 + movs r0, #0 + str r0, [r1, #0x30] + b _08087414 + .align 2, 0 +_0808740C: .4byte gUnk_03000BF0 +_08087410: + bl sub_0805E7BC +_08087414: + movs r0, #6 + movs r1, #0x1b + movs r2, #6 + bl sub_0805EB00 + cmp r0, #0 + bne _08087410 + pop {pc} + + thumb_func_start sub_08087424 +sub_08087424: @ 0x08087424 + push {r4, r5, lr} + adds r5, r1, #0 + bl sub_080791D0 + movs r0, #0x64 + movs r1, #0 + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _0808744E + ldr r0, _0808745C @ =gUnk_03001160 + str r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 +_0808744E: + ldr r1, [r5, #4] + cmp r1, #0 + beq _08087460 + cmp r1, #1 + beq _0808746C + b _08087474 + .align 2, 0 +_0808745C: .4byte gUnk_03001160 +_08087460: + ldr r0, _08087468 @ =gUnk_02002A40 + adds r0, #0xad + b _08087472 + .align 2, 0 +_08087468: .4byte gUnk_02002A40 +_0808746C: + ldr r0, _08087478 @ =gUnk_02002A40 + adds r0, #0xac + movs r1, #0 +_08087472: + strb r1, [r0] +_08087474: + pop {r4, r5, pc} + .align 2, 0 +_08087478: .4byte gUnk_02002A40 + + thumb_func_start sub_0808747C +sub_0808747C: @ 0x0808747C + push {r4, lr} + sub sp, #4 + adds r4, r1, #0 + movs r0, #0 + str r0, [sp] + movs r0, #6 + movs r1, #0xf + movs r2, #6 + movs r3, #0xb + bl sub_0805EB2C + cmp r0, #0 + beq _08087498 + movs r0, #1 +_08087498: + str r0, [r4, #0x14] + add sp, #4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080874A0 +sub_080874A0: @ 0x080874A0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080874AE + movs r0, #1 + strb r0, [r4, #0xc] +_080874AE: + adds r0, r4, #0 + adds r0, #0x80 + movs r1, #0 + ldrsh r0, [r0, r1] + adds r1, r4, #0 + adds r1, #0x82 + movs r2, #0 + ldrsh r1, [r1, r2] + movs r2, #0x10 + movs r3, #0x10 + bl sub_0800290E + cmp r0, #0 + bne _080874DC + ldr r2, [r4, #0x50] + movs r1, #1 + ldrb r4, [r4, #0xb] + lsls r1, r4 + ldr r0, [r2, #0x20] + bics r0, r1 + str r0, [r2, #0x20] + bl sub_0805E780 +_080874DC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080874E0 +sub_080874E0: @ 0x080874E0 + push {lr} + ldr r2, _080874F4 @ =gUnk_081208A0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080874F4: .4byte gUnk_081208A0 + + thumb_func_start sub_080874F8 +sub_080874F8: @ 0x080874F8 + push {lr} + bl sub_0805E780 + pop {pc} + + thumb_func_start nullsub_117 +nullsub_117: @ 0x08087500 + bx lr + .align 2, 0 + + thumb_func_start sub_08087504 +sub_08087504: @ 0x08087504 + push {r4, lr} + adds r4, r0, #0 + bl sub_0805E3B0 + cmp r0, #0 + bne _08087520 + ldr r0, _08087524 @ =gUnk_081208B8 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_08087520: + pop {r4, pc} + .align 2, 0 +_08087524: .4byte gUnk_081208B8 + + thumb_func_start sub_08087528 +sub_08087528: @ 0x08087528 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _08087590 @ =gUnk_03001160 + ldrb r0, [r0, #0x14] + lsrs r0, r0, #1 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x19] + movs r2, #0x3f + adds r0, r2, #0 + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r3] + ldrb r1, [r4, #0x1b] + lsrs r0, r1, #6 + subs r0, #1 + lsls r0, r0, #6 + ands r2, r1 + orrs r2, r0 + strb r2, [r4, #0x1b] + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _08087594 + ldrb r1, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x1a] + ldrb r0, [r4, #0x14] + cmp r0, #1 + bne _08087588 + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x18] +_08087588: + adds r0, r4, #0 + bl sub_08087640 + b _080875DC + .align 2, 0 +_08087590: .4byte gUnk_03001160 +_08087594: + ldr r0, _080875B4 @ =gUnk_02033A90 + ldrb r0, [r0, #1] + movs r1, #4 + cmp r0, #0x10 + bne _080875A2 + movs r1, #0xb5 + lsls r1, r1, #1 +_080875A2: + adds r0, r4, #0 + bl sub_0801D2B4 + ldrb r0, [r4, #0x14] + cmp r0, #1 + beq _080875B8 + cmp r0, #3 + bne _080875CE + b _080875C0 + .align 2, 0 +_080875B4: .4byte gUnk_02033A90 +_080875B8: + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x18] +_080875C0: + ldrb r0, [r4, #0xa] + cmp r0, #0x40 + bne _080875DC + ldrh r0, [r4, #0x32] + adds r0, #4 + strh r0, [r4, #0x32] + b _080875DC +_080875CE: + ldrb r0, [r4, #0xa] + cmp r0, #0x40 + bne _080875DC + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x18] +_080875DC: + adds r0, r4, #0 + movs r1, #3 + bl sub_0805E3A0 + ldrb r1, [r4, #0xb] + lsls r1, r1, #2 + ldrb r0, [r4, #0x14] + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_08004260 + pop {r4, pc} + + thumb_func_start sub_080875F4 +sub_080875F4: @ 0x080875F4 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r5, r4, #0 + adds r5, #0x5a + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808760E + bl sub_0805E780 +_0808760E: + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _08087638 + ldr r0, _0808763C @ =gUnk_03001160 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + ldrb r0, [r5] + subs r0, #1 + subs r1, r1, r0 + adds r3, r4, #0 + adds r3, #0x29 + movs r0, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_08087638: + pop {r4, r5, pc} + .align 2, 0 +_0808763C: .4byte gUnk_03001160 + + thumb_func_start sub_08087640 +sub_08087640: @ 0x08087640 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r0, #0x2e + ldrsh r5, [r4, r0] + movs r1, #0x32 + ldrsh r6, [r4, r1] + ldrb r1, [r4, #0x14] + lsls r1, r1, #1 + ldr r0, _08087684 @ =gUnk_081208C0 + adds r1, r1, r0 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r2, [r4, #0x2e] + adds r0, r0, r2 + strh r0, [r4, #0x2e] + movs r0, #1 + ldrsb r0, [r1, r0] + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + ldr r0, _08087688 @ =gUnk_03000BF0 + ldrh r1, [r0, #4] + ldr r0, _0808768C @ =0x00000403 + movs r2, #0x16 + cmp r1, r0 + bne _08087676 + movs r2, #0x17 +_08087676: + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_0805457C + strh r5, [r4, #0x2e] + strh r6, [r4, #0x32] + pop {r4, r5, r6, pc} + .align 2, 0 +_08087684: .4byte gUnk_081208C0 +_08087688: .4byte gUnk_03000BF0 +_0808768C: .4byte 0x00000403 + + thumb_func_start sub_08087690 +sub_08087690: @ 0x08087690 + push {lr} + ldr r2, _080876A4 @ =gUnk_08120A0C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080876A4: .4byte gUnk_08120A0C + + thumb_func_start sub_080876A8 +sub_080876A8: @ 0x080876A8 + push {lr} + mov ip, r0 + movs r0, #1 + mov r1, ip + strb r0, [r1, #0xc] + movs r0, #0xb0 + lsls r0, r0, #0xa + str r0, [r1, #0x20] + ldrb r2, [r1, #0x14] + lsls r0, r2, #2 + movs r1, #0x10 + eors r0, r1 + mov r3, ip + strb r0, [r3, #0x15] + lsls r2, r2, #0x18 + cmp r2, #0 + bne _080876E2 + adds r3, #0x29 + ldrb r2, [r3] + lsls r1, r2, #0x1d + lsrs r1, r1, #0x1d + subs r1, #1 + movs r0, #7 + ands r1, r0 + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080876E2: + ldr r1, _08087760 @ =gUnk_08120A20 + mov r2, ip + ldrb r0, [r2, #0x14] + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r3, [r2, #0x2e] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + ldrb r0, [r2, #0x14] + adds r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r2, #0x32] + adds r0, r0, r1 + strh r0, [r2, #0x32] + ldr r3, _08087764 @ =gUnk_08120A18 + ldrb r0, [r2, #0xf] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0, #3] + mov r0, ip + adds r0, #0x60 + strh r1, [r0] + ldrb r0, [r2, #0xf] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0, #1] + movs r0, #0xf + ands r1, r0 + ldrb r2, [r2, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + mov r2, ip + strb r0, [r2, #0x1a] + ldrb r0, [r2, #0xf] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r0, [r0, #2] + str r0, [r2, #0x6c] + ldr r0, _08087768 @ =gUnk_03001160 + adds r0, #0x38 + ldrb r1, [r0] + mov r0, ip + adds r0, #0x38 + strb r1, [r0] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r2, #0x24] + ldrb r0, [r2, #0xf] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0] + mov r0, ip + bl sub_08004260 + pop {pc} + .align 2, 0 +_08087760: .4byte gUnk_08120A20 +_08087764: .4byte gUnk_08120A18 +_08087768: .4byte gUnk_03001160 + + thumb_func_start sub_0808776C +sub_0808776C: @ 0x0808776C + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x6c] + cmp r0, #0 + beq _08087788 + subs r0, #1 + str r0, [r4, #0x6c] + ldr r0, _08087784 @ =gUnk_03003F80 + adds r0, #0x3d + ldrb r0, [r0] + b _08087798 + .align 2, 0 +_08087784: .4byte gUnk_03003F80 +_08087788: + adds r0, r4, #0 + bl sub_080AEFE0 + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 +_08087798: + cmp r0, #0 + bne _080877A0 + movs r0, #2 + strb r0, [r4, #0xc] +_080877A0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080877A4 +sub_080877A4: @ 0x080877A4 + push {r4, lr} + adds r4, r0, #0 + bl sub_080002D0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r0, #0 + cmp r0, #0x25 + beq _080877D0 + cmp r0, #0x25 + bgt _080877C4 + cmp r0, #0x21 + beq _080877CA + cmp r0, #0x24 + beq _080877D6 + b _080877E2 +_080877C4: + cmp r1, #0x30 + beq _080877D6 + b _080877E2 +_080877CA: + adds r0, r4, #0 + movs r1, #0 + b _080877DA +_080877D0: + adds r0, r4, #0 + movs r1, #0xc + b _080877DA +_080877D6: + adds r0, r4, #0 + movs r1, #0xb +_080877DA: + movs r2, #0 + bl sub_080A29AC + b _08087804 +_080877E2: + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _08087804 + cmp r0, #0xf + bne _080877F8 + ldrb r1, [r4, #0xe] + adds r0, r4, #0 + movs r2, #0x80 + bl sub_080A29AC + b _08087804 +_080877F8: + ldrb r1, [r4, #0xb] + ldrb r2, [r4, #0xe] + adds r0, r4, #0 + movs r3, #0 + bl sub_080A2988 +_08087804: + bl sub_0805E780 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808780C +sub_0808780C: @ 0x0808780C + push {lr} + ldr r2, _08087820 @ =gUnk_08120A28 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08087820: .4byte gUnk_08120A28 + + thumb_func_start sub_08087824 +sub_08087824: @ 0x08087824 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #0 + bne _08087836 + adds r0, r4, #0 + bl sub_08016A30 +_08087836: + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #0x13 + strb r0, [r1] + adds r1, #9 + movs r0, #0xff + strb r0, [r1] + subs r1, #6 + movs r0, #0xa9 + strb r0, [r1] + adds r1, #1 + movs r0, #0x16 + strb r0, [r1] + ldr r0, _08087884 @ =gUnk_08120A54 + ldr r0, [r0] + str r0, [r4, #0x48] + subs r1, #5 + movs r0, #0x8b + strb r0, [r1] + adds r0, r4, #0 + bl sub_080878CC + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0801766C + movs r0, #0xfd + bl sub_08004488 + pop {r4, pc} + .align 2, 0 +_08087884: .4byte gUnk_08120A54 + + thumb_func_start sub_08087888 +sub_08087888: @ 0x08087888 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080878A4 + bl sub_0805E780 + b _080878C8 +_080878A4: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _080878C0 + ldr r0, _080878BC @ =gUnk_08120A54 + ldrb r1, [r2] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + str r0, [r4, #0x48] + b _080878C8 + .align 2, 0 +_080878BC: .4byte gUnk_08120A54 +_080878C0: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] +_080878C8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080878CC +sub_080878CC: @ 0x080878CC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x10 + adds r7, r0, #0 + movs r1, #0x2e + ldrsh r0, [r7, r1] + str r0, [sp] + movs r0, #0x32 + ldrsh r2, [r7, r0] + str r2, [sp, #4] + adds r0, r7, #0 + adds r0, #0x38 + ldrb r0, [r0] + mov r8, r0 + movs r0, #0x10 + rsbs r0, r0, #0 + mov r1, r8 + lsls r1, r1, #0x18 + str r1, [sp, #8] +_080878F8: + movs r2, #0x10 + rsbs r2, r2, #0 + mov sb, r2 + ldr r1, [sp] + adds r1, r1, r0 + mov sl, r1 + adds r0, #0x10 + str r0, [sp, #0xc] + mov r6, sl +_0808790A: + ldr r2, _0808795C @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r0, r6, r0 + lsrs r4, r0, #4 + movs r0, #0x3f + ands r4, r0 + ldr r5, [sp, #4] + add r5, sb + ldrh r0, [r2, #8] + subs r0, r5, r0 + lsrs r0, r0, #4 + movs r1, #0x3f + ands r0, r1 + lsls r0, r0, #6 + orrs r4, r0 + adds r0, r4, #0 + ldr r2, [sp, #8] + lsrs r1, r2, #0x18 + bl sub_080002C8 + cmp r0, #0x2e + bne _08087970 + adds r0, r4, #0 + mov r1, r8 + bl sub_080002B0 + adds r1, r0, #0 + movs r0, #0xda + lsls r0, r0, #2 + cmp r1, r0 + bhi _08087960 + subs r0, #1 + cmp r1, r0 + blo _08087960 + adds r0, r7, #0 + movs r1, #3 + adds r2, r6, #0 + adds r3, r5, #0 + bl sub_08008796 + b _0808797C + .align 2, 0 +_0808795C: .4byte gUnk_03000BF0 +_08087960: + ldr r0, _0808796C @ =0x00004022 + adds r1, r4, #0 + mov r2, r8 + bl sub_0800015E + b _0808797C + .align 2, 0 +_0808796C: .4byte 0x00004022 +_08087970: + adds r0, r7, #0 + movs r1, #3 + mov r2, sl + adds r3, r5, #0 + bl sub_08008796 +_0808797C: + movs r0, #0x10 + add sb, r0 + mov r1, sb + cmp r1, #0x10 + ble _0808790A + ldr r0, [sp, #0xc] + cmp r0, #0x10 + ble _080878F8 + add sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08087998 +sub_08087998: @ 0x08087998 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080879C0 @ =gUnk_08120A68 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080879C4 + subs r0, #1 + strb r0, [r4, #0xe] + b _080879EA + .align 2, 0 +_080879C0: .4byte gUnk_08120A68 +_080879C4: + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0xa + bne _080879D8 + adds r0, r4, #0 + movs r1, #0xd + bl sub_08004260 + b _080879EA +_080879D8: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080879EA + bl sub_0805E780 +_080879EA: + movs r1, #0x24 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _08087A0C + adds r0, r4, #0 + bl sub_0806F69C + ldrh r1, [r4, #0x24] + movs r2, #0x24 + ldrsh r0, [r4, r2] + cmp r0, #0x10 + ble _08087A08 + adds r0, r1, #0 + subs r0, #0x10 + b _08087A0A +_08087A08: + movs r0, #0 +_08087A0A: + strh r0, [r4, #0x24] +_08087A0C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08087A10 +sub_08087A10: @ 0x08087A10 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _08087A26 + adds r0, r4, #0 + movs r1, #3 + bl sub_0801D2B4 +_08087A26: + ldrb r0, [r4, #0xa] + cmp r0, #2 + bls _08087A3C + ldr r0, _08087A4C @ =gUnk_08120A78 + ldrb r1, [r4, #0xa] + subs r1, #3 + adds r1, r1, r0 + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_0801D2B4 +_08087A3C: + ldrb r0, [r4, #0xa] + cmp r0, #4 + bhi _08087AF0 + lsls r0, r0, #2 + ldr r1, _08087A50 @ =_08087A54 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08087A4C: .4byte gUnk_08120A78 +_08087A50: .4byte _08087A54 +_08087A54: @ jump table + .4byte _08087A76 @ case 0 + .4byte _08087AF0 @ case 1 + .4byte _08087AA0 @ case 2 + .4byte _08087A76 @ case 3 + .4byte _08087A68 @ case 4 +_08087A68: + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 +_08087A76: + ldrb r1, [r4, #0x10] + movs r0, #0x80 + movs r2, #0 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x45 + movs r0, #1 + strb r0, [r1] + subs r1, #9 + movs r0, #7 + strb r0, [r1] + adds r1, #3 + movs r0, #0xaa + strb r0, [r1] + subs r1, #4 + movs r0, #0xe + strb r0, [r1] + ldr r0, _08087AE4 @ =gUnk_08120A8C + str r0, [r4, #0x48] + strb r2, [r4, #0x1c] +_08087AA0: + bl sub_08000E50 + ldr r2, _08087AE8 @ =gUnk_08120A7A + movs r3, #3 + adds r1, r0, #0 + ands r1, r3 + adds r1, r1, r2 + ldrb r1, [r1] + strb r1, [r4, #0xe] + lsrs r2, r0, #8 + ands r2, r3 + movs r1, #0x10 + ands r1, r0 + cmp r1, #0 + beq _08087AC0 + rsbs r2, r2, #0 +_08087AC0: + ldrh r0, [r4, #0x2e] + adds r0, r0, r2 + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x32] + adds r0, r0, r2 + strh r0, [r4, #0x32] + ldr r0, _08087AEC @ =gUnk_03001160 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + adds r0, r4, #0 + movs r1, #0xa + bl sub_08004260 + b _08087AF8 + .align 2, 0 +_08087AE4: .4byte gUnk_08120A8C +_08087AE8: .4byte gUnk_08120A7A +_08087AEC: .4byte gUnk_03001160 +_08087AF0: + adds r0, r4, #0 + movs r1, #0x10 + bl sub_08004260 +_08087AF8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08087AFC +sub_08087AFC: @ 0x08087AFC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08087B56 + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x16 + beq _08087B3C + cmp r0, #0x16 + bgt _08087B1E + cmp r0, #0x13 + beq _08087B4E + b _08087B56 +_08087B1E: + cmp r0, #0x1c + bgt _08087B56 + cmp r0, #0x1b + blt _08087B56 + ldr r1, [r4, #0x4c] + adds r0, r1, #0 + adds r0, #0x84 + ldr r0, [r0] + adds r1, #0x80 + ldr r1, [r1] + ldr r2, [r4, #0x2c] + ldr r3, [r4, #0x30] + bl sub_080045D4 + b _08087B44 +_08087B3C: + ldr r0, [r4, #0x4c] + adds r1, r4, #0 + bl sub_080045C4 +_08087B44: + strb r0, [r4, #0x15] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + b _08087B56 +_08087B4E: + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_08087B56: + pop {r4, pc} + + thumb_func_start sub_08087B58 +sub_08087B58: @ 0x08087B58 + push {lr} + adds r2, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08087B80 + ldr r0, _08087B7C @ =gUnk_08120A80 + ldrb r1, [r2, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _08087B84 + .align 2, 0 +_08087B7C: .4byte gUnk_08120A80 +_08087B80: + movs r0, #1 + strb r0, [r2, #0xc] +_08087B84: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08087B88 +sub_08087B88: @ 0x08087B88 + adds r2, r0, #0 + adds r2, #0x46 + movs r1, #0x80 + lsls r1, r1, #1 + strh r1, [r2] + movs r1, #1 + strb r1, [r0, #0xd] + strb r1, [r0, #0x1d] + bx lr + .align 2, 0 + + thumb_func_start sub_08087B9C +sub_08087B9C: @ 0x08087B9C + push {lr} + bl sub_0806F3E4 + cmp r0, #0 + beq _08087BAA + bl sub_0805E780 +_08087BAA: + pop {pc} + + thumb_func_start sub_08087BAC +sub_08087BAC: @ 0x08087BAC + push {lr} + ldr r2, _08087BC0 @ =gUnk_08120A94 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08087BC0: .4byte gUnk_08120A94 + + thumb_func_start sub_08087BC4 +sub_08087BC4: @ 0x08087BC4 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + adds r0, #1 + movs r5, #0 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + cmp r0, #1 + beq _08087C04 + cmp r0, #1 + bgt _08087BE0 + cmp r0, #0 + beq _08087BEA + b _08087CA6 +_08087BE0: + cmp r0, #2 + beq _08087C64 + cmp r0, #3 + beq _08087C7C + b _08087CA6 +_08087BEA: + movs r0, #0x5e + bl sub_0807CBD0 + cmp r0, #0 + beq _08087C16 + adds r1, r4, #0 + adds r1, #0x7a + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080787B4 + b _08087C1C +_08087C04: + movs r0, #0x22 + movs r1, #3 + movs r2, #0 + bl sub_080A2960 + cmp r0, #0 + beq _08087C16 + str r4, [r0, #0x50] + str r0, [r4, #0x54] +_08087C16: + adds r0, r4, #0 + adds r0, #0x7a + strb r5, [r0] +_08087C1C: + ldrb r0, [r4, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _08087C60 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r4, #0 + adds r0, #0x78 + strh r1, [r0] + adds r0, r4, #0 + bl sub_08087F58 + b _08087CA6 + .align 2, 0 +_08087C60: .4byte gUnk_03000BF0 +_08087C64: + adds r0, r4, #0 + adds r0, #0x7a + strb r5, [r0] + adds r0, r4, #0 + movs r1, #7 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + b _08087CA6 +_08087C7C: + movs r0, #0x1e + strb r0, [r4, #0xe] + strb r5, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x7a + strb r5, [r0] + adds r0, #1 + strb r5, [r0] + adds r0, #5 + strb r5, [r0] + adds r0, r4, #0 + bl sub_0808804C + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 +_08087CA6: + pop {r4, r5, pc} + + thumb_func_start sub_08087CA8 +sub_08087CA8: @ 0x08087CA8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x7a + ldrb r0, [r5] + cmp r0, #1 + beq _08087CCA + cmp r0, #1 + bgt _08087D02 + cmp r0, #0 + bne _08087D02 + movs r0, #1 + strb r0, [r5] + adds r0, r4, #0 + bl sub_080787B4 + b _08087D1A +_08087CCA: + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08087D1A + movs r0, #0 + strb r0, [r1] + bl sub_080791D0 + movs r0, #0x5e + bl sub_0807CBD0 + cmp r0, #0 + beq _08087CFA + movs r0, #2 + strb r0, [r5] + bl sub_0807CD10 + movs r0, #7 + movs r1, #0xff + bl sub_080A7138 + b _08087D1A +_08087CFA: + movs r0, #5 + bl sub_0807CD10 + b _08087D1A +_08087D02: + movs r0, #2 + bl sub_0807CC3C + cmp r0, #0 + bne _08087D1A + adds r1, r4, #0 + adds r1, #0x7a + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080787B4 +_08087D1A: + pop {r4, r5, pc} + + thumb_func_start sub_08087D1C +sub_08087D1C: @ 0x08087D1C + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r5, #0 + adds r4, #0x7a + ldrb r0, [r4] + cmp r0, #1 + beq _08087D60 + cmp r0, #1 + bgt _08087D34 + cmp r0, #0 + beq _08087D3A + b _08087DB0 +_08087D34: + cmp r0, #2 + beq _08087D5A + b _08087DB0 +_08087D3A: + movs r0, #0 + bl sub_0807CC3C + cmp r0, #0 + beq _08087DB0 + movs r0, #0x5e + bl sub_0807CBD0 + cmp r0, #0 + beq _08087D54 + movs r0, #1 + strb r0, [r4] + b _08087DB0 +_08087D54: + movs r0, #2 + strb r0, [r4] + b _08087DB0 +_08087D5A: + movs r0, #0x5e + bl sub_0807CCB4 +_08087D60: + adds r1, r5, #0 + adds r1, #0x7a + movs r0, #0 + strb r0, [r1] + ldr r0, [r5, #0x54] + bl sub_08088328 + movs r0, #0 + bl sub_0807CD8C + movs r0, #0x22 + movs r1, #2 + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _08087DAA + str r5, [r4, #0x50] + adds r0, r5, #0 + adds r0, #0x7d + ldrb r0, [r0] + strb r0, [r4, #0xf] + ldr r1, _08087DB4 @ =gUnk_080FC3E4 + ldrb r0, [r4, #0xf] + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r0, [r0, #7] + strb r0, [r4, #0xb] + movs r2, #0x80 + lsls r2, r2, #0xc + movs r3, #0xe0 + lsls r3, r3, #0xb + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA48 +_08087DAA: + ldr r0, _08087DB8 @ =0x00000111 + bl sub_08004488 +_08087DB0: + pop {r4, r5, pc} + .align 2, 0 +_08087DB4: .4byte gUnk_080FC3E4 +_08087DB8: .4byte 0x00000111 + + thumb_func_start sub_08087DBC +sub_08087DBC: @ 0x08087DBC + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r2, r4, #0 + adds r2, #0x7a + ldrb r0, [r2] + cmp r0, #1 + beq _08087E10 + cmp r0, #1 + bgt _08087E3C + cmp r0, #0 + bne _08087E3C + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08087E5A + movs r0, #1 + strb r0, [r2] + movs r0, #0x28 + strb r0, [r4, #0xe] + ldr r1, _08087E0C @ =gUnk_08120AA8 + ldrb r0, [r4, #0xb] + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_0801D2B4 + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + movs r0, #0x88 + lsls r0, r0, #1 + bl sub_080A3268 + b _08087E5A + .align 2, 0 +_08087E0C: .4byte gUnk_08120AA8 +_08087E10: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08087E5A + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08087E5A + movs r0, #2 + strb r0, [r2] + bl sub_0807CD10 + ldrb r1, [r4, #0xf] + movs r0, #7 + bl sub_080A7138 + b _08087E5A +_08087E3C: + movs r0, #2 + bl sub_0807CC3C + cmp r0, #0 + bne _08087E5A + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + movs r0, #4 + bl sub_0807CD8C + bl sub_0805E780 +_08087E5A: + pop {r4, pc} + + thumb_func_start sub_08087E5C +sub_08087E5C: @ 0x08087E5C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x7a + ldrb r1, [r5] + cmp r1, #1 + beq _08087EAC + cmp r1, #1 + bgt _08087E74 + cmp r1, #0 + beq _08087E7A + b _08087F4E +_08087E74: + cmp r1, #2 + beq _08087F24 + b _08087F4E +_08087E7A: + adds r0, r4, #0 + adds r0, #0x7b + ldrb r0, [r0] + cmp r0, #4 + bne _08087EA4 + movs r0, #1 + bl sub_0807CC3C + cmp r0, #0 + beq _08087F4E + movs r0, #1 + strb r0, [r5] + adds r1, r4, #0 + adds r1, #0x81 + strb r0, [r1] + bl sub_0807CD8C + adds r0, r4, #0 + bl sub_0808826C + b _08087F1C +_08087EA4: + adds r0, r4, #0 + bl sub_080880D8 + b _08087F4E +_08087EAC: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08087EB6 + subs r0, #1 + strb r0, [r4, #0xe] +_08087EB6: + ldr r6, _08087ED4 @ =gUnk_03000FF0 + ldrh r0, [r6, #2] + ands r1, r0 + cmp r1, #0 + beq _08087ED8 + movs r0, #0x6a + bl sub_080A3268 + movs r0, #2 + strb r0, [r5] + movs r0, #0x3c + strb r0, [r4, #0xe] + bl sub_08050384 + b _08087F4E + .align 2, 0 +_08087ED4: .4byte gUnk_03000FF0 +_08087ED8: + adds r2, r4, #0 + adds r2, #0x81 + ldrb r7, [r2] + ldrh r1, [r6] + movs r0, #0x80 + lsls r0, r0, #1 + ands r0, r1 + movs r3, #1 + adds r5, r2, #0 + cmp r0, #0 + beq _08087EF0 + movs r3, #0xa +_08087EF0: + ldrh r1, [r6, #4] + ldr r0, _08087F00 @ =0xFFFFFEFF + ands r1, r0 + cmp r1, #0x40 + beq _08087F04 + cmp r1, #0x80 + beq _08087F0E + b _08087F16 + .align 2, 0 +_08087F00: .4byte 0xFFFFFEFF +_08087F04: + adds r0, r4, #0 + adds r1, r3, #0 + bl sub_08087F94 + b _08087F16 +_08087F0E: + rsbs r1, r3, #0 + adds r0, r4, #0 + bl sub_08087F94 +_08087F16: + ldrb r5, [r5] + cmp r7, r5 + beq _08087F4E +_08087F1C: + adds r0, r4, #0 + bl sub_080882A8 + b _08087F4E +_08087F24: + movs r0, #0 + strb r0, [r5] + adds r1, r4, #0 + adds r1, #0x7b + movs r0, #4 + strb r0, [r1] + movs r0, #3 + bl sub_0807CD10 + ldr r0, _08087F50 @ =0x0000431A + bl sub_08056378 + ldr r1, _08087F54 @ =gUnk_02000050 + movs r0, #1 + strb r0, [r1, #6] + movs r0, #0xc + strb r0, [r1, #7] + adds r0, r4, #0 + adds r0, #0x81 + ldrb r0, [r0] + str r0, [r1, #0x10] +_08087F4E: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08087F50: .4byte 0x0000431A +_08087F54: .4byte gUnk_02000050 + + thumb_func_start sub_08087F58 +sub_08087F58: @ 0x08087F58 + push {r4, r5, lr} + ldrb r1, [r0, #0xa] + cmp r1, #1 + bgt _08087F8C + cmp r1, #0 + blt _08087F8C + ldr r5, _08087F90 @ =0x00004022 + adds r4, r0, #0 + adds r4, #0x78 + ldrh r1, [r4] + subs r1, #1 + adds r0, r5, #0 + movs r2, #1 + bl sub_0800015E + ldrh r1, [r4] + adds r0, r5, #0 + movs r2, #1 + bl sub_0800015E + ldrh r1, [r4] + adds r1, #1 + adds r0, r5, #0 + movs r2, #1 + bl sub_0800015E +_08087F8C: + pop {r4, r5, pc} + .align 2, 0 +_08087F90: .4byte 0x00004022 + + thumb_func_start sub_08087F94 +sub_08087F94: @ 0x08087F94 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r4, r1, #0 + movs r0, #0x5f + bl sub_0807CBD0 + cmp r0, #0 + bne _08088014 + adds r0, r5, #0 + adds r0, #0x83 + movs r1, #0 + ldrsb r1, [r0, r1] + mov ip, r1 + adds r3, r1, r4 + adds r7, r0, #0 + cmp r4, #0 + bge _08087FEA + adds r2, r5, #0 + adds r2, #0x82 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r3, r0 + bge _08087FD6 + movs r1, #0 + ldrsb r1, [r7, r1] + ldrb r3, [r2] + cmp r1, r0 + beq _08088014 + strb r3, [r7] + adds r1, r5, #0 + adds r1, #0x81 + movs r0, #1 + b _08087FE0 +_08087FD6: + strb r3, [r7] + adds r1, r5, #0 + adds r1, #0x81 + ldrb r0, [r1] + adds r0, r0, r4 +_08087FE0: + strb r0, [r1] + movs r0, #0x69 + bl sub_080A3268 + b _08088032 +_08087FEA: + adds r1, r5, #0 + adds r1, #0x81 + ldrb r6, [r1] + adds r2, r6, r4 + ldr r0, _0808801C @ =gUnk_02002A40 + adds r0, #0xc2 + ldrh r0, [r0] + cmp r2, r0 + ble _08088008 + cmp r0, r6 + beq _08088014 + adds r2, r0, #0 + subs r4, r2, r6 + mov r0, ip + adds r3, r0, r4 +_08088008: + cmp r3, #0x64 + ble _08088028 + movs r0, #0 + ldrsb r0, [r7, r0] + cmp r0, #0x64 + bne _08088020 +_08088014: + adds r0, r5, #0 + bl sub_08088034 + b _08088032 + .align 2, 0 +_0808801C: .4byte gUnk_02002A40 +_08088020: + movs r3, #0x64 + mov r0, ip + subs r4, r3, r0 + adds r2, r6, r4 +_08088028: + strb r3, [r7] + strb r2, [r1] + movs r0, #0x69 + bl sub_080A3268 +_08088032: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08088034 +sub_08088034: @ 0x08088034 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + cmp r0, #0 + bne _08088048 + movs r0, #0x14 + strb r0, [r1, #0xe] + movs r0, #0x6d + bl sub_080A3268 +_08088048: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808804C +sub_0808804C: @ 0x0808804C + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 + ldr r0, _08088060 @ =gUnk_02002A40 + ldrb r0, [r0, #6] + cmp r0, #0 + beq _08088064 + movs r4, #9 + b _080880D0 + .align 2, 0 +_08088060: .4byte gUnk_02002A40 +_08088064: + movs r0, #6 + bl sub_0807CC30 + cmp r0, #0 + beq _08088072 + movs r4, #7 + b _080880D0 +_08088072: + movs r0, #0x80 + lsls r0, r0, #4 + movs r1, #0x77 + bl sub_0807CB10 + cmp r0, #0 + beq _08088084 + movs r4, #6 + b _080880D0 +_08088084: + movs r0, #0xc0 + lsls r0, r0, #2 + movs r1, #0x32 + bl sub_0807CB10 + cmp r0, #0 + beq _08088096 + movs r4, #5 + b _080880D0 +_08088096: + movs r0, #5 + bl sub_0807CC30 + cmp r0, #0 + beq _080880A4 + movs r4, #4 + b _080880D0 +_080880A4: + movs r0, #4 + bl sub_0807CC30 + cmp r0, #0 + beq _080880B2 + movs r4, #3 + b _080880D0 +_080880B2: + movs r0, #0x80 + lsls r0, r0, #1 + movs r1, #0x9c + bl sub_0807CB10 + cmp r0, #0 + beq _080880C4 + movs r4, #2 + b _080880D0 +_080880C4: + movs r0, #3 + bl sub_0807CC30 + cmp r0, #0 + beq _080880D0 + movs r4, #1 +_080880D0: + adds r0, r5, #0 + adds r0, #0x7c + strb r4, [r0] + pop {r4, r5, pc} + + thumb_func_start sub_080880D8 +sub_080880D8: @ 0x080880D8 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r0, #0x7b + ldrb r1, [r0] + ldr r0, _08088158 @ =gUnk_08120AAC + adds r6, r1, r0 + ldrb r4, [r6] + ldrb r0, [r6, #1] + cmp r4, r0 + bhs _0808810A + adds r5, r7, #0 + adds r5, #0x80 +_080880F0: + adds r0, r7, #0 + adds r1, r4, #0 + bl sub_08088160 + cmp r0, #0 + beq _08088102 + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] +_08088102: + adds r4, #1 + ldrb r0, [r6, #1] + cmp r4, r0 + blo _080880F0 +_0808810A: + adds r1, r7, #0 + adds r1, #0x7b + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bne _08088156 + ldr r5, _0808815C @ =gUnk_02002A40 + adds r0, r7, #0 + adds r0, #0x80 + ldrb r1, [r5, #9] + adds r4, r0, #0 + ldrb r0, [r4] + cmp r1, r0 + beq _0808813A + cmp r1, #0 + beq _08088136 + movs r0, #6 + bl sub_0807CD10 +_08088136: + ldrb r0, [r4] + strb r0, [r5, #9] +_0808813A: + movs r0, #0x5f + bl sub_0807CBD0 + cmp r0, #0 + beq _08088156 + ldr r0, _0808815C @ =gUnk_02002A40 + adds r0, #0xb0 + ldrb r1, [r4] + ldrb r0, [r0] + cmp r1, r0 + beq _08088156 + movs r0, #0x5f + bl sub_0807CD34 +_08088156: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08088158: .4byte gUnk_08120AAC +_0808815C: .4byte gUnk_02002A40 + + thumb_func_start sub_08088160 +sub_08088160: @ 0x08088160 + push {r4, lr} + adds r2, r0, #0 + lsls r1, r1, #3 + ldr r0, _08088188 @ =gUnk_080FC3E4 + adds r1, r1, r0 + movs r4, #0 + adds r0, r2, #0 + adds r0, #0x7c + ldrb r0, [r0] + ldrb r3, [r1, #6] + cmp r0, r3 + bhs _08088266 + ldrb r0, [r1, #6] + cmp r0, #0x10 + beq _0808819E + cmp r0, #0x10 + bgt _0808818C + cmp r0, #8 + beq _08088194 + b _08088268 + .align 2, 0 +_08088188: .4byte gUnk_080FC3E4 +_0808818C: + cmp r0, #0x20 + beq _080881A6 + cmp r0, #0x40 + bne _08088268 +_08088194: + ldr r0, [r1] + ldrh r1, [r1, #4] + bl sub_0807CB10 + b _08088262 +_0808819E: + ldrh r0, [r1, #4] + bl sub_0801E7F4 + b _08088262 +_080881A6: + ldrh r0, [r1, #4] + cmp r0, #5 + bhi _08088268 + lsls r0, r0, #2 + ldr r1, _080881B8 @ =_080881BC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080881B8: .4byte _080881BC +_080881BC: @ jump table + .4byte _080881D4 @ case 0 + .4byte _080881F0 @ case 1 + .4byte _080881FE @ case 2 + .4byte _0808821A @ case 3 + .4byte _08088236 @ case 4 + .4byte _08088252 @ case 5 +_080881D4: + movs r0, #0x20 + bl sub_0801E7F4 + cmp r0, #0 + bne _08088266 + movs r0, #0x10 + bl sub_0801E7F4 + cmp r0, #0 + bne _08088266 + movs r0, #0x19 +_080881EA: + bl sub_0801E7F4 + b _08088262 +_080881F0: + adds r0, r2, #0 + adds r0, #0x7c + ldrb r0, [r0] + cmp r0, #4 + bls _08088268 + movs r0, #0x28 + b _080881EA +_080881FE: + movs r0, #0x54 + bl sub_0801E7F4 + cmp r0, #0 + bne _08088266 + movs r0, #0x56 + bl sub_0801E7F4 + cmp r0, #0 + bne _08088266 + movs r0, #0x3d + bl sub_0801E7F4 + b _08088262 +_0808821A: + movs r0, #0x3b + bl sub_0801E7F4 + cmp r0, #0 + bne _08088266 + movs r0, #0x4a + bl sub_0801E7F4 + cmp r0, #0 + bne _08088266 + movs r0, #0xd + bl sub_0801E7F4 + b _08088262 +_08088236: + movs r0, #0x49 + bl sub_0801E7F4 + cmp r0, #0 + bne _08088266 + movs r0, #0x55 + bl sub_0801E7F4 + cmp r0, #0 + bne _08088266 + movs r0, #0x3c + bl sub_0801E7F4 + b _08088262 +_08088252: + adds r0, r2, #0 + adds r0, #0x7c + ldrb r0, [r0] + cmp r0, #1 + bls _08088268 + movs r0, #0x12 + bl sub_0807CC30 +_08088262: + cmp r0, #0 + beq _08088268 +_08088266: + movs r4, #1 +_08088268: + adds r0, r4, #0 + pop {r4, pc} + + thumb_func_start sub_0808826C +sub_0808826C: @ 0x0808826C + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0x64 + adds r0, #0x80 + ldrb r1, [r0] + ldr r0, _080882A4 @ =gUnk_02002A40 + adds r0, #0xb0 + ldrb r0, [r0] + subs r0, r1, r0 + muls r4, r0, r4 + adds r0, r4, #0 + bl __divsi3 + adds r4, r0, #0 + cmp r4, #0 + bne _08088298 + movs r0, #0x5f + bl sub_0807CBD0 + cmp r0, #0 + bne _08088298 + movs r4, #1 +_08088298: + adds r0, r5, #0 + adds r0, #0x83 + strb r4, [r0] + subs r0, #1 + strb r4, [r0] + pop {r4, r5, pc} + .align 2, 0 +_080882A4: .4byte gUnk_02002A40 + + thumb_func_start sub_080882A8 +sub_080882A8: @ 0x080882A8 + push {r4, r5, r6, lr} + adds r6, r0, #0 + bl sub_08050384 + adds r0, r6, #0 + adds r0, #0x81 + ldrb r0, [r0] + ldr r4, _080882F4 @ =gUnk_020227E8 + ldr r5, _080882F8 @ =0x00202020 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_08057044 + adds r0, r6, #0 + adds r0, #0x83 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r4, #8 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_08057044 + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + cmp r0, #0 + bne _08088304 + ldr r1, _080882FC @ =gUnk_08120AE4 + ldrb r0, [r6, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + ldr r1, _08088300 @ =gUnk_08120AB4 + bl sub_0805F46C + b _08088314 + .align 2, 0 +_080882F4: .4byte gUnk_020227E8 +_080882F8: .4byte 0x00202020 +_080882FC: .4byte gUnk_08120AE4 +_08088300: .4byte gUnk_08120AB4 +_08088304: + ldr r1, _0808831C @ =gUnk_08120AE4 + ldrb r0, [r6, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + ldr r1, _08088320 @ =gUnk_08120ACC + bl sub_0805F46C +_08088314: + ldr r1, _08088324 @ =gUnk_03000F50 + movs r0, #1 + strh r0, [r1, #0xe] + pop {r4, r5, r6, pc} + .align 2, 0 +_0808831C: .4byte gUnk_08120AE4 +_08088320: .4byte gUnk_08120ACC +_08088324: .4byte gUnk_03000F50 + + thumb_func_start sub_08088328 +sub_08088328: @ 0x08088328 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + movs r4, #0x7f +_08088332: + bl sub_08000E50 + adds r5, r0, #0 + ands r5, r4 + cmp r5, #0x63 + bhi _08088332 + adds r0, r6, #0 + adds r0, #0x81 + ldrb r0, [r0] + rsbs r0, r0, #0 + bl sub_080542C0 + bl sub_08000E50 + movs r1, #0x7f + ands r1, r0 + adds r4, r1, #1 + adds r7, r4, #0 + adds r0, r6, #0 + bl sub_08088424 + adds r0, r6, #0 + adds r0, #0x83 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r5, r0 + bhs _080883A4 + movs r5, #0 + movs r0, #0x7d + adds r0, r0, r6 + mov r8, r0 +_08088372: + cmp r5, #0 + bne _080883E2 + cmp r4, #0x88 + bls _0808837C + movs r4, #1 +_0808837C: + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_08088160 + cmp r0, #0 + beq _0808839C + ldr r0, _08088398 @ =gUnk_02002B0E + adds r1, r4, #0 + bl sub_0801D5A8 + cmp r0, #0 + bne _0808839C + movs r5, #1 + b _0808839E + .align 2, 0 +_08088398: .4byte gUnk_02002B0E +_0808839C: + adds r4, #1 +_0808839E: + cmp r7, r4 + bne _08088372 + b _080883DE +_080883A4: + movs r5, #1 + movs r0, #0x7d + adds r0, r0, r6 + mov r8, r0 +_080883AC: + cmp r5, #0 + beq _08088414 + cmp r4, #0x88 + bls _080883B6 + movs r4, #1 +_080883B6: + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_08088160 + cmp r0, #0 + beq _080883D8 + ldr r0, _080883D4 @ =gUnk_02002B0E + adds r1, r4, #0 + bl sub_0801D5A8 + cmp r0, #0 + beq _080883D8 + movs r5, #0 + b _080883DA + .align 2, 0 +_080883D4: .4byte gUnk_02002B0E +_080883D8: + adds r4, #1 +_080883DA: + cmp r7, r4 + bne _080883AC +_080883DE: + cmp r5, #0 + beq _08088414 +_080883E2: + ldr r0, _08088404 @ =gUnk_02002A40 + adds r0, #0xb0 + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + adds r0, r6, #0 + adds r0, #0x80 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldrb r0, [r0] + cmp r1, r0 + beq _08088408 + movs r0, #7 + bl sub_0807CD10 + b _08088414 + .align 2, 0 +_08088404: .4byte gUnk_02002A40 +_08088408: + movs r0, #0x5f + bl sub_0807CCB4 + movs r0, #8 + bl sub_0807CD10 +_08088414: + mov r0, r8 + strb r4, [r0] + ldr r0, [r6, #0x50] + adds r0, #0x7d + strb r4, [r0] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08088424 +sub_08088424: @ 0x08088424 + push {lr} + adds r1, r0, #0 + ldr r0, _08088440 @ =gUnk_02002A40 + adds r0, #0xb0 + ldrb r0, [r0] + cmp r0, #0x31 + bhi _08088444 + adds r1, #0x83 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0xe + bgt _08088476 + movs r0, #0xf + b _08088474 + .align 2, 0 +_08088440: .4byte gUnk_02002A40 +_08088444: + cmp r0, #0x4f + bhi _08088456 + adds r1, #0x83 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0xb + bgt _08088476 + movs r0, #0xc + b _08088474 +_08088456: + cmp r0, #0x6d + bhi _08088468 + adds r1, #0x83 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #8 + bgt _08088476 + movs r0, #9 + b _08088474 +_08088468: + adds r1, #0x83 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #5 + bgt _08088476 + movs r0, #6 +_08088474: + strb r0, [r1] +_08088476: + pop {pc} + + thumb_func_start sub_08088478 +sub_08088478: @ 0x08088478 + push {r4, lr} + movs r4, #0 + movs r0, #8 + bl sub_0807CC3C + cmp r0, #0 + bne _080884A4 + movs r0, #7 + bl sub_0807CC3C + cmp r0, #0 + bne _0808849C + ldr r1, _08088498 @ =0x00004322 + movs r4, #1 + b _080884D2 + .align 2, 0 +_08088498: .4byte 0x00004322 +_0808849C: + ldr r1, _080884A0 @ =0x00004325 + b _080884D2 + .align 2, 0 +_080884A0: .4byte 0x00004325 +_080884A4: + ldr r1, _080884C0 @ =gUnk_02002A40 + adds r0, r1, #0 + adds r0, #0xb0 + ldrb r0, [r0] + cmp r0, #0x82 + beq _080884C8 + cmp r0, #0x88 + bne _080884D0 + adds r1, #0xb1 + movs r0, #0xff + strb r0, [r1] + ldr r1, _080884C4 @ =0x00004329 + b _080884D2 + .align 2, 0 +_080884C0: .4byte gUnk_02002A40 +_080884C4: .4byte 0x00004329 +_080884C8: + ldrb r0, [r1, #6] + ldr r1, _080884F4 @ =0x00004328 + cmp r0, #0 + beq _080884D2 +_080884D0: + ldr r1, _080884F8 @ =0x00004327 +_080884D2: + adds r0, r1, #0 + bl sub_08056378 + ldr r1, _080884FC @ =gUnk_02000050 + movs r0, #1 + strb r0, [r1, #6] + movs r0, #0xc + strb r0, [r1, #7] + cmp r4, #0 + beq _080884EA + movs r0, #5 + str r0, [r1, #0x10] +_080884EA: + ldr r1, _08088500 @ =gUnk_03001160 + movs r0, #6 + strb r0, [r1, #0x14] + pop {r4, pc} + .align 2, 0 +_080884F4: .4byte 0x00004328 +_080884F8: .4byte 0x00004327 +_080884FC: .4byte gUnk_02000050 +_08088500: .4byte gUnk_03001160 + + thumb_func_start sub_08088504 +sub_08088504: @ 0x08088504 + push {lr} + ldr r0, _08088518 @ =gUnk_02002A40 + adds r0, #0xb0 + ldrb r0, [r0] + cmp r0, #0x82 + beq _08088520 + cmp r0, #0x88 + bne _08088528 + ldr r0, _0808851C @ =0x0000432F + b _0808852A + .align 2, 0 +_08088518: .4byte gUnk_02002A40 +_0808851C: .4byte 0x0000432F +_08088520: + ldr r0, _08088524 @ =0x00004314 + b _0808852A + .align 2, 0 +_08088524: .4byte 0x00004314 +_08088528: + ldr r0, _0808853C @ =0x00004311 +_0808852A: + bl sub_08056378 + ldr r0, _08088540 @ =gUnk_02000050 + movs r1, #1 + strb r1, [r0, #6] + movs r1, #0xc + strb r1, [r0, #7] + pop {pc} + .align 2, 0 +_0808853C: .4byte 0x00004311 +_08088540: .4byte gUnk_02000050 + + thumb_func_start sub_08088544 +sub_08088544: @ 0x08088544 + push {lr} + ldr r0, _08088568 @ =gUnk_02002A40 + adds r0, #0xb0 + ldrb r0, [r0] + ldr r1, _0808856C @ =0x00004315 + cmp r0, #0x82 + beq _08088554 + subs r1, #7 +_08088554: + adds r0, r1, #0 + bl sub_08056378 + ldr r0, _08088570 @ =gUnk_02000050 + movs r1, #1 + strb r1, [r0, #6] + movs r1, #0xc + strb r1, [r0, #7] + pop {pc} + .align 2, 0 +_08088568: .4byte gUnk_02002A40 +_0808856C: .4byte 0x00004315 +_08088570: .4byte gUnk_02000050 + + thumb_func_start sub_08088574 +sub_08088574: @ 0x08088574 + push {lr} + movs r0, #9 + bl sub_0807CC3C + cmp r0, #0 + beq _08088594 + movs r0, #0x5f + bl sub_0807CBD0 + ldr r1, _08088590 @ =0x0000430C + cmp r0, #0 + beq _08088596 + adds r1, #7 + b _08088596 + .align 2, 0 +_08088590: .4byte 0x0000430C +_08088594: + ldr r1, _080885A8 @ =0x0000430B +_08088596: + adds r0, r1, #0 + bl sub_08056378 + ldr r0, _080885AC @ =gUnk_02000050 + movs r1, #1 + strb r1, [r0, #6] + movs r1, #0xc + strb r1, [r0, #7] + pop {pc} + .align 2, 0 +_080885A8: .4byte 0x0000430B +_080885AC: .4byte gUnk_02000050 + + thumb_func_start sub_080885B0 +sub_080885B0: @ 0x080885B0 + push {lr} + movs r0, #8 + bl sub_0807CC3C + cmp r0, #0 + bne _080885E8 + movs r0, #7 + bl sub_0807CC3C + cmp r0, #0 + bne _0808860A + movs r0, #5 + bl sub_080526CC + ldr r0, _080885E0 @ =0x00004326 + bl sub_08056378 + ldr r1, _080885E4 @ =gUnk_02000050 + movs r0, #1 + strb r0, [r1, #6] + movs r0, #0xc + strb r0, [r1, #7] + b _0808860A + .align 2, 0 +_080885E0: .4byte 0x00004326 +_080885E4: .4byte gUnk_02000050 +_080885E8: + ldr r1, _08088618 @ =gUnk_02002A40 + adds r0, r1, #0 + adds r0, #0xb1 + ldrb r0, [r0] + cmp r0, #0 + beq _0808860A + adds r1, #0xbb + movs r0, #1 + strb r0, [r1] + movs r0, #0x3e + movs r1, #0 + movs r2, #0 + bl sub_080A7C00 + movs r0, #0x59 + bl sub_0807CD04 +_0808860A: + movs r0, #8 + bl sub_0807CD8C + movs r0, #7 + bl sub_0807CD8C + pop {pc} + .align 2, 0 +_08088618: .4byte gUnk_02002A40 + + thumb_func_start sub_0808861C +sub_0808861C: @ 0x0808861C + push {r4, lr} + adds r4, r1, #0 + movs r0, #0xa8 + movs r1, #0x54 + movs r2, #0xc + movs r3, #8 + bl sub_0800293E + str r0, [r4, #0x14] + ldr r1, _08088650 @ =gUnk_03001160 + ldrb r0, [r1, #0x14] + cmp r0, #0 + bne _0808863E + movs r2, #0x36 + ldrsh r0, [r1, r2] + cmp r0, #0 + beq _08088642 +_0808863E: + movs r0, #0 + str r0, [r4, #0x14] +_08088642: + ldr r2, _08088654 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, pc} + .align 2, 0 +_08088650: .4byte gUnk_03001160 +_08088654: .4byte gUnk_02033280 + + thumb_func_start sub_08088658 +sub_08088658: @ 0x08088658 + push {r4, lr} + adds r4, r1, #0 + movs r0, #0x78 + movs r1, #0x78 + movs r2, #0x10 + movs r3, #8 + bl sub_0800293E + str r0, [r4, #0x14] + ldr r0, _08088684 @ =gUnk_03001160 + movs r1, #0x36 + ldrsh r0, [r0, r1] + cmp r0, #0 + beq _08088678 + movs r0, #0 + str r0, [r4, #0x14] +_08088678: + ldr r2, _08088688 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, pc} + .align 2, 0 +_08088684: .4byte gUnk_03001160 +_08088688: .4byte gUnk_02033280 + + thumb_func_start sub_0808868C +sub_0808868C: @ 0x0808868C + push {lr} + ldr r2, _080886A0 @ =gUnk_08120B20 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080886A0: .4byte gUnk_08120B20 + + thumb_func_start sub_080886A4 +sub_080886A4: @ 0x080886A4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xa] + movs r6, #3 + adds r0, r6, #0 + ands r0, r1 + strb r0, [r4, #0x14] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #4 + movs r0, #0x48 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x3f + movs r5, #1 + strb r5, [r0] + subs r1, #5 + movs r0, #2 + strb r0, [r1] + ldr r0, _08088700 @ =gUnk_080FD168 + str r0, [r4, #0x48] + adds r0, r4, #0 + adds r0, #0x84 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _08088704 + strb r6, [r4, #0xc] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 + b _08088716 + .align 2, 0 +_08088700: .4byte gUnk_080FD168 +_08088704: + strb r5, [r4, #0xc] + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 +_08088716: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08088718 +sub_08088718: @ 0x08088718 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x95 + beq _08088728 + cmp r0, #0x8e + bne _0808875A +_08088728: + ldr r0, [r4, #0x4c] + ldrb r1, [r0, #0x15] + adds r1, #4 + movs r0, #0x18 + ands r1, r0 + asrs r1, r1, #3 + ldrb r2, [r4, #0x14] + movs r0, #3 + ands r0, r2 + cmp r1, r0 + bne _0808875A + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldr r0, _0808875C @ =0x00000111 + bl sub_08004488 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 +_0808875A: + pop {r4, pc} + .align 2, 0 +_0808875C: .4byte 0x00000111 + + thumb_func_start sub_08088760 +sub_08088760: @ 0x08088760 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808878E + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xe] + lsls r0, r0, #1 + adds r1, r4, #0 + adds r1, #0x70 + strh r0, [r1] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 +_0808878E: + pop {r4, pc} + + thumb_func_start sub_08088790 +sub_08088790: @ 0x08088790 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080887D6 + adds r0, r4, #0 + adds r0, #0x86 + adds r2, r4, #0 + adds r2, #0x84 + ldrh r1, [r0] + adds r5, r0, #0 + ldrh r0, [r2] + cmp r1, r0 + beq _080887BC + ldrh r0, [r2] + bl sub_0807CBE4 + cmp r0, #0 + beq _080887BC + movs r0, #0 + strb r0, [r4, #0xe] + b _080887D6 +_080887BC: + adds r1, r4, #0 + adds r1, #0x70 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080887D6 + movs r0, #4 + strb r0, [r4, #0xc] + ldrh r0, [r5] + bl sub_0807CD48 +_080887D6: + pop {r4, r5, pc} + + thumb_func_start sub_080887D8 +sub_080887D8: @ 0x080887D8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08088802 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 +_08088802: + pop {r4, pc} + + thumb_func_start sub_08088804 +sub_08088804: @ 0x08088804 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _08088828 + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08088828 + ldrb r0, [r4, #0x14] + adds r1, r4, #0 + adds r1, #0x72 + strb r0, [r1] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 +_08088828: + ldr r0, _0808883C @ =gUnk_08120BE0 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_0808883C: .4byte gUnk_08120BE0 + + thumb_func_start sub_08088840 +sub_08088840: @ 0x08088840 + movs r3, #1 + movs r1, #1 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x18] + subs r1, #5 + ands r1, r2 + orrs r1, r3 + strb r1, [r0, #0x18] + adds r3, r0, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r2, #7 + orrs r1, r2 + strb r1, [r3] + ldr r1, _08088868 @ =gUnk_080FD1D4 + str r1, [r0, #0x48] + ldrb r1, [r0, #0x14] + adds r0, #0x72 + strb r1, [r0] + bx lr + .align 2, 0 +_08088868: .4byte gUnk_080FD1D4 + + thumb_func_start sub_0808886C +sub_0808886C: @ 0x0808886C + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_08088938 + adds r4, r0, #0 + adds r0, r5, #0 + bl sub_080889A8 + adds r4, r4, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldrb r1, [r5, #0xa] + adds r0, r1, #2 + cmp r0, r4 + bgt _080888B8 + movs r1, #0 + movs r0, #2 + strb r0, [r5, #0xc] + strb r1, [r5, #0xf] + movs r0, #4 + strb r0, [r5, #0x14] + strh r1, [r5, #0x36] + adds r0, r5, #0 + movs r1, #4 + bl sub_08004260 + adds r0, r5, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + ldr r0, _080888B4 @ =0x0000016B + bl sub_08004488 + b _080888F2 + .align 2, 0 +_080888B4: .4byte 0x0000016B +_080888B8: + ldrb r0, [r5, #0x14] + cmp r4, r0 + bls _080888E4 + adds r0, r1, #1 + cmp r0, r4 + bne _080888D2 + movs r0, #4 + strb r0, [r5, #0xf] + adds r1, r4, #1 + adds r0, r5, #0 + bl sub_08004260 + b _080888DA +_080888D2: + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08004260 +_080888DA: + movs r0, #0x86 + lsls r0, r0, #1 + bl sub_08004488 + b _080888F0 +_080888E4: + cmp r4, r0 + bhs _080888F0 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08004260 +_080888F0: + strb r4, [r5, #0x14] +_080888F2: + pop {r4, r5, pc} + + thumb_func_start sub_080888F4 +sub_080888F4: @ 0x080888F4 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x70 + ldrh r0, [r0] + cmp r0, #0 + beq _08088934 + adds r0, r5, #0 + bl sub_08088938 + adds r4, r0, #0 + adds r0, r5, #0 + bl sub_080889A8 + adds r4, r4, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + ldrb r0, [r5, #0xa] + adds r0, #2 + cmp r0, r4 + ble _08088934 + movs r0, #1 + strb r0, [r5, #0xc] + strb r4, [r5, #0x14] + adds r0, r5, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CD48 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08004260 +_08088934: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08088938 +sub_08088938: @ 0x08088938 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + movs r5, #0 + ldrh r1, [r0, #0x2e] + subs r1, #8 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov ip, r1 + ldrh r1, [r0, #0x32] + subs r1, #8 + lsls r1, r1, #0x10 + lsrs r7, r1, #0x10 + movs r4, #0 + ldr r1, _080889A0 @ =gUnk_02034350 + ldr r2, _080889A4 @ =gUnk_08120BEC + mov r8, r2 + adds r3, r1, #0 + adds r3, #0xac + adds r6, r0, #0 + adds r6, #0x72 +_08088962: + ldr r2, [r3] + cmp r2, #0 + beq _08088990 + ldrh r0, [r2, #0x2e] + mov r1, ip + subs r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x10 + bhi _08088990 + ldrh r0, [r2, #0x32] + subs r0, r0, r7 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x10 + bhi _08088990 + ldrb r0, [r6] + add r0, r8 + ldrb r1, [r0] + adds r0, r2, #0 + adds r0, #0x63 + strb r1, [r0] + adds r5, #1 +_08088990: + adds r3, #4 + adds r4, #1 + cmp r4, #7 + bls _08088962 + adds r0, r5, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080889A0: .4byte gUnk_02034350 +_080889A4: .4byte gUnk_08120BEC + + thumb_func_start sub_080889A8 +sub_080889A8: @ 0x080889A8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r5, #0 + bl sub_08017850 + cmp r0, #0 + beq _080889CA + ldr r1, _08088A40 @ =gUnk_03001160 + ldr r2, _08088A44 @ =gUnk_08120BEC + adds r0, r4, #0 + adds r0, #0x72 + ldrb r0, [r0] + adds r0, r0, r2 + ldrb r0, [r0] + adds r1, #0x63 + strb r0, [r1] + movs r5, #1 +_080889CA: + ldr r0, _08088A48 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + lsls r1, r1, #0xf + ands r0, r1 + cmp r0, #0 + beq _08088A3A + ldr r6, _08088A4C @ =gUnk_03004040 + ldr r1, [r6] + adds r0, r4, #0 + bl sub_080177A0 + cmp r0, #0 + beq _080889FA + ldr r1, [r6] + ldr r2, _08088A44 @ =gUnk_08120BEC + adds r0, r4, #0 + adds r0, #0x72 + ldrb r0, [r0] + adds r0, r0, r2 + ldrb r0, [r0] + adds r1, #0x63 + strb r0, [r1] + adds r5, #1 +_080889FA: + ldr r1, [r6, #4] + adds r0, r4, #0 + bl sub_080177A0 + cmp r0, #0 + beq _08088A1A + ldr r1, [r6, #4] + ldr r2, _08088A44 @ =gUnk_08120BEC + adds r0, r4, #0 + adds r0, #0x72 + ldrb r0, [r0] + adds r0, r0, r2 + ldrb r0, [r0] + adds r1, #0x63 + strb r0, [r1] + adds r5, #1 +_08088A1A: + ldr r1, [r6, #8] + adds r0, r4, #0 + bl sub_080177A0 + cmp r0, #0 + beq _08088A3A + ldr r1, [r6, #8] + ldr r2, _08088A44 @ =gUnk_08120BEC + adds r0, r4, #0 + adds r0, #0x72 + ldrb r0, [r0] + adds r0, r0, r2 + ldrb r0, [r0] + adds r1, #0x63 + strb r0, [r1] + adds r5, #1 +_08088A3A: + adds r0, r5, #0 + pop {r4, r5, r6, pc} + .align 2, 0 +_08088A40: .4byte gUnk_03001160 +_08088A44: .4byte gUnk_08120BEC +_08088A48: .4byte gUnk_03003F80 +_08088A4C: .4byte gUnk_03004040 + + thumb_func_start sub_08088A50 +sub_08088A50: @ 0x08088A50 + push {lr} + ldr r2, _08088A64 @ =gUnk_08120C34 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08088A64: .4byte gUnk_08120C34 + + thumb_func_start sub_08088A68 +sub_08088A68: @ 0x08088A68 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08088AE4 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0x18] + movs r2, #3 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x11] + movs r0, #0x17 + bl sub_0807CC30 + cmp r0, #0 + beq _08088AA0 + ldr r0, _08088A9C @ =gUnk_02002A40 + ldrb r0, [r0, #7] + adds r0, #1 + b _08088AA4 + .align 2, 0 +_08088A9C: .4byte gUnk_02002A40 +_08088AA0: + ldr r0, _08088AD8 @ =gUnk_02002A40 + ldrb r0, [r0, #7] +_08088AA4: + strb r0, [r4, #0x1e] + adds r0, r4, #0 + bl sub_08088BE0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _08088ADC @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + subs r0, r0, r1 + movs r3, #0x32 + ldrsh r1, [r4, r3] + ldrh r2, [r2, #8] + subs r1, r1, r2 + movs r2, #0x80 + movs r3, #0x60 + bl sub_0800293E + cmp r0, #0 + beq _08088B82 + ldr r0, _08088AE0 @ =gUnk_02034350 + ldr r1, [r0, #0x68] + movs r2, #4 + orrs r1, r2 + str r1, [r0, #0x68] + b _08088B82 + .align 2, 0 +_08088AD8: .4byte gUnk_02002A40 +_08088ADC: .4byte gUnk_03000BF0 +_08088AE0: .4byte gUnk_02034350 +_08088AE4: + ldr r5, _08088B70 @ =gUnk_02034350 + ldr r1, [r5, #0x68] + movs r6, #1 + adds r0, r1, #0 + ands r0, r6 + cmp r0, #0 + beq _08088B06 + movs r0, #2 + rsbs r0, r0, #0 + ands r1, r0 + str r1, [r5, #0x68] + strb r6, [r4, #0xe] + ldr r0, _08088B74 @ =gUnk_08120C1C + str r0, [r4, #0x68] + movs r0, #0x8a + bl sub_080A3268 +_08088B06: + ldr r1, [r5, #0x68] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08088B24 + movs r0, #3 + rsbs r0, r0, #0 + ands r1, r0 + str r1, [r5, #0x68] + strb r6, [r4, #0xe] + ldr r0, _08088B78 @ =gUnk_08120C25 + str r0, [r4, #0x68] + movs r0, #0x89 + bl sub_080A3268 +_08088B24: + ldr r1, [r5, #0x68] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08088B42 + movs r0, #5 + rsbs r0, r0, #0 + ands r1, r0 + str r1, [r5, #0x68] + strb r6, [r4, #0xe] + ldr r0, _08088B7C @ =gUnk_08120C2E + str r0, [r4, #0x68] + movs r0, #0x8a + bl sub_080A3268 +_08088B42: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08088B82 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + bne _08088B82 + ldr r1, [r4, #0x68] + ldrb r0, [r1] + adds r2, r4, #0 + adds r2, #0x63 + strb r0, [r2] + adds r1, #1 + ldrb r0, [r1] + cmp r0, #0xff + beq _08088B80 + movs r0, #8 + strb r0, [r4, #0xe] + str r1, [r4, #0x68] + b _08088B82 + .align 2, 0 +_08088B70: .4byte gUnk_02034350 +_08088B74: .4byte gUnk_08120C1C +_08088B78: .4byte gUnk_08120C25 +_08088B7C: .4byte gUnk_08120C2E +_08088B80: + strb r3, [r2] +_08088B82: + adds r5, r4, #0 + adds r5, #0x29 + ldrb r1, [r5] + movs r6, #8 + rsbs r6, r6, #0 + adds r0, r6, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5] + movs r1, #0x2e + ldrsh r0, [r4, r1] + subs r0, #0x50 + movs r2, #0x32 + ldrsh r1, [r4, r2] + subs r1, #0x50 + movs r2, #0xa0 + movs r3, #0x30 + bl sub_0806FBFC + cmp r0, #0 + beq _08088BBA + ldrb r0, [r5] + adds r1, r6, #0 + ands r1, r0 + movs r0, #5 + orrs r1, r0 + strb r1, [r5] +_08088BBA: + movs r3, #0x2e + ldrsh r0, [r4, r3] + subs r0, #0x50 + movs r2, #0x32 + ldrsh r1, [r4, r2] + adds r1, #0x30 + movs r2, #0xa0 + movs r3, #0x30 + bl sub_0806FBFC + cmp r0, #0 + beq _08088BDE + ldrb r0, [r5] + adds r1, r6, #0 + ands r1, r0 + movs r0, #5 + orrs r1, r0 + strb r1, [r5] +_08088BDE: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08088BE0 +sub_08088BE0: @ 0x08088BE0 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x15 + bl sub_0807CBD0 + cmp r0, #0 + bne _08088C1C + movs r3, #0x78 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl sub_08088C78 + adds r0, r4, #0 + movs r1, #4 + movs r2, #0x15 + movs r3, #0 + bl sub_08088C78 + adds r2, r0, #0 + cmp r2, #0 + beq _08088C1C + ldr r0, _08088C74 @ =gUnk_03000BF0 + ldrh r1, [r0, #6] + adds r1, #0x48 + strh r1, [r2, #0x2e] + ldrh r0, [r0, #8] + adds r0, #0xc8 + strh r0, [r2, #0x32] +_08088C1C: + movs r0, #0x16 + bl sub_0807CBD0 + cmp r0, #0 + bne _08088C58 + adds r0, r4, #0 + movs r1, #2 + movs r2, #1 + movs r3, #0x78 + bl sub_08088C78 + adds r0, r4, #0 + movs r1, #4 + movs r2, #0x16 + movs r3, #0 + bl sub_08088C78 + adds r2, r0, #0 + cmp r2, #0 + beq _08088C58 + ldr r0, _08088C74 @ =gUnk_03000BF0 + movs r3, #0xc4 + lsls r3, r3, #1 + adds r1, r3, #0 + ldrh r3, [r0, #6] + adds r1, r1, r3 + strh r1, [r2, #0x2e] + ldrh r0, [r0, #8] + adds r0, #0xc8 + strh r0, [r2, #0x32] +_08088C58: + movs r3, #0x78 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_08088C78 + adds r0, r4, #0 + movs r1, #1 + movs r2, #1 + movs r3, #0x78 + bl sub_08088C78 + pop {r4, pc} + .align 2, 0 +_08088C74: .4byte gUnk_03000BF0 + + thumb_func_start sub_08088C78 +sub_08088C78: @ 0x08088C78 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r3, #0 + movs r0, #0x25 + bl sub_080A2960 + adds r1, r0, #0 + cmp r1, #0 + beq _08088C96 + ldrh r0, [r4, #0x2e] + adds r0, r0, r5 + strh r0, [r1, #0x2e] + ldrh r0, [r4, #0x32] + strh r0, [r1, #0x32] + str r4, [r1, #0x50] +_08088C96: + adds r0, r1, #0 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08088C9C +sub_08088C9C: @ 0x08088C9C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08088CEC @ =gUnk_08120C48 + ldr r0, [r4, #0x50] + adds r0, #0x29 + ldrb r0, [r0] + lsls r0, r0, #0x1d + lsrs r0, r0, #0x1d + adds r0, r0, r1 + ldrb r0, [r0] + adds r3, r4, #0 + adds r3, #0x29 + movs r1, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldr r0, [r4, #0x50] + adds r0, #0x63 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + adds r1, r4, #0 + adds r1, #0x63 + strb r0, [r1] + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _08088D4C + cmp r0, #1 + bgt _08088CF0 + cmp r0, #0 + beq _08088CFA + b _08088DB0 + .align 2, 0 +_08088CEC: .4byte gUnk_08120C48 +_08088CF0: + cmp r0, #2 + beq _08088D5A + cmp r0, #3 + beq _08088D7A + b _08088DB0 +_08088CFA: + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r2, [r4, #0xb] + adds r0, r2, #4 + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x11] + lsls r2, r2, #0x18 + movs r0, #0x16 + cmp r2, #0 + bne _08088D28 + movs r0, #0x15 +_08088D28: + strb r0, [r4, #0xf] + ldrb r0, [r4, #0xf] + bl sub_0807CBD0 + cmp r0, #0 + beq _08088DB0 + ldr r1, _08088D48 @ =gUnk_08120C50 + ldrb r0, [r4, #0xb] + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x2e] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + b _08088DAC + .align 2, 0 +_08088D48: .4byte gUnk_08120C50 +_08088D4C: + ldrb r0, [r4, #0xf] + bl sub_0807CBD0 + cmp r0, #0 + beq _08088DB0 + movs r0, #2 + b _08088DAE +_08088D5A: + ldr r2, _08088D98 @ =gUnk_02034350 + ldr r1, [r2, #0x68] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _08088DB0 + movs r0, #0x21 + rsbs r0, r0, #0 + ands r1, r0 + str r1, [r2, #0x68] + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #4 + strb r0, [r4, #0xd] + movs r0, #1 + strb r0, [r4, #0xe] +_08088D7A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08088DB0 + movs r0, #8 + strb r0, [r4, #0xe] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _08088D9C + subs r0, r1, #2 + b _08088D9E + .align 2, 0 +_08088D98: .4byte gUnk_02034350 +_08088D9C: + adds r0, r1, #2 +_08088D9E: + strh r0, [r4, #0x2e] + ldrb r0, [r4, #0xd] + subs r0, #1 + strb r0, [r4, #0xd] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08088DB0 +_08088DAC: + movs r0, #4 +_08088DAE: + strb r0, [r4, #0xc] +_08088DB0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08088DB4 +sub_08088DB4: @ 0x08088DB4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _08088E28 + cmp r0, #1 + bgt _08088DC8 + cmp r0, #0 + beq _08088DEC + b _08088E50 +_08088DC8: + cmp r0, #4 + bgt _08088E50 + ldr r0, _08088DE8 @ =gUnk_02034350 + ldr r0, [r0, #0x68] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _08088E6E + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08088E6E + b _08088E3E + .align 2, 0 +_08088DE8: .4byte gUnk_02034350 +_08088DEC: + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xb] + lsls r0, r0, #2 + adds r0, #6 + strb r0, [r4, #0x1e] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #3 + bl sub_0805E3A0 + ldrb r0, [r4, #0xb] + movs r1, #0x16 + cmp r0, #0 + bne _08088E1E + movs r1, #0x15 +_08088E1E: + strb r1, [r4, #0xb] + adds r0, r4, #0 + bl sub_08016A04 + b _08088E6E +_08088E28: + ldrb r0, [r4, #0xb] + bl sub_0807CBD0 + cmp r0, #0 + beq _08088E6E + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xa + strb r0, [r4, #0xe] + b _08088E6E +_08088E3E: + movs r0, #0x1e + strb r0, [r4, #0xe] + ldrb r0, [r4, #0x1e] + adds r0, #1 + strb r0, [r4, #0x1e] + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + b _08088E6E +_08088E50: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08088E6E + ldr r0, _08088E70 @ =gUnk_02034350 + ldr r1, [r0, #0x68] + movs r2, #9 + rsbs r2, r2, #0 + ands r1, r2 + str r1, [r0, #0x68] + adds r0, r4, #0 + bl sub_0805E7BC +_08088E6E: + pop {r4, pc} + .align 2, 0 +_08088E70: .4byte gUnk_02034350 + + thumb_func_start sub_08088E74 +sub_08088E74: @ 0x08088E74 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08088E94 + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + ldr r2, _08088EB0 @ =gUnk_02034350 + ldr r0, [r2, #0x68] + movs r1, #8 + orrs r0, r1 + str r0, [r2, #0x68] +_08088E94: + adds r0, r4, #0 + bl sub_0806FB38 + cmp r0, #0 + beq _08088EB4 + ldr r0, _08088EB0 @ =gUnk_02034350 + ldr r1, [r0, #0x68] + movs r2, #0x10 + orrs r1, r2 + str r1, [r0, #0x68] + adds r0, r4, #0 + bl sub_0805E7BC + b _08088F14 + .align 2, 0 +_08088EB0: .4byte gUnk_02034350 +_08088EB4: + ldr r0, _08088F18 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _08088F14 + adds r0, r4, #0 + movs r1, #0x2a + movs r2, #0 + movs r3, #0x1e + bl sub_080A2988 + adds r4, r0, #0 + cmp r4, #0 + beq _08088F14 + ldrb r1, [r4, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x11] + ldrb r2, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + strb r0, [r4, #0x19] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r3] + ldrb r0, [r4, #0x1b] + ands r1, r0 + strb r1, [r4, #0x1b] + bl sub_08000E50 + ldr r2, _08088F1C @ =gUnk_08120C52 + movs r1, #3 + ands r1, r0 + adds r1, r1, r2 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] +_08088F14: + pop {r4, pc} + .align 2, 0 +_08088F18: .4byte gUnk_030010A0 +_08088F1C: .4byte gUnk_08120C52 + + thumb_func_start sub_08088F20 +sub_08088F20: @ 0x08088F20 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _08088F62 + cmp r0, #1 + bgt _08088F34 + cmp r0, #0 + beq _08088F3E + b _08089020 +_08088F34: + cmp r0, #2 + beq _08088FEC + cmp r0, #3 + beq _08089004 + b _08089020 +_08088F3E: + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x11] + subs r0, #0x11 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x11] + ldrb r0, [r4, #0xb] + bl sub_0807CBD0 + cmp r0, #0 + bne _08088F5A + b _0808908E +_08088F5A: + adds r0, r4, #0 + bl sub_0805E7BC + b _0808908E +_08088F62: + ldrb r0, [r4, #0xb] + bl sub_0807CBD0 + cmp r0, #0 + bne _08088F6E + b _0808908E +_08088F6E: + movs r5, #2 + strb r5, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + movs r1, #0x87 + lsls r1, r1, #1 + adds r0, r4, #0 + bl sub_0805E4E0 + movs r0, #0x2a + movs r1, #1 + movs r2, #0 + bl sub_080A2960 + adds r2, r0, #0 + cmp r2, #0 + beq _08088FBC + ldrb r1, [r2, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2, #0x11] + ldrh r0, [r4, #0x2e] + strh r0, [r2, #0x2e] + ldrh r0, [r4, #0x32] + strh r0, [r2, #0x32] + adds r0, r2, #0 + adds r0, #0x38 + strb r5, [r0] + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r2] +_08088FBC: + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _08088FE8 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + movs r0, #0x76 + movs r2, #2 + bl sub_0807B314 + b _0808908E + .align 2, 0 +_08088FE8: .4byte gUnk_03000BF0 +_08088FEC: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808908E + adds r0, r4, #0 + bl sub_08089094 + movs r0, #3 + strb r0, [r4, #0xc] + b _0808908E +_08089004: + ldr r0, _0808901C @ =gUnk_02034350 + ldr r0, [r0, #0x68] + movs r1, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0808908E + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + b _0808908E + .align 2, 0 +_0808901C: .4byte gUnk_02034350 +_08089020: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x5a + bne _0808905C + movs r0, #0x15 + movs r1, #2 + bl sub_0807CC60 + cmp r0, #0 + beq _08089048 + ldr r0, _08089044 @ =gUnk_02034350 + ldr r1, [r0, #0x68] + movs r2, #2 + b _0808904E + .align 2, 0 +_08089044: .4byte gUnk_02034350 +_08089048: + ldr r0, _08089090 @ =gUnk_02034350 + ldr r1, [r0, #0x68] + movs r2, #1 +_0808904E: + orrs r1, r2 + str r1, [r0, #0x68] + adds r2, r0, #0 + ldr r0, [r2, #0x68] + movs r1, #0x20 + orrs r0, r1 + str r0, [r2, #0x68] +_0808905C: + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _0808908E + ldr r2, _08089090 @ =gUnk_02034350 + ldr r0, [r2, #0x68] + movs r1, #0x11 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r2, #0x68] + movs r0, #0x15 + movs r1, #2 + bl sub_0807CC60 + cmp r0, #0 + beq _08089088 + adds r0, r4, #0 + movs r1, #0x3c + bl sub_0805E4E0 + movs r0, #0x72 + bl sub_080A3268 +_08089088: + adds r0, r4, #0 + bl sub_0805E7BC +_0808908E: + pop {r4, r5, pc} + .align 2, 0 +_08089090: .4byte gUnk_02034350 + + thumb_func_start sub_08089094 +sub_08089094: @ 0x08089094 + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r1, _080890C4 @ =gUnk_03000BF0 + ldrh r1, [r1, #6] + subs r0, r0, r1 + cmp r0, #0xff + bgt _080890CC + ldr r4, _080890C8 @ =gUnk_08120C56 + movs r2, #8 + rsbs r2, r2, #0 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080890EC + adds r4, #4 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #4 + bl sub_080890EC + b _080890E6 + .align 2, 0 +_080890C4: .4byte gUnk_03000BF0 +_080890C8: .4byte gUnk_08120C56 +_080890CC: + ldr r4, _080890E8 @ =gUnk_08120C5E + movs r2, #8 + rsbs r2, r2, #0 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080890EC + adds r4, #4 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #4 + bl sub_080890EC +_080890E6: + pop {r4, r5, pc} + .align 2, 0 +_080890E8: .4byte gUnk_08120C5E + + thumb_func_start sub_080890EC +sub_080890EC: @ 0x080890EC + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r7, r1, #0 + adds r6, r2, #0 + movs r0, #0x25 + movs r1, #3 + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _08089132 + movs r1, #3 + bl sub_0805E3A0 + ldrh r0, [r5, #0x2e] + strh r0, [r4, #0x2e] + ldrh r0, [r5, #0x32] + adds r0, r0, r6 + strh r0, [r4, #0x32] + str r5, [r4, #0x50] + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r2, #0 + ldrsh r0, [r7, r2] + adds r1, r1, r0 + movs r3, #0x32 + ldrsh r2, [r4, r3] + movs r3, #2 + ldrsh r0, [r7, r3] + adds r2, r2, r0 + adds r0, r4, #0 + movs r3, #0x5a + bl sub_0806FB00 +_08089132: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08089134 +sub_08089134: @ 0x08089134 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _0808919C + movs r2, #1 + movs r3, #1 + strb r3, [r5, #0xc] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + ldrb r0, [r5, #0xa] + strb r0, [r5, #0x1e] + movs r0, #0x10 + strb r0, [r5, #0xe] + strb r3, [r5, #0xf] + ldrb r0, [r5, #0xa] + lsls r3, r0, #1 + adds r3, r3, r0 + ldr r0, _080891D4 @ =gUnk_08120C80 + adds r3, r3, r0 + ldrb r1, [r3] + lsls r1, r1, #6 + ldrb r4, [r5, #0x19] + movs r2, #0x3f + adds r0, r2, #0 + ands r0, r4 + orrs r0, r1 + strb r0, [r5, #0x19] + ldrb r0, [r3, #1] + movs r1, #0x29 + adds r1, r1, r5 + mov ip, r1 + movs r1, #7 + ands r1, r0 + mov r0, ip + ldrb r4, [r0] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r4 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + ldrb r0, [r3, #2] + lsls r0, r0, #6 + ldrb r1, [r5, #0x1b] + ands r2, r1 + orrs r2, r0 + strb r2, [r5, #0x1b] +_0808919C: + ldrb r0, [r5, #0xa] + cmp r0, #4 + bne _080891D0 + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + bne _080891D0 + movs r0, #0x10 + strb r0, [r5, #0xe] + ldr r2, _080891D8 @ =gUnk_08120C92 + ldrb r0, [r5, #0xf] + adds r1, r0, #1 + strb r1, [r5, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r5, #0x1e] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #3 + bne _080891D0 + strb r3, [r5, #0xf] +_080891D0: + pop {r4, r5, pc} + .align 2, 0 +_080891D4: .4byte gUnk_08120C80 +_080891D8: .4byte gUnk_08120C92 + + thumb_func_start sub_080891DC +sub_080891DC: @ 0x080891DC + push {lr} + ldr r2, _080891F0 @ =gUnk_08120C98 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080891F0: .4byte gUnk_08120C98 + + thumb_func_start sub_080891F4 +sub_080891F4: @ 0x080891F4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0808965C + cmp r0, #0 + beq _08089236 + movs r3, #0 + movs r2, #1 + strb r2, [r4, #0xc] + movs r0, #0x80 + strh r0, [r4, #0x24] + ldrb r1, [r4, #0x11] + subs r0, #0x90 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x11] + ldr r0, _08089238 @ =gUnk_080FD1F4 + str r0, [r4, #0x48] + strb r2, [r4, #0x16] + adds r0, r4, #0 + adds r0, #0x86 + strh r3, [r0] + adds r0, r4, #0 + bl sub_08089454 + adds r0, r4, #0 + bl sub_080894C8 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_08089236: + pop {r4, pc} + .align 2, 0 +_08089238: .4byte gUnk_080FD1F4 + + thumb_func_start sub_0808923C +sub_0808923C: @ 0x0808923C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0800442E + cmp r0, #0 + bne _080892C0 + adds r0, r4, #0 + adds r0, #0x84 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002B0 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + ldr r0, _08089278 @ =0x0000400B + cmp r5, r0 + beq _080892BA + adds r0, r5, #0 + bl sub_0808968C + cmp r0, #1 + beq _0808927C + cmp r0, #1 + blo _08089294 + cmp r0, #2 + beq _080892B2 + b _080892C0 + .align 2, 0 +_08089278: .4byte 0x0000400B +_0808927C: + movs r1, #3 + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r5, #0 + subs r0, #0xc + ands r0, r1 + lsls r0, r0, #3 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_08089538 + b _080892C0 +_08089294: + movs r0, #0xf + movs r1, #4 + movs r2, #0 + bl sub_080A2960 + adds r1, r0, #0 + cmp r1, #0 + beq _080892AA + adds r0, r4, #0 + bl sub_0806FA24 +_080892AA: + adds r0, r4, #0 + bl sub_080894FC + b _080892C0 +_080892B2: + adds r0, r4, #0 + adds r0, #0x80 + strh r5, [r0] + b _080892C0 +_080892BA: + adds r0, r4, #0 + bl sub_08078930 +_080892C0: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080892C4 +sub_080892C4: @ 0x080892C4 + push {lr} + adds r2, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + cmp r0, #0 + beq _080892D8 + adds r0, r2, #0 + bl sub_080895C0 + b _080892F6 +_080892D8: + ldr r0, _080892F8 @ =gUnk_03003F80 + ldrb r0, [r0, #5] + cmp r0, #0 + bne _080892E4 + movs r0, #6 + strb r0, [r2, #0xd] +_080892E4: + ldr r0, _080892FC @ =gUnk_08120CAC + ldrb r1, [r2, #0xd] + subs r1, #5 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 +_080892F6: + pop {pc} + .align 2, 0 +_080892F8: .4byte gUnk_03003F80 +_080892FC: .4byte gUnk_08120CAC + + thumb_func_start sub_08089300 +sub_08089300: @ 0x08089300 + push {r4, r5, lr} + adds r5, r0, #0 + adds r1, r5, #0 + adds r1, #0x83 + ldrb r0, [r1] + cmp r0, #0 + bne _0808932C + movs r0, #1 + strb r0, [r1] + ldr r1, _0808935C @ =gUnk_03001160 + ldrb r0, [r1, #0x14] + ldr r2, _08089360 @ =gUnk_08120CB4 + adds r0, r0, r2 + movs r2, #0 + ldrsb r2, [r0, r2] + lsls r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r0, r3] + lsls r3, r3, #0x10 + adds r0, r5, #0 + bl sub_0806FA48 +_0808932C: + adds r0, r5, #0 + adds r0, #0x84 + ldrh r0, [r0] + adds r1, r5, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002B0 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r0, _08089364 @ =0x0000400B + cmp r4, r0 + beq _080893A0 + adds r0, r4, #0 + bl sub_0808968C + cmp r0, #1 + beq _08089368 + cmp r0, #1 + blo _0808937C + cmp r0, #2 + beq _0808939A + b _080893A0 + .align 2, 0 +_0808935C: .4byte gUnk_03001160 +_08089360: .4byte gUnk_08120CB4 +_08089364: .4byte 0x0000400B +_08089368: + adds r0, r4, #0 + subs r0, #0xc + movs r1, #3 + ands r0, r1 + lsls r0, r0, #3 + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_08089538 + b _080893A0 +_0808937C: + movs r0, #0xf + movs r1, #4 + movs r2, #0 + bl sub_080A2960 + adds r1, r0, #0 + cmp r1, #0 + beq _08089392 + adds r0, r5, #0 + bl sub_0806FA24 +_08089392: + adds r0, r5, #0 + bl sub_080894FC + b _080893D6 +_0808939A: + adds r0, r5, #0 + adds r0, #0x80 + strh r4, [r0] +_080893A0: + bl sub_080896B0 + cmp r0, #0 + beq _080893D6 + ldr r2, _080893D8 @ =gUnk_03003F80 + movs r3, #0 + movs r0, #0x10 + strb r0, [r2, #0xc] + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #0x20 + strb r0, [r1] + ldr r0, [r2, #0x30] + movs r1, #1 + orrs r0, r1 + str r0, [r2, #0x30] + ldr r0, _080893DC @ =gUnk_03001160 + strh r3, [r0, #0x2c] + strh r3, [r0, #0x30] + ldrb r0, [r0, #0x14] + movs r1, #4 + eors r0, r1 + lsls r0, r0, #2 + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_08089538 +_080893D6: + pop {r4, r5, pc} + .align 2, 0 +_080893D8: .4byte gUnk_03003F80 +_080893DC: .4byte gUnk_03001160 + + thumb_func_start sub_080893E0 +sub_080893E0: @ 0x080893E0 + movs r2, #0 + movs r1, #1 + strb r1, [r0, #0xc] + adds r0, #0x83 + strb r2, [r0] + bx lr + + thumb_func_start sub_080893EC +sub_080893EC: @ 0x080893EC + push {r4, lr} + adds r4, r0, #0 + bl sub_080895C0 + cmp r0, #0 + beq _080893FC + movs r0, #1 + strb r0, [r4, #0xc] +_080893FC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08089400 +sub_08089400: @ 0x08089400 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08089424 + ldrb r2, [r4, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + b _0808944E +_08089424: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _08089450 @ =0x0000400B + adds r1, r4, #0 + adds r1, #0x84 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + adds r0, r4, #0 + bl sub_080894C8 +_0808944E: + pop {r4, pc} + .align 2, 0 +_08089450: .4byte 0x0000400B + + thumb_func_start sub_08089454 +sub_08089454: @ 0x08089454 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r0, #0x2e + ldrsh r1, [r5, r0] + ldr r2, _080894C0 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r4, #0x32 + ldrsh r0, [r5, r4] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r6, r5, #0 + adds r6, #0x84 + strh r1, [r6] + ldrh r0, [r6] + adds r4, r5, #0 + adds r4, #0x38 + ldrb r1, [r4] + bl sub_080001DA + adds r1, r5, #0 + adds r1, #0x80 + strh r0, [r1] + ldr r5, _080894C4 @ =0x0000400B + ldrh r1, [r6] + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldrb r0, [r4] + cmp r0, #2 + bne _080894BC + ldrh r0, [r6] + movs r1, #1 + bl sub_080002B0 + movs r1, #0xc4 + lsls r1, r1, #2 + cmp r0, r1 + bne _080894BC + ldrh r1, [r6] + adds r0, r5, #0 + movs r2, #1 + bl sub_0800015E +_080894BC: + pop {r4, r5, r6, pc} + .align 2, 0 +_080894C0: .4byte gUnk_03000BF0 +_080894C4: .4byte 0x0000400B + + thumb_func_start sub_080894C8 +sub_080894C8: @ 0x080894C8 + push {r4, lr} + adds r3, r0, #0 + movs r2, #0 + ldr r1, _080894E0 @ =gUnk_02034350 + adds r4, r1, #0 + adds r4, #0xac + ldr r0, [r4] + mov ip, r1 + cmp r0, #0 + bne _080894E4 + str r3, [r4] + b _080894FA + .align 2, 0 +_080894E0: .4byte gUnk_02034350 +_080894E4: + adds r2, #1 + cmp r2, #7 + bhi _080894FA + lsls r0, r2, #2 + mov r1, ip + adds r1, #0xac + adds r1, r0, r1 + ldr r0, [r1] + cmp r0, #0 + bne _080894E4 + str r3, [r1] +_080894FA: + pop {r4, pc} + + thumb_func_start sub_080894FC +sub_080894FC: @ 0x080894FC + push {r4, lr} + adds r3, r0, #0 + movs r2, #0 + ldr r1, _08089514 @ =gUnk_02034350 + adds r4, r1, #0 + adds r4, #0xac + ldr r0, [r4] + mov ip, r1 + cmp r3, r0 + bne _08089518 + str r2, [r4] + b _08089530 + .align 2, 0 +_08089514: .4byte gUnk_02034350 +_08089518: + adds r2, #1 + cmp r2, #7 + bhi _08089530 + lsls r0, r2, #2 + mov r1, ip + adds r1, #0xac + adds r1, r0, r1 + ldr r0, [r1] + cmp r3, r0 + bne _08089518 + movs r0, #0 + str r0, [r1] +_08089530: + adds r0, r3, #0 + bl sub_0805E7BC + pop {r4, pc} + + thumb_func_start sub_08089538 +sub_08089538: @ 0x08089538 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r1, r5, #0 + adds r1, #0x86 + movs r0, #0x20 + strh r0, [r1] + adds r0, #0xef + bl sub_08004488 + adds r0, r5, #0 + adds r0, #0x80 + ldrh r0, [r0] + adds r6, r5, #0 + adds r6, #0x84 + ldrh r1, [r6] + adds r4, r5, #0 + adds r4, #0x38 + ldrb r2, [r4] + bl sub_0800015E + ldrb r0, [r4] + cmp r0, #2 + bne _08089580 + ldrh r0, [r6] + movs r1, #1 + bl sub_080002B0 + ldr r1, _080895B8 @ =0x0000400B + cmp r0, r1 + bne _08089580 + movs r0, #0xc4 + lsls r0, r0, #2 + ldrh r1, [r6] + movs r2, #1 + bl sub_08000152 +_08089580: + adds r2, r5, #0 + adds r2, #0x84 + ldr r1, _080895BC @ =gUnk_080B4488 + ldrb r0, [r5, #0x15] + lsrs r0, r0, #3 + lsls r0, r0, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + ldrh r2, [r2] + adds r0, r0, r2 + adds r1, r5, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002B0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x79 + beq _080895AC + cmp r0, #0x77 + bne _080895B4 +_080895AC: + adds r1, r5, #0 + adds r1, #0x63 + movs r0, #0xfe + strb r0, [r1] +_080895B4: + pop {r4, r5, r6, pc} + .align 2, 0 +_080895B8: .4byte 0x0000400B +_080895BC: .4byte gUnk_080B4488 + + thumb_func_start sub_080895C0 +sub_080895C0: @ 0x080895C0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + adds r1, r4, #0 + adds r1, #0x86 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0808964C + adds r0, r4, #0 + bl sub_0800442E + cmp r0, #0 + bne _0808964C + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #0 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080002D0 + cmp r0, #0 + bne _080895FE + adds r0, r4, #0 + bl sub_08089454 + movs r0, #1 + b _08089654 +_080895FE: + movs r0, #0xf + movs r1, #4 + movs r2, #0 + bl sub_080A2960 + adds r1, r0, #0 + cmp r1, #0 + beq _08089614 + adds r0, r4, #0 + bl sub_0806FA24 +_08089614: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + ldr r2, _08089658 @ =gUnk_08120CBC + ldrb r1, [r4, #0x15] + lsrs r1, r1, #2 + lsls r0, r1, #1 + adds r0, r0, r2 + ldrh r0, [r0] + ldrh r3, [r4, #0x2e] + adds r0, r0, r3 + strh r0, [r4, #0x2e] + adds r1, #1 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r0, [r1] + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl sub_08089454 + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] +_0808964C: + adds r0, r4, #0 + bl sub_0800445C + movs r0, #0 +_08089654: + pop {r4, pc} + .align 2, 0 +_08089658: .4byte gUnk_08120CBC + + thumb_func_start sub_0808965C +sub_0808965C: @ 0x0808965C + push {lr} + adds r2, r0, #0 + ldr r3, _08089678 @ =gUnk_03000BF0 + ldrb r0, [r3, #4] + cmp r0, #0x3f + bls _08089680 + ldr r1, _0808967C @ =gUnk_08120CCC + subs r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + adds r0, r2, #0 + b _08089684 + .align 2, 0 +_08089678: .4byte gUnk_03000BF0 +_0808967C: .4byte gUnk_08120CCC +_08089680: + adds r0, r2, #0 + movs r1, #0xe9 +_08089684: + bl sub_080ADF80 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808968C +sub_0808968C: @ 0x0808968C + push {lr} + adds r2, r0, #0 + ldr r1, _08089694 @ =gUnk_08120D6C + b _080896A4 + .align 2, 0 +_08089694: .4byte gUnk_08120D6C +_08089698: + ldrh r0, [r1] + cmp r0, r2 + bne _080896A2 + ldrh r0, [r1, #2] + b _080896AC +_080896A2: + adds r1, #4 +_080896A4: + ldrh r0, [r1] + cmp r0, #0 + bne _08089698 + movs r0, #0 +_080896AC: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080896B0 +sub_080896B0: @ 0x080896B0 + push {r4, r5, r6, r7, lr} + ldr r0, _08089750 @ =gUnk_03003F80 + ldrb r1, [r0, #5] + movs r0, #0x1f + ands r0, r1 + cmp r0, #0x12 + bne _08089768 + ldr r6, _08089754 @ =gUnk_03001160 + adds r0, r6, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08089768 + ldrb r3, [r6, #0x14] + movs r2, #6 + ands r2, r3 + lsls r2, r2, #1 + ldr r0, _08089758 @ =gUnk_080B4468 + adds r2, r2, r0 + ldr r0, _0808975C @ =gUnk_080B4488 + lsrs r3, r3, #1 + lsls r3, r3, #1 + adds r3, r3, r0 + movs r0, #0x2e + ldrsh r1, [r6, r0] + movs r4, #0 + ldrsh r0, [r2, r4] + adds r1, r1, r0 + ldr r5, _08089760 @ =gUnk_03000BF0 + ldrh r0, [r5, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r7, #0x32 + ldrsh r0, [r6, r7] + movs r7, #2 + ldrsh r2, [r2, r7] + adds r0, r0, r2 + ldrh r2, [r5, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r4 + lsls r0, r0, #6 + orrs r1, r0 + movs r0, #0 + ldrsh r7, [r3, r0] + subs r1, r1, r7 + lsls r4, r1, #0x10 + lsrs r0, r4, #0x10 + adds r5, r6, #0 + adds r5, #0x38 + ldrb r1, [r5] + bl sub_080002C8 + adds r1, r0, #0 + subs r0, #0x26 + cmp r0, #1 + bls _08089768 + cmp r1, #0x29 + beq _08089768 + ldrb r0, [r5] + bl sub_0808094C + asrs r1, r4, #0x10 + ldr r2, _08089764 @ =0x00002004 + adds r0, r0, r2 + adds r2, r0, r1 + ldrb r2, [r2] + subs r1, r1, r7 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r2, #0 + bne _08089768 + cmp r0, #0 + bne _08089768 + movs r0, #1 + b _0808976A + .align 2, 0 +_08089750: .4byte gUnk_03003F80 +_08089754: .4byte gUnk_03001160 +_08089758: .4byte gUnk_080B4468 +_0808975C: .4byte gUnk_080B4488 +_08089760: .4byte gUnk_03000BF0 +_08089764: .4byte 0x00002004 +_08089768: + movs r0, #0 +_0808976A: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0808976C +sub_0808976C: @ 0x0808976C + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080897D0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xb] + strb r0, [r4, #0x1e] + ldrb r0, [r4, #0x1b] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + orrs r0, r1 + strb r0, [r4, #0x19] + ldrb r0, [r4, #0xa] + cmp r0, #3 + bne _080897AE + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #6 + orrs r1, r0 + strb r1, [r2] + b _080897BA +_080897AE: + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] +_080897BA: + ldrh r0, [r4, #0x2e] + adds r1, r4, #0 + adds r1, #0x68 + strh r0, [r1] + ldrh r0, [r4, #0x32] + adds r1, #2 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 +_080897D0: + ldrb r1, [r4, #0x10] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + bne _08089840 + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _08089844 @ =gUnk_03000BF0 + movs r3, #0xa + ldrsh r0, [r2, r3] + subs r5, r1, r0 + adds r3, r5, #0 + subs r3, #0x78 + movs r6, #0x32 + ldrsh r1, [r4, r6] + movs r6, #0xc + ldrsh r0, [r2, r6] + subs r1, r1, r0 + adds r2, r1, #0 + subs r2, #0x50 + adds r0, r3, #0 + cmp r0, #0 + bge _08089802 + adds r0, r5, #0 + subs r0, #0x75 +_08089802: + asrs r3, r0, #2 + adds r0, r2, #0 + cmp r0, #0 + bge _0808980E + adds r0, r1, #0 + subs r0, #0x4d +_0808980E: + asrs r2, r0, #2 + movs r0, #0x10 + rsbs r0, r0, #0 + cmp r3, r0 + bge _0808981A + adds r3, r0, #0 +_0808981A: + cmp r3, #0x10 + ble _08089820 + movs r3, #0x10 +_08089820: + cmp r2, r0 + bge _08089826 + adds r2, r0, #0 +_08089826: + cmp r2, #0x10 + ble _0808982C + movs r2, #0x10 +_0808982C: + adds r0, r4, #0 + adds r0, #0x68 + ldrh r0, [r0] + adds r0, r0, r3 + strh r0, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x6a + ldrh r0, [r0] + adds r0, r0, r2 + strh r0, [r4, #0x32] +_08089840: + pop {r4, r5, r6, pc} + .align 2, 0 +_08089844: .4byte gUnk_03000BF0 + + thumb_func_start sub_08089848 +sub_08089848: @ 0x08089848 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08089870 @ =gUnk_08120D90 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + adds r1, #1 + adds r0, r4, #0 + bl sub_08004276 + pop {r4, pc} + .align 2, 0 +_08089870: .4byte gUnk_08120D90 + + thumb_func_start sub_08089874 +sub_08089874: @ 0x08089874 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r3, #1 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _08089940 + adds r0, r4, #0 + adds r0, #0x38 + movs r2, #3 + strb r2, [r0] + ldrb r1, [r4, #0xb] + adds r5, r0, #0 + cmp r1, #0 + bne _08089900 + ldrb r0, [r4, #0xa] + cmp r0, #0x80 + bne _080898B4 + strb r2, [r4, #0xc] + ldrb r0, [r4, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08089AE0 + b _08089940 +_080898B4: + str r1, [r4, #0x50] + adds r0, r4, #0 + movs r1, #0x29 + movs r2, #0 + movs r3, #0xff + bl sub_080A2988 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _080898FA +_080898C8: + ldrb r3, [r4, #0xa] + adds r0, r4, #0 + movs r1, #0x29 + movs r2, #0 + bl sub_080A2988 + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _080898EE + ldr r0, [r4, #0x50] + str r0, [r1, #0x50] + ldr r1, [r4, #0x50] + cmp r1, #0 + beq _080898EA + ldr r0, [r4, #0x54] + str r0, [r1, #0x54] +_080898EA: + ldr r0, [r4, #0x54] + str r0, [r4, #0x50] +_080898EE: + ldrb r0, [r4, #0xa] + subs r0, #1 + strb r0, [r4, #0xa] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080898C8 +_080898FA: + bl sub_0805E780 + b _08089940 +_08089900: + strb r3, [r4, #0xc] + ldr r0, [r4, #0x50] + cmp r0, #0 + bne _08089912 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + b _0808991A +_08089912: + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_0808991A: + ldrb r0, [r4, #0xb] + cmp r0, #0xff + bne _08089934 + movs r0, #1 + strb r0, [r5] + adds r0, r4, #0 + bl sub_08016A30 + adds r0, r4, #0 + movs r1, #0x15 + bl sub_0801D2B4 + b _08089940 +_08089934: + ldrb r1, [r4, #0xb] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + rsbs r0, r0, #0 + strh r0, [r4, #0x36] +_08089940: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08089944 +sub_08089944: @ 0x08089944 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r3, [r4, #0xb] + cmp r3, #0xff + bne _08089964 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x19] + b _08089A76 +_08089964: + ldrb r1, [r4, #0x1b] + movs r2, #0x3f + adds r0, r2, #0 + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + ands r2, r0 + strb r2, [r4, #0x19] + cmp r3, #1 + beq _08089984 + ldr r0, [r4, #0x54] + ldrb r0, [r0, #0xc] + cmp r0, #2 + bne _08089A76 +_08089984: + ldr r0, _08089998 @ =gUnk_03001160 + movs r1, #0x36 + ldrsh r2, [r0, r1] + movs r1, #0x24 + rsbs r1, r1, #0 + adds r6, r0, #0 + cmp r2, r1 + bge _0808999C + movs r0, #1 + b _0808999E + .align 2, 0 +_08089998: .4byte gUnk_03001160 +_0808999C: + movs r0, #0 +_0808999E: + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xb] + subs r0, #1 + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + ldrh r0, [r4, #0x32] + subs r0, r0, r1 + strh r0, [r4, #0x32] + adds r5, r6, #0 + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0xf + movs r3, #0xf + bl sub_080041A0 + cmp r0, #0 + beq _08089A62 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08089A62 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x1b] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x19] + ldrb r0, [r4, #0xb] + cmp r0, #1 + beq _080899EC + ldr r1, [r4, #0x54] + movs r0, #1 + strb r0, [r1, #0xc] +_080899EC: + ldr r1, _08089A78 @ =gUnk_03003F80 + movs r0, #1 + strb r0, [r1, #0x14] + ldrh r0, [r5, #0x32] + subs r0, #0x24 + strh r0, [r5, #0x32] + ldrh r0, [r5, #0x36] + adds r0, #0x24 + strh r0, [r5, #0x36] + adds r0, r5, #0 + bl sub_0807AA80 + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _08089A62 + adds r0, r5, #0 + movs r1, #2 + movs r2, #0 + bl sub_080A29AC + adds r1, r0, #0 + cmp r1, #0 + beq _08089A20 + ldrh r0, [r1, #0x2e] + adds r0, #8 + strh r0, [r1, #0x2e] +_08089A20: + adds r0, r5, #0 + movs r1, #2 + movs r2, #0 + bl sub_080A29AC + adds r1, r0, #0 + cmp r1, #0 + beq _08089A36 + ldrh r0, [r1, #0x2e] + subs r0, #8 + strh r0, [r1, #0x2e] +_08089A36: + adds r0, r5, #0 + movs r1, #2 + movs r2, #0 + bl sub_080A29AC + adds r1, r0, #0 + cmp r1, #0 + beq _08089A4C + ldrh r0, [r1, #0x32] + adds r0, #8 + strh r0, [r1, #0x32] +_08089A4C: + adds r0, r6, #0 + movs r1, #2 + movs r2, #0 + bl sub_080A29AC + adds r1, r0, #0 + cmp r1, #0 + beq _08089A62 + ldrh r0, [r1, #0x32] + subs r0, #8 + strh r0, [r1, #0x32] +_08089A62: + ldrb r0, [r4, #0xb] + subs r0, #1 + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + ldrh r0, [r4, #0x32] + adds r1, r1, r0 + strh r1, [r4, #0x32] + ldrb r0, [r4, #0xe] + strb r0, [r4, #0xf] +_08089A76: + pop {r4, r5, r6, pc} + .align 2, 0 +_08089A78: .4byte gUnk_03003F80 + + thumb_func_start sub_08089A7C +sub_08089A7C: @ 0x08089A7C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #2 + ldrh r0, [r4, #0x32] + subs r0, r0, r1 + strh r0, [r4, #0x32] + ldr r5, _08089AB0 @ =gUnk_03001160 + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0xf + movs r3, #0xf + bl sub_080041A0 + cmp r0, #0 + beq _08089AB8 + ldr r2, _08089AB4 @ =gUnk_03003F80 + movs r0, #1 + strb r0, [r2, #0x14] + ldr r0, [r2, #0x30] + movs r1, #2 + orrs r0, r1 + str r0, [r2, #0x30] + b _08089AD0 + .align 2, 0 +_08089AB0: .4byte gUnk_03001160 +_08089AB4: .4byte gUnk_03003F80 +_08089AB8: + movs r2, #1 + strb r2, [r4, #0xc] + ldrh r1, [r4, #0x36] + ldrh r3, [r5, #0x36] + adds r0, r1, r3 + strh r0, [r5, #0x36] + ldrh r0, [r5, #0x32] + subs r0, r0, r1 + strh r0, [r5, #0x32] + adds r0, r5, #0 + adds r0, #0x38 + strb r2, [r0] +_08089AD0: + ldrb r1, [r4, #0xb] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + pop {r4, r5, pc} + + thumb_func_start sub_08089AE0 +sub_08089AE0: @ 0x08089AE0 + push {lr} + ldr r1, _08089AF8 @ =gUnk_03001160 + movs r2, #0xf + movs r3, #0xf + bl sub_080041A0 + cmp r0, #0 + beq _08089AF6 + ldr r1, _08089AFC @ =gUnk_03003F80 + movs r0, #1 + strb r0, [r1, #0x14] +_08089AF6: + pop {pc} + .align 2, 0 +_08089AF8: .4byte gUnk_03001160 +_08089AFC: .4byte gUnk_03003F80 + + thumb_func_start sub_08089B00 +sub_08089B00: @ 0x08089B00 + push {lr} + ldr r2, _08089B14 @ =gUnk_08120DD0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08089B14: .4byte gUnk_08120DD0 + + thumb_func_start sub_08089B18 +sub_08089B18: @ 0x08089B18 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r2, #1 + movs r6, #1 + strb r6, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r5, #4 + rsbs r5, r5, #0 + adds r0, r5, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _08089B38 + strb r0, [r4, #0xe] +_08089B38: + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + ldrb r0, [r4, #0xa] + cmp r0, #2 + beq _08089B66 + cmp r0, #2 + bgt _08089B50 + cmp r0, #1 + beq _08089B5A + b _08089B96 +_08089B50: + cmp r0, #3 + beq _08089B72 + cmp r0, #4 + beq _08089B7C + b _08089B96 +_08089B5A: + ldrh r0, [r4, #0x32] + subs r0, #8 + strh r0, [r4, #0x32] + movs r0, #0x28 + strb r0, [r4, #0xe] + b _08089B96 +_08089B66: + movs r0, #0xf + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_08004168 + b _08089B96 +_08089B72: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 + b _08089B96 +_08089B7C: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + bne _08089B96 + ldrb r1, [r4, #0x18] + adds r0, r5, #0 + ands r0, r1 + strb r0, [r4, #0x18] + strb r6, [r4, #0xd] + b _08089B9E +_08089B96: + movs r0, #0x92 + lsls r0, r0, #1 + bl sub_08004488 +_08089B9E: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08089BA0 +sub_08089BA0: @ 0x08089BA0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_08004274 + ldrb r0, [r5, #0xa] + cmp r0, #4 + bhi _08089BD0 + lsls r0, r0, #2 + ldr r1, _08089BB8 @ =_08089BBC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08089BB8: .4byte _08089BBC +_08089BBC: @ jump table + .4byte _08089BD0 @ case 0 + .4byte _08089BD6 @ case 1 + .4byte _08089BD6 @ case 2 + .4byte _08089C4C @ case 3 + .4byte _08089C72 @ case 4 +_08089BD0: + ldrb r0, [r5, #0xb] + cmp r0, #0 + beq _08089CBA +_08089BD6: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08089CBA + ldrb r0, [r5, #0xa] + cmp r0, #2 + bne _08089C42 + ldr r0, [r5, #0x54] + ldrh r0, [r0, #6] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08089C48 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0807B7D8 + adds r0, r5, #0 + movs r1, #0 + movs r2, #0x10 + bl sub_0807AB44 + subs r4, #0x4f + adds r0, r5, #0 + movs r1, #0 + adds r2, r4, #0 + bl sub_0807AB44 + adds r0, r5, #0 + movs r1, #0x10 + movs r2, #0 + bl sub_0807AB44 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0 + bl sub_0807AB44 +_08089C42: + bl sub_0805E780 + b _08089CBA + .align 2, 0 +_08089C48: .4byte gUnk_03000BF0 +_08089C4C: + ldr r0, [r5, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _08089C58 + bl sub_0805E780 +_08089C58: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08089C68 + bl sub_0805E780 +_08089C68: + ldr r0, [r5, #0x50] + adds r1, r5, #0 + bl sub_0806FA24 + b _08089CBA +_08089C72: + adds r0, r5, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + adds r1, r0, #0 + ldrb r0, [r5, #0xd] + cmp r0, #0 + bne _08089C96 + cmp r1, #0 + bne _08089CBA + movs r0, #1 + strb r0, [r5, #0xd] + ldrb r1, [r5, #0x18] + subs r0, #5 + ands r0, r1 + strb r0, [r5, #0x18] + b _08089CBA +_08089C96: + cmp r1, #0 + beq _08089CBA + movs r0, #0 + strb r0, [r5, #0xd] + ldrb r1, [r5, #0x18] + subs r0, #4 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #0x18] + adds r0, r5, #0 + movs r1, #0 + bl sub_08004260 + movs r0, #0x92 + lsls r0, r0, #1 + bl sub_08004488 +_08089CBA: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08089CBC +sub_08089CBC: @ 0x08089CBC + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xc] + cmp r1, #0 + bne _08089CDC + movs r0, #1 + strb r0, [r4, #0xc] + str r1, [r4, #0x34] + ldrb r0, [r4, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r4, #0 + movs r1, #9 + bl sub_08004260 +_08089CDC: + ldr r1, [r4, #0x50] + ldr r0, [r1, #0x34] + cmp r0, #0 + bne _08089CEA + bl sub_0805E780 + b _08089D02 +_08089CEA: + movs r2, #0x36 + ldrsh r0, [r1, r2] + movs r2, #0x90 + lsls r2, r2, #1 + subs r2, r2, r0 + adds r0, r1, #0 + adds r0, #0x7e + ldrh r3, [r0] + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_0805EC9C +_08089D02: + pop {r4, pc} + + thumb_func_start sub_08089D04 +sub_08089D04: @ 0x08089D04 + push {lr} + ldr r2, _08089D18 @ =gUnk_08120DF4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08089D18: .4byte gUnk_08120DF4 + + thumb_func_start sub_08089D1C +sub_08089D1C: @ 0x08089D1C + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r1, [r5, #0x19] + movs r4, #0x3f + adds r0, r4, #0 + ands r0, r1 + movs r6, #0x80 + orrs r0, r6 + strb r0, [r5, #0x19] + ldrb r1, [r5, #0x1b] + adds r0, r4, #0 + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r5, #0x1b] + adds r0, r5, #0 + movs r1, #4 + bl sub_0805E3A0 + ldrb r0, [r5, #0xa] + cmp r0, #7 + bne _08089D90 + ldrb r1, [r5, #0x10] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08089D54 + b _08089F06 +_08089D54: + ldrb r0, [r5, #0xb] + cmp r0, #0 + bne _08089D74 + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _08089D74 + bl sub_0807CBD0 + cmp r0, #0 + bne _08089D6A + b _08089F06 +_08089D6A: + ldrb r1, [r5, #0x1b] + adds r0, r4, #0 + ands r0, r1 + orrs r0, r6 + strb r0, [r5, #0x1b] +_08089D74: + ldr r4, _08089D8C @ =gUnk_08120E3C + ldrb r0, [r5, #0xb] + lsls r0, r0, #2 + adds r0, r0, r4 + ldrb r1, [r0] + adds r0, r5, #0 + bl sub_08004260 + ldrb r0, [r5, #0xb] + lsls r0, r0, #2 + adds r0, r0, r4 + b _08089DCE + .align 2, 0 +_08089D8C: .4byte gUnk_08120E3C +_08089D90: + cmp r0, #0 + beq _08089DAC + ldr r0, _08089DA8 @ =gUnk_08120E14 + ldrb r1, [r5, #0xa] + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r1, [r1] + adds r0, r5, #0 + bl sub_08004260 + b _08089DC6 + .align 2, 0 +_08089DA8: .4byte gUnk_08120E14 +_08089DAC: + adds r0, r5, #0 + movs r1, #1 + movs r2, #2 + bl sub_080AE008 + ldr r0, _08089E08 @ =gUnk_08120E14 + ldrb r1, [r5, #0xa] + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r1, [r1] + adds r0, r5, #0 + bl sub_080042AC +_08089DC6: + ldr r1, _08089E08 @ =gUnk_08120E14 + ldrb r0, [r5, #0xa] + lsls r0, r0, #2 + adds r0, r0, r1 +_08089DCE: + ldrb r0, [r0, #1] + adds r3, r5, #0 + adds r3, #0x29 + movs r1, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + movs r2, #1 + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + ldrb r0, [r5, #0xa] + cmp r0, #1 + bge _08089DFC + b _08089F00 +_08089DFC: + cmp r0, #6 + ble _08089E0C + cmp r0, #7 + beq _08089E1C + b _08089F00 + .align 2, 0 +_08089E08: .4byte gUnk_08120E14 +_08089E0C: + adds r0, r5, #0 + adds r0, #0x60 + movs r2, #0 + movs r1, #0xe0 + lsls r1, r1, #1 + strh r1, [r0] + strb r2, [r5, #0xe] + b _08089F00 +_08089E1C: + ldrb r1, [r5, #0xb] + cmp r1, #3 + bgt _08089E2C + cmp r1, #2 + bge _08089EEC + cmp r1, #0 + beq _08089E32 + b _08089F00 +_08089E2C: + cmp r1, #4 + beq _08089EF8 + b _08089F00 +_08089E32: + movs r0, #0x10 + str r0, [r5, #0x6c] + strb r1, [r5, #0xe] +_08089E38: + movs r0, #0x2c + movs r1, #7 + movs r2, #1 + bl sub_080A2960 + adds r1, r0, #0 + str r1, [r5, #0x54] + cmp r1, #0 + beq _08089EC8 + ldrh r0, [r5, #0x2e] + strh r0, [r1, #0x2e] + ldr r2, [r5, #0x54] + ldr r1, [r5, #0x6c] + ldrh r0, [r5, #0x32] + subs r0, r0, r1 + strh r0, [r2, #0x32] + movs r0, #3 + strb r0, [r5, #0xf] +_08089E5C: + ldrb r0, [r5, #0xe] + lsls r0, r0, #2 + ldr r1, _08089EE4 @ =gUnk_08120DFC + adds r4, r0, r1 + ldrb r2, [r4] + subs r2, #2 + movs r0, #0x2c + movs r1, #7 + bl sub_080A2960 + adds r1, r0, #0 + str r1, [r5, #0x54] + cmp r1, #0 + beq _08089EAA + movs r0, #1 + ldrsb r0, [r4, r0] + ldrh r2, [r5, #0x2e] + adds r0, r0, r2 + strh r0, [r1, #0x2e] + ldr r2, [r5, #0x54] + ldr r1, [r5, #0x6c] + ldrh r0, [r5, #0x32] + subs r0, r0, r1 + movs r1, #2 + ldrsb r1, [r4, r1] + subs r0, r0, r1 + strh r0, [r2, #0x32] + ldr r3, [r5, #0x54] + ldrb r2, [r4, #3] + movs r0, #1 + ands r2, r0 + lsls r2, r2, #6 + ldrb r0, [r3, #0x18] + movs r4, #0x41 + rsbs r4, r4, #0 + adds r1, r4, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r3, #0x18] +_08089EAA: + ldrb r0, [r5, #0xe] + adds r2, r0, #1 + strb r2, [r5, #0xe] + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _08089E5C + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #5 + bls _08089EC8 + strb r1, [r5, #0xe] +_08089EC8: + ldr r0, [r5, #0x6c] + adds r0, #0x38 + str r0, [r5, #0x6c] + ldrh r1, [r5, #0x32] + subs r1, r1, r0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + ldr r0, _08089EE8 @ =gUnk_03000BF0 + ldrh r0, [r0, #8] + cmp r1, r0 + bge _08089E38 + movs r0, #1 + strb r0, [r5, #0xe] + b _08089F00 + .align 2, 0 +_08089EE4: .4byte gUnk_08120DFC +_08089EE8: .4byte gUnk_03000BF0 +_08089EEC: + ldrb r0, [r5, #0x19] + movs r1, #0x3f + ands r1, r0 + movs r0, #0x40 + orrs r1, r0 + strb r1, [r5, #0x19] +_08089EF8: + adds r1, r5, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] +_08089F00: + adds r0, r5, #0 + bl sub_08089F08 +_08089F06: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08089F08 +sub_08089F08: @ 0x08089F08 + push {lr} + ldr r2, _08089F1C @ =gUnk_08120E50 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08089F1C: .4byte gUnk_08120E50 + + thumb_func_start sub_08089F20 +sub_08089F20: @ 0x08089F20 + push {lr} + ldr r2, _08089F34 @ =gUnk_08120E78 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08089F34: .4byte gUnk_08120E78 + + thumb_func_start sub_08089F38 +sub_08089F38: @ 0x08089F38 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08089F6C + ldrb r0, [r4, #0xe] + cmp r0, #1 + bhi _08089F5A + adds r0, #1 + strb r0, [r4, #0xe] + b _08089F6C +_08089F5A: + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC + movs r0, #0x10 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] +_08089F6C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08089F70 +sub_08089F70: @ 0x08089F70 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08089F8E + movs r0, #0x10 + strb r0, [r4, #0xe] + movs r0, #0xcc + lsls r0, r0, #1 + bl sub_080A3268 +_08089F8E: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08089FEC + movs r0, #0x2c + movs r1, #1 + movs r2, #0 + bl sub_080A2960 + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _08089FBE + ldrh r0, [r4, #0x2e] + strh r0, [r1, #0x2e] + ldr r1, [r4, #0x54] + ldrh r0, [r4, #0x32] + strh r0, [r1, #0x32] +_08089FBE: + movs r0, #0x2c + movs r1, #2 + movs r2, #0 + bl sub_080A2960 + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _08089FDC + ldrh r0, [r4, #0x2e] + strh r0, [r1, #0x2e] + ldr r1, [r4, #0x54] + ldrh r0, [r4, #0x32] + subs r0, #0x10 + strh r0, [r1, #0x32] +_08089FDC: + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r4, #0x18] + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] +_08089FEC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08089FF0 +sub_08089FF0: @ 0x08089FF0 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _0808A00E + movs r0, #0x10 + strb r0, [r1, #0xe] + movs r0, #0xcc + lsls r0, r0, #1 + bl sub_080A3268 +_0808A00E: + pop {pc} + + thumb_func_start sub_0808A010 +sub_0808A010: @ 0x0808A010 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0808A07E + ldrb r0, [r4, #0xe] + lsls r0, r0, #2 + ldr r1, _0808A0BC @ =gUnk_08120DFC + adds r5, r0, r1 + ldrb r1, [r5] + movs r0, #0x2c + movs r2, #0 + bl sub_080A2960 + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _0808A06C + movs r0, #1 + ldrsb r0, [r5, r0] + ldrh r2, [r4, #0x2e] + adds r0, r0, r2 + strh r0, [r1, #0x2e] + ldr r2, [r4, #0x54] + movs r1, #2 + ldrsb r1, [r5, r1] + ldrh r0, [r4, #0x32] + subs r0, r0, r1 + strh r0, [r2, #0x32] + ldr r3, [r4, #0x54] + ldrb r1, [r5, #3] + movs r0, #1 + ands r1, r0 + lsls r1, r1, #6 + ldrb r2, [r3, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x18] +_0808A06C: + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #5 + bls _0808A07E + movs r0, #0 + strb r0, [r4, #0xe] +_0808A07E: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808A0BA + movs r0, #0x2c + movs r1, #3 + movs r2, #0 + bl sub_080A2960 + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _0808A0A8 + ldrh r0, [r4, #0x2e] + strh r0, [r1, #0x2e] + ldr r1, [r4, #0x54] + ldrh r0, [r4, #0x32] + strh r0, [r1, #0x32] +_0808A0A8: + ldrh r0, [r4, #0x32] + subs r0, #0x38 + strh r0, [r4, #0x32] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _0808A0BA + adds r0, r4, #0 + bl sub_0805E7BC +_0808A0BA: + pop {r4, r5, pc} + .align 2, 0 +_0808A0BC: .4byte gUnk_08120DFC + + thumb_func_start sub_0808A0C0 +sub_0808A0C0: @ 0x0808A0C0 + push {lr} + adds r2, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0808A0D6 + adds r0, r2, #0 + bl sub_08004274 +_0808A0D6: + pop {pc} + + thumb_func_start nullsub_517 +nullsub_517: @ 0x0808A0D8 + bx lr + .align 2, 0 + + thumb_func_start sub_0808A0DC +sub_0808A0DC: @ 0x0808A0DC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + ldrb r0, [r5, #0xb] + cmp r0, #1 + bne _0808A0EC + b _0808A202 +_0808A0EC: + cmp r0, #1 + bgt _0808A0F6 + cmp r0, #0 + beq _0808A120 + b _0808A202 +_0808A0F6: + cmp r0, #4 + ble _0808A0FC + b _0808A202 +_0808A0FC: + ldr r0, _0808A118 @ =gUnk_03003F80 + ldrb r0, [r0, #0x12] + cmp r0, #0x1e + bne _0808A1DA + ldr r1, _0808A11C @ =gUnk_03001160 + adds r0, r5, #0 + movs r2, #0 + movs r3, #8 + bl sub_080041A0 + cmp r0, #0 + beq _0808A1DC + b _0808A1B0 + .align 2, 0 +_0808A118: .4byte gUnk_03003F80 +_0808A11C: .4byte gUnk_03001160 +_0808A120: + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _0808A202 + ldr r4, _0808A1A8 @ =gUnk_03000BF0 + ldrh r0, [r4, #8] + str r0, [r5, #0x6c] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldrh r2, [r4, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + ldrh r2, [r4, #8] + subs r0, r0, r2 + lsrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r5, #0 + adds r0, #0x70 + strh r1, [r0] + adds r6, r4, #0 + mov r8, r3 + adds r4, r0, #0 + ldr r7, _0808A1AC @ =0x00004017 +_0808A154: + movs r0, #0x2e + ldrsh r1, [r5, r0] + ldrh r0, [r6, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + mov r2, r8 + ands r1, r2 + ldrh r2, [r6, #8] + ldr r0, [r5, #0x6c] + subs r0, r0, r2 + lsrs r0, r0, #4 + mov r2, r8 + ands r0, r2 + lsls r0, r0, #6 + orrs r1, r0 + strh r1, [r4] + ldrh r1, [r4] + adds r0, r7, #0 + movs r2, #2 + bl sub_0800015E + ldrh r1, [r4] + adds r0, r7, #0 + movs r2, #1 + bl sub_0800015E + ldr r0, [r5, #0x6c] + adds r2, r0, #0 + adds r2, #0x10 + str r2, [r5, #0x6c] + ldrh r0, [r6, #8] + ldrh r1, [r6, #0x20] + adds r0, r0, r1 + cmp r2, r0 + bhs _0808A1A2 + movs r1, #0x32 + ldrsh r0, [r5, r1] + cmp r2, r0 + bls _0808A154 +_0808A1A2: + movs r0, #0 + strb r0, [r5, #0xe] + b _0808A202 + .align 2, 0 +_0808A1A8: .4byte gUnk_03000BF0 +_0808A1AC: .4byte 0x00004017 +_0808A1B0: + adds r3, r5, #0 + adds r3, #0x58 + ldrb r2, [r3] + ldrb r1, [r5, #0xb] + subs r1, #1 + lsls r0, r1, #1 + adds r0, r0, r1 + adds r0, #1 + cmp r2, r0 + bne _0808A1DE + ldrb r0, [r5, #0xe] + cmp r0, #0 + bne _0808A1DE + movs r0, #1 + strb r0, [r5, #0xe] + ldrb r1, [r3] + adds r1, #1 + adds r0, r5, #0 + bl sub_08004260 + b _0808A1DE +_0808A1DA: + movs r0, #0 +_0808A1DC: + strb r0, [r5, #0xe] +_0808A1DE: + adds r0, r5, #0 + bl sub_08004274 + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808A202 + ldrb r0, [r5, #0xb] + subs r0, #1 + lsls r1, r0, #1 + adds r1, r1, r0 + adds r1, #1 + adds r0, r5, #0 + bl sub_08004260 +_0808A202: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0808A208 +sub_0808A208: @ 0x0808A208 + push {lr} + ldr r2, _0808A21C @ =gUnk_08120E84 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808A21C: .4byte gUnk_08120E84 + + thumb_func_start sub_0808A220 +sub_0808A220: @ 0x0808A220 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x1b] + movs r6, #0x3f + adds r0, r6, #0 + ands r0, r1 + movs r5, #0x80 + orrs r0, r5 + strb r0, [r4, #0x1b] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0808A2E4 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r7, #0x32 + ldrsh r0, [r4, r7] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r2, r4, #0 + adds r2, #0x70 + strh r1, [r2] + ldr r0, _0808A2E8 @ =0x00004017 + ldrh r1, [r2] + movs r2, #1 + bl sub_0800015E + movs r7, #1 + strb r7, [r4, #0xd] + adds r0, r4, #0 + movs r1, #0x15 + movs r2, #0 + movs r3, #0 + bl sub_080A2988 + adds r3, r0, #0 + cmp r3, #0 + beq _0808A2D4 + ldrh r0, [r4, #0x32] + adds r0, #0x38 + strh r0, [r3, #0x32] + ldrh r0, [r4, #0x12] + strh r0, [r3, #0x12] + adds r0, r4, #0 + adds r0, #0x60 + ldrh r1, [r0] + adds r0, r3, #0 + adds r0, #0x60 + strh r1, [r0] + ldrb r1, [r4, #0x1a] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1c + ldrb r2, [r3, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x1a] + adds r1, r3, #0 + adds r1, #0x58 + movs r0, #2 + strb r0, [r1] + movs r0, #0x80 + strb r0, [r3, #0xe] + strb r7, [r3, #0xa] + ldrb r1, [r3, #0x19] + adds r0, r6, #0 + ands r0, r1 + orrs r0, r5 + strb r0, [r3, #0x19] + adds r2, r3, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r3, #0x1b] + adds r0, r6, #0 + ands r0, r1 + orrs r0, r5 + strb r0, [r3, #0x1b] +_0808A2D4: + adds r0, r4, #0 + movs r1, #0x2c + movs r2, #9 + movs r3, #0 + bl sub_080A2988 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0808A2E4: .4byte gUnk_03000BF0 +_0808A2E8: .4byte 0x00004017 + + thumb_func_start nullsub_518 +nullsub_518: @ 0x0808A2EC + bx lr + .align 2, 0 + + thumb_func_start sub_0808A2F0 +sub_0808A2F0: @ 0x0808A2F0 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xd] + cmp r0, #0 + bne _0808A316 + movs r0, #1 + strb r0, [r5, #0xd] + ldrh r0, [r5, #0x32] + adds r0, #0x28 + strh r0, [r5, #0x32] + movs r2, #0x18 + rsbs r2, r2, #0 + adds r0, r5, #0 + movs r1, #0 + bl sub_0800029C + adds r1, r5, #0 + adds r1, #0x72 + strh r0, [r1] +_0808A316: + ldr r3, _0808A38C @ =gUnk_03001160 + ldrb r1, [r3, #0x1b] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r5, #0x1b] + movs r7, #0x3f + adds r0, r7, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x1b] + ldrb r1, [r3, #0x19] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r5, #0x19] + adds r0, r7, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x19] + ldr r0, _0808A390 @ =gUnk_03003F80 + ldrb r0, [r0, #0x12] + cmp r0, #0x1e + bne _0808A39C + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + movs r2, #0x18 + rsbs r2, r2, #0 + adds r0, r5, #0 + movs r1, #0 + bl sub_0800029C + ldr r3, _0808A394 @ =0x00004014 + cmp r0, r3 + beq _0808A3EC + movs r0, #0x2e + ldrsh r1, [r5, r0] + ldr r2, _0808A398 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + ands r1, r7 + movs r4, #0x32 + ldrsh r0, [r5, r4] + ldrh r2, [r2, #8] + adds r2, #0x18 + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r7 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r3, #0 + movs r2, #1 + bl sub_0800015E + b _0808A3EC + .align 2, 0 +_0808A38C: .4byte gUnk_03001160 +_0808A390: .4byte gUnk_03003F80 +_0808A394: .4byte 0x00004014 +_0808A398: .4byte gUnk_03000BF0 +_0808A39C: + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r2] + adds r6, r5, #0 + adds r6, #0x72 + ldrh r4, [r6] + movs r2, #0x18 + rsbs r2, r2, #0 + adds r0, r5, #0 + movs r1, #0 + bl sub_0800029C + cmp r4, r0 + beq _0808A3EC + ldrh r0, [r6] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _0808A3F0 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r7 + movs r4, #0x32 + ldrsh r2, [r5, r4] + ldrh r3, [r3, #8] + adds r3, #0x18 + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r7 + lsls r2, r2, #6 + orrs r1, r2 + movs r2, #1 + bl sub_0800015E +_0808A3EC: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0808A3F0: .4byte gUnk_03000BF0 + + thumb_func_start sub_0808A3F4 +sub_0808A3F4: @ 0x0808A3F4 + push {lr} + ldr r2, _0808A408 @ =gUnk_08121060 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808A408: .4byte gUnk_08121060 + + thumb_func_start sub_0808A40C +sub_0808A40C: @ 0x0808A40C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0808A41E + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x28 + strb r0, [r4, #0xe] +_0808A41E: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808A466 + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + movs r1, #0x40 + subs r1, r1, r0 + strb r1, [r4, #0xe] + movs r0, #0x2d + movs r1, #1 + movs r2, #0 + bl sub_080A2960 + adds r5, r0, #0 + cmp r5, #0 + beq _0808A466 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FA24 + bl sub_08000E50 + ldr r2, _0808A468 @ =gUnk_08121068 + movs r1, #7 + ands r1, r0 + adds r1, r1, r2 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r1, [r5, #0x2e] + adds r0, r0, r1 + strh r0, [r5, #0x2e] +_0808A466: + pop {r4, r5, pc} + .align 2, 0 +_0808A468: .4byte gUnk_08121068 + + thumb_func_start sub_0808A46C +sub_0808A46C: @ 0x0808A46C + push {lr} + ldr r2, _0808A480 @ =gUnk_08121070 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808A480: .4byte gUnk_08121070 + + thumb_func_start sub_0808A484 +sub_0808A484: @ 0x0808A484 + push {r4, lr} + movs r3, #1 + movs r1, #1 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x18] + subs r1, #5 + ands r1, r2 + orrs r1, r3 + strb r1, [r0, #0x18] + movs r1, #0x40 + strh r1, [r0, #0x24] + movs r1, #6 + strb r1, [r0, #0x15] + ldrb r3, [r0, #0x19] + movs r2, #0x3f + adds r1, r2, #0 + ands r1, r3 + movs r4, #0x40 + orrs r1, r4 + strb r1, [r0, #0x19] + movs r1, #0x29 + adds r1, r1, r0 + mov ip, r1 + ldrb r3, [r1] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r3 + mov r3, ip + strb r1, [r3] + ldrb r1, [r0, #0x1b] + ands r2, r1 + orrs r2, r4 + strb r2, [r0, #0x1b] + movs r1, #0x28 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808A4D0 +sub_0808A4D0: @ 0x0808A4D0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808A4F2 + adds r0, r4, #0 + bl sub_0805E7BC +_0808A4F2: + pop {r4, pc} + + thumb_func_start sub_0808A4F4 +sub_0808A4F4: @ 0x0808A4F4 + push {lr} + ldr r2, _0808A508 @ =gUnk_08121078 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808A508: .4byte gUnk_08121078 + + thumb_func_start sub_0808A50C +sub_0808A50C: @ 0x0808A50C + push {lr} + ldrb r2, [r0, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #1 + orrs r1, r2 + strb r1, [r0, #0x18] + ldrb r1, [r0, #0xc] + adds r1, #1 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x19] + movs r1, #0x3f + ands r1, r2 + movs r2, #0x80 + orrs r1, r2 + strb r1, [r0, #0x19] + adds r3, r0, #0 + adds r3, #0x29 + ldrb r2, [r3] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #4 + orrs r1, r2 + movs r2, #0x39 + rsbs r2, r2, #0 + ands r1, r2 + movs r2, #0x18 + orrs r1, r2 + strb r1, [r3] + bl sub_0808A644 + pop {pc} + + thumb_func_start sub_0808A550 +sub_0808A550: @ 0x0808A550 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x74 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002B0 + adds r1, r0, #0 + ldr r0, _0808A58C @ =0x0000401F + cmp r1, r0 + bhi _0808A5CC + subs r0, #3 + cmp r1, r0 + blo _0808A5CC + adds r0, r1, #0 + subs r0, #0x1c + lsls r1, r0, #1 + strb r1, [r4, #0x14] + lsls r1, r0, #3 + strb r1, [r4, #0x15] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _0808A590 + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + b _0808A598 + .align 2, 0 +_0808A58C: .4byte 0x0000401F +_0808A590: + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 +_0808A598: + strb r0, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x70 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x74 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 + adds r1, #1 + adds r0, r4, #0 + bl sub_08004260 + ldr r0, _0808A5C8 @ =0x0000010F + bl sub_08004488 + b _0808A5DE + .align 2, 0 +_0808A5C8: .4byte 0x0000010F +_0808A5CC: + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0 + beq _0808A5DE + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_0808A5DE: + pop {r4, pc} + + thumb_func_start sub_0808A5E0 +sub_0808A5E0: @ 0x0808A5E0 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0800445C + ldr r2, _0808A618 @ =gUnk_08121088 + adds r5, r4, #0 + adds r5, #0x5a + ldrb r1, [r5] + movs r0, #0xf + ands r0, r1 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_08004274 + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808A616 + movs r0, #0 + strb r0, [r4, #0xc] +_0808A616: + pop {r4, r5, pc} + .align 2, 0 +_0808A618: .4byte gUnk_08121088 + + thumb_func_start sub_0808A61C +sub_0808A61C: @ 0x0808A61C + push {lr} + adds r2, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0808A634 + adds r0, r2, #0 + bl sub_08004274 + b _0808A640 +_0808A634: + adds r0, r2, #0 + adds r0, #0x29 + ldrb r1, [r0] + movs r2, #7 + orrs r1, r2 + strb r1, [r0] +_0808A640: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808A644 +sub_0808A644: @ 0x0808A644 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0808A6D0 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r5, r4, #0 + adds r5, #0x74 + strh r1, [r5] + ldrh r0, [r5] + adds r6, r4, #0 + adds r6, #0x38 + ldrb r1, [r6] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x70 + strh r0, [r1] + ldrh r0, [r5] + ldrb r1, [r6] + bl sub_080002E0 + adds r1, r4, #0 + adds r1, #0x72 + strb r0, [r1] + ldrh r0, [r5] + ldrb r1, [r6] + bl sub_080002C8 + cmp r0, #0x19 + beq _0808A69E + cmp r0, #0xf0 + bne _0808A6E2 +_0808A69E: + ldr r0, _0808A6D4 @ =0x00004015 + ldrh r1, [r5] + ldrb r2, [r6] + bl sub_0800015E + movs r0, #3 + strb r0, [r4, #0xc] + adds r5, r4, #0 + adds r5, #0x86 + ldrh r0, [r5] + bl sub_0807CBE4 + cmp r0, #0 + bne _0808A6D8 + ldrh r0, [r5] + bl sub_0807CCC8 + movs r0, #0xcd + bl sub_080A3268 + adds r0, r4, #0 + movs r1, #5 + bl sub_08004260 + b _0808A6EC + .align 2, 0 +_0808A6D0: .4byte gUnk_03000BF0 +_0808A6D4: .4byte 0x00004015 +_0808A6D8: + adds r0, r4, #0 + movs r1, #6 + bl sub_08004260 + b _0808A6EC +_0808A6E2: + ldr r0, _0808A6F0 @ =0x0000401B + ldrh r1, [r5] + ldrb r2, [r6] + bl sub_0800015E +_0808A6EC: + pop {r4, r5, r6, pc} + .align 2, 0 +_0808A6F0: .4byte 0x0000401B + + thumb_func_start sub_0808A6F4 +sub_0808A6F4: @ 0x0808A6F4 + push {lr} + adds r2, r0, #0 + adds r0, #0x3d + movs r1, #0 + ldrsb r1, [r0, r1] + cmp r1, #0 + bne _0808A706 + adds r0, #0x33 + strh r1, [r0] +_0808A706: + ldr r0, _0808A718 @ =gUnk_08121178 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808A718: .4byte gUnk_08121178 + + thumb_func_start sub_0808A71C +sub_0808A71C: @ 0x0808A71C + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #1 + strb r5, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #3 + movs r0, #0x8f + strb r0, [r1] + subs r1, #4 + movs r0, #0xa + strb r0, [r1] + ldr r0, _0808A75C @ =gUnk_08121180 + str r0, [r4, #0x48] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0808A764 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0808A760 + strb r5, [r4, #0xa] + b _0808A76E + .align 2, 0 +_0808A75C: .4byte gUnk_08121180 +_0808A760: + strb r0, [r4, #0xa] + b _0808A76E +_0808A764: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 +_0808A76E: + adds r0, r4, #0 + bl sub_0808A7D8 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0808A778 +sub_0808A778: @ 0x0808A778 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808A7D0 + adds r1, r5, #0 + adds r1, #0x70 + ldrh r0, [r1] + cmp r0, #0 + bne _0808A7D0 + movs r0, #1 + strh r0, [r1] + ldrb r0, [r5, #0xa] + movs r1, #1 + eors r0, r1 + strb r0, [r5, #0xa] + adds r1, r5, #0 + adds r1, #0x3d + movs r0, #0xe8 + strb r0, [r1] + adds r0, r5, #0 + bl sub_0808A7D8 + adds r4, r5, #0 + adds r4, #0x86 + ldrh r0, [r4] + bl sub_0807CBE4 + cmp r0, #0 + beq _0808A7C2 + ldrh r0, [r4] + bl sub_0807CD48 + b _0808A7C8 +_0808A7C2: + ldrh r0, [r4] + bl sub_0807CCC8 +_0808A7C8: + ldr r1, _0808A7D4 @ =0x00000117 + adds r0, r5, #0 + bl sub_0800449C +_0808A7D0: + pop {r4, r5, pc} + .align 2, 0 +_0808A7D4: .4byte 0x00000117 + + thumb_func_start sub_0808A7D8 +sub_0808A7D8: @ 0x0808A7D8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xa] + cmp r0, #0 + beq _0808A818 + movs r0, #0xde + lsls r0, r0, #2 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _0808A814 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0807B7D8 + b _0808A844 + .align 2, 0 +_0808A814: .4byte gUnk_03000BF0 +_0808A818: + ldr r0, _0808A848 @ =0x00000377 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _0808A84C @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0807B7D8 +_0808A844: + pop {r4, r5, r6, pc} + .align 2, 0 +_0808A848: .4byte 0x00000377 +_0808A84C: .4byte gUnk_03000BF0 + + thumb_func_start sub_0808A850 +sub_0808A850: @ 0x0808A850 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0808A86C @ =gUnk_08121188 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_08080CB4 + pop {r4, pc} + .align 2, 0 +_0808A86C: .4byte gUnk_08121188 + + thumb_func_start sub_0808A870 +sub_0808A870: @ 0x0808A870 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xa] + cmp r0, #1 + beq _0808A8BE + cmp r0, #1 + bgt _0808A884 + cmp r0, #0 + beq _0808A896 + b _0808A8C4 +_0808A884: + cmp r0, #3 + bgt _0808A8C4 + adds r0, r5, #0 + bl sub_0808A968 + adds r0, r5, #0 + bl sub_0808A8E0 + b _0808A8C4 +_0808A896: + adds r0, r5, #0 + adds r0, #0x38 + ldrb r0, [r0] + bl sub_0808094C + adds r4, r0, #0 + adds r0, r5, #0 + bl sub_0806F798 + lsls r0, r0, #1 + adds r0, #4 + adds r4, r4, r0 + str r4, [r5, #0x6c] + ldrh r1, [r4] + adds r0, r5, #0 + adds r0, #0x68 + strh r1, [r0] + movs r0, #1 + strb r0, [r5, #0xc] + b _0808A8C4 +_0808A8BE: + adds r0, r5, #0 + bl sub_0808A968 +_0808A8C4: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0808A8C8 +sub_0808A8C8: @ 0x0808A8C8 + push {lr} + adds r2, r0, #0 + adds r0, #0x68 + ldr r1, [r2, #0x6c] + ldrh r0, [r0] + ldrh r1, [r1] + cmp r0, r1 + beq _0808A8DE + adds r0, r2, #0 + bl sub_0808A968 +_0808A8DE: + pop {pc} + + thumb_func_start sub_0808A8E0 +sub_0808A8E0: @ 0x0808A8E0 + push {r4, lr} + adds r4, r0, #0 + ldrb r2, [r4, #0xa] + cmp r2, #0 + beq _0808A8F0 + cmp r2, #1 + beq _0808A930 + b _0808A954 +_0808A8F0: + ldr r0, [r4, #0x70] + cmp r0, #0 + beq _0808A930 + ldr r3, [r4, #0x20] + cmp r3, #0 + bge _0808A926 + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #8 + rsbs r0, r0, #0 + cmp r1, r0 + ble _0808A90C + str r2, [r4, #0x70] + b _0808A926 +_0808A90C: + ldr r0, _0808A918 @ =0xFFFFC000 + cmp r3, r0 + bge _0808A920 + ldr r0, _0808A91C @ =0xFFFFFC00 + b _0808A924 + .align 2, 0 +_0808A918: .4byte 0xFFFFC000 +_0808A91C: .4byte 0xFFFFFC00 +_0808A920: + movs r0, #0x80 + lsls r0, r0, #3 +_0808A924: + str r0, [r4, #0x70] +_0808A926: + ldr r1, [r4, #0x70] + adds r0, r4, #0 + bl sub_08003FC4 + b _0808A962 +_0808A930: + ldr r2, _0808A964 @ =gUnk_08121194 + ldrb r0, [r4, #0xf] + adds r1, r0, #1 + strb r1, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1b + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_08017850 + cmp r0, #0 + beq _0808A962 +_0808A954: + ldrb r1, [r4, #0xb] + movs r0, #0x5c + movs r2, #0 + bl sub_080A7C00 + bl sub_0805E780 +_0808A962: + pop {r4, pc} + .align 2, 0 +_0808A964: .4byte gUnk_08121194 + + thumb_func_start sub_0808A968 +sub_0808A968: @ 0x0808A968 + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #0x22 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #0xa0 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x18 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0x18] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + adds r2, #0x13 + ldrb r1, [r2] + movs r0, #0x10 + orrs r0, r1 + strb r0, [r2] + ldr r0, _0808A9C0 @ =gUnk_08121C58 + str r0, [r4, #0x48] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + movs r0, #0xa0 + lsls r0, r0, #6 + str r0, [r4, #0x70] + pop {r4, pc} + .align 2, 0 +_0808A9C0: .4byte gUnk_08121C58 + + thumb_func_start sub_0808A9C4 +sub_0808A9C4: @ 0x0808A9C4 + push {lr} + ldr r2, _0808A9D8 @ =gUnk_0812119C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808A9D8: .4byte gUnk_0812119C + + thumb_func_start sub_0808A9DC +sub_0808A9DC: @ 0x0808A9DC + movs r1, #1 + strb r1, [r0, #0xc] + ldrb r1, [r0, #0xa] + strb r1, [r0, #0x1e] + ldrb r1, [r0, #0x19] + movs r2, #0xc0 + orrs r1, r2 + strb r1, [r0, #0x19] + adds r0, #0x29 + ldrb r1, [r0] + movs r2, #7 + orrs r1, r2 + strb r1, [r0] + bx lr + + thumb_func_start nullsub_519 +nullsub_519: @ 0x0808A9F8 + bx lr + .align 2, 0 + + thumb_func_start sub_0808A9FC +sub_0808A9FC: @ 0x0808A9FC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0808AA18 @ =gUnk_081211A4 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r4, #0x41 + movs r0, #0 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_0808AA18: .4byte gUnk_081211A4 + + thumb_func_start sub_0808AA1C +sub_0808AA1C: @ 0x0808AA1C + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + movs r4, #0 + movs r6, #1 + strb r6, [r5, #0xc] + bl sub_08052660 + cmp r0, #0 + bne _0808AA36 + adds r0, r5, #0 + movs r1, #0 + bl sub_0801D2B4 +_0808AA36: + ldrb r0, [r5, #0xa] + cmp r0, #1 + beq _0808AACC + cmp r0, #1 + bgt _0808AA46 + cmp r0, #0 + beq _0808AA4C + b _0808AB5E +_0808AA46: + cmp r0, #2 + beq _0808AB20 + b _0808AB5E +_0808AA4C: + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _0808AAC0 @ =gUnk_080FD224 + str r0, [r5, #0x48] + strb r6, [r5, #0x16] + ldr r0, _0808AAC4 @ =0x00004022 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _0808AAC8 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r7, #0x32 + ldrsh r2, [r5, r7] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + adds r0, r5, #0 + adds r0, #0x45 + strb r6, [r0] + adds r1, r5, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #3 + movs r0, #0x6e + strb r0, [r1] + subs r1, #4 + movs r0, #0xe + strb r0, [r1] + strb r6, [r5, #0x1c] + ldrb r0, [r5, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + adds r1, r5, #0 + adds r1, #0x63 + movs r0, #4 + strb r0, [r1] + b _0808AB5E + .align 2, 0 +_0808AAC0: .4byte gUnk_080FD224 +_0808AAC4: .4byte 0x00004022 +_0808AAC8: .4byte gUnk_03000BF0 +_0808AACC: + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r5, #0xb] + cmp r0, #0 + beq _0808AB10 + ldr r0, _0808AB1C @ =gUnk_080FD224 + str r0, [r5, #0x48] + ldrb r0, [r5, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + adds r0, r5, #0 + adds r0, #0x45 + strb r6, [r0] + adds r1, r5, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #3 + movs r0, #0x6e + strb r0, [r1] + subs r1, #4 + movs r0, #4 + strb r0, [r1] + strb r6, [r5, #0x1c] + movs r0, #3 + strb r0, [r5, #0xc] +_0808AB10: + ldrb r1, [r5, #0x14] + adds r1, #9 + adds r0, r5, #0 + bl sub_08004260 + b _0808AB5E + .align 2, 0 +_0808AB1C: .4byte gUnk_080FD224 +_0808AB20: + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r5, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r5, #0x19] + ldrb r1, [r5, #0x14] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _0808AB52 + movs r0, #0x80 + lsls r0, r0, #2 + str r0, [r5, #0x74] + movs r0, #0x80 + lsls r0, r0, #1 + str r0, [r5, #0x78] + b _0808AB5E +_0808AB52: + movs r0, #0x80 + lsls r0, r0, #2 + str r0, [r5, #0x78] + movs r0, #0x80 + lsls r0, r0, #1 + str r0, [r5, #0x74] +_0808AB5E: + adds r0, r5, #0 + bl sub_0808AB68 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0808AB68 +sub_0808AB68: @ 0x0808AB68 + push {lr} + ldr r2, _0808AB7C @ =gUnk_081211B4 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808AB7C: .4byte gUnk_081211B4 + + thumb_func_start sub_0808AB80 +sub_0808AB80: @ 0x0808AB80 + push {lr} + ldr r2, _0808AB94 @ =gUnk_081211C0 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808AB94: .4byte gUnk_081211C0 + + thumb_func_start sub_0808AB98 +sub_0808AB98: @ 0x0808AB98 + push {lr} + adds r3, r0, #0 + ldr r2, [r3, #0x50] + ldrh r1, [r2, #0xc] + ldr r0, _0808ABB0 @ =0x00000201 + cmp r1, r0 + bne _0808ABB4 + movs r0, #0 + str r0, [r2, #0x54] + bl sub_0805E780 + b _0808ABC2 + .align 2, 0 +_0808ABB0: .4byte 0x00000201 +_0808ABB4: + ldrb r0, [r2, #0xc] + cmp r0, #2 + bne _0808ABC2 + adds r0, r3, #0 + movs r1, #0 + bl sub_0808B168 +_0808ABC2: + pop {pc} + + thumb_func_start sub_0808ABC4 +sub_0808ABC4: @ 0x0808ABC4 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldrh r1, [r0, #0xc] + ldr r0, _0808AC38 @ =0x00000201 + cmp r1, r0 + bne _0808ABD6 + bl sub_0805E780 +_0808ABD6: + ldr r0, [r4, #0x54] + ldr r1, [r4, #0x50] + bl sub_0808B1F0 + adds r2, r0, #0 + cmp r2, #7 + bhi _0808ABE6 + movs r2, #0 +_0808ABE6: + ldrb r3, [r4, #0x14] + lsls r1, r3, #2 + ldr r0, _0808AC3C @ =gUnk_081211CC + adds r5, r1, r0 + cmp r2, #0x1f + bhi _0808AC5A + cmp r2, #0 + beq _0808ABF8 + subs r2, #6 +_0808ABF8: + ldrh r0, [r5] + str r0, [r4, #0x70] + ldr r1, [r4, #0x50] + movs r0, #2 + ldrsb r0, [r5, r0] + ldrh r3, [r1, #0x2e] + adds r0, r0, r3 + strh r0, [r4, #0x2e] + movs r0, #3 + ldrsb r0, [r5, r0] + ldrh r1, [r1, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + ldrb r1, [r4, #0x14] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0808AC40 + lsls r1, r2, #4 + movs r0, #0x80 + lsls r0, r0, #2 + subs r0, r0, r1 + str r0, [r4, #0x74] + lsls r0, r2, #3 + movs r1, #0x90 + lsls r1, r1, #1 + adds r0, r0, r1 + str r0, [r4, #0x78] + movs r0, #0xf + strb r0, [r4, #0x1e] + b _0808ACDE + .align 2, 0 +_0808AC38: .4byte 0x00000201 +_0808AC3C: .4byte gUnk_081211CC +_0808AC40: + lsls r1, r2, #4 + movs r0, #0x80 + lsls r0, r0, #2 + subs r0, r0, r1 + str r0, [r4, #0x78] + lsls r0, r2, #3 + movs r3, #0x90 + lsls r3, r3, #1 + adds r0, r0, r3 + str r0, [r4, #0x74] + movs r0, #0x14 + strb r0, [r4, #0x1e] + b _0808ACDE +_0808AC5A: + movs r0, #1 + ands r3, r0 + cmp r3, #0 + beq _0808AC9E + adds r1, r2, #0 + subs r1, #0x20 + lsls r1, r1, #2 + adds r0, #0xff + subs r0, r0, r1 + str r0, [r4, #0x74] + lsls r0, r2, #3 + movs r1, #0xa0 + lsls r1, r1, #1 + adds r0, r0, r1 + str r0, [r4, #0x78] + movs r0, #0x10 + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x14] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0808AC92 + ldr r0, [r4, #0x50] + lsrs r1, r2, #1 + ldrh r0, [r0, #0x2e] + subs r0, r0, r1 + strh r0, [r4, #0x2e] + b _0808ACDE +_0808AC92: + ldr r1, [r4, #0x50] + lsrs r0, r2, #1 + ldrh r1, [r1, #0x2e] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + b _0808ACDE +_0808AC9E: + adds r1, r2, #0 + subs r1, #0x20 + lsls r1, r1, #2 + movs r0, #0x80 + lsls r0, r0, #1 + subs r0, r0, r1 + str r0, [r4, #0x78] + lsls r0, r2, #3 + movs r3, #0xa0 + lsls r3, r3, #1 + adds r0, r0, r3 + str r0, [r4, #0x74] + movs r0, #0x15 + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x14] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0808ACCE + ldr r0, [r4, #0x50] + lsrs r1, r2, #1 + ldrh r0, [r0, #0x32] + adds r1, r1, r0 + b _0808ACD6 +_0808ACCE: + ldr r0, [r4, #0x50] + lsrs r2, r2, #1 + ldrh r1, [r0, #0x32] + subs r1, r1, r2 +_0808ACD6: + movs r0, #3 + ldrsb r0, [r5, r0] + adds r0, r0, r1 + strh r0, [r4, #0x32] +_0808ACDE: + ldr r1, [r4, #0x74] + ldr r2, [r4, #0x78] + ldr r3, [r4, #0x70] + adds r0, r4, #0 + bl sub_0805EC9C + pop {r4, r5, pc} + + thumb_func_start sub_0808ACEC +sub_0808ACEC: @ 0x0808ACEC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0 + beq _0808AD00 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_0808AD00: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + subs r0, #4 + cmp r0, #0x12 + bhi _0808AD92 + lsls r0, r0, #2 + ldr r1, _0808AD1C @ =_0808AD20 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0808AD1C: .4byte _0808AD20 +_0808AD20: @ jump table + .4byte _0808AD6C @ case 0 + .4byte _0808AD6C @ case 1 + .4byte _0808AD6C @ case 2 + .4byte _0808AD92 @ case 3 + .4byte _0808AD6C @ case 4 + .4byte _0808AD6C @ case 5 + .4byte _0808AD6C @ case 6 + .4byte _0808AD6C @ case 7 + .4byte _0808AD6C @ case 8 + .4byte _0808AD6C @ case 9 + .4byte _0808AD92 @ case 10 + .4byte _0808AD92 @ case 11 + .4byte _0808AD6C @ case 12 + .4byte _0808AD6C @ case 13 + .4byte _0808AD6C @ case 14 + .4byte _0808AD88 @ case 15 + .4byte _0808AD6C @ case 16 + .4byte _0808AD92 @ case 17 + .4byte _0808AD6C @ case 18 +_0808AD6C: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + bl sub_0806F5A4 + strb r0, [r4, #0x14] + movs r0, #2 + strb r0, [r4, #0xd] + strb r0, [r4, #0xe] + b _0808AD9E +_0808AD88: + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + b _0808AD9E +_0808AD92: + movs r0, #0 + strb r0, [r4, #0xf] + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_08078930 +_0808AD9E: + pop {r4, pc} + + thumb_func_start sub_0808ADA0 +sub_0808ADA0: @ 0x0808ADA0 + push {r4, lr} + adds r4, r0, #0 + ldr r1, [r4, #0x54] + bl sub_0808B1F0 + cmp r0, #7 + bls _0808ADB4 + ldr r1, [r4, #0x54] + cmp r1, #0 + bne _0808ADE2 +_0808ADB4: + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + movs r2, #2 + movs r0, #2 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldrb r0, [r4, #0x14] + eors r0, r2 + strb r0, [r4, #0x14] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + b _0808ADEE +_0808ADE2: + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r1, #0x24] + ldr r0, [r4, #0x54] + bl sub_0806F69C +_0808ADEE: + pop {r4, pc} + + thumb_func_start sub_0808ADF0 +sub_0808ADF0: @ 0x0808ADF0 + push {r4, lr} + adds r4, r0, #0 + ldrb r2, [r4, #0x14] + adds r1, r2, #0 + adds r1, #0xd + adds r0, #0x58 + ldrb r0, [r0] + cmp r1, r0 + bne _0808AE26 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808AE1E + movs r0, #0 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + b _0808AE80 +_0808AE1E: + adds r0, r4, #0 + bl sub_08004274 + b _0808AE80 +_0808AE26: + adds r1, r2, #1 + cmp r1, r0 + beq _0808AE54 + adds r0, r4, #0 + bl sub_08004260 + ldrb r0, [r4, #0x14] + cmp r0, #3 + bne _0808AE42 + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + b _0808AE48 +_0808AE42: + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 +_0808AE48: + strb r0, [r4, #0x18] + movs r0, #0x97 + lsls r0, r0, #1 + bl sub_080A3268 + b _0808AE80 +_0808AE54: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808AE80 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _0808AE80 + ldrb r1, [r4, #0x14] + adds r1, #0xd + adds r0, r4, #0 + bl sub_08004260 +_0808AE80: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808AE84 +sub_0808AE84: @ 0x0808AE84 + push {lr} + adds r2, r0, #0 + ldr r0, _0808AEA8 @ =gUnk_03003F80 + ldrb r0, [r0, #5] + cmp r0, #0 + bne _0808AE94 + movs r0, #6 + strb r0, [r2, #0xd] +_0808AE94: + ldr r0, _0808AEAC @ =gUnk_081211DC + ldrb r1, [r2, #0xd] + subs r1, #5 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808AEA8: .4byte gUnk_03003F80 +_0808AEAC: .4byte gUnk_081211DC + + thumb_func_start sub_0808AEB0 +sub_0808AEB0: @ 0x0808AEB0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0808AF68 + ldr r1, [r4, #0x54] + adds r0, r4, #0 + bl sub_0808B1F0 + adds r6, r0, #0 + ldr r5, _0808AF10 @ =gUnk_03003F80 + adds r2, r5, #0 + adds r2, #0x90 + ldr r1, _0808AF14 @ =gUnk_081211E4 + ldrb r0, [r4, #0x14] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r2] + ldrh r0, [r0] + ands r0, r1 + cmp r0, #0 + beq _0808AF20 + adds r0, r4, #0 + bl sub_08004274 + cmp r6, #0x3f + bhi _0808AF08 + ldr r0, _0808AF18 @ =gUnk_03001160 + ldrb r2, [r4, #0x15] + movs r1, #0x40 + bl sub_080044AE + ldr r0, [r4, #0x7c] + subs r0, #1 + str r0, [r4, #0x7c] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _0808AF08 + movs r0, #4 + str r0, [r4, #0x7c] + ldr r0, _0808AF1C @ =0x0000012F + bl sub_080A3268 +_0808AF08: + movs r0, #1 + strb r0, [r4, #0xf] + b _0808AFD0 + .align 2, 0 +_0808AF10: .4byte gUnk_03003F80 +_0808AF14: .4byte gUnk_081211E4 +_0808AF18: .4byte gUnk_03001160 +_0808AF1C: .4byte 0x0000012F +_0808AF20: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0808AFD0 + ldr r2, _0808AF64 @ =gUnk_03001160 + ldrb r0, [r2, #0xc] + cmp r0, #1 + bne _0808AFD0 + adds r0, r5, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + bne _0808AFD0 + movs r0, #0x1b + strb r0, [r5, #0xc] + adds r0, r5, #0 + adds r0, #0x38 + strb r6, [r0] + ldrb r0, [r4, #0x15] + movs r1, #0x10 + eors r0, r1 + adds r1, r5, #0 + adds r1, #0x39 + strb r0, [r1] + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_0808B1F0 + adds r1, r5, #0 + adds r1, #0x3a + strb r0, [r1] + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + b _0808AFD0 + .align 2, 0 +_0808AF64: .4byte gUnk_03001160 +_0808AF68: + movs r6, #1 + strb r6, [r4, #0xe] + str r6, [r4, #0x7c] + ldr r5, _0808AFC8 @ =gUnk_03001160 + ldrb r0, [r5, #0x14] + lsrs r0, r0, #1 + movs r1, #2 + eors r0, r1 + strb r0, [r4, #0x14] + lsls r0, r0, #3 + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r0, [r5, #0x18] + movs r1, #0x40 + ands r1, r0 + ldrb r2, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x14] + adds r1, #5 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + movs r1, #0 + bl sub_0808B21C + cmp r0, #0 + beq _0808AFB6 + ldr r0, [r4, #0x54] + movs r1, #0 + bl sub_0808B168 +_0808AFB6: + ldrb r1, [r4, #0x14] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _0808AFCC + ldrh r0, [r4, #0x32] + strh r0, [r5, #0x32] + b _0808AFD0 + .align 2, 0 +_0808AFC8: .4byte gUnk_03001160 +_0808AFCC: + ldrh r0, [r4, #0x2e] + strh r0, [r5, #0x2e] +_0808AFD0: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0808AFD4 +sub_0808AFD4: @ 0x0808AFD4 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + strb r1, [r0, #0xd] + ldr r2, [r0, #0x54] + ldrb r0, [r0, #0x15] + movs r1, #0x10 + eors r0, r1 + strb r0, [r2, #0x15] + movs r0, #0x98 + lsls r0, r0, #1 + bl sub_080A3268 + pop {pc} + + thumb_func_start sub_0808AFF0 +sub_0808AFF0: @ 0x0808AFF0 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r1, _0808B054 @ =gUnk_081211EC + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldr r0, _0808B058 @ =gUnk_03003F80 + ldrb r1, [r0, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #1 + bne _0808B01E + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x13 + beq _0808B050 +_0808B01E: + ldrb r5, [r4, #0xa] + cmp r5, #1 + bne _0808B050 + ldr r0, [r4, #0x50] + strb r5, [r0, #0xc] + ldr r0, [r4, #0x50] + strb r5, [r0, #0xd] + ldr r2, [r4, #0x50] + ldrb r0, [r2, #0x15] + movs r1, #0x10 + eors r0, r1 + strb r0, [r4, #0x15] + ldrb r3, [r2, #0x10] + movs r1, #0x7f + adds r0, r1, #0 + ands r0, r3 + strb r0, [r2, #0x10] + ldrb r0, [r4, #0x10] + ands r1, r0 + strb r1, [r4, #0x10] + strb r5, [r4, #0xc] + movs r0, #0x98 + lsls r0, r0, #1 + bl sub_080A3268 +_0808B050: + pop {r4, r5, pc} + .align 2, 0 +_0808B054: .4byte gUnk_081211EC +_0808B058: .4byte gUnk_03003F80 + + thumb_func_start sub_0808B05C +sub_0808B05C: @ 0x0808B05C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0808B0AE + ldr r2, _0808B0B8 @ =gUnk_03001160 + ldrb r0, [r2, #0x14] + lsrs r0, r0, #1 + movs r1, #2 + eors r0, r1 + strb r0, [r4, #0x14] + lsls r0, r0, #3 + strb r0, [r4, #0x15] + ldrb r0, [r2, #0x18] + movs r1, #0x40 + ands r1, r0 + ldrb r2, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x14] + adds r1, #5 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + movs r1, #1 + bl sub_0808B21C + cmp r0, #0 + beq _0808B0AE + ldr r0, [r4, #0x54] + movs r1, #1 + bl sub_0808B168 +_0808B0AE: + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + pop {r4, pc} + .align 2, 0 +_0808B0B8: .4byte gUnk_03001160 + + thumb_func_start sub_0808B0BC +sub_0808B0BC: @ 0x0808B0BC + push {r4, r5, r6, r7, lr} + sub sp, #0x88 + adds r5, r0, #0 + ldr r1, [r5, #0x50] + bl sub_0808B1F0 + adds r7, r0, #0 + ldrb r0, [r5, #0xa] + cmp r0, #0 + beq _0808B0D6 + cmp r0, #1 + beq _0808B0DE + b _0808B162 +_0808B0D6: + adds r0, r5, #0 + bl sub_08004274 + b _0808B162 +_0808B0DE: + ldr r6, _0808B148 @ =gUnk_03001160 + ldrb r0, [r6, #0x14] + movs r1, #0xe + ands r1, r0 + ldr r0, _0808B14C @ =gUnk_08126EE4 + adds r1, r1, r0 + mov r2, sp + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r3, [r6, #0x2e] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + movs r0, #1 + ldrsb r0, [r1, r0] + ldrh r1, [r6, #0x32] + adds r0, r0, r1 + strh r0, [r2, #0x32] + mov r0, sp + adds r1, r5, #0 + movs r2, #7 + movs r3, #7 + bl sub_0800419C + cmp r0, #0 + beq _0808B154 + ldrb r0, [r6, #0xc] + cmp r0, #1 + bne _0808B162 + ldr r4, _0808B150 @ =gUnk_03003F80 + adds r0, r4, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + bne _0808B162 + movs r0, #0x1b + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x38 + strb r7, [r0] + ldrb r0, [r5, #0x15] + movs r1, #0x10 + eors r0, r1 + adds r1, r4, #0 + adds r1, #0x39 + strb r0, [r1] + ldr r0, [r5, #0x50] + adds r1, r6, #0 + bl sub_0808B1F0 + adds r1, r4, #0 + adds r1, #0x3a + strb r0, [r1] + b _0808B162 + .align 2, 0 +_0808B148: .4byte gUnk_03001160 +_0808B14C: .4byte gUnk_08126EE4 +_0808B150: .4byte gUnk_03003F80 +_0808B154: + movs r0, #0x40 + strh r0, [r5, #0x24] + cmp r7, #0x3f + bhi _0808B162 + adds r0, r5, #0 + bl sub_0806F69C +_0808B162: + add sp, #0x88 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0808B168 +sub_0808B168: @ 0x0808B168 + push {r4, r5, lr} + adds r3, r0, #0 + cmp r1, #0 + beq _0808B188 + ldrb r0, [r3, #0x14] + movs r1, #2 + eors r1, r0 + lsls r1, r1, #1 + ldr r0, _0808B184 @ =gUnk_081211F4 + adds r2, r1, r0 + adds r1, r2, #1 + ldr r4, [r3, #0x50] + adds r5, r4, #0 + b _0808B1CE + .align 2, 0 +_0808B184: .4byte gUnk_081211F4 +_0808B188: + ldrb r1, [r3, #0x14] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0808B1B8 + ldr r5, _0808B1AC @ =gUnk_03001160 + ldr r4, [r3, #0x50] + ldrb r1, [r3, #0x14] + lsls r2, r1, #1 + ldr r0, _0808B1B0 @ =gUnk_081211FC + adds r2, r2, r0 + movs r0, #2 + eors r1, r0 + lsls r1, r1, #1 + ldr r0, _0808B1B4 @ =gUnk_081211F5 + adds r1, r1, r0 + b _0808B1CE + .align 2, 0 +_0808B1AC: .4byte gUnk_03001160 +_0808B1B0: .4byte gUnk_081211FC +_0808B1B4: .4byte gUnk_081211F5 +_0808B1B8: + ldr r5, [r3, #0x50] + ldr r4, _0808B1E4 @ =gUnk_03001160 + movs r0, #2 + eors r0, r1 + lsls r0, r0, #1 + ldr r1, _0808B1E8 @ =gUnk_081211F4 + adds r2, r0, r1 + ldrb r0, [r3, #0x14] + lsls r0, r0, #1 + ldr r1, _0808B1EC @ =gUnk_081211FD + adds r1, r0, r1 +_0808B1CE: + movs r0, #0 + ldrsb r0, [r2, r0] + ldrh r5, [r5, #0x2e] + adds r0, r0, r5 + strh r0, [r3, #0x2e] + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r4, [r4, #0x32] + adds r0, r0, r4 + strh r0, [r3, #0x32] + pop {r4, r5, pc} + .align 2, 0 +_0808B1E4: .4byte gUnk_03001160 +_0808B1E8: .4byte gUnk_081211F4 +_0808B1EC: .4byte gUnk_081211FD + + thumb_func_start sub_0808B1F0 +sub_0808B1F0: @ 0x0808B1F0 + push {lr} + adds r2, r0, #0 + adds r3, r1, #0 + ldrb r1, [r2, #0x14] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0808B20A + movs r0, #0x2e + ldrsh r1, [r2, r0] + movs r2, #0x2e + ldrsh r0, [r3, r2] + b _0808B212 +_0808B20A: + movs r0, #0x32 + ldrsh r1, [r2, r0] + movs r2, #0x32 + ldrsh r0, [r3, r2] +_0808B212: + subs r0, r1, r0 + cmp r0, #0 + bge _0808B21A + rsbs r0, r0, #0 +_0808B21A: + pop {pc} + + thumb_func_start sub_0808B21C +sub_0808B21C: @ 0x0808B21C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #6 + orrs r1, r0 + strb r1, [r2] + adds r0, r4, #0 + movs r1, #0x32 + movs r2, #1 + movs r3, #0 + bl sub_080A2988 + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _0808B26E + ldrb r0, [r4, #0x14] + strb r0, [r1, #0x14] + ldr r1, [r4, #0x54] + ldrb r0, [r4, #0x15] + strb r0, [r1, #0x15] + ldr r3, [r4, #0x54] + ldrb r0, [r4, #0x18] + movs r1, #0x40 + ands r1, r0 + ldrb r2, [r3, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x18] + ldr r0, [r4, #0x54] + str r4, [r0, #0x50] + ldr r0, [r4, #0x54] + strb r5, [r0, #0xb] +_0808B26E: + adds r0, r4, #0 + movs r1, #0x32 + movs r2, #2 + movs r3, #0 + bl sub_080A2988 + adds r1, r0, #0 + str r1, [r4, #0x50] + cmp r1, #0 + bne _0808B286 + movs r0, #0 + b _0808B292 +_0808B286: + ldrb r0, [r4, #0x14] + strb r0, [r1, #0x14] + ldr r1, [r4, #0x50] + ldr r0, [r4, #0x54] + str r0, [r1, #0x54] + movs r0, #1 +_0808B292: + pop {r4, r5, pc} + + thumb_func_start sub_0808B294 +sub_0808B294: @ 0x0808B294 + push {lr} + ldr r2, _0808B2A8 @ =gUnk_08121300 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808B2A8: .4byte gUnk_08121300 + + thumb_func_start sub_0808B2AC +sub_0808B2AC: @ 0x0808B2AC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _0808B2C4 + adds r0, r4, #0 + bl sub_0808B41C + adds r0, r4, #0 + bl sub_0808B3AC + b _0808B2CA +_0808B2C4: + adds r0, r4, #0 + bl sub_0808B42C +_0808B2CA: + pop {r4, pc} + + thumb_func_start sub_0808B2CC +sub_0808B2CC: @ 0x0808B2CC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _0808B2E6 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0808B31C + b _0808B2F4 +_0808B2E6: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + bne _0808B31C +_0808B2F4: + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 + adds r0, r4, #0 + adds r0, #0x72 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x70 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + ldr r0, _0808B320 @ =0x000001A5 + bl sub_08004488 +_0808B31C: + pop {r4, pc} + .align 2, 0 +_0808B320: .4byte 0x000001A5 + + thumb_func_start sub_0808B324 +sub_0808B324: @ 0x0808B324 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808B340 + adds r0, r4, #0 + bl sub_0808B42C +_0808B340: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808B344 +sub_0808B344: @ 0x0808B344 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _0808B35E + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + bne _0808B384 + b _0808B36C +_0808B35E: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0808B384 +_0808B36C: + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0808B3AC + ldr r0, _0808B388 @ =0x000001A5 + bl sub_08004488 +_0808B384: + pop {r4, pc} + .align 2, 0 +_0808B388: .4byte 0x000001A5 + + thumb_func_start sub_0808B38C +sub_0808B38C: @ 0x0808B38C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808B3A8 + adds r0, r4, #0 + bl sub_0808B41C +_0808B3A8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808B3AC +sub_0808B3AC: @ 0x0808B3AC + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r2, r6, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x2e + ldrsh r1, [r6, r0] + ldr r2, _0808B414 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r4, #0x32 + ldrsh r0, [r6, r4] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r4, r6, #0 + adds r4, #0x70 + strh r1, [r4] + ldrh r0, [r4] + adds r5, r6, #0 + adds r5, #0x38 + ldrb r1, [r5] + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x72 + strh r0, [r1] + ldrh r0, [r4] + ldrb r1, [r5] + bl sub_080002E0 + adds r1, r6, #0 + adds r1, #0x74 + strb r0, [r1] + ldr r0, _0808B418 @ =0x0000400B + ldrh r1, [r4] + ldrb r2, [r5] + bl sub_0800015E + pop {r4, r5, r6, pc} + .align 2, 0 +_0808B414: .4byte gUnk_03000BF0 +_0808B418: .4byte 0x0000400B + + thumb_func_start sub_0808B41C +sub_0808B41C: @ 0x0808B41C + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808B42C +sub_0808B42C: @ 0x0808B42C + push {lr} + movs r1, #3 + strb r1, [r0, #0xc] + adds r3, r0, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r2, #7 + orrs r1, r2 + strb r1, [r3] + movs r1, #1 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808B448 +sub_0808B448: @ 0x0808B448 + push {lr} + adds r2, r0, #0 + adds r0, #0x70 + ldrb r0, [r0] + cmp r0, #0 + bne _0808B46C + ldr r0, _0808B468 @ =gUnk_08121368 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _0808B472 + .align 2, 0 +_0808B468: .4byte gUnk_08121368 +_0808B46C: + adds r0, r2, #0 + bl sub_0808B73C +_0808B472: + pop {pc} + + thumb_func_start sub_0808B474 +sub_0808B474: @ 0x0808B474 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xf] + ldr r1, _0808B4D8 @ =gUnk_08121380 + ldrb r0, [r4, #0xa] + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #0xf + ands r1, r0 + ldrb r3, [r4, #0x1a] + movs r2, #0x10 + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r4, #0x1a] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r3] + ldr r0, _0808B4DC @ =gUnk_080FD168 + str r0, [r4, #0x48] + ldrb r0, [r4, #0x11] + ands r2, r0 + movs r0, #3 + orrs r2, r0 + strb r2, [r4, #0x11] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0808B4E0 + adds r0, r4, #0 + bl sub_0808B830 + b _0808B4F8 + .align 2, 0 +_0808B4D8: .4byte gUnk_08121380 +_0808B4DC: .4byte gUnk_080FD168 +_0808B4E0: + bl sub_08052660 + cmp r0, #0 + beq _0808B4F8 + ldrb r0, [r4, #0xa] + bl sub_0807CAEC + cmp r0, #0 + beq _0808B4F8 + adds r0, r4, #0 + bl sub_0808B830 +_0808B4F8: + adds r0, r4, #0 + bl sub_0808B7C8 + cmp r0, #0 + beq _0808B528 + movs r2, #4 + strb r2, [r4, #0xc] + movs r0, #0x60 + strb r0, [r4, #0xf] + ldr r1, _0808B52C @ =gUnk_03001160 + ldrh r0, [r4, #0x2e] + strh r0, [r1, #0x2e] + ldrh r0, [r4, #0x32] + strh r0, [r1, #0x32] + strb r2, [r1, #0x14] + movs r0, #0x89 + lsls r0, r0, #1 + bl sub_08004488 + ldrb r1, [r4, #0xf] + adds r1, #0x10 + adds r0, r4, #0 + bl sub_0805E4E0 +_0808B528: + pop {r4, pc} + .align 2, 0 +_0808B52C: .4byte gUnk_03001160 + + thumb_func_start sub_0808B530 +sub_0808B530: @ 0x0808B530 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0808B562 + adds r0, r4, #0 + bl sub_0808B830 + bl sub_08052660 + cmp r0, #0 + beq _0808B554 + ldrb r0, [r4, #0xa] + bl sub_0807CAC8 +_0808B554: + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xf] + adds r0, #0xd6 + bl sub_08004488 +_0808B562: + pop {r4, pc} + + thumb_func_start sub_0808B564 +sub_0808B564: @ 0x0808B564 + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xf] + subs r1, r0, #1 + strb r1, [r3, #0xf] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _0808B57A + movs r0, #3 + strb r0, [r3, #0xc] + b _0808B58E +_0808B57A: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x19 + movs r1, #1 + bics r1, r0 + ldrb r2, [r3, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x18] +_0808B58E: + pop {pc} + + thumb_func_start sub_0808B590 +sub_0808B590: @ 0x0808B590 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0808B7C8 + cmp r0, #0 + beq _0808B5E4 + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _0808B5E6 + movs r0, #5 + strb r0, [r4, #0xc] + movs r0, #0x60 + strb r0, [r4, #0xf] + bl sub_08077B20 + ldr r1, _0808B5DC @ =gUnk_03001160 + ldrh r0, [r4, #0x2e] + strh r0, [r1, #0x2e] + ldrh r0, [r4, #0x32] + strh r0, [r1, #0x32] + movs r0, #4 + strb r0, [r1, #0x14] + ldrb r2, [r1, #0x10] + movs r0, #0x7f + ands r0, r2 + strb r0, [r1, #0x10] + ldrb r1, [r4, #0xf] + adds r1, #0x10 + adds r0, r4, #0 + bl sub_0805E4E0 + ldr r0, _0808B5E0 @ =0x00000113 + bl sub_080A3268 + b _0808B5E6 + .align 2, 0 +_0808B5DC: .4byte gUnk_03001160 +_0808B5E0: .4byte 0x00000113 +_0808B5E4: + strb r0, [r4, #0xe] +_0808B5E6: + pop {r4, pc} + + thumb_func_start sub_0808B5E8 +sub_0808B5E8: @ 0x0808B5E8 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + subs r1, r0, #1 + strb r1, [r4, #0xf] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _0808B610 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #1 + strb r0, [r4, #0xe] + ldr r1, _0808B60C @ =gUnk_03001160 + movs r0, #4 + strb r0, [r1, #0x14] + movs r0, #0x10 + strb r0, [r1, #0x15] + b _0808B67E + .align 2, 0 +_0808B60C: .4byte gUnk_03001160 +_0808B610: + movs r5, #0 + movs r0, #0x60 + ands r0, r1 + cmp r0, #0x20 + beq _0808B644 + cmp r0, #0x20 + bgt _0808B624 + cmp r0, #0 + beq _0808B64E + b _0808B66E +_0808B624: + cmp r0, #0x40 + bne _0808B66E + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x58 + bne _0808B638 + movs r0, #0x8a + lsls r0, r0, #1 + bl sub_080A3268 +_0808B638: + ldrb r1, [r4, #0xf] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0808B66E + b _0808B672 +_0808B644: + movs r0, #3 + ands r1, r0 + cmp r1, #0 + bne _0808B66E + b _0808B672 +_0808B64E: + movs r0, #7 + ands r0, r1 + cmp r0, #0 + bne _0808B66E + ldr r0, _0808B668 @ =gUnk_03001160 + ldrb r0, [r0, #0x14] + cmp r0, #4 + bne _0808B66C + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x18 + bls _0808B66E + b _0808B672 + .align 2, 0 +_0808B668: .4byte gUnk_03001160 +_0808B66C: + movs r5, #1 +_0808B66E: + cmp r5, #0 + beq _0808B67E +_0808B672: + ldr r0, _0808B680 @ =gUnk_03001160 + ldrb r1, [r0, #0x14] + adds r1, #2 + movs r2, #6 + ands r1, r2 + strb r1, [r0, #0x14] +_0808B67E: + pop {r4, r5, pc} + .align 2, 0 +_0808B680: .4byte gUnk_03001160 + + thumb_func_start sub_0808B684 +sub_0808B684: @ 0x0808B684 + push {lr} + mov ip, r0 + ldrb r0, [r0, #0xf] + subs r1, r0, #1 + mov r0, ip + strb r1, [r0, #0xf] + lsls r0, r1, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + bne _0808B6E8 + ldr r3, _0808B6E4 @ =gUnk_030010A0 + movs r0, #1 + strb r0, [r3, #8] + strb r2, [r3, #9] + mov r0, ip + adds r0, #0x7c + ldrb r0, [r0] + strb r0, [r3, #0xc] + mov r0, ip + adds r0, #0x7d + ldrb r0, [r0] + strb r0, [r3, #0xd] + mov r0, ip + adds r0, #0x84 + ldrh r1, [r0] + movs r0, #0x3f + ands r0, r1 + lsls r0, r0, #4 + adds r0, #8 + movs r2, #0 + strh r0, [r3, #0x10] + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r1 + lsrs r0, r0, #2 + adds r0, #8 + strh r0, [r3, #0x12] + strb r2, [r3, #0x14] + movs r0, #4 + strb r0, [r3, #0xe] + strb r2, [r3, #0xf] + mov r1, ip + ldrb r0, [r1, #0xa] + cmp r0, #2 + bne _0808B736 + strb r0, [r3, #9] + b _0808B736 + .align 2, 0 +_0808B6E4: .4byte gUnk_030010A0 +_0808B6E8: + movs r0, #0x60 + ands r0, r1 + cmp r0, #0x20 + beq _0808B702 + cmp r0, #0x20 + bgt _0808B6FA + cmp r0, #0 + beq _0808B706 + b _0808B724 +_0808B6FA: + cmp r0, #0x40 + bne _0808B724 + movs r0, #7 + b _0808B710 +_0808B702: + movs r0, #3 + b _0808B710 +_0808B706: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x10 + bls _0808B718 + movs r0, #1 +_0808B710: + ands r1, r0 + cmp r1, #0 + bne _0808B724 + b _0808B72A +_0808B718: + ldr r2, _0808B738 @ =gUnk_03001160 + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x18] +_0808B724: + movs r0, #0 + cmp r0, #0 + beq _0808B736 +_0808B72A: + ldr r0, _0808B738 @ =gUnk_03001160 + ldrb r1, [r0, #0x14] + adds r1, #2 + movs r2, #6 + ands r1, r2 + strb r1, [r0, #0x14] +_0808B736: + pop {pc} + .align 2, 0 +_0808B738: .4byte gUnk_03001160 + + thumb_func_start sub_0808B73C +sub_0808B73C: @ 0x0808B73C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0808B766 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, [r4, #0x50] + ldrb r1, [r0, #0x1a] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1c + ldrb r2, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1a] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_0808B766: + ldr r5, _0808B78C @ =gUnk_03001160 + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r0, #0x32 + ldrsh r2, [r5, r0] + adds r0, r4, #0 + movs r3, #0x28 + bl sub_0806FCB8 + cmp r0, #0 + beq _0808B790 + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r4, #0x18] + b _0808B7C0 + .align 2, 0 +_0808B78C: .4byte gUnk_03001160 +_0808B790: + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r0, #0x32 + ldrsh r2, [r5, r0] + adds r0, r4, #0 + movs r3, #0x2e + bl sub_0806FCB8 + cmp r0, #0 + beq _0808B7B6 + ldrb r2, [r4, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + b _0808B7BE +_0808B7B6: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 +_0808B7BE: + strb r0, [r4, #0x18] +_0808B7C0: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, r5, pc} + + thumb_func_start sub_0808B7C8 +sub_0808B7C8: @ 0x0808B7C8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r2, _0808B824 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0808B82C + adds r0, r2, #0 + adds r0, #0xa8 + ldrb r0, [r0] + cmp r0, #0x12 + beq _0808B82C + ldr r4, _0808B828 @ =gUnk_03001160 + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _0808B82C + bl sub_08079F8C + cmp r0, #0 + beq _0808B82C + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #5 + movs r3, #5 + bl sub_080041A0 + cmp r0, #0 + beq _0808B82C + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0808B82C + ldrb r0, [r5, #0xe] + cmp r0, #0 + bne _0808B81E + ldrb r0, [r4, #0xc] + cmp r0, #0x1b + bne _0808B81E + bl sub_080791D0 +_0808B81E: + movs r0, #1 + b _0808B82E + .align 2, 0 +_0808B824: .4byte gUnk_03003F80 +_0808B828: .4byte gUnk_03001160 +_0808B82C: + movs r0, #0 +_0808B82E: + pop {r4, r5, pc} + + thumb_func_start sub_0808B830 +sub_0808B830: @ 0x0808B830 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #7 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #0x34 + movs r1, #0 + movs r2, #0 + bl sub_080A2960 + adds r2, r0, #0 + cmp r2, #0 + beq _0808B86A + adds r1, r2, #0 + adds r1, #0x70 + movs r0, #1 + strb r0, [r1] + str r4, [r2, #0x50] + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_0806FA24 +_0808B86A: + pop {r4, pc} + + thumb_func_start sub_0808B86C +sub_0808B86C: @ 0x0808B86C + push {lr} + ldr r2, _0808B880 @ =gUnk_081213C4 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808B880: .4byte gUnk_081213C4 + + thumb_func_start sub_0808B884 +sub_0808B884: @ 0x0808B884 + push {lr} + ldr r2, _0808B898 @ =gUnk_081213D0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808B898: .4byte gUnk_081213D0 + + thumb_func_start sub_0808B89C +sub_0808B89C: @ 0x0808B89C + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r0, [r4, #0xb] + adds r1, r4, #0 + adds r1, #0x38 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + movs r0, #0xb4 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0xb] + adds r0, r4, #0 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808B8D4 +sub_0808B8D4: @ 0x0808B8D4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808B904 + movs r0, #0xb4 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xb] + adds r0, #1 + strb r0, [r4, #0xb] + ldrb r0, [r4, #0xb] + movs r1, #3 + bl __modsi3 + strb r0, [r4, #0xb] + ldrb r1, [r4, #0xb] + adds r0, r4, #0 + bl sub_08004260 +_0808B904: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808B908 +sub_0808B908: @ 0x0808B908 + push {lr} + bl sub_08004274 + pop {pc} + + thumb_func_start sub_0808B910 +sub_0808B910: @ 0x0808B910 + push {lr} + ldr r2, _0808B92C @ =gUnk_081213DC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + ldr r2, _0808B930 @ =gUnk_03003F80 + ldrb r1, [r2, #0x1a] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x1a] + pop {pc} + .align 2, 0 +_0808B92C: .4byte gUnk_081213DC +_0808B930: .4byte gUnk_03003F80 + + thumb_func_start sub_0808B934 +sub_0808B934: @ 0x0808B934 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + movs r7, #0 + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + strb r7, [r4, #0x1e] + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x70 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x72 + strh r0, [r1] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0808B9B8 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r5, r4, #0 + adds r5, #0x76 + strh r1, [r5] + ldrh r0, [r5] + adds r6, r4, #0 + adds r6, #0x38 + ldrb r1, [r6] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x74 + strh r0, [r1] + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _0808B9C0 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xf] + ldr r0, _0808B9BC @ =0x00004022 + ldrh r1, [r5] + ldrb r2, [r6] + bl sub_0800015E + b _0808B9D2 + .align 2, 0 +_0808B9B8: .4byte gUnk_03000BF0 +_0808B9BC: .4byte 0x00004022 +_0808B9C0: + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #7 + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x18] + strb r7, [r4, #0xe] +_0808B9D2: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0808B9D4 +sub_0808B9D4: @ 0x0808B9D4 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0 + bl sub_0807CC3C + cmp r0, #0 + beq _0808BA0A + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #7 + strb r0, [r4, #0xe] + strb r1, [r4, #0x15] + adds r0, r4, #0 + adds r0, #0x74 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x76 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + ldr r0, _0808BA0C @ =0x0000010B + bl sub_08004488 +_0808BA0A: + pop {r4, pc} + .align 2, 0 +_0808BA0C: .4byte 0x0000010B + + thumb_func_start sub_0808BA10 +sub_0808BA10: @ 0x0808BA10 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808BA44 + movs r0, #5 + strb r0, [r4, #0xc] + movs r0, #8 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #0xc + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x70 + ldrh r0, [r0] + strh r0, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x72 + ldrh r0, [r0] + strh r0, [r4, #0x32] +_0808BA44: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808BA48 +sub_0808BA48: @ 0x0808BA48 + push {r4, lr} + adds r4, r0, #0 + movs r1, #2 + bl sub_08083734 + cmp r0, #0 + beq _0808BA68 + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x76 + ldrh r2, [r0] + adds r0, r4, #0 + movs r1, #2 + bl sub_080836DC +_0808BA68: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808BA6C +sub_0808BA6C: @ 0x0808BA6C + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808BAA4 + movs r0, #5 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_08083814 + ldr r0, _0808BAA8 @ =0x0000010B + bl sub_08004488 + ldr r0, _0808BAAC @ =0x00004022 + adds r1, r4, #0 + adds r1, #0x76 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E +_0808BAA4: + pop {r4, pc} + .align 2, 0 +_0808BAA8: .4byte 0x0000010B +_0808BAAC: .4byte 0x00004022 + + thumb_func_start nullsub_520 +nullsub_520: @ 0x0808BAB0 + bx lr + .align 2, 0 + + thumb_func_start sub_0808BAB4 +sub_0808BAB4: @ 0x0808BAB4 + push {lr} + ldr r2, _0808BAC8 @ =gUnk_081213F4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808BAC8: .4byte gUnk_081213F4 + + thumb_func_start sub_0808BACC +sub_0808BACC: @ 0x0808BACC + push {r4, lr} + adds r2, r0, #0 + movs r4, #1 + strb r4, [r2, #0xc] + movs r3, #0x10 + strb r3, [r2, #0xe] + ldrh r0, [r2, #0x36] + subs r0, #0x10 + strh r0, [r2, #0x36] + ldrb r0, [r2, #0xb] + cmp r0, #0 + bne _0808BAEA + movs r0, #2 + strb r0, [r2, #0x1e] + b _0808BAFC +_0808BAEA: + movs r0, #0 + strb r0, [r2, #0x1e] + ldr r0, [r2, #0x50] + ldrh r1, [r0, #0x2e] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _0808BAFC + strb r4, [r2, #0x1e] +_0808BAFC: + adds r0, r2, #0 + bl sub_080A29BC + pop {r4, pc} + + thumb_func_start sub_0808BB04 +sub_0808BB04: @ 0x0808BB04 + push {lr} + ldrb r1, [r0, #0xe] + subs r1, #1 + strb r1, [r0, #0xe] + lsls r1, r1, #0x18 + cmp r1, #0 + bne _0808BB16 + bl sub_0805E780 +_0808BB16: + pop {pc} + + thumb_func_start sub_0808BB18 +sub_0808BB18: @ 0x0808BB18 + push {lr} + ldr r2, _0808BB2C @ =gUnk_08121440 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808BB2C: .4byte gUnk_08121440 + + thumb_func_start sub_0808BB30 +sub_0808BB30: @ 0x0808BB30 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x17 + bl sub_0807CC30 + adds r1, r0, #0 + cmp r1, #0 + beq _0808BB4C + movs r0, #0x4a + bl sub_0801D7EC + bl sub_0805E780 + b _0808BBD4 +_0808BB4C: + movs r3, #1 + strb r3, [r4, #0xc] + ldrb r0, [r4, #0x10] + movs r2, #0x80 + orrs r0, r2 + strb r0, [r4, #0x10] + movs r0, #0x78 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + ldrb r0, [r4, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x19] + movs r0, #0x29 + adds r0, r0, r4 + mov ip, r0 + ldrb r1, [r0] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + ldrb r1, [r4, #0x1b] + movs r0, #0x3f + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x1b] + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + adds r0, r4, #0 + adds r0, #0x3f + strb r3, [r0] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #4 + movs r0, #0x48 + strb r0, [r1] + subs r1, #5 + movs r0, #4 + strb r0, [r1] + ldr r0, _0808BBD8 @ =gUnk_080FD150 + str r0, [r4, #0x48] + movs r0, #2 + strb r0, [r4, #0x1e] + ldr r0, _0808BBDC @ =gUnk_03001160 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + adds r0, r4, #0 + bl sub_0808BDB0 + ldr r0, [r4, #0x50] + ldr r1, [r0, #0x20] + movs r2, #0xb8 + lsls r2, r2, #1 + adds r0, r2, #0 + subs r0, r0, r1 + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl sub_0808BBE0 +_0808BBD4: + pop {r4, pc} + .align 2, 0 +_0808BBD8: .4byte gUnk_080FD150 +_0808BBDC: .4byte gUnk_03001160 + + thumb_func_start sub_0808BBE0 +sub_0808BBE0: @ 0x0808BBE0 + push {lr} + adds r3, r0, #0 + movs r1, #0x32 + ldrsh r0, [r3, r1] + ldr r1, _0808BC20 @ =gUnk_03000BF0 + movs r2, #0xc + ldrsh r1, [r1, r2] + subs r1, r0, r1 + cmp r1, #0x9f + bhi _0808BC2C + adds r0, r1, #0 + cmp r1, #0 + bge _0808BBFC + adds r0, #0xf +_0808BBFC: + asrs r1, r0, #4 + ldr r0, _0808BC24 @ =gUnk_08121474 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, r3, #0 + adds r2, #0x63 + strb r0, [r2] + lsls r0, r1, #2 + ldr r1, _0808BC28 @ =gUnk_0812144C + adds r0, r0, r1 + ldrh r1, [r0] + ldrh r2, [r0, #2] + adds r0, r3, #0 + movs r3, #0 + bl sub_0805EC9C + b _0808BC38 + .align 2, 0 +_0808BC20: .4byte gUnk_03000BF0 +_0808BC24: .4byte gUnk_08121474 +_0808BC28: .4byte gUnk_0812144C +_0808BC2C: + adds r2, r3, #0 + adds r2, #0x41 + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] +_0808BC38: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808BC3C +sub_0808BC3C: @ 0x0808BC3C + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r2, _0808BC98 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + adds r0, #0x78 + movs r4, #0 + strh r0, [r5, #0x2e] + ldr r0, [r5, #0x50] + ldr r1, [r0, #0x20] + ldr r0, _0808BC9C @ =0xFFFFFE90 + adds r1, r1, r0 + ldrh r0, [r2, #8] + subs r0, r0, r1 + strh r0, [r5, #0x32] + adds r0, r5, #0 + bl sub_0808BBE0 + adds r0, r5, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x93 + bne _0808BCE4 + ldrb r0, [r5, #0xe] + subs r2, r0, #1 + strb r2, [r5, #0xe] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #0x18] + lsls r0, r2, #0x18 + cmp r0, #0 + bne _0808BCA0 + movs r0, #0x17 + bl sub_0807CD04 + movs r0, #2 + strb r0, [r5, #0xc] + movs r0, #0x80 + strb r0, [r5, #0xf] + adds r0, r5, #0 + adds r0, #0x63 + strb r4, [r0] + b _0808BCFE + .align 2, 0 +_0808BC98: .4byte gUnk_03000BF0 +_0808BC9C: .4byte 0xFFFFFE90 +_0808BCA0: + movs r6, #1 + ands r2, r6 + cmp r2, #0 + beq _0808BCCA + bl sub_08000E50 + movs r4, #3 + ands r0, r4 + ldr r1, _0808BCDC @ =0x0000FFFE + adds r0, r0, r1 + ldrh r1, [r5, #0x2e] + adds r0, r0, r1 + strh r0, [r5, #0x2e] + bl sub_08000E50 + ands r0, r4 + ldr r1, _0808BCE0 @ =0x0000FFFF + adds r0, r0, r1 + ldrh r1, [r5, #0x32] + adds r0, r0, r1 + strh r0, [r5, #0x32] +_0808BCCA: + ldrb r0, [r5, #0xf] + cmp r0, #1 + beq _0808BCFE + strb r6, [r5, #0xf] + movs r0, #0x4a + bl sub_0801D7EC + b _0808BCFE + .align 2, 0 +_0808BCDC: .4byte 0x0000FFFE +_0808BCE0: .4byte 0x0000FFFF +_0808BCE4: + movs r0, #0x78 + strb r0, [r5, #0xe] + ldrb r1, [r5, #0x18] + subs r0, #0x7c + ands r0, r1 + strb r0, [r5, #0x18] + ldrb r0, [r5, #0xf] + cmp r0, #0 + beq _0808BCFE + strb r4, [r5, #0xf] + movs r0, #0x49 + bl sub_0801D7EC +_0808BCFE: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0808BD00 +sub_0808BD00: @ 0x0808BD00 + push {lr} + movs r0, #0x17 + bl sub_0807CD04 + movs r0, #0x72 + bl sub_080A3268 + bl sub_0805E780 + pop {pc} + + thumb_func_start sub_0808BD14 +sub_0808BD14: @ 0x0808BD14 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xf] + cmp r0, #0 + beq _0808BD34 + subs r0, #8 + strb r0, [r5, #0xf] + ldrb r0, [r5, #0xf] + movs r2, #0x80 + lsls r2, r2, #2 + subs r2, r2, r0 + adds r0, r5, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C +_0808BD34: + adds r0, r5, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x93 + bne _0808BD74 + ldr r4, _0808BD70 @ =gUnk_03001160 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080045C4 + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_0806F69C + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r0, #0x32 + ldrsh r2, [r4, r0] + subs r2, #6 + adds r0, r5, #0 + movs r3, #0x1c + bl sub_0806FCB8 + cmp r0, #0 + beq _0808BDAE + adds r0, r5, #0 + bl sub_0808BD00 + b _0808BDAE + .align 2, 0 +_0808BD70: .4byte gUnk_03001160 +_0808BD74: + ldrb r1, [r5, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808BD8A + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + movs r0, #0x1e + strb r0, [r5, #0xe] + b _0808BDAE +_0808BD8A: + ldrb r2, [r5, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x18] + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808BDAE + adds r0, r5, #0 + bl sub_0808BD00 +_0808BDAE: + pop {r4, r5, pc} + + thumb_func_start sub_0808BDB0 +sub_0808BDB0: @ 0x0808BDB0 + push {r4, r5, r6, lr} + adds r3, r0, #0 + ldr r4, _0808BDD4 @ =gUnk_03003DA0 + ldr r2, [r4, #4] + movs r0, #0 + str r0, [r3, #0x50] + cmp r2, r4 + beq _0808BDE6 + ldr r6, _0808BDD8 @ =0x0000FFFF + ldr r5, _0808BDDC @ =0x00000C09 +_0808BDC4: + ldrh r1, [r2, #8] + adds r0, r6, #0 + ands r0, r1 + cmp r0, r5 + bne _0808BDE0 + str r2, [r3, #0x50] + b _0808BDE6 + .align 2, 0 +_0808BDD4: .4byte gUnk_03003DA0 +_0808BDD8: .4byte 0x0000FFFF +_0808BDDC: .4byte 0x00000C09 +_0808BDE0: + ldr r2, [r2, #4] + cmp r2, r4 + bne _0808BDC4 +_0808BDE6: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0808BDE8 +sub_0808BDE8: @ 0x0808BDE8 + push {lr} + ldr r2, _0808BDFC @ =gUnk_08121480 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808BDFC: .4byte gUnk_08121480 + + thumb_func_start sub_0808BE00 +sub_0808BE00: @ 0x0808BE00 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x38 + ldrb r0, [r0] + bl sub_0808094C + adds r4, r0, #0 + adds r0, r5, #0 + bl sub_0806F798 + lsls r0, r0, #1 + adds r0, #4 + adds r4, r4, r0 + str r4, [r5, #0x78] + ldrh r1, [r4] + adds r0, r5, #0 + adds r0, #0x70 + strh r1, [r0] + movs r0, #1 + strb r0, [r5, #0xc] + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0808BE2C +sub_0808BE2C: @ 0x0808BE2C + push {r4, lr} + adds r2, r0, #0 + ldr r0, _0808BE78 @ =gUnk_02002A40 + ldr r1, _0808BE7C @ =0x0000024E + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, #0 + beq _0808BE74 + adds r0, r2, #0 + adds r0, #0x70 + ldr r1, [r2, #0x78] + ldrh r0, [r0] + ldrh r1, [r1] + cmp r0, r1 + beq _0808BE74 + adds r0, r2, #0 + movs r1, #0x58 + movs r2, #0 + bl sub_080A2A20 + adds r1, r0, #0 + cmp r1, #0 + beq _0808BE6C + ldr r0, _0808BE80 @ =gUnk_03001160 + ldrb r0, [r0, #0x14] + lsls r0, r0, #2 + strb r0, [r1, #0x15] + movs r0, #0x80 + strh r0, [r1, #0x24] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r1, #0x20] +_0808BE6C: + movs r0, #1 + strb r0, [r4] + bl sub_0805E780 +_0808BE74: + pop {r4, pc} + .align 2, 0 +_0808BE78: .4byte gUnk_02002A40 +_0808BE7C: .4byte 0x0000024E +_0808BE80: .4byte gUnk_03001160 + + thumb_func_start sub_0808BE84 +sub_0808BE84: @ 0x0808BE84 + push {lr} + ldr r2, _0808BE98 @ =gUnk_08121488 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808BE98: .4byte gUnk_08121488 + + thumb_func_start sub_0808BE9C +sub_0808BE9C: @ 0x0808BE9C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + movs r2, #0 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x3f + movs r5, #1 + strb r5, [r0] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #0x47 + strb r0, [r1] + adds r1, #4 + movs r0, #0x44 + strb r0, [r1] + subs r1, #5 + movs r0, #0x80 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x68 + strb r2, [r0] + ldrb r0, [r4, #0xa] + bl sub_0807CBD0 + cmp r0, #0 + beq _0808BEEE + adds r0, r4, #0 + adds r0, #0x7c + ldrb r0, [r0] + cmp r0, #0 + bne _0808BEF8 + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC + b _0808BF10 +_0808BEEE: + adds r0, r4, #0 + adds r0, #0x7c + ldrb r0, [r0] + cmp r0, #0 + bne _0808BF04 +_0808BEF8: + strb r5, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + b _0808BF10 +_0808BF04: + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC +_0808BF10: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0808BF14 +sub_0808BF14: @ 0x0808BF14 + push {r4, lr} + adds r4, r0, #0 + bl sub_0808C128 + cmp r0, #0 + beq _0808BF4C + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0808C13C + adds r0, r4, #0 + adds r0, #0x7c + ldrb r0, [r0] + cmp r0, #0 + bne _0808BF3E + ldrb r0, [r4, #0xa] + bl sub_0807CCB4 + b _0808BF44 +_0808BF3E: + ldrb r0, [r4, #0xa] + bl sub_0807CD34 +_0808BF44: + adds r0, r4, #0 + movs r1, #0 + bl sub_0808C148 +_0808BF4C: + adds r0, r4, #0 + movs r1, #0 + bl sub_0808C01C + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808BF58 +sub_0808BF58: @ 0x0808BF58 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x80 + lsls r1, r1, #6 + bl sub_08003FC4 + ldrb r0, [r4, #0xd] + cmp r0, #1 + beq _0808BF94 + cmp r0, #1 + bgt _0808BF74 + cmp r0, #0 + beq _0808BF7A + b _0808BFD6 +_0808BF74: + cmp r0, #2 + beq _0808BFB0 + b _0808BFD6 +_0808BF7A: + ldr r1, [r4, #0x20] + ldr r0, _0808BF90 @ =0x00017FFF + cmp r1, r0 + bgt _0808BFD6 + movs r0, #1 + strb r0, [r4, #0xd] + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC + b _0808BFD6 + .align 2, 0 +_0808BF90: .4byte 0x00017FFF +_0808BF94: + adds r0, r4, #0 + bl sub_080042B8 + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0808BFD6 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x80 + lsls r0, r0, #8 + str r0, [r4, #0x20] + b _0808BFD6 +_0808BFB0: + adds r0, r4, #0 + bl sub_080042B8 + movs r0, #0x36 + ldrsh r1, [r4, r0] + cmp r1, #0 + bne _0808BFD6 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xf] + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC + adds r0, r4, #0 + movs r1, #1 + bl sub_0808C148 +_0808BFD6: + pop {r4, pc} + + thumb_func_start sub_0808BFD8 +sub_0808BFD8: @ 0x0808BFD8 + push {r4, lr} + adds r4, r0, #0 + bl sub_0808C128 + cmp r0, #0 + beq _0808C010 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0808C13C + adds r0, r4, #0 + adds r0, #0x7c + ldrb r0, [r0] + cmp r0, #0 + bne _0808C002 + ldrb r0, [r4, #0xa] + bl sub_0807CD34 + b _0808C008 +_0808C002: + ldrb r0, [r4, #0xa] + bl sub_0807CCB4 +_0808C008: + adds r0, r4, #0 + movs r1, #0 + bl sub_0808C148 +_0808C010: + adds r0, r4, #0 + movs r1, #1 + bl sub_0808C01C + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808C01C +sub_0808C01C: @ 0x0808C01C + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + subs r0, #0x18 + movs r2, #0x32 + ldrsh r1, [r4, r2] + subs r1, #0x18 + movs r2, #0x30 + movs r3, #0x30 + bl sub_0806FBFC + cmp r0, #0 + beq _0808C0A6 + ldr r2, _0808C06C @ =gUnk_02033A90 + ldrh r0, [r4, #0x2e] + strh r0, [r2, #0x12] + ldrh r0, [r4, #0x32] + strh r0, [r2, #0x14] + movs r6, #2 + strb r6, [r2, #0x16] + movs r0, #4 + cmp r5, #0 + beq _0808C050 + movs r0, #2 +_0808C050: + strb r0, [r2, #0x17] + cmp r5, #1 + bne _0808C0A6 + ldr r3, _0808C070 @ =gUnk_03003F80 + ldr r0, [r3, #0x30] + movs r1, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0808C074 + ldrb r0, [r3, #2] + cmp r0, #0 + bne _0808C074 + strb r6, [r2, #0x18] + b _0808C082 + .align 2, 0 +_0808C06C: .4byte gUnk_02033A90 +_0808C070: .4byte gUnk_03003F80 +_0808C074: + bl sub_08057810 + cmp r0, #0 + beq _0808C082 + ldr r1, _0808C0A8 @ =gUnk_02033A90 + movs r0, #3 + strb r0, [r1, #0x18] +_0808C082: + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_080577AC + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _0808C0A6 + movs r0, #1 + strb r0, [r4, #0xf] + movs r0, #0xa9 + lsls r0, r0, #1 + bl sub_080A3268 +_0808C0A6: + pop {r4, r5, r6, pc} + .align 2, 0 +_0808C0A8: .4byte gUnk_02033A90 + + thumb_func_start sub_0808C0AC +sub_0808C0AC: @ 0x0808C0AC + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x80 + lsls r1, r1, #6 + bl sub_08003FC4 + ldrb r0, [r4, #0xd] + cmp r0, #1 + beq _0808C0E8 + cmp r0, #1 + bgt _0808C0C8 + cmp r0, #0 + beq _0808C0CE + b _0808C126 +_0808C0C8: + cmp r0, #2 + beq _0808C104 + b _0808C126 +_0808C0CE: + ldr r1, [r4, #0x20] + ldr r0, _0808C0E4 @ =0x00017FFF + cmp r1, r0 + bgt _0808C126 + movs r0, #1 + strb r0, [r4, #0xd] + adds r0, r4, #0 + movs r1, #3 + bl sub_080042AC + b _0808C126 + .align 2, 0 +_0808C0E4: .4byte 0x00017FFF +_0808C0E8: + adds r0, r4, #0 + bl sub_080042B8 + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0808C126 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x80 + lsls r0, r0, #8 + str r0, [r4, #0x20] + b _0808C126 +_0808C104: + adds r0, r4, #0 + bl sub_080042B8 + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0808C126 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + adds r0, r4, #0 + movs r1, #1 + bl sub_0808C148 +_0808C126: + pop {r4, pc} + + thumb_func_start sub_0808C128 +sub_0808C128: @ 0x0808C128 + push {lr} + movs r1, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x9d + bne _0808C136 + movs r1, #1 +_0808C136: + adds r0, r1, #0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808C13C +sub_0808C13C: @ 0x0808C13C + movs r1, #0 + strb r1, [r0, #0xd] + movs r1, #0xa0 + lsls r1, r1, #0xa + str r1, [r0, #0x20] + bx lr + + thumb_func_start sub_0808C148 +sub_0808C148: @ 0x0808C148 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r2, #0x2e + ldrsh r0, [r6, r2] + ldr r4, _0808C1A4 @ =gUnk_03000BF0 + ldrh r2, [r4, #6] + subs r0, r0, r2 + asrs r5, r0, #4 + movs r3, #0x3f + ands r5, r3 + movs r2, #0x32 + ldrsh r0, [r6, r2] + ldrh r2, [r4, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r5, r0 + cmp r1, #0 + bne _0808C1B8 + ldr r0, _0808C1A8 @ =0x00004092 + subs r1, r5, #1 + adds r4, r6, #0 + adds r4, #0x38 + ldrb r2, [r4] + bl sub_0800015E + ldr r0, _0808C1AC @ =0x00004093 + ldrb r2, [r4] + adds r1, r5, #0 + bl sub_0800015E + ldr r0, _0808C1B0 @ =0x00004094 + adds r1, r5, #0 + adds r1, #0x3f + ldrb r2, [r4] + bl sub_0800015E + ldr r0, _0808C1B4 @ =0x00004095 + adds r1, r5, #0 + adds r1, #0x40 + ldrb r2, [r4] + bl sub_0800015E + b _0808C1E0 + .align 2, 0 +_0808C1A4: .4byte gUnk_03000BF0 +_0808C1A8: .4byte 0x00004092 +_0808C1AC: .4byte 0x00004093 +_0808C1B0: .4byte 0x00004094 +_0808C1B4: .4byte 0x00004095 +_0808C1B8: + subs r0, r5, #1 + adds r4, r6, #0 + adds r4, #0x38 + ldrb r1, [r4] + bl sub_0807BA8C + ldrb r1, [r4] + adds r0, r5, #0 + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x3f + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x40 + ldrb r1, [r4] + bl sub_0807BA8C +_0808C1E0: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0808C1E4 +sub_0808C1E4: @ 0x0808C1E4 + push {lr} + ldr r2, _0808C1F8 @ =gUnk_081214D8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808C1F8: .4byte gUnk_081214D8 + + thumb_func_start sub_0808C1FC +sub_0808C1FC: @ 0x0808C1FC + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x84 + ldrh r1, [r2] + ldr r0, _0808C2B0 @ =0x0000FFFF + cmp r1, r0 + beq _0808C21A + adds r0, r1, #0 + bl sub_0807CBE4 + cmp r0, #0 + beq _0808C21A + bl sub_0805E780 +_0808C21A: + adds r1, r4, #0 + adds r1, #0x86 + ldrh r0, [r1] + cmp r0, #0 + beq _0808C230 + bl sub_0807CBE4 + cmp r0, #0 + beq _0808C230 + bl sub_0805E780 +_0808C230: + ldrb r0, [r4, #0xa] + lsrs r0, r0, #2 + strb r0, [r4, #0xb] + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x70 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x72 + strh r0, [r1] + ldr r0, _0808C2B4 @ =gUnk_080FD180 + str r0, [r4, #0x48] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0xa] + movs r0, #3 + ands r0, r1 + adds r5, r4, #0 + adds r5, #0x76 + strh r0, [r5] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0808C2B8 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r6, #0x32 + ldrsh r0, [r4, r6] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r4, #0 + adds r0, #0x74 + strh r1, [r0] + ldrb r0, [r4, #0xa] + movs r1, #0x1f + ands r1, r0 + adds r0, r4, #0 + bl sub_08004260 + ldrb r0, [r4, #0xb] + cmp r0, #1 + beq _0808C2F8 + cmp r0, #1 + bgt _0808C2BC + cmp r0, #0 + beq _0808C2C2 + b _0808C31C + .align 2, 0 +_0808C2B0: .4byte 0x0000FFFF +_0808C2B4: .4byte gUnk_080FD180 +_0808C2B8: .4byte gUnk_03000BF0 +_0808C2BC: + cmp r0, #2 + beq _0808C306 + b _0808C31C +_0808C2C2: + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0808C500 + adds r0, r4, #0 + bl sub_08078800 + ldr r1, _0808C2F4 @ =gUnk_0811F740 + ldrh r0, [r5] + adds r0, r0, r1 + ldrb r2, [r0] + adds r0, r4, #0 + movs r1, #0 + movs r3, #0 + bl sub_08078850 + b _0808C31C + .align 2, 0 +_0808C2F4: .4byte gUnk_0811F740 +_0808C2F8: + movs r0, #4 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #8 + ands r0, r1 + strb r0, [r4, #0x18] + b _0808C31C +_0808C306: + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0808C500 +_0808C31C: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0808C320 +sub_0808C320: @ 0x0808C320 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _0808C344 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_080788E0 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 +_0808C344: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808C348 +sub_0808C348: @ 0x0808C348 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0808C37C + ldr r0, _0808C374 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0808C36A + ldr r0, _0808C378 @ =0x00000185 + bl sub_080A3268 +_0808C36A: + adds r0, r4, #0 + bl sub_08004274 + b _0808C382 + .align 2, 0 +_0808C374: .4byte gUnk_030010A0 +_0808C378: .4byte 0x00000185 +_0808C37C: + adds r0, r4, #0 + bl sub_0808C4BC +_0808C382: + pop {r4, pc} + + thumb_func_start sub_0808C384 +sub_0808C384: @ 0x0808C384 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808C3B4 + ldrb r0, [r4, #0xa] + cmp r0, #3 + bhi _0808C3B0 + movs r0, #0x40 + movs r1, #0 + movs r2, #1 + bl sub_08078AC0 + ldr r1, _0808C3B8 @ =gUnk_03001160 + ldrb r0, [r4, #0xa] + lsls r0, r0, #3 + strb r0, [r1, #0x15] +_0808C3B0: + bl sub_0805E780 +_0808C3B4: + pop {r4, pc} + .align 2, 0 +_0808C3B8: .4byte gUnk_03001160 + + thumb_func_start sub_0808C3BC +sub_0808C3BC: @ 0x0808C3BC + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x76 + ldrh r1, [r5] + bl sub_08083734 + cmp r0, #0 + beq _0808C40E + movs r0, #5 + strb r0, [r4, #0xc] + movs r0, #0xc + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #0x10 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r0, [r5] + lsls r0, r0, #3 + movs r1, #0x10 + eors r0, r1 + strb r0, [r4, #0x15] + ldrh r1, [r5] + lsls r1, r1, #1 + ldr r0, _0808C410 @ =gUnk_081214F4 + adds r1, r1, r0 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r2, [r4, #0x2e] + adds r0, r0, r2 + strh r0, [r4, #0x2e] + movs r0, #1 + ldrsb r0, [r1, r0] + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl sub_0808C500 +_0808C40E: + pop {r4, r5, pc} + .align 2, 0 +_0808C410: .4byte gUnk_081214F4 + + thumb_func_start sub_0808C414 +sub_0808C414: @ 0x0808C414 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0808C49A + movs r0, #6 + strb r0, [r4, #0xc] + strh r1, [r4, #0x36] + adds r0, r4, #0 + adds r0, #0x70 + ldrh r0, [r0] + strh r0, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x72 + ldrh r0, [r0] + strh r0, [r4, #0x32] + adds r0, r4, #0 + adds r0, #0x76 + ldrh r0, [r0] + lsls r0, r0, #2 + ldr r1, _0808C49C @ =gUnk_081214FC + adds r5, r0, r1 + adds r0, r4, #0 + movs r1, #0x11 + movs r2, #0x40 + bl sub_080A29AC + adds r1, r0, #0 + cmp r1, #0 + beq _0808C470 + movs r0, #0 + ldrsb r0, [r5, r0] + ldrh r2, [r1, #0x2e] + adds r0, r0, r2 + strh r0, [r1, #0x2e] + movs r0, #1 + ldrsb r0, [r5, r0] + ldrh r2, [r1, #0x32] + adds r0, r0, r2 + strh r0, [r1, #0x32] +_0808C470: + adds r0, r4, #0 + movs r1, #0x11 + movs r2, #0x40 + bl sub_080A29AC + adds r1, r0, #0 + cmp r1, #0 + beq _0808C494 + movs r0, #2 + ldrsb r0, [r5, r0] + ldrh r2, [r1, #0x2e] + adds r0, r0, r2 + strh r0, [r1, #0x2e] + movs r0, #3 + ldrsb r0, [r5, r0] + ldrh r2, [r1, #0x32] + adds r0, r0, r2 + strh r0, [r1, #0x32] +_0808C494: + ldr r0, _0808C4A0 @ =0x0000010B + bl sub_08004488 +_0808C49A: + pop {r4, r5, pc} + .align 2, 0 +_0808C49C: .4byte gUnk_081214FC +_0808C4A0: .4byte 0x0000010B + + thumb_func_start sub_0808C4A4 +sub_0808C4A4: @ 0x0808C4A4 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0808C4B8 + movs r0, #2 + strb r0, [r4, #0xc] +_0808C4B8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808C4BC +sub_0808C4BC: @ 0x0808C4BC + push {lr} + movs r1, #3 + strb r1, [r0, #0xc] + movs r1, #0xc + strb r1, [r0, #0xe] + adds r2, r0, #0 + adds r2, #0x76 + ldrh r1, [r2] + lsls r1, r1, #3 + strb r1, [r0, #0x15] + ldrh r2, [r2] + lsls r2, r2, #1 + ldr r1, _0808C4F8 @ =gUnk_0812150C + adds r2, r2, r1 + movs r1, #0 + ldrsb r1, [r2, r1] + ldrh r3, [r0, #0x2e] + adds r1, r1, r3 + strh r1, [r0, #0x2e] + movs r1, #1 + ldrsb r1, [r2, r1] + ldrh r2, [r0, #0x32] + adds r1, r1, r2 + strh r1, [r0, #0x32] + bl sub_0808C5D0 + ldr r0, _0808C4FC @ =0x0000010B + bl sub_080A3268 + pop {pc} + .align 2, 0 +_0808C4F8: .4byte gUnk_0812150C +_0808C4FC: .4byte 0x0000010B + + thumb_func_start sub_0808C500 +sub_0808C500: @ 0x0808C500 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r0, #0x76 + ldrh r0, [r0] + cmp r0, #0 + beq _0808C510 + cmp r0, #2 + bne _0808C570 +_0808C510: + adds r6, r4, #0 + adds r6, #0x74 + ldrh r0, [r6] + subs r0, #1 + adds r5, r4, #0 + adds r5, #0x38 + ldrb r1, [r5] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x78 + strh r0, [r1] + ldrh r0, [r6] + ldrb r1, [r5] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x7a + strh r0, [r1] + ldrh r0, [r6] + adds r0, #1 + ldrb r1, [r5] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x7c + strh r0, [r1] + ldr r4, _0808C56C @ =0x00004022 + ldrh r1, [r6] + subs r1, #1 + ldrb r2, [r5] + adds r0, r4, #0 + bl sub_0800015E + ldrh r1, [r6] + ldrb r2, [r5] + adds r0, r4, #0 + bl sub_0800015E + ldrh r1, [r6] + adds r1, #1 + ldrb r2, [r5] + adds r0, r4, #0 + bl sub_0800015E + b _0808C5CA + .align 2, 0 +_0808C56C: .4byte 0x00004022 +_0808C570: + adds r6, r4, #0 + adds r6, #0x74 + ldrh r0, [r6] + subs r0, #0x40 + adds r5, r4, #0 + adds r5, #0x38 + ldrb r1, [r5] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x78 + strh r0, [r1] + ldrh r0, [r6] + ldrb r1, [r5] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x7a + strh r0, [r1] + ldrh r0, [r6] + adds r0, #0x40 + ldrb r1, [r5] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x7c + strh r0, [r1] + ldr r4, _0808C5CC @ =0x00004022 + ldrh r1, [r6] + subs r1, #0x40 + ldrb r2, [r5] + adds r0, r4, #0 + bl sub_0800015E + ldrh r1, [r6] + ldrb r2, [r5] + adds r0, r4, #0 + bl sub_0800015E + ldrh r1, [r6] + adds r1, #0x40 + ldrb r2, [r5] + adds r0, r4, #0 + bl sub_0800015E +_0808C5CA: + pop {r4, r5, r6, pc} + .align 2, 0 +_0808C5CC: .4byte 0x00004022 + + thumb_func_start sub_0808C5D0 +sub_0808C5D0: @ 0x0808C5D0 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r0, #0x76 + ldrh r0, [r0] + cmp r0, #0 + beq _0808C5E0 + cmp r0, #2 + bne _0808C618 +_0808C5E0: + adds r0, r6, #0 + adds r0, #0x78 + ldrh r0, [r0] + adds r5, r6, #0 + adds r5, #0x74 + ldrh r1, [r5] + subs r1, #1 + adds r4, r6, #0 + adds r4, #0x38 + ldrb r2, [r4] + bl sub_0800015E + adds r0, r6, #0 + adds r0, #0x7a + ldrh r0, [r0] + ldrh r1, [r5] + ldrb r2, [r4] + bl sub_0800015E + adds r0, r6, #0 + adds r0, #0x7c + ldrh r0, [r0] + ldrh r1, [r5] + adds r1, #1 + ldrb r2, [r4] + bl sub_0800015E + b _0808C64E +_0808C618: + adds r0, r6, #0 + adds r0, #0x78 + ldrh r0, [r0] + adds r5, r6, #0 + adds r5, #0x74 + ldrh r1, [r5] + subs r1, #0x40 + adds r4, r6, #0 + adds r4, #0x38 + ldrb r2, [r4] + bl sub_0800015E + adds r0, r6, #0 + adds r0, #0x7a + ldrh r0, [r0] + ldrh r1, [r5] + ldrb r2, [r4] + bl sub_0800015E + adds r0, r6, #0 + adds r0, #0x7c + ldrh r0, [r0] + ldrh r1, [r5] + adds r1, #0x40 + ldrb r2, [r4] + bl sub_0800015E +_0808C64E: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0808C650 +sub_0808C650: @ 0x0808C650 + push {r4, lr} + adds r4, r0, #0 + adds r2, r1, #0 + movs r0, #0x3a + movs r1, #0 + bl sub_080A2960 + cmp r0, #0 + beq _0808C670 + str r4, [r0, #0x50] + ldr r1, _0808C66C @ =gUnk_02036BB8 + movs r0, #0 + b _0808C674 + .align 2, 0 +_0808C66C: .4byte gUnk_02036BB8 +_0808C670: + ldr r1, _0808C678 @ =gUnk_02036BB8 + movs r0, #1 +_0808C674: + str r0, [r1] + pop {r4, pc} + .align 2, 0 +_0808C678: .4byte gUnk_02036BB8 + + thumb_func_start sub_0808C67C +sub_0808C67C: @ 0x0808C67C + ldr r0, _0808C684 @ =gUnk_02036BB8 + ldr r0, [r0] + bx lr + .align 2, 0 +_0808C684: .4byte gUnk_02036BB8 + + thumb_func_start sub_0808C688 +sub_0808C688: @ 0x0808C688 + push {lr} + bl sub_0801E104 + ldr r1, _0808C698 @ =gUnk_02036BB8 + movs r0, #1 + str r0, [r1] + pop {pc} + .align 2, 0 +_0808C698: .4byte gUnk_02036BB8 + + thumb_func_start sub_0808C69C +sub_0808C69C: @ 0x0808C69C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _0808C6BC + ldr r0, _0808C6B8 @ =gUnk_08121638 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _0808C6CC + .align 2, 0 +_0808C6B8: .4byte gUnk_08121638 +_0808C6BC: + ldr r0, _0808C6D0 @ =gUnk_08121640 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 +_0808C6CC: + pop {pc} + .align 2, 0 +_0808C6D0: .4byte gUnk_08121640 + + thumb_func_start sub_0808C6D4 +sub_0808C6D4: @ 0x0808C6D4 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r1, [r5, #0xb] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0808C744 @ =gUnk_081215E8 + adds r4, r0, r1 + ldrh r0, [r4, #4] + adds r1, r5, #0 + adds r1, #0x86 + strh r0, [r1] + ldrh r0, [r4, #6] + subs r1, #1 + strb r0, [r1] + ldrh r1, [r4, #8] + adds r0, r5, #0 + adds r0, #0x84 + strb r1, [r0] + ldrh r0, [r4, #0xa] + adds r1, r5, #0 + adds r1, #0x83 + strb r0, [r1] + ldrh r0, [r4, #0xc] + subs r1, #1 + strb r0, [r1] + ldrh r0, [r4, #0xe] + subs r1, #1 + strb r0, [r1] + ldr r0, _0808C748 @ =gUnk_03000F50 + adds r0, #0x60 + ldrh r1, [r0] + movs r0, #0xff + lsls r0, r0, #8 + ands r0, r1 + ldrh r1, [r4, #0x10] + orrs r0, r1 + ldrh r1, [r4, #0x12] + bl sub_0801E1B8 + movs r0, #1 + strb r0, [r5, #0xc] + adds r0, r5, #0 + bl sub_0808C74C + ldrh r2, [r4] + movs r0, #0x3a + movs r1, #1 + bl sub_080A2960 + cmp r0, #0 + beq _0808C742 + ldrh r1, [r4, #2] + adds r0, #0x6a + strh r1, [r0] +_0808C742: + pop {r4, r5, pc} + .align 2, 0 +_0808C744: .4byte gUnk_081215E8 +_0808C748: .4byte gUnk_03000F50 + + thumb_func_start sub_0808C74C +sub_0808C74C: @ 0x0808C74C + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r3, [r4, #0x50] + cmp r3, #0 + beq _0808C76C + ldr r2, _0808C768 @ =gUnk_03000BF0 + ldrh r0, [r3, #0x2e] + ldrh r1, [r2, #0xa] + subs r0, r0, r1 + strh r0, [r4, #0x2e] + ldrh r0, [r3, #0x32] + ldrh r1, [r2, #0xc] + subs r0, r0, r1 + b _0808C772 + .align 2, 0 +_0808C768: .4byte gUnk_03000BF0 +_0808C76C: + movs r0, #0x78 + strh r0, [r4, #0x2e] + movs r0, #0x50 +_0808C772: + strh r0, [r4, #0x32] + adds r5, r4, #0 + adds r5, #0x86 + movs r1, #0 + ldrsh r0, [r5, r1] + cmp r0, #0 + bge _0808C79C + movs r2, #0x2e + ldrsh r0, [r4, r2] + movs r3, #0x32 + ldrsh r1, [r4, r3] + movs r2, #0 + movs r3, #0 + bl sub_0801E49C + ldr r1, _0808C83C @ =gUnk_02036BB8 + movs r0, #1 + str r0, [r1] + adds r0, r4, #0 + bl sub_0808C840 +_0808C79C: + movs r6, #0 + ldrsh r0, [r5, r6] + movs r2, #0xfa + lsls r2, r2, #1 + cmp r0, r2 + ble _0808C7C2 + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r3, #0x32 + ldrsh r1, [r4, r3] + movs r3, #0 + bl sub_0801E49C + ldr r1, _0808C83C @ =gUnk_02036BB8 + movs r0, #1 + str r0, [r1] + adds r0, r4, #0 + bl sub_0808C840 +_0808C7C2: + adds r1, r4, #0 + adds r1, #0x85 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r6, [r5] + adds r0, r0, r6 + strh r0, [r5] + adds r0, r4, #0 + adds r0, #0x84 + ldrb r0, [r0] + ldrb r2, [r1] + adds r0, r0, r2 + strb r0, [r1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0x10 + ble _0808C7E8 + movs r0, #0x10 + strb r0, [r1] +_0808C7E8: + movs r0, #0 + ldrsb r0, [r1, r0] + movs r2, #0x10 + rsbs r2, r2, #0 + cmp r0, r2 + bge _0808C7F6 + strb r2, [r1] +_0808C7F6: + adds r3, r4, #0 + adds r3, #0x83 + adds r1, r4, #0 + adds r1, #0x82 + ldrb r0, [r1] + ldrb r6, [r3] + adds r0, r0, r6 + strb r0, [r3] + adds r0, r4, #0 + adds r0, #0x81 + ldrb r0, [r0] + ldrb r6, [r1] + adds r0, r0, r6 + strb r0, [r1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0x10 + ble _0808C81E + movs r0, #0x10 + strb r0, [r1] +_0808C81E: + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, r2 + bge _0808C828 + strb r2, [r1] +_0808C828: + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + movs r4, #0 + ldrsh r2, [r5, r4] + ldrb r3, [r3] + bl sub_0801E49C + pop {r4, r5, r6, pc} + .align 2, 0 +_0808C83C: .4byte gUnk_02036BB8 + + thumb_func_start sub_0808C840 +sub_0808C840: @ 0x0808C840 + push {lr} + ldr r0, _0808C854 @ =gUnk_03000F50 + adds r0, #0x66 + movs r1, #0 + strh r1, [r0] + bl sub_0801E104 + bl sub_0805E780 + pop {pc} + .align 2, 0 +_0808C854: .4byte gUnk_03000F50 + + thumb_func_start sub_0808C858 +sub_0808C858: @ 0x0808C858 + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0xb] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0808C878 + ldr r1, _0808C870 @ =gUnk_03000F50 + adds r3, r1, #0 + adds r3, #0x66 + ldr r0, _0808C874 @ =0x00003FBF + b _0808C880 + .align 2, 0 +_0808C870: .4byte gUnk_03000F50 +_0808C874: .4byte 0x00003FBF +_0808C878: + ldr r1, _0808C898 @ =gUnk_03000F50 + adds r3, r1, #0 + adds r3, #0x66 + ldr r0, _0808C89C @ =0x00003FFF +_0808C880: + strh r0, [r3] + adds r3, r1, #0 + ldrb r1, [r2, #0xb] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0808C8A0 + adds r1, r3, #0 + adds r1, #0x6a + movs r0, #0 + b _0808C8A6 + .align 2, 0 +_0808C898: .4byte gUnk_03000F50 +_0808C89C: .4byte 0x00003FFF +_0808C8A0: + adds r1, r3, #0 + adds r1, #0x6a + movs r0, #0x10 +_0808C8A6: + strh r0, [r1] + movs r0, #1 + strb r0, [r2, #0xc] + adds r1, r2, #0 + adds r1, #0x68 + adds r0, #0xff + strh r0, [r1] + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808C8B8 +sub_0808C8B8: @ 0x0808C8B8 + push {lr} + adds r3, r0, #0 + adds r2, r3, #0 + adds r2, #0x68 + adds r1, r3, #0 + adds r1, #0x6a + ldrh r0, [r2] + ldrh r1, [r1] + subs r0, r0, r1 + strh r0, [r2] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _0808C8D6 + movs r0, #0 + strh r0, [r2] +_0808C8D6: + ldrb r1, [r3, #0xb] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0808C8F8 + ldr r0, _0808C8F4 @ =gUnk_03000F50 + ldrh r1, [r2] + lsls r1, r1, #0x10 + asrs r1, r1, #0x14 + movs r2, #0x10 + subs r2, r2, r1 + adds r0, #0x6a + strh r2, [r0] + b _0808C904 + .align 2, 0 +_0808C8F4: .4byte gUnk_03000F50 +_0808C8F8: + ldr r1, _0808C918 @ =gUnk_03000F50 + ldrh r0, [r2] + lsls r0, r0, #0x10 + asrs r0, r0, #0x14 + adds r1, #0x6a + strh r0, [r1] +_0808C904: + adds r0, r3, #0 + adds r0, #0x68 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _0808C914 + bl sub_0805E780 +_0808C914: + pop {pc} + .align 2, 0 +_0808C918: .4byte gUnk_03000F50 + + thumb_func_start sub_0808C91C +sub_0808C91C: @ 0x0808C91C + push {lr} + ldr r2, _0808C930 @ =gUnk_08121668 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808C930: .4byte gUnk_08121668 + + thumb_func_start sub_0808C934 +sub_0808C934: @ 0x0808C934 + push {lr} + ldr r2, _0808C948 @ =gUnk_08121670 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808C948: .4byte gUnk_08121670 + + thumb_func_start sub_0808C94C +sub_0808C94C: @ 0x0808C94C + push {lr} + ldr r2, _0808C960 @ =gUnk_08121678 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808C960: .4byte gUnk_08121678 + + thumb_func_start sub_0808C964 +sub_0808C964: @ 0x0808C964 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xa] + strb r1, [r4, #0x1e] + ldrb r0, [r4, #9] + cmp r0, #0x76 + bne _0808C982 + ldr r0, _0808CA08 @ =gUnk_02032EC0 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #2 + beq _0808C982 + adds r0, r1, #0 + subs r0, #9 + strb r0, [r4, #0xa] +_0808C982: + ldrb r0, [r4, #0xa] + cmp r0, #4 + bls _0808C996 + ldr r0, _0808CA0C @ =gUnk_02033A90 + ldrb r0, [r0, #0x16] + ldrb r1, [r4, #0xb] + cmp r0, r1 + beq _0808C996 + bl sub_0805E780 +_0808C996: + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r2, [r4, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x80 + orrs r0, r2 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x19] + ldrb r0, [r4, #0xb] + adds r3, r4, #0 + adds r3, #0x29 + movs r1, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrb r0, [r4, #9] + cmp r0, #0x75 + beq _0808CA04 + ldrb r2, [r4, #0xa] + subs r0, r2, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bhi _0808CA04 + ldrb r0, [r4, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x19] + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + movs r2, #0x80 + lsls r2, r2, #1 + cmp r0, #1 + bne _0808C9FA + movs r2, #0xe0 +_0808C9FA: + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C +_0808CA04: + pop {r4, pc} + .align 2, 0 +_0808CA08: .4byte gUnk_02032EC0 +_0808CA0C: .4byte gUnk_02033A90 + + thumb_func_start sub_0808CA10 +sub_0808CA10: @ 0x0808CA10 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #2 + beq _0808CA40 + cmp r0, #2 + bgt _0808CA24 + cmp r0, #1 + beq _0808CA2A + b _0808CA78 +_0808CA24: + cmp r0, #3 + beq _0808CA60 + b _0808CA78 +_0808CA2A: + ldr r2, _0808CA3C @ =gUnk_02018EB0 + ldrb r0, [r2, #0x18] + cmp r0, #0 + beq _0808CA78 + movs r0, #0 + movs r1, #0x20 + strb r1, [r4, #0xe] + strb r0, [r2, #0x18] + b _0808CA50 + .align 2, 0 +_0808CA3C: .4byte gUnk_02018EB0 +_0808CA40: + ldr r2, _0808CA5C @ =gUnk_02018EB0 + ldrb r0, [r2, #0x19] + cmp r0, #0 + beq _0808CA78 + movs r0, #0 + movs r1, #0x20 + strb r1, [r4, #0xe] + strb r0, [r2, #0x19] +_0808CA50: + movs r0, #0x97 + lsls r0, r0, #1 + bl sub_080A3268 + b _0808CA78 + .align 2, 0 +_0808CA5C: .4byte gUnk_02018EB0 +_0808CA60: + ldr r2, _0808CABC @ =gUnk_02018EB0 + ldrb r0, [r2, #0x1a] + cmp r0, #0 + beq _0808CA78 + movs r0, #0 + movs r1, #0x20 + strb r1, [r4, #0xe] + strb r0, [r2, #0x1a] + movs r0, #0x97 + lsls r0, r0, #1 + bl sub_080A3268 +_0808CA78: + ldrb r0, [r4, #9] + cmp r0, #0x75 + beq _0808CAE0 + ldrb r1, [r4, #0xa] + subs r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r5, r1, #0 + cmp r0, #2 + bhi _0808CAE0 + ldrb r1, [r4, #0xe] + cmp r1, #0 + beq _0808CAE0 + subs r1, #1 + strb r1, [r4, #0xe] + ldrb r0, [r4, #0xf] + adds r2, r0, #1 + strb r2, [r4, #0xf] + lsls r1, r1, #0x18 + cmp r1, #0 + beq _0808CAC4 + ldr r0, _0808CAC0 @ =gUnk_08121648 + movs r1, #0xe + ands r1, r2 + lsls r2, r1, #1 + adds r2, r2, r0 + movs r6, #0 + ldrsh r3, [r2, r6] + adds r1, #1 + lsls r1, r1, #1 + adds r1, r1, r0 + movs r0, #0 + ldrsh r2, [r1, r0] + b _0808CACA + .align 2, 0 +_0808CABC: .4byte gUnk_02018EB0 +_0808CAC0: .4byte gUnk_08121648 +_0808CAC4: + movs r2, #0x80 + lsls r2, r2, #1 + adds r3, r2, #0 +_0808CACA: + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _0808CAD6 + subs r3, #0x20 + subs r2, #0x20 +_0808CAD6: + adds r0, r4, #0 + adds r1, r3, #0 + movs r3, #0 + bl sub_0805EC9C +_0808CAE0: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0808CAE4 +sub_0808CAE4: @ 0x0808CAE4 + push {lr} + ldr r2, _0808CAF8 @ =gUnk_08121680 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808CAF8: .4byte gUnk_08121680 + + thumb_func_start sub_0808CAFC +sub_0808CAFC: @ 0x0808CAFC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0808CB18 @ =gUnk_08121688 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0808CB9C + pop {r4, pc} + .align 2, 0 +_0808CB18: .4byte gUnk_08121688 + + thumb_func_start sub_0808CB1C +sub_0808CB1C: @ 0x0808CB1C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0808CB70 + movs r2, #1 + strb r2, [r4, #0xc] + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #0xa7 + strh r0, [r4, #0x12] + movs r0, #0xd + strb r0, [r4, #0x1e] + adds r0, r4, #0 + adds r0, #0x60 + strh r2, [r0] + ldrb r1, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r4, #0x1a] + ldrb r2, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + strb r0, [r4, #0x19] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r3] + ldrb r0, [r4, #0x1b] + ands r1, r0 + movs r0, #0x80 + orrs r1, r0 + strb r1, [r4, #0x1b] +_0808CB70: + ldr r0, [r4, #0x50] + ldr r1, [r0, #0x2c] + str r1, [r4, #0x2c] + ldr r1, [r0, #0x30] + str r1, [r4, #0x30] + movs r5, #0 + str r5, [r4, #0x34] + adds r1, r4, #0 + bl sub_0806FAD8 + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _0808CB98 + adds r0, r4, #0 + adds r0, #0x60 + movs r1, #0 + strh r5, [r0] + strb r1, [r4, #0xd] + movs r0, #4 + strb r0, [r4, #0x1e] +_0808CB98: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0808CB9C +sub_0808CB9C: @ 0x0808CB9C + push {r4, r5, lr} + adds r3, r0, #0 + adds r0, #0x68 + ldrh r1, [r0] + ldrb r4, [r0] + lsrs r5, r1, #8 + movs r2, #0 + ldrb r0, [r3, #0x14] + cmp r0, #4 + bls _0808CBB2 + movs r2, #1 +_0808CBB2: + lsls r2, r2, #6 + ldrb r1, [r3, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r3, #0x18] + cmp r4, #0xb7 + bhi _0808CBCA + ldrb r0, [r3, #0x14] + lsrs r0, r0, #1 + adds r4, r4, r0 +_0808CBCA: + ldrh r0, [r3, #0x12] + cmp r5, r0 + bne _0808CBDA + adds r0, r3, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r4, r0 + beq _0808CBE4 +_0808CBDA: + strh r5, [r3, #0x12] + adds r0, r3, #0 + adds r1, r4, #0 + bl sub_080042AC +_0808CBE4: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0808CBE8 +sub_0808CBE8: @ 0x0808CBE8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r3, #4 + strb r3, [r4, #0x14] + ldrb r2, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + strb r0, [r4, #0x19] + movs r0, #0x29 + adds r0, r0, r4 + mov ip, r0 + ldrb r2, [r0] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + mov r2, ip + strb r0, [r2] + ldrb r0, [r4, #0x1b] + ands r1, r0 + movs r0, #0x80 + orrs r1, r0 + strb r1, [r4, #0x1b] + adds r1, r4, #0 + adds r1, #0x68 + movs r0, #0x8a + lsls r0, r0, #1 + strh r0, [r1] + subs r1, #0x10 + movs r0, #0xff + strb r0, [r1] + ldr r0, _0808CC80 @ =0x0000FF50 + strh r0, [r4, #0x36] + adds r0, r4, #0 + adds r0, #0x6a + strh r3, [r0] + ldrb r0, [r4, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r4, #0 + movs r1, #4 + movs r2, #4 + movs r3, #0 + bl sub_0805EC9C + ldr r0, _0808CC84 @ =gUnk_02018EB0 + str r4, [r0, #0x14] + movs r0, #0 + bl sub_0807A094 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_0801D2B4 + movs r0, #0x3c + movs r1, #1 + movs r2, #0 + bl sub_080A2960 + cmp r0, #0 + beq _0808CC7C + str r4, [r0, #0x50] + str r0, [r4, #0x54] +_0808CC7C: + pop {r4, pc} + .align 2, 0 +_0808CC80: .4byte 0x0000FF50 +_0808CC84: .4byte gUnk_02018EB0 + + thumb_func_start sub_0808CC88 +sub_0808CC88: @ 0x0808CC88 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r5, #0 + adds r4, #0x6a + ldrh r1, [r4] + ldr r0, _0808CCB8 @ =0x000003FF + cmp r1, r0 + bhi _0808CCB4 + adds r0, r1, #4 + strh r0, [r4] + ldrh r2, [r4] + adds r0, r5, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C + ldrh r1, [r4] + adds r0, r5, #0 + movs r2, #8 + movs r3, #2 + bl sub_0806FCF4 +_0808CCB4: + pop {r4, r5, pc} + .align 2, 0 +_0808CCB8: .4byte 0x000003FF + + thumb_func_start sub_0808CCBC +sub_0808CCBC: @ 0x0808CCBC + push {r4, lr} + adds r4, r0, #0 + bl sub_0808CC88 + movs r1, #0x80 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _0808CCFA + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x14 + strb r0, [r4, #0x15] + adds r0, #0xec + strh r0, [r4, #0x24] + movs r0, #0xc0 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + ldrb r1, [r4, #0x18] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + ldr r0, [r4, #0x54] + movs r1, #1 + strb r1, [r0, #0xd] + ldr r0, _0808CCFC @ =gUnk_02018EB0 + strb r1, [r0, #0x18] +_0808CCFA: + pop {r4, pc} + .align 2, 0 +_0808CCFC: .4byte gUnk_02018EB0 + + thumb_func_start sub_0808CD00 +sub_0808CD00: @ 0x0808CD00 + push {r4, lr} + adds r4, r0, #0 + bl sub_0808CC88 + adds r0, r4, #0 + bl sub_080042B8 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + beq _0808CD24 + adds r0, r4, #0 + bl sub_0806F69C + b _0808CD3E +_0808CD24: + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xa + strb r0, [r4, #0x15] + movs r0, #0xc0 + strh r0, [r4, #0x24] + movs r0, #0xa0 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + ldr r1, _0808CD40 @ =gUnk_02018EB0 + movs r0, #1 + strb r0, [r1, #0x19] +_0808CD3E: + pop {r4, pc} + .align 2, 0 +_0808CD40: .4byte gUnk_02018EB0 + + thumb_func_start sub_0808CD44 +sub_0808CD44: @ 0x0808CD44 + push {r4, lr} + adds r4, r0, #0 + bl sub_0808CC88 + adds r0, r4, #0 + bl sub_080042B8 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + beq _0808CD68 + adds r0, r4, #0 + bl sub_0806F69C + b _0808CD82 +_0808CD68: + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x11 + strb r0, [r4, #0x15] + adds r0, #0xef + strh r0, [r4, #0x24] + movs r0, #0x90 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + ldr r1, _0808CD84 @ =gUnk_02018EB0 + movs r0, #1 + strb r0, [r1, #0x1a] +_0808CD82: + pop {r4, pc} + .align 2, 0 +_0808CD84: .4byte gUnk_02018EB0 + + thumb_func_start sub_0808CD88 +sub_0808CD88: @ 0x0808CD88 + push {r4, lr} + adds r4, r0, #0 + bl sub_0808CC88 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + beq _0808CDB8 + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0806F69C + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0x7f + bgt _0808CDD6 + movs r0, #0x80 + strh r0, [r4, #0x2e] + b _0808CDD6 +_0808CDB8: + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x68 + ldr r0, _0808CDD8 @ =0x00000C04 + strh r0, [r1] + ldr r0, [r4, #0x54] + bl sub_0805E7BC + adds r0, r4, #0 + bl sub_0805EC60 +_0808CDD6: + pop {r4, pc} + .align 2, 0 +_0808CDD8: .4byte 0x00000C04 + + thumb_func_start sub_0808CDDC +sub_0808CDDC: @ 0x0808CDDC + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808CDF6 + ldrb r0, [r1, #0xc] + adds r0, #1 + strb r0, [r1, #0xc] + movs r0, #0x10 + strb r0, [r1, #0xe] +_0808CDF6: + pop {pc} + + thumb_func_start sub_0808CDF8 +sub_0808CDF8: @ 0x0808CDF8 + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xe] + subs r0, #1 + strb r0, [r3, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808CE2C + ldr r0, _0808CE30 @ =gUnk_02033A90 + ldrb r1, [r0, #0x16] + ldrb r0, [r3, #0xc] + adds r0, #1 + adds r0, r0, r1 + strb r0, [r3, #0xc] + ldr r2, _0808CE34 @ =gUnk_081216B4 + lsls r1, r1, #1 + adds r0, r1, r2 + ldrb r0, [r0] + strb r0, [r3, #0x14] + adds r1, #1 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r3, #0x15] + movs r0, #0xa0 + lsls r0, r0, #1 + strh r0, [r3, #0x24] +_0808CE2C: + pop {pc} + .align 2, 0 +_0808CE30: .4byte gUnk_02033A90 +_0808CE34: .4byte gUnk_081216B4 + + thumb_func_start sub_0808CE38 +sub_0808CE38: @ 0x0808CE38 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0806F69C + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0xc7 + bgt _0808CE52 + movs r0, #0x18 + strb r0, [r4, #0x15] +_0808CE52: + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0x2f + bgt _0808CE60 + ldr r1, _0808CE64 @ =gUnk_02018EB0 + movs r0, #1 + strb r0, [r1, #0x1b] +_0808CE60: + pop {r4, pc} + .align 2, 0 +_0808CE64: .4byte gUnk_02018EB0 + + thumb_func_start sub_0808CE68 +sub_0808CE68: @ 0x0808CE68 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0806F69C + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0xc7 + bgt _0808CE82 + movs r0, #8 + strb r0, [r4, #0x15] +_0808CE82: + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0xd0 + ble _0808CE90 + ldr r1, _0808CE94 @ =gUnk_02018EB0 + movs r0, #1 + strb r0, [r1, #0x1b] +_0808CE90: + pop {r4, pc} + .align 2, 0 +_0808CE94: .4byte gUnk_02018EB0 + + thumb_func_start sub_0808CE98 +sub_0808CE98: @ 0x0808CE98 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0806F69C + movs r0, #0x32 + ldrsh r1, [r4, r0] + movs r0, #0x90 + lsls r0, r0, #1 + cmp r1, r0 + ble _0808CEB8 + ldr r1, _0808CEBC @ =gUnk_02018EB0 + movs r0, #1 + strb r0, [r1, #0x1b] +_0808CEB8: + pop {r4, pc} + .align 2, 0 +_0808CEBC: .4byte gUnk_02018EB0 + + thumb_func_start sub_0808CEC0 +sub_0808CEC0: @ 0x0808CEC0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0806F69C + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, #0xc7 + bgt _0808CEDA + movs r0, #0x18 + strb r0, [r4, #0x15] +_0808CEDA: + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, #0xf + bgt _0808CEE8 + ldr r1, _0808CEEC @ =gUnk_02018EB0 + movs r0, #1 + strb r0, [r1, #0x1b] +_0808CEE8: + pop {r4, pc} + .align 2, 0 +_0808CEEC: .4byte gUnk_02018EB0 + + thumb_func_start sub_0808CEF0 +sub_0808CEF0: @ 0x0808CEF0 + push {lr} + ldr r2, _0808CF04 @ =gUnk_081216BC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808CF04: .4byte gUnk_081216BC + + thumb_func_start sub_0808CF08 +sub_0808CF08: @ 0x0808CF08 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r2, _0808CF50 @ =gUnk_02033A90 + ldr r3, _0808CF54 @ =gUnk_03000BF0 + ldrh r0, [r2, #0x12] + ldrh r1, [r3, #0xa] + subs r0, r0, r1 + strh r0, [r4, #0x2e] + ldrh r0, [r2, #0x14] + ldrh r1, [r3, #0xc] + subs r0, r0, r1 + strh r0, [r4, #0x32] + adds r5, r4, #0 + adds r5, #0x68 + movs r0, #0x80 + strh r0, [r5] + ldrb r1, [r4, #0x11] + subs r0, #0x90 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r4, #0x11] + ldr r0, _0808CF58 @ =0x00001F17 + movs r1, #0 + bl sub_0801E1B8 + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + ldrh r2, [r5] + bl sub_0801E1EC + pop {r4, r5, pc} + .align 2, 0 +_0808CF50: .4byte gUnk_02033A90 +_0808CF54: .4byte gUnk_03000BF0 +_0808CF58: .4byte 0x00001F17 + + thumb_func_start sub_0808CF5C +sub_0808CF5C: @ 0x0808CF5C + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r2, r5, #0 + adds r2, #0x68 + ldrh r0, [r2] + subs r0, #2 + strh r0, [r2] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x14 + bls _0808CF82 + movs r1, #0x2e + ldrsh r0, [r5, r1] + movs r3, #0x32 + ldrsh r1, [r5, r3] + ldrh r2, [r2] + bl sub_0801E1EC + b _0808D01E +_0808CF82: + ldr r0, _0808D020 @ =gUnk_03000F50 + adds r0, #0x62 + movs r1, #0x10 + strh r1, [r0] + bl sub_0808D030 + movs r0, #0 + bl sub_0801CFA8 + bl sub_080ADD30 + ldr r0, _0808D024 @ =gUnk_02024490 + movs r6, #1 + strb r6, [r0] + ldrb r0, [r5, #0xa] + lsls r4, r0, #1 + adds r4, r4, r0 + lsls r4, r4, #1 + ldr r0, _0808D028 @ =gUnk_081216C8 + adds r4, r4, r0 + ldrh r1, [r4] + adds r0, r5, #0 + bl sub_080ADF80 + ldrh r1, [r4, #2] + adds r0, r5, #0 + bl sub_0801D040 + ldrh r0, [r4, #4] + strh r0, [r5, #0x12] + ldrb r0, [r5, #0xa] + cmp r0, #2 + bne _0808CFC6 + strb r0, [r5, #0x1e] +_0808CFC6: + movs r2, #2 + movs r0, #2 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x18] + subs r0, #6 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + ldrb r2, [r5, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + strb r0, [r5, #0x1b] + ldrb r0, [r5, #0x19] + ands r1, r0 + strb r1, [r5, #0x19] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + movs r0, #0x1e + strb r0, [r5, #0xe] + movs r0, #0xff + strb r0, [r5, #0xf] + ldrb r0, [r5, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r5, #0x19] + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r5, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C + ldr r0, _0808D02C @ =gUnk_02033A90 + strh r6, [r0, #0x10] + movs r0, #5 + movs r1, #8 + bl sub_08050054 +_0808D01E: + pop {r4, r5, r6, pc} + .align 2, 0 +_0808D020: .4byte gUnk_03000F50 +_0808D024: .4byte gUnk_02024490 +_0808D028: .4byte gUnk_081216C8 +_0808D02C: .4byte gUnk_02033A90 + + thumb_func_start sub_0808D030 +sub_0808D030: @ 0x0808D030 + push {r4, r5, lr} + ldr r4, _0808D058 @ =gUnk_03000020 + movs r5, #0x80 + adds r0, r4, #0 + subs r0, #0x20 + ldr r1, _0808D05C @ =0x00000B74 + bl sub_0801D630 + movs r1, #0xa8 + lsls r1, r1, #2 + adds r0, r1, #0 +_0808D046: + strh r0, [r4] + adds r4, #8 + subs r5, #1 + cmp r5, #0 + bne _0808D046 + ldr r1, _0808D060 @ =gUnk_03000000 + movs r0, #1 + strb r0, [r1] + pop {r4, r5, pc} + .align 2, 0 +_0808D058: .4byte gUnk_03000020 +_0808D05C: .4byte 0x00000B74 +_0808D060: .4byte gUnk_03000000 + + thumb_func_start sub_0808D064 +sub_0808D064: @ 0x0808D064 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + adds r1, r0, #0 + adds r1, #0xff + strb r1, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + beq _0808D0B4 + adds r0, r4, #0 + adds r0, #0x68 + ldrh r3, [r0] + adds r1, r3, #0 + adds r2, r0, #0 + cmp r1, #0 + beq _0808D08C + subs r0, r3, #2 + strh r0, [r2] + b _0808D08E +_0808D08C: + strh r1, [r2] +_0808D08E: + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r3, #0x32 + ldrsh r1, [r4, r3] + ldrh r2, [r2] + bl sub_0801E1EC + ldrb r0, [r4, #0xf] + cmp r0, #0x80 + bls _0808D0A6 + subs r0, #8 + strb r0, [r4, #0xf] +_0808D0A6: + ldrb r2, [r4, #0xf] + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C + b _0808D0C2 +_0808D0B4: + ldr r1, _0808D0C4 @ =gUnk_02033A90 + ldrb r0, [r1, #0xe] + adds r0, #1 + strb r0, [r1, #0xe] + strh r2, [r1, #0x10] + bl sub_0805E780 +_0808D0C2: + pop {r4, pc} + .align 2, 0 +_0808D0C4: .4byte gUnk_02033A90 + + thumb_func_start sub_0808D0C8 +sub_0808D0C8: @ 0x0808D0C8 + push {lr} + ldr r2, _0808D0DC @ =gUnk_081216DC + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808D0DC: .4byte gUnk_081216DC + + thumb_func_start sub_0808D0E0 +sub_0808D0E0: @ 0x0808D0E0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r6, [r5, #0xc] + cmp r6, #1 + beq _0808D12C + cmp r6, #1 + bgt _0808D0F4 + cmp r6, #0 + beq _0808D0FA + b _0808D192 +_0808D0F4: + cmp r6, #2 + beq _0808D150 + b _0808D192 +_0808D0FA: + movs r4, #1 + strb r4, [r5, #0xc] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + movs r1, #0x40 + subs r1, r1, r0 + strb r1, [r5, #0xe] + strb r6, [r5, #0x1e] + strb r6, [r5, #0x14] + ldrb r0, [r5, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r5, #0x19] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + adds r0, r5, #0 + adds r0, #0x38 + strb r4, [r0] + b _0808D192 +_0808D12C: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808D192 + movs r0, #8 + strb r0, [r5, #0xe] + movs r0, #4 + strb r0, [r5, #0xf] + movs r0, #2 + strb r0, [r5, #0xc] + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + strb r0, [r5, #0x14] + b _0808D192 +_0808D150: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + movs r1, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808D192 + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + ands r0, r1 + cmp r0, #0 + bne _0808D180 + strb r0, [r5, #0x1e] + movs r0, #1 + strb r0, [r5, #0xc] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + movs r1, #0x40 + subs r1, r1, r0 + strb r1, [r5, #0xe] + b _0808D192 +_0808D180: + movs r0, #8 + strb r0, [r5, #0xe] + ldrb r1, [r5, #0x14] + ldrb r0, [r5, #0x1e] + movs r2, #0 + cmp r0, r1 + beq _0808D190 + adds r2, r1, #0 +_0808D190: + strb r2, [r5, #0x1e] +_0808D192: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0808D194 +sub_0808D194: @ 0x0808D194 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r1, [r5, #0xc] + cmp r1, #1 + beq _0808D234 + cmp r1, #1 + bgt _0808D1A8 + cmp r1, #0 + beq _0808D1AE + b _0808D234 +_0808D1A8: + cmp r1, #2 + beq _0808D1FC + b _0808D234 +_0808D1AE: + movs r0, #1 + strb r0, [r5, #0xc] + movs r0, #8 + strb r0, [r5, #0xe] + strb r1, [r5, #0xf] + strb r1, [r5, #0x1e] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldr r0, _0808D1F4 @ =0x00004069 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _0808D1F8 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + subs r1, #0x40 + movs r2, #1 + bl sub_0800015E + b _0808D234 + .align 2, 0 +_0808D1F4: .4byte 0x00004069 +_0808D1F8: .4byte gUnk_03000BF0 +_0808D1FC: + ldr r0, _0808D274 @ =gUnk_030010A0 + ldr r3, [r0] + movs r0, #3 + ands r3, r0 + cmp r3, #0 + bne _0808D234 + ldr r4, _0808D278 @ =gUnk_03000F50 + ldrb r2, [r5, #0xd] + lsls r1, r2, #8 + movs r0, #0x10 + subs r0, r0, r2 + orrs r1, r0 + adds r0, r4, #0 + adds r0, #0x68 + strh r1, [r0] + ldrb r0, [r5, #0xd] + adds r0, #1 + strb r0, [r5, #0xd] + lsls r1, r1, #0x10 + movs r0, #0x80 + lsls r0, r0, #0x15 + cmp r1, r0 + bne _0808D234 + adds r0, r4, #0 + adds r0, #0x66 + strh r3, [r0] + bl sub_0805E780 +_0808D234: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808D272 + movs r0, #8 + strb r0, [r5, #0xe] + ldrb r0, [r5, #0xa] + cmp r0, #9 + bne _0808D24E + movs r0, #2 + strb r0, [r5, #0xe] +_0808D24E: + ldr r4, _0808D27C @ =gUnk_08121704 + ldrb r0, [r5, #0xf] + adds r1, r0, #1 + strb r1, [r5, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r4 + ldrh r1, [r0] + adds r0, r5, #0 + bl sub_0801D2B4 + ldrb r0, [r5, #0xf] + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r0, [r0] + cmp r0, #0 + bne _0808D272 + strb r0, [r5, #0xf] +_0808D272: + pop {r4, r5, r6, pc} + .align 2, 0 +_0808D274: .4byte gUnk_030010A0 +_0808D278: .4byte gUnk_03000F50 +_0808D27C: .4byte gUnk_08121704 + + thumb_func_start sub_0808D280 +sub_0808D280: @ 0x0808D280 + push {r4, lr} + sub sp, #4 + movs r4, #0 + str r4, [sp] + movs r0, #6 + movs r1, #0x3e + movs r2, #6 + movs r3, #9 + bl sub_0805EB2C + adds r2, r0, #0 + cmp r2, #0 + beq _0808D2C4 + movs r0, #2 + strb r0, [r2, #0xc] + strb r4, [r2, #0xd] + ldrb r1, [r2, #0x19] + subs r0, #0xf + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2, #0x19] + ldr r1, _0808D2C8 @ =gUnk_03000F50 + adds r2, r1, #0 + adds r2, #0x66 + movs r0, #0xc8 + lsls r0, r0, #3 + strh r0, [r2] + adds r1, #0x68 + movs r0, #0x10 + strh r0, [r1] + movs r0, #0xf6 + bl sub_080A3268 +_0808D2C4: + add sp, #4 + pop {r4, pc} + .align 2, 0 +_0808D2C8: .4byte gUnk_03000F50 + + thumb_func_start sub_0808D2CC +sub_0808D2CC: @ 0x0808D2CC + push {lr} + sub sp, #4 + movs r0, #0 + str r0, [sp] + movs r0, #6 + movs r1, #0x3e + movs r2, #6 + movs r3, #1 + bl sub_0805EB2C + adds r1, r0, #0 + cmp r1, #0 + beq _0808D2F2 + movs r0, #9 + strb r0, [r1, #0xa] + adds r0, r1, #0 + movs r1, #2 + bl sub_0805E3A0 +_0808D2F2: + add sp, #4 + pop {pc} + .align 2, 0 + + thumb_func_start nullsub_521 +nullsub_521: @ 0x0808D2F8 + bx lr + .align 2, 0 + + thumb_func_start sub_0808D2FC +sub_0808D2FC: @ 0x0808D2FC + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0808D31C + strb r0, [r4, #0xc] + strb r0, [r4, #0x1e] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_0807DD64 +_0808D31C: + movs r0, #0x2e + ldrsh r5, [r4, r0] + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + ldr r0, _0808D354 @ =gUnk_03000BF0 + ldrh r0, [r0, #0x16] + cmp r0, #0 + beq _0808D350 + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r5, r0 + beq _0808D350 + ldr r0, _0808D358 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + bne _0808D350 + ldr r0, _0808D35C @ =0x0000010F + bl sub_080A3268 +_0808D350: + pop {r4, r5, pc} + .align 2, 0 +_0808D354: .4byte gUnk_03000BF0 +_0808D358: .4byte gUnk_030010A0 +_0808D35C: .4byte 0x0000010F + + thumb_func_start sub_0808D360 +sub_0808D360: @ 0x0808D360 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0808D382 + strb r0, [r4, #0xc] + movs r0, #1 + strb r0, [r4, #0x1e] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_0807DD64 +_0808D382: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808D394 +sub_0808D394: @ 0x0808D394 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _0808D3C4 + movs r0, #1 + strb r0, [r5, #0xc] + movs r0, #8 + strb r0, [r5, #0xe] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldr r1, _0808D3FC @ =gUnk_03000F50 + adds r2, r1, #0 + adds r2, #0x66 + movs r0, #0xc8 + lsls r0, r0, #3 + strh r0, [r2] + adds r1, #0x68 + ldr r0, _0808D400 @ =0x00001003 + strh r0, [r1] +_0808D3C4: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808D3F8 + movs r0, #2 + strb r0, [r5, #0xe] + ldr r4, _0808D404 @ =gUnk_08121720 + ldrb r0, [r5, #0xf] + adds r1, r0, #1 + strb r1, [r5, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r4 + ldrh r1, [r0] + adds r0, r5, #0 + bl sub_0801D28C + ldrb r0, [r5, #0xf] + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r0, [r0] + cmp r0, #0 + bne _0808D3F8 + strb r0, [r5, #0xf] +_0808D3F8: + pop {r4, r5, pc} + .align 2, 0 +_0808D3FC: .4byte gUnk_03000F50 +_0808D400: .4byte 0x00001003 +_0808D404: .4byte gUnk_08121720 + + thumb_func_start sub_0808D408 +sub_0808D408: @ 0x0808D408 + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xc] + cmp r0, #0 + bne _0808D458 + movs r1, #1 + strb r1, [r3, #0xc] + ldrb r0, [r3, #0x19] + movs r2, #0xc0 + orrs r0, r2 + strb r0, [r3, #0x19] + movs r0, #0x29 + adds r0, r0, r3 + mov ip, r0 + ldrb r0, [r0] + movs r2, #7 + orrs r0, r2 + mov r2, ip + strb r0, [r2] + ldrb r2, [r3, #0x19] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r2 + movs r2, #4 + orrs r0, r2 + strb r0, [r3, #0x19] + ldrb r0, [r3, #0xb] + strb r0, [r3, #0x1e] + ldrb r0, [r3, #0xb] + subs r1, r1, r0 + lsls r1, r1, #9 + movs r0, #0x80 + lsls r0, r0, #1 + adds r1, r1, r0 + movs r2, #0xc0 + rsbs r2, r2, #0 + adds r0, r3, #0 + movs r3, #0 + bl sub_0805EC9C +_0808D458: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808D45C +sub_0808D45C: @ 0x0808D45C + push {lr} + ldr r2, _0808D470 @ =gUnk_0812172C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808D470: .4byte gUnk_0812172C + + thumb_func_start sub_0808D474 +sub_0808D474: @ 0x0808D474 + push {r4, r5, lr} + adds r5, r0, #0 + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r5, #0xb] + strb r0, [r5, #0x1e] + movs r1, #2 + strb r1, [r5, #0xc] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808D4D4 + movs r0, #0x7c + bl sub_0807CBD0 + adds r1, r0, #0 + cmp r1, #0 + bne _0808D4D4 + movs r0, #1 + strb r0, [r5, #0xc] + strb r1, [r5, #0xe] + ldrb r1, [r5, #0x19] + subs r0, #0xe + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r5, #0x19] + ldr r1, _0808D4CC @ =gUnk_03000F50 + adds r2, r1, #0 + adds r2, #0x66 + movs r0, #0xc8 + lsls r0, r0, #3 + strh r0, [r2] + adds r1, #0x68 + movs r0, #0x80 + lsls r0, r0, #5 + strh r0, [r1] + ldr r0, _0808D4D0 @ =0x00000179 + bl sub_080A3268 + b _0808D50E + .align 2, 0 +_0808D4CC: .4byte gUnk_03000F50 +_0808D4D0: .4byte 0x00000179 +_0808D4D4: + movs r0, #8 + strb r0, [r5, #0xe] + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r3, _0808D510 @ =gUnk_03000BF0 + ldrh r1, [r3, #6] + subs r0, r0, r1 + asrs r4, r0, #4 + movs r2, #0x3f + ands r4, r2 + movs r1, #0x32 + ldrsh r0, [r5, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + ldrb r0, [r5, #0xb] + cmp r0, #0 + beq _0808D500 + subs r4, #0x40 +_0808D500: + ldr r0, _0808D514 @ =0x00004069 + adds r1, r5, #0 + adds r1, #0x38 + ldrb r2, [r1] + adds r1, r4, #0 + bl sub_0800015E +_0808D50E: + pop {r4, r5, pc} + .align 2, 0 +_0808D510: .4byte gUnk_03000BF0 +_0808D514: .4byte 0x00004069 + + thumb_func_start sub_0808D518 +sub_0808D518: @ 0x0808D518 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r0, _0808D58C @ =gUnk_030010A0 + ldr r2, [r0] + movs r0, #3 + ands r2, r0 + cmp r2, #0 + bne _0808D58A + ldr r3, _0808D590 @ =gUnk_03000F50 + ldrb r0, [r5, #0xe] + movs r1, #0x10 + subs r1, r1, r0 + lsls r1, r1, #8 + orrs r1, r0 + adds r0, r3, #0 + adds r0, #0x68 + strh r1, [r0] + ldrb r0, [r5, #0xe] + adds r0, #1 + strb r0, [r5, #0xe] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + cmp r1, #0x10 + bne _0808D58A + movs r0, #2 + strb r0, [r5, #0xc] + movs r0, #8 + strb r0, [r5, #0xe] + ldrb r1, [r5, #0x19] + subs r0, #0x15 + ands r0, r1 + strb r0, [r5, #0x19] + adds r0, r3, #0 + adds r0, #0x66 + strh r2, [r0] + ldr r0, _0808D594 @ =0x00004069 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _0808D598 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E +_0808D58A: + pop {r4, r5, r6, pc} + .align 2, 0 +_0808D58C: .4byte gUnk_030010A0 +_0808D590: .4byte gUnk_03000F50 +_0808D594: .4byte 0x00004069 +_0808D598: .4byte gUnk_03000BF0 + + thumb_func_start sub_0808D59C +sub_0808D59C: @ 0x0808D59C + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808D5D4 + movs r0, #8 + strb r0, [r5, #0xe] + ldr r4, _0808D5D8 @ =gUnk_08121738 + ldrb r0, [r5, #0xf] + adds r1, r0, #1 + strb r1, [r5, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r0, r0, r4 + ldrh r1, [r0] + adds r0, r5, #0 + bl sub_0801D2B4 + ldrb r0, [r5, #0xf] + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r0, [r0] + cmp r0, #0 + bne _0808D5D4 + strb r0, [r5, #0xf] +_0808D5D4: + pop {r4, r5, pc} + .align 2, 0 +_0808D5D8: .4byte gUnk_08121738 + + thumb_func_start sub_0808D5DC +sub_0808D5DC: @ 0x0808D5DC + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xc] + cmp r0, #0 + bne _0808D614 + movs r2, #1 + movs r0, #1 + strb r0, [r3, #0xc] + ldrb r1, [r3, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r3, #0x18] + ldrb r0, [r3, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r3, #0x19] + adds r2, r3, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r3, #0xa] + strb r0, [r3, #0x1e] + adds r0, r3, #0 + bl sub_0808D618 +_0808D614: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808D618 +sub_0808D618: @ 0x0808D618 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + ldr r7, _0808D664 @ =gUnk_08121750 + cmp r0, #0 + beq _0808D626 + ldr r7, _0808D668 @ =gUnk_0812176A +_0808D626: + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r3, _0808D66C @ =gUnk_03000BF0 + ldrh r1, [r3, #6] + subs r0, r0, r1 + asrs r5, r0, #4 + movs r2, #0x3f + ands r5, r2 + movs r1, #0x32 + ldrsh r0, [r4, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r5, r0 + movs r6, #0 + adds r4, r7, #0 +_0808D64A: + movs r0, #0 + ldrsh r1, [r4, r0] + adds r1, r5, r1 + ldr r0, _0808D670 @ =0x00004074 + movs r2, #1 + bl sub_0800015E + adds r4, #2 + adds r6, #1 + cmp r6, #0xc + bls _0808D64A + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0808D664: .4byte gUnk_08121750 +_0808D668: .4byte gUnk_0812176A +_0808D66C: .4byte gUnk_03000BF0 +_0808D670: .4byte 0x00004074 + + thumb_func_start sub_0808D674 +sub_0808D674: @ 0x0808D674 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808D750 + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x1f + bhi _0808D750 + lsls r0, r0, #2 + ldr r1, _0808D698 @ =_0808D69C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0808D698: .4byte _0808D69C +_0808D69C: @ jump table + .4byte _0808D740 @ case 0 + .4byte _0808D740 @ case 1 + .4byte _0808D750 @ case 2 + .4byte _0808D750 @ case 3 + .4byte _0808D740 @ case 4 + .4byte _0808D740 @ case 5 + .4byte _0808D740 @ case 6 + .4byte _0808D750 @ case 7 + .4byte _0808D740 @ case 8 + .4byte _0808D740 @ case 9 + .4byte _0808D740 @ case 10 + .4byte _0808D740 @ case 11 + .4byte _0808D740 @ case 12 + .4byte _0808D750 @ case 13 + .4byte _0808D750 @ case 14 + .4byte _0808D750 @ case 15 + .4byte _0808D750 @ case 16 + .4byte _0808D750 @ case 17 + .4byte _0808D750 @ case 18 + .4byte _0808D748 @ case 19 + .4byte _0808D71C @ case 20 + .4byte _0808D750 @ case 21 + .4byte _0808D750 @ case 22 + .4byte _0808D750 @ case 23 + .4byte _0808D750 @ case 24 + .4byte _0808D750 @ case 25 + .4byte _0808D750 @ case 26 + .4byte _0808D750 @ case 27 + .4byte _0808D750 @ case 28 + .4byte _0808D750 @ case 29 + .4byte _0808D740 @ case 30 + .4byte _0808D73C @ case 31 +_0808D71C: + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldr r0, [r4, #0x4c] + str r0, [r4, #0x54] + b _0808D750 +_0808D73C: + bl sub_0805E780 +_0808D740: + adds r0, r4, #0 + bl sub_0808DAD0 + b _0808D750 +_0808D748: + adds r0, r4, #0 + bl sub_0808D76C + b _0808D766 +_0808D750: + ldr r0, _0808D768 @ =gUnk_08121784 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_08080CB4 +_0808D766: + pop {r4, pc} + .align 2, 0 +_0808D768: .4byte gUnk_08121784 + + thumb_func_start sub_0808D76C +sub_0808D76C: @ 0x0808D76C + push {lr} + ldr r2, _0808D780 @ =gUnk_08121798 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808D780: .4byte gUnk_08121798 + + thumb_func_start sub_0808D784 +sub_0808D784: @ 0x0808D784 + movs r3, #1 + movs r1, #1 + strb r1, [r0, #0xd] + strb r1, [r0, #0x1d] + ldrb r2, [r0, #0x18] + subs r1, #5 + ands r1, r2 + orrs r1, r3 + strb r1, [r0, #0x18] + bx lr + + thumb_func_start sub_0808D798 +sub_0808D798: @ 0x0808D798 + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_0808D7A0 +sub_0808D7A0: @ 0x0808D7A0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _0808D7B2 + adds r0, r4, #0 + bl sub_0808DB2C +_0808D7B2: + pop {r4, pc} + + thumb_func_start sub_0808D7B4 +sub_0808D7B4: @ 0x0808D7B4 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x3c + movs r2, #0x17 + strb r2, [r0] + adds r1, #8 + movs r0, #0x49 + strb r0, [r1] + subs r1, #1 + movs r0, #7 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x3b + strb r2, [r0] + adds r1, #6 + movs r0, #0xff + strb r0, [r1] + ldr r0, _0808D818 @ =gUnk_080FD1A8 + str r0, [r4, #0x48] + movs r0, #1 + strb r0, [r4, #0x1c] + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x74 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + movs r0, #0x9b + lsls r0, r0, #1 + bl sub_08004488 + ldrb r0, [r4, #0xb] + cmp r0, #2 + beq _0808D834 + cmp r0, #2 + bgt _0808D81C + cmp r0, #0 + beq _0808D822 + b _0808D82E + .align 2, 0 +_0808D818: .4byte gUnk_080FD1A8 +_0808D81C: + cmp r0, #3 + beq _0808D83C + b _0808D82E +_0808D822: + movs r0, #0xf0 + lsls r0, r0, #9 + str r0, [r4, #0x20] + ldrh r0, [r4, #0x36] + adds r0, #8 + strh r0, [r4, #0x36] +_0808D82E: + movs r0, #1 + strb r0, [r4, #0xc] + b _0808D842 +_0808D834: + adds r0, r4, #0 + bl sub_0808DAD0 + b _0808D842 +_0808D83C: + adds r0, r4, #0 + bl sub_0808DB2C +_0808D842: + pop {r4, pc} + + thumb_func_start sub_0808D844 +sub_0808D844: @ 0x0808D844 + push {lr} + adds r3, r0, #0 + ldr r0, [r3, #0x34] + ldr r1, _0808D870 @ =0xFFFF2000 + adds r0, r0, r1 + str r0, [r3, #0x34] + adds r0, r3, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #0 + beq _0808D88A + ldrb r0, [r3, #0xe] + cmp r0, #0 + beq _0808D874 + adds r2, r3, #0 + adds r2, #0x78 + ldrh r1, [r2] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #1 + strh r0, [r2] + b _0808D87E + .align 2, 0 +_0808D870: .4byte 0xFFFF2000 +_0808D874: + adds r1, r3, #0 + adds r1, #0x78 + movs r0, #0x96 + lsls r0, r0, #2 + strh r0, [r1] +_0808D87E: + movs r0, #2 + strb r0, [r3, #0xc] + movs r0, #1 + strb r0, [r3, #0xf] + movs r0, #0x80 + strh r0, [r3, #0x24] +_0808D88A: + pop {pc} + + thumb_func_start sub_0808D88C +sub_0808D88C: @ 0x0808D88C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808D910 + bl sub_08000E50 + adds r5, r0, #0 + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r0, #0x20 + strb r0, [r4, #0xf] + ldr r2, _0808D8D0 @ =gUnk_081217A4 + lsrs r0, r5, #8 + movs r1, #1 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_0808DAA0 + cmp r0, #0 + beq _0808D8D4 + movs r0, #0x1f + ands r5, r0 + strb r5, [r4, #0x15] + b _0808D8EE + .align 2, 0 +_0808D8D0: .4byte gUnk_081217A4 +_0808D8D4: + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + adds r2, r4, #0 + adds r2, #0x74 + ldrh r2, [r2] + adds r3, r4, #0 + adds r3, #0x76 + ldrh r3, [r3] + bl sub_080045D4 + strb r0, [r4, #0x15] +_0808D8EE: + ldrb r1, [r4, #0x15] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + beq _0808D910 + movs r0, #0x10 + eors r1, r0 + lsrs r1, r1, #4 + movs r0, #1 + ands r1, r0 + lsls r1, r1, #6 + ldrb r2, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] +_0808D910: + adds r0, r4, #0 + bl sub_080AEFB4 + bl sub_0805E40C + cmp r0, #0 + bne _0808D954 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _0808D954 + adds r5, r4, #0 + adds r5, #0x78 + ldrh r0, [r5] + subs r0, #1 + strh r0, [r5] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0808D93C + adds r0, r4, #0 + movs r1, #0 + bl sub_08081404 +_0808D93C: + ldrh r0, [r5] + cmp r0, #0x77 + bhi _0808D954 + ldrb r2, [r4, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] +_0808D954: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0808D958 +sub_0808D958: @ 0x0808D958 + push {r4, lr} + adds r4, r0, #0 + ldr r2, [r4, #0x54] + ldrh r1, [r2, #8] + movs r0, #0xc2 + lsls r0, r0, #2 + cmp r1, r0 + beq _0808D972 + adds r0, r4, #0 + movs r1, #0 + bl sub_08081404 + b _0808D992 +_0808D972: + adds r0, r2, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldrh r0, [r4, #0x36] + subs r0, #1 + strh r0, [r4, #0x36] + ldr r1, _0808D994 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080177A0 + cmp r0, #0 + beq _0808D992 + adds r0, r4, #0 + bl sub_0808DB2C +_0808D992: + pop {r4, pc} + .align 2, 0 +_0808D994: .4byte gUnk_03001160 + + thumb_func_start sub_0808D998 +sub_0808D998: @ 0x0808D998 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r6, [r5, #0x54] + ldr r2, _0808DA28 @ =gUnk_080C9160 + ldrb r0, [r5, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + movs r3, #0 + ldrsh r1, [r0, r3] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + cmp r0, #0 + bge _0808D9B8 + ldr r1, _0808DA2C @ =0x0000FFFF + adds r0, r0, r1 +_0808D9B8: + asrs r0, r0, #0x10 + ldrh r3, [r6, #0x2e] + adds r0, r0, r3 + strh r0, [r5, #0x2e] + ldrb r0, [r5, #0xe] + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r2 + movs r2, #0 + ldrsh r1, [r0, r2] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #8 + cmp r0, #0 + bge _0808D9DA + ldr r3, _0808DA2C @ =0x0000FFFF + adds r0, r0, r3 +_0808D9DA: + asrs r1, r0, #0x10 + ldrh r0, [r6, #0x32] + subs r0, r0, r1 + strh r0, [r5, #0x32] + ldrb r3, [r5, #0xe] + adds r0, r3, #0 + adds r0, #8 + strb r0, [r5, #0xe] + ldrh r0, [r6, #0x36] + strh r0, [r5, #0x36] + ldrb r2, [r6, #0x1b] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r4, [r5, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r4 + orrs r0, r2 + strb r0, [r5, #0x1b] + ldrb r0, [r6, #0x19] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r5, #0x19] + ands r1, r2 + orrs r1, r0 + strb r1, [r5, #0x19] + subs r3, #0x39 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + cmp r3, #0x7e + bhi _0808DA30 + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #3 + b _0808DA3E + .align 2, 0 +_0808DA28: .4byte gUnk_080C9160 +_0808DA2C: .4byte 0x0000FFFF +_0808DA30: + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #5 +_0808DA3E: + orrs r1, r0 + strb r1, [r2] + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + adds r4, r5, #0 + adds r4, #0x63 + cmp r0, #0 + bne _0808DA70 + movs r0, #6 + strb r0, [r5, #0xf] + ldrb r0, [r4] + subs r0, #1 + strb r0, [r4] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #0x16 + rsbs r1, r1, #0 + cmp r0, r1 + bge _0808DA70 + adds r0, r5, #0 + movs r1, #1 + bl sub_08081404 +_0808DA70: + movs r1, #0 + ldrsb r1, [r4, r1] + movs r0, #0x11 + rsbs r0, r0, #0 + cmp r1, r0 + bge _0808DA8E + ldrb r2, [r5, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x18] +_0808DA8E: + adds r1, r5, #0 + adds r1, #0x87 + ldrb r0, [r1] + cmp r0, #0xa + bls _0808DA9C + movs r0, #0xa + strb r0, [r1] +_0808DA9C: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0808DAA0 +sub_0808DAA0: @ 0x0808DAA0 + push {lr} + adds r2, r0, #0 + movs r1, #0x2e + ldrsh r0, [r2, r1] + adds r1, r2, #0 + adds r1, #0x74 + ldrh r1, [r1] + subs r0, r0, r1 + adds r0, #0x30 + cmp r0, #0x60 + bhi _0808DACC + movs r1, #0x32 + ldrsh r0, [r2, r1] + adds r1, r2, #0 + adds r1, #0x76 + ldrh r1, [r1] + subs r0, r0, r1 + adds r0, #0x30 + cmp r0, #0x60 + bhi _0808DACC + movs r0, #1 + b _0808DACE +_0808DACC: + movs r0, #0 +_0808DACE: + pop {pc} + + thumb_func_start sub_0808DAD0 +sub_0808DAD0: @ 0x0808DAD0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _0808DAE0 + bl sub_0805E780 +_0808DAE0: + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x80 + strb r0, [r4, #0xe] + movs r0, #6 + strb r0, [r4, #0xf] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #0xfb + strb r0, [r1] + ldr r0, _0808DB28 @ =gUnk_03001160 + str r0, [r4, #0x54] + adds r1, r4, #0 + bl sub_0806FA24 + pop {r4, pc} + .align 2, 0 +_0808DB28: .4byte gUnk_03001160 + + thumb_func_start sub_0808DB2C +sub_0808DB2C: @ 0x0808DB2C + push {lr} + adds r1, r0, #0 + movs r2, #0 + movs r0, #2 + strb r0, [r1, #0xc] + strb r2, [r1, #0xd] + ldrb r2, [r1, #0x10] + movs r0, #0x80 + orrs r0, r2 + strb r0, [r1, #0x10] + adds r2, r1, #0 + adds r2, #0x3b + movs r0, #1 + strb r0, [r2] + ldr r0, _0808DB50 @ =gUnk_03001160 + bl sub_0806FA24 + pop {pc} + .align 2, 0 +_0808DB50: .4byte gUnk_03001160 + + thumb_func_start sub_0808DB54 +sub_0808DB54: @ 0x0808DB54 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r0, #0 + ldrb r0, [r7, #0xc] + cmp r0, #1 + beq _0808DBE8 + cmp r0, #1 + bgt _0808DB6C + cmp r0, #0 + beq _0808DB72 + b _0808DC46 +_0808DB6C: + cmp r0, #2 + beq _0808DC2C + b _0808DC46 +_0808DB72: + ldrb r0, [r7, #0xe] + movs r1, #3 + cmp r0, #0 + beq _0808DB7C + movs r1, #1 +_0808DB7C: + strb r1, [r7, #0xc] + adds r1, r7, #0 + adds r1, #0x63 + ldrb r0, [r1] + adds r0, #8 + strb r0, [r1] + adds r0, r7, #0 + movs r1, #0xa + bl sub_08004260 + ldrb r0, [r7, #0xc] + cmp r0, #1 + bne _0808DB9A + ldr r0, _0808DBDC @ =0x0000FF80 + strh r0, [r7, #0x36] +_0808DB9A: + ldrb r0, [r7, #0xb] + cmp r0, #0 + beq _0808DBA2 + b _0808DD72 +_0808DBA2: + ldrh r1, [r7, #0x32] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + adds r0, #0xc + strh r0, [r7, #0x32] + ldr r0, _0808DBE0 @ =0x00004023 + movs r2, #0x2e + ldrsh r1, [r7, r2] + ldr r3, _0808DBE4 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r5, #0x32 + ldrsh r2, [r7, r5] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r7, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + b _0808DD72 + .align 2, 0 +_0808DBDC: .4byte 0x0000FF80 +_0808DBE0: .4byte 0x00004023 +_0808DBE4: .4byte gUnk_03000BF0 +_0808DBE8: + movs r1, #0x80 + lsls r1, r1, #5 + adds r0, r7, #0 + bl sub_08003FC4 + cmp r0, #0 + beq _0808DBF8 + b _0808DD72 +_0808DBF8: + adds r0, r7, #0 + movs r1, #0x46 + movs r2, #0x40 + bl sub_080A29AC + adds r1, r0, #0 + cmp r1, #0 + beq _0808DC0E + ldrh r0, [r1, #0x32] + adds r0, #8 + strh r0, [r1, #0x32] +_0808DC0E: + movs r0, #0x1e + movs r1, #0 + bl sub_08080964 + ldr r0, _0808DC28 @ =0x0000010B + bl sub_080A3268 + movs r0, #2 + strb r0, [r7, #0xc] + movs r0, #0x3c + strb r0, [r7, #0xe] + b _0808DD72 + .align 2, 0 +_0808DC28: .4byte 0x0000010B +_0808DC2C: + ldrb r0, [r7, #0xe] + subs r0, #1 + strb r0, [r7, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0808DC3A + b _0808DD72 +_0808DC3A: + movs r0, #3 + strb r0, [r7, #0xc] + movs r0, #0x73 + bl sub_080A3268 + b _0808DD72 +_0808DC46: + ldrb r0, [r7, #0xb] + cmp r0, #0 + beq _0808DC4E + b _0808DD72 +_0808DC4E: + ldr r0, _0808DCC8 @ =gUnk_03001160 + movs r2, #0x32 + ldrsh r1, [r0, r2] + movs r3, #0x32 + ldrsh r0, [r7, r3] + cmp r1, r0 + bge _0808DCDC + ldr r0, _0808DCCC @ =gUnk_03003F80 + ldrb r0, [r0, #0x12] + cmp r0, #0x1e + bne _0808DC66 + b _0808DD72 +_0808DC66: + adds r0, r7, #0 + bl sub_080002A0 + ldr r1, _0808DCD0 @ =0x00004017 + cmp r0, r1 + beq _0808DC74 + b _0808DD72 +_0808DC74: + ldr r0, _0808DCD4 @ =0x00004023 + movs r5, #0x2e + ldrsh r1, [r7, r5] + ldr r4, _0808DCD8 @ =gUnk_03000BF0 + ldrh r2, [r4, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r5, #0x3f + ands r1, r5 + movs r3, #0x32 + ldrsh r2, [r7, r3] + ldrh r3, [r4, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r5 + lsls r2, r2, #6 + orrs r1, r2 + adds r6, r7, #0 + adds r6, #0x38 + ldrb r2, [r6] + bl sub_0800015E + movs r1, #0x2e + ldrsh r0, [r7, r1] + ldrh r1, [r4, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r5 + movs r2, #0x32 + ldrsh r1, [r7, r2] + ldrh r2, [r4, #8] + adds r2, #0x10 + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r5 + lsls r1, r1, #6 + orrs r0, r1 + ldrb r1, [r6] + bl sub_0807BA8C + b _0808DD72 + .align 2, 0 +_0808DCC8: .4byte gUnk_03001160 +_0808DCCC: .4byte gUnk_03003F80 +_0808DCD0: .4byte 0x00004017 +_0808DCD4: .4byte 0x00004023 +_0808DCD8: .4byte gUnk_03000BF0 +_0808DCDC: + adds r0, r7, #0 + bl sub_080002A0 + ldr r3, _0808DD44 @ =0x00004017 + mov r8, r3 + cmp r0, r8 + beq _0808DD72 + movs r5, #0x2e + ldrsh r1, [r7, r5] + ldr r5, _0808DD48 @ =gUnk_03000BF0 + ldrh r0, [r5, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r6, #0x3f + ands r1, r6 + movs r2, #0x32 + ldrsh r0, [r7, r2] + ldrh r2, [r5, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r1, r0 + adds r4, r7, #0 + adds r4, #0x38 + ldrb r2, [r4] + mov r0, r8 + bl sub_0800015E + ldrb r0, [r7, #0xa] + cmp r0, #0 + bne _0808DD4C + movs r3, #0x2e + ldrsh r1, [r7, r3] + ldrh r0, [r5, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + ands r1, r6 + movs r2, #0x32 + ldrsh r0, [r7, r2] + ldrh r2, [r5, #8] + adds r2, #0x10 + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r1, r0 + ldrb r2, [r4] + mov r0, r8 + bl sub_0800015E + b _0808DD72 + .align 2, 0 +_0808DD44: .4byte 0x00004017 +_0808DD48: .4byte gUnk_03000BF0 +_0808DD4C: + ldr r0, _0808DD78 @ =0x00004014 + movs r3, #0x2e + ldrsh r1, [r7, r3] + ldrh r2, [r5, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r6 + movs r3, #0x32 + ldrsh r2, [r7, r3] + ldrh r3, [r5, #8] + adds r3, #0x10 + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r6 + lsls r2, r2, #6 + orrs r1, r2 + ldrb r2, [r4] + bl sub_0800015E +_0808DD72: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0808DD78: .4byte 0x00004014 + + thumb_func_start sub_0808DD7C +sub_0808DD7C: @ 0x0808DD7C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #0 + beq _0808DD9C + ldr r0, _0808DD98 @ =gUnk_081217B0 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _0808DDAC + .align 2, 0 +_0808DD98: .4byte gUnk_081217B0 +_0808DD9C: + ldr r0, _0808DDB0 @ =gUnk_081217A8 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 +_0808DDAC: + pop {pc} + .align 2, 0 +_0808DDB0: .4byte gUnk_081217A8 + + thumb_func_start sub_0808DDB4 +sub_0808DDB4: @ 0x0808DDB4 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _0808DDDC + movs r0, #0x78 + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x6c + movs r0, #0xf0 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0808DDE8 +_0808DDDC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808DDE0 +sub_0808DDE0: @ 0x0808DDE0 + push {lr} + bl sub_0805E780 + pop {pc} + + thumb_func_start sub_0808DDE8 +sub_0808DDE8: @ 0x0808DDE8 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r5, #0 + adds r4, #0x6c + ldrh r0, [r4] + subs r0, #1 + strh r0, [r4] + bl sub_0807953C + cmp r0, #0 + beq _0808DE04 + ldrb r0, [r5, #0xf] + adds r0, #1 + strb r0, [r5, #0xf] +_0808DE04: + ldrb r0, [r5, #0xf] + cmp r0, #0x1e + bhi _0808DE1C + ldr r0, _0808DE8C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + ldr r1, _0808DE90 @ =0x00001810 + ands r0, r1 + cmp r0, #0 + bne _0808DE1C + ldrh r0, [r4] + cmp r0, #0 + bne _0808DE2A +_0808DE1C: + ldr r0, _0808DE8C @ =gUnk_03003F80 + ldr r1, [r0, #0x30] + ldr r2, _0808DE94 @ =0xFFFFFBFF + ands r1, r2 + str r1, [r0, #0x30] + bl sub_0805E780 +_0808DE2A: + ldr r3, _0808DE98 @ =gUnk_03001160 + ldr r1, _0808DE9C @ =gUnk_081217B8 + ldrb r0, [r3, #0x14] + lsrs r0, r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r3, #0x2e] + adds r0, r0, r1 + strh r0, [r5, #0x2e] + ldrh r0, [r3, #0x32] + subs r0, #6 + strh r0, [r5, #0x32] + ldr r0, [r3, #0x34] + str r0, [r5, #0x34] + adds r0, r3, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r5, #0 + adds r0, #0x38 + strb r1, [r0] + ldrb r2, [r3, #0x19] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r4, [r5, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r4 + orrs r0, r2 + strb r0, [r5, #0x19] + ldrb r0, [r3, #0x1b] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r5, #0x1b] + ands r1, r2 + orrs r1, r0 + strb r1, [r5, #0x1b] + ldr r0, _0808DE8C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + lsls r1, r1, #3 + ands r0, r1 + cmp r0, #0 + beq _0808DEA0 + adds r0, r5, #0 + bl sub_08004274 + b _0808DEA4 + .align 2, 0 +_0808DE8C: .4byte gUnk_03003F80 +_0808DE90: .4byte 0x00001810 +_0808DE94: .4byte 0xFFFFFBFF +_0808DE98: .4byte gUnk_03001160 +_0808DE9C: .4byte gUnk_081217B8 +_0808DEA0: + bl sub_0805E780 +_0808DEA4: + ldr r1, _0808DEC0 @ =gUnk_03001160 + ldrb r0, [r1, #0x14] + lsrs r0, r0, #1 + cmp r0, #2 + bne _0808DEC4 + adds r0, r1, #0 + movs r1, #3 + adds r2, r5, #0 + bl sub_0806FEBC + ldrh r0, [r5, #0x32] + subs r0, #5 + strh r0, [r5, #0x32] + b _0808DECE + .align 2, 0 +_0808DEC0: .4byte gUnk_03001160 +_0808DEC4: + adds r0, r1, #0 + movs r1, #0 + adds r2, r5, #0 + bl sub_0806FEBC +_0808DECE: + pop {r4, r5, pc} + + thumb_func_start sub_0808DED0 +sub_0808DED0: @ 0x0808DED0 + push {lr} + ldr r2, _0808DEE4 @ =gUnk_081217BC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808DEE4: .4byte gUnk_081217BC + + thumb_func_start sub_0808DEE8 +sub_0808DEE8: @ 0x0808DEE8 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x10] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r5, #0x10] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldr r3, _0808DF74 @ =gUnk_03001160 + ldrb r1, [r3, #0x1b] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r5, #0x1b] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x1b] + ldrb r0, [r3, #0x14] + lsrs r0, r0, #1 + strb r0, [r5, #0x14] + adds r0, #1 + movs r1, #3 + ands r0, r1 + lsls r0, r0, #3 + strb r0, [r5, #0x15] + movs r3, #6 + movs r0, #6 + strb r0, [r5, #0xf] + movs r0, #0xa0 + lsls r0, r0, #1 + strh r0, [r5, #0x24] + adds r1, r5, #0 + adds r1, #0x60 + movs r0, #0x3c + strh r0, [r1] + ldrb r1, [r5, #0x1a] + movs r2, #0x10 + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r5, #0x1a] + adds r0, r5, #0 + adds r0, #0x72 + strh r4, [r0] + subs r0, #6 + strh r4, [r0] + ldrb r0, [r5, #0x11] + ands r2, r0 + orrs r2, r3 + strb r2, [r5, #0x11] + adds r0, r5, #0 + movs r1, #7 + bl sub_08004260 + ldrb r0, [r5, #0xb] + cmp r0, #0 + beq _0808DF78 + movs r0, #0x28 + strb r0, [r5, #0xe] + b _0808DFAA + .align 2, 0 +_0808DF74: .4byte gUnk_03001160 +_0808DF78: + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #0x18] + ldr r0, _0808DF9C @ =gUnk_03003F80 + adds r0, #0xac + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0808DFA0 + movs r0, #0x28 + b _0808DFA2 + .align 2, 0 +_0808DF9C: .4byte gUnk_03003F80 +_0808DFA0: + movs r0, #0x50 +_0808DFA2: + strb r0, [r5, #0xe] + adds r0, r5, #0 + bl sub_0808DFAC +_0808DFAA: + pop {r4, r5, pc} + + thumb_func_start sub_0808DFAC +sub_0808DFAC: @ 0x0808DFAC + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _0808E00E + ldr r1, _0808DFF0 @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #0 + beq _0808DFCC + ldrb r1, [r1, #4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808DFD0 +_0808DFCC: + bl sub_0805E780 +_0808DFD0: + ldr r0, _0808DFF0 @ =gUnk_03003F80 + adds r2, r0, #0 + adds r2, #0x21 + ldrb r0, [r2] + cmp r0, #0x4f + bls _0808DFF8 + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r4, #0x18] + ldrb r6, [r2] + ldr r7, _0808DFF4 @ =gUnk_081217D8 + b _0808E038 + .align 2, 0 +_0808DFF0: .4byte gUnk_03003F80 +_0808DFF4: .4byte gUnk_081217D8 +_0808DFF8: + cmp r0, #0 + beq _0808E008 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + b _0808E1BA +_0808E008: + bl sub_0805E780 + b _0808E038 +_0808E00E: + ldr r5, _0808E02C @ =gUnk_03003F80 + ldrb r0, [r5, #4] + cmp r0, #0 + bne _0808E01A + bl sub_0805E780 +_0808E01A: + ldrb r1, [r5, #0x1b] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0808E034 + ldrb r6, [r5, #0x1b] + ldr r7, _0808E030 @ =gUnk_081217D0 + b _0808E038 + .align 2, 0 +_0808E02C: .4byte gUnk_03003F80 +_0808E030: .4byte gUnk_081217D0 +_0808E034: + bl sub_0805E780 +_0808E038: + cmp r6, #0 + bne _0808E03E + b _0808E1B6 +_0808E03E: + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0808E084 + subs r0, #1 + strb r0, [r4, #0xe] + movs r2, #3 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _0808E068 + ldr r0, _0808E080 @ =gUnk_03003F80 + adds r0, #0xac + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #2 + ands r0, r1 + cmp r0, #0 + bne _0808E068 + movs r2, #7 +_0808E068: + ldrb r0, [r4, #0xe] + ands r0, r2 + adds r5, r4, #0 + adds r5, #0x6c + adds r6, r4, #0 + adds r6, #0x38 + cmp r0, #0 + bne _0808E0E4 + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] + b _0808E0E4 + .align 2, 0 +_0808E080: .4byte gUnk_03003F80 +_0808E084: + adds r5, r4, #0 + adds r5, #0x72 + ldrh r0, [r5] + cmp r0, #0 + beq _0808E0BC + ldr r0, _0808E0B8 @ =gUnk_030010A0 + ldr r1, [r0] + movs r0, #0x1f + ands r1, r0 + subs r5, #6 + adds r6, r4, #0 + adds r6, #0x38 + cmp r1, #0 + bne _0808E0E4 + adds r0, r4, #0 + movs r1, #7 + movs r2, #0 + bl sub_080A29AC + cmp r0, #0 + beq _0808E0E4 + ldrb r1, [r6] + adds r0, #0x38 + strb r1, [r0] + b _0808E0E4 + .align 2, 0 +_0808E0B8: .4byte gUnk_030010A0 +_0808E0BC: + ldr r0, _0808E140 @ =0x00000115 + bl sub_08004488 + adds r0, r4, #0 + movs r1, #0x12 + movs r2, #0 + bl sub_080A29AC + adds r6, r4, #0 + adds r6, #0x38 + cmp r0, #0 + beq _0808E0DA + ldrb r1, [r6] + adds r0, #0x38 + strb r1, [r0] +_0808E0DA: + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] + adds r5, r4, #0 + adds r5, #0x6c +_0808E0E4: + ldr r2, _0808E144 @ =gUnk_03001160 + ldrb r1, [r2, #0x19] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r3, [r4, #0x19] + movs r0, #0x3f + ands r0, r3 + orrs r0, r1 + strb r0, [r4, #0x19] + ldrb r0, [r4, #0x14] + lsls r0, r0, #1 + adds r0, r7, r0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r2, #0x2e] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + ldrb r0, [r4, #0x14] + lsls r0, r0, #1 + adds r0, r0, r7 + ldrb r0, [r0, #1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r2, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + ldrh r0, [r2, #0x36] + strh r0, [r4, #0x36] + adds r2, #0x38 + ldrb r0, [r2] + strb r0, [r6] + ldrb r0, [r4, #0x14] + cmp r0, #1 + beq _0808E148 + cmp r0, #1 + ble _0808E136 + cmp r0, #2 + beq _0808E150 + cmp r0, #3 + beq _0808E15A +_0808E136: + ldrh r0, [r4, #0x32] + ldrh r1, [r5] + subs r0, r0, r1 + strh r0, [r4, #0x32] + b _0808E162 + .align 2, 0 +_0808E140: .4byte 0x00000115 +_0808E144: .4byte gUnk_03001160 +_0808E148: + ldrh r0, [r5] + ldrh r1, [r4, #0x2e] + adds r0, r0, r1 + b _0808E160 +_0808E150: + ldrh r0, [r5] + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + b _0808E162 +_0808E15A: + ldrh r0, [r4, #0x2e] + ldrh r1, [r5] + subs r0, r0, r1 +_0808E160: + strh r0, [r4, #0x2e] +_0808E162: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808E17A + movs r0, #6 + strb r0, [r4, #0xf] + ldrb r0, [r4, #0x15] + movs r1, #0x10 + eors r0, r1 + strb r0, [r4, #0x15] +_0808E17A: + adds r0, r4, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _0808E1BA + ldr r0, _0808E1AC @ =gUnk_03003F80 + ldrb r1, [r0, #0x1b] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0808E1BA + ldrb r0, [r4, #0x10] + movs r1, #0xdf + ands r1, r0 + strb r1, [r4, #0x10] + movs r0, #6 + bl sub_0807CA84 + cmp r0, #1 + bne _0808E1B0 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + b _0808E1BA + .align 2, 0 +_0808E1AC: .4byte gUnk_03003F80 +_0808E1B0: + bl sub_0805E780 + b _0808E1BA +_0808E1B6: + bl sub_0805E780 +_0808E1BA: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0808E1BC +sub_0808E1BC: @ 0x0808E1BC + push {r4, lr} + adds r4, r0, #0 + bl sub_08079BD8 + ldrb r0, [r4, #0xc] + adds r0, #1 + movs r2, #0 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldr r0, _0808E204 @ =gUnk_03001160 + ldrb r0, [r0, #0x14] + strb r0, [r4, #0x14] + adds r0, r4, #0 + adds r0, #0x60 + strh r2, [r0] + ldrb r1, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r4, #0x1a] + movs r0, #0xaf + strh r0, [r4, #0x12] + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 + adds r0, r4, #0 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 +_0808E204: .4byte gUnk_03001160 + + thumb_func_start sub_0808E208 +sub_0808E208: @ 0x0808E208 + push {r4, lr} + adds r4, r0, #0 + bl sub_08079BD8 + adds r0, r4, #0 + bl sub_08004274 + ldr r0, _0808E240 @ =gUnk_03003F80 + ldrb r0, [r0, #0x1b] + cmp r0, #0 + beq _0808E248 + ldr r0, _0808E244 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0808E24C + ldrb r2, [r4, #0x1a] + lsls r1, r2, #0x1c + lsrs r1, r1, #0x1c + movs r0, #4 + eors r1, r0 + subs r0, #0x14 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1a] + b _0808E24C + .align 2, 0 +_0808E240: .4byte gUnk_03003F80 +_0808E244: .4byte gUnk_030010A0 +_0808E248: + bl sub_0805E780 +_0808E24C: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0808E260 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] +_0808E260: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808E264 +sub_0808E264: @ 0x0808E264 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808E27C + bl sub_0805E780 +_0808E27C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808E280 +sub_0808E280: @ 0x0808E280 + push {lr} + ldr r2, _0808E294 @ =gUnk_08121B8C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808E294: .4byte gUnk_08121B8C + + thumb_func_start sub_0808E298 +sub_0808E298: @ 0x0808E298 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r0, #0x38 + movs r1, #2 + strb r1, [r0] + movs r0, #1 + strb r0, [r4, #0xc] + movs r5, #0 + movs r6, #0 + adds r0, r4, #0 + bl sub_080002A0 + adds r1, r0, #0 + movs r0, #0xd1 + lsls r0, r0, #2 + cmp r1, r0 + beq _0808E2DA + cmp r1, r0 + bhi _0808E2C6 + subs r0, #1 + cmp r1, r0 + beq _0808E2D8 + b _0808E2E2 +_0808E2C6: + ldr r0, _0808E2D4 @ =0x00000345 + cmp r1, r0 + beq _0808E2DE + adds r0, #1 + cmp r1, r0 + beq _0808E2E6 + b _0808E2E2 + .align 2, 0 +_0808E2D4: .4byte 0x00000345 +_0808E2D8: + movs r5, #0x10 +_0808E2DA: + movs r6, #0x10 + b _0808E2E6 +_0808E2DE: + movs r5, #0x10 + b _0808E2E6 +_0808E2E2: + bl sub_0805E780 +_0808E2E6: + ldrh r0, [r4, #0x2e] + adds r0, r0, r5 + movs r2, #0x10 + rsbs r2, r2, #0 + adds r1, r2, #0 + ands r0, r1 + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x32] + adds r0, r0, r6 + ands r0, r1 + strh r0, [r4, #0x32] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + ldr r1, _0808E314 @ =0x00000347 + adds r0, r4, #0 + bl sub_0808E354 + adds r0, r4, #0 + bl sub_0808E318 + pop {r4, r5, r6, pc} + .align 2, 0 +_0808E314: .4byte 0x00000347 + + thumb_func_start sub_0808E318 +sub_0808E318: @ 0x0808E318 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808E340 + ldr r1, _0808E33C @ =0x00000343 + adds r0, r4, #0 + bl sub_0808E354 + bl sub_0805E780 + b _0808E34E + .align 2, 0 +_0808E33C: .4byte 0x00000343 +_0808E340: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0808E34E + ldr r0, _0808E350 @ =0x0000018B + bl sub_08004488 +_0808E34E: + pop {r4, pc} + .align 2, 0 +_0808E350: .4byte 0x0000018B + + thumb_func_start sub_0808E354 +sub_0808E354: @ 0x0808E354 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + adds r6, r0, #0 + lsls r1, r1, #0x10 + mov r8, r1 + mov r0, r8 + lsrs r0, r0, #0x10 + mov r8, r0 + movs r2, #0x2e + ldrsh r1, [r6, r2] + ldr r5, _0808E410 @ =gUnk_03000BF0 + ldrh r0, [r5, #6] + adds r0, #0x10 + subs r1, r1, r0 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r3, #0x32 + ldrsh r0, [r6, r3] + ldrh r2, [r5, #8] + adds r2, #0x10 + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r4 + lsls r0, r0, #6 + orrs r1, r0 + mov r0, r8 + movs r2, #2 + bl sub_0807B7D8 + mov r0, r8 + adds r0, #1 + movs r2, #0x2e + ldrsh r1, [r6, r2] + ldrh r2, [r5, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r4 + movs r3, #0x32 + ldrsh r2, [r6, r3] + ldrh r3, [r5, #8] + adds r3, #0x10 + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + movs r2, #2 + bl sub_0807B7D8 + mov r0, r8 + adds r0, #2 + movs r2, #0x2e + ldrsh r1, [r6, r2] + ldrh r2, [r5, #6] + adds r2, #0x10 + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r4 + movs r3, #0x32 + ldrsh r2, [r6, r3] + ldrh r3, [r5, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + movs r2, #2 + bl sub_0807B7D8 + movs r0, #3 + add r8, r0 + movs r2, #0x2e + ldrsh r1, [r6, r2] + ldrh r0, [r5, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + ands r1, r4 + movs r3, #0x32 + ldrsh r0, [r6, r3] + ldrh r2, [r5, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r4 + lsls r0, r0, #6 + orrs r1, r0 + mov r0, r8 + movs r2, #2 + bl sub_0807B7D8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, pc} + .align 2, 0 +_0808E410: .4byte gUnk_03000BF0 + + thumb_func_start sub_0808E414 +sub_0808E414: @ 0x0808E414 + push {lr} + ldr r2, _0808E428 @ =gUnk_08121BD8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808E428: .4byte gUnk_08121BD8 + + thumb_func_start sub_0808E42C +sub_0808E42C: @ 0x0808E42C + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x11] + subs r1, #0x11 + ands r1, r2 + movs r2, #6 + orrs r1, r2 + strb r1, [r0, #0x11] + ldrb r1, [r0, #0xa] + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808E448 +sub_0808E448: @ 0x0808E448 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x10 + bl sub_0805436C + cmp r0, #1 + bls _0808E45A + bl sub_0805E780 +_0808E45A: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #1 + beq _0808E472 + cmp r0, #0x80 + bne _0808E486 + bl sub_0805E780 +_0808E472: + ldrb r2, [r4, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + b _0808E494 +_0808E486: + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r4, #0x18] +_0808E494: + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0808E4A2 + ldr r0, [r4, #0x34] + ldr r1, _0808E4A4 @ =0xFFFF8000 + adds r0, r0, r1 + str r0, [r4, #0x34] +_0808E4A2: + pop {r4, pc} + .align 2, 0 +_0808E4A4: .4byte 0xFFFF8000 + + thumb_func_start sub_0808E4A8 +sub_0808E4A8: @ 0x0808E4A8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r2, [r4, #0xa] + lsls r1, r2, #1 + ldr r0, _0808E540 @ =gUnk_08121C40 + adds r3, r1, r0 + ldrb r6, [r4, #0xc] + cmp r6, #0 + bne _0808E54C + movs r5, #1 + strb r5, [r4, #0xc] + movs r2, #0 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _0808E4C8 + movs r2, #1 +_0808E4C8: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xa] + strb r0, [r4, #0x1e] + adds r0, r4, #0 + adds r0, #0x38 + strb r5, [r0] + ldrb r1, [r3] + lsls r1, r1, #6 + ldrb r2, [r4, #0x19] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x19] + ldrb r0, [r3, #1] + adds r3, r4, #0 + adds r3, #0x29 + movs r1, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + adds r0, r4, #0 + adds r0, #0x76 + strh r6, [r0] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0808E544 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r4, #0 + adds r0, #0x74 + strh r1, [r0] + adds r0, r4, #0 + bl sub_0808E55C + ldr r1, _0808E548 @ =sub_0808E55C + adds r0, r4, #0 + movs r2, #0 + bl sub_08052D74 + b _0808E55A + .align 2, 0 +_0808E540: .4byte gUnk_08121C40 +_0808E544: .4byte gUnk_03000BF0 +_0808E548: .4byte sub_0808E55C +_0808E54C: + movs r0, #1 + ands r2, r0 + cmp r2, #0 + bne _0808E55A + adds r0, r4, #0 + bl sub_0808E670 +_0808E55A: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0808E55C +sub_0808E55C: @ 0x0808E55C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov r8, r0 + ldrb r0, [r0, #0xa] + cmp r0, #1 + beq _0808E614 + cmp r0, #1 + bgt _0808E576 + cmp r0, #0 + beq _0808E57A + b _0808E63A +_0808E576: + cmp r0, #2 + bne _0808E63A +_0808E57A: + mov r0, r8 + adds r0, #0x74 + ldrh r6, [r0] + ldr r0, _0808E5FC @ =0xFFFFFEFF + adds r7, r6, r0 + ldr r4, _0808E600 @ =0x0000408F + mov r5, r8 + adds r5, #0x38 + ldrb r2, [r5] + adds r0, r4, #0 + adds r1, r7, #0 + bl sub_0800015E + ldr r2, _0808E604 @ =0xFFFFFF00 + adds r1, r6, r2 + ldrb r2, [r5] + adds r0, r4, #0 + bl sub_0800015E + ldr r0, _0808E608 @ =0x0000406C + ldr r2, _0808E60C @ =0xFFFFFEFE + adds r1, r6, r2 + ldrb r2, [r5] + bl sub_0800015E + ldr r0, _0808E610 @ =0x0000406D + adds r1, r6, #0 + subs r1, #0xff + ldrb r2, [r5] + bl sub_0800015E + mov r1, r8 + ldrb r0, [r1, #0xa] + movs r2, #6 + mov sb, r2 + cmp r0, #0 + beq _0808E63A + movs r0, #4 + mov sb, r0 + subs r4, #0x1d + adds r1, r6, #0 + adds r1, #0x3f + ldrb r2, [r5] + adds r0, r4, #0 + bl sub_0800015E + adds r1, r6, #0 + adds r1, #0x40 + ldrb r2, [r5] + adds r0, r4, #0 + bl sub_0800015E + adds r1, r6, #0 + adds r1, #0x7f + ldrb r2, [r5] + adds r0, r4, #0 + bl sub_0800015E + adds r1, r6, #0 + adds r1, #0x80 + ldrb r2, [r5] + adds r0, r4, #0 + bl sub_0800015E + b _0808E63A + .align 2, 0 +_0808E5FC: .4byte 0xFFFFFEFF +_0808E600: .4byte 0x0000408F +_0808E604: .4byte 0xFFFFFF00 +_0808E608: .4byte 0x0000406C +_0808E60C: .4byte 0xFFFFFEFE +_0808E610: .4byte 0x0000406D +_0808E614: + mov r0, r8 + adds r0, #0x74 + ldrh r6, [r0] + subs r7, r6, #1 + ldr r5, _0808E66C @ =0x0000408E + mov r4, r8 + adds r4, #0x38 + ldrb r2, [r4] + adds r0, r5, #0 + adds r1, r7, #0 + bl sub_0800015E + ldrb r2, [r4] + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0800015E + movs r1, #2 + mov sb, r1 +_0808E63A: + movs r5, #0 + cmp r5, sb + bhs _0808E662 + ldr r6, _0808E66C @ =0x0000408E + mov r4, r8 + adds r4, #0x38 +_0808E646: + adds r7, #0x40 + ldrb r2, [r4] + adds r0, r6, #0 + adds r1, r7, #0 + bl sub_0800015E + adds r1, r7, #1 + ldrb r2, [r4] + adds r0, r6, #0 + bl sub_0800015E + adds r5, #1 + cmp r5, sb + blo _0808E646 +_0808E662: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0808E66C: .4byte 0x0000408E + + thumb_func_start sub_0808E670 +sub_0808E670: @ 0x0808E670 + push {lr} + adds r0, #0x74 + ldrh r0, [r0] + ldr r1, _0808E684 @ =0xFFFFFEFF + adds r0, r0, r1 + movs r1, #1 + bl sub_080002B0 + pop {pc} + .align 2, 0 +_0808E684: .4byte 0xFFFFFEFF + + thumb_func_start sub_0808E688 +sub_0808E688: @ 0x0808E688 + push {lr} + ldr r2, _0808E69C @ =gUnk_08121C48 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808E69C: .4byte gUnk_08121C48 + + thumb_func_start sub_0808E6A0 +sub_0808E6A0: @ 0x0808E6A0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x84 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0808E6B4 + bl sub_0805E780 +_0808E6B4: + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x62 + strb r0, [r4, #0xa] + ldrb r1, [r4, #0x18] + subs r0, #0x66 + ands r0, r1 + strb r0, [r4, #0x18] + ldr r0, _0808E6E0 @ =gUnk_08121C58 + str r0, [r4, #0x48] + adds r1, r4, #0 + adds r1, #0x38 + movs r2, #3 + movs r0, #3 + strb r0, [r1] + ldrb r1, [r4, #0x11] + subs r0, #0x13 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x11] + pop {r4, pc} + .align 2, 0 +_0808E6E0: .4byte gUnk_08121C58 + + thumb_func_start sub_0808E6E4 +sub_0808E6E4: @ 0x0808E6E4 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0808E712 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #6 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r4, #0 + bl sub_0808E714 +_0808E712: + pop {r4, pc} + + thumb_func_start sub_0808E714 +sub_0808E714: @ 0x0808E714 + push {r4, lr} + adds r4, r0, #0 + ldrb r3, [r4, #0xf] + lsls r0, r3, #3 + movs r1, #0x80 + lsls r1, r1, #3 + subs r2, r1, r0 + movs r0, #0x80 + lsls r0, r0, #1 + cmp r2, r0 + ble _0808E73A + adds r0, r3, #1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C + b _0808E756 +_0808E73A: + movs r0, #3 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0x10 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_0805EC60 + ldr r0, _0808E760 @ =0x00000141 + bl sub_080A3268 +_0808E756: + adds r0, r4, #0 + bl sub_08080CB4 + pop {r4, pc} + .align 2, 0 +_0808E760: .4byte 0x00000141 + + thumb_func_start sub_0808E764 +sub_0808E764: @ 0x0808E764 + push {r4, lr} + adds r4, r0, #0 + bl sub_08080CB4 + ldr r0, _0808E79C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0808E79A + adds r0, r4, #0 + bl sub_08017850 + cmp r0, #0 + beq _0808E79A + adds r0, r4, #0 + adds r0, #0x84 + ldrh r0, [r0] + bl sub_0807CCC8 + movs r0, #0x62 + movs r1, #0 + movs r2, #0 + bl sub_080A7C00 + bl sub_0805E780 +_0808E79A: + pop {r4, pc} + .align 2, 0 +_0808E79C: .4byte gUnk_03003F80 + + thumb_func_start sub_0808E7A0 +sub_0808E7A0: @ 0x0808E7A0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _0808E7B2 + adds r0, r4, #0 + bl sub_0808EFF0 +_0808E7B2: + ldr r1, _0808E7D4 @ =gUnk_08121C64 + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0x3f + bhi _0808E7D2 + adds r0, r4, #0 + bl sub_080042B8 +_0808E7D2: + pop {r4, pc} + .align 2, 0 +_0808E7D4: .4byte gUnk_08121C64 + + thumb_func_start sub_0808E7D8 +sub_0808E7D8: @ 0x0808E7D8 + push {lr} + ldr r2, _0808E7EC @ =gUnk_08121CCC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808E7EC: .4byte gUnk_08121CCC + + thumb_func_start sub_0808E7F0 +sub_0808E7F0: @ 0x0808E7F0 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + movs r2, #2 + bl sub_080AE008 + ldrb r0, [r4, #0x1a] + movs r1, #0xf + orrs r0, r1 + strb r0, [r4, #0x1a] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + movs r0, #0xff + strb r0, [r4, #0xb] + movs r0, #1 + strb r0, [r4, #0xc] + pop {r4, pc} + + thumb_func_start sub_0808E818 +sub_0808E818: @ 0x0808E818 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_0808E950 + cmp r0, #0 + bne _0808E840 + movs r1, #1 + rsbs r1, r1, #0 + strb r1, [r4, #0xb] + adds r0, r4, #0 + adds r0, #0x68 + strh r1, [r0] + adds r0, #2 + strh r1, [r0] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + b _0808E94E +_0808E840: + ldr r0, _0808E8C0 @ =gUnk_02019EE0 + ldrb r1, [r0, #6] + ldrb r0, [r4, #0xb] + adds r6, r4, #0 + adds r6, #0x68 + adds r5, r4, #0 + adds r5, #0x70 + cmp r0, r1 + beq _0808E894 + strb r1, [r4, #0xb] + movs r0, #0x14 + bl sub_0807CC30 + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r2, #0 + cmp r0, #0 + bne _0808E86A + movs r0, #0x80 + lsls r0, r0, #3 + adds r1, r0, #0 +_0808E86A: + strh r1, [r6] + movs r0, #4 + strb r0, [r5] + movs r0, #2 + strb r0, [r4, #0x14] + movs r0, #1 + bl sub_0807A094 + ldr r1, _0808E8C4 @ =gUnk_08133368 + subs r0, #0x16 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldr r1, _0808E8C8 @ =0x00FFFFFF + ands r0, r1 + ldr r1, _0808E8CC @ =gUnk_085A2E80 + adds r0, r0, r1 + movs r1, #0x1f + movs r2, #1 + bl sub_0801D754 +_0808E894: + ldr r0, _0808E8D0 @ =gUnk_02032EC0 + ldrb r2, [r0, #2] + cmp r2, #0 + bne _0808E904 + ldr r3, _0808E8D4 @ =gUnk_03000FF0 + ldrh r1, [r3] + movs r0, #0x80 + lsls r0, r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0808E904 + ldrh r1, [r3, #2] + cmp r1, #0x20 + beq _0808E8F2 + cmp r1, #0x20 + bgt _0808E8D8 + cmp r1, #2 + beq _0808E8F8 + cmp r1, #0x10 + beq _0808E8E6 + b _0808E904 + .align 2, 0 +_0808E8C0: .4byte gUnk_02019EE0 +_0808E8C4: .4byte gUnk_08133368 +_0808E8C8: .4byte 0x00FFFFFF +_0808E8CC: .4byte gUnk_085A2E80 +_0808E8D0: .4byte gUnk_02032EC0 +_0808E8D4: .4byte gUnk_03000FF0 +_0808E8D8: + cmp r1, #0x40 + beq _0808E8E2 + cmp r1, #0x80 + beq _0808E8EC + b _0808E904 +_0808E8E2: + strb r2, [r4, #0x14] + b _0808E904 +_0808E8E6: + movs r0, #1 + strb r0, [r4, #0x14] + b _0808E904 +_0808E8EC: + movs r0, #2 + strb r0, [r4, #0x14] + b _0808E904 +_0808E8F2: + movs r0, #3 + strb r0, [r4, #0x14] + b _0808E904 +_0808E8F8: + ldrb r0, [r5] + movs r1, #0 + cmp r0, #0 + bne _0808E902 + movs r1, #4 +_0808E902: + strb r1, [r5] +_0808E904: + movs r2, #0 + ldrb r0, [r4, #0x14] + cmp r0, #3 + bne _0808E90E + movs r2, #1 +_0808E90E: + lsls r2, r2, #6 + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrh r0, [r6] + ldrb r1, [r5] + adds r0, r0, r1 + ldrb r2, [r4, #0x14] + adds r1, r0, r2 + adds r2, r4, #0 + adds r2, #0x6a + ldrh r0, [r2] + cmp r0, r1 + beq _0808E940 + strh r1, [r2] + lsrs r0, r1, #8 + strh r0, [r4, #0x12] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl sub_080042AC +_0808E940: + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #2 + orrs r1, r0 + strb r1, [r4, #0x18] +_0808E94E: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0808E950 +sub_0808E950: @ 0x0808E950 + push {lr} + movs r2, #0 + ldr r0, _0808E980 @ =gUnk_02032EC0 + ldrb r0, [r0, #2] + cmp r0, #0 + beq _0808E968 + cmp r0, #0 + blt _0808E97C + cmp r0, #7 + bgt _0808E97C + cmp r0, #4 + blt _0808E97C +_0808E968: + ldr r0, _0808E984 @ =gUnk_02019EE0 + adds r1, r0, #0 + adds r1, #8 + ldrb r0, [r0, #6] + adds r1, r1, r0 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #1 + bne _0808E97C + movs r2, #1 +_0808E97C: + adds r0, r2, #0 + pop {pc} + .align 2, 0 +_0808E980: .4byte gUnk_02032EC0 +_0808E984: .4byte gUnk_02019EE0 + + thumb_func_start sub_0808E988 +sub_0808E988: @ 0x0808E988 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _0808E9AA + movs r0, #1 + strb r0, [r5, #0xc] + movs r0, #0xa1 + lsls r0, r0, #1 + strh r0, [r5, #0x12] + movs r0, #0xff + strb r0, [r5, #0xb] + adds r0, r5, #0 + movs r1, #1 + movs r2, #3 + bl sub_080AE008 +_0808E9AA: + bl sub_0808E950 + cmp r0, #0 + beq _0808E9E8 + movs r4, #6 + b _0808E9BC +_0808E9B6: + subs r4, #1 + cmp r4, #0 + beq _0808E9E8 +_0808E9BC: + adds r0, r4, #0 + bl sub_0807CA84 + cmp r0, #0 + beq _0808E9B6 + cmp r4, #0 + beq _0808E9E8 + ldrb r0, [r5, #0xb] + cmp r0, r4 + beq _0808E9D8 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080042AC +_0808E9D8: + ldrb r0, [r5, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #2 + orrs r1, r0 + strb r1, [r5, #0x18] + b _0808E9F2 +_0808E9E8: + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r5, #0x18] +_0808E9F2: + pop {r4, r5, pc} + + thumb_func_start sub_0808E9F4 +sub_0808E9F4: @ 0x0808E9F4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0808E950 + cmp r0, #0 + beq _0808EA1C + ldr r0, _0808EA18 @ =gUnk_02002A40 + ldrb r0, [r0, #6] + cmp r0, #0 + beq _0808EA1C + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #2 + orrs r1, r0 + strb r1, [r4, #0x18] + b _0808EA26 + .align 2, 0 +_0808EA18: .4byte gUnk_02002A40 +_0808EA1C: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_0808EA26: + pop {r4, pc} + + thumb_func_start sub_0808EA28 +sub_0808EA28: @ 0x0808EA28 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #3 + bne _0808EA56 + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + cmp r0, #1 + bls _0808EA4C + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #2 + orrs r1, r0 + strb r1, [r4, #0x18] + b _0808EA56 +_0808EA4C: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_0808EA56: + ldr r2, _0808EA68 @ =gUnk_02019EE0 + ldrb r1, [r4, #0xa] + ldrb r0, [r2, #6] + cmp r1, r0 + bne _0808EA6C + movs r3, #0xc + movs r2, #1 + b _0808EA88 + .align 2, 0 +_0808EA68: .4byte gUnk_02019EE0 +_0808EA6C: + ldr r0, _0808EA80 @ =gUnk_02032EC0 + ldrb r0, [r0, #2] + cmp r0, #5 + bne _0808EA84 + ldrb r2, [r2, #7] + cmp r1, r2 + bne _0808EA84 + movs r3, #0xd + b _0808EA86 + .align 2, 0 +_0808EA80: .4byte gUnk_02032EC0 +_0808EA84: + movs r3, #0xe +_0808EA86: + movs r2, #2 +_0808EA88: + ldrb r1, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r3 + strb r0, [r4, #0x1a] + lsls r2, r2, #6 + ldrb r1, [r4, #0x19] + movs r0, #0x3f + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x19] + adds r0, r4, #0 + bl sub_0808EABC + adds r0, r4, #0 + bl sub_0808EF6C + ldr r2, _0808EAB8 @ =gUnk_02019EE0 + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + pop {r4, pc} + .align 2, 0 +_0808EAB8: .4byte gUnk_02019EE0 + + thumb_func_start sub_0808EABC +sub_0808EABC: @ 0x0808EABC + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0x48 + rsbs r4, r4, #0 + ldrb r1, [r5, #0xa] + lsls r0, r1, #5 + adds r2, r0, #0 + adds r2, #0x28 + movs r3, #0 + ldr r0, _0808EAEC @ =gUnk_02019EE0 + ldrb r0, [r0, #6] + cmp r0, r1 + bne _0808EAD8 + movs r3, #1 +_0808EAD8: + ldr r0, _0808EAF0 @ =gUnk_02032EC0 + ldrb r0, [r0, #2] + cmp r0, #7 + bhi _0808EB60 + lsls r0, r0, #2 + ldr r1, _0808EAF4 @ =_0808EAF8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0808EAEC: .4byte gUnk_02019EE0 +_0808EAF0: .4byte gUnk_02032EC0 +_0808EAF4: .4byte _0808EAF8 +_0808EAF8: @ jump table + .4byte _0808EB18 @ case 0 + .4byte _0808EB60 @ case 1 + .4byte _0808EB56 @ case 2 + .4byte _0808EB1C @ case 3 + .4byte _0808EB1C @ case 4 + .4byte _0808EB26 @ case 5 + .4byte _0808EB1C @ case 6 + .4byte _0808EB1C @ case 7 +_0808EB18: + movs r4, #0x18 + b _0808EB68 +_0808EB1C: + cmp r3, #0 + beq _0808EB68 + movs r4, #0x2a + movs r2, #0x38 + b _0808EB68 +_0808EB26: + ldr r3, _0808EB3C @ =gUnk_02000080 + adds r0, r3, #0 + adds r0, #0x10 + ldrb r1, [r5, #0xa] + adds r0, r0, r1 + ldrb r1, [r0] + cmp r1, #0 + bne _0808EB40 + movs r4, #0x2a + movs r2, #0x28 + b _0808EB68 + .align 2, 0 +_0808EB3C: .4byte gUnk_02000080 +_0808EB40: + cmp r1, #0 + blt _0808EB68 + cmp r1, #2 + bgt _0808EB68 + movs r4, #0x14 + movs r2, #0x90 + ldrb r0, [r3, #0x16] + subs r0, r0, r1 + lsls r0, r0, #5 + subs r2, r2, r0 + b _0808EB68 +_0808EB56: + cmp r3, #0 + beq _0808EB68 + movs r4, #0x1a + movs r2, #0x2a + b _0808EB68 +_0808EB60: + cmp r3, #0 + beq _0808EB68 + movs r4, #8 + movs r2, #0x23 +_0808EB68: + adds r0, r5, #0 + adds r0, #0x68 + strh r4, [r0] + adds r0, #2 + strh r2, [r0] + pop {r4, r5, pc} + + thumb_func_start sub_0808EB74 +sub_0808EB74: @ 0x0808EB74 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0808EBA8 @ =gUnk_02019EE0 + ldrb r0, [r0, #6] + bl sub_0808EC80 + adds r3, r0, #0 + cmp r3, #0 + beq _0808EBAC + ldr r0, [r3, #0x2c] + str r0, [r4, #0x2c] + ldr r0, [r3, #0x30] + str r0, [r4, #0x30] + ldrb r1, [r3, #0x19] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r4, #0x19] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r3, #0 + adds r1, r4, #0 + bl sub_0806FAD8 + b _0808EBB4 + .align 2, 0 +_0808EBA8: .4byte gUnk_02019EE0 +_0808EBAC: + movs r0, #0xf0 + lsls r0, r0, #8 + strh r0, [r4, #0x2e] + strh r0, [r4, #0x32] +_0808EBB4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808EBB8 +sub_0808EBB8: @ 0x0808EBB8 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + ldr r0, _0808EBD0 @ =gUnk_02032EC0 + ldrb r0, [r0, #2] + subs r0, #2 + cmp r0, #5 + bhi _0808EC1C + lsls r0, r0, #2 + ldr r1, _0808EBD4 @ =_0808EBD8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0808EBD0: .4byte gUnk_02032EC0 +_0808EBD4: .4byte _0808EBD8 +_0808EBD8: @ jump table + .4byte _0808EC18 @ case 0 + .4byte _0808EC1C @ case 1 + .4byte _0808EBF0 @ case 2 + .4byte _0808EBFC @ case 3 + .4byte _0808EC00 @ case 4 + .4byte _0808EC14 @ case 5 +_0808EBF0: + ldr r0, _0808EBF8 @ =gUnk_02000080 + ldrb r0, [r0, #1] + adds r1, r0, #4 + b _0808EC1E + .align 2, 0 +_0808EBF8: .4byte gUnk_02000080 +_0808EBFC: + movs r1, #2 + b _0808EC1E +_0808EC00: + ldr r0, _0808EC10 @ =gUnk_02000080 + ldrb r0, [r0, #1] + movs r1, #6 + cmp r0, #0 + bne _0808EC1E + movs r1, #7 + b _0808EC1E + .align 2, 0 +_0808EC10: .4byte gUnk_02000080 +_0808EC14: + movs r1, #4 + b _0808EC1E +_0808EC18: + movs r1, #1 + b _0808EC1E +_0808EC1C: + movs r1, #0 +_0808EC1E: + movs r5, #0xf0 + lsls r5, r5, #8 + adds r6, r5, #0 + cmp r1, #1 + beq _0808EC32 + cmp r1, #1 + blo _0808EC76 + cmp r1, #2 + beq _0808EC42 + b _0808EC4C +_0808EC32: + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + lsls r0, r0, #4 + adds r5, r0, #0 + adds r5, #0x18 + movs r6, #0x70 + b _0808EC76 +_0808EC42: + ldr r0, _0808EC7C @ =gUnk_02019EE0 + ldrb r1, [r0, #7] + cmp r1, #4 + bne _0808EC4C + movs r1, #7 +_0808EC4C: + adds r0, r1, #0 + bl sub_0808EC80 + adds r4, r0, #0 + cmp r4, #0 + beq _0808EC76 + adds r1, r7, #0 + bl sub_0806FAD8 + ldrb r0, [r4, #0x19] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r7, #0x19] + movs r1, #0x3f + ands r1, r2 + orrs r1, r0 + strb r1, [r7, #0x19] + movs r0, #0x2e + ldrsh r6, [r4, r0] + movs r0, #0x32 + ldrsh r5, [r4, r0] +_0808EC76: + strh r6, [r7, #0x2e] + strh r5, [r7, #0x32] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0808EC7C: .4byte gUnk_02019EE0 + + thumb_func_start sub_0808EC80 +sub_0808EC80: @ 0x0808EC80 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r3, _0808ECA4 @ =gUnk_03003DA0 + ldr r2, [r3, #4] + cmp r2, r3 + beq _0808ECB6 + ldr r6, _0808ECA8 @ =0x0000FFFF + ldr r5, _0808ECAC @ =0x00004806 +_0808EC90: + ldrh r1, [r2, #8] + adds r0, r6, #0 + ands r0, r1 + cmp r0, r5 + bne _0808ECB0 + ldrb r0, [r2, #0xa] + cmp r4, r0 + bne _0808ECB0 + adds r0, r2, #0 + b _0808ECB8 + .align 2, 0 +_0808ECA4: .4byte gUnk_03003DA0 +_0808ECA8: .4byte 0x0000FFFF +_0808ECAC: .4byte 0x00004806 +_0808ECB0: + ldr r2, [r2, #4] + cmp r2, r3 + bne _0808EC90 +_0808ECB6: + movs r0, #0 +_0808ECB8: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0808ECBC +sub_0808ECBC: @ 0x0808ECBC + push {r4, lr} + adds r3, r0, #0 + ldr r0, _0808ECD8 @ =gUnk_02000080 + ldrb r4, [r0, #1] + ldr r0, _0808ECDC @ =gUnk_02032EC0 + ldrb r0, [r0, #2] + cmp r0, #5 + beq _0808ECEE + cmp r0, #5 + bgt _0808ECE0 + cmp r0, #4 + beq _0808ECEA + b _0808ED04 + .align 2, 0 +_0808ECD8: .4byte gUnk_02000080 +_0808ECDC: .4byte gUnk_02032EC0 +_0808ECE0: + cmp r0, #6 + beq _0808ECFC + cmp r0, #7 + beq _0808ED00 + b _0808ED04 +_0808ECEA: + movs r0, #1 + b _0808ED06 +_0808ECEE: + ldr r0, _0808ECF8 @ =gUnk_02019EE0 + ldrb r4, [r0, #7] + movs r0, #2 + b _0808ED06 + .align 2, 0 +_0808ECF8: .4byte gUnk_02019EE0 +_0808ECFC: + movs r0, #3 + b _0808ED06 +_0808ED00: + movs r0, #4 + b _0808ED06 +_0808ED04: + movs r0, #0 +_0808ED06: + ldrb r2, [r3, #0xa] + subs r2, #4 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + lsls r0, r2, #1 + adds r0, r0, r2 + ldr r2, _0808ED3C @ =gUnk_08121CD4 + adds r0, r0, r2 + adds r1, r1, r0 + ldrb r2, [r1, #1] + adds r0, r3, #0 + adds r0, #0x68 + strh r2, [r0] + ldrb r0, [r1, #2] + adds r2, r3, #0 + adds r2, #0x6a + strh r0, [r2] + ldrb r0, [r1] + cmp r0, r4 + bne _0808ED40 + ldrb r0, [r3, #0x1a] + movs r1, #0x10 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #0xd + b _0808ED4A + .align 2, 0 +_0808ED3C: .4byte gUnk_08121CD4 +_0808ED40: + ldrb r0, [r3, #0x1a] + movs r1, #0x10 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #0xe +_0808ED4A: + orrs r1, r0 + strb r1, [r3, #0x1a] + adds r0, r3, #0 + bl sub_0808EF6C + ldr r2, _0808ED60 @ =gUnk_02019EE0 + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + pop {r4, pc} + .align 2, 0 +_0808ED60: .4byte gUnk_02019EE0 + + thumb_func_start sub_0808ED64 +sub_0808ED64: @ 0x0808ED64 + push {lr} + adds r2, r0, #0 + movs r3, #0xff + ldr r0, _0808ED90 @ =gUnk_02032EC0 + ldrb r0, [r0, #2] + cmp r0, #1 + bne _0808ED8A + ldr r1, _0808ED94 @ =gUnk_02000080 + ldrb r0, [r1, #0x11] + cmp r0, #5 + beq _0808ED8A + ldrb r0, [r1, #0x10] + lsls r0, r0, #4 + adds r0, #0x1c + strh r0, [r2, #0x2e] + ldrb r0, [r1, #0x11] + lsls r0, r0, #4 + adds r3, r0, #0 + adds r3, #0x3a +_0808ED8A: + strh r3, [r2, #0x32] + pop {pc} + .align 2, 0 +_0808ED90: .4byte gUnk_02032EC0 +_0808ED94: .4byte gUnk_02000080 + + thumb_func_start sub_0808ED98 +sub_0808ED98: @ 0x0808ED98 + push {lr} + adds r3, r0, #0 + ldr r0, _0808EDB4 @ =gUnk_02032EC0 + ldrb r0, [r0, #2] + cmp r0, #1 + beq _0808EDB8 + adds r1, r3, #0 + adds r1, #0x68 + movs r0, #0x1b + strh r0, [r1] + movs r1, #0xa + rsbs r1, r1, #0 + b _0808EDCE + .align 2, 0 +_0808EDB4: .4byte gUnk_02032EC0 +_0808EDB8: + ldr r0, _0808EDF8 @ =gUnk_02000080 + ldrb r0, [r0, #0x13] + cmp r0, #5 + bls _0808EDC2 + movs r0, #5 +_0808EDC2: + lsls r0, r0, #3 + adds r0, #0x1b + adds r1, r3, #0 + adds r1, #0x68 + strh r0, [r1] + movs r1, #0x18 +_0808EDCE: + strh r1, [r3, #0x32] + adds r0, r3, #0 + adds r0, #0x6a + strh r1, [r0] + ldrb r0, [r3, #0xf] + adds r0, #1 + strb r0, [r3, #0xf] + ldr r2, _0808EDFC @ =gUnk_08121D10 + ldrb r0, [r3, #0xf] + lsrs r0, r0, #2 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + adds r1, r3, #0 + adds r1, #0x63 + strb r0, [r1] + adds r0, r3, #0 + bl sub_0808EF6C + pop {pc} + .align 2, 0 +_0808EDF8: .4byte gUnk_02000080 +_0808EDFC: .4byte gUnk_08121D10 + + thumb_func_start sub_0808EE00 +sub_0808EE00: @ 0x0808EE00 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + rsbs r2, r0, #0 + orrs r2, r0 + lsrs r2, r2, #0x1f + ldrb r0, [r4, #0xa] + adds r5, r0, #0 + subs r5, #0xa + ldr r1, _0808EE48 @ =gUnk_08121D38 + lsls r0, r2, #3 + adds r0, r5, r0 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r4, #0x1e] + ldr r3, _0808EE4C @ =gUnk_08121D18 + lsls r0, r5, #1 + lsls r1, r2, #4 + adds r0, r0, r1 + adds r0, r0, r3 + ldrh r1, [r0] + strh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x68 + strh r1, [r0] + subs r5, r5, r2 + ldr r0, _0808EE50 @ =gUnk_02032EC0 + ldrb r0, [r0, #2] + cmp r0, #1 + beq _0808EE54 + movs r5, #0x80 + movs r1, #0xb0 + b _0808EE56 + .align 2, 0 +_0808EE48: .4byte gUnk_08121D38 +_0808EE4C: .4byte gUnk_08121D18 +_0808EE50: .4byte gUnk_02032EC0 +_0808EE54: + movs r1, #0x8c +_0808EE56: + adds r0, r4, #0 + adds r0, #0x6a + strh r1, [r0] + ldr r1, _0808EE8C @ =gUnk_02000080 + ldrb r0, [r1, #0x11] + movs r2, #9 + cmp r0, #5 + bne _0808EE6E + ldrb r1, [r1, #0x12] + cmp r5, r1 + bne _0808EE6E + movs r2, #0xb +_0808EE6E: + ldrb r1, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x1a] + adds r0, r4, #0 + bl sub_0808EF6C + ldr r2, _0808EE90 @ =gUnk_02019EE0 + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + pop {r4, r5, pc} + .align 2, 0 +_0808EE8C: .4byte gUnk_02000080 +_0808EE90: .4byte gUnk_02019EE0 + + thumb_func_start nullsub_522 +nullsub_522: @ 0x0808EE94 + bx lr + .align 2, 0 + + thumb_func_start sub_0808EE98 +sub_0808EE98: @ 0x0808EE98 + push {lr} + adds r3, r0, #0 + ldr r0, _0808EEBC @ =gUnk_02032EC0 + ldrb r1, [r0, #2] + strb r1, [r3, #0xe] + ldr r2, _0808EEC0 @ =gUnk_08121D48 + ldrb r0, [r3, #0xe] + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r3, #0x1e] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #2 + beq _0808EEC4 + adds r1, r3, #0 + adds r1, #0x68 + movs r0, #0x60 + b _0808EECA + .align 2, 0 +_0808EEBC: .4byte gUnk_02032EC0 +_0808EEC0: .4byte gUnk_08121D48 +_0808EEC4: + adds r1, r3, #0 + adds r1, #0x68 + ldr r0, _0808EED4 @ =0x0000FFA0 +_0808EECA: + strh r0, [r1] + adds r0, r3, #0 + bl sub_0808EF6C + pop {pc} + .align 2, 0 +_0808EED4: .4byte 0x0000FFA0 + + thumb_func_start sub_0808EED8 +sub_0808EED8: @ 0x0808EED8 + push {lr} + adds r2, r0, #0 + ldr r0, _0808EEF0 @ =gUnk_02032EC0 + ldrb r0, [r0, #2] + cmp r0, #3 + beq _0808EEF4 + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x18] + b _0808EF1E + .align 2, 0 +_0808EEF0: .4byte gUnk_02032EC0 +_0808EEF4: + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r2, #0x18] + ldrb r1, [r2, #0xa] + subs r1, #0x13 + ldr r0, _0808EF20 @ =gUnk_02000080 + ldrb r0, [r0, #1] + movs r3, #3 + cmp r0, r1 + bne _0808EF12 + movs r3, #4 +_0808EF12: + ldrb r1, [r2, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r3 + strb r0, [r2, #0x1a] +_0808EF1E: + pop {pc} + .align 2, 0 +_0808EF20: .4byte gUnk_02000080 + + thumb_func_start sub_0808EF24 +sub_0808EF24: @ 0x0808EF24 + push {lr} + adds r2, r0, #0 + ldr r0, _0808EF3C @ =gUnk_02032EC0 + ldrb r0, [r0, #2] + cmp r0, #3 + beq _0808EF40 + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x18] + b _0808EF68 + .align 2, 0 +_0808EF3C: .4byte gUnk_02032EC0 +_0808EF40: + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r2, #0x18] + ldrb r0, [r2, #0xa] + cmp r0, #0x15 + bne _0808EF5C + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r1, [r0, #5] + b _0808EF62 +_0808EF5C: + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r1, [r0, #6] +_0808EF62: + ldrb r0, [r2, #0x1f] + adds r0, r0, r1 + strb r0, [r2, #0x1e] +_0808EF68: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808EF6C +sub_0808EF6C: @ 0x0808EF6C + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r0, #0x68 + movs r2, #0 + ldrsh r1, [r0, r2] + movs r2, #0x2e + ldrsh r0, [r5, r2] + subs r6, r1, r0 + adds r0, r6, #0 + cmp r6, #0 + bge _0808EF84 + rsbs r0, r6, #0 +_0808EF84: + cmp r0, #1 + bhi _0808EF8E + lsls r0, r1, #0x10 + str r0, [r5, #0x2c] + movs r6, #0 +_0808EF8E: + adds r0, r5, #0 + adds r0, #0x6a + movs r2, #0 + ldrsh r1, [r0, r2] + movs r2, #0x32 + ldrsh r0, [r5, r2] + subs r4, r1, r0 + adds r0, r4, #0 + cmp r4, #0 + bge _0808EFA4 + rsbs r0, r4, #0 +_0808EFA4: + cmp r0, #1 + bhi _0808EFAE + lsls r0, r1, #0x10 + str r0, [r5, #0x30] + movs r4, #0 +_0808EFAE: + adds r0, r6, #0 + orrs r0, r4 + cmp r0, #0 + bne _0808EFBA + movs r0, #0 + b _0808EFEC +_0808EFBA: + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_080041EC + adds r1, r0, #0 + adds r0, #0x80 + lsls r1, r1, #4 + adds r1, r0, r1 + adds r0, r5, #0 + adds r0, #0x6c + ldrh r0, [r0] + cmp r0, r1 + bge _0808EFD6 + adds r1, r0, #0 +_0808EFD6: + strh r1, [r5, #0x24] + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_080045DA + lsrs r0, r0, #3 + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_0806F69C + movs r0, #1 +_0808EFEC: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0808EFF0 +sub_0808EFF0: @ 0x0808EFF0 + push {r4, r5, lr} + mov ip, r0 + ldrb r1, [r0, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + mov r1, ip + strb r0, [r1, #0x18] + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r1, #0x24] + adds r1, #0x45 + movs r0, #1 + strb r0, [r1] + movs r0, #0xff + mov r3, ip + strb r0, [r3, #0x1e] + adds r1, #0x13 + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r1] + ldrb r4, [r3, #0xa] + lsls r4, r4, #3 + ldr r0, _0808F094 @ =gUnk_08121D54 + adds r4, r4, r0 + ldrh r0, [r4, #2] + strh r0, [r3, #0x2e] + ldrh r1, [r4, #2] + mov r0, ip + adds r0, #0x68 + strh r1, [r0] + ldrh r0, [r4, #4] + strh r0, [r3, #0x32] + ldrh r0, [r4, #4] + mov r1, ip + adds r1, #0x6a + strh r0, [r1] + ldrb r1, [r4, #6] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x17 + ldrb r3, [r3, #0x19] + movs r2, #0x3f + adds r0, r2, #0 + ands r0, r3 + orrs r0, r1 + mov r1, ip + strb r0, [r1, #0x19] + ldrb r1, [r4, #6] + lsls r1, r1, #0x1a + mov r5, ip + adds r5, #0x29 + lsrs r1, r1, #0x1d + ldrb r3, [r5] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r5] + ldrb r0, [r4, #6] + lsrs r0, r0, #6 + lsls r0, r0, #6 + mov r3, ip + ldrb r1, [r3, #0x1b] + ands r2, r1 + orrs r2, r0 + strb r2, [r3, #0x1b] + ldrh r1, [r4] + mov r0, ip + adds r0, #0x6c + strh r1, [r0] + ldrb r1, [r4, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808F098 + movs r0, #0x7f + ands r1, r0 + strb r1, [r3, #0x1e] + strb r1, [r3, #0x1f] + b _0808F09E + .align 2, 0 +_0808F094: .4byte gUnk_08121D54 +_0808F098: + mov r0, ip + bl sub_080042AC +_0808F09E: + pop {r4, r5, pc} + + thumb_func_start sub_0808F0A0 +sub_0808F0A0: @ 0x0808F0A0 + push {lr} + ldr r2, _0808F0B4 @ =gUnk_08121E5C + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808F0B4: .4byte gUnk_08121E5C + + thumb_func_start sub_0808F0B8 +sub_0808F0B8: @ 0x0808F0B8 + push {lr} + ldr r2, _0808F0CC @ =gUnk_08121E88 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808F0CC: .4byte gUnk_08121E88 + + thumb_func_start sub_0808F0D0 +sub_0808F0D0: @ 0x0808F0D0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r1, #0x49 + movs r2, #2 + movs r3, #0 + bl sub_080A2988 + str r0, [r5, #0x54] + cmp r0, #0 + bne _0808F0E8 + bl sub_0805E780 +_0808F0E8: + movs r6, #1 + strb r6, [r5, #0xc] + ldr r0, _0808F148 @ =0x0000FF40 + strh r0, [r5, #0x36] + bl sub_08000E50 + adds r4, r0, #0 + movs r0, #0x3f + ands r4, r0 + bl sub_08000E50 + ands r0, r6 + cmp r0, #0 + beq _0808F106 + rsbs r4, r4, #0 +_0808F106: + ldr r0, [r5, #0x50] + ldrh r0, [r0, #0x2e] + adds r0, r0, r4 + strh r0, [r5, #0x2e] + bl sub_08000E50 + adds r4, r0, #0 + movs r0, #0x1f + ands r4, r0 + bl sub_08000E50 + ands r0, r6 + cmp r0, #0 + beq _0808F124 + rsbs r4, r4, #0 +_0808F124: + ldr r0, [r5, #0x50] + ldrh r0, [r0, #0x32] + adds r0, r0, r4 + strh r0, [r5, #0x32] + movs r0, #0x90 + lsls r0, r0, #2 + str r0, [r5, #0x74] + movs r0, #0xa0 + lsls r0, r0, #1 + str r0, [r5, #0x78] + adds r0, r5, #0 + movs r1, #3 + bl sub_08004260 + adds r0, r5, #0 + bl sub_0808F14C + pop {r4, r5, r6, pc} + .align 2, 0 +_0808F148: .4byte 0x0000FF40 + + thumb_func_start sub_0808F14C +sub_0808F14C: @ 0x0808F14C + push {r4, lr} + adds r4, r0, #0 + bl sub_0808F2B0 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _0808F16E + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x84 + bl sub_080A3268 +_0808F16E: + pop {r4, pc} + + thumb_func_start sub_0808F170 +sub_0808F170: @ 0x0808F170 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x74] + subs r0, #0x20 + str r0, [r4, #0x74] + ldr r1, [r4, #0x78] + adds r1, #0x20 + str r1, [r4, #0x78] + adds r0, r4, #0 + movs r2, #8 + movs r3, #2 + bl sub_0806FCF4 + ldr r1, [r4, #0x78] + ldr r0, _0808F1A0 @ =0x000001FF + cmp r1, r0 + bls _0808F198 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] +_0808F198: + adds r0, r4, #0 + bl sub_0808F2B0 + pop {r4, pc} + .align 2, 0 +_0808F1A0: .4byte 0x000001FF + + thumb_func_start sub_0808F1A4 +sub_0808F1A4: @ 0x0808F1A4 + push {r4, lr} + adds r4, r0, #0 + ldr r1, [r4, #0x78] + adds r1, #0x10 + str r1, [r4, #0x78] + ldr r0, [r4, #0x74] + adds r0, #0x10 + str r0, [r4, #0x74] + adds r0, r4, #0 + movs r2, #8 + movs r3, #2 + bl sub_0806FCF4 + ldr r1, [r4, #0x78] + ldr r0, _0808F1D4 @ =0x000003FF + cmp r1, r0 + bls _0808F1D8 + ldr r1, [r4, #0x54] + movs r0, #0xff + strb r0, [r1, #0xc] + bl sub_0805E780 + b _0808F1DE + .align 2, 0 +_0808F1D4: .4byte 0x000003FF +_0808F1D8: + adds r0, r4, #0 + bl sub_0808F2B0 +_0808F1DE: + pop {r4, pc} + + thumb_func_start sub_0808F1E0 +sub_0808F1E0: @ 0x0808F1E0 + push {lr} + ldr r2, _0808F1F4 @ =gUnk_08121E98 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808F1F4: .4byte gUnk_08121E98 + + thumb_func_start sub_0808F1F8 +sub_0808F1F8: @ 0x0808F1F8 + push {r4, lr} + adds r4, r0, #0 + ldrb r2, [r4, #0x19] + movs r0, #3 + orrs r2, r0 + strb r2, [r4, #0x19] + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldr r3, [r4, #0x50] + ldrb r1, [r3, #0x19] + lsrs r1, r1, #6 + lsls r1, r1, #6 + movs r0, #0x3f + ands r2, r0 + orrs r2, r1 + strb r2, [r4, #0x19] + ldrb r1, [r3, #0x1b] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r4, #0x1b] + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1b] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0808F244 + pop {r4, pc} + + thumb_func_start sub_0808F244 +sub_0808F244: @ 0x0808F244 + push {r4, lr} + adds r4, r0, #0 + ldr r3, [r4, #0x50] + ldrb r1, [r3, #0x18] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1e + ldrb r2, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrh r0, [r3, #0x32] + adds r0, #3 + movs r2, #0 + strh r0, [r4, #0x32] + ldr r1, [r4, #0x54] + adds r0, r1, #0 + adds r0, #0x62 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r1, #0x2e] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + str r2, [r4, #0x34] + movs r0, #0x36 + ldrsh r1, [r3, r0] + movs r0, #0x80 + subs r0, r0, r1 + str r0, [r4, #0x74] + movs r0, #0x36 + ldrsh r1, [r3, r0] + movs r0, #0x80 + lsls r0, r0, #1 + subs r0, r0, r1 + str r0, [r4, #0x78] + adds r3, #0x7f + ldrb r0, [r3] + str r0, [r4, #0x70] + adds r0, r4, #0 + bl sub_0808F2B0 + ldr r0, [r4, #0x50] + adds r0, #0x6d + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0808F2AC + bl sub_0805E780 +_0808F2AC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808F2B0 +sub_0808F2B0: @ 0x0808F2B0 + push {lr} + ldr r1, [r0, #0x74] + ldr r2, [r0, #0x78] + ldr r3, [r0, #0x70] + bl sub_0805EC9C + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808F2C0 +sub_0808F2C0: @ 0x0808F2C0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + adds r6, r0, #0 + cmp r6, #0 + bne _0808F322 + adds r0, #1 + strb r0, [r5, #0xc] + ldr r4, [r5, #0x50] + ldrb r2, [r4, #0x19] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r5, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r5, #0x19] + ldrb r0, [r4, #0x1b] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r5, #0x1b] + ands r1, r2 + orrs r1, r0 + strb r1, [r5, #0x1b] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #0x18] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + str r6, [r5, #0x34] + ldr r1, [r5, #0x50] + ldrh r0, [r1, #0x32] + adds r0, #3 + strh r0, [r5, #0x32] + ldrh r0, [r1, #0x2e] + strh r0, [r5, #0x2e] + adds r0, r5, #0 + movs r1, #3 + bl sub_08004260 +_0808F322: + ldr r2, [r5, #0x50] + movs r1, #0x36 + ldrsh r0, [r2, r1] + cmp r0, #0 + bne _0808F334 + ldr r0, [r2, #0x74] + str r0, [r5, #0x74] + ldr r0, [r2, #0x78] + b _0808F34C +_0808F334: + movs r0, #0x36 + ldrsh r1, [r2, r0] + movs r0, #0x80 + lsls r0, r0, #2 + subs r0, r0, r1 + str r0, [r5, #0x74] + movs r0, #0x36 + ldrsh r1, [r2, r0] + lsls r1, r1, #1 + movs r0, #0xc0 + lsls r0, r0, #2 + subs r0, r0, r1 +_0808F34C: + str r0, [r5, #0x78] + movs r0, #0 + str r0, [r5, #0x70] + adds r0, r5, #0 + bl sub_0808F2B0 + ldr r1, [r5, #0x78] + adds r0, r5, #0 + movs r2, #8 + movs r3, #2 + bl sub_0806FCF4 + ldrb r0, [r5, #0xc] + cmp r0, #0xff + bne _0808F36E + bl sub_0805E780 +_0808F36E: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0808F370 +sub_0808F370: @ 0x0808F370 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xc] + cmp r1, #0 + bne _0808F388 + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xd] + cmp r0, #1 + bne _0808F3DA + strb r0, [r4, #0xc] + str r1, [r4, #0x70] + b _0808F3CC +_0808F388: + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xd] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bhi _0808F3D4 + ldr r0, [r4, #0x70] + cmp r0, #0 + bne _0808F3C4 + ldr r0, [r4, #0x74] + subs r0, #1 + str r0, [r4, #0x74] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _0808F3DA + bl sub_08000E50 + ldr r2, _0808F3C0 @ =gUnk_08121EA0 + movs r1, #1 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r0, [r1] + str r0, [r4, #0x70] + b _0808F3DA + .align 2, 0 +_0808F3C0: .4byte gUnk_08121EA0 +_0808F3C4: + subs r0, #1 + str r0, [r4, #0x70] + cmp r0, #0 + bne _0808F3DA +_0808F3CC: + adds r0, r4, #0 + bl sub_0808F5EC + b _0808F3DA +_0808F3D4: + movs r0, #0 + strb r0, [r4, #0xc] + str r0, [r4, #0x74] +_0808F3DA: + pop {r4, pc} + + thumb_func_start sub_0808F3DC +sub_0808F3DC: @ 0x0808F3DC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0808F438 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0xa] + adds r1, #1 + adds r0, r4, #0 + bl sub_08004260 + ldrb r0, [r4, #0xa] + cmp r0, #8 + beq _0808F41A + cmp r0, #7 + bne _0808F42E + ldr r0, [r4, #0x54] + adds r1, r4, #0 + bl sub_0806FAD8 + b _0808F494 +_0808F41A: + ldr r0, [r4, #0x54] + adds r0, #0x3f + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x3f + strb r0, [r1] + ldr r0, [r4, #0x54] + adds r0, #0x3f + movs r1, #0x7e + strb r1, [r0] +_0808F42E: + ldr r0, [r4, #0x54] + adds r1, r4, #0 + bl sub_0806FAB0 + b _0808F494 +_0808F438: + ldr r0, [r4, #0x50] + ldr r0, [r0, #0x74] + cmp r0, #0 + bne _0808F456 + ldrb r0, [r4, #0xa] + cmp r0, #8 + bne _0808F452 + ldr r0, [r4, #0x54] + adds r1, r4, #0 + adds r1, #0x3f + ldrb r1, [r1] + adds r0, #0x3f + strb r1, [r0] +_0808F452: + bl sub_0805E780 +_0808F456: + ldrb r0, [r4, #0xa] + cmp r0, #5 + bne _0808F486 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0808F486 + ldr r0, [r4, #0x54] + movs r1, #0x49 + movs r2, #8 + movs r3, #0 + bl sub_080A2988 + adds r1, r0, #0 + cmp r1, #0 + beq _0808F486 + ldr r0, [r4, #0x50] + str r0, [r1, #0x50] + ldr r0, [r4, #0x50] + ldr r0, [r0, #0x50] + str r0, [r1, #0x54] +_0808F486: + adds r0, r4, #0 + bl sub_08004274 + ldr r0, [r4, #0x54] + adds r1, r4, #0 + bl sub_0806FA6C +_0808F494: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808F498 +sub_0808F498: @ 0x0808F498 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + beq _0808F4EC + adds r0, r5, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _0808F4C2 + ldr r0, _0808F4E4 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _0808F4BE + movs r0, #0xef + bl sub_080A3268 +_0808F4BE: + bl sub_0805E780 +_0808F4C2: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _0808F4D4 + bl sub_0805E780 +_0808F4D4: + ldr r0, _0808F4E8 @ =gUnk_03003F80 + ldrb r0, [r0, #0x1c] + cmp r0, #1 + beq _0808F550 + bl sub_0805E780 + b _0808F550 + .align 2, 0 +_0808F4E4: .4byte gUnk_030010A0 +_0808F4E8: .4byte gUnk_03003F80 +_0808F4EC: + movs r0, #1 + strb r0, [r5, #0xc] + movs r0, #0x40 + strb r0, [r5, #0xe] + ldrb r0, [r5, #0xb] + movs r6, #0x2b + cmp r0, #0 + beq _0808F4FE + movs r6, #0x2c +_0808F4FE: + ldr r0, [r5, #0x50] + ldr r0, [r0, #0x48] + ldrb r1, [r0, #6] + ldrh r0, [r5, #0x2e] + subs r0, r0, r1 + strh r0, [r5, #0x2e] + bl sub_08000E50 + ldr r4, [r5, #0x50] + ldr r1, [r4, #0x48] + ldrb r1, [r1, #6] + lsls r1, r1, #1 + bl __modsi3 + ldrh r1, [r5, #0x2e] + adds r1, r1, r0 + strh r1, [r5, #0x2e] + ldr r0, [r4, #0x48] + ldrb r1, [r0, #7] + ldrh r0, [r5, #0x32] + subs r0, r0, r1 + strh r0, [r5, #0x32] + bl sub_08000E50 + ldr r1, [r5, #0x50] + ldr r1, [r1, #0x48] + ldrb r1, [r1, #7] + lsls r1, r1, #1 + bl __modsi3 + ldrh r1, [r5, #0x32] + adds r1, r1, r0 + strh r1, [r5, #0x32] + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0801D2B4 + adds r0, r5, #0 + movs r1, #4 + bl sub_08004260 +_0808F550: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0808F554 +sub_0808F554: @ 0x0808F554 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, [r5, #0x50] + adds r1, r5, #0 + bl sub_0806FA6C + adds r1, r5, #0 + adds r1, #0x63 + ldrb r0, [r1] + subs r0, #0x18 + strb r0, [r1] + ldr r0, [r5, #0x50] + adds r1, r0, #0 + adds r1, #0x62 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _0808F588 + adds r2, r5, #0 + adds r2, #0x62 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + ldrb r1, [r2] + adds r0, r0, r1 + strb r0, [r2] +_0808F588: + ldrb r0, [r5, #0xc] + cmp r0, #0 + beq _0808F5AC + adds r1, r5, #0 + adds r1, #0x84 + ldr r0, [r1] + cmp r0, #0 + beq _0808F5A4 + subs r0, #1 + str r0, [r1] + cmp r0, #0 + bne _0808F5A4 + bl sub_0805E780 +_0808F5A4: + adds r0, r5, #0 + bl sub_08004274 + b _0808F5E8 +_0808F5AC: + movs r0, #1 + strb r0, [r5, #0xc] + ldr r4, [r5, #0x50] + ldrb r2, [r4, #0x19] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r5, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r5, #0x19] + ldrb r0, [r4, #0x1b] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r5, #0x1b] + ands r1, r2 + orrs r1, r0 + strb r1, [r5, #0x1b] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + adds r0, r5, #0 + movs r1, #3 + bl sub_08004260 +_0808F5E8: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0808F5EC +sub_0808F5EC: @ 0x0808F5EC + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x54] + movs r1, #0x49 + movs r2, #5 + movs r3, #0 + bl sub_080A2988 + adds r1, r0, #0 + cmp r1, #0 + beq _0808F608 + str r4, [r1, #0x50] + ldr r0, [r4, #0x54] + str r0, [r1, #0x54] +_0808F608: + ldr r0, [r4, #0x54] + movs r1, #0x49 + movs r2, #6 + movs r3, #0 + bl sub_080A2988 + adds r1, r0, #0 + cmp r1, #0 + beq _0808F620 + str r4, [r1, #0x50] + ldr r0, [r4, #0x54] + str r0, [r1, #0x54] +_0808F620: + ldr r0, [r4, #0x54] + movs r1, #0x49 + movs r2, #7 + movs r3, #0 + bl sub_080A2988 + adds r1, r0, #0 + cmp r1, #0 + beq _0808F638 + str r4, [r1, #0x50] + ldr r0, [r4, #0x54] + str r0, [r1, #0x54] +_0808F638: + movs r0, #0x96 + lsls r0, r0, #2 + str r0, [r4, #0x74] + pop {r4, pc} + + thumb_func_start sub_0808F640 +sub_0808F640: @ 0x0808F640 + push {lr} + ldr r2, _0808F654 @ =gUnk_08121EA4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808F654: .4byte gUnk_08121EA4 + + thumb_func_start sub_0808F658 +sub_0808F658: @ 0x0808F658 + push {r4, r5, lr} + adds r5, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + ldrb r0, [r5, #0x1b] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r5, #0x1b] + ldrb r0, [r5, #0x19] + orrs r0, r1 + strb r0, [r5, #0x19] + ldrb r0, [r5, #0xa] + adds r3, r5, #0 + adds r3, #0x29 + movs r1, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrb r0, [r5, #0xa] + strb r0, [r5, #0x1e] + movs r0, #8 + strb r0, [r5, #0x15] + ldr r1, _0808F6D8 @ =gUnk_08121EB0 + ldrb r0, [r5, #0xa] + adds r0, r0, r1 + ldrb r0, [r0] + movs r4, #0 + strh r0, [r5, #0x24] + ldr r3, _0808F6DC @ =gUnk_03000BF0 + ldrh r1, [r3, #6] + adds r2, r1, #0 + subs r2, #0x60 + adds r0, r5, #0 + adds r0, #0x78 + strh r2, [r0] + ldrh r0, [r3, #0x1e] + adds r1, r1, r0 + adds r1, #0x60 + adds r0, r5, #0 + adds r0, #0x7a + strh r1, [r0] + strb r4, [r5, #0x14] + bl sub_08000E50 + movs r1, #0xf + ands r0, r1 + lsls r0, r0, #4 + ldrh r1, [r5, #0x2e] + adds r0, r0, r1 + strh r0, [r5, #0x2e] + strb r4, [r5, #0xe] + strb r4, [r5, #0xd] + pop {r4, r5, pc} + .align 2, 0 +_0808F6D8: .4byte gUnk_08121EB0 +_0808F6DC: .4byte gUnk_03000BF0 + + thumb_func_start sub_0808F6E0 +sub_0808F6E0: @ 0x0808F6E0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + adds r0, r4, #0 + adds r0, #0x78 + movs r2, #0x2e + ldrsh r1, [r4, r2] + movs r2, #0 + ldrsh r0, [r0, r2] + cmp r1, r0 + blt _0808F704 + adds r0, r4, #0 + adds r0, #0x7a + movs r2, #0 + ldrsh r0, [r0, r2] + cmp r1, r0 + ble _0808F708 +_0808F704: + movs r0, #2 + strb r0, [r4, #0xc] +_0808F708: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808F70C +sub_0808F70C: @ 0x0808F70C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _0808F75C + movs r0, #1 + strb r0, [r4, #0xd] + bl sub_08000E50 + movs r1, #7 + ands r0, r1 + lsls r0, r0, #3 + adds r0, #0x1f + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x15] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0808F738 + adds r0, r4, #0 + adds r0, #0x7a + b _0808F73C +_0808F738: + adds r0, r4, #0 + adds r0, #0x78 +_0808F73C: + ldrh r0, [r0] + strh r0, [r4, #0x2e] + ldrb r0, [r4, #0xa] + cmp r0, #2 + bne _0808F75C + bl sub_08000E50 + ldr r3, _0808F778 @ =gUnk_08121EB3 + ldrb r1, [r4, #0xb] + lsls r1, r1, #1 + movs r2, #1 + ands r2, r0 + adds r1, r1, r2 + adds r1, r1, r3 + ldrb r0, [r1] + strh r0, [r4, #0x32] +_0808F75C: + ldrb r1, [r4, #0xd] + cmp r1, #1 + bne _0808F774 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _0808F774 + strb r1, [r4, #0xc] + strb r0, [r4, #0xd] +_0808F774: + pop {r4, pc} + .align 2, 0 +_0808F778: .4byte gUnk_08121EB3 + + thumb_func_start sub_0808F77C +sub_0808F77C: @ 0x0808F77C + push {lr} + ldr r2, _0808F790 @ =gUnk_08121EB8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0808F790: .4byte gUnk_08121EB8 + + thumb_func_start sub_0808F794 +sub_0808F794: @ 0x0808F794 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0x3c + strb r1, [r0, #0xe] + movs r1, #0 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808F7A8 +sub_0808F7A8: @ 0x0808F7A8 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808F7D0 + movs r0, #0x78 + strb r0, [r2, #0xe] + ldrb r0, [r2, #0xc] + adds r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] +_0808F7D0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0808F7D4 +sub_0808F7D4: @ 0x0808F7D4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808F80A + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x18 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 +_0808F80A: + pop {r4, pc} + + thumb_func_start sub_0808F80C +sub_0808F80C: @ 0x0808F80C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0808F850 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0x15] + movs r2, #0 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + ldrb r1, [r4, #0x1b] + movs r0, #0x3f + ands r0, r1 + strb r0, [r4, #0x1b] + strb r2, [r4, #0xe] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 + ldr r0, _0808F854 @ =0x0000012B + bl sub_080A3268 +_0808F850: + pop {r4, pc} + .align 2, 0 +_0808F854: .4byte 0x0000012B + + thumb_func_start sub_0808F858 +sub_0808F858: @ 0x0808F858 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0808F884 + adds r0, r4, #0 + bl sub_0806F69C + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _0808F88A + adds r0, r4, #0 + bl sub_08004274 + b _0808F88A +_0808F884: + adds r0, r4, #0 + bl sub_08004274 +_0808F88A: + movs r1, #0x32 + ldrsh r0, [r4, r1] + ldr r1, _0808F8C4 @ =gUnk_03000BF0 + ldrh r2, [r1, #8] + subs r0, r0, r2 + movs r1, #0x8c + lsls r1, r1, #2 + cmp r0, r1 + bgt _0808F8C8 + adds r0, r2, r1 + strh r0, [r4, #0x32] + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808F8EA + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + b _0808F8EA + .align 2, 0 +_0808F8C4: .4byte gUnk_03000BF0 +_0808F8C8: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808F8EA + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 + ldr r0, _0808F8EC @ =0x0000012B + bl sub_080A3268 +_0808F8EA: + pop {r4, pc} + .align 2, 0 +_0808F8EC: .4byte 0x0000012B + + thumb_func_start sub_0808F8F0 +sub_0808F8F0: @ 0x0808F8F0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808F912 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #5 + bl sub_08004260 +_0808F912: + pop {r4, pc} + + thumb_func_start sub_0808F914 +sub_0808F914: @ 0x0808F914 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808F93C + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_0808F93C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808F940 +sub_0808F940: @ 0x0808F940 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808F960 + ldr r1, _0808F964 @ =gUnk_02000080 + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] + bl sub_0805E780 +_0808F960: + pop {r4, pc} + .align 2, 0 +_0808F964: .4byte gUnk_02000080 + + thumb_func_start sub_0808F968 +sub_0808F968: @ 0x0808F968 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0808F98C @ =gUnk_08121ED8 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r0, [r4, #0xc] + cmp r0, #0 + beq _0808F988 + adds r0, r4, #0 + bl sub_08090514 +_0808F988: + pop {r4, pc} + .align 2, 0 +_0808F98C: .4byte gUnk_08121ED8 + + thumb_func_start sub_0808F990 +sub_0808F990: @ 0x0808F990 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r2, #1 + strb r2, [r4, #0xc] + movs r3, #0 + movs r0, #0x80 + strh r0, [r4, #0x24] + ldrb r0, [r4, #0xe] + strb r0, [r4, #0xf] + strb r3, [r4, #0xe] + ldrb r1, [r4, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x11] + adds r0, r4, #0 + adds r0, #0x81 + strb r3, [r0] + adds r0, #2 + strb r3, [r0] + ldrb r1, [r4, #0x19] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x19] + ldrb r0, [r4, #0xa] + cmp r0, #1 + bne _0808F9E8 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x80 + strb r3, [r0] + b _0808FA1C +_0808F9E8: + adds r0, r4, #0 + adds r0, #0x80 + strb r2, [r0] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4, #0xa] + cmp r0, #2 + beq _0808FA0A + cmp r0, #4 + bne _0808FA1C +_0808FA0A: + ldrh r0, [r4, #0x32] + adds r0, #2 + strh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #0xfe + strb r0, [r1] + strb r3, [r4, #0xd] + strb r3, [r4, #0x1e] +_0808FA1C: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0808FAC4 + movs r6, #0 + cmp r0, #0x80 + beq _0808FA84 + ldrh r1, [r4, #0xa] + ldr r0, _0808FA38 @ =0x00000101 + cmp r1, r0 + bne _0808FA3C + movs r0, #0xf + ldrsb r0, [r4, r0] + ldrh r1, [r4, #0x32] + b _0808FA42 + .align 2, 0 +_0808FA38: .4byte 0x00000101 +_0808FA3C: + movs r0, #0xf + ldrsb r0, [r4, r0] + ldrh r1, [r4, #0x2e] +_0808FA42: + adds r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x7e + strh r0, [r1] + adds r5, r1, #0 + ldr r3, [r4, #0x50] + cmp r3, #0 + bne _0808FA5E + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + b _0808FA7C +_0808FA5E: + adds r2, r4, #0 + adds r2, #0x82 + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808FA76 + ldrb r0, [r3, #0xc] + cmp r0, #2 + bne _0808FAA2 + adds r6, #1 + b _0808FAA2 +_0808FA76: + ldrb r0, [r2] + bl sub_0807CBD0 +_0808FA7C: + cmp r0, #0 + beq _0808FAA2 + adds r6, #1 + b _0808FAA2 +_0808FA84: + movs r6, #1 + ldrh r1, [r4, #0xa] + ldr r0, _0808FA94 @ =0x00000101 + cmp r1, r0 + bne _0808FA98 + ldrh r1, [r4, #0x32] + b _0808FA9A + .align 2, 0 +_0808FA94: .4byte 0x00000101 +_0808FA98: + ldrh r1, [r4, #0x2e] +_0808FA9A: + adds r0, r4, #0 + adds r0, #0x7e + strh r1, [r0] + adds r5, r0, #0 +_0808FAA2: + cmp r6, #0 + beq _0808FAC4 + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #1 + strb r0, [r1] + ldrh r1, [r4, #0xa] + ldr r0, _0808FABC @ =0x00000101 + cmp r1, r0 + bne _0808FAC0 + ldrh r0, [r5] + strh r0, [r4, #0x32] + b _0808FAC4 + .align 2, 0 +_0808FABC: .4byte 0x00000101 +_0808FAC0: + ldrh r0, [r5] + strh r0, [r4, #0x2e] +_0808FAC4: + adds r0, r4, #0 + bl sub_0808FF50 + pop {r4, r5, r6, pc} + + thumb_func_start sub_0808FACC +sub_0808FACC: @ 0x0808FACC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + bne _0808FAF2 + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + bne _0808FAEA + adds r0, r4, #0 + bl sub_0808FBFC + b _0808FB0A +_0808FAEA: + adds r0, r4, #0 + bl sub_0808FB68 + b _0808FB0A +_0808FAF2: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0808FB0A + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808FB0A + movs r0, #0x86 + lsls r0, r0, #1 + bl sub_08004488 +_0808FB0A: + ldrb r0, [r4, #0xa] + cmp r0, #2 + beq _0808FB14 + cmp r0, #4 + bne _0808FB64 +_0808FB14: + ldrb r1, [r4, #0xd] + cmp r1, #1 + beq _0808FB3E + cmp r1, #1 + bgt _0808FB24 + cmp r1, #0 + beq _0808FB2A + b _0808FB64 +_0808FB24: + cmp r1, #2 + beq _0808FB5E + b _0808FB64 +_0808FB2A: + adds r0, r4, #0 + bl sub_0808FECC + cmp r0, #0 + beq _0808FB64 + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0xc + strb r0, [r4, #0xe] + b _0808FB64 +_0808FB3E: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0808FB64 + strb r1, [r4, #0x1e] + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #0x80 + bl sub_08004488 + adds r0, r4, #0 + bl sub_0808FF20 + b _0808FB64 +_0808FB5E: + adds r0, r4, #0 + bl nullsub_1 +_0808FB64: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808FB68 +sub_0808FB68: @ 0x0808FB68 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x70 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080001DA + adds r1, r0, #0 + ldr r0, _0808FBAC @ =0x00004031 + cmp r1, r0 + bhi _0808FBB0 + subs r0, #1 + cmp r1, r0 + blo _0808FBB0 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r1, #0 + subs r0, #0x30 + movs r1, #1 + ands r0, r1 + lsls r0, r0, #4 + movs r1, #8 + orrs r0, r1 + strb r0, [r4, #0x15] + movs r0, #1 + bl sub_08078A90 + adds r0, r4, #0 + movs r1, #0 + bl sub_0808FD44 + b _0808FBF6 + .align 2, 0 +_0808FBAC: .4byte 0x00004031 +_0808FBB0: + adds r0, r4, #0 + adds r0, #0x72 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080001DA + adds r1, r0, #0 + ldr r0, _0808FBF8 @ =0x00004031 + cmp r1, r0 + bhi _0808FBF0 + subs r0, #1 + cmp r1, r0 + blo _0808FBF0 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r1, #0 + subs r0, #0x30 + movs r1, #1 + ands r0, r1 + lsls r0, r0, #4 + movs r1, #8 + orrs r0, r1 + strb r0, [r4, #0x15] + movs r0, #1 + bl sub_08078A90 + adds r0, r4, #0 + movs r1, #1 + bl sub_0808FD44 +_0808FBF0: + adds r0, r4, #0 + bl sub_0808FDE8 +_0808FBF6: + pop {r4, pc} + .align 2, 0 +_0808FBF8: .4byte 0x00004031 + + thumb_func_start sub_0808FBFC +sub_0808FBFC: @ 0x0808FBFC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x7c + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080001DA + adds r1, r0, #0 + ldr r0, _0808FC38 @ =0x0000404A + cmp r1, r0 + beq _0808FC34 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r1, #0 + subs r0, #0x4b + movs r1, #3 + ands r0, r1 + lsls r0, r0, #3 + strb r0, [r4, #0x15] + movs r0, #1 + bl sub_08078A90 + adds r0, r4, #0 + movs r1, #0 + bl sub_0808FD44 +_0808FC34: + pop {r4, pc} + .align 2, 0 +_0808FC38: .4byte 0x0000404A + + thumb_func_start sub_0808FC3C +sub_0808FC3C: @ 0x0808FC3C + push {r4, lr} + adds r4, r0, #0 + bl sub_0800445C + adds r0, r4, #0 + bl sub_0808FC5C + cmp r0, #0 + beq _0808FC58 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0 + bl sub_08078A90 +_0808FC58: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0808FC5C +sub_0808FC5C: @ 0x0808FC5C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _0808FD40 + ldrb r1, [r4, #0xa] + cmp r1, #2 + beq _0808FC7C + cmp r1, #4 + bne _0808FC84 +_0808FC7C: + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #0xfe + b _0808FC88 +_0808FC84: + adds r1, r4, #0 + adds r1, #0x63 +_0808FC88: + strb r0, [r1] + adds r0, r4, #0 + bl sub_080002D0 + cmp r0, #0 + bne _0808FD40 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0808FD30 + movs r2, #0 + ldrh r1, [r4, #0xa] + ldr r0, _0808FCB4 @ =0x00000101 + cmp r1, r0 + bne _0808FCB8 + movs r1, #0x32 + ldrsh r0, [r4, r1] + adds r1, r4, #0 + adds r1, #0x7e + ldrh r1, [r1] + cmp r0, r1 + bne _0808FCC8 + b _0808FCCC + .align 2, 0 +_0808FCB4: .4byte 0x00000101 +_0808FCB8: + movs r1, #0x2e + ldrsh r0, [r4, r1] + adds r1, r4, #0 + adds r1, #0x7e + ldrh r1, [r1] + cmp r0, r1 + bne _0808FCC8 + movs r2, #1 +_0808FCC8: + cmp r2, #0 + beq _0808FD30 +_0808FCCC: + adds r0, r4, #0 + adds r0, #0x81 + movs r5, #1 + strb r5, [r0] + ldr r3, [r4, #0x50] + cmp r3, #0 + bne _0808FCE4 + adds r0, #5 + ldrh r0, [r0] + bl sub_0807CCC8 + b _0808FD0C +_0808FCE4: + adds r2, r4, #0 + adds r2, #0x82 + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808FD06 + adds r0, r3, #0 + adds r0, #0x28 + subs r2, #8 + adds r1, r5, #0 + ldrh r2, [r2] + lsls r1, r2 + ldrb r2, [r0] + orrs r1, r2 + strb r1, [r0] + b _0808FD0C +_0808FD06: + ldrb r0, [r2] + bl sub_0807CCB4 +_0808FD0C: + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + bne _0808FD1A + movs r0, #4 + b _0808FD1C +_0808FD1A: + movs r0, #0x18 +_0808FD1C: + strb r0, [r4, #0xe] + ldr r0, _0808FD3C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0808FD30 + ldrb r0, [r4, #0xe] + adds r0, #0x10 + strb r0, [r4, #0xe] +_0808FD30: + adds r0, r4, #0 + bl sub_0808FF50 + movs r0, #1 + b _0808FD42 + .align 2, 0 +_0808FD3C: .4byte gUnk_03003F80 +_0808FD40: + movs r0, #0 +_0808FD42: + pop {r4, r5, pc} + + thumb_func_start sub_0808FD44 +sub_0808FD44: @ 0x0808FD44 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #1 + bne _0808FD8E + adds r0, r4, #0 + adds r0, #0x83 + ldrb r0, [r0] + cmp r0, #0 + beq _0808FD62 + adds r0, r4, #0 + bl sub_08090498 +_0808FD62: + cmp r5, #0 + beq _0808FD6C + adds r0, r4, #0 + adds r0, #0x72 + b _0808FD70 +_0808FD6C: + adds r0, r4, #0 + adds r0, #0x70 +_0808FD70: + ldrh r5, [r0] + ldr r0, _0808FD84 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808FD88 + movs r0, #0x40 + strh r0, [r4, #0x24] + b _0808FDB2 + .align 2, 0 +_0808FD84: .4byte gUnk_03003F80 +_0808FD88: + strh r1, [r4, #0x24] + movs r0, #0x10 + b _0808FDB4 +_0808FD8E: + adds r0, r4, #0 + adds r0, #0x7c + ldrh r5, [r0] + ldr r0, _0808FDAC @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0808FDB0 + movs r1, #0x40 + movs r0, #0x40 + strh r0, [r4, #0x24] + strb r1, [r4, #0xe] + b _0808FDB6 + .align 2, 0 +_0808FDAC: .4byte gUnk_03003F80 +_0808FDB0: + strh r1, [r4, #0x24] +_0808FDB2: + movs r0, #0x20 +_0808FDB4: + strb r0, [r4, #0xe] +_0808FDB6: + ldr r0, _0808FDE0 @ =0x0000010F + bl sub_08004488 + adds r0, r4, #0 + bl sub_08090254 + ldr r1, _0808FDE4 @ =gUnk_080B4488 + ldrb r0, [r4, #0x15] + lsrs r0, r0, #3 + lsls r0, r0, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + adds r0, r5, r0 + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080001DA + pop {r4, r5, pc} + .align 2, 0 +_0808FDE0: .4byte 0x0000010F +_0808FDE4: .4byte gUnk_080B4488 + + thumb_func_start sub_0808FDE8 +sub_0808FDE8: @ 0x0808FDE8 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r0, #0x70 + ldrh r5, [r0] + subs r0, r5, #1 + movs r1, #1 + bl sub_080002E0 + adds r4, r0, #0 + adds r0, r5, #0 + movs r1, #1 + bl sub_080001DA + ldr r6, _0808FE28 @ =0x0000402E + cmp r0, r6 + bne _0808FE30 + movs r0, #0xf0 + ands r0, r4 + cmp r0, #0 + beq _0808FE14 + cmp r0, #0x50 + bne _0808FE1C +_0808FE14: + movs r0, #5 + ands r0, r4 + cmp r0, #0 + bne _0808FE58 +_0808FE1C: + ldr r0, _0808FE2C @ =0x0000402C + adds r1, r5, #0 + movs r2, #1 + bl sub_0800015E + b _0808FE58 + .align 2, 0 +_0808FE28: .4byte 0x0000402E +_0808FE2C: .4byte 0x0000402C +_0808FE30: + adds r0, r5, #0 + movs r1, #1 + bl sub_080002E0 + cmp r0, #5 + bne _0808FE58 + movs r1, #0xf0 + ands r1, r4 + cmp r1, #0 + beq _0808FE48 + cmp r1, #0x50 + bne _0808FE58 +_0808FE48: + ands r4, r0 + cmp r4, #0 + beq _0808FE58 + adds r0, r6, #0 + adds r1, r5, #0 + movs r2, #1 + bl sub_0800015E +_0808FE58: + adds r0, r7, #0 + adds r0, #0x72 + ldrh r5, [r0] + adds r0, r5, #1 + movs r1, #1 + bl sub_080002E0 + adds r4, r0, #0 + adds r0, r5, #0 + movs r1, #1 + bl sub_080001DA + ldr r6, _0808FE98 @ =0x0000402F + cmp r0, r6 + bne _0808FEA0 + movs r0, #0xf0 + ands r0, r4 + cmp r0, #0 + beq _0808FE82 + cmp r0, #0x50 + bne _0808FE8A +_0808FE82: + movs r0, #0xa + ands r0, r4 + cmp r0, #0 + bne _0808FEC8 +_0808FE8A: + ldr r0, _0808FE9C @ =0x0000402D + adds r1, r5, #0 + movs r2, #1 + bl sub_0800015E + b _0808FEC8 + .align 2, 0 +_0808FE98: .4byte 0x0000402F +_0808FE9C: .4byte 0x0000402D +_0808FEA0: + adds r0, r5, #0 + movs r1, #1 + bl sub_080002E0 + cmp r0, #0xa + bne _0808FEC8 + movs r1, #0xf0 + ands r1, r4 + cmp r1, #0 + beq _0808FEB8 + cmp r1, #0x50 + bne _0808FEC8 +_0808FEB8: + ands r4, r0 + cmp r4, #0 + beq _0808FEC8 + adds r0, r6, #0 + adds r1, r5, #0 + movs r2, #1 + bl sub_0800015E +_0808FEC8: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0808FECC +sub_0808FECC: @ 0x0808FECC + push {r4, r5, lr} + adds r2, r0, #0 + movs r4, #1 + ldr r0, _0808FF18 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0808FF10 + ldr r3, _0808FF1C @ =gUnk_03001160 + ldrb r0, [r3, #0xc] + cmp r0, #6 + bne _0808FF10 + ldrb r0, [r3, #0x14] + cmp r0, #0 + bne _0808FF10 + movs r1, #0x32 + ldrsh r0, [r3, r1] + movs r5, #0x32 + ldrsh r1, [r2, r5] + subs r0, r0, r1 + cmp r0, #0x13 + bgt _0808FF10 + movs r0, #0x2e + ldrsh r2, [r2, r0] + adds r0, r2, #0 + adds r0, #0xc + movs r5, #0x2e + ldrsh r1, [r3, r5] + cmp r0, r1 + ble _0808FF10 + subs r0, #0x18 + cmp r0, r1 + blt _0808FF12 +_0808FF10: + movs r4, #0 +_0808FF12: + adds r0, r4, #0 + pop {r4, r5, pc} + .align 2, 0 +_0808FF18: .4byte gUnk_03003F80 +_0808FF1C: .4byte gUnk_03001160 + + thumb_func_start sub_0808FF20 +sub_0808FF20: @ 0x0808FF20 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xb] + cmp r1, #0 + beq _0808FF4A + cmp r1, #0 + blt _0808FF4A + cmp r1, #2 + bgt _0808FF4A + subs r1, #1 + movs r0, #0x63 + movs r2, #0 + bl sub_080A2960 + adds r1, r0, #0 + cmp r1, #0 + beq _0808FF4A + str r4, [r1, #0x50] + adds r0, r4, #0 + bl sub_0806FA24 +_0808FF4A: + pop {r4, pc} + + thumb_func_start nullsub_1 +nullsub_1: @ 0x0808FF4C + bx lr + .align 2, 0 + + thumb_func_start sub_0808FF50 +sub_0808FF50: @ 0x0808FF50 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + movs r0, #0x2e + ldrsh r1, [r6, r0] + ldr r2, _0808FF98 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r4, #0x32 + ldrsh r0, [r6, r4] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r2, r6, #0 + adds r2, #0x7c + strh r1, [r2] + ldrh r0, [r6, #0x2e] + movs r1, #0xf + ands r1, r0 + ldrh r7, [r2] + adds r0, r6, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + beq _0808FF9C + cmp r0, #1 + beq _0808FFC0 + b _0809008A + .align 2, 0 +_0808FF98: .4byte gUnk_03000BF0 +_0808FF9C: + adds r0, r6, #0 + adds r0, #0x70 + strh r7, [r0] + ldrh r0, [r0] + movs r1, #1 + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x74 + strh r0, [r1] + ldr r0, _0808FFBC @ =0x0000404A + adds r1, r7, #0 + movs r2, #1 + bl sub_0800015E + b _0809008A + .align 2, 0 +_0808FFBC: .4byte 0x0000404A +_0808FFC0: + movs r0, #8 + ands r1, r0 + cmp r1, #0 + beq _0809002C + adds r0, r6, #0 + adds r0, #0x70 + strh r7, [r0] + ldrh r0, [r0] + movs r1, #1 + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x74 + strh r0, [r1] + ldr r4, _08090028 @ =gUnk_08121EE4 + movs r0, #0x81 + adds r0, r0, r6 + mov r8, r0 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r0, [r0] + adds r1, r7, #0 + movs r2, #1 + bl sub_0800015E + adds r0, r7, #1 + adds r5, r6, #0 + adds r5, #0x72 + strh r0, [r5] + ldrh r0, [r5] + movs r1, #1 + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x76 + strh r0, [r1] + mov r1, r8 + ldrb r0, [r1] + adds r0, #4 + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r1, [r0] + ldrh r2, [r5] + adds r0, r6, #0 + bl sub_08090094 + adds r0, r6, #0 + movs r1, #1 + bl sub_0809028C + b _0809008A + .align 2, 0 +_08090028: .4byte gUnk_08121EE4 +_0809002C: + adds r0, r6, #0 + adds r0, #0x72 + strh r7, [r0] + ldrh r0, [r0] + movs r1, #1 + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x76 + strh r0, [r1] + ldr r5, _08090090 @ =gUnk_08121EE4 + movs r4, #0x81 + adds r4, r4, r6 + mov r8, r4 + ldrb r0, [r4] + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r0, [r0] + adds r1, r7, #0 + movs r2, #1 + bl sub_0800015E + subs r0, r7, #1 + adds r4, r6, #0 + adds r4, #0x70 + strh r0, [r4] + ldrh r0, [r4] + movs r1, #1 + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x74 + strh r0, [r1] + mov r1, r8 + ldrb r0, [r1] + adds r0, #2 + lsls r0, r0, #1 + adds r0, r0, r5 + ldrh r1, [r0] + ldrh r2, [r4] + adds r0, r6, #0 + bl sub_08090094 + adds r0, r6, #0 + movs r1, #0 + bl sub_0809028C +_0809008A: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08090090: .4byte gUnk_08121EE4 + + thumb_func_start sub_08090094 +sub_08090094: @ 0x08090094 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r5, r1, #0 + adds r7, r2, #0 + adds r0, r7, #0 + movs r1, #1 + bl sub_080002E0 + adds r4, r0, #0 + adds r0, r7, #0 + movs r1, #1 + bl sub_080001DA + adds r3, r0, #0 + movs r0, #0x80 + lsls r0, r0, #7 + ands r0, r3 + cmp r0, #0 + bne _0809012C + adds r3, r5, #0 + ldr r1, _080900D0 @ =0xFFFFBFDC + adds r0, r3, r1 + cmp r0, #0xb + bhi _0809011A + lsls r0, r0, #2 + ldr r1, _080900D4 @ =_080900D8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080900D0: .4byte 0xFFFFBFDC +_080900D4: .4byte _080900D8 +_080900D8: @ jump table + .4byte _08090114 @ case 0 + .4byte _08090108 @ case 1 + .4byte _0809011A @ case 2 + .4byte _0809011A @ case 3 + .4byte _0809011A @ case 4 + .4byte _0809011A @ case 5 + .4byte _0809011A @ case 6 + .4byte _0809011A @ case 7 + .4byte _08090114 @ case 8 + .4byte _0809010E @ case 9 + .4byte _08090114 @ case 10 + .4byte _0809010E @ case 11 +_08090108: + cmp r4, #5 + bne _0809011A + b _08090118 +_0809010E: + cmp r4, #5 + bne _0809011A + b _08090118 +_08090114: + cmp r4, #0xa + bne _0809011A +_08090118: + ldr r3, _08090128 @ =0x00004022 +_0809011A: + adds r0, r3, #0 + adds r1, r7, #0 + movs r2, #1 + bl sub_0800015E + b _08090242 + .align 2, 0 +_08090128: .4byte 0x00004022 +_0809012C: + ldr r1, _08090140 @ =0xFFFFBFDE + adds r0, r3, r1 + cmp r0, #0xd + bls _08090136 + b _08090242 +_08090136: + lsls r0, r0, #2 + ldr r1, _08090144 @ =_08090148 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08090140: .4byte 0xFFFFBFDE +_08090144: .4byte _08090148 +_08090148: @ jump table + .4byte _08090242 @ case 0 + .4byte _08090242 @ case 1 + .4byte _080901EC @ case 2 + .4byte _08090180 @ case 3 + .4byte _08090242 @ case 4 + .4byte _08090242 @ case 5 + .4byte _08090242 @ case 6 + .4byte _08090242 @ case 7 + .4byte _08090242 @ case 8 + .4byte _08090242 @ case 9 + .4byte _08090210 @ case 10 + .4byte _080901B4 @ case 11 + .4byte _08090210 @ case 12 + .4byte _080901B4 @ case 13 +_08090180: + ldr r0, _080901A8 @ =0x00004024 + cmp r5, r0 + bne _08090194 + ldr r3, _080901AC @ =0x00004022 + adds r2, r6, #0 + adds r2, #0x83 + ldrb r1, [r2] + movs r0, #0x10 + orrs r0, r1 + strb r0, [r2] +_08090194: + ldr r0, _080901B0 @ =0x0000402C + cmp r5, r0 + bne _08090238 + ldr r3, _080901AC @ =0x00004022 + adds r2, r6, #0 + adds r2, #0x83 + ldrb r1, [r2] + movs r0, #0x10 + b _08090234 + .align 2, 0 +_080901A8: .4byte 0x00004024 +_080901AC: .4byte 0x00004022 +_080901B0: .4byte 0x0000402C +_080901B4: + ldr r0, _080901DC @ =0x0000402C + cmp r5, r0 + bne _080901C8 + ldr r3, _080901E0 @ =0x0000402B + adds r2, r6, #0 + adds r2, #0x83 + ldrb r1, [r2] + movs r0, #0x10 + orrs r0, r1 + strb r0, [r2] +_080901C8: + ldr r0, _080901E4 @ =0x00004024 + cmp r5, r0 + bne _08090238 + ldr r3, _080901E8 @ =0x00004022 + adds r2, r6, #0 + adds r2, #0x83 + ldrb r1, [r2] + movs r0, #0x10 + b _08090234 + .align 2, 0 +_080901DC: .4byte 0x0000402C +_080901E0: .4byte 0x0000402B +_080901E4: .4byte 0x00004024 +_080901E8: .4byte 0x00004022 +_080901EC: + ldr r0, _08090204 @ =0x00004025 + cmp r5, r0 + bne _08090200 + ldr r3, _08090208 @ =0x00004022 + adds r2, r6, #0 + adds r2, #0x83 + ldrb r1, [r2] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r2] +_08090200: + ldr r0, _0809020C @ =0x0000402D + b _08090226 + .align 2, 0 +_08090204: .4byte 0x00004025 +_08090208: .4byte 0x00004022 +_0809020C: .4byte 0x0000402D +_08090210: + ldr r0, _08090244 @ =0x0000402D + cmp r5, r0 + bne _08090224 + ldr r3, _08090248 @ =0x0000402B + adds r2, r6, #0 + adds r2, #0x83 + ldrb r1, [r2] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r2] +_08090224: + ldr r0, _0809024C @ =0x00004025 +_08090226: + cmp r5, r0 + bne _08090238 + ldr r3, _08090250 @ =0x00004022 + adds r2, r6, #0 + adds r2, #0x83 + ldrb r1, [r2] + movs r0, #0x20 +_08090234: + orrs r0, r1 + strb r0, [r2] +_08090238: + adds r0, r3, #0 + adds r1, r7, #0 + movs r2, #1 + bl sub_0800015E +_08090242: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08090244: .4byte 0x0000402D +_08090248: .4byte 0x0000402B +_0809024C: .4byte 0x00004025 +_08090250: .4byte 0x00004022 + + thumb_func_start sub_08090254 +sub_08090254: @ 0x08090254 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x74 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x70 + ldrh r1, [r1] + adds r5, r4, #0 + adds r5, #0x38 + ldrb r2, [r5] + bl sub_0807B9B8 + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #1 + bne _08090288 + adds r0, r4, #0 + adds r0, #0x76 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x72 + ldrh r1, [r1] + ldrb r2, [r5] + bl sub_0807B9B8 +_08090288: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0809028C +sub_0809028C: @ 0x0809028C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r6, r0, #0 + adds r4, r6, #0 + adds r4, #0x83 + ldrb r0, [r4] + movs r2, #0x30 + ands r2, r0 + movs r0, #0 + mov sb, r0 + strb r2, [r4] + adds r0, r6, #0 + adds r0, #0x70 + ldrh r5, [r0] + adds r7, r5, #0 + subs r7, #0x80 + adds r0, #2 + ldrh r3, [r0] + movs r0, #0x80 + rsbs r0, r0, #0 + adds r0, r0, r3 + mov r8, r0 + cmp r1, #1 + bne _0809039A + movs r0, #0x20 + ands r0, r2 + cmp r0, #0 + beq _080902D4 + adds r1, r3, #0 + subs r1, #0x7f + movs r0, #0 + bl sub_08090480 + b _080902FE +_080902D4: + mov r0, r8 + movs r1, #2 + bl sub_080002B0 + adds r1, r0, #0 + ldr r0, _080902EC @ =0x00000301 + cmp r1, r0 + beq _080902F0 + adds r0, #7 + cmp r1, r0 + beq _080902F6 + b _080902FE + .align 2, 0 +_080902EC: .4byte 0x00000301 +_080902F0: + ldrb r0, [r4] + movs r1, #8 + b _080902FA +_080902F6: + ldrb r0, [r4] + movs r1, #2 +_080902FA: + orrs r0, r1 + strb r0, [r4] +_080902FE: + adds r2, r6, #0 + adds r2, #0x83 + ldrb r1, [r2] + movs r0, #0x2a + ands r0, r1 + adds r4, r2, #0 + cmp r0, #0 + beq _0809031E + movs r0, #0 + adds r1, r7, #0 + bl sub_08090480 + movs r0, #0 + mov r1, r8 + bl sub_08090480 +_0809031E: + ldrb r1, [r4] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0809034E + subs r4, r7, #1 + adds r0, r4, #0 + movs r1, #1 + bl sub_080002B0 + movs r1, #0xc0 + lsls r1, r1, #2 + cmp r0, r1 + bne _0809033C + b _08090478 +_0809033C: + movs r0, #0 + adds r1, r4, #0 + bl sub_08090480 + subs r1, r7, #2 + movs r0, #2 + bl sub_08090480 + b _08090478 +_0809034E: + subs r0, r7, #1 + movs r1, #2 + bl sub_080002B0 + adds r1, r0, #0 + movs r0, #0xc0 + lsls r0, r0, #2 + cmp r1, r0 + beq _08090368 + adds r0, #8 + cmp r1, r0 + beq _0809036E + b _08090376 +_08090368: + ldrb r1, [r4] + movs r0, #4 + b _08090372 +_0809036E: + ldrb r1, [r4] + movs r0, #1 +_08090372: + orrs r0, r1 + strb r0, [r4] +_08090376: + ldrb r1, [r4] + movs r0, #0x15 + ands r0, r1 + cmp r0, #0 + beq _08090478 + movs r0, #0x2a + ands r0, r1 + cmp r0, #0 + bne _08090478 + movs r0, #0 + adds r1, r7, #0 + bl sub_08090480 + movs r0, #1 + mov r1, r8 + bl sub_08090480 + b _08090478 +_0809039A: + movs r0, #0x10 + ands r0, r2 + cmp r0, #0 + beq _080903AE + adds r1, r5, #0 + subs r1, #0x81 + movs r0, #0 + bl sub_08090480 + b _080903DA +_080903AE: + adds r0, r7, #0 + movs r1, #2 + bl sub_080002B0 + adds r1, r0, #0 + ldr r0, _080903C8 @ =0x00000302 + cmp r1, r0 + beq _080903CC + adds r0, #4 + cmp r1, r0 + beq _080903D2 + b _080903DA + .align 2, 0 +_080903C8: .4byte 0x00000302 +_080903CC: + ldrb r0, [r4] + movs r1, #4 + b _080903D6 +_080903D2: + ldrb r0, [r4] + movs r1, #1 +_080903D6: + orrs r0, r1 + strb r0, [r4] +_080903DA: + adds r2, r6, #0 + adds r2, #0x83 + ldrb r1, [r2] + movs r0, #0x15 + ands r0, r1 + adds r4, r2, #0 + cmp r0, #0 + beq _080903FA + movs r0, #0 + adds r1, r7, #0 + bl sub_08090480 + movs r0, #0 + mov r1, r8 + bl sub_08090480 +_080903FA: + ldrb r1, [r4] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0809042C + mov r4, r8 + adds r4, #1 + adds r0, r4, #0 + movs r1, #1 + bl sub_080002B0 + movs r1, #0xc0 + lsls r1, r1, #2 + cmp r0, r1 + beq _08090478 + movs r0, #0 + adds r1, r4, #0 + bl sub_08090480 + mov r1, r8 + adds r1, #2 + movs r0, #1 + bl sub_08090480 + b _08090478 +_0809042C: + mov r0, r8 + adds r0, #1 + movs r1, #2 + bl sub_080002B0 + adds r1, r0, #0 + movs r0, #0xc0 + lsls r0, r0, #2 + cmp r1, r0 + beq _08090448 + adds r0, #6 + cmp r1, r0 + beq _0809044E + b _08090456 +_08090448: + ldrb r1, [r4] + movs r0, #8 + b _08090452 +_0809044E: + ldrb r1, [r4] + movs r0, #2 +_08090452: + orrs r0, r1 + strb r0, [r4] +_08090456: + ldrb r1, [r4] + movs r0, #0x2a + ands r0, r1 + cmp r0, #0 + beq _08090478 + movs r0, #0x15 + ands r0, r1 + cmp r0, #0 + bne _08090478 + movs r0, #2 + adds r1, r7, #0 + bl sub_08090480 + movs r0, #0 + mov r1, r8 + bl sub_08090480 +_08090478: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08090480 +sub_08090480: @ 0x08090480 + push {lr} + ldr r2, _08090494 @ =gUnk_08121EF0 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + movs r2, #1 + bl sub_0800015E + pop {pc} + .align 2, 0 +_08090494: .4byte gUnk_08121EF0 + + thumb_func_start sub_08090498 +sub_08090498: @ 0x08090498 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x70 + ldrh r0, [r0] + adds r4, r0, #0 + subs r4, #0x80 + adds r0, r4, #0 + movs r1, #1 + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x83 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080904D2 + adds r0, r4, #0 + movs r1, #2 + bl sub_080002B0 + ldr r1, _08090510 @ =0x00000306 + cmp r0, r1 + bne _080904D2 + movs r0, #0x62 + adds r1, r4, #0 + movs r2, #1 + bl sub_08000148 +_080904D2: + adds r0, r5, #0 + adds r0, #0x72 + ldrh r0, [r0] + adds r4, r0, #0 + subs r4, #0x80 + adds r0, r4, #0 + movs r1, #1 + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x83 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0809050C + adds r0, r4, #0 + movs r1, #2 + bl sub_080002B0 + movs r1, #0xc2 + lsls r1, r1, #2 + cmp r0, r1 + bne _0809050C + movs r0, #0x63 + adds r1, r4, #0 + movs r2, #1 + bl sub_08000148 +_0809050C: + pop {r4, r5, pc} + .align 2, 0 +_08090510: .4byte 0x00000306 + + thumb_func_start sub_08090514 +sub_08090514: @ 0x08090514 + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x50] + cmp r0, #0 + beq _0809059E + ldrb r0, [r0, #0xd] + cmp r0, #1 + beq _08090552 + cmp r0, #1 + bgt _0809052E + cmp r0, #0 + beq _08090538 + b _0809059E +_0809052E: + cmp r0, #2 + beq _08090568 + cmp r0, #3 + beq _08090582 + b _0809059E +_08090538: + ldrb r1, [r2, #0x19] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #0x19] + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + b _0809059A +_08090552: + ldrb r0, [r2, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r2, #0x19] + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + b _0809059A +_08090568: + ldrb r1, [r2, #0x19] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #0x19] + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + b _0809059A +_08090582: + ldrb r1, [r2, #0x19] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #0x19] + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 +_0809059A: + orrs r0, r1 + strb r0, [r2] +_0809059E: + pop {pc} + + thumb_func_start sub_080905A0 +sub_080905A0: @ 0x080905A0 + push {lr} + ldr r2, _080905B4 @ =gUnk_08122218 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080905B4: .4byte gUnk_08122218 + + thumb_func_start sub_080905B8 +sub_080905B8: @ 0x080905B8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r7, r0, #0 + movs r0, #1 + mov sb, r0 + mov r1, sb + strb r1, [r7, #0xc] + movs r5, #0x2e + ldrsh r2, [r7, r5] + ldr r6, _08090618 @ =gUnk_03000BF0 + ldrh r0, [r6, #6] + subs r2, r2, r0 + asrs r2, r2, #4 + movs r4, #0x3f + ands r2, r4 + movs r1, #0x32 + ldrsh r0, [r7, r1] + ldrh r1, [r6, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r4 + lsls r0, r0, #6 + orrs r2, r0 + adds r5, r7, #0 + adds r5, #0x78 + movs r0, #0 + mov r8, r0 + strh r2, [r5] + adds r0, r7, #0 + bl sub_08090DC4 + adds r0, r7, #0 + adds r0, #0x82 + ldrh r0, [r0] + ldr r1, _0809061C @ =0x00007FFF + ands r1, r0 + cmp r1, #0x80 + beq _08090680 + cmp r1, #0x80 + bgt _08090620 + cmp r1, #0x20 + beq _080906E6 + cmp r1, #0x40 + beq _08090650 + b _080906E0 + .align 2, 0 +_08090618: .4byte gUnk_03000BF0 +_0809061C: .4byte 0x00007FFF +_08090620: + movs r0, #0x80 + lsls r0, r0, #2 + cmp r1, r0 + beq _080906E6 + cmp r1, r0 + bgt _08090636 + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + beq _08090640 + b _080906E0 +_08090636: + movs r0, #0x80 + lsls r0, r0, #3 + cmp r1, r0 + beq _080906C4 + b _080906E0 +_08090640: + adds r1, r7, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r7, #0 + bl sub_08016A04 + b _080906E6 +_08090650: + ldrh r1, [r7, #0x32] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strh r0, [r7, #0x32] + ldr r4, _0809067C @ =0x00004017 + ldrh r1, [r5] + subs r1, #0x80 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldrh r1, [r5] + subs r1, #0x40 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + b _080906E6 + .align 2, 0 +_0809067C: .4byte 0x00004017 +_08090680: + mov r1, r8 + strb r1, [r7, #0x1e] + ldrh r1, [r7, #0x32] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strh r0, [r7, #0x32] + movs r2, #0x2e + ldrsh r1, [r7, r2] + ldrh r0, [r6, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + ands r1, r4 + movs r2, #0x32 + ldrsh r0, [r7, r2] + ldrh r2, [r6, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r4 + lsls r0, r0, #6 + orrs r1, r0 + strh r1, [r5] + ldr r0, _080906C0 @ =0x00004026 + ldrh r1, [r5] + adds r2, r7, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + b _080906E6 + .align 2, 0 +_080906C0: .4byte 0x00004026 +_080906C4: + adds r0, r7, #0 + bl sub_08090E64 + ldrb r0, [r7, #0xb] + cmp r0, #0 + beq _080906E0 + adds r0, r7, #0 + adds r0, #0x62 + mov r5, sb + strb r5, [r0] + adds r1, r7, #0 + adds r1, #0x80 + movs r0, #0x30 + strb r0, [r1] +_080906E0: + adds r0, r7, #0 + bl sub_08090B6C +_080906E6: + adds r0, r7, #0 + adds r0, #0x81 + ldrb r1, [r0] + cmp r1, #0x10 + beq _0809075C + movs r0, #0x70 + ands r0, r1 + adds r4, r7, #0 + adds r4, #0x78 + cmp r0, #0x20 + beq _0809072E + cmp r0, #0x30 + bne _0809073A + ldrh r0, [r4] + subs r0, #0x40 + strh r0, [r4] + adds r0, r7, #0 + bl sub_08090B6C + movs r0, #0x2e + ldrsh r1, [r7, r0] + ldr r2, _08090778 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r7, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + strh r1, [r4] +_0809072E: + ldrh r0, [r4] + adds r0, #0x40 + strh r0, [r4] + adds r0, r7, #0 + bl sub_08090B6C +_0809073A: + movs r0, #0x2e + ldrsh r1, [r7, r0] + ldr r2, _08090778 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r7, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + strh r1, [r4] +_0809075C: + adds r0, r7, #0 + adds r0, #0x82 + ldrh r0, [r0] + ldr r1, _0809077C @ =0x00007FFF + ands r1, r0 + cmp r1, #2 + beq _08090780 + cmp r1, #4 + bne _080907C8 + adds r0, r7, #0 + movs r1, #0x7e + bl sub_0801D2B4 + b _080907C8 + .align 2, 0 +_08090778: .4byte gUnk_03000BF0 +_0809077C: .4byte 0x00007FFF +_08090780: + adds r0, r7, #0 + adds r0, #0x78 + ldrh r0, [r0] + adds r4, r0, #0 + subs r4, #0x81 + ldrb r0, [r7, #0xa] + movs r1, #2 + mov r8, r1 + cmp r0, #0x1a + beq _08090798 + movs r2, #3 + mov r8, r2 +_08090798: + movs r5, #0 + cmp r5, r8 + bhs _080907C8 + ldr r6, _080907DC @ =0x00004026 +_080907A0: + adds r0, r6, #0 + adds r1, r4, #0 + movs r2, #2 + bl sub_0800015E + adds r0, r6, #0 + adds r1, r4, #0 + movs r2, #1 + bl sub_0800015E + adds r1, r4, #0 + adds r1, #0x40 + movs r0, #0 + movs r2, #1 + bl sub_080001D0 + adds r5, #1 + adds r4, #1 + cmp r5, r8 + blo _080907A0 +_080907C8: + ldrb r0, [r7, #0xa] + subs r0, #1 + cmp r0, #0x3b + bls _080907D2 + b _080909DC +_080907D2: + lsls r0, r0, #2 + ldr r1, _080907E0 @ =_080907E4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080907DC: .4byte 0x00004026 +_080907E0: .4byte _080907E4 +_080907E4: @ jump table + .4byte _080908D4 @ case 0 + .4byte _080909DC @ case 1 + .4byte _080909DC @ case 2 + .4byte _080909DC @ case 3 + .4byte _080909DC @ case 4 + .4byte _080909DC @ case 5 + .4byte _080909DC @ case 6 + .4byte _080909DC @ case 7 + .4byte _080908F0 @ case 8 + .4byte _080909DC @ case 9 + .4byte _080909DC @ case 10 + .4byte _080909DC @ case 11 + .4byte _080909DC @ case 12 + .4byte _080909DC @ case 13 + .4byte _080909DC @ case 14 + .4byte _080909DC @ case 15 + .4byte _080909DC @ case 16 + .4byte _080909DC @ case 17 + .4byte _080909DC @ case 18 + .4byte _080909DC @ case 19 + .4byte _080909DC @ case 20 + .4byte _080909DC @ case 21 + .4byte _080909DC @ case 22 + .4byte _080909DC @ case 23 + .4byte _080909DC @ case 24 + .4byte _080909DC @ case 25 + .4byte _080909DC @ case 26 + .4byte _080909DC @ case 27 + .4byte _080909DC @ case 28 + .4byte _08090920 @ case 29 + .4byte _08090938 @ case 30 + .4byte _080909DC @ case 31 + .4byte _080909DC @ case 32 + .4byte _080909DC @ case 33 + .4byte _080909DC @ case 34 + .4byte _080909DC @ case 35 + .4byte _080909DC @ case 36 + .4byte _080909DC @ case 37 + .4byte _080909DC @ case 38 + .4byte _08090984 @ case 39 + .4byte _080909DC @ case 40 + .4byte _080909DC @ case 41 + .4byte _080909DC @ case 42 + .4byte _080909DC @ case 43 + .4byte _080909DC @ case 44 + .4byte _080909DC @ case 45 + .4byte _080909DC @ case 46 + .4byte _080909DC @ case 47 + .4byte _080909DC @ case 48 + .4byte _080909DC @ case 49 + .4byte _080909DC @ case 50 + .4byte _080909DC @ case 51 + .4byte _080909DC @ case 52 + .4byte _080909DC @ case 53 + .4byte _080909DC @ case 54 + .4byte _080909DC @ case 55 + .4byte _080909DC @ case 56 + .4byte _080909DC @ case 57 + .4byte _08090994 @ case 58 + .4byte _080909C8 @ case 59 +_080908D4: + ldrb r0, [r7, #0xb] + cmp r0, #0 + bne _080908DC + b _080909DC +_080908DC: + adds r2, r7, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + b _080909DC +_080908F0: + movs r0, #0x4d + movs r1, #0x3e + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _080909DC + movs r3, #0x80 + lsls r3, r3, #0xd + adds r0, r7, #0 + adds r1, r4, #0 + adds r2, r3, #0 + bl sub_0806FA48 + movs r0, #1 + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x11] + subs r0, #0x11 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r4, #0x11] + b _080909DC +_08090920: + ldr r0, _08090934 @ =0x00000306 + adds r1, r7, #0 + adds r1, #0x78 + ldrh r1, [r1] + adds r1, #0x41 + movs r2, #2 + bl sub_0807B7D8 + b _080909DC + .align 2, 0 +_08090934: .4byte 0x00000306 +_08090938: + adds r5, r7, #0 + adds r5, #0x38 + movs r0, #1 + strb r0, [r5] + ldrb r1, [r7, #0x1b] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r7, #0x1b] + ldr r0, _0809097C @ =0x00004074 + adds r4, r7, #0 + adds r4, #0x78 + ldrh r1, [r4] + subs r1, #0x40 + ldrb r2, [r5] + bl sub_0800015E + ldrh r1, [r4] + subs r1, #0x40 + ldrb r2, [r5] + movs r0, #0x3f + bl sub_080001D0 + ldr r6, _08090980 @ =0x00004017 + ldrh r1, [r4] + ldrb r2, [r5] + adds r0, r6, #0 + bl sub_0800015E + ldrh r1, [r4] + adds r1, #0x40 + ldrb r2, [r5] + b _080909BC + .align 2, 0 +_0809097C: .4byte 0x00004074 +_08090980: .4byte 0x00004017 +_08090984: + ldrb r0, [r7, #0xb] + cmp r0, #0 + beq _080909DC + adds r1, r7, #0 + adds r1, #0x62 + movs r0, #0xfc + strb r0, [r1] + b _080909DC +_08090994: + ldr r6, _080909C4 @ =0x00004023 + adds r5, r7, #0 + adds r5, #0x78 + ldrh r1, [r5] + subs r1, #0x41 + adds r4, r7, #0 + adds r4, #0x38 + ldrb r2, [r4] + adds r0, r6, #0 + bl sub_0800015E + ldrh r1, [r5] + subs r1, #0x40 + ldrb r2, [r4] + adds r0, r6, #0 + bl sub_0800015E + ldrh r1, [r5] + subs r1, #0x3f + ldrb r2, [r4] +_080909BC: + adds r0, r6, #0 + bl sub_0800015E + b _080909DC + .align 2, 0 +_080909C4: .4byte 0x00004023 +_080909C8: + ldr r0, _080909E4 @ =0x00004022 + adds r1, r7, #0 + adds r1, #0x78 + ldrh r1, [r1] + adds r1, #0x41 + adds r2, r7, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E +_080909DC: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080909E4: .4byte 0x00004022 + + thumb_func_start sub_080909E8 +sub_080909E8: @ 0x080909E8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r0, #0x82 + ldrh r0, [r0] + ldr r1, _08090A04 @ =0x00007FFF + ands r1, r0 + cmp r1, #8 + beq _08090A42 + cmp r1, #8 + bgt _08090A08 + cmp r1, #1 + beq _08090A12 + b _08090B60 + .align 2, 0 +_08090A04: .4byte 0x00007FFF +_08090A08: + cmp r1, #0x10 + beq _08090A68 + cmp r1, #0x80 + beq _08090AB0 + b _08090B60 +_08090A12: + ldr r2, _08090A34 @ =gUnk_03001160 + movs r0, #0x32 + ldrsh r1, [r2, r0] + movs r3, #0x32 + ldrsh r0, [r5, r3] + cmp r1, r0 + blt _08090A26 + adds r0, #0x18 + cmp r1, r0 + ble _08090A38 +_08090A26: + ldrb r0, [r5, #0x19] + movs r1, #0x3f + ands r1, r0 + movs r0, #0x80 + orrs r1, r0 + strb r1, [r5, #0x19] + b _08090B60 + .align 2, 0 +_08090A34: .4byte gUnk_03001160 +_08090A38: + ldrb r0, [r5, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r5, #0x19] + b _08090B60 +_08090A42: + ldrb r0, [r5, #0xe] + adds r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x10 + beq _08090A52 + b _08090B60 +_08090A52: + movs r0, #0 + strb r0, [r5, #0xe] + ldrb r0, [r5, #0xf] + adds r0, #1 + movs r1, #3 + ands r0, r1 + strb r0, [r5, #0xf] + adds r0, r5, #0 + bl sub_08090E4C + b _08090B60 +_08090A68: + ldrb r0, [r5, #0xa] + cmp r0, #0x3e + beq _08090A8C + ldrb r0, [r5, #0xe] + adds r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x14 + bne _08090B60 + ldrb r0, [r5, #0x1e] + adds r0, #1 + movs r1, #3 + ands r0, r1 + strb r0, [r5, #0x1e] + movs r0, #0 + strb r0, [r5, #0xe] + b _08090B60 +_08090A8C: + ldrb r0, [r5, #0xe] + adds r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xe + bne _08090B60 + movs r0, #0 + strb r0, [r5, #0xe] + ldrb r0, [r5, #0xf] + adds r0, #1 + movs r1, #3 + bl __modsi3 + strb r0, [r5, #0xf] + adds r0, #1 + strb r0, [r5, #0x1e] + b _08090B60 +_08090AB0: + ldr r2, _08090B00 @ =gUnk_03001160 + movs r3, #0x32 + ldrsh r1, [r2, r3] + movs r3, #0x32 + ldrsh r0, [r5, r3] + adds r0, #8 + cmp r1, r0 + bge _08090B14 + ldr r0, _08090B04 @ =gUnk_03003F80 + ldrb r0, [r0, #0x12] + cmp r0, #0x1e + beq _08090B60 + adds r0, r5, #0 + bl sub_080002A0 + ldr r1, _08090B08 @ =0x00004017 + cmp r0, r1 + bne _08090B60 + ldr r0, _08090B0C @ =0x00004026 + adds r4, r5, #0 + adds r4, #0x78 + ldrh r1, [r4] + adds r5, #0x38 + ldrb r2, [r5] + bl sub_0800015E + ldr r6, _08090B10 @ =0x0000403D + ldrh r1, [r4] + subs r1, #0x40 + ldrb r2, [r5] + adds r0, r6, #0 + bl sub_0800015E + ldrh r1, [r4] + subs r1, #0x80 + ldrb r2, [r5] + adds r0, r6, #0 + bl sub_0800015E + b _08090B60 + .align 2, 0 +_08090B00: .4byte gUnk_03001160 +_08090B04: .4byte gUnk_03003F80 +_08090B08: .4byte 0x00004017 +_08090B0C: .4byte 0x00004026 +_08090B10: .4byte 0x0000403D +_08090B14: + adds r3, r2, #0 + adds r3, #0x38 + ldrb r1, [r3] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08090B2C + movs r0, #1 + strb r0, [r3] + adds r0, r2, #0 + bl sub_08016A04 +_08090B2C: + adds r0, r5, #0 + bl sub_080002A0 + ldr r6, _08090B64 @ =0x00004017 + cmp r0, r6 + beq _08090B60 + adds r4, r5, #0 + adds r4, #0x78 + ldrh r1, [r4] + adds r5, #0x38 + ldrb r2, [r5] + adds r0, r6, #0 + bl sub_0800015E + ldrh r1, [r4] + subs r1, #0x40 + ldrb r2, [r5] + adds r0, r6, #0 + bl sub_0800015E + ldr r0, _08090B68 @ =0x00004014 + ldrh r1, [r4] + subs r1, #0x80 + ldrb r2, [r5] + bl sub_0800015E +_08090B60: + pop {r4, r5, r6, pc} + .align 2, 0 +_08090B64: .4byte 0x00004017 +_08090B68: .4byte 0x00004014 + + thumb_func_start sub_08090B6C +sub_08090B6C: @ 0x08090B6C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r1, r0, #0 + adds r0, #0x80 + ldrb r0, [r0] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08090B80 + b _08090CD2 +_08090B80: + lsrs r0, r0, #0x1b + lsls r2, r0, #0x18 + lsrs r3, r2, #0x18 + ldrh r0, [r1, #0x2e] + movs r4, #0xf + mov r8, r4 + ands r4, r0 + mov r8, r4 + adds r0, r1, #0 + adds r0, #0x78 + ldrh r6, [r0] + subs r0, #0x40 + ldrb r7, [r0] + movs r0, #3 + ands r0, r3 + cmp r0, #1 + beq _08090BF8 + cmp r0, #1 + blo _08090BB0 + cmp r0, #2 + beq _08090C48 + cmp r0, #3 + beq _08090C90 + b _08090CD2 +_08090BB0: + lsrs r5, r2, #0x1b + cmp r3, #0xc + bne _08090BB8 + movs r5, #2 +_08090BB8: + rsbs r4, r5, #0 + cmp r4, r5 + bgt _08090BCE +_08090BBE: + adds r1, r6, r4 + ldr r0, _08090BE4 @ =0x00004022 + adds r2, r7, #0 + bl sub_0800015E + adds r4, #1 + cmp r4, r5 + ble _08090BBE +_08090BCE: + movs r0, #8 + mov r1, r8 + ands r1, r0 + cmp r1, #0 + beq _08090BEC + ldr r0, _08090BE8 @ =0x00004024 + subs r1, r6, r4 + adds r2, r7, #0 + bl sub_08090CDC + b _08090CB2 + .align 2, 0 +_08090BE4: .4byte 0x00004022 +_08090BE8: .4byte 0x00004024 +_08090BEC: + ldr r0, _08090BF4 @ =0x00004022 + subs r1, r6, r4 + b _08090C6E + .align 2, 0 +_08090BF4: .4byte 0x00004022 +_08090BF8: + lsrs r5, r2, #0x1b + rsbs r4, r5, #0 + cmp r4, r5 + bgt _08090C10 +_08090C00: + adds r1, r6, r4 + ldr r0, _08090C2C @ =0x00004022 + adds r2, r7, #0 + bl sub_0800015E + adds r4, #1 + cmp r4, r5 + ble _08090C00 +_08090C10: + movs r0, #8 + mov r1, r8 + ands r1, r0 + cmp r1, #0 + beq _08090C34 + ldr r0, _08090C30 @ =0x00004024 + subs r1, r6, r4 + adds r2, r7, #0 + bl sub_08090CDC + cmp r4, #0 + beq _08090CD2 + b _08090C6A + .align 2, 0 +_08090C2C: .4byte 0x00004022 +_08090C30: .4byte 0x00004024 +_08090C34: + cmp r4, #0 + beq _08090CB2 + ldr r0, _08090C44 @ =0x00004022 + subs r1, r6, r4 + adds r2, r7, #0 + bl sub_0800015E + b _08090CB2 + .align 2, 0 +_08090C44: .4byte 0x00004022 +_08090C48: + lsrs r5, r2, #0x1a + rsbs r4, r5, #0 + cmp r4, r5 + bge _08090C60 +_08090C50: + adds r1, r6, r4 + ldr r0, _08090C78 @ =0x00004022 + adds r2, r7, #0 + bl sub_0800015E + adds r4, #1 + cmp r4, r5 + blt _08090C50 +_08090C60: + movs r0, #8 + mov r1, r8 + ands r1, r0 + cmp r1, #0 + beq _08090C7C +_08090C6A: + ldr r0, _08090C78 @ =0x00004022 + adds r1, r6, r4 +_08090C6E: + adds r2, r7, #0 + bl sub_0800015E + b _08090CD2 + .align 2, 0 +_08090C78: .4byte 0x00004022 +_08090C7C: + ldr r0, _08090C8C @ =0x00004024 + subs r1, r6, r4 + subs r1, #1 + adds r2, r7, #0 + bl sub_08090CDC + b _08090CB2 + .align 2, 0 +_08090C8C: .4byte 0x00004024 +_08090C90: + lsrs r5, r2, #0x1a + rsbs r4, r5, #0 + cmp r4, r5 + bgt _08090CA8 +_08090C98: + adds r1, r6, r4 + ldr r0, _08090CC0 @ =0x00004022 + adds r2, r7, #0 + bl sub_0800015E + adds r4, #1 + cmp r4, r5 + ble _08090C98 +_08090CA8: + movs r0, #8 + mov r1, r8 + ands r1, r0 + cmp r1, #0 + beq _08090CC8 +_08090CB2: + ldr r0, _08090CC4 @ =0x00004025 + adds r1, r6, r4 + adds r2, r7, #0 + bl sub_08090CDC + b _08090CD2 + .align 2, 0 +_08090CC0: .4byte 0x00004022 +_08090CC4: .4byte 0x00004025 +_08090CC8: + ldr r0, _08090CD8 @ =0x00004024 + subs r1, r6, r4 + adds r2, r7, #0 + bl sub_08090CDC +_08090CD2: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08090CD8: .4byte 0x00004024 + + thumb_func_start sub_08090CDC +sub_08090CDC: @ 0x08090CDC + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_080001DA + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + movs r0, #0x80 + lsls r0, r0, #7 + ands r0, r2 + cmp r0, #0 + bne _08090D06 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + bl sub_0800015E + b _08090DB2 +_08090D06: + ldr r1, _08090D18 @ =0xFFFFBFDE + adds r0, r2, r1 + cmp r0, #0xb + bhi _08090DB2 + lsls r0, r0, #2 + ldr r1, _08090D1C @ =_08090D20 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08090D18: .4byte 0xFFFFBFDE +_08090D1C: .4byte _08090D20 +_08090D20: @ jump table + .4byte _08090DB2 @ case 0 + .4byte _08090DB2 @ case 1 + .4byte _08090D80 @ case 2 + .4byte _08090D50 @ case 3 + .4byte _08090DB2 @ case 4 + .4byte _08090DB2 @ case 5 + .4byte _08090DB2 @ case 6 + .4byte _08090DB2 @ case 7 + .4byte _08090DB2 @ case 8 + .4byte _08090DB2 @ case 9 + .4byte _08090D98 @ case 10 + .4byte _08090D68 @ case 11 +_08090D50: + ldr r0, _08090D5C @ =0x00004024 + cmp r4, r0 + bne _08090D58 + ldr r2, _08090D60 @ =0x00004022 +_08090D58: + ldr r0, _08090D64 @ =0x0000402C + b _08090DA2 + .align 2, 0 +_08090D5C: .4byte 0x00004024 +_08090D60: .4byte 0x00004022 +_08090D64: .4byte 0x0000402C +_08090D68: + ldr r0, _08090D74 @ =0x0000402C + cmp r4, r0 + bne _08090D70 + ldr r2, _08090D78 @ =0x0000402B +_08090D70: + ldr r0, _08090D7C @ =0x00004024 + b _08090DA2 + .align 2, 0 +_08090D74: .4byte 0x0000402C +_08090D78: .4byte 0x0000402B +_08090D7C: .4byte 0x00004024 +_08090D80: + ldr r0, _08090D8C @ =0x00004025 + cmp r4, r0 + bne _08090D88 + ldr r2, _08090D90 @ =0x00004022 +_08090D88: + ldr r0, _08090D94 @ =0x0000402D + b _08090DA2 + .align 2, 0 +_08090D8C: .4byte 0x00004025 +_08090D90: .4byte 0x00004022 +_08090D94: .4byte 0x0000402D +_08090D98: + ldr r0, _08090DB4 @ =0x0000402D + cmp r4, r0 + bne _08090DA0 + ldr r2, _08090DB8 @ =0x0000402B +_08090DA0: + ldr r0, _08090DBC @ =0x00004025 +_08090DA2: + cmp r4, r0 + bne _08090DA8 + ldr r2, _08090DC0 @ =0x00004022 +_08090DA8: + adds r0, r2, #0 + adds r1, r5, #0 + adds r2, r6, #0 + bl sub_0800015E +_08090DB2: + pop {r4, r5, r6, pc} + .align 2, 0 +_08090DB4: .4byte 0x0000402D +_08090DB8: .4byte 0x0000402B +_08090DBC: .4byte 0x00004025 +_08090DC0: .4byte 0x00004022 + + thumb_func_start sub_08090DC4 +sub_08090DC4: @ 0x08090DC4 + push {r4, lr} + mov ip, r0 + ldrb r0, [r0, #0xa] + lsls r0, r0, #3 + ldr r1, _08090E44 @ =gUnk_08121EF8 + adds r3, r0, r1 + ldrh r1, [r3, #6] + movs r0, #0x80 + lsls r0, r0, #8 + ands r0, r1 + cmp r0, #0 + beq _08090DF4 + ldr r1, _08090E48 @ =gUnk_08122220 + movs r0, #3 + ldrsb r0, [r3, r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r3, [r0] + mov r0, ip + ldrb r1, [r0, #0xb] + lsls r0, r1, #3 + adds r3, r3, r0 + mov r0, ip + strb r1, [r0, #0x1e] +_08090DF4: + ldrb r1, [r3] + mov r0, ip + adds r0, #0x80 + strb r1, [r0] + ldrb r0, [r3, #1] + mov r1, ip + adds r1, #0x81 + strb r0, [r1] + ldrb r0, [r3, #2] + subs r1, #0x1f + strb r0, [r1] + ldrb r0, [r3, #3] + adds r1, #1 + strb r0, [r1] + ldrb r1, [r3, #4] + lsls r1, r1, #6 + mov r0, ip + ldrb r2, [r0, #0x19] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + mov r1, ip + strb r0, [r1, #0x19] + ldrb r0, [r3, #5] + mov r4, ip + adds r4, #0x29 + movs r1, #7 + ands r1, r0 + ldrb r2, [r4] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4] + ldrh r1, [r3, #6] + mov r0, ip + adds r0, #0x82 + strh r1, [r0] + pop {r4, pc} + .align 2, 0 +_08090E44: .4byte gUnk_08121EF8 +_08090E48: .4byte gUnk_08122220 + + thumb_func_start sub_08090E4C +sub_08090E4C: @ 0x08090E4C + push {lr} + ldr r2, _08090E60 @ =gUnk_08122244 + ldrb r1, [r0, #0xf] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl sub_0801D2B4 + pop {pc} + .align 2, 0 +_08090E60: .4byte gUnk_08122244 + + thumb_func_start sub_08090E64 +sub_08090E64: @ 0x08090E64 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x2a + movs r1, #0 + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _08090EA0 + ldr r0, _08090EA4 @ =0x0000FFFE + adds r2, r0, #0 + ldrb r0, [r5, #0xb] + adds r2, r2, r0 + lsls r2, r2, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + movs r3, #0 + bl sub_0806FA48 + ldrh r0, [r4, #0x36] + subs r0, #0x10 + strh r0, [r4, #0x36] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 +_08090EA0: + pop {r4, r5, pc} + .align 2, 0 +_08090EA4: .4byte 0x0000FFFE + + thumb_func_start sub_08090EA8 +sub_08090EA8: @ 0x08090EA8 + push {lr} + ldr r2, _08090EBC @ =gUnk_08122254 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08090EBC: .4byte gUnk_08122254 + + thumb_func_start sub_08090EC0 +sub_08090EC0: @ 0x08090EC0 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4, #0xb] + strb r0, [r4, #0x1e] + bl sub_08052660 + cmp r0, #0 + beq _08090EFE + ldrb r0, [r4, #0x1e] + adds r0, #4 + strb r0, [r4, #0x1e] + adds r0, r4, #0 + bl sub_080AE068 + movs r1, #0xc2 + lsls r1, r1, #1 + adds r0, r4, #0 + bl sub_080ADF80 +_08090EFE: + pop {r4, pc} + + thumb_func_start sub_08090F00 +sub_08090F00: @ 0x08090F00 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xa] + cmp r1, #1 + bne _08090F1C + ldr r0, [r4, #0x50] + ldrb r2, [r4, #0xf] + lsls r1, r2 + ldr r0, [r0, #0x20] + ands r0, r1 + cmp r0, #0 + bne _08090F1C + bl sub_0805E780 +_08090F1C: + ldr r6, _08090F64 @ =gUnk_03003F80 + ldr r0, [r6, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08090F62 + ldr r5, _08090F68 @ =gUnk_03001160 + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #4 + movs r3, #4 + bl sub_080041A0 + cmp r0, #0 + beq _08090F62 + movs r1, #0x36 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _08090F62 + adds r2, r6, #0 + adds r2, #0x90 + ldr r1, _08090F6C @ =gUnk_0812225C + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r2] + ldrh r0, [r0] + ands r0, r1 + cmp r0, #0 + beq _08090F62 + ldrb r0, [r4, #0xe] + bl sub_0804B128 + bl sub_08080840 +_08090F62: + pop {r4, r5, r6, pc} + .align 2, 0 +_08090F64: .4byte gUnk_03003F80 +_08090F68: .4byte gUnk_03001160 +_08090F6C: .4byte gUnk_0812225C + + thumb_func_start sub_08090F70 +sub_08090F70: @ 0x08090F70 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08090FB4 + movs r5, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r5 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xb] + strb r0, [r4, #0x1e] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 + bl sub_08052660 + cmp r0, #0 + beq _08090FB4 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r5 + strb r0, [r2] +_08090FB4: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08090FB8 +sub_08090FB8: @ 0x08090FB8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08090FF6 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_08004260 +_08090FF6: + pop {r4, pc} + + thumb_func_start sub_08090FF8 +sub_08090FF8: @ 0x08090FF8 + push {lr} + ldr r2, _0809100C @ =gUnk_08122278 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809100C: .4byte gUnk_08122278 + + thumb_func_start sub_08091010 +sub_08091010: @ 0x08091010 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _08091094 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r3, r4, #0 + adds r3, #0x74 + strh r1, [r3] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r5, [r0] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r3] + subs r0, #0x80 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + ldr r6, _08091098 @ =0x00004022 + movs r7, #4 +_0809105C: + subs r1, r4, #2 + adds r0, r6, #0 + adds r2, r5, #0 + bl sub_0800015E + subs r1, r4, #1 + adds r0, r6, #0 + adds r2, r5, #0 + bl sub_0800015E + adds r0, r6, #0 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_0800015E + adds r1, r4, #1 + adds r0, r6, #0 + adds r2, r5, #0 + bl sub_0800015E + adds r0, r4, #0 + adds r0, #0x40 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + subs r7, #1 + cmp r7, #0 + bge _0809105C + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08091094: .4byte gUnk_03000BF0 +_08091098: .4byte 0x00004022 + + thumb_func_start nullsub_523 +nullsub_523: @ 0x0809109C + bx lr + .align 2, 0 + + thumb_func_start sub_080910A0 +sub_080910A0: @ 0x080910A0 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080910C8 + ldrb r0, [r4, #0xa] + bl sub_0807CBD0 + cmp r0, #0 + beq _080910B8 + bl sub_0805E780 +_080910B8: + movs r1, #1 + strb r1, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + adds r0, r4, #0 + bl sub_08078828 +_080910C8: + adds r0, r4, #0 + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _08091100 + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _08091104 @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r5, #0x32 + ldrsh r1, [r4, r5] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + movs r1, #2 + bl sub_080A7C8C + bl sub_0805E780 +_08091100: + pop {r4, r5, pc} + .align 2, 0 +_08091104: .4byte gUnk_03000BF0 + + thumb_func_start sub_08091108 +sub_08091108: @ 0x08091108 + push {lr} + ldr r2, _0809111C @ =gUnk_08122280 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809111C: .4byte gUnk_08122280 + + thumb_func_start sub_08091120 +sub_08091120: @ 0x08091120 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldr r3, _08091194 @ =gUnk_08122288 + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0, #2] + adds r0, r4, #0 + adds r0, #0x60 + strh r1, [r0] + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0, #1] + movs r0, #0xf + ands r1, r0 + ldrb r2, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1a] + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r0, [r0, #3] + strh r0, [r4, #0x12] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x19] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x19] + movs r0, #0xa8 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08004168 + pop {r4, pc} + .align 2, 0 +_08091194: .4byte gUnk_08122288 + + thumb_func_start sub_08091198 +sub_08091198: @ 0x08091198 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x20] + cmp r0, #0 + bge _080911AA + ldrb r0, [r4, #0x18] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x18] +_080911AA: + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _080911E8 + ldrb r1, [r4, #0xb] + cmp r1, #0xf + beq _080911CE + cmp r1, #0xf + bgt _080911C8 + cmp r1, #0 + beq _080911E4 + b _080911DA +_080911C8: + cmp r1, #0xff + bne _080911DA + b _080911E4 +_080911CE: + ldrb r1, [r4, #0xe] + adds r0, r4, #0 + movs r2, #0x80 + bl sub_080A29AC + b _080911E4 +_080911DA: + ldrb r2, [r4, #0xe] + adds r0, r4, #0 + movs r3, #0 + bl sub_080A2988 +_080911E4: + bl sub_0805E780 +_080911E8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080911EC +sub_080911EC: @ 0x080911EC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x72 + ldrh r0, [r0] + cmp r0, #1 + beq _0809123C + cmp r0, #1 + bgt _08091202 + cmp r0, #0 + beq _08091208 + b _08091260 +_08091202: + cmp r0, #2 + beq _08091254 + b _08091260 +_08091208: + ldr r1, _08091234 @ =gUnk_08122294 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0800445C + ldr r1, _08091238 @ =gUnk_02021F00 + adds r0, r4, #0 + adds r0, #0x74 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x70 + ldrh r1, [r1] + strh r1, [r0] + b _08091260 + .align 2, 0 +_08091234: .4byte gUnk_08122294 +_08091238: .4byte gUnk_02021F00 +_0809123C: + ldr r0, _08091250 @ =gUnk_081222A0 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _08091260 + .align 2, 0 +_08091250: .4byte gUnk_081222A0 +_08091254: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08091260 + adds r0, r4, #0 + bl sub_08091504 +_08091260: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08091264 +sub_08091264: @ 0x08091264 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + ldr r0, _080912C4 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x45 + bhi _0809132C + ldrb r1, [r6, #0xa] + ldrb r2, [r6, #0xb] + movs r0, #0x54 + bl sub_080A2960 + adds r7, r0, #0 + ldrb r1, [r6, #0xa] + ldrb r2, [r6, #0xb] + movs r0, #0x54 + bl sub_080A2960 + adds r1, r0, #0 + str r6, [r7, #0x50] + str r6, [r1, #0x50] + adds r0, r7, #0 + adds r0, #0x72 + movs r5, #1 + movs r4, #1 + strh r4, [r0] + adds r2, r1, #0 + adds r2, #0x72 + movs r0, #2 + strh r0, [r2] + adds r0, r6, #0 + bl sub_0806FA24 + movs r2, #1 + strb r5, [r6, #0xc] + ldrb r1, [r6, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r6, #0x18] + movs r0, #0x60 + strh r0, [r6, #0x24] + ldrb r0, [r6, #0xb] + ands r4, r0 + cmp r4, #0 + beq _080912CC + ldr r0, _080912C8 @ =gUnk_080FD278 + b _080912CE + .align 2, 0 +_080912C4: .4byte gUnk_03003DBC +_080912C8: .4byte gUnk_080FD278 +_080912CC: + ldr r0, _08091330 @ =gUnk_080FD270 +_080912CE: + str r0, [r6, #0x48] + movs r0, #1 + strb r0, [r6, #0x16] + ldr r2, _08091334 @ =gUnk_081222A8 + ldrb r0, [r6, #0xb] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r6, #0x2e] + adds r0, r0, r1 + strh r0, [r6, #0x2e] + adds r1, r6, #0 + adds r1, #0x80 + strh r0, [r1] + ldrb r0, [r6, #0xb] + lsls r0, r0, #1 + adds r0, #1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r6, #0x32] + adds r0, r0, r1 + strh r0, [r6, #0x32] + adds r1, r6, #0 + adds r1, #0x82 + strh r0, [r1] + adds r0, r6, #0 + adds r1, r7, #0 + bl sub_0806FA24 + adds r0, r6, #0 + adds r0, #0x7e + ldrb r0, [r0] + adds r1, r6, #0 + adds r1, #0x76 + strh r0, [r1] + ldrb r1, [r6, #0xe] + adds r0, r6, #0 + adds r0, #0x74 + strb r1, [r0] + ldrb r1, [r6, #0xb] + adds r0, r6, #0 + bl sub_08004260 +_0809132C: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08091330: .4byte gUnk_080FD270 +_08091334: .4byte gUnk_081222A8 + + thumb_func_start sub_08091338 +sub_08091338: @ 0x08091338 + push {r4, lr} + adds r4, r0, #0 + bl sub_08078930 + adds r0, r4, #0 + adds r0, #0x70 + ldrh r0, [r0] + cmp r0, #0 + beq _0809135C + ldrb r0, [r4, #0xb] + lsls r0, r0, #3 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_08091660 +_0809135C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08091360 +sub_08091360: @ 0x08091360 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806FBB4 + ldr r1, _0809137C @ =gUnk_081222B0 + ldrb r0, [r4, #0xd] + subs r0, #5 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_0809137C: .4byte gUnk_081222B0 + + thumb_func_start sub_08091380 +sub_08091380: @ 0x08091380 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r7, _0809142C @ =gUnk_03001160 + adds r0, #0x75 + ldrb r0, [r0] + cmp r0, #0 + bne _080913E0 + ldrb r0, [r4, #0xb] + lsls r2, r0, #1 + ldrb r0, [r7, #0x14] + cmp r2, r0 + bne _080913D4 + ldr r1, _08091430 @ =gUnk_081222B8 + adds r0, r2, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r3, [r4, #0x2e] + adds r0, r0, r3 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + adds r0, r2, #1 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r0, r7, #0 + adds r0, #0x38 + ldrb r2, [r0] + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_080002D4 + subs r0, #0xf + cmp r0, #0x10 + bls _080913D4 + strh r6, [r7, #0x2e] + strh r5, [r7, #0x32] +_080913D4: + adds r1, r4, #0 + adds r1, #0x75 + movs r0, #1 + strb r0, [r1] + movs r0, #2 + strb r0, [r4, #0xf] +_080913E0: + ldrb r0, [r7, #0x14] + lsrs r0, r0, #1 + ldrb r3, [r4, #0xb] + cmp r0, r3 + bne _0809142A + ldr r1, _08091434 @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0xa8 + ldrb r0, [r0] + cmp r0, #0x1a + bne _0809142A + ldrb r1, [r1, #5] + movs r5, #2 + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _0809142A + ldr r0, _0809142C @ =gUnk_03001160 + adds r0, #0x5a + ldrb r1, [r0] + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _0809142A + adds r0, r4, #0 + bl sub_0809153C + adds r1, r4, #0 + adds r1, #0x75 + ldrb r0, [r1] + cmp r0, #1 + bne _0809142A + strb r5, [r1] + movs r0, #0xcf + lsls r0, r0, #1 + bl sub_08004488 +_0809142A: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809142C: .4byte gUnk_03001160 +_08091430: .4byte gUnk_081222B8 +_08091434: .4byte gUnk_03003F80 + + thumb_func_start sub_08091438 +sub_08091438: @ 0x08091438 + movs r2, #0 + movs r1, #1 + strb r1, [r0, #0xc] + adds r0, #0x75 + strb r2, [r0] + bx lr + + thumb_func_start sub_08091444 +sub_08091444: @ 0x08091444 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #9 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r2] + ldr r0, [r4, #0x50] + ldrb r1, [r0, #0xb] + adds r1, #8 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08016A04 + pop {r4, pc} + + thumb_func_start sub_08091470 +sub_08091470: @ 0x08091470 + push {r4, lr} + adds r2, r0, #0 + ldr r4, [r2, #0x50] + adds r3, r4, #0 + adds r3, #0x70 + ldrh r0, [r3] + cmp r0, #7 + bhi _0809148C + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x18] + b _08091502 +_0809148C: + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + ldrh r0, [r3] + adds r1, r0, #0 + subs r1, #8 + movs r0, #7 + ands r1, r0 + ldrb r3, [r2, #0xb] + cmp r3, #1 + beq _080914C8 + cmp r3, #1 + bgt _080914B4 + cmp r3, #0 + beq _080914BE + b _080914E2 +_080914B4: + cmp r3, #2 + beq _080914D0 + cmp r3, #3 + beq _080914DA + b _080914E2 +_080914BE: + ldrh r0, [r4, #0x32] + subs r0, r0, r1 + subs r0, #0x11 + strh r0, [r2, #0x32] + b _080914E2 +_080914C8: + ldrh r0, [r4, #0x2e] + adds r0, r1, r0 + adds r0, #0x11 + b _080914E0 +_080914D0: + ldrh r0, [r4, #0x32] + adds r0, r1, r0 + adds r0, #0x11 + strh r0, [r2, #0x32] + b _080914E2 +_080914DA: + ldrh r0, [r4, #0x2e] + subs r0, r0, r1 + subs r0, #0x11 +_080914E0: + strh r0, [r2, #0x2e] +_080914E2: + adds r0, r4, #0 + adds r0, #0x70 + ldrh r0, [r0] + subs r0, #8 + lsls r0, r0, #0xc + lsrs r1, r0, #0x10 + ldrb r0, [r2, #0x14] + cmp r1, r0 + beq _08091502 + strb r1, [r2, #0x14] + lsls r1, r1, #2 + adds r1, r1, r3 + adds r1, #8 + adds r0, r2, #0 + bl sub_08004260 +_08091502: + pop {r4, pc} + + thumb_func_start sub_08091504 +sub_08091504: @ 0x08091504 + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0xb] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08016A04 + pop {r4, pc} + + thumb_func_start sub_0809153C +sub_0809153C: @ 0x0809153C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + adds r5, r0, #0 + ldr r6, _080915A8 @ =gUnk_03001160 + ldr r1, _080915AC @ =gUnk_081222C0 + ldrb r0, [r5, #0xb] + adds r0, r0, r1 + ldrb r0, [r0] + mov r8, r0 + adds r0, r5, #0 + adds r0, #0x76 + adds r1, r5, #0 + adds r1, #0x70 + ldrh r0, [r0] + ldrh r1, [r1] + cmp r0, r1 + bls _08091656 + ldrh r4, [r6, #0x2e] + ldrh r0, [r6, #0x32] + mov sb, r0 + movs r2, #0x24 + ldrsh r1, [r5, r2] + adds r0, r6, #0 + mov r2, r8 + str r3, [sp] + bl sub_080044AE + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + ldrh r2, [r6, #0x2e] + movs r7, #0x2e + ldrsh r0, [r6, r7] + ldr r3, [sp] + cmp r4, r0 + bne _08091596 + mov r1, sb + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + movs r7, #0x32 + ldrsh r1, [r6, r7] + cmp r0, r1 + beq _08091656 +_08091596: + ldrb r0, [r5, #0xb] + cmp r0, #1 + beq _080915CA + cmp r0, #1 + bgt _080915B0 + cmp r0, #0 + beq _080915BA + b _080915E0 + .align 2, 0 +_080915A8: .4byte gUnk_03001160 +_080915AC: .4byte gUnk_081222C0 +_080915B0: + cmp r0, #2 + beq _080915CE + cmp r0, #3 + beq _080915DA + b _080915E0 +_080915BA: + ldrh r1, [r6, #0x32] + mov r2, sb + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + subs r1, r1, r0 + lsls r1, r1, #0x10 + lsrs r3, r1, #0x10 + b _080915E0 +_080915CA: + subs r0, r4, r2 + b _080915DC +_080915CE: + ldrh r1, [r6, #0x32] + mov r7, sb + lsls r0, r7, #0x10 + asrs r0, r0, #0x10 + subs r0, r0, r1 + b _080915DC +_080915DA: + subs r0, r2, r4 +_080915DC: + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 +_080915E0: + lsls r2, r3, #0x18 + ldr r3, _0809163C @ =gUnk_080C9160 + mov r1, r8 + lsls r0, r1, #4 + adds r0, r0, r3 + movs r7, #0 + ldrsh r0, [r0, r7] + asrs r2, r2, #0x10 + adds r1, r0, #0 + muls r1, r2, r1 + ldr r0, [r5, #0x2c] + adds r0, r0, r1 + str r0, [r5, #0x2c] + mov r1, r8 + lsls r0, r1, #4 + adds r0, #0x80 + adds r0, r0, r3 + movs r7, #0 + ldrsh r0, [r0, r7] + adds r1, r0, #0 + muls r1, r2, r1 + ldr r0, [r5, #0x30] + subs r0, r0, r1 + str r0, [r5, #0x30] + adds r0, r5, #0 + bl sub_08091660 + adds r0, r5, #0 + adds r0, #0x76 + adds r1, r5, #0 + adds r1, #0x70 + ldrh r0, [r0] + ldrh r1, [r1] + cmp r0, r1 + bhi _08091640 + movs r0, #0x86 + lsls r0, r0, #1 + bl sub_08004488 + adds r0, r5, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + b _08091656 + .align 2, 0 +_0809163C: .4byte gUnk_080C9160 +_08091640: + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08091656 + movs r0, #0x10 + strb r0, [r5, #0xf] + adds r0, #0xff + bl sub_08004488 +_08091656: + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08091660 +sub_08091660: @ 0x08091660 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + cmp r0, #1 + beq _08091686 + cmp r0, #1 + bgt _08091674 + cmp r0, #0 + beq _0809167E + b _080916AA +_08091674: + cmp r0, #2 + beq _08091690 + cmp r0, #3 + beq _0809169A + b _080916AA +_0809167E: + adds r1, r4, #0 + adds r1, #0x82 + ldrh r0, [r4, #0x32] + b _080916A0 +_08091686: + adds r0, r4, #0 + adds r0, #0x80 + ldrh r0, [r0] + ldrh r1, [r4, #0x2e] + b _080916A2 +_08091690: + adds r0, r4, #0 + adds r0, #0x82 + ldrh r0, [r0] + ldrh r1, [r4, #0x32] + b _080916A2 +_0809169A: + adds r1, r4, #0 + adds r1, #0x80 + ldrh r0, [r4, #0x2e] +_080916A0: + ldrh r1, [r1] +_080916A2: + subs r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x70 + strh r0, [r1] +_080916AA: + adds r5, r4, #0 + adds r5, #0x86 + ldrh r0, [r5] + bl sub_0807CBE4 + cmp r0, #0 + beq _080916C8 + adds r0, r4, #0 + adds r0, #0x70 + ldrh r0, [r0] + cmp r0, #0 + bne _080916C8 + ldrh r0, [r5] + bl sub_0807CD48 +_080916C8: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080916CC +sub_080916CC: @ 0x080916CC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080916E8 @ =gUnk_081223A8 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r4, #0x41 + movs r0, #0 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_080916E8: .4byte gUnk_081223A8 + + thumb_func_start sub_080916EC +sub_080916EC: @ 0x080916EC + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + ldrb r0, [r6, #0xe] + lsls r0, r0, #3 + ldr r1, _080917C8 @ =gUnk_030010EC + adds r7, r0, r1 + adds r0, r6, #0 + adds r0, #0x84 + str r7, [r0] + ldr r0, _080917CC @ =gUnk_03000BF0 + ldrb r0, [r0, #5] + ldrb r1, [r7, #4] + cmp r0, r1 + bne _08091716 + ldr r0, _080917D0 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + lsls r1, r1, #5 + ands r0, r1 + cmp r0, #0 + beq _0809171A +_08091716: + bl sub_0805E780 +_0809171A: + ldr r4, _080917CC @ =gUnk_03000BF0 + ldrh r1, [r7] + movs r5, #0x3f + adds r0, r5, #0 + ands r0, r1 + lsls r0, r0, #4 + ldrh r2, [r4, #6] + adds r0, r0, r2 + adds r0, #8 + strh r0, [r6, #0x2e] + ldrh r1, [r7] + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r1 + lsrs r0, r0, #2 + ldrh r3, [r4, #8] + adds r0, r0, r3 + adds r0, #8 + strh r0, [r6, #0x32] + ldrb r0, [r7, #5] + strb r0, [r6, #0x14] + ldrb r0, [r7, #6] + strb r0, [r6, #0xb] + movs r2, #1 + strb r2, [r6, #0xc] + ldr r0, _080917D4 @ =gUnk_080FD310 + str r0, [r6, #0x48] + ldrb r1, [r6, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r6, #0x10] + adds r0, r6, #0 + adds r0, #0x3f + strb r2, [r0] + adds r1, r6, #0 + adds r1, #0x3c + movs r0, #0x47 + strb r0, [r1] + adds r1, #4 + movs r0, #0x44 + strb r0, [r1] + subs r1, #5 + movs r0, #0x80 + strb r0, [r1] + ldrb r0, [r6, #0x14] + lsls r0, r0, #3 + strb r0, [r6, #0x15] + movs r0, #0xe0 + lsls r0, r0, #3 + strh r0, [r6, #0x24] + adds r2, r6, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x18 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r6, #0x14] + adds r1, #4 + ldrb r0, [r6, #0xb] + adds r1, r1, r0 + adds r0, r6, #0 + bl sub_080042AC + ldr r0, _080917D8 @ =0x00004022 + movs r2, #0x2e + ldrsh r1, [r6, r2] + ldrh r2, [r4, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r5 + movs r3, #0x32 + ldrsh r2, [r6, r3] + ldrh r3, [r4, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r5 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r6, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080917C8: .4byte gUnk_030010EC +_080917CC: .4byte gUnk_03000BF0 +_080917D0: .4byte gUnk_03003F80 +_080917D4: .4byte gUnk_080FD310 +_080917D8: .4byte 0x00004022 + + thumb_func_start sub_080917DC +sub_080917DC: @ 0x080917DC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x1d + bne _08091810 + movs r0, #0xa8 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + movs r0, #7 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x14] + adds r1, #4 + ldrb r0, [r4, #0xb] + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_080042AC + ldr r0, _0809180C @ =0x0000013B + bl sub_080A3268 + b _080918A0 + .align 2, 0 +_0809180C: .4byte 0x0000013B +_08091810: + adds r0, r4, #0 + bl sub_0800445C + cmp r0, #0 + beq _0809184A + ldr r2, _08091840 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + ldr r1, _08091844 @ =0x00040080 + ands r0, r1 + cmp r0, #0 + bne _08091848 + ldrb r0, [r2, #0x1c] + cmp r0, #0 + bne _08091848 + ldrb r0, [r2, #5] + cmp r0, #0 + bne _08091848 + ldrb r0, [r2, #2] + cmp r0, #0 + bne _08091848 + ldrb r0, [r4, #0xe] + adds r0, #1 + b _0809184A + .align 2, 0 +_08091840: .4byte gUnk_03003F80 +_08091844: .4byte 0x00040080 +_08091848: + movs r0, #0 +_0809184A: + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _0809189C + ldrb r0, [r4, #0xe] + cmp r0, #8 + bls _080918A0 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldr r2, _08091894 @ =gUnk_03003F80 + movs r0, #0x81 + strb r0, [r2, #2] + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x13 + orrs r0, r1 + str r0, [r2, #0x30] + ldr r1, _08091898 @ =gUnk_03001160 + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r1, #0x20] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r1, #0x24] + ldrb r2, [r1, #0x10] + movs r0, #0x7f + ands r0, r2 + strb r0, [r1, #0x10] + bl sub_08077B2C + bl sub_0807A108 + movs r0, #0x7c + bl sub_080A3268 + b _080918A0 + .align 2, 0 +_08091894: .4byte gUnk_03003F80 +_08091898: .4byte gUnk_03001160 +_0809189C: + movs r0, #0 + strb r0, [r4, #0xe] +_080918A0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080918A4 +sub_080918A4: @ 0x080918A4 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08091964 @ =gUnk_03001160 + adds r1, r5, #0 + movs r2, #2 + movs r3, #2 + bl sub_080041A0 + cmp r0, #0 + beq _08091974 + ldrh r0, [r4, #0x2e] + strh r0, [r5, #0x2e] + ldrh r0, [r4, #0x32] + strh r0, [r5, #0x32] + movs r0, #0x36 + ldrsh r1, [r5, r0] + movs r0, #0x10 + rsbs r0, r0, #0 + cmp r1, r0 + ble _0809197E + ldr r0, [r5, #0x20] + cmp r0, #0 + bge _080919A4 + ldrb r0, [r4, #0x14] + lsls r0, r0, #1 + strb r0, [r5, #0x14] + ldr r2, _08091968 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x13 + eors r0, r1 + movs r1, #0x80 + lsls r1, r1, #5 + orrs r0, r1 + str r0, [r2, #0x30] + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #1 + strb r0, [r4, #0xf] + ldrb r0, [r4, #0x10] + movs r2, #0x20 + orrs r0, r2 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x97 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x3c + ldrb r0, [r0] + adds r0, #1 + subs r1, #3 + orrs r0, r2 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x3b + ldrb r0, [r0] + adds r2, r4, #0 + adds r2, #0x3b + strb r0, [r2] + adds r1, #4 + movs r0, #0x18 + strb r0, [r1] + adds r1, #4 + movs r0, #8 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0801766C + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _0809196C @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r5, #0x32 + ldrsh r1, [r4, r5] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_0807BA8C + ldr r0, _08091970 @ =0x00000137 + bl sub_080A3268 + b _0809197E + .align 2, 0 +_08091964: .4byte gUnk_03001160 +_08091968: .4byte gUnk_03003F80 +_0809196C: .4byte gUnk_03000BF0 +_08091970: .4byte 0x00000137 +_08091974: + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080045C4 + strb r0, [r5, #0x15] +_0809197E: + ldr r3, _080919A8 @ =gUnk_03001160 + ldr r0, [r3, #0x20] + cmp r0, #0 + bge _080919A4 + adds r0, r4, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + subs r1, #1 + adds r3, #0x29 + movs r0, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080919A4: + pop {r4, r5, pc} + .align 2, 0 +_080919A8: .4byte gUnk_03001160 + + thumb_func_start sub_080919AC +sub_080919AC: @ 0x080919AC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + ldr r1, _080919D4 @ =gUnk_03000BF0 + movs r0, #0 + mov r8, r0 + movs r0, #7 + strb r0, [r1, #0xe] + ldr r0, _080919D8 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + lsls r1, r1, #5 + ands r0, r1 + cmp r0, #0 + bne _080919DC + movs r0, #1 + strb r0, [r5, #0xc] + b _08091C04 + .align 2, 0 +_080919D4: .4byte gUnk_03000BF0 +_080919D8: .4byte gUnk_03003F80 +_080919DC: + ldr r4, _08091A14 @ =gUnk_03001160 + adds r6, r4, #0 + adds r6, #0x5a + ldrb r1, [r6] + movs r7, #0xf + adds r0, r7, #0 + ands r0, r1 + cmp r0, #0 + bne _08091A22 + ldrb r1, [r5, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldrb r1, [r6] + movs r0, #0xf0 + ands r0, r1 + cmp r0, #0x10 + bne _08091A18 + adds r1, r5, #0 + adds r1, #0x63 + movs r0, #1 + strb r0, [r1] + b _08091C04 + .align 2, 0 +_08091A14: .4byte gUnk_03001160 +_08091A18: + adds r0, r5, #0 + adds r0, #0x63 + mov r1, r8 + strb r1, [r0] + b _08091C04 +_08091A22: + ldrb r0, [r5, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + mov r0, r8 + strh r0, [r4, #0x24] + adds r0, r5, #0 + bl sub_0806F69C + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r5, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + subs r1, #1 + adds r3, r4, #0 + adds r3, #0x29 + movs r0, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + adds r0, r5, #0 + bl sub_08091DDC + cmp r0, #0 + beq _08091A68 + b _08091C04 +_08091A68: + ldr r0, _08091AD8 @ =gUnk_030010A0 + ldr r0, [r0] + ands r0, r7 + cmp r0, #0 + bne _08091A7A + movs r0, #0x9c + lsls r0, r0, #1 + bl sub_080A3268 +_08091A7A: + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08091A92 + movs r0, #0x7b + bl sub_080A3268 + movs r0, #0x3c + strb r0, [r5, #0xf] +_08091A92: + ldr r2, _08091ADC @ =gUnk_081223C8 + ldrb r0, [r5, #0x14] + lsls r0, r0, #1 + adds r1, r0, r2 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, #1 + adds r0, r0, r2 + movs r2, #0 + ldrsb r2, [r0, r2] + adds r0, r5, #0 + bl sub_080002B4 + adds r4, r0, #0 + ldr r1, _08091AE0 @ =gUnk_081223D8 + ldrb r0, [r5, #0x14] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_08007DD6 + cmp r0, #0 + bne _08091AE4 + ldrb r0, [r5, #0x15] + movs r1, #0x10 + eors r0, r1 + strb r0, [r5, #0x15] + ldrb r0, [r5, #0x14] + movs r1, #2 + eors r0, r1 + strb r0, [r5, #0x14] + b _08091BD8 + .align 2, 0 +_08091AD8: .4byte gUnk_030010A0 +_08091ADC: .4byte gUnk_081223C8 +_08091AE0: .4byte gUnk_081223D8 +_08091AE4: + adds r0, r4, #0 + subs r0, #0x64 + cmp r0, #0xb + bhi _08091BD8 + lsls r0, r0, #2 + ldr r1, _08091AF8 @ =_08091AFC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08091AF8: .4byte _08091AFC +_08091AFC: @ jump table + .4byte _08091B2C @ case 0 + .4byte _08091BD8 @ case 1 + .4byte _08091BD8 @ case 2 + .4byte _08091BB8 @ case 3 + .4byte _08091BB8 @ case 4 + .4byte _08091BB8 @ case 5 + .4byte _08091BB8 @ case 6 + .4byte _08091BD8 @ case 7 + .4byte _08091BB8 @ case 8 + .4byte _08091BB8 @ case 9 + .4byte _08091BB8 @ case 10 + .4byte _08091BB8 @ case 11 +_08091B2C: + ldrb r1, [r5, #0x10] + movs r0, #0xdf + ands r0, r1 + strb r0, [r5, #0x10] + adds r1, r5, #0 + adds r1, #0x3f + movs r0, #1 + strb r0, [r1] + subs r1, #3 + movs r0, #0x47 + strb r0, [r1] + adds r1, #4 + movs r0, #0x44 + strb r0, [r1] + subs r1, #5 + movs r4, #0x80 + movs r0, #0x80 + strb r0, [r1] + movs r0, #6 + strb r0, [r5, #0xc] + adds r0, r5, #0 + bl sub_08017744 + ldr r2, _08091BAC @ =gUnk_03003F80 + movs r0, #0x41 + strb r0, [r2, #2] + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #5 + eors r0, r1 + movs r1, #0x80 + lsls r1, r1, #0x13 + orrs r0, r1 + str r0, [r2, #0x30] + ldr r1, _08091BB0 @ =gUnk_03001160 + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r1, #0x20] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r1, #0x24] + ldrb r0, [r5, #0x14] + lsls r0, r0, #1 + strb r0, [r1, #0x14] + ldrb r0, [r5, #0x15] + strb r0, [r1, #0x15] + ldrb r0, [r1, #0x10] + orrs r4, r0 + strb r4, [r1, #0x10] + adds r0, r5, #0 + bl sub_08004168 + ldrb r1, [r5, #0x14] + adds r1, #0xc + adds r0, r5, #0 + bl sub_080042AC + movs r0, #0x78 + bl sub_080A3268 + ldr r0, _08091BB4 @ =0x00000139 + bl sub_080A3268 + b _08091C04 + .align 2, 0 +_08091BAC: .4byte gUnk_03003F80 +_08091BB0: .4byte gUnk_03001160 +_08091BB4: .4byte 0x00000139 +_08091BB8: + adds r0, r5, #0 + bl sub_080002B8 + cmp r4, r0 + bne _08091BD8 + adds r0, r5, #0 + bl sub_08091C0C + ldr r1, _08091BD4 @ =gUnk_03001160 + ldrb r0, [r5, #0x14] + lsls r0, r0, #1 + strb r0, [r1, #0x14] + b _08091C04 + .align 2, 0 +_08091BD4: .4byte gUnk_03001160 +_08091BD8: + ldr r2, _08091BF8 @ =gUnk_03001160 + ldrb r0, [r5, #0x14] + lsls r1, r0, #1 + strb r1, [r2, #0x14] + adds r1, r5, #0 + adds r1, #0x58 + ldrb r1, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r1, r0 + bne _08091BFC + adds r0, r5, #0 + bl sub_080042B8 + b _08091C04 + .align 2, 0 +_08091BF8: .4byte gUnk_03001160 +_08091BFC: + ldrb r1, [r5, #0x14] + adds r0, r5, #0 + bl sub_080042AC +_08091C04: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08091C0C +sub_08091C0C: @ 0x08091C0C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004168 + ldr r1, _08091C30 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_0806FA24 + adds r0, r4, #0 + bl sub_080002B8 + cmp r0, #0x68 + beq _08091C46 + cmp r0, #0x68 + bhi _08091C34 + cmp r0, #0x67 + beq _08091C3E + b _08091C80 + .align 2, 0 +_08091C30: .4byte gUnk_03001160 +_08091C34: + cmp r0, #0x69 + beq _08091C4E + cmp r0, #0x6a + beq _08091C66 + b _08091C80 +_08091C3E: + ldrb r0, [r4, #0x15] + cmp r0, #0x18 + beq _08091C54 + b _08091C76 +_08091C46: + ldrb r0, [r4, #0x15] + cmp r0, #8 + beq _08091C6C + b _08091C5C +_08091C4E: + ldrb r0, [r4, #0x15] + cmp r0, #8 + bne _08091C5C +_08091C54: + movs r0, #0 + strb r0, [r4, #0x15] + strb r0, [r4, #0x14] + b _08091C86 +_08091C5C: + movs r0, #0x18 + strb r0, [r4, #0x15] + movs r0, #3 + strb r0, [r4, #0x14] + b _08091C86 +_08091C66: + ldrb r0, [r4, #0x15] + cmp r0, #0x18 + bne _08091C76 +_08091C6C: + movs r0, #0x10 + strb r0, [r4, #0x15] + movs r0, #2 + strb r0, [r4, #0x14] + b _08091C86 +_08091C76: + movs r0, #8 + strb r0, [r4, #0x15] + movs r0, #1 + strb r0, [r4, #0x14] + b _08091C86 +_08091C80: + movs r0, #3 + strb r0, [r4, #0xc] + b _08091C92 +_08091C86: + movs r0, #3 + strb r0, [r4, #0xc] + ldr r1, _08091C94 @ =gUnk_03001160 + ldrb r0, [r4, #0x14] + lsls r0, r0, #1 + strb r0, [r1, #0x14] +_08091C92: + pop {r4, pc} + .align 2, 0 +_08091C94: .4byte gUnk_03001160 + + thumb_func_start sub_08091C98 +sub_08091C98: @ 0x08091C98 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0806F69C + ldr r5, _08091CC0 @ =gUnk_03001160 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FA24 + ldr r1, _08091CC4 @ =gUnk_03000BF0 + ldrh r0, [r1] + cmp r0, #0 + bne _08091CBE + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0xe0 + lsls r0, r0, #3 + strh r0, [r4, #0x24] + str r5, [r1, #0x30] +_08091CBE: + pop {r4, r5, pc} + .align 2, 0 +_08091CC0: .4byte gUnk_03001160 +_08091CC4: .4byte gUnk_03000BF0 + + thumb_func_start sub_08091CC8 +sub_08091CC8: @ 0x08091CC8 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r2, _08091D58 @ =gUnk_03003F80 + ldrb r0, [r2, #2] + cmp r0, #0 + bne _08091D64 + movs r0, #1 + strb r0, [r6, #0xc] + ldrb r0, [r6, #0x15] + movs r1, #0x10 + eors r0, r1 + strb r0, [r6, #0x15] + ldrb r0, [r6, #0x14] + movs r1, #2 + eors r0, r1 + strb r0, [r6, #0x14] + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x13 + eors r0, r1 + str r0, [r2, #0x30] + adds r0, r6, #0 + adds r0, #0x84 + ldr r4, [r0] + movs r0, #0x2e + ldrsh r1, [r6, r0] + ldr r5, _08091D5C @ =gUnk_03000BF0 + ldrh r0, [r5, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r2, #0x32 + ldrsh r0, [r6, r2] + ldrh r2, [r5, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + strh r1, [r4] + ldrb r0, [r5, #5] + strb r0, [r4, #4] + ldrb r0, [r6, #0x14] + strb r0, [r4, #5] + ldrb r1, [r6, #0x14] + adds r1, #0x10 + adds r0, r6, #0 + bl sub_080042AC + ldr r0, _08091D60 @ =0x00004022 + movs r3, #0x2e + ldrsh r1, [r6, r3] + ldrh r2, [r5, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r3, #0x32 + ldrsh r2, [r6, r3] + ldrh r3, [r5, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r6, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + b _08091D8A + .align 2, 0 +_08091D58: .4byte gUnk_03003F80 +_08091D5C: .4byte gUnk_03000BF0 +_08091D60: .4byte 0x00004022 +_08091D64: + adds r0, r6, #0 + bl sub_080042B8 + ldr r3, _08091D8C @ =gUnk_03001160 + adds r0, r6, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + subs r1, #1 + adds r3, #0x29 + movs r0, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_08091D8A: + pop {r4, r5, r6, pc} + .align 2, 0 +_08091D8C: .4byte gUnk_03001160 + + thumb_func_start sub_08091D90 +sub_08091D90: @ 0x08091D90 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x20] + cmp r0, #0 + bge _08091DA0 + adds r0, r4, #0 + bl sub_080042B8 +_08091DA0: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08091DD8 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08091DD8 + ldrb r1, [r4, #0xb] + movs r0, #4 + eors r1, r0 + strb r1, [r4, #0xb] + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + strb r1, [r0, #6] + movs r0, #0x9e + lsls r0, r0, #1 + bl sub_080A3268 +_08091DD8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08091DDC +sub_08091DDC: @ 0x08091DDC + push {r4, lr} + adds r4, r0, #0 + ldr r2, _08091E30 @ =gUnk_081223D0 + ldrb r0, [r4, #0x14] + lsls r0, r0, #1 + adds r1, r0, r2 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, #1 + adds r0, r0, r2 + movs r2, #0 + ldrsb r2, [r0, r2] + adds r0, r4, #0 + bl sub_080002CC + cmp r0, #0xff + bne _08091E5C + ldr r0, _08091E34 @ =gUnk_03001160 + ldrb r1, [r4, #0x14] + bl sub_0807BD14 + cmp r0, #0 + beq _08091E5C + ldrb r1, [r4, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r4, #0x11] + movs r0, #5 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0x15] + cmp r0, #8 + beq _08091E40 + cmp r0, #8 + bgt _08091E38 + cmp r0, #0 + beq _08091E40 + b _08091E44 + .align 2, 0 +_08091E30: .4byte gUnk_081223D0 +_08091E34: .4byte gUnk_03001160 +_08091E38: + cmp r0, #0x10 + beq _08091E40 + cmp r0, #0x18 + bne _08091E44 +_08091E40: + movs r0, #0xa0 + strh r0, [r4, #0x24] +_08091E44: + ldr r0, _08091E54 @ =gUnk_03001160 + ldrb r1, [r4, #0x15] + strb r1, [r0, #0x15] + ldr r0, _08091E58 @ =gUnk_03000BF0 + str r4, [r0, #0x30] + movs r0, #1 + b _08091E5E + .align 2, 0 +_08091E54: .4byte gUnk_03001160 +_08091E58: .4byte gUnk_03000BF0 +_08091E5C: + movs r0, #0 +_08091E5E: + pop {r4, pc} + + thumb_func_start sub_08091E60 +sub_08091E60: @ 0x08091E60 + push {lr} + ldr r2, _08091E74 @ =gUnk_08122598 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08091E74: .4byte gUnk_08122598 + + thumb_func_start sub_08091E78 +sub_08091E78: @ 0x08091E78 + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _08091E96 + movs r0, #0x2d + strb r0, [r4, #0xe] +_08091E96: + ldrb r1, [r4, #0x1b] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x1b] + ldrb r1, [r4, #0xb] + adds r0, r4, #0 + bl sub_08004260 + ldr r1, _08091EBC @ =gUnk_08122590 + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + bl sub_080A3268 + pop {r4, pc} + .align 2, 0 +_08091EBC: .4byte gUnk_08122590 + + thumb_func_start sub_08091EC0 +sub_08091EC0: @ 0x08091EC0 + push {r4, lr} + adds r4, r0, #0 + ldr r1, [r4, #0x50] + cmp r1, #0 + beq _08091ED6 + ldrh r0, [r1, #0x2e] + strh r0, [r4, #0x2e] + ldrh r0, [r1, #0x32] + strh r0, [r4, #0x32] + ldrh r0, [r1, #0x36] + strh r0, [r4, #0x36] +_08091ED6: + ldrb r0, [r4, #0xb] + cmp r0, #2 + beq _08091EEC + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08091EEC + bl sub_0805E780 +_08091EEC: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_08091EF4 +sub_08091EF4: @ 0x08091EF4 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #1 + bhi _08091F0E + ldr r0, _08091F10 @ =gUnk_08122604 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 +_08091F0E: + pop {pc} + .align 2, 0 +_08091F10: .4byte gUnk_08122604 + + thumb_func_start sub_08091F14 +sub_08091F14: @ 0x08091F14 + push {r4, r5, lr} + adds r4, r0, #0 + movs r2, #0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r0, [r3] + movs r1, #7 + orrs r0, r1 + strb r0, [r3] + adds r0, r4, #0 + adds r0, #0x58 + strb r2, [r0] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _08091FEC @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r5, r4, #0 + adds r5, #0x70 + strh r1, [r5] + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _08091FEA + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #6 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #0xd1 + lsls r0, r0, #1 + ldrh r1, [r5] + subs r1, #0x41 + adds r4, #0x38 + ldrb r2, [r4] + bl sub_0807B314 + ldr r0, _08091FF0 @ =0x000001A3 + ldrh r1, [r5] + subs r1, #0x40 + ldrb r2, [r4] + bl sub_0807B314 + movs r0, #0xd2 + lsls r0, r0, #1 + ldrh r1, [r5] + subs r1, #0x3f + ldrb r2, [r4] + bl sub_0807B314 + ldr r0, _08091FF4 @ =0x000001A5 + ldrh r1, [r5] + subs r1, #1 + ldrb r2, [r4] + bl sub_0807B314 + movs r0, #0xd3 + lsls r0, r0, #1 + ldrh r1, [r5] + ldrb r2, [r4] + bl sub_0807B314 + ldr r0, _08091FF8 @ =0x000001A7 + ldrh r1, [r5] + adds r1, #1 + ldrb r2, [r4] + bl sub_0807B314 + movs r0, #0xd4 + lsls r0, r0, #1 + ldrh r1, [r5] + adds r1, #0x3f + ldrb r2, [r4] + bl sub_0807B314 + ldr r0, _08091FFC @ =0x000001A9 + ldrh r1, [r5] + adds r1, #0x40 + ldrb r2, [r4] + bl sub_0807B314 + movs r0, #0xd5 + lsls r0, r0, #1 + ldrh r1, [r5] + adds r1, #0x41 + ldrb r2, [r4] + bl sub_0807B314 +_08091FEA: + pop {r4, r5, pc} + .align 2, 0 +_08091FEC: .4byte gUnk_03000BF0 +_08091FF0: .4byte 0x000001A3 +_08091FF4: .4byte 0x000001A5 +_08091FF8: .4byte 0x000001A7 +_08091FFC: .4byte 0x000001A9 + + thumb_func_start sub_08092000 +sub_08092000: @ 0x08092000 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x70 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002B0 + movs r1, #0xd3 + lsls r1, r1, #1 + cmp r0, r1 + bne _08092034 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #6 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 +_08092034: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08092038 +sub_08092038: @ 0x08092038 + push {lr} + ldr r2, _0809204C @ =gUnk_0812260C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809204C: .4byte gUnk_0812260C + + thumb_func_start sub_08092050 +sub_08092050: @ 0x08092050 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0809207A + movs r0, #3 + strb r0, [r6, #0xc] + ldrh r0, [r6, #0x2e] + adds r0, #2 + strh r0, [r6, #0x2e] + adds r0, r6, #0 + bl sub_0809223C + adds r0, r6, #0 + movs r1, #1 + bl sub_080042AC + b _08092148 +_0809207A: + ldrb r0, [r6, #0xd] + cmp r0, #0 + bne _08092138 + movs r1, #1 + strb r1, [r6, #0xd] + adds r0, r6, #0 + adds r0, #0x38 + strb r1, [r0] + adds r2, r6, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r6, #0x2e] + adds r0, #2 + strh r0, [r6, #0x2e] + adds r0, r6, #0 + bl sub_08016A04 + movs r0, #0x2e + ldrsh r2, [r6, r0] + ldr r3, _08092130 @ =gUnk_03000BF0 + ldrh r0, [r3, #6] + subs r2, r2, r0 + asrs r2, r2, #4 + movs r4, #0x3f + ands r2, r4 + movs r1, #0x32 + ldrsh r0, [r6, r1] + ldrh r1, [r3, #8] + adds r1, #8 + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r4 + lsls r0, r0, #6 + orrs r2, r0 + adds r5, r6, #0 + adds r5, #0x70 + strh r2, [r5] + movs r0, #0x2e + ldrsh r2, [r6, r0] + ldrh r0, [r3, #6] + subs r2, r2, r0 + asrs r2, r2, #4 + ands r2, r4 + movs r1, #0x32 + ldrsh r0, [r6, r1] + ldrh r1, [r3, #8] + subs r1, #8 + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r4 + lsls r0, r0, #6 + orrs r2, r0 + adds r7, r6, #0 + adds r7, #0x72 + strh r2, [r7] + ldrh r0, [r5] + movs r1, #1 + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x74 + strh r0, [r1] + ldrh r0, [r7] + movs r1, #1 + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x76 + strh r0, [r1] + ldr r4, _08092134 @ =0x00004022 + ldrh r1, [r5] + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldrh r1, [r7] + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + adds r0, r6, #0 + movs r1, #0 + bl sub_080042AC + b _08092148 + .align 2, 0 +_08092130: .4byte gUnk_03000BF0 +_08092134: .4byte 0x00004022 +_08092138: + movs r0, #1 + strb r0, [r6, #0xc] + adds r0, r6, #0 + bl sub_080921BC + adds r0, r6, #0 + bl sub_080921F0 +_08092148: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0809214C +sub_0809214C: @ 0x0809214C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _08092160 + movs r0, #2 + strb r0, [r4, #0xc] +_08092160: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08092164 +sub_08092164: @ 0x08092164 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080921B6 + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x74 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x70 + ldrh r1, [r1] + movs r2, #1 + bl sub_0800015E + adds r0, r4, #0 + adds r0, #0x76 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x72 + ldrh r1, [r1] + movs r2, #1 + bl sub_0800015E + adds r0, r4, #0 + bl sub_08092214 + adds r0, r4, #0 + bl sub_0809223C + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC +_080921B6: + pop {r4, pc} + + thumb_func_start nullsub_118 +nullsub_118: @ 0x080921B8 + bx lr + .align 2, 0 + + thumb_func_start sub_080921BC +sub_080921BC: @ 0x080921BC + push {lr} + adds r2, r0, #0 + ldr r1, _080921DC @ =gUnk_030011E8 + ldr r0, _080921E0 @ =0x000029F8 + adds r3, r1, r0 +_080921C6: + ldrb r0, [r1, #8] + cmp r0, #6 + bne _080921E4 + ldrb r0, [r1, #9] + cmp r0, #0x6f + bne _080921E4 + ldrb r0, [r1, #0xa] + cmp r0, #2 + bne _080921E4 + str r1, [r2, #0x54] + b _080921EE + .align 2, 0 +_080921DC: .4byte gUnk_030011E8 +_080921E0: .4byte 0x000029F8 +_080921E4: + adds r1, #0x88 + cmp r1, r3 + blo _080921C6 + movs r0, #0 + str r0, [r2, #0x54] +_080921EE: + pop {pc} + + thumb_func_start sub_080921F0 +sub_080921F0: @ 0x080921F0 + push {lr} + ldr r2, [r0, #0x54] + cmp r2, #0 + beq _08092212 + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + adds r3, r2, #0 + adds r3, #0x29 + ldrb r0, [r3] + movs r1, #7 + orrs r0, r1 + strb r0, [r3] + adds r0, r2, #0 + bl sub_08016A04 +_08092212: + pop {pc} + + thumb_func_start sub_08092214 +sub_08092214: @ 0x08092214 + push {lr} + ldr r2, [r0, #0x54] + cmp r2, #0 + beq _0809223A + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + subs r0, #0xa + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r3] + adds r0, r2, #0 + bl sub_08016A04 +_0809223A: + pop {pc} + + thumb_func_start sub_0809223C +sub_0809223C: @ 0x0809223C + push {lr} + adds r2, r0, #0 + adds r2, #0x38 + movs r1, #2 + strb r1, [r2] + adds r3, r0, #0 + adds r3, #0x29 + ldrb r2, [r3] + subs r1, #0xa + ands r1, r2 + movs r2, #3 + orrs r1, r2 + strb r1, [r3] + bl sub_08016A04 + pop {pc} + + thumb_func_start sub_0809225C +sub_0809225C: @ 0x0809225C + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xa] + cmp r0, #0 + bne _0809226E + adds r0, r1, #0 + bl sub_08092278 + b _08092274 +_0809226E: + adds r0, r1, #0 + bl sub_08092344 +_08092274: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08092278 +sub_08092278: @ 0x08092278 + push {lr} + ldr r2, _0809228C @ =gUnk_08122644 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809228C: .4byte gUnk_08122644 + + thumb_func_start sub_08092290 +sub_08092290: @ 0x08092290 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + bl sub_080925A4 + pop {pc} + + thumb_func_start sub_0809229C +sub_0809229C: @ 0x0809229C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x70 + ldrb r0, [r0] + cmp r0, #0 + beq _080922E0 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0xb0 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_08016A04 + ldr r0, [r4, #0x54] + ldrb r1, [r0, #0x14] + adds r0, r4, #0 + bl sub_080042AC + movs r0, #0xbf + lsls r0, r0, #1 + bl sub_08004488 + ldr r0, [r4, #0x54] + movs r1, #3 + bl sub_08004260 +_080922E0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080922E4 +sub_080922E4: @ 0x080922E4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x90 + lsls r1, r1, #6 + bl sub_08003FC4 + adds r2, r0, #0 + cmp r2, #0 + bne _08092322 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x70 + strb r2, [r0] + ldr r0, [r4, #0x54] + adds r0, #0x63 + strb r2, [r0] + ldr r0, [r4, #0x54] + ldrb r1, [r0, #0x14] + bl sub_08004260 + adds r0, r4, #0 + movs r1, #0x36 + movs r2, #0 + bl sub_080A29AC + b _0809233E +_08092322: + ldr r1, [r4, #0x20] + ldr r0, _08092340 @ =0x00017FFF + cmp r1, r0 + bgt _0809233E + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0809233E + adds r0, r4, #0 + bl sub_080042B8 +_0809233E: + pop {r4, pc} + .align 2, 0 +_08092340: .4byte 0x00017FFF + + thumb_func_start sub_08092344 +sub_08092344: @ 0x08092344 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0 + strb r0, [r4, #0xf] + ldr r1, _08092364 @ =gUnk_08122650 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_080926E4 + pop {r4, pc} + .align 2, 0 +_08092364: .4byte gUnk_08122650 + + thumb_func_start sub_08092368 +sub_08092368: @ 0x08092368 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xb] + strb r0, [r2, #0x14] + adds r3, r2, #0 + adds r3, #0x29 + ldrb r0, [r3] + movs r1, #7 + orrs r0, r1 + strb r0, [r3] + adds r1, r2, #0 + adds r1, #0x40 + movs r0, #0x48 + strb r0, [r1] + subs r1, #4 + movs r0, #7 + strb r0, [r1] + subs r1, #1 + movs r0, #0x81 + strb r0, [r1] + ldr r0, _0809239C @ =gUnk_080FD280 + str r0, [r2, #0x48] + adds r0, r2, #0 + bl sub_0809264C + pop {pc} + .align 2, 0 +_0809239C: .4byte gUnk_080FD280 + + thumb_func_start sub_080923A0 +sub_080923A0: @ 0x080923A0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #3 + beq _080923E2 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _080923C6 + movs r1, #1 + movs r0, #1 + strb r0, [r4, #0xd] + ldrb r0, [r4, #0x14] + eors r0, r1 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 +_080923C6: + adds r1, r4, #0 + adds r1, #0x63 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #3 + rsbs r1, r1, #0 + cmp r0, r1 + bne _080923E2 + adds r0, r4, #0 + bl sub_0809264C +_080923E2: + pop {r4, pc} + + thumb_func_start sub_080923E4 +sub_080923E4: @ 0x080923E4 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x9d + bne _080923F8 + adds r0, r4, #0 + bl sub_08092620 + b _0809241A +_080923F8: + adds r0, r4, #0 + bl sub_0809269C + cmp r0, #0 + beq _0809241A + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #0x14 + strb r0, [r4, #0xe] + ldr r0, _0809241C @ =gUnk_03003F80 + adds r0, #0x3f + movs r1, #0xfd + strb r1, [r0] +_0809241A: + pop {r4, pc} + .align 2, 0 +_0809241C: .4byte gUnk_03003F80 + + thumb_func_start sub_08092420 +sub_08092420: @ 0x08092420 + push {r4, lr} + adds r4, r0, #0 + bl sub_0809269C + cmp r0, #0 + beq _08092434 + ldr r0, _08092464 @ =gUnk_03003F80 + adds r0, #0x3f + movs r1, #0xfd + strb r1, [r0] +_08092434: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08092462 + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x72 + ldrh r1, [r0] + subs r0, #2 + movs r2, #0 + strh r1, [r0] + subs r0, #0xd + strb r2, [r0] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + ldr r0, _08092468 @ =0x0000017B + bl sub_08004488 +_08092462: + pop {r4, pc} + .align 2, 0 +_08092464: .4byte gUnk_03003F80 +_08092468: .4byte 0x0000017B + + thumb_func_start sub_0809246C +sub_0809246C: @ 0x0809246C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0809269C + adds r5, r4, #0 + adds r5, #0x70 + ldrh r0, [r5] + cmp r0, #0 + beq _08092482 + subs r0, #1 + strh r0, [r5] +_08092482: + ldrh r0, [r5] + cmp r0, #0x8c + bhi _080924DC + adds r0, r4, #0 + bl sub_08004274 + adds r3, r4, #0 + adds r3, #0x5a + ldrb r1, [r3] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _080924B8 + movs r0, #5 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x74 + ldrh r0, [r0] + strh r0, [r5] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + b _080924DC +_080924B8: + movs r2, #1 + ands r2, r1 + cmp r2, #0 + beq _080924CC + strb r0, [r3] + movs r0, #0xbe + lsls r0, r0, #1 + bl sub_08004488 + b _080924DC +_080924CC: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080924DC + strb r2, [r3] + ldr r0, _080924E0 @ =0x0000017D + bl sub_08004488 +_080924DC: + pop {r4, r5, pc} + .align 2, 0 +_080924E0: .4byte 0x0000017D + + thumb_func_start sub_080924E4 +sub_080924E4: @ 0x080924E4 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x70 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0809252C + movs r0, #6 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xb] + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #0 + strb r0, [r1] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 + ldrb r0, [r4, #0x14] + cmp r0, #0 + bne _0809252C + adds r0, r4, #0 + bl sub_0809269C +_0809252C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08092530 +sub_08092530: @ 0x08092530 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x14] + cmp r0, #0 + bne _08092544 + adds r0, r4, #0 + bl sub_0809269C + adds r5, r0, #0 + b _08092546 +_08092544: + movs r5, #0 +_08092546: + adds r0, r4, #0 + bl sub_08004274 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08092570 + movs r0, #0 + strb r0, [r2] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0xac + strb r0, [r1] + b _0809258A +_08092570: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809258A + adds r0, r4, #0 + bl sub_0809264C + cmp r5, #0 + beq _0809258A + ldr r0, _0809258C @ =gUnk_03003F80 + adds r0, #0x3f + movs r1, #0xfd + strb r1, [r0] +_0809258A: + pop {r4, r5, pc} + .align 2, 0 +_0809258C: .4byte gUnk_03003F80 + + thumb_func_start sub_08092590 +sub_08092590: @ 0x08092590 + push {lr} + adds r1, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x9d + bne _080925A2 + adds r0, r1, #0 + bl sub_08092620 +_080925A2: + pop {pc} + + thumb_func_start sub_080925A4 +sub_080925A4: @ 0x080925A4 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + ldrb r0, [r6, #0xb] + bl sub_0804B128 + adds r5, r0, #0 + ldrb r0, [r5, #9] + cmp r0, #0xff + beq _0809261A + ldr r7, _0809261C @ =gUnk_03000BF0 +_080925B8: + ldrb r2, [r5, #9] + movs r0, #0x59 + movs r1, #1 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _08092612 + movs r0, #0xff + strb r0, [r4, #0x15] + movs r0, #0 + strh r0, [r4, #0x24] + str r6, [r4, #0x50] + ldrh r0, [r7, #6] + ldrh r1, [r5, #4] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + ldrh r0, [r7, #8] + ldrh r1, [r5, #6] + adds r0, r0, r1 + strh r0, [r4, #0x32] + ldrb r1, [r5, #8] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + ldrh r0, [r5, #0xa] + adds r1, r4, #0 + adds r1, #0x72 + strh r0, [r1] + ldrh r1, [r5, #0xc] + adds r0, r4, #0 + adds r0, #0x74 + strh r1, [r0] + ldr r0, [r5] + str r0, [r4, #0x78] + adds r0, r4, #0 + bl sub_08016A04 + adds r1, r4, #0 + adds r1, #0x78 + adds r2, r4, #0 + adds r2, #0x76 + adds r0, r4, #0 + bl sub_080A2CC0 +_08092612: + adds r5, #0x10 + ldrb r0, [r5, #9] + cmp r0, #0xff + bne _080925B8 +_0809261A: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809261C: .4byte gUnk_03000BF0 + + thumb_func_start sub_08092620 +sub_08092620: @ 0x08092620 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r1, [r5, #0x50] + adds r0, r1, #0 + adds r0, #0x70 + ldrb r6, [r0] + cmp r6, #0 + bne _08092648 + movs r4, #1 + strb r4, [r0] + str r5, [r1, #0x54] + adds r0, r5, #0 + bl sub_0806FA24 + strb r4, [r5, #0xc] + strb r6, [r5, #0xd] + adds r1, r5, #0 + adds r1, #0x3f + movs r0, #0xac + strb r0, [r1] +_08092648: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0809264C +sub_0809264C: @ 0x0809264C + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x14] + movs r3, #1 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _0809266A + movs r0, #7 + strb r0, [r2, #0xc] + adds r1, r2, #0 + adds r1, #0x3f + movs r0, #0xac + strb r0, [r1] + b _08092674 +_0809266A: + movs r0, #2 + strb r0, [r2, #0xc] + adds r0, r2, #0 + adds r0, #0x3f + strb r3, [r0] +_08092674: + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + adds r1, r2, #0 + adds r1, #0x63 + movs r0, #0xfd + strb r0, [r1] + ldrb r1, [r2, #0x14] + adds r0, r2, #0 + bl sub_08004260 + pop {pc} + + thumb_func_start sub_0809269C +sub_0809269C: @ 0x0809269C + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r6, _080926D8 @ =gUnk_03003F80 + ldr r0, [r6, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080926E0 + ldr r5, _080926DC @ =gUnk_03001160 + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0x10 + movs r3, #0x10 + bl sub_080041A0 + cmp r0, #0 + beq _080926E0 + bl sub_08079F8C + cmp r0, #0 + beq _080926E0 + movs r1, #1 + strb r1, [r6, #0x14] + movs r2, #0x36 + ldrsh r0, [r5, r2] + cmp r0, #0 + bne _080926E0 + strb r1, [r4, #0xf] + movs r0, #1 + b _080926E2 + .align 2, 0 +_080926D8: .4byte gUnk_03003F80 +_080926DC: .4byte gUnk_03001160 +_080926E0: + movs r0, #0 +_080926E2: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080926E4 +sub_080926E4: @ 0x080926E4 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xf] + bl sub_080A2BE4 + ldrb r0, [r4, #0xc] + cmp r0, #1 + bne _08092700 + ldr r1, [r4, #0x50] + ldrh r0, [r4, #0x2e] + strh r0, [r1, #0x2e] + ldr r1, [r4, #0x50] + ldrh r0, [r4, #0x32] + strh r0, [r1, #0x32] +_08092700: + adds r2, r4, #0 + adds r2, #0x76 + ldrh r0, [r2] + subs r0, #1 + strh r0, [r2] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0809271A + adds r1, r4, #0 + adds r1, #0x78 + adds r0, r4, #0 + bl sub_080A2CC0 +_0809271A: + pop {r4, pc} + + thumb_func_start sub_0809271C +sub_0809271C: @ 0x0809271C + push {lr} + ldr r2, _08092730 @ =gUnk_08122780 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08092730: .4byte gUnk_08122780 + + thumb_func_start sub_08092734 +sub_08092734: @ 0x08092734 + push {lr} + ldr r2, _08092748 @ =gUnk_08122788 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08092748: .4byte gUnk_08122788 + + thumb_func_start sub_0809274C +sub_0809274C: @ 0x0809274C + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x19] + movs r5, #0x3f + adds r0, r5, #0 + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x19] + ldrh r0, [r4, #0x36] + subs r0, #8 + strh r0, [r4, #0x36] + ldrb r0, [r4, #0xb] + cmp r0, #1 + beq _0809277C + cmp r0, #2 + bne _080927A2 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_0809277C: + ldr r0, _080927A4 @ =0x00004051 + movs r2, #0x2e + ldrsh r1, [r4, r2] + ldr r3, _080927A8 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r5 + movs r6, #0x32 + ldrsh r2, [r4, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r5 + lsls r2, r2, #6 + orrs r1, r2 + movs r2, #1 + bl sub_0800015E +_080927A2: + pop {r4, r5, r6, pc} + .align 2, 0 +_080927A4: .4byte 0x00004051 +_080927A8: .4byte gUnk_03000BF0 + + thumb_func_start sub_080927AC +sub_080927AC: @ 0x080927AC + push {lr} + adds r1, r0, #0 + movs r0, #1 + strb r0, [r1, #0xc] + ldrb r0, [r1, #0xb] + strb r0, [r1, #0x1e] + ldrb r0, [r1, #0xb] + cmp r0, #0 + beq _080927C4 + cmp r0, #2 + beq _080927CA + b _080927D0 +_080927C4: + adds r1, #0x63 + movs r0, #2 + b _080927CE +_080927CA: + adds r1, #0x63 + movs r0, #0xfe +_080927CE: + strb r0, [r1] +_080927D0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080927D4 +sub_080927D4: @ 0x080927D4 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #0xff + strb r0, [r1] + ldr r0, _08092848 @ =0x00004051 + mov r8, r0 + movs r2, #0x2e + ldrsh r1, [r4, r2] + ldr r6, _0809284C @ =gUnk_03000BF0 + ldrh r0, [r6, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r5, #0x3f + ands r1, r5 + movs r2, #0x32 + ldrsh r0, [r4, r2] + ldrh r2, [r6, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r5 + lsls r0, r0, #6 + orrs r1, r0 + subs r1, #1 + mov r0, r8 + movs r2, #1 + bl sub_0800015E + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldrh r0, [r6, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + ands r1, r5 + movs r2, #0x32 + ldrsh r0, [r4, r2] + ldrh r2, [r6, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r5 + lsls r0, r0, #6 + orrs r1, r0 + mov r0, r8 + movs r2, #1 + bl sub_0800015E + pop {r3} + mov r8, r3 + pop {r4, r5, r6, pc} + .align 2, 0 +_08092848: .4byte 0x00004051 +_0809284C: .4byte gUnk_03000BF0 + + thumb_func_start sub_08092850 +sub_08092850: @ 0x08092850 + push {r4, lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _08092888 + ldr r3, _08092878 @ =gUnk_03001160 + movs r0, #0x32 + ldrsh r1, [r3, r0] + movs r4, #0x32 + ldrsh r0, [r2, r4] + cmp r1, r0 + blt _0809286E + adds r0, #0x18 + cmp r1, r0 + ble _0809287C +_0809286E: + ldrb r0, [r2, #0x19] + movs r1, #0x3f + ands r1, r0 + movs r0, #0x40 + b _08092884 + .align 2, 0 +_08092878: .4byte gUnk_03001160 +_0809287C: + ldrb r0, [r2, #0x19] + movs r1, #0x3f + ands r1, r0 + movs r0, #0x80 +_08092884: + orrs r1, r0 + strb r1, [r2, #0x19] +_08092888: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809288C +sub_0809288C: @ 0x0809288C + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080928B0 + ldr r0, _080928AC @ =gUnk_0812279C + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _080928C0 + .align 2, 0 +_080928AC: .4byte gUnk_0812279C +_080928B0: + ldr r0, _080928C4 @ =gUnk_08122794 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 +_080928C0: + pop {pc} + .align 2, 0 +_080928C4: .4byte gUnk_08122794 + + thumb_func_start sub_080928C8 +sub_080928C8: @ 0x080928C8 + push {lr} + adds r3, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r3, #0xc] + ldrb r1, [r3, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r3, #0x18] + ldrb r0, [r3, #0xa] + strb r0, [r3, #0x1e] + ldrb r0, [r3, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r3, #0x19] + adds r2, r3, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r3, #0x1b] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r3, #0x1b] + ldrb r0, [r3, #0xa] + cmp r0, #2 + beq _08092912 + cmp r0, #4 + beq _08092920 + b _08092928 +_08092912: + adds r0, r3, #0 + movs r1, #0x5b + movs r2, #4 + movs r3, #0 + bl sub_080A2988 + b _08092928 +_08092920: + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] +_08092928: + pop {pc} + .align 2, 0 + + thumb_func_start nullsub_119 +nullsub_119: @ 0x0809292C + bx lr + .align 2, 0 + + thumb_func_start sub_08092930 +sub_08092930: @ 0x08092930 + push {r4, lr} + adds r4, r0, #0 + bl sub_080928C8 + adds r4, #0x82 + movs r0, #0 + strh r0, [r4] + pop {r4, pc} + + thumb_func_start sub_08092940 +sub_08092940: @ 0x08092940 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x84 + ldr r1, [r5] + bl sub_0807DF74 + ldr r1, [r5] + adds r0, r4, #0 + bl sub_08092958 + pop {r4, r5, pc} + + thumb_func_start sub_08092958 +sub_08092958: @ 0x08092958 + push {r4, lr} + adds r3, r0, #0 + adds r2, r1, #0 + ldr r0, [r2, #8] + cmp r0, #0 + beq _0809298A + movs r4, #0 +_08092966: + ldr r1, [r2, #8] + mvns r0, r1 + adds r0, #1 + ands r0, r1 + eors r1, r0 + str r1, [r2, #8] + cmp r0, #1 + beq _0809297C + cmp r0, #2 + beq _08092980 + b _08092984 +_0809297C: + strb r4, [r3, #0x1e] + b _08092984 +_08092980: + ldr r0, [r2, #4] + strb r0, [r3, #0x1e] +_08092984: + ldr r0, [r2, #8] + cmp r0, #0 + bne _08092966 +_0809298A: + pop {r4, pc} + + thumb_func_start sub_0809298C +sub_0809298C: @ 0x0809298C + push {lr} + ldr r2, _080929A0 @ =gUnk_081227A4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080929A0: .4byte gUnk_081227A4 + + thumb_func_start sub_080929A4 +sub_080929A4: @ 0x080929A4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r1, [r5, #0xb] + movs r6, #0xc0 + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _08092A08 + adds r4, r5, #0 + adds r4, #0x86 + ldrh r0, [r4] + bl sub_0807CBE4 + cmp r0, #0 + beq _08092A08 + ldrb r0, [r5, #0xb] + adds r1, r6, #0 + ands r1, r0 + cmp r1, #0x40 + beq _080929D2 + cmp r1, #0x80 + beq _08092A04 + b _08092A08 +_080929D2: + ldr r0, _080929F4 @ =gUnk_030010A0 + ldrh r1, [r0, #0xa] + movs r0, #0xc1 + lsls r0, r0, #1 + cmp r1, r0 + beq _080929EE + cmp r1, r0 + blt _080929FC + ldr r0, _080929F8 @ =0x0000044F + cmp r1, r0 + bgt _080929FC + subs r0, #2 + cmp r1, r0 + blt _080929FC +_080929EE: + bl sub_0805E780 + b _08092A08 + .align 2, 0 +_080929F4: .4byte gUnk_030010A0 +_080929F8: .4byte 0x0000044F +_080929FC: + ldrh r0, [r4] + bl sub_0807CD48 + b _08092A08 +_08092A04: + bl sub_0805E780 +_08092A08: + movs r0, #1 + strb r0, [r5, #0xc] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r5, #0x20] + bl sub_08000E50 + movs r1, #7 + ands r0, r1 + lsls r0, r0, #0xa + movs r2, #0x80 + lsls r2, r2, #6 + adds r1, r2, #0 + adds r2, r5, #0 + adds r2, #0x78 + movs r3, #0 + orrs r0, r1 + strh r0, [r2] + ldrb r0, [r5, #0xe] + lsrs r0, r0, #1 + strb r0, [r5, #0xf] + strb r3, [r5, #0xe] + ldrb r1, [r5, #0xb] + movs r0, #0x3f + ands r0, r1 + strb r0, [r5, #0x1e] + movs r4, #0x2e + ldrsh r1, [r5, r4] + ldr r2, _08092A8C @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r4, #0x32 + ldrsh r0, [r5, r4] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r4, r5, #0 + adds r4, #0x7e + strh r1, [r4] + ldrh r0, [r4] + movs r1, #1 + bl sub_080001DA + adds r1, r5, #0 + adds r1, #0x7c + strh r0, [r1] + ldrh r0, [r4] + movs r1, #1 + bl sub_080002E0 + adds r1, r5, #0 + adds r1, #0x7a + strh r0, [r1] + ldr r0, _08092A90 @ =0x00004022 + ldrh r1, [r4] + movs r2, #1 + bl sub_0800015E + pop {r4, r5, r6, pc} + .align 2, 0 +_08092A8C: .4byte gUnk_03000BF0 +_08092A90: .4byte 0x00004022 + + thumb_func_start sub_08092A94 +sub_08092A94: @ 0x08092A94 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r2, _08092B08 @ =gUnk_03001160 + ldrb r0, [r2, #0xc] + cmp r0, #6 + bne _08092B04 + ldrb r0, [r2, #0x14] + cmp r0, #0 + bne _08092B04 + movs r1, #0x32 + ldrsh r0, [r4, r1] + adds r0, #0x28 + movs r3, #0x32 + ldrsh r1, [r2, r3] + cmp r0, r1 + blt _08092B04 + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r3, #0x2e + ldrsh r0, [r2, r3] + subs r1, r1, r0 + ldrb r0, [r4, #0xf] + cmp r1, r0 + bge _08092B04 + cmn r1, r0 + ble _08092B04 + adds r0, r4, #0 + adds r0, #0x7c + ldrh r0, [r0] + adds r5, r4, #0 + adds r5, #0x7e + ldrh r1, [r5] + movs r2, #1 + bl sub_0800015E + adds r0, r4, #0 + adds r0, #0x7a + ldrh r0, [r0] + ldrh r1, [r5] + movs r2, #1 + bl sub_08000148 + movs r0, #2 + strb r0, [r4, #0xc] + ldrh r0, [r4, #0x36] + subs r0, #0x20 + strh r0, [r4, #0x36] + ldrh r0, [r4, #0x32] + adds r0, #0x20 + strh r0, [r4, #0x32] + ldrb r1, [r4, #0x19] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x19] +_08092B04: + pop {r4, r5, pc} + .align 2, 0 +_08092B08: .4byte gUnk_03001160 + + thumb_func_start sub_08092B0C +sub_08092B0C: @ 0x08092B0C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #1 + bne _08092B50 + movs r0, #0 + movs r1, #3 + strb r1, [r4, #0xc] + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xb] + movs r1, #0xc0 + ands r1, r0 + cmp r1, #0x40 + beq _08092B32 + cmp r1, #0x80 + bne _08092B3C + movs r0, #0x72 + bl sub_08004488 +_08092B32: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 +_08092B3C: + adds r0, r4, #0 + movs r1, #5 + movs r2, #0 + bl sub_080A29AC + adds r0, r4, #0 + movs r1, #3 + bl sub_0805457C + b _08092B6A +_08092B50: + adds r0, r4, #0 + adds r0, #0x78 + ldrh r1, [r0] + adds r0, r4, #0 + bl sub_080044EC + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08092B6A + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] +_08092B6A: + pop {r4, pc} + + thumb_func_start sub_08092B6C +sub_08092B6C: @ 0x08092B6C + push {lr} + bl sub_0805E780 + pop {pc} + + thumb_func_start sub_08092B74 +sub_08092B74: @ 0x08092B74 + push {lr} + ldr r2, _08092B88 @ =gUnk_081227C0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08092B88: .4byte gUnk_081227C0 + + thumb_func_start sub_08092B8C +sub_08092B8C: @ 0x08092B8C + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x86 + ldrh r0, [r1] + cmp r0, #0 + beq _08092BA6 + bl sub_0807CBE4 + cmp r0, #0 + beq _08092BA6 + bl sub_0805E780 +_08092BA6: + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x7d + strb r0, [r1] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldr r0, _08092BE8 @ =gUnk_081227EC + str r0, [r4, #0x48] + movs r0, #8 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xa] + lsls r0, r0, #1 + ldr r1, _08092BEC @ =gUnk_081227B4 + adds r2, r0, r1 + ldrb r1, [r2] + adds r0, r1, #0 + cmp r0, #0xff + bne _08092BF0 + ldrb r0, [r4, #0xb] + strb r0, [r4, #0x1e] + b _08092BF6 + .align 2, 0 +_08092BE8: .4byte gUnk_081227EC +_08092BEC: .4byte gUnk_081227B4 +_08092BF0: + strb r1, [r4, #0x1e] + ldrb r0, [r2, #1] + strb r0, [r4, #0xb] +_08092BF6: + pop {r4, pc} + + thumb_func_start sub_08092BF8 +sub_08092BF8: @ 0x08092BF8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x86 + ldrh r0, [r1] + cmp r0, #0 + beq _08092C20 + bl sub_0807CBE4 + cmp r0, #0 + beq _08092C20 + movs r0, #2 + strb r0, [r4, #0xc] + ldr r0, _08092C1C @ =0x00000111 + bl sub_080A3268 + b _08092C92 + .align 2, 0 +_08092C1C: .4byte 0x00000111 +_08092C20: + adds r0, r4, #0 + bl sub_0800445C + cmp r0, #0 + beq _08092C74 + adds r0, r4, #0 + adds r0, #0x7d + ldrb r0, [r0] + cmp r0, #0 + bne _08092C74 + ldrb r0, [r4, #0xb] + lsls r0, r0, #3 + ldr r1, _08092C68 @ =gUnk_081227CC + adds r5, r0, r1 + ldrh r1, [r5, #4] + ldrh r2, [r5, #6] + adds r0, r4, #0 + bl sub_0806ED9C + cmp r0, #0 + blt _08092C78 + ldr r1, _08092C6C @ =gUnk_03001160 + ldrh r0, [r5] + ldrb r1, [r1, #0x14] + cmp r0, r1 + bne _08092C78 + ldr r0, _08092C70 @ =gUnk_03003F80 + adds r0, #0x90 + ldrh r1, [r0] + ldrh r0, [r5, #2] + ands r0, r1 + cmp r0, #0 + beq _08092C78 + ldrb r0, [r4, #0xe] + subs r0, #1 + b _08092C76 + .align 2, 0 +_08092C68: .4byte gUnk_081227CC +_08092C6C: .4byte gUnk_03001160 +_08092C70: .4byte gUnk_03003F80 +_08092C74: + movs r0, #8 +_08092C76: + strb r0, [r4, #0xe] +_08092C78: + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _08092C92 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #8 + movs r1, #0 + movs r2, #0 + bl sub_08078AC0 + ldr r0, _08092C94 @ =0x00000111 + bl sub_080A3268 +_08092C92: + pop {r4, r5, pc} + .align 2, 0 +_08092C94: .4byte 0x00000111 + + thumb_func_start sub_08092C98 +sub_08092C98: @ 0x08092C98 + push {lr} + bl sub_0805E780 + pop {pc} + + thumb_func_start sub_08092CA0 +sub_08092CA0: @ 0x08092CA0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x45 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + beq _08092CC0 + ldr r0, _08092CD4 @ =gUnk_020342F8 + subs r1, #1 + bl sub_0801D5A8 + cmp r0, #0 + bne _08092CC0 + bl sub_0805E780 +_08092CC0: + ldr r0, _08092CD8 @ =gUnk_081227F4 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_08092CD4: .4byte gUnk_020342F8 +_08092CD8: .4byte gUnk_081227F4 + + thumb_func_start sub_08092CDC +sub_08092CDC: @ 0x08092CDC + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + strb r2, [r4, #0xc] + ldr r0, _08092D48 @ =gUnk_080FD320 + str r0, [r4, #0x48] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x3f + strb r2, [r0] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #0x47 + strb r0, [r1] + adds r1, #4 + movs r0, #0x44 + strb r0, [r1] + subs r1, #5 + movs r0, #0x80 + strb r0, [r1] + ldrb r2, [r4, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x19] + ldrb r0, [r4, #0xa] + strb r0, [r4, #0x14] + lsls r0, r0, #3 + strb r0, [r4, #0x15] + movs r0, #0xe0 + lsls r0, r0, #3 + strh r0, [r4, #0x24] + ldrb r0, [r4, #0xb] + cmp r0, #1 + bne _08092D50 + ldr r1, _08092D4C @ =0x00000161 + adds r0, r4, #0 + bl sub_0801D2B4 + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + b _08092D5C + .align 2, 0 +_08092D48: .4byte gUnk_080FD320 +_08092D4C: .4byte 0x00000161 +_08092D50: + ldr r0, _08092D78 @ =0x0000FFE8 + strh r0, [r4, #0x36] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_08092D5C: + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08092D74 + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC +_08092D74: + pop {r4, pc} + .align 2, 0 +_08092D78: .4byte 0x0000FFE8 + + thumb_func_start sub_08092D7C +sub_08092D7C: @ 0x08092D7C + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r1, [r5, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08092D92 + adds r0, r5, #0 + movs r1, #0 + bl sub_0807DDAC +_08092D92: + ldrb r0, [r5, #0x18] + lsls r0, r0, #0x1e + cmp r0, #0 + beq _08092E84 + adds r0, r5, #0 + bl sub_08004274 + ldr r6, _08092E04 @ =gUnk_03003F80 + ldr r0, [r6, #0x30] + movs r3, #0x80 + ands r0, r3 + cmp r0, #0 + bne _08092E84 + adds r0, r6, #0 + adds r0, #0x3c + ldrb r0, [r0] + cmp r0, #0 + bne _08092E84 + ldr r4, _08092E08 @ =gUnk_03001160 + ldrb r2, [r4, #0xc] + cmp r2, #4 + beq _08092DC8 + ldrb r1, [r4, #0x10] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _08092E84 +_08092DC8: + cmp r2, #6 + beq _08092E84 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0xc + movs r3, #0xc + bl sub_0800419C + cmp r0, #0 + beq _08092E84 + ldr r0, [r6, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x11 + ands r0, r1 + cmp r0, #0 + bne _08092E0C + ldrb r0, [r4, #0xc] + cmp r0, #4 + beq _08092E0C + ldrb r0, [r5, #0xb] + cmp r0, #1 + beq _08092E16 + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #0x10 + rsbs r0, r0, #0 + cmp r1, r0 + bgt _08092E84 + b _08092E16 + .align 2, 0 +_08092E04: .4byte gUnk_03003F80 +_08092E08: .4byte gUnk_03001160 +_08092E0C: + ldr r0, _08092E88 @ =gUnk_03001160 + movs r1, #0x36 + ldrsh r0, [r0, r1] + cmp r0, #0 + beq _08092E84 +_08092E16: + ldr r4, _08092E88 @ =gUnk_03001160 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r5, #0 + bl sub_08004542 + adds r0, r4, #0 + bl sub_08004542 + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldr r1, _08092E8C @ =gUnk_03003F80 + movs r0, #0x1f + strb r0, [r1, #0xc] + ldrb r2, [r5, #0xb] + adds r0, r1, #0 + adds r0, #0x38 + strb r2, [r0] + adds r1, #0x39 + movs r0, #0xff + strb r0, [r1] + adds r4, #0x29 + ldrb r1, [r4] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + subs r1, #1 + adds r3, r5, #0 + adds r3, #0x29 + movs r0, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrb r0, [r5, #0xc] + adds r0, #1 + strb r0, [r5, #0xc] + bl sub_08077B20 + ldr r0, _08092E90 @ =0x00000153 + bl sub_080A3268 + movs r0, #0x79 + bl sub_080A3268 +_08092E84: + pop {r4, r5, r6, pc} + .align 2, 0 +_08092E88: .4byte gUnk_03001160 +_08092E8C: .4byte gUnk_03003F80 +_08092E90: .4byte 0x00000153 + + thumb_func_start sub_08092E94 +sub_08092E94: @ 0x08092E94 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldr r1, _08092ED0 @ =gUnk_03001160 + adds r0, r4, #0 + movs r2, #0xc + movs r3, #0xc + bl sub_0800419C + cmp r0, #0 + bne _08092ECE + adds r0, r4, #0 + bl sub_0800455E + ldrb r2, [r4, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x19] + ldrb r0, [r4, #0xc] + subs r0, #1 + strb r0, [r4, #0xc] +_08092ECE: + pop {r4, pc} + .align 2, 0 +_08092ED0: .4byte gUnk_03001160 + + thumb_func_start sub_08092ED4 +sub_08092ED4: @ 0x08092ED4 + push {lr} + ldr r2, _08092EE8 @ =gUnk_0812283C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08092EE8: .4byte gUnk_0812283C + + thumb_func_start sub_08092EEC +sub_08092EEC: @ 0x08092EEC + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + bl sub_080932D8 + cmp r0, #1 + beq _08092F2C + cmp r0, #2 + beq _08092F3A + movs r0, #1 + strb r0, [r4, #0xc] + movs r1, #0 + movs r2, #0x80 + strh r2, [r4, #0x24] + strb r0, [r4, #0x16] + strb r1, [r4, #0xe] + strb r1, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x7a + movs r0, #0x20 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x7b + strb r2, [r0] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08092F48 + ldr r0, _08092F28 @ =gUnk_080FD288 + str r0, [r4, #0x48] + b _08092F48 + .align 2, 0 +_08092F28: .4byte gUnk_080FD288 +_08092F2C: + movs r0, #4 + strb r0, [r4, #0xc] + ldrh r0, [r4, #0x2e] + subs r0, #0x20 + strh r0, [r4, #0x2e] + movs r5, #2 + b _08092F5E +_08092F3A: + movs r0, #4 + strb r0, [r4, #0xc] + ldrh r0, [r4, #0x2e] + adds r0, #0x20 + strh r0, [r4, #0x2e] + movs r5, #3 + b _08092F5E +_08092F48: + movs r5, #0 + adds r1, r4, #0 + adds r1, #0x86 + ldrh r0, [r1] + cmp r0, #0 + beq _08092F5E + bl sub_0807CBE4 + cmp r0, #0 + bne _08092F5E + movs r5, #1 +_08092F5E: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080931A4 + pop {r4, r5, pc} + + thumb_func_start sub_08092F68 +sub_08092F68: @ 0x08092F68 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + ldr r0, _08092FA4 @ =gUnk_03001160 + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r2, #0x2e + ldrsh r0, [r6, r2] + subs r1, r1, r0 + mov r8, r1 + adds r1, r6, #0 + adds r1, #0x86 + ldrh r0, [r1] + cmp r0, #0 + beq _08092FA8 + bl sub_0807CBE4 + cmp r0, #0 + bne _08092F92 + b _080930E6 +_08092F92: + adds r0, r6, #0 + adds r0, #0x7a + ldrb r0, [r0] + cmp r0, #0 + beq _08092FA8 + adds r0, r6, #0 + bl sub_080932A8 + b _080930E6 + .align 2, 0 +_08092FA4: .4byte gUnk_03001160 +_08092FA8: + adds r1, r6, #0 + adds r1, #0x7b + ldrb r2, [r1] + movs r0, #0x3f + ands r0, r2 + adds r7, r1, #0 + cmp r0, #0 + bne _08092FD6 + movs r0, #0xf + movs r4, #0 + orrs r0, r2 + strb r0, [r7] + adds r0, r6, #0 + movs r1, #0 + bl sub_080931A4 + mov r0, r8 + cmp r0, #0 + bge _08092FD6 + ldrb r0, [r7] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r7] +_08092FD6: + ldrb r1, [r7] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08092FEA + adds r5, r6, #0 + adds r5, #0x78 + ldrh r0, [r5] + subs r0, #1 + b _08092FF2 +_08092FEA: + adds r5, r6, #0 + adds r5, #0x78 + ldrh r0, [r5] + adds r0, #1 +_08092FF2: + adds r4, r6, #0 + adds r4, #0x38 + ldrb r1, [r4] + bl sub_080002B0 + adds r1, r0, #0 + ldr r0, _08093034 @ =0x00004031 + cmp r1, r0 + bhi _08093040 + subs r0, #1 + cmp r1, r0 + blo _08093040 + movs r0, #3 + strb r0, [r6, #0xc] + ldr r0, _08093038 @ =gUnk_03001160 + ldrb r0, [r0, #0x14] + lsls r0, r0, #2 + strb r0, [r6, #0x15] + movs r0, #0x80 + strh r0, [r6, #0x24] + movs r0, #0x40 + strb r0, [r6, #0xe] + adds r0, r6, #0 + movs r1, #0x50 + bl sub_0805E4E0 + ldr r0, _0809303C @ =0x0000010F + bl sub_08004488 + adds r0, r6, #0 + bl sub_08093248 + b _080930E6 + .align 2, 0 +_08093034: .4byte 0x00004031 +_08093038: .4byte gUnk_03001160 +_0809303C: .4byte 0x0000010F +_08093040: + ldr r0, _0809307C @ =gUnk_03001160 + ldrb r1, [r0, #0x14] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080930E6 + adds r0, r6, #0 + bl sub_08078930 + adds r3, r7, #0 + ldrb r2, [r3] + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + beq _08093088 + movs r1, #0x7f + ands r1, r2 + strb r1, [r3] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0809309C + ldr r0, _08093080 @ =0x0000402C + ldrh r1, [r5] + subs r1, #1 + ldrb r2, [r4] + bl sub_0800015E + ldr r0, _08093084 @ =0x0000403D + b _080930AA + .align 2, 0 +_0809307C: .4byte gUnk_03001160 +_08093080: .4byte 0x0000402C +_08093084: .4byte 0x0000403D +_08093088: + movs r0, #0x40 + ands r0, r2 + cmp r0, #0 + beq _080930C0 + mov r1, r8 + cmp r1, #4 + ble _080930E6 + movs r0, #0x3f + ands r0, r2 + strb r0, [r3] +_0809309C: + ldr r0, _080930B8 @ =0x0000403D + ldrh r1, [r5] + subs r1, #1 + ldrb r2, [r4] + bl sub_0800015E + ldr r0, _080930BC @ =0x0000402D +_080930AA: + ldrh r1, [r5] + adds r1, #1 + ldrb r2, [r4] + bl sub_0800015E + b _080930E6 + .align 2, 0 +_080930B8: .4byte 0x0000403D +_080930BC: .4byte 0x0000402D +_080930C0: + mov r1, r8 + rsbs r0, r1, #0 + cmp r0, #4 + ble _080930E6 + movs r0, #0x40 + orrs r0, r2 + strb r0, [r7] + ldr r0, _080930EC @ =0x0000402C + ldrh r1, [r5] + subs r1, #1 + ldrb r2, [r4] + bl sub_0800015E + ldr r0, _080930F0 @ =0x0000403D + ldrh r1, [r5] + adds r1, #1 + ldrb r2, [r4] + bl sub_0800015E +_080930E6: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080930EC: .4byte 0x0000402C +_080930F0: .4byte 0x0000403D + + thumb_func_start sub_080930F4 +sub_080930F4: @ 0x080930F4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r3, [r4, #0xe] + cmp r3, #0 + beq _08093104 + bl sub_08093280 + b _08093174 +_08093104: + ldr r5, _0809315C @ =gUnk_03003F80 + ldrb r0, [r5, #5] + cmp r0, #0x12 + bne _08093168 + ldr r6, _08093160 @ =gUnk_03001160 + adds r0, r6, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08093174 + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #8 + bls _08093174 + movs r0, #0x10 + strb r0, [r5, #0xc] + adds r0, r5, #0 + adds r0, #0x38 + movs r2, #0x40 + strb r2, [r0] + ldr r0, [r5, #0x30] + movs r1, #1 + orrs r0, r1 + str r0, [r5, #0x30] + strh r3, [r6, #0x2c] + strh r3, [r6, #0x30] + ldrb r0, [r6, #0x14] + movs r1, #4 + eors r0, r1 + lsls r0, r0, #2 + strb r0, [r4, #0x15] + strb r2, [r4, #0xe] + ldr r0, _08093164 @ =0x0000010F + bl sub_08004488 + adds r0, r4, #0 + bl sub_08093248 + b _08093174 + .align 2, 0 +_0809315C: .4byte gUnk_03003F80 +_08093160: .4byte gUnk_03001160 +_08093164: .4byte 0x0000010F +_08093168: + ldrb r0, [r4, #0xd] + cmp r0, #6 + bne _08093174 + movs r0, #1 + strb r0, [r4, #0xc] + strb r3, [r4, #0xf] +_08093174: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08093178 +sub_08093178: @ 0x08093178 + push {r4, lr} + adds r4, r0, #0 + bl sub_0800445C + adds r0, r4, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08093198 + adds r0, r4, #0 + bl sub_08093334 +_08093198: + adds r0, r4, #0 + bl sub_08093364 + pop {r4, pc} + + thumb_func_start nullsub_120 +nullsub_120: @ 0x080931A0 + bx lr + .align 2, 0 + + thumb_func_start sub_080931A4 +sub_080931A4: @ 0x080931A4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r1, #0 + movs r1, #0x2e + ldrsh r2, [r0, r1] + ldr r3, _080931F0 @ =gUnk_03000BF0 + ldrh r1, [r3, #6] + subs r2, r2, r1 + asrs r2, r2, #4 + movs r4, #0x3f + ands r2, r4 + movs r6, #0x32 + ldrsh r1, [r0, r6] + ldrh r3, [r3, #8] + subs r1, r1, r3 + asrs r1, r1, #4 + ands r1, r4 + lsls r1, r1, #6 + orrs r2, r1 + adds r1, r0, #0 + adds r1, #0x78 + strh r2, [r1] + ldrh r1, [r1] + subs r1, #0x40 + mov r8, r1 + adds r0, #0x38 + ldrb r7, [r0] + cmp r5, #1 + beq _080931F4 + cmp r5, #1 + blo _0809320C + cmp r5, #2 + beq _080931FC + cmp r5, #3 + beq _08093204 + b _0809320C + .align 2, 0 +_080931F0: .4byte gUnk_03000BF0 +_080931F4: + ldr r0, _080931F8 @ =gUnk_08122862 + b _0809320E + .align 2, 0 +_080931F8: .4byte gUnk_08122862 +_080931FC: + ldr r0, _08093200 @ =gUnk_08122874 + b _0809320E + .align 2, 0 +_08093200: .4byte gUnk_08122874 +_08093204: + ldr r0, _08093208 @ =gUnk_08122886 + b _0809320E + .align 2, 0 +_08093208: .4byte gUnk_08122886 +_0809320C: + ldr r0, _08093230 @ =gUnk_08122850 +_0809320E: + movs r4, #0 + movs r6, #0 + adds r5, r0, #0 +_08093214: + mov r0, r8 + adds r1, r0, r6 + adds r1, r1, r4 + subs r1, #1 + ldrh r0, [r5] + adds r2, r7, #0 + bl sub_0800015E + cmp r4, #2 + beq _08093234 + cmp r4, #5 + beq _08093238 + b _0809323A + .align 2, 0 +_08093230: .4byte gUnk_08122850 +_08093234: + movs r6, #0x3d + b _0809323A +_08093238: + movs r6, #0x7a +_0809323A: + adds r5, #2 + adds r4, #1 + cmp r4, #8 + bls _08093214 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08093248 +sub_08093248: @ 0x08093248 + push {r4, r5, r6, r7, lr} + adds r1, r0, #0 + adds r1, #0x78 + ldrh r1, [r1] + adds r7, r1, #0 + subs r7, #0x40 + adds r0, #0x38 + ldrb r6, [r0] + movs r4, #0 + movs r5, #0 +_0809325C: + adds r0, r7, r5 + adds r0, r0, r4 + subs r0, #1 + adds r1, r6, #0 + bl sub_0807BA8C + cmp r4, #2 + beq _08093272 + cmp r4, #5 + beq _08093276 + b _08093278 +_08093272: + movs r5, #0x3d + b _08093278 +_08093276: + movs r5, #0x7a +_08093278: + adds r4, #1 + cmp r4, #8 + bls _0809325C + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08093280 +sub_08093280: @ 0x08093280 + push {r4, lr} + adds r4, r0, #0 + bl sub_0800445C + adds r0, r4, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080932A0 + adds r0, r4, #0 + bl sub_08093334 +_080932A0: + adds r0, r4, #0 + bl sub_08093364 + pop {r4, pc} + + thumb_func_start sub_080932A8 +sub_080932A8: @ 0x080932A8 + push {lr} + adds r1, r0, #0 + adds r2, r1, #0 + adds r2, #0x7a + ldrb r0, [r2] + subs r0, #1 + strb r0, [r2] + movs r2, #3 + ands r2, r0 + cmp r2, #1 + beq _080932C8 + cmp r2, #3 + beq _080932D0 + adds r1, #0x62 + movs r0, #0 + b _080932D4 +_080932C8: + adds r0, r1, #0 + adds r0, #0x62 + strb r2, [r0] + b _080932D6 +_080932D0: + adds r1, #0x62 + movs r0, #0xff +_080932D4: + strb r0, [r1] +_080932D6: + pop {pc} + + thumb_func_start sub_080932D8 +sub_080932D8: @ 0x080932D8 + push {r4, lr} + lsls r0, r0, #3 + ldr r1, _080932F0 @ =gUnk_08122898 + adds r4, r0, r1 + ldr r0, [r4] + ldrh r1, [r4, #4] + bl sub_0807CB10 + cmp r0, #0 + beq _080932F4 + movs r0, #1 + b _08093306 + .align 2, 0 +_080932F0: .4byte gUnk_08122898 +_080932F4: + ldr r0, [r4] + ldrh r1, [r4, #6] + bl sub_0807CB10 + cmp r0, #0 + bne _08093304 + movs r0, #0 + b _08093306 +_08093304: + movs r0, #2 +_08093306: + pop {r4, pc} + + thumb_func_start sub_08093308 +sub_08093308: @ 0x08093308 + push {lr} + adds r2, r1, #0 + lsls r0, r0, #3 + ldr r1, _08093320 @ =gUnk_08122898 + adds r1, r0, r1 + cmp r2, #1 + bne _08093324 + ldr r0, [r1] + ldrh r1, [r1, #4] + bl sub_0807CC9C + b _08093330 + .align 2, 0 +_08093320: .4byte gUnk_08122898 +_08093324: + cmp r2, #2 + bne _08093330 + ldr r0, [r1] + ldrh r1, [r1, #6] + bl sub_0807CC9C +_08093330: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08093334 +sub_08093334: @ 0x08093334 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #4 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x15] + movs r0, #0x10 + ands r0, r1 + movs r5, #2 + cmp r0, #0 + beq _0809334A + movs r5, #1 +_0809334A: + adds r1, r5, #1 + adds r0, r4, #0 + bl sub_080931A4 + ldrb r0, [r4, #0xa] + adds r1, r5, #0 + bl sub_08093308 + movs r0, #0x72 + bl sub_08004488 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08093364 +sub_08093364: @ 0x08093364 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r1, [r5, #0xe] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _080933BC + movs r0, #0xf + movs r1, #0x11 + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _080933BC + str r5, [r4, #0x50] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldrb r1, [r5, #0x15] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0809339C + ldrh r0, [r4, #0x2e] + adds r0, #0x12 + b _080933A0 +_0809339C: + ldrh r0, [r4, #0x2e] + subs r0, #0x12 +_080933A0: + strh r0, [r4, #0x2e] + movs r0, #0x32 + ldrsh r2, [r4, r0] + ldrb r1, [r5, #0xe] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080933B6 + adds r0, r2, #0 + adds r0, #8 + b _080933BA +_080933B6: + adds r0, r2, #0 + subs r0, #8 +_080933BA: + strh r0, [r4, #0x32] +_080933BC: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080933C0 +sub_080933C0: @ 0x080933C0 + push {lr} + ldr r2, _080933D4 @ =gUnk_081228B0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080933D4: .4byte gUnk_081228B0 + + thumb_func_start sub_080933D8 +sub_080933D8: @ 0x080933D8 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + strb r0, [r4, #0x1e] + adds r0, r4, #0 + bl sub_08016A04 + ldr r0, _080933F8 @ =gUnk_081228A8 + str r0, [r4, #0x48] + adds r0, r4, #0 + bl sub_080787B4 + pop {r4, pc} + .align 2, 0 +_080933F8: .4byte gUnk_081228A8 + + thumb_func_start sub_080933FC +sub_080933FC: @ 0x080933FC + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08093420 + movs r0, #0 + strb r0, [r1] + ldr r1, _08093424 @ =gUnk_081228B8 + ldrb r0, [r2, #0xa] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + adds r1, r2, #0 + bl sub_08056398 +_08093420: + pop {pc} + .align 2, 0 +_08093424: .4byte gUnk_081228B8 + + thumb_func_start sub_08093428 +sub_08093428: @ 0x08093428 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0809345C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x11 + ands r0, r1 + cmp r0, #0 + bne _0809344A + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08093446 + ldr r1, _08093460 @ =gUnk_03000BF0 + ldr r0, _08093464 @ =gUnk_03001160 + str r0, [r1, #0x30] +_08093446: + bl sub_0805E780 +_0809344A: + ldr r0, _08093468 @ =gUnk_081228C8 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_0809345C: .4byte gUnk_03003F80 +_08093460: .4byte gUnk_03000BF0 +_08093464: .4byte gUnk_03001160 +_08093468: .4byte gUnk_081228C8 + + thumb_func_start sub_0809346C +sub_0809346C: @ 0x0809346C + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xff + strb r0, [r4, #0x1f] + ldr r0, _080934C0 @ =gUnk_03001160 + ldrb r1, [r0, #0x1a] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1c + ldrb r2, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1a] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080934B8 + ldr r0, _080934C4 @ =gUnk_03000BF0 + str r4, [r0, #0x30] + ldrb r0, [r4, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r1, r4, #0 + adds r1, #0x6e + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r1] + adds r1, #4 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #0x61 + movs r2, #1 + movs r3, #0 + bl sub_080A2988 +_080934B8: + adds r0, r4, #0 + bl sub_080934C8 + pop {r4, pc} + .align 2, 0 +_080934C0: .4byte gUnk_03001160 +_080934C4: .4byte gUnk_03000BF0 + + thumb_func_start sub_080934C8 +sub_080934C8: @ 0x080934C8 + push {lr} + ldr r2, _080934DC @ =gUnk_081228D0 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080934DC: .4byte gUnk_081228D0 + + thumb_func_start sub_080934E0 +sub_080934E0: @ 0x080934E0 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r4, r5, #0 + adds r4, #0x6e + ldrh r1, [r4] + movs r2, #0 + ldrsh r0, [r4, r2] + cmp r0, #0 + bge _080934F6 + rsbs r0, r1, #0 + strh r0, [r4] +_080934F6: + ldr r0, _08093518 @ =gUnk_03001160 + ldrb r0, [r0, #0xd] + cmp r0, #2 + beq _0809351C + cmp r0, #2 + bgt _080935B0 + cmp r0, #1 + bne _080935B0 + adds r1, r5, #0 + adds r1, #0x72 + ldrh r0, [r1] + subs r0, #4 + strh r0, [r1] + adds r6, r4, #0 + adds r7, r1, #0 + b _080935BE + .align 2, 0 +_08093518: .4byte gUnk_03001160 +_0809351C: + ldrb r2, [r5, #0xf] + adds r0, r2, #0 + cmp r0, #0 + bne _08093560 + adds r0, r5, #0 + adds r0, #0x72 + ldrh r1, [r0] + adds r7, r0, #0 + cmp r1, #0x80 + bls _08093538 + adds r0, r1, #0 + subs r0, #0x20 + strh r0, [r7] + b _08093544 +_08093538: + adds r0, r2, #1 + strb r0, [r5, #0xf] + movs r0, #0x92 + lsls r0, r0, #1 + bl sub_080A3268 +_08093544: + adds r0, r5, #0 + adds r0, #0x6e + ldrh r2, [r0] + ldr r1, _0809355C @ =0x0000011F + adds r6, r0, #0 + cmp r2, r1 + bhi _080935BE + adds r0, r2, #0 + adds r0, #0x40 + strh r0, [r6] + b _080935BE + .align 2, 0 +_0809355C: .4byte 0x0000011F +_08093560: + cmp r0, #0xff + beq _080935A6 + adds r0, r5, #0 + adds r0, #0x72 + ldrh r1, [r0] + adds r7, r0, #0 + cmp r1, #0xff + bhi _08093576 + adds r0, r1, #0 + adds r0, #0x20 + b _0809357A +_08093576: + movs r0, #0x80 + lsls r0, r0, #1 +_0809357A: + strh r0, [r7] + adds r0, r5, #0 + adds r0, #0x6e + ldrh r1, [r0] + movs r2, #0x80 + lsls r2, r2, #1 + adds r6, r0, #0 + cmp r1, r2 + bls _08093594 + adds r0, r1, #0 + subs r0, #0x20 + strh r0, [r6] + b _08093596 +_08093594: + strh r2, [r6] +_08093596: + ldrh r1, [r6] + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + bne _080935BE + movs r0, #0xff + strb r0, [r5, #0xf] + b _080935BE +_080935A6: + adds r0, r5, #0 + bl sub_080936C8 + adds r6, r4, #0 + b _080935BA +_080935B0: + adds r0, r5, #0 + bl sub_080936C8 + adds r6, r5, #0 + adds r6, #0x6e +_080935BA: + adds r7, r5, #0 + adds r7, #0x72 +_080935BE: + ldr r0, _080935E4 @ =gUnk_03001160 + ldrb r1, [r0, #0x14] + movs r0, #2 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _080935E8 + movs r0, #1 + strb r0, [r5, #0x1e] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bne _080935EA + ldrh r0, [r6] + rsbs r0, r0, #0 + strh r0, [r6] + b _080935EA + .align 2, 0 +_080935E4: .4byte gUnk_03001160 +_080935E8: + strb r0, [r5, #0x1e] +_080935EA: + ldrb r0, [r5, #0x1e] + ldrb r1, [r5, #0x1f] + cmp r0, r1 + beq _080935FE + strb r0, [r5, #0x1f] + ldrb r1, [r5, #0x1e] + ldrh r2, [r5, #0x12] + adds r0, r5, #0 + bl sub_080042D0 +_080935FE: + ldr r4, _0809364C @ =gUnk_03001160 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FA24 + ldrb r2, [r4, #0x1b] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r5, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r5, #0x1b] + ldrb r0, [r4, #0x19] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r5, #0x19] + ands r1, r2 + orrs r1, r0 + strb r1, [r5, #0x19] + ldrh r1, [r7] + adds r0, r5, #0 + movs r2, #0xa + movs r3, #2 + bl sub_0806FCF4 + ldrh r1, [r6] + ldrh r2, [r7] + adds r0, r5, #0 + movs r3, #0 + bl sub_0805EC9C + adds r0, r4, #0 + movs r1, #1 + adds r2, r5, #0 + bl sub_0806FEBC + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809364C: .4byte gUnk_03001160 + + thumb_func_start sub_08093650 +sub_08093650: @ 0x08093650 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _080936C4 @ =gUnk_03001160 + ldrb r0, [r5, #0x15] + lsrs r1, r0, #1 + adds r0, r0, r1 + asrs r0, r0, #2 + adds r0, #2 + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x1f] + cmp r0, r1 + beq _08093674 + strb r0, [r4, #0x1f] + ldrb r1, [r4, #0x1e] + ldrh r2, [r4, #0x12] + adds r0, r4, #0 + bl sub_080042D0 +_08093674: + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldrb r2, [r5, #0x1b] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r4, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r4, #0x1b] + ldrb r0, [r5, #0x19] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r4, #0x19] + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #0x19] + ldr r0, [r4, #0x50] + adds r0, #0x72 + ldrh r1, [r0] + adds r0, r4, #0 + movs r2, #0x18 + movs r3, #0 + bl sub_0806FCF4 + adds r1, r4, #0 + adds r1, #0x63 + ldrb r0, [r1] + rsbs r0, r0, #0 + strb r0, [r1] + adds r0, r5, #0 + movs r1, #0 + adds r2, r4, #0 + bl sub_0806FEBC + pop {r4, r5, pc} + .align 2, 0 +_080936C4: .4byte gUnk_03001160 + + thumb_func_start sub_080936C8 +sub_080936C8: @ 0x080936C8 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _08093714 @ =gUnk_03001160 + ldr r0, [r0, #0x7c] + lsrs r2, r0, #2 + movs r3, #0x9c + lsls r3, r3, #1 + adds r1, r3, #0 + subs r1, r1, r2 + adds r5, r4, #0 + adds r5, #0x76 + strh r1, [r5] + movs r1, #0x3c + bl __divsi3 + movs r1, #8 + subs r1, r1, r0 + adds r0, r4, #0 + adds r0, #0x74 + strh r1, [r0] + ldrb r3, [r4, #0xe] + cmp r3, #0 + bne _0809372C + adds r1, r4, #0 + adds r1, #0x6e + ldrh r2, [r1] + ldrh r0, [r5] + cmp r0, r2 + bhs _08093718 + adds r0, r2, #0 + subs r0, #8 + strh r0, [r1] + adds r1, #4 + ldrh r0, [r1] + adds r0, #8 + strh r0, [r1] + b _0809375C + .align 2, 0 +_08093714: .4byte gUnk_03001160 +_08093718: + adds r0, r3, #1 + strb r0, [r4, #0xe] + ldrh r0, [r5] + strh r0, [r1] + ldrh r0, [r5] + adds r0, #0x30 + adds r1, r4, #0 + adds r1, #0x72 + strh r0, [r1] + b _0809375C +_0809372C: + ldrh r0, [r5] + adds r0, #0x30 + adds r1, r4, #0 + adds r1, #0x6e + ldrh r2, [r1] + cmp r0, r2 + ble _0809374A + adds r0, r2, #0 + adds r0, #8 + strh r0, [r1] + adds r1, #4 + ldrh r0, [r1] + subs r0, #8 + strh r0, [r1] + b _0809375C +_0809374A: + movs r0, #0 + strb r0, [r4, #0xe] + ldrh r0, [r5] + adds r0, #0x30 + strh r0, [r1] + ldrh r1, [r5] + adds r0, r4, #0 + adds r0, #0x72 + strh r1, [r0] +_0809375C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08093760 +sub_08093760: @ 0x08093760 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #2 + beq _08093794 + cmp r0, #2 + bgt _08093778 + cmp r0, #0 + beq _08093784 + cmp r0, #1 + beq _0809378C + b _080937BC +_08093778: + cmp r0, #3 + beq _080937AC + cmp r0, #0x41 + bgt _080937BC + cmp r0, #0x40 + blt _080937BC +_08093784: + ldr r0, _08093788 @ =gUnk_081228D8 + b _08093796 + .align 2, 0 +_08093788: .4byte gUnk_081228D8 +_0809378C: + ldr r0, _08093790 @ =gUnk_081228E0 + b _08093796 + .align 2, 0 +_08093790: .4byte gUnk_081228E0 +_08093794: + ldr r0, _080937A8 @ =gUnk_081228E8 +_08093796: + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _080937BC + .align 2, 0 +_080937A8: .4byte gUnk_081228E8 +_080937AC: + ldr r0, _080937C0 @ =gUnk_081228F0 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 +_080937BC: + pop {pc} + .align 2, 0 +_080937C0: .4byte gUnk_081228F0 + + thumb_func_start sub_080937C4 +sub_080937C4: @ 0x080937C4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r5, #1 + strb r5, [r4, #0xc] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _08093808 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r6, #0x32 + ldrsh r0, [r4, r6] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r4, #0 + adds r0, #0x76 + strh r1, [r0] + ldrb r0, [r4, #0xa] + cmp r0, #0x41 + beq _0809386A + cmp r0, #0x41 + bgt _0809387A + cmp r0, #0 + beq _0809380C + cmp r0, #0x40 + beq _08093840 + b _0809387A + .align 2, 0 +_08093808: .4byte gUnk_03000BF0 +_0809380C: + strb r5, [r4, #0x1e] + ldrb r1, [r4, #0x19] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x78 + strh r5, [r0] + adds r1, r4, #0 + adds r1, #0x7a + movs r0, #0x3c + strh r0, [r1] + movs r0, #0x62 + movs r1, #0x40 + b _08093854 +_08093840: + movs r0, #2 + strb r0, [r4, #0x1e] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x62 + movs r1, #0x41 +_08093854: + movs r2, #0 + bl sub_080A2960 + adds r1, r0, #0 + cmp r1, #0 + beq _0809387A + str r4, [r1, #0x50] + adds r0, r4, #0 + bl sub_0806FA24 + b _0809387A +_0809386A: + movs r0, #0 + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x1b] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x1b] +_0809387A: + adds r0, r4, #0 + bl sub_08093A1C + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08093884 +sub_08093884: @ 0x08093884 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _080938B8 + ldr r0, _080938A8 @ =gUnk_03001160 + movs r3, #0x32 + ldrsh r1, [r0, r3] + movs r3, #0x32 + ldrsh r0, [r2, r3] + adds r0, #0x20 + cmp r1, r0 + bge _080938AC + ldrb r0, [r2, #0x19] + movs r1, #0x3f + ands r1, r0 + movs r0, #0x40 + b _080938B4 + .align 2, 0 +_080938A8: .4byte gUnk_03001160 +_080938AC: + ldrb r0, [r2, #0x19] + movs r1, #0x3f + ands r1, r0 + movs r0, #0x80 +_080938B4: + orrs r1, r0 + strb r1, [r2, #0x19] +_080938B8: + adds r0, r2, #0 + bl sub_08093C70 + pop {pc} + + thumb_func_start sub_080938C0 +sub_080938C0: @ 0x080938C0 + push {r4, r5, lr} + movs r1, #1 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0xb] + ands r1, r2 + adds r1, #3 + strb r1, [r0, #0x1e] + adds r3, r0, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r2, #7 + orrs r1, r2 + strb r1, [r3] + movs r1, #0x2e + ldrsh r2, [r0, r1] + ldr r3, _08093908 @ =gUnk_03000BF0 + ldrh r1, [r3, #6] + subs r2, r2, r1 + asrs r2, r2, #4 + movs r4, #0x3f + ands r2, r4 + movs r5, #0x32 + ldrsh r1, [r0, r5] + ldrh r3, [r3, #8] + subs r1, r1, r3 + asrs r1, r1, #4 + ands r1, r4 + lsls r1, r1, #6 + orrs r2, r1 + adds r1, r0, #0 + adds r1, #0x76 + strh r2, [r1] + bl sub_08093A1C + pop {r4, r5, pc} + .align 2, 0 +_08093908: .4byte gUnk_03000BF0 + + thumb_func_start nullsub_524 +nullsub_524: @ 0x0809390C + bx lr + .align 2, 0 + + thumb_func_start sub_08093910 +sub_08093910: @ 0x08093910 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r3, #1 + strb r3, [r5, #0xc] + ldrb r1, [r5, #0xb] + adds r0, r3, #0 + ands r0, r1 + adds r0, #5 + strb r0, [r5, #0x1e] + ldrb r0, [r5, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r5, #0x19] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x2e + ldrsh r1, [r5, r0] + ldr r2, _0809397C @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r0, [r5, r6] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r4 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r5, #0 + adds r0, #0x76 + strh r1, [r0] + ldrb r0, [r5, #0xb] + ands r3, r0 + cmp r3, #0 + beq _0809396C + adds r1, r5, #0 + adds r1, #0x62 + movs r0, #8 + strb r0, [r1] +_0809396C: + adds r0, r5, #0 + bl sub_08093984 + adds r0, r5, #0 + movs r1, #0x7b + bl sub_0801D2B4 + pop {r4, r5, r6, pc} + .align 2, 0 +_0809397C: .4byte gUnk_03000BF0 + + thumb_func_start nullsub_525 +nullsub_525: @ 0x08093980 + bx lr + .align 2, 0 + + thumb_func_start sub_08093984 +sub_08093984: @ 0x08093984 + push {r4, r5, r6, lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xb] + ldr r2, _080939B4 @ =gUnk_0812291E + cmp r0, #0 + beq _08093992 + ldr r2, _080939B8 @ =gUnk_081228F8 +_08093992: + movs r5, #0 + adds r6, r1, #0 + adds r6, #0x76 + adds r4, r2, #0 +_0809399A: + movs r0, #0 + ldrsh r1, [r4, r0] + ldrh r0, [r6] + adds r1, r1, r0 + ldr r0, _080939BC @ =0x00004074 + movs r2, #1 + bl sub_0800015E + adds r4, #2 + adds r5, #1 + cmp r5, #0x12 + bls _0809399A + pop {r4, r5, r6, pc} + .align 2, 0 +_080939B4: .4byte gUnk_0812291E +_080939B8: .4byte gUnk_081228F8 +_080939BC: .4byte 0x00004074 + + thumb_func_start sub_080939C0 +sub_080939C0: @ 0x080939C0 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0xb] + movs r0, #3 + ands r0, r1 + adds r0, #7 + strb r0, [r4, #0x1e] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _08093A14 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r4, #0 + adds r0, #0x76 + strh r1, [r0] + adds r0, r4, #0 + bl sub_08093A1C + adds r0, r4, #0 + movs r1, #0x7a + bl sub_0801D2B4 + pop {r4, r5, pc} + .align 2, 0 +_08093A14: .4byte gUnk_03000BF0 + + thumb_func_start nullsub_526 +nullsub_526: @ 0x08093A18 + bx lr + .align 2, 0 + + thumb_func_start sub_08093A1C +sub_08093A1C: @ 0x08093A1C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r2, r0, #0 + ldrb r1, [r2, #0xa] + cmp r1, #1 + beq _08093B0C + cmp r1, #1 + bgt _08093A34 + cmp r1, #0 + beq _08093A3C + b _08093C64 +_08093A34: + cmp r1, #3 + bne _08093A3A + b _08093C54 +_08093A3A: + b _08093C64 +_08093A3C: + ldr r0, _08093AF0 @ =0x00004024 + adds r7, r2, #0 + adds r7, #0x76 + ldrh r1, [r7] + adds r1, #0x3c + adds r4, r2, #0 + adds r4, #0x38 + ldrb r2, [r4] + bl sub_0800015E + ldr r5, _08093AF4 @ =0x00004022 + ldrh r1, [r7] + adds r1, #0x3d + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldrh r1, [r7] + adds r1, #0x3e + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldr r0, _08093AF8 @ =0x00004029 + mov r8, r0 + ldrh r1, [r7] + adds r1, #0x7c + ldrb r2, [r4] + bl sub_0800015E + ldr r6, _08093AFC @ =0x00004026 + ldrh r1, [r7] + adds r1, #0x7d + ldrb r2, [r4] + adds r0, r6, #0 + bl sub_0800015E + ldrh r1, [r7] + adds r1, #0x7e + ldrb r2, [r4] + adds r0, r6, #0 + bl sub_0800015E + adds r5, #0x1b + ldrh r1, [r7] + adds r1, #0x40 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldrh r1, [r7] + adds r1, #0x80 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldr r0, _08093B00 @ =0x00004027 + ldrh r1, [r7] + adds r1, #0x41 + ldrb r2, [r4] + bl sub_0800015E + ldr r0, _08093B04 @ =0x00004023 + ldrh r1, [r7] + adds r1, #0x42 + ldrb r2, [r4] + bl sub_0800015E + ldr r0, _08093B08 @ =0x0000406D + ldrh r1, [r7] + adds r1, #0x43 + ldrb r2, [r4] + bl sub_0800015E + ldrh r1, [r7] + adds r1, #0x81 + ldrb r2, [r4] + mov r0, r8 + bl sub_0800015E + ldrh r1, [r7] + adds r1, #0x82 + ldrb r2, [r4] + adds r0, r6, #0 + bl sub_0800015E + ldrh r1, [r7] + adds r1, #0x83 + b _08093B94 + .align 2, 0 +_08093AF0: .4byte 0x00004024 +_08093AF4: .4byte 0x00004022 +_08093AF8: .4byte 0x00004029 +_08093AFC: .4byte 0x00004026 +_08093B00: .4byte 0x00004027 +_08093B04: .4byte 0x00004023 +_08093B08: .4byte 0x0000406D +_08093B0C: + ldrb r0, [r2, #0xb] + ands r1, r0 + cmp r1, #0 + beq _08093BB4 + ldr r6, _08093BA0 @ =0x0000406D + movs r0, #0x76 + adds r0, r0, r2 + mov r8, r0 + ldrh r1, [r0] + subs r1, #0x81 + adds r4, r2, #0 + adds r4, #0x38 + ldrb r2, [r4] + adds r0, r6, #0 + bl sub_0800015E + ldr r5, _08093BA4 @ =0x00004022 + mov r2, r8 + ldrh r1, [r2] + subs r1, #0x41 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldr r0, _08093BA8 @ =0x00004029 + mov r2, r8 + ldrh r1, [r2] + subs r1, #2 + ldrb r2, [r4] + bl sub_0800015E + ldr r0, _08093BAC @ =0x00004026 + mov r2, r8 + ldrh r1, [r2] + subs r1, #1 + ldrb r2, [r4] + bl sub_0800015E + mov r0, r8 + ldrh r1, [r0] + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + mov r2, r8 + ldrh r1, [r2] + adds r1, #1 + ldrb r2, [r4] + adds r0, r6, #0 + bl sub_0800015E + ldr r0, _08093BB0 @ =0x0000406E + mov r2, r8 + ldrh r1, [r2] + adds r1, #0x40 + ldrb r2, [r4] + bl sub_0800015E + mov r0, r8 + ldrh r1, [r0] + adds r1, #0x41 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + mov r2, r8 + ldrh r1, [r2] + adds r1, #0x42 +_08093B94: + ldrb r2, [r4] + adds r0, r6, #0 + bl sub_0800015E + b _08093C64 + .align 2, 0 +_08093BA0: .4byte 0x0000406D +_08093BA4: .4byte 0x00004022 +_08093BA8: .4byte 0x00004029 +_08093BAC: .4byte 0x00004026 +_08093BB0: .4byte 0x0000406E +_08093BB4: + ldr r6, _08093C40 @ =0x0000406C + movs r0, #0x76 + adds r0, r0, r2 + mov r8, r0 + ldrh r1, [r0] + subs r1, #0x7f + adds r4, r2, #0 + adds r4, #0x38 + ldrb r2, [r4] + adds r0, r6, #0 + bl sub_0800015E + ldr r5, _08093C44 @ =0x00004022 + mov r2, r8 + ldrh r1, [r2] + subs r1, #0x3f + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + mov r0, r8 + ldrh r1, [r0] + subs r1, #1 + ldrb r2, [r4] + adds r0, r6, #0 + bl sub_0800015E + mov r2, r8 + ldrh r1, [r2] + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldr r0, _08093C48 @ =0x00004026 + mov r2, r8 + ldrh r1, [r2] + adds r1, #1 + ldrb r2, [r4] + bl sub_0800015E + ldr r0, _08093C4C @ =0x0000402A + mov r2, r8 + ldrh r1, [r2] + adds r1, #2 + ldrb r2, [r4] + bl sub_0800015E + mov r0, r8 + ldrh r1, [r0] + adds r1, #0x3e + ldrb r2, [r4] + adds r0, r6, #0 + bl sub_0800015E + mov r2, r8 + ldrh r1, [r2] + adds r1, #0x3f + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldr r0, _08093C50 @ =0x0000406F + mov r2, r8 + ldrh r1, [r2] + adds r1, #0x40 + ldrb r2, [r4] + bl sub_0800015E + b _08093C64 + .align 2, 0 +_08093C40: .4byte 0x0000406C +_08093C44: .4byte 0x00004022 +_08093C48: .4byte 0x00004026 +_08093C4C: .4byte 0x0000402A +_08093C50: .4byte 0x0000406F +_08093C54: + ldr r0, _08093C6C @ =0x00004022 + adds r1, r2, #0 + adds r1, #0x76 + ldrh r1, [r1] + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E +_08093C64: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08093C6C: .4byte 0x00004022 + + thumb_func_start sub_08093C70 +sub_08093C70: @ 0x08093C70 + push {r4, r5, r6, lr} + adds r2, r0, #0 + adds r3, r2, #0 + adds r3, #0x78 + ldrh r0, [r3] + cmp r0, #0 + beq _08093CE8 + ldr r0, _08093CE0 @ =gUnk_03003F80 + ldrb r0, [r0, #5] + cmp r0, #0 + beq _08093D5C + movs r0, #0 + strh r0, [r3] + ldr r4, _08093CE4 @ =0x00004022 + adds r6, r2, #0 + adds r6, #0x76 + ldrh r1, [r6] + adds r1, #0x3f + adds r5, r2, #0 + adds r5, #0x38 + ldrb r2, [r5] + adds r0, r4, #0 + bl sub_0800015E + ldrh r1, [r6] + adds r1, #0x40 + ldrb r2, [r5] + adds r0, r4, #0 + bl sub_0800015E + ldrh r1, [r6] + adds r1, #0x41 + ldrb r2, [r5] + adds r0, r4, #0 + bl sub_0800015E + adds r4, #4 + ldrh r1, [r6] + adds r1, #0x7f + ldrb r2, [r5] + adds r0, r4, #0 + bl sub_0800015E + ldrh r1, [r6] + adds r1, #0x80 + ldrb r2, [r5] + adds r0, r4, #0 + bl sub_0800015E + ldrh r1, [r6] + adds r1, #0x81 + ldrb r2, [r5] + adds r0, r4, #0 + bl sub_0800015E + b _08093D5C + .align 2, 0 +_08093CE0: .4byte gUnk_03003F80 +_08093CE4: .4byte 0x00004022 +_08093CE8: + ldr r0, _08093D60 @ =gUnk_03003F80 + ldrb r0, [r0, #5] + cmp r0, #0 + bne _08093D5C + adds r1, r2, #0 + adds r1, #0x7a + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08093D5C + ldrh r0, [r3] + adds r0, #1 + strh r0, [r3] + movs r0, #0x3c + strh r0, [r1] + ldr r5, _08093D64 @ =0x0000403D + adds r6, r2, #0 + adds r6, #0x76 + ldrh r1, [r6] + adds r1, #0x3f + adds r4, r2, #0 + adds r4, #0x38 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldrh r1, [r6] + adds r1, #0x40 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldr r0, _08093D68 @ =0x00004027 + ldrh r1, [r6] + adds r1, #0x41 + ldrb r2, [r4] + bl sub_0800015E + ldrh r1, [r6] + adds r1, #0x7f + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldrh r1, [r6] + adds r1, #0x80 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldr r0, _08093D6C @ =0x00004029 + ldrh r1, [r6] + adds r1, #0x81 + ldrb r2, [r4] + bl sub_0800015E +_08093D5C: + pop {r4, r5, r6, pc} + .align 2, 0 +_08093D60: .4byte gUnk_03003F80 +_08093D64: .4byte 0x0000403D +_08093D68: .4byte 0x00004027 +_08093D6C: .4byte 0x00004029 + + thumb_func_start sub_08093D70 +sub_08093D70: @ 0x08093D70 + push {lr} + ldr r2, _08093D84 @ =gUnk_08122944 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08093D84: .4byte gUnk_08122944 + + thumb_func_start sub_08093D88 +sub_08093D88: @ 0x08093D88 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrh r0, [r4, #0x36] + subs r0, #8 + strh r0, [r4, #0x36] + movs r0, #0xa8 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + movs r0, #0x20 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _08093DAC + cmp r0, #1 + beq _08093DC4 + b _08093DDE +_08093DAC: + adds r0, r4, #0 + movs r1, #4 + bl sub_0805457C + cmp r0, #0 + bne _08093DBC + movs r0, #2 + strb r0, [r4, #0xc] +_08093DBC: + ldr r1, [r4, #0x54] + ldr r0, [r4, #0x20] + str r0, [r1, #0x20] + b _08093DDE +_08093DC4: + movs r0, #0 + movs r1, #0x5f + movs r2, #0 + bl sub_080A2960 + adds r1, r0, #0 + cmp r1, #0 + beq _08093DDE + movs r0, #5 + strb r0, [r1, #0xe] + adds r0, r4, #0 + bl sub_08093E10 +_08093DDE: + pop {r4, pc} + + thumb_func_start sub_08093DE0 +sub_08093DE0: @ 0x08093DE0 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08093DF4 + movs r0, #2 + strb r0, [r2, #0xc] +_08093DF4: + ldrb r1, [r2, #0xe] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08093E06 + ldr r1, [r2, #0x54] + ldrh r0, [r1, #0x32] + adds r0, #1 + strh r0, [r1, #0x32] +_08093E06: + pop {pc} + + thumb_func_start sub_08093E08 +sub_08093E08: @ 0x08093E08 + push {lr} + bl sub_0805E7BC + pop {pc} + + thumb_func_start sub_08093E10 +sub_08093E10: @ 0x08093E10 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_0806FA24 + str r4, [r5, #0x50] + str r5, [r4, #0x54] + ldr r0, [r4, #0x20] + str r0, [r5, #0x20] + pop {r4, r5, pc} + + thumb_func_start sub_08093E24 +sub_08093E24: @ 0x08093E24 + push {lr} + ldr r2, _08093E38 @ =gUnk_0812295C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08093E38: .4byte gUnk_0812295C + + thumb_func_start sub_08093E3C +sub_08093E3C: @ 0x08093E3C + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #0 + bne _08093E6A + adds r0, r4, #0 + bl sub_08016A30 +_08093E6A: + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_08004260 + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + ldr r1, _08093EA8 @ =gUnk_08122950 + adds r2, r0, r1 + ldrh r0, [r2] + cmp r0, #0 + beq _08093E90 + ldrb r1, [r4, #0xb] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _08093E90 + ldrh r0, [r2] + bl sub_08004488 +_08093E90: + ldrb r1, [r4, #0xb] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _08093EA6 + ldrb r0, [r4, #0x19] + movs r1, #0x3f + ands r1, r0 + movs r0, #0x40 + orrs r1, r0 + strb r1, [r4, #0x19] +_08093EA6: + pop {r4, pc} + .align 2, 0 +_08093EA8: .4byte gUnk_08122950 + + thumb_func_start sub_08093EAC +sub_08093EAC: @ 0x08093EAC + push {lr} + ldr r3, _08093EC8 @ =gUnk_08122964 + ldr r2, _08093ECC @ =gUnk_08122950 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldrb r1, [r1, #2] + lsrs r1, r1, #4 + lsls r1, r1, #2 + adds r1, r1, r3 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08093EC8: .4byte gUnk_08122964 +_08093ECC: .4byte gUnk_08122950 + + thumb_func_start sub_08093ED0 +sub_08093ED0: @ 0x08093ED0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08093EEC + adds r0, r4, #0 + bl sub_0805E7BC +_08093EEC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08093EF0 +sub_08093EF0: @ 0x08093EF0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r4, [r5, #0xa] + cmp r4, #1 + beq _08093F40 + cmp r4, #1 + bgt _08093F04 + cmp r4, #0 + beq _08093F0A + b _08093FB0 +_08093F04: + cmp r4, #2 + beq _08093F98 + b _08093FB0 +_08093F0A: + ldrb r0, [r5, #0xd] + cmp r0, #0 + bne _08093FB0 + adds r0, r5, #0 + bl sub_08004274 + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08093FB0 + movs r0, #0x64 + movs r1, #1 + movs r2, #0 + bl sub_080A2960 + adds r1, r0, #0 + cmp r1, #0 + beq _08093F8E + ldr r0, [r5, #0x50] + str r0, [r1, #0x50] + adds r0, r5, #0 + bl sub_0806FA24 + b _08093F8E +_08093F40: + adds r0, r5, #0 + bl sub_08004274 + adds r1, r5, #0 + adds r1, #0x5a + ldrb r0, [r1] + ands r4, r0 + adds r6, r1, #0 + cmp r4, #0 + beq _08093F72 + movs r0, #0 + strb r0, [r6] + movs r0, #0x64 + movs r1, #2 + movs r2, #0 + bl sub_080A2960 + adds r1, r0, #0 + cmp r1, #0 + beq _08093F72 + ldr r0, [r5, #0x50] + str r0, [r1, #0x50] + adds r0, r5, #0 + bl sub_0806FA24 +_08093F72: + ldrb r1, [r6] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08093FB0 + ldr r1, [r5, #0x50] + ldr r0, _08093F94 @ =gUnk_03001160 + cmp r1, r0 + bne _08093F8E + movs r0, #0x7a + bl sub_080A3268 + bl sub_08079D84 +_08093F8E: + bl sub_0805E780 + b _08093FB0 + .align 2, 0 +_08093F94: .4byte gUnk_03001160 +_08093F98: + adds r0, r5, #0 + bl sub_08004274 + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08093FB0 + bl sub_0805E780 +_08093FB0: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08093FB4 +sub_08093FB4: @ 0x08093FB4 + push {lr} + ldr r2, _08093FC8 @ =gUnk_081229B4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08093FC8: .4byte gUnk_081229B4 + + thumb_func_start sub_08093FCC +sub_08093FCC: @ 0x08093FCC + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + adds r2, r0, #0 + adds r2, #0x38 + movs r1, #2 + strb r1, [r2] + bl sub_08016A04 + pop {pc} + + thumb_func_start sub_08093FE0 +sub_08093FE0: @ 0x08093FE0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08094064 + cmp r0, #0 + beq _08094062 + adds r3, r4, #0 + adds r3, #0x38 + ldrb r0, [r3] + cmp r0, #2 + bne _08094024 + ldr r0, _08094020 @ =gUnk_03001160 + ldrb r0, [r0, #0xc] + cmp r0, #0x1e + bgt _08094002 + cmp r0, #0x1d + bge _08094062 +_08094002: + movs r0, #1 + strb r0, [r3] + adds r0, r4, #0 + bl sub_08016A04 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + b _08094060 + .align 2, 0 +_08094020: .4byte gUnk_03001160 +_08094024: + ldr r0, _0809404C @ =gUnk_03001160 + ldrb r2, [r0, #0xc] + cmp r2, #0x1e + bgt _08094050 + cmp r2, #0x1d + blt _08094050 + movs r0, #2 + strb r0, [r3] + adds r0, r4, #0 + bl sub_08016A04 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + b _08094060 + .align 2, 0 +_0809404C: .4byte gUnk_03001160 +_08094050: + adds r2, r0, #0 + adds r2, #0x38 + ldrb r1, [r2] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08094062 + movs r0, #1 +_08094060: + strb r0, [r2] +_08094062: + pop {r4, pc} + + thumb_func_start sub_08094064 +sub_08094064: @ 0x08094064 + push {lr} + movs r2, #1 + ldr r1, _08094080 @ =gUnk_03001160 + movs r3, #0x2e + ldrsh r1, [r1, r3] + movs r3, #0x2e + ldrsh r0, [r0, r3] + subs r1, r1, r0 + adds r1, #0x1c + cmp r1, #0x38 + bls _0809407C + movs r2, #0 +_0809407C: + adds r0, r2, #0 + pop {pc} + .align 2, 0 +_08094080: .4byte gUnk_03001160 + + thumb_func_start sub_08094084 +sub_08094084: @ 0x08094084 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + movs r1, #0x36 + ldrsh r0, [r5, r1] + cmp r0, #0 + beq _0809412A + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080940CA + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #5 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_080940CA: + ldrh r0, [r5, #0x2e] + strh r0, [r4, #0x2e] + ldrh r0, [r5, #0x32] + strh r0, [r4, #0x32] + ldrb r2, [r5, #0x1b] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r4, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r4, #0x1b] + ldrb r0, [r5, #0x19] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r4, #0x19] + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #0x19] + movs r0, #0x36 + ldrsh r1, [r5, r0] + movs r0, #0x40 + rsbs r0, r0, #0 + cmp r1, r0 + ble _08094108 + movs r3, #0x80 + lsls r3, r3, #1 + movs r2, #0x80 + lsls r2, r2, #2 + b _0809411E +_08094108: + movs r1, #0x36 + ldrsh r0, [r5, r1] + adds r0, #0x40 + lsls r2, r0, #1 + movs r1, #0x80 + lsls r1, r1, #1 + subs r3, r1, r2 + lsls r0, r0, #2 + movs r1, #0x80 + lsls r1, r1, #2 + subs r2, r1, r0 +_0809411E: + adds r0, r4, #0 + adds r1, r3, #0 + movs r3, #0 + bl sub_0805EC9C + b _0809412E +_0809412A: + bl sub_0805E780 +_0809412E: + pop {r4, r5, pc} + + thumb_func_start sub_08094130 +sub_08094130: @ 0x08094130 + push {lr} + ldr r2, _08094144 @ =gUnk_081229BC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08094144: .4byte gUnk_081229BC + + thumb_func_start sub_08094148 +sub_08094148: @ 0x08094148 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #1 + bne _08094154 + b _08094254 +_08094154: + cmp r0, #1 + bgt _0809415E + cmp r0, #0 + beq _080941A8 + b _0809438A +_0809415E: + cmp r0, #2 + beq _08094164 + b _0809438A +_08094164: + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _08094180 + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0xb4 + lsls r0, r0, #1 + str r0, [r4, #0x78] + ldr r0, _0809417C @ =gUnk_03000BF0 + str r4, [r0, #0x30] + b _08094198 + .align 2, 0 +_0809417C: .4byte gUnk_03000BF0 +_08094180: + ldr r0, [r4, #0x78] + subs r0, #1 + str r0, [r4, #0x78] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _08094198 + ldr r1, _080941A0 @ =gUnk_03000BF0 + ldr r0, _080941A4 @ =gUnk_03001160 + str r0, [r1, #0x30] + bl sub_0805E780 +_08094198: + bl sub_08078B48 + b _08094394 + .align 2, 0 +_080941A0: .4byte gUnk_03000BF0 +_080941A4: .4byte gUnk_03001160 +_080941A8: + ldr r1, _08094228 @ =gUnk_081229D0 + ldrb r0, [r4, #0xb] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #1] + strb r0, [r4, #0x15] + ldrb r0, [r4, #0xb] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #2] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r2, [r4, #0x2e] + adds r0, r0, r2 + strh r0, [r4, #0x2e] + ldrb r0, [r4, #0xb] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #3] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r2, [r4, #0x32] + adds r0, r0, r2 + strh r0, [r4, #0x32] + ldrb r0, [r4, #0xb] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r2, [r0] + movs r0, #0x40 + ands r0, r2 + cmp r0, #0 + beq _080941F0 + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x18] +_080941F0: + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + beq _08094200 + ldrb r0, [r4, #0x18] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x18] +_08094200: + ldrb r0, [r4, #0xb] + cmp r0, #3 + bhi _08094230 + bl sub_08000E50 + ldr r1, _0809422C @ =0x0001FFFF + ands r1, r0 + movs r0, #0xa0 + lsls r0, r0, #0xa + orrs r0, r1 + str r0, [r4, #0x20] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + adds r0, r4, #0 + movs r1, #0x56 + bl sub_08004260 + b _0809438A + .align 2, 0 +_08094228: .4byte gUnk_081229D0 +_0809422C: .4byte 0x0001FFFF +_08094230: + movs r0, #0xa0 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + ldrb r1, [r4, #0x15] + orrs r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #0x57 + bl sub_08004260 + b _0809438A +_08094254: + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _08094272 + adds r0, r4, #0 + movs r1, #0x67 + movs r2, #1 + movs r3, #0x80 + bl sub_080A2988 + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _08094272 + ldr r0, [r4, #0x50] + str r0, [r1, #0x54] +_08094272: + ldrb r0, [r4, #0xb] + cmp r0, #0x80 + bne _0809427A + b _08094380 +_0809427A: + movs r2, #0 + movs r0, #0x4b + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x19] + subs r0, #0x58 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + movs r1, #0xe0 + lsls r1, r1, #7 + strh r1, [r4, #0x24] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r0, [r3] + movs r1, #7 + orrs r0, r1 + strb r0, [r3] + ldrb r0, [r4, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x19] + ldrb r0, [r4, #0xb] + lsls r0, r0, #3 + ldr r1, _080942E8 @ =gUnk_081229F0 + adds r3, r0, r1 + movs r0, #0 + ldrsb r0, [r3, r0] + ldrh r1, [r4, #0x2e] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + movs r0, #1 + ldrsb r0, [r3, r0] + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + ldrb r0, [r3, #2] + strb r0, [r4, #0xe] + ldrb r0, [r3, #3] + strb r0, [r4, #0xf] + movs r0, #0xce + str r0, [r4, #0x7c] + str r2, [r4, #0x74] + ldrb r1, [r3, #4] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080942EC + adds r1, r4, #0 + adds r1, #0x82 + movs r0, #0xff + lsls r0, r0, #8 + b _080942F4 + .align 2, 0 +_080942E8: .4byte gUnk_081229F0 +_080942EC: + adds r1, r4, #0 + adds r1, #0x82 + movs r0, #0x80 + lsls r0, r0, #1 +_080942F4: + strh r0, [r1] + ldrb r1, [r3, #4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809430A + adds r1, r4, #0 + adds r1, #0x86 + movs r0, #0xff + lsls r0, r0, #8 + b _08094312 +_0809430A: + adds r1, r4, #0 + adds r1, #0x86 + movs r0, #0x80 + lsls r0, r0, #1 +_08094312: + strh r0, [r1] + adds r0, r4, #0 + bl sub_0806FBD8 + cmp r0, #0 + beq _0809438A + ldr r2, [r4, #0x48] + ldr r1, _0809437C @ =gUnk_080FD2E8 + ldrb r0, [r1] + strb r0, [r2] + ldr r2, [r4, #0x48] + ldrb r0, [r1, #1] + strb r0, [r2, #1] + ldr r2, [r4, #0x48] + ldrb r0, [r1, #2] + strb r0, [r2, #2] + ldr r2, [r4, #0x48] + ldrb r0, [r1, #3] + strb r0, [r2, #3] + ldr r2, [r4, #0x48] + ldrb r0, [r1, #4] + strb r0, [r2, #4] + ldr r2, [r4, #0x48] + ldrb r0, [r1, #5] + strb r0, [r2, #5] + ldr r2, [r4, #0x48] + ldrb r0, [r1, #6] + strb r0, [r2, #6] + ldr r2, [r4, #0x48] + ldrb r0, [r1, #7] + strb r0, [r2, #7] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r1, #4 + movs r0, #7 + strb r0, [r1] + adds r1, #4 + movs r0, #0x48 + strb r0, [r1] + subs r1, #1 + movs r0, #0x7a + strb r0, [r1] + subs r1, #4 + movs r0, #1 + strb r0, [r1] + b _0809438A + .align 2, 0 +_0809437C: .4byte gUnk_080FD2E8 +_08094380: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_0809438A: + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_08094398 +_08094394: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08094398 +sub_08094398: @ 0x08094398 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _080943A8 + cmp r0, #1 + beq _080943D8 + b _08094420 +_080943A8: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0806F69C + movs r1, #0x80 + lsls r1, r1, #7 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08094420 + ldrb r0, [r4, #0xb] + cmp r0, #3 + bhi _080943D2 + adds r0, r4, #0 + movs r1, #0xc + movs r2, #0 + bl sub_080A29AC +_080943D2: + bl sub_0805E780 + b _08094420 +_080943D8: + ldrb r1, [r4, #0xb] + cmp r1, #0x80 + beq _0809440A + ldr r0, [r4, #0x7c] + subs r0, #1 + str r0, [r4, #0x7c] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _080943F6 + movs r0, #0x96 + lsls r0, r0, #2 + str r0, [r4, #0x7c] + movs r0, #2 + strb r0, [r4, #0xc] +_080943F6: + adds r0, r4, #0 + adds r0, #0x82 + ldrh r1, [r0] + adds r0, #4 + ldrh r2, [r0] + adds r0, r4, #0 + movs r3, #0 + bl sub_0805EC9C + b _08094420 +_0809440A: + ldr r0, [r4, #0x54] + adds r0, #0x79 + ldrb r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _0809441A + bl sub_0805E780 +_0809441A: + adds r0, r4, #0 + bl sub_08094660 +_08094420: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08094424 +sub_08094424: @ 0x08094424 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + adds r3, r6, #0 + adds r3, #0x82 + movs r1, #0 + ldrsh r0, [r3, r1] + cmp r0, #0 + bge _08094452 + adds r1, r6, #0 + adds r1, #0x80 + movs r0, #0x24 + ldrsh r2, [r6, r0] + ldr r0, [r1] + adds r0, r0, r2 + str r0, [r1] + movs r2, #0 + ldrsh r0, [r3, r2] + rsbs r0, r0, #0 + mov r8, r0 + adds r5, r1, #0 + b _08094466 +_08094452: + adds r0, r6, #0 + adds r0, #0x80 + movs r1, #0x24 + ldrsh r2, [r6, r1] + ldr r1, [r0] + subs r1, r1, r2 + str r1, [r0] + ldrh r3, [r3] + mov r8, r3 + adds r5, r0, #0 +_08094466: + adds r0, r6, #0 + adds r0, #0x86 + movs r2, #0 + ldrsh r1, [r0, r2] + adds r4, r0, #0 + cmp r1, #0 + bge _0809448C + adds r1, r6, #0 + adds r1, #0x84 + movs r0, #0x24 + ldrsh r2, [r6, r0] + ldr r0, [r1] + adds r0, r0, r2 + str r0, [r1] + movs r2, #0 + ldrsh r0, [r4, r2] + rsbs r7, r0, #0 + adds r3, r1, #0 + b _0809449E +_0809448C: + adds r0, r6, #0 + adds r0, #0x84 + movs r1, #0x24 + ldrsh r2, [r6, r1] + ldr r1, [r0] + subs r1, r1, r2 + str r1, [r0] + ldrh r7, [r4] + adds r3, r0, #0 +_0809449E: + ldrh r2, [r6, #0x24] + movs r0, #0x24 + ldrsh r1, [r6, r0] + movs r0, #0x80 + lsls r0, r0, #6 + cmp r1, r0 + ble _080944B2 + ldr r1, _080944D0 @ =0xFFFFFF00 + adds r0, r2, r1 + strh r0, [r6, #0x24] +_080944B2: + ldr r0, [r6, #0x7c] + subs r0, #1 + str r0, [r6, #0x7c] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _080944D4 + movs r0, #0 + strh r0, [r5] + strh r0, [r3] + movs r0, #3 + strb r0, [r6, #0xc] + movs r0, #0x78 + str r0, [r6, #0x7c] + b _08094500 + .align 2, 0 +_080944D0: .4byte 0xFFFFFF00 +_080944D4: + adds r5, r6, #0 + adds r5, #0x82 + movs r2, #0 + ldrsh r1, [r5, r2] + ldrb r3, [r6, #0xe] + adds r0, r6, #0 + movs r2, #0x20 + bl sub_0806FCF4 + movs r0, #0 + ldrsh r1, [r4, r0] + ldrb r3, [r6, #0xf] + adds r0, r6, #0 + movs r2, #0x20 + bl sub_0806FCF4 + ldrh r1, [r5] + ldrh r2, [r4] + adds r0, r6, #0 + movs r3, #0 + bl sub_0805EC9C +_08094500: + ldr r5, [r6, #0x48] + cmp r5, #0 + beq _08094538 + movs r4, #0x80 + lsls r4, r4, #9 + adds r0, r4, #0 + mov r1, r8 + bl __divsi3 + lsrs r0, r0, #3 + strb r0, [r5, #6] + ldr r5, [r6, #0x48] + adds r0, r4, #0 + adds r1, r7, #0 + bl __divsi3 + lsrs r0, r0, #3 + strb r0, [r5, #7] + ldr r1, [r6, #0x48] + adds r0, r6, #0 + adds r0, #0x62 + ldrb r0, [r0] + strb r0, [r1] + ldr r1, [r6, #0x48] + adds r0, r6, #0 + adds r0, #0x63 + ldrb r0, [r0] + strb r0, [r1, #1] +_08094538: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08094540 +sub_08094540: @ 0x08094540 + push {lr} + adds r3, r0, #0 + ldr r0, [r3, #0x7c] + subs r0, #1 + str r0, [r3, #0x7c] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _0809455A + movs r0, #4 + strb r0, [r3, #0xc] + movs r0, #2 + str r0, [r3, #0x7c] +_0809455A: + adds r0, r3, #0 + adds r0, #0x82 + ldrh r1, [r0] + adds r0, #4 + ldrh r2, [r0] + adds r0, r3, #0 + movs r3, #0 + bl sub_0805EC9C + pop {pc} + .align 2, 0 + + thumb_func_start sub_08094570 +sub_08094570: @ 0x08094570 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + adds r2, r6, #0 + adds r2, #0x82 + ldrh r1, [r2] + lsls r3, r1, #0x10 + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + beq _08094590 + asrs r3, r3, #0x10 + ldr r0, _080945B0 @ =0xFFFFFF00 + cmp r3, r0 + bne _080945BA +_08094590: + ldr r1, [r6, #0x7c] + cmp r1, #0 + bne _080945B4 + ldr r0, [r6, #0x50] + adds r0, #0x7c + strh r1, [r0] + ldr r0, [r6, #0x50] + adds r0, #0x79 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08094622 + bl sub_0805E780 + b _08094622 + .align 2, 0 +_080945B0: .4byte 0xFFFFFF00 +_080945B4: + subs r0, r1, #1 + str r0, [r6, #0x7c] + b _08094622 +_080945BA: + cmp r3, #0 + bge _080945CC + subs r0, r1, #1 + strh r0, [r2] + movs r1, #0 + ldrsh r0, [r2, r1] + rsbs r0, r0, #0 + mov r8, r0 + b _080945D4 +_080945CC: + adds r0, r1, #1 + strh r0, [r2] + ldrh r2, [r2] + mov r8, r2 +_080945D4: + adds r0, r6, #0 + adds r0, #0x86 + ldrh r2, [r0] + movs r3, #0 + ldrsh r1, [r0, r3] + adds r4, r0, #0 + cmp r1, #0 + bge _080945F0 + subs r0, r2, #1 + strh r0, [r4] + movs r1, #0 + ldrsh r0, [r4, r1] + rsbs r7, r0, #0 + b _080945F6 +_080945F0: + adds r0, r2, #1 + strh r0, [r4] + ldrh r7, [r4] +_080945F6: + adds r5, r6, #0 + adds r5, #0x82 + movs r3, #0 + ldrsh r1, [r5, r3] + ldrb r3, [r6, #0xe] + adds r0, r6, #0 + movs r2, #0x20 + bl sub_0806FCF4 + movs r0, #0 + ldrsh r1, [r4, r0] + ldrb r3, [r6, #0xf] + adds r0, r6, #0 + movs r2, #0x20 + bl sub_0806FCF4 + ldrh r1, [r5] + ldrh r2, [r4] + adds r0, r6, #0 + movs r3, #0 + bl sub_0805EC9C +_08094622: + ldr r5, [r6, #0x48] + cmp r5, #0 + beq _0809465A + movs r4, #0x80 + lsls r4, r4, #9 + adds r0, r4, #0 + mov r1, r8 + bl __divsi3 + lsrs r0, r0, #3 + strb r0, [r5, #6] + ldr r5, [r6, #0x48] + adds r0, r4, #0 + adds r1, r7, #0 + bl __divsi3 + lsrs r0, r0, #3 + strb r0, [r5, #7] + ldr r1, [r6, #0x48] + adds r0, r6, #0 + adds r0, #0x62 + ldrb r0, [r0] + strb r0, [r1] + ldr r1, [r6, #0x48] + adds r0, r6, #0 + adds r0, #0x63 + ldrb r0, [r0] + strb r0, [r1, #1] +_0809465A: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08094660 +sub_08094660: @ 0x08094660 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r6, r0, #0 + ldr r0, [r6, #0x50] + adds r0, #0x62 + movs r7, #0 + ldrsb r7, [r0, r7] + cmp r7, #0 + bge _08094678 + rsbs r7, r7, #0 +_08094678: + lsls r7, r7, #1 + adds r0, r7, #0 + cmp r7, #0 + bge _08094682 + adds r0, #0xf +_08094682: + asrs r1, r0, #4 + ldr r0, [r6, #0x74] + cmp r0, r1 + bhs _08094700 + str r1, [r6, #0x74] + movs r1, #0x2e + ldrsh r0, [r6, r1] + subs r0, r0, r7 + adds r4, r0, #0 + subs r4, #0x40 + movs r1, #0x32 + ldrsh r0, [r6, r1] + subs r0, r0, r7 + adds r5, r0, #0 + subs r5, #0x40 + movs r0, #0x10 + mov sb, r0 + str r0, [r6, #0x78] + movs r1, #0 + mov r8, r1 + str r1, [r6, #0x7c] + adds r0, r6, #0 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_08094708 + mov r0, r8 + str r0, [r6, #0x78] + mov r1, sb + str r1, [r6, #0x7c] + adds r0, r6, #0 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_08094708 + movs r1, #0x2e + ldrsh r0, [r6, r1] + adds r0, r0, r7 + adds r4, r0, #0 + adds r4, #0x30 + movs r1, #0x32 + ldrsh r0, [r6, r1] + adds r0, r0, r7 + adds r5, r0, #0 + adds r5, #0x30 + movs r7, #0x10 + rsbs r7, r7, #0 + str r7, [r6, #0x78] + mov r0, r8 + str r0, [r6, #0x7c] + adds r0, r6, #0 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_08094708 + mov r1, r8 + str r1, [r6, #0x78] + str r7, [r6, #0x7c] + adds r0, r6, #0 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_08094708 +_08094700: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08094708 +sub_08094708: @ 0x08094708 + push {r4, r5, r6, r7, lr} + sub sp, #8 + adds r7, r0, #0 + adds r6, r1, #0 + adds r5, r2, #0 + ldr r0, [r7, #0x74] + lsls r0, r0, #1 + adds r4, r0, #0 + adds r4, #8 + cmp r4, #0 + beq _08094752 + ldr r3, _08094758 @ =gUnk_03000BF0 + movs r2, #0x3f +_08094722: + ldrh r0, [r3, #6] + subs r0, r6, r0 + lsrs r0, r0, #4 + ands r0, r2 + ldrh r1, [r3, #8] + subs r1, r5, r1 + lsrs r1, r1, #4 + ands r1, r2 + lsls r1, r1, #6 + orrs r0, r1 + movs r1, #2 + str r2, [sp] + str r3, [sp, #4] + bl sub_0807BA8C + ldr r0, [r7, #0x78] + adds r6, r6, r0 + ldr r0, [r7, #0x7c] + adds r5, r5, r0 + subs r4, #1 + ldr r2, [sp] + ldr r3, [sp, #4] + cmp r4, #0 + bne _08094722 +_08094752: + add sp, #8 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08094758: .4byte gUnk_03000BF0 + + thumb_func_start sub_0809475C +sub_0809475C: @ 0x0809475C + push {lr} + ldr r2, _08094770 @ =gUnk_08122A10 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08094770: .4byte gUnk_08122A10 + + thumb_func_start sub_08094774 +sub_08094774: @ 0x08094774 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r0, [r5, #0xa] + cmp r0, #8 + bls _08094784 + b _080948C6 +_08094784: + lsls r0, r0, #2 + ldr r1, _08094790 @ =_08094794 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08094790: .4byte _08094794 +_08094794: @ jump table + .4byte _080947B8 @ case 0 + .4byte _08094824 @ case 1 + .4byte _080948B0 @ case 2 + .4byte _080948C6 @ case 3 + .4byte _080948C6 @ case 4 + .4byte _080948C6 @ case 5 + .4byte _080948C6 @ case 6 + .4byte _080948C6 @ case 7 + .4byte _080948C6 @ case 8 +_080947B8: + adds r0, r5, #0 + movs r1, #0xb + movs r2, #0 + bl sub_080A29AC + adds r6, r0, #0 + str r6, [r5, #0x54] + cmp r6, #0 + beq _080947EE + ldr r0, _0809480C @ =gUnk_03001160 + ldr r4, _08094810 @ =gUnk_08122A18 + ldrb r3, [r0, #0x14] + movs r1, #6 + ands r1, r3 + adds r1, r1, r4 + movs r2, #0 + ldrsb r2, [r1, r2] + lsls r2, r2, #0x10 + movs r1, #1 + orrs r1, r3 + adds r1, r1, r4 + movs r3, #0 + ldrsb r3, [r1, r3] + lsls r3, r3, #0x10 + adds r1, r6, #0 + bl sub_0806FA48 +_080947EE: + ldr r0, [r5, #0x54] + adds r1, r5, #0 + bl sub_0806FA24 + ldr r1, _08094814 @ =0x00004032 + ldr r2, _08094818 @ =0x00004033 + adds r0, r5, #0 + bl sub_08094980 + ldr r1, _0809481C @ =0x00004061 + ldr r2, _08094820 @ =0x00004022 + adds r0, r5, #0 + bl sub_08094980 + b _080948C6 + .align 2, 0 +_0809480C: .4byte gUnk_03001160 +_08094810: .4byte gUnk_08122A18 +_08094814: .4byte 0x00004032 +_08094818: .4byte 0x00004033 +_0809481C: .4byte 0x00004061 +_08094820: .4byte 0x00004022 +_08094824: + adds r0, r5, #0 + movs r1, #0x2b + movs r2, #0 + bl sub_080A29AC + adds r6, r0, #0 + str r6, [r5, #0x54] + cmp r6, #0 + beq _0809485A + ldr r0, _08094898 @ =gUnk_03001160 + ldr r4, _0809489C @ =gUnk_08122A18 + ldrb r3, [r0, #0x14] + movs r1, #6 + ands r1, r3 + adds r1, r1, r4 + movs r2, #0 + ldrsb r2, [r1, r2] + lsls r2, r2, #0x10 + movs r1, #1 + orrs r1, r3 + adds r1, r1, r4 + movs r3, #0 + ldrsb r3, [r1, r3] + lsls r3, r3, #0x10 + adds r1, r6, #0 + bl sub_0806FA48 +_0809485A: + ldrb r4, [r5, #0xb] + cmp r4, #0 + bne _080948C6 + ldr r0, [r5, #0x54] + adds r1, r5, #0 + bl sub_0806FA24 + strb r4, [r5, #0xe] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldrb r1, [r5, #0x19] + movs r0, #0x3f + ands r0, r1 + strb r0, [r5, #0x19] + ldr r1, _080948A0 @ =0x0000403B + ldr r2, _080948A4 @ =0x0000403C + adds r0, r5, #0 + bl sub_08094980 + ldr r1, _080948A8 @ =0x00004061 + ldr r2, _080948AC @ =0x00004022 + adds r0, r5, #0 + bl sub_08094980 + b _080948CA + .align 2, 0 +_08094898: .4byte gUnk_03001160 +_0809489C: .4byte gUnk_08122A18 +_080948A0: .4byte 0x0000403B +_080948A4: .4byte 0x0000403C +_080948A8: .4byte 0x00004061 +_080948AC: .4byte 0x00004022 +_080948B0: + ldr r0, _080948CC @ =gUnk_03001160 + movs r1, #0x60 + movs r2, #0 + bl sub_080A2A20 + adds r1, r0, #0 + str r1, [r5, #0x54] + cmp r1, #0 + beq _080948C6 + movs r0, #1 + strb r0, [r1, #0xe] +_080948C6: + bl sub_0805E780 +_080948CA: + pop {r4, r5, r6, pc} + .align 2, 0 +_080948CC: .4byte gUnk_03001160 + + thumb_func_start sub_080948D0 +sub_080948D0: @ 0x080948D0 + push {lr} + ldr r2, _080948E4 @ =gUnk_08122A20 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080948E4: .4byte gUnk_08122A20 + + thumb_func_start sub_080948E8 +sub_080948E8: @ 0x080948E8 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xe] + cmp r1, #0x3b + bhi _08094978 + ldr r0, [r4, #0x34] + ldr r2, _0809495C @ =0xFFFFC000 + adds r0, r0, r2 + str r0, [r4, #0x34] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _08094970 + adds r0, r4, #0 + movs r1, #0x11 + movs r2, #0x40 + bl sub_080A29AC + adds r3, r0, #0 + str r3, [r4, #0x54] + cmp r3, #0 + beq _08094970 + ldrb r1, [r4, #0x19] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r3, #0x19] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x19] + ldr r2, [r4, #0x54] + adds r0, r4, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + adds r2, #0x29 + lsrs r1, r1, #0x1d + ldrb r3, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _08094960 + bl sub_08000E50 + ldr r2, [r4, #0x54] + movs r1, #0xf + ands r0, r1 + ldrh r1, [r2, #0x2e] + adds r0, r0, r1 + strh r0, [r2, #0x2e] + b _08094970 + .align 2, 0 +_0809495C: .4byte 0xFFFFC000 +_08094960: + bl sub_08000E50 + ldr r2, [r4, #0x54] + movs r1, #0xf + ands r0, r1 + ldrh r1, [r2, #0x2e] + subs r1, r1, r0 + strh r1, [r2, #0x2e] +_08094970: + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + b _0809497C +_08094978: + bl sub_0805E780 +_0809497C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08094980 +sub_08094980: @ 0x08094980 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + adds r6, r0, #0 + str r1, [sp] + str r2, [sp, #4] + movs r0, #0 + mov r8, r0 + ldr r1, _08094A04 @ =gUnk_03000BF0 + mov sl, r1 + movs r2, #0x3f + mov sb, r2 + ldr r7, _08094A08 @ =gUnk_08122A28 +_080949A0: + movs r4, #0 + ldrsb r4, [r7, r4] + movs r5, #1 + ldrsb r5, [r7, r5] + adds r0, r6, #0 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_0800029C + ldr r3, [sp] + cmp r3, r0 + bne _080949EC + movs r0, #0x2e + ldrsh r1, [r6, r0] + adds r1, r1, r4 + mov r2, sl + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + mov r3, sb + ands r1, r3 + movs r2, #0x32 + ldrsh r0, [r6, r2] + adds r0, r0, r5 + mov r3, sl + ldrh r2, [r3, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + mov r2, sb + ands r0, r2 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r6, #0 + adds r0, #0x38 + ldrb r2, [r0] + ldr r0, [sp, #4] + bl sub_0800015E +_080949EC: + adds r7, #2 + movs r3, #2 + add r8, r3 + mov r0, r8 + cmp r0, #9 + bls _080949A0 + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08094A04: .4byte gUnk_03000BF0 +_08094A08: .4byte gUnk_08122A28 + + thumb_func_start sub_08094A0C +sub_08094A0C: @ 0x08094A0C + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08094A3E + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _08094A34 + movs r0, #1 + strb r0, [r2, #0xc] + ldr r0, _08094A30 @ =gUnk_080FD170 + str r0, [r2, #0x48] + adds r0, r2, #0 + bl sub_0807DD50 + b _08094A42 + .align 2, 0 +_08094A30: .4byte gUnk_080FD170 +_08094A34: + adds r0, r2, #0 + movs r1, #0 + bl sub_0807DD94 + b _08094A42 +_08094A3E: + movs r0, #1 + strb r0, [r2, #0xc] +_08094A42: + pop {pc} + + thumb_func_start sub_08094A44 +sub_08094A44: @ 0x08094A44 + push {lr} + ldr r2, _08094A58 @ =gUnk_08122A34 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08094A58: .4byte gUnk_08122A34 + + thumb_func_start sub_08094A5C +sub_08094A5C: @ 0x08094A5C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08094A78 + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 +_08094A78: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08094A90 +sub_08094A90: @ 0x08094A90 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08094ACE + adds r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 + ldr r1, _08094AE4 @ =gUnk_08114F30 + ldrb r2, [r4, #0x19] + lsrs r0, r2, #6 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r1, r1, #6 + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0807DD64 +_08094ACE: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 +_08094AE4: .4byte gUnk_08114F30 + + thumb_func_start sub_08094AE8 +sub_08094AE8: @ 0x08094AE8 + push {r4, r5, lr} + adds r5, r1, #0 + movs r0, #0x6a + movs r1, #1 + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _08094B08 + ldr r1, [r5, #4] + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] +_08094B08: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08094B0C +sub_08094B0C: @ 0x08094B0C + push {lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x36] + subs r0, #1 + movs r3, #0 + strh r0, [r2, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x20 + rsbs r1, r1, #0 + cmp r0, r1 + bgt _08094B30 + ldr r0, _08094B2C @ =0x0000FFE0 + strh r0, [r2, #0x36] + b _08094B34 + .align 2, 0 +_08094B2C: .4byte 0x0000FFE0 +_08094B30: + ldr r0, _08094B38 @ =gUnk_02033280 + strb r3, [r0, #6] +_08094B34: + pop {pc} + .align 2, 0 +_08094B38: .4byte gUnk_02033280 + + thumb_func_start sub_08094B3C +sub_08094B3C: @ 0x08094B3C + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x34] + movs r1, #0x80 + lsls r1, r1, #8 + adds r0, r0, r1 + str r0, [r2, #0x34] + movs r0, #0x36 + ldrsh r1, [r2, r0] + movs r0, #0xd + rsbs r0, r0, #0 + cmp r1, r0 + blt _08094B60 + ldr r0, _08094B5C @ =0x0000FFF3 + strh r0, [r2, #0x36] + b _08094B66 + .align 2, 0 +_08094B5C: .4byte 0x0000FFF3 +_08094B60: + ldr r1, _08094B68 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_08094B66: + pop {pc} + .align 2, 0 +_08094B68: .4byte gUnk_02033280 + + thumb_func_start sub_08094B6C +sub_08094B6C: @ 0x08094B6C + adds r0, #0x29 + ldrb r2, [r0] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #0x18 + orrs r1, r2 + strb r1, [r0] + bx lr + .align 2, 0 + + thumb_func_start sub_08094B80 +sub_08094B80: @ 0x08094B80 + adds r0, #0x29 + ldrb r2, [r0] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #0x10 + orrs r1, r2 + strb r1, [r0] + bx lr + .align 2, 0 + + thumb_func_start sub_08094B94 +sub_08094B94: @ 0x08094B94 + push {r4, lr} + movs r0, #0x6a + movs r1, #0x22 + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _08094BD2 + ldr r0, _08094BD4 @ =gUnk_03001160 + adds r1, r4, #0 + bl sub_0806FA24 + ldr r0, _08094BD8 @ =0x0000FFD0 + strh r0, [r4, #0x36] + ldr r1, _08094BDC @ =gUnk_0800AEDC + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] + adds r0, r4, #0 + bl sub_080A29BC + ldrh r0, [r4, #0x36] + adds r0, #0x10 + strh r0, [r4, #0x36] + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] +_08094BD2: + pop {r4, pc} + .align 2, 0 +_08094BD4: .4byte gUnk_03001160 +_08094BD8: .4byte 0x0000FFD0 +_08094BDC: .4byte gUnk_0800AEDC + + thumb_func_start sub_08094BE0 +sub_08094BE0: @ 0x08094BE0 + push {r4, lr} + sub sp, #4 + movs r0, #0 + str r0, [sp] + movs r0, #6 + movs r1, #0x6a + movs r2, #6 + movs r3, #0x22 + bl sub_0805EB2C + adds r4, r0, #0 + cmp r4, #0 + beq _08094C22 + ldr r0, _08094C28 @ =gUnk_03001160 + adds r1, r4, #0 + bl sub_0806FA24 + ldr r0, _08094C2C @ =0x0000FFF4 + strh r0, [r4, #0x36] + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC +_08094C22: + add sp, #4 + pop {r4, pc} + .align 2, 0 +_08094C28: .4byte gUnk_03001160 +_08094C2C: .4byte 0x0000FFF4 + + thumb_func_start sub_08094C30 +sub_08094C30: @ 0x08094C30 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + cmp r5, #0 + beq _08094C40 + ldr r0, [r5, #4] + cmp r0, #0 + bne _08094C44 +_08094C40: + bl sub_0805E780 +_08094C44: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08094C74 + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + ldr r1, _08094C84 @ =gUnk_08114F30 + ldrb r0, [r5, #0x19] + lsrs r0, r0, #6 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r1, r1, #6 + ldrb r2, [r4, #0x19] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC +_08094C74: + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + .align 2, 0 +_08094C84: .4byte gUnk_08114F30 + + thumb_func_start sub_08094C88 +sub_08094C88: @ 0x08094C88 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r1, [r5, #0xc] + cmp r1, #0 + beq _08094CA0 + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08094CCC + bl sub_0805E780 + b _08094CDA +_08094CA0: + adds r0, r1, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #0x18] + adds r0, r5, #0 + movs r1, #3 + bl sub_0805E3A0 + ldrb r0, [r5, #0xb] + cmp r0, #0x43 + bgt _08094CCC + cmp r0, #0x40 + blt _08094CCC + adds r0, r5, #0 + adds r1, r5, #0 + bl sub_0806FAD8 +_08094CCC: + ldrb r4, [r5, #0xa] + ldrb r0, [r5, #0xb] + strb r0, [r5, #0xa] + adds r0, r5, #0 + bl sub_08080CB4 + strb r4, [r5, #0xa] +_08094CDA: + pop {r4, r5, pc} + + thumb_func_start sub_08094CDC +sub_08094CDC: @ 0x08094CDC + push {lr} + movs r0, #0x6a + movs r1, #3 + movs r2, #0x62 + bl sub_080A2960 + adds r2, r0, #0 + cmp r2, #0 + beq _08094D0A + ldr r1, _08094D0C @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + adds r0, #0xe0 + strh r0, [r2, #0x2e] + movs r3, #0x96 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r2, #0x32] + movs r0, #0xa2 + lsls r0, r0, #1 + bl sub_080A3268 +_08094D0A: + pop {pc} + .align 2, 0 +_08094D0C: .4byte gUnk_03000BF0 + + thumb_func_start sub_08094D10 +sub_08094D10: @ 0x08094D10 + push {lr} + sub sp, #4 + movs r0, #0x62 + str r0, [sp] + movs r0, #6 + movs r1, #0x6a + movs r2, #6 + movs r3, #3 + bl sub_0805EB2C + adds r1, r0, #0 + cmp r1, #0 + beq _08094D2E + movs r0, #0xff + strb r0, [r1, #0xc] +_08094D2E: + add sp, #4 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08094D34 +sub_08094D34: @ 0x08094D34 + push {lr} + movs r0, #0x6a + movs r1, #0x15 + movs r2, #0xd + bl sub_080A2960 + adds r2, r0, #0 + cmp r2, #0 + beq _08094D68 + ldr r1, _08094D6C @ =gUnk_03000BF0 + movs r3, #0x80 + lsls r3, r3, #1 + adds r0, r3, #0 + ldrh r3, [r1, #6] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + movs r3, #0x96 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r2, #0x32] + movs r0, #0xa2 + lsls r0, r0, #1 + bl sub_080A3268 +_08094D68: + pop {pc} + .align 2, 0 +_08094D6C: .4byte gUnk_03000BF0 + + thumb_func_start sub_08094D70 +sub_08094D70: @ 0x08094D70 + push {lr} + sub sp, #4 + movs r0, #0xd + str r0, [sp] + movs r0, #6 + movs r1, #0x6a + movs r2, #6 + movs r3, #0x15 + bl sub_0805EB2C + adds r1, r0, #0 + cmp r1, #0 + beq _08094D8E + movs r0, #0xff + strb r0, [r1, #0xc] +_08094D8E: + add sp, #4 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08094D94 +sub_08094D94: @ 0x08094D94 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xc] + cmp r1, #0 + beq _08094DAC + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08094DCE + bl sub_0805E780 + b _08094DD4 +_08094DAC: + adds r0, r1, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #3 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC +_08094DCE: + adds r0, r4, #0 + bl sub_080042B8 +_08094DD4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08094DD8 +sub_08094DD8: @ 0x08094DD8 + push {lr} + movs r0, #0x6a + movs r1, #4 + movs r2, #0 + bl sub_080A2960 + adds r2, r0, #0 + cmp r2, #0 + beq _08094E06 + ldr r1, _08094E08 @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + adds r0, #0xf0 + strh r0, [r2, #0x2e] + movs r3, #0x96 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r2, #0x32] + movs r0, #0xa2 + lsls r0, r0, #1 + bl sub_080A3268 +_08094E06: + pop {pc} + .align 2, 0 +_08094E08: .4byte gUnk_03000BF0 + + thumb_func_start sub_08094E0C +sub_08094E0C: @ 0x08094E0C + push {lr} + sub sp, #4 + movs r0, #0 + str r0, [sp] + movs r0, #6 + movs r1, #0x6a + movs r2, #6 + movs r3, #4 + bl sub_0805EB2C + adds r1, r0, #0 + cmp r1, #0 + beq _08094E2A + movs r0, #0xff + strb r0, [r1, #0xc] +_08094E2A: + add sp, #4 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08094E30 +sub_08094E30: @ 0x08094E30 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _08094E88 + ldr r0, _08094E80 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #0x1f + ands r0, r1 + cmp r0, #0 + beq _08094E48 + b _08094F94 +_08094E48: + movs r0, #0x6a + movs r1, #5 + movs r2, #1 + bl sub_080A2960 + adds r5, r0, #0 + cmp r5, #0 + bne _08094E5A + b _08094F94 +_08094E5A: + bl sub_08000E50 + ldr r4, _08094E84 @ =gUnk_03000BF0 + movs r1, #0xf0 + bl __modsi3 + ldrh r1, [r4, #0xa] + adds r1, r1, r0 + strh r1, [r5, #0x2e] + bl sub_08000E50 + movs r1, #0xa0 + bl __modsi3 + ldrh r1, [r4, #0xc] + adds r1, r1, r0 + strh r1, [r5, #0x32] + b _08094F94 + .align 2, 0 +_08094E80: .4byte gUnk_030010A0 +_08094E84: .4byte gUnk_03000BF0 +_08094E88: + cmp r0, #1 + bne _08094F44 + ldrb r1, [r4, #0xc] + cmp r1, #1 + beq _08094ED4 + cmp r1, #1 + bgt _08094E9C + cmp r1, #0 + beq _08094EA6 + b _08094F94 +_08094E9C: + cmp r1, #2 + beq _08094F08 + cmp r1, #3 + beq _08094F22 + b _08094F94 +_08094EA6: + strb r0, [r4, #0xc] + ldr r0, _08094ED0 @ =0xFF600000 + str r0, [r4, #0x34] + str r1, [r4, #0x20] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_080002B8 + cmp r0, #0xd + bne _08094F94 + movs r0, #3 + strb r0, [r4, #0xc] + b _08094F94 + .align 2, 0 +_08094ED0: .4byte 0xFF600000 +_08094ED4: + ldr r1, [r4, #0x34] + ldr r0, [r4, #0x20] + subs r1, r1, r0 + str r1, [r4, #0x34] + ldr r2, _08094F04 @ =0xFFFFE000 + adds r0, r0, r2 + str r0, [r4, #0x20] + cmp r1, #0 + ble _08094F94 + ldrb r0, [r4, #0xc] + adds r0, #1 + movs r1, #0 + strb r0, [r4, #0xc] + str r1, [r4, #0x34] + str r1, [r4, #0x20] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + movs r0, #0xbf + lsls r0, r0, #1 + bl sub_08004488 + b _08094F94 + .align 2, 0 +_08094F04: .4byte 0xFFFFE000 +_08094F08: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08094F94 + bl sub_0805E780 + b _08094F94 +_08094F22: + ldr r0, [r4, #0x34] + ldr r1, [r4, #0x20] + subs r0, r0, r1 + str r0, [r4, #0x34] + ldr r0, _08094F40 @ =0xFFFFE000 + adds r1, r1, r0 + str r1, [r4, #0x20] + adds r0, r4, #0 + bl sub_080040A8 + cmp r0, #0 + bne _08094F94 + bl sub_0805E780 + b _08094F94 + .align 2, 0 +_08094F40: .4byte 0xFFFFE000 +_08094F44: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08094F94 + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xe] + cmp r0, #1 + beq _08094F68 + cmp r0, #1 + bgt _08094F5E + cmp r0, #0 + beq _08094F7A + b _08094F94 +_08094F5E: + cmp r0, #2 + beq _08094F72 + cmp r0, #3 + beq _08094F84 + b _08094F94 +_08094F68: + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + b _08094F94 +_08094F72: + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x18] +_08094F7A: + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + b _08094F94 +_08094F84: + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 +_08094F94: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08094F98 +sub_08094F98: @ 0x08094F98 + push {lr} + movs r0, #0x6a + movs r1, #5 + movs r2, #0 + bl sub_080A2960 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08094FA8 +sub_08094FA8: @ 0x08094FA8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #4 + bhi _08095086 + lsls r0, r0, #2 + ldr r1, _08094FBC @ =_08094FC0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08094FBC: .4byte _08094FC0 +_08094FC0: @ jump table + .4byte _08094FD4 @ case 0 + .4byte _08094FF0 @ case 1 + .4byte _08095024 @ case 2 + .4byte _08095040 @ case 3 + .4byte _08095070 @ case 4 +_08094FD4: + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0x1e] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_080787B4 + b _08095086 +_08094FF0: + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08095086 + movs r0, #0 + strb r0, [r1] + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_080788E0 + ldr r0, _08095020 @ =gUnk_03003F80 + movs r1, #0xc + strb r1, [r0, #0xc] + adds r0, #0x38 + movs r1, #0x36 + strb r1, [r0] + movs r0, #2 + bl sub_08078A90 + b _08095086 + .align 2, 0 +_08095020: .4byte gUnk_03003F80 +_08095024: + movs r0, #0x36 + bl sub_0807CA84 + cmp r0, #2 + bne _08095086 + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #7 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + b _08095086 +_08095040: + ldr r0, _0809506C @ =gUnk_03001160 + ldrb r0, [r0, #0xc] + cmp r0, #0xc + beq _08095086 + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x5b + bl sub_0807CC30 + cmp r0, #0 + bne _08095086 + movs r0, #0x1c + movs r1, #0 + movs r2, #0 + bl sub_080A7C00 + movs r0, #0x5b + bl sub_0807CD04 + movs r0, #0x3c + strb r0, [r4, #0xe] + b _08095086 + .align 2, 0 +_0809506C: .4byte gUnk_03001160 +_08095070: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08095086 + movs r0, #5 + strb r0, [r4, #0xc] + movs r0, #1 + bl sub_08078A90 +_08095086: + pop {r4, pc} + + thumb_func_start sub_08095088 +sub_08095088: @ 0x08095088 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #1 + beq _080950C8 + cmp r0, #1 + bgt _0809509C + cmp r0, #0 + beq _080950A2 + b _0809510A +_0809509C: + cmp r0, #2 + beq _080950F0 + b _0809510A +_080950A2: + movs r0, #0x5b + bl sub_0807CA84 + cmp r0, #0 + beq _080950B0 + bl sub_0805E780 +_080950B0: + movs r0, #1 + strb r0, [r5, #0xc] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + adds r0, r5, #0 + bl sub_080787B4 + b _0809510A +_080950C8: + adds r1, r5, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _0809510A + movs r0, #0 + strb r0, [r1] + movs r0, #2 + strb r0, [r5, #0xc] + adds r0, r5, #0 + bl sub_080788E0 + ldr r0, _080950EC @ =0x00001F1F + movs r1, #0 + bl sub_08078AA8 + b _0809510A + .align 2, 0 +_080950EC: .4byte 0x00001F1F +_080950F0: + ldr r0, _0809511C @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0809510A + movs r0, #0x5b + movs r1, #0 + movs r2, #0 + bl sub_080A7C00 + bl sub_0805E780 +_0809510A: + ldrb r4, [r5, #0xa] + movs r0, #0x5b + strb r0, [r5, #0xa] + adds r0, r5, #0 + bl sub_08080CB4 + strb r4, [r5, #0xa] + pop {r4, r5, pc} + .align 2, 0 +_0809511C: .4byte gUnk_02000050 + + thumb_func_start sub_08095120 +sub_08095120: @ 0x08095120 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0809514C + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #3 + bl sub_0805E3A0 + adds r0, r4, #0 + adds r1, r4, #0 + bl sub_0806FAD8 + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC +_0809514C: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08095164 +sub_08095164: @ 0x08095164 + push {lr} + sub sp, #4 + movs r0, #0 + str r0, [sp] + movs r0, #6 + movs r1, #0x6a + movs r2, #6 + movs r3, #8 + bl sub_0805EB2C + cmp r0, #0 + beq _08095182 + movs r1, #3 + bl sub_080042AC +_08095182: + add sp, #4 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08095188 +sub_08095188: @ 0x08095188 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080951B4 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #3 + bl sub_0805E3A0 + adds r0, r4, #0 + adds r1, r4, #0 + bl sub_0806FAD8 + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC +_080951B4: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + pop {r4, pc} + + thumb_func_start sub_080951C4 +sub_080951C4: @ 0x080951C4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080951E8 + adds r0, #1 + strb r0, [r4, #0xc] + movs r1, #0 + ldr r0, _08095240 @ =0x0000FFF0 + strh r0, [r4, #0x36] + strb r1, [r4, #0xe] + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 +_080951E8: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08095218 + str r0, [r4, #0x34] + str r0, [r4, #0x50] + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _08095218 + adds r0, #1 + strb r0, [r4, #0xe] + movs r0, #0xe6 + bl sub_080A3268 +_08095218: + ldr r3, [r4, #0x50] + cmp r3, #0 + beq _0809523C + ldrb r1, [r3, #0x18] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1e + ldrb r2, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrh r0, [r3, #0x2e] + adds r0, #0x10 + strh r0, [r4, #0x2e] + ldrh r0, [r3, #0x32] + subs r0, #0x10 + strh r0, [r4, #0x32] +_0809523C: + pop {r4, pc} + .align 2, 0 +_08095240: .4byte 0x0000FFF0 + + thumb_func_start sub_08095244 +sub_08095244: @ 0x08095244 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xa] + cmp r0, #0 + bne _0809527C + movs r0, #0x6a + movs r1, #0xa + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _0809527C + str r5, [r4, #0x50] + movs r2, #0x80 + lsls r2, r2, #0xd + ldr r3, _08095280 @ =0xFFF00000 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA48 + ldr r1, _08095284 @ =gUnk_0801183C + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] +_0809527C: + pop {r4, r5, pc} + .align 2, 0 +_08095280: .4byte 0xFFF00000 +_08095284: .4byte gUnk_0801183C + + thumb_func_start sub_08095288 +sub_08095288: @ 0x08095288 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r1, r0, #0 + cmp r1, #0 + bne _080952AA + adds r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + adds r0, r4, #0 + movs r1, #3 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC +_080952AA: + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _080952F0 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #1 + bhi _080952D4 + movs r0, #0 + strb r0, [r4, #0xd] + movs r2, #0x80 + lsls r2, r2, #1 + movs r3, #0xc0 + lsls r3, r3, #8 + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_0805EC9C + b _080952F0 +_080952D4: + movs r2, #0x80 + lsls r2, r2, #1 + ldrb r3, [r4, #0xe] + lsls r3, r3, #8 + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_0805EC9C + ldrb r0, [r4, #0xe] + adds r0, #0xa + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_0806F69C +_080952F0: + ldr r3, [r4, #0x54] + cmp r3, #0 + beq _080952FE + adds r0, r3, #0 + adds r1, r4, #0 + bl sub_0806FA24 +_080952FE: + adds r0, r4, #0 + bl sub_080042B8 + ldr r3, [r4, #0x50] + cmp r3, #0 + beq _08095328 + ldrb r1, [r3, #0x18] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1e + ldrb r2, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldr r0, [r3, #4] + cmp r0, #0 + bne _0809532C + bl sub_0805E780 + b _0809532C +_08095328: + bl sub_0805E780 +_0809532C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08095330 +sub_08095330: @ 0x08095330 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x6a + movs r1, #0xb + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _0809535E + str r4, [r5, #0x54] + str r5, [r4, #0x54] + str r5, [r4, #0x50] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldr r0, _08095360 @ =0x0000FFF0 + strh r0, [r4, #0x36] + adds r0, r4, #0 + adds r1, r4, #0 + bl sub_0806FAB0 +_0809535E: + pop {r4, r5, pc} + .align 2, 0 +_08095360: .4byte 0x0000FFF0 + + thumb_func_start sub_08095364 +sub_08095364: @ 0x08095364 + push {r4, r5, r6, lr} + ldr r6, [r0, #0x54] + cmp r6, #0 + beq _0809539E + movs r5, #0 + movs r0, #2 + strb r0, [r6, #0x1e] + adds r0, r6, #0 + adds r0, #0x38 + movs r4, #1 + strb r4, [r0] + adds r0, r6, #0 + bl sub_08016A04 + str r5, [r6, #0x54] + strb r4, [r6, #0xd] + ldr r0, _080953A0 @ =0x0000FFF0 + strh r0, [r6, #0x36] + movs r0, #7 + strb r0, [r6, #0x15] + movs r0, #0xc0 + lsls r0, r0, #0xa + str r0, [r6, #0x20] + movs r0, #0x80 + strh r0, [r6, #0x24] + adds r0, r6, #0 + movs r1, #1 + bl sub_080042AC +_0809539E: + pop {r4, r5, r6, pc} + .align 2, 0 +_080953A0: .4byte 0x0000FFF0 + + thumb_func_start sub_080953A4 +sub_080953A4: @ 0x080953A4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080953E0 + adds r0, #1 + strb r0, [r4, #0xc] + ldr r0, _08095414 @ =0x0000FFF0 + strh r0, [r4, #0x36] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + ldr r1, _08095418 @ =gUnk_08114F30 + ldrb r2, [r4, #0x19] + lsrs r0, r2, #6 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r1, r1, #6 + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r4, #0 + adds r1, r4, #0 + bl sub_0806FAB0 + adds r0, r4, #0 + bl sub_0807DD64 +_080953E0: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xa] + cmp r0, #0xd + bne _08095412 + adds r0, r4, #0 + adds r0, #0x5b + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + ldr r1, _0809541C @ =0x00000139 + cmp r0, #0 + beq _0809540C + movs r1, #0 +_0809540C: + adds r0, r4, #0 + bl sub_0801D2B4 +_08095412: + pop {r4, pc} + .align 2, 0 +_08095414: .4byte 0x0000FFF0 +_08095418: .4byte gUnk_08114F30 +_0809541C: .4byte 0x00000139 + + thumb_func_start sub_08095420 +sub_08095420: @ 0x08095420 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + movs r0, #0x6a + movs r1, #0xc + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _08095450 + ldr r3, _08095454 @ =0xFFF00000 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0 + bl sub_0806FA48 + ldr r1, [r6, #4] + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] +_08095450: + pop {r4, r5, r6, pc} + .align 2, 0 +_08095454: .4byte 0xFFF00000 + + thumb_func_start nullsub_527 +nullsub_527: @ 0x08095458 + bx lr + .align 2, 0 + + thumb_func_start sub_0809545C +sub_0809545C: @ 0x0809545C + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + movs r0, #0x6a + movs r1, #0xd + movs r2, #0 + bl sub_080A2960 + adds r5, r0, #0 + cmp r5, #0 + beq _080954A6 + ldr r3, _080954A8 @ =0xFFF00000 + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0 + bl sub_0806FA48 + ldr r1, [r6, #4] + adds r0, r5, #0 + bl sub_0807DAD0 + adds r1, r5, #0 + adds r1, #0x84 + str r0, [r1] + movs r0, #0x6a + movs r1, #2 + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _080954A6 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + str r5, [r4, #0x50] +_080954A6: + pop {r4, r5, r6, pc} + .align 2, 0 +_080954A8: .4byte 0xFFF00000 + + thumb_func_start sub_080954AC +sub_080954AC: @ 0x080954AC + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x6a + movs r1, #0x1a + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _080954D6 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldr r1, _080954D8 @ =gUnk_08015B14 + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] +_080954D6: + pop {r4, r5, pc} + .align 2, 0 +_080954D8: .4byte gUnk_08015B14 + + thumb_func_start sub_080954DC +sub_080954DC: @ 0x080954DC + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _08095598 + cmp r0, #1 + bgt _080954F0 + cmp r0, #0 + beq _080954FC + b _0809562C +_080954F0: + cmp r0, #2 + beq _080955B8 + cmp r0, #3 + bne _080954FA + b _08095620 +_080954FA: + b _0809562C +_080954FC: + ldrb r0, [r4, #0xe] + adds r5, r0, #0 + cmp r5, #0 + beq _0809550A + subs r0, #1 + strb r0, [r4, #0xe] + b _0809562C +_0809550A: + movs r0, #1 + movs r2, #1 + strb r0, [r4, #0xc] + strb r5, [r4, #0xd] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + strh r5, [r4, #0x36] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r3] + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x68 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x6a + strh r0, [r1] + adds r0, r4, #0 + adds r0, #0x6c + strh r5, [r0] + ldr r1, _08095590 @ =gUnk_08122AE0 + ldrb r0, [r4, #0xb] + adds r0, r0, r1 + ldrb r0, [r0] + adds r5, r4, #0 + adds r5, #0x6e + strb r0, [r5] + ldr r1, _08095594 @ =gUnk_08122AE8 + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + adds r0, r4, #0 + bl sub_0801D2B4 + adds r0, r4, #0 + bl sub_0807DD64 + ldrb r1, [r4, #0xb] + adds r1, #2 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08095754 + bl sub_08000E50 + movs r1, #6 + bl __modsi3 + movs r1, #0xde + lsls r1, r1, #1 + adds r0, r0, r1 + bl sub_080A3268 + adds r1, r5, #0 + b _08095630 + .align 2, 0 +_08095590: .4byte gUnk_08122AE0 +_08095594: .4byte gUnk_08122AE8 +_08095598: + ldrh r0, [r4, #0x36] + subs r0, #1 + strh r0, [r4, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x10 + rsbs r2, r2, #0 + adds r1, r4, #0 + adds r1, #0x6e + cmp r0, r2 + bgt _08095630 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + strh r2, [r4, #0x36] + b _08095630 +_080955B8: + adds r5, r4, #0 + adds r5, #0x6c + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x40 + bls _080955CE + movs r0, #0x40 + strh r0, [r5] +_080955CE: + ldr r3, _0809561C @ =gUnk_080C9160 + movs r2, #0x6e + adds r2, r2, r4 + mov ip, r2 + ldrb r0, [r2] + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r3 + movs r2, #0 + ldrsh r1, [r0, r2] + ldrh r0, [r5] + lsls r0, r0, #8 + adds r2, r1, #0 + muls r2, r0, r2 + asrs r2, r2, #0x10 + strh r2, [r4, #0x2e] + mov r1, ip + ldrb r0, [r1] + lsls r0, r0, #1 + adds r0, r0, r3 + movs r3, #0 + ldrsh r1, [r0, r3] + ldrh r0, [r5] + lsls r0, r0, #7 + muls r1, r0, r1 + asrs r1, r1, #0x10 + strh r1, [r4, #0x32] + adds r0, r4, #0 + adds r0, #0x68 + ldrh r0, [r0] + adds r2, r2, r0 + strh r2, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x6a + ldrh r0, [r0] + adds r1, r1, r0 + strh r1, [r4, #0x32] + mov r1, ip + b _08095630 + .align 2, 0 +_0809561C: .4byte gUnk_080C9160 +_08095620: + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F62C +_0809562C: + adds r1, r4, #0 + adds r1, #0x6e +_08095630: + ldrb r0, [r1] + adds r0, #4 + strb r0, [r1] + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _0809564A + adds r0, r4, #0 + bl sub_080040A8 + cmp r0, #0 + bne _0809564A + bl sub_0805E780 +_0809564A: + ldrb r1, [r4, #0x15] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809565E + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + b _08095664 +_0809565E: + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 +_08095664: + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, r5, pc} + + thumb_func_start sub_0809567C +sub_0809567C: @ 0x0809567C + push {r4, lr} + adds r4, r0, #0 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r4, #0x24] + adds r0, r4, #0 + adds r0, #0x68 + movs r2, #0 + ldrsh r1, [r0, r2] + lsls r1, r1, #0x10 + ldr r0, [r4, #0x2c] + subs r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x6a + movs r3, #0 + ldrsh r2, [r1, r3] + lsls r2, r2, #0x10 + ldr r1, [r4, #0x30] + subs r1, r1, r2 + bl sub_080045DA + strb r0, [r4, #0x15] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080956B4 +sub_080956B4: @ 0x080956B4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _080956E2 + adds r0, #1 + strb r0, [r5, #0xc] + adds r0, r5, #0 + movs r1, #0 + bl sub_08004260 + adds r4, r5, #0 + adds r4, #0x68 + ldrh r2, [r5, #0x2e] + ldrh r1, [r5, #0x32] + movs r0, #7 +_080956D4: + strh r2, [r4] + adds r4, #2 + strh r1, [r4] + adds r4, #2 + subs r0, #1 + cmp r0, #0 + bge _080956D4 +_080956E2: + adds r0, r5, #0 + bl sub_08004274 + ldrb r0, [r5, #0xb] + ldr r1, _08095724 @ =gUnk_030010A0 + ldr r1, [r1] + adds r0, r0, r1 + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _080956FE + adds r0, r5, #0 + bl sub_080957B4 +_080956FE: + ldr r6, [r5, #0x50] + cmp r6, #0 + beq _08095728 + ldrb r1, [r6, #0x18] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1e + ldrb r2, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x18] + ldr r0, [r6, #4] + cmp r0, #0 + bne _0809572C + bl sub_0805E780 + b _0809572C + .align 2, 0 +_08095724: .4byte gUnk_030010A0 +_08095728: + bl sub_0805E780 +_0809572C: + adds r4, r5, #0 + adds r4, #0x68 + adds r0, r5, #0 + adds r0, #0x6c + adds r1, r4, #0 + movs r2, #0x1c + bl sub_0801D66C + ldrh r0, [r4, #0x14] + strh r0, [r5, #0x2e] + ldrh r0, [r4, #0x16] + strh r0, [r5, #0x32] + ldrh r0, [r6, #0x36] + strh r0, [r5, #0x36] + ldrh r0, [r6, #0x2e] + strh r0, [r4, #0x1c] + ldrh r0, [r6, #0x32] + strh r0, [r4, #0x1e] + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08095754 +sub_08095754: @ 0x08095754 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r2, [r5, #0xb] + movs r0, #0x6a + movs r1, #0xf + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _0809577A + str r5, [r4, #0x50] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAD8 +_0809577A: + pop {r4, r5, pc} + + thumb_func_start sub_0809577C +sub_0809577C: @ 0x0809577C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08095796 + adds r0, #1 + strb r0, [r4, #0xc] + ldr r0, _080957B0 @ =0x0000FFF0 + strh r0, [r4, #0x36] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_08095796: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080957AE + bl sub_0805E780 +_080957AE: + pop {r4, pc} + .align 2, 0 +_080957B0: .4byte 0x0000FFF0 + + thumb_func_start sub_080957B4 +sub_080957B4: @ 0x080957B4 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x6a + movs r1, #0x10 + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _080957DA + str r5, [r4, #0x50] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAD8 +_080957DA: + pop {r4, r5, pc} + + thumb_func_start sub_080957DC +sub_080957DC: @ 0x080957DC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080957F8 + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC +_080957F8: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08095810 +sub_08095810: @ 0x08095810 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x6a + movs r1, #0x11 + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _08095844 + str r5, [r4, #0x50] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAB0 + ldr r1, _08095848 @ =gUnk_08011940 + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] +_08095844: + pop {r4, r5, pc} + .align 2, 0 +_08095848: .4byte gUnk_08011940 + + thumb_func_start sub_0809584C +sub_0809584C: @ 0x0809584C + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x45 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + beq _0809586C + ldr r0, _080958D0 @ =gUnk_020342F8 + subs r1, #1 + bl sub_0801D5A8 + cmp r0, #0 + bne _0809586C + bl sub_0805E780 +_0809586C: + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _08095880 + ldrb r0, [r5, #0xb] + bl sub_0801E7F4 + cmp r0, #0 + beq _08095880 + bl sub_0805E780 +_08095880: + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _080958B2 + adds r0, #1 + strb r0, [r5, #0xc] + adds r1, r5, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r5, #0 + bl sub_08016A04 + ldr r1, _080958D4 @ =gUnk_08114F30 + ldrb r2, [r5, #0x19] + lsrs r0, r2, #6 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r1, r1, #6 + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x19] + adds r0, r5, #0 + bl sub_0807DD64 +_080958B2: + adds r0, r5, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r5, #0 + bl sub_0807DDE4 + ldrb r4, [r5, #0xa] + movs r0, #0x5c + strb r0, [r5, #0xa] + adds r0, r5, #0 + bl sub_08080CB4 + strb r4, [r5, #0xa] + pop {r4, r5, pc} + .align 2, 0 +_080958D0: .4byte gUnk_020342F8 +_080958D4: .4byte gUnk_08114F30 + + thumb_func_start sub_080958D8 +sub_080958D8: @ 0x080958D8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080958EC + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0807DD64 +_080958EC: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08095914 + adds r0, r4, #0 + bl sub_08095954 +_08095914: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08095918 +sub_08095918: @ 0x08095918 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0809593C + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_0809593C: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08095954 +sub_08095954: @ 0x08095954 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x6a + movs r1, #0x14 + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _080959B8 + str r5, [r4, #0x50] + ldrb r0, [r5, #0x14] + ldr r1, _080959AC @ =gUnk_08122AF8 + adds r0, r0, r1 + movs r2, #0 + ldrsb r2, [r0, r2] + lsls r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r0, r3] + lsls r3, r3, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA48 + ldr r0, _080959B0 @ =0x0000FFFD + strh r0, [r4, #0x36] + ldr r1, _080959B4 @ =gUnk_08012C48 + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] + movs r0, #0x92 + lsls r0, r0, #1 + bl sub_08004488 + adds r2, r5, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0xfe + ands r0, r1 + strb r0, [r2] + b _080959C4 + .align 2, 0 +_080959AC: .4byte gUnk_08122AF8 +_080959B0: .4byte 0x0000FFFD +_080959B4: .4byte gUnk_08012C48 +_080959B8: + ldr r0, _080959C8 @ =gUnk_02033280 + ldr r1, [r0] + movs r2, #0x80 + lsls r2, r2, #1 + orrs r1, r2 + str r1, [r0] +_080959C4: + pop {r4, r5, pc} + .align 2, 0 +_080959C8: .4byte gUnk_02033280 + + thumb_func_start sub_080959CC +sub_080959CC: @ 0x080959CC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080959F2 + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #3 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD64 +_080959F2: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x81 + rsbs r0, r0, #0 + ands r1, r0 + adds r0, r4, #0 + bl sub_08095D30 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08095A1C +sub_08095A1C: @ 0x08095A1C + push {r4, r5, lr} + adds r5, r1, #0 + movs r0, #0x6a + movs r1, #0x16 + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _08095A5E + ldr r1, _08095A60 @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + adds r0, #0xe8 + strh r0, [r4, #0x2e] + movs r2, #0x9c + lsls r2, r2, #1 + adds r0, r2, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r4, #0x32] + ldr r0, _08095A64 @ =0x0000FFFC + strh r0, [r4, #0x36] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + ldr r1, [r5, #4] + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] +_08095A5E: + pop {r4, r5, pc} + .align 2, 0 +_08095A60: .4byte gUnk_03000BF0 +_08095A64: .4byte 0x0000FFFC + + thumb_func_start sub_08095A68 +sub_08095A68: @ 0x08095A68 + push {lr} + sub sp, #4 + movs r0, #0 + str r0, [sp] + movs r0, #6 + movs r1, #0x6a + movs r2, #6 + movs r3, #0x16 + bl sub_0805EB2C + adds r1, r0, #0 + cmp r1, #0 + beq _08095A86 + movs r0, #0xff + strb r0, [r1, #0xc] +_08095A86: + add sp, #4 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08095A8C +sub_08095A8C: @ 0x08095A8C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #5 + bhi _08095B44 + lsls r0, r0, #2 + ldr r1, _08095AA0 @ =_08095AA4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08095AA0: .4byte _08095AA4 +_08095AA4: @ jump table + .4byte _08095ABC @ case 0 + .4byte _08095ACC @ case 1 + .4byte _08095ADC @ case 2 + .4byte _08095AE6 @ case 3 + .4byte _08095B12 @ case 4 + .4byte _08095B1C @ case 5 +_08095ABC: + ldrb r0, [r4, #0xc] + adds r0, #1 + movs r1, #0 + strb r0, [r4, #0xc] + strb r1, [r4, #0x1e] + adds r0, r4, #0 + bl sub_0807DD64 +_08095ACC: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + b _08095B44 +_08095ADC: + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] +_08095AE6: + ldrb r1, [r4, #0x18] + lsls r0, r1, #0x1e + lsrs r0, r0, #0x1e + movs r5, #1 + eors r0, r5 + movs r3, #4 + rsbs r3, r3, #0 + adds r2, r3, #0 + ands r2, r1 + orrs r2, r0 + strb r2, [r4, #0x18] + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08095B44 + movs r0, #1 + strb r5, [r4, #0xc] + ands r2, r3 + orrs r2, r0 + b _08095B42 +_08095B12: + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] +_08095B1C: + ldrb r1, [r4, #0x18] + lsls r0, r1, #0x1e + lsrs r0, r0, #0x1e + movs r5, #1 + eors r0, r5 + movs r3, #4 + rsbs r3, r3, #0 + adds r2, r3, #0 + ands r2, r1 + orrs r2, r0 + strb r2, [r4, #0x18] + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08095B44 + strb r5, [r4, #0xc] + ands r2, r3 +_08095B42: + strb r2, [r4, #0x18] +_08095B44: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08095B48 +sub_08095B48: @ 0x08095B48 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _08095B78 + adds r0, #1 + strb r0, [r5, #0xc] + adds r1, r5, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r5, #0 + bl sub_08016A04 + ldr r1, _08095BA8 @ =gUnk_08114F30 + ldrb r2, [r5, #0x19] + lsrs r0, r2, #6 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r1, r1, #6 + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x19] +_08095B78: + ldrb r0, [r5, #0x18] + movs r4, #4 + rsbs r4, r4, #0 + adds r1, r4, #0 + ands r1, r0 + strb r1, [r5, #0x18] + ldr r2, [r5, #0x50] + cmp r2, #0 + beq _08095BCE + adds r0, r2, #0 + adds r0, #0x5a + ldrb r3, [r0] + movs r0, #0x40 + ands r0, r3 + cmp r0, #0 + bne _08095BAC + movs r0, #0x80 + ands r0, r3 + cmp r0, #0 + beq _08095BCE + bl sub_0805E780 + b _08095BDC + .align 2, 0 +_08095BA8: .4byte gUnk_08114F30 +_08095BAC: + adds r0, r1, #0 + ands r0, r4 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #0x18] + ldrh r0, [r2, #0x12] + ldrb r1, [r2, #0x1e] + bl sub_080700C8 + ldrb r1, [r0] + adds r2, r5, #0 + adds r2, #0x62 + strb r1, [r2] + ldrb r0, [r0, #1] + adds r1, r5, #0 + adds r1, #0x63 + strb r0, [r1] +_08095BCE: + ldrb r4, [r5, #0xa] + ldrb r0, [r5, #0xb] + strb r0, [r5, #0xa] + adds r0, r5, #0 + bl sub_08080CB4 + strb r4, [r5, #0xa] +_08095BDC: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08095BE0 +sub_08095BE0: @ 0x08095BE0 + push {r4, lr} + adds r4, r0, #0 + adds r2, r1, #0 + movs r0, #0x6a + movs r1, #0x18 + bl sub_080A2960 + adds r1, r0, #0 + cmp r1, #0 + beq _08095BFC + str r4, [r1, #0x50] + adds r0, r4, #0 + bl sub_0806FA24 +_08095BFC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08095C00 +sub_08095C00: @ 0x08095C00 + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0xc] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08095C14 + bl sub_0805E780 + b _08095C46 +_08095C14: + ldr r3, [r2, #0x50] + cmp r3, #0 + beq _08095C46 + adds r1, r2, #0 + adds r1, #0x60 + movs r0, #0xe8 + strh r0, [r1] + ldrb r0, [r3, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _08095C38 + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x18] + b _08095C46 +_08095C38: + ldrb r0, [r2, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r2, #0x18] +_08095C46: + pop {pc} + + thumb_func_start sub_08095C48 +sub_08095C48: @ 0x08095C48 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x6a + movs r1, #0x19 + movs r2, #0 + bl sub_080A2960 + adds r1, r0, #0 + cmp r1, #0 + beq _08095C66 + str r1, [r4, #0x54] + str r4, [r1, #0x50] + adds r0, r4, #0 + bl sub_0806FA24 +_08095C66: + pop {r4, pc} + + thumb_func_start sub_08095C68 +sub_08095C68: @ 0x08095C68 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08095C80 + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x1e] + ldrh r2, [r4, #0x12] + adds r0, r4, #0 + bl sub_080042D0 +_08095C80: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08095CAA + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #7 + bhi _08095CA4 + ldrb r2, [r4, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] +_08095CA4: + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _08095CAE +_08095CAA: + bl sub_0805E780 +_08095CAE: + pop {r4, pc} + + thumb_func_start sub_08095CB0 +sub_08095CB0: @ 0x08095CB0 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x6a + movs r1, #0x1b + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _08095CDC + str r4, [r5, #0x54] + str r5, [r4, #0x50] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + movs r0, #0x10 + strb r0, [r4, #0xe] + ldrb r0, [r5, #0x1e] + strb r0, [r4, #0x1e] + ldrb r0, [r5, #0x1e] + strb r0, [r4, #0x1f] +_08095CDC: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08095CE0 +sub_08095CE0: @ 0x08095CE0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08095D06 + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD64 +_08095D06: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x81 + rsbs r0, r0, #0 + ands r1, r0 + adds r0, r4, #0 + bl sub_08095D30 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08095D30 +sub_08095D30: @ 0x08095D30 + push {lr} + adds r2, r0, #0 + adds r0, r1, #0 + cmp r0, #0 + beq _08095D4E + ldr r1, _08095D50 @ =gUnk_08122B00 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r0, #0x81 + rsbs r0, r0, #0 + ands r1, r0 + adds r0, r2, #0 + bl sub_0801D2B4 +_08095D4E: + pop {pc} + .align 2, 0 +_08095D50: .4byte gUnk_08122B00 + + thumb_func_start sub_08095D54 +sub_08095D54: @ 0x08095D54 + push {r4, r5, lr} + adds r5, r1, #0 + movs r0, #0x6a + movs r1, #0x1c + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _08095D86 + ldr r0, _08095D88 @ =gUnk_03001160 + adds r1, r4, #0 + bl sub_0806FA24 + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + ldr r1, [r5, #4] + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] +_08095D86: + pop {r4, r5, pc} + .align 2, 0 +_08095D88: .4byte gUnk_03001160 + + thumb_func_start sub_08095D8C +sub_08095D8C: @ 0x08095D8C + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + movs r0, #0x6a + movs r1, #0x1d + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _08095DB8 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldr r1, [r6, #4] + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] +_08095DB8: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08095DBC +sub_08095DBC: @ 0x08095DBC + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08095DF0 @ =gUnk_02033280 + ldr r0, [r5] + movs r1, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08095DD0 + bl sub_0805E780 +_08095DD0: + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _08095DF4 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08095DE6 + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0807DD64 +_08095DE6: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + b _08095E74 + .align 2, 0 +_08095DF0: .4byte gUnk_02033280 +_08095DF4: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08095E30 + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #0x4b + bl sub_08004260 + ldr r1, _08095E78 @ =gUnk_08114F30 + ldrb r2, [r4, #0x19] + lsrs r0, r2, #6 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r1, r1, #6 + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r4, #0 + adds r1, r4, #0 + bl sub_0806FAB0 +_08095E30: + ldrb r2, [r4, #0xb] + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + bne _08095E56 + ldr r0, [r5] + movs r1, #0x80 + lsls r1, r1, #0xa + ands r0, r1 + cmp r0, #0 + beq _08095E56 + movs r0, #0xff + strb r0, [r4, #0xb] + movs r0, #0x80 + lsls r0, r0, #0xb + str r0, [r4, #0x20] + movs r0, #0xc0 + lsls r0, r0, #8 + strh r0, [r4, #0x24] +_08095E56: + movs r0, #0x24 + ldrsh r1, [r4, r0] + adds r0, r4, #0 + bl sub_08003FC4 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080040A8 + cmp r0, #0 + bne _08095E74 + bl sub_0805E780 +_08095E74: + pop {r4, r5, pc} + .align 2, 0 +_08095E78: .4byte gUnk_08114F30 + + thumb_func_start sub_08095E7C +sub_08095E7C: @ 0x08095E7C + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + movs r0, #0x6a + movs r1, #0x1e + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _08095EA8 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldr r1, [r6, #4] + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] +_08095EA8: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08095EAC +sub_08095EAC: @ 0x08095EAC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov sb, r0 + adds r4, r1, #0 + movs r0, #0x6a + movs r1, #0x1e + movs r2, #1 + bl sub_080A2960 + adds r5, r0, #0 + cmp r5, #0 + beq _08095F2A + ldr r0, [r4, #4] + cmp r0, #0 + bne _08095EE0 + movs r7, #0x10 + movs r6, #0x1f + movs r0, #0x80 + lsls r0, r0, #7 + mov sl, r0 + movs r2, #0 + mov r8, r2 + b _08095F02 +_08095EE0: + movs r7, #8 + movs r6, #0xf + movs r0, #0x80 + lsls r0, r0, #0xb + mov sl, r0 + ldr r4, _08095F34 @ =gUnk_08122B0E + bl sub_08000E50 + movs r1, #7 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r4 + movs r0, #0 + ldrsh r2, [r1, r0] + mov r8, r2 + movs r0, #0xff + strb r0, [r5, #0xb] +_08095F02: + bl sub_08000E50 + adds r4, r0, #0 + ands r4, r6 + subs r4, r7, r4 + bl sub_08000E50 + ands r6, r0 + subs r3, r7, r6 + lsls r4, r4, #0x10 + lsls r3, r3, #0x10 + mov r0, sb + adds r1, r5, #0 + adds r2, r4, #0 + bl sub_0806FA48 + mov r2, sl + str r2, [r5, #0x20] + mov r0, r8 + strh r0, [r5, #0x24] +_08095F2A: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08095F34: .4byte gUnk_08122B0E + + thumb_func_start sub_08095F38 +sub_08095F38: @ 0x08095F38 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08095FC2 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xff + strb r0, [r4, #0x1e] + ldrb r0, [r4, #0xb] + cmp r0, #4 + beq _08095F64 + cmp r0, #4 + bgt _08095F5A + cmp r0, #3 + beq _08095F60 + b _08095F6A +_08095F5A: + cmp r0, #6 + beq _08095F68 + b _08095F6A +_08095F60: + movs r1, #0 + b _08095F6A +_08095F64: + movs r1, #1 + b _08095F6A +_08095F68: + movs r1, #4 +_08095F6A: + adds r0, r4, #0 + bl sub_0801D2B4 + ldr r0, _08095F90 @ =gUnk_03001160 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08095F98 + adds r1, r4, #0 + adds r1, #0x84 + ldr r0, _08095F94 @ =0x000008BF + str r0, [r1] + movs r0, #0x34 + strb r0, [r4, #0xe] + movs r0, #0xb5 + b _08095FA6 + .align 2, 0 +_08095F90: .4byte gUnk_03001160 +_08095F94: .4byte 0x000008BF +_08095F98: + adds r1, r4, #0 + adds r1, #0x84 + ldr r0, _08096020 @ =0x000008E3 + str r0, [r1] + movs r0, #0x55 + strb r0, [r4, #0xe] + movs r0, #0xd6 +_08095FA6: + strb r0, [r4, #0xf] + ldr r0, _08096024 @ =gUnk_03001160 + adds r1, r4, #0 + bl sub_0806FA24 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] +_08095FC2: + ldr r5, _08096024 @ =gUnk_03001160 + adds r2, r5, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08095FE0 + movs r0, #0xef + ands r0, r1 + strb r0, [r2] + movs r0, #0xea + lsls r0, r0, #1 + bl sub_080A3268 +_08095FE0: + ldrh r0, [r5, #0x12] + adds r1, r4, #0 + adds r1, #0x84 + ldr r2, [r1] + lsrs r1, r2, #8 + cmp r0, r1 + bne _08095FFC + adds r0, r5, #0 + adds r0, #0x58 + ldrb r1, [r0] + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + cmp r1, r0 + beq _08096000 +_08095FFC: + bl sub_0805E780 +_08096000: + ldr r0, _08096024 @ =gUnk_03001160 + ldrb r0, [r0, #0x1e] + ldrb r1, [r4, #0xe] + subs r0, r0, r1 + ldrb r1, [r4, #0xf] + adds r0, r0, r1 + ldrb r1, [r4, #0x1e] + cmp r0, r1 + beq _0809601E + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x1e] + ldrh r2, [r4, #0x12] + adds r0, r4, #0 + bl sub_080042D0 +_0809601E: + pop {r4, r5, pc} + .align 2, 0 +_08096020: .4byte 0x000008E3 +_08096024: .4byte gUnk_03001160 + + thumb_func_start sub_08096028 +sub_08096028: @ 0x08096028 + push {r4, r5, lr} + movs r4, #6 + movs r5, #0xc0 + lsls r5, r5, #2 + adds r0, r5, #0 + movs r1, #0x7b + bl sub_0807CB10 + cmp r0, #0 + bne _0809603E + movs r4, #4 +_0809603E: + adds r0, r5, #0 + movs r1, #0x7a + bl sub_0807CB10 + cmp r0, #0 + bne _0809604C + movs r4, #3 +_0809604C: + movs r0, #0x6a + movs r1, #0x1f + adds r2, r4, #0 + bl sub_080A2960 + pop {r4, r5, pc} + + thumb_func_start sub_08096058 +sub_08096058: @ 0x08096058 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0809606C + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0807DD64 +_0809606C: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08096084 +sub_08096084: @ 0x08096084 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080960A0 + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0807DD64 + ldrb r1, [r4, #0xb] + adds r0, r4, #0 + bl sub_08004260 +_080960A0: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + ldr r0, [r4, #0x50] + cmp r0, #0 + beq _080960C0 + adds r1, r4, #0 + bl sub_0806FA24 +_080960C0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080960C4 +sub_080960C4: @ 0x080960C4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + movs r0, #0x6a + movs r1, #0x23 + movs r2, #0x49 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _08096110 + str r5, [r4, #0x50] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldr r1, _08096160 @ =gUnk_08114F34 + ldrb r0, [r5, #0x19] + lsrs r0, r0, #6 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r1, r1, #6 + ldrb r2, [r4, #0x19] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAD8 + ldr r1, [r6, #4] + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] +_08096110: + movs r0, #0x6a + movs r1, #0x24 + movs r2, #0x4a + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _0809615E + str r5, [r4, #0x50] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldr r1, _08096164 @ =gUnk_08114F30 + ldrb r0, [r5, #0x19] + lsrs r0, r0, #6 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r1, r1, #6 + ldrb r2, [r4, #0x19] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAB0 + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + ldr r1, [r6, #4] + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] +_0809615E: + pop {r4, r5, r6, pc} + .align 2, 0 +_08096160: .4byte gUnk_08114F34 +_08096164: .4byte gUnk_08114F30 + + thumb_func_start sub_08096168 +sub_08096168: @ 0x08096168 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0809618C + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #0x4b + bl sub_08004260 +_0809618C: + adds r0, r4, #0 + bl sub_08004274 + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F62C + adds r0, r4, #0 + bl sub_080040A8 + cmp r0, #0 + bne _080961AC + bl sub_0805E780 +_080961AC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080961B0 +sub_080961B0: @ 0x080961B0 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + movs r5, #0 + ldr r6, _080961F0 @ =gUnk_08122B1E +_080961B8: + movs r0, #0x6a + movs r1, #0x25 + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _080961E6 + adds r0, r7, #0 + adds r1, r4, #0 + bl sub_0806FA24 + lsls r0, r5, #5 + strb r0, [r4, #0x15] + bl sub_08000E50 + movs r2, #0xf8 + lsls r2, r2, #1 + adds r1, r2, #0 + ands r0, r1 + ldrh r1, [r6] + adds r0, r0, r1 + strh r0, [r4, #0x24] +_080961E6: + adds r6, #2 + adds r5, #1 + cmp r5, #7 + ble _080961B8 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080961F0: .4byte gUnk_08122B1E + + thumb_func_start sub_080961F4 +sub_080961F4: @ 0x080961F4 + ldrb r2, [r0, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #1 + orrs r1, r2 + strb r1, [r0, #0x18] + movs r1, #0 + strb r1, [r0, #0x1e] + bx lr + + thumb_func_start sub_08096208 +sub_08096208: @ 0x08096208 + push {r4, r5, lr} + adds r5, r0, #0 + lsls r1, r1, #1 + ldr r0, _08096238 @ =gUnk_08122B2E + adds r4, r1, r0 + movs r0, #0x6a + movs r1, #0x26 + movs r2, #0 + bl sub_080A2960 + adds r1, r0, #0 + cmp r1, #0 + beq _08096234 + movs r2, #0 + ldrsb r2, [r4, r2] + lsls r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r4, r3] + lsls r3, r3, #0x10 + adds r0, r5, #0 + bl sub_0806FA48 +_08096234: + pop {r4, r5, pc} + .align 2, 0 +_08096238: .4byte gUnk_08122B2E + + thumb_func_start sub_0809623C +sub_0809623C: @ 0x0809623C + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x6a + movs r1, #0x27 + movs r2, #0 + bl sub_080A2960 + adds r1, r0, #0 + cmp r1, #0 + beq _0809625A + ldr r3, _0809625C @ =0xFFF00000 + adds r0, r4, #0 + movs r2, #0 + bl sub_0806FA48 +_0809625A: + pop {r4, pc} + .align 2, 0 +_0809625C: .4byte 0xFFF00000 + + thumb_func_start sub_08096260 +sub_08096260: @ 0x08096260 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x6a + movs r1, #0x28 + movs r2, #0 + bl sub_080A2960 + adds r1, r0, #0 + cmp r1, #0 + beq _0809627E + ldr r3, _08096280 @ =0xFFF00000 + adds r0, r4, #0 + movs r2, #0 + bl sub_0806FA48 +_0809627E: + pop {r4, pc} + .align 2, 0 +_08096280: .4byte 0xFFF00000 + + thumb_func_start sub_08096284 +sub_08096284: @ 0x08096284 + push {lr} + movs r1, #0xd + bl sub_0809629C + pop {pc} + .align 2, 0 + + thumb_func_start sub_08096290 +sub_08096290: @ 0x08096290 + push {lr} + movs r1, #0xe + bl sub_0809629C + pop {pc} + .align 2, 0 + + thumb_func_start sub_0809629C +sub_0809629C: @ 0x0809629C + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _080962B2 + movs r0, #1 + strb r0, [r5, #0xc] + adds r0, r5, #0 + bl sub_0807DD64 +_080962B2: + adds r0, r5, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r5, #0 + bl sub_0807DDE4 + movs r1, #0x80 + lsls r1, r1, #5 + adds r0, r5, #0 + bl sub_08003FC4 + ldrb r4, [r5, #0xa] + strb r6, [r5, #0xa] + adds r0, r5, #0 + bl sub_08080CB4 + strb r4, [r5, #0xa] + pop {r4, r5, r6, pc} + + thumb_func_start sub_080962D8 +sub_080962D8: @ 0x080962D8 + push {lr} + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #6 + bl sub_08050054 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080962E8 +sub_080962E8: @ 0x080962E8 + push {lr} + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #7 + bl sub_08050054 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080962F8 +sub_080962F8: @ 0x080962F8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, [r1, #4] + lsls r4, r4, #4 + ldr r0, _08096318 @ =gUnk_08122B3C + adds r4, r4, r0 + ldrb r2, [r4, #0xc] + adds r3, r4, #0 + adds r3, #8 + adds r0, r5, #0 + movs r1, #1 + bl sub_08078850 + str r4, [r5, #0x48] + pop {r4, r5, pc} + .align 2, 0 +_08096318: .4byte gUnk_08122B3C + + thumb_func_start sub_0809631C +sub_0809631C: @ 0x0809631C + push {lr} + ldr r2, _08096330 @ =gUnk_08123168 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08096330: .4byte gUnk_08123168 + + thumb_func_start sub_08096334 +sub_08096334: @ 0x08096334 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r0, #1 + strb r0, [r5, #0xc] + movs r4, #0 + movs r6, #0x80 + strh r6, [r5, #0x24] + ldr r0, _08096358 @ =gUnk_080FD2A8 + str r0, [r5, #0x48] + ldrb r0, [r5, #0xa] + cmp r0, #1 + bne _0809634E + b _08096494 +_0809634E: + cmp r0, #1 + bgt _0809635C + cmp r0, #0 + beq _08096368 + b _0809650A + .align 2, 0 +_08096358: .4byte gUnk_080FD2A8 +_0809635C: + cmp r0, #2 + bne _08096362 + b _080964A6 +_08096362: + cmp r0, #3 + beq _080963FC + b _0809650A +_08096368: + movs r0, #0x1a + bl sub_0807CC30 + cmp r0, #0 + beq _080963DA + movs r0, #0x1b + bl sub_0807CC30 + cmp r0, #0 + bne _080963A4 + ldr r0, _0809639C @ =gUnk_03001160 + movs r3, #0x80 + lsls r3, r3, #9 + adds r1, r5, #0 + movs r2, #0 + bl sub_0806FA48 + ldr r0, _080963A0 @ =0x00004022 + adds r1, r5, #0 + adds r1, #0x38 + ldrb r2, [r1] + movs r1, #0xdc + bl sub_0800015E + b _0809650A + .align 2, 0 +_0809639C: .4byte gUnk_03001160 +_080963A0: .4byte 0x00004022 +_080963A4: + ldrb r0, [r5, #0xb] + bl sub_0807CBD0 + cmp r0, #0 + bne _080963C8 + adds r0, r5, #0 + movs r1, #0xa + bl sub_08004260 + ldrh r0, [r5, #0x32] + adds r0, #4 + strh r0, [r5, #0x32] + movs r0, #4 + strb r0, [r5, #0xc] + ldr r0, _080963C4 @ =0x0000403B + b _080964C4 + .align 2, 0 +_080963C4: .4byte 0x0000403B +_080963C8: + strb r4, [r5, #0xb] + movs r0, #2 + strb r0, [r5, #0xf] + adds r0, r5, #0 + bl sub_080969A4 + bl sub_0805E780 + b _0809650A +_080963DA: + ldr r1, _080963F8 @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + adds r0, #0xd0 + strh r0, [r5, #0x2e] + ldrh r0, [r1, #8] + adds r0, #0x44 + strh r0, [r5, #0x32] + movs r0, #4 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0xa] + adds r1, #3 + adds r0, r5, #0 + bl sub_08004260 + b _0809651A + .align 2, 0 +_080963F8: .4byte gUnk_03000BF0 +_080963FC: + movs r0, #0x1a + bl sub_0807CC30 + cmp r0, #0 + beq _08096450 + movs r0, #0x1b + bl sub_0807CC30 + cmp r0, #0 + bne _0809644C + ldr r0, _08096444 @ =gUnk_03001160 + adds r1, r0, #0 + adds r1, #0x29 + ldrb r2, [r1] + lsls r2, r2, #0x1d + lsrs r2, r2, #0x1d + subs r2, #1 + adds r4, r5, #0 + adds r4, #0x29 + movs r1, #7 + ands r2, r1 + ldrb r3, [r4] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r3 + orrs r1, r2 + strb r1, [r4] + adds r1, r0, #0 + adds r1, #0x79 + strb r6, [r1] + ldr r3, _08096448 @ =0xFFE80000 + adds r1, r5, #0 + movs r2, #0 + bl sub_0806FA48 + b _08096450 + .align 2, 0 +_08096444: .4byte gUnk_03001160 +_08096448: .4byte 0xFFE80000 +_0809644C: + bl sub_0805E780 +_08096450: + adds r0, r5, #0 + movs r1, #0x6b + movs r2, #1 + movs r3, #0 + bl sub_080A2988 + adds r1, r0, #0 + str r1, [r5, #0x54] + cmp r1, #0 + beq _0809646E + ldr r2, _0809648C @ =0xFFE40000 + ldr r3, _08096490 @ =0xFFD80000 + adds r0, r5, #0 + bl sub_0806FA48 +_0809646E: + movs r0, #0x10 + strb r0, [r5, #0x16] + ldrb r0, [r5, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r5, #0x19] + adds r0, r5, #0 + movs r1, #0xc + bl sub_08004260 + adds r0, r5, #0 + bl sub_0809651C + b _0809651A + .align 2, 0 +_0809648C: .4byte 0xFFE40000 +_08096490: .4byte 0xFFD80000 +_08096494: + ldrb r0, [r5, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r5, #0x19] + adds r0, r5, #0 + movs r1, #6 + bl sub_0805E3A0 + b _0809650A +_080964A6: + ldrb r0, [r5, #0xb] + bl sub_0807CBD0 + cmp r0, #0 + bne _080964F8 + adds r0, r5, #0 + movs r1, #0xb + bl sub_08004260 + ldrh r0, [r5, #0x32] + adds r0, #4 + strh r0, [r5, #0x32] + movs r0, #4 + strb r0, [r5, #0xc] + ldr r0, _080964F0 @ =0x00004032 +_080964C4: + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _080964F4 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + b _0809651A + .align 2, 0 +_080964F0: .4byte 0x00004032 +_080964F4: .4byte gUnk_03000BF0 +_080964F8: + strb r4, [r5, #0xb] + movs r0, #3 + strb r0, [r5, #0xf] + adds r0, r5, #0 + bl sub_080969A4 + bl sub_0805E780 + b _0809651A +_0809650A: + ldrb r1, [r5, #0xa] + adds r1, #3 + adds r0, r5, #0 + bl sub_08004260 + adds r0, r5, #0 + bl sub_0809651C +_0809651A: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0809651C +sub_0809651C: @ 0x0809651C + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + ldrb r3, [r6, #0xa] + movs r0, #1 + ands r0, r3 + cmp r0, #0 + beq _080965D6 + cmp r3, #3 + bne _0809653C + adds r0, r6, #0 + bl sub_08078930 + adds r0, r6, #0 + bl sub_0800445C + b _080965C8 +_0809653C: + ldr r0, [r6, #0x50] + ldr r2, _0809655C @ =0xFFE40000 + ldr r3, _08096560 @ =0xFFD80000 + adds r1, r6, #0 + bl sub_0806FA48 + ldr r1, [r6, #0x50] + ldrb r0, [r1, #0xc] + cmp r0, #2 + bne _08096586 + ldrb r0, [r1, #0xd] + cmp r0, #1 + beq _08096564 + cmp r0, #2 + beq _08096580 + b _08096570 + .align 2, 0 +_0809655C: .4byte 0xFFE40000 +_08096560: .4byte 0xFFD80000 +_08096564: + ldr r0, _0809657C @ =gUnk_03003F80 + ldrb r1, [r0, #0xd] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08096580 +_08096570: + adds r0, r6, #0 + movs r1, #4 + bl sub_08004260 + b _08096586 + .align 2, 0 +_0809657C: .4byte gUnk_03003F80 +_08096580: + adds r0, r6, #0 + bl sub_08004274 +_08096586: + ldr r0, [r6, #0x50] + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + subs r1, #1 + adds r3, r6, #0 + adds r3, #0x29 + movs r0, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldr r4, [r6, #0x50] + ldrb r2, [r4, #0x19] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r6, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r6, #0x19] + ldrb r0, [r4, #0x1b] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r6, #0x1b] + ands r1, r2 + orrs r1, r0 + strb r1, [r6, #0x1b] +_080965C8: + adds r0, r6, #0 + movs r1, #0xcc + movs r2, #0xcc + movs r3, #0 + bl sub_0805EC9C + b _080966F6 +_080965D6: + ldr r1, _080965FC @ =gUnk_03003F80 + ldrb r2, [r1, #0x1a] + movs r0, #0x80 + orrs r0, r2 + strb r0, [r1, #0x1a] + movs r0, #5 + strb r0, [r1, #5] + ldrb r1, [r1, #0xd] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08096600 + lsls r1, r3, #0x18 + lsrs r1, r1, #0x19 + adds r1, #3 + adds r0, r6, #0 + bl sub_08004260 + b _08096606 + .align 2, 0 +_080965FC: .4byte gUnk_03003F80 +_08096600: + adds r0, r6, #0 + bl sub_08004274 +_08096606: + ldr r0, _08096664 @ =gUnk_03001160 + ldrb r0, [r0, #0x14] + movs r1, #6 + ands r1, r0 + ldr r4, _08096668 @ =gUnk_08123184 + adds r0, r1, r4 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r2, [r6, #0x2e] + adds r0, r0, r2 + movs r2, #0x10 + rsbs r2, r2, #0 + adds r3, r2, #0 + ands r0, r3 + movs r2, #8 + adds r5, r6, #0 + adds r5, #0x70 + movs r7, #0 + orrs r0, r2 + strh r0, [r5] + adds r1, #1 + adds r1, r1, r4 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r1, [r6, #0x32] + adds r0, r0, r1 + ands r0, r3 + orrs r0, r2 + adds r1, r6, #0 + adds r1, #0x72 + strh r0, [r1] + ldrh r0, [r5] + ldrh r1, [r1] + adds r4, r6, #0 + adds r4, #0x38 + ldrb r2, [r4] + bl sub_080002BC + cmp r0, #0x19 + bne _08096670 + ldr r0, _0809666C @ =gUnk_0200AF00 + adds r0, #0x2f + movs r1, #3 + strb r1, [r0] + b _08096676 + .align 2, 0 +_08096664: .4byte gUnk_03001160 +_08096668: .4byte gUnk_08123184 +_0809666C: .4byte gUnk_0200AF00 +_08096670: + ldr r0, _080966F8 @ =gUnk_0200AF00 + adds r0, #0x2f + strb r7, [r0] +_08096676: + ldr r0, _080966FC @ =gUnk_03001160 + movs r3, #0x80 + lsls r3, r3, #9 + adds r1, r6, #0 + movs r2, #0 + bl sub_0806FA48 + adds r0, r6, #0 + bl sub_080002B8 + cmp r0, #0x19 + bne _0809669C + ldrb r1, [r4] + movs r0, #0xdc + bl sub_0807BA8C + adds r0, r6, #0 + bl sub_08096A78 +_0809669C: + ldr r2, _08096700 @ =gUnk_03003F80 + adds r0, r2, #0 + adds r0, #0x92 + ldrh r1, [r0] + movs r0, #0xc0 + ands r0, r1 + cmp r0, #0 + beq _080966F6 + ldr r0, _080966F8 @ =gUnk_0200AF00 + adds r0, #0x2f + ldrb r0, [r0] + cmp r0, #3 + bne _080966F6 + movs r0, #0 + strb r0, [r2, #5] + movs r0, #5 + strb r0, [r6, #0xc] + adds r0, #0xfb + strh r0, [r6, #0x24] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r6, #0x20] + adds r2, r6, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r6, #0x18] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r6, #0x18] + ldrb r1, [r4] + movs r0, #0xdc + bl sub_0807BA8C + movs r0, #0x79 + bl sub_080A3268 +_080966F6: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080966F8: .4byte gUnk_0200AF00 +_080966FC: .4byte gUnk_03001160 +_08096700: .4byte gUnk_03003F80 + + thumb_func_start sub_08096704 +sub_08096704: @ 0x08096704 + push {lr} + ldr r2, _08096718 @ =gUnk_0812318C + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08096718: .4byte gUnk_0812318C + + thumb_func_start sub_0809671C +sub_0809671C: @ 0x0809671C + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x1a + bl sub_0807CD04 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + pop {r4, pc} + .align 2, 0 + + thumb_func_start nullsub_121 +nullsub_121: @ 0x08096730 + bx lr + .align 2, 0 + + thumb_func_start sub_08096734 +sub_08096734: @ 0x08096734 + push {lr} + movs r0, #0x1a + bl sub_0807CD80 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08096740 +sub_08096740: @ 0x08096740 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x10 + movs r1, #0 + bl sub_08080964 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08096758 +sub_08096758: @ 0x08096758 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809677C + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0xa + bl sub_08004260 +_0809677C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08096780 +sub_08096780: @ 0x08096780 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r1, _080967D4 @ =gUnk_0812319C + ldrb r0, [r5, #0xa] + lsrs r0, r0, #1 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r4, [r0] + adds r0, r5, #0 + bl sub_080002A0 + cmp r4, r0 + bne _080967DC + adds r0, r5, #0 + bl sub_08004274 + ldr r2, _080967D8 @ =gUnk_03003F80 + ldrb r0, [r2, #0xb] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #0xb] + ldrb r0, [r2, #0xa] + orrs r0, r1 + strb r0, [r2, #0xa] + ldrb r0, [r2, #7] + orrs r1, r0 + strb r1, [r2, #7] + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _080967E0 + movs r0, #6 + strb r0, [r5, #0xc] + strb r1, [r5, #0xd] + adds r0, r5, #0 + bl sub_080A29BC + b _080967E0 + .align 2, 0 +_080967D4: .4byte gUnk_0812319C +_080967D8: .4byte gUnk_03003F80 +_080967DC: + movs r0, #0xc0 + strb r0, [r5, #0xe] +_080967E0: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080967E4 +sub_080967E4: @ 0x080967E4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x70 + ldrh r5, [r0] + movs r0, #0x2e + ldrsh r2, [r4, r0] + cmp r5, r2 + bne _08096802 + adds r0, r4, #0 + adds r0, #0x72 + ldrh r1, [r0] + movs r3, #0x32 + ldrsh r0, [r4, r3] + cmp r1, r0 + beq _0809681C +_08096802: + movs r0, #0x32 + ldrsh r1, [r4, r0] + adds r0, r4, #0 + adds r0, #0x72 + ldrh r3, [r0] + adds r0, r2, #0 + adds r2, r5, #0 + bl sub_080045D4 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F69C +_0809681C: + movs r1, #0x80 + lsls r1, r1, #7 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08096830 + adds r0, r4, #0 + bl sub_08096A78 +_08096830: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08096834 +sub_08096834: @ 0x08096834 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #2 + beq _08096842 + bl sub_08078B48 +_08096842: + ldr r0, _08096854 @ =gUnk_081231A0 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_08096854: .4byte gUnk_081231A0 + + thumb_func_start sub_08096858 +sub_08096858: @ 0x08096858 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xb] + bl sub_0807CCB4 + movs r3, #0 + movs r0, #0xf + strb r0, [r5, #0xe] + ldr r1, _080968BC @ =gUnk_081231AC + ldrb r2, [r5, #0xa] + lsls r2, r2, #0x18 + lsrs r0, r2, #0x19 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r5, #0xf] + strb r3, [r5, #0xb] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r5, #0x18] + ldrb r0, [r5, #0xd] + adds r0, #1 + strb r0, [r5, #0xd] + cmp r2, #0 + bne _080968C4 + movs r0, #0xe7 + lsls r0, r0, #1 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _080968C0 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0807B7D8 + b _080968F0 + .align 2, 0 +_080968BC: .4byte gUnk_081231AC +_080968C0: .4byte gUnk_03000BF0 +_080968C4: + ldr r0, _080968F8 @ =0x000001CD + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _080968FC @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0807B7D8 +_080968F0: + ldr r0, _08096900 @ =0x000001DB + bl sub_080A3268 + pop {r4, r5, r6, pc} + .align 2, 0 +_080968F8: .4byte 0x000001CD +_080968FC: .4byte gUnk_03000BF0 +_08096900: .4byte 0x000001DB + + thumb_func_start sub_08096904 +sub_08096904: @ 0x08096904 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08096984 + ldrh r0, [r5, #0x32] + subs r0, #0x10 + strh r0, [r5, #0x32] + ldr r1, _08096974 @ =gUnk_081231AE + ldrb r0, [r5, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08096978 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0807B7D8 + ldrb r0, [r5, #0xb] + adds r0, #1 + strb r0, [r5, #0xb] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r5, #0xf] + cmp r0, r1 + bne _08096980 + ldr r2, _0809697C @ =gUnk_03003F80 + ldrb r1, [r2, #0xb] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0xb] + ldrb r0, [r5, #0xd] + adds r0, #1 + strb r0, [r5, #0xd] + movs r0, #0x3c + b _08096982 + .align 2, 0 +_08096974: .4byte gUnk_081231AE +_08096978: .4byte gUnk_03000BF0 +_0809697C: .4byte gUnk_03003F80 +_08096980: + movs r0, #0xf +_08096982: + strb r0, [r5, #0xe] +_08096984: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08096988 +sub_08096988: @ 0x08096988 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + cmp r0, #0 + beq _080969A2 + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080969A2 + movs r0, #0x72 + bl sub_080A3268 +_080969A2: + pop {pc} + + thumb_func_start sub_080969A4 +sub_080969A4: @ 0x080969A4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + ldrb r0, [r5, #0xa] + cmp r0, #0 + bne _080969E8 + movs r0, #0xe7 + lsls r0, r0, #1 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _080969E4 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r4, r5, #0 + adds r4, #0x38 + ldrb r2, [r4] + bl sub_0807B7D8 + b _08096A14 + .align 2, 0 +_080969E4: .4byte gUnk_03000BF0 +_080969E8: + ldr r0, _08096A6C @ =0x000001CD + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08096A70 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r4, r5, #0 + adds r4, #0x38 + ldrb r2, [r4] + bl sub_0807B7D8 +_08096A14: + ldrb r0, [r5, #0xb] + ldrb r1, [r5, #0xf] + cmp r0, r1 + beq _08096A64 + ldr r2, _08096A74 @ =gUnk_081231B4 + mov r8, r2 + ldr r7, _08096A70 @ =gUnk_03000BF0 + movs r6, #0x3f +_08096A24: + ldrh r0, [r5, #0x32] + subs r0, #0x10 + strh r0, [r5, #0x32] + ldrb r0, [r5, #0xb] + lsls r0, r0, #1 + add r0, r8 + ldrh r0, [r0] + movs r3, #0x2e + ldrsh r1, [r5, r3] + ldrh r2, [r7, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r6 + movs r3, #0x32 + ldrsh r2, [r5, r3] + ldrh r3, [r7, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r6 + lsls r2, r2, #6 + orrs r1, r2 + ldrb r2, [r4] + bl sub_0807B7D8 + ldrb r0, [r5, #0xb] + adds r0, #1 + strb r0, [r5, #0xb] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r5, #0xf] + cmp r0, r1 + bne _08096A24 +_08096A64: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08096A6C: .4byte 0x000001CD +_08096A70: .4byte gUnk_03000BF0 +_08096A74: .4byte gUnk_081231B4 + + thumb_func_start sub_08096A78 +sub_08096A78: @ 0x08096A78 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r0, #0x1b + bl sub_0807CD04 + ldrb r1, [r4, #0xa] + lsrs r1, r1, #1 + adds r1, #8 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_08004168 + ldrh r0, [r4, #0x32] + adds r0, #4 + strh r0, [r4, #0x32] + movs r0, #3 + strb r0, [r4, #0xc] + ldr r0, _08096ACC @ =0x0000403B + movs r2, #0x2e + ldrsh r1, [r4, r2] + ldr r3, _08096AD0 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r5, #0x3f + ands r1, r5 + movs r6, #0x32 + ldrsh r2, [r4, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r5 + lsls r2, r2, #6 + orrs r1, r2 + adds r4, #0x38 + ldrb r2, [r4] + bl sub_0800015E + pop {r4, r5, r6, pc} + .align 2, 0 +_08096ACC: .4byte 0x0000403B +_08096AD0: .4byte gUnk_03000BF0 + + thumb_func_start sub_08096AD4 +sub_08096AD4: @ 0x08096AD4 + push {lr} + ldr r2, _08096AE8 @ =gUnk_0812323C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08096AE8: .4byte gUnk_0812323C + + thumb_func_start sub_08096AEC +sub_08096AEC: @ 0x08096AEC + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_080837B0 + cmp r0, #0 + beq _08096BB6 + ldrb r1, [r4, #0xa] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08096B12 + adds r1, r4, #0 + adds r1, #0x7e + movs r0, #1 + strb r0, [r1] + ldrb r1, [r4, #0xa] + movs r0, #3 + ands r0, r1 + strb r0, [r4, #0xa] +_08096B12: + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x70 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x72 + strh r0, [r1] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _08096B90 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r5, r4, #0 + adds r5, #0x76 + strh r1, [r5] + ldrh r0, [r5] + adds r6, r4, #0 + adds r6, #0x38 + ldrb r1, [r6] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x74 + strh r0, [r1] + ldrb r0, [r4, #0xa] + strb r0, [r4, #0x1e] + adds r0, r4, #0 + bl sub_08096CEC + cmp r0, #0 + beq _08096B9C + adds r0, r4, #0 + adds r0, #0x7e + ldrb r0, [r0] + cmp r0, #0 + beq _08096B94 + bl sub_0805E780 + b _08096BB6 + .align 2, 0 +_08096B90: .4byte gUnk_03000BF0 +_08096B94: + adds r0, r4, #0 + bl sub_08096E04 + b _08096BB6 +_08096B9C: + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldr r0, _08096BB8 @ =0x00004022 + ldrh r1, [r5] + ldrb r2, [r6] + bl sub_0800015E +_08096BB6: + pop {r4, r5, r6, pc} + .align 2, 0 +_08096BB8: .4byte 0x00004022 + + thumb_func_start sub_08096BBC +sub_08096BBC: @ 0x08096BBC + push {r4, lr} + adds r4, r0, #0 + bl sub_08096CEC + cmp r0, #0 + beq _08096BF2 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #7 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xa] + lsls r0, r0, #3 + strb r0, [r4, #0x15] + adds r0, r4, #0 + adds r0, #0x74 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x76 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + ldr r0, _08096BF4 @ =0x0000010B + bl sub_08004488 +_08096BF2: + pop {r4, pc} + .align 2, 0 +_08096BF4: .4byte 0x0000010B + + thumb_func_start sub_08096BF8 +sub_08096BF8: @ 0x08096BF8 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08096C3A + adds r0, r4, #0 + bl sub_08096E04 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x70 + ldrh r0, [r0] + strh r0, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x72 + ldrh r0, [r0] + strh r0, [r4, #0x32] + adds r0, r4, #0 + adds r0, #0x7e + ldrb r0, [r0] + cmp r0, #0 + beq _08096C3A + bl sub_0805E780 +_08096C3A: + pop {r4, pc} + + thumb_func_start sub_08096C3C +sub_08096C3C: @ 0x08096C3C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x7e + ldrb r0, [r0] + cmp r0, #0 + beq _08096C56 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + bne _08096CAE +_08096C56: + ldr r0, _08096C80 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + lsls r1, r1, #5 + ands r0, r1 + cmp r0, #0 + beq _08096C92 + ldrb r2, [r4, #0xa] + lsls r1, r2, #1 + ldr r0, _08096C84 @ =gUnk_03001160 + ldrb r0, [r0, #0x14] + cmp r1, r0 + bne _08096C88 + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_08083734 + cmp r0, #0 + beq _08096CAE + b _08096C9C + .align 2, 0 +_08096C80: .4byte gUnk_03003F80 +_08096C84: .4byte gUnk_03001160 +_08096C88: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + b _08096C98 +_08096C92: + adds r0, r4, #0 + bl sub_08096D84 +_08096C98: + cmp r0, #0 + bne _08096CAE +_08096C9C: + movs r0, #4 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + adds r0, #0x76 + ldrh r2, [r0] + adds r0, r4, #0 + bl sub_080836DC +_08096CAE: + pop {r4, pc} + + thumb_func_start sub_08096CB0 +sub_08096CB0: @ 0x08096CB0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08096CE6 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x70 + ldrh r0, [r0] + strh r0, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x72 + ldrh r0, [r0] + strh r0, [r4, #0x32] + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_08083814 + ldr r0, _08096CE8 @ =0x0000010B + bl sub_08004488 +_08096CE6: + pop {r4, pc} + .align 2, 0 +_08096CE8: .4byte 0x0000010B + + thumb_func_start sub_08096CEC +sub_08096CEC: @ 0x08096CEC + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x7e + ldrb r0, [r0] + cmp r0, #0 + beq _08096D06 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + bne _08096D60 +_08096D06: + ldr r0, _08096D40 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + lsls r1, r1, #5 + ands r0, r1 + cmp r0, #0 + beq _08096D64 + ldr r3, _08096D44 @ =gUnk_03001160 + ldrb r2, [r4, #0xa] + lsls r0, r2, #1 + ldrb r1, [r3, #0x14] + eors r0, r1 + movs r1, #2 + ands r0, r1 + cmp r0, #0 + bne _08096D64 + movs r0, #1 + ands r2, r0 + cmp r2, #0 + beq _08096D48 + movs r1, #0x32 + ldrsh r0, [r3, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + movs r5, #0x2e + ldrsh r2, [r3, r5] + movs r5, #0x2e + ldrsh r3, [r4, r5] + b _08096D58 + .align 2, 0 +_08096D40: .4byte gUnk_03003F80 +_08096D44: .4byte gUnk_03001160 +_08096D48: + movs r1, #0x2e + ldrsh r0, [r3, r1] + movs r2, #0x2e + ldrsh r1, [r4, r2] + movs r5, #0x32 + ldrsh r2, [r3, r5] + movs r5, #0x32 + ldrsh r3, [r4, r5] +_08096D58: + bl sub_08096D68 + cmp r0, #0 + beq _08096D64 +_08096D60: + movs r0, #1 + b _08096D66 +_08096D64: + movs r0, #0 +_08096D66: + pop {r4, r5, pc} + + thumb_func_start sub_08096D68 +sub_08096D68: @ 0x08096D68 + push {lr} + subs r0, r0, r1 + adds r0, #8 + cmp r0, #0x10 + bhi _08096D7E + subs r0, r2, r3 + adds r0, #0x30 + cmp r0, #0x60 + bhi _08096D7E + movs r0, #1 + b _08096D80 +_08096D7E: + movs r0, #0 +_08096D80: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08096D84 +sub_08096D84: @ 0x08096D84 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xa] + cmp r0, #1 + beq _08096DB4 + cmp r0, #1 + bgt _08096D98 + cmp r0, #0 + beq _08096DA2 + b _08096E00 +_08096D98: + cmp r0, #2 + beq _08096DC8 + cmp r0, #3 + beq _08096DE4 + b _08096E00 +_08096DA2: + movs r0, #0x32 + ldrsh r1, [r1, r0] + ldr r0, _08096DB0 @ =gUnk_03001160 + movs r2, #0x32 + ldrsh r0, [r0, r2] + b _08096DEE + .align 2, 0 +_08096DB0: .4byte gUnk_03001160 +_08096DB4: + ldr r0, _08096DC4 @ =gUnk_03001160 + movs r2, #0x2e + ldrsh r0, [r0, r2] + adds r0, #0xa + movs r2, #0x2e + ldrsh r1, [r1, r2] + b _08096DD4 + .align 2, 0 +_08096DC4: .4byte gUnk_03001160 +_08096DC8: + ldr r0, _08096DE0 @ =gUnk_03001160 + movs r2, #0x32 + ldrsh r0, [r0, r2] + adds r0, #0xa + movs r2, #0x32 + ldrsh r1, [r1, r2] +_08096DD4: + subs r0, r0, r1 + cmp r0, #0x64 + bhi _08096E00 + movs r0, #1 + b _08096E02 + .align 2, 0 +_08096DE0: .4byte gUnk_03001160 +_08096DE4: + movs r0, #0x2e + ldrsh r1, [r1, r0] + ldr r0, _08096DFC @ =gUnk_03001160 + movs r2, #0x2e + ldrsh r0, [r0, r2] +_08096DEE: + subs r0, #0xa + subs r1, r1, r0 + cmp r1, #0x64 + bhi _08096E00 + movs r0, #1 + b _08096E02 + .align 2, 0 +_08096DFC: .4byte gUnk_03001160 +_08096E00: + movs r0, #0 +_08096E02: + pop {pc} + + thumb_func_start sub_08096E04 +sub_08096E04: @ 0x08096E04 + movs r1, #3 + strb r1, [r0, #0xc] + movs r1, #8 + strb r1, [r0, #0xe] + bx lr + .align 2, 0 + + thumb_func_start sub_08096E10 +sub_08096E10: @ 0x08096E10 + push {lr} + ldr r2, _08096E24 @ =gUnk_08123250 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08096E24: .4byte gUnk_08123250 + + thumb_func_start sub_08096E28 +sub_08096E28: @ 0x08096E28 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + adds r5, r0, #0 + cmp r5, #0 + bne _08096EBC + movs r2, #1 + movs r3, #1 + strb r3, [r4, #0xc] + movs r0, #0x80 + strh r0, [r4, #0x24] + ldrb r1, [r4, #0x11] + subs r0, #0x90 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x11] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0x18] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #4 + strb r0, [r1] + ldr r0, _08096EB4 @ =gUnk_080FD1F4 + str r0, [r4, #0x48] + strb r3, [r4, #0x16] + adds r0, r4, #0 + adds r0, #0x72 + strh r5, [r0] + adds r0, #0xb + ldrb r0, [r0] + lsrs r0, r0, #4 + subs r1, #0x2b + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + bl sub_080970F4 + ldr r1, _08096EB8 @ =gUnk_08123264 + ldrb r0, [r4, #0xa] + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r4, #0x1e] + b _08096F04 + .align 2, 0 +_08096EB4: .4byte gUnk_080FD1F4 +_08096EB8: .4byte gUnk_08123264 +_08096EBC: + adds r0, r4, #0 + adds r0, #0x7c + ldrb r2, [r0] + adds r0, #1 + ldrb r3, [r0] + movs r1, #0xf + adds r0, r1, #0 + ands r0, r3 + lsls r0, r0, #8 + ldr r3, _08096F08 @ =gUnk_03000BF0 + orrs r2, r0 + ldrh r0, [r3, #6] + adds r2, r2, r0 + strh r2, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x7e + ldrb r0, [r0] + movs r2, #0x7f + adds r2, r2, r4 + mov ip, r2 + ldrb r2, [r2] + ands r1, r2 + lsls r1, r1, #8 + orrs r0, r1 + ldrh r3, [r3, #8] + adds r0, r0, r3 + strh r0, [r4, #0x32] + mov r5, ip + ldrb r0, [r5] + lsrs r0, r0, #4 + adds r1, r4, #0 + adds r1, #0x38 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080971E0 +_08096F04: + pop {r4, r5, pc} + .align 2, 0 +_08096F08: .4byte gUnk_03000BF0 + + thumb_func_start sub_08096F0C +sub_08096F0C: @ 0x08096F0C + push {r4, lr} + adds r4, r0, #0 + bl sub_08097194 + cmp r0, #0 + bne _08096F2E + adds r0, r4, #0 + bl sub_08097008 + cmp r0, #0 + beq _08096F28 + movs r0, #3 + strb r0, [r4, #0xc] + b _08096F2E +_08096F28: + adds r0, r4, #0 + bl sub_08078930 +_08096F2E: + pop {r4, pc} + + thumb_func_start sub_08096F30 +sub_08096F30: @ 0x08096F30 + push {lr} + adds r2, r0, #0 + adds r0, #0x76 + ldrh r0, [r0] + cmp r0, #0 + beq _08096F44 + adds r0, r2, #0 + bl sub_08097144 + b _08096F62 +_08096F44: + ldr r0, _08096F64 @ =gUnk_03003F80 + ldrb r0, [r0, #5] + cmp r0, #0 + bne _08096F50 + movs r0, #6 + strb r0, [r2, #0xd] +_08096F50: + ldr r0, _08096F68 @ =gUnk_0812326C + ldrb r1, [r2, #0xd] + subs r1, #5 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 +_08096F62: + pop {pc} + .align 2, 0 +_08096F64: .4byte gUnk_03003F80 +_08096F68: .4byte gUnk_0812326C + + thumb_func_start sub_08096F6C +sub_08096F6C: @ 0x08096F6C + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x72 + ldrh r0, [r1] + cmp r0, #0 + bne _08096F98 + movs r0, #1 + strh r0, [r1] + ldr r1, _08096FD8 @ =gUnk_03001160 + ldrb r0, [r1, #0x14] + ldr r2, _08096FDC @ =gUnk_08123274 + adds r0, r0, r2 + movs r2, #0 + ldrsb r2, [r0, r2] + lsls r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r0, r3] + lsls r3, r3, #0x10 + adds r0, r4, #0 + bl sub_0806FA48 +_08096F98: + adds r0, r4, #0 + bl sub_08097008 + bl sub_080896B0 + cmp r0, #0 + beq _08096FD4 + ldr r2, _08096FE0 @ =gUnk_03003F80 + movs r3, #0 + movs r0, #0x10 + strb r0, [r2, #0xc] + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #0x20 + strb r0, [r1] + ldr r0, [r2, #0x30] + movs r1, #1 + orrs r0, r1 + str r0, [r2, #0x30] + ldr r0, _08096FD8 @ =gUnk_03001160 + strh r3, [r0, #0x2c] + strh r3, [r0, #0x30] + ldrb r0, [r0, #0x14] + movs r1, #4 + eors r0, r1 + lsls r0, r0, #2 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_08097098 +_08096FD4: + pop {r4, pc} + .align 2, 0 +_08096FD8: .4byte gUnk_03001160 +_08096FDC: .4byte gUnk_08123274 +_08096FE0: .4byte gUnk_03003F80 + + thumb_func_start sub_08096FE4 +sub_08096FE4: @ 0x08096FE4 + movs r2, #0 + movs r1, #1 + strb r1, [r0, #0xc] + adds r0, #0x72 + strh r2, [r0] + bx lr + + thumb_func_start sub_08096FF0 +sub_08096FF0: @ 0x08096FF0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08097144 + cmp r0, #0 + beq _08097000 + movs r0, #1 + strb r0, [r4, #0xc] +_08097000: + pop {r4, pc} + .align 2, 0 + + thumb_func_start nullsub_122 +nullsub_122: @ 0x08097004 + bx lr + .align 2, 0 + + thumb_func_start sub_08097008 +sub_08097008: @ 0x08097008 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x74 + ldrh r0, [r0] + adds r1, r5, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002B0 + adds r4, r0, #0 + ldr r0, _08097048 @ =0x00004036 + cmp r4, r0 + beq _08097070 + adds r0, r4, #0 + bl sub_08097074 + cmp r0, #1 + beq _0809704C + cmp r0, #2 + beq _08097062 + movs r0, #0xf + movs r1, #4 + movs r2, #0 + bl sub_080A2960 + adds r1, r0, #0 + cmp r1, #0 + beq _0809706A + adds r0, r5, #0 + bl sub_0806FA24 + b _0809706A + .align 2, 0 +_08097048: .4byte 0x00004036 +_0809704C: + adds r0, r4, #0 + subs r0, #0x37 + movs r1, #3 + ands r0, r1 + lsls r0, r0, #3 + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_08097098 + movs r0, #1 + b _08097072 +_08097062: + adds r0, r5, #0 + adds r0, #0x70 + strh r4, [r0] + b _08097070 +_0809706A: + adds r0, r5, #0 + bl sub_0805E7BC +_08097070: + movs r0, #0 +_08097072: + pop {r4, r5, pc} + + thumb_func_start sub_08097074 +sub_08097074: @ 0x08097074 + push {lr} + adds r2, r0, #0 + ldr r1, _0809707C @ =gUnk_0812327C + b _0809708C + .align 2, 0 +_0809707C: .4byte gUnk_0812327C +_08097080: + ldrh r0, [r1] + cmp r0, r2 + bne _0809708A + ldrh r0, [r1, #2] + b _08097094 +_0809708A: + adds r1, #4 +_0809708C: + ldrh r0, [r1] + cmp r0, #0 + bne _08097080 + movs r0, #0 +_08097094: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08097098 +sub_08097098: @ 0x08097098 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r1, r6, #0 + adds r1, #0x76 + movs r0, #0x20 + strh r0, [r1] + adds r0, #0xef + bl sub_08004488 + adds r0, r6, #0 + adds r0, #0x70 + ldrh r0, [r0] + adds r5, r6, #0 + adds r5, #0x74 + ldrh r1, [r5] + adds r4, r6, #0 + adds r4, #0x38 + ldrb r2, [r4] + bl sub_0800015E + ldr r1, _080970F0 @ =gUnk_080B4488 + ldrb r0, [r6, #0x15] + lsrs r0, r0, #3 + lsls r0, r0, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + ldrh r5, [r5] + adds r0, r0, r5 + ldrb r1, [r4] + bl sub_080002B0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x79 + beq _080970E4 + cmp r0, #0x77 + bne _080970EC +_080970E4: + adds r1, r6, #0 + adds r1, #0x63 + movs r0, #2 + strb r0, [r1] +_080970EC: + pop {r4, r5, r6, pc} + .align 2, 0 +_080970F0: .4byte gUnk_080B4488 + + thumb_func_start sub_080970F4 +sub_080970F4: @ 0x080970F4 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r0, #0x2e + ldrsh r1, [r6, r0] + ldr r2, _0809713C @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r4, #0x32 + ldrsh r0, [r6, r4] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r4, r6, #0 + adds r4, #0x74 + strh r1, [r4] + ldrh r0, [r4] + adds r5, r6, #0 + adds r5, #0x38 + ldrb r1, [r5] + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x70 + strh r0, [r1] + ldr r0, _08097140 @ =0x00004036 + ldrh r1, [r4] + ldrb r2, [r5] + bl sub_0800015E + pop {r4, r5, r6, pc} + .align 2, 0 +_0809713C: .4byte gUnk_03000BF0 +_08097140: .4byte 0x00004036 + + thumb_func_start sub_08097144 +sub_08097144: @ 0x08097144 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_0800445C + adds r0, r4, #0 + bl sub_080002B8 + cmp r0, #0x19 + bne _08097164 + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #2 + strb r0, [r1] +_08097164: + adds r1, r4, #0 + adds r1, #0x76 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08097190 + adds r0, r4, #0 + bl sub_08097194 + cmp r0, #0 + bne _08097190 + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #4 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080970F4 + movs r0, #1 + b _08097192 +_08097190: + movs r0, #0 +_08097192: + pop {r4, pc} + + thumb_func_start sub_08097194 +sub_08097194: @ 0x08097194 + push {r4, lr} + adds r4, r0, #0 + bl sub_0800442E + cmp r0, #0 + beq _080971A4 + movs r0, #1 + b _080971DE +_080971A4: + adds r0, r4, #0 + bl sub_080002A0 + adds r1, r0, #0 + subs r0, #0x71 + cmp r0, #1 + bls _080971B8 + ldr r0, _080971D4 @ =0x00004020 + cmp r1, r0 + bne _080971DC +_080971B8: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + ldr r0, _080971D8 @ =0x0000010B + bl sub_08004488 + adds r0, r4, #0 + bl sub_080971E0 + movs r0, #1 + b _080971DE + .align 2, 0 +_080971D4: .4byte 0x00004020 +_080971D8: .4byte 0x0000010B +_080971DC: + movs r0, #0 +_080971DE: + pop {r4, pc} + + thumb_func_start sub_080971E0 +sub_080971E0: @ 0x080971E0 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0xf + movs r1, #0x11 + movs r2, #0x40 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _08097202 + ldr r2, _0809727C @ =0xFFF80000 + movs r3, #0x80 + lsls r3, r3, #0xa + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA48 +_08097202: + movs r0, #0xf + movs r1, #0x11 + movs r2, #0x40 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _08097222 + movs r2, #0x80 + lsls r2, r2, #0xc + movs r3, #0x80 + lsls r3, r3, #0xa + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA48 +_08097222: + ldrb r0, [r5, #0xa] + cmp r0, #1 + beq _08097284 + cmp r0, #1 + ble _08097234 + cmp r0, #2 + beq _080972C4 + cmp r0, #3 + beq _08097304 +_08097234: + movs r0, #4 + strb r0, [r5, #0xc] + movs r0, #1 + strb r0, [r5, #0x1e] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x2e + ldrsh r1, [r5, r0] + ldr r2, _08097280 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r4, #0x32 + ldrsh r0, [r5, r4] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r5, #0 + adds r0, #0x38 + ldrb r2, [r0] + movs r0, #0 + bl sub_0800015E +_08097274: + bl sub_0805E780 + b _08097346 + .align 2, 0 +_0809727C: .4byte 0xFFF80000 +_08097280: .4byte gUnk_03000BF0 +_08097284: + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r3, _080972C0 @ =gUnk_03000BF0 + ldrh r1, [r3, #6] + subs r0, r0, r1 + asrs r4, r0, #4 + movs r2, #0x3f + ands r4, r2 + movs r1, #0x32 + ldrsh r0, [r5, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + adds r0, r4, #0 + bl sub_08097348 + cmp r0, #0 + bne _08097274 + adds r0, r5, #0 + adds r0, #0x38 + ldrb r2, [r0] + movs r0, #0x73 + adds r1, r4, #0 + bl sub_0807B314 + b _08097274 + .align 2, 0 +_080972C0: .4byte gUnk_03000BF0 +_080972C4: + movs r0, #0x2f + movs r1, #0 + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _08097274 + ldrh r2, [r5, #0x2e] + movs r1, #0x10 + rsbs r1, r1, #0 + adds r0, r1, #0 + ands r0, r2 + adds r0, #8 + strh r0, [r4, #0x2e] + ldrh r0, [r5, #0x32] + ands r1, r0 + adds r1, #8 + strh r1, [r4, #0x32] + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + adds r0, r5, #0 + adds r0, #0x84 + ldrh r1, [r0] + adds r0, r4, #0 + adds r0, #0x86 + strh r1, [r0] + b _08097274 +_08097304: + movs r0, #0x2f + movs r1, #1 + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _08097342 + ldrh r2, [r5, #0x2e] + movs r1, #0x10 + rsbs r1, r1, #0 + adds r0, r1, #0 + ands r0, r2 + adds r0, #8 + strh r0, [r4, #0x2e] + ldrh r0, [r5, #0x32] + ands r1, r0 + adds r1, #8 + strh r1, [r4, #0x32] + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + adds r0, r5, #0 + adds r0, #0x84 + ldrh r1, [r0] + adds r0, r4, #0 + adds r0, #0x86 + strh r1, [r0] +_08097342: + bl sub_0805E780 +_08097346: + pop {r4, r5, pc} + + thumb_func_start sub_08097348 +sub_08097348: @ 0x08097348 + push {lr} + adds r3, r0, #0 + ldr r1, _08097360 @ =gUnk_02017660 + movs r2, #0 +_08097350: + ldrh r0, [r1, #4] + cmp r0, r3 + bne _08097364 + ldrb r0, [r1, #1] + bl sub_0807CBD0 + b _0809736E + .align 2, 0 +_08097360: .4byte gUnk_02017660 +_08097364: + adds r2, #1 + adds r1, #8 + cmp r2, #7 + bls _08097350 + movs r0, #0 +_0809736E: + pop {pc} + + thumb_func_start sub_08097370 +sub_08097370: @ 0x08097370 + push {lr} + ldr r2, _08097384 @ =gUnk_08123298 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08097384: .4byte gUnk_08123298 + + thumb_func_start sub_08097388 +sub_08097388: @ 0x08097388 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806FBD8 + cmp r0, #0 + beq _080973D4 + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + ldr r1, _080973D8 @ =gUnk_081232A0 + adds r0, r0, r1 + ldrb r1, [r0] + strb r1, [r4, #0xb] + ldrb r2, [r0, #3] + adds r1, r4, #0 + adds r1, #0x40 + strb r2, [r1] + ldr r2, [r4, #0x48] + ldrb r1, [r0, #1] + strb r1, [r2, #6] + ldr r1, [r4, #0x48] + ldrb r0, [r0, #2] + strb r0, [r1, #7] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #3 + movs r0, #0x91 + strb r0, [r1] + subs r1, #4 + movs r0, #2 + strb r0, [r1] + movs r0, #1 + strb r0, [r4, #0xc] +_080973D4: + pop {r4, pc} + .align 2, 0 +_080973D8: .4byte gUnk_081232A0 + + thumb_func_start sub_080973DC +sub_080973DC: @ 0x080973DC + adds r0, #0x41 + movs r1, #0 + strb r1, [r0] + bx lr + + thumb_func_start sub_080973E4 +sub_080973E4: @ 0x080973E4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0809741E + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + strb r0, [r4, #0x1e] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 + bl sub_08052660 + cmp r0, #0 + beq _0809741E + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2] +_0809741E: + pop {r4, pc} + + thumb_func_start sub_08097420 +sub_08097420: @ 0x08097420 + push {lr} + ldr r2, _08097434 @ =gUnk_081232A4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08097434: .4byte gUnk_081232A4 + + thumb_func_start sub_08097438 +sub_08097438: @ 0x08097438 + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xa] + adds r1, r0, #0 + adds r1, #0xb + strb r1, [r4, #0x1e] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080974A2 + adds r0, r4, #0 + bl sub_08004168 + ldr r1, _08097494 @ =gUnk_03001160 + ldrb r0, [r1, #0x1b] + movs r2, #0xc0 + orrs r0, r2 + strb r0, [r1, #0x1b] + adds r1, #0x29 + ldrb r1, [r1] + movs r2, #7 + movs r0, #7 + ands r0, r1 + cmp r0, #7 + beq _08097498 + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + adds r1, #1 + adds r3, r4, #0 + adds r3, #0x29 + ands r1, r2 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + b _080974A2 + .align 2, 0 +_08097494: .4byte gUnk_03001160 +_08097498: + adds r1, r4, #0 + adds r1, #0x29 + ldrb r0, [r1] + orrs r0, r2 + strb r0, [r1] +_080974A2: + pop {r4, pc} + + thumb_func_start sub_080974A4 +sub_080974A4: @ 0x080974A4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08097554 + ldr r3, _08097540 @ =gUnk_03001160 + ldr r0, [r3, #0x34] + cmp r0, #0 + bne _080974E8 + ldr r2, _08097544 @ =gUnk_03003F80 + ldrb r1, [r2, #0x1e] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _080974D6 + ldrb r0, [r2, #0x12] + cmp r0, #0x11 + bne _080974D6 + ldrb r0, [r3, #0xc] + cmp r0, #1 + beq _080974FA + cmp r0, #0x18 + beq _080974FA + cmp r0, #4 + beq _080974FA +_080974D6: + ldr r1, _08097540 @ =gUnk_03001160 + ldr r0, [r1, #0x34] + cmp r0, #0 + bne _080974E8 + adds r0, r1, #0 + movs r1, #0x52 + movs r2, #0 + bl sub_080A29AC +_080974E8: + ldr r2, _08097540 @ =gUnk_03001160 + ldrb r1, [r2, #0x1b] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #0x1b] + bl sub_0805E780 +_080974FA: + ldr r2, _08097540 @ =gUnk_03001160 + ldr r0, [r2, #0x2c] + str r0, [r4, #0x2c] + ldr r0, [r2, #0x30] + str r0, [r4, #0x30] + ldr r0, _08097544 @ =gUnk_03003F80 + ldrb r0, [r0, #2] + cmp r0, #0 + bne _08097584 + ldrb r0, [r2, #0x1b] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r2, #0x1b] + adds r0, r2, #0 + adds r0, #0x29 + ldrb r1, [r0] + movs r2, #7 + movs r0, #7 + ands r0, r1 + cmp r0, #7 + beq _08097548 + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + adds r1, #1 + adds r3, r4, #0 + adds r3, #0x29 + ands r1, r2 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + b _08097584 + .align 2, 0 +_08097540: .4byte gUnk_03001160 +_08097544: .4byte gUnk_03003F80 +_08097548: + adds r1, r4, #0 + adds r1, #0x29 + ldrb r0, [r1] + orrs r0, r2 + strb r0, [r1] + b _08097584 +_08097554: + ldr r2, _08097570 @ =gUnk_03001160 + ldrb r0, [r2, #0xc] + cmp r0, #0x1e + beq _08097584 + adds r0, r4, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #1 + bne _08097574 + ldrb r0, [r2, #0x1b] + movs r1, #0x3f + ands r1, r0 + movs r0, #0x80 + b _0809757C + .align 2, 0 +_08097570: .4byte gUnk_03001160 +_08097574: + ldrb r0, [r2, #0x1b] + movs r1, #0x3f + ands r1, r0 + movs r0, #0x40 +_0809757C: + orrs r1, r0 + strb r1, [r2, #0x1b] + bl sub_0805E780 +_08097584: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08097588 +sub_08097588: @ 0x08097588 + push {lr} + ldr r2, _0809759C @ =gUnk_081232AC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809759C: .4byte gUnk_081232AC + + thumb_func_start sub_080975A0 +sub_080975A0: @ 0x080975A0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xa] + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x11] + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _08097690 @ =gUnk_03000BF0 + mov r8, r2 + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r5, r0, #4 + movs r6, #0x3f + ands r5, r6 + movs r1, #0x32 + ldrsh r0, [r4, r1] + ldrh r1, [r2, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r5, r0 + adds r0, r5, #0 + subs r0, #0x41 + adds r7, r4, #0 + adds r7, #0x38 + ldrb r1, [r7] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x6a + strh r0, [r1] + adds r0, r5, #0 + subs r0, #0x40 + ldrb r1, [r7] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x6c + strh r0, [r1] + adds r0, r5, #0 + subs r0, #0x3f + ldrb r1, [r7] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x6e + strh r0, [r1] + subs r0, r5, #1 + ldrb r1, [r7] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x70 + strh r0, [r1] + ldrb r1, [r7] + adds r0, r5, #0 + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x72 + strh r0, [r1] + adds r0, r5, #1 + ldrb r1, [r7] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x74 + strh r0, [r1] + adds r0, r5, #0 + adds r0, #0x3f + ldrb r1, [r7] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] + adds r0, r5, #0 + adds r0, #0x40 + ldrb r1, [r7] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x78 + strh r0, [r1] + adds r0, r5, #0 + adds r0, #0x41 + ldrb r1, [r7] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x7a + strh r0, [r1] + adds r0, r4, #0 + bl sub_0809798C + cmp r0, #0 + beq _080976A2 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08097694 + ldrh r0, [r4, #0x32] + subs r0, #0x16 + b _08097698 + .align 2, 0 +_08097690: .4byte gUnk_03000BF0 +_08097694: + ldrh r0, [r4, #0x32] + subs r0, #0x10 +_08097698: + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl sub_080977F4 + b _08097722 +_080976A2: + movs r0, #1 + strb r0, [r4, #0xc] + movs r2, #0x2e + ldrsh r0, [r4, r2] + mov r2, r8 + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r5, r0, #4 + ands r5, r6 + movs r1, #0x32 + ldrsh r0, [r4, r1] + ldrh r1, [r2, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r5, r0 + adds r0, r4, #0 + adds r0, #0x68 + strh r5, [r0] + ldr r1, _080976FC @ =gUnk_081232DE + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r6, [r0] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08097704 + ldr r0, _08097700 @ =gUnk_080FD578 + str r0, [r4, #0x48] + subs r1, r5, #1 + ldrb r2, [r7] + adds r0, r6, #0 + bl sub_0800015E + ldrb r2, [r7] + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_0800015E + ldrh r0, [r4, #0x32] + adds r0, #2 + strh r0, [r4, #0x32] + b _08097722 + .align 2, 0 +_080976FC: .4byte gUnk_081232DE +_08097700: .4byte gUnk_080FD578 +_08097704: + ldr r0, _08097728 @ =gUnk_080FD570 + str r0, [r4, #0x48] + ldrb r2, [r7] + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_0800015E + ldrb r0, [r4, #0xb] + cmp r0, #2 + bne _08097722 + ldr r0, _0809772C @ =gUnk_081232C0 + ldrb r2, [r7] + adds r1, r5, #0 + bl sub_0801AF18 +_08097722: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08097728: .4byte gUnk_080FD570 +_0809772C: .4byte gUnk_081232C0 + + thumb_func_start sub_08097730 +sub_08097730: @ 0x08097730 + push {r4, lr} + adds r4, r0, #0 + bl sub_0809785C + cmp r0, #0 + beq _08097744 + ldrb r1, [r4, #0xe] + adds r0, r4, #0 + bl sub_0805E4E0 +_08097744: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08097748 +sub_08097748: @ 0x08097748 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xd] + cmp r0, #0 + bne _08097774 + ldrb r0, [r2, #0xf] + subs r0, #1 + strb r0, [r2, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809779A + movs r0, #1 + strb r0, [r2, #0xd] + movs r0, #0x78 + strb r0, [r2, #0xf] + ldr r1, _08097770 @ =gUnk_03000BF0 + str r2, [r1, #0x30] + movs r0, #2 + strb r0, [r1, #0xe] + b _0809779A + .align 2, 0 +_08097770: .4byte gUnk_03000BF0 +_08097774: + ldrb r0, [r2, #0xf] + subs r0, #1 + strb r0, [r2, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809779A + movs r0, #3 + strb r0, [r2, #0xc] + movs r0, #0x60 + strb r0, [r2, #0xe] + movs r0, #0x14 + strb r0, [r2, #0xf] + adds r0, r2, #0 + movs r1, #0x60 + bl sub_0805E4E0 + ldr r0, _0809779C @ =0x0000010F + bl sub_080A3268 +_0809779A: + pop {pc} + .align 2, 0 +_0809779C: .4byte 0x0000010F + + thumb_func_start sub_080977A0 +sub_080977A0: @ 0x080977A0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080977BC + subs r0, #1 + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_0800445C + b _080977E4 +_080977BC: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _080977C8 + subs r0, #1 + strb r0, [r4, #0xf] + b _080977E4 +_080977C8: + movs r0, #0x72 + bl sub_08004488 + adds r0, r4, #0 + bl sub_080977F4 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080977E4 + ldr r0, _080977E8 @ =gUnk_03000BF0 + ldr r1, _080977EC @ =gUnk_03001160 + str r1, [r0, #0x30] + movs r1, #4 + strb r1, [r0, #0xe] +_080977E4: + pop {r4, pc} + .align 2, 0 +_080977E8: .4byte gUnk_03000BF0 +_080977EC: .4byte gUnk_03001160 + + thumb_func_start nullsub_528 +nullsub_528: @ 0x080977F0 + bx lr + .align 2, 0 + + thumb_func_start sub_080977F4 +sub_080977F4: @ 0x080977F4 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + movs r1, #0 + movs r0, #4 + strb r0, [r5, #0xc] + adds r0, r5, #0 + adds r0, #0x63 + strb r1, [r0] + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r3, _08097854 @ =gUnk_03000BF0 + ldrh r1, [r3, #6] + subs r0, r0, r1 + asrs r4, r0, #4 + movs r2, #0x3f + ands r4, r2 + movs r1, #0x32 + ldrsh r0, [r5, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + ldr r7, _08097858 @ =0x00004022 + adds r6, r5, #0 + adds r6, #0x38 + ldrb r2, [r6] + adds r0, r7, #0 + adds r1, r4, #0 + bl sub_0800015E + ldrb r0, [r5, #0xa] + cmp r0, #0 + bne _08097844 + subs r1, r4, #1 + ldrb r2, [r6] + adds r0, r7, #0 + bl sub_0800015E +_08097844: + adds r1, r5, #0 + adds r1, #0x86 + ldrh r0, [r1] + cmp r0, #0 + beq _08097852 + bl sub_0807CCC8 +_08097852: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08097854: .4byte gUnk_03000BF0 +_08097858: .4byte 0x00004022 + + thumb_func_start sub_0809785C +sub_0809785C: @ 0x0809785C + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r4, [r5, #0xa] + cmp r4, #0 + beq _08097948 + ldrb r0, [r5, #0xb] + cmp r0, #0 + bne _0809786E + b _08097986 +_0809786E: + adds r0, r5, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + adds r4, r5, #0 + adds r4, #0x68 + adds r6, r5, #0 + adds r6, #0x38 + cmp r0, #0 + bne _08097892 + ldrh r0, [r4] + ldrb r1, [r6] + bl sub_080002B0 + ldr r1, _08097940 @ =0x0000403F + cmp r0, r1 + bne _08097986 +_08097892: + movs r1, #0 + movs r0, #3 + strb r0, [r5, #0xc] + movs r0, #0x40 + strb r0, [r5, #0xe] + strb r1, [r5, #0xf] + strb r1, [r5, #0x15] + strh r0, [r5, #0x24] + ldrh r4, [r4] + adds r0, r5, #0 + adds r0, #0x72 + ldrh r0, [r0] + ldrb r2, [r6] + adds r1, r4, #0 + bl sub_0807B9B8 + ldrb r0, [r5, #0xb] + cmp r0, #2 + bne _08097934 + adds r0, r5, #0 + adds r0, #0x6a + ldrh r0, [r0] + adds r1, r4, #0 + subs r1, #0x41 + ldrb r2, [r6] + bl sub_0807B9B8 + adds r0, r5, #0 + adds r0, #0x6c + ldrh r0, [r0] + adds r1, r4, #0 + subs r1, #0x40 + ldrb r2, [r6] + bl sub_0807B9B8 + adds r0, r5, #0 + adds r0, #0x6e + ldrh r0, [r0] + adds r1, r4, #0 + subs r1, #0x3f + ldrb r2, [r6] + bl sub_0807B9B8 + adds r0, r5, #0 + adds r0, #0x70 + ldrh r0, [r0] + subs r1, r4, #1 + ldrb r2, [r6] + bl sub_0807B9B8 + adds r0, r5, #0 + adds r0, #0x74 + ldrh r0, [r0] + adds r1, r4, #1 + ldrb r2, [r6] + bl sub_0807B9B8 + adds r0, r5, #0 + adds r0, #0x76 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x3f + ldrb r2, [r6] + bl sub_0807B9B8 + adds r0, r5, #0 + adds r0, #0x78 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x40 + ldrb r2, [r6] + bl sub_0807B9B8 + adds r0, r5, #0 + adds r0, #0x7a + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x41 + ldrb r2, [r6] + bl sub_0807B9B8 +_08097934: + ldr r0, _08097944 @ =0x0000010F + bl sub_080A3268 + movs r0, #1 + b _08097988 + .align 2, 0 +_08097940: .4byte 0x0000403F +_08097944: .4byte 0x0000010F +_08097948: + adds r0, r5, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _08097986 + movs r0, #2 + strb r0, [r5, #0xc] + strb r4, [r5, #0xd] + movs r0, #0xf0 + strb r0, [r5, #0xe] + movs r0, #0x3c + strb r0, [r5, #0xf] + strb r4, [r5, #0x15] + movs r0, #0x40 + strh r0, [r5, #0x24] + adds r4, r5, #0 + adds r4, #0x68 + ldrh r0, [r4] + adds r5, #0x38 + ldrb r1, [r5] + bl sub_0807BA8C + ldrh r0, [r4] + subs r0, #1 + ldrb r1, [r5] + bl sub_0807BA8C + movs r0, #1 + b _08097988 +_08097986: + movs r0, #0 +_08097988: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0809798C +sub_0809798C: @ 0x0809798C + push {r4, lr} + adds r1, r0, #0 + movs r4, #0 + ldrb r0, [r1, #0xa] + cmp r0, #0 + beq _0809799E + ldrb r0, [r1, #0xb] + cmp r0, #0 + beq _080979AE +_0809799E: + adds r0, r1, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _080979AE + movs r4, #1 +_080979AE: + adds r0, r4, #0 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080979B4 +sub_080979B4: @ 0x080979B4 + push {lr} + ldr r2, _080979C8 @ =gUnk_081232E4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080979C8: .4byte gUnk_081232E4 + + thumb_func_start sub_080979CC +sub_080979CC: @ 0x080979CC + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + ldrb r0, [r5, #0xa] + cmp r0, #3 + bne _08097A20 + movs r0, #0 + strb r0, [r5, #0x1e] + ldr r0, _08097A18 @ =gUnk_081232FE + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08097A1C @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0801AF18 + b _08097A4E + .align 2, 0 +_08097A18: .4byte gUnk_081232FE +_08097A1C: .4byte gUnk_03000BF0 +_08097A20: + strb r0, [r5, #0x1e] + ldr r0, _08097A50 @ =gUnk_081232EC + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08097A54 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0801AF18 +_08097A4E: + pop {r4, r5, r6, pc} + .align 2, 0 +_08097A50: .4byte gUnk_081232EC +_08097A54: .4byte gUnk_03000BF0 + + thumb_func_start nullsub_529 +nullsub_529: @ 0x08097A58 + bx lr + .align 2, 0 + + thumb_func_start sub_08097A5C +sub_08097A5C: @ 0x08097A5C + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _08097AAC + movs r4, #1 + movs r0, #1 + strb r0, [r5, #0xc] + movs r0, #0x5a + strb r0, [r5, #0xe] + bl sub_08000E50 + strb r0, [r5, #0xf] + lsrs r0, r0, #0x10 + movs r1, #3 + ands r0, r1 + strb r0, [r5, #0x1e] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r4 + strb r0, [r5, #0x18] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r5, #0xb] + bl sub_0804B128 + str r0, [r5, #0x54] + adds r1, r5, #0 + adds r1, #0x54 + adds r2, r5, #0 + adds r2, #0x70 + adds r0, r5, #0 + bl sub_080A2CC0 +_08097AAC: + adds r0, r5, #0 + bl sub_08097ADC + adds r1, r0, #0 + adds r0, r5, #0 + bl sub_080A2BE4 + adds r0, r5, #0 + bl sub_08097B24 + adds r2, r5, #0 + adds r2, #0x70 + ldrh r0, [r2] + subs r0, #1 + strh r0, [r2] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08097ADA + adds r1, r5, #0 + adds r1, #0x54 + adds r0, r5, #0 + bl sub_080A2CC0 +_08097ADA: + pop {r4, r5, pc} + + thumb_func_start sub_08097ADC +sub_08097ADC: @ 0x08097ADC + push {r4, r5, lr} + adds r2, r0, #0 + ldr r5, _08097B18 @ =gUnk_03003F80 + ldr r0, [r5, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08097B20 + ldr r4, _08097B1C @ =gUnk_03001160 + adds r0, r2, #0 + adds r1, r4, #0 + movs r2, #8 + movs r3, #8 + bl sub_080041A0 + cmp r0, #0 + beq _08097B20 + bl sub_08079F8C + cmp r0, #0 + beq _08097B20 + movs r0, #1 + strb r0, [r5, #0x14] + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08097B20 + movs r0, #1 + b _08097B22 + .align 2, 0 +_08097B18: .4byte gUnk_03003F80 +_08097B1C: .4byte gUnk_03001160 +_08097B20: + movs r0, #0 +_08097B22: + pop {r4, r5, pc} + + thumb_func_start sub_08097B24 +sub_08097B24: @ 0x08097B24 + push {r4, lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xe] + subs r0, #1 + strb r0, [r3, #0xe] + movs r4, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08097B44 + movs r0, #0x5a + strb r0, [r3, #0xe] + ldrb r0, [r3, #0x1e] + adds r0, #1 + movs r1, #3 + ands r0, r1 + strb r0, [r3, #0x1e] +_08097B44: + ldr r2, _08097B68 @ =gUnk_08123318 + ldrb r0, [r3, #0xf] + adds r0, #1 + strb r0, [r3, #0xf] + ands r0, r4 + lsrs r0, r0, #5 + movs r1, #7 + ands r0, r1 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r2, [r0] + adds r0, r3, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C + pop {r4, pc} + .align 2, 0 +_08097B68: .4byte gUnk_08123318 + + thumb_func_start sub_08097B6C +sub_08097B6C: @ 0x08097B6C + push {lr} + ldr r2, _08097B80 @ =gUnk_08123330 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08097B80: .4byte gUnk_08123330 + + thumb_func_start sub_08097B84 +sub_08097B84: @ 0x08097B84 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldr r0, _08097BCC @ =gUnk_08123328 + str r0, [r4, #0x48] + adds r2, #0x5d + ldrh r1, [r2] + ldr r0, _08097BD0 @ =0x0000FFFF + cmp r1, r0 + beq _08097BB0 + adds r0, r1, #0 + bl sub_0807CBE4 + cmp r0, #0 + beq _08097BD4 +_08097BB0: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_08097CFC + b _08097BD8 + .align 2, 0 +_08097BCC: .4byte gUnk_08123328 +_08097BD0: .4byte 0x0000FFFF +_08097BD4: + bl sub_0805BC4C +_08097BD8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08097BDC +sub_08097BDC: @ 0x08097BDC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _08097C10 + movs r0, #1 + bl sub_08078A90 + ldr r0, _08097C14 @ =gUnk_02034490 + movs r1, #1 + strb r1, [r0] + adds r0, r4, #0 + movs r1, #0x1e + bl sub_0805E4E0 + adds r0, r4, #0 + bl sub_08097CB0 + cmp r0, #0 + bne _08097C10 + adds r0, r4, #0 + bl sub_08097CB4 +_08097C10: + pop {r4, pc} + .align 2, 0 +_08097C14: .4byte gUnk_02034490 + + thumb_func_start sub_08097C18 +sub_08097C18: @ 0x08097C18 + bx lr + .align 2, 0 + + thumb_func_start sub_08097C1C +sub_08097C1C: @ 0x08097C1C + bx lr + .align 2, 0 + + thumb_func_start sub_08097C20 +sub_08097C20: @ 0x08097C20 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r0, #0x1e + bl sub_0805E510 + adds r0, r4, #0 + bl sub_0800445C + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_080577AC + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _08097CA6 + movs r0, #8 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] + ands r1, r0 + ldr r6, _08097CA8 @ =gUnk_03000F50 + movs r0, #0x10 + subs r0, r0, r1 + lsls r0, r0, #8 + orrs r0, r1 + adds r1, r6, #0 + adds r1, #0x68 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x10 + bne _08097CA6 + movs r0, #0 + bl sub_08078A90 + ldr r1, _08097CAC @ =gUnk_02034490 + movs r0, #0 + strb r0, [r1] + adds r0, r6, #0 + adds r0, #0x66 + strh r5, [r0] + adds r0, r4, #0 + bl sub_08097CFC + movs r0, #4 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x19] + subs r0, #0x11 + ands r0, r1 + strb r0, [r4, #0x19] + movs r0, #0x72 + bl sub_080A3268 + movs r0, #0x63 + bl sub_0807CD04 +_08097CA6: + pop {r4, r5, r6, pc} + .align 2, 0 +_08097CA8: .4byte gUnk_03000F50 +_08097CAC: .4byte gUnk_02034490 + + thumb_func_start sub_08097CB0 +sub_08097CB0: @ 0x08097CB0 + movs r0, #0 + bx lr + + thumb_func_start sub_08097CB4 +sub_08097CB4: @ 0x08097CB4 + push {lr} + movs r3, #0 + movs r1, #3 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x18] + subs r1, #7 + ands r1, r2 + movs r2, #1 + orrs r1, r2 + strb r1, [r0, #0x18] + ldrb r2, [r0, #0x19] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #4 + orrs r1, r2 + strb r1, [r0, #0x19] + movs r1, #0x1e + strb r1, [r0, #0xe] + strb r3, [r0, #0xf] + ldr r1, _08097CF8 @ =gUnk_03000F50 + adds r2, r1, #0 + adds r2, #0x66 + movs r0, #0xf4 + lsls r0, r0, #4 + strh r0, [r2] + adds r1, #0x68 + adds r0, #0xc0 + strh r0, [r1] + movs r0, #0xa5 + lsls r0, r0, #1 + bl sub_080A3268 + pop {pc} + .align 2, 0 +_08097CF8: .4byte gUnk_03000F50 + + thumb_func_start sub_08097CFC +sub_08097CFC: @ 0x08097CFC + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrh r1, [r5, #0x2e] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _08097D40 + ldr r0, _08097D38 @ =gUnk_0812336A + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08097D3C @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0801AF18 + b _08097D6C + .align 2, 0 +_08097D38: .4byte gUnk_0812336A +_08097D3C: .4byte gUnk_03000BF0 +_08097D40: + ldr r0, _08097D70 @ =gUnk_08123344 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08097D74 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0801AF18 +_08097D6C: + pop {r4, r5, r6, pc} + .align 2, 0 +_08097D70: .4byte gUnk_08123344 +_08097D74: .4byte gUnk_03000BF0 + + thumb_func_start sub_08097D78 +sub_08097D78: @ 0x08097D78 + push {lr} + ldr r2, _08097D8C @ =gUnk_08123384 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08097D8C: .4byte gUnk_08123384 + + thumb_func_start sub_08097D90 +sub_08097D90: @ 0x08097D90 + push {r4, lr} + adds r4, r0, #0 + movs r3, #1 + movs r2, #1 + strb r2, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r3 + strb r0, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x38 + strb r2, [r0] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08097DCC +sub_08097DCC: @ 0x08097DCC + push {lr} + bl sub_080042B8 + pop {pc} + + thumb_func_start sub_08097DD4 +sub_08097DD4: @ 0x08097DD4 + push {lr} + ldr r2, _08097DE8 @ =gUnk_081233B8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08097DE8: .4byte gUnk_081233B8 + + thumb_func_start sub_08097DEC +sub_08097DEC: @ 0x08097DEC + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_08016A04 + ldrb r0, [r4, #0xa] + cmp r0, #1 + beq _08097E46 + cmp r0, #1 + bgt _08097E0A + cmp r0, #0 + beq _08097E1C + b _08097EA2 +_08097E0A: + cmp r0, #3 + bgt _08097EA2 + ldrb r0, [r4, #0xb] + strb r0, [r4, #0x1e] + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + b _08097E9C +_08097E1C: + ldrh r2, [r4, #0x2e] + movs r1, #0x10 + rsbs r1, r1, #0 + adds r0, r1, #0 + ands r0, r2 + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x32] + ands r1, r0 + strh r1, [r4, #0x32] + adds r0, r4, #0 + bl sub_08097EB8 + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _08097EA2 + adds r1, r0, #0 + adds r1, #0xb + adds r0, r4, #0 + bl sub_0801D2B4 + b _08097EA2 +_08097E46: + ldrb r0, [r4, #0xb] + strb r0, [r4, #0x1e] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x19 + cmp r0, #1 + beq _08097E76 + cmp r0, #1 + bgt _08097E5C + cmp r0, #0 + beq _08097E68 + b _08097E9C +_08097E5C: + cmp r0, #2 + bne _08097E9C + adds r0, r4, #0 + movs r1, #0xd + bl sub_0801D2B4 +_08097E68: + ldrb r0, [r4, #0x1b] + movs r1, #0x3f + ands r1, r0 + movs r0, #0x40 + orrs r1, r0 + strb r1, [r4, #0x1b] + b _08097E9C +_08097E76: + ldrb r1, [r4, #0x1b] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x1b] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #0xb + bl sub_0801D2B4 +_08097E9C: + adds r0, r4, #0 + bl sub_08097F34 +_08097EA2: + pop {r4, pc} + + thumb_func_start sub_08097EA4 +sub_08097EA4: @ 0x08097EA4 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xa] + cmp r0, #0 + beq _08097EB4 + adds r0, r1, #0 + bl sub_08097F10 +_08097EB4: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08097EB8 +sub_08097EB8: @ 0x08097EB8 + push {r4, r5, r6, lr} + movs r2, #0x2e + ldrsh r1, [r0, r2] + ldr r3, _08097F04 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r5, r1, #4 + movs r2, #0x3f + ands r5, r2 + movs r1, #0x32 + ldrsh r0, [r0, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r5, r0 + ldr r4, _08097F08 @ =gUnk_081233C0 + movs r2, #0 + ldrsh r0, [r4, r2] + ldr r1, _08097F0C @ =0x00007FFF + cmp r0, r1 + beq _08097F00 + adds r6, r1, #0 +_08097EE8: + ldrh r0, [r4, #2] + movs r2, #0 + ldrsh r1, [r4, r2] + adds r1, r5, r1 + movs r2, #1 + bl sub_0800015E + adds r4, #4 + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, r6 + bne _08097EE8 +_08097F00: + pop {r4, r5, r6, pc} + .align 2, 0 +_08097F04: .4byte gUnk_03000BF0 +_08097F08: .4byte gUnk_081233C0 +_08097F0C: .4byte 0x00007FFF + + thumb_func_start sub_08097F10 +sub_08097F10: @ 0x08097F10 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08097F30 @ =gUnk_03000BF0 + movs r2, #0xc + ldrsh r1, [r0, r2] + ldrh r0, [r0, #8] + subs r1, r1, r0 + adds r0, r4, #0 + bl sub_08097F60 + adds r1, r4, #0 + adds r1, #0x70 + ldrh r1, [r1] + subs r1, r1, r0 + strh r1, [r4, #0x32] + pop {r4, pc} + .align 2, 0 +_08097F30: .4byte gUnk_03000BF0 + + thumb_func_start sub_08097F34 +sub_08097F34: @ 0x08097F34 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x32 + ldrsh r1, [r4, r0] + ldr r0, _08097F5C @ =gUnk_03000BF0 + ldrh r0, [r0, #8] + subs r1, r1, r0 + adds r0, r4, #0 + bl sub_08097F60 + ldrh r1, [r4, #0x32] + adds r1, r1, r0 + adds r0, r4, #0 + adds r0, #0x70 + strh r1, [r0] + adds r0, r4, #0 + bl sub_08097F10 + pop {r4, pc} + .align 2, 0 +_08097F5C: .4byte gUnk_03000BF0 + + thumb_func_start sub_08097F60 +sub_08097F60: @ 0x08097F60 + push {lr} + ldrb r2, [r0, #0xa] + cmp r2, #1 + bne _08097F74 + ldrb r0, [r0, #0x1e] + lsrs r0, r0, #1 + cmp r0, #1 + bne _08097F7C + asrs r1, r1, #3 + b _08097F7E +_08097F74: + cmp r2, #1 + blt _08097F7E + cmp r2, #3 + bgt _08097F7E +_08097F7C: + asrs r1, r1, #1 +_08097F7E: + adds r0, r1, #0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08097F84 +sub_08097F84: @ 0x08097F84 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08097FAC @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08097F98 + bl sub_0805E780 +_08097F98: + ldr r0, _08097FB0 @ =gUnk_08123410 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_08097FAC: .4byte gUnk_03003F80 +_08097FB0: .4byte gUnk_08123410 + + thumb_func_start sub_08097FB4 +sub_08097FB4: @ 0x08097FB4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + movs r1, #0 + strb r0, [r4, #0xc] + movs r2, #0 + strh r1, [r4, #0x24] + str r1, [r4, #0x6c] + adds r1, r4, #0 + adds r1, #0x7a + movs r0, #0x90 + lsls r0, r0, #5 + strh r0, [r1] + strb r2, [r4, #0xe] + movs r0, #0x1e + strb r0, [r4, #0xf] + ldr r1, _08098014 @ =gUnk_0812341C + ldrb r0, [r4, #0xa] + adds r0, r0, r1 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x72 + strh r0, [r1] + movs r0, #0x80 + lsls r0, r0, #6 + str r0, [r4, #0x74] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08098018 + adds r1, r4, #0 + adds r1, #0x7e + movs r0, #0x40 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_080AE008 + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_080042AC + b _08098032 + .align 2, 0 +_08098014: .4byte gUnk_0812341C +_08098018: + ldr r0, [r4, #0x50] + adds r0, #0x60 + ldrh r1, [r0] + adds r0, r4, #0 + adds r0, #0x60 + strh r1, [r0] + ldr r2, [r4, #0x50] + ldrb r1, [r4, #0xa] + movs r0, #0xd + muls r0, r1, r0 + ldrb r2, [r2, #0x1e] + adds r0, r0, r2 + strb r0, [r4, #0x1e] +_08098032: + adds r0, r4, #0 + bl sub_08098130 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809803C +sub_0809803C: @ 0x0809803C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xa] + cmp r5, #0 + bne _08098070 + bl sub_080042B8 + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _08098082 + ldr r0, _0809806C @ =gUnk_03001160 + strb r5, [r0, #0xf] + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC + movs r0, #0xbc + lsls r0, r0, #1 + bl sub_080A3268 + b _08098082 + .align 2, 0 +_0809806C: .4byte gUnk_03001160 +_08098070: + ldr r2, [r4, #0x50] + ldrb r1, [r4, #0xa] + movs r0, #0xd + muls r0, r1, r0 + ldrb r1, [r2, #0x1e] + adds r0, r0, r1 + strb r0, [r4, #0x1e] + ldrb r0, [r2, #0xc] + strb r0, [r4, #0xc] +_08098082: + pop {r4, r5, pc} + + thumb_func_start sub_08098084 +sub_08098084: @ 0x08098084 + push {r4, lr} + adds r4, r0, #0 + ldr r1, [r4, #0x6c] + movs r0, #0xa0 + lsls r0, r0, #0xd + cmp r1, r0 + bls _080980A8 + ldr r0, _080980A4 @ =gUnk_03003F80 + ldr r1, [r0, #0x30] + movs r2, #0x80 + orrs r1, r2 + str r1, [r0, #0x30] + bl sub_0805E780 + b _0809812E + .align 2, 0 +_080980A4: .4byte gUnk_03003F80 +_080980A8: + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080980D8 + adds r0, r4, #0 + bl sub_080042B8 + adds r2, r4, #0 + adds r2, #0x7e + ldrh r0, [r2] + subs r0, #1 + strh r0, [r2] + lsls r0, r0, #0x10 + ldr r1, _080980D4 @ =0xFFFF0000 + cmp r0, r1 + bne _080980E6 + movs r0, #0x40 + strh r0, [r2] + movs r0, #0xbc + lsls r0, r0, #1 + bl sub_080A3268 + b _080980E6 + .align 2, 0 +_080980D4: .4byte 0xFFFF0000 +_080980D8: + ldr r2, [r4, #0x50] + ldrb r1, [r4, #0xa] + movs r0, #0xd + muls r0, r1, r0 + ldrb r2, [r2, #0x1e] + adds r0, r0, r2 + strb r0, [r4, #0x1e] +_080980E6: + ldr r0, [r4, #0x6c] + movs r1, #0xa0 + lsls r1, r1, #5 + adds r0, r0, r1 + str r0, [r4, #0x6c] + ldr r0, [r4, #0x70] + ldr r1, [r4, #0x74] + adds r0, r0, r1 + str r0, [r4, #0x70] + adds r2, r4, #0 + adds r2, #0x72 + ldrh r1, [r2] + movs r0, #0x1f + ands r0, r1 + strh r0, [r2] + ldr r0, [r4, #0x74] + movs r1, #0xa0 + lsls r1, r1, #1 + adds r0, r0, r1 + str r0, [r4, #0x74] + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08098128 + movs r0, #0x1e + strb r0, [r4, #0xf] + ldrb r0, [r4, #0xe] + movs r1, #1 + eors r0, r1 + strb r0, [r4, #0xe] +_08098128: + adds r0, r4, #0 + bl sub_08098130 +_0809812E: + pop {r4, pc} + + thumb_func_start sub_08098130 +sub_08098130: @ 0x08098130 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08098160 @ =gUnk_03001160 + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r4, #0 + adds r0, #0x72 + ldrh r0, [r0] + strb r0, [r4, #0x15] + adds r0, r4, #0 + adds r0, #0x7a + ldrh r0, [r0] + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_0806F69C + ldr r0, [r4, #0x30] + ldr r1, _08098164 @ =0xFFEC0000 + adds r0, r0, r1 + ldr r1, [r4, #0x6c] + adds r0, r0, r1 + str r0, [r4, #0x30] + pop {r4, pc} + .align 2, 0 +_08098160: .4byte gUnk_03001160 +_08098164: .4byte 0xFFEC0000 + + thumb_func_start sub_08098168 +sub_08098168: @ 0x08098168 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xc] + cmp r5, #0 + bne _080981DA + movs r2, #1 + movs r3, #1 + strb r3, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x19] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r4, #0x19] + strb r3, [r4, #0xe] + bl sub_08000E50 + movs r1, #0xf + ands r0, r1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x68 + strb r5, [r0] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A30 + ldr r1, _080981CC @ =gUnk_03000F50 + adds r2, r1, #0 + adds r2, #0x66 + movs r3, #0 + movs r0, #0xbd + lsls r0, r0, #6 + strh r0, [r2] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080981D4 + adds r1, #0x68 + ldr r0, _080981D0 @ =0x0000060A + b _080981D8 + .align 2, 0 +_080981CC: .4byte gUnk_03000F50 +_080981D0: .4byte 0x0000060A +_080981D4: + adds r1, #0x68 + ldr r0, _08098208 @ =0x00000808 +_080981D8: + strh r0, [r1] +_080981DA: + ldrb r0, [r4, #0xa] + adds r3, r4, #0 + adds r3, #0x68 + cmp r0, #0 + beq _08098222 + ldr r0, _0809820C @ =gUnk_03001160 + movs r2, #0x2e + ldrsh r1, [r0, r2] + ldr r0, _08098210 @ =gUnk_03000BF0 + ldrh r0, [r0, #6] + subs r1, r1, r0 + movs r0, #0xf8 + lsls r0, r0, #1 + cmp r1, r0 + ble _08098214 + ldrb r1, [r3] + movs r0, #0 + ldrsb r0, [r3, r0] + cmp r0, #0x3f + bgt _08098222 + adds r0, r1, #1 + b _08098220 + .align 2, 0 +_08098208: .4byte 0x00000808 +_0809820C: .4byte gUnk_03001160 +_08098210: .4byte gUnk_03000BF0 +_08098214: + ldrb r1, [r3] + movs r0, #0 + ldrsb r0, [r3, r0] + cmp r0, #0 + ble _08098222 + subs r0, r1, #1 +_08098220: + strb r0, [r3] +_08098222: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809823C + movs r0, #8 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xf] + adds r0, #1 + movs r1, #0xf + ands r0, r1 + strb r0, [r4, #0xf] +_0809823C: + ldr r1, _0809825C @ =gUnk_08123484 + ldrb r0, [r4, #0xf] + adds r0, r0, r1 + ldrb r0, [r0] + adds r2, r4, #0 + adds r2, #0x62 + strb r0, [r2] + ldrb r0, [r4, #0xf] + adds r0, r0, r1 + ldrb r1, [r3] + ldrb r0, [r0] + adds r1, r1, r0 + adds r0, r4, #0 + adds r0, #0x63 + strb r1, [r0] + pop {r4, r5, pc} + .align 2, 0 +_0809825C: .4byte gUnk_08123484 + + thumb_func_start sub_08098260 +sub_08098260: @ 0x08098260 + push {lr} + ldr r2, _08098274 @ =gUnk_08123494 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08098274: .4byte gUnk_08123494 + + thumb_func_start sub_08098278 +sub_08098278: @ 0x08098278 + push {lr} + adds r3, r0, #0 + adds r3, #0x29 + ldrb r2, [r3] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #5 + orrs r1, r2 + strb r1, [r3] + bl sub_08098340 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08098294 +sub_08098294: @ 0x08098294 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08098418 + cmp r0, #0 + beq _080982FA + movs r5, #0 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x62 + strb r5, [r0] + adds r0, #1 + strb r5, [r0] + adds r0, #0xf + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x70 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + movs r0, #0xb5 + lsls r0, r0, #1 + bl sub_08004488 + adds r0, r4, #0 + movs r1, #0x1e + bl sub_0805E4E0 + bl sub_08079F8C + cmp r0, #0 + beq _080982FA + ldr r2, _080982FC @ =gUnk_03003F80 + movs r0, #0x90 + strb r0, [r2, #6] + movs r0, #5 + strb r0, [r2, #0xc] + ldr r0, [r2, #0x30] + movs r1, #1 + orrs r0, r1 + str r0, [r2, #0x30] + ldr r1, _08098300 @ =gUnk_03001160 + strh r5, [r1, #0x2c] + strh r5, [r1, #0x30] + ldrb r0, [r1, #0x14] + lsls r0, r0, #2 + strb r0, [r1, #0x15] +_080982FA: + pop {r4, r5, pc} + .align 2, 0 +_080982FC: .4byte gUnk_03003F80 +_08098300: .4byte gUnk_03001160 + + thumb_func_start sub_08098304 +sub_08098304: @ 0x08098304 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809833C + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _0809832C + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + b _08098336 +_0809832C: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CD48 +_08098336: + adds r0, r4, #0 + bl sub_08098340 +_0809833C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08098340 +sub_08098340: @ 0x08098340 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + adds r2, r0, #0 + adds r2, #0x74 + movs r1, #0x3c + strh r1, [r2] + bl sub_08098354 + pop {pc} + + thumb_func_start sub_08098354 +sub_08098354: @ 0x08098354 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + bne _080983BC + strb r0, [r6, #0xb] + movs r0, #0x2e + ldrsh r2, [r6, r0] + ldr r1, _080983B4 @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + subs r2, r2, r0 + asrs r2, r2, #4 + movs r3, #0x3f + ands r2, r3 + movs r4, #0x32 + ldrsh r0, [r6, r4] + ldrh r1, [r1, #8] + adds r1, #0x10 + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r2, r0 + adds r4, r6, #0 + adds r4, #0x70 + strh r2, [r4] + ldrh r0, [r4] + adds r5, r6, #0 + adds r5, #0x38 + ldrb r1, [r5] + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x72 + strh r0, [r1] + ldr r0, _080983B8 @ =0x00004053 + ldrh r1, [r4] + ldrb r2, [r5] + bl sub_0800015E + adds r0, r6, #0 + movs r1, #1 + bl sub_08004260 + b _0809840C + .align 2, 0 +_080983B4: .4byte gUnk_03000BF0 +_080983B8: .4byte 0x00004053 +_080983BC: + movs r0, #1 + strb r0, [r6, #0xb] + movs r0, #0x2e + ldrsh r2, [r6, r0] + ldr r1, _08098410 @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + adds r0, #0x10 + subs r2, r2, r0 + asrs r2, r2, #4 + movs r3, #0x3f + ands r2, r3 + movs r4, #0x32 + ldrsh r0, [r6, r4] + ldrh r1, [r1, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r2, r0 + adds r4, r6, #0 + adds r4, #0x70 + strh r2, [r4] + ldrh r0, [r4] + adds r5, r6, #0 + adds r5, #0x38 + ldrb r1, [r5] + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x72 + strh r0, [r1] + ldr r0, _08098414 @ =0x00004052 + ldrh r1, [r4] + ldrb r2, [r5] + bl sub_0800015E + adds r0, r6, #0 + movs r1, #0 + bl sub_08004260 +_0809840C: + pop {r4, r5, r6, pc} + .align 2, 0 +_08098410: .4byte gUnk_03000BF0 +_08098414: .4byte 0x00004052 + + thumb_func_start sub_08098418 +sub_08098418: @ 0x08098418 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r4, #0 + adds r6, #0x70 + ldrh r0, [r6] + adds r5, r4, #0 + adds r5, #0x38 + ldrb r1, [r5] + bl sub_080001DA + ldr r1, _08098448 @ =0x00004054 + cmp r0, r1 + bne _0809846C + adds r1, r4, #0 + adds r1, #0x74 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0809844C + movs r0, #1 + b _08098482 + .align 2, 0 +_08098448: .4byte 0x00004054 +_0809844C: + adds r0, r4, #0 + bl sub_08098484 + ldr r1, _08098468 @ =gUnk_081234A0 + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + ldrh r1, [r6] + ldrb r2, [r5] + bl sub_0800015E + b _08098480 + .align 2, 0 +_08098468: .4byte gUnk_081234A0 +_0809846C: + adds r1, r4, #0 + adds r1, #0x74 + movs r2, #0 + movs r0, #0x3c + strh r0, [r1] + adds r0, r4, #0 + adds r0, #0x62 + strb r2, [r0] + adds r0, #1 + strb r2, [r0] +_08098480: + movs r0, #0 +_08098482: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08098484 +sub_08098484: @ 0x08098484 + push {r4, lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xb] + ldr r4, _080984C4 @ =gUnk_081234AC + cmp r0, #0 + bne _08098492 + ldr r4, _080984C8 @ =gUnk_081234A4 +_08098492: + adds r2, r3, #0 + adds r2, #0x74 + ldrh r0, [r2] + lsrs r0, r0, #2 + movs r1, #6 + ands r0, r1 + adds r4, r4, r0 + ldrb r0, [r4] + adds r1, r3, #0 + adds r1, #0x62 + strb r0, [r1] + ldrb r1, [r4, #1] + adds r0, r3, #0 + adds r0, #0x63 + strb r1, [r0] + ldrh r1, [r2] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _080984C2 + movs r0, #0x82 + lsls r0, r0, #1 + bl sub_08004488 +_080984C2: + pop {r4, pc} + .align 2, 0 +_080984C4: .4byte gUnk_081234AC +_080984C8: .4byte gUnk_081234A4 + + thumb_func_start sub_080984CC +sub_080984CC: @ 0x080984CC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080984E8 @ =gUnk_08123504 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0800445C + pop {r4, pc} + .align 2, 0 +_080984E8: .4byte gUnk_08123504 + + thumb_func_start sub_080984EC +sub_080984EC: @ 0x080984EC + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + ldr r2, _08098528 @ =gUnk_081234EC + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + str r1, [r0, #0x48] + ldrb r0, [r0, #0xb] + cmp r0, #1 + bne _08098524 + ldr r0, _0809852C @ =0x00004024 + movs r1, #0x82 + lsls r1, r1, #3 + movs r2, #1 + bl sub_0800015E + ldr r0, _08098530 @ =0x00004026 + ldr r1, _08098534 @ =0x00000411 + movs r2, #1 + bl sub_0800015E + ldr r0, _08098538 @ =0x00004025 + ldr r1, _0809853C @ =0x00000412 + movs r2, #1 + bl sub_0800015E +_08098524: + pop {pc} + .align 2, 0 +_08098528: .4byte gUnk_081234EC +_0809852C: .4byte 0x00004024 +_08098530: .4byte 0x00004026 +_08098534: .4byte 0x00000411 +_08098538: .4byte 0x00004025 +_0809853C: .4byte 0x00000412 + + thumb_func_start nullsub_532 +nullsub_532: @ 0x08098540 + bx lr + .align 2, 0 + + thumb_func_start sub_08098544 +sub_08098544: @ 0x08098544 + push {lr} + ldr r2, _08098558 @ =gUnk_0812350C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08098558: .4byte gUnk_0812350C + + thumb_func_start sub_0809855C +sub_0809855C: @ 0x0809855C + push {r4, r5, lr} + adds r4, r0, #0 + movs r3, #0 + movs r5, #1 + strb r5, [r4, #0xc] + ldrb r0, [r4, #0x10] + movs r2, #0x80 + orrs r0, r2 + strb r0, [r4, #0x10] + movs r0, #0x29 + adds r0, r0, r4 + mov ip, r0 + ldrb r1, [r0] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + ldrb r1, [r4, #0x19] + movs r0, #0x3f + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x19] + strb r3, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x6e + strb r0, [r1] + subs r1, #4 + movs r0, #0x86 + strb r0, [r1] + strb r3, [r4, #0x16] + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _080985AC + movs r0, #2 + strb r0, [r4, #0x1c] + b _080985AE +_080985AC: + strb r5, [r4, #0x1c] +_080985AE: + ldr r1, [r4, #0x50] + adds r0, r4, #0 + bl sub_0806FAD8 + adds r0, r4, #0 + bl sub_08098918 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080985C0 +sub_080985C0: @ 0x080985C0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080989E4 + cmp r0, #0 + bne _080985CE + b _080986FC +_080985CE: + ldrb r0, [r0, #0xc] + cmp r0, #4 + bls _080985D6 + b _080986E6 +_080985D6: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080985E6 + b _080986EE +_080985E6: + movs r0, #0x3f + ands r0, r1 + subs r0, #4 + cmp r0, #0x1c + bls _080985F2 + b _08098702 +_080985F2: + lsls r0, r0, #2 + ldr r1, _080985FC @ =_08098600 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080985FC: .4byte _08098600 +_08098600: @ jump table + .4byte _080986C4 @ case 0 + .4byte _080986C4 @ case 1 + .4byte _080986C4 @ case 2 + .4byte _08098702 @ case 3 + .4byte _080986C4 @ case 4 + .4byte _080986C4 @ case 5 + .4byte _080986C4 @ case 6 + .4byte _080986C4 @ case 7 + .4byte _080986C4 @ case 8 + .4byte _080986C4 @ case 9 + .4byte _08098702 @ case 10 + .4byte _0809867E @ case 11 + .4byte _080986C4 @ case 12 + .4byte _080986C4 @ case 13 + .4byte _080986C4 @ case 14 + .4byte _08098674 @ case 15 + .4byte _080986E0 @ case 16 + .4byte _08098702 @ case 17 + .4byte _080986E0 @ case 18 + .4byte _08098702 @ case 19 + .4byte _080986C4 @ case 20 + .4byte _080986C4 @ case 21 + .4byte _080986C4 @ case 22 + .4byte _08098702 @ case 23 + .4byte _08098702 @ case 24 + .4byte _0809867E @ case 25 + .4byte _08098702 @ case 26 + .4byte _08098702 @ case 27 + .4byte _080986E0 @ case 28 +_08098674: + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + b _08098702 +_0809867E: + movs r2, #0 + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0xa8 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + adds r0, r4, #0 + adds r0, #0x63 + strb r2, [r0] + ldrb r1, [r4, #0x18] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x18 + orrs r0, r1 + strb r0, [r3] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldr r0, [r4, #0x50] + str r2, [r0, #0x54] + adds r0, r4, #0 + bl sub_080988E8 + b _08098702 +_080986C4: + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _080986E6 + ldr r0, _080986DC @ =gUnk_03003F80 + adds r0, #0xac + ldrh r1, [r0] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _08098702 + b _080986E6 + .align 2, 0 +_080986DC: .4byte gUnk_03003F80 +_080986E0: + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08098702 +_080986E6: + adds r0, r4, #0 + bl sub_080989C0 + b _08098702 +_080986EE: + adds r0, r4, #0 + bl sub_08098918 + adds r0, r4, #0 + bl sub_08078930 + b _08098702 +_080986FC: + adds r0, r4, #0 + bl sub_080989C0 +_08098702: + pop {r4, pc} + + thumb_func_start sub_08098704 +sub_08098704: @ 0x08098704 + push {lr} + ldr r2, _08098718 @ =gUnk_08123524 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08098718: .4byte gUnk_08123524 + + thumb_func_start sub_0809871C +sub_0809871C: @ 0x0809871C + adds r3, r0, #0 + ldrb r1, [r3, #0x10] + movs r0, #0x80 + movs r2, #0 + orrs r0, r1 + strb r0, [r3, #0x10] + adds r1, r3, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #3 + movs r0, #1 + strb r0, [r1] + ldr r0, _08098754 @ =gUnk_03001160 + adds r0, #0x3b + ldrb r0, [r0] + subs r1, #4 + strb r0, [r1] + adds r0, r3, #0 + adds r0, #0x63 + strb r2, [r0] + ldr r0, [r3, #0x50] + str r2, [r0, #0x54] + ldrb r0, [r3, #0xd] + adds r0, #1 + strb r0, [r3, #0xd] + bx lr + .align 2, 0 +_08098754: .4byte gUnk_03001160 + + thumb_func_start nullsub_533 +nullsub_533: @ 0x08098758 + bx lr + .align 2, 0 + + thumb_func_start sub_0809875C +sub_0809875C: @ 0x0809875C + adds r0, #0x29 + ldrb r2, [r0] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #0x18 + orrs r1, r2 + strb r1, [r0] + bx lr + .align 2, 0 + + thumb_func_start sub_08098770 +sub_08098770: @ 0x08098770 + push {r4, lr} + adds r4, r0, #0 + bl sub_080043E8 + cmp r0, #2 + beq _0809878C + cmp r0, #2 + bhi _08098786 + cmp r0, #1 + beq _08098792 + b _080987A4 +_08098786: + cmp r0, #3 + beq _08098798 + b _080987A4 +_0809878C: + adds r0, r4, #0 + movs r1, #0xb + b _0809879C +_08098792: + adds r0, r4, #0 + movs r1, #0 + b _0809879C +_08098798: + adds r0, r4, #0 + movs r1, #0xc +_0809879C: + movs r2, #0 + bl sub_080A29AC + b _080987AC +_080987A4: + adds r0, r4, #0 + bl sub_080989C0 + b _080987B0 +_080987AC: + bl sub_0805E780 +_080987B0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080987B4 +sub_080987B4: @ 0x080987B4 + push {lr} + bl sub_0805E780 + pop {pc} + + thumb_func_start sub_080987BC +sub_080987BC: @ 0x080987BC + push {lr} + adds r1, r0, #0 + ldr r0, _080987D0 @ =gUnk_03003F80 + ldrb r0, [r0, #5] + cmp r0, #0 + bne _080987CE + adds r0, r1, #0 + bl sub_080987D4 +_080987CE: + pop {pc} + .align 2, 0 +_080987D0: .4byte gUnk_03003F80 + + thumb_func_start sub_080987D4 +sub_080987D4: @ 0x080987D4 + movs r2, #0 + movs r1, #1 + strb r1, [r0, #0xc] + strb r2, [r0, #0xd] + bx lr + .align 2, 0 + + thumb_func_start sub_080987E0 +sub_080987E0: @ 0x080987E0 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0809880C @ =gUnk_08123540 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r0, [r4, #0xd] + cmp r0, #1 + bhi _0809880A + adds r0, r4, #0 + bl sub_080989E4 + cmp r0, #0 + bne _0809880A + adds r0, r4, #0 + bl sub_080989C0 +_0809880A: + pop {r4, pc} + .align 2, 0 +_0809880C: .4byte gUnk_08123540 + + thumb_func_start sub_08098810 +sub_08098810: @ 0x08098810 + movs r2, #0 + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x30 + strb r1, [r0, #0x1d] + strb r2, [r0, #0xe] + bx lr + .align 2, 0 + + thumb_func_start sub_08098820 +sub_08098820: @ 0x08098820 + push {lr} + adds r2, r0, #0 + ldr r0, _0809884C @ =gUnk_03003F80 + ldrb r1, [r0, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #1 + bne _0809883E + adds r0, r2, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x13 + beq _08098850 +_0809883E: + adds r1, r2, #0 + adds r1, #0x62 + movs r0, #0 + strb r0, [r1] + movs r0, #1 + strb r0, [r2, #0xc] + b _08098856 + .align 2, 0 +_0809884C: .4byte gUnk_03003F80 +_08098850: + adds r0, r2, #0 + bl sub_0806F4E8 +_08098856: + pop {pc} + + thumb_func_start sub_08098858 +sub_08098858: @ 0x08098858 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xe] + cmp r1, #0 + bne _08098878 + movs r0, #1 + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x62 + strb r1, [r0] + adds r2, r4, #0 + adds r2, #0x63 + movs r0, #0xfe + strb r0, [r2] + ldr r0, [r4, #0x50] + str r1, [r0, #0x54] +_08098878: + ldr r0, _0809889C @ =gUnk_03003F80 + ldrb r1, [r0, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #1 + bne _08098892 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x13 + beq _080988A0 +_08098892: + adds r0, r4, #0 + bl sub_080989C0 + b _080988B4 + .align 2, 0 +_0809889C: .4byte gUnk_03003F80 +_080988A0: + adds r0, r4, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _080988B4 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080988B4 + bl sub_0805E780 +_080988B4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080988B8 +sub_080988B8: @ 0x080988B8 + push {lr} + adds r2, r0, #0 + ldr r0, _080988CC @ =gUnk_03003F80 + ldrb r0, [r0, #0x1c] + cmp r0, #0 + bne _080988D0 + adds r0, r2, #0 + bl sub_080989C0 + b _080988D8 + .align 2, 0 +_080988CC: .4byte gUnk_03003F80 +_080988D0: + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] +_080988D8: + pop {pc} + .align 2, 0 + + thumb_func_start nullsub_123 +nullsub_123: @ 0x080988DC + bx lr + .align 2, 0 + + thumb_func_start sub_080988E0 +sub_080988E0: @ 0x080988E0 + push {lr} + bl sub_080989C0 + pop {pc} + + thumb_func_start sub_080988E8 +sub_080988E8: @ 0x080988E8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x20] + cmp r0, #0 + bge _080988FA + ldrb r0, [r4, #0x18] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x18] +_080988FA: + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _0809890E + adds r0, r4, #0 + bl sub_080989C0 +_0809890E: + pop {r4, pc} + + thumb_func_start sub_08098910 +sub_08098910: @ 0x08098910 + push {lr} + bl sub_080989C0 + pop {pc} + + thumb_func_start sub_08098918 +sub_08098918: @ 0x08098918 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_080989E4 + adds r6, r0, #0 + cmp r6, #0 + bne _0809892E + adds r0, r4, #0 + bl sub_080989C0 + b _080989BC +_0809892E: + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldrb r1, [r6, #0x10] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + beq _08098990 + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _08098968 + adds r0, #1 + strb r0, [r4, #0xf] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] + ldr r1, [r4, #0x50] + adds r0, r4, #0 + bl sub_0806FAD8 +_08098968: + ldr r2, _0809898C @ =gUnk_08123558 + adds r0, r6, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0xf + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, #8 + movs r1, #0 + strh r0, [r4, #0x36] + adds r0, r4, #0 + adds r0, #0x63 + strb r1, [r0] + b _080989BC + .align 2, 0 +_0809898C: .4byte gUnk_08123558 +_08098990: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _080989B2 + strb r5, [r4, #0xf] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + ldr r1, [r4, #0x50] + adds r0, r4, #0 + bl sub_0806FAD8 +_080989B2: + strh r5, [r4, #0x36] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #3 + strb r0, [r1] +_080989BC: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080989C0 +sub_080989C0: @ 0x080989C0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080989E4 + cmp r0, #0 + beq _080989D2 + ldr r1, [r4, #0x50] + movs r0, #0 + str r0, [r1, #0x54] +_080989D2: + ldrb r1, [r4, #0xa] + adds r1, #3 + adds r0, r4, #0 + movs r2, #0 + bl sub_080A29AC + bl sub_0805E780 + pop {r4, pc} + + thumb_func_start sub_080989E4 +sub_080989E4: @ 0x080989E4 + push {lr} + ldr r1, [r0, #0x50] + cmp r1, #0 + beq _080989F4 + ldr r0, [r1, #4] + cmp r0, #0 + bne _080989F4 + movs r1, #0 +_080989F4: + adds r0, r1, #0 + pop {pc} + + thumb_func_start sub_080989F8 +sub_080989F8: @ 0x080989F8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _08098A08 + bl sub_0805E780 +_08098A08: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08098A44 + movs r0, #1 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x28 + strb r0, [r4, #0x1e] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08098A38 + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r4, #0x18] + b _08098A44 +_08098A38: + cmp r0, #2 + bne _08098A44 + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x18] +_08098A44: + ldr r0, [r4, #0x50] + movs r3, #0x80 + lsls r3, r3, #0xc + adds r1, r4, #0 + movs r2, #0 + bl sub_0806FA48 + movs r0, #0 + strh r0, [r4, #0x36] + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _08098A76 + ldr r3, [r4, #0x54] + ldrb r1, [r3, #0x18] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1e + ldrb r2, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r0, [r3, #0x1e] + adds r0, #0x1f + strb r0, [r4, #0x1e] +_08098A76: + pop {r4, pc} + + thumb_func_start sub_08098A78 +sub_08098A78: @ 0x08098A78 + push {lr} + ldr r2, _08098A8C @ =gUnk_08123568 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08098A8C: .4byte gUnk_08123568 + + thumb_func_start sub_08098A90 +sub_08098A90: @ 0x08098A90 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + cmp r0, #1 + beq _08098A9C + movs r0, #2 +_08098A9C: + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r1, #0x7f + ands r0, r1 + adds r0, #0x7f + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 + ldr r1, _08098ACC @ =gUnk_08123574 + ldrb r0, [r4, #0xa] + adds r0, r0, r1 + ldrb r1, [r0] + ldrb r0, [r4, #0xb] + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 +_08098ACC: .4byte gUnk_08123574 + + thumb_func_start sub_08098AD0 +sub_08098AD0: @ 0x08098AD0 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08098AE6 + ldrb r0, [r1, #0xc] + adds r0, #1 + strb r0, [r1, #0xc] +_08098AE6: + pop {pc} + + thumb_func_start sub_08098AE8 +sub_08098AE8: @ 0x08098AE8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08098B08 + movs r0, #0xfe + ands r0, r1 + strb r0, [r4] + ldr r0, _08098B0C @ =0x0000021B + bl sub_08004488 +_08098B08: + pop {r4, pc} + .align 2, 0 +_08098B0C: .4byte 0x0000021B + + thumb_func_start sub_08098B10 +sub_08098B10: @ 0x08098B10 + push {lr} + ldr r2, _08098B24 @ =gUnk_08123664 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08098B24: .4byte gUnk_08123664 + + thumb_func_start sub_08098B28 +sub_08098B28: @ 0x08098B28 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldrb r2, [r5, #0xa] + lsls r2, r2, #1 + ldr r0, _08098BD4 @ =gUnk_0812366C + adds r2, r2, r0 + movs r3, #1 + movs r4, #1 + strb r4, [r5, #0xc] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r3 + strb r0, [r5, #0x18] + ldrb r0, [r5, #0xa] + strb r0, [r5, #0x1e] + ldrb r0, [r2] + adds r1, r5, #0 + adds r1, #0x82 + strb r0, [r1] + ldrb r0, [r2, #1] + adds r2, r5, #0 + adds r2, #0x83 + strb r0, [r2] + ldrb r0, [r1] + lsrs r0, r0, #1 + ldrh r1, [r5, #0x2e] + subs r1, r1, r0 + adds r0, r5, #0 + adds r0, #0x78 + strh r1, [r0] + ldrb r0, [r2] + lsrs r0, r0, #1 + ldrh r1, [r5, #0x32] + subs r1, r1, r0 + subs r2, #9 + strh r1, [r2] + movs r0, #0x2e + ldrsh r1, [r5, r0] + ldr r2, _08098BD8 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r6, #0x32 + ldrsh r0, [r5, r6] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r6, r5, #0 + adds r6, #0x80 + strh r1, [r6] + adds r7, r5, #0 + adds r7, #0x38 + strb r4, [r7] + adds r0, r5, #0 + bl sub_08016A04 + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r5, #0xa] + cmp r0, #0 + bne _08098BCA + ldr r0, _08098BDC @ =0x00004074 + ldrh r1, [r6] + subs r1, #0x40 + ldrb r2, [r7] + bl sub_0800015E +_08098BCA: + adds r0, r5, #0 + bl sub_08098BE8 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08098BD4: .4byte gUnk_0812366C +_08098BD8: .4byte gUnk_03000BF0 +_08098BDC: .4byte 0x00004074 + + thumb_func_start sub_08098BE0 +sub_08098BE0: @ 0x08098BE0 + push {lr} + bl sub_08098BE8 + pop {pc} + + thumb_func_start sub_08098BE8 +sub_08098BE8: @ 0x08098BE8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r6, _08098C28 @ =gUnk_03003F80 + ldr r0, [r6, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08098C26 + ldr r4, _08098C2C @ =gUnk_03001160 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08098C30 + cmp r0, #0 + beq _08098C26 + bl sub_08079F8C + cmp r0, #0 + beq _08098C26 + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08098C26 + movs r0, #1 + strb r0, [r6, #0x14] + adds r0, r5, #0 + adds r0, #0x80 + ldrh r1, [r0] + adds r0, r4, #0 + bl sub_0807AAF8 +_08098C26: + pop {r4, r5, r6, pc} + .align 2, 0 +_08098C28: .4byte gUnk_03003F80 +_08098C2C: .4byte gUnk_03001160 + + thumb_func_start sub_08098C30 +sub_08098C30: @ 0x08098C30 + push {r4, lr} + adds r3, r0, #0 + movs r4, #0 + movs r0, #0x2e + ldrsh r2, [r1, r0] + adds r0, r3, #0 + adds r0, #0x78 + ldrh r0, [r0] + subs r2, r2, r0 + movs r0, #0x32 + ldrsh r1, [r1, r0] + adds r0, r3, #0 + adds r0, #0x7a + ldrh r0, [r0] + subs r1, r1, r0 + adds r0, r3, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r2, r0 + bhi _08098C64 + adds r0, r3, #0 + adds r0, #0x83 + ldrb r0, [r0] + cmp r1, r0 + bhi _08098C64 + movs r4, #1 +_08098C64: + adds r0, r4, #0 + pop {r4, pc} + + thumb_func_start sub_08098C68 +sub_08098C68: @ 0x08098C68 + push {lr} + ldr r2, _08098C7C @ =gUnk_08123674 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08098C7C: .4byte gUnk_08123674 + + thumb_func_start sub_08098C80 +sub_08098C80: @ 0x08098C80 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r0, #0 + movs r5, #1 + strb r5, [r4, #0xc] + strb r0, [r4, #0xe] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _08098CC8 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r6, #0x32 + ldrsh r0, [r4, r6] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r4, #0 + adds r0, #0x80 + strh r1, [r0] + ldr r0, _08098CCC @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08098CD0 + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + b _08098CD6 + .align 2, 0 +_08098CC8: .4byte gUnk_03000BF0 +_08098CCC: .4byte gUnk_03003F80 +_08098CD0: + adds r0, r4, #0 + adds r0, #0x38 + strb r5, [r0] +_08098CD6: + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + adds r0, #0x80 + ldrh r1, [r0] + subs r1, #0x40 + movs r0, #0x47 + movs r2, #1 + bl sub_08000148 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start nullsub_124 +nullsub_124: @ 0x08098CF0 + bx lr + .align 2, 0 + + thumb_func_start sub_08098CF4 +sub_08098CF4: @ 0x08098CF4 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _08098D14 + ldr r0, _08098D10 @ =gUnk_0812367C + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _08098D1A + .align 2, 0 +_08098D10: .4byte gUnk_0812367C +_08098D14: + adds r0, r2, #0 + bl sub_08098E3C +_08098D1A: + pop {pc} + + thumb_func_start sub_08098D1C +sub_08098D1C: @ 0x08098D1C + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #1 + strb r5, [r4, #0xc] + ldr r0, _08098D40 @ =0x0000FFF0 + strh r0, [r4, #0x36] + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + cmp r0, #0 + beq _08098D44 + bl sub_0807CBE4 + cmp r0, #0 + bne _08098D44 + strb r5, [r4, #0xc] + b _08098D5A + .align 2, 0 +_08098D40: .4byte 0x0000FFF0 +_08098D44: + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #7 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_08098E88 +_08098D5A: + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + pop {r4, r5, pc} + + thumb_func_start sub_08098D6C +sub_08098D6C: @ 0x08098D6C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _08098D9A + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x2d + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0x43 + movs r2, #0 + bl sub_080A29AC + adds r1, r0, #0 + cmp r1, #0 + beq _08098D9A + ldrh r0, [r1, #0x32] + adds r0, #8 + strh r0, [r1, #0x32] +_08098D9A: + pop {r4, pc} + + thumb_func_start sub_08098D9C +sub_08098D9C: @ 0x08098D9C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08098DC2 + movs r0, #3 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + subs r0, #7 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + adds r0, r2, #0 + bl sub_08098E88 +_08098DC2: + pop {pc} + + thumb_func_start sub_08098DC4 +sub_08098DC4: @ 0x08098DC4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r6, _08098E2C @ =gUnk_03001160 + adds r1, r6, #0 + movs r2, #8 + movs r3, #8 + bl sub_0800419C + cmp r0, #0 + beq _08098E24 + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0806FA24 + adds r0, r5, #0 + bl sub_08004542 + adds r0, r6, #0 + bl sub_08004542 + adds r0, r6, #0 + adds r0, #0x38 + movs r4, #1 + strb r4, [r0] + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0806FAB0 + ldr r1, _08098E30 @ =gUnk_03003F80 + movs r0, #0x1f + strb r0, [r1, #0xc] + adds r0, r1, #0 + adds r0, #0x38 + strb r4, [r0] + ldrb r0, [r5, #0xb] + adds r1, #0x39 + strb r0, [r1] + movs r1, #4 + strb r1, [r5, #0xc] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08098E20 + movs r0, #0x23 + bl sub_0807CD04 +_08098E20: + bl sub_08077B20 +_08098E24: + adds r0, r5, #0 + bl sub_080042B8 + pop {r4, r5, r6, pc} + .align 2, 0 +_08098E2C: .4byte gUnk_03001160 +_08098E30: .4byte gUnk_03003F80 + + thumb_func_start sub_08098E34 +sub_08098E34: @ 0x08098E34 + push {lr} + bl sub_080042B8 + pop {pc} + + thumb_func_start sub_08098E3C +sub_08098E3C: @ 0x08098E3C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08098E5E + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_080042AC +_08098E5E: + ldrb r1, [r4, #0xa] + movs r0, #2 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r0, r0, #1 + ldr r1, _08098E84 @ =gUnk_08123690 + adds r0, r0, r1 + ldrh r1, [r0] + ldrh r2, [r0, #2] + adds r0, r4, #0 + movs r3, #0 + bl sub_0805EC9C + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 +_08098E84: .4byte gUnk_08123690 + + thumb_func_start sub_08098E88 +sub_08098E88: @ 0x08098E88 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x82 + movs r1, #1 + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _08098EB0 + ldr r3, _08098ED8 @ =0xFFFF0000 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0 + bl sub_0806FA48 + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #8 + strb r0, [r1] +_08098EB0: + movs r0, #0x82 + movs r1, #2 + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _08098ED4 + ldr r3, _08098EDC @ =0xFFFE0000 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0 + bl sub_0806FA48 + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #0x10 + strb r0, [r1] +_08098ED4: + pop {r4, r5, pc} + .align 2, 0 +_08098ED8: .4byte 0xFFFF0000 +_08098EDC: .4byte 0xFFFE0000 + + thumb_func_start sub_08098EE0 +sub_08098EE0: @ 0x08098EE0 + push {lr} + ldr r2, _08098EF4 @ =gUnk_081236DC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08098EF4: .4byte gUnk_081236DC + + thumb_func_start sub_08098EF8 +sub_08098EF8: @ 0x08098EF8 + push {lr} + adds r3, r0, #0 + adds r3, #0x29 + ldrb r2, [r3] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #5 + orrs r1, r2 + strb r1, [r3] + bl sub_08098FCC + pop {pc} + .align 2, 0 + + thumb_func_start sub_08098F14 +sub_08098F14: @ 0x08098F14 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_080990EC + cmp r0, #0 + beq _08098F84 + movs r6, #0 + movs r0, #2 + strb r0, [r5, #0xc] + adds r0, r5, #0 + adds r0, #0x74 + ldrh r0, [r0] + adds r1, r5, #0 + adds r1, #0x70 + ldrh r1, [r1] + adds r4, r5, #0 + adds r4, #0x38 + ldrb r2, [r4] + bl sub_0800015E + adds r0, r5, #0 + adds r0, #0x76 + ldrh r0, [r0] + adds r1, r5, #0 + adds r1, #0x72 + ldrh r1, [r1] + ldrb r2, [r4] + bl sub_0800015E + movs r0, #0x99 + lsls r0, r0, #1 + bl sub_08004488 + adds r0, r5, #0 + movs r1, #0x1e + bl sub_0805E4E0 + bl sub_08079F8C + cmp r0, #0 + beq _08098F84 + ldr r2, _08098F88 @ =gUnk_03003F80 + movs r0, #0x98 + strb r0, [r2, #6] + movs r0, #5 + strb r0, [r2, #0xc] + ldr r0, [r2, #0x30] + movs r1, #1 + orrs r0, r1 + str r0, [r2, #0x30] + ldr r1, _08098F8C @ =gUnk_03001160 + strh r6, [r1, #0x2c] + strh r6, [r1, #0x30] + ldrb r0, [r1, #0x14] + lsls r0, r0, #2 + strb r0, [r1, #0x15] +_08098F84: + pop {r4, r5, r6, pc} + .align 2, 0 +_08098F88: .4byte gUnk_03003F80 +_08098F8C: .4byte gUnk_03001160 + + thumb_func_start sub_08098F90 +sub_08098F90: @ 0x08098F90 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08098FC8 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _08098FB8 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + b _08098FC2 +_08098FB8: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CD48 +_08098FC2: + adds r0, r4, #0 + bl sub_08098FCC +_08098FC8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08098FCC +sub_08098FCC: @ 0x08098FCC + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + adds r2, r0, #0 + adds r2, #0x84 + movs r1, #0x3c + strh r1, [r2] + bl sub_08098FE0 + pop {pc} + + thumb_func_start sub_08098FE0 +sub_08098FE0: @ 0x08098FE0 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + bne _0809906C + strb r0, [r6, #0xb] + movs r0, #0x2e + ldrsh r2, [r6, r0] + ldr r1, _08099060 @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + subs r2, r2, r0 + asrs r2, r2, #4 + movs r3, #0x3f + ands r2, r3 + movs r4, #0x32 + ldrsh r0, [r6, r4] + ldrh r1, [r1, #8] + adds r1, #0x10 + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r2, r0 + adds r5, r6, #0 + adds r5, #0x70 + strh r2, [r5] + subs r2, #0x40 + adds r7, r6, #0 + adds r7, #0x72 + strh r2, [r7] + ldrh r0, [r5] + adds r4, r6, #0 + adds r4, #0x38 + ldrb r1, [r4] + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x74 + strh r0, [r1] + ldrh r0, [r7] + ldrb r1, [r4] + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x76 + strh r0, [r1] + ldr r0, _08099064 @ =0x00004057 + ldrh r1, [r5] + ldrb r2, [r4] + bl sub_0800015E + ldr r0, _08099068 @ =0x00004058 + ldrh r1, [r7] + ldrb r2, [r4] + bl sub_0800015E + adds r0, r6, #0 + movs r1, #1 + bl sub_08004260 + b _080990DC + .align 2, 0 +_08099060: .4byte gUnk_03000BF0 +_08099064: .4byte 0x00004057 +_08099068: .4byte 0x00004058 +_0809906C: + movs r0, #1 + strb r0, [r6, #0xb] + movs r0, #0x2e + ldrsh r1, [r6, r0] + ldr r2, _080990E0 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + adds r0, #0x10 + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r4, #0x32 + ldrsh r0, [r6, r4] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r5, r6, #0 + adds r5, #0x70 + strh r1, [r5] + subs r1, #1 + adds r7, r6, #0 + adds r7, #0x72 + strh r1, [r7] + ldrh r0, [r5] + adds r4, r6, #0 + adds r4, #0x38 + ldrb r1, [r4] + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x74 + strh r0, [r1] + ldrh r0, [r7] + ldrb r1, [r4] + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x76 + strh r0, [r1] + ldr r0, _080990E4 @ =0x00004055 + ldrh r1, [r5] + ldrb r2, [r4] + bl sub_0800015E + ldr r0, _080990E8 @ =0x00004056 + ldrh r1, [r7] + ldrb r2, [r4] + bl sub_0800015E + adds r0, r6, #0 + movs r1, #0 + bl sub_08004260 +_080990DC: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080990E0: .4byte gUnk_03000BF0 +_080990E4: .4byte 0x00004055 +_080990E8: .4byte 0x00004056 + + thumb_func_start sub_080990EC +sub_080990EC: @ 0x080990EC + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r4, #0 + adds r6, #0x72 + ldrh r0, [r6] + adds r5, r4, #0 + adds r5, #0x38 + ldrb r1, [r5] + bl sub_080001DA + ldr r1, _0809911C @ =0x00004059 + cmp r0, r1 + bne _08099140 + adds r1, r4, #0 + adds r1, #0x84 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08099120 + movs r0, #1 + b _08099156 + .align 2, 0 +_0809911C: .4byte 0x00004059 +_08099120: + adds r0, r4, #0 + bl sub_08099158 + ldr r1, _0809913C @ =gUnk_081236E8 + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + ldrh r1, [r6] + ldrb r2, [r5] + bl sub_0800015E + b _08099154 + .align 2, 0 +_0809913C: .4byte gUnk_081236E8 +_08099140: + adds r1, r4, #0 + adds r1, #0x84 + movs r2, #0 + movs r0, #0x3c + strh r0, [r1] + adds r0, r4, #0 + adds r0, #0x62 + strb r2, [r0] + adds r0, #1 + strb r2, [r0] +_08099154: + movs r0, #0 +_08099156: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08099158 +sub_08099158: @ 0x08099158 + push {r4, lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xb] + ldr r4, _08099198 @ =gUnk_081236F4 + cmp r0, #0 + bne _08099166 + ldr r4, _0809919C @ =gUnk_081236EC +_08099166: + adds r2, r3, #0 + adds r2, #0x84 + ldrh r0, [r2] + lsrs r0, r0, #2 + movs r1, #6 + ands r0, r1 + adds r4, r4, r0 + ldrb r0, [r4] + adds r1, r3, #0 + adds r1, #0x62 + strb r0, [r1] + ldrb r1, [r4, #1] + adds r0, r3, #0 + adds r0, #0x63 + strb r1, [r0] + ldrh r1, [r2] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _08099194 + ldr r0, _080991A0 @ =0x00000131 + bl sub_08004488 +_08099194: + pop {r4, pc} + .align 2, 0 +_08099198: .4byte gUnk_081236F4 +_0809919C: .4byte gUnk_081236EC +_080991A0: .4byte 0x00000131 + + thumb_func_start sub_080991A4 +sub_080991A4: @ 0x080991A4 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #2 + bhi _080991C4 + ldr r0, _080991C0 @ =gUnk_08123734 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _080991CA + .align 2, 0 +_080991C0: .4byte gUnk_08123734 +_080991C4: + adds r0, r2, #0 + bl sub_080996AC +_080991CA: + pop {pc} + + thumb_func_start sub_080991CC +sub_080991CC: @ 0x080991CC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #2 + bgt _080991EC + cmp r0, #0 + blt _080991EC + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _080991EC + bl sub_0805E780 +_080991EC: + movs r2, #1 + strb r2, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x11] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #4 + movs r0, #0x48 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x3f + strb r2, [r0] + subs r1, #5 + movs r0, #0x80 + strb r0, [r1] + ldr r0, _08099244 @ =gUnk_080FD408 + str r0, [r4, #0x48] + adds r0, r4, #0 + bl sub_08099468 + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_08004260 + movs r0, #0x84 + movs r1, #3 + movs r2, #0 + bl sub_080A2960 + cmp r0, #0 + beq _08099242 + str r4, [r0, #0x50] +_08099242: + pop {r4, pc} + .align 2, 0 +_08099244: .4byte gUnk_080FD408 + + thumb_func_start sub_08099248 +sub_08099248: @ 0x08099248 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + bl sub_0809963C + cmp r0, #0 + beq _08099280 + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + ldr r0, _0809927C @ =0x000001B3 + bl sub_08004488 + adds r0, r4, #0 + bl sub_08099330 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0809930E + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + b _0809930E + .align 2, 0 +_0809927C: .4byte 0x000001B3 +_08099280: + adds r0, r4, #0 + bl sub_0800442E + cmp r0, #0 + bne _0809930E + adds r7, r4, #0 + adds r7, #0x70 + ldrh r0, [r7] + adds r6, r4, #0 + adds r6, #0x38 + ldrb r1, [r6] + bl sub_080002B0 + adds r5, r0, #0 + ldr r0, _080992B8 @ =0x0000405A + cmp r5, r0 + beq _0809930E + adds r0, r5, #0 + bl sub_08099618 + cmp r0, #1 + beq _080992BC + cmp r0, #1 + blo _080992DC + cmp r0, #2 + beq _08099308 + b _0809930E + .align 2, 0 +_080992B8: .4byte 0x0000405A +_080992BC: + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x16 + strb r0, [r4, #0xe] + adds r0, r5, #0 + subs r0, #0x5b + movs r1, #3 + ands r0, r1 + lsls r0, r0, #3 + strb r0, [r4, #0x15] + movs r0, #0x20 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_080994B8 + b _0809930E +_080992DC: + movs r0, #0xf + movs r1, #0xd + movs r2, #0 + bl sub_080A2960 + adds r1, r0, #0 + cmp r1, #0 + beq _080992F2 + adds r0, r4, #0 + bl sub_0806FA24 +_080992F2: + adds r0, r4, #0 + adds r0, #0x6c + ldrh r0, [r0] + ldrh r1, [r7] + ldrb r2, [r6] + bl sub_0800015E + adds r0, r4, #0 + bl sub_0805E7BC + b _0809930E +_08099308: + adds r0, r4, #0 + adds r0, #0x6c + strh r5, [r0] +_0809930E: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08099310 +sub_08099310: @ 0x08099310 + push {r4, lr} + adds r4, r0, #0 + bl sub_0809953C + cmp r0, #0 + beq _0809932E + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_08099468 + movs r0, #0xd9 + lsls r0, r0, #1 + bl sub_08004488 +_0809932E: + pop {r4, pc} + + thumb_func_start sub_08099330 +sub_08099330: @ 0x08099330 + push {r4, lr} + adds r4, r0, #0 + bl sub_0809963C + adds r1, r0, #0 + cmp r1, #0 + bne _0809935E + ldrb r0, [r4, #0xe] + cmp r0, #1 + bls _0809934A + subs r0, #2 + strb r0, [r4, #0xe] + b _0809934C +_0809934A: + strb r1, [r4, #0xe] +_0809934C: + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _08099364 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0805EC60 + b _080993CA +_0809935E: + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] +_08099364: + movs r1, #0x80 + lsls r1, r1, #1 + ldr r2, _0809939C @ =gUnk_08123748 + ldrb r0, [r4, #0xe] + lsrs r0, r0, #5 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r2, [r0] + adds r0, r4, #0 + movs r3, #0 + bl sub_0805EC9C + ldrb r0, [r4, #0xa] + cmp r0, #1 + bne _080993A0 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r3, [r0] + adds r0, r4, #0 + movs r1, #0x53 + movs r2, #0 + bl sub_080A2A3C + movs r0, #0x72 + bl sub_080A3268 + b _080993BA + .align 2, 0 +_0809939C: .4byte gUnk_08123748 +_080993A0: + cmp r0, #2 + bne _080993BA + adds r0, r4, #0 + adds r0, #0x86 + ldrh r3, [r0] + adds r0, r4, #0 + movs r1, #0x52 + movs r2, #0 + bl sub_080A2A3C + movs r0, #0x72 + bl sub_080A3268 +_080993BA: + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] +_080993CA: + pop {r4, pc} + + thumb_func_start sub_080993CC +sub_080993CC: @ 0x080993CC + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xe] + subs r1, r0, #1 + strb r1, [r5, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _080993E2 + bl sub_0805E780 + b _08099466 +_080993E2: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x30 + bne _08099400 + adds r0, r5, #0 + adds r0, #0x6c + ldrh r0, [r0] + adds r1, r5, #0 + adds r1, #0x70 + ldrh r1, [r1] + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E +_08099400: + movs r1, #0x80 + lsls r1, r1, #1 + ldrb r0, [r5, #0xe] + movs r2, #0x3c + subs r2, r2, r0 + lsls r2, r2, #5 + adds r2, r2, r1 + adds r0, r5, #0 + movs r3, #0 + bl sub_0805EC9C + ldrb r1, [r5, #0xe] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08099466 + movs r0, #0xf + movs r1, #0x11 + movs r2, #0x40 + bl sub_080A2960 + adds r6, r0, #0 + cmp r6, #0 + beq _08099466 + bl sub_08000E50 + adds r4, r0, #0 + asrs r0, r4, #0x10 + movs r1, #9 + bl __modsi3 + adds r2, r0, #0 + subs r2, #4 + movs r3, #0xf + ands r3, r4 + adds r4, r6, #0 + adds r4, #0x29 + ldrb r1, [r4] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r4] + lsls r2, r2, #0x10 + rsbs r3, r3, #0 + lsls r3, r3, #0x10 + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0806FA48 +_08099466: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08099468 +sub_08099468: @ 0x08099468 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r0, #0x2e + ldrsh r1, [r6, r0] + ldr r2, _080994B0 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r4, #0x32 + ldrsh r0, [r6, r4] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r4, r6, #0 + adds r4, #0x70 + strh r1, [r4] + ldrh r0, [r4] + adds r5, r6, #0 + adds r5, #0x38 + ldrb r1, [r5] + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x6c + strh r0, [r1] + ldr r0, _080994B4 @ =0x0000405A + ldrh r1, [r4] + ldrb r2, [r5] + bl sub_0800015E + pop {r4, r5, r6, pc} + .align 2, 0 +_080994B0: .4byte gUnk_03000BF0 +_080994B4: .4byte 0x0000405A + + thumb_func_start sub_080994B8 +sub_080994B8: @ 0x080994B8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r0, _08099530 @ =0x000001B1 + bl sub_08004488 + adds r0, r5, #0 + adds r0, #0x6c + ldrh r0, [r0] + adds r6, r5, #0 + adds r6, #0x70 + ldrh r1, [r6] + adds r4, r5, #0 + adds r4, #0x38 + ldrb r2, [r4] + bl sub_0800015E + ldrb r0, [r4] + cmp r0, #2 + bne _080994F8 + ldrh r0, [r6] + movs r1, #1 + bl sub_080002B0 + ldr r1, _08099534 @ =0x0000405A + cmp r0, r1 + bne _080994F8 + movs r0, #0xc4 + lsls r0, r0, #2 + ldrh r1, [r6] + movs r2, #1 + bl sub_08000152 +_080994F8: + adds r2, r5, #0 + adds r2, #0x70 + ldr r1, _08099538 @ =gUnk_080B4488 + ldrb r0, [r5, #0x15] + lsrs r0, r0, #3 + lsls r0, r0, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + ldrh r2, [r2] + adds r0, r0, r2 + adds r1, r5, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002B0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x79 + beq _08099524 + cmp r0, #0x77 + bne _0809952C +_08099524: + adds r1, r5, #0 + adds r1, #0x63 + movs r0, #0xfe + strb r0, [r1] +_0809952C: + pop {r4, r5, r6, pc} + .align 2, 0 +_08099530: .4byte 0x000001B1 +_08099534: .4byte 0x0000405A +_08099538: .4byte gUnk_080B4488 + + thumb_func_start sub_0809953C +sub_0809953C: @ 0x0809953C + push {r4, lr} + adds r4, r0, #0 + bl sub_0800442E + cmp r0, #0 + bne _08099612 + adds r0, r4, #0 + bl sub_080AEFE0 + adds r0, r4, #0 + bl sub_0800445C + ldrb r1, [r4, #0xe] + cmp r1, #0 + beq _08099570 + ldrh r0, [r4, #0x24] + adds r0, #0x10 + strh r0, [r4, #0x24] + subs r0, r1, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08099570 + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] +_08099570: + ldrb r0, [r4, #0x15] + lsrs r0, r0, #3 + cmp r0, #1 + beq _080995A0 + cmp r0, #1 + bgt _08099582 + cmp r0, #0 + beq _08099588 + b _080995E6 +_08099582: + cmp r0, #2 + beq _080995BA + b _080995E6 +_08099588: + ldrh r1, [r4, #0x2a] + movs r0, #0xe + ands r0, r1 + cmp r0, #0 + beq _08099612 + ldrh r1, [r4, #0x32] + movs r0, #0xf + ands r0, r1 + subs r0, #7 + cmp r0, #2 + bls _080995D0 + b _080995DE +_080995A0: + ldrh r1, [r4, #0x2a] + movs r0, #0xe0 + lsls r0, r0, #8 + ands r0, r1 + cmp r0, #0 + beq _08099612 + ldrh r1, [r4, #0x2e] + movs r0, #0xf + ands r0, r1 + subs r0, #7 + cmp r0, #2 + bls _080995FE + b _080995DE +_080995BA: + ldrh r1, [r4, #0x2a] + movs r0, #0xe0 + ands r0, r1 + cmp r0, #0 + beq _08099612 + ldrh r1, [r4, #0x32] + movs r0, #0xf + ands r0, r1 + subs r0, #7 + cmp r0, #2 + bhi _080995DE +_080995D0: + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + adds r0, #8 + strh r0, [r4, #0x32] + movs r0, #1 + b _08099614 +_080995DE: + adds r0, r4, #0 + bl sub_0809969C + b _08099612 +_080995E6: + ldrh r1, [r4, #0x2a] + movs r0, #0xe0 + lsls r0, r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08099612 + ldrh r1, [r4, #0x2e] + movs r0, #0xf + ands r0, r1 + subs r0, #7 + cmp r0, #2 + bhi _0809960C +_080995FE: + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + adds r0, #8 + strh r0, [r4, #0x2e] + movs r0, #1 + b _08099614 +_0809960C: + adds r0, r4, #0 + bl sub_0809969C +_08099612: + movs r0, #0 +_08099614: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08099618 +sub_08099618: @ 0x08099618 + push {lr} + adds r2, r0, #0 + ldr r1, _08099620 @ =gUnk_08123750 + b _08099630 + .align 2, 0 +_08099620: .4byte gUnk_08123750 +_08099624: + ldrh r0, [r1] + cmp r0, r2 + bne _0809962E + ldrh r0, [r1, #2] + b _08099638 +_0809962E: + adds r1, #4 +_08099630: + ldrh r0, [r1] + cmp r0, #0 + bne _08099624 + movs r0, #0 +_08099638: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0809963C +sub_0809963C: @ 0x0809963C + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xb] + cmp r0, #0 + beq _08099684 + bl sub_0804B128 + adds r4, r0, #0 + ldrh r0, [r4] + bl sub_0807CBE4 + cmp r0, #0 + beq _08099684 + ldr r0, _08099694 @ =gUnk_03000BF0 + ldrh r1, [r0, #6] + ldrh r2, [r4, #2] + adds r1, r1, r2 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldrh r0, [r0, #8] + ldrh r6, [r4, #4] + adds r0, r0, r6 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + ldrh r2, [r4, #6] + movs r6, #0x2e + ldrsh r0, [r5, r6] + subs r0, r0, r1 + cmp r2, r0 + blo _08099684 + ldrh r1, [r4, #8] + movs r2, #0x32 + ldrsh r0, [r5, r2] + subs r0, r0, r3 + cmp r1, r0 + bhs _08099698 +_08099684: + adds r0, r5, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x87 + beq _08099698 + movs r0, #0 + b _0809969A + .align 2, 0 +_08099694: .4byte gUnk_03000BF0 +_08099698: + movs r0, #1 +_0809969A: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0809969C +sub_0809969C: @ 0x0809969C + push {lr} + movs r1, #0xd + movs r2, #0 + bl sub_080A29AC + bl sub_0805E780 + pop {pc} + + thumb_func_start sub_080996AC +sub_080996AC: @ 0x080996AC + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _080996BC + bl sub_0805E780 +_080996BC: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080996CE + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 +_080996CE: + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #2 + bhi _08099726 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08099706 + movs r0, #0 + strb r0, [r2] + bl sub_08000E50 + movs r1, #0x78 + ands r0, r1 + adds r0, #0x78 + adds r1, r4, #0 + adds r1, #0x59 + strb r0, [r1] +_08099706: + adds r0, r4, #0 + bl sub_08004274 + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA6C + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x63 + ldrb r0, [r1] + subs r0, #0x11 + strb r0, [r1] + b _08099730 +_08099726: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_08099730: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08099734 +sub_08099734: @ 0x08099734 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #3 + bhi _08099754 + ldr r0, _08099750 @ =gUnk_081237A0 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _0809975A + .align 2, 0 +_08099750: .4byte gUnk_081237A0 +_08099754: + adds r0, r2, #0 + bl sub_08099D30 +_0809975A: + pop {pc} + + thumb_func_start sub_0809975C +sub_0809975C: @ 0x0809975C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _08099770 + bl sub_0805E780 +_08099770: + movs r2, #1 + strb r2, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x11] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #4 + movs r0, #0x48 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x3f + strb r2, [r0] + subs r1, #5 + movs r0, #0x80 + strb r0, [r1] + ldr r0, _080997C8 @ =gUnk_080FD190 + str r0, [r4, #0x48] + adds r0, r4, #0 + bl sub_08099910 + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_08004260 + movs r0, #0x85 + movs r1, #4 + movs r2, #0 + bl sub_080A2960 + cmp r0, #0 + beq _080997C6 + str r4, [r0, #0x50] +_080997C6: + pop {r4, pc} + .align 2, 0 +_080997C8: .4byte gUnk_080FD190 + + thumb_func_start sub_080997CC +sub_080997CC: @ 0x080997CC + push {r4, lr} + adds r4, r0, #0 + bl sub_0809963C + cmp r0, #0 + beq _080997EC + movs r0, #0 + movs r1, #2 + strb r1, [r4, #0xc] + strb r0, [r4, #0xe] + ldr r0, _080997F0 @ =0x000001B3 + bl sub_08004488 + adds r0, r4, #0 + bl sub_080997F4 +_080997EC: + pop {r4, pc} + .align 2, 0 +_080997F0: .4byte 0x000001B3 + + thumb_func_start sub_080997F4 +sub_080997F4: @ 0x080997F4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0809963C + adds r1, r0, #0 + cmp r1, #0 + bne _08099822 + ldrb r0, [r4, #0xe] + cmp r0, #1 + bls _0809980E + subs r0, #2 + strb r0, [r4, #0xe] + b _08099810 +_0809980E: + strb r1, [r4, #0xe] +_08099810: + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _08099828 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0805EC60 + b _0809987C +_08099822: + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] +_08099828: + ldr r1, _08099858 @ =gUnk_081237B0 + ldrb r0, [r4, #0xe] + lsrs r0, r0, #5 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r2, [r0] + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r4, #0 + movs r3, #0 + bl sub_0805EC9C + ldrb r0, [r4, #0xa] + cmp r0, #1 + beq _0809986C + cmp r0, #2 + beq _0809985C + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + b _0809986C + .align 2, 0 +_08099858: .4byte gUnk_081237B0 +_0809985C: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r3, [r0] + adds r0, r4, #0 + movs r1, #0x53 + movs r2, #0 + bl sub_080A2A3C +_0809986C: + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] +_0809987C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08099880 +sub_08099880: @ 0x08099880 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xe] + subs r1, r0, #1 + strb r1, [r5, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _08099896 + bl sub_0805E780 + b _0809990E +_08099896: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x30 + bne _080998A4 + adds r0, r5, #0 + bl sub_08099C18 +_080998A4: + ldrb r0, [r5, #0xe] + movs r4, #0x3c + subs r4, r4, r0 + lsls r4, r4, #5 + movs r1, #0x80 + lsls r1, r1, #1 + adds r4, r4, r1 + adds r0, r5, #0 + adds r2, r4, #0 + movs r3, #0 + bl sub_0805EC9C + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #2 + movs r3, #0 + bl sub_0806FCF4 + movs r0, #0xf + movs r1, #0x11 + movs r2, #0x40 + bl sub_080A2960 + adds r6, r0, #0 + cmp r6, #0 + beq _0809990E + bl sub_08000E50 + adds r4, r0, #0 + asrs r0, r4, #0x10 + movs r1, #0x21 + bl __modsi3 + adds r2, r0, #0 + subs r2, #0x10 + movs r0, #0xf + ands r0, r4 + subs r4, r0, #4 + adds r3, r6, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r3] + lsls r2, r2, #0x10 + lsls r3, r4, #0x10 + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0806FA48 +_0809990E: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08099910 +sub_08099910: @ 0x08099910 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r3, _08099968 @ =gUnk_03000BF0 + ldrh r1, [r3, #6] + subs r0, r0, r1 + asrs r6, r0, #4 + movs r2, #0x3f + ands r6, r2 + movs r1, #0x32 + ldrsh r0, [r4, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r6, r0 + adds r0, r4, #0 + adds r0, #0x6e + strh r6, [r0] + ldrh r2, [r4, #0x2e] + movs r0, #8 + adds r1, r0, #0 + ands r1, r2 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x13 + ldrh r2, [r4, #0x32] + ands r0, r2 + lsls r0, r0, #0x10 + asrs r0, r0, #0x12 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r1, r0 + adds r0, r4, #0 + adds r0, #0x6c + strh r1, [r0] + cmp r1, #2 + beq _08099A4C + cmp r1, #2 + bhi _0809996C + cmp r1, #1 + beq _080999A8 + b _08099972 + .align 2, 0 +_08099968: .4byte gUnk_03000BF0 +_0809996C: + cmp r1, #3 + bne _08099972 + b _08099AF0 +_08099972: + ldr r5, _080999A4 @ =0x00004022 + adds r1, r6, #0 + subs r1, #0x41 + adds r4, #0x38 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + adds r1, r6, #0 + subs r1, #0x40 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + subs r1, r6, #1 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldrb r2, [r4] + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0800015E + b _08099BF0 + .align 2, 0 +_080999A4: .4byte 0x00004022 +_080999A8: + adds r5, r6, #0 + subs r5, #0x41 + lsls r0, r5, #0x10 + lsrs r0, r0, #0x10 + adds r4, #0x38 + ldrb r1, [r4] + bl sub_080002C8 + ldr r1, _08099A40 @ =0x00004024 + cmp r0, #0x12 + bne _080999C0 + adds r1, #0x55 +_080999C0: + ldrb r2, [r4] + adds r0, r1, #0 + adds r1, r5, #0 + bl sub_0800015E + ldr r7, _08099A44 @ =0x00004022 + adds r1, r6, #0 + subs r1, #0x40 + ldrb r2, [r4] + adds r0, r7, #0 + bl sub_0800015E + adds r5, r6, #0 + subs r5, #0x3f + lsls r0, r5, #0x10 + lsrs r0, r0, #0x10 + ldrb r1, [r4] + bl sub_080002C8 + ldr r1, _08099A48 @ =0x00004025 + cmp r0, #0x12 + bne _080999EE + adds r1, #0x56 +_080999EE: + ldrb r2, [r4] + adds r0, r1, #0 + adds r1, r5, #0 + bl sub_0800015E + subs r5, r6, #1 + lsls r0, r5, #0x10 + lsrs r0, r0, #0x10 + ldrb r1, [r4] + bl sub_080002C8 + ldr r1, _08099A40 @ =0x00004024 + cmp r0, #0x12 + bne _08099A0C + adds r1, #0x55 +_08099A0C: + ldrb r2, [r4] + adds r0, r1, #0 + adds r1, r5, #0 + bl sub_0800015E + ldrb r2, [r4] + adds r0, r7, #0 + adds r1, r6, #0 + bl sub_0800015E + adds r5, r6, #1 + adds r0, r5, #0 + ldrb r1, [r4] + bl sub_080002C8 + ldr r1, _08099A48 @ =0x00004025 + cmp r0, #0x12 + bne _08099A32 + adds r1, #0x56 +_08099A32: + ldrb r2, [r4] + adds r0, r1, #0 + adds r1, r5, #0 + bl sub_0800015E + b _08099BF0 + .align 2, 0 +_08099A40: .4byte 0x00004024 +_08099A44: .4byte 0x00004022 +_08099A48: .4byte 0x00004025 +_08099A4C: + adds r7, r6, #0 + subs r7, #0x41 + lsls r0, r7, #0x10 + lsrs r0, r0, #0x10 + adds r5, r4, #0 + adds r5, #0x38 + ldrb r1, [r5] + bl sub_080002C8 + ldr r1, _08099AE4 @ =0x00004023 + cmp r0, #0x12 + bne _08099A66 + adds r1, #0x54 +_08099A66: + ldrb r2, [r5] + adds r0, r1, #0 + adds r1, r7, #0 + bl sub_0800015E + adds r4, r6, #0 + subs r4, #0x40 + lsls r0, r4, #0x10 + lsrs r0, r0, #0x10 + ldrb r1, [r5] + bl sub_080002C8 + ldr r1, _08099AE4 @ =0x00004023 + cmp r0, #0x12 + bne _08099A86 + adds r1, #0x54 +_08099A86: + ldrb r2, [r5] + adds r0, r1, #0 + adds r1, r4, #0 + bl sub_0800015E + ldr r4, _08099AE8 @ =0x00004022 + subs r1, r6, #1 + ldrb r2, [r5] + adds r0, r4, #0 + bl sub_0800015E + ldrb r2, [r5] + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_0800015E + adds r4, r6, #0 + adds r4, #0x3f + adds r0, r4, #0 + ldrb r1, [r5] + bl sub_080002C8 + ldr r1, _08099AEC @ =0x00004026 + cmp r0, #0x12 + bne _08099ABA + adds r1, #0x56 +_08099ABA: + ldrb r2, [r5] + adds r0, r1, #0 + adds r1, r4, #0 + bl sub_0800015E + adds r4, r6, #0 + adds r4, #0x40 + adds r0, r4, #0 + ldrb r1, [r5] + bl sub_080002C8 + ldr r1, _08099AEC @ =0x00004026 + cmp r0, #0x12 + bne _08099AD8 + adds r1, #0x56 +_08099AD8: + ldrb r2, [r5] + adds r0, r1, #0 + adds r1, r4, #0 + bl sub_0800015E + b _08099BF0 + .align 2, 0 +_08099AE4: .4byte 0x00004023 +_08099AE8: .4byte 0x00004022 +_08099AEC: .4byte 0x00004026 +_08099AF0: + adds r5, r6, #0 + subs r5, #0x41 + lsls r0, r5, #0x10 + lsrs r0, r0, #0x10 + adds r4, #0x38 + ldrb r1, [r4] + bl sub_080002C8 + ldr r1, _08099BF4 @ =0x00004027 + cmp r0, #0x12 + bne _08099B08 + adds r1, #0x4e +_08099B08: + ldrb r2, [r4] + adds r0, r1, #0 + adds r1, r5, #0 + bl sub_0800015E + adds r5, r6, #0 + subs r5, #0x40 + lsls r0, r5, #0x10 + lsrs r0, r0, #0x10 + ldrb r1, [r4] + bl sub_080002C8 + ldr r1, _08099BF8 @ =0x00004023 + cmp r0, #0x12 + bne _08099B28 + adds r1, #0x54 +_08099B28: + ldrb r2, [r4] + adds r0, r1, #0 + adds r1, r5, #0 + bl sub_0800015E + adds r5, r6, #0 + subs r5, #0x3f + lsls r0, r5, #0x10 + lsrs r0, r0, #0x10 + ldrb r1, [r4] + bl sub_080002C8 + ldr r1, _08099BFC @ =0x00004028 + cmp r0, #0x12 + bne _08099B48 + adds r1, #0x4e +_08099B48: + ldrb r2, [r4] + adds r0, r1, #0 + adds r1, r5, #0 + bl sub_0800015E + subs r5, r6, #1 + lsls r0, r5, #0x10 + lsrs r0, r0, #0x10 + ldrb r1, [r4] + bl sub_080002C8 + ldr r1, _08099C00 @ =0x00004024 + cmp r0, #0x12 + bne _08099B66 + adds r1, #0x55 +_08099B66: + ldrb r2, [r4] + adds r0, r1, #0 + adds r1, r5, #0 + bl sub_0800015E + ldr r0, _08099C04 @ =0x00004022 + ldrb r2, [r4] + adds r1, r6, #0 + bl sub_0800015E + adds r5, r6, #1 + adds r0, r5, #0 + ldrb r1, [r4] + bl sub_080002C8 + ldr r1, _08099C08 @ =0x00004025 + cmp r0, #0x12 + bne _08099B8C + adds r1, #0x56 +_08099B8C: + ldrb r2, [r4] + adds r0, r1, #0 + adds r1, r5, #0 + bl sub_0800015E + adds r5, r6, #0 + adds r5, #0x3f + adds r0, r5, #0 + ldrb r1, [r4] + bl sub_080002C8 + ldr r1, _08099C0C @ =0x00004029 + cmp r0, #0x12 + bne _08099BAA + adds r1, #0x4f +_08099BAA: + ldrb r2, [r4] + adds r0, r1, #0 + adds r1, r5, #0 + bl sub_0800015E + adds r5, r6, #0 + adds r5, #0x40 + adds r0, r5, #0 + ldrb r1, [r4] + bl sub_080002C8 + ldr r1, _08099C10 @ =0x00004026 + cmp r0, #0x12 + bne _08099BC8 + adds r1, #0x56 +_08099BC8: + ldrb r2, [r4] + adds r0, r1, #0 + adds r1, r5, #0 + bl sub_0800015E + adds r5, r6, #0 + adds r5, #0x41 + adds r0, r5, #0 + ldrb r1, [r4] + bl sub_080002C8 + ldr r1, _08099C14 @ =0x0000402A + cmp r0, #0x12 + bne _08099BE6 + adds r1, #0x50 +_08099BE6: + ldrb r2, [r4] + adds r0, r1, #0 + adds r1, r5, #0 + bl sub_0800015E +_08099BF0: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08099BF4: .4byte 0x00004027 +_08099BF8: .4byte 0x00004023 +_08099BFC: .4byte 0x00004028 +_08099C00: .4byte 0x00004024 +_08099C04: .4byte 0x00004022 +_08099C08: .4byte 0x00004025 +_08099C0C: .4byte 0x00004029 +_08099C10: .4byte 0x00004026 +_08099C14: .4byte 0x0000402A + + thumb_func_start sub_08099C18 +sub_08099C18: @ 0x08099C18 + push {r4, r5, lr} + adds r1, r0, #0 + adds r0, #0x6e + ldrh r5, [r0] + subs r0, #2 + ldrh r0, [r0] + cmp r0, #2 + beq _08099C96 + cmp r0, #2 + bgt _08099C32 + cmp r0, #1 + beq _08099C60 + b _08099C36 +_08099C32: + cmp r0, #3 + beq _08099CD4 +_08099C36: + adds r0, r5, #0 + subs r0, #0x41 + adds r4, r1, #0 + adds r4, #0x38 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + subs r0, #0x40 + ldrb r1, [r4] + bl sub_0807BA8C + subs r0, r5, #1 + ldrb r1, [r4] + bl sub_0807BA8C + ldrb r1, [r4] + adds r0, r5, #0 + bl sub_0807BA8C + b _08099D2C +_08099C60: + adds r0, r5, #0 + subs r0, #0x41 + adds r4, r1, #0 + adds r4, #0x38 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + subs r0, #0x40 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + subs r0, #0x3f + ldrb r1, [r4] + bl sub_0807BA8C + subs r0, r5, #1 + ldrb r1, [r4] + bl sub_0807BA8C + ldrb r1, [r4] + adds r0, r5, #0 + bl sub_0807BA8C + adds r0, r5, #1 + b _08099CCC +_08099C96: + adds r0, r5, #0 + subs r0, #0x41 + adds r4, r1, #0 + adds r4, #0x38 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + subs r0, #0x40 + ldrb r1, [r4] + bl sub_0807BA8C + subs r0, r5, #1 + ldrb r1, [r4] + bl sub_0807BA8C + ldrb r1, [r4] + adds r0, r5, #0 + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x3f + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x40 +_08099CCC: + ldrb r1, [r4] + bl sub_0807BA8C + b _08099D2C +_08099CD4: + adds r0, r5, #0 + subs r0, #0x41 + adds r4, r1, #0 + adds r4, #0x38 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + subs r0, #0x40 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + subs r0, #0x3f + ldrb r1, [r4] + bl sub_0807BA8C + subs r0, r5, #1 + ldrb r1, [r4] + bl sub_0807BA8C + ldrb r1, [r4] + adds r0, r5, #0 + bl sub_0807BA8C + adds r0, r5, #1 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x3f + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x40 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x41 + ldrb r1, [r4] + bl sub_0807BA8C +_08099D2C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08099D30 +sub_08099D30: @ 0x08099D30 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _08099D40 + bl sub_0805E780 +_08099D40: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08099D6A + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA6C + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x63 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] +_08099D6A: + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #1 + bhi _08099DAA + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08099DA2 + movs r0, #0 + strb r0, [r2] + bl sub_08000E50 + movs r1, #0x78 + ands r0, r1 + adds r0, #0x78 + adds r1, r4, #0 + adds r1, #0x59 + strb r0, [r1] +_08099DA2: + adds r0, r4, #0 + bl sub_08004274 + b _08099DB4 +_08099DAA: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_08099DB4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08099DB8 +sub_08099DB8: @ 0x08099DB8 + push {lr} + ldr r2, _08099DCC @ =gUnk_081237F8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08099DCC: .4byte gUnk_081237F8 + + thumb_func_start sub_08099DD0 +sub_08099DD0: @ 0x08099DD0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r0, #0x38 + movs r6, #0 + movs r5, #1 + strb r5, [r0] + ldrb r0, [r4, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + strb r6, [r4, #0xd] + movs r0, #0x46 + bl sub_0807CA84 + cmp r0, #0 + beq _08099E04 + movs r0, #4 + strb r0, [r4, #0xc] + strb r6, [r4, #0x1e] + b _08099E0E +_08099E04: + strb r5, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_08099E0E: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08099E10 +sub_08099E10: @ 0x08099E10 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x74 + bl sub_0807CBD0 + cmp r0, #0 + beq _08099E54 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #1 + bne _08099E3E + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _08099E3E + strb r0, [r5] + adds r0, r4, #0 + bl sub_08099ECC +_08099E3E: + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08099E54 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_08099E54: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08099E58 +sub_08099E58: @ 0x08099E58 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08099E88 + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bne _08099E88 + strb r0, [r4, #0xc] + movs r0, #4 + strb r0, [r4, #0x1e] +_08099E88: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08099E8C +sub_08099E8C: @ 0x08099E8C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08099EC4 @ =gUnk_03001160 + movs r2, #0xc + movs r3, #0xc + bl sub_080041A0 + cmp r0, #0 + beq _08099EC2 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _08099EB2 + adds r0, r4, #0 + bl sub_08099ECC + adds r0, r4, #0 + movs r1, #0x1e + bl sub_0805E4E0 +_08099EB2: + movs r0, #0x75 + bl sub_0807CBD0 + cmp r0, #0 + beq _08099EC2 + movs r0, #7 + bl sub_0805B390 +_08099EC2: + pop {r4, pc} + .align 2, 0 +_08099EC4: .4byte gUnk_03001160 + + thumb_func_start nullsub_534 +nullsub_534: @ 0x08099EC8 + bx lr + .align 2, 0 + + thumb_func_start sub_08099ECC +sub_08099ECC: @ 0x08099ECC + push {r4, lr} + movs r4, #0 + movs r1, #1 + strb r1, [r0, #0xd] + ldr r1, _08099EF4 @ =gUnk_03001160 + bl sub_0806FA24 + ldr r2, _08099EF8 @ =gUnk_03003F80 + movs r0, #3 + strb r0, [r2, #0xc] + adds r0, r2, #0 + adds r0, #0x38 + strb r4, [r0] + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #8 + orrs r0, r1 + str r0, [r2, #0x30] + pop {r4, pc} + .align 2, 0 +_08099EF4: .4byte gUnk_03001160 +_08099EF8: .4byte gUnk_03003F80 + + thumb_func_start sub_08099EFC +sub_08099EFC: @ 0x08099EFC + push {lr} + ldr r2, _08099F10 @ =gUnk_08123840 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08099F10: .4byte gUnk_08123840 + + thumb_func_start sub_08099F14 +sub_08099F14: @ 0x08099F14 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + movs r0, #1 + strb r0, [r5, #0xc] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r5, #0x24] + ldrb r0, [r5, #0xa] + cmp r0, #9 + bls _08099F2A + b _0809A1B6 +_08099F2A: + lsls r0, r0, #2 + ldr r1, _08099F34 @ =_08099F38 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08099F34: .4byte _08099F38 +_08099F38: @ jump table + .4byte _08099F60 @ case 0 + .4byte _08099F70 @ case 1 + .4byte _08099F82 @ case 2 + .4byte _0809A00C @ case 3 + .4byte _0809A0AA @ case 4 + .4byte _0809A0B0 @ case 5 + .4byte _0809A058 @ case 6 + .4byte _0809A11C @ case 7 + .4byte _0809A132 @ case 8 + .4byte _0809A1B0 @ case 9 +_08099F60: + adds r2, r5, #0 + adds r2, #0x79 + movs r0, #0 + movs r1, #0x96 + strb r1, [r2] + strb r0, [r5, #0xe] + movs r0, #0x1e + strb r0, [r5, #0xf] +_08099F70: + adds r0, r5, #0 + movs r1, #0 + bl sub_08004260 + movs r0, #0x92 + lsls r0, r0, #1 + bl sub_08004488 + b _0809A1B6 +_08099F82: + ldr r0, [r5, #0x50] + adds r0, #0x7b + ldrb r0, [r0] + adds r0, #0x80 + rsbs r0, r0, #0 + strb r0, [r5, #0x15] + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _08099FCE + bl sub_08000E50 + adds r1, r0, #0 + movs r0, #3 + ands r1, r0 + cmp r1, #1 + beq _08099FBC + cmp r1, #1 + blo _08099FB6 + cmp r1, #2 + beq _08099FC2 + cmp r1, #3 + beq _08099FC8 + b _08099FCE +_08099FB6: + ldrb r0, [r5, #0x15] + subs r0, #0x10 + b _08099FCC +_08099FBC: + ldrb r0, [r5, #0x15] + adds r0, #0x10 + b _08099FCC +_08099FC2: + ldrb r0, [r5, #0x15] + subs r0, #8 + b _08099FCC +_08099FC8: + ldrb r0, [r5, #0x15] + adds r0, #8 +_08099FCC: + strb r0, [r5, #0x15] +_08099FCE: + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + movs r1, #0xf0 + subs r1, r1, r0 + strh r1, [r5, #0x24] + lsls r1, r1, #0x10 + asrs r1, r1, #0x11 + lsls r1, r1, #8 + ldrb r2, [r5, #0x15] + adds r0, r5, #0 + bl sub_0806F62C + ldrh r1, [r5, #0x24] + lsls r1, r1, #0x10 + asrs r1, r1, #0x11 + lsls r1, r1, #8 + ldrb r2, [r5, #0x15] + adds r0, r5, #0 + bl sub_0806F62C + adds r0, r5, #0 + movs r1, #5 + bl sub_08004260 + movs r0, #0xa6 + lsls r0, r0, #1 + bl sub_080A3268 + b _0809A1B6 +_0809A00C: + ldr r0, [r5, #0x50] + adds r0, #0x7b + ldrb r0, [r0] + adds r0, #0x80 + rsbs r0, r0, #0 + strb r0, [r5, #0x15] + movs r1, #0x90 + lsls r1, r1, #7 + ldrb r2, [r5, #0x15] + adds r0, r5, #0 + bl sub_0806F62C + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _0809A040 + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + ldrb r1, [r5, #0x15] + adds r0, r0, r1 + strb r0, [r5, #0x15] + b _0809A04E +_0809A040: + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + ldrb r1, [r5, #0x15] + subs r1, r1, r0 + strb r1, [r5, #0x15] +_0809A04E: + adds r0, r5, #0 + movs r1, #6 + bl sub_08004260 + b _0809A1B6 +_0809A058: + bl sub_08000E50 + movs r1, #0x2f + ands r1, r0 + movs r4, #0x30 + subs r4, r4, r1 + lsls r4, r4, #8 + bl sub_08000E50 + movs r2, #0xff + ands r2, r0 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806F62C + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _0809A092 + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + ldrb r1, [r5, #0x15] + adds r0, r0, r1 + strb r0, [r5, #0x15] + b _0809A0A0 +_0809A092: + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + ldrb r1, [r5, #0x15] + subs r1, r1, r0 + strb r1, [r5, #0x15] +_0809A0A0: + adds r0, r5, #0 + movs r1, #5 + bl sub_08004260 + b _0809A1B6 +_0809A0AA: + movs r0, #0xc3 + lsls r0, r0, #2 + b _0809A1B4 +_0809A0B0: + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + movs r0, #0x18 + str r0, [r5, #0x78] + adds r7, r5, #0 + adds r7, #0x76 + movs r1, #0 + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r7] + adds r4, r5, #0 + adds r4, #0x74 + strh r0, [r4] + adds r6, r5, #0 + adds r6, #0x7a + strh r1, [r6] + ldr r0, [r5, #0x50] + adds r0, #0x7b + ldrb r1, [r0] + rsbs r1, r1, #0 + lsls r1, r1, #0x18 + ldr r3, _0809A118 @ =gUnk_0812388C + ldrb r2, [r5, #0xb] + lsls r0, r2, #1 + adds r0, #1 + lsls r0, r0, #1 + adds r0, r0, r3 + lsrs r1, r1, #0x18 + ldrh r0, [r0] + adds r1, r1, r0 + lsls r2, r2, #2 + adds r2, r2, r3 + ldrh r2, [r2] + adds r0, r5, #0 + bl sub_0806F62C + ldrh r1, [r7] + ldrh r2, [r4] + ldrh r3, [r6] + adds r0, r5, #0 + bl sub_0805EC9C + adds r0, r5, #0 + movs r1, #7 + bl sub_08004260 + b _0809A1B6 + .align 2, 0 +_0809A118: .4byte gUnk_0812388C +_0809A11C: + movs r0, #0 + strb r0, [r5, #0xe] + adds r0, r5, #0 + movs r1, #8 + bl sub_08004260 + ldr r0, [r5, #0x50] + adds r1, r5, #0 + bl sub_0806FA24 + b _0809A1B6 +_0809A132: + ldr r0, [r5, #0x50] + adds r0, #0x7c + ldrb r0, [r0] + movs r1, #0 + strb r0, [r5, #0xb] + movs r0, #4 + strb r0, [r5, #0xe] + strb r1, [r5, #0xf] + ldr r3, _0809A1A0 @ =gUnk_03000BF0 + ldrh r0, [r5, #0x2e] + ldrh r1, [r3, #6] + subs r0, r0, r1 + movs r1, #0xf8 + lsls r1, r1, #1 + adds r2, r1, #0 + ands r0, r2 + movs r1, #0x82 + adds r1, r1, r5 + mov ip, r1 + strh r0, [r1] + ldrh r1, [r5, #0x32] + ldrh r0, [r3, #8] + subs r1, r1, r0 + ands r1, r2 + adds r3, r5, #0 + adds r3, #0x80 + strh r1, [r3] + adds r4, r5, #0 + adds r4, #0x84 + mov r0, ip + ldrh r2, [r0] + subs r2, #0x10 + asrs r2, r2, #4 + lsrs r1, r1, #4 + lsls r0, r1, #5 + subs r0, r0, r1 + adds r2, r2, r0 + str r2, [r4] + mov r1, ip + ldrh r0, [r1] + ldrh r1, [r3] + ldrb r3, [r5, #0xb] + bl sub_0809A6F8 + ldr r0, [r5, #0x50] + adds r0, #0x7c + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0809A1A8 + ldr r0, _0809A1A4 @ =0x000001A3 + bl sub_080A3268 + b _0809A1B6 + .align 2, 0 +_0809A1A0: .4byte gUnk_03000BF0 +_0809A1A4: .4byte 0x000001A3 +_0809A1A8: + movs r0, #0xe8 + bl sub_080A3268 + b _0809A1B6 +_0809A1B0: + movs r0, #0xf0 + lsls r0, r0, #1 +_0809A1B4: + str r0, [r5, #0x78] +_0809A1B6: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0809A1B8 +sub_0809A1B8: @ 0x0809A1B8 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x38 + adds r7, r0, #0 + bl sub_08004274 + ldrb r0, [r7, #0xa] + cmp r0, #9 + bls _0809A1D2 + b _0809A632 +_0809A1D2: + lsls r0, r0, #2 + ldr r1, _0809A1DC @ =_0809A1E0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809A1DC: .4byte _0809A1E0 +_0809A1E0: @ jump table + .4byte _0809A208 @ case 0 + .4byte _0809A25C @ case 1 + .4byte _0809A33E @ case 2 + .4byte _0809A378 @ case 3 + .4byte _0809A394 @ case 4 + .4byte _0809A3E0 @ case 5 + .4byte _0809A378 @ case 6 + .4byte _0809A46C @ case 7 + .4byte _0809A47C @ case 8 + .4byte _0809A616 @ case 9 +_0809A208: + adds r1, r7, #0 + adds r1, #0x79 + ldrb r0, [r1] + cmp r0, #0 + beq _0809A25C + subs r0, #1 + strb r0, [r1] + ldrb r0, [r7, #0xf] + subs r0, #1 + strb r0, [r7, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, #0xb + str r1, [sp, #0x20] + cmp r0, #0xff + bne _0809A254 + movs r0, #5 + strb r0, [r7, #0xf] + ldrb r3, [r7, #0xb] + adds r0, r7, #0 + movs r1, #0x87 + movs r2, #1 + bl sub_080A2988 + adds r1, r0, #0 + str r1, [r7, #0x54] + cmp r1, #0 + beq _0809A24E + ldr r0, [r7, #0x50] + str r0, [r1, #0x50] + ldr r0, [r7, #0x54] + adds r0, #0x84 + ldr r2, [sp, #0x20] + ldr r1, [r2] + str r1, [r0] +_0809A24E: + ldrb r0, [r7, #0xb] + adds r0, #1 + strb r0, [r7, #0xb] +_0809A254: + ldr r1, [sp, #0x20] + ldr r0, [r1] + ldr r0, [r0, #0xc] + b _0809A474 +_0809A25C: + adds r4, r7, #0 + adds r4, #0x84 + ldr r1, [r4] + ldrb r0, [r7, #0xe] + lsls r0, r0, #2 + adds r1, #0xc + adds r1, r1, r0 + ldr r2, [r1] + ldr r0, [r2, #0x2c] + ldr r1, [r7, #0x2c] + subs r0, r0, r1 + ldr r1, [r2, #0x30] + ldr r2, [r7, #0x30] + subs r1, r1, r2 + bl sub_080045DA + strb r0, [r7, #0x15] + movs r2, #0x24 + ldrsh r1, [r7, r2] + ldrb r2, [r7, #0x15] + adds r0, r7, #0 + bl sub_0806F62C + ldr r1, [r4] + ldrb r0, [r7, #0xe] + lsls r0, r0, #2 + adds r1, #0xc + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r7, #0 + movs r2, #2 + movs r3, #2 + bl sub_080041A0 + cmp r0, #0 + bne _0809A2A6 + b _0809A632 +_0809A2A6: + ldrb r0, [r7, #0xa] + cmp r0, #0 + bne _0809A2CC + ldr r1, [r4] + ldrb r0, [r7, #0xe] + lsls r0, r0, #2 + adds r1, #0xc + adds r1, r1, r0 + ldr r3, [r1] + ldrb r2, [r3, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #2 + rsbs r0, r0, #0 + ands r1, r0 + subs r0, #2 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x18] +_0809A2CC: + ldrb r1, [r7, #0xe] + ldr r0, [r4] + ldrb r0, [r0, #1] + subs r0, #1 + cmp r1, r0 + bne _0809A338 + movs r0, #2 + strb r0, [r7, #0xc] + movs r0, #0xf0 + strb r0, [r7, #0xe] + bl sub_08000E50 + ldr r6, _0809A330 @ =gUnk_0812384C + ldrb r2, [r7, #0xb] + movs r3, #0xf + movs r4, #0xf + adds r1, r4, #0 + ands r1, r2 + lsls r1, r1, #2 + adds r1, r1, r6 + ands r0, r3 + ldrb r1, [r1] + adds r0, r0, r1 + strb r0, [r7, #0x15] + bl sub_08000E50 + ldrb r1, [r7, #0xb] + ands r4, r1 + lsls r4, r4, #1 + adds r4, #1 + lsls r4, r4, #1 + adds r4, r4, r6 + ldr r2, _0809A334 @ =0x000001FF + adds r1, r2, #0 + ands r0, r1 + ldrh r4, [r4] + adds r0, r0, r4 + strh r0, [r7, #0x24] + ldrb r0, [r7, #0xa] + cmp r0, #0 + beq _0809A320 + b _0809A632 +_0809A320: + ldr r1, [r7, #0x50] + movs r0, #4 + strb r0, [r1, #0xc] + ldr r1, [r7, #0x50] + movs r0, #0 + strb r0, [r1, #0xd] + b _0809A632 + .align 2, 0 +_0809A330: .4byte gUnk_0812384C +_0809A334: .4byte 0x000001FF +_0809A338: + adds r0, r1, #1 + strb r0, [r7, #0xe] + b _0809A632 +_0809A33E: + ldr r1, [r7, #0x50] + ldrb r0, [r1, #0xb] + cmp r0, #3 + bne _0809A38E + adds r0, r1, #0 + adds r0, #0x84 + ldr r0, [r0] + ldr r2, [r0, #8] + ldr r0, [r2, #0x2c] + ldr r1, [r7, #0x2c] + subs r0, r0, r1 + ldr r1, [r2, #0x30] + ldr r2, [r7, #0x30] + subs r1, r1, r2 + bl sub_080045DA + strb r0, [r7, #0x15] + movs r1, #0xa0 + lsls r1, r1, #2 + ldrb r2, [r7, #0x15] + adds r0, r7, #0 + bl sub_0806F62C + ldr r1, [r7, #0x50] + adds r0, r7, #0 + movs r2, #0x48 + bl sub_0806FC80 + b _0809A388 +_0809A378: + ldrb r2, [r7, #0x15] + adds r0, r7, #0 + movs r1, #0x80 + bl sub_0806F62C + adds r0, r7, #0 + adds r0, #0x5a + ldrb r0, [r0] +_0809A388: + cmp r0, #0 + bne _0809A38E + b _0809A632 +_0809A38E: + bl sub_0805E780 + b _0809A632 +_0809A394: + ldr r3, [r7, #0x78] + cmp r3, #0 + bne _0809A3B4 + ldr r0, _0809A3B0 @ =gUnk_02034350 + movs r2, #0xc + ldrsh r1, [r0, r2] + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + beq _0809A38E + movs r0, #8 + bl sub_0805308C + b _0809A632 + .align 2, 0 +_0809A3B0: .4byte gUnk_02034350 +_0809A3B4: + ldr r2, [r7, #0x50] + adds r0, r2, #0 + adds r0, #0x45 + ldrb r1, [r0] + cmp r1, #0 + bne _0809A3C8 + movs r0, #1 + strb r0, [r7, #0xd] + str r1, [r7, #0x78] + b _0809A632 +_0809A3C8: + ldrb r0, [r7, #0xd] + cmp r0, #0 + bne _0809A3D6 + ldrb r0, [r2, #0xb] + cmp r0, #0 + beq _0809A3D6 + b _0809A632 +_0809A3D6: + movs r0, #1 + strb r0, [r7, #0xd] + subs r0, r3, #1 + str r0, [r7, #0x78] + b _0809A632 +_0809A3E0: + ldr r0, [r7, #0x78] + cmp r0, #0 + bne _0809A432 + adds r0, r7, #0 + adds r0, #0x76 + ldrh r2, [r0] + movs r1, #0x80 + lsls r1, r1, #1 + adds r5, r0, #0 + cmp r2, r1 + bne _0809A40E + ldr r0, [r7, #0x50] + adds r0, #0x7c + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + adds r4, r7, #0 + adds r4, #0x74 + cmp r0, #0 + beq _0809A420 + bl sub_0805E780 + b _0809A420 +_0809A40E: + adds r0, r2, #0 + subs r0, #0x20 + strh r0, [r5] + adds r1, r7, #0 + adds r1, #0x74 + ldrh r0, [r1] + subs r0, #0x20 + strh r0, [r1] + adds r4, r1, #0 +_0809A420: + ldrh r1, [r5] + ldrh r2, [r4] + adds r0, r7, #0 + adds r0, #0x7a + ldrh r3, [r0] + adds r0, r7, #0 + bl sub_0805EC9C + b _0809A436 +_0809A432: + subs r0, #1 + str r0, [r7, #0x78] +_0809A436: + ldr r0, [r7, #0x50] + adds r1, r7, #0 + bl sub_0806FA24 + ldr r4, _0809A468 @ =gUnk_0812388C + ldrb r3, [r7, #0xb] + lsls r0, r3, #1 + adds r0, #1 + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r1, [r0] + ldr r0, [r7, #0x50] + adds r0, #0x7b + ldrb r2, [r0] + rsbs r2, r2, #0 + lsls r2, r2, #0x18 + lsls r3, r3, #2 + adds r3, r3, r4 + lsrs r2, r2, #0x18 + ldrh r3, [r3] + adds r2, r2, r3 + adds r0, r7, #0 + bl sub_0806F62C + b _0809A632 + .align 2, 0 +_0809A468: .4byte gUnk_0812388C +_0809A46C: + ldrb r0, [r7, #0xe] + cmp r0, #0 + bne _0809A38E + ldr r0, [r7, #0x50] +_0809A474: + adds r1, r7, #0 + bl sub_0806FA24 + b _0809A632 +_0809A47C: + ldrb r0, [r7, #0xe] + subs r0, #1 + strb r0, [r7, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _0809A48C + b _0809A632 +_0809A48C: + movs r0, #4 + strb r0, [r7, #0xe] + ldrb r0, [r7, #0xf] + adds r0, #1 + strb r0, [r7, #0xf] + adds r0, r7, #0 + adds r0, #0x84 + str r0, [sp, #4] + ldrb r1, [r7, #0xf] + lsls r0, r1, #5 + subs r0, r0, r1 + ldr r2, [sp, #4] + ldr r1, [r2] + subs r1, r1, r0 + mov sl, r1 + mov r0, sl + str r0, [sp] + adds r1, r7, #0 + adds r1, #0x82 + str r1, [sp, #8] + ldrh r0, [r1] + adds r2, r7, #0 + adds r2, #0x7e + str r2, [sp, #0xc] + strh r0, [r2] + ldrh r0, [r1] + subs r1, #8 + str r1, [sp, #0x10] + strh r0, [r1] + movs r2, #0x80 + adds r2, r2, r7 + mov sb, r2 + ldrb r0, [r7, #0xf] + lsls r0, r0, #4 + ldrh r1, [r2] + subs r1, r1, r0 + movs r0, #0x7c + adds r0, r0, r7 + mov r8, r0 + strh r1, [r0] + adds r4, r7, #0 + adds r4, #0x78 + strh r1, [r4] + ldr r1, [sp, #0x10] + ldrh r0, [r1] + ldrh r1, [r4] + ldrb r3, [r7, #0xb] + mov r2, sl + bl sub_0809A6F8 + adds r5, r0, #0 + ldrb r6, [r7, #0xf] + ldr r2, [sp, #4] + str r2, [sp, #0x20] + ldr r0, [sp, #0x10] + str r0, [sp, #0x28] + ldr r1, [sp, #8] + str r1, [sp, #0x1c] + ldr r2, [sp, #0xc] + str r2, [sp, #0x30] + mov r0, sb + str r0, [sp, #0x34] + mov r1, r8 + str r1, [sp, #0x2c] + str r4, [sp, #0x24] + cmp r6, #0 + beq _0809A568 + ldr r2, [sp, #0x28] + str r2, [sp, #0x14] + mov sb, r4 + ldr r0, [sp, #0x30] + mov r8, r0 + adds r4, r1, #0 +_0809A51E: + ldr r1, [sp, #0x14] + ldrh r0, [r1] + subs r0, #0x10 + strh r0, [r1] + mov r2, sb + ldrh r0, [r2] + adds r0, #0x10 + strh r0, [r2] + ldr r0, [sp] + adds r0, #0x1e + str r0, [sp] + ldrh r0, [r1] + ldrh r1, [r2] + ldrb r3, [r7, #0xb] + ldr r2, [sp] + bl sub_0809A6F8 + adds r5, r5, r0 + mov r1, r8 + ldrh r0, [r1] + adds r0, #0x10 + strh r0, [r1] + ldrh r0, [r4] + adds r0, #0x10 + strh r0, [r4] + movs r2, #0x20 + add sl, r2 + ldrh r0, [r1] + ldrh r1, [r4] + ldrb r3, [r7, #0xb] + mov r2, sl + bl sub_0809A6F8 + adds r5, r5, r0 + subs r6, #1 + cmp r6, #0 + bne _0809A51E +_0809A568: + ldrb r1, [r7, #0xf] + lsls r0, r1, #5 + subs r0, r0, r1 + ldr r2, [sp, #0x20] + ldr r1, [r2] + adds r1, r1, r0 + mov sl, r1 + mov r0, sl + str r0, [sp] + ldr r1, [sp, #0x1c] + ldrh r0, [r1] + ldr r2, [sp, #0x30] + strh r0, [r2] + ldrh r0, [r1] + ldr r1, [sp, #0x28] + strh r0, [r1] + ldrb r0, [r7, #0xf] + lsls r0, r0, #4 + ldr r2, [sp, #0x34] + ldrh r2, [r2] + adds r0, r0, r2 + ldr r1, [sp, #0x2c] + strh r0, [r1] + ldr r2, [sp, #0x24] + strh r0, [r2] + ldr r1, [sp, #0x28] + ldrh r0, [r1] + ldrh r1, [r2] + ldrb r3, [r7, #0xb] + mov r2, sl + bl sub_0809A6F8 + adds r5, r5, r0 + ldrb r0, [r7, #0xf] + subs r6, r0, #1 + cmp r6, #0 + beq _0809A610 + ldr r2, [sp, #0x28] + str r2, [sp, #0x18] + ldr r0, [sp, #0x24] + mov sb, r0 + ldr r1, [sp, #0x30] + mov r8, r1 + ldr r4, [sp, #0x2c] +_0809A5C0: + ldr r2, [sp, #0x18] + ldrh r0, [r2] + subs r0, #0x10 + strh r0, [r2] + mov r1, sb + ldrh r0, [r1] + subs r0, #0x10 + strh r0, [r1] + ldr r2, [sp] + subs r2, #0x20 + str r2, [sp] + ldr r1, [sp, #0x18] + ldrh r0, [r1] + mov r2, sb + ldrh r1, [r2] + ldrb r3, [r7, #0xb] + ldr r2, [sp] + bl sub_0809A6F8 + adds r5, r5, r0 + mov r1, r8 + ldrh r0, [r1] + adds r0, #0x10 + strh r0, [r1] + ldrh r0, [r4] + subs r0, #0x10 + strh r0, [r4] + movs r2, #0x1e + rsbs r2, r2, #0 + add sl, r2 + ldrh r0, [r1] + ldrh r1, [r4] + ldrb r3, [r7, #0xb] + mov r2, sl + bl sub_0809A6F8 + adds r5, r5, r0 + subs r6, #1 + cmp r6, #0 + bne _0809A5C0 +_0809A610: + cmp r5, #0 + bne _0809A632 + b _0809A38E +_0809A616: + bl sub_08078B48 + ldr r0, [r7, #0x78] + subs r0, #1 + str r0, [r7, #0x78] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _0809A632 + ldr r1, _0809A640 @ =gUnk_03000BF0 + ldr r0, _0809A644 @ =gUnk_03001160 + str r0, [r1, #0x30] + bl sub_0805E780 +_0809A632: + add sp, #0x38 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809A640: .4byte gUnk_03000BF0 +_0809A644: .4byte gUnk_03001160 + + thumb_func_start sub_0809A648 +sub_0809A648: @ 0x0809A648 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r0, #0 + bl sub_08004274 + ldrb r0, [r7, #0xe] + subs r0, #1 + strb r0, [r7, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _0809A6EC + ldr r4, [r7, #0x50] + adds r0, r4, #0 + adds r0, #0x74 + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #9 + bl __divsi3 + movs r2, #0x24 + ldrsh r1, [r7, r2] + adds r5, r1, #0 + muls r5, r0, r5 + adds r4, #0x7b + ldrb r1, [r4] + ldrb r0, [r7, #0x15] + subs r0, r0, r1 + movs r1, #0x7b + adds r1, r1, r7 + mov r8, r1 + strb r0, [r1] + ldr r6, _0809A6E8 @ =gUnk_080C9160 + ldrb r0, [r1] + lsls r0, r0, #1 + adds r0, r0, r6 + movs r2, #0 + ldrsh r0, [r0, r2] + lsls r5, r5, #8 + asrs r5, r5, #0x10 + adds r1, r5, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r4, #0x80 + lsls r4, r4, #1 + adds r1, r4, #0 + bl sub_0806FA04 + ldr r1, [r7, #0x50] + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r1, #0x2c] + adds r1, r1, r0 + str r1, [r7, #0x2c] + mov r1, r8 + ldrb r0, [r1] + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r6 + movs r2, #0 + ldrsh r0, [r0, r2] + adds r1, r5, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r4, #0 + bl sub_0806FA04 + ldr r1, [r7, #0x50] + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r1, #0x30] + subs r1, r1, r0 + str r1, [r7, #0x30] + b _0809A6F0 + .align 2, 0 +_0809A6E8: .4byte gUnk_080C9160 +_0809A6EC: + bl sub_0805E780 +_0809A6F0: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0809A6F8 +sub_0809A6F8: @ 0x0809A6F8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + adds r7, r3, #0 + bl sub_0809A758 + cmp r0, #0 + beq _0809A754 + ldr r0, _0809A738 @ =gUnk_081238A0 + lsls r1, r6, #1 + adds r1, r1, r0 + ldrh r0, [r1] + cmp r0, #0 + beq _0809A750 + movs r0, #1 + ands r0, r7 + cmp r0, #0 + beq _0809A73C + ldrh r0, [r1] + lsrs r1, r4, #4 + movs r3, #0x3f + ands r1, r3 + lsrs r2, r5, #4 + ands r2, r3 + lsls r2, r2, #6 + orrs r1, r2 + movs r2, #1 + bl sub_0807B9B8 + b _0809A750 + .align 2, 0 +_0809A738: .4byte gUnk_081238A0 +_0809A73C: + lsrs r0, r4, #4 + movs r2, #0x3f + ands r0, r2 + lsrs r1, r5, #4 + ands r1, r2 + lsls r1, r1, #6 + orrs r0, r1 + movs r1, #1 + bl sub_0807BA8C +_0809A750: + movs r0, #1 + b _0809A756 +_0809A754: + movs r0, #0 +_0809A756: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0809A758 +sub_0809A758: @ 0x0809A758 + push {lr} + adds r2, r0, #0 + cmp r2, #0xf + bls _0809A770 + movs r0, #0xf8 + lsls r0, r0, #1 + cmp r2, r0 + bhi _0809A770 + cmp r1, #0xf0 + bhi _0809A770 + movs r0, #1 + b _0809A772 +_0809A770: + movs r0, #0 +_0809A772: + pop {pc} + + thumb_func_start sub_0809A774 +sub_0809A774: @ 0x0809A774 + push {lr} + ldr r2, _0809A788 @ =gUnk_08123C80 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809A788: .4byte gUnk_08123C80 + + thumb_func_start sub_0809A78C +sub_0809A78C: @ 0x0809A78C + push {r4, r5, lr} + adds r4, r0, #0 + movs r3, #0 + movs r0, #1 + strb r0, [r4, #0xc] + movs r2, #0x80 + strb r2, [r4, #0xe] + strb r3, [r4, #0xf] + ldrb r0, [r4, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r5, r4, #0 + adds r5, #0x80 + strh r2, [r5] + adds r0, r4, #0 + adds r0, #0x78 + strh r3, [r0] + ldrh r0, [r4, #0x2e] + subs r0, #4 + strh r0, [r4, #0x2e] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #0xfc + strb r0, [r1] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x19] + ldrh r2, [r5] + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_0805EC9C + adds r0, r4, #0 + bl sub_08016A04 + ldrb r1, [r4, #0xf] + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0809A958 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0809A7F4 +sub_0809A7F4: @ 0x0809A7F4 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0809AA00 + ldrb r0, [r4, #0xe] + adds r2, r0, #0 + cmp r2, #0 + beq _0809A810 + subs r0, #1 + strb r0, [r4, #0xe] + b _0809A840 +_0809A810: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809A840 + ldrb r0, [r4, #0xf] + cmp r0, #3 + bne _0809A838 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x5a + strb r0, [r4, #0xe] + strb r2, [r4, #0xf] + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC + b _0809A840 +_0809A838: + ldrb r1, [r4, #0xf] + adds r0, r4, #0 + bl sub_080042AC +_0809A840: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809A844 +sub_0809A844: @ 0x0809A844 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0809AA00 + ldrb r0, [r4, #0xf] + cmp r0, #1 + bhi _0809A85C + movs r1, #0 + b _0809A870 +_0809A85C: + ldrb r0, [r4, #0xe] + adds r2, r0, #0 + cmp r2, #0 + beq _0809A87C + subs r0, #1 + strb r0, [r4, #0xe] + ldr r0, _0809A878 @ =gUnk_03004040 + ldr r1, [r0] + cmp r1, #0 + bne _0809A8A0 +_0809A870: + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + b _0809A8A0 + .align 2, 0 +_0809A878: .4byte gUnk_03004040 +_0809A87C: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809A8A0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r2, [r4, #0xe] + adds r0, r4, #0 + movs r1, #3 + bl sub_080042AC + adds r0, r4, #0 + movs r1, #0x78 + bl sub_0805E4E0 +_0809A8A0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809A8A4 +sub_0809A8A4: @ 0x0809A8A4 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0xe0 + ands r0, r1 + cmp r0, #0x40 + beq _0809A8D4 + cmp r0, #0x40 + bgt _0809A8C0 + cmp r0, #0x20 + beq _0809A8E2 + b _0809A8FC +_0809A8C0: + cmp r0, #0x80 + bne _0809A8FC + adds r0, r4, #0 + adds r0, #0x59 + ldrb r0, [r0] + cmp r0, #0 + bne _0809A902 + bl sub_0805E780 + b _0809A902 +_0809A8D4: + movs r0, #0xbf + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_0809A9D4 + b _0809A902 +_0809A8E2: + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + ldrb r1, [r2] + movs r0, #0xdf + ands r0, r1 + strb r0, [r2] + movs r0, #0xff + bl sub_08078A90 + movs r0, #0x2a + bl sub_0807CD04 +_0809A8FC: + adds r0, r4, #0 + bl sub_080042B8 +_0809A902: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0809A92A + adds r1, r4, #0 + adds r1, #0x80 + ldrh r0, [r1] + adds r0, #8 + strh r0, [r1] + ldr r0, [r4, #0x2c] + movs r2, #0x80 + lsls r2, r2, #3 + adds r0, r0, r2 + str r0, [r4, #0x2c] + ldrh r2, [r1] + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C + b _0809A94E +_0809A92A: + ldr r1, [r4, #0x54] + adds r0, r4, #0 + movs r2, #0 + bl sub_0809AA9C + ldr r1, _0809A950 @ =gUnk_03001160 + adds r0, r4, #0 + movs r2, #1 + bl sub_0809AA9C + ldr r0, _0809A954 @ =gUnk_03004040 + ldr r1, [r0] + cmp r1, #0 + beq _0809A94E + adds r0, r4, #0 + movs r2, #1 + bl sub_0809AA9C +_0809A94E: + pop {r4, pc} + .align 2, 0 +_0809A950: .4byte gUnk_03001160 +_0809A954: .4byte gUnk_03004040 + + thumb_func_start sub_0809A958 +sub_0809A958: @ 0x0809A958 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + movs r1, #0x2e + ldrsh r3, [r0, r1] + ldr r2, _0809A9CC @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + subs r1, #4 + subs r3, r3, r1 + asrs r3, r3, #4 + movs r4, #0x3f + ands r3, r4 + movs r5, #0x32 + ldrsh r1, [r0, r5] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r4 + lsls r1, r1, #6 + orrs r3, r1 + adds r0, #0x82 + strh r3, [r0] + ldrh r0, [r0] + adds r5, r0, #0 + subs r5, #0x82 + ldr r6, _0809A9D0 @ =gUnk_08123C90 + movs r0, #0 + movs r1, #0x80 + lsls r1, r1, #7 + mov sb, r1 +_0809A996: + movs r4, #0 + adds r0, #1 + mov r8, r0 + adds r7, r5, #0 + adds r7, #0x40 +_0809A9A0: + ldrh r0, [r6] + mov r1, sb + ands r0, r1 + cmp r0, #0 + beq _0809A9B4 + ldrh r0, [r6] + adds r1, r5, r4 + movs r2, #1 + bl sub_0800015E +_0809A9B4: + adds r4, #1 + adds r6, #2 + cmp r4, #3 + ble _0809A9A0 + mov r0, r8 + adds r5, r7, #0 + cmp r0, #4 + ble _0809A996 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809A9CC: .4byte gUnk_03000BF0 +_0809A9D0: .4byte gUnk_08123C90 + + thumb_func_start sub_0809A9D4 +sub_0809A9D4: @ 0x0809A9D4 + push {r4, r5, r6, r7, lr} + adds r0, #0x82 + ldrh r0, [r0] + adds r5, r0, #0 + subs r5, #0x82 + movs r0, #0 +_0809A9E0: + movs r4, #0 + adds r7, r0, #1 + adds r6, r5, #0 + adds r6, #0x40 +_0809A9E8: + adds r0, r5, r4 + movs r1, #1 + bl sub_0807BA8C + adds r4, #1 + cmp r4, #3 + ble _0809A9E8 + adds r0, r7, #0 + adds r5, r6, #0 + cmp r0, #4 + ble _0809A9E0 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0809AA00 +sub_0809AA00: @ 0x0809AA00 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + movs r0, #0 + strb r0, [r5, #0xf] + ldr r1, [r5, #0x54] + cmp r1, #0 + bne _0809AA50 + movs r0, #7 + movs r1, #0x38 + movs r2, #7 + bl sub_0805EB00 + adds r4, r0, #0 + adds r7, r5, #0 + adds r7, #0x78 + cmp r4, #0 + beq _0809AA5C + movs r0, #0x80 + lsls r0, r0, #4 + mov r8, r0 + ldr r0, _0809AA4C @ =0x0000FFFF + adds r6, r0, #0 +_0809AA30: + ldrh r0, [r4, #0xa] + ands r0, r6 + cmp r0, r8 + bne _0809AA3A + str r4, [r5, #0x54] +_0809AA3A: + adds r0, r4, #0 + movs r1, #7 + bl sub_0805EB64 + adds r4, r0, #0 + cmp r4, #0 + bne _0809AA30 + b _0809AA5C + .align 2, 0 +_0809AA4C: .4byte 0x0000FFFF +_0809AA50: + adds r0, r5, #0 + movs r2, #0 + bl sub_0809AA9C + adds r7, r5, #0 + adds r7, #0x78 +_0809AA5C: + ldr r4, _0809AA94 @ =gUnk_03001160 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0x20 + movs r3, #0x22 + bl sub_080041A0 + strh r0, [r7] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0809AA8E + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #1 + bl sub_0809AA9C + ldr r0, _0809AA98 @ =gUnk_03004040 + ldr r4, [r0] + cmp r4, #0 + beq _0809AA8E + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #1 + bl sub_0809AA9C +_0809AA8E: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809AA94: .4byte gUnk_03001160 +_0809AA98: .4byte gUnk_03004040 + + thumb_func_start sub_0809AA9C +sub_0809AA9C: @ 0x0809AA9C + push {r4, lr} + adds r4, r0, #0 + adds r3, r1, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r1, #3 + ands r1, r0 + cmp r1, #1 + beq _0809AAB2 + cmp r1, #2 + bne _0809AABC +_0809AAB2: + adds r0, r3, #0 + adds r0, #0x63 + strb r1, [r0] + adds r2, r0, #0 + b _0809AAC6 +_0809AABC: + adds r1, r3, #0 + adds r1, #0x63 + movs r0, #0 + strb r0, [r1] + adds r2, r1, #0 +_0809AAC6: + movs r0, #0x2e + ldrsh r1, [r3, r0] + ldr r0, _0809AAE8 @ =gUnk_03000BF0 + ldrh r0, [r0, #6] + movs r3, #0xad + lsls r3, r3, #1 + adds r0, r0, r3 + cmp r1, r0 + bgt _0809AAE4 + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] +_0809AAE4: + pop {r4, pc} + .align 2, 0 +_0809AAE8: .4byte gUnk_03000BF0 + + thumb_func_start sub_0809AAEC +sub_0809AAEC: @ 0x0809AAEC + push {lr} + ldr r2, _0809AB00 @ =gUnk_08123D28 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809AB00: .4byte gUnk_08123D28 + + thumb_func_start sub_0809AB04 +sub_0809AB04: @ 0x0809AB04 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x31 + bl sub_0807CBE4 + cmp r0, #0 + beq _0809AB22 + adds r0, r5, #0 + bl sub_0809AD68 + adds r0, r5, #0 + bl sub_0809AD8C + bl sub_0805E780 +_0809AB22: + movs r0, #0x36 + movs r1, #0 + bl sub_0804AA60 + adds r4, r0, #0 + cmp r4, #0 + beq _0809AB9C + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + str r4, [r5, #0x54] + ldr r2, _0809AB68 @ =gUnk_030010A0 + adds r0, r2, #0 + adds r0, #0x38 + ldrb r1, [r0] + cmp r1, #0 + beq _0809AB70 + adds r0, #1 + ldrb r0, [r0] + cmp r0, #0 + beq _0809AB52 + bl sub_0805E780 +_0809AB52: + movs r0, #7 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x18] + subs r0, #0xb + ands r0, r1 + strb r0, [r5, #0x18] + ldr r0, _0809AB6C @ =gUnk_03000BF0 + str r5, [r0, #0x30] + bl sub_080809D4 + b _0809AB9C + .align 2, 0 +_0809AB68: .4byte gUnk_030010A0 +_0809AB6C: .4byte gUnk_03000BF0 +_0809AB70: + movs r0, #1 + strb r0, [r5, #0xc] + movs r0, #0x1e + strb r0, [r5, #0xe] + strb r1, [r5, #0x1e] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + adds r1, r5, #0 + adds r1, #0x63 + movs r0, #0x20 + strb r0, [r1] + ldr r1, _0809ABA0 @ =gUnk_08012DD8 + adds r0, r5, #0 + bl sub_0807DAD0 + adds r1, r5, #0 + adds r1, #0x84 + str r0, [r1] +_0809AB9C: + pop {r4, r5, pc} + .align 2, 0 +_0809ABA0: .4byte gUnk_08012DD8 + + thumb_func_start sub_0809ABA4 +sub_0809ABA4: @ 0x0809ABA4 + push {lr} + movs r1, #0 + bl sub_0807DDAC + pop {pc} + .align 2, 0 + + thumb_func_start sub_0809ABB0 +sub_0809ABB0: @ 0x0809ABB0 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809ABCE + movs r0, #3 + strb r0, [r2, #0xc] + movs r0, #0x78 + strb r0, [r2, #0xe] + ldr r1, _0809ABD0 @ =gUnk_03000BF0 + ldr r0, [r2, #0x54] + str r0, [r1, #0x30] +_0809ABCE: + pop {pc} + .align 2, 0 +_0809ABD0: .4byte gUnk_03000BF0 + + thumb_func_start sub_0809ABD4 +sub_0809ABD4: @ 0x0809ABD4 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809ABF2 + movs r0, #4 + strb r0, [r1, #0xc] + movs r0, #0x5a + strb r0, [r1, #0xe] + ldr r1, [r1, #0x54] + movs r0, #1 + strb r0, [r1, #0xd] +_0809ABF2: + pop {pc} + + thumb_func_start sub_0809ABF4 +sub_0809ABF4: @ 0x0809ABF4 + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x54] + ldrb r0, [r0, #0xd] + cmp r0, #2 + bls _0809AC36 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0809AC36 + movs r0, #5 + strb r0, [r2, #0xc] + movs r0, #8 + strb r0, [r2, #0xe] + strb r1, [r2, #0xf] + ldrb r1, [r2, #0x19] + subs r0, #0x15 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2, #0x19] + ldr r1, _0809AC38 @ =gUnk_03000F50 + adds r2, r1, #0 + adds r2, #0x66 + movs r0, #0xf4 + lsls r0, r0, #4 + strh r0, [r2] + adds r1, #0x68 + movs r0, #0x10 + strh r0, [r1] +_0809AC36: + pop {pc} + .align 2, 0 +_0809AC38: .4byte gUnk_03000F50 + + thumb_func_start sub_0809AC3C +sub_0809AC3C: @ 0x0809AC3C + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r3, #0xff + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _0809AC9A + movs r0, #8 + strb r0, [r4, #0xe] + ldrb r2, [r4, #0xf] + adds r2, #1 + strb r2, [r4, #0xf] + adds r1, r2, #0 + ands r1, r3 + ldr r6, _0809AC9C @ =gUnk_03000F50 + lsls r3, r1, #8 + movs r0, #0x10 + subs r0, r0, r1 + movs r1, #0xff + ands r0, r1 + orrs r3, r0 + adds r0, r6, #0 + adds r0, #0x68 + strh r3, [r0] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + cmp r2, #0xf + bls _0809AC9A + ldrb r1, [r4, #0x19] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x19] + adds r0, r6, #0 + adds r0, #0x66 + strh r5, [r0] + movs r0, #6 + strb r0, [r4, #0xc] + movs r0, #0xf + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #0x13 + ands r0, r1 + strb r0, [r4, #0x18] +_0809AC9A: + pop {r4, r5, r6, pc} + .align 2, 0 +_0809AC9C: .4byte gUnk_03000F50 + + thumb_func_start sub_0809ACA0 +sub_0809ACA0: @ 0x0809ACA0 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809ACC4 + ldr r1, [r2, #0x54] + movs r0, #6 + strb r0, [r1, #0xd] + ldr r0, _0809ACC8 @ =gUnk_030010A0 + adds r0, #0x38 + movs r1, #0xf1 + strb r1, [r0] + adds r0, r2, #0 + bl sub_0805E7BC +_0809ACC4: + pop {pc} + .align 2, 0 +_0809ACC8: .4byte gUnk_030010A0 + + thumb_func_start sub_0809ACCC +sub_0809ACCC: @ 0x0809ACCC + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x54] + ldrb r0, [r0, #0xe] + cmp r0, #1 + bne _0809ACE4 + movs r0, #0 + movs r1, #8 + strb r1, [r2, #0xc] + strb r0, [r2, #0xd] + movs r0, #0xb4 + strb r0, [r2, #0xe] +_0809ACE4: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0809ACE8 +sub_0809ACE8: @ 0x0809ACE8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #1 + beq _0809AD1E + cmp r0, #2 + beq _0809AD3A + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809AD58 + movs r0, #0x5a + strb r0, [r4, #0xe] + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x73 + bl sub_080A3268 + movs r0, #0x31 + bl sub_0807CCC8 + adds r0, r4, #0 + bl sub_0809AD8C + b _0809AD58 +_0809AD1E: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809AD58 + movs r0, #0x78 + strb r0, [r4, #0xe] + movs r0, #2 + strb r0, [r4, #0xd] + adds r0, r4, #0 + bl sub_0809AD68 + b _0809AD58 +_0809AD3A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809AD58 + ldr r1, _0809AD5C @ =gUnk_03000BF0 + ldr r0, _0809AD60 @ =gUnk_03001160 + str r0, [r1, #0x30] + ldr r0, _0809AD64 @ =gUnk_03003F80 + adds r0, #0x8b + movs r1, #1 + strb r1, [r0] + bl sub_0805E780 +_0809AD58: + pop {r4, pc} + .align 2, 0 +_0809AD5C: .4byte gUnk_03000BF0 +_0809AD60: .4byte gUnk_03001160 +_0809AD64: .4byte gUnk_03003F80 + + thumb_func_start sub_0809AD68 +sub_0809AD68: @ 0x0809AD68 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + bl sub_0804B128 + bl sub_0804ADDC + movs r0, #0x17 + bl sub_0807CA84 + cmp r0, #0 + beq _0809AD8A + ldrb r0, [r4, #0xb] + bl sub_0804B128 + bl sub_0804ADDC +_0809AD8A: + pop {r4, pc} + + thumb_func_start sub_0809AD8C +sub_0809AD8C: @ 0x0809AD8C + push {lr} + movs r0, #0x4f + movs r1, #0x22 + movs r2, #0 + bl sub_080A2960 + adds r2, r0, #0 + cmp r2, #0 + beq _0809ADAC + ldr r0, _0809ADB0 @ =gUnk_03000BF0 + ldrh r1, [r0, #6] + adds r1, #0xb8 + strh r1, [r2, #0x2e] + ldrh r0, [r0, #8] + adds r0, #8 + strh r0, [r2, #0x32] +_0809ADAC: + pop {pc} + .align 2, 0 +_0809ADB0: .4byte gUnk_03000BF0 + + thumb_func_start sub_0809ADB4 +sub_0809ADB4: @ 0x0809ADB4 + push {lr} + ldr r2, _0809ADC8 @ =gUnk_08123D4C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809ADC8: .4byte gUnk_08123D4C + + thumb_func_start sub_0809ADCC +sub_0809ADCC: @ 0x0809ADCC + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0809AE14 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r5, r4, #0 + adds r5, #0x80 + strh r1, [r5] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r7, [r0] + adds r0, r4, #0 + bl sub_08016A04 + ldrb r0, [r4, #0xa] + cmp r0, #1 + beq _0809AEBC + cmp r0, #1 + bgt _0809AE18 + cmp r0, #0 + beq _0809AE1E + b _0809AF46 + .align 2, 0 +_0809AE14: .4byte gUnk_03000BF0 +_0809AE18: + cmp r0, #2 + beq _0809AF10 + b _0809AF46 +_0809AE1E: + movs r0, #2 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0xa + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + ldrh r5, [r5] + subs r6, r5, #1 + ldr r4, _0809AEB8 @ =0x00004022 + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r7, #0 + bl sub_0800015E + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r7, #0 + bl sub_0800015E + adds r1, r5, #1 + adds r0, r4, #0 + adds r2, r7, #0 + bl sub_0800015E + adds r1, r5, #0 + adds r1, #0x3f + adds r0, r4, #0 + adds r2, r7, #0 + bl sub_0800015E + adds r1, r5, #0 + adds r1, #0x40 + adds r0, r4, #0 + adds r2, r7, #0 + bl sub_0800015E + adds r1, r5, #0 + adds r1, #0x41 + adds r0, r4, #0 + adds r2, r7, #0 + bl sub_0800015E + adds r4, #0x1b + adds r1, r5, #0 + subs r1, #0x41 + adds r0, r4, #0 + adds r2, r7, #0 + bl sub_0800015E + adds r1, r5, #0 + subs r1, #0x40 + adds r0, r4, #0 + adds r2, r7, #0 + bl sub_0800015E + subs r4, #0x17 + adds r1, r5, #0 + subs r1, #0x3f + adds r0, r4, #0 + adds r2, r7, #0 + bl sub_0800015E + adds r1, r5, #0 + subs r1, #0x81 + adds r0, r4, #0 + adds r2, r7, #0 + bl sub_0800015E + adds r1, r5, #0 + subs r1, #0x80 + adds r0, r4, #0 + b _0809AF04 + .align 2, 0 +_0809AEB8: .4byte 0x00004022 +_0809AEBC: + strb r0, [r4, #0xc] + ldrh r6, [r5] + ldr r4, _0809AEF4 @ =0x00004022 + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r7, #0 + bl sub_0800015E + adds r1, r6, #0 + adds r1, #0x40 + adds r0, r4, #0 + adds r2, r7, #0 + bl sub_0800015E + ldr r0, _0809AEF8 @ =0x00004025 + adds r1, r6, #0 + adds r1, #0x41 + adds r2, r7, #0 + bl sub_0800015E + movs r0, #0x4f + bl sub_0807CBD0 + cmp r0, #0 + bne _0809AF00 + ldr r0, _0809AEFC @ =0x0000402F + b _0809AF02 + .align 2, 0 +_0809AEF4: .4byte 0x00004022 +_0809AEF8: .4byte 0x00004025 +_0809AEFC: .4byte 0x0000402F +_0809AF00: + ldr r0, _0809AF0C @ =0x0000402D +_0809AF02: + adds r1, r6, #1 +_0809AF04: + adds r2, r7, #0 + bl sub_0800015E + b _0809AF46 + .align 2, 0 +_0809AF0C: .4byte 0x0000402D +_0809AF10: + movs r0, #1 + strb r0, [r4, #0xc] + ldrh r5, [r5] + adds r6, r5, #0 + subs r6, #0x41 + ldr r4, _0809AF48 @ =0x00004022 + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r7, #0 + bl sub_0800015E + adds r1, r5, #0 + subs r1, #0x40 + adds r0, r4, #0 + adds r2, r7, #0 + bl sub_0800015E + subs r1, r5, #1 + adds r0, r4, #0 + adds r2, r7, #0 + bl sub_0800015E + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r7, #0 + bl sub_0800015E +_0809AF46: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809AF48: .4byte 0x00004022 + + thumb_func_start nullsub_535 +nullsub_535: @ 0x0809AF4C + bx lr + .align 2, 0 + + thumb_func_start sub_0809AF50 +sub_0809AF50: @ 0x0809AF50 + push {lr} + bl nullsub_2 + pop {pc} + + thumb_func_start nullsub_2 +nullsub_2: @ 0x0809AF58 + bx lr + .align 2, 0 + + thumb_func_start sub_0809AF5C +sub_0809AF5C: @ 0x0809AF5C + push {lr} + ldr r2, _0809AF70 @ =gUnk_08123D58 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809AF70: .4byte gUnk_08123D58 + + thumb_func_start sub_0809AF74 +sub_0809AF74: @ 0x0809AF74 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + strb r0, [r4, #0x1e] + movs r0, #0x2e + ldrsh r2, [r4, r0] + ldr r1, _0809AFBC @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + subs r2, r2, r0 + asrs r2, r2, #4 + movs r3, #0x3f + ands r2, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r1, [r1, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r2, r0 + adds r0, r4, #0 + adds r0, #0x80 + movs r6, #0 + strh r2, [r0] + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _0809AFC4 + movs r1, #1 + strb r1, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x84 + ldrb r0, [r0] + cmp r0, #0 + bne _0809AFC0 + strb r6, [r4, #0xd] + b _0809B02C + .align 2, 0 +_0809AFBC: .4byte gUnk_03000BF0 +_0809AFC0: + strb r1, [r4, #0xd] + b _0809B02C +_0809AFC4: + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #4 + strb r0, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x84 + strb r6, [r0] + adds r0, r4, #0 + bl sub_08016A04 + movs r0, #0x8b + movs r1, #1 + movs r2, #0 + bl sub_080A2960 + adds r5, r0, #0 + cmp r5, #0 + beq _0809B026 + str r4, [r5, #0x50] + str r5, [r4, #0x54] + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + bne _0809B010 + movs r3, #0x80 + lsls r3, r3, #0xd + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r3, #0 + bl sub_0806FA48 + adds r0, r5, #0 + adds r0, #0x84 + strb r6, [r0] + b _0809B026 +_0809B010: + movs r3, #0x80 + lsls r3, r3, #0xd + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0 + bl sub_0806FA48 + adds r1, r5, #0 + adds r1, #0x84 + movs r0, #1 + strb r0, [r1] +_0809B026: + adds r0, r4, #0 + bl sub_0809B334 +_0809B02C: + adds r0, r4, #0 + bl sub_0809B0B0 + pop {r4, r5, r6, pc} + + thumb_func_start sub_0809B034 +sub_0809B034: @ 0x0809B034 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x82 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002B0 + adds r0, r4, #0 + bl sub_0809B234 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809B050 +sub_0809B050: @ 0x0809B050 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809B0A2 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0809B0A4 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r4, #0 + adds r0, #0x80 + strh r1, [r0] + movs r0, #0 + bl sub_08078A90 + adds r0, r4, #0 + bl sub_0809B0B0 + movs r0, #0x86 + lsls r0, r0, #1 + bl sub_08004488 +_0809B0A2: + pop {r4, r5, pc} + .align 2, 0 +_0809B0A4: .4byte gUnk_03000BF0 + + thumb_func_start sub_0809B0A8 +sub_0809B0A8: @ 0x0809B0A8 + push {lr} + bl sub_0809B234 + pop {pc} + + thumb_func_start sub_0809B0B0 +sub_0809B0B0: @ 0x0809B0B0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r8, r0 + adds r0, #0x80 + ldrh r0, [r0] + subs r6, r0, #1 + mov r0, r8 + adds r0, #0x38 + ldrb r7, [r0] + mov r1, r8 + ldrb r0, [r1, #0xd] + cmp r0, #4 + bls _0809B0CE + b _0809B228 +_0809B0CE: + lsls r0, r0, #2 + ldr r1, _0809B0D8 @ =_0809B0DC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809B0D8: .4byte _0809B0DC +_0809B0DC: @ jump table + .4byte _0809B0F0 @ case 0 + .4byte _0809B130 @ case 1 + .4byte _0809B178 @ case 2 + .4byte _0809B1C0 @ case 3 + .4byte _0809B208 @ case 4 +_0809B0F0: + mov r1, r8 + adds r1, #0x84 + movs r0, #0 + strb r0, [r1] + adds r5, r6, #2 + mov r0, r8 + adds r0, #0x82 + strh r5, [r0] + ldr r0, _0809B128 @ =0x00004082 + subs r1, r6, #1 + adds r2, r7, #0 + bl sub_0800015E + ldr r4, _0809B12C @ =0x00004022 + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r7, #0 + bl sub_0800015E + adds r1, r6, #1 + adds r0, r4, #0 + adds r2, r7, #0 + bl sub_0800015E + adds r0, r4, #0 + adds r1, r5, #0 + b _0809B162 + .align 2, 0 +_0809B128: .4byte 0x00004082 +_0809B12C: .4byte 0x00004022 +_0809B130: + mov r1, r8 + adds r1, #0x84 + movs r0, #1 + strb r0, [r1] + mov r0, r8 + adds r0, #0x82 + strh r6, [r0] + ldr r0, _0809B16C @ =0x0000405F + adds r1, r6, #0 + adds r2, r7, #0 + bl sub_0800015E + ldr r4, _0809B170 @ =0x00004022 + adds r1, r6, #1 + adds r0, r4, #0 + adds r2, r7, #0 + bl sub_0800015E + adds r1, r6, #2 + adds r0, r4, #0 + adds r2, r7, #0 + bl sub_0800015E + ldr r0, _0809B174 @ =0x00004082 + adds r1, r6, #3 +_0809B162: + adds r2, r7, #0 + bl sub_0800015E + b _0809B228 + .align 2, 0 +_0809B16C: .4byte 0x0000405F +_0809B170: .4byte 0x00004022 +_0809B174: .4byte 0x00004082 +_0809B178: + mov r1, r8 + adds r1, #0x84 + movs r0, #1 + strb r0, [r1] + mov r0, r8 + adds r0, #0x82 + strh r6, [r0] + ldr r0, _0809B1B4 @ =0x00004082 + adds r1, r6, #3 + adds r2, r7, #0 + bl sub_0800015E + ldr r0, _0809B1B8 @ =0x00004022 + adds r1, r6, #2 + adds r2, r7, #0 + bl sub_0800015E + ldr r0, _0809B1BC @ =0x0000405F + adds r1, r6, #0 + adds r2, r7, #0 + bl sub_0800015E + mov r1, r8 + ldr r0, [r1, #0x50] + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + b _0809B228 + .align 2, 0 +_0809B1B4: .4byte 0x00004082 +_0809B1B8: .4byte 0x00004022 +_0809B1BC: .4byte 0x0000405F +_0809B1C0: + mov r1, r8 + adds r1, #0x84 + movs r0, #0 + strb r0, [r1] + adds r4, r6, #2 + mov r0, r8 + adds r0, #0x82 + strh r4, [r0] + ldr r0, _0809B1FC @ =0x00004082 + subs r1, r6, #1 + adds r2, r7, #0 + bl sub_0800015E + ldr r0, _0809B200 @ =0x00004022 + adds r1, r6, #0 + adds r2, r7, #0 + bl sub_0800015E + ldr r0, _0809B204 @ =0x0000405F + adds r1, r4, #0 + adds r2, r7, #0 + bl sub_0800015E + mov r1, r8 + ldr r0, [r1, #0x50] + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CD48 + b _0809B228 + .align 2, 0 +_0809B1FC: .4byte 0x00004082 +_0809B200: .4byte 0x00004022 +_0809B204: .4byte 0x0000405F +_0809B208: + ldr r4, _0809B230 @ =0x00004022 + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r7, #0 + bl sub_0800015E + adds r1, r6, #1 + adds r0, r4, #0 + adds r2, r7, #0 + bl sub_0800015E + adds r1, r6, #2 + adds r0, r4, #0 + adds r2, r7, #0 + bl sub_0800015E +_0809B228: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809B230: .4byte 0x00004022 + + thumb_func_start sub_0809B234 +sub_0809B234: @ 0x0809B234 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _0809B26A + ldr r2, [r4, #0x50] + ldrb r1, [r2, #0x19] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r3, [r4, #0x19] + movs r0, #0x3f + ands r0, r3 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r2, #0x29 + ldrb r1, [r2] + lsls r1, r1, #0x1d + adds r3, r4, #0 + adds r3, #0x29 + lsrs r1, r1, #0x1d + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + b _0809B270 +_0809B26A: + adds r0, r4, #0 + bl sub_0809B274 +_0809B270: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809B274 +sub_0809B274: @ 0x0809B274 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r3, _0809B290 @ =gUnk_03001160 + adds r2, r4, #0 + adds r2, #0x84 + ldrb r0, [r2] + cmp r0, #1 + beq _0809B2BA + cmp r0, #1 + bgt _0809B294 + cmp r0, #0 + beq _0809B29A + b _0809B332 + .align 2, 0 +_0809B290: .4byte gUnk_03001160 +_0809B294: + cmp r0, #2 + beq _0809B30C + b _0809B332 +_0809B29A: + movs r1, #0x32 + ldrsh r0, [r3, r1] + adds r0, #0x14 + movs r3, #0x32 + ldrsh r1, [r4, r3] + cmp r0, r1 + bge _0809B332 + movs r0, #1 + strb r0, [r2] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #9 + ands r0, r1 + movs r1, #5 + b _0809B306 +_0809B2BA: + movs r5, #0x2e + ldrsh r0, [r3, r5] + adds r0, #0x1c + movs r5, #0x2e + ldrsh r1, [r4, r5] + cmp r0, r1 + ble _0809B2E8 + movs r0, #2 + strb r0, [r2] + ldr r0, _0809B2E4 @ =0x00004022 + adds r1, r4, #0 + adds r1, #0x80 + ldrh r1, [r1] + adds r1, #2 + movs r2, #1 + bl sub_0800015E + ldr r0, [r4, #0x54] + bl sub_0809B358 + b _0809B332 + .align 2, 0 +_0809B2E4: .4byte 0x00004022 +_0809B2E8: + movs r1, #0x32 + ldrsh r0, [r3, r1] + adds r0, #0x10 + movs r3, #0x32 + ldrsh r1, [r4, r3] + cmp r0, r1 + ble _0809B332 + movs r0, #0 + strb r0, [r2] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #8 + ands r0, r1 + movs r1, #4 +_0809B306: + orrs r0, r1 + strb r0, [r2] + b _0809B332 +_0809B30C: + movs r5, #0x2e + ldrsh r0, [r3, r5] + adds r0, #0x20 + movs r3, #0x2e + ldrsh r1, [r4, r3] + cmp r0, r1 + bge _0809B332 + movs r0, #1 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x80 + ldrh r0, [r0] + adds r0, #2 + movs r1, #1 + bl sub_0807BA8C + ldr r0, [r4, #0x54] + bl sub_0809B38C +_0809B332: + pop {r4, r5, pc} + + thumb_func_start sub_0809B334 +sub_0809B334: @ 0x0809B334 + push {r4, r5, lr} + adds r0, #0x80 + ldrh r0, [r0] + adds r4, r0, #0 + subs r4, #0x81 + movs r5, #2 +_0809B340: + ldr r0, _0809B354 @ =0x00004026 + adds r1, r4, #0 + movs r2, #1 + bl sub_0800015E + subs r5, #1 + adds r4, #1 + cmp r5, #0 + bge _0809B340 + pop {r4, r5, pc} + .align 2, 0 +_0809B354: .4byte 0x00004026 + + thumb_func_start sub_0809B358 +sub_0809B358: @ 0x0809B358 + push {r4, r5, r6, lr} + adds r1, r0, #0 + adds r1, #0x84 + ldrb r1, [r1] + lsls r1, r1, #1 + ldr r2, _0809B388 @ =gUnk_08123D68 + adds r5, r1, r2 + adds r0, #0x80 + ldrh r0, [r0] + adds r4, r0, #0 + subs r4, #0x82 + movs r6, #4 +_0809B370: + ldrh r0, [r5] + adds r1, r4, #0 + movs r2, #1 + bl sub_0800015E + subs r6, #1 + adds r4, #1 + adds r5, #4 + cmp r6, #0 + bge _0809B370 + pop {r4, r5, r6, pc} + .align 2, 0 +_0809B388: .4byte gUnk_08123D68 + + thumb_func_start sub_0809B38C +sub_0809B38C: @ 0x0809B38C + push {r4, r5, lr} + adds r0, #0x80 + ldrh r0, [r0] + adds r4, r0, #0 + subs r4, #0x82 + movs r5, #4 +_0809B398: + adds r0, r4, #0 + movs r1, #1 + bl sub_0807BA8C + subs r5, #1 + adds r4, #1 + cmp r5, #0 + bge _0809B398 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0809B3AC +sub_0809B3AC: @ 0x0809B3AC + push {lr} + ldr r2, _0809B3C0 @ =gUnk_08123D7C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809B3C0: .4byte gUnk_08123D7C + + thumb_func_start sub_0809B3C4 +sub_0809B3C4: @ 0x0809B3C4 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + adds r0, #0x39 + bl sub_0807CA84 + adds r5, r0, #0 + ldrb r0, [r4, #0xb] + cmp r0, #3 + beq _0809B3E2 + cmp r5, #0 + beq _0809B3FE + bl sub_0805E780 + b _0809B3FE +_0809B3E2: + movs r0, #0x73 + bl sub_0807CBD0 + cmp r0, #0 + beq _0809B3F0 + bl sub_0805E780 +_0809B3F0: + cmp r5, #2 + beq _0809B3FE + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_0809B3FE: + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #3 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0809B424 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _0809B420 + ldrh r0, [r4, #0x32] + adds r0, #0x30 + strh r0, [r4, #0x32] +_0809B420: + movs r0, #2 + strb r0, [r4, #0xb] +_0809B424: + adds r0, r4, #0 + bl sub_08016A04 + ldrb r1, [r4, #0xa] + adds r1, #0x39 + adds r0, r4, #0 + bl sub_080042AC + ldrb r1, [r4, #0xb] + cmp r1, #1 + beq _0809B46C + cmp r1, #1 + bgt _0809B444 + cmp r1, #0 + beq _0809B44E + b _0809B4A6 +_0809B444: + cmp r1, #2 + beq _0809B488 + cmp r1, #3 + beq _0809B48E + b _0809B4A6 +_0809B44E: + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x16 + strb r0, [r4, #0xe] + movs r0, #2 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x80 + strb r1, [r0] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + b _0809B49E +_0809B46C: + movs r0, #3 + strb r0, [r4, #0xc] + ldr r0, _0809B484 @ =gUnk_03000BF0 + ldrh r0, [r0, #0xc] + subs r0, #0x10 + ldrh r1, [r4, #0x32] + subs r1, r1, r0 + ldrh r0, [r4, #0x36] + subs r0, r0, r1 + strh r0, [r4, #0x36] + b _0809B4A6 + .align 2, 0 +_0809B484: .4byte gUnk_03000BF0 +_0809B488: + movs r0, #4 + strb r0, [r4, #0xc] + b _0809B4A6 +_0809B48E: + movs r1, #0 + movs r0, #5 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0xd +_0809B49E: + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] +_0809B4A6: + pop {r4, r5, pc} + + thumb_func_start sub_0809B4A8 +sub_0809B4A8: @ 0x0809B4A8 + push {r4, lr} + adds r4, r0, #0 + bl sub_0800445C + adds r1, r4, #0 + adds r1, #0x80 + ldrb r0, [r1] + cmp r0, #0 + beq _0809B4C0 + subs r0, #1 + strb r0, [r1] + b _0809B520 +_0809B4C0: + adds r0, r4, #0 + bl sub_0809B688 + cmp r0, #0 + beq _0809B51C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + bne _0809B520 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + movs r0, #0x40 + strh r0, [r4, #0x24] + movs r0, #0x10 + strb r0, [r4, #0x15] + ldr r2, _0809B510 @ =gUnk_03003F80 + movs r0, #0x9e + strb r0, [r2, #6] + movs r0, #5 + strb r0, [r2, #0xc] + ldr r0, [r2, #0x30] + movs r1, #1 + orrs r0, r1 + str r0, [r2, #0x30] + ldr r1, _0809B514 @ =gUnk_03001160 + strh r3, [r1, #0x2c] + strh r3, [r1, #0x30] + ldrb r0, [r1, #0x14] + lsls r0, r0, #2 + strb r0, [r1, #0x15] + ldr r0, _0809B518 @ =0x0000010F + bl sub_08004488 + b _0809B520 + .align 2, 0 +_0809B510: .4byte gUnk_03003F80 +_0809B514: .4byte gUnk_03001160 +_0809B518: .4byte 0x0000010F +_0809B51C: + movs r0, #0x16 + strb r0, [r4, #0xe] +_0809B520: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809B524 +sub_0809B524: @ 0x0809B524 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + movs r1, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809B564 + ldrb r0, [r2, #0xf] + subs r0, #1 + strb r0, [r2, #0xf] + ands r0, r1 + cmp r0, #0 + bne _0809B554 + movs r0, #3 + strb r0, [r2, #0xc] + ldrh r0, [r2, #0x32] + adds r0, #0x20 + strh r0, [r2, #0x32] + ldrh r0, [r2, #0x36] + subs r0, #0x20 + strh r0, [r2, #0x36] + b _0809B564 +_0809B554: + movs r0, #1 + strb r0, [r2, #0xc] + movs r0, #0x16 + strb r0, [r2, #0xe] + adds r1, r2, #0 + adds r1, #0x80 + movs r0, #0x18 + strb r0, [r1] +_0809B564: + adds r0, r2, #0 + bl sub_0806F69C + pop {pc} + + thumb_func_start sub_0809B56C +sub_0809B56C: @ 0x0809B56C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xa0 + lsls r1, r1, #6 + bl sub_080044EC + cmp r0, #1 + bne _0809B5B0 + movs r2, #4 + movs r0, #4 + strb r0, [r4, #0xc] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r1, [r3] + subs r0, #0xc + ands r0, r1 + orrs r0, r2 + strb r0, [r3] + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl sub_080A29AC + adds r1, r0, #0 + cmp r1, #0 + beq _0809B5B0 + adds r0, r4, #0 + bl sub_0806FAB0 +_0809B5B0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809B5B4 +sub_0809B5B4: @ 0x0809B5B4 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0809B5CC @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809B5D0 + adds r0, r4, #0 + bl sub_0800445C + b _0809B5EA + .align 2, 0 +_0809B5CC: .4byte gUnk_03003F80 +_0809B5D0: + adds r0, r4, #0 + bl sub_08017850 + cmp r0, #0 + beq _0809B5EA + ldrb r0, [r4, #0xa] + adds r0, #0x39 + movs r1, #0 + movs r2, #0 + bl sub_080A7C00 + bl sub_0805E780 +_0809B5EA: + pop {r4, pc} + + thumb_func_start sub_0809B5EC +sub_0809B5EC: @ 0x0809B5EC + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x18] + lsls r0, r1, #0x1e + lsrs r5, r0, #0x1e + cmp r5, #1 + bne _0809B646 + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _0809B606 + cmp r0, #1 + beq _0809B630 + b _0809B682 +_0809B606: + movs r0, #7 + movs r1, #0x1a + movs r2, #7 + bl sub_0805EB00 + adds r2, r0, #0 + cmp r2, #0 + beq _0809B682 + movs r0, #0x2e + ldrsh r1, [r2, r0] + movs r3, #0x2e + ldrsh r0, [r4, r3] + cmp r1, r0 + blt _0809B682 + ldrb r0, [r2, #0x14] + cmp r0, #4 + bne _0809B682 + str r2, [r4, #0x50] + strb r5, [r4, #0xd] + adds r0, r2, #0 + b _0809B63E +_0809B630: + ldr r1, [r4, #0x50] + cmp r1, #0 + beq _0809B650 + ldr r0, [r1, #4] + cmp r0, #0 + beq _0809B650 + adds r0, r1, #0 +_0809B63E: + adds r1, r4, #0 + bl sub_0809B6B0 + b _0809B682 +_0809B646: + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _0809B656 + cmp r0, #1 + beq _0809B668 +_0809B650: + bl sub_0805E780 + b _0809B682 +_0809B656: + ldrb r0, [r4, #0xa] + adds r0, #0x39 + bl sub_0807CA84 + cmp r0, #2 + bne _0809B682 + movs r0, #1 + strb r0, [r4, #0xd] + b _0809B682 +_0809B668: + ldr r0, _0809B684 @ =gUnk_02000050 + ldrb r0, [r0] + movs r2, #0x7f + ands r2, r0 + cmp r2, #0 + bne _0809B682 + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + strb r2, [r4, #0xd] +_0809B682: + pop {r4, r5, pc} + .align 2, 0 +_0809B684: .4byte gUnk_02000050 + + thumb_func_start sub_0809B688 +sub_0809B688: @ 0x0809B688 + push {lr} + ldr r1, _0809B6A8 @ =gUnk_03001160 + movs r2, #6 + movs r3, #0xc + bl sub_080041A0 + adds r1, r0, #0 + cmp r1, #1 + bne _0809B6A4 + ldr r0, _0809B6AC @ =gUnk_03003F80 + ldrb r0, [r0, #0xd] + cmp r0, #0x10 + beq _0809B6A4 + movs r1, #0 +_0809B6A4: + adds r0, r1, #0 + pop {pc} + .align 2, 0 +_0809B6A8: .4byte gUnk_03001160 +_0809B6AC: .4byte gUnk_03003F80 + + thumb_func_start sub_0809B6B0 +sub_0809B6B0: @ 0x0809B6B0 + push {r4, lr} + adds r4, r1, #0 + ldr r2, _0809B6EC @ =gUnk_08123D94 + ldrb r1, [r0, #0x14] + lsrs r1, r1, #1 + adds r1, r1, r2 + movs r3, #0 + ldrsb r3, [r1, r3] + lsls r3, r3, #0x10 + adds r1, r4, #0 + movs r2, #0 + bl sub_0806FA48 + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + rsbs r0, r0, #0 + strh r0, [r4, #0x36] + ldrb r0, [r4, #0xa] + movs r1, #3 + subs r1, r1, r0 + adds r4, #0x29 + movs r0, #7 + ands r1, r0 + ldrb r2, [r4] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_0809B6EC: .4byte gUnk_08123D94 + + thumb_func_start sub_0809B6F0 +sub_0809B6F0: @ 0x0809B6F0 + push {lr} + ldr r2, _0809B704 @ =gUnk_08123D98 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809B704: .4byte gUnk_08123D98 + + thumb_func_start sub_0809B708 +sub_0809B708: @ 0x0809B708 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r6, #0xc] + ldrb r1, [r6, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r6, #0x18] + movs r0, #0x80 + strh r0, [r6, #0x24] + adds r0, r6, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0809B73A + adds r0, r6, #0 + bl sub_0809B7DC + bl sub_0805E780 + b _0809B78A +_0809B73A: + ldr r0, _0809B794 @ =0x0000030B + movs r2, #0x2e + ldrsh r1, [r6, r2] + ldr r5, _0809B798 @ =gUnk_03000BF0 + ldrh r2, [r5, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r3, #0x32 + ldrsh r2, [r6, r3] + ldrh r3, [r5, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + movs r2, #2 + bl sub_0807B7D8 + ldr r0, _0809B79C @ =0x00004061 + movs r2, #0x2e + ldrsh r1, [r6, r2] + ldrh r2, [r5, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r4 + movs r3, #0x32 + ldrsh r2, [r6, r3] + ldrh r3, [r5, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r6, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E +_0809B78A: + adds r0, r6, #0 + bl sub_0809B7A0 + pop {r4, r5, r6, pc} + .align 2, 0 +_0809B794: .4byte 0x0000030B +_0809B798: .4byte gUnk_03000BF0 +_0809B79C: .4byte 0x00004061 + + thumb_func_start sub_0809B7A0 +sub_0809B7A0: @ 0x0809B7A0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0809B7C0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0809B7BC + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + bl sub_0805E780 +_0809B7BC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809B7C0 +sub_0809B7C0: @ 0x0809B7C0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080002A0 + ldr r1, _0809B7D8 @ =0xFFFFBF9F + adds r0, r0, r1 + cmp r0, #1 + bls _0809B7D6 + adds r0, r4, #0 + bl sub_0809B7DC +_0809B7D6: + pop {r4, pc} + .align 2, 0 +_0809B7D8: .4byte 0xFFFFBF9F + + thumb_func_start sub_0809B7DC +sub_0809B7DC: @ 0x0809B7DC + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r0, #0xc3 + lsls r0, r0, #2 + movs r2, #0x2e + ldrsh r1, [r6, r2] + ldr r5, _0809B838 @ =gUnk_03000BF0 + ldrh r2, [r5, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r3, #0x32 + ldrsh r2, [r6, r3] + ldrh r3, [r5, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + movs r2, #2 + bl sub_0807B7D8 + ldr r0, _0809B83C @ =0x00004062 + movs r2, #0x2e + ldrsh r1, [r6, r2] + ldrh r2, [r5, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r4 + movs r3, #0x32 + ldrsh r2, [r6, r3] + ldrh r3, [r5, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r6, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + movs r0, #1 + strb r0, [r6, #0xe] + pop {r4, r5, r6, pc} + .align 2, 0 +_0809B838: .4byte gUnk_03000BF0 +_0809B83C: .4byte 0x00004062 + + thumb_func_start sub_0809B840 +sub_0809B840: @ 0x0809B840 + push {lr} + ldr r2, _0809B854 @ =gUnk_08123DA0 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809B854: .4byte gUnk_08123DA0 + + thumb_func_start sub_0809B858 +sub_0809B858: @ 0x0809B858 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x1e + bl sub_0805E4E0 + ldrb r3, [r4, #0xc] + cmp r3, #1 + beq _0809B8CC + cmp r3, #1 + bgt _0809B872 + cmp r3, #0 + beq _0809B878 + b _0809B972 +_0809B872: + cmp r3, #2 + beq _0809B948 + b _0809B972 +_0809B878: + movs r1, #1 + strb r1, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + strb r3, [r4, #0xf] + ldr r0, _0809B8BC @ =gUnk_03000BF0 + str r4, [r0, #0x30] + strb r1, [r0, #0xe] + ldr r5, _0809B8C0 @ =gUnk_03001160 + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r2, #0x2e + ldrsh r0, [r5, r2] + movs r2, #6 + cmp r1, r0 + ble _0809B89A + movs r2, #2 +_0809B89A: + strb r2, [r5, #0x14] + ldr r2, _0809B8C4 @ =gUnk_03000F50 + ldrh r1, [r2] + ldr r0, _0809B8C8 @ =0x0000BFFF + ands r0, r1 + movs r4, #0xa0 + lsls r4, r4, #6 + adds r1, r4, #0 + orrs r0, r1 + strh r0, [r2] + adds r0, r2, #0 + adds r0, #0x58 + strh r3, [r0] + adds r2, #0x5c + movs r0, #0xa0 + strh r0, [r2] + b _0809B972 + .align 2, 0 +_0809B8BC: .4byte gUnk_03000BF0 +_0809B8C0: .4byte gUnk_03001160 +_0809B8C4: .4byte gUnk_03000F50 +_0809B8C8: .4byte 0x0000BFFF +_0809B8CC: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0809B8D8 + subs r0, #1 + strb r0, [r4, #0xe] + b _0809B972 +_0809B8D8: + ldrb r0, [r4, #0xf] + cmp r0, #0x1f + bhi _0809B914 + ldr r5, _0809B90C @ =gUnk_030010A0 + ldr r0, [r5] + movs r1, #0x1f + ands r0, r1 + cmp r0, #0 + bne _0809B8F0 + ldr r0, _0809B910 @ =0x00000133 + bl sub_080A3268 +_0809B8F0: + ldr r0, [r5] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0809B972 + ldrb r1, [r4, #0xf] + adds r1, #1 + strb r1, [r4, #0xf] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl sub_0809B97C + b _0809B972 + .align 2, 0 +_0809B90C: .4byte gUnk_030010A0 +_0809B910: .4byte 0x00000133 +_0809B914: + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldr r2, _0809B938 @ =gUnk_03000F50 + ldrh r1, [r2] + ldr r0, _0809B93C @ =0x0000DFFF + ands r0, r1 + strh r0, [r2] + ldr r1, _0809B940 @ =gUnk_03000BF0 + ldr r0, _0809B944 @ =gUnk_03001160 + str r0, [r1, #0x30] + movs r0, #0x9a + lsls r0, r0, #1 + bl sub_080A3268 + b _0809B972 + .align 2, 0 +_0809B938: .4byte gUnk_03000F50 +_0809B93C: .4byte 0x0000DFFF +_0809B940: .4byte gUnk_03000BF0 +_0809B944: .4byte gUnk_03001160 +_0809B948: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809B972 + ldr r2, _0809B974 @ =gUnk_03000F50 + ldrh r1, [r2] + movs r3, #0x90 + lsls r3, r3, #7 + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2] + ldr r1, _0809B978 @ =gUnk_03000BF0 + movs r0, #4 + strb r0, [r1, #0xe] + ldr r1, [r4, #0x50] + movs r0, #1 + strb r0, [r1, #0xd] + bl sub_0805E780 +_0809B972: + pop {r4, r5, pc} + .align 2, 0 +_0809B974: .4byte gUnk_03000F50 +_0809B978: .4byte gUnk_03000BF0 + + thumb_func_start sub_0809B97C +sub_0809B97C: @ 0x0809B97C + push {lr} + movs r3, #0x2e + ldrsh r2, [r0, r3] + ldr r0, _0809B9B4 @ =gUnk_03000BF0 + movs r3, #0xa + ldrsh r0, [r0, r3] + subs r2, r2, r0 + subs r0, r2, r1 + adds r2, r2, r1 + cmp r0, #0 + bge _0809B994 + movs r0, #0 +_0809B994: + cmp r0, #0xf0 + ble _0809B99A + movs r0, #0xf0 +_0809B99A: + cmp r2, #0 + bge _0809B9A0 + movs r2, #0 +_0809B9A0: + cmp r2, #0xf0 + ble _0809B9A6 + movs r2, #0xf0 +_0809B9A6: + ldr r1, _0809B9B8 @ =gUnk_03000F50 + lsls r0, r0, #8 + orrs r0, r2 + adds r1, #0x58 + strh r0, [r1] + pop {pc} + .align 2, 0 +_0809B9B4: .4byte gUnk_03000BF0 +_0809B9B8: .4byte gUnk_03000F50 + + thumb_func_start sub_0809B9BC +sub_0809B9BC: @ 0x0809B9BC + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x1e + bl sub_0805E4E0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _0809BA34 + cmp r0, #1 + bgt _0809B9D6 + cmp r0, #0 + beq _0809B9DC + b _0809BAC2 +_0809B9D6: + cmp r0, #2 + beq _0809BA9C + b _0809BAC2 +_0809B9DC: + movs r1, #1 + strb r1, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + movs r0, #0x20 + strb r0, [r4, #0xf] + ldr r0, _0809BA24 @ =gUnk_03000BF0 + str r4, [r0, #0x30] + strb r1, [r0, #0xe] + ldr r3, _0809BA28 @ =gUnk_03001160 + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r2, #0x2e + ldrsh r0, [r3, r2] + movs r2, #6 + cmp r1, r0 + ble _0809BA00 + movs r2, #2 +_0809BA00: + strb r2, [r3, #0x14] + ldr r2, _0809BA2C @ =gUnk_03000F50 + ldrh r1, [r2] + ldr r0, _0809BA30 @ =0x0000BFFF + ands r0, r1 + movs r3, #0x80 + lsls r3, r3, #6 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + adds r1, r2, #0 + adds r1, #0x58 + movs r0, #0xf0 + strh r0, [r1] + adds r2, #0x5c + movs r0, #0xa0 + strh r0, [r2] + b _0809BAC2 + .align 2, 0 +_0809BA24: .4byte gUnk_03000BF0 +_0809BA28: .4byte gUnk_03001160 +_0809BA2C: .4byte gUnk_03000F50 +_0809BA30: .4byte 0x0000BFFF +_0809BA34: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0809BA40 + subs r0, #1 + strb r0, [r4, #0xe] + b _0809BAC2 +_0809BA40: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0809BA7C + ldr r5, _0809BA74 @ =gUnk_030010A0 + ldr r0, [r5] + movs r1, #0x1f + ands r0, r1 + cmp r0, #0 + bne _0809BA58 + ldr r0, _0809BA78 @ =0x00000133 + bl sub_080A3268 +_0809BA58: + ldr r0, [r5] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0809BAC2 + ldrb r1, [r4, #0xf] + subs r1, #1 + strb r1, [r4, #0xf] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl sub_0809B97C + b _0809BAC2 + .align 2, 0 +_0809BA74: .4byte gUnk_030010A0 +_0809BA78: .4byte 0x00000133 +_0809BA7C: + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldr r1, _0809BA94 @ =gUnk_03000BF0 + ldr r0, _0809BA98 @ =gUnk_03001160 + str r0, [r1, #0x30] + movs r0, #0x9a + lsls r0, r0, #1 + bl sub_080A3268 + b _0809BAC2 + .align 2, 0 +_0809BA94: .4byte gUnk_03000BF0 +_0809BA98: .4byte gUnk_03001160 +_0809BA9C: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809BAC2 + ldr r1, _0809BAC4 @ =gUnk_03000BF0 + movs r0, #4 + strb r0, [r1, #0xe] + ldr r2, _0809BAC8 @ =gUnk_03000F50 + ldrh r1, [r2] + ldr r0, _0809BACC @ =0x0000D7FF + ands r0, r1 + strh r0, [r2] + ldr r1, [r4, #0x50] + movs r0, #1 + strb r0, [r1, #0xd] + bl sub_0805E780 +_0809BAC2: + pop {r4, r5, pc} + .align 2, 0 +_0809BAC4: .4byte gUnk_03000BF0 +_0809BAC8: .4byte gUnk_03000F50 +_0809BACC: .4byte 0x0000D7FF + + thumb_func_start sub_0809BAD0 +sub_0809BAD0: @ 0x0809BAD0 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0xa + bl sub_0805E4E0 + ldrb r0, [r4, #0xc] + cmp r0, #4 + bls _0809BAE2 + b _0809BC68 +_0809BAE2: + lsls r0, r0, #2 + ldr r1, _0809BAEC @ =_0809BAF0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809BAEC: .4byte _0809BAF0 +_0809BAF0: @ jump table + .4byte _0809BB04 @ case 0 + .4byte _0809BB4C @ case 1 + .4byte _0809BBF8 @ case 2 + .4byte _0809BC24 @ case 3 + .4byte _0809BC48 @ case 4 +_0809BB04: + ldrb r0, [r4, #0xc] + adds r0, #1 + movs r1, #0 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + ldr r1, _0809BB40 @ =gUnk_03000BF0 + str r4, [r1, #0x30] + movs r0, #1 + strb r0, [r1, #0xe] + ldr r3, _0809BB44 @ =gUnk_03001160 + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r2, #0x2e + ldrsh r0, [r3, r2] + movs r2, #6 + cmp r1, r0 + ble _0809BB2C + movs r2, #2 +_0809BB2C: + strb r2, [r3, #0x14] + ldr r1, _0809BB48 @ =gUnk_03000F50 + adds r2, r1, #0 + adds r2, #0x58 + movs r0, #0x60 + strh r0, [r2] + adds r1, #0x5c + movs r0, #0xa0 + strh r0, [r1] + b _0809BC68 + .align 2, 0 +_0809BB40: .4byte gUnk_03000BF0 +_0809BB44: .4byte gUnk_03001160 +_0809BB48: .4byte gUnk_03000F50 +_0809BB4C: + adds r0, r4, #0 + bl sub_0809BE78 + cmp r0, #0 + bne _0809BB58 + b _0809BC68 +_0809BB58: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0809BB88 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809BB6A + b _0809BC68 +_0809BB6A: + ldr r2, _0809BB80 @ =gUnk_03000F50 + ldrh r1, [r2] + ldr r0, _0809BB84 @ =0x0000BFFF + ands r0, r1 + movs r3, #0xa0 + lsls r3, r3, #6 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + b _0809BC68 + .align 2, 0 +_0809BB80: .4byte gUnk_03000F50 +_0809BB84: .4byte 0x0000BFFF +_0809BB88: + ldr r2, _0809BBB8 @ =gUnk_03000F50 + adds r5, r2, #0 + adds r5, #0x58 + ldrh r0, [r5] + cmp r0, #0xdf + bhi _0809BBC4 + ldr r4, _0809BBBC @ =gUnk_030010A0 + ldr r0, [r4] + movs r1, #0x1f + ands r0, r1 + cmp r0, #0 + bne _0809BBA6 + ldr r0, _0809BBC0 @ =0x00000133 + bl sub_080A3268 +_0809BBA6: + ldr r0, [r4] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _0809BC68 + ldrh r0, [r5] + adds r0, #1 + strh r0, [r5] + b _0809BC68 + .align 2, 0 +_0809BBB8: .4byte gUnk_03000F50 +_0809BBBC: .4byte gUnk_030010A0 +_0809BBC0: .4byte 0x00000133 +_0809BBC4: + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + ldrh r1, [r2] + ldr r0, _0809BBF4 @ =0x0000DFFF + ands r0, r1 + movs r3, #0x90 + lsls r3, r3, #7 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + ldrh r0, [r4, #0x2e] + adds r0, #0x68 + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x32] + adds r0, #0x28 + strh r0, [r4, #0x32] + movs r0, #0x9a + lsls r0, r0, #1 + bl sub_080A3268 + b _0809BC68 + .align 2, 0 +_0809BBF4: .4byte 0x0000DFFF +_0809BBF8: + adds r0, r4, #0 + bl sub_0809BE78 + cmp r0, #0 + beq _0809BC68 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809BC68 + movs r0, #0x78 + strb r0, [r4, #0xe] + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x35 + bl sub_0807CCB4 + movs r0, #0x72 + bl sub_080A3268 + b _0809BC68 +_0809BC24: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809BC68 + movs r0, #4 + strb r0, [r4, #0xc] + ldr r1, _0809BC40 @ =gUnk_03000BF0 + ldr r0, _0809BC44 @ =gUnk_03001160 + str r0, [r1, #0x30] + movs r0, #2 + strb r0, [r1, #0xe] + b _0809BC68 + .align 2, 0 +_0809BC40: .4byte gUnk_03000BF0 +_0809BC44: .4byte gUnk_03001160 +_0809BC48: + adds r0, r4, #0 + bl sub_0809BE78 + cmp r0, #0 + beq _0809BC68 + ldr r1, _0809BC6C @ =gUnk_03000BF0 + movs r0, #4 + strb r0, [r1, #0xe] + ldr r1, [r4, #0x50] + movs r0, #1 + strb r0, [r1, #0xd] + movs r0, #0x64 + bl sub_0807CD10 + bl sub_0805E780 +_0809BC68: + pop {r4, r5, pc} + .align 2, 0 +_0809BC6C: .4byte gUnk_03000BF0 + + thumb_func_start sub_0809BC70 +sub_0809BC70: @ 0x0809BC70 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r1, #0x1e + bl sub_0805E4E0 + ldrb r5, [r4, #0xc] + cmp r5, #1 + beq _0809BCDC + cmp r5, #1 + bgt _0809BC8A + cmp r5, #0 + beq _0809BC92 + b _0809BDAE +_0809BC8A: + cmp r5, #2 + bne _0809BC90 + b _0809BD98 +_0809BC90: + b _0809BDAE +_0809BC92: + movs r1, #1 + strb r1, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + strb r5, [r4, #0xf] + ldr r0, _0809BCCC @ =gUnk_03000BF0 + str r4, [r0, #0x30] + strb r1, [r0, #0xe] + ldr r3, _0809BCD0 @ =gUnk_03001160 + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r2, #0x2e + ldrsh r0, [r3, r2] + movs r2, #6 + cmp r1, r0 + ble _0809BCB4 + movs r2, #2 +_0809BCB4: + strb r2, [r3, #0x14] + ldr r1, _0809BCD4 @ =gUnk_03000F50 + adds r2, r1, #0 + adds r2, #0x58 + ldr r0, _0809BCD8 @ =0x000080F0 + strh r0, [r2] + adds r1, #0x5c + movs r0, #0xa0 + strh r0, [r1] + movs r0, #0x80 + strb r0, [r4, #0xd] + b _0809BDAE + .align 2, 0 +_0809BCCC: .4byte gUnk_03000BF0 +_0809BCD0: .4byte gUnk_03001160 +_0809BCD4: .4byte gUnk_03000F50 +_0809BCD8: .4byte 0x000080F0 +_0809BCDC: + adds r0, r4, #0 + bl sub_0809BE78 + cmp r0, #0 + beq _0809BDAE + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0809BD20 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809BDAE + movs r0, #6 + movs r1, #8 + bl sub_08050054 + movs r0, #3 + bl sub_0805AAF0 + ldr r2, _0809BD18 @ =gUnk_03000F50 + ldrh r1, [r2] + ldr r0, _0809BD1C @ =0x0000BFFF + ands r0, r1 + movs r3, #0xa0 + lsls r3, r3, #6 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + b _0809BDAE + .align 2, 0 +_0809BD18: .4byte gUnk_03000F50 +_0809BD1C: .4byte 0x0000BFFF +_0809BD20: + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _0809BD64 + ldr r6, _0809BD58 @ =gUnk_030010A0 + ldr r0, [r6] + movs r1, #0x1f + ands r0, r1 + cmp r0, #0 + bne _0809BD38 + ldr r0, _0809BD5C @ =0x00000133 + bl sub_080A3268 +_0809BD38: + ldr r0, [r6] + ands r0, r5 + cmp r0, #0 + bne _0809BDAE + ldrb r0, [r4, #0xd] + subs r0, #1 + strb r0, [r4, #0xd] + ldr r1, _0809BD60 @ =gUnk_03000F50 + ldrb r0, [r4, #0xd] + lsls r0, r0, #8 + movs r2, #0xf0 + adds r1, #0x58 + orrs r0, r2 + strh r0, [r1] + b _0809BDAE + .align 2, 0 +_0809BD58: .4byte gUnk_030010A0 +_0809BD5C: .4byte 0x00000133 +_0809BD60: .4byte gUnk_03000F50 +_0809BD64: + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + ldr r2, _0809BD90 @ =gUnk_03000F50 + ldrh r1, [r2] + ldr r0, _0809BD94 @ =0x0000DFFF + ands r0, r1 + movs r3, #0x90 + lsls r3, r3, #7 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + movs r0, #0x37 + bl sub_0807CCB4 + movs r0, #0x9a + lsls r0, r0, #1 + bl sub_080A3268 + b _0809BDAE + .align 2, 0 +_0809BD90: .4byte gUnk_03000F50 +_0809BD94: .4byte 0x0000DFFF +_0809BD98: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809BDAE + ldr r1, [r4, #0x50] + movs r0, #1 + strb r0, [r1, #0xd] + bl sub_0805E780 +_0809BDAE: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0809BDB0 +sub_0809BDB0: @ 0x0809BDB0 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x1e + bl sub_0805E4E0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _0809BE00 + cmp r0, #1 + bgt _0809BDCA + cmp r0, #0 + beq _0809BDD0 + b _0809BE70 +_0809BDCA: + cmp r0, #2 + beq _0809BE54 + b _0809BE70 +_0809BDD0: + movs r1, #1 + strb r1, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + movs r0, #0x80 + strb r0, [r4, #0xf] + ldr r0, _0809BDF8 @ =gUnk_03000BF0 + str r4, [r0, #0x30] + strb r1, [r0, #0xe] + ldr r3, _0809BDFC @ =gUnk_03001160 + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r2, #0x2e + ldrsh r0, [r3, r2] + movs r2, #6 + cmp r1, r0 + ble _0809BDF4 + movs r2, #2 +_0809BDF4: + strb r2, [r3, #0x14] + b _0809BE70 + .align 2, 0 +_0809BDF8: .4byte gUnk_03000BF0 +_0809BDFC: .4byte gUnk_03001160 +_0809BE00: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0809BE0C + subs r0, #1 + strb r0, [r4, #0xe] + b _0809BE70 +_0809BE0C: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0809BE34 + ldr r0, _0809BE2C @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #0x1f + ands r0, r1 + cmp r0, #0 + bne _0809BE70 + ldr r0, _0809BE30 @ =0x00000133 + bl sub_080A3268 + b _0809BE70 + .align 2, 0 +_0809BE2C: .4byte gUnk_030010A0 +_0809BE30: .4byte 0x00000133 +_0809BE34: + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldr r1, _0809BE4C @ =gUnk_03000BF0 + ldr r0, _0809BE50 @ =gUnk_03001160 + str r0, [r1, #0x30] + movs r0, #0x9a + lsls r0, r0, #1 + bl sub_080A3268 + b _0809BE70 + .align 2, 0 +_0809BE4C: .4byte gUnk_03000BF0 +_0809BE50: .4byte gUnk_03001160 +_0809BE54: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809BE70 + ldr r1, _0809BE74 @ =gUnk_03000BF0 + movs r0, #4 + strb r0, [r1, #0xe] + ldr r1, [r4, #0x50] + movs r0, #1 + strb r0, [r1, #0xd] + bl sub_0805E780 +_0809BE70: + pop {r4, pc} + .align 2, 0 +_0809BE74: .4byte gUnk_03000BF0 + + thumb_func_start sub_0809BE78 +sub_0809BE78: @ 0x0809BE78 + push {r4, r5, lr} + adds r3, r0, #0 + movs r5, #0 + adds r0, #0x68 + ldrh r2, [r0] + ldr r0, _0809BEB0 @ =gUnk_03000BF0 + movs r4, #0xa + ldrsh r1, [r0, r4] + adds r4, r0, #0 + cmp r2, r1 + bne _0809BE9E + adds r0, r3, #0 + adds r0, #0x6a + ldrh r1, [r0] + movs r2, #0xc + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _0809BE9E + movs r5, #1 +_0809BE9E: + ldrh r1, [r4, #0xa] + adds r0, r3, #0 + adds r0, #0x68 + strh r1, [r0] + ldrh r1, [r4, #0xc] + adds r0, #2 + strh r1, [r0] + adds r0, r5, #0 + pop {r4, r5, pc} + .align 2, 0 +_0809BEB0: .4byte gUnk_03000BF0 + + thumb_func_start sub_0809BEB4 +sub_0809BEB4: @ 0x0809BEB4 + push {lr} + ldr r2, _0809BEC8 @ =gUnk_08123DB4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809BEC8: .4byte gUnk_08123DB4 + + thumb_func_start sub_0809BECC +sub_0809BECC: @ 0x0809BECC + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x9b + bl sub_0807CBE4 + cmp r0, #0 + beq _0809BEDE + bl sub_0805E780 +_0809BEDE: + movs r0, #0x91 + movs r1, #0 + movs r2, #0 + bl sub_080A2960 + str r0, [r4, #0x54] + cmp r0, #0 + beq _0809BF1A + movs r2, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x11] + subs r0, #0x11 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x11] + strb r2, [r4, #0x1e] + ldrb r0, [r4, #0x19] + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r4, #0 + bl sub_0809C0A8 + adds r0, r4, #0 + movs r1, #0xcc + movs r2, #0xcc + movs r3, #0 + bl sub_0805EC9C +_0809BF1A: + pop {r4, pc} + + thumb_func_start sub_0809BF1C +sub_0809BF1C: @ 0x0809BF1C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xcc + movs r2, #0xcc + movs r3, #0 + bl sub_0805EC9C + movs r0, #0x37 + bl sub_0807CBE4 + cmp r0, #0 + beq _0809BF6C + movs r0, #0x90 + movs r1, #0 + movs r2, #0 + bl sub_080A2960 + adds r1, r0, #0 + cmp r1, #0 + beq _0809BF6C + ldr r0, _0809BF70 @ =gUnk_03000BF0 + str r1, [r0, #0x30] + ldr r0, [r4, #0x54] + str r1, [r0, #0x54] + movs r3, #0x80 + lsls r3, r3, #0xb + adds r0, r4, #0 + movs r2, #0 + bl sub_0806FA48 + movs r0, #2 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x74 + movs r0, #0xa0 + lsls r0, r0, #1 + strh r0, [r1] + adds r0, #0x73 + bl sub_08004488 +_0809BF6C: + pop {r4, pc} + .align 2, 0 +_0809BF70: .4byte gUnk_03000BF0 + + thumb_func_start sub_0809BF74 +sub_0809BF74: @ 0x0809BF74 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r5, r7, #0 + adds r5, #0x74 + ldrh r0, [r5] + subs r1, r0, #1 + strh r1, [r5] + lsls r0, r1, #0x10 + cmp r0, #0 + bne _0809BFA0 + ldr r1, [r7, #0x54] + movs r0, #1 + strb r0, [r1, #0xf] + adds r0, r7, #0 + bl sub_0809C23C + movs r0, #0x9b + bl sub_0807CBE4 + bl sub_0805E780 + b _0809C09A +_0809BFA0: + movs r0, #0x1f + ands r1, r0 + cmp r1, #0 + bne _0809BFAE + ldr r0, _0809C09C @ =0x000001B3 + bl sub_08004488 +_0809BFAE: + ldrh r0, [r5] + cmp r0, #0x77 + bhi _0809BFE0 + movs r1, #0x78 + subs r1, r1, r0 + lsls r4, r1, #5 + adds r4, #0xcc + lsls r1, r1, #4 + adds r1, #0xcc + adds r0, r7, #0 + adds r2, r4, #0 + movs r3, #0 + bl sub_0805EC9C + adds r0, r7, #0 + adds r1, r4, #0 + movs r2, #8 + movs r3, #0 + bl sub_0806FCF4 + adds r1, r7, #0 + adds r1, #0x63 + ldrb r0, [r1] + adds r0, #8 + strb r0, [r1] +_0809BFE0: + ldr r1, _0809C0A0 @ =gUnk_08123DC0 + ldrh r0, [r5] + lsrs r0, r0, #5 + adds r0, r0, r1 + ldrb r6, [r0] + movs r0, #0xf + movs r1, #0x11 + movs r2, #0x40 + bl sub_080A2960 + adds r5, r0, #0 + cmp r5, #0 + beq _0809C044 + bl sub_08000E50 + adds r4, r0, #0 + asrs r0, r4, #0x10 + ands r0, r6 + adds r2, r6, #1 + lsrs r1, r2, #1 + subs r0, r0, r1 + mov ip, r0 + lsrs r0, r6, #1 + ands r0, r4 + lsrs r2, r2, #2 + subs r4, r0, r2 + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] + adds r1, r7, #0 + adds r1, #0x80 + ldr r2, _0809C0A4 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + ldrh r1, [r1] + adds r0, r0, r1 + add r0, ip + strh r0, [r5, #0x2e] + adds r1, r7, #0 + adds r1, #0x82 + ldrh r0, [r2, #8] + ldrh r1, [r1] + adds r0, r0, r1 + adds r0, r0, r4 + strh r0, [r5, #0x32] +_0809C044: + movs r0, #0xf + movs r1, #2 + movs r2, #0x40 + bl sub_080A2960 + adds r5, r0, #0 + cmp r5, #0 + beq _0809C09A + bl sub_08000E50 + adds r4, r0, #0 + asrs r1, r4, #0x10 + ands r1, r6 + adds r0, r6, #1 + lsrs r0, r0, #1 + subs r1, r1, r0 + mov ip, r1 + lsrs r3, r6, #1 + ands r3, r4 + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] + adds r1, r7, #0 + adds r1, #0x80 + ldr r2, _0809C0A4 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + ldrh r1, [r1] + adds r0, r0, r1 + add r0, ip + strh r0, [r5, #0x2e] + adds r1, r7, #0 + adds r1, #0x82 + ldrh r0, [r2, #8] + ldrh r1, [r1] + adds r0, r0, r1 + adds r0, r0, r3 + strh r0, [r5, #0x32] +_0809C09A: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809C09C: .4byte 0x000001B3 +_0809C0A0: .4byte gUnk_08123DC0 +_0809C0A4: .4byte gUnk_03000BF0 + + thumb_func_start sub_0809C0A8 +sub_0809C0A8: @ 0x0809C0A8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r3, _0809C214 @ =gUnk_03000BF0 + ldrh r1, [r3, #6] + subs r0, r0, r1 + asrs r6, r0, #4 + movs r2, #0x3f + ands r6, r2 + movs r1, #0x32 + ldrsh r0, [r4, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r6, r0 + ldr r5, _0809C218 @ =0x00004022 + adds r1, r6, #0 + subs r1, #0x41 + adds r4, #0x38 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + adds r1, r6, #0 + subs r1, #0x40 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + adds r1, r6, #0 + subs r1, #0x3f + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + subs r1, r6, #2 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + subs r1, r6, #1 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldrb r2, [r4] + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0800015E + adds r1, r6, #1 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + adds r1, r6, #2 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + adds r1, r6, #0 + adds r1, #0x3e + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + adds r1, r6, #0 + adds r1, #0x3f + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + adds r1, r6, #0 + adds r1, #0x40 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + adds r1, r6, #0 + adds r1, #0x41 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + adds r1, r6, #0 + adds r1, #0x42 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + adds r1, r6, #0 + adds r1, #0x7f + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + adds r1, r6, #0 + adds r1, #0x80 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + adds r1, r6, #0 + adds r1, #0x81 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldr r0, _0809C21C @ =0x0000013F + adds r1, r6, r0 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + movs r0, #0xa0 + lsls r0, r0, #1 + adds r1, r6, r0 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldr r0, _0809C220 @ =0x00000141 + adds r1, r6, r0 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldr r0, _0809C224 @ =0x0000017F + adds r1, r6, r0 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldr r0, _0809C228 @ =0x00000181 + adds r1, r6, r0 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldr r0, _0809C22C @ =0x000001BD + adds r1, r6, r0 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + movs r0, #0xdf + lsls r0, r0, #1 + adds r1, r6, r0 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldr r0, _0809C230 @ =0x000001BF + adds r1, r6, r0 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldr r0, _0809C234 @ =0x000001C1 + adds r1, r6, r0 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + movs r0, #0xe1 + lsls r0, r0, #1 + adds r1, r6, r0 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldr r0, _0809C238 @ =0x000001C3 + adds r1, r6, r0 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + pop {r4, r5, r6, pc} + .align 2, 0 +_0809C214: .4byte gUnk_03000BF0 +_0809C218: .4byte 0x00004022 +_0809C21C: .4byte 0x0000013F +_0809C220: .4byte 0x00000141 +_0809C224: .4byte 0x0000017F +_0809C228: .4byte 0x00000181 +_0809C22C: .4byte 0x000001BD +_0809C230: .4byte 0x000001BF +_0809C234: .4byte 0x000001C1 +_0809C238: .4byte 0x000001C3 + + thumb_func_start sub_0809C23C +sub_0809C23C: @ 0x0809C23C + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r3, _0809C370 @ =gUnk_03000BF0 + ldrh r1, [r3, #6] + subs r0, r0, r1 + asrs r5, r0, #4 + movs r2, #0x3f + ands r5, r2 + movs r1, #0x32 + ldrsh r0, [r4, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r5, r0 + adds r0, r5, #0 + subs r0, #0x41 + adds r4, #0x38 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + subs r0, #0x40 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + subs r0, #0x3f + ldrb r1, [r4] + bl sub_0807BA8C + subs r0, r5, #2 + ldrb r1, [r4] + bl sub_0807BA8C + subs r0, r5, #1 + ldrb r1, [r4] + bl sub_0807BA8C + ldrb r1, [r4] + adds r0, r5, #0 + bl sub_0807BA8C + adds r0, r5, #1 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #2 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x3e + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x3f + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x40 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x41 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x42 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x7f + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x80 + ldrb r1, [r4] + bl sub_0807BA8C + adds r0, r5, #0 + adds r0, #0x81 + ldrb r1, [r4] + bl sub_0807BA8C + ldr r1, _0809C374 @ =0x0000013F + adds r0, r5, r1 + ldrb r1, [r4] + bl sub_0807BA8C + movs r1, #0xa0 + lsls r1, r1, #1 + adds r0, r5, r1 + ldrb r1, [r4] + bl sub_0807BA8C + ldr r1, _0809C378 @ =0x00000141 + adds r0, r5, r1 + ldrb r1, [r4] + bl sub_0807BA8C + ldr r1, _0809C37C @ =0x0000017F + adds r0, r5, r1 + ldrb r1, [r4] + bl sub_0807BA8C + ldr r1, _0809C380 @ =0x00000181 + adds r0, r5, r1 + ldrb r1, [r4] + bl sub_0807BA8C + ldr r1, _0809C384 @ =0x000001BD + adds r0, r5, r1 + ldrb r1, [r4] + bl sub_0807BA8C + movs r1, #0xdf + lsls r1, r1, #1 + adds r0, r5, r1 + ldrb r1, [r4] + bl sub_0807BA8C + ldr r1, _0809C388 @ =0x000001BF + adds r0, r5, r1 + ldrb r1, [r4] + bl sub_0807BA8C + ldr r1, _0809C38C @ =0x000001C1 + adds r0, r5, r1 + ldrb r1, [r4] + bl sub_0807BA8C + movs r1, #0xe1 + lsls r1, r1, #1 + adds r0, r5, r1 + ldrb r1, [r4] + bl sub_0807BA8C + ldr r1, _0809C390 @ =0x000001C3 + adds r0, r5, r1 + ldrb r1, [r4] + bl sub_0807BA8C + pop {r4, r5, pc} + .align 2, 0 +_0809C370: .4byte gUnk_03000BF0 +_0809C374: .4byte 0x0000013F +_0809C378: .4byte 0x00000141 +_0809C37C: .4byte 0x0000017F +_0809C380: .4byte 0x00000181 +_0809C384: .4byte 0x000001BD +_0809C388: .4byte 0x000001BF +_0809C38C: .4byte 0x000001C1 +_0809C390: .4byte 0x000001C3 + + thumb_func_start sub_0809C394 +sub_0809C394: @ 0x0809C394 + push {lr} + ldr r2, _0809C3A8 @ =gUnk_08123DCC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809C3A8: .4byte gUnk_08123DCC + + thumb_func_start sub_0809C3AC +sub_0809C3AC: @ 0x0809C3AC + movs r2, #0 + movs r1, #1 + strb r1, [r0, #0xc] + strb r2, [r0, #0x1e] + adds r0, #0x29 + ldrb r2, [r0] + subs r1, #9 + ands r1, r2 + movs r2, #5 + orrs r1, r2 + strb r1, [r0] + bx lr + + thumb_func_start nullsub_536 +nullsub_536: @ 0x0809C3C4 + bx lr + .align 2, 0 + + thumb_func_start sub_0809C3C8 +sub_0809C3C8: @ 0x0809C3C8 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0809C3E8 @ =gUnk_08123DD4 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r0, [r4, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x19] + pop {r4, pc} + .align 2, 0 +_0809C3E8: .4byte gUnk_08123DD4 + + thumb_func_start sub_0809C3EC +sub_0809C3EC: @ 0x0809C3EC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + cmp r0, #7 + bls _0809C400 + b _0809C5A4 +_0809C400: + lsls r0, r0, #2 + ldr r1, _0809C40C @ =_0809C410 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809C40C: .4byte _0809C410 +_0809C410: @ jump table + .4byte _0809C430 @ case 0 + .4byte _0809C53E @ case 1 + .4byte _0809C53E @ case 2 + .4byte _0809C53E @ case 3 + .4byte _0809C53E @ case 4 + .4byte _0809C586 @ case 5 + .4byte _0809C440 @ case 6 + .4byte _0809C5BA @ case 7 +_0809C430: + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + adds r1, r4, #0 + adds r1, #0x7e + movs r0, #0 + strh r0, [r1] +_0809C440: + movs r0, #1 + strb r0, [r4, #0xe] + movs r0, #0x10 + strb r0, [r4, #0x15] + adds r1, r4, #0 + adds r1, #0x79 + movs r0, #0xf0 + strb r0, [r1] + ldr r1, _0809C4B4 @ =gUnk_03000BF0 + movs r2, #0x84 + lsls r2, r2, #1 + adds r0, r2, #0 + ldrh r2, [r1, #6] + adds r0, r0, r2 + strh r0, [r4, #0x2e] + movs r2, #0xb4 + lsls r2, r2, #1 + adds r0, r2, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r4, #0x32] + ldrb r0, [r4, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r4, #0 + adds r0, #0x76 + movs r1, #0xa0 + strh r1, [r0] + subs r0, #2 + strh r1, [r0] + adds r1, r4, #0 + adds r1, #0x7b + movs r0, #0x80 + strb r0, [r1] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0809C52E + subs r1, #0x19 + movs r0, #0x29 + strb r0, [r1] + adds r1, #1 + movs r0, #0xe0 + strb r0, [r1] + movs r0, #0x30 + bl sub_0801D8E0 + adds r2, r0, #0 + adds r0, r4, #0 + adds r0, #0x84 + str r2, [r0] + mov r8, r0 + cmp r2, #0 + bne _0809C4B8 + bl sub_0805E780 + b _0809C5BA + .align 2, 0 +_0809C4B4: .4byte gUnk_03000BF0 +_0809C4B8: + str r2, [r4, #0x64] + mov r0, r8 + ldr r1, [r0] + movs r0, #5 + strb r0, [r1, #1] + movs r5, #0 + mov r7, r8 +_0809C4C6: + adds r6, r5, #1 + adds r0, r4, #0 + movs r1, #0x91 + adds r2, r6, #0 + movs r3, #0 + bl sub_080A2988 + str r0, [r4, #0x54] + cmp r0, #0 + beq _0809C4EE + adds r1, r0, #0 + adds r1, #0x84 + ldr r0, [r7] + str r0, [r1] + ldr r1, [r7] + lsls r0, r5, #2 + adds r1, #0x20 + adds r1, r1, r0 + ldr r0, [r4, #0x54] + str r0, [r1] +_0809C4EE: + adds r5, r6, #0 + cmp r5, #3 + bls _0809C4C6 + adds r0, r4, #0 + movs r1, #0x91 + movs r2, #5 + movs r3, #0 + bl sub_080A2988 + str r0, [r4, #0x54] + cmp r0, #0 + beq _0809C510 + adds r1, r0, #0 + adds r1, #0x84 + mov r2, r8 + ldr r0, [r2] + str r0, [r1] +_0809C510: + adds r0, r4, #0 + movs r1, #0x91 + movs r2, #6 + movs r3, #0 + bl sub_080A2988 + str r0, [r4, #0x50] + cmp r0, #0 + beq _0809C5A4 + adds r1, r0, #0 + adds r1, #0x84 + mov r2, r8 + ldr r0, [r2] + str r0, [r1] + b _0809C5A4 +_0809C52E: + adds r1, r4, #0 + adds r1, #0x62 + movs r0, #0xd7 + strb r0, [r1] + adds r1, #1 + movs r0, #0xe0 + strb r0, [r1] + b _0809C5A4 +_0809C53E: + movs r1, #0 + movs r0, #0x10 + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x79 + strb r1, [r0] + ldrb r1, [r4, #0xa] + movs r2, #2 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _0809C55A + strb r2, [r4, #0xf] + b _0809C55E +_0809C55A: + movs r0, #0xfe + strb r0, [r4, #0xf] +_0809C55E: + adds r0, r4, #0 + adds r0, #0x74 + movs r2, #0x80 + lsls r2, r2, #1 + strh r2, [r0] + ldrb r1, [r4, #0xa] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0809C57E + adds r1, r4, #0 + adds r1, #0x76 + movs r0, #0xff + lsls r0, r0, #8 + strh r0, [r1] + b _0809C5A4 +_0809C57E: + adds r0, r4, #0 + adds r0, #0x76 + strh r2, [r0] + b _0809C5A4 +_0809C586: + adds r0, r4, #0 + adds r0, #0x76 + movs r1, #0x80 + lsls r1, r1, #1 + strh r1, [r0] + subs r0, #2 + strh r1, [r0] + adds r1, r4, #0 + adds r1, #0x79 + movs r0, #0x1c + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + str r4, [r0, #8] +_0809C5A4: + ldr r0, _0809C5C0 @ =gUnk_08123DDC + ldrb r1, [r4, #0xa] + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0809C5C4 +_0809C5BA: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809C5C0: .4byte gUnk_08123DDC + + thumb_func_start sub_0809C5C4 +sub_0809C5C4: @ 0x0809C5C4 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xa] + cmp r0, #7 + bls _0809C5D0 + b _0809C7DE +_0809C5D0: + lsls r0, r0, #2 + ldr r1, _0809C5DC @ =_0809C5E0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809C5DC: .4byte _0809C5E0 +_0809C5E0: @ jump table + .4byte _0809C738 @ case 0 + .4byte _0809C600 @ case 1 + .4byte _0809C600 @ case 2 + .4byte _0809C600 @ case 3 + .4byte _0809C600 @ case 4 + .4byte _0809C6B8 @ case 5 + .4byte _0809C7B4 @ case 6 + .4byte _0809C7D2 @ case 7 +_0809C600: + ldr r0, [r5, #0x50] + adds r1, r5, #0 + bl sub_0806FAD8 + ldr r0, [r5, #0x50] + ldrb r0, [r0, #0xd] + adds r6, r5, #0 + adds r6, #0x84 + cmp r0, #6 + bne _0809C630 + movs r0, #0xf + ldrsb r0, [r5, r0] + cmp r0, #0 + bge _0809C624 + ldr r0, [r6] + ldrb r0, [r0] + rsbs r0, r0, #0 + b _0809C628 +_0809C624: + ldr r0, [r6] + ldrb r0, [r0] +_0809C628: + strb r0, [r5, #0xf] + adds r0, r5, #0 + bl sub_0809CBE4 +_0809C630: + ldr r4, [r5, #0x50] + adds r0, r4, #0 + adds r0, #0x76 + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #9 + bl __divsi3 + adds r3, r0, #0 + lsls r0, r3, #0xd + lsrs r3, r0, #8 + ldr r0, _0809C660 @ =0xFFFFE000 + adds r3, r3, r0 + ldr r0, [r6] + ldr r0, [r0, #8] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #1 + bne _0809C664 + movs r1, #0x88 + lsls r1, r1, #6 + adds r3, r3, r1 + b _0809C66C + .align 2, 0 +_0809C660: .4byte 0xFFFFE000 +_0809C664: + lsrs r0, r3, #1 + movs r1, #0x88 + lsls r1, r1, #6 + adds r3, r0, r1 +_0809C66C: + adds r2, r4, #0 + adds r2, #0x7b + ldr r1, _0809C6B0 @ =gUnk_08123E18 + ldrb r0, [r5, #0xa] + subs r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + ldrb r2, [r2] + adds r0, r0, r2 + rsbs r0, r0, #0 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + adds r0, r5, #0 + adds r2, r3, #0 + bl sub_0809CB70 + ldr r2, [r5, #0x50] + adds r2, #0x7b + ldr r1, _0809C6B4 @ =gUnk_08123E1C + ldrb r0, [r5, #0xa] + subs r0, #1 + adds r0, r0, r1 + ldrb r1, [r0] + ldrb r2, [r2] + adds r1, r1, r2 + adds r0, r5, #0 + adds r0, #0x79 + ldrb r0, [r0] + adds r0, r0, r1 + adds r1, r5, #0 + adds r1, #0x7b + strb r0, [r1] + b _0809C7BC + .align 2, 0 +_0809C6B0: .4byte gUnk_08123E18 +_0809C6B4: .4byte gUnk_08123E1C +_0809C6B8: + ldr r0, [r5, #0x50] + adds r1, r5, #0 + bl sub_0806FAD8 + ldr r0, [r5, #0x50] + ldrb r0, [r0, #0xd] + adds r6, r5, #0 + adds r6, #0x79 + adds r7, r5, #0 + adds r7, #0x76 + cmp r0, #4 + beq _0809C6F6 + adds r0, r5, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #1 + beq _0809C6F6 + ldrb r0, [r6] + cmp r0, #0x1c + bls _0809C6E4 + subs r0, #1 + strb r0, [r6] +_0809C6E4: + ldrh r0, [r7] + movs r1, #0x80 + lsls r1, r1, #1 + cmp r0, r1 + bls _0809C6F4 + subs r0, #1 + strh r0, [r7] + b _0809C6F6 +_0809C6F4: + strh r1, [r7] +_0809C6F6: + ldr r4, [r5, #0x50] + adds r0, r4, #0 + adds r0, #0x74 + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #9 + bl __divsi3 + adds r3, r0, #0 + ldrb r0, [r6] + lsls r0, r0, #8 + muls r0, r3, r0 + lsrs r3, r0, #8 + adds r4, #0x7b + ldrb r0, [r4] + adds r0, #0x80 + rsbs r0, r0, #0 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + adds r0, r5, #0 + adds r2, r3, #0 + bl sub_0809CB70 + ldr r0, [r5, #0x50] + adds r0, #0x7b + ldrb r0, [r0] + adds r1, r5, #0 + adds r1, #0x7b + strb r0, [r1] + ldrh r1, [r7] + adds r0, r5, #0 + adds r0, #0x74 + b _0809C7C4 +_0809C738: + movs r0, #0x37 + bl sub_0807CBE4 + cmp r0, #0 + beq _0809C74A + adds r0, r5, #0 + movs r1, #0x1e + bl sub_0805E4E0 +_0809C74A: + ldr r1, _0809C7A8 @ =gUnk_08123DF8 + ldrb r0, [r5, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + ldrb r0, [r5, #0xf] + cmp r0, #0 + beq _0809C7BC + ldr r0, _0809C7AC @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _0809C772 + ldr r0, [r5, #0x54] + bl sub_080A2B80 +_0809C772: + adds r3, r5, #0 + adds r3, #0x7e + ldrh r0, [r3] + cmp r0, #0 + beq _0809C7BC + ldr r2, [r5, #0x54] + movs r1, #0 + ldrsh r0, [r3, r1] + ldr r1, [r2, #0x20] + subs r1, r1, r0 + str r1, [r2, #0x20] + ldr r0, [r2, #0x34] + adds r0, r0, r1 + str r0, [r2, #0x34] + ldr r0, [r5, #0x54] + ldr r1, [r0, #0x20] + movs r0, #0xc0 + lsls r0, r0, #6 + cmp r1, r0 + beq _0809C7A0 + ldr r0, _0809C7B0 @ =0xFFFFD000 + cmp r1, r0 + bne _0809C7BC +_0809C7A0: + ldrh r0, [r3] + rsbs r0, r0, #0 + strh r0, [r3] + b _0809C7BC + .align 2, 0 +_0809C7A8: .4byte gUnk_08123DF8 +_0809C7AC: .4byte gUnk_030010A0 +_0809C7B0: .4byte 0xFFFFD000 +_0809C7B4: + ldr r0, [r5, #0x50] + adds r1, r5, #0 + bl sub_0806FA24 +_0809C7BC: + adds r0, r5, #0 + adds r0, #0x76 + ldrh r1, [r0] + subs r0, #2 +_0809C7C4: + ldrh r2, [r0] + adds r0, #6 + ldrh r3, [r0] + adds r0, r5, #0 + bl sub_0805EC9C + b _0809C7DE +_0809C7D2: + ldr r0, _0809C7E0 @ =gUnk_03000BF0 + ldr r0, [r0, #0x30] + cmp r0, r5 + beq _0809C7DE + bl sub_0805E780 +_0809C7DE: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809C7E0: .4byte gUnk_03000BF0 + + thumb_func_start sub_0809C7E4 +sub_0809C7E4: @ 0x0809C7E4 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xf] + cmp r0, #0 + beq _0809C84A + adds r3, r5, #0 + adds r3, #0x7e + ldrh r0, [r3] + cmp r0, #0 + bne _0809C82A + ldr r2, [r5, #0x54] + movs r0, #0x36 + ldrsh r1, [r2, r0] + movs r0, #0x10 + rsbs r0, r0, #0 + cmp r1, r0 + ble _0809C814 + ldr r0, [r2, #0x34] + ldr r1, _0809C810 @ =0xFFFFC000 + adds r0, r0, r1 + str r0, [r2, #0x34] + b _0809C82A + .align 2, 0 +_0809C810: .4byte 0xFFFFC000 +_0809C814: + ldr r0, [r2, #0x34] + ldr r1, _0809C84C @ =0xFFFFF000 + adds r0, r0, r1 + str r0, [r2, #0x34] + ldr r1, [r5, #0x54] + movs r0, #0xc0 + lsls r0, r0, #6 + str r0, [r1, #0x20] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r3] +_0809C82A: + adds r4, r5, #0 + adds r4, #0x79 + ldrb r0, [r4] + subs r0, #1 + strb r0, [r4] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _0809C84A + ldr r0, _0809C850 @ =0x00000B43 + bl sub_08056378 + movs r0, #1 + strb r0, [r5, #0xd] + movs r0, #8 + strb r0, [r4] +_0809C84A: + pop {r4, r5, pc} + .align 2, 0 +_0809C84C: .4byte 0xFFFFF000 +_0809C850: .4byte 0x00000B43 + + thumb_func_start sub_0809C854 +sub_0809C854: @ 0x0809C854 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _0809C8A8 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0809C8B8 + adds r5, r4, #0 + adds r5, #0x79 + ldrb r0, [r5] + subs r0, #1 + strb r0, [r5] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _0809C8B8 + adds r0, r4, #0 + movs r1, #0x91 + movs r2, #7 + movs r3, #0 + bl sub_080A2988 + adds r1, r0, #0 + cmp r1, #0 + beq _0809C892 + ldrh r0, [r1, #0x32] + subs r0, #0x50 + strh r0, [r1, #0x32] + ldr r0, _0809C8AC @ =gUnk_03000BF0 + str r1, [r0, #0x30] +_0809C892: + ldrb r0, [r4, #0xf] + cmp r0, #2 + bhi _0809C8B0 + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #0x1e + strb r0, [r5] + movs r0, #0xe6 + bl sub_080A3268 + b _0809C8B8 + .align 2, 0 +_0809C8A8: .4byte gUnk_02000050 +_0809C8AC: .4byte gUnk_03000BF0 +_0809C8B0: + movs r0, #3 + strb r0, [r4, #0xd] + movs r0, #0x78 + strb r0, [r5] +_0809C8B8: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0809C8BC +sub_0809C8BC: @ 0x0809C8BC + push {lr} + adds r2, r0, #0 + adds r3, r2, #0 + adds r3, #0x79 + ldrb r0, [r3] + subs r1, r0, #1 + strb r1, [r3] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _0809C8E2 + movs r0, #1 + strb r0, [r2, #0xd] + movs r0, #0x1e + strb r0, [r3] + ldrb r0, [r2, #0xf] + adds r0, #1 + strb r0, [r2, #0xf] + b _0809C922 +_0809C8E2: + movs r0, #3 + ands r0, r1 + cmp r0, #1 + beq _0809C90A + cmp r0, #1 + bgt _0809C8F4 + cmp r0, #0 + beq _0809C8FE + b _0809C922 +_0809C8F4: + cmp r0, #2 + beq _0809C8FE + cmp r0, #3 + beq _0809C916 + b _0809C922 +_0809C8FE: + ldrh r1, [r2, #0x2e] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + adds r0, #8 + b _0809C920 +_0809C90A: + ldrh r1, [r2, #0x2e] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + adds r0, #4 + b _0809C920 +_0809C916: + ldrh r1, [r2, #0x2e] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + subs r0, #4 +_0809C920: + strh r0, [r2, #0x2e] +_0809C922: + pop {pc} + + thumb_func_start sub_0809C924 +sub_0809C924: @ 0x0809C924 + push {r4, r5, lr} + adds r5, r0, #0 + adds r1, r5, #0 + adds r1, #0x79 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _0809C948 + adds r0, r5, #0 + movs r1, #0x87 + movs r2, #6 + movs r3, #0 + bl sub_080A2988 + b _0809C980 +_0809C948: + movs r0, #4 + strb r0, [r5, #0xd] + movs r0, #0x3c + strb r0, [r1] + ldr r4, _0809C984 @ =0x00000115 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080ADF80 + ldr r0, [r5, #0x50] + adds r1, r4, #0 + bl sub_080ADF80 + adds r0, r5, #0 + movs r1, #0xef + bl sub_0801D2B4 + ldr r0, [r5, #0x50] + movs r1, #0xef + bl sub_0801D2B4 + adds r0, r5, #0 + movs r1, #0xef + bl sub_0809CC30 + movs r0, #0xe8 + bl sub_080A3268 +_0809C980: + pop {r4, r5, pc} + .align 2, 0 +_0809C984: .4byte 0x00000115 + + thumb_func_start sub_0809C988 +sub_0809C988: @ 0x0809C988 + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x79 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _0809C9AC + movs r0, #5 + strb r0, [r2, #0xd] + movs r0, #0xb4 + strb r0, [r1] + movs r0, #3 + strb r0, [r2, #0xb] + b _0809C9DC +_0809C9AC: + ldr r0, _0809C9C8 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _0809C9CC + adds r0, r2, #0 + adds r0, #0x84 + ldr r0, [r0] + ldr r1, [r0, #8] + adds r1, #0x76 + ldrh r0, [r1] + subs r0, #4 + b _0809C9DA + .align 2, 0 +_0809C9C8: .4byte gUnk_030010A0 +_0809C9CC: + adds r0, r2, #0 + adds r0, #0x84 + ldr r0, [r0] + ldr r1, [r0, #8] + adds r1, #0x76 + ldrh r0, [r1] + adds r0, #4 +_0809C9DA: + strh r0, [r1] +_0809C9DC: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0809C9E0 +sub_0809C9E0: @ 0x0809C9E0 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r0, _0809CA04 @ =gUnk_030010A0 + ldr r1, [r0] + movs r2, #2 + ands r1, r2 + adds r7, r0, #0 + cmp r1, #0 + beq _0809CA08 + adds r2, r4, #0 + adds r2, #0x84 + ldr r0, [r2] + ldr r1, [r0, #8] + adds r1, #0x76 + ldrh r0, [r1] + subs r0, #8 + b _0809CA16 + .align 2, 0 +_0809CA04: .4byte gUnk_030010A0 +_0809CA08: + adds r2, r4, #0 + adds r2, #0x84 + ldr r0, [r2] + ldr r1, [r0, #8] + adds r1, #0x76 + ldrh r0, [r1] + adds r0, #8 +_0809CA16: + strh r0, [r1] + adds r5, r2, #0 + ldr r0, [r7] + movs r6, #3 + ands r0, r6 + cmp r0, #0 + bne _0809CA30 + adds r0, r4, #0 + movs r1, #0x87 + movs r2, #2 + movs r3, #0 + bl sub_080A2988 +_0809CA30: + adds r2, r4, #0 + adds r2, #0x79 + ldrb r0, [r2] + adds r1, r0, #0 + cmp r1, #0 + bne _0809CA92 + ldr r0, [r4, #0x54] + adds r0, #0x62 + strb r1, [r0] + ldr r0, [r4, #0x54] + movs r1, #0x80 + lsls r1, r1, #2 + adds r2, #2 + ldrb r2, [r2] + rsbs r2, r2, #0 + bl sub_0806F62C + ldr r1, [r4, #0x54] + adds r0, r4, #0 + movs r2, #0x48 + bl sub_0806FC80 + cmp r0, #0 + beq _0809CAC4 + movs r0, #6 + strb r0, [r4, #0xd] + movs r1, #0 + movs r0, #0xc0 + strh r0, [r4, #0x24] + strb r1, [r4, #0xb] + strb r1, [r4, #0xf] + ldr r2, [r4, #0x54] + ldrb r1, [r2, #0x18] + subs r0, #0xc4 + ands r0, r1 + strb r0, [r2, #0x18] + ldr r0, [r5] + ldr r0, [r0, #8] + adds r0, #0x76 + movs r1, #0x80 + lsls r1, r1, #1 + strh r1, [r0] + ldr r1, [r5] + movs r0, #1 + strb r0, [r1] + movs r0, #0xed + bl sub_080A3268 + b _0809CAC4 +_0809CA92: + subs r0, #1 + strb r0, [r2] + ldr r0, [r7] + ands r0, r6 + cmp r0, #1 + beq _0809CAB4 + cmp r0, #1 + blo _0809CAAC + cmp r0, #2 + beq _0809CAAC + cmp r0, #3 + beq _0809CABC + b _0809CAC4 +_0809CAAC: + ldr r0, [r4, #0x54] + adds r0, #0x62 + movs r1, #0 + b _0809CAC2 +_0809CAB4: + ldr r0, [r4, #0x54] + adds r0, #0x62 + movs r1, #0xfc + b _0809CAC2 +_0809CABC: + ldr r0, [r4, #0x54] + adds r0, #0x62 + movs r1, #4 +_0809CAC2: + strb r1, [r0] +_0809CAC4: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0809CAC8 +sub_0809CAC8: @ 0x0809CAC8 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_0806F69C + ldr r2, _0809CB3C @ =gUnk_03000BF0 + ldrh r0, [r2, #8] + movs r1, #0xe4 + lsls r1, r1, #1 + adds r0, r0, r1 + movs r3, #0x32 + ldrsh r1, [r5, r3] + cmp r0, r1 + bge _0809CB26 + movs r0, #4 + strb r0, [r2, #0xe] + ldr r0, _0809CB40 @ =gUnk_03001160 + str r0, [r2, #0x30] + movs r0, #0x9b + bl sub_0807CCB4 + ldr r0, [r5, #0x50] + bl sub_0805E7BC + adds r4, r5, #0 + adds r4, #0x84 + ldr r0, [r4] + ldr r0, [r0, #8] + bl sub_0805E7BC + ldr r0, [r4] + ldr r0, [r0, #0x20] + bl sub_0805E7BC + ldr r0, [r4] + ldr r0, [r0, #0x24] + bl sub_0805E7BC + ldr r0, [r4] + ldr r0, [r0, #0x28] + bl sub_0805E7BC + ldr r0, [r4] + ldr r0, [r0, #0x2c] + bl sub_0805E7BC + movs r0, #7 + strb r0, [r5, #0xd] +_0809CB26: + ldr r0, _0809CB44 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _0809CB38 + ldr r0, _0809CB48 @ =0x00000163 + bl sub_080A3268 +_0809CB38: + pop {r4, r5, pc} + .align 2, 0 +_0809CB3C: .4byte gUnk_03000BF0 +_0809CB40: .4byte gUnk_03001160 +_0809CB44: .4byte gUnk_030010A0 +_0809CB48: .4byte 0x00000163 + + thumb_func_start sub_0809CB4C +sub_0809CB4C: @ 0x0809CB4C + push {lr} + ldr r0, _0809CB68 @ =gUnk_03000BF0 + ldrb r1, [r0, #0xf] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _0809CB66 + ldr r0, _0809CB6C @ =0x00000B44 + movs r1, #0 + bl sub_08078AA8 + bl sub_0805E780 +_0809CB66: + pop {pc} + .align 2, 0 +_0809CB68: .4byte gUnk_03000BF0 +_0809CB6C: .4byte 0x00000B44 + + thumb_func_start sub_0809CB70 +sub_0809CB70: @ 0x0809CB70 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + adds r6, r0, #0 + adds r4, r1, #0 + adds r5, r2, #0 + ldr r0, _0809CBE0 @ =gUnk_080C9160 + mov sb, r0 + lsls r0, r4, #1 + add r0, sb + movs r1, #0 + ldrsh r0, [r0, r1] + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + adds r1, r5, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x80 + lsls r1, r1, #1 + mov r8, r1 + bl sub_0806FA04 + ldr r1, [r6, #0x50] + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r1, #0x2c] + adds r1, r1, r0 + str r1, [r6, #0x2c] + adds r4, #0x40 + lsls r4, r4, #1 + add r4, sb + movs r1, #0 + ldrsh r0, [r4, r1] + adds r1, r5, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + mov r1, r8 + bl sub_0806FA04 + ldr r2, [r6, #0x50] + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r2, #0x30] + subs r1, r1, r0 + str r1, [r6, #0x30] + ldr r0, [r2, #0x34] + str r0, [r6, #0x34] + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, pc} + .align 2, 0 +_0809CBE0: .4byte gUnk_080C9160 + + thumb_func_start sub_0809CBE4 +sub_0809CBE4: @ 0x0809CBE4 + push {r4, lr} + adds r2, r0, #0 + adds r3, r2, #0 + adds r3, #0x79 + ldrb r0, [r2, #0xf] + ldrb r4, [r3] + adds r1, r0, r4 + strb r1, [r3] + ldrb r4, [r2, #0xf] + movs r0, #0xf + ldrsb r0, [r2, r0] + cmp r0, #0 + bge _0809CC16 + ldrb r0, [r2, #0xe] + lsls r1, r1, #0x18 + lsls r0, r0, #0x18 + cmn r1, r0 + bge _0809CC2C + rsbs r0, r4, #0 + strb r0, [r2, #0xf] + movs r0, #0xcf + lsls r0, r0, #1 + bl sub_080A3268 + b _0809CC2C +_0809CC16: + movs r0, #0 + ldrsb r0, [r3, r0] + ldrb r1, [r2, #0xe] + cmp r0, r1 + ble _0809CC2C + rsbs r0, r4, #0 + strb r0, [r2, #0xf] + movs r0, #0xcf + lsls r0, r0, #1 + bl sub_080A3268 +_0809CC2C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809CC30 +sub_0809CC30: @ 0x0809CC30 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + adds r4, #0x84 + ldr r0, [r4] + ldr r0, [r0, #8] + bl sub_0801D2B4 + movs r5, #0 +_0809CC42: + ldr r0, [r4] + lsls r1, r5, #2 + adds r0, #0x20 + adds r0, r0, r1 + ldr r0, [r0] + adds r1, r6, #0 + bl sub_0801D2B4 + adds r5, #1 + cmp r5, #3 + bls _0809CC42 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0809CC5C +sub_0809CC5C: @ 0x0809CC5C + push {lr} + ldr r2, _0809CC70 @ =gUnk_08123E20 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809CC70: .4byte gUnk_08123E20 + + thumb_func_start sub_0809CC74 +sub_0809CC74: @ 0x0809CC74 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #1 + strb r4, [r5, #0xc] + bl sub_08016A04 + ldrb r0, [r5, #0xa] + cmp r0, #0 + bne _0809CCD4 + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #5 + orrs r1, r0 + strb r1, [r2] + movs r4, #0 +_0809CC9A: + movs r0, #0x92 + movs r1, #1 + adds r2, r4, #0 + bl sub_080A2960 + adds r1, r0, #0 + adds r4, #1 + cmp r1, #0 + beq _0809CCBE + str r5, [r1, #0x50] + lsrs r2, r4, #1 + lsls r2, r2, #0x14 + ldr r0, _0809CCCC @ =0xFFF80000 + adds r2, r2, r0 + adds r0, r5, #0 + ldr r3, _0809CCD0 @ =0xFFF20000 + bl sub_0806FA48 +_0809CCBE: + cmp r4, #2 + bls _0809CC9A + adds r0, r5, #0 + bl sub_0809CDF0 + b _0809CD0A + .align 2, 0 +_0809CCCC: .4byte 0xFFF80000 +_0809CCD0: .4byte 0xFFF20000 +_0809CCD4: + ldrb r1, [r5, #0xb] + adds r0, r4, #0 + ands r0, r1 + cmp r0, #0 + beq _0809CCF2 + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #0x18] + movs r0, #0x14 + strb r0, [r5, #0xe] + b _0809CD02 +_0809CCF2: + movs r0, #2 + strb r0, [r5, #0xc] + ands r0, r1 + movs r1, #0x12 + cmp r0, #0 + beq _0809CD00 + movs r1, #0x14 +_0809CD00: + strb r1, [r5, #0xe] +_0809CD02: + adds r0, r5, #0 + movs r1, #0 + bl sub_08004260 +_0809CD0A: + pop {r4, r5, pc} + + thumb_func_start sub_0809CD0C +sub_0809CD0C: @ 0x0809CD0C + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _0809CDAC + adds r0, r4, #0 + bl sub_08004274 + adds r1, r4, #0 + adds r1, #0x5a + ldrb r2, [r1] + movs r0, #1 + ands r0, r2 + cmp r0, #0 + beq _0809CD36 + movs r0, #0xfe + ands r0, r2 + strb r0, [r1] + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] +_0809CD36: + ldrb r1, [r1] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809CD56 + adds r0, r4, #0 + adds r0, #0x59 + ldrb r0, [r0] + cmp r0, #1 + bne _0809CD56 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #6 + ands r0, r1 + strb r0, [r4, #0x18] +_0809CD56: + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _0809CDAC + ldr r5, _0809CDB0 @ =gUnk_03001160 + adds r6, r5, #0 + adds r6, #0x3d + movs r0, #0 + ldrsb r0, [r6, r0] + cmp r0, #0 + bne _0809CDAC + ldrb r0, [r4, #0x1e] + cmp r0, #0 + beq _0809CDAC + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #4 + bl sub_0806FC80 + cmp r0, #0 + beq _0809CDAC + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] + movs r0, #2 + rsbs r0, r0, #0 + bl sub_080526A0 + adds r0, r5, #0 + movs r1, #0x7a + bl sub_0800449C + movs r1, #0x10 + strb r1, [r6] + adds r0, r5, #0 + adds r0, #0x3e + strb r1, [r0] + adds r2, r5, #0 + adds r2, #0x42 + movs r0, #0xc + strb r0, [r2] + adds r0, r5, #0 + adds r0, #0x46 + strh r1, [r0] +_0809CDAC: + pop {r4, r5, r6, pc} + .align 2, 0 +_0809CDB0: .4byte gUnk_03001160 + + thumb_func_start sub_0809CDB4 +sub_0809CDB4: @ 0x0809CDB4 + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xe] + subs r0, #1 + strb r0, [r3, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0809CDEC + movs r2, #1 + movs r0, #1 + strb r0, [r3, #0xc] + movs r0, #0x1e + strb r0, [r3, #0xe] + strb r1, [r3, #0xf] + ldrb r1, [r3, #0x18] + subs r0, #0x22 + ands r0, r1 + orrs r0, r2 + strb r0, [r3, #0x18] + ldr r0, [r3, #0x50] + ldrh r0, [r0, #0x32] + subs r0, #0xe + strh r0, [r3, #0x32] + adds r0, r3, #0 + movs r1, #0 + bl sub_08004260 +_0809CDEC: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0809CDF0 +sub_0809CDF0: @ 0x0809CDF0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0809CE80 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r4, #0 + adds r0, #0x80 + strh r1, [r0] + ldrh r6, [r0] + ldr r0, _0809CE84 @ =0x0000402E + subs r1, r6, #1 + adds r4, #0x38 + ldrb r2, [r4] + bl sub_0800015E + ldr r5, _0809CE88 @ =0x00004022 + ldrb r2, [r4] + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0800015E + adds r1, r6, #1 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + adds r5, #4 + adds r1, r6, #0 + subs r1, #0x41 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + adds r1, r6, #0 + subs r1, #0x40 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldr r0, _0809CE8C @ =0x00004024 + adds r1, r6, #0 + subs r1, #0x3f + ldrb r2, [r4] + bl sub_0800015E + adds r1, r6, #0 + subs r1, #0x81 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + adds r1, r6, #0 + subs r1, #0x80 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + pop {r4, r5, r6, pc} + .align 2, 0 +_0809CE80: .4byte gUnk_03000BF0 +_0809CE84: .4byte 0x0000402E +_0809CE88: .4byte 0x00004022 +_0809CE8C: .4byte 0x00004024 + + thumb_func_start sub_0809CE90 +sub_0809CE90: @ 0x0809CE90 + push {lr} + ldr r2, _0809CEA4 @ =gUnk_08123E80 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809CEA4: .4byte gUnk_08123E80 + + thumb_func_start sub_0809CEA8 +sub_0809CEA8: @ 0x0809CEA8 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + pop {r4, pc} + + thumb_func_start sub_0809CEC0 +sub_0809CEC0: @ 0x0809CEC0 + push {lr} + bl sub_08004274 + pop {pc} + + thumb_func_start sub_0809CEC8 +sub_0809CEC8: @ 0x0809CEC8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0809CF06 + adds r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0809CEEE + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + b _0809CEF4 +_0809CEEE: + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 +_0809CEF4: + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + b _0809CF0C +_0809CF06: + adds r0, r4, #0 + bl sub_08004274 +_0809CF0C: + adds r4, #0x59 + ldrb r0, [r4] + cmp r0, #0xff + bne _0809CF20 + bl sub_08000E50 + movs r1, #0xf + ands r0, r1 + adds r0, #0x10 + strb r0, [r4] +_0809CF20: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809CF24 +sub_0809CF24: @ 0x0809CF24 + push {lr} + ldr r2, _0809CF38 @ =gUnk_08123EC0 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809CF38: .4byte gUnk_08123EC0 + + thumb_func_start sub_0809CF3C +sub_0809CF3C: @ 0x0809CF3C + push {lr} + ldr r2, _0809CF50 @ =gUnk_08123EEC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809CF50: .4byte gUnk_08123EEC + + thumb_func_start sub_0809CF54 +sub_0809CF54: @ 0x0809CF54 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #0x31 + strb r0, [r4, #0xe] + movs r0, #1 + strb r0, [r4, #0xf] + ldr r0, _0809CFDC @ =0xFFFE8000 + str r0, [r4, #0x20] + ldr r0, _0809CFE0 @ =0xFFC74000 + str r0, [r4, #0x34] + adds r1, r4, #0 + adds r1, #0x68 + movs r0, #0xf8 + lsls r0, r0, #8 + strh r0, [r1] + movs r0, #0xa0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + movs r0, #8 + strb r0, [r4, #0x15] + subs r1, #0x30 + movs r0, #2 + strb r0, [r1] + ldr r0, _0809CFE4 @ =gUnk_03000BF0 + ldrh r0, [r0, #0xa] + strh r0, [r4, #0x2e] + ldr r0, _0809CFE8 @ =0x00000123 + bl sub_080A3268 + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + movs r0, #0x95 + movs r1, #1 + movs r2, #0 + bl sub_080A2960 + adds r5, r0, #0 + cmp r5, #0 + beq _0809CFD8 + str r4, [r5, #0x50] + movs r3, #0x80 + lsls r3, r3, #0xc + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0 + bl sub_0806FA48 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FAB0 +_0809CFD8: + pop {r4, r5, pc} + .align 2, 0 +_0809CFDC: .4byte 0xFFFE8000 +_0809CFE0: .4byte 0xFFC74000 +_0809CFE4: .4byte gUnk_03000BF0 +_0809CFE8: .4byte 0x00000123 + + thumb_func_start sub_0809CFEC +sub_0809CFEC: @ 0x0809CFEC + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + adds r0, r4, #0 + adds r0, #0x68 + movs r2, #0 + ldrsh r1, [r0, r2] + adds r0, r4, #0 + bl sub_08003FC4 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0809D018 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _0809D026 + strb r0, [r4, #0xf] + b _0809D026 +_0809D018: + adds r0, r4, #0 + bl sub_080040A8 + cmp r0, #0 + bne _0809D026 + bl sub_0805E780 +_0809D026: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809D030 +sub_0809D030: @ 0x0809D030 + push {lr} + ldr r2, _0809D044 @ =gUnk_08123EF4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809D044: .4byte gUnk_08123EF4 + + thumb_func_start sub_0809D048 +sub_0809D048: @ 0x0809D048 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + movs r1, #0x17 + bl sub_080042AC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809D06C +sub_0809D06C: @ 0x0809D06C + push {lr} + ldr r2, _0809D080 @ =gUnk_08123EFC + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809D080: .4byte gUnk_08123EFC + + thumb_func_start sub_0809D084 +sub_0809D084: @ 0x0809D084 + push {lr} + adds r1, r0, #0 + ldr r0, [r1, #0x50] + cmp r0, #0 + beq _0809D0A8 + ldrb r2, [r0, #0xf] + cmp r2, #0 + beq _0809D0A0 + movs r3, #0x80 + lsls r3, r3, #0xc + movs r2, #0 + bl sub_0806FA48 + b _0809D0A8 +_0809D0A0: + ldrb r0, [r1, #0xd] + adds r0, #1 + strb r0, [r1, #0xd] + str r2, [r1, #0x20] +_0809D0A8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0809D0AC +sub_0809D0AC: @ 0x0809D0AC + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xc0 + lsls r1, r1, #5 + bl sub_080044EC + cmp r0, #1 + bhi _0809D0F0 + movs r2, #0 + movs r0, #2 + strb r0, [r4, #0xa] + movs r1, #1 + strb r1, [r4, #0xc] + str r2, [r4, #0x34] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + movs r0, #0x45 + bl sub_0807CCB4 + movs r0, #0x72 + bl sub_080A3268 + adds r0, r4, #0 + movs r1, #0x11 + movs r2, #0 + bl sub_080A29AC + adds r1, r0, #0 + cmp r1, #0 + beq _0809D0F0 + adds r0, r4, #0 + bl sub_0806FAD8 +_0809D0F0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809D0F4 +sub_0809D0F4: @ 0x0809D0F4 + push {lr} + ldr r2, _0809D108 @ =gUnk_08123F04 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809D108: .4byte gUnk_08123F04 + + thumb_func_start sub_0809D10C +sub_0809D10C: @ 0x0809D10C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + movs r1, #0x17 + bl sub_080042AC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809D130 +sub_0809D130: @ 0x0809D130 + push {lr} + adds r2, r0, #0 + ldr r0, _0809D148 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809D14C + adds r0, r2, #0 + bl sub_0800445C + b _0809D170 + .align 2, 0 +_0809D148: .4byte gUnk_03003F80 +_0809D14C: + adds r0, r2, #0 + bl sub_08017850 + cmp r0, #0 + beq _0809D170 + movs r0, #0x17 + movs r1, #0 + movs r2, #0 + bl sub_080A7C00 + ldr r0, _0809D174 @ =gUnk_02002A40 + ldr r1, [r0, #0x40] + movs r2, #0x80 + lsls r2, r2, #0x15 + orrs r1, r2 + str r1, [r0, #0x40] + bl sub_0805E780 +_0809D170: + pop {pc} + .align 2, 0 +_0809D174: .4byte gUnk_02002A40 + + thumb_func_start sub_0809D178 +sub_0809D178: @ 0x0809D178 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0809D19C + adds r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 + adds r1, r4, #0 + adds r1, #0x5a + movs r0, #0x80 + strb r0, [r1] +_0809D19C: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809D1E8 + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + adds r0, r4, #0 + bl sub_08004260 + bl sub_08000E50 + movs r1, #0xf + ands r0, r1 + adds r0, #0x10 + adds r1, r4, #0 + adds r1, #0x59 + strb r0, [r1] + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _0809D1EE + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x18] + b _0809D1EE +_0809D1E8: + adds r0, r4, #0 + bl sub_08004274 +_0809D1EE: + pop {r4, pc} + + thumb_func_start sub_0809D1F0 +sub_0809D1F0: @ 0x0809D1F0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + mov sb, r0 + cmp r0, #0 + beq _0809D224 + cmp r0, #1 + beq _0809D2B0 + bl sub_08078B48 + ldr r2, _0809D220 @ =gUnk_03001160 + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x18] + movs r1, #0x68 + adds r1, r1, r5 + mov r8, r1 + b _0809D3A8 + .align 2, 0 +_0809D220: .4byte gUnk_03001160 +_0809D224: + ldrb r1, [r5, #0xe] + cmp r1, #0 + beq _0809D234 + movs r0, #0xff + strb r0, [r5, #0x1e] + subs r0, r1, #1 + strb r0, [r5, #0xe] + b _0809D488 +_0809D234: + movs r1, #1 + strb r1, [r5, #0xc] + mov r2, sb + str r2, [r5, #0x20] + ldr r0, _0809D2A0 @ =0xFFEC0000 + str r0, [r5, #0x34] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r5, #0x24] + movs r0, #8 + strb r0, [r5, #0x15] + adds r0, r5, #0 + adds r0, #0x38 + strb r1, [r0] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldrb r2, [r5, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + strb r0, [r5, #0x19] + ldrb r0, [r5, #0x1b] + ands r1, r0 + movs r0, #0x40 + orrs r1, r0 + strb r1, [r5, #0x1b] + ldr r0, _0809D2A4 @ =gUnk_03000BF0 + ldrh r0, [r0, #0xa] + strh r0, [r5, #0x2e] + ldr r0, _0809D2A8 @ =gUnk_03001160 + ldrh r0, [r0, #0x32] + strh r0, [r5, #0x32] + mov r3, sb + str r3, [r5, #0x54] + adds r0, r5, #0 + movs r1, #6 + bl sub_0805E3A0 + adds r0, r5, #0 + movs r1, #0 + bl sub_080042AC + ldr r0, _0809D2AC @ =0x00000123 + bl sub_080A3268 + movs r0, #0x68 + adds r0, r0, r5 + mov r8, r0 + b _0809D3A8 + .align 2, 0 +_0809D2A0: .4byte 0xFFEC0000 +_0809D2A4: .4byte gUnk_03000BF0 +_0809D2A8: .4byte gUnk_03001160 +_0809D2AC: .4byte 0x00000123 +_0809D2B0: + ldr r6, _0809D430 @ =gUnk_03001160 + adds r0, r6, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r5, #0 + adds r0, #0x38 + strb r1, [r0] + ldrh r0, [r5, #0x24] + adds r0, #8 + strh r0, [r5, #0x24] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0xc0 + lsls r1, r1, #2 + mov sl, r1 + cmp r0, sl + ble _0809D2D6 + mov r2, sl + strh r2, [r5, #0x24] +_0809D2D6: + ldrb r1, [r6, #0x10] + movs r0, #0x80 + ands r0, r1 + movs r3, #0x68 + adds r3, r3, r5 + mov r8, r3 + cmp r0, #0 + beq _0809D3A8 + ldr r0, _0809D434 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0809D3A8 + ldrb r0, [r6, #0xc] + cmp r0, #0x1c + beq _0809D3A8 + cmp r0, #6 + beq _0809D3A8 + cmp r0, #9 + beq _0809D3A8 + ldr r7, _0809D438 @ =gUnk_03003F80 + adds r0, r7, #0 + adds r0, #0xa8 + ldrb r0, [r0] + cmp r0, #0x18 + beq _0809D3A8 + cmp r0, #0xb + beq _0809D3A8 + cmp r0, #8 + beq _0809D3A8 + bl sub_08079F8C + cmp r0, #0 + beq _0809D3A8 + adds r0, r5, #0 + adds r1, r6, #0 + movs r2, #0xe + movs r3, #0xe + bl sub_080041A0 + cmp r0, #0 + beq _0809D3A8 + movs r1, #0x36 + ldrsh r0, [r6, r1] + movs r2, #0x36 + ldrsh r1, [r5, r2] + subs r0, r0, r1 + subs r0, #8 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x1f + bhi _0809D3A8 + adds r0, r6, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _0809D3A8 + movs r0, #0x95 + movs r1, #0xa + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _0809D3A8 + str r4, [r5, #0x54] + movs r0, #2 + strb r0, [r5, #0xc] + movs r0, #8 + strb r0, [r5, #0xe] + mov r3, sl + strh r3, [r5, #0x24] + movs r0, #0xe0 + lsls r0, r0, #8 + mov r1, r8 + strh r0, [r1] + bl sub_08079184 + bl sub_08078B48 + bl sub_080791D0 + bl sub_08077B20 + adds r0, r7, #0 + adds r0, #0x26 + movs r2, #0 + strb r2, [r0] + strb r2, [r7, #2] + ldrb r1, [r6, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r6, #0x10] + ldrb r1, [r6, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r6, #0x18] + ldr r1, _0809D43C @ =gUnk_03003DC0 + movs r0, #6 + strb r0, [r1] + ldr r0, _0809D440 @ =gUnk_02034490 + mov r3, sb + strb r3, [r0] +_0809D3A8: + adds r0, r5, #0 + bl sub_0806F69C + mov r0, r8 + movs r2, #0 + ldrsh r1, [r0, r2] + adds r0, r5, #0 + bl sub_08003FC4 + adds r0, r5, #0 + bl sub_080042B8 + ldr r4, [r5, #0x54] + cmp r4, #0 + beq _0809D454 + ldr r2, _0809D430 @ =gUnk_03001160 + movs r3, #0x2e + ldrsh r1, [r2, r3] + movs r3, #0x2e + ldrsh r0, [r5, r3] + subs r0, #8 + cmp r1, r0 + bge _0809D3DA + movs r0, #0 + strb r0, [r5, #0xe] +_0809D3DA: + ldrb r0, [r5, #0xe] + cmp r0, #0 + bne _0809D448 + ldr r2, _0809D444 @ =0xFFF80000 + adds r0, r5, #0 + adds r1, r4, #0 + movs r3, #0 + bl sub_0806FA48 + ldrh r0, [r4, #0x36] + adds r0, #0x18 + strh r0, [r4, #0x36] + adds r0, r5, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + adds r3, r4, #0 + adds r3, #0x29 + lsrs r1, r1, #0x1d + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrb r2, [r5, #0x19] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r4, #0x19] + ldrb r0, [r5, #0x1b] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r4, #0x1b] + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #0x1b] + b _0809D454 + .align 2, 0 +_0809D430: .4byte gUnk_03001160 +_0809D434: .4byte gUnk_02000050 +_0809D438: .4byte gUnk_03003F80 +_0809D43C: .4byte gUnk_03003DC0 +_0809D440: .4byte gUnk_02034490 +_0809D444: .4byte 0xFFF80000 +_0809D448: + subs r0, #1 + strb r0, [r5, #0xe] + adds r0, r2, #0 + adds r1, r4, #0 + bl sub_0806FA24 +_0809D454: + adds r0, r5, #0 + bl sub_080040A8 + cmp r0, #0 + bne _0809D488 + ldrb r0, [r5, #0xc] + cmp r0, #2 + bne _0809D478 + ldr r0, _0809D494 @ =gUnk_02002A40 + ldr r1, [r0, #0x40] + movs r2, #0x80 + lsls r2, r2, #0x15 + orrs r1, r2 + str r1, [r0, #0x40] + movs r0, #9 + movs r1, #0 + bl sub_080A7138 +_0809D478: + ldr r4, [r5, #0x54] + cmp r4, #0 + beq _0809D484 + adds r0, r4, #0 + bl sub_0805E79C +_0809D484: + bl sub_0805E780 +_0809D488: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809D494: .4byte gUnk_02002A40 + + thumb_func_start sub_0809D498 +sub_0809D498: @ 0x0809D498 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _0809D548 + movs r2, #1 + movs r3, #1 + strb r3, [r5, #0xc] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + ldr r0, _0809D534 @ =0xFFFD8000 + str r0, [r5, #0x20] + ldr r0, _0809D538 @ =0xFFB4C000 + str r0, [r5, #0x34] + adds r4, r5, #0 + adds r4, #0x68 + movs r0, #0xf0 + lsls r0, r0, #8 + strh r0, [r4] + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r5, #0x24] + movs r0, #8 + strb r0, [r5, #0x15] + adds r0, r5, #0 + adds r0, #0x38 + strb r3, [r0] + adds r6, r5, #0 + adds r6, #0x29 + ldrb r1, [r6] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r6] + ldrb r2, [r5, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + strb r0, [r5, #0x19] + ldrb r0, [r5, #0x1b] + ands r1, r0 + movs r0, #0x40 + orrs r1, r0 + strb r1, [r5, #0x1b] + adds r0, r5, #0 + movs r1, #6 + bl sub_0805E3A0 + ldr r0, _0809D53C @ =gUnk_03000BF0 + ldrh r0, [r0, #0xa] + strh r0, [r5, #0x2e] + ldr r0, _0809D540 @ =gUnk_03001160 + ldrh r0, [r0, #0x32] + strh r0, [r5, #0x32] + ldr r0, _0809D544 @ =0x00000123 + bl sub_080A3268 + ldrb r1, [r6] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r6] + adds r0, r5, #0 + movs r1, #0 + bl sub_080042AC + bl sub_08078B48 + adds r7, r4, #0 + b _0809D62E + .align 2, 0 +_0809D534: .4byte 0xFFFD8000 +_0809D538: .4byte 0xFFB4C000 +_0809D53C: .4byte gUnk_03000BF0 +_0809D540: .4byte gUnk_03001160 +_0809D544: .4byte 0x00000123 +_0809D548: + adds r7, r5, #0 + adds r7, #0x68 + cmp r0, #1 + bne _0809D62E + ldr r6, _0809D658 @ =gUnk_03001160 + ldrb r1, [r6, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + mov r8, r0 + ands r0, r1 + strb r0, [r6, #0x18] + ldr r4, [r5, #0x54] + cmp r4, #0 + beq _0809D5B0 + ldr r2, _0809D65C @ =0xFFF80000 + adds r0, r5, #0 + adds r1, r4, #0 + movs r3, #0 + bl sub_0806FA48 + ldrh r0, [r4, #0x36] + adds r0, #0x18 + strh r0, [r4, #0x36] + adds r0, r5, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + adds r3, r4, #0 + adds r3, #0x29 + lsrs r1, r1, #0x1d + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrb r2, [r5, #0x19] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r4, #0x19] + ldrb r0, [r5, #0x1b] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r4, #0x1b] + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #0x1b] +_0809D5B0: + bl sub_08078B48 + ldr r3, _0809D660 @ =gUnk_03000BF0 + movs r1, #0xa + ldrsh r0, [r3, r1] + adds r0, #0x78 + movs r2, #0x2e + ldrsh r1, [r5, r2] + cmp r0, r1 + bge _0809D62E + ldrb r0, [r5, #0xc] + adds r0, #1 + strb r0, [r5, #0xc] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + cmp r4, #0 + beq _0809D5E6 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] +_0809D5E6: + str r6, [r3, #0x30] + ldrb r1, [r6, #0x18] + mov r0, r8 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r6, #0x18] + bl sub_080791D0 + bl sub_0805E564 + ldr r1, _0809D664 @ =gUnk_02034490 + movs r0, #0 + strb r0, [r1] + movs r0, #0x52 + bl sub_0807CC30 + cmp r0, #0 + bne _0809D62E + movs r0, #0x69 + movs r1, #0 + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _0809D62E + ldr r1, _0809D668 @ =gUnk_0800B0AC + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] + movs r0, #0x52 + bl sub_0807CD04 +_0809D62E: + adds r0, r5, #0 + bl sub_0806F69C + movs r0, #0 + ldrsh r1, [r7, r0] + adds r0, r5, #0 + bl sub_08003FC4 + adds r0, r5, #0 + bl sub_080042B8 + adds r0, r5, #0 + bl sub_080040A8 + cmp r0, #0 + bne _0809D652 + bl sub_0805E780 +_0809D652: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809D658: .4byte gUnk_03001160 +_0809D65C: .4byte 0xFFF80000 +_0809D660: .4byte gUnk_03000BF0 +_0809D664: .4byte gUnk_02034490 +_0809D668: .4byte gUnk_0800B0AC + + thumb_func_start sub_0809D66C +sub_0809D66C: @ 0x0809D66C + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0809D694 @ =gUnk_03001160 + ldrb r1, [r0, #0x1a] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1c + ldrb r2, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1a] + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _0809D6EC + cmp r0, #1 + bgt _0809D698 + cmp r0, #0 + beq _0809D6A2 + b _0809D6FE + .align 2, 0 +_0809D694: .4byte gUnk_03001160 +_0809D698: + cmp r0, #2 + beq _0809D6F4 + cmp r0, #3 + beq _0809D6FA + b _0809D6FE +_0809D6A2: + movs r3, #1 + movs r2, #1 + strb r2, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r3 + strb r0, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x38 + strb r2, [r0] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldrb r2, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + strb r0, [r4, #0x19] + ldrb r0, [r4, #0x1b] + ands r1, r0 + movs r0, #0x40 + orrs r1, r0 + strb r1, [r4, #0x1b] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #0xe0 + bl sub_080042AC +_0809D6EC: + adds r0, r4, #0 + bl sub_080042B8 + b _0809D6FE +_0809D6F4: + movs r0, #3 + strb r0, [r4, #0xc] + b _0809D6FE +_0809D6FA: + bl sub_0805E780 +_0809D6FE: + pop {r4, pc} + + thumb_func_start sub_0809D700 +sub_0809D700: @ 0x0809D700 + push {r4, lr} + sub sp, #4 + bl sub_08052654 + cmp r0, #0 + beq _0809D732 + movs r0, #0 + str r0, [sp] + movs r0, #6 + movs r1, #0x95 + movs r2, #6 + movs r3, #8 + bl sub_0805EB2C + adds r4, r0, #0 + cmp r4, #0 + bne _0809D732 + movs r0, #0x95 + movs r1, #8 + movs r2, #0 + bl sub_080A2960 + cmp r0, #0 + beq _0809D732 + strb r4, [r0, #0xe] +_0809D732: + add sp, #4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809D738 +sub_0809D738: @ 0x0809D738 + push {r4, lr} + movs r0, #0x95 + movs r1, #9 + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _0809D77C + ldr r1, _0809D774 @ =gUnk_03000BF0 + movs r0, #0 + str r0, [r1, #0x30] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + bl sub_0805E544 + movs r0, #0x95 + movs r1, #0xa + movs r2, #0 + bl sub_080A2960 + cmp r0, #0 + beq _0809D76C + str r0, [r4, #0x54] +_0809D76C: + ldr r1, _0809D778 @ =gUnk_02034490 + movs r0, #1 + strb r0, [r1] + b _0809D780 + .align 2, 0 +_0809D774: .4byte gUnk_03000BF0 +_0809D778: .4byte gUnk_02034490 +_0809D77C: + bl sub_080791D0 +_0809D780: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809D784 +sub_0809D784: @ 0x0809D784 + push {lr} + ldr r1, _0809D7A0 @ =gUnk_081240B0 + ldrb r3, [r0, #0xc] + lsls r3, r3, #2 + adds r3, r3, r1 + ldrb r1, [r0, #0xa] + lsls r1, r1, #5 + ldr r2, _0809D7A4 @ =gUnk_08123FB0 + adds r1, r1, r2 + ldr r2, [r3] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_0809D7A0: .4byte gUnk_081240B0 +_0809D7A4: .4byte gUnk_08123FB0 + + thumb_func_start sub_0809D7A8 +sub_0809D7A8: @ 0x0809D7A8 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + adds r0, #1 + movs r4, #0 + strb r0, [r5, #0xc] + adds r2, r5, #0 + adds r2, #0x38 + movs r0, #2 + strb r0, [r2] + ldrb r2, [r5, #0x19] + movs r0, #0x3f + ands r0, r2 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r5, #0x19] + ldr r0, [r1, #0x10] + str r0, [r5, #0x20] + ldrb r3, [r1, #0xf] + strb r3, [r5, #0x15] + ldrh r0, [r1, #0x18] + strh r0, [r5, #0x24] + ldrh r0, [r5, #0x32] + ldrh r2, [r1, #0x1a] + subs r0, r0, r2 + strh r0, [r5, #0x32] + str r4, [r5, #0x34] + ldrb r0, [r1, #0x1e] + strb r0, [r5, #0xe] + movs r0, #0x80 + ands r0, r3 + cmp r0, #0 + beq _0809D80C + ldrb r0, [r5, #0x15] + cmp r0, #0x81 + bne _0809D80C + bl sub_08000E50 + ldr r1, _0809D820 @ =gUnk_03001160 + ldrb r1, [r1, #0x14] + lsls r1, r1, #2 + movs r2, #3 + ands r0, r2 + adds r1, r1, r0 + subs r1, #2 + movs r0, #0x1f + ands r1, r0 + movs r0, #0x10 + eors r1, r0 + strb r1, [r5, #0x15] +_0809D80C: + adds r0, r5, #0 + bl sub_08016A04 + ldrb r4, [r5, #0xa] + adds r0, r5, #0 + bl sub_08080CB4 + strb r4, [r5, #0xa] + pop {r4, r5, pc} + .align 2, 0 +_0809D820: .4byte gUnk_03001160 + + thumb_func_start sub_0809D824 +sub_0809D824: @ 0x0809D824 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + movs r0, #1 + ldr r2, [r6, #4] + cmp r2, #0 + beq _0809D838 + adds r0, r5, #0 + bl _call_via_r2 +_0809D838: + cmp r0, #0 + beq _0809D850 + ldrb r0, [r5, #0xc] + adds r0, #1 + strb r0, [r5, #0xc] + ldrh r1, [r6, #0x1a] + ldrh r2, [r5, #0x32] + adds r0, r1, r2 + strh r0, [r5, #0x32] + ldrh r0, [r5, #0x36] + subs r0, r0, r1 + strh r0, [r5, #0x36] +_0809D850: + ldrb r4, [r5, #0xa] + ldrb r0, [r6, #0xd] + strb r0, [r5, #0xa] + adds r0, r5, #0 + bl sub_08080CB4 + strb r4, [r5, #0xa] + pop {r4, r5, r6, pc} + + thumb_func_start sub_0809D860 +sub_0809D860: @ 0x0809D860 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + bl sub_0806F69C + ldr r1, [r6, #0x14] + adds r0, r5, #0 + bl sub_080044EC + cmp r0, #1 + bhi _0809D8B2 + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _0809D888 + subs r0, #1 + strb r0, [r5, #0xe] + ldr r0, [r6, #0x14] + lsls r0, r0, #3 + str r0, [r5, #0x20] + b _0809D8AC +_0809D888: + ldrb r0, [r5, #0xc] + adds r0, #1 + strb r0, [r5, #0xc] + ldr r0, _0809D8C4 @ =gUnk_03001160 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r5, #0 + adds r0, #0x38 + strb r1, [r0] + adds r0, r5, #0 + bl sub_08016A04 + ldr r1, [r6] + cmp r1, #0 + beq _0809D8AC + adds r0, r5, #0 + bl _call_via_r1 +_0809D8AC: + movs r0, #0x6e + bl sub_080A3268 +_0809D8B2: + ldrb r4, [r5, #0xa] + ldrb r0, [r6, #0xd] + strb r0, [r5, #0xa] + adds r0, r5, #0 + bl sub_08080CB4 + strb r4, [r5, #0xa] + pop {r4, r5, r6, pc} + .align 2, 0 +_0809D8C4: .4byte gUnk_03001160 + + thumb_func_start sub_0809D8C8 +sub_0809D8C8: @ 0x0809D8C8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + ldr r0, _0809D8E4 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809D8E8 + adds r0, r5, #0 + bl sub_0800445C + b _0809D90A + .align 2, 0 +_0809D8E4: .4byte gUnk_03003F80 +_0809D8E8: + adds r0, r5, #0 + bl sub_08017850 + cmp r0, #0 + beq _0809D90A + ldrb r0, [r6, #0xd] + ldrb r1, [r5, #0xb] + movs r2, #0 + bl sub_080A7C00 + ldrh r0, [r6, #0x1c] + cmp r0, #0 + beq _0809D906 + bl sub_0807CCC8 +_0809D906: + bl sub_0805E780 +_0809D90A: + ldrb r4, [r5, #0xa] + ldrb r0, [r6, #0xd] + strb r0, [r5, #0xa] + adds r0, r5, #0 + bl sub_08080CB4 + strb r4, [r5, #0xa] + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0809D91C +sub_0809D91C: @ 0x0809D91C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x11 + movs r2, #0 + bl sub_080A29AC + adds r1, r0, #0 + cmp r1, #0 + beq _0809D934 + adds r0, r4, #0 + bl sub_0806FAD8 +_0809D934: + movs r0, #0x72 + bl sub_080A3268 + pop {r4, pc} + + thumb_func_start sub_0809D93C +sub_0809D93C: @ 0x0809D93C + push {r4, r5, lr} + adds r4, r0, #0 + adds r3, r1, #0 + ldr r2, _0809D9A0 @ =gUnk_03001160 + ldrb r0, [r2, #0xc] + cmp r0, #6 + bne _0809D9A4 + ldrb r0, [r3, #0xc] + ldrb r1, [r2, #0x14] + asrs r0, r1 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0809D9A4 + movs r5, #0x2e + ldrsh r0, [r2, r5] + movs r5, #0x2e + ldrsh r1, [r4, r5] + subs r0, r0, r1 + movs r1, #8 + ldrsb r1, [r3, r1] + adds r0, r0, r1 + ldrb r1, [r3, #0xa] + adds r0, r0, r1 + lsls r1, r1, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r1, r0 + ble _0809D9A4 + movs r0, #0x32 + ldrsh r2, [r2, r0] + movs r1, #0x32 + ldrsh r0, [r4, r1] + movs r4, #0x1a + ldrsh r1, [r3, r4] + adds r0, r0, r1 + subs r2, r2, r0 + movs r0, #9 + ldrsb r0, [r3, r0] + adds r2, r2, r0 + ldrb r1, [r3, #0xb] + adds r0, r2, r1 + lsls r1, r1, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r1, r0 + ble _0809D9A4 + movs r0, #1 + b _0809D9A6 + .align 2, 0 +_0809D9A0: .4byte gUnk_03001160 +_0809D9A4: + movs r0, #0 +_0809D9A6: + pop {r4, r5, pc} + + thumb_func_start sub_0809D9A8 +sub_0809D9A8: @ 0x0809D9A8 + push {lr} + ldr r2, _0809D9BC @ =gUnk_081240C0 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809D9BC: .4byte gUnk_081240C0 + + thumb_func_start sub_0809D9C0 +sub_0809D9C0: @ 0x0809D9C0 + push {lr} + ldr r2, _0809D9D4 @ =gUnk_081240D8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809D9D4: .4byte gUnk_081240D8 + + thumb_func_start sub_0809D9D8 +sub_0809D9D8: @ 0x0809D9D8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + movs r2, #0 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + movs r0, #0x1e + strb r0, [r4, #0xe] + strb r2, [r4, #0xf] + ldrb r1, [r4, #0x19] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x19] + strh r2, [r4, #0x24] + movs r0, #0x18 + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC + adds r0, r4, #0 + movs r1, #6 + bl sub_0805EB64 + cmp r0, #0 + beq _0809DA1E + str r4, [r0, #0x50] + str r0, [r4, #0x54] + b _0809DA28 +_0809DA1E: + movs r0, #0x20 + bl sub_0807CD04 + bl sub_0805E780 +_0809DA28: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809DA2C +sub_0809DA2C: @ 0x0809DA2C + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809DA5C + ldrb r0, [r1, #0xc] + adds r0, #1 + strb r0, [r1, #0xc] + ldr r0, [r1, #0x30] + movs r2, #0x80 + lsls r2, r2, #0xd + adds r0, r0, r2 + str r0, [r1, #0x30] + ldr r0, [r1, #0x34] + ldr r2, _0809DA60 @ =0xFFF00000 + adds r0, r0, r2 + str r0, [r1, #0x34] + adds r0, r1, #0 + movs r1, #3 + bl sub_080042AC +_0809DA5C: + pop {pc} + .align 2, 0 +_0809DA60: .4byte 0xFFF00000 + + thumb_func_start sub_0809DA64 +sub_0809DA64: @ 0x0809DA64 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, [r5, #0x54] + adds r1, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + adds r0, r5, #0 + bl sub_0809E1C8 + adds r0, r5, #0 + bl sub_0809E1F0 + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r0, #0x32 + ldrsh r2, [r4, r0] + adds r0, r5, #0 + bl sub_080041DC + lsls r0, r0, #4 + movs r2, #0x24 + ldrsh r1, [r5, r2] + cmp r0, r1 + bge _0809DAAC + ldrb r0, [r5, #0xc] + adds r0, #1 + strb r0, [r5, #0xc] + movs r0, #0x10 + strb r0, [r5, #0xe] + movs r0, #1 + strb r0, [r5, #0xf] + adds r0, r5, #0 + movs r1, #2 + bl sub_080042AC +_0809DAAC: + adds r0, r5, #0 + bl sub_080042B8 + pop {r4, r5, pc} + + thumb_func_start sub_0809DAB4 +sub_0809DAB4: @ 0x0809DAB4 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _0809DB10 @ =gUnk_03000BF0 + ldrh r1, [r5, #6] + adds r1, #0x78 + ldrh r2, [r5, #8] + adds r2, #0xa8 + bl sub_080045B4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_0809E1C8 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0809DADE + subs r0, #1 + strb r0, [r4, #0xe] + ldrh r0, [r4, #0x24] + subs r0, #0x80 + strh r0, [r4, #0x24] +_0809DADE: + adds r0, r4, #0 + bl sub_0809E1F0 + ldrh r1, [r5, #6] + adds r1, #0x78 + ldrh r2, [r5, #8] + adds r2, #0xa8 + adds r0, r4, #0 + bl sub_080041DC + lsls r0, r0, #4 + movs r2, #0x24 + ldrsh r1, [r4, r2] + cmp r0, r1 + bge _0809DB02 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] +_0809DB02: + adds r0, r4, #0 + bl sub_0809E210 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + .align 2, 0 +_0809DB10: .4byte gUnk_03000BF0 + + thumb_func_start sub_0809DB14 +sub_0809DB14: @ 0x0809DB14 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0809E1F0 + adds r0, r4, #0 + bl sub_080040A8 + adds r5, r0, #0 + cmp r5, #0 + bne _0809DB36 + movs r0, #0x20 + bl sub_0807CD04 + ldr r0, [r4, #0x54] + str r5, [r0, #0x50] + bl sub_0805E780 +_0809DB36: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0809DB40 +sub_0809DB40: @ 0x0809DB40 + push {lr} + ldr r2, _0809DB54 @ =gUnk_081240EC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809DB54: .4byte gUnk_081240EC + + thumb_func_start sub_0809DB58 +sub_0809DB58: @ 0x0809DB58 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + ldrb r1, [r4, #0x19] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + movs r1, #0x3c + bl sub_080042AC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809DB88 +sub_0809DB88: @ 0x0809DB88 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, [r5, #0x50] + cmp r4, #0 + beq _0809DBC4 + ldr r0, [r4, #4] + cmp r0, #0 + bne _0809DB9C + bl sub_0805E780 +_0809DB9C: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0809DBB0 + movs r3, #0x80 + lsls r3, r3, #0xc + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0 + bl sub_0806FA48 +_0809DBB0: + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + ldrb r2, [r5, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r5, #0x18] + b _0809DBC8 +_0809DBC4: + bl sub_0805E780 +_0809DBC8: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0809DBCC +sub_0809DBCC: @ 0x0809DBCC + push {lr} + ldr r2, _0809DBE0 @ =gUnk_081240F4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809DBE0: .4byte gUnk_081240F4 + + thumb_func_start sub_0809DBE4 +sub_0809DBE4: @ 0x0809DBE4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0809DB58 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #0x18 + strb r0, [r4, #0x15] + adds r0, #0xe8 + strh r0, [r4, #0x24] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + movs r0, #1 + strb r0, [r4, #0xe] + movs r0, #0x6e + bl sub_080A3268 + pop {r4, pc} + + thumb_func_start sub_0809DC14 +sub_0809DC14: @ 0x0809DC14 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #1 + bhi _0809DC5A + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0809DC3C + subs r0, #1 + strb r0, [r4, #0xe] + movs r0, #0x80 + lsls r0, r0, #9 + str r0, [r4, #0x20] + b _0809DC54 +_0809DC3C: + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldr r0, _0809DC64 @ =gUnk_03001160 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + adds r0, r4, #0 + bl sub_08016A04 +_0809DC54: + movs r0, #0x6e + bl sub_080A3268 +_0809DC5A: + adds r0, r4, #0 + bl sub_0809DB88 + pop {r4, pc} + .align 2, 0 +_0809DC64: .4byte gUnk_03001160 + + thumb_func_start sub_0809DC68 +sub_0809DC68: @ 0x0809DC68 + push {lr} + ldr r2, _0809DC7C @ =gUnk_08124100 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809DC7C: .4byte gUnk_08124100 + + thumb_func_start sub_0809DC80 +sub_0809DC80: @ 0x0809DC80 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + movs r3, #0 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + movs r0, #0x1e + strb r0, [r4, #0xe] + movs r0, #1 + strb r0, [r4, #0xf] + ldrb r1, [r4, #0x19] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x19] + movs r2, #0 + strh r3, [r4, #0x24] + movs r0, #0x18 + strb r0, [r4, #0x15] + ldr r0, [r4, #0x30] + movs r1, #0x80 + lsls r1, r1, #0xd + adds r0, r0, r1 + str r0, [r4, #0x30] + ldr r0, [r4, #0x34] + ldr r1, _0809DCFC @ =0xFFF00000 + adds r0, r0, r1 + str r0, [r4, #0x34] + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x68 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x6a + strh r0, [r1] + adds r0, r4, #0 + adds r0, #0x6c + strh r3, [r0] + adds r0, #2 + strb r2, [r0] + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + movs r1, #3 + bl sub_080042AC + adds r0, r4, #0 + movs r1, #6 + bl sub_0805EB64 + cmp r0, #0 + beq _0809DD00 + str r4, [r0, #0x50] + str r0, [r4, #0x54] + b _0809DD0A + .align 2, 0 +_0809DCFC: .4byte 0xFFF00000 +_0809DD00: + movs r0, #0x20 + bl sub_0807CD04 + bl sub_0805E780 +_0809DD0A: + pop {r4, pc} + + thumb_func_start sub_0809DD0C +sub_0809DD0C: @ 0x0809DD0C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809DD2A + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xa3 + lsls r0, r0, #1 + bl sub_080A3268 +_0809DD2A: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809DD34 +sub_0809DD34: @ 0x0809DD34 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x6e + ldrb r0, [r1] + adds r0, #8 + strb r0, [r1] + subs r1, #2 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x20 + bls _0809DD64 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x20 + strh r0, [r1] + movs r0, #0xa3 + lsls r0, r0, #1 + bl sub_080A3268 +_0809DD64: + adds r0, r4, #0 + bl sub_0809E238 + adds r0, r4, #0 + bl sub_0809E29C + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + + thumb_func_start sub_0809DD78 +sub_0809DD78: @ 0x0809DD78 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x6e + ldrb r0, [r1] + adds r0, #8 + strb r0, [r1] + subs r1, #2 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0809DDA8 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #0x5f + ands r0, r1 + strb r0, [r4, #0x18] + b _0809DDB4 +_0809DDA8: + adds r0, r4, #0 + bl sub_0809E238 + adds r0, r4, #0 + bl sub_0809E29C +_0809DDB4: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + + thumb_func_start sub_0809DDBC +sub_0809DDBC: @ 0x0809DDBC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809DDD8 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldr r0, _0809DDE0 @ =0x0000015B + bl sub_080A3268 +_0809DDD8: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 +_0809DDE0: .4byte 0x0000015B + + thumb_func_start sub_0809DDE4 +sub_0809DDE4: @ 0x0809DDE4 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _0809DE34 @ =gUnk_03000BF0 + ldrh r1, [r0, #6] + adds r1, #0x40 + ldrh r2, [r0, #8] + movs r0, #0xbc + lsls r0, r0, #1 + adds r2, r2, r0 + adds r0, r4, #0 + bl sub_080045B4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_0809E1C8 + adds r0, r4, #0 + bl sub_0809E1F0 + adds r0, r4, #0 + bl sub_0809E210 + adds r0, r4, #0 + bl sub_080040A8 + adds r5, r0, #0 + cmp r5, #0 + bne _0809DE2A + movs r0, #0x20 + bl sub_0807CD04 + ldr r0, [r4, #0x54] + str r5, [r0, #0x50] + bl sub_0805E780 +_0809DE2A: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + .align 2, 0 +_0809DE34: .4byte gUnk_03000BF0 + + thumb_func_start sub_0809DE38 +sub_0809DE38: @ 0x0809DE38 + push {lr} + ldr r2, _0809DE4C @ =gUnk_08124118 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809DE4C: .4byte gUnk_08124118 + + thumb_func_start sub_0809DE50 +sub_0809DE50: @ 0x0809DE50 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + movs r2, #0 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + movs r0, #0xa + strb r0, [r4, #0xe] + strb r2, [r4, #0xf] + ldrb r1, [r4, #0x19] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x19] + strh r2, [r4, #0x24] + ldr r1, _0809DEEC @ =gUnk_0812412D + ldrb r0, [r4, #0xb] + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r4, #0x15] + ldrb r1, [r4, #0xb] + lsls r1, r1, #2 + ldr r0, _0809DEF0 @ =gUnk_08124132 + adds r1, r1, r0 + ldr r2, _0809DEF4 @ =gUnk_03000BF0 + ldrh r0, [r1] + ldrh r3, [r2, #6] + adds r0, r0, r3 + strh r0, [r4, #0x2e] + ldrh r0, [r1, #2] + ldrh r2, [r2, #8] + adds r0, r0, r2 + adds r0, #0x40 + strh r0, [r4, #0x32] + ldr r0, _0809DEF8 @ =0x0000FFC0 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_08016A04 + ldr r1, _0809DEFC @ =gUnk_08124128 + ldrb r0, [r4, #0xb] + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080042AC + movs r0, #0x97 + movs r1, #1 + movs r2, #0 + bl sub_080A2960 + adds r5, r0, #0 + cmp r5, #0 + beq _0809DEE8 + str r4, [r5, #0x50] + str r5, [r4, #0x54] + movs r3, #0x80 + lsls r3, r3, #0xc + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0 + bl sub_0806FA48 + movs r1, #0x10 + ldrb r0, [r4, #0x15] + cmp r0, #0x18 + bne _0809DEE2 + rsbs r1, r1, #0 +_0809DEE2: + ldrh r0, [r5, #0x2e] + adds r0, r0, r1 + strh r0, [r5, #0x2e] +_0809DEE8: + pop {r4, r5, pc} + .align 2, 0 +_0809DEEC: .4byte gUnk_0812412D +_0809DEF0: .4byte gUnk_08124132 +_0809DEF4: .4byte gUnk_03000BF0 +_0809DEF8: .4byte 0x0000FFC0 +_0809DEFC: .4byte gUnk_08124128 + + thumb_func_start sub_0809DF00 +sub_0809DF00: @ 0x0809DF00 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xb] + bl sub_0809E2C4 + cmp r0, #1 + beq _0809DF16 + cmp r0, #2 + beq _0809DF64 + movs r0, #0xa + b _0809DF96 +_0809DF16: + ldrb r0, [r4, #0xc] + adds r0, #2 + strb r0, [r4, #0xc] + movs r0, #0xff + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] + adds r1, #2 + adds r0, r4, #0 + bl sub_080042AC + ldr r0, _0809DF60 @ =0x00000123 + bl sub_080A3268 + ldr r5, [r4, #0x54] + cmp r5, #0 + beq _0809DF98 + ldrb r1, [r4, #0xb] + adds r1, #2 + movs r0, #0x96 + movs r2, #0 + bl sub_080A2960 + adds r1, r0, #0 + cmp r1, #0 + beq _0809DF52 + adds r0, r5, #0 + bl sub_0806FA24 +_0809DF52: + adds r0, r5, #0 + bl sub_0805E79C + movs r0, #0 + str r0, [r4, #0x54] + b _0809DF98 + .align 2, 0 +_0809DF60: .4byte 0x00000123 +_0809DF64: + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _0809DF94 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] + adds r1, #2 + adds r0, r4, #0 + bl sub_080042AC + ldr r0, _0809DF8C @ =0x00000123 + bl sub_080A3268 + ldr r0, _0809DF90 @ =0x000001F3 + bl sub_080A3268 + b _0809DF98 + .align 2, 0 +_0809DF8C: .4byte 0x00000123 +_0809DF90: .4byte 0x000001F3 +_0809DF94: + subs r0, #1 +_0809DF96: + strb r0, [r4, #0xe] +_0809DF98: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + + thumb_func_start sub_0809DFA0 +sub_0809DFA0: @ 0x0809DFA0 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x54] + cmp r0, #0 + beq _0809DFD6 + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r2, #0x2e + ldrsh r0, [r4, r2] + subs r1, r1, r0 + ldrb r0, [r4, #0x15] + lsls r0, r0, #0xb + eors r1, r0 + movs r0, #0x80 + lsls r0, r0, #8 + ands r1, r0 + cmp r1, #0 + beq _0809DFD6 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #1 + strb r0, [r4, #0xf] + movs r0, #0x81 + lsls r0, r0, #1 + bl sub_080A3268 +_0809DFD6: + adds r0, r4, #0 + bl sub_0809DFE0 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809DFE0 +sub_0809DFE0: @ 0x0809DFE0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080040A8 + cmp r0, #0 + bne _0809E028 + ldr r1, [r4, #0x54] + cmp r1, #0 + beq _0809DFF4 + str r0, [r1, #0x50] +_0809DFF4: + ldrb r1, [r4, #0xe] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _0809E008 + bl sub_0805E780 + b _0809E034 +_0809E008: + strb r0, [r4, #0xc] + bl sub_08000E50 + ldr r2, _0809E024 @ =gUnk_08124146 + movs r1, #1 + ands r1, r0 + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r1, r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4, #0xb] + b _0809E034 + .align 2, 0 +_0809E024: .4byte gUnk_08124146 +_0809E028: + adds r0, r4, #0 + bl sub_0809E1F0 + adds r0, r4, #0 + bl sub_080042B8 +_0809E034: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809E038 +sub_0809E038: @ 0x0809E038 + push {lr} + ldr r2, _0809E04C @ =gUnk_08124150 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809E04C: .4byte gUnk_08124150 + + thumb_func_start sub_0809E050 +sub_0809E050: @ 0x0809E050 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + ldrb r1, [r4, #0x19] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x19] + ldr r0, _0809E084 @ =0x0000FFF0 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC + pop {r4, pc} + .align 2, 0 +_0809E084: .4byte 0x0000FFF0 + + thumb_func_start sub_0809E088 +sub_0809E088: @ 0x0809E088 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + + thumb_func_start sub_0809E0A0 +sub_0809E0A0: @ 0x0809E0A0 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x97 + movs r1, #5 + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _0809E0C8 + str r5, [r4, #0x50] + str r4, [r5, #0x54] + movs r0, #0 + strb r0, [r5, #0xf] + ldr r0, _0809E0CC @ =gUnk_03001160 + adds r1, r4, #0 + bl sub_0806FA24 + ldr r0, _0809E0D0 @ =0x0000FFF8 + strh r0, [r4, #0x36] +_0809E0C8: + pop {r4, r5, pc} + .align 2, 0 +_0809E0CC: .4byte gUnk_03001160 +_0809E0D0: .4byte 0x0000FFF8 + + thumb_func_start sub_0809E0D4 +sub_0809E0D4: @ 0x0809E0D4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + adds r6, r1, #0 + ldrb r2, [r6, #0x18] + cmp r2, #0 + bne _0809E130 + ldr r1, [r5, #0x54] + cmp r1, #0 + beq _0809E0FC + ldrb r0, [r1, #0xc] + cmp r0, #1 + bhi _0809E0FE + ldr r0, _0809E0F8 @ =gUnk_02033280 + strb r2, [r0, #6] + b _0809E1BC + .align 2, 0 +_0809E0F8: .4byte gUnk_02033280 +_0809E0FC: + ldr r1, _0809E124 @ =gUnk_03001160 +_0809E0FE: + ldrb r0, [r6, #0x18] + adds r0, #1 + movs r4, #0 + strb r0, [r6, #0x18] + movs r0, #0x2e + ldrsh r2, [r1, r0] + movs r0, #0x32 + ldrsh r3, [r1, r0] + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0807DEDC + ldr r0, _0809E128 @ =0x00000123 + bl sub_080A3268 + ldr r0, _0809E12C @ =gUnk_02033280 + strb r4, [r0, #6] + b _0809E1BC + .align 2, 0 +_0809E124: .4byte gUnk_03001160 +_0809E128: .4byte 0x00000123 +_0809E12C: .4byte gUnk_02033280 +_0809E130: + ldr r1, [r5, #0x54] + cmp r1, #0 + beq _0809E142 + movs r0, #0x2e + ldrsh r2, [r1, r0] + mov r8, r2 + movs r2, #0x32 + ldrsh r7, [r1, r2] + b _0809E14C +_0809E142: + movs r1, #0x1e + ldrsh r0, [r6, r1] + mov r8, r0 + movs r2, #0x22 + ldrsh r7, [r6, r2] +_0809E14C: + ldrb r0, [r6, #0x19] + subs r0, #1 + strb r0, [r6, #0x19] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809E170 + movs r0, #8 + strb r0, [r6, #0x19] + movs r1, #0x2e + ldrsh r0, [r5, r1] + mov r2, r8 + subs r0, r2, r0 + movs r2, #0x32 + ldrsh r1, [r5, r2] + subs r1, r7, r1 + bl sub_080045DA + strb r0, [r5, #0x15] +_0809E170: + movs r0, #0x2e + ldrsh r4, [r5, r0] + mov r1, r8 + subs r4, r4, r1 + movs r2, #0x32 + ldrsh r0, [r5, r2] + subs r6, r0, r7 + movs r0, #0x24 + ldrsh r1, [r5, r0] + ldrb r2, [r5, #0x15] + adds r0, r5, #0 + bl sub_0806F62C + movs r1, #0x2e + ldrsh r0, [r5, r1] + mov r2, r8 + subs r0, r0, r2 + muls r4, r0, r4 + movs r1, #0x32 + ldrsh r0, [r5, r1] + subs r0, r0, r7 + muls r6, r0, r6 + cmp r4, #0 + bgt _0809E1B6 + cmp r6, #0 + bgt _0809E1B6 + strh r2, [r5, #0x2e] + strh r7, [r5, #0x32] + movs r0, #1 + strb r0, [r5, #0xf] + movs r0, #0x81 + lsls r0, r0, #1 + bl sub_080A3268 + b _0809E1BC +_0809E1B6: + ldr r1, _0809E1C4 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0809E1BC: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809E1C4: .4byte gUnk_02033280 + + thumb_func_start sub_0809E1C8 +sub_0809E1C8: @ 0x0809E1C8 + push {lr} + adds r3, r0, #0 + adds r1, #0x20 + ldrb r2, [r3, #0x15] + subs r1, r1, r2 + movs r0, #0x1f + ands r1, r0 + cmp r1, #0 + beq _0809E1E6 + cmp r1, #0xf + bhi _0809E1E2 + adds r0, r2, #1 + b _0809E1E4 +_0809E1E2: + subs r0, r2, #1 +_0809E1E4: + strb r0, [r3, #0x15] +_0809E1E6: + ldrb r1, [r3, #0x15] + movs r0, #0x1f + ands r0, r1 + strb r0, [r3, #0x15] + pop {pc} + + thumb_func_start sub_0809E1F0 +sub_0809E1F0: @ 0x0809E1F0 + push {lr} + adds r1, r0, #0 + ldrh r0, [r1, #0x24] + adds r0, #0x40 + strh r0, [r1, #0x24] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x80 + lsls r2, r2, #3 + cmp r0, r2 + ble _0809E208 + strh r2, [r1, #0x24] +_0809E208: + adds r0, r1, #0 + bl sub_0806F69C + pop {pc} + + thumb_func_start sub_0809E210 +sub_0809E210: @ 0x0809E210 + push {r4, lr} + adds r1, r0, #0 + ldr r4, _0809E230 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5B0 + movs r1, #0xfe + ands r0, r1 + strb r0, [r4, #0x14] + ldr r1, _0809E234 @ =gUnk_03003F80 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r1, #8] + pop {r4, pc} + .align 2, 0 +_0809E230: .4byte gUnk_03001160 +_0809E234: .4byte gUnk_03003F80 + + thumb_func_start sub_0809E238 +sub_0809E238: @ 0x0809E238 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r0, #0 + ldr r6, _0809E298 @ =gUnk_080C9160 + movs r0, #0x6e + adds r0, r0, r7 + mov r8, r0 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r6 + movs r1, #0 + ldrsh r0, [r0, r1] + adds r5, r7, #0 + adds r5, #0x6c + movs r2, #0 + ldrsh r1, [r5, r2] + bl sub_0806F9EC + adds r4, r0, #0 + lsls r4, r4, #0x10 + asrs r4, r4, #0x10 + mov r1, r8 + ldrb r0, [r1] + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r6 + movs r2, #0 + ldrsh r0, [r0, r2] + movs r2, #0 + ldrsh r1, [r5, r2] + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r7, #0 + adds r1, #0x68 + ldrh r1, [r1] + adds r1, r1, r4 + strh r1, [r7, #0x2e] + adds r1, r7, #0 + adds r1, #0x6a + ldrh r1, [r1] + subs r1, r1, r0 + strh r1, [r7, #0x32] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809E298: .4byte gUnk_080C9160 + + thumb_func_start sub_0809E29C +sub_0809E29C: @ 0x0809E29C + push {lr} + adds r2, r0, #0 + adds r0, #0x6e + ldrb r0, [r0] + adds r0, #0x40 + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809E2B8 + ldrb r1, [r2, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + b _0809E2BE +_0809E2B8: + ldrb r0, [r2, #0x18] + movs r1, #0x40 + orrs r0, r1 +_0809E2BE: + strb r0, [r2, #0x18] + pop {pc} + .align 2, 0 + + thumb_func_start sub_0809E2C4 +sub_0809E2C4: @ 0x0809E2C4 + push {r4, r5, r6, r7, lr} + lsls r1, r1, #2 + ldr r0, _0809E328 @ =gUnk_08124178 + adds r1, r1, r0 + ldr r3, _0809E32C @ =gUnk_03001160 + movs r0, #0x2e + ldrsh r5, [r3, r0] + ldr r4, _0809E330 @ =gUnk_03000BF0 + ldrh r0, [r4, #6] + ldrh r2, [r1] + adds r0, r0, r2 + subs r6, r5, r0 + movs r0, #0x32 + ldrsh r2, [r3, r0] + ldrh r0, [r4, #8] + ldrh r1, [r1, #2] + adds r0, r0, r1 + subs r5, r2, r0 + ldr r4, _0809E334 @ =gUnk_08124158 + movs r2, #0 + adds r7, r3, #0 +_0809E2EE: + movs r1, #0 + ldrsh r0, [r4, r1] + subs r0, r6, r0 + ldrb r1, [r4, #4] + adds r0, r0, r1 + lsls r1, r1, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r1, r0 + ble _0809E33C + movs r1, #2 + ldrsh r0, [r4, r1] + subs r0, r5, r0 + ldrb r1, [r4, #5] + adds r0, r0, r1 + lsls r1, r1, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r1, r0 + ble _0809E33C + ldrb r0, [r4, #6] + ldrb r7, [r7, #0x14] + cmp r0, r7 + bne _0809E338 + ldrb r0, [r3, #0xc] + cmp r0, #6 + bne _0809E338 + movs r0, #1 + b _0809E346 + .align 2, 0 +_0809E328: .4byte gUnk_08124178 +_0809E32C: .4byte gUnk_03001160 +_0809E330: .4byte gUnk_03000BF0 +_0809E334: .4byte gUnk_08124158 +_0809E338: + movs r0, #2 + b _0809E346 +_0809E33C: + adds r2, #1 + adds r4, #8 + cmp r2, #3 + ble _0809E2EE + movs r0, #0 +_0809E346: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0809E348 +sub_0809E348: @ 0x0809E348 + push {lr} + ldr r2, _0809E35C @ =gUnk_0812418C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809E35C: .4byte gUnk_0812418C + + thumb_func_start sub_0809E360 +sub_0809E360: @ 0x0809E360 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #8 + bls _0809E372 + movs r0, #8 + strb r0, [r4, #0xe] +_0809E372: + ldrb r2, [r4, #0xe] + movs r0, #0x48 + subs r0, r0, r2 + ldr r1, _0809E3E0 @ =gUnk_03003DBC + ldrb r1, [r1] + cmp r0, r1 + ble _0809E3D8 + movs r5, #0 + adds r7, r4, #0 + adds r7, #0x7e + movs r0, #0x76 + adds r0, r0, r4 + mov r8, r0 + cmp r5, r2 + bhs _0809E3A6 + movs r6, #0xe +_0809E392: + movs r0, #0x17 + bl sub_080A7EE0 + strb r6, [r0, #0xe] + str r4, [r0, #0x50] + adds r6, #0xc + adds r5, #1 + ldrb r2, [r4, #0xe] + cmp r5, r2 + blo _0809E392 +_0809E3A6: + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r7] + lsls r1, r0, #8 + mov r2, r8 + strh r1, [r2] + lsls r0, r0, #6 + strb r0, [r4, #0x14] + adds r0, r4, #0 + movs r1, #0 + bl sub_0805E3A0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _0809E3D8 + bl sub_0804B128 + str r0, [r4, #0x54] + adds r1, r4, #0 + adds r1, #0x54 + adds r2, r4, #0 + adds r2, #0x74 + adds r0, r4, #0 + bl sub_080A2CC0 +_0809E3D8: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809E3E0: .4byte gUnk_03003DBC + + thumb_func_start sub_0809E3E4 +sub_0809E3E4: @ 0x0809E3E4 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x76 + ldrb r0, [r4, #0xb] + ldrh r1, [r2] + adds r1, r1, r0 + strh r1, [r2] + lsrs r1, r1, #2 + strb r1, [r4, #0x14] + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _0809E428 + ldrb r1, [r4, #0x15] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0809E40E + adds r0, r4, #0 + bl sub_0806F69C +_0809E40E: + adds r2, r4, #0 + adds r2, #0x74 + ldrh r0, [r2] + subs r0, #1 + strh r0, [r2] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0809E428 + adds r1, r4, #0 + adds r1, #0x54 + adds r0, r4, #0 + bl sub_080A2CC0 +_0809E428: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809E42C +sub_0809E42C: @ 0x0809E42C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r4, r0, #0 + ldr r6, [r4, #0x50] + ldr r0, [r6, #4] + cmp r0, #0 + bne _0809E444 + bl sub_0805E780 +_0809E444: + ldrb r0, [r4, #0xc] + movs r1, #0x76 + adds r1, r1, r4 + mov r8, r1 + adds r7, r4, #0 + adds r7, #0x62 + movs r2, #0x74 + adds r2, r2, r4 + mov sb, r2 + adds r5, r4, #0 + adds r5, #0x63 + movs r1, #0x75 + adds r1, r1, r4 + mov sl, r1 + cmp r0, #0 + bne _0809E482 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r6, #0x14] + mov r2, r8 + strb r0, [r2] + ldrb r0, [r7] + mov r1, sb + strb r0, [r1] + ldrb r0, [r5] + mov r2, sl + strb r0, [r2] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 +_0809E482: + ldrb r0, [r6, #0x14] + mov r1, r8 + ldrb r1, [r1] + cmp r0, r1 + beq _0809E490 + bl sub_0805E780 +_0809E490: + ldrb r1, [r6, #0x18] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1e + ldrb r2, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0806FA6C + mov r2, sb + ldrb r0, [r2] + ldrb r1, [r7] + adds r0, r0, r1 + strb r0, [r7] + mov r2, sl + ldrb r0, [r2] + ldrb r1, [r5] + adds r0, r0, r1 + strb r0, [r5] + ldrb r0, [r4, #0x14] + cmp r0, #2 + beq _0809E4D0 + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + ldrb r0, [r5] + subs r0, #1 + b _0809E4DA +_0809E4D0: + ldrh r0, [r4, #0x32] + subs r0, #1 + strh r0, [r4, #0x32] + ldrb r0, [r5] + adds r0, #1 +_0809E4DA: + strb r0, [r5] + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809E4F4 + bl sub_0805E780 +_0809E4F4: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0809E500 +sub_0809E500: @ 0x0809E500 + push {lr} + ldr r2, _0809E514 @ =gUnk_081242C8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809E514: .4byte gUnk_081242C8 + + thumb_func_start sub_0809E518 +sub_0809E518: @ 0x0809E518 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r1, #1 + strb r1, [r6, #0xc] + ldrb r2, [r6, #0xa] + adds r0, r2, #0 + cmp r0, #0xff + bne _0809E52E + ldrb r0, [r6, #0xb] + strb r0, [r6, #0x1e] + b _0809E5CA +_0809E52E: + ands r1, r2 + rsbs r0, r1, #0 + orrs r0, r1 + asrs r5, r0, #0x1f + movs r0, #4 + ands r5, r0 + movs r0, #2 + ands r0, r2 + cmp r0, #0 + beq _0809E5A4 + ldr r0, _0809E5A0 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x44 + bhi _0809E5B4 + strb r5, [r6, #0x1e] + adds r5, #1 + movs r0, #0x9a + movs r1, #0xff + adds r2, r5, #0 + bl sub_080A2960 + adds r4, r0, #0 + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0806FA24 + adds r5, #1 + movs r0, #0x9a + movs r1, #0xff + adds r2, r5, #0 + bl sub_080A2960 + adds r4, r0, #0 + movs r3, #0x80 + lsls r3, r3, #9 + adds r0, r6, #0 + adds r1, r4, #0 + movs r2, #0 + bl sub_0806FA48 + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #0xff + strb r0, [r1] + adds r5, #1 + movs r0, #0x9a + movs r1, #0xff + adds r2, r5, #0 + bl sub_080A2960 + adds r4, r0, #0 + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0806FA24 + b _0809E5C4 + .align 2, 0 +_0809E5A0: .4byte gUnk_03003DBC +_0809E5A4: + adds r2, r5, #1 + movs r0, #0x9a + movs r1, #0xff + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + bne _0809E5BA +_0809E5B4: + bl sub_0805E780 + b _0809E5C4 +_0809E5BA: + strb r5, [r6, #0x1e] + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0806FA24 +_0809E5C4: + adds r0, r6, #0 + bl sub_0809E5F0 +_0809E5CA: + ldrb r1, [r6, #0x1e] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0809E5E8 + ldrb r0, [r6, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r6, #0x19] + adds r2, r6, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] +_0809E5E8: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start nullsub_125 +nullsub_125: @ 0x0809E5EC + bx lr + .align 2, 0 + + thumb_func_start sub_0809E5F0 +sub_0809E5F0: @ 0x0809E5F0 + push {r4, r5, lr} + movs r2, #0x2e + ldrsh r1, [r0, r2] + ldr r4, _0809E628 @ =gUnk_03000BF0 + ldrh r2, [r4, #6] + subs r1, r1, r2 + asrs r5, r1, #4 + movs r3, #0x3f + ands r5, r3 + movs r2, #0x32 + ldrsh r1, [r0, r2] + ldrh r2, [r4, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r5, r1 + adds r1, r0, #0 + adds r1, #0x80 + strh r5, [r1] + ldrb r0, [r0, #0xa] + cmp r0, #1 + beq _0809E708 + cmp r0, #1 + bgt _0809E62C + cmp r0, #0 + beq _0809E64E + b _0809E792 + .align 2, 0 +_0809E628: .4byte gUnk_03000BF0 +_0809E62C: + cmp r0, #2 + beq _0809E636 + cmp r0, #3 + beq _0809E6F0 + b _0809E792 +_0809E636: + ldr r0, _0809E6DC @ =0x00004022 + adds r1, r5, #0 + subs r1, #0x3d + movs r2, #1 + bl sub_0800015E + ldr r0, _0809E6E0 @ =0x0000406D + adds r1, r5, #0 + subs r1, #0x3c + movs r2, #1 + bl sub_0800015E +_0809E64E: + ldr r0, _0809E6E4 @ =0x0000406C + adds r1, r5, #0 + subs r1, #0x42 + movs r2, #1 + bl sub_0800015E + ldr r4, _0809E6DC @ =0x00004022 + adds r1, r5, #0 + subs r1, #0x41 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + adds r1, r5, #0 + subs r1, #0x40 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + adds r1, r5, #0 + subs r1, #0x3f + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + subs r1, r5, #2 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + subs r1, r5, #1 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #1 + bl sub_0800015E + adds r1, r5, #1 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r0, _0809E6E8 @ =0x0000406E + adds r1, r5, #0 + adds r1, #0x3e + movs r2, #1 + bl sub_0800015E + adds r1, r5, #0 + adds r1, #0x3f + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + adds r1, r5, #0 + adds r1, #0x40 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r0, _0809E6EC @ =0x0000406F + adds r1, r5, #0 + adds r1, #0x41 + movs r2, #1 + bl sub_0800015E + b _0809E792 + .align 2, 0 +_0809E6DC: .4byte 0x00004022 +_0809E6E0: .4byte 0x0000406D +_0809E6E4: .4byte 0x0000406C +_0809E6E8: .4byte 0x0000406E +_0809E6EC: .4byte 0x0000406F +_0809E6F0: + ldr r0, _0809E794 @ =0x00004022 + adds r1, r5, #0 + subs r1, #0x44 + movs r2, #1 + bl sub_0800015E + ldr r0, _0809E798 @ =0x0000406C + adds r1, r5, #0 + subs r1, #0x45 + movs r2, #1 + bl sub_0800015E +_0809E708: + ldr r4, _0809E794 @ =0x00004022 + adds r1, r5, #0 + subs r1, #0x42 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + adds r1, r5, #0 + subs r1, #0x41 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + adds r1, r5, #0 + subs r1, #0x40 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r0, _0809E79C @ =0x0000406D + adds r1, r5, #0 + subs r1, #0x3f + movs r2, #1 + bl sub_0800015E + subs r1, r5, #2 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + subs r1, r5, #1 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #1 + bl sub_0800015E + adds r1, r5, #1 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r0, _0809E7A0 @ =0x0000406E + adds r1, r5, #0 + adds r1, #0x3e + movs r2, #1 + bl sub_0800015E + adds r1, r5, #0 + adds r1, #0x3f + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + adds r1, r5, #0 + adds r1, #0x40 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r0, _0809E7A4 @ =0x0000406F + adds r1, r5, #0 + adds r1, #0x41 + movs r2, #1 + bl sub_0800015E +_0809E792: + pop {r4, r5, pc} + .align 2, 0 +_0809E794: .4byte 0x00004022 +_0809E798: .4byte 0x0000406C +_0809E79C: .4byte 0x0000406D +_0809E7A0: .4byte 0x0000406E +_0809E7A4: .4byte 0x0000406F + + thumb_func_start sub_0809E7A8 +sub_0809E7A8: @ 0x0809E7A8 + push {lr} + ldr r2, _0809E7BC @ =gUnk_081242D0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809E7BC: .4byte gUnk_081242D0 + + thumb_func_start sub_0809E7C0 +sub_0809E7C0: @ 0x0809E7C0 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xb] + cmp r0, #0xff + beq _0809E7D4 + adds r0, r4, #0 + bl sub_0809E7FC +_0809E7D4: + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809E7E0 +sub_0809E7E0: @ 0x0809E7E0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809E7F8 + bl sub_0805E780 +_0809E7F8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809E7FC +sub_0809E7FC: @ 0x0809E7FC + push {lr} + adds r1, r0, #0 + ldrb r3, [r1, #0xb] + lsls r3, r3, #1 + ldr r0, _0809E820 @ =gUnk_081242D8 + adds r3, r3, r0 + ldr r0, [r1, #0x50] + movs r2, #0 + ldrsb r2, [r3, r2] + lsls r2, r2, #0x10 + ldrb r3, [r3, #1] + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + lsls r3, r3, #0x10 + bl sub_0806FA48 + pop {pc} + .align 2, 0 +_0809E820: .4byte gUnk_081242D8 + + thumb_func_start sub_0809E824 +sub_0809E824: @ 0x0809E824 + push {lr} + ldr r2, _0809E838 @ =gUnk_08124354 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809E838: .4byte gUnk_08124354 + + thumb_func_start sub_0809E83C +sub_0809E83C: @ 0x0809E83C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0809E856 + adds r0, r4, #0 + bl sub_0809E96C + bl sub_0805E780 +_0809E856: + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809E86C +sub_0809E86C: @ 0x0809E86C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0809E8B4 @ =gUnk_03001160 + movs r2, #0x30 + movs r3, #0x30 + bl sub_0800419C + cmp r0, #0 + beq _0809E89A + movs r0, #0x14 + bl sub_0807CC30 + cmp r0, #0 + beq _0809E89A + ldr r0, _0809E8B8 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0809E89A + adds r0, r4, #0 + bl sub_080A2B80 +_0809E89A: + bl sub_0809E9A0 + cmp r0, #0x54 + bne _0809E8B0 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0xf + strb r0, [r4, #0xe] + movs r0, #1 + bl sub_08078A90 +_0809E8B0: + pop {r4, pc} + .align 2, 0 +_0809E8B4: .4byte gUnk_03001160 +_0809E8B8: .4byte gUnk_030010A0 + + thumb_func_start sub_0809E8BC +sub_0809E8BC: @ 0x0809E8BC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809E8E8 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #0x40 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0809E96C + adds r0, r4, #0 + bl sub_0809E918 +_0809E8E8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809E8EC +sub_0809E8EC: @ 0x0809E8EC + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809E916 + adds r0, r1, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + movs r0, #0 + bl sub_08078A90 + movs r0, #0x73 + bl sub_080A3268 + bl sub_0805E780 +_0809E916: + pop {pc} + + thumb_func_start sub_0809E918 +sub_0809E918: @ 0x0809E918 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r4, _0809E964 @ =gUnk_08124364 + movs r1, #0 + ldrsh r0, [r4, r1] + ldr r1, _0809E968 @ =0xFFFFFC18 + cmp r0, r1 + beq _0809E962 + adds r6, r1, #0 +_0809E92A: + adds r0, r5, #0 + movs r1, #3 + movs r2, #0 + bl sub_080A29AC + adds r2, r0, #0 + cmp r2, #0 + beq _0809E958 + ldrh r0, [r4] + ldrh r1, [r2, #0x2e] + adds r0, r0, r1 + strh r0, [r2, #0x2e] + ldrh r0, [r4, #2] + ldrh r1, [r2, #0x32] + adds r0, r0, r1 + strh r0, [r2, #0x32] + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r2, #0 + bl sub_08016A04 +_0809E958: + adds r4, #4 + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, r6 + bne _0809E92A +_0809E962: + pop {r4, r5, r6, pc} + .align 2, 0 +_0809E964: .4byte gUnk_08124364 +_0809E968: .4byte 0xFFFFFC18 + + thumb_func_start sub_0809E96C +sub_0809E96C: @ 0x0809E96C + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _0809E99C @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + adds r1, #0x20 + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r5, #0x32 + ldrsh r1, [r4, r5] + ldrh r2, [r2, #8] + adds r2, #8 + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + bl sub_08018C1C + pop {r4, r5, pc} + .align 2, 0 +_0809E99C: .4byte gUnk_03000BF0 + + thumb_func_start sub_0809E9A0 +sub_0809E9A0: @ 0x0809E9A0 + push {r4, r5, r6, lr} + ldr r5, _0809E9B0 @ =gUnk_03001160 + ldrb r2, [r5, #0xc] + cmp r2, #6 + beq _0809E9B4 + movs r0, #0 + b _0809E9F0 + .align 2, 0 +_0809E9B0: .4byte gUnk_03001160 +_0809E9B4: + ldrb r0, [r5, #0x14] + ands r2, r0 + lsls r2, r2, #1 + ldr r0, _0809E9F4 @ =gUnk_080B4468 + adds r2, r2, r0 + movs r1, #0x2e + ldrsh r0, [r5, r1] + movs r3, #0 + ldrsh r1, [r2, r3] + adds r0, r0, r1 + ldr r4, _0809E9F8 @ =gUnk_03000BF0 + ldrh r1, [r4, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r6, #0x32 + ldrsh r1, [r5, r6] + movs r5, #2 + ldrsh r2, [r2, r5] + adds r1, r1, r2 + ldrh r2, [r4, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + movs r1, #1 + bl sub_080002C8 +_0809E9F0: + pop {r4, r5, r6, pc} + .align 2, 0 +_0809E9F4: .4byte gUnk_080B4468 +_0809E9F8: .4byte gUnk_03000BF0 + + thumb_func_start sub_0809E9FC +sub_0809E9FC: @ 0x0809E9FC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0809EA18 @ =gUnk_081243B4 + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0809EB30 + pop {r4, pc} + .align 2, 0 +_0809EA18: .4byte gUnk_081243B4 + + thumb_func_start sub_0809EA1C +sub_0809EA1C: @ 0x0809EA1C + push {lr} + ldr r2, _0809EA30 @ =gUnk_081243BC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809EA30: .4byte gUnk_081243BC + + thumb_func_start sub_0809EA34 +sub_0809EA34: @ 0x0809EA34 + push {r4, lr} + adds r4, r0, #0 + movs r2, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + strb r2, [r4, #0x1e] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #4 + movs r0, #0x48 + strb r0, [r1] + subs r1, #1 + movs r0, #0x28 + strb r0, [r1] + subs r1, #4 + movs r0, #0xa + strb r0, [r1] + ldr r0, _0809EA7C @ =gUnk_080FD150 + str r0, [r4, #0x48] + adds r0, r4, #0 + bl sub_0809EAD8 + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + bl sub_0809EABC + pop {r4, pc} + .align 2, 0 +_0809EA7C: .4byte gUnk_080FD150 + + thumb_func_start sub_0809EA80 +sub_0809EA80: @ 0x0809EA80 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809EAB4 + adds r4, r5, #0 + adds r4, #0x86 + ldrh r0, [r4] + bl sub_0807CBE4 + cmp r0, #0 + beq _0809EAA6 + ldrh r0, [r4] + bl sub_0807CD48 + b _0809EAAC +_0809EAA6: + ldrh r0, [r4] + bl sub_0807CCC8 +_0809EAAC: + movs r0, #0x88 + lsls r0, r0, #1 + bl sub_08004488 +_0809EAB4: + adds r0, r5, #0 + bl sub_0809EABC + pop {r4, r5, pc} + + thumb_func_start sub_0809EABC +sub_0809EABC: @ 0x0809EABC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r1, r1, #0x1f + ldrb r0, [r4, #0x1e] + cmp r0, r1 + beq _0809EAD6 + strb r1, [r4, #0x1e] +_0809EAD6: + pop {r4, pc} + + thumb_func_start sub_0809EAD8 +sub_0809EAD8: @ 0x0809EAD8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xb] + cmp r0, #0 + beq _0809EAF8 + bl sub_0804B128 + str r0, [r5, #0x54] + adds r1, r5, #0 + adds r1, #0x54 + adds r2, r5, #0 + adds r2, #0x74 + adds r0, r5, #0 + bl sub_080A2CC0 + b _0809EB24 +_0809EAF8: + ldr r0, _0809EB28 @ =0x00004050 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _0809EB2C @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E +_0809EB24: + pop {r4, r5, r6, pc} + .align 2, 0 +_0809EB28: .4byte 0x00004050 +_0809EB2C: .4byte gUnk_03000BF0 + + thumb_func_start sub_0809EB30 +sub_0809EB30: @ 0x0809EB30 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _0809EB64 + ldrb r1, [r4, #0x15] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0809EB4A + adds r0, r4, #0 + bl sub_0806F69C +_0809EB4A: + adds r2, r4, #0 + adds r2, #0x74 + ldrh r0, [r2] + subs r0, #1 + strh r0, [r2] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0809EB64 + adds r1, r4, #0 + adds r1, #0x54 + adds r0, r4, #0 + bl sub_080A2CC0 +_0809EB64: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809EB68 +sub_0809EB68: @ 0x0809EB68 + push {lr} + ldr r2, _0809EB7C @ =gUnk_081243C4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809EB7C: .4byte gUnk_081243C4 + + thumb_func_start sub_0809EB80 +sub_0809EB80: @ 0x0809EB80 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r5, #3 + strb r5, [r4, #0x1e] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #4 + movs r0, #0x48 + strb r0, [r1] + subs r1, #1 + movs r0, #0x28 + strb r0, [r1] + subs r1, #4 + movs r0, #0xa + strb r0, [r1] + ldr r0, _0809EBD4 @ =gUnk_080FD150 + str r0, [r4, #0x48] + adds r0, r4, #0 + bl sub_0809EAD8 + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + adds r0, #0x84 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0809EBD2 + strb r5, [r4, #0xc] + movs r0, #2 + strb r0, [r4, #0x1e] +_0809EBD2: + pop {r4, r5, pc} + .align 2, 0 +_0809EBD4: .4byte gUnk_080FD150 + + thumb_func_start sub_0809EBD8 +sub_0809EBD8: @ 0x0809EBD8 + push {lr} + adds r2, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809EC04 + movs r1, #2 + strb r1, [r2, #0xc] + movs r0, #0x10 + strb r0, [r2, #0xe] + strb r1, [r2, #0x1e] + adds r0, r2, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + movs r0, #0x88 + lsls r0, r0, #1 + bl sub_08004488 +_0809EC04: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0809EC08 +sub_0809EC08: @ 0x0809EC08 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x84 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0809EC1E + movs r0, #3 + strb r0, [r4, #0xc] + b _0809EC44 +_0809EC1E: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809EC44 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #3 + strb r0, [r4, #0x1e] + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CD48 + movs r0, #0x88 + lsls r0, r0, #1 + bl sub_08004488 +_0809EC44: + pop {r4, pc} + .align 2, 0 + + thumb_func_start nullsub_126 +nullsub_126: @ 0x0809EC48 + bx lr + .align 2, 0 + + thumb_func_start sub_0809EC4C +sub_0809EC4C: @ 0x0809EC4C + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldrb r3, [r6, #0xc] + cmp r3, #0 + bne _0809ED14 + movs r4, #1 + strb r4, [r6, #0xc] + adds r2, r6, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r6, #0xa] + cmp r0, #0 + bne _0809ED04 + ldrb r0, [r6, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r6, #0x10] + strb r4, [r6, #0x1e] + adds r5, r6, #0 + adds r5, #0x38 + strb r4, [r5] + adds r1, r6, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #4 + movs r0, #0x48 + strb r0, [r1] + subs r1, #1 + movs r0, #0x7a + strb r0, [r1] + adds r0, r6, #0 + adds r0, #0x3b + strb r4, [r0] + ldr r0, _0809ECF4 @ =gUnk_080FD168 + str r0, [r6, #0x48] + movs r0, #0x2e + ldrsh r4, [r6, r0] + ldr r1, _0809ECF8 @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + subs r4, r4, r0 + asrs r4, r4, #4 + movs r2, #0x3f + ands r4, r2 + movs r3, #0x32 + ldrsh r0, [r6, r3] + ldrh r1, [r1, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + ldr r0, _0809ECFC @ =0x00004066 + subs r1, r4, #1 + ldrb r2, [r5] + bl sub_0800015E + ldr r0, _0809ED00 @ =0x00004065 + ldrb r2, [r5] + adds r1, r4, #0 + bl sub_0800015E + adds r0, r6, #0 + bl sub_08016A04 + movs r0, #0x9e + movs r1, #1 + movs r2, #0 + bl sub_080A2960 + adds r1, r0, #0 + cmp r1, #0 + beq _0809ED14 + str r1, [r6, #0x54] + adds r0, r6, #0 + bl sub_0806FA24 + b _0809ED14 + .align 2, 0 +_0809ECF4: .4byte gUnk_080FD168 +_0809ECF8: .4byte gUnk_03000BF0 +_0809ECFC: .4byte 0x00004066 +_0809ED00: .4byte 0x00004065 +_0809ED04: + strb r3, [r6, #0x1e] + adds r1, r6, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r6, #0 + bl sub_08016A04 +_0809ED14: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0809ED18 +sub_0809ED18: @ 0x0809ED18 + push {lr} + ldr r2, _0809ED2C @ =gUnk_081243D4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809ED2C: .4byte gUnk_081243D4 + + thumb_func_start sub_0809ED30 +sub_0809ED30: @ 0x0809ED30 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + movs r1, #2 + eors r0, r1 + lsls r0, r0, #3 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_0809EE34 + adds r0, r4, #0 + bl sub_0809EFB0 + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_08004260 + pop {r4, pc} + + thumb_func_start sub_0809ED54 +sub_0809ED54: @ 0x0809ED54 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x84 + ldrh r0, [r1] + cmp r0, #0 + beq _0809ED6A + bl sub_0807CBE4 + cmp r0, #0 + beq _0809ED86 +_0809ED6A: + ldrb r0, [r4, #0xb] + cmp r0, #1 + bne _0809ED80 + adds r1, r4, #0 + adds r1, #0x74 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0809ED86 +_0809ED80: + adds r0, r4, #0 + bl sub_0809EE08 +_0809ED86: + pop {r4, pc} + + thumb_func_start sub_0809ED88 +sub_0809ED88: @ 0x0809ED88 + push {r4, lr} + adds r4, r0, #0 + bl sub_0809F08C + adds r0, r4, #0 + bl sub_0809EE44 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r2, [r0] + cmp r2, #0 + beq _0809EDC6 + adds r1, r4, #0 + adds r1, #0x84 + ldrh r0, [r1] + cmp r0, r2 + bne _0809EDB4 + bl sub_0807CBE4 + cmp r0, #0 + bne _0809EDE2 + b _0809EDBE +_0809EDB4: + ldrh r0, [r1] + bl sub_0807CBE4 + cmp r0, #0 + beq _0809EDE2 +_0809EDBE: + adds r0, r4, #0 + bl sub_0809EE24 + b _0809EDE2 +_0809EDC6: + ldrb r0, [r4, #0xb] + cmp r0, #1 + bne _0809EDE2 + adds r1, r4, #0 + adds r1, #0x74 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0809EDE2 + adds r0, r4, #0 + bl sub_0809EE24 +_0809EDE2: + pop {r4, pc} + + thumb_func_start sub_0809EDE4 +sub_0809EDE4: @ 0x0809EDE4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0809F08C + adds r0, r4, #0 + bl sub_0809EE44 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809EE06 + adds r0, r4, #0 + bl sub_0809EE34 +_0809EE06: + pop {r4, pc} + + thumb_func_start sub_0809EE08 +sub_0809EE08: @ 0x0809EE08 + push {lr} + movs r1, #2 + strb r1, [r0, #0xc] + adds r1, r0, #0 + adds r1, #0x7f + ldrb r1, [r1] + lsls r1, r1, #2 + adds r2, r0, #0 + adds r2, #0x74 + strh r1, [r2] + ldrb r1, [r0, #0xa] + bl sub_08004260 + pop {pc} + + thumb_func_start sub_0809EE24 +sub_0809EE24: @ 0x0809EE24 + push {lr} + movs r1, #3 + strb r1, [r0, #0xc] + ldrb r1, [r0, #0xa] + adds r1, #4 + bl sub_08004260 + pop {pc} + + thumb_func_start sub_0809EE34 +sub_0809EE34: @ 0x0809EE34 + movs r1, #1 + strb r1, [r0, #0xc] + ldrb r1, [r0, #0xe] + lsls r1, r1, #2 + adds r0, #0x74 + strh r1, [r0] + bx lr + .align 2, 0 + + thumb_func_start sub_0809EE44 +sub_0809EE44: @ 0x0809EE44 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r1, #7 + ands r1, r0 + adds r0, r5, #0 + adds r0, #0x7e + ldrb r0, [r0] + lsls r0, r1 + strh r0, [r5, #0x24] + cmp r1, #0 + bne _0809EE60 + b _0809EF74 +_0809EE60: + ldr r4, _0809EEA4 @ =gUnk_03001160 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0809EF78 + cmp r0, #0 + beq _0809EE80 + bl sub_08079F8C + cmp r0, #0 + beq _0809EE80 + movs r1, #0x24 + ldrsh r0, [r5, r1] + ldrb r1, [r5, #0x15] + bl sub_08079E58 +_0809EE80: + ldr r6, _0809EEA8 @ =gUnk_03003D80 + ldr r4, [r6, #4] + cmp r6, r4 + beq _0809EF74 +_0809EE88: + ldrb r0, [r4, #8] + cmp r0, #8 + bne _0809EF6E + movs r3, #0 + ldrb r0, [r4, #9] + subs r0, #2 + cmp r0, #0x17 + bhi _0809EF52 + lsls r0, r0, #2 + ldr r1, _0809EEAC @ =_0809EEB0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809EEA4: .4byte gUnk_03001160 +_0809EEA8: .4byte gUnk_03003D80 +_0809EEAC: .4byte _0809EEB0 +_0809EEB0: @ jump table + .4byte _0809EF1E @ case 0 + .4byte _0809EF26 @ case 1 + .4byte _0809EF48 @ case 2 + .4byte _0809EF52 @ case 3 + .4byte _0809EF52 @ case 4 + .4byte _0809EF52 @ case 5 + .4byte _0809EF52 @ case 6 + .4byte _0809EF52 @ case 7 + .4byte _0809EF52 @ case 8 + .4byte _0809EF52 @ case 9 + .4byte _0809EF52 @ case 10 + .4byte _0809EF52 @ case 11 + .4byte _0809EF52 @ case 12 + .4byte _0809EF52 @ case 13 + .4byte _0809EF52 @ case 14 + .4byte _0809EF50 @ case 15 + .4byte _0809EF52 @ case 16 + .4byte _0809EF10 @ case 17 + .4byte _0809EF52 @ case 18 + .4byte _0809EF52 @ case 19 + .4byte _0809EF52 @ case 20 + .4byte _0809EF52 @ case 21 + .4byte _0809EF52 @ case 22 + .4byte _0809EF50 @ case 23 +_0809EF10: + ldrb r0, [r4, #0xc] + cmp r0, #2 + bne _0809EF56 + ldrb r0, [r4, #0xd] + cmp r0, #1 + bls _0809EF52 + b _0809EF56 +_0809EF1E: + ldrb r0, [r4, #0xc] + cmp r0, #2 + beq _0809EF52 + b _0809EF56 +_0809EF26: + ldr r2, _0809EF44 @ =gUnk_03001160 + movs r7, #0x2e + ldrsh r1, [r4, r7] + movs r7, #0x2e + ldrsh r0, [r2, r7] + cmp r1, r0 + bne _0809EF56 + movs r0, #0x32 + ldrsh r1, [r4, r0] + movs r7, #0x32 + ldrsh r0, [r2, r7] + cmp r1, r0 + beq _0809EF52 + b _0809EF56 + .align 2, 0 +_0809EF44: .4byte gUnk_03001160 +_0809EF48: + ldrb r0, [r5, #0xf] + cmp r0, #0 + beq _0809EF52 + b _0809EF56 +_0809EF50: + movs r3, #1 +_0809EF52: + cmp r3, #0 + beq _0809EF6E +_0809EF56: + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0809EF78 + cmp r0, #0 + beq _0809EF6E + movs r0, #0x24 + ldrsh r1, [r5, r0] + ldrb r2, [r5, #0x15] + adds r0, r4, #0 + bl sub_080044AE +_0809EF6E: + ldr r4, [r4, #4] + cmp r6, r4 + bne _0809EE88 +_0809EF74: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0809EF78 +sub_0809EF78: @ 0x0809EF78 + push {r4, r5, lr} + adds r3, r0, #0 + adds r4, r1, #0 + movs r5, #0 + adds r0, #0x70 + ldrh r2, [r0] + movs r1, #0x2e + ldrsh r0, [r4, r1] + adds r1, r3, #0 + adds r1, #0x6c + ldrh r1, [r1] + subs r0, r0, r1 + cmp r2, r0 + blo _0809EFAC + adds r0, r3, #0 + adds r0, #0x72 + ldrh r2, [r0] + movs r1, #0x32 + ldrsh r0, [r4, r1] + adds r1, r3, #0 + adds r1, #0x6e + ldrh r1, [r1] + subs r0, r0, r1 + cmp r2, r0 + blo _0809EFAC + movs r5, #1 +_0809EFAC: + adds r0, r5, #0 + pop {r4, r5, pc} + + thumb_func_start sub_0809EFB0 +sub_0809EFB0: @ 0x0809EFB0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r4, r0, #0 + ldr r0, _0809F010 @ =gUnk_081243E4 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r2, r1, r0 + ldrb r2, [r2] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + mov sb, r2 + adds r1, #1 + adds r1, r1, r0 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + mov r8, r1 + movs r0, #0x2e + ldrsh r6, [r4, r0] + movs r0, #0x32 + ldrsh r5, [r4, r0] + ldr r0, _0809F014 @ =gUnk_02027EB4 + mov sl, r0 + movs r7, #0 +_0809EFE6: + adds r7, #1 + add r6, sb + add r5, r8 + mov r0, sl + adds r1, r6, #0 + adds r2, r5, #0 + movs r3, #9 + bl sub_080AE4CC + cmp r0, #0 + beq _0809EFE6 + subs r0, r7, #1 + lsls r7, r0, #4 + ldrb r0, [r4, #0xa] + cmp r0, #1 + beq _0809F034 + cmp r0, #1 + bgt _0809F018 + cmp r0, #0 + beq _0809F022 + b _0809F082 + .align 2, 0 +_0809F010: .4byte gUnk_081243E4 +_0809F014: .4byte gUnk_02027EB4 +_0809F018: + cmp r0, #2 + beq _0809F03E + cmp r0, #3 + beq _0809F064 + b _0809F082 +_0809F022: + ldrh r0, [r4, #0x2e] + subs r0, #0x10 + adds r1, r4, #0 + adds r1, #0x6c + strh r0, [r1] + ldrh r0, [r4, #0x32] + adds r0, #8 + adds r1, #2 + b _0809F054 +_0809F034: + adds r1, r7, #0 + adds r1, #8 + ldrh r0, [r4, #0x2e] + subs r0, r0, r1 + b _0809F068 +_0809F03E: + ldrh r0, [r4, #0x2e] + subs r0, #0x10 + adds r1, r4, #0 + adds r1, #0x6c + strh r0, [r1] + adds r1, r7, #0 + adds r1, #8 + ldrh r0, [r4, #0x32] + subs r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x6e +_0809F054: + strh r0, [r1] + adds r1, #2 + movs r0, #0x20 + strh r0, [r1] + adds r0, r4, #0 + adds r0, #0x72 + strh r7, [r0] + b _0809F082 +_0809F064: + ldrh r0, [r4, #0x2e] + adds r0, #8 +_0809F068: + adds r1, r4, #0 + adds r1, #0x6c + strh r0, [r1] + ldrh r0, [r4, #0x32] + subs r0, #0x10 + adds r1, #2 + strh r0, [r1] + adds r0, r4, #0 + adds r0, #0x70 + strh r7, [r0] + adds r1, #4 + movs r0, #0x20 + strh r0, [r1] +_0809F082: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0809F08C +sub_0809F08C: @ 0x0809F08C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0809F09A + subs r0, #1 + strb r0, [r4, #0xf] +_0809F09A: + adds r0, r4, #0 + bl sub_08004274 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0809F0C0 + movs r0, #0xdf + ands r0, r1 + strb r0, [r2] + movs r0, #0x14 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_0809F0E4 + b _0809F0E0 +_0809F0C0: + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0809F0E0 + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _0809F0E0 + movs r0, #0x14 + strb r0, [r4, #0xf] + ldrb r0, [r2] + movs r1, #0x10 + eors r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_0809F0E4 +_0809F0E0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809F0E4 +sub_0809F0E4: @ 0x0809F0E4 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _0809F124 @ =0x00000183 + bl sub_08004488 + ldrb r0, [r5, #0xa] + movs r1, #2 + eors r1, r0 + movs r0, #0xb2 + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _0809F120 + str r5, [r4, #0x50] + ldrb r0, [r5, #0xa] + lsls r0, r0, #1 + ldr r1, _0809F128 @ =gUnk_081243EC + adds r0, r0, r1 + movs r2, #0 + ldrsb r2, [r0, r2] + lsls r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r0, r3] + lsls r3, r3, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA48 +_0809F120: + pop {r4, r5, pc} + .align 2, 0 +_0809F124: .4byte 0x00000183 +_0809F128: .4byte gUnk_081243EC + + thumb_func_start sub_0809F12C +sub_0809F12C: @ 0x0809F12C + push {lr} + ldr r2, _0809F140 @ =gUnk_08124670 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809F140: .4byte gUnk_08124670 + + thumb_func_start sub_0809F144 +sub_0809F144: @ 0x0809F144 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _0809F188 @ =gUnk_080FD178 + str r0, [r4, #0x48] + ldr r0, _0809F18C @ =0x00004022 + movs r2, #0x2e + ldrsh r1, [r4, r2] + ldr r3, _0809F190 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r5, #0x3f + ands r1, r5 + movs r6, #0x32 + ldrsh r2, [r4, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r5 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_08004260 + pop {r4, r5, r6, pc} + .align 2, 0 +_0809F188: .4byte gUnk_080FD178 +_0809F18C: .4byte 0x00004022 +_0809F190: .4byte gUnk_03000BF0 + + thumb_func_start sub_0809F194 +sub_0809F194: @ 0x0809F194 + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x50] + ldrb r0, [r0, #0xf] + cmp r0, #1 + bne _0809F1AE + movs r0, #2 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0xa] + adds r1, #4 + adds r0, r2, #0 + bl sub_08004260 +_0809F1AE: + pop {pc} + + thumb_func_start sub_0809F1B0 +sub_0809F1B0: @ 0x0809F1B0 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r3, #1 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _0809F20C + movs r0, #0xfe + ands r0, r1 + strb r0, [r2] + movs r0, #0x1b + bl sub_080A7EE0 + adds r5, r0, #0 + cmp r5, #0 + beq _0809F21E + ldrb r0, [r4, #0xa] + strb r0, [r5, #0xa] + ldr r0, [r4, #0x50] + str r0, [r5, #0x50] + ldrb r0, [r4, #0xa] + lsls r0, r0, #1 + ldr r1, _0809F208 @ =gUnk_08124684 + adds r0, r0, r1 + movs r2, #0 + ldrsb r2, [r0, r2] + lsls r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r0, r3] + lsls r3, r3, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FA48 + movs r0, #0xec + bl sub_08004488 + b _0809F21E + .align 2, 0 +_0809F208: .4byte gUnk_08124684 +_0809F20C: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809F21E + strb r3, [r4, #0xc] + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_08004260 +_0809F21E: + pop {r4, r5, pc} + + thumb_func_start sub_0809F220 +sub_0809F220: @ 0x0809F220 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809F242 + movs r0, #4 + strb r0, [r2, #0xc] + movs r0, #0xf + strb r0, [r2, #0xe] + ldrb r1, [r2, #0xa] + adds r0, r2, #0 + bl sub_08004260 + b _0809F252 +_0809F242: + ldr r0, [r2, #0x50] + adds r0, #0x36 + movs r1, #1 + ldrb r2, [r2, #0xb] + lsls r1, r2 + ldrb r2, [r0] + orrs r1, r2 + strb r1, [r0] +_0809F252: + pop {pc} + + thumb_func_start sub_0809F254 +sub_0809F254: @ 0x0809F254 + push {r4, r5, lr} + adds r3, r0, #0 + ldrb r1, [r3, #0x18] + lsls r0, r1, #0x1e + lsrs r0, r0, #0x1e + movs r5, #1 + eors r0, r5 + movs r4, #4 + rsbs r4, r4, #0 + adds r2, r4, #0 + ands r2, r1 + orrs r2, r0 + strb r2, [r3, #0x18] + ldrb r0, [r3, #0xe] + subs r0, #1 + strb r0, [r3, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809F284 + movs r0, #1 + strb r5, [r3, #0xc] + ands r2, r4 + orrs r2, r0 + strb r2, [r3, #0x18] +_0809F284: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0809F288 +sub_0809F288: @ 0x0809F288 + push {lr} + ldr r2, _0809F29C @ =gUnk_081246EC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809F29C: .4byte gUnk_081246EC + + thumb_func_start sub_0809F2A0 +sub_0809F2A0: @ 0x0809F2A0 + push {r4, r5, r6, lr} + movs r1, #1 + strb r1, [r0, #0xc] + ldrb r1, [r0, #0xb] + strb r1, [r0, #0x1e] + ldrb r1, [r0, #0x19] + movs r2, #0xc0 + orrs r1, r2 + strb r1, [r0, #0x19] + adds r3, r0, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r2, #7 + orrs r1, r2 + strb r1, [r3] + ldr r5, _0809F2EC @ =0x00004069 + movs r2, #0x2e + ldrsh r1, [r0, r2] + ldr r3, _0809F2F0 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r0, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r0, #0x38 + ldrb r2, [r0] + adds r0, r5, #0 + bl sub_0800015E + pop {r4, r5, r6, pc} + .align 2, 0 +_0809F2EC: .4byte 0x00004069 +_0809F2F0: .4byte gUnk_03000BF0 + + thumb_func_start nullsub_537 +nullsub_537: @ 0x0809F2F4 + bx lr + .align 2, 0 + + thumb_func_start sub_0809F2F8 +sub_0809F2F8: @ 0x0809F2F8 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0809F314 @ =gUnk_081246F4 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 +_0809F314: .4byte gUnk_081246F4 + + thumb_func_start sub_0809F318 +sub_0809F318: @ 0x0809F318 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + bl sub_08004260 + bl sub_08000E50 + movs r1, #0x10 + ands r1, r0 + cmp r1, #0 + beq _0809F336 + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x18] +_0809F336: + movs r0, #0x28 + strh r0, [r4, #0x2e] + movs r0, #0x48 + strh r0, [r4, #0x32] + ldr r0, _0809F36C @ =0x0000FFB0 + strh r0, [r4, #0x36] + ldrb r1, [r4, #0x1b] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x1b] + movs r0, #1 + strb r0, [r4, #0xc] + ldr r1, _0809F370 @ =gUnk_08124704 + ldrb r0, [r4, #0xa] + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_0801D2B4 + adds r0, r4, #0 + movs r1, #7 + bl sub_0805E3A0 + pop {r4, pc} + .align 2, 0 +_0809F36C: .4byte 0x0000FFB0 +_0809F370: .4byte gUnk_08124704 + + thumb_func_start sub_0809F374 +sub_0809F374: @ 0x0809F374 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + cmp r0, #1 + bhi _0809F3AE + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #1 + bhi _0809F3C0 + movs r0, #0 + str r0, [r4, #0x34] + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + movs r0, #0xc3 + lsls r0, r0, #1 + bl sub_080A3268 + b _0809F3E6 +_0809F3AE: + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #0 + beq _0809F3C8 + cmp r0, #1 + beq _0809F3D4 +_0809F3C0: + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + b _0809F3E6 +_0809F3C8: + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_0809F3D4: + movs r0, #0 + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_0809F448 + movs r0, #0xc3 + lsls r0, r0, #1 + bl sub_080A3268 +_0809F3E6: + pop {r4, pc} + + thumb_func_start sub_0809F3E8 +sub_0809F3E8: @ 0x0809F3E8 + push {lr} + adds r2, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809F404 + movs r0, #3 + strb r0, [r2, #0xc] + adds r0, r2, #0 + movs r1, #2 + bl sub_08004260 +_0809F404: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0809F408 +sub_0809F408: @ 0x0809F408 + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x5a + ldrb r0, [r1] + cmp r0, #9 + beq _0809F41C + cmp r0, #0x80 + beq _0809F438 + b _0809F442 +_0809F41C: + movs r0, #0 + strb r0, [r1] + adds r0, r2, #0 + movs r1, #0x43 + movs r2, #0 + bl sub_080A29AC + ldr r1, _0809F434 @ =gUnk_02000080 + movs r0, #1 + strb r0, [r1] + b _0809F442 + .align 2, 0 +_0809F434: .4byte gUnk_02000080 +_0809F438: + ldr r1, _0809F444 @ =gUnk_02000080 + movs r0, #1 + strb r0, [r1, #4] + bl sub_0805E780 +_0809F442: + pop {pc} + .align 2, 0 +_0809F444: .4byte gUnk_02000080 + + thumb_func_start sub_0809F448 +sub_0809F448: @ 0x0809F448 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + bl sub_08000E50 + adds r5, r0, #0 + ldrb r0, [r6, #0xf] + lsls r2, r0, #1 + ldr r1, _0809F474 @ =gUnk_08124708 + adds r7, r2, r1 + adds r0, #1 + strb r0, [r6, #0xf] + ldr r1, [r6, #0x2c] + movs r0, #0xa0 + lsls r0, r0, #0xe + subs r4, r0, r1 + ldrb r0, [r7] + cmp r0, #0 + beq _0809F478 + cmp r0, #1 + beq _0809F492 + b _0809F49C + .align 2, 0 +_0809F474: .4byte gUnk_08124708 +_0809F478: + movs r1, #0xc0 + lsls r1, r1, #0xd + adds r0, r5, #0 + bl __modsi3 + adds r4, r0, #0 + movs r0, #0x80 + lsls r0, r0, #0x11 + ands r0, r5 + cmp r0, #0 + beq _0809F49C + rsbs r4, r4, #0 + b _0809F49C +_0809F492: + ldr r0, _0809F4BC @ =0xFFF80000 + adds r1, r4, r0 + ldr r0, _0809F4C0 @ =0x000FFFFF + ands r0, r5 + adds r4, r1, r0 +_0809F49C: + adds r0, r4, #0 + cmp r4, #0 + bge _0809F4A4 + rsbs r0, r4, #0 +_0809F4A4: + ldrb r1, [r7, #1] + lsls r1, r1, #8 + bl __divsi3 + strh r0, [r6, #0x24] + adds r0, r4, #0 + movs r1, #0 + bl sub_080045DA + lsrs r0, r0, #3 + strb r0, [r6, #0x15] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809F4BC: .4byte 0xFFF80000 +_0809F4C0: .4byte 0x000FFFFF + + thumb_func_start sub_0809F4C4 +sub_0809F4C4: @ 0x0809F4C4 + push {lr} + ldr r2, _0809F4D8 @ =gUnk_08124798 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809F4D8: .4byte gUnk_08124798 + + thumb_func_start sub_0809F4DC +sub_0809F4DC: @ 0x0809F4DC + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xb] + cmp r0, #0 + bne _0809F4FC + ldr r0, _0809F4F8 @ =gUnk_081247A0 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _0809F50C + .align 2, 0 +_0809F4F8: .4byte gUnk_081247A0 +_0809F4FC: + ldr r0, _0809F510 @ =gUnk_081247AC + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 +_0809F50C: + pop {pc} + .align 2, 0 +_0809F510: .4byte gUnk_081247AC + + thumb_func_start sub_0809F514 +sub_0809F514: @ 0x0809F514 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0x78 + strb r1, [r0, #0xe] + ldrb r2, [r0, #0x18] + subs r1, #0x7c + ands r1, r2 + strb r1, [r0, #0x18] + adds r2, r0, #0 + adds r2, #0x68 + movs r1, #0xc + strb r1, [r2] + ldr r1, _0809F540 @ =gUnk_03000BF0 + str r0, [r1, #0x30] + ldr r2, _0809F544 @ =gUnk_02034490 + movs r1, #0xff + strb r1, [r2] + bl sub_0809F7BC + pop {pc} + .align 2, 0 +_0809F540: .4byte gUnk_03000BF0 +_0809F544: .4byte gUnk_02034490 + + thumb_func_start sub_0809F548 +sub_0809F548: @ 0x0809F548 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809F590 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x5a + strb r0, [r4, #0xe] + adds r0, #0xc3 + bl sub_080A3268 + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _0809F58C @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r5, #0x32 + ldrsh r1, [r4, r5] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + bl sub_0809F814 + b _0809F5A8 + .align 2, 0 +_0809F58C: .4byte gUnk_03000BF0 +_0809F590: + ldr r0, _0809F5AC @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _0809F5A2 + adds r0, r4, #0 + bl sub_0809F7BC +_0809F5A2: + adds r0, r4, #0 + bl sub_0809F7F4 +_0809F5A8: + pop {r4, r5, pc} + .align 2, 0 +_0809F5AC: .4byte gUnk_030010A0 + + thumb_func_start sub_0809F5B0 +sub_0809F5B0: @ 0x0809F5B0 + push {lr} + ldrb r1, [r0, #0xe] + subs r1, #1 + strb r1, [r0, #0xe] + lsls r1, r1, #0x18 + cmp r1, #0 + bne _0809F5D4 + movs r0, #0x73 + bl sub_080A3268 + movs r0, #0x24 + bl sub_0807CD04 + ldr r0, _0809F5D8 @ =gUnk_080DD750 + bl sub_0804ADDC + bl sub_0805E780 +_0809F5D4: + pop {pc} + .align 2, 0 +_0809F5D8: .4byte gUnk_080DD750 + + thumb_func_start sub_0809F5DC +sub_0809F5DC: @ 0x0809F5DC + movs r1, #1 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x18] + subs r1, #5 + ands r1, r2 + strb r1, [r0, #0x18] + adds r0, #0x68 + movs r1, #0xc + strb r1, [r0] + bx lr + + thumb_func_start sub_0809F5F0 +sub_0809F5F0: @ 0x0809F5F0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + bl sub_0807CC3C + cmp r0, #0 + beq _0809F614 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + movs r0, #3 + bl sub_08078A90 + bl sub_08078B48 + ldr r0, _0809F618 @ =gUnk_03000BF0 + str r4, [r0, #0x30] +_0809F614: + pop {r4, pc} + .align 2, 0 +_0809F618: .4byte gUnk_03000BF0 + + thumb_func_start sub_0809F61C +sub_0809F61C: @ 0x0809F61C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _0809F678 @ =gUnk_03000BF0 + ldrb r1, [r5, #0xf] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _0809F694 + ldrb r0, [r4, #0xe] + cmp r0, #0x1e + bne _0809F638 + ldrb r0, [r4, #0xb] + bl sub_0807CCB4 +_0809F638: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809F67C + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + adds r0, #0xa5 + bl sub_080A3268 + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldrh r1, [r5, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r2, #0x32 + ldrsh r1, [r4, r2] + ldrh r2, [r5, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + bl sub_0809F814 + b _0809F694 + .align 2, 0 +_0809F678: .4byte gUnk_03000BF0 +_0809F67C: + ldr r0, _0809F698 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _0809F68E + adds r0, r4, #0 + bl sub_0809F7BC +_0809F68E: + adds r0, r4, #0 + bl sub_0809F7F4 +_0809F694: + pop {r4, r5, pc} + .align 2, 0 +_0809F698: .4byte gUnk_030010A0 + + thumb_func_start sub_0809F69C +sub_0809F69C: @ 0x0809F69C + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809F6C0 + movs r0, #0x1e + strb r0, [r1, #0xe] + movs r0, #4 + strb r0, [r1, #0xc] + ldr r1, _0809F6C4 @ =gUnk_03000BF0 + ldr r0, _0809F6C8 @ =gUnk_03001160 + str r0, [r1, #0x30] + movs r0, #0x73 + bl sub_080A3268 +_0809F6C0: + pop {pc} + .align 2, 0 +_0809F6C4: .4byte gUnk_03000BF0 +_0809F6C8: .4byte gUnk_03001160 + + thumb_func_start sub_0809F6CC +sub_0809F6CC: @ 0x0809F6CC + push {lr} + adds r2, r0, #0 + ldr r0, _0809F6F8 @ =gUnk_03000BF0 + ldrb r1, [r0, #0xf] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _0809F6F4 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809F6F4 + ldr r0, _0809F6FC @ =gUnk_03003F80 + adds r0, #0x8b + movs r1, #1 + strb r1, [r0] + bl sub_0805E780 +_0809F6F4: + pop {pc} + .align 2, 0 +_0809F6F8: .4byte gUnk_03000BF0 +_0809F6FC: .4byte gUnk_03003F80 + + thumb_func_start sub_0809F700 +sub_0809F700: @ 0x0809F700 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0809F722 + movs r0, #1 + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r1, #0x1e + ands r0, r1 + adds r0, #8 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x10] + movs r0, #0xc + orrs r0, r1 + strb r0, [r4, #0x10] +_0809F722: + ldr r0, _0809F768 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0809F750 + bl sub_08000E50 + ldr r3, _0809F76C @ =gUnk_081247C0 + movs r2, #7 + adds r1, r0, #0 + ands r1, r2 + adds r1, r1, r3 + ldrb r1, [r1] + movs r5, #0x62 + strb r1, [r5, r4] + lsrs r0, r0, #4 + ands r0, r2 + adds r0, r0, r3 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x63 + strb r0, [r1] +_0809F750: + adds r0, r4, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809F766 + bl sub_0805E780 +_0809F766: + pop {r4, r5, pc} + .align 2, 0 +_0809F768: .4byte gUnk_030010A0 +_0809F76C: .4byte gUnk_081247C0 + + thumb_func_start sub_0809F770 +sub_0809F770: @ 0x0809F770 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0xa3 + movs r1, #1 + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _0809F7B6 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA30 + bl sub_08000E50 + ldrh r2, [r4, #0x2e] + subs r2, #0x10 + movs r3, #0x1f + adds r1, r0, #0 + ands r1, r3 + adds r2, r2, r1 + strh r2, [r4, #0x2e] + ldrh r2, [r4, #0x32] + subs r2, #0x10 + asrs r1, r0, #8 + ands r1, r3 + adds r2, r2, r1 + strh r2, [r4, #0x32] + asrs r0, r0, #0x10 + movs r1, #3 + ands r0, r1 + strb r0, [r4, #0x1e] + movs r0, #0xff + strb r0, [r4, #0x15] +_0809F7B6: + adds r0, r4, #0 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0809F7BC +sub_0809F7BC: @ 0x0809F7BC + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + movs r5, #0 + ldr r7, _0809F7F0 @ =gUnk_081247C8 +_0809F7C4: + adds r0, r6, #0 + bl sub_0809F770 + adds r4, r0, #0 + cmp r4, #0 + beq _0809F7E8 + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r7 + ldrh r1, [r1] + strh r1, [r4, #0x24] + lsrs r0, r0, #8 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] +_0809F7E8: + adds r5, #1 + cmp r5, #7 + bls _0809F7C4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809F7F0: .4byte gUnk_081247C8 + + thumb_func_start sub_0809F7F4 +sub_0809F7F4: @ 0x0809F7F4 + push {lr} + adds r1, r0, #0 + adds r1, #0x68 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809F812 + movs r0, #0xc + strb r0, [r1] + movs r0, #0xc2 + lsls r0, r0, #1 + bl sub_080A3268 +_0809F812: + pop {pc} + + thumb_func_start sub_0809F814 +sub_0809F814: @ 0x0809F814 + push {lr} + adds r1, r0, #0 + ldr r0, _0809F824 @ =gUnk_081247D0 + movs r2, #1 + bl sub_0807BB68 + pop {pc} + .align 2, 0 +_0809F824: .4byte gUnk_081247D0 + + thumb_func_start sub_0809F828 +sub_0809F828: @ 0x0809F828 + push {lr} + ldr r2, _0809F83C @ =gUnk_081247F8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809F83C: .4byte gUnk_081247F8 + + thumb_func_start sub_0809F840 +sub_0809F840: @ 0x0809F840 + push {lr} + adds r2, r0, #0 + movs r1, #0 + movs r0, #1 + strb r0, [r2, #0xc] + strb r1, [r2, #0x1e] + movs r0, #0x20 + strb r0, [r2, #0xe] + strb r1, [r2, #0xf] + ldrb r0, [r2, #0xb] + cmp r0, #0 + beq _0809F860 + ldrb r0, [r2, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r2, #0x18] +_0809F860: + adds r0, r2, #0 + bl sub_08016A04 + pop {pc} + + thumb_func_start sub_0809F868 +sub_0809F868: @ 0x0809F868 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + movs r2, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809F8A2 + ldrb r0, [r1, #0xf] + cmp r0, #0 + bne _0809F890 + ldrb r0, [r1, #0x1e] + adds r0, #1 + strb r0, [r1, #0x1e] + ands r0, r2 + cmp r0, #3 + bne _0809F89E + movs r0, #1 + b _0809F89C +_0809F890: + ldrb r0, [r1, #0x1e] + subs r0, #1 + strb r0, [r1, #0x1e] + ands r0, r2 + cmp r0, #0 + bne _0809F89E +_0809F89C: + strb r0, [r1, #0xf] +_0809F89E: + movs r0, #0x20 + strb r0, [r1, #0xe] +_0809F8A2: + pop {pc} + + thumb_func_start sub_0809F8A4 +sub_0809F8A4: @ 0x0809F8A4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + ldr r0, _0809F904 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x42 + bhi _0809F8FC + movs r5, #0 +_0809F8B6: + movs r0, #0x1d + bl sub_080A7EE0 + adds r4, r0, #0 + cmp r5, #0 + bne _0809F8C6 + mov r8, r4 + adds r7, r4, #0 +_0809F8C6: + strb r5, [r4, #0xa] + mov r0, r8 + str r0, [r4, #0x50] + str r7, [r4, #0x54] + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0806FA24 + adds r1, r4, #0 + adds r1, #0x68 + adds r3, r5, #1 + movs r2, #7 +_0809F8DE: + ldrh r0, [r6, #0x2e] + strh r0, [r1] + adds r1, #2 + ldrh r0, [r6, #0x32] + strh r0, [r1] + adds r1, #2 + subs r2, #1 + cmp r2, #0 + bge _0809F8DE + adds r7, r4, #0 + adds r5, r3, #0 + cmp r5, #4 + ble _0809F8B6 + bl sub_0805E780 +_0809F8FC: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0809F904: .4byte gUnk_03003DBC + + thumb_func_start sub_0809F908 +sub_0809F908: @ 0x0809F908 + push {lr} + ldr r2, _0809F91C @ =gUnk_08124800 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809F91C: .4byte gUnk_08124800 + + thumb_func_start sub_0809F920 +sub_0809F920: @ 0x0809F920 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _0809F934 + bl sub_0805E780 +_0809F934: + movs r2, #1 + strb r2, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #4 + movs r0, #0x48 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x3f + strb r2, [r0] + subs r1, #5 + movs r0, #2 + strb r0, [r1] + ldr r0, _0809F960 @ =gUnk_080FD150 + str r0, [r4, #0x48] + pop {r4, pc} + .align 2, 0 +_0809F960: .4byte gUnk_080FD150 + + thumb_func_start sub_0809F964 +sub_0809F964: @ 0x0809F964 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0xa1 + bne _0809F9A8 + adds r0, r4, #0 + movs r1, #0x4e + movs r2, #0 + bl sub_080A29AC + adds r2, r0, #0 + cmp r2, #0 + beq _0809F99A + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r3] + adds r1, r2, #0 + adds r1, #0x63 + movs r0, #0xfb + strb r0, [r1] +_0809F99A: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + bl sub_0805E780 +_0809F9A8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809F9AC +sub_0809F9AC: @ 0x0809F9AC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0809F9D2 + movs r0, #1 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #9 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_0809F9D2: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809F9DC +sub_0809F9DC: @ 0x0809F9DC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809FA9A + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x1f + bhi _0809FA9A + lsls r0, r0, #2 + ldr r1, _0809FA00 @ =_0809FA04 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0809FA00: .4byte _0809FA04 +_0809FA04: @ jump table + .4byte _0809FA84 @ case 0 + .4byte _0809FA84 @ case 1 + .4byte _0809FA9A @ case 2 + .4byte _0809FA9A @ case 3 + .4byte _0809FA84 @ case 4 + .4byte _0809FA84 @ case 5 + .4byte _0809FA84 @ case 6 + .4byte _0809FA9A @ case 7 + .4byte _0809FA84 @ case 8 + .4byte _0809FA84 @ case 9 + .4byte _0809FA84 @ case 10 + .4byte _0809FA84 @ case 11 + .4byte _0809FA84 @ case 12 + .4byte _0809FA9A @ case 13 + .4byte _0809FA9A @ case 14 + .4byte _0809FA9A @ case 15 + .4byte _0809FA9A @ case 16 + .4byte _0809FA9A @ case 17 + .4byte _0809FA9A @ case 18 + .4byte _0809FA9A @ case 19 + .4byte _0809FA9A @ case 20 + .4byte _0809FA9A @ case 21 + .4byte _0809FA9A @ case 22 + .4byte _0809FA9A @ case 23 + .4byte _0809FA9A @ case 24 + .4byte _0809FA9A @ case 25 + .4byte _0809FA9A @ case 26 + .4byte _0809FA9A @ case 27 + .4byte _0809FA9A @ case 28 + .4byte _0809FA9A @ case 29 + .4byte _0809FA84 @ case 30 + .4byte _0809FA84 @ case 31 +_0809FA84: + movs r0, #5 + strb r0, [r4, #0xc] + ldr r0, _0809FAB4 @ =gUnk_03001160 + str r0, [r4, #0x54] + ldrb r0, [r4, #0xa] + movs r1, #0 + movs r2, #0 + bl sub_080A7C00 + bl sub_0805E780 +_0809FA9A: + ldr r0, _0809FAB8 @ =gUnk_08124824 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_08080CB4 + pop {r4, pc} + .align 2, 0 +_0809FAB4: .4byte gUnk_03001160 +_0809FAB8: .4byte gUnk_08124824 + + thumb_func_start sub_0809FABC +sub_0809FABC: @ 0x0809FABC + push {lr} + adds r3, r0, #0 + movs r0, #1 + strb r0, [r3, #0xc] + ldrb r0, [r3, #0xb] + cmp r0, #0 + beq _0809FAD0 + cmp r0, #2 + beq _0809FADE + b _0809FAE6 +_0809FAD0: + movs r0, #0xf0 + lsls r0, r0, #9 + str r0, [r3, #0x20] + ldrh r0, [r3, #0x36] + adds r0, #8 + strh r0, [r3, #0x36] + b _0809FAE6 +_0809FADE: + adds r0, r3, #0 + bl sub_0809FECC + b _0809FB30 +_0809FAE6: + adds r1, r3, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + adds r0, r3, #0 + adds r0, #0x3c + movs r2, #0x17 + strb r2, [r0] + adds r1, #8 + movs r0, #0x48 + strb r0, [r1] + subs r1, #1 + movs r0, #7 + strb r0, [r1] + adds r0, r3, #0 + adds r0, #0x3b + strb r2, [r0] + ldr r0, _0809FB34 @ =gUnk_080FD1A8 + str r0, [r3, #0x48] + movs r0, #1 + strb r0, [r3, #0x1c] + ldrh r1, [r3, #0x2e] + adds r0, r3, #0 + adds r0, #0x74 + strh r1, [r0] + ldrh r0, [r3, #0x32] + adds r1, r3, #0 + adds r1, #0x76 + strh r0, [r1] + adds r0, r3, #0 + movs r1, #3 + bl sub_0805E3A0 + movs r0, #0x9b + lsls r0, r0, #1 + bl sub_08004488 +_0809FB30: + pop {pc} + .align 2, 0 +_0809FB34: .4byte gUnk_080FD1A8 + + thumb_func_start sub_0809FB38 +sub_0809FB38: @ 0x0809FB38 + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x34] + ldr r1, _0809FB60 @ =0xFFFF2000 + adds r0, r0, r1 + str r0, [r2, #0x34] + adds r0, r2, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #0 + beq _0809FB74 + ldrb r0, [r2, #0xe] + cmp r0, #0 + beq _0809FB64 + adds r1, r0, #0 + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #1 + b _0809FB66 + .align 2, 0 +_0809FB60: .4byte 0xFFFF2000 +_0809FB64: + movs r0, #0xf0 +_0809FB66: + strb r0, [r2, #0xe] + movs r0, #3 + strb r0, [r2, #0xc] + movs r0, #1 + strb r0, [r2, #0xf] + movs r0, #0x80 + strh r0, [r2, #0x24] +_0809FB74: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0809FB78 +sub_0809FB78: @ 0x0809FB78 + push {lr} + ldr r2, _0809FB8C @ =gUnk_08124840 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809FB8C: .4byte gUnk_08124840 + + thumb_func_start sub_0809FB90 +sub_0809FB90: @ 0x0809FB90 + movs r3, #1 + movs r1, #1 + strb r1, [r0, #0xd] + strb r1, [r0, #0x1d] + ldrb r2, [r0, #0x18] + subs r1, #5 + ands r1, r2 + orrs r1, r3 + strb r1, [r0, #0x18] + bx lr + + thumb_func_start sub_0809FBA4 +sub_0809FBA4: @ 0x0809FBA4 + push {lr} + adds r2, r0, #0 + ldr r0, _0809FBC8 @ =gUnk_03003F80 + ldrb r1, [r0, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #1 + bne _0809FBC2 + adds r0, r2, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x13 + beq _0809FBCC +_0809FBC2: + movs r0, #3 + strb r0, [r2, #0xc] + b _0809FBD2 + .align 2, 0 +_0809FBC8: .4byte gUnk_03003F80 +_0809FBCC: + adds r0, r2, #0 + bl sub_0806F4E8 +_0809FBD2: + pop {pc} + + thumb_func_start sub_0809FBD4 +sub_0809FBD4: @ 0x0809FBD4 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _0809FBFC @ =gUnk_03003F80 + ldrb r1, [r0, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #1 + bne _0809FBF4 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r5, #0x7f + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0x13 + beq _0809FC00 +_0809FBF4: + movs r0, #3 + strb r0, [r4, #0xc] + b _0809FC22 + .align 2, 0 +_0809FBFC: .4byte gUnk_03003F80 +_0809FC00: + adds r0, r4, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _0809FC22 + ldrb r1, [r4, #0x10] + adds r0, r5, #0 + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #5 + strb r0, [r4, #0xc] + ldr r0, _0809FC24 @ =gUnk_03001160 + str r0, [r4, #0x54] + ldrb r0, [r4, #0xa] + movs r1, #0 + bl sub_08053FF0 +_0809FC22: + pop {r4, r5, pc} + .align 2, 0 +_0809FC24: .4byte gUnk_03001160 + + thumb_func_start sub_0809FC28 +sub_0809FC28: @ 0x0809FC28 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809FCAC + bl sub_08000E50 + adds r5, r0, #0 + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r0, #0x20 + strb r0, [r4, #0xf] + ldr r2, _0809FC6C @ =gUnk_0812484C + lsrs r0, r5, #8 + movs r1, #1 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_0809FE9C + cmp r0, #0 + beq _0809FC70 + movs r0, #0x1f + ands r5, r0 + strb r5, [r4, #0x15] + b _0809FC8A + .align 2, 0 +_0809FC6C: .4byte gUnk_0812484C +_0809FC70: + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + adds r2, r4, #0 + adds r2, #0x74 + ldrh r2, [r2] + adds r3, r4, #0 + adds r3, #0x76 + ldrh r3, [r3] + bl sub_080045D4 + strb r0, [r4, #0x15] +_0809FC8A: + ldrb r1, [r4, #0x15] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + beq _0809FCAC + movs r0, #0x10 + eors r1, r0 + lsrs r1, r1, #4 + movs r0, #1 + ands r1, r0 + lsls r1, r1, #6 + ldrb r2, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] +_0809FCAC: + adds r0, r4, #0 + bl sub_080AEFB4 + bl sub_0805E40C + cmp r0, #0 + bne _0809FCF8 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0809FCF8 + ldr r0, _0809FCFC @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0809FCE0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0809FCE0 + adds r0, r4, #0 + movs r1, #0 + bl sub_08081404 +_0809FCE0: + ldrb r0, [r4, #0xe] + cmp r0, #0x3b + bhi _0809FCF8 + ldrb r2, [r4, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] +_0809FCF8: + pop {r4, r5, pc} + .align 2, 0 +_0809FCFC: .4byte gUnk_030010A0 + + thumb_func_start sub_0809FD00 +sub_0809FD00: @ 0x0809FD00 + push {r4, lr} + adds r4, r0, #0 + ldr r2, [r4, #0x54] + ldrh r1, [r2, #8] + ldr r0, _0809FD18 @ =0x00000B08 + cmp r1, r0 + beq _0809FD1C + adds r0, r4, #0 + movs r1, #0 + bl sub_08081404 + b _0809FD44 + .align 2, 0 +_0809FD18: .4byte 0x00000B08 +_0809FD1C: + adds r0, r2, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldrh r0, [r4, #0x36] + subs r0, #1 + strh r0, [r4, #0x36] + ldr r1, _0809FD48 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080177A0 + cmp r0, #0 + beq _0809FD44 + adds r0, r4, #0 + bl sub_0809FECC + ldrb r0, [r4, #0xa] + movs r1, #0 + bl sub_08053FF0 +_0809FD44: + pop {r4, pc} + .align 2, 0 +_0809FD48: .4byte gUnk_03001160 + + thumb_func_start sub_0809FD4C +sub_0809FD4C: @ 0x0809FD4C + push {lr} + adds r1, r0, #0 + movs r2, #6 + strb r2, [r1, #0xc] + movs r0, #0x80 + strb r0, [r1, #0xe] + strb r2, [r1, #0xf] + ldrb r2, [r1, #0x10] + movs r0, #0x7f + ands r0, r2 + strb r0, [r1, #0x10] + ldrb r2, [r1, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + movs r2, #1 + orrs r0, r2 + strb r0, [r1, #0x18] + adds r3, r1, #0 + adds r3, #0x29 + ldrb r2, [r3] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r2 + movs r2, #0x10 + orrs r0, r2 + strb r0, [r3] + adds r2, r1, #0 + adds r2, #0x63 + movs r0, #0xfb + strb r0, [r2] + ldr r0, [r1, #0x54] + bl sub_0806FA24 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0809FD94 +sub_0809FD94: @ 0x0809FD94 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r6, [r5, #0x54] + ldr r2, _0809FE24 @ =gUnk_080C9160 + ldrb r0, [r5, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + movs r3, #0 + ldrsh r1, [r0, r3] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + cmp r0, #0 + bge _0809FDB4 + ldr r1, _0809FE28 @ =0x0000FFFF + adds r0, r0, r1 +_0809FDB4: + asrs r0, r0, #0x10 + ldrh r3, [r6, #0x2e] + adds r0, r0, r3 + strh r0, [r5, #0x2e] + ldrb r0, [r5, #0xe] + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r2 + movs r2, #0 + ldrsh r1, [r0, r2] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #8 + cmp r0, #0 + bge _0809FDD6 + ldr r3, _0809FE28 @ =0x0000FFFF + adds r0, r0, r3 +_0809FDD6: + asrs r1, r0, #0x10 + ldrh r0, [r6, #0x32] + subs r0, r0, r1 + strh r0, [r5, #0x32] + ldrb r3, [r5, #0xe] + adds r0, r3, #0 + adds r0, #8 + strb r0, [r5, #0xe] + ldrh r0, [r6, #0x36] + strh r0, [r5, #0x36] + ldrb r2, [r6, #0x1b] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r4, [r5, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r4 + orrs r0, r2 + strb r0, [r5, #0x1b] + ldrb r0, [r6, #0x19] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r5, #0x19] + ands r1, r2 + orrs r1, r0 + strb r1, [r5, #0x19] + subs r3, #0x39 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + cmp r3, #0x7e + bhi _0809FE2C + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #3 + b _0809FE3A + .align 2, 0 +_0809FE24: .4byte gUnk_080C9160 +_0809FE28: .4byte 0x0000FFFF +_0809FE2C: + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #5 +_0809FE3A: + orrs r1, r0 + strb r1, [r2] + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + adds r4, r5, #0 + adds r4, #0x63 + cmp r0, #0 + bne _0809FE6C + movs r0, #6 + strb r0, [r5, #0xf] + ldrb r0, [r4] + subs r0, #1 + strb r0, [r4] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #0x16 + rsbs r1, r1, #0 + cmp r0, r1 + bge _0809FE6C + adds r0, r5, #0 + movs r1, #1 + bl sub_08081404 +_0809FE6C: + movs r1, #0 + ldrsb r1, [r4, r1] + movs r0, #0x11 + rsbs r0, r0, #0 + cmp r1, r0 + bge _0809FE8A + ldrb r2, [r5, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x18] +_0809FE8A: + adds r1, r5, #0 + adds r1, #0x87 + ldrb r0, [r1] + cmp r0, #0xa + bls _0809FE98 + movs r0, #0xa + strb r0, [r1] +_0809FE98: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0809FE9C +sub_0809FE9C: @ 0x0809FE9C + push {lr} + adds r2, r0, #0 + movs r1, #0x2e + ldrsh r0, [r2, r1] + adds r1, r2, #0 + adds r1, #0x74 + ldrh r1, [r1] + subs r0, r0, r1 + adds r0, #0x48 + cmp r0, #0x90 + bhi _0809FEC8 + movs r1, #0x32 + ldrsh r0, [r2, r1] + adds r1, r2, #0 + adds r1, #0x76 + ldrh r1, [r1] + subs r0, r0, r1 + adds r0, #0x30 + cmp r0, #0x60 + bhi _0809FEC8 + movs r0, #1 + b _0809FECA +_0809FEC8: + movs r0, #0 +_0809FECA: + pop {pc} + + thumb_func_start sub_0809FECC +sub_0809FECC: @ 0x0809FECC + ldr r1, _0809FEDC @ =gUnk_03001160 + str r1, [r0, #0x54] + movs r2, #0 + movs r1, #5 + strb r1, [r0, #0xc] + strb r2, [r0, #0xd] + bx lr + .align 2, 0 +_0809FEDC: .4byte gUnk_03001160 + + thumb_func_start sub_0809FEE0 +sub_0809FEE0: @ 0x0809FEE0 + push {lr} + ldr r2, _0809FEF4 @ =gUnk_08124850 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0809FEF4: .4byte gUnk_08124850 + + thumb_func_start sub_0809FEF8 +sub_0809FEF8: @ 0x0809FEF8 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r1, _0809FF20 @ =gUnk_0812485C + ldrb r0, [r4, #0xa] + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08004260 + ldr r1, _0809FF24 @ =gUnk_08124860 + ldrb r0, [r4, #0xa] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + bl sub_080A3268 + pop {r4, pc} + .align 2, 0 +_0809FF20: .4byte gUnk_0812485C +_0809FF24: .4byte gUnk_08124860 + + thumb_func_start sub_0809FF28 +sub_0809FF28: @ 0x0809FF28 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0809FF64 + movs r0, #2 + strb r0, [r4, #0xc] + ldr r1, [r4, #0x50] + ldrb r0, [r4, #0xe] + strb r0, [r1, #0x10] + ldrb r2, [r4, #0xf] + movs r0, #3 + ands r2, r0 + ldrb r3, [r1, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r1, #0x18] + adds r1, #0x6d + ldrb r2, [r1] + movs r0, #0xef + ands r0, r2 + strb r0, [r1] +_0809FF64: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0809FF68 +sub_0809FF68: @ 0x0809FF68 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xc] + cmp r1, #0 + bne _0809FFA2 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #8 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + ldrb r0, [r4, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldr r1, _0809FFC4 @ =gUnk_08124868 + ldrb r0, [r4, #0xa] + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r4, #0x1e] + adds r1, r4, #0 + adds r1, #0x68 + movs r0, #0x78 + strh r0, [r1] +_0809FFA2: + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _080A0068 + movs r0, #0xff + bl sub_0807CC3C + cmp r0, #0 + beq _080A00AA + ldrb r2, [r4, #0xd] + cmp r2, #1 + beq _080A0006 + cmp r2, #1 + bgt _0809FFC8 + cmp r2, #0 + beq _0809FFCE + b _080A005A + .align 2, 0 +_0809FFC4: .4byte gUnk_08124868 +_0809FFC8: + cmp r2, #2 + beq _080A0038 + b _080A005A +_0809FFCE: + adds r1, r4, #0 + adds r1, #0x68 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080A005A + movs r0, #0x20 + strh r0, [r1] + movs r1, #1 + strb r1, [r4, #0xe] + movs r0, #0 + strb r0, [r4, #0xf] + strb r1, [r4, #0xd] + strb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_080AE068 + movs r1, #0xc6 + lsls r1, r1, #1 + adds r0, r4, #0 + bl sub_080ADF80 + movs r0, #0xf6 + bl sub_080A3268 + b _080A005A +_080A0006: + adds r1, r4, #0 + adds r1, #0x68 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080A005A + movs r0, #0x2d + strh r0, [r1] + strb r2, [r4, #0xe] + movs r0, #2 + strb r0, [r4, #0xd] + strb r0, [r4, #0xa] + adds r0, r4, #0 + bl sub_080AE068 + ldr r1, _080A0034 @ =0x0000018D + adds r0, r4, #0 + bl sub_080ADF80 + b _080A005A + .align 2, 0 +_080A0034: .4byte 0x0000018D +_080A0038: + adds r1, r4, #0 + adds r1, #0x68 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080A005A + movs r0, #3 + strb r0, [r4, #0xd] + ldr r1, _080A0064 @ =gUnk_02000080 + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] + movs r0, #0x73 + bl sub_080A3268 +_080A005A: + adds r0, r4, #0 + bl sub_080A00B0 + b _080A00AA + .align 2, 0 +_080A0064: .4byte gUnk_02000080 +_080A0068: + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _080A00A4 + cmp r0, #2 + bne _080A00A4 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _080A00A4 + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _080A00AC @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + movs r0, #0x39 + movs r2, #1 + bl sub_0807B314 +_080A00A4: + adds r0, r4, #0 + bl sub_080A00B0 +_080A00AA: + pop {r4, r5, pc} + .align 2, 0 +_080A00AC: .4byte gUnk_03000BF0 + + thumb_func_start sub_080A00B0 +sub_080A00B0: @ 0x080A00B0 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A00DA + movs r0, #8 + strb r0, [r2, #0xe] + ldr r1, _080A00DC @ =gUnk_08124868 + ldrb r0, [r2, #0xa] + adds r0, r0, r1 + ldrb r1, [r2, #0xf] + ldrb r0, [r0] + adds r0, r1, r0 + strb r0, [r2, #0x1e] + adds r1, #1 + movs r0, #3 + ands r1, r0 + strb r1, [r2, #0xf] +_080A00DA: + pop {pc} + .align 2, 0 +_080A00DC: .4byte gUnk_08124868 + + thumb_func_start sub_080A00E0 +sub_080A00E0: @ 0x080A00E0 + push {lr} + ldr r2, _080A00F4 @ =gUnk_0812486C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A00F4: .4byte gUnk_0812486C + + thumb_func_start sub_080A00F8 +sub_080A00F8: @ 0x080A00F8 + push {lr} + ldrb r1, [r0, #0xc] + adds r1, #1 + movs r3, #0 + strb r1, [r0, #0xc] + adds r2, r0, #0 + adds r2, #0x38 + movs r1, #1 + strb r1, [r2] + ldrb r1, [r0, #0x19] + movs r2, #0xc0 + orrs r1, r2 + strb r1, [r0, #0x19] + movs r1, #0x29 + adds r1, r1, r0 + mov ip, r1 + ldrb r1, [r1] + movs r2, #7 + orrs r1, r2 + mov r2, ip + strb r1, [r2] + strb r3, [r0, #0xd] + movs r1, #0 + bl sub_08004260 + pop {pc} + + thumb_func_start sub_080A012C +sub_080A012C: @ 0x080A012C + push {r4, lr} + adds r4, r0, #0 + movs r0, #0 + bl sub_0807CC3C + cmp r0, #0 + beq _080A0154 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A0154 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] +_080A0154: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A0158 +sub_080A0158: @ 0x080A0158 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + bl sub_0807CC3C + cmp r0, #0 + beq _080A018A + adds r0, r4, #0 + bl sub_080A0190 + adds r0, r4, #0 + movs r1, #0x1e + bl sub_0805E4E0 + ldr r1, _080A018C @ =gUnk_03001160 + adds r0, r4, #0 + movs r2, #0x10 + movs r3, #0x10 + bl sub_080041A0 + cmp r0, #0 + beq _080A018A + movs r0, #0x37 + bl sub_0805B390 +_080A018A: + pop {r4, pc} + .align 2, 0 +_080A018C: .4byte gUnk_03001160 + + thumb_func_start sub_080A0190 +sub_080A0190: @ 0x080A0190 + push {r4, lr} + movs r4, #0 + movs r1, #1 + strb r1, [r0, #0xd] + ldr r1, _080A01B8 @ =gUnk_03001160 + bl sub_0806FA24 + ldr r2, _080A01BC @ =gUnk_03003F80 + movs r0, #3 + strb r0, [r2, #0xc] + adds r0, r2, #0 + adds r0, #0x38 + strb r4, [r0] + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #8 + orrs r0, r1 + str r0, [r2, #0x30] + pop {r4, pc} + .align 2, 0 +_080A01B8: .4byte gUnk_03001160 +_080A01BC: .4byte gUnk_03003F80 + + thumb_func_start sub_080A01C0 +sub_080A01C0: @ 0x080A01C0 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080A01DC @ =gUnk_08124898 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_08080CB4 + pop {r4, pc} + .align 2, 0 +_080A01DC: .4byte gUnk_08124898 + + thumb_func_start sub_080A01E0 +sub_080A01E0: @ 0x080A01E0 + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + movs r3, #1 + strb r3, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0x19] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x19] + ldr r0, _080A027C @ =gUnk_080FD1A0 + str r0, [r4, #0x48] + ldr r0, _080A0280 @ =0x0000FF40 + strh r0, [r4, #0x36] + adds r1, r4, #0 + adds r1, #0x6a + movs r0, #0x40 + strb r0, [r1] + ldrb r0, [r4, #0xa] + cmp r0, #0x43 + bgt _080A0246 + cmp r0, #0x42 + bge _080A0246 + cmp r0, #0x40 + beq _080A0246 + cmp r0, #0x41 + bne _080A0246 + ldr r2, _080A0284 @ =gUnk_03000F50 + ldrh r1, [r2] + ldr r0, _080A0288 @ =0x0000FDFF + ands r0, r1 + strh r0, [r2] + adds r0, r4, #0 + adds r0, #0x38 + strb r3, [r0] +_080A0246: + ldr r0, _080A028C @ =gUnk_0800A0B4 + bl sub_0807DB2C + ldr r1, _080A0284 @ =gUnk_03000F50 + adds r2, r1, #0 + adds r2, #0x66 + movs r0, #0xc8 + lsls r0, r0, #3 + strh r0, [r2] + adds r1, #0x68 + movs r0, #0x80 + lsls r0, r0, #5 + strh r0, [r1] + bl sub_0805BC4C + ldrb r2, [r4, #0xa] + subs r2, #0x40 + adds r0, r4, #0 + movs r1, #0xad + movs r3, #0 + bl sub_080A2988 + cmp r0, #0 + beq _080A027A + str r4, [r0, #0x50] + str r0, [r4, #0x54] +_080A027A: + pop {r4, pc} + .align 2, 0 +_080A027C: .4byte gUnk_080FD1A0 +_080A0280: .4byte 0x0000FF40 +_080A0284: .4byte gUnk_03000F50 +_080A0288: .4byte 0x0000FDFF +_080A028C: .4byte gUnk_0800A0B4 + + thumb_func_start sub_080A0290 +sub_080A0290: @ 0x080A0290 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _080A02BC @ =gUnk_02033280 + ldr r0, [r5] + movs r1, #4 + ands r0, r1 + cmp r0, #0 + beq _080A02CA + adds r0, r4, #0 + bl sub_080A0424 + ldrh r2, [r4, #0x36] + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #8 + rsbs r0, r0, #0 + cmp r1, r0 + bge _080A02C0 + adds r0, r2, #1 + strh r0, [r4, #0x36] + b _080A02CA + .align 2, 0 +_080A02BC: .4byte gUnk_02033280 +_080A02C0: + movs r1, #2 + strb r1, [r4, #0xc] + ldr r0, [r5] + orrs r0, r1 + str r0, [r5] +_080A02CA: + pop {r4, r5, pc} + + thumb_func_start sub_080A02CC +sub_080A02CC: @ 0x080A02CC + push {r4, lr} + adds r4, r0, #0 + bl sub_080A0424 + adds r0, r4, #0 + bl sub_080A0444 + adds r0, r4, #0 + bl sub_08017850 + cmp r0, #0 + beq _080A0342 + ldr r0, [r4, #0x54] + bl sub_0805E7BC + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + movs r2, #0 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x2d + strb r0, [r4, #0xe] + ldr r0, _080A0344 @ =gUnk_03000F50 + adds r3, r0, #0 + adds r3, #0x66 + movs r1, #0xc8 + lsls r1, r1, #3 + strh r1, [r3] + adds r0, #0x68 + strh r2, [r0] + ldrb r0, [r4, #0xa] + movs r1, #0 + movs r2, #1 + bl sub_080A7C18 + adds r0, r4, #0 + movs r1, #1 + bl sub_0808C650 + movs r0, #6 + movs r1, #2 + bl sub_08050054 + movs r0, #0xf8 + bl sub_080A3268 + movs r0, #0xa4 + lsls r0, r0, #1 + bl sub_080A3268 + movs r0, #5 + bl sub_080A3268 + ldr r0, _080A0348 @ =0x80110000 + bl sub_080A3268 +_080A0342: + pop {r4, pc} + .align 2, 0 +_080A0344: .4byte gUnk_03000F50 +_080A0348: .4byte 0x80110000 + + thumb_func_start sub_080A034C +sub_080A034C: @ 0x080A034C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080A0378 + adds r0, r4, #0 + bl sub_080A0424 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A038C + ldr r0, _080A0374 @ =gUnk_03001160 + movs r1, #0 + bl sub_0805E3A0 + b _080A038C + .align 2, 0 +_080A0374: .4byte gUnk_03001160 +_080A0378: + movs r0, #0 + movs r1, #0x3c + bl sub_0805E4E0 + bl sub_0808C67C + cmp r0, #0 + beq _080A038C + movs r0, #4 + strb r0, [r4, #0xc] +_080A038C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A0390 +sub_080A0390: @ 0x080A0390 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0 + movs r1, #0x3c + bl sub_0805E4E0 + ldr r0, _080A03B4 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080A03B2 + movs r0, #5 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x68 + movs r0, #0xd2 + lsls r0, r0, #1 + strh r0, [r1] +_080A03B2: + pop {r4, pc} + .align 2, 0 +_080A03B4: .4byte gUnk_03000FD0 + + thumb_func_start sub_080A03B8 +sub_080A03B8: @ 0x080A03B8 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0 + movs r1, #0xa + bl sub_0805E4E0 + adds r1, r4, #0 + adds r1, #0x68 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080A03E4 + movs r0, #6 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + bl sub_0805429C + adds r1, r4, #0 + bl sub_08056398 +_080A03E4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A03E8 +sub_080A03E8: @ 0x080A03E8 + push {lr} + movs r0, #0 + movs r1, #0xa + bl sub_0805E4E0 + ldr r0, _080A041C @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _080A041A + movs r0, #0x5a + bl sub_0805E510 + ldr r0, _080A0420 @ =gUnk_03003F80 + adds r0, #0x8b + movs r1, #1 + strb r1, [r0] + bl sub_0807DF50 + movs r0, #0 + bl sub_0807CD10 + bl sub_0805E780 +_080A041A: + pop {pc} + .align 2, 0 +_080A041C: .4byte gUnk_02000050 +_080A0420: .4byte gUnk_03003F80 + + thumb_func_start sub_080A0424 +sub_080A0424: @ 0x080A0424 + push {lr} + adds r1, r0, #0 + adds r1, #0x6a + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A0442 + movs r0, #0x40 + strb r0, [r1] + movs r0, #0xbc + lsls r0, r0, #1 + bl sub_080A3268 +_080A0442: + pop {pc} + + thumb_func_start sub_080A0444 +sub_080A0444: @ 0x080A0444 + ldr r3, _080A0460 @ =gUnk_081248B4 + ldrb r1, [r0, #0xf] + adds r2, r1, #1 + strb r2, [r0, #0xf] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x1b + movs r2, #7 + ands r1, r2 + adds r1, r1, r3 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + strh r1, [r0, #0x36] + bx lr + .align 2, 0 +_080A0460: .4byte gUnk_081248B4 + + thumb_func_start sub_080A0464 +sub_080A0464: @ 0x080A0464 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #6 + movs r1, #0xac + movs r2, #6 + bl sub_0805EB00 + cmp r0, #0 + beq _080A048A + movs r1, #0x2e + ldrsh r2, [r0, r1] + movs r1, #0x32 + ldrsh r3, [r0, r1] + adds r3, #0x18 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0807DEDC +_080A048A: + pop {r4, r5, pc} + + thumb_func_start sub_080A048C +sub_080A048C: @ 0x080A048C + push {lr} + ldr r2, _080A04A0 @ =gUnk_081248BC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A04A0: .4byte gUnk_081248BC + + thumb_func_start sub_080A04A4 +sub_080A04A4: @ 0x080A04A4 + push {r4, lr} + movs r3, #0 + movs r1, #1 + strb r1, [r0, #0xc] + movs r4, #4 + movs r1, #4 + strb r1, [r0, #0x1e] + strb r3, [r0, #0xe] + ldrb r1, [r0, #0x19] + movs r2, #0xc0 + orrs r1, r2 + strb r1, [r0, #0x19] + movs r1, #0x29 + adds r1, r1, r0 + mov ip, r1 + ldrb r1, [r1] + movs r2, #7 + orrs r1, r2 + mov r2, ip + strb r1, [r2] + str r3, [r0, #0x34] + ldrb r2, [r0, #0x19] + movs r1, #0xd + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r4 + strb r1, [r0, #0x19] + bl sub_080A04E8 + pop {r4, pc} + + thumb_func_start sub_080A04E0 +sub_080A04E0: @ 0x080A04E0 + push {lr} + bl sub_080A04E8 + pop {pc} + + thumb_func_start sub_080A04E8 +sub_080A04E8: @ 0x080A04E8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, [r5, #0x50] + movs r1, #0x36 + ldrsh r0, [r0, r1] + cmp r0, #0 + bge _080A04F8 + rsbs r0, r0, #0 +_080A04F8: + movs r1, #0x80 + lsls r1, r1, #1 + adds r4, r0, r1 + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r4, #0 + movs r3, #0 + bl sub_0805EC9C + movs r1, #0xe0 + lsls r1, r1, #1 + subs r1, r1, r4 + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #1 + adds r1, r4, #0 + bl __divsi3 + adds r4, r0, #0 + ldr r0, [r5, #0x50] + ldrb r0, [r0, #0xa] + cmp r0, #0x41 + bne _080A0538 + lsls r3, r4, #1 + cmp r3, #0xc + bls _080A052E + movs r3, #0xc +_080A052E: + movs r0, #0x10 + subs r0, r0, r4 + lsls r4, r0, #8 + orrs r4, r3 + b _080A0540 +_080A0538: + movs r0, #0x10 + subs r0, r0, r4 + lsls r0, r0, #8 + orrs r4, r0 +_080A0540: + ldr r0, _080A054C @ =0x0000FFFF + ands r4, r0 + ldr r0, _080A0550 @ =gUnk_03000F50 + adds r0, #0x68 + strh r4, [r0] + pop {r4, r5, pc} + .align 2, 0 +_080A054C: .4byte 0x0000FFFF +_080A0550: .4byte gUnk_03000F50 + + thumb_func_start sub_080A0554 +sub_080A0554: @ 0x080A0554 + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xc] + cmp r0, #0 + bne _080A0588 + movs r2, #1 + strb r2, [r3, #0xc] + ldrb r0, [r3, #0xa] + strb r0, [r3, #0x1e] + movs r0, #0x29 + adds r0, r0, r3 + mov ip, r0 + ldrb r1, [r0] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + adds r0, r3, #0 + adds r0, #0x38 + strb r2, [r0] + adds r0, r3, #0 + bl sub_08016A04 +_080A0588: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080A058C +sub_080A058C: @ 0x080A058C + push {lr} + ldr r2, _080A05A0 @ =gUnk_081248C4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A05A0: .4byte gUnk_081248C4 + + thumb_func_start sub_080A05A4 +sub_080A05A4: @ 0x080A05A4 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xa] + cmp r1, #2 + beq _080A05D2 + movs r0, #1 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #9 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_080A0640 + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + b _080A05F0 +_080A05D2: + movs r0, #0 + strb r1, [r4, #0xc] + ldrh r1, [r4, #0x32] + adds r1, #1 + strh r1, [r4, #0x32] + strh r0, [r4, #0x36] + adds r1, r4, #0 + adds r1, #0x63 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 +_080A05F0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A05F4 +sub_080A05F4: @ 0x080A05F4 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + cmp r0, #0 + bne _080A060C + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + b _080A0622 +_080A060C: + ldr r0, [r0, #4] + cmp r0, #0 + bne _080A0616 + bl sub_0805E780 +_080A0616: + adds r0, r4, #0 + bl sub_080A0640 + adds r0, r4, #0 + bl sub_08004274 +_080A0622: + pop {r4, pc} + + thumb_func_start sub_080A0624 +sub_080A0624: @ 0x080A0624 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A063C + bl sub_0805E780 +_080A063C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A0640 +sub_080A0640: @ 0x080A0640 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080A065E + ldr r0, [r4, #0x50] + ldr r0, [r0, #0x64] + ldr r0, [r0, #0x10] + movs r3, #0x80 + lsls r3, r3, #0xc + adds r1, r4, #0 + movs r2, #0 + bl sub_0806FA48 + b _080A0666 +_080A065E: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 +_080A0666: + movs r0, #0 + strh r0, [r4, #0x36] + pop {r4, pc} + + thumb_func_start sub_080A066C +sub_080A066C: @ 0x080A066C + push {lr} + ldr r2, _080A0680 @ =gUnk_0812493C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A0680: .4byte gUnk_0812493C + + thumb_func_start sub_080A0684 +sub_080A0684: @ 0x080A0684 + push {r4, r5, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x84 + ldrh r1, [r2] + ldr r0, _080A070C @ =0x0000FFFF + cmp r1, r0 + beq _080A06A2 + adds r0, r1, #0 + bl sub_0807CBE4 + cmp r0, #0 + beq _080A06A2 + bl sub_0805E780 +_080A06A2: + movs r0, #1 + strb r0, [r4, #0xc] + movs r2, #0 + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r2, [r4, #0x1e] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x18] + ldr r0, _080A0710 @ =gUnk_080FD180 + str r0, [r4, #0x48] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r2] + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x70 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x72 + strh r0, [r1] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _080A0714 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r4, #0 + adds r0, #0x74 + strh r1, [r0] + pop {r4, r5, pc} + .align 2, 0 +_080A070C: .4byte 0x0000FFFF +_080A0710: .4byte gUnk_080FD180 +_080A0714: .4byte gUnk_03000BF0 + + thumb_func_start sub_080A0718 +sub_080A0718: @ 0x080A0718 + push {r4, lr} + adds r4, r0, #0 + movs r1, #2 + bl sub_08083734 + cmp r0, #0 + beq _080A074A + movs r2, #0 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0xc + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #0x10 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + strb r2, [r4, #0x15] + ldrh r0, [r4, #0x32] + adds r0, #0x24 + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl sub_080A080C +_080A074A: + pop {r4, pc} + + thumb_func_start sub_080A074C +sub_080A074C: @ 0x080A074C + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _080A07B6 + movs r0, #3 + strb r0, [r4, #0xc] + strh r1, [r4, #0x36] + adds r0, r4, #0 + adds r0, #0x70 + ldrh r0, [r0] + strh r0, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x72 + ldrh r0, [r0] + strh r0, [r4, #0x32] + adds r0, r4, #0 + movs r1, #0x11 + movs r2, #0x40 + bl sub_080A29AC + adds r1, r0, #0 + cmp r1, #0 + beq _080A0794 + ldrh r0, [r1, #0x2e] + adds r0, #0xc + strh r0, [r1, #0x2e] + ldrh r0, [r1, #0x32] + subs r0, #0xc + strh r0, [r1, #0x32] +_080A0794: + adds r0, r4, #0 + movs r1, #0x11 + movs r2, #0x40 + bl sub_080A29AC + adds r1, r0, #0 + cmp r1, #0 + beq _080A07B0 + ldrh r0, [r1, #0x2e] + subs r0, #0xc + strh r0, [r1, #0x2e] + ldrh r0, [r1, #0x32] + subs r0, #0xc + strh r0, [r1, #0x32] +_080A07B0: + ldr r0, _080A07B8 @ =0x0000010B + bl sub_08004488 +_080A07B6: + pop {r4, pc} + .align 2, 0 +_080A07B8: .4byte 0x0000010B + + thumb_func_start sub_080A07BC +sub_080A07BC: @ 0x080A07BC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _080A07EA + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0xc + strb r0, [r4, #0xe] + movs r0, #0x10 + strb r0, [r4, #0x15] + ldrh r0, [r4, #0x32] + adds r0, #2 + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl sub_080A0870 + ldr r0, _080A07EC @ =0x0000010B + bl sub_080A3268 +_080A07EA: + pop {r4, pc} + .align 2, 0 +_080A07EC: .4byte 0x0000010B + + thumb_func_start sub_080A07F0 +sub_080A07F0: @ 0x080A07F0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A0808 + bl sub_0805E780 +_080A0808: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A080C +sub_080A080C: @ 0x080A080C + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r4, #0 + adds r6, #0x74 + ldrh r0, [r6] + subs r0, #1 + adds r5, r4, #0 + adds r5, #0x38 + ldrb r1, [r5] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] + ldrh r0, [r6] + ldrb r1, [r5] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x78 + strh r0, [r1] + ldrh r0, [r6] + adds r0, #1 + ldrb r1, [r5] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x7a + strh r0, [r1] + ldr r4, _080A086C @ =0x00004022 + ldrh r1, [r6] + subs r1, #1 + ldrb r2, [r5] + adds r0, r4, #0 + bl sub_0800015E + ldrh r1, [r6] + ldrb r2, [r5] + adds r0, r4, #0 + bl sub_0800015E + ldrh r1, [r6] + adds r1, #1 + ldrb r2, [r5] + adds r0, r4, #0 + bl sub_0800015E + pop {r4, r5, r6, pc} + .align 2, 0 +_080A086C: .4byte 0x00004022 + + thumb_func_start sub_080A0870 +sub_080A0870: @ 0x080A0870 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r0, #0x76 + ldrh r0, [r0] + adds r5, r6, #0 + adds r5, #0x74 + ldrh r1, [r5] + subs r1, #1 + adds r4, r6, #0 + adds r4, #0x38 + ldrb r2, [r4] + bl sub_0800015E + adds r0, r6, #0 + adds r0, #0x78 + ldrh r0, [r0] + ldrh r1, [r5] + ldrb r2, [r4] + bl sub_0800015E + adds r0, r6, #0 + adds r0, #0x7a + ldrh r0, [r0] + ldrh r1, [r5] + adds r1, #1 + ldrb r2, [r4] + bl sub_0800015E + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080A08AC +sub_080A08AC: @ 0x080A08AC + push {lr} + ldr r2, _080A08C0 @ =gUnk_08124950 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A08C0: .4byte gUnk_08124950 + + thumb_func_start sub_080A08C4 +sub_080A08C4: @ 0x080A08C4 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + bne _080A08E2 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0 + bl sub_080A0960 + b _080A08F6 +_080A08E2: + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + adds r0, r4, #0 + movs r1, #1 + bl sub_080A0960 +_080A08F6: + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A0910 +sub_080A0910: @ 0x080A0910 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _080A0932 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl sub_080A0960 + ldr r0, _080A0934 @ =0x0000010B + bl sub_080A3268 +_080A0932: + pop {r4, pc} + .align 2, 0 +_080A0934: .4byte 0x0000010B + + thumb_func_start sub_080A0938 +sub_080A0938: @ 0x080A0938 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A095A + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_080A095A: + pop {r4, pc} + + thumb_func_start nullsub_127 +nullsub_127: @ 0x080A095C + bx lr + .align 2, 0 + + thumb_func_start sub_080A0960 +sub_080A0960: @ 0x080A0960 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r5, _080A0998 @ =gUnk_08124960 + cmp r1, #1 + bne _080A096C + ldr r5, _080A099C @ =gUnk_0812497A +_080A096C: + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _080A09A0 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r6, #0x32 + ldrsh r0, [r4, r6] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r5, #0 + movs r2, #1 + bl sub_0801AF18 + pop {r4, r5, r6, pc} + .align 2, 0 +_080A0998: .4byte gUnk_08124960 +_080A099C: .4byte gUnk_0812497A +_080A09A0: .4byte gUnk_03000BF0 + + thumb_func_start sub_080A09A4 +sub_080A09A4: @ 0x080A09A4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080A09D4 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x10 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xa] + lsls r0, r0, #3 + strb r0, [r4, #0x15] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r0, [r0] + ldr r1, _080A0A2C @ =gUnk_02027EB4 + cmp r0, #2 + bne _080A09CA + ldr r1, _080A0A30 @ =gUnk_0200D654 +_080A09CA: + str r1, [r4, #0x54] + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_08004260 +_080A09D4: + ldr r0, [r4, #0x50] + ldrh r0, [r0, #0x24] + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_0806F69C + ldr r0, [r4, #0x54] + movs r2, #0x2e + ldrsh r1, [r4, r2] + movs r3, #0x32 + ldrsh r2, [r4, r3] + movs r3, #9 + bl sub_080AE4CC + cmp r0, #0 + beq _080A09F8 + bl sub_0805E780 +_080A09F8: + movs r1, #0x24 + ldrsh r0, [r4, r1] + cmp r0, #0x40 + bgt _080A0A22 + ldrb r2, [r4, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A0A22 + bl sub_0805E780 +_080A0A22: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 +_080A0A2C: .4byte gUnk_02027EB4 +_080A0A30: .4byte gUnk_0200D654 + + thumb_func_start sub_080A0A34 +sub_080A0A34: @ 0x080A0A34 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _080A0A44 + cmp r0, #1 + beq _080A0A5C + b _080A0A5E +_080A0A44: + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + ldr r1, _080A0A54 @ =gUnk_08124A18 + cmp r0, #0 + beq _080A0A5E + ldr r1, _080A0A58 @ =gUnk_08124A10 + b _080A0A5E + .align 2, 0 +_080A0A54: .4byte gUnk_08124A18 +_080A0A58: .4byte gUnk_08124A10 +_080A0A5C: + ldr r1, _080A0AB8 @ =gUnk_08124A20 +_080A0A5E: + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080A0AB0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r2, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r3, #0x40 + orrs r0, r3 + strb r0, [r4, #0x19] + movs r0, #0x29 + adds r0, r0, r4 + mov ip, r0 + ldrb r2, [r0] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + mov r2, ip + strb r0, [r2] + ldrb r0, [r4, #0x1b] + ands r1, r0 + orrs r1, r3 + strb r1, [r4, #0x1b] + ldr r1, _080A0ABC @ =gUnk_080C9CBC + ldr r0, _080A0AC0 @ =gUnk_02022740 + ldrb r0, [r0, #3] + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_0801D2B4 +_080A0AB0: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 +_080A0AB8: .4byte gUnk_08124A20 +_080A0ABC: .4byte gUnk_080C9CBC +_080A0AC0: .4byte gUnk_02022740 + + thumb_func_start sub_080A0AC4 +sub_080A0AC4: @ 0x080A0AC4 + push {lr} + ldrb r1, [r0, #0xa] + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080A0AD0 +sub_080A0AD0: @ 0x080A0AD0 + push {lr} + movs r1, #0x80 + bl sub_08003FC4 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080A0ADC +sub_080A0ADC: @ 0x080A0ADC + push {r4, lr} + adds r4, r0, #0 + bl sub_0807DD64 + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A0AF0 +sub_080A0AF0: @ 0x080A0AF0 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #5 + bne _080A0B1C + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A0B1C + bl sub_0805E780 +_080A0B1C: + adds r0, r4, #0 + movs r1, #0x80 + bl sub_08003FC4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A0B28 +sub_080A0B28: @ 0x080A0B28 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x2e + ldrsh r2, [r4, r0] + movs r0, #0x32 + ldrsh r3, [r4, r0] + adds r0, r4, #0 + bl sub_0807DEDC + ldrh r0, [r4, #0x32] + subs r0, #0xb0 + strh r0, [r4, #0x32] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + pop {r4, pc} + + thumb_func_start sub_080A0B4C +sub_080A0B4C: @ 0x080A0B4C + push {lr} + movs r1, #0x78 + strh r1, [r0, #0x2e] + movs r1, #0x50 + strh r1, [r0, #0x32] + movs r1, #0 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080A0B60 +sub_080A0B60: @ 0x080A0B60 + push {lr} + adds r2, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080A0B7C + movs r0, #2 + strb r0, [r2, #0xc] + movs r0, #0x9b + lsls r0, r0, #1 + bl sub_080A3268 +_080A0B7C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080A0B80 +sub_080A0B80: @ 0x080A0B80 + ldr r1, [r0, #0x30] + ldr r2, _080A0B8C @ =0xFFFD8000 + adds r1, r1, r2 + str r1, [r0, #0x30] + bx lr + .align 2, 0 +_080A0B8C: .4byte 0xFFFD8000 + + thumb_func_start sub_080A0B90 +sub_080A0B90: @ 0x080A0B90 + push {lr} + ldr r2, _080A0BA4 @ =gUnk_08124B20 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A0BA4: .4byte gUnk_08124B20 + + thumb_func_start sub_080A0BA8 +sub_080A0BA8: @ 0x080A0BA8 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r2, [r5, #0xc] + cmp r2, #0 + beq _080A0BB8 + cmp r2, #1 + beq _080A0C08 + b _080A0CE0 +_080A0BB8: + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x18] + subs r0, #5 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r5, #0x18] + movs r0, #9 + strb r0, [r5, #0x1e] + movs r0, #8 + strb r0, [r5, #0xe] + strb r2, [r5, #0xf] + ldrb r1, [r5, #0x19] + movs r2, #0x3f + adds r0, r2, #0 + ands r0, r1 + movs r3, #0x40 + orrs r0, r3 + strb r0, [r5, #0x19] + adds r4, r5, #0 + adds r4, #0x29 + ldrb r1, [r4] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r4] + ldrb r0, [r5, #0x1b] + ands r2, r0 + orrs r2, r3 + strb r2, [r5, #0x1b] + adds r0, r5, #0 + movs r1, #0xbf + movs r2, #0x48 + movs r3, #0x1e + bl sub_0806FB00 + b _080A0CE0 +_080A0C08: + ldrb r0, [r5, #0xf] + cmp r0, #6 + bhi _080A0C46 + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A0C46 + strb r2, [r5, #0xe] + ldrb r2, [r5, #0xf] + movs r0, #0xb4 + movs r1, #1 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _080A0C40 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + movs r0, #0x68 + strh r0, [r4, #0x32] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAD8 +_080A0C40: + ldrb r0, [r5, #0xf] + adds r0, #1 + strb r0, [r5, #0xf] +_080A0C46: + adds r0, r5, #0 + bl sub_0806FB38 + cmp r0, #0 + bne _080A0C58 + ldr r0, _080A0CE4 @ =gUnk_02000080 + ldrb r0, [r0, #5] + cmp r0, #1 + bls _080A0CE0 +_080A0C58: + movs r0, #0xbf + strh r0, [r5, #0x2e] + movs r0, #0x48 + strh r0, [r5, #0x32] + movs r0, #0xa + strb r0, [r5, #0x1e] + movs r0, #2 + strb r0, [r5, #0xc] + ldrb r0, [r5, #0xf] + cmp r0, #6 + bhi _080A0CA0 +_080A0C6E: + ldrb r2, [r5, #0xf] + movs r0, #0xb4 + movs r1, #1 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _080A0C92 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + movs r0, #0x68 + strh r0, [r4, #0x32] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAD8 +_080A0C92: + ldrb r0, [r5, #0xf] + adds r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #6 + bls _080A0C6E +_080A0CA0: + movs r0, #0xb4 + movs r1, #2 + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _080A0CC0 + movs r0, #0xc4 + strh r0, [r4, #0x2e] + movs r0, #0x2c + strh r0, [r4, #0x32] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAB0 +_080A0CC0: + movs r0, #0xb4 + movs r1, #3 + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _080A0CE0 + movs r0, #0xb4 + strh r0, [r4, #0x2e] + movs r0, #0x19 + strh r0, [r4, #0x32] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAB0 +_080A0CE0: + pop {r4, r5, pc} + .align 2, 0 +_080A0CE4: .4byte gUnk_02000080 + + thumb_func_start sub_080A0CE8 +sub_080A0CE8: @ 0x080A0CE8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + beq _080A0CF8 + cmp r0, #1 + beq _080A0D28 + b _080A0D66 +_080A0CF8: + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xb] + adds r0, #2 + strb r0, [r4, #0x1e] + ldr r1, _080A0D24 @ =gUnk_08124B10 + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + adds r0, r4, #0 + movs r2, #0x68 + movs r3, #0x14 + bl sub_0806FB00 + b _080A0D66 + .align 2, 0 +_080A0D24: .4byte gUnk_08124B10 +_080A0D28: + adds r0, r4, #0 + bl sub_0806FB38 + cmp r0, #0 + bne _080A0D3A + ldr r0, _080A0D68 @ =gUnk_02000080 + ldrb r0, [r0, #5] + cmp r0, #1 + bls _080A0D66 +_080A0D3A: + ldr r1, _080A0D6C @ =gUnk_08124B10 + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r4, #0x2e] + movs r0, #0x68 + strh r0, [r4, #0x32] + ldrb r1, [r4, #0xb] + movs r0, #7 + subs r1, r0, r1 + adds r3, r4, #0 + adds r3, #0x29 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + movs r0, #2 + strb r0, [r4, #0xc] +_080A0D66: + pop {r4, pc} + .align 2, 0 +_080A0D68: .4byte gUnk_02000080 +_080A0D6C: .4byte gUnk_08124B10 + + thumb_func_start sub_080A0D70 +sub_080A0D70: @ 0x080A0D70 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r6, [r5, #0xc] + cmp r6, #0 + bne _080A0DC4 + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x18] + subs r0, #5 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r5, #0x18] + ldrb r2, [r5, #0x19] + movs r4, #0x3f + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r3, #0x40 + orrs r0, r3 + strb r0, [r5, #0x19] + movs r0, #0x29 + adds r0, r0, r5 + mov ip, r0 + ldrb r2, [r0] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + mov r2, ip + strb r0, [r2] + ldrb r0, [r5, #0x1b] + ands r1, r0 + orrs r1, r3 + strb r1, [r5, #0x1b] + movs r0, #0xb + strb r0, [r5, #0x1e] + bl sub_08000E50 + ands r0, r4 + adds r0, #0x40 + strb r0, [r5, #0xe] + strb r6, [r5, #0xf] +_080A0DC4: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _080A0E02 + movs r0, #4 + strb r0, [r5, #0xe] + ldr r2, _080A0E04 @ =gUnk_08124B30 + ldrb r0, [r5, #0xf] + adds r1, r0, #1 + strb r1, [r5, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r2 + ldrb r0, [r0] + adds r0, #2 + strb r0, [r5, #0x1e] + ldrb r0, [r5, #0xf] + adds r0, r0, r2 + ldrb r0, [r0] + cmp r0, #0xff + bne _080A0E02 + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + adds r0, #0x40 + strb r0, [r5, #0xe] + strb r4, [r5, #0xf] +_080A0E02: + pop {r4, r5, r6, pc} + .align 2, 0 +_080A0E04: .4byte gUnk_08124B30 + + thumb_func_start sub_080A0E08 +sub_080A0E08: @ 0x080A0E08 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _080A0E26 + movs r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + subs r0, #5 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r2, #0x18] + movs r0, #0xf + strb r0, [r2, #0x1e] +_080A0E26: + pop {pc} + + thumb_func_start sub_080A0E28 +sub_080A0E28: @ 0x080A0E28 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xc] + cmp r0, #0 + bne _080A0E36 + movs r0, #1 + strb r0, [r1, #0xc] +_080A0E36: + ldr r0, _080A0E48 @ =gUnk_03000BF0 + str r1, [r0, #0x30] + ldr r0, _080A0E4C @ =gUnk_03001160 + ldr r3, _080A0E50 @ =0xFFD80000 + movs r2, #0 + bl sub_0806FA48 + pop {pc} + .align 2, 0 +_080A0E48: .4byte gUnk_03000BF0 +_080A0E4C: .4byte gUnk_03001160 +_080A0E50: .4byte 0xFFD80000 + + thumb_func_start sub_080A0E54 +sub_080A0E54: @ 0x080A0E54 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xd] + cmp r0, #3 + bls _080A0E64 + bl sub_0805E780 +_080A0E64: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080A0E76 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_08004260 +_080A0E76: + ldr r0, [r4, #0x50] + ldrb r3, [r4, #0xa] + adds r1, r4, #0 + movs r2, #0 + bl sub_0806FA90 + adds r2, r4, #0 + adds r2, #0x63 + ldrb r0, [r2] + ldrb r1, [r4, #0xa] + subs r0, r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A0E98 +sub_080A0E98: @ 0x080A0E98 + push {lr} + ldr r2, _080A0EAC @ =gUnk_08124C08 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A0EAC: .4byte gUnk_08124C08 + + thumb_func_start sub_080A0EB0 +sub_080A0EB0: @ 0x080A0EB0 + push {r4, r5, lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0x2e + ldrsh r2, [r0, r1] + ldr r3, _080A0EE8 @ =gUnk_03000BF0 + ldrh r1, [r3, #6] + subs r2, r2, r1 + asrs r2, r2, #4 + movs r4, #0x3f + ands r2, r4 + movs r5, #0x32 + ldrsh r1, [r0, r5] + ldrh r3, [r3, #8] + subs r1, r1, r3 + asrs r1, r1, #4 + ands r1, r4 + lsls r1, r1, #6 + orrs r2, r1 + adds r0, #0x80 + strh r2, [r0] + ldr r2, _080A0EEC @ =0x0000407D + ldrh r1, [r0] + adds r0, r2, #0 + movs r2, #1 + bl sub_0800015E + pop {r4, r5, pc} + .align 2, 0 +_080A0EE8: .4byte gUnk_03000BF0 +_080A0EEC: .4byte 0x0000407D + + thumb_func_start sub_080A0EF0 +sub_080A0EF0: @ 0x080A0EF0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x80 + ldrh r0, [r0] + movs r1, #1 + bl sub_080002B0 + ldr r1, _080A0F1C @ =0x0000407D + cmp r0, r1 + beq _080A0F18 + bl sub_08078B48 + ldr r1, _080A0F20 @ =gUnk_03001160 + ldr r0, [r4, #0x2c] + str r0, [r1, #0x2c] + ldrh r0, [r4, #0x32] + adds r0, #4 + strh r0, [r1, #0x32] + bl sub_0805E780 +_080A0F18: + pop {r4, pc} + .align 2, 0 +_080A0F1C: .4byte 0x0000407D +_080A0F20: .4byte gUnk_03001160 + + thumb_func_start sub_080A0F24 +sub_080A0F24: @ 0x080A0F24 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080A0F40 @ =gUnk_08124C10 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_080A11E0 + pop {r4, pc} + .align 2, 0 +_080A0F40: .4byte gUnk_08124C10 + + thumb_func_start sub_080A0F44 +sub_080A0F44: @ 0x080A0F44 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r6, #1 + strb r6, [r5, #0xc] + adds r1, r5, #0 + adds r1, #0x59 + movs r0, #8 + strb r0, [r1] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080A0FA8 @ =gUnk_080FD460 + str r0, [r5, #0x48] + adds r0, r5, #0 + movs r1, #6 + bl sub_0805E3A0 + adds r0, r5, #0 + bl sub_080A11C0 + cmp r0, #0 + beq _080A0FA4 + ldr r1, _080A0FAC @ =gUnk_03001160 + ldrh r0, [r5, #0x2e] + movs r4, #0 + strh r0, [r1, #0x2e] + ldrh r0, [r5, #0x32] + strh r0, [r1, #0x32] + movs r0, #3 + bl sub_08078A90 + bl sub_08078B48 + bl sub_0805E544 + movs r0, #0x89 + lsls r0, r0, #1 + bl sub_080A3268 + movs r0, #3 + strb r0, [r5, #0xc] + strb r4, [r5, #0xd] + adds r0, r5, #0 + adds r0, #0x68 + strb r6, [r0] +_080A0FA4: + pop {r4, r5, r6, pc} + .align 2, 0 +_080A0FA8: .4byte gUnk_080FD460 +_080A0FAC: .4byte gUnk_03001160 + + thumb_func_start sub_080A0FB0 +sub_080A0FB0: @ 0x080A0FB0 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080A11C0 + adds r1, r0, #0 + cmp r1, #0 + beq _080A0FF8 + adds r0, r5, #0 + adds r0, #0x68 + ldrb r0, [r0] + cmp r0, #0 + bne _080A0FFE + ldr r1, _080A0FF4 @ =gUnk_03001160 + ldrh r0, [r5, #0x2e] + movs r4, #0 + strh r0, [r1, #0x2e] + ldrh r0, [r5, #0x32] + strh r0, [r1, #0x32] + movs r0, #3 + bl sub_08078A90 + bl sub_08078B48 + bl sub_0805E544 + movs r0, #0x89 + lsls r0, r0, #1 + bl sub_080A3268 + movs r0, #2 + strb r0, [r5, #0xc] + strb r4, [r5, #0xd] + b _080A0FFE + .align 2, 0 +_080A0FF4: .4byte gUnk_03001160 +_080A0FF8: + adds r0, r5, #0 + adds r0, #0x68 + strb r1, [r0] +_080A0FFE: + pop {r4, r5, pc} + + thumb_func_start sub_080A1000 +sub_080A1000: @ 0x080A1000 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xd] + cmp r1, #1 + beq _080A102A + cmp r1, #1 + bgt _080A1014 + cmp r1, #0 + beq _080A101E + b _080A1088 +_080A1014: + cmp r1, #2 + beq _080A1038 + cmp r1, #3 + beq _080A1064 + b _080A1088 +_080A101E: + movs r0, #0x1e + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + b _080A10D4 +_080A102A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A10D4 + b _080A1070 +_080A1038: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A1056 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x1e + strb r0, [r4, #0xe] + adds r0, #0xf5 + bl sub_080A3268 + b _080A10D4 +_080A1056: + ldr r0, _080A1060 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #7 + b _080A10C2 + .align 2, 0 +_080A1060: .4byte gUnk_030010A0 +_080A1064: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A107C +_080A1070: + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x1e + strb r0, [r4, #0xe] + b _080A10D4 +_080A107C: + ldr r0, _080A1084 @ =gUnk_030010A0 + ldr r0, [r0] + b _080A10C2 + .align 2, 0 +_080A1084: .4byte gUnk_030010A0 +_080A1088: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A10BC + ldr r0, _080A10B4 @ =gUnk_03000BF0 + ldrb r0, [r0, #4] + cmp r0, #3 + bne _080A10A2 + movs r0, #0xf9 + bl sub_0807CCB4 +_080A10A2: + ldrb r1, [r4, #0xb] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080A10B8 @ =gUnk_0813ADEC + adds r0, r0, r1 + bl sub_08080840 + b _080A10D4 + .align 2, 0 +_080A10B4: .4byte gUnk_03000BF0 +_080A10B8: .4byte gUnk_0813ADEC +_080A10BC: + ldr r0, _080A10D8 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #1 +_080A10C2: + ands r0, r1 + cmp r0, #0 + bne _080A10D4 + ldr r0, _080A10DC @ =gUnk_03001160 + ldrb r1, [r0, #0x14] + adds r1, #2 + movs r2, #6 + ands r1, r2 + strb r1, [r0, #0x14] +_080A10D4: + pop {r4, pc} + .align 2, 0 +_080A10D8: .4byte gUnk_030010A0 +_080A10DC: .4byte gUnk_03001160 + + thumb_func_start sub_080A10E0 +sub_080A10E0: @ 0x080A10E0 + push {r4, lr} + adds r2, r0, #0 + ldrb r1, [r2, #0xd] + cmp r1, #1 + beq _080A110E + cmp r1, #1 + bgt _080A10F4 + cmp r1, #0 + beq _080A10FE + b _080A1180 +_080A10F4: + cmp r1, #2 + beq _080A1124 + cmp r1, #3 + beq _080A1148 + b _080A1180 +_080A10FE: + movs r0, #1 + strb r0, [r2, #0xd] + movs r0, #0x1e + strb r0, [r2, #0xe] + adds r0, #0xf6 + bl sub_080A3268 + b _080A11BA +_080A110E: + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A1130 + ldr r0, _080A1120 @ =gUnk_030010A0 + ldr r0, [r0] + b _080A1162 + .align 2, 0 +_080A1120: .4byte gUnk_030010A0 +_080A1124: + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A113C +_080A1130: + ldrb r0, [r2, #0xd] + adds r0, #1 + strb r0, [r2, #0xd] + movs r0, #0x1e + strb r0, [r2, #0xe] + b _080A11BA +_080A113C: + ldr r0, _080A1144 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + b _080A1162 + .align 2, 0 +_080A1144: .4byte gUnk_030010A0 +_080A1148: + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A115C + ldrb r0, [r2, #0xd] + adds r0, #1 + strb r0, [r2, #0xd] + b _080A11BA +_080A115C: + ldr r0, _080A1178 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #7 +_080A1162: + ands r0, r1 + cmp r0, #0 + bne _080A11BA + ldr r0, _080A117C @ =gUnk_03001160 + ldrb r1, [r0, #0x14] + adds r1, #2 + movs r2, #6 + ands r1, r2 + strb r1, [r0, #0x14] + b _080A11BA + .align 2, 0 +_080A1178: .4byte gUnk_030010A0 +_080A117C: .4byte gUnk_03001160 +_080A1180: + ldr r4, _080A11A0 @ =gUnk_03001160 + ldrb r3, [r4, #0x14] + cmp r3, #4 + beq _080A11A8 + ldr r0, _080A11A4 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _080A11BA + adds r0, r3, #2 + movs r1, #6 + ands r0, r1 + strb r0, [r4, #0x14] + b _080A11BA + .align 2, 0 +_080A11A0: .4byte gUnk_03001160 +_080A11A4: .4byte gUnk_030010A0 +_080A11A8: + movs r0, #0 + movs r1, #1 + strb r1, [r2, #0xc] + strb r0, [r2, #0xd] + ldr r0, _080A11BC @ =gUnk_03003F80 + adds r0, #0x8b + strb r1, [r0] + bl sub_0805E564 +_080A11BA: + pop {r4, pc} + .align 2, 0 +_080A11BC: .4byte gUnk_03003F80 + + thumb_func_start sub_080A11C0 +sub_080A11C0: @ 0x080A11C0 + push {lr} + adds r1, r0, #0 + ldr r0, _080A11D8 @ =gUnk_03001160 + movs r2, #0x36 + ldrsh r0, [r0, r2] + cmp r0, #0 + bne _080A11DC + adds r0, r1, #0 + bl sub_08017850 + b _080A11DE + .align 2, 0 +_080A11D8: .4byte gUnk_03001160 +_080A11DC: + movs r0, #0 +_080A11DE: + pop {pc} + + thumb_func_start sub_080A11E0 +sub_080A11E0: @ 0x080A11E0 + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x59 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A1202 + movs r0, #8 + strb r0, [r1] + ldrb r0, [r2, #0x1e] + adds r0, #1 + movs r1, #3 + ands r0, r1 + strb r0, [r2, #0x1e] +_080A1202: + pop {pc} + + thumb_func_start sub_080A1204 +sub_080A1204: @ 0x080A1204 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r5, r0, #0 + cmp r5, #0 + bne _080A1260 + adds r0, #1 + strb r0, [r4, #0xc] + bl sub_080A1514 + lsls r0, r0, #2 + ldr r1, _080A126C @ =gUnk_08124C20 + adds r0, r0, r1 + ldrh r2, [r0] + lsls r1, r2, #4 + subs r1, r1, r2 + lsls r1, r1, #2 + adds r2, r4, #0 + adds r2, #0x68 + strh r1, [r2] + adds r1, r4, #0 + adds r1, #0x6a + strh r5, [r1] + ldrh r1, [r0, #2] + adds r0, r4, #0 + adds r0, #0x6c + strh r1, [r0] + adds r1, r4, #0 + adds r1, #0x6e + movs r0, #1 + strh r0, [r1] + adds r0, r4, #0 + adds r0, #0x70 + movs r2, #0 + movs r1, #9 +_080A124A: + strb r2, [r0] + adds r0, #1 + subs r1, #1 + cmp r1, #0 + bge _080A124A + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + bl sub_0806EC20 +_080A1260: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + pop {r4, r5, pc} + .align 2, 0 +_080A126C: .4byte gUnk_08124C20 + + thumb_func_start sub_080A1270 +sub_080A1270: @ 0x080A1270 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + mov sb, r0 + movs r6, #0 + ldr r0, [r0, #0x64] + str r0, [sp, #4] + mov r4, sb + adds r4, #0x70 + ldr r0, _080A12F8 @ =gUnk_03000BF0 + movs r2, #0xd8 + lsls r2, r2, #2 + adds r1, r2, #0 + ldrh r3, [r0, #6] + adds r1, r1, r3 + movs r7, #0xd4 + lsls r7, r7, #2 + adds r2, r7, #0 + ldrh r0, [r0, #8] + adds r2, r2, r0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + mov r8, r1 + lsls r2, r2, #0x10 + asrs r3, r2, #0x10 + movs r0, #9 + mov sl, r0 + movs r1, #1 + rsbs r1, r1, #0 + adds r5, r1, #0 +_080A12B2: + ldr r7, [sp, #4] + ldr r2, [r7] + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #0 + bne _080A1300 + ldr r0, [r2, #4] + cmp r0, #0 + beq _080A132C + cmp r2, #0 + beq _080A132C + movs r1, #0x2e + ldrsh r0, [r2, r1] + cmp r8, r0 + bgt _080A132E + movs r7, #0x32 + ldrsh r0, [r2, r7] + cmp r3, r0 + bgt _080A132E + ldrb r0, [r2, #0xa] + adds r0, #1 + strb r0, [r4] + movs r0, #1 + strb r0, [r2, #0xb] + adds r6, #1 + ldr r1, _080A12FC @ =gUnk_08124EC8 + ldrb r0, [r2, #0xa] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + str r3, [sp] + bl sub_080A3268 + ldr r3, [sp] + b _080A132E + .align 2, 0 +_080A12F8: .4byte gUnk_03000BF0 +_080A12FC: .4byte gUnk_08124EC8 +_080A1300: + cmp r0, #0 + ble _080A132E + adds r6, #1 + ldr r0, [r2, #4] + cmp r0, #0 + beq _080A132C + cmp r2, #0 + beq _080A132C + mov r1, r8 + adds r1, #4 + movs r7, #0x2e + ldrsh r0, [r2, r7] + cmp r1, r0 + ble _080A131E + strh r1, [r2, #0x2e] +_080A131E: + adds r1, r3, #4 + movs r7, #0x32 + ldrsh r0, [r2, r7] + cmp r1, r0 + ble _080A132E + strh r1, [r2, #0x32] + b _080A132E +_080A132C: + strb r5, [r4] +_080A132E: + movs r0, #1 + rsbs r0, r0, #0 + add sl, r0 + adds r4, #1 + ldr r1, [sp, #4] + adds r1, #4 + str r1, [sp, #4] + mov r2, sl + cmp r2, #0 + bge _080A12B2 + mov r0, sb + adds r0, #0x6a + strh r6, [r0] + ldr r0, _080A136C @ =gUnk_03003F80 + adds r0, #0x27 + movs r1, #0xff + strb r1, [r0] + mov r1, sb + adds r1, #0x68 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bgt _080A1370 + movs r0, #0xe2 + bl sub_080A3268 + bl sub_08050384 + b _080A1376 + .align 2, 0 +_080A136C: .4byte gUnk_03003F80 +_080A1370: + ldr r1, _080A1384 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_080A1376: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A1384: .4byte gUnk_02033280 + + thumb_func_start sub_080A1388 +sub_080A1388: @ 0x080A1388 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r5, #0x70 + ldr r4, [r0, #0x64] + movs r6, #9 +_080A1392: + ldr r1, [r4] + movs r0, #0 + ldrsb r0, [r5, r0] + cmp r0, #0 + blt _080A13A6 + cmp r1, #0 + beq _080A13A6 + adds r0, r1, #0 + bl sub_0805E79C +_080A13A6: + subs r6, #1 + adds r5, #1 + adds r4, #4 + cmp r6, #0 + bge _080A1392 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080A13B4 +sub_080A13B4: @ 0x080A13B4 + push {r4, lr} + adds r4, r1, #0 + adds r1, r0, #0 + adds r1, #0x6a + adds r0, #0x6c + movs r2, #0 + ldrsh r1, [r1, r2] + movs r2, #0 + ldrsh r0, [r0, r2] + cmp r1, r0 + blt _080A13D8 + ldr r0, _080A13D4 @ =0x0000300C + bl sub_08056378 + movs r0, #1 + b _080A13E0 + .align 2, 0 +_080A13D4: .4byte 0x0000300C +_080A13D8: + ldr r0, _080A13E4 @ =0x00003005 + bl sub_08056378 + movs r0, #0 +_080A13E0: + str r0, [r4, #0x14] + pop {r4, pc} + .align 2, 0 +_080A13E4: .4byte 0x00003005 + + thumb_func_start sub_080A13E8 +sub_080A13E8: @ 0x080A13E8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_080A1514 + lsls r0, r0, #2 + ldr r1, _080A1408 @ =gUnk_08124EA0 + adds r4, r0, r1 + movs r6, #0 + ldrb r0, [r4] + cmp r0, #0x5c + beq _080A141C + cmp r0, #0x5c + bgt _080A140C + cmp r0, #0x3f + beq _080A1412 + b _080A1444 + .align 2, 0 +_080A1408: .4byte gUnk_08124EA0 +_080A140C: + cmp r0, #0x63 + beq _080A1430 + b _080A1444 +_080A1412: + ldr r0, _080A1418 @ =gUnk_02002A40 + adds r0, #0xbb + b _080A1424 + .align 2, 0 +_080A1418: .4byte gUnk_02002A40 +_080A141C: + ldr r0, _080A142C @ =gUnk_02002A40 + movs r1, #0x8b + lsls r1, r1, #1 + adds r0, r0, r1 +_080A1424: + ldrb r0, [r0] + cmp r0, #0 + beq _080A1444 + b _080A1454 + .align 2, 0 +_080A142C: .4byte gUnk_02002A40 +_080A1430: + movs r0, #0x4f + bl sub_0807CC30 + cmp r0, #0 + bne _080A1442 + movs r0, #0x4f + bl sub_0807CD04 + b _080A1444 +_080A1442: + movs r6, #1 +_080A1444: + cmp r6, #0 + bne _080A1454 + ldrb r0, [r4] + ldrb r1, [r4, #1] + movs r2, #0 + bl sub_080A7C18 + b _080A145C +_080A1454: + adds r1, r5, #0 + adds r1, #0x6e + movs r0, #2 + strh r0, [r1] +_080A145C: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080A1460 +sub_080A1460: @ 0x080A1460 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080A1514 + adds r1, r5, #0 + adds r1, #0x70 + movs r4, #0 + ldr r3, _080A149C @ =gUnk_08124ECC + movs r2, #9 +_080A1472: + movs r0, #0 + ldrsb r0, [r1, r0] + adds r0, r0, r3 + ldrb r0, [r0] + adds r4, r4, r0 + adds r1, #1 + subs r2, #1 + cmp r2, #0 + bge _080A1472 + adds r0, r4, #0 + bl sub_080526CC + ldr r0, _080A14A0 @ =0x00003007 + adds r1, r5, #0 + bl sub_08056398 + ldr r1, _080A14A4 @ =gUnk_02000050 + lsls r0, r4, #0x10 + lsrs r0, r0, #0x10 + str r0, [r1, #0x10] + pop {r4, r5, pc} + .align 2, 0 +_080A149C: .4byte gUnk_08124ECC +_080A14A0: .4byte 0x00003007 +_080A14A4: .4byte gUnk_02000050 + + thumb_func_start sub_080A14A8 +sub_080A14A8: @ 0x080A14A8 + push {r4, lr} + bl sub_080A1514 + adds r4, r0, #0 + adds r4, #1 + cmp r4, #9 + ble _080A14B8 + movs r4, #9 +_080A14B8: + movs r0, #1 + ands r0, r4 + cmp r0, #0 + beq _080A14C8 + movs r0, #0x4b + bl sub_0807CD04 + b _080A14CE +_080A14C8: + movs r0, #0x4b + bl sub_0807CD80 +_080A14CE: + movs r0, #2 + ands r0, r4 + cmp r0, #0 + beq _080A14DE + movs r0, #0x4c + bl sub_0807CD04 + b _080A14E4 +_080A14DE: + movs r0, #0x4c + bl sub_0807CD80 +_080A14E4: + movs r0, #4 + ands r0, r4 + cmp r0, #0 + beq _080A14F4 + movs r0, #0x4d + bl sub_0807CD04 + b _080A14FA +_080A14F4: + movs r0, #0x4d + bl sub_0807CD80 +_080A14FA: + movs r0, #8 + ands r0, r4 + cmp r0, #0 + beq _080A150A + movs r0, #0x4e + bl sub_0807CD04 + b _080A1510 +_080A150A: + movs r0, #0x4e + bl sub_0807CD80 +_080A1510: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A1514 +sub_080A1514: @ 0x080A1514 + push {r4, lr} + movs r0, #0x4b + bl sub_0807CC30 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r4, r1, #0x1f + movs r0, #0x4c + bl sub_0807CC30 + cmp r0, #0 + beq _080A1530 + movs r0, #2 + orrs r4, r0 +_080A1530: + movs r0, #0x4d + bl sub_0807CC30 + cmp r0, #0 + beq _080A153E + movs r0, #4 + orrs r4, r0 +_080A153E: + movs r0, #0x4e + bl sub_0807CC30 + cmp r0, #0 + beq _080A154C + movs r0, #8 + orrs r4, r0 +_080A154C: + adds r0, r4, #0 + pop {r4, pc} + + thumb_func_start sub_080A1550 +sub_080A1550: @ 0x080A1550 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov r8, r1 + movs r0, #0 + str r0, [r1, #0x14] + movs r0, #0xb9 + movs r1, #0 + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _080A15FE + movs r0, #0x28 + bl sub_0801D8E0 + str r0, [r4, #0x64] + cmp r0, #0 + bne _080A1582 + adds r0, r4, #0 + bl sub_0805E79C + b _080A15FE +_080A1582: + mov r0, r8 + ldr r1, [r0, #4] + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] + bl sub_080A1514 + lsls r1, r0, #4 + subs r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _080A15B4 @ =gUnk_08124C48 + adds r5, r1, r0 + ldr r4, [r4, #0x64] + mov sb, r4 + ldr r7, _080A15B8 @ =gUnk_03000BF0 + movs r6, #9 +_080A15A8: + movs r1, #0 + ldrsh r0, [r5, r1] + cmp r0, #0 + bgt _080A15BC + movs r4, #0 + b _080A15E6 + .align 2, 0 +_080A15B4: .4byte gUnk_08124C48 +_080A15B8: .4byte gUnk_03000BF0 +_080A15BC: + movs r0, #0 + ldrsh r1, [r5, r0] + subs r1, #1 + movs r0, #0x41 + bl sub_0804AA60 + adds r4, r0, #0 + cmp r4, #0 + beq _080A15E6 + ldrh r0, [r5, #2] + ldrh r1, [r7, #6] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + ldrh r0, [r5, #4] + ldrh r1, [r7, #8] + adds r0, r0, r1 + strh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] +_080A15E6: + mov r0, sb + adds r0, #4 + mov sb, r0 + subs r0, #4 + stm r0!, {r4} + subs r6, #1 + adds r5, #6 + cmp r6, #0 + bge _080A15A8 + movs r0, #1 + mov r1, r8 + str r0, [r1, #0x14] +_080A15FE: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_080A1608 +sub_080A1608: @ 0x080A1608 + push {r4, lr} + ldr r4, _080A163C @ =0x00003002 + movs r0, #1 + bl sub_0807CC3C + cmp r0, #0 + beq _080A1618 + adds r4, #4 +_080A1618: + adds r0, r4, #0 + bl sub_08056378 + ldr r4, _080A1640 @ =gUnk_02000050 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #6] + strb r1, [r4, #7] + bl sub_080A1514 + lsls r0, r0, #2 + ldr r1, _080A1644 @ =gUnk_08124C20 + adds r0, r0, r1 + ldrh r1, [r0] + str r1, [r4, #0x10] + ldrh r0, [r0, #2] + str r0, [r4, #0x14] + pop {r4, pc} + .align 2, 0 +_080A163C: .4byte 0x00003002 +_080A1640: .4byte gUnk_02000050 +_080A1644: .4byte gUnk_08124C20 + + thumb_func_start sub_080A1648 +sub_080A1648: @ 0x080A1648 + push {r4, lr} + ldr r4, _080A1684 @ =0x0000407F + ldr r1, _080A1688 @ =0x00000D36 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _080A168C @ =0x00000D37 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _080A1690 @ =0x00000D38 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + subs r4, #1 + ldr r1, _080A1694 @ =0x00000D75 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _080A1698 @ =0x00000E75 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + pop {r4, pc} + .align 2, 0 +_080A1684: .4byte 0x0000407F +_080A1688: .4byte 0x00000D36 +_080A168C: .4byte 0x00000D37 +_080A1690: .4byte 0x00000D38 +_080A1694: .4byte 0x00000D75 +_080A1698: .4byte 0x00000E75 + + thumb_func_start sub_080A169C +sub_080A169C: @ 0x080A169C + push {lr} + ldr r0, _080A16C8 @ =0x00000D36 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _080A16CC @ =0x00000D37 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _080A16D0 @ =0x00000D38 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _080A16D4 @ =0x00000D75 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _080A16D8 @ =0x00000E75 + movs r1, #1 + bl sub_0807BA8C + pop {pc} + .align 2, 0 +_080A16C8: .4byte 0x00000D36 +_080A16CC: .4byte 0x00000D37 +_080A16D0: .4byte 0x00000D38 +_080A16D4: .4byte 0x00000D75 +_080A16D8: .4byte 0x00000E75 + + thumb_func_start sub_080A16DC +sub_080A16DC: @ 0x080A16DC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080A1700 @ =gUnk_08124ED0 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_080A1DCC + adds r0, r4, #0 + bl sub_080A1C9C + pop {r4, pc} + .align 2, 0 +_080A1700: .4byte gUnk_08124ED0 + + thumb_func_start sub_080A1704 +sub_080A1704: @ 0x080A1704 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov sl, r0 + movs r0, #0x7b + bl sub_0807CBE4 + cmp r0, #0 + beq _080A171E + bl sub_0805E780 +_080A171E: + ldr r0, _080A1828 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x45 + bhi _080A181C + movs r0, #0x40 + bl sub_0801D8E0 + adds r7, r0, #0 + cmp r7, #0 + beq _080A181C + movs r6, #0 + movs r0, #1 + mov sb, r0 + mov r2, sb + mov r1, sl + strb r2, [r1, #0xc] + str r7, [r1, #0x64] + adds r1, #0x6e + movs r3, #0 + mov r8, r3 + movs r0, #0x96 + lsls r0, r0, #2 + strh r0, [r1] + mov r0, sl + adds r0, #0x6c + strh r6, [r0] + mov r0, sl + str r0, [r7] + movs r0, #0x5c + movs r1, #0 + bl sub_0804AA60 + adds r1, r0, #0 + str r7, [r1, #0x64] + str r1, [r7, #4] + movs r0, #0x5d + movs r1, #0 + bl sub_0804AA60 + adds r1, r0, #0 + ldr r4, _080A182C @ =gUnk_03000BF0 + movs r2, #0x80 + lsls r2, r2, #2 + adds r5, r2, #0 + ldrh r3, [r4, #6] + adds r0, r5, r3 + strh r0, [r1, #0x2e] + movs r2, #0xcc + lsls r2, r2, #2 + adds r0, r2, #0 + ldrh r3, [r4, #8] + adds r0, r0, r3 + strh r0, [r1, #0x32] + str r7, [r1, #0x64] + str r1, [r7, #8] + movs r0, #0x5d + movs r1, #1 + bl sub_0804AA60 + adds r1, r0, #0 + movs r2, #0x98 + lsls r2, r2, #2 + adds r0, r2, #0 + ldrh r3, [r4, #6] + adds r0, r0, r3 + strh r0, [r1, #0x2e] + adds r2, #0xb0 + adds r0, r2, #0 + ldrh r3, [r4, #8] + adds r0, r0, r3 + strh r0, [r1, #0x32] + str r7, [r1, #0x64] + str r1, [r7, #0xc] + ldr r2, _080A1830 @ =gUnk_03000F50 + ldr r0, _080A1834 @ =0x00001E07 + strh r0, [r2, #0x2c] + ldrh r0, [r2] + movs r3, #0x80 + lsls r3, r3, #4 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + mov r0, sl + adds r0, #0x70 + strh r6, [r0] + adds r0, #2 + strh r6, [r0] + adds r0, #2 + mov r1, r8 + strb r1, [r0] + adds r0, #6 + strb r1, [r0] + subs r0, #4 + movs r1, #0xc0 + strh r1, [r0] + adds r0, #2 + strh r1, [r0] + ldr r0, _080A1838 @ =gUnk_030010A0 + adds r0, #0x39 + mov r2, sb + strb r2, [r0] + ldr r2, _080A183C @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #0xa + orrs r0, r1 + str r0, [r2, #0x30] + ldrh r3, [r4, #6] + adds r5, r5, r3 + strh r5, [r2, #0x16] + movs r1, #0x84 + lsls r1, r1, #2 + adds r0, r1, #0 + ldrh r4, [r4, #8] + adds r0, r0, r4 + strh r0, [r2, #0x18] + ldr r0, _080A1840 @ =0x80100000 + bl sub_080A3268 + ldr r0, _080A1844 @ =gUnk_02033A90 + movs r2, #0x86 + lsls r2, r2, #4 + adds r1, r0, r2 + ldr r3, _080A1848 @ =0x00000864 + adds r0, r0, r3 + ldr r0, [r0] + str r0, [r1] +_080A181C: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A1828: .4byte gUnk_03003DBC +_080A182C: .4byte gUnk_03000BF0 +_080A1830: .4byte gUnk_03000F50 +_080A1834: .4byte 0x00001E07 +_080A1838: .4byte gUnk_030010A0 +_080A183C: .4byte gUnk_03003F80 +_080A1840: .4byte 0x80100000 +_080A1844: .4byte gUnk_02033A90 +_080A1848: .4byte 0x00000864 + + thumb_func_start sub_080A184C +sub_080A184C: @ 0x080A184C + push {lr} + adds r3, r0, #0 + adds r1, r3, #0 + adds r1, #0x6e + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080A1874 + movs r0, #2 + strb r0, [r3, #0xc] + subs r1, #2 + movs r2, #8 + movs r0, #8 + strh r0, [r1] + ldr r0, [r3, #0x64] + ldr r0, [r0, #4] + adds r0, #0x45 + strb r2, [r0] +_080A1874: + ldr r2, _080A1894 @ =gUnk_03003F80 + ldr r1, _080A1898 @ =gUnk_03000BF0 + movs r3, #0x80 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r3, [r1, #6] + adds r0, r0, r3 + strh r0, [r2, #0x16] + movs r3, #0x84 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r2, #0x18] + pop {pc} + .align 2, 0 +_080A1894: .4byte gUnk_03003F80 +_080A1898: .4byte gUnk_03000BF0 + + thumb_func_start sub_080A189C +sub_080A189C: @ 0x080A189C + push {lr} + adds r3, r0, #0 + ldr r0, [r3, #0x64] + ldr r0, [r0, #4] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _080A18E6 + movs r0, #3 + strb r0, [r3, #0xc] + movs r0, #0x23 + strb r0, [r3, #0xe] + adds r1, r3, #0 + adds r1, #0x6c + movs r2, #1 + movs r0, #1 + strh r0, [r1] + adds r1, #0xc + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r1] + adds r0, r3, #0 + adds r0, #0x7b + strb r2, [r0] + ldr r0, [r3, #0x64] + ldr r0, [r0, #8] + adds r0, #0x45 + movs r1, #0xc + strb r1, [r0] + movs r0, #0x94 + lsls r0, r0, #1 + bl sub_080A3268 + movs r0, #0x96 + movs r1, #1 + bl sub_08080964 +_080A18E6: + ldr r2, _080A1904 @ =gUnk_03003F80 + ldr r1, _080A1908 @ =gUnk_03000BF0 + movs r3, #0x80 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r3, [r1, #6] + adds r0, r0, r3 + strh r0, [r2, #0x16] + movs r3, #0x84 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r2, #0x18] + pop {pc} + .align 2, 0 +_080A1904: .4byte gUnk_03003F80 +_080A1908: .4byte gUnk_03000BF0 + + thumb_func_start sub_080A190C +sub_080A190C: @ 0x080A190C + push {r4, lr} + adds r4, r0, #0 + bl sub_080A1FF0 + ldr r3, [r4, #0x64] + ldr r2, [r3, #8] + adds r0, r2, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _080A197C + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_080A20B8 + cmp r0, #0 + beq _080A1956 + movs r0, #4 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x6c + movs r0, #0x10 + strh r0, [r1] + adds r1, #0xc + movs r0, #0xc0 + strh r0, [r1] + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + ldrb r1, [r0, #0x14] + adds r0, r4, #0 + bl sub_080A1D70 + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + adds r0, #0x45 + movs r1, #0x18 + strb r1, [r0] +_080A1956: + ldr r2, _080A1974 @ =gUnk_03003F80 + ldr r1, _080A1978 @ =gUnk_03000BF0 + movs r3, #0x80 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r3, [r1, #6] + adds r0, r0, r3 + strh r0, [r2, #0x16] + movs r3, #0x84 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r2, #0x18] + b _080A1988 + .align 2, 0 +_080A1974: .4byte gUnk_03003F80 +_080A1978: .4byte gUnk_03000BF0 +_080A197C: + ldr r1, _080A198C @ =gUnk_03003F80 + ldrh r0, [r2, #0x2e] + strh r0, [r1, #0x16] + ldr r0, [r3, #8] + ldrh r0, [r0, #0x32] + strh r0, [r1, #0x18] +_080A1988: + pop {r4, pc} + .align 2, 0 +_080A198C: .4byte gUnk_03003F80 + + thumb_func_start sub_080A1990 +sub_080A1990: @ 0x080A1990 + push {lr} + adds r2, r0, #0 + ldr r1, [r2, #0x64] + ldr r0, [r1, #4] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _080A19D6 + ldr r0, [r1, #8] + adds r0, #0x45 + movs r1, #0xc + strb r1, [r0] + movs r0, #5 + strb r0, [r2, #0xc] + movs r0, #0x23 + strb r0, [r2, #0xe] + adds r1, r2, #0 + adds r1, #0x6c + movs r0, #2 + strh r0, [r1] + adds r1, #0xc + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r1] + adds r1, #3 + movs r0, #1 + strb r0, [r1] + movs r0, #0x94 + lsls r0, r0, #1 + bl sub_080A3268 + movs r0, #0x96 + movs r1, #1 + bl sub_08080964 +_080A19D6: + ldr r2, _080A19F4 @ =gUnk_03003F80 + ldr r1, _080A19F8 @ =gUnk_03000BF0 + movs r3, #0x80 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r3, [r1, #6] + adds r0, r0, r3 + strh r0, [r2, #0x16] + movs r3, #0x84 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r2, #0x18] + pop {pc} + .align 2, 0 +_080A19F4: .4byte gUnk_03003F80 +_080A19F8: .4byte gUnk_03000BF0 + + thumb_func_start sub_080A19FC +sub_080A19FC: @ 0x080A19FC + push {r4, lr} + adds r4, r0, #0 + bl sub_080A1FF0 + ldr r3, [r4, #0x64] + ldr r2, [r3, #0xc] + adds r0, r2, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _080A1A6C + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_080A20B8 + cmp r0, #0 + beq _080A1A46 + movs r0, #6 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x6c + movs r0, #0x20 + strh r0, [r1] + adds r1, #0xc + movs r0, #0xc0 + strh r0, [r1] + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + ldrb r1, [r0, #0x14] + adds r0, r4, #0 + bl sub_080A1D70 + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + adds r0, #0x45 + movs r1, #0x18 + strb r1, [r0] +_080A1A46: + ldr r2, _080A1A64 @ =gUnk_03003F80 + ldr r1, _080A1A68 @ =gUnk_03000BF0 + movs r3, #0x80 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r3, [r1, #6] + adds r0, r0, r3 + strh r0, [r2, #0x16] + movs r3, #0x84 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r2, #0x18] + b _080A1A78 + .align 2, 0 +_080A1A64: .4byte gUnk_03003F80 +_080A1A68: .4byte gUnk_03000BF0 +_080A1A6C: + ldr r1, _080A1A7C @ =gUnk_03003F80 + ldrh r0, [r2, #0x2e] + strh r0, [r1, #0x16] + ldr r0, [r3, #0xc] + ldrh r0, [r0, #0x32] + strh r0, [r1, #0x18] +_080A1A78: + pop {r4, pc} + .align 2, 0 +_080A1A7C: .4byte gUnk_03003F80 + + thumb_func_start sub_080A1A80 +sub_080A1A80: @ 0x080A1A80 + push {lr} + adds r2, r0, #0 + ldr r1, [r2, #0x64] + ldr r0, [r1, #4] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _080A1AC0 + ldr r0, [r1, #0xc] + adds r0, #0x45 + movs r1, #0xc + strb r1, [r0] + movs r0, #7 + strb r0, [r2, #0xc] + movs r0, #0x23 + strb r0, [r2, #0xe] + adds r1, r2, #0 + adds r1, #0x6c + adds r0, #0xe1 + strh r0, [r1] + adds r1, #0xc + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r1] + movs r0, #0x94 + lsls r0, r0, #1 + bl sub_080A3268 + movs r0, #0x96 + movs r1, #1 + bl sub_08080964 +_080A1AC0: + ldr r2, _080A1AE0 @ =gUnk_03003F80 + ldr r1, _080A1AE4 @ =gUnk_03000BF0 + movs r3, #0x80 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r3, [r1, #6] + adds r0, r0, r3 + strh r0, [r2, #0x16] + movs r3, #0x84 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r2, #0x18] + pop {pc} + .align 2, 0 +_080A1AE0: .4byte gUnk_03003F80 +_080A1AE4: .4byte gUnk_03000BF0 + + thumb_func_start sub_080A1AE8 +sub_080A1AE8: @ 0x080A1AE8 + push {r4, lr} + adds r4, r0, #0 + bl sub_080A1FF0 + ldr r0, [r4, #0x64] + ldr r1, [r0, #0xc] + adds r0, r1, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _080A1B24 + adds r0, r4, #0 + bl sub_080A20B8 + cmp r0, #0 + beq _080A1B24 + movs r0, #8 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x6c + movs r0, #0x40 + strh r0, [r1] + adds r1, #0xc + movs r0, #0xc0 + strh r0, [r1] + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + adds r0, #0x45 + movs r1, #0xc + strb r1, [r0] +_080A1B24: + ldr r2, _080A1B44 @ =gUnk_03003F80 + ldr r1, _080A1B48 @ =gUnk_03000BF0 + movs r3, #0x80 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r3, [r1, #6] + adds r0, r0, r3 + strh r0, [r2, #0x16] + movs r3, #0x84 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r2, #0x18] + pop {r4, pc} + .align 2, 0 +_080A1B44: .4byte gUnk_03003F80 +_080A1B48: .4byte gUnk_03000BF0 + + thumb_func_start sub_080A1B4C +sub_080A1B4C: @ 0x080A1B4C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + adds r0, #0x45 + ldrb r7, [r0] + cmp r7, #0 + bne _080A1BD0 + adds r5, r4, #0 + adds r5, #0x6c + ldrh r0, [r5] + cmp r0, #0 + beq _080A1B80 + movs r0, #0x2d + movs r1, #1 + bl sub_08080964 + movs r0, #0x94 + lsls r0, r0, #1 + bl sub_080A3268 + adds r1, r4, #0 + adds r1, #0x78 + movs r0, #0xc0 + lsls r0, r0, #3 + strh r0, [r1] +_080A1B80: + movs r6, #0 + strh r7, [r5] + ldr r0, _080A1BF0 @ =gUnk_030010A0 + adds r0, #0x39 + strb r6, [r0] + bl sub_08079F8C + cmp r0, #0 + beq _080A1BD0 + ldr r3, _080A1BF4 @ =gUnk_03001160 + movs r1, #0x36 + ldrsh r0, [r3, r1] + cmp r0, #0 + bne _080A1BD0 + movs r0, #9 + strb r0, [r4, #0xc] + strb r6, [r4, #0xe] + movs r0, #0xf0 + strb r0, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x6e + adds r0, #0xb4 + strh r0, [r1] + strb r6, [r4, #0x15] + movs r0, #0x60 + strh r0, [r4, #0x24] + ldr r2, _080A1BF8 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + ldr r1, _080A1BFC @ =0xFFFDFFFF + ands r0, r1 + str r0, [r2, #0x30] + adds r0, r3, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldr r0, _080A1C00 @ =gUnk_03000BF0 + str r4, [r0, #0x30] + movs r0, #2 + bl sub_08078A90 +_080A1BD0: + ldr r2, _080A1BF8 @ =gUnk_03003F80 + ldr r1, _080A1C00 @ =gUnk_03000BF0 + movs r3, #0x80 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r3, [r1, #6] + adds r0, r0, r3 + strh r0, [r2, #0x16] + movs r3, #0x84 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r2, #0x18] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A1BF0: .4byte gUnk_030010A0 +_080A1BF4: .4byte gUnk_03001160 +_080A1BF8: .4byte gUnk_03003F80 +_080A1BFC: .4byte 0xFFFDFFFF +_080A1C00: .4byte gUnk_03000BF0 + + thumb_func_start sub_080A1C04 +sub_080A1C04: @ 0x080A1C04 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x6e + ldrh r0, [r1] + cmp r0, #0 + bne _080A1C52 + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_080A1E54 + ldrb r0, [r4, #0xf] + subs r1, r0, #1 + strb r1, [r4, #0xf] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _080A1C40 + movs r0, #0x7b + bl sub_0807CCC8 + ldr r0, _080A1C3C @ =gUnk_0813ABD0 + movs r1, #8 + bl sub_0808091C + b _080A1C9A + .align 2, 0 +_080A1C3C: .4byte gUnk_0813ABD0 +_080A1C40: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x3c + bne _080A1C9A + movs r0, #7 + movs r1, #4 + bl sub_08050054 + b _080A1C9A +_080A1C52: + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xb3 + bhi _080A1C66 + adds r0, r4, #0 + bl sub_080A1E54 + b _080A1C9A +_080A1C66: + ldrh r1, [r1] + cmp r1, #0xb4 + beq _080A1C76 + movs r0, #0x96 + lsls r0, r0, #1 + cmp r1, r0 + beq _080A1C8A + b _080A1C9A +_080A1C76: + movs r0, #0x94 + lsls r0, r0, #1 + bl sub_080A3268 + movs r0, #0xb4 + lsls r0, r0, #2 + movs r1, #2 + bl sub_08080964 + b _080A1C9A +_080A1C8A: + movs r0, #0x94 + lsls r0, r0, #1 + bl sub_080A3268 + movs r0, #0x4b + movs r1, #1 + bl sub_08080964 +_080A1C9A: + pop {r4, pc} + + thumb_func_start sub_080A1C9C +sub_080A1C9C: @ 0x080A1C9C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x7a + ldrb r0, [r5] + cmp r0, #0 + beq _080A1D04 + adds r0, r4, #0 + adds r0, #0x74 + adds r7, r4, #0 + adds r7, #0x75 + ldrb r1, [r0] + adds r6, r0, #0 + ldrb r0, [r7] + cmp r1, r0 + beq _080A1CE4 + subs r5, #2 + movs r0, #0 + strh r0, [r5] + adds r0, r4, #0 + movs r1, #0xc + bl sub_080A1D8C + adds r0, r4, #0 + adds r0, #0x76 + ldrh r1, [r0] + adds r2, r0, #0 + cmp r1, #0 + bne _080A1D14 + ldrb r0, [r7] + strb r0, [r6] + adds r0, r4, #0 + adds r0, #0x7c + ldrh r0, [r0] + strh r0, [r5] + b _080A1D14 +_080A1CE4: + adds r0, r4, #0 + movs r1, #0xc + bl sub_080A1D8C + adds r0, r4, #0 + adds r0, #0x78 + adds r1, r4, #0 + adds r1, #0x76 + ldrh r0, [r0] + adds r2, r1, #0 + ldrh r1, [r2] + cmp r0, r1 + bne _080A1D14 + movs r0, #0 + strb r0, [r5] + b _080A1D14 +_080A1D04: + adds r0, r4, #0 + movs r1, #8 + bl sub_080A1D8C + adds r6, r4, #0 + adds r6, #0x74 + adds r2, r4, #0 + adds r2, #0x76 +_080A1D14: + adds r3, r4, #0 + adds r3, #0x70 + ldr r5, _080A1D68 @ =gUnk_080C9160 + ldrb r0, [r6] + lsls r0, r0, #1 + adds r0, r0, r5 + movs r7, #0 + ldrsh r1, [r0, r7] + ldrh r0, [r2] + muls r0, r1, r0 + cmp r0, #0 + bge _080A1D2E + adds r0, #0xff +_080A1D2E: + asrs r0, r0, #8 + ldrh r1, [r3] + adds r0, r0, r1 + strh r0, [r3] + adds r4, #0x72 + ldrb r0, [r6] + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r5 + movs r5, #0 + ldrsh r1, [r0, r5] + ldrh r0, [r2] + muls r0, r1, r0 + cmp r0, #0 + bge _080A1D4E + adds r0, #0xff +_080A1D4E: + asrs r0, r0, #8 + ldrh r1, [r4] + subs r1, r1, r0 + strh r1, [r4] + ldr r2, _080A1D6C @ =gUnk_03000F50 + ldrh r0, [r3] + lsrs r0, r0, #8 + strh r0, [r2, #0x2e] + lsls r1, r1, #0x10 + lsrs r1, r1, #0x18 + strh r1, [r2, #0x30] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A1D68: .4byte gUnk_080C9160 +_080A1D6C: .4byte gUnk_03000F50 + + thumb_func_start sub_080A1D70 +sub_080A1D70: @ 0x080A1D70 + adds r2, r0, #0 + adds r0, #0x75 + strb r1, [r0] + adds r1, r2, #0 + adds r1, #0x7a + movs r0, #1 + strb r0, [r1] + adds r0, r2, #0 + adds r0, #0x78 + ldrh r1, [r0] + adds r0, #4 + strh r1, [r0] + bx lr + .align 2, 0 + + thumb_func_start sub_080A1D8C +sub_080A1D8C: @ 0x080A1D8C + push {r4, lr} + adds r4, r1, #0 + adds r3, r0, #0 + adds r3, #0x78 + adds r2, r0, #0 + adds r2, #0x76 + ldrh r1, [r3] + ldrh r0, [r2] + cmp r1, r0 + beq _080A1DC8 + cmp r1, r0 + bls _080A1DB6 + adds r3, r0, #0 + subs r0, r1, r3 + cmp r4, r0 + bge _080A1DB2 + adds r0, r3, r4 + strh r0, [r2] + b _080A1DC8 +_080A1DB2: + strh r1, [r2] + b _080A1DC8 +_080A1DB6: + ldrh r1, [r2] + ldrh r3, [r3] + subs r0, r1, r3 + cmp r4, r0 + bge _080A1DC6 + subs r0, r1, r4 + strh r0, [r2] + b _080A1DC8 +_080A1DC6: + strh r3, [r2] +_080A1DC8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A1DCC +sub_080A1DCC: @ 0x080A1DCC + push {r4, lr} + adds r4, r0, #0 + ldr r1, [r4, #0x64] + ldr r3, [r1, #8] + cmp r3, #0 + bne _080A1DDE + ldr r3, [r1, #0xc] + cmp r3, #0 + beq _080A1E24 +_080A1DDE: + adds r0, r3, #0 + adds r0, #0x7c + ldrb r0, [r0] + cmp r0, #0 + beq _080A1E24 + ldrb r0, [r3, #0x19] + lsrs r0, r0, #6 + cmp r0, #2 + bne _080A1E24 + ldr r3, [r1, #0x10] + ldrb r2, [r3, #0x10] + movs r1, #0x7f + adds r0, r1, #0 + ands r0, r2 + strb r0, [r3, #0x10] + ldr r0, [r4, #0x64] + ldr r3, [r0, #0x14] + ldrb r2, [r3, #0x10] + adds r0, r1, #0 + ands r0, r2 + strb r0, [r3, #0x10] + ldr r3, [r3, #0x54] + ldrb r2, [r3, #0x10] + adds r0, r1, #0 + ands r0, r2 + strb r0, [r3, #0x10] + ldr r3, [r3, #0x54] + ldrb r2, [r3, #0x10] + adds r0, r1, #0 + ands r0, r2 + strb r0, [r3, #0x10] + ldr r3, [r3, #0x54] + ldrb r0, [r3, #0x10] + ands r1, r0 + b _080A1E50 +_080A1E24: + ldr r0, [r4, #0x64] + ldr r2, [r0, #0x10] + ldrb r0, [r2, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + ldr r0, [r4, #0x64] + ldr r3, [r0, #0x14] + ldrb r0, [r3, #0x10] + orrs r0, r1 + strb r0, [r3, #0x10] + ldr r3, [r3, #0x54] + ldrb r0, [r3, #0x10] + orrs r0, r1 + strb r0, [r3, #0x10] + ldr r3, [r3, #0x54] + ldrb r0, [r3, #0x10] + orrs r0, r1 + strb r0, [r3, #0x10] + ldr r3, [r3, #0x54] + ldrb r0, [r3, #0x10] + orrs r1, r0 +_080A1E50: + strb r1, [r3, #0x10] + pop {r4, pc} + + thumb_func_start sub_080A1E54 +sub_080A1E54: @ 0x080A1E54 + push {r4, r5, lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + adds r0, #1 + strb r0, [r2, #0xe] + movs r1, #0xff + ands r0, r1 + movs r1, #0x1f + ands r0, r1 + cmp r0, #0 + bne _080A1ECA + adds r0, r2, #0 + movs r1, #0x51 + movs r2, #0 + bl sub_080A29AC + adds r4, r0, #0 + cmp r4, #0 + beq _080A1ECA + bl sub_08000E50 + ldr r3, _080A1ECC @ =gUnk_03000BF0 + movs r1, #0xf0 + adds r2, r0, #0 + ands r2, r1 + movs r5, #0x80 + lsls r5, r5, #2 + adds r1, r5, #0 + adds r2, r2, r1 + ldrh r1, [r3, #6] + adds r1, r1, r2 + subs r1, #0x78 + strh r1, [r4, #0x2e] + lsrs r0, r0, #8 + movs r1, #0x70 + ands r0, r1 + movs r1, #0x84 + lsls r1, r1, #2 + adds r0, r0, r1 + ldrh r3, [r3, #8] + adds r0, r0, r3 + subs r0, #0x38 + strh r0, [r4, #0x32] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 +_080A1ECA: + pop {r4, r5, pc} + .align 2, 0 +_080A1ECC: .4byte gUnk_03000BF0 + + thumb_func_start sub_080A1ED0 +sub_080A1ED0: @ 0x080A1ED0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + mov sb, r1 + adds r5, r2, #0 + movs r1, #0 + str r1, [sp] + ldr r4, _080A1F60 @ =gUnk_08124EF8 + lsls r1, r5, #2 + adds r1, r1, r4 + ldrh r2, [r1] + ldr r3, _080A1F64 @ =gUnk_03000BF0 + ldrh r1, [r3, #6] + adds r2, r2, r1 + mov sl, r2 + lsls r1, r5, #1 + adds r1, #1 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r2, [r1] + ldrh r1, [r3, #8] + adds r2, r2, r1 + mov r8, r2 + ldr r1, _080A1F68 @ =gUnk_08124FF0 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r4, [r0] + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, #1 + beq _080A1FB0 + lsls r7, r5, #3 + movs r0, #0x10 + adds r6, r7, #0 + eors r6, r0 +_080A1F1C: + movs r0, #0x60 + mov r1, sb + bl sub_0804AA60 + adds r2, r0, #0 + cmp r2, #0 + beq _080A1FA6 + mov r0, sp + ldrb r0, [r0] + strb r0, [r2, #0xb] + ldr r1, [sp] + adds r1, #1 + str r1, [sp] + mov r0, sl + strh r0, [r2, #0x2e] + mov r1, r8 + strh r1, [r2, #0x32] + strb r7, [r2, #0x15] + adds r0, r2, #0 + adds r0, #0x7a + strb r6, [r0] + ldrh r1, [r4, #4] + subs r0, #2 + strh r1, [r0] + cmp r5, #1 + beq _080A1F7A + cmp r5, #1 + blo _080A1F6C + cmp r5, #2 + beq _080A1F80 + cmp r5, #3 + beq _080A1F94 + b _080A1FA6 + .align 2, 0 +_080A1F60: .4byte gUnk_08124EF8 +_080A1F64: .4byte gUnk_03000BF0 +_080A1F68: .4byte gUnk_08124FF0 +_080A1F6C: + ldrh r1, [r4] + adds r0, r2, #0 + adds r0, #0x74 + strh r1, [r0] + ldrh r0, [r4, #2] + rsbs r0, r0, #0 + b _080A1F8C +_080A1F7A: + ldrh r0, [r4, #2] + adds r0, #0xf0 + b _080A1F98 +_080A1F80: + ldrh r1, [r4] + adds r0, r2, #0 + adds r0, #0x74 + strh r1, [r0] + ldrh r0, [r4, #2] + adds r0, #0xa0 +_080A1F8C: + adds r1, r2, #0 + adds r1, #0x76 + strh r0, [r1] + b _080A1FA6 +_080A1F94: + ldrh r0, [r4, #2] + rsbs r0, r0, #0 +_080A1F98: + adds r1, r2, #0 + adds r1, #0x74 + strh r0, [r1] + ldrh r1, [r4] + adds r0, r2, #0 + adds r0, #0x76 + strh r1, [r0] +_080A1FA6: + adds r4, #6 + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, #1 + bne _080A1F1C +_080A1FB0: + mov r0, sb + cmp r0, #0 + bne _080A1FE4 + movs r0, #0xf + movs r1, #2 + movs r2, #0 + bl sub_080A2960 + adds r2, r0, #0 + cmp r2, #0 + beq _080A1FE4 + mov r1, sl + strh r1, [r2, #0x2e] + mov r0, r8 + strh r0, [r2, #0x32] + ldrb r0, [r2, #0x1b] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r2, #0x1b] + ldrb r0, [r2, #0x19] + orrs r0, r1 + strb r0, [r2, #0x19] + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] +_080A1FE4: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080A1FF0 +sub_080A1FF0: @ 0x080A1FF0 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _080A2066 + subs r1, r0, #1 + strb r1, [r5, #0xe] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x20 + bhi _080A2066 + movs r0, #0xf + ands r1, r0 + cmp r1, #0 + bne _080A2066 + adds r0, r5, #0 + movs r1, #0x51 + movs r2, #0 + bl sub_080A29AC + adds r4, r0, #0 + cmp r4, #0 + beq _080A2066 + bl sub_08000E50 + ldr r3, _080A209C @ =gUnk_03000BF0 + movs r1, #0x78 + ands r0, r1 + movs r1, #0x80 + lsls r1, r1, #2 + adds r2, r1, #0 + adds r2, r0, r2 + ldrh r1, [r3, #6] + adds r1, r1, r2 + subs r1, #0x3c + strh r1, [r4, #0x2e] + movs r1, #0x84 + lsls r1, r1, #2 + adds r0, r0, r1 + ldrh r3, [r3, #8] + adds r0, r0, r3 + subs r0, #0x3c + strh r0, [r4, #0x32] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 +_080A2066: + adds r4, r5, #0 + adds r4, #0x7b + ldrb r0, [r4] + cmp r0, #0 + beq _080A20B4 + ldr r0, _080A20A0 @ =gUnk_03001160 + ldr r2, _080A209C @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + movs r3, #0x80 + lsls r3, r3, #2 + adds r1, r1, r3 + ldrh r2, [r2, #8] + adds r3, #0x10 + adds r2, r2, r3 + movs r3, #0x80 + lsls r3, r3, #1 + bl sub_0806FCB8 + cmp r0, #0 + beq _080A20B2 + ldrb r0, [r5, #0xe] + cmp r0, #0 + bne _080A20A4 + movs r0, #0x78 + strb r0, [r5, #0xe] + b _080A20B4 + .align 2, 0 +_080A209C: .4byte gUnk_03000BF0 +_080A20A0: .4byte gUnk_03001160 +_080A20A4: + cmp r0, #0x23 + bne _080A20B4 + movs r0, #0x1e + movs r1, #0 + bl sub_08080964 + b _080A20B4 +_080A20B2: + strb r0, [r4] +_080A20B4: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080A20B8 +sub_080A20B8: @ 0x080A20B8 + push {r4, lr} + adds r4, r1, #0 + cmp r4, #0 + bne _080A20C4 + movs r0, #1 + b _080A20FA +_080A20C4: + bl sub_08079F8C + cmp r0, #0 + beq _080A20F8 + ldr r0, _080A20F0 @ =gUnk_03001160 + movs r1, #0x36 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _080A20F8 + movs r1, #0 + adds r0, r4, #0 + adds r0, #0x7c + ldrb r0, [r0] + cmp r0, #0 + bne _080A20EC + ldr r0, _080A20F4 @ =gUnk_03003F80 + ldrb r1, [r0, #0x14] + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r1, r0, #0x1f +_080A20EC: + adds r0, r1, #0 + b _080A20FA + .align 2, 0 +_080A20F0: .4byte gUnk_03001160 +_080A20F4: .4byte gUnk_03003F80 +_080A20F8: + movs r0, #0 +_080A20FA: + pop {r4, pc} + + thumb_func_start sub_080A20FC +sub_080A20FC: @ 0x080A20FC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r1, r0, #0 + cmp r1, #0 + bne _080A2114 + adds r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0x1e] + adds r0, r4, #0 + bl sub_0807DD64 +_080A2114: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + pop {r4, pc} + + thumb_func_start sub_080A2124 +sub_080A2124: @ 0x080A2124 + push {lr} + ldr r3, _080A2134 @ =gUnk_08125010 + movs r1, #1 + movs r2, #0xe + bl sub_08078850 + pop {pc} + .align 2, 0 +_080A2134: .4byte gUnk_08125010 + + thumb_func_start sub_080A2138 +sub_080A2138: @ 0x080A2138 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x72 + bl sub_080A3268 + ldr r2, _080A2160 @ =gUnk_02002A40 + ldrb r0, [r4, #0xb] + adds r0, #0x18 + movs r1, #1 + lsls r1, r0 + ldr r0, [r2, #0x40] + orrs r0, r1 + str r0, [r2, #0x40] + adds r0, r4, #0 + movs r1, #0x46 + movs r2, #0 + bl sub_080A29AC + pop {r4, pc} + .align 2, 0 +_080A2160: .4byte gUnk_02002A40 + + thumb_func_start sub_080A2164 +sub_080A2164: @ 0x080A2164 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080A21DC + adds r1, r4, #0 + adds r1, #0x86 + ldrh r0, [r1] + cmp r0, #0 + beq _080A2180 + bl sub_0807CBE4 + cmp r0, #0 + beq _080A224E +_080A2180: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x19] + subs r0, #0xe + ands r0, r1 + movs r1, #8 + orrs r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x19] + movs r0, #3 + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x10] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r4, #0x10] + ldr r0, _080A21D4 @ =gUnk_03000BF0 + ldrb r0, [r0, #5] + strb r0, [r4, #0xf] + movs r0, #2 + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x68 + ldr r0, _080A21D8 @ =0x0000FFFE + strh r0, [r1] + adds r1, #2 + movs r0, #0x80 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #0x80 + movs r2, #0x80 + movs r3, #0 + bl sub_0805EC9C + b _080A221E + .align 2, 0 +_080A21D4: .4byte gUnk_03000BF0 +_080A21D8: .4byte 0x0000FFFE +_080A21DC: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A221E + movs r0, #2 + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x6a + adds r2, r4, #0 + adds r2, #0x68 + ldrh r0, [r2] + ldrh r3, [r1] + adds r0, r0, r3 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x77 + bhi _080A2208 + movs r0, #1 + strh r0, [r2] +_080A2208: + ldrh r0, [r1] + cmp r0, #0x88 + bls _080A2212 + ldr r0, _080A2250 @ =0x0000FFFF + strh r0, [r2] +_080A2212: + ldrh r2, [r1] + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C +_080A221E: + ldr r2, _080A2254 @ =gUnk_03000F50 + ldrh r1, [r2] + movs r3, #0x80 + lsls r3, r3, #8 + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2] + adds r2, #0x62 + ldrb r0, [r2] + movs r3, #0xdc + lsls r3, r3, #6 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + ldr r1, _080A2258 @ =gUnk_03000BF0 + ldrb r0, [r1, #5] + ldrb r4, [r4, #0xf] + cmp r0, r4 + beq _080A224E + ldrh r0, [r1] + cmp r0, #0 + bne _080A224E + bl sub_0805E780 +_080A224E: + pop {r4, pc} + .align 2, 0 +_080A2250: .4byte 0x0000FFFF +_080A2254: .4byte gUnk_03000F50 +_080A2258: .4byte gUnk_03000BF0 + + thumb_func_start sub_080A225C +sub_080A225C: @ 0x080A225C + push {lr} + ldr r2, _080A2270 @ =gUnk_0812503C + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A2270: .4byte gUnk_0812503C + + thumb_func_start sub_080A2274 +sub_080A2274: @ 0x080A2274 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xc] + cmp r0, #0 + bne _080A22AE + adds r0, r1, #0 + bl sub_080A2340 + movs r0, #0xbd + movs r1, #1 + movs r2, #0 + bl sub_080A2960 + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + movs r1, #3 + cmp r0, #1 + bne _080A229C + movs r1, #2 +_080A229C: + movs r0, #0xbd + movs r2, #0 + bl sub_080A2960 + movs r0, #0xbd + movs r1, #4 + movs r2, #0 + bl sub_080A2960 +_080A22AE: + pop {pc} + + thumb_func_start sub_080A22B0 +sub_080A22B0: @ 0x080A22B0 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xc] + cmp r0, #0 + bne _080A22C0 + adds r0, r1, #0 + bl sub_080A2340 +_080A22C0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080A22C4 +sub_080A22C4: @ 0x080A22C4 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xc] + cmp r5, #0 + beq _080A22FC + cmp r5, #1 + beq _080A231C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A233E + movs r0, #8 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xf] + adds r0, #1 + movs r1, #3 + ands r0, r1 + strb r0, [r4, #0xf] + ldrb r1, [r4, #0xd] + adds r0, r1, r0 + strb r0, [r4, #0x1e] + lsls r1, r1, #0x18 + lsls r0, r0, #0x18 + cmp r1, r0 + bne _080A233E + b _080A233A +_080A22FC: + adds r0, r4, #0 + bl sub_080A2340 + movs r0, #8 + strb r0, [r4, #0xe] + strb r5, [r4, #0xf] + ldrb r0, [r4, #0x1e] + strb r0, [r4, #0xd] + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + lsls r0, r0, #4 + adds r0, #0x1e + strh r0, [r4, #0x24] + b _080A233E +_080A231C: + ldrh r0, [r4, #0x24] + subs r0, #1 + strh r0, [r4, #0x24] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080A233E + bl sub_08000E50 + movs r1, #7 + ands r0, r1 + lsls r0, r0, #4 + adds r0, #0x1e + strh r0, [r4, #0x24] + movs r0, #2 + b _080A233C +_080A233A: + movs r0, #1 +_080A233C: + strb r0, [r4, #0xc] +_080A233E: + pop {r4, r5, pc} + + thumb_func_start sub_080A2340 +sub_080A2340: @ 0x080A2340 + ldrb r1, [r0, #0xa] + lsls r1, r1, #3 + ldr r2, _080A239C @ =gUnk_08125014 + adds r1, r1, r2 + ldrh r2, [r1] + strh r2, [r0, #0x2e] + ldrh r2, [r1, #2] + strh r2, [r0, #0x32] + ldrh r2, [r1, #4] + strb r2, [r0, #0x1e] + ldrb r1, [r1, #6] + movs r2, #0x29 + adds r2, r2, r0 + mov ip, r2 + movs r2, #7 + ands r2, r1 + mov r1, ip + ldrb r3, [r1] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r3 + orrs r1, r2 + mov r2, ip + strb r1, [r2] + ldrb r3, [r0, #0x19] + movs r2, #0x3f + adds r1, r2, #0 + ands r1, r3 + movs r3, #0x40 + orrs r1, r3 + strb r1, [r0, #0x19] + ldrb r1, [r0, #0x1b] + ands r2, r1 + orrs r2, r3 + strb r2, [r0, #0x1b] + ldrb r2, [r0, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #2 + orrs r1, r2 + strb r1, [r0, #0x18] + movs r1, #1 + strb r1, [r0, #0xc] + bx lr + .align 2, 0 +_080A239C: .4byte gUnk_08125014 + + thumb_func_start sub_080A23A0 +sub_080A23A0: @ 0x080A23A0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x45 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + beq _080A23C0 + ldr r0, _080A23D4 @ =gUnk_020342F8 + subs r1, #1 + bl sub_0801D5A8 + cmp r0, #0 + bne _080A23C0 + bl sub_0805E780 +_080A23C0: + ldr r0, _080A23D8 @ =gUnk_0812505C + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080A23D4: .4byte gUnk_020342F8 +_080A23D8: .4byte gUnk_0812505C + + thumb_func_start sub_080A23DC +sub_080A23DC: @ 0x080A23DC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080A240C @ =gUnk_08125050 + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + adds r2, r4, #0 + adds r2, #0x68 + strh r0, [r2] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r0, [r3] + movs r1, #7 + orrs r0, r1 + strb r0, [r3] + ldrh r0, [r2] + bl sub_0807CBD0 + cmp r0, #0 + beq _080A2410 + movs r0, #2 + b _080A2412 + .align 2, 0 +_080A240C: .4byte gUnk_08125050 +_080A2410: + movs r0, #1 +_080A2412: + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A2420 +sub_080A2420: @ 0x080A2420 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x68 + ldrh r0, [r0] + bl sub_0807CBD0 + cmp r0, #0 + beq _080A243A + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_080A29BC +_080A243A: + pop {r4, pc} + + thumb_func_start sub_080A243C +sub_080A243C: @ 0x080A243C + push {lr} + bl sub_08004274 + pop {pc} + + thumb_func_start nullsub_538 +nullsub_538: @ 0x080A2444 + bx lr + .align 2, 0 + + thumb_func_start sub_080A2448 +sub_080A2448: @ 0x080A2448 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _080A245E + adds r0, r5, #0 + bl sub_080A2500 +_080A245E: + ldrb r0, [r5, #0xc] + adds r1, r0, #0 + cmp r1, #0 + bne _080A24CE + adds r0, #1 + strb r0, [r5, #0xc] + ldrb r0, [r5, #0xe] + strb r0, [r5, #0xa] + str r1, [r5, #0x54] + ldr r2, _080A24B4 @ =gUnk_03003D90 + ldr r4, [r2, #4] + cmp r4, r2 + beq _080A24BE +_080A2478: + ldrb r0, [r4, #8] + cmp r0, #3 + bne _080A24B8 + ldrb r0, [r5, #0xb] + ldrb r1, [r4, #9] + cmp r0, r1 + bne _080A24B8 + movs r3, #0x2e + ldrsh r0, [r4, r3] + movs r3, #0x2e + ldrsh r1, [r5, r3] + subs r0, r0, r1 + adds r0, #0x10 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x1f + bhi _080A24B8 + movs r1, #0x32 + ldrsh r0, [r4, r1] + movs r3, #0x32 + ldrsh r1, [r5, r3] + subs r0, r0, r1 + adds r0, #0x10 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x1f + bhi _080A24B8 + str r4, [r5, #0x54] + b _080A24BE + .align 2, 0 +_080A24B4: .4byte gUnk_03003D90 +_080A24B8: + ldr r4, [r4, #4] + cmp r4, r2 + bne _080A2478 +_080A24BE: + ldr r0, [r5, #0x54] + cmp r0, #0 + bne _080A24CA + adds r0, r5, #0 + bl sub_080A2534 +_080A24CA: + bl sub_08054564 +_080A24CE: + ldr r4, [r5, #0x54] + cmp r4, #0 + beq _080A24F6 + movs r2, #0x80 + lsls r2, r2, #0xb + movs r3, #0x80 + lsls r3, r3, #9 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FA48 + ldrh r0, [r5, #0x36] + subs r0, #4 + strh r0, [r5, #0x36] + ldr r0, [r4, #4] + cmp r0, #0 + bne _080A24F6 + adds r0, r5, #0 + bl sub_080A2508 +_080A24F6: + adds r0, r5, #0 + bl sub_08080CB4 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080A2500 +sub_080A2500: @ 0x080A2500 + push {lr} + bl sub_0805E780 + pop {pc} + + thumb_func_start sub_080A2508 +sub_080A2508: @ 0x080A2508 + push {r4, lr} + adds r4, r0, #0 + ldrb r2, [r4, #0xa] + movs r1, #0 + movs r3, #0 + bl sub_080A2988 + adds r2, r0, #0 + cmp r2, #0 + beq _080A252C + movs r0, #5 + strb r0, [r2, #0xe] + adds r0, r4, #0 + adds r0, #0x86 + ldrh r1, [r0] + adds r0, r2, #0 + adds r0, #0x86 + strh r1, [r0] +_080A252C: + adds r0, r4, #0 + bl sub_080A2500 + pop {r4, pc} + + thumb_func_start sub_080A2534 +sub_080A2534: @ 0x080A2534 + push {r4, lr} + adds r4, r0, #0 + ldrb r2, [r4, #0xa] + movs r1, #0 + movs r3, #0 + bl sub_080A2988 + adds r2, r0, #0 + cmp r2, #0 + beq _080A2558 + movs r0, #4 + strb r0, [r2, #0xe] + adds r0, r4, #0 + adds r0, #0x86 + ldrh r1, [r0] + adds r0, r2, #0 + adds r0, #0x86 + strh r1, [r0] +_080A2558: + adds r0, r4, #0 + bl sub_080A2500 + pop {r4, pc} + + thumb_func_start sub_080A2560 +sub_080A2560: @ 0x080A2560 + push {lr} + ldr r2, _080A2574 @ =gUnk_08125084 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A2574: .4byte gUnk_08125084 + + thumb_func_start sub_080A2578 +sub_080A2578: @ 0x080A2578 + push {lr} + movs r1, #8 + strb r1, [r0, #0xc] + bl sub_080A259C + pop {pc} + + thumb_func_start sub_080A2584 +sub_080A2584: @ 0x080A2584 + push {lr} + bl sub_0805E564 + ldr r1, _080A2598 @ =gUnk_02034490 + movs r0, #0 + strb r0, [r1] + bl sub_0805E780 + pop {pc} + .align 2, 0 +_080A2598: .4byte gUnk_02034490 + + thumb_func_start sub_080A259C +sub_080A259C: @ 0x080A259C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r5, _080A25DC @ =gUnk_03001160 + ldrb r1, [r5, #0x10] + movs r7, #0x7f + adds r0, r7, #0 + ands r0, r1 + strb r0, [r5, #0x10] + ldrb r1, [r5, #0x18] + movs r6, #4 + rsbs r6, r6, #0 + adds r0, r6, #0 + ands r0, r1 + strb r0, [r5, #0x18] + ldrb r1, [r5, #0x1a] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1c + ldrb r2, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1a] + ldrb r0, [r4, #0xd] + cmp r0, #1 + beq _080A269C + cmp r0, #1 + bgt _080A25E0 + cmp r0, #0 + beq _080A25E6 + b _080A273C + .align 2, 0 +_080A25DC: .4byte gUnk_03001160 +_080A25E0: + cmp r0, #2 + beq _080A26B4 + b _080A273C +_080A25E6: + movs r0, #1 + movs r2, #1 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x18] + adds r0, r6, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + adds r0, r5, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + adds r3, r4, #0 + adds r3, #0x29 + lsrs r1, r1, #0x1d + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrb r2, [r5, #0x19] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r4, #0x19] + ldrb r0, [r5, #0x1b] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r4, #0x1b] + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #0x1b] + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + movs r0, #4 + strb r0, [r4, #0x14] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805E3A0 + ldr r0, _080A2670 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _080A2678 + ldrb r0, [r4, #0xa] + bl sub_080542AC + ldr r1, _080A2674 @ =0x0000045B + cmp r0, #0 + beq _080A2688 + adds r1, #3 + b _080A2688 + .align 2, 0 +_080A2670: .4byte gUnk_03003F80 +_080A2674: .4byte 0x0000045B +_080A2678: + ldrb r0, [r4, #0xa] + bl sub_080542AC + ldr r1, _080A2698 @ =0x000001B9 + cmp r0, #0 + beq _080A2688 + movs r1, #0xb8 + lsls r1, r1, #2 +_080A2688: + lsrs r0, r1, #8 + strh r0, [r4, #0x12] + movs r0, #0xff + ands r1, r0 + adds r0, r4, #0 + bl sub_080042AC + b _080A273C + .align 2, 0 +_080A2698: .4byte 0x000001B9 +_080A269C: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #0 + beq _080A273C + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + b _080A273C +_080A26B4: + adds r0, r4, #0 + bl sub_080042B8 + ldr r0, _080A2764 @ =gUnk_02000050 + ldrb r1, [r0] + adds r0, r7, #0 + ands r0, r1 + cmp r0, #0 + bne _080A2762 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A273C + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x69 + ldrb r0, [r0] + strb r0, [r5, #0x10] + adds r0, r4, #0 + adds r0, #0x68 + ldrb r1, [r0] + movs r0, #3 + ands r1, r0 + ldrb r2, [r5, #0x18] + adds r0, r6, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x18] + adds r0, r4, #0 + adds r0, #0x6a + ldrb r1, [r0] + adds r0, r5, #0 + adds r0, #0x3d + strb r1, [r0] + ldr r1, _080A2768 @ =gUnk_03003F80 + adds r0, r4, #0 + adds r0, #0x6b + ldrb r0, [r0] + strb r0, [r1, #7] + adds r0, r4, #0 + adds r0, #0x6c + ldrb r0, [r0] + strb r0, [r1, #0xb] + adds r0, r4, #0 + adds r0, #0x6d + ldrb r0, [r0] + strb r0, [r1, #0xa] + adds r0, r4, #0 + adds r0, #0x6e + ldrb r0, [r0] + adds r2, r1, #0 + adds r2, #0x27 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x6f + ldrb r0, [r0] + strb r0, [r1, #0x1a] + ldr r0, [r4, #0x70] + str r0, [r1, #0x30] + adds r0, r4, #0 + adds r0, #0x74 + ldrb r0, [r0] + adds r1, #0x8a + strb r0, [r1] +_080A273C: + ldr r5, [r4, #0x50] + cmp r5, #0 + beq _080A2762 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FA30 + ldrh r0, [r4, #0x12] + ldrb r1, [r4, #0x1e] + bl sub_080700C8 + ldrb r1, [r0] + adds r2, r5, #0 + adds r2, #0x62 + strb r1, [r2] + ldrb r1, [r0, #1] + adds r0, r5, #0 + adds r0, #0x63 + strb r1, [r0] +_080A2762: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A2764: .4byte gUnk_02000050 +_080A2768: .4byte gUnk_03003F80 + + thumb_func_start sub_080A276C +sub_080A276C: @ 0x080A276C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + adds r4, r1, #0 + adds r7, r2, #0 + bl sub_0805E744 + adds r6, r0, #0 + cmp r6, #0 + beq _080A2820 + movs r0, #0xc1 + strb r0, [r6, #9] + movs r0, #6 + mov r8, r0 + mov r1, r8 + strb r1, [r6, #8] + strb r4, [r6, #0xa] + strb r7, [r6, #0xb] + str r5, [r6, #0x50] + adds r0, r6, #0 + movs r1, #6 + bl sub_0805EA2C + adds r0, r6, #0 + movs r1, #6 + bl sub_0805EA78 + ldr r4, _080A2828 @ =gUnk_03001160 + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_0806FA24 + ldr r0, _080A282C @ =gUnk_03003DC0 + mov r1, r8 + strb r1, [r0] + ldr r1, _080A2830 @ =gUnk_02034490 + movs r0, #1 + strb r0, [r1] + ldrb r0, [r4, #0x10] + adds r1, r6, #0 + adds r1, #0x69 + strb r0, [r1] + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + subs r1, #1 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x3d + ldrb r0, [r0] + adds r1, #2 + strb r0, [r1] + ldr r1, _080A2834 @ =gUnk_03003F80 + ldrb r0, [r1, #7] + adds r2, r6, #0 + adds r2, #0x6b + strb r0, [r2] + ldrb r2, [r1, #0xb] + adds r0, r6, #0 + adds r0, #0x6c + strb r2, [r0] + ldrb r0, [r1, #0xa] + adds r2, r6, #0 + adds r2, #0x6d + strb r0, [r2] + adds r0, r1, #0 + adds r0, #0x27 + ldrb r0, [r0] + adds r2, #1 + strb r0, [r2] + ldrb r0, [r1, #0x1a] + adds r2, #1 + strb r0, [r2] + ldr r0, [r1, #0x30] + str r0, [r6, #0x70] + adds r1, #0x8a + ldrb r1, [r1] + adds r0, r6, #0 + adds r0, #0x74 + strb r1, [r0] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_080A2820: + adds r0, r6, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A2828: .4byte gUnk_03001160 +_080A282C: .4byte gUnk_03003DC0 +_080A2830: .4byte gUnk_02034490 +_080A2834: .4byte gUnk_03003F80 + + thumb_func_start sub_080A2838 +sub_080A2838: @ 0x080A2838 + push {r4, lr} + adds r4, r0, #0 + ldrb r2, [r4, #9] + lsls r2, r2, #3 + ldr r0, _080A2858 @ =gUnk_08126798 + adds r2, r2, r0 + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_080A285C + cmp r0, #2 + bne _080A2856 + adds r0, r4, #0 + bl sub_08016A04 +_080A2856: + pop {r4, pc} + .align 2, 0 +_080A2858: .4byte gUnk_08126798 + + thumb_func_start sub_080A285C +sub_080A285C: @ 0x080A285C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r2, #0 + ldrb r3, [r4, #0x10] + movs r0, #1 + ands r0, r3 + cmp r0, #0 + beq _080A2870 + movs r0, #1 + b _080A2958 +_080A2870: + ldrb r2, [r5] + movs r0, #3 + ands r0, r2 + cmp r0, #0 + bne _080A288C + lsls r0, r2, #0x1c + lsrs r0, r0, #0x1e + lsls r0, r0, #2 + movs r1, #1 + orrs r0, r1 + orrs r0, r3 + strb r0, [r4, #0x10] + movs r0, #1 + b _080A2958 +_080A288C: + subs r0, #2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _080A289C + lsls r1, r1, #3 + ldr r0, [r5, #4] + adds r5, r0, r1 +_080A289C: + ldrh r0, [r5, #2] + lsls r0, r0, #0x16 + lsrs r2, r0, #0x16 + adds r1, r2, #0 + ldrb r0, [r5, #3] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1e + cmp r0, #1 + beq _080A28BA + cmp r0, #2 + bne _080A28C4 + adds r0, r4, #0 + adds r0, #0x60 + strh r2, [r0] + b _080A28D2 +_080A28BA: + adds r0, r4, #0 + movs r2, #0 + bl sub_080AE008 + b _080A28CA +_080A28C4: + adds r0, r4, #0 + bl sub_080ADF80 +_080A28CA: + cmp r0, #0 + bne _080A28D2 + movs r0, #0 + b _080A2958 +_080A28D2: + ldrh r0, [r5, #4] + lsls r0, r0, #0x16 + lsrs r1, r0, #0x16 + adds r0, r4, #0 + bl sub_0801D040 + movs r1, #0xff + adds r0, r4, #0 + adds r0, #0x58 + strb r1, [r0] + adds r1, r4, #0 + adds r1, #0x40 + movs r0, #0x48 + strb r0, [r1] + ldrh r0, [r5, #6] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x16 + strh r0, [r4, #0x12] + ldrb r0, [r5, #5] + movs r3, #3 + movs r1, #0x30 + ands r1, r0 + ldrb r2, [r4, #0x18] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r5, #7] + lsls r1, r1, #0x1b + movs r0, #0x29 + adds r0, r0, r4 + mov ip, r0 + lsrs r1, r1, #0x1d + lsls r1, r1, #3 + ldrb r2, [r0] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + ldrb r1, [r5, #7] + lsrs r1, r1, #5 + ands r1, r3 + ldrb r2, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldr r1, _080A295C @ =gUnk_08125104 + ldrb r0, [r5, #1] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r4, #0x48] + ldrb r0, [r5] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1e + lsls r0, r0, #2 + movs r1, #1 + orrs r0, r1 + ldrb r1, [r4, #0x10] + orrs r0, r1 + strb r0, [r4, #0x10] + movs r0, #2 +_080A2958: + pop {r4, r5, pc} + .align 2, 0 +_080A295C: .4byte gUnk_08125104 + + thumb_func_start sub_080A2960 +sub_080A2960: @ 0x080A2960 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r6, r1, #0 + adds r7, r2, #0 + bl sub_0805E678 + adds r4, r0, #0 + cmp r4, #0 + beq _080A2984 + movs r0, #6 + strb r0, [r4, #8] + strb r5, [r4, #9] + strb r6, [r4, #0xa] + strb r7, [r4, #0xb] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805EA2C +_080A2984: + adds r0, r4, #0 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080A2988 +sub_080A2988: @ 0x080A2988 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, r1, #0 + adds r1, r2, #0 + adds r2, r3, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _080A29A6 + str r5, [r4, #0x50] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 +_080A29A6: + adds r0, r4, #0 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080A29AC +sub_080A29AC: @ 0x080A29AC + push {r4, lr} + adds r4, r1, #0 + adds r3, r2, #0 + movs r1, #0xf + adds r2, r4, #0 + bl sub_080A2988 + pop {r4, pc} + + thumb_func_start sub_080A29BC +sub_080A29BC: @ 0x080A29BC + push {lr} + movs r1, #2 + movs r2, #0 + bl sub_080A29AC + pop {pc} + + thumb_func_start sub_080A29C8 +sub_080A29C8: @ 0x080A29C8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + movs r0, #0xf + movs r1, #2 + movs r2, #0 + bl sub_080A2960 + adds r2, r0, #0 + cmp r2, #0 + beq _080A29F4 + ldr r1, _080A29F8 @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + adds r0, r0, r4 + strh r0, [r2, #0x2e] + ldrh r0, [r1, #8] + adds r0, r0, r5 + strh r0, [r2, #0x32] + adds r0, r2, #0 + adds r0, #0x38 + strb r6, [r0] +_080A29F4: + pop {r4, r5, r6, pc} + .align 2, 0 +_080A29F8: .4byte gUnk_03000BF0 + + thumb_func_start sub_080A29FC +sub_080A29FC: @ 0x080A29FC + push {lr} + movs r1, #0x11 + movs r2, #0 + bl sub_080A29AC + pop {pc} + + thumb_func_start sub_080A2A08 +sub_080A2A08: @ 0x080A2A08 + push {lr} + movs r1, #6 + movs r2, #0 + bl sub_080A29AC + pop {pc} + + thumb_func_start sub_080A2A14 +sub_080A2A14: @ 0x080A2A14 + push {lr} + movs r1, #0xb + movs r2, #0 + bl sub_080A29AC + pop {pc} + + thumb_func_start sub_080A2A20 +sub_080A2A20: @ 0x080A2A20 + push {r4, lr} + adds r4, r1, #0 + adds r3, r2, #0 + movs r1, #0 + adds r2, r4, #0 + bl sub_080A2988 + adds r1, r0, #0 + cmp r1, #0 + beq _080A2A38 + movs r0, #5 + strb r0, [r1, #0xe] +_080A2A38: + adds r0, r1, #0 + pop {r4, pc} + + thumb_func_start sub_080A2A3C +sub_080A2A3C: @ 0x080A2A3C + push {r4, r5, r6, lr} + adds r4, r1, #0 + adds r5, r2, #0 + adds r6, r3, #0 + movs r1, #0 + adds r2, r4, #0 + adds r3, r5, #0 + bl sub_080A2988 + adds r1, r0, #0 + cmp r1, #0 + beq _080A2A5E + movs r0, #5 + strb r0, [r1, #0xe] + adds r0, r1, #0 + adds r0, #0x86 + strh r6, [r0] +_080A2A5E: + adds r0, r1, #0 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080A2A64 +sub_080A2A64: @ 0x080A2A64 + push {lr} + movs r1, #0x20 + movs r2, #0 + bl sub_080A29AC + adds r2, r0, #0 + cmp r2, #0 + beq _080A2A80 + adds r3, r2, #0 + adds r3, #0x29 + ldrb r0, [r3] + movs r1, #7 + orrs r0, r1 + strb r0, [r3] +_080A2A80: + adds r0, r2, #0 + pop {pc} + + thumb_func_start sub_080A2A84 +sub_080A2A84: @ 0x080A2A84 + push {r4, r5, r6, r7, lr} + adds r5, r1, #0 + bl sub_080A2A64 + adds r6, r0, #0 + cmp r6, #0 + beq _080A2AD2 + bl sub_08000E50 + adds r4, r0, #0 + adds r5, #1 + adds r1, r5, #0 + bl __modsi3 + adds r1, r0, #0 + lsrs r4, r4, #8 + movs r7, #1 + adds r0, r4, #0 + ands r0, r7 + cmp r0, #0 + beq _080A2AB0 + rsbs r1, r1, #0 +_080A2AB0: + ldrh r0, [r6, #0x2e] + adds r0, r0, r1 + strh r0, [r6, #0x2e] + lsrs r4, r4, #8 + adds r0, r4, #0 + adds r1, r5, #0 + bl __modsi3 + adds r1, r0, #0 + lsrs r4, r4, #8 + ands r4, r7 + cmp r4, #0 + beq _080A2ACC + rsbs r1, r1, #0 +_080A2ACC: + ldrh r0, [r6, #0x32] + adds r0, r0, r1 + strh r0, [r6, #0x32] +_080A2AD2: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080A2AD4 +sub_080A2AD4: @ 0x080A2AD4 + push {lr} + movs r1, #0x21 + movs r2, #0 + bl sub_080A29AC + adds r2, r0, #0 + cmp r2, #0 + beq _080A2AF0 + adds r3, r2, #0 + adds r3, #0x29 + ldrb r0, [r3] + movs r1, #7 + orrs r0, r1 + strb r0, [r3] +_080A2AF0: + adds r0, r2, #0 + pop {pc} + + thumb_func_start sub_080A2AF4 +sub_080A2AF4: @ 0x080A2AF4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r1, #0 + adds r4, r2, #0 + bl sub_080A2AD4 + adds r6, r0, #0 + cmp r6, #0 + beq _080A2B74 + bl sub_08000E50 + adds r7, r0, #0 + subs r1, r4, r5 + adds r1, #1 + bl __modsi3 + adds r4, r0, #0 + adds r4, r4, r5 + asrs r7, r7, #0x10 + movs r0, #0xff + ands r7, r0 + ldr r0, _080A2B7C @ =gUnk_080C9160 + mov r8, r0 + lsls r0, r7, #1 + add r0, r8 + movs r1, #0 + ldrsh r0, [r0, r1] + lsls r4, r4, #0x18 + asrs r4, r4, #0x10 + adds r1, r4, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r5, #0x80 + lsls r5, r5, #1 + adds r1, r5, #0 + bl sub_0806FA04 + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r6, #0x2c] + adds r1, r1, r0 + str r1, [r6, #0x2c] + adds r0, r7, #0 + adds r0, #0x40 + lsls r0, r0, #1 + add r0, r8 + movs r1, #0 + ldrsh r0, [r0, r1] + adds r1, r4, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r5, #0 + bl sub_0806FA04 + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r6, #0x30] + subs r1, r1, r0 + str r1, [r6, #0x30] +_080A2B74: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A2B7C: .4byte gUnk_080C9160 + + thumb_func_start sub_080A2B80 +sub_080A2B80: @ 0x080A2B80 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0xf + movs r1, #0x26 + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _080A2BE0 + bl sub_08000E50 + adds r3, r0, #0 + movs r1, #0xf + adds r2, r3, #0 + ands r2, r1 + movs r0, #0x80 + ands r0, r3 + cmp r0, #0 + beq _080A2BAA + rsbs r2, r2, #0 +_080A2BAA: + lsrs r0, r3, #8 + ands r0, r1 + cmp r0, #4 + ble _080A2BB4 + rsbs r0, r0, #0 +_080A2BB4: + lsls r2, r2, #0x10 + lsls r3, r0, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA48 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAB0 + adds r0, r5, #0 + adds r0, #0x62 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x62 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x63 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x63 + strb r1, [r0] +_080A2BE0: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080A2BE4 +sub_080A2BE4: @ 0x080A2BE4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + ldrb r1, [r4, #0x15] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080A2CBA + lsrs r0, r1, #3 + cmp r0, #1 + beq _080A2C3C + cmp r0, #1 + bgt _080A2C04 + cmp r0, #0 + beq _080A2C0E + b _080A2CBA +_080A2C04: + cmp r0, #2 + beq _080A2C68 + cmp r0, #3 + beq _080A2C94 + b _080A2CBA +_080A2C0E: + ldrh r5, [r4, #0x32] + adds r0, r4, #0 + bl sub_0806F69C + ldrh r1, [r4, #0x32] + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + subs r0, r0, r1 + lsls r0, r0, #0x10 + asrs r1, r0, #0x10 + cmp r1, #0 + beq _080A2CBA + cmp r6, #0 + beq _080A2CBA + ldr r0, _080A2C38 @ =gUnk_03001160 + lsls r1, r1, #8 + movs r2, #0 + bl sub_080044AE + b _080A2CBA + .align 2, 0 +_080A2C38: .4byte gUnk_03001160 +_080A2C3C: + ldrh r5, [r4, #0x2e] + adds r0, r4, #0 + bl sub_0806F69C + ldrh r1, [r4, #0x2e] + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + subs r1, r1, r0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r1, #0 + beq _080A2CBA + cmp r6, #0 + beq _080A2CBA + ldr r0, _080A2C64 @ =gUnk_03001160 + lsls r1, r1, #8 + movs r2, #8 + bl sub_080044AE + b _080A2CBA + .align 2, 0 +_080A2C64: .4byte gUnk_03001160 +_080A2C68: + ldrh r5, [r4, #0x32] + adds r0, r4, #0 + bl sub_0806F69C + ldrh r1, [r4, #0x32] + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + subs r1, r1, r0 + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + cmp r1, #0 + beq _080A2CBA + cmp r6, #0 + beq _080A2CBA + ldr r0, _080A2C90 @ =gUnk_03001160 + lsls r1, r1, #8 + movs r2, #0x10 + bl sub_080044AE + b _080A2CBA + .align 2, 0 +_080A2C90: .4byte gUnk_03001160 +_080A2C94: + ldrh r5, [r4, #0x2e] + adds r0, r4, #0 + bl sub_0806F69C + ldrh r1, [r4, #0x2e] + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + subs r0, r0, r1 + lsls r0, r0, #0x10 + asrs r1, r0, #0x10 + cmp r1, #0 + beq _080A2CBA + cmp r6, #0 + beq _080A2CBA + ldr r0, _080A2CBC @ =gUnk_03001160 + lsls r1, r1, #8 + movs r2, #0x18 + bl sub_080044AE +_080A2CBA: + pop {r4, r5, r6, pc} + .align 2, 0 +_080A2CBC: .4byte gUnk_03001160 + + thumb_func_start sub_080A2CC0 +sub_080A2CC0: @ 0x080A2CC0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r3, [r5] + cmp r3, #0 + beq _080A2CF8 + ldrh r0, [r3] + cmp r0, #0xfe + bne _080A2CDC + ldrh r1, [r3, #2] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + subs r3, r3, r0 +_080A2CDC: + ldrh r0, [r3] + cmp r0, #0xff + bne _080A2CEA + movs r0, #0xff + strb r0, [r4, #0x15] + movs r0, #0 + b _080A2CEE +_080A2CEA: + strb r0, [r4, #0x15] + ldrh r0, [r3, #4] +_080A2CEE: + strh r0, [r4, #0x24] + ldrh r0, [r3, #2] + strh r0, [r2] + adds r0, r3, #6 + str r0, [r5] +_080A2CF8: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080A2CFC +sub_080A2CFC: @ 0x080A2CFC + push {r4, lr} + adds r4, r1, #0 + adds r3, r2, #0 + movs r1, #0 + adds r2, r4, #0 + bl sub_080A2D2C + pop {r4, pc} + + thumb_func_start sub_080A2D0C +sub_080A2D0C: @ 0x080A2D0C + push {r4, lr} + adds r4, r1, #0 + adds r3, r2, #0 + movs r1, #1 + adds r2, r4, #0 + bl sub_080A2D2C + pop {r4, pc} + + thumb_func_start sub_080A2D1C +sub_080A2D1C: @ 0x080A2D1C + push {r4, lr} + adds r4, r1, #0 + adds r3, r2, #0 + movs r1, #2 + adds r2, r4, #0 + bl sub_080A2D2C + pop {r4, pc} + + thumb_func_start sub_080A2D2C +sub_080A2D2C: @ 0x080A2D2C + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r6, r2, #0 + adds r7, r3, #0 + movs r0, #0x56 + movs r1, #0 + adds r2, r4, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _080A2D6E + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAB0 + str r5, [r4, #0x50] + adds r0, r4, #0 + adds r0, #0x62 + strb r6, [r0] + adds r0, #1 + strb r7, [r0] + ldrb r1, [r5, #0x11] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1c + adds r0, r4, #0 + bl sub_0805E3A0 +_080A2D6E: + adds r0, r4, #0 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_080A2D74 +sub_080A2D74: @ 0x080A2D74 + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x6c] + cmp r0, #0 + beq _080A2D82 + subs r0, #1 + str r0, [r2, #0x6c] +_080A2D82: + ldr r0, _080A2D94 @ =gUnk_081271D4 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A2D94: .4byte gUnk_081271D4 + + thumb_func_start sub_080A2D98 +sub_080A2D98: @ 0x080A2D98 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080A2DD0 @ =gUnk_03003F80 + str r4, [r0, #0x2c] + movs r2, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x11] + subs r0, #0x11 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r4, #0x11] + movs r0, #0xff + strb r0, [r4, #0x1e] + adds r0, r4, #0 + adds r0, #0x68 + ldrb r0, [r0] + cmp r0, #0xe + bne _080A2DD8 + movs r0, #0x27 + str r0, [r4, #0x70] + ldr r1, _080A2DD4 @ =gUnk_081271DC + ldrb r0, [r1, #1] + str r0, [r4, #0x78] + str r2, [r4, #0x74] + str r1, [r4, #0x7c] + b _080A2DDA + .align 2, 0 +_080A2DD0: .4byte gUnk_03003F80 +_080A2DD4: .4byte gUnk_081271DC +_080A2DD8: + str r2, [r4, #0x70] +_080A2DDA: + ldr r0, _080A2DFC @ =gUnk_03001160 + ldrb r1, [r0, #0x14] + movs r0, #0xe + ands r0, r1 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_08079BD8 + adds r0, r4, #0 + movs r1, #1 + movs r2, #3 + bl sub_080AE008 + adds r0, r4, #0 + bl sub_080A2E00 + pop {r4, pc} + .align 2, 0 +_080A2DFC: .4byte gUnk_03001160 + + thumb_func_start sub_080A2E00 +sub_080A2E00: @ 0x080A2E00 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r0, _080A2E90 @ =gUnk_03001160 + mov ip, r0 + mov r1, ip + adds r1, #0x3d + ldrb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A2E1A + lsrs r0, r0, #0x18 + cmp r0, #0x81 + bne _080A2E40 +_080A2E1A: + adds r5, r4, #0 + adds r5, #0x3d + ldrb r0, [r5] + movs r2, #0 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + mov r1, ip + adds r1, #0x3e + strb r0, [r1] + adds r3, r4, #0 + adds r3, #0x42 + ldrb r1, [r3] + mov r0, ip + adds r0, #0x42 + strb r1, [r0] + strb r2, [r3] + strb r2, [r5] +_080A2E40: + ldr r0, _080A2E94 @ =gUnk_03003F80 + ldrb r3, [r0, #3] + adds r7, r0, #0 + cmp r3, #0 + beq _080A2F20 + ldr r0, [r7, #0x2c] + cmp r4, r0 + bne _080A2F20 + movs r2, #0x80 + adds r0, r2, #0 + ands r0, r3 + cmp r0, #0 + beq _080A2E9C + ldr r1, _080A2E98 @ =gUnk_08127240 + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r4, #0x48] + ldr r0, _080A2E90 @ =gUnk_03001160 + adds r0, #0x3c + ldrb r0, [r0] + adds r0, #1 + movs r1, #0x20 + adds r2, r4, #0 + adds r2, #0x3c + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r0, #0x7f + ands r0, r3 + strb r0, [r7, #3] + adds r0, r4, #0 + bl sub_080176E4 + b _080A2F30 + .align 2, 0 +_080A2E90: .4byte gUnk_03001160 +_080A2E94: .4byte gUnk_03003F80 +_080A2E98: .4byte gUnk_08127240 +_080A2E9C: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _080A2F30 + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x42 + bne _080A2F06 + adds r0, r4, #0 + adds r0, #0x68 + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #0xe + bne _080A2F06 + movs r0, #0x40 + ands r0, r3 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0 + bne _080A2F06 + ldrb r3, [r5] + movs r0, #0x15 + movs r1, #0 + movs r2, #0 + bl sub_08077CB8 + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _080A2EF4 + movs r0, #1 + strb r0, [r1, #0xf] + ldr r2, [r4, #0x54] + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + movs r1, #0x10 + eors r0, r1 + strb r0, [r2, #0x15] + ldr r0, [r4, #0x54] + str r4, [r0, #0x50] +_080A2EF4: + ldr r1, _080A2F1C @ =gUnk_08127220 + ldrb r0, [r1, #1] + str r0, [r4, #0x78] + str r6, [r4, #0x74] + str r1, [r4, #0x7c] + ldrb r0, [r7, #3] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r7, #3] +_080A2F06: + ldr r0, [r4, #0x6c] + cmp r0, #0 + bne _080A2F30 + movs r0, #0x8c + lsls r0, r0, #1 + bl sub_080A3268 + movs r0, #8 + str r0, [r4, #0x6c] + b _080A2F30 + .align 2, 0 +_080A2F1C: .4byte gUnk_08127220 +_080A2F20: + movs r1, #0 + strb r1, [r7, #3] + ldr r0, [r7, #0x2c] + cmp r0, r4 + bne _080A2F2C + str r1, [r7, #0x2c] +_080A2F2C: + bl sub_0805E780 +_080A2F30: + ldr r6, _080A301C @ =gUnk_03001160 + ldrh r0, [r6, #0x12] + cmp r0, #1 + beq _080A2F3E + cmp r0, #4 + beq _080A2F3E + b _080A3064 +_080A2F3E: + ldrb r0, [r6, #0x1e] + subs r0, #0x25 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x3e + bls _080A2F4C + b _080A3064 +_080A2F4C: + ldrb r2, [r6, #0x18] + movs r1, #0x40 + ands r1, r2 + ldrb r3, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + lsrs r2, r2, #7 + lsls r2, r2, #7 + movs r3, #0x7f + ands r0, r3 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r2, [r6, #0x1e] + ldr r1, [r4, #0x70] + adds r0, r1, #0 + subs r0, #0x25 + adds r0, r2, r0 + adds r5, r4, #0 + adds r5, #0x68 + ldrb r7, [r4, #0x1e] + cmp r0, r7 + beq _080A2FA2 + adds r0, r1, #0 + adds r0, #0xdb + adds r0, r2, r0 + strb r0, [r4, #0x1e] + ldrb r0, [r5] + cmp r0, #0xe + bne _080A2F98 + adds r0, r6, #0 + adds r0, #0x5a + ldrb r1, [r0] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + bne _080A2FA2 +_080A2F98: + ldrb r1, [r4, #0x1e] + ldrh r2, [r4, #0x12] + adds r0, r4, #0 + bl sub_080042D0 +_080A2FA2: + ldrb r0, [r5] + cmp r0, #0xe + bne _080A303E + ldr r0, _080A301C @ =gUnk_03001160 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + beq _080A303E + ldr r0, [r4, #0x78] + subs r3, r0, #1 + str r3, [r4, #0x78] + cmp r3, #0 + bne _080A303E + ldr r0, [r4, #0x74] + adds r0, #1 + str r0, [r4, #0x74] + lsls r0, r0, #2 + ldr r1, [r4, #0x7c] + adds r2, r1, r0 + ldrb r0, [r2] + ldr r7, _080A3020 @ =gUnk_03003F80 + cmp r0, #0xff + bne _080A2FEC + ldrb r1, [r7, #3] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080A2FE8 + ldr r0, _080A3024 @ =gUnk_081271DC + str r0, [r4, #0x7c] + movs r0, #0xbf + ands r0, r1 + strb r0, [r7, #3] +_080A2FE8: + str r3, [r4, #0x74] + ldr r1, [r4, #0x7c] +_080A2FEC: + ldr r0, [r4, #0x74] + lsls r0, r0, #2 + adds r2, r1, r0 + ldrb r0, [r2, #1] + str r0, [r4, #0x78] + ldrb r1, [r7, #3] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080A3028 + ldr r0, _080A301C @ =gUnk_03001160 + adds r0, #0x5a + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + adds r1, #8 + ldrb r2, [r2] + adds r1, r1, r2 + ldrh r2, [r4, #0x12] + adds r0, r4, #0 + bl sub_080042D0 + b _080A303E + .align 2, 0 +_080A301C: .4byte gUnk_03001160 +_080A3020: .4byte gUnk_03003F80 +_080A3024: .4byte gUnk_081271DC +_080A3028: + ldr r0, _080A3060 @ =gUnk_03001160 + adds r0, #0x5a + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + ldrb r2, [r2] + adds r1, r1, r2 + ldrh r2, [r4, #0x12] + adds r0, r4, #0 + bl sub_080042D0 +_080A303E: + ldr r1, _080A3060 @ =gUnk_03001160 + adds r0, r1, #0 + adds r0, #0x5a + ldrb r0, [r0] + adds r2, r4, #0 + adds r2, #0x5a + strb r0, [r2] + adds r0, r1, #0 + adds r0, #0x5b + ldrb r0, [r0] + adds r2, #1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_08078E84 + b _080A3068 + .align 2, 0 +_080A3060: .4byte gUnk_03001160 +_080A3064: + movs r0, #0xff + strb r0, [r4, #0x1e] +_080A3068: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_080A306C +sub_080A306C: @ 0x080A306C + push {lr} + ldr r2, _080A3080 @ =gUnk_08127270 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A3080: .4byte gUnk_08127270 + + thumb_func_start sub_080A3084 +sub_080A3084: @ 0x080A3084 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r5, #1 + strb r5, [r4, #0xc] + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080A30F8 + ldr r0, _080A30EC @ =gUnk_03001160 + adds r0, #0x3c + ldrb r0, [r0] + adds r0, #1 + adds r1, r4, #0 + adds r1, #0x3c + strb r0, [r1] + ldr r0, _080A30F0 @ =gUnk_08127278 + str r0, [r4, #0x48] + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r4, #0x24] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #2 + bne _080A30CC + strb r5, [r4, #0xb] +_080A30CC: + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] + movs r0, #0x3c + str r0, [r4, #0x6c] + adds r0, r4, #0 + bl sub_0801766C + adds r0, r4, #0 + bl sub_0806F69C + ldr r0, _080A30F4 @ =0x0000013F + bl sub_080A3268 + b _080A30FC + .align 2, 0 +_080A30EC: .4byte gUnk_03001160 +_080A30F0: .4byte gUnk_08127278 +_080A30F4: .4byte 0x0000013F +_080A30F8: + movs r0, #6 + strb r0, [r4, #0xe] +_080A30FC: + adds r0, r4, #0 + movs r1, #0x18 + bl sub_08004260 + adds r0, r4, #0 + bl sub_080A310C + pop {r4, r5, pc} + + thumb_func_start sub_080A310C +sub_080A310C: @ 0x080A310C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _080A312A + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _080A3200 + bl sub_0805E780 + b _080A3200 +_080A312A: + adds r0, r4, #0 + bl sub_08004274 + ldr r0, [r4, #0x6c] + subs r0, #1 + str r0, [r4, #0x6c] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _080A31FC + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _080A315C + adds r0, r4, #0 + bl sub_0800451C +_080A315C: + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _080A31F0 @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r5, #0x32 + ldrsh r1, [r4, r5] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + ldr r1, _080A31F4 @ =gUnk_03001160 + adds r1, #0x38 + ldrb r1, [r1] + movs r2, #0x80 + bl sub_080002F0 + cmp r0, #0 + bne _080A31AE + ldr r1, _080A31F8 @ =gUnk_08003E44 + movs r0, #0x2e + ldrsh r2, [r4, r0] + movs r5, #0x32 + ldrsh r3, [r4, r5] + adds r0, r4, #0 + bl sub_080040D8 + cmp r0, #0 + beq _080A31AE + adds r0, r4, #0 + movs r1, #0x19 + movs r2, #0 + bl sub_080A29AC + bl sub_0805E780 +_080A31AE: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0 + beq _080A31C6 + adds r0, r4, #0 + movs r1, #0x19 + movs r2, #0 + bl sub_080A29AC + bl sub_0805E780 +_080A31C6: + adds r0, r4, #0 + movs r1, #0xc + bl sub_08008790 + cmp r0, #0 + beq _080A31D6 + bl sub_0805E780 +_080A31D6: + adds r0, r4, #0 + adds r0, #0x68 + ldrb r3, [r0] + movs r0, #0x15 + movs r1, #1 + movs r2, #0 + bl sub_08077CB8 + str r0, [r4, #0x54] + cmp r0, #0 + beq _080A3200 + str r4, [r0, #0x50] + b _080A3200 + .align 2, 0 +_080A31F0: .4byte gUnk_03000BF0 +_080A31F4: .4byte gUnk_03001160 +_080A31F8: .4byte gUnk_08003E44 +_080A31FC: + bl sub_0805E780 +_080A3200: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080A3204 +sub_080A3204: @ 0x080A3204 + push {lr} + bl sub_080A3210 + bl m4aSoundInit + pop {pc} + + thumb_func_start sub_080A3210 +sub_080A3210: @ 0x080A3210 + push {r4, lr} + ldr r4, _080A3230 @ =gUnk_02021EE0 + adds r0, r4, #0 + movs r1, #0x18 + bl sub_0801D630 + bl sub_080A35C8 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x12] + strh r0, [r4, #4] + bl m4aMPlayAllStop + pop {r4, pc} + .align 2, 0 +_080A3230: .4byte gUnk_02021EE0 + + thumb_func_start sub_080A3234 +sub_080A3234: @ 0x080A3234 + push {lr} + ldr r1, _080A3244 @ =gUnk_02021EE0 + strh r0, [r1, #8] + strh r0, [r1, #0xa] + ldrh r0, [r1, #0x14] + bl sub_080A353C + pop {pc} + .align 2, 0 +_080A3244: .4byte gUnk_02021EE0 + + thumb_func_start sub_080A3248 +sub_080A3248: @ 0x080A3248 + push {lr} + ldr r1, _080A3258 @ =gUnk_02021EE0 + strh r0, [r1, #0x10] + strh r0, [r1, #0xe] + ldrh r0, [r1, #0x14] + bl sub_080A353C + pop {pc} + .align 2, 0 +_080A3258: .4byte gUnk_02021EE0 + + thumb_func_start sub_080A325C +sub_080A325C: @ 0x080A325C + ldr r1, _080A3264 @ =gUnk_02021EE0 + strh r0, [r1, #0x12] + bx lr + .align 2, 0 +_080A3264: .4byte gUnk_02021EE0 + + thumb_func_start sub_080A3268 +sub_080A3268: @ 0x080A3268 + push {r4, r5, lr} + adds r3, r0, #0 + ldr r0, _080A32AC @ =gUnk_03001000 + ldrb r2, [r0, #7] + cmp r2, #0 + beq _080A3276 + b _080A347C +_080A3276: + ldr r5, _080A32B0 @ =gUnk_02021EE0 + ldr r4, _080A32B4 @ =0x0000FFFF + ands r4, r3 + ldr r1, _080A32B8 @ =0xFFFF0000 + ands r1, r3 + ldr r0, _080A32BC @ =0x80090000 + cmp r1, r0 + bne _080A3288 + b _080A33A0 +_080A3288: + cmp r1, r0 + bhi _080A3310 + ldr r0, _080A32C0 @ =0x80040000 + cmp r1, r0 + bne _080A3294 + b _080A33F4 +_080A3294: + cmp r1, r0 + bhi _080A32D8 + ldr r0, _080A32C4 @ =0x80020000 + cmp r1, r0 + bne _080A32A0 + b _080A3384 +_080A32A0: + cmp r1, r0 + bhi _080A32CC + ldr r0, _080A32C8 @ =0x80010000 + cmp r1, r0 + beq _080A337C + b _080A3458 + .align 2, 0 +_080A32AC: .4byte gUnk_03001000 +_080A32B0: .4byte gUnk_02021EE0 +_080A32B4: .4byte 0x0000FFFF +_080A32B8: .4byte 0xFFFF0000 +_080A32BC: .4byte 0x80090000 +_080A32C0: .4byte 0x80040000 +_080A32C4: .4byte 0x80020000 +_080A32C8: .4byte 0x80010000 +_080A32CC: + ldr r0, _080A32D4 @ =0x80030000 + cmp r1, r0 + beq _080A338C + b _080A3458 + .align 2, 0 +_080A32D4: .4byte 0x80030000 +_080A32D8: + ldr r0, _080A32F0 @ =0x80060000 + cmp r1, r0 + bne _080A32E0 + b _080A340A +_080A32E0: + cmp r1, r0 + bhi _080A32F8 + ldr r0, _080A32F4 @ =0x80050000 + cmp r1, r0 + bne _080A32EC + b _080A33FE +_080A32EC: + b _080A3458 + .align 2, 0 +_080A32F0: .4byte 0x80060000 +_080A32F4: .4byte 0x80050000 +_080A32F8: + ldr r0, _080A3308 @ =0x80070000 + cmp r1, r0 + bne _080A3300 + b _080A340E +_080A3300: + ldr r0, _080A330C @ =0x80080000 + cmp r1, r0 + beq _080A3398 + b _080A3458 + .align 2, 0 +_080A3308: .4byte 0x80070000 +_080A330C: .4byte 0x80080000 +_080A3310: + ldr r0, _080A3330 @ =0x800D0000 + cmp r1, r0 + bne _080A3318 + b _080A343A +_080A3318: + cmp r1, r0 + bhi _080A3348 + ldr r0, _080A3334 @ =0x800B0000 + cmp r1, r0 + bne _080A3324 + b _080A3420 +_080A3324: + cmp r1, r0 + bhi _080A333C + ldr r0, _080A3338 @ =0x800A0000 + cmp r1, r0 + beq _080A33B6 + b _080A3458 + .align 2, 0 +_080A3330: .4byte 0x800D0000 +_080A3334: .4byte 0x800B0000 +_080A3338: .4byte 0x800A0000 +_080A333C: + ldr r0, _080A3344 @ =0x800C0000 + cmp r1, r0 + beq _080A33CC + b _080A3458 + .align 2, 0 +_080A3344: .4byte 0x800C0000 +_080A3348: + ldr r0, _080A335C @ =0x800F0000 + cmp r1, r0 + bne _080A3350 + b _080A344E +_080A3350: + cmp r1, r0 + bhi _080A3364 + ldr r0, _080A3360 @ =0x800E0000 + cmp r1, r0 + beq _080A3446 + b _080A3458 + .align 2, 0 +_080A335C: .4byte 0x800F0000 +_080A3360: .4byte 0x800E0000 +_080A3364: + ldr r0, _080A3374 @ =0x80100000 + cmp r1, r0 + beq _080A343E + ldr r0, _080A3378 @ =0x80110000 + cmp r1, r0 + beq _080A3454 + b _080A3458 + .align 2, 0 +_080A3374: .4byte 0x80100000 +_080A3378: .4byte 0x80110000 +_080A337C: + strh r2, [r5, #0x14] + bl m4aMPlayAllStop + b _080A347C +_080A3384: + movs r0, #0 + bl sub_080A3234 + b _080A347C +_080A338C: + bl sub_080A35C8 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r5, #0x12] + b _080A3418 +_080A3398: + ldrh r0, [r5, #0x14] + bl sub_080A35B4 + b _080A347C +_080A33A0: + cmp r4, #0 + bne _080A33A6 + ldrh r4, [r5, #0x14] +_080A33A6: + subs r0, r4, #1 + cmp r0, #0x62 + bhi _080A347C + strh r4, [r5, #0x14] + adds r0, r4, #0 + bl m4aSongNumStart + b _080A33C4 +_080A33B6: + subs r0, r4, #1 + cmp r0, #0x62 + bhi _080A347C + strh r4, [r5, #0x14] + adds r0, r4, #0 + bl m4aSongNumStartOrContinue +_080A33C4: + adds r0, r4, #0 + bl sub_080A35A0 + b _080A347C +_080A33CC: + ldr r2, _080A33EC @ =gUnk_08A11C3C + ldr r1, _080A33F0 @ =gUnk_08A11DBC + ldrh r0, [r5, #0x14] + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r1, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + adds r1, r4, #0 + bl m4aMPlayTempoControl + b _080A347C + .align 2, 0 +_080A33EC: .4byte gUnk_08A11C3C +_080A33F0: .4byte gUnk_08A11DBC +_080A33F4: + bl m4aMPlayAllStop + bl m4aSoundVSyncOff + b _080A347C +_080A33FE: + ldrh r0, [r5, #0x14] + cmp r0, #0 + beq _080A347C + bl m4aSongNumStop + b _080A347C +_080A340A: + bl m4aSoundVSyncOn +_080A340E: + ldrh r0, [r5, #0x14] + cmp r0, #0 + beq _080A347C + bl m4aSongNumStartOrContinue +_080A3418: + ldrh r0, [r5, #0x14] + bl sub_080A353C + b _080A347C +_080A3420: + subs r0, r4, #1 + cmp r0, #0x62 + bhi _080A347C + strh r4, [r5, #0x14] + adds r0, r4, #0 + bl m4aSongNumStartOrContinue + bl sub_080A35C8 + adds r0, r4, #0 + bl sub_080A353C + b _080A347C +_080A343A: + strh r2, [r5, #0x10] + b _080A347C +_080A343E: + strh r2, [r5, #0x10] + movs r0, #1 + strb r0, [r5, #2] + b _080A347C +_080A3446: + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r5, #0x10] + b _080A347C +_080A344E: + bl sub_080A35C8 + b _080A347C +_080A3454: + strh r2, [r5, #0x14] + b _080A347C +_080A3458: + cmp r4, #0 + beq _080A347C + subs r0, r4, #1 + cmp r0, #0x62 + bhi _080A3470 + strh r4, [r5, #0x14] + adds r0, r4, #0 + bl m4aSongNumStart + bl sub_080A35C8 + b _080A3476 +_080A3470: + adds r0, r4, #0 + bl m4aSongNumStart +_080A3476: + adds r0, r4, #0 + bl sub_080A353C +_080A347C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080A3480 +sub_080A3480: @ 0x080A3480 + push {r4, lr} + ldr r4, _080A34A4 @ =gUnk_02021EE0 + movs r0, #0xa + ldrsh r1, [r4, r0] + movs r2, #8 + ldrsh r0, [r4, r2] + cmp r1, r0 + beq _080A34C4 + adds r0, r1, #0 + movs r2, #8 + ldrsh r1, [r4, r2] + bl sub_080A3518 + adds r1, r0, #0 + cmp r1, #0 + bne _080A34A8 + ldrh r0, [r4, #0xa] + b _080A34AC + .align 2, 0 +_080A34A4: .4byte gUnk_02021EE0 +_080A34A8: + ldrh r0, [r4, #8] + adds r0, r0, r1 +_080A34AC: + strh r0, [r4, #8] + movs r1, #8 + ldrsh r0, [r4, r1] + cmp r0, #0 + bge _080A34BC + movs r0, #0 + strh r0, [r4, #0xa] + strh r0, [r4, #8] +_080A34BC: + ldrh r0, [r4, #0x14] + bl sub_080A353C + b _080A3516 +_080A34C4: + movs r2, #0x10 + ldrsh r1, [r4, r2] + movs r2, #0xe + ldrsh r0, [r4, r2] + cmp r1, r0 + beq _080A3516 + adds r0, r1, #0 + movs r2, #0xe + ldrsh r1, [r4, r2] + bl sub_080A3518 + adds r1, r0, #0 + cmp r1, #0 + bne _080A34FC + ldrb r0, [r4, #2] + ldrh r2, [r4, #0x10] + cmp r0, #0 + beq _080A34F8 + cmp r2, #0 + bne _080A34F8 + strb r1, [r4, #2] + strh r1, [r4, #0x14] + movs r0, #0 + bl m4aSongNumStop + b _080A3502 +_080A34F8: + strh r2, [r4, #0xe] + b _080A3502 +_080A34FC: + ldrh r0, [r4, #0xe] + adds r0, r0, r1 + strh r0, [r4, #0xe] +_080A3502: + movs r1, #0xe + ldrsh r0, [r4, r1] + cmp r0, #0 + bge _080A3510 + movs r0, #0 + strh r0, [r4, #0x10] + strh r0, [r4, #0xe] +_080A3510: + ldrh r0, [r4, #0x14] + bl sub_080A353C +_080A3516: + pop {r4, pc} + + thumb_func_start sub_080A3518 +sub_080A3518: @ 0x080A3518 + push {lr} + adds r2, r0, #0 + subs r0, r2, r1 + cmp r0, #0 + ble _080A352C + adds r1, #4 + cmp r2, r1 + ble _080A3532 + movs r0, #4 + b _080A353A +_080A352C: + subs r1, #4 + cmp r2, r1 + blt _080A3536 +_080A3532: + movs r0, #0 + b _080A353A +_080A3536: + movs r0, #4 + rsbs r0, r0, #0 +_080A353A: + pop {pc} + + thumb_func_start sub_080A353C +sub_080A353C: @ 0x080A353C + push {r4, r5, lr} + adds r3, r0, #0 + cmp r3, #0 + beq _080A358C + subs r0, r3, #1 + cmp r0, #0x62 + bhi _080A3558 + ldr r0, _080A3554 @ =gUnk_02021EE0 + movs r1, #0xe + ldrsh r5, [r0, r1] + b _080A355E + .align 2, 0 +_080A3554: .4byte gUnk_02021EE0 +_080A3558: + ldr r0, _080A3590 @ =gUnk_02021EE0 + movs r1, #0x12 + ldrsh r5, [r0, r1] +_080A355E: + movs r1, #8 + ldrsh r0, [r0, r1] + muls r0, r5, r0 + lsrs r5, r0, #8 + ldr r2, _080A3594 @ =gUnk_08A11C3C + ldr r1, _080A3598 @ =gUnk_08A11DBC + lsls r0, r3, #3 + adds r0, r0, r1 + ldrh r1, [r0, #4] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r4, [r0] + adds r0, r4, #0 + bl m4aMPlayImmInit + ldr r1, _080A359C @ =0x0000FFFF + lsls r2, r5, #0x10 + lsrs r2, r2, #0x10 + adds r0, r4, #0 + bl m4aMPlayVolumeControl +_080A358C: + pop {r4, r5, pc} + .align 2, 0 +_080A3590: .4byte gUnk_02021EE0 +_080A3594: .4byte gUnk_08A11C3C +_080A3598: .4byte gUnk_08A11DBC +_080A359C: .4byte 0x0000FFFF + + thumb_func_start sub_080A35A0 +sub_080A35A0: @ 0x080A35A0 + push {lr} + ldr r2, _080A35B0 @ =gUnk_02021EE0 + movs r1, #0x80 + lsls r1, r1, #1 + strh r1, [r2, #0xa] + bl sub_080A353C + pop {pc} + .align 2, 0 +_080A35B0: .4byte gUnk_02021EE0 + + thumb_func_start sub_080A35B4 +sub_080A35B4: @ 0x080A35B4 + push {lr} + ldr r2, _080A35C4 @ =gUnk_02021EE0 + movs r1, #0 + strh r1, [r2, #0xa] + bl sub_080A353C + pop {pc} + .align 2, 0 +_080A35C4: .4byte gUnk_02021EE0 + + thumb_func_start sub_080A35C8 +sub_080A35C8: @ 0x080A35C8 + ldr r1, _080A35DC @ =gUnk_02021EE0 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r1, #6] + strh r0, [r1, #8] + strh r0, [r1, #0xa] + strh r0, [r1, #0xc] + strh r0, [r1, #0xe] + strh r0, [r1, #0x10] + bx lr + .align 2, 0 +_080A35DC: .4byte gUnk_02021EE0 + + thumb_func_start sub_080A35E0 +sub_080A35E0: @ 0x080A35E0 + push {lr} + ldr r1, _080A35FC @ =gUnk_030010A0 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + ldr r1, _080A3600 @ =gUnk_08127D00 + ldr r0, _080A3604 @ =gUnk_03001000 + ldrb r0, [r0, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_080A35FC: .4byte gUnk_030010A0 +_080A3600: .4byte gUnk_08127D00 +_080A3604: .4byte gUnk_03001000 + + thumb_func_start sub_080A3608 +sub_080A3608: @ 0x080A3608 + push {r4, r5, lr} + ldr r0, _080A3640 @ =gUnk_02002A40 + movs r5, #0 + movs r4, #1 + strb r4, [r0, #6] + movs r0, #0x55 + bl sub_0807CD04 + ldr r0, _080A3644 @ =gUnk_03001000 + strb r4, [r0, #3] + ldr r2, _080A3648 @ =gUnk_02000080 + strb r5, [r2, #5] + movs r1, #0 + movs r0, #0xb4 + strh r0, [r2, #8] + movs r0, #5 + strb r0, [r2, #0x16] + movs r0, #4 + strb r0, [r2, #0x17] + strb r1, [r2, #0x1a] + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + cmp r0, #1 + bls _080A3650 + ldr r0, _080A364C @ =gUnk_08127998 + b _080A365E + .align 2, 0 +_080A3640: .4byte gUnk_02002A40 +_080A3644: .4byte gUnk_03001000 +_080A3648: .4byte gUnk_02000080 +_080A364C: .4byte gUnk_08127998 +_080A3650: + cmp r0, #1 + bne _080A365C + ldr r0, _080A3658 @ =gUnk_08127644 + b _080A365E + .align 2, 0 +_080A3658: .4byte gUnk_08127644 +_080A365C: + ldr r0, _080A36B0 @ =gUnk_081272F0 +_080A365E: + str r0, [r2, #0xc] + movs r0, #0 + bl sub_0801DA90 + movs r0, #0xb + bl sub_0801D714 + movs r0, #0xc + bl sub_0801D714 + movs r0, #0 + movs r1, #0 + bl sub_0801D79C + ldr r2, _080A36B4 @ =gUnk_03000F50 + movs r0, #0xc8 + lsls r0, r0, #3 + strh r0, [r2] + adds r1, r2, #0 + adds r1, #0x66 + ldr r0, _080A36B8 @ =0x00002442 + strh r0, [r1] + adds r1, #2 + movs r0, #0x80 + lsls r0, r0, #5 + strh r0, [r1] + ldr r0, _080A36BC @ =0x00001E4D + strh r0, [r2, #0x14] + subs r0, #0x8a + strh r0, [r2, #0x20] + bl sub_080A3210 + bl sub_0805E5B4 + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #5 + bl sub_08050054 + pop {r4, r5, pc} + .align 2, 0 +_080A36B0: .4byte gUnk_081272F0 +_080A36B4: .4byte gUnk_03000F50 +_080A36B8: .4byte 0x00002442 +_080A36BC: .4byte 0x00001E4D + + thumb_func_start sub_080A36C0 +sub_080A36C0: @ 0x080A36C0 + push {lr} + ldr r1, _080A36D4 @ =gUnk_08127D10 + ldr r0, _080A36D8 @ =gUnk_02000080 + ldrb r0, [r0, #5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_080A36D4: .4byte gUnk_08127D10 +_080A36D8: .4byte gUnk_02000080 + + thumb_func_start sub_080A36DC +sub_080A36DC: @ 0x080A36DC + push {lr} + ldr r1, _080A36F4 @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080A36F0 + bl sub_080A3954 +_080A36F0: + pop {pc} + .align 2, 0 +_080A36F4: .4byte gUnk_02000080 + + thumb_func_start sub_080A36F8 +sub_080A36F8: @ 0x080A36F8 + push {r4, r5, lr} + ldr r0, _080A3754 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080A3752 + ldr r5, _080A3758 @ =gUnk_02000080 + movs r0, #0x10 + ldrsh r4, [r5, r0] + lsls r4, r4, #1 + ldr r0, _080A375C @ =gUnk_08127CEC + adds r4, r4, r0 + ldrb r0, [r4] + bl sub_0801D714 + ldrb r0, [r4, #1] + bl sub_0801D7EC + ldr r0, _080A3760 @ =gUnk_02021F30 + movs r1, #0x80 + lsls r1, r1, #4 + bl sub_0801D630 + ldr r1, _080A3764 @ =gUnk_03000F50 + movs r2, #0 + movs r0, #1 + strh r0, [r1, #0x1a] + ldrh r0, [r5, #0x12] + strh r0, [r1, #0x22] + adds r1, #0x68 + movs r0, #0x80 + lsls r0, r0, #5 + strh r0, [r1] + strb r2, [r5, #5] + ldrb r0, [r5, #0x1a] + cmp r0, #0 + bne _080A374A + movs r0, #1 + strb r0, [r5, #0x1a] + movs r0, #9 + bl sub_080A3268 +_080A374A: + movs r0, #4 + movs r1, #8 + bl sub_08050054 +_080A3752: + pop {r4, r5, pc} + .align 2, 0 +_080A3754: .4byte gUnk_03000FD0 +_080A3758: .4byte gUnk_02000080 +_080A375C: .4byte gUnk_08127CEC +_080A3760: .4byte gUnk_02021F30 +_080A3764: .4byte gUnk_03000F50 + + thumb_func_start sub_080A3768 +sub_080A3768: @ 0x080A3768 + push {r4, lr} + ldr r4, _080A377C @ =gUnk_02000080 + ldrb r1, [r4, #6] + cmp r1, #1 + beq _080A37C4 + cmp r1, #1 + bgt _080A3780 + cmp r1, #0 + beq _080A378A + b _080A384C + .align 2, 0 +_080A377C: .4byte gUnk_02000080 +_080A3780: + cmp r1, #2 + beq _080A3804 + cmp r1, #3 + beq _080A3812 + b _080A384C +_080A378A: + ldr r0, _080A37B8 @ =gUnk_02021F30 + movs r1, #0x80 + lsls r1, r1, #4 + bl sub_0801D630 + movs r1, #0x10 + ldrsh r0, [r4, r1] + ldr r2, _080A37BC @ =gUnk_081272E0 + ldrb r1, [r4, #0x19] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl sub_0805F46C + ldr r1, _080A37C0 @ =gUnk_03000F50 + movs r2, #0 + movs r0, #1 + strh r0, [r1, #0x1a] + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + strb r2, [r4, #0x18] + b _080A385E + .align 2, 0 +_080A37B8: .4byte gUnk_02021F30 +_080A37BC: .4byte gUnk_081272E0 +_080A37C0: .4byte gUnk_03000F50 +_080A37C4: + ldr r0, _080A37F8 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080A385E + ldr r0, _080A37FC @ =gUnk_030010A0 + ldr r0, [r0] + ands r0, r1 + cmp r0, #0 + bne _080A385E + ldrb r1, [r4, #0x18] + adds r1, #1 + strb r1, [r4, #0x18] + lsls r0, r1, #0x18 + lsrs r3, r0, #0x18 + ldr r2, _080A3800 @ =gUnk_03000F50 + movs r0, #0x10 + subs r0, r0, r3 + lsls r0, r0, #8 + orrs r0, r3 + adds r2, #0x68 + strh r0, [r2] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #0xf + bls _080A385E + b _080A383C + .align 2, 0 +_080A37F8: .4byte gUnk_03000FD0 +_080A37FC: .4byte gUnk_030010A0 +_080A3800: .4byte gUnk_03000F50 +_080A3804: + ldrh r0, [r4, #8] + subs r0, #1 + strh r0, [r4, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080A385E + b _080A383C +_080A3812: + ldr r0, _080A3844 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _080A385E + ldrb r1, [r4, #0x18] + subs r1, #1 + strb r1, [r4, #0x18] + lsls r0, r1, #0x18 + lsrs r3, r0, #0x18 + ldr r2, _080A3848 @ =gUnk_03000F50 + movs r0, #0x10 + subs r0, r0, r3 + lsls r0, r0, #8 + orrs r0, r3 + adds r2, #0x68 + strh r0, [r2] + lsls r1, r1, #0x18 + cmp r1, #0 + bne _080A385E +_080A383C: + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + b _080A385E + .align 2, 0 +_080A3844: .4byte gUnk_030010A0 +_080A3848: .4byte gUnk_03000F50 +_080A384C: + ldr r1, _080A3860 @ =gUnk_03000FD0 + ldrb r0, [r1] + cmp r0, #0 + bne _080A385E + movs r0, #1 + rsbs r0, r0, #0 + str r0, [r1, #4] + bl sub_080A3954 +_080A385E: + pop {r4, pc} + .align 2, 0 +_080A3860: .4byte gUnk_03000FD0 + + thumb_func_start sub_080A3864 +sub_080A3864: @ 0x080A3864 + push {lr} + ldr r1, _080A3884 @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080A3880 + bl sub_080A3954 + movs r0, #5 + movs r1, #8 + bl sub_08050054 +_080A3880: + pop {pc} + .align 2, 0 +_080A3884: .4byte gUnk_02000080 + + thumb_func_start sub_080A3888 +sub_080A3888: @ 0x080A3888 + push {lr} + ldr r1, _080A38A8 @ =gUnk_03000FD0 + ldr r0, _080A38AC @ =0xFFFF7FFF + str r0, [r1, #4] + movs r0, #5 + movs r1, #4 + bl sub_08050054 + ldr r0, _080A38B0 @ =gUnk_02000080 + ldrh r0, [r0, #8] + bl sub_08050038 + bl sub_080A3954 + pop {pc} + .align 2, 0 +_080A38A8: .4byte gUnk_03000FD0 +_080A38AC: .4byte 0xFFFF7FFF +_080A38B0: .4byte gUnk_02000080 + + thumb_func_start sub_080A38B4 +sub_080A38B4: @ 0x080A38B4 + push {lr} + movs r0, #4 + movs r1, #4 + bl sub_08050054 + ldr r0, _080A38CC @ =gUnk_02000080 + ldrh r0, [r0, #8] + bl sub_08050038 + bl sub_080A3954 + pop {pc} + .align 2, 0 +_080A38CC: .4byte gUnk_02000080 + + thumb_func_start sub_080A38D0 +sub_080A38D0: @ 0x080A38D0 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + ldr r0, _080A391C @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080A3914 + ldr r0, _080A3920 @ =gUnk_02021F30 + movs r6, #0x80 + lsls r6, r6, #4 + adds r1, r6, #0 + bl sub_0801D630 + ldr r4, _080A3924 @ =gUnk_03000F50 + movs r0, #0 + mov r8, r0 + movs r5, #1 + strh r5, [r4, #0x1a] + ldr r0, _080A3928 @ =gUnk_020344B0 + adds r1, r6, #0 + bl sub_0801D630 + strh r5, [r4, #0x26] + adds r4, #0x68 + movs r0, #0x80 + lsls r0, r0, #5 + strh r0, [r4] + ldr r0, _080A392C @ =gUnk_02000080 + mov r1, r8 + strb r1, [r0, #5] + movs r0, #4 + movs r1, #8 + bl sub_08050054 +_080A3914: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, pc} + .align 2, 0 +_080A391C: .4byte gUnk_03000FD0 +_080A3920: .4byte gUnk_02021F30 +_080A3924: .4byte gUnk_03000F50 +_080A3928: .4byte gUnk_020344B0 +_080A392C: .4byte gUnk_02000080 + + thumb_func_start sub_080A3930 +sub_080A3930: @ 0x080A3930 + push {lr} + ldr r0, _080A394C @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080A3948 + movs r0, #7 + movs r1, #8 + bl sub_08050054 + ldr r1, _080A3950 @ =gUnk_03001000 + movs r0, #2 + strb r0, [r1, #3] +_080A3948: + pop {pc} + .align 2, 0 +_080A394C: .4byte gUnk_03000FD0 +_080A3950: .4byte gUnk_03001000 + + thumb_func_start sub_080A3954 +sub_080A3954: @ 0x080A3954 + ldr r2, _080A397C @ =gUnk_02000080 + ldr r1, [r2, #0xc] + ldrb r0, [r1] + movs r3, #0 + strb r0, [r2, #5] + strb r3, [r2, #6] + ldrh r0, [r1, #6] + strh r0, [r2, #0x10] + ldrh r0, [r1, #4] + strh r0, [r2, #8] + ldrh r0, [r1, #8] + strh r0, [r2, #0x12] + ldrh r0, [r1, #0xa] + strh r0, [r2, #0x14] + ldrb r0, [r1, #1] + strb r0, [r2, #0x19] + adds r1, #0xc + str r1, [r2, #0xc] + bx lr + .align 2, 0 +_080A397C: .4byte gUnk_02000080 + + thumb_func_start sub_080A3980 +sub_080A3980: @ 0x080A3980 + push {lr} + ldr r0, _080A3990 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080A398E + bl sub_080560A8 +_080A398E: + pop {pc} + .align 2, 0 +_080A3990: .4byte gUnk_03000FD0 + + thumb_func_start sub_080A3994 +sub_080A3994: @ 0x080A3994 + push {r4, r5, lr} + ldr r0, _080A39AC @ =gUnk_02000080 + ldrb r1, [r0, #6] + adds r2, r0, #0 + cmp r1, #4 + bls _080A39A2 + b _080A3B14 +_080A39A2: + lsls r0, r1, #2 + ldr r1, _080A39B0 @ =_080A39B4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080A39AC: .4byte gUnk_02000080 +_080A39B0: .4byte _080A39B4 +_080A39B4: @ jump table + .4byte _080A39C8 @ case 0 + .4byte _080A3A38 @ case 1 + .4byte _080A3AB8 @ case 2 + .4byte _080A3AEE @ case 3 + .4byte _080A3B14 @ case 4 +_080A39C8: + movs r5, #1 + strb r5, [r2, #6] + movs r4, #0 + movs r0, #0x1e + strh r0, [r2, #8] + strb r4, [r2, #3] + movs r0, #1 + bl sub_0801DA90 + bl sub_080A3210 + bl sub_080A4D34 + movs r0, #0xa + bl sub_0801D714 + movs r0, #0 + movs r1, #0 + bl sub_0801D79C + movs r0, #4 + bl sub_0801D7EC + movs r0, #0xc0 + lsls r0, r0, #0x13 + movs r1, #0x20 + bl sub_0801D630 + movs r0, #0 + movs r1, #0 + bl sub_08052418 + ldr r2, _080A3A2C @ =gUnk_03000F50 + ldrh r0, [r2] + movs r3, #0xc0 + lsls r3, r3, #3 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + ldr r0, _080A3A30 @ =0x00001C01 + strh r0, [r2, #0x14] + ldr r0, _080A3A34 @ =0x00001D05 + strh r0, [r2, #0x20] + strh r5, [r2, #0x26] + movs r0, #4 + movs r1, #8 + bl sub_08050054 + b _080A3B36 + .align 2, 0 +_080A3A2C: .4byte gUnk_03000F50 +_080A3A30: .4byte 0x00001C01 +_080A3A34: .4byte 0x00001D05 +_080A3A38: + ldr r0, _080A3A50 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + beq _080A3A42 + b _080A3B36 +_080A3A42: + ldrh r0, [r2, #8] + cmp r0, #0 + beq _080A3A54 + subs r0, #1 + strh r0, [r2, #8] + b _080A3B36 + .align 2, 0 +_080A3A50: .4byte gUnk_03000FD0 +_080A3A54: + ldrb r4, [r2, #3] + ldr r0, _080A3A68 @ =gUnk_03000FF0 + ldrh r0, [r0, #2] + cmp r0, #0x40 + beq _080A3A72 + cmp r0, #0x40 + bgt _080A3A6C + cmp r0, #1 + beq _080A3A7A + b _080A3A9A + .align 2, 0 +_080A3A68: .4byte gUnk_03000FF0 +_080A3A6C: + cmp r0, #0x80 + beq _080A3A76 + b _080A3A9A +_080A3A72: + movs r4, #0 + b _080A3A9A +_080A3A76: + movs r4, #1 + b _080A3A9A +_080A3A7A: + cmp r4, #0 + beq _080A3A82 + movs r0, #4 + b _080A3A8C +_080A3A82: + movs r0, #8 + movs r1, #0 + bl sub_08050318 + movs r0, #2 +_080A3A8C: + ldr r1, _080A3AB4 @ =gUnk_02000080 + strb r0, [r1, #6] + movs r0, #0x3c + strh r0, [r1, #8] + movs r0, #0x6a + bl sub_080A3268 +_080A3A9A: + ldr r1, _080A3AB4 @ =gUnk_02000080 + ldrb r0, [r1, #3] + cmp r0, r4 + beq _080A3B36 + strb r4, [r1, #3] + movs r0, #0 + adds r1, r4, #0 + bl sub_08052418 + movs r0, #0x69 + bl sub_080A3268 + b _080A3B36 + .align 2, 0 +_080A3AB4: .4byte gUnk_02000080 +_080A3AB8: + movs r0, #0 + bl sub_0807CDA4 + adds r1, r0, #0 + ldr r4, _080A3AD8 @ =gUnk_02000080 + strb r1, [r4] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _080A3ADC + cmp r1, #1 + bne _080A3B36 + movs r0, #4 + strb r0, [r4, #6] + b _080A3B36 + .align 2, 0 +_080A3AD8: .4byte gUnk_02000080 +_080A3ADC: + movs r0, #0x3c + strh r0, [r4, #8] + movs r0, #9 + movs r1, #0 + bl sub_08050318 + movs r0, #3 + strb r0, [r4, #6] + b _080A3B36 +_080A3AEE: + adds r1, r2, #0 + ldrh r0, [r1, #8] + cmp r0, #0 + beq _080A3AFC + subs r0, #1 + strh r0, [r1, #8] + b _080A3B36 +_080A3AFC: + ldr r0, _080A3B10 @ =gUnk_03000FF0 + ldrh r1, [r0, #2] + movs r0, #0xb + ands r0, r1 + cmp r0, #0 + beq _080A3B36 + movs r0, #1 + strb r0, [r2, #6] + b _080A3B36 + .align 2, 0 +_080A3B10: .4byte gUnk_03000FF0 +_080A3B14: + ldr r2, _080A3B38 @ =gUnk_03000F50 + ldrh r1, [r2] + ldr r0, _080A3B3C @ =0x0000FDFF + ands r0, r1 + movs r4, #0 + strh r0, [r2] + bl sub_08050384 + movs r0, #7 + movs r1, #8 + bl sub_08050054 + ldr r1, _080A3B40 @ =gUnk_03001000 + movs r0, #3 + strb r0, [r1, #3] + ldr r0, _080A3B44 @ =gUnk_02000080 + strb r4, [r0, #6] +_080A3B36: + pop {r4, r5, pc} + .align 2, 0 +_080A3B38: .4byte gUnk_03000F50 +_080A3B3C: .4byte 0x0000FDFF +_080A3B40: .4byte gUnk_03001000 +_080A3B44: .4byte gUnk_02000080 + + thumb_func_start sub_080A3B48 +sub_080A3B48: @ 0x080A3B48 + push {lr} + movs r1, #0 + ldr r0, _080A3B6C @ =gUnk_02002A40 + ldr r3, _080A3B70 @ =0x0000012B + adds r2, r0, r3 + ldrb r0, [r2] + cmp r0, #0 + beq _080A3B66 +_080A3B58: + adds r1, #1 + cmp r1, #0x12 + bhi _080A3B66 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + bne _080A3B58 +_080A3B66: + adds r0, r1, #0 + pop {pc} + .align 2, 0 +_080A3B6C: .4byte gUnk_02002A40 +_080A3B70: .4byte 0x0000012B + + thumb_func_start sub_080A3B74 +sub_080A3B74: @ 0x080A3B74 + ldr r0, _080A3B80 @ =gUnk_02000080 + adds r0, #0x2f + movs r1, #0 + strb r1, [r0] + bx lr + .align 2, 0 +_080A3B80: .4byte gUnk_02000080 + + thumb_func_start sub_080A3B84 +sub_080A3B84: @ 0x080A3B84 + push {r4, r5, lr} + ldr r4, _080A3BC4 @ =gUnk_030010A0 + adds r4, #0x2c + movs r5, #0 + movs r0, #2 + strb r0, [r4] + bl sub_080AD90C + ldr r1, _080A3BC8 @ =gUnk_081280C4 + ldr r0, _080A3BCC @ =gUnk_02000080 + ldrb r0, [r0, #5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + bl sub_080A3B74 + bl sub_080A4054 + bl sub_0801C1D4 + bl sub_0801C208 + bl sub_0805E5C0 + bl sub_080AD9B0 + bl sub_080AD918 + strb r5, [r4] + pop {r4, r5, pc} + .align 2, 0 +_080A3BC4: .4byte gUnk_030010A0 +_080A3BC8: .4byte gUnk_081280C4 +_080A3BCC: .4byte gUnk_02000080 + + thumb_func_start sub_080A3BD0 +sub_080A3BD0: @ 0x080A3BD0 + push {r4, lr} + ldr r0, _080A3C54 @ =gUnk_02000080 + movs r1, #0 + movs r4, #1 + strb r4, [r0, #1] + adds r0, #0x2a + strb r1, [r0] + bl sub_080A4D34 + movs r0, #0xcb + bl sub_0801D714 + movs r0, #0x75 + bl sub_0801D7EC + bl sub_080A4494 + adds r1, r0, #7 + cmp r1, #0 + bge _080A3BFA + adds r1, #7 +_080A3BFA: + asrs r0, r1, #3 + subs r0, #6 + cmp r0, #0 + bge _080A3C04 + movs r0, #0 +_080A3C04: + cmp r0, #6 + ble _080A3C0A + movs r0, #6 +_080A3C0A: + adds r0, #0x76 + bl sub_0801D7EC + ldr r1, _080A3C58 @ =gUnk_03000F50 + ldrh r2, [r1] + movs r3, #0xf0 + lsls r3, r3, #5 + adds r0, r3, #0 + orrs r0, r2 + strh r0, [r1] + ldr r0, _080A3C5C @ =0x00001C01 + strh r0, [r1, #0x14] + ldr r0, _080A3C60 @ =0x00001D02 + strh r0, [r1, #0x20] + ldr r0, _080A3C64 @ =0x00001E0B + strh r0, [r1, #0x2c] + strh r4, [r1, #0x1a] + strh r4, [r1, #0x26] + strh r4, [r1, #0x32] + bl sub_080A4528 + bl sub_080A4398 + movs r0, #0 + bl sub_0801E738 + ldr r0, _080A3C68 @ =gUnk_081280DC + bl sub_080A70AC + movs r0, #1 + bl sub_080A7114 + movs r0, #6 + movs r1, #8 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_080A3C54: .4byte gUnk_02000080 +_080A3C58: .4byte gUnk_03000F50 +_080A3C5C: .4byte 0x00001C01 +_080A3C60: .4byte 0x00001D02 +_080A3C64: .4byte 0x00001E0B +_080A3C68: .4byte gUnk_081280DC + + thumb_func_start sub_080A3C6C +sub_080A3C6C: @ 0x080A3C6C + push {r4, r5, lr} + ldr r0, _080A3C9C @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + beq _080A3C78 + b _080A3DA8 +_080A3C78: + ldr r5, _080A3CA0 @ =gUnk_02000080 + movs r0, #2 + strb r0, [r5, #1] + adds r0, r5, #0 + adds r0, #0x28 + ldrb r0, [r0] + lsls r2, r0, #0x10 + ldr r0, [r5, #0x10] + subs r4, r2, r0 + adds r1, r4, #0 + cmp r4, #0 + bge _080A3C92 + rsbs r1, r4, #0 +_080A3C92: + ldr r0, _080A3CA4 @ =0x00001FFD + cmp r1, r0 + bhi _080A3CA8 + str r2, [r5, #0x10] + b _080A3CDE + .align 2, 0 +_080A3C9C: .4byte gUnk_03000FD0 +_080A3CA0: .4byte gUnk_02000080 +_080A3CA4: .4byte 0x00001FFD +_080A3CA8: + movs r0, #1 + strb r0, [r5, #1] + adds r0, r4, #0 + bl sub_08000E44 + adds r2, r0, #0 + adds r0, r4, #0 + cmp r0, #0 + bge _080A3CBE + ldr r1, _080A3D18 @ =0x0001FFFF + adds r0, r0, r1 +_080A3CBE: + asrs r4, r0, #0x11 + cmp r4, #0 + bge _080A3CC6 + rsbs r4, r4, #0 +_080A3CC6: + cmp r4, #5 + ble _080A3CCC + movs r4, #5 +_080A3CCC: + ldr r0, _080A3D1C @ =gUnk_081280EE + adds r0, r4, r0 + ldrb r1, [r0] + ldr r0, _080A3D20 @ =0x00000666 + muls r0, r2, r0 + muls r1, r0, r1 + ldr r0, [r5, #0x10] + adds r0, r0, r1 + str r0, [r5, #0x10] +_080A3CDE: + adds r3, r5, #0 + adds r3, #0x29 + ldrb r2, [r3] + ldr r0, [r5, #0x10] + adds r1, r0, #0 + cmp r0, #0 + bge _080A3CF0 + ldr r4, _080A3D24 @ =0x0000FFFF + adds r1, r0, r4 +_080A3CF0: + asrs r1, r1, #0x10 + cmp r2, r1 + beq _080A3CFE + strb r1, [r3] + movs r0, #0x69 + bl sub_080A3268 +_080A3CFE: + ldr r2, _080A3D28 @ =gUnk_03000FF0 + ldrh r1, [r2, #2] + ldr r0, _080A3D2C @ =0x0000020A + ands r0, r1 + cmp r0, #0 + beq _080A3D30 + movs r0, #2 + bl sub_080A7114 + movs r0, #0x6c + bl sub_080A3268 + b _080A3DA8 + .align 2, 0 +_080A3D18: .4byte 0x0001FFFF +_080A3D1C: .4byte gUnk_081280EE +_080A3D20: .4byte 0x00000666 +_080A3D24: .4byte 0x0000FFFF +_080A3D28: .4byte gUnk_03000FF0 +_080A3D2C: .4byte 0x0000020A +_080A3D30: + adds r0, r5, #0 + adds r0, #0x28 + ldrb r4, [r0] + ldrh r1, [r2, #4] + adds r5, r0, #0 + cmp r1, #0x20 + beq _080A3D56 + cmp r1, #0x20 + bgt _080A3D4C + cmp r1, #1 + beq _080A3D5E + cmp r1, #0x10 + beq _080A3D5A + b _080A3D8A +_080A3D4C: + cmp r1, #0x40 + beq _080A3D56 + cmp r1, #0x80 + beq _080A3D5A + b _080A3D8A +_080A3D56: + subs r4, #1 + b _080A3D8A +_080A3D5A: + adds r4, #1 + b _080A3D8A +_080A3D5E: + ldr r2, _080A3DAC @ =gUnk_02000080 + ldrb r0, [r2, #1] + cmp r0, #2 + bne _080A3D8A + ldr r0, [r2, #0x10] + cmp r0, #0 + bge _080A3D70 + ldr r1, _080A3DB0 @ =0x0000FFFF + adds r0, r0, r1 +_080A3D70: + asrs r4, r0, #0x10 + ldr r0, _080A3DB4 @ =gUnk_02002A40 + movs r1, #0x8c + lsls r1, r1, #1 + adds r0, r0, r1 + adds r0, r4, r0 + ldrb r1, [r0] + adds r0, r2, #0 + adds r0, #0x2a + strb r1, [r0] + movs r0, #3 + bl sub_080A7114 +_080A3D8A: + bl sub_080A3B48 + cmp r0, r4 + bgt _080A3D94 + subs r4, r0, #1 +_080A3D94: + cmp r0, #1 + bgt _080A3D9A + movs r4, #0 +_080A3D9A: + cmp r4, #0 + bge _080A3DA0 + movs r4, #0 +_080A3DA0: + ldrb r0, [r5] + cmp r0, r4 + beq _080A3DA8 + strb r4, [r5] +_080A3DA8: + pop {r4, r5, pc} + .align 2, 0 +_080A3DAC: .4byte gUnk_02000080 +_080A3DB0: .4byte 0x0000FFFF +_080A3DB4: .4byte gUnk_02002A40 + + thumb_func_start sub_080A3DB8 +sub_080A3DB8: @ 0x080A3DB8 + push {lr} + ldr r0, _080A3DDC @ =gUnk_02000080 + ldrb r1, [r0, #1] + cmp r1, #6 + bne _080A3DEE + ldr r0, _080A3DE0 @ =gUnk_02022740 + strb r1, [r0] + ldrb r0, [r0, #3] + lsls r0, r0, #3 + ldr r1, _080A3DE4 @ =gUnk_080C9CBC + adds r1, r0, r1 + ldrb r0, [r1, #3] + cmp r0, #0 + beq _080A3DE8 + ldrb r1, [r1, #4] + bl sub_080A7138 + b _080A3DF8 + .align 2, 0 +_080A3DDC: .4byte gUnk_02000080 +_080A3DE0: .4byte gUnk_02022740 +_080A3DE4: .4byte gUnk_080C9CBC +_080A3DE8: + bl sub_080A71DC + b _080A3DF8 +_080A3DEE: + ldr r1, _080A3DFC @ =gUnk_02022740 + movs r0, #5 + strb r0, [r1] + bl sub_080A71DC +_080A3DF8: + pop {pc} + .align 2, 0 +_080A3DFC: .4byte gUnk_02022740 + + thumb_func_start sub_080A3E00 +sub_080A3E00: @ 0x080A3E00 + push {lr} + ldr r1, _080A3E18 @ =gUnk_02000080 + movs r0, #3 + strb r0, [r1, #1] + ldr r2, _080A3E1C @ =gUnk_081280F4 + ldrb r0, [r1, #6] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_080A3E18: .4byte gUnk_02000080 +_080A3E1C: .4byte gUnk_081280F4 + + thumb_func_start sub_080A3E20 +sub_080A3E20: @ 0x080A3E20 + push {lr} + ldr r2, _080A3E44 @ =gUnk_02000080 + movs r0, #0 + strh r0, [r2, #0x18] + adds r1, r2, #0 + adds r1, #0x2c + ldrb r0, [r1] + adds r0, #2 + strb r0, [r1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0x45 + ble _080A3E42 + movs r0, #0x46 + strb r0, [r1] + movs r0, #1 + strb r0, [r2, #6] +_080A3E42: + pop {pc} + .align 2, 0 +_080A3E44: .4byte gUnk_02000080 + + thumb_func_start sub_080A3E48 +sub_080A3E48: @ 0x080A3E48 + push {r4, lr} + ldr r2, _080A3E78 @ =gUnk_080C9CBC + ldr r3, _080A3E7C @ =gUnk_02000080 + adds r0, r3, #0 + adds r0, #0x2a + ldrb r0, [r0] + lsls r0, r0, #3 + adds r0, r0, r2 + ldrb r1, [r0, #5] + ldr r0, _080A3E80 @ =gUnk_02022740 + ldrb r0, [r0, #3] + lsls r0, r0, #3 + adds r0, r0, r2 + ldrb r0, [r0, #5] + cmp r1, r0 + beq _080A3E84 + movs r0, #0x8c + lsls r0, r0, #1 + bl sub_080A3268 + movs r0, #4 + bl sub_080A7114 + b _080A3EC8 + .align 2, 0 +_080A3E78: .4byte gUnk_080C9CBC +_080A3E7C: .4byte gUnk_02000080 +_080A3E80: .4byte gUnk_02022740 +_080A3E84: + movs r2, #0 + movs r0, #2 + strb r0, [r3, #6] + movs r0, #0x14 + strh r0, [r3, #8] + ldr r3, _080A3ECC @ =gUnk_03000F50 + ldrh r0, [r3] + movs r4, #0x80 + lsls r4, r4, #6 + adds r1, r4, #0 + orrs r0, r1 + strh r0, [r3] + adds r1, r3, #0 + adds r1, #0x58 + ldr r0, _080A3ED0 @ =0x00006887 + strh r0, [r1] + adds r1, #4 + ldr r0, _080A3ED4 @ =0x0000405F + strh r0, [r1] + adds r1, #4 + movs r0, #0x3f + strh r0, [r1] + adds r1, #2 + movs r0, #0x1f + strh r0, [r1] + adds r1, #4 + ldr r0, _080A3ED8 @ =0x00003F90 + strh r0, [r1] + adds r0, r3, #0 + adds r0, #0x6a + strh r2, [r0] + movs r0, #0xfa + bl sub_080A3268 +_080A3EC8: + pop {r4, pc} + .align 2, 0 +_080A3ECC: .4byte gUnk_03000F50 +_080A3ED0: .4byte 0x00006887 +_080A3ED4: .4byte 0x0000405F +_080A3ED8: .4byte 0x00003F90 + + thumb_func_start sub_080A3EDC +sub_080A3EDC: @ 0x080A3EDC + push {lr} + ldr r2, _080A3F08 @ =gUnk_03000F50 + adds r1, r2, #0 + adds r1, #0x6a + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xe + bls _080A3F04 + movs r0, #0 + strh r0, [r1] + ldrh r1, [r2] + ldr r0, _080A3F0C @ =0x0000DFFF + ands r0, r1 + strh r0, [r2] + movs r0, #5 + bl sub_080A7114 +_080A3F04: + pop {pc} + .align 2, 0 +_080A3F08: .4byte gUnk_03000F50 +_080A3F0C: .4byte 0x0000DFFF + + thumb_func_start sub_080A3F10 +sub_080A3F10: @ 0x080A3F10 + push {r4, lr} + ldr r2, _080A3F48 @ =gUnk_02000080 + movs r0, #4 + strb r0, [r2, #1] + adds r3, r2, #0 + adds r3, #0x2c + ldrb r1, [r3] + subs r1, #3 + strb r1, [r3] + movs r4, #0x80 + lsls r4, r4, #1 + adds r0, r4, #0 + ldrh r4, [r2, #0x18] + adds r0, r0, r4 + strh r0, [r2, #0x18] + lsls r1, r1, #0x18 + cmp r1, #0 + bge _080A3F46 + movs r0, #0 + strh r0, [r2, #0x18] + strb r0, [r3] + movs r0, #1 + bl sub_080A7114 + movs r0, #0x6d + bl sub_080A3268 +_080A3F46: + pop {r4, pc} + .align 2, 0 +_080A3F48: .4byte gUnk_02000080 + + thumb_func_start sub_080A3F4C +sub_080A3F4C: @ 0x080A3F4C + push {lr} + ldr r1, _080A3F60 @ =gUnk_08128100 + ldr r0, _080A3F64 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_080A3F60: .4byte gUnk_08128100 +_080A3F64: .4byte gUnk_02000080 + + thumb_func_start sub_080A3F68 +sub_080A3F68: @ 0x080A3F68 + push {r4, r5, lr} + ldr r5, _080A3FB4 @ =gUnk_02000080 + movs r0, #5 + strb r0, [r5, #1] + ldr r4, _080A3FB8 @ =gUnk_02002C81 + ldr r0, _080A3FBC @ =gUnk_02022740 + ldrb r1, [r0, #3] + adds r0, r4, #0 + bl sub_0801D5BC + ldr r0, _080A3FC0 @ =0xFFFFFED6 + adds r1, r4, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x63 + bls _080A3F96 + ldr r0, _080A3FC4 @ =0xFFFFFED5 + adds r1, r4, r0 + movs r0, #1 + strb r0, [r1] +_080A3F96: + bl sub_080A4468 + movs r0, #0xcd + bl sub_080A3268 + ldr r0, _080A3FC8 @ =0x00000702 + movs r1, #0xe + bl sub_080563C8 + movs r0, #1 + strb r0, [r5, #6] + movs r0, #0x78 + strh r0, [r5, #8] + pop {r4, r5, pc} + .align 2, 0 +_080A3FB4: .4byte gUnk_02000080 +_080A3FB8: .4byte gUnk_02002C81 +_080A3FBC: .4byte gUnk_02022740 +_080A3FC0: .4byte 0xFFFFFED6 +_080A3FC4: .4byte 0xFFFFFED5 +_080A3FC8: .4byte 0x00000702 + + thumb_func_start sub_080A3FCC +sub_080A3FCC: @ 0x080A3FCC + push {lr} + ldr r0, _080A3FE8 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _080A3FE6 + ldr r0, _080A3FEC @ =gUnk_02000080 + movs r1, #2 + strb r1, [r0, #6] + ldr r0, _080A3FF0 @ =0x00000147 + bl sub_080A3268 +_080A3FE6: + pop {pc} + .align 2, 0 +_080A3FE8: .4byte gUnk_02000050 +_080A3FEC: .4byte gUnk_02000080 +_080A3FF0: .4byte 0x00000147 + + thumb_func_start sub_080A3FF4 +sub_080A3FF4: @ 0x080A3FF4 + push {lr} + ldr r2, _080A4014 @ =gUnk_02000080 + ldrh r0, [r2, #8] + subs r0, #1 + strh r0, [r2, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080A4018 + ldrh r0, [r2, #0x1a] + ldrh r3, [r2, #0x18] + adds r1, r0, r3 + strh r1, [r2, #0x18] + adds r0, #0x20 + strh r0, [r2, #0x1a] + b _080A4036 + .align 2, 0 +_080A4014: .4byte gUnk_02000080 +_080A4018: + movs r0, #6 + strb r0, [r2, #1] + movs r0, #3 + strb r0, [r2, #6] + movs r0, #0x4f + strh r0, [r2, #8] + movs r0, #0xb3 + movs r1, #1 + movs r2, #0 + bl sub_080A2960 + movs r0, #0xe5 + lsls r0, r0, #1 + bl sub_080A3268 +_080A4036: + pop {pc} + + thumb_func_start sub_080A4038 +sub_080A4038: @ 0x080A4038 + push {lr} + ldr r1, _080A4050 @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _080A404E + movs r0, #2 + bl sub_080A7114 +_080A404E: + pop {pc} + .align 2, 0 +_080A4050: .4byte gUnk_02000080 + + thumb_func_start sub_080A4054 +sub_080A4054: @ 0x080A4054 + push {lr} + bl sub_080A422C + bl sub_080A414C + bl sub_080A4080 + movs r2, #0 + ldr r0, _080A407C @ =gUnk_02019EE0 + adds r1, r0, #1 +_080A4068: + ldrb r0, [r1] + cmp r0, #0 + beq _080A4072 + subs r0, #1 + strb r0, [r1] +_080A4072: + adds r1, #4 + adds r2, #1 + cmp r2, #0xf + bls _080A4068 + pop {pc} + .align 2, 0 +_080A407C: .4byte gUnk_02019EE0 + + thumb_func_start sub_080A4080 +sub_080A4080: @ 0x080A4080 + push {r4, r5, r6, r7, lr} + ldr r4, _080A4134 @ =gUnk_03001010 + movs r0, #0 + strh r0, [r4, #4] + strh r0, [r4, #6] + ldr r5, _080A4138 @ =gUnk_02000080 + adds r0, r5, #0 + adds r0, #0x2f + movs r1, #0 + ldrsb r1, [r0, r1] + movs r0, #0x10 + subs r0, r0, r1 + strh r0, [r4, #2] + movs r0, #0x40 + strh r0, [r4] + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r4, #8] + ldr r0, _080A413C @ =0x000001FB + movs r1, #0 + bl sub_080ADA14 + movs r0, #0x94 + strh r0, [r4, #2] + movs r0, #0x50 + strh r0, [r4] + movs r0, #0x90 + lsls r0, r0, #3 + strh r0, [r4, #8] + movs r7, #0xfd + lsls r7, r7, #1 + adds r0, r7, #0 + movs r1, #0 + bl sub_080ADA14 + movs r0, #0xb8 + strh r0, [r4] + movs r0, #0x94 + lsls r0, r0, #3 + strh r0, [r4, #8] + adds r0, r7, #0 + movs r1, #1 + bl sub_080ADA14 + ldr r0, _080A4140 @ =gUnk_03001000 + ldrh r0, [r0, #0xc] + lsrs r0, r0, #2 + movs r1, #0xe + ands r0, r1 + ldr r1, _080A4144 @ =gUnk_08128110 + adds r6, r0, r1 + ldrb r1, [r6] + movs r0, #0xa + subs r0, r0, r1 + strh r0, [r4] + movs r0, #0x9c + lsls r0, r0, #3 + strh r0, [r4, #8] + bl sub_080A3B48 + subs r0, #1 + cmp r0, #0 + ble _080A4130 + ldr r1, [r5, #0x10] + cmp r1, #0 + bge _080A4108 + ldr r2, _080A4148 @ =0x0000FFFF + adds r1, r1, r2 +_080A4108: + asrs r5, r1, #0x10 + cmp r5, r0 + beq _080A411C + ldrb r0, [r6, #1] + adds r0, #0x77 + strh r0, [r4, #2] + adds r0, r7, #0 + movs r1, #3 + bl sub_080ADA14 +_080A411C: + cmp r5, #0 + beq _080A4130 + ldrb r1, [r6, #1] + movs r0, #0x27 + subs r0, r0, r1 + strh r0, [r4, #2] + adds r0, r7, #0 + movs r1, #2 + bl sub_080ADA14 +_080A4130: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A4134: .4byte gUnk_03001010 +_080A4138: .4byte gUnk_02000080 +_080A413C: .4byte 0x000001FB +_080A4140: .4byte gUnk_03001000 +_080A4144: .4byte gUnk_08128110 +_080A4148: .4byte 0x0000FFFF + + thumb_func_start sub_080A414C +sub_080A414C: @ 0x080A414C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r4, _080A4210 @ =gUnk_03001010 + movs r0, #0 + strh r0, [r4, #4] + strh r0, [r4, #6] + ldr r0, _080A4214 @ =gUnk_02000080 + ldrh r0, [r0, #0x10] + ldr r1, _080A4218 @ =0x00000B21 + bl __divsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r5, #3 + rsbs r5, r5, #0 + movs r1, #0xff + mov r8, r1 + adds r7, r4, #0 + ldr r6, _080A421C @ =gUnk_080C9160 + rsbs r0, r0, #0 + adds r4, r0, #0 + subs r4, #0x45 + ldr r2, _080A4220 @ =gUnk_02002B6B + mov sb, r2 +_080A4180: + adds r2, r4, #0 + mov r3, r8 + ands r2, r3 + lsls r0, r2, #1 + adds r0, r0, r6 + movs r3, #0 + ldrsh r1, [r0, r3] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r0, r0, #2 + cmp r0, #0 + bge _080A419A + adds r0, #0xff +_080A419A: + asrs r0, r0, #8 + adds r0, #0x4f + strh r0, [r7, #2] + adds r0, r2, #0 + adds r0, #0x40 + mov r1, r8 + ands r0, r1 + lsls r0, r0, #1 + adds r0, r0, r6 + movs r2, #0 + ldrsh r1, [r0, r2] + lsls r0, r1, #5 + adds r0, r0, r1 + lsls r0, r0, #1 + cmp r0, #0 + bge _080A41BC + adds r0, #0xff +_080A41BC: + asrs r0, r0, #8 + subs r0, #0x10 + strh r0, [r7] + ldr r2, _080A4214 @ =gUnk_02000080 + ldr r0, [r2, #0x10] + cmp r0, #0 + bge _080A41CE + ldr r3, _080A4224 @ =0x0000FFFF + adds r0, r0, r3 +_080A41CE: + asrs r0, r0, #0x10 + adds r3, r0, r5 + cmp r3, #0 + blt _080A4200 + mov r1, sb + adds r0, r3, r1 + ldrb r1, [r0] + ldr r0, _080A4228 @ =gUnk_02002A40 + cmp r5, #0 + bne _080A41EE + ldrb r2, [r2, #1] + cmp r2, #4 + bgt _080A41EE + cmp r2, #3 + blt _080A41EE + subs r1, #1 +_080A41EE: + cmp r1, #0 + ble _080A4200 + movs r2, #0x8c + lsls r2, r2, #1 + adds r0, r0, r2 + adds r0, r3, r0 + ldrb r0, [r0] + bl sub_080A42E0 +_080A4200: + adds r4, #0x17 + adds r5, #1 + cmp r5, #3 + ble _080A4180 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A4210: .4byte gUnk_03001010 +_080A4214: .4byte gUnk_02000080 +_080A4218: .4byte 0x00000B21 +_080A421C: .4byte gUnk_080C9160 +_080A4220: .4byte gUnk_02002B6B +_080A4224: .4byte 0x0000FFFF +_080A4228: .4byte gUnk_02002A40 + + thumb_func_start sub_080A422C +sub_080A422C: @ 0x080A422C + push {r4, r5, lr} + ldr r5, _080A42A4 @ =gUnk_02000080 + ldrh r0, [r5, #0x18] + lsrs r0, r0, #8 + movs r1, #0x1b + bl __modsi3 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _080A42A8 @ =gUnk_08128120 + adds r0, r0, r1 + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r1, r1, #4 + movs r4, #0x80 + lsls r4, r4, #1 + movs r0, #0 + adds r2, r4, #0 + movs r3, #0 + bl sub_0805ECEC + ldr r1, _080A42AC @ =gUnk_03001010 + movs r0, #0 + strh r4, [r1, #4] + strh r0, [r1, #6] + movs r0, #0x4f + strh r0, [r1, #2] + adds r0, r5, #0 + adds r0, #0x2a + ldrb r2, [r0] + adds r4, #0x80 + ldrb r0, [r5, #1] + cmp r0, #5 + beq _080A42B6 + cmp r0, #5 + bgt _080A42B0 + cmp r0, #3 + blt _080A42C4 + adds r4, r5, #0 + adds r4, #0x2c + movs r0, #0 + ldrsb r0, [r4, r0] + adds r0, #0x32 + strh r0, [r1] + adds r0, r2, #0 + movs r1, #0 + bl sub_080A42E0 + movs r1, #0 + ldrsb r1, [r4, r1] + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #1 + movs r1, #0x46 + bl __divsi3 + movs r1, #0x8a + subs r4, r1, r0 + b _080A42C6 + .align 2, 0 +_080A42A4: .4byte gUnk_02000080 +_080A42A8: .4byte gUnk_08128120 +_080A42AC: .4byte gUnk_03001010 +_080A42B0: + cmp r0, #6 + beq _080A42C6 + b _080A42C4 +_080A42B6: + movs r0, #0x78 + strh r0, [r1] + adds r0, r2, #0 + movs r1, #0xff + bl sub_080A42E0 + b _080A42C6 +_080A42C4: + movs r4, #0x8a +_080A42C6: + ldr r0, _080A42D8 @ =gUnk_03001010 + strh r4, [r0] + ldr r0, _080A42DC @ =gUnk_02022740 + ldrb r0, [r0, #3] + movs r1, #0 + bl sub_080A42E0 + pop {r4, r5, pc} + .align 2, 0 +_080A42D8: .4byte gUnk_03001010 +_080A42DC: .4byte gUnk_02022740 + + thumb_func_start sub_080A42E0 +sub_080A42E0: @ 0x080A42E0 + push {r4, r5, r6, r7, lr} + adds r4, r1, #0 + lsls r0, r0, #3 + ldr r1, _080A42F4 @ =gUnk_080C9CBC + adds r7, r0, r1 + cmp r4, #0xff + bne _080A42F8 + ldrb r0, [r7, #2] + b _080A42FA + .align 2, 0 +_080A42F4: .4byte gUnk_080C9CBC +_080A42F8: + ldrb r0, [r7, #1] +_080A42FA: + bl sub_080A43A8 + adds r6, r0, #0 + cmp r4, #0 + beq _080A4372 + cmp r4, #0xff + beq _080A4372 + lsls r1, r6, #2 + ldr r0, _080A4348 @ =gUnk_02019EE0 + adds r1, r1, r0 + lsls r5, r6, #1 + ldrb r0, [r1, #2] + cmp r4, r0 + beq _080A4324 + strb r4, [r1, #2] + movs r1, #0xb8 + lsls r1, r1, #2 + adds r0, r5, r1 + adds r1, r4, #0 + bl sub_0801C2F0 +_080A4324: + ldr r1, _080A434C @ =gUnk_03001010 + ldr r2, _080A4350 @ =0x00003AE0 + adds r0, r5, r2 + strh r0, [r1, #8] + movs r0, #0 + ldrsh r4, [r1, r0] + movs r2, #2 + ldrsh r5, [r1, r2] + ldr r0, _080A4354 @ =gUnk_02000080 + ldrb r0, [r0, #1] + cmp r0, #0 + bne _080A4358 + ldrh r0, [r1] + adds r0, #0x10 + strh r0, [r1] + ldrh r0, [r1, #2] + adds r0, #9 + b _080A4362 + .align 2, 0 +_080A4348: .4byte gUnk_02019EE0 +_080A434C: .4byte gUnk_03001010 +_080A4350: .4byte 0x00003AE0 +_080A4354: .4byte gUnk_02000080 +_080A4358: + ldrh r0, [r1] + adds r0, #8 + strh r0, [r1] + ldrh r0, [r1, #2] + adds r0, #0xa +_080A4362: + strh r0, [r1, #2] + movs r0, #0 + movs r1, #5 + bl sub_080ADA14 + ldr r0, _080A4394 @ =gUnk_03001010 + strh r4, [r0] + strh r5, [r0, #2] +_080A4372: + ldrb r1, [r7] + lsls r1, r1, #0xc + movs r0, #0x80 + lsls r0, r0, #4 + orrs r1, r0 + lsls r0, r6, #4 + movs r2, #0xc0 + lsls r2, r2, #2 + adds r0, r0, r2 + orrs r1, r0 + ldr r0, _080A4394 @ =gUnk_03001010 + strh r1, [r0, #8] + movs r0, #0 + movs r1, #3 + bl sub_080ADA14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A4394: .4byte gUnk_03001010 + + thumb_func_start sub_080A4398 +sub_080A4398: @ 0x080A4398 + push {lr} + ldr r0, _080A43A4 @ =gUnk_02019EE0 + movs r1, #0x40 + bl sub_0801D630 + pop {pc} + .align 2, 0 +_080A43A4: .4byte gUnk_02019EE0 + + thumb_func_start sub_080A43A8 +sub_080A43A8: @ 0x080A43A8 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080A43DC + adds r4, r0, #0 + cmp r4, #0xf + bls _080A43C8 + movs r0, #0xf + ands r4, r0 + lsls r1, r4, #4 + movs r0, #0xc0 + lsls r0, r0, #2 + adds r1, r1, r0 + adds r0, r5, #0 + bl sub_080A4418 +_080A43C8: + lsls r0, r4, #2 + ldr r1, _080A43D8 @ =gUnk_02019EE0 + adds r0, r0, r1 + strb r5, [r0] + movs r1, #2 + strb r1, [r0, #1] + adds r0, r4, #0 + pop {r4, r5, pc} + .align 2, 0 +_080A43D8: .4byte gUnk_02019EE0 + + thumb_func_start sub_080A43DC +sub_080A43DC: @ 0x080A43DC + push {lr} + movs r1, #0 + ldr r2, _080A43EC @ =gUnk_02019EE0 +_080A43E2: + ldrb r3, [r2] + cmp r0, r3 + bne _080A43F0 + adds r0, r1, #0 + b _080A4416 + .align 2, 0 +_080A43EC: .4byte gUnk_02019EE0 +_080A43F0: + adds r2, #4 + adds r1, #1 + cmp r1, #0xf + bls _080A43E2 + movs r1, #0 + ldr r2, _080A4408 @ =gUnk_02019EE0 +_080A43FC: + ldrb r0, [r2, #1] + cmp r0, #0 + bne _080A440C + adds r0, r1, #0 + adds r0, #0x10 + b _080A4416 + .align 2, 0 +_080A4408: .4byte gUnk_02019EE0 +_080A440C: + adds r2, #4 + adds r1, #1 + cmp r1, #0xf + bls _080A43FC + movs r0, #0 +_080A4416: + pop {pc} + + thumb_func_start sub_080A4418 +sub_080A4418: @ 0x080A4418 + push {lr} + lsls r1, r1, #5 + ldr r2, _080A4444 @ =0x06010000 + adds r3, r1, r2 + ldr r1, _080A4448 @ =gUnk_080CA06C + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + movs r2, #0x80 + lsls r2, r2, #0x18 + ands r2, r1 + mvns r0, r2 + ands r0, r1 + ldr r1, _080A444C @ =gUnk_085A2E80 + adds r1, r0, r1 + cmp r2, #0 + beq _080A4450 + adds r0, r1, #0 + adds r1, r3, #0 + bl LZ77UnCompVram + b _080A445C + .align 2, 0 +_080A4444: .4byte 0x06010000 +_080A4448: .4byte gUnk_080CA06C +_080A444C: .4byte gUnk_085A2E80 +_080A4450: + ldr r0, _080A4460 @ =0x040000D4 + str r1, [r0] + str r3, [r0, #4] + ldr r1, _080A4464 @ =0x84000080 + str r1, [r0, #8] + ldr r0, [r0, #8] +_080A445C: + pop {pc} + .align 2, 0 +_080A4460: .4byte 0x040000D4 +_080A4464: .4byte 0x84000080 + + thumb_func_start sub_080A4468 +sub_080A4468: @ 0x080A4468 + push {lr} + ldr r0, _080A4488 @ =gUnk_03003DF0 + movs r1, #0 + strb r1, [r0, #2] + ldr r0, [r0, #4] + strb r1, [r0, #3] + ldr r0, _080A448C @ =gUnk_02022740 + ldrb r0, [r0, #3] + bl sub_0801E6C8 + ldr r0, _080A4490 @ =gUnk_02000080 + adds r0, #0x2a + ldrb r0, [r0] + bl sub_0801E798 + pop {pc} + .align 2, 0 +_080A4488: .4byte gUnk_03003DF0 +_080A448C: .4byte gUnk_02022740 +_080A4490: .4byte gUnk_02000080 + + thumb_func_start sub_080A4494 +sub_080A4494: @ 0x080A4494 + push {r4, r5, lr} + bl sub_0805F2C8 + adds r4, r0, #0 + cmp r4, #0 + beq _080A44D0 + ldr r0, _080A44D4 @ =gUnk_02000D00 + str r0, [r4, #8] + movs r1, #0 + strb r1, [r4, #2] + movs r0, #5 + strb r0, [r4, #3] + strb r1, [r4, #1] + ldr r1, _080A44D8 @ =gUnk_02002AC0 + adds r0, r4, #0 + movs r2, #0x80 + bl sub_080A44E0 + ldr r0, _080A44DC @ =gUnk_02022740 + ldr r0, [r0, #0xc] + bl sub_08002632 + adds r0, r4, #0 + movs r2, #0xa0 + bl sub_080A44E0 + adds r5, r0, #0 + adds r0, r4, #0 + bl sub_0805F300 +_080A44D0: + adds r0, r5, #0 + pop {r4, r5, pc} + .align 2, 0 +_080A44D4: .4byte gUnk_02000D00 +_080A44D8: .4byte gUnk_02002AC0 +_080A44DC: .4byte gUnk_02022740 + + thumb_func_start sub_080A44E0 +sub_080A44E0: @ 0x080A44E0 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + adds r4, r0, #0 + adds r6, r1, #0 + adds r5, r2, #0 + movs r0, #0 + strh r0, [r4, #6] + movs r0, #0x60 + strh r0, [r4, #4] + movs r0, #0xc0 + lsls r0, r0, #2 + mov r8, r0 + ldr r0, [r4, #8] + mov r1, r8 + bl sub_0801D630 + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0805F76C + adds r6, r0, #0 + ldr r0, [r4, #8] + lsls r5, r5, #5 + ldr r1, _080A4524 @ =0x06010000 + adds r5, r5, r1 + adds r1, r5, #0 + mov r2, r8 + bl sub_0801D66C + adds r0, r6, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, pc} + .align 2, 0 +_080A4524: .4byte 0x06010000 + + thumb_func_start sub_080A4528 +sub_080A4528: @ 0x080A4528 + push {r4, lr} + ldr r0, _080A4540 @ =gUnk_02022740 + ldr r2, [r0, #0xc] + ldrb r0, [r2, #8] + cmp r0, #7 + bne _080A4544 + ldrb r0, [r2, #9] + ldrb r1, [r2, #0xa] + ldrb r2, [r2, #0xb] + bl sub_0806ED50 + b _080A4550 + .align 2, 0 +_080A4540: .4byte gUnk_02022740 +_080A4544: + cmp r0, #3 + bne _080A45A2 + ldrb r0, [r2, #9] + ldrb r1, [r2, #0xa] + bl sub_0804AA60 +_080A4550: + adds r4, r0, #0 + cmp r4, #0 + beq _080A45A2 + ldrb r0, [r4, #8] + cmp r0, #7 + bne _080A456A + adds r0, r4, #0 + bl sub_0806EC78 + ldrb r0, [r4, #9] + strb r0, [r4, #0xf] + movs r0, #0x56 + b _080A4576 +_080A456A: + adds r0, r4, #0 + bl sub_0804A57C + ldrb r0, [r4, #9] + strb r0, [r4, #0xf] + movs r0, #0x66 +_080A4576: + strb r0, [r4, #9] + movs r2, #0 + movs r0, #0xcc + strh r0, [r4, #0x2e] + movs r0, #0x60 + strh r0, [r4, #0x32] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r1, [r3] + subs r0, #0x99 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r3] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + str r2, [r4, #0x48] +_080A45A2: + pop {r4, pc} + + thumb_func_start sub_080A45A4 +sub_080A45A4: @ 0x080A45A4 + push {lr} + bl sub_080AD90C + ldr r0, _080A45C4 @ =gUnk_02032EC0 + ldrb r0, [r0, #3] + cmp r0, #0xff + bne _080A45D0 + ldr r1, _080A45C8 @ =gUnk_0812815C + ldr r0, _080A45CC @ =gUnk_02000080 + ldrb r0, [r0, #5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + b _080A45E0 + .align 2, 0 +_080A45C4: .4byte gUnk_02032EC0 +_080A45C8: .4byte gUnk_0812815C +_080A45CC: .4byte gUnk_02000080 +_080A45D0: + ldr r1, _080A4600 @ =gUnk_0812814C + ldr r0, _080A4604 @ =gUnk_02000080 + ldrb r0, [r0, #5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 +_080A45E0: + bl sub_0805E5C0 + bl sub_0801C1D4 + bl sub_0801C208 + bl sub_080AD9B0 + bl sub_080A4978 + bl sub_080AD918 + bl sub_080A4B44 + pop {pc} + .align 2, 0 +_080A4600: .4byte gUnk_0812814C +_080A4604: .4byte gUnk_02000080 + + thumb_func_start sub_080A4608 +sub_080A4608: @ 0x080A4608 + push {r4, lr} + movs r0, #0x80 + bl sub_080A3248 + movs r0, #3 + bl sub_080A4DA8 + ldr r4, _080A46A0 @ =gUnk_020176A0 + movs r1, #0xfb + lsls r1, r1, #1 + adds r0, r4, r1 + ldrh r1, [r0] + movs r0, #0 + bl sub_0801D79C + movs r0, #0xae + lsls r0, r0, #1 + movs r2, #0xd3 + lsls r2, r2, #1 + adds r1, r4, r2 + ldrh r1, [r1] + bl sub_0801D79C + ldr r0, _080A46A4 @ =gUnk_02034CB0 + movs r1, #0x80 + lsls r1, r1, #4 + bl sub_0801D630 + ldr r0, _080A46A8 @ =gUnk_02001A40 + movs r1, #0x80 + lsls r1, r1, #5 + bl sub_0801D630 + ldr r2, _080A46AC @ =gUnk_03000F50 + adds r1, r2, #0 + adds r1, #0x58 + movs r0, #0xf0 + strh r0, [r1] + adds r1, #4 + ldr r0, _080A46B0 @ =0x00007898 + strh r0, [r1] + adds r1, #4 + movs r0, #0x1f + strh r0, [r1] + adds r1, #2 + movs r0, #0x1d + strh r0, [r1] + movs r0, #1 + strh r0, [r2, #0x1a] + movs r2, #0xee + ldr r3, _080A46B4 @ =gUnk_02000080 + movs r1, #0xf + adds r0, r3, #0 + adds r0, #0x1f +_080A4674: + strb r2, [r0] + subs r0, #1 + subs r1, #1 + cmp r1, #0 + bge _080A4674 + ldr r0, _080A46B8 @ =gUnk_02032EC0 + ldrb r1, [r0, #3] + ldr r0, _080A46BC @ =gUnk_02002A40 + ldrb r0, [r0, #6] + movs r2, #0x88 + cmp r0, #0 + bne _080A468E + movs r2, #0x82 +_080A468E: + cmp r2, r1 + bge _080A4694 + movs r1, #1 +_080A4694: + strb r1, [r3, #0x1c] + movs r0, #4 + movs r1, #8 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_080A46A0: .4byte gUnk_020176A0 +_080A46A4: .4byte gUnk_02034CB0 +_080A46A8: .4byte gUnk_02001A40 +_080A46AC: .4byte gUnk_03000F50 +_080A46B0: .4byte 0x00007898 +_080A46B4: .4byte gUnk_02000080 +_080A46B8: .4byte gUnk_02032EC0 +_080A46BC: .4byte gUnk_02002A40 + + thumb_func_start sub_080A46C0 +sub_080A46C0: @ 0x080A46C0 + push {lr} + movs r0, #0x80 + lsls r0, r0, #1 + bl sub_080A3248 + movs r0, #0x6c + bl sub_080A3268 + movs r0, #2 + bl sub_0807CD8C + bl sub_080A71DC + pop {pc} + + thumb_func_start sub_080A46DC +sub_080A46DC: @ 0x080A46DC + push {lr} + bl sub_080A4608 + movs r0, #1 + bl sub_080A7114 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080A46EC +sub_080A46EC: @ 0x080A46EC + push {lr} + ldr r0, _080A4714 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080A4710 + ldr r1, _080A4718 @ =gUnk_080FC3E4 + ldr r0, _080A471C @ =gUnk_02000080 + ldrb r0, [r0, #0x1c] + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r1, [r0, #7] + movs r0, #0xa2 + movs r2, #0 + bl sub_080A2960 + movs r0, #2 + bl sub_080A7114 +_080A4710: + pop {pc} + .align 2, 0 +_080A4714: .4byte gUnk_03000FD0 +_080A4718: .4byte gUnk_080FC3E4 +_080A471C: .4byte gUnk_02000080 + + thumb_func_start sub_080A4720 +sub_080A4720: @ 0x080A4720 + push {r4, lr} + ldr r4, _080A4744 @ =gUnk_02000080 + ldrb r0, [r4] + cmp r0, #0 + beq _080A47C4 + adds r1, r4, #0 + adds r1, #0x20 + ldrb r0, [r1] + adds r0, #1 + movs r3, #0 + strb r0, [r1] + ldrb r0, [r1] + cmp r0, #0x40 + beq _080A4748 + cmp r0, #0x80 + beq _080A4788 + b _080A475A + .align 2, 0 +_080A4744: .4byte gUnk_02000080 +_080A4748: + ldr r0, _080A477C @ =gUnk_02002B0E + ldrb r1, [r4, #0x1c] + bl sub_0801D5BC + adds r1, r4, #0 + adds r1, #0x21 + strb r0, [r1] + movs r0, #1 + strb r0, [r4, #1] +_080A475A: + ldr r0, _080A4780 @ =gUnk_02000080 + adds r0, #0x20 + ldrb r0, [r0] + lsrs r1, r0, #2 + cmp r1, #0x10 + bls _080A476A + movs r0, #0x20 + subs r1, r0, r1 +_080A476A: + ldr r0, _080A4784 @ =gUnk_03000F50 + adds r2, r0, #0 + adds r2, #0x6a + strh r1, [r2] + adds r0, #0x66 + movs r1, #0xbf + strh r1, [r0] + b _080A47C4 + .align 2, 0 +_080A477C: .4byte gUnk_02002B0E +_080A4780: .4byte gUnk_02000080 +_080A4784: .4byte gUnk_03000F50 +_080A4788: + ldr r2, _080A47C8 @ =gUnk_03000F50 + adds r0, r2, #0 + adds r0, #0x6a + strh r3, [r0] + subs r0, #4 + strh r3, [r0] + ldrh r1, [r2] + movs r3, #0x80 + lsls r3, r3, #6 + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2] + movs r0, #3 + bl sub_080A7114 + ldr r0, _080A47CC @ =gUnk_0812813C + bl sub_080A70AC + movs r0, #0x15 + strb r0, [r4, #1] + adds r0, r4, #0 + adds r0, #0x21 + ldrb r0, [r0] + movs r1, #0x6d + cmp r0, #0 + bne _080A47BE + adds r1, #0x9c +_080A47BE: + adds r0, r1, #0 + bl sub_080A3268 +_080A47C4: + pop {r4, pc} + .align 2, 0 +_080A47C8: .4byte gUnk_03000F50 +_080A47CC: .4byte gUnk_0812813C + + thumb_func_start sub_080A47D0 +sub_080A47D0: @ 0x080A47D0 + push {r4, lr} + ldr r0, _080A47EC @ =gUnk_02000080 + movs r4, #0x1f + ldrsb r4, [r0, r4] + ldr r0, _080A47F0 @ =gUnk_03000FF0 + ldrh r0, [r0, #4] + cmp r0, #8 + beq _080A47FE + cmp r0, #8 + bgt _080A47F4 + cmp r0, #2 + beq _080A47FE + b _080A480A + .align 2, 0 +_080A47EC: .4byte gUnk_02000080 +_080A47F0: .4byte gUnk_03000FF0 +_080A47F4: + cmp r0, #0x10 + beq _080A4804 + cmp r0, #0x20 + beq _080A4808 + b _080A480A +_080A47FE: + bl sub_080A46C0 + b _080A480A +_080A4804: + adds r4, #8 + b _080A480A +_080A4808: + subs r4, #8 +_080A480A: + ldr r1, _080A4828 @ =gUnk_02000080 + ldrb r0, [r1, #0x1e] + cmp r4, #0 + bge _080A4814 + movs r4, #0 +_080A4814: + cmp r0, r4 + bge _080A481A + adds r4, r0, #0 +_080A481A: + strb r4, [r1, #0x1f] + ldr r1, _080A482C @ =gUnk_03000F50 + adds r0, r4, #0 + subs r0, #0x70 + strh r0, [r1, #0x18] + pop {r4, pc} + .align 2, 0 +_080A4828: .4byte gUnk_02000080 +_080A482C: .4byte gUnk_03000F50 + + thumb_func_start sub_080A4830 +sub_080A4830: @ 0x080A4830 + push {lr} + bl sub_080A4608 + ldr r2, _080A4858 @ =gUnk_03000F50 + ldrh r1, [r2] + movs r3, #0x80 + lsls r3, r3, #6 + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2] + ldr r0, _080A485C @ =gUnk_0812813C + bl sub_080A70AC + ldr r1, _080A4860 @ =gUnk_02000080 + movs r0, #0xff + strb r0, [r1, #1] + movs r0, #1 + bl sub_080A7114 + pop {pc} + .align 2, 0 +_080A4858: .4byte gUnk_03000F50 +_080A485C: .4byte gUnk_0812813C +_080A4860: .4byte gUnk_02000080 + + thumb_func_start sub_080A4864 +sub_080A4864: @ 0x080A4864 + push {r4, r5, r6, lr} + ldr r0, _080A4894 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080A4926 + ldr r0, _080A4898 @ =gUnk_02000080 + movs r5, #0x1f + ldrsb r5, [r0, r5] + ldrb r4, [r0, #0x1c] + ldr r0, _080A489C @ =gUnk_03000FF0 + ldrh r1, [r0, #4] + cmp r1, #0x20 + beq _080A48DC + cmp r1, #0x20 + bgt _080A48A0 + cmp r1, #2 + beq _080A48C0 + cmp r1, #2 + ble _080A48DE + cmp r1, #8 + beq _080A48C0 + cmp r1, #0x10 + beq _080A48D8 + b _080A48DE + .align 2, 0 +_080A4894: .4byte gUnk_03000FD0 +_080A4898: .4byte gUnk_02000080 +_080A489C: .4byte gUnk_03000FF0 +_080A48A0: + cmp r1, #0x80 + beq _080A48D4 + cmp r1, #0x80 + bgt _080A48AE + cmp r1, #0x40 + beq _080A48D0 + b _080A48DE +_080A48AE: + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + beq _080A48CC + movs r0, #0x80 + lsls r0, r0, #2 + cmp r1, r0 + beq _080A48C8 + b _080A48DE +_080A48C0: + movs r0, #3 + bl sub_080A7114 + b _080A48DE +_080A48C8: + subs r4, #5 + b _080A48DE +_080A48CC: + adds r4, #5 + b _080A48DE +_080A48D0: + subs r4, #1 + b _080A48DE +_080A48D4: + adds r4, #1 + b _080A48DE +_080A48D8: + adds r5, #8 + b _080A48DE +_080A48DC: + subs r5, #8 +_080A48DE: + ldr r0, _080A4928 @ =gUnk_02002A40 + ldrb r0, [r0, #6] + movs r1, #0x88 + cmp r0, #0 + bne _080A48EA + movs r1, #0x82 +_080A48EA: + cmp r4, #0 + bgt _080A48F0 + movs r4, #1 +_080A48F0: + cmp r1, r4 + bge _080A48F6 + adds r4, r1, #0 +_080A48F6: + ldr r6, _080A492C @ =gUnk_02000080 + ldrb r0, [r6, #0x1c] + cmp r0, r4 + beq _080A490E + strb r4, [r6, #0x1c] + movs r0, #0x69 + bl sub_080A3268 + movs r0, #2 + bl sub_080A7114 + movs r5, #0 +_080A490E: + ldrb r0, [r6, #0x1e] + cmp r5, #0 + bge _080A4916 + movs r5, #0 +_080A4916: + cmp r0, r5 + bge _080A491C + adds r5, r0, #0 +_080A491C: + strb r5, [r6, #0x1f] + ldr r1, _080A4930 @ =gUnk_03000F50 + adds r0, r5, #0 + subs r0, #0x70 + strh r0, [r1, #0x18] +_080A4926: + pop {r4, r5, r6, pc} + .align 2, 0 +_080A4928: .4byte gUnk_02002A40 +_080A492C: .4byte gUnk_02000080 +_080A4930: .4byte gUnk_03000F50 + + thumb_func_start sub_080A4934 +sub_080A4934: @ 0x080A4934 + push {lr} + movs r0, #1 + bl sub_080A7114 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080A4940 +sub_080A4940: @ 0x080A4940 + push {lr} + bl sub_080A46C0 + pop {pc} + + thumb_func_start sub_080A4948 +sub_080A4948: @ 0x080A4948 + push {r4, lr} + adds r1, r0, #0 + movs r4, #0 + ldr r3, _080A4974 @ =gUnk_02002A40 + ldrb r0, [r3, #6] + movs r2, #0x88 + cmp r0, #0 + bne _080A495A + movs r2, #0x82 +_080A495A: + cmp r1, #0 + bgt _080A4962 + cmp r2, r1 + blt _080A4970 +_080A4962: + adds r0, r3, #0 + adds r0, #0xce + bl sub_0801D5A8 + cmp r0, #0 + beq _080A4970 + movs r4, #1 +_080A4970: + adds r0, r4, #0 + pop {r4, pc} + .align 2, 0 +_080A4974: .4byte gUnk_02002A40 + + thumb_func_start sub_080A4978 +sub_080A4978: @ 0x080A4978 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r5, _080A4B1C @ =gUnk_03001010 + movs r0, #0 + strh r0, [r5, #4] + strh r0, [r5, #6] + movs r0, #0x80 + lsls r0, r0, #4 + strh r0, [r5, #8] + movs r0, #0x9c + strh r0, [r5] + movs r0, #0x48 + strh r0, [r5, #2] + movs r7, #0xfe + lsls r7, r7, #1 + adds r0, r7, #0 + movs r1, #0 + bl sub_080ADA14 + ldr r0, _080A4B20 @ =gUnk_02002A40 + ldrb r0, [r0, #6] + movs r2, #0x88 + cmp r0, #0 + bne _080A49AC + movs r2, #0x82 +_080A49AC: + ldr r3, _080A4B24 @ =gUnk_02000080 + ldrb r1, [r3, #1] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080A4A10 + ldrb r4, [r3, #0x1c] + cmp r2, r4 + blt _080A4A10 + movs r6, #0xe8 + strh r6, [r5] + movs r0, #0xa0 + lsls r0, r0, #7 + adds r1, r2, #0 + bl __divsi3 + subs r1, r4, #1 + muls r0, r1, r0 + cmp r0, #0 + bge _080A49D6 + adds r0, #0xff +_080A49D6: + asrs r0, r0, #8 + adds r0, #0x20 + strh r0, [r5, #2] + adds r0, r7, #0 + movs r1, #1 + bl sub_080ADA14 + ldr r0, _080A4B28 @ =gUnk_03001000 + ldrh r1, [r0, #0xc] + movs r0, #0x10 + ands r0, r1 + movs r4, #2 + cmp r0, #0 + beq _080A49F4 + movs r4, #4 +_080A49F4: + strh r6, [r5] + movs r0, #0x1a + strh r0, [r5, #2] + adds r0, r7, #0 + adds r1, r4, #0 + bl sub_080ADA14 + strh r6, [r5] + movs r0, #0x76 + strh r0, [r5, #2] + adds r1, r4, #1 + adds r0, r7, #0 + bl sub_080ADA14 +_080A4A10: + ldr r0, _080A4B28 @ =gUnk_03001000 + ldrh r1, [r0, #0xc] + movs r2, #0x10 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _080A4A6A + ldr r5, _080A4B24 @ =gUnk_02000080 + ldrb r1, [r5, #1] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _080A4A6A + ldrb r0, [r5, #0x1e] + cmp r0, #0 + beq _080A4A6A + ldr r4, _080A4B1C @ =gUnk_03001010 + strh r2, [r4, #2] + movs r0, #0x1f + ldrsb r0, [r5, r0] + cmp r0, #0 + ble _080A4A4E + movs r0, #6 + strh r0, [r4] + movs r0, #0x9c + strh r0, [r4, #2] + movs r0, #0xfe + lsls r0, r0, #1 + movs r1, #6 + bl sub_080ADA14 +_080A4A4E: + ldrb r1, [r5, #0x1e] + movs r0, #0x1f + ldrsb r0, [r5, r0] + cmp r1, r0 + ble _080A4A6A + movs r0, #0xea + strh r0, [r4] + movs r0, #0x9c + strh r0, [r4, #2] + movs r0, #0xfe + lsls r0, r0, #1 + movs r1, #7 + bl sub_080ADA14 +_080A4A6A: + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + cmp r0, #0 + beq _080A4ABE + ldr r2, _080A4B24 @ =gUnk_02000080 + ldrb r1, [r2, #1] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080A4ABE + ldr r1, _080A4B1C @ =gUnk_03001010 + movs r0, #0x10 + strh r0, [r1, #2] + ldrb r4, [r2, #0x1c] + movs r6, #2 + adds r7, r1, #0 + movs r5, #0x6b +_080A4A8E: + strh r5, [r7] + adds r0, r4, #0 + movs r1, #0xa + bl __modsi3 + lsls r0, r0, #1 + movs r2, #0x9e + lsls r2, r2, #4 + adds r1, r2, #0 + orrs r0, r1 + strh r0, [r7, #8] + movs r0, #0 + movs r1, #9 + bl sub_080ADA14 + adds r0, r4, #0 + movs r1, #0xa + bl __divsi3 + adds r4, r0, #0 + subs r5, #7 + subs r6, #1 + cmp r6, #0 + bge _080A4A8E +_080A4ABE: + ldr r4, _080A4B24 @ =gUnk_02000080 + ldrb r1, [r4, #1] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080A4B3A + ldrb r0, [r4, #0x1c] + bl sub_080A4948 + cmp r0, #0 + beq _080A4B3A + ldr r1, _080A4B1C @ =gUnk_03001010 + movs r0, #0x2c + strh r0, [r1] + movs r0, #0x48 + strh r0, [r1, #2] + movs r0, #0xd4 + lsls r0, r0, #7 + strh r0, [r1, #8] + movs r0, #0xfc + lsls r0, r0, #1 + ldrb r1, [r4, #0x1c] + subs r1, #1 + bl sub_080ADA14 + ldrb r1, [r4, #0x1c] + ldrb r0, [r4, #0x1d] + cmp r0, r1 + beq _080A4B3A + strb r1, [r4, #0x1d] + ldrb r4, [r4, #0x1c] + lsls r4, r4, #4 + ldr r0, _080A4B2C @ =gUnk_081281A8 + adds r4, r4, r0 + ldr r0, [r4] + movs r1, #0x16 + movs r2, #9 + bl sub_0801D754 + ldr r0, [r4, #4] + ldr r2, [r4, #8] + cmp r2, #0 + bge _080A4B34 + ldr r1, _080A4B30 @ =0x06014000 + bl LZ77UnCompVram + b _080A4B3A + .align 2, 0 +_080A4B1C: .4byte gUnk_03001010 +_080A4B20: .4byte gUnk_02002A40 +_080A4B24: .4byte gUnk_02000080 +_080A4B28: .4byte gUnk_03001000 +_080A4B2C: .4byte gUnk_081281A8 +_080A4B30: .4byte 0x06014000 +_080A4B34: + ldr r1, _080A4B40 @ =0x06014000 + bl sub_08000E96 +_080A4B3A: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A4B40: .4byte 0x06014000 + + thumb_func_start sub_080A4B44 +sub_080A4B44: @ 0x080A4B44 + push {r4, r5, lr} + ldr r5, _080A4B9C @ =gUnk_02000080 + ldrb r4, [r5, #0x1c] + ldrb r1, [r5, #1] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080A4B5C + adds r0, r4, #0 + bl sub_080A4CBC + strb r0, [r5, #0x1e] +_080A4B5C: + ldrb r1, [r5, #1] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080A4B6E + adds r0, r4, #0 + movs r1, #2 + bl sub_080A4BA0 +_080A4B6E: + ldrb r1, [r5, #1] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080A4B98 + subs r0, r4, #2 + movs r1, #0 + bl sub_080A4BA0 + subs r0, r4, #1 + movs r1, #1 + bl sub_080A4BA0 + adds r0, r4, #1 + movs r1, #3 + bl sub_080A4BA0 + adds r0, r4, #2 + movs r1, #4 + bl sub_080A4BA0 +_080A4B98: + pop {r4, r5, pc} + .align 2, 0 +_080A4B9C: .4byte gUnk_02000080 + + thumb_func_start sub_080A4BA0 +sub_080A4BA0: @ 0x080A4BA0 + push {r4, r5, r6, lr} + sub sp, #0x54 + adds r5, r0, #0 + adds r6, r1, #0 + add r0, sp, #0x18 + movs r1, #0x30 + bl sub_0801D630 + ldr r0, _080A4C08 @ =gUnk_0812816C + mov r1, sp + movs r2, #0x18 + bl sub_0801D66C + ldr r0, _080A4C0C @ =gUnk_08128184 + add r4, sp, #0x48 + adds r1, r4, #0 + movs r2, #0xc + bl sub_0801D66C + lsls r1, r6, #1 + adds r1, r1, r6 + lsls r2, r1, #9 + ldr r0, [sp, #4] + adds r0, r0, r2 + str r0, [sp, #4] + mov r2, sp + mov r0, sp + lsls r1, r1, #4 + ldrh r0, [r0, #0x10] + adds r1, r1, r0 + strh r1, [r2, #0x10] + lsls r1, r6, #7 + ldr r0, [sp] + adds r0, r0, r1 + str r0, [sp] + cmp r6, #2 + bne _080A4BEE + mov r0, sp + strb r6, [r0, #0x14] +_080A4BEE: + ldr r0, _080A4C10 @ =gUnk_02002A40 + ldrb r0, [r0, #6] + movs r1, #0x88 + cmp r0, #0 + bne _080A4BFA + movs r1, #0x82 +_080A4BFA: + cmp r5, #0 + ble _080A4C02 + cmp r1, r5 + bge _080A4C14 +_080A4C02: + movs r5, #1 + rsbs r5, r5, #0 + b _080A4C3E + .align 2, 0 +_080A4C08: .4byte gUnk_0812816C +_080A4C0C: .4byte gUnk_08128184 +_080A4C10: .4byte gUnk_02002A40 +_080A4C14: + ldr r1, _080A4C30 @ =gUnk_020227E8 + ldr r2, _080A4C34 @ =0x00303030 + adds r0, r5, #0 + bl sub_08057044 + adds r0, r5, #0 + bl sub_080A4948 + cmp r0, #0 + bne _080A4C38 + movs r0, #0x80 + lsls r0, r0, #8 + b _080A4C3C + .align 2, 0 +_080A4C30: .4byte gUnk_020227E8 +_080A4C34: .4byte 0x00303030 +_080A4C38: + movs r0, #0x80 + lsls r0, r0, #4 +_080A4C3C: + adds r5, r5, r0 +_080A4C3E: + ldr r0, _080A4C94 @ =gUnk_02000080 + lsls r1, r6, #1 + adds r0, #0x10 + adds r1, r1, r0 + ldrh r0, [r1] + cmp r0, r5 + beq _080A4CB2 + strh r5, [r1] + ldr r0, _080A4C98 @ =0x0000F00B + cmp r6, #2 + bne _080A4C56 + subs r0, #7 +_080A4C56: + ldr r1, [sp] + movs r2, #0x80 + bl sub_0801D5EC + cmp r5, #0 + ble _080A4CAC + ldr r0, _080A4C9C @ =0x00007FFF + cmp r5, r0 + ble _080A4C6A + ldr r5, _080A4CA0 @ =0x00000889 +_080A4C6A: + adds r0, r5, #0 + cmp r5, #0 + bge _080A4C72 + adds r0, #0xff +_080A4C72: + asrs r0, r0, #8 + strb r0, [r4, #8] + strb r5, [r4, #9] + ldr r0, [sp] + adds r0, #0x16 + str r0, [sp] + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + cmp r0, #0 + bne _080A4CA4 + adds r0, r4, #0 + mov r1, sp + bl sub_0805F46C + b _080A4CAC + .align 2, 0 +_080A4C94: .4byte gUnk_02000080 +_080A4C98: .4byte 0x0000F00B +_080A4C9C: .4byte 0x00007FFF +_080A4CA0: .4byte 0x00000889 +_080A4CA4: + adds r0, r5, #0 + mov r1, sp + bl sub_0805F46C +_080A4CAC: + ldr r1, _080A4CB8 @ =gUnk_03000F50 + movs r0, #1 + strh r0, [r1, #0x32] +_080A4CB2: + add sp, #0x54 + pop {r4, r5, r6, pc} + .align 2, 0 +_080A4CB8: .4byte gUnk_03000F50 + + thumb_func_start sub_080A4CBC +sub_080A4CBC: @ 0x080A4CBC + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r1, _080A4D0C @ =gUnk_02000080 + ldrb r0, [r1, #0x1a] + cmp r0, r6 + beq _080A4CFE + strb r6, [r1, #0x1a] + ldr r4, _080A4D10 @ =gUnk_02021F30 + movs r5, #0x80 + lsls r5, r5, #4 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0801D630 + ldr r1, _080A4D14 @ =0x0600E000 + adds r0, r4, #0 + adds r2, r5, #0 + bl sub_0801D66C + adds r0, r6, #0 + bl sub_080A4948 + cmp r0, #0 + beq _080A4CF8 + movs r1, #0x90 + lsls r1, r1, #4 + adds r0, r6, r1 + ldr r1, _080A4D18 @ =gUnk_08128190 + bl sub_0805F46C +_080A4CF8: + ldr r1, _080A4D1C @ =gUnk_03000F50 + movs r0, #1 + strh r0, [r1, #0x1a] +_080A4CFE: + ldr r0, _080A4D18 @ =gUnk_08128190 + ldr r0, [r0] + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r0, r2 + movs r2, #0 + b _080A4D28 + .align 2, 0 +_080A4D0C: .4byte gUnk_02000080 +_080A4D10: .4byte gUnk_02021F30 +_080A4D14: .4byte 0x0600E000 +_080A4D18: .4byte gUnk_08128190 +_080A4D1C: .4byte gUnk_03000F50 +_080A4D20: + adds r1, #0x40 + adds r2, #1 + cmp r2, #0x13 + bhi _080A4D2E +_080A4D28: + ldrh r0, [r1] + cmp r0, #0 + bne _080A4D20 +_080A4D2E: + lsls r0, r2, #3 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080A4D34 +sub_080A4D34: @ 0x080A4D34 + push {lr} + bl sub_08053320 + movs r0, #0xb5 + bl sub_0801D714 + ldr r1, _080A4D50 @ =gUnk_02002A40 + adds r2, r1, #0 + adds r2, #0xaa + ldrb r0, [r2] + cmp r0, #8 + bhi _080A4D54 + movs r1, #2 + b _080A4D66 + .align 2, 0 +_080A4D50: .4byte gUnk_02002A40 +_080A4D54: + adds r0, r1, #0 + adds r0, #0xab + ldrb r0, [r0] + ldrb r1, [r2] + subs r0, r0, r1 + movs r1, #1 + cmp r0, #8 + bgt _080A4D66 + movs r1, #0 +_080A4D66: + adds r0, r1, #0 + adds r0, #0x56 + bl sub_0801D7EC + ldr r1, _080A4D80 @ =gUnk_03000F50 + movs r0, #0 + strh r0, [r1, #0x2e] + strh r0, [r1, #0x30] + ldr r0, _080A4D84 @ =0x00001E0B + strh r0, [r1, #0x2c] + movs r0, #1 + strh r0, [r1, #0x32] + pop {pc} + .align 2, 0 +_080A4D80: .4byte gUnk_03000F50 +_080A4D84: .4byte 0x00001E0B + + thumb_func_start sub_080A4D88 +sub_080A4D88: @ 0x080A4D88 + push {lr} + ldr r0, _080A4DA4 @ =gUnk_020344A0 + movs r1, #8 + bl sub_0801D630 + movs r0, #1 + movs r1, #0 + bl sub_080A7138 + movs r0, #0x80 + bl sub_080A3248 + pop {pc} + .align 2, 0 +_080A4DA4: .4byte gUnk_020344A0 + + thumb_func_start sub_080A4DA8 +sub_080A4DA8: @ 0x080A4DA8 + push {r4, lr} + adds r4, r0, #0 + bl sub_080A4D34 + adds r0, r4, #0 + bl sub_080A4DB8 + pop {r4, pc} + + thumb_func_start sub_080A4DB8 +sub_080A4DB8: @ 0x080A4DB8 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_08056250 + ldr r0, _080A4E58 @ =gUnk_02034CB0 + movs r4, #0x80 + lsls r4, r4, #4 + adds r1, r4, #0 + bl sub_0801D630 + ldr r0, _080A4E5C @ =gUnk_02021F30 + adds r1, r4, #0 + bl sub_0801D630 + ldr r0, _080A4E60 @ =gUnk_020344B0 + adds r1, r4, #0 + bl sub_0801D630 + ldr r0, _080A4E64 @ =gUnk_0200AF34 + movs r1, #0xc0 + lsls r1, r1, #2 + bl sub_0801D630 + ldr r4, _080A4E68 @ =gUnk_02000080 + adds r0, r4, #0 + movs r1, #0x30 + bl sub_0801D630 + ldr r0, _080A4E6C @ =0x0000FFFF + strh r0, [r4, #0x2e] + ldr r0, _080A4E70 @ =gUnk_02034490 + adds r0, #2 + adds r0, r5, r0 + ldrb r0, [r0] + movs r3, #0 + strb r0, [r4, #3] + ldr r0, _080A4E74 @ =gUnk_08128A38 + lsls r5, r5, #3 + adds r5, r5, r0 + ldrb r0, [r5] + lsls r0, r0, #3 + ldr r1, _080A4E78 @ =gUnk_08128AD8 + adds r4, r0, r1 + ldr r1, _080A4E7C @ =gUnk_03000F50 + ldrh r2, [r4, #2] + movs r5, #0xca + lsls r5, r5, #5 + adds r0, r5, #0 + orrs r0, r2 + strh r0, [r1] + strh r3, [r1, #0xa] + strh r3, [r1, #0xc] + movs r2, #1 + strh r2, [r1, #0xe] + strh r3, [r1, #0x16] + strh r3, [r1, #0x18] + ldrh r0, [r4, #4] + strh r0, [r1, #0x14] + strh r2, [r1, #0x1a] + strh r3, [r1, #0x22] + strh r3, [r1, #0x24] + ldrh r0, [r4, #6] + strh r0, [r1, #0x20] + strh r2, [r1, #0x26] + strh r3, [r1, #0x2e] + strh r3, [r1, #0x30] + ldr r0, _080A4E80 @ =0x00001E0B + strh r0, [r1, #0x2c] + ldrb r0, [r4] + cmp r0, #0 + beq _080A4E4A + bl sub_0801D714 +_080A4E4A: + ldrb r0, [r4, #1] + cmp r0, #0 + beq _080A4E54 + bl sub_0801D7EC +_080A4E54: + pop {r4, r5, pc} + .align 2, 0 +_080A4E58: .4byte gUnk_02034CB0 +_080A4E5C: .4byte gUnk_02021F30 +_080A4E60: .4byte gUnk_020344B0 +_080A4E64: .4byte gUnk_0200AF34 +_080A4E68: .4byte gUnk_02000080 +_080A4E6C: .4byte 0x0000FFFF +_080A4E70: .4byte gUnk_02034490 +_080A4E74: .4byte gUnk_08128A38 +_080A4E78: .4byte gUnk_08128AD8 +_080A4E7C: .4byte gUnk_03000F50 +_080A4E80: .4byte 0x00001E0B + + thumb_func_start sub_080A4E84 +sub_080A4E84: @ 0x080A4E84 + ldr r1, _080A4E8C @ =gUnk_02034490 + strb r0, [r1, #0x14] + bx lr + .align 2, 0 +_080A4E8C: .4byte gUnk_02034490 + + thumb_func_start sub_080A4E90 +sub_080A4E90: @ 0x080A4E90 + ldr r1, _080A4E9C @ =gUnk_02034490 + movs r2, #0 + strb r0, [r1, #0x11] + strb r2, [r1, #0x12] + bx lr + .align 2, 0 +_080A4E9C: .4byte gUnk_02034490 + + thumb_func_start sub_080A4EA0 +sub_080A4EA0: @ 0x080A4EA0 + push {r4, lr} + ldr r4, _080A4EB8 @ =gUnk_02034490 + ldrb r0, [r4, #0x11] + cmp r0, #6 + bne _080A4EBC + movs r0, #0x80 + lsls r0, r0, #1 + bl sub_080A3248 + bl sub_080A71DC + b _080A4F14 + .align 2, 0 +_080A4EB8: .4byte gUnk_02034490 +_080A4EBC: + bl sub_080AD90C + ldr r1, _080A4F18 @ =gUnk_08128B30 + ldrb r0, [r4, #0x11] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + bl sub_080A5128 + bl sub_0801C1D4 + bl sub_0801C208 + ldrb r0, [r4, #0x11] + cmp r0, #4 + beq _080A4EF0 + ldr r0, _080A4F1C @ =gUnk_08128A38 + ldrb r1, [r4, #1] + lsls r1, r1, #3 + adds r0, #4 + adds r1, r1, r0 + ldr r0, [r1] + bl _call_via_r0 +_080A4EF0: + bl sub_080AD918 + movs r3, #0x16 + ldrsb r3, [r4, r3] + movs r1, #0 + cmp r3, #0 + beq _080A4F00 + ldr r1, _080A4F20 @ =0x00000E46 +_080A4F00: + ldr r2, _080A4F24 @ =gUnk_03000F50 + adds r0, r2, #0 + adds r0, #0x66 + strh r1, [r0] + lsls r1, r3, #8 + movs r0, #0x10 + subs r0, r0, r3 + orrs r1, r0 + adds r2, #0x68 + strh r1, [r2] +_080A4F14: + pop {r4, pc} + .align 2, 0 +_080A4F18: .4byte gUnk_08128B30 +_080A4F1C: .4byte gUnk_08128A38 +_080A4F20: .4byte 0x00000E46 +_080A4F24: .4byte gUnk_03000F50 + + thumb_func_start sub_080A4F28 +sub_080A4F28: @ 0x080A4F28 + push {r4, lr} + bl sub_0801E8D4 + bl sub_080A4D34 + movs r1, #4 + ldr r3, _080A4F90 @ =gUnk_02034492 + movs r2, #0 +_080A4F38: + adds r0, r1, r3 + strb r2, [r0] + adds r1, #1 + cmp r1, #0xd + ble _080A4F38 + ldr r1, _080A4F94 @ =gUnk_030010A0 + ldrh r0, [r1, #0x20] + ldrh r1, [r1, #0x22] + bl sub_080A6A80 + ldr r4, _080A4F98 @ =gUnk_02034490 + ldrb r0, [r0, #4] + strb r0, [r4, #6] + bl sub_0801DB94 + strb r0, [r4, #7] + movs r0, #0x10 + bl sub_0805436C + movs r1, #0xf + cmp r0, #2 + beq _080A4F66 + movs r1, #0x10 +_080A4F66: + strb r1, [r4, #0x15] + ldr r1, _080A4F9C @ =gUnk_08128A38 + ldrb r0, [r4, #1] + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r0, [r0, #1] + bl sub_080A50A0 + strb r0, [r4, #1] + strb r0, [r4, #0x14] + bl sub_080A4DB8 + movs r0, #4 + movs r1, #0x20 + bl sub_08050054 + movs r0, #1 + bl sub_080A4E90 + pop {r4, pc} + .align 2, 0 +_080A4F90: .4byte gUnk_02034492 +_080A4F94: .4byte gUnk_030010A0 +_080A4F98: .4byte gUnk_02034490 +_080A4F9C: .4byte gUnk_08128A38 + + thumb_func_start sub_080A4FA0 +sub_080A4FA0: @ 0x080A4FA0 + push {lr} + ldr r0, _080A4FB4 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080A4FB0 + movs r0, #2 + bl sub_080A4E90 +_080A4FB0: + pop {pc} + .align 2, 0 +_080A4FB4: .4byte gUnk_03000FD0 + + thumb_func_start sub_080A4FB8 +sub_080A4FB8: @ 0x080A4FB8 + push {r4, r5, lr} + bl sub_080A51F4 + cmp r0, #0 + beq _080A5052 + ldr r0, _080A4FE4 @ =gUnk_02000080 + ldr r1, [r0, #0xc] + adds r2, r0, #0 + cmp r1, #0 + beq _080A5052 + movs r4, #1 + rsbs r4, r4, #0 + ldr r0, _080A4FE8 @ =gUnk_03000FF0 + ldrh r1, [r0, #2] + cmp r1, #8 + beq _080A4FFE + cmp r1, #8 + bgt _080A4FEC + cmp r1, #2 + beq _080A500A + b _080A500C + .align 2, 0 +_080A4FE4: .4byte gUnk_02000080 +_080A4FE8: .4byte gUnk_03000FF0 +_080A4FEC: + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + beq _080A5006 + movs r0, #0x80 + lsls r0, r0, #2 + cmp r1, r0 + beq _080A5002 + b _080A500C +_080A4FFE: + movs r4, #0 + b _080A5010 +_080A5002: + movs r4, #1 + b _080A5010 +_080A5006: + movs r4, #2 + b _080A5010 +_080A500A: + movs r4, #3 +_080A500C: + cmp r4, #0 + blt _080A5052 +_080A5010: + ldr r0, [r2, #0xc] + adds r0, r0, r4 + ldrb r5, [r0] + cmp r5, #6 + bgt _080A5024 + cmp r5, #4 + bge _080A5028 + cmp r5, #0 + beq _080A5052 + b _080A5042 +_080A5024: + cmp r5, #0xf + bne _080A5042 +_080A5028: + movs r0, #0x47 + bl sub_0807CA84 + cmp r0, #0 + bne _080A5042 + movs r1, #1 + cmp r4, #1 + bne _080A503A + movs r1, #2 +_080A503A: + ldr r0, _080A5078 @ =gUnk_02000080 + ldr r0, [r0, #0xc] + adds r0, r0, r1 + ldrb r5, [r0] +_080A5042: + ldr r0, _080A507C @ =gUnk_02034490 + movs r4, #0 + strb r5, [r0, #0x14] + movs r0, #0x65 + bl sub_080A3268 + ldr r0, _080A5078 @ =gUnk_02000080 + str r4, [r0, #0xc] +_080A5052: + ldr r4, _080A507C @ =gUnk_02034490 + movs r0, #0x14 + ldrsb r0, [r4, r0] + bl sub_080A50A0 + adds r5, r0, #0 + ldrb r0, [r4, #1] + cmp r0, r5 + beq _080A5096 + strb r5, [r4, #0x14] + bl sub_080A51D4 + cmp r5, #0xe + bne _080A5080 + movs r0, #6 + bl sub_080A4E90 + b _080A5096 + .align 2, 0 +_080A5078: .4byte gUnk_02000080 +_080A507C: .4byte gUnk_02034490 +_080A5080: + movs r0, #3 + bl sub_080A4E90 + ldr r0, _080A5098 @ =gUnk_02034CB0 + movs r1, #0x80 + lsls r1, r1, #4 + bl sub_0801D630 + ldr r1, _080A509C @ =gUnk_03000F50 + movs r0, #1 + strh r0, [r1, #0xe] +_080A5096: + pop {r4, r5, pc} + .align 2, 0 +_080A5098: .4byte gUnk_02034CB0 +_080A509C: .4byte gUnk_03000F50 + + thumb_func_start sub_080A50A0 +sub_080A50A0: @ 0x080A50A0 + push {lr} + adds r1, r0, #0 + cmp r1, #0xf + bne _080A50B4 + bl sub_08052690 + movs r1, #4 + cmp r0, #0 + beq _080A50B4 + movs r1, #5 +_080A50B4: + adds r0, r1, #0 + pop {pc} + + thumb_func_start sub_080A50B8 +sub_080A50B8: @ 0x080A50B8 + push {r4, lr} + ldr r4, _080A50DC @ =gUnk_02034490 + movs r0, #0x16 + ldrsb r0, [r4, r0] + adds r0, #2 + cmp r0, #0x10 + ble _080A50D8 + ldr r2, _080A50E0 @ =gUnk_03000F50 + ldrh r1, [r2] + ldr r0, _080A50E4 @ =0x0000F8FF + ands r0, r1 + strh r0, [r2] + movs r0, #4 + bl sub_080A4E90 + movs r0, #0x10 +_080A50D8: + strb r0, [r4, #0x16] + pop {r4, pc} + .align 2, 0 +_080A50DC: .4byte gUnk_02034490 +_080A50E0: .4byte gUnk_03000F50 +_080A50E4: .4byte 0x0000F8FF + + thumb_func_start sub_080A50E8 +sub_080A50E8: @ 0x080A50E8 + push {lr} + ldr r1, _080A5104 @ =gUnk_02034490 + movs r0, #0x10 + strb r0, [r1, #0x16] + movs r0, #0x14 + ldrsb r0, [r1, r0] + strb r0, [r1, #1] + bl sub_080A4DB8 + movs r0, #5 + bl sub_080A4E90 + pop {pc} + .align 2, 0 +_080A5104: .4byte gUnk_02034490 + + thumb_func_start sub_080A5108 +sub_080A5108: @ 0x080A5108 + push {r4, lr} + ldr r4, _080A5124 @ =gUnk_02034490 + movs r0, #0x16 + ldrsb r0, [r4, r0] + subs r0, #2 + cmp r0, #0 + bge _080A511E + movs r0, #2 + bl sub_080A4E90 + movs r0, #0 +_080A511E: + strb r0, [r4, #0x16] + pop {r4, pc} + .align 2, 0 +_080A5124: .4byte gUnk_02034490 + + thumb_func_start sub_080A5128 +sub_080A5128: @ 0x080A5128 + push {r4, r5, lr} + sub sp, #0x18 + ldr r0, _080A5140 @ =gUnk_02034490 + ldrb r1, [r0, #1] + adds r2, r0, #0 + cmp r1, #7 + blt _080A515A + cmp r1, #8 + ble _080A5144 + cmp r1, #0xb + bgt _080A515A + b _080A51C6 + .align 2, 0 +_080A5140: .4byte gUnk_02034490 +_080A5144: + movs r0, #0x60 + str r0, [sp] + movs r0, #0x18 + str r0, [sp, #4] + subs r0, #0x28 + str r0, [sp, #8] + movs r1, #0x48 + str r1, [sp, #0xc] + movs r0, #0x80 + lsls r0, r0, #1 + b _080A5182 +_080A515A: + movs r0, #0x40 + str r0, [sp] + movs r0, #0x16 + ldrsb r0, [r2, r0] + lsls r0, r0, #1 + movs r4, #0x10 + subs r0, r4, r0 + str r0, [sp, #4] + movs r0, #0x16 + ldrsb r0, [r2, r0] + movs r1, #3 + bl __divsi3 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r4, r4, r0 + str r4, [sp, #8] + movs r1, #0x48 + str r1, [sp, #0xc] + adds r0, #0xe0 +_080A5182: + str r0, [sp, #0x10] + str r1, [sp, #0x14] + ldr r4, _080A51CC @ =gUnk_03001010 + movs r0, #0 + strh r0, [r4, #4] + strh r0, [r4, #6] + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r4, #8] + ldr r0, [sp] + strh r0, [r4] + ldr r0, [sp, #4] + strh r0, [r4, #2] + ldr r5, _080A51D0 @ =0x000001FB + adds r0, r5, #0 + movs r1, #0 + bl sub_080ADA14 + ldr r0, [sp, #8] + strh r0, [r4] + ldr r0, [sp, #0xc] + strh r0, [r4, #2] + adds r0, r5, #0 + movs r1, #1 + bl sub_080ADA14 + ldr r0, [sp, #0x10] + strh r0, [r4] + ldr r0, [sp, #0x14] + strh r0, [r4, #2] + adds r0, r5, #0 + movs r1, #2 + bl sub_080ADA14 +_080A51C6: + add sp, #0x18 + pop {r4, r5, pc} + .align 2, 0 +_080A51CC: .4byte gUnk_03001010 +_080A51D0: .4byte 0x000001FB + + thumb_func_start sub_080A51D4 +sub_080A51D4: @ 0x080A51D4 + push {lr} + ldr r0, _080A51EC @ =gUnk_02034490 + ldrb r1, [r0, #1] + cmp r1, #0xd + bhi _080A51E8 + adds r0, #2 + adds r0, r1, r0 + ldr r1, _080A51F0 @ =gUnk_02000080 + ldrb r1, [r1, #3] + strb r1, [r0] +_080A51E8: + pop {pc} + .align 2, 0 +_080A51EC: .4byte gUnk_02034490 +_080A51F0: .4byte gUnk_02000080 + + thumb_func_start sub_080A51F4 +sub_080A51F4: @ 0x080A51F4 + push {lr} + movs r1, #1 + ldr r0, _080A5210 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + beq _080A5202 + movs r1, #0 +_080A5202: + ldr r0, _080A5214 @ =gUnk_02034490 + ldrb r0, [r0, #0x11] + cmp r0, #2 + beq _080A520C + movs r1, #0 +_080A520C: + adds r0, r1, #0 + pop {pc} + .align 2, 0 +_080A5210: .4byte gUnk_03000FD0 +_080A5214: .4byte gUnk_02034490 + + thumb_func_start sub_080A5218 +sub_080A5218: @ 0x080A5218 + push {lr} + ldr r1, _080A5230 @ =gUnk_08128B48 + ldr r0, _080A5234 @ =gUnk_02000080 + ldrb r0, [r0, #5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + bl sub_080A5384 + pop {pc} + .align 2, 0 +_080A5230: .4byte gUnk_08128B48 +_080A5234: .4byte gUnk_02000080 + + thumb_func_start sub_080A5238 +sub_080A5238: @ 0x080A5238 + push {r4, r5, lr} + ldr r4, _080A528C @ =gUnk_02000080 + movs r0, #0 + str r0, [r4, #0xc] + ldr r0, _080A5290 @ =gUnk_08128B50 + bl sub_080A70AC + movs r5, #1 + adds r4, #0x10 +_080A524A: + adds r0, r5, #0 + bl sub_0807CA84 + cmp r0, #1 + bne _080A527E + ldr r1, _080A5294 @ =gUnk_080FD5B4 + lsls r0, r5, #3 + adds r0, r0, r1 + ldrb r1, [r0] + cmp r1, #0x11 + bhi _080A527E + cmp r5, #0x10 + bhi _080A526C + cmp r5, #0xf + blo _080A526C + ldr r0, _080A5298 @ =gUnk_02034490 + ldrb r5, [r0, #0x15] +_080A526C: + adds r0, r1, r4 + strb r5, [r0] + lsls r1, r1, #3 + movs r0, #0xd8 + lsls r0, r0, #2 + adds r1, r1, r0 + adds r0, r5, #0 + bl sub_080A5F48 +_080A527E: + adds r5, #1 + cmp r5, #0x1f + bls _080A524A + movs r0, #1 + bl sub_080A7114 + pop {r4, r5, pc} + .align 2, 0 +_080A528C: .4byte gUnk_02000080 +_080A5290: .4byte gUnk_08128B50 +_080A5294: .4byte gUnk_080FD5B4 +_080A5298: .4byte gUnk_02034490 + + thumb_func_start sub_080A529C +sub_080A529C: @ 0x080A529C + push {r4, r5, lr} + bl sub_080A51F4 + cmp r0, #0 + beq _080A5380 + ldr r1, _080A52D0 @ =gUnk_02000080 + ldr r0, _080A52D4 @ =gUnk_08128BF4 + str r0, [r1, #0xc] + ldrb r4, [r1, #3] + lsls r1, r4, #3 + ldr r0, _080A52D8 @ =gUnk_08128B64 + adds r1, r1, r0 + ldr r0, _080A52DC @ =gUnk_03000FF0 + ldrh r2, [r0, #2] + adds r3, r0, #0 + cmp r2, #1 + beq _080A52E0 + cmp r2, #2 + beq _080A52EC + ldrh r0, [r3, #4] + cmp r0, #0x20 + beq _080A5330 + cmp r0, #0x20 + bgt _080A531E + b _080A5318 + .align 2, 0 +_080A52D0: .4byte gUnk_02000080 +_080A52D4: .4byte gUnk_08128BF4 +_080A52D8: .4byte gUnk_08128B64 +_080A52DC: .4byte gUnk_03000FF0 +_080A52E0: + cmp r4, #0x10 + bne _080A52EC + movs r0, #0xb + bl sub_080A4E84 + b _080A530A +_080A52EC: + ldr r0, _080A5314 @ =gUnk_02000080 + adds r0, #0x10 + adds r2, r4, r0 + ldrb r0, [r2] + cmp r0, #0 + beq _080A5336 + ldrh r0, [r3, #2] + movs r1, #1 + eors r0, r1 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r1, r1, #0x1f + ldrb r0, [r2] + bl sub_08054414 +_080A530A: + movs r0, #0x6a + bl sub_080A3268 + b _080A5336 + .align 2, 0 +_080A5314: .4byte gUnk_02000080 +_080A5318: + cmp r0, #0x10 + beq _080A5334 + b _080A5336 +_080A531E: + cmp r0, #0x40 + beq _080A5328 + cmp r0, #0x80 + beq _080A532C + b _080A5336 +_080A5328: + ldrb r4, [r1] + b _080A5336 +_080A532C: + ldrb r4, [r1, #1] + b _080A5336 +_080A5330: + ldrb r4, [r1, #2] + b _080A5336 +_080A5334: + ldrb r4, [r1, #3] +_080A5336: + ldr r5, _080A535C @ =gUnk_02000080 + ldrb r0, [r5, #3] + cmp r0, r4 + beq _080A5346 + strb r4, [r5, #3] + movs r0, #0x69 + bl sub_080A3268 +_080A5346: + adds r0, r5, #0 + adds r0, #0x10 + adds r0, r4, r0 + ldrb r1, [r0] + cmp r4, #0xc + blo _080A5376 + cmp r4, #0xf + bls _080A5360 + cmp r4, #0x10 + beq _080A5374 + b _080A5376 + .align 2, 0 +_080A535C: .4byte gUnk_02000080 +_080A5360: + cmp r1, #0 + beq _080A5376 + ldr r0, _080A5370 @ =gUnk_02002A40 + adds r0, r0, r1 + adds r0, #0x9a + ldrb r1, [r0] + b _080A5376 + .align 2, 0 +_080A5370: .4byte gUnk_02002A40 +_080A5374: + movs r1, #0x73 +_080A5376: + movs r0, #0x80 + lsls r0, r0, #3 + adds r0, r1, r0 + bl sub_080A6F6C +_080A5380: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080A5384 +sub_080A5384: @ 0x080A5384 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, _080A5400 @ =gUnk_03001010 + movs r2, #0 + movs r1, #0x80 + lsls r1, r1, #3 + strh r1, [r0, #4] + strh r2, [r0, #6] + strh r2, [r0, #8] + movs r5, #0 + ldr r4, _080A5404 @ =gUnk_02002A40 + movs r0, #0xb6 + adds r0, r0, r4 + mov sl, r0 + movs r1, #0xac + adds r1, r1, r4 + mov sb, r1 + movs r2, #0xad + adds r2, r2, r4 + mov r8, r2 + movs r6, #0 +_080A53B4: + ldr r0, _080A5408 @ =gUnk_02000080 + adds r0, #0x10 + adds r2, r5, r0 + ldrb r0, [r2] + cmp r0, #0 + beq _080A5456 + ldr r0, _080A540C @ =gUnk_08128B64 + adds r1, r6, r0 + ldrb r0, [r1, #6] + ldr r3, _080A5400 @ =gUnk_03001010 + strh r0, [r3] + ldrb r0, [r1, #7] + strh r0, [r3, #2] + ldrb r3, [r2] + cmp r3, #0x1f + bhi _080A53E0 + cmp r3, #0x1c + blo _080A53E0 + adds r0, r3, #0 + subs r0, #0x1c + add r0, sl + ldrb r3, [r0] +_080A53E0: + movs r2, #3 + cmp r3, #7 + blo _080A542E + cmp r3, #8 + bhi _080A5414 + ldr r0, _080A5410 @ =gUnk_080FD5A0 + adds r1, r4, #0 + adds r1, #0xae + ldrb r1, [r1] + adds r1, r1, r0 + ldrb r0, [r1] + mov r7, sb + ldrb r7, [r7] + cmp r0, r7 + bhi _080A542E + b _080A542C + .align 2, 0 +_080A5400: .4byte gUnk_03001010 +_080A5404: .4byte gUnk_02002A40 +_080A5408: .4byte gUnk_02000080 +_080A540C: .4byte gUnk_08128B64 +_080A5410: .4byte gUnk_080FD5A0 +_080A5414: + cmp r3, #0xa + bhi _080A542E + ldr r0, _080A552C @ =gUnk_080FD5A4 + adds r1, r4, #0 + adds r1, #0xaf + ldrb r1, [r1] + adds r1, r1, r0 + ldrb r0, [r1] + mov r1, r8 + ldrb r1, [r1] + cmp r0, r1 + bhi _080A542E +_080A542C: + movs r2, #4 +_080A542E: + lsls r2, r2, #0xc + movs r7, #0xd8 + lsls r7, r7, #2 + adds r0, r6, r7 + movs r7, #0x80 + lsls r7, r7, #4 + adds r1, r7, #0 + orrs r0, r1 + orrs r2, r0 + ldr r0, _080A5530 @ =gUnk_03001010 + strh r2, [r0, #8] + ldr r1, _080A5534 @ =gUnk_080FDFD8 + lsls r0, r3, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldrb r1, [r0] + movs r0, #0xa1 + lsls r0, r0, #1 + bl sub_080ADA14 +_080A5456: + adds r6, #8 + adds r5, #1 + cmp r5, #0x10 + bls _080A53B4 + ldr r0, _080A5530 @ =gUnk_03001010 + movs r1, #0x80 + lsls r1, r1, #4 + strh r1, [r0, #8] + ldr r1, _080A5538 @ =gUnk_02000080 + ldrb r1, [r1, #3] + mov sb, r0 + cmp r1, #0x10 + bne _080A547C + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + cmp r0, #0 + beq _080A547C + movs r1, #0x11 +_080A547C: + lsls r0, r1, #3 + ldr r1, _080A553C @ =gUnk_08128B64 + mov r8, r1 + adds r1, r0, r1 + mov r4, sb + ldrb r0, [r1, #6] + strh r0, [r4] + ldrb r0, [r1, #7] + strh r0, [r4, #2] + ldrb r2, [r1, #4] + ldr r0, _080A5540 @ =gUnk_03001000 + ldrh r1, [r0, #0xc] + movs r0, #0x10 + ands r0, r1 + adds r1, r2, #4 + cmp r0, #0 + beq _080A54A0 + adds r1, r2, #3 +_080A54A0: + ldr r6, _080A5544 @ =0x000001FB + adds r0, r6, #0 + bl sub_080ADA14 + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + movs r1, #0x11 + cmp r0, #0 + beq _080A54B6 + movs r1, #0x10 +_080A54B6: + lsls r0, r1, #3 + mov r2, r8 + adds r1, r0, r2 + ldrb r0, [r1, #6] + strh r0, [r4] + ldrb r0, [r1, #7] + strh r0, [r4, #2] + movs r0, #0x80 + lsls r0, r0, #4 + strh r0, [r4, #8] + adds r0, r6, #0 + movs r1, #0x22 + bl sub_080ADA14 + ldr r7, _080A5548 @ =gUnk_02002A40 + adds r0, r7, #0 + adds r0, #0xb4 + ldrb r0, [r0] + bl sub_080A554C + adds r5, r0, #0 + cmp r5, #0x10 + bhi _080A54FA + lsls r0, r5, #3 + mov r3, r8 + adds r1, r0, r3 + ldrb r0, [r1, #6] + strh r0, [r4] + ldrb r0, [r1, #7] + strh r0, [r4, #2] + adds r0, r6, #0 + movs r1, #3 + bl sub_080ADA14 +_080A54FA: + adds r0, r7, #0 + adds r0, #0xb5 + ldrb r0, [r0] + bl sub_080A554C + adds r5, r0, #0 + cmp r5, #0x10 + bhi _080A5522 + lsls r0, r5, #3 + mov r7, r8 + adds r1, r0, r7 + ldrb r0, [r1, #6] + mov r2, sb + strh r0, [r2] + ldrb r0, [r1, #7] + strh r0, [r2, #2] + adds r0, r6, #0 + movs r1, #3 + bl sub_080ADA14 +_080A5522: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A552C: .4byte gUnk_080FD5A4 +_080A5530: .4byte gUnk_03001010 +_080A5534: .4byte gUnk_080FDFD8 +_080A5538: .4byte gUnk_02000080 +_080A553C: .4byte gUnk_08128B64 +_080A5540: .4byte gUnk_03001000 +_080A5544: .4byte 0x000001FB +_080A5548: .4byte gUnk_02002A40 + + thumb_func_start sub_080A554C +sub_080A554C: @ 0x080A554C + push {lr} + adds r2, r0, #0 + cmp r2, #0 + beq _080A556E + movs r1, #0 + ldr r3, _080A5564 @ =gUnk_02000090 +_080A5558: + adds r0, r1, r3 + ldrb r0, [r0] + cmp r2, r0 + bne _080A5568 + adds r0, r1, #0 + b _080A5570 + .align 2, 0 +_080A5564: .4byte gUnk_02000090 +_080A5568: + adds r1, #1 + cmp r1, #0x10 + bls _080A5558 +_080A556E: + movs r0, #0x11 +_080A5570: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080A5574 +sub_080A5574: @ 0x080A5574 + push {lr} + ldr r1, _080A558C @ =gUnk_08128BF8 + ldr r0, _080A5590 @ =gUnk_02000080 + ldrb r0, [r0, #5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + bl sub_080A57F4 + pop {pc} + .align 2, 0 +_080A558C: .4byte gUnk_08128BF8 +_080A5590: .4byte gUnk_02000080 + + thumb_func_start sub_080A5594 +sub_080A5594: @ 0x080A5594 + push {r4, r5, r6, r7, lr} + ldr r4, _080A5620 @ =gUnk_02000080 + ldr r0, _080A5624 @ =gUnk_08128C00 + str r0, [r4, #0xc] + ldr r0, _080A5628 @ =gUnk_08128C04 + bl sub_080A70AC + movs r6, #6 + movs r5, #0x34 + adds r7, r4, #0 + adds r7, #0x10 +_080A55AA: + adds r0, r5, #0 + bl sub_0807CA84 + cmp r0, #1 + bne _080A55EA + ldr r1, _080A562C @ =gUnk_080FD5B4 + lsls r0, r5, #3 + adds r0, r0, r1 + ldrb r1, [r0] + cmp r1, #3 + bne _080A55C8 + ldrb r0, [r4, #0x13] + cmp r0, #0 + beq _080A55C8 + movs r1, #0x63 +_080A55C8: + cmp r1, #0x63 + beq _080A55EA + cmp r1, #1 + bne _080A55D8 + adds r1, r6, #0 + cmp r1, #7 + bhi _080A55D8 + adds r6, r1, #1 +_080A55D8: + adds r0, r1, r7 + strb r5, [r0] + lsls r1, r1, #3 + movs r0, #0xe0 + lsls r0, r0, #2 + adds r1, r1, r0 + adds r0, r5, #0 + bl sub_080A5F48 +_080A55EA: + adds r5, #1 + cmp r5, #0x46 + bls _080A55AA + movs r0, #0x3d + bl sub_0807CA84 + cmp r0, #0 + bne _080A564A + movs r5, #0 + movs r0, #0x67 + bl sub_0807CA84 + cmp r0, #0 + beq _080A5646 + movs r4, #0 + ldr r1, _080A5630 @ =gUnk_02002B6B +_080A560A: + adds r0, r4, r1 + ldrb r0, [r0] + adds r5, r5, r0 + adds r4, #1 + cmp r4, #0x12 + bls _080A560A + cmp r5, #0x4f + ble _080A5634 + movs r5, #4 + b _080A5646 + .align 2, 0 +_080A5620: .4byte gUnk_02000080 +_080A5624: .4byte gUnk_08128C00 +_080A5628: .4byte gUnk_08128C04 +_080A562C: .4byte gUnk_080FD5B4 +_080A5630: .4byte gUnk_02002B6B +_080A5634: + cmp r5, #0x27 + ble _080A563C + movs r5, #3 + b _080A5646 +_080A563C: + cmp r5, #9 + ble _080A5644 + movs r5, #2 + b _080A5646 +_080A5644: + movs r5, #1 +_080A5646: + ldr r0, _080A5698 @ =gUnk_02000080 + strb r5, [r0, #0x10] +_080A564A: + ldr r0, _080A5698 @ =gUnk_02000080 + ldr r1, _080A569C @ =gUnk_02002A40 + adds r1, #0xa9 + ldrb r1, [r1] + adds r1, #1 + strb r1, [r0, #0x11] + movs r5, #0 + movs r4, #0x48 +_080A565A: + adds r0, r4, #0 + bl sub_0807CA84 + cmp r0, #0 + beq _080A5666 + adds r5, #1 +_080A5666: + adds r4, #1 + cmp r4, #0x4f + bls _080A565A + ldr r4, _080A5698 @ =gUnk_02000080 + strb r5, [r4, #0x12] + movs r0, #0x3e + bl sub_0807CA84 + cmp r0, #0 + bne _080A5688 + movs r0, #0x3f + bl sub_0807CA84 + cmp r0, #0 + beq _080A5688 + movs r0, #0x3f + strb r0, [r4, #0x13] +_080A5688: + ldr r1, _080A5698 @ =gUnk_02000080 + movs r0, #1 + strb r0, [r1, #0x14] + strb r0, [r1, #0x15] + bl sub_080A7114 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A5698: .4byte gUnk_02000080 +_080A569C: .4byte gUnk_02002A40 + + thumb_func_start sub_080A56A0 +sub_080A56A0: @ 0x080A56A0 + push {r4, lr} + bl sub_080A51F4 + cmp r0, #0 + bne _080A56AC + b _080A57F0 +_080A56AC: + ldr r2, _080A56D0 @ =gUnk_02000080 + ldr r0, _080A56D4 @ =gUnk_08128C00 + str r0, [r2, #0xc] + ldrb r0, [r2, #3] + lsls r0, r0, #3 + ldr r1, _080A56D8 @ =gUnk_08128C14 + adds r4, r0, r1 + movs r3, #0xff + ldr r0, _080A56DC @ =gUnk_03000FF0 + ldrh r1, [r0, #4] + cmp r1, #0x20 + beq _080A56F2 + cmp r1, #0x20 + bgt _080A56E0 + cmp r1, #0x10 + beq _080A56F6 + b _080A56F8 + .align 2, 0 +_080A56D0: .4byte gUnk_02000080 +_080A56D4: .4byte gUnk_08128C00 +_080A56D8: .4byte gUnk_08128C14 +_080A56DC: .4byte gUnk_03000FF0 +_080A56E0: + cmp r1, #0x40 + beq _080A56EA + cmp r1, #0x80 + beq _080A56EE + b _080A56F8 +_080A56EA: + ldrb r3, [r4] + b _080A56F8 +_080A56EE: + ldrb r3, [r4, #1] + b _080A56F8 +_080A56F2: + ldrb r3, [r4, #2] + b _080A56F8 +_080A56F6: + ldrb r3, [r4, #3] +_080A56F8: + cmp r3, #0xff + beq _080A570C + ldr r0, _080A5708 @ =gUnk_02000080 + strb r3, [r0, #3] + movs r0, #0x69 + bl sub_080A3268 + b _080A575E + .align 2, 0 +_080A5708: .4byte gUnk_02000080 +_080A570C: + ldrh r0, [r0, #2] + cmp r0, #1 + bne _080A575E + ldrb r3, [r2, #3] + movs r1, #0 + cmp r3, #2 + beq _080A572E + cmp r3, #2 + bhi _080A5724 + cmp r3, #0 + beq _080A572E + b _080A574E +_080A5724: + cmp r3, #4 + beq _080A5748 + cmp r3, #5 + beq _080A574C + b _080A574E +_080A572E: + ldr r0, _080A5744 @ =gUnk_02000080 + adds r0, #0x10 + adds r0, r3, r0 + ldrb r0, [r0] + cmp r0, #0 + beq _080A574E + movs r1, #8 + cmp r3, #0 + bne _080A574E + movs r1, #7 + b _080A5752 + .align 2, 0 +_080A5744: .4byte gUnk_02000080 +_080A5748: + movs r1, #9 + b _080A5752 +_080A574C: + movs r1, #0xa +_080A574E: + cmp r1, #0 + beq _080A575E +_080A5752: + adds r0, r1, #0 + bl sub_080A4E84 + movs r0, #0x6a + bl sub_080A3268 +_080A575E: + ldr r0, _080A5780 @ =gUnk_02000080 + ldrb r1, [r0, #3] + adds r2, r0, #0 + cmp r1, #0 + beq _080A576C + cmp r1, #2 + bne _080A5788 +_080A576C: + adds r0, r2, #0 + adds r0, #0x10 + adds r0, r1, r0 + ldrb r0, [r0] + cmp r0, #0 + beq _080A5788 + ldr r1, _080A5784 @ =gUnk_0200AF00 + movs r0, #0x10 + b _080A578C + .align 2, 0 +_080A5780: .4byte gUnk_02000080 +_080A5784: .4byte gUnk_0200AF00 +_080A5788: + ldr r1, _080A57AC @ =gUnk_0200AF00 + ldr r0, _080A57B0 @ =0x0000FFF0 +_080A578C: + strh r0, [r1, #0x1c] + ldrb r3, [r2, #3] + adds r0, r2, #0 + adds r0, #0x10 + adds r0, r3, r0 + ldrb r2, [r0] + cmp r2, #0 + beq _080A57E6 + cmp r3, #5 + bhi _080A57E6 + lsls r0, r3, #2 + ldr r1, _080A57B4 @ =_080A57B8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080A57AC: .4byte gUnk_0200AF00 +_080A57B0: .4byte 0x0000FFF0 +_080A57B4: .4byte _080A57B8 +_080A57B8: @ jump table + .4byte _080A57D0 @ case 0 + .4byte _080A57D8 @ case 1 + .4byte _080A57DC @ case 2 + .4byte _080A57E6 @ case 3 + .4byte _080A57E0 @ case 4 + .4byte _080A57E4 @ case 5 +_080A57D0: + cmp r2, #0x3d + beq _080A57E6 + movs r2, #0x67 + b _080A57E6 +_080A57D8: + movs r2, #0x63 + b _080A57E6 +_080A57DC: + movs r2, #0x70 + b _080A57E6 +_080A57E0: + movs r2, #0x74 + b _080A57E6 +_080A57E4: + movs r2, #0x73 +_080A57E6: + movs r0, #0x80 + lsls r0, r0, #3 + adds r0, r2, r0 + bl sub_080A6F6C +_080A57F0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A57F4 +sub_080A57F4: @ 0x080A57F4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r2, _080A5890 @ =gUnk_03001010 + movs r1, #0 + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r2, #4] + strh r1, [r2, #6] + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + ldr r1, _080A5894 @ =gUnk_08128C94 + mov sb, r1 + cmp r0, #0 + bne _080A581A + ldr r3, _080A5898 @ =gUnk_08128C14 + mov sb, r3 +_080A581A: + ldr r0, _080A589C @ =gUnk_02000080 + ldrb r0, [r0, #3] + lsls r0, r0, #3 + mov r1, sb + adds r3, r1, r0 + movs r0, #0x80 + lsls r0, r0, #4 + strh r0, [r2, #8] + ldrb r0, [r3, #6] + strh r0, [r2] + ldrb r0, [r3, #7] + strh r0, [r2, #2] + ldrb r2, [r3, #4] + ldr r0, _080A58A0 @ =gUnk_03001000 + ldrh r1, [r0, #0xc] + movs r0, #0x10 + ands r0, r1 + adds r1, r2, #0 + adds r1, #0xa + cmp r0, #0 + bne _080A5846 + adds r1, #1 +_080A5846: + ldr r0, _080A58A4 @ =0x000001FB + bl sub_080ADA14 + movs r3, #0 + mov r8, r3 + mov r7, sb + adds r7, #5 +_080A5854: + ldr r0, _080A589C @ =gUnk_02000080 + adds r0, #0x10 + mov r1, r8 + adds r6, r1, r0 + ldrb r1, [r6] + cmp r1, #0 + beq _080A58E8 + mov r3, r8 + lsls r5, r3, #3 + mov r0, sb + adds r3, r0, r5 + ldr r4, _080A5890 @ =gUnk_03001010 + ldrb r0, [r7, #1] + strh r0, [r4] + ldrb r2, [r7, #2] + strh r2, [r4, #2] + movs r0, #0xe8 + lsls r0, r0, #8 + strh r0, [r4, #8] + cmp r1, #0x33 + bhi _080A58B8 + mov r1, r8 + cmp r1, #2 + bne _080A58A8 + ldrb r0, [r7] + adds r1, r0, #0 + adds r1, #0xa + ldr r0, _080A58A4 @ =0x000001FB + b _080A58E4 + .align 2, 0 +_080A5890: .4byte gUnk_03001010 +_080A5894: .4byte gUnk_08128C94 +_080A5898: .4byte gUnk_08128C14 +_080A589C: .4byte gUnk_02000080 +_080A58A0: .4byte gUnk_03001000 +_080A58A4: .4byte 0x000001FB +_080A58A8: + ldrb r0, [r6] + adds r0, #9 + ldrb r3, [r3, #5] + adds r1, r0, r3 + ldr r0, _080A58B4 @ =0x000001FB + b _080A58E4 + .align 2, 0 +_080A58B4: .4byte 0x000001FB +_080A58B8: + ldr r3, _080A58CC @ =0x0000EB80 + adds r0, r5, r3 + strh r0, [r4, #8] + cmp r1, #0x3d + beq _080A58D0 + cmp r1, #0x3e + bne _080A58D6 + adds r0, r2, #0 + adds r0, #8 + b _080A58D4 + .align 2, 0 +_080A58CC: .4byte 0x0000EB80 +_080A58D0: + adds r0, r2, #0 + adds r0, #0xd +_080A58D4: + strh r0, [r4, #2] +_080A58D6: + ldr r0, _080A5980 @ =gUnk_080FDFD8 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + ldrb r1, [r0] + movs r0, #0xa1 + lsls r0, r0, #1 +_080A58E4: + bl sub_080ADA14 +_080A58E8: + adds r7, #8 + movs r0, #1 + add r8, r0 + mov r1, r8 + cmp r1, #0xf + bls _080A5854 + ldr r4, _080A5984 @ =gUnk_02000080 + ldrb r0, [r4, #0x12] + cmp r0, #0 + beq _080A5920 + ldr r2, _080A5988 @ =gUnk_03001010 + movs r3, #0x80 + lsls r3, r3, #4 + adds r1, r3, #0 + adds r0, r0, r1 + strh r0, [r2, #8] + mov r3, sb + adds r3, #0x10 + ldrb r0, [r3, #6] + adds r0, #9 + strh r0, [r2] + ldrb r0, [r3, #7] + adds r0, #7 + strh r0, [r2, #2] + movs r0, #0 + movs r1, #1 + bl sub_080ADA14 +_080A5920: + ldrb r0, [r4, #0x13] + cmp r0, #0x3f + bne _080A5976 + mov r3, sb + adds r3, #0x18 + ldr r1, _080A5988 @ =gUnk_03001010 + ldrb r0, [r3, #6] + adds r0, #8 + strh r0, [r1] + ldrb r0, [r3, #7] + adds r0, #8 + strh r0, [r1, #2] + ldr r0, _080A598C @ =gUnk_02002A40 + adds r0, #0xc2 + ldrh r4, [r0] + movs r0, #0 + mov r8, r0 + adds r5, r1, #0 +_080A5944: + adds r0, r4, #0 + movs r1, #0xa + bl __modsi3 + movs r1, #0x80 + lsls r1, r1, #4 + adds r0, r0, r1 + strh r0, [r5, #8] + movs r0, #0 + movs r1, #1 + bl sub_080ADA14 + adds r0, r4, #0 + movs r1, #0xa + bl __divsi3 + adds r4, r0, #0 + ldrh r0, [r5] + subs r0, #8 + strh r0, [r5] + movs r3, #1 + add r8, r3 + mov r0, r8 + cmp r0, #2 + bls _080A5944 +_080A5976: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A5980: .4byte gUnk_080FDFD8 +_080A5984: .4byte gUnk_02000080 +_080A5988: .4byte gUnk_03001010 +_080A598C: .4byte gUnk_02002A40 + + thumb_func_start sub_080A5990 +sub_080A5990: @ 0x080A5990 + push {lr} + ldr r1, _080A59A4 @ =gUnk_08128D14 + ldr r0, _080A59A8 @ =gUnk_02000080 + ldrb r0, [r0, #5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_080A59A4: .4byte gUnk_08128D14 +_080A59A8: .4byte gUnk_02000080 + + thumb_func_start sub_080A59AC +sub_080A59AC: @ 0x080A59AC + push {lr} + ldr r1, _080A59C4 @ =gUnk_02000080 + movs r0, #0 + strb r0, [r1, #3] + movs r1, #0 + bl sub_08052418 + movs r0, #1 + bl sub_080A7114 + pop {pc} + .align 2, 0 +_080A59C4: .4byte gUnk_02000080 + + thumb_func_start sub_080A59C8 +sub_080A59C8: @ 0x080A59C8 + push {lr} + bl sub_080A51F4 + cmp r0, #0 + beq _080A5A52 + ldr r1, _080A59EC @ =gUnk_02000080 + ldrb r2, [r1, #3] + movs r3, #0 + ldr r0, _080A59F0 @ =gUnk_03000FF0 + ldrh r0, [r0, #2] + cmp r0, #2 + beq _080A5A02 + cmp r0, #2 + bgt _080A59F4 + cmp r0, #1 + beq _080A5A0A + b _080A5A0C + .align 2, 0 +_080A59EC: .4byte gUnk_02000080 +_080A59F0: .4byte gUnk_03000FF0 +_080A59F4: + cmp r0, #0x40 + beq _080A59FE + cmp r0, #0x80 + beq _080A5A06 + b _080A5A0C +_080A59FE: + movs r2, #0 + b _080A5A0C +_080A5A02: + cmp r2, #0 + bne _080A5A10 +_080A5A06: + movs r2, #1 + b _080A5A0C +_080A5A0A: + movs r3, #1 +_080A5A0C: + cmp r3, #0 + beq _080A5A3C +_080A5A10: + movs r0, #0xff + strh r0, [r1, #8] + cmp r2, #0 + bne _080A5A2E + movs r0, #8 + movs r1, #0 + bl sub_08050318 + movs r0, #2 + bl sub_080A7114 + movs r0, #0x6a + bl sub_080A3268 + b _080A5A52 +_080A5A2E: + movs r0, #3 + bl sub_080A7114 + movs r0, #0x6c + bl sub_080A3268 + b _080A5A52 +_080A5A3C: + ldrb r0, [r1, #3] + cmp r0, r2 + beq _080A5A52 + strb r2, [r1, #3] + movs r0, #0 + adds r1, r2, #0 + bl sub_08052418 + movs r0, #0x69 + bl sub_080A3268 +_080A5A52: + pop {pc} + + thumb_func_start sub_080A5A54 +sub_080A5A54: @ 0x080A5A54 + push {lr} + movs r0, #0 + bl sub_0807CDA4 + adds r1, r0, #0 + cmp r1, #0 + beq _080A5A8A + cmp r1, #0 + bgt _080A5A70 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _080A5A76 + b _080A5A8A +_080A5A70: + cmp r1, #1 + beq _080A5A84 + b _080A5A8A +_080A5A76: + movs r0, #9 + movs r1, #0 + bl sub_08050318 + ldr r1, _080A5A8C @ =gUnk_02000080 + movs r0, #0x3c + strh r0, [r1, #8] +_080A5A84: + movs r0, #3 + bl sub_080A7114 +_080A5A8A: + pop {pc} + .align 2, 0 +_080A5A8C: .4byte gUnk_02000080 + + thumb_func_start sub_080A5A90 +sub_080A5A90: @ 0x080A5A90 + push {lr} + ldr r2, _080A5AA4 @ =gUnk_02000080 + ldrh r0, [r2, #8] + cmp r0, #0 + beq _080A5AA8 + cmp r0, #0xff + beq _080A5AC0 + subs r0, #1 + strh r0, [r2, #8] + b _080A5AD2 + .align 2, 0 +_080A5AA4: .4byte gUnk_02000080 +_080A5AA8: + ldr r0, _080A5ABC @ =gUnk_03000FF0 + ldrh r1, [r0, #2] + movs r0, #0xb + ands r0, r1 + cmp r0, #0 + beq _080A5AD2 + movs r0, #0xff + strh r0, [r2, #8] + b _080A5AD2 + .align 2, 0 +_080A5ABC: .4byte gUnk_03000FF0 +_080A5AC0: + ldr r0, _080A5AD4 @ =gUnk_02034490 + ldrb r0, [r0, #1] + movs r1, #1 + cmp r0, #0xa + bne _080A5ACC + movs r1, #2 +_080A5ACC: + adds r0, r1, #0 + bl sub_080A4E84 +_080A5AD2: + pop {pc} + .align 2, 0 +_080A5AD4: .4byte gUnk_02034490 + + thumb_func_start sub_080A5AD8 +sub_080A5AD8: @ 0x080A5AD8 + push {lr} + ldr r1, _080A5AEC @ =gUnk_08128D24 + ldr r0, _080A5AF0 @ =gUnk_02000080 + ldrb r0, [r0, #5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_080A5AEC: .4byte gUnk_08128D24 +_080A5AF0: .4byte gUnk_02000080 + + thumb_func_start sub_080A5AF4 +sub_080A5AF4: @ 0x080A5AF4 + push {r4, lr} + ldr r0, _080A5B18 @ =gUnk_02000080 + movs r4, #0 + strb r4, [r0, #3] + movs r0, #2 + movs r1, #0 + bl sub_08052418 + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + cmp r0, #0 + bne _080A5B24 + ldr r1, _080A5B1C @ =gUnk_03000F50 + ldr r0, _080A5B20 @ =0x0000FFFC + strh r0, [r1, #0x18] + b _080A5B28 + .align 2, 0 +_080A5B18: .4byte gUnk_02000080 +_080A5B1C: .4byte gUnk_03000F50 +_080A5B20: .4byte 0x0000FFFC +_080A5B24: + ldr r0, _080A5B30 @ =gUnk_03000F50 + strh r4, [r0, #0x18] +_080A5B28: + movs r0, #1 + bl sub_080A7114 + pop {r4, pc} + .align 2, 0 +_080A5B30: .4byte gUnk_03000F50 + + thumb_func_start sub_080A5B34 +sub_080A5B34: @ 0x080A5B34 + push {r4, r5, r6, lr} + bl sub_080A51F4 + cmp r0, #0 + beq _080A5BB6 + ldr r1, _080A5B58 @ =gUnk_02000080 + ldrb r4, [r1, #3] + movs r5, #0 + ldr r0, _080A5B5C @ =gUnk_03000FF0 + ldrh r0, [r0, #2] + adds r6, r1, #0 + cmp r0, #2 + beq _080A5B6C + cmp r0, #2 + bgt _080A5B60 + cmp r0, #1 + beq _080A5B74 + b _080A5B76 + .align 2, 0 +_080A5B58: .4byte gUnk_02000080 +_080A5B5C: .4byte gUnk_03000FF0 +_080A5B60: + cmp r0, #0x10 + beq _080A5B70 + cmp r0, #0x20 + bne _080A5B76 + movs r4, #0 + b _080A5B76 +_080A5B6C: + cmp r4, #0 + bne _080A5B74 +_080A5B70: + movs r4, #1 + b _080A5B76 +_080A5B74: + movs r5, #1 +_080A5B76: + adds r1, r6, #0 + ldrb r0, [r1, #3] + cmp r0, r4 + beq _080A5B8E + strb r4, [r1, #3] + movs r0, #2 + adds r1, r4, #0 + bl sub_08052418 + movs r0, #0x69 + bl sub_080A3268 +_080A5B8E: + cmp r5, #0 + beq _080A5BB6 + cmp r4, #0 + bne _080A5BAA + movs r0, #7 + movs r1, #0x20 + bl sub_08050054 + movs r0, #0x3c + strh r0, [r6, #8] + movs r0, #2 + bl sub_080A7114 + b _080A5BB6 +_080A5BAA: + movs r0, #0x6c + bl sub_080A3268 + movs r0, #2 + bl sub_080A4E84 +_080A5BB6: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080A5BB8 +sub_080A5BB8: @ 0x080A5BB8 + push {lr} + ldr r0, _080A5BE4 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080A5BE2 + bl sub_08050384 + ldr r1, _080A5BE8 @ =gUnk_03001000 + ldrb r0, [r1, #1] + movs r0, #1 + strb r0, [r1, #1] + movs r0, #6 + movs r1, #8 + bl sub_08050054 + movs r0, #2 + bl sub_080A4E84 + ldr r1, _080A5BEC @ =gUnk_02034490 + movs r0, #0x10 + strb r0, [r1, #0x16] +_080A5BE2: + pop {pc} + .align 2, 0 +_080A5BE4: .4byte gUnk_03000FD0 +_080A5BE8: .4byte gUnk_03001000 +_080A5BEC: .4byte gUnk_02034490 + + thumb_func_start sub_080A5BF0 +sub_080A5BF0: @ 0x080A5BF0 + push {r4, r5, lr} + ldr r1, _080A5C30 @ =gUnk_08128D30 + ldr r0, _080A5C34 @ =gUnk_02000080 + ldrb r0, [r0, #5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + bl sub_080A5D1C + ldr r0, _080A5C38 @ =gUnk_03001000 + ldrh r0, [r0, #0xc] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _080A5C2E + ldr r4, _080A5C3C @ =gUnk_02017830 + ldrh r5, [r4] + adds r0, r4, #2 + adds r1, r4, #0 + movs r2, #0xe + bl sub_0801D66C + strh r5, [r4, #0xe] + ldr r2, _080A5C40 @ =gUnk_0200B644 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #5 + orrs r0, r1 + str r0, [r2] +_080A5C2E: + pop {r4, r5, pc} + .align 2, 0 +_080A5C30: .4byte gUnk_08128D30 +_080A5C34: .4byte gUnk_02000080 +_080A5C38: .4byte gUnk_03001000 +_080A5C3C: .4byte gUnk_02017830 +_080A5C40: .4byte gUnk_0200B644 + + thumb_func_start sub_080A5C44 +sub_080A5C44: @ 0x080A5C44 + push {r4, lr} + ldr r1, _080A5C88 @ =gUnk_02000080 + ldr r0, _080A5C8C @ =gUnk_08128D38 + str r0, [r1, #0xc] + ldrb r0, [r1, #3] + bl sub_080A5CFC + movs r0, #0x81 + bl sub_0801D7EC + ldr r4, _080A5C90 @ =gUnk_02033A90 + ldrb r0, [r4, #3] + movs r1, #1 + bl sub_080A6FB4 + movs r0, #1 + bl sub_080A7114 + ldrb r1, [r4, #3] + lsls r1, r1, #1 + ldr r0, _080A5C94 @ =gUnk_08128D43 + adds r1, r1, r0 + ldr r2, _080A5C98 @ =gUnk_03000F50 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r3, [r2, #0x16] + adds r0, r0, r3 + strh r0, [r2, #0x16] + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r1, [r2, #0x18] + adds r0, r0, r1 + strh r0, [r2, #0x18] + pop {r4, pc} + .align 2, 0 +_080A5C88: .4byte gUnk_02000080 +_080A5C8C: .4byte gUnk_08128D38 +_080A5C90: .4byte gUnk_02033A90 +_080A5C94: .4byte gUnk_08128D43 +_080A5C98: .4byte gUnk_03000F50 + + thumb_func_start sub_080A5C9C +sub_080A5C9C: @ 0x080A5C9C + push {lr} + bl sub_080A51F4 + cmp r0, #0 + beq _080A5CFA + ldr r0, _080A5CC4 @ =gUnk_02033A90 + ldrb r0, [r0, #3] + lsls r0, r0, #2 + ldr r1, _080A5CC8 @ =gUnk_080C9C6C + adds r3, r0, r1 + ldr r1, _080A5CCC @ =gUnk_02000080 + ldrb r2, [r1, #3] + ldr r0, _080A5CD0 @ =gUnk_03000FF0 + ldrh r0, [r0, #2] + cmp r0, #0x40 + beq _080A5CD4 + cmp r0, #0x80 + beq _080A5CDC + b _080A5CE6 + .align 2, 0 +_080A5CC4: .4byte gUnk_02033A90 +_080A5CC8: .4byte gUnk_080C9C6C +_080A5CCC: .4byte gUnk_02000080 +_080A5CD0: .4byte gUnk_03000FF0 +_080A5CD4: + cmp r2, #0 + ble _080A5CE6 + subs r2, #1 + b _080A5CE6 +_080A5CDC: + ldrb r0, [r3] + subs r0, #1 + cmp r0, r2 + ble _080A5CE6 + adds r2, #1 +_080A5CE6: + ldrb r0, [r1, #3] + cmp r0, r2 + beq _080A5CFA + strb r2, [r1, #3] + adds r0, r2, #0 + bl sub_080A5CFC + movs r0, #0x69 + bl sub_080A3268 +_080A5CFA: + pop {pc} + + thumb_func_start sub_080A5CFC +sub_080A5CFC: @ 0x080A5CFC + push {r4, lr} + adds r4, r0, #0 + bl sub_0801DDA0 + bl sub_0801DD88 + ldr r1, _080A5D18 @ =gUnk_02019EE0 + movs r2, #0x80 + lsls r2, r2, #3 + adds r0, r4, #0 + bl sub_0801DBA0 + pop {r4, pc} + .align 2, 0 +_080A5D18: .4byte gUnk_02019EE0 + + thumb_func_start sub_080A5D1C +sub_080A5D1C: @ 0x080A5D1C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, _080A5E98 @ =gUnk_02033A90 + ldrb r0, [r0, #3] + lsls r0, r0, #2 + ldr r1, _080A5E9C @ =gUnk_080C9C6C + adds r7, r0, r1 + ldr r1, _080A5EA0 @ =gUnk_08128D3C + ldrb r0, [r7] + adds r0, r0, r1 + ldrb r6, [r0] + bl sub_0801DB94 + mov r8, r0 + ldr r5, _080A5EA4 @ =gUnk_03001010 + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r5, #4] + movs r0, #0 + strh r0, [r5, #6] + strh r0, [r5, #8] + movs r0, #0x34 + strh r0, [r5] + ldr r0, _080A5EA8 @ =gUnk_02000080 + ldrb r1, [r0, #3] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r6, r0 + strh r0, [r5, #2] + ldr r1, _080A5EAC @ =gUnk_03001000 + mov sl, r1 + ldrh r1, [r1, #0xc] + movs r0, #0x10 + ands r0, r1 + movs r1, #0x74 + cmp r0, #0 + bne _080A5D70 + movs r1, #0x75 +_080A5D70: + ldr r0, _080A5EB0 @ =0x000001FB + bl sub_080ADA14 + movs r0, #0x20 + mov sb, r0 + mov r1, sb + strh r1, [r5] + mov r1, r8 + lsls r0, r1, #1 + add r0, r8 + lsls r0, r0, #2 + adds r0, r6, r0 + strh r0, [r5, #2] + mov r0, sl + ldrh r1, [r0, #0xc] + mov r0, sb + ands r0, r1 + movs r1, #0x79 + cmp r0, #0 + beq _080A5D9A + movs r1, #0x78 +_080A5D9A: + ldr r0, _080A5EB0 @ =0x000001FB + bl sub_080ADA14 + movs r0, #0x7e + strh r0, [r5, #2] + movs r0, #0x87 + lsls r0, r0, #7 + strh r0, [r5, #8] + bl sub_080527CC + cmp r0, #0 + beq _080A5DCC + movs r0, #0x18 + strh r0, [r5] + ldr r0, _080A5EB4 @ =gUnk_080FDFD8 + movs r1, #0xa0 + lsls r1, r1, #1 + adds r0, r0, r1 + ldr r0, [r0] + ldrb r4, [r0] + movs r0, #0xa2 + lsls r0, r0, #1 + adds r1, r4, #0 + bl sub_080ADA14 +_080A5DCC: + bl sub_08052764 + cmp r0, #0 + beq _080A5DEE + movs r0, #0x2e + strh r0, [r5] + ldr r0, _080A5EB4 @ =gUnk_080FDFD8 + movs r1, #0xa4 + lsls r1, r1, #1 + adds r0, r0, r1 + ldr r0, [r0] + ldrb r4, [r0] + movs r0, #0xa2 + lsls r0, r0, #1 + adds r1, r4, #0 + bl sub_080ADA14 +_080A5DEE: + bl sub_0805279C + cmp r0, #0 + beq _080A5E48 + movs r0, #0x45 + strh r0, [r5] + movs r0, #0xe0 + lsls r0, r0, #2 + strh r0, [r5, #8] + ldr r1, _080A5EB4 @ =gUnk_080FDFD8 + movs r0, #0xa2 + lsls r0, r0, #1 + adds r1, r1, r0 + ldr r1, [r1] + ldrb r4, [r1] + adds r1, r4, #0 + bl sub_080ADA14 + bl sub_080A5F24 + cmp r0, #0 + beq _080A5E48 + movs r0, #0 + strh r0, [r5, #8] + movs r0, #0x46 + strh r0, [r5] + ldrb r1, [r7, #1] + ldrb r0, [r7, #2] + subs r1, r1, r0 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r6, r0 + strh r0, [r5, #2] + mov r0, sl + ldrh r1, [r0, #0xc] + mov r0, sb + ands r0, r1 + movs r1, #0x7b + cmp r0, #0 + beq _080A5E42 + movs r1, #0x7a +_080A5E42: + ldr r0, _080A5EB0 @ =0x000001FB + bl sub_080ADA14 +_080A5E48: + ldr r1, _080A5EA4 @ =gUnk_03001010 + movs r0, #0 + strh r0, [r1, #8] + movs r0, #0x34 + strh r0, [r1] + strh r6, [r1, #2] + ldrb r0, [r7, #1] + adds r4, r0, #0 + adds r4, #0x82 + movs r5, #0 + ldrb r0, [r7] + cmp r5, r0 + bhs _080A5E7C + adds r6, r1, #0 +_080A5E64: + ldr r0, _080A5EB0 @ =0x000001FB + adds r1, r4, #0 + bl sub_080ADA14 + subs r4, #1 + ldrh r0, [r6, #2] + adds r0, #0xc + strh r0, [r6, #2] + adds r5, #1 + ldrb r1, [r7] + cmp r5, r1 + blo _080A5E64 +_080A5E7C: + ldr r5, _080A5EB8 @ =gUnk_02019EE0 + ldrb r0, [r5] + cmp r0, #0 + beq _080A5F14 + ldr r7, _080A5EA4 @ =gUnk_03001010 + ldr r6, _080A5EBC @ =gUnk_03000F50 +_080A5E88: + ldrb r0, [r5] + cmp r0, #2 + beq _080A5EDC + cmp r0, #2 + bgt _080A5EC0 + cmp r0, #1 + beq _080A5ECA + b _080A5EEE + .align 2, 0 +_080A5E98: .4byte gUnk_02033A90 +_080A5E9C: .4byte gUnk_080C9C6C +_080A5EA0: .4byte gUnk_08128D3C +_080A5EA4: .4byte gUnk_03001010 +_080A5EA8: .4byte gUnk_02000080 +_080A5EAC: .4byte gUnk_03001000 +_080A5EB0: .4byte 0x000001FB +_080A5EB4: .4byte gUnk_080FDFD8 +_080A5EB8: .4byte gUnk_02019EE0 +_080A5EBC: .4byte gUnk_03000F50 +_080A5EC0: + cmp r0, #3 + beq _080A5EE0 + cmp r0, #4 + beq _080A5EE4 + b _080A5EEE +_080A5ECA: + movs r4, #0x7d + ldr r0, _080A5ED8 @ =gUnk_02000080 + ldrb r0, [r0, #3] + cmp r8, r0 + beq _080A5EF0 + movs r4, #0x7e + b _080A5EF0 + .align 2, 0 +_080A5ED8: .4byte gUnk_02000080 +_080A5EDC: + movs r4, #0x80 + b _080A5EF0 +_080A5EE0: + movs r4, #0x81 + b _080A5EF0 +_080A5EE4: + bl sub_080A5F24 + movs r4, #0x7f + cmp r0, #0 + bne _080A5EF0 +_080A5EEE: + movs r4, #0xff +_080A5EF0: + ldrb r0, [r5, #1] + adds r0, #0x50 + ldrh r1, [r6, #0x16] + subs r0, r0, r1 + strh r0, [r7] + ldrb r0, [r5, #2] + adds r0, #0x10 + ldrh r1, [r6, #0x18] + subs r0, r0, r1 + strh r0, [r7, #2] + ldr r0, _080A5F20 @ =0x000001FB + adds r1, r4, #0 + bl sub_080ADA14 + adds r5, #3 + ldrb r0, [r5] + cmp r0, #0 + bne _080A5E88 +_080A5F14: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A5F20: .4byte 0x000001FB + + thumb_func_start sub_080A5F24 +sub_080A5F24: @ 0x080A5F24 + push {r4, lr} + movs r4, #1 + ldr r0, _080A5F44 @ =gUnk_02033A90 + ldrb r0, [r0, #3] + cmp r0, #6 + bne _080A5F40 + movs r0, #0x8c + lsls r0, r0, #4 + movs r1, #0x7b + bl sub_0807CB10 + cmp r0, #0 + beq _080A5F40 + movs r4, #0 +_080A5F40: + adds r0, r4, #0 + pop {r4, pc} + .align 2, 0 +_080A5F44: .4byte gUnk_02033A90 + + thumb_func_start sub_080A5F48 +sub_080A5F48: @ 0x080A5F48 + push {r4, r5, lr} + adds r4, r0, #0 + cmp r4, #0x1f + bhi _080A5F5C + cmp r4, #0x1c + blo _080A5F5C + ldr r0, _080A5F9C @ =gUnk_02002A40 + adds r0, r0, r4 + adds r0, #0x9a + ldrb r4, [r0] +_080A5F5C: + lsls r0, r1, #5 + ldr r1, _080A5FA0 @ =0x06010000 + adds r5, r0, r1 + ldr r1, _080A5FA4 @ =gUnk_080FDFD8 + lsls r0, r4, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldrb r1, [r0] + ldr r3, _080A5FA8 @ =gUnk_08003DD4 + lsls r1, r1, #2 + ldr r0, [r3, #4] + adds r0, r0, r1 + ldr r2, _080A5FAC @ =0x040000D4 + ldrh r1, [r0, #2] + lsls r1, r1, #5 + ldr r0, [r3, #8] + adds r0, r0, r1 + str r0, [r2] + str r5, [r2, #4] + ldr r0, _080A5FB0 @ =0x84000040 + str r0, [r2, #8] + ldr r0, [r2, #8] + movs r0, #1 + rsbs r0, r0, #0 + cmp r4, #7 + blo _080A5FBE + cmp r4, #8 + bhi _080A5FB4 + ldr r0, _080A5F9C @ =gUnk_02002A40 + adds r0, #0xac + b _080A5FBC + .align 2, 0 +_080A5F9C: .4byte gUnk_02002A40 +_080A5FA0: .4byte 0x06010000 +_080A5FA4: .4byte gUnk_080FDFD8 +_080A5FA8: .4byte gUnk_08003DD4 +_080A5FAC: .4byte 0x040000D4 +_080A5FB0: .4byte 0x84000040 +_080A5FB4: + cmp r4, #0xa + bhi _080A5FBE + ldr r0, _080A5FF8 @ =gUnk_02002A40 + adds r0, #0xad +_080A5FBC: + ldrb r0, [r0] +_080A5FBE: + cmp r0, #0 + blt _080A5FF6 + movs r1, #0xa + bl Div + adds r4, r1, #0 + cmp r0, #9 + ble _080A5FD0 + movs r0, #9 +_080A5FD0: + ldr r1, _080A5FFC @ =0x040000D4 + lsls r0, r0, #5 + ldr r2, _080A6000 @ =gUnk_085C4620 + adds r0, r0, r2 + str r0, [r1] + str r5, [r1, #4] + ldr r3, _080A6004 @ =0x84000008 + str r3, [r1, #8] + ldr r0, [r1, #8] + adds r0, r4, #0 + adds r0, #0xa + lsls r0, r0, #5 + adds r0, r0, r2 + str r0, [r1] + adds r0, r5, #0 + adds r0, #0x20 + str r0, [r1, #4] + str r3, [r1, #8] + ldr r0, [r1, #8] +_080A5FF6: + pop {r4, r5, pc} + .align 2, 0 +_080A5FF8: .4byte gUnk_02002A40 +_080A5FFC: .4byte 0x040000D4 +_080A6000: .4byte gUnk_085C4620 +_080A6004: .4byte 0x84000008 + + thumb_func_start sub_080A6008 +sub_080A6008: @ 0x080A6008 + push {lr} + ldr r1, _080A601C @ =gUnk_08128D58 + ldr r0, _080A6020 @ =gUnk_02000080 + ldrb r0, [r0, #5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_080A601C: .4byte gUnk_08128D58 +_080A6020: .4byte gUnk_02000080 + + thumb_func_start sub_080A6024 +sub_080A6024: @ 0x080A6024 + push {lr} + ldr r0, _080A6040 @ =gUnk_08128D60 + bl sub_080A70AC + movs r0, #0 + bl sub_0801E738 + bl sub_080A4398 + movs r0, #1 + bl sub_080A7114 + pop {pc} + .align 2, 0 +_080A6040: .4byte gUnk_08128D60 + + thumb_func_start sub_080A6044 +sub_080A6044: @ 0x080A6044 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + bl sub_080A51F4 + cmp r0, #0 + beq _080A60C2 + ldr r0, _080A60CC @ =gUnk_02000080 + ldr r1, _080A60D0 @ =gUnk_08128D51 + str r1, [r0, #0xc] + ldr r1, _080A60D4 @ =gUnk_03001010 + movs r0, #0 + strh r0, [r1, #4] + strh r0, [r1, #6] + movs r5, #0 + movs r4, #0 + ldr r0, _080A60D8 @ =gUnk_02002A40 + movs r2, #0x8c + lsls r2, r2, #1 + adds r3, r0, r2 + ldrb r2, [r3] + cmp r2, #0 + beq _080A60C2 + adds r6, r1, #0 + movs r1, #0 + mov sb, r1 + adds r7, r0, #0 + mov r8, r3 +_080A607E: + movs r1, #3 + ands r1, r5 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #4 + adds r0, #0x2b + strh r0, [r6] + lsrs r1, r5, #2 + lsls r0, r1, #3 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, #0x34 + strh r0, [r6, #2] + ldr r3, _080A60DC @ =0x0000012B + adds r0, r7, r3 + adds r0, r4, r0 + ldrb r1, [r0] + ldr r0, _080A60CC @ =gUnk_02000080 + mov r3, sb + strb r3, [r0, #1] + adds r0, r2, #0 + bl sub_080A42E0 + adds r5, #1 + cmp r5, #0xa + bhi _080A60C2 + adds r4, #1 + cmp r4, #0x11 + bhi _080A60C2 + mov r1, r8 + adds r0, r4, r1 + ldrb r2, [r0] + cmp r2, #0 + bne _080A607E +_080A60C2: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A60CC: .4byte gUnk_02000080 +_080A60D0: .4byte gUnk_08128D51 +_080A60D4: .4byte gUnk_03001010 +_080A60D8: .4byte gUnk_02002A40 +_080A60DC: .4byte 0x0000012B + + thumb_func_start sub_080A60E0 +sub_080A60E0: @ 0x080A60E0 + push {r4, lr} + ldr r1, _080A6100 @ =gUnk_08128DB0 + ldr r4, _080A6104 @ =gUnk_02000080 + ldrb r0, [r4, #5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + bl sub_080A617C + ldrb r0, [r4, #3] + bl sub_080A7040 + pop {r4, pc} + .align 2, 0 +_080A6100: .4byte gUnk_08128DB0 +_080A6104: .4byte gUnk_02000080 + + thumb_func_start sub_080A6108 +sub_080A6108: @ 0x080A6108 + push {lr} + ldr r0, _080A6120 @ =gUnk_02000080 + ldr r1, _080A6124 @ =gUnk_08128DB8 + str r1, [r0, #0xc] + ldr r0, _080A6128 @ =gUnk_08128DBC + bl sub_080A70AC + movs r0, #1 + bl sub_080A7114 + pop {pc} + .align 2, 0 +_080A6120: .4byte gUnk_02000080 +_080A6124: .4byte gUnk_08128DB8 +_080A6128: .4byte gUnk_08128DBC + + thumb_func_start sub_080A612C +sub_080A612C: @ 0x080A612C + push {lr} + bl sub_080A51F4 + cmp r0, #0 + beq _080A6178 + ldr r1, _080A614C @ =gUnk_02000080 + ldrb r2, [r1, #3] + ldr r0, _080A6150 @ =gUnk_03000FF0 + ldrh r0, [r0, #2] + cmp r0, #0x10 + beq _080A6154 + cmp r0, #0x20 + bne _080A6156 + subs r2, #1 + b _080A6156 + .align 2, 0 +_080A614C: .4byte gUnk_02000080 +_080A6150: .4byte gUnk_03000FF0 +_080A6154: + adds r2, #1 +_080A6156: + adds r3, r2, #0 + adds r3, #8 + adds r0, r3, #0 + cmp r3, #0 + bge _080A6164 + adds r0, r2, #0 + adds r0, #0xf +_080A6164: + asrs r2, r0, #3 + lsls r0, r2, #3 + subs r2, r3, r0 + ldrb r0, [r1, #3] + cmp r0, r2 + beq _080A6178 + strb r2, [r1, #3] + movs r0, #0x69 + bl sub_080A3268 +_080A6178: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080A617C +sub_080A617C: @ 0x080A617C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r6, _080A6260 @ =gUnk_03001010 + movs r0, #0 + strh r0, [r6, #4] + strh r0, [r6, #6] + movs r7, #0xc0 + lsls r7, r7, #4 + strh r7, [r6, #8] + movs r0, #0x2f + mov r8, r0 + mov r2, r8 + strh r2, [r6, #2] + ldr r4, _080A6264 @ =gUnk_02000080 + ldrb r1, [r4, #3] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #2 + subs r0, r0, r1 + adds r0, #0x1a + strh r0, [r6] + ldr r0, _080A6268 @ =gUnk_03001000 + ldrh r1, [r0, #0xc] + movs r0, #0x20 + ands r0, r1 + movs r1, #9 + cmp r0, #0 + beq _080A61B8 + movs r1, #8 +_080A61B8: + movs r5, #0xfe + lsls r5, r5, #1 + adds r0, r5, #0 + bl sub_080ADA14 + ldrb r0, [r4, #3] + lsls r0, r0, #3 + ldr r1, _080A626C @ =gUnk_08128D70 + adds r4, r0, r1 + ldrb r0, [r4] + bl sub_0807CA84 + cmp r0, #0 + beq _080A621C + strh r7, [r6, #8] + movs r0, #0xcc + strh r0, [r6] + movs r0, #0x88 + strh r0, [r6, #2] + adds r0, r5, #0 + movs r1, #0xb + bl sub_080ADA14 + movs r0, #0x30 + strh r0, [r6] + movs r0, #0x6c + strh r0, [r6, #2] + ldrb r0, [r4, #1] + lsls r0, r0, #0xc + movs r2, #0xd8 + lsls r2, r2, #4 + adds r1, r2, #0 + orrs r0, r1 + strh r0, [r6, #8] + ldrb r1, [r4, #2] + adds r0, r5, #0 + bl sub_080ADA14 + ldrb r0, [r4, #1] + lsls r0, r0, #0xc + orrs r0, r7 + strh r0, [r6, #8] + movs r0, #0x78 + strh r0, [r6] + movs r0, #0x68 + strh r0, [r6, #2] + adds r0, r5, #0 + movs r1, #0xc + bl sub_080ADA14 +_080A621C: + mov r0, r8 + strh r0, [r6, #2] + movs r5, #0 + adds r7, r6, #0 + movs r6, #0x18 +_080A6226: + lsls r1, r5, #3 + ldr r0, _080A626C @ =gUnk_08128D70 + adds r4, r1, r0 + ldrb r0, [r4] + bl sub_0807CA84 + cmp r0, #0 + beq _080A6250 + ldrb r0, [r4, #1] + lsls r0, r0, #0xc + movs r2, #0xc0 + lsls r2, r2, #4 + adds r1, r2, #0 + orrs r0, r1 + strh r0, [r7, #8] + strh r6, [r7] + movs r0, #0xfe + lsls r0, r0, #1 + movs r1, #0xa + bl sub_080ADA14 +_080A6250: + adds r6, #0x1b + adds r5, #1 + cmp r5, #7 + bls _080A6226 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A6260: .4byte gUnk_03001010 +_080A6264: .4byte gUnk_02000080 +_080A6268: .4byte gUnk_03001000 +_080A626C: .4byte gUnk_08128D70 + + thumb_func_start sub_080A6270 +sub_080A6270: @ 0x080A6270 + push {lr} + ldr r1, _080A6288 @ =gUnk_08128DCC + ldr r0, _080A628C @ =gUnk_02000080 + ldrb r0, [r0, #5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + bl sub_080A6378 + pop {pc} + .align 2, 0 +_080A6288: .4byte gUnk_08128DCC +_080A628C: .4byte gUnk_02000080 + + thumb_func_start sub_080A6290 +sub_080A6290: @ 0x080A6290 + push {r4, lr} + ldr r0, _080A62C4 @ =gUnk_08128DD8 + bl sub_080A70AC + ldr r4, _080A62C8 @ =gUnk_02000080 + ldr r0, _080A62CC @ =gUnk_08128DD4 + str r0, [r4, #0xc] + movs r0, #0x81 + bl sub_0801D7EC + ldr r1, _080A62D0 @ =gUnk_03000F50 + ldr r0, _080A62D4 @ =0x0000FFFC + strh r0, [r1, #0x18] + strh r0, [r1, #0x24] + ldr r2, _080A62D8 @ =gUnk_02002A40 + ldr r0, [r2, #0x40] + ldr r1, _080A62DC @ =0x00010780 + orrs r0, r1 + str r0, [r2, #0x40] + bl sub_080A6F40 + strh r0, [r4, #0x10] + movs r0, #1 + strb r0, [r4, #5] + pop {r4, pc} + .align 2, 0 +_080A62C4: .4byte gUnk_08128DD8 +_080A62C8: .4byte gUnk_02000080 +_080A62CC: .4byte gUnk_08128DD4 +_080A62D0: .4byte gUnk_03000F50 +_080A62D4: .4byte 0x0000FFFC +_080A62D8: .4byte gUnk_02002A40 +_080A62DC: .4byte 0x00010780 + + thumb_func_start sub_080A62E0 +sub_080A62E0: @ 0x080A62E0 + push {r4, lr} + bl sub_080A51F4 + cmp r0, #0 + beq _080A6372 + ldr r0, _080A6310 @ =gUnk_02000080 + ldrb r3, [r0, #3] + lsls r1, r3, #3 + ldr r0, _080A6314 @ =gUnk_08128DE8 + adds r1, r1, r0 + movs r4, #1 + rsbs r4, r4, #0 + ldr r0, _080A6318 @ =gUnk_03000FF0 + ldrh r2, [r0, #2] + cmp r2, #0x20 + beq _080A634E + cmp r2, #0x20 + bgt _080A631C + cmp r2, #1 + beq _080A6326 + cmp r2, #0x10 + beq _080A6354 + b _080A635A + .align 2, 0 +_080A6310: .4byte gUnk_02000080 +_080A6314: .4byte gUnk_08128DE8 +_080A6318: .4byte gUnk_03000FF0 +_080A631C: + cmp r2, #0x40 + beq _080A6344 + cmp r2, #0x80 + beq _080A634A + b _080A635A +_080A6326: + ldr r0, _080A6340 @ =gUnk_02002A40 + lsls r2, r3 + ldr r0, [r0, #0x40] + ands r0, r2 + cmp r0, #0 + beq _080A635A + movs r0, #0x6a + bl sub_080A3268 + movs r0, #6 + bl sub_080A4E84 + b _080A635A + .align 2, 0 +_080A6340: .4byte gUnk_02002A40 +_080A6344: + ldrb r0, [r1] + lsls r0, r0, #0x1b + b _080A6358 +_080A634A: + ldrh r0, [r1] + b _080A6356 +_080A634E: + ldrb r0, [r1, #2] + lsls r0, r0, #0x1b + b _080A6358 +_080A6354: + ldrh r0, [r1, #2] +_080A6356: + lsls r0, r0, #0x16 +_080A6358: + lsrs r4, r0, #0x1b +_080A635A: + cmp r4, #0 + blt _080A6368 + ldr r0, _080A6374 @ =gUnk_02000080 + strb r4, [r0, #3] + movs r0, #0x69 + bl sub_080A3268 +_080A6368: + ldr r0, _080A6374 @ =gUnk_02000080 + ldrb r0, [r0, #3] + movs r1, #0 + bl sub_080A6FB4 +_080A6372: + pop {r4, pc} + .align 2, 0 +_080A6374: .4byte gUnk_02000080 + + thumb_func_start sub_080A6378 +sub_080A6378: @ 0x080A6378 + push {r4, r5, r6, lr} + ldr r0, _080A6420 @ =gUnk_02000080 + adds r4, r0, #0 + adds r4, #0x2c + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + movs r6, #0x20 + ands r0, r6 + cmp r0, #0 + beq _080A6392 + bl sub_080A6438 +_080A6392: + ldr r5, _080A6424 @ =gUnk_03001010 + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r5, #4] + movs r0, #0 + strh r0, [r5, #6] + movs r0, #0xe0 + lsls r0, r0, #7 + strh r0, [r5, #8] + ldrb r1, [r4] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + bne _080A63EA + ldr r4, _080A6428 @ =gUnk_030010A0 + ldrh r1, [r4, #0x20] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #5 + movs r1, #0xf9 + lsls r1, r1, #4 + bl __divsi3 + adds r0, #0x28 + strh r0, [r5] + ldrh r0, [r4, #0x22] + lsls r0, r0, #7 + movs r1, #0xc6 + lsls r1, r1, #4 + bl __divsi3 + adds r0, #0xc + strh r0, [r5, #2] + ldr r0, _080A642C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #8 + ands r0, r1 + movs r1, #0x59 + cmp r0, #0 + beq _080A63E4 + movs r1, #0x5a +_080A63E4: + ldr r0, _080A6430 @ =0x000001FB + bl sub_080ADA14 +_080A63EA: + ldr r3, _080A6420 @ =gUnk_02000080 + ldrb r0, [r3, #3] + lsls r0, r0, #3 + ldr r1, _080A6434 @ =gUnk_08128DE8 + adds r0, r0, r1 + ldr r2, _080A6424 @ =gUnk_03001010 + ldrb r1, [r0, #6] + strh r1, [r2] + ldrb r0, [r0, #7] + strh r0, [r2, #2] + ldrb r0, [r3, #3] + lsls r2, r0, #1 + adds r2, r2, r0 + adds r2, #0x26 + adds r3, #0x2c + ldrb r1, [r3] + lsrs r1, r1, #4 + movs r0, #1 + bics r0, r1 + adds r1, r2, r0 + ldr r0, _080A6430 @ =0x000001FB + bl sub_080ADA14 + bl sub_080A6498 + pop {r4, r5, r6, pc} + .align 2, 0 +_080A6420: .4byte gUnk_02000080 +_080A6424: .4byte gUnk_03001010 +_080A6428: .4byte gUnk_030010A0 +_080A642C: .4byte gUnk_03003F80 +_080A6430: .4byte 0x000001FB +_080A6434: .4byte gUnk_08128DE8 + + thumb_func_start sub_080A6438 +sub_080A6438: @ 0x080A6438 + push {r4, r5, r6, r7, lr} + ldr r2, _080A6484 @ =gUnk_03001010 + movs r1, #0 + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r2, #4] + strh r1, [r2, #6] + strh r1, [r2, #8] + ldr r0, _080A6488 @ =gUnk_02002A40 + ldr r1, _080A648C @ =gUnk_02000080 + ldrh r0, [r0, #0x20] + ldrh r5, [r1, #0x10] + ands r5, r0 + ldr r4, _080A6490 @ =gUnk_08128F58 + movs r6, #0 + ldrb r0, [r4] + cmp r0, #0 + beq _080A6482 + adds r7, r2, #0 +_080A645E: + movs r0, #1 + lsls r0, r6 + ands r0, r5 + cmp r0, #0 + beq _080A6478 + ldrb r0, [r4, #1] + strh r0, [r7] + ldrb r0, [r4, #2] + strh r0, [r7, #2] + ldrb r1, [r4] + ldr r0, _080A6494 @ =0x000001FB + bl sub_080ADA14 +_080A6478: + adds r6, #1 + adds r4, #8 + ldrb r0, [r4] + cmp r0, #0 + bne _080A645E +_080A6482: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A6484: .4byte gUnk_03001010 +_080A6488: .4byte gUnk_02002A40 +_080A648C: .4byte gUnk_02000080 +_080A6490: .4byte gUnk_08128F58 +_080A6494: .4byte 0x000001FB + + thumb_func_start sub_080A6498 +sub_080A6498: @ 0x080A6498 + push {r4, r5, r6, r7, lr} + ldr r0, _080A64E4 @ =gUnk_03001010 + movs r2, #0 + movs r1, #0x80 + lsls r1, r1, #4 + strh r1, [r0, #4] + strh r2, [r0, #6] + strh r2, [r0, #8] + movs r4, #0 + ldr r7, _080A64E8 @ =gUnk_02002A40 + adds r6, r0, #0 + movs r5, #0x28 +_080A64B0: + movs r1, #1 + lsls r1, r4 + ldr r0, [r7, #0x40] + ands r0, r1 + cmp r0, #0 + bne _080A64D2 + lsls r1, r4, #3 + ldr r0, _080A64EC @ =gUnk_08128DE8 + adds r1, r1, r0 + ldrb r0, [r1, #6] + strh r0, [r6] + ldrb r0, [r1, #7] + strh r0, [r6, #2] + ldr r0, _080A64F0 @ =0x000001FB + adds r1, r5, #0 + bl sub_080ADA14 +_080A64D2: + adds r5, #3 + adds r4, #1 + cmp r4, #0x10 + bls _080A64B0 + ldr r0, _080A64F4 @ =gUnk_03000F50 + adds r0, #0x62 + ldr r1, _080A64F8 @ =0x00003D3F + strh r1, [r0] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A64E4: .4byte gUnk_03001010 +_080A64E8: .4byte gUnk_02002A40 +_080A64EC: .4byte gUnk_08128DE8 +_080A64F0: .4byte 0x000001FB +_080A64F4: .4byte gUnk_03000F50 +_080A64F8: .4byte 0x00003D3F + + thumb_func_start sub_080A64FC +sub_080A64FC: @ 0x080A64FC + push {r4, lr} + bl sub_080AD90C + ldr r1, _080A652C @ =gUnk_08128E70 + ldr r4, _080A6530 @ =gUnk_02000080 + ldrb r0, [r4, #5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + adds r4, #0x2c + ldrb r1, [r4] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080A6522 + bl sub_080A6438 +_080A6522: + bl sub_080A6498 + bl sub_080AD918 + pop {r4, pc} + .align 2, 0 +_080A652C: .4byte gUnk_08128E70 +_080A6530: .4byte gUnk_02000080 + + thumb_func_start sub_080A6534 +sub_080A6534: @ 0x080A6534 + push {r4, lr} + bl sub_080A4D34 + movs r0, #4 + bl sub_080A4DB8 + bl sub_080A6290 + ldr r2, _080A6590 @ =gUnk_03000F50 + ldrh r1, [r2] + ldr r0, _080A6594 @ =0x0000F7FF + ands r0, r1 + movs r4, #0 + strh r0, [r2] + ldr r0, _080A6598 @ =gUnk_020176A0 + adds r0, #0xa2 + ldrh r1, [r0] + movs r0, #0 + bl sub_0801D79C + ldr r1, _080A659C @ =gUnk_08128F4C + ldr r0, _080A65A0 @ =gUnk_02032EC0 + ldrb r0, [r0, #3] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r2, [r0] + ldr r3, _080A65A4 @ =gUnk_02002A40 + ldrh r1, [r3, #0x20] + adds r0, r2, #0 + orrs r0, r1 + strh r0, [r3, #0x20] + ldr r1, _080A65A8 @ =gUnk_02000080 + ldrh r0, [r1, #0x10] + ands r2, r0 + strh r2, [r1, #0x12] + strh r4, [r1, #0x10] + movs r0, #0x3c + strh r0, [r1, #8] + movs r0, #1 + bl sub_080A7114 + movs r0, #4 + movs r1, #8 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_080A6590: .4byte gUnk_03000F50 +_080A6594: .4byte 0x0000F7FF +_080A6598: .4byte gUnk_020176A0 +_080A659C: .4byte gUnk_08128F4C +_080A65A0: .4byte gUnk_02032EC0 +_080A65A4: .4byte gUnk_02002A40 +_080A65A8: .4byte gUnk_02000080 + + thumb_func_start sub_080A65AC +sub_080A65AC: @ 0x080A65AC + push {r4, lr} + ldr r0, _080A65E4 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080A6600 + ldr r4, _080A65E8 @ =gUnk_02000080 + adds r1, r4, #0 + adds r1, #0x2c + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldrh r0, [r4, #8] + cmp r0, #0 + beq _080A65EC + cmp r0, #0x1e + bne _080A65DA + ldrh r0, [r4, #0x12] + strh r0, [r4, #0x10] + movs r0, #0x20 + strb r0, [r1] + adds r0, #0xe3 + bl sub_080A3268 +_080A65DA: + ldrh r0, [r4, #8] + subs r0, #1 + strh r0, [r4, #8] + b _080A6600 + .align 2, 0 +_080A65E4: .4byte gUnk_03000FD0 +_080A65E8: .4byte gUnk_02000080 +_080A65EC: + ldr r0, _080A6604 @ =gUnk_03000FF0 + ldrh r0, [r0, #2] + cmp r0, #1 + blt _080A6600 + cmp r0, #2 + ble _080A65FC + cmp r0, #8 + bne _080A6600 +_080A65FC: + bl sub_080A71DC +_080A6600: + pop {r4, pc} + .align 2, 0 +_080A6604: .4byte gUnk_03000FF0 + + thumb_func_start sub_080A6608 +sub_080A6608: @ 0x080A6608 + push {r4, lr} + ldr r1, _080A6640 @ =gUnk_08128E78 + ldr r4, _080A6644 @ =gUnk_02000080 + ldrb r0, [r4, #5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + ldrb r1, [r4, #3] + lsls r1, r1, #3 + ldr r0, _080A6648 @ =gUnk_08128E94 + adds r1, r1, r0 + ldr r2, _080A664C @ =gUnk_03000F50 + movs r0, #5 + ldrsb r0, [r1, r0] + rsbs r0, r0, #0 + strh r0, [r2, #0x18] + ldrb r1, [r1, #6] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + ldrh r0, [r4, #0xa] + subs r0, r0, r1 + strh r0, [r2, #0x24] + bl sub_080A66D0 + pop {r4, pc} + .align 2, 0 +_080A6640: .4byte gUnk_08128E78 +_080A6644: .4byte gUnk_02000080 +_080A6648: .4byte gUnk_08128E94 +_080A664C: .4byte gUnk_03000F50 + + thumb_func_start sub_080A6650 +sub_080A6650: @ 0x080A6650 + push {lr} + ldr r0, _080A6670 @ =gUnk_08128E84 + bl sub_080A70AC + ldr r0, _080A6674 @ =gUnk_02034490 + ldrb r0, [r0, #6] + ldr r1, _080A6678 @ =gUnk_02000080 + strb r0, [r1, #3] + bl sub_080A67C4 + bl sub_080A68D4 + movs r0, #1 + bl sub_080A7114 + pop {pc} + .align 2, 0 +_080A6670: .4byte gUnk_08128E84 +_080A6674: .4byte gUnk_02034490 +_080A6678: .4byte gUnk_02000080 + + thumb_func_start sub_080A667C +sub_080A667C: @ 0x080A667C + push {lr} + ldr r2, _080A669C @ =gUnk_02000080 + ldr r0, _080A66A0 @ =gUnk_08128E80 + str r0, [r2, #0xc] + ldrb r0, [r2, #3] + lsls r0, r0, #3 + ldr r1, _080A66A4 @ =gUnk_08128E94 + adds r3, r0, r1 + ldrh r1, [r2, #0xa] + ldr r0, _080A66A8 @ =gUnk_03000FF0 + ldrh r0, [r0] + cmp r0, #0x40 + beq _080A66AC + cmp r0, #0x80 + beq _080A66B4 + b _080A66C2 + .align 2, 0 +_080A669C: .4byte gUnk_02000080 +_080A66A0: .4byte gUnk_08128E80 +_080A66A4: .4byte gUnk_08128E94 +_080A66A8: .4byte gUnk_03000FF0 +_080A66AC: + cmp r1, #0 + beq _080A66C2 + subs r1, #2 + b _080A66C2 +_080A66B4: + ldrb r0, [r3, #2] + cmp r0, r1 + bls _080A66BC + adds r1, #2 +_080A66BC: + cmp r0, r1 + bhs _080A66C2 + adds r1, r0, #0 +_080A66C2: + strh r1, [r2, #0xa] + ldrb r0, [r2, #3] + movs r1, #0 + bl sub_080A6FB4 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080A66D0 +sub_080A66D0: @ 0x080A66D0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r6, _080A677C @ =gUnk_03001010 + movs r0, #0 + strh r0, [r6, #4] + strh r0, [r6, #6] + movs r0, #0x78 + strh r0, [r6] + ldr r4, _080A6780 @ =gUnk_02000080 + ldrb r0, [r4, #3] + lsls r0, r0, #3 + ldr r1, _080A6784 @ =gUnk_08128E94 + adds r5, r0, r1 + adds r1, r4, #0 + adds r1, #0x2c + ldrb r0, [r1] + adds r2, r0, #1 + strb r2, [r1] + adds r0, r4, #0 + adds r0, #0x2b + ldrb r0, [r0] + cmp r0, #1 + beq _080A6738 + movs r0, #0x10 + ands r2, r0 + cmp r2, #0 + beq _080A6738 + movs r0, #0x80 + lsls r0, r0, #4 + strh r0, [r6, #8] + ldrh r0, [r4, #0xa] + cmp r0, #0 + beq _080A6724 + movs r0, #0xc + strh r0, [r6, #2] + ldr r0, _080A6788 @ =0x000001FB + movs r1, #0x71 + bl sub_080ADA14 +_080A6724: + ldrb r0, [r5, #2] + ldrh r4, [r4, #0xa] + cmp r0, r4 + bls _080A6738 + movs r0, #0x84 + strh r0, [r6, #2] + ldr r0, _080A6788 @ =0x000001FB + movs r1, #0x72 + bl sub_080ADA14 +_080A6738: + ldrb r0, [r5, #7] + mov sl, r0 + ldrb r5, [r5, #3] + mov sb, r5 + ldr r1, _080A6780 @ =gUnk_02000080 + ldrh r0, [r1, #0xa] + mov r8, r0 + ldr r2, _080A677C @ =gUnk_03001010 + movs r0, #0 + strh r0, [r2, #4] + strh r0, [r2, #6] + movs r0, #0xc0 + lsls r0, r0, #4 + strh r0, [r2, #8] + adds r1, #0x2c + ldrb r1, [r1] + movs r0, #0x20 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + ldr r4, _080A678C @ =gUnk_02019EE0 + ldrh r0, [r4, #2] + cmp r0, #0 + beq _080A67BA + rsbs r5, r6, #0 + orrs r5, r6 + adds r7, r2, #0 +_080A676E: + movs r1, #0 + ldrb r0, [r4] + cmp r0, #1 + bne _080A6790 + lsrs r1, r5, #0x1f + b _080A6796 + .align 2, 0 +_080A677C: .4byte gUnk_03001010 +_080A6780: .4byte gUnk_02000080 +_080A6784: .4byte gUnk_08128E94 +_080A6788: .4byte 0x000001FB +_080A678C: .4byte gUnk_02019EE0 +_080A6790: + cmp r6, #0 + bne _080A6796 + movs r1, #1 +_080A6796: + cmp r1, #0 + beq _080A67B2 + ldrh r0, [r4, #4] + add r0, sl + strh r0, [r7] + ldrh r0, [r4, #6] + add r0, sb + mov r1, r8 + subs r0, r0, r1 + strh r0, [r7, #2] + ldrh r0, [r4, #2] + ldrb r1, [r4, #1] + bl sub_080ADA14 +_080A67B2: + adds r4, #8 + ldrh r0, [r4, #2] + cmp r0, #0 + bne _080A676E +_080A67BA: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080A67C4 +sub_080A67C4: @ 0x080A67C4 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r0, #0xba + bl sub_0801D714 + adds r5, r4, #0 + adds r5, #0x5f + cmp r4, #0xb + beq _080A67F4 + cmp r4, #0xb + bhi _080A67E0 + cmp r4, #9 + beq _080A67E6 + b _080A6822 +_080A67E0: + cmp r4, #0xe + beq _080A6802 + b _080A6822 +_080A67E6: + movs r0, #0x18 + bl sub_0807CC30 + cmp r0, #0 + beq _080A6822 + movs r5, #0x70 + b _080A6822 +_080A67F4: + movs r0, #0xe + bl sub_0801E7F4 + cmp r0, #0 + beq _080A6822 + movs r5, #0x71 + b _080A6822 +_080A6802: + ldr r1, _080A68AC @ =gUnk_02032EC0 + adds r0, r1, #0 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #8 + bne _080A6822 + adds r0, r1, #0 + adds r0, #0x21 + ldrb r0, [r0] + movs r1, #3 + bl __modsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r5, r0, #0 + adds r5, #0x72 +_080A6822: + adds r0, r5, #0 + bl sub_0801D7EC + lsls r1, r4, #3 + ldr r0, _080A68B0 @ =gUnk_08128E94 + adds r4, r1, r0 + ldr r0, _080A68B4 @ =gUnk_03003DE4 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + ldr r1, _080A68B8 @ =gUnk_02017AA0 + adds r1, r0, r1 + ldr r2, _080A68BC @ =0x00001E0A + adds r0, r2, #0 + movs r2, #7 +_080A6842: + strh r0, [r1] + adds r1, #2 + subs r2, #1 + cmp r2, #0 + bge _080A6842 + movs r2, #8 + movs r0, #5 + ldrsb r0, [r4, r0] + ldrb r3, [r4, #4] + adds r0, r0, r3 + ldr r5, _080A68B4 @ =gUnk_03003DE4 + ldr r6, _080A68B8 @ =gUnk_02017AA0 + cmp r2, r0 + bge _080A6874 + ldr r7, _080A68C0 @ =0x00001E0B + adds r3, r7, #0 +_080A6862: + strh r3, [r1] + adds r1, #2 + adds r2, #1 + movs r0, #5 + ldrsb r0, [r4, r0] + ldrb r7, [r4, #4] + adds r0, r0, r7 + cmp r2, r0 + blt _080A6862 +_080A6874: + cmp r2, #0x9f + bgt _080A6886 + ldr r3, _080A68BC @ =0x00001E0A + adds r0, r3, #0 +_080A687C: + strh r0, [r1] + adds r1, #2 + adds r2, #1 + cmp r2, #0x9f + ble _080A687C +_080A6886: + ldrb r1, [r5] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + adds r0, r0, r6 + ldr r1, _080A68C4 @ =0x0400000E + ldr r2, _080A68C8 @ =0xA2600001 + bl sub_0805622C + ldr r1, _080A68CC @ =gUnk_02000080 + ldrb r0, [r4, #2] + lsrs r0, r0, #1 + strh r0, [r1, #0xa] + ldr r0, _080A68D0 @ =gUnk_02019EE0 + movs r1, #0x80 + lsls r1, r1, #3 + bl sub_0801D630 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A68AC: .4byte gUnk_02032EC0 +_080A68B0: .4byte gUnk_08128E94 +_080A68B4: .4byte gUnk_03003DE4 +_080A68B8: .4byte gUnk_02017AA0 +_080A68BC: .4byte 0x00001E0A +_080A68C0: .4byte 0x00001E0B +_080A68C4: .4byte 0x0400000E +_080A68C8: .4byte 0xA2600001 +_080A68CC: .4byte gUnk_02000080 +_080A68D0: .4byte gUnk_02019EE0 + + thumb_func_start sub_080A68D4 +sub_080A68D4: @ 0x080A68D4 + push {r4, r5, r6, lr} + ldr r0, _080A690C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #8 + ands r0, r1 + movs r4, #0x64 + cmp r0, #0 + beq _080A68E6 + movs r4, #0x65 +_080A68E6: + ldr r1, _080A6910 @ =gUnk_030010A0 + ldrh r0, [r1, #0x20] + ldrh r1, [r1, #0x22] + ldr r2, _080A6914 @ =0x000001FB + movs r3, #0x80 + lsls r3, r3, #1 + adds r3, r4, r3 + bl sub_080A698C + bl sub_080A6F40 + adds r6, r0, #0 + ldr r0, _080A6918 @ =gUnk_02002A40 + ldrh r0, [r0, #0x20] + ands r6, r0 + ldr r4, _080A691C @ =gUnk_08128F58 + movs r5, #0 + b _080A693A + .align 2, 0 +_080A690C: .4byte gUnk_03003F80 +_080A6910: .4byte gUnk_030010A0 +_080A6914: .4byte 0x000001FB +_080A6918: .4byte gUnk_02002A40 +_080A691C: .4byte gUnk_08128F58 +_080A6920: + movs r0, #1 + lsls r0, r5 + ands r0, r6 + cmp r0, #0 + beq _080A6936 + ldrh r0, [r4, #4] + ldrh r1, [r4, #6] + ldrb r3, [r4, #3] + ldr r2, _080A6980 @ =0x000001FB + bl sub_080A698C +_080A6936: + adds r5, #1 + adds r4, #8 +_080A693A: + ldrb r0, [r4] + cmp r0, #0 + bne _080A6920 + movs r5, #0xa +_080A6942: + adds r0, r5, #0 + bl sub_0801E7F4 + cmp r0, #0 + beq _080A6976 + adds r0, r5, #0 + bl sub_0801E810 + cmp r0, #0 + bne _080A6976 + ldr r1, _080A6984 @ =gUnk_080C9CBC + lsls r0, r5, #3 + adds r0, r0, r1 + ldrb r3, [r0, #7] + ldrb r0, [r0, #4] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _080A6988 @ =gUnk_080FE320 + adds r1, r1, r0 + ldrh r0, [r1, #0xc] + ldrh r1, [r1, #0xe] + adds r3, #0x64 + ldr r2, _080A6980 @ =0x000001FB + bl sub_080A698C +_080A6976: + adds r5, #1 + cmp r5, #0x64 + bls _080A6942 + pop {r4, r5, r6, pc} + .align 2, 0 +_080A6980: .4byte 0x000001FB +_080A6984: .4byte gUnk_080C9CBC +_080A6988: .4byte gUnk_080FE320 + + thumb_func_start sub_080A698C +sub_080A698C: @ 0x080A698C + push {r4, r5, r6, lr} + adds r6, r2, #0 + adds r5, r3, #0 + bl sub_080A69E0 + adds r4, r0, #0 + cmp r4, #0 + ble _080A69D4 + ldr r2, _080A69D8 @ =gUnk_02000080 + adds r2, #0x2d + ldrb r0, [r2] + lsls r0, r0, #3 + ldr r3, _080A69DC @ =gUnk_02019EE0 + adds r0, r0, r3 + lsrs r1, r5, #8 + strb r1, [r0] + ldrb r0, [r2] + lsls r0, r0, #3 + adds r0, r0, r3 + strb r5, [r0, #1] + ldrb r0, [r2] + lsls r0, r0, #3 + adds r0, r0, r3 + strh r6, [r0, #2] + ldrb r0, [r2] + lsls r0, r0, #3 + adds r0, r0, r3 + strh r4, [r0, #4] + ldrb r0, [r2] + lsls r0, r0, #3 + adds r0, r0, r3 + asrs r1, r4, #0x10 + strh r1, [r0, #6] + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] +_080A69D4: + pop {r4, r5, r6, pc} + .align 2, 0 +_080A69D8: .4byte gUnk_02000080 +_080A69DC: .4byte gUnk_02019EE0 + + thumb_func_start sub_080A69E0 +sub_080A69E0: @ 0x080A69E0 + push {r4, r5, r6, r7, lr} + sub sp, #4 + adds r7, r0, #0 + adds r6, r1, #0 + orrs r0, r6 + cmp r0, #0 + beq _080A6A06 + adds r0, r7, #0 + adds r1, r6, #0 + bl sub_080A6A80 + adds r3, r0, #0 + cmp r3, #0 + beq _080A6A06 + ldr r0, _080A6A0C @ =gUnk_02000080 + ldrb r1, [r0, #3] + ldrb r2, [r3, #4] + cmp r1, r2 + beq _080A6A10 +_080A6A06: + movs r0, #1 + rsbs r0, r0, #0 + b _080A6A74 + .align 2, 0 +_080A6A0C: .4byte gUnk_02000080 +_080A6A10: + ldrb r1, [r0, #3] + cmp r1, #7 + beq _080A6A26 + cmp r1, #7 + bgt _080A6A20 + cmp r1, #4 + beq _080A6A26 + b _080A6A48 +_080A6A20: + cmp r1, #0xf + beq _080A6A44 + b _080A6A48 +_080A6A26: + ldrb r0, [r0, #3] + movs r2, #7 + cmp r0, #4 + bne _080A6A30 + movs r2, #9 +_080A6A30: + ldr r1, _080A6A40 @ =gUnk_0811E214 + lsls r0, r2, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldrh r0, [r0, #2] + subs r6, r6, r0 + b _080A6A48 + .align 2, 0 +_080A6A40: .4byte gUnk_0811E214 +_080A6A44: + ldr r0, _080A6A78 @ =0xFFFFFEF8 + adds r7, r7, r0 +_080A6A48: + ldrb r0, [r3] + lsls r0, r0, #4 + subs r0, r7, r0 + movs r4, #0x64 + muls r0, r4, r0 + ldr r5, _080A6A7C @ =0x0000023A + adds r1, r5, #0 + str r3, [sp] + bl __divsi3 + adds r7, r0, #0 + ldr r3, [sp] + ldrb r0, [r3, #1] + lsls r0, r0, #4 + subs r0, r6, r0 + muls r0, r4, r0 + adds r1, r5, #0 + bl __divsi3 + adds r6, r0, #0 + lsls r0, r6, #0x10 + orrs r0, r7 +_080A6A74: + add sp, #4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A6A78: .4byte 0xFFFFFEF8 +_080A6A7C: .4byte 0x0000023A + + thumb_func_start sub_080A6A80 +sub_080A6A80: @ 0x080A6A80 + push {lr} + adds r3, r0, #0 + lsrs r3, r3, #4 + lsrs r1, r1, #4 + ldr r2, _080A6A8C @ =gUnk_08127F94 + b _080A6AAE + .align 2, 0 +_080A6A8C: .4byte gUnk_08127F94 +_080A6A90: + ldrb r0, [r2] + cmp r0, r3 + bhi _080A6AAC + ldrb r0, [r2, #2] + cmp r0, r3 + blo _080A6AAC + ldrb r0, [r2, #1] + cmp r0, r1 + bhi _080A6AAC + ldrb r0, [r2, #3] + cmp r0, r1 + blo _080A6AAC + adds r0, r2, #0 + b _080A6AB6 +_080A6AAC: + adds r2, #8 +_080A6AAE: + ldrb r0, [r2] + cmp r0, #0xff + bne _080A6A90 + movs r0, #0 +_080A6AB6: + pop {pc} + + thumb_func_start sub_080A6AB8 +sub_080A6AB8: @ 0x080A6AB8 + push {r4, lr} + bl sub_080AD90C + ldr r1, _080A6AF4 @ =gUnk_08128F1C + ldr r4, _080A6AF8 @ =gUnk_02000080 + ldrb r0, [r4, #5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + ldrb r1, [r4, #3] + lsls r1, r1, #3 + ldr r0, _080A6AFC @ =gUnk_08128E94 + adds r1, r1, r0 + ldr r2, _080A6B00 @ =gUnk_03000F50 + movs r0, #5 + ldrsb r0, [r1, r0] + rsbs r0, r0, #0 + strh r0, [r2, #0x18] + ldrb r1, [r1, #6] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + ldrh r0, [r4, #0xa] + subs r0, r0, r1 + strh r0, [r2, #0x24] + bl sub_080AD918 + pop {r4, pc} + .align 2, 0 +_080A6AF4: .4byte gUnk_08128F1C +_080A6AF8: .4byte gUnk_02000080 +_080A6AFC: .4byte gUnk_08128E94 +_080A6B00: .4byte gUnk_03000F50 + + thumb_func_start sub_080A6B04 +sub_080A6B04: @ 0x080A6B04 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + bl sub_080A4D34 + movs r0, #6 + bl sub_080A4DB8 + ldr r0, _080A6BF0 @ =gUnk_02022740 + ldrb r2, [r0, #3] + lsls r2, r2, #3 + ldr r0, _080A6BF4 @ =gUnk_080C9CBC + adds r2, r2, r0 + ldrb r1, [r2, #4] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080A6BF8 @ =gUnk_080FE320 + adds r0, r0, r1 + ldrb r2, [r2, #7] + mov r8, r2 + ldrh r6, [r0, #0xc] + ldrh r5, [r0, #0xe] + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_080A6A80 + ldrb r4, [r0, #4] + ldr r7, _080A6BFC @ =gUnk_02000080 + strb r4, [r7, #3] + adds r1, r7, #0 + adds r1, #0x2b + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080A67C4 + adds r0, r4, #0 + movs r1, #2 + bl sub_080A6FB4 + ldr r4, _080A6C00 @ =0x0000475F + movs r0, #0 + adds r1, r4, #0 + bl sub_0801D79C + movs r0, #0x5f + adds r1, r4, #0 + bl sub_0801D79C + ldr r0, _080A6C04 @ =0x00005001 + ldr r1, _080A6C08 @ =gUnk_02001A40 + movs r2, #0x80 + lsls r2, r2, #5 + bl sub_0801D5EC + ldr r0, _080A6C0C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #8 + ands r0, r1 + movs r2, #0x64 + cmp r0, #0 + beq _080A6B84 + movs r2, #0x65 +_080A6B84: + ldr r1, _080A6C10 @ =gUnk_030010A0 + ldrh r0, [r1, #0x20] + ldrh r1, [r1, #0x22] + ldr r4, _080A6C14 @ =0x000001FB + movs r3, #0x80 + lsls r3, r3, #1 + adds r3, r2, r3 + adds r2, r4, #0 + bl sub_080A698C + mov r3, r8 + adds r3, #0x64 + adds r0, r6, #0 + adds r1, r5, #0 + adds r2, r4, #0 + bl sub_080A698C + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_080A69E0 + asrs r5, r0, #0x10 + ldrb r0, [r7, #3] + lsls r0, r0, #3 + ldr r1, _080A6C18 @ =gUnk_08128E94 + adds r1, r0, r1 + movs r0, #0 + strh r0, [r7, #0xa] + ldrb r0, [r1, #2] + cmp r0, #0 + beq _080A6BD4 + adds r0, r5, #0 + subs r0, #0x3c + cmp r0, #0 + ble _080A6BD4 + ldrb r1, [r1, #2] + cmp r1, r0 + bge _080A6BD2 + adds r0, r1, #0 +_080A6BD2: + strh r0, [r7, #0xa] +_080A6BD4: + ldr r1, _080A6BFC @ =gUnk_02000080 + movs r0, #0x1e + strh r0, [r1, #8] + movs r0, #1 + bl sub_080A7114 + movs r0, #4 + movs r1, #8 + bl sub_08050054 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A6BF0: .4byte gUnk_02022740 +_080A6BF4: .4byte gUnk_080C9CBC +_080A6BF8: .4byte gUnk_080FE320 +_080A6BFC: .4byte gUnk_02000080 +_080A6C00: .4byte 0x0000475F +_080A6C04: .4byte 0x00005001 +_080A6C08: .4byte gUnk_02001A40 +_080A6C0C: .4byte gUnk_03003F80 +_080A6C10: .4byte gUnk_030010A0 +_080A6C14: .4byte 0x000001FB +_080A6C18: .4byte gUnk_08128E94 + + thumb_func_start sub_080A6C1C +sub_080A6C1C: @ 0x080A6C1C + push {lr} + ldr r0, _080A6C34 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080A6C6A + ldr r0, _080A6C38 @ =gUnk_02000080 + ldrh r0, [r0, #8] + cmp r0, #0 + beq _080A6C3C + cmp r0, #1 + beq _080A6C5C + b _080A6C62 + .align 2, 0 +_080A6C34: .4byte gUnk_03000FD0 +_080A6C38: .4byte gUnk_02000080 +_080A6C3C: + bl sub_080A66D0 + ldr r0, _080A6C58 @ =gUnk_03000FF0 + ldrh r0, [r0, #2] + cmp r0, #1 + blt _080A6C6A + cmp r0, #2 + ble _080A6C50 + cmp r0, #8 + bne _080A6C6A +_080A6C50: + bl sub_080A71DC + b _080A6C6A + .align 2, 0 +_080A6C58: .4byte gUnk_03000FF0 +_080A6C5C: + ldr r0, _080A6C6C @ =0x00000103 + bl sub_080A3268 +_080A6C62: + ldr r1, _080A6C70 @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] +_080A6C6A: + pop {pc} + .align 2, 0 +_080A6C6C: .4byte 0x00000103 +_080A6C70: .4byte gUnk_02000080 + + thumb_func_start sub_080A6C74 +sub_080A6C74: @ 0x080A6C74 + push {r4, lr} + bl sub_080AD90C + ldr r1, _080A6CA0 @ =gUnk_08128F24 + ldr r4, _080A6CA4 @ =gUnk_02000080 + ldrb r0, [r4, #5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + ldrb r0, [r4] + cmp r0, #0 + beq _080A6C94 + bl sub_080A6E70 +_080A6C94: + bl sub_080A6498 + bl sub_080AD918 + pop {r4, pc} + .align 2, 0 +_080A6CA0: .4byte gUnk_08128F24 +_080A6CA4: .4byte gUnk_02000080 + + thumb_func_start sub_080A6CA8 +sub_080A6CA8: @ 0x080A6CA8 + push {lr} + bl sub_080A4D34 + movs r0, #0xd + bl sub_080A4DB8 + bl sub_080A6290 + movs r0, #0 + bl sub_080A6D74 + ldr r1, _080A6CD4 @ =gUnk_02000080 + strb r0, [r1, #3] + movs r0, #1 + bl sub_080A7114 + movs r0, #4 + movs r1, #8 + bl sub_08050054 + pop {pc} + .align 2, 0 +_080A6CD4: .4byte gUnk_02000080 + + thumb_func_start sub_080A6CD8 +sub_080A6CD8: @ 0x080A6CD8 + push {r4, lr} + ldr r0, _080A6D08 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080A6D6E + ldr r1, _080A6D0C @ =gUnk_02000080 + movs r0, #1 + strb r0, [r1] + movs r4, #0 + ldr r0, _080A6D10 @ =gUnk_03000FF0 + ldrh r0, [r0, #2] + adds r2, r1, #0 + cmp r0, #0x10 + beq _080A6D34 + cmp r0, #0x10 + bgt _080A6D1A + cmp r0, #2 + beq _080A6D4C + cmp r0, #2 + bgt _080A6D14 + cmp r0, #1 + beq _080A6D38 + b _080A6D54 + .align 2, 0 +_080A6D08: .4byte gUnk_03000FD0 +_080A6D0C: .4byte gUnk_02000080 +_080A6D10: .4byte gUnk_03000FF0 +_080A6D14: + cmp r0, #8 + beq _080A6D38 + b _080A6D54 +_080A6D1A: + cmp r0, #0x40 + beq _080A6D2E + cmp r0, #0x40 + bgt _080A6D28 + cmp r0, #0x20 + beq _080A6D2E + b _080A6D54 +_080A6D28: + cmp r0, #0x80 + beq _080A6D34 + b _080A6D54 +_080A6D2E: + movs r4, #1 + rsbs r4, r4, #0 + b _080A6D58 +_080A6D34: + movs r4, #1 + b _080A6D58 +_080A6D38: + movs r0, #2 + strb r0, [r2] + bl sub_080A7114 + ldr r0, _080A6D48 @ =0x00000704 + bl sub_08056378 + b _080A6D54 + .align 2, 0 +_080A6D48: .4byte 0x00000704 +_080A6D4C: + movs r0, #3 + strb r0, [r1] + bl sub_080A7114 +_080A6D54: + cmp r4, #0 + beq _080A6D6E +_080A6D58: + adds r0, r4, #0 + bl sub_080A6D74 + ldr r1, _080A6D70 @ =gUnk_02000080 + ldrb r2, [r1, #3] + cmp r0, r2 + beq _080A6D6E + strb r0, [r1, #3] + movs r0, #0x69 + bl sub_080A3268 +_080A6D6E: + pop {r4, pc} + .align 2, 0 +_080A6D70: .4byte gUnk_02000080 + + thumb_func_start sub_080A6D74 +sub_080A6D74: @ 0x080A6D74 + push {r4, r5, lr} + adds r3, r0, #0 + ldr r0, _080A6DA4 @ =gUnk_02002A40 + ldr r0, [r0, #0x40] + lsrs r2, r0, #0x18 + ldr r0, _080A6DA8 @ =gUnk_02000080 + ldrb r1, [r0, #3] + cmp r3, #0 + bne _080A6DAC + movs r1, #0 + movs r0, #1 + ands r0, r2 + cmp r0, #0 + bne _080A6DC6 + movs r3, #1 +_080A6D92: + adds r1, #1 + cmp r1, #7 + bhi _080A6DC6 + adds r0, r3, #0 + lsls r0, r1 + ands r0, r2 + cmp r0, #0 + beq _080A6D92 + b _080A6DC6 + .align 2, 0 +_080A6DA4: .4byte gUnk_02002A40 +_080A6DA8: .4byte gUnk_02000080 +_080A6DAC: + cmp r2, #0 + beq _080A6DC6 + movs r4, #7 + movs r5, #1 +_080A6DB4: + adds r0, r1, r3 + adds r1, r0, #0 + adds r1, #8 + ands r1, r4 + adds r0, r5, #0 + lsls r0, r1 + ands r0, r2 + cmp r0, #0 + beq _080A6DB4 +_080A6DC6: + movs r0, #7 + ands r1, r0 + adds r0, r1, #0 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080A6DD0 +sub_080A6DD0: @ 0x080A6DD0 + push {lr} + bl sub_08056338 + cmp r0, #0 + beq _080A6DE0 + cmp r0, #1 + beq _080A6DF0 + b _080A6DF6 +_080A6DE0: + ldr r1, _080A6DEC @ =gUnk_02000080 + movs r0, #2 + strb r0, [r1] + movs r0, #3 + b _080A6DF2 + .align 2, 0 +_080A6DEC: .4byte gUnk_02000080 +_080A6DF0: + movs r0, #1 +_080A6DF2: + bl sub_080A7114 +_080A6DF6: + pop {pc} + + thumb_func_start sub_080A6DF8 +sub_080A6DF8: @ 0x080A6DF8 + push {lr} + ldr r0, _080A6E14 @ =gUnk_02000080 + ldrb r0, [r0] + cmp r0, #2 + bne _080A6E18 + movs r0, #4 + bl sub_080A7114 + movs r0, #5 + movs r1, #8 + bl sub_08050054 + b _080A6E3A + .align 2, 0 +_080A6E14: .4byte gUnk_02000080 +_080A6E18: + bl sub_080791D0 + ldr r0, _080A6E3C @ =gUnk_03001160 + adds r1, r0, #0 + adds r1, #0x58 + ldrb r1, [r1] + ldrh r2, [r0, #0x12] + bl sub_080042D0 + bl sub_080A71DC + ldr r1, _080A6E40 @ =gUnk_02034490 + movs r0, #0 + strb r0, [r1] + movs r0, #0x6c + bl sub_080A3268 +_080A6E3A: + pop {pc} + .align 2, 0 +_080A6E3C: .4byte gUnk_03001160 +_080A6E40: .4byte gUnk_02034490 + + thumb_func_start sub_080A6E44 +sub_080A6E44: @ 0x080A6E44 + push {lr} + ldr r0, _080A6E64 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080A6E60 + ldr r0, _080A6E68 @ =gUnk_02000080 + ldrb r1, [r0, #3] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080A6E6C @ =gUnk_08128024 + adds r0, r0, r1 + bl sub_080A71F4 +_080A6E60: + pop {pc} + .align 2, 0 +_080A6E64: .4byte gUnk_03000FD0 +_080A6E68: .4byte gUnk_02000080 +_080A6E6C: .4byte gUnk_08128024 + + thumb_func_start sub_080A6E70 +sub_080A6E70: @ 0x080A6E70 + push {r4, r5, lr} + ldr r1, _080A6ED0 @ =gUnk_03001010 + movs r0, #0 + strh r0, [r1, #4] + strh r0, [r1, #6] + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r1, #8] + ldr r1, _080A6ED4 @ =gUnk_02000080 + adds r4, r1, #0 + adds r4, #0x2c + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + ldrb r0, [r1, #3] + bl sub_080A6EE0 + ldrb r1, [r4] + movs r0, #0x10 + ands r0, r1 + movs r1, #0x5e + cmp r0, #0 + beq _080A6EA0 + movs r1, #0x5d +_080A6EA0: + ldr r0, _080A6ED8 @ =0x000001FB + bl sub_080ADA14 + movs r4, #0 + ldr r5, _080A6EDC @ =gUnk_02002A40 +_080A6EAA: + adds r0, r4, #0 + adds r0, #0x18 + movs r1, #1 + lsls r1, r0 + ldr r0, [r5, #0x40] + ands r0, r1 + cmp r0, #0 + beq _080A6EC8 + adds r0, r4, #0 + bl sub_080A6EE0 + ldr r0, _080A6ED8 @ =0x000001FB + movs r1, #0x5c + bl sub_080ADA14 +_080A6EC8: + adds r4, #1 + cmp r4, #7 + bls _080A6EAA + pop {r4, r5, pc} + .align 2, 0 +_080A6ED0: .4byte gUnk_03001010 +_080A6ED4: .4byte gUnk_02000080 +_080A6ED8: .4byte 0x000001FB +_080A6EDC: .4byte gUnk_02002A40 + + thumb_func_start sub_080A6EE0 +sub_080A6EE0: @ 0x080A6EE0 + push {r4, r5, r6, lr} + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _080A6F34 @ =gUnk_08128024 + adds r1, r1, r0 + ldrh r3, [r1, #6] + ldrh r4, [r1, #8] + ldr r0, _080A6F38 @ =gUnk_0811E214 + ldrb r2, [r1, #0xb] + lsls r2, r2, #2 + adds r2, r2, r0 + ldrb r1, [r1, #0xc] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #1 + ldr r1, [r2] + adds r1, r1, r0 + ldrh r0, [r1] + adds r3, r3, r0 + ldrh r0, [r1, #2] + adds r4, r4, r0 + ldr r6, _080A6F3C @ =gUnk_03001010 + lsls r0, r3, #2 + adds r0, r0, r3 + lsls r0, r0, #5 + movs r5, #0xf9 + lsls r5, r5, #4 + adds r1, r5, #0 + bl __divsi3 + adds r0, #0x28 + strh r0, [r6] + lsls r0, r4, #2 + adds r0, r0, r4 + lsls r0, r0, #5 + adds r1, r5, #0 + bl __divsi3 + adds r0, #0xc + strh r0, [r6, #2] + pop {r4, r5, r6, pc} + .align 2, 0 +_080A6F34: .4byte gUnk_08128024 +_080A6F38: .4byte gUnk_0811E214 +_080A6F3C: .4byte gUnk_03001010 + + thumb_func_start sub_080A6F40 +sub_080A6F40: @ 0x080A6F40 + push {r4, r5, r6, lr} + movs r5, #0 + ldr r4, _080A6F4C @ =gUnk_08128F38 + movs r6, #0 + b _080A6F60 + .align 2, 0 +_080A6F4C: .4byte gUnk_08128F38 +_080A6F50: + ldrb r0, [r4] + ldrb r1, [r4, #1] + bl sub_0807CB24 + lsls r0, r5 + orrs r6, r0 + adds r5, #1 + adds r4, #2 +_080A6F60: + ldrb r0, [r4] + cmp r0, #0 + bne _080A6F50 + mvns r0, r6 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080A6F6C +sub_080A6F6C: @ 0x080A6F6C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080A6FA4 @ =gUnk_02000080 + ldrh r0, [r1, #0x2e] + cmp r0, r4 + beq _080A6F9A + strh r4, [r1, #0x2e] + ldr r0, _080A6FA8 @ =gUnk_020350F0 + movs r1, #0x80 + lsls r1, r1, #1 + bl sub_0801D630 + movs r0, #0xff + ands r0, r4 + cmp r0, #0 + beq _080A6F94 + ldr r1, _080A6FAC @ =gUnk_08128FA8 + adds r0, r4, #0 + bl sub_0805F46C +_080A6F94: + ldr r1, _080A6FB0 @ =gUnk_03000F50 + movs r0, #1 + strh r0, [r1, #0xe] +_080A6F9A: + ldr r1, _080A6FB0 @ =gUnk_03000F50 + movs r0, #2 + strh r0, [r1, #0xc] + pop {r4, pc} + .align 2, 0 +_080A6FA4: .4byte gUnk_02000080 +_080A6FA8: .4byte gUnk_020350F0 +_080A6FAC: .4byte gUnk_08128FA8 +_080A6FB0: .4byte gUnk_03000F50 + + thumb_func_start sub_080A6FB4 +sub_080A6FB4: @ 0x080A6FB4 + push {r4, r5, lr} + adds r2, r0, #0 + movs r4, #0 + cmp r1, #1 + beq _080A6FF0 + cmp r1, #1 + blo _080A6FC8 + cmp r1, #2 + beq _080A6FD6 + b _080A6FFA +_080A6FC8: + ldr r0, _080A6FE4 @ =gUnk_02002A40 + movs r1, #1 + lsls r1, r2 + ldr r0, [r0, #0x40] + ands r0, r1 + cmp r0, #0 + beq _080A6FFA +_080A6FD6: + ldr r1, _080A6FE8 @ =gUnk_08127F94 + lsls r0, r2, #3 + adds r0, r0, r1 + ldrh r4, [r0, #6] + ldr r5, _080A6FEC @ =gUnk_08128FC0 + b _080A6FFA + .align 2, 0 +_080A6FE4: .4byte gUnk_02002A40 +_080A6FE8: .4byte gUnk_08127F94 +_080A6FEC: .4byte gUnk_08128FC0 +_080A6FF0: + ldr r1, _080A702C @ =gUnk_08128FF0 + lsls r0, r2, #1 + adds r0, r0, r1 + ldrh r4, [r0] + ldr r5, _080A7030 @ =gUnk_08128FD8 +_080A6FFA: + ldr r1, _080A7034 @ =gUnk_02000080 + ldrh r0, [r1, #0x2e] + cmp r0, r4 + beq _080A7024 + strh r4, [r1, #0x2e] + ldr r0, _080A7038 @ =gUnk_020350F0 + movs r1, #0x80 + lsls r1, r1, #1 + bl sub_0801D630 + movs r0, #0xff + ands r0, r4 + cmp r0, #0 + beq _080A701E + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0805F46C +_080A701E: + ldr r1, _080A703C @ =gUnk_03000F50 + movs r0, #1 + strh r0, [r1, #0xe] +_080A7024: + ldr r1, _080A703C @ =gUnk_03000F50 + movs r0, #2 + strh r0, [r1, #0xc] + pop {r4, r5, pc} + .align 2, 0 +_080A702C: .4byte gUnk_08128FF0 +_080A7030: .4byte gUnk_08128FD8 +_080A7034: .4byte gUnk_02000080 +_080A7038: .4byte gUnk_020350F0 +_080A703C: .4byte gUnk_03000F50 + + thumb_func_start sub_080A7040 +sub_080A7040: @ 0x080A7040 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r1, _080A7090 @ =gUnk_02000080 + ldrh r0, [r1, #0x2e] + cmp r0, r5 + beq _080A708C + strh r5, [r1, #0x2e] + ldr r4, _080A7094 @ =gUnk_02022130 + movs r1, #0xc0 + lsls r1, r1, #2 + adds r0, r4, #0 + bl sub_0801D630 + ldr r0, _080A7098 @ =0xFFFFFE00 + adds r4, r4, r0 + ldr r1, _080A709C @ =0x0600E000 + movs r2, #0x80 + lsls r2, r2, #4 + adds r0, r4, #0 + bl sub_0801D66C + ldr r1, _080A70A0 @ =gUnk_08128D70 + lsls r0, r5, #3 + adds r4, r0, r1 + ldrb r0, [r4] + bl sub_0807CA84 + cmp r0, #0 + beq _080A7082 + ldrh r0, [r4, #6] + ldr r1, _080A70A4 @ =gUnk_08129004 + bl sub_0805F46C +_080A7082: + ldr r0, _080A70A8 @ =gUnk_03000F50 + movs r1, #3 + strh r1, [r0, #0x18] + movs r1, #1 + strh r1, [r0, #0x1a] +_080A708C: + pop {r4, r5, pc} + .align 2, 0 +_080A7090: .4byte gUnk_02000080 +_080A7094: .4byte gUnk_02022130 +_080A7098: .4byte 0xFFFFFE00 +_080A709C: .4byte 0x0600E000 +_080A70A0: .4byte gUnk_08128D70 +_080A70A4: .4byte gUnk_08129004 +_080A70A8: .4byte gUnk_03000F50 + + thumb_func_start sub_080A70AC +sub_080A70AC: @ 0x080A70AC + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080A7110 @ =gUnk_0200AF34 + movs r1, #0xc0 + lsls r1, r1, #2 + adds r0, r4, #0 + bl sub_0801D630 + adds r2, r4, #0 + subs r2, #0x34 + movs r0, #0x7f + strb r0, [r2, #0x13] + strb r0, [r2, #0x14] + ldrb r0, [r5] + strh r0, [r2, #0x16] + movs r0, #1 + ldrsb r0, [r5, r0] + strh r0, [r2, #0x1c] + ldrb r1, [r5, #2] + subs r0, r4, #4 + strb r1, [r0] + ldrb r0, [r5, #3] + strh r0, [r2, #0x18] + movs r0, #4 + ldrsb r0, [r5, r0] + strh r0, [r2, #0x1e] + ldrb r1, [r5, #5] + subs r0, r4, #3 + strb r1, [r0] + ldrb r0, [r5, #6] + strh r0, [r2, #0x1a] + movs r0, #7 + ldrsb r0, [r5, r0] + strh r0, [r2, #0x20] + ldrb r0, [r5, #8] + subs r4, #2 + strb r0, [r4] + adds r5, #9 + movs r4, #1 + rsbs r4, r4, #0 +_080A70FC: + ldrb r0, [r5] + ldrb r1, [r5, #1] + bl sub_0801CA6C + adds r5, #2 + movs r0, #0 + ldrsb r0, [r5, r0] + cmp r0, r4 + bne _080A70FC + pop {r4, r5, pc} + .align 2, 0 +_080A7110: .4byte gUnk_0200AF34 + + thumb_func_start sub_080A7114 +sub_080A7114: @ 0x080A7114 + ldr r1, _080A7120 @ =gUnk_02000080 + movs r2, #0 + strb r0, [r1, #5] + strb r2, [r1, #6] + strb r2, [r1, #7] + bx lr + .align 2, 0 +_080A7120: .4byte gUnk_02000080 + + thumb_func_start sub_080A7124 +sub_080A7124: @ 0x080A7124 + push {lr} + ldr r0, _080A7134 @ =gUnk_02032EC0 + movs r1, #0xed + lsls r1, r1, #2 + bl sub_0801D630 + pop {pc} + .align 2, 0 +_080A7134: .4byte gUnk_02032EC0 + + thumb_func_start sub_080A7138 +sub_080A7138: @ 0x080A7138 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + ldr r4, _080A715C @ =gUnk_02032EC0 + ldrb r0, [r4] + cmp r0, #0 + bne _080A7164 + movs r1, #0xed + lsls r1, r1, #2 + adds r0, r4, #0 + bl sub_0801D630 + strb r5, [r4, #2] + strb r6, [r4, #3] + ldr r0, _080A7160 @ =gUnk_03001000 + ldrb r0, [r0, #4] + strb r0, [r4, #7] + b _080A716C + .align 2, 0 +_080A715C: .4byte gUnk_02032EC0 +_080A7160: .4byte gUnk_03001000 +_080A7164: + strb r5, [r4, #4] + strb r6, [r4, #5] + movs r0, #1 + strb r0, [r4] +_080A716C: + ldr r1, _080A7194 @ =gUnk_02032EC0 + movs r0, #0 + strb r0, [r1, #6] + ldr r0, _080A7198 @ =0x0000FFFF + strh r0, [r1, #8] + movs r4, #0 + movs r0, #0x20 + strh r0, [r1, #0xa] + ldr r1, _080A719C @ =gUnk_03001000 + movs r0, #7 + strb r0, [r1, #4] + movs r0, #5 + movs r1, #0x20 + bl sub_08050054 + ldr r0, _080A71A0 @ =gUnk_02018EB0 + strb r4, [r0] + strb r4, [r0, #1] + pop {r4, r5, r6, pc} + .align 2, 0 +_080A7194: .4byte gUnk_02032EC0 +_080A7198: .4byte 0x0000FFFF +_080A719C: .4byte gUnk_03001000 +_080A71A0: .4byte gUnk_02018EB0 + + thumb_func_start sub_080A71A4 +sub_080A71A4: @ 0x080A71A4 + push {r4, lr} + adds r4, r0, #0 + ldr r3, _080A71B4 @ =gUnk_02032EC0 + ldrb r0, [r3] + cmp r0, #0 + bne _080A71B8 + strb r2, [r3, #0xe] + b _080A71BA + .align 2, 0 +_080A71B4: .4byte gUnk_02032EC0 +_080A71B8: + strb r2, [r3, #0xf] +_080A71BA: + adds r0, r4, #0 + bl sub_080A7138 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A71C4 +sub_080A71C4: @ 0x080A71C4 + push {r4, r5, lr} + adds r4, r2, #0 + adds r5, r3, #0 + bl sub_080A7138 + ldr r0, _080A71D8 @ =gUnk_02032EC0 + strh r4, [r0, #8] + strh r5, [r0, #0xa] + pop {r4, r5, pc} + .align 2, 0 +_080A71D8: .4byte gUnk_02032EC0 + + thumb_func_start sub_080A71DC +sub_080A71DC: @ 0x080A71DC + push {lr} + ldr r1, _080A71F0 @ =gUnk_02032EC0 + movs r0, #3 + strb r0, [r1] + movs r0, #5 + movs r1, #0x20 + bl sub_08050054 + pop {pc} + .align 2, 0 +_080A71F0: .4byte gUnk_02032EC0 + + thumb_func_start sub_080A71F4 +sub_080A71F4: @ 0x080A71F4 + push {lr} + cmp r0, #0 + beq _080A71FE + bl sub_08080840 +_080A71FE: + bl sub_0805E89C + bl sub_0805E974 + bl sub_0805E89C + ldr r0, _080A7218 @ =gUnk_03001000 + movs r2, #0 + movs r1, #1 + strb r1, [r0, #3] + strb r2, [r0, #4] + pop {pc} + .align 2, 0 +_080A7218: .4byte gUnk_03001000 + + thumb_func_start sub_080A721C +sub_080A721C: @ 0x080A721C + push {lr} + ldr r0, _080A7248 @ =gUnk_02032EC0 + ldrb r1, [r0] + adds r2, r0, #0 + cmp r1, #2 + bhi _080A7238 + ldrb r3, [r2, #4] + cmp r3, #0 + beq _080A7238 + ldrb r0, [r2, #5] + movs r1, #0 + strb r0, [r2, #3] + strb r3, [r2, #2] + strb r1, [r2, #4] +_080A7238: + ldr r0, _080A724C @ =gUnk_0812901C + ldrb r1, [r2] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_080A7248: .4byte gUnk_02032EC0 +_080A724C: .4byte gUnk_0812901C + + thumb_func_start sub_080A7250 +sub_080A7250: @ 0x080A7250 + push {r4, lr} + ldr r0, _080A72E8 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080A72E4 + ldr r0, _080A72EC @ =gUnk_03000F50 + ldr r1, _080A72F0 @ =gUnk_03001020 + movs r2, #0x7c + bl sub_0801D66C + ldr r0, _080A72F4 @ =gUnk_020176A0 + ldr r1, _080A72F8 @ =gUnk_02024090 + movs r2, #0x80 + lsls r2, r2, #3 + bl sub_0801D66C + ldr r0, _080A72FC @ =gUnk_02024490 + ldr r4, _080A7300 @ =gUnk_02032F14 + movs r2, #0x85 + lsls r2, r2, #2 + adds r1, r4, #0 + bl sub_0801D66C + ldr r0, _080A7304 @ =gUnk_02001A00 + movs r2, #0x85 + lsls r2, r2, #2 + adds r1, r4, r2 + movs r2, #0x40 + bl sub_0801D66C + ldr r0, _080A7308 @ =gUnk_03000BF0 + adds r1, r4, #0 + subs r1, #0x38 + movs r2, #0x38 + bl sub_0801D66C + ldr r0, _080A730C @ =gUnk_03000420 + movs r2, #0x95 + lsls r2, r2, #2 + adds r1, r4, r2 + movs r2, #0x80 + lsls r2, r2, #1 + bl sub_0801D66C + ldr r0, _080A7310 @ =gUnk_02033280 + movs r2, #0xd5 + lsls r2, r2, #2 + adds r1, r4, r2 + movs r2, #0xc + bl sub_0801D66C + bl sub_0805E958 + adds r1, r4, #0 + subs r1, #0x54 + ldr r0, _080A7314 @ =gUnk_030010A0 + adds r0, #0x2f + ldrb r0, [r0] + strb r0, [r1, #0xd] + ldr r0, _080A7318 @ =gUnk_03003F80 + adds r0, #0x8b + ldrb r0, [r0] + strb r0, [r1, #0xc] + ldr r0, _080A731C @ =gUnk_02017654 + ldr r0, [r0] + str r0, [r1, #0x10] + ldr r0, _080A7320 @ =gUnk_02025EB0 + ldr r0, [r0] + str r0, [r1, #0x14] + ldr r0, _080A7324 @ =gUnk_0200B650 + ldr r0, [r0] + str r0, [r1, #0x18] + movs r0, #1 + strb r0, [r1] +_080A72E4: + pop {r4, pc} + .align 2, 0 +_080A72E8: .4byte gUnk_03000FD0 +_080A72EC: .4byte gUnk_03000F50 +_080A72F0: .4byte gUnk_03001020 +_080A72F4: .4byte gUnk_020176A0 +_080A72F8: .4byte gUnk_02024090 +_080A72FC: .4byte gUnk_02024490 +_080A7300: .4byte gUnk_02032F14 +_080A7304: .4byte gUnk_02001A00 +_080A7308: .4byte gUnk_03000BF0 +_080A730C: .4byte gUnk_03000420 +_080A7310: .4byte gUnk_02033280 +_080A7314: .4byte gUnk_030010A0 +_080A7318: .4byte gUnk_03003F80 +_080A731C: .4byte gUnk_02017654 +_080A7320: .4byte gUnk_02025EB0 +_080A7324: .4byte gUnk_0200B650 + + thumb_func_start sub_080A7328 +sub_080A7328: @ 0x080A7328 + push {r4, lr} + ldr r0, _080A7388 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080A7384 + bl sub_0805E89C + ldr r0, _080A738C @ =gUnk_02000080 + movs r1, #0x30 + bl sub_0801D630 + ldr r0, _080A7390 @ =gUnk_03000BF0 + movs r1, #0x38 + bl sub_0801D630 + ldr r0, _080A7394 @ =gUnk_03000420 + movs r1, #0x80 + lsls r1, r1, #1 + bl sub_0801D630 + ldr r4, _080A7398 @ =gUnk_02033280 + adds r0, r4, #0 + movs r1, #0xc + bl sub_0801D630 + movs r0, #8 + strb r0, [r4, #8] + movs r0, #1 + bl sub_0801DA90 + bl sub_08056418 + bl sub_080ADD30 + movs r0, #0 + bl sub_0801CFA8 + ldr r0, _080A739C @ =gUnk_02024490 + movs r2, #1 + strb r2, [r0] + ldr r1, _080A73A0 @ =gUnk_02032EC0 + movs r0, #2 + strb r0, [r1] + ldr r0, _080A73A4 @ =gUnk_030010A0 + adds r0, #0x30 + strb r2, [r0] +_080A7384: + pop {r4, pc} + .align 2, 0 +_080A7388: .4byte gUnk_03000FD0 +_080A738C: .4byte gUnk_02000080 +_080A7390: .4byte gUnk_03000BF0 +_080A7394: .4byte gUnk_03000420 +_080A7398: .4byte gUnk_02033280 +_080A739C: .4byte gUnk_02024490 +_080A73A0: .4byte gUnk_02032EC0 +_080A73A4: .4byte gUnk_030010A0 + + thumb_func_start sub_080A73A8 +sub_080A73A8: @ 0x080A73A8 + push {r4, r5, lr} + ldr r0, _080A7468 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + beq _080A73B4 + b _080A74BC +_080A73B4: + bl sub_0805E89C + bl sub_0805E974 + ldr r1, _080A746C @ =gUnk_02017654 + ldr r5, _080A7470 @ =gUnk_02032EC0 + ldr r0, [r5, #0x10] + str r0, [r1] + ldr r0, _080A7474 @ =gUnk_03003F80 + ldrb r1, [r5, #0xc] + adds r0, #0x8b + strb r1, [r0] + ldr r1, _080A7478 @ =gUnk_02025EB0 + ldr r0, [r5, #0x14] + str r0, [r1] + ldr r1, _080A747C @ =gUnk_0200B650 + ldr r0, [r5, #0x18] + str r0, [r1] + movs r1, #0xea + lsls r1, r1, #2 + adds r0, r5, r1 + ldr r1, _080A7480 @ =gUnk_02033280 + movs r2, #0xc + bl sub_0801D66C + movs r1, #0xaa + lsls r1, r1, #2 + adds r0, r5, r1 + ldr r1, _080A7484 @ =gUnk_03000420 + movs r2, #0x80 + lsls r2, r2, #1 + bl sub_0801D66C + movs r1, #0x9a + lsls r1, r1, #2 + adds r0, r5, r1 + ldr r1, _080A7488 @ =gUnk_02001A00 + movs r2, #0x40 + bl sub_0801D66C + adds r0, r5, #0 + adds r0, #0x54 + ldr r1, _080A748C @ =gUnk_02024490 + movs r2, #0x85 + lsls r2, r2, #2 + bl sub_0801D66C + adds r0, r5, #0 + adds r0, #0x1c + ldr r4, _080A7490 @ =gUnk_03000BF0 + adds r1, r4, #0 + movs r2, #0x38 + bl sub_0801D66C + ldr r0, _080A7494 @ =gUnk_03001020 + ldr r1, _080A7498 @ =gUnk_03000F50 + movs r2, #0x7c + bl sub_0801D66C + ldrb r0, [r4, #4] + bl sub_08052D58 + ldr r4, _080A749C @ =gUnk_02033A90 + strh r0, [r4, #4] + bl sub_08052E8C + ldr r1, _080A74A0 @ =0x0000085C + adds r4, r4, r1 + str r0, [r4] + ldrb r0, [r5, #6] + bl sub_080527FC + ldrb r1, [r5, #0xd] + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + bl sub_0801D000 + bl sub_080A74F4 + ldrh r1, [r5, #8] + ldr r0, _080A74A4 @ =0x0000FFFF + cmp r1, r0 + beq _080A74A8 + adds r0, r1, #0 + ldrh r1, [r5, #0xa] + bl sub_08050054 + b _080A74AE + .align 2, 0 +_080A7468: .4byte gUnk_03000FD0 +_080A746C: .4byte gUnk_02017654 +_080A7470: .4byte gUnk_02032EC0 +_080A7474: .4byte gUnk_03003F80 +_080A7478: .4byte gUnk_02025EB0 +_080A747C: .4byte gUnk_0200B650 +_080A7480: .4byte gUnk_02033280 +_080A7484: .4byte gUnk_03000420 +_080A7488: .4byte gUnk_02001A00 +_080A748C: .4byte gUnk_02024490 +_080A7490: .4byte gUnk_03000BF0 +_080A7494: .4byte gUnk_03001020 +_080A7498: .4byte gUnk_03000F50 +_080A749C: .4byte gUnk_02033A90 +_080A74A0: .4byte 0x0000085C +_080A74A4: .4byte 0x0000FFFF +_080A74A8: + ldrh r0, [r5, #0xa] + bl sub_080500F4 +_080A74AE: + ldr r1, _080A74C0 @ =gUnk_02032EC0 + movs r2, #0 + movs r0, #4 + strb r0, [r1] + ldr r0, _080A74C4 @ =gUnk_030010A0 + adds r0, #0x30 + strb r2, [r0] +_080A74BC: + pop {r4, r5, pc} + .align 2, 0 +_080A74C0: .4byte gUnk_02032EC0 +_080A74C4: .4byte gUnk_030010A0 + + thumb_func_start sub_080A74C8 +sub_080A74C8: @ 0x080A74C8 + push {lr} + bl sub_080A74F4 + ldr r0, _080A74E8 @ =gUnk_03000FD0 + ldrb r3, [r0] + cmp r3, #0 + bne _080A74E6 + ldr r0, _080A74EC @ =gUnk_03001000 + ldr r1, _080A74F0 @ =gUnk_02032EC0 + ldrb r2, [r1, #7] + strb r2, [r0, #4] + strb r3, [r1] + strb r3, [r1, #2] + bl sub_0805E5B4 +_080A74E6: + pop {pc} + .align 2, 0 +_080A74E8: .4byte gUnk_03000FD0 +_080A74EC: .4byte gUnk_03001000 +_080A74F0: .4byte gUnk_02032EC0 + + thumb_func_start sub_080A74F4 +sub_080A74F4: @ 0x080A74F4 + push {lr} + bl sub_0805E5A8 + ldr r1, _080A7524 @ =gUnk_03001000 + movs r0, #0 + strb r0, [r1, #0xb] + bl sub_080AD90C + bl sub_0805E5C0 + bl sub_0805E5F8 + bl sub_0801C344 + bl sub_0801C208 + bl sub_08078CB4 + bl sub_080AD9B0 + bl sub_080AD918 + pop {pc} + .align 2, 0 +_080A7524: .4byte gUnk_03001000 + + thumb_func_start sub_080A7528 +sub_080A7528: @ 0x080A7528 + push {lr} + ldr r1, _080A753C @ =gUnk_08129030 + ldr r0, _080A7540 @ =gUnk_02032EC0 + ldrb r0, [r0, #2] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_080A753C: .4byte gUnk_08129030 +_080A7540: .4byte gUnk_02032EC0 + + thumb_func_start sub_080A7544 +sub_080A7544: @ 0x080A7544 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080A7584 @ =gUnk_0812905C + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080A7582 + ldr r1, _080A7588 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_08078E84 + ldr r1, [r4, #0x48] + adds r0, r4, #0 + adds r0, #0x62 + ldrb r0, [r0] + ldrb r2, [r1] + adds r0, r0, r2 + strb r0, [r1] + ldr r1, [r4, #0x48] + adds r0, r4, #0 + adds r0, #0x63 + ldrb r0, [r0] + ldrb r2, [r1, #1] + adds r0, r0, r2 + strb r0, [r1, #1] +_080A7582: + pop {r4, pc} + .align 2, 0 +_080A7584: .4byte gUnk_0812905C +_080A7588: .4byte gUnk_03001160 + + thumb_func_start sub_080A758C +sub_080A758C: @ 0x080A758C + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xa] + cmp r0, #0 + bne _080A75AC + ldr r1, _080A7654 @ =gUnk_03003F80 + ldrb r0, [r1, #4] + cmp r0, #0 + bne _080A75AC + ldrb r1, [r1, #2] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _080A75AC + bl sub_0805E780 +_080A75AC: + adds r0, r5, #0 + bl sub_0806FBD8 + cmp r0, #0 + bne _080A75BA + bl sub_0805E780 +_080A75BA: + adds r0, r5, #0 + movs r1, #1 + movs r2, #3 + bl sub_080AE008 + ldr r1, _080A7658 @ =gUnk_03001160 + adds r0, r1, #0 + adds r0, #0x3c + ldrb r0, [r0] + adds r0, #1 + movs r2, #0x20 + adds r3, r5, #0 + adds r3, #0x3c + movs r4, #0 + orrs r0, r2 + strb r0, [r3] + adds r1, #0x3b + ldrb r0, [r1] + adds r1, r5, #0 + adds r1, #0x3b + strb r0, [r1] + ldrb r1, [r5, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r5, #0x11] + adds r0, r5, #0 + adds r0, #0x41 + strb r4, [r0] + subs r0, #4 + strb r4, [r0] + adds r0, #5 + strb r4, [r0] + ldrb r0, [r5, #0xc] + adds r0, #1 + strb r0, [r5, #0xc] + movs r0, #0xff + strb r0, [r5, #0x1e] + adds r0, r5, #0 + bl sub_0801766C + ldrb r0, [r5, #0xa] + cmp r0, #0 + bne _080A76BC + ldr r2, _080A7654 @ =gUnk_03003F80 + ldrb r1, [r2, #2] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080A767A + ldrb r1, [r5, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + movs r0, #2 + strb r0, [r5, #0xb] + adds r0, r2, #0 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1d + adds r0, #8 + adds r1, r5, #0 + adds r1, #0x44 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x68 + ldrb r0, [r0] + cmp r0, #1 + beq _080A765C + cmp r0, #6 + bne _080A7664 + subs r1, #4 + movs r0, #0x1a + b _080A766A + .align 2, 0 +_080A7654: .4byte gUnk_03003F80 +_080A7658: .4byte gUnk_03001160 +_080A765C: + adds r1, r5, #0 + adds r1, #0x40 + movs r0, #0x18 + b _080A766A +_080A7664: + adds r1, r5, #0 + adds r1, #0x40 + movs r0, #0x19 +_080A766A: + strb r0, [r1] + ldrb r0, [r5, #0xc] + adds r0, #1 + strb r0, [r5, #0xc] + adds r0, r5, #0 + bl sub_080A7824 + b _080A7692 +_080A767A: + adds r0, r2, #0 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1d + adds r0, #4 + adds r1, r5, #0 + adds r1, #0x44 + strb r0, [r1] + adds r0, r5, #0 + bl sub_080A76CC +_080A7692: + ldr r0, _080A76B0 @ =gUnk_03003F80 + str r5, [r0, #0x2c] + adds r0, r5, #0 + bl sub_08079BD8 + ldr r4, _080A76B4 @ =gUnk_0812906C + ldr r0, _080A76B8 @ =gUnk_08129068 + bl sub_080028F4 + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r0, [r0] + bl sub_080A3268 + b _080A76C2 + .align 2, 0 +_080A76B0: .4byte gUnk_03003F80 +_080A76B4: .4byte gUnk_0812906C +_080A76B8: .4byte gUnk_08129068 +_080A76BC: + adds r0, r5, #0 + bl sub_080A76CC +_080A76C2: + movs r0, #0x87 + lsls r0, r0, #1 + bl sub_080A3268 + pop {r4, r5, pc} + + thumb_func_start sub_080A76CC +sub_080A76CC: @ 0x080A76CC + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _080A76D8 + b _080A77DC +_080A76D8: + ldr r5, _080A771C @ =gUnk_03003F80 + ldr r0, [r5, #0x2c] + cmp r0, r4 + beq _080A76E4 + bl sub_0805E780 +_080A76E4: + ldrb r0, [r5, #4] + cmp r0, #0 + bne _080A76F2 + str r0, [r5, #0x2c] + strb r0, [r5, #0x1b] + bl sub_0805E780 +_080A76F2: + ldrb r2, [r5, #0x1b] + cmp r2, #0 + beq _080A7744 + adds r1, r4, #0 + adds r1, #0x40 + movs r0, #0xd + strb r0, [r1] + movs r0, #0x40 + ands r0, r2 + cmp r0, #0 + beq _080A7728 + adds r0, r4, #0 + adds r0, #0x68 + ldrb r0, [r0] + cmp r0, #1 + beq _080A7720 + cmp r0, #6 + bne _080A7724 + movs r0, #0xa + b _080A7726 + .align 2, 0 +_080A771C: .4byte gUnk_03003F80 +_080A7720: + movs r0, #8 + b _080A7726 +_080A7724: + movs r0, #9 +_080A7726: + strb r0, [r1] +_080A7728: + ldr r0, _080A7740 @ =gUnk_03001160 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080A77C4 + movs r0, #0x8b + lsls r0, r0, #1 + bl sub_080A3268 + b _080A77C4 + .align 2, 0 +_080A7740: .4byte gUnk_03001160 +_080A7744: + ldr r0, [r5, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x14 + ands r0, r1 + cmp r0, #0 + beq _080A776A + adds r0, r4, #0 + adds r0, #0x68 + ldrb r0, [r0] + cmp r0, #6 + bne _080A7762 + adds r1, r4, #0 + adds r1, #0x40 + movs r0, #0xc + b _080A7768 +_080A7762: + adds r1, r4, #0 + adds r1, #0x40 + movs r0, #0xb +_080A7768: + strb r0, [r1] +_080A776A: + ldr r0, _080A77D0 @ =gUnk_03003F80 + adds r0, #0x3e + ldrb r0, [r0] + movs r2, #3 + ands r2, r0 + cmp r2, #0 + beq _080A77C4 + ldr r0, _080A77D4 @ =gUnk_03001160 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080A77C4 + movs r1, #0x12 + cmp r2, #1 + bne _080A778E + movs r1, #0x14 +_080A778E: + adds r0, r4, #0 + movs r2, #0 + bl sub_080A29AC + adds r2, r0, #0 + cmp r2, #0 + beq _080A77C4 + ldrb r1, [r4, #0x1e] + lsls r1, r1, #1 + ldr r0, _080A77D8 @ =gUnk_081292E2 + adds r1, r1, r0 + movs r0, #1 + ldrsb r0, [r1, r0] + ldrh r3, [r4, #0x32] + adds r0, r0, r3 + strh r0, [r2, #0x32] + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x19 + cmp r0, #0 + bge _080A77BE + rsbs r1, r1, #0 +_080A77BE: + ldrh r0, [r4, #0x2e] + adds r0, r0, r1 + strh r0, [r2, #0x2e] +_080A77C4: + ldr r1, _080A77D4 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080A78B8 + b _080A7806 + .align 2, 0 +_080A77D0: .4byte gUnk_03003F80 +_080A77D4: .4byte gUnk_03001160 +_080A77D8: .4byte gUnk_081292E2 +_080A77DC: + ldr r1, _080A7810 @ =gUnk_03003F80 + ldrb r0, [r1, #4] + cmp r0, #0 + beq _080A7814 + ldr r0, [r1, #0x2c] + adds r2, r0, #0 + adds r2, #0x40 + ldrb r0, [r2] + cmp r0, #0 + beq _080A7814 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r2] + adds r0, r4, #0 + adds r0, #0x40 + strb r1, [r0] + adds r0, r4, #0 + bl sub_080A7A54 +_080A7806: + adds r0, r4, #0 + bl sub_080A7A84 + b _080A7820 + .align 2, 0 +_080A7810: .4byte gUnk_03003F80 +_080A7814: + movs r0, #0xff + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] +_080A7820: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080A7824 +sub_080A7824: @ 0x080A7824 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r5, _080A7860 @ =gUnk_03003F80 + ldr r0, [r5, #0x2c] + cmp r0, r4 + beq _080A7834 + bl sub_0805E780 +_080A7834: + ldrb r0, [r5, #4] + cmp r0, #0 + beq _080A78AE + ldrb r0, [r5, #2] + cmp r0, #0 + bne _080A7846 + str r0, [r5, #0x2c] + bl sub_0805E780 +_080A7846: + ldr r2, _080A7864 @ =gUnk_03001160 + adds r6, r2, #0 + adds r6, #0x5a + ldrb r1, [r6] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A7868 + movs r0, #0 + str r0, [r5, #0x2c] + bl sub_0805E780 + b _080A78B4 + .align 2, 0 +_080A7860: .4byte gUnk_03003F80 +_080A7864: .4byte gUnk_03001160 +_080A7868: + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_080A78B8 + ldrb r1, [r6] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080A7880 + movs r0, #0x77 + bl sub_080A3268 +_080A7880: + ldrb r0, [r4, #0x1e] + cmp r0, #0x8a + bls _080A788A + movs r0, #0xff + strb r0, [r4, #0x1e] +_080A788A: + ldrb r1, [r6] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080A78A4 + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + bl sub_080A7B98 + b _080A78B4 +_080A78A4: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + b _080A78B4 +_080A78AE: + str r0, [r5, #0x2c] + bl sub_0805E780 +_080A78B4: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080A78B8 +sub_080A78B8: @ 0x080A78B8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + adds r6, r1, #0 + ldr r0, _080A78E8 @ =gUnk_03003F80 + ldrb r1, [r0, #0x1b] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080A78FC + ldrb r0, [r6, #0x1e] + subs r0, #0x6a + strb r0, [r4, #0x1e] + ldr r0, _080A78EC @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #4 + ands r0, r1 + cmp r0, #0 + beq _080A78F0 + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 + adds r1, #0xb1 + b _080A78F2 + .align 2, 0 +_080A78E8: .4byte gUnk_03003F80 +_080A78EC: .4byte gUnk_030010A0 +_080A78F0: + ldrb r1, [r4, #0x1e] +_080A78F2: + ldrh r2, [r4, #0x12] + adds r0, r4, #0 + bl sub_080042D0 + b _080A7912 +_080A78FC: + ldrb r0, [r6, #0x1e] + subs r0, #0x6a + ldrb r1, [r4, #0x1e] + cmp r0, r1 + beq _080A7912 + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x1e] + ldrh r2, [r4, #0x12] + adds r0, r4, #0 + bl sub_080042D0 +_080A7912: + ldr r2, _080A792C @ =gUnk_03003F80 + ldrb r1, [r2, #0x1b] + movs r0, #0x40 + ands r0, r1 + adds r7, r2, #0 + cmp r0, #0 + beq _080A7930 + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + b _080A7958 + .align 2, 0 +_080A792C: .4byte gUnk_03003F80 +_080A7930: + ldrb r1, [r6, #0x14] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080A7946 + ldrb r0, [r6, #0x18] + lsls r0, r0, #0x19 + lsrs r2, r0, #0x1f + movs r0, #1 + eors r2, r0 + b _080A794C +_080A7946: + ldrb r0, [r6, #0x18] + lsls r0, r0, #0x19 + lsrs r2, r0, #0x1f +_080A794C: + lsls r2, r2, #6 + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 +_080A7958: + strb r0, [r4, #0x18] + adds r2, r4, #0 + adds r2, #0x41 + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + mov r8, r2 + adds r5, r4, #0 + adds r5, #0x3d + cmp r0, #0 + beq _080A7A1C + adds r3, r6, #0 + adds r3, #0x3d + ldrb r0, [r3] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080A7980 + lsrs r0, r0, #0x18 + cmp r0, #0x81 + bne _080A79AE +_080A7980: + adds r2, r4, #0 + adds r2, #0x3d + ldrb r0, [r2] + movs r1, #0 + strb r0, [r3] + adds r5, r4, #0 + adds r5, #0x3e + ldrb r0, [r5] + adds r3, r6, #0 + adds r3, #0x3e + strb r0, [r3] + movs r3, #0x42 + adds r3, r3, r4 + mov ip, r3 + ldrb r0, [r3] + adds r3, r6, #0 + adds r3, #0x42 + strb r0, [r3] + mov r0, ip + strb r1, [r0] + strb r1, [r5] + strb r1, [r2] + adds r5, r2, #0 +_080A79AE: + ldr r0, [r7, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x14 + ands r0, r1 + cmp r0, #0 + beq _080A79C4 + ldrb r1, [r7, #0x1b] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r7, #0x1b] + b _080A7A1C +_080A79C4: + ldrb r0, [r7, #0x1b] + cmp r0, #0 + beq _080A7A1C + mov r1, r8 + ldrb r0, [r1] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0x43 + beq _080A79E6 + cmp r1, #0x43 + bgt _080A79E0 + cmp r1, #0xd + beq _080A79E6 + b _080A7A08 +_080A79E0: + cmp r1, #0x44 + bne _080A7A08 + b _080A7A1C +_080A79E6: + ldrb r1, [r7, #0x1b] + movs r0, #8 + orrs r0, r1 + strb r0, [r7, #0x1b] + adds r1, r6, #0 + adds r1, #0x42 + movs r0, #2 + strb r0, [r1] + ldrb r1, [r7, #0x1b] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _080A7A1C + movs r0, #0xfe + ands r0, r1 + strb r0, [r7, #0x1b] + b _080A7A1C +_080A7A08: + ldrb r0, [r7, #0x1b] + movs r1, #0xc0 + ands r1, r0 + cmp r1, #0 + bne _080A7A1C + strb r1, [r7, #0x1b] + strb r1, [r7, #4] + str r1, [r7, #0x2c] + bl sub_0805E780 +_080A7A1C: + adds r1, r5, #0 + ldrb r0, [r1] + movs r2, #0 + ldrsb r2, [r1, r2] + cmp r2, #0 + beq _080A7A36 + cmp r2, #0 + ble _080A7A32 + subs r0, #1 + strb r0, [r1] + b _080A7A36 +_080A7A32: + adds r0, #1 + strb r0, [r5] +_080A7A36: + adds r0, r4, #0 + bl sub_080A7A54 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x19 + cmp r0, #0 + bge _080A7A4C + ldr r1, [r4, #0x48] + ldrb r0, [r1] + rsbs r0, r0, #0 + strb r0, [r1] +_080A7A4C: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_080A7A54 +sub_080A7A54: @ 0x080A7A54 + ldr r1, _080A7A7C @ =gUnk_03001160 + ldrb r1, [r1, #0x1e] + subs r1, #0x6a + lsls r1, r1, #2 + ldr r2, _080A7A80 @ =gUnk_08129096 + adds r1, r1, r2 + ldr r3, [r0, #0x48] + ldrb r2, [r1] + strb r2, [r3] + ldr r3, [r0, #0x48] + ldrb r2, [r1, #1] + strb r2, [r3, #1] + ldr r3, [r0, #0x48] + ldrb r2, [r1, #2] + strb r2, [r3, #6] + ldr r2, [r0, #0x48] + ldrb r0, [r1, #3] + strb r0, [r2, #7] + bx lr + .align 2, 0 +_080A7A7C: .4byte gUnk_03001160 +_080A7A80: .4byte gUnk_08129096 + + thumb_func_start sub_080A7A84 +sub_080A7A84: @ 0x080A7A84 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r6, _080A7AE0 @ =gUnk_03001160 + adds r0, r6, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r1, #0xf + ands r1, r0 + cmp r1, #0 + beq _080A7B8C + ldr r2, _080A7AE4 @ =gUnk_08129072 + subs r0, r1, #1 + lsls r0, r0, #1 + adds r1, r0, r2 + movs r3, #0 + ldrsb r3, [r1, r3] + adds r0, #1 + adds r0, r0, r2 + movs r5, #0 + ldrsb r5, [r0, r5] + ldr r2, _080A7AE8 @ =gUnk_03003F80 + ldrb r1, [r2, #0x1b] + movs r0, #0xc0 + ands r0, r1 + adds r7, r2, #0 + cmp r0, #0 + bne _080A7AC4 + ldrb r0, [r6, #0x18] + lsls r0, r0, #0x19 + cmp r0, #0 + bge _080A7AC4 + rsbs r3, r3, #0 +_080A7AC4: + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _080A7AEC + movs r0, #0x2e + ldrsh r2, [r4, r0] + adds r2, r2, r3 + movs r1, #0x32 + ldrsh r3, [r4, r1] + adds r3, r3, r5 + adds r0, r4, #0 + movs r1, #0 + bl sub_08008796 + b _080A7B8C + .align 2, 0 +_080A7AE0: .4byte gUnk_03001160 +_080A7AE4: .4byte gUnk_08129072 +_080A7AE8: .4byte gUnk_03003F80 +_080A7AEC: + ldr r0, [r4, #0x34] + cmp r0, #0 + bne _080A7B8C + adds r0, r7, #0 + adds r0, #0xac + ldrh r0, [r0] + movs r1, #8 + ands r1, r0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + rsbs r1, r1, #0 + lsrs r1, r1, #0x1f + movs r0, #0x2e + ldrsh r2, [r4, r0] + adds r6, r3, #0 + adds r2, r2, r6 + movs r0, #0x32 + ldrsh r3, [r4, r0] + adds r3, r3, r5 + adds r0, r4, #0 + bl sub_08008796 + cmp r0, #0 + bne _080A7B8C + ldrb r2, [r7, #0x1b] + cmp r2, #0 + beq _080A7B8C + movs r0, #0xc0 + ands r0, r2 + cmp r0, #0 + bne _080A7B8C + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r5, #0 + bl sub_080002B4 + cmp r0, #0x2e + bne _080A7B4C + ldr r0, _080A7B44 @ =gUnk_03001160 + ldr r1, _080A7B48 @ =0x00000119 + bl sub_0800449C + b _080A7B54 + .align 2, 0 +_080A7B44: .4byte gUnk_03001160 +_080A7B48: .4byte 0x00000119 +_080A7B4C: + ldr r0, _080A7B90 @ =gUnk_03001160 + movs r1, #0x74 + bl sub_0800449C +_080A7B54: + movs r0, #0xf + movs r1, #0x1a + movs r2, #0 + bl sub_080A2960 + adds r2, r0, #0 + cmp r2, #0 + beq _080A7B8C + ldr r1, _080A7B94 @ =gUnk_0812908E + ldrb r0, [r4, #0x14] + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r3, [r4, #0x2e] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + ldrb r0, [r4, #0x14] + adds r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r2, #0x32] + ldr r0, [r4, #0x34] + str r0, [r2, #0x34] +_080A7B8C: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A7B90: .4byte gUnk_03001160 +_080A7B94: .4byte gUnk_0812908E + + thumb_func_start sub_080A7B98 +sub_080A7B98: @ 0x080A7B98 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r6, r0, #0 + ldr r0, _080A7BFC @ =gUnk_03003F80 + adds r0, #0xac + ldrh r1, [r0] + movs r0, #8 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + rsbs r0, r0, #0 + lsrs r0, r0, #0x1f + mov sl, r0 + movs r7, #0x10 + rsbs r7, r7, #0 + movs r0, #0 +_080A7BBE: + movs r5, #0x10 + rsbs r5, r5, #0 + movs r4, #0 + movs r1, #0x10 + adds r1, r1, r7 + mov sb, r1 + adds r0, #1 + mov r8, r0 +_080A7BCE: + movs r0, #0x2e + ldrsh r2, [r6, r0] + adds r2, r2, r5 + movs r1, #0x32 + ldrsh r3, [r6, r1] + adds r3, r3, r7 + adds r0, r6, #0 + mov r1, sl + bl sub_08008796 + adds r5, #0x10 + adds r4, #1 + cmp r4, #2 + bls _080A7BCE + mov r7, sb + mov r0, r8 + cmp r0, #2 + bls _080A7BBE + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A7BFC: .4byte gUnk_03003F80 + + thumb_func_start sub_080A7C00 +sub_080A7C00: @ 0x080A7C00 + push {r4, lr} + bl sub_080A7C38 + adds r4, r0, #0 + cmp r4, #0 + beq _080A7C16 + ldrb r1, [r4, #0xa] + movs r2, #0 + bl sub_080A276C + str r0, [r4, #0x50] +_080A7C16: + pop {r4, pc} + + thumb_func_start sub_080A7C18 +sub_080A7C18: @ 0x080A7C18 + push {lr} + bl sub_080A7C38 + adds r2, r0, #0 + cmp r2, #0 + beq _080A7C32 + ldr r0, _080A7C34 @ =gUnk_03001160 + str r0, [r2, #0x50] + ldrb r1, [r2, #0xa] + adds r0, r2, #0 + movs r2, #0 + bl sub_08078AF0 +_080A7C32: + pop {pc} + .align 2, 0 +_080A7C34: .4byte gUnk_03001160 + + thumb_func_start sub_080A7C38 +sub_080A7C38: @ 0x080A7C38 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r6, r1, #0 + adds r7, r2, #0 + cmp r5, #0x3f + bne _080A7C52 + ldr r0, _080A7C78 @ =gUnk_02002A40 + adds r0, #0xbb + ldrb r0, [r0] + cmp r0, #0 + beq _080A7C52 + movs r5, #0x57 + movs r6, #0 +_080A7C52: + bl sub_0805E744 + adds r4, r0, #0 + cmp r4, #0 + beq _080A7C72 + strb r5, [r4, #0xa] + strb r6, [r4, #0xb] + strb r7, [r4, #0xe] + movs r0, #0xb + strb r0, [r4, #9] + movs r0, #6 + strb r0, [r4, #8] + adds r0, r4, #0 + movs r1, #6 + bl sub_0805EA2C +_080A7C72: + adds r0, r4, #0 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A7C78: .4byte gUnk_02002A40 + + thumb_func_start sub_080A7C7C +sub_080A7C7C: @ 0x080A7C7C + push {lr} + ldr r0, _080A7C88 @ =gUnk_02017660 + movs r1, #0x40 + bl sub_0801D630 + pop {pc} + .align 2, 0 +_080A7C88: .4byte gUnk_02017660 + + thumb_func_start sub_080A7C8C +sub_080A7C8C: @ 0x080A7C8C + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + ldr r4, _080A7C9C @ =gUnk_02017660 + movs r2, #0 + movs r1, #0 + b _080A7CA8 + .align 2, 0 +_080A7C9C: .4byte gUnk_02017660 +_080A7CA0: + adds r1, #1 + adds r4, #8 + cmp r1, #7 + bhi _080A7CB0 +_080A7CA8: + ldrh r0, [r4, #4] + cmp r0, r5 + bne _080A7CA0 + movs r2, #1 +_080A7CB0: + lsrs r1, r6, #1 + ldrb r0, [r4, #6] + lsls r0, r0, #0x1f + lsrs r0, r0, #0x1f + cmp r1, r0 + bne _080A7CF4 + cmp r2, #0 + beq _080A7CD2 + ldrb r0, [r4, #1] + bl sub_0807CCB4 + ldrb r0, [r4, #2] + ldrb r1, [r4, #3] + movs r2, #0 + bl sub_080A7C00 + b _080A7CDC +_080A7CD2: + movs r0, #0x60 + movs r1, #0 + movs r2, #0 + bl sub_080A7C00 +_080A7CDC: + movs r0, #0x74 + adds r1, r5, #0 + adds r2, r6, #0 + bl sub_0807B7D8 + movs r0, #0 + movs r1, #0x78 + bl sub_0805E4E0 + ldr r0, _080A7CF8 @ =0x0000011B + bl sub_080A3268 +_080A7CF4: + pop {r4, r5, r6, pc} + .align 2, 0 +_080A7CF8: .4byte 0x0000011B + + thumb_func_start sub_080A7CFC +sub_080A7CFC: @ 0x080A7CFC + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r4, #0xc0 + lsls r4, r4, #3 + movs r6, #0 + movs r0, #3 + bl sub_0804B128 + adds r1, r0, #0 + cmp r1, #0 + beq _080A7D38 +_080A7D12: + ldrh r0, [r1, #4] + cmp r0, r5 + bne _080A7D30 + ldrb r0, [r1] + cmp r0, #5 + beq _080A7D24 + cmp r0, #6 + beq _080A7D2A + b _080A7D38 +_080A7D24: + movs r6, #0 + ldrh r4, [r1, #6] + b _080A7D38 +_080A7D2A: + movs r6, #1 + ldrh r4, [r1, #6] + b _080A7D38 +_080A7D30: + adds r1, #8 + ldrh r0, [r1, #4] + cmp r0, #0 + bne _080A7D12 +_080A7D38: + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_080A7D44 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080A7D44 +sub_080A7D44: @ 0x080A7D44 + push {lr} + cmp r1, #0 + beq _080A7D52 + movs r1, #0 + bl sub_08078AA8 + b _080A7D56 +_080A7D52: + bl sub_08056378 +_080A7D56: + pop {pc} + + thumb_func_start sub_080A7D58 +sub_080A7D58: @ 0x080A7D58 + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #9] + lsls r0, r0, #4 + ldr r1, _080A7D78 @ =gUnk_0813210C + adds r2, r0, r1 + ldrh r1, [r2] + ldr r0, _080A7D7C @ =0x0000FFFF + cmp r1, r0 + bne _080A7D74 + ldrb r0, [r3, #0xa] + lsls r0, r0, #4 + ldr r1, [r2, #4] + adds r2, r1, r0 +_080A7D74: + adds r0, r2, #0 + pop {pc} + .align 2, 0 +_080A7D78: .4byte gUnk_0813210C +_080A7D7C: .4byte 0x0000FFFF + + thumb_func_start sub_080A7D80 +sub_080A7D80: @ 0x080A7D80 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080A7E4A + adds r0, r4, #0 + bl sub_080A7D58 + adds r5, r0, #0 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080A7E50 + cmp r0, #0 + bne _080A7DA6 + movs r0, #0 + b _080A7E4C +_080A7DA6: + ldrb r1, [r4, #0x10] + movs r0, #1 + adds r2, r1, #0 + orrs r2, r0 + strb r2, [r4, #0x10] + ldrb r1, [r5, #0xa] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080A7DC0 + movs r0, #0x80 + orrs r2, r0 + strb r2, [r4, #0x10] +_080A7DC0: + ldrh r0, [r5, #8] + lsls r0, r0, #0x14 + lsrs r0, r0, #0x14 + strh r0, [r4, #0x12] + ldrb r2, [r4, #0x18] + lsls r0, r2, #0x1e + cmp r0, #0 + bne _080A7DE0 + ldrb r1, [r5, #0xa] + lsls r1, r1, #0x1a + lsrs r1, r1, #0x1e + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] +_080A7DE0: + ldrb r1, [r5, #0xa] + lsls r1, r1, #0x1d + adds r3, r4, #0 + adds r3, #0x29 + lsrs r1, r1, #0x1a + ldrb r2, [r3] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrb r1, [r5, #0xa] + lsrs r1, r1, #6 + lsls r1, r1, #4 + ldrb r2, [r4, #0x18] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r1, #0x24 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _080A7E14 + ldrh r0, [r5, #0xc] + strh r0, [r4, #0x24] +_080A7E14: + ldrb r0, [r5, #9] + lsrs r0, r0, #4 + lsls r0, r0, #4 + movs r1, #7 + orrs r0, r1 + adds r1, r4, #0 + adds r1, #0x3c + strb r0, [r1] + ldrb r0, [r5, #0xf] + subs r1, #1 + strb r0, [r1] + ldrb r0, [r5, #0xe] + adds r1, #4 + strb r0, [r1] + ldrb r1, [r5, #0xb] + adds r0, r4, #0 + adds r0, #0x40 + strb r1, [r0] + adds r1, r4, #0 + adds r1, #0x45 + movs r0, #0xff + strb r0, [r1] + ldr r0, [r5, #4] + str r0, [r4, #0x48] + adds r0, r4, #0 + bl sub_08016A04 +_080A7E4A: + movs r0, #1 +_080A7E4C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080A7E50 +sub_080A7E50: @ 0x080A7E50 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrh r2, [r5] + lsls r1, r2, #0x10 + cmp r1, #0 + beq _080A7EA2 + movs r0, #0x80 + lsls r0, r0, #8 + ands r0, r2 + cmp r0, #0 + beq _080A7E78 + ldr r0, _080A7E74 @ =0x000003FF + ands r0, r2 + adds r1, r4, #0 + adds r1, #0x60 + strh r0, [r1] + b _080A7EA2 + .align 2, 0 +_080A7E74: .4byte 0x000003FF +_080A7E78: + movs r0, #0x80 + lsls r0, r0, #7 + ands r0, r2 + cmp r0, #0 + beq _080A7E92 + lsrs r1, r1, #0x14 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + movs r2, #0 + bl sub_080AE008 + b _080A7E9A +_080A7E92: + ldrh r1, [r5] + adds r0, r4, #0 + bl sub_080ADF80 +_080A7E9A: + cmp r0, #0 + bne _080A7EA2 + movs r0, #0 + b _080A7EAC +_080A7EA2: + ldrh r1, [r5, #2] + adds r0, r4, #0 + bl sub_0801D040 + movs r0, #1 +_080A7EAC: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080A7EB0 +sub_080A7EB0: @ 0x080A7EB0 + push {lr} + adds r3, r0, #0 + movs r1, #0x2e + ldrsh r0, [r3, r1] + ldr r2, _080A7ED8 @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + subs r0, r0, r1 + ldrh r1, [r2, #0x1e] + cmp r0, r1 + bhi _080A7ED2 + movs r1, #0x32 + ldrsh r0, [r3, r1] + ldrh r1, [r2, #8] + subs r0, r0, r1 + ldrh r2, [r2, #0x20] + cmp r0, r2 + bls _080A7EDC +_080A7ED2: + movs r0, #1 + b _080A7EDE + .align 2, 0 +_080A7ED8: .4byte gUnk_03000BF0 +_080A7EDC: + movs r0, #0 +_080A7EDE: + pop {pc} + + thumb_func_start sub_080A7EE0 +sub_080A7EE0: @ 0x080A7EE0 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_0805E678 + adds r4, r0, #0 + cmp r4, #0 + beq _080A7EFC + movs r0, #4 + strb r0, [r4, #8] + strb r5, [r4, #9] + adds r0, r4, #0 + movs r1, #5 + bl sub_0805EA2C +_080A7EFC: + adds r0, r4, #0 + pop {r4, r5, pc} + + thumb_func_start sub_080A7F00 +sub_080A7F00: @ 0x080A7F00 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080A7F26 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_080A7F80 + ldrb r0, [r4, #0xa] + cmp r0, #3 + bne _080A7F26 + ldr r0, [r4, #0x50] + ldrb r1, [r0, #0x14] + adds r1, #0x18 + adds r0, r4, #0 + bl sub_080042AC +_080A7F26: + ldr r0, [r4, #0x50] + cmp r0, #0 + beq _080A7F34 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _080A7F38 +_080A7F34: + bl sub_0805E780 +_080A7F38: + adds r2, r4, #0 + adds r2, #0x41 + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A7F56 + ldr r1, [r4, #0x4c] + ldr r0, _080A7F7C @ =gUnk_03001160 + cmp r1, r0 + bne _080A7F56 + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0xd3 + strb r0, [r1] +_080A7F56: + movs r0, #0 + strb r0, [r2] + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA6C + adds r0, r4, #0 + bl sub_080A7F9C + ldrb r0, [r4, #0xa] + cmp r0, #3 + bne _080A7F7A + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl sub_080042B8 +_080A7F7A: + pop {r4, pc} + .align 2, 0 +_080A7F7C: .4byte gUnk_03001160 + + thumb_func_start sub_080A7F80 +sub_080A7F80: @ 0x080A7F80 + ldr r3, _080A7F98 @ =gUnk_081293B8 + ldr r2, [r0, #0x50] + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + ldrb r2, [r2, #0xa] + adds r1, r1, r2 + adds r1, r1, r3 + ldrb r1, [r1] + adds r0, #0x3f + strb r1, [r0] + bx lr + .align 2, 0 +_080A7F98: .4byte gUnk_081293B8 + + thumb_func_start sub_080A7F9C +sub_080A7F9C: @ 0x080A7F9C + push {lr} + ldr r2, _080A7FB0 @ =gUnk_081293CC + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A7FB0: .4byte gUnk_081293CC + + thumb_func_start sub_080A7FB4 +sub_080A7FB4: @ 0x080A7FB4 + ldr r1, [r0, #0x50] + ldr r3, _080A7FD4 @ =gUnk_081293E0 + ldrb r2, [r1, #0x14] + lsls r2, r2, #2 + adds r2, r2, r3 + adds r1, #0x5a + ldrb r3, [r1] + movs r1, #0xf + ands r1, r3 + ldr r2, [r2] + lsls r1, r1, #2 + adds r1, r1, r2 + subs r1, #4 + ldr r1, [r1] + str r1, [r0, #0x48] + bx lr + .align 2, 0 +_080A7FD4: .4byte gUnk_081293E0 + + thumb_func_start sub_080A7FD8 +sub_080A7FD8: @ 0x080A7FD8 + ldr r1, [r0, #0x50] + ldr r2, _080A7FE8 @ =gUnk_081293F0 + ldrb r1, [r1, #0x14] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + str r1, [r0, #0x48] + bx lr + .align 2, 0 +_080A7FE8: .4byte gUnk_081293F0 + + thumb_func_start sub_080A7FEC +sub_080A7FEC: @ 0x080A7FEC + push {lr} + adds r3, r0, #0 + ldr r2, [r3, #0x50] + adds r0, r2, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080A8008 + ldr r0, _080A8004 @ =gUnk_08129410 + b _080A800A + .align 2, 0 +_080A8004: .4byte gUnk_08129410 +_080A8008: + ldr r0, _080A8018 @ =gUnk_08129400 +_080A800A: + ldrb r1, [r2, #0x14] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + str r0, [r3, #0x48] + pop {pc} + .align 2, 0 +_080A8018: .4byte gUnk_08129400 + + thumb_func_start sub_080A801C +sub_080A801C: @ 0x080A801C + ldr r1, [r0, #0x50] + ldr r2, _080A802C @ =gUnk_08129420 + ldrb r1, [r1, #0x14] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + str r1, [r0, #0x48] + bx lr + .align 2, 0 +_080A802C: .4byte gUnk_08129420 + + thumb_func_start sub_080A8030 +sub_080A8030: @ 0x080A8030 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080A8048 @ =gUnk_081295D0 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080A8048: .4byte gUnk_081295D0 + + thumb_func_start sub_080A804C +sub_080A804C: @ 0x080A804C + push {lr} + ldr r2, _080A8060 @ =gUnk_081295E4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A8060: .4byte gUnk_081295E4 + + thumb_func_start sub_080A8064 +sub_080A8064: @ 0x080A8064 + push {lr} + adds r1, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x80 + bne _080A8078 + adds r0, r1, #0 + bl sub_0805E7BC + b _080A8086 +_080A8078: + adds r0, r1, #0 + adds r0, #0x3e + ldrb r0, [r0] + strb r0, [r1, #0x15] + adds r0, r1, #0 + bl sub_080A8178 +_080A8086: + pop {pc} + + thumb_func_start sub_080A8088 +sub_080A8088: @ 0x080A8088 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0x30 + strb r1, [r0, #0xe] + movs r1, #0xa0 + lsls r1, r1, #8 + str r1, [r0, #0x20] + movs r1, #0 + bl sub_08004260 + pop {pc} + + thumb_func_start sub_080A80A0 +sub_080A80A0: @ 0x080A80A0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080AF090 + cmp r0, #0 + beq _080A80DC + adds r0, r4, #0 + bl sub_080A7EB0 + cmp r0, #0 + beq _080A80C4 + adds r0, r4, #0 + bl sub_0805E7BC + b _080A80F0 +_080A80C4: + adds r0, r4, #0 + bl sub_08016AD2 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A80F0 + movs r0, #3 + strb r0, [r4, #0xc] + b _080A80F0 +_080A80DC: + ldrh r1, [r4, #0x2a] + adds r0, r4, #0 + bl sub_0800417E + adds r0, r4, #0 + bl sub_080A8178 + adds r0, r4, #0 + bl sub_08016AD2 +_080A80F0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A80F4 +sub_080A80F4: @ 0x080A80F4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_08004274 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _080A8116 + adds r0, r4, #0 + bl sub_0805E7BC +_080A8116: + pop {r4, pc} + + thumb_func_start sub_080A8118 +sub_080A8118: @ 0x080A8118 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080AF090 + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #0 + beq _080A813A + cmp r0, #1 + beq _080A8142 + b _080A815A +_080A813A: + adds r0, r4, #0 + bl sub_0805E7BC + b _080A8176 +_080A8142: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #0x90 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_0800442E + cmp r0, #0 + bne _080A8176 +_080A815A: + ldrb r1, [r4, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080A8176 + ldrb r2, [r4, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] +_080A8176: + pop {r4, pc} + + thumb_func_start sub_080A8178 +sub_080A8178: @ 0x080A8178 + movs r1, #2 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + movs r1, #0x40 + strh r1, [r0, #0x24] + movs r1, #0xa0 + lsls r1, r1, #9 + str r1, [r0, #0x20] + bx lr + + thumb_func_start sub_080A8190 +sub_080A8190: @ 0x080A8190 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080A81A8 @ =gUnk_0812960C + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080A81A8: .4byte gUnk_0812960C + + thumb_func_start sub_080A81AC +sub_080A81AC: @ 0x080A81AC + push {lr} + ldr r2, _080A81C0 @ =gUnk_08129620 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A81C0: .4byte gUnk_08129620 + + thumb_func_start sub_080A81C4 +sub_080A81C4: @ 0x080A81C4 + push {lr} + adds r1, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x80 + bne _080A81D8 + adds r0, r1, #0 + bl sub_0805E7BC + b _080A81DE +_080A81D8: + adds r0, r1, #0 + bl sub_080A82D8 +_080A81DE: + pop {pc} + + thumb_func_start sub_080A81E0 +sub_080A81E0: @ 0x080A81E0 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0x3c + strb r1, [r0, #0xe] + ldr r1, _080A81F8 @ =0x0000FFFE + strh r1, [r0, #0x36] + movs r1, #0 + bl sub_08004260 + pop {pc} + .align 2, 0 +_080A81F8: .4byte 0x0000FFFE + + thumb_func_start sub_080A81FC +sub_080A81FC: @ 0x080A81FC + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080AF090 + ldrh r0, [r4, #0x2a] + cmp r0, #0 + bne _080A8240 + adds r0, r4, #0 + bl sub_080A7EB0 + cmp r0, #0 + beq _080A8222 + adds r0, r4, #0 + bl sub_0805E7BC + b _080A8246 +_080A8222: + adds r0, r4, #0 + bl sub_08016AD2 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A8246 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x90 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + b _080A8246 +_080A8240: + adds r0, r4, #0 + bl sub_080A82D8 +_080A8246: + pop {r4, pc} + + thumb_func_start sub_080A8248 +sub_080A8248: @ 0x080A8248 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080AF090 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _080A827A + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #0xe0 + strh r0, [r4, #0x24] + movs r0, #0xe0 + lsls r0, r0, #8 + str r0, [r4, #0x20] +_080A827A: + pop {r4, pc} + + thumb_func_start sub_080A827C +sub_080A827C: @ 0x080A827C + push {r4, lr} + adds r4, r0, #0 + ldrb r2, [r4, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_08004274 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #0 + bne _080A82B2 + adds r0, r4, #0 + bl sub_0805E7BC +_080A82B2: + pop {r4, pc} + + thumb_func_start sub_080A82B4 +sub_080A82B4: @ 0x080A82B4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0806F69C + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _080A82D6 + adds r0, r4, #0 + bl sub_0805E7BC +_080A82D6: + pop {r4, pc} + + thumb_func_start sub_080A82D8 +sub_080A82D8: @ 0x080A82D8 + movs r1, #4 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + movs r1, #0x80 + lsls r1, r1, #9 + str r1, [r0, #0x20] + ldrb r1, [r0, #0x15] + movs r2, #0x10 + eors r1, r2 + strb r1, [r0, #0x15] + movs r1, #0x80 + strh r1, [r0, #0x24] + bx lr + + thumb_func_start sub_080A82F8 +sub_080A82F8: @ 0x080A82F8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080A8310 @ =gUnk_08129650 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080A8310: .4byte gUnk_08129650 + + thumb_func_start sub_080A8314 +sub_080A8314: @ 0x080A8314 + push {lr} + ldr r2, _080A8328 @ =gUnk_08129664 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A8328: .4byte gUnk_08129664 + + thumb_func_start sub_080A832C +sub_080A832C: @ 0x080A832C + push {lr} + adds r3, r0, #0 + adds r2, r3, #0 + adds r2, #0x41 + ldrb r0, [r2] + cmp r0, #0x80 + bne _080A8358 + adds r1, r3, #0 + adds r1, #0x3d + movs r0, #0x10 + strb r0, [r1] + adds r1, #5 + movs r0, #0xc + strb r0, [r1] + adds r1, #4 + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r1] + ldr r0, [r3, #0x50] + ldrb r1, [r2] + adds r0, #0x41 + strb r1, [r0] +_080A8358: + adds r0, r3, #0 + adds r0, #0x3d + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A836A + ldr r0, [r3, #0x50] + b _080A836E +_080A836A: + ldr r0, [r3, #0x50] + rsbs r1, r1, #0 +_080A836E: + adds r0, #0x3d + strb r1, [r0] + ldr r0, [r3, #0x50] + movs r1, #0x42 + adds r1, r1, r3 + mov ip, r1 + ldrb r1, [r1] + adds r0, #0x42 + strb r1, [r0] + ldr r0, [r3, #0x50] + adds r1, r3, #0 + adds r1, #0x46 + ldrh r1, [r1] + adds r0, #0x46 + movs r2, #0 + strh r1, [r0] + ldr r0, [r3, #0x50] + adds r1, r3, #0 + adds r1, #0x3e + ldrb r1, [r1] + adds r0, #0x3e + strb r1, [r0] + mov r0, ip + strb r2, [r0] + pop {pc} + + thumb_func_start sub_080A83A0 +sub_080A83A0: @ 0x080A83A0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806FBD8 + cmp r0, #0 + beq _080A83B0 + movs r0, #1 + strb r0, [r4, #0xc] +_080A83B0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A83B4 +sub_080A83B4: @ 0x080A83B4 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + cmp r5, #0 + bne _080A83C2 + bl sub_0805E780 +_080A83C2: + ldr r0, [r5, #4] + cmp r0, #0 + bne _080A83CC + bl sub_0805E780 +_080A83CC: + adds r0, r5, #0 + adds r0, #0x5a + ldrb r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x18 + ldr r1, _080A8424 @ =gUnk_0812966C + adds r2, r0, r1 + ldr r1, [r4, #0x48] + ldrb r0, [r2] + strb r0, [r1] + adds r2, #1 + adds r0, r5, #0 + adds r0, #0x5b + ldrb r0, [r0] + cmp r0, #0x40 + bne _080A83F4 + ldr r1, [r4, #0x48] + ldrb r0, [r1] + rsbs r0, r0, #0 + strb r0, [r1] +_080A83F4: + ldr r1, [r4, #0x48] + ldrb r0, [r2] + strb r0, [r1, #1] + adds r2, #1 + ldr r1, [r4, #0x48] + ldrb r0, [r2] + strb r0, [r1, #6] + ldr r1, [r4, #0x48] + ldrb r0, [r2, #1] + strb r0, [r1, #7] + adds r0, r5, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _080A8428 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A8438 + movs r0, #0x7f + ands r0, r1 + b _080A8436 + .align 2, 0 +_080A8424: .4byte gUnk_0812966C +_080A8428: + ldrb r1, [r4, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080A8438 + movs r0, #0x80 + orrs r0, r1 +_080A8436: + strb r0, [r4, #0x10] +_080A8438: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080A843C +sub_080A843C: @ 0x080A843C + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080A8454 @ =gUnk_081296F0 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080A8454: .4byte gUnk_081296F0 + + thumb_func_start sub_080A8458 +sub_080A8458: @ 0x080A8458 + push {lr} + ldr r2, _080A846C @ =gUnk_08129704 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A846C: .4byte gUnk_08129704 + + thumb_func_start sub_080A8470 +sub_080A8470: @ 0x080A8470 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x41 + ldrb r0, [r2] + cmp r0, #0x80 + bne _080A8496 + adds r0, r4, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0x68 + bne _080A848E + movs r0, #0x86 + bl sub_08004488 +_080A848E: + adds r0, r4, #0 + bl sub_0805E7BC + b _080A84C6 +_080A8496: + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + ldrb r0, [r2] + adds r0, #0x7e + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _080A84B8 + adds r0, r4, #0 + bl sub_080A8680 + b _080A84C6 +_080A84B8: + adds r0, r4, #0 + movs r1, #0x19 + bl sub_08004260 + adds r0, r4, #0 + bl sub_080A86A0 +_080A84C6: + pop {r4, pc} + + thumb_func_start sub_080A84C8 +sub_080A84C8: @ 0x080A84C8 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x30 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + ldrh r0, [r4, #0x36] + subs r0, #4 + strh r0, [r4, #0x36] + movs r0, #0x15 + bl sub_0807CC30 + cmp r0, #0 + bne _080A84F0 + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x68 + strb r0, [r1] +_080A84F0: + ldr r0, _080A8500 @ =0x0000018D + bl sub_08004488 + adds r0, r4, #0 + movs r1, #0x18 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 +_080A8500: .4byte 0x0000018D + + thumb_func_start sub_080A8504 +sub_080A8504: @ 0x080A8504 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080AF090 + cmp r0, #0 + beq _080A853C + adds r0, r4, #0 + bl sub_080A7EB0 + cmp r0, #0 + beq _080A8524 + bl sub_0805E780 +_080A8524: + adds r0, r4, #0 + bl sub_08016AD2 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A8558 + movs r0, #4 + strb r0, [r4, #0xc] + b _080A8558 +_080A853C: + ldrh r1, [r4, #0x2a] + adds r0, r4, #0 + bl sub_0800417E + adds r0, r4, #0 + bl sub_08016AD2 + adds r0, r4, #0 + movs r1, #0x19 + bl sub_08004260 + adds r0, r4, #0 + bl sub_080A86A0 +_080A8558: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _080A85B6 + ldr r5, [r4, #0x50] + ldr r0, [r5, #4] + cmp r0, #0 + beq _080A85B6 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080177A0 + cmp r0, #0 + beq _080A85B6 + adds r0, r4, #0 + adds r0, #0x3d + movs r3, #0 + movs r2, #0x10 + strb r2, [r0] + ldrb r0, [r4, #0x15] + rsbs r0, r0, #0 + adds r1, r4, #0 + adds r1, #0x3e + strb r0, [r1] + adds r1, #3 + movs r0, #0x80 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x42 + movs r1, #0xc + strb r1, [r0] + adds r0, #4 + strh r3, [r0] + adds r0, r5, #0 + adds r0, #0x3d + strb r2, [r0] + ldrb r0, [r4, #0x15] + adds r2, r5, #0 + adds r2, #0x3e + strb r0, [r2] + adds r2, #3 + movs r0, #0xc2 + strb r0, [r2] + adds r0, r5, #0 + adds r0, #0x42 + strb r1, [r0] + adds r0, #4 + strh r3, [r0] +_080A85B6: + pop {r4, r5, pc} + + thumb_func_start sub_080A85B8 +sub_080A85B8: @ 0x080A85B8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080AF090 + cmp r0, #0 + beq _080A85F2 + adds r0, r4, #0 + bl sub_080A7EB0 + cmp r0, #0 + beq _080A85D8 + bl sub_0805E780 +_080A85D8: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A860E + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + b _080A860E +_080A85F2: + ldrh r1, [r4, #0x2a] + adds r0, r4, #0 + bl sub_0800417E + adds r0, r4, #0 + bl sub_08016AD2 + adds r0, r4, #0 + movs r1, #0x19 + bl sub_08004260 + adds r0, r4, #0 + bl sub_080A86A0 +_080A860E: + pop {r4, pc} + + thumb_func_start sub_080A8610 +sub_080A8610: @ 0x080A8610 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A8628 + bl sub_0805E780 +_080A8628: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A862C +sub_080A862C: @ 0x080A862C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080AF090 + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #0 + beq _080A864E + cmp r0, #1 + beq _080A8654 + b _080A8662 +_080A864E: + bl sub_0805E780 + b _080A867E +_080A8654: + ldrb r0, [r4, #0x10] + movs r1, #0x7f + ands r1, r0 + strb r1, [r4, #0x10] + movs r0, #0x90 + lsls r0, r0, #1 + strh r0, [r4, #0x24] +_080A8662: + ldrb r1, [r4, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080A867E + ldrb r2, [r4, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] +_080A867E: + pop {r4, pc} + + thumb_func_start sub_080A8680 +sub_080A8680: @ 0x080A8680 + push {lr} + movs r1, #2 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + movs r1, #3 + strb r1, [r0, #0xe] + movs r1, #1 + strb r1, [r0, #0xf] + movs r0, #0x8c + lsls r0, r0, #1 + bl sub_08004488 + pop {pc} + + thumb_func_start sub_080A86A0 +sub_080A86A0: @ 0x080A86A0 + push {lr} + movs r3, #0 + movs r1, #3 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + strh r3, [r0, #0x24] + movs r0, #0xc7 + lsls r0, r0, #1 + bl sub_08004488 + pop {pc} + + thumb_func_start sub_080A86BC +sub_080A86BC: @ 0x080A86BC + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080A86D4 @ =gUnk_08129718 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080A86D4: .4byte gUnk_08129718 + + thumb_func_start sub_080A86D8 +sub_080A86D8: @ 0x080A86D8 + push {lr} + ldr r2, _080A86EC @ =gUnk_0812972C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A86EC: .4byte gUnk_0812972C + + thumb_func_start sub_080A86F0 +sub_080A86F0: @ 0x080A86F0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r1, [r4, #0x50] + cmp r1, #0 + bne _080A8700 + bl sub_0805E780 + b _080A876E +_080A8700: + adds r5, r1, #0 + adds r5, #0x83 + ldrb r1, [r5] + movs r3, #0x3f + adds r0, r3, #0 + ands r0, r1 + cmp r0, #3 + bne _080A8768 + ldr r0, _080A875C @ =gUnk_03003F80 + ldrb r0, [r0, #0xf] + cmp r0, #0 + beq _080A876E + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _080A8760 @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r3 + movs r6, #0x32 + ldrsh r1, [r4, r6] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + ldr r1, _080A8764 @ =gUnk_03001160 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002E0 + cmp r0, #0 + bne _080A876E + adds r0, r4, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x80 + bne _080A876E + ldrb r1, [r5] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5] + bl sub_0805E780 + b _080A876E + .align 2, 0 +_080A875C: .4byte gUnk_03003F80 +_080A8760: .4byte gUnk_03000BF0 +_080A8764: .4byte gUnk_03001160 +_080A8768: + adds r0, r4, #0 + bl sub_0805E7BC +_080A876E: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080A8770 +sub_080A8770: @ 0x080A8770 + movs r1, #1 + strb r1, [r0, #0xc] + adds r3, r0, #0 + adds r3, #0x3c + ldrb r2, [r3] + movs r1, #0x10 + orrs r1, r2 + strb r1, [r3] + ldr r1, _080A8788 @ =gUnk_08129734 + str r1, [r0, #0x48] + bx lr + .align 2, 0 +_080A8788: .4byte gUnk_08129734 + + thumb_func_start sub_080A878C +sub_080A878C: @ 0x080A878C + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, [r5, #0x50] + cmp r4, #0 + bne _080A879A + bl sub_0805E780 +_080A879A: + ldr r0, [r4, #4] + cmp r0, #0 + bne _080A87A4 + bl sub_0805E780 +_080A87A4: + adds r0, r4, #0 + adds r0, #0x83 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #3 + beq _080A87B6 + bl sub_0805E780 +_080A87B6: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FA24 + ldrh r0, [r5, #0x36] + adds r0, #2 + strh r0, [r5, #0x36] + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080A87C8 +sub_080A87C8: @ 0x080A87C8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080A87E0 @ =gUnk_08129740 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080A87E0: .4byte gUnk_08129740 + + thumb_func_start sub_080A87E4 +sub_080A87E4: @ 0x080A87E4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #1 + bne _080A8804 + ldr r0, [r4, #0x54] + cmp r0, #0 + bne _080A87F8 + bl sub_0805E780 +_080A87F8: + ldr r0, [r4, #0x54] + ldr r0, [r0, #4] + cmp r0, #0 + bne _080A8804 + bl sub_0805E780 +_080A8804: + ldr r0, _080A8818 @ =gUnk_08129754 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080A8818: .4byte gUnk_08129754 + + thumb_func_start sub_080A881C +sub_080A881C: @ 0x080A881C + push {lr} + adds r1, r0, #0 + adds r2, r1, #0 + adds r2, #0x46 + movs r0, #0 + strh r0, [r2] + ldrb r2, [r1, #0xa] + cmp r2, #0 + bne _080A8854 + ldr r0, [r1, #0x50] + str r2, [r0, #0x54] + adds r0, r1, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x80 + bne _080A884A + ldr r0, _080A8850 @ =gUnk_03003F80 + movs r1, #0xf0 + strb r1, [r0, #0xf] + movs r0, #2 + rsbs r0, r0, #0 + bl sub_080526A0 +_080A884A: + bl sub_0805E780 + b _080A8866 + .align 2, 0 +_080A8850: .4byte gUnk_03003F80 +_080A8854: + ldrb r0, [r1, #0xc] + cmp r0, #1 + bhi _080A8866 + movs r0, #2 + strb r0, [r1, #0xc] + ldr r0, [r1, #0x50] + adds r0, #0x83 + movs r1, #0xc0 + strb r1, [r0] +_080A8866: + pop {pc} + + thumb_func_start sub_080A8868 +sub_080A8868: @ 0x080A8868 + push {r4, lr} + adds r3, r0, #0 + movs r4, #0 + movs r0, #1 + strb r0, [r3, #0xc] + strb r4, [r3, #0xd] + ldrb r1, [r3, #0x18] + subs r0, #0x32 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r3, #0x18] + movs r0, #0x80 + lsls r0, r0, #8 + str r0, [r3, #0x20] + ldr r0, _080A88A4 @ =gUnk_08129764 + str r0, [r3, #0x48] + adds r2, r3, #0 + adds r2, #0x3c + ldrb r0, [r2] + orrs r1, r0 + strb r1, [r2] + ldrb r0, [r3, #0xa] + cmp r0, #1 + beq _080A88B8 + cmp r0, #1 + bgt _080A88A8 + cmp r0, #0 + beq _080A88AE + b _080A88C6 + .align 2, 0 +_080A88A4: .4byte gUnk_08129764 +_080A88A8: + cmp r0, #2 + beq _080A88BE + b _080A88C6 +_080A88AE: + adds r0, r3, #0 + movs r1, #0 + bl sub_08004260 + b _080A88C6 +_080A88B8: + strb r4, [r3, #0xe] + strb r4, [r3, #0xf] + b _080A88C6 +_080A88BE: + adds r0, r3, #0 + movs r1, #5 + bl sub_08004260 +_080A88C6: + pop {r4, pc} + + thumb_func_start sub_080A88C8 +sub_080A88C8: @ 0x080A88C8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r6, [r4, #0x50] + cmp r6, #0 + bne _080A88D6 + movs r0, #2 + strb r0, [r4, #0xc] +_080A88D6: + ldr r0, [r6, #4] + cmp r0, #0 + bne _080A88E0 + movs r0, #2 + strb r0, [r4, #0xc] +_080A88E0: + ldr r3, _080A88FC @ =0xFFFF0000 + adds r0, r6, #0 + adds r1, r4, #0 + movs r2, #0 + bl sub_0806FA48 + ldrb r5, [r4, #0xa] + cmp r5, #1 + beq _080A890E + cmp r5, #1 + bgt _080A8900 + cmp r5, #0 + beq _080A8906 + b _080A8982 + .align 2, 0 +_080A88FC: .4byte 0xFFFF0000 +_080A8900: + cmp r5, #2 + beq _080A8962 + b _080A8982 +_080A8906: + ldrh r0, [r4, #0x36] + adds r0, #0x10 + strh r0, [r4, #0x36] + b _080A8982 +_080A890E: + ldrh r0, [r4, #0x36] + adds r0, #0xe + strh r0, [r4, #0x36] + ldr r0, [r4, #0x54] + bl sub_08078954 + ldr r1, [r4, #0x54] + adds r0, r4, #0 + bl sub_0806FA24 + ldrb r0, [r4, #0xe] + adds r1, r0, #1 + strb r1, [r4, #0xe] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xf + bls _080A8982 + ldr r2, [r4, #0x54] + ldrb r0, [r2, #0xe] + cmp r0, #0 + bne _080A8982 + movs r3, #2 + ands r1, r3 + cmp r1, #0 + beq _080A8946 + ldrb r0, [r2, #0xf] + adds r0, #1 + strb r0, [r2, #0xf] +_080A8946: + ldr r0, [r4, #0x54] + ldrb r1, [r0, #0xf] + cmp r1, #0x1f + bhi _080A8982 + movs r0, #3 + ands r0, r1 + cmp r0, #3 + bne _080A8982 + adds r1, r6, #0 + adds r1, #0x83 + movs r0, #0xc0 + strb r0, [r1] + strb r3, [r4, #0xc] + b _080A8982 +_080A8962: + ldrh r0, [r4, #0x36] + adds r0, #0xe + strh r0, [r4, #0x36] + ldr r1, _080A8984 @ =gUnk_03001160 + adds r0, r4, #0 + movs r2, #0xe + movs r3, #0xe + bl sub_080041A0 + cmp r0, #0 + beq _080A8982 + strb r5, [r4, #0xc] + adds r1, r6, #0 + adds r1, #0x83 + movs r0, #0xc0 + strb r0, [r1] +_080A8982: + pop {r4, r5, r6, pc} + .align 2, 0 +_080A8984: .4byte gUnk_03001160 + + thumb_func_start sub_080A8988 +sub_080A8988: @ 0x080A8988 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xa] + cmp r0, #1 + bne _080A89B4 + ldr r4, [r5, #0x54] + cmp r4, #0 + bne _080A899C + bl sub_0805E780 +_080A899C: + ldr r0, [r4, #4] + cmp r0, #0 + bne _080A89A6 + bl sub_0805E780 +_080A89A6: + adds r0, r4, #0 + bl sub_08078954 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 +_080A89B4: + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r5, #0 + bl sub_080044EC + cmp r0, #1 + bne _080A8A44 + adds r0, r5, #0 + bl sub_080043E8 + cmp r0, #0 + beq _080A8A00 + cmp r0, #2 + beq _080A89E0 + cmp r0, #2 + bhi _080A89DA + cmp r0, #1 + beq _080A89E6 + b _080A89FC +_080A89DA: + cmp r0, #3 + beq _080A89F2 + b _080A89FC +_080A89E0: + adds r0, r5, #0 + movs r1, #0xb + b _080A89EA +_080A89E6: + adds r0, r5, #0 + movs r1, #0 +_080A89EA: + movs r2, #0 + bl sub_080A29AC + b _080A89FC +_080A89F2: + adds r0, r5, #0 + movs r1, #0xc + movs r2, #0 + bl sub_080A29AC +_080A89FC: + bl sub_0805E780 +_080A8A00: + ldrb r0, [r5, #0xa] + cmp r0, #1 + beq _080A8A3E + cmp r0, #1 + bgt _080A8A10 + cmp r0, #0 + beq _080A8A16 + b _080A8A44 +_080A8A10: + cmp r0, #2 + beq _080A8A2A + b _080A8A44 +_080A8A16: + adds r0, r5, #0 + movs r1, #1 + bl sub_08004260 + movs r0, #0x84 + bl sub_08004488 + movs r0, #3 + strb r0, [r5, #0xc] + b _080A8A44 +_080A8A2A: + adds r0, r5, #0 + movs r1, #5 + movs r2, #0x80 + bl sub_080A29AC + adds r4, r0, #0 + cmp r4, #0 + beq _080A8A3E + movs r0, #0 + str r0, [r4, #0x50] +_080A8A3E: + adds r0, r5, #0 + bl sub_0805E7BC +_080A8A44: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080A8A48 +sub_080A8A48: @ 0x080A8A48 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A8A64 + adds r0, r4, #0 + bl sub_0805E7BC +_080A8A64: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A8A68 +sub_080A8A68: @ 0x080A8A68 + push {r4, lr} + adds r4, r0, #0 + bl sub_0800279C + cmp r0, #0 + beq _080A8A78 + bl sub_0805E780 +_080A8A78: + ldr r0, _080A8A8C @ =gUnk_0812979C + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080A8A8C: .4byte gUnk_0812979C + + thumb_func_start sub_080A8A90 +sub_080A8A90: @ 0x080A8A90 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _080A8AAA + movs r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x15] + lsrs r1, r1, #3 + adds r0, r2, #0 + bl sub_08004260 + b _080A8AC2 +_080A8AAA: + movs r0, #2 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x15] + lsrs r1, r1, #3 + movs r0, #4 + orrs r1, r0 + adds r0, r2, #0 + bl sub_08004260 + ldr r0, _080A8AC4 @ =0x0000015F + bl sub_08004488 +_080A8AC2: + pop {pc} + .align 2, 0 +_080A8AC4: .4byte 0x0000015F + + thumb_func_start sub_080A8AC8 +sub_080A8AC8: @ 0x080A8AC8 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + cmp r5, #0 + bne _080A8AD8 + bl sub_0805E7BC + b _080A8B34 +_080A8AD8: + ldr r0, [r5, #4] + cmp r0, #0 + bne _080A8AE6 + adds r0, r4, #0 + bl sub_0805E7BC + b _080A8B34 +_080A8AE6: + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _080A8B2E + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldrb r0, [r5, #0x15] + adds r2, r0, #4 + movs r0, #0x18 + ands r2, r0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080A8B1A + movs r0, #0 + strb r2, [r4, #0x15] + lsrs r1, r2, #2 + strb r1, [r4, #0x14] + strb r0, [r4, #0xe] + lsrs r1, r2, #3 + adds r0, r4, #0 + bl sub_08004260 + b _080A8B2E +_080A8B1A: + lsrs r0, r2, #2 + ldrb r1, [r4, #0x14] + cmp r0, r1 + beq _080A8B2E + strb r2, [r4, #0x15] + strb r0, [r4, #0x14] + lsrs r1, r2, #3 + adds r0, r4, #0 + bl sub_08004260 +_080A8B2E: + adds r0, r4, #0 + bl sub_08004274 +_080A8B34: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080A8B38 +sub_080A8B38: @ 0x080A8B38 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080AF090 + adds r2, r0, #0 + cmp r2, #0 + beq _080A8B66 + adds r0, r4, #0 + bl sub_080A7EB0 + cmp r0, #0 + beq _080A8B5E + adds r0, r4, #0 + bl sub_0805E7BC + b _080A8B74 +_080A8B5E: + adds r0, r4, #0 + bl sub_08016AD2 + b _080A8B74 +_080A8B66: + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + strh r2, [r4, #0x24] +_080A8B74: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A8B78 +sub_080A8B78: @ 0x080A8B78 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A8B94 + adds r0, r4, #0 + bl sub_0805E7BC +_080A8B94: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A8B98 +sub_080A8B98: @ 0x080A8B98 + push {r4, lr} + adds r4, r0, #0 + bl sub_0800279C + cmp r0, #0 + beq _080A8BA8 + bl sub_0805E780 +_080A8BA8: + ldr r0, _080A8BBC @ =gUnk_0812982C + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080A8BBC: .4byte gUnk_0812982C + + thumb_func_start sub_080A8BC0 +sub_080A8BC0: @ 0x080A8BC0 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _080A8BDA + movs r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x15] + lsrs r1, r1, #3 + adds r0, r2, #0 + bl sub_08004260 + b _080A8BF4 +_080A8BDA: + movs r0, #2 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x15] + lsrs r1, r1, #3 + movs r0, #4 + orrs r1, r0 + adds r0, r2, #0 + bl sub_08004260 + movs r0, #0xaf + lsls r0, r0, #1 + bl sub_08004488 +_080A8BF4: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080A8BF8 +sub_080A8BF8: @ 0x080A8BF8 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + cmp r5, #0 + bne _080A8C08 + bl sub_0805E7BC + b _080A8C48 +_080A8C08: + ldr r0, [r5, #4] + cmp r0, #0 + bne _080A8C16 + adds r0, r4, #0 + bl sub_0805E7BC + b _080A8C48 +_080A8C16: + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _080A8C42 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080A8C42 + ldrb r0, [r5, #0x15] + movs r1, #0x18 + ands r1, r0 + movs r0, #0 + strb r1, [r4, #0x15] + strb r0, [r4, #0xe] + lsrs r1, r1, #3 + adds r0, r4, #0 + bl sub_08004260 +_080A8C42: + adds r0, r4, #0 + bl sub_08004274 +_080A8C48: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080A8C4C +sub_080A8C4C: @ 0x080A8C4C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080AF090 + adds r2, r0, #0 + cmp r2, #0 + beq _080A8C7A + adds r0, r4, #0 + bl sub_080A7EB0 + cmp r0, #0 + beq _080A8C72 + adds r0, r4, #0 + bl sub_0805E7BC + b _080A8C88 +_080A8C72: + adds r0, r4, #0 + bl sub_08016AD2 + b _080A8C88 +_080A8C7A: + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + strh r2, [r4, #0x24] +_080A8C88: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A8C8C +sub_080A8C8C: @ 0x080A8C8C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A8CA8 + adds r0, r4, #0 + bl sub_0805E7BC +_080A8CA8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A8CAC +sub_080A8CAC: @ 0x080A8CAC + push {r4, lr} + adds r4, r0, #0 + bl sub_0800279C + cmp r0, #0 + beq _080A8CBC + bl sub_0805E780 +_080A8CBC: + ldr r0, _080A8CD0 @ =gUnk_081298B8 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080A8CD0: .4byte gUnk_081298B8 + + thumb_func_start sub_080A8CD4 +sub_080A8CD4: @ 0x080A8CD4 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _080A8CEE + movs r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x15] + lsrs r1, r1, #3 + adds r0, r2, #0 + bl sub_08004260 + b _080A8D08 +_080A8CEE: + movs r0, #2 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x15] + lsrs r1, r1, #3 + movs r0, #4 + orrs r1, r0 + adds r0, r2, #0 + bl sub_08004260 + movs r0, #0xb0 + lsls r0, r0, #1 + bl sub_08004488 +_080A8D08: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080A8D0C +sub_080A8D0C: @ 0x080A8D0C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + cmp r5, #0 + bne _080A8D1C + bl sub_0805E7BC + b _080A8D5C +_080A8D1C: + ldr r0, [r5, #4] + cmp r0, #0 + bne _080A8D2A + adds r0, r4, #0 + bl sub_0805E7BC + b _080A8D5C +_080A8D2A: + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _080A8D56 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080A8D56 + ldrb r0, [r5, #0x15] + movs r1, #0x18 + ands r1, r0 + movs r0, #0 + strb r1, [r4, #0x15] + strb r0, [r4, #0xe] + lsrs r1, r1, #3 + adds r0, r4, #0 + bl sub_08004260 +_080A8D56: + adds r0, r4, #0 + bl sub_08004274 +_080A8D5C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080A8D60 +sub_080A8D60: @ 0x080A8D60 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080AF090 + adds r2, r0, #0 + cmp r2, #0 + beq _080A8D8E + adds r0, r4, #0 + bl sub_080A7EB0 + cmp r0, #0 + beq _080A8D86 + adds r0, r4, #0 + bl sub_0805E7BC + b _080A8D9C +_080A8D86: + adds r0, r4, #0 + bl sub_08016AD2 + b _080A8D9C +_080A8D8E: + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + strh r2, [r4, #0x24] +_080A8D9C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A8DA0 +sub_080A8DA0: @ 0x080A8DA0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A8DBC + adds r0, r4, #0 + bl sub_0805E7BC +_080A8DBC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A8DC0 +sub_080A8DC0: @ 0x080A8DC0 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080A8DD8 @ =gUnk_08129954 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080A8DD8: .4byte gUnk_08129954 + + thumb_func_start sub_080A8DDC +sub_080A8DDC: @ 0x080A8DDC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #3 + beq _080A8E12 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A8E12 + movs r2, #0x7f + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0x1e + beq _080A8E12 + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + adds r0, r2, #0 + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #0x53 + bl sub_08004260 +_080A8E12: + ldr r0, _080A8E24 @ =gUnk_08129968 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080A8E24: .4byte gUnk_08129968 + + thumb_func_start sub_080A8E28 +sub_080A8E28: @ 0x080A8E28 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r0, #1 + strb r0, [r5, #0xc] + ldr r0, _080A8E80 @ =0xFFFF0000 + str r0, [r5, #0x20] + ldrb r0, [r5, #0xa] + cmp r0, #3 + beq _080A8E6E + ldr r0, [r5, #0x50] + adds r1, r5, #0 + bl sub_0806FA24 + movs r1, #0x80 + lsls r1, r1, #5 + ldrb r2, [r5, #0x15] + adds r0, r5, #0 + bl sub_0806F5BC + ldr r0, [r5, #0x50] + ldr r2, [r5, #0x54] + ldr r1, [r0, #0x30] + ldr r0, [r2, #0x30] + subs r1, r1, r0 + str r1, [r5, #0x34] + ldr r0, [r5, #0x30] + subs r0, r0, r1 + str r0, [r5, #0x30] + adds r0, r5, #0 + movs r1, #0x51 + bl sub_08004260 + ldr r0, _080A8E84 @ =0x000001B5 + bl sub_080A3268 +_080A8E6E: + ldrb r4, [r5, #0xa] + cmp r4, #2 + beq _080A8EF2 + cmp r4, #2 + ble _080A8E88 + cmp r4, #3 + beq _080A8F02 + b _080A8FAE + .align 2, 0 +_080A8E80: .4byte 0xFFFF0000 +_080A8E84: .4byte 0x000001B5 +_080A8E88: + cmp r4, #0 + bge _080A8E8E + b _080A8FAE +_080A8E8E: + ldr r0, _080A8EC0 @ =gUnk_03001160 + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r3, #0x32 + ldrsh r2, [r0, r3] + adds r0, r5, #0 + bl sub_080041DC + adds r4, r0, #0 + ldrb r6, [r5, #0xa] + cmp r6, #1 + bne _080A8ECE + bl sub_08000E50 + adds r2, r0, #0 + ldr r0, _080A8EC4 @ =0x000001FF + ands r2, r0 + ldr r0, _080A8EC8 @ =gUnk_030010A0 + ldr r0, [r0] + ands r0, r6 + cmp r0, #0 + bne _080A8ECC + adds r4, r4, r2 + b _080A8ECE + .align 2, 0 +_080A8EC0: .4byte gUnk_03001160 +_080A8EC4: .4byte 0x000001FF +_080A8EC8: .4byte gUnk_030010A0 +_080A8ECC: + subs r4, r4, r2 +_080A8ECE: + cmp r4, #0x1f + bgt _080A8ED6 + movs r4, #0x20 + b _080A8EE0 +_080A8ED6: + movs r0, #0x80 + lsls r0, r0, #3 + cmp r4, r0 + ble _080A8EE0 + adds r4, r0, #0 +_080A8EE0: + lsls r1, r4, #8 + ldr r0, [r5, #0x34] + bl __divsi3 + lsls r0, r0, #0xd + str r0, [r5, #0x20] + movs r0, #0x1e + strb r0, [r5, #0xf] + b _080A8FAE +_080A8EF2: + ldr r0, [r5, #0x34] + movs r1, #0xc0 + lsls r1, r1, #9 + bl __divsi3 + lsls r0, r0, #0xc + str r0, [r5, #0x20] + b _080A8FAE +_080A8F02: + ldr r0, _080A8F64 @ =0xFF600000 + str r0, [r5, #0x34] + bl sub_08000E50 + ands r4, r0 + lsls r2, r4, #1 + ldr r1, _080A8F68 @ =gUnk_08129978 + adds r0, r2, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r3, [r5, #0x2e] + adds r0, r0, r3 + strh r0, [r5, #0x2e] + adds r0, r2, #1 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r5, #0x32] + adds r0, r0, r1 + strh r0, [r5, #0x32] + movs r0, #2 + ands r2, r0 + cmp r2, #0 + beq _080A8F74 + bl sub_08000E50 + ldr r2, _080A8F6C @ =gUnk_08129988 + movs r1, #0xf + ands r1, r0 + adds r1, r1, r2 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r2, [r5, #0x2e] + adds r0, r0, r2 + strh r0, [r5, #0x2e] + bl sub_08000E50 + ldr r2, _080A8F70 @ =gUnk_08129980 + movs r1, #7 + ands r1, r0 + adds r1, r1, r2 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r3, [r5, #0x32] + adds r0, r0, r3 + b _080A8F9E + .align 2, 0 +_080A8F64: .4byte 0xFF600000 +_080A8F68: .4byte gUnk_08129978 +_080A8F6C: .4byte gUnk_08129988 +_080A8F70: .4byte gUnk_08129980 +_080A8F74: + bl sub_08000E50 + ldr r2, _080A8FB0 @ =gUnk_08129980 + movs r1, #7 + ands r1, r0 + adds r1, r1, r2 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r1, [r5, #0x2e] + adds r0, r0, r1 + strh r0, [r5, #0x2e] + bl sub_08000E50 + ldr r2, _080A8FB4 @ =gUnk_08129988 + movs r1, #0xf + ands r1, r0 + adds r1, r1, r2 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r2, [r5, #0x32] + adds r0, r0, r2 +_080A8F9E: + strh r0, [r5, #0x32] + adds r0, r5, #0 + bl sub_08004168 + adds r0, r5, #0 + movs r1, #0 + bl sub_08004260 +_080A8FAE: + pop {r4, r5, r6, pc} + .align 2, 0 +_080A8FB0: .4byte gUnk_08129980 +_080A8FB4: .4byte gUnk_08129988 + + thumb_func_start sub_080A8FB8 +sub_080A8FB8: @ 0x080A8FB8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #3 + bne _080A8FE8 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _080A9054 + adds r0, r4, #0 + movs r1, #7 + bl sub_08008790 + adds r0, r4, #0 + movs r1, #4 + movs r2, #0 + bl sub_080A29AC + bl sub_0805E780 + b _080A9054 +_080A8FE8: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xa] + cmp r0, #2 + beq _080A901C + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _080A901C + movs r0, #0x1e + strb r0, [r4, #0xf] + ldr r1, _080A9048 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 +_080A901C: + adds r0, r4, #0 + movs r1, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _080A9054 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_080A90D8 + ldrb r0, [r4, #0xa] + cmp r0, #2 + bne _080A904C + movs r0, #0xf + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0x54 + bl sub_08004260 + b _080A9054 + .align 2, 0 +_080A9048: .4byte gUnk_03001160 +_080A904C: + adds r0, r4, #0 + movs r1, #0x52 + bl sub_08004260 +_080A9054: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A9058 +sub_080A9058: @ 0x080A9058 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xa] + cmp r0, #2 + bne _080A9098 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _080A908A + ldrb r0, [r4, #0x10] + movs r1, #0x7f + ands r1, r0 + strb r1, [r4, #0x10] + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0x55 + bl sub_08004260 + b _080A90BA +_080A908A: + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_080A90D8 + b _080A90BA +_080A9098: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A90BA + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #0x53 + bl sub_08004260 +_080A90BA: + pop {r4, pc} + + thumb_func_start sub_080A90BC +sub_080A90BC: @ 0x080A90BC + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A90D4 + bl sub_0805E780 +_080A90D4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A90D8 +sub_080A90D8: @ 0x080A90D8 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + movs r0, #0x74 + adds r0, r0, r5 + mov ip, r0 + ldrh r3, [r0] + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r7, _080A9154 @ =gUnk_03000BF0 + ldrh r1, [r7, #6] + subs r0, r0, r1 + asrs r4, r0, #4 + movs r6, #0x3f + adds r2, r4, #0 + ands r2, r6 + movs r1, #0x32 + ldrsh r0, [r5, r1] + ldrh r1, [r7, #8] + subs r0, r0, r1 + asrs r1, r0, #4 + adds r0, r1, #0 + ands r0, r6 + lsls r0, r0, #6 + orrs r2, r0 + cmp r3, r2 + beq _080A9152 + movs r0, #0x3f + ands r4, r0 + ands r1, r0 + lsls r0, r1, #6 + orrs r4, r0 + mov r2, ip + strh r4, [r2] + adds r0, r5, #0 + bl sub_080002A0 + cmp r0, #0x13 + beq _080A9128 + cmp r0, #0x34 + bne _080A9152 +_080A9128: + movs r0, #0xd3 + lsls r0, r0, #2 + movs r3, #0x2e + ldrsh r1, [r5, r3] + ldrh r2, [r7, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r6 + movs r3, #0x32 + ldrsh r2, [r5, r3] + ldrh r3, [r7, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r6 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0807B7D8 +_080A9152: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080A9154: .4byte gUnk_03000BF0 + + thumb_func_start sub_080A9158 +sub_080A9158: @ 0x080A9158 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _080A9166 + movs r0, #1 + strb r0, [r5, #0xc] +_080A9166: + ldr r4, [r5, #0x50] + cmp r4, #0 + beq _080A917C + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _080A917C + ldr r0, [r4, #4] + cmp r0, #0 + bne _080A91A4 +_080A917C: + adds r0, r5, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A9198 + ldr r1, [r5, #0x4c] + ldr r0, _080A91A0 @ =gUnk_03001160 + cmp r1, r0 + bne _080A9198 + adds r0, r5, #0 + bl sub_0803C0AC +_080A9198: + adds r0, r5, #0 + bl sub_0805E7BC + b _080A91D8 + .align 2, 0 +_080A91A0: .4byte gUnk_03001160 +_080A91A4: + ldr r1, _080A91DC @ =gUnk_08129998 + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r5, #0x48] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FA24 + adds r0, r4, #0 + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _080A91D8 + adds r1, r5, #0 + adds r1, #0x3d + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bne _080A91D8 + movs r0, #0xff + strb r0, [r1] +_080A91D8: + pop {r4, r5, pc} + .align 2, 0 +_080A91DC: .4byte gUnk_08129998 + + thumb_func_start sub_080A91E0 +sub_080A91E0: @ 0x080A91E0 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080A9288 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080A9204 + movs r0, #1 + strb r0, [r4, #0xc] + bl sub_08000E50 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_080A9204: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x80 + bne _080A921C + ldr r1, [r4, #0x50] + cmp r1, #0 + beq _080A9218 + movs r0, #0xff + strb r0, [r1, #0xa] +_080A9218: + bl sub_0805E780 +_080A921C: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _080A9230 + subs r0, #1 + strb r0, [r4, #0xf] + b _080A92F6 +_080A9230: + adds r0, r4, #0 + bl sub_080644C8 + cmp r0, #0 + beq _080A92F6 + ldrb r1, [r4, #0xe] + adds r0, r1, #1 + strb r0, [r4, #0xe] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _080A92F6 + movs r0, #0xc + bl sub_080A7EE0 + adds r5, r0, #0 + cmp r5, #0 + beq _080A92F6 + movs r0, #1 + strb r0, [r5, #0xa] + ldr r0, [r4, #0x50] + adds r0, #0x3e + ldrb r1, [r0] + ldr r3, _080A9284 @ =gUnk_081299C8 + ldrb r0, [r4, #0xe] + lsrs r0, r0, #2 + movs r2, #7 + ands r0, r2 + adds r0, r0, r3 + lsls r1, r1, #3 + ldrb r0, [r0] + adds r1, r1, r0 + movs r0, #0x1f + ands r1, r0 + strb r1, [r5, #0x15] + ldr r0, [r4, #0x50] + str r0, [r5, #0x50] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FA24 + b _080A92F6 + .align 2, 0 +_080A9284: .4byte gUnk_081299C8 +_080A9288: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080A92B0 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x12 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #0x16 + ands r0, r1 + strb r0, [r4, #0x18] + movs r0, #0x80 + lsls r0, r0, #4 + strh r0, [r4, #0x24] + ldr r0, _080A92F8 @ =gUnk_080FD1E4 + str r0, [r4, #0x48] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_080A92B0: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x80 + bne _080A92C8 + ldr r1, [r4, #0x50] + cmp r1, #0 + beq _080A92C4 + movs r0, #0xff + strb r0, [r1, #0xa] +_080A92C4: + bl sub_0805E780 +_080A92C8: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A92D8 + bl sub_0805E780 +_080A92D8: + adds r0, r4, #0 + bl sub_0806F69C + ldr r0, _080A92FC @ =gUnk_02027EB4 + movs r2, #0x2e + ldrsh r1, [r4, r2] + movs r3, #0x32 + ldrsh r2, [r4, r3] + movs r3, #2 + bl sub_080AE4CC + cmp r0, #0 + beq _080A92F6 + bl sub_0805E780 +_080A92F6: + pop {r4, r5, pc} + .align 2, 0 +_080A92F8: .4byte gUnk_080FD1E4 +_080A92FC: .4byte gUnk_02027EB4 + + thumb_func_start sub_080A9300 +sub_080A9300: @ 0x080A9300 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080A9318 @ =gUnk_081299D0 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080A9318: .4byte gUnk_081299D0 + + thumb_func_start sub_080A931C +sub_080A931C: @ 0x080A931C + push {lr} + ldr r2, _080A9330 @ =gUnk_081299E4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A9330: .4byte gUnk_081299E4 + + thumb_func_start sub_080A9334 +sub_080A9334: @ 0x080A9334 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A936C + movs r0, #0x3f + ands r0, r1 + cmp r0, #0 + beq _080A9368 + movs r0, #2 + rsbs r0, r0, #0 + bl sub_080526A0 + adds r0, r4, #0 + bl sub_080A9488 + adds r0, r4, #0 + adds r0, #0x42 + movs r1, #0 + strb r1, [r0] + subs r0, #5 + strb r1, [r0] + b _080A936C +_080A9368: + bl sub_0805E780 +_080A936C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A9370 +sub_080A9370: @ 0x080A9370 + push {r4, lr} + movs r4, #0 + movs r3, #1 + movs r1, #1 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x18] + subs r1, #5 + ands r1, r2 + orrs r1, r3 + strb r1, [r0, #0x18] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + movs r1, #0x6a + strb r1, [r0, #0xe] + strb r4, [r0, #0xf] + movs r1, #0xa0 + lsls r1, r1, #4 + str r1, [r0, #0x20] + ldrb r1, [r0, #0xa] + bl sub_080A94C0 + pop {r4, pc} + + thumb_func_start sub_080A93A0 +sub_080A93A0: @ 0x080A93A0 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + cmp r5, #0 + beq _080A93B0 + ldr r0, [r5, #4] + cmp r0, #0 + bne _080A93B4 +_080A93B0: + bl sub_0805E780 +_080A93B4: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _080A93BE + bl sub_0805E780 +_080A93BE: + ldrb r0, [r5, #0xf] + cmp r0, #0 + beq _080A93DA + movs r2, #0 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + str r2, [r5, #0x54] + movs r0, #0xfc + bl sub_080A3268 +_080A93DA: + pop {r4, r5, pc} + + thumb_func_start sub_080A93DC +sub_080A93DC: @ 0x080A93DC + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _080A9414 + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #0x20 + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] + adds r1, #2 + adds r0, r4, #0 + bl sub_08004260 + movs r0, #0xc5 + lsls r0, r0, #1 + bl sub_08004488 + adds r0, r4, #0 + bl sub_0806F69C + b _080A9424 +_080A9414: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A9424 + bl sub_0805E780 +_080A9424: + adds r0, r4, #0 + bl sub_080AF090 + pop {r4, pc} + + thumb_func_start sub_080A942C +sub_080A942C: @ 0x080A942C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A9440 + bl sub_0805E780 +_080A9440: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_080A9448 +sub_080A9448: @ 0x080A9448 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xa0 + lsls r1, r1, #6 + bl sub_08003FC4 + cmp r0, #0 + bne _080A9464 + adds r0, r4, #0 + bl sub_080A29BC + bl sub_0805E780 + b _080A9486 +_080A9464: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A9486 + movs r0, #2 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0x14] + adds r0, #1 + movs r1, #3 + ands r0, r1 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_080A94C0 +_080A9486: + pop {r4, pc} + + thumb_func_start sub_080A9488 +sub_080A9488: @ 0x080A9488 + push {r4, lr} + adds r4, r0, #0 + movs r0, #4 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #2 + strb r0, [r4, #0xe] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] + adds r0, r4, #0 + adds r0, #0x3e + ldrb r1, [r0] + movs r0, #0x18 + ands r0, r1 + lsrs r0, r0, #3 + strb r0, [r4, #0x14] + movs r0, #0x74 + bl sub_08004488 + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_080A94C0 + pop {r4, pc} + + thumb_func_start sub_080A94C0 +sub_080A94C0: @ 0x080A94C0 + push {r4, lr} + lsls r1, r1, #3 + ldr r2, _080A94FC @ =gUnk_081299F8 + adds r1, r1, r2 + ldrb r3, [r1] + movs r2, #1 + ands r3, r2 + lsls r3, r3, #6 + ldrb r4, [r0, #0x18] + movs r2, #0x41 + rsbs r2, r2, #0 + ands r2, r4 + orrs r2, r3 + strb r2, [r0, #0x18] + ldrb r3, [r1, #1] + lsls r3, r3, #7 + movs r4, #0x7f + ands r2, r4 + orrs r2, r3 + strb r2, [r0, #0x18] + ldrb r2, [r1, #2] + adds r3, r0, #0 + adds r3, #0x58 + strb r2, [r3] + ldr r1, [r1, #4] + str r1, [r0, #0x48] + ldrb r1, [r3] + bl sub_08004260 + pop {r4, pc} + .align 2, 0 +_080A94FC: .4byte gUnk_081299F8 + + thumb_func_start sub_080A9500 +sub_080A9500: @ 0x080A9500 + push {lr} + ldr r2, _080A9514 @ =gUnk_08129A64 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A9514: .4byte gUnk_08129A64 + + thumb_func_start sub_080A9518 +sub_080A9518: @ 0x080A9518 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0xa + strb r1, [r0, #0xe] + ldrh r1, [r0, #0x36] + subs r1, #2 + strh r1, [r0, #0x36] + ldrh r1, [r0, #0x32] + adds r1, #2 + strh r1, [r0, #0x32] + movs r1, #0 + bl sub_08004260 + ldr r0, _080A953C @ =0x00000149 + bl sub_080A3268 + pop {pc} + .align 2, 0 +_080A953C: .4byte 0x00000149 + + thumb_func_start sub_080A9540 +sub_080A9540: @ 0x080A9540 + push {r4, lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xe] + subs r0, #1 + strb r0, [r3, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A9578 + movs r0, #2 + strb r0, [r3, #0xc] + ldrb r1, [r3, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r3, #0x10] + adds r2, r3, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r3, #0x32] + adds r0, #6 + strh r0, [r3, #0x32] + adds r0, r3, #0 + movs r1, #1 + bl sub_08004260 + b _080A95B6 +_080A9578: + ldrh r1, [r3, #0x36] + movs r2, #0x36 + ldrsh r0, [r3, r2] + cmp r0, #0 + beq _080A9586 + adds r0, r1, #1 + strh r0, [r3, #0x36] +_080A9586: + ldrb r1, [r3, #0x15] + lsls r1, r1, #1 + ldr r0, _080A95B8 @ =gUnk_080C9160 + adds r1, r1, r0 + movs r4, #0 + ldrsh r2, [r1, r4] + movs r4, #0x24 + ldrsh r0, [r3, r4] + muls r2, r0, r2 + ldr r0, [r3, #0x2c] + adds r0, r0, r2 + str r0, [r3, #0x2c] + adds r1, #0x80 + movs r0, #0 + ldrsh r1, [r1, r0] + movs r2, #0x24 + ldrsh r0, [r3, r2] + muls r1, r0, r1 + ldr r0, [r3, #0x30] + subs r0, r0, r1 + str r0, [r3, #0x30] + adds r0, r3, #0 + bl sub_08004274 +_080A95B6: + pop {r4, pc} + .align 2, 0 +_080A95B8: .4byte gUnk_080C9160 + + thumb_func_start sub_080A95BC +sub_080A95BC: @ 0x080A95BC + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A95D8 + adds r0, r4, #0 + bl sub_0805E7BC +_080A95D8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A95DC +sub_080A95DC: @ 0x080A95DC + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080A95F4 @ =gUnk_08129ABC + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080A95F4: .4byte gUnk_08129ABC + + thumb_func_start sub_080A95F8 +sub_080A95F8: @ 0x080A95F8 + push {lr} + ldr r2, _080A960C @ =gUnk_08129AD0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A960C: .4byte gUnk_08129AD0 + + thumb_func_start sub_080A9610 +sub_080A9610: @ 0x080A9610 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #1 + strb r5, [r4, #0xc] + ldrb r0, [r4, #0xa] + cmp r0, #1 + beq _080A9660 + cmp r0, #1 + bgt _080A9628 + cmp r0, #0 + beq _080A9632 + b _080A9756 +_080A9628: + cmp r0, #2 + beq _080A96D0 + cmp r0, #3 + beq _080A9718 + b _080A9756 +_080A9632: + movs r1, #0x90 + lsls r1, r1, #7 + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F62C + movs r1, #0 + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + strb r1, [r4, #0xe] + ldrb r0, [r4, #0x15] + strb r0, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x78 + movs r0, #0x96 + lsls r0, r0, #1 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + b _080A9756 +_080A9660: + ldrb r0, [r4, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + bl sub_08000E50 + ldr r2, _080A96C8 @ =0x000001FF + adds r1, r2, #0 + ands r0, r1 + adds r2, #1 + adds r1, r2, #0 + adds r0, r0, r1 + strh r0, [r4, #0x24] + bl sub_08000E50 + ldr r1, _080A96CC @ =0x00001FFF + ands r1, r0 + movs r0, #0xc0 + lsls r0, r0, #9 + adds r1, r1, r0 + str r1, [r4, #0x20] + bl sub_08000E50 + movs r1, #7 + ands r0, r1 + subs r0, #4 + ldrb r1, [r4, #0x15] + subs r1, r1, r0 + strb r1, [r4, #0x15] + movs r0, #0x96 + lsls r0, r0, #2 + str r0, [r4, #0x78] + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F62C + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 + b _080A9756 + .align 2, 0 +_080A96C8: .4byte 0x000001FF +_080A96CC: .4byte 0x00001FFF +_080A96D0: + bl sub_08000E50 + ands r0, r5 + cmp r0, #0 + beq _080A96EA + bl sub_08000E50 + movs r1, #7 + ands r0, r1 + ldrb r1, [r4, #0x15] + adds r0, r0, r1 + strb r0, [r4, #0x15] + b _080A96F8 +_080A96EA: + bl sub_08000E50 + movs r1, #7 + ands r0, r1 + ldrb r1, [r4, #0x15] + subs r1, r1, r0 + strb r1, [r4, #0x15] +_080A96F8: + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + movs r0, #0x30 + strb r0, [r4, #0xe] + movs r1, #0xa0 + lsls r1, r1, #7 + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F62C + adds r0, r4, #0 + movs r1, #5 + bl sub_08004260 + b _080A9756 +_080A9718: + ldr r0, _080A9760 @ =gUnk_03001160 + adds r1, r4, #0 + bl sub_0806FA24 + ldr r0, _080A9764 @ =0xFF600000 + str r0, [r4, #0x34] + ldrh r0, [r4, #0x2e] + adds r0, #0x60 + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x32] + adds r0, #0x40 + strh r0, [r4, #0x32] + bl sub_08000E50 + movs r1, #0xc0 + bl __modsi3 + ldrh r1, [r4, #0x2e] + subs r1, r1, r0 + strh r1, [r4, #0x2e] + bl sub_08000E50 + movs r1, #0x7f + ands r1, r0 + ldrh r0, [r4, #0x32] + subs r0, r0, r1 + strh r0, [r4, #0x32] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_080A9756: + ldr r0, _080A9768 @ =0x000001B5 + bl sub_080A3268 + pop {r4, r5, pc} + .align 2, 0 +_080A9760: .4byte gUnk_03001160 +_080A9764: .4byte 0xFF600000 +_080A9768: .4byte 0x000001B5 + + thumb_func_start sub_080A976C +sub_080A976C: @ 0x080A976C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #1 + bne _080A9778 + b _080A9908 +_080A9778: + cmp r0, #1 + bgt _080A9782 + cmp r0, #0 + beq _080A9790 + b _080A99EE +_080A9782: + cmp r0, #2 + bne _080A9788 + b _080A99A0 +_080A9788: + cmp r0, #3 + bne _080A978E + b _080A99D2 +_080A978E: + b _080A99EE +_080A9790: + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #2 + bne _080A979C + bl sub_0805E780 +_080A979C: + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _080A97E0 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A97E0 + movs r5, #0x7f + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + bne _080A97C0 + adds r0, r4, #0 + bl sub_080A99F0 +_080A97C0: + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + lsls r0, r0, #3 + strb r0, [r4, #0x15] + movs r1, #0 + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r4, #0x24] + movs r0, #1 + strb r0, [r4, #0xb] + strb r1, [r4, #0xe] + ldrb r1, [r4, #0x10] + adds r0, r5, #0 + ands r0, r1 + strb r0, [r4, #0x10] +_080A97E0: + ldr r1, [r4, #0x50] + adds r0, r4, #0 + movs r2, #0x40 + bl sub_0806FC80 + cmp r0, #0 + beq _080A9848 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _080A9804 + ldrb r0, [r4, #0x15] + movs r1, #0x80 + eors r0, r1 + strb r0, [r4, #0x15] + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r4, #0x24] + b _080A9848 +_080A9804: + ldr r1, [r4, #0x50] + adds r1, #0x45 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + ldr r0, [r4, #0x50] + adds r0, #0x3d + movs r1, #0x1e + strb r1, [r0] + ldr r1, [r4, #0x50] + adds r0, r1, #0 + adds r0, #0x7c + ldrb r0, [r0] + cmp r0, #0 + beq _080A983C + adds r1, #0x42 + movs r0, #0x18 + strb r0, [r1] + ldr r0, [r4, #0x50] + adds r0, #0x46 + movs r1, #0x80 + lsls r1, r1, #2 + strh r1, [r0] + ldr r1, [r4, #0x50] + ldrb r0, [r4, #0x15] + lsrs r0, r0, #3 + adds r1, #0x3e + strb r0, [r1] +_080A983C: + ldr r0, _080A98B8 @ =0x00000127 + bl sub_080A3268 + adds r0, r4, #0 + bl sub_080A99F0 +_080A9848: + adds r0, r4, #0 + bl sub_080042B8 + adds r5, r4, #0 + adds r5, #0x78 + ldrh r0, [r5] + subs r0, #1 + strh r0, [r5] + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F62C + ldrb r1, [r4, #0x15] + lsrs r1, r1, #3 + adds r0, r4, #0 + movs r2, #0 + bl sub_080AE58C + ldrh r1, [r4, #0x2a] + movs r0, #0xee + lsls r0, r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080A9882 + ldrb r0, [r4, #0x15] + rsbs r0, r0, #0 + strb r0, [r4, #0x15] +_080A9882: + ldrh r1, [r4, #0x2a] + movs r0, #0xee + ands r0, r1 + cmp r0, #0 + beq _080A989A + ldrb r0, [r4, #0x15] + rsbs r0, r0, #0 + movs r2, #0x80 + rsbs r2, r2, #0 + adds r1, r2, #0 + eors r0, r1 + strb r0, [r4, #0x15] +_080A989A: + ldrb r0, [r4, #0x15] + ldrb r1, [r4, #0xf] + cmp r0, r1 + bne _080A98A4 + b _080A99EE +_080A98A4: + movs r0, #0xb2 + lsls r0, r0, #1 + bl sub_080A3268 + ldrh r0, [r5] + cmp r0, #0 + bne _080A98BC + movs r0, #4 + b _080A98C0 + .align 2, 0 +_080A98B8: .4byte 0x00000127 +_080A98BC: + ldrb r0, [r4, #0xe] + adds r0, #1 +_080A98C0: + strb r0, [r4, #0xe] + ldrb r0, [r4, #0x15] + strb r0, [r4, #0xf] + ldrb r0, [r4, #0xe] + cmp r0, #1 + bhi _080A98CE + b _080A99EE +_080A98CE: + movs r5, #0 +_080A98D0: + adds r0, r4, #0 + movs r1, #0xf + movs r2, #1 + bl sub_0804A98C + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _080A98FC + ldr r0, [r4, #0x50] + str r0, [r1, #0x50] + ldr r1, [r4, #0x54] + ldr r0, _080A9904 @ =gUnk_08129ADC + adds r0, r5, r0 + ldrb r0, [r0] + ldrb r2, [r4, #0x15] + adds r0, r0, r2 + strb r0, [r1, #0x15] + ldr r1, [r4, #0x54] + adds r0, r4, #0 + bl sub_0806FA24 +_080A98FC: + adds r5, #1 + cmp r5, #2 + bls _080A98D0 + b _080A9998 + .align 2, 0 +_080A9904: .4byte gUnk_08129ADC +_080A9908: + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #2 + bne _080A9916 + adds r0, r4, #0 + bl sub_080A99F0 +_080A9916: + adds r0, r4, #0 + bl sub_08004274 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + beq _080A9950 + ldrb r1, [r4, #0x15] + lsrs r1, r1, #3 + adds r0, r4, #0 + movs r2, #0 + bl sub_080AE58C + ldrh r0, [r4, #0x2a] + cmp r0, #0 + bne _080A994A + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F62C + b _080A9950 +_080A994A: + adds r0, r4, #0 + bl sub_080A99F0 +_080A9950: + ldr r2, [r4, #0x78] + cmp r2, #0x1d + bhi _080A9978 + movs r0, #7 + ands r0, r2 + cmp r0, #0 + beq _080A996E + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r4, #0x18] + b _080A9978 +_080A996E: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_080A9978: + subs r1, r2, #1 + str r1, [r4, #0x78] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bne _080A998A + adds r0, r4, #0 + bl sub_080A99F0 +_080A998A: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A99EE +_080A9998: + adds r0, r4, #0 + bl sub_080A99F0 + b _080A99EE +_080A99A0: + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _080A99C2 + movs r2, #0x24 + ldrsh r1, [r4, r2] + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F62C + b _080A99EE +_080A99C2: + ldr r1, [r4, #0x54] + cmp r1, #0 + beq _080A99CC + movs r0, #1 + strb r0, [r1, #0xe] +_080A99CC: + bl sub_0805E780 + b _080A99EE +_080A99D2: + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _080A99EE + adds r0, r4, #0 + movs r1, #4 + movs r2, #0 + bl sub_080A29AC + bl sub_0805E780 +_080A99EE: + pop {r4, r5, pc} + + thumb_func_start sub_080A99F0 +sub_080A99F0: @ 0x080A99F0 + push {lr} + movs r1, #4 + movs r2, #0 + bl sub_080A29AC + bl sub_0805E780 + pop {pc} + + thumb_func_start sub_080A9A00 +sub_080A9A00: @ 0x080A9A00 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080A9A18 @ =gUnk_08129AE0 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080A9A18: .4byte gUnk_08129AE0 + + thumb_func_start sub_080A9A1C +sub_080A9A1C: @ 0x080A9A1C + push {lr} + ldr r2, _080A9A30 @ =gUnk_08129AF8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A9A30: .4byte gUnk_08129AF8 + + thumb_func_start sub_080A9A34 +sub_080A9A34: @ 0x080A9A34 + push {lr} + adds r2, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x9d + bne _080A9A62 + movs r0, #3 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] + movs r0, #0xa8 + lsls r0, r0, #0xa + str r0, [r2, #0x20] + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] +_080A9A62: + pop {pc} + + thumb_func_start sub_080A9A64 +sub_080A9A64: @ 0x080A9A64 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #2 + bhi _080A9A7E + adds r0, r4, #0 + bl sub_0806F520 + cmp r0, #0 + bne _080A9A7E + adds r0, r4, #0 + bl sub_080A9BA8 +_080A9A7E: + ldr r0, _080A9A90 @ =gUnk_08129B08 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080A9A90: .4byte gUnk_08129B08 + + thumb_func_start sub_080A9A94 +sub_080A9A94: @ 0x080A9A94 + movs r1, #2 + strb r1, [r0, #0xd] + ldr r1, _080A9AA0 @ =0x0000FFFE + strh r1, [r0, #0x36] + bx lr + .align 2, 0 +_080A9AA0: .4byte 0x0000FFFE + + thumb_func_start sub_080A9AA4 +sub_080A9AA4: @ 0x080A9AA4 + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_080A9AAC +sub_080A9AAC: @ 0x080A9AAC + push {lr} + bl sub_0806F3E4 + pop {pc} + + thumb_func_start sub_080A9AB4 +sub_080A9AB4: @ 0x080A9AB4 + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + bx lr + .align 2, 0 + + thumb_func_start nullsub_128 +nullsub_128: @ 0x080A9AC0 + bx lr + .align 2, 0 + + thumb_func_start sub_080A9AC4 +sub_080A9AC4: @ 0x080A9AC4 + push {lr} + bl sub_080A9BA8 + pop {pc} + + thumb_func_start sub_080A9ACC +sub_080A9ACC: @ 0x080A9ACC + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xb] + cmp r0, #1 + beq _080A9AE0 + cmp r0, #2 + beq _080A9AEE + movs r0, #1 + strb r0, [r2, #0xc] + b _080A9B0A +_080A9AE0: + movs r0, #2 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + b _080A9B0A +_080A9AEE: + movs r0, #3 + strb r0, [r2, #0xc] + movs r0, #0xa8 + lsls r0, r0, #0xa + str r0, [r2, #0x20] + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r3] +_080A9B0A: + movs r0, #2 + strb r0, [r2, #0x1c] + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _080A9B1E + adds r0, r2, #0 + movs r1, #5 + bl sub_08004260 + b _080A9B22 +_080A9B1E: + movs r0, #0 + strb r0, [r2, #0x1e] +_080A9B22: + pop {pc} + + thumb_func_start sub_080A9B24 +sub_080A9B24: @ 0x080A9B24 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _080A9B36 + adds r0, r4, #0 + bl sub_080A9BA8 +_080A9B36: + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #0xb + bne _080A9B46 + adds r0, r4, #0 + bl sub_080A9BD0 + b _080A9B50 +_080A9B46: + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_080A9C34 +_080A9B50: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A9B54 +sub_080A9B54: @ 0x080A9B54 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _080A9B66 + adds r0, r4, #0 + bl sub_080A9BA8 +_080A9B66: + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #9 + bne _080A9B76 + adds r0, r4, #0 + bl sub_080A9C34 + b _080A9B7C +_080A9B76: + adds r0, r4, #0 + bl sub_080A9C50 +_080A9B7C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A9B80 +sub_080A9B80: @ 0x080A9B80 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x20] + cmp r0, #0 + bge _080A9B92 + ldrb r0, [r4, #0x18] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x18] +_080A9B92: + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _080A9BA6 + adds r0, r4, #0 + bl sub_080A9BA8 +_080A9BA6: + pop {r4, pc} + + thumb_func_start sub_080A9BA8 +sub_080A9BA8: @ 0x080A9BA8 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xa] + cmp r0, #0 + bne _080A9BBE + adds r0, r1, #0 + movs r1, #5 + movs r2, #0 + bl sub_080A29AC + b _080A9BC8 +_080A9BBE: + adds r0, r1, #0 + movs r1, #0x3c + movs r2, #0 + bl sub_080A29AC +_080A9BC8: + bl sub_0805E780 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080A9BD0 +sub_080A9BD0: @ 0x080A9BD0 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r1, [r5, #0x50] + ldrb r0, [r1, #0x14] + cmp r0, #1 + beq _080A9BF8 + cmp r0, #1 + bgt _080A9BE6 + cmp r0, #0 + beq _080A9BF0 + b _080A9C06 +_080A9BE6: + cmp r0, #2 + beq _080A9C00 + cmp r0, #3 + beq _080A9BF8 + b _080A9C06 +_080A9BF0: + ldrb r0, [r1, #0x1e] + adds r2, r0, #0 + subs r2, #0x39 + b _080A9C06 +_080A9BF8: + ldrb r0, [r1, #0x1e] + adds r2, r0, #0 + subs r2, #0x3d + b _080A9C06 +_080A9C00: + ldrb r0, [r1, #0x1e] + adds r2, r0, #0 + subs r2, #0x41 +_080A9C06: + ldrb r0, [r1, #0x14] + lsls r0, r0, #2 + adds r0, r2, r0 + lsls r4, r0, #1 + adds r4, r4, r0 + ldr r0, _080A9C30 @ =gUnk_08129B20 + adds r4, r4, r0 + movs r2, #0 + ldrsb r2, [r4, r2] + movs r3, #1 + ldrsb r3, [r4, r3] + adds r0, r1, #0 + adds r1, r5, #0 + bl sub_0806FA90 + movs r0, #2 + ldrsb r0, [r4, r0] + ldrh r1, [r5, #0x36] + adds r0, r0, r1 + strh r0, [r5, #0x36] + pop {r4, r5, pc} + .align 2, 0 +_080A9C30: .4byte gUnk_08129B20 + + thumb_func_start sub_080A9C34 +sub_080A9C34: @ 0x080A9C34 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + adds r1, r4, #0 + movs r2, #0 + movs r3, #1 + bl sub_0806FA90 + adds r4, #0x63 + ldrb r0, [r4] + subs r0, #0xe + strb r0, [r4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A9C50 +sub_080A9C50: @ 0x080A9C50 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r1, [r5, #0x50] + ldrb r0, [r1, #0x14] + cmp r0, #1 + beq _080A9C78 + cmp r0, #1 + bgt _080A9C66 + cmp r0, #0 + beq _080A9C70 + b _080A9C86 +_080A9C66: + cmp r0, #2 + beq _080A9C80 + cmp r0, #3 + beq _080A9C78 + b _080A9C86 +_080A9C70: + ldrb r0, [r1, #0x1e] + adds r4, r0, #0 + subs r4, #0x27 + b _080A9C86 +_080A9C78: + ldrb r0, [r1, #0x1e] + adds r4, r0, #0 + subs r4, #0x2d + b _080A9C86 +_080A9C80: + ldrb r0, [r1, #0x1e] + adds r4, r0, #0 + subs r4, #0x33 +_080A9C86: + adds r0, r1, #0 + adds r1, r5, #0 + movs r2, #0 + movs r3, #1 + bl sub_0806FA90 + adds r0, r5, #0 + adds r0, #0x63 + ldr r1, _080A9CA4 @ =gUnk_08129B50 + adds r1, r4, r1 + ldrb r1, [r1] + ldrb r2, [r0] + adds r1, r1, r2 + strb r1, [r0] + pop {r4, r5, pc} + .align 2, 0 +_080A9CA4: .4byte gUnk_08129B50 + + thumb_func_start sub_080A9CA8 +sub_080A9CA8: @ 0x080A9CA8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, [r5, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _080A9CB8 + bl sub_0805E780 +_080A9CB8: + ldr r4, _080A9CD0 @ =gUnk_08129B58 + adds r0, r5, #0 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080A9CD0: .4byte gUnk_08129B58 + + thumb_func_start sub_080A9CD4 +sub_080A9CD4: @ 0x080A9CD4 + push {lr} + ldr r2, _080A9CE8 @ =gUnk_08129B70 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A9CE8: .4byte gUnk_08129B70 + + thumb_func_start nullsub_539 +nullsub_539: @ 0x080A9CEC + bx lr + .align 2, 0 + + thumb_func_start sub_080A9CF0 +sub_080A9CF0: @ 0x080A9CF0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F520 + cmp r0, #0 + bne _080A9D0A + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl sub_080A29AC + bl sub_0805E780 +_080A9D0A: + ldr r0, _080A9D1C @ =gUnk_08129B78 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080A9D1C: .4byte gUnk_08129B78 + + thumb_func_start sub_080A9D20 +sub_080A9D20: @ 0x080A9D20 + movs r1, #2 + strb r1, [r0, #0xd] + bx lr + .align 2, 0 + + thumb_func_start nullsub_540 +nullsub_540: @ 0x080A9D28 + bx lr + .align 2, 0 + + thumb_func_start sub_080A9D2C +sub_080A9D2C: @ 0x080A9D2C + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _080A9D64 + adds r0, r4, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0xa6 + bne _080A9D56 + movs r0, #2 + rsbs r0, r0, #0 + bl sub_080526A0 + ldr r0, _080A9D68 @ =gUnk_03001160 + movs r1, #0x7a + bl sub_0800449C + bl sub_08079D84 +_080A9D56: + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl sub_080A29AC + bl sub_0805E780 +_080A9D64: + pop {r4, pc} + .align 2, 0 +_080A9D68: .4byte gUnk_03001160 + + thumb_func_start sub_080A9D6C +sub_080A9D6C: @ 0x080A9D6C + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + ldr r1, [r0, #0x50] + ldrb r1, [r1, #0x14] + strb r1, [r0, #0x14] + ldrb r1, [r0, #0x14] + bl sub_080042AC + pop {pc} + + thumb_func_start sub_080A9D80 +sub_080A9D80: @ 0x080A9D80 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r3, _080A9D9C @ =0xFFFF0000 + adds r1, r4, #0 + movs r2, #0 + bl sub_0806FA48 + ldr r0, _080A9DA0 @ =0x0000FFFE + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 +_080A9D9C: .4byte 0xFFFF0000 +_080A9DA0: .4byte 0x0000FFFE + + thumb_func_start sub_080A9DA4 +sub_080A9DA4: @ 0x080A9DA4 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080A9DBC @ =gUnk_08129BEC + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080A9DBC: .4byte gUnk_08129BEC + + thumb_func_start sub_080A9DC0 +sub_080A9DC0: @ 0x080A9DC0 + push {lr} + ldr r2, _080A9DD4 @ =gUnk_08129C00 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080A9DD4: .4byte gUnk_08129C00 + + thumb_func_start sub_080A9DD8 +sub_080A9DD8: @ 0x080A9DD8 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _080A9DEE + adds r0, r4, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x80 + bne _080A9DF2 +_080A9DEE: + bl sub_0805E780 +_080A9DF2: + adds r0, r4, #0 + bl sub_080A9DC0 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A9DFC +sub_080A9DFC: @ 0x080A9DFC + push {lr} + movs r2, #1 + strb r2, [r0, #0xc] + movs r1, #0xb4 + strb r1, [r0, #0xe] + adds r1, r0, #0 + adds r1, #0x45 + strb r2, [r1] + movs r1, #0 + bl sub_08004260 + pop {pc} + + thumb_func_start sub_080A9E14 +sub_080A9E14: @ 0x080A9E14 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080AF090 + ldrh r0, [r4, #0x2a] + cmp r0, #0 + bne _080A9E34 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A9E42 +_080A9E34: + adds r0, r4, #0 + movs r1, #0x4f + movs r2, #0 + bl sub_080A29AC + bl sub_0805E780 +_080A9E42: + adds r0, r4, #0 + bl sub_080A7EB0 + cmp r0, #0 + beq _080A9E50 + bl sub_0805E780 +_080A9E50: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A9E54 +sub_080A9E54: @ 0x080A9E54 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, [r5, #0x54] + cmp r0, #0 + bne _080A9E60 + ldr r0, [r5, #0x50] +_080A9E60: + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + bne _080A9E78 + ldrb r1, [r5, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080A9E78 + movs r0, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] +_080A9E78: + ldr r4, _080A9E90 @ =gUnk_08129C7C + adds r0, r5, #0 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080A9E90: .4byte gUnk_08129C7C + + thumb_func_start sub_080A9E94 +sub_080A9E94: @ 0x080A9E94 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #2 + bhi _080A9EA4 + adds r0, r4, #0 + bl sub_080AA1D8 +_080A9EA4: + ldr r0, _080A9EB8 @ =gUnk_08129C90 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080A9EB8: .4byte gUnk_08129C90 + + thumb_func_start sub_080A9EBC +sub_080A9EBC: @ 0x080A9EBC + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080A9F4E + ldrb r0, [r4, #0xc] + cmp r0, #3 + beq _080A9EF2 + cmp r0, #4 + bne _080A9F18 + movs r0, #0 + strb r0, [r4, #0xf] + subs r0, #2 + bl sub_080526A0 + adds r0, r4, #0 + bl sub_080AF090 + adds r0, r4, #0 + bl sub_080042B8 + adds r5, r4, #0 + adds r5, #0x42 + b _080A9F4A +_080A9EF2: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + adds r5, r4, #0 + adds r5, #0x42 + cmp r0, #0 + beq _080A9F4A + adds r1, r4, #0 + adds r1, #0x82 + movs r0, #2 + strb r0, [r1] + movs r0, #0xff + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_080AA270 + movs r0, #0x20 + strb r0, [r4, #0xf] + b _080A9F4A +_080A9F18: + ldr r3, [r4, #0x50] + adds r0, r4, #0 + adds r0, #0x3d + ldrb r0, [r0] + adds r1, r3, #0 + adds r1, #0x3d + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + adds r1, #1 + strb r0, [r1] + adds r2, r4, #0 + adds r2, #0x42 + ldrb r1, [r2] + adds r0, r3, #0 + adds r0, #0x42 + strb r1, [r0] + ldrb r0, [r4, #0xc] + adds r5, r2, #0 + cmp r0, #1 + bne _080A9F4A + adds r0, r4, #0 + bl sub_080AA320 +_080A9F4A: + movs r0, #0 + strb r0, [r5] +_080A9F4E: + pop {r4, r5, pc} + + thumb_func_start sub_080A9F50 +sub_080A9F50: @ 0x080A9F50 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x80 + movs r2, #0 + strh r1, [r0] + movs r0, #0xff + strb r0, [r4, #0x14] + adds r0, r4, #0 + adds r0, #0x82 + strb r2, [r0] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldr r1, [r4, #0x50] + adds r0, r4, #0 + bl sub_0806FAD8 + adds r0, r4, #0 + bl sub_080AA270 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080A9F90 +sub_080A9F90: @ 0x080A9F90 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x80 + ldrh r0, [r1] + cmp r0, #0 + beq _080A9FA4 + subs r0, #1 + strh r0, [r1] + b _080A9FC8 +_080A9FA4: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080A9FB8 + adds r0, r4, #0 + bl sub_080AA270 + b _080A9FC8 +_080A9FB8: + adds r0, r4, #0 + bl sub_080AA2E0 + cmp r0, #0 + beq _080A9FC8 + adds r0, r4, #0 + bl sub_080AA320 +_080A9FC8: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + + thumb_func_start sub_080A9FD0 +sub_080A9FD0: @ 0x080A9FD0 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080042B8 + adds r2, r5, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080A9FF2 + movs r0, #0xbf + ands r0, r1 + strb r0, [r2] + ldr r0, _080AA038 @ =0x0000015D + bl sub_08004488 +_080A9FF2: + movs r0, #0x2e + ldrsh r1, [r5, r0] + ldr r2, _080AA03C @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r4, #0x32 + ldrsh r0, [r5, r4] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r4, r5, #0 + adds r4, #0x78 + strh r1, [r4] + ldrh r0, [r4] + adds r5, #0x38 + ldrb r1, [r5] + bl sub_080002B0 + movs r1, #0x80 + lsls r1, r1, #7 + cmp r0, r1 + bne _080AA034 + ldr r0, _080AA040 @ =0x00004005 + ldrh r1, [r4] + ldrb r2, [r5] + bl sub_0800015E +_080AA034: + pop {r4, r5, pc} + .align 2, 0 +_080AA038: .4byte 0x0000015D +_080AA03C: .4byte gUnk_03000BF0 +_080AA040: .4byte 0x00004005 + + thumb_func_start sub_080AA044 +sub_080AA044: @ 0x080AA044 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x54] + cmp r5, #0 + bne _080AA052 + bl sub_0805E780 +_080AA052: + ldr r0, [r5, #4] + cmp r0, #0 + bne _080AA05E + bl sub_0805E780 + b _080AA0A2 +_080AA05E: + ldrh r0, [r5, #0x12] + ldrb r1, [r5, #0x1e] + bl sub_080700C8 + adds r3, r0, #0 + ldrb r1, [r5, #0x14] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080AA08C + movs r2, #0 + ldrsb r2, [r3, r2] + rsbs r2, r2, #0 + lsls r2, r2, #0x10 + ldrb r3, [r3, #1] + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + lsls r3, r3, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA48 + b _080AA0A2 +_080AA08C: + movs r2, #0 + ldrsb r2, [r3, r2] + lsls r2, r2, #0x10 + ldrb r3, [r3, #1] + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + lsls r3, r3, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA48 +_080AA0A2: + adds r0, r5, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + bne _080AA108 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _080AA0B8 + subs r0, #1 + strb r0, [r4, #0xf] + b _080AA108 +_080AA0B8: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080AA108 + movs r0, #4 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x82 + movs r0, #3 + strb r0, [r1] + movs r0, #0x40 + strb r0, [r4, #0xf] + ldrb r0, [r5, #0x14] + lsls r1, r0, #2 + strb r1, [r4, #0x15] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1a + strb r0, [r4, #0x14] + ldr r0, _080AA10C @ =gUnk_080FD150 + str r0, [r4, #0x48] + bl sub_08052660 + cmp r0, #0 + beq _080AA100 + ldrb r0, [r4, #0x1b] + movs r1, #0x3f + ands r1, r0 + movs r0, #0x40 + orrs r1, r0 + strb r1, [r4, #0x1b] +_080AA100: + adds r0, r4, #0 + movs r1, #0 + bl sub_080AA3E0 +_080AA108: + pop {r4, r5, pc} + .align 2, 0 +_080AA10C: .4byte gUnk_080FD150 + + thumb_func_start sub_080AA110 +sub_080AA110: @ 0x080AA110 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r6, r0, #0 + ldr r7, [r6, #0x54] + cmp r7, #0 + beq _080AA1B6 + ldr r0, [r7, #4] + cmp r0, #0 + bne _080AA128 + str r0, [r6, #0x54] +_080AA128: + ldrb r0, [r6, #0xf] + adds r5, r0, #0 + cmp r5, #0 + beq _080AA136 + subs r0, #1 + strb r0, [r6, #0xf] + b _080AA1C4 +_080AA136: + adds r0, r6, #0 + bl sub_080AA374 + cmp r0, #0 + beq _080AA1C4 + adds r0, r7, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _080AA14E + bl sub_0805E780 +_080AA14E: + movs r0, #0xf2 + bl sub_08004488 + movs r4, #1 + strb r4, [r6, #0xc] + movs r0, #0xff + strb r0, [r6, #0x14] + adds r0, r6, #0 + adds r0, #0x82 + strb r5, [r0] + strb r5, [r6, #0xe] + subs r0, #2 + movs r1, #0 + mov sb, r1 + movs r1, #0x20 + mov r8, r1 + mov r1, r8 + strh r1, [r0] + ldrb r1, [r6, #0x1b] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r6, #0x1b] + ldr r0, [r6, #0x54] + str r0, [r6, #0x50] + str r5, [r6, #0x54] + adds r0, r6, #0 + bl sub_080AA270 + ldr r7, [r6, #0x50] + strb r4, [r7, #0xc] + ldrb r0, [r7, #0x14] + lsls r0, r0, #2 + strb r0, [r7, #0x15] + strh r5, [r7, #0x24] + adds r0, r7, #0 + adds r0, #0x82 + strb r4, [r0] + mov r0, sb + strb r0, [r7, #0xe] + movs r0, #0x78 + strb r0, [r7, #0xf] + adds r0, r7, #0 + adds r0, #0x80 + mov r1, r8 + strh r1, [r0] + adds r0, r7, #0 + movs r1, #1 + bl sub_080AA3E0 + b _080AA1C4 +_080AA1B6: + adds r0, r6, #0 + bl sub_080040A8 + cmp r0, #0 + bne _080AA1C4 + bl sub_0805E780 +_080AA1C4: + adds r0, r6, #0 + bl sub_0806F69C + adds r0, r6, #0 + bl sub_080042B8 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080AA1D8 +sub_080AA1D8: @ 0x080AA1D8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, [r5, #0x50] + cmp r4, #0 + beq _080AA268 + ldr r0, [r4, #4] + cmp r0, #0 + bne _080AA1EC + bl sub_0805E780 +_080AA1EC: + ldrb r1, [r4, #0x1e] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _080AA26C + ldrh r0, [r4, #0x12] + ldrb r1, [r4, #0x1e] + bl sub_080700C8 + adds r3, r0, #0 + ldrb r1, [r4, #0x14] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080AA224 + movs r2, #0 + ldrsb r2, [r3, r2] + rsbs r2, r2, #0 + lsls r2, r2, #0x10 + ldrb r3, [r3, #1] + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + lsls r3, r3, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FA48 + b _080AA23A +_080AA224: + movs r2, #0 + ldrsb r2, [r3, r2] + lsls r2, r2, #0x10 + ldrb r3, [r3, #1] + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + lsls r3, r3, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FA48 +_080AA23A: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _080AA256 + ldrb r1, [r5, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080AA26C + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + b _080AA26C +_080AA256: + ldrb r1, [r5, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080AA26C + movs r0, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + b _080AA26C +_080AA268: + bl sub_0805E780 +_080AA26C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080AA270 +sub_080AA270: @ 0x080AA270 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r4, [r5, #0x50] + bl sub_08000E50 + ldr r1, _080AA2A4 @ =gUnk_08129CA4 + movs r6, #7 + ands r0, r6 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r5, #0xf] + ldrb r4, [r4, #0x14] + ldrb r0, [r5, #0x14] + cmp r0, #0xff + bne _080AA2AC + strb r4, [r5, #0x14] + ldr r0, _080AA2A8 @ =gUnk_08129CF4 + lsls r1, r4, #2 + adds r1, r1, r0 + ldr r0, [r1] + str r0, [r5, #0x48] + adds r0, r5, #0 + movs r1, #0 + bl sub_080AA3E0 + b _080AA2D6 + .align 2, 0 +_080AA2A4: .4byte gUnk_08129CA4 +_080AA2A8: .4byte gUnk_08129CF4 +_080AA2AC: + bl sub_08000E50 + ldr r1, _080AA2D8 @ =gUnk_08129CAC + ands r0, r6 + adds r0, r0, r1 + ldrb r0, [r0] + adds r4, r0, r4 + ands r4, r6 + ldrb r0, [r5, #0x14] + cmp r4, r0 + beq _080AA2D6 + strb r4, [r5, #0x14] + ldr r0, _080AA2DC @ =gUnk_08129CF4 + lsls r1, r4, #2 + adds r1, r1, r0 + ldr r0, [r1] + str r0, [r5, #0x48] + adds r0, r5, #0 + movs r1, #0 + bl sub_080AA3E0 +_080AA2D6: + pop {r4, r5, r6, pc} + .align 2, 0 +_080AA2D8: .4byte gUnk_08129CAC +_080AA2DC: .4byte gUnk_08129CF4 + + thumb_func_start sub_080AA2E0 +sub_080AA2E0: @ 0x080AA2E0 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0 + bl sub_08049DF4 + adds r4, r0, #0 + cmp r4, #0 + beq _080AA31C + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080045C4 + ldrb r1, [r5, #0x14] + lsls r1, r1, #2 + adds r0, #4 + movs r2, #0x1c + ands r0, r2 + adds r1, #4 + ands r1, r2 + cmp r0, r1 + bne _080AA31C + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0x40 + bl sub_08049F1C + cmp r0, #0 + beq _080AA31C + movs r0, #1 + b _080AA31E +_080AA31C: + movs r0, #0 +_080AA31E: + pop {r4, r5, pc} + + thumb_func_start sub_080AA320 +sub_080AA320: @ 0x080AA320 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, [r5, #0x50] + movs r2, #0 + movs r1, #2 + strb r1, [r5, #0xc] + adds r3, r5, #0 + adds r3, #0x82 + movs r0, #1 + strb r0, [r3] + strb r2, [r5, #0xf] + strb r1, [r4, #0xc] + movs r0, #0x30 + strb r0, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x80 + movs r0, #0x50 + strh r0, [r1] + strh r2, [r4, #0x24] + adds r0, r4, #0 + movs r1, #0 + bl sub_08049F84 + strb r0, [r4, #0x15] + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x1c + ands r0, r1 + lsrs r1, r0, #2 + strb r1, [r5, #0x14] + movs r1, #0x18 + ands r0, r1 + lsrs r0, r0, #2 + strb r0, [r4, #0x14] + adds r0, r4, #0 + movs r1, #1 + bl sub_080AA3E0 + adds r0, r5, #0 + bl sub_080AA1D8 + pop {r4, r5, pc} + + thumb_func_start sub_080AA374 +sub_080AA374: @ 0x080AA374 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + movs r0, #0 + mov r8, r0 + ldr r5, [r6, #0x54] + cmp r5, #0 + beq _080AA3D8 + ldr r0, [r5, #4] + cmp r0, #0 + beq _080AA3D8 + ldrb r4, [r5, #0x14] + ldr r0, _080AA3CC @ =gUnk_08129D14 + adds r4, r4, r0 + movs r2, #0 + ldrsb r2, [r4, r2] + movs r3, #1 + ldrsb r3, [r4, r3] + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_0806F824 + adds r7, r0, #0 + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r0, #0 + ldrsb r0, [r4, r0] + adds r1, r1, r0 + movs r0, #0x32 + ldrsh r2, [r5, r0] + movs r0, #1 + ldrsb r0, [r4, r0] + adds r2, r2, r0 + adds r0, r6, #0 + movs r3, #8 + bl sub_0806FCB8 + cmp r0, #0 + beq _080AA3D0 + movs r0, #1 + mov r8, r0 + b _080AA3D8 + .align 2, 0 +_080AA3CC: .4byte gUnk_08129D14 +_080AA3D0: + adds r0, r6, #0 + adds r1, r7, #0 + bl sub_08004596 +_080AA3D8: + mov r0, r8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080AA3E0 +sub_080AA3E0: @ 0x080AA3E0 + push {lr} + adds r3, r0, #0 + ldrb r2, [r3, #0x14] + adds r0, #0x82 + ldrb r0, [r0] + lsls r0, r0, #3 + orrs r2, r0 + cmp r1, #0 + beq _080AA3F4 + lsrs r2, r2, #1 +_080AA3F4: + adds r0, r3, #0 + adds r1, r2, #0 + bl sub_080042AC + pop {pc} + .align 2, 0 + + thumb_func_start sub_080AA400 +sub_080AA400: @ 0x080AA400 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080AA418 @ =gUnk_08129FB8 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080AA418: .4byte gUnk_08129FB8 + + thumb_func_start sub_080AA41C +sub_080AA41C: @ 0x080AA41C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _080AA44C + movs r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0xa] + strb r1, [r2, #0x1e] + strb r0, [r2, #0x1c] + adds r0, r2, #0 + adds r0, #0x86 + ldrh r0, [r0] + strh r0, [r2, #0x24] + lsls r1, r1, #0x18 + cmp r1, #0 + bne _080AA446 + adds r0, r2, #0 + bl sub_080AA494 + b _080AA44C +_080AA446: + adds r0, r2, #0 + bl sub_080AA534 +_080AA44C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080AA450 +sub_080AA450: @ 0x080AA450 + push {lr} + adds r1, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x96 + bne _080AA462 + adds r0, r1, #0 + bl sub_080AA464 +_080AA462: + pop {pc} + + thumb_func_start sub_080AA464 +sub_080AA464: @ 0x080AA464 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080AA474 + adds r0, r4, #0 + bl sub_080AA544 +_080AA474: + movs r0, #0x21 + movs r1, #3 + movs r2, #0 + bl sub_080A2960 + adds r1, r0, #0 + cmp r1, #0 + beq _080AA48A + adds r0, r4, #0 + bl sub_0806FA24 +_080AA48A: + adds r0, r4, #0 + bl sub_0805E7BC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080AA494 +sub_080AA494: @ 0x080AA494 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r4, #0 + bl sub_080002A0 + adds r2, r0, #0 + ldr r1, _080AA4A4 @ =gUnk_08129FD0 + b _080AA4AA + .align 2, 0 +_080AA4A4: .4byte gUnk_08129FD0 +_080AA4A8: + adds r4, #1 +_080AA4AA: + ldrh r0, [r1] + cmp r0, #0 + beq _080AA4B6 + adds r1, #2 + cmp r0, r2 + bne _080AA4A8 +_080AA4B6: + ldrh r0, [r5, #0x24] + bl sub_0807CBE4 + cmp r0, #0 + beq _080AA4EE + cmp r4, #4 + bne _080AA4EA + movs r0, #0x2e + ldrsh r1, [r5, r0] + ldr r2, _080AA52C @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r6, #0x32 + ldrsh r0, [r5, r6] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r5, #0 + bl sub_080AA654 +_080AA4EA: + bl sub_0805E780 +_080AA4EE: + strb r4, [r5, #0xb] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080AA530 @ =0x00004068 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _080AA52C @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + pop {r4, r5, r6, pc} + .align 2, 0 +_080AA52C: .4byte gUnk_03000BF0 +_080AA530: .4byte 0x00004068 + + thumb_func_start sub_080AA534 +sub_080AA534: @ 0x080AA534 + push {lr} + adds r2, r0, #0 + adds r2, #0x38 + movs r1, #3 + strb r1, [r2] + bl sub_08016A04 + pop {pc} + + thumb_func_start sub_080AA544 +sub_080AA544: @ 0x080AA544 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r6, r0, #0 + ldrb r0, [r6, #0xb] + cmp r0, #8 + bhi _080AA618 + ldr r0, _080AA5E8 @ =gUnk_08129FF8 + mov sb, r0 + movs r1, #0x2e + ldrsh r2, [r6, r1] + ldr r1, _080AA5EC @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + subs r2, r2, r0 + asrs r2, r2, #4 + movs r3, #0x3f + ands r2, r3 + movs r4, #0x32 + ldrsh r0, [r6, r4] + ldrh r1, [r1, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r2, r0 + ldrb r0, [r6, #0xb] + add r0, sb + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r7, r2, r0 + movs r4, #0 + movs r5, #0 + movs r0, #0x38 + adds r0, r0, r6 + mov r8, r0 +_080AA58E: + mov r1, sb + adds r0, r1, r4 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + subs r0, r7, r0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r2, r8 + ldrb r1, [r2] + bl sub_080002C8 + cmp r0, #0x3e + bne _080AA5AC + adds r5, #1 +_080AA5AC: + adds r4, #1 + cmp r4, #8 + bls _080AA58E + cmp r5, #8 + bne _080AA5F4 + movs r4, #0 + ldr r5, _080AA5F0 @ =gUnk_08129FD0 +_080AA5BA: + ldrh r0, [r5] + mov r3, sb + adds r1, r3, r4 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + subs r1, r7, r1 + mov r3, r8 + ldrb r2, [r3] + bl sub_0807B7D8 + adds r5, #2 + adds r4, #1 + cmp r4, #8 + bls _080AA5BA + adds r0, r6, #0 + adds r1, r7, #0 + bl sub_080AA654 + ldrh r0, [r6, #0x24] + bl sub_0807CCC8 + b _080AA648 + .align 2, 0 +_080AA5E8: .4byte gUnk_08129FF8 +_080AA5EC: .4byte gUnk_03000BF0 +_080AA5F0: .4byte gUnk_08129FD0 +_080AA5F4: + ldr r2, _080AA614 @ =gUnk_08129FE4 + ldrb r1, [r6, #0xb] + lsls r0, r1, #1 + adds r0, r0, r2 + ldrh r0, [r0] + add r1, sb + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + subs r1, r7, r1 + mov r4, r8 + ldrb r2, [r4] + bl sub_0807B7D8 + b _080AA648 + .align 2, 0 +_080AA614: .4byte gUnk_08129FE4 +_080AA618: + movs r1, #0x2e + ldrsh r0, [r6, r1] + ldr r2, _080AA650 @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r4, #0x32 + ldrsh r1, [r6, r4] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + adds r1, r6, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_0807BA8C + ldrh r0, [r6, #0x24] + bl sub_0807CCC8 +_080AA648: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080AA650: .4byte gUnk_03000BF0 + + thumb_func_start sub_080AA654 +sub_080AA654: @ 0x080AA654 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r4, #0x68 + ldr r0, _080AA688 @ =gUnk_0812A004 + adds r1, r4, #0 + movs r2, #0x10 + bl sub_0801D66C + movs r1, #0x3f + adds r0, r5, #0 + ands r0, r1 + lsls r0, r0, #4 + adds r0, #8 + strh r0, [r4, #8] + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r5 + lsrs r0, r0, #2 + adds r0, #8 + strh r0, [r4, #0xa] + adds r0, r4, #0 + bl sub_0804ADF8 + pop {r4, r5, pc} + .align 2, 0 +_080AA688: .4byte gUnk_0812A004 + + thumb_func_start sub_080AA68C +sub_080AA68C: @ 0x080AA68C + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080AA6A4 @ =gUnk_0812A014 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080AA6A4: .4byte gUnk_0812A014 + + thumb_func_start sub_080AA6A8 +sub_080AA6A8: @ 0x080AA6A8 + push {lr} + ldr r2, _080AA6BC @ =gUnk_0812A02C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080AA6BC: .4byte gUnk_0812A02C + + thumb_func_start sub_080AA6C0 +sub_080AA6C0: @ 0x080AA6C0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x87 + bne _080AA774 + movs r6, #3 + movs r0, #3 + strb r0, [r4, #0xc] + movs r5, #0x5a + strb r5, [r4, #0xe] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0xa] + adds r1, #0x10 + adds r0, r4, #0 + bl sub_080042AC + movs r0, #0x2a + movs r1, #3 + movs r2, #0 + bl sub_080A2960 + adds r3, r0, #0 + cmp r3, #0 + beq _080AA72A + strb r5, [r3, #0xb] + adds r2, r3, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r6 + strb r0, [r2] + ldr r1, _080AA770 @ =gUnk_0812A03C + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0] + adds r2, #0x39 + strb r0, [r2] + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + adds r1, r3, #0 + adds r1, #0x63 + strb r0, [r1] + str r4, [r3, #0x50] +_080AA72A: + movs r0, #0x2a + movs r1, #3 + movs r2, #0 + bl sub_080A2960 + adds r3, r0, #0 + cmp r3, #0 + beq _080AA784 + strb r5, [r3, #0xb] + adds r2, r3, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r6 + strb r0, [r2] + ldr r1, _080AA770 @ =gUnk_0812A03C + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, #2 + adds r0, r0, r1 + ldrb r0, [r0] + adds r2, #0x39 + strb r0, [r2] + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, #3 + adds r0, r0, r1 + ldrb r0, [r0] + adds r1, r3, #0 + adds r1, #0x63 + strb r0, [r1] + str r4, [r3, #0x50] + b _080AA784 + .align 2, 0 +_080AA770: .4byte gUnk_0812A03C +_080AA774: + ldrb r1, [r4, #0xa] + adds r1, #0x10 + adds r0, r4, #0 + bl sub_080042AC + ldr r0, _080AA788 @ =0x00000101 + bl sub_08004488 +_080AA784: + pop {r4, r5, r6, pc} + .align 2, 0 +_080AA788: .4byte 0x00000101 + + thumb_func_start sub_080AA78C +sub_080AA78C: @ 0x080AA78C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _080AA7DA + ldr r0, _080AA7C8 @ =gUnk_03001160 + ldrb r0, [r0, #0x14] + lsrs r2, r0, #1 + ldrb r0, [r4, #0xa] + cmp r2, r0 + beq _080AA7CC + adds r3, r4, #0 + adds r3, #0x3a + ldrb r0, [r3] + movs r1, #0xfb + ands r1, r0 + strb r1, [r3] + movs r0, #2 + eors r2, r0 + ldrb r0, [r4, #0xa] + cmp r2, r0 + bne _080AA832 + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0xe2 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080AA6C0 + b _080AA832 + .align 2, 0 +_080AA7C8: .4byte gUnk_03001160 +_080AA7CC: + movs r0, #1 + strb r0, [r4, #0xd] + adds r1, r2, #0 + adds r1, #8 + adds r0, r4, #0 + bl sub_080042AC +_080AA7DA: + adds r0, r4, #0 + bl sub_0806F520 + cmp r0, #0 + beq _080AA812 + adds r0, r4, #0 + bl sub_080042B8 + adds r5, r4, #0 + adds r5, #0x5a + ldrb r1, [r5] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080AA806 + movs r0, #0xef + ands r0, r1 + strb r0, [r5] + movs r0, #0x80 + lsls r0, r0, #1 + bl sub_08004488 +_080AA806: + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080AA832 + b _080AA820 +_080AA812: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080AA828 +_080AA820: + adds r0, r4, #0 + bl sub_080AAAA8 + b _080AA832 +_080AA828: + ldrb r1, [r4, #0xa] + adds r1, #0x10 + adds r0, r4, #0 + bl sub_080042AC +_080AA832: + pop {r4, r5, pc} + + thumb_func_start sub_080AA834 +sub_080AA834: @ 0x080AA834 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _080AA848 + bl sub_0805E780 +_080AA848: + movs r2, #0 + movs r0, #1 + strb r0, [r4, #0xc] + strb r0, [r4, #0x1c] + strb r0, [r4, #0x16] + ldr r1, _080AA874 @ =gUnk_0812A04C + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r4, #0x48] + adds r0, r4, #0 + adds r0, #0x84 + strb r2, [r0] + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_080AAA68 + pop {r4, pc} + .align 2, 0 +_080AA874: .4byte gUnk_0812A04C + + thumb_func_start sub_080AA878 +sub_080AA878: @ 0x080AA878 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080AA88E + adds r0, r4, #0 + bl sub_080042B8 +_080AA88E: + adds r0, r4, #0 + bl sub_080AA9E0 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080AA898 +sub_080AA898: @ 0x080AA898 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806FBB4 + ldr r1, _080AA8B4 @ =gUnk_0812A05C + ldrb r0, [r4, #0xd] + subs r0, #5 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080AA8B4: .4byte gUnk_0812A05C + + thumb_func_start sub_080AA8B8 +sub_080AA8B8: @ 0x080AA8B8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r7, _080AA99C @ =gUnk_03001160 + adds r0, #0x84 + ldrb r0, [r0] + cmp r0, #0 + bne _080AA920 + ldrb r0, [r4, #0xa] + lsls r2, r0, #1 + ldrb r0, [r7, #0x14] + cmp r2, r0 + bne _080AA90A + ldr r1, _080AA9A0 @ =gUnk_0812A064 + adds r0, r2, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r3, [r4, #0x2e] + adds r0, r0, r3 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + adds r0, r2, #1 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r0, r7, #0 + adds r0, #0x38 + ldrb r2, [r0] + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_080002D4 + cmp r0, #0 + bne _080AA90A + strh r6, [r7, #0x2e] + strh r5, [r7, #0x32] +_080AA90A: + adds r1, r4, #0 + adds r1, #0x84 + movs r0, #1 + strb r0, [r1] + movs r0, #2 + strb r0, [r4, #0xf] + ldrb r1, [r4, #0xa] + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC +_080AA920: + ldrb r0, [r7, #0x14] + lsrs r0, r0, #1 + ldrb r2, [r4, #0xa] + cmp r0, r2 + bne _080AA99A + ldr r1, _080AA9A4 @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0xa8 + ldrb r0, [r0] + cmp r0, #0x1a + bne _080AA99A + ldrb r1, [r1, #5] + movs r2, #2 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _080AA99A + ldr r0, _080AA99C @ =gUnk_03001160 + adds r0, #0x5a + ldrb r1, [r0] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _080AA99A + adds r5, r4, #0 + adds r5, #0x5a + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080AA99A + adds r0, r4, #0 + bl sub_080042B8 + ldrb r1, [r5] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080AA99A + ldr r1, _080AA9A8 @ =gUnk_0812A06C + ldrb r0, [r7, #0x14] + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r3, [r7, #0x2e] + adds r0, r0, r3 + strh r0, [r7, #0x2e] + ldrb r0, [r7, #0x14] + adds r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r7, #0x32] + adds r0, r0, r1 + strh r0, [r7, #0x32] + movs r0, #0x80 + lsls r0, r0, #1 + bl sub_08004488 +_080AA99A: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080AA99C: .4byte gUnk_03001160 +_080AA9A0: .4byte gUnk_0812A064 +_080AA9A4: .4byte gUnk_03003F80 +_080AA9A8: .4byte gUnk_0812A06C + + thumb_func_start sub_080AA9AC +sub_080AA9AC: @ 0x080AA9AC + push {lr} + movs r2, #0 + movs r1, #1 + strb r1, [r0, #0xc] + adds r1, r0, #0 + adds r1, #0x84 + strb r2, [r1] + ldrb r1, [r0, #0xa] + adds r1, #0xc + bl sub_080042AC + pop {pc} + + thumb_func_start sub_080AA9C4 +sub_080AA9C4: @ 0x080AA9C4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080AA9DE + adds r0, r4, #0 + bl sub_080AAAA8 +_080AA9DE: + pop {r4, pc} + + thumb_func_start sub_080AA9E0 +sub_080AA9E0: @ 0x080AA9E0 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r1, [r5, #0xa] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080AAA00 + ldr r0, _080AA9FC @ =gUnk_03001160 + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r2, #0x2e + ldrsh r0, [r5, r2] + b _080AAA0A + .align 2, 0 +_080AA9FC: .4byte gUnk_03001160 +_080AAA00: + ldr r0, _080AAA24 @ =gUnk_03001160 + movs r2, #0x32 + ldrsh r1, [r0, r2] + movs r2, #0x32 + ldrsh r0, [r5, r2] +_080AAA0A: + subs r4, r1, r0 + ldrb r2, [r5, #0xa] + lsls r1, r2, #2 + ldr r0, _080AAA28 @ =gUnk_0812A074 + adds r3, r1, r0 + cmp r2, #2 + bgt _080AAA2C + cmp r2, #1 + bge _080AAA36 + cmp r2, #0 + beq _080AAA30 + b _080AAA40 + .align 2, 0 +_080AAA24: .4byte gUnk_03001160 +_080AAA28: .4byte gUnk_0812A074 +_080AAA2C: + cmp r2, #3 + bne _080AAA40 +_080AAA30: + cmp r4, #4 + ble _080AAA40 + b _080AAA3E +_080AAA36: + movs r0, #4 + rsbs r0, r0, #0 + cmp r4, r0 + bge _080AAA40 +_080AAA3E: + adds r3, #2 +_080AAA40: + ldrb r0, [r3] + adds r4, r5, #0 + adds r4, #0x29 + movs r1, #7 + ands r1, r0 + ldrb r2, [r4] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4] + ldrb r0, [r3, #1] + strb r0, [r5, #0x15] + ldrb r0, [r3] + cmp r0, #5 + bne _080AAA66 + adds r0, r5, #0 + bl sub_08078930 +_080AAA66: + pop {r4, r5, pc} + + thumb_func_start sub_080AAA68 +sub_080AAA68: @ 0x080AAA68 + push {r4, r5, r6, lr} + ldr r2, _080AAAA0 @ =gUnk_0812A084 + ldrb r1, [r0, #0xa] + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r5, [r1] + movs r2, #0x2e + ldrsh r1, [r0, r2] + ldr r3, _080AAAA4 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r0, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r0, #0x38 + ldrb r2, [r0] + adds r0, r5, #0 + bl sub_0800015E + pop {r4, r5, r6, pc} + .align 2, 0 +_080AAAA0: .4byte gUnk_0812A084 +_080AAAA4: .4byte gUnk_03000BF0 + + thumb_func_start sub_080AAAA8 +sub_080AAAA8: @ 0x080AAAA8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _080AAAE4 @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r5, #0x32 + ldrsh r1, [r4, r5] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + adds r4, #0x38 + ldrb r1, [r4] + bl sub_0807BA8C + bl sub_0805E780 + pop {r4, r5, pc} + .align 2, 0 +_080AAAE4: .4byte gUnk_03000BF0 + + thumb_func_start sub_080AAAE8 +sub_080AAAE8: @ 0x080AAAE8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080AAB00 @ =gUnk_0812A3C0 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080AAB00: .4byte gUnk_0812A3C0 + + thumb_func_start sub_080AAB04 +sub_080AAB04: @ 0x080AAB04 + push {lr} + ldr r2, _080AAB18 @ =gUnk_0812A3D4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080AAB18: .4byte gUnk_0812A3D4 + + thumb_func_start sub_080AAB1C +sub_080AAB1C: @ 0x080AAB1C + push {lr} + bl sub_0805E780 + pop {pc} + + thumb_func_start sub_080AAB24 +sub_080AAB24: @ 0x080AAB24 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0x1e + strb r1, [r0, #0xe] + movs r1, #0 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080AAB38 +sub_080AAB38: @ 0x080AAB38 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080AAB4C + subs r0, #1 + strb r0, [r4, #0xe] + b _080AAB62 +_080AAB4C: + adds r0, r4, #0 + bl sub_080AF090 + cmp r0, #0 + bne _080AAB5E + adds r0, r4, #0 + bl sub_0806F69C + b _080AAB62 +_080AAB5E: + movs r0, #2 + strb r0, [r4, #0xc] +_080AAB62: + pop {r4, pc} + + thumb_func_start sub_080AAB64 +sub_080AAB64: @ 0x080AAB64 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080AF090 + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _080AAB7C + bl sub_0805E780 +_080AAB7C: + adds r0, r4, #0 + bl sub_080A7EB0 + cmp r0, #0 + beq _080AAB8A + bl sub_0805E780 +_080AAB8A: + pop {r4, pc} + + thumb_func_start sub_080AAB8C +sub_080AAB8C: @ 0x080AAB8C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080AABA2 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_080AABA2: + adds r0, r4, #0 + bl sub_080AABB0 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_080AABB0 +sub_080AABB0: @ 0x080AABB0 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldrb r1, [r5, #0x14] + lsls r1, r1, #1 + ldr r0, _080AABEC @ =gUnk_080C9160 + adds r1, r1, r0 + ldrb r2, [r4, #0xe] + lsls r2, r2, #8 + movs r3, #0 + ldrsh r0, [r1, r3] + adds r3, r0, #0 + muls r3, r2, r3 + ldr r0, [r4, #0x2c] + adds r0, r0, r3 + str r0, [r4, #0x2c] + adds r1, #0x80 + movs r3, #0 + ldrsh r0, [r1, r3] + adds r1, r0, #0 + muls r1, r2, r1 + ldr r0, [r4, #0x30] + subs r0, r0, r1 + str r0, [r4, #0x30] + pop {r4, r5, pc} + .align 2, 0 +_080AABEC: .4byte gUnk_080C9160 + + thumb_func_start sub_080AABF0 +sub_080AABF0: @ 0x080AABF0 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080AAC08 @ =gUnk_0812A418 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080AAC08: .4byte gUnk_0812A418 + + thumb_func_start sub_080AAC0C +sub_080AAC0C: @ 0x080AAC0C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080AAC40 @ =gUnk_0812A430 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _080AAC3C + adds r1, r4, #0 + adds r1, #0x84 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080AAC3C + subs r1, #0x3f + movs r0, #0 + strb r0, [r1] +_080AAC3C: + pop {r4, pc} + .align 2, 0 +_080AAC40: .4byte gUnk_0812A430 + + thumb_func_start sub_080AAC44 +sub_080AAC44: @ 0x080AAC44 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080AACCA + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _080AACBC + movs r0, #0x3f + ands r0, r1 + cmp r0, #0 + bne _080AACA0 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080AAC84 + ldr r0, _080AAC80 @ =gUnk_03001160 + adds r1, r4, #0 + bl sub_0806FAB0 + b _080AAC8C + .align 2, 0 +_080AAC80: .4byte gUnk_03001160 +_080AAC84: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FAB0 +_080AAC8C: + bl sub_08077B2C + ldr r2, _080AACB4 @ =gUnk_03003F80 + ldrb r1, [r2, #0x1a] + movs r0, #0x80 + orrs r1, r0 + strb r1, [r2, #0x1a] + ldrb r1, [r2, #0xa] + orrs r0, r1 + strb r0, [r2, #0xa] +_080AACA0: + ldr r0, _080AACB8 @ =gUnk_03001160 + adds r0, #0x45 + ldrb r1, [r0] + cmp r1, #0 + bne _080AACCA + adds r0, r4, #0 + adds r0, #0x45 + strb r1, [r0] + b _080AACCA + .align 2, 0 +_080AACB4: .4byte gUnk_03003F80 +_080AACB8: .4byte gUnk_03001160 +_080AACBC: + ldr r0, _080AACDC @ =0x00000119 + bl sub_080A3268 + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 +_080AACCA: + adds r1, r4, #0 + adds r1, #0x42 + ldrb r0, [r1] + cmp r0, #0 + beq _080AACD8 + movs r0, #0 + strb r0, [r1] +_080AACD8: + pop {r4, pc} + .align 2, 0 +_080AACDC: .4byte 0x00000119 + + thumb_func_start sub_080AACE0 +sub_080AACE0: @ 0x080AACE0 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _080AACF4 + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _080AACF4 + bl sub_0805E780 +_080AACF4: + ldrb r1, [r4, #0x18] + lsls r0, r1, #0x1e + lsrs r2, r0, #0x1e + adds r5, r4, #0 + adds r5, #0x86 + cmp r2, #1 + bne _080AAD16 + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + strb r2, [r5] + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl sub_080A29AC +_080AAD16: + ldr r2, [r4, #0x50] + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _080AAD4A + adds r1, r2, #0 + adds r1, #0x74 + movs r0, #3 + strb r0, [r1] + adds r1, #0xc + adds r0, r4, #0 + adds r0, #0x81 + ldrb r0, [r0] + lsrs r0, r0, #1 + ldrb r2, [r1] + adds r0, r0, r2 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #8 + bls _080AAD42 + movs r0, #8 + b _080AAD56 +_080AAD42: + cmp r0, #0 + bne _080AAD58 + movs r0, #1 + b _080AAD56 +_080AAD4A: + adds r1, r2, #0 + adds r1, #0x84 + movs r0, #0 + strb r0, [r1] + subs r1, #0x45 + movs r0, #0x2b +_080AAD56: + strb r0, [r1] +_080AAD58: + ldrb r0, [r5] + cmp r0, #0 + bne _080AAD68 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl sub_080A29AC +_080AAD68: + bl sub_0805E780 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080AAD70 +sub_080AAD70: @ 0x080AAD70 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F520 + cmp r0, #0 + bne _080AAD82 + adds r1, r4, #0 + adds r1, #0x45 + strb r0, [r1] +_080AAD82: + ldr r0, _080AAD94 @ =gUnk_0812A440 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080AAD94: .4byte gUnk_0812A440 + + thumb_func_start sub_080AAD98 +sub_080AAD98: @ 0x080AAD98 + movs r1, #2 + strb r1, [r0, #0xd] + bx lr + .align 2, 0 + + thumb_func_start nullsub_541 +nullsub_541: @ 0x080AADA0 + bx lr + .align 2, 0 + + thumb_func_start sub_080AADA4 +sub_080AADA4: @ 0x080AADA4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _080AADB8 + adds r1, r4, #0 + adds r1, #0x45 + movs r0, #0 + strb r0, [r1] +_080AADB8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080AADBC +sub_080AADBC: @ 0x080AADBC + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xb] + cmp r0, #0 + bne _080AADCC + movs r0, #1 + strb r0, [r5, #0xc] + b _080AADE0 +_080AADCC: + movs r0, #3 + strb r0, [r5, #0xc] + adds r1, r5, #0 + adds r1, #0x3f + movs r0, #0x2c + strb r0, [r1] + ldr r0, [r5, #0x50] + adds r1, r5, #0 + bl sub_0806FAB0 +_080AADE0: + ldrb r1, [r5, #0xa] + cmp r1, #0 + bne _080AAE64 + strb r1, [r5, #0xe] + movs r3, #4 + movs r0, #4 + strb r0, [r5, #0xf] + adds r0, r5, #0 + adds r0, #0x80 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r1, r5, #0 + adds r1, #0x45 + movs r0, #0x10 + strb r0, [r1] + ldrh r0, [r5, #0x36] + adds r0, #4 + movs r4, #0 + strh r0, [r5, #0x36] + ldrb r2, [r5, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r5, #0x1b] + ldrb r0, [r5, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r5, #0x19] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r3 + strb r0, [r2] + ldr r1, _080AAE60 @ =gUnk_03001160 + adds r0, r5, #0 + bl sub_080045C4 + strb r0, [r5, #0x15] + adds r0, r5, #0 + adds r0, #0x86 + strb r4, [r0] + adds r1, r5, #0 + adds r1, #0x84 + movs r0, #0x96 + lsls r0, r0, #1 + strh r0, [r1] + movs r0, #0x18 + bl sub_080A7EE0 + adds r1, r0, #0 + cmp r1, #0 + beq _080AAE7C + movs r0, #1 + strb r0, [r1, #0xa] + ldrb r0, [r5, #0xb] + strb r0, [r1, #0xb] + str r5, [r1, #0x50] + b _080AAE7C + .align 2, 0 +_080AAE60: .4byte gUnk_03001160 +_080AAE64: + ldr r0, [r5, #0x50] + adds r1, r5, #0 + bl sub_0806FAB0 + ldrb r1, [r5, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + ldr r0, [r5, #0x50] + adds r1, r5, #0 + bl sub_0806FA24 +_080AAE7C: + ldrb r1, [r5, #0xa] + adds r0, r5, #0 + bl sub_08004260 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080AAE88 +sub_080AAE88: @ 0x080AAE88 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #1 + beq _080AAED0 + cmp r0, #1 + bgt _080AAE9C + cmp r0, #0 + beq _080AAEA2 + b _080AAEF6 +_080AAE9C: + cmp r0, #2 + beq _080AAEE0 + b _080AAEF6 +_080AAEA2: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080AAEC2 + movs r0, #4 + strb r0, [r4, #0xf] + ldr r1, _080AAECC @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 +_080AAEC2: + adds r0, r4, #0 + bl sub_0806F69C + b _080AAEF6 + .align 2, 0 +_080AAECC: .4byte gUnk_03001160 +_080AAED0: + ldr r0, [r4, #0x50] + cmp r0, #0 + beq _080AAEDC + ldr r0, [r0, #4] + cmp r0, #0 + bne _080AAEE0 +_080AAEDC: + bl sub_0805E780 +_080AAEE0: + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0x18] + lsls r0, r0, #0x1e + cmp r0, #0 + bne _080AAEEE + bl sub_0805E780 +_080AAEEE: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 +_080AAEF6: + adds r0, r4, #0 + bl sub_080AB034 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080AAF00 +sub_080AAF00: @ 0x080AAF00 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AAF74 + adds r0, r4, #0 + bl sub_080AB034 + pop {r4, pc} + + thumb_func_start sub_080AAF10 +sub_080AAF10: @ 0x080AAF10 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r4, #0 + bl sub_080AB034 + ldr r3, [r4, #0x50] + ldrb r1, [r3, #0x18] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1e + ldrb r2, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _080AAF48 + adds r0, r3, #0 + adds r0, #0x45 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x45 + strb r0, [r1] +_080AAF48: + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #2 + bne _080AAF60 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080AAF70 + movs r0, #0x7f + ands r0, r1 + b _080AAF6E +_080AAF60: + ldrb r1, [r4, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080AAF70 + movs r0, #0x80 + orrs r0, r1 +_080AAF6E: + strb r0, [r4, #0x10] +_080AAF70: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080AAF74 +sub_080AAF74: @ 0x080AAF74 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_0807953C + cmp r0, #0 + beq _080AAF94 + bl sub_08000E50 + adds r3, r5, #0 + adds r3, #0x80 + ldrb r1, [r3] + adds r1, #1 + movs r2, #1 + ands r0, r2 + adds r1, r1, r0 + strb r1, [r3] +_080AAF94: + ldrb r0, [r5, #0xe] + adds r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x3c + bne _080AAFCC + movs r0, #0x1e + strb r0, [r5, #0xe] + ldr r4, _080AAFFC @ =gUnk_03001160 + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #8 + strb r0, [r1] + subs r0, #0xc + bl sub_080526A0 + adds r0, r4, #0 + movs r1, #0x7a + bl sub_0800449C + adds r4, #0x45 + ldrb r1, [r4] + cmp r1, #0 + bne _080AAFCC + adds r0, r5, #0 + adds r0, #0x45 + strb r1, [r0] +_080AAFCC: + adds r1, r5, #0 + adds r1, #0x80 + ldrb r0, [r1] + cmp r0, #0x30 + bhi _080AAFE0 + adds r0, r5, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0x10 + bne _080AB004 +_080AAFE0: + movs r2, #0 + movs r0, #1 + strb r0, [r5, #0xc] + strb r2, [r1] + ldr r0, _080AAFFC @ =gUnk_03001160 + adds r0, #0x3d + movs r1, #0xf0 + strb r1, [r0] + ldr r0, _080AB000 @ =gUnk_03003F80 + strb r2, [r0, #0x1a] + adds r0, r5, #0 + adds r0, #0x45 + strb r2, [r0] + b _080AB028 + .align 2, 0 +_080AAFFC: .4byte gUnk_03001160 +_080AB000: .4byte gUnk_03003F80 +_080AB004: + bl sub_08077B2C + ldr r2, _080AB02C @ =gUnk_03003F80 + ldrb r1, [r2, #0x1a] + movs r0, #0x80 + orrs r1, r0 + strb r1, [r2, #0x1a] + ldrb r1, [r2, #0xa] + orrs r0, r1 + strb r0, [r2, #0xa] + ldr r4, _080AB030 @ =gUnk_03001160 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FA24 + ldrh r0, [r4, #0x36] + subs r0, #4 + strh r0, [r5, #0x36] +_080AB028: + pop {r4, r5, pc} + .align 2, 0 +_080AB02C: .4byte gUnk_03003F80 +_080AB030: .4byte gUnk_03001160 + + thumb_func_start sub_080AB034 +sub_080AB034: @ 0x080AB034 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5b + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + ldr r1, _080AB058 @ =0x00000139 + cmp r0, #0 + beq _080AB04E + movs r1, #0 +_080AB04E: + adds r0, r4, #0 + bl sub_0801D2B4 + pop {r4, pc} + .align 2, 0 +_080AB058: .4byte 0x00000139 + + thumb_func_start sub_080AB05C +sub_080AB05C: @ 0x080AB05C + push {lr} + ldr r2, _080AB070 @ =gUnk_0812A494 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080AB070: .4byte gUnk_0812A494 + + thumb_func_start sub_080AB074 +sub_080AB074: @ 0x080AB074 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + ldr r0, [r5, #4] + cmp r0, #0 + bne _080AB084 + bl sub_0805E780 +_080AB084: + ldrb r6, [r4, #0xc] + cmp r6, #0 + bne _080AB0AA + adds r0, r4, #0 + bl sub_080AB12C + cmp r0, #0 + beq _080AB124 + movs r0, #1 + strb r0, [r4, #0xc] + strb r6, [r4, #0x1e] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #9 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] +_080AB0AA: + ldr r0, [r4, #0x50] + adds r7, r5, #0 + adds r7, #0x7f + movs r3, #0 + ldrsb r3, [r7, r3] + rsbs r3, r3, #0 + subs r3, #0xa + adds r1, r4, #0 + movs r2, #0 + bl sub_0806FA90 + ldr r3, _080AB128 @ =gUnk_080C9160 + adds r2, r5, #0 + adds r2, #0x7c + ldrb r0, [r2] + lsls r0, r0, #1 + adds r0, r0, r3 + movs r6, #0 + ldrsh r1, [r0, r6] + adds r6, r5, #0 + adds r6, #0x7e + ldrb r0, [r6] + lsls r0, r0, #8 + muls r1, r0, r1 + ldr r0, [r4, #0x2c] + adds r0, r0, r1 + str r0, [r4, #0x2c] + ldrb r0, [r2] + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r3 + movs r2, #0 + ldrsh r1, [r0, r2] + ldrb r0, [r6] + lsls r0, r0, #8 + muls r1, r0, r1 + ldr r0, [r4, #0x30] + subs r0, r0, r1 + str r0, [r4, #0x30] + movs r0, #0 + ldrsb r0, [r7, r0] + ldrh r6, [r4, #0x36] + adds r0, r0, r6 + strh r0, [r4, #0x36] + adds r0, r5, #0 + adds r0, #0x7b + ldrb r0, [r0] + cmp r0, #0 + beq _080AB124 + movs r0, #0x19 + bl sub_080A7EE0 + adds r5, r0, #0 + cmp r5, #0 + beq _080AB124 + movs r0, #4 + strb r0, [r5, #0xa] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FA6C +_080AB124: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080AB128: .4byte gUnk_080C9160 + + thumb_func_start sub_080AB12C +sub_080AB12C: @ 0x080AB12C + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080AB168 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x44 + bhi _080AB16C + movs r0, #0x19 + bl sub_080A7EE0 + adds r1, r0, #0 + movs r0, #1 + strb r0, [r1, #0xa] + str r4, [r1, #0x50] + movs r0, #0x19 + bl sub_080A7EE0 + adds r1, r0, #0 + movs r0, #2 + strb r0, [r1, #0xa] + str r4, [r1, #0x50] + movs r0, #0x19 + bl sub_080A7EE0 + adds r1, r0, #0 + movs r0, #3 + strb r0, [r1, #0xa] + str r4, [r1, #0x50] + movs r0, #1 + b _080AB16E + .align 2, 0 +_080AB168: .4byte gUnk_03003DBC +_080AB16C: + movs r0, #0 +_080AB16E: + pop {r4, pc} + + thumb_func_start sub_080AB170 +sub_080AB170: @ 0x080AB170 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r6, [r4, #0x50] + ldr r0, [r6, #4] + cmp r0, #0 + bne _080AB180 + bl sub_0805E780 +_080AB180: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080AB1AA + movs r0, #1 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0x3a + ands r0, r1 + strb r0, [r2] + movs r0, #5 + strb r0, [r4, #0x1e] + ldrb r1, [r2] + subs r0, #0xd + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080AB1C8 @ =gUnk_080FD460 + str r0, [r4, #0x48] +_080AB1AA: + ldr r5, [r6, #0x50] + adds r0, r4, #0 + adds r0, #0x7c + adds r2, r5, #0 + adds r2, #0x7c + ldrb r1, [r0] + adds r3, r0, #0 + ldrb r2, [r2] + cmp r1, r2 + beq _080AB1CC + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + b _080AB1D2 + .align 2, 0 +_080AB1C8: .4byte gUnk_080FD460 +_080AB1CC: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 +_080AB1D2: + strb r0, [r4, #0x10] + adds r0, r5, #0 + adds r0, #0x7c + ldrb r0, [r0] + strb r0, [r3] + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _080AB208 + movs r0, #0x1f + ands r0, r1 + ldr r1, _080AB204 @ =gUnk_0812A4A8 + adds r0, r0, r1 + movs r2, #0 + ldrsb r2, [r0, r2] + movs r3, #1 + ldrsb r3, [r0, r3] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA90 + b _080AB216 + .align 2, 0 +_080AB204: .4byte gUnk_0812A4A8 +_080AB208: + movs r3, #0xa + rsbs r3, r3, #0 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0 + bl sub_0806FA90 +_080AB216: + movs r1, #0x2e + ldrsh r0, [r6, r1] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + ldrb r2, [r4, #0xa] + muls r0, r2, r0 + adds r3, r2, #0 + cmp r0, #0 + bge _080AB22C + adds r0, #3 +_080AB22C: + asrs r0, r0, #2 + ldrh r5, [r4, #0x2e] + adds r0, r0, r5 + strh r0, [r4, #0x2e] + movs r1, #0x32 + ldrsh r0, [r6, r1] + movs r5, #0x32 + ldrsh r1, [r4, r5] + subs r0, r0, r1 + muls r0, r3, r0 + cmp r0, #0 + bge _080AB246 + adds r0, #3 +_080AB246: + asrs r0, r0, #2 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + movs r3, #0x36 + ldrsh r0, [r6, r3] + movs r5, #0x36 + ldrsh r1, [r4, r5] + subs r0, r0, r1 + muls r0, r2, r0 + cmp r0, #0 + bge _080AB260 + adds r0, #3 +_080AB260: + asrs r0, r0, #2 + ldrh r1, [r4, #0x36] + adds r0, r0, r1 + strh r0, [r4, #0x36] + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080AB26C +sub_080AB26C: @ 0x080AB26C + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0xc] + cmp r1, #0 + bne _080AB28C + movs r0, #1 + strb r0, [r2, #0xc] + movs r0, #5 + strb r0, [r2, #0xe] + strb r1, [r2, #0x1e] + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + subs r0, #0x3e + ands r0, r1 + strb r0, [r3] +_080AB28C: + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080AB29E + bl sub_0805E780 + b _080AB2A4 +_080AB29E: + ldrb r0, [r2, #0x1e] + adds r0, #1 + strb r0, [r2, #0x1e] +_080AB2A4: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080AB2A8 +sub_080AB2A8: @ 0x080AB2A8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080AB2C0 @ =gUnk_0812A4C8 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080AB2C0: .4byte gUnk_0812A4C8 + + thumb_func_start sub_080AB2C4 +sub_080AB2C4: @ 0x080AB2C4 + push {lr} + ldr r2, _080AB2D8 @ =gUnk_0812A4DC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080AB2D8: .4byte gUnk_0812A4DC + + thumb_func_start sub_080AB2DC +sub_080AB2DC: @ 0x080AB2DC + push {r4, r5, lr} + adds r2, r0, #0 + adds r5, r2, #0 + adds r5, #0x41 + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080AB314 + movs r0, #3 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x10] + movs r4, #0x7f + adds r0, r4, #0 + ands r0, r1 + strb r0, [r2, #0x10] + adds r0, r2, #0 + movs r1, #0x53 + bl sub_08004260 + ldrb r0, [r5] + ands r4, r0 + cmp r4, #0 + bne _080AB314 + movs r0, #4 + rsbs r0, r0, #0 + bl sub_080526A0 +_080AB314: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080AB318 +sub_080AB318: @ 0x080AB318 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + movs r4, #1 + movs r0, #1 + mov r8, r0 + mov r1, r8 + strb r1, [r6, #0xc] + ldr r0, _080AB3D8 @ =0xFFFF0000 + str r0, [r6, #0x20] + movs r2, #0x2e + ldrsh r1, [r6, r2] + ldr r2, _080AB3DC @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r6, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r6, #0 + adds r0, #0x76 + strh r1, [r0] + ldr r0, [r6, #0x50] + adds r1, r6, #0 + bl sub_0806FA24 + movs r1, #0x80 + lsls r1, r1, #5 + ldrb r2, [r6, #0x15] + adds r0, r6, #0 + bl sub_0806F5BC + adds r2, r6, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r4 + strb r0, [r2] + ldr r0, [r6, #0x50] + ldr r0, [r0, #0x34] + str r0, [r6, #0x34] + adds r0, r6, #0 + movs r1, #0x51 + bl sub_08004260 + ldr r0, _080AB3E0 @ =0x000001B5 + bl sub_080A3268 + adds r0, r6, #0 + bl sub_080AB4F8 + movs r1, #0x2e + ldrsh r2, [r6, r1] + movs r1, #0 + ldrsb r1, [r0, r1] + adds r5, r2, r1 + movs r2, #0x32 + ldrsh r1, [r6, r2] + ldrb r0, [r0, #1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r7, r1, r0 + adds r0, r6, #0 + adds r1, r5, #0 + adds r2, r7, #0 + bl sub_080041DC + adds r4, r0, #0 + bl sub_08000E50 + adds r1, r0, #0 + ldr r0, _080AB3E4 @ =0x000001FF + ands r1, r0 + ldr r0, _080AB3E8 @ =gUnk_030010A0 + ldr r0, [r0] + mov r2, r8 + ands r0, r2 + cmp r0, #0 + beq _080AB3EC + adds r4, r4, r1 + movs r0, #0x80 + lsls r0, r0, #3 + cmp r4, r0 + ble _080AB3F4 + adds r4, r0, #0 + b _080AB3F4 + .align 2, 0 +_080AB3D8: .4byte 0xFFFF0000 +_080AB3DC: .4byte gUnk_03000BF0 +_080AB3E0: .4byte 0x000001B5 +_080AB3E4: .4byte 0x000001FF +_080AB3E8: .4byte gUnk_030010A0 +_080AB3EC: + subs r4, r4, r1 + cmp r4, #0x1f + bgt _080AB3F4 + movs r4, #0x20 +_080AB3F4: + lsls r1, r4, #8 + ldr r0, [r6, #0x34] + bl __divsi3 + lsls r0, r0, #0xd + str r0, [r6, #0x20] + adds r0, r6, #0 + adds r1, r5, #0 + adds r2, r7, #0 + bl sub_080045B4 + strb r0, [r6, #0x15] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_080AB414 +sub_080AB414: @ 0x080AB414 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + movs r1, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _080AB446 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0xf + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0x54 + bl sub_08004260 + adds r0, r4, #0 + bl sub_080AB4A4 + b _080AB458 +_080AB446: + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xe0 + bls _080AB458 + bl sub_0805E780 +_080AB458: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080AB45C +sub_080AB45C: @ 0x080AB45C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080AB486 + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #0x53 + bl sub_08004260 +_080AB486: + pop {r4, pc} + + thumb_func_start sub_080AB488 +sub_080AB488: @ 0x080AB488 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080AB4A0 + bl sub_0805E780 +_080AB4A0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080AB4A4 +sub_080AB4A4: @ 0x080AB4A4 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r7, r6, #0 + adds r7, #0x76 + ldrh r4, [r7] + movs r1, #0x2e + ldrsh r0, [r6, r1] + ldr r3, _080AB4F4 @ =gUnk_03000BF0 + ldrh r1, [r3, #6] + subs r0, r0, r1 + asrs r5, r0, #4 + movs r2, #0x3f + ands r5, r2 + movs r1, #0x32 + ldrsh r0, [r6, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r5, r0 + cmp r4, r5 + beq _080AB4F2 + strh r5, [r7] + adds r0, r6, #0 + bl sub_080002A0 + cmp r0, #0x13 + beq _080AB4E2 + cmp r0, #0x34 + bne _080AB4F2 +_080AB4E2: + movs r0, #0xd3 + lsls r0, r0, #2 + ldrh r1, [r7] + adds r2, r6, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0807B7D8 +_080AB4F2: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080AB4F4: .4byte gUnk_03000BF0 + + thumb_func_start sub_080AB4F8 +sub_080AB4F8: @ 0x080AB4F8 + adds r1, r0, #0 + ldrb r0, [r1, #0xa] + lsls r0, r0, #5 + ldrb r1, [r1, #0xf] + lsls r1, r1, #1 + orrs r0, r1 + ldr r1, _080AB50C @ =gUnk_0812A4EC + adds r0, r0, r1 + bx lr + .align 2, 0 +_080AB50C: .4byte gUnk_0812A4EC + + thumb_func_start sub_080AB510 +sub_080AB510: @ 0x080AB510 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080AB528 @ =gUnk_0812A58C + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080AB528: .4byte gUnk_0812A58C + + thumb_func_start sub_080AB52C +sub_080AB52C: @ 0x080AB52C + push {lr} + ldr r2, _080AB540 @ =gUnk_0812A5A0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080AB540: .4byte gUnk_0812A5A0 + + thumb_func_start sub_080AB544 +sub_080AB544: @ 0x080AB544 + push {lr} + adds r2, r0, #0 + adds r0, #0x3d + movs r1, #0 + ldrsb r1, [r0, r1] + movs r0, #4 + rsbs r0, r0, #0 + cmp r1, r0 + bge _080AB57C + movs r1, #2 + movs r0, #2 + strb r0, [r2, #0xc] + adds r0, r2, #0 + adds r0, #0x3e + ldrb r0, [r0] + strb r0, [r2, #0x15] + ldrb r0, [r2, #0xa] + eors r1, r0 + lsls r1, r1, #3 + ldrb r0, [r2, #0x15] + subs r0, r0, r1 + adds r0, #1 + cmp r0, #2 + bhi _080AB576 + strb r1, [r2, #0x15] +_080AB576: + movs r0, #0xa0 + lsls r0, r0, #2 + strh r0, [r2, #0x24] +_080AB57C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080AB580 +sub_080AB580: @ 0x080AB580 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + ldrb r1, [r0, #0xa] + lsls r1, r1, #3 + strb r1, [r0, #0x15] + ldr r1, _080AB598 @ =0x0000FFFC + strh r1, [r0, #0x36] + ldrb r1, [r0, #0xa] + bl sub_08004260 + pop {pc} + .align 2, 0 +_080AB598: .4byte 0x0000FFFC + + thumb_func_start sub_080AB59C +sub_080AB59C: @ 0x080AB59C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080AF090 + cmp r0, #0 + bne _080AB5BC + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl sub_080A29AC + bl sub_0805E780 +_080AB5BC: + adds r0, r4, #0 + bl sub_080AB5F4 + pop {r4, pc} + + thumb_func_start sub_080AB5C4 +sub_080AB5C4: @ 0x080AB5C4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080AF090 + adds r0, r4, #0 + bl sub_080AB634 + cmp r0, #0 + bne _080AB5F0 + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _080AB5F0 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl sub_080A29AC + bl sub_0805E780 +_080AB5F0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080AB5F4 +sub_080AB5F4: @ 0x080AB5F4 + push {r4, lr} + adds r4, r0, #0 + bl sub_080043E8 + cmp r0, #2 + beq _080AB61A + cmp r0, #2 + bhi _080AB60A + cmp r0, #1 + beq _080AB610 + b _080AB62E +_080AB60A: + cmp r0, #3 + beq _080AB624 + b _080AB62E +_080AB610: + adds r0, r4, #0 + bl sub_080043B4 + movs r0, #1 + b _080AB630 +_080AB61A: + adds r0, r4, #0 + bl sub_080043A8 + movs r0, #1 + b _080AB630 +_080AB624: + adds r0, r4, #0 + bl sub_080043AC + movs r0, #1 + b _080AB630 +_080AB62E: + movs r0, #0 +_080AB630: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080AB634 +sub_080AB634: @ 0x080AB634 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r0, [r6, #0x50] + movs r5, #0 + adds r4, r0, #0 + adds r4, #0x20 +_080AB640: + ldr r1, [r4] + cmp r1, #0 + beq _080AB684 + adds r0, r6, #0 + bl sub_080177A0 + cmp r0, #0 + beq _080AB684 + ldr r1, [r4] + ldrb r0, [r1, #0xc] + cmp r0, #2 + bhi _080AB67A + movs r0, #3 + strb r0, [r1, #0xc] + ldr r1, [r4] + movs r0, #0x1e + strb r0, [r1, #0xe] + ldr r2, [r4] + ldrb r0, [r2, #0x18] + movs r3, #4 + rsbs r3, r3, #0 + adds r1, r3, #0 + ands r0, r1 + strb r0, [r2, #0x18] + ldr r0, [r4] + movs r1, #0x45 + movs r2, #0 + bl sub_080A29AC +_080AB67A: + adds r0, r6, #0 + bl sub_0805E7BC + movs r0, #1 + b _080AB68E +_080AB684: + adds r4, #4 + adds r5, #1 + cmp r5, #3 + bls _080AB640 + movs r0, #0 +_080AB68E: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080AB690 +sub_080AB690: @ 0x080AB690 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0x18] + lsls r0, r0, #0x1e + cmp r0, #0 + bne _080AB6A2 + bl sub_0805E780 +_080AB6A2: + ldr r0, _080AB6B4 @ =gUnk_0812A5E8 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080AB6B4: .4byte gUnk_0812A5E8 + + thumb_func_start sub_080AB6B8 +sub_080AB6B8: @ 0x080AB6B8 + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x50] + ldr r0, [r0, #0x2c] + str r0, [r2, #0x74] + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _080AB6E8 + movs r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] + ldr r0, _080AB6E4 @ =gUnk_0812A614 + str r0, [r2, #0x48] + adds r0, r2, #0 + movs r1, #0 + bl sub_08004260 + b _080AB6F8 + .align 2, 0 +_080AB6E4: .4byte gUnk_0812A614 +_080AB6E8: + movs r0, #2 + strb r0, [r2, #0xc] + movs r0, #4 + strb r0, [r2, #0xf] + ldrb r1, [r2, #0xe] + adds r0, r2, #0 + bl sub_08004260 +_080AB6F8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080AB6FC +sub_080AB6FC: @ 0x080AB6FC + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080AB724 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + adds r0, r4, #0 + bl sub_080AB758 +_080AB724: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080AB728 +sub_080AB728: @ 0x080AB728 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldr r2, [r4, #0x50] + ldr r1, [r2, #0x2c] + ldr r0, [r4, #0x74] + subs r1, r1, r0 + ldr r0, [r4, #0x2c] + adds r0, r0, r1 + str r0, [r4, #0x2c] + ldr r0, [r2, #0x2c] + str r0, [r4, #0x74] + adds r0, r4, #0 + bl sub_080AB888 + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + cmp r0, #0 + bne _080AB754 + bl sub_0805E780 +_080AB754: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080AB758 +sub_080AB758: @ 0x080AB758 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + adds r5, r0, #0 + movs r6, #6 + movs r7, #0 + movs r4, #0 + movs r0, #0x32 + ldrsh r2, [r5, r0] + ldr r1, _080AB818 @ =gUnk_03000BF0 + ldrh r0, [r1, #8] + adds r0, #0xd4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r1 + cmp r2, r0 + bhi _080AB7B4 + movs r3, #7 +_080AB77E: + adds r0, r4, #0 + ands r0, r3 + cmp r0, #7 + bne _080AB798 + adds r0, r5, #0 + movs r1, #4 + adds r2, r6, #0 + str r3, [sp] + bl sub_080AB844 + adds r6, #0x3e + adds r7, #0x3e + ldr r3, [sp] +_080AB798: + adds r4, #1 + ands r4, r3 + movs r1, #0x32 + ldrsh r0, [r5, r1] + adds r0, r0, r7 + lsls r1, r4, #3 + adds r2, r0, r1 + ldr r0, _080AB818 @ =gUnk_03000BF0 + ldrh r0, [r0, #8] + adds r0, #0xd4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r2, r0 + bls _080AB77E +_080AB7B4: + movs r4, #0 + movs r1, #0x32 + ldrsh r0, [r5, r1] + adds r2, r0, r7 + mov r1, r8 + ldrh r0, [r1, #8] + adds r0, #0xd4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r2, r0 + bhi _080AB802 + movs r3, #3 +_080AB7CC: + adds r0, r4, #0 + ands r0, r3 + cmp r0, #3 + bne _080AB7E6 + adds r0, r5, #0 + movs r1, #3 + adds r2, r6, #0 + str r3, [sp] + bl sub_080AB844 + adds r6, #0x1e + adds r7, #0x1e + ldr r3, [sp] +_080AB7E6: + adds r4, #1 + ands r4, r3 + movs r1, #0x32 + ldrsh r0, [r5, r1] + adds r0, r0, r7 + lsls r1, r4, #3 + adds r2, r0, r1 + ldr r0, _080AB818 @ =gUnk_03000BF0 + ldrh r0, [r0, #8] + adds r0, #0xd4 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r2, r0 + bls _080AB7CC +_080AB802: + movs r0, #2 + ands r0, r4 + cmp r0, #0 + beq _080AB81C + adds r0, r5, #0 + movs r1, #2 + adds r2, r6, #0 + bl sub_080AB844 + adds r6, #0xe + b _080AB830 + .align 2, 0 +_080AB818: .4byte gUnk_03000BF0 +_080AB81C: + movs r0, #1 + ands r4, r0 + cmp r4, #0 + beq _080AB830 + adds r0, r5, #0 + movs r1, #1 + adds r2, r6, #0 + bl sub_080AB844 + adds r6, #6 +_080AB830: + adds r0, r5, #0 + movs r1, #6 + adds r2, r6, #0 + bl sub_080AB844 + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_080AB844 +sub_080AB844: @ 0x080AB844 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r7, r1, #0 + adds r6, r2, #0 + movs r0, #0x1c + bl sub_080A7EE0 + adds r4, r0, #0 + cmp r4, #0 + beq _080AB880 + movs r0, #1 + strb r0, [r4, #0xa] + strb r7, [r4, #0xe] + ldr r0, [r5, #0x50] + str r0, [r4, #0x50] + lsls r3, r6, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0 + bl sub_0806FA48 + cmp r7, #1 + beq _080AB87C + ldr r0, _080AB878 @ =gUnk_0812A61C + b _080AB87E + .align 2, 0 +_080AB878: .4byte gUnk_0812A61C +_080AB87C: + ldr r0, _080AB884 @ =gUnk_0812A614 +_080AB87E: + str r0, [r4, #0x48] +_080AB880: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080AB884: .4byte gUnk_0812A614 + + thumb_func_start sub_080AB888 +sub_080AB888: @ 0x080AB888 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xf] + subs r0, #1 + strb r0, [r2, #0xf] + movs r3, #0 + ldrb r0, [r2, #0xe] + cmp r0, #3 + beq _080AB8A4 + cmp r0, #3 + ble _080AB8B6 + cmp r0, #4 + beq _080AB8A6 + b _080AB8B6 +_080AB8A4: + movs r3, #1 +_080AB8A6: + ldr r0, _080AB8C4 @ =gUnk_0812A5F4 + ldrb r1, [r2, #0xf] + lsls r1, r1, #1 + adds r1, r1, r3 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + str r0, [r2, #0x48] +_080AB8B6: + ldrb r0, [r2, #0xf] + cmp r0, #0 + bne _080AB8C0 + movs r0, #4 + strb r0, [r2, #0xf] +_080AB8C0: + pop {pc} + .align 2, 0 +_080AB8C4: .4byte gUnk_0812A5F4 + + thumb_func_start sub_080AB8C8 +sub_080AB8C8: @ 0x080AB8C8 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080AB8E4 @ =gUnk_0812A6B4 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_080AB9DC + pop {r4, pc} + .align 2, 0 +_080AB8E4: .4byte gUnk_0812A6B4 + + thumb_func_start sub_080AB8E8 +sub_080AB8E8: @ 0x080AB8E8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + movs r1, #0 + strb r0, [r4, #0xc] + movs r0, #0xa0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + str r1, [r4, #0x34] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080AB90E + bl sub_08000E50 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + str r4, [r4, #0x50] +_080AB90E: + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + ldrb r0, [r4, #0xa] + cmp r0, #3 + bhi _080AB936 + movs r0, #0x1d + bl sub_080A7EE0 + adds r1, r0, #0 + ldrb r0, [r4, #0xa] + adds r0, #1 + strb r0, [r1, #0xa] + ldr r0, [r4, #0x50] + str r0, [r1, #0x50] + str r4, [r1, #0x54] + adds r0, r4, #0 + bl sub_0806FA24 +_080AB936: + adds r1, r4, #0 + adds r1, #0x68 + movs r2, #7 +_080AB93C: + ldrh r0, [r4, #0x2e] + strh r0, [r1] + adds r1, #2 + ldrh r0, [r4, #0x32] + strh r0, [r1] + adds r1, #2 + subs r2, #1 + cmp r2, #0 + bge _080AB93C + pop {r4, pc} + + thumb_func_start sub_080AB950 +sub_080AB950: @ 0x080AB950 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080AB99C + adds r0, r4, #0 + bl sub_080AEF88 + ldrb r0, [r4, #0x15] + lsrs r0, r0, #3 + ldr r1, _080AB994 @ =gUnk_0812A6C4 + lsls r5, r0, #1 + adds r1, r5, r1 + ldrh r1, [r1] + ldrh r0, [r4, #0x2a] + ands r0, r1 + cmp r0, #0 + bne _080AB980 + ldrb r1, [r4, #0x15] + adds r0, r4, #0 + bl sub_080AB9FC + cmp r0, #0 + beq _080AB9D4 +_080AB980: + bl sub_08000E50 + ldr r2, _080AB998 @ =gUnk_0812A6BC + movs r1, #1 + ands r1, r0 + adds r1, r1, r5 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4, #0x15] + b _080AB9D4 + .align 2, 0 +_080AB994: .4byte gUnk_0812A6C4 +_080AB998: .4byte gUnk_0812A6BC +_080AB99C: + ldr r0, [r4, #0x50] + cmp r0, #0 + bne _080AB9A6 + bl sub_0805E780 +_080AB9A6: + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _080AB9B2 + bl sub_0805E780 +_080AB9B2: + ldr r1, [r4, #0x54] + cmp r1, #0 + beq _080AB9D0 + ldr r0, [r1, #4] + cmp r0, #0 + beq _080AB9D0 + adds r0, r1, #0 + adds r0, #0x68 + ldrh r0, [r0] + strh r0, [r4, #0x2e] + adds r0, r1, #0 + adds r0, #0x6a + ldrh r0, [r0] + strh r0, [r4, #0x32] + b _080AB9D4 +_080AB9D0: + bl sub_0805E780 +_080AB9D4: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, r5, pc} + + thumb_func_start sub_080AB9DC +sub_080AB9DC: @ 0x080AB9DC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x6c + adds r1, r4, #0 + adds r1, #0x68 + movs r2, #0x1c + bl sub_0801D66C + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x84 + strh r1, [r0] + ldrh r1, [r4, #0x32] + adds r0, #2 + strh r1, [r0] + pop {r4, pc} + + thumb_func_start sub_080AB9FC +sub_080AB9FC: @ 0x080AB9FC + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r0, #0x38 + ldrb r0, [r0] + bl sub_0808094C + movs r1, #0x2e + ldrsh r3, [r5, r1] + ldr r2, _080ABA4C @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + subs r3, r3, r1 + asrs r3, r3, #4 + movs r6, #0x3f + ands r3, r6 + movs r7, #0x32 + ldrsh r1, [r5, r7] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r6 + lsls r1, r1, #6 + orrs r3, r1 + ldr r1, _080ABA50 @ =gUnk_080B4488 + lsrs r4, r4, #3 + lsls r4, r4, #1 + adds r4, r4, r1 + movs r2, #0 + ldrsh r1, [r4, r2] + adds r3, r3, r1 + ldr r7, _080ABA54 @ =0x00002004 + adds r0, r0, r7 + adds r0, r0, r3 + ldrb r0, [r0] + cmp r0, #0x1f + bls _080ABA58 + cmp r0, #0x3f + bhi _080ABA58 + movs r0, #1 + b _080ABA5A + .align 2, 0 +_080ABA4C: .4byte gUnk_03000BF0 +_080ABA50: .4byte gUnk_080B4488 +_080ABA54: .4byte 0x00002004 +_080ABA58: + movs r0, #0 +_080ABA5A: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080ABA5C +sub_080ABA5C: @ 0x080ABA5C + push {lr} + ldr r2, _080ABA70 @ =gUnk_0812A6CC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080ABA70: .4byte gUnk_0812A6CC + + thumb_func_start sub_080ABA74 +sub_080ABA74: @ 0x080ABA74 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + adds r0, #1 + strb r0, [r2, #0xc] + adds r0, r2, #0 + adds r0, #0x86 + ldrh r0, [r0] + strh r0, [r2, #0x24] + ldrh r1, [r2, #0x2e] + adds r0, r2, #0 + adds r0, #0x68 + strh r1, [r0] + ldrh r0, [r2, #0x32] + adds r1, r2, #0 + adds r1, #0x6a + strh r0, [r1] + adds r0, r2, #0 + adds r0, #0x84 + ldrh r1, [r0] + subs r0, #0x18 + strh r1, [r0] + ldrb r0, [r2, #0xa] + cmp r0, #6 + bhi _080ABAAA + movs r0, #0 + b _080ABAAC +_080ABAAA: + movs r0, #1 +_080ABAAC: + strb r0, [r2, #0xb] + ldr r0, _080ABAC8 @ =gUnk_0812A6D4 + ldrb r1, [r2, #0xa] + adds r0, r1, r0 + ldrb r3, [r0] + ldrb r0, [r2, #0xb] + cmp r0, #0 + bne _080ABACC + movs r0, #8 + strb r0, [r2, #0x15] + ldrh r0, [r2, #0x32] + adds r0, r0, r3 + strh r0, [r2, #0x32] + b _080ABAD6 + .align 2, 0 +_080ABAC8: .4byte gUnk_0812A6D4 +_080ABACC: + movs r0, #0x10 + strb r0, [r2, #0x15] + ldrh r0, [r2, #0x2e] + adds r0, r0, r3 + strh r0, [r2, #0x2e] +_080ABAD6: + adds r0, r2, #0 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080ABAE0 +sub_080ABAE0: @ 0x080ABAE0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_080AF090 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _080ABAFE + movs r1, #0x2e + ldrsh r0, [r4, r1] + adds r1, r4, #0 + adds r1, #0x68 + movs r2, #0 + ldrsh r1, [r1, r2] + subs r3, r0, r1 + b _080ABB0C +_080ABAFE: + movs r0, #0x32 + ldrsh r1, [r4, r0] + adds r0, r4, #0 + adds r0, #0x6a + movs r2, #0 + ldrsh r0, [r0, r2] + subs r3, r1, r0 +_080ABB0C: + adds r0, r4, #0 + adds r0, #0x6c + movs r1, #0 + ldrsh r2, [r0, r1] + adds r6, r0, #0 + cmp r2, #0 + bge _080ABB1E + rsbs r3, r3, #0 + rsbs r2, r2, #0 +_080ABB1E: + lsls r1, r3, #0x10 + lsls r0, r2, #0x10 + cmp r1, r0 + bls _080ABB84 + ldrb r0, [r4, #0x15] + movs r1, #0x10 + eors r0, r1 + strb r0, [r4, #0x15] + ldrb r0, [r4, #0xb] + adds r5, r0, #0 + cmp r5, #0 + bne _080ABB4E + adds r0, r4, #0 + adds r0, #0x68 + ldrh r0, [r0] + strh r0, [r4, #0x2e] + ldrb r2, [r4, #0x18] + lsls r1, r2, #0x19 + lsrs r1, r1, #0x1f + movs r0, #1 + eors r1, r0 + lsls r1, r1, #6 + subs r0, #0x42 + b _080ABB62 +_080ABB4E: + adds r0, r4, #0 + adds r0, #0x6a + ldrh r0, [r0] + strh r0, [r4, #0x32] + ldrb r2, [r4, #0x18] + lsrs r1, r2, #7 + movs r0, #1 + eors r1, r0 + lsls r1, r1, #7 + movs r0, #0x7f +_080ABB62: + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + cmp r3, #0 + ble _080ABB84 + lsls r0, r5, #0x18 + cmp r0, #0 + bne _080ABB7C + ldrh r0, [r6] + ldrh r2, [r4, #0x2e] + adds r0, r0, r2 + strh r0, [r4, #0x2e] + b _080ABB84 +_080ABB7C: + ldrh r0, [r6] + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] +_080ABB84: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, r5, r6, pc} + + thumb_func_start sub_080ABB8C +sub_080ABB8C: @ 0x080ABB8C + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080ABBA4 @ =gUnk_0812A7D4 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080ABBA4: .4byte gUnk_0812A7D4 + + thumb_func_start sub_080ABBA8 +sub_080ABBA8: @ 0x080ABBA8 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #1 + beq _080ABBC4 + cmp r0, #1 + bgt _080ABBDC + cmp r0, #0 + bne _080ABBDC + ldr r0, _080ABBC0 @ =gUnk_0812A7EC + b _080ABBC6 + .align 2, 0 +_080ABBC0: .4byte gUnk_0812A7EC +_080ABBC4: + ldr r0, _080ABBD8 @ =gUnk_0812A7F8 +_080ABBC6: + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _080ABBEC + .align 2, 0 +_080ABBD8: .4byte gUnk_0812A7F8 +_080ABBDC: + ldr r0, _080ABBF0 @ =gUnk_0812A800 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 +_080ABBEC: + pop {pc} + .align 2, 0 +_080ABBF0: .4byte gUnk_0812A800 + + thumb_func_start sub_080ABBF4 +sub_080ABBF4: @ 0x080ABBF4 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080ABC52 + ldrb r0, [r4, #0xa] + cmp r0, #0 + blt _080ABC52 + cmp r0, #1 + ble _080ABC3E + cmp r0, #2 + bne _080ABC52 + movs r0, #0x3f + ands r0, r1 + cmp r0, #3 + beq _080ABC32 + cmp r0, #3 + bgt _080ABC24 + cmp r0, #0 + beq _080ABC2A + b _080ABC52 +_080ABC24: + cmp r0, #0x14 + beq _080ABC32 + b _080ABC52 +_080ABC2A: + movs r0, #4 + rsbs r0, r0, #0 + bl sub_080526A0 +_080ABC32: + adds r0, r4, #0 + bl sub_080A29BC + bl sub_0805E780 + b _080ABC52 +_080ABC3E: + movs r0, #0x3f + ands r0, r1 + cmp r0, #0 + bne _080ABC52 + movs r0, #2 + rsbs r0, r0, #0 + bl sub_080526A0 + bl sub_0805E780 +_080ABC52: + pop {r4, pc} + + thumb_func_start sub_080ABC54 +sub_080ABC54: @ 0x080ABC54 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F520 + cmp r0, #0 + bne _080ABC6E + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl sub_080A29AC + bl sub_0805E780 +_080ABC6E: + ldr r0, _080ABC80 @ =gUnk_0812A808 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080ABC80: .4byte gUnk_0812A808 + + thumb_func_start sub_080ABC84 +sub_080ABC84: @ 0x080ABC84 + movs r1, #2 + strb r1, [r0, #0xd] + bx lr + .align 2, 0 + + thumb_func_start nullsub_542 +nullsub_542: @ 0x080ABC8C + bx lr + .align 2, 0 + + thumb_func_start sub_080ABC90 +sub_080ABC90: @ 0x080ABC90 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _080ABCBE + movs r0, #2 + rsbs r0, r0, #0 + bl sub_080526A0 + ldr r0, _080ABCC0 @ =gUnk_03001160 + movs r1, #0x7a + bl sub_0800449C + bl sub_08079D84 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl sub_080A29AC + bl sub_0805E780 +_080ABCBE: + pop {r4, pc} + .align 2, 0 +_080ABCC0: .4byte gUnk_03001160 + + thumb_func_start sub_080ABCC4 +sub_080ABCC4: @ 0x080ABCC4 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 + movs r0, #1 + strb r0, [r5, #0xc] + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + adds r0, #0x30 + strb r0, [r5, #0xe] + strb r4, [r5, #0xf] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + strb r0, [r5, #0x15] + movs r0, #0x2e + ldrsh r1, [r5, r0] + ldr r2, _080ABD3C @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r4, #0x32 + ldrsh r0, [r5, r4] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r5, #0 + adds r0, #0x74 + strh r1, [r0] + ldrh r0, [r0] + movs r1, #2 + bl sub_080002B0 + adds r1, r5, #0 + adds r1, #0x76 + strh r0, [r1] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r2] + adds r0, r5, #0 + movs r1, #0 + bl sub_08004260 + ldr r0, _080ABD40 @ =0x0000014B + bl sub_080A3268 + pop {r4, r5, pc} + .align 2, 0 +_080ABD3C: .4byte gUnk_03000BF0 +_080ABD40: .4byte 0x0000014B + + thumb_func_start sub_080ABD44 +sub_080ABD44: @ 0x080ABD44 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080ABD60 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_080ABD60: + adds r0, r4, #0 + bl sub_080AF090 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080ABD70 +sub_080ABD70: @ 0x080ABD70 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_08004274 + adds r2, r5, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080ABDEE + movs r0, #0xef + ands r0, r1 + movs r1, #0 + strb r0, [r2] + strh r1, [r5, #0x24] + movs r0, #0x2e + ldrsh r1, [r5, r0] + ldr r2, _080ABDDC @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r4, #0x32 + ldrsh r0, [r5, r4] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r4, r5, #0 + adds r4, #0x74 + strh r1, [r4] + ldrh r0, [r4] + movs r1, #2 + bl sub_080002B0 + adds r1, r5, #0 + adds r1, #0x76 + strh r0, [r1] + ldrh r1, [r1] + cmp r1, #0x13 + beq _080ABDE4 + ldr r0, _080ABDE0 @ =0x00000315 + cmp r1, r0 + bne _080ABDEE + ldrh r1, [r4] + movs r0, #0x6e + movs r2, #2 + bl sub_0807B314 + b _080ABDEE + .align 2, 0 +_080ABDDC: .4byte gUnk_03000BF0 +_080ABDE0: .4byte 0x00000315 +_080ABDE4: + ldrh r1, [r4] + movs r0, #0x6d + movs r2, #2 + bl sub_0807B314 +_080ABDEE: + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080ABE00 + bl sub_0805E780 +_080ABE00: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080ABE04 +sub_080ABE04: @ 0x080ABE04 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08000E50 + adds r5, r0, #0 + movs r0, #0xff + ands r5, r0 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _080ABE48 @ =0xFFFF0000 + str r0, [r4, #0x20] + ldrh r0, [r4, #0x36] + subs r0, #0xa0 + strh r0, [r4, #0x36] + ldr r3, _080ABE4C @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + ldr r1, _080ABE50 @ =0x00007FF0 + adds r0, r1, #0 + ands r0, r2 + movs r2, #8 + orrs r0, r2 + strh r0, [r4, #0x2e] + ldrh r0, [r3, #8] + ands r1, r0 + orrs r1, r2 + strh r1, [r4, #0x32] + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r0, #0x10 + ands r0, r5 + cmp r0, #0 + beq _080ABE54 + adds r1, #0x10 + b _080ABE56 + .align 2, 0 +_080ABE48: .4byte 0xFFFF0000 +_080ABE4C: .4byte gUnk_03000BF0 +_080ABE50: .4byte 0x00007FF0 +_080ABE54: + adds r1, #0xc0 +_080ABE56: + movs r0, #0xe0 + ands r0, r5 + lsrs r0, r0, #1 + adds r0, r1, r0 + strh r0, [r4, #0x2e] + movs r0, #0xf + ands r5, r0 + lsls r0, r5, #4 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl sub_08004168 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + ldr r0, _080ABE84 @ =0x0000012D + bl sub_080A3268 + pop {r4, r5, pc} + .align 2, 0 +_080ABE84: .4byte 0x0000012D + + thumb_func_start sub_080ABE88 +sub_080ABE88: @ 0x080ABE88 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xc0 + lsls r1, r1, #5 + bl sub_08003FC4 + cmp r0, #0 + bne _080ABEA6 + adds r0, r4, #0 + movs r1, #4 + movs r2, #0 + bl sub_080A29AC + bl sub_0805E780 +_080ABEA6: + pop {r4, pc} + + thumb_func_start sub_080ABEA8 +sub_080ABEA8: @ 0x080ABEA8 + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + strb r2, [r4, #0xc] + movs r0, #0x60 + strb r0, [r4, #0xe] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r1, [r3] + subs r0, #0x68 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r3] + strb r2, [r4, #0x1c] + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _080ABEDA + bl sub_08000E50 + movs r1, #0xf + ands r0, r1 + lsls r0, r0, #1 + strb r0, [r4, #0x15] + b _080ABEEC +_080ABEDA: + adds r0, r4, #0 + movs r1, #0 + bl sub_08049F84 + strb r0, [r4, #0x15] + ldr r1, _080ABEFC @ =0x0000013F + adds r0, r4, #0 + bl sub_0801D2B4 +_080ABEEC: + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + ldr r0, _080ABF00 @ =0x00000193 + bl sub_080A3268 + pop {r4, pc} + .align 2, 0 +_080ABEFC: .4byte 0x0000013F +_080ABF00: .4byte 0x00000193 + + thumb_func_start sub_080ABF04 +sub_080ABF04: @ 0x080ABF04 + push {r4, lr} + adds r4, r0, #0 + bl sub_080040A8 + cmp r0, #0 + bne _080ABF14 + bl sub_0805E780 +_080ABF14: + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080ABF24 +sub_080ABF24: @ 0x080ABF24 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080ABF3C @ =gUnk_0812A84C + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080ABF3C: .4byte gUnk_0812A84C + + thumb_func_start sub_080ABF40 +sub_080ABF40: @ 0x080ABF40 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080ABF66 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r1, _080ABFA0 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + ldr r0, _080ABFA4 @ =0x00000199 + bl sub_080A3268 +_080ABF66: + ldrh r2, [r4, #0x36] + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #6 + rsbs r0, r0, #0 + cmp r1, r0 + bge _080ABF78 + adds r0, r2, #2 + strh r0, [r4, #0x36] +_080ABF78: + adds r0, r4, #0 + bl sub_080AF090 + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _080ABF88 + bl sub_0805E780 +_080ABF88: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080A7EB0 + cmp r0, #0 + beq _080ABF9C + bl sub_0805E780 +_080ABF9C: + pop {r4, pc} + .align 2, 0 +_080ABFA0: .4byte gUnk_03001160 +_080ABFA4: .4byte 0x00000199 + + thumb_func_start sub_080ABFA8 +sub_080ABFA8: @ 0x080ABFA8 + push {lr} + bl sub_0805E780 + pop {pc} + + thumb_func_start sub_080ABFB0 +sub_080ABFB0: @ 0x080ABFB0 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080ABFC8 @ =gUnk_0812A954 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080ABFC8: .4byte gUnk_0812A954 + + thumb_func_start sub_080ABFCC +sub_080ABFCC: @ 0x080ABFCC + push {lr} + ldr r2, _080ABFE0 @ =gUnk_0812A968 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080ABFE0: .4byte gUnk_0812A968 + + thumb_func_start sub_080ABFE4 +sub_080ABFE4: @ 0x080ABFE4 + push {lr} + bl sub_0805E780 + pop {pc} + + thumb_func_start sub_080ABFEC +sub_080ABFEC: @ 0x080ABFEC + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xa] + adds r1, #1 + bl sub_08004260 + ldrb r1, [r4, #0xa] + cmp r1, #0 + beq _080AC030 + cmp r1, #1 + beq _080AC048 + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + movs r0, #0xff + strb r0, [r4, #0xf] + ldr r1, _080AC028 @ =gUnk_0812A97C + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x44 + movs r0, #0x88 + strb r0, [r1] + ldr r0, _080AC02C @ =0x00000193 + b _080AC06A + .align 2, 0 +_080AC028: .4byte gUnk_0812A97C +_080AC02C: .4byte 0x00000193 +_080AC030: + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + movs r0, #7 + strb r0, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x85 + movs r0, #0x18 + strb r0, [r1] + subs r1, #0x41 + movs r0, #0x88 + b _080AC058 +_080AC048: + strb r1, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x85 + movs r0, #0x18 +_080AC058: + strb r0, [r1] + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA6C + ldrh r0, [r4, #0x36] + subs r0, #0x14 + strh r0, [r4, #0x36] + ldr r0, _080AC070 @ =0x00000149 +_080AC06A: + bl sub_080A3268 + pop {r4, pc} + .align 2, 0 +_080AC070: .4byte 0x00000149 + + thumb_func_start sub_080AC074 +sub_080AC074: @ 0x080AC074 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _080AC084 + bl sub_0805E780 +_080AC084: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA6C + ldrh r0, [r4, #0x36] + subs r0, #0x14 + strh r0, [r4, #0x36] + adds r1, r4, #0 + adds r1, #0x85 + ldrb r0, [r1] + cmp r0, #0 + beq _080AC0B2 + subs r0, #1 + strb r0, [r1] + movs r1, #0xff + ands r0, r1 + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _080AC0B2 + ldr r0, _080AC0E8 @ =0x00000149 + bl sub_080A3268 +_080AC0B2: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080AC0FE + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080AC0F0 + movs r0, #2 + strb r0, [r4, #0xc] + ldr r1, _080AC0EC @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + adds r0, #0x13 + bl sub_080A3268 + b _080AC0F8 + .align 2, 0 +_080AC0E8: .4byte 0x00000149 +_080AC0EC: .4byte gUnk_03001160 +_080AC0F0: + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x10 + strb r0, [r4, #0xe] +_080AC0F8: + ldrh r0, [r4, #0x36] + subs r0, #0x28 + strh r0, [r4, #0x36] +_080AC0FE: + pop {r4, pc} + + thumb_func_start sub_080AC100 +sub_080AC100: @ 0x080AC100 + push {r4, lr} + adds r4, r0, #0 + ldrh r2, [r4, #0x36] + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #6 + rsbs r0, r0, #0 + cmp r1, r0 + bge _080AC116 + adds r0, r2, #3 + strh r0, [r4, #0x36] +_080AC116: + adds r0, r4, #0 + bl sub_080AF090 + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _080AC126 + bl sub_0805E780 +_080AC126: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080A7EB0 + cmp r0, #0 + beq _080AC13A + bl sub_0805E780 +_080AC13A: + ldrb r0, [r4, #0xe] + cmp r0, #0x1d + bhi _080AC160 + adds r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + ands r0, r1 + ldrb r1, [r4, #0xf] + ands r0, r1 + cmp r0, #0 + bne _080AC160 + ldr r1, _080AC164 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 +_080AC160: + pop {r4, pc} + .align 2, 0 +_080AC164: .4byte gUnk_03001160 + + thumb_func_start sub_080AC168 +sub_080AC168: @ 0x080AC168 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_08004274 + ldr r0, [r4, #0x34] + ldr r1, _080AC1C0 @ =0xFFFF8000 + adds r0, r0, r1 + str r0, [r4, #0x34] + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0 + bne _080AC1F8 + movs r0, #4 + strb r0, [r4, #0xc] + strb r0, [r4, #0xe] + bl sub_08000E50 + adds r5, r0, #0 + movs r0, #7 + ands r5, r0 + ldr r0, _080AC1C4 @ =gUnk_0812A982 + adds r0, r5, r0 + ldrb r0, [r0] + strb r0, [r4, #0xf] + ldr r1, _080AC1C8 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + ldr r0, [r4, #0x50] + adds r0, #0x84 + ldrb r0, [r0] + cmp r0, #3 + bne _080AC1D0 + ldr r0, _080AC1CC @ =gUnk_0812A98A + adds r0, r5, r0 + ldrb r0, [r0] + subs r1, r1, r0 + strb r6, [r4, #0xb] + b _080AC1F2 + .align 2, 0 +_080AC1C0: .4byte 0xFFFF8000 +_080AC1C4: .4byte gUnk_0812A982 +_080AC1C8: .4byte gUnk_03001160 +_080AC1CC: .4byte gUnk_0812A98A +_080AC1D0: + cmp r0, #2 + bne _080AC1E4 + ldr r0, _080AC1E0 @ =gUnk_0812A98A + adds r0, r5, r0 + ldrb r0, [r0] + subs r1, r1, r0 + movs r0, #1 + b _080AC1F0 + .align 2, 0 +_080AC1E0: .4byte gUnk_0812A98A +_080AC1E4: + ldr r0, _080AC1FC @ =gUnk_0812A98A + adds r0, r5, r0 + ldrb r0, [r0] + lsrs r0, r0, #1 + subs r1, r1, r0 + movs r0, #2 +_080AC1F0: + strb r0, [r4, #0xb] +_080AC1F2: + movs r0, #0x1f + ands r1, r0 + strb r1, [r4, #0x15] +_080AC1F8: + pop {r4, r5, r6, pc} + .align 2, 0 +_080AC1FC: .4byte gUnk_0812A98A + + thumb_func_start sub_080AC200 +sub_080AC200: @ 0x080AC200 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r5, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080AC270 + movs r0, #0x10 + strb r0, [r4, #0xe] + movs r0, #0x21 + bl sub_080A7EE0 + adds r1, r0, #0 + cmp r1, #0 + beq _080AC23C + movs r0, #2 + strb r0, [r1, #0xa] + ldrb r0, [r4, #0xb] + strb r0, [r1, #0xb] + ldrb r0, [r4, #0x15] + strb r0, [r1, #0x15] + ldr r0, [r4, #0x50] + str r0, [r1, #0x50] + adds r0, r4, #0 + bl sub_0806FA24 +_080AC23C: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r5 + cmp r0, #0 + bne _080AC24C + bl sub_0805E780 +_080AC24C: + ldr r0, [r4, #0x50] + adds r0, #0x84 + ldrb r0, [r0] + cmp r0, #3 + bne _080AC25C + ldrb r0, [r4, #0x15] + adds r0, #3 + b _080AC26A +_080AC25C: + cmp r0, #2 + bne _080AC266 + ldrb r0, [r4, #0x15] + adds r0, #3 + b _080AC26A +_080AC266: + ldrb r0, [r4, #0x15] + adds r0, #2 +_080AC26A: + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] +_080AC270: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080AC274 +sub_080AC274: @ 0x080AC274 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _080AC284 + bl sub_0805E780 +_080AC284: + ldr r1, _080AC2BC @ =gUnk_0812A994 + ldrb r0, [r4, #0xb] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080AC2C0 + ldrb r0, [r4, #0x1b] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + orrs r0, r1 + strb r0, [r4, #0x19] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + b _080AC324 + .align 2, 0 +_080AC2BC: .4byte gUnk_0812A994 +_080AC2C0: + ldr r5, [r4, #0x50] + ldrb r2, [r5, #0x1b] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r4, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r4, #0x1b] + ldrb r0, [r5, #0x19] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r4, #0x19] + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #0x19] + adds r0, r5, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + subs r1, #2 + adds r3, r4, #0 + adds r3, #0x29 + movs r0, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrb r0, [r5, #0x19] + lsrs r0, r0, #6 + cmp r0, #3 + bne _080AC31C + adds r0, r5, #0 + adds r0, #0x7c + ldrb r0, [r0] + cmp r0, #0 + bne _080AC31C + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + b _080AC322 +_080AC31C: + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 +_080AC322: + strb r0, [r4, #0x10] +_080AC324: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080AC328 +sub_080AC328: @ 0x080AC328 + push {lr} + ldr r2, _080AC33C @ =gUnk_0812A9A8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080AC33C: .4byte gUnk_0812A9A8 + + thumb_func_start sub_080AC340 +sub_080AC340: @ 0x080AC340 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080AC5E4 + cmp r0, #0 + beq _080AC380 + movs r2, #1 + movs r4, #1 + strb r4, [r5, #0xc] + movs r0, #0xc + strb r0, [r5, #0x1e] + ldrb r1, [r5, #0x18] + subs r0, #0x10 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + bl sub_08000E50 + ldr r1, _080AC384 @ =gUnk_0812A9B4 + ands r0, r4 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + adds r1, r5, #0 + adds r1, #0x7a + strh r0, [r1] + subs r1, #0x42 + movs r0, #2 + strb r0, [r1] + adds r0, r5, #0 + bl sub_080AC388 +_080AC380: + pop {r4, r5, pc} + .align 2, 0 +_080AC384: .4byte gUnk_0812A9B4 + + thumb_func_start sub_080AC388 +sub_080AC388: @ 0x080AC388 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r5, r0, #0 + ldr r1, _080AC3E4 @ =gUnk_0812A9B8 + ldrb r0, [r5, #0xa] + adds r0, r0, r1 + ldrb r3, [r0] + ldr r0, [r5, #0x50] + mov sl, r0 + ldrb r0, [r0, #0x14] + movs r1, #0x80 + mov sb, r1 + mov r1, sb + eors r1, r0 + adds r6, r5, #0 + adds r6, #0x7c + ldrh r4, [r6] + lsrs r0, r4, #8 + subs r1, r1, r0 + adds r2, r5, #0 + adds r2, #0x7a + ldrh r7, [r2] + mov ip, r7 + movs r7, #0 + ldrsh r0, [r2, r7] + cmp r0, #0 + bge _080AC404 + subs r0, r1, r3 + movs r7, #0xff + mov r8, r7 + ands r0, r7 + cmp r0, #0x7f + bhi _080AC3E8 + movs r1, #0 + ldrsh r0, [r2, r1] + rsbs r0, r0, #0 + strh r0, [r2] + mov r2, sl + ldrb r0, [r2, #0x14] + mov r7, sb + eors r0, r7 + subs r0, r0, r3 + b _080AC422 + .align 2, 0 +_080AC3E4: .4byte gUnk_0812A9B8 +_080AC3E8: + mov r2, ip + adds r0, r4, r2 + strh r0, [r6] + adds r0, r1, r3 + mov r7, r8 + ands r0, r7 + cmp r0, #0x80 + bls _080AC45A + mov r1, sl + ldrb r0, [r1, #0x14] + mov r2, sb + eors r0, r2 + adds r0, r0, r3 + b _080AC44E +_080AC404: + adds r0, r1, r3 + movs r7, #0xff + mov r8, r7 + ands r0, r7 + cmp r0, #0x80 + bls _080AC432 + movs r1, #0 + ldrsh r0, [r2, r1] + rsbs r0, r0, #0 + strh r0, [r2] + mov r2, sl + ldrb r0, [r2, #0x14] + mov r7, sb + eors r0, r7 + adds r0, r0, r3 +_080AC422: + movs r1, #0xff + ands r0, r1 + lsls r0, r0, #8 + strh r0, [r6] + adds r0, r5, #0 + bl sub_080AC884 + b _080AC45A +_080AC432: + mov r2, ip + adds r0, r4, r2 + strh r0, [r6] + subs r0, r1, r3 + mov r7, r8 + ands r0, r7 + subs r0, #1 + cmp r0, #0x7e + bhi _080AC45A + mov r1, sl + ldrb r0, [r1, #0x14] + mov r2, sb + eors r0, r2 + subs r0, r0, r3 +_080AC44E: + movs r1, #0xff + ands r0, r1 + lsls r0, r0, #8 + movs r1, #0x80 + orrs r0, r1 + strh r0, [r6] +_080AC45A: + adds r0, r5, #0 + adds r0, #0x7c + ldrh r0, [r0] + lsrs r0, r0, #8 + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_080AC6F0 + adds r0, r5, #0 + bl sub_080AC760 + adds r0, r5, #0 + bl sub_080AC7C4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080AC480 +sub_080AC480: @ 0x080AC480 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xe] + cmp r1, #0 + beq _080AC4BE + ldr r0, [r4, #0x50] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _080AC4A2 + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x1d + strb r0, [r1] + b _080AC50A +_080AC4A2: + subs r0, r1, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080AC50A + adds r0, r4, #0 + adds r0, #0x3f + movs r1, #0x1c + strb r1, [r0] + movs r0, #0x8b + lsls r0, r0, #1 + bl sub_080A3268 + b _080AC50A +_080AC4BE: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080AC4D6 + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x1d + strb r0, [r1] +_080AC4D6: + adds r1, r4, #0 + adds r1, #0x7c + ldrh r2, [r1] + adds r0, r4, #0 + adds r0, #0x7a + movs r3, #0 + ldrsh r0, [r0, r3] + cmp r0, #0 + ble _080AC4EE + movs r3, #0xc0 + lsls r3, r3, #2 + b _080AC4F0 +_080AC4EE: + ldr r3, _080AC50C @ =0xFFFFFD00 +_080AC4F0: + adds r0, r2, r3 + strh r0, [r1] + lsrs r0, r0, #8 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_080AC6F0 + adds r0, r4, #0 + bl sub_080AC760 + adds r0, r4, #0 + bl sub_080AC7C4 +_080AC50A: + pop {r4, pc} + .align 2, 0 +_080AC50C: .4byte 0xFFFFFD00 + + thumb_func_start sub_080AC510 +sub_080AC510: @ 0x080AC510 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080AC556 + movs r3, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r2, _080AC558 @ =gUnk_0812A9BA + ldrb r1, [r4, #0xa] + lsls r0, r1, #1 + adds r0, r0, r1 + ldrb r1, [r4, #0xb] + adds r0, r0, r1 + subs r0, #1 + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r3 + strb r0, [r4, #0x18] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + ldrh r1, [r4, #0xa] + movs r0, #0xc0 + lsls r0, r0, #2 + cmp r1, r0 + bne _080AC556 + ldr r0, _080AC55C @ =gUnk_080FD458 + str r0, [r4, #0x48] +_080AC556: + pop {r4, pc} + .align 2, 0 +_080AC558: .4byte gUnk_0812A9BA +_080AC55C: .4byte gUnk_080FD458 + + thumb_func_start sub_080AC560 +sub_080AC560: @ 0x080AC560 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x54] + ldr r0, [r5, #4] + cmp r0, #0 + bne _080AC570 + bl sub_0805E780 +_080AC570: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080AC5A6 + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080AC590 + ldr r0, _080AC58C @ =gUnk_080FD168 + b _080AC592 + .align 2, 0 +_080AC58C: .4byte gUnk_080FD168 +_080AC590: + ldr r0, _080AC5DC @ =gUnk_080FD448 +_080AC592: + str r0, [r4, #0x48] + movs r0, #0xff + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] +_080AC5A6: + adds r0, r4, #0 + adds r0, #0x79 + ldrb r2, [r0] + lsls r2, r2, #8 + ldr r3, _080AC5E0 @ =gUnk_080C9160 + ldrb r0, [r5, #0x15] + lsls r0, r0, #1 + adds r0, r0, r3 + movs r1, #0 + ldrsh r0, [r0, r1] + adds r1, r0, #0 + muls r1, r2, r1 + ldr r0, [r5, #0x2c] + adds r0, r0, r1 + str r0, [r4, #0x2c] + ldrb r0, [r5, #0x15] + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r3 + movs r1, #0 + ldrsh r0, [r0, r1] + adds r1, r0, #0 + muls r1, r2, r1 + ldr r0, [r5, #0x30] + subs r0, r0, r1 + str r0, [r4, #0x30] + pop {r4, r5, pc} + .align 2, 0 +_080AC5DC: .4byte gUnk_080FD448 +_080AC5E0: .4byte gUnk_080C9160 + + thumb_func_start sub_080AC5E4 +sub_080AC5E4: @ 0x080AC5E4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + ldrb r4, [r5, #0xa] + cmp r4, #0 + bne _080AC668 + ldr r0, _080AC664 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x43 + bhi _080AC670 + adds r1, r5, #0 + adds r1, #0x79 + movs r0, #0x11 + strb r0, [r1] + movs r0, #0x22 + bl sub_080A7EE0 + adds r6, r0, #0 + ldrb r0, [r5, #0xa] + strb r0, [r6, #0xa] + movs r0, #1 + strb r0, [r6, #0xb] + ldr r0, [r5, #0x50] + str r0, [r6, #0x50] + adds r1, r6, #0 + adds r1, #0x79 + movs r0, #0x12 + strb r0, [r1] + str r6, [r5, #0x54] + movs r0, #0x22 + bl sub_080A7EE0 + adds r7, r0, #0 + ldrb r0, [r5, #0xa] + strb r0, [r7, #0xa] + movs r0, #2 + strb r0, [r7, #0xb] + ldr r0, [r5, #0x50] + str r0, [r7, #0x50] + adds r0, r7, #0 + adds r0, #0x79 + movs r1, #0x14 + mov r8, r1 + mov r1, r8 + strb r1, [r0] + str r7, [r6, #0x54] + movs r0, #0x22 + bl sub_080A7EE0 + ldrb r1, [r5, #0xa] + strb r1, [r0, #0xa] + movs r1, #3 + strb r1, [r0, #0xb] + ldr r1, [r5, #0x50] + str r1, [r0, #0x50] + str r4, [r0, #0x54] + adds r1, r0, #0 + adds r1, #0x79 + strb r4, [r1] + str r0, [r7, #0x54] + b _080AC6C8 + .align 2, 0 +_080AC664: .4byte gUnk_03003DBC +_080AC668: + ldr r0, _080AC674 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x44 + bls _080AC678 +_080AC670: + movs r0, #0 + b _080AC6E8 + .align 2, 0 +_080AC674: .4byte gUnk_03003DBC +_080AC678: + adds r1, r5, #0 + adds r1, #0x79 + movs r0, #0 + mov sb, r0 + movs r0, #0xf + strb r0, [r1] + movs r0, #0x22 + bl sub_080A7EE0 + adds r6, r0, #0 + ldrb r0, [r5, #0xa] + strb r0, [r6, #0xa] + movs r0, #1 + strb r0, [r6, #0xb] + ldr r0, [r5, #0x50] + str r0, [r6, #0x50] + adds r0, r6, #0 + adds r0, #0x79 + movs r1, #0x10 + mov r8, r1 + mov r1, r8 + strb r1, [r0] + str r6, [r5, #0x54] + movs r0, #0x22 + bl sub_080A7EE0 + adds r7, r0, #0 + ldrb r0, [r5, #0xa] + strb r0, [r7, #0xa] + movs r0, #2 + strb r0, [r7, #0xb] + ldr r0, [r5, #0x50] + str r0, [r7, #0x50] + mov r0, sb + str r0, [r7, #0x54] + adds r1, r7, #0 + adds r1, #0x79 + movs r0, #0x20 + strb r0, [r1] + str r7, [r6, #0x54] +_080AC6C8: + movs r0, #0x22 + bl sub_080A7EE0 + adds r6, r0, #0 + ldrb r0, [r5, #0xa] + strb r0, [r6, #0xa] + movs r0, #4 + strb r0, [r6, #0xb] + ldr r0, [r5, #0x50] + str r0, [r6, #0x50] + str r5, [r6, #0x54] + adds r0, r6, #0 + adds r0, #0x79 + mov r1, r8 + strb r1, [r0] + movs r0, #1 +_080AC6E8: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080AC6F0 +sub_080AC6F0: @ 0x080AC6F0 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x15] + movs r2, #0x1f + ands r2, r0 + lsrs r0, r0, #5 + lsls r1, r0, #1 + adds r3, r1, r0 + ldr r1, _080AC724 @ =gUnk_0812A9C0 + ldrb r0, [r4, #0x14] + adds r0, r0, r1 + ldrb r0, [r0] + subs r0, r0, r3 + adds r5, r1, #0 + cmp r0, #3 + bhi _080AC73A + cmp r0, #1 + beq _080AC72E + cmp r0, #1 + blo _080AC728 + cmp r0, #2 + beq _080AC732 + cmp r2, #0x19 + bhi _080AC75C + b _080AC73A + .align 2, 0 +_080AC724: .4byte gUnk_0812A9C0 +_080AC728: + cmp r2, #6 + bls _080AC75C + b _080AC73A +_080AC72E: + subs r0, r2, #5 + b _080AC736 +_080AC732: + adds r0, r2, #0 + subs r0, #0xf +_080AC736: + cmp r0, #0xc + bls _080AC75C +_080AC73A: + adds r0, r3, #3 + cmp r2, #0x1a + bhi _080AC74E + adds r0, r3, #2 + cmp r2, #0x10 + bhi _080AC74E + adds r0, r3, #0 + cmp r2, #5 + bls _080AC74E + adds r0, #1 +_080AC74E: + movs r1, #0x18 + bl __modsi3 + strb r0, [r4, #0x14] + adds r0, r0, r5 + ldrb r0, [r0] + strb r0, [r4, #0x1e] +_080AC75C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080AC760 +sub_080AC760: @ 0x080AC760 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r4, [r6, #0x54] + ldrb r0, [r4, #0x15] + ldrb r3, [r6, #0x15] + subs r2, r0, r3 + movs r1, #0xff + ands r2, r1 + adds r0, r2, #0 + adds r0, #8 + ands r0, r1 + cmp r0, #0x10 + ble _080AC78A + cmp r2, #0x80 + ble _080AC784 + adds r0, r3, #0 + subs r0, #8 + b _080AC788 +_080AC784: + adds r0, r3, #0 + adds r0, #8 +_080AC788: + strb r0, [r4, #0x15] +_080AC78A: + ldr r5, [r4, #0x54] + ldr r0, [r5, #0x54] + cmp r0, #0 + bne _080AC79C + ldr r0, [r6, #0x50] + ldrb r0, [r0, #0x14] + movs r1, #0x80 + eors r0, r1 + b _080AC7BE +_080AC79C: + ldrb r0, [r5, #0x15] + ldrb r3, [r4, #0x15] + subs r2, r0, r3 + movs r1, #0xff + ands r2, r1 + adds r0, r2, #0 + adds r0, #8 + ands r0, r1 + cmp r0, #0x10 + ble _080AC7C0 + cmp r2, #0x80 + ble _080AC7BA + adds r0, r3, #0 + subs r0, #8 + b _080AC7BE +_080AC7BA: + adds r0, r3, #0 + adds r0, #8 +_080AC7BE: + strb r0, [r5, #0x15] +_080AC7C0: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080AC7C4 +sub_080AC7C4: @ 0x080AC7C4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r4, r0, #0 + ldr r0, [r4, #0x54] + mov r8, r0 + ldr r7, [r0, #0x54] + ldr r5, [r7, #0x54] + cmp r5, #0 + beq _080AC7E4 + ldr r0, [r4, #0x50] + adds r1, r5, #0 + bl sub_0806FA24 + b _080AC7E6 +_080AC7E4: + ldr r5, [r4, #0x50] +_080AC7E6: + adds r0, r7, #0 + adds r0, #0x79 + ldrb r2, [r0] + lsls r2, r2, #8 + ldr r3, _080AC880 @ =gUnk_080C9160 + mov sb, r3 + ldrb r1, [r7, #0x15] + lsls r0, r1, #1 + add r0, sb + movs r3, #0 + ldrsh r0, [r0, r3] + adds r6, r0, #0 + muls r6, r2, r6 + adds r1, #0x40 + lsls r1, r1, #1 + add r1, sb + movs r3, #0 + ldrsh r0, [r1, r3] + muls r0, r2, r0 + rsbs r3, r0, #0 + adds r0, r5, #0 + adds r1, r7, #0 + adds r2, r6, #0 + bl sub_0806FA48 + mov r0, r8 + adds r0, #0x79 + ldrb r2, [r0] + lsls r2, r2, #8 + mov r0, r8 + ldrb r1, [r0, #0x15] + lsls r0, r1, #1 + add r0, sb + movs r3, #0 + ldrsh r0, [r0, r3] + adds r6, r0, #0 + muls r6, r2, r6 + adds r1, #0x40 + lsls r1, r1, #1 + add r1, sb + movs r3, #0 + ldrsh r0, [r1, r3] + muls r0, r2, r0 + rsbs r3, r0, #0 + adds r0, r7, #0 + mov r1, r8 + adds r2, r6, #0 + bl sub_0806FA48 + adds r0, r4, #0 + adds r0, #0x79 + ldrb r2, [r0] + lsls r2, r2, #8 + ldrb r1, [r4, #0x15] + lsls r0, r1, #1 + add r0, sb + movs r3, #0 + ldrsh r0, [r0, r3] + adds r6, r0, #0 + muls r6, r2, r6 + adds r1, #0x40 + lsls r1, r1, #1 + add r1, sb + movs r3, #0 + ldrsh r0, [r1, r3] + muls r0, r2, r0 + rsbs r3, r0, #0 + mov r0, r8 + adds r1, r4, #0 + adds r2, r6, #0 + bl sub_0806FA48 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080AC880: .4byte gUnk_080C9160 + + thumb_func_start sub_080AC884 +sub_080AC884: @ 0x080AC884 + push {lr} + adds r1, r0, #0 + ldr r0, [r1, #0x50] + adds r2, r0, #0 + adds r2, #0x72 + ldrh r0, [r2] + cmp r0, #0 + beq _080AC8A4 + movs r0, #0 + strh r0, [r2] + movs r0, #2 + strb r0, [r1, #0xc] + movs r0, #0x3c + strb r0, [r1, #0xe] + movs r0, #0x56 + strb r0, [r1, #0xf] +_080AC8A4: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080AC8A8 +sub_080AC8A8: @ 0x080AC8A8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080AC8C0 @ =gUnk_0812A9D8 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080AC8C0: .4byte gUnk_0812A9D8 + + thumb_func_start sub_080AC8C4 +sub_080AC8C4: @ 0x080AC8C4 + push {lr} + ldr r2, _080AC8D8 @ =gUnk_0812A9EC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080AC8D8: .4byte gUnk_0812A9EC + + thumb_func_start sub_080AC8DC +sub_080AC8DC: @ 0x080AC8DC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0 + blt _080AC8FE + cmp r1, #3 + ble _080AC8F8 + cmp r1, #0x1f + bgt _080AC8FE + cmp r1, #0x1e + blt _080AC8FE +_080AC8F8: + bl sub_0805E780 + b _080AC920 +_080AC8FE: + ldrb r0, [r4, #0xc] + cmp r0, #3 + beq _080AC920 + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrh r0, [r4, #0x24] + lsls r0, r0, #0x10 + asrs r0, r0, #0x11 + strh r0, [r4, #0x24] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_080AC920: + adds r0, r4, #0 + bl sub_080AC8C4 + pop {r4, pc} + + thumb_func_start sub_080AC928 +sub_080AC928: @ 0x080AC928 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_080AC954 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080AC954 +sub_080AC954: @ 0x080AC954 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, [r5, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _080AC964 + bl sub_0805E780 +_080AC964: + ldr r0, [r5, #0x50] + ldrb r3, [r0, #0x14] + ldr r4, _080AC9C4 @ =gUnk_080C9160 + lsls r1, r3, #1 + adds r1, r1, r4 + movs r2, #0 + ldrsh r1, [r1, r2] + lsls r2, r1, #2 + adds r2, r2, r1 + lsls r2, r2, #0xb + adds r3, #0x40 + lsls r3, r3, #1 + adds r3, r3, r4 + movs r4, #0 + ldrsh r1, [r3, r4] + lsls r3, r1, #2 + adds r3, r3, r1 + lsls r3, r3, #0xb + rsbs r3, r3, #0 + adds r1, r5, #0 + bl sub_0806FA48 + adds r0, r5, #0 + bl sub_08004274 + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080AC9C0 + movs r0, #2 + strb r0, [r5, #0xc] + ldrb r0, [r5, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + ldr r1, _080AC9C8 @ =gUnk_03001160 + adds r0, r5, #0 + bl sub_080045C4 + strb r0, [r5, #0x15] + movs r0, #0x97 + lsls r0, r0, #1 + bl sub_080A3268 +_080AC9C0: + pop {r4, r5, pc} + .align 2, 0 +_080AC9C4: .4byte gUnk_080C9160 +_080AC9C8: .4byte gUnk_03001160 + + thumb_func_start sub_080AC9CC +sub_080AC9CC: @ 0x080AC9CC + push {r4, lr} + adds r4, r0, #0 + bl sub_080AF090 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080A7EB0 + cmp r0, #0 + beq _080AC9E8 + bl sub_0805E780 +_080AC9E8: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080ACA10 + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrh r0, [r4, #0x24] + lsls r0, r0, #0x10 + asrs r0, r0, #0x11 + strh r0, [r4, #0x24] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_080ACA10: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080ACA14 +sub_080ACA14: @ 0x080ACA14 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AF090 + adds r0, r4, #0 + bl sub_08004274 + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080ACA32 + bl sub_0805E780 +_080ACA32: + pop {r4, pc} + + thumb_func_start sub_080ACA34 +sub_080ACA34: @ 0x080ACA34 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080ACA4C @ =gUnk_0812AA5C + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_080ACA4C: .4byte gUnk_0812AA5C + + thumb_func_start sub_080ACA50 +sub_080ACA50: @ 0x080ACA50 + push {lr} + ldr r2, _080ACA64 @ =gUnk_0812AA74 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080ACA64: .4byte gUnk_0812AA74 + + thumb_func_start sub_080ACA68 +sub_080ACA68: @ 0x080ACA68 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0xc + bgt _080ACA82 + cmp r1, #0xa + bge _080ACA86 + cmp r1, #6 + beq _080ACA86 + b _080ACAC0 +_080ACA82: + cmp r1, #0x1a + bne _080ACAC0 +_080ACA86: + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r1, #0 + ldrh r1, [r4, #0x24] + adds r0, r0, r1 + strh r0, [r4, #0x24] + ldr r0, [r4, #0x4c] + str r0, [r4, #0x54] + adds r0, r4, #0 + bl sub_080ACB40 + cmp r0, #0 + beq _080ACAB0 + movs r0, #0 + b _080ACAB6 +_080ACAB0: + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] +_080ACAB6: + strb r0, [r4, #0x15] + movs r0, #0xd8 + bl sub_080A3268 + b _080ACAC4 +_080ACAC0: + bl sub_0805E780 +_080ACAC4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080ACAC8 +sub_080ACAC8: @ 0x080ACAC8 + push {lr} + movs r2, #0 + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0x10 + strb r1, [r0, #0x15] + ldr r1, _080ACAE8 @ =0x0000FFFC + strh r1, [r0, #0x36] + str r2, [r0, #0x54] + movs r1, #7 + bl sub_08004260 + ldr r0, _080ACAEC @ =0x00000199 + bl sub_080A3268 + pop {pc} + .align 2, 0 +_080ACAE8: .4byte 0x0000FFFC +_080ACAEC: .4byte 0x00000199 + + thumb_func_start sub_080ACAF0 +sub_080ACAF0: @ 0x080ACAF0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AF090 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080A7EB0 + cmp r0, #0 + beq _080ACB0C + bl sub_0805E780 +_080ACB0C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080ACB10 +sub_080ACB10: @ 0x080ACB10 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AF090 + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _080ACB22 + bl sub_0805E780 +_080ACB22: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080ACB90 + adds r0, r4, #0 + bl sub_080A7EB0 + cmp r0, #0 + beq _080ACB3C + bl sub_0805E780 +_080ACB3C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080ACB40 +sub_080ACB40: @ 0x080ACB40 + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x50] + ldr r1, [r0, #0x50] + ldr r3, [r2, #0x54] + ldr r0, [r1, #0x64] + ldr r0, [r0, #0x1c] + ldr r0, [r0, #0x54] + cmp r0, r2 + beq _080ACB5A + ldr r0, [r0, #0x54] + cmp r3, r0 + beq _080ACB86 +_080ACB5A: + ldr r1, [r1, #0x64] + ldr r0, [r1, #0x20] + ldr r0, [r0, #0x54] + cmp r0, r2 + beq _080ACB6A + ldr r0, [r0, #0x54] + cmp r3, r0 + beq _080ACB86 +_080ACB6A: + ldr r0, [r1, #0x24] + ldr r0, [r0, #0x54] + cmp r0, r2 + beq _080ACB78 + ldr r0, [r0, #0x54] + cmp r3, r0 + beq _080ACB86 +_080ACB78: + ldr r0, [r1, #0x28] + ldr r0, [r0, #0x54] + cmp r0, r2 + beq _080ACB8A + ldr r0, [r0, #0x54] + cmp r3, r0 + bne _080ACB8A +_080ACB86: + movs r0, #0 + b _080ACB8C +_080ACB8A: + movs r0, #1 +_080ACB8C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080ACB90 +sub_080ACB90: @ 0x080ACB90 + push {r4, lr} + adds r2, r0, #0 + ldr r3, [r2, #0x50] + movs r0, #0x2e + ldrsh r1, [r2, r0] + movs r4, #0x2e + ldrsh r0, [r3, r4] + cmp r1, r0 + bne _080ACBC6 + movs r0, #0x32 + ldrsh r1, [r2, r0] + movs r4, #0x32 + ldrsh r0, [r3, r4] + cmp r1, r0 + bgt _080ACBC6 + movs r0, #1 + strb r0, [r3, #0xf] + adds r0, r2, #0 + movs r1, #0x1f + movs r2, #0x40 + bl sub_080A29AC + ldr r0, _080ACBC8 @ =0x00000119 + bl sub_08004488 + bl sub_0805E780 +_080ACBC6: + pop {r4, pc} + .align 2, 0 +_080ACBC8: .4byte 0x00000119 + + thumb_func_start sub_080ACBCC +sub_080ACBCC: @ 0x080ACBCC + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080ACBFC @ =gUnk_03003F80 + ldrb r1, [r0, #0x1c] + movs r0, #0x7f + ands r0, r1 + cmp r0, #1 + beq _080ACBE0 + bl sub_0805E780 +_080ACBE0: + ldr r1, _080ACC00 @ =gUnk_0812AA80 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0 + strb r0, [r1] + pop {r4, pc} + .align 2, 0 +_080ACBFC: .4byte gUnk_03003F80 +_080ACC00: .4byte gUnk_0812AA80 + + thumb_func_start sub_080ACC04 +sub_080ACC04: @ 0x080ACC04 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _080ACC54 @ =gUnk_03001160 + adds r0, #0x3b + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x3b + strb r0, [r1] + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + ldrb r1, [r4, #0x10] + movs r0, #0xa0 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #2 + strb r0, [r1] + ldr r1, _080ACC58 @ =gUnk_0812AAD8 + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r4, #0x48] + movs r0, #0x10 + str r0, [r4, #0x70] + adds r0, r4, #0 + bl sub_080ACDB0 + adds r0, r4, #0 + bl sub_0801766C + pop {r4, pc} + .align 2, 0 +_080ACC54: .4byte gUnk_03001160 +_080ACC58: .4byte gUnk_0812AAD8 + + thumb_func_start sub_080ACC5C +sub_080ACC5C: @ 0x080ACC5C + push {r4, lr} + adds r4, r0, #0 + bl sub_080ACDB0 + cmp r0, #0 + bne _080ACC74 + adds r0, r4, #0 + bl sub_080ACC78 + adds r0, r4, #0 + bl sub_080ACECC +_080ACC74: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080ACC78 +sub_080ACC78: @ 0x080ACC78 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r2, [r4, #0xa] + ldr r0, _080ACD20 @ =gUnk_030010A0 + ldr r0, [r0] + adds r0, r2, r0 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _080ACCF8 + ldr r0, _080ACD24 @ =gUnk_0812AAAC + lsls r1, r2, #2 + adds r1, r1, r0 + ldr r7, [r1] + ldr r0, [r4, #0x74] + adds r0, r7, r0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _080ACCA4 + str r0, [r4, #0x74] +_080ACCA4: + ldr r0, [r4, #0x74] + adds r0, r7, r0 + movs r2, #0 + ldrsb r2, [r0, r2] + movs r3, #1 + ldrsb r3, [r0, r3] + adds r0, r4, #0 + movs r1, #0xe + bl sub_08008782 + adds r5, r0, #0 + cmp r5, #0 + beq _080ACCF2 + ldrb r1, [r5, #5] + ldrb r2, [r5, #2] + movs r0, #0x11 + bl sub_080A2960 + adds r6, r0, #0 + cmp r6, #0 + beq _080ACCF2 + ldrb r0, [r5, #3] + strb r0, [r6, #0xe] + ldr r0, [r4, #0x74] + adds r0, r7, r0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x2e] + adds r0, r0, r1 + strh r0, [r6, #0x2e] + ldr r0, [r4, #0x74] + adds r0, r0, r7 + ldrb r0, [r0, #1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r6, #0x32] +_080ACCF2: + ldr r0, [r4, #0x74] + adds r0, #2 + str r0, [r4, #0x74] +_080ACCF8: + ldr r2, [r4, #0x54] + cmp r2, #0 + bne _080ACD08 + ldr r0, [r4, #0x70] + cmp r0, #2 + bls _080ACD08 + movs r0, #1 + str r0, [r4, #0x70] +_080ACD08: + ldr r0, [r4, #0x70] + subs r0, #1 + str r0, [r4, #0x70] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _080ACDAE + cmp r2, #0 + bne _080ACD28 + movs r0, #2 + b _080ACD32 + .align 2, 0 +_080ACD20: .4byte gUnk_030010A0 +_080ACD24: .4byte gUnk_0812AAAC +_080ACD28: + ldr r0, _080ACD74 @ =gUnk_0812AABC + ldrb r1, [r4, #0xa] + adds r1, r1, r0 + movs r0, #0 + ldrsb r0, [r1, r0] +_080ACD32: + str r0, [r4, #0x70] + movs r0, #0x17 + movs r1, #0 + movs r2, #0 + bl sub_080A2960 + adds r6, r0, #0 + cmp r6, #0 + beq _080ACDAE + bl sub_08000E50 + adds r2, r0, #0 + movs r0, #0xf + ands r2, r0 + ldr r3, [r4, #0x48] + ldrb r1, [r3, #6] + cmp r1, r2 + bge _080ACD58 + adds r2, r1, #0 +_080ACD58: + movs r0, #1 + ands r0, r2 + cmp r0, #0 + beq _080ACD62 + rsbs r2, r2, #0 +_080ACD62: + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + cmp r0, #1 + beq _080ACD9C + cmp r0, #1 + bgt _080ACD78 + cmp r0, #0 + beq _080ACD82 + b _080ACDAE + .align 2, 0 +_080ACD74: .4byte gUnk_0812AABC +_080ACD78: + cmp r0, #2 + beq _080ACD8C + cmp r0, #3 + beq _080ACDA2 + b _080ACDAE +_080ACD82: + ldrb r0, [r3, #7] + ldrh r1, [r4, #0x32] + subs r1, r1, r0 + strh r1, [r6, #0x32] + b _080ACD94 +_080ACD8C: + ldrh r0, [r4, #0x32] + ldrb r3, [r3, #7] + adds r0, r0, r3 + strh r0, [r6, #0x32] +_080ACD94: + ldrh r0, [r4, #0x2e] + adds r0, r0, r2 + strh r0, [r6, #0x2e] + b _080ACDAE +_080ACD9C: + ldrh r0, [r4, #0x2e] + adds r0, r0, r1 + b _080ACDA6 +_080ACDA2: + ldrh r0, [r4, #0x2e] + subs r0, r0, r1 +_080ACDA6: + strh r0, [r6, #0x2e] + ldrh r0, [r4, #0x32] + adds r0, r0, r2 + strh r0, [r6, #0x32] +_080ACDAE: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080ACDB0 +sub_080ACDB0: @ 0x080ACDB0 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080ACDE8 + ldr r2, _080ACDE0 @ =gUnk_03001160 + ldr r1, _080ACDE4 @ =gUnk_08126EE4 + ldrb r0, [r4, #0x14] + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r3, [r2, #0x2e] + adds r0, r0, r3 + strh r0, [r4, #0x2e] + ldrb r0, [r4, #0x14] + adds r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r2, [r2, #0x32] + adds r0, r0, r2 + b _080ACEB4 + .align 2, 0 +_080ACDE0: .4byte gUnk_03001160 +_080ACDE4: .4byte gUnk_08126EE4 +_080ACDE8: + ldrb r2, [r4, #0x14] + movs r0, #2 + ands r0, r2 + cmp r0, #0 + beq _080ACE48 + ldr r0, [r4, #0x50] + ldrh r1, [r0, #0x32] + subs r1, #3 + strh r1, [r4, #0x32] + movs r1, #4 + ands r1, r2 + adds r3, r0, #0 + cmp r1, #0 + beq _080ACE20 + movs r0, #0x2e + ldrsh r7, [r3, r0] + movs r0, #0x2e + ldrsh r6, [r4, r0] + ldr r1, _080ACE1C @ =gUnk_0812AAE8 + ldrb r2, [r4, #0xa] + adds r0, r2, r1 + ldrb r0, [r0] + rsbs r5, r0, #0 + adds r0, r1, #0 + b _080ACE30 + .align 2, 0 +_080ACE1C: .4byte gUnk_0812AAE8 +_080ACE20: + movs r0, #0x2e + ldrsh r6, [r3, r0] + movs r0, #0x2e + ldrsh r7, [r4, r0] + ldr r0, _080ACE44 @ =gUnk_0812AAE8 + ldrb r2, [r4, #0xa] + adds r1, r2, r0 + ldrb r5, [r1] +_080ACE30: + subs r1, r7, r6 + str r1, [r4, #0x78] + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, r1 + bhi _080ACE90 + ldrh r0, [r3, #0x2e] + adds r0, r0, r5 + strh r0, [r4, #0x2e] + b _080ACEB6 + .align 2, 0 +_080ACE44: .4byte gUnk_0812AAE8 +_080ACE48: + ldr r1, [r4, #0x50] + ldrh r0, [r1, #0x2e] + strh r0, [r4, #0x2e] + movs r0, #4 + ands r0, r2 + adds r3, r1, #0 + cmp r0, #0 + beq _080ACE70 + movs r0, #0x32 + ldrsh r6, [r3, r0] + movs r0, #0x32 + ldrsh r7, [r4, r0] + ldr r0, _080ACE6C @ =gUnk_0812AAE8 + ldrb r2, [r4, #0xa] + adds r1, r2, r0 + ldrb r5, [r1] + b _080ACE84 + .align 2, 0 +_080ACE6C: .4byte gUnk_0812AAE8 +_080ACE70: + movs r0, #0x32 + ldrsh r7, [r3, r0] + movs r0, #0x32 + ldrsh r6, [r4, r0] + ldr r1, _080ACEAC @ =gUnk_0812AAE8 + ldrb r2, [r4, #0xa] + adds r0, r2, r1 + ldrb r0, [r0] + rsbs r5, r0, #0 + adds r0, r1, #0 +_080ACE84: + subs r1, r7, r6 + str r1, [r4, #0x78] + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, r1 + bls _080ACEB0 +_080ACE90: + subs r0, r0, r1 + lsls r1, r0, #8 + strh r1, [r4, #0x24] + lsls r0, r0, #0x18 + asrs r0, r0, #0x10 + movs r1, #0x80 + lsls r1, r1, #2 + cmp r0, r1 + ble _080ACEA4 + strh r1, [r4, #0x24] +_080ACEA4: + adds r0, r4, #0 + bl sub_080AEFB4 + b _080ACEB6 + .align 2, 0 +_080ACEAC: .4byte gUnk_0812AAE8 +_080ACEB0: + ldrh r0, [r3, #0x32] + adds r0, r0, r5 +_080ACEB4: + strh r0, [r4, #0x32] +_080ACEB6: + ldr r0, _080ACEC8 @ =gUnk_03001160 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + movs r0, #0 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080ACEC8: .4byte gUnk_03001160 + + thumb_func_start sub_080ACECC +sub_080ACECC: @ 0x080ACECC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #2 + bhi _080ACF0C + ldr r0, [r4, #0x54] + cmp r0, #0 + bne _080ACF0C + ldr r2, [r4, #0x78] + cmp r2, #0 + blt _080ACF0C + ldr r0, _080ACF10 @ =gUnk_0812AAE8 + ldrb r1, [r4, #0xa] + adds r0, r1, r0 + ldrb r0, [r0] + cmp r0, r2 + bhi _080ACF0C + adds r1, #1 + movs r0, #0x10 + movs r2, #0 + movs r3, #0 + bl sub_08077CB8 + adds r1, r0, #0 + cmp r1, #0 + beq _080ACF0C + str r4, [r1, #0x50] + str r1, [r4, #0x54] + ldrh r0, [r4, #0x2e] + strh r0, [r1, #0x2e] + ldrh r0, [r4, #0x32] + strh r0, [r1, #0x32] +_080ACF0C: + pop {r4, pc} + .align 2, 0 +_080ACF10: .4byte gUnk_0812AAE8 + + thumb_func_start sub_080ACF14 +sub_080ACF14: @ 0x080ACF14 + push {lr} + ldr r2, _080ACF28 @ =gUnk_081320A8 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080ACF28: .4byte gUnk_081320A8 + + thumb_func_start sub_080ACF2C +sub_080ACF2C: @ 0x080ACF2C + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + ldr r0, _080ACF60 @ =gUnk_081320E4 + str r0, [r4, #0x48] + ldr r5, [r4, #0x54] + adds r6, r5, #0 + cmp r5, #0 + beq _080ACF64 + ldr r0, [r5, #0x2c] + str r0, [r4, #0x2c] + ldr r0, [r5, #0x30] + str r0, [r4, #0x30] + ldr r0, [r5, #0x34] + str r0, [r4, #0x34] + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + ldrb r0, [r5, #0x16] + strb r0, [r4, #0x16] + b _080ACFB6 + .align 2, 0 +_080ACF60: .4byte gUnk_081320E4 +_080ACF64: + adds r5, r4, #0 + str r4, [r4, #0x54] + movs r0, #2 + strb r0, [r4, #0xc] + ldr r3, _080ACFC8 @ =gUnk_081320B8 + ldrb r0, [r4, #0xf] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0, #1] + movs r0, #0xf + ands r1, r0 + ldrb r2, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1a] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + strb r6, [r4, #0x16] + ldrb r0, [r4, #0xf] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0, #2] + adds r0, r4, #0 + adds r0, #0x60 + strh r1, [r0] + ldrb r0, [r4, #0xf] + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08004260 + bl sub_08078D60 +_080ACFB6: + ldrb r1, [r5, #8] + adds r0, r4, #0 + adds r0, #0x6c + strh r1, [r0] + ldrb r1, [r5, #9] + adds r0, #2 + strh r1, [r0] + pop {r4, r5, r6, pc} + .align 2, 0 +_080ACFC8: .4byte gUnk_081320B8 + + thumb_func_start sub_080ACFCC +sub_080ACFCC: @ 0x080ACFCC + push {r4, lr} + adds r4, r0, #0 + ldr r1, [r4, #0x54] + adds r0, #0x6c + ldrh r0, [r0] + ldrb r2, [r1, #8] + cmp r0, r2 + beq _080ACFE8 + adds r0, r4, #0 + adds r0, #0x6e + ldrh r0, [r0] + ldrb r2, [r1, #9] + cmp r0, r2 + bne _080AD034 +_080ACFE8: + ldrb r0, [r1, #0xc] + cmp r0, #2 + beq _080ACFF8 + bl sub_08079184 + bl sub_0805E780 + b _080AD03C +_080ACFF8: + ldr r0, _080AD02C @ =gUnk_03003F80 + ldrb r0, [r0, #5] + cmp r0, #0 + beq _080AD00E + ldr r0, _080AD030 @ =gUnk_03001160 + adds r0, #0x79 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + beq _080AD03C +_080AD00E: + adds r0, r4, #0 + bl sub_080AD27C + ldrb r0, [r4, #0xd] + adds r0, #1 + movs r2, #0 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #0xff + strb r0, [r4, #0x15] + str r2, [r4, #0x20] + b _080AD03C + .align 2, 0 +_080AD02C: .4byte gUnk_03003F80 +_080AD030: .4byte gUnk_03001160 +_080AD034: + bl sub_08079184 + bl sub_0805E780 +_080AD03C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080AD040 +sub_080AD040: @ 0x080AD040 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x54] + ldrb r0, [r5, #0xc] + cmp r0, #2 + beq _080AD050 + bl sub_0805E780 +_080AD050: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r3, #0x80 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _080AD064 + movs r0, #0 + str r0, [r4, #0x34] +_080AD064: + movs r1, #0x24 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _080AD06E + b _080AD220 +_080AD06E: + adds r2, r4, #0 + adds r2, #0x42 + ldrb r1, [r2] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _080AD088 + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + movs r1, #0 + strb r0, [r4, #0x15] + strb r1, [r2] +_080AD088: + ldr r2, _080AD0B0 @ =gUnk_081320C4 + ldrb r0, [r4, #0x15] + lsrs r0, r0, #2 + adds r1, r0, r2 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, #1 + adds r0, r0, r2 + movs r2, #0 + ldrsb r2, [r0, r2] + adds r0, r4, #0 + bl sub_080002B4 + cmp r0, #0x74 + bne _080AD0B4 + adds r0, r4, #0 + bl sub_0806F69C + b _080AD0C8 + .align 2, 0 +_080AD0B0: .4byte gUnk_081320C4 +_080AD0B4: + adds r0, r4, #0 + bl sub_080002D0 + cmp r0, #0x24 + beq _080AD0C8 + cmp r0, #0x26 + beq _080AD0C8 + adds r0, r4, #0 + bl sub_080AF00C +_080AD0C8: + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + beq _080AD0D8 + b _080AD202 +_080AD0D8: + ldr r0, [r4, #0x20] + str r0, [r5, #0x20] + ldr r0, [r4, #0x2c] + str r0, [r5, #0x2c] + ldr r0, [r4, #0x30] + str r0, [r5, #0x30] + ldr r0, [r4, #0x34] + str r0, [r5, #0x34] + adds r0, r4, #0 + bl sub_080002B8 + cmp r0, #0x11 + bhi _080AD0FC + cmp r0, #0x10 + bhs _080AD104 + cmp r0, #0xd + beq _080AD104 + b _080AD14E +_080AD0FC: + cmp r0, #0x13 + beq _080AD104 + cmp r0, #0x5a + bne _080AD14E +_080AD104: + cmp r5, r4 + bne _080AD146 + cmp r0, #0x11 + bhi _080AD116 + cmp r0, #0x10 + bhs _080AD12C + cmp r0, #0xd + beq _080AD120 + b _080AD142 +_080AD116: + cmp r0, #0x13 + beq _080AD138 + cmp r0, #0x5a + beq _080AD126 + b _080AD142 +_080AD120: + adds r0, r4, #0 + movs r1, #0 + b _080AD130 +_080AD126: + adds r0, r4, #0 + movs r1, #0xc + b _080AD130 +_080AD12C: + adds r0, r4, #0 + movs r1, #0xb +_080AD130: + movs r2, #0 + bl sub_080A29AC + b _080AD142 +_080AD138: + adds r0, r4, #0 + movs r1, #0x52 + movs r2, #0 + bl sub_080A29AC +_080AD142: + movs r0, #4 + b _080AD148 +_080AD146: + movs r0, #3 +_080AD148: + strb r0, [r5, #0xd] + bl sub_0805E780 +_080AD14E: + ldr r0, [r4, #0x54] + cmp r0, r4 + bne _080AD178 + ldrb r0, [r4, #0xb] + cmp r0, #0xff + beq _080AD1DA + cmp r0, #0xf + bne _080AD16A + ldrb r1, [r4, #0xe] + adds r0, r4, #0 + movs r2, #0x80 + bl sub_080A29AC + b _080AD1DA +_080AD16A: + ldrb r1, [r4, #0xb] + ldrb r2, [r4, #0xe] + adds r0, r4, #0 + movs r3, #0 + bl sub_080A2988 + b _080AD1DA +_080AD178: + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _080AD188 + adds r0, r5, #0 + bl sub_080AD32C + cmp r0, #0 + beq _080AD1E0 +_080AD188: + ldrb r0, [r4, #0xe] + cmp r0, #1 + bne _080AD196 + movs r0, #0x82 + lsls r0, r0, #1 + bl sub_080A3268 +_080AD196: + adds r0, r4, #0 + bl sub_08016A04 + movs r0, #3 + strb r0, [r5, #0xd] + ldrb r2, [r4, #0x19] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r5, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r5, #0x19] + ldrb r0, [r4, #0x1b] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r5, #0x1b] + ands r1, r2 + orrs r1, r0 + strb r1, [r5, #0x1b] + adds r0, r4, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + adds r3, r5, #0 + adds r3, #0x29 + lsrs r1, r1, #0x1d + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080AD1DA: + bl sub_0805E780 + b _080AD26E +_080AD1E0: + movs r0, #0x82 + lsls r0, r0, #1 + bl sub_080A3268 + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + movs r0, #0x80 + lsls r0, r0, #9 + str r0, [r4, #0x20] + movs r1, #0x24 + ldrsh r0, [r4, r1] + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + strh r0, [r4, #0x24] + b _080AD26E +_080AD202: + adds r0, r4, #0 + bl sub_0800451C + adds r0, r4, #0 + bl sub_0806F8DC + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FA24 + ldr r0, [r4, #0x20] + str r0, [r5, #0x20] + ldrb r0, [r4, #0x15] + strb r0, [r5, #0x15] + b _080AD26E +_080AD220: + ldr r1, _080AD240 @ =gUnk_03001160 + adds r0, r1, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r5, #1 + ands r5, r0 + cmp r5, #0 + beq _080AD244 + movs r0, #0x79 + bl sub_080A3268 + adds r0, r4, #0 + bl sub_080AD27C + b _080AD26E + .align 2, 0 +_080AD240: .4byte gUnk_03001160 +_080AD244: + ldr r0, _080AD270 @ =gUnk_03003F80 + ldrb r0, [r0, #5] + cmp r0, #0 + beq _080AD25A + adds r0, r1, #0 + adds r0, #0x79 + ldrb r1, [r0] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _080AD26E +_080AD25A: + adds r0, r4, #0 + bl sub_080AD27C + ldrb r0, [r4, #0x10] + movs r1, #0x7f + ands r1, r0 + strb r1, [r4, #0x10] + movs r0, #0xff + strb r0, [r4, #0x15] + str r5, [r4, #0x20] +_080AD26E: + pop {r4, r5, pc} + .align 2, 0 +_080AD270: .4byte gUnk_03003F80 + + thumb_func_start sub_080AD274 +sub_080AD274: @ 0x080AD274 + push {lr} + bl sub_0805E780 + pop {pc} + + thumb_func_start sub_080AD27C +sub_080AD27C: @ 0x080AD27C + push {r4, r5, lr} + adds r3, r0, #0 + ldr r4, [r3, #0x54] + ldr r1, _080AD2AC @ =gUnk_03001160 + movs r0, #0 + str r0, [r1, #0x74] + adds r0, r3, #0 + adds r0, #0x6c + ldrh r0, [r0] + adds r5, r1, #0 + ldrb r1, [r4, #8] + cmp r0, r1 + bne _080AD320 + adds r0, r3, #0 + adds r0, #0x6e + ldrh r0, [r0] + ldrb r1, [r4, #9] + cmp r0, r1 + bne _080AD320 + cmp r4, r3 + beq _080AD2B0 + movs r0, #2 + strb r0, [r4, #0xd] + b _080AD2C2 + .align 2, 0 +_080AD2AC: .4byte gUnk_03001160 +_080AD2B0: + adds r2, r3, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #0x18 + orrs r1, r0 + strb r1, [r2] +_080AD2C2: + ldr r0, [r4, #0x48] + str r0, [r3, #0x48] + ldrb r1, [r3, #0x16] + lsrs r1, r1, #4 + ldr r2, _080AD318 @ =gUnk_081320CC + lsls r0, r1, #1 + adds r0, r0, r2 + ldrh r0, [r0] + strh r0, [r3, #0x24] + ldr r0, _080AD31C @ =gUnk_081320D4 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + str r0, [r3, #0x20] + ldrh r0, [r4, #0x36] + adds r0, #8 + strh r0, [r4, #0x36] + strh r0, [r3, #0x36] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r3, #0 + adds r0, #0x38 + strb r1, [r0] + ldrh r0, [r5, #0x32] + strh r0, [r3, #0x32] + ldrh r0, [r5, #0x2e] + strh r0, [r3, #0x2e] + adds r0, r5, #0 + adds r0, #0x3c + ldrb r1, [r0] + adds r0, r3, #0 + adds r0, #0x3c + strb r1, [r0] + ldrb r1, [r3, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r3, #0x10] + adds r0, r3, #0 + bl sub_0801766C + b _080AD328 + .align 2, 0 +_080AD318: .4byte gUnk_081320CC +_080AD31C: .4byte gUnk_081320D4 +_080AD320: + bl sub_08079184 + bl sub_0805E780 +_080AD328: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080AD32C +sub_080AD32C: @ 0x080AD32C + push {lr} + adds r2, r0, #0 + movs r3, #0 + ldrb r1, [r2, #0x16] + movs r0, #0xf0 + ands r0, r1 + cmp r0, #0x10 + beq _080AD34C + ldrb r0, [r2, #8] + cmp r0, #6 + bne _080AD34E + ldrb r0, [r2, #9] + cmp r0, #5 + beq _080AD34C + cmp r0, #0x7d + bne _080AD34E +_080AD34C: + movs r3, #1 +_080AD34E: + adds r0, r3, #0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080AD354 +sub_080AD354: @ 0x080AD354 + push {lr} + ldr r1, _080AD374 @ =gUnk_02032EC0 + strb r0, [r1, #2] + ldr r1, _080AD378 @ =gUnk_03001000 + movs r0, #2 + strb r0, [r1, #3] + ldr r0, _080AD37C @ =gUnk_02000080 + movs r1, #0x30 + bl sub_0801D630 + movs r0, #7 + movs r1, #8 + bl sub_08050054 + pop {pc} + .align 2, 0 +_080AD374: .4byte gUnk_02032EC0 +_080AD378: .4byte gUnk_03001000 +_080AD37C: .4byte gUnk_02000080 + + thumb_func_start sub_080AD380 +sub_080AD380: @ 0x080AD380 + push {r4, lr} + bl sub_080AD90C + ldr r4, _080AD398 @ =gUnk_03001000 + ldrb r0, [r4, #3] + cmp r0, #1 + beq _080AD3BC + cmp r0, #1 + bgt _080AD39C + cmp r0, #0 + beq _080AD3A2 + b _080AD3EA + .align 2, 0 +_080AD398: .4byte gUnk_03001000 +_080AD39C: + cmp r0, #2 + beq _080AD3D8 + b _080AD3EA +_080AD3A2: + bl sub_08056418 + ldr r0, _080AD3B8 @ =gUnk_02032EC0 + movs r1, #0xed + lsls r1, r1, #2 + bl sub_0801D630 + movs r0, #0 + bl sub_080AD354 + b _080AD3EA + .align 2, 0 +_080AD3B8: .4byte gUnk_02032EC0 +_080AD3BC: + ldr r1, _080AD3D0 @ =gUnk_081320F0 + ldr r0, _080AD3D4 @ =gUnk_02032EC0 + ldrb r0, [r0, #2] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + b _080AD3EA + .align 2, 0 +_080AD3D0: .4byte gUnk_081320F0 +_080AD3D4: .4byte gUnk_02032EC0 +_080AD3D8: + ldr r0, _080AD3F0 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080AD3EE + movs r0, #1 + bl sub_0801DA90 + movs r0, #1 + strb r0, [r4, #3] +_080AD3EA: + bl sub_080AD918 +_080AD3EE: + pop {r4, pc} + .align 2, 0 +_080AD3F0: .4byte gUnk_03000FD0 + + thumb_func_start sub_080AD3F4 +sub_080AD3F4: @ 0x080AD3F4 + push {r4, r5, lr} + bl sub_080AD84C + adds r1, r0, #0 + ldr r4, _080AD450 @ =gUnk_02000080 + ldrb r0, [r4, #5] + cmp r0, #0 + bne _080AD458 + movs r0, #1 + bl sub_0801DA90 + movs r5, #1 + strb r5, [r4, #5] + movs r0, #0x78 + strh r0, [r4, #8] + movs r0, #0x10 + bl sub_0801D7EC + movs r0, #1 + bl sub_0801D7EC + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + movs r1, #2 + cmp r0, #0 + bne _080AD42C + movs r1, #1 +_080AD42C: + adds r0, r1, #0 + bl sub_0801D714 + ldr r0, _080AD454 @ =gUnk_03000F50 + ldrh r1, [r0] + movs r3, #0x80 + lsls r3, r3, #3 + adds r2, r3, #0 + orrs r1, r2 + strh r1, [r0] + strh r5, [r0, #0x1a] + movs r0, #6 + movs r1, #8 + bl sub_08050054 + movs r1, #0 + b _080AD45E + .align 2, 0 +_080AD450: .4byte gUnk_02000080 +_080AD454: .4byte gUnk_03000F50 +_080AD458: + cmp r1, #1 + bne _080AD45E + movs r1, #2 +_080AD45E: + cmp r1, #2 + bne _080AD46C + ldr r1, _080AD470 @ =gUnk_02000010 + movs r0, #1 + strb r0, [r1, #5] + bl sub_080AD354 +_080AD46C: + pop {r4, r5, pc} + .align 2, 0 +_080AD470: .4byte gUnk_02000010 + + thumb_func_start sub_080AD474 +sub_080AD474: @ 0x080AD474 + push {r4, r5, r6, lr} + ldr r5, _080AD490 @ =gUnk_02000080 + ldrb r0, [r5, #0x12] + adds r0, #1 + strb r0, [r5, #0x12] + ldrb r0, [r5, #5] + cmp r0, #1 + bne _080AD486 + b _080AD588 +_080AD486: + cmp r0, #1 + bgt _080AD494 + cmp r0, #0 + beq _080AD49C + b _080AD5C8 + .align 2, 0 +_080AD490: .4byte gUnk_02000080 +_080AD494: + cmp r0, #2 + bne _080AD49A + b _080AD5AA +_080AD49A: + b _080AD5C8 +_080AD49C: + movs r4, #1 + strb r4, [r5, #5] + strb r0, [r5, #6] + movs r6, #0 + movs r0, #0x1e + strh r0, [r5, #8] + movs r0, #7 + strb r0, [r5, #4] + bl sub_0805E60C + movs r0, #0 + bl sub_0801CFA8 + bl sub_080ADD30 + ldr r0, _080AD50C @ =gUnk_02024490 + strb r4, [r0] + movs r0, #2 + bl sub_0801D7EC + movs r4, #0x80 + lsls r4, r4, #0x12 + ldrb r0, [r4, #7] + movs r1, #4 + cmp r0, #0 + bne _080AD4D2 + movs r1, #3 +_080AD4D2: + adds r0, r1, #0 + bl sub_0801D714 + ldrb r0, [r4, #7] + cmp r0, #0 + bne _080AD524 + ldr r2, _080AD510 @ =gUnk_03000F50 + adds r1, r2, #0 + adds r1, #0x66 + ldr r0, _080AD514 @ =0x00000844 + strh r0, [r1] + adds r1, #2 + adds r0, #0xc5 + strh r0, [r1] + ldr r0, _080AD518 @ =0x00001C09 + strh r0, [r2, #0x14] + adds r0, #0xf9 + strh r0, [r2, #0x20] + ldr r0, _080AD51C @ =0x00001E03 + strh r0, [r2, #0x2c] + ldrh r0, [r2] + movs r3, #0xf0 + lsls r3, r3, #5 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + ldr r0, _080AD520 @ =0x0000FF60 + strh r0, [r2, #0x18] + b _080AD55A + .align 2, 0 +_080AD50C: .4byte gUnk_02024490 +_080AD510: .4byte gUnk_03000F50 +_080AD514: .4byte 0x00000844 +_080AD518: .4byte 0x00001C09 +_080AD51C: .4byte 0x00001E03 +_080AD520: .4byte 0x0000FF60 +_080AD524: + ldr r2, _080AD570 @ =gUnk_03000F50 + adds r1, r2, #0 + adds r1, #0x66 + ldr r0, _080AD574 @ =0x00000241 + strh r0, [r1] + adds r1, #2 + ldr r0, _080AD578 @ =0x00000909 + strh r0, [r1] + ldr r0, _080AD57C @ =0x00001D02 + strh r0, [r2, #8] + ldr r0, _080AD580 @ =0x00001E03 + strh r0, [r2, #0x14] + ldr r0, _080AD584 @ =0x00007C89 + strh r0, [r2, #0x20] + ldrh r0, [r2] + movs r1, #1 + orrs r0, r1 + orrs r0, r6 + movs r3, #0x98 + lsls r3, r3, #5 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + movs r0, #0x10 + str r0, [r5, #0x2c] + bl sub_080AD670 +_080AD55A: + bl sub_080A3210 + movs r0, #3 + bl sub_080A3268 + movs r0, #6 + movs r1, #8 + bl sub_08050054 + b _080AD610 + .align 2, 0 +_080AD570: .4byte gUnk_03000F50 +_080AD574: .4byte 0x00000241 +_080AD578: .4byte 0x00000909 +_080AD57C: .4byte 0x00001D02 +_080AD580: .4byte 0x00001E03 +_080AD584: .4byte 0x00007C89 +_080AD588: + ldr r0, _080AD5A0 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080AD632 + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + cmp r0, #0 + bne _080AD5A4 + bl sub_080AD6AC + b _080AD610 + .align 2, 0 +_080AD5A0: .4byte gUnk_03000FD0 +_080AD5A4: + bl sub_080AD76C + b _080AD610 +_080AD5AA: + ldrh r0, [r5, #8] + subs r0, #1 + strh r0, [r5, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080AD5C2 + movs r0, #0xe1 + lsls r0, r0, #4 + strh r0, [r5, #8] + ldrb r0, [r5, #5] + adds r0, #1 + strb r0, [r5, #5] +_080AD5C2: + bl sub_080AD644 + b _080AD610 +_080AD5C8: + bl sub_080AD84C + adds r4, r0, #0 + cmp r4, #0 + beq _080AD5EC + cmp r4, #2 + bne _080AD5DE + movs r0, #0x6a + bl sub_080A3268 + b _080AD5E0 +_080AD5DE: + movs r4, #0 +_080AD5E0: + adds r0, r4, #0 + bl sub_080AD354 + ldr r0, _080AD634 @ =0x80080000 + bl sub_080A3268 +_080AD5EC: + bl sub_080AD644 + ldr r0, _080AD638 @ =gUnk_02000080 + ldrh r1, [r0, #8] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _080AD610 + ldr r1, _080AD63C @ =gUnk_03001010 + movs r0, #0xe0 + lsls r0, r0, #8 + strh r0, [r1, #8] + movs r0, #0x84 + strh r0, [r1, #2] + ldr r0, _080AD640 @ =0x000001FF + movs r1, #0 + bl sub_080ADA14 +_080AD610: + ldr r2, _080AD638 @ =gUnk_02000080 + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r1, [r0, #7] + ldrb r0, [r2, #4] + cmp r0, r1 + beq _080AD626 + strb r1, [r2, #4] + movs r0, #3 + bl sub_0801D7EC +_080AD626: + bl sub_080AD89C + bl sub_0805E5C0 + bl sub_080AD9B0 +_080AD632: + pop {r4, r5, r6, pc} + .align 2, 0 +_080AD634: .4byte 0x80080000 +_080AD638: .4byte gUnk_02000080 +_080AD63C: .4byte gUnk_03001010 +_080AD640: .4byte 0x000001FF + + thumb_func_start sub_080AD644 +sub_080AD644: @ 0x080AD644 + push {lr} + ldr r1, _080AD664 @ =gUnk_03001010 + movs r0, #0 + strh r0, [r1, #4] + strh r0, [r1, #6] + ldr r0, _080AD668 @ =0x0000E020 + strh r0, [r1, #8] + movs r0, #0x78 + strh r0, [r1] + movs r0, #0x98 + strh r0, [r1, #2] + ldr r0, _080AD66C @ =0x000001FF + movs r1, #1 + bl sub_080ADA14 + pop {pc} + .align 2, 0 +_080AD664: .4byte gUnk_03001010 +_080AD668: .4byte 0x0000E020 +_080AD66C: .4byte 0x000001FF + + thumb_func_start sub_080AD670 +sub_080AD670: @ 0x080AD670 + push {lr} + sub sp, #0x14 + movs r0, #0x80 + lsls r0, r0, #8 + str r0, [sp, #4] + str r0, [sp] + mov r1, sp + movs r2, #0 + movs r0, #0x78 + strh r0, [r1, #8] + movs r0, #0x48 + strh r0, [r1, #0xa] + mov r0, sp + strh r2, [r0, #0x10] + mov r2, sp + ldr r0, _080AD6A4 @ =gUnk_02000080 + ldr r0, [r0, #0x2c] + strh r0, [r1, #0xc] + strh r0, [r2, #0xe] + ldr r1, _080AD6A8 @ =gUnk_03000F88 + mov r0, sp + movs r2, #1 + bl BgAffineSet + add sp, #0x14 + pop {pc} + .align 2, 0 +_080AD6A4: .4byte gUnk_02000080 +_080AD6A8: .4byte gUnk_03000F88 + + thumb_func_start sub_080AD6AC +sub_080AD6AC: @ 0x080AD6AC + push {r4, r5, r6, lr} + ldr r4, _080AD6C0 @ =gUnk_02000080 + ldrb r0, [r4, #6] + cmp r0, #1 + beq _080AD724 + cmp r0, #1 + bgt _080AD6C4 + cmp r0, #0 + beq _080AD6CA + b _080AD76A + .align 2, 0 +_080AD6C0: .4byte gUnk_02000080 +_080AD6C4: + cmp r0, #2 + beq _080AD758 + b _080AD76A +_080AD6CA: + ldr r6, _080AD718 @ =gUnk_03000FD0 + ldrb r5, [r6] + cmp r5, #0 + bne _080AD76A + ldrb r1, [r4, #0x12] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080AD6E4 + ldr r1, _080AD71C @ =gUnk_03000F50 + ldrh r0, [r1, #0x18] + adds r0, #1 + strh r0, [r1, #0x18] +_080AD6E4: + bl sub_080AD84C + cmp r0, #2 + beq _080AD6F4 + ldr r0, _080AD71C @ =gUnk_03000F50 + ldrh r0, [r0, #0x18] + cmp r0, #0 + bne _080AD76A +_080AD6F4: + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + ldr r1, _080AD71C @ =gUnk_03000F50 + strh r5, [r1, #0x18] + ldr r0, _080AD720 @ =0x00000C09 + strh r0, [r1, #0x14] + movs r0, #0x40 + str r0, [r6, #4] + movs r0, #6 + movs r1, #0x10 + bl sub_08050054 + movs r0, #0xf8 + bl sub_080A3268 + b _080AD76A + .align 2, 0 +_080AD718: .4byte gUnk_03000FD0 +_080AD71C: .4byte gUnk_03000F50 +_080AD720: .4byte 0x00000C09 +_080AD724: + ldr r1, _080AD754 @ =gUnk_03000FD0 + ldrb r5, [r1] + cmp r5, #0 + bne _080AD76A + movs r0, #1 + rsbs r0, r0, #0 + str r0, [r1, #4] + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + movs r0, #0x5a + strh r0, [r4, #8] + movs r0, #0xb4 + movs r1, #0 + movs r2, #0 + bl sub_080A2960 + adds r1, r0, #0 + cmp r1, #0 + beq _080AD76A + strh r5, [r1, #0x2e] + movs r0, #0x48 + strh r0, [r1, #0x32] + b _080AD76A + .align 2, 0 +_080AD754: .4byte gUnk_03000FD0 +_080AD758: + bl sub_080AD84C + cmp r0, #0 + beq _080AD76A + ldrb r0, [r4, #5] + adds r0, #1 + strb r0, [r4, #5] + movs r0, #0x3c + strh r0, [r4, #8] +_080AD76A: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080AD76C +sub_080AD76C: @ 0x080AD76C + push {lr} + ldr r1, _080AD780 @ =gUnk_02000080 + ldrb r0, [r1, #6] + cmp r0, #1 + beq _080AD7B4 + cmp r0, #1 + bgt _080AD784 + cmp r0, #0 + beq _080AD78A + b _080AD80E + .align 2, 0 +_080AD780: .4byte gUnk_02000080 +_080AD784: + cmp r0, #2 + beq _080AD7DC + b _080AD80E +_080AD78A: + ldr r0, _080AD7AC @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080AD82A + movs r0, #1 + strb r0, [r1, #6] + ldr r2, _080AD7B0 @ =gUnk_03000F50 + ldrh r1, [r2] + movs r3, #0x80 + lsls r3, r3, #3 + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2] + movs r0, #0xf6 + bl sub_080A3268 + b _080AD82A + .align 2, 0 +_080AD7AC: .4byte gUnk_03000FD0 +_080AD7B0: .4byte gUnk_03000F50 +_080AD7B4: + ldr r0, [r1, #0x2c] + adds r0, #0x10 + str r0, [r1, #0x2c] + movs r2, #0x80 + lsls r2, r2, #1 + cmp r0, r2 + ble _080AD7D6 + str r2, [r1, #0x2c] + movs r0, #0x28 + strh r0, [r1, #8] + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] + movs r0, #6 + movs r1, #0x10 + bl sub_08050054 +_080AD7D6: + bl sub_080AD670 + b _080AD82A +_080AD7DC: + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080AD82A + movs r0, #0x96 + lsls r0, r0, #1 + strh r0, [r1, #8] + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] + movs r0, #0xbd + movs r1, #0 + movs r2, #0 + bl sub_080A2960 + movs r0, #6 + movs r1, #0x10 + bl sub_08050054 + movs r0, #0xf8 + bl sub_080A3268 + b _080AD82A +_080AD80E: + ldr r0, _080AD82C @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080AD82A + bl sub_080AD84C + cmp r0, #0 + beq _080AD82A + ldr r0, _080AD830 @ =gUnk_02000080 + ldrb r1, [r0, #5] + adds r1, #1 + strb r1, [r0, #5] + movs r1, #0x3c + strh r1, [r0, #8] +_080AD82A: + pop {pc} + .align 2, 0 +_080AD82C: .4byte gUnk_03000FD0 +_080AD830: .4byte gUnk_02000080 + + thumb_func_start sub_080AD834 +sub_080AD834: @ 0x080AD834 + push {lr} + ldr r0, _080AD848 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080AD844 + movs r0, #1 + bl sub_08056010 +_080AD844: + pop {pc} + .align 2, 0 +_080AD848: .4byte gUnk_03000FD0 + + thumb_func_start sub_080AD84C +sub_080AD84C: @ 0x080AD84C + push {lr} + ldr r0, _080AD864 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080AD894 + ldr r0, _080AD868 @ =gUnk_02000010 + ldrb r0, [r0, #5] + cmp r0, #0 + bne _080AD86C + movs r2, #0 + b _080AD874 + .align 2, 0 +_080AD864: .4byte gUnk_03000FD0 +_080AD868: .4byte gUnk_02000010 +_080AD86C: + ldr r0, _080AD888 @ =gUnk_03000FF0 + ldrh r0, [r0, #2] + movs r2, #9 + ands r2, r0 +_080AD874: + ldr r1, _080AD88C @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080AD890 + movs r0, #1 + b _080AD89A + .align 2, 0 +_080AD888: .4byte gUnk_03000FF0 +_080AD88C: .4byte gUnk_02000080 +_080AD890: + cmp r2, #0 + bne _080AD898 +_080AD894: + movs r0, #0 + b _080AD89A +_080AD898: + movs r0, #2 +_080AD89A: + pop {pc} + + thumb_func_start sub_080AD89C +sub_080AD89C: @ 0x080AD89C + push {r4, lr} + ldr r4, _080AD8E4 @ =gUnk_02000080 + ldrb r1, [r4, #0x12] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + bne _080AD8BC + ldrb r0, [r4, #0x10] + adds r0, #1 + movs r1, #3 + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r0, [r4, #0x10] + adds r0, #5 + bl sub_0801D714 +_080AD8BC: + ldrb r1, [r4, #0x12] + movs r0, #0x1f + ands r0, r1 + cmp r0, #0 + bne _080AD8E0 + ldrb r0, [r4, #0x11] + adds r0, #1 + movs r1, #7 + ands r0, r1 + strb r0, [r4, #0x11] + ldr r1, _080AD8E8 @ =gUnk_03000F50 + ldr r2, _080AD8EC @ =gUnk_081320FC + ldrb r0, [r4, #0x11] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + adds r1, #0x68 + strh r0, [r1] +_080AD8E0: + pop {r4, pc} + .align 2, 0 +_080AD8E4: .4byte gUnk_02000080 +_080AD8E8: .4byte gUnk_03000F50 +_080AD8EC: .4byte gUnk_081320FC + + thumb_func_start sub_080AD8F0 +sub_080AD8F0: @ 0x080AD8F0 + ldr r2, _080AD908 @ =gUnk_082F3D74 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + lsls r1, r1, #2 + adds r0, r0, r2 + adds r1, r1, r0 + ldr r0, [r1] + adds r2, r0, r2 + adds r0, r2, #0 + bx lr + .align 2, 0 +_080AD908: .4byte gUnk_082F3D74 + + thumb_func_start sub_080AD90C +sub_080AD90C: @ 0x080AD90C + ldr r1, _080AD914 @ =gUnk_03000000 + movs r0, #0 + strb r0, [r1, #3] + bx lr + .align 2, 0 +_080AD914: .4byte gUnk_03000000 + + thumb_func_start sub_080AD918 +sub_080AD918: @ 0x080AD918 + push {r4, lr} + ldr r1, _080AD948 @ =gUnk_03001000 + ldrb r0, [r1, #0xb] + adds r2, r0, #0 + cmp r2, #0 + bne _080AD958 + ldr r1, _080AD94C @ =gUnk_03000000 + movs r3, #0xa4 + lsls r3, r3, #3 + adds r0, r1, r3 + strb r2, [r0] + ldr r3, _080AD950 @ =0x00000664 + adds r0, r1, r3 + strb r2, [r0] + movs r3, #0xf5 + lsls r3, r3, #3 + adds r0, r1, r3 + strb r2, [r0] + ldr r3, _080AD954 @ =0x000008EC + adds r0, r1, r3 + strb r2, [r0] + adds r4, r1, #0 + b _080AD95E + .align 2, 0 +_080AD948: .4byte gUnk_03001000 +_080AD94C: .4byte gUnk_03000000 +_080AD950: .4byte 0x00000664 +_080AD954: .4byte 0x000008EC +_080AD958: + subs r0, #1 + strb r0, [r1, #0xb] + ldr r4, _080AD9A8 @ =gUnk_03000000 +_080AD95E: + ldrb r1, [r4, #3] + movs r0, #0x80 + subs r2, r0, r1 + cmp r2, #0 + ble _080AD980 + lsls r1, r1, #3 + adds r0, r4, #0 + adds r0, #0x20 + adds r1, r1, r0 + movs r3, #0xa8 + lsls r3, r3, #2 + adds r0, r3, #0 +_080AD976: + strh r0, [r1] + adds r1, #8 + subs r2, #1 + cmp r2, #0 + bne _080AD976 +_080AD980: + adds r1, r4, #0 + ldr r0, _080AD9AC @ =0x00000427 + adds r2, r1, r0 + ldrb r0, [r2] + cmp r0, #0 + beq _080AD9A0 + movs r0, #0 + strb r0, [r2] + movs r2, #0x84 + lsls r2, r2, #3 + adds r0, r1, r2 + adds r1, #0x26 + movs r2, #0x20 + movs r3, #8 + bl ObjAffineSet +_080AD9A0: + movs r0, #1 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_080AD9A8: .4byte gUnk_03000000 +_080AD9AC: .4byte 0x00000427 + + thumb_func_start sub_080AD9B0 +sub_080AD9B0: @ 0x080AD9B0 + push {lr} + ldr r2, _080AD9F4 @ =gUnk_03000000 + ldr r0, _080AD9F8 @ =gUnk_030010A0 + adds r0, #0x2f + ldrb r0, [r0] + movs r1, #0 + cmp r0, #0 + beq _080AD9C2 + movs r1, #0xf +_080AD9C2: + strb r1, [r2, #0xe] + ldr r1, _080AD9FC @ =gUnk_03000BF0 + adds r0, r1, #0 + adds r0, #0x24 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r3, [r1, #0xa] + adds r0, r0, r3 + strh r0, [r2, #4] + adds r0, r1, #0 + adds r0, #0x25 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r1, #0xc] + adds r0, r0, r1 + strh r0, [r2, #6] + ldrb r0, [r2, #1] + adds r0, #1 + strb r0, [r2, #1] + ldr r0, _080ADA00 @ =gUnk_03006164 + bl _call_via_r0 + pop {pc} + .align 2, 0 +_080AD9F4: .4byte gUnk_03000000 +_080AD9F8: .4byte gUnk_030010A0 +_080AD9FC: .4byte gUnk_03000BF0 +_080ADA00: .4byte gUnk_03006164 + + thumb_func_start sub_080ADA04 +sub_080ADA04: @ 0x080ADA04 + push {lr} + ldr r2, _080ADA10 @ =gUnk_0300659C + bl _call_via_r2 + pop {pc} + .align 2, 0 +_080ADA10: .4byte gUnk_0300659C + + thumb_func_start sub_080ADA14 +sub_080ADA14: @ 0x080ADA14 + push {r4, lr} + adds r3, r0, #0 + adds r2, r1, #0 + ldr r4, _080ADA28 @ =gUnk_03006580 + ldr r0, _080ADA2C @ =gUnk_03001010 + adds r1, r3, #0 + bl _call_via_r4 + pop {r4, pc} + .align 2, 0 +_080ADA28: .4byte gUnk_03006580 +_080ADA2C: .4byte gUnk_03001010 + + thumb_func_start sub_080ADA30 +sub_080ADA30: @ 0x080ADA30 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080ADA60 @ =gUnk_03003F80 + ldr r0, [r1, #0x2c] + cmp r0, r4 + bne _080ADA42 + ldrb r0, [r1, #0x1c] + cmp r0, #0 + bne _080ADA46 +_080ADA42: + bl sub_0805E780 +_080ADA46: + ldr r1, _080ADA64 @ =gUnk_08132700 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldr r1, _080ADA68 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_08078E84 + pop {r4, pc} + .align 2, 0 +_080ADA60: .4byte gUnk_03003F80 +_080ADA64: .4byte gUnk_08132700 +_080ADA68: .4byte gUnk_03001160 + + thumb_func_start sub_080ADA6C +sub_080ADA6C: @ 0x080ADA6C + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xf + strb r0, [r4, #0xf] + ldr r0, _080ADAA4 @ =gUnk_08132B28 + str r0, [r4, #0x48] + movs r1, #3 + strb r1, [r0, #4] + strb r1, [r0, #3] + movs r1, #6 + strb r1, [r0, #5] + strb r1, [r0, #2] + adds r0, r4, #0 + bl sub_080ADC84 + adds r0, r4, #0 + movs r1, #1 + movs r2, #3 + bl sub_080AE008 + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 + adds r0, r4, #0 + bl sub_080042AC + pop {r4, pc} + .align 2, 0 +_080ADAA4: .4byte gUnk_08132B28 + + thumb_func_start sub_080ADAA8 +sub_080ADAA8: @ 0x080ADAA8 + push {r4, lr} + adds r4, r0, #0 + bl sub_080ADC84 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080ADACC + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0 + bl sub_080ADCA0 + b _080ADAD2 +_080ADACC: + adds r0, r4, #0 + bl sub_080042B8 +_080ADAD2: + pop {r4, pc} + + thumb_func_start sub_080ADAD4 +sub_080ADAD4: @ 0x080ADAD4 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r3, _080ADAF4 @ =gUnk_03003F80 + ldrb r1, [r3, #0x1c] + adds r0, r1, #0 + cmp r0, #3 + bne _080ADAFC + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldr r0, _080ADAF8 @ =gUnk_03001160 + ldrb r1, [r0, #0x14] + lsrs r1, r1, #1 + adds r1, #8 + b _080ADB0C + .align 2, 0 +_080ADAF4: .4byte gUnk_03003F80 +_080ADAF8: .4byte gUnk_03001160 +_080ADAFC: + cmp r0, #6 + bne _080ADB18 + movs r0, #4 + strb r0, [r4, #0xc] + ldr r0, _080ADB14 @ =gUnk_03001160 + ldrb r1, [r0, #0x14] + lsrs r1, r1, #1 + adds r1, #4 +_080ADB0C: + adds r0, r4, #0 + bl sub_080042AC + b _080ADC08 + .align 2, 0 +_080ADB14: .4byte gUnk_03001160 +_080ADB18: + movs r5, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _080ADB58 + cmp r0, #1 + bne _080ADB36 + adds r0, r4, #0 + movs r1, #4 + bl sub_080ADCA0 + movs r0, #0x18 + strb r0, [r4, #0xe] + movs r0, #2 + strb r0, [r4, #0xa] + b _080ADBE0 +_080ADB36: + adds r0, r4, #0 + movs r1, #1 + bl sub_080ADCDC + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _080ADBE0 + adds r0, r4, #0 + movs r1, #0 + bl sub_080ADCA0 + strb r5, [r4, #0xa] + b _080ADBE0 +_080ADB58: + movs r0, #0xf + ands r0, r1 + cmp r0, #7 + bne _080ADB68 + adds r1, r4, #0 + adds r1, #0x59 + movs r0, #0x7f + strb r0, [r1] +_080ADB68: + ldrb r0, [r3, #0x1d] + cmp r0, #2 + beq _080ADB94 + cmp r0, #2 + bgt _080ADB78 + cmp r0, #1 + beq _080ADBB0 + b _080ADBCA +_080ADB78: + cmp r0, #3 + bne _080ADBCA + adds r0, r4, #0 + movs r1, #3 + bl sub_080ADCDC + ldrb r1, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x1a] + movs r2, #3 + movs r5, #0xe9 + b _080ADBCA +_080ADB94: + adds r0, r4, #0 + movs r1, #2 + bl sub_080ADCDC + ldrb r0, [r4, #0x1a] + movs r1, #0x10 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #4 + orrs r1, r0 + strb r1, [r4, #0x1a] + movs r2, #2 + movs r5, #0xe8 + b _080ADBCA +_080ADBB0: + adds r0, r4, #0 + movs r1, #1 + bl sub_080ADCDC + ldrb r0, [r4, #0x1a] + movs r1, #0x10 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r4, #0x1a] + movs r2, #1 + movs r5, #0xe7 +_080ADBCA: + ldr r0, _080ADC0C @ =gUnk_03003F80 + ldrb r1, [r0, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #7 + bne _080ADBDA + movs r5, #0xee + movs r2, #1 +_080ADBDA: + ldrb r0, [r4, #0xf] + subs r0, r0, r2 + strb r0, [r4, #0xf] +_080ADBE0: + movs r0, #0xf + ldrsb r0, [r4, r0] + cmp r0, #0 + bge _080ADBF6 + cmp r5, #0 + beq _080ADBF2 + adds r0, r5, #0 + bl sub_080A3268 +_080ADBF2: + movs r0, #0xf + strb r0, [r4, #0xf] +_080ADBF6: + ldr r2, _080ADC10 @ =gUnk_03001160 + adds r0, r2, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + ldrb r0, [r2, #0x1e] + subs r0, r0, r1 + strb r0, [r4, #0x1e] +_080ADC08: + pop {r4, r5, pc} + .align 2, 0 +_080ADC0C: .4byte gUnk_03003F80 +_080ADC10: .4byte gUnk_03001160 + + thumb_func_start sub_080ADC14 +sub_080ADC14: @ 0x080ADC14 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080ADC40 @ =gUnk_03003F80 + ldrb r0, [r0, #0x1c] + movs r1, #0xf + ands r1, r0 + cmp r1, #1 + beq _080ADC48 + cmp r1, #6 + bne _080ADC56 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldr r0, _080ADC44 @ =gUnk_03001160 + ldrb r1, [r0, #0x14] + lsrs r1, r1, #1 + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC + b _080ADC5C + .align 2, 0 +_080ADC40: .4byte gUnk_03003F80 +_080ADC44: .4byte gUnk_03001160 +_080ADC48: + adds r0, r4, #0 + movs r1, #0 + bl sub_080ADCA0 + movs r0, #2 + strb r0, [r4, #0xc] + b _080ADC5C +_080ADC56: + adds r0, r4, #0 + bl sub_080042B8 +_080ADC5C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080ADC60 +sub_080ADC60: @ 0x080ADC60 + push {lr} + adds r2, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080ADC7C + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x18] + b _080ADC82 +_080ADC7C: + adds r0, r2, #0 + bl sub_080042B8 +_080ADC82: + pop {pc} + + thumb_func_start sub_080ADC84 +sub_080ADC84: @ 0x080ADC84 + ldr r1, _080ADC9C @ =gUnk_03001160 + ldrb r1, [r1, #0x18] + movs r2, #0x40 + ands r2, r1 + ldrb r3, [r0, #0x18] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r1, r3 + orrs r1, r2 + strb r1, [r0, #0x18] + bx lr + .align 2, 0 +_080ADC9C: .4byte gUnk_03001160 + + thumb_func_start sub_080ADCA0 +sub_080ADCA0: @ 0x080ADCA0 + push {r4, lr} + ldr r3, _080ADCD4 @ =gUnk_08132714 + ldr r2, _080ADCD8 @ =gUnk_03001160 + ldrb r2, [r2, #0x14] + lsrs r2, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r3 + ldr r2, [r1] + str r2, [r0, #0x5c] + ldrb r1, [r2] + adds r3, r0, #0 + adds r3, #0x58 + strb r1, [r3] + adds r1, r2, #1 + str r1, [r0, #0x5c] + ldrb r2, [r2, #1] + movs r4, #0x59 + strb r2, [r4, r0] + adds r1, #1 + str r1, [r0, #0x5c] + ldrb r1, [r3] + ldrh r2, [r0, #0x12] + bl sub_080042D0 + pop {r4, pc} + .align 2, 0 +_080ADCD4: .4byte gUnk_08132714 +_080ADCD8: .4byte gUnk_03001160 + + thumb_func_start sub_080ADCDC +sub_080ADCDC: @ 0x080ADCDC + push {r4, r5, lr} + adds r3, r0, #0 + movs r0, #0x59 + adds r0, r0, r3 + mov ip, r0 + ldrb r0, [r0] + subs r0, r0, r1 + mov r1, ip + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bgt _080ADD2E + ldr r1, [r3, #0x5c] + ldrb r0, [r1] + cmp r0, #0xff + bne _080ADD06 + adds r0, r1, #1 + str r0, [r3, #0x5c] + ldrb r1, [r1, #1] + subs r0, r0, r1 + str r0, [r3, #0x5c] +_080ADD06: + ldr r1, [r3, #0x5c] + ldrb r0, [r1] + adds r2, r3, #0 + adds r2, #0x58 + strb r0, [r2] + adds r1, #1 + str r1, [r3, #0x5c] + ldrb r0, [r1] + mov r4, ip + ldrb r4, [r4] + adds r0, r0, r4 + mov r5, ip + strb r0, [r5] + adds r1, #1 + str r1, [r3, #0x5c] + ldrb r1, [r2] + ldrh r2, [r3, #0x12] + adds r0, r3, #0 + bl sub_080042D0 +_080ADD2E: + pop {r4, r5, pc} + + thumb_func_start sub_080ADD30 +sub_080ADD30: @ 0x080ADD30 + push {r4, r5, r6, lr} + ldr r4, _080ADD6C @ =gUnk_02024490 + movs r1, #0x85 + lsls r1, r1, #2 + adds r0, r4, #0 + bl sub_0801D630 + movs r5, #0 + adds r4, #4 + movs r0, #0x10 + rsbs r0, r0, #0 + adds r6, r0, #0 +_080ADD48: + adds r0, r5, #0 + movs r1, #0 + movs r2, #1 + bl sub_080AE104 + ldrb r0, [r4] + ands r0, r6 + movs r1, #6 + orrs r0, r1 + strb r0, [r4] + movs r0, #0x80 + strb r0, [r4, #2] + adds r4, #0xc + adds r5, #1 + cmp r5, #3 + bls _080ADD48 + pop {r4, r5, r6, pc} + .align 2, 0 +_080ADD6C: .4byte gUnk_02024490 + + thumb_func_start sub_080ADD70 +sub_080ADD70: @ 0x080ADD70 + push {r4, r5, lr} + ldr r1, _080ADD88 @ =gUnk_02024490 + ldrb r0, [r1] + cmp r0, #0 + beq _080ADDD6 + ldrb r0, [r1, #3] + cmp r0, #0 + beq _080ADD8C + bl sub_080ADE24 + b _080ADDD6 + .align 2, 0 +_080ADD88: .4byte gUnk_02024490 +_080ADD8C: + movs r4, #0 + movs r5, #0 +_080ADD90: + ldr r0, _080ADDB0 @ =gUnk_02024494 + adds r2, r5, r0 + ldrb r1, [r2] + lsls r0, r1, #0x1c + lsrs r0, r0, #0x1c + cmp r0, #2 + bne _080ADDB4 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r3, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + b _080ADDCE + .align 2, 0 +_080ADDB0: .4byte gUnk_02024494 +_080ADDB4: + cmp r0, #2 + blt _080ADDCE + cmp r0, #6 + bgt _080ADDCE + cmp r0, #4 + blt _080ADDCE + movs r0, #0xf0 + ands r0, r1 + cmp r0, #0x30 + bne _080ADDCE + adds r0, r4, #0 + bl sub_080ADE74 +_080ADDCE: + adds r5, #0xc + adds r4, #1 + cmp r4, #0x2b + bls _080ADD90 +_080ADDD6: + pop {r4, r5, pc} + + thumb_func_start sub_080ADDD8 +sub_080ADDD8: @ 0x080ADDD8 + push {lr} + adds r2, r1, #0 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _080ADDFC @ =gUnk_02024494 + adds r3, r1, r0 + ldr r0, _080ADE00 @ =0x00FFFFFC + ands r0, r2 + ldr r1, _080ADE04 @ =gUnk_085A2E80 + adds r0, r0, r1 + str r0, [r3, #8] + movs r0, #1 + ands r0, r2 + cmp r0, #0 + beq _080ADE0C + ldr r0, _080ADE08 @ =0x0000FFFF + b _080ADE14 + .align 2, 0 +_080ADDFC: .4byte gUnk_02024494 +_080ADE00: .4byte 0x00FFFFFC +_080ADE04: .4byte gUnk_085A2E80 +_080ADE08: .4byte 0x0000FFFF +_080ADE0C: + movs r0, #0xfe + lsls r0, r0, #0x17 + ands r0, r2 + lsrs r0, r0, #0x14 +_080ADE14: + strh r0, [r3, #6] + ldrb r0, [r3] + movs r1, #0xf + ands r1, r0 + movs r0, #0x30 + orrs r1, r0 + strb r1, [r3] + pop {pc} + + thumb_func_start sub_080ADE24 +sub_080ADE24: @ 0x080ADE24 + push {r4, r5, lr} + ldr r1, _080ADE50 @ =gUnk_02024490 + movs r0, #1 + strb r0, [r1, #3] + movs r4, #0 + movs r5, #0 +_080ADE30: + ldr r0, _080ADE54 @ =gUnk_02024494 + adds r1, r5, r0 + ldrb r0, [r1] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + cmp r0, #3 + beq _080ADE60 + cmp r0, #3 + blt _080ADE58 + cmp r0, #6 + bgt _080ADE58 + adds r0, r4, #0 + bl sub_080ADE74 + b _080ADE60 + .align 2, 0 +_080ADE50: .4byte gUnk_02024490 +_080ADE54: .4byte gUnk_02024494 +_080ADE58: + adds r0, r1, #0 + movs r1, #0xc + bl sub_0801D630 +_080ADE60: + adds r5, #0xc + adds r4, #1 + cmp r4, #0x2b + bls _080ADE30 + movs r1, #0 + ldr r0, _080ADE70 @ =gUnk_02024490 + strb r1, [r0, #3] + pop {r4, r5, pc} + .align 2, 0 +_080ADE70: .4byte gUnk_02024490 + + thumb_func_start sub_080ADE74 +sub_080ADE74: @ 0x080ADE74 + push {r4, r5, r6, lr} + adds r2, r0, #0 + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r1, _080ADF00 @ =gUnk_02024494 + adds r3, r0, r1 + ldrb r1, [r3] + movs r0, #0xf0 + ands r0, r1 + cmp r0, #0 + beq _080ADF7C + movs r0, #0xf + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r3] + ldrh r1, [r3, #6] + ldr r0, _080ADF04 @ =0x0000FFFF + cmp r1, r0 + beq _080ADF18 + ldrb r0, [r3, #3] + cmp r0, #0 + beq _080ADF18 + lsls r0, r0, #6 + ldr r1, _080ADF08 @ =gUnk_020000C0 + adds r4, r0, r1 + movs r5, #4 + movs r6, #9 + rsbs r6, r6, #0 +_080ADEB0: + ldrb r1, [r4] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080ADEF6 + ldr r0, _080ADF0C @ =gUnk_02024490 + ldrb r0, [r0, #3] + cmp r0, #0 + bne _080ADECA + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080ADEF6 +_080ADECA: + adds r0, r6, #0 + ands r0, r1 + strb r0, [r4] + ldrb r0, [r4, #9] + lsls r2, r0, #5 + cmp r2, #0 + beq _080ADEF6 + ldrh r0, [r4, #0xa] + lsls r0, r0, #5 + ldr r3, _080ADF10 @ =0x06010000 + adds r1, r0, r3 + ldr r3, _080ADF14 @ =0x040000D4 + ldr r0, [r4, #0xc] + str r0, [r3] + str r1, [r3, #4] + adds r0, r2, #0 + asrs r0, r0, #2 + movs r1, #0x84 + lsls r1, r1, #0x18 + orrs r0, r1 + str r0, [r3, #8] + ldr r0, [r3, #8] +_080ADEF6: + adds r4, #0x10 + subs r5, #1 + cmp r5, #0 + bgt _080ADEB0 + b _080ADF7C + .align 2, 0 +_080ADF00: .4byte gUnk_02024494 +_080ADF04: .4byte 0x0000FFFF +_080ADF08: .4byte gUnk_020000C0 +_080ADF0C: .4byte gUnk_02024490 +_080ADF10: .4byte 0x06010000 +_080ADF14: .4byte 0x040000D4 +_080ADF18: + lsls r0, r2, #9 + ldr r2, _080ADF4C @ =0x06012800 + adds r1, r0, r2 + ldrh r2, [r3, #6] + cmp r2, #0 + beq _080ADF58 + ldr r0, _080ADF50 @ =0x0000FFFF + cmp r2, r0 + beq _080ADF62 + ldr r2, _080ADF54 @ =0x040000D4 + ldr r0, [r3, #8] + str r0, [r2] + str r1, [r2, #4] + ldrh r0, [r3, #6] + lsls r0, r0, #3 + movs r1, #0x84 + lsls r1, r1, #0x18 + orrs r0, r1 + str r0, [r2, #8] + ldr r0, [r2, #8] + ldrh r2, [r3, #6] + subs r2, #0x10 + cmp r2, #0 + ble _080ADF7C + b _080ADF70 + .align 2, 0 +_080ADF4C: .4byte 0x06012800 +_080ADF50: .4byte 0x0000FFFF +_080ADF54: .4byte 0x040000D4 +_080ADF58: + ldrb r1, [r3] + movs r0, #0xf + ands r0, r1 + strb r0, [r3] + b _080ADF7C +_080ADF62: + ldrb r0, [r3, #3] + cmp r0, #0 + bne _080ADF7C + ldr r0, [r3, #8] + bl LZ77UnCompVram + b _080ADF7C +_080ADF70: + adds r3, #0xc + movs r0, #0 + strh r0, [r3, #6] + subs r2, #0x10 + cmp r2, #0 + bgt _080ADF70 +_080ADF7C: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080ADF80 +sub_080ADF80: @ 0x080ADF80 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r8, r0 + adds r7, r1, #0 + cmp r7, #0 + beq _080ADFFC + movs r5, #4 + ldr r0, _080ADFD4 @ =gUnk_02024490 + adds r0, #0x30 +_080ADF94: + ldrh r1, [r0, #8] + cmp r7, r1 + beq _080ADFF2 + adds r0, #0xc + adds r5, #1 + cmp r5, #0x2b + bls _080ADF94 + ldr r0, _080ADFD8 @ =gUnk_08132B30 + lsls r4, r7, #2 + adds r0, r4, r0 + ldr r0, [r0] + movs r1, #0xfe + lsls r1, r1, #0x17 + ands r0, r1 + lsrs r6, r0, #0x18 + adds r0, r6, #0 + bl sub_080AE174 + adds r5, r0, #0 + cmp r5, #0 + bne _080ADFDC + bl sub_080AE1D8 + adds r0, r6, #0 + bl sub_080AE174 + adds r5, r0, #0 + cmp r5, #0 + bne _080ADFDC + movs r0, #0 + b _080ADFFE + .align 2, 0 +_080ADFD4: .4byte gUnk_02024490 +_080ADFD8: .4byte gUnk_08132B30 +_080ADFDC: + adds r0, r5, #0 + adds r1, r7, #0 + adds r2, r6, #0 + bl sub_080AE104 + ldr r0, _080AE004 @ =gUnk_08132B30 + adds r0, r4, r0 + ldr r1, [r0] + adds r0, r5, #0 + bl sub_080ADDD8 +_080ADFF2: + adds r0, r5, #0 + mov r1, r8 + movs r2, #4 + bl sub_080AE0C8 +_080ADFFC: + movs r0, #1 +_080ADFFE: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080AE004: .4byte gUnk_08132B30 + + thumb_func_start sub_080AE008 +sub_080AE008: @ 0x080AE008 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r5, r1, #0 + adds r4, r2, #0 + cmp r4, #0 + bne _080AE030 + adds r0, r5, #0 + bl sub_080AE174 + adds r4, r0, #0 + cmp r4, #0 + bne _080AE030 + bl sub_080AE1D8 + adds r0, r5, #0 + bl sub_080AE174 + adds r4, r0, #0 + cmp r4, #0 + beq _080AE058 +_080AE030: + ldr r0, _080AE064 @ =gUnk_02024490 + lsls r1, r4, #1 + adds r1, r1, r4 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #4] + lsls r0, r0, #0x1c + lsrs r2, r0, #0x1c + cmp r2, #6 + beq _080AE050 + adds r0, r4, #0 + movs r1, #0 + adds r2, r5, #0 + bl sub_080AE104 + movs r2, #5 +_080AE050: + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_080AE0C8 +_080AE058: + adds r0, r4, #0 + cmp r0, #0 + beq _080AE060 + movs r0, #1 +_080AE060: + pop {r4, r5, r6, pc} + .align 2, 0 +_080AE064: .4byte gUnk_02024490 + + thumb_func_start sub_080AE068 +sub_080AE068: @ 0x080AE068 + push {r4, r5, lr} + adds r0, #0x26 + ldrb r2, [r0] + movs r1, #0 + strb r1, [r0] + cmp r2, #0 + beq _080AE0C2 + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r1, _080AE0C4 @ =gUnk_02024494 + adds r3, r0, r1 + ldrb r0, [r3] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + cmp r0, #5 + bgt _080AE0C2 + cmp r0, #4 + blt _080AE0C2 + ldrb r0, [r3, #2] + cmp r0, #0 + beq _080AE0C2 + subs r0, #1 + strb r0, [r3, #2] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080AE0C2 + ldrb r2, [r3, #1] + adds r0, r2, #0 + subs r2, #1 + cmp r0, #0 + ble _080AE0C2 + movs r5, #0x10 + rsbs r5, r5, #0 + movs r4, #1 +_080AE0AE: + ldrb r0, [r3] + adds r1, r5, #0 + ands r1, r0 + orrs r1, r4 + strb r1, [r3] + adds r3, #0xc + adds r0, r2, #0 + subs r2, #1 + cmp r0, #0 + bgt _080AE0AE +_080AE0C2: + pop {r4, r5, pc} + .align 2, 0 +_080AE0C4: .4byte gUnk_02024494 + + thumb_func_start sub_080AE0C8 +sub_080AE0C8: @ 0x080AE0C8 + push {r4, lr} + adds r4, r2, #0 + lsls r2, r0, #4 + movs r3, #0xa0 + lsls r3, r3, #1 + adds r2, r2, r3 + adds r3, r1, #0 + adds r3, #0x60 + strh r2, [r3] + adds r1, #0x26 + strb r0, [r1] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _080AE100 @ =gUnk_02024494 + adds r1, r1, r0 + ldrb r2, [r1, #2] + movs r0, #2 + ldrsb r0, [r1, r0] + cmp r0, #0 + blt _080AE0F6 + adds r0, r2, #1 + strb r0, [r1, #2] +_080AE0F6: + adds r0, r1, #0 + adds r1, r4, #0 + bl sub_080AE134 + pop {r4, pc} + .align 2, 0 +_080AE100: .4byte gUnk_02024494 + + thumb_func_start sub_080AE104 +sub_080AE104: @ 0x080AE104 + push {r4, r5, r6, lr} + adds r6, r1, #0 + adds r5, r2, #0 + lsls r4, r0, #1 + adds r4, r4, r0 + lsls r4, r4, #2 + ldr r0, _080AE130 @ =gUnk_02024494 + adds r4, r4, r0 + lsls r1, r5, #1 + adds r1, r1, r5 + lsls r1, r1, #2 + adds r0, r4, #0 + bl sub_0801D630 + strb r5, [r4, #1] + strh r6, [r4, #4] + adds r0, r4, #0 + movs r1, #4 + bl sub_080AE134 + pop {r4, r5, r6, pc} + .align 2, 0 +_080AE130: .4byte gUnk_02024494 + + thumb_func_start sub_080AE134 +sub_080AE134: @ 0x080AE134 + push {r4, r5, r6, lr} + adds r3, r0, #0 + adds r4, r1, #0 + movs r6, #0xf + adds r0, r4, #0 + ands r0, r6 + ldrb r2, [r3] + movs r5, #0x10 + rsbs r5, r5, #0 + adds r1, r5, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3] + ldrb r2, [r3, #1] + cmp r4, #6 + beq _080AE156 + movs r4, #3 +_080AE156: + subs r2, #1 + cmp r2, #0 + ble _080AE170 + ands r4, r6 +_080AE15E: + adds r3, #0xc + ldrb r1, [r3] + adds r0, r5, #0 + ands r0, r1 + orrs r0, r4 + strb r0, [r3] + subs r2, #1 + cmp r2, #0 + bgt _080AE15E +_080AE170: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080AE174 +sub_080AE174: @ 0x080AE174 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r2, #4 + ldr r0, _080AE194 @ =gUnk_02024490 + adds r3, r0, #0 + adds r3, #0x30 +_080AE182: + ldrb r0, [r3, #4] + lsls r0, r0, #0x1c + cmp r0, #0 + bne _080AE198 + adds r1, #1 + cmp r4, r1 + bhi _080AE19A + b _080AE1BC + .align 2, 0 +_080AE194: .4byte gUnk_02024490 +_080AE198: + movs r1, #0 +_080AE19A: + adds r3, #0xc + adds r2, #1 + cmp r2, #0x2b + bls _080AE182 + movs r1, #0 + movs r2, #4 + ldr r0, _080AE1C4 @ =gUnk_02024490 + adds r3, r0, #0 + adds r3, #0x30 +_080AE1AC: + ldrb r0, [r3, #4] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + cmp r0, #1 + bhi _080AE1C8 + adds r1, #1 + cmp r4, r1 + bhi _080AE1CA +_080AE1BC: + subs r0, r2, r1 + adds r0, #1 + b _080AE1D4 + .align 2, 0 +_080AE1C4: .4byte gUnk_02024490 +_080AE1C8: + movs r1, #0 +_080AE1CA: + adds r3, #0xc + adds r2, #1 + cmp r2, #0x2b + bls _080AE1AC + movs r0, #0 +_080AE1D4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080AE1D8 +sub_080AE1D8: @ 0x080AE1D8 + push {r4, r5, lr} + ldr r0, _080AE1E8 @ =gUnk_02024490 + ldrb r0, [r0] + cmp r0, #0 + beq _080AE216 + movs r5, #4 + b _080AE20A + .align 2, 0 +_080AE1E8: .4byte gUnk_02024490 +_080AE1EC: + bl sub_080AE3B8 + adds r4, r0, #0 + cmp r4, r5 + bhi _080AE208 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080AE218 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080AE324 + adds r5, r4, #0 +_080AE208: + adds r5, #1 +_080AE20A: + adds r0, r5, #0 + bl sub_080AE384 + adds r5, r0, #0 + cmp r5, #0 + bne _080AE1EC +_080AE216: + pop {r4, r5, pc} + + thumb_func_start sub_080AE218 +sub_080AE218: @ 0x080AE218 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov sl, r0 + mov r8, r1 + lsls r0, r1, #4 + movs r1, #0xa0 + lsls r1, r1, #1 + adds r0, r0, r1 + mov ip, r0 + mov r2, sl + lsls r0, r2, #4 + adds r3, r0, r1 + ldr r1, _080AE30C @ =gUnk_02024490 + lsls r0, r2, #1 + add r0, sl + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #5] + lsls r0, r0, #4 + adds r7, r3, r0 + movs r4, #0 + ldr r6, _080AE310 @ =gUnk_020000C0 + mov sb, r6 + ldr r0, _080AE314 @ =gUnk_03001160 + adds r2, r0, #0 + adds r2, #0x26 + adds r5, r0, #0 +_080AE254: + ldr r0, [r5, #4] + cmp r0, #0 + beq _080AE276 + ldrb r0, [r2] + cmp sl, r0 + bne _080AE264 + mov r1, r8 + strb r1, [r2] +_080AE264: + ldrh r0, [r2, #0x3a] + cmp r3, r0 + bhi _080AE276 + cmp r7, r0 + bls _080AE276 + subs r0, r0, r3 + mov r6, ip + adds r1, r0, r6 + strh r1, [r2, #0x3a] +_080AE276: + adds r2, #0x88 + adds r5, #0x88 + adds r4, #1 + cmp r4, #0x4f + bls _080AE254 + movs r0, #0 +_080AE282: + movs r4, #0 + adds r1, r0, #1 + mov r8, r1 + lsls r5, r0, #6 +_080AE28A: + lsls r0, r4, #4 + add r0, sb + adds r2, r5, r0 + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080AE2B4 + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _080AE2B4 + ldrh r1, [r2, #0xa] + cmp r3, r1 + bhi _080AE2B4 + cmp r7, r1 + bls _080AE2B4 + subs r0, r1, r3 + mov r6, ip + adds r1, r0, r6 + strh r1, [r2, #0xa] +_080AE2B4: + adds r4, #1 + cmp r4, #3 + bls _080AE28A + mov r0, r8 + cmp r0, #0x2f + bls _080AE282 + movs r4, #0 + ldr r0, _080AE318 @ =0xFFFFFC00 + mov sl, r0 + ldr r5, _080AE31C @ =gUnk_03000000 + adds r5, #0x24 + ldr r1, _080AE320 @ =0x000003FF + mov sb, r1 + movs r2, #1 + mov r8, r2 +_080AE2D2: + ldrh r2, [r5] + lsls r0, r2, #0x16 + lsrs r1, r0, #0x16 + cmp r3, r1 + bhi _080AE2F8 + cmp r7, r1 + bls _080AE2F8 + subs r0, r1, r3 + mov r6, ip + adds r1, r0, r6 + mov r0, sb + ands r1, r0 + mov r0, sl + ands r0, r2 + orrs r0, r1 + strh r0, [r5] + mov r2, r8 + ldr r1, _080AE31C @ =gUnk_03000000 + strb r2, [r1] +_080AE2F8: + adds r5, #8 + adds r4, #1 + cmp r4, #0x7f + bls _080AE2D2 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080AE30C: .4byte gUnk_02024490 +_080AE310: .4byte gUnk_020000C0 +_080AE314: .4byte gUnk_03001160 +_080AE318: .4byte 0xFFFFFC00 +_080AE31C: .4byte gUnk_03000000 +_080AE320: .4byte 0x000003FF + + thumb_func_start sub_080AE324 +sub_080AE324: @ 0x080AE324 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r3, r1, #0 + ldr r2, _080AE380 @ =gUnk_02024490 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r5, r1, r2 + ldrb r4, [r5, #5] + subs r4, #1 + movs r0, #1 + rsbs r0, r0, #0 + cmp r4, r0 + beq _080AE372 + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #2 + adds r0, r0, r2 + mov r8, r0 + adds r0, r1, #4 + adds r6, r0, r2 +_080AE350: + mov r0, r8 + adds r0, #4 + adds r1, r5, #4 + ldm r1!, {r2, r3, r7} + stm r0!, {r2, r3, r7} + adds r0, r6, #0 + movs r1, #0xc + bl sub_0801D630 + adds r6, #0xc + adds r5, #0xc + movs r0, #0xc + add r8, r0 + subs r4, #1 + subs r0, #0xd + cmp r4, r0 + bne _080AE350 +_080AE372: + ldr r1, _080AE380 @ =gUnk_02024490 + movs r0, #1 + strb r0, [r1, #3] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080AE380: .4byte gUnk_02024490 + + thumb_func_start sub_080AE384 +sub_080AE384: @ 0x080AE384 + push {lr} + adds r2, r0, #0 + cmp r2, #0x2a + bhi _080AE3B4 + ldr r1, _080AE3A8 @ =gUnk_02024490 + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r1, r0, r1 +_080AE396: + ldrb r0, [r1, #4] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + cmp r0, #5 + bgt _080AE3AC + cmp r0, #4 + blt _080AE3AC + adds r0, r2, #0 + b _080AE3B6 + .align 2, 0 +_080AE3A8: .4byte gUnk_02024490 +_080AE3AC: + adds r1, #0xc + adds r2, #1 + cmp r2, #0x2a + bls _080AE396 +_080AE3B4: + movs r0, #0 +_080AE3B6: + pop {pc} + + thumb_func_start sub_080AE3B8 +sub_080AE3B8: @ 0x080AE3B8 + push {lr} + movs r1, #4 + ldr r0, _080AE3D4 @ =gUnk_02024490 + adds r2, r0, #0 + adds r2, #0x30 +_080AE3C2: + ldrb r0, [r2, #4] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + cmp r0, #1 + bgt _080AE3D8 + cmp r0, #0 + blt _080AE3D8 + adds r0, r1, #0 + b _080AE3E2 + .align 2, 0 +_080AE3D4: .4byte gUnk_02024490 +_080AE3D8: + adds r2, #0xc + adds r1, #1 + cmp r1, #0x2b + bls _080AE3C2 + movs r0, #0 +_080AE3E2: + pop {pc} + + thumb_func_start sub_080AE3E4 +sub_080AE3E4: @ 0x080AE3E4 + movs r0, #0 + bx lr + + thumb_func_start sub_080AE3E8 +sub_080AE3E8: @ 0x080AE3E8 + movs r0, #1 + bx lr + + thumb_func_start sub_080AE3EC +sub_080AE3EC: @ 0x080AE3EC + adds r2, r0, #0 + ldr r0, _080AE404 @ =gUnk_08133918 + movs r3, #0xf + ands r1, r3 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + ands r2, r3 + asrs r0, r2 + movs r1, #1 + ands r0, r1 + bx lr + .align 2, 0 +_080AE404: .4byte gUnk_08133918 + + thumb_func_start sub_080AE408 +sub_080AE408: @ 0x080AE408 + adds r2, r0, #0 + ldr r0, _080AE420 @ =gUnk_08133938 + movs r3, #0xf + ands r1, r3 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + ands r2, r3 + asrs r0, r2 + movs r1, #1 + ands r0, r1 + bx lr + .align 2, 0 +_080AE420: .4byte gUnk_08133938 + + thumb_func_start sub_080AE424 +sub_080AE424: @ 0x080AE424 + adds r2, r0, #0 + ldr r0, _080AE43C @ =gUnk_08133958 + movs r3, #0xf + ands r1, r3 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + ands r2, r3 + asrs r0, r2 + movs r1, #1 + ands r0, r1 + bx lr + .align 2, 0 +_080AE43C: .4byte gUnk_08133958 + + thumb_func_start sub_080AE440 +sub_080AE440: @ 0x080AE440 + adds r2, r0, #0 + ldr r0, _080AE458 @ =gUnk_08133978 + movs r3, #0xf + ands r1, r3 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + ands r2, r3 + asrs r0, r2 + movs r1, #1 + ands r0, r1 + bx lr + .align 2, 0 +_080AE458: .4byte gUnk_08133978 + + thumb_func_start sub_080AE45C +sub_080AE45C: @ 0x080AE45C + adds r2, r0, #0 + ldr r0, _080AE474 @ =gUnk_08133998 + movs r3, #0xf + ands r1, r3 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + ands r2, r3 + asrs r0, r2 + movs r1, #1 + ands r0, r1 + bx lr + .align 2, 0 +_080AE474: .4byte gUnk_08133998 + + thumb_func_start sub_080AE478 +sub_080AE478: @ 0x080AE478 + adds r2, r0, #0 + ldr r0, _080AE490 @ =gUnk_081339B8 + movs r3, #0xf + ands r1, r3 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + ands r2, r3 + asrs r0, r2 + movs r1, #1 + ands r0, r1 + bx lr + .align 2, 0 +_080AE490: .4byte gUnk_081339B8 + + thumb_func_start sub_080AE494 +sub_080AE494: @ 0x080AE494 + adds r2, r0, #0 + ldr r0, _080AE4AC @ =gUnk_081339D8 + movs r3, #0xf + ands r1, r3 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + ands r2, r3 + asrs r0, r2 + movs r1, #1 + ands r0, r1 + bx lr + .align 2, 0 +_080AE4AC: .4byte gUnk_081339D8 + + thumb_func_start sub_080AE4B0 +sub_080AE4B0: @ 0x080AE4B0 + adds r2, r0, #0 + ldr r0, _080AE4C8 @ =gUnk_081339F8 + movs r3, #0xf + ands r1, r3 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + ands r2, r3 + asrs r0, r2 + movs r1, #1 + ands r0, r1 + bx lr + .align 2, 0 +_080AE4C8: .4byte gUnk_081339F8 + + thumb_func_start sub_080AE4CC +sub_080AE4CC: @ 0x080AE4CC + push {r4, r5, r6, lr} + adds r6, r1, #0 + adds r5, r2, #0 + adds r4, r3, #0 + ldr r1, _080AE4FC @ =gUnk_03000BF0 + ldrh r2, [r1, #6] + subs r2, r6, r2 + asrs r2, r2, #4 + movs r3, #0x3f + ands r2, r3 + ldrh r1, [r1, #8] + subs r1, r5, r1 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r2, r1 + adds r0, r0, r2 + ldrb r3, [r0] + cmp r3, #0 + bne _080AE500 + cmp r4, #4 + beq _080AE588 + b _080AE516 + .align 2, 0 +_080AE4FC: .4byte gUnk_03000BF0 +_080AE500: + cmp r3, #0xf + bhi _080AE53E + ldr r2, _080AE51C @ =gUnk_08133A40 + lsls r1, r4, #1 + adds r0, r3, #1 + lsrs r0, r0, #4 + adds r1, r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + cmp r0, #0 + bne _080AE520 +_080AE516: + movs r0, #0 + b _080AE58A + .align 2, 0 +_080AE51C: .4byte gUnk_08133A40 +_080AE520: + cmp r0, #1 + beq _080AE588 + movs r0, #8 + ands r5, r0 + cmp r5, #0 + bne _080AE52E + lsrs r3, r3, #2 +_080AE52E: + ands r6, r0 + cmp r6, #0 + bne _080AE536 + lsrs r3, r3, #1 +_080AE536: + movs r0, #1 + ands r3, r0 + adds r0, r3, #0 + b _080AE58A +_080AE53E: + cmp r3, #0xff + bne _080AE558 + ldr r1, _080AE550 @ =gUnk_08133A18 + ldr r0, _080AE554 @ =gUnk_08133A5A + adds r0, r4, r0 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + b _080AE572 + .align 2, 0 +_080AE550: .4byte gUnk_08133A18 +_080AE554: .4byte gUnk_08133A5A +_080AE558: + cmp r3, #0x6f + bhi _080AE588 + ldr r2, _080AE580 @ =gUnk_08133A18 + ldr r1, _080AE584 @ =gUnk_08133A67 + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #5 + adds r0, r0, r3 + subs r0, #0x10 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r2 +_080AE572: + ldr r2, [r0] + adds r0, r6, #0 + adds r1, r5, #0 + bl _call_via_r2 + b _080AE58A + .align 2, 0 +_080AE580: .4byte gUnk_08133A18 +_080AE584: .4byte gUnk_08133A67 +_080AE588: + movs r0, #1 +_080AE58A: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080AE58C +sub_080AE58C: @ 0x080AE58C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x18 + str r0, [sp] + str r1, [sp, #4] + adds r4, r2, #0 + adds r0, #0x38 + ldrb r0, [r0] + bl sub_0808094C + ldr r1, _080AE624 @ =0x00002004 + adds r5, r0, r1 + ldr r2, [sp] + ldr r2, [r2, #0x48] + str r2, [sp, #8] + ldr r0, [sp] + movs r2, #0x2e + ldrsh r1, [r0, r2] + ldr r2, [sp, #8] + movs r0, #0 + ldrsb r0, [r2, r0] + adds r1, r1, r0 + str r1, [sp, #0xc] + ldr r0, [sp] + movs r2, #0x32 + ldrsh r1, [r0, r2] + ldr r2, [sp, #8] + movs r0, #1 + ldrsb r0, [r2, r0] + adds r1, r1, r0 + mov sl, r1 + ldrb r0, [r2, #2] + mov sb, r0 + ldrb r1, [r2, #3] + mov r8, r1 + movs r0, #0xf + ldr r2, [sp, #4] + ands r0, r2 + cmp r0, #0 + beq _080AE65C + cmp r2, #0xf + bhi _080AE628 + ldr r7, [sp, #0xc] + add r7, sb + adds r0, r5, #0 + adds r1, r7, #0 + mov r2, sl + adds r3, r4, #0 + bl sub_080AE4CC + adds r6, r0, #0 + lsls r6, r6, #1 + mov r2, sl + add r2, r8 + adds r0, r5, #0 + adds r1, r7, #0 + adds r3, r4, #0 + bl sub_080AE4CC + orrs r6, r0 + lsls r6, r6, #1 + mov r0, sl + mov r1, r8 + subs r2, r0, r1 + adds r0, r5, #0 + adds r1, r7, #0 + adds r3, r4, #0 + bl sub_080AE4CC + orrs r6, r0 + lsls r6, r6, #6 + b _080AE6D2 + .align 2, 0 +_080AE624: .4byte 0x00002004 +_080AE628: + ldr r2, [sp, #0xc] + mov r0, sb + subs r7, r2, r0 + adds r0, r5, #0 + adds r1, r7, #0 + mov r2, sl + adds r3, r4, #0 + bl sub_080AE4CC + adds r6, r0, #0 + lsls r6, r6, #1 + mov r2, sl + add r2, r8 + adds r0, r5, #0 + adds r1, r7, #0 + adds r3, r4, #0 + bl sub_080AE4CC + orrs r6, r0 + lsls r6, r6, #1 + mov r1, sl + mov r0, r8 + subs r2, r1, r0 + adds r0, r5, #0 + adds r1, r7, #0 + b _080AE6C8 +_080AE65C: + ldr r7, [sp, #0xc] + add r7, sb + adds r0, r5, #0 + adds r1, r7, #0 + mov r2, sl + adds r3, r4, #0 + bl sub_080AE4CC + adds r6, r0, #0 + lsls r6, r6, #1 + mov r1, sl + add r1, r8 + str r1, [sp, #0x10] + adds r0, r5, #0 + adds r1, r7, #0 + ldr r2, [sp, #0x10] + adds r3, r4, #0 + bl sub_080AE4CC + orrs r6, r0 + lsls r6, r6, #1 + mov r2, sl + mov r0, r8 + subs r2, r2, r0 + mov r8, r2 + adds r0, r5, #0 + adds r1, r7, #0 + adds r3, r4, #0 + bl sub_080AE4CC + orrs r6, r0 + lsls r6, r6, #2 + ldr r1, [sp, #0xc] + mov r2, sb + subs r7, r1, r2 + adds r0, r5, #0 + adds r1, r7, #0 + mov r2, sl + adds r3, r4, #0 + bl sub_080AE4CC + orrs r6, r0 + lsls r6, r6, #1 + adds r0, r5, #0 + adds r1, r7, #0 + ldr r2, [sp, #0x10] + adds r3, r4, #0 + bl sub_080AE4CC + orrs r6, r0 + lsls r6, r6, #1 + adds r0, r5, #0 + adds r1, r7, #0 + mov r2, r8 +_080AE6C8: + adds r3, r4, #0 + bl sub_080AE4CC + orrs r6, r0 + lsls r6, r6, #2 +_080AE6D2: + ldr r0, [sp, #8] + ldrb r0, [r0, #4] + mov sb, r0 + ldr r1, [sp, #8] + ldrb r1, [r1, #5] + mov r8, r1 + ldr r2, [sp, #4] + subs r2, #8 + str r2, [sp, #4] + movs r0, #0xf + ands r0, r2 + cmp r0, #0 + beq _080AE760 + cmp r2, #0xf + bhi _080AE72C + mov r7, sl + add r7, r8 + adds r0, r5, #0 + ldr r1, [sp, #0xc] + adds r2, r7, #0 + adds r3, r4, #0 + bl sub_080AE4CC + orrs r6, r0 + lsls r6, r6, #1 + ldr r1, [sp, #0xc] + add r1, sb + adds r0, r5, #0 + adds r2, r7, #0 + adds r3, r4, #0 + bl sub_080AE4CC + orrs r6, r0 + lsls r6, r6, #1 + ldr r0, [sp, #0xc] + mov r2, sb + subs r1, r0, r2 + adds r0, r5, #0 + adds r2, r7, #0 + adds r3, r4, #0 + bl sub_080AE4CC + orrs r6, r0 + lsls r6, r6, #5 + b _080AE7D6 +_080AE72C: + mov r0, sl + mov r1, r8 + subs r7, r0, r1 + lsls r6, r6, #4 + adds r0, r5, #0 + ldr r1, [sp, #0xc] + adds r2, r7, #0 + adds r3, r4, #0 + bl sub_080AE4CC + orrs r6, r0 + lsls r6, r6, #1 + ldr r1, [sp, #0xc] + add r1, sb + adds r0, r5, #0 + adds r2, r7, #0 + adds r3, r4, #0 + bl sub_080AE4CC + orrs r6, r0 + lsls r6, r6, #1 + ldr r2, [sp, #0xc] + mov r0, sb + subs r1, r2, r0 + adds r0, r5, #0 + b _080AE7CA +_080AE760: + mov r7, sl + add r7, r8 + adds r0, r5, #0 + ldr r1, [sp, #0xc] + adds r2, r7, #0 + adds r3, r4, #0 + bl sub_080AE4CC + orrs r6, r0 + lsls r6, r6, #1 + ldr r1, [sp, #0xc] + add r1, sb + str r1, [sp, #0x14] + adds r0, r5, #0 + adds r2, r7, #0 + adds r3, r4, #0 + bl sub_080AE4CC + orrs r6, r0 + lsls r6, r6, #1 + ldr r2, [sp, #0xc] + mov r0, sb + subs r2, r2, r0 + mov sb, r2 + adds r0, r5, #0 + mov r1, sb + adds r2, r7, #0 + adds r3, r4, #0 + bl sub_080AE4CC + orrs r6, r0 + lsls r6, r6, #2 + mov r1, sl + mov r2, r8 + subs r7, r1, r2 + adds r0, r5, #0 + ldr r1, [sp, #0xc] + adds r2, r7, #0 + adds r3, r4, #0 + bl sub_080AE4CC + orrs r6, r0 + lsls r6, r6, #1 + adds r0, r5, #0 + ldr r1, [sp, #0x14] + adds r2, r7, #0 + adds r3, r4, #0 + bl sub_080AE4CC + orrs r6, r0 + lsls r6, r6, #1 + adds r0, r5, #0 + mov r1, sb +_080AE7CA: + adds r2, r7, #0 + adds r3, r4, #0 + bl sub_080AE4CC + orrs r6, r0 + lsls r6, r6, #1 +_080AE7D6: + ldr r0, [sp] + strh r6, [r0, #0x2a] + add sp, #0x18 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_080AE7E8 +sub_080AE7E8: @ 0x080AE7E8 + push {r4, r5, lr} + ldr r5, _080AE7FC @ =gUnk_08133F48 + lsls r4, r2, #2 + adds r4, r4, r5 + lsls r2, r2, #3 + ldr r4, [r4] + bl _call_via_r4 + pop {r4, r5, pc} + .align 2, 0 +_080AE7FC: .4byte gUnk_08133F48 + + thumb_func_start sub_080AE800 +sub_080AE800: @ 0x080AE800 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + adds r5, r1, #0 + adds r2, r3, #0 + movs r6, #0 + mov r8, r6 + ldrh r1, [r4, #0x2a] + movs r7, #0xe + adds r0, r7, #0 + ands r0, r1 + cmp r0, #0 + beq _080AE89C + cmp r0, #2 + bne _080AE85C + movs r0, #0xe0 + lsls r0, r0, #8 + ands r0, r1 + cmp r0, #0 + bne _080AE8AE + lsls r6, r5, #8 + ldr r0, [r4, #0x2c] + adds r0, r0, r6 + str r0, [r4, #0x2c] + adds r0, r4, #0 + movs r1, #4 + bl sub_080AE58C + ldrh r1, [r4, #0x2a] + adds r0, r7, #0 + ands r0, r1 + cmp r0, #0 + bne _080AE8AE + ldr r0, _080AE858 @ =gUnk_080C9160 + adds r0, #0x80 + movs r1, #0 + ldrsh r0, [r0, r1] + adds r1, r0, #0 + muls r1, r5, r1 + mov r8, r1 + ldr r0, [r4, #0x30] + subs r0, r0, r1 + b _080AE8AC + .align 2, 0 +_080AE858: .4byte gUnk_080C9160 +_080AE85C: + cmp r0, #4 + bne _080AE8AE + movs r0, #0xe0 + lsls r0, r0, #4 + ands r0, r1 + cmp r0, #0 + bne _080AE8AE + lsls r6, r5, #8 + ldr r0, [r4, #0x2c] + subs r0, r0, r6 + str r0, [r4, #0x2c] + adds r0, r4, #0 + movs r1, #0x1c + bl sub_080AE58C + ldrh r1, [r4, #0x2a] + adds r0, r7, #0 + ands r0, r1 + cmp r0, #0 + bne _080AE8AE + ldr r0, _080AE898 @ =gUnk_080C9160 + adds r0, #0x80 + movs r1, #0 + ldrsh r0, [r0, r1] + adds r1, r0, #0 + muls r1, r5, r1 + mov r8, r1 + ldr r0, [r4, #0x30] + subs r0, r0, r1 + b _080AE8AC + .align 2, 0 +_080AE898: .4byte gUnk_080C9160 +_080AE89C: + ldr r0, _080AE8C4 @ =gUnk_080C9160 + adds r0, #0x80 + movs r1, #0 + ldrsh r0, [r0, r1] + adds r6, r0, #0 + muls r6, r5, r6 + ldr r0, [r4, #0x30] + subs r0, r0, r6 +_080AE8AC: + str r0, [r4, #0x30] +_080AE8AE: + ldr r1, _080AE8C8 @ =0x00003333 + adds r0, r6, r1 + ldr r1, _080AE8CC @ =0x00006665 + cmp r0, r1 + bhi _080AE8D0 + ldr r0, _080AE8C8 @ =0x00003333 + add r0, r8 + cmp r0, r1 + bhi _080AE8D0 + movs r0, #0 + b _080AE8D2 + .align 2, 0 +_080AE8C4: .4byte gUnk_080C9160 +_080AE8C8: .4byte 0x00003333 +_080AE8CC: .4byte 0x00006665 +_080AE8D0: + movs r0, #1 +_080AE8D2: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080AE8D8 +sub_080AE8D8: @ 0x080AE8D8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r4, r0, #0 + adds r5, r1, #0 + mov r8, r2 + mov sb, r3 + movs r7, #0 + movs r6, #0 + ldrh r0, [r4, #0x2a] + movs r1, #0xe + ands r1, r0 + mov ip, r1 + movs r2, #0xe0 + lsls r2, r2, #8 + ands r2, r0 + adds r3, r2, #0 + cmp r1, #0 + beq _080AE904 + cmp r2, #0 + bne _080AE99E +_080AE904: + orrs r1, r2 + cmp r1, #0 + bne _080AE928 + ldr r1, _080AE924 @ =gUnk_080C9160 + mov r0, r8 + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r1 + movs r2, #0 + ldrsh r0, [r0, r2] + adds r7, r0, #0 + muls r7, r5, r7 + ldr r0, [r4, #0x30] + subs r0, r0, r7 + str r0, [r4, #0x30] + b _080AE98A + .align 2, 0 +_080AE924: .4byte gUnk_080C9160 +_080AE928: + mov r2, ip + cmp r2, #2 + bne _080AE942 + lsls r7, r5, #8 + ldr r0, [r4, #0x2c] + adds r0, r0, r7 + str r0, [r4, #0x2c] + adds r0, r4, #0 + movs r1, #4 + mov r2, sb + bl sub_080AE58C + b _080AE95C +_080AE942: + movs r0, #0x80 + lsls r0, r0, #7 + cmp r3, r0 + bne _080AE95C + lsls r7, r5, #8 + ldr r0, [r4, #0x30] + subs r0, r0, r7 + str r0, [r4, #0x30] + adds r0, r4, #0 + movs r1, #4 + mov r2, sb + bl sub_080AE58C +_080AE95C: + ldrh r2, [r4, #0x2a] + movs r0, #0xe + ands r0, r2 + cmp r0, #0 + bne _080AE97E + ldr r1, _080AE9B4 @ =gUnk_080C9160 + mov r0, r8 + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + adds r6, r0, #0 + muls r6, r5, r6 + ldr r0, [r4, #0x30] + subs r0, r0, r6 + str r0, [r4, #0x30] +_080AE97E: + movs r0, #0xe0 + lsls r0, r0, #8 + ands r0, r2 + cmp r0, #0 + bne _080AE99E + ldr r1, _080AE9B4 @ =gUnk_080C9160 +_080AE98A: + mov r2, r8 + lsls r0, r2, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + adds r6, r0, #0 + muls r6, r5, r6 + ldr r0, [r4, #0x2c] + adds r0, r0, r6 + str r0, [r4, #0x2c] +_080AE99E: + ldr r2, _080AE9B8 @ =0x00003333 + adds r0, r7, r2 + ldr r1, _080AE9BC @ =0x00006665 + cmp r0, r1 + bhi _080AE9C0 + ldr r2, _080AE9B8 @ =0x00003333 + adds r0, r6, r2 + cmp r0, r1 + bhi _080AE9C0 + movs r0, #0 + b _080AE9C2 + .align 2, 0 +_080AE9B4: .4byte gUnk_080C9160 +_080AE9B8: .4byte 0x00003333 +_080AE9BC: .4byte 0x00006665 +_080AE9C0: + movs r0, #1 +_080AE9C2: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_080AE9CC +sub_080AE9CC: @ 0x080AE9CC + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r4, r0, #0 + adds r5, r1, #0 + adds r7, r2, #0 + movs r6, #0 + mov sb, r6 + ldrh r2, [r4, #0x2a] + movs r0, #0xe0 + lsls r0, r0, #8 + mov r8, r0 + mov r1, r8 + ands r1, r2 + cmp r1, #0 + beq _080AEA7C + movs r0, #0x80 + lsls r0, r0, #6 + cmp r1, r0 + bne _080AEA34 + movs r0, #0xe0 + ands r0, r2 + cmp r0, #0 + bne _080AEA90 + lsls r6, r5, #8 + ldr r0, [r4, #0x30] + adds r0, r0, r6 + str r0, [r4, #0x30] + adds r0, r4, #0 + movs r1, #0xc + adds r2, r3, #0 + bl sub_080AE58C + ldrh r1, [r4, #0x2a] + mov r0, r8 + ands r0, r1 + cmp r0, #0 + bne _080AEA90 + ldr r1, _080AEA30 @ =gUnk_080C9160 + lsls r0, r7, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + adds r1, r0, #0 + muls r1, r5, r1 + mov sb, r1 + ldr r0, [r4, #0x2c] + add r0, sb + b _080AEA8E + .align 2, 0 +_080AEA30: .4byte gUnk_080C9160 +_080AEA34: + movs r0, #0x80 + lsls r0, r0, #7 + cmp r1, r0 + bne _080AEA90 + movs r0, #0xe + ands r0, r2 + cmp r0, #0 + bne _080AEA90 + lsls r6, r5, #8 + ldr r0, [r4, #0x30] + subs r0, r0, r6 + str r0, [r4, #0x30] + adds r0, r4, #0 + movs r1, #4 + adds r2, r3, #0 + bl sub_080AE58C + ldrh r1, [r4, #0x2a] + mov r0, r8 + ands r0, r1 + cmp r0, #0 + bne _080AEA90 + ldr r1, _080AEA78 @ =gUnk_080C9160 + lsls r0, r7, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + adds r1, r0, #0 + muls r1, r5, r1 + mov sb, r1 + ldr r0, [r4, #0x2c] + add r0, sb + b _080AEA8E + .align 2, 0 +_080AEA78: .4byte gUnk_080C9160 +_080AEA7C: + ldr r1, _080AEAA8 @ =gUnk_080C9160 + lsls r0, r7, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + adds r6, r0, #0 + muls r6, r5, r6 + ldr r0, [r4, #0x2c] + adds r0, r0, r6 +_080AEA8E: + str r0, [r4, #0x2c] +_080AEA90: + ldr r1, _080AEAAC @ =0x00003333 + adds r0, r6, r1 + ldr r1, _080AEAB0 @ =0x00006665 + cmp r0, r1 + bhi _080AEAB4 + ldr r0, _080AEAAC @ =0x00003333 + add r0, sb + cmp r0, r1 + bhi _080AEAB4 + movs r0, #0 + b _080AEAB6 + .align 2, 0 +_080AEAA8: .4byte gUnk_080C9160 +_080AEAAC: .4byte 0x00003333 +_080AEAB0: .4byte 0x00006665 +_080AEAB4: + movs r0, #1 +_080AEAB6: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_080AEAC0 +sub_080AEAC0: @ 0x080AEAC0 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r4, r0, #0 + adds r5, r1, #0 + mov r8, r2 + mov sb, r3 + movs r7, #0 + movs r6, #0 + ldrh r0, [r4, #0x2a] + movs r1, #0xe0 + ands r1, r0 + mov ip, r1 + movs r2, #0xe0 + lsls r2, r2, #8 + ands r2, r0 + adds r3, r2, #0 + cmp r1, #0 + beq _080AEAEC + cmp r2, #0 + bne _080AEB86 +_080AEAEC: + orrs r1, r2 + cmp r1, #0 + bne _080AEB10 + ldr r1, _080AEB0C @ =gUnk_080C9160 + mov r0, r8 + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r1 + movs r2, #0 + ldrsh r0, [r0, r2] + adds r7, r0, #0 + muls r7, r5, r7 + ldr r0, [r4, #0x30] + subs r0, r0, r7 + str r0, [r4, #0x30] + b _080AEB72 + .align 2, 0 +_080AEB0C: .4byte gUnk_080C9160 +_080AEB10: + mov r2, ip + cmp r2, #0x20 + bne _080AEB2A + lsls r7, r5, #8 + ldr r0, [r4, #0x2c] + adds r0, r0, r7 + str r0, [r4, #0x2c] + adds r0, r4, #0 + movs r1, #0xc + mov r2, sb + bl sub_080AE58C + b _080AEB44 +_080AEB2A: + movs r0, #0x80 + lsls r0, r0, #6 + cmp r3, r0 + bne _080AEB44 + lsls r7, r5, #8 + ldr r0, [r4, #0x30] + adds r0, r0, r7 + str r0, [r4, #0x30] + adds r0, r4, #0 + movs r1, #0xc + mov r2, sb + bl sub_080AE58C +_080AEB44: + ldrh r2, [r4, #0x2a] + movs r0, #0xe0 + ands r0, r2 + cmp r0, #0 + bne _080AEB66 + ldr r1, _080AEB9C @ =gUnk_080C9160 + mov r0, r8 + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + adds r6, r0, #0 + muls r6, r5, r6 + ldr r0, [r4, #0x30] + subs r0, r0, r6 + str r0, [r4, #0x30] +_080AEB66: + movs r0, #0xe0 + lsls r0, r0, #8 + ands r0, r2 + cmp r0, #0 + bne _080AEB86 + ldr r1, _080AEB9C @ =gUnk_080C9160 +_080AEB72: + mov r2, r8 + lsls r0, r2, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + adds r6, r0, #0 + muls r6, r5, r6 + ldr r0, [r4, #0x2c] + adds r0, r0, r6 + str r0, [r4, #0x2c] +_080AEB86: + ldr r2, _080AEBA0 @ =0x00003333 + adds r0, r7, r2 + ldr r1, _080AEBA4 @ =0x00006665 + cmp r0, r1 + bhi _080AEBA8 + ldr r2, _080AEBA0 @ =0x00003333 + adds r0, r6, r2 + cmp r0, r1 + bhi _080AEBA8 + movs r0, #0 + b _080AEBAA + .align 2, 0 +_080AEB9C: .4byte gUnk_080C9160 +_080AEBA0: .4byte 0x00003333 +_080AEBA4: .4byte 0x00006665 +_080AEBA8: + movs r0, #1 +_080AEBAA: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_080AEBB4 +sub_080AEBB4: @ 0x080AEBB4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r4, r0, #0 + adds r5, r1, #0 + adds r7, r2, #0 + adds r2, r3, #0 + movs r6, #0 + mov sb, r6 + ldrh r1, [r4, #0x2a] + movs r0, #0xe0 + mov r8, r0 + ands r0, r1 + cmp r0, #0 + beq _080AEC64 + cmp r0, #0x20 + bne _080AEC1C + movs r0, #0xe0 + lsls r0, r0, #8 + ands r0, r1 + cmp r0, #0 + bne _080AEC7C + lsls r6, r5, #8 + ldr r0, [r4, #0x2c] + adds r0, r0, r6 + str r0, [r4, #0x2c] + adds r0, r4, #0 + movs r1, #0xc + bl sub_080AE58C + ldrh r1, [r4, #0x2a] + mov r0, r8 + ands r0, r1 + cmp r0, #0 + bne _080AEC7C + ldr r1, _080AEC18 @ =gUnk_080C9160 + adds r0, r7, #0 + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + adds r1, r0, #0 + muls r1, r5, r1 + mov sb, r1 + ldr r0, [r4, #0x30] + subs r0, r0, r1 + b _080AEC7A + .align 2, 0 +_080AEC18: .4byte gUnk_080C9160 +_080AEC1C: + cmp r0, #0x40 + bne _080AEC7C + movs r0, #0xe0 + lsls r0, r0, #4 + ands r0, r1 + cmp r0, #0 + bne _080AEC7C + lsls r6, r5, #8 + ldr r0, [r4, #0x2c] + subs r0, r0, r6 + str r0, [r4, #0x2c] + adds r0, r4, #0 + movs r1, #0x14 + bl sub_080AE58C + ldrh r1, [r4, #0x2a] + mov r0, r8 + ands r0, r1 + cmp r0, #0 + bne _080AEC7C + ldr r1, _080AEC60 @ =gUnk_080C9160 + adds r0, r7, #0 + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + adds r1, r0, #0 + muls r1, r5, r1 + mov sb, r1 + ldr r0, [r4, #0x30] + subs r0, r0, r1 + b _080AEC7A + .align 2, 0 +_080AEC60: .4byte gUnk_080C9160 +_080AEC64: + ldr r1, _080AEC94 @ =gUnk_080C9160 + adds r0, r7, #0 + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + adds r6, r0, #0 + muls r6, r5, r6 + ldr r0, [r4, #0x30] + subs r0, r0, r6 +_080AEC7A: + str r0, [r4, #0x30] +_080AEC7C: + ldr r1, _080AEC98 @ =0x00003333 + adds r0, r6, r1 + ldr r1, _080AEC9C @ =0x00006665 + cmp r0, r1 + bhi _080AECA0 + ldr r0, _080AEC98 @ =0x00003333 + add r0, sb + cmp r0, r1 + bhi _080AECA0 + movs r0, #0 + b _080AECA2 + .align 2, 0 +_080AEC94: .4byte gUnk_080C9160 +_080AEC98: .4byte 0x00003333 +_080AEC9C: .4byte 0x00006665 +_080AECA0: + movs r0, #1 +_080AECA2: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_080AECAC +sub_080AECAC: @ 0x080AECAC + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r4, r0, #0 + adds r5, r1, #0 + mov r8, r2 + mov sb, r3 + movs r7, #0 + movs r6, #0 + ldrh r0, [r4, #0x2a] + movs r1, #0xe0 + ands r1, r0 + mov ip, r1 + movs r2, #0xe0 + lsls r2, r2, #4 + ands r2, r0 + adds r3, r2, #0 + cmp r1, #0 + beq _080AECD8 + cmp r2, #0 + bne _080AED72 +_080AECD8: + orrs r1, r2 + cmp r1, #0 + bne _080AECFC + ldr r1, _080AECF8 @ =gUnk_080C9160 + mov r0, r8 + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r1 + movs r2, #0 + ldrsh r0, [r0, r2] + adds r7, r0, #0 + muls r7, r5, r7 + ldr r0, [r4, #0x30] + subs r0, r0, r7 + str r0, [r4, #0x30] + b _080AED5E + .align 2, 0 +_080AECF8: .4byte gUnk_080C9160 +_080AECFC: + mov r2, ip + cmp r2, #0x40 + bne _080AED16 + lsls r7, r5, #8 + ldr r0, [r4, #0x2c] + subs r0, r0, r7 + str r0, [r4, #0x2c] + adds r0, r4, #0 + movs r1, #0x14 + mov r2, sb + bl sub_080AE58C + b _080AED30 +_080AED16: + movs r0, #0x80 + lsls r0, r0, #2 + cmp r3, r0 + bne _080AED30 + lsls r7, r5, #8 + ldr r0, [r4, #0x30] + adds r0, r0, r7 + str r0, [r4, #0x30] + adds r0, r4, #0 + movs r1, #0x14 + mov r2, sb + bl sub_080AE58C +_080AED30: + ldrh r2, [r4, #0x2a] + movs r0, #0xe0 + ands r0, r2 + cmp r0, #0 + bne _080AED52 + ldr r1, _080AED88 @ =gUnk_080C9160 + mov r0, r8 + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + adds r6, r0, #0 + muls r6, r5, r6 + ldr r0, [r4, #0x30] + subs r0, r0, r6 + str r0, [r4, #0x30] +_080AED52: + movs r0, #0xe0 + lsls r0, r0, #4 + ands r0, r2 + cmp r0, #0 + bne _080AED72 + ldr r1, _080AED88 @ =gUnk_080C9160 +_080AED5E: + mov r2, r8 + lsls r0, r2, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + adds r6, r0, #0 + muls r6, r5, r6 + ldr r0, [r4, #0x2c] + adds r0, r0, r6 + str r0, [r4, #0x2c] +_080AED72: + ldr r2, _080AED8C @ =0x00003333 + adds r0, r7, r2 + ldr r1, _080AED90 @ =0x00006665 + cmp r0, r1 + bhi _080AED94 + ldr r2, _080AED8C @ =0x00003333 + adds r0, r6, r2 + cmp r0, r1 + bhi _080AED94 + movs r0, #0 + b _080AED96 + .align 2, 0 +_080AED88: .4byte gUnk_080C9160 +_080AED8C: .4byte 0x00003333 +_080AED90: .4byte 0x00006665 +_080AED94: + movs r0, #1 +_080AED96: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_080AEDA0 +sub_080AEDA0: @ 0x080AEDA0 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r4, r0, #0 + adds r5, r1, #0 + adds r7, r2, #0 + movs r6, #0 + mov sb, r6 + ldrh r2, [r4, #0x2a] + movs r0, #0xe0 + lsls r0, r0, #4 + mov r8, r0 + mov r1, r8 + ands r1, r2 + cmp r1, #0 + beq _080AEE50 + movs r0, #0x80 + lsls r0, r0, #2 + cmp r1, r0 + bne _080AEE08 + movs r0, #0xe0 + ands r0, r2 + cmp r0, #0 + bne _080AEE64 + lsls r6, r5, #8 + ldr r0, [r4, #0x30] + adds r0, r0, r6 + str r0, [r4, #0x30] + adds r0, r4, #0 + movs r1, #0x1c + adds r2, r3, #0 + bl sub_080AE58C + ldrh r1, [r4, #0x2a] + mov r0, r8 + ands r0, r1 + cmp r0, #0 + bne _080AEE64 + ldr r1, _080AEE04 @ =gUnk_080C9160 + lsls r0, r7, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + adds r1, r0, #0 + muls r1, r5, r1 + mov sb, r1 + ldr r0, [r4, #0x2c] + add r0, sb + b _080AEE62 + .align 2, 0 +_080AEE04: .4byte gUnk_080C9160 +_080AEE08: + movs r0, #0x80 + lsls r0, r0, #3 + cmp r1, r0 + bne _080AEE64 + movs r0, #0xe + ands r0, r2 + cmp r0, #0 + bne _080AEE64 + lsls r6, r5, #8 + ldr r0, [r4, #0x30] + subs r0, r0, r6 + str r0, [r4, #0x30] + adds r0, r4, #0 + movs r1, #0x1c + adds r2, r3, #0 + bl sub_080AE58C + ldrh r1, [r4, #0x2a] + mov r0, r8 + ands r0, r1 + cmp r0, #0 + bne _080AEE64 + ldr r1, _080AEE4C @ =gUnk_080C9160 + lsls r0, r7, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + adds r1, r0, #0 + muls r1, r5, r1 + mov sb, r1 + ldr r0, [r4, #0x2c] + add r0, sb + b _080AEE62 + .align 2, 0 +_080AEE4C: .4byte gUnk_080C9160 +_080AEE50: + ldr r1, _080AEE7C @ =gUnk_080C9160 + lsls r0, r7, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + adds r6, r0, #0 + muls r6, r5, r6 + ldr r0, [r4, #0x2c] + adds r0, r0, r6 +_080AEE62: + str r0, [r4, #0x2c] +_080AEE64: + ldr r1, _080AEE80 @ =0x00003333 + adds r0, r6, r1 + ldr r1, _080AEE84 @ =0x00006665 + cmp r0, r1 + bhi _080AEE88 + ldr r0, _080AEE80 @ =0x00003333 + add r0, sb + cmp r0, r1 + bhi _080AEE88 + movs r0, #0 + b _080AEE8A + .align 2, 0 +_080AEE7C: .4byte gUnk_080C9160 +_080AEE80: .4byte 0x00003333 +_080AEE84: .4byte 0x00006665 +_080AEE88: + movs r0, #1 +_080AEE8A: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_080AEE94 +sub_080AEE94: @ 0x080AEE94 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r4, r0, #0 + adds r5, r1, #0 + mov r8, r2 + mov sb, r3 + movs r7, #0 + movs r6, #0 + ldrh r0, [r4, #0x2a] + movs r1, #0xe + ands r1, r0 + mov ip, r1 + movs r2, #0xe0 + lsls r2, r2, #4 + ands r2, r0 + adds r3, r2, #0 + cmp r1, #0 + beq _080AEEC0 + cmp r2, #0 + bne _080AEF5A +_080AEEC0: + orrs r1, r2 + cmp r1, #0 + bne _080AEEE4 + ldr r1, _080AEEE0 @ =gUnk_080C9160 + mov r0, r8 + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r1 + movs r2, #0 + ldrsh r0, [r0, r2] + adds r7, r0, #0 + muls r7, r5, r7 + ldr r0, [r4, #0x30] + subs r0, r0, r7 + str r0, [r4, #0x30] + b _080AEF46 + .align 2, 0 +_080AEEE0: .4byte gUnk_080C9160 +_080AEEE4: + mov r2, ip + cmp r2, #4 + bne _080AEEFE + lsls r7, r5, #8 + ldr r0, [r4, #0x2c] + subs r0, r0, r7 + str r0, [r4, #0x2c] + adds r0, r4, #0 + movs r1, #0x1c + mov r2, sb + bl sub_080AE58C + b _080AEF18 +_080AEEFE: + movs r0, #0x80 + lsls r0, r0, #3 + cmp r3, r0 + bne _080AEF18 + lsls r7, r5, #8 + ldr r0, [r4, #0x30] + subs r0, r0, r7 + str r0, [r4, #0x30] + adds r0, r4, #0 + movs r1, #0x1c + mov r2, sb + bl sub_080AE58C +_080AEF18: + ldrh r2, [r4, #0x2a] + movs r0, #0xe + ands r0, r2 + cmp r0, #0 + bne _080AEF3A + ldr r1, _080AEF70 @ =gUnk_080C9160 + mov r0, r8 + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + adds r6, r0, #0 + muls r6, r5, r6 + ldr r0, [r4, #0x30] + subs r0, r0, r6 + str r0, [r4, #0x30] +_080AEF3A: + movs r0, #0xe0 + lsls r0, r0, #4 + ands r0, r2 + cmp r0, #0 + bne _080AEF5A + ldr r1, _080AEF70 @ =gUnk_080C9160 +_080AEF46: + mov r2, r8 + lsls r0, r2, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + adds r6, r0, #0 + muls r6, r5, r6 + ldr r0, [r4, #0x2c] + adds r0, r0, r6 + str r0, [r4, #0x2c] +_080AEF5A: + ldr r2, _080AEF74 @ =0x00003333 + adds r0, r7, r2 + ldr r1, _080AEF78 @ =0x00006665 + cmp r0, r1 + bhi _080AEF7C + ldr r2, _080AEF74 @ =0x00003333 + adds r0, r6, r2 + cmp r0, r1 + bhi _080AEF7C + movs r0, #0 + b _080AEF7E + .align 2, 0 +_080AEF70: .4byte gUnk_080C9160 +_080AEF74: .4byte 0x00003333 +_080AEF78: .4byte 0x00006665 +_080AEF7C: + movs r0, #1 +_080AEF7E: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_080AEF88 +sub_080AEF88: @ 0x080AEF88 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x15] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080AEFB0 + ldrb r1, [r4, #0x15] + adds r0, r4, #0 + movs r2, #0 + bl sub_080AE58C + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + movs r3, #0 + bl sub_080AE7E8 + b _080AEFB2 +_080AEFB0: + movs r0, #0 +_080AEFB2: + pop {r4, pc} + + thumb_func_start sub_080AEFB4 +sub_080AEFB4: @ 0x080AEFB4 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x15] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080AEFDC + ldrb r1, [r4, #0x15] + adds r0, r4, #0 + movs r2, #1 + bl sub_080AE58C + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + movs r3, #1 + bl sub_080AE7E8 + b _080AEFDE +_080AEFDC: + movs r0, #0 +_080AEFDE: + pop {r4, pc} + + thumb_func_start sub_080AEFE0 +sub_080AEFE0: @ 0x080AEFE0 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x15] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080AF008 + ldrb r1, [r4, #0x15] + adds r0, r4, #0 + movs r2, #2 + bl sub_080AE58C + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + movs r3, #2 + bl sub_080AE7E8 + b _080AF00A +_080AF008: + movs r0, #0 +_080AF00A: + pop {r4, pc} + + thumb_func_start sub_080AF00C +sub_080AF00C: @ 0x080AF00C + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x15] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080AF034 + ldrb r1, [r4, #0x15] + adds r0, r4, #0 + movs r2, #0xa + bl sub_080AE58C + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + movs r3, #0xa + bl sub_080AE7E8 + b _080AF036 +_080AF034: + movs r0, #0 +_080AF036: + pop {r4, pc} + + thumb_func_start sub_080AF038 +sub_080AF038: @ 0x080AF038 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x15] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080AF060 + ldrb r1, [r4, #0x15] + adds r0, r4, #0 + movs r2, #0xc + bl sub_080AE58C + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + movs r3, #0xc + bl sub_080AE7E8 + b _080AF062 +_080AF060: + movs r0, #0 +_080AF062: + pop {r4, pc} + + thumb_func_start sub_080AF064 +sub_080AF064: @ 0x080AF064 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r6, r2, #0 + movs r0, #0x80 + ands r0, r4 + cmp r0, #0 + bne _080AF08A + adds r0, r5, #0 + movs r2, #0 + bl sub_080AE58C + adds r0, r5, #0 + adds r1, r6, #0 + adds r2, r4, #0 + movs r3, #0 + bl sub_080AE7E8 + b _080AF08C +_080AF08A: + movs r0, #0 +_080AF08C: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080AF090 +sub_080AF090: @ 0x080AF090 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x15] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080AF0C2 + adds r0, r4, #0 + bl sub_080AF0C8 + cmp r0, #0 + bne _080AF0C2 + ldrb r1, [r4, #0x15] + adds r0, r4, #0 + movs r2, #3 + bl sub_080AE58C + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + movs r3, #3 + bl sub_080AE7E8 + b _080AF0C4 +_080AF0C2: + movs r0, #0 +_080AF0C4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080AF0C8 +sub_080AF0C8: @ 0x080AF0C8 + push {r4, lr} + adds r4, r0, #0 + bl sub_080002A0 + cmp r0, #0x88 + beq _080AF10A + cmp r0, #0x88 + bhi _080AF0DE + cmp r0, #0x87 + beq _080AF0E8 + b _080AF130 +_080AF0DE: + cmp r0, #0x89 + beq _080AF11A + cmp r0, #0x8a + beq _080AF0F8 + b _080AF130 +_080AF0E8: + ldrb r0, [r4, #0x15] + adds r0, #7 + movs r1, #0x1f + ands r0, r1 + cmp r0, #0xf + bgt _080AF130 + movs r0, #0xe + b _080AF12A +_080AF0F8: + ldrb r0, [r4, #0x15] + subs r0, #1 + movs r1, #0x1f + ands r0, r1 + cmp r0, #0xf + bgt _080AF130 + movs r0, #0xe0 + lsls r0, r0, #8 + b _080AF12A +_080AF10A: + ldrb r0, [r4, #0x15] + subs r0, #9 + movs r1, #0x1f + ands r0, r1 + cmp r0, #0xf + bgt _080AF130 + movs r0, #0xe0 + b _080AF12A +_080AF11A: + ldrb r0, [r4, #0x15] + subs r0, #0x11 + movs r1, #0x1f + ands r0, r1 + cmp r0, #0xf + bgt _080AF130 + movs r0, #0xe0 + lsls r0, r0, #4 +_080AF12A: + strh r0, [r4, #0x2a] + movs r0, #1 + b _080AF132 +_080AF130: + movs r0, #0 +_080AF132: + pop {r4, pc} + + thumb_func_start sub_080AF134 +sub_080AF134: @ 0x080AF134 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x15] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080AF15C + ldrb r1, [r4, #0x15] + adds r0, r4, #0 + movs r2, #4 + bl sub_080AE58C + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + movs r3, #4 + bl sub_080AE7E8 + b _080AF15E +_080AF15C: + movs r0, #0 +_080AF15E: + pop {r4, pc} + + thumb_func_start sub_080AF160 +sub_080AF160: @ 0x080AF160 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x15] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080AF188 + ldrb r1, [r4, #0x15] + adds r0, r4, #0 + movs r2, #5 + bl sub_080AE58C + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + movs r3, #5 + bl sub_080AE7E8 + b _080AF18A +_080AF188: + movs r0, #0 +_080AF18A: + pop {r4, pc} + + thumb_func_start sub_080AF18C +sub_080AF18C: @ 0x080AF18C + push {r4, r5, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x42 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + adds r5, r4, #0 + adds r5, #0x3e + ldrb r1, [r5] + adds r0, r4, #0 + movs r2, #2 + bl sub_080AE58C + adds r0, r4, #0 + adds r0, #0x46 + ldrh r1, [r0] + ldrb r2, [r5] + adds r0, r4, #0 + movs r3, #2 + bl sub_080AE7E8 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080AF1BC +sub_080AF1BC: @ 0x080AF1BC + push {r4, r5, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x42 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + adds r5, r4, #0 + adds r5, #0x3e + ldrb r1, [r5] + adds r0, r4, #0 + movs r2, #1 + bl sub_080AE58C + adds r0, r4, #0 + adds r0, #0x46 + ldrh r1, [r0] + ldrb r2, [r5] + adds r0, r4, #0 + movs r3, #1 + bl sub_080AE7E8 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080AF1EC +sub_080AF1EC: @ 0x080AF1EC + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x15] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080AF214 + ldrb r1, [r4, #0x15] + adds r0, r4, #0 + movs r2, #6 + bl sub_080AE58C + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + movs r3, #6 + bl sub_080AE7E8 + b _080AF216 +_080AF214: + movs r0, #0 +_080AF216: + pop {r4, pc} + + thumb_func_start sub_080AF218 +sub_080AF218: @ 0x080AF218 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r6, r2, #0 + movs r0, #0x80 + ands r0, r4 + cmp r0, #0 + bne _080AF23E + adds r0, r5, #0 + movs r2, #6 + bl sub_080AE58C + adds r0, r5, #0 + adds r1, r6, #0 + adds r2, r4, #0 + movs r3, #6 + bl sub_080AE7E8 + b _080AF240 +_080AF23E: + movs r0, #0 +_080AF240: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080AF244 +sub_080AF244: @ 0x080AF244 + push {lr} + movs r3, #2 + bl sub_080AE7E8 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080AF250 +sub_080AF250: @ 0x080AF250 + push {r4, lr} + adds r4, r0, #0 + bl sub_08052E8C + adds r1, r0, #0 + ldr r0, _080AF26C @ =gUnk_02033A90 + ldr r2, _080AF270 @ =0x0000085C + adds r0, r0, r2 + str r1, [r0] + cmp r4, #0 + beq _080AF278 + ldr r0, _080AF274 @ =gUnk_08135190 + b _080AF27A + .align 2, 0 +_080AF26C: .4byte gUnk_02033A90 +_080AF270: .4byte 0x0000085C +_080AF274: .4byte gUnk_08135190 +_080AF278: + ldr r0, _080AF280 @ =gUnk_08135168 +_080AF27A: + str r0, [r1, #0x18] + pop {r4, pc} + .align 2, 0 +_080AF280: .4byte gUnk_08135168 + + thumb_func_start sub_080AF284 +sub_080AF284: @ 0x080AF284 + push {lr} + ldr r0, _080AF2AC @ =gUnk_03000BF0 + ldrh r1, [r0, #0x20] + subs r1, #0x50 + movs r0, #0x78 + movs r2, #0x78 + movs r3, #0x50 + bl sub_0800293E + cmp r0, #0 + beq _080AF2BC + bl sub_08052E8C + ldr r1, _080AF2B0 @ =gUnk_02033A90 + ldr r2, _080AF2B4 @ =0x0000085C + adds r1, r1, r2 + str r0, [r1] + ldr r1, _080AF2B8 @ =gUnk_08135048 + b _080AF2D4 + .align 2, 0 +_080AF2AC: .4byte gUnk_03000BF0 +_080AF2B0: .4byte gUnk_02033A90 +_080AF2B4: .4byte 0x0000085C +_080AF2B8: .4byte gUnk_08135048 +_080AF2BC: + movs r0, #6 + bl sub_0807CA84 + cmp r0, #0 + beq _080AF2D6 + bl sub_08052E8C + ldr r1, _080AF2D8 @ =gUnk_02033A90 + ldr r2, _080AF2DC @ =0x0000085C + adds r1, r1, r2 + str r0, [r1] + ldr r1, _080AF2E0 @ =gUnk_08134FBC +_080AF2D4: + str r1, [r0, #0x18] +_080AF2D6: + pop {pc} + .align 2, 0 +_080AF2D8: .4byte gUnk_02033A90 +_080AF2DC: .4byte 0x0000085C +_080AF2E0: .4byte gUnk_08134FBC + + thumb_func_start sub_080AF2E4 +sub_080AF2E4: @ 0x080AF2E4 + push {lr} + movs r0, #6 + bl sub_0807CA84 + cmp r0, #0 + beq _080AF300 + bl sub_08052E8C + ldr r1, _080AF304 @ =gUnk_02033A90 + ldr r2, _080AF308 @ =0x0000085C + adds r1, r1, r2 + str r0, [r1] + ldr r1, _080AF30C @ =gUnk_0813A76C + str r1, [r0, #0x18] +_080AF300: + pop {pc} + .align 2, 0 +_080AF304: .4byte gUnk_02033A90 +_080AF308: .4byte 0x0000085C +_080AF30C: .4byte gUnk_0813A76C diff --git a/asm/code_08000108.s b/asm/code_08000108.s new file mode 100644 index 00000000..d604d6a7 --- /dev/null +++ b/asm/code_08000108.s @@ -0,0 +1,325 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_08000108 +sub_08000108: @ 0x08000108 + push {r4, lr} + ldr r0, _080001E8 @ =gUnk_02000070 + ldrb r1, [r0] + lsls r1, r1, #2 + beq _08000136 + add r4, pc, #0x20 + ldr r4, [r4, r1] + ldr r0, _080001EC @ =gUnk_02025EB0 + ldr r0, [r0] + cmp r0, #0 + beq _08000126 + ldr r0, _080001F0 @ =gUnk_02019EE0 + ldr r1, _080001F4 @ =gUnk_02021F70 + bl _call_via_r4 +_08000126: + ldr r0, _080001F8 @ =gUnk_0200B650 + ldr r0, [r0] + cmp r0, #0 + beq _08000136 + ldr r0, _080001FC @ =gUnk_02002F00 + ldr r1, _08000200 @ =gUnk_020344F0 + bl _call_via_r4 +_08000136: + pop {r4, pc} +_08000138: +_08000138: .4byte gUnk_030056F1 +_0800013C: .4byte 0x0807D281 +_08000140: .4byte 0x0807D46D +_08000144: .4byte 0x0807D6D9 + + thumb_func_start sub_08000148 +sub_08000148: @ 0x08000148 + lsls r2, r2, #2 + ldr r3, _08000204 @ =0x08000248 + ldr r2, [r3, r2] + strb r0, [r2, r1] + bx lr + + non_word_aligned_thumb_func_start sub_08000152 +sub_08000152: @ 0x08000152 + lsls r2, r2, #2 + add r3, pc, #0x68 + ldr r3, [r3, r2] + lsls r0, r0, #1 + ldrh r0, [r3, r0] + lsrs r2, r2, #2 + + non_word_aligned_thumb_func_start sub_0800015E +sub_0800015E: @ 0x0800015E + push {r4, r5, r6, r7, lr} + lsls r3, r2, #3 + ldr r4, _08000208 @ =0x08000228 + ldr r5, [r4, r3] + lsls r6, r1, #1 + ldrh r7, [r5, r6] + strh r0, [r5, r6] + ldr r6, _0800020C @ =0x00004000 + cmp r0, r6 + blo _0800019A + push {r1, r2} + subs r4, r0, r6 + ldr r3, _08000210 @ =gUnk_080B7910 + ldrb r0, [r3, r4] + bl sub_080001D0 + ldr r3, _08000214 @ =gUnk_080B79A7 + ldrb r0, [r3, r4] + lsrs r2, r2, #2 + bl sub_08000148 + pop {r0, r1} + push {r0, r1} + bl sub_0801AF8C + adds r0, r7, #0 + pop {r1, r2} + bl sub_0801AF48 + pop {r4, r5, r6, r7, pc} +_0800019A: + adds r3, #4 + ldr r4, [r4, r3] + lsls r0, r0, #1 + ldrh r4, [r4, r0] + push {r1, r2} + ldr r3, _08000218 @ =gUnk_080B37A0 + ldrb r0, [r3, r4] + bl sub_080001D0 + ldr r3, _0800021C @ =gUnk_080B3E80 + ldrb r0, [r3, r4] + lsrs r2, r2, #2 + bl sub_08000148 + pop {r0, r1} + bl sub_0801AF8C + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080001C0: .4byte gUnk_0202BEB4 +_080001C4: .4byte gUnk_0202BEB4 +_080001C8: .4byte gUnk_02011654 +_080001CC: .4byte gUnk_0202BEB4 + + thumb_func_start sub_080001D0 +sub_080001D0: @ 0x080001D0 + lsls r2, r2, #2 + ldr r3, _08000220 @ =0x08000278 + ldr r3, [r3, r2] + strb r0, [r3, r1] + bx lr + + non_word_aligned_thumb_func_start sub_080001DA +sub_080001DA: @ 0x080001DA + lsls r1, r1, #3 + ldr r2, _08000224 @ =0x08000228 + ldr r1, [r2, r1] + lsls r0, r0, #1 + ldrh r0, [r1, r0] + bx lr + .align 2, 0 +_080001E8: .4byte gUnk_02000070 +_080001EC: .4byte gUnk_02025EB0 +_080001F0: .4byte gUnk_02019EE0 +_080001F4: .4byte gUnk_02021F70 +_080001F8: .4byte gUnk_0200B650 +_080001FC: .4byte gUnk_02002F00 +_08000200: .4byte gUnk_020344F0 +_08000204: .4byte 0x08000248 +_08000208: .4byte 0x08000228 +_0800020C: .4byte 0x00004000 +_08000210: .4byte gUnk_080B7910 +_08000214: .4byte gUnk_080B79A7 +_08000218: .4byte gUnk_080B37A0 +_0800021C: .4byte gUnk_080B3E80 +_08000220: .4byte 0x08000278 +_08000224: .4byte 0x08000228 +_08000228: .4byte gUnk_02025EB4 +_0800022C: .4byte gUnk_0202AEB4 +_08000230: .4byte gUnk_02025EB4 +_08000234: .4byte gUnk_0202AEB4 +_08000238: .4byte gUnk_0200B654 +_0800023C: .4byte gUnk_02010654 +_08000240: .4byte gUnk_02025EB4 +_08000244: .4byte gUnk_0202AEB4 +_08000248: .4byte gUnk_02027EB4 +_0800024C: .4byte gUnk_02027EB4 +_08000250: .4byte gUnk_0200D654 +_08000254: .4byte gUnk_02027EB4 +_08000258: .4byte gUnk_02028EB4 +_0800025C: .4byte gUnk_0202AEB4 +_08000260: .4byte gUnk_02028EB4 +_08000264: .4byte gUnk_0202AEB4 +_08000268: .4byte gUnk_0200E654 +_0800026C: .4byte gUnk_02010654 +_08000270: .4byte gUnk_02028EB4 +_08000274: .4byte gUnk_0202AEB4 +_08000278: .4byte gUnk_02030EB4 +_0800027C: .4byte gUnk_02030EB4 +_08000280: .4byte gUnk_02016654 +_08000284: .4byte gUnk_02030EB4 + + thumb_func_start sub_08000288 +sub_08000288: @ 0x08000288 + ldr r3, _080002F4 @ =gUnk_03005740 + bx r3 + + thumb_func_start sub_0800028C +sub_0800028C: @ 0x0800028C + ldr r3, _080002F8 @ =gUnk_0300574C + bx r3 + + thumb_func_start sub_08000290 +sub_08000290: @ 0x08000290 + ldr r3, _080002FC @ =gUnk_03005760 + bx r3 + + thumb_func_start sub_08000294 +sub_08000294: @ 0x08000294 + ldr r3, _08000300 @ =gUnk_03005770 + bx r3 + + thumb_func_start sub_08000298 +sub_08000298: @ 0x08000298 + ldr r3, _08000304 @ =gUnk_03005778 + bx r3 + + thumb_func_start sub_0800029C +sub_0800029C: @ 0x0800029C + ldr r3, _08000308 @ =gUnk_03005780 + bx r3 + + thumb_func_start sub_080002A0 +sub_080002A0: @ 0x080002A0 + ldr r3, _0800030C @ =gUnk_0300579C + bx r3 + + thumb_func_start sub_080002A4 +sub_080002A4: @ 0x080002A4 + ldr r3, _08000310 @ =gUnk_030057A8 + bx r3 + + thumb_func_start sub_080002A8 +sub_080002A8: @ 0x080002A8 + ldr r3, _08000314 @ =gUnk_030057BC + bx r3 + + thumb_func_start sub_080002AC +sub_080002AC: @ 0x080002AC + ldr r3, _08000318 @ =gUnk_030057CC + bx r3 + + thumb_func_start sub_080002B0 +sub_080002B0: @ 0x080002B0 + ldr r3, _0800031C @ =gUnk_030057D4 + bx r3 + + thumb_func_start sub_080002B4 +sub_080002B4: @ 0x080002B4 + ldr r3, _08000320 @ =gUnk_03005800 + bx r3 + + thumb_func_start sub_080002B8 +sub_080002B8: @ 0x080002B8 + ldr r3, _08000324 @ =gUnk_0300581C + bx r3 + + thumb_func_start sub_080002BC +sub_080002BC: @ 0x080002BC + ldr r3, _08000328 @ =gUnk_03005828 + bx r3 + + thumb_func_start sub_080002C0 +sub_080002C0: @ 0x080002C0 + ldr r3, _0800032C @ =gUnk_0300583C + bx r3 + + thumb_func_start sub_080002C4 +sub_080002C4: @ 0x080002C4 + ldr r3, _08000330 @ =gUnk_0300584C + bx r3 + + thumb_func_start sub_080002C8 +sub_080002C8: @ 0x080002C8 + ldr r3, _08000334 @ =gUnk_03005854 + bx r3 + + thumb_func_start sub_080002CC +sub_080002CC: @ 0x080002CC + ldr r3, _08000338 @ =gUnk_03005864 + bx r3 + + thumb_func_start sub_080002D0 +sub_080002D0: @ 0x080002D0 + ldr r3, _0800033C @ =gUnk_03005880 + bx r3 + + thumb_func_start sub_080002D4 +sub_080002D4: @ 0x080002D4 + ldr r3, _08000340 @ =gUnk_0300588C + bx r3 + + thumb_func_start sub_080002D8 +sub_080002D8: @ 0x080002D8 + ldr r3, _08000344 @ =gUnk_030058A0 + bx r3 + + thumb_func_start sub_080002DC +sub_080002DC: @ 0x080002DC + ldr r3, _08000348 @ =gUnk_030058B0 + bx r3 + + thumb_func_start sub_080002E0 +sub_080002E0: @ 0x080002E0 + ldr r3, _0800034C @ =gUnk_030058B8 + bx r3 + + thumb_func_start sub_080002E4 +sub_080002E4: @ 0x080002E4 + ldr r3, _08000350 @ =gUnk_030058C8 + bx r3 + + thumb_func_start sub_080002E8 +sub_080002E8: @ 0x080002E8 + ldr r3, _08000354 @ =gUnk_030058DC + bx r3 + + thumb_func_start sub_080002EC +sub_080002EC: @ 0x080002EC + ldr r3, _08000358 @ =gUnk_030058F8 + bx r3 + + thumb_func_start sub_080002F0 +sub_080002F0: @ 0x080002F0 + ldr r3, _0800035C @ =gUnk_03005918 + bx r3 +_080002F4: .4byte gUnk_03005740 +_080002F8: .4byte gUnk_0300574C +_080002FC: .4byte gUnk_03005760 +_08000300: .4byte gUnk_03005770 +_08000304: .4byte gUnk_03005778 +_08000308: .4byte gUnk_03005780 +_0800030C: .4byte gUnk_0300579C +_08000310: .4byte gUnk_030057A8 +_08000314: .4byte gUnk_030057BC +_08000318: .4byte gUnk_030057CC +_0800031C: .4byte gUnk_030057D4 +_08000320: .4byte gUnk_03005800 +_08000324: .4byte gUnk_0300581C +_08000328: .4byte gUnk_03005828 +_0800032C: .4byte gUnk_0300583C +_08000330: .4byte gUnk_0300584C +_08000334: .4byte gUnk_03005854 +_08000338: .4byte gUnk_03005864 +_0800033C: .4byte gUnk_03005880 +_08000340: .4byte gUnk_0300588C +_08000344: .4byte gUnk_030058A0 +_08000348: .4byte gUnk_030058B0 +_0800034C: .4byte gUnk_030058B8 +_08000350: .4byte gUnk_030058C8 +_08000354: .4byte gUnk_030058DC +_08000358: .4byte gUnk_030058F8 +_0800035C: .4byte gUnk_03005918 diff --git a/asm/code_08000E44.s b/asm/code_08000E44.s new file mode 100644 index 00000000..548c826f --- /dev/null +++ b/asm/code_08000E44.s @@ -0,0 +1,91 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_08000E44 +sub_08000E44: @ 0x08000E44 + cmp r0, #0 + beq _08000E4E + asrs r0, r0, #0x1f + bmi _08000E4E + movs r0, #1 +_08000E4E: + bx lr + + thumb_func_start sub_08000E50 +sub_08000E50: @ 0x08000E50 + ldr r2, _08000EBC @ =gUnk_03001150 + ldr r0, [r2] + lsls r1, r0, #1 + adds r0, r0, r1 + movs r1, #0xd + rors r0, r1 + str r0, [r2] + lsrs r0, r0, #1 + bx lr + + non_word_aligned_thumb_func_start sub_08000E62 +sub_08000E62: @ 0x08000E62 + lsrs r1, r0, #1 + ldr r2, _08000EC0 @ =0x55555555 + ands r0, r2 + ands r1, r2 + adds r0, r0, r1 + lsrs r1, r0, #2 + ldr r2, _08000EC4 @ =0x33333333 + ands r0, r2 + ands r1, r2 + adds r0, r0, r1 + lsrs r1, r0, #4 + ldr r2, _08000EC8 @ =0x0F0F0F0F + ands r0, r2 + ands r1, r2 + adds r0, r0, r1 + lsrs r1, r0, #8 + ldr r2, _08000ECC @ =0x00FF00FF + ands r0, r2 + ands r1, r2 + adds r0, r0, r1 + lsls r1, r0, #0x10 + adds r0, r0, r1 + lsrs r0, r0, #0x10 + bx lr + + non_word_aligned_thumb_func_start sub_08000E92 +sub_08000E92: @ 0x08000E92 + movs r3, #1 + b _08000E98 + + non_word_aligned_thumb_func_start sub_08000E96 +sub_08000E96: @ 0x08000E96 + movs r3, #0 +_08000E98: + push {r4, r5} + ldr r5, _08000ED0 @ =gUnk_03003DE0 + ldrb r4, [r5] + cmp r4, #0x28 + bhs _08000EB6 + adds r4, #1 + strb r4, [r5] + movs r5, #0xc + muls r4, r5, r4 + ldr r5, _08000ED4 @ =gUnk_03000C24 + adds r4, r4, r5 + strb r3, [r4] + strh r2, [r4, #2] + str r0, [r4, #4] + str r1, [r4, #8] +_08000EB6: + pop {r4, r5} + bx lr + .align 2, 0 +_08000EBC: .4byte gUnk_03001150 +_08000EC0: .4byte 0x55555555 +_08000EC4: .4byte 0x33333333 +_08000EC8: .4byte 0x0F0F0F0F +_08000ECC: .4byte 0x00FF00FF +_08000ED0: .4byte gUnk_03003DE0 +_08000ED4: .4byte gUnk_03000C24 diff --git a/asm/code_08000F10.s b/asm/code_08000F10.s new file mode 100644 index 00000000..851a3c0d --- /dev/null +++ b/asm/code_08000F10.s @@ -0,0 +1,51 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_08000F10 +sub_08000F10: @ 0x08000F10 + ldr r3, _08000F50 @ =gUnk_03005E60 + bx r3 + + thumb_func_start sub_08000F14 +sub_08000F14: @ 0x08000F14 + push {r4, r5, r6} + movs r4, #0x1e +_08000F18: + ldrsh r5, [r1, r4] + ldrsh r6, [r2, r4] + adds r5, r5, r6 + ldrsh r6, [r3, r4] + adds r5, r5, r6 + strh r5, [r0, r4] + subs r4, #2 + bpl _08000F18 + pop {r4, r5, r6} + bx lr + + thumb_func_start sub_08000F2C +sub_08000F2C: @ 0x08000F2C + push {r4, r5, r6, r7} + movs r4, #0x1e + movs r7, #0 +_08000F32: + ldrsh r5, [r1, r4] + ldrsh r6, [r2, r4] + adds r5, r5, r6 + ldrsh r6, [r3, r4] + adds r5, r5, r6 + bpl _08000F40 + movs r5, #0 +_08000F40: + strh r5, [r0, r4] + adds r7, r7, r5 + subs r4, #2 + bpl _08000F32 + adds r0, r7, #0 + pop {r4, r5, r6, r7} + bx lr + .align 2, 0 +_08000F50: .4byte gUnk_03005E60 diff --git a/asm/code_080011C4.s b/asm/code_080011C4.s new file mode 100644 index 00000000..1c4908e6 --- /dev/null +++ b/asm/code_080011C4.s @@ -0,0 +1,1443 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_080011C4 +sub_080011C4: @ 0x080011C4 + mov r3, lr + push {r3, r4} + adds r4, r0, #0 + ldrb r2, [r0, #0xc] + cmp r2, #0 + bne _080011DC + bl sub_0804A57C + cmp r0, #0 + bne _080011EA + bl sub_0805E780 +_080011DC: + bl sub_0805E3B0 + cmp r0, #0 + bne _0800120A + adds r0, r4, #0 + bl sub_080028E0 +_080011EA: + adds r0, r4, #0 + movs r1, #0x6d + ldrb r1, [r0, r1] + lsrs r1, r1, #5 + bhs _0800120A + ldrb r1, [r0, #9] + lsls r1, r1, #2 + ldr r2, _08001358 @ =gUnk_080D3BF8 + ldr r1, [r2, r1] + bl _call_via_r1 + movs r1, #0x41 + movs r3, #0x7f + ldrb r2, [r4, r1] + ands r2, r3 + strb r2, [r4, r1] +_0800120A: + adds r0, r4, #0 + bl sub_0800404C + pop {r3, r4} + bx r3 + + thumb_func_start sub_08001214 +sub_08001214: @ 0x08001214 + movs r3, #0x3a + ldrb r1, [r0, r3] + movs r2, #1 + tst r1, r2 + bne _08001230 + orrs r1, r2 + strb r2, [r0, r3] + movs r1, #1 + movs r2, #0x5a + ldrb r2, [r0, r2] + lsrs r2, r2, #7 + blo _0800122E + movs r1, #0x20 +_0800122E: + strb r1, [r0, #0xe] +_08001230: + ldrb r1, [r0, #0xe] + subs r1, #1 + beq _0800123E + strb r1, [r0, #0xe] + movs r1, #4 + ldr r3, _0800135C @ =sub_08004276 + bx r3 +_0800123E: + ldr r3, _08001360 @ =sub_080043B4 + bx r3 + + non_word_aligned_thumb_func_start sub_08001242 +sub_08001242: @ 0x08001242 + push {lr} + movs r1, #0x43 + ldrb r2, [r0, r1] + subs r2, #1 + strb r2, [r0, r1] + cmp r2, #0x3c + bhs _08001282 + movs r3, #3 + ands r3, r2 + add r1, pc, #0x34 + ldrsb r1, [r1, r3] + movs r3, #0x62 + strb r1, [r0, r3] + cmp r2, #0 + bne _08001282 + movs r1, #0x68 + ldr r1, [r0, r1] + cmp r1, #0 + beq _08001282 + ldrb r2, [r1, #8] + cmp r2, #6 + bne _08001282 + ldrb r2, [r1, #9] + cmp r2, #0xf + bne _08001282 + ldrb r2, [r1, #0xa] + cmp r2, #0x1c + bne _08001282 + push {r0} + bl sub_0804AA1C + pop {r0} +_08001282: + ldr r1, _08001364 @ =0x00001800 + bl sub_08003FC4 + pop {pc} + .align 2, 0 +_0800128C: + .byte 0x00, 0x01, 0x00, 0xFF + + thumb_func_start sub_08001290 +sub_08001290: @ 0x08001290 + cmp r1, #0 + beq _0800129C + ldr r2, _08001368 @ =0x080012C8 + lsls r1, r1, #2 + ldr r1, [r2, r1] + bx r1 +_0800129C: + bx lr + + non_word_aligned_thumb_func_start sub_0800129E +sub_0800129E: @ 0x0800129E + mov r3, lr + push {r3, r4, r5} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_080012DC + cmp r0, #0 + beq _080012B2 + ldr r1, _0800136C @ =0x080012C8 + b _080012BA +_080012B2: + adds r0, r4, #0 + bl sub_0800279C + adds r1, r5, #0 +_080012BA: + lsls r0, r0, #2 + ldr r1, [r1, r0] + adds r0, r4, #0 + pop {r3, r4, r5} + mov lr, r3 + bx r1 + .align 2, 0 +_080012C8: .4byte 0x00000000 +_080012CC: .4byte 0x08001215 +_080012D0: .4byte 0x080043A9 +_080012D4: .4byte 0x080043AD +_080012D8: .4byte 0x080043B1 + + thumb_func_start sub_080012DC +sub_080012DC: @ 0x080012DC + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #0x3a + ldrb r1, [r4, r5] + lsrs r1, r1, #3 + bhs _08001302 + bl sub_080043E8 + cmp r0, #4 + beq _08001302 + cmp r0, #0 + bne _08001306 + ldrb r1, [r4, r5] + lsrs r1, r1, #1 + blo _08001302 + ldrb r1, [r4, #0x10] + movs r2, #0x80 + orrs r1, r2 + strb r1, [r4, #0x10] +_08001302: + movs r0, #0 + pop {r4, r5, pc} +_08001306: + cmp r0, #1 + beq _08001316 + movs r1, #1 + strb r1, [r4, #0xe] + ldrb r2, [r4, r5] + movs r1, #1 + orrs r1, r2 + strb r1, [r4, r5] +_08001316: + pop {r4, r5, pc} + + thumb_func_start sub_08001318 +sub_08001318: @ 0x08001318 + movs r1, #0x36 + ldrsh r1, [r0, r1] + cmp r1, #0 + bpl sub_08001324 + movs r2, #0xff + strb r2, [r0, #0x15] + + thumb_func_start sub_08001324 +sub_08001324: @ 0x08001324 + ldr r3, _08001370 @ =sub_080AF18C + bx r3 + + thumb_func_start sub_08001328 +sub_08001328: @ 0x08001328 + ldr r3, _08001374 @ =sub_080AF1BC + bx r3 + + thumb_func_start sub_0800132C +sub_0800132C: @ 0x0800132C + movs r2, #0x38 + ldrb r3, [r1, r2] + ldrb r2, [r0, r2] + ands r2, r3 + beq _08001352 + ldrh r2, [r0, #0x2e] + ldrh r3, [r1, #0x2e] + subs r2, r2, r3 + adds r2, #8 + cmp r2, #0x11 + bhs _0800134E + ldrh r2, [r0, #0x32] + ldrh r3, [r1, #0x32] + subs r2, r2, r3 + adds r2, #8 + cmp r2, #0x11 + blo _08001352 +_0800134E: + ldr r3, _08001378 @ =sub_080045C4 + bx r3 +_08001352: + movs r0, #0xff + bx lr + .align 2, 0 +_08001358: .4byte gUnk_080D3BF8 +_0800135C: .4byte 0x08004277 +_08001360: .4byte 0x080043B5 +_08001364: .4byte 0x00001800 +_08001368: .4byte 0x080012C8 +_0800136C: .4byte 0x080012C8 +_08001370: .4byte sub_080AF18C +_08001374: .4byte sub_080AF1BC +_08001378: .4byte sub_080045C4 + +gUnk_0800137C:: @ 0800137C + .incbin "baserom.gba", 0x00137C, 0x0000004 + +gUnk_08001380:: @ 08001380 + .incbin "baserom.gba", 0x001380, 0x0000074 + +gUnk_080013F4:: @ 080013F4 + .incbin "baserom.gba", 0x0013F4, 0x000000C + +gUnk_08001400:: @ 08001400 + .incbin "baserom.gba", 0x001400, 0x0000006 + +gUnk_08001406:: @ 08001406 + .incbin "baserom.gba", 0x001406, 0x000000A + +gUnk_08001410:: @ 08001410 + .incbin "baserom.gba", 0x001410, 0x000000C + +gUnk_0800141C:: @ 0800141C + .incbin "baserom.gba", 0x00141C, 0x0000020 + +gUnk_0800143C:: @ 0800143C + .incbin "baserom.gba", 0x00143C, 0x00000E5 + +gUnk_08001521:: @ 08001521 + .incbin "baserom.gba", 0x001521, 0x0000012 + +gUnk_08001533:: @ 08001533 + .incbin "baserom.gba", 0x001533, 0x000000D + +gUnk_08001540:: @ 08001540 + .incbin "baserom.gba", 0x001540, 0x000007C + +gUnk_080015BC:: @ 080015BC + .incbin "baserom.gba", 0x0015BC, 0x0000035 + +gUnk_080015F1:: @ 080015F1 + .incbin "baserom.gba", 0x0015F1, 0x000002B + +gUnk_0800161C:: @ 0800161C + .incbin "baserom.gba", 0x00161C, 0x000001B + +gUnk_08001637:: @ 08001637 + .incbin "baserom.gba", 0x001637, 0x00000C9 + +gUnk_08001700:: @ 08001700 + .incbin "baserom.gba", 0x001700, 0x0000001 + +gUnk_08001701:: @ 08001701 + .incbin "baserom.gba", 0x001701, 0x0000001 + +gUnk_08001702:: @ 08001702 + .incbin "baserom.gba", 0x001702, 0x0000014 + +gUnk_08001716:: @ 08001716 + .incbin "baserom.gba", 0x001716, 0x0000017 + +gUnk_0800172D:: @ 0800172D + .incbin "baserom.gba", 0x00172D, 0x00000D4 + +gUnk_08001801:: @ 08001801 + .incbin "baserom.gba", 0x001801, 0x000000F + +gUnk_08001810:: @ 08001810 + .incbin "baserom.gba", 0x001810, 0x0000008 + +gUnk_08001818:: @ 08001818 + .incbin "baserom.gba", 0x001818, 0x0000027 + +gUnk_0800183F:: @ 0800183F + .incbin "baserom.gba", 0x00183F, 0x0000005 + +gUnk_08001844:: @ 08001844 + .incbin "baserom.gba", 0x001844, 0x0000006 + +gUnk_0800184A:: @ 0800184A + .incbin "baserom.gba", 0x00184A, 0x0000006 + +gUnk_08001850:: @ 08001850 + .incbin "baserom.gba", 0x001850, 0x0000010 + +gUnk_08001860:: @ 08001860 + .incbin "baserom.gba", 0x001860, 0x0000040 + +gUnk_080018A0:: @ 080018A0 + .incbin "baserom.gba", 0x0018A0, 0x0000004 + +gUnk_080018A4:: @ 080018A4 + .incbin "baserom.gba", 0x0018A4, 0x000005E + +gUnk_08001902:: @ 08001902 + .incbin "baserom.gba", 0x001902, 0x000000F + +gUnk_08001911:: @ 08001911 + .incbin "baserom.gba", 0x001911, 0x000000B + +gUnk_0800191C:: @ 0800191C + .incbin "baserom.gba", 0x00191C, 0x000004F + +gUnk_0800196B:: @ 0800196B + .incbin "baserom.gba", 0x00196B, 0x0000015 + +gUnk_08001980:: @ 08001980 + .incbin "baserom.gba", 0x001980, 0x0000098 + +gUnk_08001A18:: @ 08001A18 + .incbin "baserom.gba", 0x001A18, 0x0000004 + +gUnk_08001A1C:: @ 08001A1C + .incbin "baserom.gba", 0x001A1C, 0x0000060 + +gUnk_08001A7C:: @ 08001A7C + .incbin "baserom.gba", 0x001A7C, 0x00000A5 + +gUnk_08001B21:: @ 08001B21 + .incbin "baserom.gba", 0x001B21, 0x0000006 + +gUnk_08001B27:: @ 08001B27 + .incbin "baserom.gba", 0x001B27, 0x000001D + +gUnk_08001B44:: @ 08001B44 + .incbin "baserom.gba", 0x001B44, 0x0000058 + +gUnk_08001B9C:: @ 08001B9C + .incbin "baserom.gba", 0x001B9C, 0x00000C0 + +gUnk_08001C5C:: @ 08001C5C + .incbin "baserom.gba", 0x001C5C, 0x0000006 + +gUnk_08001C62:: @ 08001C62 + .incbin "baserom.gba", 0x001C62, 0x0000006 + +gUnk_08001C68:: @ 08001C68 + .incbin "baserom.gba", 0x001C68, 0x0000006 + +gUnk_08001C6E:: @ 08001C6E + .incbin "baserom.gba", 0x001C6E, 0x0000006 + +gUnk_08001C74:: @ 08001C74 + .incbin "baserom.gba", 0x001C74, 0x0000006 + +gUnk_08001C7A:: @ 08001C7A + .incbin "baserom.gba", 0x001C7A, 0x0000006 + +gUnk_08001C80:: @ 08001C80 + .incbin "baserom.gba", 0x001C80, 0x0000006 + +gUnk_08001C86:: @ 08001C86 + .incbin "baserom.gba", 0x001C86, 0x0000006 + +gUnk_08001C8C:: @ 08001C8C + .incbin "baserom.gba", 0x001C8C, 0x0000006 + +gUnk_08001C92:: @ 08001C92 + .incbin "baserom.gba", 0x001C92, 0x0000006 + +gUnk_08001C98:: @ 08001C98 + .incbin "baserom.gba", 0x001C98, 0x0000006 + +gUnk_08001C9E:: @ 08001C9E + .incbin "baserom.gba", 0x001C9E, 0x0000002 + +gUnk_08001CA0:: @ 08001CA0 + .incbin "baserom.gba", 0x001CA0, 0x0000004 + +gUnk_08001CA4:: @ 08001CA4 + .incbin "baserom.gba", 0x001CA4, 0x0000006 + +gUnk_08001CAA:: @ 08001CAA + .incbin "baserom.gba", 0x001CAA, 0x0000006 + +gUnk_08001CB0:: @ 08001CB0 + .incbin "baserom.gba", 0x001CB0, 0x0000006 + +gUnk_08001CB6:: @ 08001CB6 + .incbin "baserom.gba", 0x001CB6, 0x0000006 + +gUnk_08001CBC:: @ 08001CBC + .incbin "baserom.gba", 0x001CBC, 0x0000006 + +gUnk_08001CC2:: @ 08001CC2 + .incbin "baserom.gba", 0x001CC2, 0x0000006 + +gUnk_08001CC8:: @ 08001CC8 + .incbin "baserom.gba", 0x001CC8, 0x0000006 + +gUnk_08001CCE:: @ 08001CCE + .incbin "baserom.gba", 0x001CCE, 0x0000006 + +gUnk_08001CD4:: @ 08001CD4 + .incbin "baserom.gba", 0x001CD4, 0x0000006 + +gUnk_08001CDA:: @ 08001CDA + .incbin "baserom.gba", 0x001CDA, 0x0000006 + +gUnk_08001CE0:: @ 08001CE0 + .incbin "baserom.gba", 0x001CE0, 0x0000006 + +gUnk_08001CE6:: @ 08001CE6 + .incbin "baserom.gba", 0x001CE6, 0x0000006 + +gUnk_08001CEC:: @ 08001CEC + .incbin "baserom.gba", 0x001CEC, 0x0000006 + +gUnk_08001CF2:: @ 08001CF2 + .incbin "baserom.gba", 0x001CF2, 0x0000006 + +gUnk_08001CF8:: @ 08001CF8 + .incbin "baserom.gba", 0x001CF8, 0x0000006 + +gUnk_08001CFE:: @ 08001CFE + .incbin "baserom.gba", 0x001CFE, 0x0000006 + +gUnk_08001D04:: @ 08001D04 + .incbin "baserom.gba", 0x001D04, 0x0000001 + +gUnk_08001D05:: @ 08001D05 + .incbin "baserom.gba", 0x001D05, 0x0000005 + +gUnk_08001D0A:: @ 08001D0A + .incbin "baserom.gba", 0x001D0A, 0x0000006 + +gUnk_08001D10:: @ 08001D10 + .incbin "baserom.gba", 0x001D10, 0x0000006 + +gUnk_08001D16:: @ 08001D16 + .incbin "baserom.gba", 0x001D16, 0x0000006 + +gUnk_08001D1C:: @ 08001D1C + .incbin "baserom.gba", 0x001D1C, 0x0000006 + +gUnk_08001D22:: @ 08001D22 + .incbin "baserom.gba", 0x001D22, 0x0000006 + +gUnk_08001D28:: @ 08001D28 + .incbin "baserom.gba", 0x001D28, 0x0000006 + +gUnk_08001D2E:: @ 08001D2E + .incbin "baserom.gba", 0x001D2E, 0x0000006 + +gUnk_08001D34:: @ 08001D34 + .incbin "baserom.gba", 0x001D34, 0x0000002 + +gUnk_08001D36:: @ 08001D36 + .incbin "baserom.gba", 0x001D36, 0x0000004 + +gUnk_08001D3A:: @ 08001D3A + .incbin "baserom.gba", 0x001D3A, 0x0000006 + +gUnk_08001D40:: @ 08001D40 + .incbin "baserom.gba", 0x001D40, 0x0000006 + +gUnk_08001D46:: @ 08001D46 + .incbin "baserom.gba", 0x001D46, 0x0000006 + +gUnk_08001D4C:: @ 08001D4C + .incbin "baserom.gba", 0x001D4C, 0x0000006 + +gUnk_08001D52:: @ 08001D52 + .incbin "baserom.gba", 0x001D52, 0x0000006 + +gUnk_08001D58:: @ 08001D58 + .incbin "baserom.gba", 0x001D58, 0x0000006 + +gUnk_08001D5E:: @ 08001D5E + .incbin "baserom.gba", 0x001D5E, 0x0000006 + +gUnk_08001D64:: @ 08001D64 + .incbin "baserom.gba", 0x001D64, 0x0000006 + +gUnk_08001D6A:: @ 08001D6A + .incbin "baserom.gba", 0x001D6A, 0x0000006 + +gUnk_08001D70:: @ 08001D70 + .incbin "baserom.gba", 0x001D70, 0x0000006 + +gUnk_08001D76:: @ 08001D76 + .incbin "baserom.gba", 0x001D76, 0x0000006 + +gUnk_08001D7C:: @ 08001D7C + .incbin "baserom.gba", 0x001D7C, 0x0000006 + +gUnk_08001D82:: @ 08001D82 + .incbin "baserom.gba", 0x001D82, 0x0000006 + +gUnk_08001D88:: @ 08001D88 + .incbin "baserom.gba", 0x001D88, 0x0000006 + +gUnk_08001D8E:: @ 08001D8E + .incbin "baserom.gba", 0x001D8E, 0x0000006 + +gUnk_08001D94:: @ 08001D94 + .incbin "baserom.gba", 0x001D94, 0x0000006 + +gUnk_08001D9A:: @ 08001D9A + .incbin "baserom.gba", 0x001D9A, 0x0000006 + +gUnk_08001DA0:: @ 08001DA0 + .incbin "baserom.gba", 0x001DA0, 0x0000006 + +gUnk_08001DA6:: @ 08001DA6 + .incbin "baserom.gba", 0x001DA6, 0x0000006 + +gUnk_08001DAC:: @ 08001DAC + .incbin "baserom.gba", 0x001DAC, 0x000000C + +gUnk_08001DB8:: @ 08001DB8 + .incbin "baserom.gba", 0x001DB8, 0x0000006 + +gUnk_08001DBE:: @ 08001DBE + .incbin "baserom.gba", 0x001DBE, 0x0000006 + +gUnk_08001DC4:: @ 08001DC4 + .incbin "baserom.gba", 0x001DC4, 0x0000008 + +gUnk_08001DCC:: @ 08001DCC + .incbin "baserom.gba", 0x001DCC, 0x0000051 + +gUnk_08001E1D:: @ 08001E1D + .incbin "baserom.gba", 0x001E1D, 0x00000A3 + +gUnk_08001EC0:: @ 08001EC0 + .incbin "baserom.gba", 0x001EC0, 0x0000048 + +gUnk_08001F08:: @ 08001F08 + .incbin "baserom.gba", 0x001F08, 0x0000008 + +gUnk_08001F10:: @ 08001F10 + .incbin "baserom.gba", 0x001F10, 0x0000010 + +gUnk_08001F20:: @ 08001F20 + .incbin "baserom.gba", 0x001F20, 0x0000030 + +gUnk_08001F50:: @ 08001F50 + .incbin "baserom.gba", 0x001F50, 0x0000053 + +gUnk_08001FA3:: @ 08001FA3 + .incbin "baserom.gba", 0x001FA3, 0x0000009 + +gUnk_08001FAC:: @ 08001FAC + .incbin "baserom.gba", 0x001FAC, 0x0000008 + +gUnk_08001FB4:: @ 08001FB4 + .incbin "baserom.gba", 0x001FB4, 0x0000008 + +gUnk_08001FBC:: @ 08001FBC + .incbin "baserom.gba", 0x001FBC, 0x0000007 + +gUnk_08001FC3:: @ 08001FC3 + .incbin "baserom.gba", 0x001FC3, 0x0000007 + +gUnk_08001FCA:: @ 08001FCA + .incbin "baserom.gba", 0x001FCA, 0x0000007 + +gUnk_08001FD1:: @ 08001FD1 + .incbin "baserom.gba", 0x001FD1, 0x0000007 + +gUnk_08001FD8:: @ 08001FD8 + .incbin "baserom.gba", 0x001FD8, 0x0000007 + +gUnk_08001FDF:: @ 08001FDF + .incbin "baserom.gba", 0x001FDF, 0x0000007 + +gUnk_08001FE6:: @ 08001FE6 + .incbin "baserom.gba", 0x001FE6, 0x0000007 + +gUnk_08001FED:: @ 08001FED + .incbin "baserom.gba", 0x001FED, 0x000000B + +gUnk_08001FF8:: @ 08001FF8 + .incbin "baserom.gba", 0x001FF8, 0x0000007 + +gUnk_08001FFF:: @ 08001FFF + .incbin "baserom.gba", 0x001FFF, 0x0000001 + +gUnk_08002000:: @ 08002000 + .incbin "baserom.gba", 0x002000, 0x0000005 + +gUnk_08002005:: @ 08002005 + .incbin "baserom.gba", 0x002005, 0x0000001 + +gUnk_08002006:: @ 08002006 + .incbin "baserom.gba", 0x002006, 0x0000007 + +gUnk_0800200D:: @ 0800200D + .incbin "baserom.gba", 0x00200D, 0x0000007 + +gUnk_08002014:: @ 08002014 + .incbin "baserom.gba", 0x002014, 0x0000007 + +gUnk_0800201B:: @ 0800201B + .incbin "baserom.gba", 0x00201B, 0x0000007 + +gUnk_08002022:: @ 08002022 + .incbin "baserom.gba", 0x002022, 0x0000007 + +gUnk_08002029:: @ 08002029 + .incbin "baserom.gba", 0x002029, 0x0000007 + +gUnk_08002030:: @ 08002030 + .incbin "baserom.gba", 0x002030, 0x0000007 + +gUnk_08002037:: @ 08002037 + .incbin "baserom.gba", 0x002037, 0x0000007 + +gUnk_0800203E:: @ 0800203E + .incbin "baserom.gba", 0x00203E, 0x0000007 + +gUnk_08002045:: @ 08002045 + .incbin "baserom.gba", 0x002045, 0x0000007 + +gUnk_0800204C:: @ 0800204C + .incbin "baserom.gba", 0x00204C, 0x0000007 + +gUnk_08002053:: @ 08002053 + .incbin "baserom.gba", 0x002053, 0x0000007 + +gUnk_0800205A:: @ 0800205A + .incbin "baserom.gba", 0x00205A, 0x0000007 + +gUnk_08002061:: @ 08002061 + .incbin "baserom.gba", 0x002061, 0x0000007 + +gUnk_08002068:: @ 08002068 + .incbin "baserom.gba", 0x002068, 0x0000009 + +gUnk_08002071:: @ 08002071 + .incbin "baserom.gba", 0x002071, 0x0000009 + +gUnk_0800207A:: @ 0800207A + .incbin "baserom.gba", 0x00207A, 0x0000006 + +gUnk_08002080:: @ 08002080 + .incbin "baserom.gba", 0x002080, 0x0000001 + +gUnk_08002081:: @ 08002081 + .incbin "baserom.gba", 0x002081, 0x0000009 + +gUnk_0800208A:: @ 0800208A + .incbin "baserom.gba", 0x00208A, 0x0000007 + +gUnk_08002091:: @ 08002091 + .incbin "baserom.gba", 0x002091, 0x0000007 + +gUnk_08002098:: @ 08002098 + .incbin "baserom.gba", 0x002098, 0x0000007 + +gUnk_0800209F:: @ 0800209F + .incbin "baserom.gba", 0x00209F, 0x0000001 + +gUnk_080020A0:: @ 080020A0 + .incbin "baserom.gba", 0x0020A0, 0x0000006 + +gUnk_080020A6:: @ 080020A6 + .incbin "baserom.gba", 0x0020A6, 0x0000007 + +gUnk_080020AD:: @ 080020AD + .incbin "baserom.gba", 0x0020AD, 0x0000007 + +gUnk_080020B4:: @ 080020B4 + .incbin "baserom.gba", 0x0020B4, 0x0000007 + +gUnk_080020BB:: @ 080020BB + .incbin "baserom.gba", 0x0020BB, 0x0000007 + +gUnk_080020C2:: @ 080020C2 + .incbin "baserom.gba", 0x0020C2, 0x0000007 + +gUnk_080020C9:: @ 080020C9 + .incbin "baserom.gba", 0x0020C9, 0x0000007 + +gUnk_080020D0:: @ 080020D0 + .incbin "baserom.gba", 0x0020D0, 0x0000007 + +gUnk_080020D7:: @ 080020D7 + .incbin "baserom.gba", 0x0020D7, 0x0000007 + +gUnk_080020DE:: @ 080020DE + .incbin "baserom.gba", 0x0020DE, 0x0000007 + +gUnk_080020E5:: @ 080020E5 + .incbin "baserom.gba", 0x0020E5, 0x0000007 + +gUnk_080020EC:: @ 080020EC + .incbin "baserom.gba", 0x0020EC, 0x0000008 + +gUnk_080020F4:: @ 080020F4 + .incbin "baserom.gba", 0x0020F4, 0x0000007 + +gUnk_080020FB:: @ 080020FB + .incbin "baserom.gba", 0x0020FB, 0x0000007 + +gUnk_08002102:: @ 08002102 + .incbin "baserom.gba", 0x002102, 0x0000007 + +gUnk_08002109:: @ 08002109 + .incbin "baserom.gba", 0x002109, 0x0000007 + +gUnk_08002110:: @ 08002110 + .incbin "baserom.gba", 0x002110, 0x0000007 + +gUnk_08002117:: @ 08002117 + .incbin "baserom.gba", 0x002117, 0x0000007 + +gUnk_0800211E:: @ 0800211E + .incbin "baserom.gba", 0x00211E, 0x0000007 + +gUnk_08002125:: @ 08002125 + .incbin "baserom.gba", 0x002125, 0x0000008 + +gUnk_0800212D:: @ 0800212D + .incbin "baserom.gba", 0x00212D, 0x0000008 + +gUnk_08002135:: @ 08002135 + .incbin "baserom.gba", 0x002135, 0x0000008 + +gUnk_0800213D:: @ 0800213D + .incbin "baserom.gba", 0x00213D, 0x0000006 + +gUnk_08002143:: @ 08002143 + .incbin "baserom.gba", 0x002143, 0x0000001 + +gUnk_08002144:: @ 08002144 + .incbin "baserom.gba", 0x002144, 0x0000001 + +gUnk_08002145:: @ 08002145 + .incbin "baserom.gba", 0x002145, 0x0000006 + +gUnk_0800214B:: @ 0800214B + .incbin "baserom.gba", 0x00214B, 0x0000007 + +gUnk_08002152:: @ 08002152 + .incbin "baserom.gba", 0x002152, 0x0000008 + +gUnk_0800215A:: @ 0800215A + .incbin "baserom.gba", 0x00215A, 0x0000008 + +gUnk_08002162:: @ 08002162 + .incbin "baserom.gba", 0x002162, 0x0000007 + +gUnk_08002169:: @ 08002169 + .incbin "baserom.gba", 0x002169, 0x0000007 + +gUnk_08002170:: @ 08002170 + .incbin "baserom.gba", 0x002170, 0x0000008 + +gUnk_08002178:: @ 08002178 + .incbin "baserom.gba", 0x002178, 0x000000C + +gUnk_08002184:: @ 08002184 + .incbin "baserom.gba", 0x002184, 0x0000007 + +gUnk_0800218B:: @ 0800218B + .incbin "baserom.gba", 0x00218B, 0x0000008 + +gUnk_08002193:: @ 08002193 + .incbin "baserom.gba", 0x002193, 0x0000008 + +gUnk_0800219B:: @ 0800219B + .incbin "baserom.gba", 0x00219B, 0x0000008 + +gUnk_080021A3:: @ 080021A3 + .incbin "baserom.gba", 0x0021A3, 0x0000008 + +gUnk_080021AB:: @ 080021AB + .incbin "baserom.gba", 0x0021AB, 0x0000008 + +gUnk_080021B3:: @ 080021B3 + .incbin "baserom.gba", 0x0021B3, 0x0000009 + +gUnk_080021BC:: @ 080021BC + .incbin "baserom.gba", 0x0021BC, 0x0000007 + +gUnk_080021C3:: @ 080021C3 + .incbin "baserom.gba", 0x0021C3, 0x0000007 + +gUnk_080021CA:: @ 080021CA + .incbin "baserom.gba", 0x0021CA, 0x0000007 + +gUnk_080021D1:: @ 080021D1 + .incbin "baserom.gba", 0x0021D1, 0x0000007 + +gUnk_080021D8:: @ 080021D8 + .incbin "baserom.gba", 0x0021D8, 0x0000009 + +gUnk_080021E1:: @ 080021E1 + .incbin "baserom.gba", 0x0021E1, 0x0000007 + +gUnk_080021E8:: @ 080021E8 + .incbin "baserom.gba", 0x0021E8, 0x0000009 + +gUnk_080021F1:: @ 080021F1 + .incbin "baserom.gba", 0x0021F1, 0x0000007 + +gUnk_080021F8:: @ 080021F8 + .incbin "baserom.gba", 0x0021F8, 0x0000007 + +gUnk_080021FF:: @ 080021FF + .incbin "baserom.gba", 0x0021FF, 0x0000007 + +gUnk_08002206:: @ 08002206 + .incbin "baserom.gba", 0x002206, 0x0000007 + +gUnk_0800220D:: @ 0800220D + .incbin "baserom.gba", 0x00220D, 0x0000007 + +gUnk_08002214:: @ 08002214 + .incbin "baserom.gba", 0x002214, 0x0000007 + +gUnk_0800221B:: @ 0800221B + .incbin "baserom.gba", 0x00221B, 0x0000007 + +gUnk_08002222:: @ 08002222 + .incbin "baserom.gba", 0x002222, 0x0000007 + +gUnk_08002229:: @ 08002229 + .incbin "baserom.gba", 0x002229, 0x0000007 + +gUnk_08002230:: @ 08002230 + .incbin "baserom.gba", 0x002230, 0x0000009 + +gUnk_08002239:: @ 08002239 + .incbin "baserom.gba", 0x002239, 0x0000007 + +gUnk_08002240:: @ 08002240 + .incbin "baserom.gba", 0x002240, 0x0000007 + +gUnk_08002247:: @ 08002247 + .incbin "baserom.gba", 0x002247, 0x0000007 + +gUnk_0800224E:: @ 0800224E + .incbin "baserom.gba", 0x00224E, 0x0000007 + +gUnk_08002255:: @ 08002255 + .incbin "baserom.gba", 0x002255, 0x0000007 + +gUnk_0800225C:: @ 0800225C + .incbin "baserom.gba", 0x00225C, 0x0000007 + +gUnk_08002263:: @ 08002263 + .incbin "baserom.gba", 0x002263, 0x0000001 + +gUnk_08002264:: @ 08002264 + .incbin "baserom.gba", 0x002264, 0x0000006 + +gUnk_0800226A:: @ 0800226A + .incbin "baserom.gba", 0x00226A, 0x0000007 + +gUnk_08002271:: @ 08002271 + .incbin "baserom.gba", 0x002271, 0x0000007 + +gUnk_08002278:: @ 08002278 + .incbin "baserom.gba", 0x002278, 0x0000007 + +gUnk_0800227F:: @ 0800227F + .incbin "baserom.gba", 0x00227F, 0x0000007 + +gUnk_08002286:: @ 08002286 + .incbin "baserom.gba", 0x002286, 0x0000007 + +gUnk_0800228D:: @ 0800228D + .incbin "baserom.gba", 0x00228D, 0x0000007 + +gUnk_08002294:: @ 08002294 + .incbin "baserom.gba", 0x002294, 0x0000007 + +gUnk_0800229B:: @ 0800229B + .incbin "baserom.gba", 0x00229B, 0x000000C + +gUnk_080022A7:: @ 080022A7 + .incbin "baserom.gba", 0x0022A7, 0x000000C + +gUnk_080022B3:: @ 080022B3 + .incbin "baserom.gba", 0x0022B3, 0x000000C + +gUnk_080022BF:: @ 080022BF + .incbin "baserom.gba", 0x0022BF, 0x000000C + +gUnk_080022CB:: @ 080022CB + .incbin "baserom.gba", 0x0022CB, 0x000000C + +gUnk_080022D7:: @ 080022D7 + .incbin "baserom.gba", 0x0022D7, 0x0000007 + +gUnk_080022DE:: @ 080022DE + .incbin "baserom.gba", 0x0022DE, 0x0000007 + +gUnk_080022E5:: @ 080022E5 + .incbin "baserom.gba", 0x0022E5, 0x0000007 + +gUnk_080022EC:: @ 080022EC + .incbin "baserom.gba", 0x0022EC, 0x0000007 + +gUnk_080022F3:: @ 080022F3 + .incbin "baserom.gba", 0x0022F3, 0x0000008 + +gUnk_080022FB:: @ 080022FB + .incbin "baserom.gba", 0x0022FB, 0x0000007 + +gUnk_08002302:: @ 08002302 + .incbin "baserom.gba", 0x002302, 0x0000007 + +gUnk_08002309:: @ 08002309 + .incbin "baserom.gba", 0x002309, 0x0000007 + +gUnk_08002310:: @ 08002310 + .incbin "baserom.gba", 0x002310, 0x0000007 + +gUnk_08002317:: @ 08002317 + .incbin "baserom.gba", 0x002317, 0x0000007 + +gUnk_0800231E:: @ 0800231E + .incbin "baserom.gba", 0x00231E, 0x0000007 + +gUnk_08002325:: @ 08002325 + .incbin "baserom.gba", 0x002325, 0x0000007 + +gUnk_0800232C:: @ 0800232C + .incbin "baserom.gba", 0x00232C, 0x0000002 + +gUnk_0800232E:: @ 0800232E + .incbin "baserom.gba", 0x00232E, 0x0000005 + +gUnk_08002333:: @ 08002333 + .incbin "baserom.gba", 0x002333, 0x000000F + +gUnk_08002342:: @ 08002342 + .incbin "baserom.gba", 0x002342, 0x00000CE + +gUnk_08002410:: @ 08002410 + .incbin "baserom.gba", 0x002410, 0x0000040 + +gUnk_08002450:: @ 08002450 + .incbin "baserom.gba", 0x002450, 0x00000D0 + +gUnk_08002520:: @ 08002520 + .incbin "baserom.gba", 0x002520, 0x0000107 + +gUnk_08002627:: @ 08002627 + .incbin "baserom.gba", 0x002627, 0x000000B + + non_word_aligned_thumb_func_start sub_08002632 +sub_08002632: @ 0x08002632 + push {r4, r5, r6, r7, lr} + ldr r4, _0800269C @ =gUnk_0800232E + ldrb r3, [r0, #8] + cmp r3, #3 + beq _08002642 + cmp r3, #7 + bne _08002684 + ldr r4, _080026A0 @ =gUnk_08002342 +_08002642: + ldrb r3, [r0, #9] + lsls r1, r3, #0x10 + ldrb r3, [r0, #0xa] + lsls r3, r3, #8 + orrs r1, r3 + ldrb r3, [r0, #0xb] + orrs r1, r3 + add r6, pc, #0x38 +_08002652: + adds r4, #6 + ldrb r3, [r4] + lsls r2, r3, #0x10 + beq _08002684 + movs r5, #0 + ldrb r3, [r4, #1] + cmp r3, #0xff + bne _08002664 + movs r5, #8 +_08002664: + lsls r3, r3, #8 + orrs r2, r3 + ldrb r3, [r4, #2] + cmp r3, #0xff + bne _08002670 + adds r5, #4 +_08002670: + orrs r2, r3 + ldr r5, [r6, r5] + adds r3, r1, #0 + ands r3, r5 + ands r2, r5 + cmp r3, r2 + bne _08002652 + ldrb r0, [r4, #3] + ldrh r1, [r4, #4] + pop {r4, r5, r6, r7, pc} +_08002684: + movs r0, #0 + movs r1, #0 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0800268C: + .byte 0xFF, 0xFF, 0xFF, 0x00 + .byte 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00 +_0800269C: .4byte gUnk_0800232E +_080026A0: .4byte gUnk_08002342 +_080026A4: .4byte gUnk_020000B0 +_080026A8: .4byte gUnk_03003D68 +_080026AC: .4byte gUnk_03003DB0 +_080026B0: .4byte gUnk_03005FBC +_080026B4: .4byte gUnk_020000B0 +_080026B8: .4byte gUnk_03003DA8 +_080026BC: .4byte gUnk_03003DB8 +_080026C0: .4byte gUnk_03005FBC + + thumb_func_start sub_080026C4 +sub_080026C4: @ 0x080026C4 + push {r4, r5, r6, lr} + lsrs r4, r3, #3 + lsls r4, r4, #6 + adds r1, r1, r4 + movs r6, #0xf0 + lsls r4, r3, #0x1d + lsrs r4, r4, #0x1e + blo _080026D8 + movs r6, #0xf + adds r2, #0x10 +_080026D8: + adds r1, r1, r4 + movs r3, #0x10 +_080026DC: + ldrb r4, [r0] + ldrb r4, [r2, r4] + ldrb r5, [r1] + ands r5, r6 + orrs r5, r4 + strb r5, [r1] + adds r1, #4 + adds r0, #8 + subs r3, #1 + bne _080026DC + pop {r4, r5, r6, pc} + + non_word_aligned_thumb_func_start sub_080026F2 +sub_080026F2: @ 0x080026F2 + push {r4, r5, r6, lr} + lsrs r4, r3, #3 + lsls r4, r4, #6 + adds r1, r1, r4 + movs r6, #0xf0 + lsls r4, r3, #0x1d + lsrs r4, r4, #0x1e + blo _08002706 + movs r6, #0xf + adds r2, #0x10 +_08002706: + adds r1, r1, r4 + movs r3, #0x10 +_0800270A: + ldrb r4, [r0] + ldrb r4, [r2, r4] + cmp r4, #0 + beq _0800271A + ldrb r5, [r1] + ands r5, r6 + orrs r5, r4 + strb r5, [r1] +_0800271A: + adds r1, #4 + adds r0, #8 + subs r3, #1 + bne _0800270A + pop {r4, r5, r6, pc} + + thumb_func_start sub_08002724 +sub_08002724: @ 0x08002724 + push {r4, r5, lr} + movs r2, #0x10 + movs r3, #0xf +_0800272A: + ldrb r4, [r0] + lsrs r5, r4, #4 + ands r4, r3 + strb r4, [r1] + strb r5, [r1, #1] + ldrb r4, [r0, #1] + lsrs r5, r4, #4 + ands r4, r3 + strb r4, [r1, #2] + strb r5, [r1, #3] + ldrb r4, [r0, #2] + lsrs r5, r4, #4 + ands r4, r3 + strb r4, [r1, #4] + strb r5, [r1, #5] + ldrb r4, [r0, #3] + lsrs r5, r4, #4 + ands r4, r3 + strb r4, [r1, #6] + strb r5, [r1, #7] + adds r0, #4 + adds r1, #8 + subs r2, #1 + bne _0800272A + pop {r4, r5, pc} +_0800275C: + .byte 0x06, 0x00, 0x06, 0x60 + .byte 0x06, 0x60, 0x06, 0x60, 0x06, 0x60, 0x06, 0x60, 0x06, 0x60, 0x06, 0x60, 0x00, 0x60, 0x60, 0x60 + .byte 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x60, 0x06 + .byte 0x60, 0x06, 0x60, 0x06, 0x60, 0x06, 0x60, 0x06, 0x60, 0x06, 0x60, 0x06, 0x00, 0x06, 0x06, 0x06 + .byte 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06 + + thumb_func_start sub_0800279C +sub_0800279C: @ 0x0800279C + movs r1, #0x3a + ldrb r3, [r0, r1] + movs r2, #4 + ands r2, r3 + bne _080027AE + movs r1, #0x41 + ldrb r2, [r0, r1] + lsrs r2, r2, #7 + bne _080027CE +_080027AE: + movs r1, #0x42 + ldrb r2, [r0, r1] + cmp r2, #0 + bne _080027D2 + movs r1, #0x45 + ldrb r2, [r0, r1] + cmp r2, #0 + beq _080027D6 + lsrs r2, r3, #3 + bhs _080027E2 + movs r1, #0x43 + ldrb r2, [r0, r1] + cmp r2, #0 + bne _080027E6 +_080027CA: + movs r0, #0 + bx lr +_080027CE: + movs r0, #1 + bx lr +_080027D2: + movs r0, #2 + bx lr +_080027D6: + ldrb r2, [r0, #0xc] + ldrb r0, [r0, #0xd] + orrs r0, r2 + beq _080027CA + movs r0, #3 + bx lr +_080027E2: + movs r0, #5 + bx lr +_080027E6: + movs r0, #4 + bx lr + + non_word_aligned_thumb_func_start sub_080027EA +sub_080027EA: @ 0x080027EA + push {r4, r5, r6, r7, lr} + movs r3, #0x80 + tst r2, r3 + bne _08002860 + movs r4, #0x2a + ldrh r3, [r0, r4] + movs r4, #7 + tst r2, r4 + bne _08002812 + push {r0, r1, r2, r3} + adds r0, r2, #0 + adds r1, r3, #0 + bl sub_08002864 + adds r4, r0, #0 + pop {r0, r1, r2, r3} + cmp r2, r4 + beq _08002812 + adds r2, r4, #0 + ldr r1, _0800296C @ =0x00000100 +_08002812: + ldr r4, _08002970 @ =0x0800275C + lsls r2, r2, #1 + ldrh r4, [r4, r2] + lsls r2, r2, #3 + ands r3, r4 + ldr r4, _08002974 @ =0x0000EE00 + tst r3, r4 + bne _0800283E + push {r0, r1, r2, r3} + ldr r4, _08002978 @ =gUnk_080C9160 + ldrh r0, [r4, r2] + cmp r0, #0 + beq _08002834 + adds r6, #1 + bl sub_0806F9EC + lsls r0, r0, #8 +_08002834: + adds r4, r0, #0 + pop {r0, r1, r2, r3} + ldr r5, [r0, #0x2c] + adds r5, r5, r4 + str r5, [r0, #0x2c] +_0800283E: + movs r4, #0xee + tst r3, r4 + bne _08002860 + push {r0, r1, r2, r3} + ldr r4, _0800297C @ =gUnk_080C91E0 + ldrh r0, [r4, r2] + cmp r0, #0 + beq _08002856 + adds r6, #2 + bl sub_0806F9EC + lsls r0, r0, #8 +_08002856: + adds r4, r0, #0 + pop {r0, r1, r2, r3} + ldr r5, [r0, #0x30] + subs r5, r5, r4 + str r5, [r0, #0x30] +_08002860: + adds r1, r6, #0 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08002864 +sub_08002864: @ 0x08002864 + adds r2, r0, #0 + lsrs r2, r2, #3 + cmp r2, #0 + beq _080028A8 + subs r2, #1 + beq _0800288E + subs r2, #1 + beq _080028C2 + ldr r3, _08002980 @ =0x00000E00 + ands r3, r1 + bne _0800287C + bx lr +_0800287C: + movs r2, #0 + ldr r3, _08002984 @ =0x0000020E + tst r3, r1 + beq _080028DC + movs r2, #0x10 + ldr r3, _08002988 @ =0x000004E0 + tst r3, r1 + beq _080028DC + bx lr +_0800288E: + ldr r3, _0800298C @ =0x0000E000 + ands r3, r1 + bne _08002896 + bx lr +_08002896: + movs r2, #0 + ldr r3, _08002990 @ =0x0000200E + tst r3, r1 + beq _080028DC + movs r2, #0x10 + ldr r3, _08002994 @ =0x000040E0 + tst r3, r1 + beq _080028DC + bx lr +_080028A8: + movs r3, #0xe + ands r3, r1 + bne _080028B0 + bx lr +_080028B0: + movs r2, #8 + ldr r3, _08002998 @ =0x0000E004 + tst r3, r1 + beq _080028DC + movs r2, #0x18 + ldr r3, _0800299C @ =0x00000E02 + tst r3, r1 + beq _080028DC + bx lr +_080028C2: + movs r3, #0xe0 + ands r3, r1 + bne _080028CA + bx lr +_080028CA: + movs r2, #8 + ldr r3, _080029A0 @ =0x0000E040 + tst r3, r1 + beq _080028DC + movs r2, #0x18 + ldr r3, _080029A4 @ =0x00000E20 + tst r3, r1 + beq _080028DC + bx lr +_080028DC: + adds r0, r2, #0 + bx lr + + thumb_func_start sub_080028E0 +sub_080028E0: @ 0x080028E0 + movs r1, #0x3d + movs r3, #1 + ldrsb r2, [r0, r1] + cmp r2, #0 + beq _080028F2 + bmi _080028EE + rsbs r3, r3, #0 +_080028EE: + adds r2, r2, r3 + strb r2, [r0, r1] +_080028F2: + bx lr + + thumb_func_start sub_080028F4 +sub_080028F4: @ 0x080028F4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08000E50 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0 +_08002902: + ldrb r2, [r4, r1] + adds r1, #1 + subs r0, r0, r2 + bpl _08002902 + subs r0, r1, #1 + pop {r4, pc} + + non_word_aligned_thumb_func_start sub_0800290E +sub_0800290E: @ 0x0800290E + push {r4, r5, r6, lr} + ldr r4, _080029A8 @ =gUnk_03000BF0 + ldrh r5, [r4, #0xa] + ldrh r6, [r4, #6] + subs r5, r5, r6 + subs r5, r5, r2 + subs r0, r0, r5 + lsls r2, r2, #1 + adds r2, #0xf0 + cmp r0, r2 + bhs _0800293A + ldrh r5, [r4, #0xc] + ldrh r6, [r4, #8] + subs r5, r5, r6 + subs r5, r5, r3 + subs r1, r1, r5 + lsls r3, r3, #1 + adds r3, #0xa0 + cmp r1, r3 + bhs _0800293A + movs r0, #1 + pop {r4, r5, r6, pc} +_0800293A: + movs r0, #0 + pop {r4, r5, r6, pc} + + non_word_aligned_thumb_func_start sub_0800293E +sub_0800293E: @ 0x0800293E + push {r4, r5, r6, r7, lr} + ldr r4, _080029AC @ =gUnk_03000BF0 + ldr r7, _080029B0 @ =gUnk_03001160 + ldrh r6, [r4, #6] + ldrh r5, [r7, #0x2e] + subs r5, r5, r6 + subs r5, r5, r2 + subs r0, r0, r5 + lsls r2, r2, #1 + cmp r0, r2 + bhs _08002968 + ldrh r6, [r4, #8] + ldrh r5, [r7, #0x32] + subs r5, r5, r6 + subs r5, r5, r3 + subs r1, r1, r5 + lsls r3, r3, #1 + cmp r1, r3 + bhs _08002968 + movs r0, #1 + pop {r4, r5, r6, r7, pc} +_08002968: + movs r0, #0 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0800296C: .4byte 0x00000100 +_08002970: .4byte 0x0800275C +_08002974: .4byte 0x0000EE00 +_08002978: .4byte gUnk_080C9160 +_0800297C: .4byte gUnk_080C91E0 +_08002980: .4byte 0x00000E00 +_08002984: .4byte 0x0000020E +_08002988: .4byte 0x000004E0 +_0800298C: .4byte 0x0000E000 +_08002990: .4byte 0x0000200E +_08002994: .4byte 0x000040E0 +_08002998: .4byte 0x0000E004 +_0800299C: .4byte 0x00000E02 +_080029A0: .4byte 0x0000E040 +_080029A4: .4byte 0x00000E20 +_080029A8: .4byte gUnk_03000BF0 +_080029AC: .4byte gUnk_03000BF0 +_080029B0: .4byte gUnk_03001160 diff --git a/asm/code_08003FC4.s b/asm/code_08003FC4.s new file mode 100644 index 00000000..5ec96215 --- /dev/null +++ b/asm/code_08003FC4.s @@ -0,0 +1,2473 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_08003FC4 +sub_08003FC4: @ 0x08003FC4 + adds r3, r0, #0 + ldr r0, [r3, #0x34] + ldr r2, [r3, #0x20] + subs r0, r0, r2 + bpl _08003FD6 + subs r2, r2, r1 + str r0, [r3, #0x34] + str r2, [r3, #0x20] + bx lr +_08003FD6: + movs r0, #0 + str r0, [r3, #0x34] + str r0, [r3, #0x20] + bx lr + + non_word_aligned_thumb_func_start sub_08003FDE +sub_08003FDE: @ 0x08003FDE + push {r0, lr} + bl sub_08003FF2 + cmp r0, #0 + pop {r2} + beq _08003FF0 + adds r0, r2, #0 + bl sub_0806F58C +_08003FF0: + pop {pc} + + non_word_aligned_thumb_func_start sub_08003FF2 +sub_08003FF2: @ 0x08003FF2 + push {r4, r5, r6, r7, lr} + ldr r4, [r1, #0x48] + ldrb r5, [r4, #6] + ldrb r6, [r4, #7] + adds r2, r2, r5 + adds r3, r3, r6 + ldrh r5, [r1, #0x2e] + movs r7, #0 + ldrsb r7, [r4, r7] + ldrb r6, [r1, #0x18] + lsrs r6, r6, #3 + blo _0800400C + rsbs r7, r7, #0 +_0800400C: + adds r5, r5, r7 + ldrh r6, [r1, #0x32] + movs r7, #1 + ldrsb r7, [r4, r7] + adds r6, r6, r7 + movs r4, #0x38 + ldrb r7, [r0, r4] + ldrb r4, [r1, r4] + ands r7, r4 + movs r4, #3 + cmp r7, r4 + beq _08004048 + cmp r2, #0 + beq _08004034 + ldrh r4, [r0, #0x2e] + subs r4, r4, r5 + adds r4, r4, r2 + lsls r2, r2, #1 + cmp r2, r4 + blo _08004048 +_08004034: + cmp r3, #0 + beq _08004044 + ldrh r4, [r0, #0x32] + subs r4, r4, r6 + adds r4, r4, r3 + lsls r3, r3, #1 + cmp r3, r4 + blo _08004048 +_08004044: + movs r0, #1 + pop {r4, r5, r6, r7, pc} +_08004048: + movs r0, #0 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0800404C +sub_0800404C: @ 0x0800404C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r0, #0x18] + movs r2, #3 + ands r1, r2 + beq _0800409A + cmp r1, #3 + beq _08004064 + bl sub_080040A2 + cmp r0, #0 + beq _0800409A +_08004064: + ldrb r1, [r4, #0x19] + movs r2, #0xc0 + ands r1, r2 + lsrs r1, r1, #4 + ldr r2, _08004358 @ =gUnk_081326EC + ldr r1, [r2, r1] + ldrb r2, [r1] + cmp r2, #0x40 + bhs _0800407E + adds r2, #1 + strb r2, [r1] + lsls r2, r2, #2 + str r4, [r1, r2] +_0800407E: + movs r2, #0 + ldr r1, _0800435C @ =gUnk_02024048 + ldrb r5, [r1] + strb r2, [r1] + cmp r5, #0 + beq _080040A0 + ldr r4, _08004360 @ =gUnk_02021F20 +_0800408C: + ldrh r0, [r4] + bl sub_080A3268 + adds r4, #2 + subs r5, #1 + bne _0800408C + pop {r4, r5, pc} +_0800409A: + ldr r1, _08004364 @ =gUnk_02024048 + movs r2, #0 + strb r2, [r1] +_080040A0: + pop {r4, r5, pc} + + non_word_aligned_thumb_func_start sub_080040A2 +sub_080040A2: @ 0x080040A2 + ldrb r1, [r0, #0x18] + lsrs r1, r1, #2 + bhs _080040D0 + + thumb_func_start sub_080040A8 +sub_080040A8: @ 0x080040A8 + ldr r1, _08004368 @ =gUnk_03000BF0 + movs r2, #0x2e + ldrsh r2, [r0, r2] + ldrh r3, [r1, #0xa] + subs r2, r2, r3 + adds r2, #0x3f + ldr r3, _0800436C @ =0x0000016E + cmp r2, r3 + bhs _080040D4 + movs r2, #0x32 + ldrsh r2, [r0, r2] + ldrh r3, [r1, #0xc] + subs r2, r2, r3 + movs r3, #0x36 + ldrsh r3, [r0, r3] + adds r2, r2, r3 + adds r2, #0x3f + ldr r3, _08004370 @ =0x0000011E + cmp r2, r3 + bhs _080040D4 +_080040D0: + movs r0, #1 + bx lr +_080040D4: + movs r0, #0 + bx lr + + thumb_func_start sub_080040D8 +sub_080040D8: @ 0x080040D8 + push {lr} + bl _080040F2 + adds r0, r2, #0 + pop {pc} + + non_word_aligned_thumb_func_start sub_080040E2 +sub_080040E2: @ 0x080040E2 + push {lr} + bl sub_080040EC + adds r0, r2, #0 + pop {pc} + + thumb_func_start sub_080040EC +sub_080040EC: @ 0x080040EC + ldrh r2, [r0, #0x2e] + ldrh r3, [r0, #0x32] + b _080040F2 +_080040F2: + push {r2, r3, r4, lr} + ldr r4, _08004374 @ =gUnk_03000BF6 + ldrh r4, [r4] + subs r2, r2, r4 + ldr r4, _08004378 @ =gUnk_03000BF8 + ldrh r4, [r4] + subs r3, r3, r4 + ldr r4, _0800437C @ =0x000003F0 + ands r2, r4 + ands r3, r4 + lsrs r2, r2, #4 + lsls r3, r3, #2 + adds r2, r2, r3 + movs r3, #0x38 + ldrb r3, [r0, r3] + lsls r3, r3, #2 + ldr r4, _08004380 @ =0x08000248 + ldr r3, [r4, r3] + ldrb r4, [r3, r2] + pop {r2, r3} + cmp r4, #0x10 + bhs _0800412C + lsrs r3, r3, #4 + bhs _08004124 + lsrs r4, r4, #2 +_08004124: + lsrs r2, r2, #4 + bhs _08004162 + lsrs r4, r4, #1 + b _08004162 +_0800412C: + cmp r4, #0xff + beq _08004162 + subs r4, #0x10 + lsls r4, r4, #1 + ldrh r4, [r1, r4] + movs r1, #0xf + ands r1, r2 + cmp r1, #4 + blo _0800414C + lsrs r4, r4, #1 + cmp r1, #8 + blo _0800414C + lsrs r4, r4, #1 + cmp r1, #0xc + blo _0800414C + lsrs r4, r4, #1 +_0800414C: + movs r1, #0xf + ands r1, r3 + cmp r1, #4 + blo _08004162 + lsrs r4, r4, #4 + cmp r1, #8 + blo _08004162 + lsrs r4, r4, #4 + cmp r1, #0xc + blo _08004162 + lsrs r4, r4, #4 +_08004162: + movs r2, #1 + ands r2, r4 + pop {r4, pc} + + thumb_func_start sub_08004168 +sub_08004168: @ 0x08004168 + ldr r3, _08004384 @ =0x000FFFFF + ldr r1, _08004388 @ =0x00080000 + ldr r2, [r0, #0x2c] + bics r2, r3 + adds r2, r2, r1 + str r2, [r0, #0x2c] + ldr r2, [r0, #0x30] + bics r2, r3 + adds r2, r2, r1 + str r2, [r0, #0x30] + bx lr + + non_word_aligned_thumb_func_start sub_0800417E +sub_0800417E: @ 0x0800417E + ldrb r2, [r0, #0x15] + ldr r3, _0800438C @ =0x0000EE00 + tst r1, r3 + beq _0800418A + movs r3, #0x20 + subs r2, r3, r2 +_0800418A: + movs r3, #0xee + tst r1, r3 + beq _08004194 + movs r3, #0x10 + subs r2, r3, r2 +_08004194: + movs r3, #0x1f + ands r2, r3 + strb r2, [r0, #0x15] + bx lr + + thumb_func_start sub_0800419C +sub_0800419C: @ 0x0800419C + push {r5, r6, lr} + b _080041B0 + + thumb_func_start sub_080041A0 +sub_080041A0: @ 0x080041A0 + push {r5, r6, lr} + movs r6, #0x38 + ldrb r5, [r0, r6] + ldrb r6, [r1, r6] + ands r5, r6 + movs r6, #3 + tst r5, r6 + beq _080041D8 +_080041B0: + cmp r2, #0 + beq _080041C2 + ldrh r5, [r0, #0x2e] + ldrh r6, [r1, #0x2e] + subs r5, r5, r6 + adds r5, r5, r2 + lsls r2, r2, #1 + cmp r2, r5 + blo _080041D8 +_080041C2: + cmp r3, #0 + beq _080041D4 + ldrh r5, [r0, #0x32] + ldrh r6, [r1, #0x32] + subs r5, r5, r6 + adds r5, r5, r3 + lsls r3, r3, #1 + cmp r3, r5 + blo _080041D8 +_080041D4: + movs r0, #1 + pop {r5, r6, pc} +_080041D8: + movs r0, #0 + pop {r5, r6, pc} + + thumb_func_start sub_080041DC +sub_080041DC: @ 0x080041DC + push {r1, r2} + movs r2, #0x32 + ldrsh r1, [r0, r2] + movs r3, #0x2e + ldrsh r0, [r0, r3] + pop {r2, r3} + + thumb_func_start sub_080041E8 +sub_080041E8: @ 0x080041E8 + subs r0, r0, r2 + subs r1, r1, r3 + + thumb_func_start sub_080041EC +sub_080041EC: @ 0x080041EC + adds r2, r0, #0 + muls r0, r2, r0 + adds r3, r1, #0 + muls r1, r3, r1 + push {lr} + adds r0, r0, r1 + lsls r0, r0, #8 + bl Sqrt + pop {r3} + bx r3 + + non_word_aligned_thumb_func_start sub_08004202 +sub_08004202: @ 0x08004202 + push {r1, lr} + ldrb r1, [r0, #0x14] + bl sub_08004212 + pop {r0} + str r1, [r0] + adds r0, r2, #0 + pop {pc} + + non_word_aligned_thumb_func_start sub_08004212 +sub_08004212: @ 0x08004212 + push {r4} + adds r4, r1, #0 + movs r3, #3 + tst r4, r3 + beq _08004226 + movs r3, #2 + lsrs r4, r4, #3 + blo _08004224 + rsbs r3, r3, #0 +_08004224: + adds r2, r2, r3 +_08004226: + adds r4, r1, #0 + movs r3, #3 + ands r4, r3 + cmp r4, #2 + beq _0800423C + movs r3, #0x80 + adds r1, #1 + lsrs r1, r1, #3 + bhs _0800423A + rsbs r3, r3, #0 +_0800423A: + adds r2, r2, r3 +_0800423C: + ldr r3, _08004390 @ =0x00001FFF + ands r2, r3 + movs r4, #0x38 + ldrb r4, [r0, r4] + lsls r4, r4, #3 + ldr r3, _08004394 @ =0x08000228 + adds r3, r3, r4 + ldr r4, [r3] + ldrh r1, [r4, r2] + ldr r4, _08004398 @ =0x00004000 + tst r1, r4 + bne _0800425C + lsls r1, r1, #0x11 + lsrs r1, r1, #0x10 + ldr r4, [r3, #4] + ldrh r1, [r4, r1] +_0800425C: + pop {r4} + bx lr + + thumb_func_start sub_08004260 +sub_08004260: @ 0x08004260 + movs r2, #0x58 + strb r1, [r0, r2] + ldrh r3, [r0, #0x12] + lsls r3, r3, #4 + ldr r2, _0800439C @ =gUnk_080029B4 + ldr r2, [r2, r3] + lsls r1, r1, #2 + ldr r1, [r2, r1] + str r1, [r0, #0x5c] + b _0800432A + + thumb_func_start sub_08004274 +sub_08004274: @ 0x08004274 + movs r1, #1 + + non_word_aligned_thumb_func_start sub_08004276 +sub_08004276: @ 0x08004276 + movs r3, #0x59 + ldrb r2, [r0, r3] + subs r2, r2, r1 + beq _0800432A + ble _08004284 + strb r2, [r0, r3] + bx lr +_08004284: + ldr r1, [r0, #0x5c] +_08004286: + ldrb r3, [r1, #1] + adds r2, r2, r3 + bgt _0800429C + ldrb r3, [r1, #3] + adds r1, #4 + lsrs r3, r3, #8 + blo _08004286 + ldrb r3, [r1] + lsls r3, r3, #2 + subs r1, r1, r3 + b _08004286 +_0800429C: + str r1, [r0, #0x5c] + push {r2, lr} + bl _0800432A + pop {r2, r3} + movs r1, #0x59 + strb r2, [r0, r1] + bx r3 + + thumb_func_start sub_080042AC +sub_080042AC: @ 0x080042AC + push {lr} + bl sub_08004260 + movs r2, #0xff + strb r2, [r0, #0x1f] + b _080042C0 + + thumb_func_start sub_080042B8 +sub_080042B8: @ 0x080042B8 + movs r1, #1 + + non_word_aligned_thumb_func_start sub_080042BA +sub_080042BA: @ 0x080042BA + push {lr} + bl sub_08004276 +_080042C0: + pop {r1} + mov lr, r1 + ldrb r1, [r0, #0x1e] + ldrb r3, [r0, #0x1f] + strb r1, [r0, #0x1f] + cmp r1, r3 + beq _08004328 + ldrh r2, [r0, #0x12] + + thumb_func_start sub_080042D0 +sub_080042D0: @ 0x080042D0 + cmp r1, #0xff + beq _08004328 + lsls r2, r2, #4 + lsls r3, r1, #2 + ldr r1, _080043A0 @ =gUnk_080029B4 + adds r1, r1, r2 + ldr r2, [r1, #4] + cmp r2, #0 + beq _08004328 + ldr r1, [r1, #8] + adds r2, r2, r3 + ldrb r3, [r2] + cmp r3, #0 + beq _08004328 + push {r4, r5} + movs r3, #0x26 + ldrb r3, [r0, r3] + movs r4, #0xc + muls r3, r4, r3 + ldr r4, _080043A4 @ =gUnk_02024494 + adds r4, r4, r3 + ldrb r3, [r4] + movs r5, #0xf + ands r3, r5 + cmp r3, #5 + blo _08004326 + ldrb r5, [r4, #6] + ldrb r3, [r2] + strb r3, [r4, #6] + subs r5, r5, r3 + ldrh r3, [r2, #2] + lsls r3, r3, #5 + adds r1, r1, r3 + ldr r2, [r4, #8] + str r1, [r4, #8] + subs r2, r2, r1 + orrs r5, r2 + beq _08004326 + movs r2, #0xf0 + ldrb r1, [r4] + bics r1, r2 + adds r1, #0x30 + strb r1, [r4] +_08004326: + pop {r4, r5} +_08004328: + bx lr +_0800432A: + ldrb r3, [r0, #0x1e] + strb r3, [r0, #0x1f] + ldr r1, [r0, #0x5c] + ldrb r3, [r1] + strb r3, [r0, #0x1e] + ldrb r3, [r1, #1] + movs r2, #0x59 + strb r3, [r0, r2] + ldrb r3, [r1, #2] + movs r2, #0x5b + strb r3, [r0, r2] + ldrb r3, [r1, #3] + movs r2, #0x5a + strb r3, [r0, r2] + adds r1, #4 + lsrs r3, r3, #8 + blo _08004352 + ldrb r3, [r1] + lsls r3, r3, #2 + subs r1, r1, r3 +_08004352: + str r1, [r0, #0x5c] + bx lr + .align 2, 0 +_08004358: .4byte gUnk_081326EC +_0800435C: .4byte gUnk_02024048 +_08004360: .4byte gUnk_02021F20 +_08004364: .4byte gUnk_02024048 +_08004368: .4byte gUnk_03000BF0 +_0800436C: .4byte 0x0000016E +_08004370: .4byte 0x0000011E +_08004374: .4byte gUnk_03000BF6 +_08004378: .4byte gUnk_03000BF8 +_0800437C: .4byte 0x000003F0 +_08004380: .4byte 0x08000248 +_08004384: .4byte 0x000FFFFF +_08004388: .4byte 0x00080000 +_0800438C: .4byte 0x0000EE00 +_08004390: .4byte 0x00001FFF +_08004394: .4byte 0x08000228 +_08004398: .4byte 0x00004000 +_0800439C: .4byte gUnk_080029B4 +_080043A0: .4byte gUnk_080029B4 +_080043A4: .4byte gUnk_02024494 + + thumb_func_start sub_080043A8 +sub_080043A8: @ 0x080043A8 + movs r1, #0xb + b _080043B6 + + thumb_func_start sub_080043AC +sub_080043AC: @ 0x080043AC + movs r1, #0xc + b _080043B6 + + thumb_func_start sub_080043B0 +sub_080043B0: @ 0x080043AC + movs r1, #0x52 + b _080043B6 + + thumb_func_start sub_080043B4 +sub_080043B4: @ 0x080043B4 + movs r1, #0 +_080043B6: + push {r4, lr} + adds r4, r0, #0 + movs r0, #0xf + movs r2, #0 + bl sub_080A2960 + cmp r0, #0 + beq _080043E0 + movs r1, #0x48 + ldr r1, [r4, r1] + ldrh r3, [r4, #0x2e] + strh r3, [r0, #0x2e] + ldrh r3, [r4, #0x32] + strh r3, [r0, #0x32] + ldrh r3, [r4, #0x36] + strh r3, [r0, #0x36] + ldrb r3, [r4, #8] + cmp r3, #3 + bne _080043E0 + movs r1, #1 + strb r1, [r0, #0xb] +_080043E0: + adds r0, r4, #0 + bl sub_0805E7BC + pop {r4, pc} + + thumb_func_start sub_080043E8 +sub_080043E8: @ 0x080043E8 + push {r4, lr} + ldrb r1, [r0, #0xc] + cmp r1, #0 + beq _08004414 + adds r4, r0, #0 + bl sub_08016AD2 + movs r3, #0x36 + ldrsh r2, [r4, r3] + cmp r2, #0 + bmi _08004414 + cmp r0, #0 + beq _08004414 + add r3, pc, #0x10 +_08004404: + adds r3, #4 + ldrh r1, [r3] + cmp r1, #0 + beq _08004414 + cmp r0, r1 + bne _08004404 + ldrh r0, [r3, #2] + pop {r4, pc} +_08004414: + movs r0, #0 + pop {r4, pc} +_08004418: + .byte 0x0D, 0x00, 0x01, 0x00, 0x10, 0x00, 0x02, 0x00 + .byte 0x11, 0x00, 0x02, 0x00, 0x5A, 0x00, 0x03, 0x00, 0x13, 0x00, 0x04, 0x00, 0x00, 0x00 + + non_word_aligned_thumb_func_start sub_0800442E +sub_0800442E: @ 0x0800442E + push {r0, lr} + bl sub_080043E8 + cmp r0, #0 + beq _08004448 + lsls r0, r0, #2 + add r1, pc, #0xC + ldr r1, [r1, r0] + pop {r0} + bl _call_via_r1 + movs r0, #1 + pop {pc} +_08004448: + movs r0, #0 + pop {r1, pc} +_0800444C: .4byte 0x080043B5 +_08004450: .4byte 0x080043A9 +_08004454: .4byte 0x080043AD +_08004458: .4byte 0x080043B1 + + thumb_func_start sub_0800445C +sub_0800445C: @ 0x0800445C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08079F8C + cmp r0, #0 + beq _08004482 + ldr r5, _080044D8 @ =gUnk_03001160 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08004484 + cmp r0, #0 + beq _08004482 + ldrb r0, [r5, #0xc] + cmp r0, #2 + bne _08004480 + movs r0, #3 + strb r0, [r5, #0xd] +_08004480: + movs r0, #1 +_08004482: + pop {r4, r5, pc} + + thumb_func_start sub_08004484 +sub_08004484: @ 0x08004484 + ldr r2, _080044DC @ =gUnk_03005FF0 + bx r2 + + thumb_func_start sub_08004488 +sub_08004488: @ 0x08004488 + ldr r1, _080044E0 @ =gUnk_02024048 + ldrb r2, [r1] + cmp r2, #8 + bhs _0800449A + adds r3, r2, #1 + strb r3, [r1] + ldr r1, _080044E4 @ =gUnk_02021F20 + lsls r2, r2, #1 + strh r0, [r1, r2] +_0800449A: + bx lr + + thumb_func_start sub_0800449C +sub_0800449C: @ 0x0800449C + push {r1, lr} + bl sub_080040A8 + cmp r0, #0 + pop {r0} + beq _080044AC + bl sub_080A3268 +_080044AC: + pop {pc} + + non_word_aligned_thumb_func_start sub_080044AE +sub_080044AE: @ 0x080044AE + push {lr} + ldr r3, _080044E8 @ =gUnk_03001160 + cmp r0, r3 + beq _080044CC + push {r0, r1, r2} + adds r1, r2, #0 + movs r2, #2 + bl sub_080AE58C + pop {r0, r1, r2} + movs r3, #2 + bl sub_080AE7E8 +_080044C8: + pop {r3} + bx r3 +_080044CC: + adds r0, r1, #0 + adds r1, r2, #0 + bl sub_08079E58 + b _080044C8 + .align 2, 0 +_080044D8: .4byte gUnk_03001160 +_080044DC: .4byte gUnk_03005FF0 +_080044E0: .4byte gUnk_02024048 +_080044E4: .4byte gUnk_02021F20 +_080044E8: .4byte gUnk_03001160 + + thumb_func_start sub_080044EC +sub_080044EC: @ 0x080044EC + ldr r2, [r0, #0x34] + ldr r3, [r0, #0x20] + subs r2, r2, r3 + bpl _080044FE + str r2, [r0, #0x34] + subs r3, r3, r1 + str r3, [r0, #0x20] + movs r0, #2 + bx lr +_080044FE: + movs r2, #1 + str r2, [r0, #0x34] + subs r3, r3, r1 + rsbs r3, r3, #0 + lsrs r3, r3, #1 + lsrs r1, r3, #2 + adds r3, r3, r1 + lsrs r1, r3, #0xc + cmp r1, #0xc + bhs _08004516 + movs r2, #0 + movs r3, #0 +_08004516: + str r3, [r0, #0x20] + adds r0, r2, #0 + bx lr + + thumb_func_start sub_0800451C +sub_0800451C: @ 0x0800451C + push {r0, lr} + bl sub_080002B8 + adds r1, r0, #0 + pop {r0, r3} + mov lr, r3 + cmp r1, #0xc + beq sub_08004542 + cmp r1, #0xb + beq sub_08004542 + cmp r1, #0xa + beq sub_0800455E + cmp r1, #9 + beq sub_0800455E + cmp r1, #0x26 + beq _0800457A + cmp r1, #0x27 + beq _0800457A + bx lr + + non_word_aligned_thumb_func_start sub_08004542 +sub_08004542: @ 0x08004542 + movs r1, #0x38 + movs r2, #2 + strb r2, [r0, r1] + movs r2, #0xc0 + ldrb r1, [r0, #0x1b] + bics r1, r2 + adds r1, #0x40 + strb r1, [r0, #0x1b] + movs r2, #0xc0 + ldrb r1, [r0, #0x19] + bics r1, r2 + adds r1, #0x40 + strb r1, [r0, #0x19] + bx lr + + non_word_aligned_thumb_func_start sub_0800455E +sub_0800455E: @ 0x0800455E + movs r1, #0x38 + movs r2, #1 + strb r2, [r0, r1] + movs r2, #0xc0 + ldrb r1, [r0, #0x1b] + bics r1, r2 + adds r1, #0x80 + strb r1, [r0, #0x1b] + movs r2, #0xc0 + ldrb r1, [r0, #0x19] + bics r1, r2 + adds r1, #0x80 + strb r1, [r0, #0x19] + bx lr +_0800457A: + movs r1, #0x38 + movs r2, #3 + strb r2, [r0, r1] + movs r2, #0xc0 + ldrb r1, [r0, #0x1b] + bics r1, r2 + adds r1, #0x40 + strb r1, [r0, #0x1b] + movs r2, #0xc0 + ldrb r1, [r0, #0x19] + bics r1, r2 + adds r1, #0x40 + strb r1, [r0, #0x19] + bx lr + + non_word_aligned_thumb_func_start sub_08004596 +sub_08004596: @ 0x08004596 + movs r2, #0x1f + ldrb r3, [r0, #0x15] + cmp r3, #0x20 + bhs _080045AE + subs r1, r1, r3 + beq _080045B2 + ands r1, r2 + cmp r1, #0x10 + movs r1, #1 + blo _080045AC + rsbs r1, r1, #0 +_080045AC: + adds r1, r3, r1 +_080045AE: + ands r1, r2 + strb r1, [r0, #0x15] +_080045B2: + bx lr + + thumb_func_start sub_080045B4 +sub_080045B4: @ 0x080045B4 + mov ip, r2 + adds r2, r1, #0 + movs r3, #0x32 + ldrsh r1, [r0, r3] + movs r3, #0x2e + ldrsh r0, [r0, r3] + ldr r3, _08004690 @ =gUnk_030060F0 + bx r3 + + thumb_func_start sub_080045C4 +sub_080045C4: @ 0x080045C4 + push {r4, r5} + movs r4, #0x32 + movs r5, #0x2e + ldrsh r3, [r1, r4] + ldrsh r2, [r1, r5] + ldrsh r1, [r0, r4] + ldrsh r0, [r0, r5] + pop {r4, r5} + + thumb_func_start sub_080045D4 +sub_080045D4: @ 0x080045D4 + mov ip, r3 + ldr r3, _08004694 @ =gUnk_030060F0 + bx r3 + + non_word_aligned_thumb_func_start sub_080045DA +sub_080045DA: @ 0x080045DA + push {r0, r1, r4, r5, r6, lr} + movs r6, #0x40 + cmp r0, #0 + beq _08004632 + ldr r5, _08004698 @ =gUnk_080C93E0 + lsls r2, r1, #8 + adds r1, r0, #0 + adds r0, r2, #0 + bl Div + ldr r1, _0800469C @ =0x00000106 + cmp r3, r1 + bhs _08004608 + movs r1, #0x6e + cmp r3, r1 + bhs _08004602 + movs r6, #0 + movs r1, #0 + movs r2, #0x20 + b _08004618 +_08004602: + movs r1, #0x20 + movs r2, #0x40 + b _08004618 +_08004608: + ldr r1, _080046A0 @ =0x00000280 + cmp r3, r1 + bhs _08004614 + movs r1, #0x40 + movs r2, #0x60 + b _08004618 +_08004614: + movs r1, #0x60 + movs r2, #0x7e +_08004618: + adds r0, r1, r5 + ldrh r4, [r0] + cmp r3, r4 + blo _0800462C + ldrh r4, [r0, #2] + cmp r3, r4 + bhs _0800462C + lsrs r6, r1, #1 + adds r6, #1 + b _08004632 +_0800462C: + adds r1, #2 + cmp r1, r2 + blo _08004618 +_08004632: + adds r2, r6, #0 + pop {r0, r1, r4, r5, r6} + cmp r0, #0 + bmi _08004644 + movs r0, #0x40 + cmp r1, #0 + bmi _0800464A +_08004640: + adds r0, r0, r2 + pop {pc} +_08004644: + movs r0, #0xc0 + cmp r1, #0 + bmi _08004640 +_0800464A: + subs r0, r0, r2 + pop {pc} +_0800464E: + .byte 0x00, 0x01 + .byte 0x02, 0x03, 0x04, 0x00, 0x00, 0x00, 0x08, 0x07, 0x06, 0x05, 0x04, 0x00, 0x00, 0x00, 0x10, 0x0F + .byte 0x0E, 0x0D, 0x0C, 0x00, 0x00, 0x00, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x1F + .byte 0x1E, 0x1D, 0x1C, 0x00, 0x00, 0x00, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x00, 0x00, 0x00, 0x10, 0x11 + .byte 0x12, 0x13, 0x14, 0x00, 0x00, 0x00, 0x18, 0x17, 0x16, 0x15, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00 +_08004690: .4byte gUnk_030060F0 +_08004694: .4byte gUnk_030060F0 +_08004698: .4byte gUnk_080C93E0 +_0800469C: .4byte 0x00000106 +_080046A0: .4byte 0x00000280 + +gUnk_080046A4:: @ 080046A4 + .incbin "baserom.gba", 0x0046A4, 0x0000063 + +gUnk_08004707:: @ 08004707 + .incbin "baserom.gba", 0x004707, 0x0000063 + +gUnk_0800476A:: @ 0800476A + .incbin "baserom.gba", 0x00476A, 0x000008C + +gUnk_080047F6:: @ 080047F6 + .incbin "baserom.gba", 0x0047F6, 0x0000200 + +gUnk_080049F6:: @ 080049F6 + .incbin "baserom.gba", 0x0049F6, 0x000000A + +gUnk_08004A00:: @ 08004A00 + .incbin "baserom.gba", 0x004A00, 0x000000C + +gUnk_08004A0C:: @ 08004A0C + .incbin "baserom.gba", 0x004A0C, 0x000000A + +gUnk_08004A16:: @ 08004A16 + .incbin "baserom.gba", 0x004A16, 0x000000A + +gUnk_08004A20:: @ 08004A20 + .incbin "baserom.gba", 0x004A20, 0x0000004 + +gUnk_08004A24:: @ 08004A24 + .incbin "baserom.gba", 0x004A24, 0x000000E + +gUnk_08004A32:: @ 08004A32 + .incbin "baserom.gba", 0x004A32, 0x0000016 + +gUnk_08004A48:: @ 08004A48 + .incbin "baserom.gba", 0x004A48, 0x000002A + +gUnk_08004A72:: @ 08004A72 + .incbin "baserom.gba", 0x004A72, 0x000001A + +gUnk_08004A8C:: @ 08004A8C + .incbin "baserom.gba", 0x004A8C, 0x000001A + +gUnk_08004AA6:: @ 08004AA6 + .incbin "baserom.gba", 0x004AA6, 0x0000046 + +gUnk_08004AEC:: @ 08004AEC + .incbin "baserom.gba", 0x004AEC, 0x0000005 + +gUnk_08004AF1:: @ 08004AF1 + .incbin "baserom.gba", 0x004AF1, 0x000000F + +gUnk_08004B00:: @ 08004B00 + .incbin "baserom.gba", 0x004B00, 0x000001A + +gUnk_08004B1A:: @ 08004B1A + .incbin "baserom.gba", 0x004B1A, 0x0000009 + +gUnk_08004B23:: @ 08004B23 + .incbin "baserom.gba", 0x004B23, 0x0000020 + +gUnk_08004B43:: @ 08004B43 + .incbin "baserom.gba", 0x004B43, 0x0000029 + +gUnk_08004B6C:: @ 08004B6C + .incbin "baserom.gba", 0x004B6C, 0x0000029 + +gUnk_08004B95:: @ 08004B95 + .incbin "baserom.gba", 0x004B95, 0x0000029 + +gUnk_08004BBE:: @ 08004BBE + .incbin "baserom.gba", 0x004BBE, 0x0000030 + +gUnk_08004BEE:: @ 08004BEE + .incbin "baserom.gba", 0x004BEE, 0x0000009 + +gUnk_08004BF7:: @ 08004BF7 + .incbin "baserom.gba", 0x004BF7, 0x0000009 + +gUnk_08004C00:: @ 08004C00 + .incbin "baserom.gba", 0x004C00, 0x0000006 + +gUnk_08004C06:: @ 08004C06 + .incbin "baserom.gba", 0x004C06, 0x000000A + +gUnk_08004C10:: @ 08004C10 + .incbin "baserom.gba", 0x004C10, 0x0000010 + +gUnk_08004C20:: @ 08004C20 + .incbin "baserom.gba", 0x004C20, 0x0000007 + +gUnk_08004C27:: @ 08004C27 + .incbin "baserom.gba", 0x004C27, 0x0000009 + +gUnk_08004C30:: @ 08004C30 + .incbin "baserom.gba", 0x004C30, 0x0000030 + +gUnk_08004C60:: @ 08004C60 + .incbin "baserom.gba", 0x004C60, 0x0000009 + +gUnk_08004C69:: @ 08004C69 + .incbin "baserom.gba", 0x004C69, 0x0000069 + +gUnk_08004CD2:: @ 08004CD2 + .incbin "baserom.gba", 0x004CD2, 0x0000055 + +gUnk_08004D27:: @ 08004D27 + .incbin "baserom.gba", 0x004D27, 0x0000069 + +gUnk_08004D90:: @ 08004D90 + .incbin "baserom.gba", 0x004D90, 0x0000055 + +gUnk_08004DE5:: @ 08004DE5 + .incbin "baserom.gba", 0x004DE5, 0x000002B + +gUnk_08004E10:: @ 08004E10 + .incbin "baserom.gba", 0x004E10, 0x000003E + +gUnk_08004E4E:: @ 08004E4E + .incbin "baserom.gba", 0x004E4E, 0x0000055 + +gUnk_08004EA3:: @ 08004EA3 + .incbin "baserom.gba", 0x004EA3, 0x0000069 + +gUnk_08004F0C:: @ 08004F0C + .incbin "baserom.gba", 0x004F0C, 0x0000014 + +gUnk_08004F20:: @ 08004F20 + .incbin "baserom.gba", 0x004F20, 0x0000041 + +gUnk_08004F61:: @ 08004F61 + .incbin "baserom.gba", 0x004F61, 0x0000041 + +gUnk_08004FA2:: @ 08004FA2 + .incbin "baserom.gba", 0x004FA2, 0x0000005 + +gUnk_08004FA7:: @ 08004FA7 + .incbin "baserom.gba", 0x004FA7, 0x000003C + +gUnk_08004FE3:: @ 08004FE3 + .incbin "baserom.gba", 0x004FE3, 0x000003A + +gUnk_0800501D:: @ 0800501D + .incbin "baserom.gba", 0x00501D, 0x0000007 + +gUnk_08005024:: @ 08005024 + .incbin "baserom.gba", 0x005024, 0x0000041 + +gUnk_08005065:: @ 08005065 + .incbin "baserom.gba", 0x005065, 0x0000015 + +gUnk_0800507A:: @ 0800507A + .incbin "baserom.gba", 0x00507A, 0x0000015 + +gUnk_0800508F:: @ 0800508F + .incbin "baserom.gba", 0x00508F, 0x0000015 + +gUnk_080050A4:: @ 080050A4 + .incbin "baserom.gba", 0x0050A4, 0x0000011 + +gUnk_080050B5:: @ 080050B5 + .incbin "baserom.gba", 0x0050B5, 0x0000011 + +gUnk_080050C6:: @ 080050C6 + .incbin "baserom.gba", 0x0050C6, 0x0000011 + +gUnk_080050D7:: @ 080050D7 + .incbin "baserom.gba", 0x0050D7, 0x0000034 + +gUnk_0800510B:: @ 0800510B + .incbin "baserom.gba", 0x00510B, 0x000000D + +gUnk_08005118:: @ 08005118 + .incbin "baserom.gba", 0x005118, 0x0000027 + +gUnk_0800513F:: @ 0800513F + .incbin "baserom.gba", 0x00513F, 0x0000034 + +gUnk_08005173:: @ 08005173 + .incbin "baserom.gba", 0x005173, 0x0000024 + +gUnk_08005197:: @ 08005197 + .incbin "baserom.gba", 0x005197, 0x0000008 + +gUnk_0800519F:: @ 0800519F + .incbin "baserom.gba", 0x00519F, 0x0000024 + +gUnk_080051C3:: @ 080051C3 + .incbin "baserom.gba", 0x0051C3, 0x0000008 + +gUnk_080051CB:: @ 080051CB + .incbin "baserom.gba", 0x0051CB, 0x0000024 + +gUnk_080051EF:: @ 080051EF + .incbin "baserom.gba", 0x0051EF, 0x0000008 + +gUnk_080051F7:: @ 080051F7 + .incbin "baserom.gba", 0x0051F7, 0x0000009 + +gUnk_08005200:: @ 08005200 + .incbin "baserom.gba", 0x005200, 0x0000003 + +gUnk_08005203:: @ 08005203 + .incbin "baserom.gba", 0x005203, 0x000000E + +gUnk_08005211:: @ 08005211 + .incbin "baserom.gba", 0x005211, 0x0000003 + +gUnk_08005214:: @ 08005214 + .incbin "baserom.gba", 0x005214, 0x000001D + +gUnk_08005231:: @ 08005231 + .incbin "baserom.gba", 0x005231, 0x000000F + +gUnk_08005240:: @ 08005240 + .incbin "baserom.gba", 0x005240, 0x000000E + +gUnk_0800524E:: @ 0800524E + .incbin "baserom.gba", 0x00524E, 0x0000025 + +gUnk_08005273:: @ 08005273 + .incbin "baserom.gba", 0x005273, 0x0000019 + +gUnk_0800528C:: @ 0800528C + .incbin "baserom.gba", 0x00528C, 0x000000D + +gUnk_08005299:: @ 08005299 + .incbin "baserom.gba", 0x005299, 0x000000D + +gUnk_080052A6:: @ 080052A6 + .incbin "baserom.gba", 0x0052A6, 0x000000D + +gUnk_080052B3:: @ 080052B3 + .incbin "baserom.gba", 0x0052B3, 0x0000010 + +gUnk_080052C3:: @ 080052C3 + .incbin "baserom.gba", 0x0052C3, 0x0000005 + +gUnk_080052C8:: @ 080052C8 + .incbin "baserom.gba", 0x0052C8, 0x0000010 + +gUnk_080052D8:: @ 080052D8 + .incbin "baserom.gba", 0x0052D8, 0x0000005 + +gUnk_080052DD:: @ 080052DD + .incbin "baserom.gba", 0x0052DD, 0x0000010 + +gUnk_080052ED:: @ 080052ED + .incbin "baserom.gba", 0x0052ED, 0x0000005 + +gUnk_080052F2:: @ 080052F2 + .incbin "baserom.gba", 0x0052F2, 0x0000018 + +gUnk_0800530A:: @ 0800530A + .incbin "baserom.gba", 0x00530A, 0x0000018 + +gUnk_08005322:: @ 08005322 + .incbin "baserom.gba", 0x005322, 0x0000018 + +gUnk_0800533A:: @ 0800533A + .incbin "baserom.gba", 0x00533A, 0x0000029 + +gUnk_08005363:: @ 08005363 + .incbin "baserom.gba", 0x005363, 0x0000029 + +gUnk_0800538C:: @ 0800538C + .incbin "baserom.gba", 0x00538C, 0x0000029 + +gUnk_080053B5:: @ 080053B5 + .incbin "baserom.gba", 0x0053B5, 0x0000061 + +gUnk_08005416:: @ 08005416 + .incbin "baserom.gba", 0x005416, 0x000000A + +gUnk_08005420:: @ 08005420 + .incbin "baserom.gba", 0x005420, 0x0000057 + +gUnk_08005477:: @ 08005477 + .incbin "baserom.gba", 0x005477, 0x0000010 + +gUnk_08005487:: @ 08005487 + .incbin "baserom.gba", 0x005487, 0x0000051 + +gUnk_080054D8:: @ 080054D8 + .incbin "baserom.gba", 0x0054D8, 0x000000D + +gUnk_080054E5:: @ 080054E5 + .incbin "baserom.gba", 0x0054E5, 0x0000010 + +gUnk_080054F5:: @ 080054F5 + .incbin "baserom.gba", 0x0054F5, 0x0000013 + +gUnk_08005508:: @ 08005508 + .incbin "baserom.gba", 0x005508, 0x000003C + +gUnk_08005544:: @ 08005544 + .incbin "baserom.gba", 0x005544, 0x0000002 + +gUnk_08005546:: @ 08005546 + .incbin "baserom.gba", 0x005546, 0x0000010 + +gUnk_08005556:: @ 08005556 + .incbin "baserom.gba", 0x005556, 0x000000D + +gUnk_08005563:: @ 08005563 + .incbin "baserom.gba", 0x005563, 0x0000010 + +gUnk_08005573:: @ 08005573 + .incbin "baserom.gba", 0x005573, 0x0000061 + +gUnk_080055D4:: @ 080055D4 + .incbin "baserom.gba", 0x0055D4, 0x000000D + +gUnk_080055E1:: @ 080055E1 + .incbin "baserom.gba", 0x0055E1, 0x0000010 + +gUnk_080055F1:: @ 080055F1 + .incbin "baserom.gba", 0x0055F1, 0x0000012 + +gUnk_08005603:: @ 08005603 + .incbin "baserom.gba", 0x005603, 0x0000005 + +gUnk_08005608:: @ 08005608 + .incbin "baserom.gba", 0x005608, 0x000003A + +gUnk_08005642:: @ 08005642 + .incbin "baserom.gba", 0x005642, 0x0000010 + +gUnk_08005652:: @ 08005652 + .incbin "baserom.gba", 0x005652, 0x0000021 + +gUnk_08005673:: @ 08005673 + .incbin "baserom.gba", 0x005673, 0x0000021 + +gUnk_08005694:: @ 08005694 + .incbin "baserom.gba", 0x005694, 0x0000021 + +gUnk_080056B5:: @ 080056B5 + .incbin "baserom.gba", 0x0056B5, 0x000000D + +gUnk_080056C2:: @ 080056C2 + .incbin "baserom.gba", 0x0056C2, 0x000000D + +gUnk_080056CF:: @ 080056CF + .incbin "baserom.gba", 0x0056CF, 0x000000D + +gUnk_080056DC:: @ 080056DC + .incbin "baserom.gba", 0x0056DC, 0x0000010 + +gUnk_080056EC:: @ 080056EC + .incbin "baserom.gba", 0x0056EC, 0x000000D + +gUnk_080056F9:: @ 080056F9 + .incbin "baserom.gba", 0x0056F9, 0x000000F + +gUnk_08005708:: @ 08005708 + .incbin "baserom.gba", 0x005708, 0x000000E + +gUnk_08005716:: @ 08005716 + .incbin "baserom.gba", 0x005716, 0x000001D + +gUnk_08005733:: @ 08005733 + .incbin "baserom.gba", 0x005733, 0x000001D + +gUnk_08005750:: @ 08005750 + .incbin "baserom.gba", 0x005750, 0x0000008 + +gUnk_08005758:: @ 08005758 + .incbin "baserom.gba", 0x005758, 0x0000005 + +gUnk_0800575D:: @ 0800575D + .incbin "baserom.gba", 0x00575D, 0x0000014 + +gUnk_08005771:: @ 08005771 + .incbin "baserom.gba", 0x005771, 0x0000008 + +gUnk_08005779:: @ 08005779 + .incbin "baserom.gba", 0x005779, 0x0000005 + +gUnk_0800577E:: @ 0800577E + .incbin "baserom.gba", 0x00577E, 0x0000014 + +gUnk_08005792:: @ 08005792 + .incbin "baserom.gba", 0x005792, 0x0000002 + +gUnk_08005794:: @ 08005794 + .incbin "baserom.gba", 0x005794, 0x0000006 + +gUnk_0800579A:: @ 0800579A + .incbin "baserom.gba", 0x00579A, 0x0000005 + +gUnk_0800579F:: @ 0800579F + .incbin "baserom.gba", 0x00579F, 0x0000014 + +gUnk_080057B3:: @ 080057B3 + .incbin "baserom.gba", 0x0057B3, 0x0000021 + +gUnk_080057D4:: @ 080057D4 + .incbin "baserom.gba", 0x0057D4, 0x0000021 + +gUnk_080057F5:: @ 080057F5 + .incbin "baserom.gba", 0x0057F5, 0x000001B + +gUnk_08005810:: @ 08005810 + .incbin "baserom.gba", 0x005810, 0x0000006 + +gUnk_08005816:: @ 08005816 + .incbin "baserom.gba", 0x005816, 0x0000001 + +gUnk_08005817:: @ 08005817 + .incbin "baserom.gba", 0x005817, 0x000000F + +gUnk_08005826:: @ 08005826 + .incbin "baserom.gba", 0x005826, 0x0000009 + +gUnk_0800582F:: @ 0800582F + .incbin "baserom.gba", 0x00582F, 0x0000010 + +gUnk_0800583F:: @ 0800583F + .incbin "baserom.gba", 0x00583F, 0x0000009 + +gUnk_08005848:: @ 08005848 + .incbin "baserom.gba", 0x005848, 0x0000010 + +gUnk_08005858:: @ 08005858 + .incbin "baserom.gba", 0x005858, 0x0000009 + +gUnk_08005861:: @ 08005861 + .incbin "baserom.gba", 0x005861, 0x0000021 + +gUnk_08005882:: @ 08005882 + .incbin "baserom.gba", 0x005882, 0x0000021 + +gUnk_080058A3:: @ 080058A3 + .incbin "baserom.gba", 0x0058A3, 0x0000021 + +gUnk_080058C4:: @ 080058C4 + .incbin "baserom.gba", 0x0058C4, 0x0000019 + +gUnk_080058DD:: @ 080058DD + .incbin "baserom.gba", 0x0058DD, 0x0000019 + +gUnk_080058F6:: @ 080058F6 + .incbin "baserom.gba", 0x0058F6, 0x0000019 + +gUnk_0800590F:: @ 0800590F + .incbin "baserom.gba", 0x00590F, 0x0000011 + +gUnk_08005920:: @ 08005920 + .incbin "baserom.gba", 0x005920, 0x0000011 + +gUnk_08005931:: @ 08005931 + .incbin "baserom.gba", 0x005931, 0x0000011 + +gUnk_08005942:: @ 08005942 + .incbin "baserom.gba", 0x005942, 0x0000011 + +gUnk_08005953:: @ 08005953 + .incbin "baserom.gba", 0x005953, 0x0000011 + +gUnk_08005964:: @ 08005964 + .incbin "baserom.gba", 0x005964, 0x0000011 + +gUnk_08005975:: @ 08005975 + .incbin "baserom.gba", 0x005975, 0x0000009 + +gUnk_0800597E:: @ 0800597E + .incbin "baserom.gba", 0x00597E, 0x0000009 + +gUnk_08005987:: @ 08005987 + .incbin "baserom.gba", 0x005987, 0x0000009 + +gUnk_08005990:: @ 08005990 + .incbin "baserom.gba", 0x005990, 0x0000014 + +gUnk_080059A4:: @ 080059A4 + .incbin "baserom.gba", 0x0059A4, 0x0000005 + +gUnk_080059A9:: @ 080059A9 + .incbin "baserom.gba", 0x0059A9, 0x000005F + +gUnk_08005A08:: @ 08005A08 + .incbin "baserom.gba", 0x005A08, 0x0000039 + +gUnk_08005A41:: @ 08005A41 + .incbin "baserom.gba", 0x005A41, 0x0000014 + +gUnk_08005A55:: @ 08005A55 + .incbin "baserom.gba", 0x005A55, 0x0000005 + +gUnk_08005A5A:: @ 08005A5A + .incbin "baserom.gba", 0x005A5A, 0x000002C + +gUnk_08005A86:: @ 08005A86 + .incbin "baserom.gba", 0x005A86, 0x0000015 + +gUnk_08005A9B:: @ 08005A9B + .incbin "baserom.gba", 0x005A9B, 0x0000005 + +gUnk_08005AA0:: @ 08005AA0 + .incbin "baserom.gba", 0x005AA0, 0x0000019 + +gUnk_08005AB9:: @ 08005AB9 + .incbin "baserom.gba", 0x005AB9, 0x0000019 + +gUnk_08005AD2:: @ 08005AD2 + .incbin "baserom.gba", 0x005AD2, 0x0000019 + +gUnk_08005AEB:: @ 08005AEB + .incbin "baserom.gba", 0x005AEB, 0x0000009 + +gUnk_08005AF4:: @ 08005AF4 + .incbin "baserom.gba", 0x005AF4, 0x000000C + +gUnk_08005B00:: @ 08005B00 + .incbin "baserom.gba", 0x005B00, 0x0000018 + +gUnk_08005B18:: @ 08005B18 + .incbin "baserom.gba", 0x005B18, 0x000000C + +gUnk_08005B24:: @ 08005B24 + .incbin "baserom.gba", 0x005B24, 0x0000029 + +gUnk_08005B4D:: @ 08005B4D + .incbin "baserom.gba", 0x005B4D, 0x0000029 + +gUnk_08005B76:: @ 08005B76 + .incbin "baserom.gba", 0x005B76, 0x0000029 + +gUnk_08005B9F:: @ 08005B9F + .incbin "baserom.gba", 0x005B9F, 0x0000009 + +gUnk_08005BA8:: @ 08005BA8 + .incbin "baserom.gba", 0x005BA8, 0x0000009 + +gUnk_08005BB1:: @ 08005BB1 + .incbin "baserom.gba", 0x005BB1, 0x0000009 + +gUnk_08005BBA:: @ 08005BBA + .incbin "baserom.gba", 0x005BBA, 0x0000009 + +gUnk_08005BC3:: @ 08005BC3 + .incbin "baserom.gba", 0x005BC3, 0x0000009 + +gUnk_08005BCC:: @ 08005BCC + .incbin "baserom.gba", 0x005BCC, 0x0000019 + +gUnk_08005BE5:: @ 08005BE5 + .incbin "baserom.gba", 0x005BE5, 0x0000019 + +gUnk_08005BFE:: @ 08005BFE + .incbin "baserom.gba", 0x005BFE, 0x0000019 + +gUnk_08005C17:: @ 08005C17 + .incbin "baserom.gba", 0x005C17, 0x0000009 + +gUnk_08005C20:: @ 08005C20 + .incbin "baserom.gba", 0x005C20, 0x0000010 + +gUnk_08005C30:: @ 08005C30 + .incbin "baserom.gba", 0x005C30, 0x0000019 + +gUnk_08005C49:: @ 08005C49 + .incbin "baserom.gba", 0x005C49, 0x0000008 + +gUnk_08005C51:: @ 08005C51 + .incbin "baserom.gba", 0x005C51, 0x0000011 + +gUnk_08005C62:: @ 08005C62 + .incbin "baserom.gba", 0x005C62, 0x0000019 + +gUnk_08005C7B:: @ 08005C7B + .incbin "baserom.gba", 0x005C7B, 0x000000D + +gUnk_08005C88:: @ 08005C88 + .incbin "baserom.gba", 0x005C88, 0x000000D + +gUnk_08005C95:: @ 08005C95 + .incbin "baserom.gba", 0x005C95, 0x0000005 + +gUnk_08005C9A:: @ 08005C9A + .incbin "baserom.gba", 0x005C9A, 0x0000005 + +gUnk_08005C9F:: @ 08005C9F + .incbin "baserom.gba", 0x005C9F, 0x0000005 + +gUnk_08005CA4:: @ 08005CA4 + .incbin "baserom.gba", 0x005CA4, 0x0000029 + +gUnk_08005CCD:: @ 08005CCD + .incbin "baserom.gba", 0x005CCD, 0x0000029 + +gUnk_08005CF6:: @ 08005CF6 + .incbin "baserom.gba", 0x005CF6, 0x000000A + +gUnk_08005D00:: @ 08005D00 + .incbin "baserom.gba", 0x005D00, 0x000001F + +gUnk_08005D1F:: @ 08005D1F + .incbin "baserom.gba", 0x005D1F, 0x0000011 + +gUnk_08005D30:: @ 08005D30 + .incbin "baserom.gba", 0x005D30, 0x0000010 + +gUnk_08005D40:: @ 08005D40 + .incbin "baserom.gba", 0x005D40, 0x0000010 + +gUnk_08005D50:: @ 08005D50 + .incbin "baserom.gba", 0x005D50, 0x0000014 + +gUnk_08005D64:: @ 08005D64 + .incbin "baserom.gba", 0x005D64, 0x0000021 + +gUnk_08005D85:: @ 08005D85 + .incbin "baserom.gba", 0x005D85, 0x0000021 + +gUnk_08005DA6:: @ 08005DA6 + .incbin "baserom.gba", 0x005DA6, 0x0000010 + +gUnk_08005DB6:: @ 08005DB6 + .incbin "baserom.gba", 0x005DB6, 0x0000014 + +gUnk_08005DCA:: @ 08005DCA + .incbin "baserom.gba", 0x005DCA, 0x0000021 + +gUnk_08005DEB:: @ 08005DEB + .incbin "baserom.gba", 0x005DEB, 0x0000021 + +gUnk_08005E0C:: @ 08005E0C + .incbin "baserom.gba", 0x005E0C, 0x0000011 + +gUnk_08005E1D:: @ 08005E1D + .incbin "baserom.gba", 0x005E1D, 0x0000014 + +gUnk_08005E31:: @ 08005E31 + .incbin "baserom.gba", 0x005E31, 0x000000F + +gUnk_08005E40:: @ 08005E40 + .incbin "baserom.gba", 0x005E40, 0x0000012 + +gUnk_08005E52:: @ 08005E52 + .incbin "baserom.gba", 0x005E52, 0x0000021 + +gUnk_08005E73:: @ 08005E73 + .incbin "baserom.gba", 0x005E73, 0x0000015 + +gUnk_08005E88:: @ 08005E88 + .incbin "baserom.gba", 0x005E88, 0x0000015 + +gUnk_08005E9D:: @ 08005E9D + .incbin "baserom.gba", 0x005E9D, 0x0000015 + +gUnk_08005EB2:: @ 08005EB2 + .incbin "baserom.gba", 0x005EB2, 0x0000021 + +gUnk_08005ED3:: @ 08005ED3 + .incbin "baserom.gba", 0x005ED3, 0x0000021 + +gUnk_08005EF4:: @ 08005EF4 + .incbin "baserom.gba", 0x005EF4, 0x0000021 + +gUnk_08005F15:: @ 08005F15 + .incbin "baserom.gba", 0x005F15, 0x000000D + +gUnk_08005F22:: @ 08005F22 + .incbin "baserom.gba", 0x005F22, 0x000000D + +gUnk_08005F2F:: @ 08005F2F + .incbin "baserom.gba", 0x005F2F, 0x000000D + +gUnk_08005F3C:: @ 08005F3C + .incbin "baserom.gba", 0x005F3C, 0x000000D + +gUnk_08005F49:: @ 08005F49 + .incbin "baserom.gba", 0x005F49, 0x000000D + +gUnk_08005F56:: @ 08005F56 + .incbin "baserom.gba", 0x005F56, 0x000000D + +gUnk_08005F63:: @ 08005F63 + .incbin "baserom.gba", 0x005F63, 0x0000008 + +gUnk_08005F6B:: @ 08005F6B + .incbin "baserom.gba", 0x005F6B, 0x000000D + +gUnk_08005F78:: @ 08005F78 + .incbin "baserom.gba", 0x005F78, 0x0000008 + +gUnk_08005F80:: @ 08005F80 + .incbin "baserom.gba", 0x005F80, 0x000000D + +gUnk_08005F8D:: @ 08005F8D + .incbin "baserom.gba", 0x005F8D, 0x0000008 + +gUnk_08005F95:: @ 08005F95 + .incbin "baserom.gba", 0x005F95, 0x000000D + +gUnk_08005FA2:: @ 08005FA2 + .incbin "baserom.gba", 0x005FA2, 0x0000008 + +gUnk_08005FAA:: @ 08005FAA + .incbin "baserom.gba", 0x005FAA, 0x000000D + +gUnk_08005FB7:: @ 08005FB7 + .incbin "baserom.gba", 0x005FB7, 0x0000008 + +gUnk_08005FBF:: @ 08005FBF + .incbin "baserom.gba", 0x005FBF, 0x000000D + +gUnk_08005FCC:: @ 08005FCC + .incbin "baserom.gba", 0x005FCC, 0x0000008 + +gUnk_08005FD4:: @ 08005FD4 + .incbin "baserom.gba", 0x005FD4, 0x000000D + +gUnk_08005FE1:: @ 08005FE1 + .incbin "baserom.gba", 0x005FE1, 0x0000008 + +gUnk_08005FE9:: @ 08005FE9 + .incbin "baserom.gba", 0x005FE9, 0x000000D + +gUnk_08005FF6:: @ 08005FF6 + .incbin "baserom.gba", 0x005FF6, 0x0000008 + +gUnk_08005FFE:: @ 08005FFE + .incbin "baserom.gba", 0x005FFE, 0x0000002 + +gUnk_08006000:: @ 08006000 + .incbin "baserom.gba", 0x006000, 0x000000B + +gUnk_0800600B:: @ 0800600B + .incbin "baserom.gba", 0x00600B, 0x0000008 + +gUnk_08006013:: @ 08006013 + .incbin "baserom.gba", 0x006013, 0x000000D + +gUnk_08006020:: @ 08006020 + .incbin "baserom.gba", 0x006020, 0x0000021 + +gUnk_08006041:: @ 08006041 + .incbin "baserom.gba", 0x006041, 0x000001F + +gUnk_08006060:: @ 08006060 + .incbin "baserom.gba", 0x006060, 0x0000002 + +gUnk_08006062:: @ 08006062 + .incbin "baserom.gba", 0x006062, 0x0000021 + +gUnk_08006083:: @ 08006083 + .incbin "baserom.gba", 0x006083, 0x0000060 + +gUnk_080060E3:: @ 080060E3 + .incbin "baserom.gba", 0x0060E3, 0x0000022 + +gUnk_08006105:: @ 08006105 + .incbin "baserom.gba", 0x006105, 0x000001A + +gUnk_0800611F:: @ 0800611F + .incbin "baserom.gba", 0x00611F, 0x000003C + +gUnk_0800615B:: @ 0800615B + .incbin "baserom.gba", 0x00615B, 0x000003C + +gUnk_08006197:: @ 08006197 + .incbin "baserom.gba", 0x006197, 0x0000041 + +gUnk_080061D8:: @ 080061D8 + .incbin "baserom.gba", 0x0061D8, 0x0000028 + +gUnk_08006200:: @ 08006200 + .incbin "baserom.gba", 0x006200, 0x0000008 + +gUnk_08006208:: @ 08006208 + .incbin "baserom.gba", 0x006208, 0x0000011 + +gUnk_08006219:: @ 08006219 + .incbin "baserom.gba", 0x006219, 0x0000041 + +gUnk_0800625A:: @ 0800625A + .incbin "baserom.gba", 0x00625A, 0x0000020 + +gUnk_0800627A:: @ 0800627A + .incbin "baserom.gba", 0x00627A, 0x000000D + +gUnk_08006287:: @ 08006287 + .incbin "baserom.gba", 0x006287, 0x0000013 + +gUnk_0800629A:: @ 0800629A + .incbin "baserom.gba", 0x00629A, 0x0000020 + +gUnk_080062BA:: @ 080062BA + .incbin "baserom.gba", 0x0062BA, 0x0000008 + +gUnk_080062C2:: @ 080062C2 + .incbin "baserom.gba", 0x0062C2, 0x0000005 + +gUnk_080062C7:: @ 080062C7 + .incbin "baserom.gba", 0x0062C7, 0x0000008 + +gUnk_080062CF:: @ 080062CF + .incbin "baserom.gba", 0x0062CF, 0x0000005 + +gUnk_080062D4:: @ 080062D4 + .incbin "baserom.gba", 0x0062D4, 0x0000008 + +gUnk_080062DC:: @ 080062DC + .incbin "baserom.gba", 0x0062DC, 0x0000005 + +gUnk_080062E1:: @ 080062E1 + .incbin "baserom.gba", 0x0062E1, 0x0000022 + +gUnk_08006303:: @ 08006303 + .incbin "baserom.gba", 0x006303, 0x0000002 + +gUnk_08006305:: @ 08006305 + .incbin "baserom.gba", 0x006305, 0x0000024 + +gUnk_08006329:: @ 08006329 + .incbin "baserom.gba", 0x006329, 0x0000024 + +gUnk_0800634D:: @ 0800634D + .incbin "baserom.gba", 0x00634D, 0x0000014 + +gUnk_08006361:: @ 08006361 + .incbin "baserom.gba", 0x006361, 0x0000014 + +gUnk_08006375:: @ 08006375 + .incbin "baserom.gba", 0x006375, 0x0000014 + +gUnk_08006389:: @ 08006389 + .incbin "baserom.gba", 0x006389, 0x0000014 + +gUnk_0800639D:: @ 0800639D + .incbin "baserom.gba", 0x00639D, 0x0000015 + +gUnk_080063B2:: @ 080063B2 + .incbin "baserom.gba", 0x0063B2, 0x0000014 + +gUnk_080063C6:: @ 080063C6 + .incbin "baserom.gba", 0x0063C6, 0x0000015 + +gUnk_080063DB:: @ 080063DB + .incbin "baserom.gba", 0x0063DB, 0x0000014 + +gUnk_080063EF:: @ 080063EF + .incbin "baserom.gba", 0x0063EF, 0x0000015 + +gUnk_08006404:: @ 08006404 + .incbin "baserom.gba", 0x006404, 0x0000010 + +gUnk_08006414:: @ 08006414 + .incbin "baserom.gba", 0x006414, 0x0000004 + +gUnk_08006418:: @ 08006418 + .incbin "baserom.gba", 0x006418, 0x0000008 + +gUnk_08006420:: @ 08006420 + .incbin "baserom.gba", 0x006420, 0x000000D + +gUnk_0800642D:: @ 0800642D + .incbin "baserom.gba", 0x00642D, 0x0000002 + +gUnk_0800642F:: @ 0800642F + .incbin "baserom.gba", 0x00642F, 0x0000022 + +gUnk_08006451:: @ 08006451 + .incbin "baserom.gba", 0x006451, 0x0000024 + +gUnk_08006475:: @ 08006475 + .incbin "baserom.gba", 0x006475, 0x0000024 + +gUnk_08006499:: @ 08006499 + .incbin "baserom.gba", 0x006499, 0x0000024 + +gUnk_080064BD:: @ 080064BD + .incbin "baserom.gba", 0x0064BD, 0x0000025 + +gUnk_080064E2:: @ 080064E2 + .incbin "baserom.gba", 0x0064E2, 0x000001E + +gUnk_08006500:: @ 08006500 + .incbin "baserom.gba", 0x006500, 0x0000007 + +gUnk_08006507:: @ 08006507 + .incbin "baserom.gba", 0x006507, 0x0000025 + +gUnk_0800652C:: @ 0800652C + .incbin "baserom.gba", 0x00652C, 0x0000025 + +gUnk_08006551:: @ 08006551 + .incbin "baserom.gba", 0x006551, 0x0000029 + +gUnk_0800657A:: @ 0800657A + .incbin "baserom.gba", 0x00657A, 0x0000029 + +gUnk_080065A3:: @ 080065A3 + .incbin "baserom.gba", 0x0065A3, 0x0000018 + +gUnk_080065BB:: @ 080065BB + .incbin "baserom.gba", 0x0065BB, 0x0000014 + +gUnk_080065CF:: @ 080065CF + .incbin "baserom.gba", 0x0065CF, 0x000002C + +gUnk_080065FB:: @ 080065FB + .incbin "baserom.gba", 0x0065FB, 0x0000016 + +gUnk_08006611:: @ 08006611 + .incbin "baserom.gba", 0x006611, 0x0000016 + +gUnk_08006627:: @ 08006627 + .incbin "baserom.gba", 0x006627, 0x000002C + +gUnk_08006653:: @ 08006653 + .incbin "baserom.gba", 0x006653, 0x0000014 + +gUnk_08006667:: @ 08006667 + .incbin "baserom.gba", 0x006667, 0x0000008 + +gUnk_0800666F:: @ 0800666F + .incbin "baserom.gba", 0x00666F, 0x000000D + +gUnk_0800667C:: @ 0800667C + .incbin "baserom.gba", 0x00667C, 0x000000E + +gUnk_0800668A:: @ 0800668A + .incbin "baserom.gba", 0x00668A, 0x0000001 + +gUnk_0800668B:: @ 0800668B + .incbin "baserom.gba", 0x00668B, 0x000000E + +gUnk_08006699:: @ 08006699 + .incbin "baserom.gba", 0x006699, 0x000000E + +gUnk_080066A7:: @ 080066A7 + .incbin "baserom.gba", 0x0066A7, 0x0000018 + +gUnk_080066BF:: @ 080066BF + .incbin "baserom.gba", 0x0066BF, 0x0000018 + +gUnk_080066D7:: @ 080066D7 + .incbin "baserom.gba", 0x0066D7, 0x0000018 + +gUnk_080066EF:: @ 080066EF + .incbin "baserom.gba", 0x0066EF, 0x0000010 + +gUnk_080066FF:: @ 080066FF + .incbin "baserom.gba", 0x0066FF, 0x0000019 + +gUnk_08006718:: @ 08006718 + .incbin "baserom.gba", 0x006718, 0x0000029 + +gUnk_08006741:: @ 08006741 + .incbin "baserom.gba", 0x006741, 0x0000032 + +gUnk_08006773:: @ 08006773 + .incbin "baserom.gba", 0x006773, 0x0000012 + +gUnk_08006785:: @ 08006785 + .incbin "baserom.gba", 0x006785, 0x0000018 + +gUnk_0800679D:: @ 0800679D + .incbin "baserom.gba", 0x00679D, 0x0000016 + +gUnk_080067B3:: @ 080067B3 + .incbin "baserom.gba", 0x0067B3, 0x0000002 + +gUnk_080067B5:: @ 080067B5 + .incbin "baserom.gba", 0x0067B5, 0x0000029 + +gUnk_080067DE:: @ 080067DE + .incbin "baserom.gba", 0x0067DE, 0x0000029 + +gUnk_08006807:: @ 08006807 + .incbin "baserom.gba", 0x006807, 0x0000018 + +gUnk_0800681F:: @ 0800681F + .incbin "baserom.gba", 0x00681F, 0x0000001 + +gUnk_08006820:: @ 08006820 + .incbin "baserom.gba", 0x006820, 0x0000020 + +gUnk_08006840:: @ 08006840 + .incbin "baserom.gba", 0x006840, 0x0000008 + +gUnk_08006848:: @ 08006848 + .incbin "baserom.gba", 0x006848, 0x0000029 + +gUnk_08006871:: @ 08006871 + .incbin "baserom.gba", 0x006871, 0x0000018 + +gUnk_08006889:: @ 08006889 + .incbin "baserom.gba", 0x006889, 0x0000015 + +gUnk_0800689E:: @ 0800689E + .incbin "baserom.gba", 0x00689E, 0x000002C + +gUnk_080068CA:: @ 080068CA + .incbin "baserom.gba", 0x0068CA, 0x000002C + +gUnk_080068F6:: @ 080068F6 + .incbin "baserom.gba", 0x0068F6, 0x000000A + +gUnk_08006900:: @ 08006900 + .incbin "baserom.gba", 0x006900, 0x0000022 + +gUnk_08006922:: @ 08006922 + .incbin "baserom.gba", 0x006922, 0x0000034 + +gUnk_08006956:: @ 08006956 + .incbin "baserom.gba", 0x006956, 0x0000034 + +gUnk_0800698A:: @ 0800698A + .incbin "baserom.gba", 0x00698A, 0x0000034 + +gUnk_080069BE:: @ 080069BE + .incbin "baserom.gba", 0x0069BE, 0x0000044 + +gUnk_08006A02:: @ 08006A02 + .incbin "baserom.gba", 0x006A02, 0x0000044 + +gUnk_08006A46:: @ 08006A46 + .incbin "baserom.gba", 0x006A46, 0x0000025 + +gUnk_08006A6B:: @ 08006A6B + .incbin "baserom.gba", 0x006A6B, 0x000001F + +gUnk_08006A8A:: @ 08006A8A + .incbin "baserom.gba", 0x006A8A, 0x0000015 + +gUnk_08006A9F:: @ 08006A9F + .incbin "baserom.gba", 0x006A9F, 0x0000010 + +gUnk_08006AAF:: @ 08006AAF + .incbin "baserom.gba", 0x006AAF, 0x0000015 + +gUnk_08006AC4:: @ 08006AC4 + .incbin "baserom.gba", 0x006AC4, 0x0000010 + +gUnk_08006AD4:: @ 08006AD4 + .incbin "baserom.gba", 0x006AD4, 0x0000015 + +gUnk_08006AE9:: @ 08006AE9 + .incbin "baserom.gba", 0x006AE9, 0x0000010 + +gUnk_08006AF9:: @ 08006AF9 + .incbin "baserom.gba", 0x006AF9, 0x000000B + +gUnk_08006B04:: @ 08006B04 + .incbin "baserom.gba", 0x006B04, 0x0000005 + +gUnk_08006B09:: @ 08006B09 + .incbin "baserom.gba", 0x006B09, 0x0000029 + +gUnk_08006B32:: @ 08006B32 + .incbin "baserom.gba", 0x006B32, 0x000000D + +gUnk_08006B3F:: @ 08006B3F + .incbin "baserom.gba", 0x006B3F, 0x000000F + +gUnk_08006B4E:: @ 08006B4E + .incbin "baserom.gba", 0x006B4E, 0x0000010 + +gUnk_08006B5E:: @ 08006B5E + .incbin "baserom.gba", 0x006B5E, 0x0000029 + +gUnk_08006B87:: @ 08006B87 + .incbin "baserom.gba", 0x006B87, 0x000001C + +gUnk_08006BA3:: @ 08006BA3 + .incbin "baserom.gba", 0x006BA3, 0x0000010 + +gUnk_08006BB3:: @ 08006BB3 + .incbin "baserom.gba", 0x006BB3, 0x0000005 + +gUnk_08006BB8:: @ 08006BB8 + .incbin "baserom.gba", 0x006BB8, 0x000001C + +gUnk_08006BD4:: @ 08006BD4 + .incbin "baserom.gba", 0x006BD4, 0x0000029 + +gUnk_08006BFD:: @ 08006BFD + .incbin "baserom.gba", 0x006BFD, 0x0000028 + +gUnk_08006C25:: @ 08006C25 + .incbin "baserom.gba", 0x006C25, 0x0000001 + +gUnk_08006C26:: @ 08006C26 + .incbin "baserom.gba", 0x006C26, 0x0000029 + +gUnk_08006C4F:: @ 08006C4F + .incbin "baserom.gba", 0x006C4F, 0x0000006 + +gUnk_08006C55:: @ 08006C55 + .incbin "baserom.gba", 0x006C55, 0x0000028 + +gUnk_08006C7D:: @ 08006C7D + .incbin "baserom.gba", 0x006C7D, 0x0000016 + +gUnk_08006C93:: @ 08006C93 + .incbin "baserom.gba", 0x006C93, 0x0000044 + +gUnk_08006CD7:: @ 08006CD7 + .incbin "baserom.gba", 0x006CD7, 0x0000037 + +gUnk_08006D0E:: @ 08006D0E + .incbin "baserom.gba", 0x006D0E, 0x000000D + +gUnk_08006D1B:: @ 08006D1B + .incbin "baserom.gba", 0x006D1B, 0x0000005 + +gUnk_08006D20:: @ 08006D20 + .incbin "baserom.gba", 0x006D20, 0x000002B + +gUnk_08006D4B:: @ 08006D4B + .incbin "baserom.gba", 0x006D4B, 0x0000030 + +gUnk_08006D7B:: @ 08006D7B + .incbin "baserom.gba", 0x006D7B, 0x0000030 + +gUnk_08006DAB:: @ 08006DAB + .incbin "baserom.gba", 0x006DAB, 0x000000C + +gUnk_08006DB7:: @ 08006DB7 + .incbin "baserom.gba", 0x006DB7, 0x000000C + +gUnk_08006DC3:: @ 08006DC3 + .incbin "baserom.gba", 0x006DC3, 0x000000C + +gUnk_08006DCF:: @ 08006DCF + .incbin "baserom.gba", 0x006DCF, 0x000003C + +gUnk_08006E0B:: @ 08006E0B + .incbin "baserom.gba", 0x006E0B, 0x0000010 + +gUnk_08006E1B:: @ 08006E1B + .incbin "baserom.gba", 0x006E1B, 0x0000004 + +gUnk_08006E1F:: @ 08006E1F + .incbin "baserom.gba", 0x006E1F, 0x0000019 + +gUnk_08006E38:: @ 08006E38 + .incbin "baserom.gba", 0x006E38, 0x0000008 + +gUnk_08006E40:: @ 08006E40 + .incbin "baserom.gba", 0x006E40, 0x0000008 + +gUnk_08006E48:: @ 08006E48 + .incbin "baserom.gba", 0x006E48, 0x0000004 + +gUnk_08006E4C:: @ 08006E4C + .incbin "baserom.gba", 0x006E4C, 0x0000019 + +gUnk_08006E65:: @ 08006E65 + .incbin "baserom.gba", 0x006E65, 0x0000010 + +gUnk_08006E75:: @ 08006E75 + .incbin "baserom.gba", 0x006E75, 0x0000004 + +gUnk_08006E79:: @ 08006E79 + .incbin "baserom.gba", 0x006E79, 0x0000008 + +gUnk_08006E81:: @ 08006E81 + .incbin "baserom.gba", 0x006E81, 0x0000011 + +gUnk_08006E92:: @ 08006E92 + .incbin "baserom.gba", 0x006E92, 0x000001C + +gUnk_08006EAE:: @ 08006EAE + .incbin "baserom.gba", 0x006EAE, 0x000001C + +gUnk_08006ECA:: @ 08006ECA + .incbin "baserom.gba", 0x006ECA, 0x000001C + +gUnk_08006EE6:: @ 08006EE6 + .incbin "baserom.gba", 0x006EE6, 0x000001C + +gUnk_08006F02:: @ 08006F02 + .incbin "baserom.gba", 0x006F02, 0x000000E + +gUnk_08006F10:: @ 08006F10 + .incbin "baserom.gba", 0x006F10, 0x0000002 + +gUnk_08006F12:: @ 08006F12 + .incbin "baserom.gba", 0x006F12, 0x0000009 + +gUnk_08006F1B:: @ 08006F1B + .incbin "baserom.gba", 0x006F1B, 0x0000010 + +gUnk_08006F2B:: @ 08006F2B + .incbin "baserom.gba", 0x006F2B, 0x0000009 + +gUnk_08006F34:: @ 08006F34 + .incbin "baserom.gba", 0x006F34, 0x0000010 + +gUnk_08006F44:: @ 08006F44 + .incbin "baserom.gba", 0x006F44, 0x0000009 + +gUnk_08006F4D:: @ 08006F4D + .incbin "baserom.gba", 0x006F4D, 0x0000015 + +gUnk_08006F62:: @ 08006F62 + .incbin "baserom.gba", 0x006F62, 0x0000015 + +gUnk_08006F77:: @ 08006F77 + .incbin "baserom.gba", 0x006F77, 0x0000015 + +gUnk_08006F8C:: @ 08006F8C + .incbin "baserom.gba", 0x006F8C, 0x0000015 + +gUnk_08006FA1:: @ 08006FA1 + .incbin "baserom.gba", 0x006FA1, 0x0000015 + +gUnk_08006FB6:: @ 08006FB6 + .incbin "baserom.gba", 0x006FB6, 0x0000044 + +gUnk_08006FFA:: @ 08006FFA + .incbin "baserom.gba", 0x006FFA, 0x000000D + +gUnk_08007007:: @ 08007007 + .incbin "baserom.gba", 0x007007, 0x0000034 + +gUnk_0800703B:: @ 0800703B + .incbin "baserom.gba", 0x00703B, 0x0000004 + +gUnk_0800703F:: @ 0800703F + .incbin "baserom.gba", 0x00703F, 0x0000031 + +gUnk_08007070:: @ 08007070 + .incbin "baserom.gba", 0x007070, 0x000003C + +gUnk_080070AC:: @ 080070AC + .incbin "baserom.gba", 0x0070AC, 0x0000084 + +gUnk_08007130:: @ 08007130 + .incbin "baserom.gba", 0x007130, 0x0000029 + +gUnk_08007159:: @ 08007159 + .incbin "baserom.gba", 0x007159, 0x0000038 + +gUnk_08007191:: @ 08007191 + .incbin "baserom.gba", 0x007191, 0x0000008 + +gUnk_08007199:: @ 08007199 + .incbin "baserom.gba", 0x007199, 0x0000033 + +gUnk_080071CC:: @ 080071CC + .incbin "baserom.gba", 0x0071CC, 0x0000005 + +gUnk_080071D1:: @ 080071D1 + .incbin "baserom.gba", 0x0071D1, 0x0000008 + +gUnk_080071D9:: @ 080071D9 + .incbin "baserom.gba", 0x0071D9, 0x0000020 + +gUnk_080071F9:: @ 080071F9 + .incbin "baserom.gba", 0x0071F9, 0x0000008 + +gUnk_08007201:: @ 08007201 + .incbin "baserom.gba", 0x007201, 0x000000C + +gUnk_0800720D:: @ 0800720D + .incbin "baserom.gba", 0x00720D, 0x0000011 + +gUnk_0800721E:: @ 0800721E + .incbin "baserom.gba", 0x00721E, 0x0000001 + +gUnk_0800721F:: @ 0800721F + .incbin "baserom.gba", 0x00721F, 0x000001C + +gUnk_0800723B:: @ 0800723B + .incbin "baserom.gba", 0x00723B, 0x0000004 + +gUnk_0800723F:: @ 0800723F + .incbin "baserom.gba", 0x00723F, 0x0000019 + +gUnk_08007258:: @ 08007258 + .incbin "baserom.gba", 0x007258, 0x0000028 + +gUnk_08007280:: @ 08007280 + .incbin "baserom.gba", 0x007280, 0x0000028 + +gUnk_080072A8:: @ 080072A8 + .incbin "baserom.gba", 0x0072A8, 0x0000028 + +gUnk_080072D0:: @ 080072D0 + .incbin "baserom.gba", 0x0072D0, 0x0000025 + +gUnk_080072F5:: @ 080072F5 + .incbin "baserom.gba", 0x0072F5, 0x0000019 + +gUnk_0800730E:: @ 0800730E + .incbin "baserom.gba", 0x00730E, 0x0000012 + +gUnk_08007320:: @ 08007320 + .incbin "baserom.gba", 0x007320, 0x0000002 + +gUnk_08007322:: @ 08007322 + .incbin "baserom.gba", 0x007322, 0x0000044 + +gUnk_08007366:: @ 08007366 + .incbin "baserom.gba", 0x007366, 0x0000012 + +gUnk_08007378:: @ 08007378 + .incbin "baserom.gba", 0x007378, 0x000002A + +gUnk_080073A2:: @ 080073A2 + .incbin "baserom.gba", 0x0073A2, 0x0000008 + +gUnk_080073AA:: @ 080073AA + .incbin "baserom.gba", 0x0073AA, 0x0000044 + +gUnk_080073EE:: @ 080073EE + .incbin "baserom.gba", 0x0073EE, 0x0000010 + +gUnk_080073FE:: @ 080073FE + .incbin "baserom.gba", 0x0073FE, 0x0000004 + +gUnk_08007402:: @ 08007402 + .incbin "baserom.gba", 0x007402, 0x0000010 + +gUnk_08007412:: @ 08007412 + .incbin "baserom.gba", 0x007412, 0x0000004 + +gUnk_08007416:: @ 08007416 + .incbin "baserom.gba", 0x007416, 0x000000F + +gUnk_08007425:: @ 08007425 + .incbin "baserom.gba", 0x007425, 0x0000001 + +gUnk_08007426:: @ 08007426 + .incbin "baserom.gba", 0x007426, 0x0000004 + +gUnk_0800742A:: @ 0800742A + .incbin "baserom.gba", 0x00742A, 0x0000011 + +gUnk_0800743B:: @ 0800743B + .incbin "baserom.gba", 0x00743B, 0x0000011 + +gUnk_0800744C:: @ 0800744C + .incbin "baserom.gba", 0x00744C, 0x0000004 + +gUnk_08007450:: @ 08007450 + .incbin "baserom.gba", 0x007450, 0x000000D + +gUnk_0800745D:: @ 0800745D + .incbin "baserom.gba", 0x00745D, 0x000003B + +gUnk_08007498:: @ 08007498 + .incbin "baserom.gba", 0x007498, 0x00001C0 + +gUnk_08007658:: @ 08007658 + .incbin "baserom.gba", 0x007658, 0x000001C + +gUnk_08007674:: @ 08007674 + .incbin "baserom.gba", 0x007674, 0x0000050 + +gUnk_080076C4:: @ 080076C4 + .incbin "baserom.gba", 0x0076C4, 0x0000040 + +gUnk_08007704:: @ 08007704 + .incbin "baserom.gba", 0x007704, 0x0000004 + +gUnk_08007708:: @ 08007708 + .incbin "baserom.gba", 0x007708, 0x000004B + +gUnk_08007753:: @ 08007753 + .incbin "baserom.gba", 0x007753, 0x0000015 + +gUnk_08007768:: @ 08007768 + .incbin "baserom.gba", 0x007768, 0x000000F + +gUnk_08007777:: @ 08007777 + .incbin "baserom.gba", 0x007777, 0x0000003 + +gUnk_0800777A:: @ 0800777A + .incbin "baserom.gba", 0x00777A, 0x0000001 + +gUnk_0800777B:: @ 0800777B + .incbin "baserom.gba", 0x00777B, 0x0000002 + +gUnk_0800777D:: @ 0800777D + .incbin "baserom.gba", 0x00777D, 0x000001C + +gUnk_08007799:: @ 08007799 + .incbin "baserom.gba", 0x007799, 0x000006A + +gUnk_08007803:: @ 08007803 + .incbin "baserom.gba", 0x007803, 0x0000009 + +gUnk_0800780C:: @ 0800780C + .incbin "baserom.gba", 0x00780C, 0x0000002 + +gUnk_0800780E:: @ 0800780E + .incbin "baserom.gba", 0x00780E, 0x0000004 + +gUnk_08007812:: @ 08007812 + .incbin "baserom.gba", 0x007812, 0x000001E + +gUnk_08007830:: @ 08007830 + .incbin "baserom.gba", 0x007830, 0x000001A + +gUnk_0800784A:: @ 0800784A + .incbin "baserom.gba", 0x00784A, 0x00000BA + +gUnk_08007904:: @ 08007904 + .incbin "baserom.gba", 0x007904, 0x0000002 + +gUnk_08007906:: @ 08007906 + .incbin "baserom.gba", 0x007906, 0x000007B + +gUnk_08007981:: @ 08007981 + .incbin "baserom.gba", 0x007981, 0x000002F + +gUnk_080079B0:: @ 080079B0 + .incbin "baserom.gba", 0x0079B0, 0x0000008 + +gUnk_080079B8:: @ 080079B8 + .incbin "baserom.gba", 0x0079B8, 0x0000050 + +gUnk_08007A08:: @ 08007A08 + .incbin "baserom.gba", 0x007A08, 0x00000A8 + +gUnk_08007AB0:: @ 08007AB0 + .incbin "baserom.gba", 0x007AB0, 0x0000051 + +gUnk_08007B01:: @ 08007B01 + .incbin "baserom.gba", 0x007B01, 0x0000027 + +gUnk_08007B28:: @ 08007B28 + .incbin "baserom.gba", 0x007B28, 0x0000003 + +gUnk_08007B2B:: @ 08007B2B + .incbin "baserom.gba", 0x007B2B, 0x0000015 + +gUnk_08007B40:: @ 08007B40 + .incbin "baserom.gba", 0x007B40, 0x0000039 + +gUnk_08007B79:: @ 08007B79 + .incbin "baserom.gba", 0x007B79, 0x0000035 + +gUnk_08007BAE:: @ 08007BAE + .incbin "baserom.gba", 0x007BAE, 0x000005F + +gUnk_08007C0D:: @ 08007C0D + .incbin "baserom.gba", 0x007C0D, 0x000000E + +gUnk_08007C1B:: @ 08007C1B + .incbin "baserom.gba", 0x007C1B, 0x0000004 + +gUnk_08007C1F:: @ 08007C1F + .incbin "baserom.gba", 0x007C1F, 0x000000F + +gUnk_08007C2E:: @ 08007C2E + .incbin "baserom.gba", 0x007C2E, 0x000007E + +gUnk_08007CAC:: @ 08007CAC + .incbin "baserom.gba", 0x007CAC, 0x000005B + +gUnk_08007D07:: @ 08007D07 + .incbin "baserom.gba", 0x007D07, 0x00000CF + + non_word_aligned_thumb_func_start sub_08007DD6 +sub_08007DD6: @ 0x08007DD6 + push {lr} + bl sub_08007DE0 + adds r0, r3, #0 + pop {pc} + + thumb_func_start sub_08007DE0 +sub_08007DE0: @ 0x08007DE0 + subs r1, #4 +_08007DE2: + adds r1, #4 + ldrh r3, [r1] + cmp r3, #0 + beq _08007DF2 + cmp r0, r3 + bne _08007DE2 + ldrh r3, [r1, #2] + movs r2, #1 +_08007DF2: + bx lr diff --git a/asm/code_0800857C.s b/asm/code_0800857C.s new file mode 100644 index 00000000..4607c1c2 --- /dev/null +++ b/asm/code_0800857C.s @@ -0,0 +1,4160 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0800857C +sub_0800857C: @ 0x0800857C + push {r4, r5, r6, r7, lr} + mov r4, r8 + mov r5, sb + mov r6, sl + mov r7, fp + push {r4, r5, r6, r7} + ldrb r1, [r0, #0xb] + lsrs r1, r1, #8 + bhs _0800859C + ldr r1, _08008888 @ =gUnk_03003F80 + ldrb r1, [r1, #2] + movs r2, #0x80 + ands r1, r2 + bne _0800859C + bl sub_080085CC +_0800859C: + ldrh r1, [r0, #0x24] + ldrb r2, [r0, #0x15] + bl sub_080027EA + pop {r4, r5, r6, r7} + mov r8, r4 + mov sb, r5 + mov sl, r6 + mov fp, r7 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080085B0 +sub_080085B0: @ 0x080085B0 + push {r3, r4, r5, r6, r7, lr} + mov r4, r8 + mov r5, sb + mov r6, sl + mov r7, fp + push {r4, r5, r6, r7} + bl sub_080085CC + pop {r4, r5, r6, r7} + mov r8, r4 + mov sb, r5 + mov sl, r6 + mov fp, r7 + pop {r3, r4, r5, r6, r7, pc} + + thumb_func_start sub_080085CC +sub_080085CC: @ 0x080085CC + push {lr} + ldr r2, _0800888C @ =gUnk_03003F80 + ldr r1, _08008890 @ =gUnk_080083FC + movs r3, #0x26 + ldrb r3, [r2, r3] + orrs r3, r3 + beq _080085E6 + ldr r2, [r2, #0x30] + movs r3, #0x80 + ands r2, r3 + beq _0800861A + ldr r1, _08008894 @ =gUnk_0800839C + b _0800861A +_080085E6: + ldr r1, _08008898 @ =gUnk_0800845C + ldrb r3, [r2, #2] + orrs r3, r3 + bne _0800861A + ldr r2, [r2, #0x30] + ldr r3, _0800889C @ =0x01000000 + tst r2, r3 + bne _0800861A + movs r3, #0x80 + ldr r1, _080088A0 @ =gUnk_0800833C + ands r2, r3 + bne _0800861A + ldr r1, _080088A4 @ =gUnk_080084BC + ldr r3, _080088A8 @ =gUnk_03003F80 + ldrb r2, [r3, #0x1c] + orrs r2, r2 + bne _0800861A + ldrb r2, [r3, #5] + orrs r2, r2 + bne _0800861A + ldr r1, _080088AC @ =gUnk_0800851C + movs r2, #0xaa + ldrb r2, [r3, r2] + orrs r2, r2 + bne _0800861A + ldr r1, _080088B0 @ =gUnk_080082DC +_0800861A: + mov fp, r1 + movs r7, #0 + mov r8, r0 + movs r2, #0x2e + ldrh r3, [r0, r2] + movs r2, #0x32 + ldrh r4, [r0, r2] + movs r2, #0x48 + ldr r5, [r0, r2] + ldr r1, _080088B4 @ =gUnk_03000BF6 + ldrh r1, [r1] + subs r3, r3, r1 + ldr r1, _080088B8 @ =gUnk_03000BF8 + ldrh r1, [r1] + subs r4, r4, r1 + eors r2, r2 + ldrsb r0, [r5, r2] + adds r0, r0, r3 + movs r2, #1 + ldrsb r1, [r5, r2] + adds r1, r1, r4 + push {r0, r1} + ldrb r2, [r5, #2] + adds r0, r0, r2 + ldrb r4, [r5, #3] + movs r6, #2 + mov sl, r1 +_08008650: + lsls r7, r7, #1 + lsls r7, r7, #1 + adds r1, r1, r4 + bl sub_080086D8 + orrs r7, r2 + lsls r7, r7, #1 + mov r1, sl + subs r1, r1, r4 + bl sub_080086D8 + orrs r7, r2 + lsls r7, r7, #1 + subs r6, #1 + beq _08008678 + mov r1, sl + ldrb r3, [r5, #2] + subs r0, r0, r3 + subs r0, r0, r3 + b _08008650 +_08008678: + pop {r0, r1} + ldrb r2, [r5, #5] + adds r1, r1, r2 + ldrb r4, [r5, #4] + movs r6, #2 + mov sb, r0 +_08008684: + lsls r7, r7, #1 + lsls r7, r7, #1 + adds r0, r0, r4 + bl sub_080086D8 + orrs r7, r2 + lsls r7, r7, #1 + mov r0, sb + subs r0, r0, r4 + bl sub_080086D8 + orrs r7, r2 + lsls r7, r7, #1 + subs r6, #1 + beq _080086AC + mov r0, sb + ldrb r3, [r5, #5] + subs r1, r1, r3 + subs r1, r1, r3 + b _08008684 +_080086AC: + mov r0, r8 + movs r2, #0x2a + strh r7, [r0, r2] + pop {pc} + + thumb_func_start sub_080086B4 +sub_080086B4: @ 0x080086B4 + push {r3, r4, r5, r6, r7, lr} + mov r4, r8 + mov r5, sb + mov r6, sl + mov r7, fp + push {r4, r5, r6, r7} + mov fp, r2 + ldr r2, _080088BC @ =gUnk_03001160 + mov r8, r2 + bl sub_080086D8 + pop {r4, r5, r6, r7} + mov r8, r4 + mov sb, r5 + mov sl, r6 + mov fp, r7 + adds r0, r2, #0 + pop {r3, r4, r5, r6, r7, pc} + + thumb_func_start sub_080086D8 +sub_080086D8: @ 0x080086D8 + push {r0, r1, lr} + ldr r2, _080088C0 @ =0x000003F0 + ands r0, r2 + ands r1, r2 + lsrs r0, r0, #4 + lsls r1, r1, #2 + adds r0, r0, r1 + mov r2, r8 + movs r3, #0x38 + ldrb r3, [r2, r3] + lsls r3, r3, #2 + ldr r1, _080088C4 @ =0x08000248 + ldr r1, [r1, r3] + ldrb r2, [r0, r1] + push {r2} + mov r0, r8 + ldr r1, _080088C8 @ =gUnk_03003F80 + movs r2, #0x26 + ldrb r2, [r1, r2] + cmp r2, #0 + beq _08008716 + movs r2, #0x12 + ldrb r2, [r1, r2] + cmp r2, #0x18 + beq _08008716 + pop {r2} + pop {r0, r1} + cmp r2, #0x10 + bhs _0800872E + movs r2, #0xf + b _0800871E +_08008716: + pop {r2} + pop {r0, r1} + cmp r2, #0x10 + bhs _0800872E +_0800871E: + movs r3, #8 + tst r1, r3 + bne _08008726 + lsrs r2, r2, #2 +_08008726: + tst r0, r3 + bne _08008754 + lsrs r2, r2, #1 + b _08008754 +_0800872E: + cmp r2, #0xff + beq _08008754 + push {r4} + subs r2, #0x10 + mov r3, fp + ldrb r2, [r2, r3] + lsls r2, r2, #2 + ldr r3, _080088CC @ =gUnk_0800823C + ldr r3, [r3, r2] + movs r4, #0xf + ands r4, r1 + lsls r4, r4, #1 + ldrh r2, [r3, r4] + movs r3, #0xf + adds r4, r3, #0 + ands r3, r0 + eors r4, r3 + lsrs r2, r4 + pop {r4} +_08008754: + movs r3, #1 + ands r2, r3 + pop {pc} + + non_word_aligned_thumb_func_start sub_0800875A +sub_0800875A: @ 0x0800875A + push {r2, r4, lr} + ldrb r3, [r0, #0x14] + movs r2, #6 + ands r3, r2 + ldr r4, _080088D0 @ =gUnk_08007DF4 + ldrsb r2, [r4, r3] + adds r3, #1 + ldrsb r3, [r4, r3] + bl sub_08008782 + pop {r2, r4} + cmp r0, #0 + beq _08008780 + ldrb r1, [r0, #2] + strb r1, [r2, #3] + ldrb r1, [r0, #3] + strb r1, [r2, #7] + ldrb r1, [r0, #5] + strb r1, [r2, #8] +_08008780: + pop {pc} + + non_word_aligned_thumb_func_start sub_08008782 +sub_08008782: @ 0x08008782 + push {r4} + ldrh r4, [r0, #0x2e] + adds r2, r2, r4 + ldrh r4, [r0, #0x32] + adds r3, r3, r4 + pop {r4} + b sub_08008796 + + thumb_func_start sub_08008790 +sub_08008790: @ 0x08008790 + ldrh r2, [r0, #0x2e] + ldrh r3, [r0, #0x32] + b sub_08008796 + + non_word_aligned_thumb_func_start sub_08008796 +sub_08008796: @ 0x08008796 + push {r4, r5, r6, r7, lr} + push {r2, r3} + ldr r2, _080088D4 @ =gUnk_03000BF0 + ldrh r3, [r2] + movs r2, #1 + cmp r2, r3 + pop {r2, r3} + beq _080087CE + push {r0, r1, r2, r3} + pop {r4, r5, r6, r7} + adds r0, r6, #0 + adds r1, r7, #0 + movs r2, #0x38 + ldrb r2, [r4, r2] + bl sub_080002A4 + ldr r1, _080088D8 @ =gUnk_080046A4 + bl sub_08007DE0 + beq _080087CE + lsls r1, r3, #3 + adds r3, r5, #0 + ldr r0, _080088DC @ =gUnk_080047F6 + adds r5, r0, r1 + ldrh r0, [r5] + lsrs r0, r3 + lsrs r0, r0, #1 + bhs _080087D2 +_080087CE: + movs r0, #0 + pop {r4, r5, r6, r7, pc} +_080087D2: + ldrb r0, [r5, #2] + ldrb r1, [r5, #3] + cmp r0, #0xff + beq _0800883A + cmp r3, #6 + beq _0800883A + cmp r3, #0xe + beq _0800883A + cmp r3, #0xa + beq _0800883A + cmp r3, #0xb + beq _0800883A + cmp r3, #0xd + bne _080087F6 + cmp r0, #0xf + bne _0800883A + cmp r1, #0x17 + bne _0800883A +_080087F6: + movs r2, #0 + cmp r0, #0xf + bne _080087FE + movs r2, #0x80 +_080087FE: + bl sub_080A2960 + cmp r0, #0 + beq _0800883A + ldrb r1, [r5, #2] + cmp r1, #0 + beq _08008820 + movs r2, #0xf + adds r1, r6, #0 + bics r1, r2 + adds r1, #8 + strh r1, [r0, #0x2e] + adds r1, r7, #0 + bics r1, r2 + adds r1, #8 + strh r1, [r0, #0x32] + b _0800882C +_08008820: + ldrh r1, [r4, #0x2e] + strh r1, [r0, #0x2e] + ldrh r1, [r4, #0x32] + strh r1, [r0, #0x32] + ldrh r1, [r4, #0x36] + strh r1, [r1, #0x36] +_0800882C: + movs r3, #0x50 + str r4, [r1, r3] + movs r3, #0x38 + ldrb r1, [r4, r3] + strb r1, [r0, r3] + bl sub_08016A04 +_0800883A: + ldr r1, _080088E0 @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + subs r2, r6, r0 + lsrs r2, r2, #4 + ldrh r0, [r1, #8] + subs r3, r7, r0 + lsrs r3, r3, #4 + lsls r3, r3, #6 + adds r1, r2, r3 + movs r3, #0x38 + ldrb r2, [r4, r3] + ldrh r0, [r5, #6] + ldr r3, _080088E4 @ =0x00004000 + tst r0, r3 + beq _08008870 + ldr r3, _080088E8 @ =0x0000FFFF + cmp r0, r3 + beq _08008876 + push {r0, r1} + adds r0, r2, #0 + bl sub_0808094C + adds r3, r0, #4 + pop {r0, r1} + lsls r1, r1, #1 + strh r0, [r3, r1] + b _0800887E +_08008870: + bl sub_0807B7D8 + b _0800887E +_08008876: + adds r0, r1, #0 + adds r1, r2, #0 + bl sub_0807BA8C +_0800887E: + ldrb r1, [r5, #2] + ldrb r2, [r5, #3] + adds r0, r5, #0 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08008888: .4byte gUnk_03003F80 +_0800888C: .4byte gUnk_03003F80 +_08008890: .4byte gUnk_080083FC +_08008894: .4byte gUnk_0800839C +_08008898: .4byte gUnk_0800845C +_0800889C: .4byte 0x01000000 +_080088A0: .4byte gUnk_0800833C +_080088A4: .4byte gUnk_080084BC +_080088A8: .4byte gUnk_03003F80 +_080088AC: .4byte gUnk_0800851C +_080088B0: .4byte gUnk_080082DC +_080088B4: .4byte gUnk_03000BF6 +_080088B8: .4byte gUnk_03000BF8 +_080088BC: .4byte gUnk_03001160 +_080088C0: .4byte 0x000003F0 +_080088C4: .4byte 0x08000248 +_080088C8: .4byte gUnk_03003F80 +_080088CC: .4byte gUnk_0800823C +_080088D0: .4byte gUnk_08007DF4 +_080088D4: .4byte gUnk_03000BF0 +_080088D8: .4byte gUnk_080046A4 +_080088DC: .4byte gUnk_080047F6 +_080088E0: .4byte gUnk_03000BF0 +_080088E4: .4byte 0x00004000 +_080088E8: .4byte 0x0000FFFF +_080088EC: + .byte 0x00, 0xFD, 0x03, 0xFD + .byte 0x03, 0x00, 0x03, 0x03, 0x00, 0x03, 0xFD, 0x03, 0xFD, 0x00, 0xFD, 0xFD, 0x00, 0xF6, 0x0A, 0xF6 + .byte 0x0A, 0x00, 0x0A, 0x0A, 0x00, 0x0A, 0xF6, 0x0A, 0xF6, 0x00, 0xF6, 0xF6, 0x00, 0x06, 0xFA, 0x00 + .byte 0x00, 0xFA, 0x06, 0x00, 0x13, 0x12, 0x12, 0x10, 0x10, 0x11, 0x11, 0x13 +_0800891C: + push {r0} + bl sub_08078F60 + pop {r0} +_08008924: + pop {pc} + + non_word_aligned_thumb_func_start sub_08008926 +sub_08008926: @ 0x08008926 + push {r4, r5, r6, lr} + bl sub_08008942 + pop {r4, r5, r6, pc} + + non_word_aligned_thumb_func_start sub_0800892E +sub_0800892E: @ 0x0800892E + push {r4, r5, r6, lr} + bl sub_08008936 + pop {r4, r5, r6, pc} + + non_word_aligned_thumb_func_start sub_08008936 +sub_08008936: @ 0x08008936 + push {lr} + ldrb r2, [r0, #0x14] + lsrs r2, r2, #1 + lsls r2, r2, #3 + ldr r1, _08008A68 @ =gUnk_03003F80 + b _08008960 + + non_word_aligned_thumb_func_start sub_08008942 +sub_08008942: @ 0x08008942 + push {lr} + ldr r1, _08008A6C @ =gUnk_03003F80 + ldrb r2, [r1, #7] + ldrb r3, [r1, #0xa] + orrs r2, r3 + bne _08008924 + ldrb r2, [r1, #0xd] + b _08008956 +_08008952: + push {lr} + ldr r1, _08008A70 @ =gUnk_03003F80 +_08008956: + movs r3, #0x15 + strb r2, [r0, r3] + movs r3, #0x80 + tst r2, r3 + bne _080089C0 +_08008960: + ldrb r3, [r1, #5] + cmp r3, #2 + beq _0800891C + cmp r3, #1 + beq _0800891C + ldr r4, _08008A74 @ =0x080088FC + ldrb r3, [r1, #2] + adds r1, r2, #0 + orrs r3, r3 + beq _08008992 + push {r2} + movs r3, #0x14 + ldrb r1, [r0, r3] + lsrs r1, r1, #1 + lsls r1, r1, #1 + lsrs r2, r2, #2 + subs r2, r2, r1 + pop {r1} + adds r2, #2 + movs r4, #7 + ands r2, r4 + ldr r4, _08008A78 @ =0x080088EC + cmp r2, #4 + beq _08008992 + bhs _080089A8 +_08008992: + adds r3, r1, #0 + lsrs r3, r3, #2 + lsls r3, r3, #1 + adds r4, r4, r3 + movs r3, #0 + ldrsb r2, [r4, r3] + adds r3, #1 + ldrsb r3, [r4, r3] + bl sub_08008A46 + b _080089C0 +_080089A8: + movs r3, #0x14 + ldrb r3, [r0, r3] + lsrs r3, r3, #1 + lsls r3, r3, #1 + ldr r4, _08008A7C @ =0x0800890C + adds r4, r4, r3 + movs r3, #0 + ldrsb r2, [r4, r3] + adds r3, #1 + ldrsb r3, [r4, r3] + bl sub_08008A46 +_080089C0: + ldr r1, _08008A80 @ =gUnk_03003F80 + movs r4, #0x8c + movs r2, #8 + ldrsh r3, [r1, r4] + orrs r3, r3 + beq _080089E4 + bpl _080089D2 + movs r2, #0x18 + rsbs r3, r3, #0 +_080089D2: + push {r0, r1} + adds r1, r3, #0 + push {r2} + bl sub_080027EA + pop {r0} + bl sub_0807A5B8 + pop {r0, r1} +_080089E4: + movs r4, #0x8e + movs r2, #0x10 + ldrsh r3, [r1, r4] + orrs r3, r3 + beq _08008A06 + bpl _080089F4 + movs r2, #0 + rsbs r3, r3, #0 +_080089F4: + push {r0, r1} + adds r1, r3, #0 + push {r2} + bl sub_080027EA + pop {r0} + bl sub_0807A5B8 + pop {r0, r1} +_08008A06: + ldrb r2, [r1, #2] + orrs r2, r2 + bne _08008A18 + movs r2, #0x8c + bl sub_08008A1A + movs r2, #0x8e + bl sub_08008A1A +_08008A18: + pop {pc} + + non_word_aligned_thumb_func_start sub_08008A1A +sub_08008A1A: @ 0x08008A1A + ldrb r3, [r1, #2] + movs r4, #3 + orrs r3, r3 + bne _08008A2C + movs r3, #0x26 + ldrb r3, [r1, r3] + orrs r3, r3 + bne _08008A2C + movs r4, #3 +_08008A2C: + ldrsh r3, [r1, r2] + orrs r3, r3 + bmi _08008A3E + subs r3, r3, r4 + bpl _08008A3A + beq _08008A3A +_08008A38: + eors r3, r3 +_08008A3A: + strh r3, [r1, r2] + mov pc, lr +_08008A3E: + adds r3, r3, r4 + bmi _08008A3A + beq _08008A3A + b _08008A38 + + non_word_aligned_thumb_func_start sub_08008A46 +sub_08008A46: @ 0x08008A46 + push {lr} + ldr r1, _08008A84 @ =gUnk_03003F80 + movs r4, #0x8c + ldrsh r5, [r1, r4] + adds r5, r5, r2 + bl sub_08008A88 + movs r4, #0x8e + ldrsh r5, [r1, r4] + adds r5, r5, r3 + bl sub_08008A88 + pop {pc} +_08008A60: + eors r3, r3 + strh r3, [r1] + pop {pc} + .align 2, 0 +_08008A68: .4byte gUnk_03003F80 +_08008A6C: .4byte gUnk_03003F80 +_08008A70: .4byte gUnk_03003F80 +_08008A74: .4byte 0x080088FC +_08008A78: .4byte 0x080088EC +_08008A7C: .4byte 0x0800890C +_08008A80: .4byte gUnk_03003F80 +_08008A84: .4byte gUnk_03003F80 + + thumb_func_start sub_08008A88 +sub_08008A88: @ 0x08008A88 + orrs r5, r5 + bmi _08008A94 + ldr r6, _08008B38 @ =0x00000180 + cmp r5, r6 + blo _08008A9C + b _08008A9A +_08008A94: + ldr r6, _08008B3C @ =0xFFFFFE80 + cmp r5, r6 + bhs _08008A9C +_08008A9A: + adds r5, r6, #0 +_08008A9C: + strh r5, [r1, r4] + mov pc, lr + + thumb_func_start sub_08008AA0 +sub_08008AA0: @ 0x08008AA0 + push {r4, r5, lr} + ldr r1, _08008B40 @ =gUnk_03003F80 + ldrb r2, [r1, #0x12] + cmp r2, #1 + beq _08008AC4 + ldrb r2, [r1, #0xd] + cmp r2, #0xff + beq _08008AC4 + lsls r2, r2, #4 + ldr r3, _08008B44 @ =gUnk_080C9160 + ldrsh r4, [r3, r2] + adds r3, #0x80 + ldrsh r5, [r3, r2] + rsbs r5, r5, #0 + movs r2, #0x8c + strh r4, [r1, r2] + movs r2, #0x8e + strh r5, [r1, r2] +_08008AC4: + pop {r4, r5, pc} + + non_word_aligned_thumb_func_start sub_08008AC6 +sub_08008AC6: @ 0x08008AC6 + push {r0, lr} + ldr r1, _08008B48 @ =gUnk_03003F80 + movs r3, #0x26 + ldrb r2, [r1, r3] + movs r3, #0xf + ands r2, r3 + bne _08008AEC + ldr r2, [r1, #0x30] + ldr r3, _08008B4C @ =gUnk_02000020 + ands r2, r3 + bne _08008AEC + bl sub_08008AEE + beq _08008AEC + movs r3, #0xe2 + movs r2, #0x3d + strb r3, [r0, r2] + bl sub_08079458 +_08008AEC: + pop {r0, pc} + + non_word_aligned_thumb_func_start sub_08008AEE +sub_08008AEE: @ 0x08008AEE + ldrh r2, [r0, #0x2a] + movs r3, #0xe + movs r1, #4 +_08008AF4: + tst r2, r3 + beq _08008B00 + lsrs r2, r2, #4 + subs r1, #1 + bne _08008AF4 + movs r2, #1 +_08008B00: + bx lr + + non_word_aligned_thumb_func_start sub_08008B02 +sub_08008B02: @ 0x08008B02 + push {r0, r1, lr} + movs r1, #0 + movs r2, #0 + bl sub_080002B4 + ldr r1, _08008B50 @ =0x00004000 + tst r0, r1 + bne _08008B1E + ldr r1, _08008B54 @ =gUnk_08007CAC + bl sub_08007DE0 + movs r2, #1 + cmp r3, #1 + beq _08008B20 +_08008B1E: + movs r2, #0 +_08008B20: + pop {r0, r1, pc} + + non_word_aligned_thumb_func_start sub_08008B22 +sub_08008B22: @ 0x08008B22 + push {lr} + ldr r0, _08008B58 @ =gUnk_03001160 + bl sub_08008B02 + adds r0, r2, #0 + pop {pc} + + non_word_aligned_thumb_func_start sub_08008B2E +sub_08008B2E: @ 0x08008B2E + push {r0, lr} + adds r0, r2, #0 + bl sub_08004488 + pop {r0, pc} + .align 2, 0 +_08008B38: .4byte 0x00000180 +_08008B3C: .4byte 0xFFFFFE80 +_08008B40: .4byte gUnk_03003F80 +_08008B44: .4byte gUnk_080C9160 +_08008B48: .4byte gUnk_03003F80 +_08008B4C: .4byte gUnk_02000020 +_08008B50: .4byte 0x00004000 +_08008B54: .4byte gUnk_08007CAC +_08008B58: .4byte gUnk_03001160 + +gUnk_08008B5C:: @ 08008B5C + .incbin "baserom.gba", 0x008B5C, 0x0000034 + +gUnk_08008B90:: @ 08008B90 + .incbin "baserom.gba", 0x008B90, 0x0000030 + +gUnk_08008BC0:: @ 08008BC0 + .incbin "baserom.gba", 0x008BC0, 0x000008E + +gUnk_08008C4E:: @ 08008C4E + .incbin "baserom.gba", 0x008C4E, 0x0000016 + +gUnk_08008C64:: @ 08008C64 + .incbin "baserom.gba", 0x008C64, 0x0000009 + +gUnk_08008C6D:: @ 08008C6D + .incbin "baserom.gba", 0x008C6D, 0x0000011 + +gUnk_08008C7E:: @ 08008C7E + .incbin "baserom.gba", 0x008C7E, 0x000003B + +gUnk_08008CB9:: @ 08008CB9 + .incbin "baserom.gba", 0x008CB9, 0x0000097 + +gUnk_08008D50:: @ 08008D50 + .incbin "baserom.gba", 0x008D50, 0x000003C + +gUnk_08008D8C:: @ 08008D8C + .incbin "baserom.gba", 0x008D8C, 0x0000034 + +gUnk_08008DC0:: @ 08008DC0 + .incbin "baserom.gba", 0x008DC0, 0x0000048 + +gUnk_08008E08:: @ 08008E08 + .incbin "baserom.gba", 0x008E08, 0x0000002 + +gUnk_08008E0A:: @ 08008E0A + .incbin "baserom.gba", 0x008E0A, 0x0000102 + +gUnk_08008F0C:: @ 08008F0C + .incbin "baserom.gba", 0x008F0C, 0x000000A + +gUnk_08008F16:: @ 08008F16 + .incbin "baserom.gba", 0x008F16, 0x0000010 + +gUnk_08008F26:: @ 08008F26 + .incbin "baserom.gba", 0x008F26, 0x000006A + +gUnk_08008F90:: @ 08008F90 + .incbin "baserom.gba", 0x008F90, 0x0000030 + +gUnk_08008FC0:: @ 08008FC0 + .incbin "baserom.gba", 0x008FC0, 0x0000011 + +gUnk_08008FD1:: @ 08008FD1 + .incbin "baserom.gba", 0x008FD1, 0x000002B + +gUnk_08008FFC:: @ 08008FFC + .incbin "baserom.gba", 0x008FFC, 0x000000C + +gUnk_08009008:: @ 08009008 + .incbin "baserom.gba", 0x009008, 0x0000017 + +gUnk_0800901F:: @ 0800901F + .incbin "baserom.gba", 0x00901F, 0x000001D + +gUnk_0800903C:: @ 0800903C + .incbin "baserom.gba", 0x00903C, 0x0000044 + +gUnk_08009080:: @ 08009080 + .incbin "baserom.gba", 0x009080, 0x000005B + +gUnk_080090DB:: @ 080090DB + .incbin "baserom.gba", 0x0090DB, 0x00000BD + +gUnk_08009198:: @ 08009198 + .incbin "baserom.gba", 0x009198, 0x000006F + +gUnk_08009207:: @ 08009207 + .incbin "baserom.gba", 0x009207, 0x000006D + +gUnk_08009274:: @ 08009274 + .incbin "baserom.gba", 0x009274, 0x0000034 + +gUnk_080092A8:: @ 080092A8 + .incbin "baserom.gba", 0x0092A8, 0x000002C + +gUnk_080092D4:: @ 080092D4 + .incbin "baserom.gba", 0x0092D4, 0x000001C + +gUnk_080092F0:: @ 080092F0 + .incbin "baserom.gba", 0x0092F0, 0x0000018 + +gUnk_08009308:: @ 08009308 + .incbin "baserom.gba", 0x009308, 0x0000010 + +gUnk_08009318:: @ 08009318 + .incbin "baserom.gba", 0x009318, 0x0000008 + +gUnk_08009320:: @ 08009320 + .incbin "baserom.gba", 0x009320, 0x0000020 + +gUnk_08009340:: @ 08009340 + .incbin "baserom.gba", 0x009340, 0x0000008 + +gUnk_08009348:: @ 08009348 + .incbin "baserom.gba", 0x009348, 0x000004B + +gUnk_08009393:: @ 08009393 + .incbin "baserom.gba", 0x009393, 0x0000044 + +gUnk_080093D7:: @ 080093D7 + .incbin "baserom.gba", 0x0093D7, 0x0000030 + +gUnk_08009407:: @ 08009407 + .incbin "baserom.gba", 0x009407, 0x000007F + +gUnk_08009486:: @ 08009486 + .incbin "baserom.gba", 0x009486, 0x000001E + +gUnk_080094A4:: @ 080094A4 + .incbin "baserom.gba", 0x0094A4, 0x0000028 + +gUnk_080094CC:: @ 080094CC + .incbin "baserom.gba", 0x0094CC, 0x000000B + +gUnk_080094D7:: @ 080094D7 + .incbin "baserom.gba", 0x0094D7, 0x0000025 + +gUnk_080094FC:: @ 080094FC + .incbin "baserom.gba", 0x0094FC, 0x0000007 + +gUnk_08009503:: @ 08009503 + .incbin "baserom.gba", 0x009503, 0x0000005 + +gUnk_08009508:: @ 08009508 + .incbin "baserom.gba", 0x009508, 0x0000030 + +gUnk_08009538:: @ 08009538 + .incbin "baserom.gba", 0x009538, 0x000003C + +gUnk_08009574:: @ 08009574 + .incbin "baserom.gba", 0x009574, 0x0000058 + +gUnk_080095CC:: @ 080095CC + .incbin "baserom.gba", 0x0095CC, 0x0000060 + +gUnk_0800962C:: @ 0800962C + .incbin "baserom.gba", 0x00962C, 0x000006C + +gUnk_08009698:: @ 08009698 + .incbin "baserom.gba", 0x009698, 0x000006C + +gUnk_08009704:: @ 08009704 + .incbin "baserom.gba", 0x009704, 0x0000002 + +gUnk_08009706:: @ 08009706 + .incbin "baserom.gba", 0x009706, 0x000003A + +gUnk_08009740:: @ 08009740 + .incbin "baserom.gba", 0x009740, 0x0000038 + +gUnk_08009778:: @ 08009778 + .incbin "baserom.gba", 0x009778, 0x000000E + +gUnk_08009786:: @ 08009786 + .incbin "baserom.gba", 0x009786, 0x000001B + +gUnk_080097A1:: @ 080097A1 + .incbin "baserom.gba", 0x0097A1, 0x000004F + +gUnk_080097F0:: @ 080097F0 + .incbin "baserom.gba", 0x0097F0, 0x0000048 + +gUnk_08009838:: @ 08009838 + .incbin "baserom.gba", 0x009838, 0x000009C + +gUnk_080098D4:: @ 080098D4 + .incbin "baserom.gba", 0x0098D4, 0x0000044 + +gUnk_08009918:: @ 08009918 + .incbin "baserom.gba", 0x009918, 0x0000028 + +gUnk_08009940:: @ 08009940 + .incbin "baserom.gba", 0x009940, 0x0000010 + +gUnk_08009950:: @ 08009950 + .incbin "baserom.gba", 0x009950, 0x000008C + +gUnk_080099DC:: @ 080099DC + .incbin "baserom.gba", 0x0099DC, 0x0000028 + +gUnk_08009A04:: @ 08009A04 + .incbin "baserom.gba", 0x009A04, 0x0000003 + +gUnk_08009A07:: @ 08009A07 + .incbin "baserom.gba", 0x009A07, 0x0000025 + +gUnk_08009A2C:: @ 08009A2C + .incbin "baserom.gba", 0x009A2C, 0x0000008 + +gUnk_08009A34:: @ 08009A34 + .incbin "baserom.gba", 0x009A34, 0x000001C + +gUnk_08009A50:: @ 08009A50 + .incbin "baserom.gba", 0x009A50, 0x0000027 + +gUnk_08009A77:: @ 08009A77 + .incbin "baserom.gba", 0x009A77, 0x000000A + +gUnk_08009A81:: @ 08009A81 + .incbin "baserom.gba", 0x009A81, 0x0000003 + +gUnk_08009A84:: @ 08009A84 + .incbin "baserom.gba", 0x009A84, 0x0000037 + +gUnk_08009ABB:: @ 08009ABB + .incbin "baserom.gba", 0x009ABB, 0x000003D + +gUnk_08009AF8:: @ 08009AF8 + .incbin "baserom.gba", 0x009AF8, 0x0000038 + +gUnk_08009B30:: @ 08009B30 + .incbin "baserom.gba", 0x009B30, 0x0000033 + +gUnk_08009B63:: @ 08009B63 + .incbin "baserom.gba", 0x009B63, 0x0000015 + +gUnk_08009B78:: @ 08009B78 + .incbin "baserom.gba", 0x009B78, 0x00000F0 + +gUnk_08009C68:: @ 08009C68 + .incbin "baserom.gba", 0x009C68, 0x0000017 + +gUnk_08009C7F:: @ 08009C7F + .incbin "baserom.gba", 0x009C7F, 0x000001F + +gUnk_08009C9E:: @ 08009C9E + .incbin "baserom.gba", 0x009C9E, 0x0000062 + +gUnk_08009D00:: @ 08009D00 + .incbin "baserom.gba", 0x009D00, 0x000006C + +gUnk_08009D6C:: @ 08009D6C + .incbin "baserom.gba", 0x009D6C, 0x000000B + +gUnk_08009D77:: @ 08009D77 + .incbin "baserom.gba", 0x009D77, 0x0000039 + +gUnk_08009DB0:: @ 08009DB0 + .incbin "baserom.gba", 0x009DB0, 0x000003C + +gUnk_08009DEC:: @ 08009DEC + .incbin "baserom.gba", 0x009DEC, 0x000004C + +gUnk_08009E38:: @ 08009E38 + .incbin "baserom.gba", 0x009E38, 0x0000020 + +gUnk_08009E58:: @ 08009E58 + .incbin "baserom.gba", 0x009E58, 0x0000030 + +gUnk_08009E88:: @ 08009E88 + .incbin "baserom.gba", 0x009E88, 0x0000016 + +gUnk_08009E9E:: @ 08009E9E + .incbin "baserom.gba", 0x009E9E, 0x000000B + +gUnk_08009EA9:: @ 08009EA9 + .incbin "baserom.gba", 0x009EA9, 0x000000E + +gUnk_08009EB7:: @ 08009EB7 + .incbin "baserom.gba", 0x009EB7, 0x0000015 + +gUnk_08009ECC:: @ 08009ECC + .incbin "baserom.gba", 0x009ECC, 0x0000024 + +gUnk_08009EF0:: @ 08009EF0 + .incbin "baserom.gba", 0x009EF0, 0x0000017 + +gUnk_08009F07:: @ 08009F07 + .incbin "baserom.gba", 0x009F07, 0x000000D + +gUnk_08009F14:: @ 08009F14 + .incbin "baserom.gba", 0x009F14, 0x0000025 + +gUnk_08009F39:: @ 08009F39 + .incbin "baserom.gba", 0x009F39, 0x0000039 + +gUnk_08009F72:: @ 08009F72 + .incbin "baserom.gba", 0x009F72, 0x00000F2 + +gUnk_0800A064:: @ 0800A064 + .incbin "baserom.gba", 0x00A064, 0x000001D + +gUnk_0800A081:: @ 0800A081 + .incbin "baserom.gba", 0x00A081, 0x0000033 + +gUnk_0800A0B4:: @ 0800A0B4 + .incbin "baserom.gba", 0x00A0B4, 0x0000048 + +gUnk_0800A0FC:: @ 0800A0FC + .incbin "baserom.gba", 0x00A0FC, 0x000000E + +gUnk_0800A10A:: @ 0800A10A + .incbin "baserom.gba", 0x00A10A, 0x0000005 + +gUnk_0800A10F:: @ 0800A10F + .incbin "baserom.gba", 0x00A10F, 0x0000015 + +gUnk_0800A124:: @ 0800A124 + .incbin "baserom.gba", 0x00A124, 0x0000010 + +gUnk_0800A134:: @ 0800A134 + .incbin "baserom.gba", 0x00A134, 0x0000080 + +gUnk_0800A1B4:: @ 0800A1B4 + .incbin "baserom.gba", 0x00A1B4, 0x0000024 + +gUnk_0800A1D8:: @ 0800A1D8 + .incbin "baserom.gba", 0x00A1D8, 0x000004C + +gUnk_0800A224:: @ 0800A224 + .incbin "baserom.gba", 0x00A224, 0x000003C + +gUnk_0800A260:: @ 0800A260 + .incbin "baserom.gba", 0x00A260, 0x00000E0 + +gUnk_0800A340:: @ 0800A340 + .incbin "baserom.gba", 0x00A340, 0x0000063 + +gUnk_0800A3A3:: @ 0800A3A3 + .incbin "baserom.gba", 0x00A3A3, 0x0000006 + +gUnk_0800A3A9:: @ 0800A3A9 + .incbin "baserom.gba", 0x00A3A9, 0x0000001 + +gUnk_0800A3AA:: @ 0800A3AA + .incbin "baserom.gba", 0x00A3AA, 0x000002E + +gUnk_0800A3D8:: @ 0800A3D8 + .incbin "baserom.gba", 0x00A3D8, 0x0000128 + +gUnk_0800A500:: @ 0800A500 + .incbin "baserom.gba", 0x00A500, 0x0000090 + +gUnk_0800A590:: @ 0800A590 + .incbin "baserom.gba", 0x00A590, 0x0000016 + +gUnk_0800A5A6:: @ 0800A5A6 + .incbin "baserom.gba", 0x00A5A6, 0x00000B6 + +gUnk_0800A65C:: @ 0800A65C + .incbin "baserom.gba", 0x00A65C, 0x0000022 + +gUnk_0800A67E:: @ 0800A67E + .incbin "baserom.gba", 0x00A67E, 0x0000002 + +gUnk_0800A680:: @ 0800A680 + .incbin "baserom.gba", 0x00A680, 0x0000024 + +gUnk_0800A6A4:: @ 0800A6A4 + .incbin "baserom.gba", 0x00A6A4, 0x0000007 + +gUnk_0800A6AB:: @ 0800A6AB + .incbin "baserom.gba", 0x00A6AB, 0x0000029 + +gUnk_0800A6D4:: @ 0800A6D4 + .incbin "baserom.gba", 0x00A6D4, 0x0000030 + +gUnk_0800A704:: @ 0800A704 + .incbin "baserom.gba", 0x00A704, 0x0000030 + +gUnk_0800A734:: @ 0800A734 + .incbin "baserom.gba", 0x00A734, 0x0000016 + +gUnk_0800A74A:: @ 0800A74A + .incbin "baserom.gba", 0x00A74A, 0x000001A + +gUnk_0800A764:: @ 0800A764 + .incbin "baserom.gba", 0x00A764, 0x0000080 + +gUnk_0800A7E4:: @ 0800A7E4 + .incbin "baserom.gba", 0x00A7E4, 0x0000004 + +gUnk_0800A7E8:: @ 0800A7E8 + .incbin "baserom.gba", 0x00A7E8, 0x000002E + +gUnk_0800A816:: @ 0800A816 + .incbin "baserom.gba", 0x00A816, 0x000000A + +gUnk_0800A820:: @ 0800A820 + .incbin "baserom.gba", 0x00A820, 0x000003C + +gUnk_0800A85C:: @ 0800A85C + .incbin "baserom.gba", 0x00A85C, 0x000003C + +gUnk_0800A898:: @ 0800A898 + .incbin "baserom.gba", 0x00A898, 0x000003C + +gUnk_0800A8D4:: @ 0800A8D4 + .incbin "baserom.gba", 0x00A8D4, 0x0000034 + +gUnk_0800A908:: @ 0800A908 + .incbin "baserom.gba", 0x00A908, 0x0000008 + +gUnk_0800A910:: @ 0800A910 + .incbin "baserom.gba", 0x00A910, 0x0000054 + +gUnk_0800A964:: @ 0800A964 + .incbin "baserom.gba", 0x00A964, 0x0000024 + +gUnk_0800A988:: @ 0800A988 + .incbin "baserom.gba", 0x00A988, 0x0000024 + +gUnk_0800A9AC:: @ 0800A9AC + .incbin "baserom.gba", 0x00A9AC, 0x0000024 + +gUnk_0800A9D0:: @ 0800A9D0 + .incbin "baserom.gba", 0x00A9D0, 0x0000024 + +gUnk_0800A9F4:: @ 0800A9F4 + .incbin "baserom.gba", 0x00A9F4, 0x000000F + +gUnk_0800AA03:: @ 0800AA03 + .incbin "baserom.gba", 0x00AA03, 0x0000045 + +gUnk_0800AA48:: @ 0800AA48 + .incbin "baserom.gba", 0x00AA48, 0x0000024 + +gUnk_0800AA6C:: @ 0800AA6C + .incbin "baserom.gba", 0x00AA6C, 0x0000024 + +gUnk_0800AA90:: @ 0800AA90 + .incbin "baserom.gba", 0x00AA90, 0x0000024 + +gUnk_0800AAB4:: @ 0800AAB4 + .incbin "baserom.gba", 0x00AAB4, 0x0000024 + +gUnk_0800AAD8:: @ 0800AAD8 + .incbin "baserom.gba", 0x00AAD8, 0x0000030 + +gUnk_0800AB08:: @ 0800AB08 + .incbin "baserom.gba", 0x00AB08, 0x000001B + +gUnk_0800AB23:: @ 0800AB23 + .incbin "baserom.gba", 0x00AB23, 0x000002C + +gUnk_0800AB4F:: @ 0800AB4F + .incbin "baserom.gba", 0x00AB4F, 0x00000A1 + +gUnk_0800ABF0:: @ 0800ABF0 + .incbin "baserom.gba", 0x00ABF0, 0x0000034 + +gUnk_0800AC24:: @ 0800AC24 + .incbin "baserom.gba", 0x00AC24, 0x0000049 + +gUnk_0800AC6D:: @ 0800AC6D + .incbin "baserom.gba", 0x00AC6D, 0x0000048 + +gUnk_0800ACB5:: @ 0800ACB5 + .incbin "baserom.gba", 0x00ACB5, 0x0000007 + +gUnk_0800ACBC:: @ 0800ACBC + .incbin "baserom.gba", 0x00ACBC, 0x0000024 + +gUnk_0800ACE0:: @ 0800ACE0 + .incbin "baserom.gba", 0x00ACE0, 0x0000074 + +gUnk_0800AD54:: @ 0800AD54 + .incbin "baserom.gba", 0x00AD54, 0x0000020 + +gUnk_0800AD74:: @ 0800AD74 + .incbin "baserom.gba", 0x00AD74, 0x0000033 + +gUnk_0800ADA7:: @ 0800ADA7 + .incbin "baserom.gba", 0x00ADA7, 0x000000D + +gUnk_0800ADB4:: @ 0800ADB4 + .incbin "baserom.gba", 0x00ADB4, 0x00000F0 + +gUnk_0800AEA4:: @ 0800AEA4 + .incbin "baserom.gba", 0x00AEA4, 0x0000038 + +gUnk_0800AEDC:: @ 0800AEDC + .incbin "baserom.gba", 0x00AEDC, 0x000003C + +gUnk_0800AF18:: @ 0800AF18 + .incbin "baserom.gba", 0x00AF18, 0x000002C + +gUnk_0800AF44:: @ 0800AF44 + .incbin "baserom.gba", 0x00AF44, 0x0000024 + +gUnk_0800AF68:: @ 0800AF68 + .incbin "baserom.gba", 0x00AF68, 0x0000016 + +gUnk_0800AF7E:: @ 0800AF7E + .incbin "baserom.gba", 0x00AF7E, 0x000000E + +gUnk_0800AF8C:: @ 0800AF8C + .incbin "baserom.gba", 0x00AF8C, 0x000001B + +gUnk_0800AFA7:: @ 0800AFA7 + .incbin "baserom.gba", 0x00AFA7, 0x0000009 + +gUnk_0800AFB0:: @ 0800AFB0 + .incbin "baserom.gba", 0x00AFB0, 0x0000038 + +gUnk_0800AFE8:: @ 0800AFE8 + .incbin "baserom.gba", 0x00AFE8, 0x0000024 + +gUnk_0800B00C:: @ 0800B00C + .incbin "baserom.gba", 0x00B00C, 0x00000A0 + +gUnk_0800B0AC:: @ 0800B0AC + .incbin "baserom.gba", 0x00B0AC, 0x0000004 + +gUnk_0800B0B0:: @ 0800B0B0 + .incbin "baserom.gba", 0x00B0B0, 0x0000020 + +gUnk_0800B0D0:: @ 0800B0D0 + .incbin "baserom.gba", 0x00B0D0, 0x00000A7 + +gUnk_0800B177:: @ 0800B177 + .incbin "baserom.gba", 0x00B177, 0x0000005 + +gUnk_0800B17C:: @ 0800B17C + .incbin "baserom.gba", 0x00B17C, 0x0000044 + +gUnk_0800B1C0:: @ 0800B1C0 + .incbin "baserom.gba", 0x00B1C0, 0x0000040 + +gUnk_0800B200:: @ 0800B200 + .incbin "baserom.gba", 0x00B200, 0x0000054 + +gUnk_0800B254:: @ 0800B254 + .incbin "baserom.gba", 0x00B254, 0x0000030 + +gUnk_0800B284:: @ 0800B284 + .incbin "baserom.gba", 0x00B284, 0x0000030 + +gUnk_0800B2B4:: @ 0800B2B4 + .incbin "baserom.gba", 0x00B2B4, 0x0000054 + +gUnk_0800B308:: @ 0800B308 + .incbin "baserom.gba", 0x00B308, 0x000001A + +gUnk_0800B322:: @ 0800B322 + .incbin "baserom.gba", 0x00B322, 0x0000007 + +gUnk_0800B329:: @ 0800B329 + .incbin "baserom.gba", 0x00B329, 0x000001F + +gUnk_0800B348:: @ 0800B348 + .incbin "baserom.gba", 0x00B348, 0x0000014 + +gUnk_0800B35C:: @ 0800B35C + .incbin "baserom.gba", 0x00B35C, 0x0000018 + +gUnk_0800B374:: @ 0800B374 + .incbin "baserom.gba", 0x00B374, 0x0000030 + +gUnk_0800B3A4:: @ 0800B3A4 + .incbin "baserom.gba", 0x00B3A4, 0x000006B + +gUnk_0800B40F:: @ 0800B40F + .incbin "baserom.gba", 0x00B40F, 0x000000D + +gUnk_0800B41C:: @ 0800B41C + .incbin "baserom.gba", 0x00B41C, 0x0000090 + +gUnk_0800B4AC:: @ 0800B4AC + .incbin "baserom.gba", 0x00B4AC, 0x000005C + +gUnk_0800B508:: @ 0800B508 + .incbin "baserom.gba", 0x00B508, 0x0000007 + +gUnk_0800B50F:: @ 0800B50F + .incbin "baserom.gba", 0x00B50F, 0x000003D + +gUnk_0800B54C:: @ 0800B54C + .incbin "baserom.gba", 0x00B54C, 0x0000028 + +gUnk_0800B574:: @ 0800B574 + .incbin "baserom.gba", 0x00B574, 0x0000050 + +gUnk_0800B5C4:: @ 0800B5C4 + .incbin "baserom.gba", 0x00B5C4, 0x0000028 + +gUnk_0800B5EC:: @ 0800B5EC + .incbin "baserom.gba", 0x00B5EC, 0x0000028 + +gUnk_0800B614:: @ 0800B614 + .incbin "baserom.gba", 0x00B614, 0x00000B4 + +gUnk_0800B6C8:: @ 0800B6C8 + .incbin "baserom.gba", 0x00B6C8, 0x0000040 + +gUnk_0800B708:: @ 0800B708 + .incbin "baserom.gba", 0x00B708, 0x0000017 + +gUnk_0800B71F:: @ 0800B71F + .incbin "baserom.gba", 0x00B71F, 0x0000011 + +gUnk_0800B730:: @ 0800B730 + .incbin "baserom.gba", 0x00B730, 0x0000094 + +gUnk_0800B7C4:: @ 0800B7C4 + .incbin "baserom.gba", 0x00B7C4, 0x000008B + +gUnk_0800B84F:: @ 0800B84F + .incbin "baserom.gba", 0x00B84F, 0x0000012 + +gUnk_0800B861:: @ 0800B861 + .incbin "baserom.gba", 0x00B861, 0x0000027 + +gUnk_0800B888:: @ 0800B888 + .incbin "baserom.gba", 0x00B888, 0x0000018 + +gUnk_0800B8A0:: @ 0800B8A0 + .incbin "baserom.gba", 0x00B8A0, 0x0000018 + +gUnk_0800B8B8:: @ 0800B8B8 + .incbin "baserom.gba", 0x00B8B8, 0x000002C + +gUnk_0800B8E4:: @ 0800B8E4 + .incbin "baserom.gba", 0x00B8E4, 0x0000022 + +gUnk_0800B906:: @ 0800B906 + .incbin "baserom.gba", 0x00B906, 0x0000016 + +gUnk_0800B91C:: @ 0800B91C + .incbin "baserom.gba", 0x00B91C, 0x0000048 + +gUnk_0800B964:: @ 0800B964 + .incbin "baserom.gba", 0x00B964, 0x0000050 + +gUnk_0800B9B4:: @ 0800B9B4 + .incbin "baserom.gba", 0x00B9B4, 0x0000088 + +gUnk_0800BA3C:: @ 0800BA3C + .incbin "baserom.gba", 0x00BA3C, 0x000003C + +gUnk_0800BA78:: @ 0800BA78 + .incbin "baserom.gba", 0x00BA78, 0x0000054 + +gUnk_0800BACC:: @ 0800BACC + .incbin "baserom.gba", 0x00BACC, 0x0000034 + +gUnk_0800BB00:: @ 0800BB00 + .incbin "baserom.gba", 0x00BB00, 0x0000008 + +gUnk_0800BB08:: @ 0800BB08 + .incbin "baserom.gba", 0x00BB08, 0x0000012 + +gUnk_0800BB1A:: @ 0800BB1A + .incbin "baserom.gba", 0x00BB1A, 0x0000016 + +gUnk_0800BB30:: @ 0800BB30 + .incbin "baserom.gba", 0x00BB30, 0x0000034 + +gUnk_0800BB64:: @ 0800BB64 + .incbin "baserom.gba", 0x00BB64, 0x0000010 + +gUnk_0800BB74:: @ 0800BB74 + .incbin "baserom.gba", 0x00BB74, 0x0000030 + +gUnk_0800BBA4:: @ 0800BBA4 + .incbin "baserom.gba", 0x00BBA4, 0x0000037 + +gUnk_0800BBDB:: @ 0800BBDB + .incbin "baserom.gba", 0x00BBDB, 0x0000001 + +gUnk_0800BBDC:: @ 0800BBDC + .incbin "baserom.gba", 0x00BBDC, 0x000002C + +gUnk_0800BC08:: @ 0800BC08 + .incbin "baserom.gba", 0x00BC08, 0x000001A + +gUnk_0800BC22:: @ 0800BC22 + .incbin "baserom.gba", 0x00BC22, 0x000002E + +gUnk_0800BC50:: @ 0800BC50 + .incbin "baserom.gba", 0x00BC50, 0x000005E + +gUnk_0800BCAE:: @ 0800BCAE + .incbin "baserom.gba", 0x00BCAE, 0x0000009 + +gUnk_0800BCB7:: @ 0800BCB7 + .incbin "baserom.gba", 0x00BCB7, 0x0000007 + +gUnk_0800BCBE:: @ 0800BCBE + .incbin "baserom.gba", 0x00BCBE, 0x000002A + +gUnk_0800BCE8:: @ 0800BCE8 + .incbin "baserom.gba", 0x00BCE8, 0x0000020 + +gUnk_0800BD08:: @ 0800BD08 + .incbin "baserom.gba", 0x00BD08, 0x0000068 + +gUnk_0800BD70:: @ 0800BD70 + .incbin "baserom.gba", 0x00BD70, 0x0000008 + +gUnk_0800BD78:: @ 0800BD78 + .incbin "baserom.gba", 0x00BD78, 0x0000034 + +gUnk_0800BDAC:: @ 0800BDAC + .incbin "baserom.gba", 0x00BDAC, 0x0000018 + +gUnk_0800BDC4:: @ 0800BDC4 + .incbin "baserom.gba", 0x00BDC4, 0x0000058 + +gUnk_0800BE1C:: @ 0800BE1C + .incbin "baserom.gba", 0x00BE1C, 0x0000038 + +gUnk_0800BE54:: @ 0800BE54 + .incbin "baserom.gba", 0x00BE54, 0x0000078 + +gUnk_0800BECC:: @ 0800BECC + .incbin "baserom.gba", 0x00BECC, 0x0000048 + +gUnk_0800BF14:: @ 0800BF14 + .incbin "baserom.gba", 0x00BF14, 0x0000024 + +gUnk_0800BF38:: @ 0800BF38 + .incbin "baserom.gba", 0x00BF38, 0x0000012 + +gUnk_0800BF4A:: @ 0800BF4A + .incbin "baserom.gba", 0x00BF4A, 0x0000026 + +gUnk_0800BF70:: @ 0800BF70 + .incbin "baserom.gba", 0x00BF70, 0x000004F + +gUnk_0800BFBF:: @ 0800BFBF + .incbin "baserom.gba", 0x00BFBF, 0x0000022 + +gUnk_0800BFE1:: @ 0800BFE1 + .incbin "baserom.gba", 0x00BFE1, 0x0000002 + +gUnk_0800BFE3:: @ 0800BFE3 + .incbin "baserom.gba", 0x00BFE3, 0x0000021 + +gUnk_0800C004:: @ 0800C004 + .incbin "baserom.gba", 0x00C004, 0x0000003 + +gUnk_0800C007:: @ 0800C007 + .incbin "baserom.gba", 0x00C007, 0x000001D + +gUnk_0800C024:: @ 0800C024 + .incbin "baserom.gba", 0x00C024, 0x0000057 + +gUnk_0800C07B:: @ 0800C07B + .incbin "baserom.gba", 0x00C07B, 0x0000035 + +gUnk_0800C0B0:: @ 0800C0B0 + .incbin "baserom.gba", 0x00C0B0, 0x0000017 + +gUnk_0800C0C7:: @ 0800C0C7 + .incbin "baserom.gba", 0x00C0C7, 0x000000C + +gUnk_0800C0D3:: @ 0800C0D3 + .incbin "baserom.gba", 0x00C0D3, 0x0000015 + +gUnk_0800C0E8:: @ 0800C0E8 + .incbin "baserom.gba", 0x00C0E8, 0x000002B + +gUnk_0800C113:: @ 0800C113 + .incbin "baserom.gba", 0x00C113, 0x0000034 + +gUnk_0800C147:: @ 0800C147 + .incbin "baserom.gba", 0x00C147, 0x0000019 + +gUnk_0800C160:: @ 0800C160 + .incbin "baserom.gba", 0x00C160, 0x0000078 + +gUnk_0800C1D8:: @ 0800C1D8 + .incbin "baserom.gba", 0x00C1D8, 0x000002C + +gUnk_0800C204:: @ 0800C204 + .incbin "baserom.gba", 0x00C204, 0x0000003 + +gUnk_0800C207:: @ 0800C207 + .incbin "baserom.gba", 0x00C207, 0x0000001 + +gUnk_0800C208:: @ 0800C208 + .incbin "baserom.gba", 0x00C208, 0x0000008 + +gUnk_0800C210:: @ 0800C210 + .incbin "baserom.gba", 0x00C210, 0x0000053 + +gUnk_0800C263:: @ 0800C263 + .incbin "baserom.gba", 0x00C263, 0x0000041 + +gUnk_0800C2A4:: @ 0800C2A4 + .incbin "baserom.gba", 0x00C2A4, 0x0000003 + +gUnk_0800C2A7:: @ 0800C2A7 + .incbin "baserom.gba", 0x00C2A7, 0x0000027 + +gUnk_0800C2CE:: @ 0800C2CE + .incbin "baserom.gba", 0x00C2CE, 0x0000082 + +gUnk_0800C350:: @ 0800C350 + .incbin "baserom.gba", 0x00C350, 0x0000046 + +gUnk_0800C396:: @ 0800C396 + .incbin "baserom.gba", 0x00C396, 0x0000036 + +gUnk_0800C3CC:: @ 0800C3CC + .incbin "baserom.gba", 0x00C3CC, 0x000003C + +gUnk_0800C408:: @ 0800C408 + .incbin "baserom.gba", 0x00C408, 0x0000008 + +gUnk_0800C410:: @ 0800C410 + .incbin "baserom.gba", 0x00C410, 0x000004C + +gUnk_0800C45C:: @ 0800C45C + .incbin "baserom.gba", 0x00C45C, 0x0000038 + +gUnk_0800C494:: @ 0800C494 + .incbin "baserom.gba", 0x00C494, 0x000003C + +gUnk_0800C4D0:: @ 0800C4D0 + .incbin "baserom.gba", 0x00C4D0, 0x000000B + +gUnk_0800C4DB:: @ 0800C4DB + .incbin "baserom.gba", 0x00C4DB, 0x0000031 + +gUnk_0800C50C:: @ 0800C50C + .incbin "baserom.gba", 0x00C50C, 0x0000015 + +gUnk_0800C521:: @ 0800C521 + .incbin "baserom.gba", 0x00C521, 0x000002F + +gUnk_0800C550:: @ 0800C550 + .incbin "baserom.gba", 0x00C550, 0x0000006 + +gUnk_0800C556:: @ 0800C556 + .incbin "baserom.gba", 0x00C556, 0x000002E + +gUnk_0800C584:: @ 0800C584 + .incbin "baserom.gba", 0x00C584, 0x0000016 + +gUnk_0800C59A:: @ 0800C59A + .incbin "baserom.gba", 0x00C59A, 0x000002E + +gUnk_0800C5C8:: @ 0800C5C8 + .incbin "baserom.gba", 0x00C5C8, 0x0000034 + +gUnk_0800C5FC:: @ 0800C5FC + .incbin "baserom.gba", 0x00C5FC, 0x0000004 + +gUnk_0800C600:: @ 0800C600 + .incbin "baserom.gba", 0x00C600, 0x0000007 + +gUnk_0800C607:: @ 0800C607 + .incbin "baserom.gba", 0x00C607, 0x000002D + +gUnk_0800C634:: @ 0800C634 + .incbin "baserom.gba", 0x00C634, 0x0000092 + +gUnk_0800C6C6:: @ 0800C6C6 + .incbin "baserom.gba", 0x00C6C6, 0x00000AE + +gUnk_0800C774:: @ 0800C774 + .incbin "baserom.gba", 0x00C774, 0x0000005 + +gUnk_0800C779:: @ 0800C779 + .incbin "baserom.gba", 0x00C779, 0x000008F + +gUnk_0800C808:: @ 0800C808 + .incbin "baserom.gba", 0x00C808, 0x0000059 + +gUnk_0800C861:: @ 0800C861 + .incbin "baserom.gba", 0x00C861, 0x000004F + +gUnk_0800C8B0:: @ 0800C8B0 + .incbin "baserom.gba", 0x00C8B0, 0x000002A + +gUnk_0800C8DA:: @ 0800C8DA + .incbin "baserom.gba", 0x00C8DA, 0x0000016 + +gUnk_0800C8F0:: @ 0800C8F0 + .incbin "baserom.gba", 0x00C8F0, 0x000002C + +gUnk_0800C91C:: @ 0800C91C + .incbin "baserom.gba", 0x00C91C, 0x0000015 + +gUnk_0800C931:: @ 0800C931 + .incbin "baserom.gba", 0x00C931, 0x0000032 + +gUnk_0800C963:: @ 0800C963 + .incbin "baserom.gba", 0x00C963, 0x00000A5 + +gUnk_0800CA08:: @ 0800CA08 + .incbin "baserom.gba", 0x00CA08, 0x0000084 + +gUnk_0800CA8C:: @ 0800CA8C + .incbin "baserom.gba", 0x00CA8C, 0x000001E + +gUnk_0800CAAA:: @ 0800CAAA + .incbin "baserom.gba", 0x00CAAA, 0x0000012 + +gUnk_0800CABC:: @ 0800CABC + .incbin "baserom.gba", 0x00CABC, 0x000004B + +gUnk_0800CB07:: @ 0800CB07 + .incbin "baserom.gba", 0x00CB07, 0x000004D + +gUnk_0800CB54:: @ 0800CB54 + .incbin "baserom.gba", 0x00CB54, 0x000004F + +gUnk_0800CBA3:: @ 0800CBA3 + .incbin "baserom.gba", 0x00CBA3, 0x0000031 + +gUnk_0800CBD4:: @ 0800CBD4 + .incbin "baserom.gba", 0x00CBD4, 0x0000034 + +gUnk_0800CC08:: @ 0800CC08 + .incbin "baserom.gba", 0x00CC08, 0x0000005 + +gUnk_0800CC0D:: @ 0800CC0D + .incbin "baserom.gba", 0x00CC0D, 0x0000035 + +gUnk_0800CC42:: @ 0800CC42 + .incbin "baserom.gba", 0x00CC42, 0x000002A + +gUnk_0800CC6C:: @ 0800CC6C + .incbin "baserom.gba", 0x00CC6C, 0x0000061 + +gUnk_0800CCCD:: @ 0800CCCD + .incbin "baserom.gba", 0x00CCCD, 0x0000010 + +gUnk_0800CCDD:: @ 0800CCDD + .incbin "baserom.gba", 0x00CCDD, 0x0000027 + +gUnk_0800CD04:: @ 0800CD04 + .incbin "baserom.gba", 0x00CD04, 0x0000004 + +gUnk_0800CD08:: @ 0800CD08 + .incbin "baserom.gba", 0x00CD08, 0x000005F + +gUnk_0800CD67:: @ 0800CD67 + .incbin "baserom.gba", 0x00CD67, 0x0000015 + +gUnk_0800CD7C:: @ 0800CD7C + .incbin "baserom.gba", 0x00CD7C, 0x000008B + +gUnk_0800CE07:: @ 0800CE07 + .incbin "baserom.gba", 0x00CE07, 0x00000FD + +gUnk_0800CF04:: @ 0800CF04 + .incbin "baserom.gba", 0x00CF04, 0x0000012 + +gUnk_0800CF16:: @ 0800CF16 + .incbin "baserom.gba", 0x00CF16, 0x0000035 + +gUnk_0800CF4B:: @ 0800CF4B + .incbin "baserom.gba", 0x00CF4B, 0x0000005 + +gUnk_0800CF50:: @ 0800CF50 + .incbin "baserom.gba", 0x00CF50, 0x000002B + +gUnk_0800CF7B:: @ 0800CF7B + .incbin "baserom.gba", 0x00CF7B, 0x000000D + +gUnk_0800CF88:: @ 0800CF88 + .incbin "baserom.gba", 0x00CF88, 0x000000D + +gUnk_0800CF95:: @ 0800CF95 + .incbin "baserom.gba", 0x00CF95, 0x0000014 + +gUnk_0800CFA9:: @ 0800CFA9 + .incbin "baserom.gba", 0x00CFA9, 0x0000003 + +gUnk_0800CFAC:: @ 0800CFAC + .incbin "baserom.gba", 0x00CFAC, 0x0000065 + +gUnk_0800D011:: @ 0800D011 + .incbin "baserom.gba", 0x00D011, 0x000004E + +gUnk_0800D05F:: @ 0800D05F + .incbin "baserom.gba", 0x00D05F, 0x000006F + +gUnk_0800D0CE:: @ 0800D0CE + .incbin "baserom.gba", 0x00D0CE, 0x0000059 + +gUnk_0800D127:: @ 0800D127 + .incbin "baserom.gba", 0x00D127, 0x0000069 + +gUnk_0800D190:: @ 0800D190 + .incbin "baserom.gba", 0x00D190, 0x0000024 + +gUnk_0800D1B4:: @ 0800D1B4 + .incbin "baserom.gba", 0x00D1B4, 0x0000010 + +gUnk_0800D1C4:: @ 0800D1C4 + .incbin "baserom.gba", 0x00D1C4, 0x0000010 + +gUnk_0800D1D4:: @ 0800D1D4 + .incbin "baserom.gba", 0x00D1D4, 0x000000C + +gUnk_0800D1E0:: @ 0800D1E0 + .incbin "baserom.gba", 0x00D1E0, 0x0000027 + +gUnk_0800D207:: @ 0800D207 + .incbin "baserom.gba", 0x00D207, 0x0000011 + +gUnk_0800D218:: @ 0800D218 + .incbin "baserom.gba", 0x00D218, 0x000003C + +gUnk_0800D254:: @ 0800D254 + .incbin "baserom.gba", 0x00D254, 0x0000024 + +gUnk_0800D278:: @ 0800D278 + .incbin "baserom.gba", 0x00D278, 0x0000056 + +gUnk_0800D2CE:: @ 0800D2CE + .incbin "baserom.gba", 0x00D2CE, 0x0000038 + +gUnk_0800D306:: @ 0800D306 + .incbin "baserom.gba", 0x00D306, 0x0000002 + +gUnk_0800D308:: @ 0800D308 + .incbin "baserom.gba", 0x00D308, 0x0000007 + +gUnk_0800D30F:: @ 0800D30F + .incbin "baserom.gba", 0x00D30F, 0x0000041 + +gUnk_0800D350:: @ 0800D350 + .incbin "baserom.gba", 0x00D350, 0x000009C + +gUnk_0800D3EC:: @ 0800D3EC + .incbin "baserom.gba", 0x00D3EC, 0x0000028 + +gUnk_0800D414:: @ 0800D414 + .incbin "baserom.gba", 0x00D414, 0x0000038 + +gUnk_0800D44C:: @ 0800D44C + .incbin "baserom.gba", 0x00D44C, 0x0000073 + +gUnk_0800D4BF:: @ 0800D4BF + .incbin "baserom.gba", 0x00D4BF, 0x000001D + +gUnk_0800D4DC:: @ 0800D4DC + .incbin "baserom.gba", 0x00D4DC, 0x00000C0 + +gUnk_0800D59C:: @ 0800D59C + .incbin "baserom.gba", 0x00D59C, 0x0000049 + +gUnk_0800D5E5:: @ 0800D5E5 + .incbin "baserom.gba", 0x00D5E5, 0x0000027 + +gUnk_0800D60C:: @ 0800D60C + .incbin "baserom.gba", 0x00D60C, 0x000001F + +gUnk_0800D62B:: @ 0800D62B + .incbin "baserom.gba", 0x00D62B, 0x0000089 + +gUnk_0800D6B4:: @ 0800D6B4 + .incbin "baserom.gba", 0x00D6B4, 0x0000006 + +gUnk_0800D6BA:: @ 0800D6BA + .incbin "baserom.gba", 0x00D6BA, 0x0000016 + +gUnk_0800D6D0:: @ 0800D6D0 + .incbin "baserom.gba", 0x00D6D0, 0x0000020 + +gUnk_0800D6F0:: @ 0800D6F0 + .incbin "baserom.gba", 0x00D6F0, 0x0000012 + +gUnk_0800D702:: @ 0800D702 + .incbin "baserom.gba", 0x00D702, 0x0000001 + +gUnk_0800D703:: @ 0800D703 + .incbin "baserom.gba", 0x00D703, 0x000000D + +gUnk_0800D710:: @ 0800D710 + .incbin "baserom.gba", 0x00D710, 0x0000015 + +gUnk_0800D725:: @ 0800D725 + .incbin "baserom.gba", 0x00D725, 0x0000003 + +gUnk_0800D728:: @ 0800D728 + .incbin "baserom.gba", 0x00D728, 0x0000044 + +gUnk_0800D76C:: @ 0800D76C + .incbin "baserom.gba", 0x00D76C, 0x0000063 + +gUnk_0800D7CF:: @ 0800D7CF + .incbin "baserom.gba", 0x00D7CF, 0x000000D + +gUnk_0800D7DC:: @ 0800D7DC + .incbin "baserom.gba", 0x00D7DC, 0x0000098 + +gUnk_0800D874:: @ 0800D874 + .incbin "baserom.gba", 0x00D874, 0x0000070 + +gUnk_0800D8E4:: @ 0800D8E4 + .incbin "baserom.gba", 0x00D8E4, 0x0000022 + +gUnk_0800D906:: @ 0800D906 + .incbin "baserom.gba", 0x00D906, 0x000004E + +gUnk_0800D954:: @ 0800D954 + .incbin "baserom.gba", 0x00D954, 0x0000029 + +gUnk_0800D97D:: @ 0800D97D + .incbin "baserom.gba", 0x00D97D, 0x0000004 + +gUnk_0800D981:: @ 0800D981 + .incbin "baserom.gba", 0x00D981, 0x0000090 + +gUnk_0800DA11:: @ 0800DA11 + .incbin "baserom.gba", 0x00DA11, 0x0000017 + +gUnk_0800DA28:: @ 0800DA28 + .incbin "baserom.gba", 0x00DA28, 0x0000024 + +gUnk_0800DA4C:: @ 0800DA4C + .incbin "baserom.gba", 0x00DA4C, 0x0000001 + +gUnk_0800DA4D:: @ 0800DA4D + .incbin "baserom.gba", 0x00DA4D, 0x0000013 + +gUnk_0800DA60:: @ 0800DA60 + .incbin "baserom.gba", 0x00DA60, 0x00000AE + +gUnk_0800DB0E:: @ 0800DB0E + .incbin "baserom.gba", 0x00DB0E, 0x000000A + +gUnk_0800DB18:: @ 0800DB18 + .incbin "baserom.gba", 0x00DB18, 0x0000010 + +gUnk_0800DB28:: @ 0800DB28 + .incbin "baserom.gba", 0x00DB28, 0x0000022 + +gUnk_0800DB4A:: @ 0800DB4A + .incbin "baserom.gba", 0x00DB4A, 0x000002E + +gUnk_0800DB78:: @ 0800DB78 + .incbin "baserom.gba", 0x00DB78, 0x0000010 + +gUnk_0800DB88:: @ 0800DB88 + .incbin "baserom.gba", 0x00DB88, 0x0000088 + +gUnk_0800DC10:: @ 0800DC10 + .incbin "baserom.gba", 0x00DC10, 0x0000009 + +gUnk_0800DC19:: @ 0800DC19 + .incbin "baserom.gba", 0x00DC19, 0x0000078 + +gUnk_0800DC91:: @ 0800DC91 + .incbin "baserom.gba", 0x00DC91, 0x000001B + +gUnk_0800DCAC:: @ 0800DCAC + .incbin "baserom.gba", 0x00DCAC, 0x0000030 + +gUnk_0800DCDC:: @ 0800DCDC + .incbin "baserom.gba", 0x00DCDC, 0x0000028 + +gUnk_0800DD04:: @ 0800DD04 + .incbin "baserom.gba", 0x00DD04, 0x000000C + +gUnk_0800DD10:: @ 0800DD10 + .incbin "baserom.gba", 0x00DD10, 0x0000009 + +gUnk_0800DD19:: @ 0800DD19 + .incbin "baserom.gba", 0x00DD19, 0x0000009 + +gUnk_0800DD22:: @ 0800DD22 + .incbin "baserom.gba", 0x00DD22, 0x000006B + +gUnk_0800DD8D:: @ 0800DD8D + .incbin "baserom.gba", 0x00DD8D, 0x000001D + +gUnk_0800DDAA:: @ 0800DDAA + .incbin "baserom.gba", 0x00DDAA, 0x000003E + +gUnk_0800DDE8:: @ 0800DDE8 + .incbin "baserom.gba", 0x00DDE8, 0x0000014 + +gUnk_0800DDFC:: @ 0800DDFC + .incbin "baserom.gba", 0x00DDFC, 0x0000004 + +gUnk_0800DE00:: @ 0800DE00 + .incbin "baserom.gba", 0x00DE00, 0x0000078 + +gUnk_0800DE78:: @ 0800DE78 + .incbin "baserom.gba", 0x00DE78, 0x0000038 + +gUnk_0800DEB0:: @ 0800DEB0 + .incbin "baserom.gba", 0x00DEB0, 0x0000024 + +gUnk_0800DED4:: @ 0800DED4 + .incbin "baserom.gba", 0x00DED4, 0x0000022 + +gUnk_0800DEF6:: @ 0800DEF6 + .incbin "baserom.gba", 0x00DEF6, 0x0000011 + +gUnk_0800DF07:: @ 0800DF07 + .incbin "baserom.gba", 0x00DF07, 0x000001D + +gUnk_0800DF24:: @ 0800DF24 + .incbin "baserom.gba", 0x00DF24, 0x0000090 + +gUnk_0800DFB4:: @ 0800DFB4 + .incbin "baserom.gba", 0x00DFB4, 0x000001C + +gUnk_0800DFD0:: @ 0800DFD0 + .incbin "baserom.gba", 0x00DFD0, 0x0000007 + +gUnk_0800DFD7:: @ 0800DFD7 + .incbin "baserom.gba", 0x00DFD7, 0x0000007 + +gUnk_0800DFDE:: @ 0800DFDE + .incbin "baserom.gba", 0x00DFDE, 0x0000006 + +gUnk_0800DFE4:: @ 0800DFE4 + .incbin "baserom.gba", 0x00DFE4, 0x000006C + +gUnk_0800E050:: @ 0800E050 + .incbin "baserom.gba", 0x00E050, 0x000006C + +gUnk_0800E0BC:: @ 0800E0BC + .incbin "baserom.gba", 0x00E0BC, 0x000003A + +gUnk_0800E0F6:: @ 0800E0F6 + .incbin "baserom.gba", 0x00E0F6, 0x000004A + +gUnk_0800E140:: @ 0800E140 + .incbin "baserom.gba", 0x00E140, 0x0000013 + +gUnk_0800E153:: @ 0800E153 + .incbin "baserom.gba", 0x00E153, 0x0000001 + +gUnk_0800E154:: @ 0800E154 + .incbin "baserom.gba", 0x00E154, 0x0000071 + +gUnk_0800E1C5:: @ 0800E1C5 + .incbin "baserom.gba", 0x00E1C5, 0x000003B + +gUnk_0800E200:: @ 0800E200 + .incbin "baserom.gba", 0x00E200, 0x0000100 + +gUnk_0800E300:: @ 0800E300 + .incbin "baserom.gba", 0x00E300, 0x0000005 + +gUnk_0800E305:: @ 0800E305 + .incbin "baserom.gba", 0x00E305, 0x0000002 + +gUnk_0800E307:: @ 0800E307 + .incbin "baserom.gba", 0x00E307, 0x0000005 + +gUnk_0800E30C:: @ 0800E30C + .incbin "baserom.gba", 0x00E30C, 0x000001D + +gUnk_0800E329:: @ 0800E329 + .incbin "baserom.gba", 0x00E329, 0x0000027 + +gUnk_0800E350:: @ 0800E350 + .incbin "baserom.gba", 0x00E350, 0x000009E + +gUnk_0800E3EE:: @ 0800E3EE + .incbin "baserom.gba", 0x00E3EE, 0x000000B + +gUnk_0800E3F9:: @ 0800E3F9 + .incbin "baserom.gba", 0x00E3F9, 0x0000001 + +gUnk_0800E3FA:: @ 0800E3FA + .incbin "baserom.gba", 0x00E3FA, 0x0000002 + +gUnk_0800E3FC:: @ 0800E3FC + .incbin "baserom.gba", 0x00E3FC, 0x0000004 + +gUnk_0800E400:: @ 0800E400 + .incbin "baserom.gba", 0x00E400, 0x0000008 + +gUnk_0800E408:: @ 0800E408 + .incbin "baserom.gba", 0x00E408, 0x0000003 + +gUnk_0800E40B:: @ 0800E40B + .incbin "baserom.gba", 0x00E40B, 0x0000006 + +gUnk_0800E411:: @ 0800E411 + .incbin "baserom.gba", 0x00E411, 0x000001F + +gUnk_0800E430:: @ 0800E430 + .incbin "baserom.gba", 0x00E430, 0x0000004 + +gUnk_0800E434:: @ 0800E434 + .incbin "baserom.gba", 0x00E434, 0x0000038 + +gUnk_0800E46C:: @ 0800E46C + .incbin "baserom.gba", 0x00E46C, 0x000001D + +gUnk_0800E489:: @ 0800E489 + .incbin "baserom.gba", 0x00E489, 0x0000010 + +gUnk_0800E499:: @ 0800E499 + .incbin "baserom.gba", 0x00E499, 0x000000B + +gUnk_0800E4A4:: @ 0800E4A4 + .incbin "baserom.gba", 0x00E4A4, 0x000003F + +gUnk_0800E4E3:: @ 0800E4E3 + .incbin "baserom.gba", 0x00E4E3, 0x0000021 + +gUnk_0800E504:: @ 0800E504 + .incbin "baserom.gba", 0x00E504, 0x0000008 + +gUnk_0800E50C:: @ 0800E50C + .incbin "baserom.gba", 0x00E50C, 0x0000038 + +gUnk_0800E544:: @ 0800E544 + .incbin "baserom.gba", 0x00E544, 0x0000048 + +gUnk_0800E58C:: @ 0800E58C + .incbin "baserom.gba", 0x00E58C, 0x0000038 + +gUnk_0800E5C4:: @ 0800E5C4 + .incbin "baserom.gba", 0x00E5C4, 0x000003C + +gUnk_0800E600:: @ 0800E600 + .incbin "baserom.gba", 0x00E600, 0x000000E + +gUnk_0800E60E:: @ 0800E60E + .incbin "baserom.gba", 0x00E60E, 0x000001E + +gUnk_0800E62C:: @ 0800E62C + .incbin "baserom.gba", 0x00E62C, 0x000002C + +gUnk_0800E658:: @ 0800E658 + .incbin "baserom.gba", 0x00E658, 0x000002C + +gUnk_0800E684:: @ 0800E684 + .incbin "baserom.gba", 0x00E684, 0x000002C + +gUnk_0800E6B0:: @ 0800E6B0 + .incbin "baserom.gba", 0x00E6B0, 0x0000038 + +gUnk_0800E6E8:: @ 0800E6E8 + .incbin "baserom.gba", 0x00E6E8, 0x000001F + +gUnk_0800E707:: @ 0800E707 + .incbin "baserom.gba", 0x00E707, 0x0000003 + +gUnk_0800E70A:: @ 0800E70A + .incbin "baserom.gba", 0x00E70A, 0x000002A + +gUnk_0800E734:: @ 0800E734 + .incbin "baserom.gba", 0x00E734, 0x000002C + +gUnk_0800E760:: @ 0800E760 + .incbin "baserom.gba", 0x00E760, 0x0000079 + +gUnk_0800E7D9:: @ 0800E7D9 + .incbin "baserom.gba", 0x00E7D9, 0x000001B + +gUnk_0800E7F4:: @ 0800E7F4 + .incbin "baserom.gba", 0x00E7F4, 0x0000006 + +gUnk_0800E7FA:: @ 0800E7FA + .incbin "baserom.gba", 0x00E7FA, 0x0000029 + +gUnk_0800E823:: @ 0800E823 + .incbin "baserom.gba", 0x00E823, 0x0000001 + +gUnk_0800E824:: @ 0800E824 + .incbin "baserom.gba", 0x00E824, 0x00000B7 + +gUnk_0800E8DB:: @ 0800E8DB + .incbin "baserom.gba", 0x00E8DB, 0x0000045 + +gUnk_0800E920:: @ 0800E920 + .incbin "baserom.gba", 0x00E920, 0x0000044 + +gUnk_0800E964:: @ 0800E964 + .incbin "baserom.gba", 0x00E964, 0x0000072 + +gUnk_0800E9D6:: @ 0800E9D6 + .incbin "baserom.gba", 0x00E9D6, 0x000001E + +gUnk_0800E9F4:: @ 0800E9F4 + .incbin "baserom.gba", 0x00E9F4, 0x0000028 + +gUnk_0800EA1C:: @ 0800EA1C + .incbin "baserom.gba", 0x00EA1C, 0x0000038 + +gUnk_0800EA54:: @ 0800EA54 + .incbin "baserom.gba", 0x00EA54, 0x0000050 + +gUnk_0800EAA4:: @ 0800EAA4 + .incbin "baserom.gba", 0x00EAA4, 0x0000047 + +gUnk_0800EAEB:: @ 0800EAEB + .incbin "baserom.gba", 0x00EAEB, 0x000000D + +gUnk_0800EAF8:: @ 0800EAF8 + .incbin "baserom.gba", 0x00EAF8, 0x0000034 + +gUnk_0800EB2C:: @ 0800EB2C + .incbin "baserom.gba", 0x00EB2C, 0x0000038 + +gUnk_0800EB64:: @ 0800EB64 + .incbin "baserom.gba", 0x00EB64, 0x000005C + +gUnk_0800EBC0:: @ 0800EBC0 + .incbin "baserom.gba", 0x00EBC0, 0x000001C + +gUnk_0800EBDC:: @ 0800EBDC + .incbin "baserom.gba", 0x00EBDC, 0x0000004 + +gUnk_0800EBE0:: @ 0800EBE0 + .incbin "baserom.gba", 0x00EBE0, 0x0000010 + +gUnk_0800EBF0:: @ 0800EBF0 + .incbin "baserom.gba", 0x00EBF0, 0x0000018 + +gUnk_0800EC08:: @ 0800EC08 + .incbin "baserom.gba", 0x00EC08, 0x000000C + +gUnk_0800EC14:: @ 0800EC14 + .incbin "baserom.gba", 0x00EC14, 0x0000040 + +gUnk_0800EC54:: @ 0800EC54 + .incbin "baserom.gba", 0x00EC54, 0x000000D + +gUnk_0800EC61:: @ 0800EC61 + .incbin "baserom.gba", 0x00EC61, 0x000002B + +gUnk_0800EC8C:: @ 0800EC8C + .incbin "baserom.gba", 0x00EC8C, 0x0000065 + +gUnk_0800ECF1:: @ 0800ECF1 + .incbin "baserom.gba", 0x00ECF1, 0x0000013 + +gUnk_0800ED04:: @ 0800ED04 + .incbin "baserom.gba", 0x00ED04, 0x0000008 + +gUnk_0800ED0C:: @ 0800ED0C + .incbin "baserom.gba", 0x00ED0C, 0x0000001 + +gUnk_0800ED0D:: @ 0800ED0D + .incbin "baserom.gba", 0x00ED0D, 0x000004F + +gUnk_0800ED5C:: @ 0800ED5C + .incbin "baserom.gba", 0x00ED5C, 0x0000034 + +gUnk_0800ED90:: @ 0800ED90 + .incbin "baserom.gba", 0x00ED90, 0x0000049 + +gUnk_0800EDD9:: @ 0800EDD9 + .incbin "baserom.gba", 0x00EDD9, 0x0000007 + +gUnk_0800EDE0:: @ 0800EDE0 + .incbin "baserom.gba", 0x00EDE0, 0x0000029 + +gUnk_0800EE09:: @ 0800EE09 + .incbin "baserom.gba", 0x00EE09, 0x0000047 + +gUnk_0800EE50:: @ 0800EE50 + .incbin "baserom.gba", 0x00EE50, 0x000003C + +gUnk_0800EE8C:: @ 0800EE8C + .incbin "baserom.gba", 0x00EE8C, 0x0000054 + +gUnk_0800EEE0:: @ 0800EEE0 + .incbin "baserom.gba", 0x00EEE0, 0x000001D + +gUnk_0800EEFD:: @ 0800EEFD + .incbin "baserom.gba", 0x00EEFD, 0x000000A + +gUnk_0800EF07:: @ 0800EF07 + .incbin "baserom.gba", 0x00EF07, 0x000000B + +gUnk_0800EF12:: @ 0800EF12 + .incbin "baserom.gba", 0x00EF12, 0x000002E + +gUnk_0800EF40:: @ 0800EF40 + .incbin "baserom.gba", 0x00EF40, 0x0000053 + +gUnk_0800EF93:: @ 0800EF93 + .incbin "baserom.gba", 0x00EF93, 0x000002D + +gUnk_0800EFC0:: @ 0800EFC0 + .incbin "baserom.gba", 0x00EFC0, 0x0000020 + +gUnk_0800EFE0:: @ 0800EFE0 + .incbin "baserom.gba", 0x00EFE0, 0x0000004 + +gUnk_0800EFE4:: @ 0800EFE4 + .incbin "baserom.gba", 0x00EFE4, 0x00000AC + +gUnk_0800F090:: @ 0800F090 + .incbin "baserom.gba", 0x00F090, 0x0000004 + +gUnk_0800F094:: @ 0800F094 + .incbin "baserom.gba", 0x00F094, 0x0000042 + +gUnk_0800F0D6:: @ 0800F0D6 + .incbin "baserom.gba", 0x00F0D6, 0x000000C + +gUnk_0800F0E2:: @ 0800F0E2 + .incbin "baserom.gba", 0x00F0E2, 0x0000010 + +gUnk_0800F0F2:: @ 0800F0F2 + .incbin "baserom.gba", 0x00F0F2, 0x0000001 + +gUnk_0800F0F3:: @ 0800F0F3 + .incbin "baserom.gba", 0x00F0F3, 0x0000001 + +gUnk_0800F0F4:: @ 0800F0F4 + .incbin "baserom.gba", 0x00F0F4, 0x0000058 + +gUnk_0800F14C:: @ 0800F14C + .incbin "baserom.gba", 0x00F14C, 0x0000038 + +gUnk_0800F184:: @ 0800F184 + .incbin "baserom.gba", 0x00F184, 0x000005A + +gUnk_0800F1DE:: @ 0800F1DE + .incbin "baserom.gba", 0x00F1DE, 0x0000003 + +gUnk_0800F1E1:: @ 0800F1E1 + .incbin "baserom.gba", 0x00F1E1, 0x0000004 + +gUnk_0800F1E5:: @ 0800F1E5 + .incbin "baserom.gba", 0x00F1E5, 0x0000002 + +gUnk_0800F1E7:: @ 0800F1E7 + .incbin "baserom.gba", 0x00F1E7, 0x0000006 + +gUnk_0800F1ED:: @ 0800F1ED + .incbin "baserom.gba", 0x00F1ED, 0x000000E + +gUnk_0800F1FB:: @ 0800F1FB + .incbin "baserom.gba", 0x00F1FB, 0x0000002 + +gUnk_0800F1FD:: @ 0800F1FD + .incbin "baserom.gba", 0x00F1FD, 0x0000006 + +gUnk_0800F203:: @ 0800F203 + .incbin "baserom.gba", 0x00F203, 0x0000004 + +gUnk_0800F207:: @ 0800F207 + .incbin "baserom.gba", 0x00F207, 0x0000009 + +gUnk_0800F210:: @ 0800F210 + .incbin "baserom.gba", 0x00F210, 0x00000DB + +gUnk_0800F2EB:: @ 0800F2EB + .incbin "baserom.gba", 0x00F2EB, 0x0000005 + +gUnk_0800F2F0:: @ 0800F2F0 + .incbin "baserom.gba", 0x00F2F0, 0x0000002 + +gUnk_0800F2F2:: @ 0800F2F2 + .incbin "baserom.gba", 0x00F2F2, 0x0000011 + +gUnk_0800F303:: @ 0800F303 + .incbin "baserom.gba", 0x00F303, 0x0000099 + +gUnk_0800F39C:: @ 0800F39C + .incbin "baserom.gba", 0x00F39C, 0x000003F + +gUnk_0800F3DB:: @ 0800F3DB + .incbin "baserom.gba", 0x00F3DB, 0x000000A + +gUnk_0800F3E5:: @ 0800F3E5 + .incbin "baserom.gba", 0x00F3E5, 0x0000001 + +gUnk_0800F3E6:: @ 0800F3E6 + .incbin "baserom.gba", 0x00F3E6, 0x0000002 + +gUnk_0800F3E8:: @ 0800F3E8 + .incbin "baserom.gba", 0x00F3E8, 0x0000003 + +gUnk_0800F3EB:: @ 0800F3EB + .incbin "baserom.gba", 0x00F3EB, 0x0000002 + +gUnk_0800F3ED:: @ 0800F3ED + .incbin "baserom.gba", 0x00F3ED, 0x0000008 + +gUnk_0800F3F5:: @ 0800F3F5 + .incbin "baserom.gba", 0x00F3F5, 0x0000004 + +gUnk_0800F3F9:: @ 0800F3F9 + .incbin "baserom.gba", 0x00F3F9, 0x0000007 + +gUnk_0800F400:: @ 0800F400 + .incbin "baserom.gba", 0x00F400, 0x0000008 + +gUnk_0800F408:: @ 0800F408 + .incbin "baserom.gba", 0x00F408, 0x0000001 + +gUnk_0800F409:: @ 0800F409 + .incbin "baserom.gba", 0x00F409, 0x0000007 + +gUnk_0800F410:: @ 0800F410 + .incbin "baserom.gba", 0x00F410, 0x0000016 + +gUnk_0800F426:: @ 0800F426 + .incbin "baserom.gba", 0x00F426, 0x000000A + +gUnk_0800F430:: @ 0800F430 + .incbin "baserom.gba", 0x00F430, 0x0000094 + +gUnk_0800F4C4:: @ 0800F4C4 + .incbin "baserom.gba", 0x00F4C4, 0x0000026 + +gUnk_0800F4EA:: @ 0800F4EA + .incbin "baserom.gba", 0x00F4EA, 0x0000001 + +gUnk_0800F4EB:: @ 0800F4EB + .incbin "baserom.gba", 0x00F4EB, 0x0000004 + +gUnk_0800F4EF:: @ 0800F4EF + .incbin "baserom.gba", 0x00F4EF, 0x0000001 + +gUnk_0800F4F0:: @ 0800F4F0 + .incbin "baserom.gba", 0x00F4F0, 0x0000001 + +gUnk_0800F4F1:: @ 0800F4F1 + .incbin "baserom.gba", 0x00F4F1, 0x0000002 + +gUnk_0800F4F3:: @ 0800F4F3 + .incbin "baserom.gba", 0x00F4F3, 0x0000004 + +gUnk_0800F4F7:: @ 0800F4F7 + .incbin "baserom.gba", 0x00F4F7, 0x0000002 + +gUnk_0800F4F9:: @ 0800F4F9 + .incbin "baserom.gba", 0x00F4F9, 0x0000008 + +gUnk_0800F501:: @ 0800F501 + .incbin "baserom.gba", 0x00F501, 0x000000D + +gUnk_0800F50E:: @ 0800F50E + .incbin "baserom.gba", 0x00F50E, 0x0000046 + +gUnk_0800F554:: @ 0800F554 + .incbin "baserom.gba", 0x00F554, 0x0000030 + +gUnk_0800F584:: @ 0800F584 + .incbin "baserom.gba", 0x00F584, 0x000000B + +gUnk_0800F58F:: @ 0800F58F + .incbin "baserom.gba", 0x00F58F, 0x0000021 + +gUnk_0800F5B0:: @ 0800F5B0 + .incbin "baserom.gba", 0x00F5B0, 0x0000039 + +gUnk_0800F5E9:: @ 0800F5E9 + .incbin "baserom.gba", 0x00F5E9, 0x0000003 + +gUnk_0800F5EC:: @ 0800F5EC + .incbin "baserom.gba", 0x00F5EC, 0x0000001 + +gUnk_0800F5ED:: @ 0800F5ED + .incbin "baserom.gba", 0x00F5ED, 0x0000001 + +gUnk_0800F5EE:: @ 0800F5EE + .incbin "baserom.gba", 0x00F5EE, 0x0000001 + +gUnk_0800F5EF:: @ 0800F5EF + .incbin "baserom.gba", 0x00F5EF, 0x0000001 + +gUnk_0800F5F0:: @ 0800F5F0 + .incbin "baserom.gba", 0x00F5F0, 0x0000002 + +gUnk_0800F5F2:: @ 0800F5F2 + .incbin "baserom.gba", 0x00F5F2, 0x0000002 + +gUnk_0800F5F4:: @ 0800F5F4 + .incbin "baserom.gba", 0x00F5F4, 0x0000008 + +gUnk_0800F5FC:: @ 0800F5FC + .incbin "baserom.gba", 0x00F5FC, 0x0000003 + +gUnk_0800F5FF:: @ 0800F5FF + .incbin "baserom.gba", 0x00F5FF, 0x0000007 + +gUnk_0800F606:: @ 0800F606 + .incbin "baserom.gba", 0x00F606, 0x0000001 + +gUnk_0800F607:: @ 0800F607 + .incbin "baserom.gba", 0x00F607, 0x0000001 + +gUnk_0800F608:: @ 0800F608 + .incbin "baserom.gba", 0x00F608, 0x0000002 + +gUnk_0800F60A:: @ 0800F60A + .incbin "baserom.gba", 0x00F60A, 0x000001E + +gUnk_0800F628:: @ 0800F628 + .incbin "baserom.gba", 0x00F628, 0x0000028 + +gUnk_0800F650:: @ 0800F650 + .incbin "baserom.gba", 0x00F650, 0x0000038 + +gUnk_0800F688:: @ 0800F688 + .incbin "baserom.gba", 0x00F688, 0x0000018 + +gUnk_0800F6A0:: @ 0800F6A0 + .incbin "baserom.gba", 0x00F6A0, 0x0000028 + +gUnk_0800F6C8:: @ 0800F6C8 + .incbin "baserom.gba", 0x00F6C8, 0x0000018 + +gUnk_0800F6E0:: @ 0800F6E0 + .incbin "baserom.gba", 0x00F6E0, 0x0000009 + +gUnk_0800F6E9:: @ 0800F6E9 + .incbin "baserom.gba", 0x00F6E9, 0x0000003 + +gUnk_0800F6EC:: @ 0800F6EC + .incbin "baserom.gba", 0x00F6EC, 0x0000001 + +gUnk_0800F6ED:: @ 0800F6ED + .incbin "baserom.gba", 0x00F6ED, 0x0000001 + +gUnk_0800F6EE:: @ 0800F6EE + .incbin "baserom.gba", 0x00F6EE, 0x0000001 + +gUnk_0800F6EF:: @ 0800F6EF + .incbin "baserom.gba", 0x00F6EF, 0x0000001 + +gUnk_0800F6F0:: @ 0800F6F0 + .incbin "baserom.gba", 0x00F6F0, 0x0000001 + +gUnk_0800F6F1:: @ 0800F6F1 + .incbin "baserom.gba", 0x00F6F1, 0x0000001 + +gUnk_0800F6F2:: @ 0800F6F2 + .incbin "baserom.gba", 0x00F6F2, 0x0000001 + +gUnk_0800F6F3:: @ 0800F6F3 + .incbin "baserom.gba", 0x00F6F3, 0x0000001 + +gUnk_0800F6F4:: @ 0800F6F4 + .incbin "baserom.gba", 0x00F6F4, 0x0000005 + +gUnk_0800F6F9:: @ 0800F6F9 + .incbin "baserom.gba", 0x00F6F9, 0x0000005 + +gUnk_0800F6FE:: @ 0800F6FE + .incbin "baserom.gba", 0x00F6FE, 0x0000004 + +gUnk_0800F702:: @ 0800F702 + .incbin "baserom.gba", 0x00F702, 0x0000004 + +gUnk_0800F706:: @ 0800F706 + .incbin "baserom.gba", 0x00F706, 0x0000018 + +gUnk_0800F71E:: @ 0800F71E + .incbin "baserom.gba", 0x00F71E, 0x0000006 + +gUnk_0800F724:: @ 0800F724 + .incbin "baserom.gba", 0x00F724, 0x0000010 + +gUnk_0800F734:: @ 0800F734 + .incbin "baserom.gba", 0x00F734, 0x0000008 + +gUnk_0800F73C:: @ 0800F73C + .incbin "baserom.gba", 0x00F73C, 0x00000AA + +gUnk_0800F7E6:: @ 0800F7E6 + .incbin "baserom.gba", 0x00F7E6, 0x0000005 + +gUnk_0800F7EB:: @ 0800F7EB + .incbin "baserom.gba", 0x00F7EB, 0x0000003 + +gUnk_0800F7EE:: @ 0800F7EE + .incbin "baserom.gba", 0x00F7EE, 0x0000001 + +gUnk_0800F7EF:: @ 0800F7EF + .incbin "baserom.gba", 0x00F7EF, 0x0000001 + +gUnk_0800F7F0:: @ 0800F7F0 + .incbin "baserom.gba", 0x00F7F0, 0x0000004 + +gUnk_0800F7F4:: @ 0800F7F4 + .incbin "baserom.gba", 0x00F7F4, 0x0000001 + +gUnk_0800F7F5:: @ 0800F7F5 + .incbin "baserom.gba", 0x00F7F5, 0x0000002 + +gUnk_0800F7F7:: @ 0800F7F7 + .incbin "baserom.gba", 0x00F7F7, 0x0000005 + +gUnk_0800F7FC:: @ 0800F7FC + .incbin "baserom.gba", 0x00F7FC, 0x0000001 + +gUnk_0800F7FD:: @ 0800F7FD + .incbin "baserom.gba", 0x00F7FD, 0x0000002 + +gUnk_0800F7FF:: @ 0800F7FF + .incbin "baserom.gba", 0x00F7FF, 0x0000001 + +gUnk_0800F800:: @ 0800F800 + .incbin "baserom.gba", 0x00F800, 0x0000005 + +gUnk_0800F805:: @ 0800F805 + .incbin "baserom.gba", 0x00F805, 0x0000003 + +gUnk_0800F808:: @ 0800F808 + .incbin "baserom.gba", 0x00F808, 0x00000E7 + +gUnk_0800F8EF:: @ 0800F8EF + .incbin "baserom.gba", 0x00F8EF, 0x0000001 + +gUnk_0800F8F0:: @ 0800F8F0 + .incbin "baserom.gba", 0x00F8F0, 0x0000001 + +gUnk_0800F8F1:: @ 0800F8F1 + .incbin "baserom.gba", 0x00F8F1, 0x0000001 + +gUnk_0800F8F2:: @ 0800F8F2 + .incbin "baserom.gba", 0x00F8F2, 0x0000001 + +gUnk_0800F8F3:: @ 0800F8F3 + .incbin "baserom.gba", 0x00F8F3, 0x0000001 + +gUnk_0800F8F4:: @ 0800F8F4 + .incbin "baserom.gba", 0x00F8F4, 0x0000001 + +gUnk_0800F8F5:: @ 0800F8F5 + .incbin "baserom.gba", 0x00F8F5, 0x0000003 + +gUnk_0800F8F8:: @ 0800F8F8 + .incbin "baserom.gba", 0x00F8F8, 0x0000001 + +gUnk_0800F8F9:: @ 0800F8F9 + .incbin "baserom.gba", 0x00F8F9, 0x0000007 + +gUnk_0800F900:: @ 0800F900 + .incbin "baserom.gba", 0x00F900, 0x0000002 + +gUnk_0800F902:: @ 0800F902 + .incbin "baserom.gba", 0x00F902, 0x0000014 + +gUnk_0800F916:: @ 0800F916 + .incbin "baserom.gba", 0x00F916, 0x00000DA + +gUnk_0800F9F0:: @ 0800F9F0 + .incbin "baserom.gba", 0x00F9F0, 0x0000002 + +gUnk_0800F9F2:: @ 0800F9F2 + .incbin "baserom.gba", 0x00F9F2, 0x0000001 + +gUnk_0800F9F3:: @ 0800F9F3 + .incbin "baserom.gba", 0x00F9F3, 0x0000001 + +gUnk_0800F9F4:: @ 0800F9F4 + .incbin "baserom.gba", 0x00F9F4, 0x0000002 + +gUnk_0800F9F6:: @ 0800F9F6 + .incbin "baserom.gba", 0x00F9F6, 0x0000001 + +gUnk_0800F9F7:: @ 0800F9F7 + .incbin "baserom.gba", 0x00F9F7, 0x0000001 + +gUnk_0800F9F8:: @ 0800F9F8 + .incbin "baserom.gba", 0x00F9F8, 0x000000A + +gUnk_0800FA02:: @ 0800FA02 + .incbin "baserom.gba", 0x00FA02, 0x0000005 + +gUnk_0800FA07:: @ 0800FA07 + .incbin "baserom.gba", 0x00FA07, 0x0000001 + +gUnk_0800FA08:: @ 0800FA08 + .incbin "baserom.gba", 0x00FA08, 0x0000001 + +gUnk_0800FA09:: @ 0800FA09 + .incbin "baserom.gba", 0x00FA09, 0x0000004 + +gUnk_0800FA0D:: @ 0800FA0D + .incbin "baserom.gba", 0x00FA0D, 0x000006B + +gUnk_0800FA78:: @ 0800FA78 + .incbin "baserom.gba", 0x00FA78, 0x0000048 + +gUnk_0800FAC0:: @ 0800FAC0 + .incbin "baserom.gba", 0x00FAC0, 0x0000024 + +gUnk_0800FAE4:: @ 0800FAE4 + .incbin "baserom.gba", 0x00FAE4, 0x000000F + +gUnk_0800FAF3:: @ 0800FAF3 + .incbin "baserom.gba", 0x00FAF3, 0x0000002 + +gUnk_0800FAF5:: @ 0800FAF5 + .incbin "baserom.gba", 0x00FAF5, 0x0000001 + +gUnk_0800FAF6:: @ 0800FAF6 + .incbin "baserom.gba", 0x00FAF6, 0x0000001 + +gUnk_0800FAF7:: @ 0800FAF7 + .incbin "baserom.gba", 0x00FAF7, 0x0000001 + +gUnk_0800FAF8:: @ 0800FAF8 + .incbin "baserom.gba", 0x00FAF8, 0x0000005 + +gUnk_0800FAFD:: @ 0800FAFD + .incbin "baserom.gba", 0x00FAFD, 0x0000001 + +gUnk_0800FAFE:: @ 0800FAFE + .incbin "baserom.gba", 0x00FAFE, 0x0000001 + +gUnk_0800FAFF:: @ 0800FAFF + .incbin "baserom.gba", 0x00FAFF, 0x0000001 + +gUnk_0800FB00:: @ 0800FB00 + .incbin "baserom.gba", 0x00FB00, 0x0000001 + +gUnk_0800FB01:: @ 0800FB01 + .incbin "baserom.gba", 0x00FB01, 0x0000001 + +gUnk_0800FB02:: @ 0800FB02 + .incbin "baserom.gba", 0x00FB02, 0x0000002 + +gUnk_0800FB04:: @ 0800FB04 + .incbin "baserom.gba", 0x00FB04, 0x0000004 + +gUnk_0800FB08:: @ 0800FB08 + .incbin "baserom.gba", 0x00FB08, 0x0000002 + +gUnk_0800FB0A:: @ 0800FB0A + .incbin "baserom.gba", 0x00FB0A, 0x0000027 + +gUnk_0800FB31:: @ 0800FB31 + .incbin "baserom.gba", 0x00FB31, 0x0000013 + +gUnk_0800FB44:: @ 0800FB44 + .incbin "baserom.gba", 0x00FB44, 0x0000077 + +gUnk_0800FBBB:: @ 0800FBBB + .incbin "baserom.gba", 0x00FBBB, 0x0000035 + +gUnk_0800FBF0:: @ 0800FBF0 + .incbin "baserom.gba", 0x00FBF0, 0x0000003 + +gUnk_0800FBF3:: @ 0800FBF3 + .incbin "baserom.gba", 0x00FBF3, 0x0000002 + +gUnk_0800FBF5:: @ 0800FBF5 + .incbin "baserom.gba", 0x00FBF5, 0x0000001 + +gUnk_0800FBF6:: @ 0800FBF6 + .incbin "baserom.gba", 0x00FBF6, 0x0000002 + +gUnk_0800FBF8:: @ 0800FBF8 + .incbin "baserom.gba", 0x00FBF8, 0x0000001 + +gUnk_0800FBF9:: @ 0800FBF9 + .incbin "baserom.gba", 0x00FBF9, 0x0000001 + +gUnk_0800FBFA:: @ 0800FBFA + .incbin "baserom.gba", 0x00FBFA, 0x0000001 + +gUnk_0800FBFB:: @ 0800FBFB + .incbin "baserom.gba", 0x00FBFB, 0x0000001 + +gUnk_0800FBFC:: @ 0800FBFC + .incbin "baserom.gba", 0x00FBFC, 0x0000003 + +gUnk_0800FBFF:: @ 0800FBFF + .incbin "baserom.gba", 0x00FBFF, 0x0000001 + +gUnk_0800FC00:: @ 0800FC00 + .incbin "baserom.gba", 0x00FC00, 0x0000001 + +gUnk_0800FC01:: @ 0800FC01 + .incbin "baserom.gba", 0x00FC01, 0x0000004 + +gUnk_0800FC05:: @ 0800FC05 + .incbin "baserom.gba", 0x00FC05, 0x0000001 + +gUnk_0800FC06:: @ 0800FC06 + .incbin "baserom.gba", 0x00FC06, 0x0000002 + +gUnk_0800FC08:: @ 0800FC08 + .incbin "baserom.gba", 0x00FC08, 0x0000001 + +gUnk_0800FC09:: @ 0800FC09 + .incbin "baserom.gba", 0x00FC09, 0x0000005 + +gUnk_0800FC0E:: @ 0800FC0E + .incbin "baserom.gba", 0x00FC0E, 0x0000016 + +gUnk_0800FC24:: @ 0800FC24 + .incbin "baserom.gba", 0x00FC24, 0x00000C6 + +gUnk_0800FCEA:: @ 0800FCEA + .incbin "baserom.gba", 0x00FCEA, 0x0000004 + +gUnk_0800FCEE:: @ 0800FCEE + .incbin "baserom.gba", 0x00FCEE, 0x0000004 + +gUnk_0800FCF2:: @ 0800FCF2 + .incbin "baserom.gba", 0x00FCF2, 0x0000001 + +gUnk_0800FCF3:: @ 0800FCF3 + .incbin "baserom.gba", 0x00FCF3, 0x0000002 + +gUnk_0800FCF5:: @ 0800FCF5 + .incbin "baserom.gba", 0x00FCF5, 0x0000002 + +gUnk_0800FCF7:: @ 0800FCF7 + .incbin "baserom.gba", 0x00FCF7, 0x0000001 + +gUnk_0800FCF8:: @ 0800FCF8 + .incbin "baserom.gba", 0x00FCF8, 0x0000002 + +gUnk_0800FCFA:: @ 0800FCFA + .incbin "baserom.gba", 0x00FCFA, 0x0000001 + +gUnk_0800FCFB:: @ 0800FCFB + .incbin "baserom.gba", 0x00FCFB, 0x0000001 + +gUnk_0800FCFC:: @ 0800FCFC + .incbin "baserom.gba", 0x00FCFC, 0x0000002 + +gUnk_0800FCFE:: @ 0800FCFE + .incbin "baserom.gba", 0x00FCFE, 0x0000001 + +gUnk_0800FCFF:: @ 0800FCFF + .incbin "baserom.gba", 0x00FCFF, 0x0000001 + +gUnk_0800FD00:: @ 0800FD00 + .incbin "baserom.gba", 0x00FD00, 0x0000001 + +gUnk_0800FD01:: @ 0800FD01 + .incbin "baserom.gba", 0x00FD01, 0x0000003 + +gUnk_0800FD04:: @ 0800FD04 + .incbin "baserom.gba", 0x00FD04, 0x0000001 + +gUnk_0800FD05:: @ 0800FD05 + .incbin "baserom.gba", 0x00FD05, 0x0000007 + +gUnk_0800FD0C:: @ 0800FD0C + .incbin "baserom.gba", 0x00FD0C, 0x000000A + +gUnk_0800FD16:: @ 0800FD16 + .incbin "baserom.gba", 0x00FD16, 0x000000B + +gUnk_0800FD21:: @ 0800FD21 + .incbin "baserom.gba", 0x00FD21, 0x000005F + +gUnk_0800FD80:: @ 0800FD80 + .incbin "baserom.gba", 0x00FD80, 0x0000020 + +gUnk_0800FDA0:: @ 0800FDA0 + .incbin "baserom.gba", 0x00FDA0, 0x000002C + +gUnk_0800FDCC:: @ 0800FDCC + .incbin "baserom.gba", 0x00FDCC, 0x0000026 + +gUnk_0800FDF2:: @ 0800FDF2 + .incbin "baserom.gba", 0x00FDF2, 0x0000001 + +gUnk_0800FDF3:: @ 0800FDF3 + .incbin "baserom.gba", 0x00FDF3, 0x0000007 + +gUnk_0800FDFA:: @ 0800FDFA + .incbin "baserom.gba", 0x00FDFA, 0x0000002 + +gUnk_0800FDFC:: @ 0800FDFC + .incbin "baserom.gba", 0x00FDFC, 0x0000002 + +gUnk_0800FDFE:: @ 0800FDFE + .incbin "baserom.gba", 0x00FDFE, 0x0000001 + +gUnk_0800FDFF:: @ 0800FDFF + .incbin "baserom.gba", 0x00FDFF, 0x0000001 + +gUnk_0800FE00:: @ 0800FE00 + .incbin "baserom.gba", 0x00FE00, 0x0000001 + +gUnk_0800FE01:: @ 0800FE01 + .incbin "baserom.gba", 0x00FE01, 0x0000001 + +gUnk_0800FE02:: @ 0800FE02 + .incbin "baserom.gba", 0x00FE02, 0x0000002 + +gUnk_0800FE04:: @ 0800FE04 + .incbin "baserom.gba", 0x00FE04, 0x0000002 + +gUnk_0800FE06:: @ 0800FE06 + .incbin "baserom.gba", 0x00FE06, 0x0000001 + +gUnk_0800FE07:: @ 0800FE07 + .incbin "baserom.gba", 0x00FE07, 0x0000001 + +gUnk_0800FE08:: @ 0800FE08 + .incbin "baserom.gba", 0x00FE08, 0x0000001 + +gUnk_0800FE09:: @ 0800FE09 + .incbin "baserom.gba", 0x00FE09, 0x0000037 + +gUnk_0800FE40:: @ 0800FE40 + .incbin "baserom.gba", 0x00FE40, 0x0000004 + +gUnk_0800FE44:: @ 0800FE44 + .incbin "baserom.gba", 0x00FE44, 0x0000020 + +gUnk_0800FE64:: @ 0800FE64 + .incbin "baserom.gba", 0x00FE64, 0x0000024 + +gUnk_0800FE88:: @ 0800FE88 + .incbin "baserom.gba", 0x00FE88, 0x0000034 + +gUnk_0800FEBC:: @ 0800FEBC + .incbin "baserom.gba", 0x00FEBC, 0x0000034 + +gUnk_0800FEF0:: @ 0800FEF0 + .incbin "baserom.gba", 0x00FEF0, 0x0000002 + +gUnk_0800FEF2:: @ 0800FEF2 + .incbin "baserom.gba", 0x00FEF2, 0x0000007 + +gUnk_0800FEF9:: @ 0800FEF9 + .incbin "baserom.gba", 0x00FEF9, 0x0000003 + +gUnk_0800FEFC:: @ 0800FEFC + .incbin "baserom.gba", 0x00FEFC, 0x0000002 + +gUnk_0800FEFE:: @ 0800FEFE + .incbin "baserom.gba", 0x00FEFE, 0x0000003 + +gUnk_0800FF01:: @ 0800FF01 + .incbin "baserom.gba", 0x00FF01, 0x0000002 + +gUnk_0800FF03:: @ 0800FF03 + .incbin "baserom.gba", 0x00FF03, 0x0000001 + +gUnk_0800FF04:: @ 0800FF04 + .incbin "baserom.gba", 0x00FF04, 0x0000001 + +gUnk_0800FF05:: @ 0800FF05 + .incbin "baserom.gba", 0x00FF05, 0x0000001 + +gUnk_0800FF06:: @ 0800FF06 + .incbin "baserom.gba", 0x00FF06, 0x0000002 + +gUnk_0800FF08:: @ 0800FF08 + .incbin "baserom.gba", 0x00FF08, 0x0000010 + +gUnk_0800FF18:: @ 0800FF18 + .incbin "baserom.gba", 0x00FF18, 0x0000012 + +gUnk_0800FF2A:: @ 0800FF2A + .incbin "baserom.gba", 0x00FF2A, 0x000004A + +gUnk_0800FF74:: @ 0800FF74 + .incbin "baserom.gba", 0x00FF74, 0x000003C + +gUnk_0800FFB0:: @ 0800FFB0 + .incbin "baserom.gba", 0x00FFB0, 0x000000B + +gUnk_0800FFBB:: @ 0800FFBB + .incbin "baserom.gba", 0x00FFBB, 0x000001B + +gUnk_0800FFD6:: @ 0800FFD6 + .incbin "baserom.gba", 0x00FFD6, 0x0000018 + +gUnk_0800FFEE:: @ 0800FFEE + .incbin "baserom.gba", 0x00FFEE, 0x0000008 + +gUnk_0800FFF6:: @ 0800FFF6 + .incbin "baserom.gba", 0x00FFF6, 0x0000006 + +gUnk_0800FFFC:: @ 0800FFFC + .incbin "baserom.gba", 0x00FFFC, 0x0000001 + +gUnk_0800FFFD:: @ 0800FFFD + .incbin "baserom.gba", 0x00FFFD, 0x0000002 + +gUnk_0800FFFF:: @ 0800FFFF + .incbin "baserom.gba", 0x00FFFF, 0x0000001 + +gUnk_08010000:: @ 08010000 + .incbin "baserom.gba", 0x010000, 0x0000001 + +gUnk_08010001:: @ 08010001 + .incbin "baserom.gba", 0x010001, 0x0000001 + +gUnk_08010002:: @ 08010002 + .incbin "baserom.gba", 0x010002, 0x0000001 + +gUnk_08010003:: @ 08010003 + .incbin "baserom.gba", 0x010003, 0x0000002 + +gUnk_08010005:: @ 08010005 + .incbin "baserom.gba", 0x010005, 0x0000002 + +gUnk_08010007:: @ 08010007 + .incbin "baserom.gba", 0x010007, 0x0000001 + +gUnk_08010008:: @ 08010008 + .incbin "baserom.gba", 0x010008, 0x0000001 + +gUnk_08010009:: @ 08010009 + .incbin "baserom.gba", 0x010009, 0x0000001 + +gUnk_0801000A:: @ 0801000A + .incbin "baserom.gba", 0x01000A, 0x0000002 + +gUnk_0801000C:: @ 0801000C + .incbin "baserom.gba", 0x01000C, 0x0000001 + +gUnk_0801000D:: @ 0801000D + .incbin "baserom.gba", 0x01000D, 0x0000001 + +gUnk_0801000E:: @ 0801000E + .incbin "baserom.gba", 0x01000E, 0x0000001 + +gUnk_0801000F:: @ 0801000F + .incbin "baserom.gba", 0x01000F, 0x0000009 + +gUnk_08010018:: @ 08010018 + .incbin "baserom.gba", 0x010018, 0x0000003 + +gUnk_0801001B:: @ 0801001B + .incbin "baserom.gba", 0x01001B, 0x0000002 + +gUnk_0801001D:: @ 0801001D + .incbin "baserom.gba", 0x01001D, 0x0000006 + +gUnk_08010023:: @ 08010023 + .incbin "baserom.gba", 0x010023, 0x0000021 + +gUnk_08010044:: @ 08010044 + .incbin "baserom.gba", 0x010044, 0x0000054 + +gUnk_08010098:: @ 08010098 + .incbin "baserom.gba", 0x010098, 0x0000001 + +gUnk_08010099:: @ 08010099 + .incbin "baserom.gba", 0x010099, 0x0000028 + +gUnk_080100C1:: @ 080100C1 + .incbin "baserom.gba", 0x0100C1, 0x0000007 + +gUnk_080100C8:: @ 080100C8 + .incbin "baserom.gba", 0x0100C8, 0x000002D + +gUnk_080100F5:: @ 080100F5 + .incbin "baserom.gba", 0x0100F5, 0x0000007 + +gUnk_080100FC:: @ 080100FC + .incbin "baserom.gba", 0x0100FC, 0x0000002 + +gUnk_080100FE:: @ 080100FE + .incbin "baserom.gba", 0x0100FE, 0x0000001 + +gUnk_080100FF:: @ 080100FF + .incbin "baserom.gba", 0x0100FF, 0x0000001 + +gUnk_08010100:: @ 08010100 + .incbin "baserom.gba", 0x010100, 0x0000002 + +gUnk_08010102:: @ 08010102 + .incbin "baserom.gba", 0x010102, 0x0000001 + +gUnk_08010103:: @ 08010103 + .incbin "baserom.gba", 0x010103, 0x0000002 + +gUnk_08010105:: @ 08010105 + .incbin "baserom.gba", 0x010105, 0x0000001 + +gUnk_08010106:: @ 08010106 + .incbin "baserom.gba", 0x010106, 0x0000004 + +gUnk_0801010A:: @ 0801010A + .incbin "baserom.gba", 0x01010A, 0x0000007 + +gUnk_08010111:: @ 08010111 + .incbin "baserom.gba", 0x010111, 0x000000F + +gUnk_08010120:: @ 08010120 + .incbin "baserom.gba", 0x010120, 0x0000010 + +gUnk_08010130:: @ 08010130 + .incbin "baserom.gba", 0x010130, 0x0000018 + +gUnk_08010148:: @ 08010148 + .incbin "baserom.gba", 0x010148, 0x00000B2 + +gUnk_080101FA:: @ 080101FA + .incbin "baserom.gba", 0x0101FA, 0x0000003 + +gUnk_080101FD:: @ 080101FD + .incbin "baserom.gba", 0x0101FD, 0x0000002 + +gUnk_080101FF:: @ 080101FF + .incbin "baserom.gba", 0x0101FF, 0x0000001 + +gUnk_08010200:: @ 08010200 + .incbin "baserom.gba", 0x010200, 0x0000003 + +gUnk_08010203:: @ 08010203 + .incbin "baserom.gba", 0x010203, 0x0000004 + +gUnk_08010207:: @ 08010207 + .incbin "baserom.gba", 0x010207, 0x0000001 + +gUnk_08010208:: @ 08010208 + .incbin "baserom.gba", 0x010208, 0x0000004 + +gUnk_0801020C:: @ 0801020C + .incbin "baserom.gba", 0x01020C, 0x0000014 + +gUnk_08010220:: @ 08010220 + .incbin "baserom.gba", 0x010220, 0x0000016 + +gUnk_08010236:: @ 08010236 + .incbin "baserom.gba", 0x010236, 0x000002E + +gUnk_08010264:: @ 08010264 + .incbin "baserom.gba", 0x010264, 0x0000030 + +gUnk_08010294:: @ 08010294 + .incbin "baserom.gba", 0x010294, 0x000004C + +gUnk_080102E0:: @ 080102E0 + .incbin "baserom.gba", 0x0102E0, 0x000001B + +gUnk_080102FB:: @ 080102FB + .incbin "baserom.gba", 0x0102FB, 0x0000002 + +gUnk_080102FD:: @ 080102FD + .incbin "baserom.gba", 0x0102FD, 0x0000001 + +gUnk_080102FE:: @ 080102FE + .incbin "baserom.gba", 0x0102FE, 0x0000005 + +gUnk_08010303:: @ 08010303 + .incbin "baserom.gba", 0x010303, 0x0000001 + +gUnk_08010304:: @ 08010304 + .incbin "baserom.gba", 0x010304, 0x0000001 + +gUnk_08010305:: @ 08010305 + .incbin "baserom.gba", 0x010305, 0x0000005 + +gUnk_0801030A:: @ 0801030A + .incbin "baserom.gba", 0x01030A, 0x0000002 + +gUnk_0801030C:: @ 0801030C + .incbin "baserom.gba", 0x01030C, 0x0000014 + +gUnk_08010320:: @ 08010320 + .incbin "baserom.gba", 0x010320, 0x0000090 + +gUnk_080103B0:: @ 080103B0 + .incbin "baserom.gba", 0x0103B0, 0x0000020 + +gUnk_080103D0:: @ 080103D0 + .incbin "baserom.gba", 0x0103D0, 0x0000028 + +gUnk_080103F8:: @ 080103F8 + .incbin "baserom.gba", 0x0103F8, 0x0000005 + +gUnk_080103FD:: @ 080103FD + .incbin "baserom.gba", 0x0103FD, 0x0000003 + +gUnk_08010400:: @ 08010400 + .incbin "baserom.gba", 0x010400, 0x0000006 + +gUnk_08010406:: @ 08010406 + .incbin "baserom.gba", 0x010406, 0x0000001 + +gUnk_08010407:: @ 08010407 + .incbin "baserom.gba", 0x010407, 0x0000003 + +gUnk_0801040A:: @ 0801040A + .incbin "baserom.gba", 0x01040A, 0x000001E + +gUnk_08010428:: @ 08010428 + .incbin "baserom.gba", 0x010428, 0x000002C + +gUnk_08010454:: @ 08010454 + .incbin "baserom.gba", 0x010454, 0x000002C + +gUnk_08010480:: @ 08010480 + .incbin "baserom.gba", 0x010480, 0x0000020 + +gUnk_080104A0:: @ 080104A0 + .incbin "baserom.gba", 0x0104A0, 0x000004C + +gUnk_080104EC:: @ 080104EC + .incbin "baserom.gba", 0x0104EC, 0x0000013 + +gUnk_080104FF:: @ 080104FF + .incbin "baserom.gba", 0x0104FF, 0x0000002 + +gUnk_08010501:: @ 08010501 + .incbin "baserom.gba", 0x010501, 0x0000001 + +gUnk_08010502:: @ 08010502 + .incbin "baserom.gba", 0x010502, 0x0000001 + +gUnk_08010503:: @ 08010503 + .incbin "baserom.gba", 0x010503, 0x0000007 + +gUnk_0801050A:: @ 0801050A + .incbin "baserom.gba", 0x01050A, 0x0000001 + +gUnk_0801050B:: @ 0801050B + .incbin "baserom.gba", 0x01050B, 0x000001B + +gUnk_08010526:: @ 08010526 + .incbin "baserom.gba", 0x010526, 0x0000079 + +gUnk_0801059F:: @ 0801059F + .incbin "baserom.gba", 0x01059F, 0x000002A + +gUnk_080105C9:: @ 080105C9 + .incbin "baserom.gba", 0x0105C9, 0x0000032 + +gUnk_080105FB:: @ 080105FB + .incbin "baserom.gba", 0x0105FB, 0x0000004 + +gUnk_080105FF:: @ 080105FF + .incbin "baserom.gba", 0x0105FF, 0x0000001 + +gUnk_08010600:: @ 08010600 + .incbin "baserom.gba", 0x010600, 0x000000A + +gUnk_0801060A:: @ 0801060A + .incbin "baserom.gba", 0x01060A, 0x0000003 + +gUnk_0801060D:: @ 0801060D + .incbin "baserom.gba", 0x01060D, 0x000000A + +gUnk_08010617:: @ 08010617 + .incbin "baserom.gba", 0x010617, 0x0000005 + +gUnk_0801061C:: @ 0801061C + .incbin "baserom.gba", 0x01061C, 0x0000028 + +gUnk_08010644:: @ 08010644 + .incbin "baserom.gba", 0x010644, 0x000000C + +gUnk_08010650:: @ 08010650 + .incbin "baserom.gba", 0x010650, 0x0000024 + +gUnk_08010674:: @ 08010674 + .incbin "baserom.gba", 0x010674, 0x0000038 + +gUnk_080106AC:: @ 080106AC + .incbin "baserom.gba", 0x0106AC, 0x0000054 + +gUnk_08010700:: @ 08010700 + .incbin "baserom.gba", 0x010700, 0x0000001 + +gUnk_08010701:: @ 08010701 + .incbin "baserom.gba", 0x010701, 0x0000004 + +gUnk_08010705:: @ 08010705 + .incbin "baserom.gba", 0x010705, 0x0000009 + +gUnk_0801070E:: @ 0801070E + .incbin "baserom.gba", 0x01070E, 0x0000026 + +gUnk_08010734:: @ 08010734 + .incbin "baserom.gba", 0x010734, 0x0000060 + +gUnk_08010794:: @ 08010794 + .incbin "baserom.gba", 0x010794, 0x000003C + +gUnk_080107D0:: @ 080107D0 + .incbin "baserom.gba", 0x0107D0, 0x000003A + +gUnk_0801080A:: @ 0801080A + .incbin "baserom.gba", 0x01080A, 0x0000001 + +gUnk_0801080B:: @ 0801080B + .incbin "baserom.gba", 0x01080B, 0x000000A + +gUnk_08010815:: @ 08010815 + .incbin "baserom.gba", 0x010815, 0x0000006 + +gUnk_0801081B:: @ 0801081B + .incbin "baserom.gba", 0x01081B, 0x00000B5 + +gUnk_080108D0:: @ 080108D0 + .incbin "baserom.gba", 0x0108D0, 0x000002F + +gUnk_080108FF:: @ 080108FF + .incbin "baserom.gba", 0x0108FF, 0x000000D + +gUnk_0801090C:: @ 0801090C + .incbin "baserom.gba", 0x01090C, 0x0000003 + +gUnk_0801090F:: @ 0801090F + .incbin "baserom.gba", 0x01090F, 0x0000008 + +gUnk_08010917:: @ 08010917 + .incbin "baserom.gba", 0x010917, 0x000004D + +gUnk_08010964:: @ 08010964 + .incbin "baserom.gba", 0x010964, 0x000003C + +gUnk_080109A0:: @ 080109A0 + .incbin "baserom.gba", 0x0109A0, 0x0000050 + +gUnk_080109F0:: @ 080109F0 + .incbin "baserom.gba", 0x0109F0, 0x0000006 + +gUnk_080109F6:: @ 080109F6 + .incbin "baserom.gba", 0x0109F6, 0x000001E + +gUnk_08010A14:: @ 08010A14 + .incbin "baserom.gba", 0x010A14, 0x000000B + +gUnk_08010A1F:: @ 08010A1F + .incbin "baserom.gba", 0x010A1F, 0x0000019 + +gUnk_08010A38:: @ 08010A38 + .incbin "baserom.gba", 0x010A38, 0x0000024 + +gUnk_08010A5C:: @ 08010A5C + .incbin "baserom.gba", 0x010A5C, 0x000003C + +gUnk_08010A98:: @ 08010A98 + .incbin "baserom.gba", 0x010A98, 0x000004C + +gUnk_08010AE4:: @ 08010AE4 + .incbin "baserom.gba", 0x010AE4, 0x0000020 + +gUnk_08010B04:: @ 08010B04 + .incbin "baserom.gba", 0x010B04, 0x0000064 + +gUnk_08010B68:: @ 08010B68 + .incbin "baserom.gba", 0x010B68, 0x000004C + +gUnk_08010BB4:: @ 08010BB4 + .incbin "baserom.gba", 0x010BB4, 0x0000038 + +gUnk_08010BEC:: @ 08010BEC + .incbin "baserom.gba", 0x010BEC, 0x000000D + +gUnk_08010BF9:: @ 08010BF9 + .incbin "baserom.gba", 0x010BF9, 0x0000005 + +gUnk_08010BFE:: @ 08010BFE + .incbin "baserom.gba", 0x010BFE, 0x000001C + +gUnk_08010C1A:: @ 08010C1A + .incbin "baserom.gba", 0x010C1A, 0x00000E9 + +gUnk_08010D03:: @ 08010D03 + .incbin "baserom.gba", 0x010D03, 0x00000FD + +gUnk_08010E00:: @ 08010E00 + .incbin "baserom.gba", 0x010E00, 0x000000D + +gUnk_08010E0D:: @ 08010E0D + .incbin "baserom.gba", 0x010E0D, 0x00000F3 + +gUnk_08010F00:: @ 08010F00 + .incbin "baserom.gba", 0x010F00, 0x00000FF + +gUnk_08010FFF:: @ 08010FFF + .incbin "baserom.gba", 0x010FFF, 0x0000001 + +gUnk_08011000:: @ 08011000 + .incbin "baserom.gba", 0x011000, 0x0000001 + +gUnk_08011001:: @ 08011001 + .incbin "baserom.gba", 0x011001, 0x000001E + +gUnk_0801101F:: @ 0801101F + .incbin "baserom.gba", 0x01101F, 0x0000055 + +gUnk_08011074:: @ 08011074 + .incbin "baserom.gba", 0x011074, 0x000000F + +gUnk_08011083:: @ 08011083 + .incbin "baserom.gba", 0x011083, 0x0000059 + +gUnk_080110DC:: @ 080110DC + .incbin "baserom.gba", 0x0110DC, 0x000000C + +gUnk_080110E8:: @ 080110E8 + .incbin "baserom.gba", 0x0110E8, 0x0000040 + +gUnk_08011128:: @ 08011128 + .incbin "baserom.gba", 0x011128, 0x00000A4 + +gUnk_080111CC:: @ 080111CC + .incbin "baserom.gba", 0x0111CC, 0x000003C + +gUnk_08011208:: @ 08011208 + .incbin "baserom.gba", 0x011208, 0x0000015 + +gUnk_0801121D:: @ 0801121D + .incbin "baserom.gba", 0x01121D, 0x00000A7 + +gUnk_080112C4:: @ 080112C4 + .incbin "baserom.gba", 0x0112C4, 0x000004B + +gUnk_0801130F:: @ 0801130F + .incbin "baserom.gba", 0x01130F, 0x0000019 + +gUnk_08011328:: @ 08011328 + .incbin "baserom.gba", 0x011328, 0x00000DB + +gUnk_08011403:: @ 08011403 + .incbin "baserom.gba", 0x011403, 0x00001CD + +gUnk_080115D0:: @ 080115D0 + .incbin "baserom.gba", 0x0115D0, 0x0000038 + +gUnk_08011608:: @ 08011608 + .incbin "baserom.gba", 0x011608, 0x0000038 + +gUnk_08011640:: @ 08011640 + .incbin "baserom.gba", 0x011640, 0x0000068 + +gUnk_080116A8:: @ 080116A8 + .incbin "baserom.gba", 0x0116A8, 0x0000161 + +gUnk_08011809:: @ 08011809 + .incbin "baserom.gba", 0x011809, 0x0000033 + +gUnk_0801183C:: @ 0801183C + .incbin "baserom.gba", 0x01183C, 0x0000098 + +gUnk_080118D4:: @ 080118D4 + .incbin "baserom.gba", 0x0118D4, 0x000005C + +gUnk_08011930:: @ 08011930 + .incbin "baserom.gba", 0x011930, 0x0000010 + +gUnk_08011940:: @ 08011940 + .incbin "baserom.gba", 0x011940, 0x000000C + +gUnk_0801194C:: @ 0801194C + .incbin "baserom.gba", 0x01194C, 0x000000C + +gUnk_08011958:: @ 08011958 + .incbin "baserom.gba", 0x011958, 0x000000C + +gUnk_08011964:: @ 08011964 + .incbin "baserom.gba", 0x011964, 0x000004C + +gUnk_080119B0:: @ 080119B0 + .incbin "baserom.gba", 0x0119B0, 0x0000028 + +gUnk_080119D8:: @ 080119D8 + .incbin "baserom.gba", 0x0119D8, 0x000000C + +gUnk_080119E4:: @ 080119E4 + .incbin "baserom.gba", 0x0119E4, 0x000000C + +gUnk_080119F0:: @ 080119F0 + .incbin "baserom.gba", 0x0119F0, 0x0000014 + +gUnk_08011A04:: @ 08011A04 + .incbin "baserom.gba", 0x011A04, 0x0000028 + +gUnk_08011A2C:: @ 08011A2C + .incbin "baserom.gba", 0x011A2C, 0x0000038 + +gUnk_08011A64:: @ 08011A64 + .incbin "baserom.gba", 0x011A64, 0x0000080 + +gUnk_08011AE4:: @ 08011AE4 + .incbin "baserom.gba", 0x011AE4, 0x0000020 + +gUnk_08011B04:: @ 08011B04 + .incbin "baserom.gba", 0x011B04, 0x000001C + +gUnk_08011B20:: @ 08011B20 + .incbin "baserom.gba", 0x011B20, 0x0000020 + +gUnk_08011B40:: @ 08011B40 + .incbin "baserom.gba", 0x011B40, 0x00000A4 + +gUnk_08011BE4:: @ 08011BE4 + .incbin "baserom.gba", 0x011BE4, 0x0000020 + +gUnk_08011C04:: @ 08011C04 + .incbin "baserom.gba", 0x011C04, 0x000004C + +gUnk_08011C50:: @ 08011C50 + .incbin "baserom.gba", 0x011C50, 0x000002C + +gUnk_08011C7C:: @ 08011C7C + .incbin "baserom.gba", 0x011C7C, 0x00000AC + +gUnk_08011D28:: @ 08011D28 + .incbin "baserom.gba", 0x011D28, 0x00000AC + +gUnk_08011DD4:: @ 08011DD4 + .incbin "baserom.gba", 0x011DD4, 0x0000030 + +gUnk_08011E04:: @ 08011E04 + .incbin "baserom.gba", 0x011E04, 0x000007C + +gUnk_08011E80:: @ 08011E80 + .incbin "baserom.gba", 0x011E80, 0x000008C + +gUnk_08011F0C:: @ 08011F0C + .incbin "baserom.gba", 0x011F0C, 0x000008C + +gUnk_08011F98:: @ 08011F98 + .incbin "baserom.gba", 0x011F98, 0x000008C + +gUnk_08012024:: @ 08012024 + .incbin "baserom.gba", 0x012024, 0x000006D + +gUnk_08012091:: @ 08012091 + .incbin "baserom.gba", 0x012091, 0x000001F + +gUnk_080120B0:: @ 080120B0 + .incbin "baserom.gba", 0x0120B0, 0x000003D + +gUnk_080120ED:: @ 080120ED + .incbin "baserom.gba", 0x0120ED, 0x000000E + +gUnk_080120FB:: @ 080120FB + .incbin "baserom.gba", 0x0120FB, 0x0000041 + +gUnk_0801213C:: @ 0801213C + .incbin "baserom.gba", 0x01213C, 0x000008C + +gUnk_080121C8:: @ 080121C8 + .incbin "baserom.gba", 0x0121C8, 0x0000038 + +gUnk_08012200:: @ 08012200 + .incbin "baserom.gba", 0x012200, 0x0000038 + +gUnk_08012238:: @ 08012238 + .incbin "baserom.gba", 0x012238, 0x0000038 + +gUnk_08012270:: @ 08012270 + .incbin "baserom.gba", 0x012270, 0x00000BC + +gUnk_0801232C:: @ 0801232C + .incbin "baserom.gba", 0x01232C, 0x0000034 + +gUnk_08012360:: @ 08012360 + .incbin "baserom.gba", 0x012360, 0x00000B0 + +gUnk_08012410:: @ 08012410 + .incbin "baserom.gba", 0x012410, 0x0000020 + +gUnk_08012430:: @ 08012430 + .incbin "baserom.gba", 0x012430, 0x0000050 + +gUnk_08012480:: @ 08012480 + .incbin "baserom.gba", 0x012480, 0x000027C + +gUnk_080126FC:: @ 080126FC + .incbin "baserom.gba", 0x0126FC, 0x00003B4 + +gUnk_08012AB0:: @ 08012AB0 + .incbin "baserom.gba", 0x012AB0, 0x00000F8 + +gUnk_08012BA8:: @ 08012BA8 + .incbin "baserom.gba", 0x012BA8, 0x0000050 + +gUnk_08012BF8:: @ 08012BF8 + .incbin "baserom.gba", 0x012BF8, 0x0000014 + +gUnk_08012C0C:: @ 08012C0C + .incbin "baserom.gba", 0x012C0C, 0x000003C + +gUnk_08012C48:: @ 08012C48 + .incbin "baserom.gba", 0x012C48, 0x0000050 + +gUnk_08012C98:: @ 08012C98 + .incbin "baserom.gba", 0x012C98, 0x0000040 + +gUnk_08012CD8:: @ 08012CD8 + .incbin "baserom.gba", 0x012CD8, 0x0000040 + +gUnk_08012D18:: @ 08012D18 + .incbin "baserom.gba", 0x012D18, 0x0000058 + +gUnk_08012D70:: @ 08012D70 + .incbin "baserom.gba", 0x012D70, 0x0000031 + +gUnk_08012DA1:: @ 08012DA1 + .incbin "baserom.gba", 0x012DA1, 0x000000F + +gUnk_08012DB0:: @ 08012DB0 + .incbin "baserom.gba", 0x012DB0, 0x0000028 + +gUnk_08012DD8:: @ 08012DD8 + .incbin "baserom.gba", 0x012DD8, 0x0000048 + +gUnk_08012E20:: @ 08012E20 + .incbin "baserom.gba", 0x012E20, 0x0000024 + +gUnk_08012E44:: @ 08012E44 + .incbin "baserom.gba", 0x012E44, 0x0000044 + +gUnk_08012E88:: @ 08012E88 + .incbin "baserom.gba", 0x012E88, 0x0000038 + +gUnk_08012EC0:: @ 08012EC0 + .incbin "baserom.gba", 0x012EC0, 0x000004C + +gUnk_08012F0C:: @ 08012F0C + .incbin "baserom.gba", 0x012F0C, 0x00000F5 + +gUnk_08013001:: @ 08013001 + .incbin "baserom.gba", 0x013001, 0x0000002 + +gUnk_08013003:: @ 08013003 + .incbin "baserom.gba", 0x013003, 0x0000008 + +gUnk_0801300B:: @ 0801300B + .incbin "baserom.gba", 0x01300B, 0x0000031 + +gUnk_0801303C:: @ 0801303C + .incbin "baserom.gba", 0x01303C, 0x0000034 + +gUnk_08013070:: @ 08013070 + .incbin "baserom.gba", 0x013070, 0x0000011 + +gUnk_08013081:: @ 08013081 + .incbin "baserom.gba", 0x013081, 0x000000F + +gUnk_08013090:: @ 08013090 + .incbin "baserom.gba", 0x013090, 0x0000084 + +gUnk_08013114:: @ 08013114 + .incbin "baserom.gba", 0x013114, 0x0000074 + +gUnk_08013188:: @ 08013188 + .incbin "baserom.gba", 0x013188, 0x0000024 + +gUnk_080131AC:: @ 080131AC + .incbin "baserom.gba", 0x0131AC, 0x0000138 + +gUnk_080132E4:: @ 080132E4 + .incbin "baserom.gba", 0x0132E4, 0x000004C + +gUnk_08013330:: @ 08013330 + .incbin "baserom.gba", 0x013330, 0x000001C + +gUnk_0801334C:: @ 0801334C + .incbin "baserom.gba", 0x01334C, 0x000002C + +gUnk_08013378:: @ 08013378 + .incbin "baserom.gba", 0x013378, 0x000004C + +gUnk_080133C4:: @ 080133C4 + .incbin "baserom.gba", 0x0133C4, 0x0000034 + +gUnk_080133F8:: @ 080133F8 + .incbin "baserom.gba", 0x0133F8, 0x00000E4 + +gUnk_080134DC:: @ 080134DC + .incbin "baserom.gba", 0x0134DC, 0x00001FC + +gUnk_080136D8:: @ 080136D8 + .incbin "baserom.gba", 0x0136D8, 0x0000048 + +gUnk_08013720:: @ 08013720 + .incbin "baserom.gba", 0x013720, 0x00000BA + +gUnk_080137DA:: @ 080137DA + .incbin "baserom.gba", 0x0137DA, 0x00000DA + +gUnk_080138B4:: @ 080138B4 + .incbin "baserom.gba", 0x0138B4, 0x0000264 + +gUnk_08013B18:: @ 08013B18 + .incbin "baserom.gba", 0x013B18, 0x0000058 + +gUnk_08013B70:: @ 08013B70 + .incbin "baserom.gba", 0x013B70, 0x0000038 + +gUnk_08013BA8:: @ 08013BA8 + .incbin "baserom.gba", 0x013BA8, 0x0000040 + +gUnk_08013BE8:: @ 08013BE8 + .incbin "baserom.gba", 0x013BE8, 0x00000BC + +gUnk_08013CA4:: @ 08013CA4 + .incbin "baserom.gba", 0x013CA4, 0x0000160 + +gUnk_08013E04:: @ 08013E04 + .incbin "baserom.gba", 0x013E04, 0x0000048 + +gUnk_08013E4C:: @ 08013E4C + .incbin "baserom.gba", 0x013E4C, 0x0000024 + +gUnk_08013E70:: @ 08013E70 + .incbin "baserom.gba", 0x013E70, 0x0000024 + +gUnk_08013E94:: @ 08013E94 + .incbin "baserom.gba", 0x013E94, 0x000001C + +gUnk_08013EB0:: @ 08013EB0 + .incbin "baserom.gba", 0x013EB0, 0x000001C + +gUnk_08013ECC:: @ 08013ECC + .incbin "baserom.gba", 0x013ECC, 0x000001C + +gUnk_08013EE8:: @ 08013EE8 + .incbin "baserom.gba", 0x013EE8, 0x000001C + +gUnk_08013F04:: @ 08013F04 + .incbin "baserom.gba", 0x013F04, 0x0000030 + +gUnk_08013F34:: @ 08013F34 + .incbin "baserom.gba", 0x013F34, 0x0000030 + +gUnk_08013F64:: @ 08013F64 + .incbin "baserom.gba", 0x013F64, 0x0000030 + +gUnk_08013F94:: @ 08013F94 + .incbin "baserom.gba", 0x013F94, 0x0000054 + +gUnk_08013FE8:: @ 08013FE8 + .incbin "baserom.gba", 0x013FE8, 0x000006C + +gUnk_08014054:: @ 08014054 + .incbin "baserom.gba", 0x014054, 0x0000020 + +gUnk_08014074:: @ 08014074 + .incbin "baserom.gba", 0x014074, 0x0000020 + +gUnk_08014094:: @ 08014094 + .incbin "baserom.gba", 0x014094, 0x0000048 + +gUnk_080140DC:: @ 080140DC + .incbin "baserom.gba", 0x0140DC, 0x000001C + +gUnk_080140F8:: @ 080140F8 + .incbin "baserom.gba", 0x0140F8, 0x0000020 + +gUnk_08014118:: @ 08014118 + .incbin "baserom.gba", 0x014118, 0x000003C + +gUnk_08014154:: @ 08014154 + .incbin "baserom.gba", 0x014154, 0x0000088 + +gUnk_080141DC:: @ 080141DC + .incbin "baserom.gba", 0x0141DC, 0x0000034 + +gUnk_08014210:: @ 08014210 + .incbin "baserom.gba", 0x014210, 0x0000064 + +gUnk_08014274:: @ 08014274 + .incbin "baserom.gba", 0x014274, 0x000003C + +gUnk_080142B0:: @ 080142B0 + .incbin "baserom.gba", 0x0142B0, 0x00000D4 + +gUnk_08014384:: @ 08014384 + .incbin "baserom.gba", 0x014384, 0x000003C + +gUnk_080143C0:: @ 080143C0 + .incbin "baserom.gba", 0x0143C0, 0x0000042 + +gUnk_08014402:: @ 08014402 + .incbin "baserom.gba", 0x014402, 0x000004E + +gUnk_08014450:: @ 08014450 + .incbin "baserom.gba", 0x014450, 0x00000BC + +gUnk_0801450C:: @ 0801450C + .incbin "baserom.gba", 0x01450C, 0x000003C + +gUnk_08014548:: @ 08014548 + .incbin "baserom.gba", 0x014548, 0x0000058 + +gUnk_080145A0:: @ 080145A0 + .incbin "baserom.gba", 0x0145A0, 0x0000010 + +gUnk_080145B0:: @ 080145B0 + .incbin "baserom.gba", 0x0145B0, 0x0000038 + +gUnk_080145E8:: @ 080145E8 + .incbin "baserom.gba", 0x0145E8, 0x0000040 + +gUnk_08014628:: @ 08014628 + .incbin "baserom.gba", 0x014628, 0x00001DC + +gUnk_08014804:: @ 08014804 + .incbin "baserom.gba", 0x014804, 0x00000EC + +gUnk_080148F0:: @ 080148F0 + .incbin "baserom.gba", 0x0148F0, 0x0000068 + +gUnk_08014958:: @ 08014958 + .incbin "baserom.gba", 0x014958, 0x000003C + +gUnk_08014994:: @ 08014994 + .incbin "baserom.gba", 0x014994, 0x0000038 + +gUnk_080149CC:: @ 080149CC + .incbin "baserom.gba", 0x0149CC, 0x000005C + +gUnk_08014A28:: @ 08014A28 + .incbin "baserom.gba", 0x014A28, 0x000002C + +gUnk_08014A54:: @ 08014A54 + .incbin "baserom.gba", 0x014A54, 0x000002C + +gUnk_08014A80:: @ 08014A80 + .incbin "baserom.gba", 0x014A80, 0x0000044 + +gUnk_08014AC4:: @ 08014AC4 + .incbin "baserom.gba", 0x014AC4, 0x0000070 + +gUnk_08014B34:: @ 08014B34 + .incbin "baserom.gba", 0x014B34, 0x00000F8 + +gUnk_08014C2C:: @ 08014C2C + .incbin "baserom.gba", 0x014C2C, 0x0000068 + +gUnk_08014C94:: @ 08014C94 + .incbin "baserom.gba", 0x014C94, 0x0000048 + +gUnk_08014CDC:: @ 08014CDC + .incbin "baserom.gba", 0x014CDC, 0x00000F0 + +gUnk_08014DCC:: @ 08014DCC + .incbin "baserom.gba", 0x014DCC, 0x0000048 + +gUnk_08014E14:: @ 08014E14 + .incbin "baserom.gba", 0x014E14, 0x000003C + +gUnk_08014E50:: @ 08014E50 + .incbin "baserom.gba", 0x014E50, 0x000007C + +gUnk_08014ECC:: @ 08014ECC + .incbin "baserom.gba", 0x014ECC, 0x000002C + +gUnk_08014EF8:: @ 08014EF8 + .incbin "baserom.gba", 0x014EF8, 0x0000038 + +gUnk_08014F30:: @ 08014F30 + .incbin "baserom.gba", 0x014F30, 0x000008C + +gUnk_08014FBC:: @ 08014FBC + .incbin "baserom.gba", 0x014FBC, 0x0000045 + +gUnk_08015001:: @ 08015001 + .incbin "baserom.gba", 0x015001, 0x0000086 + +gUnk_08015087:: @ 08015087 + .incbin "baserom.gba", 0x015087, 0x0000068 + +gUnk_080150EF:: @ 080150EF + .incbin "baserom.gba", 0x0150EF, 0x0000145 + +gUnk_08015234:: @ 08015234 + .incbin "baserom.gba", 0x015234, 0x0000080 + +gUnk_080152B4:: @ 080152B4 + .incbin "baserom.gba", 0x0152B4, 0x00000DC + +gUnk_08015390:: @ 08015390 + .incbin "baserom.gba", 0x015390, 0x000005C + +gUnk_080153EC:: @ 080153EC + .incbin "baserom.gba", 0x0153EC, 0x0000120 + +gUnk_0801550C:: @ 0801550C + .incbin "baserom.gba", 0x01550C, 0x000010C + +gUnk_08015618:: @ 08015618 + .incbin "baserom.gba", 0x015618, 0x000006C + +gUnk_08015684:: @ 08015684 + .incbin "baserom.gba", 0x015684, 0x000001C + +gUnk_080156A0:: @ 080156A0 + .incbin "baserom.gba", 0x0156A0, 0x00000B4 + +gUnk_08015754:: @ 08015754 + .incbin "baserom.gba", 0x015754, 0x0000058 + +gUnk_080157AC:: @ 080157AC + .incbin "baserom.gba", 0x0157AC, 0x000014C + +gUnk_080158F8:: @ 080158F8 + .incbin "baserom.gba", 0x0158F8, 0x0000040 + +gUnk_08015938:: @ 08015938 + .incbin "baserom.gba", 0x015938, 0x0000020 + +gUnk_08015958:: @ 08015958 + .incbin "baserom.gba", 0x015958, 0x000016C + +gUnk_08015AC4:: @ 08015AC4 + .incbin "baserom.gba", 0x015AC4, 0x0000050 + +gUnk_08015B14:: @ 08015B14 + .incbin "baserom.gba", 0x015B14, 0x0000020 + +gUnk_08015B34:: @ 08015B34 + .incbin "baserom.gba", 0x015B34, 0x0000050 + +gUnk_08015B84:: @ 08015B84 + .incbin "baserom.gba", 0x015B84, 0x0000024 + +gUnk_08015BA8:: @ 08015BA8 + .incbin "baserom.gba", 0x015BA8, 0x0000040 + +gUnk_08015BE8:: @ 08015BE8 + .incbin "baserom.gba", 0x015BE8, 0x00000EC + +gUnk_08015CD4:: @ 08015CD4 + .incbin "baserom.gba", 0x015CD4, 0x000011C + +gUnk_08015DF0:: @ 08015DF0 + .incbin "baserom.gba", 0x015DF0, 0x0000068 + +gUnk_08015E58:: @ 08015E58 + .incbin "baserom.gba", 0x015E58, 0x00000B0 + +gUnk_08015F08:: @ 08015F08 + .incbin "baserom.gba", 0x015F08, 0x0000034 + +gUnk_08015F3C:: @ 08015F3C + .incbin "baserom.gba", 0x015F3C, 0x0000068 + +gUnk_08015FA4:: @ 08015FA4 + .incbin "baserom.gba", 0x015FA4, 0x000001C + +gUnk_08015FC0:: @ 08015FC0 + .incbin "baserom.gba", 0x015FC0, 0x0000061 + +gUnk_08016021:: @ 08016021 + .incbin "baserom.gba", 0x016021, 0x000000F + +gUnk_08016030:: @ 08016030 + .incbin "baserom.gba", 0x016030, 0x000003C + +gUnk_0801606C:: @ 0801606C + .incbin "baserom.gba", 0x01606C, 0x000003C + +gUnk_080160A8:: @ 080160A8 + .incbin "baserom.gba", 0x0160A8, 0x0000042 + +gUnk_080160EA:: @ 080160EA + .incbin "baserom.gba", 0x0160EA, 0x0000052 + +gUnk_0801613C:: @ 0801613C + .incbin "baserom.gba", 0x01613C, 0x0000054 + +gUnk_08016190:: @ 08016190 + .incbin "baserom.gba", 0x016190, 0x0000058 + +gUnk_080161E8:: @ 080161E8 + .incbin "baserom.gba", 0x0161E8, 0x0000174 + +gUnk_0801635C:: @ 0801635C + .incbin "baserom.gba", 0x01635C, 0x0000021 + +gUnk_0801637D:: @ 0801637D + .incbin "baserom.gba", 0x01637D, 0x0000007 + +gUnk_08016384:: @ 08016384 + .incbin "baserom.gba", 0x016384, 0x0000084 + +gUnk_08016408:: @ 08016408 + .incbin "baserom.gba", 0x016408, 0x00001F0 + +gUnk_080165F8:: @ 080165F8 + .incbin "baserom.gba", 0x0165F8, 0x0000014 + +gUnk_0801660C:: @ 0801660C + .incbin "baserom.gba", 0x01660C, 0x000001C + +gUnk_08016628:: @ 08016628 + .incbin "baserom.gba", 0x016628, 0x000001C + +gUnk_08016644:: @ 08016644 + .incbin "baserom.gba", 0x016644, 0x0000028 + +gUnk_0801666C:: @ 0801666C + .incbin "baserom.gba", 0x01666C, 0x000004C + +gUnk_080166B8:: @ 080166B8 + .incbin "baserom.gba", 0x0166B8, 0x0000044 + +gUnk_080166FC:: @ 080166FC + .incbin "baserom.gba", 0x0166FC, 0x000009C + +gUnk_08016798:: @ 08016798 + .incbin "baserom.gba", 0x016798, 0x00000AC + +gUnk_08016844:: @ 08016844 + .incbin "baserom.gba", 0x016844, 0x000009C + +gUnk_080168E0:: @ 080168E0 + .incbin "baserom.gba", 0x0168E0, 0x0000014 + +gUnk_080168F4:: @ 080168F4 + .incbin "baserom.gba", 0x0168F4, 0x0000090 + +gUnk_08016984:: @ 08016984 + .incbin "baserom.gba", 0x016984, 0x0000002 + + .text + + non_word_aligned_thumb_func_start sub_08016986 +sub_08016986: @ 0x08016986 + ldrh r0, [r0] + bx lr + + non_word_aligned_thumb_func_start sub_0801698A +sub_0801698A: @ 0x0801698A + ldrh r0, [r0, #2] + bx lr + + non_word_aligned_thumb_func_start sub_0801698E +sub_0801698E: @ 0x0801698E + ldrh r1, [r0] + ldrh r0, [r0, #2] + lsls r0, r0, #0x10 + orrs r0, r1 + bx lr + + thumb_func_start sub_08016998 +sub_08016998: @ 0x08016998 + ldrh r1, [r0, #2] + ldrh r0, [r0, #4] + lsls r0, r0, #0x10 + orrs r0, r1 + bx lr + .align 2, 0 +_080169A4: + .byte 0x01, 0xFF, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x01, 0x00 + .byte 0xFF, 0x01, 0x00, 0x00, 0x02, 0xFF, 0x01, 0xFE, 0x00, 0xFF, 0xFF, 0x00, 0xFF, 0x01, 0xFF, 0x02 + .byte 0x00, 0x00, 0x01, 0x01, 0x02, 0xFF, 0x02, 0xFE, 0xFE, 0x02, 0xFF, 0x03, 0xFD, 0xFF, 0xFE, 0x01 + .byte 0x01, 0xFD, 0xFF, 0xFF, 0x03, 0xFE, 0x02, 0x00, 0x00, 0xFF, 0xFE, 0x03, 0xFD, 0x02, 0xFF, 0x00 + .byte 0x00, 0xFD, 0x02, 0x00, 0x00, 0xFF, 0x00, 0xFE, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02 + .byte 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00 + .byte 0x00, 0x00, 0x01, 0x00 + + thumb_func_start sub_08016A04 +sub_08016A04: @ 0x08016A04 + movs r1, #0x38 + ldrb r1, [r0, r1] + lsls r1, r1, #1 + add r3, pc, #0x1C + adds r1, r1, r3 + movs r3, #0xc0 + ldrb r2, [r0, #0x19] + bics r2, r3 + ldrb r3, [r1] + orrs r2, r3 + strb r2, [r0, #0x19] + movs r3, #0xc0 + ldrb r2, [r0, #0x1b] + bics r2, r3 + ldrb r3, [r1, #1] + orrs r2, r3 + strb r2, [r0, #0x1b] + bx lr +_08016A28: + .byte 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40 + + thumb_func_start sub_08016A30 +sub_08016A30: @ 0x08016A30 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #0x38 + ldrb r0, [r4, r5] + cmp r0, #0 + bne _08016A64 + ldrh r0, [r4, #0x2e] + ldrh r1, [r4, #0x32] + movs r2, #2 + bl sub_080002A4 + movs r3, #1 + cmp r0, #0 + beq _08016A62 + bl sub_080002E4 + movs r3, #2 + add r1, pc, #0x40 +_08016A54: + adds r1, #4 + ldrh r2, [r1] + cmp r2, #0 + beq _08016A62 + cmp r0, r2 + bne _08016A54 + ldrb r3, [r1, #3] +_08016A62: + strb r3, [r4, r5] +_08016A64: + adds r0, r4, #0 + bl sub_08016A04 + pop {r4, r5, pc} + + thumb_func_start sub_08016A6C +sub_08016A6C: @ 0x08016A6C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_080002B8 + add r1, pc, #0x38 +_08016A76: + adds r1, #4 + ldrh r2, [r1] + cmp r2, #0 + beq _08016A90 + cmp r2, r0 + bne _08016A76 + movs r2, #0x38 + ldrb r3, [r4, r2] + ldrb r5, [r1, #2] + cmp r3, r5 + beq _08016A90 + ldrb r5, [r1, #3] + strb r5, [r4, r2] +_08016A90: + pop {r4, r5, pc} + .align 2, 0 +_08016A94: + .byte 0x2A, 0x00, 0x03, 0x03, 0x2D, 0x00, 0x03, 0x03, 0x2B, 0x00, 0x03, 0x03 + .byte 0x2C, 0x00, 0x03, 0x03, 0x4C, 0x00, 0x03, 0x03, 0x4E, 0x00, 0x03, 0x03, 0x4D, 0x00, 0x03, 0x03 + .byte 0x4F, 0x00, 0x03, 0x03, 0x0A, 0x00, 0x02, 0x01, 0x09, 0x00, 0x02, 0x01, 0x0C, 0x00, 0x01, 0x02 + .byte 0x0B, 0x00, 0x01, 0x02, 0x52, 0x00, 0x03, 0x03, 0x27, 0x00, 0x03, 0x03, 0x26, 0x00, 0x03, 0x03 + .byte 0x00, 0x00 + + non_word_aligned_thumb_func_start sub_08016AD2 +sub_08016AD2: @ 0x08016AD2 + push {r4, lr} + adds r4, r0, #0 + bl sub_08016A6C + push {r0} + adds r0, r4, #0 + bl sub_08016A04 + pop {r0, r4, pc} + + thumb_func_start sub_08016AE4 +sub_08016AE4: @ 0x08016AE4 + mov r3, lr + push {r3, r4} + adds r4, r0, #0 + ldrb r2, [r0, #0xc] + cmp r2, #0 + bne _08016AFC + bl sub_080A7D80 + cmp r0, #0 + bne _08016B0A + bl sub_0805E780 +_08016AFC: + bl sub_0805E3B0 + cmp r0, #0 + bne _08016B22 + adds r0, r4, #0 + bl sub_080028E0 +_08016B0A: + adds r0, r4, #0 + ldrb r1, [r0, #9] + lsls r1, r1, #2 + ldr r2, _08016B2C @ =gUnk_08129320 + ldr r1, [r2, r1] + bl _call_via_r1 + movs r1, #0x41 + movs r3, #0x7f + ldrb r2, [r4, r1] + ands r2, r3 + strb r2, [r4, r1] +_08016B22: + adds r0, r4, #0 + bl sub_0800404C + pop {r3, r4} + bx r3 + .align 2, 0 +_08016B2C: .4byte gUnk_08129320 diff --git a/asm/code_08016B30.s b/asm/code_08016B30.s new file mode 100644 index 00000000..dfd9ba94 --- /dev/null +++ b/asm/code_08016B30.s @@ -0,0 +1,3453 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_08016B30 +sub_08016B30: @ 0x08016B30 + bx lr + .align 2, 0 + + thumb_func_start sub_08016B34 +sub_08016B34: @ 0x08016B34 + ldr r1, _08016B54 @ =0x03007FFC + ldr r0, _08016B58 @ =gUnk_03005D90 + str r0, [r1] + ldr r1, _08016B5C @ =0x04000004 + ldr r2, _08016B60 @ =0x00005028 + adds r0, r2, #0 + strh r0, [r1] + ldr r1, _08016B64 @ =0x04000200 + ldr r2, _08016B68 @ =0x00002005 + adds r0, r2, #0 + strh r0, [r1] + adds r1, #8 + movs r0, #1 + strh r0, [r1] + bx lr + .align 2, 0 +_08016B54: .4byte 0x03007FFC +_08016B58: .4byte gUnk_03005D90 +_08016B5C: .4byte 0x04000004 +_08016B60: .4byte 0x00005028 +_08016B64: .4byte 0x04000200 +_08016B68: .4byte 0x00002005 + + thumb_func_start sub_08016B6C +sub_08016B6C: @ 0x08016B6C + push {r4, r5, lr} + ldr r4, _08016BBC @ =0x040000B0 + ldrh r1, [r4, #0xa] + ldr r0, _08016BC0 @ =0x0000C5FF + ands r0, r1 + strh r0, [r4, #0xa] + ldrh r1, [r4, #0xa] + ldr r0, _08016BC4 @ =0x00007FFF + ands r0, r1 + strh r0, [r4, #0xa] + ldrh r0, [r4, #0xa] + bl m4aSoundVSync + ldr r5, _08016BC8 @ =gUnk_03001000 + ldrb r0, [r5] + cmp r0, #0 + bne _08016BA6 + bl sub_08016CF4 + ldr r0, _08016BCC @ =gUnk_03000FBC + str r0, [r4] + ldr r0, _08016BD0 @ =gUnk_02022730 + str r0, [r4, #4] + ldr r0, _08016BD4 @ =0x84000004 + str r0, [r4, #8] + ldr r0, [r4, #8] + ldrb r0, [r5] + movs r0, #1 + strb r0, [r5] +_08016BA6: + bl sub_08016BF8 + ldr r0, _08016BD8 @ =0x03007FF8 + ldrh r1, [r0] + movs r2, #1 + orrs r1, r2 + strh r1, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_08016BBC: .4byte 0x040000B0 +_08016BC0: .4byte 0x0000C5FF +_08016BC4: .4byte 0x00007FFF +_08016BC8: .4byte gUnk_03001000 +_08016BCC: .4byte gUnk_03000FBC +_08016BD0: .4byte gUnk_02022730 +_08016BD4: .4byte 0x84000004 +_08016BD8: .4byte 0x03007FF8 + + thumb_func_start sub_08016BDC +sub_08016BDC: @ 0x08016BDC + push {lr} + ldr r1, _08016BF0 @ =0x04000004 + ldr r2, _08016BF4 @ =0x00005028 + adds r0, r2, #0 + strh r0, [r1] + bl m4aSoundMain + pop {r0} + bx r0 + .align 2, 0 +_08016BF0: .4byte 0x04000004 +_08016BF4: .4byte 0x00005028 + + thumb_func_start sub_08016BF8 +sub_08016BF8: @ 0x08016BF8 + push {lr} + ldr r1, _08016C30 @ =gUnk_02022730 + ldrb r0, [r1] + cmp r0, #0 + beq _08016C2C + ldr r3, [r1, #4] + ldr r2, [r1, #8] + ldr r1, [r1, #0xc] + ldr r0, _08016C34 @ =0x040000B0 + str r3, [r0] + str r2, [r0, #4] + str r1, [r0, #8] + ldr r0, [r0, #8] + ldr r0, _08016C38 @ =0x00003FFF + ands r1, r0 + cmp r1, #0 + bne _08016C1E + movs r1, #0x80 + lsls r1, r1, #7 +_08016C1E: + ldrh r0, [r3] + strh r0, [r2] + adds r3, #2 + adds r2, #2 + subs r1, #1 + cmp r1, #0 + bgt _08016C1E +_08016C2C: + pop {r0} + bx r0 + .align 2, 0 +_08016C30: .4byte gUnk_02022730 +_08016C34: .4byte 0x040000B0 +_08016C38: .4byte 0x00003FFF + + thumb_func_start sub_08016C3C +sub_08016C3C: @ 0x08016C3C + push {r4, lr} + ldr r2, _08016C94 @ =gUnk_03000000 + ldrb r0, [r2] + cmp r0, #0 + beq _08016C6C + ldr r0, _08016C98 @ =gUnk_03000F50 + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #5 + ands r0, r1 + cmp r0, #0 + beq _08016C6C + movs r0, #0 + strb r0, [r2] + ldr r1, _08016C9C @ =0x040000D4 + adds r0, r2, #0 + adds r0, #0x20 + str r0, [r1] + movs r0, #0xe0 + lsls r0, r0, #0x13 + str r0, [r1, #4] + ldr r0, _08016CA0 @ =0x84000100 + str r0, [r1, #8] + ldr r0, [r1, #8] +_08016C6C: + ldr r4, _08016CA4 @ =gUnk_03000F58 + adds r0, r4, #0 + bl sub_08016CA8 + adds r0, r4, #0 + adds r0, #0xc + bl sub_08016CA8 + adds r0, r4, #0 + adds r0, #0x18 + bl sub_08016CA8 + adds r4, #0x24 + adds r0, r4, #0 + bl sub_08016CA8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08016C94: .4byte gUnk_03000000 +_08016C98: .4byte gUnk_03000F50 +_08016C9C: .4byte 0x040000D4 +_08016CA0: .4byte 0x84000100 +_08016CA4: .4byte gUnk_03000F58 + + thumb_func_start sub_08016CA8 +sub_08016CA8: @ 0x08016CA8 + push {lr} + adds r1, r0, #0 + ldrh r0, [r1, #6] + cmp r0, #0 + beq _08016CE8 + ldr r2, [r1, #8] + cmp r2, #0 + beq _08016CE8 + movs r0, #0 + strh r0, [r1, #6] + ldrh r1, [r1] + ldr r3, _08016CEC @ =0x040000D4 + str r2, [r3] + lsls r0, r1, #3 + movs r2, #0xf8 + lsls r2, r2, #8 + ands r0, r2 + movs r2, #0xc0 + lsls r2, r2, #0x13 + adds r0, r0, r2 + str r0, [r3, #4] + ldr r0, _08016CF0 @ =gUnk_080B2CD8 + lsrs r1, r1, #0xe + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + lsrs r0, r0, #2 + movs r1, #0x84 + lsls r1, r1, #0x18 + orrs r0, r1 + str r0, [r3, #8] + ldr r0, [r3, #8] +_08016CE8: + pop {r0} + bx r0 + .align 2, 0 +_08016CEC: .4byte 0x040000D4 +_08016CF0: .4byte gUnk_080B2CD8 + + thumb_func_start sub_08016CF4 +sub_08016CF4: @ 0x08016CF4 + ldr r3, _08016DF0 @ =gUnk_03000F50 + ldrh r1, [r3] + ldrh r0, [r3, #6] + ands r0, r1 + movs r1, #0x80 + lsls r1, r1, #0x13 + strh r0, [r1] + adds r1, #8 + ldrh r0, [r3, #8] + strh r0, [r1] + adds r1, #2 + ldrh r0, [r3, #0x14] + strh r0, [r1] + adds r1, #2 + ldrh r0, [r3, #0x20] + strh r0, [r1] + adds r1, #2 + ldrh r0, [r3, #0x2c] + strh r0, [r1] + adds r1, #2 + ldrh r0, [r3, #0xa] + strh r0, [r1] + adds r1, #2 + ldrh r0, [r3, #0xc] + strh r0, [r1] + adds r1, #2 + ldrh r0, [r3, #0x16] + strh r0, [r1] + adds r1, #2 + ldrh r0, [r3, #0x18] + strh r0, [r1] + adds r1, #2 + ldrh r0, [r3, #0x22] + strh r0, [r1] + adds r1, #2 + ldrh r0, [r3, #0x24] + strh r0, [r1] + adds r1, #2 + ldrh r0, [r3, #0x2e] + strh r0, [r1] + adds r1, #2 + ldrh r0, [r3, #0x30] + strh r0, [r1] + adds r1, r3, #0 + adds r1, #0x38 + ldr r2, _08016DF4 @ =0x04000020 + ldrh r0, [r3, #0x38] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #2] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #4] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #6] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #8] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #0xa] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #0xc] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #0xe] + strh r0, [r2] + adds r1, #0x10 + adds r2, #2 + ldrh r0, [r1] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #2] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #4] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #6] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #8] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #0xa] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #0xc] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #0xe] + strh r0, [r2] + adds r1, #0x10 + adds r2, #2 + ldrh r0, [r1] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #2] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #4] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #6] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #8] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #0xa] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #0xc] + strh r0, [r2] + adds r2, #4 + ldrh r0, [r1, #0xe] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #0x10] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #0x12] + strh r0, [r2] + bx lr + .align 2, 0 +_08016DF0: .4byte gUnk_03000F50 +_08016DF4: .4byte 0x04000020 + + thumb_func_start sub_08016DF8 +sub_08016DF8: @ 0x08016DF8 + push {r4, r5, r6, lr} + sub sp, #4 + ldr r1, _08016E20 @ =gUnk_03003DE0 + ldrb r0, [r1] + cmp r0, #0 + beq _08016E70 + ldr r4, _08016E24 @ =gUnk_03000C30 + adds r6, r0, #0 + movs r0, #0 + strb r0, [r1] + ldr r5, _08016E28 @ =0x040000D4 +_08016E0E: + ldrb r0, [r4] + cmp r0, #1 + beq _08016E44 + cmp r0, #1 + bgt _08016E2C + cmp r0, #0 + beq _08016E32 + b _08016E68 + .align 2, 0 +_08016E20: .4byte gUnk_03003DE0 +_08016E24: .4byte gUnk_03000C30 +_08016E28: .4byte 0x040000D4 +_08016E2C: + cmp r0, #2 + beq _08016E4E + b _08016E68 +_08016E32: + ldr r0, [r4, #4] + str r0, [r5] + ldr r0, [r4, #8] + str r0, [r5, #4] + ldrh r0, [r4, #2] + lsrs r0, r0, #2 + movs r1, #0x84 + lsls r1, r1, #0x18 + b _08016E62 +_08016E44: + ldr r0, [r4, #4] + ldr r1, [r4, #8] + bl LZ77UnCompVram + b _08016E68 +_08016E4E: + ldr r0, [r4, #4] + str r0, [sp] + mov r0, sp + str r0, [r5] + ldr r0, [r4, #8] + str r0, [r5, #4] + ldrh r0, [r4, #2] + lsrs r0, r0, #2 + movs r1, #0x85 + lsls r1, r1, #0x18 +_08016E62: + orrs r0, r1 + str r0, [r5, #8] + ldr r0, [r5, #8] +_08016E68: + adds r4, #0xc + subs r6, #1 + cmp r6, #0 + bgt _08016E0E +_08016E70: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + + thumb_func_start sub_08016E78 +sub_08016E78: @ 0x08016E78 + push {r4, lr} + ldr r4, _08016F08 @ =gUnk_03001000 + ldrb r0, [r4] + movs r0, #0 + strb r0, [r4] + bl VBlankIntrWait + ldrb r0, [r4] + cmp r0, #0 + bne _08016E94 + adds r1, r4, #0 +_08016E8E: + ldrb r0, [r1] + cmp r0, #0 + beq _08016E8E +_08016E94: + bl sub_080ADD70 + bl sub_0801C25C + bl sub_08016C3C + bl sub_08016DF8 + ldr r1, _08016F0C @ =gUnk_02000070 + ldrb r0, [r1] + cmp r0, #0 + beq _08016EFC + movs r0, #0 + strb r0, [r1] + ldr r0, _08016F10 @ =gUnk_02025EB0 + ldr r1, [r0] + cmp r1, #0 + beq _08016ED6 + ldr r2, _08016F14 @ =0x040000D4 + ldr r0, _08016F18 @ =gUnk_02021F30 + str r0, [r2] + ldrh r1, [r1] + movs r0, #0xf8 + lsls r0, r0, #5 + ands r0, r1 + lsls r0, r0, #3 + movs r1, #0xc0 + lsls r1, r1, #0x13 + adds r0, r0, r1 + str r0, [r2, #4] + ldr r0, _08016F1C @ =0x84000170 + str r0, [r2, #8] + ldr r0, [r2, #8] +_08016ED6: + ldr r0, _08016F20 @ =gUnk_0200B650 + ldr r1, [r0] + cmp r1, #0 + beq _08016EFC + ldr r2, _08016F14 @ =0x040000D4 + ldr r0, _08016F24 @ =gUnk_020344B0 + str r0, [r2] + ldrh r1, [r1] + movs r0, #0xf8 + lsls r0, r0, #5 + ands r0, r1 + lsls r0, r0, #3 + movs r1, #0xc0 + lsls r1, r1, #0x13 + adds r0, r0, r1 + str r0, [r2, #4] + ldr r0, _08016F1C @ =0x84000170 + str r0, [r2, #8] + ldr r0, [r2, #8] +_08016EFC: + bl sub_0804FF98 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08016F08: .4byte gUnk_03001000 +_08016F0C: .4byte gUnk_02000070 +_08016F10: .4byte gUnk_02025EB0 +_08016F14: .4byte 0x040000D4 +_08016F18: .4byte gUnk_02021F30 +_08016F1C: .4byte 0x84000170 +_08016F20: .4byte gUnk_0200B650 +_08016F24: .4byte gUnk_020344B0 + + thumb_func_start sub_08016F28 +sub_08016F28: @ 0x08016F28 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _08016F44 @ =gUnk_02002A40 + adds r0, #0xba + ldrb r0, [r0] + cmp r0, #0 + beq _08016F4C + ldr r0, _08016F48 @ =gUnk_03003F80 + ldr r1, [r0, #0x30] + movs r2, #0x80 + lsls r2, r2, #7 + orrs r1, r2 + b _08016F54 + .align 2, 0 +_08016F44: .4byte gUnk_02002A40 +_08016F48: .4byte gUnk_03003F80 +_08016F4C: + ldr r0, _08016F98 @ =gUnk_03003F80 + ldr r1, [r0, #0x30] + ldr r2, _08016F9C @ =0xFFFFBFFF + ands r1, r2 +_08016F54: + str r1, [r0, #0x30] + adds r0, r4, #0 + bl sub_0805E3B0 + cmp r0, #0 + bne _08016FDC + ldr r5, _08016F98 @ =gUnk_03003F80 + ldr r0, [r5, #0x30] + movs r1, #0x80 + lsls r1, r1, #0xc + ands r0, r1 + cmp r0, #0 + beq _08016FB4 + bl sub_08077B20 + ldr r1, [r5, #0x30] + movs r0, #0x80 + lsls r0, r0, #0xe + ands r0, r1 + cmp r0, #0 + beq _08016FA4 + movs r0, #0x18 + strb r0, [r5, #0xc] + ldr r0, _08016FA0 @ =0xFFF7FFFF + ands r1, r0 + str r1, [r5, #0x30] + movs r0, #0xf0 + strb r0, [r5, #0xf] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + b _08016FB4 + .align 2, 0 +_08016F98: .4byte gUnk_03003F80 +_08016F9C: .4byte 0xFFFFBFFF +_08016FA0: .4byte 0xFFF7FFFF +_08016FA4: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r1, r5, #0 + adds r1, #0xa8 + movs r0, #0xf + strb r0, [r1] +_08016FB4: + adds r0, r4, #0 + bl sub_08016FF4 + adds r0, r4, #0 + bl sub_08070680 + ldr r0, [r4, #0x34] + cmp r0, #0 + bne _08016FD8 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _08016FD0 + cmp r0, #9 + bne _08016FD8 +_08016FD0: + adds r0, r4, #0 + movs r1, #8 + bl sub_08008790 +_08016FD8: + bl sub_080171F0 +_08016FDC: + adds r0, r4, #0 + bl sub_08078FB0 + adds r0, r4, #0 + bl sub_0800404C + bl sub_0807A050 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + + thumb_func_start sub_08016FF4 +sub_08016FF4: @ 0x08016FF4 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _080170A0 @ =gUnk_0200AF00 + adds r2, r0, #0 + adds r2, #0x2f + movs r1, #0 + strb r1, [r2] + subs r2, #2 + strb r1, [r2] + adds r0, #0x2e + strb r1, [r0] + ldr r2, _080170A4 @ =gUnk_03001160 + adds r0, r2, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0801702E + adds r0, r2, #0 + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + ble _0801702E + movs r0, #0x86 + bl sub_080A3268 +_0801702E: + ldr r4, _080170A8 @ =gUnk_03003F80 + ldr r0, [r4, #0x30] + ldr r1, _080170AC @ =0xFDFFFDFF + ands r0, r1 + str r0, [r4, #0x30] + movs r1, #0x80 + lsls r1, r1, #3 + ands r0, r1 + cmp r0, #0 + beq _08017046 + bl sub_08077B2C +_08017046: + ldr r0, [r4, #0x30] + movs r1, #0x80 + lsls r1, r1, #0xf + ands r0, r1 + cmp r0, #0 + beq _08017060 + adds r0, r4, #0 + adds r0, #0xa0 + ldrb r0, [r0] + cmp r0, #0 + bne _08017060 + bl sub_0807A108 +_08017060: + bl sub_08079B24 + cmp r0, #0 + bne _0801706E + adds r0, r5, #0 + bl sub_08079708 +_0801706E: + ldr r0, _080170B0 @ =gUnk_03003DF0 + movs r4, #0 + strb r4, [r0] + ldr r2, _080170A8 @ =gUnk_03003F80 + adds r1, r2, #0 + adds r1, #0x27 + ldrb r0, [r1] + cmp r0, #0 + beq _08017084 + subs r0, #1 + strb r0, [r1] +_08017084: + adds r1, r2, #0 + adds r1, #0xa8 + ldrb r0, [r1] + adds r3, r2, #0 + adds r3, #0xa9 + strb r0, [r3] + strb r4, [r1] + subs r1, #0x1e + ldrb r0, [r1] + cmp r0, #0 + beq _080170B4 + subs r0, #1 + strb r0, [r1] + b _080171EA + .align 2, 0 +_080170A0: .4byte gUnk_0200AF00 +_080170A4: .4byte gUnk_03001160 +_080170A8: .4byte gUnk_03003F80 +_080170AC: .4byte 0xFDFFFDFF +_080170B0: .4byte gUnk_03003DF0 +_080170B4: + adds r0, r2, #0 + adds r0, #0x8b + ldrb r0, [r0] + cmp r0, #0 + beq _080170C0 + b _080171EA +_080170C0: + ldr r0, _08017124 @ =gUnk_02000050 + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0 + beq _080170CE + b _080171EA +_080170CE: + ldr r3, _08017128 @ =gUnk_02034350 + strb r1, [r3, #0xa] + ldr r2, _0801712C @ =gUnk_02002A40 + adds r0, r2, #0 + adds r0, #0xab + ldrb r0, [r0] + lsrs r1, r0, #2 + cmp r1, #0x18 + bls _080170E2 + movs r1, #0x18 +_080170E2: + cmp r1, #7 + bhi _080170E8 + movs r1, #8 +_080170E8: + adds r0, r2, #0 + adds r0, #0xaa + ldrb r0, [r0] + cmp r0, r1 + bhi _08017112 + movs r0, #1 + strb r0, [r3, #0xa] + ldr r0, _08017130 @ =gUnk_0200AF00 + ldrb r0, [r0, #1] + cmp r0, #0 + bne _08017112 + ldr r0, _08017134 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #0x5a + bl __modsi3 + cmp r0, #0 + bne _08017112 + ldr r0, _08017138 @ =0x0000011F + bl sub_08004488 +_08017112: + ldr r0, _0801712C @ =gUnk_02002A40 + adds r2, r0, #0 + adds r2, #0xb2 + ldrb r1, [r2] + cmp r1, #0 + bne _0801713C + adds r0, #0xc4 + strh r1, [r0] + b _0801715A + .align 2, 0 +_08017124: .4byte gUnk_02000050 +_08017128: .4byte gUnk_02034350 +_0801712C: .4byte gUnk_02002A40 +_08017130: .4byte gUnk_0200AF00 +_08017134: .4byte gUnk_030010A0 +_08017138: .4byte 0x0000011F +_0801713C: + adds r1, r0, #0 + adds r1, #0xc4 + ldrh r0, [r1] + cmp r0, #0 + beq _08017150 + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0801715A +_08017150: + movs r0, #0 + strb r0, [r2] + ldr r0, _0801716C @ =0x000001B3 + bl sub_080A3268 +_0801715A: + ldr r0, _08017170 @ =gUnk_02002A40 + adds r3, r0, #0 + adds r3, #0xb3 + ldrb r1, [r3] + cmp r1, #0 + bne _08017174 + adds r0, #0xc6 + strh r1, [r0] + b _080171A4 + .align 2, 0 +_0801716C: .4byte 0x000001B3 +_08017170: .4byte gUnk_02002A40 +_08017174: + adds r2, r0, #0 + adds r2, #0xc6 + ldrh r0, [r2] + cmp r0, #0 + beq _08017188 + subs r1, r0, #1 + strh r1, [r2] + lsls r0, r1, #0x10 + cmp r0, #0 + bne _08017196 +_08017188: + movs r0, #0 + strb r0, [r3] + movs r0, #0xa0 + lsls r0, r0, #1 + bl sub_080A3268 + b _080171A4 +_08017196: + movs r0, #0xf + ands r1, r0 + cmp r1, #0 + bne _080171A4 + adds r0, r5, #0 + bl sub_080A2B80 +_080171A4: + ldr r0, _080171B8 @ =gUnk_02002A40 + adds r3, r0, #0 + adds r3, #0xba + ldrb r1, [r3] + cmp r1, #0 + bne _080171BC + adds r0, #0xc8 + strh r1, [r0] + b _080171EA + .align 2, 0 +_080171B8: .4byte gUnk_02002A40 +_080171BC: + adds r2, r0, #0 + adds r2, #0xc8 + ldrh r0, [r2] + cmp r0, #0 + beq _080171D0 + subs r1, r0, #1 + strh r1, [r2] + lsls r0, r1, #0x10 + cmp r0, #0 + bne _080171D6 +_080171D0: + movs r0, #0 + strb r0, [r3] + b _080171EA +_080171D6: + movs r0, #0x3f + ands r1, r0 + cmp r1, #0 + bne _080171EA + ldrb r1, [r3] + adds r1, #0x55 + adds r0, r5, #0 + movs r2, #0 + bl sub_080A29AC +_080171EA: + pop {r4, r5} + pop {r0} + bx r0 + + thumb_func_start sub_080171F0 +sub_080171F0: @ 0x080171F0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r4, _080172DC @ =gUnk_03003F80 + ldrb r0, [r4, #0x1a] + cmp r0, #0 + beq _08017202 + bl sub_08077B2C +_08017202: + ldrb r0, [r4, #0x14] + cmp r0, #0 + beq _0801720C + subs r0, #1 + strb r0, [r4, #0x14] +_0801720C: + ldr r6, _080172E0 @ =gUnk_03001160 + adds r1, r6, #0 + adds r1, #0x7a + ldrh r0, [r1] + cmp r0, #0 + beq _0801721C + subs r0, #1 + strh r0, [r1] +_0801721C: + adds r2, r6, #0 + adds r2, #0x41 + ldrb r0, [r2] + movs r5, #0x7f + adds r1, r5, #0 + ands r1, r0 + movs r0, #0 + mov r8, r0 + strb r1, [r2] + ldrb r0, [r6, #0xc] + cmp r0, #0x14 + beq _08017244 + ldr r0, [r4, #0x30] + ldr r1, _080172E4 @ =0xFFFEFFFF + ands r1, r0 + movs r2, #2 + ands r0, r2 + lsls r0, r0, #0xf + orrs r1, r0 + str r1, [r4, #0x30] +_08017244: + ldr r0, [r4, #0x30] + movs r1, #3 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r4, #0x30] + adds r0, r6, #0 + bl sub_080028E0 + ldr r0, [r4, #0x30] + movs r7, #0x80 + lsls r7, r7, #0xf + ands r0, r7 + cmp r0, #0 + beq _08017268 + ldr r0, _080172E8 @ =gUnk_0200AF00 + adds r0, #0x2f + movs r1, #1 + strb r1, [r0] +_08017268: + bl sub_08078180 + ldrb r1, [r4, #7] + adds r0, r5, #0 + ands r0, r1 + strb r0, [r4, #7] + ldrb r1, [r4, #0xa] + movs r0, #0xf + ands r0, r1 + strb r0, [r4, #0xa] + ldrb r1, [r4, #0xb] + adds r0, r5, #0 + ands r0, r1 + strb r0, [r4, #0xb] + mov r1, r8 + strb r1, [r4, #0x1a] + adds r0, r4, #0 + adds r0, #0x80 + movs r5, #0 + mov r1, r8 + strh r1, [r0] + adds r0, #0x2a + strb r5, [r0] + ldr r0, _080172EC @ =gUnk_03003BE0 + movs r1, #0x8c + bl sub_0801D630 + adds r2, r4, #0 + adds r2, #0x3f + ldrb r0, [r2] + adds r1, r6, #0 + adds r1, #0x63 + strb r0, [r1] + strb r5, [r2] + bl sub_0807B0C8 + ldr r0, [r4, #0x30] + ands r0, r7 + cmp r0, #0 + beq _080172CC + ldr r0, _080172F0 @ =gUnk_03004040 + ldr r2, [r0] + ldr r1, [r0, #4] + ldr r0, [r0, #8] + adds r0, #0x63 + strb r5, [r0] + adds r1, #0x63 + strb r5, [r1] + adds r2, #0x63 + strb r5, [r2] +_080172CC: + ldrb r0, [r6, #0xc] + cmp r0, #0x1d + bne _080172F4 + ldr r0, [r4, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x16 + orrs r0, r1 + b _080172FA + .align 2, 0 +_080172DC: .4byte gUnk_03003F80 +_080172E0: .4byte gUnk_03001160 +_080172E4: .4byte 0xFFFEFFFF +_080172E8: .4byte gUnk_0200AF00 +_080172EC: .4byte gUnk_03003BE0 +_080172F0: .4byte gUnk_03004040 +_080172F4: + ldr r0, [r4, #0x30] + ldr r1, _0801732C @ =0xDFFFFFFF + ands r0, r1 +_080172FA: + str r0, [r4, #0x30] + ldr r4, _08017330 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_0807A8D8 + ldr r0, _08017334 @ =gUnk_03003F80 + ldrb r1, [r0, #2] + movs r0, #0xc0 + ands r0, r1 + cmp r0, #0 + beq _08017318 + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0xfe + strb r0, [r1] +_08017318: + ldrb r0, [r4, #0xc] + cmp r0, #0x17 + beq _08017322 + bl sub_08077FEC +_08017322: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0801732C: .4byte 0xDFFFFFFF +_08017330: .4byte gUnk_03001160 +_08017334: .4byte gUnk_03003F80 + + thumb_func_start sub_08017338 +sub_08017338: @ 0x08017338 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08017352 + ldrh r0, [r4, #0xc] + cmp r0, #0 + bne _08017352 + adds r0, r4, #0 + bl sub_080173A4 +_08017352: + adds r0, r4, #0 + bl sub_0805E3B0 + cmp r0, #0 + bne _08017398 + ldr r1, _08017390 @ =gUnk_080B2CE8 + ldrb r0, [r4, #9] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r2, r4, #0 + adds r2, #0x41 + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x3d + ldrb r0, [r1] + movs r2, #0 + ldrsb r2, [r1, r2] + cmp r2, #0 + beq _08017398 + cmp r2, #0 + ble _08017394 + subs r0, #1 + b _08017396 + .align 2, 0 +_08017390: .4byte gUnk_080B2CE8 +_08017394: + adds r0, #1 +_08017396: + strb r0, [r1] +_08017398: + adds r0, r4, #0 + bl sub_0800404C + pop {r4} + pop {r0} + bx r0 + + thumb_func_start sub_080173A4 +sub_080173A4: @ 0x080173A4 + push {r4, r5, lr} + mov ip, r0 + ldrb r0, [r0, #9] + lsls r0, r0, #3 + ldr r1, _08017410 @ =gUnk_08126DA8 + adds r3, r0, r1 + ldrb r0, [r3] + cmp r0, #0xff + bne _080173CE + ldrb r2, [r3, #2] + ldr r1, _08017414 @ =gUnk_08126ED8 + ldrb r0, [r3, #1] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r3, [r0] + mov r0, ip + adds r0, #0x68 + ldrb r0, [r0] + subs r0, r0, r2 + lsls r0, r0, #3 + adds r3, r3, r0 +_080173CE: + ldrb r0, [r3] + movs r1, #0xf + ands r1, r0 + lsls r0, r0, #4 + orrs r0, r1 + mov r1, ip + strb r0, [r1, #0x1a] + ldrb r1, [r3, #1] + mov r0, ip + adds r0, #0x44 + strb r1, [r0] + ldrb r1, [r3, #3] + subs r0, #4 + strb r1, [r0] + ldrb r0, [r3, #4] + mov r1, ip + adds r1, #0x3f + strb r0, [r1] + ldrb r0, [r3, #5] + mov r2, ip + strh r0, [r2, #0x12] + ldrh r1, [r3, #6] + cmp r1, #0 + bne _0801741C + ldr r2, _08017418 @ =gUnk_03001160 + adds r0, r2, #0 + adds r0, #0x60 + ldrh r1, [r0] + mov r0, ip + adds r0, #0x60 + strh r1, [r0] + adds r5, r2, #0 + b _08017428 + .align 2, 0 +_08017410: .4byte gUnk_08126DA8 +_08017414: .4byte gUnk_08126ED8 +_08017418: .4byte gUnk_03001160 +_0801741C: + ldr r0, _0801749C @ =0x000003FF + ands r0, r1 + mov r1, ip + adds r1, #0x60 + strh r0, [r1] + ldr r5, _080174A0 @ =gUnk_03001160 +_08017428: + mov r3, ip + ldrb r0, [r3, #0x14] + cmp r0, #0 + bne _08017438 + ldrb r1, [r5, #0x14] + movs r0, #6 + ands r0, r1 + strb r0, [r3, #0x14] +_08017438: + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + mov r0, ip + adds r0, #0x38 + strb r1, [r0] + ldrb r1, [r5, #0x19] + lsrs r1, r1, #6 + lsls r1, r1, #6 + mov r0, ip + ldrb r3, [r0, #0x19] + movs r2, #0x3f + adds r0, r2, #0 + ands r0, r3 + orrs r0, r1 + mov r1, ip + strb r0, [r1, #0x19] + adds r0, r5, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + mov r4, ip + adds r4, #0x29 + lsrs r1, r1, #0x1d + ldrb r3, [r4] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r4] + ldrb r0, [r5, #0x1b] + lsrs r0, r0, #6 + lsls r0, r0, #6 + mov r3, ip + ldrb r1, [r3, #0x1b] + ands r2, r1 + orrs r2, r0 + strb r2, [r3, #0x1b] + mov r2, ip + adds r2, #0x45 + movs r1, #1 + movs r0, #1 + strb r0, [r2] + ldrb r0, [r3, #0x10] + orrs r1, r0 + strb r1, [r3, #0x10] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0801749C: .4byte 0x000003FF +_080174A0: .4byte gUnk_03001160 + + thumb_func_start sub_080174A4 +sub_080174A4: @ 0x080174A4 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080174BE + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080174BE + adds r0, r4, #0 + bl sub_080A2838 +_080174BE: + adds r1, r4, #0 + adds r1, #0x3d + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _080174D0 + adds r0, r2, #1 + strb r0, [r1] +_080174D0: + adds r0, r4, #0 + bl sub_0805E3B0 + cmp r0, #0 + bne _080174F6 + ldr r1, _08017504 @ =gUnk_080B2D4C + ldrb r0, [r4, #9] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r2, r4, #0 + adds r2, #0x41 + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] +_080174F6: + adds r0, r4, #0 + bl sub_0800404C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08017504: .4byte gUnk_080B2D4C + + thumb_func_start sub_08017508 +sub_08017508: @ 0x08017508 + push {r4, lr} + adds r4, r0, #0 + bl sub_0805E3B0 + cmp r0, #0 + bne _08017524 + ldr r0, _0801752C @ =gUnk_080B3054 + ldrb r1, [r4, #9] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_08017524: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801752C: .4byte gUnk_080B3054 + + thumb_func_start sub_08017530 +sub_08017530: @ 0x08017530 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x45 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + beq _08017550 + ldr r0, _080175D8 @ =gUnk_020342F8 + subs r1, #1 + bl sub_0801D5A8 + cmp r0, #0 + bne _08017550 + bl sub_0805E780 +_08017550: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08017566 + ldrb r1, [r4, #0x10] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08017566 + adds r0, r4, #0 + bl sub_0806EC78 +_08017566: + adds r0, r4, #0 + bl sub_0805E3B0 + cmp r0, #0 + bne _08017584 + ldr r2, _080175DC @ =gUnk_080B313C + ldrb r1, [r4, #9] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 +_08017584: + ldr r0, [r4, #4] + cmp r0, #0 + beq _080175D2 + ldr r2, _080175DC @ =gUnk_080B313C + ldrb r1, [r4, #9] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #4 + adds r0, r0, r2 + ldr r1, [r0] + cmp r1, #0 + beq _080175A4 + adds r0, r4, #0 + bl _call_via_r1 +_080175A4: + adds r0, r4, #0 + adds r0, #0x45 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + beq _080175CC + ldr r2, _080175E0 @ =gUnk_02031EC0 + lsls r0, r1, #4 + subs r0, #0x10 + adds r2, r0, r2 + ldr r3, _080175E4 @ =gUnk_03000BF0 + ldrh r0, [r4, #0x2e] + ldrh r1, [r3, #6] + subs r0, r0, r1 + strh r0, [r2, #4] + ldrh r0, [r4, #0x32] + ldrh r1, [r3, #8] + subs r0, r0, r1 + strh r0, [r2, #6] +_080175CC: + adds r0, r4, #0 + bl sub_0800404C +_080175D2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080175D8: .4byte gUnk_020342F8 +_080175DC: .4byte gUnk_080B313C +_080175E0: .4byte gUnk_02031EC0 +_080175E4: .4byte gUnk_03000BF0 + + thumb_func_start sub_080175E8 +sub_080175E8: @ 0x080175E8 + ldr r1, _080175F0 @ =gUnk_03003DB8 + movs r0, #0 + strb r0, [r1] + bx lr + .align 2, 0 +_080175F0: .4byte gUnk_03003DB8 + + thumb_func_start sub_080175F4 +sub_080175F4: @ 0x080175F4 + push {r4, r5, lr} + ldr r1, _08017624 @ =gUnk_03003DC0 + ldrb r0, [r1] + ldrb r2, [r1, #1] + cmp r0, r2 + bhi _08017602 + ldrb r0, [r1, #1] +_08017602: + cmp r0, #0 + bne _08017638 + ldr r1, _08017628 @ =gUnk_030059F0 + ldr r0, _0801762C @ =gUnk_03003F80 + adds r0, #0x8b + ldrb r0, [r0] + cmp r0, #0 + beq _08017634 + ldr r4, _08017630 @ =gUnk_03001160 + ldrb r5, [r4, #0x10] + movs r0, #0x7f + ands r0, r5 + strb r0, [r4, #0x10] + bl _call_via_r1 + strb r5, [r4, #0x10] + b _08017638 + .align 2, 0 +_08017624: .4byte gUnk_03003DC0 +_08017628: .4byte gUnk_030059F0 +_0801762C: .4byte gUnk_03003F80 +_08017630: .4byte gUnk_03001160 +_08017634: + bl _call_via_r1 +_08017638: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + + thumb_func_start sub_08017640 +sub_08017640: @ 0x08017640 + push {r4, lr} + ldr r4, _08017660 @ =gUnk_03003C70 + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r4, #0 + bl sub_0801D630 + ldr r0, _08017664 @ =gUnk_02018EA0 + str r4, [r0] + str r4, [r4] + str r4, [r4, #4] + ldr r0, _08017668 @ =gUnk_03001160 + str r0, [r4, #8] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08017660: .4byte gUnk_03003C70 +_08017664: .4byte gUnk_02018EA0 +_08017668: .4byte gUnk_03001160 + + thumb_func_start sub_0801766C +sub_0801766C: @ 0x0801766C + push {r4, lr} + adds r4, r0, #0 + adds r3, r4, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08017682 +_0801767E: + movs r0, #1 + b _080176DE +_08017682: + ldr r2, _080176C0 @ =gUnk_03003C70 + movs r0, #0x80 + lsls r0, r0, #1 + adds r1, r2, r0 + cmp r1, r2 + bls _080176DC +_0801768E: + ldr r0, [r2, #8] + cmp r0, #0 + bne _080176D6 + str r4, [r2, #8] + strb r0, [r2, #0xc] + ldrb r0, [r3] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r3] + ldr r3, _080176C4 @ =gUnk_02018EA0 + ldr r1, [r3] + ldrb r0, [r1, #0xc] + cmp r0, #0 + beq _080176C8 +_080176AA: + ldr r1, [r1, #4] + ldrb r0, [r1, #0xc] + cmp r0, #0 + bne _080176AA + str r1, [r2, #4] + ldr r0, [r1] + str r0, [r2] + str r2, [r0, #4] + str r2, [r1] + b _0801767E + .align 2, 0 +_080176C0: .4byte gUnk_03003C70 +_080176C4: .4byte gUnk_02018EA0 +_080176C8: + str r1, [r2, #4] + ldr r0, [r1] + str r0, [r2] + str r2, [r0, #4] + str r2, [r1] + str r2, [r3] + b _0801767E +_080176D6: + adds r2, #0x10 + cmp r1, r2 + bhi _0801768E +_080176DC: + movs r0, #0 +_080176DE: + pop {r4} + pop {r1} + bx r1 + + thumb_func_start sub_080176E4 +sub_080176E4: @ 0x080176E4 + push {lr} + adds r2, r0, #0 + adds r0, #0x29 + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08017720 + movs r0, #1 + b _0801773A +_080176F8: + str r2, [r3, #8] + movs r0, #1 + strb r0, [r3, #0xc] + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r2] + ldr r2, _0801771C @ =gUnk_02018EA0 + ldr r0, [r2] + str r0, [r3, #4] + ldr r1, [r0] + str r1, [r3] + str r3, [r1, #4] + str r3, [r0] + str r3, [r2] + movs r0, #1 + b _0801773A + .align 2, 0 +_0801771C: .4byte gUnk_02018EA0 +_08017720: + ldr r3, _08017740 @ =gUnk_03003C70 + movs r0, #0x80 + lsls r0, r0, #1 + adds r1, r3, r0 + cmp r1, r3 + bls _08017738 +_0801772C: + ldr r0, [r3, #8] + cmp r0, #0 + beq _080176F8 + adds r3, #0x10 + cmp r1, r3 + bhi _0801772C +_08017738: + movs r0, #0 +_0801773A: + pop {r1} + bx r1 + .align 2, 0 +_08017740: .4byte gUnk_03003C70 + + thumb_func_start sub_08017744 +sub_08017744: @ 0x08017744 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r2, _08017758 @ =gUnk_03003C70 + movs r0, #0x80 + lsls r0, r0, #1 + adds r7, r2, r0 + movs r5, #0x41 + rsbs r5, r5, #0 + ldr r6, _0801775C @ =gUnk_02018EA0 + b _08017766 + .align 2, 0 +_08017758: .4byte gUnk_03003C70 +_0801775C: .4byte gUnk_02018EA0 +_08017760: + adds r2, #0x10 + cmp r7, r2 + bls _0801779A +_08017766: + ldr r0, [r2, #8] + cmp r4, r0 + bne _08017760 + adds r3, r4, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08017760 + adds r0, r5, #0 + ands r0, r1 + strb r0, [r3] + movs r0, #0 + str r0, [r2, #8] + ldr r1, [r2] + ldr r0, [r2, #4] + str r0, [r1, #4] + ldr r1, [r2, #4] + ldr r0, [r2] + str r0, [r1] + ldr r0, [r6] + cmp r2, r0 + bne _0801779A + ldr r0, [r2, #4] + str r0, [r6] +_0801779A: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + + thumb_func_start sub_080177A0 +sub_080177A0: @ 0x080177A0 + push {r4, r5, r6, lr} + mov ip, r0 + adds r5, r1, #0 + adds r0, #0x38 + adds r1, #0x38 + ldrb r2, [r0] + ldrb r0, [r1] + ands r0, r2 + cmp r0, #0 + beq _08017848 + mov r0, ip + ldr r3, [r0, #0x48] + ldr r4, [r5, #0x48] + ldrb r1, [r3, #6] + ldrb r0, [r4, #6] + adds r2, r1, r0 + mov r1, ip + movs r6, #0x2e + ldrsh r0, [r1, r6] + movs r6, #0x2e + ldrsh r1, [r5, r6] + subs r0, r0, r1 + movs r1, #0 + ldrsb r1, [r3, r1] + adds r0, r0, r1 + movs r1, #0 + ldrsb r1, [r4, r1] + subs r0, r0, r1 + adds r0, r0, r2 + lsls r1, r2, #1 + cmp r0, r1 + bhi _08017848 + ldrb r1, [r3, #7] + ldrb r0, [r4, #7] + adds r2, r1, r0 + mov r1, ip + movs r6, #0x32 + ldrsh r0, [r1, r6] + movs r6, #0x32 + ldrsh r1, [r5, r6] + subs r0, r0, r1 + movs r1, #1 + ldrsb r1, [r3, r1] + adds r0, r0, r1 + movs r1, #1 + ldrsb r1, [r4, r1] + subs r0, r0, r1 + adds r0, r0, r2 + lsls r1, r2, #1 + cmp r0, r1 + bhi _08017848 + mov r0, ip + adds r0, #0x3c + ldrb r1, [r0] + movs r6, #0x10 + adds r0, r6, #0 + ands r0, r1 + movs r2, #5 + cmp r0, #0 + beq _0801781A + ldrb r2, [r3, #8] +_0801781A: + adds r0, r5, #0 + adds r0, #0x3c + ldrb r1, [r0] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _0801782E + ldrb r0, [r4, #8] + adds r2, r2, r0 + b _08017830 +_0801782E: + adds r2, #5 +_08017830: + mov r1, ip + movs r3, #0x36 + ldrsh r0, [r1, r3] + movs r6, #0x36 + ldrsh r1, [r5, r6] + subs r0, r0, r1 + adds r0, r0, r2 + lsls r1, r2, #1 + cmp r0, r1 + bhi _08017848 + movs r0, #1 + b _0801784A +_08017848: + movs r0, #0 +_0801784A: + pop {r4, r5, r6} + pop {r1} + bx r1 + + thumb_func_start sub_08017850 +sub_08017850: @ 0x08017850 + push {r4, lr} + adds r4, r0, #0 + bl sub_08079F8C + cmp r0, #0 + bne _08017860 + movs r0, #0 + b _08017868 +_08017860: + ldr r1, _08017870 @ =gUnk_03001160 + adds r0, r4, #0 + bl sub_080177A0 +_08017868: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08017870: .4byte gUnk_03001160 + + thumb_func_start sub_08017874 +sub_08017874: @ 0x08017874 + push {r4, r5, lr} + adds r4, r0, #0 + adds r2, r1, #0 + ldrb r0, [r4, #8] + cmp r0, #1 + bne _080178C6 + adds r0, r2, #0 + adds r0, #0x44 + ldrb r1, [r0] + ldr r0, _08017898 @ =gUnk_02002A40 + adds r0, #0xb2 + ldrb r0, [r0] + cmp r0, #0x2f + beq _0801789C + cmp r0, #0x30 + beq _080178A8 + b _080178AE + .align 2, 0 +_08017898: .4byte gUnk_02002A40 +_0801789C: + adds r0, r1, #0 + cmp r1, #0 + bge _080178A4 + adds r0, r1, #3 +_080178A4: + asrs r1, r0, #2 + b _080178AE +_080178A8: + lsrs r0, r1, #0x1f + adds r0, r1, r0 + asrs r1, r0, #1 +_080178AE: + cmp r1, #0 + bgt _080178B4 + movs r1, #1 +_080178B4: + rsbs r0, r1, #0 + bl sub_080526A0 + adds r5, r0, #0 + adds r0, r4, #0 + movs r1, #0x7a + bl sub_0800449C + b _08017928 +_080178C6: + adds r0, r2, #0 + adds r0, #0x44 + ldrb r1, [r0] + ldrb r0, [r2, #8] + cmp r0, #8 + bne _080178F6 + ldr r0, _080178E4 @ =gUnk_02002A40 + adds r0, #0xb2 + ldrb r0, [r0] + cmp r0, #0x30 + beq _080178E8 + cmp r0, #0x31 + beq _080178F4 + b _080178F6 + .align 2, 0 +_080178E4: .4byte gUnk_02002A40 +_080178E8: + lsls r0, r1, #1 + adds r0, r0, r1 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r1, r0, #1 + b _080178F6 +_080178F4: + lsls r1, r1, #1 +_080178F6: + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + subs r5, r0, r1 + ldrb r0, [r4, #8] + cmp r0, #3 + bne _08017928 + adds r0, r4, #0 + adds r0, #0x6d + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08017920 + ldr r1, _0801791C @ =0x00000127 + adds r0, r4, #0 + bl sub_0800449C + b _08017928 + .align 2, 0 +_0801791C: .4byte 0x00000127 +_08017920: + adds r0, r4, #0 + movs r1, #0xfe + bl sub_0800449C +_08017928: + cmp r5, #0 + ble _08017930 + adds r0, r5, #0 + b _0801793A +_08017930: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #0 +_0801793A: + pop {r4, r5} + pop {r1} + bx r1 + + thumb_func_start sub_08017940 +sub_08017940: @ 0x08017940 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r0, r4, #0 + movs r1, #0x2c + movs r2, #0 + bl sub_080A29AC + adds r2, r0, #0 + cmp r2, #0 + beq _080179CC + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r3] + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r1, [r5, #0x48] + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r0, r1 + movs r3, #0x2e + ldrsh r1, [r4, r3] + adds r0, r0, r1 + ldr r1, [r4, #0x48] + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r0, r1 + asrs r0, r0, #1 + strh r0, [r2, #0x2e] + movs r1, #0x32 + ldrsh r0, [r5, r1] + ldr r1, [r5, #0x48] + ldrb r1, [r1, #1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r0, r1 + movs r3, #0x32 + ldrsh r1, [r4, r3] + adds r0, r0, r1 + ldr r1, [r4, #0x48] + ldrb r1, [r1, #1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r0, r1 + asrs r0, r0, #1 + strh r0, [r2, #0x32] + movs r1, #0x36 + ldrsh r0, [r5, r1] + movs r3, #0x36 + ldrsh r1, [r4, r3] + adds r0, r0, r1 + asrs r0, r0, #1 + strh r0, [r2, #0x36] + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r2, #0 + adds r0, #0x38 + strb r1, [r0] + adds r0, r2, #0 + bl sub_08016A04 +_080179CC: + movs r1, #0 + ldr r0, _080179E8 @ =gUnk_03001160 + cmp r5, r0 + beq _080179DA + cmp r4, r0 + bne _080179E0 + adds r0, r4, #0 +_080179DA: + adds r0, #0x42 + ldrb r0, [r0] + lsrs r1, r0, #3 +_080179E0: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080179E8: .4byte gUnk_03001160 + + thumb_func_start sub_080179EC +sub_080179EC: @ 0x080179EC + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r5, r1, #0 + ldr r4, _08017A8C @ =gUnk_080B3740 + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + adds r1, r1, r4 + ldrb r1, [r1] + adds r0, r5, #0 + movs r2, #0 + bl sub_080A29AC + adds r4, r0, #0 + cmp r4, #0 + beq _08017A84 + ldr r0, [r5, #0x48] + movs r2, #0 + ldrsb r2, [r0, r2] + lsls r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r0, r3] + lsls r3, r3, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA48 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r2] + movs r1, #0x2e + ldrsh r0, [r6, r1] + ldr r1, [r6, #0x48] + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r0, r1 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r2, [r5, #0x48] + ldrb r2, [r2] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + adds r1, r1, r2 + subs r0, r0, r1 + asrs r0, r0, #1 + adds r1, r4, #0 + adds r1, #0x62 + strb r0, [r1] + movs r1, #0x32 + ldrsh r0, [r6, r1] + ldr r1, [r6, #0x48] + ldrb r1, [r1, #1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r0, r1 + movs r2, #0x32 + ldrsh r1, [r5, r2] + ldr r2, [r5, #0x48] + ldrb r2, [r2, #1] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + adds r1, r1, r2 + subs r0, r0, r1 + asrs r0, r0, #1 + adds r1, r4, #0 + adds r1, #0x63 + strb r0, [r1] + str r5, [r4, #0x54] +_08017A84: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08017A8C: .4byte gUnk_080B3740 + + thumb_func_start sub_08017A90 +sub_08017A90: @ 0x08017A90 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #0x99 + movs r1, #0 + movs r2, #0 + bl sub_080A2960 + adds r2, r0, #0 + cmp r2, #0 + bne _08017AAA + movs r0, #0 + b _08017AD0 +_08017AAA: + ldrb r0, [r4, #0x15] + lsrs r0, r0, #3 + movs r1, #3 + ands r0, r1 + strb r0, [r2, #0x14] + ldrh r0, [r4, #0x2e] + ldrh r1, [r5, #0x2e] + subs r0, r0, r1 + adds r1, r2, #0 + adds r1, #0x62 + strb r0, [r1] + ldrh r0, [r4, #0x32] + ldrh r1, [r5, #0x32] + subs r0, r0, r1 + adds r1, r2, #0 + adds r1, #0x63 + strb r0, [r1] + str r5, [r2, #0x50] + adds r0, r2, #0 +_08017AD0: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + + thumb_func_start sub_08017AD8 +sub_08017AD8: @ 0x08017AD8 + movs r0, #0 + bx lr + + thumb_func_start sub_08017ADC +sub_08017ADC: @ 0x08017ADC + push {r4, lr} + adds r4, r1, #0 + ldrb r2, [r4, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r4, #0x10] + adds r0, #0x40 + ldrb r1, [r0] + movs r0, #0x80 + adds r2, r4, #0 + adds r2, #0x41 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4, #0xa] + subs r0, #0x5f + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _08017B14 + adds r0, r4, #0 + bl sub_08081420 + cmp r0, #0 + beq _08017B14 + adds r1, r4, #0 + adds r1, #0x45 + movs r0, #0 + strb r0, [r1] +_08017B14: + movs r0, #2 + pop {r4} + pop {r1} + bx r1 + + thumb_func_start sub_08017B1C +sub_08017B1C: @ 0x08017B1C + push {lr} + adds r2, r0, #0 + adds r3, r1, #0 + ldr r0, _08017B38 @ =gUnk_03003F80 + ldrb r1, [r0, #0x1e] + movs r0, #0x60 + ands r0, r1 + cmp r0, #0 + beq _08017B3C + ldrb r1, [r3, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r3, #0x10] + b _08017B52 + .align 2, 0 +_08017B38: .4byte gUnk_03003F80 +_08017B3C: + adds r1, r2, #0 + adds r1, #0x42 + movs r0, #0x10 + strb r0, [r1] + subs r1, #5 + movs r0, #0xec + strb r0, [r1] + adds r1, #9 + movs r0, #0xa0 + lsls r0, r0, #2 + strh r0, [r1] +_08017B52: + movs r0, #1 + pop {r1} + bx r1 + + thumb_func_start sub_08017B58 +sub_08017B58: @ 0x08017B58 + push {lr} + adds r2, r1, #0 + adds r3, r2, #0 + adds r3, #0x3a + ldrb r1, [r3] + movs r0, #4 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _08017B98 + ldrb r1, [r2, #0x1d] + cmp r1, #0 + beq _08017BA2 + ldr r0, _08017B94 @ =gUnk_03003F80 + ldrb r0, [r0, #0x1d] + subs r0, r1, r0 + movs r1, #0 + strb r0, [r2, #0x1d] + lsls r0, r0, #0x18 + cmp r0, #0 + bgt _08017BA2 + strb r1, [r2, #0x1d] + movs r0, #2 + strb r0, [r2, #0xd] + adds r0, r2, #0 + adds r0, #0x46 + strh r1, [r0] + b _08017BA2 + .align 2, 0 +_08017B94: .4byte gUnk_03003F80 +_08017B98: + strb r0, [r2, #0xd] + ldrb r0, [r3] + movs r1, #4 + orrs r0, r1 + strb r0, [r3] +_08017BA2: + adds r1, r2, #0 + adds r1, #0x3d + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bne _08017BB4 + movs r0, #0xff + strb r0, [r1] +_08017BB4: + movs r0, #1 + pop {r1} + bx r1 + .align 2, 0 + + thumb_func_start sub_08017BBC +sub_08017BBC: @ 0x08017BBC + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r6, r1, #0 + adds r7, r2, #0 + ldr r5, _08017C38 @ =gUnk_03003F80 + ldr r0, [r5, #0x30] + ldr r1, _08017C3C @ =0x00001481 + ands r0, r1 + cmp r0, #0 + bne _08017BF2 + movs r0, #0x42 + movs r1, #1 + movs r2, #0 + bl sub_080A2960 + cmp r0, #0 + beq _08017BF2 + str r4, [r0, #0x54] + ldr r0, [r5, #0x30] + movs r1, #0x80 + lsls r1, r1, #3 + orrs r0, r1 + str r0, [r5, #0x30] + movs r0, #0x10 + eors r0, r7 + lsrs r0, r0, #2 + strb r0, [r4, #0x14] +_08017BF2: + adds r1, r6, #0 + adds r1, #0x44 + movs r0, #4 + strb r0, [r1] + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08017874 + adds r1, r4, #0 + adds r1, #0x45 + strb r0, [r1] + subs r1, #3 + movs r0, #0xc + strb r0, [r1] + subs r1, #5 + movs r0, #0x1e + strb r0, [r1] + adds r1, #9 + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r1] + adds r1, r6, #0 + adds r1, #0x3d + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bne _08017C2E + movs r0, #0xff + strb r0, [r1] +_08017C2E: + movs r0, #1 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08017C38: .4byte gUnk_03003F80 +_08017C3C: .4byte 0x00001481 + + thumb_func_start sub_08017C40 +sub_08017C40: @ 0x08017C40 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r6, _08017CB4 @ =gUnk_03003F80 + ldr r0, [r6, #0x30] + ldr r1, _08017CB8 @ =0x00001881 + ands r0, r1 + cmp r0, #0 + bne _08017C82 + ldrb r0, [r6, #0xc] + cmp r0, #0 + bne _08017C82 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _08017C62 + cmp r0, #0x18 + bne _08017C82 +_08017C62: + adds r1, r5, #0 + adds r1, #0x44 + movs r0, #4 + strb r0, [r1] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08017874 + adds r1, r4, #0 + adds r1, #0x45 + strb r0, [r1] + movs r0, #0x80 + lsls r0, r0, #4 + str r0, [r6, #0x30] + movs r0, #0xd + strb r0, [r6, #0xc] +_08017C82: + adds r1, r4, #0 + adds r1, #0x42 + movs r0, #0xc + strb r0, [r1] + subs r1, #5 + movs r0, #0x10 + strb r0, [r1] + adds r1, #9 + movs r0, #0xa0 + lsls r0, r0, #2 + strh r0, [r1] + adds r1, r5, #0 + adds r1, #0x3d + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bne _08017CAA + movs r0, #0xff + strb r0, [r1] +_08017CAA: + movs r0, #1 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08017CB4: .4byte gUnk_03003F80 +_08017CB8: .4byte 0x00001881 + + thumb_func_start sub_08017CBC +sub_08017CBC: @ 0x08017CBC + push {r4, r5, lr} + adds r4, r0, #0 + adds r3, r1, #0 + movs r5, #0x10 + eors r2, r5 + adds r0, r2, #0 + subs r0, #0xc + movs r2, #0x1f + ands r0, r2 + ldrb r1, [r3, #0x15] + subs r1, r1, r0 + ands r1, r2 + cmp r1, #0x18 + bhi _08017CF0 + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0xf4 + strb r0, [r1] + adds r1, r3, #0 + adds r1, #0x3d + strb r0, [r1] + adds r0, r4, #0 + adds r1, r3, #0 + bl sub_08017940 + b _08017D1E +_08017CF0: + adds r1, r3, #0 + adds r1, #0x42 + movs r0, #0xc + strb r0, [r1] + adds r0, r3, #0 + adds r0, #0x3d + strb r5, [r0] + adds r1, #1 + movs r0, #0xf0 + strb r0, [r1] + adds r1, #3 + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r1] + adds r1, r4, #0 + adds r1, #0x3d + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bne _08017D1E + movs r0, #0xff + strb r0, [r1] +_08017D1E: + movs r0, #1 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + + thumb_func_start sub_08017D28 +sub_08017D28: @ 0x08017D28 + push {lr} + adds r3, r0, #0 + ldr r2, _08017D68 @ =gUnk_03003F80 + movs r0, #1 + strb r0, [r2, #0x1a] + adds r2, r3, #0 + adds r2, #0x7a + movs r0, #0x96 + lsls r0, r0, #2 + strh r0, [r2] + subs r2, #0x38 + movs r0, #0xc + strb r0, [r2] + subs r2, #5 + movs r0, #0x10 + strb r0, [r2] + adds r2, #9 + movs r0, #0xa0 + lsls r0, r0, #2 + strh r0, [r2] + adds r1, #0x3d + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bne _08017D60 + movs r0, #0xff + strb r0, [r1] +_08017D60: + movs r0, #1 + pop {r1} + bx r1 + .align 2, 0 +_08017D68: .4byte gUnk_03003F80 + + thumb_func_start sub_08017D6C +sub_08017D6C: @ 0x08017D6C + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r6, r2, #0 + movs r0, #0x10 + eors r0, r6 + subs r0, #5 + movs r2, #0x1f + ands r0, r2 + ldrb r1, [r4, #0x14] + lsls r1, r1, #3 + subs r1, r1, r0 + ands r1, r2 + cmp r1, #0xa + bls _08017D98 + adds r0, r5, #0 + adds r0, #0x40 + ldrb r0, [r0] + ldr r1, _08017D94 @ =0x00000AC2 + b _08017DB0 + .align 2, 0 +_08017D94: .4byte 0x00000AC2 +_08017D98: + adds r1, r4, #0 + adds r1, #0x41 + movs r0, #0xcb + strb r0, [r1] + adds r1, r5, #0 + adds r1, #0x40 + ldrb r0, [r1] + adds r2, r4, #0 + adds r2, #0x79 + strb r0, [r2] + ldrb r0, [r1] + ldr r1, _08017DCC @ =0x00000AE4 +_08017DB0: + adds r0, r0, r1 + lsls r3, r0, #1 + adds r3, r3, r0 + lsls r3, r3, #2 + ldr r0, _08017DD0 @ =gUnk_080B7B74 + adds r3, r3, r0 + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r6, #0 + bl sub_08018308 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08017DCC: .4byte 0x00000AE4 +_08017DD0: .4byte gUnk_080B7B74 + + thumb_func_start sub_08017DD4 +sub_08017DD4: @ 0x08017DD4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r8, r0 + adds r5, r1, #0 + adds r7, r2, #0 + mov r1, r8 + adds r1, #0x41 + movs r0, #0 + strb r0, [r1] + adds r1, r5, #0 + adds r1, #0x44 + ldrb r2, [r1] + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + beq _08017DFC + movs r0, #0x7f + ands r0, r2 + b _08017DFE +_08017DFC: + movs r0, #4 +_08017DFE: + strb r0, [r1] + ldr r4, _08017E34 @ =gUnk_03001160 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08017874 + adds r1, r4, #0 + adds r1, #0x45 + strb r0, [r1] + adds r2, r5, #0 + adds r2, #0x3d + movs r0, #0xf4 + strb r0, [r2] + ldr r0, _08017E38 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + adds r6, r2, #0 + cmp r0, #0 + bne _08017E3C + bl sub_08079D84 + mov r1, r8 + adds r1, #0x3d + movs r0, #0x5a + strb r0, [r1] + b _08017E6E + .align 2, 0 +_08017E34: .4byte gUnk_03001160 +_08017E38: .4byte gUnk_03003F80 +_08017E3C: + adds r0, r5, #0 + adds r0, #0x40 + ldrb r0, [r0] + movs r1, #0x80 + orrs r0, r1 + adds r1, r4, #0 + adds r1, #0x41 + strb r0, [r1] + subs r1, #4 + movs r0, #0xc + strb r0, [r1] + adds r2, r4, #0 + adds r2, #0x42 + movs r1, #0x10 + movs r0, #0x10 + strb r0, [r2] + eors r7, r1 + adds r0, r4, #0 + adds r0, #0x3e + strb r7, [r0] + adds r1, r4, #0 + adds r1, #0x46 + movs r0, #0xa0 + lsls r0, r0, #2 + strh r0, [r1] +_08017E6E: + ldrb r1, [r6] + movs r0, #0 + ldrsb r0, [r6, r0] + cmp r0, #0 + bne _08017E7C + movs r0, #0xff + strb r0, [r6] +_08017E7C: + movs r0, #1 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + + thumb_func_start sub_08017E88 +sub_08017E88: @ 0x08017E88 + push {lr} + adds r3, r0, #0 + adds r3, #0x42 + movs r2, #2 + strb r2, [r3] + adds r0, #0x46 + movs r2, #0xa0 + lsls r2, r2, #2 + strh r2, [r0] + adds r1, #0x3d + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bne _08017EAA + movs r0, #0xff + strb r0, [r1] +_08017EAA: + movs r0, #1 + pop {r1} + bx r1 + + thumb_func_start sub_08017EB0 +sub_08017EB0: @ 0x08017EB0 + push {r4, r5, r6, r7, lr} + adds r2, r0, #0 + adds r7, r1, #0 + adds r5, r7, #0 + adds r5, #0x44 + ldrb r0, [r5] + cmp r0, #0 + bne _08017EC4 + movs r0, #0 + b _08017F36 +_08017EC4: + ldr r6, _08017EF8 @ =gUnk_03001160 + cmp r2, r6 + bne _08017EFC + ldrb r4, [r5] + movs r0, #8 + strb r0, [r5] + adds r0, r6, #0 + adds r1, r7, #0 + bl sub_08017874 + adds r1, r6, #0 + adds r1, #0x45 + strb r0, [r1] + strb r4, [r5] + subs r1, #3 + movs r0, #0xc + strb r0, [r1] + subs r1, #5 + movs r0, #0x10 + strb r0, [r1] + adds r1, #9 + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r1] + b _08017F22 + .align 2, 0 +_08017EF8: .4byte gUnk_03001160 +_08017EFC: + ldrh r1, [r2, #8] + movs r0, #0xa1 + lsls r0, r0, #3 + cmp r1, r0 + bne _08017F22 + adds r1, r2, #0 + adds r1, #0x42 + movs r0, #8 + strb r0, [r1] + subs r1, #5 + movs r0, #0xfa + strb r0, [r1] + adds r1, #9 + adds r0, #0x86 + strh r0, [r1] + adds r1, r6, #0 + adds r1, #0x3d + movs r0, #0x80 + strb r0, [r1] +_08017F22: + adds r1, r7, #0 + adds r1, #0x3d + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bne _08017F34 + movs r0, #0xff + strb r0, [r1] +_08017F34: + movs r0, #1 +_08017F36: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + + thumb_func_start sub_08017F3C +sub_08017F3C: @ 0x08017F3C + movs r0, #1 + bx lr + + thumb_func_start sub_08017F40 +sub_08017F40: @ 0x08017F40 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r0, r5, #0 + adds r0, #0x43 + ldrb r6, [r0] + cmp r6, #0 + bne _0801800A + ldr r0, _08017FAC @ =gUnk_03001160 + cmp r4, r0 + bne _08018002 + bl sub_08079F8C + cmp r0, #0 + beq _0801801E + ldr r2, _08017FB0 @ =gUnk_03003F80 + ldr r3, [r2, #0x30] + movs r0, #0x80 + ands r0, r3 + cmp r0, #0 + bne _0801801E + adds r0, r2, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + bne _0801801E + ldrb r1, [r2, #0x1a] + movs r0, #0x80 + orrs r1, r0 + strb r1, [r2, #0x1a] + ldrb r1, [r2, #0xa] + orrs r0, r1 + strb r0, [r2, #0xa] + movs r0, #0x10 + orrs r3, r0 + str r3, [r2, #0x30] + strb r6, [r2, #2] + ldrb r0, [r5, #8] + cmp r0, #3 + bne _08017FB4 + ldrb r0, [r5, #9] + cmp r0, #0x4e + beq _08017F9A + cmp r0, #0x50 + bne _08017FB4 +_08017F9A: + strh r6, [r4, #0x36] + movs r3, #0x80 + lsls r3, r3, #9 + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0 + bl sub_0806FA48 + b _08017FC2 + .align 2, 0 +_08017FAC: .4byte gUnk_03001160 +_08017FB0: .4byte gUnk_03003F80 +_08017FB4: + movs r3, #0x80 + lsls r3, r3, #9 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0 + bl sub_0806FA48 +_08017FC2: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r2, [r5, #0x19] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r4, #0x19] + ldrb r0, [r5, #0x1b] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r4, #0x1b] + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #0x1b] + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0xff + strb r0, [r1] + adds r1, r5, #0 + adds r1, #0x3d + movs r0, #0xf8 + strb r0, [r1] + bl sub_08077B2C + movs r0, #1 + b _08018020 +_08018002: + adds r0, r4, #0 + adds r0, #0x45 + strb r6, [r0] + b _0801801E +_0801800A: + ldrb r0, [r5, #8] + cmp r0, #3 + bne _0801801E + ldr r0, _08018028 @ =gUnk_03001160 + cmp r4, r0 + bne _0801801E + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08004484 +_0801801E: + movs r0, #0 +_08018020: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08018028: .4byte gUnk_03001160 + + thumb_func_start sub_0801802C +sub_0801802C: @ 0x0801802C + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + ldrb r0, [r4, #8] + cmp r0, #1 + bne _08018058 + bl sub_08079F8C + cmp r0, #0 + beq _08018090 + movs r0, #0x10 + eors r0, r6 + ldrb r1, [r5, #0x14] + lsls r1, r1, #2 + subs r0, r0, r1 + adds r0, #5 + movs r1, #0x1f + ands r0, r1 + cmp r0, #0xa + bhi _08018090 + b _0801807A +_08018058: + cmp r0, #8 + bne _08018086 + ldrb r0, [r4, #0x15] + movs r1, #0x10 + eors r1, r0 + ldrb r0, [r5, #0x14] + lsls r0, r0, #2 + subs r1, r1, r0 + adds r1, #5 + movs r0, #0x1f + ands r1, r0 + cmp r1, #0xa + bgt _08018090 + adds r1, r4, #0 + adds r1, #0x45 + movs r0, #0 + strb r0, [r1] +_0801807A: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080180BC + movs r0, #1 + b _080180AE +_08018086: + adds r1, r4, #0 + adds r1, #0x45 + movs r0, #0 + strb r0, [r1] + b _080180AE +_08018090: + adds r0, r4, #0 + adds r0, #0x40 + ldrb r0, [r0] + ldr r1, _080180B4 @ =0x000011AA + adds r0, r0, r1 + lsls r3, r0, #1 + adds r3, r3, r0 + lsls r3, r3, #2 + ldr r0, _080180B8 @ =gUnk_080B7B74 + adds r3, r3, r0 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + bl sub_08018308 +_080180AE: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_080180B4: .4byte 0x000011AA +_080180B8: .4byte gUnk_080B7B74 + + thumb_func_start sub_080180BC +sub_080180BC: @ 0x080180BC + push {lr} + adds r2, r0, #0 + adds r2, #0x3d + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0 + bne _080180CE + movs r0, #0xe2 + strb r0, [r2] +_080180CE: + adds r2, r1, #0 + adds r2, #0x3d + ldrb r3, [r2] + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0 + bne _080180E0 + movs r0, #0xff + strb r0, [r2] +_080180E0: + movs r0, #0xff + strb r0, [r1, #0xd] + pop {r0} + bx r0 + + thumb_func_start sub_080180E8 +sub_080180E8: @ 0x080180E8 + push {r4, lr} + mov ip, r0 + adds r4, r1, #0 + movs r0, #0x10 + eors r0, r2 + adds r2, r0, #0 + subs r2, #0xc + movs r1, #0x1f + ands r2, r1 + ldrb r0, [r4, #0x15] + subs r0, r0, r2 + ands r0, r1 + cmp r0, #0x18 + bls _0801812C + mov r0, ip + adds r0, #0x40 + ldrb r0, [r0] + ldr r1, _08018124 @ =0x00000352 + adds r0, r0, r1 + lsls r3, r0, #1 + adds r3, r3, r0 + lsls r3, r3, #2 + ldr r0, _08018128 @ =gUnk_080B7B74 + adds r3, r3, r0 + mov r0, ip + adds r1, r4, #0 + bl sub_08018308 + b _08018162 + .align 2, 0 +_08018124: .4byte 0x00000352 +_08018128: .4byte gUnk_080B7B74 +_0801812C: + mov r0, ip + adds r0, #0x42 + movs r2, #0xc + strb r2, [r0] + subs r0, #5 + movs r1, #0xf0 + strb r1, [r0] + mov r3, ip + adds r3, #0x46 + movs r0, #0xa0 + lsls r0, r0, #2 + strh r0, [r3] + adds r0, r4, #0 + adds r0, #0x42 + strb r2, [r0] + subs r0, #5 + strb r1, [r0] + adds r1, r4, #0 + adds r1, #0x46 + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r1] + mov r0, ip + adds r1, r4, #0 + bl sub_08017940 + movs r0, #1 +_08018162: + pop {r4} + pop {r1} + bx r1 + + thumb_func_start sub_08018168 +sub_08018168: @ 0x08018168 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + adds r0, r6, #0 + adds r0, #0x43 + ldrb r5, [r0] + cmp r5, #0 + bne _08018208 + ldr r0, _080181F4 @ =gUnk_03001160 + cmp r4, r0 + bne _08018200 + bl sub_08079F8C + cmp r0, #0 + beq _0801821C + ldr r2, _080181F8 @ =gUnk_03003F80 + ldr r3, [r2, #0x30] + ldr r0, _080181FC @ =0x00040080 + ands r0, r3 + cmp r0, #0 + bne _0801821C + adds r0, r2, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + bne _0801821C + ldrb r1, [r2, #0x1a] + movs r0, #0x80 + orrs r1, r0 + strb r1, [r2, #0x1a] + ldrb r1, [r2, #0xa] + orrs r0, r1 + strb r0, [r2, #0xa] + movs r0, #0x80 + lsls r0, r0, #1 + orrs r3, r0 + str r3, [r2, #0x30] + strb r5, [r2, #2] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r2, [r6, #0x19] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r4, #0x19] + ldrb r0, [r6, #0x1b] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r4, #0x1b] + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #0x1b] + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0xff + strb r0, [r1] + adds r1, r6, #0 + adds r1, #0x3d + movs r0, #0xf8 + strb r0, [r1] + bl sub_08077B20 + movs r0, #1 + b _0801821E + .align 2, 0 +_080181F4: .4byte gUnk_03001160 +_080181F8: .4byte gUnk_03003F80 +_080181FC: .4byte 0x00040080 +_08018200: + adds r0, r4, #0 + adds r0, #0x45 + strb r5, [r0] + b _0801821C +_08018208: + ldrb r0, [r6, #8] + cmp r0, #3 + bne _0801821C + ldr r0, _08018224 @ =gUnk_03001160 + cmp r4, r0 + bne _0801821C + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_08004484 +_0801821C: + movs r0, #0 +_0801821E: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08018224: .4byte gUnk_03001160 + + thumb_func_start sub_08018228 +sub_08018228: @ 0x08018228 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r0, _0801824C @ =gUnk_03001160 + cmp r4, r0 + bne _08018244 + bl sub_08079F8C + cmp r0, #0 + beq _08018244 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08004484 +_08018244: + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0801824C: .4byte gUnk_03001160 + + thumb_func_start sub_08018250 +sub_08018250: @ 0x08018250 + push {r4, lr} + adds r3, r0, #0 + adds r2, r3, #0 + adds r2, #0x3d + movs r0, #1 + rsbs r0, r0, #0 + adds r4, r0, #0 + movs r0, #0xff + strb r0, [r2] + ldrb r0, [r3, #0x15] + cmp r0, #0 + bne _08018278 + adds r2, r1, #0 + adds r2, #0x3d + movs r0, #0x10 + strb r0, [r2] + adds r0, r3, #0 + bl sub_08017A90 + b _08018280 +_08018278: + adds r1, #0x3d + ldrb r0, [r1] + orrs r0, r4 + strb r0, [r1] +_08018280: + movs r0, #1 + pop {r4} + pop {r1} + bx r1 + + thumb_func_start sub_08018288 +sub_08018288: @ 0x08018288 + push {lr} + adds r1, r0, #0 + ldr r0, _08018298 @ =gUnk_03001160 + cmp r1, r0 + bne _0801829C + bl sub_0807AFE8 + b _080182A2 + .align 2, 0 +_08018298: .4byte gUnk_03001160 +_0801829C: + adds r1, #0x45 + movs r0, #0 + strb r0, [r1] +_080182A2: + movs r0, #1 + pop {r1} + bx r1 + + thumb_func_start sub_080182A8 +sub_080182A8: @ 0x080182A8 + push {r4, lr} + adds r4, r0, #0 + adds r0, r1, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + bne _080182DA + adds r2, r4, #0 + adds r2, #0x3d + ldrb r3, [r2] + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0 + bne _080182C8 + movs r0, #0xff + strb r0, [r2] +_080182C8: + adds r1, #0x3d + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bne _08018300 + movs r0, #0xff + strb r0, [r1] + b _08018300 +_080182DA: + adds r0, r4, #0 + adds r0, #0x40 + ldrb r0, [r0] + ldr r3, _080182F8 @ =0x0000092A + adds r0, r0, r3 + lsls r3, r0, #1 + adds r3, r3, r0 + lsls r3, r3, #2 + ldr r0, _080182FC @ =gUnk_080B7B74 + adds r3, r3, r0 + adds r0, r4, #0 + bl sub_08018308 + b _08018302 + .align 2, 0 +_080182F8: .4byte 0x0000092A +_080182FC: .4byte gUnk_080B7B74 +_08018300: + movs r0, #1 +_08018302: + pop {r4} + pop {r1} + bx r1 + + thumb_func_start sub_08018308 +sub_08018308: @ 0x08018308 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + adds r4, r1, #0 + mov r8, r2 + adds r5, r3, #0 + movs r3, #0 + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _08018338 + ldrb r0, [r4, #8] + cmp r0, #3 + bne _08018338 + ldr r0, _0801835C @ =gUnk_03001160 + cmp r6, r0 + bne _08018338 + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08004484 + movs r3, #1 +_08018338: + ldrh r1, [r6, #8] + movs r0, #0xa1 + lsls r0, r0, #3 + cmp r1, r0 + bne _08018360 + ldr r0, _0801835C @ =gUnk_03001160 + ldrb r2, [r0, #0x14] + mov r0, r8 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + lsrs r0, r0, #2 + movs r1, #4 + eors r0, r1 + cmp r2, r0 + bne _08018360 + movs r0, #0 + b _080184F0 + .align 2, 0 +_0801835C: .4byte gUnk_03001160 +_08018360: + cmp r3, #0 + bne _08018408 + ldrb r0, [r5] + lsls r0, r0, #4 + adds r1, r6, #0 + adds r1, #0x46 + strh r0, [r1] + ldrb r1, [r5, #1] + adds r2, r6, #0 + adds r2, #0x3d + strb r1, [r2] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _08018382 + movs r0, #0xff + orrs r0, r1 + strb r0, [r2] +_08018382: + ldrb r0, [r5, #2] + adds r1, r6, #0 + adds r1, #0x42 + strb r0, [r1] + ldrb r1, [r5, #3] + adds r0, r4, #0 + adds r0, #0x44 + strb r1, [r0] + movs r7, #0xff + ldrb r0, [r5, #3] + cmp r0, #0 + beq _080183A8 + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_08017874 + adds r1, r6, #0 + adds r1, #0x45 + strb r0, [r1] +_080183A8: + adds r1, r6, #0 + adds r1, #0x43 + ldrb r0, [r5, #4] + ldrb r2, [r1] + cmp r0, r2 + bls _080183B6 + strb r0, [r1] +_080183B6: + ldrb r0, [r5, #5] + lsls r0, r0, #4 + adds r1, r4, #0 + adds r1, #0x46 + strh r0, [r1] + ldrb r1, [r5, #6] + adds r2, r4, #0 + adds r2, #0x3d + strb r1, [r2] + movs r0, #6 + ldrsb r0, [r5, r0] + cmp r0, #0 + bne _080183D6 + movs r0, #0xff + orrs r0, r1 + strb r0, [r2] +_080183D6: + ldrb r0, [r5, #7] + adds r1, r4, #0 + adds r1, #0x42 + strb r0, [r1] + ldrb r1, [r5, #8] + adds r0, r6, #0 + adds r0, #0x44 + strb r1, [r0] + ands r7, r1 + cmp r7, #0 + beq _080183FA + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08017874 + adds r1, r4, #0 + adds r1, #0x45 + strb r0, [r1] +_080183FA: + adds r1, r4, #0 + adds r1, #0x43 + ldrb r0, [r5, #9] + ldrb r2, [r1] + cmp r0, r2 + bls _08018408 + strb r0, [r1] +_08018408: + ldrb r1, [r5, #0xa] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0801841A + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_08017940 +_0801841A: + ldrb r2, [r5, #0xa] + movs r0, #2 + ands r0, r2 + cmp r0, #0 + beq _0801842C + adds r1, r6, #0 + adds r1, #0x41 + movs r0, #0xca + strb r0, [r1] +_0801842C: + movs r0, #4 + ands r0, r2 + cmp r0, #0 + beq _0801847E + ldr r2, [r4, #0x50] + cmp r2, #0 + beq _0801847E + adds r1, r2, #0 + adds r1, #0x41 + movs r0, #0xcc + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x3d + ldrb r0, [r0] + subs r1, #4 + strb r0, [r1] + adds r0, r2, #0 + adds r0, #0x3e + mov r1, r8 + strb r1, [r0] + adds r0, r4, #0 + adds r0, #0x42 + ldrb r0, [r0] + adds r1, r2, #0 + adds r1, #0x42 + strb r0, [r1] + adds r1, #1 + ldrb r0, [r1] + cmp r0, #0 + bne _08018470 + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + strb r0, [r1] +_08018470: + adds r0, r4, #0 + adds r0, #0x46 + ldrh r0, [r0] + adds r1, r2, #0 + adds r1, #0x46 + strh r0, [r1] + str r6, [r2, #0x4c] +_0801847E: + ldrb r1, [r6, #8] + cmp r1, #8 + bne _080184DA + ldrb r0, [r6, #9] + cmp r0, #1 + bne _0801849A + ldrb r0, [r5, #8] + cmp r0, #0 + beq _080184DA + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_080179EC + b _080184DA +_0801849A: + cmp r0, #4 + bne _080184BA + adds r0, r6, #0 + adds r0, #0x44 + ldrb r0, [r0] + cmp r0, #0 + bne _080184B0 + ldrb r0, [r5, #0xa] + ands r1, r0 + cmp r1, #0 + beq _080184DA +_080184B0: + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_08017A90 + b _080184DA +_080184BA: + cmp r0, #3 + bne _080184CE + ldrb r0, [r5, #9] + cmp r0, #0 + beq _080184DA + adds r0, r4, #0 + movs r1, #0xfe + bl sub_0800449C + b _080184DA +_080184CE: + cmp r0, #5 + bne _080184DA + ldr r0, _080184FC @ =gUnk_03001160 + adds r0, #0x3d + movs r1, #0x80 + strb r1, [r0] +_080184DA: + ldrb r0, [r4, #8] + cmp r0, #8 + bne _080184EE + ldrb r0, [r6, #9] + cmp r0, #5 + bne _080184EE + ldr r0, _080184FC @ =gUnk_03001160 + adds r0, #0x3d + movs r1, #0x80 + strb r1, [r0] +_080184EE: + movs r0, #1 +_080184F0: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080184FC: .4byte gUnk_03001160 diff --git a/asm/code_080B1520.s b/asm/code_080B1520.s new file mode 100644 index 00000000..e0e5eb8a --- /dev/null +++ b/asm/code_080B1520.s @@ -0,0 +1,551 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_080B1520 +sub_080B1520: @ 0x080B1520 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r2, #0 + cmp r0, #4 + bne _080B153C + ldr r1, _080B1534 @ =gUnk_02036A50 + ldr r0, _080B1538 @ =gUnk_08DE7D40 + str r0, [r1] + b _080B1558 + .align 2, 0 +_080B1534: .4byte gUnk_02036A50 +_080B1538: .4byte gUnk_08DE7D40 +_080B153C: + cmp r0, #0x40 + bne _080B1550 + ldr r1, _080B1548 @ =gUnk_02036A50 + ldr r0, _080B154C @ =gUnk_08DE7D4C + str r0, [r1] + b _080B1558 + .align 2, 0 +_080B1548: .4byte gUnk_02036A50 +_080B154C: .4byte gUnk_08DE7D4C +_080B1550: + ldr r1, _080B1560 @ =gUnk_02036A50 + ldr r0, _080B1564 @ =gUnk_08DE7D40 + str r0, [r1] + movs r2, #1 +_080B1558: + adds r0, r2, #0 + pop {r1} + bx r1 + .align 2, 0 +_080B1560: .4byte gUnk_02036A50 +_080B1564: .4byte gUnk_08DE7D40 + + thumb_func_start sub_080B1568 +sub_080B1568: @ 0x080B1568 + push {r4, r5, r6, lr} + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + ldr r4, _080B15C8 @ =0x04000208 + ldrh r3, [r4] + adds r6, r3, #0 + movs r3, #0 + strh r3, [r4] + ldr r5, _080B15CC @ =0x04000204 + ldrh r4, [r5] + ldr r3, _080B15D0 @ =0x0000F8FF + ands r4, r3 + ldr r3, _080B15D4 @ =gUnk_02036A50 + ldr r3, [r3] + ldrh r3, [r3, #6] + orrs r4, r3 + strh r4, [r5] + ldr r3, _080B15D8 @ =0x040000D4 + str r0, [r3] + ldr r0, _080B15DC @ =0x040000D8 + str r1, [r0] + ldr r1, _080B15E0 @ =0x040000DC + movs r0, #0x80 + lsls r0, r0, #0x18 + orrs r2, r0 + str r2, [r1] + adds r1, #2 + movs r2, #0x80 + lsls r2, r2, #8 + adds r0, r2, #0 + ldrh r1, [r1] + ands r0, r1 + cmp r0, #0 + beq _080B15BC + ldr r2, _080B15E4 @ =0x040000DE + movs r0, #0x80 + lsls r0, r0, #8 + adds r1, r0, #0 +_080B15B4: + ldrh r0, [r2] + ands r0, r1 + cmp r0, #0 + bne _080B15B4 +_080B15BC: + ldr r0, _080B15C8 @ =0x04000208 + strh r6, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080B15C8: .4byte 0x04000208 +_080B15CC: .4byte 0x04000204 +_080B15D0: .4byte 0x0000F8FF +_080B15D4: .4byte gUnk_02036A50 +_080B15D8: .4byte 0x040000D4 +_080B15DC: .4byte 0x040000D8 +_080B15E0: .4byte 0x040000DC +_080B15E4: .4byte 0x040000DE + + thumb_func_start sub_080B15E8 +sub_080B15E8: @ 0x080B15E8 + push {r4, r5, r6, lr} + sub sp, #0x88 + adds r5, r1, #0 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + ldr r0, _080B1600 @ =gUnk_02036A50 + ldr r0, [r0] + ldrh r0, [r0, #4] + cmp r3, r0 + blo _080B1608 + ldr r0, _080B1604 @ =0x000080FF + b _080B168A + .align 2, 0 +_080B1600: .4byte gUnk_02036A50 +_080B1604: .4byte 0x000080FF +_080B1608: + ldr r0, _080B1694 @ =gUnk_02036A50 + adds r6, r0, #0 + ldr r0, [r0] + ldrb r1, [r0, #8] + lsls r0, r1, #1 + mov r4, sp + adds r2, r0, r4 + adds r2, #2 + movs r4, #0 + cmp r4, r1 + bhs _080B1632 +_080B161E: + strh r3, [r2] + subs r2, #2 + lsrs r3, r3, #1 + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, [r6] + ldrb r0, [r0, #8] + cmp r4, r0 + blo _080B161E +_080B1632: + movs r0, #1 + strh r0, [r2] + subs r2, #2 + strh r0, [r2] + movs r4, #0xd0 + lsls r4, r4, #0x14 + ldr r0, _080B1694 @ =gUnk_02036A50 + ldr r0, [r0] + ldrb r2, [r0, #8] + adds r2, #3 + mov r0, sp + adds r1, r4, #0 + bl sub_080B1568 + adds r0, r4, #0 + mov r1, sp + movs r2, #0x44 + bl sub_080B1568 + add r2, sp, #8 + adds r5, #6 + movs r4, #0 + movs r6, #1 +_080B1660: + movs r1, #0 + movs r3, #0 +_080B1664: + lsls r1, r1, #0x11 + ldrh r0, [r2] + ands r0, r6 + lsrs r1, r1, #0x10 + orrs r1, r0 + adds r2, #2 + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0xf + bls _080B1664 + strh r1, [r5] + subs r5, #2 + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _080B1660 + movs r0, #0 +_080B168A: + add sp, #0x88 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_080B1694: .4byte gUnk_02036A50 + + thumb_func_start sub_080B1698 +sub_080B1698: @ 0x080B1698 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + movs r2, #1 + bl sub_080B16AC + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + pop {r1} + bx r1 + + thumb_func_start sub_080B16AC +sub_080B16AC: @ 0x080B16AC + push {r4, r5, r6, r7, lr} + sub sp, #0xb0 + adds r5, r1, #0 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + lsls r2, r2, #0x18 + lsrs r7, r2, #0x18 + ldr r0, _080B16C8 @ =gUnk_02036A50 + ldr r0, [r0] + ldrh r0, [r0, #4] + cmp r1, r0 + blo _080B16D0 + ldr r0, _080B16CC @ =0x000080FF + b _080B1804 + .align 2, 0 +_080B16C8: .4byte gUnk_02036A50 +_080B16CC: .4byte 0x000080FF +_080B16D0: + ldr r0, _080B1710 @ =gUnk_02036A50 + ldr r0, [r0] + ldrb r0, [r0, #8] + lsls r0, r0, #1 + mov r2, sp + adds r3, r0, r2 + adds r3, #0x84 + movs r0, #0 + strh r0, [r3] + subs r3, #2 + movs r4, #0 +_080B16E6: + ldrh r2, [r5] + adds r5, #2 + movs r0, #0 +_080B16EC: + strh r2, [r3] + subs r3, #2 + lsrs r2, r2, #1 + adds r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xf + bls _080B16EC + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #3 + bls _080B16E6 + movs r4, #0 + ldr r0, _080B1710 @ =gUnk_02036A50 + adds r2, r0, #0 + ldr r0, [r0] + b _080B1722 + .align 2, 0 +_080B1710: .4byte gUnk_02036A50 +_080B1714: + strh r1, [r3] + subs r3, #2 + lsrs r1, r1, #1 + adds r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + ldr r0, [r2] +_080B1722: + ldrb r0, [r0, #8] + cmp r4, r0 + blo _080B1714 + movs r0, #0 + strh r0, [r3] + subs r3, #2 + movs r6, #1 + strh r6, [r3] + movs r4, #0xd0 + lsls r4, r4, #0x14 + ldr r0, _080B1794 @ =gUnk_02036A50 + ldr r0, [r0] + ldrb r2, [r0, #8] + adds r2, #0x43 + mov r0, sp + adds r1, r4, #0 + bl sub_080B1568 + movs r5, #0 + add r2, sp, #0xa4 + strh r5, [r2] + mov r1, sp + adds r1, #0xa6 + ldr r0, _080B1798 @ =0x04000006 + ldrh r0, [r0] + strh r0, [r1] + add r0, sp, #0xac + str r5, [r0] + ldrh r0, [r2] + cmp r0, #0 + bne _080B1768 + ldrh r0, [r4] + ands r0, r6 + cmp r0, #0 + bne _080B17F8 +_080B1768: + add r3, sp, #0xa8 + ldr r0, _080B1798 @ =0x04000006 + ldrh r0, [r0] + strh r0, [r3] + mov r4, sp + adds r4, #0xa6 + ldrh r1, [r3] + ldrh r0, [r4] + cmp r1, r0 + beq _080B17E2 + ldrh r1, [r3] + ldrh r0, [r4] + cmp r1, r0 + bls _080B179C + add r2, sp, #0xac + ldrh r1, [r3] + ldrh r0, [r4] + subs r1, r1, r0 + ldr r0, [r2] + adds r1, r1, r0 + str r1, [r2] + b _080B17B2 + .align 2, 0 +_080B1794: .4byte gUnk_02036A50 +_080B1798: .4byte 0x04000006 +_080B179C: + add r2, sp, #0xac + add r0, sp, #0xa8 + ldrh r0, [r0] + adds r0, #0xe4 + mov r1, sp + adds r1, #0xa6 + ldrh r1, [r1] + subs r0, r0, r1 + ldr r1, [r2] + adds r0, r0, r1 + str r0, [r2] +_080B17B2: + add r0, sp, #0xac + ldr r0, [r0] + cmp r0, #0x88 + bls _080B17D8 + add r0, sp, #0xa4 + ldrh r0, [r0] + cmp r0, #0 + bne _080B1802 + movs r0, #0xd0 + lsls r0, r0, #0x14 + ldrh r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _080B1802 + ldr r5, _080B17D4 @ =0x0000C001 + b _080B1802 + .align 2, 0 +_080B17D4: .4byte 0x0000C001 +_080B17D8: + mov r0, sp + adds r0, #0xa6 + add r1, sp, #0xa8 + ldrh r1, [r1] + strh r1, [r0] +_080B17E2: + add r2, sp, #0xa4 + ldrh r0, [r2] + cmp r0, #0 + bne _080B1768 + movs r0, #0xd0 + lsls r0, r0, #0x14 + movs r1, #1 + ldrh r0, [r0] + ands r1, r0 + cmp r1, #0 + beq _080B1768 +_080B17F8: + ldrh r0, [r2] + adds r0, #1 + strh r0, [r2] + cmp r7, #0 + bne _080B1768 +_080B1802: + adds r0, r5, #0 +_080B1804: + add sp, #0xb0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + + thumb_func_start sub_080B180C +sub_080B180C: @ 0x080B180C + push {r4, r5, lr} + sub sp, #8 + adds r4, r1, #0 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + movs r5, #0 + ldr r0, _080B1828 @ =gUnk_02036A50 + ldr r0, [r0] + ldrh r0, [r0, #4] + cmp r1, r0 + blo _080B1830 + ldr r0, _080B182C @ =0x000080FF + b _080B185A + .align 2, 0 +_080B1828: .4byte gUnk_02036A50 +_080B182C: .4byte 0x000080FF +_080B1830: + adds r0, r1, #0 + mov r1, sp + bl sub_080B15E8 + mov r2, sp + movs r3, #0 + b _080B1848 +_080B183E: + adds r0, r3, #1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #3 + bhi _080B1858 +_080B1848: + ldrh r1, [r4] + ldrh r0, [r2] + adds r2, #2 + adds r4, #2 + cmp r1, r0 + beq _080B183E + movs r5, #0x80 + lsls r5, r5, #8 +_080B1858: + adds r0, r5, #0 +_080B185A: + add sp, #8 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + + thumb_func_start sub_080B1864 +sub_080B1864: @ 0x080B1864 + push {r4, r5, r6, lr} + adds r5, r1, #0 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + movs r6, #0 + b _080B1876 +_080B1870: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_080B1876: + cmp r6, #2 + bhi _080B189A + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080B1698 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0 + bne _080B1870 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080B180C + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0 + bne _080B1870 +_080B189A: + adds r0, r2, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + + thumb_func_start sub_080B18A4 +sub_080B18A4: @ 0x080B18A4 + push {lr} + adds r3, r1, #0 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r0, _080B18CC @ =gUnk_02036A50 + ldr r0, [r0] + ldr r1, [r0] + movs r0, #0x80 + lsls r0, r0, #2 + cmp r1, r0 + beq _080B18D0 + adds r0, r2, #0 + adds r1, r3, #0 + movs r2, #0 + bl sub_080B16AC + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + b _080B18D2 + .align 2, 0 +_080B18CC: .4byte gUnk_02036A50 +_080B18D0: + ldr r0, _080B18D8 @ =0x00008080 +_080B18D2: + pop {r1} + bx r1 + .align 2, 0 +_080B18D8: .4byte 0x00008080 + + thumb_func_start sub_080B18DC +sub_080B18DC: @ 0x080B18DC + push {r4, r5, r6, lr} + adds r5, r1, #0 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + movs r6, #0 + b _080B18EE +_080B18E8: + adds r0, r6, #1 + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 +_080B18EE: + cmp r6, #2 + bhi _080B1912 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080B18A4 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0 + bne _080B18E8 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080B180C + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + cmp r2, #0 + bne _080B18E8 +_080B1912: + adds r0, r2, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 + \ No newline at end of file diff --git a/asm/crt0.s b/asm/crt0.s new file mode 100644 index 00000000..304a5bb4 --- /dev/null +++ b/asm/crt0.s @@ -0,0 +1,32 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + arm_func_start __start +__start: @ 0x08000000 + b _080000C0 +_08000004: + .include "asm/rom_header.inc" +_080000C0: + mov r0, #0x12 + msr cpsr_fc, r0 + ldr sp, _080000F4 @ =gUnk_03007FA0 + mov r0, #0x1f + msr cpsr_fc, r0 + ldr sp, _080000F8 @ =gUnk_03007F00 + ldr r1, _080000FC @ =0x03007FFC + ldr r0, _08000100 @ =gUnk_03005D90 + str r0, [r1] + ldr r1, _08000104 @ =sub_08055E6C + mov lr, pc + bx r1 +_080000F0: + b _080000C0 +_080000F4: .4byte gUnk_03007FA0 +_080000F8: .4byte gUnk_03007F00 +_080000FC: .4byte 0x03007FFC +_08000100: .4byte gUnk_03005D90 +_08000104: .4byte sub_08055E6C diff --git a/asm/intr.s b/asm/intr.s new file mode 100644 index 00000000..7189f3eb --- /dev/null +++ b/asm/intr.s @@ -0,0 +1,1287 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_080B197C +sub_080B197C: @ 0x080B197C + push {r4, r5, r6} + ldr r2, _080B19C0 @ =gUnk_03000BF0 + ldrh r3, [r2, #0xa] + ldrh r4, [r2, #6] + subs r3, r3, r4 + ldrh r4, [r2, #0xc] + ldrh r2, [r2, #8] + subs r4, r4, r2 + adds r5, r4, #0 + lsrs r3, r3, #4 + lsrs r4, r4, #4 + lsls r4, r4, #7 + adds r3, r3, r4 + lsls r3, r3, #2 + adds r0, r0, r3 + subs r1, #0x40 + ldr r2, _080B19C4 @ =0x80000020 + ldr r3, _080B19C8 @ =0x040000D4 + movs r4, #1 + lsls r4, r4, #8 + movs r6, #0x17 + cmp r5, #8 + bhs _080B19AE + stm r3!, {r0, r1, r2} + b _080B19B4 +_080B19AE: + subs r0, r0, r4 +_080B19B0: + stm r3!, {r0, r1, r2} + adds r0, r0, r4 +_080B19B4: + subs r3, #0xc + adds r1, #0x40 + subs r6, #1 + bne _080B19B0 + pop {r4, r5, r6} + bx lr + .align 2, 0 +_080B19C0: .4byte gUnk_03000BF0 +_080B19C4: .4byte 0x80000020 +_080B19C8: .4byte 0x040000D4 + + arm_func_start sub_080B19CC +sub_080B19CC: @ 0x080B19CC + ldrb r2, [r0, #0x38] + ldrh r1, [r0, #0x32] + ldrh r0, [r0, #0x2e] + ldr ip, _080B1C10 @ =gUnk_03000BF0 + ldrh r3, [ip, #6] + sub r0, r0, r3 + ldrh r3, [ip, #8] + sub r1, r1, r3 + lsl r0, r0, #0x16 + lsr r0, r0, #0x1a + lsl r1, r1, #0x16 + lsr r1, r1, #0x1a + add r0, r0, r1, lsl #6 + mov r1, r2 + ldr r2, _080B1C14 @ =0x08000258 + b _080B1A64 + + arm_func_start sub_080B1A0C +sub_080B1A0C: @ 0x080B1A0C + ldrh r3, [r0, #0x2e] + add r3, r3, r1 + ldrh r1, [r0, #0x32] + add r1, r1, r2 + ldrb r2, [r0, #0x38] + mov r0, r3 + b _080B1A34 +_080B1A28: + ldrb r2, [r0, #0x38] + ldrh r1, [r0, #0x32] + ldrh r0, [r0, #0x2e] +_080B1A34: + ldr ip, _080B1C18 @ =gUnk_03000BF0 + ldrh r3, [ip, #6] + sub r0, r0, r3 + ldrh r3, [ip, #8] + sub r1, r1, r3 + lsl r0, r0, #0x16 + lsr r0, r0, #0x1a + lsl r1, r1, #0x16 + lsr r1, r1, #0x1a + add r0, r0, r1, lsl #6 + mov r1, r2 + + arm_func_start sub_080B1A60 +sub_080B1A60: @ 0x080B1A60 + ldr r2, _080B1C1C @ =0x08000228 +_080B1A64: + add r2, r2, r1, lsl #3 + ldr r1, [r2] + lsl r0, r0, #1 + ldrh r0, [r1, r0] + cmp r0, #0x4000 + bxhs lr + ldr r1, [r2, #4] + lsl r0, r0, #1 + ldrh r0, [r1, r0] + bx lr + + arm_func_start sub_080B1A8C +sub_080B1A8C: @ 0x080B1A8C + ldrh r3, [r0, #0x2e] + add r3, r3, r1 + ldrh r1, [r0, #0x32] + add r1, r1, r2 + ldrb r2, [r0, #0x38] + mov r0, r3 + b _080B1AB4 +_080B1AA8: + ldrb r2, [r0, #0x38] + ldrh r1, [r0, #0x32] + ldrh r0, [r0, #0x2e] +_080B1AB4: + ldr ip, _080B1C20 @ =gUnk_03000BF0 + ldrh r3, [ip, #6] + sub r0, r0, r3 + ldrh r3, [ip, #8] + sub r1, r1, r3 + lsl r0, r0, #0x16 + lsr r0, r0, #0x1a + lsl r1, r1, #0x16 + lsr r1, r1, #0x1a + add r0, r0, r1, lsl #6 + mov r1, r2 + ldr r2, _080B1C24 @ =0x08000278 + ldr r2, [r2, r1, lsl #2] + ldrb r0, [r2, r0] + bx lr + + arm_func_start sub_080B1AF0 +sub_080B1AF0: @ 0x080B1AF0 + ldrh r3, [r0, #0x2e] + add r3, r3, r1 + ldrh r1, [r0, #0x32] + add r1, r1, r2 + ldrb r2, [r0, #0x38] + mov r0, r3 + b _080B1B18 +_080B1B0C: + ldrb r2, [r0, #0x38] + ldrh r1, [r0, #0x32] + ldrh r0, [r0, #0x2e] +_080B1B18: + ldr ip, _080B1C28 @ =gUnk_03000BF0 + ldrh r3, [ip, #6] + sub r0, r0, r3 + ldrh r3, [ip, #8] + sub r1, r1, r3 + lsl r0, r0, #0x16 + lsr r0, r0, #0x1a + lsl r1, r1, #0x16 + lsr r1, r1, #0x1a + add r0, r0, r1, lsl #6 + mov r1, r2 + ldr r2, _080B1C2C @ =0x08000248 + ldr r1, [r2, r1, lsl #2] + ldrb r0, [r1, r0] + bx lr + + arm_func_start sub_080B1B54 +sub_080B1B54: @ 0x080B1B54 + lsls r0, r0, #0x12 + ldrlo r1, _080B1C30 @ =gUnk_080B37A0 + ldrhs r1, _080B1C34 @ =gUnk_080B7910 + ldrb r0, [r1, r0, lsr #18] + bx lr + + arm_func_start sub_080B1B68 +sub_080B1B68: @ 0x080B1B68 + lsrs r2, r0, #0xe + bxne lr + ldr r2, _080B1C38 @ =0x0800022C + ldr r1, [r2, r1, lsl #3] + lsl r0, r0, #1 + ldrh r0, [r1, r0] + bx lr + + arm_func_start sub_080B1B84 +sub_080B1B84: @ 0x080B1B84 + mov ip, lr + bl sub_080B1A60 + lsls r0, r0, #0x12 + ldrlo r1, _080B1C3C @ =gUnk_08000360 + ldrhs r1, _080B1C40 @ =gUnk_080B7A3E + lsr r0, r0, #0x11 + ldrh r0, [r1, r0] + bx ip + + arm_func_start sub_080B1BA4 +sub_080B1BA4: @ 0x080B1BA4 + mov ip, lr + mov r3, r2 + bl sub_080B1A60 + lsls r0, r0, #0x12 + ldrlo r1, _080B1C44 @ =gUnk_08000360 + ldrhs r1, _080B1C48 @ =gUnk_080B7A3E + lsr r0, r0, #0x11 + ldrh r0, [r1, r0] + and r0, r0, r3 + bx ip + + arm_func_start sub_080B1BCC +sub_080B1BCC: @ 0x080B1BCC + ldrh r3, [r0, #0x2e] + add r1, r1, r3 + ldrh r3, [r0, #0x32] + add r2, r2, r3 + ldr ip, _080B1C4C @ =gUnk_03000BF0 + ldrh r3, [ip, #6] + sub r1, r1, r3 + ldrh r3, [ip, #8] + sub r2, r2, r3 + and r1, r1, #0x3f0 + and r2, r2, #0x3f0 + add r1, r1, r2, lsl #6 + ldr r2, _080B1C50 @ =0x08000278 + ldrb r3, [r0, #0x38] + ldr r2, [r2, r3, lsl #2] + ldrb r0, [r2, r1, lsr #4] + bx lr + .align 2, 0 +_080B1C10: .4byte gUnk_03000BF0 +_080B1C14: .4byte 0x08000258 +_080B1C18: .4byte gUnk_03000BF0 +_080B1C1C: .4byte 0x08000228 +_080B1C20: .4byte gUnk_03000BF0 +_080B1C24: .4byte 0x08000278 +_080B1C28: .4byte gUnk_03000BF0 +_080B1C2C: .4byte 0x08000248 +_080B1C30: .4byte gUnk_080B37A0 +_080B1C34: .4byte gUnk_080B7910 +_080B1C38: .4byte 0x0800022C +_080B1C3C: .4byte gUnk_08000360 +_080B1C40: .4byte gUnk_080B7A3E +_080B1C44: .4byte gUnk_08000360 +_080B1C48: .4byte gUnk_080B7A3E +_080B1C4C: .4byte gUnk_03000BF0 +_080B1C50: .4byte 0x08000278 + + arm_func_start sub_080B1C54 +sub_080B1C54: @ 0x080B1C54 + ldrb r1, [r0, #0x10] + ands r1, r1, #0x80 + bxeq lr + ldr r2, _080B200C @ =gUnk_03000E10 + ldr r3, _080B2010 @ =gUnk_03003DB8 + ldrb r1, [r3] + str r0, [r2, r1, lsl #2] + add r1, r1, #1 + strb r1, [r3] + bx lr + + arm_func_start sub_080B1C7C +sub_080B1C7C: @ 0x080B1C7C + push {r4, r5, r6, r7, r8, sb, sl, lr} + add r0, pc, #0x104 @ =0x080B1D8C + ldm r0, {r8, sb, sl} + ldrb sl, [sl] + cmp sl, #0 + beq _080B1D84 + ldr r8, [r8] + mov r7, r8 +_080B1C9C: + ldr r4, [r8, #8] + ldrb r0, [r4, #0x10] + ands r0, r0, #0x80 + beq _080B1D78 + ldrb r0, [r4, #0x3c] + and r0, r0, #7 + mov r1, #1 + lsl r6, r1, r0 + ldrb r3, [r4, #0x3c] + ldrb r2, [r4, #0x3d] + mov ip, sl +_080B1CC8: + subs ip, ip, #1 + bmi _080B1D78 + ldr r5, [sb, ip, lsl #2] + cmp r4, r5 + beq _080B1CC8 + ldr r0, [r5, #0x3b] + ands r0, r0, r6 + beq _080B1CC8 + ldrb r0, [r5, #0x10] + ands r0, r0, #0x80 + beq _080B1CC8 + ldrb r0, [r4, #0x38] + ldrb r1, [r5, #0x38] + ands r0, r0, r1 + beq _080B1CC8 + ldrb r0, [r5, #0x3c] + orr r0, r0, r3 + lsrs r0, r0, #7 + bhs _080B1D20 + ldrb r0, [r5, #0x3d] + orrs r0, r0, r2 + bne _080B1CC8 +_080B1D20: + bl sub_080B1D98 + cmp r0, #0 + beq _080B1CC8 + ldrb r3, [r4, #0x3c] + ldrb r0, [r4, #0x3d] + ldrb r1, [r4, #0x43] + orr r2, r0, r1 + ldrb r0, [r5, #0x41] + ands r0, r0, #0x80 + bne _080B1D58 + str r4, [r5, #0x4c] + ldrb r0, [r4, #0x40] + orr r0, r0, #0x80 + strb r0, [r5, #0x41] +_080B1D58: + ldrb r0, [r4, #0x41] + ands r0, r0, #0x80 + bne _080B1CC8 + str r5, [r4, #0x4c] + ldrb r0, [r5, #0x40] + orr r0, r0, #0x80 + strb r0, [r4, #0x41] + b _080B1CC8 +_080B1D78: + ldr r8, [r8, #4] + cmp r8, r7 + bne _080B1C9C +_080B1D84: + pop {r4, r5, r6, r7, r8, sb, sl, lr} + bx lr +_080B1D8C: .4byte gUnk_02018EA0 +_080B1D90: .4byte gUnk_03000E10 +_080B1D94: .4byte gUnk_03003DB8 + + arm_func_start sub_080B1D98 +sub_080B1D98: @ 0x080B1D98 + push {r2, r3, r6, r7, r8, sb, ip, lr} + ldr r6, [r4, #0x48] + ldr r7, [r5, #0x48] + ldrh r0, [r4, #0x2e] + ldrh r1, [r5, #0x2e] + sub r0, r0, r1 + ldrsb r1, [r6] + add r0, r0, r1 + ldrsb r1, [r7] + sub r0, r0, r1 + ldrb r1, [r6, #6] + ldrb r2, [r7, #6] + add r1, r1, r2 + add r2, r0, r1 + cmp r2, r1, lsl #1 + bhi _080B1F28 + ldrh r1, [r4, #0x32] + ldrh r2, [r5, #0x32] + sub r1, r1, r2 + ldrsb r2, [r6, #1] + add r1, r1, r2 + ldrsb r2, [r7, #1] + sub r1, r1, r2 + ldrb r2, [r6, #7] + ldrb r3, [r7, #7] + add r2, r2, r3 + add r3, r1, r2 + cmp r3, r2, lsl #1 + bhi _080B1F28 + mov r2, #5 + mov r3, #5 + ldr r8, [r4, #0x3c] + ands r8, r8, #0x10 + ldrbne r2, [r6, #8] + ldr r8, [r5, #0x3c] + ands r8, r8, #0x10 + ldrbne r3, [r7, #8] + add r2, r2, r3 + ldrsh r8, [r4, #0x36] + ldrsh sb, [r5, #0x36] + sub r8, r8, sb + add r8, r2, r8 + cmp r8, r2, lsl #1 + bhi _080B1F28 + ldrb r2, [r4, #0x3c] + and r2, r2, #0x20 + lsr r2, r2, #3 + ldrb r3, [r5, #0x3c] + and r3, r3, #0x20 + adds r2, r2, r3, lsr #2 + beq _080B1E74 + add r3, pc, #0x180 @ =0x080B1FEC + ldr r2, [r3, r2] + mov lr, pc + bx r2 +_080B1E74: + mov r2, #0 + mov ip, #0 + bl sub_080B237C + mov r6, r0 + ldrb r1, [r5, #0x3f] + mov r0, #0x22 + mul r1, r0, r1 + ldrb r0, [r4, #0x40] + add r0, r0, r1 + mov r1, #0xc + mul r2, r0, r1 + ldr r1, _080B2014 @ =gUnk_080B7B74 + add r3, r2, r1 + mov r1, #0 + ldrb r0, [r3] + cmp r0, #0xff + ldrheq r1, [r3, #2] + ldr r0, _080B2018 @ =gUnk_080B3744 + ldr r7, [r0, r1, lsl #2] + mov r0, r4 + mov r1, r5 + mov r2, r6 + mov lr, pc + bx r7 +_080B1ED4: + cmp r0, #0 + beq _080B1F20 + cmp r0, #2 + beq _080B1F1C + ldrb r0, [r4, #0x3c] + and r0, r0, #0x80 + lsr r0, r0, #5 + ldrb r1, [r5, #0x3c] + and r1, r1, #0x80 + lsr r1, r1, #4 + add r0, r0, r1 + add r1, pc, #0xF4 @ =0x080B1FFC + ldr r0, [r1, r0] + mov lr, pc + bx r0 +_080B1F10: + strb r6, [r5, #0x3e] + eor r6, r6, #0x10 + strb r6, [r4, #0x3e] +_080B1F1C: + mov r0, #1 +_080B1F20: + pop {r2, r3, r6, r7, r8, sb, ip, lr} + bx lr +_080B1F28: + mov r0, #0 + b _080B1F20 + + arm_func_start sub_080B1F30 +sub_080B1F30: @ 0x080B1F30 + ldrh r0, [r4, #0x2e] + ldrh r1, [r5, #0x2e] + sub r0, r0, r1 + ldrsb r1, [r7] + sub r0, r0, r1 + ldrh r1, [r4, #0x32] + ldrh r2, [r5, #0x32] + sub r1, r1, r2 + ldrsb r2, [r7, #1] + sub r1, r1, r2 + bx lr + + arm_func_start sub_080B1F5C +sub_080B1F5C: @ 0x080B1F5C + ldrh r0, [r4, #0x2e] + ldrh r1, [r5, #0x2e] + sub r0, r0, r1 + ldrsb r1, [r6] + add r0, r0, r1 + ldrh r1, [r4, #0x32] + ldrh r2, [r5, #0x32] + sub r1, r1, r2 + ldrsb r2, [r6, #1] + add r1, r1, r2 + bx lr + + arm_func_start sub_080B1F88 +sub_080B1F88: @ 0x080B1F88 + ldrh r0, [r4, #0x2e] + ldrh r1, [r5, #0x2e] + sub r0, r0, r1 + ldrh r1, [r4, #0x32] + ldrh r2, [r5, #0x32] + sub r1, r1, r2 + bx lr + + arm_func_start sub_080B1FA4 +sub_080B1FA4: @ 0x080B1FA4 + ldrb r0, [r5, #0x15] + eor r0, r0, #0x10 + b _080B1FB4 +_080B1FB0: + ldrb r0, [r4, #0x15] +_080B1FB4: + sub r1, r0, #8 + and r1, r1, #0x1f + sub r1, r6, r1 + and r1, r1, #0x1f + cmp r1, #0x11 + bxlo lr + sub r0, r6, r0 + sub r0, r0, #8 + and r0, r0, #0x1f + sub r6, r6, r0, lsl #1 + and r6, r6, #0x1f + bx lr + + arm_func_start sub_080B1FE4 +sub_080B1FE4: @ 0x080B1FE4 + ldrb r6, [r4, #0x15] + bx lr +_080B1FEC: .4byte gUnk_03005D5C +_080B1FF0: .4byte gUnk_03005CA4 +_080B1FF4: .4byte gUnk_03005CD0 +_080B1FF8: .4byte gUnk_03005CFC +_080B1FFC: .4byte gUnk_03005D5C +_080B2000: .4byte gUnk_03005D24 +_080B2004: .4byte gUnk_03005D18 +_080B2008: .4byte gUnk_03005D58 +_080B200C: .4byte gUnk_03000E10 +_080B2010: .4byte gUnk_03003DB8 +_080B2014: .4byte gUnk_080B7B74 +_080B2018: .4byte gUnk_080B3744 + + arm_func_start sub_080B201C +sub_080B201C: @ 0x080B201C + mov r3, #0x4000000 + add r3, r3, #0x200 + ldr r2, [r3] + ldrh r1, [r3, #8] + mrs r0, spsr + push {r0, r1, r2, r3, lr} + and r1, r2, r2, lsr #16 + ands r0, r1, #0x2000 + bne _080B20D4 + mov ip, #4 + ands r0, r1, #0x80 + bne _080B2074 + mov ip, #0xc + ands r0, r1, #4 + bne _080B2074 + mov ip, #0x10 + ands r0, r1, #1 + bne _080B2074 + mov ip, #0x14 + ands r0, r1, #0x40 + bne _080B2074 + mov ip, #0 +_080B2074: + strh r0, [r3, #2] + bic r2, r2, r0 + ldr r1, _080B20E4 @ =0x0000208C + and r1, r1, r2 + strh r1, [r3] + mrs r3, apsr + bic r3, r3, #0xdf + orr r3, r3, #0x1f + msr cpsr_fc, r3 + ldr r1, _080B20E8 @ =gUnk_030067E4 + ldr r0, [r1, ip] + stmdb sp!, {lr} + mov lr, pc + bx r0 + + arm_func_start sub_080B20AC +sub_080B20AC: @ 0x080B20AC + ldm sp!, {lr} + mrs r3, apsr + bic r3, r3, #0xdf + orr r3, r3, #0x92 + msr cpsr_fc, r3 + pop {r0, r1, r2, r3, lr} + strh r2, [r3] + strh r1, [r3, #8] + msr spsr_fc, r0 + bx lr +_080B20D4: + mov r0, #0 + strh r0, [r3, #8] + strb r0, [r3, #-0x17c] +_080B20E0: + b _080B20E0 + .align 2, 0 +_080B20E4: .4byte 0x0000208C +_080B20E8: .4byte gUnk_030067E4 + + arm_func_start sub_080B20EC +sub_080B20EC: @ 0x080B20EC + add r3, r0, r1, lsr #3 + and r1, r1, #7 + ldr r0, _080B21A4 @ =0x01010101 + lsl r1, r0, r1 +_080B20FC: + ldrb r0, [r3] + ands r0, r0, r1 + bxeq lr + lsls r1, r1, #1 + addhs r1, r1, #1 + addhs r3, r3, #1 + subs r2, r2, #1 + bne _080B20FC + mov r0, #1 + bx lr + + arm_func_start sub_080B2124 +sub_080B2124: @ 0x080B2124 + push {r4, r5, r6, r7, r8, sb, sl, fp} + mul r3, r2, r3 + mov r4, #0x400 + sub r2, r4, r2, lsl #2 + ldr r7, _080B21A8 @ =gUnk_02000006 + ldrb r7, [r7] + ldr ip, _080B21AC @ =gUnk_08000F54 + add ip, ip, r7, lsl #4 + ldm ip, {r8, sb, sl} + mov r7, #0x3e + mov ip, #0x10 +_080B2150: + ldrh r6, [r0], #2 + lsl r6, r6, #1 + and r4, r7, r6 + mla r4, r2, r4, r3 + and r5, r7, r6, lsr #5 + mla r5, r2, r5, r3 + and r6, r7, r6, lsr #10 + mla r6, r2, r6, r3 + and r4, r7, r4, lsr #10 + and r5, r7, r5, lsr #10 + and r6, r7, r6, lsr #10 + ldrh r4, [r8, r4] + ldrh r5, [sb, r5] + ldrh r6, [sl, r6] + orr r4, r4, r5 + orr r4, r4, r6 + strh r4, [r1], #2 + subs ip, ip, #1 + bne _080B2150 + pop {r4, r5, r6, r7, r8, sb, sl, fp} + bx lr + .align 2, 0 +_080B21A4: .4byte 0x01010101 +_080B21A8: .4byte gUnk_02000006 +_080B21AC: .4byte gUnk_08000F54 + + arm_func_start sub_080B21B0 +sub_080B21B0: @ 0x080B21B0 + ldr fp, _080B2270 @ =gUnk_03003DD0 + ldr r1, [fp] + ldm r1, {r7, r8, sb, sl} + ldr sp, [fp, #0xc] + ldr r8, [fp, #4] + ldr r0, [fp, #8] + add pc, pc, #0x60 @ =0x080B2230 + ldr r1, _080B2274 @ =0x080026A4 + add r1, r1, r0, lsl #4 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + ldr fp, _080B2278 @ =gUnk_03003DD0 + str r1, [fp] + str sp, [fp, #0xc] + ldm r1, {r7, r8, sb, sl} +_080B21E8: + add r8, r8, #8 + str r8, [fp, #4] + cmp r8, sb + bhs _080B2238 + ldr r4, [r8, #4] +_080B21FC: + cmp r4, r8 + beq _080B21E8 + mov r0, #0 + str r0, [r7] + str r4, [fp, #8] + ldrb r1, [r4, #8] + ldr r1, [sl, r1, lsl #2] + mov r0, r4 + mov lr, pc + bx r1 +_080B2224: + ldr r0, [fp, #8] + cmp r0, r4 + bleq sub_080B1C54 + ldr r4, [r0, #4] + b _080B21FC +_080B2238: + mov r0, #0 + str r0, [fp, #8] + pop {r4, r5, r6, r7, r8, sb, sl, fp, lr} + bx lr +_080B2248: .4byte 0x0805E781 +_080B224C: .4byte 0x08016F29 +_080B2250: .4byte 0x0805E781 +_080B2254: .4byte 0x080011C5 +_080B2258: .4byte 0x08016AE5 +_080B225C: .4byte 0x0805E781 +_080B2260: .4byte 0x080174A5 +_080B2264: .4byte 0x08017531 +_080B2268: .4byte 0x08017339 +_080B226C: .4byte 0x08017509 +_080B2270: .4byte gUnk_03003DD0 +_080B2274: .4byte 0x080026A4 +_080B2278: .4byte gUnk_03003DD0 + + arm_func_start sub_080B227C +sub_080B227C: @ 0x080B227C + push {r4, r5, r6, r7, r8, lr} + ldr r2, [r0, #0x48] + cmp r2, #0 + beq _080B236C + ldr r3, [r1, #0x48] + cmp r3, #0 + beq _080B236C + ldrh r4, [r1, #0x2e] + ldrsb r5, [r3] + add r4, r4, r5 + ldrh r5, [r0, #0x2e] + sub r4, r4, r5 + ldrsb r5, [r2] + sub r4, r4, r5 + ldrb r5, [r2, #6] + ldrb r6, [r3, #6] + add r5, r5, r6 + add r6, r4, r5 + lsl r7, r5, #1 + cmp r7, r6 + blo _080B236C + cmp r4, #0 + movpl ip, #8 + movmi ip, #0x18 + rsbmi r4, r4, #0 + sub r8, r5, r4 + ldrh r4, [r1, #0x32] + ldrsb r5, [r3, #1] + add r4, r4, r5 + ldrh r5, [r0, #0x32] + sub r4, r4, r5 + ldrsb r5, [r2, #1] + sub r4, r4, r5 + ldrb r2, [r2, #7] + ldrb r3, [r3, #7] + add r3, r2, r3 + add r5, r4, r3 + lsl r6, r3, #1 + cmp r6, r5 + blo _080B236C + cmp r4, #0 + movpl r2, #0x10 + movmi r2, #0 + rsbmi r4, r4, #0 + sub r7, r3, r4 + cmp r7, r8 + movhs r7, r8 + movhs r2, ip + cmp r7, #0 + beq _080B236C + cmp r7, #5 + movhs r7, #4 + mov r0, r1 + lsl r1, r7, #8 + ldr r3, _080B2378 @ =sub_080044AE + mov lr, pc + bx r3 +_080B2360: + pop {r4, r5, r6, r7, r8, lr} + mov r0, #1 + bx lr +_080B236C: + pop {r4, r5, r6, r7, r8, lr} + mov r0, #0 + bx lr + .align 2, 0 +_080B2378: .4byte sub_080044AE + + arm_func_start sub_080B237C +sub_080B237C: @ 0x080B237C + subs r2, r2, r0 + movpl r0, #0 + movmi r0, #0x20 + rsbmi r2, r2, #0 + subs r3, r1, ip + rsbmi r3, r3, #0 + addmi r0, r0, #0x10 + cmp r2, r3 + movhs r1, r3 + movhs r3, r2 + movhs r2, r1 + addhs r0, r0, #8 + lsl r2, r2, #3 + lsl r1, r3, #1 + cmp r2, r3 + addhs r0, r0, #1 + addhs r3, r3, r1 + cmp r2, r3 + addhs r0, r0, #1 + addhs r3, r3, r1 + cmp r2, r3 + addhs r0, r0, #1 + addhs r3, r3, r1 + cmp r2, r3 + addhs r0, r0, #1 + ldr r1, _080B23EC @ =0x0800464E + ldrb r0, [r1, r0] + bx lr + .align 2, 0 +_080B23EC: .4byte 0x0800464E + + arm_func_start sub_080B23F0 +sub_080B23F0: @ 0x080B23F0 + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + ldr fp, _080B2A30 @ =gUnk_03000000 + ldrb r2, [fp, #3] + cmp r2, #0x80 + bhs _080B2440 + add r0, pc, #0x34 @ =_080B2440 + str r0, [fp, #0x18] + str sp, [fp, #0x14] + ldr r0, _080B2A34 @ =gUnk_081326EC + ldr r0, [r0] + bl sub_080B2448 + ldr r0, _080B2A38 @ =gUnk_081326EC + ldr r0, [r0, #4] + bl sub_080B2448 + ldr r0, _080B2A3C @ =gUnk_081326EC + ldr r0, [r0, #8] + bl sub_080B2448 + ldr r0, _080B2A40 @ =gUnk_081326EC + ldr r0, [r0, #0xc] + bl sub_080B2448 +_080B2440: + pop {r4, r5, r6, r7, r8, sb, sl, fp, lr} + bx lr + + arm_func_start sub_080B2448 +sub_080B2448: @ 0x080B2448 + ldrb r2, [r0] + cmp r2, #0 + bxeq lr + ldr r1, _080B2A44 @ =gUnk_081326EC + ldr r1, [r1, #0x10] + mov r2, #0 + strb r2, [r1] + stmdb sp!, {lr} + bl sub_080B2478 + bl sub_080B2534 + ldm sp!, {lr} + b _080B26B4 + + arm_func_start sub_080B2478 +sub_080B2478: @ 0x080B2478 + mov sb, r0 + mov r1, r0 + ldrb r2, [r1], #4 + mov ip, r1 + sub sl, r2, #1 + add r2, r1, sl, lsl #2 + cmp sl, #0 + beq _080B252C +_080B2498: + lsl r3, sl, #2 + mov r6, #0 +_080B24A0: + cmp r6, sl + bhs _080B2524 + sub r1, r2, r3 + sub r1, r1, r6, lsl #2 +_080B24B0: + cmp r1, ip + blo _080B251C + ldr r4, [r1] + ldr r8, [r4, #0x30] + add r8, r8, #-0x80000000 + lsr r8, r8, #3 + ldrb r0, [r4, #0x29] + mvn r0, r0 + orr r8, r8, r0, lsl #29 + add r7, r1, r3 +_080B24D8: + cmp r2, r7 + blo _080B2510 + ldr r5, [r7] + ldr r0, [r5, #0x30] + add r0, r0, #-0x80000000 + lsr r0, r0, #3 + ldrb r5, [r5, #0x29] + mvn r5, r5 + orr r5, r0, r5, lsl #29 + cmp r8, r5 + bhs _080B2510 + ldr r5, [r7], -r3 + str r5, [r7], r3, lsl #1 + b _080B24D8 +_080B2510: + str r4, [r7, -r3]! + sub r1, r1, r3 + b _080B24B0 +_080B251C: + add r6, r6, #1 + b _080B24A0 +_080B2524: + lsrs sl, sl, #1 + bne _080B2498 +_080B252C: + mov r0, sb + bx lr + + arm_func_start sub_080B2534 +sub_080B2534: @ 0x080B2534 + stmdb sp!, {lr} + mov r4, r0 + ldrb r5, [r4], #4 +_080B2540: + ldr r0, [r4], #4 + push {r4, r5} + bl sub_080B255C + pop {r4, r5} + subs r5, r5, #1 + bgt _080B2540 + ldm sp!, {pc} + + arm_func_start sub_080B255C +sub_080B255C: @ 0x080B255C + stmdb sp!, {lr} + mov r4, r0 + bl sub_080B299C + mov r5, #0 + strb r5, [fp, #0x12] + ldrsb r2, [r4, #0x29] + ands r2, r2, #8 + beq _080B262C + ldrsh r3, [r4, #0x36] + cmp r3, #0 + bmi _080B2618 + mov r1, #0 + mov r2, #0 + bl sub_080B1BCC + ldrb r1, [r4, #0x18] + and r1, r1, #0x30 + mov r1, r1 + cmp r0, #0x19 + beq _080B260C + cmp r0, #0x2f + beq _080B25D8 + cmp r0, #0xf + bne _080B2618 + mov r5, #2 + strb r5, [fp, #0x12] + add r7, r7, r5 + ldrb r2, [fp, #1] + and r2, r2, #0x18 + add r2, r2, #0x80 + lsr r2, r2, #2 + b _080B25E8 +_080B25D8: + ldrb r2, [r4, #0x2e] + ldrb r3, [r4, #0x32] + eor r2, r2, r3 + and r2, r2, #6 +_080B25E8: + ldr r3, _080B2A48 @ =gUnk_030068CC + add r2, r1, r2, lsl #1 + ldr sl, [r3, r2] + push {r4, r8, sb} + mov r8, #0 + and sb, sb, #0xc00 + bl _080B2874 + pop {r4, r8, sb, lr} + b _080B2718 +_080B260C: + mov r5, #2 + strb r5, [fp, #0x12] + add r7, r7, r5 +_080B2618: + stmdb sp!, {r4} + mov r0, r4 + bl _080B2718 + pop {r4, lr} + b _080B2634 +_080B262C: + ldm sp!, {lr} + b _080B2718 +_080B2634: + ldrsh r1, [r4, #0x36] + ldrb r0, [r4, #0x29] + tst r0, #0x10 + beq _080B264C + cmp r1, #0 + bxpl lr +_080B264C: + tst r0, #0x20 + beq _080B2660 + ldrb r0, [fp, #1] + tst r0, #1 + bxne lr +_080B2660: + mov r2, r7 + cmp r1, #0 + submi r2, r2, r1 + ldr r3, _080B2A4C @ =gUnk_081326EC + ldr r3, [r3, #0x10] + ldrb r0, [r3] + cmp r0, #0x40 + bxhs lr + add r0, r0, #1 + strb r0, [r3] + add r3, r3, r0, lsl #2 + lsr r0, sb, #0xa + and r0, r0, #3 + orr r0, r0, r2, lsl #6 + strh r0, [r3, #2] + ldrb r0, [r4, #0x18] + and r0, r0, #0x30 + lsr r0, r0, #4 + orr r0, r0, r6, lsl #6 + strh r0, [r3] + bx lr +_080B26B4: + ldr r4, _080B2A50 @ =gUnk_081326EC + ldr r4, [r4, #0x10] + ldrb r5, [r4] + cmp r5, #0 + bxeq lr + stmdb sp!, {lr} + add r4, r4, #4 +_080B26D0: + ldrsh r0, [r4] + asr r6, r0, #6 + and r1, r0, #7 + ldr sl, _080B2A54 @ =gUnk_0300694C + ldr sl, [sl, r1, lsl #2] + ldrsh r0, [r4, #2] + asr r7, r0, #6 + and r1, r0, #3 + lsl sb, r1, #0xa + mov r8, #0 + push {r4, r5} + bl _080B2874 + pop {r4, r5} + add r4, r4, #4 + subs r5, r5, #1 + bgt _080B26D0 + ldm sp!, {lr} + bx lr +_080B2718: + ldrsb r0, [r4, #0x28] + cmp r0, #0 + beq _080B27E4 + bpl _080B2730 + ldr sl, [r4, #0x64] + b _080B2874 +_080B2730: + ldr r4, _080B2A58 @ =gUnk_020000C0 + add r4, r4, r0, lsl #6 + mov r5, #4 + bic sb, sb, #0xf000 +_080B2740: + ldrb r0, [r4] + tst r0, #1 + bxeq lr + tst r0, #2 + bne _080B27B8 + ldrb r0, [r4, #1] + cmp r0, #0xff + beq _080B27A8 + push {r4, r5, r6, r7, r8, sb, lr} + ldrb r2, [r4, #4] + eor r8, r8, r2, lsl #28 + ldrsb r2, [r4, #6] + tst r8, #0x10000000 + addeq r6, r6, r2 + subne r6, r6, r2 + ldrsb r2, [r4, #7] + tst r8, #0x20000000 + addeq r7, r7, r2 + addne r7, r7, r2 + ldrb r2, [r4, #5] + orr sb, sb, r2, lsl #12 + ldrb r2, [r4, #8] + add sb, sb, r2 + ldrh r1, [r4, #2] + bl sub_080B27F4 + pop {r4, r5, r6, r7, r8, sb, lr} +_080B27A8: + add r4, r4, #0x10 + subs r5, r5, #1 + bne _080B2740 + bx lr +_080B27B8: + ldr r0, [r4, #0xc] + cmp r0, #0 + beq _080B27A8 + push {r4, r5, lr} + bl sub_080B299C + mov r4, r0 + ldrb r5, [fp, #0x12] + add r7, r7, r5 + bl _080B27E4 + pop {r4, r5, lr} + b _080B27A8 +_080B27E4: + ldrb r0, [r4, #0x1e] + cmp r0, #0xff + bxeq lr + ldrh r1, [r4, #0x12] + + arm_func_start sub_080B27F4 +sub_080B27F4: @ 0x080B27F4 + ldr sl, _080B2A5C @ =gUnk_082F3D74 + ldr r2, [sl, r1, lsl #2] + add r2, r2, sl + ldr r0, [r2, r0, lsl #2] + add sl, sl, r0 + b _080B2874 + + arm_func_start sub_080B280C +sub_080B280C: @ 0x080B280C + cmp r2, #0xff + bxeq lr + ldr r3, _080B2A60 @ =gUnk_082F3D74 + ldr r1, [r3, r1, lsl #2] + add r1, r1, r2, lsl #2 + ldr r1, [r3, r1] + add r1, r1, r3 + ldrb r2, [r1] + cmp r2, #0 + bxeq lr + push {r4, r5, r6, r7, r8, sb, sl, fp, lr} + ldr fp, _080B2A64 @ =gUnk_03000000 + ldrb r3, [fp, #3] + cmp r3, #0x80 + bhs _080B286C + mov sl, r1 + ldrsh r6, [r0] + ldrsh r7, [r0, #2] + ldr r8, [r0, #4] + ldrh sb, [r0, #8] + add r3, pc, #0x8 @ =_080B286C + str r3, [fp, #0x18] + str sp, [fp, #0x14] + bl _080B2874 +_080B286C: + pop {r4, r5, r6, r7, r8, sb, sl, fp, lr} + bx lr +_080B2874: + ldrb r0, [sl], #1 + lsls r0, r0, #0x18 + bxeq lr + lsl sb, sb, #0x10 + orr sb, r0, sb, lsr #16 + ands r0, r8, #0x300 + beq _080B289C + subs r0, r0, #0x100 + movne r0, #0xc0 + b _080B28A8 +_080B289C: + and r0, r8, #0x30000000 + lsr r0, r0, #0x18 + add r0, r0, r0, lsl #1 +_080B28A8: + ldr r5, _080B2A68 @ =gUnk_0300695C + add r5, r5, r0 + ldrb r0, [fp, #3] + orr sb, sb, r0, lsl #16 + add ip, fp, #0x20 + add ip, ip, r0, lsl #3 +_080B28C0: + sub sb, sb, #0x1000000 + ldrsb r2, [sl], #5 + ldrsb r1, [sl, #-4] + tst r8, #0x300 + bne _080B28E4 + tst r8, #0x20000000 + rsbne r1, r1, #0 + tst r8, #0x10000000 + rsbne r2, r2, #0 +_080B28E4: + ldrb r3, [sl, #-3] + and r0, r3, #0xf0 + add r4, r5, r0, lsr #2 + add r1, r1, r7 + ldrb r0, [r4, #1] + sub r1, r1, r0 + cmp r1, #0xa0 + bge _080B2974 + ldrb r0, [r4, #3] + cmn r1, r0 + ble _080B2974 + add r2, r2, r6 + ldrb r0, [r4] + sub r2, r2, r0 + cmp r2, #0xf0 + bge _080B2974 + ldrb r0, [r4, #2] + cmn r2, r0 + ble _080B2974 + and r0, r1, #0xff + lsl r2, r2, #0x17 + orr r0, r0, r2, lsr #7 + orr r0, r0, r8 + and r1, r3, #0xc0 + orr r0, r0, r1, lsl #8 + and r1, r3, #0x3c + eor r0, r0, r1, lsl #26 + str r0, [ip], #4 + ldrb r0, [sl, #-2] + add r0, r0, sb + tst r3, #1 + bicne r0, r0, #0xf000 + ldrb r1, [sl, #-1] + add r0, r0, r1, lsl #8 + strh r0, [ip], #4 + add sb, sb, #0x10000 +_080B2974: + lsrs r0, sb, #0x18 + bhs _080B298C + bne _080B28C0 + lsr r0, sb, #0x10 + strb r0, [fp, #3] + bx lr +_080B298C: + mov r0, #0x80 + strb r0, [fp, #3] + ldr sp, [fp, #0x14] + ldr pc, [fp, #0x18] + + arm_func_start sub_080B299C +sub_080B299C: @ 0x080B299C + ldrsb r6, [r0, #0x3d] + cmp r6, #0 + ldrbgt r6, [fp, #0xe] + movle r6, #0 + ldr ip, [r0, #0x18] + ldrh sb, [r0, #0x60] + ldrb r5, [r0, #0x1a] + orr r5, r5, r6 + and r5, r5, #0xf + orr sb, sb, r5, lsl #12 + ldrb r5, [r0, #0x1b] + and r5, r5, #0xc0 + orr sb, sb, r5, lsl #4 + ldrsh r6, [r0, #0x2e] + ldrsb r5, [r0, #0x62] + add r6, r6, r5 + ldrsh r7, [r0, #0x32] + ldrsh r5, [r0, #0x36] + add r7, r7, r5 + ldrsb r5, [r0, #0x63] + add r7, r7, r5 + and r5, ip, #3 + cmp r5, #2 + beq _080B2A0C + ldrsh r5, [fp, #4] + sub r6, r6, r5 + ldrsh r5, [fp, #6] + sub r7, r7, r5 +_080B2A0C: + ldr r8, _080B2A6C @ =0x3E003F00 + and r8, r8, ip + ldrb r5, [fp, #2] + orr r8, r8, r5, lsl #12 + ldrb r5, [r0, #0x5b] + eor r5, r5, ip + and r5, r5, #0xc0 + orr r8, r8, r5, lsl #22 + bx lr + .align 2, 0 +_080B2A30: .4byte gUnk_03000000 +_080B2A34: .4byte gUnk_081326EC +_080B2A38: .4byte gUnk_081326EC +_080B2A3C: .4byte gUnk_081326EC +_080B2A40: .4byte gUnk_081326EC +_080B2A44: .4byte gUnk_081326EC +_080B2A48: .4byte gUnk_030068CC +_080B2A4C: .4byte gUnk_081326EC +_080B2A50: .4byte gUnk_081326EC +_080B2A54: .4byte gUnk_0300694C +_080B2A58: .4byte gUnk_020000C0 +_080B2A5C: .4byte gUnk_082F3D74 +_080B2A60: .4byte gUnk_082F3D74 +_080B2A64: .4byte gUnk_03000000 +_080B2A68: .4byte gUnk_0300695C +_080B2A6C: .4byte 0x3E003F00 diff --git a/asm/libagbsyscall.s b/asm/libagbsyscall.s new file mode 100644 index 00000000..f505a206 --- /dev/null +++ b/asm/libagbsyscall.s @@ -0,0 +1,90 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start BgAffineSet +BgAffineSet: @ 0x080B14C4 + svc #0xe + bx lr + + thumb_func_start CpuSet +CpuSet: @ 0x080B14C8 + svc #0xb + bx lr + + thumb_func_start Div +Div: @ 0x080B14CC + svc #6 + bx lr + + thumb_func_start Mod +Mod: @ 0x080B14D0 + svc #6 + adds r0, r1, #0 + bx lr + .align 2, 0 + + thumb_func_start LZ77UnCompVram +LZ77UnCompVram: @ 0x080B14D8 + svc #0x12 + bx lr + + thumb_func_start LZ77UnCompWram +LZ77UnCompWram: @ 0x080B14DC + svc #0x11 + bx lr + + thumb_func_start ObjAffineSet +ObjAffineSet: @ 0x080B14E0 + svc #0xf + bx lr + + thumb_func_start RegisterRamReset +RegisterRamReset: @ 0x080B14E4 + svc #1 + bx lr + + thumb_func_start SoundBiasReset +SoundBiasReset: @ 0x080B14E8 + movs r0, #0 + svc #0x19 + bx lr + .align 2, 0 + + thumb_func_start SoundBiasSet +SoundBiasSet: @ 0x080B14F0 + movs r0, #1 + svc #0x19 + bx lr + .align 2, 0 + + thumb_func_start Sqrt +Sqrt: @ 0x080B14F8 + svc #8 + bx lr + + thumb_func_start VBlankIntrWait +VBlankIntrWait: @ 0x080B14FC + movs r2, #0 + svc #5 + bx lr + .align 2, 0 + + thumb_func_start SoftReset +SoftReset: @ 0x080B1504 + ldr r3, _080B1518 @ =0x04000208 + movs r2, #0 + strb r2, [r3] + ldr r3, _080B151C @ =gUnk_03007FFA + movs r2, #0 + strb r2, [r3] + subs r3, #0xfa + mov sp, r3 + svc #1 + svc #0 + .align 2, 0 +_080B1518: .4byte 0x04000208 +_080B151C: .4byte gUnk_03007FFA diff --git a/asm/libgcc.s b/asm/libgcc.s new file mode 100644 index 00000000..c56171e5 --- /dev/null +++ b/asm/libgcc.s @@ -0,0 +1,90 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + +@ custom libgcc implementation + + .code 16 +_08000ED8: + movs r0, #0 + movs r1, #0 + movs r2, #0 + bx lr + + thumb_func_start __divsi3 +__divsi3: @ 0x08000EE0 + cmp r1, #0 + beq _08000ED8 + svc #6 + bx lr + + thumb_func_start __modsi3 +__modsi3: @ 0x08000EE8 + cmp r1, #0 + beq _08000ED8 + svc #6 + adds r0, r1, #0 + bx lr + + non_word_aligned_thumb_func_start _call_via_r0 +_call_via_r0: @ 0x08000EF2 + bx r0 + + thumb_func_start _call_via_r1 +_call_via_r1: @ 0x08000EF4 + bx r1 + + non_word_aligned_thumb_func_start _call_via_r2 +_call_via_r2: @ 0x08000EF6 + bx r2 + + thumb_func_start _call_via_r3 +_call_via_r3: @ 0x08000EF8 + bx r3 + + non_word_aligned_thumb_func_start _call_via_r4 +_call_via_r4: @ 0x08000EFA + bx r4 + + thumb_func_start _call_via_r5 +_call_via_r5: @ 0x08000EFC + bx r5 + + non_word_aligned_thumb_func_start _call_via_r6 +_call_via_r6: @ 0x08000EFE + bx r6 + + thumb_func_start _call_via_r7 +_call_via_r7: @ 0x08000F00 + bx r7 + + non_word_aligned_thumb_func_start _call_via_r8 +_call_via_r8: @ 0x08000F02 + bx r8 + + thumb_func_start _call_via_r9 +_call_via_r9: @ 0x08000F04 + bx sb + + non_word_aligned_thumb_func_start _call_via_sl +_call_via_sl: @ 0x08000F06 + bx sl + + thumb_func_start _call_via_fp +_call_via_fp: @ 0x08000F08 + bx fp + + non_word_aligned_thumb_func_start _call_via_ip +_call_via_ip: @ 0x08000F0A + bx ip + + thumb_func_start _call_via_sp +_call_via_sp: @ 0x08000F0C + bx sp + + non_word_aligned_thumb_func_start _call_via_lr +_call_via_lr: @ 0x08000F0E + bx lr diff --git a/asm/m4a.s b/asm/m4a.s new file mode 100644 index 00000000..8d9f7374 --- /dev/null +++ b/asm/m4a.s @@ -0,0 +1,3027 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start MidiKeyToFreq +MidiKeyToFreq: @ 0x080AFE9C + push {r4, r5, r6, r7, lr} + mov ip, r0 + lsls r1, r1, #0x18 + lsrs r6, r1, #0x18 + lsls r7, r2, #0x18 + cmp r6, #0xb2 + bls _080AFEB0 + movs r6, #0xb2 + movs r7, #0xff + lsls r7, r7, #0x18 +_080AFEB0: + ldr r3, _080AFEF8 @ =gUnk_089FC754 + adds r0, r6, r3 + ldrb r5, [r0] + ldr r4, _080AFEFC @ =gUnk_089FC808 + movs r2, #0xf + adds r0, r5, #0 + ands r0, r2 + lsls r0, r0, #2 + adds r0, r0, r4 + lsrs r1, r5, #4 + ldr r5, [r0] + lsrs r5, r1 + adds r0, r6, #1 + adds r0, r0, r3 + ldrb r1, [r0] + adds r0, r1, #0 + ands r0, r2 + lsls r0, r0, #2 + adds r0, r0, r4 + lsrs r1, r1, #4 + ldr r0, [r0] + lsrs r0, r1 + mov r1, ip + ldr r4, [r1, #4] + subs r0, r0, r5 + adds r1, r7, #0 + bl umul3232H32 + adds r1, r0, #0 + adds r1, r5, r1 + adds r0, r4, #0 + bl umul3232H32 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080AFEF8: .4byte gUnk_089FC754 +_080AFEFC: .4byte gUnk_089FC808 + + thumb_func_start nullsub_543 +nullsub_543: @ 0x080AFF00 + bx lr + .align 2, 0 + + thumb_func_start MPlayContinue +MPlayContinue: @ 0x080AFF04 + push {lr} + adds r2, r0, #0 + ldr r3, [r2, #0x34] + ldr r0, _080AFF1C @ =0x68736D53 + cmp r3, r0 + bne _080AFF18 + ldr r0, [r2, #4] + ldr r1, _080AFF20 @ =0x7FFFFFFF + ands r0, r1 + str r0, [r2, #4] +_080AFF18: + pop {r0} + bx r0 + .align 2, 0 +_080AFF1C: .4byte 0x68736D53 +_080AFF20: .4byte 0x7FFFFFFF + + thumb_func_start MPlayFadeOut +MPlayFadeOut: @ 0x080AFF24 + push {lr} + adds r2, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r3, [r2, #0x34] + ldr r0, _080AFF44 @ =0x68736D53 + cmp r3, r0 + bne _080AFF3E + strh r1, [r2, #0x26] + strh r1, [r2, #0x24] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r2, #0x28] +_080AFF3E: + pop {r0} + bx r0 + .align 2, 0 +_080AFF44: .4byte 0x68736D53 + + thumb_func_start m4aSoundInit +m4aSoundInit: @ 0x080AFF48 + push {r4, r5, r6, lr} + ldr r0, _080AFF9C @ =SoundMainRAM + movs r1, #2 + rsbs r1, r1, #0 + ands r0, r1 + ldr r1, _080AFFA0 @ =gUnk_0300404C + ldr r2, _080AFFA4 @ =0x040000E0 + bl CpuSet + ldr r0, _080AFFA8 @ =gUnk_030043D0 + bl SoundInit + ldr r0, _080AFFAC @ =gUnk_03004DE0 + bl MPlayExtender + ldr r0, _080AFFB0 @ =0x0095F800 + bl m4aSoundMode + ldr r0, _080AFFB4 @ =0x00000020 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0 + beq _080AFF96 + ldr r5, _080AFFB8 @ =gUnk_08A11C3C + adds r6, r0, #0 +_080AFF7A: + ldr r4, [r5] + ldr r1, [r5, #4] + ldrb r2, [r5, #8] + adds r0, r4, #0 + bl MPlayOpen + ldrh r0, [r5, #0xa] + strb r0, [r4, #0xb] + ldr r0, _080AFFBC @ =gUnk_030055E0 + str r0, [r4, #0x18] + adds r5, #0xc + subs r6, #1 + cmp r6, #0 + bne _080AFF7A +_080AFF96: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080AFF9C: .4byte SoundMainRAM +_080AFFA0: .4byte gUnk_0300404C +_080AFFA4: .4byte 0x040000E0 +_080AFFA8: .4byte gUnk_030043D0 +_080AFFAC: .4byte gUnk_03004DE0 +_080AFFB0: .4byte 0x0095F800 +_080AFFB4: .4byte 0x00000020 +_080AFFB8: .4byte gUnk_08A11C3C +_080AFFBC: .4byte gUnk_030055E0 + + thumb_func_start m4aSoundMain +m4aSoundMain: @ 0x080AFFC0 + push {lr} + bl SoundMain + pop {r0} + bx r0 + .align 2, 0 + + thumb_func_start m4aSongNumStart +m4aSongNumStart: @ 0x080AFFCC + push {lr} + lsls r0, r0, #0x10 + ldr r3, _080AFFF0 @ =gUnk_08A11C3C + ldr r1, _080AFFF4 @ =gUnk_08A11DBC + lsrs r0, r0, #0xd + adds r0, r0, r1 + ldrh r2, [r0, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r3 + ldr r2, [r1] + ldr r1, [r0] + adds r0, r2, #0 + bl MPlayStart + pop {r0} + bx r0 + .align 2, 0 +_080AFFF0: .4byte gUnk_08A11C3C +_080AFFF4: .4byte gUnk_08A11DBC + + thumb_func_start m4aSongNumStartOrChange +m4aSongNumStartOrChange: @ 0x080AFFF8 + push {lr} + lsls r0, r0, #0x10 + ldr r3, _080B0024 @ =gUnk_08A11C3C + ldr r1, _080B0028 @ =gUnk_08A11DBC + lsrs r0, r0, #0xd + adds r0, r0, r1 + ldrh r2, [r0, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r3 + ldr r1, [r1] + ldr r3, [r1] + ldr r2, [r0] + cmp r3, r2 + beq _080B002C + adds r0, r1, #0 + adds r1, r2, #0 + bl MPlayStart + b _080B0040 + .align 2, 0 +_080B0024: .4byte gUnk_08A11C3C +_080B0028: .4byte gUnk_08A11DBC +_080B002C: + ldr r2, [r1, #4] + ldrh r0, [r1, #4] + cmp r0, #0 + beq _080B0038 + cmp r2, #0 + bge _080B0040 +_080B0038: + adds r0, r1, #0 + adds r1, r3, #0 + bl MPlayStart +_080B0040: + pop {r0} + bx r0 + + thumb_func_start m4aSongNumStartOrContinue +m4aSongNumStartOrContinue: @ 0x080B0044 + push {lr} + lsls r0, r0, #0x10 + ldr r3, _080B0070 @ =gUnk_08A11C3C + ldr r1, _080B0074 @ =gUnk_08A11DBC + lsrs r0, r0, #0xd + adds r0, r0, r1 + ldrh r2, [r0, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r3 + ldr r1, [r1] + ldr r3, [r1] + ldr r2, [r0] + cmp r3, r2 + beq _080B0078 + adds r0, r1, #0 + adds r1, r2, #0 + bl MPlayStart + b _080B0094 + .align 2, 0 +_080B0070: .4byte gUnk_08A11C3C +_080B0074: .4byte gUnk_08A11DBC +_080B0078: + ldr r2, [r1, #4] + ldrh r0, [r1, #4] + cmp r0, #0 + bne _080B008A + adds r0, r1, #0 + adds r1, r3, #0 + bl MPlayStart + b _080B0094 +_080B008A: + cmp r2, #0 + bge _080B0094 + adds r0, r1, #0 + bl MPlayContinue +_080B0094: + pop {r0} + bx r0 + + thumb_func_start m4aSongNumStop +m4aSongNumStop: @ 0x080B0098 + push {lr} + lsls r0, r0, #0x10 + ldr r3, _080B00C4 @ =gUnk_08A11C3C + ldr r1, _080B00C8 @ =gUnk_08A11DBC + lsrs r0, r0, #0xd + adds r0, r0, r1 + ldrh r2, [r0, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r3 + ldr r2, [r1] + ldr r1, [r2] + ldr r0, [r0] + cmp r1, r0 + bne _080B00BE + adds r0, r2, #0 + bl MPlayStop +_080B00BE: + pop {r0} + bx r0 + .align 2, 0 +_080B00C4: .4byte gUnk_08A11C3C +_080B00C8: .4byte gUnk_08A11DBC + + thumb_func_start m4aSongNumContinue +m4aSongNumContinue: @ 0x080B00CC + push {lr} + lsls r0, r0, #0x10 + ldr r3, _080B00F8 @ =gUnk_08A11C3C + ldr r1, _080B00FC @ =gUnk_08A11DBC + lsrs r0, r0, #0xd + adds r0, r0, r1 + ldrh r2, [r0, #4] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r3 + ldr r2, [r1] + ldr r1, [r2] + ldr r0, [r0] + cmp r1, r0 + bne _080B00F2 + adds r0, r2, #0 + bl MPlayContinue +_080B00F2: + pop {r0} + bx r0 + .align 2, 0 +_080B00F8: .4byte gUnk_08A11C3C +_080B00FC: .4byte gUnk_08A11DBC + + thumb_func_start m4aMPlayAllStop +m4aMPlayAllStop: @ 0x080B0100 + push {r4, r5, lr} + ldr r0, _080B0124 @ =0x00000020 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0 + beq _080B011E + ldr r5, _080B0128 @ =gUnk_08A11C3C + adds r4, r0, #0 +_080B0110: + ldr r0, [r5] + bl MPlayStop + adds r5, #0xc + subs r4, #1 + cmp r4, #0 + bne _080B0110 +_080B011E: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B0124: .4byte 0x00000020 +_080B0128: .4byte gUnk_08A11C3C + + thumb_func_start m4aMPlayContinue +m4aMPlayContinue: @ 0x080B012C + push {lr} + bl MPlayContinue + pop {r0} + bx r0 + .align 2, 0 + + thumb_func_start m4aMPlayAllContinue +m4aMPlayAllContinue: @ 0x080B0138 + push {r4, r5, lr} + ldr r0, _080B015C @ =0x00000020 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0 + beq _080B0156 + ldr r5, _080B0160 @ =gUnk_08A11C3C + adds r4, r0, #0 +_080B0148: + ldr r0, [r5] + bl MPlayContinue + adds r5, #0xc + subs r4, #1 + cmp r4, #0 + bne _080B0148 +_080B0156: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B015C: .4byte 0x00000020 +_080B0160: .4byte gUnk_08A11C3C + + thumb_func_start m4aMPlayFadeOut +m4aMPlayFadeOut: @ 0x080B0164 + push {lr} + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + bl MPlayFadeOut + pop {r0} + bx r0 + .align 2, 0 + + thumb_func_start m4aMPlayFadeOutTemporarily +m4aMPlayFadeOutTemporarily: @ 0x080B0174 + push {lr} + adds r2, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r3, [r2, #0x34] + ldr r0, _080B0190 @ =0x68736D53 + cmp r3, r0 + bne _080B018C + strh r1, [r2, #0x26] + strh r1, [r2, #0x24] + ldr r0, _080B0194 @ =0x00000101 + strh r0, [r2, #0x28] +_080B018C: + pop {r0} + bx r0 + .align 2, 0 +_080B0190: .4byte 0x68736D53 +_080B0194: .4byte 0x00000101 + + thumb_func_start m4aMPlayFadeIn +m4aMPlayFadeIn: @ 0x080B0198 + push {lr} + adds r2, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r3, [r2, #0x34] + ldr r0, _080B01BC @ =0x68736D53 + cmp r3, r0 + bne _080B01B8 + strh r1, [r2, #0x26] + strh r1, [r2, #0x24] + movs r0, #2 + strh r0, [r2, #0x28] + ldr r0, [r2, #4] + ldr r1, _080B01C0 @ =0x7FFFFFFF + ands r0, r1 + str r0, [r2, #4] +_080B01B8: + pop {r0} + bx r0 + .align 2, 0 +_080B01BC: .4byte 0x68736D53 +_080B01C0: .4byte 0x7FFFFFFF + + thumb_func_start m4aMPlayImmInit +m4aMPlayImmInit: @ 0x080B01C4 + push {r4, r5, r6, r7, lr} + sub sp, #4 + adds r7, r0, #0 + ldr r1, [r7, #0x34] + ldr r0, _080B0228 @ =0x68736D53 + cmp r1, r0 + bne _080B021E + adds r0, r1, #1 + str r0, [r7, #0x34] + ldrb r5, [r7, #8] + ldr r4, [r7, #0x2c] + cmp r5, #0 + ble _080B021A + movs r2, #0x80 +_080B01E0: + ldrb r1, [r4] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _080B0212 + movs r6, #0x40 + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _080B0212 + adds r0, r4, #0 + str r2, [sp] + bl Clear64byte + ldr r2, [sp] + strb r2, [r4] + movs r0, #2 + strb r0, [r4, #0xf] + strb r6, [r4, #0x13] + movs r0, #0x16 + strb r0, [r4, #0x19] + adds r1, r4, #0 + adds r1, #0x24 + movs r0, #1 + strb r0, [r1] +_080B0212: + subs r5, #1 + adds r4, #0x50 + cmp r5, #0 + bgt _080B01E0 +_080B021A: + ldr r0, _080B0228 @ =0x68736D53 + str r0, [r7, #0x34] +_080B021E: + add sp, #4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080B0228: .4byte 0x68736D53 + + thumb_func_start MPlayExtender +MPlayExtender: @ 0x080B022C + push {r4, r5, r6, lr} + sub sp, #4 + adds r5, r0, #0 + ldr r1, _080B02F4 @ =0x04000084 + movs r0, #0x8f + strh r0, [r1] + ldr r3, _080B02F8 @ =0x04000080 + movs r2, #0 + strh r2, [r3] + ldr r0, _080B02FC @ =0x04000063 + movs r1, #8 + strb r1, [r0] + adds r0, #6 + strb r1, [r0] + adds r0, #0x10 + strb r1, [r0] + subs r0, #0x14 + movs r1, #0x80 + strb r1, [r0] + adds r0, #8 + strb r1, [r0] + adds r0, #0x10 + strb r1, [r0] + subs r0, #0xd + strb r2, [r0] + movs r0, #0x77 + strb r0, [r3] + ldr r0, _080B0300 @ =0x03007FF0 + ldr r4, [r0] + ldr r6, [r4] + ldr r0, _080B0304 @ =0x68736D53 + cmp r6, r0 + bne _080B02EC + adds r0, r6, #1 + str r0, [r4] + ldr r1, _080B0308 @ =gUnk_03004D50 + ldr r0, _080B030C @ =ply_memacc + str r0, [r1, #0x20] + ldr r0, _080B0310 @ =ply_lfos + str r0, [r1, #0x44] + ldr r0, _080B0314 @ =ply_mod + str r0, [r1, #0x4c] + ldr r0, _080B0318 @ =ply_xcmd + str r0, [r1, #0x70] + ldr r0, _080B031C @ =ply_endtie + str r0, [r1, #0x74] + ldr r0, _080B0320 @ =SampleFreqSet + str r0, [r1, #0x78] + ldr r0, _080B0324 @ =TrackStop + str r0, [r1, #0x7c] + adds r2, r1, #0 + adds r2, #0x80 + ldr r0, _080B0328 @ =FadeOutBody + str r0, [r2] + adds r1, #0x84 + ldr r0, _080B032C @ =TrkVolPitSet + str r0, [r1] + str r5, [r4, #0x1c] + ldr r0, _080B0330 @ =CgbSound + str r0, [r4, #0x28] + ldr r0, _080B0334 @ =CgbOscOff + str r0, [r4, #0x2c] + ldr r0, _080B0338 @ =MidiKeyToCgbFreq + str r0, [r4, #0x30] + ldr r0, _080B033C @ =0x00000000 + movs r1, #0 + strb r0, [r4, #0xc] + str r1, [sp] + ldr r2, _080B0340 @ =0x05000040 + mov r0, sp + adds r1, r5, #0 + bl CpuSet + movs r0, #1 + strb r0, [r5, #1] + movs r0, #0x11 + strb r0, [r5, #0x1c] + adds r1, r5, #0 + adds r1, #0x41 + movs r0, #2 + strb r0, [r1] + adds r1, #0x1b + movs r0, #0x22 + strb r0, [r1] + adds r1, #0x25 + movs r0, #3 + strb r0, [r1] + adds r1, #0x1b + movs r0, #0x44 + strb r0, [r1] + adds r1, #0x24 + movs r0, #4 + strb r0, [r1, #1] + movs r0, #0x88 + strb r0, [r1, #0x1c] + str r6, [r4] +_080B02EC: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080B02F4: .4byte 0x04000084 +_080B02F8: .4byte 0x04000080 +_080B02FC: .4byte 0x04000063 +_080B0300: .4byte 0x03007FF0 +_080B0304: .4byte 0x68736D53 +_080B0308: .4byte gUnk_03004D50 +_080B030C: .4byte ply_memacc +_080B0310: .4byte ply_lfos +_080B0314: .4byte ply_mod +_080B0318: .4byte ply_xcmd +_080B031C: .4byte ply_endtie +_080B0320: .4byte SampleFreqSet +_080B0324: .4byte TrackStop +_080B0328: .4byte FadeOutBody +_080B032C: .4byte TrkVolPitSet +_080B0330: .4byte CgbSound +_080B0334: .4byte CgbOscOff +_080B0338: .4byte MidiKeyToCgbFreq +_080B033C: .4byte 0x00000000 +_080B0340: .4byte 0x05000040 + + thumb_func_start MusicPlayerJumpTableCopy +MusicPlayerJumpTableCopy: @ 0x080B0344 + svc #0x2a + bx lr + + thumb_func_start ClearChain +ClearChain: @ 0x080B0348 + push {lr} + ldr r1, _080B0358 @ =gUnk_03004DD8 + ldr r1, [r1] + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_080B0358: .4byte gUnk_03004DD8 + + thumb_func_start Clear64byte +Clear64byte: @ 0x080B035C + push {lr} + ldr r1, _080B036C @ =gUnk_03004DDC + ldr r1, [r1] + bl _call_via_r1 + pop {r0} + bx r0 + .align 2, 0 +_080B036C: .4byte gUnk_03004DDC + + thumb_func_start SoundInit +SoundInit: @ 0x080B0370 + push {r4, r5, lr} + sub sp, #4 + adds r5, r0, #0 + movs r3, #0 + str r3, [r5] + ldr r2, _080B0408 @ =0x040000C4 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #0x12 + ands r0, r1 + cmp r0, #0 + beq _080B038C + ldr r0, _080B040C @ =0x84400004 + str r0, [r2] +_080B038C: + ldr r1, _080B0410 @ =0x040000C6 + movs r2, #0x80 + lsls r2, r2, #3 + adds r0, r2, #0 + strh r0, [r1] + subs r1, #0x42 + movs r0, #0x8f + strh r0, [r1] + subs r1, #2 + ldr r2, _080B0414 @ =0x00000B0E + adds r0, r2, #0 + strh r0, [r1] + ldr r2, _080B0418 @ =0x04000089 + ldrb r1, [r2] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r2] + ldr r1, _080B041C @ =0x040000BC + movs r2, #0xd4 + lsls r2, r2, #2 + adds r0, r5, r2 + str r0, [r1] + adds r1, #4 + ldr r0, _080B0420 @ =0x040000A0 + str r0, [r1] + ldr r0, _080B0424 @ =0x03007FF0 + str r5, [r0] + str r3, [sp] + ldr r2, _080B0428 @ =0x05000260 + mov r0, sp + adds r1, r5, #0 + bl CpuSet + movs r0, #8 + strb r0, [r5, #6] + movs r0, #0xf + strb r0, [r5, #7] + ldr r0, _080B042C @ =ply_note + str r0, [r5, #0x38] + ldr r0, _080B0430 @ =nullsub_544 + str r0, [r5, #0x28] + str r0, [r5, #0x2c] + str r0, [r5, #0x30] + str r0, [r5, #0x3c] + ldr r4, _080B0434 @ =gUnk_03004D50 + adds r0, r4, #0 + bl MPlayJumpTableCopy + str r4, [r5, #0x34] + movs r0, #0x80 + lsls r0, r0, #0xb + bl SampleFreqSet + ldr r0, _080B0438 @ =0x68736D53 + str r0, [r5] + add sp, #4 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B0408: .4byte 0x040000C4 +_080B040C: .4byte 0x84400004 +_080B0410: .4byte 0x040000C6 +_080B0414: .4byte 0x00000B0E +_080B0418: .4byte 0x04000089 +_080B041C: .4byte 0x040000BC +_080B0420: .4byte 0x040000A0 +_080B0424: .4byte 0x03007FF0 +_080B0428: .4byte 0x05000260 +_080B042C: .4byte ply_note +_080B0430: .4byte nullsub_544 +_080B0434: .4byte gUnk_03004D50 +_080B0438: .4byte 0x68736D53 + + thumb_func_start SampleFreqSet +SampleFreqSet: @ 0x080B043C + push {r4, r5, lr} + adds r4, r0, #0 + bl m4aSoundVSyncOff + ldr r0, _080B0494 @ =0x03007FF0 + ldr r5, [r0] + movs r0, #0xf0 + lsls r0, r0, #0xc + ands r0, r4 + lsrs r4, r0, #0x10 + strb r4, [r5, #8] + ldr r1, _080B0498 @ =gUnk_089FC838 + subs r0, r4, #1 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r4, [r0] + str r4, [r5, #0x10] + movs r0, #0xc6 + lsls r0, r0, #3 + adds r1, r4, #0 + bl __divsi3 + strb r0, [r5, #0xb] + ldr r0, _080B049C @ =0x00091D1B + muls r0, r4, r0 + ldr r1, _080B04A0 @ =0x00001388 + adds r0, r0, r1 + ldr r1, _080B04A4 @ =0x00002710 + bl __divsi3 + adds r1, r0, #0 + str r1, [r5, #0x14] + movs r0, #0x80 + lsls r0, r0, #0x11 + bl __divsi3 + adds r0, #1 + asrs r0, r0, #1 + str r0, [r5, #0x18] + bl m4aSoundVSyncOn + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B0494: .4byte 0x03007FF0 +_080B0498: .4byte gUnk_089FC838 +_080B049C: .4byte 0x00091D1B +_080B04A0: .4byte 0x00001388 +_080B04A4: .4byte 0x00002710 + + thumb_func_start m4aSoundMode +m4aSoundMode: @ 0x080B04A8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _080B0530 @ =0x03007FF0 + ldr r4, [r0] + ldr r1, [r4] + ldr r0, _080B0534 @ =0x68736D53 + cmp r1, r0 + bne _080B052A + adds r0, r1, #1 + str r0, [r4] + movs r3, #0xff + ands r3, r5 + cmp r3, #0 + beq _080B04CA + movs r0, #0x7f + ands r3, r0 + strb r3, [r4, #5] +_080B04CA: + movs r3, #0xf0 + lsls r3, r3, #4 + ands r3, r5 + cmp r3, #0 + beq _080B04EA + lsrs r0, r3, #8 + strb r0, [r4, #6] + movs r3, #0xc + adds r0, r4, #0 + adds r0, #0x50 + movs r1, #0 +_080B04E0: + strb r1, [r0] + subs r3, #1 + adds r0, #0x40 + cmp r3, #0 + bne _080B04E0 +_080B04EA: + movs r3, #0xf0 + lsls r3, r3, #8 + ands r3, r5 + cmp r3, #0 + beq _080B04F8 + lsrs r0, r3, #0xc + strb r0, [r4, #7] +_080B04F8: + movs r3, #0xb0 + lsls r3, r3, #0x10 + ands r3, r5 + cmp r3, #0 + beq _080B0516 + movs r0, #0xc0 + lsls r0, r0, #0xe + ands r0, r3 + lsrs r3, r0, #0xe + ldr r2, _080B0538 @ =0x04000089 + ldrb r1, [r2] + movs r0, #0x3f + ands r0, r1 + orrs r0, r3 + strb r0, [r2] +_080B0516: + movs r3, #0xf0 + lsls r3, r3, #0xc + ands r3, r5 + cmp r3, #0 + beq _080B0526 + adds r0, r3, #0 + bl SampleFreqSet +_080B0526: + ldr r0, _080B0534 @ =0x68736D53 + str r0, [r4] +_080B052A: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080B0530: .4byte 0x03007FF0 +_080B0534: .4byte 0x68736D53 +_080B0538: .4byte 0x04000089 + + thumb_func_start SoundClear +SoundClear: @ 0x080B053C + push {r4, r5, r6, r7, lr} + ldr r0, _080B0588 @ =0x03007FF0 + ldr r6, [r0] + ldr r1, [r6] + ldr r0, _080B058C @ =0x68736D53 + cmp r1, r0 + bne _080B0582 + adds r0, r1, #1 + str r0, [r6] + movs r5, #0xc + adds r4, r6, #0 + adds r4, #0x50 + movs r0, #0 +_080B0556: + strb r0, [r4] + subs r5, #1 + adds r4, #0x40 + cmp r5, #0 + bgt _080B0556 + ldr r4, [r6, #0x1c] + cmp r4, #0 + beq _080B057E + movs r5, #1 + movs r7, #0 +_080B056A: + lsls r0, r5, #0x18 + lsrs r0, r0, #0x18 + ldr r1, [r6, #0x2c] + bl _call_via_r1 + strb r7, [r4] + adds r5, #1 + adds r4, #0x40 + cmp r5, #4 + ble _080B056A +_080B057E: + ldr r0, _080B058C @ =0x68736D53 + str r0, [r6] +_080B0582: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080B0588: .4byte 0x03007FF0 +_080B058C: .4byte 0x68736D53 + + thumb_func_start m4aSoundVSyncOff +m4aSoundVSyncOff: @ 0x080B0590 + push {lr} + sub sp, #4 + ldr r0, _080B05E4 @ =0x03007FF0 + ldr r2, [r0] + ldr r1, [r2] + ldr r3, _080B05E8 @ =0x978C92AD + adds r0, r1, r3 + cmp r0, #1 + bhi _080B05DC + adds r0, r1, #0 + adds r0, #0xa + str r0, [r2] + ldr r1, _080B05EC @ =0x04000102 + movs r0, #0 + strh r0, [r1] + ldr r3, _080B05F0 @ =0x040000C4 + ldr r0, [r3] + movs r1, #0x80 + lsls r1, r1, #0x12 + ands r0, r1 + cmp r0, #0 + beq _080B05C0 + ldr r0, _080B05F4 @ =0x84400004 + str r0, [r3] +_080B05C0: + ldr r1, _080B05F8 @ =0x040000C6 + movs r3, #0x80 + lsls r3, r3, #3 + adds r0, r3, #0 + strh r0, [r1] + movs r0, #0 + str r0, [sp] + movs r0, #0xd4 + lsls r0, r0, #2 + adds r1, r2, r0 + ldr r2, _080B05FC @ =0x0500018C + mov r0, sp + bl CpuSet +_080B05DC: + add sp, #4 + pop {r0} + bx r0 + .align 2, 0 +_080B05E4: .4byte 0x03007FF0 +_080B05E8: .4byte 0x978C92AD +_080B05EC: .4byte 0x04000102 +_080B05F0: .4byte 0x040000C4 +_080B05F4: .4byte 0x84400004 +_080B05F8: .4byte 0x040000C6 +_080B05FC: .4byte 0x0500018C + + thumb_func_start m4aSoundVSyncOn +m4aSoundVSyncOn: @ 0x080B0600 + push {r4, lr} + ldr r0, _080B0658 @ =0x03007FF0 + ldr r2, [r0] + ldr r3, [r2] + ldr r0, _080B065C @ =0x68736D53 + cmp r3, r0 + beq _080B0650 + ldr r1, _080B0660 @ =0x040000C6 + movs r4, #0xb6 + lsls r4, r4, #8 + adds r0, r4, #0 + strh r0, [r1] + ldrb r0, [r2, #4] + movs r0, #0 + strb r0, [r2, #4] + adds r0, r3, #0 + subs r0, #0xa + str r0, [r2] + ldr r3, _080B0664 @ =0x04000006 + ldrb r0, [r3] + ldr r1, [r2, #0x10] + cmp r0, #0x9f + bne _080B0636 + adds r2, r3, #0 +_080B0630: + ldrb r0, [r2] + cmp r0, #0x9f + beq _080B0630 +_080B0636: + ldr r2, _080B0664 @ =0x04000006 +_080B0638: + ldrb r0, [r2] + cmp r0, #0x9f + bne _080B0638 + ldr r4, _080B0668 @ =0x04000100 + ldr r0, _080B066C @ =0x00044940 + bl __divsi3 + rsbs r0, r0, #0 + strh r0, [r4] + ldr r1, _080B0670 @ =0x04000102 + movs r0, #0x80 + strh r0, [r1] +_080B0650: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B0658: .4byte 0x03007FF0 +_080B065C: .4byte 0x68736D53 +_080B0660: .4byte 0x040000C6 +_080B0664: .4byte 0x04000006 +_080B0668: .4byte 0x04000100 +_080B066C: .4byte 0x00044940 +_080B0670: .4byte 0x04000102 + + thumb_func_start m4aSoundVSync +m4aSoundVSync: @ 0x080B0674 + push {lr} + ldr r0, _080B06C4 @ =0x03007FF0 + ldr r2, [r0] + ldr r0, [r2] + ldr r1, _080B06C8 @ =0x978C92AD + adds r0, r0, r1 + cmp r0, #1 + bhi _080B06BE + ldrb r0, [r2, #4] + subs r0, #1 + ldrb r1, [r2, #4] + strb r0, [r2, #4] + ldrb r0, [r2, #4] + lsls r0, r0, #0x18 + cmp r0, #0 + bgt _080B06BE + ldrb r0, [r2, #0xb] + ldrb r1, [r2, #4] + strb r0, [r2, #4] + ldr r2, _080B06CC @ =0x040000C4 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #0x12 + ands r0, r1 + cmp r0, #0 + beq _080B06AC + ldr r0, _080B06D0 @ =0x84400004 + str r0, [r2] +_080B06AC: + ldr r0, _080B06D4 @ =0x040000C6 + movs r2, #0x80 + lsls r2, r2, #3 + adds r1, r2, #0 + strh r1, [r0] + movs r2, #0xb6 + lsls r2, r2, #8 + adds r1, r2, #0 + strh r1, [r0] +_080B06BE: + pop {r0} + bx r0 + .align 2, 0 +_080B06C4: .4byte 0x03007FF0 +_080B06C8: .4byte 0x978C92AD +_080B06CC: .4byte 0x040000C4 +_080B06D0: .4byte 0x84400004 +_080B06D4: .4byte 0x040000C6 + + thumb_func_start MPlayOpen +MPlayOpen: @ 0x080B06D8 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r6, r1, #0 + lsls r2, r2, #0x18 + lsrs r4, r2, #0x18 + cmp r4, #0 + beq _080B073C + cmp r4, #0x10 + bls _080B06EC + movs r4, #0x10 +_080B06EC: + ldr r0, _080B0744 @ =0x03007FF0 + ldr r5, [r0] + ldr r1, [r5] + ldr r0, _080B0748 @ =0x68736D53 + cmp r1, r0 + bne _080B073C + adds r0, r1, #1 + str r0, [r5] + adds r0, r7, #0 + bl Clear64byte + str r6, [r7, #0x2c] + strb r4, [r7, #8] + movs r0, #0x80 + lsls r0, r0, #0x18 + str r0, [r7, #4] + cmp r4, #0 + beq _080B0720 + movs r1, #0 +_080B0712: + strb r1, [r6] + subs r0, r4, #1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + adds r6, #0x50 + cmp r4, #0 + bne _080B0712 +_080B0720: + ldr r0, [r5, #0x20] + cmp r0, #0 + beq _080B0730 + str r0, [r7, #0x38] + ldr r0, [r5, #0x24] + str r0, [r7, #0x3c] + movs r0, #0 + str r0, [r5, #0x20] +_080B0730: + str r7, [r5, #0x24] + ldr r0, _080B074C @ =MPlayMain + str r0, [r5, #0x20] + ldr r0, _080B0748 @ =0x68736D53 + str r0, [r5] + str r0, [r7, #0x34] +_080B073C: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080B0744: .4byte 0x03007FF0 +_080B0748: .4byte 0x68736D53 +_080B074C: .4byte MPlayMain + + thumb_func_start MPlayStart +MPlayStart: @ 0x080B0750 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + adds r7, r1, #0 + ldr r1, [r5, #0x34] + ldr r0, _080B0830 @ =0x68736D53 + cmp r1, r0 + bne _080B0824 + adds r0, r1, #1 + str r0, [r5, #0x34] + ldrb r0, [r5, #0xb] + ldrb r2, [r7, #2] + cmp r0, #0 + beq _080B0796 + ldr r0, [r5] + cmp r0, #0 + beq _080B0780 + ldr r0, [r5, #0x2c] + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _080B078C +_080B0780: + ldr r1, [r5, #4] + ldrh r0, [r5, #4] + cmp r0, #0 + beq _080B0796 + cmp r1, #0 + blt _080B0796 +_080B078C: + ldrb r0, [r7, #2] + ldrb r1, [r5, #9] + adds r2, r0, #0 + cmp r1, r2 + bhi _080B0820 +_080B0796: + movs r1, #0 + str r1, [r5, #4] + str r7, [r5] + ldr r0, [r7, #4] + str r0, [r5, #0x30] + strb r2, [r5, #9] + str r1, [r5, #0xc] + movs r0, #0x96 + strh r0, [r5, #0x1c] + strh r0, [r5, #0x20] + adds r0, #0x6a + strh r0, [r5, #0x1e] + strh r1, [r5, #0x22] + strh r1, [r5, #0x24] + movs r6, #0 + ldr r4, [r5, #0x2c] + ldrb r0, [r7] + cmp r6, r0 + bge _080B07F0 + ldrb r0, [r5, #8] + cmp r6, r0 + bge _080B0810 + mov r8, r6 +_080B07C4: + adds r0, r5, #0 + adds r1, r4, #0 + bl TrackStop + movs r0, #0xc0 + strb r0, [r4] + mov r0, r8 + str r0, [r4, #0x20] + lsls r1, r6, #2 + adds r0, r7, #0 + adds r0, #8 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r4, #0x40] + adds r6, #1 + adds r4, #0x50 + ldrb r0, [r7] + cmp r6, r0 + bge _080B07F0 + ldrb r0, [r5, #8] + cmp r6, r0 + blt _080B07C4 +_080B07F0: + ldrb r0, [r5, #8] + cmp r6, r0 + bge _080B0810 + movs r0, #0 + mov r8, r0 +_080B07FA: + adds r0, r5, #0 + adds r1, r4, #0 + bl TrackStop + mov r0, r8 + strb r0, [r4] + adds r6, #1 + adds r4, #0x50 + ldrb r0, [r5, #8] + cmp r6, r0 + blt _080B07FA +_080B0810: + ldrb r1, [r7, #3] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080B0820 + ldrb r0, [r7, #3] + bl m4aSoundMode +_080B0820: + ldr r0, _080B0830 @ =0x68736D53 + str r0, [r5, #0x34] +_080B0824: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080B0830: .4byte 0x68736D53 + + thumb_func_start MPlayStop +MPlayStop: @ 0x080B0834 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r1, [r6, #0x34] + ldr r0, _080B0870 @ =0x68736D53 + cmp r1, r0 + bne _080B086A + adds r0, r1, #1 + str r0, [r6, #0x34] + ldr r0, [r6, #4] + movs r1, #0x80 + lsls r1, r1, #0x18 + orrs r0, r1 + str r0, [r6, #4] + ldrb r4, [r6, #8] + ldr r5, [r6, #0x2c] + cmp r4, #0 + ble _080B0866 +_080B0856: + adds r0, r6, #0 + adds r1, r5, #0 + bl TrackStop + subs r4, #1 + adds r5, #0x50 + cmp r4, #0 + bgt _080B0856 +_080B0866: + ldr r0, _080B0870 @ =0x68736D53 + str r0, [r6, #0x34] +_080B086A: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080B0870: .4byte 0x68736D53 + + thumb_func_start FadeOutBody +FadeOutBody: @ 0x080B0874 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + ldrh r1, [r6, #0x24] + cmp r1, #0 + beq _080B0936 + ldrh r0, [r6, #0x26] + subs r0, #1 + strh r0, [r6, #0x26] + ldr r3, _080B08B4 @ =0x0000FFFF + adds r2, r3, #0 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #0 + bne _080B0936 + strh r1, [r6, #0x26] + ldrh r1, [r6, #0x28] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080B08B8 + adds r0, r1, #0 + adds r0, #0x10 + strh r0, [r6, #0x28] + ands r0, r2 + cmp r0, #0xff + bls _080B090A + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r6, #0x28] + strh r3, [r6, #0x24] + b _080B090A + .align 2, 0 +_080B08B4: .4byte 0x0000FFFF +_080B08B8: + adds r0, r1, #0 + subs r0, #0x10 + strh r0, [r6, #0x28] + ands r0, r2 + lsls r0, r0, #0x10 + cmp r0, #0 + bgt _080B090A + ldrb r5, [r6, #8] + ldr r4, [r6, #0x2c] + cmp r5, #0 + ble _080B08EA +_080B08CE: + adds r0, r6, #0 + adds r1, r4, #0 + bl TrackStop + ldrh r0, [r6, #0x28] + movs r1, #1 + ands r1, r0 + cmp r1, #0 + bne _080B08E2 + strb r1, [r4] +_080B08E2: + subs r5, #1 + adds r4, #0x50 + cmp r5, #0 + bgt _080B08CE +_080B08EA: + ldrh r1, [r6, #0x28] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080B08FE + ldr r0, [r6, #4] + movs r1, #0x80 + lsls r1, r1, #0x18 + orrs r0, r1 + b _080B0902 +_080B08FE: + movs r0, #0x80 + lsls r0, r0, #0x18 +_080B0902: + str r0, [r6, #4] + movs r0, #0 + strh r0, [r6, #0x24] + b _080B0936 +_080B090A: + ldrb r5, [r6, #8] + ldr r4, [r6, #0x2c] + cmp r5, #0 + ble _080B0936 + movs r3, #0x80 + movs r7, #0 + movs r2, #3 +_080B0918: + ldrb r1, [r4] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _080B092E + ldrh r0, [r6, #0x28] + lsrs r0, r0, #2 + strb r0, [r4, #0x13] + adds r0, r1, #0 + orrs r0, r2 + strb r0, [r4] +_080B092E: + subs r5, #1 + adds r4, #0x50 + cmp r5, #0 + bgt _080B0918 +_080B0936: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + + thumb_func_start TrkVolPitSet +TrkVolPitSet: @ 0x080B093C + push {r4, lr} + adds r2, r1, #0 + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080B099E + ldrb r0, [r2, #0x12] + ldrb r1, [r2, #0x13] + muls r0, r1, r0 + lsrs r3, r0, #5 + ldrb r4, [r2, #0x18] + cmp r4, #1 + bne _080B0962 + movs r0, #0x16 + ldrsb r0, [r2, r0] + adds r0, #0x80 + muls r0, r3, r0 + lsrs r3, r0, #7 +_080B0962: + movs r0, #0x14 + ldrsb r0, [r2, r0] + lsls r0, r0, #1 + movs r1, #0x15 + ldrsb r1, [r2, r1] + adds r1, r0, r1 + cmp r4, #2 + bne _080B0978 + movs r0, #0x16 + ldrsb r0, [r2, r0] + adds r1, r1, r0 +_080B0978: + movs r0, #0x80 + rsbs r0, r0, #0 + cmp r1, r0 + bge _080B0984 + adds r1, r0, #0 + b _080B098A +_080B0984: + cmp r1, #0x7f + ble _080B098A + movs r1, #0x7f +_080B098A: + adds r0, r1, #0 + adds r0, #0x80 + muls r0, r3, r0 + lsrs r0, r0, #8 + strb r0, [r2, #0x10] + movs r0, #0x7f + subs r0, r0, r1 + muls r0, r3, r0 + lsrs r0, r0, #8 + strb r0, [r2, #0x11] +_080B099E: + ldrb r1, [r2] + movs r0, #4 + ands r0, r1 + adds r3, r1, #0 + cmp r0, #0 + beq _080B09E2 + movs r1, #0xe + ldrsb r1, [r2, r1] + ldrb r0, [r2, #0xf] + muls r0, r1, r0 + movs r1, #0xc + ldrsb r1, [r2, r1] + adds r1, r1, r0 + lsls r1, r1, #2 + movs r0, #0xa + ldrsb r0, [r2, r0] + lsls r0, r0, #8 + adds r1, r1, r0 + movs r0, #0xb + ldrsb r0, [r2, r0] + lsls r0, r0, #8 + adds r1, r1, r0 + ldrb r0, [r2, #0xd] + adds r1, r1, r0 + ldrb r0, [r2, #0x18] + cmp r0, #0 + bne _080B09DC + movs r0, #0x16 + ldrsb r0, [r2, r0] + lsls r0, r0, #4 + adds r1, r1, r0 +_080B09DC: + asrs r0, r1, #8 + strb r0, [r2, #8] + strb r1, [r2, #9] +_080B09E2: + movs r0, #0xfa + ands r0, r3 + strb r0, [r2] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + + thumb_func_start MidiKeyToCgbFreq +MidiKeyToCgbFreq: @ 0x080B09F0 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r5, r1, #0x18 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov ip, r2 + cmp r0, #4 + bne _080B0A28 + cmp r5, #0x14 + bhi _080B0A0C + movs r5, #0 + b _080B0A1A +_080B0A0C: + adds r0, r5, #0 + subs r0, #0x15 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0x3b + bls _080B0A1A + movs r5, #0x3b +_080B0A1A: + ldr r0, _080B0A24 @ =gUnk_089FC8EC + adds r0, r5, r0 + ldrb r0, [r0] + b _080B0A8A + .align 2, 0 +_080B0A24: .4byte gUnk_089FC8EC +_080B0A28: + cmp r5, #0x23 + bhi _080B0A34 + movs r0, #0 + mov ip, r0 + movs r5, #0 + b _080B0A46 +_080B0A34: + adds r0, r5, #0 + subs r0, #0x24 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0x82 + bls _080B0A46 + movs r5, #0x82 + movs r1, #0xff + mov ip, r1 +_080B0A46: + ldr r3, _080B0A90 @ =gUnk_089FC850 + adds r0, r5, r3 + ldrb r6, [r0] + ldr r4, _080B0A94 @ =gUnk_089FC8D4 + movs r2, #0xf + adds r0, r6, #0 + ands r0, r2 + lsls r0, r0, #1 + adds r0, r0, r4 + movs r7, #0 + ldrsh r1, [r0, r7] + asrs r0, r6, #4 + adds r6, r1, #0 + asrs r6, r0 + adds r0, r5, #1 + adds r0, r0, r3 + ldrb r1, [r0] + adds r0, r1, #0 + ands r0, r2 + lsls r0, r0, #1 + adds r0, r0, r4 + movs r2, #0 + ldrsh r0, [r0, r2] + asrs r1, r1, #4 + asrs r0, r1 + subs r0, r0, r6 + mov r7, ip + muls r7, r0, r7 + adds r0, r7, #0 + asrs r0, r0, #8 + adds r0, r6, r0 + movs r1, #0x80 + lsls r1, r1, #4 + adds r0, r0, r1 +_080B0A8A: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080B0A90: .4byte gUnk_089FC850 +_080B0A94: .4byte gUnk_089FC8D4 + + thumb_func_start CgbOscOff +CgbOscOff: @ 0x080B0A98 + push {lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r1, r0, #0 + cmp r0, #2 + beq _080B0AC4 + cmp r0, #2 + bgt _080B0AAE + cmp r0, #1 + beq _080B0AB4 + b _080B0AD8 +_080B0AAE: + cmp r1, #3 + beq _080B0ACC + b _080B0AD8 +_080B0AB4: + ldr r1, _080B0AC0 @ =0x04000063 + movs r0, #8 + strb r0, [r1] + adds r1, #2 + b _080B0AE0 + .align 2, 0 +_080B0AC0: .4byte 0x04000063 +_080B0AC4: + ldr r1, _080B0AC8 @ =0x04000069 + b _080B0ADA + .align 2, 0 +_080B0AC8: .4byte 0x04000069 +_080B0ACC: + ldr r1, _080B0AD4 @ =0x04000070 + movs r0, #0 + b _080B0AE2 + .align 2, 0 +_080B0AD4: .4byte 0x04000070 +_080B0AD8: + ldr r1, _080B0AE8 @ =0x04000079 +_080B0ADA: + movs r0, #8 + strb r0, [r1] + adds r1, #4 +_080B0AE0: + movs r0, #0x80 +_080B0AE2: + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080B0AE8: .4byte 0x04000079 + + thumb_func_start CgbModVol +CgbModVol: @ 0x080B0AEC + push {r4, lr} + adds r2, r0, #0 + ldrb r0, [r2, #2] + ldrb r1, [r2, #3] + lsls r3, r0, #0x18 + lsrs r4, r3, #0x18 + lsls r0, r1, #0x18 + lsrs r1, r0, #0x18 + cmp r4, r1 + blo _080B0B0C + lsrs r0, r3, #0x19 + cmp r0, r1 + blo _080B0B18 + movs r0, #0xf + strb r0, [r2, #0x1b] + b _080B0B26 +_080B0B0C: + lsrs r0, r0, #0x19 + cmp r0, r4 + blo _080B0B18 + movs r0, #0xf0 + strb r0, [r2, #0x1b] + b _080B0B26 +_080B0B18: + movs r0, #0xff + strb r0, [r2, #0x1b] + ldrb r0, [r2, #2] + ldrb r1, [r2, #3] + adds r0, r0, r1 + lsrs r0, r0, #4 + b _080B0B36 +_080B0B26: + ldrb r0, [r2, #2] + ldrb r1, [r2, #3] + adds r0, r0, r1 + lsrs r0, r0, #4 + strb r0, [r2, #0xa] + cmp r0, #0xf + bls _080B0B38 + movs r0, #0xf +_080B0B36: + strb r0, [r2, #0xa] +_080B0B38: + ldrb r1, [r2, #0xa] + ldrb r0, [r2, #6] + muls r0, r1, r0 + adds r0, #0xf + asrs r0, r0, #4 + strb r0, [r2, #0x19] + ldrb r1, [r2, #0x1b] + ldrb r0, [r2, #0x1c] + ands r0, r1 + strb r0, [r2, #0x1b] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 + + thumb_func_start CgbSound +CgbSound: @ 0x080B0B54 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x24 + ldr r0, _080B0B74 @ =0x03007FF0 + ldr r0, [r0] + str r0, [sp, #8] + ldrb r0, [r0, #0xa] + cmp r0, #0 + beq _080B0B78 + subs r0, #1 + ldr r1, [sp, #8] + strb r0, [r1, #0xa] + b _080B0B7E + .align 2, 0 +_080B0B74: .4byte 0x03007FF0 +_080B0B78: + movs r0, #0xe + ldr r3, [sp, #8] + strb r0, [r3, #0xa] +_080B0B7E: + movs r6, #1 + ldr r0, [sp, #8] + ldr r4, [r0, #0x1c] + mov r1, sp + str r1, [sp, #0x1c] +_080B0B88: + ldrb r1, [r4] + movs r0, #0xc7 + ands r0, r1 + adds r3, r6, #1 + mov sl, r3 + movs r1, #0x40 + adds r1, r1, r4 + mov sb, r1 + cmp r0, #0 + bne _080B0B9E + b _080B0FBA +_080B0B9E: + cmp r6, #2 + beq _080B0BD4 + cmp r6, #2 + bgt _080B0BAC + cmp r6, #1 + beq _080B0BB2 + b _080B0C1C +_080B0BAC: + cmp r6, #3 + beq _080B0BF8 + b _080B0C1C +_080B0BB2: + ldr r3, _080B0BC8 @ =0x04000060 + str r3, [sp, #0xc] + adds r3, #2 + ldr r0, _080B0BCC @ =0x04000063 + str r0, [sp, #0x10] + ldr r1, _080B0BD0 @ =0x04000064 + str r1, [sp, #0x14] + adds r0, #2 + str r0, [sp, #0x18] + movs r0, #0 + b _080B0C30 + .align 2, 0 +_080B0BC8: .4byte 0x04000060 +_080B0BCC: .4byte 0x04000063 +_080B0BD0: .4byte 0x04000064 +_080B0BD4: + ldr r3, _080B0BEC @ =0x04000061 + str r3, [sp, #0xc] + adds r3, #7 + ldr r0, _080B0BF0 @ =0x04000069 + str r0, [sp, #0x10] + ldr r1, _080B0BF4 @ =0x0400006C + str r1, [sp, #0x14] + adds r0, #4 + str r0, [sp, #0x18] + movs r0, #1 + b _080B0C30 + .align 2, 0 +_080B0BEC: .4byte 0x04000061 +_080B0BF0: .4byte 0x04000069 +_080B0BF4: .4byte 0x0400006C +_080B0BF8: + ldr r3, _080B0C10 @ =0x04000070 + str r3, [sp, #0xc] + adds r3, #2 + ldr r0, _080B0C14 @ =0x04000073 + str r0, [sp, #0x10] + ldr r1, _080B0C18 @ =0x04000074 + str r1, [sp, #0x14] + adds r0, #2 + str r0, [sp, #0x18] + movs r0, #2 + b _080B0C30 + .align 2, 0 +_080B0C10: .4byte 0x04000070 +_080B0C14: .4byte 0x04000073 +_080B0C18: .4byte 0x04000074 +_080B0C1C: + ldr r3, _080B0C84 @ =0x04000071 + str r3, [sp, #0xc] + adds r3, #7 + ldr r0, _080B0C88 @ =0x04000079 + str r0, [sp, #0x10] + ldr r1, _080B0C8C @ =0x0400007C + str r1, [sp, #0x14] + adds r0, #4 + str r0, [sp, #0x18] + movs r0, #3 +_080B0C30: + ldr r1, [sp, #0x1c] + strb r0, [r1] + ldr r0, [sp, #8] + ldrb r0, [r0, #0xa] + str r0, [sp, #4] + ldr r1, [sp, #0x10] + ldrb r0, [r1] + mov r8, r0 + ldrb r2, [r4] + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + beq _080B0D2A + movs r7, #0x40 + adds r0, r7, #0 + ands r0, r2 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r6, #1 + mov sl, r0 + movs r1, #0x40 + adds r1, r1, r4 + mov sb, r1 + cmp r5, #0 + beq _080B0C64 + b _080B0D60 +_080B0C64: + movs r0, #3 + strb r0, [r4] + strb r0, [r4, #0x1d] + adds r0, r4, #0 + str r3, [sp, #0x20] + bl CgbModVol + ldr r3, [sp, #0x20] + cmp r6, #2 + beq _080B0C9C + cmp r6, #2 + bgt _080B0C90 + cmp r6, #1 + beq _080B0C96 + b _080B0CF0 + .align 2, 0 +_080B0C84: .4byte 0x04000071 +_080B0C88: .4byte 0x04000079 +_080B0C8C: .4byte 0x0400007C +_080B0C90: + cmp r6, #3 + beq _080B0CA8 + b _080B0CF0 +_080B0C96: + ldrb r0, [r4, #0x1f] + ldr r1, [sp, #0xc] + strb r0, [r1] +_080B0C9C: + ldr r0, [r4, #0x24] + lsls r0, r0, #6 + ldrb r1, [r4, #0x1e] + adds r0, r0, r1 + strb r0, [r3] + b _080B0CFC +_080B0CA8: + ldr r1, [r4, #0x24] + ldr r0, [r4, #0x28] + cmp r1, r0 + beq _080B0CD0 + ldr r0, [sp, #0xc] + strb r7, [r0] + ldr r1, _080B0CE4 @ =0x04000090 + ldr r2, [r4, #0x24] + ldr r0, [r2] + str r0, [r1] + adds r1, #4 + ldr r0, [r2, #4] + str r0, [r1] + adds r1, #4 + ldr r0, [r2, #8] + str r0, [r1] + adds r1, #4 + ldr r0, [r2, #0xc] + str r0, [r1] + str r2, [r4, #0x28] +_080B0CD0: + ldr r1, [sp, #0xc] + strb r5, [r1] + ldrb r0, [r4, #0x1e] + strb r0, [r3] + ldrb r0, [r4, #0x1e] + cmp r0, #0 + beq _080B0CE8 + movs r0, #0xc0 + b _080B0D0A + .align 2, 0 +_080B0CE4: .4byte 0x04000090 +_080B0CE8: + movs r3, #0x80 + rsbs r3, r3, #0 + strb r3, [r4, #0x1a] + b _080B0D0C +_080B0CF0: + ldrb r0, [r4, #0x1e] + strb r0, [r3] + ldr r0, [r4, #0x24] + lsls r0, r0, #3 + ldr r1, [sp, #0x14] + strb r0, [r1] +_080B0CFC: + ldrb r0, [r4, #4] + adds r0, #8 + mov r8, r0 + ldrb r0, [r4, #0x1e] + cmp r0, #0 + beq _080B0D0A + movs r0, #0x40 +_080B0D0A: + strb r0, [r4, #0x1a] +_080B0D0C: + ldrb r1, [r4, #4] + movs r2, #0 + strb r1, [r4, #0xb] + movs r0, #0xff + ands r0, r1 + adds r3, r6, #1 + mov sl, r3 + movs r1, #0x40 + adds r1, r1, r4 + mov sb, r1 + cmp r0, #0 + bne _080B0D26 + b _080B0E7A +_080B0D26: + strb r2, [r4, #9] + b _080B0EA8 +_080B0D2A: + movs r0, #4 + ands r0, r2 + cmp r0, #0 + bne _080B0D44 + ldr r0, _080B0D70 @ =0x04000084 + ldrb r1, [r0] + ldr r3, [sp, #0x1c] + ldrb r0, [r3] + asrs r1, r0 + movs r0, #1 + ands r1, r0 + cmp r1, #0 + bne _080B0D74 +_080B0D44: + ldrb r0, [r4, #0xd] + subs r0, #1 + strb r0, [r4, #0xd] + movs r1, #0xff + ands r0, r1 + lsls r0, r0, #0x18 + adds r3, r6, #1 + mov sl, r3 + movs r1, #0x40 + adds r1, r1, r4 + mov sb, r1 + cmp r0, #0 + ble _080B0D60 + b _080B0EBA +_080B0D60: + lsls r0, r6, #0x18 + lsrs r0, r0, #0x18 + bl CgbOscOff + movs r0, #0 + strb r0, [r4] + b _080B0FB6 + .align 2, 0 +_080B0D70: .4byte 0x04000084 +_080B0D74: + movs r0, #0x40 + ands r0, r2 + adds r3, r6, #1 + mov sl, r3 + movs r1, #0x40 + adds r1, r1, r4 + mov sb, r1 + cmp r0, #0 + beq _080B0DB4 + movs r0, #3 + ands r0, r2 + cmp r0, #0 + beq _080B0DB4 + movs r0, #0xfc + ands r0, r2 + movs r2, #0 + strb r0, [r4] + ldrb r1, [r4, #7] + strb r1, [r4, #0xb] + movs r0, #0xff + ands r0, r1 + cmp r0, #0 + beq _080B0DE6 + ldrb r0, [r4, #0x1d] + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x1d] + cmp r6, #3 + beq _080B0EA8 + ldrb r3, [r4, #7] + mov r8, r3 + b _080B0EA8 +_080B0DB4: + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _080B0EA8 + cmp r6, #3 + bne _080B0DC6 + ldrb r1, [r4, #0x1d] + movs r0, #1 + orrs r0, r1 + strb r0, [r4, #0x1d] +_080B0DC6: + adds r0, r4, #0 + bl CgbModVol + ldrb r0, [r4] + movs r1, #3 + ands r1, r0 + cmp r1, #0 + bne _080B0E18 + ldrb r0, [r4, #9] + subs r0, #1 + strb r0, [r4, #9] + movs r1, #0xff + ands r0, r1 + lsls r0, r0, #0x18 + cmp r0, #0 + bgt _080B0E14 +_080B0DE6: + ldrb r1, [r4, #0xa] + ldrb r0, [r4, #0xc] + muls r0, r1, r0 + adds r0, #0xff + asrs r0, r0, #8 + movs r1, #0 + strb r0, [r4, #9] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080B0D60 + ldrb r0, [r4] + movs r1, #4 + orrs r0, r1 + strb r0, [r4] + ldrb r0, [r4, #0x1d] + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x1d] + cmp r6, #3 + beq _080B0EBA + movs r3, #8 + mov r8, r3 + b _080B0EBA +_080B0E14: + ldrb r0, [r4, #7] + b _080B0EA6 +_080B0E18: + cmp r1, #1 + bne _080B0E24 +_080B0E1C: + ldrb r0, [r4, #0x19] + strb r0, [r4, #9] + movs r0, #7 + b _080B0EA6 +_080B0E24: + cmp r1, #2 + bne _080B0E6A + ldrb r0, [r4, #9] + subs r0, #1 + strb r0, [r4, #9] + movs r1, #0xff + ands r0, r1 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + movs r1, #0x19 + ldrsb r1, [r4, r1] + cmp r0, r1 + bgt _080B0E66 +_080B0E3E: + ldrb r0, [r4, #6] + cmp r0, #0 + bne _080B0E4E + ldrb r1, [r4] + movs r0, #0xfc + ands r0, r1 + strb r0, [r4] + b _080B0DE6 +_080B0E4E: + ldrb r0, [r4] + subs r0, #1 + strb r0, [r4] + ldrb r1, [r4, #0x1d] + movs r0, #1 + orrs r0, r1 + strb r0, [r4, #0x1d] + cmp r6, #3 + beq _080B0E1C + movs r3, #8 + mov r8, r3 + b _080B0E1C +_080B0E66: + ldrb r0, [r4, #5] + b _080B0EA6 +_080B0E6A: + ldrb r0, [r4, #9] + adds r0, #1 + strb r0, [r4, #9] + movs r1, #0xff + ands r0, r1 + ldrb r3, [r4, #0xa] + cmp r0, r3 + blo _080B0EA4 +_080B0E7A: + ldrb r0, [r4] + subs r0, #1 + movs r2, #0 + strb r0, [r4] + ldrb r1, [r4, #5] + strb r1, [r4, #0xb] + movs r0, #0xff + ands r0, r1 + cmp r0, #0 + beq _080B0E3E + ldrb r0, [r4, #0x1d] + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x1d] + ldrb r0, [r4, #0xa] + strb r0, [r4, #9] + cmp r6, #3 + beq _080B0EA8 + ldrb r0, [r4, #5] + mov r8, r0 + b _080B0EA8 +_080B0EA4: + ldrb r0, [r4, #4] +_080B0EA6: + strb r0, [r4, #0xb] +_080B0EA8: + ldrb r0, [r4, #0xb] + subs r0, #1 + strb r0, [r4, #0xb] + ldr r1, [sp, #4] + cmp r1, #0 + bne _080B0EBA + subs r1, #1 + str r1, [sp, #4] + b _080B0DB4 +_080B0EBA: + ldrb r1, [r4, #0x1d] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080B0F34 + cmp r6, #3 + bgt _080B0EFA + ldrb r1, [r4, #1] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080B0EFA + ldr r0, _080B0EE4 @ =0x04000089 + ldrb r0, [r0] + adds r1, r0, #0 + cmp r1, #0x3f + bgt _080B0EEC + ldr r0, [r4, #0x20] + adds r0, #2 + ldr r1, _080B0EE8 @ =0x000007FC + b _080B0EF6 + .align 2, 0 +_080B0EE4: .4byte 0x04000089 +_080B0EE8: .4byte 0x000007FC +_080B0EEC: + cmp r1, #0x7f + bgt _080B0EFA + ldr r0, [r4, #0x20] + adds r0, #1 + ldr r1, _080B0F04 @ =0x000007FE +_080B0EF6: + ands r0, r1 + str r0, [r4, #0x20] +_080B0EFA: + cmp r6, #4 + beq _080B0F08 + ldr r0, [r4, #0x20] + b _080B0F14 + .align 2, 0 +_080B0F04: .4byte 0x000007FE +_080B0F08: + ldr r1, [sp, #0x14] + ldrb r0, [r1] + movs r1, #8 + ands r1, r0 + ldr r0, [r4, #0x20] + orrs r0, r1 +_080B0F14: + ldr r3, [sp, #0x14] + strb r0, [r3] + ldrb r0, [r4, #0x1a] + movs r1, #0xc0 + ands r1, r0 + ldr r0, [r4, #0x20] + movs r2, #0xfc + lsls r2, r2, #6 + ands r0, r2 + lsrs r0, r0, #8 + adds r1, r1, r0 + strb r1, [r4, #0x1a] + movs r0, #0xff + ands r1, r0 + ldr r3, [sp, #0x18] + strb r1, [r3] +_080B0F34: + ldrb r1, [r4, #0x1d] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080B0FB6 + ldr r2, _080B0F7C @ =0x04000081 + ldrb r1, [r4, #0x1c] + ldrb r0, [r2] + bics r0, r1 + ldrb r1, [r4, #0x1b] + orrs r0, r1 + strb r0, [r2] + cmp r6, #3 + bne _080B0F84 + ldr r1, _080B0F80 @ =gUnk_089FC928 + ldrb r0, [r4, #9] + adds r0, r0, r1 + ldrb r0, [r0] + ldr r1, [sp, #0x10] + strb r0, [r1] + ldrb r1, [r4, #0x1a] + movs r2, #0x80 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _080B0FB6 + ldr r3, [sp, #0xc] + strb r2, [r3] + ldrb r0, [r4, #0x1a] + ldr r1, [sp, #0x18] + strb r0, [r1] + ldrb r1, [r4, #0x1a] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x1a] + b _080B0FB6 + .align 2, 0 +_080B0F7C: .4byte 0x04000081 +_080B0F80: .4byte gUnk_089FC928 +_080B0F84: + movs r0, #0xf + mov r3, r8 + ands r3, r0 + mov r8, r3 + ldrb r0, [r4, #9] + lsls r0, r0, #4 + add r0, r8 + ldr r1, [sp, #0x10] + strb r0, [r1] + ldrb r0, [r4, #0x1a] + movs r2, #0x80 + orrs r0, r2 + ldr r3, [sp, #0x18] + strb r0, [r3] + cmp r6, #1 + bne _080B0FB6 + ldr r0, [sp, #0xc] + ldrb r1, [r0] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + bne _080B0FB6 + ldrb r0, [r4, #0x1a] + orrs r0, r2 + strb r0, [r3] +_080B0FB6: + movs r0, #0 + strb r0, [r4, #0x1d] +_080B0FBA: + mov r6, sl + mov r4, sb + cmp r6, #4 + bgt _080B0FC4 + b _080B0B88 +_080B0FC4: + add sp, #0x24 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + + thumb_func_start m4aMPlayTempoControl +m4aMPlayTempoControl: @ 0x080B0FD4 + push {lr} + adds r2, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldr r3, [r2, #0x34] + ldr r0, _080B0FF4 @ =0x68736D53 + cmp r3, r0 + bne _080B0FF0 + strh r1, [r2, #0x1e] + ldrh r1, [r2, #0x1c] + ldrh r0, [r2, #0x1e] + muls r0, r1, r0 + asrs r0, r0, #8 + strh r0, [r2, #0x20] +_080B0FF0: + pop {r0} + bx r0 + .align 2, 0 +_080B0FF4: .4byte 0x68736D53 + + thumb_func_start m4aMPlayVolumeControl +m4aMPlayVolumeControl: @ 0x080B0FF8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r4, r0, #0 + lsls r1, r1, #0x10 + lsrs r7, r1, #0x10 + lsls r6, r2, #0x10 + ldr r3, [r4, #0x34] + ldr r0, _080B105C @ =0x68736D53 + cmp r3, r0 + bne _080B1050 + adds r0, r3, #1 + str r0, [r4, #0x34] + ldrb r2, [r4, #8] + ldr r1, [r4, #0x2c] + movs r5, #1 + cmp r2, #0 + ble _080B104C + movs r0, #0x80 + mov r8, r0 + lsrs r6, r6, #0x12 + movs r0, #3 + mov ip, r0 +_080B1028: + adds r0, r7, #0 + ands r0, r5 + cmp r0, #0 + beq _080B1042 + ldrb r3, [r1] + mov r0, r8 + ands r0, r3 + cmp r0, #0 + beq _080B1042 + strb r6, [r1, #0x13] + mov r0, ip + orrs r0, r3 + strb r0, [r1] +_080B1042: + subs r2, #1 + adds r1, #0x50 + lsls r5, r5, #1 + cmp r2, #0 + bgt _080B1028 +_080B104C: + ldr r0, _080B105C @ =0x68736D53 + str r0, [r4, #0x34] +_080B1050: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080B105C: .4byte 0x68736D53 + + thumb_func_start m4aMPlayPitchControl +m4aMPlayPitchControl: @ 0x080B1060 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r4, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov ip, r1 + lsls r2, r2, #0x10 + lsrs r6, r2, #0x10 + ldr r3, [r4, #0x34] + ldr r0, _080B10D0 @ =0x68736D53 + cmp r3, r0 + bne _080B10C2 + adds r0, r3, #1 + str r0, [r4, #0x34] + ldrb r2, [r4, #8] + ldr r3, [r4, #0x2c] + movs r5, #1 + cmp r2, #0 + ble _080B10BE + movs r0, #0x80 + mov sb, r0 + lsls r0, r6, #0x10 + asrs r7, r0, #0x18 + movs r0, #0xc + mov r8, r0 +_080B1098: + mov r0, ip + ands r0, r5 + cmp r0, #0 + beq _080B10B4 + ldrb r1, [r3] + mov r0, sb + ands r0, r1 + cmp r0, #0 + beq _080B10B4 + strb r7, [r3, #0xb] + strb r6, [r3, #0xd] + mov r0, r8 + orrs r0, r1 + strb r0, [r3] +_080B10B4: + subs r2, #1 + adds r3, #0x50 + lsls r5, r5, #1 + cmp r2, #0 + bgt _080B1098 +_080B10BE: + ldr r0, _080B10D0 @ =0x68736D53 + str r0, [r4, #0x34] +_080B10C2: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080B10D0: .4byte 0x68736D53 + + thumb_func_start m4aMPlayPanpotControl +m4aMPlayPanpotControl: @ 0x080B10D4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r4, r0, #0 + lsls r1, r1, #0x10 + lsrs r7, r1, #0x10 + lsls r2, r2, #0x18 + lsrs r6, r2, #0x18 + ldr r3, [r4, #0x34] + ldr r0, _080B1138 @ =0x68736D53 + cmp r3, r0 + bne _080B112C + adds r0, r3, #1 + str r0, [r4, #0x34] + ldrb r2, [r4, #8] + ldr r1, [r4, #0x2c] + movs r5, #1 + cmp r2, #0 + ble _080B1128 + movs r0, #0x80 + mov r8, r0 + movs r0, #3 + mov ip, r0 +_080B1104: + adds r0, r7, #0 + ands r0, r5 + cmp r0, #0 + beq _080B111E + ldrb r3, [r1] + mov r0, r8 + ands r0, r3 + cmp r0, #0 + beq _080B111E + strb r6, [r1, #0x15] + mov r0, ip + orrs r0, r3 + strb r0, [r1] +_080B111E: + subs r2, #1 + adds r1, #0x50 + lsls r5, r5, #1 + cmp r2, #0 + bgt _080B1104 +_080B1128: + ldr r0, _080B1138 @ =0x68736D53 + str r0, [r4, #0x34] +_080B112C: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080B1138: .4byte 0x68736D53 + + thumb_func_start ClearModM +ClearModM: @ 0x080B113C + push {lr} + adds r2, r0, #0 + movs r1, #0 + movs r0, #0 + strb r0, [r2, #0x1a] + strb r0, [r2, #0x16] + ldrb r0, [r2, #0x18] + cmp r0, #0 + bne _080B1154 + ldrb r0, [r2] + movs r1, #0xc + b _080B1158 +_080B1154: + ldrb r0, [r2] + movs r1, #3 +_080B1158: + orrs r0, r1 + strb r0, [r2] + pop {r0} + bx r0 + + thumb_func_start m4aMPlayModDepthSet +m4aMPlayModDepthSet: @ 0x080B1160 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r6, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov sl, r1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r8, r2 + ldr r1, [r6, #0x34] + ldr r0, _080B11D0 @ =0x68736D53 + cmp r1, r0 + bne _080B11C0 + adds r0, r1, #1 + str r0, [r6, #0x34] + ldrb r5, [r6, #8] + ldr r4, [r6, #0x2c] + movs r7, #1 + cmp r5, #0 + ble _080B11BC + mov sb, r8 +_080B1190: + mov r0, sl + ands r0, r7 + cmp r0, #0 + beq _080B11B2 + ldrb r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080B11B2 + mov r0, r8 + strb r0, [r4, #0x17] + mov r0, sb + cmp r0, #0 + bne _080B11B2 + adds r0, r4, #0 + bl ClearModM +_080B11B2: + subs r5, #1 + adds r4, #0x50 + lsls r7, r7, #1 + cmp r5, #0 + bgt _080B1190 +_080B11BC: + ldr r0, _080B11D0 @ =0x68736D53 + str r0, [r6, #0x34] +_080B11C0: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080B11D0: .4byte 0x68736D53 + + thumb_func_start m4aMPlayLFOSpeedSet +m4aMPlayLFOSpeedSet: @ 0x080B11D4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r6, r0, #0 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + mov sl, r1 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + mov r8, r2 + ldr r1, [r6, #0x34] + ldr r0, _080B1244 @ =0x68736D53 + cmp r1, r0 + bne _080B1234 + adds r0, r1, #1 + str r0, [r6, #0x34] + ldrb r5, [r6, #8] + ldr r4, [r6, #0x2c] + movs r7, #1 + cmp r5, #0 + ble _080B1230 + mov sb, r8 +_080B1204: + mov r0, sl + ands r0, r7 + cmp r0, #0 + beq _080B1226 + ldrb r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080B1226 + mov r0, r8 + strb r0, [r4, #0x19] + mov r0, sb + cmp r0, #0 + bne _080B1226 + adds r0, r4, #0 + bl ClearModM +_080B1226: + subs r5, #1 + adds r4, #0x50 + lsls r7, r7, #1 + cmp r5, #0 + bgt _080B1204 +_080B1230: + ldr r0, _080B1244 @ =0x68736D53 + str r0, [r6, #0x34] +_080B1234: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_080B1244: .4byte 0x68736D53 + + thumb_func_start ply_memacc +ply_memacc: @ 0x080B1248 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + ldr r0, [r6, #0x40] + ldrb r5, [r0] + adds r1, r0, #1 + str r1, [r6, #0x40] + ldrb r2, [r0, #1] + ldr r0, [r4, #0x18] + adds r2, r0, r2 + adds r0, r1, #1 + str r0, [r6, #0x40] + ldrb r3, [r1, #1] + adds r0, #1 + str r0, [r6, #0x40] + cmp r5, #0x11 + bls _080B126C + b _080B139A +_080B126C: + lsls r0, r5, #2 + ldr r1, _080B1278 @ =_080B127C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080B1278: .4byte _080B127C +_080B127C: @ jump table + .4byte _080B12C4 @ case 0 + .4byte _080B12C8 @ case 1 + .4byte _080B12D0 @ case 2 + .4byte _080B12D8 @ case 3 + .4byte _080B12E2 @ case 4 + .4byte _080B12F0 @ case 5 + .4byte _080B12FE @ case 6 + .4byte _080B1306 @ case 7 + .4byte _080B130E @ case 8 + .4byte _080B1316 @ case 9 + .4byte _080B131E @ case 10 + .4byte _080B1326 @ case 11 + .4byte _080B132E @ case 12 + .4byte _080B133C @ case 13 + .4byte _080B134A @ case 14 + .4byte _080B1358 @ case 15 + .4byte _080B1366 @ case 16 + .4byte _080B1374 @ case 17 +_080B12C4: + strb r3, [r2] + b _080B139A +_080B12C8: + ldrb r0, [r2] + adds r0, r3, r0 + strb r0, [r2] + b _080B139A +_080B12D0: + ldrb r0, [r2] + subs r0, r0, r3 + strb r0, [r2] + b _080B139A +_080B12D8: + ldr r0, [r4, #0x18] + adds r0, r0, r3 + ldrb r0, [r0] + strb r0, [r2] + b _080B139A +_080B12E2: + ldr r0, [r4, #0x18] + adds r0, r0, r3 + ldrb r0, [r0] + ldrb r1, [r2] + adds r0, r0, r1 + strb r0, [r2] + b _080B139A +_080B12F0: + ldr r0, [r4, #0x18] + adds r0, r0, r3 + ldrb r1, [r2] + ldrb r0, [r0] + subs r1, r1, r0 + strb r1, [r2] + b _080B139A +_080B12FE: + ldrb r0, [r2] + cmp r0, r3 + beq _080B1380 + b _080B1394 +_080B1306: + ldrb r0, [r2] + cmp r0, r3 + bne _080B1380 + b _080B1394 +_080B130E: + ldrb r0, [r2] + cmp r0, r3 + bhi _080B1380 + b _080B1394 +_080B1316: + ldrb r0, [r2] + cmp r0, r3 + bhs _080B1380 + b _080B1394 +_080B131E: + ldrb r0, [r2] + cmp r0, r3 + bls _080B1380 + b _080B1394 +_080B1326: + ldrb r0, [r2] + cmp r0, r3 + blo _080B1380 + b _080B1394 +_080B132E: + ldr r0, [r4, #0x18] + adds r0, r0, r3 + ldrb r1, [r2] + ldrb r0, [r0] + cmp r1, r0 + beq _080B1380 + b _080B1394 +_080B133C: + ldr r0, [r4, #0x18] + adds r0, r0, r3 + ldrb r1, [r2] + ldrb r0, [r0] + cmp r1, r0 + bne _080B1380 + b _080B1394 +_080B134A: + ldr r0, [r4, #0x18] + adds r0, r0, r3 + ldrb r1, [r2] + ldrb r0, [r0] + cmp r1, r0 + bhi _080B1380 + b _080B1394 +_080B1358: + ldr r0, [r4, #0x18] + adds r0, r0, r3 + ldrb r1, [r2] + ldrb r0, [r0] + cmp r1, r0 + bhs _080B1380 + b _080B1394 +_080B1366: + ldr r0, [r4, #0x18] + adds r0, r0, r3 + ldrb r1, [r2] + ldrb r0, [r0] + cmp r1, r0 + bls _080B1380 + b _080B1394 +_080B1374: + ldr r0, [r4, #0x18] + adds r0, r0, r3 + ldrb r1, [r2] + ldrb r0, [r0] + cmp r1, r0 + bhs _080B1394 +_080B1380: + ldr r0, _080B1390 @ =gUnk_03004D54 + ldr r2, [r0] + adds r0, r4, #0 + adds r1, r6, #0 + bl _call_via_r2 + b _080B139A + .align 2, 0 +_080B1390: .4byte gUnk_03004D54 +_080B1394: + ldr r0, [r6, #0x40] + adds r0, #4 + str r0, [r6, #0x40] +_080B139A: + pop {r4, r5, r6} + pop {r0} + bx r0 + + thumb_func_start ply_xcmd +ply_xcmd: @ 0x080B13A0 + push {lr} + ldr r2, [r1, #0x40] + ldrb r3, [r2] + adds r2, #1 + str r2, [r1, #0x40] + ldr r2, _080B13BC @ =gUnk_089FC96C + lsls r3, r3, #2 + adds r3, r3, r2 + ldr r2, [r3] + bl _call_via_r2 + pop {r0} + bx r0 + .align 2, 0 +_080B13BC: .4byte gUnk_089FC96C + + thumb_func_start ply_xxx +ply_xxx: @ 0x080B13C0 + push {lr} + ldr r2, _080B13D0 @ =gUnk_03004D50 + ldr r2, [r2] + bl _call_via_r2 + pop {r0} + bx r0 + .align 2, 0 +_080B13D0: .4byte gUnk_03004D50 + + thumb_func_start ply_xwave +ply_xwave: @ 0x080B13D4 + push {r4, lr} + ldr r3, [r1, #0x40] + ldrb r2, [r3] + ldr r0, _080B140C @ =0xFFFFFF00 + ands r4, r0 + orrs r4, r2 + ldrb r0, [r3, #1] + lsls r0, r0, #8 + ldr r2, _080B1410 @ =0xFFFF00FF + ands r4, r2 + orrs r4, r0 + ldrb r0, [r3, #2] + lsls r0, r0, #0x10 + ldr r2, _080B1414 @ =0xFF00FFFF + ands r4, r2 + orrs r4, r0 + ldrb r0, [r3, #3] + lsls r0, r0, #0x18 + ldr r2, _080B1418 @ =0x00FFFFFF + ands r4, r2 + orrs r4, r0 + str r4, [r1, #0x28] + adds r3, #4 + str r3, [r1, #0x40] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080B140C: .4byte 0xFFFFFF00 +_080B1410: .4byte 0xFFFF00FF +_080B1414: .4byte 0xFF00FFFF +_080B1418: .4byte 0x00FFFFFF + + thumb_func_start ply_xtype +ply_xtype: @ 0x080B141C + ldr r0, [r1, #0x40] + ldrb r2, [r0] + adds r0, r1, #0 + adds r0, #0x24 + strb r2, [r0] + ldr r0, [r1, #0x40] + adds r0, #1 + str r0, [r1, #0x40] + bx lr + .align 2, 0 + + thumb_func_start ply_xatta +ply_xatta: @ 0x080B1430 + ldr r0, [r1, #0x40] + ldrb r2, [r0] + adds r0, r1, #0 + adds r0, #0x2c + strb r2, [r0] + ldr r0, [r1, #0x40] + adds r0, #1 + str r0, [r1, #0x40] + bx lr + .align 2, 0 + + thumb_func_start ply_xdeca +ply_xdeca: @ 0x080B1444 + ldr r0, [r1, #0x40] + ldrb r0, [r0] + adds r2, r1, #0 + adds r2, #0x2d + strb r0, [r2] + ldr r0, [r1, #0x40] + adds r0, #1 + str r0, [r1, #0x40] + bx lr + .align 2, 0 + + thumb_func_start ply_xsust +ply_xsust: @ 0x080B1458 + ldr r0, [r1, #0x40] + ldrb r0, [r0] + adds r2, r1, #0 + adds r2, #0x2e + strb r0, [r2] + ldr r0, [r1, #0x40] + adds r0, #1 + str r0, [r1, #0x40] + bx lr + .align 2, 0 + + thumb_func_start ply_xrele +ply_xrele: @ 0x080B146C + ldr r0, [r1, #0x40] + ldrb r0, [r0] + adds r2, r1, #0 + adds r2, #0x2f + strb r0, [r2] + ldr r0, [r1, #0x40] + adds r0, #1 + str r0, [r1, #0x40] + bx lr + .align 2, 0 + + thumb_func_start ply_xiecv +ply_xiecv: @ 0x080B1480 + ldr r0, [r1, #0x40] + ldrb r2, [r0] + strb r2, [r1, #0x1e] + adds r0, #1 + str r0, [r1, #0x40] + bx lr + + thumb_func_start ply_xiecl +ply_xiecl: @ 0x080B148C + ldr r0, [r1, #0x40] + ldrb r2, [r0] + strb r2, [r1, #0x1f] + adds r0, #1 + str r0, [r1, #0x40] + bx lr + + thumb_func_start ply_xleng +ply_xleng: @ 0x080B1498 + ldr r0, [r1, #0x40] + ldrb r0, [r0] + adds r2, r1, #0 + adds r2, #0x26 + strb r0, [r2] + ldr r0, [r1, #0x40] + adds r0, #1 + str r0, [r1, #0x40] + bx lr + .align 2, 0 + + thumb_func_start ply_xswee +ply_xswee: @ 0x080B14AC + ldr r0, [r1, #0x40] + ldrb r0, [r0] + adds r2, r1, #0 + adds r2, #0x27 + strb r0, [r2] + ldr r0, [r1, #0x40] + adds r0, #1 + str r0, [r1, #0x40] + bx lr + .align 2, 0 + + thumb_func_start nullsub_544 +nullsub_544: @ 0x080B14C0 + bx lr + .align 2, 0 + \ No newline at end of file diff --git a/asm/m4a_asm.s b/asm/m4a_asm.s new file mode 100644 index 00000000..18aa73bd --- /dev/null +++ b/asm/m4a_asm.s @@ -0,0 +1,1580 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start umul3232H32 +umul3232H32: @ 0x080AF310 + add r2, pc, #0x0 @ =sub_080AF314 + bx r2 + + arm_func_start sub_080AF314 +sub_080AF314: @ 0x080AF314 + umull r2, r3, r0, r1 + add r0, r3, #0 + bx lr + + thumb_func_start SoundMain +SoundMain: @ 0x080AF320 + ldr r0, _080AF38C @ =0x03007FF0 + ldr r0, [r0] + ldr r2, _080AF390 @ =0x68736D53 + ldr r3, [r0] + cmp r2, r3 + beq _080AF32E + bx lr +_080AF32E: + adds r3, #1 + str r3, [r0] + push {r4, r5, r6, r7, lr} + mov r1, r8 + mov r2, sb + mov r3, sl + mov r4, fp + push {r0, r1, r2, r3, r4} + sub sp, #0x18 + ldrb r1, [r0, #0xc] + cmp r1, #0 + beq _080AF352 + ldr r2, _080AF398 @ =0x04000006 + ldrb r2, [r2] + cmp r2, #0xa0 + bhs _080AF350 + adds r2, #0xe4 +_080AF350: + adds r1, r1, r2 +_080AF352: + str r1, [sp, #0x14] + ldr r3, [r0, #0x20] + cmp r3, #0 + beq _080AF362 + ldr r0, [r0, #0x24] + bl sub_080AF6CE + ldr r0, [sp, #0x18] +_080AF362: + ldr r3, [r0, #0x28] + bl sub_080AF6CE + ldr r0, [sp, #0x18] + ldr r3, [r0, #0x10] + mov r8, r3 + ldr r5, _080AF39C @ =0x00000350 + adds r5, r5, r0 + ldrb r4, [r0, #4] + subs r7, r4, #1 + bls _080AF382 + ldrb r1, [r0, #0xb] + subs r1, r1, r7 + mov r2, r8 + muls r2, r1, r2 + adds r5, r5, r2 +_080AF382: + str r5, [sp, #8] + ldr r6, _080AF3A0 @ =0x00000630 + ldr r3, _080AF394 @ =gUnk_0300404D + bx r3 + .align 2, 0 +_080AF38C: .4byte 0x03007FF0 +_080AF390: .4byte 0x68736D53 +_080AF394: .4byte gUnk_0300404D +_080AF398: .4byte 0x04000006 +_080AF39C: .4byte 0x00000350 +_080AF3A0: .4byte 0x00000630 + + thumb_func_start SoundMainRAM +SoundMainRAM: @ 0x080AF3A4 + ldrb r3, [r0, #5] + cmp r3, #0 + beq sub_080AF3F0 + add r1, pc, #0x4 @ =sub_080AF3B0 + bx r1 + .align 2, 0 + + arm_func_start sub_080AF3B0 +sub_080AF3B0: @ 0x080AF3B0 + cmp r4, #2 + addeq r7, r0, #0x350 + addne r7, r5, r8 + mov r4, r8 +_080AF3C0: + ldrsb r0, [r5] + ldrsb r1, [r7], #1 + add r0, r0, r1 + mul r1, r0, r3 + asr r0, r1, #8 + tst r0, #0x80 + addne r0, r0, #1 + strb r0, [r5], #1 + subs r4, r4, #1 + bgt _080AF3C0 + add r0, pc, #0x1F @ =sub_080AF40E + bx r0 + + thumb_func_start sub_080AF3F0 +sub_080AF3F0: @ 0x080AF3F0 + movs r0, #0 + mov r1, r8 + lsrs r1, r1, #3 + blo _080AF3FA + stm r5!, {r0} +_080AF3FA: + lsrs r1, r1, #1 + blo _080AF402 + stm r5!, {r0} + stm r5!, {r0} +_080AF402: + stm r5!, {r0} + stm r5!, {r0} + stm r5!, {r0} + stm r5!, {r0} + subs r1, #1 + bgt _080AF402 + + non_word_aligned_thumb_func_start sub_080AF40E +sub_080AF40E: @ 0x080AF40E + ldr r4, [sp, #0x18] + ldr r0, [r4, #0x18] + mov ip, r0 + ldrb r0, [r4, #6] + adds r4, #0x50 +_080AF418: + str r0, [sp, #4] + ldr r3, [r4, #0x24] + ldr r0, [sp, #0x14] + cmp r0, #0 + beq _080AF438 + ldr r1, _080AF434 @ =0x04000006 + ldrb r1, [r1] + cmp r1, #0xa0 + bhs _080AF42C + adds r1, #0xe4 +_080AF42C: + cmp r1, r0 + blo _080AF438 + b _080AF6BA + .align 2, 0 +_080AF434: .4byte 0x04000006 +_080AF438: + ldrb r6, [r4] + movs r0, #0xc7 + tst r0, r6 + bne _080AF442 + b sub_080AF6B0 +_080AF442: + movs r0, #0x80 + tst r0, r6 + beq _080AF472 + movs r0, #0x40 + tst r0, r6 + bne _080AF482 + movs r6, #3 + strb r6, [r4] + adds r0, r3, #0 + adds r0, #0x10 + str r0, [r4, #0x28] + ldr r0, [r3, #0xc] + str r0, [r4, #0x18] + movs r5, #0 + strb r5, [r4, #9] + str r5, [r4, #0x1c] + ldrb r2, [r3, #3] + movs r0, #0xc0 + tst r0, r2 + beq _080AF4CA + movs r0, #0x10 + orrs r6, r0 + strb r6, [r4] + b _080AF4CA +_080AF472: + ldrb r5, [r4, #9] + movs r0, #4 + tst r0, r6 + beq _080AF488 + ldrb r0, [r4, #0xd] + subs r0, #1 + strb r0, [r4, #0xd] + bhi _080AF4D8 +_080AF482: + movs r0, #0 + strb r0, [r4] + b sub_080AF6B0 +_080AF488: + movs r0, #0x40 + tst r0, r6 + beq _080AF4A8 + ldrb r0, [r4, #7] + muls r5, r0, r5 + lsrs r5, r5, #8 + ldrb r0, [r4, #0xc] + cmp r5, r0 + bhi _080AF4D8 +_080AF49A: + ldrb r5, [r4, #0xc] + cmp r5, #0 + beq _080AF482 + movs r0, #4 + orrs r6, r0 + strb r6, [r4] + b _080AF4D8 +_080AF4A8: + movs r2, #3 + ands r2, r6 + cmp r2, #2 + bne _080AF4C6 + ldrb r0, [r4, #5] + muls r5, r0, r5 + lsrs r5, r5, #8 + ldrb r0, [r4, #6] + cmp r5, r0 + bhi _080AF4D8 + adds r5, r0, #0 + beq _080AF49A + subs r6, #1 + strb r6, [r4] + b _080AF4D8 +_080AF4C6: + cmp r2, #3 + bne _080AF4D8 +_080AF4CA: + ldrb r0, [r4, #4] + adds r5, r5, r0 + cmp r5, #0xff + blo _080AF4D8 + movs r5, #0xff + subs r6, #1 + strb r6, [r4] +_080AF4D8: + strb r5, [r4, #9] + ldr r0, [sp, #0x18] + ldrb r0, [r0, #7] + adds r0, #1 + muls r0, r5, r0 + lsrs r5, r0, #4 + ldrb r0, [r4, #2] + ldrb r1, [r4, #3] + adds r0, r0, r1 + muls r0, r5, r0 + lsrs r0, r0, #9 + strb r0, [r4, #0xa] + movs r0, #0x10 + ands r0, r6 + str r0, [sp, #0x10] + beq _080AF508 + adds r0, r3, #0 + adds r0, #0x10 + ldr r1, [r3, #8] + adds r0, r0, r1 + str r0, [sp, #0xc] + ldr r0, [r3, #0xc] + subs r0, r0, r1 + str r0, [sp, #0x10] +_080AF508: + ldr r5, [sp, #8] + ldr r2, [r4, #0x18] + ldr r3, [r4, #0x28] + add r0, pc, #0x4 @ =sub_080AF514 + bx r0 + .align 2, 0 + + arm_func_start sub_080AF514 +sub_080AF514: @ 0x080AF514 + str r8, [sp] + ldrb sl, [r4, #0xa] + lsl sl, sl, #0x10 + ldrb r0, [r4, #1] + tst r0, #8 + beq _080AF61C +_080AF52C: + cmp r2, #4 + ble _080AF588 + subs r2, r2, r8 + movgt lr, #0 + bgt _080AF558 + mov lr, r8 + add r2, r2, r8 + sub r8, r2, #4 + sub lr, lr, r8 + ands r2, r2, #3 + moveq r2, #4 +_080AF558: + ldr r6, [r5] +_080AF55C: + ldrsb r0, [r3], #1 + mul r1, sl, r0 + bic r1, r1, #0xff0000 + add r6, r1, r6, ror #8 + adds r5, r5, #0x40000000 + blo _080AF55C + str r6, [r5], #4 + subs r8, r8, #4 + bgt _080AF558 + adds r8, r8, lr + beq _080AF69C +_080AF588: + ldr r6, [r5] +_080AF58C: + ldrsb r0, [r3], #1 + mul r1, sl, r0 + bic r1, r1, #0xff0000 + add r6, r1, r6, ror #8 + subs r2, r2, #1 + beq _080AF5EC +_080AF5A4: + adds r5, r5, #0x40000000 + blo _080AF58C + str r6, [r5], #4 + subs r8, r8, #4 + bgt _080AF52C + b _080AF69C +_080AF5BC: + ldr r0, [sp, #0x18] + cmp r0, #0 + beq _080AF5E0 + ldr r3, [sp, #0x14] + rsb sb, r2, #0 +_080AF5D0: + adds r2, r0, r2 + bgt _080AF670 + sub sb, sb, r0 + b _080AF5D0 +_080AF5E0: + pop {r4, ip} + mov r2, #0 + b _080AF5FC +_080AF5EC: + ldr r2, [sp, #0x10] + cmp r2, #0 + ldrne r3, [sp, #0xc] + bne _080AF5A4 +_080AF5FC: + strb r2, [r4] + lsr r0, r5, #0x1e + bic r5, r5, #0xc0000000 + rsb r0, r0, #3 + lsl r0, r0, #3 + ror r6, r6, r0 + str r6, [r5], #4 + b _080AF6A4 +_080AF61C: + push {r4, ip} + ldr lr, [r4, #0x1c] + ldr r1, [r4, #0x20] + mul r4, ip, r1 + ldrsb r0, [r3] + ldrsb r1, [r3, #1]! + sub r1, r1, r0 +_080AF638: + ldr r6, [r5] +_080AF63C: + mul sb, lr, r1 + add sb, r0, sb, asr #23 + mul ip, sl, sb + bic ip, ip, #0xff0000 + add r6, ip, r6, ror #8 + add lr, lr, r4 + lsrs sb, lr, #0x17 + beq _080AF67C + bic lr, lr, #0x3f800000 + subs r2, r2, sb + ble _080AF5BC + subs sb, sb, #1 + addeq r0, r0, r1 +_080AF670: + ldrsbne r0, [r3, sb]! + ldrsb r1, [r3, #1]! + sub r1, r1, r0 +_080AF67C: + adds r5, r5, #0x40000000 + blo _080AF63C + str r6, [r5], #4 + subs r8, r8, #4 + bgt _080AF638 + sub r3, r3, #1 + pop {r4, ip} + str lr, [r4, #0x1c] +_080AF69C: + str r2, [r4, #0x18] + str r3, [r4, #0x28] +_080AF6A4: + ldr r8, [sp] + add r0, pc, #0x1 @ =sub_080AF6B0 + bx r0 + + thumb_func_start sub_080AF6B0 +sub_080AF6B0: @ 0x080AF6B0 + ldr r0, [sp, #4] + subs r0, #1 + ble _080AF6BA + adds r4, #0x40 + b _080AF418 +_080AF6BA: + ldr r0, [sp, #0x18] + ldr r3, _080AF6D0 @ =0x68736D53 + str r3, [r0] + add sp, #0x1c + pop {r0, r1, r2, r3, r4, r5, r6, r7} + mov r8, r0 + mov sb, r1 + mov sl, r2 + mov fp, r3 + pop {r3} + + non_word_aligned_thumb_func_start sub_080AF6CE +sub_080AF6CE: @ 0x080AF6CE + bx r3 + .align 2, 0 +_080AF6D0: .4byte 0x68736D53 + + thumb_func_start SoundMainBTM +SoundMainBTM: @ 0x080AF6D4 + mov ip, r4 + movs r1, #0 + movs r2, #0 + movs r3, #0 + movs r4, #0 + stm r0!, {r1, r2, r3, r4} + stm r0!, {r1, r2, r3, r4} + stm r0!, {r1, r2, r3, r4} + stm r0!, {r1, r2, r3, r4} + mov r4, ip + bx lr + .align 2, 0 + + thumb_func_start RealClearChain +RealClearChain: @ 0x080AF6EC + ldr r3, [r0, #0x2c] + cmp r3, #0 + beq _080AF70A + ldr r1, [r0, #0x34] + ldr r2, [r0, #0x30] + cmp r2, #0 + beq _080AF6FE + str r1, [r2, #0x34] + b _080AF700 +_080AF6FE: + str r1, [r3, #0x20] +_080AF700: + cmp r1, #0 + beq _080AF706 + str r2, [r1, #0x30] +_080AF706: + movs r1, #0 + str r1, [r0, #0x2c] +_080AF70A: + bx lr +_080AF70C: + push {r4, r5, lr} + adds r5, r1, #0 + ldr r4, [r5, #0x20] + cmp r4, #0 + beq _080AF73A +_080AF716: + ldrb r1, [r4] + movs r0, #0xc7 + tst r0, r1 + beq _080AF724 + movs r0, #0x40 + orrs r1, r0 + strb r1, [r4] +_080AF724: + adds r0, r4, #0 + bl RealClearChain + ldr r1, [r4, #0x34] + cmp r1, r4 + bne _080AF734 + movs r1, #0 + str r1, [r4, #0x34] +_080AF734: + adds r4, r1, #0 + cmp r4, #0 + bne _080AF716 +_080AF73A: + movs r0, #0 + strb r0, [r5] + pop {r4, r5} + pop {r0} + bx r0 + + thumb_func_start MPlayJumpTableCopy +MPlayJumpTableCopy: @ 0x080AF744 + mov ip, lr + movs r1, #0x24 + ldr r2, _080AF774 @ =gUnk_089FC6C4 +_080AF74A: + ldr r3, [r2] + bl _080AF75E + stm r0!, {r3} + adds r2, #4 + subs r1, #1 + bgt _080AF74A + bx ip + .align 2, 0 + + thumb_func_start sub_080AF75C +sub_080AF75C: @ 0x080AF75C + ldrb r3, [r2] +_080AF75E: + push {r0} + lsrs r0, r2, #0x19 + bne _080AF770 + ldr r0, _080AF774 @ =gUnk_089FC6C4 + cmp r2, r0 + blo _080AF76E + lsrs r0, r2, #0xe + beq _080AF770 +_080AF76E: + movs r3, #0 +_080AF770: + pop {r0} + bx lr + .align 2, 0 +_080AF774: .4byte gUnk_089FC6C4 + + thumb_func_start sub_080AF778 +sub_080AF778: @ 0x080AF778 + ldr r2, [r1, #0x40] + + non_word_aligned_thumb_func_start sub_080AF77A +sub_080AF77A: @ 0x080AF77A + adds r3, r2, #1 + str r3, [r1, #0x40] + ldrb r3, [r2] + b _080AF75E + .align 2, 0 +_080AF784: + push {lr} +_080AF786: + ldr r2, [r1, #0x40] + ldrb r0, [r2, #3] + lsls r0, r0, #8 + ldrb r3, [r2, #2] + orrs r0, r3 + lsls r0, r0, #8 + ldrb r3, [r2, #1] + orrs r0, r3 + lsls r0, r0, #8 + bl sub_080AF75C + orrs r0, r3 + str r0, [r1, #0x40] + pop {r0} + bx r0 + + thumb_func_start ply_patt +ply_patt: @ 0x080AF7A4 + ldrb r2, [r1, #2] + cmp r2, #3 + bhs _080AF7BC + lsls r2, r2, #2 + adds r3, r1, r2 + ldr r2, [r1, #0x40] + adds r2, #4 + str r2, [r3, #0x44] + ldrb r2, [r1, #2] + adds r2, #1 + strb r2, [r1, #2] + b _080AF784 +_080AF7BC: + b _080AF70C + .align 2, 0 + + thumb_func_start ply_pend +ply_pend: @ 0x080AF7C0 + ldrb r2, [r1, #2] + cmp r2, #0 + beq _080AF7D2 + subs r2, #1 + strb r2, [r1, #2] + lsls r2, r2, #2 + adds r3, r1, r2 + ldr r2, [r3, #0x44] + str r2, [r1, #0x40] +_080AF7D2: + bx lr + + thumb_func_start ply_rept +ply_rept: @ 0x080AF7D4 + push {lr} + ldr r2, [r1, #0x40] + ldrb r3, [r2] + cmp r3, #0 + bne _080AF7E4 + adds r2, #1 + str r2, [r1, #0x40] + b _080AF786 +_080AF7E4: + ldrb r3, [r1, #3] + adds r3, #1 + strb r3, [r1, #3] + mov ip, r3 + bl sub_080AF778 + cmp ip, r3 + bhs _080AF7F6 + b _080AF786 +_080AF7F6: + movs r3, #0 + strb r3, [r1, #3] + adds r2, #5 + str r2, [r1, #0x40] + pop {r0} + bx r0 + .align 2, 0 + + thumb_func_start ply_prio +ply_prio: @ 0x080AF804 + mov ip, lr + bl sub_080AF778 + strb r3, [r1, #0x1d] + bx ip + .align 2, 0 + + thumb_func_start ply_tempo +ply_tempo: @ 0x080AF810 + mov ip, lr + bl sub_080AF778 + lsls r3, r3, #1 + strh r3, [r0, #0x1c] + ldrh r2, [r0, #0x1e] + muls r3, r2, r3 + lsrs r3, r3, #8 + strh r3, [r0, #0x20] + bx ip + + thumb_func_start ply_keysh +ply_keysh: @ 0x080AF824 + mov ip, lr + bl sub_080AF778 + strb r3, [r1, #0xa] + ldrb r3, [r1] + movs r2, #0xc + orrs r3, r2 + strb r3, [r1] + bx ip + .align 2, 0 + + thumb_func_start ply_voice +ply_voice: @ 0x080AF838 + mov ip, lr + ldr r2, [r1, #0x40] + ldrb r3, [r2] + adds r2, #1 + str r2, [r1, #0x40] + lsls r2, r3, #1 + adds r2, r2, r3 + lsls r2, r2, #2 + ldr r3, [r0, #0x30] + adds r2, r2, r3 + ldr r3, [r2] + bl _080AF75E + str r3, [r1, #0x24] + ldr r3, [r2, #4] + bl _080AF75E + str r3, [r1, #0x28] + ldr r3, [r2, #8] + bl _080AF75E + str r3, [r1, #0x2c] + bx ip + .align 2, 0 + + thumb_func_start ply_vol +ply_vol: @ 0x080AF868 + mov ip, lr + bl sub_080AF778 + strb r3, [r1, #0x12] + ldrb r3, [r1] + movs r2, #3 + orrs r3, r2 + strb r3, [r1] + bx ip + .align 2, 0 + + thumb_func_start ply_pan +ply_pan: @ 0x080AF87C + mov ip, lr + bl sub_080AF778 + subs r3, #0x40 + strb r3, [r1, #0x14] + ldrb r3, [r1] + movs r2, #3 + orrs r3, r2 + strb r3, [r1] + bx ip + + thumb_func_start ply_bend +ply_bend: @ 0x080AF890 + mov ip, lr + bl sub_080AF778 + subs r3, #0x40 + strb r3, [r1, #0xe] + ldrb r3, [r1] + movs r2, #0xc + orrs r3, r2 + strb r3, [r1] + bx ip + + thumb_func_start ply_bendr +ply_bendr: @ 0x080AF8A4 + mov ip, lr + bl sub_080AF778 + strb r3, [r1, #0xf] + ldrb r3, [r1] + movs r2, #0xc + orrs r3, r2 + strb r3, [r1] + bx ip + .align 2, 0 + + thumb_func_start ply_lfodl +ply_lfodl: @ 0x080AF8B8 + mov ip, lr + bl sub_080AF778 + strb r3, [r1, #0x1b] + bx ip + .align 2, 0 + + thumb_func_start ply_modt +ply_modt: @ 0x080AF8C4 + mov ip, lr + bl sub_080AF778 + ldrb r0, [r1, #0x18] + cmp r0, r3 + beq _080AF8DA + strb r3, [r1, #0x18] + ldrb r3, [r1] + movs r2, #0xf + orrs r3, r2 + strb r3, [r1] +_080AF8DA: + bx ip + + thumb_func_start ply_tune +ply_tune: @ 0x080AF8DC + mov ip, lr + bl sub_080AF778 + subs r3, #0x40 + strb r3, [r1, #0xc] + ldrb r3, [r1] + movs r2, #0xc + orrs r3, r2 + strb r3, [r1] + bx ip + + thumb_func_start ply_port +ply_port: @ 0x080AF8F0 + mov ip, lr + ldr r2, [r1, #0x40] + ldrb r3, [r2] + adds r2, #1 + ldr r0, _080AF904 @ =0x04000060 + adds r0, r0, r3 + bl sub_080AF77A + + thumb_func_start sub_080AF900 +sub_080AF900: @ 0x080AF900 + strb r3, [r0] + bx ip + .align 2, 0 +_080AF904: .4byte 0x04000060 + + thumb_func_start MPlayMain +MPlayMain: @ 0x080AF908 + ldr r2, _080AFB80 @ =0x68736D53 + ldr r3, [r0, #0x34] + cmp r2, r3 + beq _080AF912 + bx lr +_080AF912: + adds r3, #1 + str r3, [r0, #0x34] + push {r0, lr} + ldr r3, [r0, #0x38] + cmp r3, #0 + beq _080AF924 + ldr r0, [r0, #0x3c] + bl sub_080AFB74 +_080AF924: + pop {r0} + push {r4, r5, r6, r7} + mov r4, r8 + mov r5, sb + mov r6, sl + mov r7, fp + push {r4, r5, r6, r7} + adds r7, r0, #0 + ldr r0, [r7, #4] + cmp r0, #0 + bge _080AF93C + b _080AFB64 +_080AF93C: + ldr r0, _080AFB7C @ =0x03007FF0 + ldr r0, [r0] + mov r8, r0 + adds r0, r7, #0 + bl FadeOutBody + ldr r0, [r7, #4] + cmp r0, #0 + bge _080AF950 + b _080AFB64 +_080AF950: + ldrh r0, [r7, #0x22] + ldrh r1, [r7, #0x20] + adds r0, r0, r1 + b _080AFAAA +_080AF958: + ldrb r6, [r7, #8] + ldr r5, [r7, #0x2c] + movs r3, #1 + movs r4, #0 +_080AF960: + ldrb r0, [r5] + movs r1, #0x80 + tst r1, r0 + bne _080AF96A + b _080AFA86 +_080AF96A: + mov sl, r3 + orrs r4, r3 + mov fp, r4 + ldr r4, [r5, #0x20] + cmp r4, #0 + beq _080AF9A8 +_080AF976: + ldrb r1, [r4] + movs r0, #0xc7 + tst r0, r1 + beq _080AF992 + ldrb r0, [r4, #0x10] + cmp r0, #0 + beq _080AF998 + subs r0, #1 + strb r0, [r4, #0x10] + bne _080AF998 + movs r0, #0x40 + orrs r1, r0 + strb r1, [r4] + b _080AF998 +_080AF992: + adds r0, r4, #0 + bl ClearChain +_080AF998: + ldr r1, [r4, #0x34] + cmp r1, r4 + bne _080AF9A2 + movs r1, #0 + str r1, [r4, #0x34] +_080AF9A2: + adds r4, r1, #0 + cmp r4, #0 + bne _080AF976 +_080AF9A8: + ldrb r3, [r5] + movs r0, #0x40 + tst r0, r3 + beq _080AFA26 + adds r0, r5, #0 + bl Clear64byte + movs r0, #0x80 + strb r0, [r5] + movs r0, #2 + strb r0, [r5, #0xf] + movs r0, #0x40 + strb r0, [r5, #0x13] + movs r0, #0x16 + strb r0, [r5, #0x19] + movs r0, #1 + adds r1, r5, #6 + strb r0, [r1, #0x1e] + b _080AFA26 +_080AF9CE: + ldr r2, [r5, #0x40] + ldrb r1, [r2] + cmp r1, #0x80 + bhs _080AF9DA + ldrb r1, [r5, #7] + b _080AF9E4 +_080AF9DA: + adds r2, #1 + str r2, [r5, #0x40] + cmp r1, #0xbd + blo _080AF9E4 + strb r1, [r5, #7] +_080AF9E4: + cmp r1, #0xcf + blo _080AF9FA + mov r0, r8 + ldr r3, [r0, #0x38] + adds r0, r1, #0 + subs r0, #0xcf + adds r1, r7, #0 + adds r2, r5, #0 + bl sub_080AFB74 + b _080AFA26 +_080AF9FA: + cmp r1, #0xb0 + bls _080AFA1C + adds r0, r1, #0 + subs r0, #0xb1 + strb r0, [r7, #0xa] + mov r3, r8 + ldr r3, [r3, #0x34] + lsls r0, r0, #2 + ldr r3, [r3, r0] + adds r0, r7, #0 + adds r1, r5, #0 + bl sub_080AFB74 + ldrb r0, [r5] + cmp r0, #0 + beq _080AFA82 + b _080AFA26 +_080AFA1C: + ldr r0, _080AFB78 @ =gUnk_089FC938 + subs r1, #0x80 + adds r1, r1, r0 + ldrb r0, [r1] + strb r0, [r5, #1] +_080AFA26: + ldrb r0, [r5, #1] + cmp r0, #0 + beq _080AF9CE + subs r0, #1 + strb r0, [r5, #1] + ldrb r1, [r5, #0x19] + cmp r1, #0 + beq _080AFA82 + ldrb r0, [r5, #0x17] + cmp r0, #0 + beq _080AFA82 + ldrb r0, [r5, #0x1c] + cmp r0, #0 + beq _080AFA48 + subs r0, #1 + strb r0, [r5, #0x1c] + b _080AFA82 +_080AFA48: + ldrb r0, [r5, #0x1a] + adds r0, r0, r1 + strb r0, [r5, #0x1a] + adds r1, r0, #0 + subs r0, #0x40 + lsls r0, r0, #0x18 + bpl _080AFA5C + lsls r2, r1, #0x18 + asrs r2, r2, #0x18 + b _080AFA60 +_080AFA5C: + movs r0, #0x80 + subs r2, r0, r1 +_080AFA60: + ldrb r0, [r5, #0x17] + muls r0, r2, r0 + asrs r2, r0, #6 + ldrb r0, [r5, #0x16] + eors r0, r2 + lsls r0, r0, #0x18 + beq _080AFA82 + strb r2, [r5, #0x16] + ldrb r0, [r5] + ldrb r1, [r5, #0x18] + cmp r1, #0 + bne _080AFA7C + movs r1, #0xc + b _080AFA7E +_080AFA7C: + movs r1, #3 +_080AFA7E: + orrs r0, r1 + strb r0, [r5] +_080AFA82: + mov r3, sl + mov r4, fp +_080AFA86: + subs r6, #1 + ble _080AFA92 + movs r0, #0x50 + adds r5, r5, r0 + lsls r3, r3, #1 + b _080AF960 +_080AFA92: + ldr r0, [r7, #0xc] + adds r0, #1 + str r0, [r7, #0xc] + cmp r4, #0 + bne _080AFAA4 + movs r0, #0x80 + lsls r0, r0, #0x18 + str r0, [r7, #4] + b _080AFB64 +_080AFAA4: + str r4, [r7, #4] + ldrh r0, [r7, #0x22] + subs r0, #0x96 +_080AFAAA: + strh r0, [r7, #0x22] + cmp r0, #0x96 + blo _080AFAB2 + b _080AF958 +_080AFAB2: + ldrb r2, [r7, #8] + ldr r5, [r7, #0x2c] +_080AFAB6: + ldrb r0, [r5] + movs r1, #0x80 + tst r1, r0 + beq _080AFB5A + movs r1, #0xf + tst r1, r0 + beq _080AFB5A + mov sb, r2 + adds r0, r7, #0 + adds r1, r5, #0 + bl TrkVolPitSet + ldr r4, [r5, #0x20] + cmp r4, #0 + beq _080AFB50 +_080AFAD4: + ldrb r1, [r4] + movs r0, #0xc7 + tst r0, r1 + bne _080AFAE4 + adds r0, r4, #0 + bl ClearChain + b _080AFB40 +_080AFAE4: + ldrb r0, [r4, #1] + movs r6, #7 + ands r6, r0 + ldrb r3, [r5] + movs r0, #3 + tst r0, r3 + beq _080AFB02 + bl ChnVolSetAsm + cmp r6, #0 + beq _080AFB02 + ldrb r0, [r4, #0x1d] + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x1d] +_080AFB02: + ldrb r3, [r5] + movs r0, #0xc + tst r0, r3 + beq _080AFB40 + ldrb r1, [r4, #8] + movs r0, #8 + ldrsb r0, [r5, r0] + adds r2, r1, r0 + bpl _080AFB16 + movs r2, #0 +_080AFB16: + cmp r6, #0 + beq _080AFB34 + mov r0, r8 + ldr r3, [r0, #0x30] + adds r1, r2, #0 + ldrb r2, [r5, #9] + adds r0, r6, #0 + bl sub_080AFB74 + str r0, [r4, #0x20] + ldrb r0, [r4, #0x1d] + movs r1, #2 + orrs r0, r1 + strb r0, [r4, #0x1d] + b _080AFB40 +_080AFB34: + adds r1, r2, #0 + ldrb r2, [r5, #9] + ldr r0, [r4, #0x24] + bl MidiKeyToFreq + str r0, [r4, #0x20] +_080AFB40: + ldr r1, [r4, #0x34] + cmp r1, r4 + bne _080AFB4A + movs r1, #0 + str r1, [r4, #0x34] +_080AFB4A: + adds r4, r1, #0 + cmp r4, #0 + bne _080AFAD4 +_080AFB50: + ldrb r0, [r5] + movs r1, #0xf0 + ands r0, r1 + strb r0, [r5] + mov r2, sb +_080AFB5A: + subs r2, #1 + ble _080AFB64 + movs r0, #0x50 + adds r5, r5, r0 + bgt _080AFAB6 +_080AFB64: + ldr r0, _080AFB80 @ =0x68736D53 + str r0, [r7, #0x34] + pop {r0, r1, r2, r3, r4, r5, r6, r7} + mov r8, r0 + mov sb, r1 + mov sl, r2 + mov fp, r3 + pop {r3} + + thumb_func_start sub_080AFB74 +sub_080AFB74: @ 0x080AFB74 + bx r3 + .align 2, 0 +_080AFB78: .4byte gUnk_089FC938 +_080AFB7C: .4byte 0x03007FF0 +_080AFB80: .4byte 0x68736D53 + + thumb_func_start TrackStop +TrackStop: @ 0x080AFB84 + push {r4, r5, r6, lr} + adds r5, r1, #0 + ldrb r1, [r5] + movs r0, #0x80 + tst r0, r1 + beq _080AFBC6 + ldr r4, [r5, #0x20] + cmp r4, #0 + beq _080AFBC4 + movs r6, #0 +_080AFB98: + ldrb r0, [r4] + cmp r0, #0 + beq _080AFBB2 + ldrb r0, [r4, #1] + movs r3, #7 + ands r0, r3 + beq _080AFBB0 + ldr r3, _080AFBCC @ =0x03007FF0 + ldr r3, [r3] + ldr r3, [r3, #0x2c] + bl sub_080AFB74 +_080AFBB0: + strb r6, [r4] +_080AFBB2: + str r6, [r4, #0x2c] + ldr r0, [r4, #0x34] + cmp r0, r4 + bne _080AFBBE + movs r0, #0 + str r0, [r4, #0x34] +_080AFBBE: + adds r4, r0, #0 + cmp r4, #0 + bne _080AFB98 +_080AFBC4: + str r4, [r5, #0x20] +_080AFBC6: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_080AFBCC: .4byte 0x03007FF0 + + thumb_func_start ChnVolSetAsm +ChnVolSetAsm: @ 0x080AFBD0 + ldrb r1, [r4, #0x12] + movs r0, #0x14 + ldrsb r2, [r4, r0] + movs r3, #0x80 + adds r3, r3, r2 + muls r3, r1, r3 + ldrb r0, [r5, #0x10] + muls r0, r3, r0 + asrs r0, r0, #0xe + cmp r0, #0xff + bls _080AFBE8 + movs r0, #0xff +_080AFBE8: + strb r0, [r4, #2] + movs r3, #0x7f + subs r3, r3, r2 + muls r3, r1, r3 + ldrb r0, [r5, #0x11] + muls r0, r3, r0 + asrs r0, r0, #0xe + cmp r0, #0xff + bls _080AFBFC + movs r0, #0xff +_080AFBFC: + strb r0, [r4, #3] + bx lr + + thumb_func_start ply_note +ply_note: @ 0x080AFC00 + push {r4, r5, r6, r7, lr} + mov r4, r8 + mov r5, sb + mov r6, sl + mov r7, fp + push {r4, r5, r6, r7} + sub sp, #0x18 + str r1, [sp] + adds r5, r2, #0 + ldr r1, _080AFDF8 @ =0x03007FF0 + ldr r1, [r1] + str r1, [sp, #4] + ldr r1, _080AFDFC @ =gUnk_089FC938 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r5, #4] + ldr r3, [r5, #0x40] + ldrb r0, [r3] + cmp r0, #0x80 + bhs _080AFC46 + strb r0, [r5, #5] + adds r3, #1 + ldrb r0, [r3] + cmp r0, #0x80 + bhs _080AFC44 + strb r0, [r5, #6] + adds r3, #1 + ldrb r0, [r3] + cmp r0, #0x80 + bhs _080AFC44 + ldrb r1, [r5, #4] + adds r1, r1, r0 + strb r1, [r5, #4] + adds r3, #1 +_080AFC44: + str r3, [r5, #0x40] +_080AFC46: + movs r0, #0 + str r0, [sp, #0x14] + adds r4, r5, #0 + adds r4, #0x24 + ldrb r2, [r4] + movs r0, #0xc0 + tst r0, r2 + beq _080AFC98 + ldrb r3, [r5, #5] + movs r0, #0x40 + tst r0, r2 + beq _080AFC66 + ldr r1, [r5, #0x2c] + adds r1, r1, r3 + ldrb r0, [r1] + b _080AFC68 +_080AFC66: + adds r0, r3, #0 +_080AFC68: + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, [r5, #0x28] + adds r1, r1, r0 + mov sb, r1 + mov r6, sb + ldrb r1, [r6] + movs r0, #0xc0 + tst r0, r1 + beq _080AFC80 + b _080AFDE6 +_080AFC80: + movs r0, #0x80 + tst r0, r2 + beq _080AFC9C + ldrb r1, [r6, #3] + movs r0, #0x80 + tst r0, r1 + beq _080AFC94 + subs r1, #0xc0 + lsls r1, r1, #1 + str r1, [sp, #0x14] +_080AFC94: + ldrb r3, [r6, #1] + b _080AFC9C +_080AFC98: + mov sb, r4 + ldrb r3, [r5, #5] +_080AFC9C: + str r3, [sp, #8] + ldr r6, [sp] + ldrb r1, [r6, #9] + ldrb r0, [r5, #0x1d] + adds r0, r0, r1 + cmp r0, #0xff + bls _080AFCAC + movs r0, #0xff +_080AFCAC: + str r0, [sp, #0x10] + mov r6, sb + ldrb r0, [r6] + movs r6, #7 + ands r6, r0 + str r6, [sp, #0xc] + beq _080AFCEC + ldr r0, [sp, #4] + ldr r4, [r0, #0x1c] + cmp r4, #0 + bne _080AFCC4 + b _080AFDE6 +_080AFCC4: + subs r6, #1 + lsls r0, r6, #6 + adds r4, r4, r0 + ldrb r1, [r4] + movs r0, #0xc7 + tst r0, r1 + beq _080AFD40 + movs r0, #0x40 + tst r0, r1 + bne _080AFD40 + ldrb r1, [r4, #0x13] + ldr r0, [sp, #0x10] + cmp r1, r0 + blo _080AFD40 + beq _080AFCE4 + b _080AFDE6 +_080AFCE4: + ldr r0, [r4, #0x2c] + cmp r0, r5 + bhs _080AFD40 + b _080AFDE6 +_080AFCEC: + ldr r6, [sp, #0x10] + adds r7, r5, #0 + movs r2, #0 + mov r8, r2 + ldr r4, [sp, #4] + ldrb r3, [r4, #6] + adds r4, #0x50 +_080AFCFA: + ldrb r1, [r4] + movs r0, #0xc7 + tst r0, r1 + beq _080AFD40 + movs r0, #0x40 + tst r0, r1 + beq _080AFD14 + cmp r2, #0 + bne _080AFD18 + adds r2, #1 + ldrb r6, [r4, #0x13] + ldr r7, [r4, #0x2c] + b _080AFD32 +_080AFD14: + cmp r2, #0 + bne _080AFD34 +_080AFD18: + ldrb r0, [r4, #0x13] + cmp r0, r6 + bhs _080AFD24 + adds r6, r0, #0 + ldr r7, [r4, #0x2c] + b _080AFD32 +_080AFD24: + bhi _080AFD34 + ldr r0, [r4, #0x2c] + cmp r0, r7 + bls _080AFD30 + adds r7, r0, #0 + b _080AFD32 +_080AFD30: + blo _080AFD34 +_080AFD32: + mov r8, r4 +_080AFD34: + adds r4, #0x40 + subs r3, #1 + bgt _080AFCFA + mov r4, r8 + cmp r4, #0 + beq _080AFDE6 +_080AFD40: + adds r0, r4, #0 + bl ClearChain + movs r1, #0 + str r1, [r4, #0x30] + ldr r3, [r5, #0x20] + str r3, [r4, #0x34] + cmp r3, #0 + beq _080AFD54 + str r4, [r3, #0x30] +_080AFD54: + str r4, [r5, #0x20] + str r5, [r4, #0x2c] + ldrb r0, [r5, #0x1b] + strb r0, [r5, #0x1c] + cmp r0, r1 + beq _080AFD66 + adds r1, r5, #0 + bl clear_modM +_080AFD66: + ldr r0, [sp] + adds r1, r5, #0 + bl TrkVolPitSet + ldr r0, [r5, #4] + str r0, [r4, #0x10] + ldr r0, [sp, #0x10] + strb r0, [r4, #0x13] + ldr r0, [sp, #8] + strb r0, [r4, #8] + ldr r0, [sp, #0x14] + strb r0, [r4, #0x14] + mov r6, sb + ldrb r0, [r6] + strb r0, [r4, #1] + ldr r7, [r6, #4] + str r7, [r4, #0x24] + ldr r0, [r6, #8] + str r0, [r4, #4] + ldrh r0, [r5, #0x1e] + strh r0, [r4, #0xc] + bl ChnVolSetAsm + ldrb r1, [r4, #8] + movs r0, #8 + ldrsb r0, [r5, r0] + adds r3, r1, r0 + bpl _080AFDA0 + movs r3, #0 +_080AFDA0: + ldr r6, [sp, #0xc] + cmp r6, #0 + beq _080AFDCE + mov r6, sb + ldrb r0, [r6, #2] + strb r0, [r4, #0x1e] + ldrb r1, [r6, #3] + movs r0, #0x80 + tst r0, r1 + bne _080AFDBA + movs r0, #0x70 + tst r0, r1 + bne _080AFDBC +_080AFDBA: + movs r1, #8 +_080AFDBC: + strb r1, [r4, #0x1f] + ldrb r2, [r5, #9] + adds r1, r3, #0 + ldr r0, [sp, #0xc] + ldr r3, [sp, #4] + ldr r3, [r3, #0x30] + bl sub_080AFB74 + b _080AFDD8 +_080AFDCE: + ldrb r2, [r5, #9] + adds r1, r3, #0 + adds r0, r7, #0 + bl MidiKeyToFreq +_080AFDD8: + str r0, [r4, #0x20] + movs r0, #0x80 + strb r0, [r4] + ldrb r1, [r5] + movs r0, #0xf0 + ands r0, r1 + strb r0, [r5] +_080AFDE6: + add sp, #0x18 + pop {r0, r1, r2, r3, r4, r5, r6, r7} + mov r8, r0 + mov sb, r1 + mov sl, r2 + mov fp, r3 + pop {r0} + bx r0 + .align 2, 0 +_080AFDF8: .4byte 0x03007FF0 +_080AFDFC: .4byte gUnk_089FC938 + + thumb_func_start ply_endtie +ply_endtie: @ 0x080AFE00 + push {r4, r5} + ldr r2, [r1, #0x40] + ldrb r3, [r2] + cmp r3, #0x80 + bhs _080AFE12 + strb r3, [r1, #5] + adds r2, #1 + str r2, [r1, #0x40] + b _080AFE14 +_080AFE12: + ldrb r3, [r1, #5] +_080AFE14: + ldr r1, [r1, #0x20] + cmp r1, #0 + beq _080AFE46 + movs r4, #0x83 + movs r5, #0x40 +_080AFE1E: + ldrb r2, [r1] + tst r2, r4 + beq _080AFE36 + tst r2, r5 + bne _080AFE36 + ldrb r0, [r1, #0x11] + cmp r0, r3 + bne _080AFE36 + movs r0, #0x40 + orrs r2, r0 + strb r2, [r1] + b _080AFE46 +_080AFE36: + ldr r2, [r1, #0x34] + cmp r2, r1 + bne _080AFE40 + movs r2, #0 + str r2, [r1, #0x34] +_080AFE40: + adds r1, r2, #0 + cmp r1, #0 + bne _080AFE1E +_080AFE46: + pop {r4, r5} + bx lr + .align 2, 0 + + thumb_func_start clear_modM +clear_modM: @ 0x080AFE4C + movs r2, #0 + strb r2, [r1, #0x16] + strb r2, [r1, #0x1a] + ldrb r2, [r1, #0x18] + cmp r2, #0 + bne _080AFE5C + movs r2, #0xc + b _080AFE5E +_080AFE5C: + movs r2, #3 +_080AFE5E: + ldrb r3, [r1] + orrs r3, r2 + strb r3, [r1] + bx lr + .align 2, 0 + + thumb_func_start sub_080AFE68 +sub_080AFE68: @ 0x080AFE68 + ldr r2, [r1, #0x40] + adds r3, r2, #1 + str r3, [r1, #0x40] + ldrb r3, [r2] + bx lr + .align 2, 0 + + thumb_func_start ply_lfos +ply_lfos: @ 0x080AFE74 + mov ip, lr + bl sub_080AFE68 + strb r3, [r1, #0x19] + cmp r3, #0 + bne _080AFE84 + bl clear_modM +_080AFE84: + bx ip + .align 2, 0 + + thumb_func_start ply_mod +ply_mod: @ 0x080AFE88 + mov ip, lr + bl sub_080AFE68 + strb r3, [r1, #0x17] + cmp r3, #0 + bne _080AFE98 + bl clear_modM +_080AFE98: + bx ip + .align 2, 0 diff --git a/asm/macros.inc b/asm/macros.inc new file mode 100644 index 00000000..798099fb --- /dev/null +++ b/asm/macros.inc @@ -0,0 +1,3 @@ + .include "asm/macros/asm.inc" + .include "asm/macros/function.inc" + .include "asm/macros/m4a.inc" diff --git a/asm/macros/asm.inc b/asm/macros/asm.inc new file mode 100644 index 00000000..26b2707c --- /dev/null +++ b/asm/macros/asm.inc @@ -0,0 +1,17 @@ + .ifndef GUARD_ASM_MACROS_ASM_INC + .set GUARD_ASM_MACROS_ASM_INC, 1 + + .macro inc x + .set \x, \x + 1 + .endm + + .macro enum_start x=0 + .set __enum__, \x + .endm + + .macro enum constant + .equiv \constant, __enum__ + inc __enum__ + .endm + + .endif @ GUARD_ASM_MACROS_ASM_INC diff --git a/asm/macros/function.inc b/asm/macros/function.inc new file mode 100644 index 00000000..67fb373a --- /dev/null +++ b/asm/macros/function.inc @@ -0,0 +1,29 @@ + .macro arm_func_start name + .align 2, 0 + .global \name + .arm + .type \name, function + .endm + + .macro arm_func_end name + .size \name, .-\name + .endm + + .macro thumb_func_start name + .align 2, 0 + .global \name + .thumb + .thumb_func + .type \name, function + .endm + + .macro non_word_aligned_thumb_func_start name + .global \name + .thumb + .thumb_func + .type \name, function + .endm + + .macro thumb_func_end name + .size \name, .-\name + .endm diff --git a/asm/macros/m4a.inc b/asm/macros/m4a.inc new file mode 100644 index 00000000..6c5abc09 --- /dev/null +++ b/asm/macros/m4a.inc @@ -0,0 +1,13 @@ + .macro song label, music_player, unknown + .4byte \label + .2byte \music_player + .2byte \unknown + .endm + + .macro music_player info_struct, track_struct, unknown_1, unknown_2 + .4byte \info_struct + .4byte \track_struct + .byte \unknown_1 + .space 1 + .2byte \unknown_2 + .endm diff --git a/asm/macros/music_voice.inc b/asm/macros/music_voice.inc new file mode 100644 index 00000000..9a95d69f --- /dev/null +++ b/asm/macros/music_voice.inc @@ -0,0 +1,113 @@ + .macro voice_directsound base_midi_key, pan, sample_data_pointer, attack, decay, sustain, release + .byte 0 + _voice_directsound \base_midi_key, \pan, \sample_data_pointer, \attack, \decay, \sustain, \release + .endm + + .macro voice_directsound_no_resample base_midi_key, pan, sample_data_pointer, attack, decay, sustain, release + .byte 8 + _voice_directsound \base_midi_key, \pan, \sample_data_pointer, \attack, \decay, \sustain, \release + .endm + + .macro voice_directsound_alt base_midi_key, pan, sample_data_pointer, attack, decay, sustain, release + .byte 16 + _voice_directsound \base_midi_key, \pan, \sample_data_pointer, \attack, \decay, \sustain, \release + .endm + + .macro _voice_directsound base_midi_key, pan, sample_data_pointer, attack, decay, sustain, release + .byte \base_midi_key + .byte 0 + .if \pan != 0 + .byte (0x80 | \pan) + .else + .byte 0 + .endif + .4byte \sample_data_pointer + .byte \attack + .byte \decay + .byte \sustain + .byte \release + .endm + + .macro voice_square_1 sweep, duty_cycle, attack, decay, sustain, release + _voice_square_1 1, \sweep, \duty_cycle, \attack, \decay, \sustain, \release + .endm + + .macro voice_square_1_alt sweep, duty_cycle, attack, decay, sustain, release + _voice_square_1 9, \sweep, \duty_cycle, \attack, \decay, \sustain, \release + .endm + + .macro _voice_square_1 type, sweep, duty_cycle, attack, decay, sustain, release + .byte \type, 60, 0 + .byte \sweep + .byte (\duty_cycle & 0x3) + .byte 0, 0, 0 + .byte (\attack & 0x7) + .byte (\decay & 0x7) + .byte (\sustain & 0xF) + .byte (\release & 0x7) + .endm + + .macro voice_square_2 duty_cycle, attack, decay, sustain, release + _voice_square_2 2, \duty_cycle, \attack, \decay, \sustain, \release + .endm + + .macro voice_square_2_alt duty_cycle, attack, decay, sustain, release + _voice_square_2 10, \duty_cycle, \attack, \decay, \sustain, \release + .endm + + .macro _voice_square_2 type, duty_cycle, attack, decay, sustain, release + .byte \type, 60, 0, 0 + .byte (\duty_cycle & 0x3) + .byte 0, 0, 0 + .byte (\attack & 0x7) + .byte (\decay & 0x7) + .byte (\sustain & 0xF) + .byte (\release & 0x7) + .endm + + .macro voice_programmable_wave wave_samples_pointer, attack, decay, sustain, release + _voice_programmable_wave 3, \wave_samples_pointer, \attack, \decay, \sustain, \release + .endm + + .macro voice_programmable_wave_alt wave_samples_pointer, attack, decay, sustain, release + _voice_programmable_wave 11, \wave_samples_pointer, \attack, \decay, \sustain, \release + .endm + + .macro _voice_programmable_wave type, wave_samples_pointer, attack, decay, sustain, release + .byte \type, 60, 0, 0 + .4byte \wave_samples_pointer + .byte (\attack & 0x7) + .byte (\decay & 0x7) + .byte (\sustain & 0xF) + .byte (\release & 0x7) + .endm + + .macro voice_noise period, attack, decay, sustain, release + _voice_noise 4, \period, \attack, \decay, \sustain, \release + .endm + + .macro voice_noise_alt period, attack, decay, sustain, release + _voice_noise 12, \period, \attack, \decay, \sustain, \release + .endm + + .macro _voice_noise type, period, attack, decay, sustain, release + .byte \type, 60, 0, 0 + .byte (\period & 0x1) + .byte 0, 0, 0 + .byte (\attack & 0x7) + .byte (\decay & 0x7) + .byte (\sustain & 0xF) + .byte (\release & 0x7) + .endm + + .macro voice_keysplit voice_group_pointer, keysplit_table_pointer + .byte 0x40, 0, 0, 0 + .4byte \voice_group_pointer + .4byte \keysplit_table_pointer + .endm + + .macro voice_keysplit_all voice_group_pointer + .byte 0x80, 0, 0, 0 + .4byte \voice_group_pointer + .4byte 0 + .endm diff --git a/asm/rom_header.inc b/asm/rom_header.inc new file mode 100644 index 00000000..6730efae --- /dev/null +++ b/asm/rom_header.inc @@ -0,0 +1,35 @@ + .global RomHeaderNintendoLogo +RomHeaderNintendoLogo: + .space 156 + +RomHeaderGameTitle: + .space 12 + + .global RomHeaderGameCode +RomHeaderGameCode: + .space 4 + +RomHeaderMakerCode: + .space 2 + +RomHeaderMagic: + .byte 0 + +RomHeaderMainUnitCode: + .byte 0 + +RomHeaderDeviceType: + .byte 0 + +RomHeaderReserved1: + .space 7 + + .global RomHeaderSoftwareVersion +RomHeaderSoftwareVersion: + .byte 0 + +RomHeaderChecksum: + .byte 0 + +RomHeaderReserved2: + .space 2 diff --git a/asmdiff.sh b/asmdiff.sh new file mode 100644 index 00000000..713878d7 --- /dev/null +++ b/asmdiff.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +buildname=zeldatmc +baserom=baserom + +OBJDUMP="$DEVKITARM/bin/arm-none-eabi-objdump -D -bbinary -marmv4t -Mforce-thumb" +OPTIONS="--start-address=$(($1)) --stop-address=$(($1 + $2))" +$OBJDUMP $OPTIONS ${baserom}.gba > ${baserom}.dump || exit 1 +$OBJDUMP $OPTIONS ${buildname}.gba > ${buildname}.dump +diff -u ${baserom}.dump ${buildname}.dump diff --git a/constants/constants.inc b/constants/constants.inc new file mode 100644 index 00000000..5562798b --- /dev/null +++ b/constants/constants.inc @@ -0,0 +1,3 @@ + .include "constants/gba_constants.inc" + .include "constants/m4a_constants.inc" + .include "constants/misc_constants.inc" diff --git a/constants/gba_constants.inc b/constants/gba_constants.inc new file mode 100644 index 00000000..1d36c8bb --- /dev/null +++ b/constants/gba_constants.inc @@ -0,0 +1,494 @@ + .set PSR_USR_MODE, 0x00000010 + .set PSR_FIQ_MODE, 0x00000011 + .set PSR_IRQ_MODE, 0x00000012 + .set PSR_SVC_MODE, 0x00000013 + .set PSR_ABT_MODE, 0x00000017 + .set PSR_UND_MODE, 0x0000001b + .set PSR_SYS_MODE, 0x0000001f + .set PSR_MODE_MASK, 0x0000001f + .set PSR_T_BIT, 0x00000020 + .set PSR_F_BIT, 0x00000040 + .set PSR_I_BIT, 0x00000080 + + .set EWRAM_START, 0x2000000 + .set EWRAM_END, EWRAM_START + 0x40000 + .set IWRAM_START, 0x3000000 + .set IWRAM_END, IWRAM_START + 0x8000 + + .set PLTT, 0x5000000 + .set BG_PLTT, PLTT + .set OBJ_PLTT, PLTT + 0x200 + + .set VRAM, 0x6000000 + .set BG_VRAM, VRAM + .set OBJ_VRAM0, VRAM + 0x10000 @ text-mode BG + .set OBJ_VRAM1, VRAM + 0x14000 @ bitmap-mode BG + + .set OAM, 0x7000000 + + .set SOUND_INFO_PTR, 0x3007FF0 + .set INTR_CHECK, 0x3007FF8 + .set INTR_VECTOR, 0x3007FFC + + .set INTR_FLAG_VBLANK, 1 << 0 + .set INTR_FLAG_HBLANK, 1 << 1 + .set INTR_FLAG_VCOUNT, 1 << 2 + .set INTR_FLAG_TIMER0, 1 << 3 + .set INTR_FLAG_TIMER1, 1 << 4 + .set INTR_FLAG_TIMER2, 1 << 5 + .set INTR_FLAG_TIMER3, 1 << 6 + .set INTR_FLAG_SERIAL, 1 << 7 + .set INTR_FLAG_DMA0, 1 << 8 + .set INTR_FLAG_DMA1, 1 << 9 + .set INTR_FLAG_DMA2, 1 << 10 + .set INTR_FLAG_DMA3, 1 << 11 + .set INTR_FLAG_KEYPAD, 1 << 12 + .set INTR_FLAG_GAMEPAK, 1 << 13 + + .set VCOUNT_VBLANK, 160 + .set TOTAL_SCANLINES, 228 + + .set REG_BASE, 0x4000000 @ I/O register base address + +@ I/O register offsets + .set OFFSET_REG_DISPCNT, 0x0 + .set OFFSET_REG_DISPSTAT, 0x4 + .set OFFSET_REG_VCOUNT, 0x6 + .set OFFSET_REG_BG0CNT, 0x8 + .set OFFSET_REG_BG1CNT, 0xa + .set OFFSET_REG_BG2CNT, 0xc + .set OFFSET_REG_BG3CNT, 0xe + .set OFFSET_REG_BG0HOFS, 0x10 + .set OFFSET_REG_BG0VOFS, 0x12 + .set OFFSET_REG_BG1HOFS, 0x14 + .set OFFSET_REG_BG1VOFS, 0x16 + .set OFFSET_REG_BG2HOFS, 0x18 + .set OFFSET_REG_BG2VOFS, 0x1a + .set OFFSET_REG_BG3HOFS, 0x1c + .set OFFSET_REG_BG3VOFS, 0x1e + .set OFFSET_REG_BG2PA, 0x20 + .set OFFSET_REG_BG2PB, 0x22 + .set OFFSET_REG_BG2PC, 0x24 + .set OFFSET_REG_BG2PD, 0x26 + .set OFFSET_REG_BG2X_L, 0x28 + .set OFFSET_REG_BG2X_H, 0x2a + .set OFFSET_REG_BG2Y_L, 0x2c + .set OFFSET_REG_BG2Y_H, 0x2e + .set OFFSET_REG_BG3PA, 0x30 + .set OFFSET_REG_BG3PB, 0x32 + .set OFFSET_REG_BG3PC, 0x34 + .set OFFSET_REG_BG3PD, 0x36 + .set OFFSET_REG_BG3X_L, 0x38 + .set OFFSET_REG_BG3X_H, 0x3a + .set OFFSET_REG_BG3Y_L, 0x3c + .set OFFSET_REG_BG3Y_H, 0x3e + .set OFFSET_REG_WIN0H, 0x40 + .set OFFSET_REG_WIN1H, 0x42 + .set OFFSET_REG_WIN0V, 0x44 + .set OFFSET_REG_WIN1V, 0x46 + .set OFFSET_REG_WININ, 0x48 + .set OFFSET_REG_WINOUT, 0x4a + .set OFFSET_REG_MOSAIC, 0x4c + .set OFFSET_REG_BLDCNT, 0x50 + .set OFFSET_REG_BLDALPHA, 0x52 + .set OFFSET_REG_BLDY, 0x54 + + .set OFFSET_REG_SOUND1CNT, 0x60 + .set OFFSET_REG_SOUND1CNT_L, 0x60 + .set OFFSET_REG_NR10, 0x60 + .set OFFSET_REG_SOUND1CNT_H, 0x62 + .set OFFSET_REG_NR11, 0x62 + .set OFFSET_REG_NR12, 0x63 + .set OFFSET_REG_SOUND1CNT_X, 0x64 + .set OFFSET_REG_NR13, 0x64 + .set OFFSET_REG_NR14, 0x65 + .set OFFSET_REG_SOUND2CNT, 0x68 + .set OFFSET_REG_SOUND2CNT_L, 0x68 + .set OFFSET_REG_NR21, 0x68 + .set OFFSET_REG_NR22, 0x69 + .set OFFSET_REG_SOUND2CNT_H, 0x6c + .set OFFSET_REG_NR23, 0x6c + .set OFFSET_REG_NR24, 0x6d + .set OFFSET_REG_SOUND3CNT, 0x70 + .set OFFSET_REG_SOUND3CNT_L, 0x70 + .set OFFSET_REG_NR30, 0x70 + .set OFFSET_REG_SOUND3CNT_H, 0x72 + .set OFFSET_REG_NR31, 0x72 + .set OFFSET_REG_NR32, 0x73 + .set OFFSET_REG_SOUND3CNT_X, 0x74 + .set OFFSET_REG_NR33, 0x74 + .set OFFSET_REG_NR34, 0x75 + .set OFFSET_REG_SOUND4CNT, 0x78 + .set OFFSET_REG_SOUND4CNT_L, 0x78 + .set OFFSET_REG_NR41, 0x78 + .set OFFSET_REG_NR42, 0x79 + .set OFFSET_REG_SOUND4CNT_H, 0x7c + .set OFFSET_REG_NR43, 0x7c + .set OFFSET_REG_NR44, 0x7d + .set OFFSET_REG_SOUNDCNT, 0x80 + .set OFFSET_REG_SOUNDCNT_L, 0x80 + .set OFFSET_REG_NR50, 0x80 + .set OFFSET_REG_NR51, 0x81 + .set OFFSET_REG_SOUNDCNT_H, 0x82 + .set OFFSET_REG_SOUNDCNT_X, 0x84 + .set OFFSET_REG_NR52, 0x84 + .set OFFSET_REG_SOUNDBIAS, 0x88 + .set OFFSET_REG_WAVE_RAM, 0x90 + .set OFFSET_REG_WAVE_RAM0, 0x90 + .set OFFSET_REG_WAVE_RAM0_L, 0x90 + .set OFFSET_REG_WAVE_RAM0_H, 0x92 + .set OFFSET_REG_WAVE_RAM1, 0x94 + .set OFFSET_REG_WAVE_RAM1_L, 0x94 + .set OFFSET_REG_WAVE_RAM1_H, 0x96 + .set OFFSET_REG_WAVE_RAM2, 0x98 + .set OFFSET_REG_WAVE_RAM2_L, 0x98 + .set OFFSET_REG_WAVE_RAM2_H, 0x9a + .set OFFSET_REG_WAVE_RAM3, 0x9c + .set OFFSET_REG_WAVE_RAM3_L, 0x9c + .set OFFSET_REG_WAVE_RAM3_H, 0x9e + .set OFFSET_REG_FIFO, 0xa0 + .set OFFSET_REG_FIFO_A, 0xa0 + .set OFFSET_REG_FIFO_A_L, 0xa0 + .set OFFSET_REG_FIFO_A_H, 0xa2 + .set OFFSET_REG_FIFO_B, 0xa4 + .set OFFSET_REG_FIFO_B_L, 0xa4 + .set OFFSET_REG_FIFO_B_H, 0xa6 + + .set OFFSET_REG_DMA0, 0xb0 + .set OFFSET_REG_DMA0SAD, 0xb0 + .set OFFSET_REG_DMA0SAD_L, 0xb0 + .set OFFSET_REG_DMA0SAD_H, 0xb2 + .set OFFSET_REG_DMA0DAD, 0xb4 + .set OFFSET_REG_DMA0DAD_L, 0xb4 + .set OFFSET_REG_DMA0DAD_H, 0xb6 + .set OFFSET_REG_DMA0CNT, 0xb8 + .set OFFSET_REG_DMA0CNT_L, 0xb8 + .set OFFSET_REG_DMA0CNT_H, 0xba + .set OFFSET_REG_DMA1, 0xbc + .set OFFSET_REG_DMA1SAD, 0xbc + .set OFFSET_REG_DMA1SAD_L, 0xbc + .set OFFSET_REG_DMA1SAD_H, 0xbe + .set OFFSET_REG_DMA1DAD, 0xc0 + .set OFFSET_REG_DMA1DAD_L, 0xc0 + .set OFFSET_REG_DMA1DAD_H, 0xc2 + .set OFFSET_REG_DMA1CNT, 0xc4 + .set OFFSET_REG_DMA1CNT_L, 0xc4 + .set OFFSET_REG_DMA1CNT_H, 0xc6 + .set OFFSET_REG_DMA2, 0xc8 + .set OFFSET_REG_DMA2SAD, 0xc8 + .set OFFSET_REG_DMA2SAD_L, 0xc8 + .set OFFSET_REG_DMA2SAD_H, 0xca + .set OFFSET_REG_DMA2DAD, 0xcc + .set OFFSET_REG_DMA2DAD_L, 0xcc + .set OFFSET_REG_DMA2DAD_H, 0xce + .set OFFSET_REG_DMA2CNT, 0xd0 + .set OFFSET_REG_DMA2CNT_L, 0xd0 + .set OFFSET_REG_DMA2CNT_H, 0xd2 + .set OFFSET_REG_DMA3, 0xd4 + .set OFFSET_REG_DMA3SAD, 0xd4 + .set OFFSET_REG_DMA3SAD_L, 0xd4 + .set OFFSET_REG_DMA3SAD_H, 0xd6 + .set OFFSET_REG_DMA3DAD, 0xd8 + .set OFFSET_REG_DMA3DAD_L, 0xd8 + .set OFFSET_REG_DMA3DAD_H, 0xda + .set OFFSET_REG_DMA3CNT, 0xdc + .set OFFSET_REG_DMA3CNT_L, 0xdc + .set OFFSET_REG_DMA3CNT_H, 0xde + + .set OFFSET_REG_TM0CNT, 0x100 + .set OFFSET_REG_TM0CNT_L, 0x100 + .set OFFSET_REG_TM0CNT_H, 0x102 + .set OFFSET_REG_TM1CNT, 0x104 + .set OFFSET_REG_TM1CNT_L, 0x104 + .set OFFSET_REG_TM1CNT_H, 0x106 + .set OFFSET_REG_TM2CNT, 0x108 + .set OFFSET_REG_TM2CNT_L, 0x108 + .set OFFSET_REG_TM2CNT_H, 0x10a + .set OFFSET_REG_TM3CNT, 0x10c + .set OFFSET_REG_TM3CNT_L, 0x10c + .set OFFSET_REG_TM3CNT_H, 0x10e + + .set OFFSET_REG_SIOCNT, 0x128 + .set OFFSET_REG_SIODATA8, 0x12a + .set OFFSET_REG_SIODATA32, 0x120 + .set OFFSET_REG_SIOMLT_SEND, 0x12a + .set OFFSET_REG_SIOMLT_RECV, 0x120 + .set OFFSET_REG_SIOMULTI0, 0x120 + .set OFFSET_REG_SIOMULTI1, 0x122 + .set OFFSET_REG_SIOMULTI2, 0x124 + .set OFFSET_REG_SIOMULTI3, 0x126 + + .set OFFSET_REG_KEYINPUT, 0x130 + .set OFFSET_REG_KEYCNT, 0x132 + + .set OFFSET_REG_RCNT, 0x134 + + .set OFFSET_REG_JOYCNT, 0x140 + .set OFFSET_REG_JOYSTAT, 0x158 + .set OFFSET_REG_JOY_RECV, 0x150 + .set OFFSET_REG_JOY_RECV_L, 0x150 + .set OFFSET_REG_JOY_RECV_H, 0x152 + .set OFFSET_REG_JOY_TRANS, 0x154 + .set OFFSET_REG_JOY_TRANS_L, 0x154 + .set OFFSET_REG_JOY_TRANS_H, 0x156 + + .set OFFSET_REG_IME, 0x208 + .set OFFSET_REG_IE, 0x200 + .set OFFSET_REG_IF, 0x202 + + .set OFFSET_REG_WAITCNT, 0x204 + +@ I/O register addresses + .set REG_DISPCNT, REG_BASE + OFFSET_REG_DISPCNT + .set REG_DISPSTAT, REG_BASE + OFFSET_REG_DISPSTAT + .set REG_VCOUNT, REG_BASE + OFFSET_REG_VCOUNT + .set REG_BG0CNT, REG_BASE + OFFSET_REG_BG0CNT + .set REG_BG1CNT, REG_BASE + OFFSET_REG_BG1CNT + .set REG_BG2CNT, REG_BASE + OFFSET_REG_BG2CNT + .set REG_BG3CNT, REG_BASE + OFFSET_REG_BG3CNT + .set REG_BG0HOFS, REG_BASE + OFFSET_REG_BG0HOFS + .set REG_BG0VOFS, REG_BASE + OFFSET_REG_BG0VOFS + .set REG_BG1HOFS, REG_BASE + OFFSET_REG_BG1HOFS + .set REG_BG1VOFS, REG_BASE + OFFSET_REG_BG1VOFS + .set REG_BG2HOFS, REG_BASE + OFFSET_REG_BG2HOFS + .set REG_BG2VOFS, REG_BASE + OFFSET_REG_BG2VOFS + .set REG_BG3HOFS, REG_BASE + OFFSET_REG_BG3HOFS + .set REG_BG3VOFS, REG_BASE + OFFSET_REG_BG3VOFS + .set REG_BG2PA, REG_BASE + OFFSET_REG_BG2PA + .set REG_BG2PB, REG_BASE + OFFSET_REG_BG2PB + .set REG_BG2PC, REG_BASE + OFFSET_REG_BG2PC + .set REG_BG2PD, REG_BASE + OFFSET_REG_BG2PD + .set REG_BG2X_L, REG_BASE + OFFSET_REG_BG2X_L + .set REG_BG2X_H, REG_BASE + OFFSET_REG_BG2X_H + .set REG_BG2Y_L, REG_BASE + OFFSET_REG_BG2Y_L + .set REG_BG2Y_H, REG_BASE + OFFSET_REG_BG2Y_H + .set REG_BG3PA, REG_BASE + OFFSET_REG_BG3PA + .set REG_BG3PB, REG_BASE + OFFSET_REG_BG3PB + .set REG_BG3PC, REG_BASE + OFFSET_REG_BG3PC + .set REG_BG3PD, REG_BASE + OFFSET_REG_BG3PD + .set REG_BG3X_L, REG_BASE + OFFSET_REG_BG3X_L + .set REG_BG3X_H, REG_BASE + OFFSET_REG_BG3X_H + .set REG_BG3Y_L, REG_BASE + OFFSET_REG_BG3Y_L + .set REG_BG3Y_H, REG_BASE + OFFSET_REG_BG3Y_H + .set REG_WIN0H, REG_BASE + OFFSET_REG_WIN0H + .set REG_WIN1H, REG_BASE + OFFSET_REG_WIN1H + .set REG_WIN0V, REG_BASE + OFFSET_REG_WIN0V + .set REG_WIN1V, REG_BASE + OFFSET_REG_WIN1V + .set REG_WININ, REG_BASE + OFFSET_REG_WININ + .set REG_WINOUT, REG_BASE + OFFSET_REG_WINOUT + .set REG_MOSAIC, REG_BASE + OFFSET_REG_MOSAIC + .set REG_BLDCNT, REG_BASE + OFFSET_REG_BLDCNT + .set REG_BLDALPHA, REG_BASE + OFFSET_REG_BLDALPHA + .set REG_BLDY, REG_BASE + OFFSET_REG_BLDY + + .set REG_SOUND1CNT, REG_BASE + OFFSET_REG_SOUND1CNT + .set REG_SOUND1CNT_L, REG_BASE + OFFSET_REG_SOUND1CNT_L + .set REG_NR10, REG_BASE + OFFSET_REG_NR10 + .set REG_SOUND1CNT_H, REG_BASE + OFFSET_REG_SOUND1CNT_H + .set REG_NR11, REG_BASE + OFFSET_REG_NR11 + .set REG_NR12, REG_BASE + OFFSET_REG_NR12 + .set REG_SOUND1CNT_X, REG_BASE + OFFSET_REG_SOUND1CNT_X + .set REG_NR13, REG_BASE + OFFSET_REG_NR13 + .set REG_NR14, REG_BASE + OFFSET_REG_NR14 + .set REG_SOUND2CNT, REG_BASE + OFFSET_REG_SOUND2CNT + .set REG_SOUND2CNT_L, REG_BASE + OFFSET_REG_SOUND2CNT_L + .set REG_NR21, REG_BASE + OFFSET_REG_NR21 + .set REG_NR22, REG_BASE + OFFSET_REG_NR22 + .set REG_SOUND2CNT_H, REG_BASE + OFFSET_REG_SOUND2CNT_H + .set REG_NR23, REG_BASE + OFFSET_REG_NR23 + .set REG_NR24, REG_BASE + OFFSET_REG_NR24 + .set REG_SOUND3CNT, REG_BASE + OFFSET_REG_SOUND3CNT + .set REG_SOUND3CNT_L, REG_BASE + OFFSET_REG_SOUND3CNT_L + .set REG_NR30, REG_BASE + OFFSET_REG_NR30 + .set REG_SOUND3CNT_H, REG_BASE + OFFSET_REG_SOUND3CNT_H + .set REG_NR31, REG_BASE + OFFSET_REG_NR31 + .set REG_NR32, REG_BASE + OFFSET_REG_NR32 + .set REG_SOUND3CNT_X, REG_BASE + OFFSET_REG_SOUND3CNT_X + .set REG_NR33, REG_BASE + OFFSET_REG_NR33 + .set REG_NR34, REG_BASE + OFFSET_REG_NR34 + .set REG_SOUND4CNT, REG_BASE + OFFSET_REG_SOUND4CNT + .set REG_SOUND4CNT_L, REG_BASE + OFFSET_REG_SOUND4CNT_L + .set REG_NR41, REG_BASE + OFFSET_REG_NR41 + .set REG_NR42, REG_BASE + OFFSET_REG_NR42 + .set REG_SOUND4CNT_H, REG_BASE + OFFSET_REG_SOUND4CNT_H + .set REG_NR43, REG_BASE + OFFSET_REG_NR43 + .set REG_NR44, REG_BASE + OFFSET_REG_NR44 + .set REG_SOUNDCNT, REG_BASE + OFFSET_REG_SOUNDCNT + .set REG_SOUNDCNT_L, REG_BASE + OFFSET_REG_SOUNDCNT_L + .set REG_NR50, REG_BASE + OFFSET_REG_NR50 + .set REG_NR51, REG_BASE + OFFSET_REG_NR51 + .set REG_SOUNDCNT_H, REG_BASE + OFFSET_REG_SOUNDCNT_H + .set REG_SOUNDCNT_X, REG_BASE + OFFSET_REG_SOUNDCNT_X + .set REG_NR52, REG_BASE + OFFSET_REG_NR52 + .set REG_SOUNDBIAS, REG_BASE + OFFSET_REG_SOUNDBIAS + .set REG_WAVE_RAM, REG_BASE + OFFSET_REG_WAVE_RAM + .set REG_WAVE_RAM0, REG_BASE + OFFSET_REG_WAVE_RAM0 + .set REG_WAVE_RAM0_L, REG_BASE + OFFSET_REG_WAVE_RAM0_L + .set REG_WAVE_RAM0_H, REG_BASE + OFFSET_REG_WAVE_RAM0_H + .set REG_WAVE_RAM1, REG_BASE + OFFSET_REG_WAVE_RAM1 + .set REG_WAVE_RAM1_L, REG_BASE + OFFSET_REG_WAVE_RAM1_L + .set REG_WAVE_RAM1_H, REG_BASE + OFFSET_REG_WAVE_RAM1_H + .set REG_WAVE_RAM2, REG_BASE + OFFSET_REG_WAVE_RAM2 + .set REG_WAVE_RAM2_L, REG_BASE + OFFSET_REG_WAVE_RAM2_L + .set REG_WAVE_RAM2_H, REG_BASE + OFFSET_REG_WAVE_RAM2_H + .set REG_WAVE_RAM3, REG_BASE + OFFSET_REG_WAVE_RAM3 + .set REG_WAVE_RAM3_L, REG_BASE + OFFSET_REG_WAVE_RAM3_L + .set REG_WAVE_RAM3_H, REG_BASE + OFFSET_REG_WAVE_RAM3_H + .set REG_FIFO, REG_BASE + OFFSET_REG_FIFO + .set REG_FIFO_A, REG_BASE + OFFSET_REG_FIFO_A + .set REG_FIFO_A_L, REG_BASE + OFFSET_REG_FIFO_A_L + .set REG_FIFO_A_H, REG_BASE + OFFSET_REG_FIFO_A_H + .set REG_FIFO_B, REG_BASE + OFFSET_REG_FIFO_B + .set REG_FIFO_B_L, REG_BASE + OFFSET_REG_FIFO_B_L + .set REG_FIFO_B_H, REG_BASE + OFFSET_REG_FIFO_B_H + + .set REG_DMA0, REG_BASE + OFFSET_REG_DMA0 + .set REG_DMA0SAD, REG_BASE + OFFSET_REG_DMA0SAD + .set REG_DMA0SAD_L, REG_BASE + OFFSET_REG_DMA0SAD_L + .set REG_DMA0SAD_H, REG_BASE + OFFSET_REG_DMA0SAD_H + .set REG_DMA0DAD, REG_BASE + OFFSET_REG_DMA0DAD + .set REG_DMA0DAD_L, REG_BASE + OFFSET_REG_DMA0DAD_L + .set REG_DMA0DAD_H, REG_BASE + OFFSET_REG_DMA0DAD_H + .set REG_DMA0CNT, REG_BASE + OFFSET_REG_DMA0CNT + .set REG_DMA0CNT_L, REG_BASE + OFFSET_REG_DMA0CNT_L + .set REG_DMA0CNT_H, REG_BASE + OFFSET_REG_DMA0CNT_H + .set REG_DMA1, REG_BASE + OFFSET_REG_DMA1 + .set REG_DMA1SAD, REG_BASE + OFFSET_REG_DMA1SAD + .set REG_DMA1SAD_L, REG_BASE + OFFSET_REG_DMA1SAD_L + .set REG_DMA1SAD_H, REG_BASE + OFFSET_REG_DMA1SAD_H + .set REG_DMA1DAD, REG_BASE + OFFSET_REG_DMA1DAD + .set REG_DMA1DAD_L, REG_BASE + OFFSET_REG_DMA1DAD_L + .set REG_DMA1DAD_H, REG_BASE + OFFSET_REG_DMA1DAD_H + .set REG_DMA1CNT, REG_BASE + OFFSET_REG_DMA1CNT + .set REG_DMA1CNT_L, REG_BASE + OFFSET_REG_DMA1CNT_L + .set REG_DMA1CNT_H, REG_BASE + OFFSET_REG_DMA1CNT_H + .set REG_DMA2, REG_BASE + OFFSET_REG_DMA2 + .set REG_DMA2SAD, REG_BASE + OFFSET_REG_DMA2SAD + .set REG_DMA2SAD_L, REG_BASE + OFFSET_REG_DMA2SAD_L + .set REG_DMA2SAD_H, REG_BASE + OFFSET_REG_DMA2SAD_H + .set REG_DMA2DAD, REG_BASE + OFFSET_REG_DMA2DAD + .set REG_DMA2DAD_L, REG_BASE + OFFSET_REG_DMA2DAD_L + .set REG_DMA2DAD_H, REG_BASE + OFFSET_REG_DMA2DAD_H + .set REG_DMA2CNT, REG_BASE + OFFSET_REG_DMA2CNT + .set REG_DMA2CNT_L, REG_BASE + OFFSET_REG_DMA2CNT_L + .set REG_DMA2CNT_H, REG_BASE + OFFSET_REG_DMA2CNT_H + .set REG_DMA3, REG_BASE + OFFSET_REG_DMA3 + .set REG_DMA3SAD, REG_BASE + OFFSET_REG_DMA3SAD + .set REG_DMA3SAD_L, REG_BASE + OFFSET_REG_DMA3SAD_L + .set REG_DMA3SAD_H, REG_BASE + OFFSET_REG_DMA3SAD_H + .set REG_DMA3DAD, REG_BASE + OFFSET_REG_DMA3DAD + .set REG_DMA3DAD_L, REG_BASE + OFFSET_REG_DMA3DAD_L + .set REG_DMA3DAD_H, REG_BASE + OFFSET_REG_DMA3DAD_H + .set REG_DMA3CNT, REG_BASE + OFFSET_REG_DMA3CNT + .set REG_DMA3CNT_L, REG_BASE + OFFSET_REG_DMA3CNT_L + .set REG_DMA3CNT_H, REG_BASE + OFFSET_REG_DMA3CNT_H + + .set REG_TM0CNT, REG_BASE + OFFSET_REG_TM0CNT + .set REG_TM0CNT_L, REG_BASE + OFFSET_REG_TM0CNT_L + .set REG_TM0CNT_H, REG_BASE + OFFSET_REG_TM0CNT_H + .set REG_TM1CNT, REG_BASE + OFFSET_REG_TM1CNT + .set REG_TM1CNT_L, REG_BASE + OFFSET_REG_TM1CNT_L + .set REG_TM1CNT_H, REG_BASE + OFFSET_REG_TM1CNT_H + .set REG_TM2CNT, REG_BASE + OFFSET_REG_TM2CNT + .set REG_TM2CNT_L, REG_BASE + OFFSET_REG_TM2CNT_L + .set REG_TM2CNT_H, REG_BASE + OFFSET_REG_TM2CNT_H + .set REG_TM3CNT, REG_BASE + OFFSET_REG_TM3CNT + .set REG_TM3CNT_L, REG_BASE + OFFSET_REG_TM3CNT_L + .set REG_TM3CNT_H, REG_BASE + OFFSET_REG_TM3CNT_H + + .set REG_SIOCNT, REG_BASE + OFFSET_REG_SIOCNT + .set REG_SIODATA8, REG_BASE + OFFSET_REG_SIODATA8 + .set REG_SIODATA32, REG_BASE + OFFSET_REG_SIODATA32 + .set REG_SIOMLT_SEND, REG_BASE + OFFSET_REG_SIOMLT_SEND + .set REG_SIOMLT_RECV, REG_BASE + OFFSET_REG_SIOMLT_RECV + .set REG_SIOMULTI0, REG_BASE + OFFSET_REG_SIOMULTI0 + .set REG_SIOMULTI1, REG_BASE + OFFSET_REG_SIOMULTI1 + .set REG_SIOMULTI2, REG_BASE + OFFSET_REG_SIOMULTI2 + .set REG_SIOMULTI3, REG_BASE + OFFSET_REG_SIOMULTI3 + + .set REG_KEYINPUT, REG_BASE + OFFSET_REG_KEYINPUT + .set REG_KEYCNT, REG_BASE + OFFSET_REG_KEYCNT + + .set REG_RCNT, REG_BASE + OFFSET_REG_RCNT + + .set REG_JOYCNT, REG_BASE + OFFSET_REG_JOYCNT + .set REG_JOYSTAT, REG_BASE + OFFSET_REG_JOYSTAT + .set REG_JOY_RECV, REG_BASE + OFFSET_REG_JOY_RECV + .set REG_JOY_RECV_L, REG_BASE + OFFSET_REG_JOY_RECV_L + .set REG_JOY_RECV_H, REG_BASE + OFFSET_REG_JOY_RECV_H + .set REG_JOY_TRANS, REG_BASE + OFFSET_REG_JOY_TRANS + .set REG_JOY_TRANS_L, REG_BASE + OFFSET_REG_JOY_TRANS_L + .set REG_JOY_TRANS_H, REG_BASE + OFFSET_REG_JOY_TRANS_H + + .set REG_IME, REG_BASE + OFFSET_REG_IME + .set REG_IE, REG_BASE + OFFSET_REG_IE + .set REG_IF, REG_BASE + OFFSET_REG_IF + + .set REG_WAITCNT, REG_BASE + OFFSET_REG_WAITCNT + +@ DMA register constants + + .set DMA_DEST_INC, 0x0000 + .set DMA_DEST_DEC, 0x0020 + .set DMA_DEST_FIXED, 0x0040 + .set DMA_DEST_RELOAD, 0x0060 + .set DMA_SRC_INC, 0x0000 + .set DMA_SRC_DEC, 0x0080 + .set DMA_SRC_FIXED, 0x0100 + .set DMA_REPEAT, 0x0200 + .set DMA_16BIT, 0x0000 + .set DMA_32BIT, 0x0400 + .set DMA_DREQ_ON, 0x0800 + .set DMA_START_NOW, 0x0000 + .set DMA_START_VBLANK, 0x1000 + .set DMA_START_HBLANK, 0x2000 + .set DMA_START_SPECIAL, 0x3000 + .set DMA_INTR_ENABLE, 0x4000 + .set DMA_ENABLE, 0x8000 + +@ OAM attribute constants + + .set OAM_OBJ_NORMAL, 0x00000000 + .set OAM_OBJ_BLEND, 0x00000400 + .set OAM_OBJ_WINDOW, 0x00000800 + + .set OAM_AFFINE_NONE, 0x00000000 + .set OAM_AFFINE_NORMAL_SIZE, 0x00000100 + .set OAM_OBJ_DISABLED, 0x00000200 + .set OAM_AFFINE_DOUBLE_SIZE, 0x00000300 + + .set OAM_MOSAIC_OFF, 0x00000000 + .set OAM_MOSAIC_ON, 0x00001000 + + .set OAM_4BPP, 0x00000000 + .set OAM_8BPP, 0x00002000 + + .set OAM_H_FLIP, 0x10000000 + .set OAM_V_FLIP, 0x20000000 + + .set OAM_SQUARE, 0x00000000 + .set OAM_H_RECTANGLE, 0x00004000 + .set OAM_V_RECTANGLE, 0x00008000 + .set OAM_SIZE_0, 0x00000000 + .set OAM_SIZE_1, 0x40000000 + .set OAM_SIZE_2, 0x80000000 + .set OAM_SIZE_3, 0xc0000000 + + .set OAM_SIZE_8x8, OAM_SIZE_0 | OAM_SQUARE + .set OAM_SIZE_16x16, OAM_SIZE_1 | OAM_SQUARE + .set OAM_SIZE_32x32, OAM_SIZE_2 | OAM_SQUARE + .set OAM_SIZE_64x64, OAM_SIZE_3 | OAM_SQUARE + + .set OAM_SIZE_16x8, OAM_SIZE_0 | OAM_H_RECTANGLE + .set OAM_SIZE_32x8, OAM_SIZE_1 | OAM_H_RECTANGLE + .set OAM_SIZE_32x16, OAM_SIZE_2 | OAM_H_RECTANGLE + .set OAM_SIZE_64x32, OAM_SIZE_3 | OAM_H_RECTANGLE + + .set OAM_SIZE_8x16, OAM_SIZE_0 | OAM_V_RECTANGLE + .set OAM_SIZE_8x32, OAM_SIZE_1 | OAM_V_RECTANGLE + .set OAM_SIZE_16x32, OAM_SIZE_2 | OAM_V_RECTANGLE + .set OAM_SIZE_32x64, OAM_SIZE_3 | OAM_V_RECTANGLE + +@ SIO constants + + .set SIO_ENABLE, 0x80 diff --git a/constants/m4a_constants.inc b/constants/m4a_constants.inc new file mode 100644 index 00000000..62ca5bb5 --- /dev/null +++ b/constants/m4a_constants.inc @@ -0,0 +1,199 @@ + .equiv ID_NUMBER, 0x68736d53 + + .equiv PCM_DMA_BUF_SIZE, 1584 + + .equiv TONEDATA_TYPE_CGB, 0x07 + .equiv TONEDATA_TYPE_FIX, 0x08 + .equiv TONEDATA_TYPE_SPL, 0x40 @ key split + .equiv TONEDATA_TYPE_RHY, 0x80 @ rhythm + + .macro struct_begin + .struct 0 + .endm + + .macro struct_field name, size +\name: + .struct \name + \size + .endm + + struct_begin + struct_field o_SoundInfo_ident, 4 + struct_field o_SoundInfo_pcmDmaCounter, 1 + struct_field o_SoundInfo_reverb, 1 + struct_field o_SoundInfo_maxChans, 1 + struct_field o_SoundInfo_masterVolume, 1 + struct_field o_SoundInfo_freq, 1 + struct_field o_SoundInfo_mode, 1 + struct_field o_SoundInfo_c15, 1 + struct_field o_SoundInfo_pcmDmaPeriod, 1 + struct_field o_SoundInfo_maxLines, 1 + struct_field o_SoundInfo_gap, 3 + struct_field o_SoundInfo_pcmSamplesPerVBlank, 4 + struct_field o_SoundInfo_pcmFreq, 4 + struct_field o_SoundInfo_divFreq, 4 + struct_field o_SoundInfo_cgbChans, 4 + struct_field o_SoundInfo_func, 4 + struct_field o_SoundInfo_intp, 4 + struct_field o_SoundInfo_CgbSound, 4 + struct_field o_SoundInfo_CgbOscOff, 4 + struct_field o_SoundInfo_MidiKeyToCgbFreq, 4 + struct_field o_SoundInfo_MPlayJumpTable, 4 + struct_field o_SoundInfo_plynote, 4 + struct_field o_SoundInfo_ExtVolPit, 4 + struct_field o_SoundInfo_gap2, 16 + struct_field o_SoundInfo_chans, 768 + struct_field o_SoundInfo_pcmBuffer, PCM_DMA_BUF_SIZE * 2 + struct_field SoundInfo_size, 0 + + struct_begin + struct_field o_SoundChannel_status, 1 + struct_field o_SoundChannel_type, 1 + struct_field o_SoundChannel_rightVolume, 1 + struct_field o_SoundChannel_leftVolume, 1 + struct_field o_SoundChannel_attack, 1 + struct_field o_SoundChannel_decay, 1 + struct_field o_SoundChannel_sustain, 1 + struct_field o_SoundChannel_release, 1 + struct_field o_SoundChannel_ky, 1 + struct_field o_SoundChannel_ev, 1 + struct_field o_SoundChannel_er, 1 + struct_field o_SoundChannel_el, 1 + struct_field o_SoundChannel_iev, 1 + struct_field o_SoundChannel_iel, 1 + struct_field o_SoundChannel_d1, 1 + struct_field o_SoundChannel_d2, 1 + struct_field o_SoundChannel_gt, 1 + struct_field o_SoundChannel_mk, 1 + struct_field o_SoundChannel_ve, 1 + struct_field o_SoundChannel_pr, 1 + struct_field o_SoundChannel_rp, 1 + struct_field o_SoundChannel_d3, 3 + struct_field o_SoundChannel_ct, 4 + struct_field o_SoundChannel_fw, 4 + struct_field o_SoundChannel_freq, 4 + struct_field o_SoundChannel_wav, 4 + struct_field o_SoundChannel_cp, 4 + struct_field o_SoundChannel_track, 4 + struct_field o_SoundChannel_pp, 4 + struct_field o_SoundChannel_np, 4 + struct_field o_SoundChannel_d4, 4 + struct_field o_SoundChannel_xpi, 2 + struct_field o_SoundChannel_xpc, 2 + struct_field SoundChannel_size, 0 + + struct_begin + struct_field o_MusicPlayerTrack_flags, 1 + struct_field o_MusicPlayerTrack_wait, 1 + struct_field o_MusicPlayerTrack_patternLevel, 1 + struct_field o_MusicPlayerTrack_repN, 1 + struct_field o_MusicPlayerTrack_gateTime, 1 + struct_field o_MusicPlayerTrack_key, 1 + struct_field o_MusicPlayerTrack_velocity, 1 + struct_field o_MusicPlayerTrack_runningStatus, 1 + struct_field o_MusicPlayerTrack_keyM, 1 + struct_field o_MusicPlayerTrack_pitM, 1 + struct_field o_MusicPlayerTrack_keyShift, 1 + struct_field o_MusicPlayerTrack_keyShiftX, 1 + struct_field o_MusicPlayerTrack_tune, 1 + struct_field o_MusicPlayerTrack_pitX, 1 + struct_field o_MusicPlayerTrack_bend, 1 + struct_field o_MusicPlayerTrack_bendRange, 1 + struct_field o_MusicPlayerTrack_volMR, 1 + struct_field o_MusicPlayerTrack_volML, 1 + struct_field o_MusicPlayerTrack_vol, 1 + struct_field o_MusicPlayerTrack_volX, 1 + struct_field o_MusicPlayerTrack_pan, 1 + struct_field o_MusicPlayerTrack_panX, 1 + struct_field o_MusicPlayerTrack_modM, 1 + struct_field o_MusicPlayerTrack_mod, 1 + struct_field o_MusicPlayerTrack_modT, 1 + struct_field o_MusicPlayerTrack_lfoSpeed, 1 + struct_field o_MusicPlayerTrack_lfoSpeedC, 1 + struct_field o_MusicPlayerTrack_lfoDelay, 1 + struct_field o_MusicPlayerTrack_lfoDelayC, 1 + struct_field o_MusicPlayerTrack_priority, 1 + struct_field o_MusicPlayerTrack_echoVolume, 1 + struct_field o_MusicPlayerTrack_echoLength, 1 + struct_field o_MusicPlayerTrack_chan, 4 + struct_field o_MusicPlayerTrack_ToneData_type, 1 + struct_field o_MusicPlayerTrack_ToneData_key, 1 + struct_field o_MusicPlayerTrack_ToneData_length, 1 + struct_field o_MusicPlayerTrack_ToneData_pan_sweep, 1 + struct_field o_MusicPlayerTrack_ToneData_wav, 4 + struct_field o_MusicPlayerTrack_ToneData_attack, 1 + struct_field o_MusicPlayerTrack_ToneData_decay, 1 + struct_field o_MusicPlayerTrack_ToneData_sustain, 1 + struct_field o_MusicPlayerTrack_ToneData_release, 1 + struct_field o_MusicPlayerTrack_gap, 10 + struct_field o_MusicPlayerTrack_unk_3A, 2 + struct_field o_MusicPlayerTrack_unk_3C, 4 + struct_field o_MusicPlayerTrack_cmdPtr, 4 + struct_field o_MusicPlayerTrack_patternStack, 12 + struct_field MusicPlayerTrack_size, 0 + + .equiv o_MusicPlayerTrack_ToneData_keySplitTable, o_MusicPlayerTrack_ToneData_attack + + struct_begin + struct_field o_MusicPlayerInfo_songHeader, 4 + struct_field o_MusicPlayerInfo_status, 4 + struct_field o_MusicPlayerInfo_trackCount, 1 + struct_field o_MusicPlayerInfo_priority, 1 + struct_field o_MusicPlayerInfo_cmd, 1 + struct_field o_MusicPlayerInfo_unk_B, 1 + struct_field o_MusicPlayerInfo_clock, 4 + struct_field o_MusicPlayerInfo_gap, 8 + struct_field o_MusicPlayerInfo_memAccArea, 4 + struct_field o_MusicPlayerInfo_tempoD, 2 + struct_field o_MusicPlayerInfo_tempoU, 2 + struct_field o_MusicPlayerInfo_tempoI, 2 + struct_field o_MusicPlayerInfo_tempoC, 2 + struct_field o_MusicPlayerInfo_fadeOI, 2 + struct_field o_MusicPlayerInfo_fadeOC, 2 + struct_field o_MusicPlayerInfo_fadeOV, 2 + struct_field o_MusicPlayerInfo_padding, 2 + struct_field o_MusicPlayerInfo_tracks, 4 + struct_field o_MusicPlayerInfo_tone, 4 + struct_field o_MusicPlayerInfo_ident, 4 + struct_field o_MusicPlayerInfo_func, 4 + struct_field o_MusicPlayerInfo_intp, 4 + struct_field MusicPlayerInfo_size, 0 + + struct_begin + struct_field o_CgbChannel_sf, 1 + struct_field o_CgbChannel_ty, 1 + struct_field o_CgbChannel_rightVolume, 1 + struct_field o_CgbChannel_leftVolume, 1 + struct_field o_CgbChannel_at, 1 + struct_field o_CgbChannel_de, 1 + struct_field o_CgbChannel_su, 1 + struct_field o_CgbChannel_re, 1 + struct_field o_CgbChannel_ky, 1 + struct_field o_CgbChannel_ev, 1 + struct_field o_CgbChannel_eg, 1 + struct_field o_CgbChannel_ec, 1 + struct_field o_CgbChannel_echoVolume, 1 + struct_field o_CgbChannel_echoLength, 1 + struct_field o_CgbChannel_d1, 1 + struct_field o_CgbChannel_d2, 1 + struct_field o_CgbChannel_gt, 1 + struct_field o_CgbChannel_mk, 1 + struct_field o_CgbChannel_ve, 1 + struct_field o_CgbChannel_pr, 1 + struct_field o_CgbChannel_rp, 1 + struct_field o_CgbChannel_d3, 3 + struct_field o_CgbChannel_d5, 1 + struct_field o_CgbChannel_sg, 1 + struct_field o_CgbChannel_n4, 1 + struct_field o_CgbChannel_pan, 1 + struct_field o_CgbChannel_panMask, 1 + struct_field o_CgbChannel_mo, 1 + struct_field o_CgbChannel_le, 1 + struct_field o_CgbChannel_sw, 1 + struct_field o_CgbChannel_fr, 4 + struct_field o_CgbChannel_wp, 4 + struct_field o_CgbChannel_cp, 4 + struct_field o_CgbChannel_tp, 4 + struct_field o_CgbChannel_pp, 4 + struct_field o_CgbChannel_np, 4 + struct_field o_CgbChannel_d4, 8 + struct_field CgbChannel_size, 0 diff --git a/constants/misc_constants.inc b/constants/misc_constants.inc new file mode 100644 index 00000000..0efd252d --- /dev/null +++ b/constants/misc_constants.inc @@ -0,0 +1,19 @@ + .set TRUE, 1 + .set FALSE, 0 + + .set NULL, 0 + + .set SPRITE_SIZE_8x8, (OAM_SIZE_0 >> 28) | (OAM_SQUARE >> 14) + .set SPRITE_SIZE_16x16, (OAM_SIZE_1 >> 28) | (OAM_SQUARE >> 14) + .set SPRITE_SIZE_32x32, (OAM_SIZE_2 >> 28) | (OAM_SQUARE >> 14) + .set SPRITE_SIZE_64x64, (OAM_SIZE_3 >> 28) | (OAM_SQUARE >> 14) + + .set SPRITE_SIZE_16x8, (OAM_SIZE_0 >> 28) | (OAM_H_RECTANGLE >> 14) + .set SPRITE_SIZE_32x8, (OAM_SIZE_1 >> 28) | (OAM_H_RECTANGLE >> 14) + .set SPRITE_SIZE_32x16, (OAM_SIZE_2 >> 28) | (OAM_H_RECTANGLE >> 14) + .set SPRITE_SIZE_64x32, (OAM_SIZE_3 >> 28) | (OAM_H_RECTANGLE >> 14) + + .set SPRITE_SIZE_8x16, (OAM_SIZE_0 >> 28) | (OAM_V_RECTANGLE >> 14) + .set SPRITE_SIZE_8x32, (OAM_SIZE_1 >> 28) | (OAM_V_RECTANGLE >> 14) + .set SPRITE_SIZE_16x32, (OAM_SIZE_2 >> 28) | (OAM_V_RECTANGLE >> 14) + .set SPRITE_SIZE_32x64, (OAM_SIZE_3 >> 28) | (OAM_V_RECTANGLE >> 14) diff --git a/data/data_1.s b/data/data_1.s new file mode 100644 index 00000000..9905653a --- /dev/null +++ b/data/data_1.s @@ -0,0 +1,404 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2 + +gUnk_08000360:: @ 08000360 + .incbin "baserom.gba", 0x000360, 0x0000098 + +gUnk_080003F8:: @ 080003F8 + .incbin "baserom.gba", 0x0003F8, 0x0000008 + +gUnk_08000400:: @ 08000400 + .incbin "baserom.gba", 0x000400, 0x0000001 + +gUnk_08000401:: @ 08000401 + .incbin "baserom.gba", 0x000401, 0x0000001 + +gUnk_08000402:: @ 08000402 + .incbin "baserom.gba", 0x000402, 0x0000002 + +gUnk_08000404:: @ 08000404 + .incbin "baserom.gba", 0x000404, 0x0000002 + +gUnk_08000406:: @ 08000406 + .incbin "baserom.gba", 0x000406, 0x0000003 + +gUnk_08000409:: @ 08000409 + .incbin "baserom.gba", 0x000409, 0x0000003 + +gUnk_0800040C:: @ 0800040C + .incbin "baserom.gba", 0x00040C, 0x0000002 + +gUnk_0800040E:: @ 0800040E + .incbin "baserom.gba", 0x00040E, 0x0000001 + +gUnk_0800040F:: @ 0800040F + .incbin "baserom.gba", 0x00040F, 0x0000005 + +gUnk_08000414:: @ 08000414 + .incbin "baserom.gba", 0x000414, 0x0000001 + +gUnk_08000415:: @ 08000415 + .incbin "baserom.gba", 0x000415, 0x0000004 + +gUnk_08000419:: @ 08000419 + .incbin "baserom.gba", 0x000419, 0x0000007 + +gUnk_08000420:: @ 08000420 + .incbin "baserom.gba", 0x000420, 0x0000020 + +gUnk_08000440:: @ 08000440 + .incbin "baserom.gba", 0x000440, 0x0000040 + +gUnk_08000480:: @ 08000480 + .incbin "baserom.gba", 0x000480, 0x0000001 + +gUnk_08000481:: @ 08000481 + .incbin "baserom.gba", 0x000481, 0x0000085 + +gUnk_08000506:: @ 08000506 + .incbin "baserom.gba", 0x000506, 0x0000002 + +gUnk_08000508:: @ 08000508 + .incbin "baserom.gba", 0x000508, 0x0000001 + +gUnk_08000509:: @ 08000509 + .incbin "baserom.gba", 0x000509, 0x0000007 + +gUnk_08000510:: @ 08000510 + .incbin "baserom.gba", 0x000510, 0x0000017 + +gUnk_08000527:: @ 08000527 + .incbin "baserom.gba", 0x000527, 0x0000019 + +gUnk_08000540:: @ 08000540 + .incbin "baserom.gba", 0x000540, 0x00000B7 + +gUnk_080005F7:: @ 080005F7 + .incbin "baserom.gba", 0x0005F7, 0x0000009 + +gUnk_08000600:: @ 08000600 + .incbin "baserom.gba", 0x000600, 0x0000004 + +gUnk_08000604:: @ 08000604 + .incbin "baserom.gba", 0x000604, 0x0000008 + +gUnk_0800060C:: @ 0800060C + .incbin "baserom.gba", 0x00060C, 0x0000004 + +gUnk_08000610:: @ 08000610 + .incbin "baserom.gba", 0x000610, 0x000000A + +gUnk_0800061A:: @ 0800061A + .incbin "baserom.gba", 0x00061A, 0x0000006 + +gUnk_08000620:: @ 08000620 + .incbin "baserom.gba", 0x000620, 0x0000008 + +gUnk_08000628:: @ 08000628 + .incbin "baserom.gba", 0x000628, 0x0000008 + +gUnk_08000630:: @ 08000630 + .incbin "baserom.gba", 0x000630, 0x0000010 + +gUnk_08000640:: @ 08000640 + .incbin "baserom.gba", 0x000640, 0x0000040 + +gUnk_08000680:: @ 08000680 + .incbin "baserom.gba", 0x000680, 0x0000005 + +gUnk_08000685:: @ 08000685 + .incbin "baserom.gba", 0x000685, 0x0000001 + +gUnk_08000686:: @ 08000686 + .incbin "baserom.gba", 0x000686, 0x0000065 + +gUnk_080006EB:: @ 080006EB + .incbin "baserom.gba", 0x0006EB, 0x0000011 + +gUnk_080006FC:: @ 080006FC + .incbin "baserom.gba", 0x0006FC, 0x0000004 + +gUnk_08000700:: @ 08000700 + .incbin "baserom.gba", 0x000700, 0x0000001 + +gUnk_08000701:: @ 08000701 + .incbin "baserom.gba", 0x000701, 0x0000005 + +gUnk_08000706:: @ 08000706 + .incbin "baserom.gba", 0x000706, 0x0000002 + +gUnk_08000708:: @ 08000708 + .incbin "baserom.gba", 0x000708, 0x0000005 + +gUnk_0800070D:: @ 0800070D + .incbin "baserom.gba", 0x00070D, 0x0000002 + +gUnk_0800070F:: @ 0800070F + .incbin "baserom.gba", 0x00070F, 0x0000001 + +gUnk_08000710:: @ 08000710 + .incbin "baserom.gba", 0x000710, 0x0000009 + +gUnk_08000719:: @ 08000719 + .incbin "baserom.gba", 0x000719, 0x0000007 + +gUnk_08000720:: @ 08000720 + .incbin "baserom.gba", 0x000720, 0x0000010 + +gUnk_08000730:: @ 08000730 + .incbin "baserom.gba", 0x000730, 0x0000010 + +gUnk_08000740:: @ 08000740 + .incbin "baserom.gba", 0x000740, 0x0000010 + +gUnk_08000750:: @ 08000750 + .incbin "baserom.gba", 0x000750, 0x0000010 + +gUnk_08000760:: @ 08000760 + .incbin "baserom.gba", 0x000760, 0x0000020 + +gUnk_08000780:: @ 08000780 + .incbin "baserom.gba", 0x000780, 0x0000004 + +gUnk_08000784:: @ 08000784 + .incbin "baserom.gba", 0x000784, 0x0000001 + +gUnk_08000785:: @ 08000785 + .incbin "baserom.gba", 0x000785, 0x000000B + +gUnk_08000790:: @ 08000790 + .incbin "baserom.gba", 0x000790, 0x0000010 + +gUnk_080007A0:: @ 080007A0 + .incbin "baserom.gba", 0x0007A0, 0x0000030 + +gUnk_080007D0:: @ 080007D0 + .incbin "baserom.gba", 0x0007D0, 0x0000020 + +gUnk_080007F0:: @ 080007F0 + .incbin "baserom.gba", 0x0007F0, 0x0000010 + +gUnk_08000800:: @ 08000800 + .incbin "baserom.gba", 0x000800, 0x0000002 + +gUnk_08000802:: @ 08000802 + .incbin "baserom.gba", 0x000802, 0x0000002 + +gUnk_08000804:: @ 08000804 + .incbin "baserom.gba", 0x000804, 0x0000001 + +gUnk_08000805:: @ 08000805 + .incbin "baserom.gba", 0x000805, 0x0000001 + +gUnk_08000806:: @ 08000806 + .incbin "baserom.gba", 0x000806, 0x0000001 + +gUnk_08000807:: @ 08000807 + .incbin "baserom.gba", 0x000807, 0x0000001 + +gUnk_08000808:: @ 08000808 + .incbin "baserom.gba", 0x000808, 0x0000003 + +gUnk_0800080B:: @ 0800080B + .incbin "baserom.gba", 0x00080B, 0x0000001 + +gUnk_0800080C:: @ 0800080C + .incbin "baserom.gba", 0x00080C, 0x0000003 + +gUnk_0800080F:: @ 0800080F + .incbin "baserom.gba", 0x00080F, 0x0000001 + +gUnk_08000810:: @ 08000810 + .incbin "baserom.gba", 0x000810, 0x0000001 + +gUnk_08000811:: @ 08000811 + .incbin "baserom.gba", 0x000811, 0x0000005 + +gUnk_08000816:: @ 08000816 + .incbin "baserom.gba", 0x000816, 0x0000002 + +gUnk_08000818:: @ 08000818 + .incbin "baserom.gba", 0x000818, 0x0000009 + +gUnk_08000821:: @ 08000821 + .incbin "baserom.gba", 0x000821, 0x0000004 + +gUnk_08000825:: @ 08000825 + .incbin "baserom.gba", 0x000825, 0x0000011 + +gUnk_08000836:: @ 08000836 + .incbin "baserom.gba", 0x000836, 0x0000001 + +gUnk_08000837:: @ 08000837 + .incbin "baserom.gba", 0x000837, 0x0000001 + +gUnk_08000838:: @ 08000838 + .incbin "baserom.gba", 0x000838, 0x0000008 + +gUnk_08000840:: @ 08000840 + .incbin "baserom.gba", 0x000840, 0x0000030 + +gUnk_08000870:: @ 08000870 + .incbin "baserom.gba", 0x000870, 0x000002C + +gUnk_0800089C:: @ 0800089C + .incbin "baserom.gba", 0x00089C, 0x0000004 + +gUnk_080008A0:: @ 080008A0 + .incbin "baserom.gba", 0x0008A0, 0x000005D + +gUnk_080008FD:: @ 080008FD + .incbin "baserom.gba", 0x0008FD, 0x0000003 + +gUnk_08000900:: @ 08000900 + .incbin "baserom.gba", 0x000900, 0x0000001 + +gUnk_08000901:: @ 08000901 + .incbin "baserom.gba", 0x000901, 0x0000004 + +gUnk_08000905:: @ 08000905 + .incbin "baserom.gba", 0x000905, 0x0000009 + +gUnk_0800090E:: @ 0800090E + .incbin "baserom.gba", 0x00090E, 0x0000001 + +gUnk_0800090F:: @ 0800090F + .incbin "baserom.gba", 0x00090F, 0x0000002 + +gUnk_08000911:: @ 08000911 + .incbin "baserom.gba", 0x000911, 0x000002F + +gUnk_08000940:: @ 08000940 + .incbin "baserom.gba", 0x000940, 0x000001A + +gUnk_0800095A:: @ 0800095A + .incbin "baserom.gba", 0x00095A, 0x0000026 + +gUnk_08000980:: @ 08000980 + .incbin "baserom.gba", 0x000980, 0x000004E + +gUnk_080009CE:: @ 080009CE + .incbin "baserom.gba", 0x0009CE, 0x0000028 + +gUnk_080009F6:: @ 080009F6 + .incbin "baserom.gba", 0x0009F6, 0x0000004 + +gUnk_080009FA:: @ 080009FA + .incbin "baserom.gba", 0x0009FA, 0x0000006 + +gUnk_08000A00:: @ 08000A00 + .incbin "baserom.gba", 0x000A00, 0x0000005 + +gUnk_08000A05:: @ 08000A05 + .incbin "baserom.gba", 0x000A05, 0x0000003 + +gUnk_08000A08:: @ 08000A08 + .incbin "baserom.gba", 0x000A08, 0x0000001 + +gUnk_08000A09:: @ 08000A09 + .incbin "baserom.gba", 0x000A09, 0x0000007 + +gUnk_08000A10:: @ 08000A10 + .incbin "baserom.gba", 0x000A10, 0x0000002 + +gUnk_08000A12:: @ 08000A12 + .incbin "baserom.gba", 0x000A12, 0x0000001 + +gUnk_08000A13:: @ 08000A13 + .incbin "baserom.gba", 0x000A13, 0x0000001 + +gUnk_08000A14:: @ 08000A14 + .incbin "baserom.gba", 0x000A14, 0x0000001 + +gUnk_08000A15:: @ 08000A15 + .incbin "baserom.gba", 0x000A15, 0x0000023 + +gUnk_08000A38:: @ 08000A38 + .incbin "baserom.gba", 0x000A38, 0x0000008 + +gUnk_08000A40:: @ 08000A40 + .incbin "baserom.gba", 0x000A40, 0x0000044 + +gUnk_08000A84:: @ 08000A84 + .incbin "baserom.gba", 0x000A84, 0x000008F + +gUnk_08000B13:: @ 08000B13 + .incbin "baserom.gba", 0x000B13, 0x0000002 + +gUnk_08000B15:: @ 08000B15 + .incbin "baserom.gba", 0x000B15, 0x0000001 + +gUnk_08000B16:: @ 08000B16 + .incbin "baserom.gba", 0x000B16, 0x000000A + +gUnk_08000B20:: @ 08000B20 + .incbin "baserom.gba", 0x000B20, 0x0000020 + +gUnk_08000B40:: @ 08000B40 + .incbin "baserom.gba", 0x000B40, 0x00000C0 + +gUnk_08000C00:: @ 08000C00 + .incbin "baserom.gba", 0x000C00, 0x0000004 + +gUnk_08000C04:: @ 08000C04 + .incbin "baserom.gba", 0x000C04, 0x0000005 + +gUnk_08000C09:: @ 08000C09 + .incbin "baserom.gba", 0x000C09, 0x0000007 + +gUnk_08000C10:: @ 08000C10 + .incbin "baserom.gba", 0x000C10, 0x0000006 + +gUnk_08000C16:: @ 08000C16 + .incbin "baserom.gba", 0x000C16, 0x000000F + +gUnk_08000C25:: @ 08000C25 + .incbin "baserom.gba", 0x000C25, 0x0000002 + +gUnk_08000C27:: @ 08000C27 + .incbin "baserom.gba", 0x000C27, 0x0000001 + +gUnk_08000C28:: @ 08000C28 + .incbin "baserom.gba", 0x000C28, 0x0000001 + +gUnk_08000C29:: @ 08000C29 + .incbin "baserom.gba", 0x000C29, 0x000000A + +gUnk_08000C33:: @ 08000C33 + .incbin "baserom.gba", 0x000C33, 0x000001D + +gUnk_08000C50:: @ 08000C50 + .incbin "baserom.gba", 0x000C50, 0x00000C3 + +gUnk_08000D13:: @ 08000D13 + .incbin "baserom.gba", 0x000D13, 0x00000DC + +gUnk_08000DEF:: @ 08000DEF + .incbin "baserom.gba", 0x000DEF, 0x0000007 + +gUnk_08000DF6:: @ 08000DF6 + .incbin "baserom.gba", 0x000DF6, 0x000000A + +gUnk_08000E00:: @ 08000E00 + .incbin "baserom.gba", 0x000E00, 0x0000001 + +gUnk_08000E01:: @ 08000E01 + .incbin "baserom.gba", 0x000E01, 0x0000001 + +gUnk_08000E02:: @ 08000E02 + .incbin "baserom.gba", 0x000E02, 0x0000001 + +gUnk_08000E03:: @ 08000E03 + .incbin "baserom.gba", 0x000E03, 0x000001D + +gUnk_08000E20:: @ 08000E20 + .incbin "baserom.gba", 0x000E20, 0x0000006 + +gUnk_08000E26:: @ 08000E26 + .incbin "baserom.gba", 0x000E26, 0x0000017 + +gUnk_08000E3D:: @ 08000E3D + .incbin "baserom.gba", 0x000E3D, 0x0000007 diff --git a/data/data_2.s b/data/data_2.s new file mode 100644 index 00000000..ad24831f --- /dev/null +++ b/data/data_2.s @@ -0,0 +1,74 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2 + +gUnk_08000F54:: @ 08000F54 + .incbin "baserom.gba", 0x000F54, 0x0000030 + +gUnk_08000F84:: @ 08000F84 + .incbin "baserom.gba", 0x000F84, 0x0000040 + +gUnk_08000FC4:: @ 08000FC4 + .incbin "baserom.gba", 0x000FC4, 0x000002D + +gUnk_08000FF1:: @ 08000FF1 + .incbin "baserom.gba", 0x000FF1, 0x0000009 + +gUnk_08000FFA:: @ 08000FFA + .incbin "baserom.gba", 0x000FFA, 0x0000006 + +gUnk_08001000:: @ 08001000 + .incbin "baserom.gba", 0x001000, 0x0000004 + +gUnk_08001004:: @ 08001004 + .incbin "baserom.gba", 0x001004, 0x000000C + +gUnk_08001010:: @ 08001010 + .incbin "baserom.gba", 0x001010, 0x000000C + +gUnk_0800101C:: @ 0800101C + .incbin "baserom.gba", 0x00101C, 0x0000004 + +gUnk_08001020:: @ 08001020 + .incbin "baserom.gba", 0x001020, 0x0000005 + +gUnk_08001025:: @ 08001025 + .incbin "baserom.gba", 0x001025, 0x000000C + +gUnk_08001031:: @ 08001031 + .incbin "baserom.gba", 0x001031, 0x0000013 + +gUnk_08001044:: @ 08001044 + .incbin "baserom.gba", 0x001044, 0x000000C + +gUnk_08001050:: @ 08001050 + .incbin "baserom.gba", 0x001050, 0x0000034 + +gUnk_08001084:: @ 08001084 + .incbin "baserom.gba", 0x001084, 0x0000040 + +gUnk_080010C4:: @ 080010C4 + .incbin "baserom.gba", 0x0010C4, 0x0000033 + +gUnk_080010F7:: @ 080010F7 + .incbin "baserom.gba", 0x0010F7, 0x000000A + +gUnk_08001101:: @ 08001101 + .incbin "baserom.gba", 0x001101, 0x0000003 + +gUnk_08001104:: @ 08001104 + .incbin "baserom.gba", 0x001104, 0x0000011 + +gUnk_08001115:: @ 08001115 + .incbin "baserom.gba", 0x001115, 0x000002F + +gUnk_08001144:: @ 08001144 + .incbin "baserom.gba", 0x001144, 0x000002B + +gUnk_0800116F:: @ 0800116F + .incbin "baserom.gba", 0x00116F, 0x0000015 + +gUnk_08001184:: @ 08001184 + .incbin "baserom.gba", 0x001184, 0x0000040 diff --git a/data/data_4.s b/data/data_4.s new file mode 100644 index 00000000..08809ee3 --- /dev/null +++ b/data/data_4.s @@ -0,0 +1,179 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2 + +gUnk_080029B4:: @ 080029B4 + .incbin "baserom.gba", 0x0029B4, 0x000004C + +gUnk_08002A00:: @ 08002A00 + .incbin "baserom.gba", 0x002A00, 0x0000004 + +gUnk_08002A04:: @ 08002A04 + .incbin "baserom.gba", 0x002A04, 0x000001C + +gUnk_08002A20:: @ 08002A20 + .incbin "baserom.gba", 0x002A20, 0x00000E0 + +gUnk_08002B00:: @ 08002B00 + .incbin "baserom.gba", 0x002B00, 0x0000010 + +gUnk_08002B10:: @ 08002B10 + .incbin "baserom.gba", 0x002B10, 0x00000F0 + +gUnk_08002C00:: @ 08002C00 + .incbin "baserom.gba", 0x002C00, 0x0000025 + +gUnk_08002C25:: @ 08002C25 + .incbin "baserom.gba", 0x002C25, 0x000001B + +gUnk_08002C40:: @ 08002C40 + .incbin "baserom.gba", 0x002C40, 0x00000C4 + +gUnk_08002D04:: @ 08002D04 + .incbin "baserom.gba", 0x002D04, 0x0000059 + +gUnk_08002D5D:: @ 08002D5D + .incbin "baserom.gba", 0x002D5D, 0x00000E7 + +gUnk_08002E44:: @ 08002E44 + .incbin "baserom.gba", 0x002E44, 0x0000003 + +gUnk_08002E47:: @ 08002E47 + .incbin "baserom.gba", 0x002E47, 0x0000039 + +gUnk_08002E80:: @ 08002E80 + .incbin "baserom.gba", 0x002E80, 0x0000094 + +gUnk_08002F14:: @ 08002F14 + .incbin "baserom.gba", 0x002F14, 0x000010C + +gUnk_08003020:: @ 08003020 + .incbin "baserom.gba", 0x003020, 0x0000024 + +gUnk_08003044:: @ 08003044 + .incbin "baserom.gba", 0x003044, 0x000001C + +gUnk_08003060:: @ 08003060 + .incbin "baserom.gba", 0x003060, 0x0000040 + +gUnk_080030A0:: @ 080030A0 + .incbin "baserom.gba", 0x0030A0, 0x00000A0 + +gUnk_08003140:: @ 08003140 + .incbin "baserom.gba", 0x003140, 0x000002B + +gUnk_0800316B:: @ 0800316B + .incbin "baserom.gba", 0x00316B, 0x00000B7 + +gUnk_08003222:: @ 08003222 + .incbin "baserom.gba", 0x003222, 0x00000E1 + +gUnk_08003303:: @ 08003303 + .incbin "baserom.gba", 0x003303, 0x0000010 + +gUnk_08003313:: @ 08003313 + .incbin "baserom.gba", 0x003313, 0x000000F + +gUnk_08003322:: @ 08003322 + .incbin "baserom.gba", 0x003322, 0x000003C + +gUnk_0800335E:: @ 0800335E + .incbin "baserom.gba", 0x00335E, 0x0000008 + +gUnk_08003366:: @ 08003366 + .incbin "baserom.gba", 0x003366, 0x000008F + +gUnk_080033F5:: @ 080033F5 + .incbin "baserom.gba", 0x0033F5, 0x000000B + +gUnk_08003400:: @ 08003400 + .incbin "baserom.gba", 0x003400, 0x0000020 + +gUnk_08003420:: @ 08003420 + .incbin "baserom.gba", 0x003420, 0x0000014 + +gUnk_08003434:: @ 08003434 + .incbin "baserom.gba", 0x003434, 0x000000C + +gUnk_08003440:: @ 08003440 + .incbin "baserom.gba", 0x003440, 0x0000004 + +gUnk_08003444:: @ 08003444 + .incbin "baserom.gba", 0x003444, 0x000001F + +gUnk_08003463:: @ 08003463 + .incbin "baserom.gba", 0x003463, 0x000001B + +gUnk_0800347E:: @ 0800347E + .incbin "baserom.gba", 0x00347E, 0x000004D + +gUnk_080034CB:: @ 080034CB + .incbin "baserom.gba", 0x0034CB, 0x0000035 + +gUnk_08003500:: @ 08003500 + .incbin "baserom.gba", 0x003500, 0x0000020 + +gUnk_08003520:: @ 08003520 + .incbin "baserom.gba", 0x003520, 0x0000037 + +gUnk_08003557:: @ 08003557 + .incbin "baserom.gba", 0x003557, 0x00000B9 + +gUnk_08003610:: @ 08003610 + .incbin "baserom.gba", 0x003610, 0x00000B4 + +gUnk_080036C4:: @ 080036C4 + .incbin "baserom.gba", 0x0036C4, 0x000003F + +gUnk_08003703:: @ 08003703 + .incbin "baserom.gba", 0x003703, 0x0000001 + +gUnk_08003704:: @ 08003704 + .incbin "baserom.gba", 0x003704, 0x0000180 + +gUnk_08003884:: @ 08003884 + .incbin "baserom.gba", 0x003884, 0x000017C + +gUnk_08003A00:: @ 08003A00 + .incbin "baserom.gba", 0x003A00, 0x0000010 + +gUnk_08003A10:: @ 08003A10 + .incbin "baserom.gba", 0x003A10, 0x00000F2 + +gUnk_08003B02:: @ 08003B02 + .incbin "baserom.gba", 0x003B02, 0x000003F + +gUnk_08003B41:: @ 08003B41 + .incbin "baserom.gba", 0x003B41, 0x00000BF + +gUnk_08003C00:: @ 08003C00 + .incbin "baserom.gba", 0x003C00, 0x0000020 + +gUnk_08003C20:: @ 08003C20 + .incbin "baserom.gba", 0x003C20, 0x0000002 + +gUnk_08003C22:: @ 08003C22 + .incbin "baserom.gba", 0x003C22, 0x00000E1 + +gUnk_08003D03:: @ 08003D03 + .incbin "baserom.gba", 0x003D03, 0x00000D1 + +gUnk_08003DD4:: @ 08003DD4 + .incbin "baserom.gba", 0x003DD4, 0x000002C + +gUnk_08003E00:: @ 08003E00 + .incbin "baserom.gba", 0x003E00, 0x0000044 + +gUnk_08003E44:: @ 08003E44 + .incbin "baserom.gba", 0x003E44, 0x0000032 + +gUnk_08003E76:: @ 08003E76 + .incbin "baserom.gba", 0x003E76, 0x000000A + +gUnk_08003E80:: @ 08003E80 + .incbin "baserom.gba", 0x003E80, 0x0000087 + +gUnk_08003F07:: @ 08003F07 + .incbin "baserom.gba", 0x003F07, 0x00000BD diff --git a/data/data_6.s b/data/data_6.s new file mode 100644 index 00000000..63e5b589 --- /dev/null +++ b/data/data_6.s @@ -0,0 +1,191 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2 + +gUnk_08007DF4:: @ 08007DF4 + .incbin "baserom.gba", 0x007DF4, 0x0000008 + +gUnk_08007DFC:: @ 08007DFC + .incbin "baserom.gba", 0x007DFC, 0x0000020 + +gUnk_08007E1C:: @ 08007E1C + .incbin "baserom.gba", 0x007E1C, 0x0000020 + +gUnk_08007E3C:: @ 08007E3C + .incbin "baserom.gba", 0x007E3C, 0x0000020 + +gUnk_08007E5C:: @ 08007E5C + .incbin "baserom.gba", 0x007E5C, 0x0000020 + +gUnk_08007E7C:: @ 08007E7C + .incbin "baserom.gba", 0x007E7C, 0x0000020 + +gUnk_08007E9C:: @ 08007E9C + .incbin "baserom.gba", 0x007E9C, 0x0000017 + +gUnk_08007EB3:: @ 08007EB3 + .incbin "baserom.gba", 0x007EB3, 0x0000009 + +gUnk_08007EBC:: @ 08007EBC + .incbin "baserom.gba", 0x007EBC, 0x0000020 + +gUnk_08007EDC:: @ 08007EDC + .incbin "baserom.gba", 0x007EDC, 0x0000020 + +gUnk_08007EFC:: @ 08007EFC + .incbin "baserom.gba", 0x007EFC, 0x0000020 + +gUnk_08007F1C:: @ 08007F1C + .incbin "baserom.gba", 0x007F1C, 0x0000020 + +gUnk_08007F3C:: @ 08007F3C + .incbin "baserom.gba", 0x007F3C, 0x0000020 + +gUnk_08007F5C:: @ 08007F5C + .incbin "baserom.gba", 0x007F5C, 0x0000020 + +gUnk_08007F7C:: @ 08007F7C + .incbin "baserom.gba", 0x007F7C, 0x000000A + +gUnk_08007F86:: @ 08007F86 + .incbin "baserom.gba", 0x007F86, 0x0000016 + +gUnk_08007F9C:: @ 08007F9C + .incbin "baserom.gba", 0x007F9C, 0x0000003 + +gUnk_08007F9F:: @ 08007F9F + .incbin "baserom.gba", 0x007F9F, 0x000001D + +gUnk_08007FBC:: @ 08007FBC + .incbin "baserom.gba", 0x007FBC, 0x0000020 + +gUnk_08007FDC:: @ 08007FDC + .incbin "baserom.gba", 0x007FDC, 0x0000020 + +gUnk_08007FFC:: @ 08007FFC + .incbin "baserom.gba", 0x007FFC, 0x0000020 + +gUnk_0800801C:: @ 0800801C + .incbin "baserom.gba", 0x00801C, 0x0000007 + +gUnk_08008023:: @ 08008023 + .incbin "baserom.gba", 0x008023, 0x0000019 + +gUnk_0800803C:: @ 0800803C + .incbin "baserom.gba", 0x00803C, 0x0000020 + +gUnk_0800805C:: @ 0800805C + .incbin "baserom.gba", 0x00805C, 0x0000020 + +gUnk_0800807C:: @ 0800807C + .incbin "baserom.gba", 0x00807C, 0x0000020 + +gUnk_0800809C:: @ 0800809C + .incbin "baserom.gba", 0x00809C, 0x0000020 + +gUnk_080080BC:: @ 080080BC + .incbin "baserom.gba", 0x0080BC, 0x0000020 + +gUnk_080080DC:: @ 080080DC + .incbin "baserom.gba", 0x0080DC, 0x0000020 + +gUnk_080080FC:: @ 080080FC + .incbin "baserom.gba", 0x0080FC, 0x0000020 + +gUnk_0800811C:: @ 0800811C + .incbin "baserom.gba", 0x00811C, 0x0000020 + +gUnk_0800813C:: @ 0800813C + .incbin "baserom.gba", 0x00813C, 0x0000020 + +gUnk_0800815C:: @ 0800815C + .incbin "baserom.gba", 0x00815C, 0x000000D + +gUnk_08008169:: @ 08008169 + .incbin "baserom.gba", 0x008169, 0x0000013 + +gUnk_0800817C:: @ 0800817C + .incbin "baserom.gba", 0x00817C, 0x0000020 + +gUnk_0800819C:: @ 0800819C + .incbin "baserom.gba", 0x00819C, 0x0000020 + +gUnk_080081BC:: @ 080081BC + .incbin "baserom.gba", 0x0081BC, 0x0000002 + +gUnk_080081BE:: @ 080081BE + .incbin "baserom.gba", 0x0081BE, 0x000001E + +gUnk_080081DC:: @ 080081DC + .incbin "baserom.gba", 0x0081DC, 0x0000012 + +gUnk_080081EE:: @ 080081EE + .incbin "baserom.gba", 0x0081EE, 0x000000E + +gUnk_080081FC:: @ 080081FC + .incbin "baserom.gba", 0x0081FC, 0x0000020 + +gUnk_0800821C:: @ 0800821C + .incbin "baserom.gba", 0x00821C, 0x0000016 + +gUnk_08008232:: @ 08008232 + .incbin "baserom.gba", 0x008232, 0x000000A + +gUnk_0800823C:: @ 0800823C + .incbin "baserom.gba", 0x00823C, 0x000003C + +gUnk_08008278:: @ 08008278 + .incbin "baserom.gba", 0x008278, 0x000000F + +gUnk_08008287:: @ 08008287 + .incbin "baserom.gba", 0x008287, 0x0000027 + +gUnk_080082AE:: @ 080082AE + .incbin "baserom.gba", 0x0082AE, 0x000002C + +gUnk_080082DA:: @ 080082DA + .incbin "baserom.gba", 0x0082DA, 0x0000002 + +gUnk_080082DC:: @ 080082DC + .incbin "baserom.gba", 0x0082DC, 0x0000060 + +gUnk_0800833C:: @ 0800833C + .incbin "baserom.gba", 0x00833C, 0x000001D + +gUnk_08008359:: @ 08008359 + .incbin "baserom.gba", 0x008359, 0x0000043 + +gUnk_0800839C:: @ 0800839C + .incbin "baserom.gba", 0x00839C, 0x0000012 + +gUnk_080083AE:: @ 080083AE + .incbin "baserom.gba", 0x0083AE, 0x0000013 + +gUnk_080083C1:: @ 080083C1 + .incbin "baserom.gba", 0x0083C1, 0x0000006 + +gUnk_080083C7:: @ 080083C7 + .incbin "baserom.gba", 0x0083C7, 0x0000035 + +gUnk_080083FC:: @ 080083FC + .incbin "baserom.gba", 0x0083FC, 0x000002A + +gUnk_08008426:: @ 08008426 + .incbin "baserom.gba", 0x008426, 0x0000036 + +gUnk_0800845C:: @ 0800845C + .incbin "baserom.gba", 0x00845C, 0x0000024 + +gUnk_08008480:: @ 08008480 + .incbin "baserom.gba", 0x008480, 0x000003C + +gUnk_080084BC:: @ 080084BC + .incbin "baserom.gba", 0x0084BC, 0x0000048 + +gUnk_08008504:: @ 08008504 + .incbin "baserom.gba", 0x008504, 0x0000018 + +gUnk_0800851C:: @ 0800851C + .incbin "baserom.gba", 0x00851C, 0x0000060 diff --git a/data/data_8.s b/data/data_8.s new file mode 100644 index 00000000..f5079524 --- /dev/null +++ b/data/data_8.s @@ -0,0 +1,68762 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2 + +gUnk_080B2A70:: @ 080B2A70 + .incbin "baserom.gba", 0x0B2A70, 0x0000268 + +gUnk_080B2CD8:: @ 080B2CD8 + .incbin "baserom.gba", 0x0B2CD8, 0x0000010 + +gUnk_080B2CE8:: @ 080B2CE8 + .incbin "baserom.gba", 0x0B2CE8, 0x0000064 + +gUnk_080B2D4C:: @ 080B2D4C + .incbin "baserom.gba", 0x0B2D4C, 0x0000308 + +gUnk_080B3054:: @ 080B3054 + .incbin "baserom.gba", 0x0B3054, 0x00000E8 + +gUnk_080B313C:: @ 080B313C + .incbin "baserom.gba", 0x0B313C, 0x0000604 + +gUnk_080B3740:: @ 080B3740 + .incbin "baserom.gba", 0x0B3740, 0x0000004 + +gUnk_080B3744:: @ 080B3744 + .incbin "baserom.gba", 0x0B3744, 0x000005C + +gUnk_080B37A0:: @ 080B37A0 + .incbin "baserom.gba", 0x0B37A0, 0x0000192 + +gUnk_080B3932:: @ 080B3932 + .incbin "baserom.gba", 0x0B3932, 0x00003E2 + +gUnk_080B3D14:: @ 080B3D14 + .incbin "baserom.gba", 0x0B3D14, 0x000000C + +gUnk_080B3D20:: @ 080B3D20 + .incbin "baserom.gba", 0x0B3D20, 0x00000B0 + +gUnk_080B3DD0:: @ 080B3DD0 + .incbin "baserom.gba", 0x0B3DD0, 0x0000010 + +gUnk_080B3DE0:: @ 080B3DE0 + .incbin "baserom.gba", 0x0B3DE0, 0x0000008 + +gUnk_080B3DE8:: @ 080B3DE8 + .incbin "baserom.gba", 0x0B3DE8, 0x000000C + +gUnk_080B3DF4:: @ 080B3DF4 + .incbin "baserom.gba", 0x0B3DF4, 0x0000024 + +gUnk_080B3E18:: @ 080B3E18 + .incbin "baserom.gba", 0x0B3E18, 0x0000008 + +gUnk_080B3E20:: @ 080B3E20 + .incbin "baserom.gba", 0x0B3E20, 0x0000008 + +gUnk_080B3E28:: @ 080B3E28 + .incbin "baserom.gba", 0x0B3E28, 0x0000008 + +gUnk_080B3E30:: @ 080B3E30 + .incbin "baserom.gba", 0x0B3E30, 0x0000010 + +gUnk_080B3E40:: @ 080B3E40 + .incbin "baserom.gba", 0x0B3E40, 0x0000030 + +gUnk_080B3E70:: @ 080B3E70 + .incbin "baserom.gba", 0x0B3E70, 0x0000001 + +gUnk_080B3E71:: @ 080B3E71 + .incbin "baserom.gba", 0x0B3E71, 0x0000007 + +gUnk_080B3E78:: @ 080B3E78 + .incbin "baserom.gba", 0x0B3E78, 0x0000008 + +gUnk_080B3E80:: @ 080B3E80 + .incbin "baserom.gba", 0x0B3E80, 0x0000180 + +gUnk_080B4000:: @ 080B4000 + .incbin "baserom.gba", 0x0B4000, 0x00003F4 + +gUnk_080B43F4:: @ 080B43F4 + .incbin "baserom.gba", 0x0B43F4, 0x0000008 + +gUnk_080B43FC:: @ 080B43FC + .incbin "baserom.gba", 0x0B43FC, 0x0000004 + +gUnk_080B4400:: @ 080B4400 + .incbin "baserom.gba", 0x0B4400, 0x0000008 + +gUnk_080B4408:: @ 080B4408 + .incbin "baserom.gba", 0x0B4408, 0x0000008 + +gUnk_080B4410:: @ 080B4410 + .incbin "baserom.gba", 0x0B4410, 0x0000048 + +gUnk_080B4458:: @ 080B4458 + .incbin "baserom.gba", 0x0B4458, 0x0000010 + +gUnk_080B4468:: @ 080B4468 + .incbin "baserom.gba", 0x0B4468, 0x0000010 + +gUnk_080B4478:: @ 080B4478 + .incbin "baserom.gba", 0x0B4478, 0x0000010 + +gUnk_080B4488:: @ 080B4488 + .incbin "baserom.gba", 0x0B4488, 0x0000008 + +gUnk_080B4490:: @ 080B4490 + .incbin "baserom.gba", 0x0B4490, 0x0000010 + +gUnk_080B44A0:: @ 080B44A0 + .incbin "baserom.gba", 0x0B44A0, 0x0000008 + +gUnk_080B44A8:: @ 080B44A8 + .incbin "baserom.gba", 0x0B44A8, 0x0000010 + +gUnk_080B44B8:: @ 080B44B8 + .incbin "baserom.gba", 0x0B44B8, 0x0000008 + +gUnk_080B44C0:: @ 080B44C0 + .incbin "baserom.gba", 0x0B44C0, 0x0000002 + +gUnk_080B44C2:: @ 080B44C2 + .incbin "baserom.gba", 0x0B44C2, 0x000000E + +gUnk_080B44D0:: @ 080B44D0 + .incbin "baserom.gba", 0x0B44D0, 0x0000020 + +gUnk_080B44F0:: @ 080B44F0 + .incbin "baserom.gba", 0x0B44F0, 0x0000010 + +gUnk_080B4500:: @ 080B4500 + .incbin "baserom.gba", 0x0B4500, 0x0000010 + +gUnk_080B4510:: @ 080B4510 + .incbin "baserom.gba", 0x0B4510, 0x0000010 + +gUnk_080B4520:: @ 080B4520 + .incbin "baserom.gba", 0x0B4520, 0x0000010 + +gUnk_080B4530:: @ 080B4530 + .incbin "baserom.gba", 0x0B4530, 0x0000010 + +gUnk_080B4540:: @ 080B4540 + .incbin "baserom.gba", 0x0B4540, 0x0000010 + +gUnk_080B4550:: @ 080B4550 + .incbin "baserom.gba", 0x0B4550, 0x0000018 + +gUnk_080B4568:: @ 080B4568 + .incbin "baserom.gba", 0x0B4568, 0x0000008 + +gUnk_080B4570:: @ 080B4570 + .incbin "baserom.gba", 0x0B4570, 0x0000008 + +gUnk_080B4578:: @ 080B4578 + .incbin "baserom.gba", 0x0B4578, 0x0000008 + +gUnk_080B4580:: @ 080B4580 + .incbin "baserom.gba", 0x0B4580, 0x0000008 + +gUnk_080B4588:: @ 080B4588 + .incbin "baserom.gba", 0x0B4588, 0x0000028 + +gUnk_080B45B0:: @ 080B45B0 + .incbin "baserom.gba", 0x0B45B0, 0x0000008 + +gUnk_080B45B8:: @ 080B45B8 + .incbin "baserom.gba", 0x0B45B8, 0x0000008 + +gUnk_080B45C0:: @ 080B45C0 + .incbin "baserom.gba", 0x0B45C0, 0x0000008 + +gUnk_080B45C8:: @ 080B45C8 + .incbin "baserom.gba", 0x0B45C8, 0x0000008 + +gUnk_080B45D0:: @ 080B45D0 + .incbin "baserom.gba", 0x0B45D0, 0x0000028 + +gUnk_080B45F8:: @ 080B45F8 + .incbin "baserom.gba", 0x0B45F8, 0x0000008 + +gUnk_080B4600:: @ 080B4600 + .incbin "baserom.gba", 0x0B4600, 0x0000008 + +gUnk_080B4608:: @ 080B4608 + .incbin "baserom.gba", 0x0B4608, 0x0000008 + +gUnk_080B4610:: @ 080B4610 + .incbin "baserom.gba", 0x0B4610, 0x0000008 + +gUnk_080B4618:: @ 080B4618 + .incbin "baserom.gba", 0x0B4618, 0x0000028 + +gUnk_080B4640:: @ 080B4640 + .incbin "baserom.gba", 0x0B4640, 0x0000008 + +gUnk_080B4648:: @ 080B4648 + .incbin "baserom.gba", 0x0B4648, 0x0000008 + +gUnk_080B4650:: @ 080B4650 + .incbin "baserom.gba", 0x0B4650, 0x0000008 + +gUnk_080B4658:: @ 080B4658 + .incbin "baserom.gba", 0x0B4658, 0x0000008 + +gUnk_080B4660:: @ 080B4660 + .incbin "baserom.gba", 0x0B4660, 0x0000028 + +gUnk_080B4688:: @ 080B4688 + .incbin "baserom.gba", 0x0B4688, 0x0000008 + +gUnk_080B4690:: @ 080B4690 + .incbin "baserom.gba", 0x0B4690, 0x0000008 + +gUnk_080B4698:: @ 080B4698 + .incbin "baserom.gba", 0x0B4698, 0x0000008 + +gUnk_080B46A0:: @ 080B46A0 + .incbin "baserom.gba", 0x0B46A0, 0x0000008 + +gUnk_080B46A8:: @ 080B46A8 + .incbin "baserom.gba", 0x0B46A8, 0x0000028 + +gUnk_080B46D0:: @ 080B46D0 + .incbin "baserom.gba", 0x0B46D0, 0x0000008 + +gUnk_080B46D8:: @ 080B46D8 + .incbin "baserom.gba", 0x0B46D8, 0x0000008 + +gUnk_080B46E0:: @ 080B46E0 + .incbin "baserom.gba", 0x0B46E0, 0x0000008 + +gUnk_080B46E8:: @ 080B46E8 + .incbin "baserom.gba", 0x0B46E8, 0x0000008 + +gUnk_080B46F0:: @ 080B46F0 + .incbin "baserom.gba", 0x0B46F0, 0x0000028 + +gUnk_080B4718:: @ 080B4718 + .incbin "baserom.gba", 0x0B4718, 0x0000008 + +gUnk_080B4720:: @ 080B4720 + .incbin "baserom.gba", 0x0B4720, 0x0000008 + +gUnk_080B4728:: @ 080B4728 + .incbin "baserom.gba", 0x0B4728, 0x0000008 + +gUnk_080B4730:: @ 080B4730 + .incbin "baserom.gba", 0x0B4730, 0x0000008 + +gUnk_080B4738:: @ 080B4738 + .incbin "baserom.gba", 0x0B4738, 0x0000028 + +gUnk_080B4760:: @ 080B4760 + .incbin "baserom.gba", 0x0B4760, 0x0000008 + +gUnk_080B4768:: @ 080B4768 + .incbin "baserom.gba", 0x0B4768, 0x0000008 + +gUnk_080B4770:: @ 080B4770 + .incbin "baserom.gba", 0x0B4770, 0x0000008 + +gUnk_080B4778:: @ 080B4778 + .incbin "baserom.gba", 0x0B4778, 0x0000008 + +gUnk_080B4780:: @ 080B4780 + .incbin "baserom.gba", 0x0B4780, 0x0000028 + +gUnk_080B47A8:: @ 080B47A8 + .incbin "baserom.gba", 0x0B47A8, 0x0000008 + +gUnk_080B47B0:: @ 080B47B0 + .incbin "baserom.gba", 0x0B47B0, 0x0000008 + +gUnk_080B47B8:: @ 080B47B8 + .incbin "baserom.gba", 0x0B47B8, 0x0000008 + +gUnk_080B47C0:: @ 080B47C0 + .incbin "baserom.gba", 0x0B47C0, 0x0000008 + +gUnk_080B47C8:: @ 080B47C8 + .incbin "baserom.gba", 0x0B47C8, 0x0000028 + +gUnk_080B47F0:: @ 080B47F0 + .incbin "baserom.gba", 0x0B47F0, 0x0000008 + +gUnk_080B47F8:: @ 080B47F8 + .incbin "baserom.gba", 0x0B47F8, 0x0000008 + +gUnk_080B4800:: @ 080B4800 + .incbin "baserom.gba", 0x0B4800, 0x0000008 + +gUnk_080B4808:: @ 080B4808 + .incbin "baserom.gba", 0x0B4808, 0x0000008 + +gUnk_080B4810:: @ 080B4810 + .incbin "baserom.gba", 0x0B4810, 0x0000028 + +gUnk_080B4838:: @ 080B4838 + .incbin "baserom.gba", 0x0B4838, 0x0000010 + +gUnk_080B4848:: @ 080B4848 + .incbin "baserom.gba", 0x0B4848, 0x0000010 + +gUnk_080B4858:: @ 080B4858 + .incbin "baserom.gba", 0x0B4858, 0x0000010 + +gUnk_080B4868:: @ 080B4868 + .incbin "baserom.gba", 0x0B4868, 0x0000010 + +gUnk_080B4878:: @ 080B4878 + .incbin "baserom.gba", 0x0B4878, 0x0000028 + +gUnk_080B48A0:: @ 080B48A0 + .incbin "baserom.gba", 0x0B48A0, 0x0000008 + +gUnk_080B48A8:: @ 080B48A8 + .incbin "baserom.gba", 0x0B48A8, 0x0000008 + +gUnk_080B48B0:: @ 080B48B0 + .incbin "baserom.gba", 0x0B48B0, 0x0000008 + +gUnk_080B48B8:: @ 080B48B8 + .incbin "baserom.gba", 0x0B48B8, 0x0000008 + +gUnk_080B48C0:: @ 080B48C0 + .incbin "baserom.gba", 0x0B48C0, 0x0000008 + +gUnk_080B48C8:: @ 080B48C8 + .incbin "baserom.gba", 0x0B48C8, 0x0000008 + +gUnk_080B48D0:: @ 080B48D0 + .incbin "baserom.gba", 0x0B48D0, 0x0000038 + +gUnk_080B4908:: @ 080B4908 + .incbin "baserom.gba", 0x0B4908, 0x0000008 + +gUnk_080B4910:: @ 080B4910 + .incbin "baserom.gba", 0x0B4910, 0x0000008 + +gUnk_080B4918:: @ 080B4918 + .incbin "baserom.gba", 0x0B4918, 0x0000008 + +gUnk_080B4920:: @ 080B4920 + .incbin "baserom.gba", 0x0B4920, 0x0000008 + +gUnk_080B4928:: @ 080B4928 + .incbin "baserom.gba", 0x0B4928, 0x0000008 + +gUnk_080B4930:: @ 080B4930 + .incbin "baserom.gba", 0x0B4930, 0x0000008 + +gUnk_080B4938:: @ 080B4938 + .incbin "baserom.gba", 0x0B4938, 0x0000038 + +gUnk_080B4970:: @ 080B4970 + .incbin "baserom.gba", 0x0B4970, 0x0000008 + +gUnk_080B4978:: @ 080B4978 + .incbin "baserom.gba", 0x0B4978, 0x0000008 + +gUnk_080B4980:: @ 080B4980 + .incbin "baserom.gba", 0x0B4980, 0x0000008 + +gUnk_080B4988:: @ 080B4988 + .incbin "baserom.gba", 0x0B4988, 0x0000008 + +gUnk_080B4990:: @ 080B4990 + .incbin "baserom.gba", 0x0B4990, 0x0000008 + +gUnk_080B4998:: @ 080B4998 + .incbin "baserom.gba", 0x0B4998, 0x0000008 + +gUnk_080B49A0:: @ 080B49A0 + .incbin "baserom.gba", 0x0B49A0, 0x0000038 + +gUnk_080B49D8:: @ 080B49D8 + .incbin "baserom.gba", 0x0B49D8, 0x0000008 + +gUnk_080B49E0:: @ 080B49E0 + .incbin "baserom.gba", 0x0B49E0, 0x0000008 + +gUnk_080B49E8:: @ 080B49E8 + .incbin "baserom.gba", 0x0B49E8, 0x0000008 + +gUnk_080B49F0:: @ 080B49F0 + .incbin "baserom.gba", 0x0B49F0, 0x0000008 + +gUnk_080B49F8:: @ 080B49F8 + .incbin "baserom.gba", 0x0B49F8, 0x0000028 + +gUnk_080B4A20:: @ 080B4A20 + .incbin "baserom.gba", 0x0B4A20, 0x0000008 + +gUnk_080B4A28:: @ 080B4A28 + .incbin "baserom.gba", 0x0B4A28, 0x0000008 + +gUnk_080B4A30:: @ 080B4A30 + .incbin "baserom.gba", 0x0B4A30, 0x0000008 + +gUnk_080B4A38:: @ 080B4A38 + .incbin "baserom.gba", 0x0B4A38, 0x0000008 + +gUnk_080B4A40:: @ 080B4A40 + .incbin "baserom.gba", 0x0B4A40, 0x0000028 + +gUnk_080B4A68:: @ 080B4A68 + .incbin "baserom.gba", 0x0B4A68, 0x0000008 + +gUnk_080B4A70:: @ 080B4A70 + .incbin "baserom.gba", 0x0B4A70, 0x0000008 + +gUnk_080B4A78:: @ 080B4A78 + .incbin "baserom.gba", 0x0B4A78, 0x0000008 + +gUnk_080B4A80:: @ 080B4A80 + .incbin "baserom.gba", 0x0B4A80, 0x0000008 + +gUnk_080B4A88:: @ 080B4A88 + .incbin "baserom.gba", 0x0B4A88, 0x0000028 + +gUnk_080B4AB0:: @ 080B4AB0 + .incbin "baserom.gba", 0x0B4AB0, 0x0000008 + +gUnk_080B4AB8:: @ 080B4AB8 + .incbin "baserom.gba", 0x0B4AB8, 0x0000008 + +gUnk_080B4AC0:: @ 080B4AC0 + .incbin "baserom.gba", 0x0B4AC0, 0x0000008 + +gUnk_080B4AC8:: @ 080B4AC8 + .incbin "baserom.gba", 0x0B4AC8, 0x0000008 + +gUnk_080B4AD0:: @ 080B4AD0 + .incbin "baserom.gba", 0x0B4AD0, 0x0000028 + +gUnk_080B4AF8:: @ 080B4AF8 + .incbin "baserom.gba", 0x0B4AF8, 0x0000008 + +gUnk_080B4B00:: @ 080B4B00 + .incbin "baserom.gba", 0x0B4B00, 0x0000008 + +gUnk_080B4B08:: @ 080B4B08 + .incbin "baserom.gba", 0x0B4B08, 0x0000008 + +gUnk_080B4B10:: @ 080B4B10 + .incbin "baserom.gba", 0x0B4B10, 0x0000008 + +gUnk_080B4B18:: @ 080B4B18 + .incbin "baserom.gba", 0x0B4B18, 0x0000028 + +gUnk_080B4B40:: @ 080B4B40 + .incbin "baserom.gba", 0x0B4B40, 0x0000008 + +gUnk_080B4B48:: @ 080B4B48 + .incbin "baserom.gba", 0x0B4B48, 0x0000008 + +gUnk_080B4B50:: @ 080B4B50 + .incbin "baserom.gba", 0x0B4B50, 0x0000008 + +gUnk_080B4B58:: @ 080B4B58 + .incbin "baserom.gba", 0x0B4B58, 0x0000008 + +gUnk_080B4B60:: @ 080B4B60 + .incbin "baserom.gba", 0x0B4B60, 0x0000028 + +gUnk_080B4B88:: @ 080B4B88 + .incbin "baserom.gba", 0x0B4B88, 0x0000008 + +gUnk_080B4B90:: @ 080B4B90 + .incbin "baserom.gba", 0x0B4B90, 0x0000008 + +gUnk_080B4B98:: @ 080B4B98 + .incbin "baserom.gba", 0x0B4B98, 0x0000008 + +gUnk_080B4BA0:: @ 080B4BA0 + .incbin "baserom.gba", 0x0B4BA0, 0x0000008 + +gUnk_080B4BA8:: @ 080B4BA8 + .incbin "baserom.gba", 0x0B4BA8, 0x0000028 + +gUnk_080B4BD0:: @ 080B4BD0 + .incbin "baserom.gba", 0x0B4BD0, 0x0000008 + +gUnk_080B4BD8:: @ 080B4BD8 + .incbin "baserom.gba", 0x0B4BD8, 0x0000008 + +gUnk_080B4BE0:: @ 080B4BE0 + .incbin "baserom.gba", 0x0B4BE0, 0x0000008 + +gUnk_080B4BE8:: @ 080B4BE8 + .incbin "baserom.gba", 0x0B4BE8, 0x0000008 + +gUnk_080B4BF0:: @ 080B4BF0 + .incbin "baserom.gba", 0x0B4BF0, 0x0000028 + +gUnk_080B4C18:: @ 080B4C18 + .incbin "baserom.gba", 0x0B4C18, 0x0000008 + +gUnk_080B4C20:: @ 080B4C20 + .incbin "baserom.gba", 0x0B4C20, 0x0000008 + +gUnk_080B4C28:: @ 080B4C28 + .incbin "baserom.gba", 0x0B4C28, 0x0000008 + +gUnk_080B4C30:: @ 080B4C30 + .incbin "baserom.gba", 0x0B4C30, 0x0000008 + +gUnk_080B4C38:: @ 080B4C38 + .incbin "baserom.gba", 0x0B4C38, 0x0000028 + +gUnk_080B4C60:: @ 080B4C60 + .incbin "baserom.gba", 0x0B4C60, 0x0000008 + +gUnk_080B4C68:: @ 080B4C68 + .incbin "baserom.gba", 0x0B4C68, 0x0000008 + +gUnk_080B4C70:: @ 080B4C70 + .incbin "baserom.gba", 0x0B4C70, 0x0000008 + +gUnk_080B4C78:: @ 080B4C78 + .incbin "baserom.gba", 0x0B4C78, 0x0000008 + +gUnk_080B4C80:: @ 080B4C80 + .incbin "baserom.gba", 0x0B4C80, 0x0000028 + +gUnk_080B4CA8:: @ 080B4CA8 + .incbin "baserom.gba", 0x0B4CA8, 0x0000008 + +gUnk_080B4CB0:: @ 080B4CB0 + .incbin "baserom.gba", 0x0B4CB0, 0x0000008 + +gUnk_080B4CB8:: @ 080B4CB8 + .incbin "baserom.gba", 0x0B4CB8, 0x0000008 + +gUnk_080B4CC0:: @ 080B4CC0 + .incbin "baserom.gba", 0x0B4CC0, 0x0000008 + +gUnk_080B4CC8:: @ 080B4CC8 + .incbin "baserom.gba", 0x0B4CC8, 0x0000028 + +gUnk_080B4CF0:: @ 080B4CF0 + .incbin "baserom.gba", 0x0B4CF0, 0x0000010 + +gUnk_080B4D00:: @ 080B4D00 + .incbin "baserom.gba", 0x0B4D00, 0x0000010 + +gUnk_080B4D10:: @ 080B4D10 + .incbin "baserom.gba", 0x0B4D10, 0x0000018 + +gUnk_080B4D28:: @ 080B4D28 + .incbin "baserom.gba", 0x0B4D28, 0x0000008 + +gUnk_080B4D30:: @ 080B4D30 + .incbin "baserom.gba", 0x0B4D30, 0x0000008 + +gUnk_080B4D38:: @ 080B4D38 + .incbin "baserom.gba", 0x0B4D38, 0x0000008 + +gUnk_080B4D40:: @ 080B4D40 + .incbin "baserom.gba", 0x0B4D40, 0x0000008 + +gUnk_080B4D48:: @ 080B4D48 + .incbin "baserom.gba", 0x0B4D48, 0x0000008 + +gUnk_080B4D50:: @ 080B4D50 + .incbin "baserom.gba", 0x0B4D50, 0x0000008 + +gUnk_080B4D58:: @ 080B4D58 + .incbin "baserom.gba", 0x0B4D58, 0x0000008 + +gUnk_080B4D60:: @ 080B4D60 + .incbin "baserom.gba", 0x0B4D60, 0x0000008 + +gUnk_080B4D68:: @ 080B4D68 + .incbin "baserom.gba", 0x0B4D68, 0x0000008 + +gUnk_080B4D70:: @ 080B4D70 + .incbin "baserom.gba", 0x0B4D70, 0x0000008 + +gUnk_080B4D78:: @ 080B4D78 + .incbin "baserom.gba", 0x0B4D78, 0x0000008 + +gUnk_080B4D80:: @ 080B4D80 + .incbin "baserom.gba", 0x0B4D80, 0x0000008 + +gUnk_080B4D88:: @ 080B4D88 + .incbin "baserom.gba", 0x0B4D88, 0x0000008 + +gUnk_080B4D90:: @ 080B4D90 + .incbin "baserom.gba", 0x0B4D90, 0x0000008 + +gUnk_080B4D98:: @ 080B4D98 + .incbin "baserom.gba", 0x0B4D98, 0x0000008 + +gUnk_080B4DA0:: @ 080B4DA0 + .incbin "baserom.gba", 0x0B4DA0, 0x0000008 + +gUnk_080B4DA8:: @ 080B4DA8 + .incbin "baserom.gba", 0x0B4DA8, 0x0000088 + +gUnk_080B4E30:: @ 080B4E30 + .incbin "baserom.gba", 0x0B4E30, 0x0000008 + +gUnk_080B4E38:: @ 080B4E38 + .incbin "baserom.gba", 0x0B4E38, 0x0000008 + +gUnk_080B4E40:: @ 080B4E40 + .incbin "baserom.gba", 0x0B4E40, 0x0000008 + +gUnk_080B4E48:: @ 080B4E48 + .incbin "baserom.gba", 0x0B4E48, 0x0000008 + +gUnk_080B4E50:: @ 080B4E50 + .incbin "baserom.gba", 0x0B4E50, 0x0000028 + +gUnk_080B4E78:: @ 080B4E78 + .incbin "baserom.gba", 0x0B4E78, 0x0000008 + +gUnk_080B4E80:: @ 080B4E80 + .incbin "baserom.gba", 0x0B4E80, 0x0000008 + +gUnk_080B4E88:: @ 080B4E88 + .incbin "baserom.gba", 0x0B4E88, 0x0000008 + +gUnk_080B4E90:: @ 080B4E90 + .incbin "baserom.gba", 0x0B4E90, 0x0000008 + +gUnk_080B4E98:: @ 080B4E98 + .incbin "baserom.gba", 0x0B4E98, 0x0000028 + +gUnk_080B4EC0:: @ 080B4EC0 + .incbin "baserom.gba", 0x0B4EC0, 0x0000008 + +gUnk_080B4EC8:: @ 080B4EC8 + .incbin "baserom.gba", 0x0B4EC8, 0x0000008 + +gUnk_080B4ED0:: @ 080B4ED0 + .incbin "baserom.gba", 0x0B4ED0, 0x0000008 + +gUnk_080B4ED8:: @ 080B4ED8 + .incbin "baserom.gba", 0x0B4ED8, 0x0000008 + +gUnk_080B4EE0:: @ 080B4EE0 + .incbin "baserom.gba", 0x0B4EE0, 0x0000028 + +gUnk_080B4F08:: @ 080B4F08 + .incbin "baserom.gba", 0x0B4F08, 0x0000008 + +gUnk_080B4F10:: @ 080B4F10 + .incbin "baserom.gba", 0x0B4F10, 0x0000008 + +gUnk_080B4F18:: @ 080B4F18 + .incbin "baserom.gba", 0x0B4F18, 0x0000008 + +gUnk_080B4F20:: @ 080B4F20 + .incbin "baserom.gba", 0x0B4F20, 0x0000008 + +gUnk_080B4F28:: @ 080B4F28 + .incbin "baserom.gba", 0x0B4F28, 0x0000028 + +gUnk_080B4F50:: @ 080B4F50 + .incbin "baserom.gba", 0x0B4F50, 0x0000008 + +gUnk_080B4F58:: @ 080B4F58 + .incbin "baserom.gba", 0x0B4F58, 0x0000008 + +gUnk_080B4F60:: @ 080B4F60 + .incbin "baserom.gba", 0x0B4F60, 0x0000008 + +gUnk_080B4F68:: @ 080B4F68 + .incbin "baserom.gba", 0x0B4F68, 0x0000008 + +gUnk_080B4F70:: @ 080B4F70 + .incbin "baserom.gba", 0x0B4F70, 0x0000028 + +gUnk_080B4F98:: @ 080B4F98 + .incbin "baserom.gba", 0x0B4F98, 0x0000010 + +gUnk_080B4FA8:: @ 080B4FA8 + .incbin "baserom.gba", 0x0B4FA8, 0x0000010 + +gUnk_080B4FB8:: @ 080B4FB8 + .incbin "baserom.gba", 0x0B4FB8, 0x0000010 + +gUnk_080B4FC8:: @ 080B4FC8 + .incbin "baserom.gba", 0x0B4FC8, 0x0000010 + +gUnk_080B4FD8:: @ 080B4FD8 + .incbin "baserom.gba", 0x0B4FD8, 0x0000028 + +gUnk_080B5000:: @ 080B5000 + .incbin "baserom.gba", 0x0B5000, 0x0000008 + +gUnk_080B5008:: @ 080B5008 + .incbin "baserom.gba", 0x0B5008, 0x0000008 + +gUnk_080B5010:: @ 080B5010 + .incbin "baserom.gba", 0x0B5010, 0x0000008 + +gUnk_080B5018:: @ 080B5018 + .incbin "baserom.gba", 0x0B5018, 0x0000008 + +gUnk_080B5020:: @ 080B5020 + .incbin "baserom.gba", 0x0B5020, 0x0000028 + +gUnk_080B5048:: @ 080B5048 + .incbin "baserom.gba", 0x0B5048, 0x0000008 + +gUnk_080B5050:: @ 080B5050 + .incbin "baserom.gba", 0x0B5050, 0x0000008 + +gUnk_080B5058:: @ 080B5058 + .incbin "baserom.gba", 0x0B5058, 0x0000008 + +gUnk_080B5060:: @ 080B5060 + .incbin "baserom.gba", 0x0B5060, 0x0000008 + +gUnk_080B5068:: @ 080B5068 + .incbin "baserom.gba", 0x0B5068, 0x0000008 + +gUnk_080B5070:: @ 080B5070 + .incbin "baserom.gba", 0x0B5070, 0x0000008 + +gUnk_080B5078:: @ 080B5078 + .incbin "baserom.gba", 0x0B5078, 0x0000008 + +gUnk_080B5080:: @ 080B5080 + .incbin "baserom.gba", 0x0B5080, 0x0000008 + +gUnk_080B5088:: @ 080B5088 + .incbin "baserom.gba", 0x0B5088, 0x0000008 + +gUnk_080B5090:: @ 080B5090 + .incbin "baserom.gba", 0x0B5090, 0x0000008 + +gUnk_080B5098:: @ 080B5098 + .incbin "baserom.gba", 0x0B5098, 0x0000008 + +gUnk_080B50A0:: @ 080B50A0 + .incbin "baserom.gba", 0x0B50A0, 0x0000008 + +gUnk_080B50A8:: @ 080B50A8 + .incbin "baserom.gba", 0x0B50A8, 0x0000008 + +gUnk_080B50B0:: @ 080B50B0 + .incbin "baserom.gba", 0x0B50B0, 0x0000008 + +gUnk_080B50B8:: @ 080B50B8 + .incbin "baserom.gba", 0x0B50B8, 0x0000008 + +gUnk_080B50C0:: @ 080B50C0 + .incbin "baserom.gba", 0x0B50C0, 0x0000008 + +gUnk_080B50C8:: @ 080B50C8 + .incbin "baserom.gba", 0x0B50C8, 0x0000088 + +gUnk_080B5150:: @ 080B5150 + .incbin "baserom.gba", 0x0B5150, 0x0000008 + +gUnk_080B5158:: @ 080B5158 + .incbin "baserom.gba", 0x0B5158, 0x0000008 + +gUnk_080B5160:: @ 080B5160 + .incbin "baserom.gba", 0x0B5160, 0x0000008 + +gUnk_080B5168:: @ 080B5168 + .incbin "baserom.gba", 0x0B5168, 0x0000008 + +gUnk_080B5170:: @ 080B5170 + .incbin "baserom.gba", 0x0B5170, 0x0000028 + +gUnk_080B5198:: @ 080B5198 + .incbin "baserom.gba", 0x0B5198, 0x0000008 + +gUnk_080B51A0:: @ 080B51A0 + .incbin "baserom.gba", 0x0B51A0, 0x0000008 + +gUnk_080B51A8:: @ 080B51A8 + .incbin "baserom.gba", 0x0B51A8, 0x0000008 + +gUnk_080B51B0:: @ 080B51B0 + .incbin "baserom.gba", 0x0B51B0, 0x0000008 + +gUnk_080B51B8:: @ 080B51B8 + .incbin "baserom.gba", 0x0B51B8, 0x0000028 + +gUnk_080B51E0:: @ 080B51E0 + .incbin "baserom.gba", 0x0B51E0, 0x0000008 + +gUnk_080B51E8:: @ 080B51E8 + .incbin "baserom.gba", 0x0B51E8, 0x0000008 + +gUnk_080B51F0:: @ 080B51F0 + .incbin "baserom.gba", 0x0B51F0, 0x0000008 + +gUnk_080B51F8:: @ 080B51F8 + .incbin "baserom.gba", 0x0B51F8, 0x0000008 + +gUnk_080B5200:: @ 080B5200 + .incbin "baserom.gba", 0x0B5200, 0x0000008 + +gUnk_080B5208:: @ 080B5208 + .incbin "baserom.gba", 0x0B5208, 0x0000008 + +gUnk_080B5210:: @ 080B5210 + .incbin "baserom.gba", 0x0B5210, 0x0000008 + +gUnk_080B5218:: @ 080B5218 + .incbin "baserom.gba", 0x0B5218, 0x0000008 + +gUnk_080B5220:: @ 080B5220 + .incbin "baserom.gba", 0x0B5220, 0x0000008 + +gUnk_080B5228:: @ 080B5228 + .incbin "baserom.gba", 0x0B5228, 0x0000008 + +gUnk_080B5230:: @ 080B5230 + .incbin "baserom.gba", 0x0B5230, 0x0000008 + +gUnk_080B5238:: @ 080B5238 + .incbin "baserom.gba", 0x0B5238, 0x0000008 + +gUnk_080B5240:: @ 080B5240 + .incbin "baserom.gba", 0x0B5240, 0x0000008 + +gUnk_080B5248:: @ 080B5248 + .incbin "baserom.gba", 0x0B5248, 0x0000008 + +gUnk_080B5250:: @ 080B5250 + .incbin "baserom.gba", 0x0B5250, 0x0000008 + +gUnk_080B5258:: @ 080B5258 + .incbin "baserom.gba", 0x0B5258, 0x0000008 + +gUnk_080B5260:: @ 080B5260 + .incbin "baserom.gba", 0x0B5260, 0x0000088 + +gUnk_080B52E8:: @ 080B52E8 + .incbin "baserom.gba", 0x0B52E8, 0x0000008 + +gUnk_080B52F0:: @ 080B52F0 + .incbin "baserom.gba", 0x0B52F0, 0x0000008 + +gUnk_080B52F8:: @ 080B52F8 + .incbin "baserom.gba", 0x0B52F8, 0x0000008 + +gUnk_080B5300:: @ 080B5300 + .incbin "baserom.gba", 0x0B5300, 0x0000008 + +gUnk_080B5308:: @ 080B5308 + .incbin "baserom.gba", 0x0B5308, 0x0000028 + +gUnk_080B5330:: @ 080B5330 + .incbin "baserom.gba", 0x0B5330, 0x0000008 + +gUnk_080B5338:: @ 080B5338 + .incbin "baserom.gba", 0x0B5338, 0x0000008 + +gUnk_080B5340:: @ 080B5340 + .incbin "baserom.gba", 0x0B5340, 0x0000008 + +gUnk_080B5348:: @ 080B5348 + .incbin "baserom.gba", 0x0B5348, 0x0000008 + +gUnk_080B5350:: @ 080B5350 + .incbin "baserom.gba", 0x0B5350, 0x0000028 + +gUnk_080B5378:: @ 080B5378 + .incbin "baserom.gba", 0x0B5378, 0x0000008 + +gUnk_080B5380:: @ 080B5380 + .incbin "baserom.gba", 0x0B5380, 0x0000008 + +gUnk_080B5388:: @ 080B5388 + .incbin "baserom.gba", 0x0B5388, 0x0000008 + +gUnk_080B5390:: @ 080B5390 + .incbin "baserom.gba", 0x0B5390, 0x0000008 + +gUnk_080B5398:: @ 080B5398 + .incbin "baserom.gba", 0x0B5398, 0x0000028 + +gUnk_080B53C0:: @ 080B53C0 + .incbin "baserom.gba", 0x0B53C0, 0x0000008 + +gUnk_080B53C8:: @ 080B53C8 + .incbin "baserom.gba", 0x0B53C8, 0x0000008 + +gUnk_080B53D0:: @ 080B53D0 + .incbin "baserom.gba", 0x0B53D0, 0x0000008 + +gUnk_080B53D8:: @ 080B53D8 + .incbin "baserom.gba", 0x0B53D8, 0x0000008 + +gUnk_080B53E0:: @ 080B53E0 + .incbin "baserom.gba", 0x0B53E0, 0x0000028 + +gUnk_080B5408:: @ 080B5408 + .incbin "baserom.gba", 0x0B5408, 0x0000008 + +gUnk_080B5410:: @ 080B5410 + .incbin "baserom.gba", 0x0B5410, 0x0000008 + +gUnk_080B5418:: @ 080B5418 + .incbin "baserom.gba", 0x0B5418, 0x0000008 + +gUnk_080B5420:: @ 080B5420 + .incbin "baserom.gba", 0x0B5420, 0x0000008 + +gUnk_080B5428:: @ 080B5428 + .incbin "baserom.gba", 0x0B5428, 0x0000028 + +gUnk_080B5450:: @ 080B5450 + .incbin "baserom.gba", 0x0B5450, 0x0000008 + +gUnk_080B5458:: @ 080B5458 + .incbin "baserom.gba", 0x0B5458, 0x0000008 + +gUnk_080B5460:: @ 080B5460 + .incbin "baserom.gba", 0x0B5460, 0x0000008 + +gUnk_080B5468:: @ 080B5468 + .incbin "baserom.gba", 0x0B5468, 0x0000008 + +gUnk_080B5470:: @ 080B5470 + .incbin "baserom.gba", 0x0B5470, 0x0000008 + +gUnk_080B5478:: @ 080B5478 + .incbin "baserom.gba", 0x0B5478, 0x0000008 + +gUnk_080B5480:: @ 080B5480 + .incbin "baserom.gba", 0x0B5480, 0x0000008 + +gUnk_080B5488:: @ 080B5488 + .incbin "baserom.gba", 0x0B5488, 0x0000008 + +gUnk_080B5490:: @ 080B5490 + .incbin "baserom.gba", 0x0B5490, 0x0000008 + +gUnk_080B5498:: @ 080B5498 + .incbin "baserom.gba", 0x0B5498, 0x0000008 + +gUnk_080B54A0:: @ 080B54A0 + .incbin "baserom.gba", 0x0B54A0, 0x0000008 + +gUnk_080B54A8:: @ 080B54A8 + .incbin "baserom.gba", 0x0B54A8, 0x0000008 + +gUnk_080B54B0:: @ 080B54B0 + .incbin "baserom.gba", 0x0B54B0, 0x0000008 + +gUnk_080B54B8:: @ 080B54B8 + .incbin "baserom.gba", 0x0B54B8, 0x0000008 + +gUnk_080B54C0:: @ 080B54C0 + .incbin "baserom.gba", 0x0B54C0, 0x0000008 + +gUnk_080B54C8:: @ 080B54C8 + .incbin "baserom.gba", 0x0B54C8, 0x0000008 + +gUnk_080B54D0:: @ 080B54D0 + .incbin "baserom.gba", 0x0B54D0, 0x000002B + +gUnk_080B54FB:: @ 080B54FB + .incbin "baserom.gba", 0x0B54FB, 0x000005D + +gUnk_080B5558:: @ 080B5558 + .incbin "baserom.gba", 0x0B5558, 0x0000008 + +gUnk_080B5560:: @ 080B5560 + .incbin "baserom.gba", 0x0B5560, 0x0000008 + +gUnk_080B5568:: @ 080B5568 + .incbin "baserom.gba", 0x0B5568, 0x0000008 + +gUnk_080B5570:: @ 080B5570 + .incbin "baserom.gba", 0x0B5570, 0x0000008 + +gUnk_080B5578:: @ 080B5578 + .incbin "baserom.gba", 0x0B5578, 0x0000008 + +gUnk_080B5580:: @ 080B5580 + .incbin "baserom.gba", 0x0B5580, 0x0000008 + +gUnk_080B5588:: @ 080B5588 + .incbin "baserom.gba", 0x0B5588, 0x0000008 + +gUnk_080B5590:: @ 080B5590 + .incbin "baserom.gba", 0x0B5590, 0x0000008 + +gUnk_080B5598:: @ 080B5598 + .incbin "baserom.gba", 0x0B5598, 0x0000008 + +gUnk_080B55A0:: @ 080B55A0 + .incbin "baserom.gba", 0x0B55A0, 0x0000008 + +gUnk_080B55A8:: @ 080B55A8 + .incbin "baserom.gba", 0x0B55A8, 0x0000008 + +gUnk_080B55B0:: @ 080B55B0 + .incbin "baserom.gba", 0x0B55B0, 0x0000008 + +gUnk_080B55B8:: @ 080B55B8 + .incbin "baserom.gba", 0x0B55B8, 0x0000008 + +gUnk_080B55C0:: @ 080B55C0 + .incbin "baserom.gba", 0x0B55C0, 0x0000008 + +gUnk_080B55C8:: @ 080B55C8 + .incbin "baserom.gba", 0x0B55C8, 0x0000008 + +gUnk_080B55D0:: @ 080B55D0 + .incbin "baserom.gba", 0x0B55D0, 0x0000008 + +gUnk_080B55D8:: @ 080B55D8 + .incbin "baserom.gba", 0x0B55D8, 0x0000088 + +gUnk_080B5660:: @ 080B5660 + .incbin "baserom.gba", 0x0B5660, 0x0000008 + +gUnk_080B5668:: @ 080B5668 + .incbin "baserom.gba", 0x0B5668, 0x0000008 + +gUnk_080B5670:: @ 080B5670 + .incbin "baserom.gba", 0x0B5670, 0x0000008 + +gUnk_080B5678:: @ 080B5678 + .incbin "baserom.gba", 0x0B5678, 0x0000008 + +gUnk_080B5680:: @ 080B5680 + .incbin "baserom.gba", 0x0B5680, 0x0000008 + +gUnk_080B5688:: @ 080B5688 + .incbin "baserom.gba", 0x0B5688, 0x0000008 + +gUnk_080B5690:: @ 080B5690 + .incbin "baserom.gba", 0x0B5690, 0x0000008 + +gUnk_080B5698:: @ 080B5698 + .incbin "baserom.gba", 0x0B5698, 0x0000008 + +gUnk_080B56A0:: @ 080B56A0 + .incbin "baserom.gba", 0x0B56A0, 0x0000008 + +gUnk_080B56A8:: @ 080B56A8 + .incbin "baserom.gba", 0x0B56A8, 0x0000008 + +gUnk_080B56B0:: @ 080B56B0 + .incbin "baserom.gba", 0x0B56B0, 0x0000008 + +gUnk_080B56B8:: @ 080B56B8 + .incbin "baserom.gba", 0x0B56B8, 0x0000008 + +gUnk_080B56C0:: @ 080B56C0 + .incbin "baserom.gba", 0x0B56C0, 0x0000008 + +gUnk_080B56C8:: @ 080B56C8 + .incbin "baserom.gba", 0x0B56C8, 0x0000008 + +gUnk_080B56D0:: @ 080B56D0 + .incbin "baserom.gba", 0x0B56D0, 0x0000008 + +gUnk_080B56D8:: @ 080B56D8 + .incbin "baserom.gba", 0x0B56D8, 0x0000008 + +gUnk_080B56E0:: @ 080B56E0 + .incbin "baserom.gba", 0x0B56E0, 0x0000088 + +gUnk_080B5768:: @ 080B5768 + .incbin "baserom.gba", 0x0B5768, 0x0000008 + +gUnk_080B5770:: @ 080B5770 + .incbin "baserom.gba", 0x0B5770, 0x0000008 + +gUnk_080B5778:: @ 080B5778 + .incbin "baserom.gba", 0x0B5778, 0x0000008 + +gUnk_080B5780:: @ 080B5780 + .incbin "baserom.gba", 0x0B5780, 0x0000008 + +gUnk_080B5788:: @ 080B5788 + .incbin "baserom.gba", 0x0B5788, 0x0000008 + +gUnk_080B5790:: @ 080B5790 + .incbin "baserom.gba", 0x0B5790, 0x0000008 + +gUnk_080B5798:: @ 080B5798 + .incbin "baserom.gba", 0x0B5798, 0x0000008 + +gUnk_080B57A0:: @ 080B57A0 + .incbin "baserom.gba", 0x0B57A0, 0x0000008 + +gUnk_080B57A8:: @ 080B57A8 + .incbin "baserom.gba", 0x0B57A8, 0x0000008 + +gUnk_080B57B0:: @ 080B57B0 + .incbin "baserom.gba", 0x0B57B0, 0x0000008 + +gUnk_080B57B8:: @ 080B57B8 + .incbin "baserom.gba", 0x0B57B8, 0x0000008 + +gUnk_080B57C0:: @ 080B57C0 + .incbin "baserom.gba", 0x0B57C0, 0x0000008 + +gUnk_080B57C8:: @ 080B57C8 + .incbin "baserom.gba", 0x0B57C8, 0x0000008 + +gUnk_080B57D0:: @ 080B57D0 + .incbin "baserom.gba", 0x0B57D0, 0x0000008 + +gUnk_080B57D8:: @ 080B57D8 + .incbin "baserom.gba", 0x0B57D8, 0x0000008 + +gUnk_080B57E0:: @ 080B57E0 + .incbin "baserom.gba", 0x0B57E0, 0x0000008 + +gUnk_080B57E8:: @ 080B57E8 + .incbin "baserom.gba", 0x0B57E8, 0x0000088 + +gUnk_080B5870:: @ 080B5870 + .incbin "baserom.gba", 0x0B5870, 0x0000008 + +gUnk_080B5878:: @ 080B5878 + .incbin "baserom.gba", 0x0B5878, 0x0000008 + +gUnk_080B5880:: @ 080B5880 + .incbin "baserom.gba", 0x0B5880, 0x0000008 + +gUnk_080B5888:: @ 080B5888 + .incbin "baserom.gba", 0x0B5888, 0x0000008 + +gUnk_080B5890:: @ 080B5890 + .incbin "baserom.gba", 0x0B5890, 0x0000008 + +gUnk_080B5898:: @ 080B5898 + .incbin "baserom.gba", 0x0B5898, 0x0000008 + +gUnk_080B58A0:: @ 080B58A0 + .incbin "baserom.gba", 0x0B58A0, 0x0000008 + +gUnk_080B58A8:: @ 080B58A8 + .incbin "baserom.gba", 0x0B58A8, 0x0000008 + +gUnk_080B58B0:: @ 080B58B0 + .incbin "baserom.gba", 0x0B58B0, 0x0000008 + +gUnk_080B58B8:: @ 080B58B8 + .incbin "baserom.gba", 0x0B58B8, 0x0000008 + +gUnk_080B58C0:: @ 080B58C0 + .incbin "baserom.gba", 0x0B58C0, 0x0000008 + +gUnk_080B58C8:: @ 080B58C8 + .incbin "baserom.gba", 0x0B58C8, 0x0000008 + +gUnk_080B58D0:: @ 080B58D0 + .incbin "baserom.gba", 0x0B58D0, 0x0000008 + +gUnk_080B58D8:: @ 080B58D8 + .incbin "baserom.gba", 0x0B58D8, 0x0000008 + +gUnk_080B58E0:: @ 080B58E0 + .incbin "baserom.gba", 0x0B58E0, 0x0000008 + +gUnk_080B58E8:: @ 080B58E8 + .incbin "baserom.gba", 0x0B58E8, 0x0000008 + +gUnk_080B58F0:: @ 080B58F0 + .incbin "baserom.gba", 0x0B58F0, 0x0000088 + +gUnk_080B5978:: @ 080B5978 + .incbin "baserom.gba", 0x0B5978, 0x0000008 + +gUnk_080B5980:: @ 080B5980 + .incbin "baserom.gba", 0x0B5980, 0x0000008 + +gUnk_080B5988:: @ 080B5988 + .incbin "baserom.gba", 0x0B5988, 0x0000008 + +gUnk_080B5990:: @ 080B5990 + .incbin "baserom.gba", 0x0B5990, 0x0000008 + +gUnk_080B5998:: @ 080B5998 + .incbin "baserom.gba", 0x0B5998, 0x0000028 + +gUnk_080B59C0:: @ 080B59C0 + .incbin "baserom.gba", 0x0B59C0, 0x0000008 + +gUnk_080B59C8:: @ 080B59C8 + .incbin "baserom.gba", 0x0B59C8, 0x0000008 + +gUnk_080B59D0:: @ 080B59D0 + .incbin "baserom.gba", 0x0B59D0, 0x0000008 + +gUnk_080B59D8:: @ 080B59D8 + .incbin "baserom.gba", 0x0B59D8, 0x0000008 + +gUnk_080B59E0:: @ 080B59E0 + .incbin "baserom.gba", 0x0B59E0, 0x0000028 + +gUnk_080B5A08:: @ 080B5A08 + .incbin "baserom.gba", 0x0B5A08, 0x0000008 + +gUnk_080B5A10:: @ 080B5A10 + .incbin "baserom.gba", 0x0B5A10, 0x0000008 + +gUnk_080B5A18:: @ 080B5A18 + .incbin "baserom.gba", 0x0B5A18, 0x0000008 + +gUnk_080B5A20:: @ 080B5A20 + .incbin "baserom.gba", 0x0B5A20, 0x0000008 + +gUnk_080B5A28:: @ 080B5A28 + .incbin "baserom.gba", 0x0B5A28, 0x0000028 + +gUnk_080B5A50:: @ 080B5A50 + .incbin "baserom.gba", 0x0B5A50, 0x0000008 + +gUnk_080B5A58:: @ 080B5A58 + .incbin "baserom.gba", 0x0B5A58, 0x0000008 + +gUnk_080B5A60:: @ 080B5A60 + .incbin "baserom.gba", 0x0B5A60, 0x0000008 + +gUnk_080B5A68:: @ 080B5A68 + .incbin "baserom.gba", 0x0B5A68, 0x0000008 + +gUnk_080B5A70:: @ 080B5A70 + .incbin "baserom.gba", 0x0B5A70, 0x0000028 + +gUnk_080B5A98:: @ 080B5A98 + .incbin "baserom.gba", 0x0B5A98, 0x0000008 + +gUnk_080B5AA0:: @ 080B5AA0 + .incbin "baserom.gba", 0x0B5AA0, 0x0000008 + +gUnk_080B5AA8:: @ 080B5AA8 + .incbin "baserom.gba", 0x0B5AA8, 0x0000008 + +gUnk_080B5AB0:: @ 080B5AB0 + .incbin "baserom.gba", 0x0B5AB0, 0x0000008 + +gUnk_080B5AB8:: @ 080B5AB8 + .incbin "baserom.gba", 0x0B5AB8, 0x0000028 + +gUnk_080B5AE0:: @ 080B5AE0 + .incbin "baserom.gba", 0x0B5AE0, 0x0000010 + +gUnk_080B5AF0:: @ 080B5AF0 + .incbin "baserom.gba", 0x0B5AF0, 0x0000010 + +gUnk_080B5B00:: @ 080B5B00 + .incbin "baserom.gba", 0x0B5B00, 0x0000010 + +gUnk_080B5B10:: @ 080B5B10 + .incbin "baserom.gba", 0x0B5B10, 0x0000010 + +gUnk_080B5B20:: @ 080B5B20 + .incbin "baserom.gba", 0x0B5B20, 0x0000028 + +gUnk_080B5B48:: @ 080B5B48 + .incbin "baserom.gba", 0x0B5B48, 0x0000008 + +gUnk_080B5B50:: @ 080B5B50 + .incbin "baserom.gba", 0x0B5B50, 0x0000008 + +gUnk_080B5B58:: @ 080B5B58 + .incbin "baserom.gba", 0x0B5B58, 0x0000008 + +gUnk_080B5B60:: @ 080B5B60 + .incbin "baserom.gba", 0x0B5B60, 0x0000008 + +gUnk_080B5B68:: @ 080B5B68 + .incbin "baserom.gba", 0x0B5B68, 0x0000028 + +gUnk_080B5B90:: @ 080B5B90 + .incbin "baserom.gba", 0x0B5B90, 0x0000008 + +gUnk_080B5B98:: @ 080B5B98 + .incbin "baserom.gba", 0x0B5B98, 0x0000008 + +gUnk_080B5BA0:: @ 080B5BA0 + .incbin "baserom.gba", 0x0B5BA0, 0x0000008 + +gUnk_080B5BA8:: @ 080B5BA8 + .incbin "baserom.gba", 0x0B5BA8, 0x0000008 + +gUnk_080B5BB0:: @ 080B5BB0 + .incbin "baserom.gba", 0x0B5BB0, 0x0000028 + +gUnk_080B5BD8:: @ 080B5BD8 + .incbin "baserom.gba", 0x0B5BD8, 0x0000008 + +gUnk_080B5BE0:: @ 080B5BE0 + .incbin "baserom.gba", 0x0B5BE0, 0x0000008 + +gUnk_080B5BE8:: @ 080B5BE8 + .incbin "baserom.gba", 0x0B5BE8, 0x0000008 + +gUnk_080B5BF0:: @ 080B5BF0 + .incbin "baserom.gba", 0x0B5BF0, 0x0000008 + +gUnk_080B5BF8:: @ 080B5BF8 + .incbin "baserom.gba", 0x0B5BF8, 0x0000008 + +gUnk_080B5C00:: @ 080B5C00 + .incbin "baserom.gba", 0x0B5C00, 0x0000008 + +gUnk_080B5C08:: @ 080B5C08 + .incbin "baserom.gba", 0x0B5C08, 0x0000008 + +gUnk_080B5C10:: @ 080B5C10 + .incbin "baserom.gba", 0x0B5C10, 0x0000008 + +gUnk_080B5C18:: @ 080B5C18 + .incbin "baserom.gba", 0x0B5C18, 0x0000008 + +gUnk_080B5C20:: @ 080B5C20 + .incbin "baserom.gba", 0x0B5C20, 0x0000008 + +gUnk_080B5C28:: @ 080B5C28 + .incbin "baserom.gba", 0x0B5C28, 0x0000008 + +gUnk_080B5C30:: @ 080B5C30 + .incbin "baserom.gba", 0x0B5C30, 0x0000008 + +gUnk_080B5C38:: @ 080B5C38 + .incbin "baserom.gba", 0x0B5C38, 0x0000008 + +gUnk_080B5C40:: @ 080B5C40 + .incbin "baserom.gba", 0x0B5C40, 0x0000008 + +gUnk_080B5C48:: @ 080B5C48 + .incbin "baserom.gba", 0x0B5C48, 0x0000008 + +gUnk_080B5C50:: @ 080B5C50 + .incbin "baserom.gba", 0x0B5C50, 0x0000008 + +gUnk_080B5C58:: @ 080B5C58 + .incbin "baserom.gba", 0x0B5C58, 0x0000088 + +gUnk_080B5CE0:: @ 080B5CE0 + .incbin "baserom.gba", 0x0B5CE0, 0x0000018 + +gUnk_080B5CF8:: @ 080B5CF8 + .incbin "baserom.gba", 0x0B5CF8, 0x0000018 + +gUnk_080B5D10:: @ 080B5D10 + .incbin "baserom.gba", 0x0B5D10, 0x0000018 + +gUnk_080B5D28:: @ 080B5D28 + .incbin "baserom.gba", 0x0B5D28, 0x0000018 + +gUnk_080B5D40:: @ 080B5D40 + .incbin "baserom.gba", 0x0B5D40, 0x0000028 + +gUnk_080B5D68:: @ 080B5D68 + .incbin "baserom.gba", 0x0B5D68, 0x0000010 + +gUnk_080B5D78:: @ 080B5D78 + .incbin "baserom.gba", 0x0B5D78, 0x0000010 + +gUnk_080B5D88:: @ 080B5D88 + .incbin "baserom.gba", 0x0B5D88, 0x0000010 + +gUnk_080B5D98:: @ 080B5D98 + .incbin "baserom.gba", 0x0B5D98, 0x0000010 + +gUnk_080B5DA8:: @ 080B5DA8 + .incbin "baserom.gba", 0x0B5DA8, 0x0000028 + +gUnk_080B5DD0:: @ 080B5DD0 + .incbin "baserom.gba", 0x0B5DD0, 0x0000008 + +gUnk_080B5DD8:: @ 080B5DD8 + .incbin "baserom.gba", 0x0B5DD8, 0x0000008 + +gUnk_080B5DE0:: @ 080B5DE0 + .incbin "baserom.gba", 0x0B5DE0, 0x0000008 + +gUnk_080B5DE8:: @ 080B5DE8 + .incbin "baserom.gba", 0x0B5DE8, 0x0000008 + +gUnk_080B5DF0:: @ 080B5DF0 + .incbin "baserom.gba", 0x0B5DF0, 0x0000028 + +gUnk_080B5E18:: @ 080B5E18 + .incbin "baserom.gba", 0x0B5E18, 0x0000008 + +gUnk_080B5E20:: @ 080B5E20 + .incbin "baserom.gba", 0x0B5E20, 0x0000008 + +gUnk_080B5E28:: @ 080B5E28 + .incbin "baserom.gba", 0x0B5E28, 0x0000008 + +gUnk_080B5E30:: @ 080B5E30 + .incbin "baserom.gba", 0x0B5E30, 0x0000008 + +gUnk_080B5E38:: @ 080B5E38 + .incbin "baserom.gba", 0x0B5E38, 0x0000028 + +gUnk_080B5E60:: @ 080B5E60 + .incbin "baserom.gba", 0x0B5E60, 0x0000008 + +gUnk_080B5E68:: @ 080B5E68 + .incbin "baserom.gba", 0x0B5E68, 0x0000008 + +gUnk_080B5E70:: @ 080B5E70 + .incbin "baserom.gba", 0x0B5E70, 0x0000008 + +gUnk_080B5E78:: @ 080B5E78 + .incbin "baserom.gba", 0x0B5E78, 0x0000008 + +gUnk_080B5E80:: @ 080B5E80 + .incbin "baserom.gba", 0x0B5E80, 0x0000008 + +gUnk_080B5E88:: @ 080B5E88 + .incbin "baserom.gba", 0x0B5E88, 0x0000030 + +gUnk_080B5EB8:: @ 080B5EB8 + .incbin "baserom.gba", 0x0B5EB8, 0x0000008 + +gUnk_080B5EC0:: @ 080B5EC0 + .incbin "baserom.gba", 0x0B5EC0, 0x0000008 + +gUnk_080B5EC8:: @ 080B5EC8 + .incbin "baserom.gba", 0x0B5EC8, 0x0000008 + +gUnk_080B5ED0:: @ 080B5ED0 + .incbin "baserom.gba", 0x0B5ED0, 0x0000008 + +gUnk_080B5ED8:: @ 080B5ED8 + .incbin "baserom.gba", 0x0B5ED8, 0x0000028 + +gUnk_080B5F00:: @ 080B5F00 + .incbin "baserom.gba", 0x0B5F00, 0x0000008 + +gUnk_080B5F08:: @ 080B5F08 + .incbin "baserom.gba", 0x0B5F08, 0x0000008 + +gUnk_080B5F10:: @ 080B5F10 + .incbin "baserom.gba", 0x0B5F10, 0x0000008 + +gUnk_080B5F18:: @ 080B5F18 + .incbin "baserom.gba", 0x0B5F18, 0x0000008 + +gUnk_080B5F20:: @ 080B5F20 + .incbin "baserom.gba", 0x0B5F20, 0x0000008 + +gUnk_080B5F28:: @ 080B5F28 + .incbin "baserom.gba", 0x0B5F28, 0x0000030 + +gUnk_080B5F58:: @ 080B5F58 + .incbin "baserom.gba", 0x0B5F58, 0x0000008 + +gUnk_080B5F60:: @ 080B5F60 + .incbin "baserom.gba", 0x0B5F60, 0x0000008 + +gUnk_080B5F68:: @ 080B5F68 + .incbin "baserom.gba", 0x0B5F68, 0x0000008 + +gUnk_080B5F70:: @ 080B5F70 + .incbin "baserom.gba", 0x0B5F70, 0x0000008 + +gUnk_080B5F78:: @ 080B5F78 + .incbin "baserom.gba", 0x0B5F78, 0x0000008 + +gUnk_080B5F80:: @ 080B5F80 + .incbin "baserom.gba", 0x0B5F80, 0x0000030 + +gUnk_080B5FB0:: @ 080B5FB0 + .incbin "baserom.gba", 0x0B5FB0, 0x0000008 + +gUnk_080B5FB8:: @ 080B5FB8 + .incbin "baserom.gba", 0x0B5FB8, 0x0000008 + +gUnk_080B5FC0:: @ 080B5FC0 + .incbin "baserom.gba", 0x0B5FC0, 0x0000008 + +gUnk_080B5FC8:: @ 080B5FC8 + .incbin "baserom.gba", 0x0B5FC8, 0x0000008 + +gUnk_080B5FD0:: @ 080B5FD0 + .incbin "baserom.gba", 0x0B5FD0, 0x0000028 + +gUnk_080B5FF8:: @ 080B5FF8 + .incbin "baserom.gba", 0x0B5FF8, 0x0000008 + +gUnk_080B6000:: @ 080B6000 + .incbin "baserom.gba", 0x0B6000, 0x0000008 + +gUnk_080B6008:: @ 080B6008 + .incbin "baserom.gba", 0x0B6008, 0x0000008 + +gUnk_080B6010:: @ 080B6010 + .incbin "baserom.gba", 0x0B6010, 0x0000008 + +gUnk_080B6018:: @ 080B6018 + .incbin "baserom.gba", 0x0B6018, 0x0000008 + +gUnk_080B6020:: @ 080B6020 + .incbin "baserom.gba", 0x0B6020, 0x0000008 + +gUnk_080B6028:: @ 080B6028 + .incbin "baserom.gba", 0x0B6028, 0x0000008 + +gUnk_080B6030:: @ 080B6030 + .incbin "baserom.gba", 0x0B6030, 0x0000008 + +gUnk_080B6038:: @ 080B6038 + .incbin "baserom.gba", 0x0B6038, 0x0000008 + +gUnk_080B6040:: @ 080B6040 + .incbin "baserom.gba", 0x0B6040, 0x0000008 + +gUnk_080B6048:: @ 080B6048 + .incbin "baserom.gba", 0x0B6048, 0x0000008 + +gUnk_080B6050:: @ 080B6050 + .incbin "baserom.gba", 0x0B6050, 0x0000008 + +gUnk_080B6058:: @ 080B6058 + .incbin "baserom.gba", 0x0B6058, 0x0000008 + +gUnk_080B6060:: @ 080B6060 + .incbin "baserom.gba", 0x0B6060, 0x0000008 + +gUnk_080B6068:: @ 080B6068 + .incbin "baserom.gba", 0x0B6068, 0x0000008 + +gUnk_080B6070:: @ 080B6070 + .incbin "baserom.gba", 0x0B6070, 0x0000008 + +gUnk_080B6078:: @ 080B6078 + .incbin "baserom.gba", 0x0B6078, 0x0000088 + +gUnk_080B6100:: @ 080B6100 + .incbin "baserom.gba", 0x0B6100, 0x0000008 + +gUnk_080B6108:: @ 080B6108 + .incbin "baserom.gba", 0x0B6108, 0x0000008 + +gUnk_080B6110:: @ 080B6110 + .incbin "baserom.gba", 0x0B6110, 0x0000008 + +gUnk_080B6118:: @ 080B6118 + .incbin "baserom.gba", 0x0B6118, 0x0000008 + +gUnk_080B6120:: @ 080B6120 + .incbin "baserom.gba", 0x0B6120, 0x0000028 + +gUnk_080B6148:: @ 080B6148 + .incbin "baserom.gba", 0x0B6148, 0x0000008 + +gUnk_080B6150:: @ 080B6150 + .incbin "baserom.gba", 0x0B6150, 0x0000008 + +gUnk_080B6158:: @ 080B6158 + .incbin "baserom.gba", 0x0B6158, 0x0000008 + +gUnk_080B6160:: @ 080B6160 + .incbin "baserom.gba", 0x0B6160, 0x0000008 + +gUnk_080B6168:: @ 080B6168 + .incbin "baserom.gba", 0x0B6168, 0x0000028 + +gUnk_080B6190:: @ 080B6190 + .incbin "baserom.gba", 0x0B6190, 0x0000008 + +gUnk_080B6198:: @ 080B6198 + .incbin "baserom.gba", 0x0B6198, 0x0000008 + +gUnk_080B61A0:: @ 080B61A0 + .incbin "baserom.gba", 0x0B61A0, 0x0000008 + +gUnk_080B61A8:: @ 080B61A8 + .incbin "baserom.gba", 0x0B61A8, 0x0000008 + +gUnk_080B61B0:: @ 080B61B0 + .incbin "baserom.gba", 0x0B61B0, 0x0000028 + +gUnk_080B61D8:: @ 080B61D8 + .incbin "baserom.gba", 0x0B61D8, 0x0000008 + +gUnk_080B61E0:: @ 080B61E0 + .incbin "baserom.gba", 0x0B61E0, 0x0000008 + +gUnk_080B61E8:: @ 080B61E8 + .incbin "baserom.gba", 0x0B61E8, 0x0000008 + +gUnk_080B61F0:: @ 080B61F0 + .incbin "baserom.gba", 0x0B61F0, 0x0000008 + +gUnk_080B61F8:: @ 080B61F8 + .incbin "baserom.gba", 0x0B61F8, 0x0000028 + +gUnk_080B6220:: @ 080B6220 + .incbin "baserom.gba", 0x0B6220, 0x0000008 + +gUnk_080B6228:: @ 080B6228 + .incbin "baserom.gba", 0x0B6228, 0x0000008 + +gUnk_080B6230:: @ 080B6230 + .incbin "baserom.gba", 0x0B6230, 0x0000008 + +gUnk_080B6238:: @ 080B6238 + .incbin "baserom.gba", 0x0B6238, 0x0000008 + +gUnk_080B6240:: @ 080B6240 + .incbin "baserom.gba", 0x0B6240, 0x0000008 + +gUnk_080B6248:: @ 080B6248 + .incbin "baserom.gba", 0x0B6248, 0x0000008 + +gUnk_080B6250:: @ 080B6250 + .incbin "baserom.gba", 0x0B6250, 0x0000008 + +gUnk_080B6258:: @ 080B6258 + .incbin "baserom.gba", 0x0B6258, 0x0000008 + +gUnk_080B6260:: @ 080B6260 + .incbin "baserom.gba", 0x0B6260, 0x0000008 + +gUnk_080B6268:: @ 080B6268 + .incbin "baserom.gba", 0x0B6268, 0x0000008 + +gUnk_080B6270:: @ 080B6270 + .incbin "baserom.gba", 0x0B6270, 0x0000008 + +gUnk_080B6278:: @ 080B6278 + .incbin "baserom.gba", 0x0B6278, 0x0000008 + +gUnk_080B6280:: @ 080B6280 + .incbin "baserom.gba", 0x0B6280, 0x0000008 + +gUnk_080B6288:: @ 080B6288 + .incbin "baserom.gba", 0x0B6288, 0x0000008 + +gUnk_080B6290:: @ 080B6290 + .incbin "baserom.gba", 0x0B6290, 0x0000008 + +gUnk_080B6298:: @ 080B6298 + .incbin "baserom.gba", 0x0B6298, 0x0000008 + +gUnk_080B62A0:: @ 080B62A0 + .incbin "baserom.gba", 0x0B62A0, 0x0000088 + +gUnk_080B6328:: @ 080B6328 + .incbin "baserom.gba", 0x0B6328, 0x0000008 + +gUnk_080B6330:: @ 080B6330 + .incbin "baserom.gba", 0x0B6330, 0x0000008 + +gUnk_080B6338:: @ 080B6338 + .incbin "baserom.gba", 0x0B6338, 0x0000008 + +gUnk_080B6340:: @ 080B6340 + .incbin "baserom.gba", 0x0B6340, 0x0000008 + +gUnk_080B6348:: @ 080B6348 + .incbin "baserom.gba", 0x0B6348, 0x0000008 + +gUnk_080B6350:: @ 080B6350 + .incbin "baserom.gba", 0x0B6350, 0x0000008 + +gUnk_080B6358:: @ 080B6358 + .incbin "baserom.gba", 0x0B6358, 0x0000008 + +gUnk_080B6360:: @ 080B6360 + .incbin "baserom.gba", 0x0B6360, 0x0000008 + +gUnk_080B6368:: @ 080B6368 + .incbin "baserom.gba", 0x0B6368, 0x0000008 + +gUnk_080B6370:: @ 080B6370 + .incbin "baserom.gba", 0x0B6370, 0x0000008 + +gUnk_080B6378:: @ 080B6378 + .incbin "baserom.gba", 0x0B6378, 0x0000008 + +gUnk_080B6380:: @ 080B6380 + .incbin "baserom.gba", 0x0B6380, 0x0000008 + +gUnk_080B6388:: @ 080B6388 + .incbin "baserom.gba", 0x0B6388, 0x0000008 + +gUnk_080B6390:: @ 080B6390 + .incbin "baserom.gba", 0x0B6390, 0x0000008 + +gUnk_080B6398:: @ 080B6398 + .incbin "baserom.gba", 0x0B6398, 0x0000008 + +gUnk_080B63A0:: @ 080B63A0 + .incbin "baserom.gba", 0x0B63A0, 0x0000008 + +gUnk_080B63A8:: @ 080B63A8 + .incbin "baserom.gba", 0x0B63A8, 0x0000088 + +gUnk_080B6430:: @ 080B6430 + .incbin "baserom.gba", 0x0B6430, 0x0000008 + +gUnk_080B6438:: @ 080B6438 + .incbin "baserom.gba", 0x0B6438, 0x0000008 + +gUnk_080B6440:: @ 080B6440 + .incbin "baserom.gba", 0x0B6440, 0x0000008 + +gUnk_080B6448:: @ 080B6448 + .incbin "baserom.gba", 0x0B6448, 0x0000008 + +gUnk_080B6450:: @ 080B6450 + .incbin "baserom.gba", 0x0B6450, 0x0000028 + +gUnk_080B6478:: @ 080B6478 + .incbin "baserom.gba", 0x0B6478, 0x0000008 + +gUnk_080B6480:: @ 080B6480 + .incbin "baserom.gba", 0x0B6480, 0x0000008 + +gUnk_080B6488:: @ 080B6488 + .incbin "baserom.gba", 0x0B6488, 0x0000008 + +gUnk_080B6490:: @ 080B6490 + .incbin "baserom.gba", 0x0B6490, 0x0000008 + +gUnk_080B6498:: @ 080B6498 + .incbin "baserom.gba", 0x0B6498, 0x0000028 + +gUnk_080B64C0:: @ 080B64C0 + .incbin "baserom.gba", 0x0B64C0, 0x0000008 + +gUnk_080B64C8:: @ 080B64C8 + .incbin "baserom.gba", 0x0B64C8, 0x0000008 + +gUnk_080B64D0:: @ 080B64D0 + .incbin "baserom.gba", 0x0B64D0, 0x0000008 + +gUnk_080B64D8:: @ 080B64D8 + .incbin "baserom.gba", 0x0B64D8, 0x0000008 + +gUnk_080B64E0:: @ 080B64E0 + .incbin "baserom.gba", 0x0B64E0, 0x0000028 + +gUnk_080B6508:: @ 080B6508 + .incbin "baserom.gba", 0x0B6508, 0x0000008 + +gUnk_080B6510:: @ 080B6510 + .incbin "baserom.gba", 0x0B6510, 0x0000008 + +gUnk_080B6518:: @ 080B6518 + .incbin "baserom.gba", 0x0B6518, 0x0000008 + +gUnk_080B6520:: @ 080B6520 + .incbin "baserom.gba", 0x0B6520, 0x0000008 + +gUnk_080B6528:: @ 080B6528 + .incbin "baserom.gba", 0x0B6528, 0x0000028 + +gUnk_080B6550:: @ 080B6550 + .incbin "baserom.gba", 0x0B6550, 0x0000008 + +gUnk_080B6558:: @ 080B6558 + .incbin "baserom.gba", 0x0B6558, 0x0000008 + +gUnk_080B6560:: @ 080B6560 + .incbin "baserom.gba", 0x0B6560, 0x0000008 + +gUnk_080B6568:: @ 080B6568 + .incbin "baserom.gba", 0x0B6568, 0x0000008 + +gUnk_080B6570:: @ 080B6570 + .incbin "baserom.gba", 0x0B6570, 0x0000028 + +gUnk_080B6598:: @ 080B6598 + .incbin "baserom.gba", 0x0B6598, 0x0000008 + +gUnk_080B65A0:: @ 080B65A0 + .incbin "baserom.gba", 0x0B65A0, 0x0000008 + +gUnk_080B65A8:: @ 080B65A8 + .incbin "baserom.gba", 0x0B65A8, 0x0000008 + +gUnk_080B65B0:: @ 080B65B0 + .incbin "baserom.gba", 0x0B65B0, 0x0000008 + +gUnk_080B65B8:: @ 080B65B8 + .incbin "baserom.gba", 0x0B65B8, 0x0000008 + +gUnk_080B65C0:: @ 080B65C0 + .incbin "baserom.gba", 0x0B65C0, 0x0000008 + +gUnk_080B65C8:: @ 080B65C8 + .incbin "baserom.gba", 0x0B65C8, 0x0000008 + +gUnk_080B65D0:: @ 080B65D0 + .incbin "baserom.gba", 0x0B65D0, 0x0000008 + +gUnk_080B65D8:: @ 080B65D8 + .incbin "baserom.gba", 0x0B65D8, 0x0000008 + +gUnk_080B65E0:: @ 080B65E0 + .incbin "baserom.gba", 0x0B65E0, 0x0000008 + +gUnk_080B65E8:: @ 080B65E8 + .incbin "baserom.gba", 0x0B65E8, 0x0000008 + +gUnk_080B65F0:: @ 080B65F0 + .incbin "baserom.gba", 0x0B65F0, 0x0000008 + +gUnk_080B65F8:: @ 080B65F8 + .incbin "baserom.gba", 0x0B65F8, 0x0000008 + +gUnk_080B6600:: @ 080B6600 + .incbin "baserom.gba", 0x0B6600, 0x0000008 + +gUnk_080B6608:: @ 080B6608 + .incbin "baserom.gba", 0x0B6608, 0x0000008 + +gUnk_080B6610:: @ 080B6610 + .incbin "baserom.gba", 0x0B6610, 0x0000008 + +gUnk_080B6618:: @ 080B6618 + .incbin "baserom.gba", 0x0B6618, 0x0000088 + +gUnk_080B66A0:: @ 080B66A0 + .incbin "baserom.gba", 0x0B66A0, 0x0000008 + +gUnk_080B66A8:: @ 080B66A8 + .incbin "baserom.gba", 0x0B66A8, 0x0000008 + +gUnk_080B66B0:: @ 080B66B0 + .incbin "baserom.gba", 0x0B66B0, 0x0000008 + +gUnk_080B66B8:: @ 080B66B8 + .incbin "baserom.gba", 0x0B66B8, 0x0000008 + +gUnk_080B66C0:: @ 080B66C0 + .incbin "baserom.gba", 0x0B66C0, 0x0000008 + +gUnk_080B66C8:: @ 080B66C8 + .incbin "baserom.gba", 0x0B66C8, 0x0000008 + +gUnk_080B66D0:: @ 080B66D0 + .incbin "baserom.gba", 0x0B66D0, 0x0000008 + +gUnk_080B66D8:: @ 080B66D8 + .incbin "baserom.gba", 0x0B66D8, 0x0000008 + +gUnk_080B66E0:: @ 080B66E0 + .incbin "baserom.gba", 0x0B66E0, 0x0000008 + +gUnk_080B66E8:: @ 080B66E8 + .incbin "baserom.gba", 0x0B66E8, 0x0000008 + +gUnk_080B66F0:: @ 080B66F0 + .incbin "baserom.gba", 0x0B66F0, 0x0000008 + +gUnk_080B66F8:: @ 080B66F8 + .incbin "baserom.gba", 0x0B66F8, 0x0000008 + +gUnk_080B6700:: @ 080B6700 + .incbin "baserom.gba", 0x0B6700, 0x0000008 + +gUnk_080B6708:: @ 080B6708 + .incbin "baserom.gba", 0x0B6708, 0x0000008 + +gUnk_080B6710:: @ 080B6710 + .incbin "baserom.gba", 0x0B6710, 0x0000008 + +gUnk_080B6718:: @ 080B6718 + .incbin "baserom.gba", 0x0B6718, 0x0000008 + +gUnk_080B6720:: @ 080B6720 + .incbin "baserom.gba", 0x0B6720, 0x0000088 + +gUnk_080B67A8:: @ 080B67A8 + .incbin "baserom.gba", 0x0B67A8, 0x0000008 + +gUnk_080B67B0:: @ 080B67B0 + .incbin "baserom.gba", 0x0B67B0, 0x0000008 + +gUnk_080B67B8:: @ 080B67B8 + .incbin "baserom.gba", 0x0B67B8, 0x0000008 + +gUnk_080B67C0:: @ 080B67C0 + .incbin "baserom.gba", 0x0B67C0, 0x0000008 + +gUnk_080B67C8:: @ 080B67C8 + .incbin "baserom.gba", 0x0B67C8, 0x0000028 + +gUnk_080B67F0:: @ 080B67F0 + .incbin "baserom.gba", 0x0B67F0, 0x0000008 + +gUnk_080B67F8:: @ 080B67F8 + .incbin "baserom.gba", 0x0B67F8, 0x0000008 + +gUnk_080B6800:: @ 080B6800 + .incbin "baserom.gba", 0x0B6800, 0x0000008 + +gUnk_080B6808:: @ 080B6808 + .incbin "baserom.gba", 0x0B6808, 0x0000008 + +gUnk_080B6810:: @ 080B6810 + .incbin "baserom.gba", 0x0B6810, 0x0000028 + +gUnk_080B6838:: @ 080B6838 + .incbin "baserom.gba", 0x0B6838, 0x0000008 + +gUnk_080B6840:: @ 080B6840 + .incbin "baserom.gba", 0x0B6840, 0x0000008 + +gUnk_080B6848:: @ 080B6848 + .incbin "baserom.gba", 0x0B6848, 0x0000008 + +gUnk_080B6850:: @ 080B6850 + .incbin "baserom.gba", 0x0B6850, 0x0000008 + +gUnk_080B6858:: @ 080B6858 + .incbin "baserom.gba", 0x0B6858, 0x0000028 + +gUnk_080B6880:: @ 080B6880 + .incbin "baserom.gba", 0x0B6880, 0x0000008 + +gUnk_080B6888:: @ 080B6888 + .incbin "baserom.gba", 0x0B6888, 0x0000008 + +gUnk_080B6890:: @ 080B6890 + .incbin "baserom.gba", 0x0B6890, 0x0000008 + +gUnk_080B6898:: @ 080B6898 + .incbin "baserom.gba", 0x0B6898, 0x0000008 + +gUnk_080B68A0:: @ 080B68A0 + .incbin "baserom.gba", 0x0B68A0, 0x0000028 + +gUnk_080B68C8:: @ 080B68C8 + .incbin "baserom.gba", 0x0B68C8, 0x0000008 + +gUnk_080B68D0:: @ 080B68D0 + .incbin "baserom.gba", 0x0B68D0, 0x0000008 + +gUnk_080B68D8:: @ 080B68D8 + .incbin "baserom.gba", 0x0B68D8, 0x0000008 + +gUnk_080B68E0:: @ 080B68E0 + .incbin "baserom.gba", 0x0B68E0, 0x0000008 + +gUnk_080B68E8:: @ 080B68E8 + .incbin "baserom.gba", 0x0B68E8, 0x0000028 + +gUnk_080B6910:: @ 080B6910 + .incbin "baserom.gba", 0x0B6910, 0x0000008 + +gUnk_080B6918:: @ 080B6918 + .incbin "baserom.gba", 0x0B6918, 0x0000008 + +gUnk_080B6920:: @ 080B6920 + .incbin "baserom.gba", 0x0B6920, 0x0000008 + +gUnk_080B6928:: @ 080B6928 + .incbin "baserom.gba", 0x0B6928, 0x0000008 + +gUnk_080B6930:: @ 080B6930 + .incbin "baserom.gba", 0x0B6930, 0x0000008 + +gUnk_080B6938:: @ 080B6938 + .incbin "baserom.gba", 0x0B6938, 0x0000048 + +gUnk_080B6980:: @ 080B6980 + .incbin "baserom.gba", 0x0B6980, 0x0000008 + +gUnk_080B6988:: @ 080B6988 + .incbin "baserom.gba", 0x0B6988, 0x0000008 + +gUnk_080B6990:: @ 080B6990 + .incbin "baserom.gba", 0x0B6990, 0x0000008 + +gUnk_080B6998:: @ 080B6998 + .incbin "baserom.gba", 0x0B6998, 0x0000008 + +gUnk_080B69A0:: @ 080B69A0 + .incbin "baserom.gba", 0x0B69A0, 0x0000008 + +gUnk_080B69A8:: @ 080B69A8 + .incbin "baserom.gba", 0x0B69A8, 0x0000008 + +gUnk_080B69B0:: @ 080B69B0 + .incbin "baserom.gba", 0x0B69B0, 0x0000008 + +gUnk_080B69B8:: @ 080B69B8 + .incbin "baserom.gba", 0x0B69B8, 0x0000008 + +gUnk_080B69C0:: @ 080B69C0 + .incbin "baserom.gba", 0x0B69C0, 0x0000008 + +gUnk_080B69C8:: @ 080B69C8 + .incbin "baserom.gba", 0x0B69C8, 0x0000008 + +gUnk_080B69D0:: @ 080B69D0 + .incbin "baserom.gba", 0x0B69D0, 0x0000008 + +gUnk_080B69D8:: @ 080B69D8 + .incbin "baserom.gba", 0x0B69D8, 0x0000008 + +gUnk_080B69E0:: @ 080B69E0 + .incbin "baserom.gba", 0x0B69E0, 0x0000008 + +gUnk_080B69E8:: @ 080B69E8 + .incbin "baserom.gba", 0x0B69E8, 0x0000008 + +gUnk_080B69F0:: @ 080B69F0 + .incbin "baserom.gba", 0x0B69F0, 0x0000008 + +gUnk_080B69F8:: @ 080B69F8 + .incbin "baserom.gba", 0x0B69F8, 0x0000008 + +gUnk_080B6A00:: @ 080B6A00 + .incbin "baserom.gba", 0x0B6A00, 0x0000088 + +gUnk_080B6A88:: @ 080B6A88 + .incbin "baserom.gba", 0x0B6A88, 0x0000008 + +gUnk_080B6A90:: @ 080B6A90 + .incbin "baserom.gba", 0x0B6A90, 0x0000008 + +gUnk_080B6A98:: @ 080B6A98 + .incbin "baserom.gba", 0x0B6A98, 0x0000008 + +gUnk_080B6AA0:: @ 080B6AA0 + .incbin "baserom.gba", 0x0B6AA0, 0x0000008 + +gUnk_080B6AA8:: @ 080B6AA8 + .incbin "baserom.gba", 0x0B6AA8, 0x0000008 + +gUnk_080B6AB0:: @ 080B6AB0 + .incbin "baserom.gba", 0x0B6AB0, 0x0000008 + +gUnk_080B6AB8:: @ 080B6AB8 + .incbin "baserom.gba", 0x0B6AB8, 0x0000008 + +gUnk_080B6AC0:: @ 080B6AC0 + .incbin "baserom.gba", 0x0B6AC0, 0x0000008 + +gUnk_080B6AC8:: @ 080B6AC8 + .incbin "baserom.gba", 0x0B6AC8, 0x0000008 + +gUnk_080B6AD0:: @ 080B6AD0 + .incbin "baserom.gba", 0x0B6AD0, 0x0000008 + +gUnk_080B6AD8:: @ 080B6AD8 + .incbin "baserom.gba", 0x0B6AD8, 0x0000008 + +gUnk_080B6AE0:: @ 080B6AE0 + .incbin "baserom.gba", 0x0B6AE0, 0x0000008 + +gUnk_080B6AE8:: @ 080B6AE8 + .incbin "baserom.gba", 0x0B6AE8, 0x0000008 + +gUnk_080B6AF0:: @ 080B6AF0 + .incbin "baserom.gba", 0x0B6AF0, 0x0000008 + +gUnk_080B6AF8:: @ 080B6AF8 + .incbin "baserom.gba", 0x0B6AF8, 0x0000008 + +gUnk_080B6B00:: @ 080B6B00 + .incbin "baserom.gba", 0x0B6B00, 0x0000008 + +gUnk_080B6B08:: @ 080B6B08 + .incbin "baserom.gba", 0x0B6B08, 0x0000088 + +gUnk_080B6B90:: @ 080B6B90 + .incbin "baserom.gba", 0x0B6B90, 0x0000008 + +gUnk_080B6B98:: @ 080B6B98 + .incbin "baserom.gba", 0x0B6B98, 0x0000008 + +gUnk_080B6BA0:: @ 080B6BA0 + .incbin "baserom.gba", 0x0B6BA0, 0x0000008 + +gUnk_080B6BA8:: @ 080B6BA8 + .incbin "baserom.gba", 0x0B6BA8, 0x0000008 + +gUnk_080B6BB0:: @ 080B6BB0 + .incbin "baserom.gba", 0x0B6BB0, 0x0000028 + +gUnk_080B6BD8:: @ 080B6BD8 + .incbin "baserom.gba", 0x0B6BD8, 0x0000008 + +gUnk_080B6BE0:: @ 080B6BE0 + .incbin "baserom.gba", 0x0B6BE0, 0x0000008 + +gUnk_080B6BE8:: @ 080B6BE8 + .incbin "baserom.gba", 0x0B6BE8, 0x0000008 + +gUnk_080B6BF0:: @ 080B6BF0 + .incbin "baserom.gba", 0x0B6BF0, 0x0000008 + +gUnk_080B6BF8:: @ 080B6BF8 + .incbin "baserom.gba", 0x0B6BF8, 0x0000028 + +gUnk_080B6C20:: @ 080B6C20 + .incbin "baserom.gba", 0x0B6C20, 0x0000008 + +gUnk_080B6C28:: @ 080B6C28 + .incbin "baserom.gba", 0x0B6C28, 0x0000008 + +gUnk_080B6C30:: @ 080B6C30 + .incbin "baserom.gba", 0x0B6C30, 0x0000008 + +gUnk_080B6C38:: @ 080B6C38 + .incbin "baserom.gba", 0x0B6C38, 0x0000008 + +gUnk_080B6C40:: @ 080B6C40 + .incbin "baserom.gba", 0x0B6C40, 0x0000008 + +gUnk_080B6C48:: @ 080B6C48 + .incbin "baserom.gba", 0x0B6C48, 0x0000008 + +gUnk_080B6C50:: @ 080B6C50 + .incbin "baserom.gba", 0x0B6C50, 0x0000008 + +gUnk_080B6C58:: @ 080B6C58 + .incbin "baserom.gba", 0x0B6C58, 0x0000040 + +gUnk_080B6C98:: @ 080B6C98 + .incbin "baserom.gba", 0x0B6C98, 0x0000008 + +gUnk_080B6CA0:: @ 080B6CA0 + .incbin "baserom.gba", 0x0B6CA0, 0x0000008 + +gUnk_080B6CA8:: @ 080B6CA8 + .incbin "baserom.gba", 0x0B6CA8, 0x0000008 + +gUnk_080B6CB0:: @ 080B6CB0 + .incbin "baserom.gba", 0x0B6CB0, 0x0000008 + +gUnk_080B6CB8:: @ 080B6CB8 + .incbin "baserom.gba", 0x0B6CB8, 0x0000028 + +gUnk_080B6CE0:: @ 080B6CE0 + .incbin "baserom.gba", 0x0B6CE0, 0x0000008 + +gUnk_080B6CE8:: @ 080B6CE8 + .incbin "baserom.gba", 0x0B6CE8, 0x0000008 + +gUnk_080B6CF0:: @ 080B6CF0 + .incbin "baserom.gba", 0x0B6CF0, 0x0000008 + +gUnk_080B6CF8:: @ 080B6CF8 + .incbin "baserom.gba", 0x0B6CF8, 0x0000008 + +gUnk_080B6D00:: @ 080B6D00 + .incbin "baserom.gba", 0x0B6D00, 0x0000028 + +gUnk_080B6D28:: @ 080B6D28 + .incbin "baserom.gba", 0x0B6D28, 0x0000008 + +gUnk_080B6D30:: @ 080B6D30 + .incbin "baserom.gba", 0x0B6D30, 0x0000008 + +gUnk_080B6D38:: @ 080B6D38 + .incbin "baserom.gba", 0x0B6D38, 0x0000008 + +gUnk_080B6D40:: @ 080B6D40 + .incbin "baserom.gba", 0x0B6D40, 0x0000008 + +gUnk_080B6D48:: @ 080B6D48 + .incbin "baserom.gba", 0x0B6D48, 0x0000008 + +gUnk_080B6D50:: @ 080B6D50 + .incbin "baserom.gba", 0x0B6D50, 0x0000008 + +gUnk_080B6D58:: @ 080B6D58 + .incbin "baserom.gba", 0x0B6D58, 0x0000008 + +gUnk_080B6D60:: @ 080B6D60 + .incbin "baserom.gba", 0x0B6D60, 0x0000008 + +gUnk_080B6D68:: @ 080B6D68 + .incbin "baserom.gba", 0x0B6D68, 0x0000008 + +gUnk_080B6D70:: @ 080B6D70 + .incbin "baserom.gba", 0x0B6D70, 0x0000008 + +gUnk_080B6D78:: @ 080B6D78 + .incbin "baserom.gba", 0x0B6D78, 0x0000008 + +gUnk_080B6D80:: @ 080B6D80 + .incbin "baserom.gba", 0x0B6D80, 0x0000008 + +gUnk_080B6D88:: @ 080B6D88 + .incbin "baserom.gba", 0x0B6D88, 0x0000008 + +gUnk_080B6D90:: @ 080B6D90 + .incbin "baserom.gba", 0x0B6D90, 0x0000008 + +gUnk_080B6D98:: @ 080B6D98 + .incbin "baserom.gba", 0x0B6D98, 0x0000008 + +gUnk_080B6DA0:: @ 080B6DA0 + .incbin "baserom.gba", 0x0B6DA0, 0x0000008 + +gUnk_080B6DA8:: @ 080B6DA8 + .incbin "baserom.gba", 0x0B6DA8, 0x00000B8 + +gUnk_080B6E60:: @ 080B6E60 + .incbin "baserom.gba", 0x0B6E60, 0x0000048 + +gUnk_080B6EA8:: @ 080B6EA8 + .incbin "baserom.gba", 0x0B6EA8, 0x0000008 + +gUnk_080B6EB0:: @ 080B6EB0 + .incbin "baserom.gba", 0x0B6EB0, 0x0000008 + +gUnk_080B6EB8:: @ 080B6EB8 + .incbin "baserom.gba", 0x0B6EB8, 0x0000008 + +gUnk_080B6EC0:: @ 080B6EC0 + .incbin "baserom.gba", 0x0B6EC0, 0x0000008 + +gUnk_080B6EC8:: @ 080B6EC8 + .incbin "baserom.gba", 0x0B6EC8, 0x0000008 + +gUnk_080B6ED0:: @ 080B6ED0 + .incbin "baserom.gba", 0x0B6ED0, 0x0000008 + +gUnk_080B6ED8:: @ 080B6ED8 + .incbin "baserom.gba", 0x0B6ED8, 0x0000008 + +gUnk_080B6EE0:: @ 080B6EE0 + .incbin "baserom.gba", 0x0B6EE0, 0x0000008 + +gUnk_080B6EE8:: @ 080B6EE8 + .incbin "baserom.gba", 0x0B6EE8, 0x0000008 + +gUnk_080B6EF0:: @ 080B6EF0 + .incbin "baserom.gba", 0x0B6EF0, 0x0000008 + +gUnk_080B6EF8:: @ 080B6EF8 + .incbin "baserom.gba", 0x0B6EF8, 0x0000008 + +gUnk_080B6F00:: @ 080B6F00 + .incbin "baserom.gba", 0x0B6F00, 0x0000008 + +gUnk_080B6F08:: @ 080B6F08 + .incbin "baserom.gba", 0x0B6F08, 0x0000008 + +gUnk_080B6F10:: @ 080B6F10 + .incbin "baserom.gba", 0x0B6F10, 0x0000008 + +gUnk_080B6F18:: @ 080B6F18 + .incbin "baserom.gba", 0x0B6F18, 0x0000008 + +gUnk_080B6F20:: @ 080B6F20 + .incbin "baserom.gba", 0x0B6F20, 0x0000008 + +gUnk_080B6F28:: @ 080B6F28 + .incbin "baserom.gba", 0x0B6F28, 0x0000088 + +gUnk_080B6FB0:: @ 080B6FB0 + .incbin "baserom.gba", 0x0B6FB0, 0x0000008 + +gUnk_080B6FB8:: @ 080B6FB8 + .incbin "baserom.gba", 0x0B6FB8, 0x0000008 + +gUnk_080B6FC0:: @ 080B6FC0 + .incbin "baserom.gba", 0x0B6FC0, 0x0000008 + +gUnk_080B6FC8:: @ 080B6FC8 + .incbin "baserom.gba", 0x0B6FC8, 0x0000008 + +gUnk_080B6FD0:: @ 080B6FD0 + .incbin "baserom.gba", 0x0B6FD0, 0x0000008 + +gUnk_080B6FD8:: @ 080B6FD8 + .incbin "baserom.gba", 0x0B6FD8, 0x0000008 + +gUnk_080B6FE0:: @ 080B6FE0 + .incbin "baserom.gba", 0x0B6FE0, 0x0000008 + +gUnk_080B6FE8:: @ 080B6FE8 + .incbin "baserom.gba", 0x0B6FE8, 0x0000008 + +gUnk_080B6FF0:: @ 080B6FF0 + .incbin "baserom.gba", 0x0B6FF0, 0x0000078 + +gUnk_080B7068:: @ 080B7068 + .incbin "baserom.gba", 0x0B7068, 0x0000008 + +gUnk_080B7070:: @ 080B7070 + .incbin "baserom.gba", 0x0B7070, 0x0000008 + +gUnk_080B7078:: @ 080B7078 + .incbin "baserom.gba", 0x0B7078, 0x0000008 + +gUnk_080B7080:: @ 080B7080 + .incbin "baserom.gba", 0x0B7080, 0x0000008 + +gUnk_080B7088:: @ 080B7088 + .incbin "baserom.gba", 0x0B7088, 0x0000008 + +gUnk_080B7090:: @ 080B7090 + .incbin "baserom.gba", 0x0B7090, 0x0000008 + +gUnk_080B7098:: @ 080B7098 + .incbin "baserom.gba", 0x0B7098, 0x0000008 + +gUnk_080B70A0:: @ 080B70A0 + .incbin "baserom.gba", 0x0B70A0, 0x0000008 + +gUnk_080B70A8:: @ 080B70A8 + .incbin "baserom.gba", 0x0B70A8, 0x0000008 + +gUnk_080B70B0:: @ 080B70B0 + .incbin "baserom.gba", 0x0B70B0, 0x0000008 + +gUnk_080B70B8:: @ 080B70B8 + .incbin "baserom.gba", 0x0B70B8, 0x0000008 + +gUnk_080B70C0:: @ 080B70C0 + .incbin "baserom.gba", 0x0B70C0, 0x0000008 + +gUnk_080B70C8:: @ 080B70C8 + .incbin "baserom.gba", 0x0B70C8, 0x0000008 + +gUnk_080B70D0:: @ 080B70D0 + .incbin "baserom.gba", 0x0B70D0, 0x0000008 + +gUnk_080B70D8:: @ 080B70D8 + .incbin "baserom.gba", 0x0B70D8, 0x0000008 + +gUnk_080B70E0:: @ 080B70E0 + .incbin "baserom.gba", 0x0B70E0, 0x0000008 + +gUnk_080B70E8:: @ 080B70E8 + .incbin "baserom.gba", 0x0B70E8, 0x0000088 + +gUnk_080B7170:: @ 080B7170 + .incbin "baserom.gba", 0x0B7170, 0x0000008 + +gUnk_080B7178:: @ 080B7178 + .incbin "baserom.gba", 0x0B7178, 0x0000008 + +gUnk_080B7180:: @ 080B7180 + .incbin "baserom.gba", 0x0B7180, 0x0000008 + +gUnk_080B7188:: @ 080B7188 + .incbin "baserom.gba", 0x0B7188, 0x0000008 + +gUnk_080B7190:: @ 080B7190 + .incbin "baserom.gba", 0x0B7190, 0x0000008 + +gUnk_080B7198:: @ 080B7198 + .incbin "baserom.gba", 0x0B7198, 0x0000008 + +gUnk_080B71A0:: @ 080B71A0 + .incbin "baserom.gba", 0x0B71A0, 0x0000008 + +gUnk_080B71A8:: @ 080B71A8 + .incbin "baserom.gba", 0x0B71A8, 0x0000008 + +gUnk_080B71B0:: @ 080B71B0 + .incbin "baserom.gba", 0x0B71B0, 0x0000008 + +gUnk_080B71B8:: @ 080B71B8 + .incbin "baserom.gba", 0x0B71B8, 0x0000008 + +gUnk_080B71C0:: @ 080B71C0 + .incbin "baserom.gba", 0x0B71C0, 0x0000008 + +gUnk_080B71C8:: @ 080B71C8 + .incbin "baserom.gba", 0x0B71C8, 0x0000008 + +gUnk_080B71D0:: @ 080B71D0 + .incbin "baserom.gba", 0x0B71D0, 0x0000008 + +gUnk_080B71D8:: @ 080B71D8 + .incbin "baserom.gba", 0x0B71D8, 0x0000008 + +gUnk_080B71E0:: @ 080B71E0 + .incbin "baserom.gba", 0x0B71E0, 0x0000008 + +gUnk_080B71E8:: @ 080B71E8 + .incbin "baserom.gba", 0x0B71E8, 0x0000008 + +gUnk_080B71F0:: @ 080B71F0 + .incbin "baserom.gba", 0x0B71F0, 0x0000088 + +gUnk_080B7278:: @ 080B7278 + .incbin "baserom.gba", 0x0B7278, 0x0000188 + +gUnk_080B7400:: @ 080B7400 + .incbin "baserom.gba", 0x0B7400, 0x000000A + +gUnk_080B740A:: @ 080B740A + .incbin "baserom.gba", 0x0B740A, 0x0000012 + +gUnk_080B741C:: @ 080B741C + .incbin "baserom.gba", 0x0B741C, 0x0000012 + +gUnk_080B742E:: @ 080B742E + .incbin "baserom.gba", 0x0B742E, 0x000000C + +gUnk_080B743A:: @ 080B743A + .incbin "baserom.gba", 0x0B743A, 0x000000A + +gUnk_080B7444:: @ 080B7444 + .incbin "baserom.gba", 0x0B7444, 0x000000C + +gUnk_080B7450:: @ 080B7450 + .incbin "baserom.gba", 0x0B7450, 0x000000A + +gUnk_080B745A:: @ 080B745A + .incbin "baserom.gba", 0x0B745A, 0x0000006 + +gUnk_080B7460:: @ 080B7460 + .incbin "baserom.gba", 0x0B7460, 0x0000004 + +gUnk_080B7464:: @ 080B7464 + .incbin "baserom.gba", 0x0B7464, 0x000000A + +gUnk_080B746E:: @ 080B746E + .incbin "baserom.gba", 0x0B746E, 0x000000C + +gUnk_080B747A:: @ 080B747A + .incbin "baserom.gba", 0x0B747A, 0x0000006 + +gUnk_080B7480:: @ 080B7480 + .incbin "baserom.gba", 0x0B7480, 0x000000A + +gUnk_080B748A:: @ 080B748A + .incbin "baserom.gba", 0x0B748A, 0x0000004 + +gUnk_080B748E:: @ 080B748E + .incbin "baserom.gba", 0x0B748E, 0x000000E + +gUnk_080B749C:: @ 080B749C + .incbin "baserom.gba", 0x0B749C, 0x000000E + +gUnk_080B74AA:: @ 080B74AA + .incbin "baserom.gba", 0x0B74AA, 0x000000E + +gUnk_080B74B8:: @ 080B74B8 + .incbin "baserom.gba", 0x0B74B8, 0x000000E + +gUnk_080B74C6:: @ 080B74C6 + .incbin "baserom.gba", 0x0B74C6, 0x000000E + +gUnk_080B74D4:: @ 080B74D4 + .incbin "baserom.gba", 0x0B74D4, 0x0000008 + +gUnk_080B74DC:: @ 080B74DC + .incbin "baserom.gba", 0x0B74DC, 0x0000008 + +gUnk_080B74E4:: @ 080B74E4 + .incbin "baserom.gba", 0x0B74E4, 0x0000008 + +gUnk_080B74EC:: @ 080B74EC + .incbin "baserom.gba", 0x0B74EC, 0x0000008 + +gUnk_080B74F4:: @ 080B74F4 + .incbin "baserom.gba", 0x0B74F4, 0x000000C + +gUnk_080B7500:: @ 080B7500 + .incbin "baserom.gba", 0x0B7500, 0x0000006 + +gUnk_080B7506:: @ 080B7506 + .incbin "baserom.gba", 0x0B7506, 0x000000C + +gUnk_080B7512:: @ 080B7512 + .incbin "baserom.gba", 0x0B7512, 0x0000008 + +gUnk_080B751A:: @ 080B751A + .incbin "baserom.gba", 0x0B751A, 0x000000A + +gUnk_080B7524:: @ 080B7524 + .incbin "baserom.gba", 0x0B7524, 0x0000004 + +gUnk_080B7528:: @ 080B7528 + .incbin "baserom.gba", 0x0B7528, 0x0000010 + +gUnk_080B7538:: @ 080B7538 + .incbin "baserom.gba", 0x0B7538, 0x000000A + +gUnk_080B7542:: @ 080B7542 + .incbin "baserom.gba", 0x0B7542, 0x0000004 + +gUnk_080B7546:: @ 080B7546 + .incbin "baserom.gba", 0x0B7546, 0x0000004 + +gUnk_080B754A:: @ 080B754A + .incbin "baserom.gba", 0x0B754A, 0x0000004 + +gUnk_080B754E:: @ 080B754E + .incbin "baserom.gba", 0x0B754E, 0x0000008 + +gUnk_080B7556:: @ 080B7556 + .incbin "baserom.gba", 0x0B7556, 0x0000006 + +gUnk_080B755C:: @ 080B755C + .incbin "baserom.gba", 0x0B755C, 0x0000264 + +gUnk_080B77C0:: @ 080B77C0 + .incbin "baserom.gba", 0x0B77C0, 0x0000008 + +gUnk_080B77C8:: @ 080B77C8 + .incbin "baserom.gba", 0x0B77C8, 0x0000010 + +gUnk_080B77D8:: @ 080B77D8 + .incbin "baserom.gba", 0x0B77D8, 0x000001C + +gUnk_080B77F4:: @ 080B77F4 + .incbin "baserom.gba", 0x0B77F4, 0x0000008 + +gUnk_080B77FC:: @ 080B77FC + .incbin "baserom.gba", 0x0B77FC, 0x000002A + +gUnk_080B7826:: @ 080B7826 + .incbin "baserom.gba", 0x0B7826, 0x0000008 + +gUnk_080B782E:: @ 080B782E + .incbin "baserom.gba", 0x0B782E, 0x0000012 + +gUnk_080B7840:: @ 080B7840 + .incbin "baserom.gba", 0x0B7840, 0x0000008 + +gUnk_080B7848:: @ 080B7848 + .incbin "baserom.gba", 0x0B7848, 0x0000008 + +gUnk_080B7850:: @ 080B7850 + .incbin "baserom.gba", 0x0B7850, 0x0000020 + +gUnk_080B7870:: @ 080B7870 + .incbin "baserom.gba", 0x0B7870, 0x0000008 + +gUnk_080B7878:: @ 080B7878 + .incbin "baserom.gba", 0x0B7878, 0x0000012 + +gUnk_080B788A:: @ 080B788A + .incbin "baserom.gba", 0x0B788A, 0x0000086 + +gUnk_080B7910:: @ 080B7910 + .incbin "baserom.gba", 0x0B7910, 0x0000097 + +gUnk_080B79A7:: @ 080B79A7 + .incbin "baserom.gba", 0x0B79A7, 0x0000097 + +gUnk_080B7A3E:: @ 080B7A3E + .incbin "baserom.gba", 0x0B7A3E, 0x000012E + +gUnk_080B7B6C:: @ 080B7B6C + .incbin "baserom.gba", 0x0B7B6C, 0x0000008 + +gUnk_080B7B74:: @ 080B7B74 + .incbin "baserom.gba", 0x0B7B74, 0x00004BA + +gUnk_080B802E:: @ 080B802E + .incbin "baserom.gba", 0x0B802E, 0x0002292 + +gUnk_080BA2C0:: @ 080BA2C0 + .incbin "baserom.gba", 0x0BA2C0, 0x0000FE0 + +gUnk_080BB2A0:: @ 080BB2A0 + .incbin "baserom.gba", 0x0BB2A0, 0x0001100 + +gUnk_080BC3A0:: @ 080BC3A0 + .incbin "baserom.gba", 0x0BC3A0, 0x000080A + +gUnk_080BCBAA:: @ 080BCBAA + .incbin "baserom.gba", 0x0BCBAA, 0x0001E48 + +gUnk_080BE9F2:: @ 080BE9F2 + .incbin "baserom.gba", 0x0BE9F2, 0x00003C5 + +gUnk_080BEDB7:: @ 080BEDB7 + .incbin "baserom.gba", 0x0BEDB7, 0x0000133 + +gUnk_080BEEEA:: @ 080BEEEA + .incbin "baserom.gba", 0x0BEEEA, 0x00001BC + +gUnk_080BF0A6:: @ 080BF0A6 + .incbin "baserom.gba", 0x0BF0A6, 0x0000446 + +gUnk_080BF4EC:: @ 080BF4EC + .incbin "baserom.gba", 0x0BF4EC, 0x0000025 + +gUnk_080BF511:: @ 080BF511 + .incbin "baserom.gba", 0x0BF511, 0x0000101 + +gUnk_080BF612:: @ 080BF612 + .incbin "baserom.gba", 0x0BF612, 0x00000DD + +gUnk_080BF6EF:: @ 080BF6EF + .incbin "baserom.gba", 0x0BF6EF, 0x0000013 + +gUnk_080BF702:: @ 080BF702 + .incbin "baserom.gba", 0x0BF702, 0x00000CE + +gUnk_080BF7D0:: @ 080BF7D0 + .incbin "baserom.gba", 0x0BF7D0, 0x000000F + +gUnk_080BF7DF:: @ 080BF7DF + .incbin "baserom.gba", 0x0BF7DF, 0x0000111 + +gUnk_080BF8F0:: @ 080BF8F0 + .incbin "baserom.gba", 0x0BF8F0, 0x0000004 + +gUnk_080BF8F4:: @ 080BF8F4 + .incbin "baserom.gba", 0x0BF8F4, 0x000001B + +gUnk_080BF90F:: @ 080BF90F + .incbin "baserom.gba", 0x0BF90F, 0x00000E9 + +gUnk_080BF9F8:: @ 080BF9F8 + .incbin "baserom.gba", 0x0BF9F8, 0x00000DF + +gUnk_080BFAD7:: @ 080BFAD7 + .incbin "baserom.gba", 0x0BFAD7, 0x0000014 + +gUnk_080BFAEB:: @ 080BFAEB + .incbin "baserom.gba", 0x0BFAEB, 0x0000011 + +gUnk_080BFAFC:: @ 080BFAFC + .incbin "baserom.gba", 0x0BFAFC, 0x00000EE + +gUnk_080BFBEA:: @ 080BFBEA + .incbin "baserom.gba", 0x0BFBEA, 0x0000005 + +gUnk_080BFBEF:: @ 080BFBEF + .incbin "baserom.gba", 0x0BFBEF, 0x00000F8 + +gUnk_080BFCE7:: @ 080BFCE7 + .incbin "baserom.gba", 0x0BFCE7, 0x0000007 + +gUnk_080BFCEE:: @ 080BFCEE + .incbin "baserom.gba", 0x0BFCEE, 0x0000009 + +gUnk_080BFCF7:: @ 080BFCF7 + .incbin "baserom.gba", 0x0BFCF7, 0x00001ED + +gUnk_080BFEE4:: @ 080BFEE4 + .incbin "baserom.gba", 0x0BFEE4, 0x000001D + +gUnk_080BFF01:: @ 080BFF01 + .incbin "baserom.gba", 0x0BFF01, 0x00000FF + +gUnk_080C0000:: @ 080C0000 + .incbin "baserom.gba", 0x0C0000, 0x0000007 + +gUnk_080C0007:: @ 080C0007 + .incbin "baserom.gba", 0x0C0007, 0x0000005 + +gUnk_080C000C:: @ 080C000C + .incbin "baserom.gba", 0x0C000C, 0x00000B7 + +gUnk_080C00C3:: @ 080C00C3 + .incbin "baserom.gba", 0x0C00C3, 0x0000040 + +gUnk_080C0103:: @ 080C0103 + .incbin "baserom.gba", 0x0C0103, 0x0000032 + +gUnk_080C0135:: @ 080C0135 + .incbin "baserom.gba", 0x0C0135, 0x0000001 + +gUnk_080C0136:: @ 080C0136 + .incbin "baserom.gba", 0x0C0136, 0x00000CD + +gUnk_080C0203:: @ 080C0203 + .incbin "baserom.gba", 0x0C0203, 0x00000EB + +gUnk_080C02EE:: @ 080C02EE + .incbin "baserom.gba", 0x0C02EE, 0x000000B + +gUnk_080C02F9:: @ 080C02F9 + .incbin "baserom.gba", 0x0C02F9, 0x0000004 + +gUnk_080C02FD:: @ 080C02FD + .incbin "baserom.gba", 0x0C02FD, 0x0000006 + +gUnk_080C0303:: @ 080C0303 + .incbin "baserom.gba", 0x0C0303, 0x00000F5 + +gUnk_080C03F8:: @ 080C03F8 + .incbin "baserom.gba", 0x0C03F8, 0x0000004 + +gUnk_080C03FC:: @ 080C03FC + .incbin "baserom.gba", 0x0C03FC, 0x000000E + +gUnk_080C040A:: @ 080C040A + .incbin "baserom.gba", 0x0C040A, 0x0000002 + +gUnk_080C040C:: @ 080C040C + .incbin "baserom.gba", 0x0C040C, 0x00000FA + +gUnk_080C0506:: @ 080C0506 + .incbin "baserom.gba", 0x0C0506, 0x0000001 + +gUnk_080C0507:: @ 080C0507 + .incbin "baserom.gba", 0x0C0507, 0x000000B + +gUnk_080C0512:: @ 080C0512 + .incbin "baserom.gba", 0x0C0512, 0x0000003 + +gUnk_080C0515:: @ 080C0515 + .incbin "baserom.gba", 0x0C0515, 0x00000E5 + +gUnk_080C05FA:: @ 080C05FA + .incbin "baserom.gba", 0x0C05FA, 0x0000001 + +gUnk_080C05FB:: @ 080C05FB + .incbin "baserom.gba", 0x0C05FB, 0x0000001 + +gUnk_080C05FC:: @ 080C05FC + .incbin "baserom.gba", 0x0C05FC, 0x0000001 + +gUnk_080C05FD:: @ 080C05FD + .incbin "baserom.gba", 0x0C05FD, 0x0000003 + +gUnk_080C0600:: @ 080C0600 + .incbin "baserom.gba", 0x0C0600, 0x0000002 + +gUnk_080C0602:: @ 080C0602 + .incbin "baserom.gba", 0x0C0602, 0x000000F + +gUnk_080C0611:: @ 080C0611 + .incbin "baserom.gba", 0x0C0611, 0x00000F0 + +gUnk_080C0701:: @ 080C0701 + .incbin "baserom.gba", 0x0C0701, 0x0000002 + +gUnk_080C0703:: @ 080C0703 + .incbin "baserom.gba", 0x0C0703, 0x0000002 + +gUnk_080C0705:: @ 080C0705 + .incbin "baserom.gba", 0x0C0705, 0x0000007 + +gUnk_080C070C:: @ 080C070C + .incbin "baserom.gba", 0x0C070C, 0x0000004 + +gUnk_080C0710:: @ 080C0710 + .incbin "baserom.gba", 0x0C0710, 0x00000E7 + +gUnk_080C07F7:: @ 080C07F7 + .incbin "baserom.gba", 0x0C07F7, 0x0000001 + +gUnk_080C07F8:: @ 080C07F8 + .incbin "baserom.gba", 0x0C07F8, 0x0000004 + +gUnk_080C07FC:: @ 080C07FC + .incbin "baserom.gba", 0x0C07FC, 0x0000004 + +gUnk_080C0800:: @ 080C0800 + .incbin "baserom.gba", 0x0C0800, 0x0000001 + +gUnk_080C0801:: @ 080C0801 + .incbin "baserom.gba", 0x0C0801, 0x0000002 + +gUnk_080C0803:: @ 080C0803 + .incbin "baserom.gba", 0x0C0803, 0x0000001 + +gUnk_080C0804:: @ 080C0804 + .incbin "baserom.gba", 0x0C0804, 0x0000001 + +gUnk_080C0805:: @ 080C0805 + .incbin "baserom.gba", 0x0C0805, 0x0000001 + +gUnk_080C0806:: @ 080C0806 + .incbin "baserom.gba", 0x0C0806, 0x0000001 + +gUnk_080C0807:: @ 080C0807 + .incbin "baserom.gba", 0x0C0807, 0x000000A + +gUnk_080C0811:: @ 080C0811 + .incbin "baserom.gba", 0x0C0811, 0x0000001 + +gUnk_080C0812:: @ 080C0812 + .incbin "baserom.gba", 0x0C0812, 0x00000E2 + +gUnk_080C08F4:: @ 080C08F4 + .incbin "baserom.gba", 0x0C08F4, 0x0000008 + +gUnk_080C08FC:: @ 080C08FC + .incbin "baserom.gba", 0x0C08FC, 0x0000006 + +gUnk_080C0902:: @ 080C0902 + .incbin "baserom.gba", 0x0C0902, 0x0000001 + +gUnk_080C0903:: @ 080C0903 + .incbin "baserom.gba", 0x0C0903, 0x0000001 + +gUnk_080C0904:: @ 080C0904 + .incbin "baserom.gba", 0x0C0904, 0x0000005 + +gUnk_080C0909:: @ 080C0909 + .incbin "baserom.gba", 0x0C0909, 0x0000002 + +gUnk_080C090B:: @ 080C090B + .incbin "baserom.gba", 0x0C090B, 0x0000001 + +gUnk_080C090C:: @ 080C090C + .incbin "baserom.gba", 0x0C090C, 0x0000001 + +gUnk_080C090D:: @ 080C090D + .incbin "baserom.gba", 0x0C090D, 0x00000E7 + +gUnk_080C09F4:: @ 080C09F4 + .incbin "baserom.gba", 0x0C09F4, 0x000000A + +gUnk_080C09FE:: @ 080C09FE + .incbin "baserom.gba", 0x0C09FE, 0x0000003 + +gUnk_080C0A01:: @ 080C0A01 + .incbin "baserom.gba", 0x0C0A01, 0x0000004 + +gUnk_080C0A05:: @ 080C0A05 + .incbin "baserom.gba", 0x0C0A05, 0x0000002 + +gUnk_080C0A07:: @ 080C0A07 + .incbin "baserom.gba", 0x0C0A07, 0x0000001 + +gUnk_080C0A08:: @ 080C0A08 + .incbin "baserom.gba", 0x0C0A08, 0x0000002 + +gUnk_080C0A0A:: @ 080C0A0A + .incbin "baserom.gba", 0x0C0A0A, 0x0000001 + +gUnk_080C0A0B:: @ 080C0A0B + .incbin "baserom.gba", 0x0C0A0B, 0x0000004 + +gUnk_080C0A0F:: @ 080C0A0F + .incbin "baserom.gba", 0x0C0A0F, 0x00000EB + +gUnk_080C0AFA:: @ 080C0AFA + .incbin "baserom.gba", 0x0C0AFA, 0x0000006 + +gUnk_080C0B00:: @ 080C0B00 + .incbin "baserom.gba", 0x0C0B00, 0x0000004 + +gUnk_080C0B04:: @ 080C0B04 + .incbin "baserom.gba", 0x0C0B04, 0x0000001 + +gUnk_080C0B05:: @ 080C0B05 + .incbin "baserom.gba", 0x0C0B05, 0x0000001 + +gUnk_080C0B06:: @ 080C0B06 + .incbin "baserom.gba", 0x0C0B06, 0x0000002 + +gUnk_080C0B08:: @ 080C0B08 + .incbin "baserom.gba", 0x0C0B08, 0x0000001 + +gUnk_080C0B09:: @ 080C0B09 + .incbin "baserom.gba", 0x0C0B09, 0x0000001 + +gUnk_080C0B0A:: @ 080C0B0A + .incbin "baserom.gba", 0x0C0B0A, 0x0000001 + +gUnk_080C0B0B:: @ 080C0B0B + .incbin "baserom.gba", 0x0C0B0B, 0x0000001 + +gUnk_080C0B0C:: @ 080C0B0C + .incbin "baserom.gba", 0x0C0B0C, 0x0000001 + +gUnk_080C0B0D:: @ 080C0B0D + .incbin "baserom.gba", 0x0C0B0D, 0x0000003 + +gUnk_080C0B10:: @ 080C0B10 + .incbin "baserom.gba", 0x0C0B10, 0x0000003 + +gUnk_080C0B13:: @ 080C0B13 + .incbin "baserom.gba", 0x0C0B13, 0x00000ED + +gUnk_080C0C00:: @ 080C0C00 + .incbin "baserom.gba", 0x0C0C00, 0x0000005 + +gUnk_080C0C05:: @ 080C0C05 + .incbin "baserom.gba", 0x0C0C05, 0x0000003 + +gUnk_080C0C08:: @ 080C0C08 + .incbin "baserom.gba", 0x0C0C08, 0x0000001 + +gUnk_080C0C09:: @ 080C0C09 + .incbin "baserom.gba", 0x0C0C09, 0x0000001 + +gUnk_080C0C0A:: @ 080C0C0A + .incbin "baserom.gba", 0x0C0C0A, 0x0000002 + +gUnk_080C0C0C:: @ 080C0C0C + .incbin "baserom.gba", 0x0C0C0C, 0x0000003 + +gUnk_080C0C0F:: @ 080C0C0F + .incbin "baserom.gba", 0x0C0C0F, 0x0000010 + +gUnk_080C0C1F:: @ 080C0C1F + .incbin "baserom.gba", 0x0C0C1F, 0x00000E6 + +gUnk_080C0D05:: @ 080C0D05 + .incbin "baserom.gba", 0x0C0D05, 0x0000001 + +gUnk_080C0D06:: @ 080C0D06 + .incbin "baserom.gba", 0x0C0D06, 0x0000004 + +gUnk_080C0D0A:: @ 080C0D0A + .incbin "baserom.gba", 0x0C0D0A, 0x0000001 + +gUnk_080C0D0B:: @ 080C0D0B + .incbin "baserom.gba", 0x0C0D0B, 0x0000001 + +gUnk_080C0D0C:: @ 080C0D0C + .incbin "baserom.gba", 0x0C0D0C, 0x0000001 + +gUnk_080C0D0D:: @ 080C0D0D + .incbin "baserom.gba", 0x0C0D0D, 0x0000001 + +gUnk_080C0D0E:: @ 080C0D0E + .incbin "baserom.gba", 0x0C0D0E, 0x0000002 + +gUnk_080C0D10:: @ 080C0D10 + .incbin "baserom.gba", 0x0C0D10, 0x0000001 + +gUnk_080C0D11:: @ 080C0D11 + .incbin "baserom.gba", 0x0C0D11, 0x0000004 + +gUnk_080C0D15:: @ 080C0D15 + .incbin "baserom.gba", 0x0C0D15, 0x00000F0 + +gUnk_080C0E05:: @ 080C0E05 + .incbin "baserom.gba", 0x0C0E05, 0x0000001 + +gUnk_080C0E06:: @ 080C0E06 + .incbin "baserom.gba", 0x0C0E06, 0x0000003 + +gUnk_080C0E09:: @ 080C0E09 + .incbin "baserom.gba", 0x0C0E09, 0x0000003 + +gUnk_080C0E0C:: @ 080C0E0C + .incbin "baserom.gba", 0x0C0E0C, 0x0000001 + +gUnk_080C0E0D:: @ 080C0E0D + .incbin "baserom.gba", 0x0C0E0D, 0x0000001 + +gUnk_080C0E0E:: @ 080C0E0E + .incbin "baserom.gba", 0x0C0E0E, 0x0000001 + +gUnk_080C0E0F:: @ 080C0E0F + .incbin "baserom.gba", 0x0C0E0F, 0x0000001 + +gUnk_080C0E10:: @ 080C0E10 + .incbin "baserom.gba", 0x0C0E10, 0x0000002 + +gUnk_080C0E12:: @ 080C0E12 + .incbin "baserom.gba", 0x0C0E12, 0x0000001 + +gUnk_080C0E13:: @ 080C0E13 + .incbin "baserom.gba", 0x0C0E13, 0x0000002 + +gUnk_080C0E15:: @ 080C0E15 + .incbin "baserom.gba", 0x0C0E15, 0x0000014 + +gUnk_080C0E29:: @ 080C0E29 + .incbin "baserom.gba", 0x0C0E29, 0x00000E3 + +gUnk_080C0F0C:: @ 080C0F0C + .incbin "baserom.gba", 0x0C0F0C, 0x0000003 + +gUnk_080C0F0F:: @ 080C0F0F + .incbin "baserom.gba", 0x0C0F0F, 0x0000001 + +gUnk_080C0F10:: @ 080C0F10 + .incbin "baserom.gba", 0x0C0F10, 0x0000001 + +gUnk_080C0F11:: @ 080C0F11 + .incbin "baserom.gba", 0x0C0F11, 0x0000001 + +gUnk_080C0F12:: @ 080C0F12 + .incbin "baserom.gba", 0x0C0F12, 0x0000001 + +gUnk_080C0F13:: @ 080C0F13 + .incbin "baserom.gba", 0x0C0F13, 0x0000001 + +gUnk_080C0F14:: @ 080C0F14 + .incbin "baserom.gba", 0x0C0F14, 0x0000002 + +gUnk_080C0F16:: @ 080C0F16 + .incbin "baserom.gba", 0x0C0F16, 0x0000007 + +gUnk_080C0F1D:: @ 080C0F1D + .incbin "baserom.gba", 0x0C0F1D, 0x00000E3 + +gUnk_080C1000:: @ 080C1000 + .incbin "baserom.gba", 0x0C1000, 0x000000C + +gUnk_080C100C:: @ 080C100C + .incbin "baserom.gba", 0x0C100C, 0x0000003 + +gUnk_080C100F:: @ 080C100F + .incbin "baserom.gba", 0x0C100F, 0x0000001 + +gUnk_080C1010:: @ 080C1010 + .incbin "baserom.gba", 0x0C1010, 0x0000002 + +gUnk_080C1012:: @ 080C1012 + .incbin "baserom.gba", 0x0C1012, 0x0000001 + +gUnk_080C1013:: @ 080C1013 + .incbin "baserom.gba", 0x0C1013, 0x0000001 + +gUnk_080C1014:: @ 080C1014 + .incbin "baserom.gba", 0x0C1014, 0x0000001 + +gUnk_080C1015:: @ 080C1015 + .incbin "baserom.gba", 0x0C1015, 0x0000003 + +gUnk_080C1018:: @ 080C1018 + .incbin "baserom.gba", 0x0C1018, 0x00000F8 + +gUnk_080C1110:: @ 080C1110 + .incbin "baserom.gba", 0x0C1110, 0x0000001 + +gUnk_080C1111:: @ 080C1111 + .incbin "baserom.gba", 0x0C1111, 0x0000002 + +gUnk_080C1113:: @ 080C1113 + .incbin "baserom.gba", 0x0C1113, 0x0000002 + +gUnk_080C1115:: @ 080C1115 + .incbin "baserom.gba", 0x0C1115, 0x0000001 + +gUnk_080C1116:: @ 080C1116 + .incbin "baserom.gba", 0x0C1116, 0x0000001 + +gUnk_080C1117:: @ 080C1117 + .incbin "baserom.gba", 0x0C1117, 0x0000002 + +gUnk_080C1119:: @ 080C1119 + .incbin "baserom.gba", 0x0C1119, 0x0000004 + +gUnk_080C111D:: @ 080C111D + .incbin "baserom.gba", 0x0C111D, 0x00000EA + +gUnk_080C1207:: @ 080C1207 + .incbin "baserom.gba", 0x0C1207, 0x0000007 + +gUnk_080C120E:: @ 080C120E + .incbin "baserom.gba", 0x0C120E, 0x0000001 + +gUnk_080C120F:: @ 080C120F + .incbin "baserom.gba", 0x0C120F, 0x0000005 + +gUnk_080C1214:: @ 080C1214 + .incbin "baserom.gba", 0x0C1214, 0x0000004 + +gUnk_080C1218:: @ 080C1218 + .incbin "baserom.gba", 0x0C1218, 0x0000003 + +gUnk_080C121B:: @ 080C121B + .incbin "baserom.gba", 0x0C121B, 0x00000F1 + +gUnk_080C130C:: @ 080C130C + .incbin "baserom.gba", 0x0C130C, 0x0000004 + +gUnk_080C1310:: @ 080C1310 + .incbin "baserom.gba", 0x0C1310, 0x0000002 + +gUnk_080C1312:: @ 080C1312 + .incbin "baserom.gba", 0x0C1312, 0x0000001 + +gUnk_080C1313:: @ 080C1313 + .incbin "baserom.gba", 0x0C1313, 0x0000001 + +gUnk_080C1314:: @ 080C1314 + .incbin "baserom.gba", 0x0C1314, 0x0000004 + +gUnk_080C1318:: @ 080C1318 + .incbin "baserom.gba", 0x0C1318, 0x0000002 + +gUnk_080C131A:: @ 080C131A + .incbin "baserom.gba", 0x0C131A, 0x0000003 + +gUnk_080C131D:: @ 080C131D + .incbin "baserom.gba", 0x0C131D, 0x0000003 + +gUnk_080C1320:: @ 080C1320 + .incbin "baserom.gba", 0x0C1320, 0x00000E0 + +gUnk_080C1400:: @ 080C1400 + .incbin "baserom.gba", 0x0C1400, 0x0000017 + +gUnk_080C1417:: @ 080C1417 + .incbin "baserom.gba", 0x0C1417, 0x0000101 + +gUnk_080C1518:: @ 080C1518 + .incbin "baserom.gba", 0x0C1518, 0x000000A + +gUnk_080C1522:: @ 080C1522 + .incbin "baserom.gba", 0x0C1522, 0x00000DD + +gUnk_080C15FF:: @ 080C15FF + .incbin "baserom.gba", 0x0C15FF, 0x0000112 + +gUnk_080C1711:: @ 080C1711 + .incbin "baserom.gba", 0x0C1711, 0x00000EF + +gUnk_080C1800:: @ 080C1800 + .incbin "baserom.gba", 0x0C1800, 0x0000011 + +gUnk_080C1811:: @ 080C1811 + .incbin "baserom.gba", 0x0C1811, 0x0000011 + +gUnk_080C1822:: @ 080C1822 + .incbin "baserom.gba", 0x0C1822, 0x0000006 + +gUnk_080C1828:: @ 080C1828 + .incbin "baserom.gba", 0x0C1828, 0x0000008 + +gUnk_080C1830:: @ 080C1830 + .incbin "baserom.gba", 0x0C1830, 0x00001F4 + +gUnk_080C1A24:: @ 080C1A24 + .incbin "baserom.gba", 0x0C1A24, 0x00001FF + +gUnk_080C1C23:: @ 080C1C23 + .incbin "baserom.gba", 0x0C1C23, 0x00001F5 + +gUnk_080C1E18:: @ 080C1E18 + .incbin "baserom.gba", 0x0C1E18, 0x00001E8 + +gUnk_080C2000:: @ 080C2000 + .incbin "baserom.gba", 0x0C2000, 0x0000011 + +gUnk_080C2011:: @ 080C2011 + .incbin "baserom.gba", 0x0C2011, 0x000012E + +gUnk_080C213F:: @ 080C213F + .incbin "baserom.gba", 0x0C213F, 0x00003DD + +gUnk_080C251C:: @ 080C251C + .incbin "baserom.gba", 0x0C251C, 0x0000A19 + +gUnk_080C2F35:: @ 080C2F35 + .incbin "baserom.gba", 0x0C2F35, 0x000010A + +gUnk_080C303F:: @ 080C303F + .incbin "baserom.gba", 0x0C303F, 0x00032A4 + +gUnk_080C62E3:: @ 080C62E3 + .incbin "baserom.gba", 0x0C62E3, 0x000207D + +gUnk_080C8360:: @ 080C8360 + .incbin "baserom.gba", 0x0C8360, 0x0000BCC + +gUnk_080C8F2C:: @ 080C8F2C + .incbin "baserom.gba", 0x0C8F2C, 0x0000028 + +gUnk_080C8F54:: @ 080C8F54 + .incbin "baserom.gba", 0x0C8F54, 0x0000028 + +gUnk_080C8F7C:: @ 080C8F7C + .incbin "baserom.gba", 0x0C8F7C, 0x0000010 + +gUnk_080C8F8C:: @ 080C8F8C + .incbin "baserom.gba", 0x0C8F8C, 0x00000B0 + +gUnk_080C903C:: @ 080C903C + .incbin "baserom.gba", 0x0C903C, 0x0000008 + +gUnk_080C9044:: @ 080C9044 + .incbin "baserom.gba", 0x0C9044, 0x0000008 + +gUnk_080C904C:: @ 080C904C + .incbin "baserom.gba", 0x0C904C, 0x000000C + +gUnk_080C9058:: @ 080C9058 + .incbin "baserom.gba", 0x0C9058, 0x000003C + +gUnk_080C9094:: @ 080C9094 + .incbin "baserom.gba", 0x0C9094, 0x00000CC + +gUnk_080C9160:: @ 080C9160 + .incbin "baserom.gba", 0x0C9160, 0x0000080 + +gUnk_080C91E0:: @ 080C91E0 + .incbin "baserom.gba", 0x0C91E0, 0x0000200 + +gUnk_080C93E0:: @ 080C93E0 + .incbin "baserom.gba", 0x0C93E0, 0x0000080 + +gUnk_080C9460:: @ 080C9460 + .incbin "baserom.gba", 0x0C9460, 0x0000020 + +gUnk_080C9480:: @ 080C9480 + .incbin "baserom.gba", 0x0C9480, 0x0000008 + +gUnk_080C9488:: @ 080C9488 + .incbin "baserom.gba", 0x0C9488, 0x0000004 + +gUnk_080C948C:: @ 080C948C + .incbin "baserom.gba", 0x0C948C, 0x0000018 + +gUnk_080C94A4:: @ 080C94A4 + .incbin "baserom.gba", 0x0C94A4, 0x0000070 + +gUnk_080C9514:: @ 080C9514 + .incbin "baserom.gba", 0x0C9514, 0x0000028 + +gUnk_080C953C:: @ 080C953C + .incbin "baserom.gba", 0x0C953C, 0x000000C + +gUnk_080C9548:: @ 080C9548 + .incbin "baserom.gba", 0x0C9548, 0x0000028 + +gUnk_080C9570:: @ 080C9570 + .incbin "baserom.gba", 0x0C9570, 0x0000048 + +gUnk_080C95B8:: @ 080C95B8 + .incbin "baserom.gba", 0x0C95B8, 0x0000038 + +gUnk_080C95F0:: @ 080C95F0 + .incbin "baserom.gba", 0x0C95F0, 0x0000010 + +gUnk_080C9600:: @ 080C9600 + .incbin "baserom.gba", 0x0C9600, 0x0000010 + +gUnk_080C9610:: @ 080C9610 + .incbin "baserom.gba", 0x0C9610, 0x0000038 + +gUnk_080C9648:: @ 080C9648 + .incbin "baserom.gba", 0x0C9648, 0x0000080 + +gUnk_080C96C8:: @ 080C96C8 + .incbin "baserom.gba", 0x0C96C8, 0x0000030 + +gUnk_080C96F8:: @ 080C96F8 + .incbin "baserom.gba", 0x0C96F8, 0x000000C + +gUnk_080C9704:: @ 080C9704 + .incbin "baserom.gba", 0x0C9704, 0x0000090 + +gUnk_080C9794:: @ 080C9794 + .incbin "baserom.gba", 0x0C9794, 0x00000C0 + +gUnk_080C9854:: @ 080C9854 + .incbin "baserom.gba", 0x0C9854, 0x0000010 + +gUnk_080C9864:: @ 080C9864 + .incbin "baserom.gba", 0x0C9864, 0x000000C + +gUnk_080C9870:: @ 080C9870 + .incbin "baserom.gba", 0x0C9870, 0x0000078 + +gUnk_080C98E8:: @ 080C98E8 + .incbin "baserom.gba", 0x0C98E8, 0x0000040 + +gUnk_080C9928:: @ 080C9928 + .incbin "baserom.gba", 0x0C9928, 0x0000060 + +gUnk_080C9988:: @ 080C9988 + .incbin "baserom.gba", 0x0C9988, 0x0000060 + +gUnk_080C99E8:: @ 080C99E8 + .incbin "baserom.gba", 0x0C99E8, 0x0000048 + +gUnk_080C9A30:: @ 080C9A30 + .incbin "baserom.gba", 0x0C9A30, 0x0000014 + +gUnk_080C9A44:: @ 080C9A44 + .incbin "baserom.gba", 0x0C9A44, 0x0000038 + +gUnk_080C9A7C:: @ 080C9A7C + .incbin "baserom.gba", 0x0C9A7C, 0x00000B0 + +gUnk_080C9B2C:: @ 080C9B2C + .incbin "baserom.gba", 0x0C9B2C, 0x0000088 + +gUnk_080C9BB4:: @ 080C9BB4 + .incbin "baserom.gba", 0x0C9BB4, 0x0000068 + +gUnk_080C9C1C:: @ 080C9C1C + .incbin "baserom.gba", 0x0C9C1C, 0x0000020 + +gUnk_080C9C3C:: @ 080C9C3C + .incbin "baserom.gba", 0x0C9C3C, 0x0000014 + +gUnk_080C9C50:: @ 080C9C50 + .incbin "baserom.gba", 0x0C9C50, 0x000001C + +gUnk_080C9C6C:: @ 080C9C6C + .incbin "baserom.gba", 0x0C9C6C, 0x0000040 + +gUnk_080C9CAC:: @ 080C9CAC + .incbin "baserom.gba", 0x0C9CAC, 0x0000010 + +gUnk_080C9CBC:: @ 080C9CBC + .incbin "baserom.gba", 0x0C9CBC, 0x00003B0 + +gUnk_080CA06C:: @ 080CA06C + .incbin "baserom.gba", 0x0CA06C, 0x00000B0 + +gUnk_080CA11C:: @ 080CA11C + .incbin "baserom.gba", 0x0CA11C, 0x0000014 + +gUnk_080CA130:: @ 080CA130 + .incbin "baserom.gba", 0x0CA130, 0x0000018 + +gUnk_080CA148:: @ 080CA148 + .incbin "baserom.gba", 0x0CA148, 0x0000010 + +gUnk_080CA158:: @ 080CA158 + .incbin "baserom.gba", 0x0CA158, 0x0000018 + +gUnk_080CA170:: @ 080CA170 + .incbin "baserom.gba", 0x0CA170, 0x0000004 + +gUnk_080CA174:: @ 080CA174 + .incbin "baserom.gba", 0x0CA174, 0x0000002 + +gUnk_080CA176:: @ 080CA176 + .incbin "baserom.gba", 0x0CA176, 0x0000008 + +gUnk_080CA17E:: @ 080CA17E + .incbin "baserom.gba", 0x0CA17E, 0x0000002 + +gUnk_080CA180:: @ 080CA180 + .incbin "baserom.gba", 0x0CA180, 0x0000009 + +gUnk_080CA189:: @ 080CA189 + .incbin "baserom.gba", 0x0CA189, 0x0000009 + +gUnk_080CA192:: @ 080CA192 + .incbin "baserom.gba", 0x0CA192, 0x0000009 + +gUnk_080CA19B:: @ 080CA19B + .incbin "baserom.gba", 0x0CA19B, 0x0000009 + +gUnk_080CA1A4:: @ 080CA1A4 + .incbin "baserom.gba", 0x0CA1A4, 0x0000015 + +gUnk_080CA1B9:: @ 080CA1B9 + .incbin "baserom.gba", 0x0CA1B9, 0x0000015 + +gUnk_080CA1CE:: @ 080CA1CE + .incbin "baserom.gba", 0x0CA1CE, 0x0000015 + +gUnk_080CA1E3:: @ 080CA1E3 + .incbin "baserom.gba", 0x0CA1E3, 0x0000015 + +gUnk_080CA1F8:: @ 080CA1F8 + .incbin "baserom.gba", 0x0CA1F8, 0x0000024 + +gUnk_080CA21C:: @ 080CA21C + .incbin "baserom.gba", 0x0CA21C, 0x0000018 + +gUnk_080CA234:: @ 080CA234 + .incbin "baserom.gba", 0x0CA234, 0x0000028 + +gUnk_080CA25C:: @ 080CA25C + .incbin "baserom.gba", 0x0CA25C, 0x000002C + +gUnk_080CA288:: @ 080CA288 + .incbin "baserom.gba", 0x0CA288, 0x000002C + +gUnk_080CA2B4:: @ 080CA2B4 + .incbin "baserom.gba", 0x0CA2B4, 0x000000A + +gUnk_080CA2BE:: @ 080CA2BE + .incbin "baserom.gba", 0x0CA2BE, 0x000002C + +gUnk_080CA2EA:: @ 080CA2EA + .incbin "baserom.gba", 0x0CA2EA, 0x0000011 + +gUnk_080CA2FB:: @ 080CA2FB + .incbin "baserom.gba", 0x0CA2FB, 0x0000041 + +gUnk_080CA33C:: @ 080CA33C + .incbin "baserom.gba", 0x0CA33C, 0x000001C + +gUnk_080CA358:: @ 080CA358 + .incbin "baserom.gba", 0x0CA358, 0x000000C + +gUnk_080CA364:: @ 080CA364 + .incbin "baserom.gba", 0x0CA364, 0x000000C + +gUnk_080CA370:: @ 080CA370 + .incbin "baserom.gba", 0x0CA370, 0x0000041 + +gUnk_080CA3B1:: @ 080CA3B1 + .incbin "baserom.gba", 0x0CA3B1, 0x0000014 + +gUnk_080CA3C5:: @ 080CA3C5 + .incbin "baserom.gba", 0x0CA3C5, 0x0000069 + +gUnk_080CA42E:: @ 080CA42E + .incbin "baserom.gba", 0x0CA42E, 0x0000042 + +gUnk_080CA470:: @ 080CA470 + .incbin "baserom.gba", 0x0CA470, 0x000002C + +gUnk_080CA49C:: @ 080CA49C + .incbin "baserom.gba", 0x0CA49C, 0x0000018 + +gUnk_080CA4B4:: @ 080CA4B4 + .incbin "baserom.gba", 0x0CA4B4, 0x0000014 + +gUnk_080CA4C8:: @ 080CA4C8 + .incbin "baserom.gba", 0x0CA4C8, 0x0000002 + +gUnk_080CA4CA:: @ 080CA4CA + .incbin "baserom.gba", 0x0CA4CA, 0x000000A + +gUnk_080CA4D4:: @ 080CA4D4 + .incbin "baserom.gba", 0x0CA4D4, 0x000002C + +gUnk_080CA500:: @ 080CA500 + .incbin "baserom.gba", 0x0CA500, 0x000001C + +gUnk_080CA51C:: @ 080CA51C + .incbin "baserom.gba", 0x0CA51C, 0x0000044 + +gUnk_080CA560:: @ 080CA560 + .incbin "baserom.gba", 0x0CA560, 0x0000010 + +gUnk_080CA570:: @ 080CA570 + .incbin "baserom.gba", 0x0CA570, 0x0000018 + +gUnk_080CA588:: @ 080CA588 + .incbin "baserom.gba", 0x0CA588, 0x0000008 + +gUnk_080CA590:: @ 080CA590 + .incbin "baserom.gba", 0x0CA590, 0x0000028 + +gUnk_080CA5B8:: @ 080CA5B8 + .incbin "baserom.gba", 0x0CA5B8, 0x0000004 + +gUnk_080CA5BC:: @ 080CA5BC + .incbin "baserom.gba", 0x0CA5BC, 0x0000018 + +gUnk_080CA5D4:: @ 080CA5D4 + .incbin "baserom.gba", 0x0CA5D4, 0x0000002 + +gUnk_080CA5D6:: @ 080CA5D6 + .incbin "baserom.gba", 0x0CA5D6, 0x0000011 + +gUnk_080CA5E7:: @ 080CA5E7 + .incbin "baserom.gba", 0x0CA5E7, 0x0000011 + +gUnk_080CA5F8:: @ 080CA5F8 + .incbin "baserom.gba", 0x0CA5F8, 0x000001D + +gUnk_080CA615:: @ 080CA615 + .incbin "baserom.gba", 0x0CA615, 0x0000011 + +gUnk_080CA626:: @ 080CA626 + .incbin "baserom.gba", 0x0CA626, 0x0000014 + +gUnk_080CA63A:: @ 080CA63A + .incbin "baserom.gba", 0x0CA63A, 0x0000016 + +gUnk_080CA650:: @ 080CA650 + .incbin "baserom.gba", 0x0CA650, 0x000001C + +gUnk_080CA66C:: @ 080CA66C + .incbin "baserom.gba", 0x0CA66C, 0x0000018 + +gUnk_080CA684:: @ 080CA684 + .incbin "baserom.gba", 0x0CA684, 0x0000020 + +gUnk_080CA6A4:: @ 080CA6A4 + .incbin "baserom.gba", 0x0CA6A4, 0x0000018 + +gUnk_080CA6BC:: @ 080CA6BC + .incbin "baserom.gba", 0x0CA6BC, 0x0000010 + +gUnk_080CA6CC:: @ 080CA6CC + .incbin "baserom.gba", 0x0CA6CC, 0x0000008 + +gUnk_080CA6D4:: @ 080CA6D4 + .incbin "baserom.gba", 0x0CA6D4, 0x0000003 + +gUnk_080CA6D7:: @ 080CA6D7 + .incbin "baserom.gba", 0x0CA6D7, 0x0000021 + +gUnk_080CA6F8:: @ 080CA6F8 + .incbin "baserom.gba", 0x0CA6F8, 0x0000021 + +gUnk_080CA719:: @ 080CA719 + .incbin "baserom.gba", 0x0CA719, 0x0000021 + +gUnk_080CA73A:: @ 080CA73A + .incbin "baserom.gba", 0x0CA73A, 0x0000021 + +gUnk_080CA75B:: @ 080CA75B + .incbin "baserom.gba", 0x0CA75B, 0x0000011 + +gUnk_080CA76C:: @ 080CA76C + .incbin "baserom.gba", 0x0CA76C, 0x0000011 + +gUnk_080CA77D:: @ 080CA77D + .incbin "baserom.gba", 0x0CA77D, 0x0000011 + +gUnk_080CA78E:: @ 080CA78E + .incbin "baserom.gba", 0x0CA78E, 0x0000011 + +gUnk_080CA79F:: @ 080CA79F + .incbin "baserom.gba", 0x0CA79F, 0x0000058 + +gUnk_080CA7F7:: @ 080CA7F7 + .incbin "baserom.gba", 0x0CA7F7, 0x0000058 + +gUnk_080CA84F:: @ 080CA84F + .incbin "baserom.gba", 0x0CA84F, 0x0000058 + +gUnk_080CA8A7:: @ 080CA8A7 + .incbin "baserom.gba", 0x0CA8A7, 0x0000058 + +gUnk_080CA8FF:: @ 080CA8FF + .incbin "baserom.gba", 0x0CA8FF, 0x0000008 + +gUnk_080CA907:: @ 080CA907 + .incbin "baserom.gba", 0x0CA907, 0x0000008 + +gUnk_080CA90F:: @ 080CA90F + .incbin "baserom.gba", 0x0CA90F, 0x0000008 + +gUnk_080CA917:: @ 080CA917 + .incbin "baserom.gba", 0x0CA917, 0x0000008 + +gUnk_080CA91F:: @ 080CA91F + .incbin "baserom.gba", 0x0CA91F, 0x0000004 + +gUnk_080CA923:: @ 080CA923 + .incbin "baserom.gba", 0x0CA923, 0x0000004 + +gUnk_080CA927:: @ 080CA927 + .incbin "baserom.gba", 0x0CA927, 0x0000004 + +gUnk_080CA92B:: @ 080CA92B + .incbin "baserom.gba", 0x0CA92B, 0x0000004 + +gUnk_080CA92F:: @ 080CA92F + .incbin "baserom.gba", 0x0CA92F, 0x0000041 + +gUnk_080CA970:: @ 080CA970 + .incbin "baserom.gba", 0x0CA970, 0x0000041 + +gUnk_080CA9B1:: @ 080CA9B1 + .incbin "baserom.gba", 0x0CA9B1, 0x0000041 + +gUnk_080CA9F2:: @ 080CA9F2 + .incbin "baserom.gba", 0x0CA9F2, 0x0000042 + +gUnk_080CAA34:: @ 080CAA34 + .incbin "baserom.gba", 0x0CAA34, 0x0000064 + +gUnk_080CAA98:: @ 080CAA98 + .incbin "baserom.gba", 0x0CAA98, 0x0000018 + +gUnk_080CAAB0:: @ 080CAAB0 + .incbin "baserom.gba", 0x0CAAB0, 0x0000050 + +gUnk_080CAB00:: @ 080CAB00 + .incbin "baserom.gba", 0x0CAB00, 0x0000004 + +gUnk_080CAB04:: @ 080CAB04 + .incbin "baserom.gba", 0x0CAB04, 0x0000004 + +gUnk_080CAB08:: @ 080CAB08 + .incbin "baserom.gba", 0x0CAB08, 0x0000004 + +gUnk_080CAB0C:: @ 080CAB0C + .incbin "baserom.gba", 0x0CAB0C, 0x0000004 + +gUnk_080CAB10:: @ 080CAB10 + .incbin "baserom.gba", 0x0CAB10, 0x0000004 + +gUnk_080CAB14:: @ 080CAB14 + .incbin "baserom.gba", 0x0CAB14, 0x0000026 + +gUnk_080CAB3A:: @ 080CAB3A + .incbin "baserom.gba", 0x0CAB3A, 0x0000008 + +gUnk_080CAB42:: @ 080CAB42 + .incbin "baserom.gba", 0x0CAB42, 0x0000008 + +gUnk_080CAB4A:: @ 080CAB4A + .incbin "baserom.gba", 0x0CAB4A, 0x0000008 + +gUnk_080CAB52:: @ 080CAB52 + .incbin "baserom.gba", 0x0CAB52, 0x0000006 + +gUnk_080CAB58:: @ 080CAB58 + .incbin "baserom.gba", 0x0CAB58, 0x0000010 + +gUnk_080CAB68:: @ 080CAB68 + .incbin "baserom.gba", 0x0CAB68, 0x0000004 + +gUnk_080CAB6C:: @ 080CAB6C + .incbin "baserom.gba", 0x0CAB6C, 0x0000004 + +gUnk_080CAB70:: @ 080CAB70 + .incbin "baserom.gba", 0x0CAB70, 0x0000004 + +gUnk_080CAB74:: @ 080CAB74 + .incbin "baserom.gba", 0x0CAB74, 0x0000004 + +gUnk_080CAB78:: @ 080CAB78 + .incbin "baserom.gba", 0x0CAB78, 0x0000004 + +gUnk_080CAB7C:: @ 080CAB7C + .incbin "baserom.gba", 0x0CAB7C, 0x0000010 + +gUnk_080CAB8C:: @ 080CAB8C + .incbin "baserom.gba", 0x0CAB8C, 0x0000010 + +gUnk_080CAB9C:: @ 080CAB9C + .incbin "baserom.gba", 0x0CAB9C, 0x0000010 + +gUnk_080CABAC:: @ 080CABAC + .incbin "baserom.gba", 0x0CABAC, 0x0000010 + +gUnk_080CABBC:: @ 080CABBC + .incbin "baserom.gba", 0x0CABBC, 0x0000004 + +gUnk_080CABC0:: @ 080CABC0 + .incbin "baserom.gba", 0x0CABC0, 0x0000004 + +gUnk_080CABC4:: @ 080CABC4 + .incbin "baserom.gba", 0x0CABC4, 0x0000004 + +gUnk_080CABC8:: @ 080CABC8 + .incbin "baserom.gba", 0x0CABC8, 0x0000004 + +gUnk_080CABCC:: @ 080CABCC + .incbin "baserom.gba", 0x0CABCC, 0x0000019 + +gUnk_080CABE5:: @ 080CABE5 + .incbin "baserom.gba", 0x0CABE5, 0x0000019 + +gUnk_080CABFE:: @ 080CABFE + .incbin "baserom.gba", 0x0CABFE, 0x0000019 + +gUnk_080CAC17:: @ 080CAC17 + .incbin "baserom.gba", 0x0CAC17, 0x0000019 + +gUnk_080CAC30:: @ 080CAC30 + .incbin "baserom.gba", 0x0CAC30, 0x000000C + +gUnk_080CAC3C:: @ 080CAC3C + .incbin "baserom.gba", 0x0CAC3C, 0x000000C + +gUnk_080CAC48:: @ 080CAC48 + .incbin "baserom.gba", 0x0CAC48, 0x000000C + +gUnk_080CAC54:: @ 080CAC54 + .incbin "baserom.gba", 0x0CAC54, 0x000000C + +gUnk_080CAC60:: @ 080CAC60 + .incbin "baserom.gba", 0x0CAC60, 0x0000028 + +gUnk_080CAC88:: @ 080CAC88 + .incbin "baserom.gba", 0x0CAC88, 0x0000028 + +gUnk_080CACB0:: @ 080CACB0 + .incbin "baserom.gba", 0x0CACB0, 0x0000028 + +gUnk_080CACD8:: @ 080CACD8 + .incbin "baserom.gba", 0x0CACD8, 0x0000028 + +gUnk_080CAD00:: @ 080CAD00 + .incbin "baserom.gba", 0x0CAD00, 0x0000019 + +gUnk_080CAD19:: @ 080CAD19 + .incbin "baserom.gba", 0x0CAD19, 0x0000019 + +gUnk_080CAD32:: @ 080CAD32 + .incbin "baserom.gba", 0x0CAD32, 0x0000019 + +gUnk_080CAD4B:: @ 080CAD4B + .incbin "baserom.gba", 0x0CAD4B, 0x0000019 + +gUnk_080CAD64:: @ 080CAD64 + .incbin "baserom.gba", 0x0CAD64, 0x000000C + +gUnk_080CAD70:: @ 080CAD70 + .incbin "baserom.gba", 0x0CAD70, 0x000000C + +gUnk_080CAD7C:: @ 080CAD7C + .incbin "baserom.gba", 0x0CAD7C, 0x000000C + +gUnk_080CAD88:: @ 080CAD88 + .incbin "baserom.gba", 0x0CAD88, 0x000000C + +gUnk_080CAD94:: @ 080CAD94 + .incbin "baserom.gba", 0x0CAD94, 0x0000015 + +gUnk_080CADA9:: @ 080CADA9 + .incbin "baserom.gba", 0x0CADA9, 0x0000015 + +gUnk_080CADBE:: @ 080CADBE + .incbin "baserom.gba", 0x0CADBE, 0x0000015 + +gUnk_080CADD3:: @ 080CADD3 + .incbin "baserom.gba", 0x0CADD3, 0x0000015 + +gUnk_080CADE8:: @ 080CADE8 + .incbin "baserom.gba", 0x0CADE8, 0x0000019 + +gUnk_080CAE01:: @ 080CAE01 + .incbin "baserom.gba", 0x0CAE01, 0x0000019 + +gUnk_080CAE1A:: @ 080CAE1A + .incbin "baserom.gba", 0x0CAE1A, 0x0000019 + +gUnk_080CAE33:: @ 080CAE33 + .incbin "baserom.gba", 0x0CAE33, 0x0000019 + +gUnk_080CAE4C:: @ 080CAE4C + .incbin "baserom.gba", 0x0CAE4C, 0x0000019 + +gUnk_080CAE65:: @ 080CAE65 + .incbin "baserom.gba", 0x0CAE65, 0x0000019 + +gUnk_080CAE7E:: @ 080CAE7E + .incbin "baserom.gba", 0x0CAE7E, 0x0000019 + +gUnk_080CAE97:: @ 080CAE97 + .incbin "baserom.gba", 0x0CAE97, 0x0000019 + +gUnk_080CAEB0:: @ 080CAEB0 + .incbin "baserom.gba", 0x0CAEB0, 0x0000010 + +gUnk_080CAEC0:: @ 080CAEC0 + .incbin "baserom.gba", 0x0CAEC0, 0x0000010 + +gUnk_080CAED0:: @ 080CAED0 + .incbin "baserom.gba", 0x0CAED0, 0x0000010 + +gUnk_080CAEE0:: @ 080CAEE0 + .incbin "baserom.gba", 0x0CAEE0, 0x0000010 + +gUnk_080CAEF0:: @ 080CAEF0 + .incbin "baserom.gba", 0x0CAEF0, 0x0000030 + +gUnk_080CAF20:: @ 080CAF20 + .incbin "baserom.gba", 0x0CAF20, 0x0000030 + +gUnk_080CAF50:: @ 080CAF50 + .incbin "baserom.gba", 0x0CAF50, 0x0000030 + +gUnk_080CAF80:: @ 080CAF80 + .incbin "baserom.gba", 0x0CAF80, 0x0000030 + +gUnk_080CAFB0:: @ 080CAFB0 + .incbin "baserom.gba", 0x0CAFB0, 0x0000018 + +gUnk_080CAFC8:: @ 080CAFC8 + .incbin "baserom.gba", 0x0CAFC8, 0x0000018 + +gUnk_080CAFE0:: @ 080CAFE0 + .incbin "baserom.gba", 0x0CAFE0, 0x0000018 + +gUnk_080CAFF8:: @ 080CAFF8 + .incbin "baserom.gba", 0x0CAFF8, 0x0000018 + +gUnk_080CB010:: @ 080CB010 + .incbin "baserom.gba", 0x0CB010, 0x0000035 + +gUnk_080CB045:: @ 080CB045 + .incbin "baserom.gba", 0x0CB045, 0x0000035 + +gUnk_080CB07A:: @ 080CB07A + .incbin "baserom.gba", 0x0CB07A, 0x0000035 + +gUnk_080CB0AF:: @ 080CB0AF + .incbin "baserom.gba", 0x0CB0AF, 0x0000035 + +gUnk_080CB0E4:: @ 080CB0E4 + .incbin "baserom.gba", 0x0CB0E4, 0x0000008 + +gUnk_080CB0EC:: @ 080CB0EC + .incbin "baserom.gba", 0x0CB0EC, 0x0000008 + +gUnk_080CB0F4:: @ 080CB0F4 + .incbin "baserom.gba", 0x0CB0F4, 0x0000008 + +gUnk_080CB0FC:: @ 080CB0FC + .incbin "baserom.gba", 0x0CB0FC, 0x0000008 + +gUnk_080CB104:: @ 080CB104 + .incbin "baserom.gba", 0x0CB104, 0x0000070 + +gUnk_080CB174:: @ 080CB174 + .incbin "baserom.gba", 0x0CB174, 0x0000070 + +gUnk_080CB1E4:: @ 080CB1E4 + .incbin "baserom.gba", 0x0CB1E4, 0x0000070 + +gUnk_080CB254:: @ 080CB254 + .incbin "baserom.gba", 0x0CB254, 0x0000070 + +gUnk_080CB2C4:: @ 080CB2C4 + .incbin "baserom.gba", 0x0CB2C4, 0x0000034 + +gUnk_080CB2F8:: @ 080CB2F8 + .incbin "baserom.gba", 0x0CB2F8, 0x0000034 + +gUnk_080CB32C:: @ 080CB32C + .incbin "baserom.gba", 0x0CB32C, 0x0000034 + +gUnk_080CB360:: @ 080CB360 + .incbin "baserom.gba", 0x0CB360, 0x0000034 + +gUnk_080CB394:: @ 080CB394 + .incbin "baserom.gba", 0x0CB394, 0x0000029 + +gUnk_080CB3BD:: @ 080CB3BD + .incbin "baserom.gba", 0x0CB3BD, 0x0000029 + +gUnk_080CB3E6:: @ 080CB3E6 + .incbin "baserom.gba", 0x0CB3E6, 0x0000029 + +gUnk_080CB40F:: @ 080CB40F + .incbin "baserom.gba", 0x0CB40F, 0x0000029 + +gUnk_080CB438:: @ 080CB438 + .incbin "baserom.gba", 0x0CB438, 0x00000C4 + +gUnk_080CB4FC:: @ 080CB4FC + .incbin "baserom.gba", 0x0CB4FC, 0x0000074 + +gUnk_080CB570:: @ 080CB570 + .incbin "baserom.gba", 0x0CB570, 0x0000018 + +gUnk_080CB588:: @ 080CB588 + .incbin "baserom.gba", 0x0CB588, 0x0000008 + +gUnk_080CB590:: @ 080CB590 + .incbin "baserom.gba", 0x0CB590, 0x0000018 + +gUnk_080CB5A8:: @ 080CB5A8 + .incbin "baserom.gba", 0x0CB5A8, 0x0000020 + +gUnk_080CB5C8:: @ 080CB5C8 + .incbin "baserom.gba", 0x0CB5C8, 0x000000C + +gUnk_080CB5D4:: @ 080CB5D4 + .incbin "baserom.gba", 0x0CB5D4, 0x0000008 + +gUnk_080CB5DC:: @ 080CB5DC + .incbin "baserom.gba", 0x0CB5DC, 0x0000008 + +gUnk_080CB5E4:: @ 080CB5E4 + .incbin "baserom.gba", 0x0CB5E4, 0x0000008 + +gUnk_080CB5EC:: @ 080CB5EC + .incbin "baserom.gba", 0x0CB5EC, 0x0000014 + +gUnk_080CB600:: @ 080CB600 + .incbin "baserom.gba", 0x0CB600, 0x000001C + +gUnk_080CB61C:: @ 080CB61C + .incbin "baserom.gba", 0x0CB61C, 0x0000011 + +gUnk_080CB62D:: @ 080CB62D + .incbin "baserom.gba", 0x0CB62D, 0x0000018 + +gUnk_080CB645:: @ 080CB645 + .incbin "baserom.gba", 0x0CB645, 0x0000018 + +gUnk_080CB65D:: @ 080CB65D + .incbin "baserom.gba", 0x0CB65D, 0x0000014 + +gUnk_080CB671:: @ 080CB671 + .incbin "baserom.gba", 0x0CB671, 0x000000B + +gUnk_080CB67C:: @ 080CB67C + .incbin "baserom.gba", 0x0CB67C, 0x0000020 + +gUnk_080CB69C:: @ 080CB69C + .incbin "baserom.gba", 0x0CB69C, 0x0000018 + +gUnk_080CB6B4:: @ 080CB6B4 + .incbin "baserom.gba", 0x0CB6B4, 0x0000010 + +gUnk_080CB6C4:: @ 080CB6C4 + .incbin "baserom.gba", 0x0CB6C4, 0x000000C + +gUnk_080CB6D0:: @ 080CB6D0 + .incbin "baserom.gba", 0x0CB6D0, 0x0000006 + +gUnk_080CB6D6:: @ 080CB6D6 + .incbin "baserom.gba", 0x0CB6D6, 0x0000020 + +gUnk_080CB6F6:: @ 080CB6F6 + .incbin "baserom.gba", 0x0CB6F6, 0x0000010 + +gUnk_080CB706:: @ 080CB706 + .incbin "baserom.gba", 0x0CB706, 0x0000018 + +gUnk_080CB71E:: @ 080CB71E + .incbin "baserom.gba", 0x0CB71E, 0x000000A + +gUnk_080CB728:: @ 080CB728 + .incbin "baserom.gba", 0x0CB728, 0x000000C + +gUnk_080CB734:: @ 080CB734 + .incbin "baserom.gba", 0x0CB734, 0x0000018 + +gUnk_080CB74C:: @ 080CB74C + .incbin "baserom.gba", 0x0CB74C, 0x0000018 + +gUnk_080CB764:: @ 080CB764 + .incbin "baserom.gba", 0x0CB764, 0x0000008 + +gUnk_080CB76C:: @ 080CB76C + .incbin "baserom.gba", 0x0CB76C, 0x0000030 + +gUnk_080CB79C:: @ 080CB79C + .incbin "baserom.gba", 0x0CB79C, 0x0000008 + +gUnk_080CB7A4:: @ 080CB7A4 + .incbin "baserom.gba", 0x0CB7A4, 0x0000008 + +gUnk_080CB7AC:: @ 080CB7AC + .incbin "baserom.gba", 0x0CB7AC, 0x0000008 + +gUnk_080CB7B4:: @ 080CB7B4 + .incbin "baserom.gba", 0x0CB7B4, 0x0000008 + +gUnk_080CB7BC:: @ 080CB7BC + .incbin "baserom.gba", 0x0CB7BC, 0x0000008 + +gUnk_080CB7C4:: @ 080CB7C4 + .incbin "baserom.gba", 0x0CB7C4, 0x0000008 + +gUnk_080CB7CC:: @ 080CB7CC + .incbin "baserom.gba", 0x0CB7CC, 0x0000008 + +gUnk_080CB7D4:: @ 080CB7D4 + .incbin "baserom.gba", 0x0CB7D4, 0x0000008 + +gUnk_080CB7DC:: @ 080CB7DC + .incbin "baserom.gba", 0x0CB7DC, 0x0000008 + +gUnk_080CB7E4:: @ 080CB7E4 + .incbin "baserom.gba", 0x0CB7E4, 0x0000008 + +gUnk_080CB7EC:: @ 080CB7EC + .incbin "baserom.gba", 0x0CB7EC, 0x0000008 + +gUnk_080CB7F4:: @ 080CB7F4 + .incbin "baserom.gba", 0x0CB7F4, 0x0000030 + +gUnk_080CB824:: @ 080CB824 + .incbin "baserom.gba", 0x0CB824, 0x0000008 + +gUnk_080CB82C:: @ 080CB82C + .incbin "baserom.gba", 0x0CB82C, 0x0000008 + +gUnk_080CB834:: @ 080CB834 + .incbin "baserom.gba", 0x0CB834, 0x0000008 + +gUnk_080CB83C:: @ 080CB83C + .incbin "baserom.gba", 0x0CB83C, 0x0000008 + +gUnk_080CB844:: @ 080CB844 + .incbin "baserom.gba", 0x0CB844, 0x0000008 + +gUnk_080CB84C:: @ 080CB84C + .incbin "baserom.gba", 0x0CB84C, 0x0000008 + +gUnk_080CB854:: @ 080CB854 + .incbin "baserom.gba", 0x0CB854, 0x0000008 + +gUnk_080CB85C:: @ 080CB85C + .incbin "baserom.gba", 0x0CB85C, 0x0000008 + +gUnk_080CB864:: @ 080CB864 + .incbin "baserom.gba", 0x0CB864, 0x0000008 + +gUnk_080CB86C:: @ 080CB86C + .incbin "baserom.gba", 0x0CB86C, 0x0000008 + +gUnk_080CB874:: @ 080CB874 + .incbin "baserom.gba", 0x0CB874, 0x0000030 + +gUnk_080CB8A4:: @ 080CB8A4 + .incbin "baserom.gba", 0x0CB8A4, 0x0000010 + +gUnk_080CB8B4:: @ 080CB8B4 + .incbin "baserom.gba", 0x0CB8B4, 0x0000005 + +gUnk_080CB8B9:: @ 080CB8B9 + .incbin "baserom.gba", 0x0CB8B9, 0x0000005 + +gUnk_080CB8BE:: @ 080CB8BE + .incbin "baserom.gba", 0x0CB8BE, 0x0000019 + +gUnk_080CB8D7:: @ 080CB8D7 + .incbin "baserom.gba", 0x0CB8D7, 0x0000019 + +gUnk_080CB8F0:: @ 080CB8F0 + .incbin "baserom.gba", 0x0CB8F0, 0x0000011 + +gUnk_080CB901:: @ 080CB901 + .incbin "baserom.gba", 0x0CB901, 0x0000013 + +gUnk_080CB914:: @ 080CB914 + .incbin "baserom.gba", 0x0CB914, 0x0000034 + +gUnk_080CB948:: @ 080CB948 + .incbin "baserom.gba", 0x0CB948, 0x0000018 + +gUnk_080CB960:: @ 080CB960 + .incbin "baserom.gba", 0x0CB960, 0x000000C + +gUnk_080CB96C:: @ 080CB96C + .incbin "baserom.gba", 0x0CB96C, 0x0000029 + +gUnk_080CB995:: @ 080CB995 + .incbin "baserom.gba", 0x0CB995, 0x0000041 + +gUnk_080CB9D6:: @ 080CB9D6 + .incbin "baserom.gba", 0x0CB9D6, 0x0000042 + +gUnk_080CBA18:: @ 080CBA18 + .incbin "baserom.gba", 0x0CBA18, 0x0000010 + +gUnk_080CBA28:: @ 080CBA28 + .incbin "baserom.gba", 0x0CBA28, 0x0000018 + +gUnk_080CBA40:: @ 080CBA40 + .incbin "baserom.gba", 0x0CBA40, 0x0000020 + +gUnk_080CBA60:: @ 080CBA60 + .incbin "baserom.gba", 0x0CBA60, 0x0000004 + +gUnk_080CBA64:: @ 080CBA64 + .incbin "baserom.gba", 0x0CBA64, 0x0000041 + +gUnk_080CBAA5:: @ 080CBAA5 + .incbin "baserom.gba", 0x0CBAA5, 0x0000040 + +gUnk_080CBAE5:: @ 080CBAE5 + .incbin "baserom.gba", 0x0CBAE5, 0x0000018 + +gUnk_080CBAFD:: @ 080CBAFD + .incbin "baserom.gba", 0x0CBAFD, 0x0000024 + +gUnk_080CBB21:: @ 080CBB21 + .incbin "baserom.gba", 0x0CBB21, 0x0000011 + +gUnk_080CBB32:: @ 080CBB32 + .incbin "baserom.gba", 0x0CBB32, 0x000000D + +gUnk_080CBB3F:: @ 080CBB3F + .incbin "baserom.gba", 0x0CBB3F, 0x0000005 + +gUnk_080CBB44:: @ 080CBB44 + .incbin "baserom.gba", 0x0CBB44, 0x0000020 + +gUnk_080CBB64:: @ 080CBB64 + .incbin "baserom.gba", 0x0CBB64, 0x0000018 + +gUnk_080CBB7C:: @ 080CBB7C + .incbin "baserom.gba", 0x0CBB7C, 0x0000014 + +gUnk_080CBB90:: @ 080CBB90 + .incbin "baserom.gba", 0x0CBB90, 0x0000010 + +gUnk_080CBBA0:: @ 080CBBA0 + .incbin "baserom.gba", 0x0CBBA0, 0x0000014 + +gUnk_080CBBB4:: @ 080CBBB4 + .incbin "baserom.gba", 0x0CBBB4, 0x0000008 + +gUnk_080CBBBC:: @ 080CBBBC + .incbin "baserom.gba", 0x0CBBBC, 0x0000008 + +gUnk_080CBBC4:: @ 080CBBC4 + .incbin "baserom.gba", 0x0CBBC4, 0x0000004 + +gUnk_080CBBC8:: @ 080CBBC8 + .incbin "baserom.gba", 0x0CBBC8, 0x0000014 + +gUnk_080CBBDC:: @ 080CBBDC + .incbin "baserom.gba", 0x0CBBDC, 0x0000010 + +gUnk_080CBBEC:: @ 080CBBEC + .incbin "baserom.gba", 0x0CBBEC, 0x000004C + +gUnk_080CBC38:: @ 080CBC38 + .incbin "baserom.gba", 0x0CBC38, 0x0000018 + +gUnk_080CBC50:: @ 080CBC50 + .incbin "baserom.gba", 0x0CBC50, 0x0000020 + +gUnk_080CBC70:: @ 080CBC70 + .incbin "baserom.gba", 0x0CBC70, 0x0000020 + +gUnk_080CBC90:: @ 080CBC90 + .incbin "baserom.gba", 0x0CBC90, 0x0000008 + +gUnk_080CBC98:: @ 080CBC98 + .incbin "baserom.gba", 0x0CBC98, 0x0000010 + +gUnk_080CBCA8:: @ 080CBCA8 + .incbin "baserom.gba", 0x0CBCA8, 0x0000010 + +gUnk_080CBCB8:: @ 080CBCB8 + .incbin "baserom.gba", 0x0CBCB8, 0x0000010 + +gUnk_080CBCC8:: @ 080CBCC8 + .incbin "baserom.gba", 0x0CBCC8, 0x0000004 + +gUnk_080CBCCC:: @ 080CBCCC + .incbin "baserom.gba", 0x0CBCCC, 0x0000004 + +gUnk_080CBCD0:: @ 080CBCD0 + .incbin "baserom.gba", 0x0CBCD0, 0x0000004 + +gUnk_080CBCD4:: @ 080CBCD4 + .incbin "baserom.gba", 0x0CBCD4, 0x0000004 + +gUnk_080CBCD8:: @ 080CBCD8 + .incbin "baserom.gba", 0x0CBCD8, 0x0000004 + +gUnk_080CBCDC:: @ 080CBCDC + .incbin "baserom.gba", 0x0CBCDC, 0x0000004 + +gUnk_080CBCE0:: @ 080CBCE0 + .incbin "baserom.gba", 0x0CBCE0, 0x0000004 + +gUnk_080CBCE4:: @ 080CBCE4 + .incbin "baserom.gba", 0x0CBCE4, 0x0000004 + +gUnk_080CBCE8:: @ 080CBCE8 + .incbin "baserom.gba", 0x0CBCE8, 0x0000004 + +gUnk_080CBCEC:: @ 080CBCEC + .incbin "baserom.gba", 0x0CBCEC, 0x0000004 + +gUnk_080CBCF0:: @ 080CBCF0 + .incbin "baserom.gba", 0x0CBCF0, 0x0000004 + +gUnk_080CBCF4:: @ 080CBCF4 + .incbin "baserom.gba", 0x0CBCF4, 0x0000004 + +gUnk_080CBCF8:: @ 080CBCF8 + .incbin "baserom.gba", 0x0CBCF8, 0x0000004 + +gUnk_080CBCFC:: @ 080CBCFC + .incbin "baserom.gba", 0x0CBCFC, 0x0000004 + +gUnk_080CBD00:: @ 080CBD00 + .incbin "baserom.gba", 0x0CBD00, 0x0000004 + +gUnk_080CBD04:: @ 080CBD04 + .incbin "baserom.gba", 0x0CBD04, 0x0000004 + +gUnk_080CBD08:: @ 080CBD08 + .incbin "baserom.gba", 0x0CBD08, 0x0000004 + +gUnk_080CBD0C:: @ 080CBD0C + .incbin "baserom.gba", 0x0CBD0C, 0x0000004 + +gUnk_080CBD10:: @ 080CBD10 + .incbin "baserom.gba", 0x0CBD10, 0x0000004 + +gUnk_080CBD14:: @ 080CBD14 + .incbin "baserom.gba", 0x0CBD14, 0x0000004 + +gUnk_080CBD18:: @ 080CBD18 + .incbin "baserom.gba", 0x0CBD18, 0x0000004 + +gUnk_080CBD1C:: @ 080CBD1C + .incbin "baserom.gba", 0x0CBD1C, 0x0000004 + +gUnk_080CBD20:: @ 080CBD20 + .incbin "baserom.gba", 0x0CBD20, 0x000002C + +gUnk_080CBD4C:: @ 080CBD4C + .incbin "baserom.gba", 0x0CBD4C, 0x000000C + +gUnk_080CBD58:: @ 080CBD58 + .incbin "baserom.gba", 0x0CBD58, 0x0000064 + +gUnk_080CBDBC:: @ 080CBDBC + .incbin "baserom.gba", 0x0CBDBC, 0x0000018 + +gUnk_080CBDD4:: @ 080CBDD4 + .incbin "baserom.gba", 0x0CBDD4, 0x0000018 + +gUnk_080CBDEC:: @ 080CBDEC + .incbin "baserom.gba", 0x0CBDEC, 0x0000008 + +gUnk_080CBDF4:: @ 080CBDF4 + .incbin "baserom.gba", 0x0CBDF4, 0x0000003 + +gUnk_080CBDF7:: @ 080CBDF7 + .incbin "baserom.gba", 0x0CBDF7, 0x0000008 + +gUnk_080CBDFF:: @ 080CBDFF + .incbin "baserom.gba", 0x0CBDFF, 0x0000003 + +gUnk_080CBE02:: @ 080CBE02 + .incbin "baserom.gba", 0x0CBE02, 0x0000019 + +gUnk_080CBE1B:: @ 080CBE1B + .incbin "baserom.gba", 0x0CBE1B, 0x0000019 + +gUnk_080CBE34:: @ 080CBE34 + .incbin "baserom.gba", 0x0CBE34, 0x0000019 + +gUnk_080CBE4D:: @ 080CBE4D + .incbin "baserom.gba", 0x0CBE4D, 0x0000019 + +gUnk_080CBE66:: @ 080CBE66 + .incbin "baserom.gba", 0x0CBE66, 0x0000024 + +gUnk_080CBE8A:: @ 080CBE8A + .incbin "baserom.gba", 0x0CBE8A, 0x0000014 + +gUnk_080CBE9E:: @ 080CBE9E + .incbin "baserom.gba", 0x0CBE9E, 0x0000006 + +gUnk_080CBEA4:: @ 080CBEA4 + .incbin "baserom.gba", 0x0CBEA4, 0x0000020 + +gUnk_080CBEC4:: @ 080CBEC4 + .incbin "baserom.gba", 0x0CBEC4, 0x0000018 + +gUnk_080CBEDC:: @ 080CBEDC + .incbin "baserom.gba", 0x0CBEDC, 0x000001C + +gUnk_080CBEF8:: @ 080CBEF8 + .incbin "baserom.gba", 0x0CBEF8, 0x0000018 + +gUnk_080CBF10:: @ 080CBF10 + .incbin "baserom.gba", 0x0CBF10, 0x0000008 + +gUnk_080CBF18:: @ 080CBF18 + .incbin "baserom.gba", 0x0CBF18, 0x0000008 + +gUnk_080CBF20:: @ 080CBF20 + .incbin "baserom.gba", 0x0CBF20, 0x0000010 + +gUnk_080CBF30:: @ 080CBF30 + .incbin "baserom.gba", 0x0CBF30, 0x0000009 + +gUnk_080CBF39:: @ 080CBF39 + .incbin "baserom.gba", 0x0CBF39, 0x0000009 + +gUnk_080CBF42:: @ 080CBF42 + .incbin "baserom.gba", 0x0CBF42, 0x0000009 + +gUnk_080CBF4B:: @ 080CBF4B + .incbin "baserom.gba", 0x0CBF4B, 0x0000009 + +gUnk_080CBF54:: @ 080CBF54 + .incbin "baserom.gba", 0x0CBF54, 0x0000009 + +gUnk_080CBF5D:: @ 080CBF5D + .incbin "baserom.gba", 0x0CBF5D, 0x0000009 + +gUnk_080CBF66:: @ 080CBF66 + .incbin "baserom.gba", 0x0CBF66, 0x0000009 + +gUnk_080CBF6F:: @ 080CBF6F + .incbin "baserom.gba", 0x0CBF6F, 0x0000009 + +gUnk_080CBF78:: @ 080CBF78 + .incbin "baserom.gba", 0x0CBF78, 0x0000024 + +gUnk_080CBF9C:: @ 080CBF9C + .incbin "baserom.gba", 0x0CBF9C, 0x0000018 + +gUnk_080CBFB4:: @ 080CBFB4 + .incbin "baserom.gba", 0x0CBFB4, 0x0000034 + +gUnk_080CBFE8:: @ 080CBFE8 + .incbin "baserom.gba", 0x0CBFE8, 0x0000004 + +gUnk_080CBFEC:: @ 080CBFEC + .incbin "baserom.gba", 0x0CBFEC, 0x000000C + +gUnk_080CBFF8:: @ 080CBFF8 + .incbin "baserom.gba", 0x0CBFF8, 0x0000008 + +gUnk_080CC000:: @ 080CC000 + .incbin "baserom.gba", 0x0CC000, 0x0000020 + +gUnk_080CC020:: @ 080CC020 + .incbin "baserom.gba", 0x0CC020, 0x0000030 + +gUnk_080CC050:: @ 080CC050 + .incbin "baserom.gba", 0x0CC050, 0x0000008 + +gUnk_080CC058:: @ 080CC058 + .incbin "baserom.gba", 0x0CC058, 0x000000B + +gUnk_080CC063:: @ 080CC063 + .incbin "baserom.gba", 0x0CC063, 0x0000011 + +gUnk_080CC074:: @ 080CC074 + .incbin "baserom.gba", 0x0CC074, 0x0000011 + +gUnk_080CC085:: @ 080CC085 + .incbin "baserom.gba", 0x0CC085, 0x000000B + +gUnk_080CC090:: @ 080CC090 + .incbin "baserom.gba", 0x0CC090, 0x0000010 + +gUnk_080CC0A0:: @ 080CC0A0 + .incbin "baserom.gba", 0x0CC0A0, 0x0000008 + +gUnk_080CC0A8:: @ 080CC0A8 + .incbin "baserom.gba", 0x0CC0A8, 0x0000012 + +gUnk_080CC0BA:: @ 080CC0BA + .incbin "baserom.gba", 0x0CC0BA, 0x0000008 + +gUnk_080CC0C2:: @ 080CC0C2 + .incbin "baserom.gba", 0x0CC0C2, 0x0000008 + +gUnk_080CC0CA:: @ 080CC0CA + .incbin "baserom.gba", 0x0CC0CA, 0x0000041 + +gUnk_080CC10B:: @ 080CC10B + .incbin "baserom.gba", 0x0CC10B, 0x000000D + +gUnk_080CC118:: @ 080CC118 + .incbin "baserom.gba", 0x0CC118, 0x0000009 + +gUnk_080CC121:: @ 080CC121 + .incbin "baserom.gba", 0x0CC121, 0x0000010 + +gUnk_080CC131:: @ 080CC131 + .incbin "baserom.gba", 0x0CC131, 0x000000D + +gUnk_080CC13E:: @ 080CC13E + .incbin "baserom.gba", 0x0CC13E, 0x000000D + +gUnk_080CC14B:: @ 080CC14B + .incbin "baserom.gba", 0x0CC14B, 0x000000D + +gUnk_080CC158:: @ 080CC158 + .incbin "baserom.gba", 0x0CC158, 0x000000D + +gUnk_080CC165:: @ 080CC165 + .incbin "baserom.gba", 0x0CC165, 0x000000F + +gUnk_080CC174:: @ 080CC174 + .incbin "baserom.gba", 0x0CC174, 0x0000028 + +gUnk_080CC19C:: @ 080CC19C + .incbin "baserom.gba", 0x0CC19C, 0x0000014 + +gUnk_080CC1B0:: @ 080CC1B0 + .incbin "baserom.gba", 0x0CC1B0, 0x0000008 + +gUnk_080CC1B8:: @ 080CC1B8 + .incbin "baserom.gba", 0x0CC1B8, 0x0000010 + +gUnk_080CC1C8:: @ 080CC1C8 + .incbin "baserom.gba", 0x0CC1C8, 0x0000014 + +gUnk_080CC1DC:: @ 080CC1DC + .incbin "baserom.gba", 0x0CC1DC, 0x0000030 + +gUnk_080CC20C:: @ 080CC20C + .incbin "baserom.gba", 0x0CC20C, 0x0000028 + +gUnk_080CC234:: @ 080CC234 + .incbin "baserom.gba", 0x0CC234, 0x000001B + +gUnk_080CC24F:: @ 080CC24F + .incbin "baserom.gba", 0x0CC24F, 0x0000009 + +gUnk_080CC258:: @ 080CC258 + .incbin "baserom.gba", 0x0CC258, 0x000000C + +gUnk_080CC264:: @ 080CC264 + .incbin "baserom.gba", 0x0CC264, 0x0000008 + +gUnk_080CC26C:: @ 080CC26C + .incbin "baserom.gba", 0x0CC26C, 0x000000C + +gUnk_080CC278:: @ 080CC278 + .incbin "baserom.gba", 0x0CC278, 0x0000004 + +gUnk_080CC27C:: @ 080CC27C + .incbin "baserom.gba", 0x0CC27C, 0x0000020 + +gUnk_080CC29C:: @ 080CC29C + .incbin "baserom.gba", 0x0CC29C, 0x0000020 + +gUnk_080CC2BC:: @ 080CC2BC + .incbin "baserom.gba", 0x0CC2BC, 0x0000020 + +gUnk_080CC2DC:: @ 080CC2DC + .incbin "baserom.gba", 0x0CC2DC, 0x0000003 + +gUnk_080CC2DF:: @ 080CC2DF + .incbin "baserom.gba", 0x0CC2DF, 0x0000004 + +gUnk_080CC2E3:: @ 080CC2E3 + .incbin "baserom.gba", 0x0CC2E3, 0x0000004 + +gUnk_080CC2E7:: @ 080CC2E7 + .incbin "baserom.gba", 0x0CC2E7, 0x0000004 + +gUnk_080CC2EB:: @ 080CC2EB + .incbin "baserom.gba", 0x0CC2EB, 0x0000004 + +gUnk_080CC2EF:: @ 080CC2EF + .incbin "baserom.gba", 0x0CC2EF, 0x0000005 + +gUnk_080CC2F4:: @ 080CC2F4 + .incbin "baserom.gba", 0x0CC2F4, 0x0000011 + +gUnk_080CC305:: @ 080CC305 + .incbin "baserom.gba", 0x0CC305, 0x0000019 + +gUnk_080CC31E:: @ 080CC31E + .incbin "baserom.gba", 0x0CC31E, 0x000000D + +gUnk_080CC32B:: @ 080CC32B + .incbin "baserom.gba", 0x0CC32B, 0x000000D + +gUnk_080CC338:: @ 080CC338 + .incbin "baserom.gba", 0x0CC338, 0x0000005 + +gUnk_080CC33D:: @ 080CC33D + .incbin "baserom.gba", 0x0CC33D, 0x0000009 + +gUnk_080CC346:: @ 080CC346 + .incbin "baserom.gba", 0x0CC346, 0x000000D + +gUnk_080CC353:: @ 080CC353 + .incbin "baserom.gba", 0x0CC353, 0x0000009 + +gUnk_080CC35C:: @ 080CC35C + .incbin "baserom.gba", 0x0CC35C, 0x000000D + +gUnk_080CC369:: @ 080CC369 + .incbin "baserom.gba", 0x0CC369, 0x0000009 + +gUnk_080CC372:: @ 080CC372 + .incbin "baserom.gba", 0x0CC372, 0x0000009 + +gUnk_080CC37B:: @ 080CC37B + .incbin "baserom.gba", 0x0CC37B, 0x0000021 + +gUnk_080CC39C:: @ 080CC39C + .incbin "baserom.gba", 0x0CC39C, 0x0000038 + +gUnk_080CC3D4:: @ 080CC3D4 + .incbin "baserom.gba", 0x0CC3D4, 0x0000038 + +gUnk_080CC40C:: @ 080CC40C + .incbin "baserom.gba", 0x0CC40C, 0x0000034 + +gUnk_080CC440:: @ 080CC440 + .incbin "baserom.gba", 0x0CC440, 0x0000038 + +gUnk_080CC478:: @ 080CC478 + .incbin "baserom.gba", 0x0CC478, 0x0000038 + +gUnk_080CC4B0:: @ 080CC4B0 + .incbin "baserom.gba", 0x0CC4B0, 0x0000065 + +gUnk_080CC515:: @ 080CC515 + .incbin "baserom.gba", 0x0CC515, 0x000006D + +gUnk_080CC582:: @ 080CC582 + .incbin "baserom.gba", 0x0CC582, 0x000006D + +gUnk_080CC5EF:: @ 080CC5EF + .incbin "baserom.gba", 0x0CC5EF, 0x000006D + +gUnk_080CC65C:: @ 080CC65C + .incbin "baserom.gba", 0x0CC65C, 0x0000021 + +gUnk_080CC67D:: @ 080CC67D + .incbin "baserom.gba", 0x0CC67D, 0x0000007 + +gUnk_080CC684:: @ 080CC684 + .incbin "baserom.gba", 0x0CC684, 0x0000018 + +gUnk_080CC69C:: @ 080CC69C + .incbin "baserom.gba", 0x0CC69C, 0x0000038 + +gUnk_080CC6D4:: @ 080CC6D4 + .incbin "baserom.gba", 0x0CC6D4, 0x0000028 + +gUnk_080CC6FC:: @ 080CC6FC + .incbin "baserom.gba", 0x0CC6FC, 0x0000018 + +gUnk_080CC714:: @ 080CC714 + .incbin "baserom.gba", 0x0CC714, 0x0000020 + +gUnk_080CC734:: @ 080CC734 + .incbin "baserom.gba", 0x0CC734, 0x0000025 + +gUnk_080CC759:: @ 080CC759 + .incbin "baserom.gba", 0x0CC759, 0x0000015 + +gUnk_080CC76E:: @ 080CC76E + .incbin "baserom.gba", 0x0CC76E, 0x0000012 + +gUnk_080CC780:: @ 080CC780 + .incbin "baserom.gba", 0x0CC780, 0x0000010 + +gUnk_080CC790:: @ 080CC790 + .incbin "baserom.gba", 0x0CC790, 0x0000018 + +gUnk_080CC7A8:: @ 080CC7A8 + .incbin "baserom.gba", 0x0CC7A8, 0x0000014 + +gUnk_080CC7BC:: @ 080CC7BC + .incbin "baserom.gba", 0x0CC7BC, 0x0000004 + +gUnk_080CC7C0:: @ 080CC7C0 + .incbin "baserom.gba", 0x0CC7C0, 0x0000010 + +gUnk_080CC7D0:: @ 080CC7D0 + .incbin "baserom.gba", 0x0CC7D0, 0x0000008 + +gUnk_080CC7D8:: @ 080CC7D8 + .incbin "baserom.gba", 0x0CC7D8, 0x0000008 + +gUnk_080CC7E0:: @ 080CC7E0 + .incbin "baserom.gba", 0x0CC7E0, 0x0000009 + +gUnk_080CC7E9:: @ 080CC7E9 + .incbin "baserom.gba", 0x0CC7E9, 0x0000009 + +gUnk_080CC7F2:: @ 080CC7F2 + .incbin "baserom.gba", 0x0CC7F2, 0x0000009 + +gUnk_080CC7FB:: @ 080CC7FB + .incbin "baserom.gba", 0x0CC7FB, 0x0000009 + +gUnk_080CC804:: @ 080CC804 + .incbin "baserom.gba", 0x0CC804, 0x0000011 + +gUnk_080CC815:: @ 080CC815 + .incbin "baserom.gba", 0x0CC815, 0x0000011 + +gUnk_080CC826:: @ 080CC826 + .incbin "baserom.gba", 0x0CC826, 0x0000011 + +gUnk_080CC837:: @ 080CC837 + .incbin "baserom.gba", 0x0CC837, 0x0000011 + +gUnk_080CC848:: @ 080CC848 + .incbin "baserom.gba", 0x0CC848, 0x0000011 + +gUnk_080CC859:: @ 080CC859 + .incbin "baserom.gba", 0x0CC859, 0x0000011 + +gUnk_080CC86A:: @ 080CC86A + .incbin "baserom.gba", 0x0CC86A, 0x0000011 + +gUnk_080CC87B:: @ 080CC87B + .incbin "baserom.gba", 0x0CC87B, 0x0000011 + +gUnk_080CC88C:: @ 080CC88C + .incbin "baserom.gba", 0x0CC88C, 0x0000015 + +gUnk_080CC8A1:: @ 080CC8A1 + .incbin "baserom.gba", 0x0CC8A1, 0x0000015 + +gUnk_080CC8B6:: @ 080CC8B6 + .incbin "baserom.gba", 0x0CC8B6, 0x0000015 + +gUnk_080CC8CB:: @ 080CC8CB + .incbin "baserom.gba", 0x0CC8CB, 0x0000015 + +gUnk_080CC8E0:: @ 080CC8E0 + .incbin "baserom.gba", 0x0CC8E0, 0x0000044 + +gUnk_080CC924:: @ 080CC924 + .incbin "baserom.gba", 0x0CC924, 0x0000008 + +gUnk_080CC92C:: @ 080CC92C + .incbin "baserom.gba", 0x0CC92C, 0x0000008 + +gUnk_080CC934:: @ 080CC934 + .incbin "baserom.gba", 0x0CC934, 0x0000008 + +gUnk_080CC93C:: @ 080CC93C + .incbin "baserom.gba", 0x0CC93C, 0x0000008 + +gUnk_080CC944:: @ 080CC944 + .incbin "baserom.gba", 0x0CC944, 0x0000010 + +gUnk_080CC954:: @ 080CC954 + .incbin "baserom.gba", 0x0CC954, 0x000006C + +gUnk_080CC9C0:: @ 080CC9C0 + .incbin "baserom.gba", 0x0CC9C0, 0x0000008 + +gUnk_080CC9C8:: @ 080CC9C8 + .incbin "baserom.gba", 0x0CC9C8, 0x0000018 + +gUnk_080CC9E0:: @ 080CC9E0 + .incbin "baserom.gba", 0x0CC9E0, 0x0000024 + +gUnk_080CCA04:: @ 080CCA04 + .incbin "baserom.gba", 0x0CCA04, 0x0000006 + +gUnk_080CCA0A:: @ 080CCA0A + .incbin "baserom.gba", 0x0CCA0A, 0x0000015 + +gUnk_080CCA1F:: @ 080CCA1F + .incbin "baserom.gba", 0x0CCA1F, 0x0000015 + +gUnk_080CCA34:: @ 080CCA34 + .incbin "baserom.gba", 0x0CCA34, 0x0000015 + +gUnk_080CCA49:: @ 080CCA49 + .incbin "baserom.gba", 0x0CCA49, 0x0000015 + +gUnk_080CCA5E:: @ 080CCA5E + .incbin "baserom.gba", 0x0CCA5E, 0x0000011 + +gUnk_080CCA6F:: @ 080CCA6F + .incbin "baserom.gba", 0x0CCA6F, 0x0000011 + +gUnk_080CCA80:: @ 080CCA80 + .incbin "baserom.gba", 0x0CCA80, 0x0000011 + +gUnk_080CCA91:: @ 080CCA91 + .incbin "baserom.gba", 0x0CCA91, 0x0000011 + +gUnk_080CCAA2:: @ 080CCAA2 + .incbin "baserom.gba", 0x0CCAA2, 0x0000005 + +gUnk_080CCAA7:: @ 080CCAA7 + .incbin "baserom.gba", 0x0CCAA7, 0x0000005 + +gUnk_080CCAAC:: @ 080CCAAC + .incbin "baserom.gba", 0x0CCAAC, 0x0000005 + +gUnk_080CCAB1:: @ 080CCAB1 + .incbin "baserom.gba", 0x0CCAB1, 0x0000005 + +gUnk_080CCAB6:: @ 080CCAB6 + .incbin "baserom.gba", 0x0CCAB6, 0x0000010 + +gUnk_080CCAC6:: @ 080CCAC6 + .incbin "baserom.gba", 0x0CCAC6, 0x0000010 + +gUnk_080CCAD6:: @ 080CCAD6 + .incbin "baserom.gba", 0x0CCAD6, 0x0000010 + +gUnk_080CCAE6:: @ 080CCAE6 + .incbin "baserom.gba", 0x0CCAE6, 0x0000010 + +gUnk_080CCAF6:: @ 080CCAF6 + .incbin "baserom.gba", 0x0CCAF6, 0x0000011 + +gUnk_080CCB07:: @ 080CCB07 + .incbin "baserom.gba", 0x0CCB07, 0x0000011 + +gUnk_080CCB18:: @ 080CCB18 + .incbin "baserom.gba", 0x0CCB18, 0x0000011 + +gUnk_080CCB29:: @ 080CCB29 + .incbin "baserom.gba", 0x0CCB29, 0x0000011 + +gUnk_080CCB3A:: @ 080CCB3A + .incbin "baserom.gba", 0x0CCB3A, 0x000000D + +gUnk_080CCB47:: @ 080CCB47 + .incbin "baserom.gba", 0x0CCB47, 0x000000D + +gUnk_080CCB54:: @ 080CCB54 + .incbin "baserom.gba", 0x0CCB54, 0x000000D + +gUnk_080CCB61:: @ 080CCB61 + .incbin "baserom.gba", 0x0CCB61, 0x000000D + +gUnk_080CCB6E:: @ 080CCB6E + .incbin "baserom.gba", 0x0CCB6E, 0x0000011 + +gUnk_080CCB7F:: @ 080CCB7F + .incbin "baserom.gba", 0x0CCB7F, 0x0000015 + +gUnk_080CCB94:: @ 080CCB94 + .incbin "baserom.gba", 0x0CCB94, 0x000006C + +gUnk_080CCC00:: @ 080CCC00 + .incbin "baserom.gba", 0x0CCC00, 0x0000018 + +gUnk_080CCC18:: @ 080CCC18 + .incbin "baserom.gba", 0x0CCC18, 0x000001C + +gUnk_080CCC34:: @ 080CCC34 + .incbin "baserom.gba", 0x0CCC34, 0x0000008 + +gUnk_080CCC3C:: @ 080CCC3C + .incbin "baserom.gba", 0x0CCC3C, 0x0000008 + +gUnk_080CCC44:: @ 080CCC44 + .incbin "baserom.gba", 0x0CCC44, 0x0000003 + +gUnk_080CCC47:: @ 080CCC47 + .incbin "baserom.gba", 0x0CCC47, 0x0000003 + +gUnk_080CCC4A:: @ 080CCC4A + .incbin "baserom.gba", 0x0CCC4A, 0x0000015 + +gUnk_080CCC5F:: @ 080CCC5F + .incbin "baserom.gba", 0x0CCC5F, 0x0000015 + +gUnk_080CCC74:: @ 080CCC74 + .incbin "baserom.gba", 0x0CCC74, 0x0000028 + +gUnk_080CCC9C:: @ 080CCC9C + .incbin "baserom.gba", 0x0CCC9C, 0x0000018 + +gUnk_080CCCB4:: @ 080CCCB4 + .incbin "baserom.gba", 0x0CCCB4, 0x0000015 + +gUnk_080CCCC9:: @ 080CCCC9 + .incbin "baserom.gba", 0x0CCCC9, 0x0000015 + +gUnk_080CCCDE:: @ 080CCCDE + .incbin "baserom.gba", 0x0CCCDE, 0x0000028 + +gUnk_080CCD06:: @ 080CCD06 + .incbin "baserom.gba", 0x0CCD06, 0x000001A + +gUnk_080CCD20:: @ 080CCD20 + .incbin "baserom.gba", 0x0CCD20, 0x0000024 + +gUnk_080CCD44:: @ 080CCD44 + .incbin "baserom.gba", 0x0CCD44, 0x000001C + +gUnk_080CCD60:: @ 080CCD60 + .incbin "baserom.gba", 0x0CCD60, 0x0000018 + +gUnk_080CCD78:: @ 080CCD78 + .incbin "baserom.gba", 0x0CCD78, 0x0000010 + +gUnk_080CCD88:: @ 080CCD88 + .incbin "baserom.gba", 0x0CCD88, 0x0000018 + +gUnk_080CCDA0:: @ 080CCDA0 + .incbin "baserom.gba", 0x0CCDA0, 0x0000008 + +gUnk_080CCDA8:: @ 080CCDA8 + .incbin "baserom.gba", 0x0CCDA8, 0x0000020 + +gUnk_080CCDC8:: @ 080CCDC8 + .incbin "baserom.gba", 0x0CCDC8, 0x000000C + +gUnk_080CCDD4:: @ 080CCDD4 + .incbin "baserom.gba", 0x0CCDD4, 0x0000008 + +gUnk_080CCDDC:: @ 080CCDDC + .incbin "baserom.gba", 0x0CCDDC, 0x0000011 + +gUnk_080CCDED:: @ 080CCDED + .incbin "baserom.gba", 0x0CCDED, 0x0000011 + +gUnk_080CCDFE:: @ 080CCDFE + .incbin "baserom.gba", 0x0CCDFE, 0x0000011 + +gUnk_080CCE0F:: @ 080CCE0F + .incbin "baserom.gba", 0x0CCE0F, 0x0000011 + +gUnk_080CCE20:: @ 080CCE20 + .incbin "baserom.gba", 0x0CCE20, 0x0000011 + +gUnk_080CCE31:: @ 080CCE31 + .incbin "baserom.gba", 0x0CCE31, 0x0000011 + +gUnk_080CCE42:: @ 080CCE42 + .incbin "baserom.gba", 0x0CCE42, 0x0000011 + +gUnk_080CCE53:: @ 080CCE53 + .incbin "baserom.gba", 0x0CCE53, 0x0000011 + +gUnk_080CCE64:: @ 080CCE64 + .incbin "baserom.gba", 0x0CCE64, 0x0000024 + +gUnk_080CCE88:: @ 080CCE88 + .incbin "baserom.gba", 0x0CCE88, 0x0000011 + +gUnk_080CCE99:: @ 080CCE99 + .incbin "baserom.gba", 0x0CCE99, 0x0000011 + +gUnk_080CCEAA:: @ 080CCEAA + .incbin "baserom.gba", 0x0CCEAA, 0x0000011 + +gUnk_080CCEBB:: @ 080CCEBB + .incbin "baserom.gba", 0x0CCEBB, 0x0000011 + +gUnk_080CCECC:: @ 080CCECC + .incbin "baserom.gba", 0x0CCECC, 0x0000011 + +gUnk_080CCEDD:: @ 080CCEDD + .incbin "baserom.gba", 0x0CCEDD, 0x0000011 + +gUnk_080CCEEE:: @ 080CCEEE + .incbin "baserom.gba", 0x0CCEEE, 0x0000011 + +gUnk_080CCEFF:: @ 080CCEFF + .incbin "baserom.gba", 0x0CCEFF, 0x0000011 + +gUnk_080CCF10:: @ 080CCF10 + .incbin "baserom.gba", 0x0CCF10, 0x0000005 + +gUnk_080CCF15:: @ 080CCF15 + .incbin "baserom.gba", 0x0CCF15, 0x0000005 + +gUnk_080CCF1A:: @ 080CCF1A + .incbin "baserom.gba", 0x0CCF1A, 0x0000005 + +gUnk_080CCF1F:: @ 080CCF1F + .incbin "baserom.gba", 0x0CCF1F, 0x0000005 + +gUnk_080CCF24:: @ 080CCF24 + .incbin "baserom.gba", 0x0CCF24, 0x000001D + +gUnk_080CCF41:: @ 080CCF41 + .incbin "baserom.gba", 0x0CCF41, 0x000001D + +gUnk_080CCF5E:: @ 080CCF5E + .incbin "baserom.gba", 0x0CCF5E, 0x000001D + +gUnk_080CCF7B:: @ 080CCF7B + .incbin "baserom.gba", 0x0CCF7B, 0x000001D + +gUnk_080CCF98:: @ 080CCF98 + .incbin "baserom.gba", 0x0CCF98, 0x0000011 + +gUnk_080CCFA9:: @ 080CCFA9 + .incbin "baserom.gba", 0x0CCFA9, 0x0000011 + +gUnk_080CCFBA:: @ 080CCFBA + .incbin "baserom.gba", 0x0CCFBA, 0x0000011 + +gUnk_080CCFCB:: @ 080CCFCB + .incbin "baserom.gba", 0x0CCFCB, 0x0000011 + +gUnk_080CCFDC:: @ 080CCFDC + .incbin "baserom.gba", 0x0CCFDC, 0x0000054 + +gUnk_080CD030:: @ 080CD030 + .incbin "baserom.gba", 0x0CD030, 0x000000C + +gUnk_080CD03C:: @ 080CD03C + .incbin "baserom.gba", 0x0CD03C, 0x0000004 + +gUnk_080CD040:: @ 080CD040 + .incbin "baserom.gba", 0x0CD040, 0x0000004 + +gUnk_080CD044:: @ 080CD044 + .incbin "baserom.gba", 0x0CD044, 0x0000025 + +gUnk_080CD069:: @ 080CD069 + .incbin "baserom.gba", 0x0CD069, 0x0000007 + +gUnk_080CD070:: @ 080CD070 + .incbin "baserom.gba", 0x0CD070, 0x000000C + +gUnk_080CD07C:: @ 080CD07C + .incbin "baserom.gba", 0x0CD07C, 0x0000018 + +gUnk_080CD094:: @ 080CD094 + .incbin "baserom.gba", 0x0CD094, 0x000001C + +gUnk_080CD0B0:: @ 080CD0B0 + .incbin "baserom.gba", 0x0CD0B0, 0x0000008 + +gUnk_080CD0B8:: @ 080CD0B8 + .incbin "baserom.gba", 0x0CD0B8, 0x000000D + +gUnk_080CD0C5:: @ 080CD0C5 + .incbin "baserom.gba", 0x0CD0C5, 0x0000015 + +gUnk_080CD0DA:: @ 080CD0DA + .incbin "baserom.gba", 0x0CD0DA, 0x0000006 + +gUnk_080CD0E0:: @ 080CD0E0 + .incbin "baserom.gba", 0x0CD0E0, 0x0000010 + +gUnk_080CD0F0:: @ 080CD0F0 + .incbin "baserom.gba", 0x0CD0F0, 0x0000018 + +gUnk_080CD108:: @ 080CD108 + .incbin "baserom.gba", 0x0CD108, 0x0000018 + +gUnk_080CD120:: @ 080CD120 + .incbin "baserom.gba", 0x0CD120, 0x0000014 + +gUnk_080CD134:: @ 080CD134 + .incbin "baserom.gba", 0x0CD134, 0x000000C + +gUnk_080CD140:: @ 080CD140 + .incbin "baserom.gba", 0x0CD140, 0x0000018 + +gUnk_080CD158:: @ 080CD158 + .incbin "baserom.gba", 0x0CD158, 0x0000014 + +gUnk_080CD16C:: @ 080CD16C + .incbin "baserom.gba", 0x0CD16C, 0x0000008 + +gUnk_080CD174:: @ 080CD174 + .incbin "baserom.gba", 0x0CD174, 0x0000008 + +gUnk_080CD17C:: @ 080CD17C + .incbin "baserom.gba", 0x0CD17C, 0x0000008 + +gUnk_080CD184:: @ 080CD184 + .incbin "baserom.gba", 0x0CD184, 0x0000011 + +gUnk_080CD195:: @ 080CD195 + .incbin "baserom.gba", 0x0CD195, 0x0000041 + +gUnk_080CD1D6:: @ 080CD1D6 + .incbin "baserom.gba", 0x0CD1D6, 0x0000041 + +gUnk_080CD217:: @ 080CD217 + .incbin "baserom.gba", 0x0CD217, 0x0000009 + +gUnk_080CD220:: @ 080CD220 + .incbin "baserom.gba", 0x0CD220, 0x0000014 + +gUnk_080CD234:: @ 080CD234 + .incbin "baserom.gba", 0x0CD234, 0x0000018 + +gUnk_080CD24C:: @ 080CD24C + .incbin "baserom.gba", 0x0CD24C, 0x000000C + +gUnk_080CD258:: @ 080CD258 + .incbin "baserom.gba", 0x0CD258, 0x000001C + +gUnk_080CD274:: @ 080CD274 + .incbin "baserom.gba", 0x0CD274, 0x0000008 + +gUnk_080CD27C:: @ 080CD27C + .incbin "baserom.gba", 0x0CD27C, 0x000001C + +gUnk_080CD298:: @ 080CD298 + .incbin "baserom.gba", 0x0CD298, 0x0000010 + +gUnk_080CD2A8:: @ 080CD2A8 + .incbin "baserom.gba", 0x0CD2A8, 0x0000004 + +gUnk_080CD2AC:: @ 080CD2AC + .incbin "baserom.gba", 0x0CD2AC, 0x0000011 + +gUnk_080CD2BD:: @ 080CD2BD + .incbin "baserom.gba", 0x0CD2BD, 0x000000B + +gUnk_080CD2C8:: @ 080CD2C8 + .incbin "baserom.gba", 0x0CD2C8, 0x0000010 + +gUnk_080CD2D8:: @ 080CD2D8 + .incbin "baserom.gba", 0x0CD2D8, 0x0000018 + +gUnk_080CD2F0:: @ 080CD2F0 + .incbin "baserom.gba", 0x0CD2F0, 0x0000024 + +gUnk_080CD314:: @ 080CD314 + .incbin "baserom.gba", 0x0CD314, 0x0000004 + +gUnk_080CD318:: @ 080CD318 + .incbin "baserom.gba", 0x0CD318, 0x0000004 + +gUnk_080CD31C:: @ 080CD31C + .incbin "baserom.gba", 0x0CD31C, 0x0000011 + +gUnk_080CD32D:: @ 080CD32D + .incbin "baserom.gba", 0x0CD32D, 0x0000011 + +gUnk_080CD33E:: @ 080CD33E + .incbin "baserom.gba", 0x0CD33E, 0x0000011 + +gUnk_080CD34F:: @ 080CD34F + .incbin "baserom.gba", 0x0CD34F, 0x0000011 + +gUnk_080CD360:: @ 080CD360 + .incbin "baserom.gba", 0x0CD360, 0x0000008 + +gUnk_080CD368:: @ 080CD368 + .incbin "baserom.gba", 0x0CD368, 0x0000008 + +gUnk_080CD370:: @ 080CD370 + .incbin "baserom.gba", 0x0CD370, 0x0000008 + +gUnk_080CD378:: @ 080CD378 + .incbin "baserom.gba", 0x0CD378, 0x0000008 + +gUnk_080CD380:: @ 080CD380 + .incbin "baserom.gba", 0x0CD380, 0x0000011 + +gUnk_080CD391:: @ 080CD391 + .incbin "baserom.gba", 0x0CD391, 0x0000007 + +gUnk_080CD398:: @ 080CD398 + .incbin "baserom.gba", 0x0CD398, 0x000002C + +gUnk_080CD3C4:: @ 080CD3C4 + .incbin "baserom.gba", 0x0CD3C4, 0x0000010 + +gUnk_080CD3D4:: @ 080CD3D4 + .incbin "baserom.gba", 0x0CD3D4, 0x0000008 + +gUnk_080CD3DC:: @ 080CD3DC + .incbin "baserom.gba", 0x0CD3DC, 0x0000008 + +gUnk_080CD3E4:: @ 080CD3E4 + .incbin "baserom.gba", 0x0CD3E4, 0x0000018 + +gUnk_080CD3FC:: @ 080CD3FC + .incbin "baserom.gba", 0x0CD3FC, 0x000000C + +gUnk_080CD408:: @ 080CD408 + .incbin "baserom.gba", 0x0CD408, 0x0000024 + +gUnk_080CD42C:: @ 080CD42C + .incbin "baserom.gba", 0x0CD42C, 0x000000C + +gUnk_080CD438:: @ 080CD438 + .incbin "baserom.gba", 0x0CD438, 0x0000018 + +gUnk_080CD450:: @ 080CD450 + .incbin "baserom.gba", 0x0CD450, 0x000000C + +gUnk_080CD45C:: @ 080CD45C + .incbin "baserom.gba", 0x0CD45C, 0x0000008 + +gUnk_080CD464:: @ 080CD464 + .incbin "baserom.gba", 0x0CD464, 0x0000010 + +gUnk_080CD474:: @ 080CD474 + .incbin "baserom.gba", 0x0CD474, 0x0000011 + +gUnk_080CD485:: @ 080CD485 + .incbin "baserom.gba", 0x0CD485, 0x0000011 + +gUnk_080CD496:: @ 080CD496 + .incbin "baserom.gba", 0x0CD496, 0x0000011 + +gUnk_080CD4A7:: @ 080CD4A7 + .incbin "baserom.gba", 0x0CD4A7, 0x0000011 + +gUnk_080CD4B8:: @ 080CD4B8 + .incbin "baserom.gba", 0x0CD4B8, 0x0000011 + +gUnk_080CD4C9:: @ 080CD4C9 + .incbin "baserom.gba", 0x0CD4C9, 0x0000011 + +gUnk_080CD4DA:: @ 080CD4DA + .incbin "baserom.gba", 0x0CD4DA, 0x0000011 + +gUnk_080CD4EB:: @ 080CD4EB + .incbin "baserom.gba", 0x0CD4EB, 0x0000011 + +gUnk_080CD4FC:: @ 080CD4FC + .incbin "baserom.gba", 0x0CD4FC, 0x0000004 + +gUnk_080CD500:: @ 080CD500 + .incbin "baserom.gba", 0x0CD500, 0x0000004 + +gUnk_080CD504:: @ 080CD504 + .incbin "baserom.gba", 0x0CD504, 0x0000004 + +gUnk_080CD508:: @ 080CD508 + .incbin "baserom.gba", 0x0CD508, 0x0000004 + +gUnk_080CD50C:: @ 080CD50C + .incbin "baserom.gba", 0x0CD50C, 0x0000034 + +gUnk_080CD540:: @ 080CD540 + .incbin "baserom.gba", 0x0CD540, 0x0000018 + +gUnk_080CD558:: @ 080CD558 + .incbin "baserom.gba", 0x0CD558, 0x0000010 + +gUnk_080CD568:: @ 080CD568 + .incbin "baserom.gba", 0x0CD568, 0x0000018 + +gUnk_080CD580:: @ 080CD580 + .incbin "baserom.gba", 0x0CD580, 0x000000C + +gUnk_080CD58C:: @ 080CD58C + .incbin "baserom.gba", 0x0CD58C, 0x0000018 + +gUnk_080CD5A4:: @ 080CD5A4 + .incbin "baserom.gba", 0x0CD5A4, 0x0000011 + +gUnk_080CD5B5:: @ 080CD5B5 + .incbin "baserom.gba", 0x0CD5B5, 0x0000013 + +gUnk_080CD5C8:: @ 080CD5C8 + .incbin "baserom.gba", 0x0CD5C8, 0x000000C + +gUnk_080CD5D4:: @ 080CD5D4 + .incbin "baserom.gba", 0x0CD5D4, 0x0000018 + +gUnk_080CD5EC:: @ 080CD5EC + .incbin "baserom.gba", 0x0CD5EC, 0x0000014 + +gUnk_080CD600:: @ 080CD600 + .incbin "baserom.gba", 0x0CD600, 0x0000018 + +gUnk_080CD618:: @ 080CD618 + .incbin "baserom.gba", 0x0CD618, 0x0000010 + +gUnk_080CD628:: @ 080CD628 + .incbin "baserom.gba", 0x0CD628, 0x0000011 + +gUnk_080CD639:: @ 080CD639 + .incbin "baserom.gba", 0x0CD639, 0x0000011 + +gUnk_080CD64A:: @ 080CD64A + .incbin "baserom.gba", 0x0CD64A, 0x0000011 + +gUnk_080CD65B:: @ 080CD65B + .incbin "baserom.gba", 0x0CD65B, 0x0000011 + +gUnk_080CD66C:: @ 080CD66C + .incbin "baserom.gba", 0x0CD66C, 0x0000005 + +gUnk_080CD671:: @ 080CD671 + .incbin "baserom.gba", 0x0CD671, 0x0000005 + +gUnk_080CD676:: @ 080CD676 + .incbin "baserom.gba", 0x0CD676, 0x0000009 + +gUnk_080CD67F:: @ 080CD67F + .incbin "baserom.gba", 0x0CD67F, 0x0000009 + +gUnk_080CD688:: @ 080CD688 + .incbin "baserom.gba", 0x0CD688, 0x0000024 + +gUnk_080CD6AC:: @ 080CD6AC + .incbin "baserom.gba", 0x0CD6AC, 0x0000024 + +gUnk_080CD6D0:: @ 080CD6D0 + .incbin "baserom.gba", 0x0CD6D0, 0x000002C + +gUnk_080CD6FC:: @ 080CD6FC + .incbin "baserom.gba", 0x0CD6FC, 0x0000018 + +gUnk_080CD714:: @ 080CD714 + .incbin "baserom.gba", 0x0CD714, 0x0000014 + +gUnk_080CD728:: @ 080CD728 + .incbin "baserom.gba", 0x0CD728, 0x0000008 + +gUnk_080CD730:: @ 080CD730 + .incbin "baserom.gba", 0x0CD730, 0x0000010 + +gUnk_080CD740:: @ 080CD740 + .incbin "baserom.gba", 0x0CD740, 0x0000008 + +gUnk_080CD748:: @ 080CD748 + .incbin "baserom.gba", 0x0CD748, 0x0000014 + +gUnk_080CD75C:: @ 080CD75C + .incbin "baserom.gba", 0x0CD75C, 0x0000018 + +gUnk_080CD774:: @ 080CD774 + .incbin "baserom.gba", 0x0CD774, 0x0000044 + +gUnk_080CD7B8:: @ 080CD7B8 + .incbin "baserom.gba", 0x0CD7B8, 0x000000C + +gUnk_080CD7C4:: @ 080CD7C4 + .incbin "baserom.gba", 0x0CD7C4, 0x0000020 + +gUnk_080CD7E4:: @ 080CD7E4 + .incbin "baserom.gba", 0x0CD7E4, 0x0000014 + +gUnk_080CD7F8:: @ 080CD7F8 + .incbin "baserom.gba", 0x0CD7F8, 0x0000018 + +gUnk_080CD810:: @ 080CD810 + .incbin "baserom.gba", 0x0CD810, 0x0000018 + +gUnk_080CD828:: @ 080CD828 + .incbin "baserom.gba", 0x0CD828, 0x0000018 + +gUnk_080CD840:: @ 080CD840 + .incbin "baserom.gba", 0x0CD840, 0x0000004 + +gUnk_080CD844:: @ 080CD844 + .incbin "baserom.gba", 0x0CD844, 0x0000004 + +gUnk_080CD848:: @ 080CD848 + .incbin "baserom.gba", 0x0CD848, 0x0000008 + +gUnk_080CD850:: @ 080CD850 + .incbin "baserom.gba", 0x0CD850, 0x0000004 + +gUnk_080CD854:: @ 080CD854 + .incbin "baserom.gba", 0x0CD854, 0x0000004 + +gUnk_080CD858:: @ 080CD858 + .incbin "baserom.gba", 0x0CD858, 0x0000003 + +gUnk_080CD85B:: @ 080CD85B + .incbin "baserom.gba", 0x0CD85B, 0x0000003 + +gUnk_080CD85E:: @ 080CD85E + .incbin "baserom.gba", 0x0CD85E, 0x0000003 + +gUnk_080CD861:: @ 080CD861 + .incbin "baserom.gba", 0x0CD861, 0x0000003 + +gUnk_080CD864:: @ 080CD864 + .incbin "baserom.gba", 0x0CD864, 0x0000003 + +gUnk_080CD867:: @ 080CD867 + .incbin "baserom.gba", 0x0CD867, 0x0000005 + +gUnk_080CD86C:: @ 080CD86C + .incbin "baserom.gba", 0x0CD86C, 0x000000C + +gUnk_080CD878:: @ 080CD878 + .incbin "baserom.gba", 0x0CD878, 0x000000C + +gUnk_080CD884:: @ 080CD884 + .incbin "baserom.gba", 0x0CD884, 0x000001F + +gUnk_080CD8A3:: @ 080CD8A3 + .incbin "baserom.gba", 0x0CD8A3, 0x0000004 + +gUnk_080CD8A7:: @ 080CD8A7 + .incbin "baserom.gba", 0x0CD8A7, 0x0000004 + +gUnk_080CD8AB:: @ 080CD8AB + .incbin "baserom.gba", 0x0CD8AB, 0x0000004 + +gUnk_080CD8AF:: @ 080CD8AF + .incbin "baserom.gba", 0x0CD8AF, 0x0000004 + +gUnk_080CD8B3:: @ 080CD8B3 + .incbin "baserom.gba", 0x0CD8B3, 0x0000004 + +gUnk_080CD8B7:: @ 080CD8B7 + .incbin "baserom.gba", 0x0CD8B7, 0x0000004 + +gUnk_080CD8BB:: @ 080CD8BB + .incbin "baserom.gba", 0x0CD8BB, 0x0000004 + +gUnk_080CD8BF:: @ 080CD8BF + .incbin "baserom.gba", 0x0CD8BF, 0x0000004 + +gUnk_080CD8C3:: @ 080CD8C3 + .incbin "baserom.gba", 0x0CD8C3, 0x0000004 + +gUnk_080CD8C7:: @ 080CD8C7 + .incbin "baserom.gba", 0x0CD8C7, 0x0000004 + +gUnk_080CD8CB:: @ 080CD8CB + .incbin "baserom.gba", 0x0CD8CB, 0x0000004 + +gUnk_080CD8CF:: @ 080CD8CF + .incbin "baserom.gba", 0x0CD8CF, 0x0000004 + +gUnk_080CD8D3:: @ 080CD8D3 + .incbin "baserom.gba", 0x0CD8D3, 0x0000004 + +gUnk_080CD8D7:: @ 080CD8D7 + .incbin "baserom.gba", 0x0CD8D7, 0x0000004 + +gUnk_080CD8DB:: @ 080CD8DB + .incbin "baserom.gba", 0x0CD8DB, 0x0000004 + +gUnk_080CD8DF:: @ 080CD8DF + .incbin "baserom.gba", 0x0CD8DF, 0x0000004 + +gUnk_080CD8E3:: @ 080CD8E3 + .incbin "baserom.gba", 0x0CD8E3, 0x0000004 + +gUnk_080CD8E7:: @ 080CD8E7 + .incbin "baserom.gba", 0x0CD8E7, 0x0000004 + +gUnk_080CD8EB:: @ 080CD8EB + .incbin "baserom.gba", 0x0CD8EB, 0x0000004 + +gUnk_080CD8EF:: @ 080CD8EF + .incbin "baserom.gba", 0x0CD8EF, 0x0000004 + +gUnk_080CD8F3:: @ 080CD8F3 + .incbin "baserom.gba", 0x0CD8F3, 0x0000004 + +gUnk_080CD8F7:: @ 080CD8F7 + .incbin "baserom.gba", 0x0CD8F7, 0x0000004 + +gUnk_080CD8FB:: @ 080CD8FB + .incbin "baserom.gba", 0x0CD8FB, 0x0000004 + +gUnk_080CD8FF:: @ 080CD8FF + .incbin "baserom.gba", 0x0CD8FF, 0x0000004 + +gUnk_080CD903:: @ 080CD903 + .incbin "baserom.gba", 0x0CD903, 0x0000004 + +gUnk_080CD907:: @ 080CD907 + .incbin "baserom.gba", 0x0CD907, 0x0000004 + +gUnk_080CD90B:: @ 080CD90B + .incbin "baserom.gba", 0x0CD90B, 0x0000004 + +gUnk_080CD90F:: @ 080CD90F + .incbin "baserom.gba", 0x0CD90F, 0x0000004 + +gUnk_080CD913:: @ 080CD913 + .incbin "baserom.gba", 0x0CD913, 0x0000004 + +gUnk_080CD917:: @ 080CD917 + .incbin "baserom.gba", 0x0CD917, 0x0000004 + +gUnk_080CD91B:: @ 080CD91B + .incbin "baserom.gba", 0x0CD91B, 0x0000004 + +gUnk_080CD91F:: @ 080CD91F + .incbin "baserom.gba", 0x0CD91F, 0x0000004 + +gUnk_080CD923:: @ 080CD923 + .incbin "baserom.gba", 0x0CD923, 0x0000004 + +gUnk_080CD927:: @ 080CD927 + .incbin "baserom.gba", 0x0CD927, 0x0000004 + +gUnk_080CD92B:: @ 080CD92B + .incbin "baserom.gba", 0x0CD92B, 0x0000004 + +gUnk_080CD92F:: @ 080CD92F + .incbin "baserom.gba", 0x0CD92F, 0x0000004 + +gUnk_080CD933:: @ 080CD933 + .incbin "baserom.gba", 0x0CD933, 0x0000004 + +gUnk_080CD937:: @ 080CD937 + .incbin "baserom.gba", 0x0CD937, 0x0000004 + +gUnk_080CD93B:: @ 080CD93B + .incbin "baserom.gba", 0x0CD93B, 0x0000004 + +gUnk_080CD93F:: @ 080CD93F + .incbin "baserom.gba", 0x0CD93F, 0x0000004 + +gUnk_080CD943:: @ 080CD943 + .incbin "baserom.gba", 0x0CD943, 0x0000004 + +gUnk_080CD947:: @ 080CD947 + .incbin "baserom.gba", 0x0CD947, 0x0000004 + +gUnk_080CD94B:: @ 080CD94B + .incbin "baserom.gba", 0x0CD94B, 0x0000004 + +gUnk_080CD94F:: @ 080CD94F + .incbin "baserom.gba", 0x0CD94F, 0x0000004 + +gUnk_080CD953:: @ 080CD953 + .incbin "baserom.gba", 0x0CD953, 0x0000004 + +gUnk_080CD957:: @ 080CD957 + .incbin "baserom.gba", 0x0CD957, 0x0000004 + +gUnk_080CD95B:: @ 080CD95B + .incbin "baserom.gba", 0x0CD95B, 0x0000004 + +gUnk_080CD95F:: @ 080CD95F + .incbin "baserom.gba", 0x0CD95F, 0x0000004 + +gUnk_080CD963:: @ 080CD963 + .incbin "baserom.gba", 0x0CD963, 0x0000004 + +gUnk_080CD967:: @ 080CD967 + .incbin "baserom.gba", 0x0CD967, 0x0000004 + +gUnk_080CD96B:: @ 080CD96B + .incbin "baserom.gba", 0x0CD96B, 0x0000004 + +gUnk_080CD96F:: @ 080CD96F + .incbin "baserom.gba", 0x0CD96F, 0x0000004 + +gUnk_080CD973:: @ 080CD973 + .incbin "baserom.gba", 0x0CD973, 0x0000004 + +gUnk_080CD977:: @ 080CD977 + .incbin "baserom.gba", 0x0CD977, 0x0000004 + +gUnk_080CD97B:: @ 080CD97B + .incbin "baserom.gba", 0x0CD97B, 0x0000004 + +gUnk_080CD97F:: @ 080CD97F + .incbin "baserom.gba", 0x0CD97F, 0x0000004 + +gUnk_080CD983:: @ 080CD983 + .incbin "baserom.gba", 0x0CD983, 0x0000004 + +gUnk_080CD987:: @ 080CD987 + .incbin "baserom.gba", 0x0CD987, 0x0000004 + +gUnk_080CD98B:: @ 080CD98B + .incbin "baserom.gba", 0x0CD98B, 0x0000004 + +gUnk_080CD98F:: @ 080CD98F + .incbin "baserom.gba", 0x0CD98F, 0x0000004 + +gUnk_080CD993:: @ 080CD993 + .incbin "baserom.gba", 0x0CD993, 0x0000004 + +gUnk_080CD997:: @ 080CD997 + .incbin "baserom.gba", 0x0CD997, 0x0000004 + +gUnk_080CD99B:: @ 080CD99B + .incbin "baserom.gba", 0x0CD99B, 0x0000004 + +gUnk_080CD99F:: @ 080CD99F + .incbin "baserom.gba", 0x0CD99F, 0x0000004 + +gUnk_080CD9A3:: @ 080CD9A3 + .incbin "baserom.gba", 0x0CD9A3, 0x0000004 + +gUnk_080CD9A7:: @ 080CD9A7 + .incbin "baserom.gba", 0x0CD9A7, 0x0000004 + +gUnk_080CD9AB:: @ 080CD9AB + .incbin "baserom.gba", 0x0CD9AB, 0x0000004 + +gUnk_080CD9AF:: @ 080CD9AF + .incbin "baserom.gba", 0x0CD9AF, 0x0000004 + +gUnk_080CD9B3:: @ 080CD9B3 + .incbin "baserom.gba", 0x0CD9B3, 0x0000004 + +gUnk_080CD9B7:: @ 080CD9B7 + .incbin "baserom.gba", 0x0CD9B7, 0x0000004 + +gUnk_080CD9BB:: @ 080CD9BB + .incbin "baserom.gba", 0x0CD9BB, 0x0000004 + +gUnk_080CD9BF:: @ 080CD9BF + .incbin "baserom.gba", 0x0CD9BF, 0x0000004 + +gUnk_080CD9C3:: @ 080CD9C3 + .incbin "baserom.gba", 0x0CD9C3, 0x0000004 + +gUnk_080CD9C7:: @ 080CD9C7 + .incbin "baserom.gba", 0x0CD9C7, 0x0000004 + +gUnk_080CD9CB:: @ 080CD9CB + .incbin "baserom.gba", 0x0CD9CB, 0x0000004 + +gUnk_080CD9CF:: @ 080CD9CF + .incbin "baserom.gba", 0x0CD9CF, 0x0000010 + +gUnk_080CD9DF:: @ 080CD9DF + .incbin "baserom.gba", 0x0CD9DF, 0x000001C + +gUnk_080CD9FB:: @ 080CD9FB + .incbin "baserom.gba", 0x0CD9FB, 0x0000004 + +gUnk_080CD9FF:: @ 080CD9FF + .incbin "baserom.gba", 0x0CD9FF, 0x0000004 + +gUnk_080CDA03:: @ 080CDA03 + .incbin "baserom.gba", 0x0CDA03, 0x0000004 + +gUnk_080CDA07:: @ 080CDA07 + .incbin "baserom.gba", 0x0CDA07, 0x0000004 + +gUnk_080CDA0B:: @ 080CDA0B + .incbin "baserom.gba", 0x0CDA0B, 0x0000004 + +gUnk_080CDA0F:: @ 080CDA0F + .incbin "baserom.gba", 0x0CDA0F, 0x0000004 + +gUnk_080CDA13:: @ 080CDA13 + .incbin "baserom.gba", 0x0CDA13, 0x0000004 + +gUnk_080CDA17:: @ 080CDA17 + .incbin "baserom.gba", 0x0CDA17, 0x0000004 + +gUnk_080CDA1B:: @ 080CDA1B + .incbin "baserom.gba", 0x0CDA1B, 0x0000004 + +gUnk_080CDA1F:: @ 080CDA1F + .incbin "baserom.gba", 0x0CDA1F, 0x0000004 + +gUnk_080CDA23:: @ 080CDA23 + .incbin "baserom.gba", 0x0CDA23, 0x0000004 + +gUnk_080CDA27:: @ 080CDA27 + .incbin "baserom.gba", 0x0CDA27, 0x0000004 + +gUnk_080CDA2B:: @ 080CDA2B + .incbin "baserom.gba", 0x0CDA2B, 0x0000004 + +gUnk_080CDA2F:: @ 080CDA2F + .incbin "baserom.gba", 0x0CDA2F, 0x0000004 + +gUnk_080CDA33:: @ 080CDA33 + .incbin "baserom.gba", 0x0CDA33, 0x0000004 + +gUnk_080CDA37:: @ 080CDA37 + .incbin "baserom.gba", 0x0CDA37, 0x0000004 + +gUnk_080CDA3B:: @ 080CDA3B + .incbin "baserom.gba", 0x0CDA3B, 0x0000004 + +gUnk_080CDA3F:: @ 080CDA3F + .incbin "baserom.gba", 0x0CDA3F, 0x0000004 + +gUnk_080CDA43:: @ 080CDA43 + .incbin "baserom.gba", 0x0CDA43, 0x0000004 + +gUnk_080CDA47:: @ 080CDA47 + .incbin "baserom.gba", 0x0CDA47, 0x0000004 + +gUnk_080CDA4B:: @ 080CDA4B + .incbin "baserom.gba", 0x0CDA4B, 0x0000004 + +gUnk_080CDA4F:: @ 080CDA4F + .incbin "baserom.gba", 0x0CDA4F, 0x0000004 + +gUnk_080CDA53:: @ 080CDA53 + .incbin "baserom.gba", 0x0CDA53, 0x0000004 + +gUnk_080CDA57:: @ 080CDA57 + .incbin "baserom.gba", 0x0CDA57, 0x0000004 + +gUnk_080CDA5B:: @ 080CDA5B + .incbin "baserom.gba", 0x0CDA5B, 0x0000004 + +gUnk_080CDA5F:: @ 080CDA5F + .incbin "baserom.gba", 0x0CDA5F, 0x0000004 + +gUnk_080CDA63:: @ 080CDA63 + .incbin "baserom.gba", 0x0CDA63, 0x0000004 + +gUnk_080CDA67:: @ 080CDA67 + .incbin "baserom.gba", 0x0CDA67, 0x0000004 + +gUnk_080CDA6B:: @ 080CDA6B + .incbin "baserom.gba", 0x0CDA6B, 0x0000004 + +gUnk_080CDA6F:: @ 080CDA6F + .incbin "baserom.gba", 0x0CDA6F, 0x0000004 + +gUnk_080CDA73:: @ 080CDA73 + .incbin "baserom.gba", 0x0CDA73, 0x0000004 + +gUnk_080CDA77:: @ 080CDA77 + .incbin "baserom.gba", 0x0CDA77, 0x0000004 + +gUnk_080CDA7B:: @ 080CDA7B + .incbin "baserom.gba", 0x0CDA7B, 0x0000004 + +gUnk_080CDA7F:: @ 080CDA7F + .incbin "baserom.gba", 0x0CDA7F, 0x0000004 + +gUnk_080CDA83:: @ 080CDA83 + .incbin "baserom.gba", 0x0CDA83, 0x0000004 + +gUnk_080CDA87:: @ 080CDA87 + .incbin "baserom.gba", 0x0CDA87, 0x0000004 + +gUnk_080CDA8B:: @ 080CDA8B + .incbin "baserom.gba", 0x0CDA8B, 0x0000005 + +gUnk_080CDA90:: @ 080CDA90 + .incbin "baserom.gba", 0x0CDA90, 0x0000005 + +gUnk_080CDA95:: @ 080CDA95 + .incbin "baserom.gba", 0x0CDA95, 0x0000005 + +gUnk_080CDA9A:: @ 080CDA9A + .incbin "baserom.gba", 0x0CDA9A, 0x0000005 + +gUnk_080CDA9F:: @ 080CDA9F + .incbin "baserom.gba", 0x0CDA9F, 0x0000025 + +gUnk_080CDAC4:: @ 080CDAC4 + .incbin "baserom.gba", 0x0CDAC4, 0x0000011 + +gUnk_080CDAD5:: @ 080CDAD5 + .incbin "baserom.gba", 0x0CDAD5, 0x0000011 + +gUnk_080CDAE6:: @ 080CDAE6 + .incbin "baserom.gba", 0x0CDAE6, 0x000000D + +gUnk_080CDAF3:: @ 080CDAF3 + .incbin "baserom.gba", 0x0CDAF3, 0x0000010 + +gUnk_080CDB03:: @ 080CDB03 + .incbin "baserom.gba", 0x0CDB03, 0x0000014 + +gUnk_080CDB17:: @ 080CDB17 + .incbin "baserom.gba", 0x0CDB17, 0x0000011 + +gUnk_080CDB28:: @ 080CDB28 + .incbin "baserom.gba", 0x0CDB28, 0x0000011 + +gUnk_080CDB39:: @ 080CDB39 + .incbin "baserom.gba", 0x0CDB39, 0x0000024 + +gUnk_080CDB5D:: @ 080CDB5D + .incbin "baserom.gba", 0x0CDB5D, 0x0000010 + +gUnk_080CDB6D:: @ 080CDB6D + .incbin "baserom.gba", 0x0CDB6D, 0x0000011 + +gUnk_080CDB7E:: @ 080CDB7E + .incbin "baserom.gba", 0x0CDB7E, 0x0000014 + +gUnk_080CDB92:: @ 080CDB92 + .incbin "baserom.gba", 0x0CDB92, 0x0000019 + +gUnk_080CDBAB:: @ 080CDBAB + .incbin "baserom.gba", 0x0CDBAB, 0x0000019 + +gUnk_080CDBC4:: @ 080CDBC4 + .incbin "baserom.gba", 0x0CDBC4, 0x0000019 + +gUnk_080CDBDD:: @ 080CDBDD + .incbin "baserom.gba", 0x0CDBDD, 0x0000023 + +gUnk_080CDC00:: @ 080CDC00 + .incbin "baserom.gba", 0x0CDC00, 0x00000E7 + +gUnk_080CDCE7:: @ 080CDCE7 + .incbin "baserom.gba", 0x0CDCE7, 0x000007D + +gUnk_080CDD64:: @ 080CDD64 + .incbin "baserom.gba", 0x0CDD64, 0x00000D0 + +gUnk_080CDE34:: @ 080CDE34 + .incbin "baserom.gba", 0x0CDE34, 0x0000018 + +gUnk_080CDE4C:: @ 080CDE4C + .incbin "baserom.gba", 0x0CDE4C, 0x0000010 + +gUnk_080CDE5C:: @ 080CDE5C + .incbin "baserom.gba", 0x0CDE5C, 0x0000008 + +gUnk_080CDE64:: @ 080CDE64 + .incbin "baserom.gba", 0x0CDE64, 0x0000008 + +gUnk_080CDE6C:: @ 080CDE6C + .incbin "baserom.gba", 0x0CDE6C, 0x0000004 + +gUnk_080CDE70:: @ 080CDE70 + .incbin "baserom.gba", 0x0CDE70, 0x0000020 + +gUnk_080CDE90:: @ 080CDE90 + .incbin "baserom.gba", 0x0CDE90, 0x0000008 + +gUnk_080CDE98:: @ 080CDE98 + .incbin "baserom.gba", 0x0CDE98, 0x0000008 + +gUnk_080CDEA0:: @ 080CDEA0 + .incbin "baserom.gba", 0x0CDEA0, 0x0000011 + +gUnk_080CDEB1:: @ 080CDEB1 + .incbin "baserom.gba", 0x0CDEB1, 0x0000013 + +gUnk_080CDEC4:: @ 080CDEC4 + .incbin "baserom.gba", 0x0CDEC4, 0x000000C + +gUnk_080CDED0:: @ 080CDED0 + .incbin "baserom.gba", 0x0CDED0, 0x0000018 + +gUnk_080CDEE8:: @ 080CDEE8 + .incbin "baserom.gba", 0x0CDEE8, 0x0000010 + +gUnk_080CDEF8:: @ 080CDEF8 + .incbin "baserom.gba", 0x0CDEF8, 0x0000004 + +gUnk_080CDEFC:: @ 080CDEFC + .incbin "baserom.gba", 0x0CDEFC, 0x000000D + +gUnk_080CDF09:: @ 080CDF09 + .incbin "baserom.gba", 0x0CDF09, 0x0000011 + +gUnk_080CDF1A:: @ 080CDF1A + .incbin "baserom.gba", 0x0CDF1A, 0x000000D + +gUnk_080CDF27:: @ 080CDF27 + .incbin "baserom.gba", 0x0CDF27, 0x000000C + +gUnk_080CDF33:: @ 080CDF33 + .incbin "baserom.gba", 0x0CDF33, 0x0000005 + +gUnk_080CDF38:: @ 080CDF38 + .incbin "baserom.gba", 0x0CDF38, 0x0000018 + +gUnk_080CDF50:: @ 080CDF50 + .incbin "baserom.gba", 0x0CDF50, 0x0000018 + +gUnk_080CDF68:: @ 080CDF68 + .incbin "baserom.gba", 0x0CDF68, 0x0000010 + +gUnk_080CDF78:: @ 080CDF78 + .incbin "baserom.gba", 0x0CDF78, 0x0000005 + +gUnk_080CDF7D:: @ 080CDF7D + .incbin "baserom.gba", 0x0CDF7D, 0x0000005 + +gUnk_080CDF82:: @ 080CDF82 + .incbin "baserom.gba", 0x0CDF82, 0x0000005 + +gUnk_080CDF87:: @ 080CDF87 + .incbin "baserom.gba", 0x0CDF87, 0x0000005 + +gUnk_080CDF8C:: @ 080CDF8C + .incbin "baserom.gba", 0x0CDF8C, 0x0000005 + +gUnk_080CDF91:: @ 080CDF91 + .incbin "baserom.gba", 0x0CDF91, 0x0000005 + +gUnk_080CDF96:: @ 080CDF96 + .incbin "baserom.gba", 0x0CDF96, 0x0000005 + +gUnk_080CDF9B:: @ 080CDF9B + .incbin "baserom.gba", 0x0CDF9B, 0x0000005 + +gUnk_080CDFA0:: @ 080CDFA0 + .incbin "baserom.gba", 0x0CDFA0, 0x0000024 + +gUnk_080CDFC4:: @ 080CDFC4 + .incbin "baserom.gba", 0x0CDFC4, 0x0000018 + +gUnk_080CDFDC:: @ 080CDFDC + .incbin "baserom.gba", 0x0CDFDC, 0x000000C + +gUnk_080CDFE8:: @ 080CDFE8 + .incbin "baserom.gba", 0x0CDFE8, 0x000000D + +gUnk_080CDFF5:: @ 080CDFF5 + .incbin "baserom.gba", 0x0CDFF5, 0x000000D + +gUnk_080CE002:: @ 080CE002 + .incbin "baserom.gba", 0x0CE002, 0x000000D + +gUnk_080CE00F:: @ 080CE00F + .incbin "baserom.gba", 0x0CE00F, 0x000000D + +gUnk_080CE01C:: @ 080CE01C + .incbin "baserom.gba", 0x0CE01C, 0x000000D + +gUnk_080CE029:: @ 080CE029 + .incbin "baserom.gba", 0x0CE029, 0x000000D + +gUnk_080CE036:: @ 080CE036 + .incbin "baserom.gba", 0x0CE036, 0x000000D + +gUnk_080CE043:: @ 080CE043 + .incbin "baserom.gba", 0x0CE043, 0x000000D + +gUnk_080CE050:: @ 080CE050 + .incbin "baserom.gba", 0x0CE050, 0x0000024 + +gUnk_080CE074:: @ 080CE074 + .incbin "baserom.gba", 0x0CE074, 0x0000018 + +gUnk_080CE08C:: @ 080CE08C + .incbin "baserom.gba", 0x0CE08C, 0x000000C + +gUnk_080CE098:: @ 080CE098 + .incbin "baserom.gba", 0x0CE098, 0x000000D + +gUnk_080CE0A5:: @ 080CE0A5 + .incbin "baserom.gba", 0x0CE0A5, 0x000000D + +gUnk_080CE0B2:: @ 080CE0B2 + .incbin "baserom.gba", 0x0CE0B2, 0x000000D + +gUnk_080CE0BF:: @ 080CE0BF + .incbin "baserom.gba", 0x0CE0BF, 0x000000D + +gUnk_080CE0CC:: @ 080CE0CC + .incbin "baserom.gba", 0x0CE0CC, 0x000000D + +gUnk_080CE0D9:: @ 080CE0D9 + .incbin "baserom.gba", 0x0CE0D9, 0x000000D + +gUnk_080CE0E6:: @ 080CE0E6 + .incbin "baserom.gba", 0x0CE0E6, 0x000000D + +gUnk_080CE0F3:: @ 080CE0F3 + .incbin "baserom.gba", 0x0CE0F3, 0x000000D + +gUnk_080CE100:: @ 080CE100 + .incbin "baserom.gba", 0x0CE100, 0x0000024 + +gUnk_080CE124:: @ 080CE124 + .incbin "baserom.gba", 0x0CE124, 0x0000018 + +gUnk_080CE13C:: @ 080CE13C + .incbin "baserom.gba", 0x0CE13C, 0x0000024 + +gUnk_080CE160:: @ 080CE160 + .incbin "baserom.gba", 0x0CE160, 0x0000004 + +gUnk_080CE164:: @ 080CE164 + .incbin "baserom.gba", 0x0CE164, 0x0000008 + +gUnk_080CE16C:: @ 080CE16C + .incbin "baserom.gba", 0x0CE16C, 0x0000019 + +gUnk_080CE185:: @ 080CE185 + .incbin "baserom.gba", 0x0CE185, 0x0000019 + +gUnk_080CE19E:: @ 080CE19E + .incbin "baserom.gba", 0x0CE19E, 0x0000019 + +gUnk_080CE1B7:: @ 080CE1B7 + .incbin "baserom.gba", 0x0CE1B7, 0x0000019 + +gUnk_080CE1D0:: @ 080CE1D0 + .incbin "baserom.gba", 0x0CE1D0, 0x0000035 + +gUnk_080CE205:: @ 080CE205 + .incbin "baserom.gba", 0x0CE205, 0x0000041 + +gUnk_080CE246:: @ 080CE246 + .incbin "baserom.gba", 0x0CE246, 0x0000018 + +gUnk_080CE25E:: @ 080CE25E + .incbin "baserom.gba", 0x0CE25E, 0x0000006 + +gUnk_080CE264:: @ 080CE264 + .incbin "baserom.gba", 0x0CE264, 0x0000024 + +gUnk_080CE288:: @ 080CE288 + .incbin "baserom.gba", 0x0CE288, 0x0000018 + +gUnk_080CE2A0:: @ 080CE2A0 + .incbin "baserom.gba", 0x0CE2A0, 0x000001C + +gUnk_080CE2BC:: @ 080CE2BC + .incbin "baserom.gba", 0x0CE2BC, 0x0000004 + +gUnk_080CE2C0:: @ 080CE2C0 + .incbin "baserom.gba", 0x0CE2C0, 0x0000034 + +gUnk_080CE2F4:: @ 080CE2F4 + .incbin "baserom.gba", 0x0CE2F4, 0x0000010 + +gUnk_080CE304:: @ 080CE304 + .incbin "baserom.gba", 0x0CE304, 0x0000008 + +gUnk_080CE30C:: @ 080CE30C + .incbin "baserom.gba", 0x0CE30C, 0x0000010 + +gUnk_080CE31C:: @ 080CE31C + .incbin "baserom.gba", 0x0CE31C, 0x0000019 + +gUnk_080CE335:: @ 080CE335 + .incbin "baserom.gba", 0x0CE335, 0x0000010 + +gUnk_080CE345:: @ 080CE345 + .incbin "baserom.gba", 0x0CE345, 0x0000019 + +gUnk_080CE35E:: @ 080CE35E + .incbin "baserom.gba", 0x0CE35E, 0x0000010 + +gUnk_080CE36E:: @ 080CE36E + .incbin "baserom.gba", 0x0CE36E, 0x0000019 + +gUnk_080CE387:: @ 080CE387 + .incbin "baserom.gba", 0x0CE387, 0x0000010 + +gUnk_080CE397:: @ 080CE397 + .incbin "baserom.gba", 0x0CE397, 0x0000019 + +gUnk_080CE3B0:: @ 080CE3B0 + .incbin "baserom.gba", 0x0CE3B0, 0x000000C + +gUnk_080CE3BC:: @ 080CE3BC + .incbin "baserom.gba", 0x0CE3BC, 0x000000C + +gUnk_080CE3C8:: @ 080CE3C8 + .incbin "baserom.gba", 0x0CE3C8, 0x000000C + +gUnk_080CE3D4:: @ 080CE3D4 + .incbin "baserom.gba", 0x0CE3D4, 0x000000C + +gUnk_080CE3E0:: @ 080CE3E0 + .incbin "baserom.gba", 0x0CE3E0, 0x000000C + +gUnk_080CE3EC:: @ 080CE3EC + .incbin "baserom.gba", 0x0CE3EC, 0x000000C + +gUnk_080CE3F8:: @ 080CE3F8 + .incbin "baserom.gba", 0x0CE3F8, 0x000000C + +gUnk_080CE404:: @ 080CE404 + .incbin "baserom.gba", 0x0CE404, 0x0000003 + +gUnk_080CE407:: @ 080CE407 + .incbin "baserom.gba", 0x0CE407, 0x0000041 + +gUnk_080CE448:: @ 080CE448 + .incbin "baserom.gba", 0x0CE448, 0x0000018 + +gUnk_080CE460:: @ 080CE460 + .incbin "baserom.gba", 0x0CE460, 0x0000010 + +gUnk_080CE470:: @ 080CE470 + .incbin "baserom.gba", 0x0CE470, 0x000000C + +gUnk_080CE47C:: @ 080CE47C + .incbin "baserom.gba", 0x0CE47C, 0x0000011 + +gUnk_080CE48D:: @ 080CE48D + .incbin "baserom.gba", 0x0CE48D, 0x0000011 + +gUnk_080CE49E:: @ 080CE49E + .incbin "baserom.gba", 0x0CE49E, 0x0000011 + +gUnk_080CE4AF:: @ 080CE4AF + .incbin "baserom.gba", 0x0CE4AF, 0x0000011 + +gUnk_080CE4C0:: @ 080CE4C0 + .incbin "baserom.gba", 0x0CE4C0, 0x0000011 + +gUnk_080CE4D1:: @ 080CE4D1 + .incbin "baserom.gba", 0x0CE4D1, 0x0000011 + +gUnk_080CE4E2:: @ 080CE4E2 + .incbin "baserom.gba", 0x0CE4E2, 0x0000011 + +gUnk_080CE4F3:: @ 080CE4F3 + .incbin "baserom.gba", 0x0CE4F3, 0x0000019 + +gUnk_080CE50C:: @ 080CE50C + .incbin "baserom.gba", 0x0CE50C, 0x0000024 + +gUnk_080CE530:: @ 080CE530 + .incbin "baserom.gba", 0x0CE530, 0x0000018 + +gUnk_080CE548:: @ 080CE548 + .incbin "baserom.gba", 0x0CE548, 0x000000C + +gUnk_080CE554:: @ 080CE554 + .incbin "baserom.gba", 0x0CE554, 0x000000C + +gUnk_080CE560:: @ 080CE560 + .incbin "baserom.gba", 0x0CE560, 0x000000C + +gUnk_080CE56C:: @ 080CE56C + .incbin "baserom.gba", 0x0CE56C, 0x0000018 + +gUnk_080CE584:: @ 080CE584 + .incbin "baserom.gba", 0x0CE584, 0x0000008 + +gUnk_080CE58C:: @ 080CE58C + .incbin "baserom.gba", 0x0CE58C, 0x0000024 + +gUnk_080CE5B0:: @ 080CE5B0 + .incbin "baserom.gba", 0x0CE5B0, 0x0000008 + +gUnk_080CE5B8:: @ 080CE5B8 + .incbin "baserom.gba", 0x0CE5B8, 0x0000008 + +gUnk_080CE5C0:: @ 080CE5C0 + .incbin "baserom.gba", 0x0CE5C0, 0x0000008 + +gUnk_080CE5C8:: @ 080CE5C8 + .incbin "baserom.gba", 0x0CE5C8, 0x0000028 + +gUnk_080CE5F0:: @ 080CE5F0 + .incbin "baserom.gba", 0x0CE5F0, 0x000000A + +gUnk_080CE5FA:: @ 080CE5FA + .incbin "baserom.gba", 0x0CE5FA, 0x0000014 + +gUnk_080CE60E:: @ 080CE60E + .incbin "baserom.gba", 0x0CE60E, 0x0000018 + +gUnk_080CE626:: @ 080CE626 + .incbin "baserom.gba", 0x0CE626, 0x0000031 + +gUnk_080CE657:: @ 080CE657 + .incbin "baserom.gba", 0x0CE657, 0x0000010 + +gUnk_080CE667:: @ 080CE667 + .incbin "baserom.gba", 0x0CE667, 0x0000028 + +gUnk_080CE68F:: @ 080CE68F + .incbin "baserom.gba", 0x0CE68F, 0x0000009 + +gUnk_080CE698:: @ 080CE698 + .incbin "baserom.gba", 0x0CE698, 0x0000005 + +gUnk_080CE69D:: @ 080CE69D + .incbin "baserom.gba", 0x0CE69D, 0x0000009 + +gUnk_080CE6A6:: @ 080CE6A6 + .incbin "baserom.gba", 0x0CE6A6, 0x0000009 + +gUnk_080CE6AF:: @ 080CE6AF + .incbin "baserom.gba", 0x0CE6AF, 0x0000011 + +gUnk_080CE6C0:: @ 080CE6C0 + .incbin "baserom.gba", 0x0CE6C0, 0x0000011 + +gUnk_080CE6D1:: @ 080CE6D1 + .incbin "baserom.gba", 0x0CE6D1, 0x0000005 + +gUnk_080CE6D6:: @ 080CE6D6 + .incbin "baserom.gba", 0x0CE6D6, 0x0000005 + +gUnk_080CE6DB:: @ 080CE6DB + .incbin "baserom.gba", 0x0CE6DB, 0x000000C + +gUnk_080CE6E7:: @ 080CE6E7 + .incbin "baserom.gba", 0x0CE6E7, 0x0000040 + +gUnk_080CE727:: @ 080CE727 + .incbin "baserom.gba", 0x0CE727, 0x0000049 + +gUnk_080CE770:: @ 080CE770 + .incbin "baserom.gba", 0x0CE770, 0x0000040 + +gUnk_080CE7B0:: @ 080CE7B0 + .incbin "baserom.gba", 0x0CE7B0, 0x0000018 + +gUnk_080CE7C8:: @ 080CE7C8 + .incbin "baserom.gba", 0x0CE7C8, 0x0000018 + +gUnk_080CE7E0:: @ 080CE7E0 + .incbin "baserom.gba", 0x0CE7E0, 0x0000010 + +gUnk_080CE7F0:: @ 080CE7F0 + .incbin "baserom.gba", 0x0CE7F0, 0x0000020 + +gUnk_080CE810:: @ 080CE810 + .incbin "baserom.gba", 0x0CE810, 0x0000008 + +gUnk_080CE818:: @ 080CE818 + .incbin "baserom.gba", 0x0CE818, 0x0000011 + +gUnk_080CE829:: @ 080CE829 + .incbin "baserom.gba", 0x0CE829, 0x0000011 + +gUnk_080CE83A:: @ 080CE83A + .incbin "baserom.gba", 0x0CE83A, 0x0000011 + +gUnk_080CE84B:: @ 080CE84B + .incbin "baserom.gba", 0x0CE84B, 0x0000011 + +gUnk_080CE85C:: @ 080CE85C + .incbin "baserom.gba", 0x0CE85C, 0x0000011 + +gUnk_080CE86D:: @ 080CE86D + .incbin "baserom.gba", 0x0CE86D, 0x0000011 + +gUnk_080CE87E:: @ 080CE87E + .incbin "baserom.gba", 0x0CE87E, 0x0000011 + +gUnk_080CE88F:: @ 080CE88F + .incbin "baserom.gba", 0x0CE88F, 0x0000011 + +gUnk_080CE8A0:: @ 080CE8A0 + .incbin "baserom.gba", 0x0CE8A0, 0x0000029 + +gUnk_080CE8C9:: @ 080CE8C9 + .incbin "baserom.gba", 0x0CE8C9, 0x0000029 + +gUnk_080CE8F2:: @ 080CE8F2 + .incbin "baserom.gba", 0x0CE8F2, 0x0000029 + +gUnk_080CE91B:: @ 080CE91B + .incbin "baserom.gba", 0x0CE91B, 0x0000029 + +gUnk_080CE944:: @ 080CE944 + .incbin "baserom.gba", 0x0CE944, 0x0000034 + +gUnk_080CE978:: @ 080CE978 + .incbin "baserom.gba", 0x0CE978, 0x0000018 + +gUnk_080CE990:: @ 080CE990 + .incbin "baserom.gba", 0x0CE990, 0x0000014 + +gUnk_080CE9A4:: @ 080CE9A4 + .incbin "baserom.gba", 0x0CE9A4, 0x000000C + +gUnk_080CE9B0:: @ 080CE9B0 + .incbin "baserom.gba", 0x0CE9B0, 0x0000005 + +gUnk_080CE9B5:: @ 080CE9B5 + .incbin "baserom.gba", 0x0CE9B5, 0x0000005 + +gUnk_080CE9BA:: @ 080CE9BA + .incbin "baserom.gba", 0x0CE9BA, 0x0000011 + +gUnk_080CE9CB:: @ 080CE9CB + .incbin "baserom.gba", 0x0CE9CB, 0x0000011 + +gUnk_080CE9DC:: @ 080CE9DC + .incbin "baserom.gba", 0x0CE9DC, 0x0000011 + +gUnk_080CE9ED:: @ 080CE9ED + .incbin "baserom.gba", 0x0CE9ED, 0x0000013 + +gUnk_080CEA00:: @ 080CEA00 + .incbin "baserom.gba", 0x0CEA00, 0x000001C + +gUnk_080CEA1C:: @ 080CEA1C + .incbin "baserom.gba", 0x0CEA1C, 0x0000018 + +gUnk_080CEA34:: @ 080CEA34 + .incbin "baserom.gba", 0x0CEA34, 0x000001C + +gUnk_080CEA50:: @ 080CEA50 + .incbin "baserom.gba", 0x0CEA50, 0x0000004 + +gUnk_080CEA54:: @ 080CEA54 + .incbin "baserom.gba", 0x0CEA54, 0x0000002 + +gUnk_080CEA56:: @ 080CEA56 + .incbin "baserom.gba", 0x0CEA56, 0x0000010 + +gUnk_080CEA66:: @ 080CEA66 + .incbin "baserom.gba", 0x0CEA66, 0x0000005 + +gUnk_080CEA6B:: @ 080CEA6B + .incbin "baserom.gba", 0x0CEA6B, 0x0000005 + +gUnk_080CEA70:: @ 080CEA70 + .incbin "baserom.gba", 0x0CEA70, 0x0000005 + +gUnk_080CEA75:: @ 080CEA75 + .incbin "baserom.gba", 0x0CEA75, 0x0000005 + +gUnk_080CEA7A:: @ 080CEA7A + .incbin "baserom.gba", 0x0CEA7A, 0x0000011 + +gUnk_080CEA8B:: @ 080CEA8B + .incbin "baserom.gba", 0x0CEA8B, 0x0000011 + +gUnk_080CEA9C:: @ 080CEA9C + .incbin "baserom.gba", 0x0CEA9C, 0x0000011 + +gUnk_080CEAAD:: @ 080CEAAD + .incbin "baserom.gba", 0x0CEAAD, 0x0000011 + +gUnk_080CEABE:: @ 080CEABE + .incbin "baserom.gba", 0x0CEABE, 0x0000011 + +gUnk_080CEACF:: @ 080CEACF + .incbin "baserom.gba", 0x0CEACF, 0x0000011 + +gUnk_080CEAE0:: @ 080CEAE0 + .incbin "baserom.gba", 0x0CEAE0, 0x0000011 + +gUnk_080CEAF1:: @ 080CEAF1 + .incbin "baserom.gba", 0x0CEAF1, 0x0000013 + +gUnk_080CEB04:: @ 080CEB04 + .incbin "baserom.gba", 0x0CEB04, 0x0000034 + +gUnk_080CEB38:: @ 080CEB38 + .incbin "baserom.gba", 0x0CEB38, 0x0000018 + +gUnk_080CEB50:: @ 080CEB50 + .incbin "baserom.gba", 0x0CEB50, 0x0000010 + +gUnk_080CEB60:: @ 080CEB60 + .incbin "baserom.gba", 0x0CEB60, 0x000000C + +gUnk_080CEB6C:: @ 080CEB6C + .incbin "baserom.gba", 0x0CEB6C, 0x0000008 + +gUnk_080CEB74:: @ 080CEB74 + .incbin "baserom.gba", 0x0CEB74, 0x0000018 + +gUnk_080CEB8C:: @ 080CEB8C + .incbin "baserom.gba", 0x0CEB8C, 0x000000C + +gUnk_080CEB98:: @ 080CEB98 + .incbin "baserom.gba", 0x0CEB98, 0x000000C + +gUnk_080CEBA4:: @ 080CEBA4 + .incbin "baserom.gba", 0x0CEBA4, 0x0000008 + +gUnk_080CEBAC:: @ 080CEBAC + .incbin "baserom.gba", 0x0CEBAC, 0x0000011 + +gUnk_080CEBBD:: @ 080CEBBD + .incbin "baserom.gba", 0x0CEBBD, 0x0000013 + +gUnk_080CEBD0:: @ 080CEBD0 + .incbin "baserom.gba", 0x0CEBD0, 0x000001C + +gUnk_080CEBEC:: @ 080CEBEC + .incbin "baserom.gba", 0x0CEBEC, 0x0000018 + +gUnk_080CEC04:: @ 080CEC04 + .incbin "baserom.gba", 0x0CEC04, 0x0000018 + +gUnk_080CEC1C:: @ 080CEC1C + .incbin "baserom.gba", 0x0CEC1C, 0x0000008 + +gUnk_080CEC24:: @ 080CEC24 + .incbin "baserom.gba", 0x0CEC24, 0x0000005 + +gUnk_080CEC29:: @ 080CEC29 + .incbin "baserom.gba", 0x0CEC29, 0x0000019 + +gUnk_080CEC42:: @ 080CEC42 + .incbin "baserom.gba", 0x0CEC42, 0x0000009 + +gUnk_080CEC4B:: @ 080CEC4B + .incbin "baserom.gba", 0x0CEC4B, 0x0000011 + +gUnk_080CEC5C:: @ 080CEC5C + .incbin "baserom.gba", 0x0CEC5C, 0x0000014 + +gUnk_080CEC70:: @ 080CEC70 + .incbin "baserom.gba", 0x0CEC70, 0x0000018 + +gUnk_080CEC88:: @ 080CEC88 + .incbin "baserom.gba", 0x0CEC88, 0x0000018 + +gUnk_080CECA0:: @ 080CECA0 + .incbin "baserom.gba", 0x0CECA0, 0x0000014 + +gUnk_080CECB4:: @ 080CECB4 + .incbin "baserom.gba", 0x0CECB4, 0x0000019 + +gUnk_080CECCD:: @ 080CECCD + .incbin "baserom.gba", 0x0CECCD, 0x000001F + +gUnk_080CECEC:: @ 080CECEC + .incbin "baserom.gba", 0x0CECEC, 0x0000008 + +gUnk_080CECF4:: @ 080CECF4 + .incbin "baserom.gba", 0x0CECF4, 0x000000E + +gUnk_080CED02:: @ 080CED02 + .incbin "baserom.gba", 0x0CED02, 0x0000004 + +gUnk_080CED06:: @ 080CED06 + .incbin "baserom.gba", 0x0CED06, 0x0000006 + +gUnk_080CED0C:: @ 080CED0C + .incbin "baserom.gba", 0x0CED0C, 0x0000020 + +gUnk_080CED2C:: @ 080CED2C + .incbin "baserom.gba", 0x0CED2C, 0x0000020 + +gUnk_080CED4C:: @ 080CED4C + .incbin "baserom.gba", 0x0CED4C, 0x0000020 + +gUnk_080CED6C:: @ 080CED6C + .incbin "baserom.gba", 0x0CED6C, 0x0000008 + +gUnk_080CED74:: @ 080CED74 + .incbin "baserom.gba", 0x0CED74, 0x0000010 + +gUnk_080CED84:: @ 080CED84 + .incbin "baserom.gba", 0x0CED84, 0x0000004 + +gUnk_080CED88:: @ 080CED88 + .incbin "baserom.gba", 0x0CED88, 0x0000014 + +gUnk_080CED9C:: @ 080CED9C + .incbin "baserom.gba", 0x0CED9C, 0x0000014 + +gUnk_080CEDB0:: @ 080CEDB0 + .incbin "baserom.gba", 0x0CEDB0, 0x0000005 + +gUnk_080CEDB5:: @ 080CEDB5 + .incbin "baserom.gba", 0x0CEDB5, 0x0000005 + +gUnk_080CEDBA:: @ 080CEDBA + .incbin "baserom.gba", 0x0CEDBA, 0x0000015 + +gUnk_080CEDCF:: @ 080CEDCF + .incbin "baserom.gba", 0x0CEDCF, 0x0000038 + +gUnk_080CEE07:: @ 080CEE07 + .incbin "baserom.gba", 0x0CEE07, 0x0000038 + +gUnk_080CEE3F:: @ 080CEE3F + .incbin "baserom.gba", 0x0CEE3F, 0x0000018 + +gUnk_080CEE57:: @ 080CEE57 + .incbin "baserom.gba", 0x0CEE57, 0x0000019 + +gUnk_080CEE70:: @ 080CEE70 + .incbin "baserom.gba", 0x0CEE70, 0x0000020 + +gUnk_080CEE90:: @ 080CEE90 + .incbin "baserom.gba", 0x0CEE90, 0x0000014 + +gUnk_080CEEA4:: @ 080CEEA4 + .incbin "baserom.gba", 0x0CEEA4, 0x000000C + +gUnk_080CEEB0:: @ 080CEEB0 + .incbin "baserom.gba", 0x0CEEB0, 0x0000018 + +gUnk_080CEEC8:: @ 080CEEC8 + .incbin "baserom.gba", 0x0CEEC8, 0x0000004 + +gUnk_080CEECC:: @ 080CEECC + .incbin "baserom.gba", 0x0CEECC, 0x000000C + +gUnk_080CEED8:: @ 080CEED8 + .incbin "baserom.gba", 0x0CEED8, 0x0000004 + +gUnk_080CEEDC:: @ 080CEEDC + .incbin "baserom.gba", 0x0CEEDC, 0x000002C + +gUnk_080CEF08:: @ 080CEF08 + .incbin "baserom.gba", 0x0CEF08, 0x0000004 + +gUnk_080CEF0C:: @ 080CEF0C + .incbin "baserom.gba", 0x0CEF0C, 0x0000011 + +gUnk_080CEF1D:: @ 080CEF1D + .incbin "baserom.gba", 0x0CEF1D, 0x0000007 + +gUnk_080CEF24:: @ 080CEF24 + .incbin "baserom.gba", 0x0CEF24, 0x0000010 + +gUnk_080CEF34:: @ 080CEF34 + .incbin "baserom.gba", 0x0CEF34, 0x0000024 + +gUnk_080CEF58:: @ 080CEF58 + .incbin "baserom.gba", 0x0CEF58, 0x0000024 + +gUnk_080CEF7C:: @ 080CEF7C + .incbin "baserom.gba", 0x0CEF7C, 0x0000021 + +gUnk_080CEF9D:: @ 080CEF9D + .incbin "baserom.gba", 0x0CEF9D, 0x0000008 + +gUnk_080CEFA5:: @ 080CEFA5 + .incbin "baserom.gba", 0x0CEFA5, 0x0000009 + +gUnk_080CEFAE:: @ 080CEFAE + .incbin "baserom.gba", 0x0CEFAE, 0x0000004 + +gUnk_080CEFB2:: @ 080CEFB2 + .incbin "baserom.gba", 0x0CEFB2, 0x0000004 + +gUnk_080CEFB6:: @ 080CEFB6 + .incbin "baserom.gba", 0x0CEFB6, 0x0000015 + +gUnk_080CEFCB:: @ 080CEFCB + .incbin "baserom.gba", 0x0CEFCB, 0x0000015 + +gUnk_080CEFE0:: @ 080CEFE0 + .incbin "baserom.gba", 0x0CEFE0, 0x0000009 + +gUnk_080CEFE9:: @ 080CEFE9 + .incbin "baserom.gba", 0x0CEFE9, 0x0000019 + +gUnk_080CF002:: @ 080CF002 + .incbin "baserom.gba", 0x0CF002, 0x0000012 + +gUnk_080CF014:: @ 080CF014 + .incbin "baserom.gba", 0x0CF014, 0x000002C + +gUnk_080CF040:: @ 080CF040 + .incbin "baserom.gba", 0x0CF040, 0x0000014 + +gUnk_080CF054:: @ 080CF054 + .incbin "baserom.gba", 0x0CF054, 0x000001C + +gUnk_080CF070:: @ 080CF070 + .incbin "baserom.gba", 0x0CF070, 0x0000008 + +gUnk_080CF078:: @ 080CF078 + .incbin "baserom.gba", 0x0CF078, 0x0000014 + +gUnk_080CF08C:: @ 080CF08C + .incbin "baserom.gba", 0x0CF08C, 0x0000020 + +gUnk_080CF0AC:: @ 080CF0AC + .incbin "baserom.gba", 0x0CF0AC, 0x0000018 + +gUnk_080CF0C4:: @ 080CF0C4 + .incbin "baserom.gba", 0x0CF0C4, 0x0000014 + +gUnk_080CF0D8:: @ 080CF0D8 + .incbin "baserom.gba", 0x0CF0D8, 0x0000004 + +gUnk_080CF0DC:: @ 080CF0DC + .incbin "baserom.gba", 0x0CF0DC, 0x0000004 + +gUnk_080CF0E0:: @ 080CF0E0 + .incbin "baserom.gba", 0x0CF0E0, 0x0000010 + +gUnk_080CF0F0:: @ 080CF0F0 + .incbin "baserom.gba", 0x0CF0F0, 0x0000010 + +gUnk_080CF100:: @ 080CF100 + .incbin "baserom.gba", 0x0CF100, 0x000000C + +gUnk_080CF10C:: @ 080CF10C + .incbin "baserom.gba", 0x0CF10C, 0x0000004 + +gUnk_080CF110:: @ 080CF110 + .incbin "baserom.gba", 0x0CF110, 0x0000004 + +gUnk_080CF114:: @ 080CF114 + .incbin "baserom.gba", 0x0CF114, 0x0000005 + +gUnk_080CF119:: @ 080CF119 + .incbin "baserom.gba", 0x0CF119, 0x0000005 + +gUnk_080CF11E:: @ 080CF11E + .incbin "baserom.gba", 0x0CF11E, 0x0000006 + +gUnk_080CF124:: @ 080CF124 + .incbin "baserom.gba", 0x0CF124, 0x0000010 + +gUnk_080CF134:: @ 080CF134 + .incbin "baserom.gba", 0x0CF134, 0x0000004 + +gUnk_080CF138:: @ 080CF138 + .incbin "baserom.gba", 0x0CF138, 0x0000004 + +gUnk_080CF13C:: @ 080CF13C + .incbin "baserom.gba", 0x0CF13C, 0x0000003 + +gUnk_080CF13F:: @ 080CF13F + .incbin "baserom.gba", 0x0CF13F, 0x0000003 + +gUnk_080CF142:: @ 080CF142 + .incbin "baserom.gba", 0x0CF142, 0x0000005 + +gUnk_080CF147:: @ 080CF147 + .incbin "baserom.gba", 0x0CF147, 0x0000005 + +gUnk_080CF14C:: @ 080CF14C + .incbin "baserom.gba", 0x0CF14C, 0x0000004 + +gUnk_080CF150:: @ 080CF150 + .incbin "baserom.gba", 0x0CF150, 0x0000004 + +gUnk_080CF154:: @ 080CF154 + .incbin "baserom.gba", 0x0CF154, 0x0000004 + +gUnk_080CF158:: @ 080CF158 + .incbin "baserom.gba", 0x0CF158, 0x0000015 + +gUnk_080CF16D:: @ 080CF16D + .incbin "baserom.gba", 0x0CF16D, 0x0000015 + +gUnk_080CF182:: @ 080CF182 + .incbin "baserom.gba", 0x0CF182, 0x0000004 + +gUnk_080CF186:: @ 080CF186 + .incbin "baserom.gba", 0x0CF186, 0x0000011 + +gUnk_080CF197:: @ 080CF197 + .incbin "baserom.gba", 0x0CF197, 0x0000015 + +gUnk_080CF1AC:: @ 080CF1AC + .incbin "baserom.gba", 0x0CF1AC, 0x0000011 + +gUnk_080CF1BD:: @ 080CF1BD + .incbin "baserom.gba", 0x0CF1BD, 0x0000020 + +gUnk_080CF1DD:: @ 080CF1DD + .incbin "baserom.gba", 0x0CF1DD, 0x0000005 + +gUnk_080CF1E2:: @ 080CF1E2 + .incbin "baserom.gba", 0x0CF1E2, 0x0000019 + +gUnk_080CF1FB:: @ 080CF1FB + .incbin "baserom.gba", 0x0CF1FB, 0x0000004 + +gUnk_080CF1FF:: @ 080CF1FF + .incbin "baserom.gba", 0x0CF1FF, 0x0000005 + +gUnk_080CF204:: @ 080CF204 + .incbin "baserom.gba", 0x0CF204, 0x0000030 + +gUnk_080CF234:: @ 080CF234 + .incbin "baserom.gba", 0x0CF234, 0x0000010 + +gUnk_080CF244:: @ 080CF244 + .incbin "baserom.gba", 0x0CF244, 0x0000018 + +gUnk_080CF25C:: @ 080CF25C + .incbin "baserom.gba", 0x0CF25C, 0x000001C + +gUnk_080CF278:: @ 080CF278 + .incbin "baserom.gba", 0x0CF278, 0x0000018 + +gUnk_080CF290:: @ 080CF290 + .incbin "baserom.gba", 0x0CF290, 0x0000004 + +gUnk_080CF294:: @ 080CF294 + .incbin "baserom.gba", 0x0CF294, 0x0000018 + +gUnk_080CF2AC:: @ 080CF2AC + .incbin "baserom.gba", 0x0CF2AC, 0x0000024 + +gUnk_080CF2D0:: @ 080CF2D0 + .incbin "baserom.gba", 0x0CF2D0, 0x0000004 + +gUnk_080CF2D4:: @ 080CF2D4 + .incbin "baserom.gba", 0x0CF2D4, 0x0000004 + +gUnk_080CF2D8:: @ 080CF2D8 + .incbin "baserom.gba", 0x0CF2D8, 0x0000004 + +gUnk_080CF2DC:: @ 080CF2DC + .incbin "baserom.gba", 0x0CF2DC, 0x0000004 + +gUnk_080CF2E0:: @ 080CF2E0 + .incbin "baserom.gba", 0x0CF2E0, 0x0000019 + +gUnk_080CF2F9:: @ 080CF2F9 + .incbin "baserom.gba", 0x0CF2F9, 0x0000019 + +gUnk_080CF312:: @ 080CF312 + .incbin "baserom.gba", 0x0CF312, 0x0000019 + +gUnk_080CF32B:: @ 080CF32B + .incbin "baserom.gba", 0x0CF32B, 0x0000019 + +gUnk_080CF344:: @ 080CF344 + .incbin "baserom.gba", 0x0CF344, 0x0000018 + +gUnk_080CF35C:: @ 080CF35C + .incbin "baserom.gba", 0x0CF35C, 0x0000018 + +gUnk_080CF374:: @ 080CF374 + .incbin "baserom.gba", 0x0CF374, 0x0000018 + +gUnk_080CF38C:: @ 080CF38C + .incbin "baserom.gba", 0x0CF38C, 0x0000018 + +gUnk_080CF3A4:: @ 080CF3A4 + .incbin "baserom.gba", 0x0CF3A4, 0x0000009 + +gUnk_080CF3AD:: @ 080CF3AD + .incbin "baserom.gba", 0x0CF3AD, 0x0000009 + +gUnk_080CF3B6:: @ 080CF3B6 + .incbin "baserom.gba", 0x0CF3B6, 0x0000009 + +gUnk_080CF3BF:: @ 080CF3BF + .incbin "baserom.gba", 0x0CF3BF, 0x0000009 + +gUnk_080CF3C8:: @ 080CF3C8 + .incbin "baserom.gba", 0x0CF3C8, 0x0000014 + +gUnk_080CF3DC:: @ 080CF3DC + .incbin "baserom.gba", 0x0CF3DC, 0x0000014 + +gUnk_080CF3F0:: @ 080CF3F0 + .incbin "baserom.gba", 0x0CF3F0, 0x0000014 + +gUnk_080CF404:: @ 080CF404 + .incbin "baserom.gba", 0x0CF404, 0x0000014 + +gUnk_080CF418:: @ 080CF418 + .incbin "baserom.gba", 0x0CF418, 0x0000054 + +gUnk_080CF46C:: @ 080CF46C + .incbin "baserom.gba", 0x0CF46C, 0x0000018 + +gUnk_080CF484:: @ 080CF484 + .incbin "baserom.gba", 0x0CF484, 0x000000C + +gUnk_080CF490:: @ 080CF490 + .incbin "baserom.gba", 0x0CF490, 0x0000008 + +gUnk_080CF498:: @ 080CF498 + .incbin "baserom.gba", 0x0CF498, 0x0000008 + +gUnk_080CF4A0:: @ 080CF4A0 + .incbin "baserom.gba", 0x0CF4A0, 0x0000018 + +gUnk_080CF4B8:: @ 080CF4B8 + .incbin "baserom.gba", 0x0CF4B8, 0x000000C + +gUnk_080CF4C4:: @ 080CF4C4 + .incbin "baserom.gba", 0x0CF4C4, 0x0000004 + +gUnk_080CF4C8:: @ 080CF4C8 + .incbin "baserom.gba", 0x0CF4C8, 0x0000018 + +gUnk_080CF4E0:: @ 080CF4E0 + .incbin "baserom.gba", 0x0CF4E0, 0x0000010 + +gUnk_080CF4F0:: @ 080CF4F0 + .incbin "baserom.gba", 0x0CF4F0, 0x0000018 + +gUnk_080CF508:: @ 080CF508 + .incbin "baserom.gba", 0x0CF508, 0x0000018 + +gUnk_080CF520:: @ 080CF520 + .incbin "baserom.gba", 0x0CF520, 0x0000010 + +gUnk_080CF530:: @ 080CF530 + .incbin "baserom.gba", 0x0CF530, 0x000000D + +gUnk_080CF53D:: @ 080CF53D + .incbin "baserom.gba", 0x0CF53D, 0x000000D + +gUnk_080CF54A:: @ 080CF54A + .incbin "baserom.gba", 0x0CF54A, 0x000000D + +gUnk_080CF557:: @ 080CF557 + .incbin "baserom.gba", 0x0CF557, 0x000000D + +gUnk_080CF564:: @ 080CF564 + .incbin "baserom.gba", 0x0CF564, 0x000000D + +gUnk_080CF571:: @ 080CF571 + .incbin "baserom.gba", 0x0CF571, 0x000000D + +gUnk_080CF57E:: @ 080CF57E + .incbin "baserom.gba", 0x0CF57E, 0x000000D + +gUnk_080CF58B:: @ 080CF58B + .incbin "baserom.gba", 0x0CF58B, 0x000000D + +gUnk_080CF598:: @ 080CF598 + .incbin "baserom.gba", 0x0CF598, 0x000000D + +gUnk_080CF5A5:: @ 080CF5A5 + .incbin "baserom.gba", 0x0CF5A5, 0x000000D + +gUnk_080CF5B2:: @ 080CF5B2 + .incbin "baserom.gba", 0x0CF5B2, 0x000000D + +gUnk_080CF5BF:: @ 080CF5BF + .incbin "baserom.gba", 0x0CF5BF, 0x000000D + +gUnk_080CF5CC:: @ 080CF5CC + .incbin "baserom.gba", 0x0CF5CC, 0x0000034 + +gUnk_080CF600:: @ 080CF600 + .incbin "baserom.gba", 0x0CF600, 0x0000018 + +gUnk_080CF618:: @ 080CF618 + .incbin "baserom.gba", 0x0CF618, 0x0000014 + +gUnk_080CF62C:: @ 080CF62C + .incbin "baserom.gba", 0x0CF62C, 0x0000008 + +gUnk_080CF634:: @ 080CF634 + .incbin "baserom.gba", 0x0CF634, 0x0000008 + +gUnk_080CF63C:: @ 080CF63C + .incbin "baserom.gba", 0x0CF63C, 0x0000008 + +gUnk_080CF644:: @ 080CF644 + .incbin "baserom.gba", 0x0CF644, 0x0000005 + +gUnk_080CF649:: @ 080CF649 + .incbin "baserom.gba", 0x0CF649, 0x0000005 + +gUnk_080CF64E:: @ 080CF64E + .incbin "baserom.gba", 0x0CF64E, 0x0000005 + +gUnk_080CF653:: @ 080CF653 + .incbin "baserom.gba", 0x0CF653, 0x0000005 + +gUnk_080CF658:: @ 080CF658 + .incbin "baserom.gba", 0x0CF658, 0x0000011 + +gUnk_080CF669:: @ 080CF669 + .incbin "baserom.gba", 0x0CF669, 0x0000011 + +gUnk_080CF67A:: @ 080CF67A + .incbin "baserom.gba", 0x0CF67A, 0x0000011 + +gUnk_080CF68B:: @ 080CF68B + .incbin "baserom.gba", 0x0CF68B, 0x0000011 + +gUnk_080CF69C:: @ 080CF69C + .incbin "baserom.gba", 0x0CF69C, 0x0000005 + +gUnk_080CF6A1:: @ 080CF6A1 + .incbin "baserom.gba", 0x0CF6A1, 0x0000005 + +gUnk_080CF6A6:: @ 080CF6A6 + .incbin "baserom.gba", 0x0CF6A6, 0x0000005 + +gUnk_080CF6AB:: @ 080CF6AB + .incbin "baserom.gba", 0x0CF6AB, 0x0000005 + +gUnk_080CF6B0:: @ 080CF6B0 + .incbin "baserom.gba", 0x0CF6B0, 0x0000011 + +gUnk_080CF6C1:: @ 080CF6C1 + .incbin "baserom.gba", 0x0CF6C1, 0x0000011 + +gUnk_080CF6D2:: @ 080CF6D2 + .incbin "baserom.gba", 0x0CF6D2, 0x0000011 + +gUnk_080CF6E3:: @ 080CF6E3 + .incbin "baserom.gba", 0x0CF6E3, 0x0000011 + +gUnk_080CF6F4:: @ 080CF6F4 + .incbin "baserom.gba", 0x0CF6F4, 0x000000C + +gUnk_080CF700:: @ 080CF700 + .incbin "baserom.gba", 0x0CF700, 0x000000C + +gUnk_080CF70C:: @ 080CF70C + .incbin "baserom.gba", 0x0CF70C, 0x000000C + +gUnk_080CF718:: @ 080CF718 + .incbin "baserom.gba", 0x0CF718, 0x000000C + +gUnk_080CF724:: @ 080CF724 + .incbin "baserom.gba", 0x0CF724, 0x0000054 + +gUnk_080CF778:: @ 080CF778 + .incbin "baserom.gba", 0x0CF778, 0x0000018 + +gUnk_080CF790:: @ 080CF790 + .incbin "baserom.gba", 0x0CF790, 0x000001C + +gUnk_080CF7AC:: @ 080CF7AC + .incbin "baserom.gba", 0x0CF7AC, 0x0000010 + +gUnk_080CF7BC:: @ 080CF7BC + .incbin "baserom.gba", 0x0CF7BC, 0x0000002 + +gUnk_080CF7BE:: @ 080CF7BE + .incbin "baserom.gba", 0x0CF7BE, 0x0000004 + +gUnk_080CF7C2:: @ 080CF7C2 + .incbin "baserom.gba", 0x0CF7C2, 0x0000002 + +gUnk_080CF7C4:: @ 080CF7C4 + .incbin "baserom.gba", 0x0CF7C4, 0x0000037 + +gUnk_080CF7FB:: @ 080CF7FB + .incbin "baserom.gba", 0x0CF7FB, 0x0000018 + +gUnk_080CF813:: @ 080CF813 + .incbin "baserom.gba", 0x0CF813, 0x0000011 + +gUnk_080CF824:: @ 080CF824 + .incbin "baserom.gba", 0x0CF824, 0x0000004 + +gUnk_080CF828:: @ 080CF828 + .incbin "baserom.gba", 0x0CF828, 0x0000004 + +gUnk_080CF82C:: @ 080CF82C + .incbin "baserom.gba", 0x0CF82C, 0x0000002 + +gUnk_080CF82E:: @ 080CF82E + .incbin "baserom.gba", 0x0CF82E, 0x0000003 + +gUnk_080CF831:: @ 080CF831 + .incbin "baserom.gba", 0x0CF831, 0x0000005 + +gUnk_080CF836:: @ 080CF836 + .incbin "baserom.gba", 0x0CF836, 0x0000011 + +gUnk_080CF847:: @ 080CF847 + .incbin "baserom.gba", 0x0CF847, 0x0000018 + +gUnk_080CF85F:: @ 080CF85F + .incbin "baserom.gba", 0x0CF85F, 0x0000020 + +gUnk_080CF87F:: @ 080CF87F + .incbin "baserom.gba", 0x0CF87F, 0x0000011 + +gUnk_080CF890:: @ 080CF890 + .incbin "baserom.gba", 0x0CF890, 0x0000014 + +gUnk_080CF8A4:: @ 080CF8A4 + .incbin "baserom.gba", 0x0CF8A4, 0x0000018 + +gUnk_080CF8BC:: @ 080CF8BC + .incbin "baserom.gba", 0x0CF8BC, 0x0000030 + +gUnk_080CF8EC:: @ 080CF8EC + .incbin "baserom.gba", 0x0CF8EC, 0x000000C + +gUnk_080CF8F8:: @ 080CF8F8 + .incbin "baserom.gba", 0x0CF8F8, 0x0000008 + +gUnk_080CF900:: @ 080CF900 + .incbin "baserom.gba", 0x0CF900, 0x0000010 + +gUnk_080CF910:: @ 080CF910 + .incbin "baserom.gba", 0x0CF910, 0x0000008 + +gUnk_080CF918:: @ 080CF918 + .incbin "baserom.gba", 0x0CF918, 0x0000010 + +gUnk_080CF928:: @ 080CF928 + .incbin "baserom.gba", 0x0CF928, 0x0000004 + +gUnk_080CF92C:: @ 080CF92C + .incbin "baserom.gba", 0x0CF92C, 0x0000004 + +gUnk_080CF930:: @ 080CF930 + .incbin "baserom.gba", 0x0CF930, 0x0000008 + +gUnk_080CF938:: @ 080CF938 + .incbin "baserom.gba", 0x0CF938, 0x000000A + +gUnk_080CF942:: @ 080CF942 + .incbin "baserom.gba", 0x0CF942, 0x0000004 + +gUnk_080CF946:: @ 080CF946 + .incbin "baserom.gba", 0x0CF946, 0x0000004 + +gUnk_080CF94A:: @ 080CF94A + .incbin "baserom.gba", 0x0CF94A, 0x0000004 + +gUnk_080CF94E:: @ 080CF94E + .incbin "baserom.gba", 0x0CF94E, 0x0000004 + +gUnk_080CF952:: @ 080CF952 + .incbin "baserom.gba", 0x0CF952, 0x0000019 + +gUnk_080CF96B:: @ 080CF96B + .incbin "baserom.gba", 0x0CF96B, 0x0000019 + +gUnk_080CF984:: @ 080CF984 + .incbin "baserom.gba", 0x0CF984, 0x0000019 + +gUnk_080CF99D:: @ 080CF99D + .incbin "baserom.gba", 0x0CF99D, 0x0000019 + +gUnk_080CF9B6:: @ 080CF9B6 + .incbin "baserom.gba", 0x0CF9B6, 0x0000004 + +gUnk_080CF9BA:: @ 080CF9BA + .incbin "baserom.gba", 0x0CF9BA, 0x0000004 + +gUnk_080CF9BE:: @ 080CF9BE + .incbin "baserom.gba", 0x0CF9BE, 0x0000004 + +gUnk_080CF9C2:: @ 080CF9C2 + .incbin "baserom.gba", 0x0CF9C2, 0x0000004 + +gUnk_080CF9C6:: @ 080CF9C6 + .incbin "baserom.gba", 0x0CF9C6, 0x0000011 + +gUnk_080CF9D7:: @ 080CF9D7 + .incbin "baserom.gba", 0x0CF9D7, 0x0000011 + +gUnk_080CF9E8:: @ 080CF9E8 + .incbin "baserom.gba", 0x0CF9E8, 0x000000B + +gUnk_080CF9F3:: @ 080CF9F3 + .incbin "baserom.gba", 0x0CF9F3, 0x0000004 + +gUnk_080CF9F7:: @ 080CF9F7 + .incbin "baserom.gba", 0x0CF9F7, 0x0000002 + +gUnk_080CF9F9:: @ 080CF9F9 + .incbin "baserom.gba", 0x0CF9F9, 0x0000011 + +gUnk_080CFA0A:: @ 080CFA0A + .incbin "baserom.gba", 0x0CFA0A, 0x0000004 + +gUnk_080CFA0E:: @ 080CFA0E + .incbin "baserom.gba", 0x0CFA0E, 0x0000004 + +gUnk_080CFA12:: @ 080CFA12 + .incbin "baserom.gba", 0x0CFA12, 0x0000004 + +gUnk_080CFA16:: @ 080CFA16 + .incbin "baserom.gba", 0x0CFA16, 0x0000004 + +gUnk_080CFA1A:: @ 080CFA1A + .incbin "baserom.gba", 0x0CFA1A, 0x0000019 + +gUnk_080CFA33:: @ 080CFA33 + .incbin "baserom.gba", 0x0CFA33, 0x0000019 + +gUnk_080CFA4C:: @ 080CFA4C + .incbin "baserom.gba", 0x0CFA4C, 0x0000019 + +gUnk_080CFA65:: @ 080CFA65 + .incbin "baserom.gba", 0x0CFA65, 0x0000019 + +gUnk_080CFA7E:: @ 080CFA7E + .incbin "baserom.gba", 0x0CFA7E, 0x0000014 + +gUnk_080CFA92:: @ 080CFA92 + .incbin "baserom.gba", 0x0CFA92, 0x0000014 + +gUnk_080CFAA6:: @ 080CFAA6 + .incbin "baserom.gba", 0x0CFAA6, 0x0000014 + +gUnk_080CFABA:: @ 080CFABA + .incbin "baserom.gba", 0x0CFABA, 0x0000014 + +gUnk_080CFACE:: @ 080CFACE + .incbin "baserom.gba", 0x0CFACE, 0x0000004 + +gUnk_080CFAD2:: @ 080CFAD2 + .incbin "baserom.gba", 0x0CFAD2, 0x0000004 + +gUnk_080CFAD6:: @ 080CFAD6 + .incbin "baserom.gba", 0x0CFAD6, 0x0000004 + +gUnk_080CFADA:: @ 080CFADA + .incbin "baserom.gba", 0x0CFADA, 0x0000004 + +gUnk_080CFADE:: @ 080CFADE + .incbin "baserom.gba", 0x0CFADE, 0x0000004 + +gUnk_080CFAE2:: @ 080CFAE2 + .incbin "baserom.gba", 0x0CFAE2, 0x0000004 + +gUnk_080CFAE6:: @ 080CFAE6 + .incbin "baserom.gba", 0x0CFAE6, 0x0000004 + +gUnk_080CFAEA:: @ 080CFAEA + .incbin "baserom.gba", 0x0CFAEA, 0x0000006 + +gUnk_080CFAF0:: @ 080CFAF0 + .incbin "baserom.gba", 0x0CFAF0, 0x0000003 + +gUnk_080CFAF3:: @ 080CFAF3 + .incbin "baserom.gba", 0x0CFAF3, 0x0000091 + +gUnk_080CFB84:: @ 080CFB84 + .incbin "baserom.gba", 0x0CFB84, 0x0000018 + +gUnk_080CFB9C:: @ 080CFB9C + .incbin "baserom.gba", 0x0CFB9C, 0x0000020 + +gUnk_080CFBBC:: @ 080CFBBC + .incbin "baserom.gba", 0x0CFBBC, 0x0000018 + +gUnk_080CFBD4:: @ 080CFBD4 + .incbin "baserom.gba", 0x0CFBD4, 0x0000010 + +gUnk_080CFBE4:: @ 080CFBE4 + .incbin "baserom.gba", 0x0CFBE4, 0x0000004 + +gUnk_080CFBE8:: @ 080CFBE8 + .incbin "baserom.gba", 0x0CFBE8, 0x0000024 + +gUnk_080CFC0C:: @ 080CFC0C + .incbin "baserom.gba", 0x0CFC0C, 0x0000008 + +gUnk_080CFC14:: @ 080CFC14 + .incbin "baserom.gba", 0x0CFC14, 0x0000018 + +gUnk_080CFC2C:: @ 080CFC2C + .incbin "baserom.gba", 0x0CFC2C, 0x0000010 + +gUnk_080CFC3C:: @ 080CFC3C + .incbin "baserom.gba", 0x0CFC3C, 0x00000BB + +gUnk_080CFCF7:: @ 080CFCF7 + .incbin "baserom.gba", 0x0CFCF7, 0x0000011 + +gUnk_080CFD08:: @ 080CFD08 + .incbin "baserom.gba", 0x0CFD08, 0x0000002 + +gUnk_080CFD0A:: @ 080CFD0A + .incbin "baserom.gba", 0x0CFD0A, 0x0000002 + +gUnk_080CFD0C:: @ 080CFD0C + .incbin "baserom.gba", 0x0CFD0C, 0x000000D + +gUnk_080CFD19:: @ 080CFD19 + .incbin "baserom.gba", 0x0CFD19, 0x0000002 + +gUnk_080CFD1B:: @ 080CFD1B + .incbin "baserom.gba", 0x0CFD1B, 0x0000002 + +gUnk_080CFD1D:: @ 080CFD1D + .incbin "baserom.gba", 0x0CFD1D, 0x0000003 + +gUnk_080CFD20:: @ 080CFD20 + .incbin "baserom.gba", 0x0CFD20, 0x0000010 + +gUnk_080CFD30:: @ 080CFD30 + .incbin "baserom.gba", 0x0CFD30, 0x0000014 + +gUnk_080CFD44:: @ 080CFD44 + .incbin "baserom.gba", 0x0CFD44, 0x0000014 + +gUnk_080CFD58:: @ 080CFD58 + .incbin "baserom.gba", 0x0CFD58, 0x0000004 + +gUnk_080CFD5C:: @ 080CFD5C + .incbin "baserom.gba", 0x0CFD5C, 0x0000004 + +gUnk_080CFD60:: @ 080CFD60 + .incbin "baserom.gba", 0x0CFD60, 0x0000011 + +gUnk_080CFD71:: @ 080CFD71 + .incbin "baserom.gba", 0x0CFD71, 0x0000011 + +gUnk_080CFD82:: @ 080CFD82 + .incbin "baserom.gba", 0x0CFD82, 0x0000054 + +gUnk_080CFDD6:: @ 080CFDD6 + .incbin "baserom.gba", 0x0CFDD6, 0x0000013 + +gUnk_080CFDE9:: @ 080CFDE9 + .incbin "baserom.gba", 0x0CFDE9, 0x0000041 + +gUnk_080CFE2A:: @ 080CFE2A + .incbin "baserom.gba", 0x0CFE2A, 0x000000D + +gUnk_080CFE37:: @ 080CFE37 + .incbin "baserom.gba", 0x0CFE37, 0x000000D + +gUnk_080CFE44:: @ 080CFE44 + .incbin "baserom.gba", 0x0CFE44, 0x0000008 + +gUnk_080CFE4C:: @ 080CFE4C + .incbin "baserom.gba", 0x0CFE4C, 0x0000008 + +gUnk_080CFE54:: @ 080CFE54 + .incbin "baserom.gba", 0x0CFE54, 0x0000004 + +gUnk_080CFE58:: @ 080CFE58 + .incbin "baserom.gba", 0x0CFE58, 0x0000004 + +gUnk_080CFE5C:: @ 080CFE5C + .incbin "baserom.gba", 0x0CFE5C, 0x0000004 + +gUnk_080CFE60:: @ 080CFE60 + .incbin "baserom.gba", 0x0CFE60, 0x0000011 + +gUnk_080CFE71:: @ 080CFE71 + .incbin "baserom.gba", 0x0CFE71, 0x0000005 + +gUnk_080CFE76:: @ 080CFE76 + .incbin "baserom.gba", 0x0CFE76, 0x0000005 + +gUnk_080CFE7B:: @ 080CFE7B + .incbin "baserom.gba", 0x0CFE7B, 0x0000005 + +gUnk_080CFE80:: @ 080CFE80 + .incbin "baserom.gba", 0x0CFE80, 0x0000005 + +gUnk_080CFE85:: @ 080CFE85 + .incbin "baserom.gba", 0x0CFE85, 0x0000005 + +gUnk_080CFE8A:: @ 080CFE8A + .incbin "baserom.gba", 0x0CFE8A, 0x0000005 + +gUnk_080CFE8F:: @ 080CFE8F + .incbin "baserom.gba", 0x0CFE8F, 0x0000005 + +gUnk_080CFE94:: @ 080CFE94 + .incbin "baserom.gba", 0x0CFE94, 0x0000005 + +gUnk_080CFE99:: @ 080CFE99 + .incbin "baserom.gba", 0x0CFE99, 0x0000005 + +gUnk_080CFE9E:: @ 080CFE9E + .incbin "baserom.gba", 0x0CFE9E, 0x0000005 + +gUnk_080CFEA3:: @ 080CFEA3 + .incbin "baserom.gba", 0x0CFEA3, 0x000000D + +gUnk_080CFEB0:: @ 080CFEB0 + .incbin "baserom.gba", 0x0CFEB0, 0x0000011 + +gUnk_080CFEC1:: @ 080CFEC1 + .incbin "baserom.gba", 0x0CFEC1, 0x0000013 + +gUnk_080CFED4:: @ 080CFED4 + .incbin "baserom.gba", 0x0CFED4, 0x0000028 + +gUnk_080CFEFC:: @ 080CFEFC + .incbin "baserom.gba", 0x0CFEFC, 0x0000040 + +gUnk_080CFF3C:: @ 080CFF3C + .incbin "baserom.gba", 0x0CFF3C, 0x0000018 + +gUnk_080CFF54:: @ 080CFF54 + .incbin "baserom.gba", 0x0CFF54, 0x0000018 + +gUnk_080CFF6C:: @ 080CFF6C + .incbin "baserom.gba", 0x0CFF6C, 0x000000C + +gUnk_080CFF78:: @ 080CFF78 + .incbin "baserom.gba", 0x0CFF78, 0x0000018 + +gUnk_080CFF90:: @ 080CFF90 + .incbin "baserom.gba", 0x0CFF90, 0x0000014 + +gUnk_080CFFA4:: @ 080CFFA4 + .incbin "baserom.gba", 0x0CFFA4, 0x0000008 + +gUnk_080CFFAC:: @ 080CFFAC + .incbin "baserom.gba", 0x0CFFAC, 0x0000010 + +gUnk_080CFFBC:: @ 080CFFBC + .incbin "baserom.gba", 0x0CFFBC, 0x0000008 + +gUnk_080CFFC4:: @ 080CFFC4 + .incbin "baserom.gba", 0x0CFFC4, 0x0000008 + +gUnk_080CFFCC:: @ 080CFFCC + .incbin "baserom.gba", 0x0CFFCC, 0x0000009 + +gUnk_080CFFD5:: @ 080CFFD5 + .incbin "baserom.gba", 0x0CFFD5, 0x0000009 + +gUnk_080CFFDE:: @ 080CFFDE + .incbin "baserom.gba", 0x0CFFDE, 0x0000009 + +gUnk_080CFFE7:: @ 080CFFE7 + .incbin "baserom.gba", 0x0CFFE7, 0x0000009 + +gUnk_080CFFF0:: @ 080CFFF0 + .incbin "baserom.gba", 0x0CFFF0, 0x0000011 + +gUnk_080D0001:: @ 080D0001 + .incbin "baserom.gba", 0x0D0001, 0x0000004 + +gUnk_080D0005:: @ 080D0005 + .incbin "baserom.gba", 0x0D0005, 0x0000003 + +gUnk_080D0008:: @ 080D0008 + .incbin "baserom.gba", 0x0D0008, 0x0000001 + +gUnk_080D0009:: @ 080D0009 + .incbin "baserom.gba", 0x0D0009, 0x0000003 + +gUnk_080D000C:: @ 080D000C + .incbin "baserom.gba", 0x0D000C, 0x0000006 + +gUnk_080D0012:: @ 080D0012 + .incbin "baserom.gba", 0x0D0012, 0x0000011 + +gUnk_080D0023:: @ 080D0023 + .incbin "baserom.gba", 0x0D0023, 0x0000009 + +gUnk_080D002C:: @ 080D002C + .incbin "baserom.gba", 0x0D002C, 0x0000008 + +gUnk_080D0034:: @ 080D0034 + .incbin "baserom.gba", 0x0D0034, 0x0000011 + +gUnk_080D0045:: @ 080D0045 + .incbin "baserom.gba", 0x0D0045, 0x0000011 + +gUnk_080D0056:: @ 080D0056 + .incbin "baserom.gba", 0x0D0056, 0x0000011 + +gUnk_080D0067:: @ 080D0067 + .incbin "baserom.gba", 0x0D0067, 0x0000011 + +gUnk_080D0078:: @ 080D0078 + .incbin "baserom.gba", 0x0D0078, 0x0000015 + +gUnk_080D008D:: @ 080D008D + .incbin "baserom.gba", 0x0D008D, 0x0000015 + +gUnk_080D00A2:: @ 080D00A2 + .incbin "baserom.gba", 0x0D00A2, 0x0000015 + +gUnk_080D00B7:: @ 080D00B7 + .incbin "baserom.gba", 0x0D00B7, 0x0000015 + +gUnk_080D00CC:: @ 080D00CC + .incbin "baserom.gba", 0x0D00CC, 0x0000008 + +gUnk_080D00D4:: @ 080D00D4 + .incbin "baserom.gba", 0x0D00D4, 0x000002C + +gUnk_080D0100:: @ 080D0100 + .incbin "baserom.gba", 0x0D0100, 0x0000010 + +gUnk_080D0110:: @ 080D0110 + .incbin "baserom.gba", 0x0D0110, 0x0000018 + +gUnk_080D0128:: @ 080D0128 + .incbin "baserom.gba", 0x0D0128, 0x0000020 + +gUnk_080D0148:: @ 080D0148 + .incbin "baserom.gba", 0x0D0148, 0x000000C + +gUnk_080D0154:: @ 080D0154 + .incbin "baserom.gba", 0x0D0154, 0x0000008 + +gUnk_080D015C:: @ 080D015C + .incbin "baserom.gba", 0x0D015C, 0x0000011 + +gUnk_080D016D:: @ 080D016D + .incbin "baserom.gba", 0x0D016D, 0x0000011 + +gUnk_080D017E:: @ 080D017E + .incbin "baserom.gba", 0x0D017E, 0x0000011 + +gUnk_080D018F:: @ 080D018F + .incbin "baserom.gba", 0x0D018F, 0x0000011 + +gUnk_080D01A0:: @ 080D01A0 + .incbin "baserom.gba", 0x0D01A0, 0x0000011 + +gUnk_080D01B1:: @ 080D01B1 + .incbin "baserom.gba", 0x0D01B1, 0x0000011 + +gUnk_080D01C2:: @ 080D01C2 + .incbin "baserom.gba", 0x0D01C2, 0x0000011 + +gUnk_080D01D3:: @ 080D01D3 + .incbin "baserom.gba", 0x0D01D3, 0x0000011 + +gUnk_080D01E4:: @ 080D01E4 + .incbin "baserom.gba", 0x0D01E4, 0x000000B + +gUnk_080D01EF:: @ 080D01EF + .incbin "baserom.gba", 0x0D01EF, 0x000001D + +gUnk_080D020C:: @ 080D020C + .incbin "baserom.gba", 0x0D020C, 0x0000004 + +gUnk_080D0210:: @ 080D0210 + .incbin "baserom.gba", 0x0D0210, 0x0000001 + +gUnk_080D0211:: @ 080D0211 + .incbin "baserom.gba", 0x0D0211, 0x0000014 + +gUnk_080D0225:: @ 080D0225 + .incbin "baserom.gba", 0x0D0225, 0x0000041 + +gUnk_080D0266:: @ 080D0266 + .incbin "baserom.gba", 0x0D0266, 0x0000041 + +gUnk_080D02A7:: @ 080D02A7 + .incbin "baserom.gba", 0x0D02A7, 0x0000041 + +gUnk_080D02E8:: @ 080D02E8 + .incbin "baserom.gba", 0x0D02E8, 0x000000B + +gUnk_080D02F3:: @ 080D02F3 + .incbin "baserom.gba", 0x0D02F3, 0x0000003 + +gUnk_080D02F6:: @ 080D02F6 + .incbin "baserom.gba", 0x0D02F6, 0x0000001 + +gUnk_080D02F7:: @ 080D02F7 + .incbin "baserom.gba", 0x0D02F7, 0x0000002 + +gUnk_080D02F9:: @ 080D02F9 + .incbin "baserom.gba", 0x0D02F9, 0x0000003 + +gUnk_080D02FC:: @ 080D02FC + .incbin "baserom.gba", 0x0D02FC, 0x0000004 + +gUnk_080D0300:: @ 080D0300 + .incbin "baserom.gba", 0x0D0300, 0x000000A + +gUnk_080D030A:: @ 080D030A + .incbin "baserom.gba", 0x0D030A, 0x0000011 + +gUnk_080D031B:: @ 080D031B + .incbin "baserom.gba", 0x0D031B, 0x0000011 + +gUnk_080D032C:: @ 080D032C + .incbin "baserom.gba", 0x0D032C, 0x0000011 + +gUnk_080D033D:: @ 080D033D + .incbin "baserom.gba", 0x0D033D, 0x0000011 + +gUnk_080D034E:: @ 080D034E + .incbin "baserom.gba", 0x0D034E, 0x0000011 + +gUnk_080D035F:: @ 080D035F + .incbin "baserom.gba", 0x0D035F, 0x0000011 + +gUnk_080D0370:: @ 080D0370 + .incbin "baserom.gba", 0x0D0370, 0x0000011 + +gUnk_080D0381:: @ 080D0381 + .incbin "baserom.gba", 0x0D0381, 0x0000011 + +gUnk_080D0392:: @ 080D0392 + .incbin "baserom.gba", 0x0D0392, 0x0000011 + +gUnk_080D03A3:: @ 080D03A3 + .incbin "baserom.gba", 0x0D03A3, 0x0000011 + +gUnk_080D03B4:: @ 080D03B4 + .incbin "baserom.gba", 0x0D03B4, 0x000003C + +gUnk_080D03F0:: @ 080D03F0 + .incbin "baserom.gba", 0x0D03F0, 0x0000014 + +gUnk_080D0404:: @ 080D0404 + .incbin "baserom.gba", 0x0D0404, 0x0000014 + +gUnk_080D0418:: @ 080D0418 + .incbin "baserom.gba", 0x0D0418, 0x0000018 + +gUnk_080D0430:: @ 080D0430 + .incbin "baserom.gba", 0x0D0430, 0x000000C + +gUnk_080D043C:: @ 080D043C + .incbin "baserom.gba", 0x0D043C, 0x000000C + +gUnk_080D0448:: @ 080D0448 + .incbin "baserom.gba", 0x0D0448, 0x0000010 + +gUnk_080D0458:: @ 080D0458 + .incbin "baserom.gba", 0x0D0458, 0x0000010 + +gUnk_080D0468:: @ 080D0468 + .incbin "baserom.gba", 0x0D0468, 0x0000008 + +gUnk_080D0470:: @ 080D0470 + .incbin "baserom.gba", 0x0D0470, 0x0000020 + +gUnk_080D0490:: @ 080D0490 + .incbin "baserom.gba", 0x0D0490, 0x0000008 + +gUnk_080D0498:: @ 080D0498 + .incbin "baserom.gba", 0x0D0498, 0x0000008 + +gUnk_080D04A0:: @ 080D04A0 + .incbin "baserom.gba", 0x0D04A0, 0x0000008 + +gUnk_080D04A8:: @ 080D04A8 + .incbin "baserom.gba", 0x0D04A8, 0x0000004 + +gUnk_080D04AC:: @ 080D04AC + .incbin "baserom.gba", 0x0D04AC, 0x0000014 + +gUnk_080D04C0:: @ 080D04C0 + .incbin "baserom.gba", 0x0D04C0, 0x0000008 + +gUnk_080D04C8:: @ 080D04C8 + .incbin "baserom.gba", 0x0D04C8, 0x0000008 + +gUnk_080D04D0:: @ 080D04D0 + .incbin "baserom.gba", 0x0D04D0, 0x0000003 + +gUnk_080D04D3:: @ 080D04D3 + .incbin "baserom.gba", 0x0D04D3, 0x0000004 + +gUnk_080D04D7:: @ 080D04D7 + .incbin "baserom.gba", 0x0D04D7, 0x0000011 + +gUnk_080D04E8:: @ 080D04E8 + .incbin "baserom.gba", 0x0D04E8, 0x0000011 + +gUnk_080D04F9:: @ 080D04F9 + .incbin "baserom.gba", 0x0D04F9, 0x0000005 + +gUnk_080D04FE:: @ 080D04FE + .incbin "baserom.gba", 0x0D04FE, 0x0000003 + +gUnk_080D0501:: @ 080D0501 + .incbin "baserom.gba", 0x0D0501, 0x0000001 + +gUnk_080D0502:: @ 080D0502 + .incbin "baserom.gba", 0x0D0502, 0x0000006 + +gUnk_080D0508:: @ 080D0508 + .incbin "baserom.gba", 0x0D0508, 0x0000005 + +gUnk_080D050D:: @ 080D050D + .incbin "baserom.gba", 0x0D050D, 0x0000024 + +gUnk_080D0531:: @ 080D0531 + .incbin "baserom.gba", 0x0D0531, 0x0000027 + +gUnk_080D0558:: @ 080D0558 + .incbin "baserom.gba", 0x0D0558, 0x0000018 + +gUnk_080D0570:: @ 080D0570 + .incbin "baserom.gba", 0x0D0570, 0x0000005 + +gUnk_080D0575:: @ 080D0575 + .incbin "baserom.gba", 0x0D0575, 0x0000010 + +gUnk_080D0585:: @ 080D0585 + .incbin "baserom.gba", 0x0D0585, 0x0000007 + +gUnk_080D058C:: @ 080D058C + .incbin "baserom.gba", 0x0D058C, 0x0000010 + +gUnk_080D059C:: @ 080D059C + .incbin "baserom.gba", 0x0D059C, 0x0000011 + +gUnk_080D05AD:: @ 080D05AD + .incbin "baserom.gba", 0x0D05AD, 0x0000011 + +gUnk_080D05BE:: @ 080D05BE + .incbin "baserom.gba", 0x0D05BE, 0x0000011 + +gUnk_080D05CF:: @ 080D05CF + .incbin "baserom.gba", 0x0D05CF, 0x0000011 + +gUnk_080D05E0:: @ 080D05E0 + .incbin "baserom.gba", 0x0D05E0, 0x0000014 + +gUnk_080D05F4:: @ 080D05F4 + .incbin "baserom.gba", 0x0D05F4, 0x0000006 + +gUnk_080D05FA:: @ 080D05FA + .incbin "baserom.gba", 0x0D05FA, 0x0000002 + +gUnk_080D05FC:: @ 080D05FC + .incbin "baserom.gba", 0x0D05FC, 0x0000001 + +gUnk_080D05FD:: @ 080D05FD + .incbin "baserom.gba", 0x0D05FD, 0x0000001 + +gUnk_080D05FE:: @ 080D05FE + .incbin "baserom.gba", 0x0D05FE, 0x0000007 + +gUnk_080D0605:: @ 080D0605 + .incbin "baserom.gba", 0x0D0605, 0x0000003 + +gUnk_080D0608:: @ 080D0608 + .incbin "baserom.gba", 0x0D0608, 0x0000001 + +gUnk_080D0609:: @ 080D0609 + .incbin "baserom.gba", 0x0D0609, 0x0000015 + +gUnk_080D061E:: @ 080D061E + .incbin "baserom.gba", 0x0D061E, 0x0000016 + +gUnk_080D0634:: @ 080D0634 + .incbin "baserom.gba", 0x0D0634, 0x0000014 + +gUnk_080D0648:: @ 080D0648 + .incbin "baserom.gba", 0x0D0648, 0x0000018 + +gUnk_080D0660:: @ 080D0660 + .incbin "baserom.gba", 0x0D0660, 0x0000028 + +gUnk_080D0688:: @ 080D0688 + .incbin "baserom.gba", 0x0D0688, 0x0000019 + +gUnk_080D06A1:: @ 080D06A1 + .incbin "baserom.gba", 0x0D06A1, 0x0000011 + +gUnk_080D06B2:: @ 080D06B2 + .incbin "baserom.gba", 0x0D06B2, 0x000001E + +gUnk_080D06D0:: @ 080D06D0 + .incbin "baserom.gba", 0x0D06D0, 0x0000010 + +gUnk_080D06E0:: @ 080D06E0 + .incbin "baserom.gba", 0x0D06E0, 0x0000008 + +gUnk_080D06E8:: @ 080D06E8 + .incbin "baserom.gba", 0x0D06E8, 0x0000010 + +gUnk_080D06F8:: @ 080D06F8 + .incbin "baserom.gba", 0x0D06F8, 0x0000004 + +gUnk_080D06FC:: @ 080D06FC + .incbin "baserom.gba", 0x0D06FC, 0x0000002 + +gUnk_080D06FE:: @ 080D06FE + .incbin "baserom.gba", 0x0D06FE, 0x0000002 + +gUnk_080D0700:: @ 080D0700 + .incbin "baserom.gba", 0x0D0700, 0x0000001 + +gUnk_080D0701:: @ 080D0701 + .incbin "baserom.gba", 0x0D0701, 0x0000023 + +gUnk_080D0724:: @ 080D0724 + .incbin "baserom.gba", 0x0D0724, 0x0000004 + +gUnk_080D0728:: @ 080D0728 + .incbin "baserom.gba", 0x0D0728, 0x0000008 + +gUnk_080D0730:: @ 080D0730 + .incbin "baserom.gba", 0x0D0730, 0x0000008 + +gUnk_080D0738:: @ 080D0738 + .incbin "baserom.gba", 0x0D0738, 0x0000004 + +gUnk_080D073C:: @ 080D073C + .incbin "baserom.gba", 0x0D073C, 0x0000004 + +gUnk_080D0740:: @ 080D0740 + .incbin "baserom.gba", 0x0D0740, 0x0000004 + +gUnk_080D0744:: @ 080D0744 + .incbin "baserom.gba", 0x0D0744, 0x0000004 + +gUnk_080D0748:: @ 080D0748 + .incbin "baserom.gba", 0x0D0748, 0x0000004 + +gUnk_080D074C:: @ 080D074C + .incbin "baserom.gba", 0x0D074C, 0x0000004 + +gUnk_080D0750:: @ 080D0750 + .incbin "baserom.gba", 0x0D0750, 0x0000004 + +gUnk_080D0754:: @ 080D0754 + .incbin "baserom.gba", 0x0D0754, 0x0000004 + +gUnk_080D0758:: @ 080D0758 + .incbin "baserom.gba", 0x0D0758, 0x0000004 + +gUnk_080D075C:: @ 080D075C + .incbin "baserom.gba", 0x0D075C, 0x0000004 + +gUnk_080D0760:: @ 080D0760 + .incbin "baserom.gba", 0x0D0760, 0x0000004 + +gUnk_080D0764:: @ 080D0764 + .incbin "baserom.gba", 0x0D0764, 0x0000004 + +gUnk_080D0768:: @ 080D0768 + .incbin "baserom.gba", 0x0D0768, 0x0000004 + +gUnk_080D076C:: @ 080D076C + .incbin "baserom.gba", 0x0D076C, 0x0000004 + +gUnk_080D0770:: @ 080D0770 + .incbin "baserom.gba", 0x0D0770, 0x0000004 + +gUnk_080D0774:: @ 080D0774 + .incbin "baserom.gba", 0x0D0774, 0x0000004 + +gUnk_080D0778:: @ 080D0778 + .incbin "baserom.gba", 0x0D0778, 0x0000004 + +gUnk_080D077C:: @ 080D077C + .incbin "baserom.gba", 0x0D077C, 0x0000004 + +gUnk_080D0780:: @ 080D0780 + .incbin "baserom.gba", 0x0D0780, 0x0000004 + +gUnk_080D0784:: @ 080D0784 + .incbin "baserom.gba", 0x0D0784, 0x0000004 + +gUnk_080D0788:: @ 080D0788 + .incbin "baserom.gba", 0x0D0788, 0x0000004 + +gUnk_080D078C:: @ 080D078C + .incbin "baserom.gba", 0x0D078C, 0x0000004 + +gUnk_080D0790:: @ 080D0790 + .incbin "baserom.gba", 0x0D0790, 0x0000004 + +gUnk_080D0794:: @ 080D0794 + .incbin "baserom.gba", 0x0D0794, 0x0000004 + +gUnk_080D0798:: @ 080D0798 + .incbin "baserom.gba", 0x0D0798, 0x0000004 + +gUnk_080D079C:: @ 080D079C + .incbin "baserom.gba", 0x0D079C, 0x0000004 + +gUnk_080D07A0:: @ 080D07A0 + .incbin "baserom.gba", 0x0D07A0, 0x0000004 + +gUnk_080D07A4:: @ 080D07A4 + .incbin "baserom.gba", 0x0D07A4, 0x0000004 + +gUnk_080D07A8:: @ 080D07A8 + .incbin "baserom.gba", 0x0D07A8, 0x0000004 + +gUnk_080D07AC:: @ 080D07AC + .incbin "baserom.gba", 0x0D07AC, 0x0000004 + +gUnk_080D07B0:: @ 080D07B0 + .incbin "baserom.gba", 0x0D07B0, 0x0000004 + +gUnk_080D07B4:: @ 080D07B4 + .incbin "baserom.gba", 0x0D07B4, 0x0000004 + +gUnk_080D07B8:: @ 080D07B8 + .incbin "baserom.gba", 0x0D07B8, 0x000000D + +gUnk_080D07C5:: @ 080D07C5 + .incbin "baserom.gba", 0x0D07C5, 0x000000D + +gUnk_080D07D2:: @ 080D07D2 + .incbin "baserom.gba", 0x0D07D2, 0x000000D + +gUnk_080D07DF:: @ 080D07DF + .incbin "baserom.gba", 0x0D07DF, 0x000000D + +gUnk_080D07EC:: @ 080D07EC + .incbin "baserom.gba", 0x0D07EC, 0x0000010 + +gUnk_080D07FC:: @ 080D07FC + .incbin "baserom.gba", 0x0D07FC, 0x0000001 + +gUnk_080D07FD:: @ 080D07FD + .incbin "baserom.gba", 0x0D07FD, 0x0000002 + +gUnk_080D07FF:: @ 080D07FF + .incbin "baserom.gba", 0x0D07FF, 0x0000001 + +gUnk_080D0800:: @ 080D0800 + .incbin "baserom.gba", 0x0D0800, 0x0000001 + +gUnk_080D0801:: @ 080D0801 + .incbin "baserom.gba", 0x0D0801, 0x0000005 + +gUnk_080D0806:: @ 080D0806 + .incbin "baserom.gba", 0x0D0806, 0x0000001 + +gUnk_080D0807:: @ 080D0807 + .incbin "baserom.gba", 0x0D0807, 0x0000003 + +gUnk_080D080A:: @ 080D080A + .incbin "baserom.gba", 0x0D080A, 0x000000F + +gUnk_080D0819:: @ 080D0819 + .incbin "baserom.gba", 0x0D0819, 0x0000067 + +gUnk_080D0880:: @ 080D0880 + .incbin "baserom.gba", 0x0D0880, 0x0000018 + +gUnk_080D0898:: @ 080D0898 + .incbin "baserom.gba", 0x0D0898, 0x000002C + +gUnk_080D08C4:: @ 080D08C4 + .incbin "baserom.gba", 0x0D08C4, 0x0000004 + +gUnk_080D08C8:: @ 080D08C8 + .incbin "baserom.gba", 0x0D08C8, 0x0000035 + +gUnk_080D08FD:: @ 080D08FD + .incbin "baserom.gba", 0x0D08FD, 0x0000003 + +gUnk_080D0900:: @ 080D0900 + .incbin "baserom.gba", 0x0D0900, 0x0000003 + +gUnk_080D0903:: @ 080D0903 + .incbin "baserom.gba", 0x0D0903, 0x0000001 + +gUnk_080D0904:: @ 080D0904 + .incbin "baserom.gba", 0x0D0904, 0x0000002 + +gUnk_080D0906:: @ 080D0906 + .incbin "baserom.gba", 0x0D0906, 0x0000002 + +gUnk_080D0908:: @ 080D0908 + .incbin "baserom.gba", 0x0D0908, 0x000000A + +gUnk_080D0912:: @ 080D0912 + .incbin "baserom.gba", 0x0D0912, 0x0000012 + +gUnk_080D0924:: @ 080D0924 + .incbin "baserom.gba", 0x0D0924, 0x0000018 + +gUnk_080D093C:: @ 080D093C + .incbin "baserom.gba", 0x0D093C, 0x0000028 + +gUnk_080D0964:: @ 080D0964 + .incbin "baserom.gba", 0x0D0964, 0x000000C + +gUnk_080D0970:: @ 080D0970 + .incbin "baserom.gba", 0x0D0970, 0x0000004 + +gUnk_080D0974:: @ 080D0974 + .incbin "baserom.gba", 0x0D0974, 0x0000004 + +gUnk_080D0978:: @ 080D0978 + .incbin "baserom.gba", 0x0D0978, 0x0000008 + +gUnk_080D0980:: @ 080D0980 + .incbin "baserom.gba", 0x0D0980, 0x0000004 + +gUnk_080D0984:: @ 080D0984 + .incbin "baserom.gba", 0x0D0984, 0x0000004 + +gUnk_080D0988:: @ 080D0988 + .incbin "baserom.gba", 0x0D0988, 0x000001C + +gUnk_080D09A4:: @ 080D09A4 + .incbin "baserom.gba", 0x0D09A4, 0x0000025 + +gUnk_080D09C9:: @ 080D09C9 + .incbin "baserom.gba", 0x0D09C9, 0x0000025 + +gUnk_080D09EE:: @ 080D09EE + .incbin "baserom.gba", 0x0D09EE, 0x000000E + +gUnk_080D09FC:: @ 080D09FC + .incbin "baserom.gba", 0x0D09FC, 0x0000005 + +gUnk_080D0A01:: @ 080D0A01 + .incbin "baserom.gba", 0x0D0A01, 0x0000002 + +gUnk_080D0A03:: @ 080D0A03 + .incbin "baserom.gba", 0x0D0A03, 0x0000005 + +gUnk_080D0A08:: @ 080D0A08 + .incbin "baserom.gba", 0x0D0A08, 0x0000002 + +gUnk_080D0A0A:: @ 080D0A0A + .incbin "baserom.gba", 0x0D0A0A, 0x0000002 + +gUnk_080D0A0C:: @ 080D0A0C + .incbin "baserom.gba", 0x0D0A0C, 0x0000001 + +gUnk_080D0A0D:: @ 080D0A0D + .incbin "baserom.gba", 0x0D0A0D, 0x0000001 + +gUnk_080D0A0E:: @ 080D0A0E + .incbin "baserom.gba", 0x0D0A0E, 0x0000002 + +gUnk_080D0A10:: @ 080D0A10 + .incbin "baserom.gba", 0x0D0A10, 0x0000022 + +gUnk_080D0A32:: @ 080D0A32 + .incbin "baserom.gba", 0x0D0A32, 0x0000039 + +gUnk_080D0A6B:: @ 080D0A6B + .incbin "baserom.gba", 0x0D0A6B, 0x0000004 + +gUnk_080D0A6F:: @ 080D0A6F + .incbin "baserom.gba", 0x0D0A6F, 0x0000004 + +gUnk_080D0A73:: @ 080D0A73 + .incbin "baserom.gba", 0x0D0A73, 0x000000C + +gUnk_080D0A7F:: @ 080D0A7F + .incbin "baserom.gba", 0x0D0A7F, 0x000000C + +gUnk_080D0A8B:: @ 080D0A8B + .incbin "baserom.gba", 0x0D0A8B, 0x0000005 + +gUnk_080D0A90:: @ 080D0A90 + .incbin "baserom.gba", 0x0D0A90, 0x000002C + +gUnk_080D0ABC:: @ 080D0ABC + .incbin "baserom.gba", 0x0D0ABC, 0x0000003 + +gUnk_080D0ABF:: @ 080D0ABF + .incbin "baserom.gba", 0x0D0ABF, 0x0000009 + +gUnk_080D0AC8:: @ 080D0AC8 + .incbin "baserom.gba", 0x0D0AC8, 0x0000020 + +gUnk_080D0AE8:: @ 080D0AE8 + .incbin "baserom.gba", 0x0D0AE8, 0x0000008 + +gUnk_080D0AF0:: @ 080D0AF0 + .incbin "baserom.gba", 0x0D0AF0, 0x000000C + +gUnk_080D0AFC:: @ 080D0AFC + .incbin "baserom.gba", 0x0D0AFC, 0x0000004 + +gUnk_080D0B00:: @ 080D0B00 + .incbin "baserom.gba", 0x0D0B00, 0x0000001 + +gUnk_080D0B01:: @ 080D0B01 + .incbin "baserom.gba", 0x0D0B01, 0x0000001 + +gUnk_080D0B02:: @ 080D0B02 + .incbin "baserom.gba", 0x0D0B02, 0x0000002 + +gUnk_080D0B04:: @ 080D0B04 + .incbin "baserom.gba", 0x0D0B04, 0x0000002 + +gUnk_080D0B06:: @ 080D0B06 + .incbin "baserom.gba", 0x0D0B06, 0x0000006 + +gUnk_080D0B0C:: @ 080D0B0C + .incbin "baserom.gba", 0x0D0B0C, 0x0000003 + +gUnk_080D0B0F:: @ 080D0B0F + .incbin "baserom.gba", 0x0D0B0F, 0x0000001 + +gUnk_080D0B10:: @ 080D0B10 + .incbin "baserom.gba", 0x0D0B10, 0x0000008 + +gUnk_080D0B18:: @ 080D0B18 + .incbin "baserom.gba", 0x0D0B18, 0x0000011 + +gUnk_080D0B29:: @ 080D0B29 + .incbin "baserom.gba", 0x0D0B29, 0x000002F + +gUnk_080D0B58:: @ 080D0B58 + .incbin "baserom.gba", 0x0D0B58, 0x000000C + +gUnk_080D0B64:: @ 080D0B64 + .incbin "baserom.gba", 0x0D0B64, 0x0000010 + +gUnk_080D0B74:: @ 080D0B74 + .incbin "baserom.gba", 0x0D0B74, 0x0000010 + +gUnk_080D0B84:: @ 080D0B84 + .incbin "baserom.gba", 0x0D0B84, 0x0000020 + +gUnk_080D0BA4:: @ 080D0BA4 + .incbin "baserom.gba", 0x0D0BA4, 0x0000011 + +gUnk_080D0BB5:: @ 080D0BB5 + .incbin "baserom.gba", 0x0D0BB5, 0x000000F + +gUnk_080D0BC4:: @ 080D0BC4 + .incbin "baserom.gba", 0x0D0BC4, 0x0000018 + +gUnk_080D0BDC:: @ 080D0BDC + .incbin "baserom.gba", 0x0D0BDC, 0x0000005 + +gUnk_080D0BE1:: @ 080D0BE1 + .incbin "baserom.gba", 0x0D0BE1, 0x000000C + +gUnk_080D0BED:: @ 080D0BED + .incbin "baserom.gba", 0x0D0BED, 0x0000005 + +gUnk_080D0BF2:: @ 080D0BF2 + .incbin "baserom.gba", 0x0D0BF2, 0x0000005 + +gUnk_080D0BF7:: @ 080D0BF7 + .incbin "baserom.gba", 0x0D0BF7, 0x0000004 + +gUnk_080D0BFB:: @ 080D0BFB + .incbin "baserom.gba", 0x0D0BFB, 0x0000001 + +gUnk_080D0BFC:: @ 080D0BFC + .incbin "baserom.gba", 0x0D0BFC, 0x0000004 + +gUnk_080D0C00:: @ 080D0C00 + .incbin "baserom.gba", 0x0D0C00, 0x0000006 + +gUnk_080D0C06:: @ 080D0C06 + .incbin "baserom.gba", 0x0D0C06, 0x0000002 + +gUnk_080D0C08:: @ 080D0C08 + .incbin "baserom.gba", 0x0D0C08, 0x0000002 + +gUnk_080D0C0A:: @ 080D0C0A + .incbin "baserom.gba", 0x0D0C0A, 0x0000002 + +gUnk_080D0C0C:: @ 080D0C0C + .incbin "baserom.gba", 0x0D0C0C, 0x0000028 + +gUnk_080D0C34:: @ 080D0C34 + .incbin "baserom.gba", 0x0D0C34, 0x0000021 + +gUnk_080D0C55:: @ 080D0C55 + .incbin "baserom.gba", 0x0D0C55, 0x0000033 + +gUnk_080D0C88:: @ 080D0C88 + .incbin "baserom.gba", 0x0D0C88, 0x0000018 + +gUnk_080D0CA0:: @ 080D0CA0 + .incbin "baserom.gba", 0x0D0CA0, 0x0000005 + +gUnk_080D0CA5:: @ 080D0CA5 + .incbin "baserom.gba", 0x0D0CA5, 0x0000030 + +gUnk_080D0CD5:: @ 080D0CD5 + .incbin "baserom.gba", 0x0D0CD5, 0x0000011 + +gUnk_080D0CE6:: @ 080D0CE6 + .incbin "baserom.gba", 0x0D0CE6, 0x000000E + +gUnk_080D0CF4:: @ 080D0CF4 + .incbin "baserom.gba", 0x0D0CF4, 0x0000010 + +gUnk_080D0D04:: @ 080D0D04 + .incbin "baserom.gba", 0x0D0D04, 0x0000001 + +gUnk_080D0D05:: @ 080D0D05 + .incbin "baserom.gba", 0x0D0D05, 0x0000001 + +gUnk_080D0D06:: @ 080D0D06 + .incbin "baserom.gba", 0x0D0D06, 0x0000003 + +gUnk_080D0D09:: @ 080D0D09 + .incbin "baserom.gba", 0x0D0D09, 0x0000002 + +gUnk_080D0D0B:: @ 080D0D0B + .incbin "baserom.gba", 0x0D0D0B, 0x0000001 + +gUnk_080D0D0C:: @ 080D0D0C + .incbin "baserom.gba", 0x0D0D0C, 0x0000002 + +gUnk_080D0D0E:: @ 080D0D0E + .incbin "baserom.gba", 0x0D0D0E, 0x0000006 + +gUnk_080D0D14:: @ 080D0D14 + .incbin "baserom.gba", 0x0D0D14, 0x000002C + +gUnk_080D0D40:: @ 080D0D40 + .incbin "baserom.gba", 0x0D0D40, 0x0000008 + +gUnk_080D0D48:: @ 080D0D48 + .incbin "baserom.gba", 0x0D0D48, 0x0000030 + +gUnk_080D0D78:: @ 080D0D78 + .incbin "baserom.gba", 0x0D0D78, 0x0000019 + +gUnk_080D0D91:: @ 080D0D91 + .incbin "baserom.gba", 0x0D0D91, 0x0000010 + +gUnk_080D0DA1:: @ 080D0DA1 + .incbin "baserom.gba", 0x0D0DA1, 0x000000F + +gUnk_080D0DB0:: @ 080D0DB0 + .incbin "baserom.gba", 0x0D0DB0, 0x0000014 + +gUnk_080D0DC4:: @ 080D0DC4 + .incbin "baserom.gba", 0x0D0DC4, 0x0000018 + +gUnk_080D0DDC:: @ 080D0DDC + .incbin "baserom.gba", 0x0D0DDC, 0x000001B + +gUnk_080D0DF7:: @ 080D0DF7 + .incbin "baserom.gba", 0x0D0DF7, 0x000000A + +gUnk_080D0E01:: @ 080D0E01 + .incbin "baserom.gba", 0x0D0E01, 0x0000007 + +gUnk_080D0E08:: @ 080D0E08 + .incbin "baserom.gba", 0x0D0E08, 0x0000002 + +gUnk_080D0E0A:: @ 080D0E0A + .incbin "baserom.gba", 0x0D0E0A, 0x0000002 + +gUnk_080D0E0C:: @ 080D0E0C + .incbin "baserom.gba", 0x0D0E0C, 0x0000001 + +gUnk_080D0E0D:: @ 080D0E0D + .incbin "baserom.gba", 0x0D0E0D, 0x0000001 + +gUnk_080D0E0E:: @ 080D0E0E + .incbin "baserom.gba", 0x0D0E0E, 0x0000001 + +gUnk_080D0E0F:: @ 080D0E0F + .incbin "baserom.gba", 0x0D0E0F, 0x0000004 + +gUnk_080D0E13:: @ 080D0E13 + .incbin "baserom.gba", 0x0D0E13, 0x0000001 + +gUnk_080D0E14:: @ 080D0E14 + .incbin "baserom.gba", 0x0D0E14, 0x0000004 + +gUnk_080D0E18:: @ 080D0E18 + .incbin "baserom.gba", 0x0D0E18, 0x0000004 + +gUnk_080D0E1C:: @ 080D0E1C + .incbin "baserom.gba", 0x0D0E1C, 0x0000010 + +gUnk_080D0E2C:: @ 080D0E2C + .incbin "baserom.gba", 0x0D0E2C, 0x0000038 + +gUnk_080D0E64:: @ 080D0E64 + .incbin "baserom.gba", 0x0D0E64, 0x0000004 + +gUnk_080D0E68:: @ 080D0E68 + .incbin "baserom.gba", 0x0D0E68, 0x0000018 + +gUnk_080D0E80:: @ 080D0E80 + .incbin "baserom.gba", 0x0D0E80, 0x0000010 + +gUnk_080D0E90:: @ 080D0E90 + .incbin "baserom.gba", 0x0D0E90, 0x0000010 + +gUnk_080D0EA0:: @ 080D0EA0 + .incbin "baserom.gba", 0x0D0EA0, 0x0000008 + +gUnk_080D0EA8:: @ 080D0EA8 + .incbin "baserom.gba", 0x0D0EA8, 0x0000004 + +gUnk_080D0EAC:: @ 080D0EAC + .incbin "baserom.gba", 0x0D0EAC, 0x0000004 + +gUnk_080D0EB0:: @ 080D0EB0 + .incbin "baserom.gba", 0x0D0EB0, 0x0000020 + +gUnk_080D0ED0:: @ 080D0ED0 + .incbin "baserom.gba", 0x0D0ED0, 0x0000019 + +gUnk_080D0EE9:: @ 080D0EE9 + .incbin "baserom.gba", 0x0D0EE9, 0x000000C + +gUnk_080D0EF5:: @ 080D0EF5 + .incbin "baserom.gba", 0x0D0EF5, 0x000000D + +gUnk_080D0F02:: @ 080D0F02 + .incbin "baserom.gba", 0x0D0F02, 0x0000003 + +gUnk_080D0F05:: @ 080D0F05 + .incbin "baserom.gba", 0x0D0F05, 0x0000003 + +gUnk_080D0F08:: @ 080D0F08 + .incbin "baserom.gba", 0x0D0F08, 0x0000001 + +gUnk_080D0F09:: @ 080D0F09 + .incbin "baserom.gba", 0x0D0F09, 0x0000004 + +gUnk_080D0F0D:: @ 080D0F0D + .incbin "baserom.gba", 0x0D0F0D, 0x0000001 + +gUnk_080D0F0E:: @ 080D0F0E + .incbin "baserom.gba", 0x0D0F0E, 0x0000001 + +gUnk_080D0F0F:: @ 080D0F0F + .incbin "baserom.gba", 0x0D0F0F, 0x0000001 + +gUnk_080D0F10:: @ 080D0F10 + .incbin "baserom.gba", 0x0D0F10, 0x0000001 + +gUnk_080D0F11:: @ 080D0F11 + .incbin "baserom.gba", 0x0D0F11, 0x0000001 + +gUnk_080D0F12:: @ 080D0F12 + .incbin "baserom.gba", 0x0D0F12, 0x0000001 + +gUnk_080D0F13:: @ 080D0F13 + .incbin "baserom.gba", 0x0D0F13, 0x0000004 + +gUnk_080D0F17:: @ 080D0F17 + .incbin "baserom.gba", 0x0D0F17, 0x0000011 + +gUnk_080D0F28:: @ 080D0F28 + .incbin "baserom.gba", 0x0D0F28, 0x0000045 + +gUnk_080D0F6D:: @ 080D0F6D + .incbin "baserom.gba", 0x0D0F6D, 0x0000015 + +gUnk_080D0F82:: @ 080D0F82 + .incbin "baserom.gba", 0x0D0F82, 0x0000019 + +gUnk_080D0F9B:: @ 080D0F9B + .incbin "baserom.gba", 0x0D0F9B, 0x0000015 + +gUnk_080D0FB0:: @ 080D0FB0 + .incbin "baserom.gba", 0x0D0FB0, 0x0000011 + +gUnk_080D0FC1:: @ 080D0FC1 + .incbin "baserom.gba", 0x0D0FC1, 0x0000015 + +gUnk_080D0FD6:: @ 080D0FD6 + .incbin "baserom.gba", 0x0D0FD6, 0x000001D + +gUnk_080D0FF3:: @ 080D0FF3 + .incbin "baserom.gba", 0x0D0FF3, 0x0000005 + +gUnk_080D0FF8:: @ 080D0FF8 + .incbin "baserom.gba", 0x0D0FF8, 0x0000015 + +gUnk_080D100D:: @ 080D100D + .incbin "baserom.gba", 0x0D100D, 0x0000002 + +gUnk_080D100F:: @ 080D100F + .incbin "baserom.gba", 0x0D100F, 0x0000001 + +gUnk_080D1010:: @ 080D1010 + .incbin "baserom.gba", 0x0D1010, 0x0000001 + +gUnk_080D1011:: @ 080D1011 + .incbin "baserom.gba", 0x0D1011, 0x0000001 + +gUnk_080D1012:: @ 080D1012 + .incbin "baserom.gba", 0x0D1012, 0x0000001 + +gUnk_080D1013:: @ 080D1013 + .incbin "baserom.gba", 0x0D1013, 0x0000006 + +gUnk_080D1019:: @ 080D1019 + .incbin "baserom.gba", 0x0D1019, 0x0000012 + +gUnk_080D102B:: @ 080D102B + .incbin "baserom.gba", 0x0D102B, 0x000000B + +gUnk_080D1036:: @ 080D1036 + .incbin "baserom.gba", 0x0D1036, 0x0000019 + +gUnk_080D104F:: @ 080D104F + .incbin "baserom.gba", 0x0D104F, 0x0000011 + +gUnk_080D1060:: @ 080D1060 + .incbin "baserom.gba", 0x0D1060, 0x000000D + +gUnk_080D106D:: @ 080D106D + .incbin "baserom.gba", 0x0D106D, 0x000000D + +gUnk_080D107A:: @ 080D107A + .incbin "baserom.gba", 0x0D107A, 0x0000005 + +gUnk_080D107F:: @ 080D107F + .incbin "baserom.gba", 0x0D107F, 0x0000021 + +gUnk_080D10A0:: @ 080D10A0 + .incbin "baserom.gba", 0x0D10A0, 0x0000015 + +gUnk_080D10B5:: @ 080D10B5 + .incbin "baserom.gba", 0x0D10B5, 0x0000011 + +gUnk_080D10C6:: @ 080D10C6 + .incbin "baserom.gba", 0x0D10C6, 0x0000011 + +gUnk_080D10D7:: @ 080D10D7 + .incbin "baserom.gba", 0x0D10D7, 0x0000015 + +gUnk_080D10EC:: @ 080D10EC + .incbin "baserom.gba", 0x0D10EC, 0x0000005 + +gUnk_080D10F1:: @ 080D10F1 + .incbin "baserom.gba", 0x0D10F1, 0x0000015 + +gUnk_080D1106:: @ 080D1106 + .incbin "baserom.gba", 0x0D1106, 0x0000006 + +gUnk_080D110C:: @ 080D110C + .incbin "baserom.gba", 0x0D110C, 0x0000003 + +gUnk_080D110F:: @ 080D110F + .incbin "baserom.gba", 0x0D110F, 0x0000001 + +gUnk_080D1110:: @ 080D1110 + .incbin "baserom.gba", 0x0D1110, 0x0000001 + +gUnk_080D1111:: @ 080D1111 + .incbin "baserom.gba", 0x0D1111, 0x0000001 + +gUnk_080D1112:: @ 080D1112 + .incbin "baserom.gba", 0x0D1112, 0x0000002 + +gUnk_080D1114:: @ 080D1114 + .incbin "baserom.gba", 0x0D1114, 0x0000001 + +gUnk_080D1115:: @ 080D1115 + .incbin "baserom.gba", 0x0D1115, 0x0000001 + +gUnk_080D1116:: @ 080D1116 + .incbin "baserom.gba", 0x0D1116, 0x0000001 + +gUnk_080D1117:: @ 080D1117 + .incbin "baserom.gba", 0x0D1117, 0x0000007 + +gUnk_080D111E:: @ 080D111E + .incbin "baserom.gba", 0x0D111E, 0x000001A + +gUnk_080D1138:: @ 080D1138 + .incbin "baserom.gba", 0x0D1138, 0x0000015 + +gUnk_080D114D:: @ 080D114D + .incbin "baserom.gba", 0x0D114D, 0x0000031 + +gUnk_080D117E:: @ 080D117E + .incbin "baserom.gba", 0x0D117E, 0x0000019 + +gUnk_080D1197:: @ 080D1197 + .incbin "baserom.gba", 0x0D1197, 0x0000015 + +gUnk_080D11AC:: @ 080D11AC + .incbin "baserom.gba", 0x0D11AC, 0x000005C + +gUnk_080D1208:: @ 080D1208 + .incbin "baserom.gba", 0x0D1208, 0x0000004 + +gUnk_080D120C:: @ 080D120C + .incbin "baserom.gba", 0x0D120C, 0x0000001 + +gUnk_080D120D:: @ 080D120D + .incbin "baserom.gba", 0x0D120D, 0x0000002 + +gUnk_080D120F:: @ 080D120F + .incbin "baserom.gba", 0x0D120F, 0x0000002 + +gUnk_080D1211:: @ 080D1211 + .incbin "baserom.gba", 0x0D1211, 0x0000003 + +gUnk_080D1214:: @ 080D1214 + .incbin "baserom.gba", 0x0D1214, 0x0000001 + +gUnk_080D1215:: @ 080D1215 + .incbin "baserom.gba", 0x0D1215, 0x0000001 + +gUnk_080D1216:: @ 080D1216 + .incbin "baserom.gba", 0x0D1216, 0x0000001 + +gUnk_080D1217:: @ 080D1217 + .incbin "baserom.gba", 0x0D1217, 0x0000001 + +gUnk_080D1218:: @ 080D1218 + .incbin "baserom.gba", 0x0D1218, 0x0000001 + +gUnk_080D1219:: @ 080D1219 + .incbin "baserom.gba", 0x0D1219, 0x0000004 + +gUnk_080D121D:: @ 080D121D + .incbin "baserom.gba", 0x0D121D, 0x0000013 + +gUnk_080D1230:: @ 080D1230 + .incbin "baserom.gba", 0x0D1230, 0x0000018 + +gUnk_080D1248:: @ 080D1248 + .incbin "baserom.gba", 0x0D1248, 0x0000014 + +gUnk_080D125C:: @ 080D125C + .incbin "baserom.gba", 0x0D125C, 0x0000024 + +gUnk_080D1280:: @ 080D1280 + .incbin "baserom.gba", 0x0D1280, 0x0000004 + +gUnk_080D1284:: @ 080D1284 + .incbin "baserom.gba", 0x0D1284, 0x0000002 + +gUnk_080D1286:: @ 080D1286 + .incbin "baserom.gba", 0x0D1286, 0x000000A + +gUnk_080D1290:: @ 080D1290 + .incbin "baserom.gba", 0x0D1290, 0x000001C + +gUnk_080D12AC:: @ 080D12AC + .incbin "baserom.gba", 0x0D12AC, 0x0000004 + +gUnk_080D12B0:: @ 080D12B0 + .incbin "baserom.gba", 0x0D12B0, 0x0000002 + +gUnk_080D12B2:: @ 080D12B2 + .incbin "baserom.gba", 0x0D12B2, 0x0000002 + +gUnk_080D12B4:: @ 080D12B4 + .incbin "baserom.gba", 0x0D12B4, 0x0000002 + +gUnk_080D12B6:: @ 080D12B6 + .incbin "baserom.gba", 0x0D12B6, 0x0000002 + +gUnk_080D12B8:: @ 080D12B8 + .incbin "baserom.gba", 0x0D12B8, 0x0000010 + +gUnk_080D12C8:: @ 080D12C8 + .incbin "baserom.gba", 0x0D12C8, 0x0000002 + +gUnk_080D12CA:: @ 080D12CA + .incbin "baserom.gba", 0x0D12CA, 0x0000006 + +gUnk_080D12D0:: @ 080D12D0 + .incbin "baserom.gba", 0x0D12D0, 0x000001D + +gUnk_080D12ED:: @ 080D12ED + .incbin "baserom.gba", 0x0D12ED, 0x000000B + +gUnk_080D12F8:: @ 080D12F8 + .incbin "baserom.gba", 0x0D12F8, 0x0000006 + +gUnk_080D12FE:: @ 080D12FE + .incbin "baserom.gba", 0x0D12FE, 0x0000002 + +gUnk_080D1300:: @ 080D1300 + .incbin "baserom.gba", 0x0D1300, 0x0000004 + +gUnk_080D1304:: @ 080D1304 + .incbin "baserom.gba", 0x0D1304, 0x0000008 + +gUnk_080D130C:: @ 080D130C + .incbin "baserom.gba", 0x0D130C, 0x0000001 + +gUnk_080D130D:: @ 080D130D + .incbin "baserom.gba", 0x0D130D, 0x0000003 + +gUnk_080D1310:: @ 080D1310 + .incbin "baserom.gba", 0x0D1310, 0x0000004 + +gUnk_080D1314:: @ 080D1314 + .incbin "baserom.gba", 0x0D1314, 0x0000001 + +gUnk_080D1315:: @ 080D1315 + .incbin "baserom.gba", 0x0D1315, 0x0000001 + +gUnk_080D1316:: @ 080D1316 + .incbin "baserom.gba", 0x0D1316, 0x0000001 + +gUnk_080D1317:: @ 080D1317 + .incbin "baserom.gba", 0x0D1317, 0x0000001 + +gUnk_080D1318:: @ 080D1318 + .incbin "baserom.gba", 0x0D1318, 0x0000001 + +gUnk_080D1319:: @ 080D1319 + .incbin "baserom.gba", 0x0D1319, 0x0000001 + +gUnk_080D131A:: @ 080D131A + .incbin "baserom.gba", 0x0D131A, 0x0000002 + +gUnk_080D131C:: @ 080D131C + .incbin "baserom.gba", 0x0D131C, 0x0000004 + +gUnk_080D1320:: @ 080D1320 + .incbin "baserom.gba", 0x0D1320, 0x0000018 + +gUnk_080D1338:: @ 080D1338 + .incbin "baserom.gba", 0x0D1338, 0x0000004 + +gUnk_080D133C:: @ 080D133C + .incbin "baserom.gba", 0x0D133C, 0x0000004 + +gUnk_080D1340:: @ 080D1340 + .incbin "baserom.gba", 0x0D1340, 0x0000008 + +gUnk_080D1348:: @ 080D1348 + .incbin "baserom.gba", 0x0D1348, 0x0000014 + +gUnk_080D135C:: @ 080D135C + .incbin "baserom.gba", 0x0D135C, 0x0000006 + +gUnk_080D1362:: @ 080D1362 + .incbin "baserom.gba", 0x0D1362, 0x0000050 + +gUnk_080D13B2:: @ 080D13B2 + .incbin "baserom.gba", 0x0D13B2, 0x0000005 + +gUnk_080D13B7:: @ 080D13B7 + .incbin "baserom.gba", 0x0D13B7, 0x0000021 + +gUnk_080D13D8:: @ 080D13D8 + .incbin "baserom.gba", 0x0D13D8, 0x0000008 + +gUnk_080D13E0:: @ 080D13E0 + .incbin "baserom.gba", 0x0D13E0, 0x0000003 + +gUnk_080D13E3:: @ 080D13E3 + .incbin "baserom.gba", 0x0D13E3, 0x0000006 + +gUnk_080D13E9:: @ 080D13E9 + .incbin "baserom.gba", 0x0D13E9, 0x0000003 + +gUnk_080D13EC:: @ 080D13EC + .incbin "baserom.gba", 0x0D13EC, 0x0000014 + +gUnk_080D1400:: @ 080D1400 + .incbin "baserom.gba", 0x0D1400, 0x000000D + +gUnk_080D140D:: @ 080D140D + .incbin "baserom.gba", 0x0D140D, 0x0000005 + +gUnk_080D1412:: @ 080D1412 + .incbin "baserom.gba", 0x0D1412, 0x0000002 + +gUnk_080D1414:: @ 080D1414 + .incbin "baserom.gba", 0x0D1414, 0x0000003 + +gUnk_080D1417:: @ 080D1417 + .incbin "baserom.gba", 0x0D1417, 0x0000001 + +gUnk_080D1418:: @ 080D1418 + .incbin "baserom.gba", 0x0D1418, 0x0000001 + +gUnk_080D1419:: @ 080D1419 + .incbin "baserom.gba", 0x0D1419, 0x0000003 + +gUnk_080D141C:: @ 080D141C + .incbin "baserom.gba", 0x0D141C, 0x0000002 + +gUnk_080D141E:: @ 080D141E + .incbin "baserom.gba", 0x0D141E, 0x0000001 + +gUnk_080D141F:: @ 080D141F + .incbin "baserom.gba", 0x0D141F, 0x0000004 + +gUnk_080D1423:: @ 080D1423 + .incbin "baserom.gba", 0x0D1423, 0x0000008 + +gUnk_080D142B:: @ 080D142B + .incbin "baserom.gba", 0x0D142B, 0x0000005 + +gUnk_080D1430:: @ 080D1430 + .incbin "baserom.gba", 0x0D1430, 0x0000005 + +gUnk_080D1435:: @ 080D1435 + .incbin "baserom.gba", 0x0D1435, 0x0000005 + +gUnk_080D143A:: @ 080D143A + .incbin "baserom.gba", 0x0D143A, 0x0000005 + +gUnk_080D143F:: @ 080D143F + .incbin "baserom.gba", 0x0D143F, 0x0000005 + +gUnk_080D1444:: @ 080D1444 + .incbin "baserom.gba", 0x0D1444, 0x0000005 + +gUnk_080D1449:: @ 080D1449 + .incbin "baserom.gba", 0x0D1449, 0x0000005 + +gUnk_080D144E:: @ 080D144E + .incbin "baserom.gba", 0x0D144E, 0x0000005 + +gUnk_080D1453:: @ 080D1453 + .incbin "baserom.gba", 0x0D1453, 0x0000005 + +gUnk_080D1458:: @ 080D1458 + .incbin "baserom.gba", 0x0D1458, 0x0000005 + +gUnk_080D145D:: @ 080D145D + .incbin "baserom.gba", 0x0D145D, 0x0000005 + +gUnk_080D1462:: @ 080D1462 + .incbin "baserom.gba", 0x0D1462, 0x0000005 + +gUnk_080D1467:: @ 080D1467 + .incbin "baserom.gba", 0x0D1467, 0x0000021 + +gUnk_080D1488:: @ 080D1488 + .incbin "baserom.gba", 0x0D1488, 0x0000005 + +gUnk_080D148D:: @ 080D148D + .incbin "baserom.gba", 0x0D148D, 0x0000051 + +gUnk_080D14DE:: @ 080D14DE + .incbin "baserom.gba", 0x0D14DE, 0x0000015 + +gUnk_080D14F3:: @ 080D14F3 + .incbin "baserom.gba", 0x0D14F3, 0x0000019 + +gUnk_080D150C:: @ 080D150C + .incbin "baserom.gba", 0x0D150C, 0x0000009 + +gUnk_080D1515:: @ 080D1515 + .incbin "baserom.gba", 0x0D1515, 0x0000005 + +gUnk_080D151A:: @ 080D151A + .incbin "baserom.gba", 0x0D151A, 0x000000B + +gUnk_080D1525:: @ 080D1525 + .incbin "baserom.gba", 0x0D1525, 0x0000005 + +gUnk_080D152A:: @ 080D152A + .incbin "baserom.gba", 0x0D152A, 0x0000006 + +gUnk_080D1530:: @ 080D1530 + .incbin "baserom.gba", 0x0D1530, 0x0000058 + +gUnk_080D1588:: @ 080D1588 + .incbin "baserom.gba", 0x0D1588, 0x0000018 + +gUnk_080D15A0:: @ 080D15A0 + .incbin "baserom.gba", 0x0D15A0, 0x0000008 + +gUnk_080D15A8:: @ 080D15A8 + .incbin "baserom.gba", 0x0D15A8, 0x000000C + +gUnk_080D15B4:: @ 080D15B4 + .incbin "baserom.gba", 0x0D15B4, 0x0000050 + +gUnk_080D1604:: @ 080D1604 + .incbin "baserom.gba", 0x0D1604, 0x0000014 + +gUnk_080D1618:: @ 080D1618 + .incbin "baserom.gba", 0x0D1618, 0x0000005 + +gUnk_080D161D:: @ 080D161D + .incbin "baserom.gba", 0x0D161D, 0x0000003 + +gUnk_080D1620:: @ 080D1620 + .incbin "baserom.gba", 0x0D1620, 0x0000008 + +gUnk_080D1628:: @ 080D1628 + .incbin "baserom.gba", 0x0D1628, 0x0000007 + +gUnk_080D162F:: @ 080D162F + .incbin "baserom.gba", 0x0D162F, 0x0000009 + +gUnk_080D1638:: @ 080D1638 + .incbin "baserom.gba", 0x0D1638, 0x0000005 + +gUnk_080D163D:: @ 080D163D + .incbin "baserom.gba", 0x0D163D, 0x0000031 + +gUnk_080D166E:: @ 080D166E + .incbin "baserom.gba", 0x0D166E, 0x0000026 + +gUnk_080D1694:: @ 080D1694 + .incbin "baserom.gba", 0x0D1694, 0x0000010 + +gUnk_080D16A4:: @ 080D16A4 + .incbin "baserom.gba", 0x0D16A4, 0x0000018 + +gUnk_080D16BC:: @ 080D16BC + .incbin "baserom.gba", 0x0D16BC, 0x0000014 + +gUnk_080D16D0:: @ 080D16D0 + .incbin "baserom.gba", 0x0D16D0, 0x0000004 + +gUnk_080D16D4:: @ 080D16D4 + .incbin "baserom.gba", 0x0D16D4, 0x0000008 + +gUnk_080D16DC:: @ 080D16DC + .incbin "baserom.gba", 0x0D16DC, 0x0000009 + +gUnk_080D16E5:: @ 080D16E5 + .incbin "baserom.gba", 0x0D16E5, 0x0000010 + +gUnk_080D16F5:: @ 080D16F5 + .incbin "baserom.gba", 0x0D16F5, 0x0000018 + +gUnk_080D170D:: @ 080D170D + .incbin "baserom.gba", 0x0D170D, 0x0000010 + +gUnk_080D171D:: @ 080D171D + .incbin "baserom.gba", 0x0D171D, 0x0000004 + +gUnk_080D1721:: @ 080D1721 + .incbin "baserom.gba", 0x0D1721, 0x0000020 + +gUnk_080D1741:: @ 080D1741 + .incbin "baserom.gba", 0x0D1741, 0x0000020 + +gUnk_080D1761:: @ 080D1761 + .incbin "baserom.gba", 0x0D1761, 0x0000009 + +gUnk_080D176A:: @ 080D176A + .incbin "baserom.gba", 0x0D176A, 0x0000009 + +gUnk_080D1773:: @ 080D1773 + .incbin "baserom.gba", 0x0D1773, 0x0000005 + +gUnk_080D1778:: @ 080D1778 + .incbin "baserom.gba", 0x0D1778, 0x0000005 + +gUnk_080D177D:: @ 080D177D + .incbin "baserom.gba", 0x0D177D, 0x0000013 + +gUnk_080D1790:: @ 080D1790 + .incbin "baserom.gba", 0x0D1790, 0x0000030 + +gUnk_080D17C0:: @ 080D17C0 + .incbin "baserom.gba", 0x0D17C0, 0x0000018 + +gUnk_080D17D8:: @ 080D17D8 + .incbin "baserom.gba", 0x0D17D8, 0x0000010 + +gUnk_080D17E8:: @ 080D17E8 + .incbin "baserom.gba", 0x0D17E8, 0x0000018 + +gUnk_080D1800:: @ 080D1800 + .incbin "baserom.gba", 0x0D1800, 0x000000C + +gUnk_080D180C:: @ 080D180C + .incbin "baserom.gba", 0x0D180C, 0x0000004 + +gUnk_080D1810:: @ 080D1810 + .incbin "baserom.gba", 0x0D1810, 0x0000008 + +gUnk_080D1818:: @ 080D1818 + .incbin "baserom.gba", 0x0D1818, 0x0000004 + +gUnk_080D181C:: @ 080D181C + .incbin "baserom.gba", 0x0D181C, 0x0000010 + +gUnk_080D182C:: @ 080D182C + .incbin "baserom.gba", 0x0D182C, 0x000000D + +gUnk_080D1839:: @ 080D1839 + .incbin "baserom.gba", 0x0D1839, 0x0000023 + +gUnk_080D185C:: @ 080D185C + .incbin "baserom.gba", 0x0D185C, 0x000000C + +gUnk_080D1868:: @ 080D1868 + .incbin "baserom.gba", 0x0D1868, 0x0000018 + +gUnk_080D1880:: @ 080D1880 + .incbin "baserom.gba", 0x0D1880, 0x0000008 + +gUnk_080D1888:: @ 080D1888 + .incbin "baserom.gba", 0x0D1888, 0x0000018 + +gUnk_080D18A0:: @ 080D18A0 + .incbin "baserom.gba", 0x0D18A0, 0x0000014 + +gUnk_080D18B4:: @ 080D18B4 + .incbin "baserom.gba", 0x0D18B4, 0x0000010 + +gUnk_080D18C4:: @ 080D18C4 + .incbin "baserom.gba", 0x0D18C4, 0x0000005 + +gUnk_080D18C9:: @ 080D18C9 + .incbin "baserom.gba", 0x0D18C9, 0x0000011 + +gUnk_080D18DA:: @ 080D18DA + .incbin "baserom.gba", 0x0D18DA, 0x0000019 + +gUnk_080D18F3:: @ 080D18F3 + .incbin "baserom.gba", 0x0D18F3, 0x0000021 + +gUnk_080D1914:: @ 080D1914 + .incbin "baserom.gba", 0x0D1914, 0x0000004 + +gUnk_080D1918:: @ 080D1918 + .incbin "baserom.gba", 0x0D1918, 0x0000005 + +gUnk_080D191D:: @ 080D191D + .incbin "baserom.gba", 0x0D191D, 0x0000007 + +gUnk_080D1924:: @ 080D1924 + .incbin "baserom.gba", 0x0D1924, 0x0000002 + +gUnk_080D1926:: @ 080D1926 + .incbin "baserom.gba", 0x0D1926, 0x0000009 + +gUnk_080D192F:: @ 080D192F + .incbin "baserom.gba", 0x0D192F, 0x0000005 + +gUnk_080D1934:: @ 080D1934 + .incbin "baserom.gba", 0x0D1934, 0x0000011 + +gUnk_080D1945:: @ 080D1945 + .incbin "baserom.gba", 0x0D1945, 0x0000015 + +gUnk_080D195A:: @ 080D195A + .incbin "baserom.gba", 0x0D195A, 0x000000D + +gUnk_080D1967:: @ 080D1967 + .incbin "baserom.gba", 0x0D1967, 0x0000021 + +gUnk_080D1988:: @ 080D1988 + .incbin "baserom.gba", 0x0D1988, 0x0000025 + +gUnk_080D19AD:: @ 080D19AD + .incbin "baserom.gba", 0x0D19AD, 0x000000B + +gUnk_080D19B8:: @ 080D19B8 + .incbin "baserom.gba", 0x0D19B8, 0x0000044 + +gUnk_080D19FC:: @ 080D19FC + .incbin "baserom.gba", 0x0D19FC, 0x0000018 + +gUnk_080D1A14:: @ 080D1A14 + .incbin "baserom.gba", 0x0D1A14, 0x0000024 + +gUnk_080D1A38:: @ 080D1A38 + .incbin "baserom.gba", 0x0D1A38, 0x0000006 + +gUnk_080D1A3E:: @ 080D1A3E + .incbin "baserom.gba", 0x0D1A3E, 0x0000010 + +gUnk_080D1A4E:: @ 080D1A4E + .incbin "baserom.gba", 0x0D1A4E, 0x0000016 + +gUnk_080D1A64:: @ 080D1A64 + .incbin "baserom.gba", 0x0D1A64, 0x0000010 + +gUnk_080D1A74:: @ 080D1A74 + .incbin "baserom.gba", 0x0D1A74, 0x0000010 + +gUnk_080D1A84:: @ 080D1A84 + .incbin "baserom.gba", 0x0D1A84, 0x0000010 + +gUnk_080D1A94:: @ 080D1A94 + .incbin "baserom.gba", 0x0D1A94, 0x0000018 + +gUnk_080D1AAC:: @ 080D1AAC + .incbin "baserom.gba", 0x0D1AAC, 0x0000018 + +gUnk_080D1AC4:: @ 080D1AC4 + .incbin "baserom.gba", 0x0D1AC4, 0x0000018 + +gUnk_080D1ADC:: @ 080D1ADC + .incbin "baserom.gba", 0x0D1ADC, 0x0000018 + +gUnk_080D1AF4:: @ 080D1AF4 + .incbin "baserom.gba", 0x0D1AF4, 0x0000004 + +gUnk_080D1AF8:: @ 080D1AF8 + .incbin "baserom.gba", 0x0D1AF8, 0x0000004 + +gUnk_080D1AFC:: @ 080D1AFC + .incbin "baserom.gba", 0x0D1AFC, 0x0000020 + +gUnk_080D1B1C:: @ 080D1B1C + .incbin "baserom.gba", 0x0D1B1C, 0x0000003 + +gUnk_080D1B1F:: @ 080D1B1F + .incbin "baserom.gba", 0x0D1B1F, 0x0000019 + +gUnk_080D1B38:: @ 080D1B38 + .incbin "baserom.gba", 0x0D1B38, 0x0000014 + +gUnk_080D1B4C:: @ 080D1B4C + .incbin "baserom.gba", 0x0D1B4C, 0x0000014 + +gUnk_080D1B60:: @ 080D1B60 + .incbin "baserom.gba", 0x0D1B60, 0x0000010 + +gUnk_080D1B70:: @ 080D1B70 + .incbin "baserom.gba", 0x0D1B70, 0x0000004 + +gUnk_080D1B74:: @ 080D1B74 + .incbin "baserom.gba", 0x0D1B74, 0x0000020 + +gUnk_080D1B94:: @ 080D1B94 + .incbin "baserom.gba", 0x0D1B94, 0x0000028 + +gUnk_080D1BBC:: @ 080D1BBC + .incbin "baserom.gba", 0x0D1BBC, 0x0000004 + +gUnk_080D1BC0:: @ 080D1BC0 + .incbin "baserom.gba", 0x0D1BC0, 0x000001C + +gUnk_080D1BDC:: @ 080D1BDC + .incbin "baserom.gba", 0x0D1BDC, 0x0000014 + +gUnk_080D1BF0:: @ 080D1BF0 + .incbin "baserom.gba", 0x0D1BF0, 0x0000004 + +gUnk_080D1BF4:: @ 080D1BF4 + .incbin "baserom.gba", 0x0D1BF4, 0x000000C + +gUnk_080D1C00:: @ 080D1C00 + .incbin "baserom.gba", 0x0D1C00, 0x0000004 + +gUnk_080D1C04:: @ 080D1C04 + .incbin "baserom.gba", 0x0D1C04, 0x0000017 + +gUnk_080D1C1B:: @ 080D1C1B + .incbin "baserom.gba", 0x0D1C1B, 0x0000013 + +gUnk_080D1C2E:: @ 080D1C2E + .incbin "baserom.gba", 0x0D1C2E, 0x0000016 + +gUnk_080D1C44:: @ 080D1C44 + .incbin "baserom.gba", 0x0D1C44, 0x000000C + +gUnk_080D1C50:: @ 080D1C50 + .incbin "baserom.gba", 0x0D1C50, 0x0000010 + +gUnk_080D1C60:: @ 080D1C60 + .incbin "baserom.gba", 0x0D1C60, 0x0000010 + +gUnk_080D1C70:: @ 080D1C70 + .incbin "baserom.gba", 0x0D1C70, 0x0000021 + +gUnk_080D1C91:: @ 080D1C91 + .incbin "baserom.gba", 0x0D1C91, 0x000002B + +gUnk_080D1CBC:: @ 080D1CBC + .incbin "baserom.gba", 0x0D1CBC, 0x000000C + +gUnk_080D1CC8:: @ 080D1CC8 + .incbin "baserom.gba", 0x0D1CC8, 0x0000018 + +gUnk_080D1CE0:: @ 080D1CE0 + .incbin "baserom.gba", 0x0D1CE0, 0x0000010 + +gUnk_080D1CF0:: @ 080D1CF0 + .incbin "baserom.gba", 0x0D1CF0, 0x0000009 + +gUnk_080D1CF9:: @ 080D1CF9 + .incbin "baserom.gba", 0x0D1CF9, 0x0000009 + +gUnk_080D1D02:: @ 080D1D02 + .incbin "baserom.gba", 0x0D1D02, 0x0000020 + +gUnk_080D1D22:: @ 080D1D22 + .incbin "baserom.gba", 0x0D1D22, 0x0000001 + +gUnk_080D1D23:: @ 080D1D23 + .incbin "baserom.gba", 0x0D1D23, 0x0000003 + +gUnk_080D1D26:: @ 080D1D26 + .incbin "baserom.gba", 0x0D1D26, 0x0000001 + +gUnk_080D1D27:: @ 080D1D27 + .incbin "baserom.gba", 0x0D1D27, 0x0000005 + +gUnk_080D1D2C:: @ 080D1D2C + .incbin "baserom.gba", 0x0D1D2C, 0x0000008 + +gUnk_080D1D34:: @ 080D1D34 + .incbin "baserom.gba", 0x0D1D34, 0x0000014 + +gUnk_080D1D48:: @ 080D1D48 + .incbin "baserom.gba", 0x0D1D48, 0x0000028 + +gUnk_080D1D70:: @ 080D1D70 + .incbin "baserom.gba", 0x0D1D70, 0x0000008 + +gUnk_080D1D78:: @ 080D1D78 + .incbin "baserom.gba", 0x0D1D78, 0x0000020 + +gUnk_080D1D98:: @ 080D1D98 + .incbin "baserom.gba", 0x0D1D98, 0x0000008 + +gUnk_080D1DA0:: @ 080D1DA0 + .incbin "baserom.gba", 0x0D1DA0, 0x0000028 + +gUnk_080D1DC8:: @ 080D1DC8 + .incbin "baserom.gba", 0x0D1DC8, 0x0000004 + +gUnk_080D1DCC:: @ 080D1DCC + .incbin "baserom.gba", 0x0D1DCC, 0x0000004 + +gUnk_080D1DD0:: @ 080D1DD0 + .incbin "baserom.gba", 0x0D1DD0, 0x000000C + +gUnk_080D1DDC:: @ 080D1DDC + .incbin "baserom.gba", 0x0D1DDC, 0x000000C + +gUnk_080D1DE8:: @ 080D1DE8 + .incbin "baserom.gba", 0x0D1DE8, 0x000001D + +gUnk_080D1E05:: @ 080D1E05 + .incbin "baserom.gba", 0x0D1E05, 0x0000016 + +gUnk_080D1E1B:: @ 080D1E1B + .incbin "baserom.gba", 0x0D1E1B, 0x0000006 + +gUnk_080D1E21:: @ 080D1E21 + .incbin "baserom.gba", 0x0D1E21, 0x0000005 + +gUnk_080D1E26:: @ 080D1E26 + .incbin "baserom.gba", 0x0D1E26, 0x000000C + +gUnk_080D1E32:: @ 080D1E32 + .incbin "baserom.gba", 0x0D1E32, 0x0000012 + +gUnk_080D1E44:: @ 080D1E44 + .incbin "baserom.gba", 0x0D1E44, 0x0000028 + +gUnk_080D1E6C:: @ 080D1E6C + .incbin "baserom.gba", 0x0D1E6C, 0x0000018 + +gUnk_080D1E84:: @ 080D1E84 + .incbin "baserom.gba", 0x0D1E84, 0x0000010 + +gUnk_080D1E94:: @ 080D1E94 + .incbin "baserom.gba", 0x0D1E94, 0x000000C + +gUnk_080D1EA0:: @ 080D1EA0 + .incbin "baserom.gba", 0x0D1EA0, 0x0000016 + +gUnk_080D1EB6:: @ 080D1EB6 + .incbin "baserom.gba", 0x0D1EB6, 0x0000009 + +gUnk_080D1EBF:: @ 080D1EBF + .incbin "baserom.gba", 0x0D1EBF, 0x0000009 + +gUnk_080D1EC8:: @ 080D1EC8 + .incbin "baserom.gba", 0x0D1EC8, 0x0000009 + +gUnk_080D1ED1:: @ 080D1ED1 + .incbin "baserom.gba", 0x0D1ED1, 0x0000009 + +gUnk_080D1EDA:: @ 080D1EDA + .incbin "baserom.gba", 0x0D1EDA, 0x0000009 + +gUnk_080D1EE3:: @ 080D1EE3 + .incbin "baserom.gba", 0x0D1EE3, 0x0000009 + +gUnk_080D1EEC:: @ 080D1EEC + .incbin "baserom.gba", 0x0D1EEC, 0x0000009 + +gUnk_080D1EF5:: @ 080D1EF5 + .incbin "baserom.gba", 0x0D1EF5, 0x0000009 + +gUnk_080D1EFE:: @ 080D1EFE + .incbin "baserom.gba", 0x0D1EFE, 0x0000004 + +gUnk_080D1F02:: @ 080D1F02 + .incbin "baserom.gba", 0x0D1F02, 0x0000004 + +gUnk_080D1F06:: @ 080D1F06 + .incbin "baserom.gba", 0x0D1F06, 0x0000004 + +gUnk_080D1F0A:: @ 080D1F0A + .incbin "baserom.gba", 0x0D1F0A, 0x0000004 + +gUnk_080D1F0E:: @ 080D1F0E + .incbin "baserom.gba", 0x0D1F0E, 0x0000004 + +gUnk_080D1F12:: @ 080D1F12 + .incbin "baserom.gba", 0x0D1F12, 0x0000004 + +gUnk_080D1F16:: @ 080D1F16 + .incbin "baserom.gba", 0x0D1F16, 0x0000004 + +gUnk_080D1F1A:: @ 080D1F1A + .incbin "baserom.gba", 0x0D1F1A, 0x0000006 + +gUnk_080D1F20:: @ 080D1F20 + .incbin "baserom.gba", 0x0D1F20, 0x0000014 + +gUnk_080D1F34:: @ 080D1F34 + .incbin "baserom.gba", 0x0D1F34, 0x0000030 + +gUnk_080D1F64:: @ 080D1F64 + .incbin "baserom.gba", 0x0D1F64, 0x0000018 + +gUnk_080D1F7C:: @ 080D1F7C + .incbin "baserom.gba", 0x0D1F7C, 0x0000014 + +gUnk_080D1F90:: @ 080D1F90 + .incbin "baserom.gba", 0x0D1F90, 0x0000080 + +gUnk_080D2010:: @ 080D2010 + .incbin "baserom.gba", 0x0D2010, 0x0000020 + +gUnk_080D2030:: @ 080D2030 + .incbin "baserom.gba", 0x0D2030, 0x0000020 + +gUnk_080D2050:: @ 080D2050 + .incbin "baserom.gba", 0x0D2050, 0x0000014 + +gUnk_080D2064:: @ 080D2064 + .incbin "baserom.gba", 0x0D2064, 0x0000014 + +gUnk_080D2078:: @ 080D2078 + .incbin "baserom.gba", 0x0D2078, 0x0000014 + +gUnk_080D208C:: @ 080D208C + .incbin "baserom.gba", 0x0D208C, 0x0000014 + +gUnk_080D20A0:: @ 080D20A0 + .incbin "baserom.gba", 0x0D20A0, 0x0000014 + +gUnk_080D20B4:: @ 080D20B4 + .incbin "baserom.gba", 0x0D20B4, 0x0000014 + +gUnk_080D20C8:: @ 080D20C8 + .incbin "baserom.gba", 0x0D20C8, 0x0000014 + +gUnk_080D20DC:: @ 080D20DC + .incbin "baserom.gba", 0x0D20DC, 0x0000014 + +gUnk_080D20F0:: @ 080D20F0 + .incbin "baserom.gba", 0x0D20F0, 0x0000014 + +gUnk_080D2104:: @ 080D2104 + .incbin "baserom.gba", 0x0D2104, 0x0000014 + +gUnk_080D2118:: @ 080D2118 + .incbin "baserom.gba", 0x0D2118, 0x0000014 + +gUnk_080D212C:: @ 080D212C + .incbin "baserom.gba", 0x0D212C, 0x0000014 + +gUnk_080D2140:: @ 080D2140 + .incbin "baserom.gba", 0x0D2140, 0x0000014 + +gUnk_080D2154:: @ 080D2154 + .incbin "baserom.gba", 0x0D2154, 0x0000014 + +gUnk_080D2168:: @ 080D2168 + .incbin "baserom.gba", 0x0D2168, 0x0000014 + +gUnk_080D217C:: @ 080D217C + .incbin "baserom.gba", 0x0D217C, 0x0000014 + +gUnk_080D2190:: @ 080D2190 + .incbin "baserom.gba", 0x0D2190, 0x0000029 + +gUnk_080D21B9:: @ 080D21B9 + .incbin "baserom.gba", 0x0D21B9, 0x0000029 + +gUnk_080D21E2:: @ 080D21E2 + .incbin "baserom.gba", 0x0D21E2, 0x0000029 + +gUnk_080D220B:: @ 080D220B + .incbin "baserom.gba", 0x0D220B, 0x0000029 + +gUnk_080D2234:: @ 080D2234 + .incbin "baserom.gba", 0x0D2234, 0x0000010 + +gUnk_080D2244:: @ 080D2244 + .incbin "baserom.gba", 0x0D2244, 0x0000010 + +gUnk_080D2254:: @ 080D2254 + .incbin "baserom.gba", 0x0D2254, 0x0000010 + +gUnk_080D2264:: @ 080D2264 + .incbin "baserom.gba", 0x0D2264, 0x0000010 + +gUnk_080D2274:: @ 080D2274 + .incbin "baserom.gba", 0x0D2274, 0x0000064 + +gUnk_080D22D8:: @ 080D22D8 + .incbin "baserom.gba", 0x0D22D8, 0x0000018 + +gUnk_080D22F0:: @ 080D22F0 + .incbin "baserom.gba", 0x0D22F0, 0x0000010 + +gUnk_080D2300:: @ 080D2300 + .incbin "baserom.gba", 0x0D2300, 0x0000048 + +gUnk_080D2348:: @ 080D2348 + .incbin "baserom.gba", 0x0D2348, 0x0000020 + +gUnk_080D2368:: @ 080D2368 + .incbin "baserom.gba", 0x0D2368, 0x0000011 + +gUnk_080D2379:: @ 080D2379 + .incbin "baserom.gba", 0x0D2379, 0x0000011 + +gUnk_080D238A:: @ 080D238A + .incbin "baserom.gba", 0x0D238A, 0x0000011 + +gUnk_080D239B:: @ 080D239B + .incbin "baserom.gba", 0x0D239B, 0x0000011 + +gUnk_080D23AC:: @ 080D23AC + .incbin "baserom.gba", 0x0D23AC, 0x0000011 + +gUnk_080D23BD:: @ 080D23BD + .incbin "baserom.gba", 0x0D23BD, 0x0000011 + +gUnk_080D23CE:: @ 080D23CE + .incbin "baserom.gba", 0x0D23CE, 0x0000011 + +gUnk_080D23DF:: @ 080D23DF + .incbin "baserom.gba", 0x0D23DF, 0x0000011 + +gUnk_080D23F0:: @ 080D23F0 + .incbin "baserom.gba", 0x0D23F0, 0x0000011 + +gUnk_080D2401:: @ 080D2401 + .incbin "baserom.gba", 0x0D2401, 0x0000011 + +gUnk_080D2412:: @ 080D2412 + .incbin "baserom.gba", 0x0D2412, 0x0000011 + +gUnk_080D2423:: @ 080D2423 + .incbin "baserom.gba", 0x0D2423, 0x0000011 + +gUnk_080D2434:: @ 080D2434 + .incbin "baserom.gba", 0x0D2434, 0x0000011 + +gUnk_080D2445:: @ 080D2445 + .incbin "baserom.gba", 0x0D2445, 0x0000011 + +gUnk_080D2456:: @ 080D2456 + .incbin "baserom.gba", 0x0D2456, 0x0000011 + +gUnk_080D2467:: @ 080D2467 + .incbin "baserom.gba", 0x0D2467, 0x0000011 + +gUnk_080D2478:: @ 080D2478 + .incbin "baserom.gba", 0x0D2478, 0x0000011 + +gUnk_080D2489:: @ 080D2489 + .incbin "baserom.gba", 0x0D2489, 0x0000011 + +gUnk_080D249A:: @ 080D249A + .incbin "baserom.gba", 0x0D249A, 0x0000011 + +gUnk_080D24AB:: @ 080D24AB + .incbin "baserom.gba", 0x0D24AB, 0x0000011 + +gUnk_080D24BC:: @ 080D24BC + .incbin "baserom.gba", 0x0D24BC, 0x0000011 + +gUnk_080D24CD:: @ 080D24CD + .incbin "baserom.gba", 0x0D24CD, 0x0000011 + +gUnk_080D24DE:: @ 080D24DE + .incbin "baserom.gba", 0x0D24DE, 0x0000011 + +gUnk_080D24EF:: @ 080D24EF + .incbin "baserom.gba", 0x0D24EF, 0x0000011 + +gUnk_080D2500:: @ 080D2500 + .incbin "baserom.gba", 0x0D2500, 0x0000011 + +gUnk_080D2511:: @ 080D2511 + .incbin "baserom.gba", 0x0D2511, 0x0000011 + +gUnk_080D2522:: @ 080D2522 + .incbin "baserom.gba", 0x0D2522, 0x0000011 + +gUnk_080D2533:: @ 080D2533 + .incbin "baserom.gba", 0x0D2533, 0x0000011 + +gUnk_080D2544:: @ 080D2544 + .incbin "baserom.gba", 0x0D2544, 0x0000011 + +gUnk_080D2555:: @ 080D2555 + .incbin "baserom.gba", 0x0D2555, 0x0000011 + +gUnk_080D2566:: @ 080D2566 + .incbin "baserom.gba", 0x0D2566, 0x0000011 + +gUnk_080D2577:: @ 080D2577 + .incbin "baserom.gba", 0x0D2577, 0x0000011 + +gUnk_080D2588:: @ 080D2588 + .incbin "baserom.gba", 0x0D2588, 0x0000011 + +gUnk_080D2599:: @ 080D2599 + .incbin "baserom.gba", 0x0D2599, 0x0000011 + +gUnk_080D25AA:: @ 080D25AA + .incbin "baserom.gba", 0x0D25AA, 0x0000011 + +gUnk_080D25BB:: @ 080D25BB + .incbin "baserom.gba", 0x0D25BB, 0x0000011 + +gUnk_080D25CC:: @ 080D25CC + .incbin "baserom.gba", 0x0D25CC, 0x0000011 + +gUnk_080D25DD:: @ 080D25DD + .incbin "baserom.gba", 0x0D25DD, 0x0000011 + +gUnk_080D25EE:: @ 080D25EE + .incbin "baserom.gba", 0x0D25EE, 0x0000011 + +gUnk_080D25FF:: @ 080D25FF + .incbin "baserom.gba", 0x0D25FF, 0x0000011 + +gUnk_080D2610:: @ 080D2610 + .incbin "baserom.gba", 0x0D2610, 0x0000011 + +gUnk_080D2621:: @ 080D2621 + .incbin "baserom.gba", 0x0D2621, 0x0000011 + +gUnk_080D2632:: @ 080D2632 + .incbin "baserom.gba", 0x0D2632, 0x0000011 + +gUnk_080D2643:: @ 080D2643 + .incbin "baserom.gba", 0x0D2643, 0x0000011 + +gUnk_080D2654:: @ 080D2654 + .incbin "baserom.gba", 0x0D2654, 0x0000011 + +gUnk_080D2665:: @ 080D2665 + .incbin "baserom.gba", 0x0D2665, 0x0000011 + +gUnk_080D2676:: @ 080D2676 + .incbin "baserom.gba", 0x0D2676, 0x0000011 + +gUnk_080D2687:: @ 080D2687 + .incbin "baserom.gba", 0x0D2687, 0x0000011 + +gUnk_080D2698:: @ 080D2698 + .incbin "baserom.gba", 0x0D2698, 0x0000011 + +gUnk_080D26A9:: @ 080D26A9 + .incbin "baserom.gba", 0x0D26A9, 0x0000011 + +gUnk_080D26BA:: @ 080D26BA + .incbin "baserom.gba", 0x0D26BA, 0x0000011 + +gUnk_080D26CB:: @ 080D26CB + .incbin "baserom.gba", 0x0D26CB, 0x0000011 + +gUnk_080D26DC:: @ 080D26DC + .incbin "baserom.gba", 0x0D26DC, 0x0000011 + +gUnk_080D26ED:: @ 080D26ED + .incbin "baserom.gba", 0x0D26ED, 0x0000011 + +gUnk_080D26FE:: @ 080D26FE + .incbin "baserom.gba", 0x0D26FE, 0x0000011 + +gUnk_080D270F:: @ 080D270F + .incbin "baserom.gba", 0x0D270F, 0x0000011 + +gUnk_080D2720:: @ 080D2720 + .incbin "baserom.gba", 0x0D2720, 0x0000011 + +gUnk_080D2731:: @ 080D2731 + .incbin "baserom.gba", 0x0D2731, 0x0000011 + +gUnk_080D2742:: @ 080D2742 + .incbin "baserom.gba", 0x0D2742, 0x0000011 + +gUnk_080D2753:: @ 080D2753 + .incbin "baserom.gba", 0x0D2753, 0x0000011 + +gUnk_080D2764:: @ 080D2764 + .incbin "baserom.gba", 0x0D2764, 0x0000011 + +gUnk_080D2775:: @ 080D2775 + .incbin "baserom.gba", 0x0D2775, 0x0000011 + +gUnk_080D2786:: @ 080D2786 + .incbin "baserom.gba", 0x0D2786, 0x0000011 + +gUnk_080D2797:: @ 080D2797 + .incbin "baserom.gba", 0x0D2797, 0x0000011 + +gUnk_080D27A8:: @ 080D27A8 + .incbin "baserom.gba", 0x0D27A8, 0x0000104 + +gUnk_080D28AC:: @ 080D28AC + .incbin "baserom.gba", 0x0D28AC, 0x0000020 + +gUnk_080D28CC:: @ 080D28CC + .incbin "baserom.gba", 0x0D28CC, 0x0000010 + +gUnk_080D28DC:: @ 080D28DC + .incbin "baserom.gba", 0x0D28DC, 0x0000008 + +gUnk_080D28E4:: @ 080D28E4 + .incbin "baserom.gba", 0x0D28E4, 0x0000008 + +gUnk_080D28EC:: @ 080D28EC + .incbin "baserom.gba", 0x0D28EC, 0x0000008 + +gUnk_080D28F4:: @ 080D28F4 + .incbin "baserom.gba", 0x0D28F4, 0x0000008 + +gUnk_080D28FC:: @ 080D28FC + .incbin "baserom.gba", 0x0D28FC, 0x0000008 + +gUnk_080D2904:: @ 080D2904 + .incbin "baserom.gba", 0x0D2904, 0x0000008 + +gUnk_080D290C:: @ 080D290C + .incbin "baserom.gba", 0x0D290C, 0x0000008 + +gUnk_080D2914:: @ 080D2914 + .incbin "baserom.gba", 0x0D2914, 0x0000008 + +gUnk_080D291C:: @ 080D291C + .incbin "baserom.gba", 0x0D291C, 0x0000011 + +gUnk_080D292D:: @ 080D292D + .incbin "baserom.gba", 0x0D292D, 0x0000011 + +gUnk_080D293E:: @ 080D293E + .incbin "baserom.gba", 0x0D293E, 0x000000C + +gUnk_080D294A:: @ 080D294A + .incbin "baserom.gba", 0x0D294A, 0x0000005 + +gUnk_080D294F:: @ 080D294F + .incbin "baserom.gba", 0x0D294F, 0x0000011 + +gUnk_080D2960:: @ 080D2960 + .incbin "baserom.gba", 0x0D2960, 0x0000014 + +gUnk_080D2974:: @ 080D2974 + .incbin "baserom.gba", 0x0D2974, 0x0000014 + +gUnk_080D2988:: @ 080D2988 + .incbin "baserom.gba", 0x0D2988, 0x0000008 + +gUnk_080D2990:: @ 080D2990 + .incbin "baserom.gba", 0x0D2990, 0x0000018 + +gUnk_080D29A8:: @ 080D29A8 + .incbin "baserom.gba", 0x0D29A8, 0x0000010 + +gUnk_080D29B8:: @ 080D29B8 + .incbin "baserom.gba", 0x0D29B8, 0x0000008 + +gUnk_080D29C0:: @ 080D29C0 + .incbin "baserom.gba", 0x0D29C0, 0x0000020 + +gUnk_080D29E0:: @ 080D29E0 + .incbin "baserom.gba", 0x0D29E0, 0x00000D0 + +gUnk_080D2AB0:: @ 080D2AB0 + .incbin "baserom.gba", 0x0D2AB0, 0x000000C + +gUnk_080D2ABC:: @ 080D2ABC + .incbin "baserom.gba", 0x0D2ABC, 0x000019C + +gUnk_080D2C58:: @ 080D2C58 + .incbin "baserom.gba", 0x0D2C58, 0x00001CE + +gUnk_080D2E26:: @ 080D2E26 + .incbin "baserom.gba", 0x0D2E26, 0x0000492 + +gUnk_080D32B8:: @ 080D32B8 + .incbin "baserom.gba", 0x0D32B8, 0x0000030 + +gUnk_080D32E8:: @ 080D32E8 + .incbin "baserom.gba", 0x0D32E8, 0x0000020 + +gUnk_080D3308:: @ 080D3308 + .incbin "baserom.gba", 0x0D3308, 0x0000080 + +gUnk_080D3388:: @ 080D3388 + .incbin "baserom.gba", 0x0D3388, 0x0000040 + +gUnk_080D33C8:: @ 080D33C8 + .incbin "baserom.gba", 0x0D33C8, 0x0000090 + +gUnk_080D3458:: @ 080D3458 + .incbin "baserom.gba", 0x0D3458, 0x0000030 + +gUnk_080D3488:: @ 080D3488 + .incbin "baserom.gba", 0x0D3488, 0x0000030 + +gUnk_080D34B8:: @ 080D34B8 + .incbin "baserom.gba", 0x0D34B8, 0x0000020 + +gUnk_080D34D8:: @ 080D34D8 + .incbin "baserom.gba", 0x0D34D8, 0x0000030 + +gUnk_080D3508:: @ 080D3508 + .incbin "baserom.gba", 0x0D3508, 0x0000090 + +gUnk_080D3598:: @ 080D3598 + .incbin "baserom.gba", 0x0D3598, 0x0000040 + +gUnk_080D35D8:: @ 080D35D8 + .incbin "baserom.gba", 0x0D35D8, 0x0000070 + +gUnk_080D3648:: @ 080D3648 + .incbin "baserom.gba", 0x0D3648, 0x0000080 + +gUnk_080D36C8:: @ 080D36C8 + .incbin "baserom.gba", 0x0D36C8, 0x0000020 + +gUnk_080D36E8:: @ 080D36E8 + .incbin "baserom.gba", 0x0D36E8, 0x0000030 + +gUnk_080D3718:: @ 080D3718 + .incbin "baserom.gba", 0x0D3718, 0x0000030 + +gUnk_080D3748:: @ 080D3748 + .incbin "baserom.gba", 0x0D3748, 0x0000020 + +gUnk_080D3768:: @ 080D3768 + .incbin "baserom.gba", 0x0D3768, 0x0000020 + +gUnk_080D3788:: @ 080D3788 + .incbin "baserom.gba", 0x0D3788, 0x0000050 + +gUnk_080D37D8:: @ 080D37D8 + .incbin "baserom.gba", 0x0D37D8, 0x0000020 + +gUnk_080D37F8:: @ 080D37F8 + .incbin "baserom.gba", 0x0D37F8, 0x0000030 + +gUnk_080D3828:: @ 080D3828 + .incbin "baserom.gba", 0x0D3828, 0x0000080 + +gUnk_080D38A8:: @ 080D38A8 + .incbin "baserom.gba", 0x0D38A8, 0x0000030 + +gUnk_080D38D8:: @ 080D38D8 + .incbin "baserom.gba", 0x0D38D8, 0x0000040 + +gUnk_080D3918:: @ 080D3918 + .incbin "baserom.gba", 0x0D3918, 0x0000020 + +gUnk_080D3938:: @ 080D3938 + .incbin "baserom.gba", 0x0D3938, 0x0000017 + +gUnk_080D394F:: @ 080D394F + .incbin "baserom.gba", 0x0D394F, 0x0000029 + +gUnk_080D3978:: @ 080D3978 + .incbin "baserom.gba", 0x0D3978, 0x0000060 + +gUnk_080D39D8:: @ 080D39D8 + .incbin "baserom.gba", 0x0D39D8, 0x0000040 + +gUnk_080D3A18:: @ 080D3A18 + .incbin "baserom.gba", 0x0D3A18, 0x0000050 + +gUnk_080D3A68:: @ 080D3A68 + .incbin "baserom.gba", 0x0D3A68, 0x0000030 + +gUnk_080D3A98:: @ 080D3A98 + .incbin "baserom.gba", 0x0D3A98, 0x0000030 + +gUnk_080D3AC8:: @ 080D3AC8 + .incbin "baserom.gba", 0x0D3AC8, 0x0000020 + +gUnk_080D3AE8:: @ 080D3AE8 + .incbin "baserom.gba", 0x0D3AE8, 0x0000040 + +gUnk_080D3B28:: @ 080D3B28 + .incbin "baserom.gba", 0x0D3B28, 0x0000020 + +gUnk_080D3B48:: @ 080D3B48 + .incbin "baserom.gba", 0x0D3B48, 0x0000040 + +gUnk_080D3B88:: @ 080D3B88 + .incbin "baserom.gba", 0x0D3B88, 0x0000020 + +gUnk_080D3BA8:: @ 080D3BA8 + .incbin "baserom.gba", 0x0D3BA8, 0x0000020 + +gUnk_080D3BC8:: @ 080D3BC8 + .incbin "baserom.gba", 0x0D3BC8, 0x0000020 + +gUnk_080D3BE8:: @ 080D3BE8 + .incbin "baserom.gba", 0x0D3BE8, 0x0000010 + +gUnk_080D3BF8:: @ 080D3BF8 + .incbin "baserom.gba", 0x0D3BF8, 0x000019C + +gUnk_080D3D94:: @ 080D3D94 + .incbin "baserom.gba", 0x0D3D94, 0x00000E0 + +gUnk_080D3E74:: @ 080D3E74 + .incbin "baserom.gba", 0x0D3E74, 0x000001C + +gUnk_080D3E90:: @ 080D3E90 + .incbin "baserom.gba", 0x0D3E90, 0x00000A0 + +gUnk_080D3F30:: @ 080D3F30 + .incbin "baserom.gba", 0x0D3F30, 0x00000A0 + +gUnk_080D3FD0:: @ 080D3FD0 + .incbin "baserom.gba", 0x0D3FD0, 0x00000A0 + +gUnk_080D4070:: @ 080D4070 + .incbin "baserom.gba", 0x0D4070, 0x00000A0 + +gUnk_080D4110:: @ 080D4110 + .incbin "baserom.gba", 0x0D4110, 0x0000010 + +gUnk_080D4120:: @ 080D4120 + .incbin "baserom.gba", 0x0D4120, 0x000000C + +gUnk_080D412C:: @ 080D412C + .incbin "baserom.gba", 0x0D412C, 0x000000C + +gUnk_080D4138:: @ 080D4138 + .incbin "baserom.gba", 0x0D4138, 0x0000008 + +gUnk_080D4140:: @ 080D4140 + .incbin "baserom.gba", 0x0D4140, 0x0000010 + +gUnk_080D4150:: @ 080D4150 + .incbin "baserom.gba", 0x0D4150, 0x0000020 + +gUnk_080D4170:: @ 080D4170 + .incbin "baserom.gba", 0x0D4170, 0x0000040 + +gUnk_080D41B0:: @ 080D41B0 + .incbin "baserom.gba", 0x0D41B0, 0x0000020 + +gUnk_080D41D0:: @ 080D41D0 + .incbin "baserom.gba", 0x0D41D0, 0x0000040 + +gUnk_080D4210:: @ 080D4210 + .incbin "baserom.gba", 0x0D4210, 0x0000040 + +gUnk_080D4250:: @ 080D4250 + .incbin "baserom.gba", 0x0D4250, 0x0000028 + +gUnk_080D4278:: @ 080D4278 + .incbin "baserom.gba", 0x0D4278, 0x0000008 + +gUnk_080D4280:: @ 080D4280 + .incbin "baserom.gba", 0x0D4280, 0x0000004 + +gUnk_080D4284:: @ 080D4284 + .incbin "baserom.gba", 0x0D4284, 0x0000058 + +gUnk_080D42DC:: @ 080D42DC + .incbin "baserom.gba", 0x0D42DC, 0x0000028 + +gUnk_080D4304:: @ 080D4304 + .incbin "baserom.gba", 0x0D4304, 0x0000020 + +gUnk_080D4324:: @ 080D4324 + .incbin "baserom.gba", 0x0D4324, 0x0000020 + +gUnk_080D4344:: @ 080D4344 + .incbin "baserom.gba", 0x0D4344, 0x0000020 + +gUnk_080D4364:: @ 080D4364 + .incbin "baserom.gba", 0x0D4364, 0x0000010 + +gUnk_080D4374:: @ 080D4374 + .incbin "baserom.gba", 0x0D4374, 0x0000010 + +gUnk_080D4384:: @ 080D4384 + .incbin "baserom.gba", 0x0D4384, 0x0000010 + +gUnk_080D4394:: @ 080D4394 + .incbin "baserom.gba", 0x0D4394, 0x0000054 + +gUnk_080D43E8:: @ 080D43E8 + .incbin "baserom.gba", 0x0D43E8, 0x0000010 + +gUnk_080D43F8:: @ 080D43F8 + .incbin "baserom.gba", 0x0D43F8, 0x0000020 + +gUnk_080D4418:: @ 080D4418 + .incbin "baserom.gba", 0x0D4418, 0x0000020 + +gUnk_080D4438:: @ 080D4438 + .incbin "baserom.gba", 0x0D4438, 0x0000020 + +gUnk_080D4458:: @ 080D4458 + .incbin "baserom.gba", 0x0D4458, 0x0000010 + +gUnk_080D4468:: @ 080D4468 + .incbin "baserom.gba", 0x0D4468, 0x0000020 + +gUnk_080D4488:: @ 080D4488 + .incbin "baserom.gba", 0x0D4488, 0x0000020 + +gUnk_080D44A8:: @ 080D44A8 + .incbin "baserom.gba", 0x0D44A8, 0x0000020 + +gUnk_080D44C8:: @ 080D44C8 + .incbin "baserom.gba", 0x0D44C8, 0x0000020 + +gUnk_080D44E8:: @ 080D44E8 + .incbin "baserom.gba", 0x0D44E8, 0x0000014 + +gUnk_080D44FC:: @ 080D44FC + .incbin "baserom.gba", 0x0D44FC, 0x0000004 + +gUnk_080D4500:: @ 080D4500 + .incbin "baserom.gba", 0x0D4500, 0x0000020 + +gUnk_080D4520:: @ 080D4520 + .incbin "baserom.gba", 0x0D4520, 0x0000004 + +gUnk_080D4524:: @ 080D4524 + .incbin "baserom.gba", 0x0D4524, 0x0000084 + +gUnk_080D45A8:: @ 080D45A8 + .incbin "baserom.gba", 0x0D45A8, 0x0000004 + +gUnk_080D45AC:: @ 080D45AC + .incbin "baserom.gba", 0x0D45AC, 0x00000A0 + +gUnk_080D464C:: @ 080D464C + .incbin "baserom.gba", 0x0D464C, 0x0000004 + +gUnk_080D4650:: @ 080D4650 + .incbin "baserom.gba", 0x0D4650, 0x0000094 + +gUnk_080D46E4:: @ 080D46E4 + .incbin "baserom.gba", 0x0D46E4, 0x0000004 + +gUnk_080D46E8:: @ 080D46E8 + .incbin "baserom.gba", 0x0D46E8, 0x0000008 + +gUnk_080D46F0:: @ 080D46F0 + .incbin "baserom.gba", 0x0D46F0, 0x00000E0 + +gUnk_080D47D0:: @ 080D47D0 + .incbin "baserom.gba", 0x0D47D0, 0x0000024 + +gUnk_080D47F4:: @ 080D47F4 + .incbin "baserom.gba", 0x0D47F4, 0x00000CC + +gUnk_080D48C0:: @ 080D48C0 + .incbin "baserom.gba", 0x0D48C0, 0x0000004 + +gUnk_080D48C4:: @ 080D48C4 + .incbin "baserom.gba", 0x0D48C4, 0x0000014 + +gUnk_080D48D8:: @ 080D48D8 + .incbin "baserom.gba", 0x0D48D8, 0x0000018 + +gUnk_080D48F0:: @ 080D48F0 + .incbin "baserom.gba", 0x0D48F0, 0x0000004 + +gUnk_080D48F4:: @ 080D48F4 + .incbin "baserom.gba", 0x0D48F4, 0x00000EC + +gUnk_080D49E0:: @ 080D49E0 + .incbin "baserom.gba", 0x0D49E0, 0x0000008 + +gUnk_080D49E8:: @ 080D49E8 + .incbin "baserom.gba", 0x0D49E8, 0x0000008 + +gUnk_080D49F0:: @ 080D49F0 + .incbin "baserom.gba", 0x0D49F0, 0x0000004 + +gUnk_080D49F4:: @ 080D49F4 + .incbin "baserom.gba", 0x0D49F4, 0x0000004 + +gUnk_080D49F8:: @ 080D49F8 + .incbin "baserom.gba", 0x0D49F8, 0x0000024 + +gUnk_080D4A1C:: @ 080D4A1C + .incbin "baserom.gba", 0x0D4A1C, 0x0000010 + +gUnk_080D4A2C:: @ 080D4A2C + .incbin "baserom.gba", 0x0D4A2C, 0x0000010 + +gUnk_080D4A3C:: @ 080D4A3C + .incbin "baserom.gba", 0x0D4A3C, 0x0000010 + +gUnk_080D4A4C:: @ 080D4A4C + .incbin "baserom.gba", 0x0D4A4C, 0x0000010 + +gUnk_080D4A5C:: @ 080D4A5C + .incbin "baserom.gba", 0x0D4A5C, 0x0000010 + +gUnk_080D4A6C:: @ 080D4A6C + .incbin "baserom.gba", 0x0D4A6C, 0x0000010 + +gUnk_080D4A7C:: @ 080D4A7C + .incbin "baserom.gba", 0x0D4A7C, 0x0000010 + +gUnk_080D4A8C:: @ 080D4A8C + .incbin "baserom.gba", 0x0D4A8C, 0x0000010 + +gUnk_080D4A9C:: @ 080D4A9C + .incbin "baserom.gba", 0x0D4A9C, 0x0000010 + +gUnk_080D4AAC:: @ 080D4AAC + .incbin "baserom.gba", 0x0D4AAC, 0x0000010 + +gUnk_080D4ABC:: @ 080D4ABC + .incbin "baserom.gba", 0x0D4ABC, 0x00000C0 + +gUnk_080D4B7C:: @ 080D4B7C + .incbin "baserom.gba", 0x0D4B7C, 0x00000C0 + +gUnk_080D4C3C:: @ 080D4C3C + .incbin "baserom.gba", 0x0D4C3C, 0x0000040 + +gUnk_080D4C7C:: @ 080D4C7C + .incbin "baserom.gba", 0x0D4C7C, 0x0000040 + +gUnk_080D4CBC:: @ 080D4CBC + .incbin "baserom.gba", 0x0D4CBC, 0x00000C0 + +gUnk_080D4D7C:: @ 080D4D7C + .incbin "baserom.gba", 0x0D4D7C, 0x0000040 + +gUnk_080D4DBC:: @ 080D4DBC + .incbin "baserom.gba", 0x0D4DBC, 0x0000080 + +gUnk_080D4E3C:: @ 080D4E3C + .incbin "baserom.gba", 0x0D4E3C, 0x0000040 + +gUnk_080D4E7C:: @ 080D4E7C + .incbin "baserom.gba", 0x0D4E7C, 0x0000044 + +gUnk_080D4EC0:: @ 080D4EC0 + .incbin "baserom.gba", 0x0D4EC0, 0x0000060 + +gUnk_080D4F20:: @ 080D4F20 + .incbin "baserom.gba", 0x0D4F20, 0x0000010 + +gUnk_080D4F30:: @ 080D4F30 + .incbin "baserom.gba", 0x0D4F30, 0x0000004 + +gUnk_080D4F34:: @ 080D4F34 + .incbin "baserom.gba", 0x0D4F34, 0x0000010 + +gUnk_080D4F44:: @ 080D4F44 + .incbin "baserom.gba", 0x0D4F44, 0x0000004 + +gUnk_080D4F48:: @ 080D4F48 + .incbin "baserom.gba", 0x0D4F48, 0x0000008 + +gUnk_080D4F50:: @ 080D4F50 + .incbin "baserom.gba", 0x0D4F50, 0x0000060 + +gUnk_080D4FB0:: @ 080D4FB0 + .incbin "baserom.gba", 0x0D4FB0, 0x0000028 + +gUnk_080D4FD8:: @ 080D4FD8 + .incbin "baserom.gba", 0x0D4FD8, 0x0000008 + +gUnk_080D4FE0:: @ 080D4FE0 + .incbin "baserom.gba", 0x0D4FE0, 0x0000028 + +gUnk_080D5008:: @ 080D5008 + .incbin "baserom.gba", 0x0D5008, 0x0000008 + +gUnk_080D5010:: @ 080D5010 + .incbin "baserom.gba", 0x0D5010, 0x0000008 + +gUnk_080D5018:: @ 080D5018 + .incbin "baserom.gba", 0x0D5018, 0x0000040 + +gUnk_080D5058:: @ 080D5058 + .incbin "baserom.gba", 0x0D5058, 0x0000004 + +gUnk_080D505C:: @ 080D505C + .incbin "baserom.gba", 0x0D505C, 0x0000008 + +gUnk_080D5064:: @ 080D5064 + .incbin "baserom.gba", 0x0D5064, 0x0000020 + +gUnk_080D5084:: @ 080D5084 + .incbin "baserom.gba", 0x0D5084, 0x0000008 + +gUnk_080D508C:: @ 080D508C + .incbin "baserom.gba", 0x0D508C, 0x0000020 + +gUnk_080D50AC:: @ 080D50AC + .incbin "baserom.gba", 0x0D50AC, 0x0000010 + +gUnk_080D50BC:: @ 080D50BC + .incbin "baserom.gba", 0x0D50BC, 0x000002C + +gUnk_080D50E8:: @ 080D50E8 + .incbin "baserom.gba", 0x0D50E8, 0x0000014 + +gUnk_080D50FC:: @ 080D50FC + .incbin "baserom.gba", 0x0D50FC, 0x0000264 + +gUnk_080D5360:: @ 080D5360 + .incbin "baserom.gba", 0x0D5360, 0x0000040 + +gUnk_080D53A0:: @ 080D53A0 + .incbin "baserom.gba", 0x0D53A0, 0x0000010 + +gUnk_080D53B0:: @ 080D53B0 + .incbin "baserom.gba", 0x0D53B0, 0x0000008 + +gUnk_080D53B8:: @ 080D53B8 + .incbin "baserom.gba", 0x0D53B8, 0x0000020 + +gUnk_080D53D8:: @ 080D53D8 + .incbin "baserom.gba", 0x0D53D8, 0x0000040 + +gUnk_080D5418:: @ 080D5418 + .incbin "baserom.gba", 0x0D5418, 0x0000010 + +gUnk_080D5428:: @ 080D5428 + .incbin "baserom.gba", 0x0D5428, 0x0000008 + +gUnk_080D5430:: @ 080D5430 + .incbin "baserom.gba", 0x0D5430, 0x0000020 + +gUnk_080D5450:: @ 080D5450 + .incbin "baserom.gba", 0x0D5450, 0x0000040 + +gUnk_080D5490:: @ 080D5490 + .incbin "baserom.gba", 0x0D5490, 0x0000010 + +gUnk_080D54A0:: @ 080D54A0 + .incbin "baserom.gba", 0x0D54A0, 0x0000008 + +gUnk_080D54A8:: @ 080D54A8 + .incbin "baserom.gba", 0x0D54A8, 0x0000020 + +gUnk_080D54C8:: @ 080D54C8 + .incbin "baserom.gba", 0x0D54C8, 0x0000040 + +gUnk_080D5508:: @ 080D5508 + .incbin "baserom.gba", 0x0D5508, 0x0000010 + +gUnk_080D5518:: @ 080D5518 + .incbin "baserom.gba", 0x0D5518, 0x0000008 + +gUnk_080D5520:: @ 080D5520 + .incbin "baserom.gba", 0x0D5520, 0x0000020 + +gUnk_080D5540:: @ 080D5540 + .incbin "baserom.gba", 0x0D5540, 0x0000040 + +gUnk_080D5580:: @ 080D5580 + .incbin "baserom.gba", 0x0D5580, 0x0000010 + +gUnk_080D5590:: @ 080D5590 + .incbin "baserom.gba", 0x0D5590, 0x0000008 + +gUnk_080D5598:: @ 080D5598 + .incbin "baserom.gba", 0x0D5598, 0x0000020 + +gUnk_080D55B8:: @ 080D55B8 + .incbin "baserom.gba", 0x0D55B8, 0x0000040 + +gUnk_080D55F8:: @ 080D55F8 + .incbin "baserom.gba", 0x0D55F8, 0x0000010 + +gUnk_080D5608:: @ 080D5608 + .incbin "baserom.gba", 0x0D5608, 0x0000008 + +gUnk_080D5610:: @ 080D5610 + .incbin "baserom.gba", 0x0D5610, 0x0000020 + +gUnk_080D5630:: @ 080D5630 + .incbin "baserom.gba", 0x0D5630, 0x0000040 + +gUnk_080D5670:: @ 080D5670 + .incbin "baserom.gba", 0x0D5670, 0x0000010 + +gUnk_080D5680:: @ 080D5680 + .incbin "baserom.gba", 0x0D5680, 0x0000008 + +gUnk_080D5688:: @ 080D5688 + .incbin "baserom.gba", 0x0D5688, 0x0000020 + +gUnk_080D56A8:: @ 080D56A8 + .incbin "baserom.gba", 0x0D56A8, 0x0000040 + +gUnk_080D56E8:: @ 080D56E8 + .incbin "baserom.gba", 0x0D56E8, 0x0000010 + +gUnk_080D56F8:: @ 080D56F8 + .incbin "baserom.gba", 0x0D56F8, 0x0000008 + +gUnk_080D5700:: @ 080D5700 + .incbin "baserom.gba", 0x0D5700, 0x0000020 + +gUnk_080D5720:: @ 080D5720 + .incbin "baserom.gba", 0x0D5720, 0x0000040 + +gUnk_080D5760:: @ 080D5760 + .incbin "baserom.gba", 0x0D5760, 0x0000010 + +gUnk_080D5770:: @ 080D5770 + .incbin "baserom.gba", 0x0D5770, 0x0000008 + +gUnk_080D5778:: @ 080D5778 + .incbin "baserom.gba", 0x0D5778, 0x0000020 + +gUnk_080D5798:: @ 080D5798 + .incbin "baserom.gba", 0x0D5798, 0x0000040 + +gUnk_080D57D8:: @ 080D57D8 + .incbin "baserom.gba", 0x0D57D8, 0x0000010 + +gUnk_080D57E8:: @ 080D57E8 + .incbin "baserom.gba", 0x0D57E8, 0x0000008 + +gUnk_080D57F0:: @ 080D57F0 + .incbin "baserom.gba", 0x0D57F0, 0x0000020 + +gUnk_080D5810:: @ 080D5810 + .incbin "baserom.gba", 0x0D5810, 0x0000040 + +gUnk_080D5850:: @ 080D5850 + .incbin "baserom.gba", 0x0D5850, 0x0000010 + +gUnk_080D5860:: @ 080D5860 + .incbin "baserom.gba", 0x0D5860, 0x0000008 + +gUnk_080D5868:: @ 080D5868 + .incbin "baserom.gba", 0x0D5868, 0x0000020 + +gUnk_080D5888:: @ 080D5888 + .incbin "baserom.gba", 0x0D5888, 0x0000020 + +gUnk_080D58A8:: @ 080D58A8 + .incbin "baserom.gba", 0x0D58A8, 0x0000060 + +gUnk_080D5908:: @ 080D5908 + .incbin "baserom.gba", 0x0D5908, 0x0000030 + +gUnk_080D5938:: @ 080D5938 + .incbin "baserom.gba", 0x0D5938, 0x0000010 + +gUnk_080D5948:: @ 080D5948 + .incbin "baserom.gba", 0x0D5948, 0x0000020 + +gUnk_080D5968:: @ 080D5968 + .incbin "baserom.gba", 0x0D5968, 0x0000010 + +gUnk_080D5978:: @ 080D5978 + .incbin "baserom.gba", 0x0D5978, 0x00000B0 + +gUnk_080D5A28:: @ 080D5A28 + .incbin "baserom.gba", 0x0D5A28, 0x0000070 + +gUnk_080D5A98:: @ 080D5A98 + .incbin "baserom.gba", 0x0D5A98, 0x0000010 + +gUnk_080D5AA8:: @ 080D5AA8 + .incbin "baserom.gba", 0x0D5AA8, 0x0000020 + +gUnk_080D5AC8:: @ 080D5AC8 + .incbin "baserom.gba", 0x0D5AC8, 0x0000020 + +gUnk_080D5AE8:: @ 080D5AE8 + .incbin "baserom.gba", 0x0D5AE8, 0x0000030 + +gUnk_080D5B18:: @ 080D5B18 + .incbin "baserom.gba", 0x0D5B18, 0x0000010 + +gUnk_080D5B28:: @ 080D5B28 + .incbin "baserom.gba", 0x0D5B28, 0x0000010 + +gUnk_080D5B38:: @ 080D5B38 + .incbin "baserom.gba", 0x0D5B38, 0x0000020 + +gUnk_080D5B58:: @ 080D5B58 + .incbin "baserom.gba", 0x0D5B58, 0x0000010 + +gUnk_080D5B68:: @ 080D5B68 + .incbin "baserom.gba", 0x0D5B68, 0x0000030 + +gUnk_080D5B98:: @ 080D5B98 + .incbin "baserom.gba", 0x0D5B98, 0x0000090 + +gUnk_080D5C28:: @ 080D5C28 + .incbin "baserom.gba", 0x0D5C28, 0x0000010 + +gUnk_080D5C38:: @ 080D5C38 + .incbin "baserom.gba", 0x0D5C38, 0x0000020 + +gUnk_080D5C58:: @ 080D5C58 + .incbin "baserom.gba", 0x0D5C58, 0x0000010 + +gUnk_080D5C68:: @ 080D5C68 + .incbin "baserom.gba", 0x0D5C68, 0x0000090 + +gUnk_080D5CF8:: @ 080D5CF8 + .incbin "baserom.gba", 0x0D5CF8, 0x0000010 + +gUnk_080D5D08:: @ 080D5D08 + .incbin "baserom.gba", 0x0D5D08, 0x0000010 + +gUnk_080D5D18:: @ 080D5D18 + .incbin "baserom.gba", 0x0D5D18, 0x0000020 + +gUnk_080D5D38:: @ 080D5D38 + .incbin "baserom.gba", 0x0D5D38, 0x0000030 + +gUnk_080D5D68:: @ 080D5D68 + .incbin "baserom.gba", 0x0D5D68, 0x0000050 + +gUnk_080D5DB8:: @ 080D5DB8 + .incbin "baserom.gba", 0x0D5DB8, 0x0000010 + +gUnk_080D5DC8:: @ 080D5DC8 + .incbin "baserom.gba", 0x0D5DC8, 0x0000010 + +gUnk_080D5DD8:: @ 080D5DD8 + .incbin "baserom.gba", 0x0D5DD8, 0x0000020 + +gUnk_080D5DF8:: @ 080D5DF8 + .incbin "baserom.gba", 0x0D5DF8, 0x0000020 + +gUnk_080D5E18:: @ 080D5E18 + .incbin "baserom.gba", 0x0D5E18, 0x0000110 + +gUnk_080D5F28:: @ 080D5F28 + .incbin "baserom.gba", 0x0D5F28, 0x0000020 + +gUnk_080D5F48:: @ 080D5F48 + .incbin "baserom.gba", 0x0D5F48, 0x0000028 + +gUnk_080D5F70:: @ 080D5F70 + .incbin "baserom.gba", 0x0D5F70, 0x0000020 + +gUnk_080D5F90:: @ 080D5F90 + .incbin "baserom.gba", 0x0D5F90, 0x0000020 + +gUnk_080D5FB0:: @ 080D5FB0 + .incbin "baserom.gba", 0x0D5FB0, 0x0000060 + +gUnk_080D6010:: @ 080D6010 + .incbin "baserom.gba", 0x0D6010, 0x0000060 + +gUnk_080D6070:: @ 080D6070 + .incbin "baserom.gba", 0x0D6070, 0x0000008 + +gUnk_080D6078:: @ 080D6078 + .incbin "baserom.gba", 0x0D6078, 0x0000020 + +gUnk_080D6098:: @ 080D6098 + .incbin "baserom.gba", 0x0D6098, 0x0000030 + +gUnk_080D60C8:: @ 080D60C8 + .incbin "baserom.gba", 0x0D60C8, 0x0000070 + +gUnk_080D6138:: @ 080D6138 + .incbin "baserom.gba", 0x0D6138, 0x0000060 + +gUnk_080D6198:: @ 080D6198 + .incbin "baserom.gba", 0x0D6198, 0x0000008 + +gUnk_080D61A0:: @ 080D61A0 + .incbin "baserom.gba", 0x0D61A0, 0x0000020 + +gUnk_080D61C0:: @ 080D61C0 + .incbin "baserom.gba", 0x0D61C0, 0x0000050 + +gUnk_080D6210:: @ 080D6210 + .incbin "baserom.gba", 0x0D6210, 0x0000050 + +gUnk_080D6260:: @ 080D6260 + .incbin "baserom.gba", 0x0D6260, 0x0000070 + +gUnk_080D62D0:: @ 080D62D0 + .incbin "baserom.gba", 0x0D62D0, 0x0000010 + +gUnk_080D62E0:: @ 080D62E0 + .incbin "baserom.gba", 0x0D62E0, 0x0000008 + +gUnk_080D62E8:: @ 080D62E8 + .incbin "baserom.gba", 0x0D62E8, 0x0000014 + +gUnk_080D62FC:: @ 080D62FC + .incbin "baserom.gba", 0x0D62FC, 0x0000024 + +gUnk_080D6320:: @ 080D6320 + .incbin "baserom.gba", 0x0D6320, 0x0000020 + +gUnk_080D6340:: @ 080D6340 + .incbin "baserom.gba", 0x0D6340, 0x0000020 + +gUnk_080D6360:: @ 080D6360 + .incbin "baserom.gba", 0x0D6360, 0x0000020 + +gUnk_080D6380:: @ 080D6380 + .incbin "baserom.gba", 0x0D6380, 0x0000020 + +gUnk_080D63A0:: @ 080D63A0 + .incbin "baserom.gba", 0x0D63A0, 0x0000020 + +gUnk_080D63C0:: @ 080D63C0 + .incbin "baserom.gba", 0x0D63C0, 0x0000020 + +gUnk_080D63E0:: @ 080D63E0 + .incbin "baserom.gba", 0x0D63E0, 0x0000020 + +gUnk_080D6400:: @ 080D6400 + .incbin "baserom.gba", 0x0D6400, 0x0000020 + +gUnk_080D6420:: @ 080D6420 + .incbin "baserom.gba", 0x0D6420, 0x0000020 + +gUnk_080D6440:: @ 080D6440 + .incbin "baserom.gba", 0x0D6440, 0x0000020 + +gUnk_080D6460:: @ 080D6460 + .incbin "baserom.gba", 0x0D6460, 0x0000080 + +gUnk_080D64E0:: @ 080D64E0 + .incbin "baserom.gba", 0x0D64E0, 0x0000010 + +gUnk_080D64F0:: @ 080D64F0 + .incbin "baserom.gba", 0x0D64F0, 0x0000008 + +gUnk_080D64F8:: @ 080D64F8 + .incbin "baserom.gba", 0x0D64F8, 0x0000010 + +gUnk_080D6508:: @ 080D6508 + .incbin "baserom.gba", 0x0D6508, 0x0000010 + +gUnk_080D6518:: @ 080D6518 + .incbin "baserom.gba", 0x0D6518, 0x0000020 + +gUnk_080D6538:: @ 080D6538 + .incbin "baserom.gba", 0x0D6538, 0x0000020 + +gUnk_080D6558:: @ 080D6558 + .incbin "baserom.gba", 0x0D6558, 0x0000020 + +gUnk_080D6578:: @ 080D6578 + .incbin "baserom.gba", 0x0D6578, 0x0000020 + +gUnk_080D6598:: @ 080D6598 + .incbin "baserom.gba", 0x0D6598, 0x0000080 + +gUnk_080D6618:: @ 080D6618 + .incbin "baserom.gba", 0x0D6618, 0x0000020 + +gUnk_080D6638:: @ 080D6638 + .incbin "baserom.gba", 0x0D6638, 0x0000020 + +gUnk_080D6658:: @ 080D6658 + .incbin "baserom.gba", 0x0D6658, 0x0000010 + +gUnk_080D6668:: @ 080D6668 + .incbin "baserom.gba", 0x0D6668, 0x0000008 + +gUnk_080D6670:: @ 080D6670 + .incbin "baserom.gba", 0x0D6670, 0x0000014 + +gUnk_080D6684:: @ 080D6684 + .incbin "baserom.gba", 0x0D6684, 0x0000010 + +gUnk_080D6694:: @ 080D6694 + .incbin "baserom.gba", 0x0D6694, 0x0000014 + +gUnk_080D66A8:: @ 080D66A8 + .incbin "baserom.gba", 0x0D66A8, 0x000002C + +gUnk_080D66D4:: @ 080D66D4 + .incbin "baserom.gba", 0x0D66D4, 0x0000020 + +gUnk_080D66F4:: @ 080D66F4 + .incbin "baserom.gba", 0x0D66F4, 0x0000020 + +gUnk_080D6714:: @ 080D6714 + .incbin "baserom.gba", 0x0D6714, 0x0000020 + +gUnk_080D6734:: @ 080D6734 + .incbin "baserom.gba", 0x0D6734, 0x0000080 + +gUnk_080D67B4:: @ 080D67B4 + .incbin "baserom.gba", 0x0D67B4, 0x00000F0 + +gUnk_080D68A4:: @ 080D68A4 + .incbin "baserom.gba", 0x0D68A4, 0x0000010 + +gUnk_080D68B4:: @ 080D68B4 + .incbin "baserom.gba", 0x0D68B4, 0x0000018 + +gUnk_080D68CC:: @ 080D68CC + .incbin "baserom.gba", 0x0D68CC, 0x0000028 + +gUnk_080D68F4:: @ 080D68F4 + .incbin "baserom.gba", 0x0D68F4, 0x0000030 + +gUnk_080D6924:: @ 080D6924 + .incbin "baserom.gba", 0x0D6924, 0x0000030 + +gUnk_080D6954:: @ 080D6954 + .incbin "baserom.gba", 0x0D6954, 0x0000050 + +gUnk_080D69A4:: @ 080D69A4 + .incbin "baserom.gba", 0x0D69A4, 0x0000010 + +gUnk_080D69B4:: @ 080D69B4 + .incbin "baserom.gba", 0x0D69B4, 0x0000008 + +gUnk_080D69BC:: @ 080D69BC + .incbin "baserom.gba", 0x0D69BC, 0x0000020 + +gUnk_080D69DC:: @ 080D69DC + .incbin "baserom.gba", 0x0D69DC, 0x0000010 + +gUnk_080D69EC:: @ 080D69EC + .incbin "baserom.gba", 0x0D69EC, 0x0000040 + +gUnk_080D6A2C:: @ 080D6A2C + .incbin "baserom.gba", 0x0D6A2C, 0x0000010 + +gUnk_080D6A3C:: @ 080D6A3C + .incbin "baserom.gba", 0x0D6A3C, 0x0000008 + +gUnk_080D6A44:: @ 080D6A44 + .incbin "baserom.gba", 0x0D6A44, 0x0000010 + +gUnk_080D6A54:: @ 080D6A54 + .incbin "baserom.gba", 0x0D6A54, 0x0000010 + +gUnk_080D6A64:: @ 080D6A64 + .incbin "baserom.gba", 0x0D6A64, 0x0000010 + +gUnk_080D6A74:: @ 080D6A74 + .incbin "baserom.gba", 0x0D6A74, 0x000000C + +gUnk_080D6A80:: @ 080D6A80 + .incbin "baserom.gba", 0x0D6A80, 0x0000020 + +gUnk_080D6AA0:: @ 080D6AA0 + .incbin "baserom.gba", 0x0D6AA0, 0x0000010 + +gUnk_080D6AB0:: @ 080D6AB0 + .incbin "baserom.gba", 0x0D6AB0, 0x0000030 + +gUnk_080D6AE0:: @ 080D6AE0 + .incbin "baserom.gba", 0x0D6AE0, 0x0000010 + +gUnk_080D6AF0:: @ 080D6AF0 + .incbin "baserom.gba", 0x0D6AF0, 0x0000008 + +gUnk_080D6AF8:: @ 080D6AF8 + .incbin "baserom.gba", 0x0D6AF8, 0x0000010 + +gUnk_080D6B08:: @ 080D6B08 + .incbin "baserom.gba", 0x0D6B08, 0x0000010 + +gUnk_080D6B18:: @ 080D6B18 + .incbin "baserom.gba", 0x0D6B18, 0x0000008 + +gUnk_080D6B20:: @ 080D6B20 + .incbin "baserom.gba", 0x0D6B20, 0x0000020 + +gUnk_080D6B40:: @ 080D6B40 + .incbin "baserom.gba", 0x0D6B40, 0x0000010 + +gUnk_080D6B50:: @ 080D6B50 + .incbin "baserom.gba", 0x0D6B50, 0x0000020 + +gUnk_080D6B70:: @ 080D6B70 + .incbin "baserom.gba", 0x0D6B70, 0x0000010 + +gUnk_080D6B80:: @ 080D6B80 + .incbin "baserom.gba", 0x0D6B80, 0x0000008 + +gUnk_080D6B88:: @ 080D6B88 + .incbin "baserom.gba", 0x0D6B88, 0x0000010 + +gUnk_080D6B98:: @ 080D6B98 + .incbin "baserom.gba", 0x0D6B98, 0x0000010 + +gUnk_080D6BA8:: @ 080D6BA8 + .incbin "baserom.gba", 0x0D6BA8, 0x0000010 + +gUnk_080D6BB8:: @ 080D6BB8 + .incbin "baserom.gba", 0x0D6BB8, 0x000000C + +gUnk_080D6BC4:: @ 080D6BC4 + .incbin "baserom.gba", 0x0D6BC4, 0x0000020 + +gUnk_080D6BE4:: @ 080D6BE4 + .incbin "baserom.gba", 0x0D6BE4, 0x0000010 + +gUnk_080D6BF4:: @ 080D6BF4 + .incbin "baserom.gba", 0x0D6BF4, 0x0000040 + +gUnk_080D6C34:: @ 080D6C34 + .incbin "baserom.gba", 0x0D6C34, 0x0000030 + +gUnk_080D6C64:: @ 080D6C64 + .incbin "baserom.gba", 0x0D6C64, 0x0000030 + +gUnk_080D6C94:: @ 080D6C94 + .incbin "baserom.gba", 0x0D6C94, 0x0000030 + +gUnk_080D6CC4:: @ 080D6CC4 + .incbin "baserom.gba", 0x0D6CC4, 0x0000020 + +gUnk_080D6CE4:: @ 080D6CE4 + .incbin "baserom.gba", 0x0D6CE4, 0x0000020 + +gUnk_080D6D04:: @ 080D6D04 + .incbin "baserom.gba", 0x0D6D04, 0x0000020 + +gUnk_080D6D24:: @ 080D6D24 + .incbin "baserom.gba", 0x0D6D24, 0x0000060 + +gUnk_080D6D84:: @ 080D6D84 + .incbin "baserom.gba", 0x0D6D84, 0x0000010 + +gUnk_080D6D94:: @ 080D6D94 + .incbin "baserom.gba", 0x0D6D94, 0x0000008 + +gUnk_080D6D9C:: @ 080D6D9C + .incbin "baserom.gba", 0x0D6D9C, 0x0000020 + +gUnk_080D6DBC:: @ 080D6DBC + .incbin "baserom.gba", 0x0D6DBC, 0x0000020 + +gUnk_080D6DDC:: @ 080D6DDC + .incbin "baserom.gba", 0x0D6DDC, 0x0000090 + +gUnk_080D6E6C:: @ 080D6E6C + .incbin "baserom.gba", 0x0D6E6C, 0x00000D0 + +gUnk_080D6F3C:: @ 080D6F3C + .incbin "baserom.gba", 0x0D6F3C, 0x0000010 + +gUnk_080D6F4C:: @ 080D6F4C + .incbin "baserom.gba", 0x0D6F4C, 0x0000008 + +gUnk_080D6F54:: @ 080D6F54 + .incbin "baserom.gba", 0x0D6F54, 0x0000024 + +gUnk_080D6F78:: @ 080D6F78 + .incbin "baserom.gba", 0x0D6F78, 0x0000020 + +gUnk_080D6F98:: @ 080D6F98 + .incbin "baserom.gba", 0x0D6F98, 0x0000030 + +gUnk_080D6FC8:: @ 080D6FC8 + .incbin "baserom.gba", 0x0D6FC8, 0x0000010 + +gUnk_080D6FD8:: @ 080D6FD8 + .incbin "baserom.gba", 0x0D6FD8, 0x0000008 + +gUnk_080D6FE0:: @ 080D6FE0 + .incbin "baserom.gba", 0x0D6FE0, 0x0000014 + +gUnk_080D6FF4:: @ 080D6FF4 + .incbin "baserom.gba", 0x0D6FF4, 0x0000024 + +gUnk_080D7018:: @ 080D7018 + .incbin "baserom.gba", 0x0D7018, 0x0000020 + +gUnk_080D7038:: @ 080D7038 + .incbin "baserom.gba", 0x0D7038, 0x0000020 + +gUnk_080D7058:: @ 080D7058 + .incbin "baserom.gba", 0x0D7058, 0x0000090 + +gUnk_080D70E8:: @ 080D70E8 + .incbin "baserom.gba", 0x0D70E8, 0x0000010 + +gUnk_080D70F8:: @ 080D70F8 + .incbin "baserom.gba", 0x0D70F8, 0x0000008 + +gUnk_080D7100:: @ 080D7100 + .incbin "baserom.gba", 0x0D7100, 0x0000020 + +gUnk_080D7120:: @ 080D7120 + .incbin "baserom.gba", 0x0D7120, 0x0000020 + +gUnk_080D7140:: @ 080D7140 + .incbin "baserom.gba", 0x0D7140, 0x0000030 + +gUnk_080D7170:: @ 080D7170 + .incbin "baserom.gba", 0x0D7170, 0x0000030 + +gUnk_080D71A0:: @ 080D71A0 + .incbin "baserom.gba", 0x0D71A0, 0x0000030 + +gUnk_080D71D0:: @ 080D71D0 + .incbin "baserom.gba", 0x0D71D0, 0x0000020 + +gUnk_080D71F0:: @ 080D71F0 + .incbin "baserom.gba", 0x0D71F0, 0x0000030 + +gUnk_080D7220:: @ 080D7220 + .incbin "baserom.gba", 0x0D7220, 0x0000050 + +gUnk_080D7270:: @ 080D7270 + .incbin "baserom.gba", 0x0D7270, 0x0000010 + +gUnk_080D7280:: @ 080D7280 + .incbin "baserom.gba", 0x0D7280, 0x0000008 + +gUnk_080D7288:: @ 080D7288 + .incbin "baserom.gba", 0x0D7288, 0x0000014 + +gUnk_080D729C:: @ 080D729C + .incbin "baserom.gba", 0x0D729C, 0x0000014 + +gUnk_080D72B0:: @ 080D72B0 + .incbin "baserom.gba", 0x0D72B0, 0x0000028 + +gUnk_080D72D8:: @ 080D72D8 + .incbin "baserom.gba", 0x0D72D8, 0x0000030 + +gUnk_080D7308:: @ 080D7308 + .incbin "baserom.gba", 0x0D7308, 0x0000020 + +gUnk_080D7328:: @ 080D7328 + .incbin "baserom.gba", 0x0D7328, 0x0000020 + +gUnk_080D7348:: @ 080D7348 + .incbin "baserom.gba", 0x0D7348, 0x0000020 + +gUnk_080D7368:: @ 080D7368 + .incbin "baserom.gba", 0x0D7368, 0x0000010 + +gUnk_080D7378:: @ 080D7378 + .incbin "baserom.gba", 0x0D7378, 0x0000008 + +gUnk_080D7380:: @ 080D7380 + .incbin "baserom.gba", 0x0D7380, 0x0000020 + +gUnk_080D73A0:: @ 080D73A0 + .incbin "baserom.gba", 0x0D73A0, 0x0000010 + +gUnk_080D73B0:: @ 080D73B0 + .incbin "baserom.gba", 0x0D73B0, 0x0000030 + +gUnk_080D73E0:: @ 080D73E0 + .incbin "baserom.gba", 0x0D73E0, 0x0000030 + +gUnk_080D7410:: @ 080D7410 + .incbin "baserom.gba", 0x0D7410, 0x0000070 + +gUnk_080D7480:: @ 080D7480 + .incbin "baserom.gba", 0x0D7480, 0x0000010 + +gUnk_080D7490:: @ 080D7490 + .incbin "baserom.gba", 0x0D7490, 0x0000008 + +gUnk_080D7498:: @ 080D7498 + .incbin "baserom.gba", 0x0D7498, 0x0000020 + +gUnk_080D74B8:: @ 080D74B8 + .incbin "baserom.gba", 0x0D74B8, 0x0000010 + +gUnk_080D74C8:: @ 080D74C8 + .incbin "baserom.gba", 0x0D74C8, 0x00000C0 + +gUnk_080D7588:: @ 080D7588 + .incbin "baserom.gba", 0x0D7588, 0x0000050 + +gUnk_080D75D8:: @ 080D75D8 + .incbin "baserom.gba", 0x0D75D8, 0x0000040 + +gUnk_080D7618:: @ 080D7618 + .incbin "baserom.gba", 0x0D7618, 0x0000020 + +gUnk_080D7638:: @ 080D7638 + .incbin "baserom.gba", 0x0D7638, 0x0000010 + +gUnk_080D7648:: @ 080D7648 + .incbin "baserom.gba", 0x0D7648, 0x0000008 + +gUnk_080D7650:: @ 080D7650 + .incbin "baserom.gba", 0x0D7650, 0x0000020 + +gUnk_080D7670:: @ 080D7670 + .incbin "baserom.gba", 0x0D7670, 0x0000020 + +gUnk_080D7690:: @ 080D7690 + .incbin "baserom.gba", 0x0D7690, 0x0000040 + +gUnk_080D76D0:: @ 080D76D0 + .incbin "baserom.gba", 0x0D76D0, 0x0000010 + +gUnk_080D76E0:: @ 080D76E0 + .incbin "baserom.gba", 0x0D76E0, 0x0000008 + +gUnk_080D76E8:: @ 080D76E8 + .incbin "baserom.gba", 0x0D76E8, 0x0000024 + +gUnk_080D770C:: @ 080D770C + .incbin "baserom.gba", 0x0D770C, 0x0000020 + +gUnk_080D772C:: @ 080D772C + .incbin "baserom.gba", 0x0D772C, 0x0000010 + +gUnk_080D773C:: @ 080D773C + .incbin "baserom.gba", 0x0D773C, 0x0000008 + +gUnk_080D7744:: @ 080D7744 + .incbin "baserom.gba", 0x0D7744, 0x0000020 + +gUnk_080D7764:: @ 080D7764 + .incbin "baserom.gba", 0x0D7764, 0x0000010 + +gUnk_080D7774:: @ 080D7774 + .incbin "baserom.gba", 0x0D7774, 0x0000010 + +gUnk_080D7784:: @ 080D7784 + .incbin "baserom.gba", 0x0D7784, 0x0000008 + +gUnk_080D778C:: @ 080D778C + .incbin "baserom.gba", 0x0D778C, 0x0000020 + +gUnk_080D77AC:: @ 080D77AC + .incbin "baserom.gba", 0x0D77AC, 0x0000040 + +gUnk_080D77EC:: @ 080D77EC + .incbin "baserom.gba", 0x0D77EC, 0x0000010 + +gUnk_080D77FC:: @ 080D77FC + .incbin "baserom.gba", 0x0D77FC, 0x0000008 + +gUnk_080D7804:: @ 080D7804 + .incbin "baserom.gba", 0x0D7804, 0x0000020 + +gUnk_080D7824:: @ 080D7824 + .incbin "baserom.gba", 0x0D7824, 0x0000040 + +gUnk_080D7864:: @ 080D7864 + .incbin "baserom.gba", 0x0D7864, 0x0000010 + +gUnk_080D7874:: @ 080D7874 + .incbin "baserom.gba", 0x0D7874, 0x0000008 + +gUnk_080D787C:: @ 080D787C + .incbin "baserom.gba", 0x0D787C, 0x0000020 + +gUnk_080D789C:: @ 080D789C + .incbin "baserom.gba", 0x0D789C, 0x0000040 + +gUnk_080D78DC:: @ 080D78DC + .incbin "baserom.gba", 0x0D78DC, 0x0000010 + +gUnk_080D78EC:: @ 080D78EC + .incbin "baserom.gba", 0x0D78EC, 0x0000008 + +gUnk_080D78F4:: @ 080D78F4 + .incbin "baserom.gba", 0x0D78F4, 0x0000020 + +gUnk_080D7914:: @ 080D7914 + .incbin "baserom.gba", 0x0D7914, 0x0000050 + +gUnk_080D7964:: @ 080D7964 + .incbin "baserom.gba", 0x0D7964, 0x0000010 + +gUnk_080D7974:: @ 080D7974 + .incbin "baserom.gba", 0x0D7974, 0x0000008 + +gUnk_080D797C:: @ 080D797C + .incbin "baserom.gba", 0x0D797C, 0x0000020 + +gUnk_080D799C:: @ 080D799C + .incbin "baserom.gba", 0x0D799C, 0x0000040 + +gUnk_080D79DC:: @ 080D79DC + .incbin "baserom.gba", 0x0D79DC, 0x0000010 + +gUnk_080D79EC:: @ 080D79EC + .incbin "baserom.gba", 0x0D79EC, 0x0000008 + +gUnk_080D79F4:: @ 080D79F4 + .incbin "baserom.gba", 0x0D79F4, 0x0000020 + +gUnk_080D7A14:: @ 080D7A14 + .incbin "baserom.gba", 0x0D7A14, 0x0000040 + +gUnk_080D7A54:: @ 080D7A54 + .incbin "baserom.gba", 0x0D7A54, 0x0000010 + +gUnk_080D7A64:: @ 080D7A64 + .incbin "baserom.gba", 0x0D7A64, 0x0000008 + +gUnk_080D7A6C:: @ 080D7A6C + .incbin "baserom.gba", 0x0D7A6C, 0x0000020 + +gUnk_080D7A8C:: @ 080D7A8C + .incbin "baserom.gba", 0x0D7A8C, 0x0000040 + +gUnk_080D7ACC:: @ 080D7ACC + .incbin "baserom.gba", 0x0D7ACC, 0x0000010 + +gUnk_080D7ADC:: @ 080D7ADC + .incbin "baserom.gba", 0x0D7ADC, 0x0000008 + +gUnk_080D7AE4:: @ 080D7AE4 + .incbin "baserom.gba", 0x0D7AE4, 0x0000020 + +gUnk_080D7B04:: @ 080D7B04 + .incbin "baserom.gba", 0x0D7B04, 0x0000050 + +gUnk_080D7B54:: @ 080D7B54 + .incbin "baserom.gba", 0x0D7B54, 0x0000010 + +gUnk_080D7B64:: @ 080D7B64 + .incbin "baserom.gba", 0x0D7B64, 0x0000008 + +gUnk_080D7B6C:: @ 080D7B6C + .incbin "baserom.gba", 0x0D7B6C, 0x0000020 + +gUnk_080D7B8C:: @ 080D7B8C + .incbin "baserom.gba", 0x0D7B8C, 0x0000040 + +gUnk_080D7BCC:: @ 080D7BCC + .incbin "baserom.gba", 0x0D7BCC, 0x0000010 + +gUnk_080D7BDC:: @ 080D7BDC + .incbin "baserom.gba", 0x0D7BDC, 0x0000008 + +gUnk_080D7BE4:: @ 080D7BE4 + .incbin "baserom.gba", 0x0D7BE4, 0x0000020 + +gUnk_080D7C04:: @ 080D7C04 + .incbin "baserom.gba", 0x0D7C04, 0x0000040 + +gUnk_080D7C44:: @ 080D7C44 + .incbin "baserom.gba", 0x0D7C44, 0x0000010 + +gUnk_080D7C54:: @ 080D7C54 + .incbin "baserom.gba", 0x0D7C54, 0x0000008 + +gUnk_080D7C5C:: @ 080D7C5C + .incbin "baserom.gba", 0x0D7C5C, 0x0000020 + +gUnk_080D7C7C:: @ 080D7C7C + .incbin "baserom.gba", 0x0D7C7C, 0x0000020 + +gUnk_080D7C9C:: @ 080D7C9C + .incbin "baserom.gba", 0x0D7C9C, 0x0000040 + +gUnk_080D7CDC:: @ 080D7CDC + .incbin "baserom.gba", 0x0D7CDC, 0x0000008 + +gUnk_080D7CE4:: @ 080D7CE4 + .incbin "baserom.gba", 0x0D7CE4, 0x0000020 + +gUnk_080D7D04:: @ 080D7D04 + .incbin "baserom.gba", 0x0D7D04, 0x0000030 + +gUnk_080D7D34:: @ 080D7D34 + .incbin "baserom.gba", 0x0D7D34, 0x0000040 + +gUnk_080D7D74:: @ 080D7D74 + .incbin "baserom.gba", 0x0D7D74, 0x0000020 + +gUnk_080D7D94:: @ 080D7D94 + .incbin "baserom.gba", 0x0D7D94, 0x0000008 + +gUnk_080D7D9C:: @ 080D7D9C + .incbin "baserom.gba", 0x0D7D9C, 0x0000020 + +gUnk_080D7DBC:: @ 080D7DBC + .incbin "baserom.gba", 0x0D7DBC, 0x0000030 + +gUnk_080D7DEC:: @ 080D7DEC + .incbin "baserom.gba", 0x0D7DEC, 0x0000080 + +gUnk_080D7E6C:: @ 080D7E6C + .incbin "baserom.gba", 0x0D7E6C, 0x0000010 + +gUnk_080D7E7C:: @ 080D7E7C + .incbin "baserom.gba", 0x0D7E7C, 0x0000020 + +gUnk_080D7E9C:: @ 080D7E9C + .incbin "baserom.gba", 0x0D7E9C, 0x0000020 + +gUnk_080D7EBC:: @ 080D7EBC + .incbin "baserom.gba", 0x0D7EBC, 0x0000020 + +gUnk_080D7EDC:: @ 080D7EDC + .incbin "baserom.gba", 0x0D7EDC, 0x0000080 + +gUnk_080D7F5C:: @ 080D7F5C + .incbin "baserom.gba", 0x0D7F5C, 0x0000010 + +gUnk_080D7F6C:: @ 080D7F6C + .incbin "baserom.gba", 0x0D7F6C, 0x0000010 + +gUnk_080D7F7C:: @ 080D7F7C + .incbin "baserom.gba", 0x0D7F7C, 0x0000020 + +gUnk_080D7F9C:: @ 080D7F9C + .incbin "baserom.gba", 0x0D7F9C, 0x0000020 + +gUnk_080D7FBC:: @ 080D7FBC + .incbin "baserom.gba", 0x0D7FBC, 0x0000080 + +gUnk_080D803C:: @ 080D803C + .incbin "baserom.gba", 0x0D803C, 0x0000010 + +gUnk_080D804C:: @ 080D804C + .incbin "baserom.gba", 0x0D804C, 0x0000010 + +gUnk_080D805C:: @ 080D805C + .incbin "baserom.gba", 0x0D805C, 0x0000020 + +gUnk_080D807C:: @ 080D807C + .incbin "baserom.gba", 0x0D807C, 0x0000020 + +gUnk_080D809C:: @ 080D809C + .incbin "baserom.gba", 0x0D809C, 0x0000038 + +gUnk_080D80D4:: @ 080D80D4 + .incbin "baserom.gba", 0x0D80D4, 0x0000048 + +gUnk_080D811C:: @ 080D811C + .incbin "baserom.gba", 0x0D811C, 0x0000010 + +gUnk_080D812C:: @ 080D812C + .incbin "baserom.gba", 0x0D812C, 0x0000010 + +gUnk_080D813C:: @ 080D813C + .incbin "baserom.gba", 0x0D813C, 0x0000020 + +gUnk_080D815C:: @ 080D815C + .incbin "baserom.gba", 0x0D815C, 0x0000030 + +gUnk_080D818C:: @ 080D818C + .incbin "baserom.gba", 0x0D818C, 0x0000080 + +gUnk_080D820C:: @ 080D820C + .incbin "baserom.gba", 0x0D820C, 0x0000010 + +gUnk_080D821C:: @ 080D821C + .incbin "baserom.gba", 0x0D821C, 0x0000010 + +gUnk_080D822C:: @ 080D822C + .incbin "baserom.gba", 0x0D822C, 0x0000020 + +gUnk_080D824C:: @ 080D824C + .incbin "baserom.gba", 0x0D824C, 0x0000030 + +gUnk_080D827C:: @ 080D827C + .incbin "baserom.gba", 0x0D827C, 0x0000050 + +gUnk_080D82CC:: @ 080D82CC + .incbin "baserom.gba", 0x0D82CC, 0x0000080 + +gUnk_080D834C:: @ 080D834C + .incbin "baserom.gba", 0x0D834C, 0x0000010 + +gUnk_080D835C:: @ 080D835C + .incbin "baserom.gba", 0x0D835C, 0x0000018 + +gUnk_080D8374:: @ 080D8374 + .incbin "baserom.gba", 0x0D8374, 0x0000020 + +gUnk_080D8394:: @ 080D8394 + .incbin "baserom.gba", 0x0D8394, 0x0000030 + +gUnk_080D83C4:: @ 080D83C4 + .incbin "baserom.gba", 0x0D83C4, 0x0000080 + +gUnk_080D8444:: @ 080D8444 + .incbin "baserom.gba", 0x0D8444, 0x0000010 + +gUnk_080D8454:: @ 080D8454 + .incbin "baserom.gba", 0x0D8454, 0x0000010 + +gUnk_080D8464:: @ 080D8464 + .incbin "baserom.gba", 0x0D8464, 0x000001C + +gUnk_080D8480:: @ 080D8480 + .incbin "baserom.gba", 0x0D8480, 0x0000004 + +gUnk_080D8484:: @ 080D8484 + .incbin "baserom.gba", 0x0D8484, 0x0000030 + +gUnk_080D84B4:: @ 080D84B4 + .incbin "baserom.gba", 0x0D84B4, 0x0000090 + +gUnk_080D8544:: @ 080D8544 + .incbin "baserom.gba", 0x0D8544, 0x0000010 + +gUnk_080D8554:: @ 080D8554 + .incbin "baserom.gba", 0x0D8554, 0x0000008 + +gUnk_080D855C:: @ 080D855C + .incbin "baserom.gba", 0x0D855C, 0x0000020 + +gUnk_080D857C:: @ 080D857C + .incbin "baserom.gba", 0x0D857C, 0x0000030 + +gUnk_080D85AC:: @ 080D85AC + .incbin "baserom.gba", 0x0D85AC, 0x0000070 + +gUnk_080D861C:: @ 080D861C + .incbin "baserom.gba", 0x0D861C, 0x0000010 + +gUnk_080D862C:: @ 080D862C + .incbin "baserom.gba", 0x0D862C, 0x0000008 + +gUnk_080D8634:: @ 080D8634 + .incbin "baserom.gba", 0x0D8634, 0x0000020 + +gUnk_080D8654:: @ 080D8654 + .incbin "baserom.gba", 0x0D8654, 0x0000010 + +gUnk_080D8664:: @ 080D8664 + .incbin "baserom.gba", 0x0D8664, 0x00000A0 + +gUnk_080D8704:: @ 080D8704 + .incbin "baserom.gba", 0x0D8704, 0x0000010 + +gUnk_080D8714:: @ 080D8714 + .incbin "baserom.gba", 0x0D8714, 0x0000008 + +gUnk_080D871C:: @ 080D871C + .incbin "baserom.gba", 0x0D871C, 0x0000020 + +gUnk_080D873C:: @ 080D873C + .incbin "baserom.gba", 0x0D873C, 0x0000010 + +gUnk_080D874C:: @ 080D874C + .incbin "baserom.gba", 0x0D874C, 0x0000090 + +gUnk_080D87DC:: @ 080D87DC + .incbin "baserom.gba", 0x0D87DC, 0x0000010 + +gUnk_080D87EC:: @ 080D87EC + .incbin "baserom.gba", 0x0D87EC, 0x0000008 + +gUnk_080D87F4:: @ 080D87F4 + .incbin "baserom.gba", 0x0D87F4, 0x0000020 + +gUnk_080D8814:: @ 080D8814 + .incbin "baserom.gba", 0x0D8814, 0x0000010 + +gUnk_080D8824:: @ 080D8824 + .incbin "baserom.gba", 0x0D8824, 0x0000030 + +gUnk_080D8854:: @ 080D8854 + .incbin "baserom.gba", 0x0D8854, 0x0000010 + +gUnk_080D8864:: @ 080D8864 + .incbin "baserom.gba", 0x0D8864, 0x0000008 + +gUnk_080D886C:: @ 080D886C + .incbin "baserom.gba", 0x0D886C, 0x0000020 + +gUnk_080D888C:: @ 080D888C + .incbin "baserom.gba", 0x0D888C, 0x0000010 + +gUnk_080D889C:: @ 080D889C + .incbin "baserom.gba", 0x0D889C, 0x0000030 + +gUnk_080D88CC:: @ 080D88CC + .incbin "baserom.gba", 0x0D88CC, 0x0000010 + +gUnk_080D88DC:: @ 080D88DC + .incbin "baserom.gba", 0x0D88DC, 0x0000008 + +gUnk_080D88E4:: @ 080D88E4 + .incbin "baserom.gba", 0x0D88E4, 0x0000020 + +gUnk_080D8904:: @ 080D8904 + .incbin "baserom.gba", 0x0D8904, 0x0000010 + +gUnk_080D8914:: @ 080D8914 + .incbin "baserom.gba", 0x0D8914, 0x0000030 + +gUnk_080D8944:: @ 080D8944 + .incbin "baserom.gba", 0x0D8944, 0x0000010 + +gUnk_080D8954:: @ 080D8954 + .incbin "baserom.gba", 0x0D8954, 0x0000008 + +gUnk_080D895C:: @ 080D895C + .incbin "baserom.gba", 0x0D895C, 0x0000020 + +gUnk_080D897C:: @ 080D897C + .incbin "baserom.gba", 0x0D897C, 0x0000010 + +gUnk_080D898C:: @ 080D898C + .incbin "baserom.gba", 0x0D898C, 0x0000010 + +gUnk_080D899C:: @ 080D899C + .incbin "baserom.gba", 0x0D899C, 0x0000008 + +gUnk_080D89A4:: @ 080D89A4 + .incbin "baserom.gba", 0x0D89A4, 0x0000020 + +gUnk_080D89C4:: @ 080D89C4 + .incbin "baserom.gba", 0x0D89C4, 0x0000020 + +gUnk_080D89E4:: @ 080D89E4 + .incbin "baserom.gba", 0x0D89E4, 0x0000020 + +gUnk_080D8A04:: @ 080D8A04 + .incbin "baserom.gba", 0x0D8A04, 0x0000030 + +gUnk_080D8A34:: @ 080D8A34 + .incbin "baserom.gba", 0x0D8A34, 0x0000040 + +gUnk_080D8A74:: @ 080D8A74 + .incbin "baserom.gba", 0x0D8A74, 0x0000050 + +gUnk_080D8AC4:: @ 080D8AC4 + .incbin "baserom.gba", 0x0D8AC4, 0x0000060 + +gUnk_080D8B24:: @ 080D8B24 + .incbin "baserom.gba", 0x0D8B24, 0x0000070 + +gUnk_080D8B94:: @ 080D8B94 + .incbin "baserom.gba", 0x0D8B94, 0x0000010 + +gUnk_080D8BA4:: @ 080D8BA4 + .incbin "baserom.gba", 0x0D8BA4, 0x0000018 + +gUnk_080D8BBC:: @ 080D8BBC + .incbin "baserom.gba", 0x0D8BBC, 0x000003E + +gUnk_080D8BFA:: @ 080D8BFA + .incbin "baserom.gba", 0x0D8BFA, 0x000006E + +gUnk_080D8C68:: @ 080D8C68 + .incbin "baserom.gba", 0x0D8C68, 0x000009E + +gUnk_080D8D06:: @ 080D8D06 + .incbin "baserom.gba", 0x0D8D06, 0x000003E + +gUnk_080D8D44:: @ 080D8D44 + .incbin "baserom.gba", 0x0D8D44, 0x000006E + +gUnk_080D8DB2:: @ 080D8DB2 + .incbin "baserom.gba", 0x0D8DB2, 0x000009E + +gUnk_080D8E50:: @ 080D8E50 + .incbin "baserom.gba", 0x0D8E50, 0x0000060 + +gUnk_080D8EB0:: @ 080D8EB0 + .incbin "baserom.gba", 0x0D8EB0, 0x0000020 + +gUnk_080D8ED0:: @ 080D8ED0 + .incbin "baserom.gba", 0x0D8ED0, 0x0000010 + +gUnk_080D8EE0:: @ 080D8EE0 + .incbin "baserom.gba", 0x0D8EE0, 0x00000A0 + +gUnk_080D8F80:: @ 080D8F80 + .incbin "baserom.gba", 0x0D8F80, 0x0000010 + +gUnk_080D8F90:: @ 080D8F90 + .incbin "baserom.gba", 0x0D8F90, 0x0000008 + +gUnk_080D8F98:: @ 080D8F98 + .incbin "baserom.gba", 0x0D8F98, 0x0000020 + +gUnk_080D8FB8:: @ 080D8FB8 + .incbin "baserom.gba", 0x0D8FB8, 0x0000090 + +gUnk_080D9048:: @ 080D9048 + .incbin "baserom.gba", 0x0D9048, 0x0000050 + +gUnk_080D9098:: @ 080D9098 + .incbin "baserom.gba", 0x0D9098, 0x0000030 + +gUnk_080D90C8:: @ 080D90C8 + .incbin "baserom.gba", 0x0D90C8, 0x0000040 + +gUnk_080D9108:: @ 080D9108 + .incbin "baserom.gba", 0x0D9108, 0x0000020 + +gUnk_080D9128:: @ 080D9128 + .incbin "baserom.gba", 0x0D9128, 0x00000C0 + +gUnk_080D91E8:: @ 080D91E8 + .incbin "baserom.gba", 0x0D91E8, 0x0000090 + +gUnk_080D9278:: @ 080D9278 + .incbin "baserom.gba", 0x0D9278, 0x0000018 + +gUnk_080D9290:: @ 080D9290 + .incbin "baserom.gba", 0x0D9290, 0x0000020 + +gUnk_080D92B0:: @ 080D92B0 + .incbin "baserom.gba", 0x0D92B0, 0x0000020 + +gUnk_080D92D0:: @ 080D92D0 + .incbin "baserom.gba", 0x0D92D0, 0x0000010 + +gUnk_080D92E0:: @ 080D92E0 + .incbin "baserom.gba", 0x0D92E0, 0x0000048 + +gUnk_080D9328:: @ 080D9328 + .incbin "baserom.gba", 0x0D9328, 0x0000010 + +gUnk_080D9338:: @ 080D9338 + .incbin "baserom.gba", 0x0D9338, 0x0000008 + +gUnk_080D9340:: @ 080D9340 + .incbin "baserom.gba", 0x0D9340, 0x0000008 + +gUnk_080D9348:: @ 080D9348 + .incbin "baserom.gba", 0x0D9348, 0x0000020 + +gUnk_080D9368:: @ 080D9368 + .incbin "baserom.gba", 0x0D9368, 0x0000020 + +gUnk_080D9388:: @ 080D9388 + .incbin "baserom.gba", 0x0D9388, 0x0000020 + +gUnk_080D93A8:: @ 080D93A8 + .incbin "baserom.gba", 0x0D93A8, 0x0000010 + +gUnk_080D93B8:: @ 080D93B8 + .incbin "baserom.gba", 0x0D93B8, 0x0000008 + +gUnk_080D93C0:: @ 080D93C0 + .incbin "baserom.gba", 0x0D93C0, 0x0000020 + +gUnk_080D93E0:: @ 080D93E0 + .incbin "baserom.gba", 0x0D93E0, 0x0000020 + +gUnk_080D9400:: @ 080D9400 + .incbin "baserom.gba", 0x0D9400, 0x0000010 + +gUnk_080D9410:: @ 080D9410 + .incbin "baserom.gba", 0x0D9410, 0x0000010 + +gUnk_080D9420:: @ 080D9420 + .incbin "baserom.gba", 0x0D9420, 0x0000020 + +gUnk_080D9440:: @ 080D9440 + .incbin "baserom.gba", 0x0D9440, 0x0000070 + +gUnk_080D94B0:: @ 080D94B0 + .incbin "baserom.gba", 0x0D94B0, 0x0000100 + +gUnk_080D95B0:: @ 080D95B0 + .incbin "baserom.gba", 0x0D95B0, 0x0000010 + +gUnk_080D95C0:: @ 080D95C0 + .incbin "baserom.gba", 0x0D95C0, 0x0000010 + +gUnk_080D95D0:: @ 080D95D0 + .incbin "baserom.gba", 0x0D95D0, 0x0000020 + +gUnk_080D95F0:: @ 080D95F0 + .incbin "baserom.gba", 0x0D95F0, 0x0000010 + +gUnk_080D9600:: @ 080D9600 + .incbin "baserom.gba", 0x0D9600, 0x0000110 + +gUnk_080D9710:: @ 080D9710 + .incbin "baserom.gba", 0x0D9710, 0x0000070 + +gUnk_080D9780:: @ 080D9780 + .incbin "baserom.gba", 0x0D9780, 0x0000020 + +gUnk_080D97A0:: @ 080D97A0 + .incbin "baserom.gba", 0x0D97A0, 0x0000020 + +gUnk_080D97C0:: @ 080D97C0 + .incbin "baserom.gba", 0x0D97C0, 0x0000040 + +gUnk_080D9800:: @ 080D9800 + .incbin "baserom.gba", 0x0D9800, 0x0000030 + +gUnk_080D9830:: @ 080D9830 + .incbin "baserom.gba", 0x0D9830, 0x0000100 + +gUnk_080D9930:: @ 080D9930 + .incbin "baserom.gba", 0x0D9930, 0x0000010 + +gUnk_080D9940:: @ 080D9940 + .incbin "baserom.gba", 0x0D9940, 0x0000008 + +gUnk_080D9948:: @ 080D9948 + .incbin "baserom.gba", 0x0D9948, 0x0000020 + +gUnk_080D9968:: @ 080D9968 + .incbin "baserom.gba", 0x0D9968, 0x0000050 + +gUnk_080D99B8:: @ 080D99B8 + .incbin "baserom.gba", 0x0D99B8, 0x00000E0 + +gUnk_080D9A98:: @ 080D9A98 + .incbin "baserom.gba", 0x0D9A98, 0x0000010 + +gUnk_080D9AA8:: @ 080D9AA8 + .incbin "baserom.gba", 0x0D9AA8, 0x0000010 + +gUnk_080D9AB8:: @ 080D9AB8 + .incbin "baserom.gba", 0x0D9AB8, 0x0000020 + +gUnk_080D9AD8:: @ 080D9AD8 + .incbin "baserom.gba", 0x0D9AD8, 0x0000160 + +gUnk_080D9C38:: @ 080D9C38 + .incbin "baserom.gba", 0x0D9C38, 0x0000070 + +gUnk_080D9CA8:: @ 080D9CA8 + .incbin "baserom.gba", 0x0D9CA8, 0x0000020 + +gUnk_080D9CC8:: @ 080D9CC8 + .incbin "baserom.gba", 0x0D9CC8, 0x0000020 + +gUnk_080D9CE8:: @ 080D9CE8 + .incbin "baserom.gba", 0x0D9CE8, 0x0000020 + +gUnk_080D9D08:: @ 080D9D08 + .incbin "baserom.gba", 0x0D9D08, 0x0000030 + +gUnk_080D9D38:: @ 080D9D38 + .incbin "baserom.gba", 0x0D9D38, 0x00000F0 + +gUnk_080D9E28:: @ 080D9E28 + .incbin "baserom.gba", 0x0D9E28, 0x0000030 + +gUnk_080D9E58:: @ 080D9E58 + .incbin "baserom.gba", 0x0D9E58, 0x0000010 + +gUnk_080D9E68:: @ 080D9E68 + .incbin "baserom.gba", 0x0D9E68, 0x0000040 + +gUnk_080D9EA8:: @ 080D9EA8 + .incbin "baserom.gba", 0x0D9EA8, 0x0000014 + +gUnk_080D9EBC:: @ 080D9EBC + .incbin "baserom.gba", 0x0D9EBC, 0x0000014 + +gUnk_080D9ED0:: @ 080D9ED0 + .incbin "baserom.gba", 0x0D9ED0, 0x0000014 + +gUnk_080D9EE4:: @ 080D9EE4 + .incbin "baserom.gba", 0x0D9EE4, 0x0000014 + +gUnk_080D9EF8:: @ 080D9EF8 + .incbin "baserom.gba", 0x0D9EF8, 0x0000014 + +gUnk_080D9F0C:: @ 080D9F0C + .incbin "baserom.gba", 0x0D9F0C, 0x0000014 + +gUnk_080D9F20:: @ 080D9F20 + .incbin "baserom.gba", 0x0D9F20, 0x0000014 + +gUnk_080D9F34:: @ 080D9F34 + .incbin "baserom.gba", 0x0D9F34, 0x0000010 + +gUnk_080D9F44:: @ 080D9F44 + .incbin "baserom.gba", 0x0D9F44, 0x0000014 + +gUnk_080D9F58:: @ 080D9F58 + .incbin "baserom.gba", 0x0D9F58, 0x0000050 + +gUnk_080D9FA8:: @ 080D9FA8 + .incbin "baserom.gba", 0x0D9FA8, 0x0000010 + +gUnk_080D9FB8:: @ 080D9FB8 + .incbin "baserom.gba", 0x0D9FB8, 0x0000010 + +gUnk_080D9FC8:: @ 080D9FC8 + .incbin "baserom.gba", 0x0D9FC8, 0x0000030 + +gUnk_080D9FF8:: @ 080D9FF8 + .incbin "baserom.gba", 0x0D9FF8, 0x0000010 + +gUnk_080DA008:: @ 080DA008 + .incbin "baserom.gba", 0x0DA008, 0x0000020 + +gUnk_080DA028:: @ 080DA028 + .incbin "baserom.gba", 0x0DA028, 0x0000010 + +gUnk_080DA038:: @ 080DA038 + .incbin "baserom.gba", 0x0DA038, 0x0000010 + +gUnk_080DA048:: @ 080DA048 + .incbin "baserom.gba", 0x0DA048, 0x0000020 + +gUnk_080DA068:: @ 080DA068 + .incbin "baserom.gba", 0x0DA068, 0x0000018 + +gUnk_080DA080:: @ 080DA080 + .incbin "baserom.gba", 0x0DA080, 0x0000020 + +gUnk_080DA0A0:: @ 080DA0A0 + .incbin "baserom.gba", 0x0DA0A0, 0x0000010 + +gUnk_080DA0B0:: @ 080DA0B0 + .incbin "baserom.gba", 0x0DA0B0, 0x0000010 + +gUnk_080DA0C0:: @ 080DA0C0 + .incbin "baserom.gba", 0x0DA0C0, 0x0000010 + +gUnk_080DA0D0:: @ 080DA0D0 + .incbin "baserom.gba", 0x0DA0D0, 0x0000010 + +gUnk_080DA0E0:: @ 080DA0E0 + .incbin "baserom.gba", 0x0DA0E0, 0x0000020 + +gUnk_080DA100:: @ 080DA100 + .incbin "baserom.gba", 0x0DA100, 0x0000050 + +gUnk_080DA150:: @ 080DA150 + .incbin "baserom.gba", 0x0DA150, 0x0000010 + +gUnk_080DA160:: @ 080DA160 + .incbin "baserom.gba", 0x0DA160, 0x0000030 + +gUnk_080DA190:: @ 080DA190 + .incbin "baserom.gba", 0x0DA190, 0x0000008 + +gUnk_080DA198:: @ 080DA198 + .incbin "baserom.gba", 0x0DA198, 0x0000020 + +gUnk_080DA1B8:: @ 080DA1B8 + .incbin "baserom.gba", 0x0DA1B8, 0x0000020 + +gUnk_080DA1D8:: @ 080DA1D8 + .incbin "baserom.gba", 0x0DA1D8, 0x0000010 + +gUnk_080DA1E8:: @ 080DA1E8 + .incbin "baserom.gba", 0x0DA1E8, 0x0000008 + +gUnk_080DA1F0:: @ 080DA1F0 + .incbin "baserom.gba", 0x0DA1F0, 0x0000020 + +gUnk_080DA210:: @ 080DA210 + .incbin "baserom.gba", 0x0DA210, 0x0000020 + +gUnk_080DA230:: @ 080DA230 + .incbin "baserom.gba", 0x0DA230, 0x0000070 + +gUnk_080DA2A0:: @ 080DA2A0 + .incbin "baserom.gba", 0x0DA2A0, 0x0000010 + +gUnk_080DA2B0:: @ 080DA2B0 + .incbin "baserom.gba", 0x0DA2B0, 0x0000010 + +gUnk_080DA2C0:: @ 080DA2C0 + .incbin "baserom.gba", 0x0DA2C0, 0x0000018 + +gUnk_080DA2D8:: @ 080DA2D8 + .incbin "baserom.gba", 0x0DA2D8, 0x0000020 + +gUnk_080DA2F8:: @ 080DA2F8 + .incbin "baserom.gba", 0x0DA2F8, 0x0000024 + +gUnk_080DA31C:: @ 080DA31C + .incbin "baserom.gba", 0x0DA31C, 0x0000010 + +gUnk_080DA32C:: @ 080DA32C + .incbin "baserom.gba", 0x0DA32C, 0x0000010 + +gUnk_080DA33C:: @ 080DA33C + .incbin "baserom.gba", 0x0DA33C, 0x0000040 + +gUnk_080DA37C:: @ 080DA37C + .incbin "baserom.gba", 0x0DA37C, 0x0000008 + +gUnk_080DA384:: @ 080DA384 + .incbin "baserom.gba", 0x0DA384, 0x0000020 + +gUnk_080DA3A4:: @ 080DA3A4 + .incbin "baserom.gba", 0x0DA3A4, 0x0000030 + +gUnk_080DA3D4:: @ 080DA3D4 + .incbin "baserom.gba", 0x0DA3D4, 0x0000010 + +gUnk_080DA3E4:: @ 080DA3E4 + .incbin "baserom.gba", 0x0DA3E4, 0x0000008 + +gUnk_080DA3EC:: @ 080DA3EC + .incbin "baserom.gba", 0x0DA3EC, 0x0000020 + +gUnk_080DA40C:: @ 080DA40C + .incbin "baserom.gba", 0x0DA40C, 0x0000030 + +gUnk_080DA43C:: @ 080DA43C + .incbin "baserom.gba", 0x0DA43C, 0x0000010 + +gUnk_080DA44C:: @ 080DA44C + .incbin "baserom.gba", 0x0DA44C, 0x0000008 + +gUnk_080DA454:: @ 080DA454 + .incbin "baserom.gba", 0x0DA454, 0x0000020 + +gUnk_080DA474:: @ 080DA474 + .incbin "baserom.gba", 0x0DA474, 0x0000030 + +gUnk_080DA4A4:: @ 080DA4A4 + .incbin "baserom.gba", 0x0DA4A4, 0x0000010 + +gUnk_080DA4B4:: @ 080DA4B4 + .incbin "baserom.gba", 0x0DA4B4, 0x0000008 + +gUnk_080DA4BC:: @ 080DA4BC + .incbin "baserom.gba", 0x0DA4BC, 0x0000020 + +gUnk_080DA4DC:: @ 080DA4DC + .incbin "baserom.gba", 0x0DA4DC, 0x0000020 + +gUnk_080DA4FC:: @ 080DA4FC + .incbin "baserom.gba", 0x0DA4FC, 0x0000010 + +gUnk_080DA50C:: @ 080DA50C + .incbin "baserom.gba", 0x0DA50C, 0x0000008 + +gUnk_080DA514:: @ 080DA514 + .incbin "baserom.gba", 0x0DA514, 0x0000020 + +gUnk_080DA534:: @ 080DA534 + .incbin "baserom.gba", 0x0DA534, 0x0000050 + +gUnk_080DA584:: @ 080DA584 + .incbin "baserom.gba", 0x0DA584, 0x0000010 + +gUnk_080DA594:: @ 080DA594 + .incbin "baserom.gba", 0x0DA594, 0x0000010 + +gUnk_080DA5A4:: @ 080DA5A4 + .incbin "baserom.gba", 0x0DA5A4, 0x0000020 + +gUnk_080DA5C4:: @ 080DA5C4 + .incbin "baserom.gba", 0x0DA5C4, 0x0000030 + +gUnk_080DA5F4:: @ 080DA5F4 + .incbin "baserom.gba", 0x0DA5F4, 0x0000030 + +gUnk_080DA624:: @ 080DA624 + .incbin "baserom.gba", 0x0DA624, 0x0000010 + +gUnk_080DA634:: @ 080DA634 + .incbin "baserom.gba", 0x0DA634, 0x0000008 + +gUnk_080DA63C:: @ 080DA63C + .incbin "baserom.gba", 0x0DA63C, 0x0000020 + +gUnk_080DA65C:: @ 080DA65C + .incbin "baserom.gba", 0x0DA65C, 0x0000010 + +gUnk_080DA66C:: @ 080DA66C + .incbin "baserom.gba", 0x0DA66C, 0x0000040 + +gUnk_080DA6AC:: @ 080DA6AC + .incbin "baserom.gba", 0x0DA6AC, 0x0000010 + +gUnk_080DA6BC:: @ 080DA6BC + .incbin "baserom.gba", 0x0DA6BC, 0x0000008 + +gUnk_080DA6C4:: @ 080DA6C4 + .incbin "baserom.gba", 0x0DA6C4, 0x0000010 + +gUnk_080DA6D4:: @ 080DA6D4 + .incbin "baserom.gba", 0x0DA6D4, 0x0000014 + +gUnk_080DA6E8:: @ 080DA6E8 + .incbin "baserom.gba", 0x0DA6E8, 0x0000028 + +gUnk_080DA710:: @ 080DA710 + .incbin "baserom.gba", 0x0DA710, 0x0000020 + +gUnk_080DA730:: @ 080DA730 + .incbin "baserom.gba", 0x0DA730, 0x0000030 + +gUnk_080DA760:: @ 080DA760 + .incbin "baserom.gba", 0x0DA760, 0x0000010 + +gUnk_080DA770:: @ 080DA770 + .incbin "baserom.gba", 0x0DA770, 0x0000008 + +gUnk_080DA778:: @ 080DA778 + .incbin "baserom.gba", 0x0DA778, 0x0000018 + +gUnk_080DA790:: @ 080DA790 + .incbin "baserom.gba", 0x0DA790, 0x0000014 + +gUnk_080DA7A4:: @ 080DA7A4 + .incbin "baserom.gba", 0x0DA7A4, 0x0000014 + +gUnk_080DA7B8:: @ 080DA7B8 + .incbin "baserom.gba", 0x0DA7B8, 0x000002C + +gUnk_080DA7E4:: @ 080DA7E4 + .incbin "baserom.gba", 0x0DA7E4, 0x0000020 + +gUnk_080DA804:: @ 080DA804 + .incbin "baserom.gba", 0x0DA804, 0x0000020 + +gUnk_080DA824:: @ 080DA824 + .incbin "baserom.gba", 0x0DA824, 0x0000010 + +gUnk_080DA834:: @ 080DA834 + .incbin "baserom.gba", 0x0DA834, 0x0000008 + +gUnk_080DA83C:: @ 080DA83C + .incbin "baserom.gba", 0x0DA83C, 0x0000020 + +gUnk_080DA85C:: @ 080DA85C + .incbin "baserom.gba", 0x0DA85C, 0x0000020 + +gUnk_080DA87C:: @ 080DA87C + .incbin "baserom.gba", 0x0DA87C, 0x0000020 + +gUnk_080DA89C:: @ 080DA89C + .incbin "baserom.gba", 0x0DA89C, 0x0000010 + +gUnk_080DA8AC:: @ 080DA8AC + .incbin "baserom.gba", 0x0DA8AC, 0x0000008 + +gUnk_080DA8B4:: @ 080DA8B4 + .incbin "baserom.gba", 0x0DA8B4, 0x0000020 + +gUnk_080DA8D4:: @ 080DA8D4 + .incbin "baserom.gba", 0x0DA8D4, 0x0000020 + +gUnk_080DA8F4:: @ 080DA8F4 + .incbin "baserom.gba", 0x0DA8F4, 0x0000020 + +gUnk_080DA914:: @ 080DA914 + .incbin "baserom.gba", 0x0DA914, 0x0000010 + +gUnk_080DA924:: @ 080DA924 + .incbin "baserom.gba", 0x0DA924, 0x0000008 + +gUnk_080DA92C:: @ 080DA92C + .incbin "baserom.gba", 0x0DA92C, 0x0000020 + +gUnk_080DA94C:: @ 080DA94C + .incbin "baserom.gba", 0x0DA94C, 0x0000020 + +gUnk_080DA96C:: @ 080DA96C + .incbin "baserom.gba", 0x0DA96C, 0x0000020 + +gUnk_080DA98C:: @ 080DA98C + .incbin "baserom.gba", 0x0DA98C, 0x0000010 + +gUnk_080DA99C:: @ 080DA99C + .incbin "baserom.gba", 0x0DA99C, 0x0000008 + +gUnk_080DA9A4:: @ 080DA9A4 + .incbin "baserom.gba", 0x0DA9A4, 0x0000020 + +gUnk_080DA9C4:: @ 080DA9C4 + .incbin "baserom.gba", 0x0DA9C4, 0x0000020 + +gUnk_080DA9E4:: @ 080DA9E4 + .incbin "baserom.gba", 0x0DA9E4, 0x0000020 + +gUnk_080DAA04:: @ 080DAA04 + .incbin "baserom.gba", 0x0DAA04, 0x0000010 + +gUnk_080DAA14:: @ 080DAA14 + .incbin "baserom.gba", 0x0DAA14, 0x0000008 + +gUnk_080DAA1C:: @ 080DAA1C + .incbin "baserom.gba", 0x0DAA1C, 0x0000020 + +gUnk_080DAA3C:: @ 080DAA3C + .incbin "baserom.gba", 0x0DAA3C, 0x0000020 + +gUnk_080DAA5C:: @ 080DAA5C + .incbin "baserom.gba", 0x0DAA5C, 0x0000040 + +gUnk_080DAA9C:: @ 080DAA9C + .incbin "baserom.gba", 0x0DAA9C, 0x0000010 + +gUnk_080DAAAC:: @ 080DAAAC + .incbin "baserom.gba", 0x0DAAAC, 0x0000008 + +gUnk_080DAAB4:: @ 080DAAB4 + .incbin "baserom.gba", 0x0DAAB4, 0x0000020 + +gUnk_080DAAD4:: @ 080DAAD4 + .incbin "baserom.gba", 0x0DAAD4, 0x0000070 + +gUnk_080DAB44:: @ 080DAB44 + .incbin "baserom.gba", 0x0DAB44, 0x0000020 + +gUnk_080DAB64:: @ 080DAB64 + .incbin "baserom.gba", 0x0DAB64, 0x0000020 + +gUnk_080DAB84:: @ 080DAB84 + .incbin "baserom.gba", 0x0DAB84, 0x0000040 + +gUnk_080DABC4:: @ 080DABC4 + .incbin "baserom.gba", 0x0DABC4, 0x0000040 + +gUnk_080DAC04:: @ 080DAC04 + .incbin "baserom.gba", 0x0DAC04, 0x0000050 + +gUnk_080DAC54:: @ 080DAC54 + .incbin "baserom.gba", 0x0DAC54, 0x0000040 + +gUnk_080DAC94:: @ 080DAC94 + .incbin "baserom.gba", 0x0DAC94, 0x0000040 + +gUnk_080DACD4:: @ 080DACD4 + .incbin "baserom.gba", 0x0DACD4, 0x0000050 + +gUnk_080DAD24:: @ 080DAD24 + .incbin "baserom.gba", 0x0DAD24, 0x0000040 + +gUnk_080DAD64:: @ 080DAD64 + .incbin "baserom.gba", 0x0DAD64, 0x0000040 + +gUnk_080DADA4:: @ 080DADA4 + .incbin "baserom.gba", 0x0DADA4, 0x0000050 + +gUnk_080DADF4:: @ 080DADF4 + .incbin "baserom.gba", 0x0DADF4, 0x00000A0 + +gUnk_080DAE94:: @ 080DAE94 + .incbin "baserom.gba", 0x0DAE94, 0x0000010 + +gUnk_080DAEA4:: @ 080DAEA4 + .incbin "baserom.gba", 0x0DAEA4, 0x0000008 + +gUnk_080DAEAC:: @ 080DAEAC + .incbin "baserom.gba", 0x0DAEAC, 0x0000008 + +gUnk_080DAEB4:: @ 080DAEB4 + .incbin "baserom.gba", 0x0DAEB4, 0x0000024 + +gUnk_080DAED8:: @ 080DAED8 + .incbin "baserom.gba", 0x0DAED8, 0x0000010 + +gUnk_080DAEE8:: @ 080DAEE8 + .incbin "baserom.gba", 0x0DAEE8, 0x0000020 + +gUnk_080DAF08:: @ 080DAF08 + .incbin "baserom.gba", 0x0DAF08, 0x0000030 + +gUnk_080DAF38:: @ 080DAF38 + .incbin "baserom.gba", 0x0DAF38, 0x0000010 + +gUnk_080DAF48:: @ 080DAF48 + .incbin "baserom.gba", 0x0DAF48, 0x0000008 + +gUnk_080DAF50:: @ 080DAF50 + .incbin "baserom.gba", 0x0DAF50, 0x0000020 + +gUnk_080DAF70:: @ 080DAF70 + .incbin "baserom.gba", 0x0DAF70, 0x0000010 + +gUnk_080DAF80:: @ 080DAF80 + .incbin "baserom.gba", 0x0DAF80, 0x0000020 + +gUnk_080DAFA0:: @ 080DAFA0 + .incbin "baserom.gba", 0x0DAFA0, 0x0000030 + +gUnk_080DAFD0:: @ 080DAFD0 + .incbin "baserom.gba", 0x0DAFD0, 0x0000010 + +gUnk_080DAFE0:: @ 080DAFE0 + .incbin "baserom.gba", 0x0DAFE0, 0x0000008 + +gUnk_080DAFE8:: @ 080DAFE8 + .incbin "baserom.gba", 0x0DAFE8, 0x0000020 + +gUnk_080DB008:: @ 080DB008 + .incbin "baserom.gba", 0x0DB008, 0x0000010 + +gUnk_080DB018:: @ 080DB018 + .incbin "baserom.gba", 0x0DB018, 0x0000020 + +gUnk_080DB038:: @ 080DB038 + .incbin "baserom.gba", 0x0DB038, 0x0000050 + +gUnk_080DB088:: @ 080DB088 + .incbin "baserom.gba", 0x0DB088, 0x0000010 + +gUnk_080DB098:: @ 080DB098 + .incbin "baserom.gba", 0x0DB098, 0x0000008 + +gUnk_080DB0A0:: @ 080DB0A0 + .incbin "baserom.gba", 0x0DB0A0, 0x0000020 + +gUnk_080DB0C0:: @ 080DB0C0 + .incbin "baserom.gba", 0x0DB0C0, 0x0000020 + +gUnk_080DB0E0:: @ 080DB0E0 + .incbin "baserom.gba", 0x0DB0E0, 0x0000020 + +gUnk_080DB100:: @ 080DB100 + .incbin "baserom.gba", 0x0DB100, 0x0000010 + +gUnk_080DB110:: @ 080DB110 + .incbin "baserom.gba", 0x0DB110, 0x0000008 + +gUnk_080DB118:: @ 080DB118 + .incbin "baserom.gba", 0x0DB118, 0x0000020 + +gUnk_080DB138:: @ 080DB138 + .incbin "baserom.gba", 0x0DB138, 0x0000020 + +gUnk_080DB158:: @ 080DB158 + .incbin "baserom.gba", 0x0DB158, 0x0000020 + +gUnk_080DB178:: @ 080DB178 + .incbin "baserom.gba", 0x0DB178, 0x0000010 + +gUnk_080DB188:: @ 080DB188 + .incbin "baserom.gba", 0x0DB188, 0x0000008 + +gUnk_080DB190:: @ 080DB190 + .incbin "baserom.gba", 0x0DB190, 0x0000020 + +gUnk_080DB1B0:: @ 080DB1B0 + .incbin "baserom.gba", 0x0DB1B0, 0x0000020 + +gUnk_080DB1D0:: @ 080DB1D0 + .incbin "baserom.gba", 0x0DB1D0, 0x0000020 + +gUnk_080DB1F0:: @ 080DB1F0 + .incbin "baserom.gba", 0x0DB1F0, 0x0000010 + +gUnk_080DB200:: @ 080DB200 + .incbin "baserom.gba", 0x0DB200, 0x0000008 + +gUnk_080DB208:: @ 080DB208 + .incbin "baserom.gba", 0x0DB208, 0x0000020 + +gUnk_080DB228:: @ 080DB228 + .incbin "baserom.gba", 0x0DB228, 0x0000010 + +gUnk_080DB238:: @ 080DB238 + .incbin "baserom.gba", 0x0DB238, 0x0000020 + +gUnk_080DB258:: @ 080DB258 + .incbin "baserom.gba", 0x0DB258, 0x0000020 + +gUnk_080DB278:: @ 080DB278 + .incbin "baserom.gba", 0x0DB278, 0x0000010 + +gUnk_080DB288:: @ 080DB288 + .incbin "baserom.gba", 0x0DB288, 0x0000008 + +gUnk_080DB290:: @ 080DB290 + .incbin "baserom.gba", 0x0DB290, 0x0000020 + +gUnk_080DB2B0:: @ 080DB2B0 + .incbin "baserom.gba", 0x0DB2B0, 0x0000020 + +gUnk_080DB2D0:: @ 080DB2D0 + .incbin "baserom.gba", 0x0DB2D0, 0x0000020 + +gUnk_080DB2F0:: @ 080DB2F0 + .incbin "baserom.gba", 0x0DB2F0, 0x0000010 + +gUnk_080DB300:: @ 080DB300 + .incbin "baserom.gba", 0x0DB300, 0x0000008 + +gUnk_080DB308:: @ 080DB308 + .incbin "baserom.gba", 0x0DB308, 0x0000020 + +gUnk_080DB328:: @ 080DB328 + .incbin "baserom.gba", 0x0DB328, 0x0000020 + +gUnk_080DB348:: @ 080DB348 + .incbin "baserom.gba", 0x0DB348, 0x0000020 + +gUnk_080DB368:: @ 080DB368 + .incbin "baserom.gba", 0x0DB368, 0x0000010 + +gUnk_080DB378:: @ 080DB378 + .incbin "baserom.gba", 0x0DB378, 0x0000008 + +gUnk_080DB380:: @ 080DB380 + .incbin "baserom.gba", 0x0DB380, 0x0000020 + +gUnk_080DB3A0:: @ 080DB3A0 + .incbin "baserom.gba", 0x0DB3A0, 0x0000020 + +gUnk_080DB3C0:: @ 080DB3C0 + .incbin "baserom.gba", 0x0DB3C0, 0x0000020 + +gUnk_080DB3E0:: @ 080DB3E0 + .incbin "baserom.gba", 0x0DB3E0, 0x0000010 + +gUnk_080DB3F0:: @ 080DB3F0 + .incbin "baserom.gba", 0x0DB3F0, 0x0000008 + +gUnk_080DB3F8:: @ 080DB3F8 + .incbin "baserom.gba", 0x0DB3F8, 0x0000020 + +gUnk_080DB418:: @ 080DB418 + .incbin "baserom.gba", 0x0DB418, 0x0000020 + +gUnk_080DB438:: @ 080DB438 + .incbin "baserom.gba", 0x0DB438, 0x0000020 + +gUnk_080DB458:: @ 080DB458 + .incbin "baserom.gba", 0x0DB458, 0x0000010 + +gUnk_080DB468:: @ 080DB468 + .incbin "baserom.gba", 0x0DB468, 0x0000008 + +gUnk_080DB470:: @ 080DB470 + .incbin "baserom.gba", 0x0DB470, 0x0000020 + +gUnk_080DB490:: @ 080DB490 + .incbin "baserom.gba", 0x0DB490, 0x0000010 + +gUnk_080DB4A0:: @ 080DB4A0 + .incbin "baserom.gba", 0x0DB4A0, 0x0000030 + +gUnk_080DB4D0:: @ 080DB4D0 + .incbin "baserom.gba", 0x0DB4D0, 0x0000030 + +gUnk_080DB500:: @ 080DB500 + .incbin "baserom.gba", 0x0DB500, 0x0000030 + +gUnk_080DB530:: @ 080DB530 + .incbin "baserom.gba", 0x0DB530, 0x0000010 + +gUnk_080DB540:: @ 080DB540 + .incbin "baserom.gba", 0x0DB540, 0x0000008 + +gUnk_080DB548:: @ 080DB548 + .incbin "baserom.gba", 0x0DB548, 0x0000020 + +gUnk_080DB568:: @ 080DB568 + .incbin "baserom.gba", 0x0DB568, 0x0000020 + +gUnk_080DB588:: @ 080DB588 + .incbin "baserom.gba", 0x0DB588, 0x0000020 + +gUnk_080DB5A8:: @ 080DB5A8 + .incbin "baserom.gba", 0x0DB5A8, 0x0000010 + +gUnk_080DB5B8:: @ 080DB5B8 + .incbin "baserom.gba", 0x0DB5B8, 0x0000008 + +gUnk_080DB5C0:: @ 080DB5C0 + .incbin "baserom.gba", 0x0DB5C0, 0x0000020 + +gUnk_080DB5E0:: @ 080DB5E0 + .incbin "baserom.gba", 0x0DB5E0, 0x0000020 + +gUnk_080DB600:: @ 080DB600 + .incbin "baserom.gba", 0x0DB600, 0x0000030 + +gUnk_080DB630:: @ 080DB630 + .incbin "baserom.gba", 0x0DB630, 0x0000010 + +gUnk_080DB640:: @ 080DB640 + .incbin "baserom.gba", 0x0DB640, 0x0000008 + +gUnk_080DB648:: @ 080DB648 + .incbin "baserom.gba", 0x0DB648, 0x0000020 + +gUnk_080DB668:: @ 080DB668 + .incbin "baserom.gba", 0x0DB668, 0x0000020 + +gUnk_080DB688:: @ 080DB688 + .incbin "baserom.gba", 0x0DB688, 0x0000030 + +gUnk_080DB6B8:: @ 080DB6B8 + .incbin "baserom.gba", 0x0DB6B8, 0x0000010 + +gUnk_080DB6C8:: @ 080DB6C8 + .incbin "baserom.gba", 0x0DB6C8, 0x0000008 + +gUnk_080DB6D0:: @ 080DB6D0 + .incbin "baserom.gba", 0x0DB6D0, 0x0000020 + +gUnk_080DB6F0:: @ 080DB6F0 + .incbin "baserom.gba", 0x0DB6F0, 0x0000030 + +gUnk_080DB720:: @ 080DB720 + .incbin "baserom.gba", 0x0DB720, 0x0000030 + +gUnk_080DB750:: @ 080DB750 + .incbin "baserom.gba", 0x0DB750, 0x0000010 + +gUnk_080DB760:: @ 080DB760 + .incbin "baserom.gba", 0x0DB760, 0x0000008 + +gUnk_080DB768:: @ 080DB768 + .incbin "baserom.gba", 0x0DB768, 0x0000020 + +gUnk_080DB788:: @ 080DB788 + .incbin "baserom.gba", 0x0DB788, 0x0000010 + +gUnk_080DB798:: @ 080DB798 + .incbin "baserom.gba", 0x0DB798, 0x0000030 + +gUnk_080DB7C8:: @ 080DB7C8 + .incbin "baserom.gba", 0x0DB7C8, 0x0000010 + +gUnk_080DB7D8:: @ 080DB7D8 + .incbin "baserom.gba", 0x0DB7D8, 0x0000008 + +gUnk_080DB7E0:: @ 080DB7E0 + .incbin "baserom.gba", 0x0DB7E0, 0x0000020 + +gUnk_080DB800:: @ 080DB800 + .incbin "baserom.gba", 0x0DB800, 0x0000020 + +gUnk_080DB820:: @ 080DB820 + .incbin "baserom.gba", 0x0DB820, 0x0000020 + +gUnk_080DB840:: @ 080DB840 + .incbin "baserom.gba", 0x0DB840, 0x00000B0 + +gUnk_080DB8F0:: @ 080DB8F0 + .incbin "baserom.gba", 0x0DB8F0, 0x0000020 + +gUnk_080DB910:: @ 080DB910 + .incbin "baserom.gba", 0x0DB910, 0x0000070 + +gUnk_080DB980:: @ 080DB980 + .incbin "baserom.gba", 0x0DB980, 0x0000010 + +gUnk_080DB990:: @ 080DB990 + .incbin "baserom.gba", 0x0DB990, 0x0000008 + +gUnk_080DB998:: @ 080DB998 + .incbin "baserom.gba", 0x0DB998, 0x0000010 + +gUnk_080DB9A8:: @ 080DB9A8 + .incbin "baserom.gba", 0x0DB9A8, 0x0000014 + +gUnk_080DB9BC:: @ 080DB9BC + .incbin "baserom.gba", 0x0DB9BC, 0x000002C + +gUnk_080DB9E8:: @ 080DB9E8 + .incbin "baserom.gba", 0x0DB9E8, 0x0000020 + +gUnk_080DBA08:: @ 080DBA08 + .incbin "baserom.gba", 0x0DBA08, 0x0000020 + +gUnk_080DBA28:: @ 080DBA28 + .incbin "baserom.gba", 0x0DBA28, 0x0000040 + +gUnk_080DBA68:: @ 080DBA68 + .incbin "baserom.gba", 0x0DBA68, 0x0000010 + +gUnk_080DBA78:: @ 080DBA78 + .incbin "baserom.gba", 0x0DBA78, 0x0000008 + +gUnk_080DBA80:: @ 080DBA80 + .incbin "baserom.gba", 0x0DBA80, 0x0000020 + +gUnk_080DBAA0:: @ 080DBAA0 + .incbin "baserom.gba", 0x0DBAA0, 0x0000030 + +gUnk_080DBAD0:: @ 080DBAD0 + .incbin "baserom.gba", 0x0DBAD0, 0x0000040 + +gUnk_080DBB10:: @ 080DBB10 + .incbin "baserom.gba", 0x0DBB10, 0x0000040 + +gUnk_080DBB50:: @ 080DBB50 + .incbin "baserom.gba", 0x0DBB50, 0x0000020 + +gUnk_080DBB70:: @ 080DBB70 + .incbin "baserom.gba", 0x0DBB70, 0x0000020 + +gUnk_080DBB90:: @ 080DBB90 + .incbin "baserom.gba", 0x0DBB90, 0x0000020 + +gUnk_080DBBB0:: @ 080DBBB0 + .incbin "baserom.gba", 0x0DBBB0, 0x0000010 + +gUnk_080DBBC0:: @ 080DBBC0 + .incbin "baserom.gba", 0x0DBBC0, 0x0000008 + +gUnk_080DBBC8:: @ 080DBBC8 + .incbin "baserom.gba", 0x0DBBC8, 0x0000020 + +gUnk_080DBBE8:: @ 080DBBE8 + .incbin "baserom.gba", 0x0DBBE8, 0x0000010 + +gUnk_080DBBF8:: @ 080DBBF8 + .incbin "baserom.gba", 0x0DBBF8, 0x0000040 + +gUnk_080DBC38:: @ 080DBC38 + .incbin "baserom.gba", 0x0DBC38, 0x0000010 + +gUnk_080DBC48:: @ 080DBC48 + .incbin "baserom.gba", 0x0DBC48, 0x0000020 + +gUnk_080DBC68:: @ 080DBC68 + .incbin "baserom.gba", 0x0DBC68, 0x0000010 + +gUnk_080DBC78:: @ 080DBC78 + .incbin "baserom.gba", 0x0DBC78, 0x0000010 + +gUnk_080DBC88:: @ 080DBC88 + .incbin "baserom.gba", 0x0DBC88, 0x0000010 + +gUnk_080DBC98:: @ 080DBC98 + .incbin "baserom.gba", 0x0DBC98, 0x0000020 + +gUnk_080DBCB8:: @ 080DBCB8 + .incbin "baserom.gba", 0x0DBCB8, 0x0000020 + +gUnk_080DBCD8:: @ 080DBCD8 + .incbin "baserom.gba", 0x0DBCD8, 0x0000080 + +gUnk_080DBD58:: @ 080DBD58 + .incbin "baserom.gba", 0x0DBD58, 0x0000008 + +gUnk_080DBD60:: @ 080DBD60 + .incbin "baserom.gba", 0x0DBD60, 0x0000020 + +gUnk_080DBD80:: @ 080DBD80 + .incbin "baserom.gba", 0x0DBD80, 0x0000020 + +gUnk_080DBDA0:: @ 080DBDA0 + .incbin "baserom.gba", 0x0DBDA0, 0x0000050 + +gUnk_080DBDF0:: @ 080DBDF0 + .incbin "baserom.gba", 0x0DBDF0, 0x0000010 + +gUnk_080DBE00:: @ 080DBE00 + .incbin "baserom.gba", 0x0DBE00, 0x0000020 + +gUnk_080DBE20:: @ 080DBE20 + .incbin "baserom.gba", 0x0DBE20, 0x0000020 + +gUnk_080DBE40:: @ 080DBE40 + .incbin "baserom.gba", 0x0DBE40, 0x0000010 + +gUnk_080DBE50:: @ 080DBE50 + .incbin "baserom.gba", 0x0DBE50, 0x0000008 + +gUnk_080DBE58:: @ 080DBE58 + .incbin "baserom.gba", 0x0DBE58, 0x0000020 + +gUnk_080DBE78:: @ 080DBE78 + .incbin "baserom.gba", 0x0DBE78, 0x0000010 + +gUnk_080DBE88:: @ 080DBE88 + .incbin "baserom.gba", 0x0DBE88, 0x0000050 + +gUnk_080DBED8:: @ 080DBED8 + .incbin "baserom.gba", 0x0DBED8, 0x0000010 + +gUnk_080DBEE8:: @ 080DBEE8 + .incbin "baserom.gba", 0x0DBEE8, 0x0000020 + +gUnk_080DBF08:: @ 080DBF08 + .incbin "baserom.gba", 0x0DBF08, 0x0000010 + +gUnk_080DBF18:: @ 080DBF18 + .incbin "baserom.gba", 0x0DBF18, 0x0000040 + +gUnk_080DBF58:: @ 080DBF58 + .incbin "baserom.gba", 0x0DBF58, 0x0000008 + +gUnk_080DBF60:: @ 080DBF60 + .incbin "baserom.gba", 0x0DBF60, 0x0000020 + +gUnk_080DBF80:: @ 080DBF80 + .incbin "baserom.gba", 0x0DBF80, 0x0000010 + +gUnk_080DBF90:: @ 080DBF90 + .incbin "baserom.gba", 0x0DBF90, 0x0000100 + +gUnk_080DC090:: @ 080DC090 + .incbin "baserom.gba", 0x0DC090, 0x0000018 + +gUnk_080DC0A8:: @ 080DC0A8 + .incbin "baserom.gba", 0x0DC0A8, 0x0000020 + +gUnk_080DC0C8:: @ 080DC0C8 + .incbin "baserom.gba", 0x0DC0C8, 0x0000010 + +gUnk_080DC0D8:: @ 080DC0D8 + .incbin "baserom.gba", 0x0DC0D8, 0x0000030 + +gUnk_080DC108:: @ 080DC108 + .incbin "baserom.gba", 0x0DC108, 0x0000050 + +gUnk_080DC158:: @ 080DC158 + .incbin "baserom.gba", 0x0DC158, 0x0000008 + +gUnk_080DC160:: @ 080DC160 + .incbin "baserom.gba", 0x0DC160, 0x0000020 + +gUnk_080DC180:: @ 080DC180 + .incbin "baserom.gba", 0x0DC180, 0x0000020 + +gUnk_080DC1A0:: @ 080DC1A0 + .incbin "baserom.gba", 0x0DC1A0, 0x00000A0 + +gUnk_080DC240:: @ 080DC240 + .incbin "baserom.gba", 0x0DC240, 0x0000020 + +gUnk_080DC260:: @ 080DC260 + .incbin "baserom.gba", 0x0DC260, 0x0000020 + +gUnk_080DC280:: @ 080DC280 + .incbin "baserom.gba", 0x0DC280, 0x0000110 + +gUnk_080DC390:: @ 080DC390 + .incbin "baserom.gba", 0x0DC390, 0x0000060 + +gUnk_080DC3F0:: @ 080DC3F0 + .incbin "baserom.gba", 0x0DC3F0, 0x0000040 + +gUnk_080DC430:: @ 080DC430 + .incbin "baserom.gba", 0x0DC430, 0x0000040 + +gUnk_080DC470:: @ 080DC470 + .incbin "baserom.gba", 0x0DC470, 0x0000050 + +gUnk_080DC4C0:: @ 080DC4C0 + .incbin "baserom.gba", 0x0DC4C0, 0x0000070 + +gUnk_080DC530:: @ 080DC530 + .incbin "baserom.gba", 0x0DC530, 0x0000020 + +gUnk_080DC550:: @ 080DC550 + .incbin "baserom.gba", 0x0DC550, 0x0000010 + +gUnk_080DC560:: @ 080DC560 + .incbin "baserom.gba", 0x0DC560, 0x0000008 + +gUnk_080DC568:: @ 080DC568 + .incbin "baserom.gba", 0x0DC568, 0x0000020 + +gUnk_080DC588:: @ 080DC588 + .incbin "baserom.gba", 0x0DC588, 0x0000020 + +gUnk_080DC5A8:: @ 080DC5A8 + .incbin "baserom.gba", 0x0DC5A8, 0x0000010 + +gUnk_080DC5B8:: @ 080DC5B8 + .incbin "baserom.gba", 0x0DC5B8, 0x0000008 + +gUnk_080DC5C0:: @ 080DC5C0 + .incbin "baserom.gba", 0x0DC5C0, 0x0000020 + +gUnk_080DC5E0:: @ 080DC5E0 + .incbin "baserom.gba", 0x0DC5E0, 0x0000010 + +gUnk_080DC5F0:: @ 080DC5F0 + .incbin "baserom.gba", 0x0DC5F0, 0x0000010 + +gUnk_080DC600:: @ 080DC600 + .incbin "baserom.gba", 0x0DC600, 0x0000010 + +gUnk_080DC610:: @ 080DC610 + .incbin "baserom.gba", 0x0DC610, 0x0000020 + +gUnk_080DC630:: @ 080DC630 + .incbin "baserom.gba", 0x0DC630, 0x0000010 + +gUnk_080DC640:: @ 080DC640 + .incbin "baserom.gba", 0x0DC640, 0x0000010 + +gUnk_080DC650:: @ 080DC650 + .incbin "baserom.gba", 0x0DC650, 0x0000010 + +gUnk_080DC660:: @ 080DC660 + .incbin "baserom.gba", 0x0DC660, 0x0000020 + +gUnk_080DC680:: @ 080DC680 + .incbin "baserom.gba", 0x0DC680, 0x0000010 + +gUnk_080DC690:: @ 080DC690 + .incbin "baserom.gba", 0x0DC690, 0x0000010 + +gUnk_080DC6A0:: @ 080DC6A0 + .incbin "baserom.gba", 0x0DC6A0, 0x0000010 + +gUnk_080DC6B0:: @ 080DC6B0 + .incbin "baserom.gba", 0x0DC6B0, 0x0000020 + +gUnk_080DC6D0:: @ 080DC6D0 + .incbin "baserom.gba", 0x0DC6D0, 0x0000010 + +gUnk_080DC6E0:: @ 080DC6E0 + .incbin "baserom.gba", 0x0DC6E0, 0x0000010 + +gUnk_080DC6F0:: @ 080DC6F0 + .incbin "baserom.gba", 0x0DC6F0, 0x0000010 + +gUnk_080DC700:: @ 080DC700 + .incbin "baserom.gba", 0x0DC700, 0x0000020 + +gUnk_080DC720:: @ 080DC720 + .incbin "baserom.gba", 0x0DC720, 0x0000010 + +gUnk_080DC730:: @ 080DC730 + .incbin "baserom.gba", 0x0DC730, 0x0000040 + +gUnk_080DC770:: @ 080DC770 + .incbin "baserom.gba", 0x0DC770, 0x0000010 + +gUnk_080DC780:: @ 080DC780 + .incbin "baserom.gba", 0x0DC780, 0x0000010 + +gUnk_080DC790:: @ 080DC790 + .incbin "baserom.gba", 0x0DC790, 0x0000020 + +gUnk_080DC7B0:: @ 080DC7B0 + .incbin "baserom.gba", 0x0DC7B0, 0x0000020 + +gUnk_080DC7D0:: @ 080DC7D0 + .incbin "baserom.gba", 0x0DC7D0, 0x0000060 + +gUnk_080DC830:: @ 080DC830 + .incbin "baserom.gba", 0x0DC830, 0x0000010 + +gUnk_080DC840:: @ 080DC840 + .incbin "baserom.gba", 0x0DC840, 0x0000008 + +gUnk_080DC848:: @ 080DC848 + .incbin "baserom.gba", 0x0DC848, 0x0000020 + +gUnk_080DC868:: @ 080DC868 + .incbin "baserom.gba", 0x0DC868, 0x0000020 + +gUnk_080DC888:: @ 080DC888 + .incbin "baserom.gba", 0x0DC888, 0x0000050 + +gUnk_080DC8D8:: @ 080DC8D8 + .incbin "baserom.gba", 0x0DC8D8, 0x0000010 + +gUnk_080DC8E8:: @ 080DC8E8 + .incbin "baserom.gba", 0x0DC8E8, 0x0000008 + +gUnk_080DC8F0:: @ 080DC8F0 + .incbin "baserom.gba", 0x0DC8F0, 0x0000020 + +gUnk_080DC910:: @ 080DC910 + .incbin "baserom.gba", 0x0DC910, 0x0000020 + +gUnk_080DC930:: @ 080DC930 + .incbin "baserom.gba", 0x0DC930, 0x0000050 + +gUnk_080DC980:: @ 080DC980 + .incbin "baserom.gba", 0x0DC980, 0x0000010 + +gUnk_080DC990:: @ 080DC990 + .incbin "baserom.gba", 0x0DC990, 0x0000010 + +gUnk_080DC9A0:: @ 080DC9A0 + .incbin "baserom.gba", 0x0DC9A0, 0x0000020 + +gUnk_080DC9C0:: @ 080DC9C0 + .incbin "baserom.gba", 0x0DC9C0, 0x0000020 + +gUnk_080DC9E0:: @ 080DC9E0 + .incbin "baserom.gba", 0x0DC9E0, 0x0000050 + +gUnk_080DCA30:: @ 080DCA30 + .incbin "baserom.gba", 0x0DCA30, 0x0000010 + +gUnk_080DCA40:: @ 080DCA40 + .incbin "baserom.gba", 0x0DCA40, 0x0000008 + +gUnk_080DCA48:: @ 080DCA48 + .incbin "baserom.gba", 0x0DCA48, 0x0000020 + +gUnk_080DCA68:: @ 080DCA68 + .incbin "baserom.gba", 0x0DCA68, 0x0000010 + +gUnk_080DCA78:: @ 080DCA78 + .incbin "baserom.gba", 0x0DCA78, 0x0000040 + +gUnk_080DCAB8:: @ 080DCAB8 + .incbin "baserom.gba", 0x0DCAB8, 0x0000010 + +gUnk_080DCAC8:: @ 080DCAC8 + .incbin "baserom.gba", 0x0DCAC8, 0x0000008 + +gUnk_080DCAD0:: @ 080DCAD0 + .incbin "baserom.gba", 0x0DCAD0, 0x0000020 + +gUnk_080DCAF0:: @ 080DCAF0 + .incbin "baserom.gba", 0x0DCAF0, 0x0000020 + +gUnk_080DCB10:: @ 080DCB10 + .incbin "baserom.gba", 0x0DCB10, 0x0000030 + +gUnk_080DCB40:: @ 080DCB40 + .incbin "baserom.gba", 0x0DCB40, 0x0000020 + +gUnk_080DCB60:: @ 080DCB60 + .incbin "baserom.gba", 0x0DCB60, 0x0000060 + +gUnk_080DCBC0:: @ 080DCBC0 + .incbin "baserom.gba", 0x0DCBC0, 0x0000018 + +gUnk_080DCBD8:: @ 080DCBD8 + .incbin "baserom.gba", 0x0DCBD8, 0x0000024 + +gUnk_080DCBFC:: @ 080DCBFC + .incbin "baserom.gba", 0x0DCBFC, 0x0000020 + +gUnk_080DCC1C:: @ 080DCC1C + .incbin "baserom.gba", 0x0DCC1C, 0x0000050 + +gUnk_080DCC6C:: @ 080DCC6C + .incbin "baserom.gba", 0x0DCC6C, 0x0000010 + +gUnk_080DCC7C:: @ 080DCC7C + .incbin "baserom.gba", 0x0DCC7C, 0x0000010 + +gUnk_080DCC8C:: @ 080DCC8C + .incbin "baserom.gba", 0x0DCC8C, 0x0000020 + +gUnk_080DCCAC:: @ 080DCCAC + .incbin "baserom.gba", 0x0DCCAC, 0x0000010 + +gUnk_080DCCBC:: @ 080DCCBC + .incbin "baserom.gba", 0x0DCCBC, 0x0000020 + +gUnk_080DCCDC:: @ 080DCCDC + .incbin "baserom.gba", 0x0DCCDC, 0x0000010 + +gUnk_080DCCEC:: @ 080DCCEC + .incbin "baserom.gba", 0x0DCCEC, 0x0000010 + +gUnk_080DCCFC:: @ 080DCCFC + .incbin "baserom.gba", 0x0DCCFC, 0x0000020 + +gUnk_080DCD1C:: @ 080DCD1C + .incbin "baserom.gba", 0x0DCD1C, 0x0000010 + +gUnk_080DCD2C:: @ 080DCD2C + .incbin "baserom.gba", 0x0DCD2C, 0x0000020 + +gUnk_080DCD4C:: @ 080DCD4C + .incbin "baserom.gba", 0x0DCD4C, 0x0000010 + +gUnk_080DCD5C:: @ 080DCD5C + .incbin "baserom.gba", 0x0DCD5C, 0x0000018 + +gUnk_080DCD74:: @ 080DCD74 + .incbin "baserom.gba", 0x0DCD74, 0x0000020 + +gUnk_080DCD94:: @ 080DCD94 + .incbin "baserom.gba", 0x0DCD94, 0x0000010 + +gUnk_080DCDA4:: @ 080DCDA4 + .incbin "baserom.gba", 0x0DCDA4, 0x0000020 + +gUnk_080DCDC4:: @ 080DCDC4 + .incbin "baserom.gba", 0x0DCDC4, 0x0000010 + +gUnk_080DCDD4:: @ 080DCDD4 + .incbin "baserom.gba", 0x0DCDD4, 0x0000018 + +gUnk_080DCDEC:: @ 080DCDEC + .incbin "baserom.gba", 0x0DCDEC, 0x0000020 + +gUnk_080DCE0C:: @ 080DCE0C + .incbin "baserom.gba", 0x0DCE0C, 0x0000010 + +gUnk_080DCE1C:: @ 080DCE1C + .incbin "baserom.gba", 0x0DCE1C, 0x0000020 + +gUnk_080DCE3C:: @ 080DCE3C + .incbin "baserom.gba", 0x0DCE3C, 0x0000010 + +gUnk_080DCE4C:: @ 080DCE4C + .incbin "baserom.gba", 0x0DCE4C, 0x0000018 + +gUnk_080DCE64:: @ 080DCE64 + .incbin "baserom.gba", 0x0DCE64, 0x0000020 + +gUnk_080DCE84:: @ 080DCE84 + .incbin "baserom.gba", 0x0DCE84, 0x0000010 + +gUnk_080DCE94:: @ 080DCE94 + .incbin "baserom.gba", 0x0DCE94, 0x0000020 + +gUnk_080DCEB4:: @ 080DCEB4 + .incbin "baserom.gba", 0x0DCEB4, 0x0000010 + +gUnk_080DCEC4:: @ 080DCEC4 + .incbin "baserom.gba", 0x0DCEC4, 0x0000018 + +gUnk_080DCEDC:: @ 080DCEDC + .incbin "baserom.gba", 0x0DCEDC, 0x0000020 + +gUnk_080DCEFC:: @ 080DCEFC + .incbin "baserom.gba", 0x0DCEFC, 0x0000010 + +gUnk_080DCF0C:: @ 080DCF0C + .incbin "baserom.gba", 0x0DCF0C, 0x0000020 + +gUnk_080DCF2C:: @ 080DCF2C + .incbin "baserom.gba", 0x0DCF2C, 0x0000010 + +gUnk_080DCF3C:: @ 080DCF3C + .incbin "baserom.gba", 0x0DCF3C, 0x0000018 + +gUnk_080DCF54:: @ 080DCF54 + .incbin "baserom.gba", 0x0DCF54, 0x0000020 + +gUnk_080DCF74:: @ 080DCF74 + .incbin "baserom.gba", 0x0DCF74, 0x0000010 + +gUnk_080DCF84:: @ 080DCF84 + .incbin "baserom.gba", 0x0DCF84, 0x0000010 + +gUnk_080DCF94:: @ 080DCF94 + .incbin "baserom.gba", 0x0DCF94, 0x0000010 + +gUnk_080DCFA4:: @ 080DCFA4 + .incbin "baserom.gba", 0x0DCFA4, 0x0000008 + +gUnk_080DCFAC:: @ 080DCFAC + .incbin "baserom.gba", 0x0DCFAC, 0x0000020 + +gUnk_080DCFCC:: @ 080DCFCC + .incbin "baserom.gba", 0x0DCFCC, 0x0000010 + +gUnk_080DCFDC:: @ 080DCFDC + .incbin "baserom.gba", 0x0DCFDC, 0x0000010 + +gUnk_080DCFEC:: @ 080DCFEC + .incbin "baserom.gba", 0x0DCFEC, 0x0000010 + +gUnk_080DCFFC:: @ 080DCFFC + .incbin "baserom.gba", 0x0DCFFC, 0x0000008 + +gUnk_080DD004:: @ 080DD004 + .incbin "baserom.gba", 0x0DD004, 0x0000020 + +gUnk_080DD024:: @ 080DD024 + .incbin "baserom.gba", 0x0DD024, 0x0000010 + +gUnk_080DD034:: @ 080DD034 + .incbin "baserom.gba", 0x0DD034, 0x0000010 + +gUnk_080DD044:: @ 080DD044 + .incbin "baserom.gba", 0x0DD044, 0x0000010 + +gUnk_080DD054:: @ 080DD054 + .incbin "baserom.gba", 0x0DD054, 0x0000008 + +gUnk_080DD05C:: @ 080DD05C + .incbin "baserom.gba", 0x0DD05C, 0x0000020 + +gUnk_080DD07C:: @ 080DD07C + .incbin "baserom.gba", 0x0DD07C, 0x0000010 + +gUnk_080DD08C:: @ 080DD08C + .incbin "baserom.gba", 0x0DD08C, 0x0000080 + +gUnk_080DD10C:: @ 080DD10C + .incbin "baserom.gba", 0x0DD10C, 0x0000010 + +gUnk_080DD11C:: @ 080DD11C + .incbin "baserom.gba", 0x0DD11C, 0x0000008 + +gUnk_080DD124:: @ 080DD124 + .incbin "baserom.gba", 0x0DD124, 0x0000020 + +gUnk_080DD144:: @ 080DD144 + .incbin "baserom.gba", 0x0DD144, 0x00000D0 + +gUnk_080DD214:: @ 080DD214 + .incbin "baserom.gba", 0x0DD214, 0x0000060 + +gUnk_080DD274:: @ 080DD274 + .incbin "baserom.gba", 0x0DD274, 0x0000020 + +gUnk_080DD294:: @ 080DD294 + .incbin "baserom.gba", 0x0DD294, 0x0000020 + +gUnk_080DD2B4:: @ 080DD2B4 + .incbin "baserom.gba", 0x0DD2B4, 0x0000050 + +gUnk_080DD304:: @ 080DD304 + .incbin "baserom.gba", 0x0DD304, 0x0000010 + +gUnk_080DD314:: @ 080DD314 + .incbin "baserom.gba", 0x0DD314, 0x0000008 + +gUnk_080DD31C:: @ 080DD31C + .incbin "baserom.gba", 0x0DD31C, 0x0000028 + +gUnk_080DD344:: @ 080DD344 + .incbin "baserom.gba", 0x0DD344, 0x0000020 + +gUnk_080DD364:: @ 080DD364 + .incbin "baserom.gba", 0x0DD364, 0x0000020 + +gUnk_080DD384:: @ 080DD384 + .incbin "baserom.gba", 0x0DD384, 0x0000050 + +gUnk_080DD3D4:: @ 080DD3D4 + .incbin "baserom.gba", 0x0DD3D4, 0x0000010 + +gUnk_080DD3E4:: @ 080DD3E4 + .incbin "baserom.gba", 0x0DD3E4, 0x0000008 + +gUnk_080DD3EC:: @ 080DD3EC + .incbin "baserom.gba", 0x0DD3EC, 0x0000020 + +gUnk_080DD40C:: @ 080DD40C + .incbin "baserom.gba", 0x0DD40C, 0x0000090 + +gUnk_080DD49C:: @ 080DD49C + .incbin "baserom.gba", 0x0DD49C, 0x0000130 + +gUnk_080DD5CC:: @ 080DD5CC + .incbin "baserom.gba", 0x0DD5CC, 0x00000F0 + +gUnk_080DD6BC:: @ 080DD6BC + .incbin "baserom.gba", 0x0DD6BC, 0x0000010 + +gUnk_080DD6CC:: @ 080DD6CC + .incbin "baserom.gba", 0x0DD6CC, 0x0000040 + +gUnk_080DD70C:: @ 080DD70C + .incbin "baserom.gba", 0x0DD70C, 0x0000044 + +gUnk_080DD750:: @ 080DD750 + .incbin "baserom.gba", 0x0DD750, 0x0000040 + +gUnk_080DD790:: @ 080DD790 + .incbin "baserom.gba", 0x0DD790, 0x0000050 + +gUnk_080DD7E0:: @ 080DD7E0 + .incbin "baserom.gba", 0x0DD7E0, 0x0000040 + +gUnk_080DD820:: @ 080DD820 + .incbin "baserom.gba", 0x0DD820, 0x0000020 + +gUnk_080DD840:: @ 080DD840 + .incbin "baserom.gba", 0x0DD840, 0x0000040 + +gUnk_080DD880:: @ 080DD880 + .incbin "baserom.gba", 0x0DD880, 0x0000020 + +gUnk_080DD8A0:: @ 080DD8A0 + .incbin "baserom.gba", 0x0DD8A0, 0x0000050 + +gUnk_080DD8F0:: @ 080DD8F0 + .incbin "baserom.gba", 0x0DD8F0, 0x00000FF + +gUnk_080DD9EF:: @ 080DD9EF + .incbin "baserom.gba", 0x0DD9EF, 0x0000081 + +gUnk_080DDA70:: @ 080DDA70 + .incbin "baserom.gba", 0x0DDA70, 0x000006E + +gUnk_080DDADE:: @ 080DDADE + .incbin "baserom.gba", 0x0DDADE, 0x0000012 + +gUnk_080DDAF0:: @ 080DDAF0 + .incbin "baserom.gba", 0x0DDAF0, 0x0000070 + +gUnk_080DDB60:: @ 080DDB60 + .incbin "baserom.gba", 0x0DDB60, 0x0000008 + +gUnk_080DDB68:: @ 080DDB68 + .incbin "baserom.gba", 0x0DDB68, 0x0000030 + +gUnk_080DDB98:: @ 080DDB98 + .incbin "baserom.gba", 0x0DDB98, 0x0000030 + +gUnk_080DDBC8:: @ 080DDBC8 + .incbin "baserom.gba", 0x0DDBC8, 0x0000038 + +gUnk_080DDC00:: @ 080DDC00 + .incbin "baserom.gba", 0x0DDC00, 0x0000020 + +gUnk_080DDC20:: @ 080DDC20 + .incbin "baserom.gba", 0x0DDC20, 0x0000030 + +gUnk_080DDC50:: @ 080DDC50 + .incbin "baserom.gba", 0x0DDC50, 0x0000080 + +gUnk_080DDCD0:: @ 080DDCD0 + .incbin "baserom.gba", 0x0DDCD0, 0x0000010 + +gUnk_080DDCE0:: @ 080DDCE0 + .incbin "baserom.gba", 0x0DDCE0, 0x0000010 + +gUnk_080DDCF0:: @ 080DDCF0 + .incbin "baserom.gba", 0x0DDCF0, 0x0000014 + +gUnk_080DDD04:: @ 080DDD04 + .incbin "baserom.gba", 0x0DDD04, 0x0000014 + +gUnk_080DDD18:: @ 080DDD18 + .incbin "baserom.gba", 0x0DDD18, 0x0000014 + +gUnk_080DDD2C:: @ 080DDD2C + .incbin "baserom.gba", 0x0DDD2C, 0x0000014 + +gUnk_080DDD40:: @ 080DDD40 + .incbin "baserom.gba", 0x0DDD40, 0x0000034 + +gUnk_080DDD74:: @ 080DDD74 + .incbin "baserom.gba", 0x0DDD74, 0x0000010 + +gUnk_080DDD84:: @ 080DDD84 + .incbin "baserom.gba", 0x0DDD84, 0x0000030 + +gUnk_080DDDB4:: @ 080DDDB4 + .incbin "baserom.gba", 0x0DDDB4, 0x0000040 + +gUnk_080DDDF4:: @ 080DDDF4 + .incbin "baserom.gba", 0x0DDDF4, 0x0000008 + +gUnk_080DDDFC:: @ 080DDDFC + .incbin "baserom.gba", 0x0DDDFC, 0x0000010 + +gUnk_080DDE0C:: @ 080DDE0C + .incbin "baserom.gba", 0x0DDE0C, 0x0000014 + +gUnk_080DDE20:: @ 080DDE20 + .incbin "baserom.gba", 0x0DDE20, 0x0000028 + +gUnk_080DDE48:: @ 080DDE48 + .incbin "baserom.gba", 0x0DDE48, 0x0000040 + +gUnk_080DDE88:: @ 080DDE88 + .incbin "baserom.gba", 0x0DDE88, 0x0000020 + +gUnk_080DDEA8:: @ 080DDEA8 + .incbin "baserom.gba", 0x0DDEA8, 0x0000010 + +gUnk_080DDEB8:: @ 080DDEB8 + .incbin "baserom.gba", 0x0DDEB8, 0x0000010 + +gUnk_080DDEC8:: @ 080DDEC8 + .incbin "baserom.gba", 0x0DDEC8, 0x0000040 + +gUnk_080DDF08:: @ 080DDF08 + .incbin "baserom.gba", 0x0DDF08, 0x0000008 + +gUnk_080DDF10:: @ 080DDF10 + .incbin "baserom.gba", 0x0DDF10, 0x0000010 + +gUnk_080DDF20:: @ 080DDF20 + .incbin "baserom.gba", 0x0DDF20, 0x0000014 + +gUnk_080DDF34:: @ 080DDF34 + .incbin "baserom.gba", 0x0DDF34, 0x000002C + +gUnk_080DDF60:: @ 080DDF60 + .incbin "baserom.gba", 0x0DDF60, 0x0000010 + +gUnk_080DDF70:: @ 080DDF70 + .incbin "baserom.gba", 0x0DDF70, 0x0000010 + +gUnk_080DDF80:: @ 080DDF80 + .incbin "baserom.gba", 0x0DDF80, 0x0000040 + +gUnk_080DDFC0:: @ 080DDFC0 + .incbin "baserom.gba", 0x0DDFC0, 0x0000008 + +gUnk_080DDFC8:: @ 080DDFC8 + .incbin "baserom.gba", 0x0DDFC8, 0x0000020 + +gUnk_080DDFE8:: @ 080DDFE8 + .incbin "baserom.gba", 0x0DDFE8, 0x0000018 + +gUnk_080DE000:: @ 080DE000 + .incbin "baserom.gba", 0x0DE000, 0x0000008 + +gUnk_080DE008:: @ 080DE008 + .incbin "baserom.gba", 0x0DE008, 0x0000020 + +gUnk_080DE028:: @ 080DE028 + .incbin "baserom.gba", 0x0DE028, 0x0000020 + +gUnk_080DE048:: @ 080DE048 + .incbin "baserom.gba", 0x0DE048, 0x00000A0 + +gUnk_080DE0E8:: @ 080DE0E8 + .incbin "baserom.gba", 0x0DE0E8, 0x0000030 + +gUnk_080DE118:: @ 080DE118 + .incbin "baserom.gba", 0x0DE118, 0x0000014 + +gUnk_080DE12C:: @ 080DE12C + .incbin "baserom.gba", 0x0DE12C, 0x0000024 + +gUnk_080DE150:: @ 080DE150 + .incbin "baserom.gba", 0x0DE150, 0x0000090 + +gUnk_080DE1E0:: @ 080DE1E0 + .incbin "baserom.gba", 0x0DE1E0, 0x0000020 + +gUnk_080DE200:: @ 080DE200 + .incbin "baserom.gba", 0x0DE200, 0x0000020 + +gUnk_080DE220:: @ 080DE220 + .incbin "baserom.gba", 0x0DE220, 0x0000020 + +gUnk_080DE240:: @ 080DE240 + .incbin "baserom.gba", 0x0DE240, 0x0000020 + +gUnk_080DE260:: @ 080DE260 + .incbin "baserom.gba", 0x0DE260, 0x0000050 + +gUnk_080DE2B0:: @ 080DE2B0 + .incbin "baserom.gba", 0x0DE2B0, 0x0000070 + +gUnk_080DE320:: @ 080DE320 + .incbin "baserom.gba", 0x0DE320, 0x0000018 + +gUnk_080DE338:: @ 080DE338 + .incbin "baserom.gba", 0x0DE338, 0x0000014 + +gUnk_080DE34C:: @ 080DE34C + .incbin "baserom.gba", 0x0DE34C, 0x0000014 + +gUnk_080DE360:: @ 080DE360 + .incbin "baserom.gba", 0x0DE360, 0x0000014 + +gUnk_080DE374:: @ 080DE374 + .incbin "baserom.gba", 0x0DE374, 0x0000014 + +gUnk_080DE388:: @ 080DE388 + .incbin "baserom.gba", 0x0DE388, 0x0000014 + +gUnk_080DE39C:: @ 080DE39C + .incbin "baserom.gba", 0x0DE39C, 0x000003C + +gUnk_080DE3D8:: @ 080DE3D8 + .incbin "baserom.gba", 0x0DE3D8, 0x00000F0 + +gUnk_080DE4C8:: @ 080DE4C8 + .incbin "baserom.gba", 0x0DE4C8, 0x0000020 + +gUnk_080DE4E8:: @ 080DE4E8 + .incbin "baserom.gba", 0x0DE4E8, 0x0000050 + +gUnk_080DE538:: @ 080DE538 + .incbin "baserom.gba", 0x0DE538, 0x0000018 + +gUnk_080DE550:: @ 080DE550 + .incbin "baserom.gba", 0x0DE550, 0x0000024 + +gUnk_080DE574:: @ 080DE574 + .incbin "baserom.gba", 0x0DE574, 0x000008D + +gUnk_080DE601:: @ 080DE601 + .incbin "baserom.gba", 0x0DE601, 0x00000E3 + +gUnk_080DE6E4:: @ 080DE6E4 + .incbin "baserom.gba", 0x0DE6E4, 0x0000020 + +gUnk_080DE704:: @ 080DE704 + .incbin "baserom.gba", 0x0DE704, 0x0000020 + +gUnk_080DE724:: @ 080DE724 + .incbin "baserom.gba", 0x0DE724, 0x0000020 + +gUnk_080DE744:: @ 080DE744 + .incbin "baserom.gba", 0x0DE744, 0x0000020 + +gUnk_080DE764:: @ 080DE764 + .incbin "baserom.gba", 0x0DE764, 0x0000030 + +gUnk_080DE794:: @ 080DE794 + .incbin "baserom.gba", 0x0DE794, 0x0000020 + +gUnk_080DE7B4:: @ 080DE7B4 + .incbin "baserom.gba", 0x0DE7B4, 0x0000030 + +gUnk_080DE7E4:: @ 080DE7E4 + .incbin "baserom.gba", 0x0DE7E4, 0x0000030 + +gUnk_080DE814:: @ 080DE814 + .incbin "baserom.gba", 0x0DE814, 0x0000020 + +gUnk_080DE834:: @ 080DE834 + .incbin "baserom.gba", 0x0DE834, 0x0000030 + +gUnk_080DE864:: @ 080DE864 + .incbin "baserom.gba", 0x0DE864, 0x0000030 + +gUnk_080DE894:: @ 080DE894 + .incbin "baserom.gba", 0x0DE894, 0x0000018 + +gUnk_080DE8AC:: @ 080DE8AC + .incbin "baserom.gba", 0x0DE8AC, 0x0000024 + +gUnk_080DE8D0:: @ 080DE8D0 + .incbin "baserom.gba", 0x0DE8D0, 0x0000060 + +gUnk_080DE930:: @ 080DE930 + .incbin "baserom.gba", 0x0DE930, 0x0000040 + +gUnk_080DE970:: @ 080DE970 + .incbin "baserom.gba", 0x0DE970, 0x0000010 + +gUnk_080DE980:: @ 080DE980 + .incbin "baserom.gba", 0x0DE980, 0x0000020 + +gUnk_080DE9A0:: @ 080DE9A0 + .incbin "baserom.gba", 0x0DE9A0, 0x0000080 + +gUnk_080DEA20:: @ 080DEA20 + .incbin "baserom.gba", 0x0DEA20, 0x0000010 + +gUnk_080DEA30:: @ 080DEA30 + .incbin "baserom.gba", 0x0DEA30, 0x0000018 + +gUnk_080DEA48:: @ 080DEA48 + .incbin "baserom.gba", 0x0DEA48, 0x0000020 + +gUnk_080DEA68:: @ 080DEA68 + .incbin "baserom.gba", 0x0DEA68, 0x0000070 + +gUnk_080DEAD8:: @ 080DEAD8 + .incbin "baserom.gba", 0x0DEAD8, 0x0000020 + +gUnk_080DEAF8:: @ 080DEAF8 + .incbin "baserom.gba", 0x0DEAF8, 0x0000018 + +gUnk_080DEB10:: @ 080DEB10 + .incbin "baserom.gba", 0x0DEB10, 0x0000020 + +gUnk_080DEB30:: @ 080DEB30 + .incbin "baserom.gba", 0x0DEB30, 0x00000B0 + +gUnk_080DEBE0:: @ 080DEBE0 + .incbin "baserom.gba", 0x0DEBE0, 0x0000030 + +gUnk_080DEC10:: @ 080DEC10 + .incbin "baserom.gba", 0x0DEC10, 0x0000040 + +gUnk_080DEC50:: @ 080DEC50 + .incbin "baserom.gba", 0x0DEC50, 0x0000018 + +gUnk_080DEC68:: @ 080DEC68 + .incbin "baserom.gba", 0x0DEC68, 0x0000024 + +gUnk_080DEC8C:: @ 080DEC8C + .incbin "baserom.gba", 0x0DEC8C, 0x00000C0 + +gUnk_080DED4C:: @ 080DED4C + .incbin "baserom.gba", 0x0DED4C, 0x0000010 + +gUnk_080DED5C:: @ 080DED5C + .incbin "baserom.gba", 0x0DED5C, 0x0000010 + +gUnk_080DED6C:: @ 080DED6C + .incbin "baserom.gba", 0x0DED6C, 0x0000020 + +gUnk_080DED8C:: @ 080DED8C + .incbin "baserom.gba", 0x0DED8C, 0x0000070 + +gUnk_080DEDFC:: @ 080DEDFC + .incbin "baserom.gba", 0x0DEDFC, 0x0000040 + +gUnk_080DEE3C:: @ 080DEE3C + .incbin "baserom.gba", 0x0DEE3C, 0x0000010 + +gUnk_080DEE4C:: @ 080DEE4C + .incbin "baserom.gba", 0x0DEE4C, 0x0000010 + +gUnk_080DEE5C:: @ 080DEE5C + .incbin "baserom.gba", 0x0DEE5C, 0x0000024 + +gUnk_080DEE80:: @ 080DEE80 + .incbin "baserom.gba", 0x0DEE80, 0x0000060 + +gUnk_080DEEE0:: @ 080DEEE0 + .incbin "baserom.gba", 0x0DEEE0, 0x0000070 + +gUnk_080DEF50:: @ 080DEF50 + .incbin "baserom.gba", 0x0DEF50, 0x0000010 + +gUnk_080DEF60:: @ 080DEF60 + .incbin "baserom.gba", 0x0DEF60, 0x0000020 + +gUnk_080DEF80:: @ 080DEF80 + .incbin "baserom.gba", 0x0DEF80, 0x00000C0 + +gUnk_080DF040:: @ 080DF040 + .incbin "baserom.gba", 0x0DF040, 0x0000040 + +gUnk_080DF080:: @ 080DF080 + .incbin "baserom.gba", 0x0DF080, 0x0000010 + +gUnk_080DF090:: @ 080DF090 + .incbin "baserom.gba", 0x0DF090, 0x0000020 + +gUnk_080DF0B0:: @ 080DF0B0 + .incbin "baserom.gba", 0x0DF0B0, 0x00000D0 + +gUnk_080DF180:: @ 080DF180 + .incbin "baserom.gba", 0x0DF180, 0x0000010 + +gUnk_080DF190:: @ 080DF190 + .incbin "baserom.gba", 0x0DF190, 0x0000010 + +gUnk_080DF1A0:: @ 080DF1A0 + .incbin "baserom.gba", 0x0DF1A0, 0x0000010 + +gUnk_080DF1B0:: @ 080DF1B0 + .incbin "baserom.gba", 0x0DF1B0, 0x0000024 + +gUnk_080DF1D4:: @ 080DF1D4 + .incbin "baserom.gba", 0x0DF1D4, 0x0000022 + +gUnk_080DF1F6:: @ 080DF1F6 + .incbin "baserom.gba", 0x0DF1F6, 0x00000AE + +gUnk_080DF2A4:: @ 080DF2A4 + .incbin "baserom.gba", 0x0DF2A4, 0x0000020 + +gUnk_080DF2C4:: @ 080DF2C4 + .incbin "baserom.gba", 0x0DF2C4, 0x0000040 + +gUnk_080DF304:: @ 080DF304 + .incbin "baserom.gba", 0x0DF304, 0x0000020 + +gUnk_080DF324:: @ 080DF324 + .incbin "baserom.gba", 0x0DF324, 0x0000020 + +gUnk_080DF344:: @ 080DF344 + .incbin "baserom.gba", 0x0DF344, 0x00000A2 + +gUnk_080DF3E6:: @ 080DF3E6 + .incbin "baserom.gba", 0x0DF3E6, 0x000000A + +gUnk_080DF3F0:: @ 080DF3F0 + .incbin "baserom.gba", 0x0DF3F0, 0x0000054 + +gUnk_080DF444:: @ 080DF444 + .incbin "baserom.gba", 0x0DF444, 0x0000010 + +gUnk_080DF454:: @ 080DF454 + .incbin "baserom.gba", 0x0DF454, 0x0000018 + +gUnk_080DF46C:: @ 080DF46C + .incbin "baserom.gba", 0x0DF46C, 0x0000020 + +gUnk_080DF48C:: @ 080DF48C + .incbin "baserom.gba", 0x0DF48C, 0x00000F0 + +gUnk_080DF57C:: @ 080DF57C + .incbin "baserom.gba", 0x0DF57C, 0x0000020 + +gUnk_080DF59C:: @ 080DF59C + .incbin "baserom.gba", 0x0DF59C, 0x0000020 + +gUnk_080DF5BC:: @ 080DF5BC + .incbin "baserom.gba", 0x0DF5BC, 0x0000020 + +gUnk_080DF5DC:: @ 080DF5DC + .incbin "baserom.gba", 0x0DF5DC, 0x0000030 + +gUnk_080DF60C:: @ 080DF60C + .incbin "baserom.gba", 0x0DF60C, 0x0000010 + +gUnk_080DF61C:: @ 080DF61C + .incbin "baserom.gba", 0x0DF61C, 0x0000010 + +gUnk_080DF62C:: @ 080DF62C + .incbin "baserom.gba", 0x0DF62C, 0x0000020 + +gUnk_080DF64C:: @ 080DF64C + .incbin "baserom.gba", 0x0DF64C, 0x0000040 + +gUnk_080DF68C:: @ 080DF68C + .incbin "baserom.gba", 0x0DF68C, 0x000006F + +gUnk_080DF6FB:: @ 080DF6FB + .incbin "baserom.gba", 0x0DF6FB, 0x0000001 + +gUnk_080DF6FC:: @ 080DF6FC + .incbin "baserom.gba", 0x0DF6FC, 0x0000010 + +gUnk_080DF70C:: @ 080DF70C + .incbin "baserom.gba", 0x0DF70C, 0x0000020 + +gUnk_080DF72C:: @ 080DF72C + .incbin "baserom.gba", 0x0DF72C, 0x00000D2 + +gUnk_080DF7FE:: @ 080DF7FE + .incbin "baserom.gba", 0x0DF7FE, 0x000003E + +gUnk_080DF83C:: @ 080DF83C + .incbin "baserom.gba", 0x0DF83C, 0x0000020 + +gUnk_080DF85C:: @ 080DF85C + .incbin "baserom.gba", 0x0DF85C, 0x0000010 + +gUnk_080DF86C:: @ 080DF86C + .incbin "baserom.gba", 0x0DF86C, 0x0000020 + +gUnk_080DF88C:: @ 080DF88C + .incbin "baserom.gba", 0x0DF88C, 0x000008A + +gUnk_080DF916:: @ 080DF916 + .incbin "baserom.gba", 0x0DF916, 0x0000006 + +gUnk_080DF91C:: @ 080DF91C + .incbin "baserom.gba", 0x0DF91C, 0x0000030 + +gUnk_080DF94C:: @ 080DF94C + .incbin "baserom.gba", 0x0DF94C, 0x0000030 + +gUnk_080DF97C:: @ 080DF97C + .incbin "baserom.gba", 0x0DF97C, 0x0000020 + +gUnk_080DF99C:: @ 080DF99C + .incbin "baserom.gba", 0x0DF99C, 0x0000010 + +gUnk_080DF9AC:: @ 080DF9AC + .incbin "baserom.gba", 0x0DF9AC, 0x000002C + +gUnk_080DF9D8:: @ 080DF9D8 + .incbin "baserom.gba", 0x0DF9D8, 0x0000004 + +gUnk_080DF9DC:: @ 080DF9DC + .incbin "baserom.gba", 0x0DF9DC, 0x0000015 + +gUnk_080DF9F1:: @ 080DF9F1 + .incbin "baserom.gba", 0x0DF9F1, 0x0000008 + +gUnk_080DF9F9:: @ 080DF9F9 + .incbin "baserom.gba", 0x0DF9F9, 0x000004F + +gUnk_080DFA48:: @ 080DFA48 + .incbin "baserom.gba", 0x0DFA48, 0x0000010 + +gUnk_080DFA58:: @ 080DFA58 + .incbin "baserom.gba", 0x0DFA58, 0x0000018 + +gUnk_080DFA70:: @ 080DFA70 + .incbin "baserom.gba", 0x0DFA70, 0x0000020 + +gUnk_080DFA90:: @ 080DFA90 + .incbin "baserom.gba", 0x0DFA90, 0x0000068 + +gUnk_080DFAF8:: @ 080DFAF8 + .incbin "baserom.gba", 0x0DFAF8, 0x000000A + +gUnk_080DFB02:: @ 080DFB02 + .incbin "baserom.gba", 0x0DFB02, 0x000002E + +gUnk_080DFB30:: @ 080DFB30 + .incbin "baserom.gba", 0x0DFB30, 0x0000010 + +gUnk_080DFB40:: @ 080DFB40 + .incbin "baserom.gba", 0x0DFB40, 0x0000008 + +gUnk_080DFB48:: @ 080DFB48 + .incbin "baserom.gba", 0x0DFB48, 0x0000020 + +gUnk_080DFB68:: @ 080DFB68 + .incbin "baserom.gba", 0x0DFB68, 0x0000010 + +gUnk_080DFB78:: @ 080DFB78 + .incbin "baserom.gba", 0x0DFB78, 0x0000020 + +gUnk_080DFB98:: @ 080DFB98 + .incbin "baserom.gba", 0x0DFB98, 0x0000010 + +gUnk_080DFBA8:: @ 080DFBA8 + .incbin "baserom.gba", 0x0DFBA8, 0x0000008 + +gUnk_080DFBB0:: @ 080DFBB0 + .incbin "baserom.gba", 0x0DFBB0, 0x0000020 + +gUnk_080DFBD0:: @ 080DFBD0 + .incbin "baserom.gba", 0x0DFBD0, 0x00000A0 + +gUnk_080DFC70:: @ 080DFC70 + .incbin "baserom.gba", 0x0DFC70, 0x0000030 + +gUnk_080DFCA0:: @ 080DFCA0 + .incbin "baserom.gba", 0x0DFCA0, 0x0000010 + +gUnk_080DFCB0:: @ 080DFCB0 + .incbin "baserom.gba", 0x0DFCB0, 0x0000010 + +gUnk_080DFCC0:: @ 080DFCC0 + .incbin "baserom.gba", 0x0DFCC0, 0x0000030 + +gUnk_080DFCF0:: @ 080DFCF0 + .incbin "baserom.gba", 0x0DFCF0, 0x0000002 + +gUnk_080DFCF2:: @ 080DFCF2 + .incbin "baserom.gba", 0x0DFCF2, 0x0000014 + +gUnk_080DFD06:: @ 080DFD06 + .incbin "baserom.gba", 0x0DFD06, 0x000000E + +gUnk_080DFD14:: @ 080DFD14 + .incbin "baserom.gba", 0x0DFD14, 0x0000090 + +gUnk_080DFDA4:: @ 080DFDA4 + .incbin "baserom.gba", 0x0DFDA4, 0x0000030 + +gUnk_080DFDD4:: @ 080DFDD4 + .incbin "baserom.gba", 0x0DFDD4, 0x0000010 + +gUnk_080DFDE4:: @ 080DFDE4 + .incbin "baserom.gba", 0x0DFDE4, 0x0000015 + +gUnk_080DFDF9:: @ 080DFDF9 + .incbin "baserom.gba", 0x0DFDF9, 0x0000013 + +gUnk_080DFE0C:: @ 080DFE0C + .incbin "baserom.gba", 0x0DFE0C, 0x0000090 + +gUnk_080DFE9C:: @ 080DFE9C + .incbin "baserom.gba", 0x0DFE9C, 0x0000024 + +gUnk_080DFEC0:: @ 080DFEC0 + .incbin "baserom.gba", 0x0DFEC0, 0x0000070 + +gUnk_080DFF30:: @ 080DFF30 + .incbin "baserom.gba", 0x0DFF30, 0x0000060 + +gUnk_080DFF90:: @ 080DFF90 + .incbin "baserom.gba", 0x0DFF90, 0x0000069 + +gUnk_080DFFF9:: @ 080DFFF9 + .incbin "baserom.gba", 0x0DFFF9, 0x0000007 + +gUnk_080E0000:: @ 080E0000 + .incbin "baserom.gba", 0x0E0000, 0x0000001 + +gUnk_080E0001:: @ 080E0001 + .incbin "baserom.gba", 0x0E0001, 0x000000D + +gUnk_080E000E:: @ 080E000E + .incbin "baserom.gba", 0x0E000E, 0x0000022 + +gUnk_080E0030:: @ 080E0030 + .incbin "baserom.gba", 0x0E0030, 0x0000002 + +gUnk_080E0032:: @ 080E0032 + .incbin "baserom.gba", 0x0E0032, 0x0000016 + +gUnk_080E0048:: @ 080E0048 + .incbin "baserom.gba", 0x0E0048, 0x0000020 + +gUnk_080E0068:: @ 080E0068 + .incbin "baserom.gba", 0x0E0068, 0x0000017 + +gUnk_080E007F:: @ 080E007F + .incbin "baserom.gba", 0x0E007F, 0x0000069 + +gUnk_080E00E8:: @ 080E00E8 + .incbin "baserom.gba", 0x0E00E8, 0x0000005 + +gUnk_080E00ED:: @ 080E00ED + .incbin "baserom.gba", 0x0E00ED, 0x0000006 + +gUnk_080E00F3:: @ 080E00F3 + .incbin "baserom.gba", 0x0E00F3, 0x000001F + +gUnk_080E0112:: @ 080E0112 + .incbin "baserom.gba", 0x0E0112, 0x0000016 + +gUnk_080E0128:: @ 080E0128 + .incbin "baserom.gba", 0x0E0128, 0x0000010 + +gUnk_080E0138:: @ 080E0138 + .incbin "baserom.gba", 0x0E0138, 0x0000010 + +gUnk_080E0148:: @ 080E0148 + .incbin "baserom.gba", 0x0E0148, 0x0000040 + +gUnk_080E0188:: @ 080E0188 + .incbin "baserom.gba", 0x0E0188, 0x0000024 + +gUnk_080E01AC:: @ 080E01AC + .incbin "baserom.gba", 0x0E01AC, 0x000003C + +gUnk_080E01E8:: @ 080E01E8 + .incbin "baserom.gba", 0x0E01E8, 0x0000009 + +gUnk_080E01F1:: @ 080E01F1 + .incbin "baserom.gba", 0x0E01F1, 0x0000004 + +gUnk_080E01F5:: @ 080E01F5 + .incbin "baserom.gba", 0x0E01F5, 0x000001B + +gUnk_080E0210:: @ 080E0210 + .incbin "baserom.gba", 0x0E0210, 0x000004C + +gUnk_080E025C:: @ 080E025C + .incbin "baserom.gba", 0x0E025C, 0x0000070 + +gUnk_080E02CC:: @ 080E02CC + .incbin "baserom.gba", 0x0E02CC, 0x0000027 + +gUnk_080E02F3:: @ 080E02F3 + .incbin "baserom.gba", 0x0E02F3, 0x000000C + +gUnk_080E02FF:: @ 080E02FF + .incbin "baserom.gba", 0x0E02FF, 0x000004D + +gUnk_080E034C:: @ 080E034C + .incbin "baserom.gba", 0x0E034C, 0x0000010 + +gUnk_080E035C:: @ 080E035C + .incbin "baserom.gba", 0x0E035C, 0x0000020 + +gUnk_080E037C:: @ 080E037C + .incbin "baserom.gba", 0x0E037C, 0x000007E + +gUnk_080E03FA:: @ 080E03FA + .incbin "baserom.gba", 0x0E03FA, 0x0000032 + +gUnk_080E042C:: @ 080E042C + .incbin "baserom.gba", 0x0E042C, 0x0000040 + +gUnk_080E046C:: @ 080E046C + .incbin "baserom.gba", 0x0E046C, 0x0000020 + +gUnk_080E048C:: @ 080E048C + .incbin "baserom.gba", 0x0E048C, 0x0000010 + +gUnk_080E049C:: @ 080E049C + .incbin "baserom.gba", 0x0E049C, 0x0000010 + +gUnk_080E04AC:: @ 080E04AC + .incbin "baserom.gba", 0x0E04AC, 0x0000016 + +gUnk_080E04C2:: @ 080E04C2 + .incbin "baserom.gba", 0x0E04C2, 0x000000E + +gUnk_080E04D0:: @ 080E04D0 + .incbin "baserom.gba", 0x0E04D0, 0x0000031 + +gUnk_080E0501:: @ 080E0501 + .incbin "baserom.gba", 0x0E0501, 0x0000007 + +gUnk_080E0508:: @ 080E0508 + .incbin "baserom.gba", 0x0E0508, 0x0000098 + +gUnk_080E05A0:: @ 080E05A0 + .incbin "baserom.gba", 0x0E05A0, 0x0000057 + +gUnk_080E05F7:: @ 080E05F7 + .incbin "baserom.gba", 0x0E05F7, 0x0000005 + +gUnk_080E05FC:: @ 080E05FC + .incbin "baserom.gba", 0x0E05FC, 0x000000A + +gUnk_080E0606:: @ 080E0606 + .incbin "baserom.gba", 0x0E0606, 0x000007A + +gUnk_080E0680:: @ 080E0680 + .incbin "baserom.gba", 0x0E0680, 0x000006C + +gUnk_080E06EC:: @ 080E06EC + .incbin "baserom.gba", 0x0E06EC, 0x0000005 + +gUnk_080E06F1:: @ 080E06F1 + .incbin "baserom.gba", 0x0E06F1, 0x0000014 + +gUnk_080E0705:: @ 080E0705 + .incbin "baserom.gba", 0x0E0705, 0x000004B + +gUnk_080E0750:: @ 080E0750 + .incbin "baserom.gba", 0x0E0750, 0x0000020 + +gUnk_080E0770:: @ 080E0770 + .incbin "baserom.gba", 0x0E0770, 0x0000020 + +gUnk_080E0790:: @ 080E0790 + .incbin "baserom.gba", 0x0E0790, 0x0000050 + +gUnk_080E07E0:: @ 080E07E0 + .incbin "baserom.gba", 0x0E07E0, 0x000001C + +gUnk_080E07FC:: @ 080E07FC + .incbin "baserom.gba", 0x0E07FC, 0x0000004 + +gUnk_080E0800:: @ 080E0800 + .incbin "baserom.gba", 0x0E0800, 0x0000004 + +gUnk_080E0804:: @ 080E0804 + .incbin "baserom.gba", 0x0E0804, 0x0000001 + +gUnk_080E0805:: @ 080E0805 + .incbin "baserom.gba", 0x0E0805, 0x0000007 + +gUnk_080E080C:: @ 080E080C + .incbin "baserom.gba", 0x0E080C, 0x0000004 + +gUnk_080E0810:: @ 080E0810 + .incbin "baserom.gba", 0x0E0810, 0x0000018 + +gUnk_080E0828:: @ 080E0828 + .incbin "baserom.gba", 0x0E0828, 0x0000050 + +gUnk_080E0878:: @ 080E0878 + .incbin "baserom.gba", 0x0E0878, 0x0000024 + +gUnk_080E089C:: @ 080E089C + .incbin "baserom.gba", 0x0E089C, 0x0000061 + +gUnk_080E08FD:: @ 080E08FD + .incbin "baserom.gba", 0x0E08FD, 0x0000004 + +gUnk_080E0901:: @ 080E0901 + .incbin "baserom.gba", 0x0E0901, 0x0000001 + +gUnk_080E0902:: @ 080E0902 + .incbin "baserom.gba", 0x0E0902, 0x000003A + +gUnk_080E093C:: @ 080E093C + .incbin "baserom.gba", 0x0E093C, 0x0000030 + +gUnk_080E096C:: @ 080E096C + .incbin "baserom.gba", 0x0E096C, 0x0000050 + +gUnk_080E09BC:: @ 080E09BC + .incbin "baserom.gba", 0x0E09BC, 0x0000020 + +gUnk_080E09DC:: @ 080E09DC + .incbin "baserom.gba", 0x0E09DC, 0x0000020 + +gUnk_080E09FC:: @ 080E09FC + .incbin "baserom.gba", 0x0E09FC, 0x0000002 + +gUnk_080E09FE:: @ 080E09FE + .incbin "baserom.gba", 0x0E09FE, 0x0000003 + +gUnk_080E0A01:: @ 080E0A01 + .incbin "baserom.gba", 0x0E0A01, 0x0000001 + +gUnk_080E0A02:: @ 080E0A02 + .incbin "baserom.gba", 0x0E0A02, 0x0000006 + +gUnk_080E0A08:: @ 080E0A08 + .incbin "baserom.gba", 0x0E0A08, 0x000000F + +gUnk_080E0A17:: @ 080E0A17 + .incbin "baserom.gba", 0x0E0A17, 0x0000009 + +gUnk_080E0A20:: @ 080E0A20 + .incbin "baserom.gba", 0x0E0A20, 0x0000024 + +gUnk_080E0A44:: @ 080E0A44 + .incbin "baserom.gba", 0x0E0A44, 0x00000BE + +gUnk_080E0B02:: @ 080E0B02 + .incbin "baserom.gba", 0x0E0B02, 0x0000002 + +gUnk_080E0B04:: @ 080E0B04 + .incbin "baserom.gba", 0x0E0B04, 0x0000009 + +gUnk_080E0B0D:: @ 080E0B0D + .incbin "baserom.gba", 0x0E0B0D, 0x0000017 + +gUnk_080E0B24:: @ 080E0B24 + .incbin "baserom.gba", 0x0E0B24, 0x0000040 + +gUnk_080E0B64:: @ 080E0B64 + .incbin "baserom.gba", 0x0E0B64, 0x0000020 + +gUnk_080E0B84:: @ 080E0B84 + .incbin "baserom.gba", 0x0E0B84, 0x000007A + +gUnk_080E0BFE:: @ 080E0BFE + .incbin "baserom.gba", 0x0E0BFE, 0x000000A + +gUnk_080E0C08:: @ 080E0C08 + .incbin "baserom.gba", 0x0E0C08, 0x0000001 + +gUnk_080E0C09:: @ 080E0C09 + .incbin "baserom.gba", 0x0E0C09, 0x000000B + +gUnk_080E0C14:: @ 080E0C14 + .incbin "baserom.gba", 0x0E0C14, 0x0000024 + +gUnk_080E0C38:: @ 080E0C38 + .incbin "baserom.gba", 0x0E0C38, 0x000008E + +gUnk_080E0CC6:: @ 080E0CC6 + .incbin "baserom.gba", 0x0E0CC6, 0x0000016 + +gUnk_080E0CDC:: @ 080E0CDC + .incbin "baserom.gba", 0x0E0CDC, 0x0000026 + +gUnk_080E0D02:: @ 080E0D02 + .incbin "baserom.gba", 0x0E0D02, 0x0000001 + +gUnk_080E0D03:: @ 080E0D03 + .incbin "baserom.gba", 0x0E0D03, 0x0000002 + +gUnk_080E0D05:: @ 080E0D05 + .incbin "baserom.gba", 0x0E0D05, 0x0000001 + +gUnk_080E0D06:: @ 080E0D06 + .incbin "baserom.gba", 0x0E0D06, 0x0000006 + +gUnk_080E0D0C:: @ 080E0D0C + .incbin "baserom.gba", 0x0E0D0C, 0x000000C + +gUnk_080E0D18:: @ 080E0D18 + .incbin "baserom.gba", 0x0E0D18, 0x0000010 + +gUnk_080E0D28:: @ 080E0D28 + .incbin "baserom.gba", 0x0E0D28, 0x00000B0 + +gUnk_080E0DD8:: @ 080E0DD8 + .incbin "baserom.gba", 0x0E0DD8, 0x0000020 + +gUnk_080E0DF8:: @ 080E0DF8 + .incbin "baserom.gba", 0x0E0DF8, 0x0000008 + +gUnk_080E0E00:: @ 080E0E00 + .incbin "baserom.gba", 0x0E0E00, 0x0000005 + +gUnk_080E0E05:: @ 080E0E05 + .incbin "baserom.gba", 0x0E0E05, 0x0000003 + +gUnk_080E0E08:: @ 080E0E08 + .incbin "baserom.gba", 0x0E0E08, 0x0000003 + +gUnk_080E0E0B:: @ 080E0E0B + .incbin "baserom.gba", 0x0E0E0B, 0x0000001 + +gUnk_080E0E0C:: @ 080E0E0C + .incbin "baserom.gba", 0x0E0E0C, 0x000000A + +gUnk_080E0E16:: @ 080E0E16 + .incbin "baserom.gba", 0x0E0E16, 0x000001E + +gUnk_080E0E34:: @ 080E0E34 + .incbin "baserom.gba", 0x0E0E34, 0x0000028 + +gUnk_080E0E5C:: @ 080E0E5C + .incbin "baserom.gba", 0x0E0E5C, 0x0000080 + +gUnk_080E0EDC:: @ 080E0EDC + .incbin "baserom.gba", 0x0E0EDC, 0x0000010 + +gUnk_080E0EEC:: @ 080E0EEC + .incbin "baserom.gba", 0x0E0EEC, 0x000000F + +gUnk_080E0EFB:: @ 080E0EFB + .incbin "baserom.gba", 0x0E0EFB, 0x0000005 + +gUnk_080E0F00:: @ 080E0F00 + .incbin "baserom.gba", 0x0E0F00, 0x0000008 + +gUnk_080E0F08:: @ 080E0F08 + .incbin "baserom.gba", 0x0E0F08, 0x0000001 + +gUnk_080E0F09:: @ 080E0F09 + .incbin "baserom.gba", 0x0E0F09, 0x0000001 + +gUnk_080E0F0A:: @ 080E0F0A + .incbin "baserom.gba", 0x0E0F0A, 0x0000002 + +gUnk_080E0F0C:: @ 080E0F0C + .incbin "baserom.gba", 0x0E0F0C, 0x0000001 + +gUnk_080E0F0D:: @ 080E0F0D + .incbin "baserom.gba", 0x0E0F0D, 0x0000001 + +gUnk_080E0F0E:: @ 080E0F0E + .incbin "baserom.gba", 0x0E0F0E, 0x0000003 + +gUnk_080E0F11:: @ 080E0F11 + .incbin "baserom.gba", 0x0E0F11, 0x0000001 + +gUnk_080E0F12:: @ 080E0F12 + .incbin "baserom.gba", 0x0E0F12, 0x0000001 + +gUnk_080E0F13:: @ 080E0F13 + .incbin "baserom.gba", 0x0E0F13, 0x0000004 + +gUnk_080E0F17:: @ 080E0F17 + .incbin "baserom.gba", 0x0E0F17, 0x0000001 + +gUnk_080E0F18:: @ 080E0F18 + .incbin "baserom.gba", 0x0E0F18, 0x0000024 + +gUnk_080E0F3C:: @ 080E0F3C + .incbin "baserom.gba", 0x0E0F3C, 0x0000010 + +gUnk_080E0F4C:: @ 080E0F4C + .incbin "baserom.gba", 0x0E0F4C, 0x0000020 + +gUnk_080E0F6C:: @ 080E0F6C + .incbin "baserom.gba", 0x0E0F6C, 0x0000097 + +gUnk_080E1003:: @ 080E1003 + .incbin "baserom.gba", 0x0E1003, 0x0000002 + +gUnk_080E1005:: @ 080E1005 + .incbin "baserom.gba", 0x0E1005, 0x0000003 + +gUnk_080E1008:: @ 080E1008 + .incbin "baserom.gba", 0x0E1008, 0x0000002 + +gUnk_080E100A:: @ 080E100A + .incbin "baserom.gba", 0x0E100A, 0x0000001 + +gUnk_080E100B:: @ 080E100B + .incbin "baserom.gba", 0x0E100B, 0x0000003 + +gUnk_080E100E:: @ 080E100E + .incbin "baserom.gba", 0x0E100E, 0x0000001 + +gUnk_080E100F:: @ 080E100F + .incbin "baserom.gba", 0x0E100F, 0x000000D + +gUnk_080E101C:: @ 080E101C + .incbin "baserom.gba", 0x0E101C, 0x0000008 + +gUnk_080E1024:: @ 080E1024 + .incbin "baserom.gba", 0x0E1024, 0x0000018 + +gUnk_080E103C:: @ 080E103C + .incbin "baserom.gba", 0x0E103C, 0x0000020 + +gUnk_080E105C:: @ 080E105C + .incbin "baserom.gba", 0x0E105C, 0x0000010 + +gUnk_080E106C:: @ 080E106C + .incbin "baserom.gba", 0x0E106C, 0x0000010 + +gUnk_080E107C:: @ 080E107C + .incbin "baserom.gba", 0x0E107C, 0x0000020 + +gUnk_080E109C:: @ 080E109C + .incbin "baserom.gba", 0x0E109C, 0x0000020 + +gUnk_080E10BC:: @ 080E10BC + .incbin "baserom.gba", 0x0E10BC, 0x0000010 + +gUnk_080E10CC:: @ 080E10CC + .incbin "baserom.gba", 0x0E10CC, 0x0000030 + +gUnk_080E10FC:: @ 080E10FC + .incbin "baserom.gba", 0x0E10FC, 0x0000010 + +gUnk_080E110C:: @ 080E110C + .incbin "baserom.gba", 0x0E110C, 0x0000004 + +gUnk_080E1110:: @ 080E1110 + .incbin "baserom.gba", 0x0E1110, 0x0000001 + +gUnk_080E1111:: @ 080E1111 + .incbin "baserom.gba", 0x0E1111, 0x0000001 + +gUnk_080E1112:: @ 080E1112 + .incbin "baserom.gba", 0x0E1112, 0x0000001 + +gUnk_080E1113:: @ 080E1113 + .incbin "baserom.gba", 0x0E1113, 0x0000002 + +gUnk_080E1115:: @ 080E1115 + .incbin "baserom.gba", 0x0E1115, 0x0000002 + +gUnk_080E1117:: @ 080E1117 + .incbin "baserom.gba", 0x0E1117, 0x0000015 + +gUnk_080E112C:: @ 080E112C + .incbin "baserom.gba", 0x0E112C, 0x0000020 + +gUnk_080E114C:: @ 080E114C + .incbin "baserom.gba", 0x0E114C, 0x0000010 + +gUnk_080E115C:: @ 080E115C + .incbin "baserom.gba", 0x0E115C, 0x0000040 + +gUnk_080E119C:: @ 080E119C + .incbin "baserom.gba", 0x0E119C, 0x0000007 + +gUnk_080E11A3:: @ 080E11A3 + .incbin "baserom.gba", 0x0E11A3, 0x0000011 + +gUnk_080E11B4:: @ 080E11B4 + .incbin "baserom.gba", 0x0E11B4, 0x000001E + +gUnk_080E11D2:: @ 080E11D2 + .incbin "baserom.gba", 0x0E11D2, 0x000001E + +gUnk_080E11F0:: @ 080E11F0 + .incbin "baserom.gba", 0x0E11F0, 0x0000019 + +gUnk_080E1209:: @ 080E1209 + .incbin "baserom.gba", 0x0E1209, 0x0000006 + +gUnk_080E120F:: @ 080E120F + .incbin "baserom.gba", 0x0E120F, 0x0000001 + +gUnk_080E1210:: @ 080E1210 + .incbin "baserom.gba", 0x0E1210, 0x0000001 + +gUnk_080E1211:: @ 080E1211 + .incbin "baserom.gba", 0x0E1211, 0x0000001 + +gUnk_080E1212:: @ 080E1212 + .incbin "baserom.gba", 0x0E1212, 0x0000001 + +gUnk_080E1213:: @ 080E1213 + .incbin "baserom.gba", 0x0E1213, 0x0000001 + +gUnk_080E1214:: @ 080E1214 + .incbin "baserom.gba", 0x0E1214, 0x0000001 + +gUnk_080E1215:: @ 080E1215 + .incbin "baserom.gba", 0x0E1215, 0x0000001 + +gUnk_080E1216:: @ 080E1216 + .incbin "baserom.gba", 0x0E1216, 0x0000002 + +gUnk_080E1218:: @ 080E1218 + .incbin "baserom.gba", 0x0E1218, 0x0000001 + +gUnk_080E1219:: @ 080E1219 + .incbin "baserom.gba", 0x0E1219, 0x000004F + +gUnk_080E1268:: @ 080E1268 + .incbin "baserom.gba", 0x0E1268, 0x0000030 + +gUnk_080E1298:: @ 080E1298 + .incbin "baserom.gba", 0x0E1298, 0x0000010 + +gUnk_080E12A8:: @ 080E12A8 + .incbin "baserom.gba", 0x0E12A8, 0x0000018 + +gUnk_080E12C0:: @ 080E12C0 + .incbin "baserom.gba", 0x0E12C0, 0x0000030 + +gUnk_080E12F0:: @ 080E12F0 + .incbin "baserom.gba", 0x0E12F0, 0x000001F + +gUnk_080E130F:: @ 080E130F + .incbin "baserom.gba", 0x0E130F, 0x0000001 + +gUnk_080E1310:: @ 080E1310 + .incbin "baserom.gba", 0x0E1310, 0x0000002 + +gUnk_080E1312:: @ 080E1312 + .incbin "baserom.gba", 0x0E1312, 0x0000002 + +gUnk_080E1314:: @ 080E1314 + .incbin "baserom.gba", 0x0E1314, 0x0000001 + +gUnk_080E1315:: @ 080E1315 + .incbin "baserom.gba", 0x0E1315, 0x0000001 + +gUnk_080E1316:: @ 080E1316 + .incbin "baserom.gba", 0x0E1316, 0x0000001 + +gUnk_080E1317:: @ 080E1317 + .incbin "baserom.gba", 0x0E1317, 0x0000001 + +gUnk_080E1318:: @ 080E1318 + .incbin "baserom.gba", 0x0E1318, 0x0000001 + +gUnk_080E1319:: @ 080E1319 + .incbin "baserom.gba", 0x0E1319, 0x0000001 + +gUnk_080E131A:: @ 080E131A + .incbin "baserom.gba", 0x0E131A, 0x000006A + +gUnk_080E1384:: @ 080E1384 + .incbin "baserom.gba", 0x0E1384, 0x0000030 + +gUnk_080E13B4:: @ 080E13B4 + .incbin "baserom.gba", 0x0E13B4, 0x0000050 + +gUnk_080E1404:: @ 080E1404 + .incbin "baserom.gba", 0x0E1404, 0x000000A + +gUnk_080E140E:: @ 080E140E + .incbin "baserom.gba", 0x0E140E, 0x0000003 + +gUnk_080E1411:: @ 080E1411 + .incbin "baserom.gba", 0x0E1411, 0x0000004 + +gUnk_080E1415:: @ 080E1415 + .incbin "baserom.gba", 0x0E1415, 0x0000001 + +gUnk_080E1416:: @ 080E1416 + .incbin "baserom.gba", 0x0E1416, 0x0000001 + +gUnk_080E1417:: @ 080E1417 + .incbin "baserom.gba", 0x0E1417, 0x0000001 + +gUnk_080E1418:: @ 080E1418 + .incbin "baserom.gba", 0x0E1418, 0x0000001 + +gUnk_080E1419:: @ 080E1419 + .incbin "baserom.gba", 0x0E1419, 0x0000001 + +gUnk_080E141A:: @ 080E141A + .incbin "baserom.gba", 0x0E141A, 0x0000001 + +gUnk_080E141B:: @ 080E141B + .incbin "baserom.gba", 0x0E141B, 0x0000001 + +gUnk_080E141C:: @ 080E141C + .incbin "baserom.gba", 0x0E141C, 0x0000020 + +gUnk_080E143C:: @ 080E143C + .incbin "baserom.gba", 0x0E143C, 0x00000D7 + +gUnk_080E1513:: @ 080E1513 + .incbin "baserom.gba", 0x0E1513, 0x0000002 + +gUnk_080E1515:: @ 080E1515 + .incbin "baserom.gba", 0x0E1515, 0x0000001 + +gUnk_080E1516:: @ 080E1516 + .incbin "baserom.gba", 0x0E1516, 0x0000005 + +gUnk_080E151B:: @ 080E151B + .incbin "baserom.gba", 0x0E151B, 0x0000001 + +gUnk_080E151C:: @ 080E151C + .incbin "baserom.gba", 0x0E151C, 0x0000001 + +gUnk_080E151D:: @ 080E151D + .incbin "baserom.gba", 0x0E151D, 0x000004F + +gUnk_080E156C:: @ 080E156C + .incbin "baserom.gba", 0x0E156C, 0x0000020 + +gUnk_080E158C:: @ 080E158C + .incbin "baserom.gba", 0x0E158C, 0x0000010 + +gUnk_080E159C:: @ 080E159C + .incbin "baserom.gba", 0x0E159C, 0x0000028 + +gUnk_080E15C4:: @ 080E15C4 + .incbin "baserom.gba", 0x0E15C4, 0x0000049 + +gUnk_080E160D:: @ 080E160D + .incbin "baserom.gba", 0x0E160D, 0x0000002 + +gUnk_080E160F:: @ 080E160F + .incbin "baserom.gba", 0x0E160F, 0x0000003 + +gUnk_080E1612:: @ 080E1612 + .incbin "baserom.gba", 0x0E1612, 0x0000003 + +gUnk_080E1615:: @ 080E1615 + .incbin "baserom.gba", 0x0E1615, 0x0000005 + +gUnk_080E161A:: @ 080E161A + .incbin "baserom.gba", 0x0E161A, 0x0000003 + +gUnk_080E161D:: @ 080E161D + .incbin "baserom.gba", 0x0E161D, 0x0000003 + +gUnk_080E1620:: @ 080E1620 + .incbin "baserom.gba", 0x0E1620, 0x0000001 + +gUnk_080E1621:: @ 080E1621 + .incbin "baserom.gba", 0x0E1621, 0x0000053 + +gUnk_080E1674:: @ 080E1674 + .incbin "baserom.gba", 0x0E1674, 0x0000036 + +gUnk_080E16AA:: @ 080E16AA + .incbin "baserom.gba", 0x0E16AA, 0x0000024 + +gUnk_080E16CE:: @ 080E16CE + .incbin "baserom.gba", 0x0E16CE, 0x000001E + +gUnk_080E16EC:: @ 080E16EC + .incbin "baserom.gba", 0x0E16EC, 0x000001E + +gUnk_080E170A:: @ 080E170A + .incbin "baserom.gba", 0x0E170A, 0x0000007 + +gUnk_080E1711:: @ 080E1711 + .incbin "baserom.gba", 0x0E1711, 0x0000007 + +gUnk_080E1718:: @ 080E1718 + .incbin "baserom.gba", 0x0E1718, 0x0000005 + +gUnk_080E171D:: @ 080E171D + .incbin "baserom.gba", 0x0E171D, 0x0000002 + +gUnk_080E171F:: @ 080E171F + .incbin "baserom.gba", 0x0E171F, 0x0000002 + +gUnk_080E1721:: @ 080E1721 + .incbin "baserom.gba", 0x0E1721, 0x0000007 + +gUnk_080E1728:: @ 080E1728 + .incbin "baserom.gba", 0x0E1728, 0x0000024 + +gUnk_080E174C:: @ 080E174C + .incbin "baserom.gba", 0x0E174C, 0x0000010 + +gUnk_080E175C:: @ 080E175C + .incbin "baserom.gba", 0x0E175C, 0x0000010 + +gUnk_080E176C:: @ 080E176C + .incbin "baserom.gba", 0x0E176C, 0x0000010 + +gUnk_080E177C:: @ 080E177C + .incbin "baserom.gba", 0x0E177C, 0x0000008 + +gUnk_080E1784:: @ 080E1784 + .incbin "baserom.gba", 0x0E1784, 0x0000020 + +gUnk_080E17A4:: @ 080E17A4 + .incbin "baserom.gba", 0x0E17A4, 0x0000040 + +gUnk_080E17E4:: @ 080E17E4 + .incbin "baserom.gba", 0x0E17E4, 0x000002B + +gUnk_080E180F:: @ 080E180F + .incbin "baserom.gba", 0x0E180F, 0x0000005 + +gUnk_080E1814:: @ 080E1814 + .incbin "baserom.gba", 0x0E1814, 0x0000005 + +gUnk_080E1819:: @ 080E1819 + .incbin "baserom.gba", 0x0E1819, 0x0000008 + +gUnk_080E1821:: @ 080E1821 + .incbin "baserom.gba", 0x0E1821, 0x0000003 + +gUnk_080E1824:: @ 080E1824 + .incbin "baserom.gba", 0x0E1824, 0x0000020 + +gUnk_080E1844:: @ 080E1844 + .incbin "baserom.gba", 0x0E1844, 0x0000020 + +gUnk_080E1864:: @ 080E1864 + .incbin "baserom.gba", 0x0E1864, 0x0000010 + +gUnk_080E1874:: @ 080E1874 + .incbin "baserom.gba", 0x0E1874, 0x000002C + +gUnk_080E18A0:: @ 080E18A0 + .incbin "baserom.gba", 0x0E18A0, 0x0000053 + +gUnk_080E18F3:: @ 080E18F3 + .incbin "baserom.gba", 0x0E18F3, 0x000002E + +gUnk_080E1921:: @ 080E1921 + .incbin "baserom.gba", 0x0E1921, 0x0000001 + +gUnk_080E1922:: @ 080E1922 + .incbin "baserom.gba", 0x0E1922, 0x000000E + +gUnk_080E1930:: @ 080E1930 + .incbin "baserom.gba", 0x0E1930, 0x0000010 + +gUnk_080E1940:: @ 080E1940 + .incbin "baserom.gba", 0x0E1940, 0x0000018 + +gUnk_080E1958:: @ 080E1958 + .incbin "baserom.gba", 0x0E1958, 0x0000040 + +gUnk_080E1998:: @ 080E1998 + .incbin "baserom.gba", 0x0E1998, 0x0000024 + +gUnk_080E19BC:: @ 080E19BC + .incbin "baserom.gba", 0x0E19BC, 0x0000042 + +gUnk_080E19FE:: @ 080E19FE + .incbin "baserom.gba", 0x0E19FE, 0x000001B + +gUnk_080E1A19:: @ 080E1A19 + .incbin "baserom.gba", 0x0E1A19, 0x0000001 + +gUnk_080E1A1A:: @ 080E1A1A + .incbin "baserom.gba", 0x0E1A1A, 0x0000005 + +gUnk_080E1A1F:: @ 080E1A1F + .incbin "baserom.gba", 0x0E1A1F, 0x0000002 + +gUnk_080E1A21:: @ 080E1A21 + .incbin "baserom.gba", 0x0E1A21, 0x000006B + +gUnk_080E1A8C:: @ 080E1A8C + .incbin "baserom.gba", 0x0E1A8C, 0x0000030 + +gUnk_080E1ABC:: @ 080E1ABC + .incbin "baserom.gba", 0x0E1ABC, 0x0000010 + +gUnk_080E1ACC:: @ 080E1ACC + .incbin "baserom.gba", 0x0E1ACC, 0x0000020 + +gUnk_080E1AEC:: @ 080E1AEC + .incbin "baserom.gba", 0x0E1AEC, 0x000001C + +gUnk_080E1B08:: @ 080E1B08 + .incbin "baserom.gba", 0x0E1B08, 0x000000F + +gUnk_080E1B17:: @ 080E1B17 + .incbin "baserom.gba", 0x0E1B17, 0x000000C + +gUnk_080E1B23:: @ 080E1B23 + .incbin "baserom.gba", 0x0E1B23, 0x0000002 + +gUnk_080E1B25:: @ 080E1B25 + .incbin "baserom.gba", 0x0E1B25, 0x000000E + +gUnk_080E1B33:: @ 080E1B33 + .incbin "baserom.gba", 0x0E1B33, 0x00000E0 + +gUnk_080E1C13:: @ 080E1C13 + .incbin "baserom.gba", 0x0E1C13, 0x00000D9 + +gUnk_080E1CEC:: @ 080E1CEC + .incbin "baserom.gba", 0x0E1CEC, 0x0000030 + +gUnk_080E1D1C:: @ 080E1D1C + .incbin "baserom.gba", 0x0E1D1C, 0x000000D + +gUnk_080E1D29:: @ 080E1D29 + .incbin "baserom.gba", 0x0E1D29, 0x0000001 + +gUnk_080E1D2A:: @ 080E1D2A + .incbin "baserom.gba", 0x0E1D2A, 0x0000003 + +gUnk_080E1D2D:: @ 080E1D2D + .incbin "baserom.gba", 0x0E1D2D, 0x000001F + +gUnk_080E1D4C:: @ 080E1D4C + .incbin "baserom.gba", 0x0E1D4C, 0x0000010 + +gUnk_080E1D5C:: @ 080E1D5C + .incbin "baserom.gba", 0x0E1D5C, 0x0000014 + +gUnk_080E1D70:: @ 080E1D70 + .incbin "baserom.gba", 0x0E1D70, 0x0000014 + +gUnk_080E1D84:: @ 080E1D84 + .incbin "baserom.gba", 0x0E1D84, 0x0000028 + +gUnk_080E1DAC:: @ 080E1DAC + .incbin "baserom.gba", 0x0E1DAC, 0x0000120 + +gUnk_080E1ECC:: @ 080E1ECC + .incbin "baserom.gba", 0x0E1ECC, 0x0000010 + +gUnk_080E1EDC:: @ 080E1EDC + .incbin "baserom.gba", 0x0E1EDC, 0x0000010 + +gUnk_080E1EEC:: @ 080E1EEC + .incbin "baserom.gba", 0x0E1EEC, 0x000001D + +gUnk_080E1F09:: @ 080E1F09 + .incbin "baserom.gba", 0x0E1F09, 0x0000001 + +gUnk_080E1F0A:: @ 080E1F0A + .incbin "baserom.gba", 0x0E1F0A, 0x000001C + +gUnk_080E1F26:: @ 080E1F26 + .incbin "baserom.gba", 0x0E1F26, 0x0000002 + +gUnk_080E1F28:: @ 080E1F28 + .incbin "baserom.gba", 0x0E1F28, 0x0000020 + +gUnk_080E1F48:: @ 080E1F48 + .incbin "baserom.gba", 0x0E1F48, 0x000002C + +gUnk_080E1F74:: @ 080E1F74 + .incbin "baserom.gba", 0x0E1F74, 0x0000093 + +gUnk_080E2007:: @ 080E2007 + .incbin "baserom.gba", 0x0E2007, 0x000008D + +gUnk_080E2094:: @ 080E2094 + .incbin "baserom.gba", 0x0E2094, 0x0000040 + +gUnk_080E20D4:: @ 080E20D4 + .incbin "baserom.gba", 0x0E20D4, 0x0000010 + +gUnk_080E20E4:: @ 080E20E4 + .incbin "baserom.gba", 0x0E20E4, 0x0000020 + +gUnk_080E2104:: @ 080E2104 + .incbin "baserom.gba", 0x0E2104, 0x0000014 + +gUnk_080E2118:: @ 080E2118 + .incbin "baserom.gba", 0x0E2118, 0x0000004 + +gUnk_080E211C:: @ 080E211C + .incbin "baserom.gba", 0x0E211C, 0x0000006 + +gUnk_080E2122:: @ 080E2122 + .incbin "baserom.gba", 0x0E2122, 0x0000003 + +gUnk_080E2125:: @ 080E2125 + .incbin "baserom.gba", 0x0E2125, 0x0000007 + +gUnk_080E212C:: @ 080E212C + .incbin "baserom.gba", 0x0E212C, 0x000000B + +gUnk_080E2137:: @ 080E2137 + .incbin "baserom.gba", 0x0E2137, 0x0000021 + +gUnk_080E2158:: @ 080E2158 + .incbin "baserom.gba", 0x0E2158, 0x0000120 + +gUnk_080E2278:: @ 080E2278 + .incbin "baserom.gba", 0x0E2278, 0x0000030 + +gUnk_080E22A8:: @ 080E22A8 + .incbin "baserom.gba", 0x0E22A8, 0x0000010 + +gUnk_080E22B8:: @ 080E22B8 + .incbin "baserom.gba", 0x0E22B8, 0x0000018 + +gUnk_080E22D0:: @ 080E22D0 + .incbin "baserom.gba", 0x0E22D0, 0x0000040 + +gUnk_080E2310:: @ 080E2310 + .incbin "baserom.gba", 0x0E2310, 0x0000024 + +gUnk_080E2334:: @ 080E2334 + .incbin "baserom.gba", 0x0E2334, 0x0000001 + +gUnk_080E2335:: @ 080E2335 + .incbin "baserom.gba", 0x0E2335, 0x000009F + +gUnk_080E23D4:: @ 080E23D4 + .incbin "baserom.gba", 0x0E23D4, 0x0000020 + +gUnk_080E23F4:: @ 080E23F4 + .incbin "baserom.gba", 0x0E23F4, 0x0000020 + +gUnk_080E2414:: @ 080E2414 + .incbin "baserom.gba", 0x0E2414, 0x0000010 + +gUnk_080E2424:: @ 080E2424 + .incbin "baserom.gba", 0x0E2424, 0x0000020 + +gUnk_080E2444:: @ 080E2444 + .incbin "baserom.gba", 0x0E2444, 0x00000E0 + +gUnk_080E2524:: @ 080E2524 + .incbin "baserom.gba", 0x0E2524, 0x000000A + +gUnk_080E252E:: @ 080E252E + .incbin "baserom.gba", 0x0E252E, 0x0000001 + +gUnk_080E252F:: @ 080E252F + .incbin "baserom.gba", 0x0E252F, 0x0000005 + +gUnk_080E2534:: @ 080E2534 + .incbin "baserom.gba", 0x0E2534, 0x0000010 + +gUnk_080E2544:: @ 080E2544 + .incbin "baserom.gba", 0x0E2544, 0x0000020 + +gUnk_080E2564:: @ 080E2564 + .incbin "baserom.gba", 0x0E2564, 0x0000024 + +gUnk_080E2588:: @ 080E2588 + .incbin "baserom.gba", 0x0E2588, 0x00000F0 + +gUnk_080E2678:: @ 080E2678 + .incbin "baserom.gba", 0x0E2678, 0x0000020 + +gUnk_080E2698:: @ 080E2698 + .incbin "baserom.gba", 0x0E2698, 0x0000010 + +gUnk_080E26A8:: @ 080E26A8 + .incbin "baserom.gba", 0x0E26A8, 0x0000010 + +gUnk_080E26B8:: @ 080E26B8 + .incbin "baserom.gba", 0x0E26B8, 0x0000040 + +gUnk_080E26F8:: @ 080E26F8 + .incbin "baserom.gba", 0x0E26F8, 0x0000014 + +gUnk_080E270C:: @ 080E270C + .incbin "baserom.gba", 0x0E270C, 0x0000010 + +gUnk_080E271C:: @ 080E271C + .incbin "baserom.gba", 0x0E271C, 0x0000110 + +gUnk_080E282C:: @ 080E282C + .incbin "baserom.gba", 0x0E282C, 0x0000019 + +gUnk_080E2845:: @ 080E2845 + .incbin "baserom.gba", 0x0E2845, 0x0000027 + +gUnk_080E286C:: @ 080E286C + .incbin "baserom.gba", 0x0E286C, 0x0000050 + +gUnk_080E28BC:: @ 080E28BC + .incbin "baserom.gba", 0x0E28BC, 0x0000010 + +gUnk_080E28CC:: @ 080E28CC + .incbin "baserom.gba", 0x0E28CC, 0x0000020 + +gUnk_080E28EC:: @ 080E28EC + .incbin "baserom.gba", 0x0E28EC, 0x0000024 + +gUnk_080E2910:: @ 080E2910 + .incbin "baserom.gba", 0x0E2910, 0x0000030 + +gUnk_080E2940:: @ 080E2940 + .incbin "baserom.gba", 0x0E2940, 0x0000030 + +gUnk_080E2970:: @ 080E2970 + .incbin "baserom.gba", 0x0E2970, 0x0000050 + +gUnk_080E29C0:: @ 080E29C0 + .incbin "baserom.gba", 0x0E29C0, 0x0000010 + +gUnk_080E29D0:: @ 080E29D0 + .incbin "baserom.gba", 0x0E29D0, 0x0000036 + +gUnk_080E2A06:: @ 080E2A06 + .incbin "baserom.gba", 0x0E2A06, 0x0000036 + +gUnk_080E2A3C:: @ 080E2A3C + .incbin "baserom.gba", 0x0E2A3C, 0x0000036 + +gUnk_080E2A72:: @ 080E2A72 + .incbin "baserom.gba", 0x0E2A72, 0x0000036 + +gUnk_080E2AA8:: @ 080E2AA8 + .incbin "baserom.gba", 0x0E2AA8, 0x0000030 + +gUnk_080E2AD8:: @ 080E2AD8 + .incbin "baserom.gba", 0x0E2AD8, 0x0000038 + +gUnk_080E2B10:: @ 080E2B10 + .incbin "baserom.gba", 0x0E2B10, 0x0000098 + +gUnk_080E2BA8:: @ 080E2BA8 + .incbin "baserom.gba", 0x0E2BA8, 0x0000010 + +gUnk_080E2BB8:: @ 080E2BB8 + .incbin "baserom.gba", 0x0E2BB8, 0x0000010 + +gUnk_080E2BC8:: @ 080E2BC8 + .incbin "baserom.gba", 0x0E2BC8, 0x0000020 + +gUnk_080E2BE8:: @ 080E2BE8 + .incbin "baserom.gba", 0x0E2BE8, 0x0000020 + +gUnk_080E2C08:: @ 080E2C08 + .incbin "baserom.gba", 0x0E2C08, 0x0000028 + +gUnk_080E2C30:: @ 080E2C30 + .incbin "baserom.gba", 0x0E2C30, 0x0000090 + +gUnk_080E2CC0:: @ 080E2CC0 + .incbin "baserom.gba", 0x0E2CC0, 0x0000020 + +gUnk_080E2CE0:: @ 080E2CE0 + .incbin "baserom.gba", 0x0E2CE0, 0x0000010 + +gUnk_080E2CF0:: @ 080E2CF0 + .incbin "baserom.gba", 0x0E2CF0, 0x0000010 + +gUnk_080E2D00:: @ 080E2D00 + .incbin "baserom.gba", 0x0E2D00, 0x0000060 + +gUnk_080E2D60:: @ 080E2D60 + .incbin "baserom.gba", 0x0E2D60, 0x0000024 + +gUnk_080E2D84:: @ 080E2D84 + .incbin "baserom.gba", 0x0E2D84, 0x00000B0 + +gUnk_080E2E34:: @ 080E2E34 + .incbin "baserom.gba", 0x0E2E34, 0x0000010 + +gUnk_080E2E44:: @ 080E2E44 + .incbin "baserom.gba", 0x0E2E44, 0x0000018 + +gUnk_080E2E5C:: @ 080E2E5C + .incbin "baserom.gba", 0x0E2E5C, 0x0000020 + +gUnk_080E2E7C:: @ 080E2E7C + .incbin "baserom.gba", 0x0E2E7C, 0x0000100 + +gUnk_080E2F7C:: @ 080E2F7C + .incbin "baserom.gba", 0x0E2F7C, 0x0000080 + +gUnk_080E2FFC:: @ 080E2FFC + .incbin "baserom.gba", 0x0E2FFC, 0x0000018 + +gUnk_080E3014:: @ 080E3014 + .incbin "baserom.gba", 0x0E3014, 0x0000020 + +gUnk_080E3034:: @ 080E3034 + .incbin "baserom.gba", 0x0E3034, 0x0000020 + +gUnk_080E3054:: @ 080E3054 + .incbin "baserom.gba", 0x0E3054, 0x0000028 + +gUnk_080E307C:: @ 080E307C + .incbin "baserom.gba", 0x0E307C, 0x0000060 + +gUnk_080E30DC:: @ 080E30DC + .incbin "baserom.gba", 0x0E30DC, 0x0000030 + +gUnk_080E310C:: @ 080E310C + .incbin "baserom.gba", 0x0E310C, 0x0000010 + +gUnk_080E311C:: @ 080E311C + .incbin "baserom.gba", 0x0E311C, 0x0000014 + +gUnk_080E3130:: @ 080E3130 + .incbin "baserom.gba", 0x0E3130, 0x0000024 + +gUnk_080E3154:: @ 080E3154 + .incbin "baserom.gba", 0x0E3154, 0x0000020 + +gUnk_080E3174:: @ 080E3174 + .incbin "baserom.gba", 0x0E3174, 0x0000020 + +gUnk_080E3194:: @ 080E3194 + .incbin "baserom.gba", 0x0E3194, 0x0000010 + +gUnk_080E31A4:: @ 080E31A4 + .incbin "baserom.gba", 0x0E31A4, 0x0000018 + +gUnk_080E31BC:: @ 080E31BC + .incbin "baserom.gba", 0x0E31BC, 0x0000020 + +gUnk_080E31DC:: @ 080E31DC + .incbin "baserom.gba", 0x0E31DC, 0x0000010 + +gUnk_080E31EC:: @ 080E31EC + .incbin "baserom.gba", 0x0E31EC, 0x0000020 + +gUnk_080E320C:: @ 080E320C + .incbin "baserom.gba", 0x0E320C, 0x0000050 + +gUnk_080E325C:: @ 080E325C + .incbin "baserom.gba", 0x0E325C, 0x0000010 + +gUnk_080E326C:: @ 080E326C + .incbin "baserom.gba", 0x0E326C, 0x0000020 + +gUnk_080E328C:: @ 080E328C + .incbin "baserom.gba", 0x0E328C, 0x0000030 + +gUnk_080E32BC:: @ 080E32BC + .incbin "baserom.gba", 0x0E32BC, 0x00000E0 + +gUnk_080E339C:: @ 080E339C + .incbin "baserom.gba", 0x0E339C, 0x0000020 + +gUnk_080E33BC:: @ 080E33BC + .incbin "baserom.gba", 0x0E33BC, 0x0000020 + +gUnk_080E33DC:: @ 080E33DC + .incbin "baserom.gba", 0x0E33DC, 0x0000020 + +gUnk_080E33FC:: @ 080E33FC + .incbin "baserom.gba", 0x0E33FC, 0x0000050 + +gUnk_080E344C:: @ 080E344C + .incbin "baserom.gba", 0x0E344C, 0x0000010 + +gUnk_080E345C:: @ 080E345C + .incbin "baserom.gba", 0x0E345C, 0x0000010 + +gUnk_080E346C:: @ 080E346C + .incbin "baserom.gba", 0x0E346C, 0x0000010 + +gUnk_080E347C:: @ 080E347C + .incbin "baserom.gba", 0x0E347C, 0x0000020 + +gUnk_080E349C:: @ 080E349C + .incbin "baserom.gba", 0x0E349C, 0x0000060 + +gUnk_080E34FC:: @ 080E34FC + .incbin "baserom.gba", 0x0E34FC, 0x0000010 + +gUnk_080E350C:: @ 080E350C + .incbin "baserom.gba", 0x0E350C, 0x0000010 + +gUnk_080E351C:: @ 080E351C + .incbin "baserom.gba", 0x0E351C, 0x0000020 + +gUnk_080E353C:: @ 080E353C + .incbin "baserom.gba", 0x0E353C, 0x0000030 + +gUnk_080E356C:: @ 080E356C + .incbin "baserom.gba", 0x0E356C, 0x0000010 + +gUnk_080E357C:: @ 080E357C + .incbin "baserom.gba", 0x0E357C, 0x0000010 + +gUnk_080E358C:: @ 080E358C + .incbin "baserom.gba", 0x0E358C, 0x0000020 + +gUnk_080E35AC:: @ 080E35AC + .incbin "baserom.gba", 0x0E35AC, 0x0000050 + +gUnk_080E35FC:: @ 080E35FC + .incbin "baserom.gba", 0x0E35FC, 0x0000050 + +gUnk_080E364C:: @ 080E364C + .incbin "baserom.gba", 0x0E364C, 0x0000018 + +gUnk_080E3664:: @ 080E3664 + .incbin "baserom.gba", 0x0E3664, 0x0000030 + +gUnk_080E3694:: @ 080E3694 + .incbin "baserom.gba", 0x0E3694, 0x0000024 + +gUnk_080E36B8:: @ 080E36B8 + .incbin "baserom.gba", 0x0E36B8, 0x0000040 + +gUnk_080E36F8:: @ 080E36F8 + .incbin "baserom.gba", 0x0E36F8, 0x0000020 + +gUnk_080E3718:: @ 080E3718 + .incbin "baserom.gba", 0x0E3718, 0x0000010 + +gUnk_080E3728:: @ 080E3728 + .incbin "baserom.gba", 0x0E3728, 0x0000020 + +gUnk_080E3748:: @ 080E3748 + .incbin "baserom.gba", 0x0E3748, 0x0000020 + +gUnk_080E3768:: @ 080E3768 + .incbin "baserom.gba", 0x0E3768, 0x0000020 + +gUnk_080E3788:: @ 080E3788 + .incbin "baserom.gba", 0x0E3788, 0x0000008 + +gUnk_080E3790:: @ 080E3790 + .incbin "baserom.gba", 0x0E3790, 0x0000020 + +gUnk_080E37B0:: @ 080E37B0 + .incbin "baserom.gba", 0x0E37B0, 0x00000A0 + +gUnk_080E3850:: @ 080E3850 + .incbin "baserom.gba", 0x0E3850, 0x0000020 + +gUnk_080E3870:: @ 080E3870 + .incbin "baserom.gba", 0x0E3870, 0x0000030 + +gUnk_080E38A0:: @ 080E38A0 + .incbin "baserom.gba", 0x0E38A0, 0x0000010 + +gUnk_080E38B0:: @ 080E38B0 + .incbin "baserom.gba", 0x0E38B0, 0x0000010 + +gUnk_080E38C0:: @ 080E38C0 + .incbin "baserom.gba", 0x0E38C0, 0x0000020 + +gUnk_080E38E0:: @ 080E38E0 + .incbin "baserom.gba", 0x0E38E0, 0x0000040 + +gUnk_080E3920:: @ 080E3920 + .incbin "baserom.gba", 0x0E3920, 0x0000040 + +gUnk_080E3960:: @ 080E3960 + .incbin "baserom.gba", 0x0E3960, 0x0000010 + +gUnk_080E3970:: @ 080E3970 + .incbin "baserom.gba", 0x0E3970, 0x0000020 + +gUnk_080E3990:: @ 080E3990 + .incbin "baserom.gba", 0x0E3990, 0x0000060 + +gUnk_080E39F0:: @ 080E39F0 + .incbin "baserom.gba", 0x0E39F0, 0x0000090 + +gUnk_080E3A80:: @ 080E3A80 + .incbin "baserom.gba", 0x0E3A80, 0x0000010 + +gUnk_080E3A90:: @ 080E3A90 + .incbin "baserom.gba", 0x0E3A90, 0x0000020 + +gUnk_080E3AB0:: @ 080E3AB0 + .incbin "baserom.gba", 0x0E3AB0, 0x0000040 + +gUnk_080E3AF0:: @ 080E3AF0 + .incbin "baserom.gba", 0x0E3AF0, 0x0000040 + +gUnk_080E3B30:: @ 080E3B30 + .incbin "baserom.gba", 0x0E3B30, 0x0000010 + +gUnk_080E3B40:: @ 080E3B40 + .incbin "baserom.gba", 0x0E3B40, 0x0000020 + +gUnk_080E3B60:: @ 080E3B60 + .incbin "baserom.gba", 0x0E3B60, 0x0000110 + +gUnk_080E3C70:: @ 080E3C70 + .incbin "baserom.gba", 0x0E3C70, 0x0000010 + +gUnk_080E3C80:: @ 080E3C80 + .incbin "baserom.gba", 0x0E3C80, 0x0000010 + +gUnk_080E3C90:: @ 080E3C90 + .incbin "baserom.gba", 0x0E3C90, 0x0000020 + +gUnk_080E3CB0:: @ 080E3CB0 + .incbin "baserom.gba", 0x0E3CB0, 0x0000010 + +gUnk_080E3CC0:: @ 080E3CC0 + .incbin "baserom.gba", 0x0E3CC0, 0x0000020 + +gUnk_080E3CE0:: @ 080E3CE0 + .incbin "baserom.gba", 0x0E3CE0, 0x0000030 + +gUnk_080E3D10:: @ 080E3D10 + .incbin "baserom.gba", 0x0E3D10, 0x0000010 + +gUnk_080E3D20:: @ 080E3D20 + .incbin "baserom.gba", 0x0E3D20, 0x0000020 + +gUnk_080E3D40:: @ 080E3D40 + .incbin "baserom.gba", 0x0E3D40, 0x0000070 + +gUnk_080E3DB0:: @ 080E3DB0 + .incbin "baserom.gba", 0x0E3DB0, 0x0000040 + +gUnk_080E3DF0:: @ 080E3DF0 + .incbin "baserom.gba", 0x0E3DF0, 0x0000010 + +gUnk_080E3E00:: @ 080E3E00 + .incbin "baserom.gba", 0x0E3E00, 0x0000010 + +gUnk_080E3E10:: @ 080E3E10 + .incbin "baserom.gba", 0x0E3E10, 0x0000050 + +gUnk_080E3E60:: @ 080E3E60 + .incbin "baserom.gba", 0x0E3E60, 0x0000024 + +gUnk_080E3E84:: @ 080E3E84 + .incbin "baserom.gba", 0x0E3E84, 0x0000080 + +gUnk_080E3F04:: @ 080E3F04 + .incbin "baserom.gba", 0x0E3F04, 0x0000030 + +gUnk_080E3F34:: @ 080E3F34 + .incbin "baserom.gba", 0x0E3F34, 0x0000040 + +gUnk_080E3F74:: @ 080E3F74 + .incbin "baserom.gba", 0x0E3F74, 0x0000010 + +gUnk_080E3F84:: @ 080E3F84 + .incbin "baserom.gba", 0x0E3F84, 0x0000020 + +gUnk_080E3FA4:: @ 080E3FA4 + .incbin "baserom.gba", 0x0E3FA4, 0x0000020 + +gUnk_080E3FC4:: @ 080E3FC4 + .incbin "baserom.gba", 0x0E3FC4, 0x0000040 + +gUnk_080E4004:: @ 080E4004 + .incbin "baserom.gba", 0x0E4004, 0x0000040 + +gUnk_080E4044:: @ 080E4044 + .incbin "baserom.gba", 0x0E4044, 0x0000010 + +gUnk_080E4054:: @ 080E4054 + .incbin "baserom.gba", 0x0E4054, 0x0000020 + +gUnk_080E4074:: @ 080E4074 + .incbin "baserom.gba", 0x0E4074, 0x00001C0 + +gUnk_080E4234:: @ 080E4234 + .incbin "baserom.gba", 0x0E4234, 0x0000030 + +gUnk_080E4264:: @ 080E4264 + .incbin "baserom.gba", 0x0E4264, 0x0000010 + +gUnk_080E4274:: @ 080E4274 + .incbin "baserom.gba", 0x0E4274, 0x0000010 + +gUnk_080E4284:: @ 080E4284 + .incbin "baserom.gba", 0x0E4284, 0x000000A + +gUnk_080E428E:: @ 080E428E + .incbin "baserom.gba", 0x0E428E, 0x000000A + +gUnk_080E4298:: @ 080E4298 + .incbin "baserom.gba", 0x0E4298, 0x0000010 + +gUnk_080E42A8:: @ 080E42A8 + .incbin "baserom.gba", 0x0E42A8, 0x0000014 + +gUnk_080E42BC:: @ 080E42BC + .incbin "baserom.gba", 0x0E42BC, 0x0000030 + +gUnk_080E42EC:: @ 080E42EC + .incbin "baserom.gba", 0x0E42EC, 0x0000010 + +gUnk_080E42FC:: @ 080E42FC + .incbin "baserom.gba", 0x0E42FC, 0x0000020 + +gUnk_080E431C:: @ 080E431C + .incbin "baserom.gba", 0x0E431C, 0x0000010 + +gUnk_080E432C:: @ 080E432C + .incbin "baserom.gba", 0x0E432C, 0x0000018 + +gUnk_080E4344:: @ 080E4344 + .incbin "baserom.gba", 0x0E4344, 0x0000020 + +gUnk_080E4364:: @ 080E4364 + .incbin "baserom.gba", 0x0E4364, 0x0000030 + +gUnk_080E4394:: @ 080E4394 + .incbin "baserom.gba", 0x0E4394, 0x0000100 + +gUnk_080E4494:: @ 080E4494 + .incbin "baserom.gba", 0x0E4494, 0x0000018 + +gUnk_080E44AC:: @ 080E44AC + .incbin "baserom.gba", 0x0E44AC, 0x000001E + +gUnk_080E44CA:: @ 080E44CA + .incbin "baserom.gba", 0x0E44CA, 0x0000024 + +gUnk_080E44EE:: @ 080E44EE + .incbin "baserom.gba", 0x0E44EE, 0x0000024 + +gUnk_080E4512:: @ 080E4512 + .incbin "baserom.gba", 0x0E4512, 0x0000024 + +gUnk_080E4536:: @ 080E4536 + .incbin "baserom.gba", 0x0E4536, 0x000001E + +gUnk_080E4554:: @ 080E4554 + .incbin "baserom.gba", 0x0E4554, 0x0000024 + +gUnk_080E4578:: @ 080E4578 + .incbin "baserom.gba", 0x0E4578, 0x0000024 + +gUnk_080E459C:: @ 080E459C + .incbin "baserom.gba", 0x0E459C, 0x0000024 + +gUnk_080E45C0:: @ 080E45C0 + .incbin "baserom.gba", 0x0E45C0, 0x000001E + +gUnk_080E45DE:: @ 080E45DE + .incbin "baserom.gba", 0x0E45DE, 0x0000024 + +gUnk_080E4602:: @ 080E4602 + .incbin "baserom.gba", 0x0E4602, 0x0000024 + +gUnk_080E4626:: @ 080E4626 + .incbin "baserom.gba", 0x0E4626, 0x0000024 + +gUnk_080E464A:: @ 080E464A + .incbin "baserom.gba", 0x0E464A, 0x000001E + +gUnk_080E4668:: @ 080E4668 + .incbin "baserom.gba", 0x0E4668, 0x0000054 + +gUnk_080E46BC:: @ 080E46BC + .incbin "baserom.gba", 0x0E46BC, 0x0000040 + +gUnk_080E46FC:: @ 080E46FC + .incbin "baserom.gba", 0x0E46FC, 0x0000010 + +gUnk_080E470C:: @ 080E470C + .incbin "baserom.gba", 0x0E470C, 0x0000010 + +gUnk_080E471C:: @ 080E471C + .incbin "baserom.gba", 0x0E471C, 0x0000020 + +gUnk_080E473C:: @ 080E473C + .incbin "baserom.gba", 0x0E473C, 0x0000090 + +gUnk_080E47CC:: @ 080E47CC + .incbin "baserom.gba", 0x0E47CC, 0x0000010 + +gUnk_080E47DC:: @ 080E47DC + .incbin "baserom.gba", 0x0E47DC, 0x0000010 + +gUnk_080E47EC:: @ 080E47EC + .incbin "baserom.gba", 0x0E47EC, 0x0000020 + +gUnk_080E480C:: @ 080E480C + .incbin "baserom.gba", 0x0E480C, 0x00000F0 + +gUnk_080E48FC:: @ 080E48FC + .incbin "baserom.gba", 0x0E48FC, 0x0000010 + +gUnk_080E490C:: @ 080E490C + .incbin "baserom.gba", 0x0E490C, 0x0000018 + +gUnk_080E4924:: @ 080E4924 + .incbin "baserom.gba", 0x0E4924, 0x0000020 + +gUnk_080E4944:: @ 080E4944 + .incbin "baserom.gba", 0x0E4944, 0x0000080 + +gUnk_080E49C4:: @ 080E49C4 + .incbin "baserom.gba", 0x0E49C4, 0x0000030 + +gUnk_080E49F4:: @ 080E49F4 + .incbin "baserom.gba", 0x0E49F4, 0x0000030 + +gUnk_080E4A24:: @ 080E4A24 + .incbin "baserom.gba", 0x0E4A24, 0x0000020 + +gUnk_080E4A44:: @ 080E4A44 + .incbin "baserom.gba", 0x0E4A44, 0x0000018 + +gUnk_080E4A5C:: @ 080E4A5C + .incbin "baserom.gba", 0x0E4A5C, 0x000002C + +gUnk_080E4A88:: @ 080E4A88 + .incbin "baserom.gba", 0x0E4A88, 0x00000A0 + +gUnk_080E4B28:: @ 080E4B28 + .incbin "baserom.gba", 0x0E4B28, 0x0000010 + +gUnk_080E4B38:: @ 080E4B38 + .incbin "baserom.gba", 0x0E4B38, 0x0000010 + +gUnk_080E4B48:: @ 080E4B48 + .incbin "baserom.gba", 0x0E4B48, 0x0000020 + +gUnk_080E4B68:: @ 080E4B68 + .incbin "baserom.gba", 0x0E4B68, 0x0000070 + +gUnk_080E4BD8:: @ 080E4BD8 + .incbin "baserom.gba", 0x0E4BD8, 0x0000020 + +gUnk_080E4BF8:: @ 080E4BF8 + .incbin "baserom.gba", 0x0E4BF8, 0x0000010 + +gUnk_080E4C08:: @ 080E4C08 + .incbin "baserom.gba", 0x0E4C08, 0x0000030 + +gUnk_080E4C38:: @ 080E4C38 + .incbin "baserom.gba", 0x0E4C38, 0x0000010 + +gUnk_080E4C48:: @ 080E4C48 + .incbin "baserom.gba", 0x0E4C48, 0x0000020 + +gUnk_080E4C68:: @ 080E4C68 + .incbin "baserom.gba", 0x0E4C68, 0x0000020 + +gUnk_080E4C88:: @ 080E4C88 + .incbin "baserom.gba", 0x0E4C88, 0x0000050 + +gUnk_080E4CD8:: @ 080E4CD8 + .incbin "baserom.gba", 0x0E4CD8, 0x0000020 + +gUnk_080E4CF8:: @ 080E4CF8 + .incbin "baserom.gba", 0x0E4CF8, 0x0000020 + +gUnk_080E4D18:: @ 080E4D18 + .incbin "baserom.gba", 0x0E4D18, 0x0000010 + +gUnk_080E4D28:: @ 080E4D28 + .incbin "baserom.gba", 0x0E4D28, 0x0000018 + +gUnk_080E4D40:: @ 080E4D40 + .incbin "baserom.gba", 0x0E4D40, 0x000000C + +gUnk_080E4D4C:: @ 080E4D4C + .incbin "baserom.gba", 0x0E4D4C, 0x0000024 + +gUnk_080E4D70:: @ 080E4D70 + .incbin "baserom.gba", 0x0E4D70, 0x0000070 + +gUnk_080E4DE0:: @ 080E4DE0 + .incbin "baserom.gba", 0x0E4DE0, 0x0000010 + +gUnk_080E4DF0:: @ 080E4DF0 + .incbin "baserom.gba", 0x0E4DF0, 0x0000010 + +gUnk_080E4E00:: @ 080E4E00 + .incbin "baserom.gba", 0x0E4E00, 0x000000C + +gUnk_080E4E0C:: @ 080E4E0C + .incbin "baserom.gba", 0x0E4E0C, 0x0000024 + +gUnk_080E4E30:: @ 080E4E30 + .incbin "baserom.gba", 0x0E4E30, 0x0000070 + +gUnk_080E4EA0:: @ 080E4EA0 + .incbin "baserom.gba", 0x0E4EA0, 0x0000010 + +gUnk_080E4EB0:: @ 080E4EB0 + .incbin "baserom.gba", 0x0E4EB0, 0x0000010 + +gUnk_080E4EC0:: @ 080E4EC0 + .incbin "baserom.gba", 0x0E4EC0, 0x000000C + +gUnk_080E4ECC:: @ 080E4ECC + .incbin "baserom.gba", 0x0E4ECC, 0x0000024 + +gUnk_080E4EF0:: @ 080E4EF0 + .incbin "baserom.gba", 0x0E4EF0, 0x0000080 + +gUnk_080E4F70:: @ 080E4F70 + .incbin "baserom.gba", 0x0E4F70, 0x0000010 + +gUnk_080E4F80:: @ 080E4F80 + .incbin "baserom.gba", 0x0E4F80, 0x0000020 + +gUnk_080E4FA0:: @ 080E4FA0 + .incbin "baserom.gba", 0x0E4FA0, 0x0000020 + +gUnk_080E4FC0:: @ 080E4FC0 + .incbin "baserom.gba", 0x0E4FC0, 0x0000010 + +gUnk_080E4FD0:: @ 080E4FD0 + .incbin "baserom.gba", 0x0E4FD0, 0x0000010 + +gUnk_080E4FE0:: @ 080E4FE0 + .incbin "baserom.gba", 0x0E4FE0, 0x0000010 + +gUnk_080E4FF0:: @ 080E4FF0 + .incbin "baserom.gba", 0x0E4FF0, 0x0000020 + +gUnk_080E5010:: @ 080E5010 + .incbin "baserom.gba", 0x0E5010, 0x0000020 + +gUnk_080E5030:: @ 080E5030 + .incbin "baserom.gba", 0x0E5030, 0x0000030 + +gUnk_080E5060:: @ 080E5060 + .incbin "baserom.gba", 0x0E5060, 0x0000090 + +gUnk_080E50F0:: @ 080E50F0 + .incbin "baserom.gba", 0x0E50F0, 0x0000010 + +gUnk_080E5100:: @ 080E5100 + .incbin "baserom.gba", 0x0E5100, 0x0000020 + +gUnk_080E5120:: @ 080E5120 + .incbin "baserom.gba", 0x0E5120, 0x0000080 + +gUnk_080E51A0:: @ 080E51A0 + .incbin "baserom.gba", 0x0E51A0, 0x0000020 + +gUnk_080E51C0:: @ 080E51C0 + .incbin "baserom.gba", 0x0E51C0, 0x0000050 + +gUnk_080E5210:: @ 080E5210 + .incbin "baserom.gba", 0x0E5210, 0x0000010 + +gUnk_080E5220:: @ 080E5220 + .incbin "baserom.gba", 0x0E5220, 0x0000020 + +gUnk_080E5240:: @ 080E5240 + .incbin "baserom.gba", 0x0E5240, 0x0000010 + +gUnk_080E5250:: @ 080E5250 + .incbin "baserom.gba", 0x0E5250, 0x0000030 + +gUnk_080E5280:: @ 080E5280 + .incbin "baserom.gba", 0x0E5280, 0x00000A0 + +gUnk_080E5320:: @ 080E5320 + .incbin "baserom.gba", 0x0E5320, 0x0000010 + +gUnk_080E5330:: @ 080E5330 + .incbin "baserom.gba", 0x0E5330, 0x0000020 + +gUnk_080E5350:: @ 080E5350 + .incbin "baserom.gba", 0x0E5350, 0x00000D0 + +gUnk_080E5420:: @ 080E5420 + .incbin "baserom.gba", 0x0E5420, 0x0000020 + +gUnk_080E5440:: @ 080E5440 + .incbin "baserom.gba", 0x0E5440, 0x0000010 + +gUnk_080E5450:: @ 080E5450 + .incbin "baserom.gba", 0x0E5450, 0x0000010 + +gUnk_080E5460:: @ 080E5460 + .incbin "baserom.gba", 0x0E5460, 0x0000020 + +gUnk_080E5480:: @ 080E5480 + .incbin "baserom.gba", 0x0E5480, 0x00001E0 + +gUnk_080E5660:: @ 080E5660 + .incbin "baserom.gba", 0x0E5660, 0x0000020 + +gUnk_080E5680:: @ 080E5680 + .incbin "baserom.gba", 0x0E5680, 0x0000020 + +gUnk_080E56A0:: @ 080E56A0 + .incbin "baserom.gba", 0x0E56A0, 0x0000070 + +gUnk_080E5710:: @ 080E5710 + .incbin "baserom.gba", 0x0E5710, 0x0000020 + +gUnk_080E5730:: @ 080E5730 + .incbin "baserom.gba", 0x0E5730, 0x0000020 + +gUnk_080E5750:: @ 080E5750 + .incbin "baserom.gba", 0x0E5750, 0x0000090 + +gUnk_080E57E0:: @ 080E57E0 + .incbin "baserom.gba", 0x0E57E0, 0x0000030 + +gUnk_080E5810:: @ 080E5810 + .incbin "baserom.gba", 0x0E5810, 0x0000018 + +gUnk_080E5828:: @ 080E5828 + .incbin "baserom.gba", 0x0E5828, 0x0000020 + +gUnk_080E5848:: @ 080E5848 + .incbin "baserom.gba", 0x0E5848, 0x0000010 + +gUnk_080E5858:: @ 080E5858 + .incbin "baserom.gba", 0x0E5858, 0x0000050 + +gUnk_080E58A8:: @ 080E58A8 + .incbin "baserom.gba", 0x0E58A8, 0x0000018 + +gUnk_080E58C0:: @ 080E58C0 + .incbin "baserom.gba", 0x0E58C0, 0x0000020 + +gUnk_080E58E0:: @ 080E58E0 + .incbin "baserom.gba", 0x0E58E0, 0x0000130 + +gUnk_080E5A10:: @ 080E5A10 + .incbin "baserom.gba", 0x0E5A10, 0x0000010 + +gUnk_080E5A20:: @ 080E5A20 + .incbin "baserom.gba", 0x0E5A20, 0x00000E0 + +gUnk_080E5B00:: @ 080E5B00 + .incbin "baserom.gba", 0x0E5B00, 0x0000038 + +gUnk_080E5B38:: @ 080E5B38 + .incbin "baserom.gba", 0x0E5B38, 0x0000020 + +gUnk_080E5B58:: @ 080E5B58 + .incbin "baserom.gba", 0x0E5B58, 0x0000110 + +gUnk_080E5C68:: @ 080E5C68 + .incbin "baserom.gba", 0x0E5C68, 0x0000030 + +gUnk_080E5C98:: @ 080E5C98 + .incbin "baserom.gba", 0x0E5C98, 0x0000010 + +gUnk_080E5CA8:: @ 080E5CA8 + .incbin "baserom.gba", 0x0E5CA8, 0x0000018 + +gUnk_080E5CC0:: @ 080E5CC0 + .incbin "baserom.gba", 0x0E5CC0, 0x0000030 + +gUnk_080E5CF0:: @ 080E5CF0 + .incbin "baserom.gba", 0x0E5CF0, 0x0000024 + +gUnk_080E5D14:: @ 080E5D14 + .incbin "baserom.gba", 0x0E5D14, 0x0000030 + +gUnk_080E5D44:: @ 080E5D44 + .incbin "baserom.gba", 0x0E5D44, 0x0000040 + +gUnk_080E5D84:: @ 080E5D84 + .incbin "baserom.gba", 0x0E5D84, 0x0000010 + +gUnk_080E5D94:: @ 080E5D94 + .incbin "baserom.gba", 0x0E5D94, 0x0000018 + +gUnk_080E5DAC:: @ 080E5DAC + .incbin "baserom.gba", 0x0E5DAC, 0x0000020 + +gUnk_080E5DCC:: @ 080E5DCC + .incbin "baserom.gba", 0x0E5DCC, 0x0000070 + +gUnk_080E5E3C:: @ 080E5E3C + .incbin "baserom.gba", 0x0E5E3C, 0x0000020 + +gUnk_080E5E5C:: @ 080E5E5C + .incbin "baserom.gba", 0x0E5E5C, 0x0000020 + +gUnk_080E5E7C:: @ 080E5E7C + .incbin "baserom.gba", 0x0E5E7C, 0x0000010 + +gUnk_080E5E8C:: @ 080E5E8C + .incbin "baserom.gba", 0x0E5E8C, 0x0000010 + +gUnk_080E5E9C:: @ 080E5E9C + .incbin "baserom.gba", 0x0E5E9C, 0x0000020 + +gUnk_080E5EBC:: @ 080E5EBC + .incbin "baserom.gba", 0x0E5EBC, 0x0000060 + +gUnk_080E5F1C:: @ 080E5F1C + .incbin "baserom.gba", 0x0E5F1C, 0x0000010 + +gUnk_080E5F2C:: @ 080E5F2C + .incbin "baserom.gba", 0x0E5F2C, 0x0000018 + +gUnk_080E5F44:: @ 080E5F44 + .incbin "baserom.gba", 0x0E5F44, 0x0000070 + +gUnk_080E5FB4:: @ 080E5FB4 + .incbin "baserom.gba", 0x0E5FB4, 0x0000024 + +gUnk_080E5FD8:: @ 080E5FD8 + .incbin "baserom.gba", 0x0E5FD8, 0x00000D0 + +gUnk_080E60A8:: @ 080E60A8 + .incbin "baserom.gba", 0x0E60A8, 0x0000030 + +gUnk_080E60D8:: @ 080E60D8 + .incbin "baserom.gba", 0x0E60D8, 0x0000040 + +gUnk_080E6118:: @ 080E6118 + .incbin "baserom.gba", 0x0E6118, 0x0000018 + +gUnk_080E6130:: @ 080E6130 + .incbin "baserom.gba", 0x0E6130, 0x0000020 + +gUnk_080E6150:: @ 080E6150 + .incbin "baserom.gba", 0x0E6150, 0x0000100 + +gUnk_080E6250:: @ 080E6250 + .incbin "baserom.gba", 0x0E6250, 0x0000020 + +gUnk_080E6270:: @ 080E6270 + .incbin "baserom.gba", 0x0E6270, 0x0000018 + +gUnk_080E6288:: @ 080E6288 + .incbin "baserom.gba", 0x0E6288, 0x0000020 + +gUnk_080E62A8:: @ 080E62A8 + .incbin "baserom.gba", 0x0E62A8, 0x0000024 + +gUnk_080E62CC:: @ 080E62CC + .incbin "baserom.gba", 0x0E62CC, 0x0000060 + +gUnk_080E632C:: @ 080E632C + .incbin "baserom.gba", 0x0E632C, 0x0000030 + +gUnk_080E635C:: @ 080E635C + .incbin "baserom.gba", 0x0E635C, 0x0000020 + +gUnk_080E637C:: @ 080E637C + .incbin "baserom.gba", 0x0E637C, 0x0000020 + +gUnk_080E639C:: @ 080E639C + .incbin "baserom.gba", 0x0E639C, 0x0000090 + +gUnk_080E642C:: @ 080E642C + .incbin "baserom.gba", 0x0E642C, 0x0000010 + +gUnk_080E643C:: @ 080E643C + .incbin "baserom.gba", 0x0E643C, 0x0000018 + +gUnk_080E6454:: @ 080E6454 + .incbin "baserom.gba", 0x0E6454, 0x0000050 + +gUnk_080E64A4:: @ 080E64A4 + .incbin "baserom.gba", 0x0E64A4, 0x0000024 + +gUnk_080E64C8:: @ 080E64C8 + .incbin "baserom.gba", 0x0E64C8, 0x0000078 + +gUnk_080E6540:: @ 080E6540 + .incbin "baserom.gba", 0x0E6540, 0x0000038 + +gUnk_080E6578:: @ 080E6578 + .incbin "baserom.gba", 0x0E6578, 0x0000030 + +gUnk_080E65A8:: @ 080E65A8 + .incbin "baserom.gba", 0x0E65A8, 0x0000010 + +gUnk_080E65B8:: @ 080E65B8 + .incbin "baserom.gba", 0x0E65B8, 0x0000020 + +gUnk_080E65D8:: @ 080E65D8 + .incbin "baserom.gba", 0x0E65D8, 0x00000C0 + +gUnk_080E6698:: @ 080E6698 + .incbin "baserom.gba", 0x0E6698, 0x0000010 + +gUnk_080E66A8:: @ 080E66A8 + .incbin "baserom.gba", 0x0E66A8, 0x0000010 + +gUnk_080E66B8:: @ 080E66B8 + .incbin "baserom.gba", 0x0E66B8, 0x0000020 + +gUnk_080E66D8:: @ 080E66D8 + .incbin "baserom.gba", 0x0E66D8, 0x0000024 + +gUnk_080E66FC:: @ 080E66FC + .incbin "baserom.gba", 0x0E66FC, 0x0000040 + +gUnk_080E673C:: @ 080E673C + .incbin "baserom.gba", 0x0E673C, 0x0000030 + +gUnk_080E676C:: @ 080E676C + .incbin "baserom.gba", 0x0E676C, 0x0000020 + +gUnk_080E678C:: @ 080E678C + .incbin "baserom.gba", 0x0E678C, 0x0000020 + +gUnk_080E67AC:: @ 080E67AC + .incbin "baserom.gba", 0x0E67AC, 0x0000190 + +gUnk_080E693C:: @ 080E693C + .incbin "baserom.gba", 0x0E693C, 0x0000030 + +gUnk_080E696C:: @ 080E696C + .incbin "baserom.gba", 0x0E696C, 0x0000010 + +gUnk_080E697C:: @ 080E697C + .incbin "baserom.gba", 0x0E697C, 0x0000010 + +gUnk_080E698C:: @ 080E698C + .incbin "baserom.gba", 0x0E698C, 0x0000020 + +gUnk_080E69AC:: @ 080E69AC + .incbin "baserom.gba", 0x0E69AC, 0x00000D0 + +gUnk_080E6A7C:: @ 080E6A7C + .incbin "baserom.gba", 0x0E6A7C, 0x0000010 + +gUnk_080E6A8C:: @ 080E6A8C + .incbin "baserom.gba", 0x0E6A8C, 0x0000008 + +gUnk_080E6A94:: @ 080E6A94 + .incbin "baserom.gba", 0x0E6A94, 0x0000040 + +gUnk_080E6AD4:: @ 080E6AD4 + .incbin "baserom.gba", 0x0E6AD4, 0x0000024 + +gUnk_080E6AF8:: @ 080E6AF8 + .incbin "baserom.gba", 0x0E6AF8, 0x0000010 + +gUnk_080E6B08:: @ 080E6B08 + .incbin "baserom.gba", 0x0E6B08, 0x0000040 + +gUnk_080E6B48:: @ 080E6B48 + .incbin "baserom.gba", 0x0E6B48, 0x0000008 + +gUnk_080E6B50:: @ 080E6B50 + .incbin "baserom.gba", 0x0E6B50, 0x0000020 + +gUnk_080E6B70:: @ 080E6B70 + .incbin "baserom.gba", 0x0E6B70, 0x0000070 + +gUnk_080E6BE0:: @ 080E6BE0 + .incbin "baserom.gba", 0x0E6BE0, 0x0000010 + +gUnk_080E6BF0:: @ 080E6BF0 + .incbin "baserom.gba", 0x0E6BF0, 0x0000008 + +gUnk_080E6BF8:: @ 080E6BF8 + .incbin "baserom.gba", 0x0E6BF8, 0x0000020 + +gUnk_080E6C18:: @ 080E6C18 + .incbin "baserom.gba", 0x0E6C18, 0x0000140 + +gUnk_080E6D58:: @ 080E6D58 + .incbin "baserom.gba", 0x0E6D58, 0x0000010 + +gUnk_080E6D68:: @ 080E6D68 + .incbin "baserom.gba", 0x0E6D68, 0x0000018 + +gUnk_080E6D80:: @ 080E6D80 + .incbin "baserom.gba", 0x0E6D80, 0x000001E + +gUnk_080E6D9E:: @ 080E6D9E + .incbin "baserom.gba", 0x0E6D9E, 0x0000066 + +gUnk_080E6E04:: @ 080E6E04 + .incbin "baserom.gba", 0x0E6E04, 0x0000028 + +gUnk_080E6E2C:: @ 080E6E2C + .incbin "baserom.gba", 0x0E6E2C, 0x0000070 + +gUnk_080E6E9C:: @ 080E6E9C + .incbin "baserom.gba", 0x0E6E9C, 0x0000050 + +gUnk_080E6EEC:: @ 080E6EEC + .incbin "baserom.gba", 0x0E6EEC, 0x0000030 + +gUnk_080E6F1C:: @ 080E6F1C + .incbin "baserom.gba", 0x0E6F1C, 0x0000020 + +gUnk_080E6F3C:: @ 080E6F3C + .incbin "baserom.gba", 0x0E6F3C, 0x0000070 + +gUnk_080E6FAC:: @ 080E6FAC + .incbin "baserom.gba", 0x0E6FAC, 0x00000E0 + +gUnk_080E708C:: @ 080E708C + .incbin "baserom.gba", 0x0E708C, 0x0000018 + +gUnk_080E70A4:: @ 080E70A4 + .incbin "baserom.gba", 0x0E70A4, 0x0000020 + +gUnk_080E70C4:: @ 080E70C4 + .incbin "baserom.gba", 0x0E70C4, 0x0000070 + +gUnk_080E7134:: @ 080E7134 + .incbin "baserom.gba", 0x0E7134, 0x0000010 + +gUnk_080E7144:: @ 080E7144 + .incbin "baserom.gba", 0x0E7144, 0x0000008 + +gUnk_080E714C:: @ 080E714C + .incbin "baserom.gba", 0x0E714C, 0x0000020 + +gUnk_080E716C:: @ 080E716C + .incbin "baserom.gba", 0x0E716C, 0x0000020 + +gUnk_080E718C:: @ 080E718C + .incbin "baserom.gba", 0x0E718C, 0x0000020 + +gUnk_080E71AC:: @ 080E71AC + .incbin "baserom.gba", 0x0E71AC, 0x0000020 + +gUnk_080E71CC:: @ 080E71CC + .incbin "baserom.gba", 0x0E71CC, 0x0000030 + +gUnk_080E71FC:: @ 080E71FC + .incbin "baserom.gba", 0x0E71FC, 0x0000008 + +gUnk_080E7204:: @ 080E7204 + .incbin "baserom.gba", 0x0E7204, 0x0000020 + +gUnk_080E7224:: @ 080E7224 + .incbin "baserom.gba", 0x0E7224, 0x00000A0 + +gUnk_080E72C4:: @ 080E72C4 + .incbin "baserom.gba", 0x0E72C4, 0x0000020 + +gUnk_080E72E4:: @ 080E72E4 + .incbin "baserom.gba", 0x0E72E4, 0x0000030 + +gUnk_080E7314:: @ 080E7314 + .incbin "baserom.gba", 0x0E7314, 0x0000030 + +gUnk_080E7344:: @ 080E7344 + .incbin "baserom.gba", 0x0E7344, 0x0000010 + +gUnk_080E7354:: @ 080E7354 + .incbin "baserom.gba", 0x0E7354, 0x0000010 + +gUnk_080E7364:: @ 080E7364 + .incbin "baserom.gba", 0x0E7364, 0x0000028 + +gUnk_080E738C:: @ 080E738C + .incbin "baserom.gba", 0x0E738C, 0x0000020 + +gUnk_080E73AC:: @ 080E73AC + .incbin "baserom.gba", 0x0E73AC, 0x0000020 + +gUnk_080E73CC:: @ 080E73CC + .incbin "baserom.gba", 0x0E73CC, 0x0000018 + +gUnk_080E73E4:: @ 080E73E4 + .incbin "baserom.gba", 0x0E73E4, 0x0000020 + +gUnk_080E7404:: @ 080E7404 + .incbin "baserom.gba", 0x0E7404, 0x00000A0 + +gUnk_080E74A4:: @ 080E74A4 + .incbin "baserom.gba", 0x0E74A4, 0x0000010 + +gUnk_080E74B4:: @ 080E74B4 + .incbin "baserom.gba", 0x0E74B4, 0x0000010 + +gUnk_080E74C4:: @ 080E74C4 + .incbin "baserom.gba", 0x0E74C4, 0x0000020 + +gUnk_080E74E4:: @ 080E74E4 + .incbin "baserom.gba", 0x0E74E4, 0x0000130 + +gUnk_080E7614:: @ 080E7614 + .incbin "baserom.gba", 0x0E7614, 0x0000010 + +gUnk_080E7624:: @ 080E7624 + .incbin "baserom.gba", 0x0E7624, 0x0000018 + +gUnk_080E763C:: @ 080E763C + .incbin "baserom.gba", 0x0E763C, 0x0000020 + +gUnk_080E765C:: @ 080E765C + .incbin "baserom.gba", 0x0E765C, 0x0000020 + +gUnk_080E767C:: @ 080E767C + .incbin "baserom.gba", 0x0E767C, 0x0000010 + +gUnk_080E768C:: @ 080E768C + .incbin "baserom.gba", 0x0E768C, 0x0000018 + +gUnk_080E76A4:: @ 080E76A4 + .incbin "baserom.gba", 0x0E76A4, 0x0000020 + +gUnk_080E76C4:: @ 080E76C4 + .incbin "baserom.gba", 0x0E76C4, 0x0000090 + +gUnk_080E7754:: @ 080E7754 + .incbin "baserom.gba", 0x0E7754, 0x0000010 + +gUnk_080E7764:: @ 080E7764 + .incbin "baserom.gba", 0x0E7764, 0x0000010 + +gUnk_080E7774:: @ 080E7774 + .incbin "baserom.gba", 0x0E7774, 0x0000060 + +gUnk_080E77D4:: @ 080E77D4 + .incbin "baserom.gba", 0x0E77D4, 0x0000024 + +gUnk_080E77F8:: @ 080E77F8 + .incbin "baserom.gba", 0x0E77F8, 0x0000100 + +gUnk_080E78F8:: @ 080E78F8 + .incbin "baserom.gba", 0x0E78F8, 0x0000040 + +gUnk_080E7938:: @ 080E7938 + .incbin "baserom.gba", 0x0E7938, 0x0000010 + +gUnk_080E7948:: @ 080E7948 + .incbin "baserom.gba", 0x0E7948, 0x0000020 + +gUnk_080E7968:: @ 080E7968 + .incbin "baserom.gba", 0x0E7968, 0x0000070 + +gUnk_080E79D8:: @ 080E79D8 + .incbin "baserom.gba", 0x0E79D8, 0x0000040 + +gUnk_080E7A18:: @ 080E7A18 + .incbin "baserom.gba", 0x0E7A18, 0x0000018 + +gUnk_080E7A30:: @ 080E7A30 + .incbin "baserom.gba", 0x0E7A30, 0x0000020 + +gUnk_080E7A50:: @ 080E7A50 + .incbin "baserom.gba", 0x0E7A50, 0x0000070 + +gUnk_080E7AC0:: @ 080E7AC0 + .incbin "baserom.gba", 0x0E7AC0, 0x0000010 + +gUnk_080E7AD0:: @ 080E7AD0 + .incbin "baserom.gba", 0x0E7AD0, 0x0000010 + +gUnk_080E7AE0:: @ 080E7AE0 + .incbin "baserom.gba", 0x0E7AE0, 0x0000030 + +gUnk_080E7B10:: @ 080E7B10 + .incbin "baserom.gba", 0x0E7B10, 0x0000024 + +gUnk_080E7B34:: @ 080E7B34 + .incbin "baserom.gba", 0x0E7B34, 0x0000040 + +gUnk_080E7B74:: @ 080E7B74 + .incbin "baserom.gba", 0x0E7B74, 0x0000100 + +gUnk_080E7C74:: @ 080E7C74 + .incbin "baserom.gba", 0x0E7C74, 0x0000010 + +gUnk_080E7C84:: @ 080E7C84 + .incbin "baserom.gba", 0x0E7C84, 0x0000020 + +gUnk_080E7CA4:: @ 080E7CA4 + .incbin "baserom.gba", 0x0E7CA4, 0x0000080 + +gUnk_080E7D24:: @ 080E7D24 + .incbin "baserom.gba", 0x0E7D24, 0x0000010 + +gUnk_080E7D34:: @ 080E7D34 + .incbin "baserom.gba", 0x0E7D34, 0x0000010 + +gUnk_080E7D44:: @ 080E7D44 + .incbin "baserom.gba", 0x0E7D44, 0x0000020 + +gUnk_080E7D64:: @ 080E7D64 + .incbin "baserom.gba", 0x0E7D64, 0x0000050 + +gUnk_080E7DB4:: @ 080E7DB4 + .incbin "baserom.gba", 0x0E7DB4, 0x0000010 + +gUnk_080E7DC4:: @ 080E7DC4 + .incbin "baserom.gba", 0x0E7DC4, 0x0000028 + +gUnk_080E7DEC:: @ 080E7DEC + .incbin "baserom.gba", 0x0E7DEC, 0x0000020 + +gUnk_080E7E0C:: @ 080E7E0C + .incbin "baserom.gba", 0x0E7E0C, 0x0000070 + +gUnk_080E7E7C:: @ 080E7E7C + .incbin "baserom.gba", 0x0E7E7C, 0x0000010 + +gUnk_080E7E8C:: @ 080E7E8C + .incbin "baserom.gba", 0x0E7E8C, 0x0000018 + +gUnk_080E7EA4:: @ 080E7EA4 + .incbin "baserom.gba", 0x0E7EA4, 0x0000020 + +gUnk_080E7EC4:: @ 080E7EC4 + .incbin "baserom.gba", 0x0E7EC4, 0x0000024 + +gUnk_080E7EE8:: @ 080E7EE8 + .incbin "baserom.gba", 0x0E7EE8, 0x0000020 + +gUnk_080E7F08:: @ 080E7F08 + .incbin "baserom.gba", 0x0E7F08, 0x0000030 + +gUnk_080E7F38:: @ 080E7F38 + .incbin "baserom.gba", 0x0E7F38, 0x0000018 + +gUnk_080E7F50:: @ 080E7F50 + .incbin "baserom.gba", 0x0E7F50, 0x0000020 + +gUnk_080E7F70:: @ 080E7F70 + .incbin "baserom.gba", 0x0E7F70, 0x0000080 + +gUnk_080E7FF0:: @ 080E7FF0 + .incbin "baserom.gba", 0x0E7FF0, 0x0000030 + +gUnk_080E8020:: @ 080E8020 + .incbin "baserom.gba", 0x0E8020, 0x0000018 + +gUnk_080E8038:: @ 080E8038 + .incbin "baserom.gba", 0x0E8038, 0x0000020 + +gUnk_080E8058:: @ 080E8058 + .incbin "baserom.gba", 0x0E8058, 0x0000070 + +gUnk_080E80C8:: @ 080E80C8 + .incbin "baserom.gba", 0x0E80C8, 0x0000030 + +gUnk_080E80F8:: @ 080E80F8 + .incbin "baserom.gba", 0x0E80F8, 0x0000018 + +gUnk_080E8110:: @ 080E8110 + .incbin "baserom.gba", 0x0E8110, 0x0000020 + +gUnk_080E8130:: @ 080E8130 + .incbin "baserom.gba", 0x0E8130, 0x0000160 + +gUnk_080E8290:: @ 080E8290 + .incbin "baserom.gba", 0x0E8290, 0x00000A0 + +gUnk_080E8330:: @ 080E8330 + .incbin "baserom.gba", 0x0E8330, 0x0000018 + +gUnk_080E8348:: @ 080E8348 + .incbin "baserom.gba", 0x0E8348, 0x0000020 + +gUnk_080E8368:: @ 080E8368 + .incbin "baserom.gba", 0x0E8368, 0x0000020 + +gUnk_080E8388:: @ 080E8388 + .incbin "baserom.gba", 0x0E8388, 0x0000040 + +gUnk_080E83C8:: @ 080E83C8 + .incbin "baserom.gba", 0x0E83C8, 0x0000010 + +gUnk_080E83D8:: @ 080E83D8 + .incbin "baserom.gba", 0x0E83D8, 0x0000020 + +gUnk_080E83F8:: @ 080E83F8 + .incbin "baserom.gba", 0x0E83F8, 0x0000020 + +gUnk_080E8418:: @ 080E8418 + .incbin "baserom.gba", 0x0E8418, 0x0000010 + +gUnk_080E8428:: @ 080E8428 + .incbin "baserom.gba", 0x0E8428, 0x0000010 + +gUnk_080E8438:: @ 080E8438 + .incbin "baserom.gba", 0x0E8438, 0x0000020 + +gUnk_080E8458:: @ 080E8458 + .incbin "baserom.gba", 0x0E8458, 0x0000070 + +gUnk_080E84C8:: @ 080E84C8 + .incbin "baserom.gba", 0x0E84C8, 0x0000030 + +gUnk_080E84F8:: @ 080E84F8 + .incbin "baserom.gba", 0x0E84F8, 0x0000010 + +gUnk_080E8508:: @ 080E8508 + .incbin "baserom.gba", 0x0E8508, 0x0000020 + +gUnk_080E8528:: @ 080E8528 + .incbin "baserom.gba", 0x0E8528, 0x00000A0 + +gUnk_080E85C8:: @ 080E85C8 + .incbin "baserom.gba", 0x0E85C8, 0x0000030 + +gUnk_080E85F8:: @ 080E85F8 + .incbin "baserom.gba", 0x0E85F8, 0x0000010 + +gUnk_080E8608:: @ 080E8608 + .incbin "baserom.gba", 0x0E8608, 0x0000020 + +gUnk_080E8628:: @ 080E8628 + .incbin "baserom.gba", 0x0E8628, 0x0000140 + +gUnk_080E8768:: @ 080E8768 + .incbin "baserom.gba", 0x0E8768, 0x0000070 + +gUnk_080E87D8:: @ 080E87D8 + .incbin "baserom.gba", 0x0E87D8, 0x0000028 + +gUnk_080E8800:: @ 080E8800 + .incbin "baserom.gba", 0x0E8800, 0x0000024 + +gUnk_080E8824:: @ 080E8824 + .incbin "baserom.gba", 0x0E8824, 0x0000024 + +gUnk_080E8848:: @ 080E8848 + .incbin "baserom.gba", 0x0E8848, 0x00000D0 + +gUnk_080E8918:: @ 080E8918 + .incbin "baserom.gba", 0x0E8918, 0x0000010 + +gUnk_080E8928:: @ 080E8928 + .incbin "baserom.gba", 0x0E8928, 0x0000010 + +gUnk_080E8938:: @ 080E8938 + .incbin "baserom.gba", 0x0E8938, 0x0000050 + +gUnk_080E8988:: @ 080E8988 + .incbin "baserom.gba", 0x0E8988, 0x0000024 + +gUnk_080E89AC:: @ 080E89AC + .incbin "baserom.gba", 0x0E89AC, 0x0000030 + +gUnk_080E89DC:: @ 080E89DC + .incbin "baserom.gba", 0x0E89DC, 0x0000010 + +gUnk_080E89EC:: @ 080E89EC + .incbin "baserom.gba", 0x0E89EC, 0x0000010 + +gUnk_080E89FC:: @ 080E89FC + .incbin "baserom.gba", 0x0E89FC, 0x0000020 + +gUnk_080E8A1C:: @ 080E8A1C + .incbin "baserom.gba", 0x0E8A1C, 0x00000A0 + +gUnk_080E8ABC:: @ 080E8ABC + .incbin "baserom.gba", 0x0E8ABC, 0x0000070 + +gUnk_080E8B2C:: @ 080E8B2C + .incbin "baserom.gba", 0x0E8B2C, 0x0000010 + +gUnk_080E8B3C:: @ 080E8B3C + .incbin "baserom.gba", 0x0E8B3C, 0x0000030 + +gUnk_080E8B6C:: @ 080E8B6C + .incbin "baserom.gba", 0x0E8B6C, 0x0000030 + +gUnk_080E8B9C:: @ 080E8B9C + .incbin "baserom.gba", 0x0E8B9C, 0x0000024 + +gUnk_080E8BC0:: @ 080E8BC0 + .incbin "baserom.gba", 0x0E8BC0, 0x000002C + +gUnk_080E8BEC:: @ 080E8BEC + .incbin "baserom.gba", 0x0E8BEC, 0x0000080 + +gUnk_080E8C6C:: @ 080E8C6C + .incbin "baserom.gba", 0x0E8C6C, 0x0000010 + +gUnk_080E8C7C:: @ 080E8C7C + .incbin "baserom.gba", 0x0E8C7C, 0x0000010 + +gUnk_080E8C8C:: @ 080E8C8C + .incbin "baserom.gba", 0x0E8C8C, 0x0000024 + +gUnk_080E8CB0:: @ 080E8CB0 + .incbin "baserom.gba", 0x0E8CB0, 0x0000024 + +gUnk_080E8CD4:: @ 080E8CD4 + .incbin "baserom.gba", 0x0E8CD4, 0x00001E0 + +gUnk_080E8EB4:: @ 080E8EB4 + .incbin "baserom.gba", 0x0E8EB4, 0x0000020 + +gUnk_080E8ED4:: @ 080E8ED4 + .incbin "baserom.gba", 0x0E8ED4, 0x0000010 + +gUnk_080E8EE4:: @ 080E8EE4 + .incbin "baserom.gba", 0x0E8EE4, 0x0000020 + +gUnk_080E8F04:: @ 080E8F04 + .incbin "baserom.gba", 0x0E8F04, 0x0000040 + +gUnk_080E8F44:: @ 080E8F44 + .incbin "baserom.gba", 0x0E8F44, 0x0000030 + +gUnk_080E8F74:: @ 080E8F74 + .incbin "baserom.gba", 0x0E8F74, 0x0000010 + +gUnk_080E8F84:: @ 080E8F84 + .incbin "baserom.gba", 0x0E8F84, 0x0000020 + +gUnk_080E8FA4:: @ 080E8FA4 + .incbin "baserom.gba", 0x0E8FA4, 0x0000040 + +gUnk_080E8FE4:: @ 080E8FE4 + .incbin "baserom.gba", 0x0E8FE4, 0x0000010 + +gUnk_080E8FF4:: @ 080E8FF4 + .incbin "baserom.gba", 0x0E8FF4, 0x0000018 + +gUnk_080E900C:: @ 080E900C + .incbin "baserom.gba", 0x0E900C, 0x0000040 + +gUnk_080E904C:: @ 080E904C + .incbin "baserom.gba", 0x0E904C, 0x0000024 + +gUnk_080E9070:: @ 080E9070 + .incbin "baserom.gba", 0x0E9070, 0x0000030 + +gUnk_080E90A0:: @ 080E90A0 + .incbin "baserom.gba", 0x0E90A0, 0x0000030 + +gUnk_080E90D0:: @ 080E90D0 + .incbin "baserom.gba", 0x0E90D0, 0x0000010 + +gUnk_080E90E0:: @ 080E90E0 + .incbin "baserom.gba", 0x0E90E0, 0x0000020 + +gUnk_080E9100:: @ 080E9100 + .incbin "baserom.gba", 0x0E9100, 0x0000030 + +gUnk_080E9130:: @ 080E9130 + .incbin "baserom.gba", 0x0E9130, 0x0000040 + +gUnk_080E9170:: @ 080E9170 + .incbin "baserom.gba", 0x0E9170, 0x0000010 + +gUnk_080E9180:: @ 080E9180 + .incbin "baserom.gba", 0x0E9180, 0x0000020 + +gUnk_080E91A0:: @ 080E91A0 + .incbin "baserom.gba", 0x0E91A0, 0x0000060 + +gUnk_080E9200:: @ 080E9200 + .incbin "baserom.gba", 0x0E9200, 0x0000010 + +gUnk_080E9210:: @ 080E9210 + .incbin "baserom.gba", 0x0E9210, 0x0000010 + +gUnk_080E9220:: @ 080E9220 + .incbin "baserom.gba", 0x0E9220, 0x0000020 + +gUnk_080E9240:: @ 080E9240 + .incbin "baserom.gba", 0x0E9240, 0x0000090 + +gUnk_080E92D0:: @ 080E92D0 + .incbin "baserom.gba", 0x0E92D0, 0x0000030 + +gUnk_080E9300:: @ 080E9300 + .incbin "baserom.gba", 0x0E9300, 0x0000010 + +gUnk_080E9310:: @ 080E9310 + .incbin "baserom.gba", 0x0E9310, 0x0000020 + +gUnk_080E9330:: @ 080E9330 + .incbin "baserom.gba", 0x0E9330, 0x0000080 + +gUnk_080E93B0:: @ 080E93B0 + .incbin "baserom.gba", 0x0E93B0, 0x0000110 + +gUnk_080E94C0:: @ 080E94C0 + .incbin "baserom.gba", 0x0E94C0, 0x0000010 + +gUnk_080E94D0:: @ 080E94D0 + .incbin "baserom.gba", 0x0E94D0, 0x000001E + +gUnk_080E94EE:: @ 080E94EE + .incbin "baserom.gba", 0x0E94EE, 0x0000012 + +gUnk_080E9500:: @ 080E9500 + .incbin "baserom.gba", 0x0E9500, 0x0000018 + +gUnk_080E9518:: @ 080E9518 + .incbin "baserom.gba", 0x0E9518, 0x000002C + +gUnk_080E9544:: @ 080E9544 + .incbin "baserom.gba", 0x0E9544, 0x0000140 + +gUnk_080E9684:: @ 080E9684 + .incbin "baserom.gba", 0x0E9684, 0x0000010 + +gUnk_080E9694:: @ 080E9694 + .incbin "baserom.gba", 0x0E9694, 0x0000010 + +gUnk_080E96A4:: @ 080E96A4 + .incbin "baserom.gba", 0x0E96A4, 0x0000030 + +gUnk_080E96D4:: @ 080E96D4 + .incbin "baserom.gba", 0x0E96D4, 0x0000024 + +gUnk_080E96F8:: @ 080E96F8 + .incbin "baserom.gba", 0x0E96F8, 0x00000E0 + +gUnk_080E97D8:: @ 080E97D8 + .incbin "baserom.gba", 0x0E97D8, 0x0000040 + +gUnk_080E9818:: @ 080E9818 + .incbin "baserom.gba", 0x0E9818, 0x0000010 + +gUnk_080E9828:: @ 080E9828 + .incbin "baserom.gba", 0x0E9828, 0x0000020 + +gUnk_080E9848:: @ 080E9848 + .incbin "baserom.gba", 0x0E9848, 0x00000D0 + +gUnk_080E9918:: @ 080E9918 + .incbin "baserom.gba", 0x0E9918, 0x0000010 + +gUnk_080E9928:: @ 080E9928 + .incbin "baserom.gba", 0x0E9928, 0x0000010 + +gUnk_080E9938:: @ 080E9938 + .incbin "baserom.gba", 0x0E9938, 0x0000036 + +gUnk_080E996E:: @ 080E996E + .incbin "baserom.gba", 0x0E996E, 0x0000036 + +gUnk_080E99A4:: @ 080E99A4 + .incbin "baserom.gba", 0x0E99A4, 0x0000036 + +gUnk_080E99DA:: @ 080E99DA + .incbin "baserom.gba", 0x0E99DA, 0x0000036 + +gUnk_080E9A10:: @ 080E9A10 + .incbin "baserom.gba", 0x0E9A10, 0x0000030 + +gUnk_080E9A40:: @ 080E9A40 + .incbin "baserom.gba", 0x0E9A40, 0x0000020 + +gUnk_080E9A60:: @ 080E9A60 + .incbin "baserom.gba", 0x0E9A60, 0x0000060 + +gUnk_080E9AC0:: @ 080E9AC0 + .incbin "baserom.gba", 0x0E9AC0, 0x0000010 + +gUnk_080E9AD0:: @ 080E9AD0 + .incbin "baserom.gba", 0x0E9AD0, 0x0000020 + +gUnk_080E9AF0:: @ 080E9AF0 + .incbin "baserom.gba", 0x0E9AF0, 0x0000040 + +gUnk_080E9B30:: @ 080E9B30 + .incbin "baserom.gba", 0x0E9B30, 0x0000040 + +gUnk_080E9B70:: @ 080E9B70 + .incbin "baserom.gba", 0x0E9B70, 0x0000010 + +gUnk_080E9B80:: @ 080E9B80 + .incbin "baserom.gba", 0x0E9B80, 0x0000020 + +gUnk_080E9BA0:: @ 080E9BA0 + .incbin "baserom.gba", 0x0E9BA0, 0x0000060 + +gUnk_080E9C00:: @ 080E9C00 + .incbin "baserom.gba", 0x0E9C00, 0x0000030 + +gUnk_080E9C30:: @ 080E9C30 + .incbin "baserom.gba", 0x0E9C30, 0x0000010 + +gUnk_080E9C40:: @ 080E9C40 + .incbin "baserom.gba", 0x0E9C40, 0x0000020 + +gUnk_080E9C60:: @ 080E9C60 + .incbin "baserom.gba", 0x0E9C60, 0x0000030 + +gUnk_080E9C90:: @ 080E9C90 + .incbin "baserom.gba", 0x0E9C90, 0x0000030 + +gUnk_080E9CC0:: @ 080E9CC0 + .incbin "baserom.gba", 0x0E9CC0, 0x0000010 + +gUnk_080E9CD0:: @ 080E9CD0 + .incbin "baserom.gba", 0x0E9CD0, 0x0000020 + +gUnk_080E9CF0:: @ 080E9CF0 + .incbin "baserom.gba", 0x0E9CF0, 0x0000060 + +gUnk_080E9D50:: @ 080E9D50 + .incbin "baserom.gba", 0x0E9D50, 0x0000010 + +gUnk_080E9D60:: @ 080E9D60 + .incbin "baserom.gba", 0x0E9D60, 0x0000018 + +gUnk_080E9D78:: @ 080E9D78 + .incbin "baserom.gba", 0x0E9D78, 0x0000030 + +gUnk_080E9DA8:: @ 080E9DA8 + .incbin "baserom.gba", 0x0E9DA8, 0x0000024 + +gUnk_080E9DCC:: @ 080E9DCC + .incbin "baserom.gba", 0x0E9DCC, 0x0000020 + +gUnk_080E9DEC:: @ 080E9DEC + .incbin "baserom.gba", 0x0E9DEC, 0x0000030 + +gUnk_080E9E1C:: @ 080E9E1C + .incbin "baserom.gba", 0x0E9E1C, 0x0000010 + +gUnk_080E9E2C:: @ 080E9E2C + .incbin "baserom.gba", 0x0E9E2C, 0x0000020 + +gUnk_080E9E4C:: @ 080E9E4C + .incbin "baserom.gba", 0x0E9E4C, 0x0000020 + +gUnk_080E9E6C:: @ 080E9E6C + .incbin "baserom.gba", 0x0E9E6C, 0x0000040 + +gUnk_080E9EAC:: @ 080E9EAC + .incbin "baserom.gba", 0x0E9EAC, 0x0000018 + +gUnk_080E9EC4:: @ 080E9EC4 + .incbin "baserom.gba", 0x0E9EC4, 0x000001E + +gUnk_080E9EE2:: @ 080E9EE2 + .incbin "baserom.gba", 0x0E9EE2, 0x000001E + +gUnk_080E9F00:: @ 080E9F00 + .incbin "baserom.gba", 0x0E9F00, 0x0000020 + +gUnk_080E9F20:: @ 080E9F20 + .incbin "baserom.gba", 0x0E9F20, 0x000002C + +gUnk_080E9F4C:: @ 080E9F4C + .incbin "baserom.gba", 0x0E9F4C, 0x0000150 + +gUnk_080EA09C:: @ 080EA09C + .incbin "baserom.gba", 0x0EA09C, 0x0000050 + +gUnk_080EA0EC:: @ 080EA0EC + .incbin "baserom.gba", 0x0EA0EC, 0x0000020 + +gUnk_080EA10C:: @ 080EA10C + .incbin "baserom.gba", 0x0EA10C, 0x0000018 + +gUnk_080EA124:: @ 080EA124 + .incbin "baserom.gba", 0x0EA124, 0x0000030 + +gUnk_080EA154:: @ 080EA154 + .incbin "baserom.gba", 0x0EA154, 0x0000050 + +gUnk_080EA1A4:: @ 080EA1A4 + .incbin "baserom.gba", 0x0EA1A4, 0x0000070 + +gUnk_080EA214:: @ 080EA214 + .incbin "baserom.gba", 0x0EA214, 0x000002C + +gUnk_080EA240:: @ 080EA240 + .incbin "baserom.gba", 0x0EA240, 0x0000020 + +gUnk_080EA260:: @ 080EA260 + .incbin "baserom.gba", 0x0EA260, 0x0000080 + +gUnk_080EA2E0:: @ 080EA2E0 + .incbin "baserom.gba", 0x0EA2E0, 0x0000018 + +gUnk_080EA2F8:: @ 080EA2F8 + .incbin "baserom.gba", 0x0EA2F8, 0x0000020 + +gUnk_080EA318:: @ 080EA318 + .incbin "baserom.gba", 0x0EA318, 0x00000F0 + +gUnk_080EA408:: @ 080EA408 + .incbin "baserom.gba", 0x0EA408, 0x0000010 + +gUnk_080EA418:: @ 080EA418 + .incbin "baserom.gba", 0x0EA418, 0x0000010 + +gUnk_080EA428:: @ 080EA428 + .incbin "baserom.gba", 0x0EA428, 0x0000050 + +gUnk_080EA478:: @ 080EA478 + .incbin "baserom.gba", 0x0EA478, 0x000001E + +gUnk_080EA496:: @ 080EA496 + .incbin "baserom.gba", 0x0EA496, 0x0000026 + +gUnk_080EA4BC:: @ 080EA4BC + .incbin "baserom.gba", 0x0EA4BC, 0x000002C + +gUnk_080EA4E8:: @ 080EA4E8 + .incbin "baserom.gba", 0x0EA4E8, 0x0000030 + +gUnk_080EA518:: @ 080EA518 + .incbin "baserom.gba", 0x0EA518, 0x0000010 + +gUnk_080EA528:: @ 080EA528 + .incbin "baserom.gba", 0x0EA528, 0x0000010 + +gUnk_080EA538:: @ 080EA538 + .incbin "baserom.gba", 0x0EA538, 0x0000020 + +gUnk_080EA558:: @ 080EA558 + .incbin "baserom.gba", 0x0EA558, 0x0000100 + +gUnk_080EA658:: @ 080EA658 + .incbin "baserom.gba", 0x0EA658, 0x0000080 + +gUnk_080EA6D8:: @ 080EA6D8 + .incbin "baserom.gba", 0x0EA6D8, 0x0000010 + +gUnk_080EA6E8:: @ 080EA6E8 + .incbin "baserom.gba", 0x0EA6E8, 0x0000020 + +gUnk_080EA708:: @ 080EA708 + .incbin "baserom.gba", 0x0EA708, 0x00000A0 + +gUnk_080EA7A8:: @ 080EA7A8 + .incbin "baserom.gba", 0x0EA7A8, 0x0000010 + +gUnk_080EA7B8:: @ 080EA7B8 + .incbin "baserom.gba", 0x0EA7B8, 0x0000010 + +gUnk_080EA7C8:: @ 080EA7C8 + .incbin "baserom.gba", 0x0EA7C8, 0x0000020 + +gUnk_080EA7E8:: @ 080EA7E8 + .incbin "baserom.gba", 0x0EA7E8, 0x0000180 + +gUnk_080EA968:: @ 080EA968 + .incbin "baserom.gba", 0x0EA968, 0x0000050 + +gUnk_080EA9B8:: @ 080EA9B8 + .incbin "baserom.gba", 0x0EA9B8, 0x0000028 + +gUnk_080EA9E0:: @ 080EA9E0 + .incbin "baserom.gba", 0x0EA9E0, 0x0000020 + +gUnk_080EAA00:: @ 080EAA00 + .incbin "baserom.gba", 0x0EAA00, 0x0000030 + +gUnk_080EAA30:: @ 080EAA30 + .incbin "baserom.gba", 0x0EAA30, 0x0000010 + +gUnk_080EAA40:: @ 080EAA40 + .incbin "baserom.gba", 0x0EAA40, 0x0000010 + +gUnk_080EAA50:: @ 080EAA50 + .incbin "baserom.gba", 0x0EAA50, 0x0000008 + +gUnk_080EAA58:: @ 080EAA58 + .incbin "baserom.gba", 0x0EAA58, 0x0000020 + +gUnk_080EAA78:: @ 080EAA78 + .incbin "baserom.gba", 0x0EAA78, 0x0000040 + +gUnk_080EAAB8:: @ 080EAAB8 + .incbin "baserom.gba", 0x0EAAB8, 0x0000020 + +gUnk_080EAAD8:: @ 080EAAD8 + .incbin "baserom.gba", 0x0EAAD8, 0x0000020 + +gUnk_080EAAF8:: @ 080EAAF8 + .incbin "baserom.gba", 0x0EAAF8, 0x0000008 + +gUnk_080EAB00:: @ 080EAB00 + .incbin "baserom.gba", 0x0EAB00, 0x0000020 + +gUnk_080EAB20:: @ 080EAB20 + .incbin "baserom.gba", 0x0EAB20, 0x0000070 + +gUnk_080EAB90:: @ 080EAB90 + .incbin "baserom.gba", 0x0EAB90, 0x0000010 + +gUnk_080EABA0:: @ 080EABA0 + .incbin "baserom.gba", 0x0EABA0, 0x0000008 + +gUnk_080EABA8:: @ 080EABA8 + .incbin "baserom.gba", 0x0EABA8, 0x0000020 + +gUnk_080EABC8:: @ 080EABC8 + .incbin "baserom.gba", 0x0EABC8, 0x0000030 + +gUnk_080EABF8:: @ 080EABF8 + .incbin "baserom.gba", 0x0EABF8, 0x0000020 + +gUnk_080EAC18:: @ 080EAC18 + .incbin "baserom.gba", 0x0EAC18, 0x0000020 + +gUnk_080EAC38:: @ 080EAC38 + .incbin "baserom.gba", 0x0EAC38, 0x0000008 + +gUnk_080EAC40:: @ 080EAC40 + .incbin "baserom.gba", 0x0EAC40, 0x0000020 + +gUnk_080EAC60:: @ 080EAC60 + .incbin "baserom.gba", 0x0EAC60, 0x0000030 + +gUnk_080EAC90:: @ 080EAC90 + .incbin "baserom.gba", 0x0EAC90, 0x0000010 + +gUnk_080EACA0:: @ 080EACA0 + .incbin "baserom.gba", 0x0EACA0, 0x0000008 + +gUnk_080EACA8:: @ 080EACA8 + .incbin "baserom.gba", 0x0EACA8, 0x0000020 + +gUnk_080EACC8:: @ 080EACC8 + .incbin "baserom.gba", 0x0EACC8, 0x0000030 + +gUnk_080EACF8:: @ 080EACF8 + .incbin "baserom.gba", 0x0EACF8, 0x0000010 + +gUnk_080EAD08:: @ 080EAD08 + .incbin "baserom.gba", 0x0EAD08, 0x0000010 + +gUnk_080EAD18:: @ 080EAD18 + .incbin "baserom.gba", 0x0EAD18, 0x0000020 + +gUnk_080EAD38:: @ 080EAD38 + .incbin "baserom.gba", 0x0EAD38, 0x0000010 + +gUnk_080EAD48:: @ 080EAD48 + .incbin "baserom.gba", 0x0EAD48, 0x0000020 + +gUnk_080EAD68:: @ 080EAD68 + .incbin "baserom.gba", 0x0EAD68, 0x0000050 + +gUnk_080EADB8:: @ 080EADB8 + .incbin "baserom.gba", 0x0EADB8, 0x0000030 + +gUnk_080EADE8:: @ 080EADE8 + .incbin "baserom.gba", 0x0EADE8, 0x0000010 + +gUnk_080EADF8:: @ 080EADF8 + .incbin "baserom.gba", 0x0EADF8, 0x0000008 + +gUnk_080EAE00:: @ 080EAE00 + .incbin "baserom.gba", 0x0EAE00, 0x0000020 + +gUnk_080EAE20:: @ 080EAE20 + .incbin "baserom.gba", 0x0EAE20, 0x0000020 + +gUnk_080EAE40:: @ 080EAE40 + .incbin "baserom.gba", 0x0EAE40, 0x0000020 + +gUnk_080EAE60:: @ 080EAE60 + .incbin "baserom.gba", 0x0EAE60, 0x0000060 + +gUnk_080EAEC0:: @ 080EAEC0 + .incbin "baserom.gba", 0x0EAEC0, 0x0000060 + +gUnk_080EAF20:: @ 080EAF20 + .incbin "baserom.gba", 0x0EAF20, 0x0000020 + +gUnk_080EAF40:: @ 080EAF40 + .incbin "baserom.gba", 0x0EAF40, 0x0000020 + +gUnk_080EAF60:: @ 080EAF60 + .incbin "baserom.gba", 0x0EAF60, 0x0000010 + +gUnk_080EAF70:: @ 080EAF70 + .incbin "baserom.gba", 0x0EAF70, 0x0000008 + +gUnk_080EAF78:: @ 080EAF78 + .incbin "baserom.gba", 0x0EAF78, 0x0000020 + +gUnk_080EAF98:: @ 080EAF98 + .incbin "baserom.gba", 0x0EAF98, 0x0000020 + +gUnk_080EAFB8:: @ 080EAFB8 + .incbin "baserom.gba", 0x0EAFB8, 0x0000010 + +gUnk_080EAFC8:: @ 080EAFC8 + .incbin "baserom.gba", 0x0EAFC8, 0x0000008 + +gUnk_080EAFD0:: @ 080EAFD0 + .incbin "baserom.gba", 0x0EAFD0, 0x0000020 + +gUnk_080EAFF0:: @ 080EAFF0 + .incbin "baserom.gba", 0x0EAFF0, 0x0000080 + +gUnk_080EB070:: @ 080EB070 + .incbin "baserom.gba", 0x0EB070, 0x0000020 + +gUnk_080EB090:: @ 080EB090 + .incbin "baserom.gba", 0x0EB090, 0x0000008 + +gUnk_080EB098:: @ 080EB098 + .incbin "baserom.gba", 0x0EB098, 0x000000C + +gUnk_080EB0A4:: @ 080EB0A4 + .incbin "baserom.gba", 0x0EB0A4, 0x0000024 + +gUnk_080EB0C8:: @ 080EB0C8 + .incbin "baserom.gba", 0x0EB0C8, 0x0000050 + +gUnk_080EB118:: @ 080EB118 + .incbin "baserom.gba", 0x0EB118, 0x0000060 + +gUnk_080EB178:: @ 080EB178 + .incbin "baserom.gba", 0x0EB178, 0x0000008 + +gUnk_080EB180:: @ 080EB180 + .incbin "baserom.gba", 0x0EB180, 0x0000020 + +gUnk_080EB1A0:: @ 080EB1A0 + .incbin "baserom.gba", 0x0EB1A0, 0x0000010 + +gUnk_080EB1B0:: @ 080EB1B0 + .incbin "baserom.gba", 0x0EB1B0, 0x0000020 + +gUnk_080EB1D0:: @ 080EB1D0 + .incbin "baserom.gba", 0x0EB1D0, 0x0000008 + +gUnk_080EB1D8:: @ 080EB1D8 + .incbin "baserom.gba", 0x0EB1D8, 0x0000020 + +gUnk_080EB1F8:: @ 080EB1F8 + .incbin "baserom.gba", 0x0EB1F8, 0x0000090 + +gUnk_080EB288:: @ 080EB288 + .incbin "baserom.gba", 0x0EB288, 0x0000090 + +gUnk_080EB318:: @ 080EB318 + .incbin "baserom.gba", 0x0EB318, 0x0000008 + +gUnk_080EB320:: @ 080EB320 + .incbin "baserom.gba", 0x0EB320, 0x0000020 + +gUnk_080EB340:: @ 080EB340 + .incbin "baserom.gba", 0x0EB340, 0x00000B0 + +gUnk_080EB3F0:: @ 080EB3F0 + .incbin "baserom.gba", 0x0EB3F0, 0x0000030 + +gUnk_080EB420:: @ 080EB420 + .incbin "baserom.gba", 0x0EB420, 0x0000008 + +gUnk_080EB428:: @ 080EB428 + .incbin "baserom.gba", 0x0EB428, 0x0000018 + +gUnk_080EB440:: @ 080EB440 + .incbin "baserom.gba", 0x0EB440, 0x0000024 + +gUnk_080EB464:: @ 080EB464 + .incbin "baserom.gba", 0x0EB464, 0x0000040 + +gUnk_080EB4A4:: @ 080EB4A4 + .incbin "baserom.gba", 0x0EB4A4, 0x0000060 + +gUnk_080EB504:: @ 080EB504 + .incbin "baserom.gba", 0x0EB504, 0x0000008 + +gUnk_080EB50C:: @ 080EB50C + .incbin "baserom.gba", 0x0EB50C, 0x000001E + +gUnk_080EB52A:: @ 080EB52A + .incbin "baserom.gba", 0x0EB52A, 0x000001E + +gUnk_080EB548:: @ 080EB548 + .incbin "baserom.gba", 0x0EB548, 0x0000020 + +gUnk_080EB568:: @ 080EB568 + .incbin "baserom.gba", 0x0EB568, 0x000002C + +gUnk_080EB594:: @ 080EB594 + .incbin "baserom.gba", 0x0EB594, 0x0000040 + +gUnk_080EB5D4:: @ 080EB5D4 + .incbin "baserom.gba", 0x0EB5D4, 0x0000030 + +gUnk_080EB604:: @ 080EB604 + .incbin "baserom.gba", 0x0EB604, 0x0000060 + +gUnk_080EB664:: @ 080EB664 + .incbin "baserom.gba", 0x0EB664, 0x0000010 + +gUnk_080EB674:: @ 080EB674 + .incbin "baserom.gba", 0x0EB674, 0x0000010 + +gUnk_080EB684:: @ 080EB684 + .incbin "baserom.gba", 0x0EB684, 0x0000080 + +gUnk_080EB704:: @ 080EB704 + .incbin "baserom.gba", 0x0EB704, 0x0000020 + +gUnk_080EB724:: @ 080EB724 + .incbin "baserom.gba", 0x0EB724, 0x0000010 + +gUnk_080EB734:: @ 080EB734 + .incbin "baserom.gba", 0x0EB734, 0x0000010 + +gUnk_080EB744:: @ 080EB744 + .incbin "baserom.gba", 0x0EB744, 0x0000018 + +gUnk_080EB75C:: @ 080EB75C + .incbin "baserom.gba", 0x0EB75C, 0x0000020 + +gUnk_080EB77C:: @ 080EB77C + .incbin "baserom.gba", 0x0EB77C, 0x0000010 + +gUnk_080EB78C:: @ 080EB78C + .incbin "baserom.gba", 0x0EB78C, 0x0000010 + +gUnk_080EB79C:: @ 080EB79C + .incbin "baserom.gba", 0x0EB79C, 0x0000018 + +gUnk_080EB7B4:: @ 080EB7B4 + .incbin "baserom.gba", 0x0EB7B4, 0x0000020 + +gUnk_080EB7D4:: @ 080EB7D4 + .incbin "baserom.gba", 0x0EB7D4, 0x0000010 + +gUnk_080EB7E4:: @ 080EB7E4 + .incbin "baserom.gba", 0x0EB7E4, 0x0000010 + +gUnk_080EB7F4:: @ 080EB7F4 + .incbin "baserom.gba", 0x0EB7F4, 0x0000018 + +gUnk_080EB80C:: @ 080EB80C + .incbin "baserom.gba", 0x0EB80C, 0x0000020 + +gUnk_080EB82C:: @ 080EB82C + .incbin "baserom.gba", 0x0EB82C, 0x0000010 + +gUnk_080EB83C:: @ 080EB83C + .incbin "baserom.gba", 0x0EB83C, 0x0000010 + +gUnk_080EB84C:: @ 080EB84C + .incbin "baserom.gba", 0x0EB84C, 0x0000018 + +gUnk_080EB864:: @ 080EB864 + .incbin "baserom.gba", 0x0EB864, 0x0000020 + +gUnk_080EB884:: @ 080EB884 + .incbin "baserom.gba", 0x0EB884, 0x0000080 + +gUnk_080EB904:: @ 080EB904 + .incbin "baserom.gba", 0x0EB904, 0x00000B0 + +gUnk_080EB9B4:: @ 080EB9B4 + .incbin "baserom.gba", 0x0EB9B4, 0x0000010 + +gUnk_080EB9C4:: @ 080EB9C4 + .incbin "baserom.gba", 0x0EB9C4, 0x0000020 + +gUnk_080EB9E4:: @ 080EB9E4 + .incbin "baserom.gba", 0x0EB9E4, 0x0000010 + +gUnk_080EB9F4:: @ 080EB9F4 + .incbin "baserom.gba", 0x0EB9F4, 0x00000B0 + +gUnk_080EBAA4:: @ 080EBAA4 + .incbin "baserom.gba", 0x0EBAA4, 0x0000050 + +gUnk_080EBAF4:: @ 080EBAF4 + .incbin "baserom.gba", 0x0EBAF4, 0x0000040 + +gUnk_080EBB34:: @ 080EBB34 + .incbin "baserom.gba", 0x0EBB34, 0x0000070 + +gUnk_080EBBA4:: @ 080EBBA4 + .incbin "baserom.gba", 0x0EBBA4, 0x0000010 + +gUnk_080EBBB4:: @ 080EBBB4 + .incbin "baserom.gba", 0x0EBBB4, 0x0000060 + +gUnk_080EBC14:: @ 080EBC14 + .incbin "baserom.gba", 0x0EBC14, 0x0000024 + +gUnk_080EBC38:: @ 080EBC38 + .incbin "baserom.gba", 0x0EBC38, 0x0000040 + +gUnk_080EBC78:: @ 080EBC78 + .incbin "baserom.gba", 0x0EBC78, 0x0000010 + +gUnk_080EBC88:: @ 080EBC88 + .incbin "baserom.gba", 0x0EBC88, 0x0000010 + +gUnk_080EBC98:: @ 080EBC98 + .incbin "baserom.gba", 0x0EBC98, 0x0000020 + +gUnk_080EBCB8:: @ 080EBCB8 + .incbin "baserom.gba", 0x0EBCB8, 0x0000100 + +gUnk_080EBDB8:: @ 080EBDB8 + .incbin "baserom.gba", 0x0EBDB8, 0x0000070 + +gUnk_080EBE28:: @ 080EBE28 + .incbin "baserom.gba", 0x0EBE28, 0x0000010 + +gUnk_080EBE38:: @ 080EBE38 + .incbin "baserom.gba", 0x0EBE38, 0x0000020 + +gUnk_080EBE58:: @ 080EBE58 + .incbin "baserom.gba", 0x0EBE58, 0x00000A0 + +gUnk_080EBEF8:: @ 080EBEF8 + .incbin "baserom.gba", 0x0EBEF8, 0x0000010 + +gUnk_080EBF08:: @ 080EBF08 + .incbin "baserom.gba", 0x0EBF08, 0x0000038 + +gUnk_080EBF40:: @ 080EBF40 + .incbin "baserom.gba", 0x0EBF40, 0x0000020 + +gUnk_080EBF60:: @ 080EBF60 + .incbin "baserom.gba", 0x0EBF60, 0x0000050 + +gUnk_080EBFB0:: @ 080EBFB0 + .incbin "baserom.gba", 0x0EBFB0, 0x0000010 + +gUnk_080EBFC0:: @ 080EBFC0 + .incbin "baserom.gba", 0x0EBFC0, 0x0000018 + +gUnk_080EBFD8:: @ 080EBFD8 + .incbin "baserom.gba", 0x0EBFD8, 0x0000060 + +gUnk_080EC038:: @ 080EC038 + .incbin "baserom.gba", 0x0EC038, 0x0000024 + +gUnk_080EC05C:: @ 080EC05C + .incbin "baserom.gba", 0x0EC05C, 0x0000040 + +gUnk_080EC09C:: @ 080EC09C + .incbin "baserom.gba", 0x0EC09C, 0x0000010 + +gUnk_080EC0AC:: @ 080EC0AC + .incbin "baserom.gba", 0x0EC0AC, 0x0000010 + +gUnk_080EC0BC:: @ 080EC0BC + .incbin "baserom.gba", 0x0EC0BC, 0x0000020 + +gUnk_080EC0DC:: @ 080EC0DC + .incbin "baserom.gba", 0x0EC0DC, 0x0000010 + +gUnk_080EC0EC:: @ 080EC0EC + .incbin "baserom.gba", 0x0EC0EC, 0x0000028 + +gUnk_080EC114:: @ 080EC114 + .incbin "baserom.gba", 0x0EC114, 0x00000E0 + +gUnk_080EC1F4:: @ 080EC1F4 + .incbin "baserom.gba", 0x0EC1F4, 0x0000010 + +gUnk_080EC204:: @ 080EC204 + .incbin "baserom.gba", 0x0EC204, 0x0000018 + +gUnk_080EC21C:: @ 080EC21C + .incbin "baserom.gba", 0x0EC21C, 0x0000020 + +gUnk_080EC23C:: @ 080EC23C + .incbin "baserom.gba", 0x0EC23C, 0x0000010 + +gUnk_080EC24C:: @ 080EC24C + .incbin "baserom.gba", 0x0EC24C, 0x0000030 + +gUnk_080EC27C:: @ 080EC27C + .incbin "baserom.gba", 0x0EC27C, 0x0000010 + +gUnk_080EC28C:: @ 080EC28C + .incbin "baserom.gba", 0x0EC28C, 0x0000020 + +gUnk_080EC2AC:: @ 080EC2AC + .incbin "baserom.gba", 0x0EC2AC, 0x0000020 + +gUnk_080EC2CC:: @ 080EC2CC + .incbin "baserom.gba", 0x0EC2CC, 0x0000080 + +gUnk_080EC34C:: @ 080EC34C + .incbin "baserom.gba", 0x0EC34C, 0x0000010 + +gUnk_080EC35C:: @ 080EC35C + .incbin "baserom.gba", 0x0EC35C, 0x0000018 + +gUnk_080EC374:: @ 080EC374 + .incbin "baserom.gba", 0x0EC374, 0x0000050 + +gUnk_080EC3C4:: @ 080EC3C4 + .incbin "baserom.gba", 0x0EC3C4, 0x0000024 + +gUnk_080EC3E8:: @ 080EC3E8 + .incbin "baserom.gba", 0x0EC3E8, 0x0000050 + +gUnk_080EC438:: @ 080EC438 + .incbin "baserom.gba", 0x0EC438, 0x0000060 + +gUnk_080EC498:: @ 080EC498 + .incbin "baserom.gba", 0x0EC498, 0x0000010 + +gUnk_080EC4A8:: @ 080EC4A8 + .incbin "baserom.gba", 0x0EC4A8, 0x0000020 + +gUnk_080EC4C8:: @ 080EC4C8 + .incbin "baserom.gba", 0x0EC4C8, 0x0000020 + +gUnk_080EC4E8:: @ 080EC4E8 + .incbin "baserom.gba", 0x0EC4E8, 0x0000080 + +gUnk_080EC568:: @ 080EC568 + .incbin "baserom.gba", 0x0EC568, 0x0000010 + +gUnk_080EC578:: @ 080EC578 + .incbin "baserom.gba", 0x0EC578, 0x0000018 + +gUnk_080EC590:: @ 080EC590 + .incbin "baserom.gba", 0x0EC590, 0x0000070 + +gUnk_080EC600:: @ 080EC600 + .incbin "baserom.gba", 0x0EC600, 0x0000024 + +gUnk_080EC624:: @ 080EC624 + .incbin "baserom.gba", 0x0EC624, 0x00000D0 + +gUnk_080EC6F4:: @ 080EC6F4 + .incbin "baserom.gba", 0x0EC6F4, 0x0000010 + +gUnk_080EC704:: @ 080EC704 + .incbin "baserom.gba", 0x0EC704, 0x0000028 + +gUnk_080EC72C:: @ 080EC72C + .incbin "baserom.gba", 0x0EC72C, 0x0000050 + +gUnk_080EC77C:: @ 080EC77C + .incbin "baserom.gba", 0x0EC77C, 0x0000024 + +gUnk_080EC7A0:: @ 080EC7A0 + .incbin "baserom.gba", 0x0EC7A0, 0x0000020 + +gUnk_080EC7C0:: @ 080EC7C0 + .incbin "baserom.gba", 0x0EC7C0, 0x0000010 + +gUnk_080EC7D0:: @ 080EC7D0 + .incbin "baserom.gba", 0x0EC7D0, 0x0000010 + +gUnk_080EC7E0:: @ 080EC7E0 + .incbin "baserom.gba", 0x0EC7E0, 0x0000020 + +gUnk_080EC800:: @ 080EC800 + .incbin "baserom.gba", 0x0EC800, 0x0000020 + +gUnk_080EC820:: @ 080EC820 + .incbin "baserom.gba", 0x0EC820, 0x0000080 + +gUnk_080EC8A0:: @ 080EC8A0 + .incbin "baserom.gba", 0x0EC8A0, 0x0000010 + +gUnk_080EC8B0:: @ 080EC8B0 + .incbin "baserom.gba", 0x0EC8B0, 0x0000018 + +gUnk_080EC8C8:: @ 080EC8C8 + .incbin "baserom.gba", 0x0EC8C8, 0x0000070 + +gUnk_080EC938:: @ 080EC938 + .incbin "baserom.gba", 0x0EC938, 0x0000024 + +gUnk_080EC95C:: @ 080EC95C + .incbin "baserom.gba", 0x0EC95C, 0x0000070 + +gUnk_080EC9CC:: @ 080EC9CC + .incbin "baserom.gba", 0x0EC9CC, 0x0000010 + +gUnk_080EC9DC:: @ 080EC9DC + .incbin "baserom.gba", 0x0EC9DC, 0x0000010 + +gUnk_080EC9EC:: @ 080EC9EC + .incbin "baserom.gba", 0x0EC9EC, 0x0000030 + +gUnk_080ECA1C:: @ 080ECA1C + .incbin "baserom.gba", 0x0ECA1C, 0x0000024 + +gUnk_080ECA40:: @ 080ECA40 + .incbin "baserom.gba", 0x0ECA40, 0x0000020 + +gUnk_080ECA60:: @ 080ECA60 + .incbin "baserom.gba", 0x0ECA60, 0x0000080 + +gUnk_080ECAE0:: @ 080ECAE0 + .incbin "baserom.gba", 0x0ECAE0, 0x0000010 + +gUnk_080ECAF0:: @ 080ECAF0 + .incbin "baserom.gba", 0x0ECAF0, 0x0000010 + +gUnk_080ECB00:: @ 080ECB00 + .incbin "baserom.gba", 0x0ECB00, 0x0000050 + +gUnk_080ECB50:: @ 080ECB50 + .incbin "baserom.gba", 0x0ECB50, 0x0000024 + +gUnk_080ECB74:: @ 080ECB74 + .incbin "baserom.gba", 0x0ECB74, 0x00000B0 + +gUnk_080ECC24:: @ 080ECC24 + .incbin "baserom.gba", 0x0ECC24, 0x0000010 + +gUnk_080ECC34:: @ 080ECC34 + .incbin "baserom.gba", 0x0ECC34, 0x0000010 + +gUnk_080ECC44:: @ 080ECC44 + .incbin "baserom.gba", 0x0ECC44, 0x0000020 + +gUnk_080ECC64:: @ 080ECC64 + .incbin "baserom.gba", 0x0ECC64, 0x000007C + +gUnk_080ECCE0:: @ 080ECCE0 + .incbin "baserom.gba", 0x0ECCE0, 0x0000014 + +gUnk_080ECCF4:: @ 080ECCF4 + .incbin "baserom.gba", 0x0ECCF4, 0x0000010 + +gUnk_080ECD04:: @ 080ECD04 + .incbin "baserom.gba", 0x0ECD04, 0x0000010 + +gUnk_080ECD14:: @ 080ECD14 + .incbin "baserom.gba", 0x0ECD14, 0x0000020 + +gUnk_080ECD34:: @ 080ECD34 + .incbin "baserom.gba", 0x0ECD34, 0x00000C0 + +gUnk_080ECDF4:: @ 080ECDF4 + .incbin "baserom.gba", 0x0ECDF4, 0x0000010 + +gUnk_080ECE04:: @ 080ECE04 + .incbin "baserom.gba", 0x0ECE04, 0x0000010 + +gUnk_080ECE14:: @ 080ECE14 + .incbin "baserom.gba", 0x0ECE14, 0x0000020 + +gUnk_080ECE34:: @ 080ECE34 + .incbin "baserom.gba", 0x0ECE34, 0x0000010 + +gUnk_080ECE44:: @ 080ECE44 + .incbin "baserom.gba", 0x0ECE44, 0x0000010 + +gUnk_080ECE54:: @ 080ECE54 + .incbin "baserom.gba", 0x0ECE54, 0x0000010 + +gUnk_080ECE64:: @ 080ECE64 + .incbin "baserom.gba", 0x0ECE64, 0x0000020 + +gUnk_080ECE84:: @ 080ECE84 + .incbin "baserom.gba", 0x0ECE84, 0x0000040 + +gUnk_080ECEC4:: @ 080ECEC4 + .incbin "baserom.gba", 0x0ECEC4, 0x0000010 + +gUnk_080ECED4:: @ 080ECED4 + .incbin "baserom.gba", 0x0ECED4, 0x0000010 + +gUnk_080ECEE4:: @ 080ECEE4 + .incbin "baserom.gba", 0x0ECEE4, 0x0000020 + +gUnk_080ECF04:: @ 080ECF04 + .incbin "baserom.gba", 0x0ECF04, 0x0000010 + +gUnk_080ECF14:: @ 080ECF14 + .incbin "baserom.gba", 0x0ECF14, 0x0000028 + +gUnk_080ECF3C:: @ 080ECF3C + .incbin "baserom.gba", 0x0ECF3C, 0x0000010 + +gUnk_080ECF4C:: @ 080ECF4C + .incbin "baserom.gba", 0x0ECF4C, 0x0000010 + +gUnk_080ECF5C:: @ 080ECF5C + .incbin "baserom.gba", 0x0ECF5C, 0x0000010 + +gUnk_080ECF6C:: @ 080ECF6C + .incbin "baserom.gba", 0x0ECF6C, 0x0000020 + +gUnk_080ECF8C:: @ 080ECF8C + .incbin "baserom.gba", 0x0ECF8C, 0x0000020 + +gUnk_080ECFAC:: @ 080ECFAC + .incbin "baserom.gba", 0x0ECFAC, 0x0000010 + +gUnk_080ECFBC:: @ 080ECFBC + .incbin "baserom.gba", 0x0ECFBC, 0x0000010 + +gUnk_080ECFCC:: @ 080ECFCC + .incbin "baserom.gba", 0x0ECFCC, 0x0000040 + +gUnk_080ED00C:: @ 080ED00C + .incbin "baserom.gba", 0x0ED00C, 0x0000020 + +gUnk_080ED02C:: @ 080ED02C + .incbin "baserom.gba", 0x0ED02C, 0x0000080 + +gUnk_080ED0AC:: @ 080ED0AC + .incbin "baserom.gba", 0x0ED0AC, 0x0000030 + +gUnk_080ED0DC:: @ 080ED0DC + .incbin "baserom.gba", 0x0ED0DC, 0x0000020 + +gUnk_080ED0FC:: @ 080ED0FC + .incbin "baserom.gba", 0x0ED0FC, 0x0000020 + +gUnk_080ED11C:: @ 080ED11C + .incbin "baserom.gba", 0x0ED11C, 0x0000010 + +gUnk_080ED12C:: @ 080ED12C + .incbin "baserom.gba", 0x0ED12C, 0x0000030 + +gUnk_080ED15C:: @ 080ED15C + .incbin "baserom.gba", 0x0ED15C, 0x0000018 + +gUnk_080ED174:: @ 080ED174 + .incbin "baserom.gba", 0x0ED174, 0x0000020 + +gUnk_080ED194:: @ 080ED194 + .incbin "baserom.gba", 0x0ED194, 0x0000050 + +gUnk_080ED1E4:: @ 080ED1E4 + .incbin "baserom.gba", 0x0ED1E4, 0x0000050 + +gUnk_080ED234:: @ 080ED234 + .incbin "baserom.gba", 0x0ED234, 0x0000020 + +gUnk_080ED254:: @ 080ED254 + .incbin "baserom.gba", 0x0ED254, 0x0000010 + +gUnk_080ED264:: @ 080ED264 + .incbin "baserom.gba", 0x0ED264, 0x0000018 + +gUnk_080ED27C:: @ 080ED27C + .incbin "baserom.gba", 0x0ED27C, 0x0000030 + +gUnk_080ED2AC:: @ 080ED2AC + .incbin "baserom.gba", 0x0ED2AC, 0x0000024 + +gUnk_080ED2D0:: @ 080ED2D0 + .incbin "baserom.gba", 0x0ED2D0, 0x0000020 + +gUnk_080ED2F0:: @ 080ED2F0 + .incbin "baserom.gba", 0x0ED2F0, 0x0000010 + +gUnk_080ED300:: @ 080ED300 + .incbin "baserom.gba", 0x0ED300, 0x0000018 + +gUnk_080ED318:: @ 080ED318 + .incbin "baserom.gba", 0x0ED318, 0x0000020 + +gUnk_080ED338:: @ 080ED338 + .incbin "baserom.gba", 0x0ED338, 0x0000010 + +gUnk_080ED348:: @ 080ED348 + .incbin "baserom.gba", 0x0ED348, 0x0000030 + +gUnk_080ED378:: @ 080ED378 + .incbin "baserom.gba", 0x0ED378, 0x0000010 + +gUnk_080ED388:: @ 080ED388 + .incbin "baserom.gba", 0x0ED388, 0x0000020 + +gUnk_080ED3A8:: @ 080ED3A8 + .incbin "baserom.gba", 0x0ED3A8, 0x0000010 + +gUnk_080ED3B8:: @ 080ED3B8 + .incbin "baserom.gba", 0x0ED3B8, 0x0000010 + +gUnk_080ED3C8:: @ 080ED3C8 + .incbin "baserom.gba", 0x0ED3C8, 0x0000010 + +gUnk_080ED3D8:: @ 080ED3D8 + .incbin "baserom.gba", 0x0ED3D8, 0x0000020 + +gUnk_080ED3F8:: @ 080ED3F8 + .incbin "baserom.gba", 0x0ED3F8, 0x0000070 + +gUnk_080ED468:: @ 080ED468 + .incbin "baserom.gba", 0x0ED468, 0x0000020 + +gUnk_080ED488:: @ 080ED488 + .incbin "baserom.gba", 0x0ED488, 0x0000030 + +gUnk_080ED4B8:: @ 080ED4B8 + .incbin "baserom.gba", 0x0ED4B8, 0x0000010 + +gUnk_080ED4C8:: @ 080ED4C8 + .incbin "baserom.gba", 0x0ED4C8, 0x0000020 + +gUnk_080ED4E8:: @ 080ED4E8 + .incbin "baserom.gba", 0x0ED4E8, 0x0000050 + +gUnk_080ED538:: @ 080ED538 + .incbin "baserom.gba", 0x0ED538, 0x0000030 + +gUnk_080ED568:: @ 080ED568 + .incbin "baserom.gba", 0x0ED568, 0x0000010 + +gUnk_080ED578:: @ 080ED578 + .incbin "baserom.gba", 0x0ED578, 0x0000010 + +gUnk_080ED588:: @ 080ED588 + .incbin "baserom.gba", 0x0ED588, 0x0000020 + +gUnk_080ED5A8:: @ 080ED5A8 + .incbin "baserom.gba", 0x0ED5A8, 0x0000010 + +gUnk_080ED5B8:: @ 080ED5B8 + .incbin "baserom.gba", 0x0ED5B8, 0x0000020 + +gUnk_080ED5D8:: @ 080ED5D8 + .incbin "baserom.gba", 0x0ED5D8, 0x0000060 + +gUnk_080ED638:: @ 080ED638 + .incbin "baserom.gba", 0x0ED638, 0x0000010 + +gUnk_080ED648:: @ 080ED648 + .incbin "baserom.gba", 0x0ED648, 0x0000020 + +gUnk_080ED668:: @ 080ED668 + .incbin "baserom.gba", 0x0ED668, 0x0000080 + +gUnk_080ED6E8:: @ 080ED6E8 + .incbin "baserom.gba", 0x0ED6E8, 0x0000010 + +gUnk_080ED6F8:: @ 080ED6F8 + .incbin "baserom.gba", 0x0ED6F8, 0x0000010 + +gUnk_080ED708:: @ 080ED708 + .incbin "baserom.gba", 0x0ED708, 0x0000018 + +gUnk_080ED720:: @ 080ED720 + .incbin "baserom.gba", 0x0ED720, 0x0000024 + +gUnk_080ED744:: @ 080ED744 + .incbin "baserom.gba", 0x0ED744, 0x0000070 + +gUnk_080ED7B4:: @ 080ED7B4 + .incbin "baserom.gba", 0x0ED7B4, 0x0000020 + +gUnk_080ED7D4:: @ 080ED7D4 + .incbin "baserom.gba", 0x0ED7D4, 0x0000018 + +gUnk_080ED7EC:: @ 080ED7EC + .incbin "baserom.gba", 0x0ED7EC, 0x00000E0 + +gUnk_080ED8CC:: @ 080ED8CC + .incbin "baserom.gba", 0x0ED8CC, 0x0000024 + +gUnk_080ED8F0:: @ 080ED8F0 + .incbin "baserom.gba", 0x0ED8F0, 0x0000010 + +gUnk_080ED900:: @ 080ED900 + .incbin "baserom.gba", 0x0ED900, 0x0000030 + +gUnk_080ED930:: @ 080ED930 + .incbin "baserom.gba", 0x0ED930, 0x0000010 + +gUnk_080ED940:: @ 080ED940 + .incbin "baserom.gba", 0x0ED940, 0x0000020 + +gUnk_080ED960:: @ 080ED960 + .incbin "baserom.gba", 0x0ED960, 0x0000010 + +gUnk_080ED970:: @ 080ED970 + .incbin "baserom.gba", 0x0ED970, 0x0000070 + +gUnk_080ED9E0:: @ 080ED9E0 + .incbin "baserom.gba", 0x0ED9E0, 0x0000010 + +gUnk_080ED9F0:: @ 080ED9F0 + .incbin "baserom.gba", 0x0ED9F0, 0x0000020 + +gUnk_080EDA10:: @ 080EDA10 + .incbin "baserom.gba", 0x0EDA10, 0x0000010 + +gUnk_080EDA20:: @ 080EDA20 + .incbin "baserom.gba", 0x0EDA20, 0x0000040 + +gUnk_080EDA60:: @ 080EDA60 + .incbin "baserom.gba", 0x0EDA60, 0x0000010 + +gUnk_080EDA70:: @ 080EDA70 + .incbin "baserom.gba", 0x0EDA70, 0x0000020 + +gUnk_080EDA90:: @ 080EDA90 + .incbin "baserom.gba", 0x0EDA90, 0x0000070 + +gUnk_080EDB00:: @ 080EDB00 + .incbin "baserom.gba", 0x0EDB00, 0x0000010 + +gUnk_080EDB10:: @ 080EDB10 + .incbin "baserom.gba", 0x0EDB10, 0x0000010 + +gUnk_080EDB20:: @ 080EDB20 + .incbin "baserom.gba", 0x0EDB20, 0x0000020 + +gUnk_080EDB40:: @ 080EDB40 + .incbin "baserom.gba", 0x0EDB40, 0x0000010 + +gUnk_080EDB50:: @ 080EDB50 + .incbin "baserom.gba", 0x0EDB50, 0x0000040 + +gUnk_080EDB90:: @ 080EDB90 + .incbin "baserom.gba", 0x0EDB90, 0x0000018 + +gUnk_080EDBA8:: @ 080EDBA8 + .incbin "baserom.gba", 0x0EDBA8, 0x0000020 + +gUnk_080EDBC8:: @ 080EDBC8 + .incbin "baserom.gba", 0x0EDBC8, 0x0000010 + +gUnk_080EDBD8:: @ 080EDBD8 + .incbin "baserom.gba", 0x0EDBD8, 0x0000050 + +gUnk_080EDC28:: @ 080EDC28 + .incbin "baserom.gba", 0x0EDC28, 0x0000018 + +gUnk_080EDC40:: @ 080EDC40 + .incbin "baserom.gba", 0x0EDC40, 0x0000020 + +gUnk_080EDC60:: @ 080EDC60 + .incbin "baserom.gba", 0x0EDC60, 0x0000010 + +gUnk_080EDC70:: @ 080EDC70 + .incbin "baserom.gba", 0x0EDC70, 0x0000030 + +gUnk_080EDCA0:: @ 080EDCA0 + .incbin "baserom.gba", 0x0EDCA0, 0x0000018 + +gUnk_080EDCB8:: @ 080EDCB8 + .incbin "baserom.gba", 0x0EDCB8, 0x0000020 + +gUnk_080EDCD8:: @ 080EDCD8 + .incbin "baserom.gba", 0x0EDCD8, 0x0000010 + +gUnk_080EDCE8:: @ 080EDCE8 + .incbin "baserom.gba", 0x0EDCE8, 0x0000020 + +gUnk_080EDD08:: @ 080EDD08 + .incbin "baserom.gba", 0x0EDD08, 0x0000050 + +gUnk_080EDD58:: @ 080EDD58 + .incbin "baserom.gba", 0x0EDD58, 0x0000010 + +gUnk_080EDD68:: @ 080EDD68 + .incbin "baserom.gba", 0x0EDD68, 0x0000020 + +gUnk_080EDD88:: @ 080EDD88 + .incbin "baserom.gba", 0x0EDD88, 0x0000040 + +gUnk_080EDDC8:: @ 080EDDC8 + .incbin "baserom.gba", 0x0EDDC8, 0x0000040 + +gUnk_080EDE08:: @ 080EDE08 + .incbin "baserom.gba", 0x0EDE08, 0x0000040 + +gUnk_080EDE48:: @ 080EDE48 + .incbin "baserom.gba", 0x0EDE48, 0x0000018 + +gUnk_080EDE60:: @ 080EDE60 + .incbin "baserom.gba", 0x0EDE60, 0x0000020 + +gUnk_080EDE80:: @ 080EDE80 + .incbin "baserom.gba", 0x0EDE80, 0x0000030 + +gUnk_080EDEB0:: @ 080EDEB0 + .incbin "baserom.gba", 0x0EDEB0, 0x0000040 + +gUnk_080EDEF0:: @ 080EDEF0 + .incbin "baserom.gba", 0x0EDEF0, 0x0000030 + +gUnk_080EDF20:: @ 080EDF20 + .incbin "baserom.gba", 0x0EDF20, 0x0000020 + +gUnk_080EDF40:: @ 080EDF40 + .incbin "baserom.gba", 0x0EDF40, 0x0000020 + +gUnk_080EDF60:: @ 080EDF60 + .incbin "baserom.gba", 0x0EDF60, 0x0000050 + +gUnk_080EDFB0:: @ 080EDFB0 + .incbin "baserom.gba", 0x0EDFB0, 0x0000020 + +gUnk_080EDFD0:: @ 080EDFD0 + .incbin "baserom.gba", 0x0EDFD0, 0x0000090 + +gUnk_080EE060:: @ 080EE060 + .incbin "baserom.gba", 0x0EE060, 0x0000018 + +gUnk_080EE078:: @ 080EE078 + .incbin "baserom.gba", 0x0EE078, 0x0000020 + +gUnk_080EE098:: @ 080EE098 + .incbin "baserom.gba", 0x0EE098, 0x00000A0 + +gUnk_080EE138:: @ 080EE138 + .incbin "baserom.gba", 0x0EE138, 0x0000010 + +gUnk_080EE148:: @ 080EE148 + .incbin "baserom.gba", 0x0EE148, 0x0000010 + +gUnk_080EE158:: @ 080EE158 + .incbin "baserom.gba", 0x0EE158, 0x0000020 + +gUnk_080EE178:: @ 080EE178 + .incbin "baserom.gba", 0x0EE178, 0x00000B0 + +gUnk_080EE228:: @ 080EE228 + .incbin "baserom.gba", 0x0EE228, 0x0000010 + +gUnk_080EE238:: @ 080EE238 + .incbin "baserom.gba", 0x0EE238, 0x0000010 + +gUnk_080EE248:: @ 080EE248 + .incbin "baserom.gba", 0x0EE248, 0x0000018 + +gUnk_080EE260:: @ 080EE260 + .incbin "baserom.gba", 0x0EE260, 0x0000024 + +gUnk_080EE284:: @ 080EE284 + .incbin "baserom.gba", 0x0EE284, 0x0000020 + +gUnk_080EE2A4:: @ 080EE2A4 + .incbin "baserom.gba", 0x0EE2A4, 0x0000030 + +gUnk_080EE2D4:: @ 080EE2D4 + .incbin "baserom.gba", 0x0EE2D4, 0x0000030 + +gUnk_080EE304:: @ 080EE304 + .incbin "baserom.gba", 0x0EE304, 0x0000010 + +gUnk_080EE314:: @ 080EE314 + .incbin "baserom.gba", 0x0EE314, 0x0000029 + +gUnk_080EE33D:: @ 080EE33D + .incbin "baserom.gba", 0x0EE33D, 0x0000017 + +gUnk_080EE354:: @ 080EE354 + .incbin "baserom.gba", 0x0EE354, 0x0000020 + +gUnk_080EE374:: @ 080EE374 + .incbin "baserom.gba", 0x0EE374, 0x0000010 + +gUnk_080EE384:: @ 080EE384 + .incbin "baserom.gba", 0x0EE384, 0x0000020 + +gUnk_080EE3A4:: @ 080EE3A4 + .incbin "baserom.gba", 0x0EE3A4, 0x0000050 + +gUnk_080EE3F4:: @ 080EE3F4 + .incbin "baserom.gba", 0x0EE3F4, 0x0000010 + +gUnk_080EE404:: @ 080EE404 + .incbin "baserom.gba", 0x0EE404, 0x0000020 + +gUnk_080EE424:: @ 080EE424 + .incbin "baserom.gba", 0x0EE424, 0x0000080 + +gUnk_080EE4A4:: @ 080EE4A4 + .incbin "baserom.gba", 0x0EE4A4, 0x0000050 + +gUnk_080EE4F4:: @ 080EE4F4 + .incbin "baserom.gba", 0x0EE4F4, 0x00000D0 + +gUnk_080EE5C4:: @ 080EE5C4 + .incbin "baserom.gba", 0x0EE5C4, 0x0000018 + +gUnk_080EE5DC:: @ 080EE5DC + .incbin "baserom.gba", 0x0EE5DC, 0x0000040 + +gUnk_080EE61C:: @ 080EE61C + .incbin "baserom.gba", 0x0EE61C, 0x0000020 + +gUnk_080EE63C:: @ 080EE63C + .incbin "baserom.gba", 0x0EE63C, 0x0000010 + +gUnk_080EE64C:: @ 080EE64C + .incbin "baserom.gba", 0x0EE64C, 0x0000010 + +gUnk_080EE65C:: @ 080EE65C + .incbin "baserom.gba", 0x0EE65C, 0x0000010 + +gUnk_080EE66C:: @ 080EE66C + .incbin "baserom.gba", 0x0EE66C, 0x0000020 + +gUnk_080EE68C:: @ 080EE68C + .incbin "baserom.gba", 0x0EE68C, 0x0000090 + +gUnk_080EE71C:: @ 080EE71C + .incbin "baserom.gba", 0x0EE71C, 0x0000040 + +gUnk_080EE75C:: @ 080EE75C + .incbin "baserom.gba", 0x0EE75C, 0x0000010 + +gUnk_080EE76C:: @ 080EE76C + .incbin "baserom.gba", 0x0EE76C, 0x0000020 + +gUnk_080EE78C:: @ 080EE78C + .incbin "baserom.gba", 0x0EE78C, 0x0000020 + +gUnk_080EE7AC:: @ 080EE7AC + .incbin "baserom.gba", 0x0EE7AC, 0x0000010 + +gUnk_080EE7BC:: @ 080EE7BC + .incbin "baserom.gba", 0x0EE7BC, 0x0000020 + +gUnk_080EE7DC:: @ 080EE7DC + .incbin "baserom.gba", 0x0EE7DC, 0x0000010 + +gUnk_080EE7EC:: @ 080EE7EC + .incbin "baserom.gba", 0x0EE7EC, 0x0000020 + +gUnk_080EE80C:: @ 080EE80C + .incbin "baserom.gba", 0x0EE80C, 0x0000080 + +gUnk_080EE88C:: @ 080EE88C + .incbin "baserom.gba", 0x0EE88C, 0x0000070 + +gUnk_080EE8FC:: @ 080EE8FC + .incbin "baserom.gba", 0x0EE8FC, 0x0000020 + +gUnk_080EE91C:: @ 080EE91C + .incbin "baserom.gba", 0x0EE91C, 0x0000020 + +gUnk_080EE93C:: @ 080EE93C + .incbin "baserom.gba", 0x0EE93C, 0x0000020 + +gUnk_080EE95C:: @ 080EE95C + .incbin "baserom.gba", 0x0EE95C, 0x0000020 + +gUnk_080EE97C:: @ 080EE97C + .incbin "baserom.gba", 0x0EE97C, 0x0000020 + +gUnk_080EE99C:: @ 080EE99C + .incbin "baserom.gba", 0x0EE99C, 0x0000020 + +gUnk_080EE9BC:: @ 080EE9BC + .incbin "baserom.gba", 0x0EE9BC, 0x0000020 + +gUnk_080EE9DC:: @ 080EE9DC + .incbin "baserom.gba", 0x0EE9DC, 0x0000010 + +gUnk_080EE9EC:: @ 080EE9EC + .incbin "baserom.gba", 0x0EE9EC, 0x0000010 + +gUnk_080EE9FC:: @ 080EE9FC + .incbin "baserom.gba", 0x0EE9FC, 0x0000020 + +gUnk_080EEA1C:: @ 080EEA1C + .incbin "baserom.gba", 0x0EEA1C, 0x0000020 + +gUnk_080EEA3C:: @ 080EEA3C + .incbin "baserom.gba", 0x0EEA3C, 0x0000020 + +gUnk_080EEA5C:: @ 080EEA5C + .incbin "baserom.gba", 0x0EEA5C, 0x0000020 + +gUnk_080EEA7C:: @ 080EEA7C + .incbin "baserom.gba", 0x0EEA7C, 0x0000020 + +gUnk_080EEA9C:: @ 080EEA9C + .incbin "baserom.gba", 0x0EEA9C, 0x0000020 + +gUnk_080EEABC:: @ 080EEABC + .incbin "baserom.gba", 0x0EEABC, 0x0000020 + +gUnk_080EEADC:: @ 080EEADC + .incbin "baserom.gba", 0x0EEADC, 0x0000090 + +gUnk_080EEB6C:: @ 080EEB6C + .incbin "baserom.gba", 0x0EEB6C, 0x0000020 + +gUnk_080EEB8C:: @ 080EEB8C + .incbin "baserom.gba", 0x0EEB8C, 0x0000020 + +gUnk_080EEBAC:: @ 080EEBAC + .incbin "baserom.gba", 0x0EEBAC, 0x0000020 + +gUnk_080EEBCC:: @ 080EEBCC + .incbin "baserom.gba", 0x0EEBCC, 0x0000080 + +gUnk_080EEC4C:: @ 080EEC4C + .incbin "baserom.gba", 0x0EEC4C, 0x0000070 + +gUnk_080EECBC:: @ 080EECBC + .incbin "baserom.gba", 0x0EECBC, 0x0000020 + +gUnk_080EECDC:: @ 080EECDC + .incbin "baserom.gba", 0x0EECDC, 0x0000050 + +gUnk_080EED2C:: @ 080EED2C + .incbin "baserom.gba", 0x0EED2C, 0x000004E + +gUnk_080EED7A:: @ 080EED7A + .incbin "baserom.gba", 0x0EED7A, 0x0000012 + +gUnk_080EED8C:: @ 080EED8C + .incbin "baserom.gba", 0x0EED8C, 0x000000C + +gUnk_080EED98:: @ 080EED98 + .incbin "baserom.gba", 0x0EED98, 0x0000053 + +gUnk_080EEDEB:: @ 080EEDEB + .incbin "baserom.gba", 0x0EEDEB, 0x000000B + +gUnk_080EEDF6:: @ 080EEDF6 + .incbin "baserom.gba", 0x0EEDF6, 0x0000022 + +gUnk_080EEE18:: @ 080EEE18 + .incbin "baserom.gba", 0x0EEE18, 0x0000014 + +gUnk_080EEE2C:: @ 080EEE2C + .incbin "baserom.gba", 0x0EEE2C, 0x0000014 + +gUnk_080EEE40:: @ 080EEE40 + .incbin "baserom.gba", 0x0EEE40, 0x0000014 + +gUnk_080EEE54:: @ 080EEE54 + .incbin "baserom.gba", 0x0EEE54, 0x0000014 + +gUnk_080EEE68:: @ 080EEE68 + .incbin "baserom.gba", 0x0EEE68, 0x0000014 + +gUnk_080EEE7C:: @ 080EEE7C + .incbin "baserom.gba", 0x0EEE7C, 0x0000014 + +gUnk_080EEE90:: @ 080EEE90 + .incbin "baserom.gba", 0x0EEE90, 0x0000014 + +gUnk_080EEEA4:: @ 080EEEA4 + .incbin "baserom.gba", 0x0EEEA4, 0x0000014 + +gUnk_080EEEB8:: @ 080EEEB8 + .incbin "baserom.gba", 0x0EEEB8, 0x0000014 + +gUnk_080EEECC:: @ 080EEECC + .incbin "baserom.gba", 0x0EEECC, 0x0000014 + +gUnk_080EEEE0:: @ 080EEEE0 + .incbin "baserom.gba", 0x0EEEE0, 0x0000014 + +gUnk_080EEEF4:: @ 080EEEF4 + .incbin "baserom.gba", 0x0EEEF4, 0x0000014 + +gUnk_080EEF08:: @ 080EEF08 + .incbin "baserom.gba", 0x0EEF08, 0x0000014 + +gUnk_080EEF1C:: @ 080EEF1C + .incbin "baserom.gba", 0x0EEF1C, 0x0000014 + +gUnk_080EEF30:: @ 080EEF30 + .incbin "baserom.gba", 0x0EEF30, 0x0000014 + +gUnk_080EEF44:: @ 080EEF44 + .incbin "baserom.gba", 0x0EEF44, 0x0000014 + +gUnk_080EEF58:: @ 080EEF58 + .incbin "baserom.gba", 0x0EEF58, 0x0000041 + +gUnk_080EEF99:: @ 080EEF99 + .incbin "baserom.gba", 0x0EEF99, 0x0000013 + +gUnk_080EEFAC:: @ 080EEFAC + .incbin "baserom.gba", 0x0EEFAC, 0x0000014 + +gUnk_080EEFC0:: @ 080EEFC0 + .incbin "baserom.gba", 0x0EEFC0, 0x0000014 + +gUnk_080EEFD4:: @ 080EEFD4 + .incbin "baserom.gba", 0x0EEFD4, 0x0000014 + +gUnk_080EEFE8:: @ 080EEFE8 + .incbin "baserom.gba", 0x0EEFE8, 0x0000014 + +gUnk_080EEFFC:: @ 080EEFFC + .incbin "baserom.gba", 0x0EEFFC, 0x0000014 + +gUnk_080EF010:: @ 080EF010 + .incbin "baserom.gba", 0x0EF010, 0x0000014 + +gUnk_080EF024:: @ 080EF024 + .incbin "baserom.gba", 0x0EF024, 0x0000014 + +gUnk_080EF038:: @ 080EF038 + .incbin "baserom.gba", 0x0EF038, 0x0000014 + +gUnk_080EF04C:: @ 080EF04C + .incbin "baserom.gba", 0x0EF04C, 0x0000014 + +gUnk_080EF060:: @ 080EF060 + .incbin "baserom.gba", 0x0EF060, 0x0000014 + +gUnk_080EF074:: @ 080EF074 + .incbin "baserom.gba", 0x0EF074, 0x0000014 + +gUnk_080EF088:: @ 080EF088 + .incbin "baserom.gba", 0x0EF088, 0x0000014 + +gUnk_080EF09C:: @ 080EF09C + .incbin "baserom.gba", 0x0EF09C, 0x0000014 + +gUnk_080EF0B0:: @ 080EF0B0 + .incbin "baserom.gba", 0x0EF0B0, 0x0000034 + +gUnk_080EF0E4:: @ 080EF0E4 + .incbin "baserom.gba", 0x0EF0E4, 0x00004EC + +gUnk_080EF5D0:: @ 080EF5D0 + .incbin "baserom.gba", 0x0EF5D0, 0x0000018 + +gUnk_080EF5E8:: @ 080EF5E8 + .incbin "baserom.gba", 0x0EF5E8, 0x0000008 + +gUnk_080EF5F0:: @ 080EF5F0 + .incbin "baserom.gba", 0x0EF5F0, 0x0000020 + +gUnk_080EF610:: @ 080EF610 + .incbin "baserom.gba", 0x0EF610, 0x0000030 + +gUnk_080EF640:: @ 080EF640 + .incbin "baserom.gba", 0x0EF640, 0x0000020 + +gUnk_080EF660:: @ 080EF660 + .incbin "baserom.gba", 0x0EF660, 0x0000020 + +gUnk_080EF680:: @ 080EF680 + .incbin "baserom.gba", 0x0EF680, 0x0000020 + +gUnk_080EF6A0:: @ 080EF6A0 + .incbin "baserom.gba", 0x0EF6A0, 0x0000020 + +gUnk_080EF6C0:: @ 080EF6C0 + .incbin "baserom.gba", 0x0EF6C0, 0x0000020 + +gUnk_080EF6E0:: @ 080EF6E0 + .incbin "baserom.gba", 0x0EF6E0, 0x000001C + +gUnk_080EF6FC:: @ 080EF6FC + .incbin "baserom.gba", 0x0EF6FC, 0x0000004 + +gUnk_080EF700:: @ 080EF700 + .incbin "baserom.gba", 0x0EF700, 0x0000020 + +gUnk_080EF720:: @ 080EF720 + .incbin "baserom.gba", 0x0EF720, 0x0000020 + +gUnk_080EF740:: @ 080EF740 + .incbin "baserom.gba", 0x0EF740, 0x0000020 + +gUnk_080EF760:: @ 080EF760 + .incbin "baserom.gba", 0x0EF760, 0x0000040 + +gUnk_080EF7A0:: @ 080EF7A0 + .incbin "baserom.gba", 0x0EF7A0, 0x0000020 + +gUnk_080EF7C0:: @ 080EF7C0 + .incbin "baserom.gba", 0x0EF7C0, 0x0000131 + +gUnk_080EF8F1:: @ 080EF8F1 + .incbin "baserom.gba", 0x0EF8F1, 0x000007F + +gUnk_080EF970:: @ 080EF970 + .incbin "baserom.gba", 0x0EF970, 0x0000028 + +gUnk_080EF998:: @ 080EF998 + .incbin "baserom.gba", 0x0EF998, 0x0000028 + +gUnk_080EF9C0:: @ 080EF9C0 + .incbin "baserom.gba", 0x0EF9C0, 0x0000024 + +gUnk_080EF9E4:: @ 080EF9E4 + .incbin "baserom.gba", 0x0EF9E4, 0x000000B + +gUnk_080EF9EF:: @ 080EF9EF + .incbin "baserom.gba", 0x0EF9EF, 0x00000B5 + +gUnk_080EFAA4:: @ 080EFAA4 + .incbin "baserom.gba", 0x0EFAA4, 0x0000048 + +gUnk_080EFAEC:: @ 080EFAEC + .incbin "baserom.gba", 0x0EFAEC, 0x0000017 + +gUnk_080EFB03:: @ 080EFB03 + .incbin "baserom.gba", 0x0EFB03, 0x00000D5 + +gUnk_080EFBD8:: @ 080EFBD8 + .incbin "baserom.gba", 0x0EFBD8, 0x0000020 + +gUnk_080EFBF8:: @ 080EFBF8 + .incbin "baserom.gba", 0x0EFBF8, 0x0000008 + +gUnk_080EFC00:: @ 080EFC00 + .incbin "baserom.gba", 0x0EFC00, 0x0000011 + +gUnk_080EFC11:: @ 080EFC11 + .incbin "baserom.gba", 0x0EFC11, 0x000000F + +gUnk_080EFC20:: @ 080EFC20 + .incbin "baserom.gba", 0x0EFC20, 0x0000020 + +gUnk_080EFC40:: @ 080EFC40 + .incbin "baserom.gba", 0x0EFC40, 0x0000020 + +gUnk_080EFC60:: @ 080EFC60 + .incbin "baserom.gba", 0x0EFC60, 0x0000020 + +gUnk_080EFC80:: @ 080EFC80 + .incbin "baserom.gba", 0x0EFC80, 0x0000020 + +gUnk_080EFCA0:: @ 080EFCA0 + .incbin "baserom.gba", 0x0EFCA0, 0x0000020 + +gUnk_080EFCC0:: @ 080EFCC0 + .incbin "baserom.gba", 0x0EFCC0, 0x0000020 + +gUnk_080EFCE0:: @ 080EFCE0 + .incbin "baserom.gba", 0x0EFCE0, 0x00000B0 + +gUnk_080EFD90:: @ 080EFD90 + .incbin "baserom.gba", 0x0EFD90, 0x0000060 + +gUnk_080EFDF0:: @ 080EFDF0 + .incbin "baserom.gba", 0x0EFDF0, 0x0000008 + +gUnk_080EFDF8:: @ 080EFDF8 + .incbin "baserom.gba", 0x0EFDF8, 0x0000018 + +gUnk_080EFE10:: @ 080EFE10 + .incbin "baserom.gba", 0x0EFE10, 0x0000008 + +gUnk_080EFE18:: @ 080EFE18 + .incbin "baserom.gba", 0x0EFE18, 0x0000020 + +gUnk_080EFE38:: @ 080EFE38 + .incbin "baserom.gba", 0x0EFE38, 0x0000020 + +gUnk_080EFE58:: @ 080EFE58 + .incbin "baserom.gba", 0x0EFE58, 0x0000010 + +gUnk_080EFE68:: @ 080EFE68 + .incbin "baserom.gba", 0x0EFE68, 0x0000010 + +gUnk_080EFE78:: @ 080EFE78 + .incbin "baserom.gba", 0x0EFE78, 0x0000020 + +gUnk_080EFE98:: @ 080EFE98 + .incbin "baserom.gba", 0x0EFE98, 0x0000061 + +gUnk_080EFEF9:: @ 080EFEF9 + .incbin "baserom.gba", 0x0EFEF9, 0x000000F + +gUnk_080EFF08:: @ 080EFF08 + .incbin "baserom.gba", 0x0EFF08, 0x0000020 + +gUnk_080EFF28:: @ 080EFF28 + .incbin "baserom.gba", 0x0EFF28, 0x0000050 + +gUnk_080EFF78:: @ 080EFF78 + .incbin "baserom.gba", 0x0EFF78, 0x0000008 + +gUnk_080EFF80:: @ 080EFF80 + .incbin "baserom.gba", 0x0EFF80, 0x0000020 + +gUnk_080EFFA0:: @ 080EFFA0 + .incbin "baserom.gba", 0x0EFFA0, 0x0000050 + +gUnk_080EFFF0:: @ 080EFFF0 + .incbin "baserom.gba", 0x0EFFF0, 0x0000010 + +gUnk_080F0000:: @ 080F0000 + .incbin "baserom.gba", 0x0F0000, 0x0000008 + +gUnk_080F0008:: @ 080F0008 + .incbin "baserom.gba", 0x0F0008, 0x0000006 + +gUnk_080F000E:: @ 080F000E + .incbin "baserom.gba", 0x0F000E, 0x0000006 + +gUnk_080F0014:: @ 080F0014 + .incbin "baserom.gba", 0x0F0014, 0x0000006 + +gUnk_080F001A:: @ 080F001A + .incbin "baserom.gba", 0x0F001A, 0x0000008 + +gUnk_080F0022:: @ 080F0022 + .incbin "baserom.gba", 0x0F0022, 0x0000006 + +gUnk_080F0028:: @ 080F0028 + .incbin "baserom.gba", 0x0F0028, 0x0000008 + +gUnk_080F0030:: @ 080F0030 + .incbin "baserom.gba", 0x0F0030, 0x0000002 + +gUnk_080F0032:: @ 080F0032 + .incbin "baserom.gba", 0x0F0032, 0x0000001 + +gUnk_080F0033:: @ 080F0033 + .incbin "baserom.gba", 0x0F0033, 0x0000007 + +gUnk_080F003A:: @ 080F003A + .incbin "baserom.gba", 0x0F003A, 0x0000006 + +gUnk_080F0040:: @ 080F0040 + .incbin "baserom.gba", 0x0F0040, 0x0000010 + +gUnk_080F0050:: @ 080F0050 + .incbin "baserom.gba", 0x0F0050, 0x0000038 + +gUnk_080F0088:: @ 080F0088 + .incbin "baserom.gba", 0x0F0088, 0x0000008 + +gUnk_080F0090:: @ 080F0090 + .incbin "baserom.gba", 0x0F0090, 0x0000008 + +gUnk_080F0098:: @ 080F0098 + .incbin "baserom.gba", 0x0F0098, 0x0000006 + +gUnk_080F009E:: @ 080F009E + .incbin "baserom.gba", 0x0F009E, 0x0000002 + +gUnk_080F00A0:: @ 080F00A0 + .incbin "baserom.gba", 0x0F00A0, 0x0000024 + +gUnk_080F00C4:: @ 080F00C4 + .incbin "baserom.gba", 0x0F00C4, 0x0000010 + +gUnk_080F00D4:: @ 080F00D4 + .incbin "baserom.gba", 0x0F00D4, 0x0000010 + +gUnk_080F00E4:: @ 080F00E4 + .incbin "baserom.gba", 0x0F00E4, 0x0000010 + +gUnk_080F00F4:: @ 080F00F4 + .incbin "baserom.gba", 0x0F00F4, 0x0000005 + +gUnk_080F00F9:: @ 080F00F9 + .incbin "baserom.gba", 0x0F00F9, 0x0000006 + +gUnk_080F00FF:: @ 080F00FF + .incbin "baserom.gba", 0x0F00FF, 0x0000008 + +gUnk_080F0107:: @ 080F0107 + .incbin "baserom.gba", 0x0F0107, 0x000000D + +gUnk_080F0114:: @ 080F0114 + .incbin "baserom.gba", 0x0F0114, 0x0000038 + +gUnk_080F014C:: @ 080F014C + .incbin "baserom.gba", 0x0F014C, 0x0000038 + +gUnk_080F0184:: @ 080F0184 + .incbin "baserom.gba", 0x0F0184, 0x0000010 + +gUnk_080F0194:: @ 080F0194 + .incbin "baserom.gba", 0x0F0194, 0x0000010 + +gUnk_080F01A4:: @ 080F01A4 + .incbin "baserom.gba", 0x0F01A4, 0x0000030 + +gUnk_080F01D4:: @ 080F01D4 + .incbin "baserom.gba", 0x0F01D4, 0x0000010 + +gUnk_080F01E4:: @ 080F01E4 + .incbin "baserom.gba", 0x0F01E4, 0x0000014 + +gUnk_080F01F8:: @ 080F01F8 + .incbin "baserom.gba", 0x0F01F8, 0x0000010 + +gUnk_080F0208:: @ 080F0208 + .incbin "baserom.gba", 0x0F0208, 0x0000020 + +gUnk_080F0228:: @ 080F0228 + .incbin "baserom.gba", 0x0F0228, 0x0000008 + +gUnk_080F0230:: @ 080F0230 + .incbin "baserom.gba", 0x0F0230, 0x0000020 + +gUnk_080F0250:: @ 080F0250 + .incbin "baserom.gba", 0x0F0250, 0x0000020 + +gUnk_080F0270:: @ 080F0270 + .incbin "baserom.gba", 0x0F0270, 0x0000010 + +gUnk_080F0280:: @ 080F0280 + .incbin "baserom.gba", 0x0F0280, 0x0000010 + +gUnk_080F0290:: @ 080F0290 + .incbin "baserom.gba", 0x0F0290, 0x0000020 + +gUnk_080F02B0:: @ 080F02B0 + .incbin "baserom.gba", 0x0F02B0, 0x0000027 + +gUnk_080F02D7:: @ 080F02D7 + .incbin "baserom.gba", 0x0F02D7, 0x000001B + +gUnk_080F02F2:: @ 080F02F2 + .incbin "baserom.gba", 0x0F02F2, 0x0000009 + +gUnk_080F02FB:: @ 080F02FB + .incbin "baserom.gba", 0x0F02FB, 0x0000025 + +gUnk_080F0320:: @ 080F0320 + .incbin "baserom.gba", 0x0F0320, 0x0000040 + +gUnk_080F0360:: @ 080F0360 + .incbin "baserom.gba", 0x0F0360, 0x0000008 + +gUnk_080F0368:: @ 080F0368 + .incbin "baserom.gba", 0x0F0368, 0x0000020 + +gUnk_080F0388:: @ 080F0388 + .incbin "baserom.gba", 0x0F0388, 0x0000020 + +gUnk_080F03A8:: @ 080F03A8 + .incbin "baserom.gba", 0x0F03A8, 0x000004C + +gUnk_080F03F4:: @ 080F03F4 + .incbin "baserom.gba", 0x0F03F4, 0x0000001 + +gUnk_080F03F5:: @ 080F03F5 + .incbin "baserom.gba", 0x0F03F5, 0x000000C + +gUnk_080F0401:: @ 080F0401 + .incbin "baserom.gba", 0x0F0401, 0x0000001 + +gUnk_080F0402:: @ 080F0402 + .incbin "baserom.gba", 0x0F0402, 0x0000006 + +gUnk_080F0408:: @ 080F0408 + .incbin "baserom.gba", 0x0F0408, 0x0000008 + +gUnk_080F0410:: @ 080F0410 + .incbin "baserom.gba", 0x0F0410, 0x0000020 + +gUnk_080F0430:: @ 080F0430 + .incbin "baserom.gba", 0x0F0430, 0x0000010 + +gUnk_080F0440:: @ 080F0440 + .incbin "baserom.gba", 0x0F0440, 0x0000003 + +gUnk_080F0443:: @ 080F0443 + .incbin "baserom.gba", 0x0F0443, 0x000000D + +gUnk_080F0450:: @ 080F0450 + .incbin "baserom.gba", 0x0F0450, 0x0000008 + +gUnk_080F0458:: @ 080F0458 + .incbin "baserom.gba", 0x0F0458, 0x0000020 + +gUnk_080F0478:: @ 080F0478 + .incbin "baserom.gba", 0x0F0478, 0x0000080 + +gUnk_080F04F8:: @ 080F04F8 + .incbin "baserom.gba", 0x0F04F8, 0x0000004 + +gUnk_080F04FC:: @ 080F04FC + .incbin "baserom.gba", 0x0F04FC, 0x0000007 + +gUnk_080F0503:: @ 080F0503 + .incbin "baserom.gba", 0x0F0503, 0x0000085 + +gUnk_080F0588:: @ 080F0588 + .incbin "baserom.gba", 0x0F0588, 0x0000030 + +gUnk_080F05B8:: @ 080F05B8 + .incbin "baserom.gba", 0x0F05B8, 0x0000020 + +gUnk_080F05D8:: @ 080F05D8 + .incbin "baserom.gba", 0x0F05D8, 0x0000020 + +gUnk_080F05F8:: @ 080F05F8 + .incbin "baserom.gba", 0x0F05F8, 0x0000008 + +gUnk_080F0600:: @ 080F0600 + .incbin "baserom.gba", 0x0F0600, 0x0000008 + +gUnk_080F0608:: @ 080F0608 + .incbin "baserom.gba", 0x0F0608, 0x0000001 + +gUnk_080F0609:: @ 080F0609 + .incbin "baserom.gba", 0x0F0609, 0x0000007 + +gUnk_080F0610:: @ 080F0610 + .incbin "baserom.gba", 0x0F0610, 0x0000020 + +gUnk_080F0630:: @ 080F0630 + .incbin "baserom.gba", 0x0F0630, 0x0000020 + +gUnk_080F0650:: @ 080F0650 + .incbin "baserom.gba", 0x0F0650, 0x0000090 + +gUnk_080F06E0:: @ 080F06E0 + .incbin "baserom.gba", 0x0F06E0, 0x0000025 + +gUnk_080F0705:: @ 080F0705 + .incbin "baserom.gba", 0x0F0705, 0x00000FB + +gUnk_080F0800:: @ 080F0800 + .incbin "baserom.gba", 0x0F0800, 0x0000006 + +gUnk_080F0806:: @ 080F0806 + .incbin "baserom.gba", 0x0F0806, 0x0000010 + +gUnk_080F0816:: @ 080F0816 + .incbin "baserom.gba", 0x0F0816, 0x000003A + +gUnk_080F0850:: @ 080F0850 + .incbin "baserom.gba", 0x0F0850, 0x0000020 + +gUnk_080F0870:: @ 080F0870 + .incbin "baserom.gba", 0x0F0870, 0x0000020 + +gUnk_080F0890:: @ 080F0890 + .incbin "baserom.gba", 0x0F0890, 0x0000060 + +gUnk_080F08F0:: @ 080F08F0 + .incbin "baserom.gba", 0x0F08F0, 0x0000030 + +gUnk_080F0920:: @ 080F0920 + .incbin "baserom.gba", 0x0F0920, 0x0000020 + +gUnk_080F0940:: @ 080F0940 + .incbin "baserom.gba", 0x0F0940, 0x0000060 + +gUnk_080F09A0:: @ 080F09A0 + .incbin "baserom.gba", 0x0F09A0, 0x0000060 + +gUnk_080F0A00:: @ 080F0A00 + .incbin "baserom.gba", 0x0F0A00, 0x0000002 + +gUnk_080F0A02:: @ 080F0A02 + .incbin "baserom.gba", 0x0F0A02, 0x0000007 + +gUnk_080F0A09:: @ 080F0A09 + .incbin "baserom.gba", 0x0F0A09, 0x0000007 + +gUnk_080F0A10:: @ 080F0A10 + .incbin "baserom.gba", 0x0F0A10, 0x0000001 + +gUnk_080F0A11:: @ 080F0A11 + .incbin "baserom.gba", 0x0F0A11, 0x000001F + +gUnk_080F0A30:: @ 080F0A30 + .incbin "baserom.gba", 0x0F0A30, 0x0000020 + +gUnk_080F0A50:: @ 080F0A50 + .incbin "baserom.gba", 0x0F0A50, 0x0000011 + +gUnk_080F0A61:: @ 080F0A61 + .incbin "baserom.gba", 0x0F0A61, 0x0000003 + +gUnk_080F0A64:: @ 080F0A64 + .incbin "baserom.gba", 0x0F0A64, 0x000000F + +gUnk_080F0A73:: @ 080F0A73 + .incbin "baserom.gba", 0x0F0A73, 0x0000005 + +gUnk_080F0A78:: @ 080F0A78 + .incbin "baserom.gba", 0x0F0A78, 0x0000014 + +gUnk_080F0A8C:: @ 080F0A8C + .incbin "baserom.gba", 0x0F0A8C, 0x0000020 + +gUnk_080F0AAC:: @ 080F0AAC + .incbin "baserom.gba", 0x0F0AAC, 0x0000014 + +gUnk_080F0AC0:: @ 080F0AC0 + .incbin "baserom.gba", 0x0F0AC0, 0x0000014 + +gUnk_080F0AD4:: @ 080F0AD4 + .incbin "baserom.gba", 0x0F0AD4, 0x0000014 + +gUnk_080F0AE8:: @ 080F0AE8 + .incbin "baserom.gba", 0x0F0AE8, 0x0000013 + +gUnk_080F0AFB:: @ 080F0AFB + .incbin "baserom.gba", 0x0F0AFB, 0x000000B + +gUnk_080F0B06:: @ 080F0B06 + .incbin "baserom.gba", 0x0F0B06, 0x000000A + +gUnk_080F0B10:: @ 080F0B10 + .incbin "baserom.gba", 0x0F0B10, 0x0000018 + +gUnk_080F0B28:: @ 080F0B28 + .incbin "baserom.gba", 0x0F0B28, 0x0000020 + +gUnk_080F0B48:: @ 080F0B48 + .incbin "baserom.gba", 0x0F0B48, 0x0000020 + +gUnk_080F0B68:: @ 080F0B68 + .incbin "baserom.gba", 0x0F0B68, 0x0000020 + +gUnk_080F0B88:: @ 080F0B88 + .incbin "baserom.gba", 0x0F0B88, 0x0000030 + +gUnk_080F0BB8:: @ 080F0BB8 + .incbin "baserom.gba", 0x0F0BB8, 0x0000030 + +gUnk_080F0BE8:: @ 080F0BE8 + .incbin "baserom.gba", 0x0F0BE8, 0x0000019 + +gUnk_080F0C01:: @ 080F0C01 + .incbin "baserom.gba", 0x0F0C01, 0x0000004 + +gUnk_080F0C05:: @ 080F0C05 + .incbin "baserom.gba", 0x0F0C05, 0x0000001 + +gUnk_080F0C06:: @ 080F0C06 + .incbin "baserom.gba", 0x0F0C06, 0x0000005 + +gUnk_080F0C0B:: @ 080F0C0B + .incbin "baserom.gba", 0x0F0C0B, 0x0000001 + +gUnk_080F0C0C:: @ 080F0C0C + .incbin "baserom.gba", 0x0F0C0C, 0x0000009 + +gUnk_080F0C15:: @ 080F0C15 + .incbin "baserom.gba", 0x0F0C15, 0x0000003 + +gUnk_080F0C18:: @ 080F0C18 + .incbin "baserom.gba", 0x0F0C18, 0x0000030 + +gUnk_080F0C48:: @ 080F0C48 + .incbin "baserom.gba", 0x0F0C48, 0x0000030 + +gUnk_080F0C78:: @ 080F0C78 + .incbin "baserom.gba", 0x0F0C78, 0x0000040 + +gUnk_080F0CB8:: @ 080F0CB8 + .incbin "baserom.gba", 0x0F0CB8, 0x0000020 + +gUnk_080F0CD8:: @ 080F0CD8 + .incbin "baserom.gba", 0x0F0CD8, 0x0000020 + +gUnk_080F0CF8:: @ 080F0CF8 + .incbin "baserom.gba", 0x0F0CF8, 0x0000002 + +gUnk_080F0CFA:: @ 080F0CFA + .incbin "baserom.gba", 0x0F0CFA, 0x0000004 + +gUnk_080F0CFE:: @ 080F0CFE + .incbin "baserom.gba", 0x0F0CFE, 0x0000004 + +gUnk_080F0D02:: @ 080F0D02 + .incbin "baserom.gba", 0x0F0D02, 0x0000003 + +gUnk_080F0D05:: @ 080F0D05 + .incbin "baserom.gba", 0x0F0D05, 0x0000003 + +gUnk_080F0D08:: @ 080F0D08 + .incbin "baserom.gba", 0x0F0D08, 0x0000007 + +gUnk_080F0D0F:: @ 080F0D0F + .incbin "baserom.gba", 0x0F0D0F, 0x0000009 + +gUnk_080F0D18:: @ 080F0D18 + .incbin "baserom.gba", 0x0F0D18, 0x0000020 + +gUnk_080F0D38:: @ 080F0D38 + .incbin "baserom.gba", 0x0F0D38, 0x0000020 + +gUnk_080F0D58:: @ 080F0D58 + .incbin "baserom.gba", 0x0F0D58, 0x0000010 + +gUnk_080F0D68:: @ 080F0D68 + .incbin "baserom.gba", 0x0F0D68, 0x0000020 + +gUnk_080F0D88:: @ 080F0D88 + .incbin "baserom.gba", 0x0F0D88, 0x0000020 + +gUnk_080F0DA8:: @ 080F0DA8 + .incbin "baserom.gba", 0x0F0DA8, 0x0000020 + +gUnk_080F0DC8:: @ 080F0DC8 + .incbin "baserom.gba", 0x0F0DC8, 0x0000020 + +gUnk_080F0DE8:: @ 080F0DE8 + .incbin "baserom.gba", 0x0F0DE8, 0x000001A + +gUnk_080F0E02:: @ 080F0E02 + .incbin "baserom.gba", 0x0F0E02, 0x0000002 + +gUnk_080F0E04:: @ 080F0E04 + .incbin "baserom.gba", 0x0F0E04, 0x0000004 + +gUnk_080F0E08:: @ 080F0E08 + .incbin "baserom.gba", 0x0F0E08, 0x000000A + +gUnk_080F0E12:: @ 080F0E12 + .incbin "baserom.gba", 0x0F0E12, 0x0000001 + +gUnk_080F0E13:: @ 080F0E13 + .incbin "baserom.gba", 0x0F0E13, 0x0000003 + +gUnk_080F0E16:: @ 080F0E16 + .incbin "baserom.gba", 0x0F0E16, 0x0000006 + +gUnk_080F0E1C:: @ 080F0E1C + .incbin "baserom.gba", 0x0F0E1C, 0x0000080 + +gUnk_080F0E9C:: @ 080F0E9C + .incbin "baserom.gba", 0x0F0E9C, 0x0000046 + +gUnk_080F0EE2:: @ 080F0EE2 + .incbin "baserom.gba", 0x0F0EE2, 0x0000009 + +gUnk_080F0EEB:: @ 080F0EEB + .incbin "baserom.gba", 0x0F0EEB, 0x0000005 + +gUnk_080F0EF0:: @ 080F0EF0 + .incbin "baserom.gba", 0x0F0EF0, 0x0000010 + +gUnk_080F0F00:: @ 080F0F00 + .incbin "baserom.gba", 0x0F0F00, 0x0000003 + +gUnk_080F0F03:: @ 080F0F03 + .incbin "baserom.gba", 0x0F0F03, 0x0000004 + +gUnk_080F0F07:: @ 080F0F07 + .incbin "baserom.gba", 0x0F0F07, 0x0000005 + +gUnk_080F0F0C:: @ 080F0F0C + .incbin "baserom.gba", 0x0F0F0C, 0x0000001 + +gUnk_080F0F0D:: @ 080F0F0D + .incbin "baserom.gba", 0x0F0F0D, 0x0000004 + +gUnk_080F0F11:: @ 080F0F11 + .incbin "baserom.gba", 0x0F0F11, 0x0000001 + +gUnk_080F0F12:: @ 080F0F12 + .incbin "baserom.gba", 0x0F0F12, 0x00000AA + +gUnk_080F0FBC:: @ 080F0FBC + .incbin "baserom.gba", 0x0F0FBC, 0x0000044 + +gUnk_080F1000:: @ 080F1000 + .incbin "baserom.gba", 0x0F1000, 0x000000C + +gUnk_080F100C:: @ 080F100C + .incbin "baserom.gba", 0x0F100C, 0x0000001 + +gUnk_080F100D:: @ 080F100D + .incbin "baserom.gba", 0x0F100D, 0x0000009 + +gUnk_080F1016:: @ 080F1016 + .incbin "baserom.gba", 0x0F1016, 0x000004B + +gUnk_080F1061:: @ 080F1061 + .incbin "baserom.gba", 0x0F1061, 0x0000002 + +gUnk_080F1063:: @ 080F1063 + .incbin "baserom.gba", 0x0F1063, 0x0000039 + +gUnk_080F109C:: @ 080F109C + .incbin "baserom.gba", 0x0F109C, 0x000006B + +gUnk_080F1107:: @ 080F1107 + .incbin "baserom.gba", 0x0F1107, 0x0000002 + +gUnk_080F1109:: @ 080F1109 + .incbin "baserom.gba", 0x0F1109, 0x0000002 + +gUnk_080F110B:: @ 080F110B + .incbin "baserom.gba", 0x0F110B, 0x0000003 + +gUnk_080F110E:: @ 080F110E + .incbin "baserom.gba", 0x0F110E, 0x0000001 + +gUnk_080F110F:: @ 080F110F + .incbin "baserom.gba", 0x0F110F, 0x0000002 + +gUnk_080F1111:: @ 080F1111 + .incbin "baserom.gba", 0x0F1111, 0x0000002 + +gUnk_080F1113:: @ 080F1113 + .incbin "baserom.gba", 0x0F1113, 0x0000001 + +gUnk_080F1114:: @ 080F1114 + .incbin "baserom.gba", 0x0F1114, 0x0000002 + +gUnk_080F1116:: @ 080F1116 + .incbin "baserom.gba", 0x0F1116, 0x00000D6 + +gUnk_080F11EC:: @ 080F11EC + .incbin "baserom.gba", 0x0F11EC, 0x0000019 + +gUnk_080F1205:: @ 080F1205 + .incbin "baserom.gba", 0x0F1205, 0x0000007 + +gUnk_080F120C:: @ 080F120C + .incbin "baserom.gba", 0x0F120C, 0x0000002 + +gUnk_080F120E:: @ 080F120E + .incbin "baserom.gba", 0x0F120E, 0x0000001 + +gUnk_080F120F:: @ 080F120F + .incbin "baserom.gba", 0x0F120F, 0x0000002 + +gUnk_080F1211:: @ 080F1211 + .incbin "baserom.gba", 0x0F1211, 0x0000002 + +gUnk_080F1213:: @ 080F1213 + .incbin "baserom.gba", 0x0F1213, 0x0000003 + +gUnk_080F1216:: @ 080F1216 + .incbin "baserom.gba", 0x0F1216, 0x00000E6 + +gUnk_080F12FC:: @ 080F12FC + .incbin "baserom.gba", 0x0F12FC, 0x0000015 + +gUnk_080F1311:: @ 080F1311 + .incbin "baserom.gba", 0x0F1311, 0x0000002 + +gUnk_080F1313:: @ 080F1313 + .incbin "baserom.gba", 0x0F1313, 0x0000002 + +gUnk_080F1315:: @ 080F1315 + .incbin "baserom.gba", 0x0F1315, 0x0000002 + +gUnk_080F1317:: @ 080F1317 + .incbin "baserom.gba", 0x0F1317, 0x0000003 + +gUnk_080F131A:: @ 080F131A + .incbin "baserom.gba", 0x0F131A, 0x00000EE + +gUnk_080F1408:: @ 080F1408 + .incbin "baserom.gba", 0x0F1408, 0x0000002 + +gUnk_080F140A:: @ 080F140A + .incbin "baserom.gba", 0x0F140A, 0x0000002 + +gUnk_080F140C:: @ 080F140C + .incbin "baserom.gba", 0x0F140C, 0x0000008 + +gUnk_080F1414:: @ 080F1414 + .incbin "baserom.gba", 0x0F1414, 0x0000002 + +gUnk_080F1416:: @ 080F1416 + .incbin "baserom.gba", 0x0F1416, 0x0000001 + +gUnk_080F1417:: @ 080F1417 + .incbin "baserom.gba", 0x0F1417, 0x0000002 + +gUnk_080F1419:: @ 080F1419 + .incbin "baserom.gba", 0x0F1419, 0x00000C3 + +gUnk_080F14DC:: @ 080F14DC + .incbin "baserom.gba", 0x0F14DC, 0x0000031 + +gUnk_080F150D:: @ 080F150D + .incbin "baserom.gba", 0x0F150D, 0x0000001 + +gUnk_080F150E:: @ 080F150E + .incbin "baserom.gba", 0x0F150E, 0x0000007 + +gUnk_080F1515:: @ 080F1515 + .incbin "baserom.gba", 0x0F1515, 0x0000003 + +gUnk_080F1518:: @ 080F1518 + .incbin "baserom.gba", 0x0F1518, 0x0000002 + +gUnk_080F151A:: @ 080F151A + .incbin "baserom.gba", 0x0F151A, 0x0000001 + +gUnk_080F151B:: @ 080F151B + .incbin "baserom.gba", 0x0F151B, 0x00000E1 + +gUnk_080F15FC:: @ 080F15FC + .incbin "baserom.gba", 0x0F15FC, 0x0000019 + +gUnk_080F1615:: @ 080F1615 + .incbin "baserom.gba", 0x0F1615, 0x0000001 + +gUnk_080F1616:: @ 080F1616 + .incbin "baserom.gba", 0x0F1616, 0x0000001 + +gUnk_080F1617:: @ 080F1617 + .incbin "baserom.gba", 0x0F1617, 0x0000002 + +gUnk_080F1619:: @ 080F1619 + .incbin "baserom.gba", 0x0F1619, 0x0000001 + +gUnk_080F161A:: @ 080F161A + .incbin "baserom.gba", 0x0F161A, 0x0000001 + +gUnk_080F161B:: @ 080F161B + .incbin "baserom.gba", 0x0F161B, 0x0000001 + +gUnk_080F161C:: @ 080F161C + .incbin "baserom.gba", 0x0F161C, 0x0000001 + +gUnk_080F161D:: @ 080F161D + .incbin "baserom.gba", 0x0F161D, 0x0000001 + +gUnk_080F161E:: @ 080F161E + .incbin "baserom.gba", 0x0F161E, 0x00000EE + +gUnk_080F170C:: @ 080F170C + .incbin "baserom.gba", 0x0F170C, 0x000000A + +gUnk_080F1716:: @ 080F1716 + .incbin "baserom.gba", 0x0F1716, 0x0000004 + +gUnk_080F171A:: @ 080F171A + .incbin "baserom.gba", 0x0F171A, 0x0000002 + +gUnk_080F171C:: @ 080F171C + .incbin "baserom.gba", 0x0F171C, 0x0000003 + +gUnk_080F171F:: @ 080F171F + .incbin "baserom.gba", 0x0F171F, 0x0000001 + +gUnk_080F1720:: @ 080F1720 + .incbin "baserom.gba", 0x0F1720, 0x0000002 + +gUnk_080F1722:: @ 080F1722 + .incbin "baserom.gba", 0x0F1722, 0x00000BA + +gUnk_080F17DC:: @ 080F17DC + .incbin "baserom.gba", 0x0F17DC, 0x000003D + +gUnk_080F1819:: @ 080F1819 + .incbin "baserom.gba", 0x0F1819, 0x0000004 + +gUnk_080F181D:: @ 080F181D + .incbin "baserom.gba", 0x0F181D, 0x0000001 + +gUnk_080F181E:: @ 080F181E + .incbin "baserom.gba", 0x0F181E, 0x0000002 + +gUnk_080F1820:: @ 080F1820 + .incbin "baserom.gba", 0x0F1820, 0x0000002 + +gUnk_080F1822:: @ 080F1822 + .incbin "baserom.gba", 0x0F1822, 0x0000002 + +gUnk_080F1824:: @ 080F1824 + .incbin "baserom.gba", 0x0F1824, 0x0000068 + +gUnk_080F188C:: @ 080F188C + .incbin "baserom.gba", 0x0F188C, 0x0000093 + +gUnk_080F191F:: @ 080F191F + .incbin "baserom.gba", 0x0F191F, 0x0000002 + +gUnk_080F1921:: @ 080F1921 + .incbin "baserom.gba", 0x0F1921, 0x0000002 + +gUnk_080F1923:: @ 080F1923 + .incbin "baserom.gba", 0x0F1923, 0x0000002 + +gUnk_080F1925:: @ 080F1925 + .incbin "baserom.gba", 0x0F1925, 0x0000001 + +gUnk_080F1926:: @ 080F1926 + .incbin "baserom.gba", 0x0F1926, 0x0000036 + +gUnk_080F195C:: @ 080F195C + .incbin "baserom.gba", 0x0F195C, 0x00000B3 + +gUnk_080F1A0F:: @ 080F1A0F + .incbin "baserom.gba", 0x0F1A0F, 0x0000011 + +gUnk_080F1A20:: @ 080F1A20 + .incbin "baserom.gba", 0x0F1A20, 0x0000005 + +gUnk_080F1A25:: @ 080F1A25 + .incbin "baserom.gba", 0x0F1A25, 0x0000001 + +gUnk_080F1A26:: @ 080F1A26 + .incbin "baserom.gba", 0x0F1A26, 0x0000006 + +gUnk_080F1A2C:: @ 080F1A2C + .incbin "baserom.gba", 0x0F1A2C, 0x00000B0 + +gUnk_080F1ADC:: @ 080F1ADC + .incbin "baserom.gba", 0x0F1ADC, 0x0000044 + +gUnk_080F1B20:: @ 080F1B20 + .incbin "baserom.gba", 0x0F1B20, 0x000000C + +gUnk_080F1B2C:: @ 080F1B2C + .incbin "baserom.gba", 0x0F1B2C, 0x0000060 + +gUnk_080F1B8C:: @ 080F1B8C + .incbin "baserom.gba", 0x0F1B8C, 0x0000060 + +gUnk_080F1BEC:: @ 080F1BEC + .incbin "baserom.gba", 0x0F1BEC, 0x000002A + +gUnk_080F1C16:: @ 080F1C16 + .incbin "baserom.gba", 0x0F1C16, 0x0000032 + +gUnk_080F1C48:: @ 080F1C48 + .incbin "baserom.gba", 0x0F1C48, 0x0000020 + +gUnk_080F1C68:: @ 080F1C68 + .incbin "baserom.gba", 0x0F1C68, 0x0000020 + +gUnk_080F1C88:: @ 080F1C88 + .incbin "baserom.gba", 0x0F1C88, 0x0000020 + +gUnk_080F1CA8:: @ 080F1CA8 + .incbin "baserom.gba", 0x0F1CA8, 0x0000060 + +gUnk_080F1D08:: @ 080F1D08 + .incbin "baserom.gba", 0x0F1D08, 0x0000010 + +gUnk_080F1D18:: @ 080F1D18 + .incbin "baserom.gba", 0x0F1D18, 0x0000008 + +gUnk_080F1D20:: @ 080F1D20 + .incbin "baserom.gba", 0x0F1D20, 0x0000011 + +gUnk_080F1D31:: @ 080F1D31 + .incbin "baserom.gba", 0x0F1D31, 0x0000003 + +gUnk_080F1D34:: @ 080F1D34 + .incbin "baserom.gba", 0x0F1D34, 0x0000014 + +gUnk_080F1D48:: @ 080F1D48 + .incbin "baserom.gba", 0x0F1D48, 0x0000028 + +gUnk_080F1D70:: @ 080F1D70 + .incbin "baserom.gba", 0x0F1D70, 0x0000020 + +gUnk_080F1D90:: @ 080F1D90 + .incbin "baserom.gba", 0x0F1D90, 0x0000020 + +gUnk_080F1DB0:: @ 080F1DB0 + .incbin "baserom.gba", 0x0F1DB0, 0x0000020 + +gUnk_080F1DD0:: @ 080F1DD0 + .incbin "baserom.gba", 0x0F1DD0, 0x0000020 + +gUnk_080F1DF0:: @ 080F1DF0 + .incbin "baserom.gba", 0x0F1DF0, 0x000002D + +gUnk_080F1E1D:: @ 080F1E1D + .incbin "baserom.gba", 0x0F1E1D, 0x0000043 + +gUnk_080F1E60:: @ 080F1E60 + .incbin "baserom.gba", 0x0F1E60, 0x0000010 + +gUnk_080F1E70:: @ 080F1E70 + .incbin "baserom.gba", 0x0F1E70, 0x0000008 + +gUnk_080F1E78:: @ 080F1E78 + .incbin "baserom.gba", 0x0F1E78, 0x0000014 + +gUnk_080F1E8C:: @ 080F1E8C + .incbin "baserom.gba", 0x0F1E8C, 0x0000014 + +gUnk_080F1EA0:: @ 080F1EA0 + .incbin "baserom.gba", 0x0F1EA0, 0x0000020 + +gUnk_080F1EC0:: @ 080F1EC0 + .incbin "baserom.gba", 0x0F1EC0, 0x000002C + +gUnk_080F1EEC:: @ 080F1EEC + .incbin "baserom.gba", 0x0F1EEC, 0x0000020 + +gUnk_080F1F0C:: @ 080F1F0C + .incbin "baserom.gba", 0x0F1F0C, 0x0000090 + +gUnk_080F1F9C:: @ 080F1F9C + .incbin "baserom.gba", 0x0F1F9C, 0x0000010 + +gUnk_080F1FAC:: @ 080F1FAC + .incbin "baserom.gba", 0x0F1FAC, 0x0000008 + +gUnk_080F1FB4:: @ 080F1FB4 + .incbin "baserom.gba", 0x0F1FB4, 0x0000014 + +gUnk_080F1FC8:: @ 080F1FC8 + .incbin "baserom.gba", 0x0F1FC8, 0x0000014 + +gUnk_080F1FDC:: @ 080F1FDC + .incbin "baserom.gba", 0x0F1FDC, 0x0000010 + +gUnk_080F1FEC:: @ 080F1FEC + .incbin "baserom.gba", 0x0F1FEC, 0x0000014 + +gUnk_080F2000:: @ 080F2000 + .incbin "baserom.gba", 0x0F2000, 0x0000018 + +gUnk_080F2018:: @ 080F2018 + .incbin "baserom.gba", 0x0F2018, 0x0000018 + +gUnk_080F2030:: @ 080F2030 + .incbin "baserom.gba", 0x0F2030, 0x0000008 + +gUnk_080F2038:: @ 080F2038 + .incbin "baserom.gba", 0x0F2038, 0x0000080 + +gUnk_080F20B8:: @ 080F20B8 + .incbin "baserom.gba", 0x0F20B8, 0x0000010 + +gUnk_080F20C8:: @ 080F20C8 + .incbin "baserom.gba", 0x0F20C8, 0x0000008 + +gUnk_080F20D0:: @ 080F20D0 + .incbin "baserom.gba", 0x0F20D0, 0x0000014 + +gUnk_080F20E4:: @ 080F20E4 + .incbin "baserom.gba", 0x0F20E4, 0x0000014 + +gUnk_080F20F8:: @ 080F20F8 + .incbin "baserom.gba", 0x0F20F8, 0x0000007 + +gUnk_080F20FF:: @ 080F20FF + .incbin "baserom.gba", 0x0F20FF, 0x0000009 + +gUnk_080F2108:: @ 080F2108 + .incbin "baserom.gba", 0x0F2108, 0x000001D + +gUnk_080F2125:: @ 080F2125 + .incbin "baserom.gba", 0x0F2125, 0x000000F + +gUnk_080F2134:: @ 080F2134 + .incbin "baserom.gba", 0x0F2134, 0x0000040 + +gUnk_080F2174:: @ 080F2174 + .incbin "baserom.gba", 0x0F2174, 0x0000020 + +gUnk_080F2194:: @ 080F2194 + .incbin "baserom.gba", 0x0F2194, 0x0000020 + +gUnk_080F21B4:: @ 080F21B4 + .incbin "baserom.gba", 0x0F21B4, 0x000000B + +gUnk_080F21BF:: @ 080F21BF + .incbin "baserom.gba", 0x0F21BF, 0x0000015 + +gUnk_080F21D4:: @ 080F21D4 + .incbin "baserom.gba", 0x0F21D4, 0x000005E + +gUnk_080F2232:: @ 080F2232 + .incbin "baserom.gba", 0x0F2232, 0x0000032 + +gUnk_080F2264:: @ 080F2264 + .incbin "baserom.gba", 0x0F2264, 0x0000010 + +gUnk_080F2274:: @ 080F2274 + .incbin "baserom.gba", 0x0F2274, 0x0000008 + +gUnk_080F227C:: @ 080F227C + .incbin "baserom.gba", 0x0F227C, 0x0000014 + +gUnk_080F2290:: @ 080F2290 + .incbin "baserom.gba", 0x0F2290, 0x0000014 + +gUnk_080F22A4:: @ 080F22A4 + .incbin "baserom.gba", 0x0F22A4, 0x0000014 + +gUnk_080F22B8:: @ 080F22B8 + .incbin "baserom.gba", 0x0F22B8, 0x0000018 + +gUnk_080F22D0:: @ 080F22D0 + .incbin "baserom.gba", 0x0F22D0, 0x0000010 + +gUnk_080F22E0:: @ 080F22E0 + .incbin "baserom.gba", 0x0F22E0, 0x0000014 + +gUnk_080F22F4:: @ 080F22F4 + .incbin "baserom.gba", 0x0F22F4, 0x000002F + +gUnk_080F2323:: @ 080F2323 + .incbin "baserom.gba", 0x0F2323, 0x0000009 + +gUnk_080F232C:: @ 080F232C + .incbin "baserom.gba", 0x0F232C, 0x0000010 + +gUnk_080F233C:: @ 080F233C + .incbin "baserom.gba", 0x0F233C, 0x0000030 + +gUnk_080F236C:: @ 080F236C + .incbin "baserom.gba", 0x0F236C, 0x0000020 + +gUnk_080F238C:: @ 080F238C + .incbin "baserom.gba", 0x0F238C, 0x0000030 + +gUnk_080F23BC:: @ 080F23BC + .incbin "baserom.gba", 0x0F23BC, 0x0000020 + +gUnk_080F23DC:: @ 080F23DC + .incbin "baserom.gba", 0x0F23DC, 0x0000080 + +gUnk_080F245C:: @ 080F245C + .incbin "baserom.gba", 0x0F245C, 0x0000010 + +gUnk_080F246C:: @ 080F246C + .incbin "baserom.gba", 0x0F246C, 0x0000008 + +gUnk_080F2474:: @ 080F2474 + .incbin "baserom.gba", 0x0F2474, 0x0000014 + +gUnk_080F2488:: @ 080F2488 + .incbin "baserom.gba", 0x0F2488, 0x0000010 + +gUnk_080F2498:: @ 080F2498 + .incbin "baserom.gba", 0x0F2498, 0x0000018 + +gUnk_080F24B0:: @ 080F24B0 + .incbin "baserom.gba", 0x0F24B0, 0x0000014 + +gUnk_080F24C4:: @ 080F24C4 + .incbin "baserom.gba", 0x0F24C4, 0x0000014 + +gUnk_080F24D8:: @ 080F24D8 + .incbin "baserom.gba", 0x0F24D8, 0x0000038 + +gUnk_080F2510:: @ 080F2510 + .incbin "baserom.gba", 0x0F2510, 0x0000018 + +gUnk_080F2528:: @ 080F2528 + .incbin "baserom.gba", 0x0F2528, 0x0000009 + +gUnk_080F2531:: @ 080F2531 + .incbin "baserom.gba", 0x0F2531, 0x000003F + +gUnk_080F2570:: @ 080F2570 + .incbin "baserom.gba", 0x0F2570, 0x0000020 + +gUnk_080F2590:: @ 080F2590 + .incbin "baserom.gba", 0x0F2590, 0x0000030 + +gUnk_080F25C0:: @ 080F25C0 + .incbin "baserom.gba", 0x0F25C0, 0x0000040 + +gUnk_080F2600:: @ 080F2600 + .incbin "baserom.gba", 0x0F2600, 0x0000020 + +gUnk_080F2620:: @ 080F2620 + .incbin "baserom.gba", 0x0F2620, 0x0000050 + +gUnk_080F2670:: @ 080F2670 + .incbin "baserom.gba", 0x0F2670, 0x0000010 + +gUnk_080F2680:: @ 080F2680 + .incbin "baserom.gba", 0x0F2680, 0x0000018 + +gUnk_080F2698:: @ 080F2698 + .incbin "baserom.gba", 0x0F2698, 0x0000010 + +gUnk_080F26A8:: @ 080F26A8 + .incbin "baserom.gba", 0x0F26A8, 0x0000014 + +gUnk_080F26BC:: @ 080F26BC + .incbin "baserom.gba", 0x0F26BC, 0x0000010 + +gUnk_080F26CC:: @ 080F26CC + .incbin "baserom.gba", 0x0F26CC, 0x000002C + +gUnk_080F26F8:: @ 080F26F8 + .incbin "baserom.gba", 0x0F26F8, 0x0000020 + +gUnk_080F2718:: @ 080F2718 + .incbin "baserom.gba", 0x0F2718, 0x0000021 + +gUnk_080F2739:: @ 080F2739 + .incbin "baserom.gba", 0x0F2739, 0x000001F + +gUnk_080F2758:: @ 080F2758 + .incbin "baserom.gba", 0x0F2758, 0x0000040 + +gUnk_080F2798:: @ 080F2798 + .incbin "baserom.gba", 0x0F2798, 0x0000040 + +gUnk_080F27D8:: @ 080F27D8 + .incbin "baserom.gba", 0x0F27D8, 0x0000040 + +gUnk_080F2818:: @ 080F2818 + .incbin "baserom.gba", 0x0F2818, 0x0000030 + +gUnk_080F2848:: @ 080F2848 + .incbin "baserom.gba", 0x0F2848, 0x0000010 + +gUnk_080F2858:: @ 080F2858 + .incbin "baserom.gba", 0x0F2858, 0x0000008 + +gUnk_080F2860:: @ 080F2860 + .incbin "baserom.gba", 0x0F2860, 0x0000010 + +gUnk_080F2870:: @ 080F2870 + .incbin "baserom.gba", 0x0F2870, 0x0000018 + +gUnk_080F2888:: @ 080F2888 + .incbin "baserom.gba", 0x0F2888, 0x000002C + +gUnk_080F28B4:: @ 080F28B4 + .incbin "baserom.gba", 0x0F28B4, 0x0000020 + +gUnk_080F28D4:: @ 080F28D4 + .incbin "baserom.gba", 0x0F28D4, 0x0000020 + +gUnk_080F28F4:: @ 080F28F4 + .incbin "baserom.gba", 0x0F28F4, 0x0000020 + +gUnk_080F2914:: @ 080F2914 + .incbin "baserom.gba", 0x0F2914, 0x0000020 + +gUnk_080F2934:: @ 080F2934 + .incbin "baserom.gba", 0x0F2934, 0x0000080 + +gUnk_080F29B4:: @ 080F29B4 + .incbin "baserom.gba", 0x0F29B4, 0x0000010 + +gUnk_080F29C4:: @ 080F29C4 + .incbin "baserom.gba", 0x0F29C4, 0x0000008 + +gUnk_080F29CC:: @ 080F29CC + .incbin "baserom.gba", 0x0F29CC, 0x0000020 + +gUnk_080F29EC:: @ 080F29EC + .incbin "baserom.gba", 0x0F29EC, 0x0000030 + +gUnk_080F2A1C:: @ 080F2A1C + .incbin "baserom.gba", 0x0F2A1C, 0x0000024 + +gUnk_080F2A40:: @ 080F2A40 + .incbin "baserom.gba", 0x0F2A40, 0x000002C + +gUnk_080F2A6C:: @ 080F2A6C + .incbin "baserom.gba", 0x0F2A6C, 0x0000010 + +gUnk_080F2A7C:: @ 080F2A7C + .incbin "baserom.gba", 0x0F2A7C, 0x0000008 + +gUnk_080F2A84:: @ 080F2A84 + .incbin "baserom.gba", 0x0F2A84, 0x0000018 + +gUnk_080F2A9C:: @ 080F2A9C + .incbin "baserom.gba", 0x0F2A9C, 0x0000024 + +gUnk_080F2AC0:: @ 080F2AC0 + .incbin "baserom.gba", 0x0F2AC0, 0x0000030 + +gUnk_080F2AF0:: @ 080F2AF0 + .incbin "baserom.gba", 0x0F2AF0, 0x0000050 + +gUnk_080F2B40:: @ 080F2B40 + .incbin "baserom.gba", 0x0F2B40, 0x0000010 + +gUnk_080F2B50:: @ 080F2B50 + .incbin "baserom.gba", 0x0F2B50, 0x0000008 + +gUnk_080F2B58:: @ 080F2B58 + .incbin "baserom.gba", 0x0F2B58, 0x0000020 + +gUnk_080F2B78:: @ 080F2B78 + .incbin "baserom.gba", 0x0F2B78, 0x0000024 + +gUnk_080F2B9C:: @ 080F2B9C + .incbin "baserom.gba", 0x0F2B9C, 0x00000E0 + +gUnk_080F2C7C:: @ 080F2C7C + .incbin "baserom.gba", 0x0F2C7C, 0x00000A0 + +gUnk_080F2D1C:: @ 080F2D1C + .incbin "baserom.gba", 0x0F2D1C, 0x0000010 + +gUnk_080F2D2C:: @ 080F2D2C + .incbin "baserom.gba", 0x0F2D2C, 0x0000008 + +gUnk_080F2D34:: @ 080F2D34 + .incbin "baserom.gba", 0x0F2D34, 0x0000014 + +gUnk_080F2D48:: @ 080F2D48 + .incbin "baserom.gba", 0x0F2D48, 0x0000010 + +gUnk_080F2D58:: @ 080F2D58 + .incbin "baserom.gba", 0x0F2D58, 0x0000010 + +gUnk_080F2D68:: @ 080F2D68 + .incbin "baserom.gba", 0x0F2D68, 0x0000014 + +gUnk_080F2D7C:: @ 080F2D7C + .incbin "baserom.gba", 0x0F2D7C, 0x0000030 + +gUnk_080F2DAC:: @ 080F2DAC + .incbin "baserom.gba", 0x0F2DAC, 0x0000020 + +gUnk_080F2DCC:: @ 080F2DCC + .incbin "baserom.gba", 0x0F2DCC, 0x0000060 + +gUnk_080F2E2C:: @ 080F2E2C + .incbin "baserom.gba", 0x0F2E2C, 0x0000020 + +gUnk_080F2E4C:: @ 080F2E4C + .incbin "baserom.gba", 0x0F2E4C, 0x0000010 + +gUnk_080F2E5C:: @ 080F2E5C + .incbin "baserom.gba", 0x0F2E5C, 0x0000008 + +gUnk_080F2E64:: @ 080F2E64 + .incbin "baserom.gba", 0x0F2E64, 0x0000020 + +gUnk_080F2E84:: @ 080F2E84 + .incbin "baserom.gba", 0x0F2E84, 0x0000010 + +gUnk_080F2E94:: @ 080F2E94 + .incbin "baserom.gba", 0x0F2E94, 0x0000030 + +gUnk_080F2EC4:: @ 080F2EC4 + .incbin "baserom.gba", 0x0F2EC4, 0x0000020 + +gUnk_080F2EE4:: @ 080F2EE4 + .incbin "baserom.gba", 0x0F2EE4, 0x0000090 + +gUnk_080F2F74:: @ 080F2F74 + .incbin "baserom.gba", 0x0F2F74, 0x0000010 + +gUnk_080F2F84:: @ 080F2F84 + .incbin "baserom.gba", 0x0F2F84, 0x0000010 + +gUnk_080F2F94:: @ 080F2F94 + .incbin "baserom.gba", 0x0F2F94, 0x0000020 + +gUnk_080F2FB4:: @ 080F2FB4 + .incbin "baserom.gba", 0x0F2FB4, 0x0000020 + +gUnk_080F2FD4:: @ 080F2FD4 + .incbin "baserom.gba", 0x0F2FD4, 0x0000020 + +gUnk_080F2FF4:: @ 080F2FF4 + .incbin "baserom.gba", 0x0F2FF4, 0x0000070 + +gUnk_080F3064:: @ 080F3064 + .incbin "baserom.gba", 0x0F3064, 0x0000010 + +gUnk_080F3074:: @ 080F3074 + .incbin "baserom.gba", 0x0F3074, 0x0000008 + +gUnk_080F307C:: @ 080F307C + .incbin "baserom.gba", 0x0F307C, 0x0000020 + +gUnk_080F309C:: @ 080F309C + .incbin "baserom.gba", 0x0F309C, 0x000001C + +gUnk_080F30B8:: @ 080F30B8 + .incbin "baserom.gba", 0x0F30B8, 0x0000014 + +gUnk_080F30CC:: @ 080F30CC + .incbin "baserom.gba", 0x0F30CC, 0x0000020 + +gUnk_080F30EC:: @ 080F30EC + .incbin "baserom.gba", 0x0F30EC, 0x000000E + +gUnk_080F30FA:: @ 080F30FA + .incbin "baserom.gba", 0x0F30FA, 0x0000052 + +gUnk_080F314C:: @ 080F314C + .incbin "baserom.gba", 0x0F314C, 0x0000010 + +gUnk_080F315C:: @ 080F315C + .incbin "baserom.gba", 0x0F315C, 0x0000008 + +gUnk_080F3164:: @ 080F3164 + .incbin "baserom.gba", 0x0F3164, 0x0000010 + +gUnk_080F3174:: @ 080F3174 + .incbin "baserom.gba", 0x0F3174, 0x0000024 + +gUnk_080F3198:: @ 080F3198 + .incbin "baserom.gba", 0x0F3198, 0x0000040 + +gUnk_080F31D8:: @ 080F31D8 + .incbin "baserom.gba", 0x0F31D8, 0x0000020 + +gUnk_080F31F8:: @ 080F31F8 + .incbin "baserom.gba", 0x0F31F8, 0x0000020 + +gUnk_080F3218:: @ 080F3218 + .incbin "baserom.gba", 0x0F3218, 0x0000010 + +gUnk_080F3228:: @ 080F3228 + .incbin "baserom.gba", 0x0F3228, 0x0000008 + +gUnk_080F3230:: @ 080F3230 + .incbin "baserom.gba", 0x0F3230, 0x0000020 + +gUnk_080F3250:: @ 080F3250 + .incbin "baserom.gba", 0x0F3250, 0x0000010 + +gUnk_080F3260:: @ 080F3260 + .incbin "baserom.gba", 0x0F3260, 0x0000070 + +gUnk_080F32D0:: @ 080F32D0 + .incbin "baserom.gba", 0x0F32D0, 0x0000090 + +gUnk_080F3360:: @ 080F3360 + .incbin "baserom.gba", 0x0F3360, 0x0000010 + +gUnk_080F3370:: @ 080F3370 + .incbin "baserom.gba", 0x0F3370, 0x0000008 + +gUnk_080F3378:: @ 080F3378 + .incbin "baserom.gba", 0x0F3378, 0x0000014 + +gUnk_080F338C:: @ 080F338C + .incbin "baserom.gba", 0x0F338C, 0x0000014 + +gUnk_080F33A0:: @ 080F33A0 + .incbin "baserom.gba", 0x0F33A0, 0x0000028 + +gUnk_080F33C8:: @ 080F33C8 + .incbin "baserom.gba", 0x0F33C8, 0x000002C + +gUnk_080F33F4:: @ 080F33F4 + .incbin "baserom.gba", 0x0F33F4, 0x0000020 + +gUnk_080F3414:: @ 080F3414 + .incbin "baserom.gba", 0x0F3414, 0x0000080 + +gUnk_080F3494:: @ 080F3494 + .incbin "baserom.gba", 0x0F3494, 0x0000110 + +gUnk_080F35A4:: @ 080F35A4 + .incbin "baserom.gba", 0x0F35A4, 0x0000010 + +gUnk_080F35B4:: @ 080F35B4 + .incbin "baserom.gba", 0x0F35B4, 0x0000010 + +gUnk_080F35C4:: @ 080F35C4 + .incbin "baserom.gba", 0x0F35C4, 0x0000020 + +gUnk_080F35E4:: @ 080F35E4 + .incbin "baserom.gba", 0x0F35E4, 0x0000020 + +gUnk_080F3604:: @ 080F3604 + .incbin "baserom.gba", 0x0F3604, 0x0000020 + +gUnk_080F3624:: @ 080F3624 + .incbin "baserom.gba", 0x0F3624, 0x00000C0 + +gUnk_080F36E4:: @ 080F36E4 + .incbin "baserom.gba", 0x0F36E4, 0x0000010 + +gUnk_080F36F4:: @ 080F36F4 + .incbin "baserom.gba", 0x0F36F4, 0x0000008 + +gUnk_080F36FC:: @ 080F36FC + .incbin "baserom.gba", 0x0F36FC, 0x0000030 + +gUnk_080F372C:: @ 080F372C + .incbin "baserom.gba", 0x0F372C, 0x0000014 + +gUnk_080F3740:: @ 080F3740 + .incbin "baserom.gba", 0x0F3740, 0x0000018 + +gUnk_080F3758:: @ 080F3758 + .incbin "baserom.gba", 0x0F3758, 0x0000028 + +gUnk_080F3780:: @ 080F3780 + .incbin "baserom.gba", 0x0F3780, 0x0000050 + +gUnk_080F37D0:: @ 080F37D0 + .incbin "baserom.gba", 0x0F37D0, 0x0000020 + +gUnk_080F37F0:: @ 080F37F0 + .incbin "baserom.gba", 0x0F37F0, 0x00000B4 + +gUnk_080F38A4:: @ 080F38A4 + .incbin "baserom.gba", 0x0F38A4, 0x000001C + +gUnk_080F38C0:: @ 080F38C0 + .incbin "baserom.gba", 0x0F38C0, 0x0000010 + +gUnk_080F38D0:: @ 080F38D0 + .incbin "baserom.gba", 0x0F38D0, 0x0000008 + +gUnk_080F38D8:: @ 080F38D8 + .incbin "baserom.gba", 0x0F38D8, 0x0000014 + +gUnk_080F38EC:: @ 080F38EC + .incbin "baserom.gba", 0x0F38EC, 0x0000008 + +gUnk_080F38F4:: @ 080F38F4 + .incbin "baserom.gba", 0x0F38F4, 0x0000028 + +gUnk_080F391C:: @ 080F391C + .incbin "baserom.gba", 0x0F391C, 0x0000020 + +gUnk_080F393C:: @ 080F393C + .incbin "baserom.gba", 0x0F393C, 0x0000090 + +gUnk_080F39CC:: @ 080F39CC + .incbin "baserom.gba", 0x0F39CC, 0x0000010 + +gUnk_080F39DC:: @ 080F39DC + .incbin "baserom.gba", 0x0F39DC, 0x0000008 + +gUnk_080F39E4:: @ 080F39E4 + .incbin "baserom.gba", 0x0F39E4, 0x0000010 + +gUnk_080F39F4:: @ 080F39F4 + .incbin "baserom.gba", 0x0F39F4, 0x0000024 + +gUnk_080F3A18:: @ 080F3A18 + .incbin "baserom.gba", 0x0F3A18, 0x0000030 + +gUnk_080F3A48:: @ 080F3A48 + .incbin "baserom.gba", 0x0F3A48, 0x0000020 + +gUnk_080F3A68:: @ 080F3A68 + .incbin "baserom.gba", 0x0F3A68, 0x00000B0 + +gUnk_080F3B18:: @ 080F3B18 + .incbin "baserom.gba", 0x0F3B18, 0x0000010 + +gUnk_080F3B28:: @ 080F3B28 + .incbin "baserom.gba", 0x0F3B28, 0x0000018 + +gUnk_080F3B40:: @ 080F3B40 + .incbin "baserom.gba", 0x0F3B40, 0x0000010 + +gUnk_080F3B50:: @ 080F3B50 + .incbin "baserom.gba", 0x0F3B50, 0x0000014 + +gUnk_080F3B64:: @ 080F3B64 + .incbin "baserom.gba", 0x0F3B64, 0x0000010 + +gUnk_080F3B74:: @ 080F3B74 + .incbin "baserom.gba", 0x0F3B74, 0x0000050 + +gUnk_080F3BC4:: @ 080F3BC4 + .incbin "baserom.gba", 0x0F3BC4, 0x0000030 + +gUnk_080F3BF4:: @ 080F3BF4 + .incbin "baserom.gba", 0x0F3BF4, 0x0000050 + +gUnk_080F3C44:: @ 080F3C44 + .incbin "baserom.gba", 0x0F3C44, 0x0000020 + +gUnk_080F3C64:: @ 080F3C64 + .incbin "baserom.gba", 0x0F3C64, 0x0000030 + +gUnk_080F3C94:: @ 080F3C94 + .incbin "baserom.gba", 0x0F3C94, 0x0000020 + +gUnk_080F3CB4:: @ 080F3CB4 + .incbin "baserom.gba", 0x0F3CB4, 0x0000090 + +gUnk_080F3D44:: @ 080F3D44 + .incbin "baserom.gba", 0x0F3D44, 0x0000160 + +gUnk_080F3EA4:: @ 080F3EA4 + .incbin "baserom.gba", 0x0F3EA4, 0x0000140 + +gUnk_080F3FE4:: @ 080F3FE4 + .incbin "baserom.gba", 0x0F3FE4, 0x0000010 + +gUnk_080F3FF4:: @ 080F3FF4 + .incbin "baserom.gba", 0x0F3FF4, 0x0000020 + +gUnk_080F4014:: @ 080F4014 + .incbin "baserom.gba", 0x0F4014, 0x0000014 + +gUnk_080F4028:: @ 080F4028 + .incbin "baserom.gba", 0x0F4028, 0x0000014 + +gUnk_080F403C:: @ 080F403C + .incbin "baserom.gba", 0x0F403C, 0x0000014 + +gUnk_080F4050:: @ 080F4050 + .incbin "baserom.gba", 0x0F4050, 0x0000010 + +gUnk_080F4060:: @ 080F4060 + .incbin "baserom.gba", 0x0F4060, 0x0000014 + +gUnk_080F4074:: @ 080F4074 + .incbin "baserom.gba", 0x0F4074, 0x0000038 + +gUnk_080F40AC:: @ 080F40AC + .incbin "baserom.gba", 0x0F40AC, 0x0000010 + +gUnk_080F40BC:: @ 080F40BC + .incbin "baserom.gba", 0x0F40BC, 0x0000030 + +gUnk_080F40EC:: @ 080F40EC + .incbin "baserom.gba", 0x0F40EC, 0x00000A0 + +gUnk_080F418C:: @ 080F418C + .incbin "baserom.gba", 0x0F418C, 0x0000008 + +gUnk_080F4194:: @ 080F4194 + .incbin "baserom.gba", 0x0F4194, 0x0000010 + +gUnk_080F41A4:: @ 080F41A4 + .incbin "baserom.gba", 0x0F41A4, 0x0000014 + +gUnk_080F41B8:: @ 080F41B8 + .incbin "baserom.gba", 0x0F41B8, 0x0000028 + +gUnk_080F41E0:: @ 080F41E0 + .incbin "baserom.gba", 0x0F41E0, 0x0000040 + +gUnk_080F4220:: @ 080F4220 + .incbin "baserom.gba", 0x0F4220, 0x0000060 + +gUnk_080F4280:: @ 080F4280 + .incbin "baserom.gba", 0x0F4280, 0x0000020 + +gUnk_080F42A0:: @ 080F42A0 + .incbin "baserom.gba", 0x0F42A0, 0x0000020 + +gUnk_080F42C0:: @ 080F42C0 + .incbin "baserom.gba", 0x0F42C0, 0x0000020 + +gUnk_080F42E0:: @ 080F42E0 + .incbin "baserom.gba", 0x0F42E0, 0x0000010 + +gUnk_080F42F0:: @ 080F42F0 + .incbin "baserom.gba", 0x0F42F0, 0x0000010 + +gUnk_080F4300:: @ 080F4300 + .incbin "baserom.gba", 0x0F4300, 0x0000020 + +gUnk_080F4320:: @ 080F4320 + .incbin "baserom.gba", 0x0F4320, 0x0000060 + +gUnk_080F4380:: @ 080F4380 + .incbin "baserom.gba", 0x0F4380, 0x0000060 + +gUnk_080F43E0:: @ 080F43E0 + .incbin "baserom.gba", 0x0F43E0, 0x0000048 + +gUnk_080F4428:: @ 080F4428 + .incbin "baserom.gba", 0x0F4428, 0x0000020 + +gUnk_080F4448:: @ 080F4448 + .incbin "baserom.gba", 0x0F4448, 0x0000020 + +gUnk_080F4468:: @ 080F4468 + .incbin "baserom.gba", 0x0F4468, 0x0000020 + +gUnk_080F4488:: @ 080F4488 + .incbin "baserom.gba", 0x0F4488, 0x0000018 + +gUnk_080F44A0:: @ 080F44A0 + .incbin "baserom.gba", 0x0F44A0, 0x0000020 + +gUnk_080F44C0:: @ 080F44C0 + .incbin "baserom.gba", 0x0F44C0, 0x0000020 + +gUnk_080F44E0:: @ 080F44E0 + .incbin "baserom.gba", 0x0F44E0, 0x0000040 + +gUnk_080F4520:: @ 080F4520 + .incbin "baserom.gba", 0x0F4520, 0x0000020 + +gUnk_080F4540:: @ 080F4540 + .incbin "baserom.gba", 0x0F4540, 0x0000020 + +gUnk_080F4560:: @ 080F4560 + .incbin "baserom.gba", 0x0F4560, 0x0000040 + +gUnk_080F45A0:: @ 080F45A0 + .incbin "baserom.gba", 0x0F45A0, 0x0000090 + +gUnk_080F4630:: @ 080F4630 + .incbin "baserom.gba", 0x0F4630, 0x0000008 + +gUnk_080F4638:: @ 080F4638 + .incbin "baserom.gba", 0x0F4638, 0x0000020 + +gUnk_080F4658:: @ 080F4658 + .incbin "baserom.gba", 0x0F4658, 0x0000040 + +gUnk_080F4698:: @ 080F4698 + .incbin "baserom.gba", 0x0F4698, 0x0000030 + +gUnk_080F46C8:: @ 080F46C8 + .incbin "baserom.gba", 0x0F46C8, 0x0000008 + +gUnk_080F46D0:: @ 080F46D0 + .incbin "baserom.gba", 0x0F46D0, 0x0000020 + +gUnk_080F46F0:: @ 080F46F0 + .incbin "baserom.gba", 0x0F46F0, 0x0000040 + +gUnk_080F4730:: @ 080F4730 + .incbin "baserom.gba", 0x0F4730, 0x0000030 + +gUnk_080F4760:: @ 080F4760 + .incbin "baserom.gba", 0x0F4760, 0x0000020 + +gUnk_080F4780:: @ 080F4780 + .incbin "baserom.gba", 0x0F4780, 0x0000020 + +gUnk_080F47A0:: @ 080F47A0 + .incbin "baserom.gba", 0x0F47A0, 0x0000030 + +gUnk_080F47D0:: @ 080F47D0 + .incbin "baserom.gba", 0x0F47D0, 0x0000030 + +gUnk_080F4800:: @ 080F4800 + .incbin "baserom.gba", 0x0F4800, 0x0000020 + +gUnk_080F4820:: @ 080F4820 + .incbin "baserom.gba", 0x0F4820, 0x0000020 + +gUnk_080F4840:: @ 080F4840 + .incbin "baserom.gba", 0x0F4840, 0x0000020 + +gUnk_080F4860:: @ 080F4860 + .incbin "baserom.gba", 0x0F4860, 0x0000010 + +gUnk_080F4870:: @ 080F4870 + .incbin "baserom.gba", 0x0F4870, 0x0000010 + +gUnk_080F4880:: @ 080F4880 + .incbin "baserom.gba", 0x0F4880, 0x0000020 + +gUnk_080F48A0:: @ 080F48A0 + .incbin "baserom.gba", 0x0F48A0, 0x0000130 + +gUnk_080F49D0:: @ 080F49D0 + .incbin "baserom.gba", 0x0F49D0, 0x0000090 + +gUnk_080F4A60:: @ 080F4A60 + .incbin "baserom.gba", 0x0F4A60, 0x0000020 + +gUnk_080F4A80:: @ 080F4A80 + .incbin "baserom.gba", 0x0F4A80, 0x0000020 + +gUnk_080F4AA0:: @ 080F4AA0 + .incbin "baserom.gba", 0x0F4AA0, 0x0000030 + +gUnk_080F4AD0:: @ 080F4AD0 + .incbin "baserom.gba", 0x0F4AD0, 0x0000050 + +gUnk_080F4B20:: @ 080F4B20 + .incbin "baserom.gba", 0x0F4B20, 0x0000018 + +gUnk_080F4B38:: @ 080F4B38 + .incbin "baserom.gba", 0x0F4B38, 0x0000020 + +gUnk_080F4B58:: @ 080F4B58 + .incbin "baserom.gba", 0x0F4B58, 0x0000030 + +gUnk_080F4B88:: @ 080F4B88 + .incbin "baserom.gba", 0x0F4B88, 0x0000020 + +gUnk_080F4BA8:: @ 080F4BA8 + .incbin "baserom.gba", 0x0F4BA8, 0x0000010 + +gUnk_080F4BB8:: @ 080F4BB8 + .incbin "baserom.gba", 0x0F4BB8, 0x0000020 + +gUnk_080F4BD8:: @ 080F4BD8 + .incbin "baserom.gba", 0x0F4BD8, 0x0000020 + +gUnk_080F4BF8:: @ 080F4BF8 + .incbin "baserom.gba", 0x0F4BF8, 0x0000080 + +gUnk_080F4C78:: @ 080F4C78 + .incbin "baserom.gba", 0x0F4C78, 0x0000040 + +gUnk_080F4CB8:: @ 080F4CB8 + .incbin "baserom.gba", 0x0F4CB8, 0x0000010 + +gUnk_080F4CC8:: @ 080F4CC8 + .incbin "baserom.gba", 0x0F4CC8, 0x0000014 + +gUnk_080F4CDC:: @ 080F4CDC + .incbin "baserom.gba", 0x0F4CDC, 0x0000024 + +gUnk_080F4D00:: @ 080F4D00 + .incbin "baserom.gba", 0x0F4D00, 0x0000050 + +gUnk_080F4D50:: @ 080F4D50 + .incbin "baserom.gba", 0x0F4D50, 0x0000060 + +gUnk_080F4DB0:: @ 080F4DB0 + .incbin "baserom.gba", 0x0F4DB0, 0x0000020 + +gUnk_080F4DD0:: @ 080F4DD0 + .incbin "baserom.gba", 0x0F4DD0, 0x0000020 + +gUnk_080F4DF0:: @ 080F4DF0 + .incbin "baserom.gba", 0x0F4DF0, 0x0000020 + +gUnk_080F4E10:: @ 080F4E10 + .incbin "baserom.gba", 0x0F4E10, 0x0000020 + +gUnk_080F4E30:: @ 080F4E30 + .incbin "baserom.gba", 0x0F4E30, 0x0000080 + +gUnk_080F4EB0:: @ 080F4EB0 + .incbin "baserom.gba", 0x0F4EB0, 0x0000060 + +gUnk_080F4F10:: @ 080F4F10 + .incbin "baserom.gba", 0x0F4F10, 0x0000020 + +gUnk_080F4F30:: @ 080F4F30 + .incbin "baserom.gba", 0x0F4F30, 0x0000010 + +gUnk_080F4F40:: @ 080F4F40 + .incbin "baserom.gba", 0x0F4F40, 0x0000170 + +gUnk_080F50B0:: @ 080F50B0 + .incbin "baserom.gba", 0x0F50B0, 0x0000048 + +gUnk_080F50F8:: @ 080F50F8 + .incbin "baserom.gba", 0x0F50F8, 0x0000028 + +gUnk_080F5120:: @ 080F5120 + .incbin "baserom.gba", 0x0F5120, 0x0000014 + +gUnk_080F5134:: @ 080F5134 + .incbin "baserom.gba", 0x0F5134, 0x0000014 + +gUnk_080F5148:: @ 080F5148 + .incbin "baserom.gba", 0x0F5148, 0x0000014 + +gUnk_080F515C:: @ 080F515C + .incbin "baserom.gba", 0x0F515C, 0x0000014 + +gUnk_080F5170:: @ 080F5170 + .incbin "baserom.gba", 0x0F5170, 0x0000010 + +gUnk_080F5180:: @ 080F5180 + .incbin "baserom.gba", 0x0F5180, 0x0000014 + +gUnk_080F5194:: @ 080F5194 + .incbin "baserom.gba", 0x0F5194, 0x000001E + +gUnk_080F51B2:: @ 080F51B2 + .incbin "baserom.gba", 0x0F51B2, 0x000003E + +gUnk_080F51F0:: @ 080F51F0 + .incbin "baserom.gba", 0x0F51F0, 0x0000030 + +gUnk_080F5220:: @ 080F5220 + .incbin "baserom.gba", 0x0F5220, 0x0000040 + +gUnk_080F5260:: @ 080F5260 + .incbin "baserom.gba", 0x0F5260, 0x0000050 + +gUnk_080F52B0:: @ 080F52B0 + .incbin "baserom.gba", 0x0F52B0, 0x0000010 + +gUnk_080F52C0:: @ 080F52C0 + .incbin "baserom.gba", 0x0F52C0, 0x0000010 + +gUnk_080F52D0:: @ 080F52D0 + .incbin "baserom.gba", 0x0F52D0, 0x0000008 + +gUnk_080F52D8:: @ 080F52D8 + .incbin "baserom.gba", 0x0F52D8, 0x0000020 + +gUnk_080F52F8:: @ 080F52F8 + .incbin "baserom.gba", 0x0F52F8, 0x0000010 + +gUnk_080F5308:: @ 080F5308 + .incbin "baserom.gba", 0x0F5308, 0x0000020 + +gUnk_080F5328:: @ 080F5328 + .incbin "baserom.gba", 0x0F5328, 0x0000020 + +gUnk_080F5348:: @ 080F5348 + .incbin "baserom.gba", 0x0F5348, 0x0000050 + +gUnk_080F5398:: @ 080F5398 + .incbin "baserom.gba", 0x0F5398, 0x0000010 + +gUnk_080F53A8:: @ 080F53A8 + .incbin "baserom.gba", 0x0F53A8, 0x0000010 + +gUnk_080F53B8:: @ 080F53B8 + .incbin "baserom.gba", 0x0F53B8, 0x0000008 + +gUnk_080F53C0:: @ 080F53C0 + .incbin "baserom.gba", 0x0F53C0, 0x0000020 + +gUnk_080F53E0:: @ 080F53E0 + .incbin "baserom.gba", 0x0F53E0, 0x0000030 + +gUnk_080F5410:: @ 080F5410 + .incbin "baserom.gba", 0x0F5410, 0x0000010 + +gUnk_080F5420:: @ 080F5420 + .incbin "baserom.gba", 0x0F5420, 0x0000008 + +gUnk_080F5428:: @ 080F5428 + .incbin "baserom.gba", 0x0F5428, 0x0000020 + +gUnk_080F5448:: @ 080F5448 + .incbin "baserom.gba", 0x0F5448, 0x00000A0 + +gUnk_080F54E8:: @ 080F54E8 + .incbin "baserom.gba", 0x0F54E8, 0x0000020 + +gUnk_080F5508:: @ 080F5508 + .incbin "baserom.gba", 0x0F5508, 0x0000020 + +gUnk_080F5528:: @ 080F5528 + .incbin "baserom.gba", 0x0F5528, 0x0000030 + +gUnk_080F5558:: @ 080F5558 + .incbin "baserom.gba", 0x0F5558, 0x0000020 + +gUnk_080F5578:: @ 080F5578 + .incbin "baserom.gba", 0x0F5578, 0x0000020 + +gUnk_080F5598:: @ 080F5598 + .incbin "baserom.gba", 0x0F5598, 0x0000020 + +gUnk_080F55B8:: @ 080F55B8 + .incbin "baserom.gba", 0x0F55B8, 0x0000020 + +gUnk_080F55D8:: @ 080F55D8 + .incbin "baserom.gba", 0x0F55D8, 0x0000020 + +gUnk_080F55F8:: @ 080F55F8 + .incbin "baserom.gba", 0x0F55F8, 0x0000010 + +gUnk_080F5608:: @ 080F5608 + .incbin "baserom.gba", 0x0F5608, 0x0000008 + +gUnk_080F5610:: @ 080F5610 + .incbin "baserom.gba", 0x0F5610, 0x0000020 + +gUnk_080F5630:: @ 080F5630 + .incbin "baserom.gba", 0x0F5630, 0x0000030 + +gUnk_080F5660:: @ 080F5660 + .incbin "baserom.gba", 0x0F5660, 0x0000050 + +gUnk_080F56B0:: @ 080F56B0 + .incbin "baserom.gba", 0x0F56B0, 0x0000050 + +gUnk_080F5700:: @ 080F5700 + .incbin "baserom.gba", 0x0F5700, 0x0000010 + +gUnk_080F5710:: @ 080F5710 + .incbin "baserom.gba", 0x0F5710, 0x0000008 + +gUnk_080F5718:: @ 080F5718 + .incbin "baserom.gba", 0x0F5718, 0x0000020 + +gUnk_080F5738:: @ 080F5738 + .incbin "baserom.gba", 0x0F5738, 0x0000020 + +gUnk_080F5758:: @ 080F5758 + .incbin "baserom.gba", 0x0F5758, 0x0000030 + +gUnk_080F5788:: @ 080F5788 + .incbin "baserom.gba", 0x0F5788, 0x0000020 + +gUnk_080F57A8:: @ 080F57A8 + .incbin "baserom.gba", 0x0F57A8, 0x0000020 + +gUnk_080F57C8:: @ 080F57C8 + .incbin "baserom.gba", 0x0F57C8, 0x0000020 + +gUnk_080F57E8:: @ 080F57E8 + .incbin "baserom.gba", 0x0F57E8, 0x0000040 + +gUnk_080F5828:: @ 080F5828 + .incbin "baserom.gba", 0x0F5828, 0x0000020 + +gUnk_080F5848:: @ 080F5848 + .incbin "baserom.gba", 0x0F5848, 0x0000020 + +gUnk_080F5868:: @ 080F5868 + .incbin "baserom.gba", 0x0F5868, 0x0000020 + +gUnk_080F5888:: @ 080F5888 + .incbin "baserom.gba", 0x0F5888, 0x0000020 + +gUnk_080F58A8:: @ 080F58A8 + .incbin "baserom.gba", 0x0F58A8, 0x0000020 + +gUnk_080F58C8:: @ 080F58C8 + .incbin "baserom.gba", 0x0F58C8, 0x0000040 + +gUnk_080F5908:: @ 080F5908 + .incbin "baserom.gba", 0x0F5908, 0x0000010 + +gUnk_080F5918:: @ 080F5918 + .incbin "baserom.gba", 0x0F5918, 0x0000008 + +gUnk_080F5920:: @ 080F5920 + .incbin "baserom.gba", 0x0F5920, 0x0000014 + +gUnk_080F5934:: @ 080F5934 + .incbin "baserom.gba", 0x0F5934, 0x0000024 + +gUnk_080F5958:: @ 080F5958 + .incbin "baserom.gba", 0x0F5958, 0x0000090 + +gUnk_080F59E8:: @ 080F59E8 + .incbin "baserom.gba", 0x0F59E8, 0x0000090 + +gUnk_080F5A78:: @ 080F5A78 + .incbin "baserom.gba", 0x0F5A78, 0x0000010 + +gUnk_080F5A88:: @ 080F5A88 + .incbin "baserom.gba", 0x0F5A88, 0x0000008 + +gUnk_080F5A90:: @ 080F5A90 + .incbin "baserom.gba", 0x0F5A90, 0x0000014 + +gUnk_080F5AA4:: @ 080F5AA4 + .incbin "baserom.gba", 0x0F5AA4, 0x0000014 + +gUnk_080F5AB8:: @ 080F5AB8 + .incbin "baserom.gba", 0x0F5AB8, 0x0000014 + +gUnk_080F5ACC:: @ 080F5ACC + .incbin "baserom.gba", 0x0F5ACC, 0x0000010 + +gUnk_080F5ADC:: @ 080F5ADC + .incbin "baserom.gba", 0x0F5ADC, 0x0000030 + +gUnk_080F5B0C:: @ 080F5B0C + .incbin "baserom.gba", 0x0F5B0C, 0x0000030 + +gUnk_080F5B3C:: @ 080F5B3C + .incbin "baserom.gba", 0x0F5B3C, 0x0000020 + +gUnk_080F5B5C:: @ 080F5B5C + .incbin "baserom.gba", 0x0F5B5C, 0x0000050 + +gUnk_080F5BAC:: @ 080F5BAC + .incbin "baserom.gba", 0x0F5BAC, 0x0000010 + +gUnk_080F5BBC:: @ 080F5BBC + .incbin "baserom.gba", 0x0F5BBC, 0x0000008 + +gUnk_080F5BC4:: @ 080F5BC4 + .incbin "baserom.gba", 0x0F5BC4, 0x0000010 + +gUnk_080F5BD4:: @ 080F5BD4 + .incbin "baserom.gba", 0x0F5BD4, 0x0000014 + +gUnk_080F5BE8:: @ 080F5BE8 + .incbin "baserom.gba", 0x0F5BE8, 0x0000028 + +gUnk_080F5C10:: @ 080F5C10 + .incbin "baserom.gba", 0x0F5C10, 0x0000060 + +gUnk_080F5C70:: @ 080F5C70 + .incbin "baserom.gba", 0x0F5C70, 0x00000C0 + +gUnk_080F5D30:: @ 080F5D30 + .incbin "baserom.gba", 0x0F5D30, 0x0000010 + +gUnk_080F5D40:: @ 080F5D40 + .incbin "baserom.gba", 0x0F5D40, 0x0000008 + +gUnk_080F5D48:: @ 080F5D48 + .incbin "baserom.gba", 0x0F5D48, 0x0000014 + +gUnk_080F5D5C:: @ 080F5D5C + .incbin "baserom.gba", 0x0F5D5C, 0x0000014 + +gUnk_080F5D70:: @ 080F5D70 + .incbin "baserom.gba", 0x0F5D70, 0x0000014 + +gUnk_080F5D84:: @ 080F5D84 + .incbin "baserom.gba", 0x0F5D84, 0x000002C + +gUnk_080F5DB0:: @ 080F5DB0 + .incbin "baserom.gba", 0x0F5DB0, 0x0000020 + +gUnk_080F5DD0:: @ 080F5DD0 + .incbin "baserom.gba", 0x0F5DD0, 0x0000020 + +gUnk_080F5DF0:: @ 080F5DF0 + .incbin "baserom.gba", 0x0F5DF0, 0x0000020 + +gUnk_080F5E10:: @ 080F5E10 + .incbin "baserom.gba", 0x0F5E10, 0x0000010 + +gUnk_080F5E20:: @ 080F5E20 + .incbin "baserom.gba", 0x0F5E20, 0x0000008 + +gUnk_080F5E28:: @ 080F5E28 + .incbin "baserom.gba", 0x0F5E28, 0x0000020 + +gUnk_080F5E48:: @ 080F5E48 + .incbin "baserom.gba", 0x0F5E48, 0x0000020 + +gUnk_080F5E68:: @ 080F5E68 + .incbin "baserom.gba", 0x0F5E68, 0x0000020 + +gUnk_080F5E88:: @ 080F5E88 + .incbin "baserom.gba", 0x0F5E88, 0x0000040 + +gUnk_080F5EC8:: @ 080F5EC8 + .incbin "baserom.gba", 0x0F5EC8, 0x0000010 + +gUnk_080F5ED8:: @ 080F5ED8 + .incbin "baserom.gba", 0x0F5ED8, 0x0000020 + +gUnk_080F5EF8:: @ 080F5EF8 + .incbin "baserom.gba", 0x0F5EF8, 0x0000020 + +gUnk_080F5F18:: @ 080F5F18 + .incbin "baserom.gba", 0x0F5F18, 0x0000020 + +gUnk_080F5F38:: @ 080F5F38 + .incbin "baserom.gba", 0x0F5F38, 0x0000020 + +gUnk_080F5F58:: @ 080F5F58 + .incbin "baserom.gba", 0x0F5F58, 0x0000020 + +gUnk_080F5F78:: @ 080F5F78 + .incbin "baserom.gba", 0x0F5F78, 0x0000020 + +gUnk_080F5F98:: @ 080F5F98 + .incbin "baserom.gba", 0x0F5F98, 0x0000040 + +gUnk_080F5FD8:: @ 080F5FD8 + .incbin "baserom.gba", 0x0F5FD8, 0x0000010 + +gUnk_080F5FE8:: @ 080F5FE8 + .incbin "baserom.gba", 0x0F5FE8, 0x0000008 + +gUnk_080F5FF0:: @ 080F5FF0 + .incbin "baserom.gba", 0x0F5FF0, 0x000002C + +gUnk_080F601C:: @ 080F601C + .incbin "baserom.gba", 0x0F601C, 0x0000050 + +gUnk_080F606C:: @ 080F606C + .incbin "baserom.gba", 0x0F606C, 0x0000040 + +gUnk_080F60AC:: @ 080F60AC + .incbin "baserom.gba", 0x0F60AC, 0x0000010 + +gUnk_080F60BC:: @ 080F60BC + .incbin "baserom.gba", 0x0F60BC, 0x0000008 + +gUnk_080F60C4:: @ 080F60C4 + .incbin "baserom.gba", 0x0F60C4, 0x0000020 + +gUnk_080F60E4:: @ 080F60E4 + .incbin "baserom.gba", 0x0F60E4, 0x0000030 + +gUnk_080F6114:: @ 080F6114 + .incbin "baserom.gba", 0x0F6114, 0x0000030 + +gUnk_080F6144:: @ 080F6144 + .incbin "baserom.gba", 0x0F6144, 0x0000010 + +gUnk_080F6154:: @ 080F6154 + .incbin "baserom.gba", 0x0F6154, 0x0000008 + +gUnk_080F615C:: @ 080F615C + .incbin "baserom.gba", 0x0F615C, 0x0000020 + +gUnk_080F617C:: @ 080F617C + .incbin "baserom.gba", 0x0F617C, 0x0000040 + +gUnk_080F61BC:: @ 080F61BC + .incbin "baserom.gba", 0x0F61BC, 0x0000020 + +gUnk_080F61DC:: @ 080F61DC + .incbin "baserom.gba", 0x0F61DC, 0x0000080 + +gUnk_080F625C:: @ 080F625C + .incbin "baserom.gba", 0x0F625C, 0x0000010 + +gUnk_080F626C:: @ 080F626C + .incbin "baserom.gba", 0x0F626C, 0x0000018 + +gUnk_080F6284:: @ 080F6284 + .incbin "baserom.gba", 0x0F6284, 0x0000020 + +gUnk_080F62A4:: @ 080F62A4 + .incbin "baserom.gba", 0x0F62A4, 0x0000040 + +gUnk_080F62E4:: @ 080F62E4 + .incbin "baserom.gba", 0x0F62E4, 0x0000040 + +gUnk_080F6324:: @ 080F6324 + .incbin "baserom.gba", 0x0F6324, 0x0000020 + +gUnk_080F6344:: @ 080F6344 + .incbin "baserom.gba", 0x0F6344, 0x0000060 + +gUnk_080F63A4:: @ 080F63A4 + .incbin "baserom.gba", 0x0F63A4, 0x0000010 + +gUnk_080F63B4:: @ 080F63B4 + .incbin "baserom.gba", 0x0F63B4, 0x0000010 + +gUnk_080F63C4:: @ 080F63C4 + .incbin "baserom.gba", 0x0F63C4, 0x0000020 + +gUnk_080F63E4:: @ 080F63E4 + .incbin "baserom.gba", 0x0F63E4, 0x0000070 + +gUnk_080F6454:: @ 080F6454 + .incbin "baserom.gba", 0x0F6454, 0x0000060 + +gUnk_080F64B4:: @ 080F64B4 + .incbin "baserom.gba", 0x0F64B4, 0x0000010 + +gUnk_080F64C4:: @ 080F64C4 + .incbin "baserom.gba", 0x0F64C4, 0x0000020 + +gUnk_080F64E4:: @ 080F64E4 + .incbin "baserom.gba", 0x0F64E4, 0x0000020 + +gUnk_080F6504:: @ 080F6504 + .incbin "baserom.gba", 0x0F6504, 0x0000060 + +gUnk_080F6564:: @ 080F6564 + .incbin "baserom.gba", 0x0F6564, 0x0000020 + +gUnk_080F6584:: @ 080F6584 + .incbin "baserom.gba", 0x0F6584, 0x0000020 + +gUnk_080F65A4:: @ 080F65A4 + .incbin "baserom.gba", 0x0F65A4, 0x0000060 + +gUnk_080F6604:: @ 080F6604 + .incbin "baserom.gba", 0x0F6604, 0x0000010 + +gUnk_080F6614:: @ 080F6614 + .incbin "baserom.gba", 0x0F6614, 0x0000018 + +gUnk_080F662C:: @ 080F662C + .incbin "baserom.gba", 0x0F662C, 0x0000020 + +gUnk_080F664C:: @ 080F664C + .incbin "baserom.gba", 0x0F664C, 0x0000060 + +gUnk_080F66AC:: @ 080F66AC + .incbin "baserom.gba", 0x0F66AC, 0x0000020 + +gUnk_080F66CC:: @ 080F66CC + .incbin "baserom.gba", 0x0F66CC, 0x00000D0 + +gUnk_080F679C:: @ 080F679C + .incbin "baserom.gba", 0x0F679C, 0x0000010 + +gUnk_080F67AC:: @ 080F67AC + .incbin "baserom.gba", 0x0F67AC, 0x0000010 + +gUnk_080F67BC:: @ 080F67BC + .incbin "baserom.gba", 0x0F67BC, 0x0000020 + +gUnk_080F67DC:: @ 080F67DC + .incbin "baserom.gba", 0x0F67DC, 0x00000A0 + +gUnk_080F687C:: @ 080F687C + .incbin "baserom.gba", 0x0F687C, 0x0000060 + +gUnk_080F68DC:: @ 080F68DC + .incbin "baserom.gba", 0x0F68DC, 0x0000010 + +gUnk_080F68EC:: @ 080F68EC + .incbin "baserom.gba", 0x0F68EC, 0x0000010 + +gUnk_080F68FC:: @ 080F68FC + .incbin "baserom.gba", 0x0F68FC, 0x0000020 + +gUnk_080F691C:: @ 080F691C + .incbin "baserom.gba", 0x0F691C, 0x0000020 + +gUnk_080F693C:: @ 080F693C + .incbin "baserom.gba", 0x0F693C, 0x0000060 + +gUnk_080F699C:: @ 080F699C + .incbin "baserom.gba", 0x0F699C, 0x0000010 + +gUnk_080F69AC:: @ 080F69AC + .incbin "baserom.gba", 0x0F69AC, 0x0000020 + +gUnk_080F69CC:: @ 080F69CC + .incbin "baserom.gba", 0x0F69CC, 0x0000020 + +gUnk_080F69EC:: @ 080F69EC + .incbin "baserom.gba", 0x0F69EC, 0x0000020 + +gUnk_080F6A0C:: @ 080F6A0C + .incbin "baserom.gba", 0x0F6A0C, 0x0000060 + +gUnk_080F6A6C:: @ 080F6A6C + .incbin "baserom.gba", 0x0F6A6C, 0x0000010 + +gUnk_080F6A7C:: @ 080F6A7C + .incbin "baserom.gba", 0x0F6A7C, 0x0000018 + +gUnk_080F6A94:: @ 080F6A94 + .incbin "baserom.gba", 0x0F6A94, 0x0000020 + +gUnk_080F6AB4:: @ 080F6AB4 + .incbin "baserom.gba", 0x0F6AB4, 0x0000020 + +gUnk_080F6AD4:: @ 080F6AD4 + .incbin "baserom.gba", 0x0F6AD4, 0x0000060 + +gUnk_080F6B34:: @ 080F6B34 + .incbin "baserom.gba", 0x0F6B34, 0x0000010 + +gUnk_080F6B44:: @ 080F6B44 + .incbin "baserom.gba", 0x0F6B44, 0x0000020 + +gUnk_080F6B64:: @ 080F6B64 + .incbin "baserom.gba", 0x0F6B64, 0x0000020 + +gUnk_080F6B84:: @ 080F6B84 + .incbin "baserom.gba", 0x0F6B84, 0x0000110 + +gUnk_080F6C94:: @ 080F6C94 + .incbin "baserom.gba", 0x0F6C94, 0x0000060 + +gUnk_080F6CF4:: @ 080F6CF4 + .incbin "baserom.gba", 0x0F6CF4, 0x0000010 + +gUnk_080F6D04:: @ 080F6D04 + .incbin "baserom.gba", 0x0F6D04, 0x0000018 + +gUnk_080F6D1C:: @ 080F6D1C + .incbin "baserom.gba", 0x0F6D1C, 0x0000020 + +gUnk_080F6D3C:: @ 080F6D3C + .incbin "baserom.gba", 0x0F6D3C, 0x0000010 + +gUnk_080F6D4C:: @ 080F6D4C + .incbin "baserom.gba", 0x0F6D4C, 0x0000010 + +gUnk_080F6D5C:: @ 080F6D5C + .incbin "baserom.gba", 0x0F6D5C, 0x0000010 + +gUnk_080F6D6C:: @ 080F6D6C + .incbin "baserom.gba", 0x0F6D6C, 0x0000010 + +gUnk_080F6D7C:: @ 080F6D7C + .incbin "baserom.gba", 0x0F6D7C, 0x0000020 + +gUnk_080F6D9C:: @ 080F6D9C + .incbin "baserom.gba", 0x0F6D9C, 0x0000010 + +gUnk_080F6DAC:: @ 080F6DAC + .incbin "baserom.gba", 0x0F6DAC, 0x0000010 + +gUnk_080F6DBC:: @ 080F6DBC + .incbin "baserom.gba", 0x0F6DBC, 0x0000010 + +gUnk_080F6DCC:: @ 080F6DCC + .incbin "baserom.gba", 0x0F6DCC, 0x0000010 + +gUnk_080F6DDC:: @ 080F6DDC + .incbin "baserom.gba", 0x0F6DDC, 0x0000020 + +gUnk_080F6DFC:: @ 080F6DFC + .incbin "baserom.gba", 0x0F6DFC, 0x0000010 + +gUnk_080F6E0C:: @ 080F6E0C + .incbin "baserom.gba", 0x0F6E0C, 0x0000010 + +gUnk_080F6E1C:: @ 080F6E1C + .incbin "baserom.gba", 0x0F6E1C, 0x0000010 + +gUnk_080F6E2C:: @ 080F6E2C + .incbin "baserom.gba", 0x0F6E2C, 0x0000010 + +gUnk_080F6E3C:: @ 080F6E3C + .incbin "baserom.gba", 0x0F6E3C, 0x0000020 + +gUnk_080F6E5C:: @ 080F6E5C + .incbin "baserom.gba", 0x0F6E5C, 0x0000010 + +gUnk_080F6E6C:: @ 080F6E6C + .incbin "baserom.gba", 0x0F6E6C, 0x0000010 + +gUnk_080F6E7C:: @ 080F6E7C + .incbin "baserom.gba", 0x0F6E7C, 0x0000010 + +gUnk_080F6E8C:: @ 080F6E8C + .incbin "baserom.gba", 0x0F6E8C, 0x0000010 + +gUnk_080F6E9C:: @ 080F6E9C + .incbin "baserom.gba", 0x0F6E9C, 0x0000020 + +gUnk_080F6EBC:: @ 080F6EBC + .incbin "baserom.gba", 0x0F6EBC, 0x0000010 + +gUnk_080F6ECC:: @ 080F6ECC + .incbin "baserom.gba", 0x0F6ECC, 0x0000010 + +gUnk_080F6EDC:: @ 080F6EDC + .incbin "baserom.gba", 0x0F6EDC, 0x0000010 + +gUnk_080F6EEC:: @ 080F6EEC + .incbin "baserom.gba", 0x0F6EEC, 0x0000010 + +gUnk_080F6EFC:: @ 080F6EFC + .incbin "baserom.gba", 0x0F6EFC, 0x0000020 + +gUnk_080F6F1C:: @ 080F6F1C + .incbin "baserom.gba", 0x0F6F1C, 0x0000010 + +gUnk_080F6F2C:: @ 080F6F2C + .incbin "baserom.gba", 0x0F6F2C, 0x0000050 + +gUnk_080F6F7C:: @ 080F6F7C + .incbin "baserom.gba", 0x0F6F7C, 0x0000040 + +gUnk_080F6FBC:: @ 080F6FBC + .incbin "baserom.gba", 0x0F6FBC, 0x0000010 + +gUnk_080F6FCC:: @ 080F6FCC + .incbin "baserom.gba", 0x0F6FCC, 0x0000010 + +gUnk_080F6FDC:: @ 080F6FDC + .incbin "baserom.gba", 0x0F6FDC, 0x0000014 + +gUnk_080F6FF0:: @ 080F6FF0 + .incbin "baserom.gba", 0x0F6FF0, 0x0000028 + +gUnk_080F7018:: @ 080F7018 + .incbin "baserom.gba", 0x0F7018, 0x0000070 + +gUnk_080F7088:: @ 080F7088 + .incbin "baserom.gba", 0x0F7088, 0x0000020 + +gUnk_080F70A8:: @ 080F70A8 + .incbin "baserom.gba", 0x0F70A8, 0x0000030 + +gUnk_080F70D8:: @ 080F70D8 + .incbin "baserom.gba", 0x0F70D8, 0x0000020 + +gUnk_080F70F8:: @ 080F70F8 + .incbin "baserom.gba", 0x0F70F8, 0x0000060 + +gUnk_080F7158:: @ 080F7158 + .incbin "baserom.gba", 0x0F7158, 0x00000C0 + +gUnk_080F7218:: @ 080F7218 + .incbin "baserom.gba", 0x0F7218, 0x0000088 + +gUnk_080F72A0:: @ 080F72A0 + .incbin "baserom.gba", 0x0F72A0, 0x0000010 + +gUnk_080F72B0:: @ 080F72B0 + .incbin "baserom.gba", 0x0F72B0, 0x0000014 + +gUnk_080F72C4:: @ 080F72C4 + .incbin "baserom.gba", 0x0F72C4, 0x0000028 + +gUnk_080F72EC:: @ 080F72EC + .incbin "baserom.gba", 0x0F72EC, 0x0000030 + +gUnk_080F731C:: @ 080F731C + .incbin "baserom.gba", 0x0F731C, 0x0000030 + +gUnk_080F734C:: @ 080F734C + .incbin "baserom.gba", 0x0F734C, 0x0000040 + +gUnk_080F738C:: @ 080F738C + .incbin "baserom.gba", 0x0F738C, 0x0000020 + +gUnk_080F73AC:: @ 080F73AC + .incbin "baserom.gba", 0x0F73AC, 0x0000020 + +gUnk_080F73CC:: @ 080F73CC + .incbin "baserom.gba", 0x0F73CC, 0x0000010 + +gUnk_080F73DC:: @ 080F73DC + .incbin "baserom.gba", 0x0F73DC, 0x0000040 + +gUnk_080F741C:: @ 080F741C + .incbin "baserom.gba", 0x0F741C, 0x0000070 + +gUnk_080F748C:: @ 080F748C + .incbin "baserom.gba", 0x0F748C, 0x0000018 + +gUnk_080F74A4:: @ 080F74A4 + .incbin "baserom.gba", 0x0F74A4, 0x0000010 + +gUnk_080F74B4:: @ 080F74B4 + .incbin "baserom.gba", 0x0F74B4, 0x0000014 + +gUnk_080F74C8:: @ 080F74C8 + .incbin "baserom.gba", 0x0F74C8, 0x0000028 + +gUnk_080F74F0:: @ 080F74F0 + .incbin "baserom.gba", 0x0F74F0, 0x0000010 + +gUnk_080F7500:: @ 080F7500 + .incbin "baserom.gba", 0x0F7500, 0x0000020 + +gUnk_080F7520:: @ 080F7520 + .incbin "baserom.gba", 0x0F7520, 0x0000030 + +gUnk_080F7550:: @ 080F7550 + .incbin "baserom.gba", 0x0F7550, 0x0000020 + +gUnk_080F7570:: @ 080F7570 + .incbin "baserom.gba", 0x0F7570, 0x0000060 + +gUnk_080F75D0:: @ 080F75D0 + .incbin "baserom.gba", 0x0F75D0, 0x0000040 + +gUnk_080F7610:: @ 080F7610 + .incbin "baserom.gba", 0x0F7610, 0x0000070 + +gUnk_080F7680:: @ 080F7680 + .incbin "baserom.gba", 0x0F7680, 0x0000040 + +gUnk_080F76C0:: @ 080F76C0 + .incbin "baserom.gba", 0x0F76C0, 0x0000038 + +gUnk_080F76F8:: @ 080F76F8 + .incbin "baserom.gba", 0x0F76F8, 0x0000028 + +gUnk_080F7720:: @ 080F7720 + .incbin "baserom.gba", 0x0F7720, 0x0000050 + +gUnk_080F7770:: @ 080F7770 + .incbin "baserom.gba", 0x0F7770, 0x0000050 + +gUnk_080F77C0:: @ 080F77C0 + .incbin "baserom.gba", 0x0F77C0, 0x0000030 + +gUnk_080F77F0:: @ 080F77F0 + .incbin "baserom.gba", 0x0F77F0, 0x0000020 + +gUnk_080F7810:: @ 080F7810 + .incbin "baserom.gba", 0x0F7810, 0x0000020 + +gUnk_080F7830:: @ 080F7830 + .incbin "baserom.gba", 0x0F7830, 0x0000030 + +gUnk_080F7860:: @ 080F7860 + .incbin "baserom.gba", 0x0F7860, 0x0000020 + +gUnk_080F7880:: @ 080F7880 + .incbin "baserom.gba", 0x0F7880, 0x0000020 + +gUnk_080F78A0:: @ 080F78A0 + .incbin "baserom.gba", 0x0F78A0, 0x0000020 + +gUnk_080F78C0:: @ 080F78C0 + .incbin "baserom.gba", 0x0F78C0, 0x0000020 + +gUnk_080F78E0:: @ 080F78E0 + .incbin "baserom.gba", 0x0F78E0, 0x00000F0 + +gUnk_080F79D0:: @ 080F79D0 + .incbin "baserom.gba", 0x0F79D0, 0x0000050 + +gUnk_080F7A20:: @ 080F7A20 + .incbin "baserom.gba", 0x0F7A20, 0x0000024 + +gUnk_080F7A44:: @ 080F7A44 + .incbin "baserom.gba", 0x0F7A44, 0x00000B0 + +gUnk_080F7AF4:: @ 080F7AF4 + .incbin "baserom.gba", 0x0F7AF4, 0x0000048 + +gUnk_080F7B3C:: @ 080F7B3C + .incbin "baserom.gba", 0x0F7B3C, 0x0000018 + +gUnk_080F7B54:: @ 080F7B54 + .incbin "baserom.gba", 0x0F7B54, 0x0000014 + +gUnk_080F7B68:: @ 080F7B68 + .incbin "baserom.gba", 0x0F7B68, 0x0000014 + +gUnk_080F7B7C:: @ 080F7B7C + .incbin "baserom.gba", 0x0F7B7C, 0x0000014 + +gUnk_080F7B90:: @ 080F7B90 + .incbin "baserom.gba", 0x0F7B90, 0x0000014 + +gUnk_080F7BA4:: @ 080F7BA4 + .incbin "baserom.gba", 0x0F7BA4, 0x000004C + +gUnk_080F7BF0:: @ 080F7BF0 + .incbin "baserom.gba", 0x0F7BF0, 0x0000010 + +gUnk_080F7C00:: @ 080F7C00 + .incbin "baserom.gba", 0x0F7C00, 0x0000080 + +gUnk_080F7C80:: @ 080F7C80 + .incbin "baserom.gba", 0x0F7C80, 0x0000050 + +gUnk_080F7CD0:: @ 080F7CD0 + .incbin "baserom.gba", 0x0F7CD0, 0x0000020 + +gUnk_080F7CF0:: @ 080F7CF0 + .incbin "baserom.gba", 0x0F7CF0, 0x0000080 + +gUnk_080F7D70:: @ 080F7D70 + .incbin "baserom.gba", 0x0F7D70, 0x0000050 + +gUnk_080F7DC0:: @ 080F7DC0 + .incbin "baserom.gba", 0x0F7DC0, 0x0000020 + +gUnk_080F7DE0:: @ 080F7DE0 + .incbin "baserom.gba", 0x0F7DE0, 0x0000040 + +gUnk_080F7E20:: @ 080F7E20 + .incbin "baserom.gba", 0x0F7E20, 0x00000F0 + +gUnk_080F7F10:: @ 080F7F10 + .incbin "baserom.gba", 0x0F7F10, 0x0000070 + +gUnk_080F7F80:: @ 080F7F80 + .incbin "baserom.gba", 0x0F7F80, 0x0000018 + +gUnk_080F7F98:: @ 080F7F98 + .incbin "baserom.gba", 0x0F7F98, 0x0000014 + +gUnk_080F7FAC:: @ 080F7FAC + .incbin "baserom.gba", 0x0F7FAC, 0x0000014 + +gUnk_080F7FC0:: @ 080F7FC0 + .incbin "baserom.gba", 0x0F7FC0, 0x0000030 + +gUnk_080F7FF0:: @ 080F7FF0 + .incbin "baserom.gba", 0x0F7FF0, 0x0000030 + +gUnk_080F8020:: @ 080F8020 + .incbin "baserom.gba", 0x0F8020, 0x000003C + +gUnk_080F805C:: @ 080F805C + .incbin "baserom.gba", 0x0F805C, 0x0000010 + +gUnk_080F806C:: @ 080F806C + .incbin "baserom.gba", 0x0F806C, 0x0000020 + +gUnk_080F808C:: @ 080F808C + .incbin "baserom.gba", 0x0F808C, 0x0000060 + +gUnk_080F80EC:: @ 080F80EC + .incbin "baserom.gba", 0x0F80EC, 0x00000B0 + +gUnk_080F819C:: @ 080F819C + .incbin "baserom.gba", 0x0F819C, 0x0000028 + +gUnk_080F81C4:: @ 080F81C4 + .incbin "baserom.gba", 0x0F81C4, 0x0000010 + +gUnk_080F81D4:: @ 080F81D4 + .incbin "baserom.gba", 0x0F81D4, 0x0000014 + +gUnk_080F81E8:: @ 080F81E8 + .incbin "baserom.gba", 0x0F81E8, 0x0000028 + +gUnk_080F8210:: @ 080F8210 + .incbin "baserom.gba", 0x0F8210, 0x00000D0 + +gUnk_080F82E0:: @ 080F82E0 + .incbin "baserom.gba", 0x0F82E0, 0x0000020 + +gUnk_080F8300:: @ 080F8300 + .incbin "baserom.gba", 0x0F8300, 0x0000020 + +gUnk_080F8320:: @ 080F8320 + .incbin "baserom.gba", 0x0F8320, 0x00000C0 + +gUnk_080F83E0:: @ 080F83E0 + .incbin "baserom.gba", 0x0F83E0, 0x0000020 + +gUnk_080F8400:: @ 080F8400 + .incbin "baserom.gba", 0x0F8400, 0x0000020 + +gUnk_080F8420:: @ 080F8420 + .incbin "baserom.gba", 0x0F8420, 0x0000010 + +gUnk_080F8430:: @ 080F8430 + .incbin "baserom.gba", 0x0F8430, 0x0000020 + +gUnk_080F8450:: @ 080F8450 + .incbin "baserom.gba", 0x0F8450, 0x0000030 + +gUnk_080F8480:: @ 080F8480 + .incbin "baserom.gba", 0x0F8480, 0x0000030 + +gUnk_080F84B0:: @ 080F84B0 + .incbin "baserom.gba", 0x0F84B0, 0x0000018 + +gUnk_080F84C8:: @ 080F84C8 + .incbin "baserom.gba", 0x0F84C8, 0x0000020 + +gUnk_080F84E8:: @ 080F84E8 + .incbin "baserom.gba", 0x0F84E8, 0x00000F0 + +gUnk_080F85D8:: @ 080F85D8 + .incbin "baserom.gba", 0x0F85D8, 0x0000020 + +gUnk_080F85F8:: @ 080F85F8 + .incbin "baserom.gba", 0x0F85F8, 0x0000030 + +gUnk_080F8628:: @ 080F8628 + .incbin "baserom.gba", 0x0F8628, 0x0000020 + +gUnk_080F8648:: @ 080F8648 + .incbin "baserom.gba", 0x0F8648, 0x0000010 + +gUnk_080F8658:: @ 080F8658 + .incbin "baserom.gba", 0x0F8658, 0x0000030 + +gUnk_080F8688:: @ 080F8688 + .incbin "baserom.gba", 0x0F8688, 0x0000024 + +gUnk_080F86AC:: @ 080F86AC + .incbin "baserom.gba", 0x0F86AC, 0x0000050 + +gUnk_080F86FC:: @ 080F86FC + .incbin "baserom.gba", 0x0F86FC, 0x0000010 + +gUnk_080F870C:: @ 080F870C + .incbin "baserom.gba", 0x0F870C, 0x0000008 + +gUnk_080F8714:: @ 080F8714 + .incbin "baserom.gba", 0x0F8714, 0x0000020 + +gUnk_080F8734:: @ 080F8734 + .incbin "baserom.gba", 0x0F8734, 0x0000020 + +gUnk_080F8754:: @ 080F8754 + .incbin "baserom.gba", 0x0F8754, 0x0000010 + +gUnk_080F8764:: @ 080F8764 + .incbin "baserom.gba", 0x0F8764, 0x0000008 + +gUnk_080F876C:: @ 080F876C + .incbin "baserom.gba", 0x0F876C, 0x0000020 + +gUnk_080F878C:: @ 080F878C + .incbin "baserom.gba", 0x0F878C, 0x0000020 + +gUnk_080F87AC:: @ 080F87AC + .incbin "baserom.gba", 0x0F87AC, 0x0000010 + +gUnk_080F87BC:: @ 080F87BC + .incbin "baserom.gba", 0x0F87BC, 0x0000008 + +gUnk_080F87C4:: @ 080F87C4 + .incbin "baserom.gba", 0x0F87C4, 0x0000020 + +gUnk_080F87E4:: @ 080F87E4 + .incbin "baserom.gba", 0x0F87E4, 0x0000020 + +gUnk_080F8804:: @ 080F8804 + .incbin "baserom.gba", 0x0F8804, 0x0000010 + +gUnk_080F8814:: @ 080F8814 + .incbin "baserom.gba", 0x0F8814, 0x0000008 + +gUnk_080F881C:: @ 080F881C + .incbin "baserom.gba", 0x0F881C, 0x0000020 + +gUnk_080F883C:: @ 080F883C + .incbin "baserom.gba", 0x0F883C, 0x0000020 + +gUnk_080F885C:: @ 080F885C + .incbin "baserom.gba", 0x0F885C, 0x0000010 + +gUnk_080F886C:: @ 080F886C + .incbin "baserom.gba", 0x0F886C, 0x0000008 + +gUnk_080F8874:: @ 080F8874 + .incbin "baserom.gba", 0x0F8874, 0x0000020 + +gUnk_080F8894:: @ 080F8894 + .incbin "baserom.gba", 0x0F8894, 0x0000010 + +gUnk_080F88A4:: @ 080F88A4 + .incbin "baserom.gba", 0x0F88A4, 0x0000010 + +gUnk_080F88B4:: @ 080F88B4 + .incbin "baserom.gba", 0x0F88B4, 0x0000008 + +gUnk_080F88BC:: @ 080F88BC + .incbin "baserom.gba", 0x0F88BC, 0x0000020 + +gUnk_080F88DC:: @ 080F88DC + .incbin "baserom.gba", 0x0F88DC, 0x0000010 + +gUnk_080F88EC:: @ 080F88EC + .incbin "baserom.gba", 0x0F88EC, 0x0000070 + +gUnk_080F895C:: @ 080F895C + .incbin "baserom.gba", 0x0F895C, 0x0000010 + +gUnk_080F896C:: @ 080F896C + .incbin "baserom.gba", 0x0F896C, 0x0000020 + +gUnk_080F898C:: @ 080F898C + .incbin "baserom.gba", 0x0F898C, 0x0000040 + +gUnk_080F89CC:: @ 080F89CC + .incbin "baserom.gba", 0x0F89CC, 0x0000010 + +gUnk_080F89DC:: @ 080F89DC + .incbin "baserom.gba", 0x0F89DC, 0x0000010 + +gUnk_080F89EC:: @ 080F89EC + .incbin "baserom.gba", 0x0F89EC, 0x0000020 + +gUnk_080F8A0C:: @ 080F8A0C + .incbin "baserom.gba", 0x0F8A0C, 0x0000040 + +gUnk_080F8A4C:: @ 080F8A4C + .incbin "baserom.gba", 0x0F8A4C, 0x0000010 + +gUnk_080F8A5C:: @ 080F8A5C + .incbin "baserom.gba", 0x0F8A5C, 0x0000010 + +gUnk_080F8A6C:: @ 080F8A6C + .incbin "baserom.gba", 0x0F8A6C, 0x0000020 + +gUnk_080F8A8C:: @ 080F8A8C + .incbin "baserom.gba", 0x0F8A8C, 0x0000010 + +gUnk_080F8A9C:: @ 080F8A9C + .incbin "baserom.gba", 0x0F8A9C, 0x0000010 + +gUnk_080F8AAC:: @ 080F8AAC + .incbin "baserom.gba", 0x0F8AAC, 0x0000008 + +gUnk_080F8AB4:: @ 080F8AB4 + .incbin "baserom.gba", 0x0F8AB4, 0x0000020 + +gUnk_080F8AD4:: @ 080F8AD4 + .incbin "baserom.gba", 0x0F8AD4, 0x0000010 + +gUnk_080F8AE4:: @ 080F8AE4 + .incbin "baserom.gba", 0x0F8AE4, 0x0000010 + +gUnk_080F8AF4:: @ 080F8AF4 + .incbin "baserom.gba", 0x0F8AF4, 0x0000010 + +gUnk_080F8B04:: @ 080F8B04 + .incbin "baserom.gba", 0x0F8B04, 0x0000020 + +gUnk_080F8B24:: @ 080F8B24 + .incbin "baserom.gba", 0x0F8B24, 0x0000020 + +gUnk_080F8B44:: @ 080F8B44 + .incbin "baserom.gba", 0x0F8B44, 0x0000010 + +gUnk_080F8B54:: @ 080F8B54 + .incbin "baserom.gba", 0x0F8B54, 0x0000018 + +gUnk_080F8B6C:: @ 080F8B6C + .incbin "baserom.gba", 0x0F8B6C, 0x0000020 + +gUnk_080F8B8C:: @ 080F8B8C + .incbin "baserom.gba", 0x0F8B8C, 0x0000050 + +gUnk_080F8BDC:: @ 080F8BDC + .incbin "baserom.gba", 0x0F8BDC, 0x0000010 + +gUnk_080F8BEC:: @ 080F8BEC + .incbin "baserom.gba", 0x0F8BEC, 0x0000018 + +gUnk_080F8C04:: @ 080F8C04 + .incbin "baserom.gba", 0x0F8C04, 0x0000020 + +gUnk_080F8C24:: @ 080F8C24 + .incbin "baserom.gba", 0x0F8C24, 0x0000030 + +gUnk_080F8C54:: @ 080F8C54 + .incbin "baserom.gba", 0x0F8C54, 0x0000010 + +gUnk_080F8C64:: @ 080F8C64 + .incbin "baserom.gba", 0x0F8C64, 0x0000010 + +gUnk_080F8C74:: @ 080F8C74 + .incbin "baserom.gba", 0x0F8C74, 0x0000020 + +gUnk_080F8C94:: @ 080F8C94 + .incbin "baserom.gba", 0x0F8C94, 0x0000020 + +gUnk_080F8CB4:: @ 080F8CB4 + .incbin "baserom.gba", 0x0F8CB4, 0x0000010 + +gUnk_080F8CC4:: @ 080F8CC4 + .incbin "baserom.gba", 0x0F8CC4, 0x0000010 + +gUnk_080F8CD4:: @ 080F8CD4 + .incbin "baserom.gba", 0x0F8CD4, 0x0000020 + +gUnk_080F8CF4:: @ 080F8CF4 + .incbin "baserom.gba", 0x0F8CF4, 0x0000110 + +gUnk_080F8E04:: @ 080F8E04 + .incbin "baserom.gba", 0x0F8E04, 0x0000010 + +gUnk_080F8E14:: @ 080F8E14 + .incbin "baserom.gba", 0x0F8E14, 0x0000008 + +gUnk_080F8E1C:: @ 080F8E1C + .incbin "baserom.gba", 0x0F8E1C, 0x0000020 + +gUnk_080F8E3C:: @ 080F8E3C + .incbin "baserom.gba", 0x0F8E3C, 0x0000110 + +gUnk_080F8F4C:: @ 080F8F4C + .incbin "baserom.gba", 0x0F8F4C, 0x0000010 + +gUnk_080F8F5C:: @ 080F8F5C + .incbin "baserom.gba", 0x0F8F5C, 0x0000008 + +gUnk_080F8F64:: @ 080F8F64 + .incbin "baserom.gba", 0x0F8F64, 0x0000020 + +gUnk_080F8F84:: @ 080F8F84 + .incbin "baserom.gba", 0x0F8F84, 0x0000060 + +gUnk_080F8FE4:: @ 080F8FE4 + .incbin "baserom.gba", 0x0F8FE4, 0x0000010 + +gUnk_080F8FF4:: @ 080F8FF4 + .incbin "baserom.gba", 0x0F8FF4, 0x0000010 + +gUnk_080F9004:: @ 080F9004 + .incbin "baserom.gba", 0x0F9004, 0x0000020 + +gUnk_080F9024:: @ 080F9024 + .incbin "baserom.gba", 0x0F9024, 0x0000010 + +gUnk_080F9034:: @ 080F9034 + .incbin "baserom.gba", 0x0F9034, 0x0000030 + +gUnk_080F9064:: @ 080F9064 + .incbin "baserom.gba", 0x0F9064, 0x0000010 + +gUnk_080F9074:: @ 080F9074 + .incbin "baserom.gba", 0x0F9074, 0x0000020 + +gUnk_080F9094:: @ 080F9094 + .incbin "baserom.gba", 0x0F9094, 0x0000010 + +gUnk_080F90A4:: @ 080F90A4 + .incbin "baserom.gba", 0x0F90A4, 0x0000020 + +gUnk_080F90C4:: @ 080F90C4 + .incbin "baserom.gba", 0x0F90C4, 0x0000008 + +gUnk_080F90CC:: @ 080F90CC + .incbin "baserom.gba", 0x0F90CC, 0x0000020 + +gUnk_080F90EC:: @ 080F90EC + .incbin "baserom.gba", 0x0F90EC, 0x0000020 + +gUnk_080F910C:: @ 080F910C + .incbin "baserom.gba", 0x0F910C, 0x0000040 + +gUnk_080F914C:: @ 080F914C + .incbin "baserom.gba", 0x0F914C, 0x0000008 + +gUnk_080F9154:: @ 080F9154 + .incbin "baserom.gba", 0x0F9154, 0x0000020 + +gUnk_080F9174:: @ 080F9174 + .incbin "baserom.gba", 0x0F9174, 0x0000050 + +gUnk_080F91C4:: @ 080F91C4 + .incbin "baserom.gba", 0x0F91C4, 0x0000010 + +gUnk_080F91D4:: @ 080F91D4 + .incbin "baserom.gba", 0x0F91D4, 0x0000010 + +gUnk_080F91E4:: @ 080F91E4 + .incbin "baserom.gba", 0x0F91E4, 0x0000020 + +gUnk_080F9204:: @ 080F9204 + .incbin "baserom.gba", 0x0F9204, 0x0000010 + +gUnk_080F9214:: @ 080F9214 + .incbin "baserom.gba", 0x0F9214, 0x0000020 + +gUnk_080F9234:: @ 080F9234 + .incbin "baserom.gba", 0x0F9234, 0x0000010 + +gUnk_080F9244:: @ 080F9244 + .incbin "baserom.gba", 0x0F9244, 0x0000020 + +gUnk_080F9264:: @ 080F9264 + .incbin "baserom.gba", 0x0F9264, 0x00000A0 + +gUnk_080F9304:: @ 080F9304 + .incbin "baserom.gba", 0x0F9304, 0x0000020 + +gUnk_080F9324:: @ 080F9324 + .incbin "baserom.gba", 0x0F9324, 0x0000030 + +gUnk_080F9354:: @ 080F9354 + .incbin "baserom.gba", 0x0F9354, 0x0000120 + +gUnk_080F9474:: @ 080F9474 + .incbin "baserom.gba", 0x0F9474, 0x0000010 + +gUnk_080F9484:: @ 080F9484 + .incbin "baserom.gba", 0x0F9484, 0x0000010 + +gUnk_080F9494:: @ 080F9494 + .incbin "baserom.gba", 0x0F9494, 0x0000014 + +gUnk_080F94A8:: @ 080F94A8 + .incbin "baserom.gba", 0x0F94A8, 0x0000028 + +gUnk_080F94D0:: @ 080F94D0 + .incbin "baserom.gba", 0x0F94D0, 0x0000040 + +gUnk_080F9510:: @ 080F9510 + .incbin "baserom.gba", 0x0F9510, 0x0000080 + +gUnk_080F9590:: @ 080F9590 + .incbin "baserom.gba", 0x0F9590, 0x0000010 + +gUnk_080F95A0:: @ 080F95A0 + .incbin "baserom.gba", 0x0F95A0, 0x0000020 + +gUnk_080F95C0:: @ 080F95C0 + .incbin "baserom.gba", 0x0F95C0, 0x0000050 + +gUnk_080F9610:: @ 080F9610 + .incbin "baserom.gba", 0x0F9610, 0x0000060 + +gUnk_080F9670:: @ 080F9670 + .incbin "baserom.gba", 0x0F9670, 0x0000010 + +gUnk_080F9680:: @ 080F9680 + .incbin "baserom.gba", 0x0F9680, 0x0000020 + +gUnk_080F96A0:: @ 080F96A0 + .incbin "baserom.gba", 0x0F96A0, 0x0000010 + +gUnk_080F96B0:: @ 080F96B0 + .incbin "baserom.gba", 0x0F96B0, 0x0000030 + +gUnk_080F96E0:: @ 080F96E0 + .incbin "baserom.gba", 0x0F96E0, 0x0000010 + +gUnk_080F96F0:: @ 080F96F0 + .incbin "baserom.gba", 0x0F96F0, 0x0000020 + +gUnk_080F9710:: @ 080F9710 + .incbin "baserom.gba", 0x0F9710, 0x0000010 + +gUnk_080F9720:: @ 080F9720 + .incbin "baserom.gba", 0x0F9720, 0x0000040 + +gUnk_080F9760:: @ 080F9760 + .incbin "baserom.gba", 0x0F9760, 0x0000010 + +gUnk_080F9770:: @ 080F9770 + .incbin "baserom.gba", 0x0F9770, 0x0000020 + +gUnk_080F9790:: @ 080F9790 + .incbin "baserom.gba", 0x0F9790, 0x0000070 + +gUnk_080F9800:: @ 080F9800 + .incbin "baserom.gba", 0x0F9800, 0x0000020 + +gUnk_080F9820:: @ 080F9820 + .incbin "baserom.gba", 0x0F9820, 0x0000010 + +gUnk_080F9830:: @ 080F9830 + .incbin "baserom.gba", 0x0F9830, 0x0000020 + +gUnk_080F9850:: @ 080F9850 + .incbin "baserom.gba", 0x0F9850, 0x0000060 + +gUnk_080F98B0:: @ 080F98B0 + .incbin "baserom.gba", 0x0F98B0, 0x0000010 + +gUnk_080F98C0:: @ 080F98C0 + .incbin "baserom.gba", 0x0F98C0, 0x0000010 + +gUnk_080F98D0:: @ 080F98D0 + .incbin "baserom.gba", 0x0F98D0, 0x0000020 + +gUnk_080F98F0:: @ 080F98F0 + .incbin "baserom.gba", 0x0F98F0, 0x0000010 + +gUnk_080F9900:: @ 080F9900 + .incbin "baserom.gba", 0x0F9900, 0x0000020 + +gUnk_080F9920:: @ 080F9920 + .incbin "baserom.gba", 0x0F9920, 0x0000010 + +gUnk_080F9930:: @ 080F9930 + .incbin "baserom.gba", 0x0F9930, 0x0000020 + +gUnk_080F9950:: @ 080F9950 + .incbin "baserom.gba", 0x0F9950, 0x0000010 + +gUnk_080F9960:: @ 080F9960 + .incbin "baserom.gba", 0x0F9960, 0x0000050 + +gUnk_080F99B0:: @ 080F99B0 + .incbin "baserom.gba", 0x0F99B0, 0x0000008 + +gUnk_080F99B8:: @ 080F99B8 + .incbin "baserom.gba", 0x0F99B8, 0x0000020 + +gUnk_080F99D8:: @ 080F99D8 + .incbin "baserom.gba", 0x0F99D8, 0x0000100 + +gUnk_080F9AD8:: @ 080F9AD8 + .incbin "baserom.gba", 0x0F9AD8, 0x0000020 + +gUnk_080F9AF8:: @ 080F9AF8 + .incbin "baserom.gba", 0x0F9AF8, 0x0000008 + +gUnk_080F9B00:: @ 080F9B00 + .incbin "baserom.gba", 0x0F9B00, 0x0000020 + +gUnk_080F9B20:: @ 080F9B20 + .incbin "baserom.gba", 0x0F9B20, 0x0000020 + +gUnk_080F9B40:: @ 080F9B40 + .incbin "baserom.gba", 0x0F9B40, 0x0000010 + +gUnk_080F9B50:: @ 080F9B50 + .incbin "baserom.gba", 0x0F9B50, 0x0000008 + +gUnk_080F9B58:: @ 080F9B58 + .incbin "baserom.gba", 0x0F9B58, 0x0000020 + +gUnk_080F9B78:: @ 080F9B78 + .incbin "baserom.gba", 0x0F9B78, 0x0000080 + +gUnk_080F9BF8:: @ 080F9BF8 + .incbin "baserom.gba", 0x0F9BF8, 0x0000040 + +gUnk_080F9C38:: @ 080F9C38 + .incbin "baserom.gba", 0x0F9C38, 0x0000020 + +gUnk_080F9C58:: @ 080F9C58 + .incbin "baserom.gba", 0x0F9C58, 0x0000020 + +gUnk_080F9C78:: @ 080F9C78 + .incbin "baserom.gba", 0x0F9C78, 0x0000020 + +gUnk_080F9C98:: @ 080F9C98 + .incbin "baserom.gba", 0x0F9C98, 0x0000010 + +gUnk_080F9CA8:: @ 080F9CA8 + .incbin "baserom.gba", 0x0F9CA8, 0x0000008 + +gUnk_080F9CB0:: @ 080F9CB0 + .incbin "baserom.gba", 0x0F9CB0, 0x0000020 + +gUnk_080F9CD0:: @ 080F9CD0 + .incbin "baserom.gba", 0x0F9CD0, 0x0000070 + +gUnk_080F9D40:: @ 080F9D40 + .incbin "baserom.gba", 0x0F9D40, 0x0000010 + +gUnk_080F9D50:: @ 080F9D50 + .incbin "baserom.gba", 0x0F9D50, 0x0000008 + +gUnk_080F9D58:: @ 080F9D58 + .incbin "baserom.gba", 0x0F9D58, 0x0000020 + +gUnk_080F9D78:: @ 080F9D78 + .incbin "baserom.gba", 0x0F9D78, 0x0000080 + +gUnk_080F9DF8:: @ 080F9DF8 + .incbin "baserom.gba", 0x0F9DF8, 0x0000010 + +gUnk_080F9E08:: @ 080F9E08 + .incbin "baserom.gba", 0x0F9E08, 0x0000008 + +gUnk_080F9E10:: @ 080F9E10 + .incbin "baserom.gba", 0x0F9E10, 0x0000020 + +gUnk_080F9E30:: @ 080F9E30 + .incbin "baserom.gba", 0x0F9E30, 0x0000030 + +gUnk_080F9E60:: @ 080F9E60 + .incbin "baserom.gba", 0x0F9E60, 0x0000010 + +gUnk_080F9E70:: @ 080F9E70 + .incbin "baserom.gba", 0x0F9E70, 0x0000008 + +gUnk_080F9E78:: @ 080F9E78 + .incbin "baserom.gba", 0x0F9E78, 0x0000020 + +gUnk_080F9E98:: @ 080F9E98 + .incbin "baserom.gba", 0x0F9E98, 0x0000010 + +gUnk_080F9EA8:: @ 080F9EA8 + .incbin "baserom.gba", 0x0F9EA8, 0x0000010 + +gUnk_080F9EB8:: @ 080F9EB8 + .incbin "baserom.gba", 0x0F9EB8, 0x0000008 + +gUnk_080F9EC0:: @ 080F9EC0 + .incbin "baserom.gba", 0x0F9EC0, 0x0000020 + +gUnk_080F9EE0:: @ 080F9EE0 + .incbin "baserom.gba", 0x0F9EE0, 0x0000010 + +gUnk_080F9EF0:: @ 080F9EF0 + .incbin "baserom.gba", 0x0F9EF0, 0x0000010 + +gUnk_080F9F00:: @ 080F9F00 + .incbin "baserom.gba", 0x0F9F00, 0x0000008 + +gUnk_080F9F08:: @ 080F9F08 + .incbin "baserom.gba", 0x0F9F08, 0x0000020 + +gUnk_080F9F28:: @ 080F9F28 + .incbin "baserom.gba", 0x0F9F28, 0x0000030 + +gUnk_080F9F58:: @ 080F9F58 + .incbin "baserom.gba", 0x0F9F58, 0x0000030 + +gUnk_080F9F88:: @ 080F9F88 + .incbin "baserom.gba", 0x0F9F88, 0x0000020 + +gUnk_080F9FA8:: @ 080F9FA8 + .incbin "baserom.gba", 0x0F9FA8, 0x0000030 + +gUnk_080F9FD8:: @ 080F9FD8 + .incbin "baserom.gba", 0x0F9FD8, 0x0000010 + +gUnk_080F9FE8:: @ 080F9FE8 + .incbin "baserom.gba", 0x0F9FE8, 0x0000010 + +gUnk_080F9FF8:: @ 080F9FF8 + .incbin "baserom.gba", 0x0F9FF8, 0x0000020 + +gUnk_080FA018:: @ 080FA018 + .incbin "baserom.gba", 0x0FA018, 0x0000020 + +gUnk_080FA038:: @ 080FA038 + .incbin "baserom.gba", 0x0FA038, 0x0000010 + +gUnk_080FA048:: @ 080FA048 + .incbin "baserom.gba", 0x0FA048, 0x0000028 + +gUnk_080FA070:: @ 080FA070 + .incbin "baserom.gba", 0x0FA070, 0x0000020 + +gUnk_080FA090:: @ 080FA090 + .incbin "baserom.gba", 0x0FA090, 0x0000010 + +gUnk_080FA0A0:: @ 080FA0A0 + .incbin "baserom.gba", 0x0FA0A0, 0x0000028 + +gUnk_080FA0C8:: @ 080FA0C8 + .incbin "baserom.gba", 0x0FA0C8, 0x0000020 + +gUnk_080FA0E8:: @ 080FA0E8 + .incbin "baserom.gba", 0x0FA0E8, 0x0000010 + +gUnk_080FA0F8:: @ 080FA0F8 + .incbin "baserom.gba", 0x0FA0F8, 0x0000028 + +gUnk_080FA120:: @ 080FA120 + .incbin "baserom.gba", 0x0FA120, 0x0000020 + +gUnk_080FA140:: @ 080FA140 + .incbin "baserom.gba", 0x0FA140, 0x0000010 + +gUnk_080FA150:: @ 080FA150 + .incbin "baserom.gba", 0x0FA150, 0x0000028 + +gUnk_080FA178:: @ 080FA178 + .incbin "baserom.gba", 0x0FA178, 0x0000020 + +gUnk_080FA198:: @ 080FA198 + .incbin "baserom.gba", 0x0FA198, 0x0000010 + +gUnk_080FA1A8:: @ 080FA1A8 + .incbin "baserom.gba", 0x0FA1A8, 0x0000028 + +gUnk_080FA1D0:: @ 080FA1D0 + .incbin "baserom.gba", 0x0FA1D0, 0x0000020 + +gUnk_080FA1F0:: @ 080FA1F0 + .incbin "baserom.gba", 0x0FA1F0, 0x0000010 + +gUnk_080FA200:: @ 080FA200 + .incbin "baserom.gba", 0x0FA200, 0x0000028 + +gUnk_080FA228:: @ 080FA228 + .incbin "baserom.gba", 0x0FA228, 0x0000020 + +gUnk_080FA248:: @ 080FA248 + .incbin "baserom.gba", 0x0FA248, 0x0000010 + +gUnk_080FA258:: @ 080FA258 + .incbin "baserom.gba", 0x0FA258, 0x0000028 + +gUnk_080FA280:: @ 080FA280 + .incbin "baserom.gba", 0x0FA280, 0x0000020 + +gUnk_080FA2A0:: @ 080FA2A0 + .incbin "baserom.gba", 0x0FA2A0, 0x0000010 + +gUnk_080FA2B0:: @ 080FA2B0 + .incbin "baserom.gba", 0x0FA2B0, 0x0000030 + +gUnk_080FA2E0:: @ 080FA2E0 + .incbin "baserom.gba", 0x0FA2E0, 0x0000020 + +gUnk_080FA300:: @ 080FA300 + .incbin "baserom.gba", 0x0FA300, 0x0000010 + +gUnk_080FA310:: @ 080FA310 + .incbin "baserom.gba", 0x0FA310, 0x0000028 + +gUnk_080FA338:: @ 080FA338 + .incbin "baserom.gba", 0x0FA338, 0x0000020 + +gUnk_080FA358:: @ 080FA358 + .incbin "baserom.gba", 0x0FA358, 0x0000010 + +gUnk_080FA368:: @ 080FA368 + .incbin "baserom.gba", 0x0FA368, 0x0000030 + +gUnk_080FA398:: @ 080FA398 + .incbin "baserom.gba", 0x0FA398, 0x0000020 + +gUnk_080FA3B8:: @ 080FA3B8 + .incbin "baserom.gba", 0x0FA3B8, 0x0000010 + +gUnk_080FA3C8:: @ 080FA3C8 + .incbin "baserom.gba", 0x0FA3C8, 0x0000030 + +gUnk_080FA3F8:: @ 080FA3F8 + .incbin "baserom.gba", 0x0FA3F8, 0x0000020 + +gUnk_080FA418:: @ 080FA418 + .incbin "baserom.gba", 0x0FA418, 0x0000010 + +gUnk_080FA428:: @ 080FA428 + .incbin "baserom.gba", 0x0FA428, 0x0000028 + +gUnk_080FA450:: @ 080FA450 + .incbin "baserom.gba", 0x0FA450, 0x0000020 + +gUnk_080FA470:: @ 080FA470 + .incbin "baserom.gba", 0x0FA470, 0x0000010 + +gUnk_080FA480:: @ 080FA480 + .incbin "baserom.gba", 0x0FA480, 0x0000028 + +gUnk_080FA4A8:: @ 080FA4A8 + .incbin "baserom.gba", 0x0FA4A8, 0x0000020 + +gUnk_080FA4C8:: @ 080FA4C8 + .incbin "baserom.gba", 0x0FA4C8, 0x0000010 + +gUnk_080FA4D8:: @ 080FA4D8 + .incbin "baserom.gba", 0x0FA4D8, 0x0000028 + +gUnk_080FA500:: @ 080FA500 + .incbin "baserom.gba", 0x0FA500, 0x0000020 + +gUnk_080FA520:: @ 080FA520 + .incbin "baserom.gba", 0x0FA520, 0x0000010 + +gUnk_080FA530:: @ 080FA530 + .incbin "baserom.gba", 0x0FA530, 0x0000028 + +gUnk_080FA558:: @ 080FA558 + .incbin "baserom.gba", 0x0FA558, 0x0000020 + +gUnk_080FA578:: @ 080FA578 + .incbin "baserom.gba", 0x0FA578, 0x0000010 + +gUnk_080FA588:: @ 080FA588 + .incbin "baserom.gba", 0x0FA588, 0x0000008 + +gUnk_080FA590:: @ 080FA590 + .incbin "baserom.gba", 0x0FA590, 0x0000020 + +gUnk_080FA5B0:: @ 080FA5B0 + .incbin "baserom.gba", 0x0FA5B0, 0x0000020 + +gUnk_080FA5D0:: @ 080FA5D0 + .incbin "baserom.gba", 0x0FA5D0, 0x0000020 + +gUnk_080FA5F0:: @ 080FA5F0 + .incbin "baserom.gba", 0x0FA5F0, 0x0000020 + +gUnk_080FA610:: @ 080FA610 + .incbin "baserom.gba", 0x0FA610, 0x0000010 + +gUnk_080FA620:: @ 080FA620 + .incbin "baserom.gba", 0x0FA620, 0x0000008 + +gUnk_080FA628:: @ 080FA628 + .incbin "baserom.gba", 0x0FA628, 0x0000020 + +gUnk_080FA648:: @ 080FA648 + .incbin "baserom.gba", 0x0FA648, 0x0000030 + +gUnk_080FA678:: @ 080FA678 + .incbin "baserom.gba", 0x0FA678, 0x0000010 + +gUnk_080FA688:: @ 080FA688 + .incbin "baserom.gba", 0x0FA688, 0x0000008 + +gUnk_080FA690:: @ 080FA690 + .incbin "baserom.gba", 0x0FA690, 0x0000020 + +gUnk_080FA6B0:: @ 080FA6B0 + .incbin "baserom.gba", 0x0FA6B0, 0x0000020 + +gUnk_080FA6D0:: @ 080FA6D0 + .incbin "baserom.gba", 0x0FA6D0, 0x0000010 + +gUnk_080FA6E0:: @ 080FA6E0 + .incbin "baserom.gba", 0x0FA6E0, 0x0000008 + +gUnk_080FA6E8:: @ 080FA6E8 + .incbin "baserom.gba", 0x0FA6E8, 0x0000020 + +gUnk_080FA708:: @ 080FA708 + .incbin "baserom.gba", 0x0FA708, 0x0000020 + +gUnk_080FA728:: @ 080FA728 + .incbin "baserom.gba", 0x0FA728, 0x0000010 + +gUnk_080FA738:: @ 080FA738 + .incbin "baserom.gba", 0x0FA738, 0x0000008 + +gUnk_080FA740:: @ 080FA740 + .incbin "baserom.gba", 0x0FA740, 0x0000020 + +gUnk_080FA760:: @ 080FA760 + .incbin "baserom.gba", 0x0FA760, 0x0000020 + +gUnk_080FA780:: @ 080FA780 + .incbin "baserom.gba", 0x0FA780, 0x0000010 + +gUnk_080FA790:: @ 080FA790 + .incbin "baserom.gba", 0x0FA790, 0x0000008 + +gUnk_080FA798:: @ 080FA798 + .incbin "baserom.gba", 0x0FA798, 0x0000020 + +gUnk_080FA7B8:: @ 080FA7B8 + .incbin "baserom.gba", 0x0FA7B8, 0x0000020 + +gUnk_080FA7D8:: @ 080FA7D8 + .incbin "baserom.gba", 0x0FA7D8, 0x0000010 + +gUnk_080FA7E8:: @ 080FA7E8 + .incbin "baserom.gba", 0x0FA7E8, 0x0000008 + +gUnk_080FA7F0:: @ 080FA7F0 + .incbin "baserom.gba", 0x0FA7F0, 0x0000020 + +gUnk_080FA810:: @ 080FA810 + .incbin "baserom.gba", 0x0FA810, 0x0000020 + +gUnk_080FA830:: @ 080FA830 + .incbin "baserom.gba", 0x0FA830, 0x0000010 + +gUnk_080FA840:: @ 080FA840 + .incbin "baserom.gba", 0x0FA840, 0x0000008 + +gUnk_080FA848:: @ 080FA848 + .incbin "baserom.gba", 0x0FA848, 0x0000020 + +gUnk_080FA868:: @ 080FA868 + .incbin "baserom.gba", 0x0FA868, 0x0000020 + +gUnk_080FA888:: @ 080FA888 + .incbin "baserom.gba", 0x0FA888, 0x0000010 + +gUnk_080FA898:: @ 080FA898 + .incbin "baserom.gba", 0x0FA898, 0x0000008 + +gUnk_080FA8A0:: @ 080FA8A0 + .incbin "baserom.gba", 0x0FA8A0, 0x0000020 + +gUnk_080FA8C0:: @ 080FA8C0 + .incbin "baserom.gba", 0x0FA8C0, 0x0000030 + +gUnk_080FA8F0:: @ 080FA8F0 + .incbin "baserom.gba", 0x0FA8F0, 0x0000010 + +gUnk_080FA900:: @ 080FA900 + .incbin "baserom.gba", 0x0FA900, 0x0000008 + +gUnk_080FA908:: @ 080FA908 + .incbin "baserom.gba", 0x0FA908, 0x0000020 + +gUnk_080FA928:: @ 080FA928 + .incbin "baserom.gba", 0x0FA928, 0x0000020 + +gUnk_080FA948:: @ 080FA948 + .incbin "baserom.gba", 0x0FA948, 0x0000010 + +gUnk_080FA958:: @ 080FA958 + .incbin "baserom.gba", 0x0FA958, 0x0000008 + +gUnk_080FA960:: @ 080FA960 + .incbin "baserom.gba", 0x0FA960, 0x0000020 + +gUnk_080FA980:: @ 080FA980 + .incbin "baserom.gba", 0x0FA980, 0x0000020 + +gUnk_080FA9A0:: @ 080FA9A0 + .incbin "baserom.gba", 0x0FA9A0, 0x0000010 + +gUnk_080FA9B0:: @ 080FA9B0 + .incbin "baserom.gba", 0x0FA9B0, 0x0000008 + +gUnk_080FA9B8:: @ 080FA9B8 + .incbin "baserom.gba", 0x0FA9B8, 0x0000020 + +gUnk_080FA9D8:: @ 080FA9D8 + .incbin "baserom.gba", 0x0FA9D8, 0x0000020 + +gUnk_080FA9F8:: @ 080FA9F8 + .incbin "baserom.gba", 0x0FA9F8, 0x0000060 + +gUnk_080FAA58:: @ 080FAA58 + .incbin "baserom.gba", 0x0FAA58, 0x0000010 + +gUnk_080FAA68:: @ 080FAA68 + .incbin "baserom.gba", 0x0FAA68, 0x0000008 + +gUnk_080FAA70:: @ 080FAA70 + .incbin "baserom.gba", 0x0FAA70, 0x0000020 + +gUnk_080FAA90:: @ 080FAA90 + .incbin "baserom.gba", 0x0FAA90, 0x0000020 + +gUnk_080FAAB0:: @ 080FAAB0 + .incbin "baserom.gba", 0x0FAAB0, 0x0000010 + +gUnk_080FAAC0:: @ 080FAAC0 + .incbin "baserom.gba", 0x0FAAC0, 0x0000010 + +gUnk_080FAAD0:: @ 080FAAD0 + .incbin "baserom.gba", 0x0FAAD0, 0x0000008 + +gUnk_080FAAD8:: @ 080FAAD8 + .incbin "baserom.gba", 0x0FAAD8, 0x0000020 + +gUnk_080FAAF8:: @ 080FAAF8 + .incbin "baserom.gba", 0x0FAAF8, 0x0000020 + +gUnk_080FAB18:: @ 080FAB18 + .incbin "baserom.gba", 0x0FAB18, 0x0000067 + +gUnk_080FAB7F:: @ 080FAB7F + .incbin "baserom.gba", 0x0FAB7F, 0x0000009 + +gUnk_080FAB88:: @ 080FAB88 + .incbin "baserom.gba", 0x0FAB88, 0x0000010 + +gUnk_080FAB98:: @ 080FAB98 + .incbin "baserom.gba", 0x0FAB98, 0x0000008 + +gUnk_080FABA0:: @ 080FABA0 + .incbin "baserom.gba", 0x0FABA0, 0x0000020 + +gUnk_080FABC0:: @ 080FABC0 + .incbin "baserom.gba", 0x0FABC0, 0x0000030 + +gUnk_080FABF0:: @ 080FABF0 + .incbin "baserom.gba", 0x0FABF0, 0x0000010 + +gUnk_080FAC00:: @ 080FAC00 + .incbin "baserom.gba", 0x0FAC00, 0x0000008 + +gUnk_080FAC08:: @ 080FAC08 + .incbin "baserom.gba", 0x0FAC08, 0x0000020 + +gUnk_080FAC28:: @ 080FAC28 + .incbin "baserom.gba", 0x0FAC28, 0x0000060 + +gUnk_080FAC88:: @ 080FAC88 + .incbin "baserom.gba", 0x0FAC88, 0x0000030 + +gUnk_080FACB8:: @ 080FACB8 + .incbin "baserom.gba", 0x0FACB8, 0x0000090 + +gUnk_080FAD48:: @ 080FAD48 + .incbin "baserom.gba", 0x0FAD48, 0x0000060 + +gUnk_080FADA8:: @ 080FADA8 + .incbin "baserom.gba", 0x0FADA8, 0x0000060 + +gUnk_080FAE08:: @ 080FAE08 + .incbin "baserom.gba", 0x0FAE08, 0x0000008 + +gUnk_080FAE10:: @ 080FAE10 + .incbin "baserom.gba", 0x0FAE10, 0x0000020 + +gUnk_080FAE30:: @ 080FAE30 + .incbin "baserom.gba", 0x0FAE30, 0x0000014 + +gUnk_080FAE44:: @ 080FAE44 + .incbin "baserom.gba", 0x0FAE44, 0x0000014 + +gUnk_080FAE58:: @ 080FAE58 + .incbin "baserom.gba", 0x0FAE58, 0x0000014 + +gUnk_080FAE6C:: @ 080FAE6C + .incbin "baserom.gba", 0x0FAE6C, 0x0000030 + +gUnk_080FAE9C:: @ 080FAE9C + .incbin "baserom.gba", 0x0FAE9C, 0x0000020 + +gUnk_080FAEBC:: @ 080FAEBC + .incbin "baserom.gba", 0x0FAEBC, 0x00000E0 + +gUnk_080FAF9C:: @ 080FAF9C + .incbin "baserom.gba", 0x0FAF9C, 0x0000018 + +gUnk_080FAFB4:: @ 080FAFB4 + .incbin "baserom.gba", 0x0FAFB4, 0x0000020 + +gUnk_080FAFD4:: @ 080FAFD4 + .incbin "baserom.gba", 0x0FAFD4, 0x0000010 + +gUnk_080FAFE4:: @ 080FAFE4 + .incbin "baserom.gba", 0x0FAFE4, 0x0000020 + +gUnk_080FB004:: @ 080FB004 + .incbin "baserom.gba", 0x0FB004, 0x0000020 + +gUnk_080FB024:: @ 080FB024 + .incbin "baserom.gba", 0x0FB024, 0x00000E0 + +gUnk_080FB104:: @ 080FB104 + .incbin "baserom.gba", 0x0FB104, 0x00000F0 + +gUnk_080FB1F4:: @ 080FB1F4 + .incbin "baserom.gba", 0x0FB1F4, 0x0000020 + +gUnk_080FB214:: @ 080FB214 + .incbin "baserom.gba", 0x0FB214, 0x0000020 + +gUnk_080FB234:: @ 080FB234 + .incbin "baserom.gba", 0x0FB234, 0x0000014 + +gUnk_080FB248:: @ 080FB248 + .incbin "baserom.gba", 0x0FB248, 0x0000014 + +gUnk_080FB25C:: @ 080FB25C + .incbin "baserom.gba", 0x0FB25C, 0x0000014 + +gUnk_080FB270:: @ 080FB270 + .incbin "baserom.gba", 0x0FB270, 0x0000030 + +gUnk_080FB2A0:: @ 080FB2A0 + .incbin "baserom.gba", 0x0FB2A0, 0x0000040 + +gUnk_080FB2E0:: @ 080FB2E0 + .incbin "baserom.gba", 0x0FB2E0, 0x0000130 + +gUnk_080FB410:: @ 080FB410 + .incbin "baserom.gba", 0x0FB410, 0x0000050 + +gUnk_080FB460:: @ 080FB460 + .incbin "baserom.gba", 0x0FB460, 0x0000020 + +gUnk_080FB480:: @ 080FB480 + .incbin "baserom.gba", 0x0FB480, 0x0000150 + +gUnk_080FB5D0:: @ 080FB5D0 + .incbin "baserom.gba", 0x0FB5D0, 0x0000030 + +gUnk_080FB600:: @ 080FB600 + .incbin "baserom.gba", 0x0FB600, 0x0000100 + +gUnk_080FB700:: @ 080FB700 + .incbin "baserom.gba", 0x0FB700, 0x0000048 + +gUnk_080FB748:: @ 080FB748 + .incbin "baserom.gba", 0x0FB748, 0x0000020 + +gUnk_080FB768:: @ 080FB768 + .incbin "baserom.gba", 0x0FB768, 0x0000014 + +gUnk_080FB77C:: @ 080FB77C + .incbin "baserom.gba", 0x0FB77C, 0x0000014 + +gUnk_080FB790:: @ 080FB790 + .incbin "baserom.gba", 0x0FB790, 0x0000014 + +gUnk_080FB7A4:: @ 080FB7A4 + .incbin "baserom.gba", 0x0FB7A4, 0x0000030 + +gUnk_080FB7D4:: @ 080FB7D4 + .incbin "baserom.gba", 0x0FB7D4, 0x0000070 + +gUnk_080FB844:: @ 080FB844 + .incbin "baserom.gba", 0x0FB844, 0x0000020 + +gUnk_080FB864:: @ 080FB864 + .incbin "baserom.gba", 0x0FB864, 0x0000050 + +gUnk_080FB8B4:: @ 080FB8B4 + .incbin "baserom.gba", 0x0FB8B4, 0x0000008 + +gUnk_080FB8BC:: @ 080FB8BC + .incbin "baserom.gba", 0x0FB8BC, 0x0000020 + +gUnk_080FB8DC:: @ 080FB8DC + .incbin "baserom.gba", 0x0FB8DC, 0x0000030 + +gUnk_080FB90C:: @ 080FB90C + .incbin "baserom.gba", 0x0FB90C, 0x0000010 + +gUnk_080FB91C:: @ 080FB91C + .incbin "baserom.gba", 0x0FB91C, 0x0000010 + +gUnk_080FB92C:: @ 080FB92C + .incbin "baserom.gba", 0x0FB92C, 0x0000008 + +gUnk_080FB934:: @ 080FB934 + .incbin "baserom.gba", 0x0FB934, 0x0000020 + +gUnk_080FB954:: @ 080FB954 + .incbin "baserom.gba", 0x0FB954, 0x0000090 + +gUnk_080FB9E4:: @ 080FB9E4 + .incbin "baserom.gba", 0x0FB9E4, 0x0000010 + +gUnk_080FB9F4:: @ 080FB9F4 + .incbin "baserom.gba", 0x0FB9F4, 0x0000070 + +gUnk_080FBA64:: @ 080FBA64 + .incbin "baserom.gba", 0x0FBA64, 0x0000008 + +gUnk_080FBA6C:: @ 080FBA6C + .incbin "baserom.gba", 0x0FBA6C, 0x0000020 + +gUnk_080FBA8C:: @ 080FBA8C + .incbin "baserom.gba", 0x0FBA8C, 0x0000010 + +gUnk_080FBA9C:: @ 080FBA9C + .incbin "baserom.gba", 0x0FBA9C, 0x0000010 + +gUnk_080FBAAC:: @ 080FBAAC + .incbin "baserom.gba", 0x0FBAAC, 0x0000030 + +gUnk_080FBADC:: @ 080FBADC + .incbin "baserom.gba", 0x0FBADC, 0x0000010 + +gUnk_080FBAEC:: @ 080FBAEC + .incbin "baserom.gba", 0x0FBAEC, 0x0000020 + +gUnk_080FBB0C:: @ 080FBB0C + .incbin "baserom.gba", 0x0FBB0C, 0x0000010 + +gUnk_080FBB1C:: @ 080FBB1C + .incbin "baserom.gba", 0x0FBB1C, 0x0000010 + +gUnk_080FBB2C:: @ 080FBB2C + .incbin "baserom.gba", 0x0FBB2C, 0x0000020 + +gUnk_080FBB4C:: @ 080FBB4C + .incbin "baserom.gba", 0x0FBB4C, 0x0000008 + +gUnk_080FBB54:: @ 080FBB54 + .incbin "baserom.gba", 0x0FBB54, 0x0000020 + +gUnk_080FBB74:: @ 080FBB74 + .incbin "baserom.gba", 0x0FBB74, 0x0000020 + +gUnk_080FBB94:: @ 080FBB94 + .incbin "baserom.gba", 0x0FBB94, 0x0000010 + +gUnk_080FBBA4:: @ 080FBBA4 + .incbin "baserom.gba", 0x0FBBA4, 0x0000050 + +gUnk_080FBBF4:: @ 080FBBF4 + .incbin "baserom.gba", 0x0FBBF4, 0x0000010 + +gUnk_080FBC04:: @ 080FBC04 + .incbin "baserom.gba", 0x0FBC04, 0x0000020 + +gUnk_080FBC24:: @ 080FBC24 + .incbin "baserom.gba", 0x0FBC24, 0x0000030 + +gUnk_080FBC54:: @ 080FBC54 + .incbin "baserom.gba", 0x0FBC54, 0x0000010 + +gUnk_080FBC64:: @ 080FBC64 + .incbin "baserom.gba", 0x0FBC64, 0x0000040 + +gUnk_080FBCA4:: @ 080FBCA4 + .incbin "baserom.gba", 0x0FBCA4, 0x0000010 + +gUnk_080FBCB4:: @ 080FBCB4 + .incbin "baserom.gba", 0x0FBCB4, 0x0000020 + +gUnk_080FBCD4:: @ 080FBCD4 + .incbin "baserom.gba", 0x0FBCD4, 0x00000A0 + +gUnk_080FBD74:: @ 080FBD74 + .incbin "baserom.gba", 0x0FBD74, 0x0000010 + +gUnk_080FBD84:: @ 080FBD84 + .incbin "baserom.gba", 0x0FBD84, 0x0000030 + +gUnk_080FBDB4:: @ 080FBDB4 + .incbin "baserom.gba", 0x0FBDB4, 0x0000010 + +gUnk_080FBDC4:: @ 080FBDC4 + .incbin "baserom.gba", 0x0FBDC4, 0x0000020 + +gUnk_080FBDE4:: @ 080FBDE4 + .incbin "baserom.gba", 0x0FBDE4, 0x0000020 + +gUnk_080FBE04:: @ 080FBE04 + .incbin "baserom.gba", 0x0FBE04, 0x0000010 + +gUnk_080FBE14:: @ 080FBE14 + .incbin "baserom.gba", 0x0FBE14, 0x0000030 + +gUnk_080FBE44:: @ 080FBE44 + .incbin "baserom.gba", 0x0FBE44, 0x0000018 + +gUnk_080FBE5C:: @ 080FBE5C + .incbin "baserom.gba", 0x0FBE5C, 0x0000020 + +gUnk_080FBE7C:: @ 080FBE7C + .incbin "baserom.gba", 0x0FBE7C, 0x0000070 + +gUnk_080FBEEC:: @ 080FBEEC + .incbin "baserom.gba", 0x0FBEEC, 0x0000010 + +gUnk_080FBEFC:: @ 080FBEFC + .incbin "baserom.gba", 0x0FBEFC, 0x0000010 + +gUnk_080FBF0C:: @ 080FBF0C + .incbin "baserom.gba", 0x0FBF0C, 0x0000010 + +gUnk_080FBF1C:: @ 080FBF1C + .incbin "baserom.gba", 0x0FBF1C, 0x0000020 + +gUnk_080FBF3C:: @ 080FBF3C + .incbin "baserom.gba", 0x0FBF3C, 0x00000C0 + +gUnk_080FBFFC:: @ 080FBFFC + .incbin "baserom.gba", 0x0FBFFC, 0x0000010 + +gUnk_080FC00C:: @ 080FC00C + .incbin "baserom.gba", 0x0FC00C, 0x0000050 + +gUnk_080FC05C:: @ 080FC05C + .incbin "baserom.gba", 0x0FC05C, 0x0000008 + +gUnk_080FC064:: @ 080FC064 + .incbin "baserom.gba", 0x0FC064, 0x0000020 + +gUnk_080FC084:: @ 080FC084 + .incbin "baserom.gba", 0x0FC084, 0x0000030 + +gUnk_080FC0B4:: @ 080FC0B4 + .incbin "baserom.gba", 0x0FC0B4, 0x0000010 + +gUnk_080FC0C4:: @ 080FC0C4 + .incbin "baserom.gba", 0x0FC0C4, 0x0000060 + +gUnk_080FC124:: @ 080FC124 + .incbin "baserom.gba", 0x0FC124, 0x0000008 + +gUnk_080FC12C:: @ 080FC12C + .incbin "baserom.gba", 0x0FC12C, 0x0000020 + +gUnk_080FC14C:: @ 080FC14C + .incbin "baserom.gba", 0x0FC14C, 0x0000010 + +gUnk_080FC15C:: @ 080FC15C + .incbin "baserom.gba", 0x0FC15C, 0x0000020 + +gUnk_080FC17C:: @ 080FC17C + .incbin "baserom.gba", 0x0FC17C, 0x0000040 + +gUnk_080FC1BC:: @ 080FC1BC + .incbin "baserom.gba", 0x0FC1BC, 0x0000008 + +gUnk_080FC1C4:: @ 080FC1C4 + .incbin "baserom.gba", 0x0FC1C4, 0x0000020 + +gUnk_080FC1E4:: @ 080FC1E4 + .incbin "baserom.gba", 0x0FC1E4, 0x0000010 + +gUnk_080FC1F4:: @ 080FC1F4 + .incbin "baserom.gba", 0x0FC1F4, 0x0000010 + +gUnk_080FC204:: @ 080FC204 + .incbin "baserom.gba", 0x0FC204, 0x0000020 + +gUnk_080FC224:: @ 080FC224 + .incbin "baserom.gba", 0x0FC224, 0x0000010 + +gUnk_080FC234:: @ 080FC234 + .incbin "baserom.gba", 0x0FC234, 0x0000020 + +gUnk_080FC254:: @ 080FC254 + .incbin "baserom.gba", 0x0FC254, 0x0000020 + +gUnk_080FC274:: @ 080FC274 + .incbin "baserom.gba", 0x0FC274, 0x0000010 + +gUnk_080FC284:: @ 080FC284 + .incbin "baserom.gba", 0x0FC284, 0x0000010 + +gUnk_080FC294:: @ 080FC294 + .incbin "baserom.gba", 0x0FC294, 0x0000010 + +gUnk_080FC2A4:: @ 080FC2A4 + .incbin "baserom.gba", 0x0FC2A4, 0x0000020 + +gUnk_080FC2C4:: @ 080FC2C4 + .incbin "baserom.gba", 0x0FC2C4, 0x0000010 + +gUnk_080FC2D4:: @ 080FC2D4 + .incbin "baserom.gba", 0x0FC2D4, 0x0000010 + +gUnk_080FC2E4:: @ 080FC2E4 + .incbin "baserom.gba", 0x0FC2E4, 0x0000020 + +gUnk_080FC304:: @ 080FC304 + .incbin "baserom.gba", 0x0FC304, 0x0000008 + +gUnk_080FC30C:: @ 080FC30C + .incbin "baserom.gba", 0x0FC30C, 0x0000020 + +gUnk_080FC32C:: @ 080FC32C + .incbin "baserom.gba", 0x0FC32C, 0x0000050 + +gUnk_080FC37C:: @ 080FC37C + .incbin "baserom.gba", 0x0FC37C, 0x0000010 + +gUnk_080FC38C:: @ 080FC38C + .incbin "baserom.gba", 0x0FC38C, 0x0000010 + +gUnk_080FC39C:: @ 080FC39C + .incbin "baserom.gba", 0x0FC39C, 0x0000008 + +gUnk_080FC3A4:: @ 080FC3A4 + .incbin "baserom.gba", 0x0FC3A4, 0x0000020 + +gUnk_080FC3C4:: @ 080FC3C4 + .incbin "baserom.gba", 0x0FC3C4, 0x0000020 + +gUnk_080FC3E4:: @ 080FC3E4 + .incbin "baserom.gba", 0x0FC3E4, 0x0000460 + +gUnk_080FC844:: @ 080FC844 + .incbin "baserom.gba", 0x0FC844, 0x0000018 + +gUnk_080FC85C:: @ 080FC85C + .incbin "baserom.gba", 0x0FC85C, 0x0000048 + +gUnk_080FC8A4:: @ 080FC8A4 + .incbin "baserom.gba", 0x0FC8A4, 0x000000C + +gUnk_080FC8B0:: @ 080FC8B0 + .incbin "baserom.gba", 0x0FC8B0, 0x0000020 + +gUnk_080FC8D0:: @ 080FC8D0 + .incbin "baserom.gba", 0x0FC8D0, 0x000000E + +gUnk_080FC8DE:: @ 080FC8DE + .incbin "baserom.gba", 0x0FC8DE, 0x000001E + +gUnk_080FC8FC:: @ 080FC8FC + .incbin "baserom.gba", 0x0FC8FC, 0x0000007 + +gUnk_080FC903:: @ 080FC903 + .incbin "baserom.gba", 0x0FC903, 0x0000005 + +gUnk_080FC908:: @ 080FC908 + .incbin "baserom.gba", 0x0FC908, 0x000000C + +gUnk_080FC914:: @ 080FC914 + .incbin "baserom.gba", 0x0FC914, 0x0000028 + +gUnk_080FC93C:: @ 080FC93C + .incbin "baserom.gba", 0x0FC93C, 0x0000008 + +gUnk_080FC944:: @ 080FC944 + .incbin "baserom.gba", 0x0FC944, 0x000000C + +gUnk_080FC950:: @ 080FC950 + .incbin "baserom.gba", 0x0FC950, 0x0000010 + +gUnk_080FC960:: @ 080FC960 + .incbin "baserom.gba", 0x0FC960, 0x0000010 + +gUnk_080FC970:: @ 080FC970 + .incbin "baserom.gba", 0x0FC970, 0x0000010 + +gUnk_080FC980:: @ 080FC980 + .incbin "baserom.gba", 0x0FC980, 0x0000020 + +gUnk_080FC9A0:: @ 080FC9A0 + .incbin "baserom.gba", 0x0FC9A0, 0x0000010 + +gUnk_080FC9B0:: @ 080FC9B0 + .incbin "baserom.gba", 0x0FC9B0, 0x000000C + +gUnk_080FC9BC:: @ 080FC9BC + .incbin "baserom.gba", 0x0FC9BC, 0x000000C + +gUnk_080FC9C8:: @ 080FC9C8 + .incbin "baserom.gba", 0x0FC9C8, 0x0000010 + +gUnk_080FC9D8:: @ 080FC9D8 + .incbin "baserom.gba", 0x0FC9D8, 0x0000010 + +gUnk_080FC9E8:: @ 080FC9E8 + .incbin "baserom.gba", 0x0FC9E8, 0x0000020 + +gUnk_080FCA08:: @ 080FCA08 + .incbin "baserom.gba", 0x0FCA08, 0x000000C + +gUnk_080FCA14:: @ 080FCA14 + .incbin "baserom.gba", 0x0FCA14, 0x000000C + +gUnk_080FCA20:: @ 080FCA20 + .incbin "baserom.gba", 0x0FCA20, 0x0000050 + +gUnk_080FCA70:: @ 080FCA70 + .incbin "baserom.gba", 0x0FCA70, 0x0000014 + +gUnk_080FCA84:: @ 080FCA84 + .incbin "baserom.gba", 0x0FCA84, 0x0000008 + +gUnk_080FCA8C:: @ 080FCA8C + .incbin "baserom.gba", 0x0FCA8C, 0x0000018 + +gUnk_080FCAA4:: @ 080FCAA4 + .incbin "baserom.gba", 0x0FCAA4, 0x0000024 + +gUnk_080FCAC8:: @ 080FCAC8 + .incbin "baserom.gba", 0x0FCAC8, 0x000000E + +gUnk_080FCAD6:: @ 080FCAD6 + .incbin "baserom.gba", 0x0FCAD6, 0x0000022 + +gUnk_080FCAF8:: @ 080FCAF8 + .incbin "baserom.gba", 0x0FCAF8, 0x0000020 + +gUnk_080FCB18:: @ 080FCB18 + .incbin "baserom.gba", 0x0FCB18, 0x0000020 + +gUnk_080FCB38:: @ 080FCB38 + .incbin "baserom.gba", 0x0FCB38, 0x000002A + +gUnk_080FCB62:: @ 080FCB62 + .incbin "baserom.gba", 0x0FCB62, 0x0000032 + +gUnk_080FCB94:: @ 080FCB94 + .incbin "baserom.gba", 0x0FCB94, 0x0000020 + +gUnk_080FCBB4:: @ 080FCBB4 + .incbin "baserom.gba", 0x0FCBB4, 0x0000010 + +gUnk_080FCBC4:: @ 080FCBC4 + .incbin "baserom.gba", 0x0FCBC4, 0x0000050 + +gUnk_080FCC14:: @ 080FCC14 + .incbin "baserom.gba", 0x0FCC14, 0x0000040 + +gUnk_080FCC54:: @ 080FCC54 + .incbin "baserom.gba", 0x0FCC54, 0x0000030 + +gUnk_080FCC84:: @ 080FCC84 + .incbin "baserom.gba", 0x0FCC84, 0x0000018 + +gUnk_080FCC9C:: @ 080FCC9C + .incbin "baserom.gba", 0x0FCC9C, 0x0000018 + +gUnk_080FCCB4:: @ 080FCCB4 + .incbin "baserom.gba", 0x0FCCB4, 0x0000048 + +gUnk_080FCCFC:: @ 080FCCFC + .incbin "baserom.gba", 0x0FCCFC, 0x000003C + +gUnk_080FCD38:: @ 080FCD38 + .incbin "baserom.gba", 0x0FCD38, 0x0000008 + +gUnk_080FCD40:: @ 080FCD40 + .incbin "baserom.gba", 0x0FCD40, 0x0000044 + +gUnk_080FCD84:: @ 080FCD84 + .incbin "baserom.gba", 0x0FCD84, 0x0000050 + +gUnk_080FCDD4:: @ 080FCDD4 + .incbin "baserom.gba", 0x0FCDD4, 0x000000C + +gUnk_080FCDE0:: @ 080FCDE0 + .incbin "baserom.gba", 0x0FCDE0, 0x0000050 + +gUnk_080FCE30:: @ 080FCE30 + .incbin "baserom.gba", 0x0FCE30, 0x0000080 + +gUnk_080FCEB0:: @ 080FCEB0 + .incbin "baserom.gba", 0x0FCEB0, 0x000000C + +gUnk_080FCEBC:: @ 080FCEBC + .incbin "baserom.gba", 0x0FCEBC, 0x0000030 + +gUnk_080FCEEC:: @ 080FCEEC + .incbin "baserom.gba", 0x0FCEEC, 0x000000C + +gUnk_080FCEF8:: @ 080FCEF8 + .incbin "baserom.gba", 0x0FCEF8, 0x000000C + +gUnk_080FCF04:: @ 080FCF04 + .incbin "baserom.gba", 0x0FCF04, 0x0000020 + +gUnk_080FCF24:: @ 080FCF24 + .incbin "baserom.gba", 0x0FCF24, 0x0000020 + +gUnk_080FCF44:: @ 080FCF44 + .incbin "baserom.gba", 0x0FCF44, 0x0000020 + +gUnk_080FCF64:: @ 080FCF64 + .incbin "baserom.gba", 0x0FCF64, 0x0000020 + +gUnk_080FCF84:: @ 080FCF84 + .incbin "baserom.gba", 0x0FCF84, 0x0000020 + +gUnk_080FCFA4:: @ 080FCFA4 + .incbin "baserom.gba", 0x0FCFA4, 0x0000014 + +gUnk_080FCFB8:: @ 080FCFB8 + .incbin "baserom.gba", 0x0FCFB8, 0x0000030 + +gUnk_080FCFE8:: @ 080FCFE8 + .incbin "baserom.gba", 0x0FCFE8, 0x0000020 + +gUnk_080FD008:: @ 080FD008 + .incbin "baserom.gba", 0x0FD008, 0x0000020 + +gUnk_080FD028:: @ 080FD028 + .incbin "baserom.gba", 0x0FD028, 0x0000020 + +gUnk_080FD048:: @ 080FD048 + .incbin "baserom.gba", 0x0FD048, 0x0000030 + +gUnk_080FD078:: @ 080FD078 + .incbin "baserom.gba", 0x0FD078, 0x0000020 + +gUnk_080FD098:: @ 080FD098 + .incbin "baserom.gba", 0x0FD098, 0x0000030 + +gUnk_080FD0C8:: @ 080FD0C8 + .incbin "baserom.gba", 0x0FD0C8, 0x0000020 + +gUnk_080FD0E8:: @ 080FD0E8 + .incbin "baserom.gba", 0x0FD0E8, 0x0000020 + +gUnk_080FD108:: @ 080FD108 + .incbin "baserom.gba", 0x0FD108, 0x0000030 + +gUnk_080FD138:: @ 080FD138 + .incbin "baserom.gba", 0x0FD138, 0x0000018 + +gUnk_080FD150:: @ 080FD150 + .incbin "baserom.gba", 0x0FD150, 0x0000008 + +gUnk_080FD158:: @ 080FD158 + .incbin "baserom.gba", 0x0FD158, 0x0000008 + +gUnk_080FD160:: @ 080FD160 + .incbin "baserom.gba", 0x0FD160, 0x0000008 + +gUnk_080FD168:: @ 080FD168 + .incbin "baserom.gba", 0x0FD168, 0x0000008 + +gUnk_080FD170:: @ 080FD170 + .incbin "baserom.gba", 0x0FD170, 0x0000008 + +gUnk_080FD178:: @ 080FD178 + .incbin "baserom.gba", 0x0FD178, 0x0000008 + +gUnk_080FD180:: @ 080FD180 + .incbin "baserom.gba", 0x0FD180, 0x0000008 + +gUnk_080FD188:: @ 080FD188 + .incbin "baserom.gba", 0x0FD188, 0x0000008 + +gUnk_080FD190:: @ 080FD190 + .incbin "baserom.gba", 0x0FD190, 0x0000008 + +gUnk_080FD198:: @ 080FD198 + .incbin "baserom.gba", 0x0FD198, 0x0000008 + +gUnk_080FD1A0:: @ 080FD1A0 + .incbin "baserom.gba", 0x0FD1A0, 0x0000008 + +gUnk_080FD1A8:: @ 080FD1A8 + .incbin "baserom.gba", 0x0FD1A8, 0x000000C + +gUnk_080FD1B4:: @ 080FD1B4 + .incbin "baserom.gba", 0x0FD1B4, 0x0000010 + +gUnk_080FD1C4:: @ 080FD1C4 + .incbin "baserom.gba", 0x0FD1C4, 0x0000008 + +gUnk_080FD1CC:: @ 080FD1CC + .incbin "baserom.gba", 0x0FD1CC, 0x0000008 + +gUnk_080FD1D4:: @ 080FD1D4 + .incbin "baserom.gba", 0x0FD1D4, 0x0000008 + +gUnk_080FD1DC:: @ 080FD1DC + .incbin "baserom.gba", 0x0FD1DC, 0x0000008 + +gUnk_080FD1E4:: @ 080FD1E4 + .incbin "baserom.gba", 0x0FD1E4, 0x0000008 + +gUnk_080FD1EC:: @ 080FD1EC + .incbin "baserom.gba", 0x0FD1EC, 0x0000008 + +gUnk_080FD1F4:: @ 080FD1F4 + .incbin "baserom.gba", 0x0FD1F4, 0x0000008 + +gUnk_080FD1FC:: @ 080FD1FC + .incbin "baserom.gba", 0x0FD1FC, 0x0000008 + +gUnk_080FD204:: @ 080FD204 + .incbin "baserom.gba", 0x0FD204, 0x0000008 + +gUnk_080FD20C:: @ 080FD20C + .incbin "baserom.gba", 0x0FD20C, 0x0000008 + +gUnk_080FD214:: @ 080FD214 + .incbin "baserom.gba", 0x0FD214, 0x0000008 + +gUnk_080FD21C:: @ 080FD21C + .incbin "baserom.gba", 0x0FD21C, 0x0000008 + +gUnk_080FD224:: @ 080FD224 + .incbin "baserom.gba", 0x0FD224, 0x0000008 + +gUnk_080FD22C:: @ 080FD22C + .incbin "baserom.gba", 0x0FD22C, 0x000000C + +gUnk_080FD238:: @ 080FD238 + .incbin "baserom.gba", 0x0FD238, 0x0000008 + +gUnk_080FD240:: @ 080FD240 + .incbin "baserom.gba", 0x0FD240, 0x0000008 + +gUnk_080FD248:: @ 080FD248 + .incbin "baserom.gba", 0x0FD248, 0x0000008 + +gUnk_080FD250:: @ 080FD250 + .incbin "baserom.gba", 0x0FD250, 0x0000008 + +gUnk_080FD258:: @ 080FD258 + .incbin "baserom.gba", 0x0FD258, 0x0000008 + +gUnk_080FD260:: @ 080FD260 + .incbin "baserom.gba", 0x0FD260, 0x0000008 + +gUnk_080FD268:: @ 080FD268 + .incbin "baserom.gba", 0x0FD268, 0x0000008 + +gUnk_080FD270:: @ 080FD270 + .incbin "baserom.gba", 0x0FD270, 0x0000008 + +gUnk_080FD278:: @ 080FD278 + .incbin "baserom.gba", 0x0FD278, 0x0000008 + +gUnk_080FD280:: @ 080FD280 + .incbin "baserom.gba", 0x0FD280, 0x0000008 + +gUnk_080FD288:: @ 080FD288 + .incbin "baserom.gba", 0x0FD288, 0x0000008 + +gUnk_080FD290:: @ 080FD290 + .incbin "baserom.gba", 0x0FD290, 0x0000008 + +gUnk_080FD298:: @ 080FD298 + .incbin "baserom.gba", 0x0FD298, 0x0000008 + +gUnk_080FD2A0:: @ 080FD2A0 + .incbin "baserom.gba", 0x0FD2A0, 0x0000008 + +gUnk_080FD2A8:: @ 080FD2A8 + .incbin "baserom.gba", 0x0FD2A8, 0x0000008 + +gUnk_080FD2B0:: @ 080FD2B0 + .incbin "baserom.gba", 0x0FD2B0, 0x0000008 + +gUnk_080FD2B8:: @ 080FD2B8 + .incbin "baserom.gba", 0x0FD2B8, 0x0000008 + +gUnk_080FD2C0:: @ 080FD2C0 + .incbin "baserom.gba", 0x0FD2C0, 0x0000008 + +gUnk_080FD2C8:: @ 080FD2C8 + .incbin "baserom.gba", 0x0FD2C8, 0x0000008 + +gUnk_080FD2D0:: @ 080FD2D0 + .incbin "baserom.gba", 0x0FD2D0, 0x0000008 + +gUnk_080FD2D8:: @ 080FD2D8 + .incbin "baserom.gba", 0x0FD2D8, 0x0000008 + +gUnk_080FD2E0:: @ 080FD2E0 + .incbin "baserom.gba", 0x0FD2E0, 0x0000008 + +gUnk_080FD2E8:: @ 080FD2E8 + .incbin "baserom.gba", 0x0FD2E8, 0x0000008 + +gUnk_080FD2F0:: @ 080FD2F0 + .incbin "baserom.gba", 0x0FD2F0, 0x0000008 + +gUnk_080FD2F8:: @ 080FD2F8 + .incbin "baserom.gba", 0x0FD2F8, 0x0000008 + +gUnk_080FD300:: @ 080FD300 + .incbin "baserom.gba", 0x0FD300, 0x0000008 + +gUnk_080FD308:: @ 080FD308 + .incbin "baserom.gba", 0x0FD308, 0x0000008 + +gUnk_080FD310:: @ 080FD310 + .incbin "baserom.gba", 0x0FD310, 0x0000008 + +gUnk_080FD318:: @ 080FD318 + .incbin "baserom.gba", 0x0FD318, 0x0000008 + +gUnk_080FD320:: @ 080FD320 + .incbin "baserom.gba", 0x0FD320, 0x0000008 + +gUnk_080FD328:: @ 080FD328 + .incbin "baserom.gba", 0x0FD328, 0x0000008 + +gUnk_080FD330:: @ 080FD330 + .incbin "baserom.gba", 0x0FD330, 0x0000008 + +gUnk_080FD338:: @ 080FD338 + .incbin "baserom.gba", 0x0FD338, 0x0000008 + +gUnk_080FD340:: @ 080FD340 + .incbin "baserom.gba", 0x0FD340, 0x000000C + +gUnk_080FD34C:: @ 080FD34C + .incbin "baserom.gba", 0x0FD34C, 0x0000008 + +gUnk_080FD354:: @ 080FD354 + .incbin "baserom.gba", 0x0FD354, 0x0000008 + +gUnk_080FD35C:: @ 080FD35C + .incbin "baserom.gba", 0x0FD35C, 0x0000008 + +gUnk_080FD364:: @ 080FD364 + .incbin "baserom.gba", 0x0FD364, 0x0000008 + +gUnk_080FD36C:: @ 080FD36C + .incbin "baserom.gba", 0x0FD36C, 0x0000008 + +gUnk_080FD374:: @ 080FD374 + .incbin "baserom.gba", 0x0FD374, 0x0000008 + +gUnk_080FD37C:: @ 080FD37C + .incbin "baserom.gba", 0x0FD37C, 0x0000008 + +gUnk_080FD384:: @ 080FD384 + .incbin "baserom.gba", 0x0FD384, 0x0000008 + +gUnk_080FD38C:: @ 080FD38C + .incbin "baserom.gba", 0x0FD38C, 0x0000008 + +gUnk_080FD394:: @ 080FD394 + .incbin "baserom.gba", 0x0FD394, 0x0000008 + +gUnk_080FD39C:: @ 080FD39C + .incbin "baserom.gba", 0x0FD39C, 0x0000008 + +gUnk_080FD3A4:: @ 080FD3A4 + .incbin "baserom.gba", 0x0FD3A4, 0x0000008 + +gUnk_080FD3AC:: @ 080FD3AC + .incbin "baserom.gba", 0x0FD3AC, 0x0000008 + +gUnk_080FD3B4:: @ 080FD3B4 + .incbin "baserom.gba", 0x0FD3B4, 0x0000008 + +gUnk_080FD3BC:: @ 080FD3BC + .incbin "baserom.gba", 0x0FD3BC, 0x0000008 + +gUnk_080FD3C4:: @ 080FD3C4 + .incbin "baserom.gba", 0x0FD3C4, 0x0000008 + +gUnk_080FD3CC:: @ 080FD3CC + .incbin "baserom.gba", 0x0FD3CC, 0x0000010 + +gUnk_080FD3DC:: @ 080FD3DC + .incbin "baserom.gba", 0x0FD3DC, 0x0000008 + +gUnk_080FD3E4:: @ 080FD3E4 + .incbin "baserom.gba", 0x0FD3E4, 0x0000008 + +gUnk_080FD3EC:: @ 080FD3EC + .incbin "baserom.gba", 0x0FD3EC, 0x0000008 + +gUnk_080FD3F4:: @ 080FD3F4 + .incbin "baserom.gba", 0x0FD3F4, 0x0000008 + +gUnk_080FD3FC:: @ 080FD3FC + .incbin "baserom.gba", 0x0FD3FC, 0x000000C + +gUnk_080FD408:: @ 080FD408 + .incbin "baserom.gba", 0x0FD408, 0x0000008 + +gUnk_080FD410:: @ 080FD410 + .incbin "baserom.gba", 0x0FD410, 0x000000C + +gUnk_080FD41C:: @ 080FD41C + .incbin "baserom.gba", 0x0FD41C, 0x0000008 + +gUnk_080FD424:: @ 080FD424 + .incbin "baserom.gba", 0x0FD424, 0x0000008 + +gUnk_080FD42C:: @ 080FD42C + .incbin "baserom.gba", 0x0FD42C, 0x0000008 + +gUnk_080FD434:: @ 080FD434 + .incbin "baserom.gba", 0x0FD434, 0x0000008 + +gUnk_080FD43C:: @ 080FD43C + .incbin "baserom.gba", 0x0FD43C, 0x000000C + +gUnk_080FD448:: @ 080FD448 + .incbin "baserom.gba", 0x0FD448, 0x0000008 + +gUnk_080FD450:: @ 080FD450 + .incbin "baserom.gba", 0x0FD450, 0x0000008 + +gUnk_080FD458:: @ 080FD458 + .incbin "baserom.gba", 0x0FD458, 0x0000008 + +gUnk_080FD460:: @ 080FD460 + .incbin "baserom.gba", 0x0FD460, 0x0000008 + +gUnk_080FD468:: @ 080FD468 + .incbin "baserom.gba", 0x0FD468, 0x0000008 + +gUnk_080FD470:: @ 080FD470 + .incbin "baserom.gba", 0x0FD470, 0x0000010 + +gUnk_080FD480:: @ 080FD480 + .incbin "baserom.gba", 0x0FD480, 0x0000008 + +gUnk_080FD488:: @ 080FD488 + .incbin "baserom.gba", 0x0FD488, 0x0000008 + +gUnk_080FD490:: @ 080FD490 + .incbin "baserom.gba", 0x0FD490, 0x0000008 + +gUnk_080FD498:: @ 080FD498 + .incbin "baserom.gba", 0x0FD498, 0x000000C + +gUnk_080FD4A4:: @ 080FD4A4 + .incbin "baserom.gba", 0x0FD4A4, 0x0000014 + +gUnk_080FD4B8:: @ 080FD4B8 + .incbin "baserom.gba", 0x0FD4B8, 0x0000008 + +gUnk_080FD4C0:: @ 080FD4C0 + .incbin "baserom.gba", 0x0FD4C0, 0x0000008 + +gUnk_080FD4C8:: @ 080FD4C8 + .incbin "baserom.gba", 0x0FD4C8, 0x0000008 + +gUnk_080FD4D0:: @ 080FD4D0 + .incbin "baserom.gba", 0x0FD4D0, 0x0000008 + +gUnk_080FD4D8:: @ 080FD4D8 + .incbin "baserom.gba", 0x0FD4D8, 0x0000008 + +gUnk_080FD4E0:: @ 080FD4E0 + .incbin "baserom.gba", 0x0FD4E0, 0x0000008 + +gUnk_080FD4E8:: @ 080FD4E8 + .incbin "baserom.gba", 0x0FD4E8, 0x0000008 + +gUnk_080FD4F0:: @ 080FD4F0 + .incbin "baserom.gba", 0x0FD4F0, 0x0000008 + +gUnk_080FD4F8:: @ 080FD4F8 + .incbin "baserom.gba", 0x0FD4F8, 0x0000008 + +gUnk_080FD500:: @ 080FD500 + .incbin "baserom.gba", 0x0FD500, 0x0000008 + +gUnk_080FD508:: @ 080FD508 + .incbin "baserom.gba", 0x0FD508, 0x0000008 + +gUnk_080FD510:: @ 080FD510 + .incbin "baserom.gba", 0x0FD510, 0x0000008 + +gUnk_080FD518:: @ 080FD518 + .incbin "baserom.gba", 0x0FD518, 0x0000008 + +gUnk_080FD520:: @ 080FD520 + .incbin "baserom.gba", 0x0FD520, 0x0000008 + +gUnk_080FD528:: @ 080FD528 + .incbin "baserom.gba", 0x0FD528, 0x0000008 + +gUnk_080FD530:: @ 080FD530 + .incbin "baserom.gba", 0x0FD530, 0x0000008 + +gUnk_080FD538:: @ 080FD538 + .incbin "baserom.gba", 0x0FD538, 0x000000C + +gUnk_080FD544:: @ 080FD544 + .incbin "baserom.gba", 0x0FD544, 0x0000008 + +gUnk_080FD54C:: @ 080FD54C + .incbin "baserom.gba", 0x0FD54C, 0x000000C + +gUnk_080FD558:: @ 080FD558 + .incbin "baserom.gba", 0x0FD558, 0x0000008 + +gUnk_080FD560:: @ 080FD560 + .incbin "baserom.gba", 0x0FD560, 0x0000008 + +gUnk_080FD568:: @ 080FD568 + .incbin "baserom.gba", 0x0FD568, 0x0000008 + +gUnk_080FD570:: @ 080FD570 + .incbin "baserom.gba", 0x0FD570, 0x0000008 + +gUnk_080FD578:: @ 080FD578 + .incbin "baserom.gba", 0x0FD578, 0x0000008 + +gUnk_080FD580:: @ 080FD580 + .incbin "baserom.gba", 0x0FD580, 0x0000008 + +gUnk_080FD588:: @ 080FD588 + .incbin "baserom.gba", 0x0FD588, 0x0000008 + +gUnk_080FD590:: @ 080FD590 + .incbin "baserom.gba", 0x0FD590, 0x0000010 + +gUnk_080FD5A0:: @ 080FD5A0 + .incbin "baserom.gba", 0x0FD5A0, 0x0000004 + +gUnk_080FD5A4:: @ 080FD5A4 + .incbin "baserom.gba", 0x0FD5A4, 0x0000004 + +gUnk_080FD5A8:: @ 080FD5A8 + .incbin "baserom.gba", 0x0FD5A8, 0x000000C + +gUnk_080FD5B4:: @ 080FD5B4 + .incbin "baserom.gba", 0x0FD5B4, 0x00003B0 + +gUnk_080FD964:: @ 080FD964 + .incbin "baserom.gba", 0x0FD964, 0x00003B0 + +gUnk_080FDD14:: @ 080FDD14 + .incbin "baserom.gba", 0x0FDD14, 0x0000005 + +gUnk_080FDD19:: @ 080FDD19 + .incbin "baserom.gba", 0x0FDD19, 0x0000005 + +gUnk_080FDD1E:: @ 080FDD1E + .incbin "baserom.gba", 0x0FDD1E, 0x0000005 + +gUnk_080FDD23:: @ 080FDD23 + .incbin "baserom.gba", 0x0FDD23, 0x0000005 + +gUnk_080FDD28:: @ 080FDD28 + .incbin "baserom.gba", 0x0FDD28, 0x0000005 + +gUnk_080FDD2D:: @ 080FDD2D + .incbin "baserom.gba", 0x0FDD2D, 0x0000005 + +gUnk_080FDD32:: @ 080FDD32 + .incbin "baserom.gba", 0x0FDD32, 0x0000005 + +gUnk_080FDD37:: @ 080FDD37 + .incbin "baserom.gba", 0x0FDD37, 0x0000011 + +gUnk_080FDD48:: @ 080FDD48 + .incbin "baserom.gba", 0x0FDD48, 0x0000005 + +gUnk_080FDD4D:: @ 080FDD4D + .incbin "baserom.gba", 0x0FDD4D, 0x0000005 + +gUnk_080FDD52:: @ 080FDD52 + .incbin "baserom.gba", 0x0FDD52, 0x0000005 + +gUnk_080FDD57:: @ 080FDD57 + .incbin "baserom.gba", 0x0FDD57, 0x0000005 + +gUnk_080FDD5C:: @ 080FDD5C + .incbin "baserom.gba", 0x0FDD5C, 0x0000005 + +gUnk_080FDD61:: @ 080FDD61 + .incbin "baserom.gba", 0x0FDD61, 0x0000031 + +gUnk_080FDD92:: @ 080FDD92 + .incbin "baserom.gba", 0x0FDD92, 0x0000005 + +gUnk_080FDD97:: @ 080FDD97 + .incbin "baserom.gba", 0x0FDD97, 0x0000011 + +gUnk_080FDDA8:: @ 080FDDA8 + .incbin "baserom.gba", 0x0FDDA8, 0x0000005 + +gUnk_080FDDAD:: @ 080FDDAD + .incbin "baserom.gba", 0x0FDDAD, 0x0000005 + +gUnk_080FDDB2:: @ 080FDDB2 + .incbin "baserom.gba", 0x0FDDB2, 0x0000005 + +gUnk_080FDDB7:: @ 080FDDB7 + .incbin "baserom.gba", 0x0FDDB7, 0x0000005 + +gUnk_080FDDBC:: @ 080FDDBC + .incbin "baserom.gba", 0x0FDDBC, 0x0000005 + +gUnk_080FDDC1:: @ 080FDDC1 + .incbin "baserom.gba", 0x0FDDC1, 0x0000005 + +gUnk_080FDDC6:: @ 080FDDC6 + .incbin "baserom.gba", 0x0FDDC6, 0x0000005 + +gUnk_080FDDCB:: @ 080FDDCB + .incbin "baserom.gba", 0x0FDDCB, 0x0000005 + +gUnk_080FDDD0:: @ 080FDDD0 + .incbin "baserom.gba", 0x0FDDD0, 0x0000005 + +gUnk_080FDDD5:: @ 080FDDD5 + .incbin "baserom.gba", 0x0FDDD5, 0x0000005 + +gUnk_080FDDDA:: @ 080FDDDA + .incbin "baserom.gba", 0x0FDDDA, 0x0000005 + +gUnk_080FDDDF:: @ 080FDDDF + .incbin "baserom.gba", 0x0FDDDF, 0x0000005 + +gUnk_080FDDE4:: @ 080FDDE4 + .incbin "baserom.gba", 0x0FDDE4, 0x0000011 + +gUnk_080FDDF5:: @ 080FDDF5 + .incbin "baserom.gba", 0x0FDDF5, 0x0000019 + +gUnk_080FDE0E:: @ 080FDE0E + .incbin "baserom.gba", 0x0FDE0E, 0x0000019 + +gUnk_080FDE27:: @ 080FDE27 + .incbin "baserom.gba", 0x0FDE27, 0x0000019 + +gUnk_080FDE40:: @ 080FDE40 + .incbin "baserom.gba", 0x0FDE40, 0x0000019 + +gUnk_080FDE59:: @ 080FDE59 + .incbin "baserom.gba", 0x0FDE59, 0x0000019 + +gUnk_080FDE72:: @ 080FDE72 + .incbin "baserom.gba", 0x0FDE72, 0x0000019 + +gUnk_080FDE8B:: @ 080FDE8B + .incbin "baserom.gba", 0x0FDE8B, 0x0000005 + +gUnk_080FDE90:: @ 080FDE90 + .incbin "baserom.gba", 0x0FDE90, 0x0000005 + +gUnk_080FDE95:: @ 080FDE95 + .incbin "baserom.gba", 0x0FDE95, 0x0000005 + +gUnk_080FDE9A:: @ 080FDE9A + .incbin "baserom.gba", 0x0FDE9A, 0x0000005 + +gUnk_080FDE9F:: @ 080FDE9F + .incbin "baserom.gba", 0x0FDE9F, 0x0000005 + +gUnk_080FDEA4:: @ 080FDEA4 + .incbin "baserom.gba", 0x0FDEA4, 0x0000005 + +gUnk_080FDEA9:: @ 080FDEA9 + .incbin "baserom.gba", 0x0FDEA9, 0x0000005 + +gUnk_080FDEAE:: @ 080FDEAE + .incbin "baserom.gba", 0x0FDEAE, 0x0000005 + +gUnk_080FDEB3:: @ 080FDEB3 + .incbin "baserom.gba", 0x0FDEB3, 0x0000005 + +gUnk_080FDEB8:: @ 080FDEB8 + .incbin "baserom.gba", 0x0FDEB8, 0x0000005 + +gUnk_080FDEBD:: @ 080FDEBD + .incbin "baserom.gba", 0x0FDEBD, 0x0000005 + +gUnk_080FDEC2:: @ 080FDEC2 + .incbin "baserom.gba", 0x0FDEC2, 0x0000005 + +gUnk_080FDEC7:: @ 080FDEC7 + .incbin "baserom.gba", 0x0FDEC7, 0x0000005 + +gUnk_080FDECC:: @ 080FDECC + .incbin "baserom.gba", 0x0FDECC, 0x0000005 + +gUnk_080FDED1:: @ 080FDED1 + .incbin "baserom.gba", 0x0FDED1, 0x0000005 + +gUnk_080FDED6:: @ 080FDED6 + .incbin "baserom.gba", 0x0FDED6, 0x0000005 + +gUnk_080FDEDB:: @ 080FDEDB + .incbin "baserom.gba", 0x0FDEDB, 0x0000005 + +gUnk_080FDEE0:: @ 080FDEE0 + .incbin "baserom.gba", 0x0FDEE0, 0x0000005 + +gUnk_080FDEE5:: @ 080FDEE5 + .incbin "baserom.gba", 0x0FDEE5, 0x0000005 + +gUnk_080FDEEA:: @ 080FDEEA + .incbin "baserom.gba", 0x0FDEEA, 0x0000005 + +gUnk_080FDEEF:: @ 080FDEEF + .incbin "baserom.gba", 0x0FDEEF, 0x0000005 + +gUnk_080FDEF4:: @ 080FDEF4 + .incbin "baserom.gba", 0x0FDEF4, 0x0000005 + +gUnk_080FDEF9:: @ 080FDEF9 + .incbin "baserom.gba", 0x0FDEF9, 0x0000005 + +gUnk_080FDEFE:: @ 080FDEFE + .incbin "baserom.gba", 0x0FDEFE, 0x0000005 + +gUnk_080FDF03:: @ 080FDF03 + .incbin "baserom.gba", 0x0FDF03, 0x0000005 + +gUnk_080FDF08:: @ 080FDF08 + .incbin "baserom.gba", 0x0FDF08, 0x0000005 + +gUnk_080FDF0D:: @ 080FDF0D + .incbin "baserom.gba", 0x0FDF0D, 0x0000005 + +gUnk_080FDF12:: @ 080FDF12 + .incbin "baserom.gba", 0x0FDF12, 0x0000005 + +gUnk_080FDF17:: @ 080FDF17 + .incbin "baserom.gba", 0x0FDF17, 0x0000011 + +gUnk_080FDF28:: @ 080FDF28 + .incbin "baserom.gba", 0x0FDF28, 0x000001D + +gUnk_080FDF45:: @ 080FDF45 + .incbin "baserom.gba", 0x0FDF45, 0x0000005 + +gUnk_080FDF4A:: @ 080FDF4A + .incbin "baserom.gba", 0x0FDF4A, 0x0000005 + +gUnk_080FDF4F:: @ 080FDF4F + .incbin "baserom.gba", 0x0FDF4F, 0x0000005 + +gUnk_080FDF54:: @ 080FDF54 + .incbin "baserom.gba", 0x0FDF54, 0x0000005 + +gUnk_080FDF59:: @ 080FDF59 + .incbin "baserom.gba", 0x0FDF59, 0x0000005 + +gUnk_080FDF5E:: @ 080FDF5E + .incbin "baserom.gba", 0x0FDF5E, 0x0000005 + +gUnk_080FDF63:: @ 080FDF63 + .incbin "baserom.gba", 0x0FDF63, 0x0000005 + +gUnk_080FDF68:: @ 080FDF68 + .incbin "baserom.gba", 0x0FDF68, 0x0000005 + +gUnk_080FDF6D:: @ 080FDF6D + .incbin "baserom.gba", 0x0FDF6D, 0x0000005 + +gUnk_080FDF72:: @ 080FDF72 + .incbin "baserom.gba", 0x0FDF72, 0x0000005 + +gUnk_080FDF77:: @ 080FDF77 + .incbin "baserom.gba", 0x0FDF77, 0x0000005 + +gUnk_080FDF7C:: @ 080FDF7C + .incbin "baserom.gba", 0x0FDF7C, 0x0000005 + +gUnk_080FDF81:: @ 080FDF81 + .incbin "baserom.gba", 0x0FDF81, 0x0000005 + +gUnk_080FDF86:: @ 080FDF86 + .incbin "baserom.gba", 0x0FDF86, 0x0000009 + +gUnk_080FDF8F:: @ 080FDF8F + .incbin "baserom.gba", 0x0FDF8F, 0x0000005 + +gUnk_080FDF94:: @ 080FDF94 + .incbin "baserom.gba", 0x0FDF94, 0x0000005 + +gUnk_080FDF99:: @ 080FDF99 + .incbin "baserom.gba", 0x0FDF99, 0x0000005 + +gUnk_080FDF9E:: @ 080FDF9E + .incbin "baserom.gba", 0x0FDF9E, 0x0000005 + +gUnk_080FDFA3:: @ 080FDFA3 + .incbin "baserom.gba", 0x0FDFA3, 0x0000005 + +gUnk_080FDFA8:: @ 080FDFA8 + .incbin "baserom.gba", 0x0FDFA8, 0x0000019 + +gUnk_080FDFC1:: @ 080FDFC1 + .incbin "baserom.gba", 0x0FDFC1, 0x0000005 + +gUnk_080FDFC6:: @ 080FDFC6 + .incbin "baserom.gba", 0x0FDFC6, 0x0000005 + +gUnk_080FDFCB:: @ 080FDFCB + .incbin "baserom.gba", 0x0FDFCB, 0x0000005 + +gUnk_080FDFD0:: @ 080FDFD0 + .incbin "baserom.gba", 0x0FDFD0, 0x0000008 + +gUnk_080FDFD8:: @ 080FDFD8 + .incbin "baserom.gba", 0x0FDFD8, 0x00001DC + +gUnk_080FE1B4:: @ 080FE1B4 + .incbin "baserom.gba", 0x0FE1B4, 0x0000012 + +gUnk_080FE1C6:: @ 080FE1C6 + .incbin "baserom.gba", 0x0FE1C6, 0x0000017 + +gUnk_080FE1DD:: @ 080FE1DD + .incbin "baserom.gba", 0x0FE1DD, 0x00000C3 + +gUnk_080FE2A0:: @ 080FE2A0 + .incbin "baserom.gba", 0x0FE2A0, 0x000000C + +gUnk_080FE2AC:: @ 080FE2AC + .incbin "baserom.gba", 0x0FE2AC, 0x0000074 + +gUnk_080FE320:: @ 080FE320 + .incbin "baserom.gba", 0x0FE320, 0x00002F0 + +gUnk_080FE610:: @ 080FE610 + .incbin "baserom.gba", 0x0FE610, 0x00004B8 + +gUnk_080FEAC8:: @ 080FEAC8 + .incbin "baserom.gba", 0x0FEAC8, 0x0000003 + +gUnk_080FEACB:: @ 080FEACB + .incbin "baserom.gba", 0x0FEACB, 0x0000023 + +gUnk_080FEAEE:: @ 080FEAEE + .incbin "baserom.gba", 0x0FEAEE, 0x000002C + +gUnk_080FEB1A:: @ 080FEB1A + .incbin "baserom.gba", 0x0FEB1A, 0x00000C2 + +gUnk_080FEBDC:: @ 080FEBDC + .incbin "baserom.gba", 0x0FEBDC, 0x000000C + +gUnk_080FEBE8:: @ 080FEBE8 + .incbin "baserom.gba", 0x0FEBE8, 0x0000006 + +gUnk_080FEBEE:: @ 080FEBEE + .incbin "baserom.gba", 0x0FEBEE, 0x000001B + +gUnk_080FEC09:: @ 080FEC09 + .incbin "baserom.gba", 0x0FEC09, 0x000001F + +gUnk_080FEC28:: @ 080FEC28 + .incbin "baserom.gba", 0x0FEC28, 0x00000A0 + +gUnk_080FECC8:: @ 080FECC8 + .incbin "baserom.gba", 0x0FECC8, 0x0000050 + +gUnk_080FED18:: @ 080FED18 + .incbin "baserom.gba", 0x0FED18, 0x0000040 + +gUnk_080FED58:: @ 080FED58 + .incbin "baserom.gba", 0x0FED58, 0x0000040 + +gUnk_080FED98:: @ 080FED98 + .incbin "baserom.gba", 0x0FED98, 0x000000C + +gUnk_080FEDA4:: @ 080FEDA4 + .incbin "baserom.gba", 0x0FEDA4, 0x0000036 + +gUnk_080FEDDA:: @ 080FEDDA + .incbin "baserom.gba", 0x0FEDDA, 0x000001E + +gUnk_080FEDF8:: @ 080FEDF8 + .incbin "baserom.gba", 0x0FEDF8, 0x0000020 + +gUnk_080FEE18:: @ 080FEE18 + .incbin "baserom.gba", 0x0FEE18, 0x0000020 + +gUnk_080FEE38:: @ 080FEE38 + .incbin "baserom.gba", 0x0FEE38, 0x0000010 + +gUnk_080FEE48:: @ 080FEE48 + .incbin "baserom.gba", 0x0FEE48, 0x0000010 + +gUnk_080FEE58:: @ 080FEE58 + .incbin "baserom.gba", 0x0FEE58, 0x0000020 + +gUnk_080FEE78:: @ 080FEE78 + .incbin "baserom.gba", 0x0FEE78, 0x0000030 + +gUnk_080FEEA8:: @ 080FEEA8 + .incbin "baserom.gba", 0x0FEEA8, 0x0000008 + +gUnk_080FEEB0:: @ 080FEEB0 + .incbin "baserom.gba", 0x0FEEB0, 0x0000008 + +gUnk_080FEEB8:: @ 080FEEB8 + .incbin "baserom.gba", 0x0FEEB8, 0x0000010 + +gUnk_080FEEC8:: @ 080FEEC8 + .incbin "baserom.gba", 0x0FEEC8, 0x000000C + +gUnk_080FEED4:: @ 080FEED4 + .incbin "baserom.gba", 0x0FEED4, 0x0000060 + +gUnk_080FEF34:: @ 080FEF34 + .incbin "baserom.gba", 0x0FEF34, 0x0000008 + +gUnk_080FEF3C:: @ 080FEF3C + .incbin "baserom.gba", 0x0FEF3C, 0x000000C + +gUnk_080FEF48:: @ 080FEF48 + .incbin "baserom.gba", 0x0FEF48, 0x0000030 + +gUnk_080FEF78:: @ 080FEF78 + .incbin "baserom.gba", 0x0FEF78, 0x0000030 + +gUnk_080FEFA8:: @ 080FEFA8 + .incbin "baserom.gba", 0x0FEFA8, 0x0000040 + +gUnk_080FEFE8:: @ 080FEFE8 + .incbin "baserom.gba", 0x0FEFE8, 0x0000050 + +gUnk_080FF038:: @ 080FF038 + .incbin "baserom.gba", 0x0FF038, 0x0000060 + +gUnk_080FF098:: @ 080FF098 + .incbin "baserom.gba", 0x0FF098, 0x0000070 + +gUnk_080FF108:: @ 080FF108 + .incbin "baserom.gba", 0x0FF108, 0x0000018 + +gUnk_080FF120:: @ 080FF120 + .incbin "baserom.gba", 0x0FF120, 0x0000008 + +gUnk_080FF128:: @ 080FF128 + .incbin "baserom.gba", 0x0FF128, 0x0000020 + +gUnk_080FF148:: @ 080FF148 + .incbin "baserom.gba", 0x0FF148, 0x000000C + +gUnk_080FF154:: @ 080FF154 + .incbin "baserom.gba", 0x0FF154, 0x0000020 + +gUnk_080FF174:: @ 080FF174 + .incbin "baserom.gba", 0x0FF174, 0x0000008 + +gUnk_080FF17C:: @ 080FF17C + .incbin "baserom.gba", 0x0FF17C, 0x0000050 + +gUnk_080FF1CC:: @ 080FF1CC + .incbin "baserom.gba", 0x0FF1CC, 0x0000008 + +gUnk_080FF1D4:: @ 080FF1D4 + .incbin "baserom.gba", 0x0FF1D4, 0x0000018 + +gUnk_080FF1EC:: @ 080FF1EC + .incbin "baserom.gba", 0x0FF1EC, 0x0000008 + +gUnk_080FF1F4:: @ 080FF1F4 + .incbin "baserom.gba", 0x0FF1F4, 0x000000C + +gUnk_080FF200:: @ 080FF200 + .incbin "baserom.gba", 0x0FF200, 0x0000004 + +gUnk_080FF204:: @ 080FF204 + .incbin "baserom.gba", 0x0FF204, 0x0000024 + +gUnk_080FF228:: @ 080FF228 + .incbin "baserom.gba", 0x0FF228, 0x0000010 + +gUnk_080FF238:: @ 080FF238 + .incbin "baserom.gba", 0x0FF238, 0x0000010 + +gUnk_080FF248:: @ 080FF248 + .incbin "baserom.gba", 0x0FF248, 0x000000C + +gUnk_080FF254:: @ 080FF254 + .incbin "baserom.gba", 0x0FF254, 0x0000010 + +gUnk_080FF264:: @ 080FF264 + .incbin "baserom.gba", 0x0FF264, 0x0000020 + +gUnk_080FF284:: @ 080FF284 + .incbin "baserom.gba", 0x0FF284, 0x0000008 + +gUnk_080FF28C:: @ 080FF28C + .incbin "baserom.gba", 0x0FF28C, 0x000000C + +gUnk_080FF298:: @ 080FF298 + .incbin "baserom.gba", 0x0FF298, 0x0000020 + +gUnk_080FF2B8:: @ 080FF2B8 + .incbin "baserom.gba", 0x0FF2B8, 0x0000008 + +gUnk_080FF2C0:: @ 080FF2C0 + .incbin "baserom.gba", 0x0FF2C0, 0x0000040 + +gUnk_080FF300:: @ 080FF300 + .incbin "baserom.gba", 0x0FF300, 0x0000008 + +gUnk_080FF308:: @ 080FF308 + .incbin "baserom.gba", 0x0FF308, 0x0000020 + +gUnk_080FF328:: @ 080FF328 + .incbin "baserom.gba", 0x0FF328, 0x0000008 + +gUnk_080FF330:: @ 080FF330 + .incbin "baserom.gba", 0x0FF330, 0x000000C + +gUnk_080FF33C:: @ 080FF33C + .incbin "baserom.gba", 0x0FF33C, 0x0000020 + +gUnk_080FF35C:: @ 080FF35C + .incbin "baserom.gba", 0x0FF35C, 0x0000010 + +gUnk_080FF36C:: @ 080FF36C + .incbin "baserom.gba", 0x0FF36C, 0x000000C + +gUnk_080FF378:: @ 080FF378 + .incbin "baserom.gba", 0x0FF378, 0x0000050 + +gUnk_080FF3C8:: @ 080FF3C8 + .incbin "baserom.gba", 0x0FF3C8, 0x0000020 + +gUnk_080FF3E8:: @ 080FF3E8 + .incbin "baserom.gba", 0x0FF3E8, 0x000000C + +gUnk_080FF3F4:: @ 080FF3F4 + .incbin "baserom.gba", 0x0FF3F4, 0x000000C + +gUnk_080FF400:: @ 080FF400 + .incbin "baserom.gba", 0x0FF400, 0x0000020 + +gUnk_080FF420:: @ 080FF420 + .incbin "baserom.gba", 0x0FF420, 0x0000008 + +gUnk_080FF428:: @ 080FF428 + .incbin "baserom.gba", 0x0FF428, 0x0000008 + +gUnk_080FF430:: @ 080FF430 + .incbin "baserom.gba", 0x0FF430, 0x0000008 + +gUnk_080FF438:: @ 080FF438 + .incbin "baserom.gba", 0x0FF438, 0x000000C + +gUnk_080FF444:: @ 080FF444 + .incbin "baserom.gba", 0x0FF444, 0x000000C + +gUnk_080FF450:: @ 080FF450 + .incbin "baserom.gba", 0x0FF450, 0x0000004 + +gUnk_080FF454:: @ 080FF454 + .incbin "baserom.gba", 0x0FF454, 0x0000004 + +gUnk_080FF458:: @ 080FF458 + .incbin "baserom.gba", 0x0FF458, 0x0000004 + +gUnk_080FF45C:: @ 080FF45C + .incbin "baserom.gba", 0x0FF45C, 0x0000004 + +gUnk_080FF460:: @ 080FF460 + .incbin "baserom.gba", 0x0FF460, 0x0000014 + +gUnk_080FF474:: @ 080FF474 + .incbin "baserom.gba", 0x0FF474, 0x0000010 + +gUnk_080FF484:: @ 080FF484 + .incbin "baserom.gba", 0x0FF484, 0x0000004 + +gUnk_080FF488:: @ 080FF488 + .incbin "baserom.gba", 0x0FF488, 0x0000008 + +gUnk_080FF490:: @ 080FF490 + .incbin "baserom.gba", 0x0FF490, 0x0000004 + +gUnk_080FF494:: @ 080FF494 + .incbin "baserom.gba", 0x0FF494, 0x0000004 + +gUnk_080FF498:: @ 080FF498 + .incbin "baserom.gba", 0x0FF498, 0x0000004 + +gUnk_080FF49C:: @ 080FF49C + .incbin "baserom.gba", 0x0FF49C, 0x0000004 + +gUnk_080FF4A0:: @ 080FF4A0 + .incbin "baserom.gba", 0x0FF4A0, 0x0000004 + +gUnk_080FF4A4:: @ 080FF4A4 + .incbin "baserom.gba", 0x0FF4A4, 0x0000004 + +gUnk_080FF4A8:: @ 080FF4A8 + .incbin "baserom.gba", 0x0FF4A8, 0x0000004 + +gUnk_080FF4AC:: @ 080FF4AC + .incbin "baserom.gba", 0x0FF4AC, 0x0000004 + +gUnk_080FF4B0:: @ 080FF4B0 + .incbin "baserom.gba", 0x0FF4B0, 0x0000004 + +gUnk_080FF4B4:: @ 080FF4B4 + .incbin "baserom.gba", 0x0FF4B4, 0x0000004 + +gUnk_080FF4B8:: @ 080FF4B8 + .incbin "baserom.gba", 0x0FF4B8, 0x0000004 + +gUnk_080FF4BC:: @ 080FF4BC + .incbin "baserom.gba", 0x0FF4BC, 0x0000004 + +gUnk_080FF4C0:: @ 080FF4C0 + .incbin "baserom.gba", 0x0FF4C0, 0x0000004 + +gUnk_080FF4C4:: @ 080FF4C4 + .incbin "baserom.gba", 0x0FF4C4, 0x0000004 + +gUnk_080FF4C8:: @ 080FF4C8 + .incbin "baserom.gba", 0x0FF4C8, 0x0000004 + +gUnk_080FF4CC:: @ 080FF4CC + .incbin "baserom.gba", 0x0FF4CC, 0x0000004 + +gUnk_080FF4D0:: @ 080FF4D0 + .incbin "baserom.gba", 0x0FF4D0, 0x0000004 + +gUnk_080FF4D4:: @ 080FF4D4 + .incbin "baserom.gba", 0x0FF4D4, 0x0000004 + +gUnk_080FF4D8:: @ 080FF4D8 + .incbin "baserom.gba", 0x0FF4D8, 0x0000004 + +gUnk_080FF4DC:: @ 080FF4DC + .incbin "baserom.gba", 0x0FF4DC, 0x0000004 + +gUnk_080FF4E0:: @ 080FF4E0 + .incbin "baserom.gba", 0x0FF4E0, 0x0000004 + +gUnk_080FF4E4:: @ 080FF4E4 + .incbin "baserom.gba", 0x0FF4E4, 0x0000004 + +gUnk_080FF4E8:: @ 080FF4E8 + .incbin "baserom.gba", 0x0FF4E8, 0x0000004 + +gUnk_080FF4EC:: @ 080FF4EC + .incbin "baserom.gba", 0x0FF4EC, 0x0000004 + +gUnk_080FF4F0:: @ 080FF4F0 + .incbin "baserom.gba", 0x0FF4F0, 0x0000004 + +gUnk_080FF4F4:: @ 080FF4F4 + .incbin "baserom.gba", 0x0FF4F4, 0x0000004 + +gUnk_080FF4F8:: @ 080FF4F8 + .incbin "baserom.gba", 0x0FF4F8, 0x0000004 + +gUnk_080FF4FC:: @ 080FF4FC + .incbin "baserom.gba", 0x0FF4FC, 0x0000004 + +gUnk_080FF500:: @ 080FF500 + .incbin "baserom.gba", 0x0FF500, 0x0000004 + +gUnk_080FF504:: @ 080FF504 + .incbin "baserom.gba", 0x0FF504, 0x0000004 + +gUnk_080FF508:: @ 080FF508 + .incbin "baserom.gba", 0x0FF508, 0x0000004 + +gUnk_080FF50C:: @ 080FF50C + .incbin "baserom.gba", 0x0FF50C, 0x0000004 + +gUnk_080FF510:: @ 080FF510 + .incbin "baserom.gba", 0x0FF510, 0x0000004 + +gUnk_080FF514:: @ 080FF514 + .incbin "baserom.gba", 0x0FF514, 0x0000004 + +gUnk_080FF518:: @ 080FF518 + .incbin "baserom.gba", 0x0FF518, 0x0000004 + +gUnk_080FF51C:: @ 080FF51C + .incbin "baserom.gba", 0x0FF51C, 0x0000004 + +gUnk_080FF520:: @ 080FF520 + .incbin "baserom.gba", 0x0FF520, 0x0000004 + +gUnk_080FF524:: @ 080FF524 + .incbin "baserom.gba", 0x0FF524, 0x0000004 + +gUnk_080FF528:: @ 080FF528 + .incbin "baserom.gba", 0x0FF528, 0x0000004 + +gUnk_080FF52C:: @ 080FF52C + .incbin "baserom.gba", 0x0FF52C, 0x0000004 + +gUnk_080FF530:: @ 080FF530 + .incbin "baserom.gba", 0x0FF530, 0x0000004 + +gUnk_080FF534:: @ 080FF534 + .incbin "baserom.gba", 0x0FF534, 0x0000004 + +gUnk_080FF538:: @ 080FF538 + .incbin "baserom.gba", 0x0FF538, 0x0000004 + +gUnk_080FF53C:: @ 080FF53C + .incbin "baserom.gba", 0x0FF53C, 0x0000004 + +gUnk_080FF540:: @ 080FF540 + .incbin "baserom.gba", 0x0FF540, 0x0000004 + +gUnk_080FF544:: @ 080FF544 + .incbin "baserom.gba", 0x0FF544, 0x0000004 + +gUnk_080FF548:: @ 080FF548 + .incbin "baserom.gba", 0x0FF548, 0x0000004 + +gUnk_080FF54C:: @ 080FF54C + .incbin "baserom.gba", 0x0FF54C, 0x0000004 + +gUnk_080FF550:: @ 080FF550 + .incbin "baserom.gba", 0x0FF550, 0x0000004 + +gUnk_080FF554:: @ 080FF554 + .incbin "baserom.gba", 0x0FF554, 0x0000004 + +gUnk_080FF558:: @ 080FF558 + .incbin "baserom.gba", 0x0FF558, 0x0000004 + +gUnk_080FF55C:: @ 080FF55C + .incbin "baserom.gba", 0x0FF55C, 0x0000004 + +gUnk_080FF560:: @ 080FF560 + .incbin "baserom.gba", 0x0FF560, 0x0000004 + +gUnk_080FF564:: @ 080FF564 + .incbin "baserom.gba", 0x0FF564, 0x0000004 + +gUnk_080FF568:: @ 080FF568 + .incbin "baserom.gba", 0x0FF568, 0x0000004 + +gUnk_080FF56C:: @ 080FF56C + .incbin "baserom.gba", 0x0FF56C, 0x0000004 + +gUnk_080FF570:: @ 080FF570 + .incbin "baserom.gba", 0x0FF570, 0x0000004 + +gUnk_080FF574:: @ 080FF574 + .incbin "baserom.gba", 0x0FF574, 0x0000004 + +gUnk_080FF578:: @ 080FF578 + .incbin "baserom.gba", 0x0FF578, 0x0000004 + +gUnk_080FF57C:: @ 080FF57C + .incbin "baserom.gba", 0x0FF57C, 0x0000004 + +gUnk_080FF580:: @ 080FF580 + .incbin "baserom.gba", 0x0FF580, 0x0000004 + +gUnk_080FF584:: @ 080FF584 + .incbin "baserom.gba", 0x0FF584, 0x0000004 + +gUnk_080FF588:: @ 080FF588 + .incbin "baserom.gba", 0x0FF588, 0x0000004 + +gUnk_080FF58C:: @ 080FF58C + .incbin "baserom.gba", 0x0FF58C, 0x0000004 + +gUnk_080FF590:: @ 080FF590 + .incbin "baserom.gba", 0x0FF590, 0x0000004 + +gUnk_080FF594:: @ 080FF594 + .incbin "baserom.gba", 0x0FF594, 0x0000004 + +gUnk_080FF598:: @ 080FF598 + .incbin "baserom.gba", 0x0FF598, 0x0000004 + +gUnk_080FF59C:: @ 080FF59C + .incbin "baserom.gba", 0x0FF59C, 0x0000004 + +gUnk_080FF5A0:: @ 080FF5A0 + .incbin "baserom.gba", 0x0FF5A0, 0x0000004 + +gUnk_080FF5A4:: @ 080FF5A4 + .incbin "baserom.gba", 0x0FF5A4, 0x0000004 + +gUnk_080FF5A8:: @ 080FF5A8 + .incbin "baserom.gba", 0x0FF5A8, 0x0000004 + +gUnk_080FF5AC:: @ 080FF5AC + .incbin "baserom.gba", 0x0FF5AC, 0x0000004 + +gUnk_080FF5B0:: @ 080FF5B0 + .incbin "baserom.gba", 0x0FF5B0, 0x0000004 + +gUnk_080FF5B4:: @ 080FF5B4 + .incbin "baserom.gba", 0x0FF5B4, 0x0000004 + +gUnk_080FF5B8:: @ 080FF5B8 + .incbin "baserom.gba", 0x0FF5B8, 0x0000004 + +gUnk_080FF5BC:: @ 080FF5BC + .incbin "baserom.gba", 0x0FF5BC, 0x0000004 + +gUnk_080FF5C0:: @ 080FF5C0 + .incbin "baserom.gba", 0x0FF5C0, 0x0000004 + +gUnk_080FF5C4:: @ 080FF5C4 + .incbin "baserom.gba", 0x0FF5C4, 0x0000004 + +gUnk_080FF5C8:: @ 080FF5C8 + .incbin "baserom.gba", 0x0FF5C8, 0x0000001 + +gUnk_080FF5C9:: @ 080FF5C9 + .incbin "baserom.gba", 0x0FF5C9, 0x0000003 + +gUnk_080FF5CC:: @ 080FF5CC + .incbin "baserom.gba", 0x0FF5CC, 0x0000004 + +gUnk_080FF5D0:: @ 080FF5D0 + .incbin "baserom.gba", 0x0FF5D0, 0x0000004 + +gUnk_080FF5D4:: @ 080FF5D4 + .incbin "baserom.gba", 0x0FF5D4, 0x0000004 + +gUnk_080FF5D8:: @ 080FF5D8 + .incbin "baserom.gba", 0x0FF5D8, 0x0000004 + +gUnk_080FF5DC:: @ 080FF5DC + .incbin "baserom.gba", 0x0FF5DC, 0x0000004 + +gUnk_080FF5E0:: @ 080FF5E0 + .incbin "baserom.gba", 0x0FF5E0, 0x0000004 + +gUnk_080FF5E4:: @ 080FF5E4 + .incbin "baserom.gba", 0x0FF5E4, 0x0000004 + +gUnk_080FF5E8:: @ 080FF5E8 + .incbin "baserom.gba", 0x0FF5E8, 0x0000004 + +gUnk_080FF5EC:: @ 080FF5EC + .incbin "baserom.gba", 0x0FF5EC, 0x0000004 + +gUnk_080FF5F0:: @ 080FF5F0 + .incbin "baserom.gba", 0x0FF5F0, 0x0000004 + +gUnk_080FF5F4:: @ 080FF5F4 + .incbin "baserom.gba", 0x0FF5F4, 0x0000004 + +gUnk_080FF5F8:: @ 080FF5F8 + .incbin "baserom.gba", 0x0FF5F8, 0x0000004 + +gUnk_080FF5FC:: @ 080FF5FC + .incbin "baserom.gba", 0x0FF5FC, 0x0000004 + +gUnk_080FF600:: @ 080FF600 + .incbin "baserom.gba", 0x0FF600, 0x0000004 + +gUnk_080FF604:: @ 080FF604 + .incbin "baserom.gba", 0x0FF604, 0x0000004 + +gUnk_080FF608:: @ 080FF608 + .incbin "baserom.gba", 0x0FF608, 0x0000004 + +gUnk_080FF60C:: @ 080FF60C + .incbin "baserom.gba", 0x0FF60C, 0x0000004 + +gUnk_080FF610:: @ 080FF610 + .incbin "baserom.gba", 0x0FF610, 0x0000004 + +gUnk_080FF614:: @ 080FF614 + .incbin "baserom.gba", 0x0FF614, 0x0000004 + +gUnk_080FF618:: @ 080FF618 + .incbin "baserom.gba", 0x0FF618, 0x0000004 + +gUnk_080FF61C:: @ 080FF61C + .incbin "baserom.gba", 0x0FF61C, 0x0000004 + +gUnk_080FF620:: @ 080FF620 + .incbin "baserom.gba", 0x0FF620, 0x0000004 + +gUnk_080FF624:: @ 080FF624 + .incbin "baserom.gba", 0x0FF624, 0x0000004 + +gUnk_080FF628:: @ 080FF628 + .incbin "baserom.gba", 0x0FF628, 0x0000004 + +gUnk_080FF62C:: @ 080FF62C + .incbin "baserom.gba", 0x0FF62C, 0x0000004 + +gUnk_080FF630:: @ 080FF630 + .incbin "baserom.gba", 0x0FF630, 0x0000004 + +gUnk_080FF634:: @ 080FF634 + .incbin "baserom.gba", 0x0FF634, 0x0000004 + +gUnk_080FF638:: @ 080FF638 + .incbin "baserom.gba", 0x0FF638, 0x0000004 + +gUnk_080FF63C:: @ 080FF63C + .incbin "baserom.gba", 0x0FF63C, 0x0000004 + +gUnk_080FF640:: @ 080FF640 + .incbin "baserom.gba", 0x0FF640, 0x0000004 + +gUnk_080FF644:: @ 080FF644 + .incbin "baserom.gba", 0x0FF644, 0x0000004 + +gUnk_080FF648:: @ 080FF648 + .incbin "baserom.gba", 0x0FF648, 0x0000004 + +gUnk_080FF64C:: @ 080FF64C + .incbin "baserom.gba", 0x0FF64C, 0x0000004 + +gUnk_080FF650:: @ 080FF650 + .incbin "baserom.gba", 0x0FF650, 0x0000004 + +gUnk_080FF654:: @ 080FF654 + .incbin "baserom.gba", 0x0FF654, 0x0000004 + +gUnk_080FF658:: @ 080FF658 + .incbin "baserom.gba", 0x0FF658, 0x0000004 + +gUnk_080FF65C:: @ 080FF65C + .incbin "baserom.gba", 0x0FF65C, 0x0000004 + +gUnk_080FF660:: @ 080FF660 + .incbin "baserom.gba", 0x0FF660, 0x0000004 + +gUnk_080FF664:: @ 080FF664 + .incbin "baserom.gba", 0x0FF664, 0x0000004 + +gUnk_080FF668:: @ 080FF668 + .incbin "baserom.gba", 0x0FF668, 0x0000004 + +gUnk_080FF66C:: @ 080FF66C + .incbin "baserom.gba", 0x0FF66C, 0x0000004 + +gUnk_080FF670:: @ 080FF670 + .incbin "baserom.gba", 0x0FF670, 0x0000004 + +gUnk_080FF674:: @ 080FF674 + .incbin "baserom.gba", 0x0FF674, 0x0000004 + +gUnk_080FF678:: @ 080FF678 + .incbin "baserom.gba", 0x0FF678, 0x0000004 + +gUnk_080FF67C:: @ 080FF67C + .incbin "baserom.gba", 0x0FF67C, 0x0000004 + +gUnk_080FF680:: @ 080FF680 + .incbin "baserom.gba", 0x0FF680, 0x0000004 + +gUnk_080FF684:: @ 080FF684 + .incbin "baserom.gba", 0x0FF684, 0x0000004 + +gUnk_080FF688:: @ 080FF688 + .incbin "baserom.gba", 0x0FF688, 0x0000004 + +gUnk_080FF68C:: @ 080FF68C + .incbin "baserom.gba", 0x0FF68C, 0x0000004 + +gUnk_080FF690:: @ 080FF690 + .incbin "baserom.gba", 0x0FF690, 0x0000004 + +gUnk_080FF694:: @ 080FF694 + .incbin "baserom.gba", 0x0FF694, 0x0000004 + +gUnk_080FF698:: @ 080FF698 + .incbin "baserom.gba", 0x0FF698, 0x0000004 + +gUnk_080FF69C:: @ 080FF69C + .incbin "baserom.gba", 0x0FF69C, 0x0000004 + +gUnk_080FF6A0:: @ 080FF6A0 + .incbin "baserom.gba", 0x0FF6A0, 0x0000004 + +gUnk_080FF6A4:: @ 080FF6A4 + .incbin "baserom.gba", 0x0FF6A4, 0x0000004 + +gUnk_080FF6A8:: @ 080FF6A8 + .incbin "baserom.gba", 0x0FF6A8, 0x0000004 + +gUnk_080FF6AC:: @ 080FF6AC + .incbin "baserom.gba", 0x0FF6AC, 0x0000004 + +gUnk_080FF6B0:: @ 080FF6B0 + .incbin "baserom.gba", 0x0FF6B0, 0x0000004 + +gUnk_080FF6B4:: @ 080FF6B4 + .incbin "baserom.gba", 0x0FF6B4, 0x0000004 + +gUnk_080FF6B8:: @ 080FF6B8 + .incbin "baserom.gba", 0x0FF6B8, 0x0000004 + +gUnk_080FF6BC:: @ 080FF6BC + .incbin "baserom.gba", 0x0FF6BC, 0x0000004 + +gUnk_080FF6C0:: @ 080FF6C0 + .incbin "baserom.gba", 0x0FF6C0, 0x0000004 + +gUnk_080FF6C4:: @ 080FF6C4 + .incbin "baserom.gba", 0x0FF6C4, 0x0000004 + +gUnk_080FF6C8:: @ 080FF6C8 + .incbin "baserom.gba", 0x0FF6C8, 0x0000004 + +gUnk_080FF6CC:: @ 080FF6CC + .incbin "baserom.gba", 0x0FF6CC, 0x0000004 + +gUnk_080FF6D0:: @ 080FF6D0 + .incbin "baserom.gba", 0x0FF6D0, 0x0000004 + +gUnk_080FF6D4:: @ 080FF6D4 + .incbin "baserom.gba", 0x0FF6D4, 0x0000004 + +gUnk_080FF6D8:: @ 080FF6D8 + .incbin "baserom.gba", 0x0FF6D8, 0x0000002 + +gUnk_080FF6DA:: @ 080FF6DA + .incbin "baserom.gba", 0x0FF6DA, 0x0000002 + +gUnk_080FF6DC:: @ 080FF6DC + .incbin "baserom.gba", 0x0FF6DC, 0x0000004 + +gUnk_080FF6E0:: @ 080FF6E0 + .incbin "baserom.gba", 0x0FF6E0, 0x0000004 + +gUnk_080FF6E4:: @ 080FF6E4 + .incbin "baserom.gba", 0x0FF6E4, 0x0000004 + +gUnk_080FF6E8:: @ 080FF6E8 + .incbin "baserom.gba", 0x0FF6E8, 0x0000004 + +gUnk_080FF6EC:: @ 080FF6EC + .incbin "baserom.gba", 0x0FF6EC, 0x0000004 + +gUnk_080FF6F0:: @ 080FF6F0 + .incbin "baserom.gba", 0x0FF6F0, 0x0000004 + +gUnk_080FF6F4:: @ 080FF6F4 + .incbin "baserom.gba", 0x0FF6F4, 0x0000004 + +gUnk_080FF6F8:: @ 080FF6F8 + .incbin "baserom.gba", 0x0FF6F8, 0x0000001 + +gUnk_080FF6F9:: @ 080FF6F9 + .incbin "baserom.gba", 0x0FF6F9, 0x0000003 + +gUnk_080FF6FC:: @ 080FF6FC + .incbin "baserom.gba", 0x0FF6FC, 0x0000004 + +gUnk_080FF700:: @ 080FF700 + .incbin "baserom.gba", 0x0FF700, 0x0000004 + +gUnk_080FF704:: @ 080FF704 + .incbin "baserom.gba", 0x0FF704, 0x0000004 + +gUnk_080FF708:: @ 080FF708 + .incbin "baserom.gba", 0x0FF708, 0x0000004 + +gUnk_080FF70C:: @ 080FF70C + .incbin "baserom.gba", 0x0FF70C, 0x0000004 + +gUnk_080FF710:: @ 080FF710 + .incbin "baserom.gba", 0x0FF710, 0x0000004 + +gUnk_080FF714:: @ 080FF714 + .incbin "baserom.gba", 0x0FF714, 0x0000004 + +gUnk_080FF718:: @ 080FF718 + .incbin "baserom.gba", 0x0FF718, 0x0000004 + +gUnk_080FF71C:: @ 080FF71C + .incbin "baserom.gba", 0x0FF71C, 0x0000004 + +gUnk_080FF720:: @ 080FF720 + .incbin "baserom.gba", 0x0FF720, 0x0000004 + +gUnk_080FF724:: @ 080FF724 + .incbin "baserom.gba", 0x0FF724, 0x0000004 + +gUnk_080FF728:: @ 080FF728 + .incbin "baserom.gba", 0x0FF728, 0x0000004 + +gUnk_080FF72C:: @ 080FF72C + .incbin "baserom.gba", 0x0FF72C, 0x0000004 + +gUnk_080FF730:: @ 080FF730 + .incbin "baserom.gba", 0x0FF730, 0x000000C + +gUnk_080FF73C:: @ 080FF73C + .incbin "baserom.gba", 0x0FF73C, 0x0000008 + +gUnk_080FF744:: @ 080FF744 + .incbin "baserom.gba", 0x0FF744, 0x000000C + +gUnk_080FF750:: @ 080FF750 + .incbin "baserom.gba", 0x0FF750, 0x000000C + +gUnk_080FF75C:: @ 080FF75C + .incbin "baserom.gba", 0x0FF75C, 0x0000014 + +gUnk_080FF770:: @ 080FF770 + .incbin "baserom.gba", 0x0FF770, 0x0000008 + +gUnk_080FF778:: @ 080FF778 + .incbin "baserom.gba", 0x0FF778, 0x0000008 + +gUnk_080FF780:: @ 080FF780 + .incbin "baserom.gba", 0x0FF780, 0x0000008 + +gUnk_080FF788:: @ 080FF788 + .incbin "baserom.gba", 0x0FF788, 0x0000008 + +gUnk_080FF790:: @ 080FF790 + .incbin "baserom.gba", 0x0FF790, 0x0000008 + +gUnk_080FF798:: @ 080FF798 + .incbin "baserom.gba", 0x0FF798, 0x0000008 + +gUnk_080FF7A0:: @ 080FF7A0 + .incbin "baserom.gba", 0x0FF7A0, 0x0000008 + +gUnk_080FF7A8:: @ 080FF7A8 + .incbin "baserom.gba", 0x0FF7A8, 0x0000008 + +gUnk_080FF7B0:: @ 080FF7B0 + .incbin "baserom.gba", 0x0FF7B0, 0x0000008 + +gUnk_080FF7B8:: @ 080FF7B8 + .incbin "baserom.gba", 0x0FF7B8, 0x0000008 + +gUnk_080FF7C0:: @ 080FF7C0 + .incbin "baserom.gba", 0x0FF7C0, 0x0000008 + +gUnk_080FF7C8:: @ 080FF7C8 + .incbin "baserom.gba", 0x0FF7C8, 0x0000008 + +gUnk_080FF7D0:: @ 080FF7D0 + .incbin "baserom.gba", 0x0FF7D0, 0x0000008 + +gUnk_080FF7D8:: @ 080FF7D8 + .incbin "baserom.gba", 0x0FF7D8, 0x0000008 + +gUnk_080FF7E0:: @ 080FF7E0 + .incbin "baserom.gba", 0x0FF7E0, 0x0000008 + +gUnk_080FF7E8:: @ 080FF7E8 + .incbin "baserom.gba", 0x0FF7E8, 0x0000008 + +gUnk_080FF7F0:: @ 080FF7F0 + .incbin "baserom.gba", 0x0FF7F0, 0x0000008 + +gUnk_080FF7F8:: @ 080FF7F8 + .incbin "baserom.gba", 0x0FF7F8, 0x0000010 + +gUnk_080FF808:: @ 080FF808 + .incbin "baserom.gba", 0x0FF808, 0x000000C + +gUnk_080FF814:: @ 080FF814 + .incbin "baserom.gba", 0x0FF814, 0x0000028 + +gUnk_080FF83C:: @ 080FF83C + .incbin "baserom.gba", 0x0FF83C, 0x0000008 + +gUnk_080FF844:: @ 080FF844 + .incbin "baserom.gba", 0x0FF844, 0x000000C + +gUnk_080FF850:: @ 080FF850 + .incbin "baserom.gba", 0x0FF850, 0x00000BE + +gUnk_080FF90E:: @ 080FF90E + .incbin "baserom.gba", 0x0FF90E, 0x00000CE + +gUnk_080FF9DC:: @ 080FF9DC + .incbin "baserom.gba", 0x0FF9DC, 0x000000A + +gUnk_080FF9E6:: @ 080FF9E6 + .incbin "baserom.gba", 0x0FF9E6, 0x000002C + +gUnk_080FFA12:: @ 080FFA12 + .incbin "baserom.gba", 0x0FFA12, 0x00000DD + +gUnk_080FFAEF:: @ 080FFAEF + .incbin "baserom.gba", 0x0FFAEF, 0x00000A1 + +gUnk_080FFB90:: @ 080FFB90 + .incbin "baserom.gba", 0x0FFB90, 0x0000018 + +gUnk_080FFBA8:: @ 080FFBA8 + .incbin "baserom.gba", 0x0FFBA8, 0x0000035 + +gUnk_080FFBDD:: @ 080FFBDD + .incbin "baserom.gba", 0x0FFBDD, 0x0000013 + +gUnk_080FFBF0:: @ 080FFBF0 + .incbin "baserom.gba", 0x0FFBF0, 0x0000024 + +gUnk_080FFC14:: @ 080FFC14 + .incbin "baserom.gba", 0x0FFC14, 0x0000024 + +gUnk_080FFC38:: @ 080FFC38 + .incbin "baserom.gba", 0x0FFC38, 0x0000030 + +gUnk_080FFC68:: @ 080FFC68 + .incbin "baserom.gba", 0x0FFC68, 0x0000018 + +gUnk_080FFC80:: @ 080FFC80 + .incbin "baserom.gba", 0x0FFC80, 0x000000C + +gUnk_080FFC8C:: @ 080FFC8C + .incbin "baserom.gba", 0x0FFC8C, 0x000000C + +gUnk_080FFC98:: @ 080FFC98 + .incbin "baserom.gba", 0x0FFC98, 0x0000018 + +gUnk_080FFCB0:: @ 080FFCB0 + .incbin "baserom.gba", 0x0FFCB0, 0x0000018 + +gUnk_080FFCC8:: @ 080FFCC8 + .incbin "baserom.gba", 0x0FFCC8, 0x000000C + +gUnk_080FFCD4:: @ 080FFCD4 + .incbin "baserom.gba", 0x0FFCD4, 0x0000018 + +gUnk_080FFCEC:: @ 080FFCEC + .incbin "baserom.gba", 0x0FFCEC, 0x0000001 + +gUnk_080FFCED:: @ 080FFCED + .incbin "baserom.gba", 0x0FFCED, 0x0000017 + +gUnk_080FFD04:: @ 080FFD04 + .incbin "baserom.gba", 0x0FFD04, 0x0000018 + +gUnk_080FFD1C:: @ 080FFD1C + .incbin "baserom.gba", 0x0FFD1C, 0x000000C + +gUnk_080FFD28:: @ 080FFD28 + .incbin "baserom.gba", 0x0FFD28, 0x0000018 + +gUnk_080FFD40:: @ 080FFD40 + .incbin "baserom.gba", 0x0FFD40, 0x000000C + +gUnk_080FFD4C:: @ 080FFD4C + .incbin "baserom.gba", 0x0FFD4C, 0x000000C + +gUnk_080FFD58:: @ 080FFD58 + .incbin "baserom.gba", 0x0FFD58, 0x000000C + +gUnk_080FFD64:: @ 080FFD64 + .incbin "baserom.gba", 0x0FFD64, 0x000000C + +gUnk_080FFD70:: @ 080FFD70 + .incbin "baserom.gba", 0x0FFD70, 0x000000C + +gUnk_080FFD7C:: @ 080FFD7C + .incbin "baserom.gba", 0x0FFD7C, 0x000000C + +gUnk_080FFD88:: @ 080FFD88 + .incbin "baserom.gba", 0x0FFD88, 0x000000C + +gUnk_080FFD94:: @ 080FFD94 + .incbin "baserom.gba", 0x0FFD94, 0x0000018 + +gUnk_080FFDAC:: @ 080FFDAC + .incbin "baserom.gba", 0x0FFDAC, 0x0000018 + +gUnk_080FFDC4:: @ 080FFDC4 + .incbin "baserom.gba", 0x0FFDC4, 0x000000C + +gUnk_080FFDD0:: @ 080FFDD0 + .incbin "baserom.gba", 0x0FFDD0, 0x0000018 + +gUnk_080FFDE8:: @ 080FFDE8 + .incbin "baserom.gba", 0x0FFDE8, 0x000000C + +gUnk_080FFDF4:: @ 080FFDF4 + .incbin "baserom.gba", 0x0FFDF4, 0x0000005 + +gUnk_080FFDF9:: @ 080FFDF9 + .incbin "baserom.gba", 0x0FFDF9, 0x0000007 + +gUnk_080FFE00:: @ 080FFE00 + .incbin "baserom.gba", 0x0FFE00, 0x0000018 + +gUnk_080FFE18:: @ 080FFE18 + .incbin "baserom.gba", 0x0FFE18, 0x0000018 + +gUnk_080FFE30:: @ 080FFE30 + .incbin "baserom.gba", 0x0FFE30, 0x000003C + +gUnk_080FFE6C:: @ 080FFE6C + .incbin "baserom.gba", 0x0FFE6C, 0x000003C + +gUnk_080FFEA8:: @ 080FFEA8 + .incbin "baserom.gba", 0x0FFEA8, 0x000003C + +gUnk_080FFEE4:: @ 080FFEE4 + .incbin "baserom.gba", 0x0FFEE4, 0x000003C + +gUnk_080FFF20:: @ 080FFF20 + .incbin "baserom.gba", 0x0FFF20, 0x000003C + +gUnk_080FFF5C:: @ 080FFF5C + .incbin "baserom.gba", 0x0FFF5C, 0x000003C + +gUnk_080FFF98:: @ 080FFF98 + .incbin "baserom.gba", 0x0FFF98, 0x0000030 + +gUnk_080FFFC8:: @ 080FFFC8 + .incbin "baserom.gba", 0x0FFFC8, 0x0000018 + +gUnk_080FFFE0:: @ 080FFFE0 + .incbin "baserom.gba", 0x0FFFE0, 0x000000C + +gUnk_080FFFEC:: @ 080FFFEC + .incbin "baserom.gba", 0x0FFFEC, 0x000000C + +gUnk_080FFFF8:: @ 080FFFF8 + .incbin "baserom.gba", 0x0FFFF8, 0x0000008 + +gUnk_08100000:: @ 08100000 + .incbin "baserom.gba", 0x100000, 0x0000001 + +gUnk_08100001:: @ 08100001 + .incbin "baserom.gba", 0x100001, 0x0000002 + +gUnk_08100003:: @ 08100003 + .incbin "baserom.gba", 0x100003, 0x0000001 + +gUnk_08100004:: @ 08100004 + .incbin "baserom.gba", 0x100004, 0x000000C + +gUnk_08100010:: @ 08100010 + .incbin "baserom.gba", 0x100010, 0x0000005 + +gUnk_08100015:: @ 08100015 + .incbin "baserom.gba", 0x100015, 0x0000007 + +gUnk_0810001C:: @ 0810001C + .incbin "baserom.gba", 0x10001C, 0x000000C + +gUnk_08100028:: @ 08100028 + .incbin "baserom.gba", 0x100028, 0x0000004 + +gUnk_0810002C:: @ 0810002C + .incbin "baserom.gba", 0x10002C, 0x0000008 + +gUnk_08100034:: @ 08100034 + .incbin "baserom.gba", 0x100034, 0x000000B + +gUnk_0810003F:: @ 0810003F + .incbin "baserom.gba", 0x10003F, 0x0000001 + +gUnk_08100040:: @ 08100040 + .incbin "baserom.gba", 0x100040, 0x0000002 + +gUnk_08100042:: @ 08100042 + .incbin "baserom.gba", 0x100042, 0x000000A + +gUnk_0810004C:: @ 0810004C + .incbin "baserom.gba", 0x10004C, 0x000000C + +gUnk_08100058:: @ 08100058 + .incbin "baserom.gba", 0x100058, 0x000000C + +gUnk_08100064:: @ 08100064 + .incbin "baserom.gba", 0x100064, 0x000000C + +gUnk_08100070:: @ 08100070 + .incbin "baserom.gba", 0x100070, 0x000000C + +gUnk_0810007C:: @ 0810007C + .incbin "baserom.gba", 0x10007C, 0x000000C + +gUnk_08100088:: @ 08100088 + .incbin "baserom.gba", 0x100088, 0x000000C + +gUnk_08100094:: @ 08100094 + .incbin "baserom.gba", 0x100094, 0x000000C + +gUnk_081000A0:: @ 081000A0 + .incbin "baserom.gba", 0x1000A0, 0x000000C + +gUnk_081000AC:: @ 081000AC + .incbin "baserom.gba", 0x1000AC, 0x000000C + +gUnk_081000B8:: @ 081000B8 + .incbin "baserom.gba", 0x1000B8, 0x000000C + +gUnk_081000C4:: @ 081000C4 + .incbin "baserom.gba", 0x1000C4, 0x000000C + +gUnk_081000D0:: @ 081000D0 + .incbin "baserom.gba", 0x1000D0, 0x000000C + +gUnk_081000DC:: @ 081000DC + .incbin "baserom.gba", 0x1000DC, 0x0000008 + +gUnk_081000E4:: @ 081000E4 + .incbin "baserom.gba", 0x1000E4, 0x0000004 + +gUnk_081000E8:: @ 081000E8 + .incbin "baserom.gba", 0x1000E8, 0x0000008 + +gUnk_081000F0:: @ 081000F0 + .incbin "baserom.gba", 0x1000F0, 0x0000004 + +gUnk_081000F4:: @ 081000F4 + .incbin "baserom.gba", 0x1000F4, 0x000000C + +gUnk_08100100:: @ 08100100 + .incbin "baserom.gba", 0x100100, 0x0000007 + +gUnk_08100107:: @ 08100107 + .incbin "baserom.gba", 0x100107, 0x0000002 + +gUnk_08100109:: @ 08100109 + .incbin "baserom.gba", 0x100109, 0x0000003 + +gUnk_0810010C:: @ 0810010C + .incbin "baserom.gba", 0x10010C, 0x000000C + +gUnk_08100118:: @ 08100118 + .incbin "baserom.gba", 0x100118, 0x0000008 + +gUnk_08100120:: @ 08100120 + .incbin "baserom.gba", 0x100120, 0x0000006 + +gUnk_08100126:: @ 08100126 + .incbin "baserom.gba", 0x100126, 0x000000A + +gUnk_08100130:: @ 08100130 + .incbin "baserom.gba", 0x100130, 0x0000018 + +gUnk_08100148:: @ 08100148 + .incbin "baserom.gba", 0x100148, 0x0000018 + +gUnk_08100160:: @ 08100160 + .incbin "baserom.gba", 0x100160, 0x0000018 + +gUnk_08100178:: @ 08100178 + .incbin "baserom.gba", 0x100178, 0x0000018 + +gUnk_08100190:: @ 08100190 + .incbin "baserom.gba", 0x100190, 0x0000018 + +gUnk_081001A8:: @ 081001A8 + .incbin "baserom.gba", 0x1001A8, 0x0000018 + +gUnk_081001C0:: @ 081001C0 + .incbin "baserom.gba", 0x1001C0, 0x0000018 + +gUnk_081001D8:: @ 081001D8 + .incbin "baserom.gba", 0x1001D8, 0x0000018 + +gUnk_081001F0:: @ 081001F0 + .incbin "baserom.gba", 0x1001F0, 0x0000009 + +gUnk_081001F9:: @ 081001F9 + .incbin "baserom.gba", 0x1001F9, 0x000000D + +gUnk_08100206:: @ 08100206 + .incbin "baserom.gba", 0x100206, 0x0000002 + +gUnk_08100208:: @ 08100208 + .incbin "baserom.gba", 0x100208, 0x0000018 + +gUnk_08100220:: @ 08100220 + .incbin "baserom.gba", 0x100220, 0x0000018 + +gUnk_08100238:: @ 08100238 + .incbin "baserom.gba", 0x100238, 0x0000018 + +gUnk_08100250:: @ 08100250 + .incbin "baserom.gba", 0x100250, 0x0000018 + +gUnk_08100268:: @ 08100268 + .incbin "baserom.gba", 0x100268, 0x0000018 + +gUnk_08100280:: @ 08100280 + .incbin "baserom.gba", 0x100280, 0x0000018 + +gUnk_08100298:: @ 08100298 + .incbin "baserom.gba", 0x100298, 0x0000018 + +gUnk_081002B0:: @ 081002B0 + .incbin "baserom.gba", 0x1002B0, 0x0000018 + +gUnk_081002C8:: @ 081002C8 + .incbin "baserom.gba", 0x1002C8, 0x0000018 + +gUnk_081002E0:: @ 081002E0 + .incbin "baserom.gba", 0x1002E0, 0x000000C + +gUnk_081002EC:: @ 081002EC + .incbin "baserom.gba", 0x1002EC, 0x000000C + +gUnk_081002F8:: @ 081002F8 + .incbin "baserom.gba", 0x1002F8, 0x000000C + +gUnk_08100304:: @ 08100304 + .incbin "baserom.gba", 0x100304, 0x000000C + +gUnk_08100310:: @ 08100310 + .incbin "baserom.gba", 0x100310, 0x0000007 + +gUnk_08100317:: @ 08100317 + .incbin "baserom.gba", 0x100317, 0x0000011 + +gUnk_08100328:: @ 08100328 + .incbin "baserom.gba", 0x100328, 0x0000030 + +gUnk_08100358:: @ 08100358 + .incbin "baserom.gba", 0x100358, 0x0000030 + +gUnk_08100388:: @ 08100388 + .incbin "baserom.gba", 0x100388, 0x0000054 + +gUnk_081003DC:: @ 081003DC + .incbin "baserom.gba", 0x1003DC, 0x0000024 + +gUnk_08100400:: @ 08100400 + .incbin "baserom.gba", 0x100400, 0x0000001 + +gUnk_08100401:: @ 08100401 + .incbin "baserom.gba", 0x100401, 0x0000006 + +gUnk_08100407:: @ 08100407 + .incbin "baserom.gba", 0x100407, 0x000001D + +gUnk_08100424:: @ 08100424 + .incbin "baserom.gba", 0x100424, 0x0000048 + +gUnk_0810046C:: @ 0810046C + .incbin "baserom.gba", 0x10046C, 0x0000048 + +gUnk_081004B4:: @ 081004B4 + .incbin "baserom.gba", 0x1004B4, 0x0000018 + +gUnk_081004CC:: @ 081004CC + .incbin "baserom.gba", 0x1004CC, 0x0000024 + +gUnk_081004F0:: @ 081004F0 + .incbin "baserom.gba", 0x1004F0, 0x0000008 + +gUnk_081004F8:: @ 081004F8 + .incbin "baserom.gba", 0x1004F8, 0x0000002 + +gUnk_081004FA:: @ 081004FA + .incbin "baserom.gba", 0x1004FA, 0x0000004 + +gUnk_081004FE:: @ 081004FE + .incbin "baserom.gba", 0x1004FE, 0x0000012 + +gUnk_08100510:: @ 08100510 + .incbin "baserom.gba", 0x100510, 0x0000001 + +gUnk_08100511:: @ 08100511 + .incbin "baserom.gba", 0x100511, 0x0000003 + +gUnk_08100514:: @ 08100514 + .incbin "baserom.gba", 0x100514, 0x000000C + +gUnk_08100520:: @ 08100520 + .incbin "baserom.gba", 0x100520, 0x0000021 + +gUnk_08100541:: @ 08100541 + .incbin "baserom.gba", 0x100541, 0x000000F + +gUnk_08100550:: @ 08100550 + .incbin "baserom.gba", 0x100550, 0x0000030 + +gUnk_08100580:: @ 08100580 + .incbin "baserom.gba", 0x100580, 0x0000030 + +gUnk_081005B0:: @ 081005B0 + .incbin "baserom.gba", 0x1005B0, 0x0000030 + +gUnk_081005E0:: @ 081005E0 + .incbin "baserom.gba", 0x1005E0, 0x000001B + +gUnk_081005FB:: @ 081005FB + .incbin "baserom.gba", 0x1005FB, 0x0000004 + +gUnk_081005FF:: @ 081005FF + .incbin "baserom.gba", 0x1005FF, 0x0000001 + +gUnk_08100600:: @ 08100600 + .incbin "baserom.gba", 0x100600, 0x0000005 + +gUnk_08100605:: @ 08100605 + .incbin "baserom.gba", 0x100605, 0x0000001 + +gUnk_08100606:: @ 08100606 + .incbin "baserom.gba", 0x100606, 0x000000A + +gUnk_08100610:: @ 08100610 + .incbin "baserom.gba", 0x100610, 0x0000010 + +gUnk_08100620:: @ 08100620 + .incbin "baserom.gba", 0x100620, 0x0000020 + +gUnk_08100640:: @ 08100640 + .incbin "baserom.gba", 0x100640, 0x0000030 + +gUnk_08100670:: @ 08100670 + .incbin "baserom.gba", 0x100670, 0x0000011 + +gUnk_08100681:: @ 08100681 + .incbin "baserom.gba", 0x100681, 0x000001F + +gUnk_081006A0:: @ 081006A0 + .incbin "baserom.gba", 0x1006A0, 0x0000030 + +gUnk_081006D0:: @ 081006D0 + .incbin "baserom.gba", 0x1006D0, 0x0000030 + +gUnk_08100700:: @ 08100700 + .incbin "baserom.gba", 0x100700, 0x0000010 + +gUnk_08100710:: @ 08100710 + .incbin "baserom.gba", 0x100710, 0x0000010 + +gUnk_08100720:: @ 08100720 + .incbin "baserom.gba", 0x100720, 0x0000010 + +gUnk_08100730:: @ 08100730 + .incbin "baserom.gba", 0x100730, 0x0000010 + +gUnk_08100740:: @ 08100740 + .incbin "baserom.gba", 0x100740, 0x0000010 + +gUnk_08100750:: @ 08100750 + .incbin "baserom.gba", 0x100750, 0x0000010 + +gUnk_08100760:: @ 08100760 + .incbin "baserom.gba", 0x100760, 0x0000020 + +gUnk_08100780:: @ 08100780 + .incbin "baserom.gba", 0x100780, 0x0000001 + +gUnk_08100781:: @ 08100781 + .incbin "baserom.gba", 0x100781, 0x000000F + +gUnk_08100790:: @ 08100790 + .incbin "baserom.gba", 0x100790, 0x0000030 + +gUnk_081007C0:: @ 081007C0 + .incbin "baserom.gba", 0x1007C0, 0x0000020 + +gUnk_081007E0:: @ 081007E0 + .incbin "baserom.gba", 0x1007E0, 0x0000010 + +gUnk_081007F0:: @ 081007F0 + .incbin "baserom.gba", 0x1007F0, 0x000000E + +gUnk_081007FE:: @ 081007FE + .incbin "baserom.gba", 0x1007FE, 0x0000001 + +gUnk_081007FF:: @ 081007FF + .incbin "baserom.gba", 0x1007FF, 0x0000001 + +gUnk_08100800:: @ 08100800 + .incbin "baserom.gba", 0x100800, 0x0000004 + +gUnk_08100804:: @ 08100804 + .incbin "baserom.gba", 0x100804, 0x0000005 + +gUnk_08100809:: @ 08100809 + .incbin "baserom.gba", 0x100809, 0x0000007 + +gUnk_08100810:: @ 08100810 + .incbin "baserom.gba", 0x100810, 0x0000003 + +gUnk_08100813:: @ 08100813 + .incbin "baserom.gba", 0x100813, 0x000000D + +gUnk_08100820:: @ 08100820 + .incbin "baserom.gba", 0x100820, 0x0000021 + +gUnk_08100841:: @ 08100841 + .incbin "baserom.gba", 0x100841, 0x000000F + +gUnk_08100850:: @ 08100850 + .incbin "baserom.gba", 0x100850, 0x0000030 + +gUnk_08100880:: @ 08100880 + .incbin "baserom.gba", 0x100880, 0x0000001 + +gUnk_08100881:: @ 08100881 + .incbin "baserom.gba", 0x100881, 0x000002F + +gUnk_081008B0:: @ 081008B0 + .incbin "baserom.gba", 0x1008B0, 0x0000030 + +gUnk_081008E0:: @ 081008E0 + .incbin "baserom.gba", 0x1008E0, 0x0000023 + +gUnk_08100903:: @ 08100903 + .incbin "baserom.gba", 0x100903, 0x0000001 + +gUnk_08100904:: @ 08100904 + .incbin "baserom.gba", 0x100904, 0x000000C + +gUnk_08100910:: @ 08100910 + .incbin "baserom.gba", 0x100910, 0x0000030 + +gUnk_08100940:: @ 08100940 + .incbin "baserom.gba", 0x100940, 0x0000030 + +gUnk_08100970:: @ 08100970 + .incbin "baserom.gba", 0x100970, 0x000003C + +gUnk_081009AC:: @ 081009AC + .incbin "baserom.gba", 0x1009AC, 0x000000C + +gUnk_081009B8:: @ 081009B8 + .incbin "baserom.gba", 0x1009B8, 0x000000C + +gUnk_081009C4:: @ 081009C4 + .incbin "baserom.gba", 0x1009C4, 0x000000C + +gUnk_081009D0:: @ 081009D0 + .incbin "baserom.gba", 0x1009D0, 0x0000009 + +gUnk_081009D9:: @ 081009D9 + .incbin "baserom.gba", 0x1009D9, 0x0000003 + +gUnk_081009DC:: @ 081009DC + .incbin "baserom.gba", 0x1009DC, 0x000000C + +gUnk_081009E8:: @ 081009E8 + .incbin "baserom.gba", 0x1009E8, 0x0000005 + +gUnk_081009ED:: @ 081009ED + .incbin "baserom.gba", 0x1009ED, 0x0000007 + +gUnk_081009F4:: @ 081009F4 + .incbin "baserom.gba", 0x1009F4, 0x000000C + +gUnk_08100A00:: @ 08100A00 + .incbin "baserom.gba", 0x100A00, 0x0000006 + +gUnk_08100A06:: @ 08100A06 + .incbin "baserom.gba", 0x100A06, 0x0000004 + +gUnk_08100A0A:: @ 08100A0A + .incbin "baserom.gba", 0x100A0A, 0x0000002 + +gUnk_08100A0C:: @ 08100A0C + .incbin "baserom.gba", 0x100A0C, 0x0000005 + +gUnk_08100A11:: @ 08100A11 + .incbin "baserom.gba", 0x100A11, 0x000001F + +gUnk_08100A30:: @ 08100A30 + .incbin "baserom.gba", 0x100A30, 0x0000054 + +gUnk_08100A84:: @ 08100A84 + .incbin "baserom.gba", 0x100A84, 0x000000C + +gUnk_08100A90:: @ 08100A90 + .incbin "baserom.gba", 0x100A90, 0x000000C + +gUnk_08100A9C:: @ 08100A9C + .incbin "baserom.gba", 0x100A9C, 0x000000C + +gUnk_08100AA8:: @ 08100AA8 + .incbin "baserom.gba", 0x100AA8, 0x000005F + +gUnk_08100B07:: @ 08100B07 + .incbin "baserom.gba", 0x100B07, 0x0000009 + +gUnk_08100B10:: @ 08100B10 + .incbin "baserom.gba", 0x100B10, 0x0000004 + +gUnk_08100B14:: @ 08100B14 + .incbin "baserom.gba", 0x100B14, 0x00000DC + +gUnk_08100BF0:: @ 08100BF0 + .incbin "baserom.gba", 0x100BF0, 0x000000D + +gUnk_08100BFD:: @ 08100BFD + .incbin "baserom.gba", 0x100BFD, 0x0000004 + +gUnk_08100C01:: @ 08100C01 + .incbin "baserom.gba", 0x100C01, 0x0000001 + +gUnk_08100C02:: @ 08100C02 + .incbin "baserom.gba", 0x100C02, 0x000007F + +gUnk_08100C81:: @ 08100C81 + .incbin "baserom.gba", 0x100C81, 0x000003B + +gUnk_08100CBC:: @ 08100CBC + .incbin "baserom.gba", 0x100CBC, 0x0000018 + +gUnk_08100CD4:: @ 08100CD4 + .incbin "baserom.gba", 0x100CD4, 0x0000010 + +gUnk_08100CE4:: @ 08100CE4 + .incbin "baserom.gba", 0x100CE4, 0x000000C + +gUnk_08100CF0:: @ 08100CF0 + .incbin "baserom.gba", 0x100CF0, 0x0000004 + +gUnk_08100CF4:: @ 08100CF4 + .incbin "baserom.gba", 0x100CF4, 0x0000009 + +gUnk_08100CFD:: @ 08100CFD + .incbin "baserom.gba", 0x100CFD, 0x0000004 + +gUnk_08100D01:: @ 08100D01 + .incbin "baserom.gba", 0x100D01, 0x0000003 + +gUnk_08100D04:: @ 08100D04 + .incbin "baserom.gba", 0x100D04, 0x000001C + +gUnk_08100D20:: @ 08100D20 + .incbin "baserom.gba", 0x100D20, 0x0000004 + +gUnk_08100D24:: @ 08100D24 + .incbin "baserom.gba", 0x100D24, 0x0000024 + +gUnk_08100D48:: @ 08100D48 + .incbin "baserom.gba", 0x100D48, 0x0000008 + +gUnk_08100D50:: @ 08100D50 + .incbin "baserom.gba", 0x100D50, 0x0000030 + +gUnk_08100D80:: @ 08100D80 + .incbin "baserom.gba", 0x100D80, 0x0000004 + +gUnk_08100D84:: @ 08100D84 + .incbin "baserom.gba", 0x100D84, 0x0000030 + +gUnk_08100DB4:: @ 08100DB4 + .incbin "baserom.gba", 0x100DB4, 0x0000004 + +gUnk_08100DB8:: @ 08100DB8 + .incbin "baserom.gba", 0x100DB8, 0x0000030 + +gUnk_08100DE8:: @ 08100DE8 + .incbin "baserom.gba", 0x100DE8, 0x0000004 + +gUnk_08100DEC:: @ 08100DEC + .incbin "baserom.gba", 0x100DEC, 0x000000A + +gUnk_08100DF6:: @ 08100DF6 + .incbin "baserom.gba", 0x100DF6, 0x0000016 + +gUnk_08100E0C:: @ 08100E0C + .incbin "baserom.gba", 0x100E0C, 0x000000A + +gUnk_08100E16:: @ 08100E16 + .incbin "baserom.gba", 0x100E16, 0x0000006 + +gUnk_08100E1C:: @ 08100E1C + .incbin "baserom.gba", 0x100E1C, 0x0000004 + +gUnk_08100E20:: @ 08100E20 + .incbin "baserom.gba", 0x100E20, 0x000000E + +gUnk_08100E2E:: @ 08100E2E + .incbin "baserom.gba", 0x100E2E, 0x0000022 + +gUnk_08100E50:: @ 08100E50 + .incbin "baserom.gba", 0x100E50, 0x0000004 + +gUnk_08100E54:: @ 08100E54 + .incbin "baserom.gba", 0x100E54, 0x000002D + +gUnk_08100E81:: @ 08100E81 + .incbin "baserom.gba", 0x100E81, 0x0000003 + +gUnk_08100E84:: @ 08100E84 + .incbin "baserom.gba", 0x100E84, 0x0000004 + +gUnk_08100E88:: @ 08100E88 + .incbin "baserom.gba", 0x100E88, 0x000003C + +gUnk_08100EC4:: @ 08100EC4 + .incbin "baserom.gba", 0x100EC4, 0x0000034 + +gUnk_08100EF8:: @ 08100EF8 + .incbin "baserom.gba", 0x100EF8, 0x0000006 + +gUnk_08100EFE:: @ 08100EFE + .incbin "baserom.gba", 0x100EFE, 0x0000002 + +gUnk_08100F00:: @ 08100F00 + .incbin "baserom.gba", 0x100F00, 0x0000009 + +gUnk_08100F09:: @ 08100F09 + .incbin "baserom.gba", 0x100F09, 0x0000007 + +gUnk_08100F10:: @ 08100F10 + .incbin "baserom.gba", 0x100F10, 0x0000020 + +gUnk_08100F30:: @ 08100F30 + .incbin "baserom.gba", 0x100F30, 0x000000C + +gUnk_08100F3C:: @ 08100F3C + .incbin "baserom.gba", 0x100F3C, 0x000000C + +gUnk_08100F48:: @ 08100F48 + .incbin "baserom.gba", 0x100F48, 0x0000030 + +gUnk_08100F78:: @ 08100F78 + .incbin "baserom.gba", 0x100F78, 0x0000004 + +gUnk_08100F7C:: @ 08100F7C + .incbin "baserom.gba", 0x100F7C, 0x0000005 + +gUnk_08100F81:: @ 08100F81 + .incbin "baserom.gba", 0x100F81, 0x000001B + +gUnk_08100F9C:: @ 08100F9C + .incbin "baserom.gba", 0x100F9C, 0x000001C + +gUnk_08100FB8:: @ 08100FB8 + .incbin "baserom.gba", 0x100FB8, 0x0000004 + +gUnk_08100FBC:: @ 08100FBC + .incbin "baserom.gba", 0x100FBC, 0x0000030 + +gUnk_08100FEC:: @ 08100FEC + .incbin "baserom.gba", 0x100FEC, 0x0000004 + +gUnk_08100FF0:: @ 08100FF0 + .incbin "baserom.gba", 0x100FF0, 0x0000010 + +gUnk_08101000:: @ 08101000 + .incbin "baserom.gba", 0x101000, 0x000000E + +gUnk_0810100E:: @ 0810100E + .incbin "baserom.gba", 0x10100E, 0x0000002 + +gUnk_08101010:: @ 08101010 + .incbin "baserom.gba", 0x101010, 0x0000010 + +gUnk_08101020:: @ 08101020 + .incbin "baserom.gba", 0x101020, 0x0000004 + +gUnk_08101024:: @ 08101024 + .incbin "baserom.gba", 0x101024, 0x0000030 + +gUnk_08101054:: @ 08101054 + .incbin "baserom.gba", 0x101054, 0x0000004 + +gUnk_08101058:: @ 08101058 + .incbin "baserom.gba", 0x101058, 0x0000029 + +gUnk_08101081:: @ 08101081 + .incbin "baserom.gba", 0x101081, 0x0000013 + +gUnk_08101094:: @ 08101094 + .incbin "baserom.gba", 0x101094, 0x0000004 + +gUnk_08101098:: @ 08101098 + .incbin "baserom.gba", 0x101098, 0x0000030 + +gUnk_081010C8:: @ 081010C8 + .incbin "baserom.gba", 0x1010C8, 0x0000004 + +gUnk_081010CC:: @ 081010CC + .incbin "baserom.gba", 0x1010CC, 0x0000030 + +gUnk_081010FC:: @ 081010FC + .incbin "baserom.gba", 0x1010FC, 0x0000003 + +gUnk_081010FF:: @ 081010FF + .incbin "baserom.gba", 0x1010FF, 0x0000001 + +gUnk_08101100:: @ 08101100 + .incbin "baserom.gba", 0x101100, 0x000000B + +gUnk_0810110B:: @ 0810110B + .incbin "baserom.gba", 0x10110B, 0x0000003 + +gUnk_0810110E:: @ 0810110E + .incbin "baserom.gba", 0x10110E, 0x0000003 + +gUnk_08101111:: @ 08101111 + .incbin "baserom.gba", 0x101111, 0x000001B + +gUnk_0810112C:: @ 0810112C + .incbin "baserom.gba", 0x10112C, 0x0000030 + +gUnk_0810115C:: @ 0810115C + .incbin "baserom.gba", 0x10115C, 0x000000C + +gUnk_08101168:: @ 08101168 + .incbin "baserom.gba", 0x101168, 0x0000048 + +gUnk_081011B0:: @ 081011B0 + .incbin "baserom.gba", 0x1011B0, 0x0000004 + +gUnk_081011B4:: @ 081011B4 + .incbin "baserom.gba", 0x1011B4, 0x0000048 + +gUnk_081011FC:: @ 081011FC + .incbin "baserom.gba", 0x1011FC, 0x0000001 + +gUnk_081011FD:: @ 081011FD + .incbin "baserom.gba", 0x1011FD, 0x0000003 + +gUnk_08101200:: @ 08101200 + .incbin "baserom.gba", 0x101200, 0x0000008 + +gUnk_08101208:: @ 08101208 + .incbin "baserom.gba", 0x101208, 0x0000006 + +gUnk_0810120E:: @ 0810120E + .incbin "baserom.gba", 0x10120E, 0x0000005 + +gUnk_08101213:: @ 08101213 + .incbin "baserom.gba", 0x101213, 0x0000035 + +gUnk_08101248:: @ 08101248 + .incbin "baserom.gba", 0x101248, 0x0000004 + +gUnk_0810124C:: @ 0810124C + .incbin "baserom.gba", 0x10124C, 0x0000048 + +gUnk_08101294:: @ 08101294 + .incbin "baserom.gba", 0x101294, 0x0000004 + +gUnk_08101298:: @ 08101298 + .incbin "baserom.gba", 0x101298, 0x0000048 + +gUnk_081012E0:: @ 081012E0 + .incbin "baserom.gba", 0x1012E0, 0x0000004 + +gUnk_081012E4:: @ 081012E4 + .incbin "baserom.gba", 0x1012E4, 0x0000027 + +gUnk_0810130B:: @ 0810130B + .incbin "baserom.gba", 0x10130B, 0x0000004 + +gUnk_0810130F:: @ 0810130F + .incbin "baserom.gba", 0x10130F, 0x0000001 + +gUnk_08101310:: @ 08101310 + .incbin "baserom.gba", 0x101310, 0x0000001 + +gUnk_08101311:: @ 08101311 + .incbin "baserom.gba", 0x101311, 0x0000003 + +gUnk_08101314:: @ 08101314 + .incbin "baserom.gba", 0x101314, 0x0000002 + +gUnk_08101316:: @ 08101316 + .incbin "baserom.gba", 0x101316, 0x000000F + +gUnk_08101325:: @ 08101325 + .incbin "baserom.gba", 0x101325, 0x0000007 + +gUnk_0810132C:: @ 0810132C + .incbin "baserom.gba", 0x10132C, 0x0000004 + +gUnk_08101330:: @ 08101330 + .incbin "baserom.gba", 0x101330, 0x0000048 + +gUnk_08101378:: @ 08101378 + .incbin "baserom.gba", 0x101378, 0x0000004 + +gUnk_0810137C:: @ 0810137C + .incbin "baserom.gba", 0x10137C, 0x0000048 + +gUnk_081013C4:: @ 081013C4 + .incbin "baserom.gba", 0x1013C4, 0x0000004 + +gUnk_081013C8:: @ 081013C8 + .incbin "baserom.gba", 0x1013C8, 0x000000C + +gUnk_081013D4:: @ 081013D4 + .incbin "baserom.gba", 0x1013D4, 0x0000024 + +gUnk_081013F8:: @ 081013F8 + .incbin "baserom.gba", 0x1013F8, 0x0000016 + +gUnk_0810140E:: @ 0810140E + .incbin "baserom.gba", 0x10140E, 0x0000005 + +gUnk_08101413:: @ 08101413 + .incbin "baserom.gba", 0x101413, 0x0000001 + +gUnk_08101414:: @ 08101414 + .incbin "baserom.gba", 0x101414, 0x0000001 + +gUnk_08101415:: @ 08101415 + .incbin "baserom.gba", 0x101415, 0x0000003 + +gUnk_08101418:: @ 08101418 + .incbin "baserom.gba", 0x101418, 0x0000010 + +gUnk_08101428:: @ 08101428 + .incbin "baserom.gba", 0x101428, 0x0000008 + +gUnk_08101430:: @ 08101430 + .incbin "baserom.gba", 0x101430, 0x0000030 + +gUnk_08101460:: @ 08101460 + .incbin "baserom.gba", 0x101460, 0x0000004 + +gUnk_08101464:: @ 08101464 + .incbin "baserom.gba", 0x101464, 0x0000024 + +gUnk_08101488:: @ 08101488 + .incbin "baserom.gba", 0x101488, 0x0000024 + +gUnk_081014AC:: @ 081014AC + .incbin "baserom.gba", 0x1014AC, 0x0000024 + +gUnk_081014D0:: @ 081014D0 + .incbin "baserom.gba", 0x1014D0, 0x000000C + +gUnk_081014DC:: @ 081014DC + .incbin "baserom.gba", 0x1014DC, 0x0000024 + +gUnk_08101500:: @ 08101500 + .incbin "baserom.gba", 0x101500, 0x000000F + +gUnk_0810150F:: @ 0810150F + .incbin "baserom.gba", 0x10150F, 0x0000005 + +gUnk_08101514:: @ 08101514 + .incbin "baserom.gba", 0x101514, 0x0000002 + +gUnk_08101516:: @ 08101516 + .incbin "baserom.gba", 0x101516, 0x0000001 + +gUnk_08101517:: @ 08101517 + .incbin "baserom.gba", 0x101517, 0x000000D + +gUnk_08101524:: @ 08101524 + .incbin "baserom.gba", 0x101524, 0x0000003 + +gUnk_08101527:: @ 08101527 + .incbin "baserom.gba", 0x101527, 0x0000021 + +gUnk_08101548:: @ 08101548 + .incbin "baserom.gba", 0x101548, 0x000000C + +gUnk_08101554:: @ 08101554 + .incbin "baserom.gba", 0x101554, 0x0000018 + +gUnk_0810156C:: @ 0810156C + .incbin "baserom.gba", 0x10156C, 0x0000018 + +gUnk_08101584:: @ 08101584 + .incbin "baserom.gba", 0x101584, 0x0000018 + +gUnk_0810159C:: @ 0810159C + .incbin "baserom.gba", 0x10159C, 0x0000018 + +gUnk_081015B4:: @ 081015B4 + .incbin "baserom.gba", 0x1015B4, 0x0000018 + +gUnk_081015CC:: @ 081015CC + .incbin "baserom.gba", 0x1015CC, 0x0000018 + +gUnk_081015E4:: @ 081015E4 + .incbin "baserom.gba", 0x1015E4, 0x0000018 + +gUnk_081015FC:: @ 081015FC + .incbin "baserom.gba", 0x1015FC, 0x000000D + +gUnk_08101609:: @ 08101609 + .incbin "baserom.gba", 0x101609, 0x000000B + +gUnk_08101614:: @ 08101614 + .incbin "baserom.gba", 0x101614, 0x0000003 + +gUnk_08101617:: @ 08101617 + .incbin "baserom.gba", 0x101617, 0x0000002 + +gUnk_08101619:: @ 08101619 + .incbin "baserom.gba", 0x101619, 0x0000001 + +gUnk_0810161A:: @ 0810161A + .incbin "baserom.gba", 0x10161A, 0x0000002 + +gUnk_0810161C:: @ 0810161C + .incbin "baserom.gba", 0x10161C, 0x0000010 + +gUnk_0810162C:: @ 0810162C + .incbin "baserom.gba", 0x10162C, 0x0000018 + +gUnk_08101644:: @ 08101644 + .incbin "baserom.gba", 0x101644, 0x0000018 + +gUnk_0810165C:: @ 0810165C + .incbin "baserom.gba", 0x10165C, 0x0000018 + +gUnk_08101674:: @ 08101674 + .incbin "baserom.gba", 0x101674, 0x0000018 + +gUnk_0810168C:: @ 0810168C + .incbin "baserom.gba", 0x10168C, 0x0000018 + +gUnk_081016A4:: @ 081016A4 + .incbin "baserom.gba", 0x1016A4, 0x0000018 + +gUnk_081016BC:: @ 081016BC + .incbin "baserom.gba", 0x1016BC, 0x0000018 + +gUnk_081016D4:: @ 081016D4 + .incbin "baserom.gba", 0x1016D4, 0x0000018 + +gUnk_081016EC:: @ 081016EC + .incbin "baserom.gba", 0x1016EC, 0x0000018 + +gUnk_08101704:: @ 08101704 + .incbin "baserom.gba", 0x101704, 0x0000013 + +gUnk_08101717:: @ 08101717 + .incbin "baserom.gba", 0x101717, 0x0000001 + +gUnk_08101718:: @ 08101718 + .incbin "baserom.gba", 0x101718, 0x0000004 + +gUnk_0810171C:: @ 0810171C + .incbin "baserom.gba", 0x10171C, 0x0000001 + +gUnk_0810171D:: @ 0810171D + .incbin "baserom.gba", 0x10171D, 0x0000002 + +gUnk_0810171F:: @ 0810171F + .incbin "baserom.gba", 0x10171F, 0x0000005 + +gUnk_08101724:: @ 08101724 + .incbin "baserom.gba", 0x101724, 0x0000005 + +gUnk_08101729:: @ 08101729 + .incbin "baserom.gba", 0x101729, 0x000000B + +gUnk_08101734:: @ 08101734 + .incbin "baserom.gba", 0x101734, 0x0000006 + +gUnk_0810173A:: @ 0810173A + .incbin "baserom.gba", 0x10173A, 0x000004A + +gUnk_08101784:: @ 08101784 + .incbin "baserom.gba", 0x101784, 0x0000018 + +gUnk_0810179C:: @ 0810179C + .incbin "baserom.gba", 0x10179C, 0x0000018 + +gUnk_081017B4:: @ 081017B4 + .incbin "baserom.gba", 0x1017B4, 0x0000018 + +gUnk_081017CC:: @ 081017CC + .incbin "baserom.gba", 0x1017CC, 0x0000018 + +gUnk_081017E4:: @ 081017E4 + .incbin "baserom.gba", 0x1017E4, 0x0000018 + +gUnk_081017FC:: @ 081017FC + .incbin "baserom.gba", 0x1017FC, 0x0000014 + +gUnk_08101810:: @ 08101810 + .incbin "baserom.gba", 0x101810, 0x0000003 + +gUnk_08101813:: @ 08101813 + .incbin "baserom.gba", 0x101813, 0x0000001 + +gUnk_08101814:: @ 08101814 + .incbin "baserom.gba", 0x101814, 0x0000006 + +gUnk_0810181A:: @ 0810181A + .incbin "baserom.gba", 0x10181A, 0x0000002 + +gUnk_0810181C:: @ 0810181C + .incbin "baserom.gba", 0x10181C, 0x0000002 + +gUnk_0810181E:: @ 0810181E + .incbin "baserom.gba", 0x10181E, 0x0000001 + +gUnk_0810181F:: @ 0810181F + .incbin "baserom.gba", 0x10181F, 0x0000003 + +gUnk_08101822:: @ 08101822 + .incbin "baserom.gba", 0x101822, 0x0000003 + +gUnk_08101825:: @ 08101825 + .incbin "baserom.gba", 0x101825, 0x0000006 + +gUnk_0810182B:: @ 0810182B + .incbin "baserom.gba", 0x10182B, 0x0000001 + +gUnk_0810182C:: @ 0810182C + .incbin "baserom.gba", 0x10182C, 0x0000018 + +gUnk_08101844:: @ 08101844 + .incbin "baserom.gba", 0x101844, 0x0000018 + +gUnk_0810185C:: @ 0810185C + .incbin "baserom.gba", 0x10185C, 0x0000024 + +gUnk_08101880:: @ 08101880 + .incbin "baserom.gba", 0x101880, 0x0000030 + +gUnk_081018B0:: @ 081018B0 + .incbin "baserom.gba", 0x1018B0, 0x0000004 + +gUnk_081018B4:: @ 081018B4 + .incbin "baserom.gba", 0x1018B4, 0x0000030 + +gUnk_081018E4:: @ 081018E4 + .incbin "baserom.gba", 0x1018E4, 0x000001F + +gUnk_08101903:: @ 08101903 + .incbin "baserom.gba", 0x101903, 0x0000011 + +gUnk_08101914:: @ 08101914 + .incbin "baserom.gba", 0x101914, 0x0000009 + +gUnk_0810191D:: @ 0810191D + .incbin "baserom.gba", 0x10191D, 0x0000004 + +gUnk_08101921:: @ 08101921 + .incbin "baserom.gba", 0x101921, 0x0000002 + +gUnk_08101923:: @ 08101923 + .incbin "baserom.gba", 0x101923, 0x0000001 + +gUnk_08101924:: @ 08101924 + .incbin "baserom.gba", 0x101924, 0x0000020 + +gUnk_08101944:: @ 08101944 + .incbin "baserom.gba", 0x101944, 0x000000C + +gUnk_08101950:: @ 08101950 + .incbin "baserom.gba", 0x101950, 0x0000030 + +gUnk_08101980:: @ 08101980 + .incbin "baserom.gba", 0x101980, 0x0000004 + +gUnk_08101984:: @ 08101984 + .incbin "baserom.gba", 0x101984, 0x0000030 + +gUnk_081019B4:: @ 081019B4 + .incbin "baserom.gba", 0x1019B4, 0x0000004 + +gUnk_081019B8:: @ 081019B8 + .incbin "baserom.gba", 0x1019B8, 0x0000030 + +gUnk_081019E8:: @ 081019E8 + .incbin "baserom.gba", 0x1019E8, 0x0000004 + +gUnk_081019EC:: @ 081019EC + .incbin "baserom.gba", 0x1019EC, 0x0000013 + +gUnk_081019FF:: @ 081019FF + .incbin "baserom.gba", 0x1019FF, 0x000000B + +gUnk_08101A0A:: @ 08101A0A + .incbin "baserom.gba", 0x101A0A, 0x000000F + +gUnk_08101A19:: @ 08101A19 + .incbin "baserom.gba", 0x101A19, 0x0000002 + +gUnk_08101A1B:: @ 08101A1B + .incbin "baserom.gba", 0x101A1B, 0x0000001 + +gUnk_08101A1C:: @ 08101A1C + .incbin "baserom.gba", 0x101A1C, 0x0000006 + +gUnk_08101A22:: @ 08101A22 + .incbin "baserom.gba", 0x101A22, 0x0000002 + +gUnk_08101A24:: @ 08101A24 + .incbin "baserom.gba", 0x101A24, 0x0000001 + +gUnk_08101A25:: @ 08101A25 + .incbin "baserom.gba", 0x101A25, 0x0000027 + +gUnk_08101A4C:: @ 08101A4C + .incbin "baserom.gba", 0x101A4C, 0x0000030 + +gUnk_08101A7C:: @ 08101A7C + .incbin "baserom.gba", 0x101A7C, 0x0000030 + +gUnk_08101AAC:: @ 08101AAC + .incbin "baserom.gba", 0x101AAC, 0x0000030 + +gUnk_08101ADC:: @ 08101ADC + .incbin "baserom.gba", 0x101ADC, 0x0000024 + +gUnk_08101B00:: @ 08101B00 + .incbin "baserom.gba", 0x101B00, 0x000000C + +gUnk_08101B0C:: @ 08101B0C + .incbin "baserom.gba", 0x101B0C, 0x0000018 + +gUnk_08101B24:: @ 08101B24 + .incbin "baserom.gba", 0x101B24, 0x0000030 + +gUnk_08101B54:: @ 08101B54 + .incbin "baserom.gba", 0x101B54, 0x0000030 + +gUnk_08101B84:: @ 08101B84 + .incbin "baserom.gba", 0x101B84, 0x0000030 + +gUnk_08101BB4:: @ 08101BB4 + .incbin "baserom.gba", 0x101BB4, 0x0000030 + +gUnk_08101BE4:: @ 08101BE4 + .incbin "baserom.gba", 0x101BE4, 0x0000030 + +gUnk_08101C14:: @ 08101C14 + .incbin "baserom.gba", 0x101C14, 0x0000001 + +gUnk_08101C15:: @ 08101C15 + .incbin "baserom.gba", 0x101C15, 0x0000013 + +gUnk_08101C28:: @ 08101C28 + .incbin "baserom.gba", 0x101C28, 0x0000030 + +gUnk_08101C58:: @ 08101C58 + .incbin "baserom.gba", 0x101C58, 0x0000004 + +gUnk_08101C5C:: @ 08101C5C + .incbin "baserom.gba", 0x101C5C, 0x0000030 + +gUnk_08101C8C:: @ 08101C8C + .incbin "baserom.gba", 0x101C8C, 0x0000004 + +gUnk_08101C90:: @ 08101C90 + .incbin "baserom.gba", 0x101C90, 0x0000030 + +gUnk_08101CC0:: @ 08101CC0 + .incbin "baserom.gba", 0x101CC0, 0x0000004 + +gUnk_08101CC4:: @ 08101CC4 + .incbin "baserom.gba", 0x101CC4, 0x0000005 + +gUnk_08101CC9:: @ 08101CC9 + .incbin "baserom.gba", 0x101CC9, 0x000002B + +gUnk_08101CF4:: @ 08101CF4 + .incbin "baserom.gba", 0x101CF4, 0x0000004 + +gUnk_08101CF8:: @ 08101CF8 + .incbin "baserom.gba", 0x101CF8, 0x0000008 + +gUnk_08101D00:: @ 08101D00 + .incbin "baserom.gba", 0x101D00, 0x0000027 + +gUnk_08101D27:: @ 08101D27 + .incbin "baserom.gba", 0x101D27, 0x0000001 + +gUnk_08101D28:: @ 08101D28 + .incbin "baserom.gba", 0x101D28, 0x0000004 + +gUnk_08101D2C:: @ 08101D2C + .incbin "baserom.gba", 0x101D2C, 0x0000030 + +gUnk_08101D5C:: @ 08101D5C + .incbin "baserom.gba", 0x101D5C, 0x0000004 + +gUnk_08101D60:: @ 08101D60 + .incbin "baserom.gba", 0x101D60, 0x0000030 + +gUnk_08101D90:: @ 08101D90 + .incbin "baserom.gba", 0x101D90, 0x0000004 + +gUnk_08101D94:: @ 08101D94 + .incbin "baserom.gba", 0x101D94, 0x0000030 + +gUnk_08101DC4:: @ 08101DC4 + .incbin "baserom.gba", 0x101DC4, 0x0000004 + +gUnk_08101DC8:: @ 08101DC8 + .incbin "baserom.gba", 0x101DC8, 0x0000030 + +gUnk_08101DF8:: @ 08101DF8 + .incbin "baserom.gba", 0x101DF8, 0x0000004 + +gUnk_08101DFC:: @ 08101DFC + .incbin "baserom.gba", 0x101DFC, 0x000002D + +gUnk_08101E29:: @ 08101E29 + .incbin "baserom.gba", 0x101E29, 0x0000003 + +gUnk_08101E2C:: @ 08101E2C + .incbin "baserom.gba", 0x101E2C, 0x0000004 + +gUnk_08101E30:: @ 08101E30 + .incbin "baserom.gba", 0x101E30, 0x0000030 + +gUnk_08101E60:: @ 08101E60 + .incbin "baserom.gba", 0x101E60, 0x0000004 + +gUnk_08101E64:: @ 08101E64 + .incbin "baserom.gba", 0x101E64, 0x0000030 + +gUnk_08101E94:: @ 08101E94 + .incbin "baserom.gba", 0x101E94, 0x0000004 + +gUnk_08101E98:: @ 08101E98 + .incbin "baserom.gba", 0x101E98, 0x0000030 + +gUnk_08101EC8:: @ 08101EC8 + .incbin "baserom.gba", 0x101EC8, 0x0000004 + +gUnk_08101ECC:: @ 08101ECC + .incbin "baserom.gba", 0x101ECC, 0x0000030 + +gUnk_08101EFC:: @ 08101EFC + .incbin "baserom.gba", 0x101EFC, 0x0000004 + +gUnk_08101F00:: @ 08101F00 + .incbin "baserom.gba", 0x101F00, 0x0000020 + +gUnk_08101F20:: @ 08101F20 + .incbin "baserom.gba", 0x101F20, 0x0000010 + +gUnk_08101F30:: @ 08101F30 + .incbin "baserom.gba", 0x101F30, 0x0000004 + +gUnk_08101F34:: @ 08101F34 + .incbin "baserom.gba", 0x101F34, 0x000003C + +gUnk_08101F70:: @ 08101F70 + .incbin "baserom.gba", 0x101F70, 0x0000004 + +gUnk_08101F74:: @ 08101F74 + .incbin "baserom.gba", 0x101F74, 0x0000021 + +gUnk_08101F95:: @ 08101F95 + .incbin "baserom.gba", 0x101F95, 0x000000F + +gUnk_08101FA4:: @ 08101FA4 + .incbin "baserom.gba", 0x101FA4, 0x0000004 + +gUnk_08101FA8:: @ 08101FA8 + .incbin "baserom.gba", 0x101FA8, 0x0000030 + +gUnk_08101FD8:: @ 08101FD8 + .incbin "baserom.gba", 0x101FD8, 0x0000004 + +gUnk_08101FDC:: @ 08101FDC + .incbin "baserom.gba", 0x101FDC, 0x0000030 + +gUnk_0810200C:: @ 0810200C + .incbin "baserom.gba", 0x10200C, 0x0000004 + +gUnk_08102010:: @ 08102010 + .incbin "baserom.gba", 0x102010, 0x000002D + +gUnk_0810203D:: @ 0810203D + .incbin "baserom.gba", 0x10203D, 0x0000003 + +gUnk_08102040:: @ 08102040 + .incbin "baserom.gba", 0x102040, 0x0000004 + +gUnk_08102044:: @ 08102044 + .incbin "baserom.gba", 0x102044, 0x0000030 + +gUnk_08102074:: @ 08102074 + .incbin "baserom.gba", 0x102074, 0x0000004 + +gUnk_08102078:: @ 08102078 + .incbin "baserom.gba", 0x102078, 0x0000030 + +gUnk_081020A8:: @ 081020A8 + .incbin "baserom.gba", 0x1020A8, 0x0000004 + +gUnk_081020AC:: @ 081020AC + .incbin "baserom.gba", 0x1020AC, 0x0000028 + +gUnk_081020D4:: @ 081020D4 + .incbin "baserom.gba", 0x1020D4, 0x0000008 + +gUnk_081020DC:: @ 081020DC + .incbin "baserom.gba", 0x1020DC, 0x0000004 + +gUnk_081020E0:: @ 081020E0 + .incbin "baserom.gba", 0x1020E0, 0x0000021 + +gUnk_08102101:: @ 08102101 + .incbin "baserom.gba", 0x102101, 0x000000F + +gUnk_08102110:: @ 08102110 + .incbin "baserom.gba", 0x102110, 0x0000004 + +gUnk_08102114:: @ 08102114 + .incbin "baserom.gba", 0x102114, 0x0000036 + +gUnk_0810214A:: @ 0810214A + .incbin "baserom.gba", 0x10214A, 0x0000006 + +gUnk_08102150:: @ 08102150 + .incbin "baserom.gba", 0x102150, 0x0000004 + +gUnk_08102154:: @ 08102154 + .incbin "baserom.gba", 0x102154, 0x0000030 + +gUnk_08102184:: @ 08102184 + .incbin "baserom.gba", 0x102184, 0x0000004 + +gUnk_08102188:: @ 08102188 + .incbin "baserom.gba", 0x102188, 0x0000030 + +gUnk_081021B8:: @ 081021B8 + .incbin "baserom.gba", 0x1021B8, 0x0000004 + +gUnk_081021BC:: @ 081021BC + .incbin "baserom.gba", 0x1021BC, 0x0000030 + +gUnk_081021EC:: @ 081021EC + .incbin "baserom.gba", 0x1021EC, 0x0000004 + +gUnk_081021F0:: @ 081021F0 + .incbin "baserom.gba", 0x1021F0, 0x0000030 + +gUnk_08102220:: @ 08102220 + .incbin "baserom.gba", 0x102220, 0x0000004 + +gUnk_08102224:: @ 08102224 + .incbin "baserom.gba", 0x102224, 0x0000014 + +gUnk_08102238:: @ 08102238 + .incbin "baserom.gba", 0x102238, 0x000001C + +gUnk_08102254:: @ 08102254 + .incbin "baserom.gba", 0x102254, 0x0000004 + +gUnk_08102258:: @ 08102258 + .incbin "baserom.gba", 0x102258, 0x0000030 + +gUnk_08102288:: @ 08102288 + .incbin "baserom.gba", 0x102288, 0x0000004 + +gUnk_0810228C:: @ 0810228C + .incbin "baserom.gba", 0x10228C, 0x0000030 + +gUnk_081022BC:: @ 081022BC + .incbin "baserom.gba", 0x1022BC, 0x0000004 + +gUnk_081022C0:: @ 081022C0 + .incbin "baserom.gba", 0x1022C0, 0x0000030 + +gUnk_081022F0:: @ 081022F0 + .incbin "baserom.gba", 0x1022F0, 0x0000004 + +gUnk_081022F4:: @ 081022F4 + .incbin "baserom.gba", 0x1022F4, 0x0000021 + +gUnk_08102315:: @ 08102315 + .incbin "baserom.gba", 0x102315, 0x000000B + +gUnk_08102320:: @ 08102320 + .incbin "baserom.gba", 0x102320, 0x0000004 + +gUnk_08102324:: @ 08102324 + .incbin "baserom.gba", 0x102324, 0x0000004 + +gUnk_08102328:: @ 08102328 + .incbin "baserom.gba", 0x102328, 0x000003C + +gUnk_08102364:: @ 08102364 + .incbin "baserom.gba", 0x102364, 0x0000004 + +gUnk_08102368:: @ 08102368 + .incbin "baserom.gba", 0x102368, 0x000001C + +gUnk_08102384:: @ 08102384 + .incbin "baserom.gba", 0x102384, 0x0000014 + +gUnk_08102398:: @ 08102398 + .incbin "baserom.gba", 0x102398, 0x0000004 + +gUnk_0810239C:: @ 0810239C + .incbin "baserom.gba", 0x10239C, 0x0000030 + +gUnk_081023CC:: @ 081023CC + .incbin "baserom.gba", 0x1023CC, 0x0000004 + +gUnk_081023D0:: @ 081023D0 + .incbin "baserom.gba", 0x1023D0, 0x0000030 + +gUnk_08102400:: @ 08102400 + .incbin "baserom.gba", 0x102400, 0x0000004 + +gUnk_08102404:: @ 08102404 + .incbin "baserom.gba", 0x102404, 0x0000004 + +gUnk_08102408:: @ 08102408 + .incbin "baserom.gba", 0x102408, 0x000000A + +gUnk_08102412:: @ 08102412 + .incbin "baserom.gba", 0x102412, 0x0000022 + +gUnk_08102434:: @ 08102434 + .incbin "baserom.gba", 0x102434, 0x0000004 + +gUnk_08102438:: @ 08102438 + .incbin "baserom.gba", 0x102438, 0x0000019 + +gUnk_08102451:: @ 08102451 + .incbin "baserom.gba", 0x102451, 0x0000017 + +gUnk_08102468:: @ 08102468 + .incbin "baserom.gba", 0x102468, 0x0000004 + +gUnk_0810246C:: @ 0810246C + .incbin "baserom.gba", 0x10246C, 0x0000048 + +gUnk_081024B4:: @ 081024B4 + .incbin "baserom.gba", 0x1024B4, 0x0000083 + +gUnk_08102537:: @ 08102537 + .incbin "baserom.gba", 0x102537, 0x00000D9 + +gUnk_08102610:: @ 08102610 + .incbin "baserom.gba", 0x102610, 0x000009C + +gUnk_081026AC:: @ 081026AC + .incbin "baserom.gba", 0x1026AC, 0x0000030 + +gUnk_081026DC:: @ 081026DC + .incbin "baserom.gba", 0x1026DC, 0x0000028 + +gUnk_08102704:: @ 08102704 + .incbin "baserom.gba", 0x102704, 0x0000008 + +gUnk_0810270C:: @ 0810270C + .incbin "baserom.gba", 0x10270C, 0x0000004 + +gUnk_08102710:: @ 08102710 + .incbin "baserom.gba", 0x102710, 0x0000023 + +gUnk_08102733:: @ 08102733 + .incbin "baserom.gba", 0x102733, 0x0000009 + +gUnk_0810273C:: @ 0810273C + .incbin "baserom.gba", 0x10273C, 0x000001B + +gUnk_08102757:: @ 08102757 + .incbin "baserom.gba", 0x102757, 0x0000015 + +gUnk_0810276C:: @ 0810276C + .incbin "baserom.gba", 0x10276C, 0x0000030 + +gUnk_0810279C:: @ 0810279C + .incbin "baserom.gba", 0x10279C, 0x0000030 + +gUnk_081027CC:: @ 081027CC + .incbin "baserom.gba", 0x1027CC, 0x0000030 + +gUnk_081027FC:: @ 081027FC + .incbin "baserom.gba", 0x1027FC, 0x0000030 + +gUnk_0810282C:: @ 0810282C + .incbin "baserom.gba", 0x10282C, 0x000000C + +gUnk_08102838:: @ 08102838 + .incbin "baserom.gba", 0x102838, 0x0000012 + +gUnk_0810284A:: @ 0810284A + .incbin "baserom.gba", 0x10284A, 0x0000012 + +gUnk_0810285C:: @ 0810285C + .incbin "baserom.gba", 0x10285C, 0x0000018 + +gUnk_08102874:: @ 08102874 + .incbin "baserom.gba", 0x102874, 0x0000030 + +gUnk_081028A4:: @ 081028A4 + .incbin "baserom.gba", 0x1028A4, 0x0000030 + +gUnk_081028D4:: @ 081028D4 + .incbin "baserom.gba", 0x1028D4, 0x0000030 + +gUnk_08102904:: @ 08102904 + .incbin "baserom.gba", 0x102904, 0x0000012 + +gUnk_08102916:: @ 08102916 + .incbin "baserom.gba", 0x102916, 0x000001E + +gUnk_08102934:: @ 08102934 + .incbin "baserom.gba", 0x102934, 0x0000018 + +gUnk_0810294C:: @ 0810294C + .incbin "baserom.gba", 0x10294C, 0x0000018 + +gUnk_08102964:: @ 08102964 + .incbin "baserom.gba", 0x102964, 0x0000030 + +gUnk_08102994:: @ 08102994 + .incbin "baserom.gba", 0x102994, 0x0000030 + +gUnk_081029C4:: @ 081029C4 + .incbin "baserom.gba", 0x1029C4, 0x0000030 + +gUnk_081029F4:: @ 081029F4 + .incbin "baserom.gba", 0x1029F4, 0x000001C + +gUnk_08102A10:: @ 08102A10 + .incbin "baserom.gba", 0x102A10, 0x0000014 + +gUnk_08102A24:: @ 08102A24 + .incbin "baserom.gba", 0x102A24, 0x0000030 + +gUnk_08102A54:: @ 08102A54 + .incbin "baserom.gba", 0x102A54, 0x0000030 + +gUnk_08102A84:: @ 08102A84 + .incbin "baserom.gba", 0x102A84, 0x0000030 + +gUnk_08102AB4:: @ 08102AB4 + .incbin "baserom.gba", 0x102AB4, 0x0000030 + +gUnk_08102AE4:: @ 08102AE4 + .incbin "baserom.gba", 0x102AE4, 0x000002C + +gUnk_08102B10:: @ 08102B10 + .incbin "baserom.gba", 0x102B10, 0x0000004 + +gUnk_08102B14:: @ 08102B14 + .incbin "baserom.gba", 0x102B14, 0x0000030 + +gUnk_08102B44:: @ 08102B44 + .incbin "baserom.gba", 0x102B44, 0x0000030 + +gUnk_08102B74:: @ 08102B74 + .incbin "baserom.gba", 0x102B74, 0x0000030 + +gUnk_08102BA4:: @ 08102BA4 + .incbin "baserom.gba", 0x102BA4, 0x0000030 + +gUnk_08102BD4:: @ 08102BD4 + .incbin "baserom.gba", 0x102BD4, 0x0000030 + +gUnk_08102C04:: @ 08102C04 + .incbin "baserom.gba", 0x102C04, 0x0000030 + +gUnk_08102C34:: @ 08102C34 + .incbin "baserom.gba", 0x102C34, 0x000000D + +gUnk_08102C41:: @ 08102C41 + .incbin "baserom.gba", 0x102C41, 0x0000023 + +gUnk_08102C64:: @ 08102C64 + .incbin "baserom.gba", 0x102C64, 0x0000030 + +gUnk_08102C94:: @ 08102C94 + .incbin "baserom.gba", 0x102C94, 0x0000030 + +gUnk_08102CC4:: @ 08102CC4 + .incbin "baserom.gba", 0x102CC4, 0x0000030 + +gUnk_08102CF4:: @ 08102CF4 + .incbin "baserom.gba", 0x102CF4, 0x0000030 + +gUnk_08102D24:: @ 08102D24 + .incbin "baserom.gba", 0x102D24, 0x0000030 + +gUnk_08102D54:: @ 08102D54 + .incbin "baserom.gba", 0x102D54, 0x0000030 + +gUnk_08102D84:: @ 08102D84 + .incbin "baserom.gba", 0x102D84, 0x0000030 + +gUnk_08102DB4:: @ 08102DB4 + .incbin "baserom.gba", 0x102DB4, 0x0000030 + +gUnk_08102DE4:: @ 08102DE4 + .incbin "baserom.gba", 0x102DE4, 0x0000030 + +gUnk_08102E14:: @ 08102E14 + .incbin "baserom.gba", 0x102E14, 0x0000030 + +gUnk_08102E44:: @ 08102E44 + .incbin "baserom.gba", 0x102E44, 0x0000030 + +gUnk_08102E74:: @ 08102E74 + .incbin "baserom.gba", 0x102E74, 0x0000030 + +gUnk_08102EA4:: @ 08102EA4 + .incbin "baserom.gba", 0x102EA4, 0x0000030 + +gUnk_08102ED4:: @ 08102ED4 + .incbin "baserom.gba", 0x102ED4, 0x0000018 + +gUnk_08102EEC:: @ 08102EEC + .incbin "baserom.gba", 0x102EEC, 0x0000025 + +gUnk_08102F11:: @ 08102F11 + .incbin "baserom.gba", 0x102F11, 0x000000B + +gUnk_08102F1C:: @ 08102F1C + .incbin "baserom.gba", 0x102F1C, 0x0000030 + +gUnk_08102F4C:: @ 08102F4C + .incbin "baserom.gba", 0x102F4C, 0x0000030 + +gUnk_08102F7C:: @ 08102F7C + .incbin "baserom.gba", 0x102F7C, 0x0000030 + +gUnk_08102FAC:: @ 08102FAC + .incbin "baserom.gba", 0x102FAC, 0x0000030 + +gUnk_08102FDC:: @ 08102FDC + .incbin "baserom.gba", 0x102FDC, 0x0000030 + +gUnk_0810300C:: @ 0810300C + .incbin "baserom.gba", 0x10300C, 0x0000030 + +gUnk_0810303C:: @ 0810303C + .incbin "baserom.gba", 0x10303C, 0x0000030 + +gUnk_0810306C:: @ 0810306C + .incbin "baserom.gba", 0x10306C, 0x0000030 + +gUnk_0810309C:: @ 0810309C + .incbin "baserom.gba", 0x10309C, 0x0000068 + +gUnk_08103104:: @ 08103104 + .incbin "baserom.gba", 0x103104, 0x000000C + +gUnk_08103110:: @ 08103110 + .incbin "baserom.gba", 0x103110, 0x00000E5 + +gUnk_081031F5:: @ 081031F5 + .incbin "baserom.gba", 0x1031F5, 0x00000E7 + +gUnk_081032DC:: @ 081032DC + .incbin "baserom.gba", 0x1032DC, 0x0000018 + +gUnk_081032F4:: @ 081032F4 + .incbin "baserom.gba", 0x1032F4, 0x0000004 + +gUnk_081032F8:: @ 081032F8 + .incbin "baserom.gba", 0x1032F8, 0x0000018 + +gUnk_08103310:: @ 08103310 + .incbin "baserom.gba", 0x103310, 0x0000018 + +gUnk_08103328:: @ 08103328 + .incbin "baserom.gba", 0x103328, 0x0000008 + +gUnk_08103330:: @ 08103330 + .incbin "baserom.gba", 0x103330, 0x0000018 + +gUnk_08103348:: @ 08103348 + .incbin "baserom.gba", 0x103348, 0x0000004 + +gUnk_0810334C:: @ 0810334C + .incbin "baserom.gba", 0x10334C, 0x0000018 + +gUnk_08103364:: @ 08103364 + .incbin "baserom.gba", 0x103364, 0x0000016 + +gUnk_0810337A:: @ 0810337A + .incbin "baserom.gba", 0x10337A, 0x0000002 + +gUnk_0810337C:: @ 0810337C + .incbin "baserom.gba", 0x10337C, 0x0000018 + +gUnk_08103394:: @ 08103394 + .incbin "baserom.gba", 0x103394, 0x0000018 + +gUnk_081033AC:: @ 081033AC + .incbin "baserom.gba", 0x1033AC, 0x0000018 + +gUnk_081033C4:: @ 081033C4 + .incbin "baserom.gba", 0x1033C4, 0x0000018 + +gUnk_081033DC:: @ 081033DC + .incbin "baserom.gba", 0x1033DC, 0x0000018 + +gUnk_081033F4:: @ 081033F4 + .incbin "baserom.gba", 0x1033F4, 0x0000018 + +gUnk_0810340C:: @ 0810340C + .incbin "baserom.gba", 0x10340C, 0x0000004 + +gUnk_08103410:: @ 08103410 + .incbin "baserom.gba", 0x103410, 0x0000018 + +gUnk_08103428:: @ 08103428 + .incbin "baserom.gba", 0x103428, 0x0000004 + +gUnk_0810342C:: @ 0810342C + .incbin "baserom.gba", 0x10342C, 0x0000017 + +gUnk_08103443:: @ 08103443 + .incbin "baserom.gba", 0x103443, 0x0000001 + +gUnk_08103444:: @ 08103444 + .incbin "baserom.gba", 0x103444, 0x0000018 + +gUnk_0810345C:: @ 0810345C + .incbin "baserom.gba", 0x10345C, 0x0000018 + +gUnk_08103474:: @ 08103474 + .incbin "baserom.gba", 0x103474, 0x0000018 + +gUnk_0810348C:: @ 0810348C + .incbin "baserom.gba", 0x10348C, 0x0000018 + +gUnk_081034A4:: @ 081034A4 + .incbin "baserom.gba", 0x1034A4, 0x0000014 + +gUnk_081034B8:: @ 081034B8 + .incbin "baserom.gba", 0x1034B8, 0x0000018 + +gUnk_081034D0:: @ 081034D0 + .incbin "baserom.gba", 0x1034D0, 0x000003C + +gUnk_0810350C:: @ 0810350C + .incbin "baserom.gba", 0x10350C, 0x0000018 + +gUnk_08103524:: @ 08103524 + .incbin "baserom.gba", 0x103524, 0x0000031 + +gUnk_08103555:: @ 08103555 + .incbin "baserom.gba", 0x103555, 0x000000B + +gUnk_08103560:: @ 08103560 + .incbin "baserom.gba", 0x103560, 0x000003C + +gUnk_0810359C:: @ 0810359C + .incbin "baserom.gba", 0x10359C, 0x000003C + +gUnk_081035D8:: @ 081035D8 + .incbin "baserom.gba", 0x1035D8, 0x000003C + +gUnk_08103614:: @ 08103614 + .incbin "baserom.gba", 0x103614, 0x000003C + +gUnk_08103650:: @ 08103650 + .incbin "baserom.gba", 0x103650, 0x0000018 + +gUnk_08103668:: @ 08103668 + .incbin "baserom.gba", 0x103668, 0x0000018 + +gUnk_08103680:: @ 08103680 + .incbin "baserom.gba", 0x103680, 0x0000028 + +gUnk_081036A8:: @ 081036A8 + .incbin "baserom.gba", 0x1036A8, 0x0000018 + +gUnk_081036C0:: @ 081036C0 + .incbin "baserom.gba", 0x1036C0, 0x0000004 + +gUnk_081036C4:: @ 081036C4 + .incbin "baserom.gba", 0x1036C4, 0x0000018 + +gUnk_081036DC:: @ 081036DC + .incbin "baserom.gba", 0x1036DC, 0x0000018 + +gUnk_081036F4:: @ 081036F4 + .incbin "baserom.gba", 0x1036F4, 0x0000018 + +gUnk_0810370C:: @ 0810370C + .incbin "baserom.gba", 0x10370C, 0x000000C + +gUnk_08103718:: @ 08103718 + .incbin "baserom.gba", 0x103718, 0x0000018 + +gUnk_08103730:: @ 08103730 + .incbin "baserom.gba", 0x103730, 0x0000003 + +gUnk_08103733:: @ 08103733 + .incbin "baserom.gba", 0x103733, 0x0000015 + +gUnk_08103748:: @ 08103748 + .incbin "baserom.gba", 0x103748, 0x0000008 + +gUnk_08103750:: @ 08103750 + .incbin "baserom.gba", 0x103750, 0x0000015 + +gUnk_08103765:: @ 08103765 + .incbin "baserom.gba", 0x103765, 0x0000003 + +gUnk_08103768:: @ 08103768 + .incbin "baserom.gba", 0x103768, 0x0000004 + +gUnk_0810376C:: @ 0810376C + .incbin "baserom.gba", 0x10376C, 0x0000018 + +gUnk_08103784:: @ 08103784 + .incbin "baserom.gba", 0x103784, 0x0000004 + +gUnk_08103788:: @ 08103788 + .incbin "baserom.gba", 0x103788, 0x000000C + +gUnk_08103794:: @ 08103794 + .incbin "baserom.gba", 0x103794, 0x000000C + +gUnk_081037A0:: @ 081037A0 + .incbin "baserom.gba", 0x1037A0, 0x000000C + +gUnk_081037AC:: @ 081037AC + .incbin "baserom.gba", 0x1037AC, 0x000000C + +gUnk_081037B8:: @ 081037B8 + .incbin "baserom.gba", 0x1037B8, 0x000000C + +gUnk_081037C4:: @ 081037C4 + .incbin "baserom.gba", 0x1037C4, 0x0000018 + +gUnk_081037DC:: @ 081037DC + .incbin "baserom.gba", 0x1037DC, 0x0000080 + +gUnk_0810385C:: @ 0810385C + .incbin "baserom.gba", 0x10385C, 0x0000018 + +gUnk_08103874:: @ 08103874 + .incbin "baserom.gba", 0x103874, 0x0000018 + +gUnk_0810388C:: @ 0810388C + .incbin "baserom.gba", 0x10388C, 0x0000018 + +gUnk_081038A4:: @ 081038A4 + .incbin "baserom.gba", 0x1038A4, 0x0000018 + +gUnk_081038BC:: @ 081038BC + .incbin "baserom.gba", 0x1038BC, 0x0000018 + +gUnk_081038D4:: @ 081038D4 + .incbin "baserom.gba", 0x1038D4, 0x0000018 + +gUnk_081038EC:: @ 081038EC + .incbin "baserom.gba", 0x1038EC, 0x0000018 + +gUnk_08103904:: @ 08103904 + .incbin "baserom.gba", 0x103904, 0x000000C + +gUnk_08103910:: @ 08103910 + .incbin "baserom.gba", 0x103910, 0x000000C + +gUnk_0810391C:: @ 0810391C + .incbin "baserom.gba", 0x10391C, 0x0000018 + +gUnk_08103934:: @ 08103934 + .incbin "baserom.gba", 0x103934, 0x0000018 + +gUnk_0810394C:: @ 0810394C + .incbin "baserom.gba", 0x10394C, 0x0000018 + +gUnk_08103964:: @ 08103964 + .incbin "baserom.gba", 0x103964, 0x0000018 + +gUnk_0810397C:: @ 0810397C + .incbin "baserom.gba", 0x10397C, 0x0000018 + +gUnk_08103994:: @ 08103994 + .incbin "baserom.gba", 0x103994, 0x0000018 + +gUnk_081039AC:: @ 081039AC + .incbin "baserom.gba", 0x1039AC, 0x0000018 + +gUnk_081039C4:: @ 081039C4 + .incbin "baserom.gba", 0x1039C4, 0x0000018 + +gUnk_081039DC:: @ 081039DC + .incbin "baserom.gba", 0x1039DC, 0x0000018 + +gUnk_081039F4:: @ 081039F4 + .incbin "baserom.gba", 0x1039F4, 0x000000C + +gUnk_08103A00:: @ 08103A00 + .incbin "baserom.gba", 0x103A00, 0x0000010 + +gUnk_08103A10:: @ 08103A10 + .incbin "baserom.gba", 0x103A10, 0x0000028 + +gUnk_08103A38:: @ 08103A38 + .incbin "baserom.gba", 0x103A38, 0x0000018 + +gUnk_08103A50:: @ 08103A50 + .incbin "baserom.gba", 0x103A50, 0x0000018 + +gUnk_08103A68:: @ 08103A68 + .incbin "baserom.gba", 0x103A68, 0x0000018 + +gUnk_08103A80:: @ 08103A80 + .incbin "baserom.gba", 0x103A80, 0x0000020 + +gUnk_08103AA0:: @ 08103AA0 + .incbin "baserom.gba", 0x103AA0, 0x0000018 + +gUnk_08103AB8:: @ 08103AB8 + .incbin "baserom.gba", 0x103AB8, 0x0000004 + +gUnk_08103ABC:: @ 08103ABC + .incbin "baserom.gba", 0x103ABC, 0x0000018 + +gUnk_08103AD4:: @ 08103AD4 + .incbin "baserom.gba", 0x103AD4, 0x0000004 + +gUnk_08103AD8:: @ 08103AD8 + .incbin "baserom.gba", 0x103AD8, 0x0000018 + +gUnk_08103AF0:: @ 08103AF0 + .incbin "baserom.gba", 0x103AF0, 0x0000018 + +gUnk_08103B08:: @ 08103B08 + .incbin "baserom.gba", 0x103B08, 0x0000008 + +gUnk_08103B10:: @ 08103B10 + .incbin "baserom.gba", 0x103B10, 0x0000008 + +gUnk_08103B18:: @ 08103B18 + .incbin "baserom.gba", 0x103B18, 0x0000018 + +gUnk_08103B30:: @ 08103B30 + .incbin "baserom.gba", 0x103B30, 0x0000004 + +gUnk_08103B34:: @ 08103B34 + .incbin "baserom.gba", 0x103B34, 0x0000018 + +gUnk_08103B4C:: @ 08103B4C + .incbin "baserom.gba", 0x103B4C, 0x0000004 + +gUnk_08103B50:: @ 08103B50 + .incbin "baserom.gba", 0x103B50, 0x0000018 + +gUnk_08103B68:: @ 08103B68 + .incbin "baserom.gba", 0x103B68, 0x0000004 + +gUnk_08103B6C:: @ 08103B6C + .incbin "baserom.gba", 0x103B6C, 0x0000018 + +gUnk_08103B84:: @ 08103B84 + .incbin "baserom.gba", 0x103B84, 0x0000018 + +gUnk_08103B9C:: @ 08103B9C + .incbin "baserom.gba", 0x103B9C, 0x0000018 + +gUnk_08103BB4:: @ 08103BB4 + .incbin "baserom.gba", 0x103BB4, 0x0000018 + +gUnk_08103BCC:: @ 08103BCC + .incbin "baserom.gba", 0x103BCC, 0x0000018 + +gUnk_08103BE4:: @ 08103BE4 + .incbin "baserom.gba", 0x103BE4, 0x0000014 + +gUnk_08103BF8:: @ 08103BF8 + .incbin "baserom.gba", 0x103BF8, 0x0000009 + +gUnk_08103C01:: @ 08103C01 + .incbin "baserom.gba", 0x103C01, 0x000000F + +gUnk_08103C10:: @ 08103C10 + .incbin "baserom.gba", 0x103C10, 0x0000018 + +gUnk_08103C28:: @ 08103C28 + .incbin "baserom.gba", 0x103C28, 0x0000008 + +gUnk_08103C30:: @ 08103C30 + .incbin "baserom.gba", 0x103C30, 0x0000018 + +gUnk_08103C48:: @ 08103C48 + .incbin "baserom.gba", 0x103C48, 0x0000008 + +gUnk_08103C50:: @ 08103C50 + .incbin "baserom.gba", 0x103C50, 0x0000018 + +gUnk_08103C68:: @ 08103C68 + .incbin "baserom.gba", 0x103C68, 0x0000018 + +gUnk_08103C80:: @ 08103C80 + .incbin "baserom.gba", 0x103C80, 0x0000008 + +gUnk_08103C88:: @ 08103C88 + .incbin "baserom.gba", 0x103C88, 0x0000018 + +gUnk_08103CA0:: @ 08103CA0 + .incbin "baserom.gba", 0x103CA0, 0x0000004 + +gUnk_08103CA4:: @ 08103CA4 + .incbin "baserom.gba", 0x103CA4, 0x000000C + +gUnk_08103CB0:: @ 08103CB0 + .incbin "baserom.gba", 0x103CB0, 0x000000C + +gUnk_08103CBC:: @ 08103CBC + .incbin "baserom.gba", 0x103CBC, 0x000000C + +gUnk_08103CC8:: @ 08103CC8 + .incbin "baserom.gba", 0x103CC8, 0x000000C + +gUnk_08103CD4:: @ 08103CD4 + .incbin "baserom.gba", 0x103CD4, 0x000000C + +gUnk_08103CE0:: @ 08103CE0 + .incbin "baserom.gba", 0x103CE0, 0x0000014 + +gUnk_08103CF4:: @ 08103CF4 + .incbin "baserom.gba", 0x103CF4, 0x000000C + +gUnk_08103D00:: @ 08103D00 + .incbin "baserom.gba", 0x103D00, 0x000000C + +gUnk_08103D0C:: @ 08103D0C + .incbin "baserom.gba", 0x103D0C, 0x000000C + +gUnk_08103D18:: @ 08103D18 + .incbin "baserom.gba", 0x103D18, 0x000000C + +gUnk_08103D24:: @ 08103D24 + .incbin "baserom.gba", 0x103D24, 0x0000010 + +gUnk_08103D34:: @ 08103D34 + .incbin "baserom.gba", 0x103D34, 0x0000024 + +gUnk_08103D58:: @ 08103D58 + .incbin "baserom.gba", 0x103D58, 0x0000024 + +gUnk_08103D7C:: @ 08103D7C + .incbin "baserom.gba", 0x103D7C, 0x0000024 + +gUnk_08103DA0:: @ 08103DA0 + .incbin "baserom.gba", 0x103DA0, 0x0000024 + +gUnk_08103DC4:: @ 08103DC4 + .incbin "baserom.gba", 0x103DC4, 0x0000024 + +gUnk_08103DE8:: @ 08103DE8 + .incbin "baserom.gba", 0x103DE8, 0x0000024 + +gUnk_08103E0C:: @ 08103E0C + .incbin "baserom.gba", 0x103E0C, 0x0000024 + +gUnk_08103E30:: @ 08103E30 + .incbin "baserom.gba", 0x103E30, 0x0000024 + +gUnk_08103E54:: @ 08103E54 + .incbin "baserom.gba", 0x103E54, 0x0000024 + +gUnk_08103E78:: @ 08103E78 + .incbin "baserom.gba", 0x103E78, 0x0000024 + +gUnk_08103E9C:: @ 08103E9C + .incbin "baserom.gba", 0x103E9C, 0x0000024 + +gUnk_08103EC0:: @ 08103EC0 + .incbin "baserom.gba", 0x103EC0, 0x0000024 + +gUnk_08103EE4:: @ 08103EE4 + .incbin "baserom.gba", 0x103EE4, 0x0000024 + +gUnk_08103F08:: @ 08103F08 + .incbin "baserom.gba", 0x103F08, 0x0000024 + +gUnk_08103F2C:: @ 08103F2C + .incbin "baserom.gba", 0x103F2C, 0x0000024 + +gUnk_08103F50:: @ 08103F50 + .incbin "baserom.gba", 0x103F50, 0x0000024 + +gUnk_08103F74:: @ 08103F74 + .incbin "baserom.gba", 0x103F74, 0x0000024 + +gUnk_08103F98:: @ 08103F98 + .incbin "baserom.gba", 0x103F98, 0x0000024 + +gUnk_08103FBC:: @ 08103FBC + .incbin "baserom.gba", 0x103FBC, 0x0000024 + +gUnk_08103FE0:: @ 08103FE0 + .incbin "baserom.gba", 0x103FE0, 0x0000024 + +gUnk_08104004:: @ 08104004 + .incbin "baserom.gba", 0x104004, 0x000001C + +gUnk_08104020:: @ 08104020 + .incbin "baserom.gba", 0x104020, 0x0000008 + +gUnk_08104028:: @ 08104028 + .incbin "baserom.gba", 0x104028, 0x00000A0 + +gUnk_081040C8:: @ 081040C8 + .incbin "baserom.gba", 0x1040C8, 0x0000024 + +gUnk_081040EC:: @ 081040EC + .incbin "baserom.gba", 0x1040EC, 0x0000024 + +gUnk_08104110:: @ 08104110 + .incbin "baserom.gba", 0x104110, 0x0000024 + +gUnk_08104134:: @ 08104134 + .incbin "baserom.gba", 0x104134, 0x0000024 + +gUnk_08104158:: @ 08104158 + .incbin "baserom.gba", 0x104158, 0x0000024 + +gUnk_0810417C:: @ 0810417C + .incbin "baserom.gba", 0x10417C, 0x0000024 + +gUnk_081041A0:: @ 081041A0 + .incbin "baserom.gba", 0x1041A0, 0x0000024 + +gUnk_081041C4:: @ 081041C4 + .incbin "baserom.gba", 0x1041C4, 0x0000024 + +gUnk_081041E8:: @ 081041E8 + .incbin "baserom.gba", 0x1041E8, 0x0000018 + +gUnk_08104200:: @ 08104200 + .incbin "baserom.gba", 0x104200, 0x000000C + +gUnk_0810420C:: @ 0810420C + .incbin "baserom.gba", 0x10420C, 0x0000004 + +gUnk_08104210:: @ 08104210 + .incbin "baserom.gba", 0x104210, 0x00000BC + +gUnk_081042CC:: @ 081042CC + .incbin "baserom.gba", 0x1042CC, 0x0000018 + +gUnk_081042E4:: @ 081042E4 + .incbin "baserom.gba", 0x1042E4, 0x0000018 + +gUnk_081042FC:: @ 081042FC + .incbin "baserom.gba", 0x1042FC, 0x0000014 + +gUnk_08104310:: @ 08104310 + .incbin "baserom.gba", 0x104310, 0x0000004 + +gUnk_08104314:: @ 08104314 + .incbin "baserom.gba", 0x104314, 0x000000D + +gUnk_08104321:: @ 08104321 + .incbin "baserom.gba", 0x104321, 0x000000B + +gUnk_0810432C:: @ 0810432C + .incbin "baserom.gba", 0x10432C, 0x0000018 + +gUnk_08104344:: @ 08104344 + .incbin "baserom.gba", 0x104344, 0x0000018 + +gUnk_0810435C:: @ 0810435C + .incbin "baserom.gba", 0x10435C, 0x0000018 + +gUnk_08104374:: @ 08104374 + .incbin "baserom.gba", 0x104374, 0x0000018 + +gUnk_0810438C:: @ 0810438C + .incbin "baserom.gba", 0x10438C, 0x0000018 + +gUnk_081043A4:: @ 081043A4 + .incbin "baserom.gba", 0x1043A4, 0x0000018 + +gUnk_081043BC:: @ 081043BC + .incbin "baserom.gba", 0x1043BC, 0x0000018 + +gUnk_081043D4:: @ 081043D4 + .incbin "baserom.gba", 0x1043D4, 0x0000018 + +gUnk_081043EC:: @ 081043EC + .incbin "baserom.gba", 0x1043EC, 0x0000018 + +gUnk_08104404:: @ 08104404 + .incbin "baserom.gba", 0x104404, 0x0000040 + +gUnk_08104444:: @ 08104444 + .incbin "baserom.gba", 0x104444, 0x0000018 + +gUnk_0810445C:: @ 0810445C + .incbin "baserom.gba", 0x10445C, 0x0000018 + +gUnk_08104474:: @ 08104474 + .incbin "baserom.gba", 0x104474, 0x0000018 + +gUnk_0810448C:: @ 0810448C + .incbin "baserom.gba", 0x10448C, 0x0000018 + +gUnk_081044A4:: @ 081044A4 + .incbin "baserom.gba", 0x1044A4, 0x0000018 + +gUnk_081044BC:: @ 081044BC + .incbin "baserom.gba", 0x1044BC, 0x0000018 + +gUnk_081044D4:: @ 081044D4 + .incbin "baserom.gba", 0x1044D4, 0x0000018 + +gUnk_081044EC:: @ 081044EC + .incbin "baserom.gba", 0x1044EC, 0x0000018 + +gUnk_08104504:: @ 08104504 + .incbin "baserom.gba", 0x104504, 0x0000018 + +gUnk_0810451C:: @ 0810451C + .incbin "baserom.gba", 0x10451C, 0x0000018 + +gUnk_08104534:: @ 08104534 + .incbin "baserom.gba", 0x104534, 0x0000018 + +gUnk_0810454C:: @ 0810454C + .incbin "baserom.gba", 0x10454C, 0x0000018 + +gUnk_08104564:: @ 08104564 + .incbin "baserom.gba", 0x104564, 0x0000018 + +gUnk_0810457C:: @ 0810457C + .incbin "baserom.gba", 0x10457C, 0x0000018 + +gUnk_08104594:: @ 08104594 + .incbin "baserom.gba", 0x104594, 0x0000018 + +gUnk_081045AC:: @ 081045AC + .incbin "baserom.gba", 0x1045AC, 0x0000018 + +gUnk_081045C4:: @ 081045C4 + .incbin "baserom.gba", 0x1045C4, 0x0000018 + +gUnk_081045DC:: @ 081045DC + .incbin "baserom.gba", 0x1045DC, 0x0000018 + +gUnk_081045F4:: @ 081045F4 + .incbin "baserom.gba", 0x1045F4, 0x0000018 + +gUnk_0810460C:: @ 0810460C + .incbin "baserom.gba", 0x10460C, 0x00000C0 + +gUnk_081046CC:: @ 081046CC + .incbin "baserom.gba", 0x1046CC, 0x0000018 + +gUnk_081046E4:: @ 081046E4 + .incbin "baserom.gba", 0x1046E4, 0x0000018 + +gUnk_081046FC:: @ 081046FC + .incbin "baserom.gba", 0x1046FC, 0x0000018 + +gUnk_08104714:: @ 08104714 + .incbin "baserom.gba", 0x104714, 0x0000018 + +gUnk_0810472C:: @ 0810472C + .incbin "baserom.gba", 0x10472C, 0x0000018 + +gUnk_08104744:: @ 08104744 + .incbin "baserom.gba", 0x104744, 0x0000018 + +gUnk_0810475C:: @ 0810475C + .incbin "baserom.gba", 0x10475C, 0x0000040 + +gUnk_0810479C:: @ 0810479C + .incbin "baserom.gba", 0x10479C, 0x0000018 + +gUnk_081047B4:: @ 081047B4 + .incbin "baserom.gba", 0x1047B4, 0x0000018 + +gUnk_081047CC:: @ 081047CC + .incbin "baserom.gba", 0x1047CC, 0x0000018 + +gUnk_081047E4:: @ 081047E4 + .incbin "baserom.gba", 0x1047E4, 0x0000018 + +gUnk_081047FC:: @ 081047FC + .incbin "baserom.gba", 0x1047FC, 0x0000018 + +gUnk_08104814:: @ 08104814 + .incbin "baserom.gba", 0x104814, 0x0000018 + +gUnk_0810482C:: @ 0810482C + .incbin "baserom.gba", 0x10482C, 0x0000018 + +gUnk_08104844:: @ 08104844 + .incbin "baserom.gba", 0x104844, 0x0000018 + +gUnk_0810485C:: @ 0810485C + .incbin "baserom.gba", 0x10485C, 0x0000018 + +gUnk_08104874:: @ 08104874 + .incbin "baserom.gba", 0x104874, 0x0000024 + +gUnk_08104898:: @ 08104898 + .incbin "baserom.gba", 0x104898, 0x0000018 + +gUnk_081048B0:: @ 081048B0 + .incbin "baserom.gba", 0x1048B0, 0x0000018 + +gUnk_081048C8:: @ 081048C8 + .incbin "baserom.gba", 0x1048C8, 0x0000018 + +gUnk_081048E0:: @ 081048E0 + .incbin "baserom.gba", 0x1048E0, 0x0000018 + +gUnk_081048F8:: @ 081048F8 + .incbin "baserom.gba", 0x1048F8, 0x0000018 + +gUnk_08104910:: @ 08104910 + .incbin "baserom.gba", 0x104910, 0x0000018 + +gUnk_08104928:: @ 08104928 + .incbin "baserom.gba", 0x104928, 0x000000A + +gUnk_08104932:: @ 08104932 + .incbin "baserom.gba", 0x104932, 0x000000E + +gUnk_08104940:: @ 08104940 + .incbin "baserom.gba", 0x104940, 0x0000018 + +gUnk_08104958:: @ 08104958 + .incbin "baserom.gba", 0x104958, 0x0000018 + +gUnk_08104970:: @ 08104970 + .incbin "baserom.gba", 0x104970, 0x0000018 + +gUnk_08104988:: @ 08104988 + .incbin "baserom.gba", 0x104988, 0x0000018 + +gUnk_081049A0:: @ 081049A0 + .incbin "baserom.gba", 0x1049A0, 0x0000018 + +gUnk_081049B8:: @ 081049B8 + .incbin "baserom.gba", 0x1049B8, 0x0000018 + +gUnk_081049D0:: @ 081049D0 + .incbin "baserom.gba", 0x1049D0, 0x0000018 + +gUnk_081049E8:: @ 081049E8 + .incbin "baserom.gba", 0x1049E8, 0x0000018 + +gUnk_08104A00:: @ 08104A00 + .incbin "baserom.gba", 0x104A00, 0x0000010 + +gUnk_08104A10:: @ 08104A10 + .incbin "baserom.gba", 0x104A10, 0x0000008 + +gUnk_08104A18:: @ 08104A18 + .incbin "baserom.gba", 0x104A18, 0x000000D + +gUnk_08104A25:: @ 08104A25 + .incbin "baserom.gba", 0x104A25, 0x000000B + +gUnk_08104A30:: @ 08104A30 + .incbin "baserom.gba", 0x104A30, 0x0000080 + +gUnk_08104AB0:: @ 08104AB0 + .incbin "baserom.gba", 0x104AB0, 0x0000018 + +gUnk_08104AC8:: @ 08104AC8 + .incbin "baserom.gba", 0x104AC8, 0x0000018 + +gUnk_08104AE0:: @ 08104AE0 + .incbin "baserom.gba", 0x104AE0, 0x0000018 + +gUnk_08104AF8:: @ 08104AF8 + .incbin "baserom.gba", 0x104AF8, 0x000000B + +gUnk_08104B03:: @ 08104B03 + .incbin "baserom.gba", 0x104B03, 0x000000D + +gUnk_08104B10:: @ 08104B10 + .incbin "baserom.gba", 0x104B10, 0x0000018 + +gUnk_08104B28:: @ 08104B28 + .incbin "baserom.gba", 0x104B28, 0x0000018 + +gUnk_08104B40:: @ 08104B40 + .incbin "baserom.gba", 0x104B40, 0x0000018 + +gUnk_08104B58:: @ 08104B58 + .incbin "baserom.gba", 0x104B58, 0x0000018 + +gUnk_08104B70:: @ 08104B70 + .incbin "baserom.gba", 0x104B70, 0x0000018 + +gUnk_08104B88:: @ 08104B88 + .incbin "baserom.gba", 0x104B88, 0x0000018 + +gUnk_08104BA0:: @ 08104BA0 + .incbin "baserom.gba", 0x104BA0, 0x0000018 + +gUnk_08104BB8:: @ 08104BB8 + .incbin "baserom.gba", 0x104BB8, 0x0000018 + +gUnk_08104BD0:: @ 08104BD0 + .incbin "baserom.gba", 0x104BD0, 0x0000018 + +gUnk_08104BE8:: @ 08104BE8 + .incbin "baserom.gba", 0x104BE8, 0x0000018 + +gUnk_08104C00:: @ 08104C00 + .incbin "baserom.gba", 0x104C00, 0x0000040 + +gUnk_08104C40:: @ 08104C40 + .incbin "baserom.gba", 0x104C40, 0x0000018 + +gUnk_08104C58:: @ 08104C58 + .incbin "baserom.gba", 0x104C58, 0x0000018 + +gUnk_08104C70:: @ 08104C70 + .incbin "baserom.gba", 0x104C70, 0x0000018 + +gUnk_08104C88:: @ 08104C88 + .incbin "baserom.gba", 0x104C88, 0x0000018 + +gUnk_08104CA0:: @ 08104CA0 + .incbin "baserom.gba", 0x104CA0, 0x0000018 + +gUnk_08104CB8:: @ 08104CB8 + .incbin "baserom.gba", 0x104CB8, 0x0000018 + +gUnk_08104CD0:: @ 08104CD0 + .incbin "baserom.gba", 0x104CD0, 0x0000018 + +gUnk_08104CE8:: @ 08104CE8 + .incbin "baserom.gba", 0x104CE8, 0x0000018 + +gUnk_08104D00:: @ 08104D00 + .incbin "baserom.gba", 0x104D00, 0x0000018 + +gUnk_08104D18:: @ 08104D18 + .incbin "baserom.gba", 0x104D18, 0x0000018 + +gUnk_08104D30:: @ 08104D30 + .incbin "baserom.gba", 0x104D30, 0x0000018 + +gUnk_08104D48:: @ 08104D48 + .incbin "baserom.gba", 0x104D48, 0x0000018 + +gUnk_08104D60:: @ 08104D60 + .incbin "baserom.gba", 0x104D60, 0x0000018 + +gUnk_08104D78:: @ 08104D78 + .incbin "baserom.gba", 0x104D78, 0x0000018 + +gUnk_08104D90:: @ 08104D90 + .incbin "baserom.gba", 0x104D90, 0x0000018 + +gUnk_08104DA8:: @ 08104DA8 + .incbin "baserom.gba", 0x104DA8, 0x0000018 + +gUnk_08104DC0:: @ 08104DC0 + .incbin "baserom.gba", 0x104DC0, 0x0000018 + +gUnk_08104DD8:: @ 08104DD8 + .incbin "baserom.gba", 0x104DD8, 0x0000018 + +gUnk_08104DF0:: @ 08104DF0 + .incbin "baserom.gba", 0x104DF0, 0x0000048 + +gUnk_08104E38:: @ 08104E38 + .incbin "baserom.gba", 0x104E38, 0x0000018 + +gUnk_08104E50:: @ 08104E50 + .incbin "baserom.gba", 0x104E50, 0x0000018 + +gUnk_08104E68:: @ 08104E68 + .incbin "baserom.gba", 0x104E68, 0x0000018 + +gUnk_08104E80:: @ 08104E80 + .incbin "baserom.gba", 0x104E80, 0x0000018 + +gUnk_08104E98:: @ 08104E98 + .incbin "baserom.gba", 0x104E98, 0x0000018 + +gUnk_08104EB0:: @ 08104EB0 + .incbin "baserom.gba", 0x104EB0, 0x0000018 + +gUnk_08104EC8:: @ 08104EC8 + .incbin "baserom.gba", 0x104EC8, 0x0000018 + +gUnk_08104EE0:: @ 08104EE0 + .incbin "baserom.gba", 0x104EE0, 0x0000018 + +gUnk_08104EF8:: @ 08104EF8 + .incbin "baserom.gba", 0x104EF8, 0x0000018 + +gUnk_08104F10:: @ 08104F10 + .incbin "baserom.gba", 0x104F10, 0x0000018 + +gUnk_08104F28:: @ 08104F28 + .incbin "baserom.gba", 0x104F28, 0x0000018 + +gUnk_08104F40:: @ 08104F40 + .incbin "baserom.gba", 0x104F40, 0x000002C + +gUnk_08104F6C:: @ 08104F6C + .incbin "baserom.gba", 0x104F6C, 0x000000C + +gUnk_08104F78:: @ 08104F78 + .incbin "baserom.gba", 0x104F78, 0x000000C + +gUnk_08104F84:: @ 08104F84 + .incbin "baserom.gba", 0x104F84, 0x000000C + +gUnk_08104F90:: @ 08104F90 + .incbin "baserom.gba", 0x104F90, 0x000000C + +gUnk_08104F9C:: @ 08104F9C + .incbin "baserom.gba", 0x104F9C, 0x0000010 + +gUnk_08104FAC:: @ 08104FAC + .incbin "baserom.gba", 0x104FAC, 0x0000018 + +gUnk_08104FC4:: @ 08104FC4 + .incbin "baserom.gba", 0x104FC4, 0x0000018 + +gUnk_08104FDC:: @ 08104FDC + .incbin "baserom.gba", 0x104FDC, 0x0000008 + +gUnk_08104FE4:: @ 08104FE4 + .incbin "baserom.gba", 0x104FE4, 0x0000018 + +gUnk_08104FFC:: @ 08104FFC + .incbin "baserom.gba", 0x104FFC, 0x0000018 + +gUnk_08105014:: @ 08105014 + .incbin "baserom.gba", 0x105014, 0x0000018 + +gUnk_0810502C:: @ 0810502C + .incbin "baserom.gba", 0x10502C, 0x0000018 + +gUnk_08105044:: @ 08105044 + .incbin "baserom.gba", 0x105044, 0x0000010 + +gUnk_08105054:: @ 08105054 + .incbin "baserom.gba", 0x105054, 0x0000018 + +gUnk_0810506C:: @ 0810506C + .incbin "baserom.gba", 0x10506C, 0x0000004 + +gUnk_08105070:: @ 08105070 + .incbin "baserom.gba", 0x105070, 0x0000018 + +gUnk_08105088:: @ 08105088 + .incbin "baserom.gba", 0x105088, 0x0000018 + +gUnk_081050A0:: @ 081050A0 + .incbin "baserom.gba", 0x1050A0, 0x0000018 + +gUnk_081050B8:: @ 081050B8 + .incbin "baserom.gba", 0x1050B8, 0x0000018 + +gUnk_081050D0:: @ 081050D0 + .incbin "baserom.gba", 0x1050D0, 0x0000018 + +gUnk_081050E8:: @ 081050E8 + .incbin "baserom.gba", 0x1050E8, 0x0000018 + +gUnk_08105100:: @ 08105100 + .incbin "baserom.gba", 0x105100, 0x0000018 + +gUnk_08105118:: @ 08105118 + .incbin "baserom.gba", 0x105118, 0x0000018 + +gUnk_08105130:: @ 08105130 + .incbin "baserom.gba", 0x105130, 0x0000010 + +gUnk_08105140:: @ 08105140 + .incbin "baserom.gba", 0x105140, 0x0000008 + +gUnk_08105148:: @ 08105148 + .incbin "baserom.gba", 0x105148, 0x0000018 + +gUnk_08105160:: @ 08105160 + .incbin "baserom.gba", 0x105160, 0x0000028 + +gUnk_08105188:: @ 08105188 + .incbin "baserom.gba", 0x105188, 0x0000018 + +gUnk_081051A0:: @ 081051A0 + .incbin "baserom.gba", 0x1051A0, 0x0000018 + +gUnk_081051B8:: @ 081051B8 + .incbin "baserom.gba", 0x1051B8, 0x0000008 + +gUnk_081051C0:: @ 081051C0 + .incbin "baserom.gba", 0x1051C0, 0x0000018 + +gUnk_081051D8:: @ 081051D8 + .incbin "baserom.gba", 0x1051D8, 0x0000018 + +gUnk_081051F0:: @ 081051F0 + .incbin "baserom.gba", 0x1051F0, 0x0000008 + +gUnk_081051F8:: @ 081051F8 + .incbin "baserom.gba", 0x1051F8, 0x000000E + +gUnk_08105206:: @ 08105206 + .incbin "baserom.gba", 0x105206, 0x000000A + +gUnk_08105210:: @ 08105210 + .incbin "baserom.gba", 0x105210, 0x0000004 + +gUnk_08105214:: @ 08105214 + .incbin "baserom.gba", 0x105214, 0x0000018 + +gUnk_0810522C:: @ 0810522C + .incbin "baserom.gba", 0x10522C, 0x0000018 + +gUnk_08105244:: @ 08105244 + .incbin "baserom.gba", 0x105244, 0x0000008 + +gUnk_0810524C:: @ 0810524C + .incbin "baserom.gba", 0x10524C, 0x0000018 + +gUnk_08105264:: @ 08105264 + .incbin "baserom.gba", 0x105264, 0x0000018 + +gUnk_0810527C:: @ 0810527C + .incbin "baserom.gba", 0x10527C, 0x0000008 + +gUnk_08105284:: @ 08105284 + .incbin "baserom.gba", 0x105284, 0x0000018 + +gUnk_0810529C:: @ 0810529C + .incbin "baserom.gba", 0x10529C, 0x0000018 + +gUnk_081052B4:: @ 081052B4 + .incbin "baserom.gba", 0x1052B4, 0x0000008 + +gUnk_081052BC:: @ 081052BC + .incbin "baserom.gba", 0x1052BC, 0x0000018 + +gUnk_081052D4:: @ 081052D4 + .incbin "baserom.gba", 0x1052D4, 0x0000004 + +gUnk_081052D8:: @ 081052D8 + .incbin "baserom.gba", 0x1052D8, 0x0000018 + +gUnk_081052F0:: @ 081052F0 + .incbin "baserom.gba", 0x1052F0, 0x0000018 + +gUnk_08105308:: @ 08105308 + .incbin "baserom.gba", 0x105308, 0x0000018 + +gUnk_08105320:: @ 08105320 + .incbin "baserom.gba", 0x105320, 0x0000018 + +gUnk_08105338:: @ 08105338 + .incbin "baserom.gba", 0x105338, 0x0000018 + +gUnk_08105350:: @ 08105350 + .incbin "baserom.gba", 0x105350, 0x0000018 + +gUnk_08105368:: @ 08105368 + .incbin "baserom.gba", 0x105368, 0x0000018 + +gUnk_08105380:: @ 08105380 + .incbin "baserom.gba", 0x105380, 0x0000018 + +gUnk_08105398:: @ 08105398 + .incbin "baserom.gba", 0x105398, 0x0000018 + +gUnk_081053B0:: @ 081053B0 + .incbin "baserom.gba", 0x1053B0, 0x0000024 + +gUnk_081053D4:: @ 081053D4 + .incbin "baserom.gba", 0x1053D4, 0x0000018 + +gUnk_081053EC:: @ 081053EC + .incbin "baserom.gba", 0x1053EC, 0x0000018 + +gUnk_08105404:: @ 08105404 + .incbin "baserom.gba", 0x105404, 0x0000018 + +gUnk_0810541C:: @ 0810541C + .incbin "baserom.gba", 0x10541C, 0x0000018 + +gUnk_08105434:: @ 08105434 + .incbin "baserom.gba", 0x105434, 0x0000018 + +gUnk_0810544C:: @ 0810544C + .incbin "baserom.gba", 0x10544C, 0x0000018 + +gUnk_08105464:: @ 08105464 + .incbin "baserom.gba", 0x105464, 0x0000018 + +gUnk_0810547C:: @ 0810547C + .incbin "baserom.gba", 0x10547C, 0x0000018 + +gUnk_08105494:: @ 08105494 + .incbin "baserom.gba", 0x105494, 0x0000018 + +gUnk_081054AC:: @ 081054AC + .incbin "baserom.gba", 0x1054AC, 0x0000018 + +gUnk_081054C4:: @ 081054C4 + .incbin "baserom.gba", 0x1054C4, 0x0000018 + +gUnk_081054DC:: @ 081054DC + .incbin "baserom.gba", 0x1054DC, 0x0000018 + +gUnk_081054F4:: @ 081054F4 + .incbin "baserom.gba", 0x1054F4, 0x0000018 + +gUnk_0810550C:: @ 0810550C + .incbin "baserom.gba", 0x10550C, 0x0000018 + +gUnk_08105524:: @ 08105524 + .incbin "baserom.gba", 0x105524, 0x0000018 + +gUnk_0810553C:: @ 0810553C + .incbin "baserom.gba", 0x10553C, 0x0000018 + +gUnk_08105554:: @ 08105554 + .incbin "baserom.gba", 0x105554, 0x0000018 + +gUnk_0810556C:: @ 0810556C + .incbin "baserom.gba", 0x10556C, 0x0000018 + +gUnk_08105584:: @ 08105584 + .incbin "baserom.gba", 0x105584, 0x0000018 + +gUnk_0810559C:: @ 0810559C + .incbin "baserom.gba", 0x10559C, 0x0000018 + +gUnk_081055B4:: @ 081055B4 + .incbin "baserom.gba", 0x1055B4, 0x0000018 + +gUnk_081055CC:: @ 081055CC + .incbin "baserom.gba", 0x1055CC, 0x0000018 + +gUnk_081055E4:: @ 081055E4 + .incbin "baserom.gba", 0x1055E4, 0x000001C + +gUnk_08105600:: @ 08105600 + .incbin "baserom.gba", 0x105600, 0x0000019 + +gUnk_08105619:: @ 08105619 + .incbin "baserom.gba", 0x105619, 0x000004F + +gUnk_08105668:: @ 08105668 + .incbin "baserom.gba", 0x105668, 0x0000004 + +gUnk_0810566C:: @ 0810566C + .incbin "baserom.gba", 0x10566C, 0x0000004 + +gUnk_08105670:: @ 08105670 + .incbin "baserom.gba", 0x105670, 0x0000018 + +gUnk_08105688:: @ 08105688 + .incbin "baserom.gba", 0x105688, 0x0000018 + +gUnk_081056A0:: @ 081056A0 + .incbin "baserom.gba", 0x1056A0, 0x0000018 + +gUnk_081056B8:: @ 081056B8 + .incbin "baserom.gba", 0x1056B8, 0x0000018 + +gUnk_081056D0:: @ 081056D0 + .incbin "baserom.gba", 0x1056D0, 0x0000018 + +gUnk_081056E8:: @ 081056E8 + .incbin "baserom.gba", 0x1056E8, 0x0000018 + +gUnk_08105700:: @ 08105700 + .incbin "baserom.gba", 0x105700, 0x0000010 + +gUnk_08105710:: @ 08105710 + .incbin "baserom.gba", 0x105710, 0x0000008 + +gUnk_08105718:: @ 08105718 + .incbin "baserom.gba", 0x105718, 0x0000018 + +gUnk_08105730:: @ 08105730 + .incbin "baserom.gba", 0x105730, 0x0000018 + +gUnk_08105748:: @ 08105748 + .incbin "baserom.gba", 0x105748, 0x0000018 + +gUnk_08105760:: @ 08105760 + .incbin "baserom.gba", 0x105760, 0x0000018 + +gUnk_08105778:: @ 08105778 + .incbin "baserom.gba", 0x105778, 0x0000018 + +gUnk_08105790:: @ 08105790 + .incbin "baserom.gba", 0x105790, 0x0000018 + +gUnk_081057A8:: @ 081057A8 + .incbin "baserom.gba", 0x1057A8, 0x0000018 + +gUnk_081057C0:: @ 081057C0 + .incbin "baserom.gba", 0x1057C0, 0x0000018 + +gUnk_081057D8:: @ 081057D8 + .incbin "baserom.gba", 0x1057D8, 0x0000018 + +gUnk_081057F0:: @ 081057F0 + .incbin "baserom.gba", 0x1057F0, 0x0000018 + +gUnk_08105808:: @ 08105808 + .incbin "baserom.gba", 0x105808, 0x0000018 + +gUnk_08105820:: @ 08105820 + .incbin "baserom.gba", 0x105820, 0x0000060 + +gUnk_08105880:: @ 08105880 + .incbin "baserom.gba", 0x105880, 0x0000018 + +gUnk_08105898:: @ 08105898 + .incbin "baserom.gba", 0x105898, 0x0000004 + +gUnk_0810589C:: @ 0810589C + .incbin "baserom.gba", 0x10589C, 0x0000018 + +gUnk_081058B4:: @ 081058B4 + .incbin "baserom.gba", 0x1058B4, 0x0000018 + +gUnk_081058CC:: @ 081058CC + .incbin "baserom.gba", 0x1058CC, 0x0000018 + +gUnk_081058E4:: @ 081058E4 + .incbin "baserom.gba", 0x1058E4, 0x0000018 + +gUnk_081058FC:: @ 081058FC + .incbin "baserom.gba", 0x1058FC, 0x000000E + +gUnk_0810590A:: @ 0810590A + .incbin "baserom.gba", 0x10590A, 0x000000A + +gUnk_08105914:: @ 08105914 + .incbin "baserom.gba", 0x105914, 0x0000018 + +gUnk_0810592C:: @ 0810592C + .incbin "baserom.gba", 0x10592C, 0x0000018 + +gUnk_08105944:: @ 08105944 + .incbin "baserom.gba", 0x105944, 0x0000018 + +gUnk_0810595C:: @ 0810595C + .incbin "baserom.gba", 0x10595C, 0x0000018 + +gUnk_08105974:: @ 08105974 + .incbin "baserom.gba", 0x105974, 0x0000018 + +gUnk_0810598C:: @ 0810598C + .incbin "baserom.gba", 0x10598C, 0x0000018 + +gUnk_081059A4:: @ 081059A4 + .incbin "baserom.gba", 0x1059A4, 0x0000018 + +gUnk_081059BC:: @ 081059BC + .incbin "baserom.gba", 0x1059BC, 0x0000018 + +gUnk_081059D4:: @ 081059D4 + .incbin "baserom.gba", 0x1059D4, 0x0000018 + +gUnk_081059EC:: @ 081059EC + .incbin "baserom.gba", 0x1059EC, 0x0000018 + +gUnk_08105A04:: @ 08105A04 + .incbin "baserom.gba", 0x105A04, 0x0000018 + +gUnk_08105A1C:: @ 08105A1C + .incbin "baserom.gba", 0x105A1C, 0x0000018 + +gUnk_08105A34:: @ 08105A34 + .incbin "baserom.gba", 0x105A34, 0x000000D + +gUnk_08105A41:: @ 08105A41 + .incbin "baserom.gba", 0x105A41, 0x000000B + +gUnk_08105A4C:: @ 08105A4C + .incbin "baserom.gba", 0x105A4C, 0x0000018 + +gUnk_08105A64:: @ 08105A64 + .incbin "baserom.gba", 0x105A64, 0x0000018 + +gUnk_08105A7C:: @ 08105A7C + .incbin "baserom.gba", 0x105A7C, 0x0000018 + +gUnk_08105A94:: @ 08105A94 + .incbin "baserom.gba", 0x105A94, 0x0000018 + +gUnk_08105AAC:: @ 08105AAC + .incbin "baserom.gba", 0x105AAC, 0x0000018 + +gUnk_08105AC4:: @ 08105AC4 + .incbin "baserom.gba", 0x105AC4, 0x0000018 + +gUnk_08105ADC:: @ 08105ADC + .incbin "baserom.gba", 0x105ADC, 0x0000034 + +gUnk_08105B10:: @ 08105B10 + .incbin "baserom.gba", 0x105B10, 0x0000060 + +gUnk_08105B70:: @ 08105B70 + .incbin "baserom.gba", 0x105B70, 0x0000018 + +gUnk_08105B88:: @ 08105B88 + .incbin "baserom.gba", 0x105B88, 0x0000004 + +gUnk_08105B8C:: @ 08105B8C + .incbin "baserom.gba", 0x105B8C, 0x0000018 + +gUnk_08105BA4:: @ 08105BA4 + .incbin "baserom.gba", 0x105BA4, 0x0000018 + +gUnk_08105BBC:: @ 08105BBC + .incbin "baserom.gba", 0x105BBC, 0x0000008 + +gUnk_08105BC4:: @ 08105BC4 + .incbin "baserom.gba", 0x105BC4, 0x0000018 + +gUnk_08105BDC:: @ 08105BDC + .incbin "baserom.gba", 0x105BDC, 0x0000018 + +gUnk_08105BF4:: @ 08105BF4 + .incbin "baserom.gba", 0x105BF4, 0x0000018 + +gUnk_08105C0C:: @ 08105C0C + .incbin "baserom.gba", 0x105C0C, 0x0000018 + +gUnk_08105C24:: @ 08105C24 + .incbin "baserom.gba", 0x105C24, 0x0000018 + +gUnk_08105C3C:: @ 08105C3C + .incbin "baserom.gba", 0x105C3C, 0x0000018 + +gUnk_08105C54:: @ 08105C54 + .incbin "baserom.gba", 0x105C54, 0x0000018 + +gUnk_08105C6C:: @ 08105C6C + .incbin "baserom.gba", 0x105C6C, 0x0000018 + +gUnk_08105C84:: @ 08105C84 + .incbin "baserom.gba", 0x105C84, 0x0000018 + +gUnk_08105C9C:: @ 08105C9C + .incbin "baserom.gba", 0x105C9C, 0x0000018 + +gUnk_08105CB4:: @ 08105CB4 + .incbin "baserom.gba", 0x105CB4, 0x0000018 + +gUnk_08105CCC:: @ 08105CCC + .incbin "baserom.gba", 0x105CCC, 0x0000018 + +gUnk_08105CE4:: @ 08105CE4 + .incbin "baserom.gba", 0x105CE4, 0x0000018 + +gUnk_08105CFC:: @ 08105CFC + .incbin "baserom.gba", 0x105CFC, 0x0000018 + +gUnk_08105D14:: @ 08105D14 + .incbin "baserom.gba", 0x105D14, 0x0000003 + +gUnk_08105D17:: @ 08105D17 + .incbin "baserom.gba", 0x105D17, 0x0000015 + +gUnk_08105D2C:: @ 08105D2C + .incbin "baserom.gba", 0x105D2C, 0x0000018 + +gUnk_08105D44:: @ 08105D44 + .incbin "baserom.gba", 0x105D44, 0x0000018 + +gUnk_08105D5C:: @ 08105D5C + .incbin "baserom.gba", 0x105D5C, 0x0000018 + +gUnk_08105D74:: @ 08105D74 + .incbin "baserom.gba", 0x105D74, 0x0000018 + +gUnk_08105D8C:: @ 08105D8C + .incbin "baserom.gba", 0x105D8C, 0x0000018 + +gUnk_08105DA4:: @ 08105DA4 + .incbin "baserom.gba", 0x105DA4, 0x0000018 + +gUnk_08105DBC:: @ 08105DBC + .incbin "baserom.gba", 0x105DBC, 0x0000018 + +gUnk_08105DD4:: @ 08105DD4 + .incbin "baserom.gba", 0x105DD4, 0x0000018 + +gUnk_08105DEC:: @ 08105DEC + .incbin "baserom.gba", 0x105DEC, 0x0000018 + +gUnk_08105E04:: @ 08105E04 + .incbin "baserom.gba", 0x105E04, 0x0000018 + +gUnk_08105E1C:: @ 08105E1C + .incbin "baserom.gba", 0x105E1C, 0x0000018 + +gUnk_08105E34:: @ 08105E34 + .incbin "baserom.gba", 0x105E34, 0x0000018 + +gUnk_08105E4C:: @ 08105E4C + .incbin "baserom.gba", 0x105E4C, 0x0000018 + +gUnk_08105E64:: @ 08105E64 + .incbin "baserom.gba", 0x105E64, 0x0000018 + +gUnk_08105E7C:: @ 08105E7C + .incbin "baserom.gba", 0x105E7C, 0x0000018 + +gUnk_08105E94:: @ 08105E94 + .incbin "baserom.gba", 0x105E94, 0x0000018 + +gUnk_08105EAC:: @ 08105EAC + .incbin "baserom.gba", 0x105EAC, 0x0000018 + +gUnk_08105EC4:: @ 08105EC4 + .incbin "baserom.gba", 0x105EC4, 0x0000018 + +gUnk_08105EDC:: @ 08105EDC + .incbin "baserom.gba", 0x105EDC, 0x0000018 + +gUnk_08105EF4:: @ 08105EF4 + .incbin "baserom.gba", 0x105EF4, 0x0000018 + +gUnk_08105F0C:: @ 08105F0C + .incbin "baserom.gba", 0x105F0C, 0x0000018 + +gUnk_08105F24:: @ 08105F24 + .incbin "baserom.gba", 0x105F24, 0x0000018 + +gUnk_08105F3C:: @ 08105F3C + .incbin "baserom.gba", 0x105F3C, 0x0000018 + +gUnk_08105F54:: @ 08105F54 + .incbin "baserom.gba", 0x105F54, 0x0000018 + +gUnk_08105F6C:: @ 08105F6C + .incbin "baserom.gba", 0x105F6C, 0x0000018 + +gUnk_08105F84:: @ 08105F84 + .incbin "baserom.gba", 0x105F84, 0x0000018 + +gUnk_08105F9C:: @ 08105F9C + .incbin "baserom.gba", 0x105F9C, 0x0000066 + +gUnk_08106002:: @ 08106002 + .incbin "baserom.gba", 0x106002, 0x0000076 + +gUnk_08106078:: @ 08106078 + .incbin "baserom.gba", 0x106078, 0x0000018 + +gUnk_08106090:: @ 08106090 + .incbin "baserom.gba", 0x106090, 0x0000004 + +gUnk_08106094:: @ 08106094 + .incbin "baserom.gba", 0x106094, 0x0000018 + +gUnk_081060AC:: @ 081060AC + .incbin "baserom.gba", 0x1060AC, 0x0000018 + +gUnk_081060C4:: @ 081060C4 + .incbin "baserom.gba", 0x1060C4, 0x0000018 + +gUnk_081060DC:: @ 081060DC + .incbin "baserom.gba", 0x1060DC, 0x0000018 + +gUnk_081060F4:: @ 081060F4 + .incbin "baserom.gba", 0x1060F4, 0x0000018 + +gUnk_0810610C:: @ 0810610C + .incbin "baserom.gba", 0x10610C, 0x0000018 + +gUnk_08106124:: @ 08106124 + .incbin "baserom.gba", 0x106124, 0x0000018 + +gUnk_0810613C:: @ 0810613C + .incbin "baserom.gba", 0x10613C, 0x0000018 + +gUnk_08106154:: @ 08106154 + .incbin "baserom.gba", 0x106154, 0x0000018 + +gUnk_0810616C:: @ 0810616C + .incbin "baserom.gba", 0x10616C, 0x0000018 + +gUnk_08106184:: @ 08106184 + .incbin "baserom.gba", 0x106184, 0x0000018 + +gUnk_0810619C:: @ 0810619C + .incbin "baserom.gba", 0x10619C, 0x0000058 + +gUnk_081061F4:: @ 081061F4 + .incbin "baserom.gba", 0x1061F4, 0x0000018 + +gUnk_0810620C:: @ 0810620C + .incbin "baserom.gba", 0x10620C, 0x0000018 + +gUnk_08106224:: @ 08106224 + .incbin "baserom.gba", 0x106224, 0x0000018 + +gUnk_0810623C:: @ 0810623C + .incbin "baserom.gba", 0x10623C, 0x0000018 + +gUnk_08106254:: @ 08106254 + .incbin "baserom.gba", 0x106254, 0x0000018 + +gUnk_0810626C:: @ 0810626C + .incbin "baserom.gba", 0x10626C, 0x0000018 + +gUnk_08106284:: @ 08106284 + .incbin "baserom.gba", 0x106284, 0x0000018 + +gUnk_0810629C:: @ 0810629C + .incbin "baserom.gba", 0x10629C, 0x0000018 + +gUnk_081062B4:: @ 081062B4 + .incbin "baserom.gba", 0x1062B4, 0x0000018 + +gUnk_081062CC:: @ 081062CC + .incbin "baserom.gba", 0x1062CC, 0x0000040 + +gUnk_0810630C:: @ 0810630C + .incbin "baserom.gba", 0x10630C, 0x0000018 + +gUnk_08106324:: @ 08106324 + .incbin "baserom.gba", 0x106324, 0x0000018 + +gUnk_0810633C:: @ 0810633C + .incbin "baserom.gba", 0x10633C, 0x0000018 + +gUnk_08106354:: @ 08106354 + .incbin "baserom.gba", 0x106354, 0x0000018 + +gUnk_0810636C:: @ 0810636C + .incbin "baserom.gba", 0x10636C, 0x0000018 + +gUnk_08106384:: @ 08106384 + .incbin "baserom.gba", 0x106384, 0x0000018 + +gUnk_0810639C:: @ 0810639C + .incbin "baserom.gba", 0x10639C, 0x0000018 + +gUnk_081063B4:: @ 081063B4 + .incbin "baserom.gba", 0x1063B4, 0x0000018 + +gUnk_081063CC:: @ 081063CC + .incbin "baserom.gba", 0x1063CC, 0x0000018 + +gUnk_081063E4:: @ 081063E4 + .incbin "baserom.gba", 0x1063E4, 0x0000018 + +gUnk_081063FC:: @ 081063FC + .incbin "baserom.gba", 0x1063FC, 0x0000018 + +gUnk_08106414:: @ 08106414 + .incbin "baserom.gba", 0x106414, 0x0000018 + +gUnk_0810642C:: @ 0810642C + .incbin "baserom.gba", 0x10642C, 0x0000018 + +gUnk_08106444:: @ 08106444 + .incbin "baserom.gba", 0x106444, 0x0000018 + +gUnk_0810645C:: @ 0810645C + .incbin "baserom.gba", 0x10645C, 0x0000018 + +gUnk_08106474:: @ 08106474 + .incbin "baserom.gba", 0x106474, 0x0000018 + +gUnk_0810648C:: @ 0810648C + .incbin "baserom.gba", 0x10648C, 0x0000018 + +gUnk_081064A4:: @ 081064A4 + .incbin "baserom.gba", 0x1064A4, 0x0000018 + +gUnk_081064BC:: @ 081064BC + .incbin "baserom.gba", 0x1064BC, 0x0000018 + +gUnk_081064D4:: @ 081064D4 + .incbin "baserom.gba", 0x1064D4, 0x0000018 + +gUnk_081064EC:: @ 081064EC + .incbin "baserom.gba", 0x1064EC, 0x0000018 + +gUnk_08106504:: @ 08106504 + .incbin "baserom.gba", 0x106504, 0x0000018 + +gUnk_0810651C:: @ 0810651C + .incbin "baserom.gba", 0x10651C, 0x0000018 + +gUnk_08106534:: @ 08106534 + .incbin "baserom.gba", 0x106534, 0x0000018 + +gUnk_0810654C:: @ 0810654C + .incbin "baserom.gba", 0x10654C, 0x0000009 + +gUnk_08106555:: @ 08106555 + .incbin "baserom.gba", 0x106555, 0x000000F + +gUnk_08106564:: @ 08106564 + .incbin "baserom.gba", 0x106564, 0x0000001 + +gUnk_08106565:: @ 08106565 + .incbin "baserom.gba", 0x106565, 0x0000017 + +gUnk_0810657C:: @ 0810657C + .incbin "baserom.gba", 0x10657C, 0x0000018 + +gUnk_08106594:: @ 08106594 + .incbin "baserom.gba", 0x106594, 0x0000018 + +gUnk_081065AC:: @ 081065AC + .incbin "baserom.gba", 0x1065AC, 0x0000018 + +gUnk_081065C4:: @ 081065C4 + .incbin "baserom.gba", 0x1065C4, 0x0000018 + +gUnk_081065DC:: @ 081065DC + .incbin "baserom.gba", 0x1065DC, 0x0000018 + +gUnk_081065F4:: @ 081065F4 + .incbin "baserom.gba", 0x1065F4, 0x0000004 + +gUnk_081065F8:: @ 081065F8 + .incbin "baserom.gba", 0x1065F8, 0x0000014 + +gUnk_0810660C:: @ 0810660C + .incbin "baserom.gba", 0x10660C, 0x000000D + +gUnk_08106619:: @ 08106619 + .incbin "baserom.gba", 0x106619, 0x0000001 + +gUnk_0810661A:: @ 0810661A + .incbin "baserom.gba", 0x10661A, 0x000000A + +gUnk_08106624:: @ 08106624 + .incbin "baserom.gba", 0x106624, 0x0000018 + +gUnk_0810663C:: @ 0810663C + .incbin "baserom.gba", 0x10663C, 0x0000018 + +gUnk_08106654:: @ 08106654 + .incbin "baserom.gba", 0x106654, 0x0000018 + +gUnk_0810666C:: @ 0810666C + .incbin "baserom.gba", 0x10666C, 0x0000018 + +gUnk_08106684:: @ 08106684 + .incbin "baserom.gba", 0x106684, 0x0000018 + +gUnk_0810669C:: @ 0810669C + .incbin "baserom.gba", 0x10669C, 0x0000018 + +gUnk_081066B4:: @ 081066B4 + .incbin "baserom.gba", 0x1066B4, 0x0000018 + +gUnk_081066CC:: @ 081066CC + .incbin "baserom.gba", 0x1066CC, 0x0000018 + +gUnk_081066E4:: @ 081066E4 + .incbin "baserom.gba", 0x1066E4, 0x0000018 + +gUnk_081066FC:: @ 081066FC + .incbin "baserom.gba", 0x1066FC, 0x0000018 + +gUnk_08106714:: @ 08106714 + .incbin "baserom.gba", 0x106714, 0x0000018 + +gUnk_0810672C:: @ 0810672C + .incbin "baserom.gba", 0x10672C, 0x0000018 + +gUnk_08106744:: @ 08106744 + .incbin "baserom.gba", 0x106744, 0x0000018 + +gUnk_0810675C:: @ 0810675C + .incbin "baserom.gba", 0x10675C, 0x0000018 + +gUnk_08106774:: @ 08106774 + .incbin "baserom.gba", 0x106774, 0x0000018 + +gUnk_0810678C:: @ 0810678C + .incbin "baserom.gba", 0x10678C, 0x0000018 + +gUnk_081067A4:: @ 081067A4 + .incbin "baserom.gba", 0x1067A4, 0x0000018 + +gUnk_081067BC:: @ 081067BC + .incbin "baserom.gba", 0x1067BC, 0x0000018 + +gUnk_081067D4:: @ 081067D4 + .incbin "baserom.gba", 0x1067D4, 0x000002C + +gUnk_08106800:: @ 08106800 + .incbin "baserom.gba", 0x106800, 0x00000A0 + +gUnk_081068A0:: @ 081068A0 + .incbin "baserom.gba", 0x1068A0, 0x000000C + +gUnk_081068AC:: @ 081068AC + .incbin "baserom.gba", 0x1068AC, 0x0000004 + +gUnk_081068B0:: @ 081068B0 + .incbin "baserom.gba", 0x1068B0, 0x0000018 + +gUnk_081068C8:: @ 081068C8 + .incbin "baserom.gba", 0x1068C8, 0x0000018 + +gUnk_081068E0:: @ 081068E0 + .incbin "baserom.gba", 0x1068E0, 0x0000018 + +gUnk_081068F8:: @ 081068F8 + .incbin "baserom.gba", 0x1068F8, 0x0000020 + +gUnk_08106918:: @ 08106918 + .incbin "baserom.gba", 0x106918, 0x0000018 + +gUnk_08106930:: @ 08106930 + .incbin "baserom.gba", 0x106930, 0x0000018 + +gUnk_08106948:: @ 08106948 + .incbin "baserom.gba", 0x106948, 0x0000018 + +gUnk_08106960:: @ 08106960 + .incbin "baserom.gba", 0x106960, 0x0000018 + +gUnk_08106978:: @ 08106978 + .incbin "baserom.gba", 0x106978, 0x0000018 + +gUnk_08106990:: @ 08106990 + .incbin "baserom.gba", 0x106990, 0x0000018 + +gUnk_081069A8:: @ 081069A8 + .incbin "baserom.gba", 0x1069A8, 0x0000018 + +gUnk_081069C0:: @ 081069C0 + .incbin "baserom.gba", 0x1069C0, 0x0000040 + +gUnk_08106A00:: @ 08106A00 + .incbin "baserom.gba", 0x106A00, 0x0000018 + +gUnk_08106A18:: @ 08106A18 + .incbin "baserom.gba", 0x106A18, 0x0000004 + +gUnk_08106A1C:: @ 08106A1C + .incbin "baserom.gba", 0x106A1C, 0x0000018 + +gUnk_08106A34:: @ 08106A34 + .incbin "baserom.gba", 0x106A34, 0x0000018 + +gUnk_08106A4C:: @ 08106A4C + .incbin "baserom.gba", 0x106A4C, 0x0000018 + +gUnk_08106A64:: @ 08106A64 + .incbin "baserom.gba", 0x106A64, 0x0000018 + +gUnk_08106A7C:: @ 08106A7C + .incbin "baserom.gba", 0x106A7C, 0x0000018 + +gUnk_08106A94:: @ 08106A94 + .incbin "baserom.gba", 0x106A94, 0x0000018 + +gUnk_08106AAC:: @ 08106AAC + .incbin "baserom.gba", 0x106AAC, 0x0000018 + +gUnk_08106AC4:: @ 08106AC4 + .incbin "baserom.gba", 0x106AC4, 0x0000018 + +gUnk_08106ADC:: @ 08106ADC + .incbin "baserom.gba", 0x106ADC, 0x0000018 + +gUnk_08106AF4:: @ 08106AF4 + .incbin "baserom.gba", 0x106AF4, 0x0000018 + +gUnk_08106B0C:: @ 08106B0C + .incbin "baserom.gba", 0x106B0C, 0x0000018 + +gUnk_08106B24:: @ 08106B24 + .incbin "baserom.gba", 0x106B24, 0x0000018 + +gUnk_08106B3C:: @ 08106B3C + .incbin "baserom.gba", 0x106B3C, 0x0000018 + +gUnk_08106B54:: @ 08106B54 + .incbin "baserom.gba", 0x106B54, 0x0000018 + +gUnk_08106B6C:: @ 08106B6C + .incbin "baserom.gba", 0x106B6C, 0x0000018 + +gUnk_08106B84:: @ 08106B84 + .incbin "baserom.gba", 0x106B84, 0x0000018 + +gUnk_08106B9C:: @ 08106B9C + .incbin "baserom.gba", 0x106B9C, 0x0000018 + +gUnk_08106BB4:: @ 08106BB4 + .incbin "baserom.gba", 0x106BB4, 0x0000018 + +gUnk_08106BCC:: @ 08106BCC + .incbin "baserom.gba", 0x106BCC, 0x0000018 + +gUnk_08106BE4:: @ 08106BE4 + .incbin "baserom.gba", 0x106BE4, 0x0000018 + +gUnk_08106BFC:: @ 08106BFC + .incbin "baserom.gba", 0x106BFC, 0x0000004 + +gUnk_08106C00:: @ 08106C00 + .incbin "baserom.gba", 0x106C00, 0x0000004 + +gUnk_08106C04:: @ 08106C04 + .incbin "baserom.gba", 0x106C04, 0x0000003 + +gUnk_08106C07:: @ 08106C07 + .incbin "baserom.gba", 0x106C07, 0x000000D + +gUnk_08106C14:: @ 08106C14 + .incbin "baserom.gba", 0x106C14, 0x0000018 + +gUnk_08106C2C:: @ 08106C2C + .incbin "baserom.gba", 0x106C2C, 0x0000018 + +gUnk_08106C44:: @ 08106C44 + .incbin "baserom.gba", 0x106C44, 0x0000018 + +gUnk_08106C5C:: @ 08106C5C + .incbin "baserom.gba", 0x106C5C, 0x0000018 + +gUnk_08106C74:: @ 08106C74 + .incbin "baserom.gba", 0x106C74, 0x0000018 + +gUnk_08106C8C:: @ 08106C8C + .incbin "baserom.gba", 0x106C8C, 0x0000018 + +gUnk_08106CA4:: @ 08106CA4 + .incbin "baserom.gba", 0x106CA4, 0x0000018 + +gUnk_08106CBC:: @ 08106CBC + .incbin "baserom.gba", 0x106CBC, 0x0000018 + +gUnk_08106CD4:: @ 08106CD4 + .incbin "baserom.gba", 0x106CD4, 0x0000018 + +gUnk_08106CEC:: @ 08106CEC + .incbin "baserom.gba", 0x106CEC, 0x0000018 + +gUnk_08106D04:: @ 08106D04 + .incbin "baserom.gba", 0x106D04, 0x0000018 + +gUnk_08106D1C:: @ 08106D1C + .incbin "baserom.gba", 0x106D1C, 0x0000018 + +gUnk_08106D34:: @ 08106D34 + .incbin "baserom.gba", 0x106D34, 0x0000018 + +gUnk_08106D4C:: @ 08106D4C + .incbin "baserom.gba", 0x106D4C, 0x0000018 + +gUnk_08106D64:: @ 08106D64 + .incbin "baserom.gba", 0x106D64, 0x0000018 + +gUnk_08106D7C:: @ 08106D7C + .incbin "baserom.gba", 0x106D7C, 0x0000003 + +gUnk_08106D7F:: @ 08106D7F + .incbin "baserom.gba", 0x106D7F, 0x0000015 + +gUnk_08106D94:: @ 08106D94 + .incbin "baserom.gba", 0x106D94, 0x0000018 + +gUnk_08106DAC:: @ 08106DAC + .incbin "baserom.gba", 0x106DAC, 0x0000018 + +gUnk_08106DC4:: @ 08106DC4 + .incbin "baserom.gba", 0x106DC4, 0x0000018 + +gUnk_08106DDC:: @ 08106DDC + .incbin "baserom.gba", 0x106DDC, 0x0000018 + +gUnk_08106DF4:: @ 08106DF4 + .incbin "baserom.gba", 0x106DF4, 0x0000018 + +gUnk_08106E0C:: @ 08106E0C + .incbin "baserom.gba", 0x106E0C, 0x0000018 + +gUnk_08106E24:: @ 08106E24 + .incbin "baserom.gba", 0x106E24, 0x0000018 + +gUnk_08106E3C:: @ 08106E3C + .incbin "baserom.gba", 0x106E3C, 0x0000018 + +gUnk_08106E54:: @ 08106E54 + .incbin "baserom.gba", 0x106E54, 0x0000018 + +gUnk_08106E6C:: @ 08106E6C + .incbin "baserom.gba", 0x106E6C, 0x0000018 + +gUnk_08106E84:: @ 08106E84 + .incbin "baserom.gba", 0x106E84, 0x0000018 + +gUnk_08106E9C:: @ 08106E9C + .incbin "baserom.gba", 0x106E9C, 0x0000018 + +gUnk_08106EB4:: @ 08106EB4 + .incbin "baserom.gba", 0x106EB4, 0x0000018 + +gUnk_08106ECC:: @ 08106ECC + .incbin "baserom.gba", 0x106ECC, 0x0000018 + +gUnk_08106EE4:: @ 08106EE4 + .incbin "baserom.gba", 0x106EE4, 0x0000018 + +gUnk_08106EFC:: @ 08106EFC + .incbin "baserom.gba", 0x106EFC, 0x000000F + +gUnk_08106F0B:: @ 08106F0B + .incbin "baserom.gba", 0x106F0B, 0x0000009 + +gUnk_08106F14:: @ 08106F14 + .incbin "baserom.gba", 0x106F14, 0x0000018 + +gUnk_08106F2C:: @ 08106F2C + .incbin "baserom.gba", 0x106F2C, 0x0000018 + +gUnk_08106F44:: @ 08106F44 + .incbin "baserom.gba", 0x106F44, 0x0000018 + +gUnk_08106F5C:: @ 08106F5C + .incbin "baserom.gba", 0x106F5C, 0x0000018 + +gUnk_08106F74:: @ 08106F74 + .incbin "baserom.gba", 0x106F74, 0x0000018 + +gUnk_08106F8C:: @ 08106F8C + .incbin "baserom.gba", 0x106F8C, 0x0000018 + +gUnk_08106FA4:: @ 08106FA4 + .incbin "baserom.gba", 0x106FA4, 0x0000018 + +gUnk_08106FBC:: @ 08106FBC + .incbin "baserom.gba", 0x106FBC, 0x00000F0 + +gUnk_081070AC:: @ 081070AC + .incbin "baserom.gba", 0x1070AC, 0x0000018 + +gUnk_081070C4:: @ 081070C4 + .incbin "baserom.gba", 0x1070C4, 0x0000018 + +gUnk_081070DC:: @ 081070DC + .incbin "baserom.gba", 0x1070DC, 0x0000018 + +gUnk_081070F4:: @ 081070F4 + .incbin "baserom.gba", 0x1070F4, 0x0000018 + +gUnk_0810710C:: @ 0810710C + .incbin "baserom.gba", 0x10710C, 0x0000018 + +gUnk_08107124:: @ 08107124 + .incbin "baserom.gba", 0x107124, 0x0000018 + +gUnk_0810713C:: @ 0810713C + .incbin "baserom.gba", 0x10713C, 0x0000018 + +gUnk_08107154:: @ 08107154 + .incbin "baserom.gba", 0x107154, 0x0000018 + +gUnk_0810716C:: @ 0810716C + .incbin "baserom.gba", 0x10716C, 0x0000018 + +gUnk_08107184:: @ 08107184 + .incbin "baserom.gba", 0x107184, 0x0000024 + +gUnk_081071A8:: @ 081071A8 + .incbin "baserom.gba", 0x1071A8, 0x0000018 + +gUnk_081071C0:: @ 081071C0 + .incbin "baserom.gba", 0x1071C0, 0x0000004 + +gUnk_081071C4:: @ 081071C4 + .incbin "baserom.gba", 0x1071C4, 0x0000018 + +gUnk_081071DC:: @ 081071DC + .incbin "baserom.gba", 0x1071DC, 0x0000018 + +gUnk_081071F4:: @ 081071F4 + .incbin "baserom.gba", 0x1071F4, 0x0000018 + +gUnk_0810720C:: @ 0810720C + .incbin "baserom.gba", 0x10720C, 0x000000C + +gUnk_08107218:: @ 08107218 + .incbin "baserom.gba", 0x107218, 0x0000018 + +gUnk_08107230:: @ 08107230 + .incbin "baserom.gba", 0x107230, 0x0000018 + +gUnk_08107248:: @ 08107248 + .incbin "baserom.gba", 0x107248, 0x0000008 + +gUnk_08107250:: @ 08107250 + .incbin "baserom.gba", 0x107250, 0x0000018 + +gUnk_08107268:: @ 08107268 + .incbin "baserom.gba", 0x107268, 0x0000004 + +gUnk_0810726C:: @ 0810726C + .incbin "baserom.gba", 0x10726C, 0x0000018 + +gUnk_08107284:: @ 08107284 + .incbin "baserom.gba", 0x107284, 0x0000018 + +gUnk_0810729C:: @ 0810729C + .incbin "baserom.gba", 0x10729C, 0x0000018 + +gUnk_081072B4:: @ 081072B4 + .incbin "baserom.gba", 0x1072B4, 0x000000C + +gUnk_081072C0:: @ 081072C0 + .incbin "baserom.gba", 0x1072C0, 0x0000018 + +gUnk_081072D8:: @ 081072D8 + .incbin "baserom.gba", 0x1072D8, 0x0000018 + +gUnk_081072F0:: @ 081072F0 + .incbin "baserom.gba", 0x1072F0, 0x0000018 + +gUnk_08107308:: @ 08107308 + .incbin "baserom.gba", 0x107308, 0x0000002 + +gUnk_0810730A:: @ 0810730A + .incbin "baserom.gba", 0x10730A, 0x0000016 + +gUnk_08107320:: @ 08107320 + .incbin "baserom.gba", 0x107320, 0x0000018 + +gUnk_08107338:: @ 08107338 + .incbin "baserom.gba", 0x107338, 0x0000014 + +gUnk_0810734C:: @ 0810734C + .incbin "baserom.gba", 0x10734C, 0x0000018 + +gUnk_08107364:: @ 08107364 + .incbin "baserom.gba", 0x107364, 0x0000018 + +gUnk_0810737C:: @ 0810737C + .incbin "baserom.gba", 0x10737C, 0x0000008 + +gUnk_08107384:: @ 08107384 + .incbin "baserom.gba", 0x107384, 0x0000018 + +gUnk_0810739C:: @ 0810739C + .incbin "baserom.gba", 0x10739C, 0x0000018 + +gUnk_081073B4:: @ 081073B4 + .incbin "baserom.gba", 0x1073B4, 0x0000018 + +gUnk_081073CC:: @ 081073CC + .incbin "baserom.gba", 0x1073CC, 0x0000018 + +gUnk_081073E4:: @ 081073E4 + .incbin "baserom.gba", 0x1073E4, 0x0000018 + +gUnk_081073FC:: @ 081073FC + .incbin "baserom.gba", 0x1073FC, 0x0000018 + +gUnk_08107414:: @ 08107414 + .incbin "baserom.gba", 0x107414, 0x0000018 + +gUnk_0810742C:: @ 0810742C + .incbin "baserom.gba", 0x10742C, 0x0000018 + +gUnk_08107444:: @ 08107444 + .incbin "baserom.gba", 0x107444, 0x0000018 + +gUnk_0810745C:: @ 0810745C + .incbin "baserom.gba", 0x10745C, 0x0000018 + +gUnk_08107474:: @ 08107474 + .incbin "baserom.gba", 0x107474, 0x0000018 + +gUnk_0810748C:: @ 0810748C + .incbin "baserom.gba", 0x10748C, 0x0000018 + +gUnk_081074A4:: @ 081074A4 + .incbin "baserom.gba", 0x1074A4, 0x0000018 + +gUnk_081074BC:: @ 081074BC + .incbin "baserom.gba", 0x1074BC, 0x0000018 + +gUnk_081074D4:: @ 081074D4 + .incbin "baserom.gba", 0x1074D4, 0x0000018 + +gUnk_081074EC:: @ 081074EC + .incbin "baserom.gba", 0x1074EC, 0x0000018 + +gUnk_08107504:: @ 08107504 + .incbin "baserom.gba", 0x107504, 0x0000018 + +gUnk_0810751C:: @ 0810751C + .incbin "baserom.gba", 0x10751C, 0x0000018 + +gUnk_08107534:: @ 08107534 + .incbin "baserom.gba", 0x107534, 0x0000018 + +gUnk_0810754C:: @ 0810754C + .incbin "baserom.gba", 0x10754C, 0x0000018 + +gUnk_08107564:: @ 08107564 + .incbin "baserom.gba", 0x107564, 0x0000018 + +gUnk_0810757C:: @ 0810757C + .incbin "baserom.gba", 0x10757C, 0x0000018 + +gUnk_08107594:: @ 08107594 + .incbin "baserom.gba", 0x107594, 0x0000018 + +gUnk_081075AC:: @ 081075AC + .incbin "baserom.gba", 0x1075AC, 0x0000018 + +gUnk_081075C4:: @ 081075C4 + .incbin "baserom.gba", 0x1075C4, 0x0000060 + +gUnk_08107624:: @ 08107624 + .incbin "baserom.gba", 0x107624, 0x0000018 + +gUnk_0810763C:: @ 0810763C + .incbin "baserom.gba", 0x10763C, 0x0000018 + +gUnk_08107654:: @ 08107654 + .incbin "baserom.gba", 0x107654, 0x0000018 + +gUnk_0810766C:: @ 0810766C + .incbin "baserom.gba", 0x10766C, 0x0000018 + +gUnk_08107684:: @ 08107684 + .incbin "baserom.gba", 0x107684, 0x0000018 + +gUnk_0810769C:: @ 0810769C + .incbin "baserom.gba", 0x10769C, 0x0000018 + +gUnk_081076B4:: @ 081076B4 + .incbin "baserom.gba", 0x1076B4, 0x0000018 + +gUnk_081076CC:: @ 081076CC + .incbin "baserom.gba", 0x1076CC, 0x0000018 + +gUnk_081076E4:: @ 081076E4 + .incbin "baserom.gba", 0x1076E4, 0x0000018 + +gUnk_081076FC:: @ 081076FC + .incbin "baserom.gba", 0x1076FC, 0x0000016 + +gUnk_08107712:: @ 08107712 + .incbin "baserom.gba", 0x107712, 0x0000002 + +gUnk_08107714:: @ 08107714 + .incbin "baserom.gba", 0x107714, 0x0000028 + +gUnk_0810773C:: @ 0810773C + .incbin "baserom.gba", 0x10773C, 0x0000018 + +gUnk_08107754:: @ 08107754 + .incbin "baserom.gba", 0x107754, 0x0000018 + +gUnk_0810776C:: @ 0810776C + .incbin "baserom.gba", 0x10776C, 0x0000008 + +gUnk_08107774:: @ 08107774 + .incbin "baserom.gba", 0x107774, 0x0000018 + +gUnk_0810778C:: @ 0810778C + .incbin "baserom.gba", 0x10778C, 0x0000004 + +gUnk_08107790:: @ 08107790 + .incbin "baserom.gba", 0x107790, 0x0000018 + +gUnk_081077A8:: @ 081077A8 + .incbin "baserom.gba", 0x1077A8, 0x0000018 + +gUnk_081077C0:: @ 081077C0 + .incbin "baserom.gba", 0x1077C0, 0x0000018 + +gUnk_081077D8:: @ 081077D8 + .incbin "baserom.gba", 0x1077D8, 0x0000018 + +gUnk_081077F0:: @ 081077F0 + .incbin "baserom.gba", 0x1077F0, 0x0000018 + +gUnk_08107808:: @ 08107808 + .incbin "baserom.gba", 0x107808, 0x0000018 + +gUnk_08107820:: @ 08107820 + .incbin "baserom.gba", 0x107820, 0x0000018 + +gUnk_08107838:: @ 08107838 + .incbin "baserom.gba", 0x107838, 0x0000018 + +gUnk_08107850:: @ 08107850 + .incbin "baserom.gba", 0x107850, 0x000001E + +gUnk_0810786E:: @ 0810786E + .incbin "baserom.gba", 0x10786E, 0x0000002 + +gUnk_08107870:: @ 08107870 + .incbin "baserom.gba", 0x107870, 0x000001C + +gUnk_0810788C:: @ 0810788C + .incbin "baserom.gba", 0x10788C, 0x0000018 + +gUnk_081078A4:: @ 081078A4 + .incbin "baserom.gba", 0x1078A4, 0x0000004 + +gUnk_081078A8:: @ 081078A8 + .incbin "baserom.gba", 0x1078A8, 0x0000018 + +gUnk_081078C0:: @ 081078C0 + .incbin "baserom.gba", 0x1078C0, 0x0000004 + +gUnk_081078C4:: @ 081078C4 + .incbin "baserom.gba", 0x1078C4, 0x0000018 + +gUnk_081078DC:: @ 081078DC + .incbin "baserom.gba", 0x1078DC, 0x0000004 + +gUnk_081078E0:: @ 081078E0 + .incbin "baserom.gba", 0x1078E0, 0x0000018 + +gUnk_081078F8:: @ 081078F8 + .incbin "baserom.gba", 0x1078F8, 0x0000004 + +gUnk_081078FC:: @ 081078FC + .incbin "baserom.gba", 0x1078FC, 0x0000018 + +gUnk_08107914:: @ 08107914 + .incbin "baserom.gba", 0x107914, 0x0000004 + +gUnk_08107918:: @ 08107918 + .incbin "baserom.gba", 0x107918, 0x0000018 + +gUnk_08107930:: @ 08107930 + .incbin "baserom.gba", 0x107930, 0x0000004 + +gUnk_08107934:: @ 08107934 + .incbin "baserom.gba", 0x107934, 0x0000018 + +gUnk_0810794C:: @ 0810794C + .incbin "baserom.gba", 0x10794C, 0x0000004 + +gUnk_08107950:: @ 08107950 + .incbin "baserom.gba", 0x107950, 0x0000018 + +gUnk_08107968:: @ 08107968 + .incbin "baserom.gba", 0x107968, 0x0000004 + +gUnk_0810796C:: @ 0810796C + .incbin "baserom.gba", 0x10796C, 0x000000D + +gUnk_08107979:: @ 08107979 + .incbin "baserom.gba", 0x107979, 0x000000B + +gUnk_08107984:: @ 08107984 + .incbin "baserom.gba", 0x107984, 0x0000004 + +gUnk_08107988:: @ 08107988 + .incbin "baserom.gba", 0x107988, 0x0000015 + +gUnk_0810799D:: @ 0810799D + .incbin "baserom.gba", 0x10799D, 0x00001A4 + +gUnk_08107B41:: @ 08107B41 + .incbin "baserom.gba", 0x107B41, 0x000003A + +gUnk_08107B7B:: @ 08107B7B + .incbin "baserom.gba", 0x107B7B, 0x000004D + +gUnk_08107BC8:: @ 08107BC8 + .incbin "baserom.gba", 0x107BC8, 0x0000018 + +gUnk_08107BE0:: @ 08107BE0 + .incbin "baserom.gba", 0x107BE0, 0x0000014 + +gUnk_08107BF4:: @ 08107BF4 + .incbin "baserom.gba", 0x107BF4, 0x0000018 + +gUnk_08107C0C:: @ 08107C0C + .incbin "baserom.gba", 0x107C0C, 0x0000003 + +gUnk_08107C0F:: @ 08107C0F + .incbin "baserom.gba", 0x107C0F, 0x0000005 + +gUnk_08107C14:: @ 08107C14 + .incbin "baserom.gba", 0x107C14, 0x0000004 + +gUnk_08107C18:: @ 08107C18 + .incbin "baserom.gba", 0x107C18, 0x0000004 + +gUnk_08107C1C:: @ 08107C1C + .incbin "baserom.gba", 0x107C1C, 0x000000E + +gUnk_08107C2A:: @ 08107C2A + .incbin "baserom.gba", 0x107C2A, 0x0000006 + +gUnk_08107C30:: @ 08107C30 + .incbin "baserom.gba", 0x107C30, 0x0000010 + +gUnk_08107C40:: @ 08107C40 + .incbin "baserom.gba", 0x107C40, 0x0000008 + +gUnk_08107C48:: @ 08107C48 + .incbin "baserom.gba", 0x107C48, 0x0000014 + +gUnk_08107C5C:: @ 08107C5C + .incbin "baserom.gba", 0x107C5C, 0x0000010 + +gUnk_08107C6C:: @ 08107C6C + .incbin "baserom.gba", 0x107C6C, 0x0000004 + +gUnk_08107C70:: @ 08107C70 + .incbin "baserom.gba", 0x107C70, 0x0000008 + +gUnk_08107C78:: @ 08107C78 + .incbin "baserom.gba", 0x107C78, 0x0000008 + +gUnk_08107C80:: @ 08107C80 + .incbin "baserom.gba", 0x107C80, 0x0000018 + +gUnk_08107C98:: @ 08107C98 + .incbin "baserom.gba", 0x107C98, 0x0000028 + +gUnk_08107CC0:: @ 08107CC0 + .incbin "baserom.gba", 0x107CC0, 0x0000010 + +gUnk_08107CD0:: @ 08107CD0 + .incbin "baserom.gba", 0x107CD0, 0x0000010 + +gUnk_08107CE0:: @ 08107CE0 + .incbin "baserom.gba", 0x107CE0, 0x0000018 + +gUnk_08107CF8:: @ 08107CF8 + .incbin "baserom.gba", 0x107CF8, 0x000000A + +gUnk_08107D02:: @ 08107D02 + .incbin "baserom.gba", 0x107D02, 0x0000006 + +gUnk_08107D08:: @ 08107D08 + .incbin "baserom.gba", 0x107D08, 0x0000018 + +gUnk_08107D20:: @ 08107D20 + .incbin "baserom.gba", 0x107D20, 0x0000018 + +gUnk_08107D38:: @ 08107D38 + .incbin "baserom.gba", 0x107D38, 0x0000010 + +gUnk_08107D48:: @ 08107D48 + .incbin "baserom.gba", 0x107D48, 0x0000020 + +gUnk_08107D68:: @ 08107D68 + .incbin "baserom.gba", 0x107D68, 0x0000010 + +gUnk_08107D78:: @ 08107D78 + .incbin "baserom.gba", 0x107D78, 0x0000018 + +gUnk_08107D90:: @ 08107D90 + .incbin "baserom.gba", 0x107D90, 0x0000010 + +gUnk_08107DA0:: @ 08107DA0 + .incbin "baserom.gba", 0x107DA0, 0x0000020 + +gUnk_08107DC0:: @ 08107DC0 + .incbin "baserom.gba", 0x107DC0, 0x0000264 + +gUnk_08108024:: @ 08108024 + .incbin "baserom.gba", 0x108024, 0x0000010 + +gUnk_08108034:: @ 08108034 + .incbin "baserom.gba", 0x108034, 0x0000010 + +gUnk_08108044:: @ 08108044 + .incbin "baserom.gba", 0x108044, 0x000000C + +gUnk_08108050:: @ 08108050 + .incbin "baserom.gba", 0x108050, 0x000001E + +gUnk_0810806E:: @ 0810806E + .incbin "baserom.gba", 0x10806E, 0x0000036 + +gUnk_081080A4:: @ 081080A4 + .incbin "baserom.gba", 0x1080A4, 0x0000020 + +gUnk_081080C4:: @ 081080C4 + .incbin "baserom.gba", 0x1080C4, 0x0000043 + +gUnk_08108107:: @ 08108107 + .incbin "baserom.gba", 0x108107, 0x0000079 + +gUnk_08108180:: @ 08108180 + .incbin "baserom.gba", 0x108180, 0x0000064 + +gUnk_081081E4:: @ 081081E4 + .incbin "baserom.gba", 0x1081E4, 0x0000008 + +gUnk_081081EC:: @ 081081EC + .incbin "baserom.gba", 0x1081EC, 0x0000008 + +gUnk_081081F4:: @ 081081F4 + .incbin "baserom.gba", 0x1081F4, 0x0000014 + +gUnk_08108208:: @ 08108208 + .incbin "baserom.gba", 0x108208, 0x0000008 + +gUnk_08108210:: @ 08108210 + .incbin "baserom.gba", 0x108210, 0x000000C + +gUnk_0810821C:: @ 0810821C + .incbin "baserom.gba", 0x10821C, 0x000000C + +gUnk_08108228:: @ 08108228 + .incbin "baserom.gba", 0x108228, 0x0000030 + +gUnk_08108258:: @ 08108258 + .incbin "baserom.gba", 0x108258, 0x0000030 + +gUnk_08108288:: @ 08108288 + .incbin "baserom.gba", 0x108288, 0x0000030 + +gUnk_081082B8:: @ 081082B8 + .incbin "baserom.gba", 0x1082B8, 0x0000030 + +gUnk_081082E8:: @ 081082E8 + .incbin "baserom.gba", 0x1082E8, 0x0000018 + +gUnk_08108300:: @ 08108300 + .incbin "baserom.gba", 0x108300, 0x0000008 + +gUnk_08108308:: @ 08108308 + .incbin "baserom.gba", 0x108308, 0x000000C + +gUnk_08108314:: @ 08108314 + .incbin "baserom.gba", 0x108314, 0x0000040 + +gUnk_08108354:: @ 08108354 + .incbin "baserom.gba", 0x108354, 0x000002C + +gUnk_08108380:: @ 08108380 + .incbin "baserom.gba", 0x108380, 0x0000010 + +gUnk_08108390:: @ 08108390 + .incbin "baserom.gba", 0x108390, 0x0000008 + +gUnk_08108398:: @ 08108398 + .incbin "baserom.gba", 0x108398, 0x0000016 + +gUnk_081083AE:: @ 081083AE + .incbin "baserom.gba", 0x1083AE, 0x0000016 + +gUnk_081083C4:: @ 081083C4 + .incbin "baserom.gba", 0x1083C4, 0x0000016 + +gUnk_081083DA:: @ 081083DA + .incbin "baserom.gba", 0x1083DA, 0x0000018 + +gUnk_081083F2:: @ 081083F2 + .incbin "baserom.gba", 0x1083F2, 0x0000016 + +gUnk_08108408:: @ 08108408 + .incbin "baserom.gba", 0x108408, 0x000003C + +gUnk_08108444:: @ 08108444 + .incbin "baserom.gba", 0x108444, 0x0000024 + +gUnk_08108468:: @ 08108468 + .incbin "baserom.gba", 0x108468, 0x0000026 + +gUnk_0810848E:: @ 0810848E + .incbin "baserom.gba", 0x10848E, 0x0000035 + +gUnk_081084C3:: @ 081084C3 + .incbin "baserom.gba", 0x1084C3, 0x0000005 + +gUnk_081084C8:: @ 081084C8 + .incbin "baserom.gba", 0x1084C8, 0x000004A + +gUnk_08108512:: @ 08108512 + .incbin "baserom.gba", 0x108512, 0x000001E + +gUnk_08108530:: @ 08108530 + .incbin "baserom.gba", 0x108530, 0x0000058 + +gUnk_08108588:: @ 08108588 + .incbin "baserom.gba", 0x108588, 0x0000012 + +gUnk_0810859A:: @ 0810859A + .incbin "baserom.gba", 0x10859A, 0x000000A + +gUnk_081085A4:: @ 081085A4 + .incbin "baserom.gba", 0x1085A4, 0x0000014 + +gUnk_081085B8:: @ 081085B8 + .incbin "baserom.gba", 0x1085B8, 0x0000020 + +gUnk_081085D8:: @ 081085D8 + .incbin "baserom.gba", 0x1085D8, 0x0000020 + +gUnk_081085F8:: @ 081085F8 + .incbin "baserom.gba", 0x1085F8, 0x0000014 + +gUnk_0810860C:: @ 0810860C + .incbin "baserom.gba", 0x10860C, 0x0000014 + +gUnk_08108620:: @ 08108620 + .incbin "baserom.gba", 0x108620, 0x0000018 + +gUnk_08108638:: @ 08108638 + .incbin "baserom.gba", 0x108638, 0x0000010 + +gUnk_08108648:: @ 08108648 + .incbin "baserom.gba", 0x108648, 0x000000C + +gUnk_08108654:: @ 08108654 + .incbin "baserom.gba", 0x108654, 0x0000008 + +gUnk_0810865C:: @ 0810865C + .incbin "baserom.gba", 0x10865C, 0x000000C + +gUnk_08108668:: @ 08108668 + .incbin "baserom.gba", 0x108668, 0x0000008 + +gUnk_08108670:: @ 08108670 + .incbin "baserom.gba", 0x108670, 0x000000C + +gUnk_0810867C:: @ 0810867C + .incbin "baserom.gba", 0x10867C, 0x000000C + +gUnk_08108688:: @ 08108688 + .incbin "baserom.gba", 0x108688, 0x000000C + +gUnk_08108694:: @ 08108694 + .incbin "baserom.gba", 0x108694, 0x000000C + +gUnk_081086A0:: @ 081086A0 + .incbin "baserom.gba", 0x1086A0, 0x0000009 + +gUnk_081086A9:: @ 081086A9 + .incbin "baserom.gba", 0x1086A9, 0x0000003 + +gUnk_081086AC:: @ 081086AC + .incbin "baserom.gba", 0x1086AC, 0x000000C + +gUnk_081086B8:: @ 081086B8 + .incbin "baserom.gba", 0x1086B8, 0x000000C + +gUnk_081086C4:: @ 081086C4 + .incbin "baserom.gba", 0x1086C4, 0x000000C + +gUnk_081086D0:: @ 081086D0 + .incbin "baserom.gba", 0x1086D0, 0x0000001 + +gUnk_081086D1:: @ 081086D1 + .incbin "baserom.gba", 0x1086D1, 0x000000B + +gUnk_081086DC:: @ 081086DC + .incbin "baserom.gba", 0x1086DC, 0x0000008 + +gUnk_081086E4:: @ 081086E4 + .incbin "baserom.gba", 0x1086E4, 0x0000008 + +gUnk_081086EC:: @ 081086EC + .incbin "baserom.gba", 0x1086EC, 0x0000008 + +gUnk_081086F4:: @ 081086F4 + .incbin "baserom.gba", 0x1086F4, 0x0000008 + +gUnk_081086FC:: @ 081086FC + .incbin "baserom.gba", 0x1086FC, 0x0000008 + +gUnk_08108704:: @ 08108704 + .incbin "baserom.gba", 0x108704, 0x0000003 + +gUnk_08108707:: @ 08108707 + .incbin "baserom.gba", 0x108707, 0x0000005 + +gUnk_0810870C:: @ 0810870C + .incbin "baserom.gba", 0x10870C, 0x0000008 + +gUnk_08108714:: @ 08108714 + .incbin "baserom.gba", 0x108714, 0x0000008 + +gUnk_0810871C:: @ 0810871C + .incbin "baserom.gba", 0x10871C, 0x0000008 + +gUnk_08108724:: @ 08108724 + .incbin "baserom.gba", 0x108724, 0x0000008 + +gUnk_0810872C:: @ 0810872C + .incbin "baserom.gba", 0x10872C, 0x0000008 + +gUnk_08108734:: @ 08108734 + .incbin "baserom.gba", 0x108734, 0x0000008 + +gUnk_0810873C:: @ 0810873C + .incbin "baserom.gba", 0x10873C, 0x0000008 + +gUnk_08108744:: @ 08108744 + .incbin "baserom.gba", 0x108744, 0x0000006 + +gUnk_0810874A:: @ 0810874A + .incbin "baserom.gba", 0x10874A, 0x0000002 + +gUnk_0810874C:: @ 0810874C + .incbin "baserom.gba", 0x10874C, 0x0000008 + +gUnk_08108754:: @ 08108754 + .incbin "baserom.gba", 0x108754, 0x0000008 + +gUnk_0810875C:: @ 0810875C + .incbin "baserom.gba", 0x10875C, 0x0000002 + +gUnk_0810875E:: @ 0810875E + .incbin "baserom.gba", 0x10875E, 0x0000006 + +gUnk_08108764:: @ 08108764 + .incbin "baserom.gba", 0x108764, 0x00000AF + +gUnk_08108813:: @ 08108813 + .incbin "baserom.gba", 0x108813, 0x0000031 + +gUnk_08108844:: @ 08108844 + .incbin "baserom.gba", 0x108844, 0x0000020 + +gUnk_08108864:: @ 08108864 + .incbin "baserom.gba", 0x108864, 0x0000237 + +gUnk_08108A9B:: @ 08108A9B + .incbin "baserom.gba", 0x108A9B, 0x0000177 + +gUnk_08108C12:: @ 08108C12 + .incbin "baserom.gba", 0x108C12, 0x0000016 + +gUnk_08108C28:: @ 08108C28 + .incbin "baserom.gba", 0x108C28, 0x000001C + +gUnk_08108C44:: @ 08108C44 + .incbin "baserom.gba", 0x108C44, 0x0000010 + +gUnk_08108C54:: @ 08108C54 + .incbin "baserom.gba", 0x108C54, 0x0000008 + +gUnk_08108C5C:: @ 08108C5C + .incbin "baserom.gba", 0x108C5C, 0x0000008 + +gUnk_08108C64:: @ 08108C64 + .incbin "baserom.gba", 0x108C64, 0x0000008 + +gUnk_08108C6C:: @ 08108C6C + .incbin "baserom.gba", 0x108C6C, 0x000000B + +gUnk_08108C77:: @ 08108C77 + .incbin "baserom.gba", 0x108C77, 0x0000005 + +gUnk_08108C7C:: @ 08108C7C + .incbin "baserom.gba", 0x108C7C, 0x0000004 + +gUnk_08108C80:: @ 08108C80 + .incbin "baserom.gba", 0x108C80, 0x0000008 + +gUnk_08108C88:: @ 08108C88 + .incbin "baserom.gba", 0x108C88, 0x0000004 + +gUnk_08108C8C:: @ 08108C8C + .incbin "baserom.gba", 0x108C8C, 0x0000008 + +gUnk_08108C94:: @ 08108C94 + .incbin "baserom.gba", 0x108C94, 0x0000008 + +gUnk_08108C9C:: @ 08108C9C + .incbin "baserom.gba", 0x108C9C, 0x000000C + +gUnk_08108CA8:: @ 08108CA8 + .incbin "baserom.gba", 0x108CA8, 0x0000024 + +gUnk_08108CCC:: @ 08108CCC + .incbin "baserom.gba", 0x108CCC, 0x0000010 + +gUnk_08108CDC:: @ 08108CDC + .incbin "baserom.gba", 0x108CDC, 0x000000C + +gUnk_08108CE8:: @ 08108CE8 + .incbin "baserom.gba", 0x108CE8, 0x0000014 + +gUnk_08108CFC:: @ 08108CFC + .incbin "baserom.gba", 0x108CFC, 0x0000008 + +gUnk_08108D04:: @ 08108D04 + .incbin "baserom.gba", 0x108D04, 0x000000C + +gUnk_08108D10:: @ 08108D10 + .incbin "baserom.gba", 0x108D10, 0x000000C + +gUnk_08108D1C:: @ 08108D1C + .incbin "baserom.gba", 0x108D1C, 0x0000004 + +gUnk_08108D20:: @ 08108D20 + .incbin "baserom.gba", 0x108D20, 0x0000008 + +gUnk_08108D28:: @ 08108D28 + .incbin "baserom.gba", 0x108D28, 0x0000008 + +gUnk_08108D30:: @ 08108D30 + .incbin "baserom.gba", 0x108D30, 0x000000C + +gUnk_08108D3C:: @ 08108D3C + .incbin "baserom.gba", 0x108D3C, 0x0000008 + +gUnk_08108D44:: @ 08108D44 + .incbin "baserom.gba", 0x108D44, 0x000000C + +gUnk_08108D50:: @ 08108D50 + .incbin "baserom.gba", 0x108D50, 0x000000C + +gUnk_08108D5C:: @ 08108D5C + .incbin "baserom.gba", 0x108D5C, 0x0000018 + +gUnk_08108D74:: @ 08108D74 + .incbin "baserom.gba", 0x108D74, 0x0000008 + +gUnk_08108D7C:: @ 08108D7C + .incbin "baserom.gba", 0x108D7C, 0x0000010 + +gUnk_08108D8C:: @ 08108D8C + .incbin "baserom.gba", 0x108D8C, 0x000000B + +gUnk_08108D97:: @ 08108D97 + .incbin "baserom.gba", 0x108D97, 0x0000001 + +gUnk_08108D98:: @ 08108D98 + .incbin "baserom.gba", 0x108D98, 0x0000010 + +gUnk_08108DA8:: @ 08108DA8 + .incbin "baserom.gba", 0x108DA8, 0x0000014 + +gUnk_08108DBC:: @ 08108DBC + .incbin "baserom.gba", 0x108DBC, 0x0000008 + +gUnk_08108DC4:: @ 08108DC4 + .incbin "baserom.gba", 0x108DC4, 0x0000014 + +gUnk_08108DD8:: @ 08108DD8 + .incbin "baserom.gba", 0x108DD8, 0x0000008 + +gUnk_08108DE0:: @ 08108DE0 + .incbin "baserom.gba", 0x108DE0, 0x0000008 + +gUnk_08108DE8:: @ 08108DE8 + .incbin "baserom.gba", 0x108DE8, 0x0000040 + +gUnk_08108E28:: @ 08108E28 + .incbin "baserom.gba", 0x108E28, 0x0000008 + +gUnk_08108E30:: @ 08108E30 + .incbin "baserom.gba", 0x108E30, 0x0000018 + +gUnk_08108E48:: @ 08108E48 + .incbin "baserom.gba", 0x108E48, 0x0000002 + +gUnk_08108E4A:: @ 08108E4A + .incbin "baserom.gba", 0x108E4A, 0x0000016 + +gUnk_08108E60:: @ 08108E60 + .incbin "baserom.gba", 0x108E60, 0x000000C + +gUnk_08108E6C:: @ 08108E6C + .incbin "baserom.gba", 0x108E6C, 0x000000C + +gUnk_08108E78:: @ 08108E78 + .incbin "baserom.gba", 0x108E78, 0x0000018 + +gUnk_08108E90:: @ 08108E90 + .incbin "baserom.gba", 0x108E90, 0x0000008 + +gUnk_08108E98:: @ 08108E98 + .incbin "baserom.gba", 0x108E98, 0x000000C + +gUnk_08108EA4:: @ 08108EA4 + .incbin "baserom.gba", 0x108EA4, 0x0000018 + +gUnk_08108EBC:: @ 08108EBC + .incbin "baserom.gba", 0x108EBC, 0x0000008 + +gUnk_08108EC4:: @ 08108EC4 + .incbin "baserom.gba", 0x108EC4, 0x000000C + +gUnk_08108ED0:: @ 08108ED0 + .incbin "baserom.gba", 0x108ED0, 0x0000018 + +gUnk_08108EE8:: @ 08108EE8 + .incbin "baserom.gba", 0x108EE8, 0x0000008 + +gUnk_08108EF0:: @ 08108EF0 + .incbin "baserom.gba", 0x108EF0, 0x000000C + +gUnk_08108EFC:: @ 08108EFC + .incbin "baserom.gba", 0x108EFC, 0x0000018 + +gUnk_08108F14:: @ 08108F14 + .incbin "baserom.gba", 0x108F14, 0x0000008 + +gUnk_08108F1C:: @ 08108F1C + .incbin "baserom.gba", 0x108F1C, 0x000000C + +gUnk_08108F28:: @ 08108F28 + .incbin "baserom.gba", 0x108F28, 0x0000018 + +gUnk_08108F40:: @ 08108F40 + .incbin "baserom.gba", 0x108F40, 0x0000008 + +gUnk_08108F48:: @ 08108F48 + .incbin "baserom.gba", 0x108F48, 0x0000004 + +gUnk_08108F4C:: @ 08108F4C + .incbin "baserom.gba", 0x108F4C, 0x0000008 + +gUnk_08108F54:: @ 08108F54 + .incbin "baserom.gba", 0x108F54, 0x0000018 + +gUnk_08108F6C:: @ 08108F6C + .incbin "baserom.gba", 0x108F6C, 0x0000008 + +gUnk_08108F74:: @ 08108F74 + .incbin "baserom.gba", 0x108F74, 0x000000C + +gUnk_08108F80:: @ 08108F80 + .incbin "baserom.gba", 0x108F80, 0x0000018 + +gUnk_08108F98:: @ 08108F98 + .incbin "baserom.gba", 0x108F98, 0x0000008 + +gUnk_08108FA0:: @ 08108FA0 + .incbin "baserom.gba", 0x108FA0, 0x000000C + +gUnk_08108FAC:: @ 08108FAC + .incbin "baserom.gba", 0x108FAC, 0x0000018 + +gUnk_08108FC4:: @ 08108FC4 + .incbin "baserom.gba", 0x108FC4, 0x0000008 + +gUnk_08108FCC:: @ 08108FCC + .incbin "baserom.gba", 0x108FCC, 0x000000C + +gUnk_08108FD8:: @ 08108FD8 + .incbin "baserom.gba", 0x108FD8, 0x0000018 + +gUnk_08108FF0:: @ 08108FF0 + .incbin "baserom.gba", 0x108FF0, 0x0000008 + +gUnk_08108FF8:: @ 08108FF8 + .incbin "baserom.gba", 0x108FF8, 0x000000C + +gUnk_08109004:: @ 08109004 + .incbin "baserom.gba", 0x109004, 0x0000001 + +gUnk_08109005:: @ 08109005 + .incbin "baserom.gba", 0x109005, 0x0000014 + +gUnk_08109019:: @ 08109019 + .incbin "baserom.gba", 0x109019, 0x0000003 + +gUnk_0810901C:: @ 0810901C + .incbin "baserom.gba", 0x10901C, 0x0000008 + +gUnk_08109024:: @ 08109024 + .incbin "baserom.gba", 0x109024, 0x000000C + +gUnk_08109030:: @ 08109030 + .incbin "baserom.gba", 0x109030, 0x0000003 + +gUnk_08109033:: @ 08109033 + .incbin "baserom.gba", 0x109033, 0x0000015 + +gUnk_08109048:: @ 08109048 + .incbin "baserom.gba", 0x109048, 0x0000008 + +gUnk_08109050:: @ 08109050 + .incbin "baserom.gba", 0x109050, 0x000000C + +gUnk_0810905C:: @ 0810905C + .incbin "baserom.gba", 0x10905C, 0x0000018 + +gUnk_08109074:: @ 08109074 + .incbin "baserom.gba", 0x109074, 0x0000008 + +gUnk_0810907C:: @ 0810907C + .incbin "baserom.gba", 0x10907C, 0x000000C + +gUnk_08109088:: @ 08109088 + .incbin "baserom.gba", 0x109088, 0x0000018 + +gUnk_081090A0:: @ 081090A0 + .incbin "baserom.gba", 0x1090A0, 0x0000008 + +gUnk_081090A8:: @ 081090A8 + .incbin "baserom.gba", 0x1090A8, 0x000000C + +gUnk_081090B4:: @ 081090B4 + .incbin "baserom.gba", 0x1090B4, 0x0000018 + +gUnk_081090CC:: @ 081090CC + .incbin "baserom.gba", 0x1090CC, 0x0000008 + +gUnk_081090D4:: @ 081090D4 + .incbin "baserom.gba", 0x1090D4, 0x000000C + +gUnk_081090E0:: @ 081090E0 + .incbin "baserom.gba", 0x1090E0, 0x0000018 + +gUnk_081090F8:: @ 081090F8 + .incbin "baserom.gba", 0x1090F8, 0x0000008 + +gUnk_08109100:: @ 08109100 + .incbin "baserom.gba", 0x109100, 0x000000C + +gUnk_0810910C:: @ 0810910C + .incbin "baserom.gba", 0x10910C, 0x0000018 + +gUnk_08109124:: @ 08109124 + .incbin "baserom.gba", 0x109124, 0x0000008 + +gUnk_0810912C:: @ 0810912C + .incbin "baserom.gba", 0x10912C, 0x000000C + +gUnk_08109138:: @ 08109138 + .incbin "baserom.gba", 0x109138, 0x0000008 + +gUnk_08109140:: @ 08109140 + .incbin "baserom.gba", 0x109140, 0x0000018 + +gUnk_08109158:: @ 08109158 + .incbin "baserom.gba", 0x109158, 0x0000008 + +gUnk_08109160:: @ 08109160 + .incbin "baserom.gba", 0x109160, 0x0000018 + +gUnk_08109178:: @ 08109178 + .incbin "baserom.gba", 0x109178, 0x0000008 + +gUnk_08109180:: @ 08109180 + .incbin "baserom.gba", 0x109180, 0x000000C + +gUnk_0810918C:: @ 0810918C + .incbin "baserom.gba", 0x10918C, 0x0000008 + +gUnk_08109194:: @ 08109194 + .incbin "baserom.gba", 0x109194, 0x0000009 + +gUnk_0810919D:: @ 0810919D + .incbin "baserom.gba", 0x10919D, 0x0000047 + +gUnk_081091E4:: @ 081091E4 + .incbin "baserom.gba", 0x1091E4, 0x000000A + +gUnk_081091EE:: @ 081091EE + .incbin "baserom.gba", 0x1091EE, 0x000000A + +gUnk_081091F8:: @ 081091F8 + .incbin "baserom.gba", 0x1091F8, 0x000000A + +gUnk_08109202:: @ 08109202 + .incbin "baserom.gba", 0x109202, 0x0000012 + +gUnk_08109214:: @ 08109214 + .incbin "baserom.gba", 0x109214, 0x000001C + +gUnk_08109230:: @ 08109230 + .incbin "baserom.gba", 0x109230, 0x0000014 + +gUnk_08109244:: @ 08109244 + .incbin "baserom.gba", 0x109244, 0x0000004 + +gUnk_08109248:: @ 08109248 + .incbin "baserom.gba", 0x109248, 0x0000024 + +gUnk_0810926C:: @ 0810926C + .incbin "baserom.gba", 0x10926C, 0x0000040 + +gUnk_081092AC:: @ 081092AC + .incbin "baserom.gba", 0x1092AC, 0x0000028 + +gUnk_081092D4:: @ 081092D4 + .incbin "baserom.gba", 0x1092D4, 0x000002F + +gUnk_08109303:: @ 08109303 + .incbin "baserom.gba", 0x109303, 0x000005E + +gUnk_08109361:: @ 08109361 + .incbin "baserom.gba", 0x109361, 0x00000A5 + +gUnk_08109406:: @ 08109406 + .incbin "baserom.gba", 0x109406, 0x0000028 + +gUnk_0810942E:: @ 0810942E + .incbin "baserom.gba", 0x10942E, 0x00000A0 + +gUnk_081094CE:: @ 081094CE + .incbin "baserom.gba", 0x1094CE, 0x00000FB + +gUnk_081095C9:: @ 081095C9 + .incbin "baserom.gba", 0x1095C9, 0x000014C + +gUnk_08109715:: @ 08109715 + .incbin "baserom.gba", 0x109715, 0x0000063 + +gUnk_08109778:: @ 08109778 + .incbin "baserom.gba", 0x109778, 0x0000005 + +gUnk_0810977D:: @ 0810977D + .incbin "baserom.gba", 0x10977D, 0x0000017 + +gUnk_08109794:: @ 08109794 + .incbin "baserom.gba", 0x109794, 0x0000104 + +gUnk_08109898:: @ 08109898 + .incbin "baserom.gba", 0x109898, 0x000000F + +gUnk_081098A7:: @ 081098A7 + .incbin "baserom.gba", 0x1098A7, 0x000005F + +gUnk_08109906:: @ 08109906 + .incbin "baserom.gba", 0x109906, 0x000012A + +gUnk_08109A30:: @ 08109A30 + .incbin "baserom.gba", 0x109A30, 0x0000028 + +gUnk_08109A58:: @ 08109A58 + .incbin "baserom.gba", 0x109A58, 0x0000010 + +gUnk_08109A68:: @ 08109A68 + .incbin "baserom.gba", 0x109A68, 0x0000010 + +gUnk_08109A78:: @ 08109A78 + .incbin "baserom.gba", 0x109A78, 0x0000010 + +gUnk_08109A88:: @ 08109A88 + .incbin "baserom.gba", 0x109A88, 0x0000010 + +gUnk_08109A98:: @ 08109A98 + .incbin "baserom.gba", 0x109A98, 0x0000006 + +gUnk_08109A9E:: @ 08109A9E + .incbin "baserom.gba", 0x109A9E, 0x000000A + +gUnk_08109AA8:: @ 08109AA8 + .incbin "baserom.gba", 0x109AA8, 0x0000010 + +gUnk_08109AB8:: @ 08109AB8 + .incbin "baserom.gba", 0x109AB8, 0x0000010 + +gUnk_08109AC8:: @ 08109AC8 + .incbin "baserom.gba", 0x109AC8, 0x0000008 + +gUnk_08109AD0:: @ 08109AD0 + .incbin "baserom.gba", 0x109AD0, 0x0000008 + +gUnk_08109AD8:: @ 08109AD8 + .incbin "baserom.gba", 0x109AD8, 0x0000005 + +gUnk_08109ADD:: @ 08109ADD + .incbin "baserom.gba", 0x109ADD, 0x0000005 + +gUnk_08109AE2:: @ 08109AE2 + .incbin "baserom.gba", 0x109AE2, 0x0000005 + +gUnk_08109AE7:: @ 08109AE7 + .incbin "baserom.gba", 0x109AE7, 0x0000005 + +gUnk_08109AEC:: @ 08109AEC + .incbin "baserom.gba", 0x109AEC, 0x0000011 + +gUnk_08109AFD:: @ 08109AFD + .incbin "baserom.gba", 0x109AFD, 0x000000B + +gUnk_08109B08:: @ 08109B08 + .incbin "baserom.gba", 0x109B08, 0x0000006 + +gUnk_08109B0E:: @ 08109B0E + .incbin "baserom.gba", 0x109B0E, 0x000002D + +gUnk_08109B3B:: @ 08109B3B + .incbin "baserom.gba", 0x109B3B, 0x0000025 + +gUnk_08109B60:: @ 08109B60 + .incbin "baserom.gba", 0x109B60, 0x0000020 + +gUnk_08109B80:: @ 08109B80 + .incbin "baserom.gba", 0x109B80, 0x000003C + +gUnk_08109BBC:: @ 08109BBC + .incbin "baserom.gba", 0x109BBC, 0x000000C + +gUnk_08109BC8:: @ 08109BC8 + .incbin "baserom.gba", 0x109BC8, 0x0000005 + +gUnk_08109BCD:: @ 08109BCD + .incbin "baserom.gba", 0x109BCD, 0x0000005 + +gUnk_08109BD2:: @ 08109BD2 + .incbin "baserom.gba", 0x109BD2, 0x0000005 + +gUnk_08109BD7:: @ 08109BD7 + .incbin "baserom.gba", 0x109BD7, 0x0000011 + +gUnk_08109BE8:: @ 08109BE8 + .incbin "baserom.gba", 0x109BE8, 0x0000011 + +gUnk_08109BF9:: @ 08109BF9 + .incbin "baserom.gba", 0x109BF9, 0x0000035 + +gUnk_08109C2E:: @ 08109C2E + .incbin "baserom.gba", 0x109C2E, 0x000001D + +gUnk_08109C4B:: @ 08109C4B + .incbin "baserom.gba", 0x109C4B, 0x0000009 + +gUnk_08109C54:: @ 08109C54 + .incbin "baserom.gba", 0x109C54, 0x0000005 + +gUnk_08109C59:: @ 08109C59 + .incbin "baserom.gba", 0x109C59, 0x0000007 + +gUnk_08109C60:: @ 08109C60 + .incbin "baserom.gba", 0x109C60, 0x0000038 + +gUnk_08109C98:: @ 08109C98 + .incbin "baserom.gba", 0x109C98, 0x0000080 + +gUnk_08109D18:: @ 08109D18 + .incbin "baserom.gba", 0x109D18, 0x0000063 + +gUnk_08109D7B:: @ 08109D7B + .incbin "baserom.gba", 0x109D7B, 0x000002E + +gUnk_08109DA9:: @ 08109DA9 + .incbin "baserom.gba", 0x109DA9, 0x000001F + +gUnk_08109DC8:: @ 08109DC8 + .incbin "baserom.gba", 0x109DC8, 0x000003F + +gUnk_08109E07:: @ 08109E07 + .incbin "baserom.gba", 0x109E07, 0x000010E + +gUnk_08109F15:: @ 08109F15 + .incbin "baserom.gba", 0x109F15, 0x0000052 + +gUnk_08109F67:: @ 08109F67 + .incbin "baserom.gba", 0x109F67, 0x0000005 + +gUnk_08109F6C:: @ 08109F6C + .incbin "baserom.gba", 0x109F6C, 0x000002B + +gUnk_08109F97:: @ 08109F97 + .incbin "baserom.gba", 0x109F97, 0x00000B1 + +gUnk_0810A048:: @ 0810A048 + .incbin "baserom.gba", 0x10A048, 0x0000111 + +gUnk_0810A159:: @ 0810A159 + .incbin "baserom.gba", 0x10A159, 0x0000048 + +gUnk_0810A1A1:: @ 0810A1A1 + .incbin "baserom.gba", 0x10A1A1, 0x00001A7 + +gUnk_0810A348:: @ 0810A348 + .incbin "baserom.gba", 0x10A348, 0x000000C + +gUnk_0810A354:: @ 0810A354 + .incbin "baserom.gba", 0x10A354, 0x0000006 + +gUnk_0810A35A:: @ 0810A35A + .incbin "baserom.gba", 0x10A35A, 0x0000008 + +gUnk_0810A362:: @ 0810A362 + .incbin "baserom.gba", 0x10A362, 0x0000008 + +gUnk_0810A36A:: @ 0810A36A + .incbin "baserom.gba", 0x10A36A, 0x0000005 + +gUnk_0810A36F:: @ 0810A36F + .incbin "baserom.gba", 0x10A36F, 0x0000005 + +gUnk_0810A374:: @ 0810A374 + .incbin "baserom.gba", 0x10A374, 0x0000005 + +gUnk_0810A379:: @ 0810A379 + .incbin "baserom.gba", 0x10A379, 0x0000001 + +gUnk_0810A37A:: @ 0810A37A + .incbin "baserom.gba", 0x10A37A, 0x0000004 + +gUnk_0810A37E:: @ 0810A37E + .incbin "baserom.gba", 0x10A37E, 0x0000021 + +gUnk_0810A39F:: @ 0810A39F + .incbin "baserom.gba", 0x10A39F, 0x0000021 + +gUnk_0810A3C0:: @ 0810A3C0 + .incbin "baserom.gba", 0x10A3C0, 0x0000021 + +gUnk_0810A3E1:: @ 0810A3E1 + .incbin "baserom.gba", 0x10A3E1, 0x000001F + +gUnk_0810A400:: @ 0810A400 + .incbin "baserom.gba", 0x10A400, 0x0000002 + +gUnk_0810A402:: @ 0810A402 + .incbin "baserom.gba", 0x10A402, 0x0000005 + +gUnk_0810A407:: @ 0810A407 + .incbin "baserom.gba", 0x10A407, 0x0000001 + +gUnk_0810A408:: @ 0810A408 + .incbin "baserom.gba", 0x10A408, 0x0000004 + +gUnk_0810A40C:: @ 0810A40C + .incbin "baserom.gba", 0x10A40C, 0x0000005 + +gUnk_0810A411:: @ 0810A411 + .incbin "baserom.gba", 0x10A411, 0x0000005 + +gUnk_0810A416:: @ 0810A416 + .incbin "baserom.gba", 0x10A416, 0x000000D + +gUnk_0810A423:: @ 0810A423 + .incbin "baserom.gba", 0x10A423, 0x000000D + +gUnk_0810A430:: @ 0810A430 + .incbin "baserom.gba", 0x10A430, 0x000000D + +gUnk_0810A43D:: @ 0810A43D + .incbin "baserom.gba", 0x10A43D, 0x000000D + +gUnk_0810A44A:: @ 0810A44A + .incbin "baserom.gba", 0x10A44A, 0x000000D + +gUnk_0810A457:: @ 0810A457 + .incbin "baserom.gba", 0x10A457, 0x000000D + +gUnk_0810A464:: @ 0810A464 + .incbin "baserom.gba", 0x10A464, 0x000000D + +gUnk_0810A471:: @ 0810A471 + .incbin "baserom.gba", 0x10A471, 0x000000D + +gUnk_0810A47E:: @ 0810A47E + .incbin "baserom.gba", 0x10A47E, 0x000000D + +gUnk_0810A48B:: @ 0810A48B + .incbin "baserom.gba", 0x10A48B, 0x000000D + +gUnk_0810A498:: @ 0810A498 + .incbin "baserom.gba", 0x10A498, 0x000000D + +gUnk_0810A4A5:: @ 0810A4A5 + .incbin "baserom.gba", 0x10A4A5, 0x000000D + +gUnk_0810A4B2:: @ 0810A4B2 + .incbin "baserom.gba", 0x10A4B2, 0x000000D + +gUnk_0810A4BF:: @ 0810A4BF + .incbin "baserom.gba", 0x10A4BF, 0x000000D + +gUnk_0810A4CC:: @ 0810A4CC + .incbin "baserom.gba", 0x10A4CC, 0x000000D + +gUnk_0810A4D9:: @ 0810A4D9 + .incbin "baserom.gba", 0x10A4D9, 0x000000D + +gUnk_0810A4E6:: @ 0810A4E6 + .incbin "baserom.gba", 0x10A4E6, 0x000000D + +gUnk_0810A4F3:: @ 0810A4F3 + .incbin "baserom.gba", 0x10A4F3, 0x000000D + +gUnk_0810A500:: @ 0810A500 + .incbin "baserom.gba", 0x10A500, 0x000000D + +gUnk_0810A50D:: @ 0810A50D + .incbin "baserom.gba", 0x10A50D, 0x000000D + +gUnk_0810A51A:: @ 0810A51A + .incbin "baserom.gba", 0x10A51A, 0x000000D + +gUnk_0810A527:: @ 0810A527 + .incbin "baserom.gba", 0x10A527, 0x000000D + +gUnk_0810A534:: @ 0810A534 + .incbin "baserom.gba", 0x10A534, 0x000000D + +gUnk_0810A541:: @ 0810A541 + .incbin "baserom.gba", 0x10A541, 0x000000D + +gUnk_0810A54E:: @ 0810A54E + .incbin "baserom.gba", 0x10A54E, 0x000000D + +gUnk_0810A55B:: @ 0810A55B + .incbin "baserom.gba", 0x10A55B, 0x000000D + +gUnk_0810A568:: @ 0810A568 + .incbin "baserom.gba", 0x10A568, 0x000000D + +gUnk_0810A575:: @ 0810A575 + .incbin "baserom.gba", 0x10A575, 0x000000D + +gUnk_0810A582:: @ 0810A582 + .incbin "baserom.gba", 0x10A582, 0x000000D + +gUnk_0810A58F:: @ 0810A58F + .incbin "baserom.gba", 0x10A58F, 0x000000D + +gUnk_0810A59C:: @ 0810A59C + .incbin "baserom.gba", 0x10A59C, 0x000000D + +gUnk_0810A5A9:: @ 0810A5A9 + .incbin "baserom.gba", 0x10A5A9, 0x000000F + +gUnk_0810A5B8:: @ 0810A5B8 + .incbin "baserom.gba", 0x10A5B8, 0x00000B4 + +gUnk_0810A66C:: @ 0810A66C + .incbin "baserom.gba", 0x10A66C, 0x00000BC + +gUnk_0810A728:: @ 0810A728 + .incbin "baserom.gba", 0x10A728, 0x0000040 + +gUnk_0810A768:: @ 0810A768 + .incbin "baserom.gba", 0x10A768, 0x0000005 + +gUnk_0810A76D:: @ 0810A76D + .incbin "baserom.gba", 0x10A76D, 0x0000005 + +gUnk_0810A772:: @ 0810A772 + .incbin "baserom.gba", 0x10A772, 0x0000005 + +gUnk_0810A777:: @ 0810A777 + .incbin "baserom.gba", 0x10A777, 0x0000006 + +gUnk_0810A77D:: @ 0810A77D + .incbin "baserom.gba", 0x10A77D, 0x0000006 + +gUnk_0810A783:: @ 0810A783 + .incbin "baserom.gba", 0x10A783, 0x0000006 + +gUnk_0810A789:: @ 0810A789 + .incbin "baserom.gba", 0x10A789, 0x0000005 + +gUnk_0810A78E:: @ 0810A78E + .incbin "baserom.gba", 0x10A78E, 0x0000006 + +gUnk_0810A794:: @ 0810A794 + .incbin "baserom.gba", 0x10A794, 0x0000006 + +gUnk_0810A79A:: @ 0810A79A + .incbin "baserom.gba", 0x10A79A, 0x0000006 + +gUnk_0810A7A0:: @ 0810A7A0 + .incbin "baserom.gba", 0x10A7A0, 0x0000006 + +gUnk_0810A7A6:: @ 0810A7A6 + .incbin "baserom.gba", 0x10A7A6, 0x0000006 + +gUnk_0810A7AC:: @ 0810A7AC + .incbin "baserom.gba", 0x10A7AC, 0x0000007 + +gUnk_0810A7B3:: @ 0810A7B3 + .incbin "baserom.gba", 0x10A7B3, 0x0000006 + +gUnk_0810A7B9:: @ 0810A7B9 + .incbin "baserom.gba", 0x10A7B9, 0x0000006 + +gUnk_0810A7BF:: @ 0810A7BF + .incbin "baserom.gba", 0x10A7BF, 0x0000006 + +gUnk_0810A7C5:: @ 0810A7C5 + .incbin "baserom.gba", 0x10A7C5, 0x0000005 + +gUnk_0810A7CA:: @ 0810A7CA + .incbin "baserom.gba", 0x10A7CA, 0x0000006 + +gUnk_0810A7D0:: @ 0810A7D0 + .incbin "baserom.gba", 0x10A7D0, 0x0000006 + +gUnk_0810A7D6:: @ 0810A7D6 + .incbin "baserom.gba", 0x10A7D6, 0x0000005 + +gUnk_0810A7DB:: @ 0810A7DB + .incbin "baserom.gba", 0x10A7DB, 0x0000005 + +gUnk_0810A7E0:: @ 0810A7E0 + .incbin "baserom.gba", 0x10A7E0, 0x0000005 + +gUnk_0810A7E5:: @ 0810A7E5 + .incbin "baserom.gba", 0x10A7E5, 0x0000010 + +gUnk_0810A7F5:: @ 0810A7F5 + .incbin "baserom.gba", 0x10A7F5, 0x0000010 + +gUnk_0810A805:: @ 0810A805 + .incbin "baserom.gba", 0x10A805, 0x0000008 + +gUnk_0810A80D:: @ 0810A80D + .incbin "baserom.gba", 0x10A80D, 0x0000008 + +gUnk_0810A815:: @ 0810A815 + .incbin "baserom.gba", 0x10A815, 0x0000005 + +gUnk_0810A81A:: @ 0810A81A + .incbin "baserom.gba", 0x10A81A, 0x0000005 + +gUnk_0810A81F:: @ 0810A81F + .incbin "baserom.gba", 0x10A81F, 0x0000006 + +gUnk_0810A825:: @ 0810A825 + .incbin "baserom.gba", 0x10A825, 0x0000005 + +gUnk_0810A82A:: @ 0810A82A + .incbin "baserom.gba", 0x10A82A, 0x0000005 + +gUnk_0810A82F:: @ 0810A82F + .incbin "baserom.gba", 0x10A82F, 0x0000006 + +gUnk_0810A835:: @ 0810A835 + .incbin "baserom.gba", 0x10A835, 0x0000006 + +gUnk_0810A83B:: @ 0810A83B + .incbin "baserom.gba", 0x10A83B, 0x0000006 + +gUnk_0810A841:: @ 0810A841 + .incbin "baserom.gba", 0x10A841, 0x0000007 + +gUnk_0810A848:: @ 0810A848 + .incbin "baserom.gba", 0x10A848, 0x0000007 + +gUnk_0810A84F:: @ 0810A84F + .incbin "baserom.gba", 0x10A84F, 0x000000F + +gUnk_0810A85E:: @ 0810A85E + .incbin "baserom.gba", 0x10A85E, 0x000000F + +gUnk_0810A86D:: @ 0810A86D + .incbin "baserom.gba", 0x10A86D, 0x0000005 + +gUnk_0810A872:: @ 0810A872 + .incbin "baserom.gba", 0x10A872, 0x0000005 + +gUnk_0810A877:: @ 0810A877 + .incbin "baserom.gba", 0x10A877, 0x0000005 + +gUnk_0810A87C:: @ 0810A87C + .incbin "baserom.gba", 0x10A87C, 0x0000005 + +gUnk_0810A881:: @ 0810A881 + .incbin "baserom.gba", 0x10A881, 0x0000005 + +gUnk_0810A886:: @ 0810A886 + .incbin "baserom.gba", 0x10A886, 0x0000005 + +gUnk_0810A88B:: @ 0810A88B + .incbin "baserom.gba", 0x10A88B, 0x0000006 + +gUnk_0810A891:: @ 0810A891 + .incbin "baserom.gba", 0x10A891, 0x0000006 + +gUnk_0810A897:: @ 0810A897 + .incbin "baserom.gba", 0x10A897, 0x0000005 + +gUnk_0810A89C:: @ 0810A89C + .incbin "baserom.gba", 0x10A89C, 0x0000006 + +gUnk_0810A8A2:: @ 0810A8A2 + .incbin "baserom.gba", 0x10A8A2, 0x0000005 + +gUnk_0810A8A7:: @ 0810A8A7 + .incbin "baserom.gba", 0x10A8A7, 0x0000005 + +gUnk_0810A8AC:: @ 0810A8AC + .incbin "baserom.gba", 0x10A8AC, 0x0000005 + +gUnk_0810A8B1:: @ 0810A8B1 + .incbin "baserom.gba", 0x10A8B1, 0x0000005 + +gUnk_0810A8B6:: @ 0810A8B6 + .incbin "baserom.gba", 0x10A8B6, 0x0000005 + +gUnk_0810A8BB:: @ 0810A8BB + .incbin "baserom.gba", 0x10A8BB, 0x0000005 + +gUnk_0810A8C0:: @ 0810A8C0 + .incbin "baserom.gba", 0x10A8C0, 0x000000B + +gUnk_0810A8CB:: @ 0810A8CB + .incbin "baserom.gba", 0x10A8CB, 0x000000B + +gUnk_0810A8D6:: @ 0810A8D6 + .incbin "baserom.gba", 0x10A8D6, 0x0000005 + +gUnk_0810A8DB:: @ 0810A8DB + .incbin "baserom.gba", 0x10A8DB, 0x0000005 + +gUnk_0810A8E0:: @ 0810A8E0 + .incbin "baserom.gba", 0x10A8E0, 0x0000009 + +gUnk_0810A8E9:: @ 0810A8E9 + .incbin "baserom.gba", 0x10A8E9, 0x0000009 + +gUnk_0810A8F2:: @ 0810A8F2 + .incbin "baserom.gba", 0x10A8F2, 0x0000007 + +gUnk_0810A8F9:: @ 0810A8F9 + .incbin "baserom.gba", 0x10A8F9, 0x0000007 + +gUnk_0810A900:: @ 0810A900 + .incbin "baserom.gba", 0x10A900, 0x0000005 + +gUnk_0810A905:: @ 0810A905 + .incbin "baserom.gba", 0x10A905, 0x0000006 + +gUnk_0810A90B:: @ 0810A90B + .incbin "baserom.gba", 0x10A90B, 0x0000006 + +gUnk_0810A911:: @ 0810A911 + .incbin "baserom.gba", 0x10A911, 0x0000007 + +gUnk_0810A918:: @ 0810A918 + .incbin "baserom.gba", 0x10A918, 0x000010C + +gUnk_0810AA24:: @ 0810AA24 + .incbin "baserom.gba", 0x10AA24, 0x000000C + +gUnk_0810AA30:: @ 0810AA30 + .incbin "baserom.gba", 0x10AA30, 0x0000040 + +gUnk_0810AA70:: @ 0810AA70 + .incbin "baserom.gba", 0x10AA70, 0x0000020 + +gUnk_0810AA90:: @ 0810AA90 + .incbin "baserom.gba", 0x10AA90, 0x0000029 + +gUnk_0810AAB9:: @ 0810AAB9 + .incbin "baserom.gba", 0x10AAB9, 0x0000029 + +gUnk_0810AAE2:: @ 0810AAE2 + .incbin "baserom.gba", 0x10AAE2, 0x0000029 + +gUnk_0810AB0B:: @ 0810AB0B + .incbin "baserom.gba", 0x10AB0B, 0x0000029 + +gUnk_0810AB34:: @ 0810AB34 + .incbin "baserom.gba", 0x10AB34, 0x0000031 + +gUnk_0810AB65:: @ 0810AB65 + .incbin "baserom.gba", 0x10AB65, 0x0000031 + +gUnk_0810AB96:: @ 0810AB96 + .incbin "baserom.gba", 0x10AB96, 0x0000031 + +gUnk_0810ABC7:: @ 0810ABC7 + .incbin "baserom.gba", 0x10ABC7, 0x0000031 + +gUnk_0810ABF8:: @ 0810ABF8 + .incbin "baserom.gba", 0x10ABF8, 0x0000024 + +gUnk_0810AC1C:: @ 0810AC1C + .incbin "baserom.gba", 0x10AC1C, 0x0000010 + +gUnk_0810AC2C:: @ 0810AC2C + .incbin "baserom.gba", 0x10AC2C, 0x0000020 + +gUnk_0810AC4C:: @ 0810AC4C + .incbin "baserom.gba", 0x10AC4C, 0x0000008 + +gUnk_0810AC54:: @ 0810AC54 + .incbin "baserom.gba", 0x10AC54, 0x0000009 + +gUnk_0810AC5D:: @ 0810AC5D + .incbin "baserom.gba", 0x10AC5D, 0x0000013 + +gUnk_0810AC70:: @ 0810AC70 + .incbin "baserom.gba", 0x10AC70, 0x0000008 + +gUnk_0810AC78:: @ 0810AC78 + .incbin "baserom.gba", 0x10AC78, 0x0000009 + +gUnk_0810AC81:: @ 0810AC81 + .incbin "baserom.gba", 0x10AC81, 0x0000019 + +gUnk_0810AC9A:: @ 0810AC9A + .incbin "baserom.gba", 0x10AC9A, 0x0000019 + +gUnk_0810ACB3:: @ 0810ACB3 + .incbin "baserom.gba", 0x10ACB3, 0x0000019 + +gUnk_0810ACCC:: @ 0810ACCC + .incbin "baserom.gba", 0x10ACCC, 0x0000021 + +gUnk_0810ACED:: @ 0810ACED + .incbin "baserom.gba", 0x10ACED, 0x0000021 + +gUnk_0810AD0E:: @ 0810AD0E + .incbin "baserom.gba", 0x10AD0E, 0x0000021 + +gUnk_0810AD2F:: @ 0810AD2F + .incbin "baserom.gba", 0x10AD2F, 0x0000021 + +gUnk_0810AD50:: @ 0810AD50 + .incbin "baserom.gba", 0x10AD50, 0x0000021 + +gUnk_0810AD71:: @ 0810AD71 + .incbin "baserom.gba", 0x10AD71, 0x0000021 + +gUnk_0810AD92:: @ 0810AD92 + .incbin "baserom.gba", 0x10AD92, 0x000001B + +gUnk_0810ADAD:: @ 0810ADAD + .incbin "baserom.gba", 0x10ADAD, 0x0000006 + +gUnk_0810ADB3:: @ 0810ADB3 + .incbin "baserom.gba", 0x10ADB3, 0x0000021 + +gUnk_0810ADD4:: @ 0810ADD4 + .incbin "baserom.gba", 0x10ADD4, 0x0000021 + +gUnk_0810ADF5:: @ 0810ADF5 + .incbin "baserom.gba", 0x10ADF5, 0x0000021 + +gUnk_0810AE16:: @ 0810AE16 + .incbin "baserom.gba", 0x10AE16, 0x0000021 + +gUnk_0810AE37:: @ 0810AE37 + .incbin "baserom.gba", 0x10AE37, 0x0000021 + +gUnk_0810AE58:: @ 0810AE58 + .incbin "baserom.gba", 0x10AE58, 0x0000024 + +gUnk_0810AE7C:: @ 0810AE7C + .incbin "baserom.gba", 0x10AE7C, 0x0000021 + +gUnk_0810AE9D:: @ 0810AE9D + .incbin "baserom.gba", 0x10AE9D, 0x0000003 + +gUnk_0810AEA0:: @ 0810AEA0 + .incbin "baserom.gba", 0x10AEA0, 0x0000024 + +gUnk_0810AEC4:: @ 0810AEC4 + .incbin "baserom.gba", 0x10AEC4, 0x0000024 + +gUnk_0810AEE8:: @ 0810AEE8 + .incbin "baserom.gba", 0x10AEE8, 0x000001F + +gUnk_0810AF07:: @ 0810AF07 + .incbin "baserom.gba", 0x10AF07, 0x0000012 + +gUnk_0810AF19:: @ 0810AF19 + .incbin "baserom.gba", 0x10AF19, 0x000002B + +gUnk_0810AF44:: @ 0810AF44 + .incbin "baserom.gba", 0x10AF44, 0x0000006 + +gUnk_0810AF4A:: @ 0810AF4A + .incbin "baserom.gba", 0x10AF4A, 0x0000031 + +gUnk_0810AF7B:: @ 0810AF7B + .incbin "baserom.gba", 0x10AF7B, 0x0000031 + +gUnk_0810AFAC:: @ 0810AFAC + .incbin "baserom.gba", 0x10AFAC, 0x0000021 + +gUnk_0810AFCD:: @ 0810AFCD + .incbin "baserom.gba", 0x10AFCD, 0x0000021 + +gUnk_0810AFEE:: @ 0810AFEE + .incbin "baserom.gba", 0x10AFEE, 0x000001A + +gUnk_0810B008:: @ 0810B008 + .incbin "baserom.gba", 0x10B008, 0x0000007 + +gUnk_0810B00F:: @ 0810B00F + .incbin "baserom.gba", 0x10B00F, 0x0000021 + +gUnk_0810B030:: @ 0810B030 + .incbin "baserom.gba", 0x10B030, 0x000000C + +gUnk_0810B03C:: @ 0810B03C + .incbin "baserom.gba", 0x10B03C, 0x000000C + +gUnk_0810B048:: @ 0810B048 + .incbin "baserom.gba", 0x10B048, 0x000000C + +gUnk_0810B054:: @ 0810B054 + .incbin "baserom.gba", 0x10B054, 0x000000C + +gUnk_0810B060:: @ 0810B060 + .incbin "baserom.gba", 0x10B060, 0x0000011 + +gUnk_0810B071:: @ 0810B071 + .incbin "baserom.gba", 0x10B071, 0x0000011 + +gUnk_0810B082:: @ 0810B082 + .incbin "baserom.gba", 0x10B082, 0x0000011 + +gUnk_0810B093:: @ 0810B093 + .incbin "baserom.gba", 0x10B093, 0x0000011 + +gUnk_0810B0A4:: @ 0810B0A4 + .incbin "baserom.gba", 0x10B0A4, 0x0000011 + +gUnk_0810B0B5:: @ 0810B0B5 + .incbin "baserom.gba", 0x10B0B5, 0x0000011 + +gUnk_0810B0C6:: @ 0810B0C6 + .incbin "baserom.gba", 0x10B0C6, 0x0000011 + +gUnk_0810B0D7:: @ 0810B0D7 + .incbin "baserom.gba", 0x10B0D7, 0x0000011 + +gUnk_0810B0E8:: @ 0810B0E8 + .incbin "baserom.gba", 0x10B0E8, 0x0000011 + +gUnk_0810B0F9:: @ 0810B0F9 + .incbin "baserom.gba", 0x10B0F9, 0x0000011 + +gUnk_0810B10A:: @ 0810B10A + .incbin "baserom.gba", 0x10B10A, 0x0000011 + +gUnk_0810B11B:: @ 0810B11B + .incbin "baserom.gba", 0x10B11B, 0x0000011 + +gUnk_0810B12C:: @ 0810B12C + .incbin "baserom.gba", 0x10B12C, 0x0000011 + +gUnk_0810B13D:: @ 0810B13D + .incbin "baserom.gba", 0x10B13D, 0x0000011 + +gUnk_0810B14E:: @ 0810B14E + .incbin "baserom.gba", 0x10B14E, 0x0000011 + +gUnk_0810B15F:: @ 0810B15F + .incbin "baserom.gba", 0x10B15F, 0x0000011 + +gUnk_0810B170:: @ 0810B170 + .incbin "baserom.gba", 0x10B170, 0x000001C + +gUnk_0810B18C:: @ 0810B18C + .incbin "baserom.gba", 0x10B18C, 0x000001C + +gUnk_0810B1A8:: @ 0810B1A8 + .incbin "baserom.gba", 0x10B1A8, 0x0000009 + +gUnk_0810B1B1:: @ 0810B1B1 + .incbin "baserom.gba", 0x10B1B1, 0x0000013 + +gUnk_0810B1C4:: @ 0810B1C4 + .incbin "baserom.gba", 0x10B1C4, 0x000001C + +gUnk_0810B1E0:: @ 0810B1E0 + .incbin "baserom.gba", 0x10B1E0, 0x000001C + +gUnk_0810B1FC:: @ 0810B1FC + .incbin "baserom.gba", 0x10B1FC, 0x000001C + +gUnk_0810B218:: @ 0810B218 + .incbin "baserom.gba", 0x10B218, 0x000001C + +gUnk_0810B234:: @ 0810B234 + .incbin "baserom.gba", 0x10B234, 0x000001C + +gUnk_0810B250:: @ 0810B250 + .incbin "baserom.gba", 0x10B250, 0x0000030 + +gUnk_0810B280:: @ 0810B280 + .incbin "baserom.gba", 0x10B280, 0x0000030 + +gUnk_0810B2B0:: @ 0810B2B0 + .incbin "baserom.gba", 0x10B2B0, 0x0000030 + +gUnk_0810B2E0:: @ 0810B2E0 + .incbin "baserom.gba", 0x10B2E0, 0x0000030 + +gUnk_0810B310:: @ 0810B310 + .incbin "baserom.gba", 0x10B310, 0x0000030 + +gUnk_0810B340:: @ 0810B340 + .incbin "baserom.gba", 0x10B340, 0x0000030 + +gUnk_0810B370:: @ 0810B370 + .incbin "baserom.gba", 0x10B370, 0x0000030 + +gUnk_0810B3A0:: @ 0810B3A0 + .incbin "baserom.gba", 0x10B3A0, 0x0000022 + +gUnk_0810B3C2:: @ 0810B3C2 + .incbin "baserom.gba", 0x10B3C2, 0x000000E + +gUnk_0810B3D0:: @ 0810B3D0 + .incbin "baserom.gba", 0x10B3D0, 0x0000028 + +gUnk_0810B3F8:: @ 0810B3F8 + .incbin "baserom.gba", 0x10B3F8, 0x000000F + +gUnk_0810B407:: @ 0810B407 + .incbin "baserom.gba", 0x10B407, 0x0000019 + +gUnk_0810B420:: @ 0810B420 + .incbin "baserom.gba", 0x10B420, 0x0000028 + +gUnk_0810B448:: @ 0810B448 + .incbin "baserom.gba", 0x10B448, 0x0000028 + +gUnk_0810B470:: @ 0810B470 + .incbin "baserom.gba", 0x10B470, 0x0000019 + +gUnk_0810B489:: @ 0810B489 + .incbin "baserom.gba", 0x10B489, 0x0000005 + +gUnk_0810B48E:: @ 0810B48E + .incbin "baserom.gba", 0x10B48E, 0x0000019 + +gUnk_0810B4A7:: @ 0810B4A7 + .incbin "baserom.gba", 0x10B4A7, 0x0000035 + +gUnk_0810B4DC:: @ 0810B4DC + .incbin "baserom.gba", 0x10B4DC, 0x0000010 + +gUnk_0810B4EC:: @ 0810B4EC + .incbin "baserom.gba", 0x10B4EC, 0x0000164 + +gUnk_0810B650:: @ 0810B650 + .incbin "baserom.gba", 0x10B650, 0x0000002 + +gUnk_0810B652:: @ 0810B652 + .incbin "baserom.gba", 0x10B652, 0x0000002 + +gUnk_0810B654:: @ 0810B654 + .incbin "baserom.gba", 0x10B654, 0x0000002 + +gUnk_0810B656:: @ 0810B656 + .incbin "baserom.gba", 0x10B656, 0x0000002 + +gUnk_0810B658:: @ 0810B658 + .incbin "baserom.gba", 0x10B658, 0x0000002 + +gUnk_0810B65A:: @ 0810B65A + .incbin "baserom.gba", 0x10B65A, 0x0000002 + +gUnk_0810B65C:: @ 0810B65C + .incbin "baserom.gba", 0x10B65C, 0x0000002 + +gUnk_0810B65E:: @ 0810B65E + .incbin "baserom.gba", 0x10B65E, 0x0000002 + +gUnk_0810B660:: @ 0810B660 + .incbin "baserom.gba", 0x10B660, 0x0000020 + +gUnk_0810B680:: @ 0810B680 + .incbin "baserom.gba", 0x10B680, 0x000002A + +gUnk_0810B6AA:: @ 0810B6AA + .incbin "baserom.gba", 0x10B6AA, 0x0000009 + +gUnk_0810B6B3:: @ 0810B6B3 + .incbin "baserom.gba", 0x10B6B3, 0x0000021 + +gUnk_0810B6D4:: @ 0810B6D4 + .incbin "baserom.gba", 0x10B6D4, 0x000000C + +gUnk_0810B6E0:: @ 0810B6E0 + .incbin "baserom.gba", 0x10B6E0, 0x000000C + +gUnk_0810B6EC:: @ 0810B6EC + .incbin "baserom.gba", 0x10B6EC, 0x0000054 + +gUnk_0810B740:: @ 0810B740 + .incbin "baserom.gba", 0x10B740, 0x0000008 + +gUnk_0810B748:: @ 0810B748 + .incbin "baserom.gba", 0x10B748, 0x0000002 + +gUnk_0810B74A:: @ 0810B74A + .incbin "baserom.gba", 0x10B74A, 0x0000018 + +gUnk_0810B762:: @ 0810B762 + .incbin "baserom.gba", 0x10B762, 0x0000012 + +gUnk_0810B774:: @ 0810B774 + .incbin "baserom.gba", 0x10B774, 0x0000008 + +gUnk_0810B77C:: @ 0810B77C + .incbin "baserom.gba", 0x10B77C, 0x0000010 + +gUnk_0810B78C:: @ 0810B78C + .incbin "baserom.gba", 0x10B78C, 0x0000004 + +gUnk_0810B790:: @ 0810B790 + .incbin "baserom.gba", 0x10B790, 0x000001C + +gUnk_0810B7AC:: @ 0810B7AC + .incbin "baserom.gba", 0x10B7AC, 0x000000E + +gUnk_0810B7BA:: @ 0810B7BA + .incbin "baserom.gba", 0x10B7BA, 0x0000006 + +gUnk_0810B7C0:: @ 0810B7C0 + .incbin "baserom.gba", 0x10B7C0, 0x000012B + +gUnk_0810B8EB:: @ 0810B8EB + .incbin "baserom.gba", 0x10B8EB, 0x0000037 + +gUnk_0810B922:: @ 0810B922 + .incbin "baserom.gba", 0x10B922, 0x0000049 + +gUnk_0810B96B:: @ 0810B96B + .incbin "baserom.gba", 0x10B96B, 0x0000065 + +gUnk_0810B9D0:: @ 0810B9D0 + .incbin "baserom.gba", 0x10B9D0, 0x0000031 + +gUnk_0810BA01:: @ 0810BA01 + .incbin "baserom.gba", 0x10BA01, 0x0000117 + +gUnk_0810BB18:: @ 0810BB18 + .incbin "baserom.gba", 0x10BB18, 0x0000059 + +gUnk_0810BB71:: @ 0810BB71 + .incbin "baserom.gba", 0x10BB71, 0x000005B + +gUnk_0810BBCC:: @ 0810BBCC + .incbin "baserom.gba", 0x10BBCC, 0x000009C + +gUnk_0810BC68:: @ 0810BC68 + .incbin "baserom.gba", 0x10BC68, 0x0000098 + +gUnk_0810BD00:: @ 0810BD00 + .incbin "baserom.gba", 0x10BD00, 0x0000005 + +gUnk_0810BD05:: @ 0810BD05 + .incbin "baserom.gba", 0x10BD05, 0x0000005 + +gUnk_0810BD0A:: @ 0810BD0A + .incbin "baserom.gba", 0x10BD0A, 0x0000005 + +gUnk_0810BD0F:: @ 0810BD0F + .incbin "baserom.gba", 0x10BD0F, 0x0000005 + +gUnk_0810BD14:: @ 0810BD14 + .incbin "baserom.gba", 0x10BD14, 0x0000011 + +gUnk_0810BD25:: @ 0810BD25 + .incbin "baserom.gba", 0x10BD25, 0x0000011 + +gUnk_0810BD36:: @ 0810BD36 + .incbin "baserom.gba", 0x10BD36, 0x0000011 + +gUnk_0810BD47:: @ 0810BD47 + .incbin "baserom.gba", 0x10BD47, 0x0000011 + +gUnk_0810BD58:: @ 0810BD58 + .incbin "baserom.gba", 0x10BD58, 0x0000016 + +gUnk_0810BD6E:: @ 0810BD6E + .incbin "baserom.gba", 0x10BD6E, 0x000000E + +gUnk_0810BD7C:: @ 0810BD7C + .incbin "baserom.gba", 0x10BD7C, 0x0000010 + +gUnk_0810BD8C:: @ 0810BD8C + .incbin "baserom.gba", 0x10BD8C, 0x0000010 + +gUnk_0810BD9C:: @ 0810BD9C + .incbin "baserom.gba", 0x10BD9C, 0x0000010 + +gUnk_0810BDAC:: @ 0810BDAC + .incbin "baserom.gba", 0x10BDAC, 0x000000C + +gUnk_0810BDB8:: @ 0810BDB8 + .incbin "baserom.gba", 0x10BDB8, 0x000000C + +gUnk_0810BDC4:: @ 0810BDC4 + .incbin "baserom.gba", 0x10BDC4, 0x0000024 + +gUnk_0810BDE8:: @ 0810BDE8 + .incbin "baserom.gba", 0x10BDE8, 0x0000024 + +gUnk_0810BE0C:: @ 0810BE0C + .incbin "baserom.gba", 0x10BE0C, 0x0000003 + +gUnk_0810BE0F:: @ 0810BE0F + .incbin "baserom.gba", 0x10BE0F, 0x0000001 + +gUnk_0810BE10:: @ 0810BE10 + .incbin "baserom.gba", 0x10BE10, 0x0000031 + +gUnk_0810BE41:: @ 0810BE41 + .incbin "baserom.gba", 0x10BE41, 0x00000C2 + +gUnk_0810BF03:: @ 0810BF03 + .incbin "baserom.gba", 0x10BF03, 0x0000104 + +gUnk_0810C007:: @ 0810C007 + .incbin "baserom.gba", 0x10C007, 0x0000008 + +gUnk_0810C00F:: @ 0810C00F + .incbin "baserom.gba", 0x10C00F, 0x0000091 + +gUnk_0810C0A0:: @ 0810C0A0 + .incbin "baserom.gba", 0x10C0A0, 0x0000024 + +gUnk_0810C0C4:: @ 0810C0C4 + .incbin "baserom.gba", 0x10C0C4, 0x0000005 + +gUnk_0810C0C9:: @ 0810C0C9 + .incbin "baserom.gba", 0x10C0C9, 0x0000005 + +gUnk_0810C0CE:: @ 0810C0CE + .incbin "baserom.gba", 0x10C0CE, 0x0000005 + +gUnk_0810C0D3:: @ 0810C0D3 + .incbin "baserom.gba", 0x10C0D3, 0x0000005 + +gUnk_0810C0D8:: @ 0810C0D8 + .incbin "baserom.gba", 0x10C0D8, 0x0000011 + +gUnk_0810C0E9:: @ 0810C0E9 + .incbin "baserom.gba", 0x10C0E9, 0x0000011 + +gUnk_0810C0FA:: @ 0810C0FA + .incbin "baserom.gba", 0x10C0FA, 0x0000011 + +gUnk_0810C10B:: @ 0810C10B + .incbin "baserom.gba", 0x10C10B, 0x0000011 + +gUnk_0810C11C:: @ 0810C11C + .incbin "baserom.gba", 0x10C11C, 0x0000019 + +gUnk_0810C135:: @ 0810C135 + .incbin "baserom.gba", 0x10C135, 0x0000019 + +gUnk_0810C14E:: @ 0810C14E + .incbin "baserom.gba", 0x10C14E, 0x0000019 + +gUnk_0810C167:: @ 0810C167 + .incbin "baserom.gba", 0x10C167, 0x0000019 + +gUnk_0810C180:: @ 0810C180 + .incbin "baserom.gba", 0x10C180, 0x0000019 + +gUnk_0810C199:: @ 0810C199 + .incbin "baserom.gba", 0x10C199, 0x000000D + +gUnk_0810C1A6:: @ 0810C1A6 + .incbin "baserom.gba", 0x10C1A6, 0x0000018 + +gUnk_0810C1BE:: @ 0810C1BE + .incbin "baserom.gba", 0x10C1BE, 0x000000F + +gUnk_0810C1CD:: @ 0810C1CD + .incbin "baserom.gba", 0x10C1CD, 0x000000A + +gUnk_0810C1D7:: @ 0810C1D7 + .incbin "baserom.gba", 0x10C1D7, 0x0000005 + +gUnk_0810C1DC:: @ 0810C1DC + .incbin "baserom.gba", 0x10C1DC, 0x0000008 + +gUnk_0810C1E4:: @ 0810C1E4 + .incbin "baserom.gba", 0x10C1E4, 0x0000021 + +gUnk_0810C205:: @ 0810C205 + .incbin "baserom.gba", 0x10C205, 0x0000001 + +gUnk_0810C206:: @ 0810C206 + .incbin "baserom.gba", 0x10C206, 0x0000062 + +gUnk_0810C268:: @ 0810C268 + .incbin "baserom.gba", 0x10C268, 0x0000008 + +gUnk_0810C270:: @ 0810C270 + .incbin "baserom.gba", 0x10C270, 0x0000005 + +gUnk_0810C275:: @ 0810C275 + .incbin "baserom.gba", 0x10C275, 0x0000005 + +gUnk_0810C27A:: @ 0810C27A + .incbin "baserom.gba", 0x10C27A, 0x0000016 + +gUnk_0810C290:: @ 0810C290 + .incbin "baserom.gba", 0x10C290, 0x0000010 + +gUnk_0810C2A0:: @ 0810C2A0 + .incbin "baserom.gba", 0x10C2A0, 0x0000005 + +gUnk_0810C2A5:: @ 0810C2A5 + .incbin "baserom.gba", 0x10C2A5, 0x000000D + +gUnk_0810C2B2:: @ 0810C2B2 + .incbin "baserom.gba", 0x10C2B2, 0x000001A + +gUnk_0810C2CC:: @ 0810C2CC + .incbin "baserom.gba", 0x10C2CC, 0x0000010 + +gUnk_0810C2DC:: @ 0810C2DC + .incbin "baserom.gba", 0x10C2DC, 0x0000008 + +gUnk_0810C2E4:: @ 0810C2E4 + .incbin "baserom.gba", 0x10C2E4, 0x0000010 + +gUnk_0810C2F4:: @ 0810C2F4 + .incbin "baserom.gba", 0x10C2F4, 0x0000031 + +gUnk_0810C325:: @ 0810C325 + .incbin "baserom.gba", 0x10C325, 0x0000007 + +gUnk_0810C32C:: @ 0810C32C + .incbin "baserom.gba", 0x10C32C, 0x0000020 + +gUnk_0810C34C:: @ 0810C34C + .incbin "baserom.gba", 0x10C34C, 0x0000014 + +gUnk_0810C360:: @ 0810C360 + .incbin "baserom.gba", 0x10C360, 0x0000005 + +gUnk_0810C365:: @ 0810C365 + .incbin "baserom.gba", 0x10C365, 0x000001D + +gUnk_0810C382:: @ 0810C382 + .incbin "baserom.gba", 0x10C382, 0x000000E + +gUnk_0810C390:: @ 0810C390 + .incbin "baserom.gba", 0x10C390, 0x000000A + +gUnk_0810C39A:: @ 0810C39A + .incbin "baserom.gba", 0x10C39A, 0x0000026 + +gUnk_0810C3C0:: @ 0810C3C0 + .incbin "baserom.gba", 0x10C3C0, 0x0000008 + +gUnk_0810C3C8:: @ 0810C3C8 + .incbin "baserom.gba", 0x10C3C8, 0x0000019 + +gUnk_0810C3E1:: @ 0810C3E1 + .incbin "baserom.gba", 0x10C3E1, 0x0000011 + +gUnk_0810C3F2:: @ 0810C3F2 + .incbin "baserom.gba", 0x10C3F2, 0x0000011 + +gUnk_0810C403:: @ 0810C403 + .incbin "baserom.gba", 0x10C403, 0x0000011 + +gUnk_0810C414:: @ 0810C414 + .incbin "baserom.gba", 0x10C414, 0x0000001 + +gUnk_0810C415:: @ 0810C415 + .incbin "baserom.gba", 0x10C415, 0x0000013 + +gUnk_0810C428:: @ 0810C428 + .incbin "baserom.gba", 0x10C428, 0x0000008 + +gUnk_0810C430:: @ 0810C430 + .incbin "baserom.gba", 0x10C430, 0x0000005 + +gUnk_0810C435:: @ 0810C435 + .incbin "baserom.gba", 0x10C435, 0x0000008 + +gUnk_0810C43D:: @ 0810C43D + .incbin "baserom.gba", 0x10C43D, 0x0000008 + +gUnk_0810C445:: @ 0810C445 + .incbin "baserom.gba", 0x10C445, 0x0000005 + +gUnk_0810C44A:: @ 0810C44A + .incbin "baserom.gba", 0x10C44A, 0x000001E + +gUnk_0810C468:: @ 0810C468 + .incbin "baserom.gba", 0x10C468, 0x0000024 + +gUnk_0810C48C:: @ 0810C48C + .incbin "baserom.gba", 0x10C48C, 0x000000C + +gUnk_0810C498:: @ 0810C498 + .incbin "baserom.gba", 0x10C498, 0x0000008 + +gUnk_0810C4A0:: @ 0810C4A0 + .incbin "baserom.gba", 0x10C4A0, 0x0000005 + +gUnk_0810C4A5:: @ 0810C4A5 + .incbin "baserom.gba", 0x10C4A5, 0x0000005 + +gUnk_0810C4AA:: @ 0810C4AA + .incbin "baserom.gba", 0x10C4AA, 0x0000005 + +gUnk_0810C4AF:: @ 0810C4AF + .incbin "baserom.gba", 0x10C4AF, 0x0000005 + +gUnk_0810C4B4:: @ 0810C4B4 + .incbin "baserom.gba", 0x10C4B4, 0x0000015 + +gUnk_0810C4C9:: @ 0810C4C9 + .incbin "baserom.gba", 0x10C4C9, 0x0000015 + +gUnk_0810C4DE:: @ 0810C4DE + .incbin "baserom.gba", 0x10C4DE, 0x00000D1 + +gUnk_0810C5AF:: @ 0810C5AF + .incbin "baserom.gba", 0x10C5AF, 0x000000C + +gUnk_0810C5BB:: @ 0810C5BB + .incbin "baserom.gba", 0x10C5BB, 0x0000008 + +gUnk_0810C5C3:: @ 0810C5C3 + .incbin "baserom.gba", 0x10C5C3, 0x00000AB + +gUnk_0810C66E:: @ 0810C66E + .incbin "baserom.gba", 0x10C66E, 0x000001E + +gUnk_0810C68C:: @ 0810C68C + .incbin "baserom.gba", 0x10C68C, 0x000000C + +gUnk_0810C698:: @ 0810C698 + .incbin "baserom.gba", 0x10C698, 0x000004D + +gUnk_0810C6E5:: @ 0810C6E5 + .incbin "baserom.gba", 0x10C6E5, 0x000008D + +gUnk_0810C772:: @ 0810C772 + .incbin "baserom.gba", 0x10C772, 0x0000003 + +gUnk_0810C775:: @ 0810C775 + .incbin "baserom.gba", 0x10C775, 0x000000A + +gUnk_0810C77F:: @ 0810C77F + .incbin "baserom.gba", 0x10C77F, 0x000002D + +gUnk_0810C7AC:: @ 0810C7AC + .incbin "baserom.gba", 0x10C7AC, 0x0000008 + +gUnk_0810C7B4:: @ 0810C7B4 + .incbin "baserom.gba", 0x10C7B4, 0x000000A + +gUnk_0810C7BE:: @ 0810C7BE + .incbin "baserom.gba", 0x10C7BE, 0x000000B + +gUnk_0810C7C9:: @ 0810C7C9 + .incbin "baserom.gba", 0x10C7C9, 0x000000B + +gUnk_0810C7D4:: @ 0810C7D4 + .incbin "baserom.gba", 0x10C7D4, 0x0000030 + +gUnk_0810C804:: @ 0810C804 + .incbin "baserom.gba", 0x10C804, 0x0000010 + +gUnk_0810C814:: @ 0810C814 + .incbin "baserom.gba", 0x10C814, 0x0000005 + +gUnk_0810C819:: @ 0810C819 + .incbin "baserom.gba", 0x10C819, 0x0000029 + +gUnk_0810C842:: @ 0810C842 + .incbin "baserom.gba", 0x10C842, 0x0000008 + +gUnk_0810C84A:: @ 0810C84A + .incbin "baserom.gba", 0x10C84A, 0x000001E + +gUnk_0810C868:: @ 0810C868 + .incbin "baserom.gba", 0x10C868, 0x0000024 + +gUnk_0810C88C:: @ 0810C88C + .incbin "baserom.gba", 0x10C88C, 0x0000008 + +gUnk_0810C894:: @ 0810C894 + .incbin "baserom.gba", 0x10C894, 0x0000008 + +gUnk_0810C89C:: @ 0810C89C + .incbin "baserom.gba", 0x10C89C, 0x0000011 + +gUnk_0810C8AD:: @ 0810C8AD + .incbin "baserom.gba", 0x10C8AD, 0x0000027 + +gUnk_0810C8D4:: @ 0810C8D4 + .incbin "baserom.gba", 0x10C8D4, 0x000000C + +gUnk_0810C8E0:: @ 0810C8E0 + .incbin "baserom.gba", 0x10C8E0, 0x0000010 + +gUnk_0810C8F0:: @ 0810C8F0 + .incbin "baserom.gba", 0x10C8F0, 0x0000078 + +gUnk_0810C968:: @ 0810C968 + .incbin "baserom.gba", 0x10C968, 0x000003D + +gUnk_0810C9A5:: @ 0810C9A5 + .incbin "baserom.gba", 0x10C9A5, 0x0000005 + +gUnk_0810C9AA:: @ 0810C9AA + .incbin "baserom.gba", 0x10C9AA, 0x0000005 + +gUnk_0810C9AF:: @ 0810C9AF + .incbin "baserom.gba", 0x10C9AF, 0x0000005 + +gUnk_0810C9B4:: @ 0810C9B4 + .incbin "baserom.gba", 0x10C9B4, 0x000003D + +gUnk_0810C9F1:: @ 0810C9F1 + .incbin "baserom.gba", 0x10C9F1, 0x000003D + +gUnk_0810CA2E:: @ 0810CA2E + .incbin "baserom.gba", 0x10CA2E, 0x000003E + +gUnk_0810CA6C:: @ 0810CA6C + .incbin "baserom.gba", 0x10CA6C, 0x0000034 + +gUnk_0810CAA0:: @ 0810CAA0 + .incbin "baserom.gba", 0x10CAA0, 0x000000C + +gUnk_0810CAAC:: @ 0810CAAC + .incbin "baserom.gba", 0x10CAAC, 0x0000050 + +gUnk_0810CAFC:: @ 0810CAFC + .incbin "baserom.gba", 0x10CAFC, 0x0000049 + +gUnk_0810CB45:: @ 0810CB45 + .incbin "baserom.gba", 0x10CB45, 0x0000005 + +gUnk_0810CB4A:: @ 0810CB4A + .incbin "baserom.gba", 0x10CB4A, 0x0000005 + +gUnk_0810CB4F:: @ 0810CB4F + .incbin "baserom.gba", 0x10CB4F, 0x0000005 + +gUnk_0810CB54:: @ 0810CB54 + .incbin "baserom.gba", 0x10CB54, 0x0000018 + +gUnk_0810CB6C:: @ 0810CB6C + .incbin "baserom.gba", 0x10CB6C, 0x000000C + +gUnk_0810CB78:: @ 0810CB78 + .incbin "baserom.gba", 0x10CB78, 0x0000048 + +gUnk_0810CBC0:: @ 0810CBC0 + .incbin "baserom.gba", 0x10CBC0, 0x000000D + +gUnk_0810CBCD:: @ 0810CBCD + .incbin "baserom.gba", 0x10CBCD, 0x000000B + +gUnk_0810CBD8:: @ 0810CBD8 + .incbin "baserom.gba", 0x10CBD8, 0x000000C + +gUnk_0810CBE4:: @ 0810CBE4 + .incbin "baserom.gba", 0x10CBE4, 0x0000020 + +gUnk_0810CC04:: @ 0810CC04 + .incbin "baserom.gba", 0x10CC04, 0x0000004 + +gUnk_0810CC08:: @ 0810CC08 + .incbin "baserom.gba", 0x10CC08, 0x0000180 + +gUnk_0810CD88:: @ 0810CD88 + .incbin "baserom.gba", 0x10CD88, 0x0000018 + +gUnk_0810CDA0:: @ 0810CDA0 + .incbin "baserom.gba", 0x10CDA0, 0x0000011 + +gUnk_0810CDB1:: @ 0810CDB1 + .incbin "baserom.gba", 0x10CDB1, 0x0000011 + +gUnk_0810CDC2:: @ 0810CDC2 + .incbin "baserom.gba", 0x10CDC2, 0x0000012 + +gUnk_0810CDD4:: @ 0810CDD4 + .incbin "baserom.gba", 0x10CDD4, 0x0000024 + +gUnk_0810CDF8:: @ 0810CDF8 + .incbin "baserom.gba", 0x10CDF8, 0x000000C + +gUnk_0810CE04:: @ 0810CE04 + .incbin "baserom.gba", 0x10CE04, 0x0000050 + +gUnk_0810CE54:: @ 0810CE54 + .incbin "baserom.gba", 0x10CE54, 0x0000013 + +gUnk_0810CE67:: @ 0810CE67 + .incbin "baserom.gba", 0x10CE67, 0x000003A + +gUnk_0810CEA1:: @ 0810CEA1 + .incbin "baserom.gba", 0x10CEA1, 0x000004D + +gUnk_0810CEEE:: @ 0810CEEE + .incbin "baserom.gba", 0x10CEEE, 0x0000021 + +gUnk_0810CF0F:: @ 0810CF0F + .incbin "baserom.gba", 0x10CF0F, 0x0000005 + +gUnk_0810CF14:: @ 0810CF14 + .incbin "baserom.gba", 0x10CF14, 0x0000005 + +gUnk_0810CF19:: @ 0810CF19 + .incbin "baserom.gba", 0x10CF19, 0x0000007 + +gUnk_0810CF20:: @ 0810CF20 + .incbin "baserom.gba", 0x10CF20, 0x000002A + +gUnk_0810CF4A:: @ 0810CF4A + .incbin "baserom.gba", 0x10CF4A, 0x0000002 + +gUnk_0810CF4C:: @ 0810CF4C + .incbin "baserom.gba", 0x10CF4C, 0x000002B + +gUnk_0810CF77:: @ 0810CF77 + .incbin "baserom.gba", 0x10CF77, 0x0000010 + +gUnk_0810CF87:: @ 0810CF87 + .incbin "baserom.gba", 0x10CF87, 0x0000057 + +gUnk_0810CFDE:: @ 0810CFDE + .incbin "baserom.gba", 0x10CFDE, 0x0000039 + +gUnk_0810D017:: @ 0810D017 + .incbin "baserom.gba", 0x10D017, 0x000008D + +gUnk_0810D0A4:: @ 0810D0A4 + .incbin "baserom.gba", 0x10D0A4, 0x0000008 + +gUnk_0810D0AC:: @ 0810D0AC + .incbin "baserom.gba", 0x10D0AC, 0x000001E + +gUnk_0810D0CA:: @ 0810D0CA + .incbin "baserom.gba", 0x10D0CA, 0x0000009 + +gUnk_0810D0D3:: @ 0810D0D3 + .incbin "baserom.gba", 0x10D0D3, 0x0000079 + +gUnk_0810D14C:: @ 0810D14C + .incbin "baserom.gba", 0x10D14C, 0x0000227 + +gUnk_0810D373:: @ 0810D373 + .incbin "baserom.gba", 0x10D373, 0x0000003 + +gUnk_0810D376:: @ 0810D376 + .incbin "baserom.gba", 0x10D376, 0x0000013 + +gUnk_0810D389:: @ 0810D389 + .incbin "baserom.gba", 0x10D389, 0x000003E + +gUnk_0810D3C7:: @ 0810D3C7 + .incbin "baserom.gba", 0x10D3C7, 0x0000040 + +gUnk_0810D407:: @ 0810D407 + .incbin "baserom.gba", 0x10D407, 0x00000C7 + +gUnk_0810D4CE:: @ 0810D4CE + .incbin "baserom.gba", 0x10D4CE, 0x0000007 + +gUnk_0810D4D5:: @ 0810D4D5 + .incbin "baserom.gba", 0x10D4D5, 0x000003C + +gUnk_0810D511:: @ 0810D511 + .incbin "baserom.gba", 0x10D511, 0x0000006 + +gUnk_0810D517:: @ 0810D517 + .incbin "baserom.gba", 0x10D517, 0x0000039 + +gUnk_0810D550:: @ 0810D550 + .incbin "baserom.gba", 0x10D550, 0x0000024 + +gUnk_0810D574:: @ 0810D574 + .incbin "baserom.gba", 0x10D574, 0x000005F + +gUnk_0810D5D3:: @ 0810D5D3 + .incbin "baserom.gba", 0x10D5D3, 0x00000DE + +gUnk_0810D6B1:: @ 0810D6B1 + .incbin "baserom.gba", 0x10D6B1, 0x0000056 + +gUnk_0810D707:: @ 0810D707 + .incbin "baserom.gba", 0x10D707, 0x00000D2 + +gUnk_0810D7D9:: @ 0810D7D9 + .incbin "baserom.gba", 0x10D7D9, 0x000002E + +gUnk_0810D807:: @ 0810D807 + .incbin "baserom.gba", 0x10D807, 0x0000021 + +gUnk_0810D828:: @ 0810D828 + .incbin "baserom.gba", 0x10D828, 0x00000DF + +gUnk_0810D907:: @ 0810D907 + .incbin "baserom.gba", 0x10D907, 0x0000100 + +gUnk_0810DA07:: @ 0810DA07 + .incbin "baserom.gba", 0x10DA07, 0x0000007 + +gUnk_0810DA0E:: @ 0810DA0E + .incbin "baserom.gba", 0x10DA0E, 0x00000B2 + +gUnk_0810DAC0:: @ 0810DAC0 + .incbin "baserom.gba", 0x10DAC0, 0x0000041 + +gUnk_0810DB01:: @ 0810DB01 + .incbin "baserom.gba", 0x10DB01, 0x0000003 + +gUnk_0810DB04:: @ 0810DB04 + .incbin "baserom.gba", 0x10DB04, 0x0000005 + +gUnk_0810DB09:: @ 0810DB09 + .incbin "baserom.gba", 0x10DB09, 0x00000FB + +gUnk_0810DC04:: @ 0810DC04 + .incbin "baserom.gba", 0x10DC04, 0x0000017 + +gUnk_0810DC1B:: @ 0810DC1B + .incbin "baserom.gba", 0x10DC1B, 0x00000C0 + +gUnk_0810DCDB:: @ 0810DCDB + .incbin "baserom.gba", 0x10DCDB, 0x0000001 + +gUnk_0810DCDC:: @ 0810DCDC + .incbin "baserom.gba", 0x10DCDC, 0x000012B + +gUnk_0810DE07:: @ 0810DE07 + .incbin "baserom.gba", 0x10DE07, 0x0000046 + +gUnk_0810DE4D:: @ 0810DE4D + .incbin "baserom.gba", 0x10DE4D, 0x0000293 + +gUnk_0810E0E0:: @ 0810E0E0 + .incbin "baserom.gba", 0x10E0E0, 0x0000011 + +gUnk_0810E0F1:: @ 0810E0F1 + .incbin "baserom.gba", 0x10E0F1, 0x000000C + +gUnk_0810E0FD:: @ 0810E0FD + .incbin "baserom.gba", 0x10E0FD, 0x00000C6 + +gUnk_0810E1C3:: @ 0810E1C3 + .incbin "baserom.gba", 0x10E1C3, 0x000002D + +gUnk_0810E1F0:: @ 0810E1F0 + .incbin "baserom.gba", 0x10E1F0, 0x00000FD + +gUnk_0810E2ED:: @ 0810E2ED + .incbin "baserom.gba", 0x10E2ED, 0x0000116 + +gUnk_0810E403:: @ 0810E403 + .incbin "baserom.gba", 0x10E403, 0x000000A + +gUnk_0810E40D:: @ 0810E40D + .incbin "baserom.gba", 0x10E40D, 0x0000009 + +gUnk_0810E416:: @ 0810E416 + .incbin "baserom.gba", 0x10E416, 0x0000072 + +gUnk_0810E488:: @ 0810E488 + .incbin "baserom.gba", 0x10E488, 0x000008E + +gUnk_0810E516:: @ 0810E516 + .incbin "baserom.gba", 0x10E516, 0x000007B + +gUnk_0810E591:: @ 0810E591 + .incbin "baserom.gba", 0x10E591, 0x000005A + +gUnk_0810E5EB:: @ 0810E5EB + .incbin "baserom.gba", 0x10E5EB, 0x000001C + +gUnk_0810E607:: @ 0810E607 + .incbin "baserom.gba", 0x10E607, 0x00000E1 + +gUnk_0810E6E8:: @ 0810E6E8 + .incbin "baserom.gba", 0x10E6E8, 0x0000021 + +gUnk_0810E709:: @ 0810E709 + .incbin "baserom.gba", 0x10E709, 0x00000DB + +gUnk_0810E7E4:: @ 0810E7E4 + .incbin "baserom.gba", 0x10E7E4, 0x000000B + +gUnk_0810E7EF:: @ 0810E7EF + .incbin "baserom.gba", 0x10E7EF, 0x0000009 + +gUnk_0810E7F8:: @ 0810E7F8 + .incbin "baserom.gba", 0x10E7F8, 0x000000F + +gUnk_0810E807:: @ 0810E807 + .incbin "baserom.gba", 0x10E807, 0x0000001 + +gUnk_0810E808:: @ 0810E808 + .incbin "baserom.gba", 0x10E808, 0x00000F0 + +gUnk_0810E8F8:: @ 0810E8F8 + .incbin "baserom.gba", 0x10E8F8, 0x00000F8 + +gUnk_0810E9F0:: @ 0810E9F0 + .incbin "baserom.gba", 0x10E9F0, 0x0000100 + +gUnk_0810EAF0:: @ 0810EAF0 + .incbin "baserom.gba", 0x10EAF0, 0x000000E + +gUnk_0810EAFE:: @ 0810EAFE + .incbin "baserom.gba", 0x10EAFE, 0x000003E + +gUnk_0810EB3C:: @ 0810EB3C + .incbin "baserom.gba", 0x10EB3C, 0x000001F + +gUnk_0810EB5B:: @ 0810EB5B + .incbin "baserom.gba", 0x10EB5B, 0x0000064 + +gUnk_0810EBBF:: @ 0810EBBF + .incbin "baserom.gba", 0x10EBBF, 0x0000010 + +gUnk_0810EBCF:: @ 0810EBCF + .incbin "baserom.gba", 0x10EBCF, 0x0000010 + +gUnk_0810EBDF:: @ 0810EBDF + .incbin "baserom.gba", 0x10EBDF, 0x0000029 + +gUnk_0810EC08:: @ 0810EC08 + .incbin "baserom.gba", 0x10EC08, 0x00000FC + +gUnk_0810ED04:: @ 0810ED04 + .incbin "baserom.gba", 0x10ED04, 0x0000005 + +gUnk_0810ED09:: @ 0810ED09 + .incbin "baserom.gba", 0x10ED09, 0x00000E0 + +gUnk_0810EDE9:: @ 0810EDE9 + .incbin "baserom.gba", 0x10EDE9, 0x0000008 + +gUnk_0810EDF1:: @ 0810EDF1 + .incbin "baserom.gba", 0x10EDF1, 0x0000036 + +gUnk_0810EE27:: @ 0810EE27 + .incbin "baserom.gba", 0x10EE27, 0x0000056 + +gUnk_0810EE7D:: @ 0810EE7D + .incbin "baserom.gba", 0x10EE7D, 0x0000080 + +gUnk_0810EEFD:: @ 0810EEFD + .incbin "baserom.gba", 0x10EEFD, 0x0000148 + +gUnk_0810F045:: @ 0810F045 + .incbin "baserom.gba", 0x10F045, 0x00000AA + +gUnk_0810F0EF:: @ 0810F0EF + .incbin "baserom.gba", 0x10F0EF, 0x0000001 + +gUnk_0810F0F0:: @ 0810F0F0 + .incbin "baserom.gba", 0x10F0F0, 0x0000208 + +gUnk_0810F2F8:: @ 0810F2F8 + .incbin "baserom.gba", 0x10F2F8, 0x0000006 + +gUnk_0810F2FE:: @ 0810F2FE + .incbin "baserom.gba", 0x10F2FE, 0x0000100 + +gUnk_0810F3FE:: @ 0810F3FE + .incbin "baserom.gba", 0x10F3FE, 0x0000002 + +gUnk_0810F400:: @ 0810F400 + .incbin "baserom.gba", 0x10F400, 0x00000E6 + +gUnk_0810F4E6:: @ 0810F4E6 + .incbin "baserom.gba", 0x10F4E6, 0x000000B + +gUnk_0810F4F1:: @ 0810F4F1 + .incbin "baserom.gba", 0x10F4F1, 0x0000007 + +gUnk_0810F4F8:: @ 0810F4F8 + .incbin "baserom.gba", 0x10F4F8, 0x000002C + +gUnk_0810F524:: @ 0810F524 + .incbin "baserom.gba", 0x10F524, 0x0000020 + +gUnk_0810F544:: @ 0810F544 + .incbin "baserom.gba", 0x10F544, 0x000000C + +gUnk_0810F550:: @ 0810F550 + .incbin "baserom.gba", 0x10F550, 0x0000010 + +gUnk_0810F560:: @ 0810F560 + .incbin "baserom.gba", 0x10F560, 0x000003A + +gUnk_0810F59A:: @ 0810F59A + .incbin "baserom.gba", 0x10F59A, 0x000003A + +gUnk_0810F5D4:: @ 0810F5D4 + .incbin "baserom.gba", 0x10F5D4, 0x000001F + +gUnk_0810F5F3:: @ 0810F5F3 + .incbin "baserom.gba", 0x10F5F3, 0x0000005 + +gUnk_0810F5F8:: @ 0810F5F8 + .incbin "baserom.gba", 0x10F5F8, 0x0000016 + +gUnk_0810F60E:: @ 0810F60E + .incbin "baserom.gba", 0x10F60E, 0x0000005 + +gUnk_0810F613:: @ 0810F613 + .incbin "baserom.gba", 0x10F613, 0x0000007 + +gUnk_0810F61A:: @ 0810F61A + .incbin "baserom.gba", 0x10F61A, 0x000002E + +gUnk_0810F648:: @ 0810F648 + .incbin "baserom.gba", 0x10F648, 0x000003A + +gUnk_0810F682:: @ 0810F682 + .incbin "baserom.gba", 0x10F682, 0x000003A + +gUnk_0810F6BC:: @ 0810F6BC + .incbin "baserom.gba", 0x10F6BC, 0x0000018 + +gUnk_0810F6D4:: @ 0810F6D4 + .incbin "baserom.gba", 0x10F6D4, 0x0000010 + +gUnk_0810F6E4:: @ 0810F6E4 + .incbin "baserom.gba", 0x10F6E4, 0x0000002 + +gUnk_0810F6E6:: @ 0810F6E6 + .incbin "baserom.gba", 0x10F6E6, 0x0000003 + +gUnk_0810F6E9:: @ 0810F6E9 + .incbin "baserom.gba", 0x10F6E9, 0x0000005 + +gUnk_0810F6EE:: @ 0810F6EE + .incbin "baserom.gba", 0x10F6EE, 0x0000001 + +gUnk_0810F6EF:: @ 0810F6EF + .incbin "baserom.gba", 0x10F6EF, 0x0000004 + +gUnk_0810F6F3:: @ 0810F6F3 + .incbin "baserom.gba", 0x10F6F3, 0x0000005 + +gUnk_0810F6F8:: @ 0810F6F8 + .incbin "baserom.gba", 0x10F6F8, 0x0000005 + +gUnk_0810F6FD:: @ 0810F6FD + .incbin "baserom.gba", 0x10F6FD, 0x0000003 + +gUnk_0810F700:: @ 0810F700 + .incbin "baserom.gba", 0x10F700, 0x0000002 + +gUnk_0810F702:: @ 0810F702 + .incbin "baserom.gba", 0x10F702, 0x0000005 + +gUnk_0810F707:: @ 0810F707 + .incbin "baserom.gba", 0x10F707, 0x0000005 + +gUnk_0810F70C:: @ 0810F70C + .incbin "baserom.gba", 0x10F70C, 0x0000011 + +gUnk_0810F71D:: @ 0810F71D + .incbin "baserom.gba", 0x10F71D, 0x0000011 + +gUnk_0810F72E:: @ 0810F72E + .incbin "baserom.gba", 0x10F72E, 0x0000011 + +gUnk_0810F73F:: @ 0810F73F + .incbin "baserom.gba", 0x10F73F, 0x0000011 + +gUnk_0810F750:: @ 0810F750 + .incbin "baserom.gba", 0x10F750, 0x0000011 + +gUnk_0810F761:: @ 0810F761 + .incbin "baserom.gba", 0x10F761, 0x0000011 + +gUnk_0810F772:: @ 0810F772 + .incbin "baserom.gba", 0x10F772, 0x0000011 + +gUnk_0810F783:: @ 0810F783 + .incbin "baserom.gba", 0x10F783, 0x0000011 + +gUnk_0810F794:: @ 0810F794 + .incbin "baserom.gba", 0x10F794, 0x0000005 + +gUnk_0810F799:: @ 0810F799 + .incbin "baserom.gba", 0x10F799, 0x0000025 + +gUnk_0810F7BE:: @ 0810F7BE + .incbin "baserom.gba", 0x10F7BE, 0x0000005 + +gUnk_0810F7C3:: @ 0810F7C3 + .incbin "baserom.gba", 0x10F7C3, 0x0000005 + +gUnk_0810F7C8:: @ 0810F7C8 + .incbin "baserom.gba", 0x10F7C8, 0x0000020 + +gUnk_0810F7E8:: @ 0810F7E8 + .incbin "baserom.gba", 0x10F7E8, 0x0000003 + +gUnk_0810F7EB:: @ 0810F7EB + .incbin "baserom.gba", 0x10F7EB, 0x0000003 + +gUnk_0810F7EE:: @ 0810F7EE + .incbin "baserom.gba", 0x10F7EE, 0x000000A + +gUnk_0810F7F8:: @ 0810F7F8 + .incbin "baserom.gba", 0x10F7F8, 0x0000005 + +gUnk_0810F7FD:: @ 0810F7FD + .incbin "baserom.gba", 0x10F7FD, 0x0000003 + +gUnk_0810F800:: @ 0810F800 + .incbin "baserom.gba", 0x10F800, 0x0000002 + +gUnk_0810F802:: @ 0810F802 + .incbin "baserom.gba", 0x10F802, 0x0000006 + +gUnk_0810F808:: @ 0810F808 + .incbin "baserom.gba", 0x10F808, 0x000000C + +gUnk_0810F814:: @ 0810F814 + .incbin "baserom.gba", 0x10F814, 0x0000060 + +gUnk_0810F874:: @ 0810F874 + .incbin "baserom.gba", 0x10F874, 0x0000018 + +gUnk_0810F88C:: @ 0810F88C + .incbin "baserom.gba", 0x10F88C, 0x0000008 + +gUnk_0810F894:: @ 0810F894 + .incbin "baserom.gba", 0x10F894, 0x0000024 + +gUnk_0810F8B8:: @ 0810F8B8 + .incbin "baserom.gba", 0x10F8B8, 0x0000018 + +gUnk_0810F8D0:: @ 0810F8D0 + .incbin "baserom.gba", 0x10F8D0, 0x0000014 + +gUnk_0810F8E4:: @ 0810F8E4 + .incbin "baserom.gba", 0x10F8E4, 0x0000005 + +gUnk_0810F8E9:: @ 0810F8E9 + .incbin "baserom.gba", 0x10F8E9, 0x0000005 + +gUnk_0810F8EE:: @ 0810F8EE + .incbin "baserom.gba", 0x10F8EE, 0x0000001 + +gUnk_0810F8EF:: @ 0810F8EF + .incbin "baserom.gba", 0x10F8EF, 0x0000004 + +gUnk_0810F8F3:: @ 0810F8F3 + .incbin "baserom.gba", 0x10F8F3, 0x0000001 + +gUnk_0810F8F4:: @ 0810F8F4 + .incbin "baserom.gba", 0x10F8F4, 0x0000004 + +gUnk_0810F8F8:: @ 0810F8F8 + .incbin "baserom.gba", 0x10F8F8, 0x0000001 + +gUnk_0810F8F9:: @ 0810F8F9 + .incbin "baserom.gba", 0x10F8F9, 0x0000010 + +gUnk_0810F909:: @ 0810F909 + .incbin "baserom.gba", 0x10F909, 0x0000011 + +gUnk_0810F91A:: @ 0810F91A + .incbin "baserom.gba", 0x10F91A, 0x0000011 + +gUnk_0810F92B:: @ 0810F92B + .incbin "baserom.gba", 0x10F92B, 0x0000011 + +gUnk_0810F93C:: @ 0810F93C + .incbin "baserom.gba", 0x10F93C, 0x0000008 + +gUnk_0810F944:: @ 0810F944 + .incbin "baserom.gba", 0x10F944, 0x0000028 + +gUnk_0810F96C:: @ 0810F96C + .incbin "baserom.gba", 0x10F96C, 0x0000005 + +gUnk_0810F971:: @ 0810F971 + .incbin "baserom.gba", 0x10F971, 0x0000005 + +gUnk_0810F976:: @ 0810F976 + .incbin "baserom.gba", 0x10F976, 0x0000005 + +gUnk_0810F97B:: @ 0810F97B + .incbin "baserom.gba", 0x10F97B, 0x0000011 + +gUnk_0810F98C:: @ 0810F98C + .incbin "baserom.gba", 0x10F98C, 0x0000024 + +gUnk_0810F9B0:: @ 0810F9B0 + .incbin "baserom.gba", 0x10F9B0, 0x0000005 + +gUnk_0810F9B5:: @ 0810F9B5 + .incbin "baserom.gba", 0x10F9B5, 0x0000005 + +gUnk_0810F9BA:: @ 0810F9BA + .incbin "baserom.gba", 0x10F9BA, 0x0000005 + +gUnk_0810F9BF:: @ 0810F9BF + .incbin "baserom.gba", 0x10F9BF, 0x0000011 + +gUnk_0810F9D0:: @ 0810F9D0 + .incbin "baserom.gba", 0x10F9D0, 0x0000020 + +gUnk_0810F9F0:: @ 0810F9F0 + .incbin "baserom.gba", 0x10F9F0, 0x0000004 + +gUnk_0810F9F4:: @ 0810F9F4 + .incbin "baserom.gba", 0x10F9F4, 0x0000004 + +gUnk_0810F9F8:: @ 0810F9F8 + .incbin "baserom.gba", 0x10F9F8, 0x0000001 + +gUnk_0810F9F9:: @ 0810F9F9 + .incbin "baserom.gba", 0x10F9F9, 0x0000005 + +gUnk_0810F9FE:: @ 0810F9FE + .incbin "baserom.gba", 0x10F9FE, 0x0000002 + +gUnk_0810FA00:: @ 0810FA00 + .incbin "baserom.gba", 0x10FA00, 0x0000003 + +gUnk_0810FA03:: @ 0810FA03 + .incbin "baserom.gba", 0x10FA03, 0x0000011 + +gUnk_0810FA14:: @ 0810FA14 + .incbin "baserom.gba", 0x10FA14, 0x0000018 + +gUnk_0810FA2C:: @ 0810FA2C + .incbin "baserom.gba", 0x10FA2C, 0x000000C + +gUnk_0810FA38:: @ 0810FA38 + .incbin "baserom.gba", 0x10FA38, 0x000000C + +gUnk_0810FA44:: @ 0810FA44 + .incbin "baserom.gba", 0x10FA44, 0x0000010 + +gUnk_0810FA54:: @ 0810FA54 + .incbin "baserom.gba", 0x10FA54, 0x0000006 + +gUnk_0810FA5A:: @ 0810FA5A + .incbin "baserom.gba", 0x10FA5A, 0x0000097 + +gUnk_0810FAF1:: @ 0810FAF1 + .incbin "baserom.gba", 0x10FAF1, 0x0000002 + +gUnk_0810FAF3:: @ 0810FAF3 + .incbin "baserom.gba", 0x10FAF3, 0x0000004 + +gUnk_0810FAF7:: @ 0810FAF7 + .incbin "baserom.gba", 0x10FAF7, 0x000002D + +gUnk_0810FB24:: @ 0810FB24 + .incbin "baserom.gba", 0x10FB24, 0x0000015 + +gUnk_0810FB39:: @ 0810FB39 + .incbin "baserom.gba", 0x10FB39, 0x0000015 + +gUnk_0810FB4E:: @ 0810FB4E + .incbin "baserom.gba", 0x10FB4E, 0x0000015 + +gUnk_0810FB63:: @ 0810FB63 + .incbin "baserom.gba", 0x10FB63, 0x0000015 + +gUnk_0810FB78:: @ 0810FB78 + .incbin "baserom.gba", 0x10FB78, 0x0000005 + +gUnk_0810FB7D:: @ 0810FB7D + .incbin "baserom.gba", 0x10FB7D, 0x0000005 + +gUnk_0810FB82:: @ 0810FB82 + .incbin "baserom.gba", 0x10FB82, 0x0000005 + +gUnk_0810FB87:: @ 0810FB87 + .incbin "baserom.gba", 0x10FB87, 0x0000005 + +gUnk_0810FB8C:: @ 0810FB8C + .incbin "baserom.gba", 0x10FB8C, 0x0000021 + +gUnk_0810FBAD:: @ 0810FBAD + .incbin "baserom.gba", 0x10FBAD, 0x0000023 + +gUnk_0810FBD0:: @ 0810FBD0 + .incbin "baserom.gba", 0x10FBD0, 0x000001B + +gUnk_0810FBEB:: @ 0810FBEB + .incbin "baserom.gba", 0x10FBEB, 0x000000E + +gUnk_0810FBF9:: @ 0810FBF9 + .incbin "baserom.gba", 0x10FBF9, 0x0000003 + +gUnk_0810FBFC:: @ 0810FBFC + .incbin "baserom.gba", 0x10FBFC, 0x000000C + +gUnk_0810FC08:: @ 0810FC08 + .incbin "baserom.gba", 0x10FC08, 0x0000048 + +gUnk_0810FC50:: @ 0810FC50 + .incbin "baserom.gba", 0x10FC50, 0x0000004 + +gUnk_0810FC54:: @ 0810FC54 + .incbin "baserom.gba", 0x10FC54, 0x000000A + +gUnk_0810FC5E:: @ 0810FC5E + .incbin "baserom.gba", 0x10FC5E, 0x000000A + +gUnk_0810FC68:: @ 0810FC68 + .incbin "baserom.gba", 0x10FC68, 0x0000045 + +gUnk_0810FCAD:: @ 0810FCAD + .incbin "baserom.gba", 0x10FCAD, 0x0000021 + +gUnk_0810FCCE:: @ 0810FCCE + .incbin "baserom.gba", 0x10FCCE, 0x0000026 + +gUnk_0810FCF4:: @ 0810FCF4 + .incbin "baserom.gba", 0x10FCF4, 0x0000022 + +gUnk_0810FD16:: @ 0810FD16 + .incbin "baserom.gba", 0x10FD16, 0x0000056 + +gUnk_0810FD6C:: @ 0810FD6C + .incbin "baserom.gba", 0x10FD6C, 0x0000034 + +gUnk_0810FDA0:: @ 0810FDA0 + .incbin "baserom.gba", 0x10FDA0, 0x0000004 + +gUnk_0810FDA4:: @ 0810FDA4 + .incbin "baserom.gba", 0x10FDA4, 0x0000014 + +gUnk_0810FDB8:: @ 0810FDB8 + .incbin "baserom.gba", 0x10FDB8, 0x0000010 + +gUnk_0810FDC8:: @ 0810FDC8 + .incbin "baserom.gba", 0x10FDC8, 0x0000020 + +gUnk_0810FDE8:: @ 0810FDE8 + .incbin "baserom.gba", 0x10FDE8, 0x0000005 + +gUnk_0810FDED:: @ 0810FDED + .incbin "baserom.gba", 0x10FDED, 0x0000005 + +gUnk_0810FDF2:: @ 0810FDF2 + .incbin "baserom.gba", 0x10FDF2, 0x0000005 + +gUnk_0810FDF7:: @ 0810FDF7 + .incbin "baserom.gba", 0x10FDF7, 0x000000C + +gUnk_0810FE03:: @ 0810FE03 + .incbin "baserom.gba", 0x10FE03, 0x0000005 + +gUnk_0810FE08:: @ 0810FE08 + .incbin "baserom.gba", 0x10FE08, 0x0000017 + +gUnk_0810FE1F:: @ 0810FE1F + .incbin "baserom.gba", 0x10FE1F, 0x0000049 + +gUnk_0810FE68:: @ 0810FE68 + .incbin "baserom.gba", 0x10FE68, 0x0000028 + +gUnk_0810FE90:: @ 0810FE90 + .incbin "baserom.gba", 0x10FE90, 0x0000020 + +gUnk_0810FEB0:: @ 0810FEB0 + .incbin "baserom.gba", 0x10FEB0, 0x000000C + +gUnk_0810FEBC:: @ 0810FEBC + .incbin "baserom.gba", 0x10FEBC, 0x0000008 + +gUnk_0810FEC4:: @ 0810FEC4 + .incbin "baserom.gba", 0x10FEC4, 0x0000014 + +gUnk_0810FED8:: @ 0810FED8 + .incbin "baserom.gba", 0x10FED8, 0x0000008 + +gUnk_0810FEE0:: @ 0810FEE0 + .incbin "baserom.gba", 0x10FEE0, 0x0000005 + +gUnk_0810FEE5:: @ 0810FEE5 + .incbin "baserom.gba", 0x10FEE5, 0x0000005 + +gUnk_0810FEEA:: @ 0810FEEA + .incbin "baserom.gba", 0x10FEEA, 0x0000005 + +gUnk_0810FEEF:: @ 0810FEEF + .incbin "baserom.gba", 0x10FEEF, 0x0000002 + +gUnk_0810FEF1:: @ 0810FEF1 + .incbin "baserom.gba", 0x10FEF1, 0x0000003 + +gUnk_0810FEF4:: @ 0810FEF4 + .incbin "baserom.gba", 0x10FEF4, 0x0000001 + +gUnk_0810FEF5:: @ 0810FEF5 + .incbin "baserom.gba", 0x10FEF5, 0x0000003 + +gUnk_0810FEF8:: @ 0810FEF8 + .incbin "baserom.gba", 0x10FEF8, 0x000000B + +gUnk_0810FF03:: @ 0810FF03 + .incbin "baserom.gba", 0x10FF03, 0x0000002 + +gUnk_0810FF05:: @ 0810FF05 + .incbin "baserom.gba", 0x10FF05, 0x000000A + +gUnk_0810FF0F:: @ 0810FF0F + .incbin "baserom.gba", 0x10FF0F, 0x0000001 + +gUnk_0810FF10:: @ 0810FF10 + .incbin "baserom.gba", 0x10FF10, 0x0000006 + +gUnk_0810FF16:: @ 0810FF16 + .incbin "baserom.gba", 0x10FF16, 0x0000011 + +gUnk_0810FF27:: @ 0810FF27 + .incbin "baserom.gba", 0x10FF27, 0x0000001 + +gUnk_0810FF28:: @ 0810FF28 + .incbin "baserom.gba", 0x10FF28, 0x0000010 + +gUnk_0810FF38:: @ 0810FF38 + .incbin "baserom.gba", 0x10FF38, 0x0000003 + +gUnk_0810FF3B:: @ 0810FF3B + .incbin "baserom.gba", 0x10FF3B, 0x0000021 + +gUnk_0810FF5C:: @ 0810FF5C + .incbin "baserom.gba", 0x10FF5C, 0x0000008 + +gUnk_0810FF64:: @ 0810FF64 + .incbin "baserom.gba", 0x10FF64, 0x000000C + +gUnk_0810FF70:: @ 0810FF70 + .incbin "baserom.gba", 0x10FF70, 0x0000005 + +gUnk_0810FF75:: @ 0810FF75 + .incbin "baserom.gba", 0x10FF75, 0x0000005 + +gUnk_0810FF7A:: @ 0810FF7A + .incbin "baserom.gba", 0x10FF7A, 0x0000004 + +gUnk_0810FF7E:: @ 0810FF7E + .incbin "baserom.gba", 0x10FF7E, 0x0000001 + +gUnk_0810FF7F:: @ 0810FF7F + .incbin "baserom.gba", 0x10FF7F, 0x0000005 + +gUnk_0810FF84:: @ 0810FF84 + .incbin "baserom.gba", 0x10FF84, 0x0000021 + +gUnk_0810FFA5:: @ 0810FFA5 + .incbin "baserom.gba", 0x10FFA5, 0x0000011 + +gUnk_0810FFB6:: @ 0810FFB6 + .incbin "baserom.gba", 0x10FFB6, 0x000000B + +gUnk_0810FFC1:: @ 0810FFC1 + .incbin "baserom.gba", 0x10FFC1, 0x0000016 + +gUnk_0810FFD7:: @ 0810FFD7 + .incbin "baserom.gba", 0x10FFD7, 0x000001F + +gUnk_0810FFF6:: @ 0810FFF6 + .incbin "baserom.gba", 0x10FFF6, 0x0000008 + +gUnk_0810FFFE:: @ 0810FFFE + .incbin "baserom.gba", 0x10FFFE, 0x0000002 + +gUnk_08110000:: @ 08110000 + .incbin "baserom.gba", 0x110000, 0x0000007 + +gUnk_08110007:: @ 08110007 + .incbin "baserom.gba", 0x110007, 0x000000D + +gUnk_08110014:: @ 08110014 + .incbin "baserom.gba", 0x110014, 0x0000013 + +gUnk_08110027:: @ 08110027 + .incbin "baserom.gba", 0x110027, 0x0000001 + +gUnk_08110028:: @ 08110028 + .incbin "baserom.gba", 0x110028, 0x0000044 + +gUnk_0811006C:: @ 0811006C + .incbin "baserom.gba", 0x11006C, 0x0000014 + +gUnk_08110080:: @ 08110080 + .incbin "baserom.gba", 0x110080, 0x0000008 + +gUnk_08110088:: @ 08110088 + .incbin "baserom.gba", 0x110088, 0x0000005 + +gUnk_0811008D:: @ 0811008D + .incbin "baserom.gba", 0x11008D, 0x0000005 + +gUnk_08110092:: @ 08110092 + .incbin "baserom.gba", 0x110092, 0x0000005 + +gUnk_08110097:: @ 08110097 + .incbin "baserom.gba", 0x110097, 0x0000021 + +gUnk_081100B8:: @ 081100B8 + .incbin "baserom.gba", 0x1100B8, 0x000002C + +gUnk_081100E4:: @ 081100E4 + .incbin "baserom.gba", 0x1100E4, 0x000002C + +gUnk_08110110:: @ 08110110 + .incbin "baserom.gba", 0x110110, 0x0000008 + +gUnk_08110118:: @ 08110118 + .incbin "baserom.gba", 0x110118, 0x0000008 + +gUnk_08110120:: @ 08110120 + .incbin "baserom.gba", 0x110120, 0x0000005 + +gUnk_08110125:: @ 08110125 + .incbin "baserom.gba", 0x110125, 0x0000013 + +gUnk_08110138:: @ 08110138 + .incbin "baserom.gba", 0x110138, 0x0000009 + +gUnk_08110141:: @ 08110141 + .incbin "baserom.gba", 0x110141, 0x000001B + +gUnk_0811015C:: @ 0811015C + .incbin "baserom.gba", 0x11015C, 0x0000008 + +gUnk_08110164:: @ 08110164 + .incbin "baserom.gba", 0x110164, 0x0000018 + +gUnk_0811017C:: @ 0811017C + .incbin "baserom.gba", 0x11017C, 0x000000C + +gUnk_08110188:: @ 08110188 + .incbin "baserom.gba", 0x110188, 0x0000055 + +gUnk_081101DD:: @ 081101DD + .incbin "baserom.gba", 0x1101DD, 0x000001A + +gUnk_081101F7:: @ 081101F7 + .incbin "baserom.gba", 0x1101F7, 0x0000037 + +gUnk_0811022E:: @ 0811022E + .incbin "baserom.gba", 0x11022E, 0x0000046 + +gUnk_08110274:: @ 08110274 + .incbin "baserom.gba", 0x110274, 0x000000C + +gUnk_08110280:: @ 08110280 + .incbin "baserom.gba", 0x110280, 0x0000080 + +gUnk_08110300:: @ 08110300 + .incbin "baserom.gba", 0x110300, 0x0000011 + +gUnk_08110311:: @ 08110311 + .incbin "baserom.gba", 0x110311, 0x0000011 + +gUnk_08110322:: @ 08110322 + .incbin "baserom.gba", 0x110322, 0x0000011 + +gUnk_08110333:: @ 08110333 + .incbin "baserom.gba", 0x110333, 0x0000009 + +gUnk_0811033C:: @ 0811033C + .incbin "baserom.gba", 0x11033C, 0x0000018 + +gUnk_08110354:: @ 08110354 + .incbin "baserom.gba", 0x110354, 0x000000C + +gUnk_08110360:: @ 08110360 + .incbin "baserom.gba", 0x110360, 0x000000C + +gUnk_0811036C:: @ 0811036C + .incbin "baserom.gba", 0x11036C, 0x0000014 + +gUnk_08110380:: @ 08110380 + .incbin "baserom.gba", 0x110380, 0x0000010 + +gUnk_08110390:: @ 08110390 + .incbin "baserom.gba", 0x110390, 0x0000040 + +gUnk_081103D0:: @ 081103D0 + .incbin "baserom.gba", 0x1103D0, 0x000000B + +gUnk_081103DB:: @ 081103DB + .incbin "baserom.gba", 0x1103DB, 0x0000005 + +gUnk_081103E0:: @ 081103E0 + .incbin "baserom.gba", 0x1103E0, 0x0000004 + +gUnk_081103E4:: @ 081103E4 + .incbin "baserom.gba", 0x1103E4, 0x0000005 + +gUnk_081103E9:: @ 081103E9 + .incbin "baserom.gba", 0x1103E9, 0x0000005 + +gUnk_081103EE:: @ 081103EE + .incbin "baserom.gba", 0x1103EE, 0x0000005 + +gUnk_081103F3:: @ 081103F3 + .incbin "baserom.gba", 0x1103F3, 0x0000005 + +gUnk_081103F8:: @ 081103F8 + .incbin "baserom.gba", 0x1103F8, 0x0000006 + +gUnk_081103FE:: @ 081103FE + .incbin "baserom.gba", 0x1103FE, 0x0000002 + +gUnk_08110400:: @ 08110400 + .incbin "baserom.gba", 0x110400, 0x0000009 + +gUnk_08110409:: @ 08110409 + .incbin "baserom.gba", 0x110409, 0x0000011 + +gUnk_0811041A:: @ 0811041A + .incbin "baserom.gba", 0x11041A, 0x0000011 + +gUnk_0811042B:: @ 0811042B + .incbin "baserom.gba", 0x11042B, 0x0000011 + +gUnk_0811043C:: @ 0811043C + .incbin "baserom.gba", 0x11043C, 0x0000005 + +gUnk_08110441:: @ 08110441 + .incbin "baserom.gba", 0x110441, 0x0000005 + +gUnk_08110446:: @ 08110446 + .incbin "baserom.gba", 0x110446, 0x0000005 + +gUnk_0811044B:: @ 0811044B + .incbin "baserom.gba", 0x11044B, 0x0000029 + +gUnk_08110474:: @ 08110474 + .incbin "baserom.gba", 0x110474, 0x0000005 + +gUnk_08110479:: @ 08110479 + .incbin "baserom.gba", 0x110479, 0x0000005 + +gUnk_0811047E:: @ 0811047E + .incbin "baserom.gba", 0x11047E, 0x0000006 + +gUnk_08110484:: @ 08110484 + .incbin "baserom.gba", 0x110484, 0x0000044 + +gUnk_081104C8:: @ 081104C8 + .incbin "baserom.gba", 0x1104C8, 0x0000018 + +gUnk_081104E0:: @ 081104E0 + .incbin "baserom.gba", 0x1104E0, 0x000000C + +gUnk_081104EC:: @ 081104EC + .incbin "baserom.gba", 0x1104EC, 0x000000C + +gUnk_081104F8:: @ 081104F8 + .incbin "baserom.gba", 0x1104F8, 0x0000008 + +gUnk_08110500:: @ 08110500 + .incbin "baserom.gba", 0x110500, 0x0000005 + +gUnk_08110505:: @ 08110505 + .incbin "baserom.gba", 0x110505, 0x0000005 + +gUnk_0811050A:: @ 0811050A + .incbin "baserom.gba", 0x11050A, 0x0000004 + +gUnk_0811050E:: @ 0811050E + .incbin "baserom.gba", 0x11050E, 0x0000001 + +gUnk_0811050F:: @ 0811050F + .incbin "baserom.gba", 0x11050F, 0x0000005 + +gUnk_08110514:: @ 08110514 + .incbin "baserom.gba", 0x110514, 0x0000021 + +gUnk_08110535:: @ 08110535 + .incbin "baserom.gba", 0x110535, 0x0000021 + +gUnk_08110556:: @ 08110556 + .incbin "baserom.gba", 0x110556, 0x0000021 + +gUnk_08110577:: @ 08110577 + .incbin "baserom.gba", 0x110577, 0x0000009 + +gUnk_08110580:: @ 08110580 + .incbin "baserom.gba", 0x110580, 0x0000018 + +gUnk_08110598:: @ 08110598 + .incbin "baserom.gba", 0x110598, 0x0000011 + +gUnk_081105A9:: @ 081105A9 + .incbin "baserom.gba", 0x1105A9, 0x0000011 + +gUnk_081105BA:: @ 081105BA + .incbin "baserom.gba", 0x1105BA, 0x0000011 + +gUnk_081105CB:: @ 081105CB + .incbin "baserom.gba", 0x1105CB, 0x0000011 + +gUnk_081105DC:: @ 081105DC + .incbin "baserom.gba", 0x1105DC, 0x0000005 + +gUnk_081105E1:: @ 081105E1 + .incbin "baserom.gba", 0x1105E1, 0x0000010 + +gUnk_081105F1:: @ 081105F1 + .incbin "baserom.gba", 0x1105F1, 0x0000017 + +gUnk_08110608:: @ 08110608 + .incbin "baserom.gba", 0x110608, 0x0000004 + +gUnk_0811060C:: @ 0811060C + .incbin "baserom.gba", 0x11060C, 0x0000038 + +gUnk_08110644:: @ 08110644 + .incbin "baserom.gba", 0x110644, 0x000000C + +gUnk_08110650:: @ 08110650 + .incbin "baserom.gba", 0x110650, 0x0000008 + +gUnk_08110658:: @ 08110658 + .incbin "baserom.gba", 0x110658, 0x0000005 + +gUnk_0811065D:: @ 0811065D + .incbin "baserom.gba", 0x11065D, 0x0000005 + +gUnk_08110662:: @ 08110662 + .incbin "baserom.gba", 0x110662, 0x0000005 + +gUnk_08110667:: @ 08110667 + .incbin "baserom.gba", 0x110667, 0x0000005 + +gUnk_0811066C:: @ 0811066C + .incbin "baserom.gba", 0x11066C, 0x0000011 + +gUnk_0811067D:: @ 0811067D + .incbin "baserom.gba", 0x11067D, 0x0000005 + +gUnk_08110682:: @ 08110682 + .incbin "baserom.gba", 0x110682, 0x0000026 + +gUnk_081106A8:: @ 081106A8 + .incbin "baserom.gba", 0x1106A8, 0x000002C + +gUnk_081106D4:: @ 081106D4 + .incbin "baserom.gba", 0x1106D4, 0x000000C + +gUnk_081106E0:: @ 081106E0 + .incbin "baserom.gba", 0x1106E0, 0x0000008 + +gUnk_081106E8:: @ 081106E8 + .incbin "baserom.gba", 0x1106E8, 0x0000005 + +gUnk_081106ED:: @ 081106ED + .incbin "baserom.gba", 0x1106ED, 0x0000011 + +gUnk_081106FE:: @ 081106FE + .incbin "baserom.gba", 0x1106FE, 0x0000012 + +gUnk_08110710:: @ 08110710 + .incbin "baserom.gba", 0x110710, 0x0000024 + +gUnk_08110734:: @ 08110734 + .incbin "baserom.gba", 0x110734, 0x0000008 + +gUnk_0811073C:: @ 0811073C + .incbin "baserom.gba", 0x11073C, 0x0000005 + +gUnk_08110741:: @ 08110741 + .incbin "baserom.gba", 0x110741, 0x0000005 + +gUnk_08110746:: @ 08110746 + .incbin "baserom.gba", 0x110746, 0x0000005 + +gUnk_0811074B:: @ 0811074B + .incbin "baserom.gba", 0x11074B, 0x0000005 + +gUnk_08110750:: @ 08110750 + .incbin "baserom.gba", 0x110750, 0x0000011 + +gUnk_08110761:: @ 08110761 + .incbin "baserom.gba", 0x110761, 0x0000011 + +gUnk_08110772:: @ 08110772 + .incbin "baserom.gba", 0x110772, 0x0000011 + +gUnk_08110783:: @ 08110783 + .incbin "baserom.gba", 0x110783, 0x0000011 + +gUnk_08110794:: @ 08110794 + .incbin "baserom.gba", 0x110794, 0x0000005 + +gUnk_08110799:: @ 08110799 + .incbin "baserom.gba", 0x110799, 0x0000011 + +gUnk_081107AA:: @ 081107AA + .incbin "baserom.gba", 0x1107AA, 0x0000009 + +gUnk_081107B3:: @ 081107B3 + .incbin "baserom.gba", 0x1107B3, 0x0000009 + +gUnk_081107BC:: @ 081107BC + .incbin "baserom.gba", 0x1107BC, 0x0000010 + +gUnk_081107CC:: @ 081107CC + .incbin "baserom.gba", 0x1107CC, 0x000003C + +gUnk_08110808:: @ 08110808 + .incbin "baserom.gba", 0x110808, 0x0000038 + +gUnk_08110840:: @ 08110840 + .incbin "baserom.gba", 0x110840, 0x0000019 + +gUnk_08110859:: @ 08110859 + .incbin "baserom.gba", 0x110859, 0x0000005 + +gUnk_0811085E:: @ 0811085E + .incbin "baserom.gba", 0x11085E, 0x0000019 + +gUnk_08110877:: @ 08110877 + .incbin "baserom.gba", 0x110877, 0x0000005 + +gUnk_0811087C:: @ 0811087C + .incbin "baserom.gba", 0x11087C, 0x000001E + +gUnk_0811089A:: @ 0811089A + .incbin "baserom.gba", 0x11089A, 0x0000019 + +gUnk_081108B3:: @ 081108B3 + .incbin "baserom.gba", 0x1108B3, 0x0000019 + +gUnk_081108CC:: @ 081108CC + .incbin "baserom.gba", 0x1108CC, 0x0000019 + +gUnk_081108E5:: @ 081108E5 + .incbin "baserom.gba", 0x1108E5, 0x000000D + +gUnk_081108F2:: @ 081108F2 + .incbin "baserom.gba", 0x1108F2, 0x000000D + +gUnk_081108FF:: @ 081108FF + .incbin "baserom.gba", 0x1108FF, 0x000000D + +gUnk_0811090C:: @ 0811090C + .incbin "baserom.gba", 0x11090C, 0x000000C + +gUnk_08110918:: @ 08110918 + .incbin "baserom.gba", 0x110918, 0x0000005 + +gUnk_0811091D:: @ 0811091D + .incbin "baserom.gba", 0x11091D, 0x0000005 + +gUnk_08110922:: @ 08110922 + .incbin "baserom.gba", 0x110922, 0x0000005 + +gUnk_08110927:: @ 08110927 + .incbin "baserom.gba", 0x110927, 0x0000005 + +gUnk_0811092C:: @ 0811092C + .incbin "baserom.gba", 0x11092C, 0x0000005 + +gUnk_08110931:: @ 08110931 + .incbin "baserom.gba", 0x110931, 0x00000C1 + +gUnk_081109F2:: @ 081109F2 + .incbin "baserom.gba", 0x1109F2, 0x0000006 + +gUnk_081109F8:: @ 081109F8 + .incbin "baserom.gba", 0x1109F8, 0x00000DF + +gUnk_08110AD7:: @ 08110AD7 + .incbin "baserom.gba", 0x110AD7, 0x0000015 + +gUnk_08110AEC:: @ 08110AEC + .incbin "baserom.gba", 0x110AEC, 0x0000010 + +gUnk_08110AFC:: @ 08110AFC + .incbin "baserom.gba", 0x110AFC, 0x0000008 + +gUnk_08110B04:: @ 08110B04 + .incbin "baserom.gba", 0x110B04, 0x0000001 + +gUnk_08110B05:: @ 08110B05 + .incbin "baserom.gba", 0x110B05, 0x000004B + +gUnk_08110B50:: @ 08110B50 + .incbin "baserom.gba", 0x110B50, 0x0000088 + +gUnk_08110BD8:: @ 08110BD8 + .incbin "baserom.gba", 0x110BD8, 0x0000008 + +gUnk_08110BE0:: @ 08110BE0 + .incbin "baserom.gba", 0x110BE0, 0x000001F + +gUnk_08110BFF:: @ 08110BFF + .incbin "baserom.gba", 0x110BFF, 0x0000001 + +gUnk_08110C00:: @ 08110C00 + .incbin "baserom.gba", 0x110C00, 0x0000003 + +gUnk_08110C03:: @ 08110C03 + .incbin "baserom.gba", 0x110C03, 0x0000009 + +gUnk_08110C0C:: @ 08110C0C + .incbin "baserom.gba", 0x110C0C, 0x0000004 + +gUnk_08110C10:: @ 08110C10 + .incbin "baserom.gba", 0x110C10, 0x0000050 + +gUnk_08110C60:: @ 08110C60 + .incbin "baserom.gba", 0x110C60, 0x0000015 + +gUnk_08110C75:: @ 08110C75 + .incbin "baserom.gba", 0x110C75, 0x0000005 + +gUnk_08110C7A:: @ 08110C7A + .incbin "baserom.gba", 0x110C7A, 0x0000005 + +gUnk_08110C7F:: @ 08110C7F + .incbin "baserom.gba", 0x110C7F, 0x0000005 + +gUnk_08110C84:: @ 08110C84 + .incbin "baserom.gba", 0x110C84, 0x0000024 + +gUnk_08110CA8:: @ 08110CA8 + .incbin "baserom.gba", 0x110CA8, 0x0000040 + +gUnk_08110CE8:: @ 08110CE8 + .incbin "baserom.gba", 0x110CE8, 0x000000A + +gUnk_08110CF2:: @ 08110CF2 + .incbin "baserom.gba", 0x110CF2, 0x000000C + +gUnk_08110CFE:: @ 08110CFE + .incbin "baserom.gba", 0x110CFE, 0x0000002 + +gUnk_08110D00:: @ 08110D00 + .incbin "baserom.gba", 0x110D00, 0x0000002 + +gUnk_08110D02:: @ 08110D02 + .incbin "baserom.gba", 0x110D02, 0x0000006 + +gUnk_08110D08:: @ 08110D08 + .incbin "baserom.gba", 0x110D08, 0x0000025 + +gUnk_08110D2D:: @ 08110D2D + .incbin "baserom.gba", 0x110D2D, 0x0000005 + +gUnk_08110D32:: @ 08110D32 + .incbin "baserom.gba", 0x110D32, 0x0000005 + +gUnk_08110D37:: @ 08110D37 + .incbin "baserom.gba", 0x110D37, 0x0000005 + +gUnk_08110D3C:: @ 08110D3C + .incbin "baserom.gba", 0x110D3C, 0x0000025 + +gUnk_08110D61:: @ 08110D61 + .incbin "baserom.gba", 0x110D61, 0x0000005 + +gUnk_08110D66:: @ 08110D66 + .incbin "baserom.gba", 0x110D66, 0x0000005 + +gUnk_08110D6B:: @ 08110D6B + .incbin "baserom.gba", 0x110D6B, 0x0000005 + +gUnk_08110D70:: @ 08110D70 + .incbin "baserom.gba", 0x110D70, 0x000001D + +gUnk_08110D8D:: @ 08110D8D + .incbin "baserom.gba", 0x110D8D, 0x0000005 + +gUnk_08110D92:: @ 08110D92 + .incbin "baserom.gba", 0x110D92, 0x0000005 + +gUnk_08110D97:: @ 08110D97 + .incbin "baserom.gba", 0x110D97, 0x0000005 + +gUnk_08110D9C:: @ 08110D9C + .incbin "baserom.gba", 0x110D9C, 0x000001D + +gUnk_08110DB9:: @ 08110DB9 + .incbin "baserom.gba", 0x110DB9, 0x0000005 + +gUnk_08110DBE:: @ 08110DBE + .incbin "baserom.gba", 0x110DBE, 0x0000005 + +gUnk_08110DC3:: @ 08110DC3 + .incbin "baserom.gba", 0x110DC3, 0x0000005 + +gUnk_08110DC8:: @ 08110DC8 + .incbin "baserom.gba", 0x110DC8, 0x0000038 + +gUnk_08110E00:: @ 08110E00 + .incbin "baserom.gba", 0x110E00, 0x0000006 + +gUnk_08110E06:: @ 08110E06 + .incbin "baserom.gba", 0x110E06, 0x0000003 + +gUnk_08110E09:: @ 08110E09 + .incbin "baserom.gba", 0x110E09, 0x0000005 + +gUnk_08110E0E:: @ 08110E0E + .incbin "baserom.gba", 0x110E0E, 0x0000002 + +gUnk_08110E10:: @ 08110E10 + .incbin "baserom.gba", 0x110E10, 0x000003C + +gUnk_08110E4C:: @ 08110E4C + .incbin "baserom.gba", 0x110E4C, 0x0000010 + +gUnk_08110E5C:: @ 08110E5C + .incbin "baserom.gba", 0x110E5C, 0x0000008 + +gUnk_08110E64:: @ 08110E64 + .incbin "baserom.gba", 0x110E64, 0x0000004 + +gUnk_08110E68:: @ 08110E68 + .incbin "baserom.gba", 0x110E68, 0x0000010 + +gUnk_08110E78:: @ 08110E78 + .incbin "baserom.gba", 0x110E78, 0x0000012 + +gUnk_08110E8A:: @ 08110E8A + .incbin "baserom.gba", 0x110E8A, 0x000000A + +gUnk_08110E94:: @ 08110E94 + .incbin "baserom.gba", 0x110E94, 0x0000008 + +gUnk_08110E9C:: @ 08110E9C + .incbin "baserom.gba", 0x110E9C, 0x0000005 + +gUnk_08110EA1:: @ 08110EA1 + .incbin "baserom.gba", 0x110EA1, 0x0000005 + +gUnk_08110EA6:: @ 08110EA6 + .incbin "baserom.gba", 0x110EA6, 0x0000006 + +gUnk_08110EAC:: @ 08110EAC + .incbin "baserom.gba", 0x110EAC, 0x0000044 + +gUnk_08110EF0:: @ 08110EF0 + .incbin "baserom.gba", 0x110EF0, 0x0000008 + +gUnk_08110EF8:: @ 08110EF8 + .incbin "baserom.gba", 0x110EF8, 0x0000002 + +gUnk_08110EFA:: @ 08110EFA + .incbin "baserom.gba", 0x110EFA, 0x000000F + +gUnk_08110F09:: @ 08110F09 + .incbin "baserom.gba", 0x110F09, 0x0000001 + +gUnk_08110F0A:: @ 08110F0A + .incbin "baserom.gba", 0x110F0A, 0x0000002 + +gUnk_08110F0C:: @ 08110F0C + .incbin "baserom.gba", 0x110F0C, 0x000000A + +gUnk_08110F16:: @ 08110F16 + .incbin "baserom.gba", 0x110F16, 0x00000EA + +gUnk_08111000:: @ 08111000 + .incbin "baserom.gba", 0x111000, 0x0000003 + +gUnk_08111003:: @ 08111003 + .incbin "baserom.gba", 0x111003, 0x000000A + +gUnk_0811100D:: @ 0811100D + .incbin "baserom.gba", 0x11100D, 0x00000CB + +gUnk_081110D8:: @ 081110D8 + .incbin "baserom.gba", 0x1110D8, 0x0000024 + +gUnk_081110FC:: @ 081110FC + .incbin "baserom.gba", 0x1110FC, 0x0000008 + +gUnk_08111104:: @ 08111104 + .incbin "baserom.gba", 0x111104, 0x0000008 + +gUnk_0811110C:: @ 0811110C + .incbin "baserom.gba", 0x11110C, 0x0000001 + +gUnk_0811110D:: @ 0811110D + .incbin "baserom.gba", 0x11110D, 0x0000001 + +gUnk_0811110E:: @ 0811110E + .incbin "baserom.gba", 0x11110E, 0x0000001 + +gUnk_0811110F:: @ 0811110F + .incbin "baserom.gba", 0x11110F, 0x0000002 + +gUnk_08111111:: @ 08111111 + .incbin "baserom.gba", 0x111111, 0x0000002 + +gUnk_08111113:: @ 08111113 + .incbin "baserom.gba", 0x111113, 0x0000001 + +gUnk_08111114:: @ 08111114 + .incbin "baserom.gba", 0x111114, 0x0000008 + +gUnk_0811111C:: @ 0811111C + .incbin "baserom.gba", 0x11111C, 0x0000008 + +gUnk_08111124:: @ 08111124 + .incbin "baserom.gba", 0x111124, 0x0000008 + +gUnk_0811112C:: @ 0811112C + .incbin "baserom.gba", 0x11112C, 0x0000008 + +gUnk_08111134:: @ 08111134 + .incbin "baserom.gba", 0x111134, 0x0000008 + +gUnk_0811113C:: @ 0811113C + .incbin "baserom.gba", 0x11113C, 0x0000008 + +gUnk_08111144:: @ 08111144 + .incbin "baserom.gba", 0x111144, 0x0000008 + +gUnk_0811114C:: @ 0811114C + .incbin "baserom.gba", 0x11114C, 0x0000008 + +gUnk_08111154:: @ 08111154 + .incbin "baserom.gba", 0x111154, 0x0000017 + +gUnk_0811116B:: @ 0811116B + .incbin "baserom.gba", 0x11116B, 0x0000009 + +gUnk_08111174:: @ 08111174 + .incbin "baserom.gba", 0x111174, 0x000003C + +gUnk_081111B0:: @ 081111B0 + .incbin "baserom.gba", 0x1111B0, 0x0000009 + +gUnk_081111B9:: @ 081111B9 + .incbin "baserom.gba", 0x1111B9, 0x0000003 + +gUnk_081111BC:: @ 081111BC + .incbin "baserom.gba", 0x1111BC, 0x0000006 + +gUnk_081111C2:: @ 081111C2 + .incbin "baserom.gba", 0x1111C2, 0x0000011 + +gUnk_081111D3:: @ 081111D3 + .incbin "baserom.gba", 0x1111D3, 0x0000018 + +gUnk_081111EB:: @ 081111EB + .incbin "baserom.gba", 0x1111EB, 0x0000010 + +gUnk_081111FB:: @ 081111FB + .incbin "baserom.gba", 0x1111FB, 0x0000009 + +gUnk_08111204:: @ 08111204 + .incbin "baserom.gba", 0x111204, 0x000000D + +gUnk_08111211:: @ 08111211 + .incbin "baserom.gba", 0x111211, 0x000000D + +gUnk_0811121E:: @ 0811121E + .incbin "baserom.gba", 0x11121E, 0x000000E + +gUnk_0811122C:: @ 0811122C + .incbin "baserom.gba", 0x11122C, 0x000000C + +gUnk_08111238:: @ 08111238 + .incbin "baserom.gba", 0x111238, 0x0000024 + +gUnk_0811125C:: @ 0811125C + .incbin "baserom.gba", 0x11125C, 0x0000028 + +gUnk_08111284:: @ 08111284 + .incbin "baserom.gba", 0x111284, 0x0000080 + +gUnk_08111304:: @ 08111304 + .incbin "baserom.gba", 0x111304, 0x0000009 + +gUnk_0811130D:: @ 0811130D + .incbin "baserom.gba", 0x11130D, 0x0000001 + +gUnk_0811130E:: @ 0811130E + .incbin "baserom.gba", 0x11130E, 0x0000001 + +gUnk_0811130F:: @ 0811130F + .incbin "baserom.gba", 0x11130F, 0x0000009 + +gUnk_08111318:: @ 08111318 + .incbin "baserom.gba", 0x111318, 0x0000006 + +gUnk_0811131E:: @ 0811131E + .incbin "baserom.gba", 0x11131E, 0x0000025 + +gUnk_08111343:: @ 08111343 + .incbin "baserom.gba", 0x111343, 0x0000015 + +gUnk_08111358:: @ 08111358 + .incbin "baserom.gba", 0x111358, 0x0000010 + +gUnk_08111368:: @ 08111368 + .incbin "baserom.gba", 0x111368, 0x000000C + +gUnk_08111374:: @ 08111374 + .incbin "baserom.gba", 0x111374, 0x0000006 + +gUnk_0811137A:: @ 0811137A + .incbin "baserom.gba", 0x11137A, 0x0000006 + +gUnk_08111380:: @ 08111380 + .incbin "baserom.gba", 0x111380, 0x0000005 + +gUnk_08111385:: @ 08111385 + .incbin "baserom.gba", 0x111385, 0x0000005 + +gUnk_0811138A:: @ 0811138A + .incbin "baserom.gba", 0x11138A, 0x0000005 + +gUnk_0811138F:: @ 0811138F + .incbin "baserom.gba", 0x11138F, 0x0000005 + +gUnk_08111394:: @ 08111394 + .incbin "baserom.gba", 0x111394, 0x0000025 + +gUnk_081113B9:: @ 081113B9 + .incbin "baserom.gba", 0x1113B9, 0x0000025 + +gUnk_081113DE:: @ 081113DE + .incbin "baserom.gba", 0x1113DE, 0x0000021 + +gUnk_081113FF:: @ 081113FF + .incbin "baserom.gba", 0x1113FF, 0x0000008 + +gUnk_08111407:: @ 08111407 + .incbin "baserom.gba", 0x111407, 0x0000005 + +gUnk_0811140C:: @ 0811140C + .incbin "baserom.gba", 0x11140C, 0x0000002 + +gUnk_0811140E:: @ 0811140E + .incbin "baserom.gba", 0x11140E, 0x0000005 + +gUnk_08111413:: @ 08111413 + .incbin "baserom.gba", 0x111413, 0x0000009 + +gUnk_0811141C:: @ 0811141C + .incbin "baserom.gba", 0x11141C, 0x0000008 + +gUnk_08111424:: @ 08111424 + .incbin "baserom.gba", 0x111424, 0x0000025 + +gUnk_08111449:: @ 08111449 + .incbin "baserom.gba", 0x111449, 0x0000071 + +gUnk_081114BA:: @ 081114BA + .incbin "baserom.gba", 0x1114BA, 0x0000029 + +gUnk_081114E3:: @ 081114E3 + .incbin "baserom.gba", 0x1114E3, 0x0000005 + +gUnk_081114E8:: @ 081114E8 + .incbin "baserom.gba", 0x1114E8, 0x0000013 + +gUnk_081114FB:: @ 081114FB + .incbin "baserom.gba", 0x1114FB, 0x0000016 + +gUnk_08111511:: @ 08111511 + .incbin "baserom.gba", 0x111511, 0x0000002 + +gUnk_08111513:: @ 08111513 + .incbin "baserom.gba", 0x111513, 0x0000001 + +gUnk_08111514:: @ 08111514 + .incbin "baserom.gba", 0x111514, 0x0000003 + +gUnk_08111517:: @ 08111517 + .incbin "baserom.gba", 0x111517, 0x0000003 + +gUnk_0811151A:: @ 0811151A + .incbin "baserom.gba", 0x11151A, 0x0000001 + +gUnk_0811151B:: @ 0811151B + .incbin "baserom.gba", 0x11151B, 0x0000001 + +gUnk_0811151C:: @ 0811151C + .incbin "baserom.gba", 0x11151C, 0x0000004 + +gUnk_08111520:: @ 08111520 + .incbin "baserom.gba", 0x111520, 0x0000007 + +gUnk_08111527:: @ 08111527 + .incbin "baserom.gba", 0x111527, 0x0000002 + +gUnk_08111529:: @ 08111529 + .incbin "baserom.gba", 0x111529, 0x0000007 + +gUnk_08111530:: @ 08111530 + .incbin "baserom.gba", 0x111530, 0x0000008 + +gUnk_08111538:: @ 08111538 + .incbin "baserom.gba", 0x111538, 0x0000006 + +gUnk_0811153E:: @ 0811153E + .incbin "baserom.gba", 0x11153E, 0x0000006 + +gUnk_08111544:: @ 08111544 + .incbin "baserom.gba", 0x111544, 0x0000005 + +gUnk_08111549:: @ 08111549 + .incbin "baserom.gba", 0x111549, 0x0000005 + +gUnk_0811154E:: @ 0811154E + .incbin "baserom.gba", 0x11154E, 0x0000005 + +gUnk_08111553:: @ 08111553 + .incbin "baserom.gba", 0x111553, 0x0000039 + +gUnk_0811158C:: @ 0811158C + .incbin "baserom.gba", 0x11158C, 0x0000008 + +gUnk_08111594:: @ 08111594 + .incbin "baserom.gba", 0x111594, 0x000002C + +gUnk_081115C0:: @ 081115C0 + .incbin "baserom.gba", 0x1115C0, 0x0000010 + +gUnk_081115D0:: @ 081115D0 + .incbin "baserom.gba", 0x1115D0, 0x000000C + +gUnk_081115DC:: @ 081115DC + .incbin "baserom.gba", 0x1115DC, 0x0000010 + +gUnk_081115EC:: @ 081115EC + .incbin "baserom.gba", 0x1115EC, 0x0000024 + +gUnk_08111610:: @ 08111610 + .incbin "baserom.gba", 0x111610, 0x0000008 + +gUnk_08111618:: @ 08111618 + .incbin "baserom.gba", 0x111618, 0x0000003 + +gUnk_0811161B:: @ 0811161B + .incbin "baserom.gba", 0x11161B, 0x0000005 + +gUnk_08111620:: @ 08111620 + .incbin "baserom.gba", 0x111620, 0x0000003 + +gUnk_08111623:: @ 08111623 + .incbin "baserom.gba", 0x111623, 0x0000008 + +gUnk_0811162B:: @ 0811162B + .incbin "baserom.gba", 0x11162B, 0x000000D + +gUnk_08111638:: @ 08111638 + .incbin "baserom.gba", 0x111638, 0x000002C + +gUnk_08111664:: @ 08111664 + .incbin "baserom.gba", 0x111664, 0x0000016 + +gUnk_0811167A:: @ 0811167A + .incbin "baserom.gba", 0x11167A, 0x0000016 + +gUnk_08111690:: @ 08111690 + .incbin "baserom.gba", 0x111690, 0x0000016 + +gUnk_081116A6:: @ 081116A6 + .incbin "baserom.gba", 0x1116A6, 0x0000016 + +gUnk_081116BC:: @ 081116BC + .incbin "baserom.gba", 0x1116BC, 0x0000016 + +gUnk_081116D2:: @ 081116D2 + .incbin "baserom.gba", 0x1116D2, 0x0000016 + +gUnk_081116E8:: @ 081116E8 + .incbin "baserom.gba", 0x1116E8, 0x0000016 + +gUnk_081116FE:: @ 081116FE + .incbin "baserom.gba", 0x1116FE, 0x0000016 + +gUnk_08111714:: @ 08111714 + .incbin "baserom.gba", 0x111714, 0x0000003 + +gUnk_08111717:: @ 08111717 + .incbin "baserom.gba", 0x111717, 0x0000001 + +gUnk_08111718:: @ 08111718 + .incbin "baserom.gba", 0x111718, 0x0000001 + +gUnk_08111719:: @ 08111719 + .incbin "baserom.gba", 0x111719, 0x0000001 + +gUnk_0811171A:: @ 0811171A + .incbin "baserom.gba", 0x11171A, 0x0000010 + +gUnk_0811172A:: @ 0811172A + .incbin "baserom.gba", 0x11172A, 0x0000016 + +gUnk_08111740:: @ 08111740 + .incbin "baserom.gba", 0x111740, 0x000002C + +gUnk_0811176C:: @ 0811176C + .incbin "baserom.gba", 0x11176C, 0x0000005 + +gUnk_08111771:: @ 08111771 + .incbin "baserom.gba", 0x111771, 0x0000005 + +gUnk_08111776:: @ 08111776 + .incbin "baserom.gba", 0x111776, 0x0000005 + +gUnk_0811177B:: @ 0811177B + .incbin "baserom.gba", 0x11177B, 0x000004D + +gUnk_081117C8:: @ 081117C8 + .incbin "baserom.gba", 0x1117C8, 0x0000031 + +gUnk_081117F9:: @ 081117F9 + .incbin "baserom.gba", 0x1117F9, 0x000001E + +gUnk_08111817:: @ 08111817 + .incbin "baserom.gba", 0x111817, 0x0000002 + +gUnk_08111819:: @ 08111819 + .incbin "baserom.gba", 0x111819, 0x0000002 + +gUnk_0811181B:: @ 0811181B + .incbin "baserom.gba", 0x11181B, 0x0000001 + +gUnk_0811181C:: @ 0811181C + .incbin "baserom.gba", 0x11181C, 0x0000001 + +gUnk_0811181D:: @ 0811181D + .incbin "baserom.gba", 0x11181D, 0x0000001 + +gUnk_0811181E:: @ 0811181E + .incbin "baserom.gba", 0x11181E, 0x0000004 + +gUnk_08111822:: @ 08111822 + .incbin "baserom.gba", 0x111822, 0x0000008 + +gUnk_0811182A:: @ 0811182A + .incbin "baserom.gba", 0x11182A, 0x0000031 + +gUnk_0811185B:: @ 0811185B + .incbin "baserom.gba", 0x11185B, 0x0000071 + +gUnk_081118CC:: @ 081118CC + .incbin "baserom.gba", 0x1118CC, 0x0000024 + +gUnk_081118F0:: @ 081118F0 + .incbin "baserom.gba", 0x1118F0, 0x0000024 + +gUnk_08111914:: @ 08111914 + .incbin "baserom.gba", 0x111914, 0x0000004 + +gUnk_08111918:: @ 08111918 + .incbin "baserom.gba", 0x111918, 0x0000001 + +gUnk_08111919:: @ 08111919 + .incbin "baserom.gba", 0x111919, 0x0000001 + +gUnk_0811191A:: @ 0811191A + .incbin "baserom.gba", 0x11191A, 0x0000001 + +gUnk_0811191B:: @ 0811191B + .incbin "baserom.gba", 0x11191B, 0x0000002 + +gUnk_0811191D:: @ 0811191D + .incbin "baserom.gba", 0x11191D, 0x0000001 + +gUnk_0811191E:: @ 0811191E + .incbin "baserom.gba", 0x11191E, 0x0000002 + +gUnk_08111920:: @ 08111920 + .incbin "baserom.gba", 0x111920, 0x0000002 + +gUnk_08111922:: @ 08111922 + .incbin "baserom.gba", 0x111922, 0x0000006 + +gUnk_08111928:: @ 08111928 + .incbin "baserom.gba", 0x111928, 0x0000010 + +gUnk_08111938:: @ 08111938 + .incbin "baserom.gba", 0x111938, 0x0000028 + +gUnk_08111960:: @ 08111960 + .incbin "baserom.gba", 0x111960, 0x0000005 + +gUnk_08111965:: @ 08111965 + .incbin "baserom.gba", 0x111965, 0x0000005 + +gUnk_0811196A:: @ 0811196A + .incbin "baserom.gba", 0x11196A, 0x0000005 + +gUnk_0811196F:: @ 0811196F + .incbin "baserom.gba", 0x11196F, 0x0000005 + +gUnk_08111974:: @ 08111974 + .incbin "baserom.gba", 0x111974, 0x0000011 + +gUnk_08111985:: @ 08111985 + .incbin "baserom.gba", 0x111985, 0x0000011 + +gUnk_08111996:: @ 08111996 + .incbin "baserom.gba", 0x111996, 0x0000011 + +gUnk_081119A7:: @ 081119A7 + .incbin "baserom.gba", 0x1119A7, 0x0000011 + +gUnk_081119B8:: @ 081119B8 + .incbin "baserom.gba", 0x1119B8, 0x000000C + +gUnk_081119C4:: @ 081119C4 + .incbin "baserom.gba", 0x1119C4, 0x000000C + +gUnk_081119D0:: @ 081119D0 + .incbin "baserom.gba", 0x1119D0, 0x000000C + +gUnk_081119DC:: @ 081119DC + .incbin "baserom.gba", 0x1119DC, 0x000000C + +gUnk_081119E8:: @ 081119E8 + .incbin "baserom.gba", 0x1119E8, 0x0000009 + +gUnk_081119F1:: @ 081119F1 + .incbin "baserom.gba", 0x1119F1, 0x0000005 + +gUnk_081119F6:: @ 081119F6 + .incbin "baserom.gba", 0x1119F6, 0x0000004 + +gUnk_081119FA:: @ 081119FA + .incbin "baserom.gba", 0x1119FA, 0x0000009 + +gUnk_08111A03:: @ 08111A03 + .incbin "baserom.gba", 0x111A03, 0x0000009 + +gUnk_08111A0C:: @ 08111A0C + .incbin "baserom.gba", 0x111A0C, 0x0000008 + +gUnk_08111A14:: @ 08111A14 + .incbin "baserom.gba", 0x111A14, 0x0000002 + +gUnk_08111A16:: @ 08111A16 + .incbin "baserom.gba", 0x111A16, 0x0000002 + +gUnk_08111A18:: @ 08111A18 + .incbin "baserom.gba", 0x111A18, 0x0000001 + +gUnk_08111A19:: @ 08111A19 + .incbin "baserom.gba", 0x111A19, 0x0000003 + +gUnk_08111A1C:: @ 08111A1C + .incbin "baserom.gba", 0x111A1C, 0x0000003 + +gUnk_08111A1F:: @ 08111A1F + .incbin "baserom.gba", 0x111A1F, 0x0000002 + +gUnk_08111A21:: @ 08111A21 + .incbin "baserom.gba", 0x111A21, 0x0000001 + +gUnk_08111A22:: @ 08111A22 + .incbin "baserom.gba", 0x111A22, 0x0000002 + +gUnk_08111A24:: @ 08111A24 + .incbin "baserom.gba", 0x111A24, 0x0000008 + +gUnk_08111A2C:: @ 08111A2C + .incbin "baserom.gba", 0x111A2C, 0x0000054 + +gUnk_08111A80:: @ 08111A80 + .incbin "baserom.gba", 0x111A80, 0x000000C + +gUnk_08111A8C:: @ 08111A8C + .incbin "baserom.gba", 0x111A8C, 0x0000008 + +gUnk_08111A94:: @ 08111A94 + .incbin "baserom.gba", 0x111A94, 0x0000030 + +gUnk_08111AC4:: @ 08111AC4 + .incbin "baserom.gba", 0x111AC4, 0x0000005 + +gUnk_08111AC9:: @ 08111AC9 + .incbin "baserom.gba", 0x111AC9, 0x0000005 + +gUnk_08111ACE:: @ 08111ACE + .incbin "baserom.gba", 0x111ACE, 0x0000005 + +gUnk_08111AD3:: @ 08111AD3 + .incbin "baserom.gba", 0x111AD3, 0x0000005 + +gUnk_08111AD8:: @ 08111AD8 + .incbin "baserom.gba", 0x111AD8, 0x0000021 + +gUnk_08111AF9:: @ 08111AF9 + .incbin "baserom.gba", 0x111AF9, 0x0000021 + +gUnk_08111B1A:: @ 08111B1A + .incbin "baserom.gba", 0x111B1A, 0x0000005 + +gUnk_08111B1F:: @ 08111B1F + .incbin "baserom.gba", 0x111B1F, 0x0000007 + +gUnk_08111B26:: @ 08111B26 + .incbin "baserom.gba", 0x111B26, 0x0000015 + +gUnk_08111B3B:: @ 08111B3B + .incbin "baserom.gba", 0x111B3B, 0x000000B + +gUnk_08111B46:: @ 08111B46 + .incbin "baserom.gba", 0x111B46, 0x000001A + +gUnk_08111B60:: @ 08111B60 + .incbin "baserom.gba", 0x111B60, 0x0000023 + +gUnk_08111B83:: @ 08111B83 + .incbin "baserom.gba", 0x111B83, 0x0000005 + +gUnk_08111B88:: @ 08111B88 + .incbin "baserom.gba", 0x111B88, 0x0000010 + +gUnk_08111B98:: @ 08111B98 + .incbin "baserom.gba", 0x111B98, 0x0000008 + +gUnk_08111BA0:: @ 08111BA0 + .incbin "baserom.gba", 0x111BA0, 0x000001E + +gUnk_08111BBE:: @ 08111BBE + .incbin "baserom.gba", 0x111BBE, 0x0000005 + +gUnk_08111BC3:: @ 08111BC3 + .incbin "baserom.gba", 0x111BC3, 0x0000005 + +gUnk_08111BC8:: @ 08111BC8 + .incbin "baserom.gba", 0x111BC8, 0x0000005 + +gUnk_08111BCD:: @ 08111BCD + .incbin "baserom.gba", 0x111BCD, 0x0000025 + +gUnk_08111BF2:: @ 08111BF2 + .incbin "baserom.gba", 0x111BF2, 0x0000026 + +gUnk_08111C18:: @ 08111C18 + .incbin "baserom.gba", 0x111C18, 0x0000002 + +gUnk_08111C1A:: @ 08111C1A + .incbin "baserom.gba", 0x111C1A, 0x0000002 + +gUnk_08111C1C:: @ 08111C1C + .incbin "baserom.gba", 0x111C1C, 0x0000004 + +gUnk_08111C20:: @ 08111C20 + .incbin "baserom.gba", 0x111C20, 0x0000001 + +gUnk_08111C21:: @ 08111C21 + .incbin "baserom.gba", 0x111C21, 0x0000002 + +gUnk_08111C23:: @ 08111C23 + .incbin "baserom.gba", 0x111C23, 0x0000019 + +gUnk_08111C3C:: @ 08111C3C + .incbin "baserom.gba", 0x111C3C, 0x000000C + +gUnk_08111C48:: @ 08111C48 + .incbin "baserom.gba", 0x111C48, 0x0000008 + +gUnk_08111C50:: @ 08111C50 + .incbin "baserom.gba", 0x111C50, 0x000000C + +gUnk_08111C5C:: @ 08111C5C + .incbin "baserom.gba", 0x111C5C, 0x0000018 + +gUnk_08111C74:: @ 08111C74 + .incbin "baserom.gba", 0x111C74, 0x0000010 + +gUnk_08111C84:: @ 08111C84 + .incbin "baserom.gba", 0x111C84, 0x0000008 + +gUnk_08111C8C:: @ 08111C8C + .incbin "baserom.gba", 0x111C8C, 0x0000010 + +gUnk_08111C9C:: @ 08111C9C + .incbin "baserom.gba", 0x111C9C, 0x000000C + +gUnk_08111CA8:: @ 08111CA8 + .incbin "baserom.gba", 0x111CA8, 0x000000C + +gUnk_08111CB4:: @ 08111CB4 + .incbin "baserom.gba", 0x111CB4, 0x0000004 + +gUnk_08111CB8:: @ 08111CB8 + .incbin "baserom.gba", 0x111CB8, 0x0000004 + +gUnk_08111CBC:: @ 08111CBC + .incbin "baserom.gba", 0x111CBC, 0x0000005 + +gUnk_08111CC1:: @ 08111CC1 + .incbin "baserom.gba", 0x111CC1, 0x0000005 + +gUnk_08111CC6:: @ 08111CC6 + .incbin "baserom.gba", 0x111CC6, 0x0000005 + +gUnk_08111CCB:: @ 08111CCB + .incbin "baserom.gba", 0x111CCB, 0x0000005 + +gUnk_08111CD0:: @ 08111CD0 + .incbin "baserom.gba", 0x111CD0, 0x0000019 + +gUnk_08111CE9:: @ 08111CE9 + .incbin "baserom.gba", 0x111CE9, 0x0000019 + +gUnk_08111D02:: @ 08111D02 + .incbin "baserom.gba", 0x111D02, 0x0000015 + +gUnk_08111D17:: @ 08111D17 + .incbin "baserom.gba", 0x111D17, 0x0000004 + +gUnk_08111D1B:: @ 08111D1B + .incbin "baserom.gba", 0x111D1B, 0x000000F + +gUnk_08111D2A:: @ 08111D2A + .incbin "baserom.gba", 0x111D2A, 0x0000001 + +gUnk_08111D2B:: @ 08111D2B + .incbin "baserom.gba", 0x111D2B, 0x0000009 + +gUnk_08111D34:: @ 08111D34 + .incbin "baserom.gba", 0x111D34, 0x0000024 + +gUnk_08111D58:: @ 08111D58 + .incbin "baserom.gba", 0x111D58, 0x0000030 + +gUnk_08111D88:: @ 08111D88 + .incbin "baserom.gba", 0x111D88, 0x0000020 + +gUnk_08111DA8:: @ 08111DA8 + .incbin "baserom.gba", 0x111DA8, 0x0000008 + +gUnk_08111DB0:: @ 08111DB0 + .incbin "baserom.gba", 0x111DB0, 0x0000066 + +gUnk_08111E16:: @ 08111E16 + .incbin "baserom.gba", 0x111E16, 0x000001A + +gUnk_08111E30:: @ 08111E30 + .incbin "baserom.gba", 0x111E30, 0x0000004 + +gUnk_08111E34:: @ 08111E34 + .incbin "baserom.gba", 0x111E34, 0x00000AD + +gUnk_08111EE1:: @ 08111EE1 + .incbin "baserom.gba", 0x111EE1, 0x0000047 + +gUnk_08111F28:: @ 08111F28 + .incbin "baserom.gba", 0x111F28, 0x0000008 + +gUnk_08111F30:: @ 08111F30 + .incbin "baserom.gba", 0x111F30, 0x0000044 + +gUnk_08111F74:: @ 08111F74 + .incbin "baserom.gba", 0x111F74, 0x0000064 + +gUnk_08111FD8:: @ 08111FD8 + .incbin "baserom.gba", 0x111FD8, 0x000000A + +gUnk_08111FE2:: @ 08111FE2 + .incbin "baserom.gba", 0x111FE2, 0x0000005 + +gUnk_08111FE7:: @ 08111FE7 + .incbin "baserom.gba", 0x111FE7, 0x0000005 + +gUnk_08111FEC:: @ 08111FEC + .incbin "baserom.gba", 0x111FEC, 0x0000005 + +gUnk_08111FF1:: @ 08111FF1 + .incbin "baserom.gba", 0x111FF1, 0x0000005 + +gUnk_08111FF6:: @ 08111FF6 + .incbin "baserom.gba", 0x111FF6, 0x0000011 + +gUnk_08112007:: @ 08112007 + .incbin "baserom.gba", 0x112007, 0x0000007 + +gUnk_0811200E:: @ 0811200E + .incbin "baserom.gba", 0x11200E, 0x000000A + +gUnk_08112018:: @ 08112018 + .incbin "baserom.gba", 0x112018, 0x0000005 + +gUnk_0811201D:: @ 0811201D + .incbin "baserom.gba", 0x11201D, 0x0000005 + +gUnk_08112022:: @ 08112022 + .incbin "baserom.gba", 0x112022, 0x0000005 + +gUnk_08112027:: @ 08112027 + .incbin "baserom.gba", 0x112027, 0x0000005 + +gUnk_0811202C:: @ 0811202C + .incbin "baserom.gba", 0x11202C, 0x0000005 + +gUnk_08112031:: @ 08112031 + .incbin "baserom.gba", 0x112031, 0x0000005 + +gUnk_08112036:: @ 08112036 + .incbin "baserom.gba", 0x112036, 0x0000005 + +gUnk_0811203B:: @ 0811203B + .incbin "baserom.gba", 0x11203B, 0x0000005 + +gUnk_08112040:: @ 08112040 + .incbin "baserom.gba", 0x112040, 0x0000005 + +gUnk_08112045:: @ 08112045 + .incbin "baserom.gba", 0x112045, 0x0000005 + +gUnk_0811204A:: @ 0811204A + .incbin "baserom.gba", 0x11204A, 0x0000005 + +gUnk_0811204F:: @ 0811204F + .incbin "baserom.gba", 0x11204F, 0x0000005 + +gUnk_08112054:: @ 08112054 + .incbin "baserom.gba", 0x112054, 0x0000005 + +gUnk_08112059:: @ 08112059 + .incbin "baserom.gba", 0x112059, 0x0000005 + +gUnk_0811205E:: @ 0811205E + .incbin "baserom.gba", 0x11205E, 0x0000005 + +gUnk_08112063:: @ 08112063 + .incbin "baserom.gba", 0x112063, 0x0000005 + +gUnk_08112068:: @ 08112068 + .incbin "baserom.gba", 0x112068, 0x000000D + +gUnk_08112075:: @ 08112075 + .incbin "baserom.gba", 0x112075, 0x000000D + +gUnk_08112082:: @ 08112082 + .incbin "baserom.gba", 0x112082, 0x000000D + +gUnk_0811208F:: @ 0811208F + .incbin "baserom.gba", 0x11208F, 0x000000D + +gUnk_0811209C:: @ 0811209C + .incbin "baserom.gba", 0x11209C, 0x0000011 + +gUnk_081120AD:: @ 081120AD + .incbin "baserom.gba", 0x1120AD, 0x0000011 + +gUnk_081120BE:: @ 081120BE + .incbin "baserom.gba", 0x1120BE, 0x0000011 + +gUnk_081120CF:: @ 081120CF + .incbin "baserom.gba", 0x1120CF, 0x0000011 + +gUnk_081120E0:: @ 081120E0 + .incbin "baserom.gba", 0x1120E0, 0x0000020 + +gUnk_08112100:: @ 08112100 + .incbin "baserom.gba", 0x112100, 0x0000021 + +gUnk_08112121:: @ 08112121 + .incbin "baserom.gba", 0x112121, 0x000000A + +gUnk_0811212B:: @ 0811212B + .incbin "baserom.gba", 0x11212B, 0x0000089 + +gUnk_081121B4:: @ 081121B4 + .incbin "baserom.gba", 0x1121B4, 0x0000010 + +gUnk_081121C4:: @ 081121C4 + .incbin "baserom.gba", 0x1121C4, 0x0000010 + +gUnk_081121D4:: @ 081121D4 + .incbin "baserom.gba", 0x1121D4, 0x0000008 + +gUnk_081121DC:: @ 081121DC + .incbin "baserom.gba", 0x1121DC, 0x0000008 + +gUnk_081121E4:: @ 081121E4 + .incbin "baserom.gba", 0x1121E4, 0x0000020 + +gUnk_08112204:: @ 08112204 + .incbin "baserom.gba", 0x112204, 0x0000004 + +gUnk_08112208:: @ 08112208 + .incbin "baserom.gba", 0x112208, 0x0000024 + +gUnk_0811222C:: @ 0811222C + .incbin "baserom.gba", 0x11222C, 0x000000C + +gUnk_08112238:: @ 08112238 + .incbin "baserom.gba", 0x112238, 0x000000B + +gUnk_08112243:: @ 08112243 + .incbin "baserom.gba", 0x112243, 0x000001D + +gUnk_08112260:: @ 08112260 + .incbin "baserom.gba", 0x112260, 0x0000018 + +gUnk_08112278:: @ 08112278 + .incbin "baserom.gba", 0x112278, 0x000001C + +gUnk_08112294:: @ 08112294 + .incbin "baserom.gba", 0x112294, 0x0000008 + +gUnk_0811229C:: @ 0811229C + .incbin "baserom.gba", 0x11229C, 0x0000004 + +gUnk_081122A0:: @ 081122A0 + .incbin "baserom.gba", 0x1122A0, 0x0000008 + +gUnk_081122A8:: @ 081122A8 + .incbin "baserom.gba", 0x1122A8, 0x0000008 + +gUnk_081122B0:: @ 081122B0 + .incbin "baserom.gba", 0x1122B0, 0x0000008 + +gUnk_081122B8:: @ 081122B8 + .incbin "baserom.gba", 0x1122B8, 0x0000008 + +gUnk_081122C0:: @ 081122C0 + .incbin "baserom.gba", 0x1122C0, 0x0000009 + +gUnk_081122C9:: @ 081122C9 + .incbin "baserom.gba", 0x1122C9, 0x0000009 + +gUnk_081122D2:: @ 081122D2 + .incbin "baserom.gba", 0x1122D2, 0x0000009 + +gUnk_081122DB:: @ 081122DB + .incbin "baserom.gba", 0x1122DB, 0x0000025 + +gUnk_08112300:: @ 08112300 + .incbin "baserom.gba", 0x112300, 0x0000025 + +gUnk_08112325:: @ 08112325 + .incbin "baserom.gba", 0x112325, 0x0000025 + +gUnk_0811234A:: @ 0811234A + .incbin "baserom.gba", 0x11234A, 0x000003D + +gUnk_08112387:: @ 08112387 + .incbin "baserom.gba", 0x112387, 0x0000019 + +gUnk_081123A0:: @ 081123A0 + .incbin "baserom.gba", 0x1123A0, 0x0000029 + +gUnk_081123C9:: @ 081123C9 + .incbin "baserom.gba", 0x1123C9, 0x0000025 + +gUnk_081123EE:: @ 081123EE + .incbin "baserom.gba", 0x1123EE, 0x0000079 + +gUnk_08112467:: @ 08112467 + .incbin "baserom.gba", 0x112467, 0x0000032 + +gUnk_08112499:: @ 08112499 + .incbin "baserom.gba", 0x112499, 0x0000013 + +gUnk_081124AC:: @ 081124AC + .incbin "baserom.gba", 0x1124AC, 0x0000009 + +gUnk_081124B5:: @ 081124B5 + .incbin "baserom.gba", 0x1124B5, 0x000001D + +gUnk_081124D2:: @ 081124D2 + .incbin "baserom.gba", 0x1124D2, 0x0000019 + +gUnk_081124EB:: @ 081124EB + .incbin "baserom.gba", 0x1124EB, 0x0000014 + +gUnk_081124FF:: @ 081124FF + .incbin "baserom.gba", 0x1124FF, 0x0000025 + +gUnk_08112524:: @ 08112524 + .incbin "baserom.gba", 0x112524, 0x0000019 + +gUnk_0811253D:: @ 0811253D + .incbin "baserom.gba", 0x11253D, 0x0000045 + +gUnk_08112582:: @ 08112582 + .incbin "baserom.gba", 0x112582, 0x0000016 + +gUnk_08112598:: @ 08112598 + .incbin "baserom.gba", 0x112598, 0x000005C + +gUnk_081125F4:: @ 081125F4 + .incbin "baserom.gba", 0x1125F4, 0x000000C + +gUnk_08112600:: @ 08112600 + .incbin "baserom.gba", 0x112600, 0x0000074 + +gUnk_08112674:: @ 08112674 + .incbin "baserom.gba", 0x112674, 0x0000060 + +gUnk_081126D4:: @ 081126D4 + .incbin "baserom.gba", 0x1126D4, 0x0000010 + +gUnk_081126E4:: @ 081126E4 + .incbin "baserom.gba", 0x1126E4, 0x0000004 + +gUnk_081126E8:: @ 081126E8 + .incbin "baserom.gba", 0x1126E8, 0x0000008 + +gUnk_081126F0:: @ 081126F0 + .incbin "baserom.gba", 0x1126F0, 0x000024C + +gUnk_0811293C:: @ 0811293C + .incbin "baserom.gba", 0x11293C, 0x0000001 + +gUnk_0811293D:: @ 0811293D + .incbin "baserom.gba", 0x11293D, 0x00002B3 + +gUnk_08112BF0:: @ 08112BF0 + .incbin "baserom.gba", 0x112BF0, 0x0000050 + +gUnk_08112C40:: @ 08112C40 + .incbin "baserom.gba", 0x112C40, 0x000000A + +gUnk_08112C4A:: @ 08112C4A + .incbin "baserom.gba", 0x112C4A, 0x0000006 + +gUnk_08112C50:: @ 08112C50 + .incbin "baserom.gba", 0x112C50, 0x000000C + +gUnk_08112C5C:: @ 08112C5C + .incbin "baserom.gba", 0x112C5C, 0x0000004 + +gUnk_08112C60:: @ 08112C60 + .incbin "baserom.gba", 0x112C60, 0x0000008 + +gUnk_08112C68:: @ 08112C68 + .incbin "baserom.gba", 0x112C68, 0x0000005 + +gUnk_08112C6D:: @ 08112C6D + .incbin "baserom.gba", 0x112C6D, 0x0000005 + +gUnk_08112C72:: @ 08112C72 + .incbin "baserom.gba", 0x112C72, 0x0000005 + +gUnk_08112C77:: @ 08112C77 + .incbin "baserom.gba", 0x112C77, 0x0000005 + +gUnk_08112C7C:: @ 08112C7C + .incbin "baserom.gba", 0x112C7C, 0x0000021 + +gUnk_08112C9D:: @ 08112C9D + .incbin "baserom.gba", 0x112C9D, 0x0000021 + +gUnk_08112CBE:: @ 08112CBE + .incbin "baserom.gba", 0x112CBE, 0x0000021 + +gUnk_08112CDF:: @ 08112CDF + .incbin "baserom.gba", 0x112CDF, 0x0000021 + +gUnk_08112D00:: @ 08112D00 + .incbin "baserom.gba", 0x112D00, 0x0000005 + +gUnk_08112D05:: @ 08112D05 + .incbin "baserom.gba", 0x112D05, 0x0000005 + +gUnk_08112D0A:: @ 08112D0A + .incbin "baserom.gba", 0x112D0A, 0x0000005 + +gUnk_08112D0F:: @ 08112D0F + .incbin "baserom.gba", 0x112D0F, 0x0000005 + +gUnk_08112D14:: @ 08112D14 + .incbin "baserom.gba", 0x112D14, 0x0000034 + +gUnk_08112D48:: @ 08112D48 + .incbin "baserom.gba", 0x112D48, 0x0000008 + +gUnk_08112D50:: @ 08112D50 + .incbin "baserom.gba", 0x112D50, 0x000000A + +gUnk_08112D5A:: @ 08112D5A + .incbin "baserom.gba", 0x112D5A, 0x0000015 + +gUnk_08112D6F:: @ 08112D6F + .incbin "baserom.gba", 0x112D6F, 0x0000009 + +gUnk_08112D78:: @ 08112D78 + .incbin "baserom.gba", 0x112D78, 0x0000011 + +gUnk_08112D89:: @ 08112D89 + .incbin "baserom.gba", 0x112D89, 0x0000011 + +gUnk_08112D9A:: @ 08112D9A + .incbin "baserom.gba", 0x112D9A, 0x000004D + +gUnk_08112DE7:: @ 08112DE7 + .incbin "baserom.gba", 0x112DE7, 0x0000005 + +gUnk_08112DEC:: @ 08112DEC + .incbin "baserom.gba", 0x112DEC, 0x0000030 + +gUnk_08112E1C:: @ 08112E1C + .incbin "baserom.gba", 0x112E1C, 0x0000010 + +gUnk_08112E2C:: @ 08112E2C + .incbin "baserom.gba", 0x112E2C, 0x0000028 + +gUnk_08112E54:: @ 08112E54 + .incbin "baserom.gba", 0x112E54, 0x0000008 + +gUnk_08112E5C:: @ 08112E5C + .incbin "baserom.gba", 0x112E5C, 0x0000049 + +gUnk_08112EA5:: @ 08112EA5 + .incbin "baserom.gba", 0x112EA5, 0x0000005 + +gUnk_08112EAA:: @ 08112EAA + .incbin "baserom.gba", 0x112EAA, 0x0000005 + +gUnk_08112EAF:: @ 08112EAF + .incbin "baserom.gba", 0x112EAF, 0x0000005 + +gUnk_08112EB4:: @ 08112EB4 + .incbin "baserom.gba", 0x112EB4, 0x0000071 + +gUnk_08112F25:: @ 08112F25 + .incbin "baserom.gba", 0x112F25, 0x0000005 + +gUnk_08112F2A:: @ 08112F2A + .incbin "baserom.gba", 0x112F2A, 0x0000005 + +gUnk_08112F2F:: @ 08112F2F + .incbin "baserom.gba", 0x112F2F, 0x0000005 + +gUnk_08112F34:: @ 08112F34 + .incbin "baserom.gba", 0x112F34, 0x0000044 + +gUnk_08112F78:: @ 08112F78 + .incbin "baserom.gba", 0x112F78, 0x0000008 + +gUnk_08112F80:: @ 08112F80 + .incbin "baserom.gba", 0x112F80, 0x0000008 + +gUnk_08112F88:: @ 08112F88 + .incbin "baserom.gba", 0x112F88, 0x000003C + +gUnk_08112FC4:: @ 08112FC4 + .incbin "baserom.gba", 0x112FC4, 0x0000011 + +gUnk_08112FD5:: @ 08112FD5 + .incbin "baserom.gba", 0x112FD5, 0x000001F + +gUnk_08112FF4:: @ 08112FF4 + .incbin "baserom.gba", 0x112FF4, 0x0000010 + +gUnk_08113004:: @ 08113004 + .incbin "baserom.gba", 0x113004, 0x0000020 + +gUnk_08113024:: @ 08113024 + .incbin "baserom.gba", 0x113024, 0x0000008 + +gUnk_0811302C:: @ 0811302C + .incbin "baserom.gba", 0x11302C, 0x0000044 + +gUnk_08113070:: @ 08113070 + .incbin "baserom.gba", 0x113070, 0x0000008 + +gUnk_08113078:: @ 08113078 + .incbin "baserom.gba", 0x113078, 0x0000006 + +gUnk_0811307E:: @ 0811307E + .incbin "baserom.gba", 0x11307E, 0x0000005 + +gUnk_08113083:: @ 08113083 + .incbin "baserom.gba", 0x113083, 0x000000D + +gUnk_08113090:: @ 08113090 + .incbin "baserom.gba", 0x113090, 0x0000010 + +gUnk_081130A0:: @ 081130A0 + .incbin "baserom.gba", 0x1130A0, 0x0000038 + +gUnk_081130D8:: @ 081130D8 + .incbin "baserom.gba", 0x1130D8, 0x0000005 + +gUnk_081130DD:: @ 081130DD + .incbin "baserom.gba", 0x1130DD, 0x000000D + +gUnk_081130EA:: @ 081130EA + .incbin "baserom.gba", 0x1130EA, 0x000000D + +gUnk_081130F7:: @ 081130F7 + .incbin "baserom.gba", 0x1130F7, 0x000000B + +gUnk_08113102:: @ 08113102 + .incbin "baserom.gba", 0x113102, 0x0000006 + +gUnk_08113108:: @ 08113108 + .incbin "baserom.gba", 0x113108, 0x0000038 + +gUnk_08113140:: @ 08113140 + .incbin "baserom.gba", 0x113140, 0x0000018 + +gUnk_08113158:: @ 08113158 + .incbin "baserom.gba", 0x113158, 0x0000010 + +gUnk_08113168:: @ 08113168 + .incbin "baserom.gba", 0x113168, 0x0000025 + +gUnk_0811318D:: @ 0811318D + .incbin "baserom.gba", 0x11318D, 0x0000005 + +gUnk_08113192:: @ 08113192 + .incbin "baserom.gba", 0x113192, 0x0000005 + +gUnk_08113197:: @ 08113197 + .incbin "baserom.gba", 0x113197, 0x0000005 + +gUnk_0811319C:: @ 0811319C + .incbin "baserom.gba", 0x11319C, 0x0000044 + +gUnk_081131E0:: @ 081131E0 + .incbin "baserom.gba", 0x1131E0, 0x0000025 + +gUnk_08113205:: @ 08113205 + .incbin "baserom.gba", 0x113205, 0x0000005 + +gUnk_0811320A:: @ 0811320A + .incbin "baserom.gba", 0x11320A, 0x0000005 + +gUnk_0811320F:: @ 0811320F + .incbin "baserom.gba", 0x11320F, 0x0000005 + +gUnk_08113214:: @ 08113214 + .incbin "baserom.gba", 0x113214, 0x0000044 + +gUnk_08113258:: @ 08113258 + .incbin "baserom.gba", 0x113258, 0x0000005 + +gUnk_0811325D:: @ 0811325D + .incbin "baserom.gba", 0x11325D, 0x0000011 + +gUnk_0811326E:: @ 0811326E + .incbin "baserom.gba", 0x11326E, 0x0000031 + +gUnk_0811329F:: @ 0811329F + .incbin "baserom.gba", 0x11329F, 0x0000045 + +gUnk_081132E4:: @ 081132E4 + .incbin "baserom.gba", 0x1132E4, 0x0000030 + +gUnk_08113314:: @ 08113314 + .incbin "baserom.gba", 0x113314, 0x0000030 + +gUnk_08113344:: @ 08113344 + .incbin "baserom.gba", 0x113344, 0x0000006 + +gUnk_0811334A:: @ 0811334A + .incbin "baserom.gba", 0x11334A, 0x0000006 + +gUnk_08113350:: @ 08113350 + .incbin "baserom.gba", 0x113350, 0x0000019 + +gUnk_08113369:: @ 08113369 + .incbin "baserom.gba", 0x113369, 0x0000005 + +gUnk_0811336E:: @ 0811336E + .incbin "baserom.gba", 0x11336E, 0x0000009 + +gUnk_08113377:: @ 08113377 + .incbin "baserom.gba", 0x113377, 0x0000009 + +gUnk_08113380:: @ 08113380 + .incbin "baserom.gba", 0x113380, 0x0000024 + +gUnk_081133A4:: @ 081133A4 + .incbin "baserom.gba", 0x1133A4, 0x0000010 + +gUnk_081133B4:: @ 081133B4 + .incbin "baserom.gba", 0x1133B4, 0x0000004 + +gUnk_081133B8:: @ 081133B8 + .incbin "baserom.gba", 0x1133B8, 0x0000031 + +gUnk_081133E9:: @ 081133E9 + .incbin "baserom.gba", 0x1133E9, 0x0000011 + +gUnk_081133FA:: @ 081133FA + .incbin "baserom.gba", 0x1133FA, 0x0000019 + +gUnk_08113413:: @ 08113413 + .incbin "baserom.gba", 0x113413, 0x0000021 + +gUnk_08113434:: @ 08113434 + .incbin "baserom.gba", 0x113434, 0x0000009 + +gUnk_0811343D:: @ 0811343D + .incbin "baserom.gba", 0x11343D, 0x0000002 + +gUnk_0811343F:: @ 0811343F + .incbin "baserom.gba", 0x11343F, 0x0000007 + +gUnk_08113446:: @ 08113446 + .incbin "baserom.gba", 0x113446, 0x0000009 + +gUnk_0811344F:: @ 0811344F + .incbin "baserom.gba", 0x11344F, 0x0000041 + +gUnk_08113490:: @ 08113490 + .incbin "baserom.gba", 0x113490, 0x0000044 + +gUnk_081134D4:: @ 081134D4 + .incbin "baserom.gba", 0x1134D4, 0x0000034 + +gUnk_08113508:: @ 08113508 + .incbin "baserom.gba", 0x113508, 0x0000024 + +gUnk_0811352C:: @ 0811352C + .incbin "baserom.gba", 0x11352C, 0x0000021 + +gUnk_0811354D:: @ 0811354D + .incbin "baserom.gba", 0x11354D, 0x0000019 + +gUnk_08113566:: @ 08113566 + .incbin "baserom.gba", 0x113566, 0x0000008 + +gUnk_0811356E:: @ 0811356E + .incbin "baserom.gba", 0x11356E, 0x0000021 + +gUnk_0811358F:: @ 0811358F + .incbin "baserom.gba", 0x11358F, 0x0000021 + +gUnk_081135B0:: @ 081135B0 + .incbin "baserom.gba", 0x1135B0, 0x000002D + +gUnk_081135DD:: @ 081135DD + .incbin "baserom.gba", 0x1135DD, 0x0000005 + +gUnk_081135E2:: @ 081135E2 + .incbin "baserom.gba", 0x1135E2, 0x0000006 + +gUnk_081135E8:: @ 081135E8 + .incbin "baserom.gba", 0x1135E8, 0x0000044 + +gUnk_0811362C:: @ 0811362C + .incbin "baserom.gba", 0x11362C, 0x0000005 + +gUnk_08113631:: @ 08113631 + .incbin "baserom.gba", 0x113631, 0x0000005 + +gUnk_08113636:: @ 08113636 + .incbin "baserom.gba", 0x113636, 0x0000005 + +gUnk_0811363B:: @ 0811363B + .incbin "baserom.gba", 0x11363B, 0x0000005 + +gUnk_08113640:: @ 08113640 + .incbin "baserom.gba", 0x113640, 0x0000005 + +gUnk_08113645:: @ 08113645 + .incbin "baserom.gba", 0x113645, 0x0000005 + +gUnk_0811364A:: @ 0811364A + .incbin "baserom.gba", 0x11364A, 0x0000066 + +gUnk_081136B0:: @ 081136B0 + .incbin "baserom.gba", 0x1136B0, 0x0000028 + +gUnk_081136D8:: @ 081136D8 + .incbin "baserom.gba", 0x1136D8, 0x0000011 + +gUnk_081136E9:: @ 081136E9 + .incbin "baserom.gba", 0x1136E9, 0x0000011 + +gUnk_081136FA:: @ 081136FA + .incbin "baserom.gba", 0x1136FA, 0x0000011 + +gUnk_0811370B:: @ 0811370B + .incbin "baserom.gba", 0x11370B, 0x0000011 + +gUnk_0811371C:: @ 0811371C + .incbin "baserom.gba", 0x11371C, 0x0000005 + +gUnk_08113721:: @ 08113721 + .incbin "baserom.gba", 0x113721, 0x0000005 + +gUnk_08113726:: @ 08113726 + .incbin "baserom.gba", 0x113726, 0x0000005 + +gUnk_0811372B:: @ 0811372B + .incbin "baserom.gba", 0x11372B, 0x0000005 + +gUnk_08113730:: @ 08113730 + .incbin "baserom.gba", 0x113730, 0x0000024 + +gUnk_08113754:: @ 08113754 + .incbin "baserom.gba", 0x113754, 0x000000C + +gUnk_08113760:: @ 08113760 + .incbin "baserom.gba", 0x113760, 0x0000050 + +gUnk_081137B0:: @ 081137B0 + .incbin "baserom.gba", 0x1137B0, 0x0000039 + +gUnk_081137E9:: @ 081137E9 + .incbin "baserom.gba", 0x1137E9, 0x0000088 + +gUnk_08113871:: @ 08113871 + .incbin "baserom.gba", 0x113871, 0x0000021 + +gUnk_08113892:: @ 08113892 + .incbin "baserom.gba", 0x113892, 0x0000005 + +gUnk_08113897:: @ 08113897 + .incbin "baserom.gba", 0x113897, 0x0000019 + +gUnk_081138B0:: @ 081138B0 + .incbin "baserom.gba", 0x1138B0, 0x0000008 + +gUnk_081138B8:: @ 081138B8 + .incbin "baserom.gba", 0x1138B8, 0x0000024 + +gUnk_081138DC:: @ 081138DC + .incbin "baserom.gba", 0x1138DC, 0x0000005 + +gUnk_081138E1:: @ 081138E1 + .incbin "baserom.gba", 0x1138E1, 0x000001B + +gUnk_081138FC:: @ 081138FC + .incbin "baserom.gba", 0x1138FC, 0x0000014 + +gUnk_08113910:: @ 08113910 + .incbin "baserom.gba", 0x113910, 0x0000020 + +gUnk_08113930:: @ 08113930 + .incbin "baserom.gba", 0x113930, 0x0000080 + +gUnk_081139B0:: @ 081139B0 + .incbin "baserom.gba", 0x1139B0, 0x000001D + +gUnk_081139CD:: @ 081139CD + .incbin "baserom.gba", 0x1139CD, 0x000001D + +gUnk_081139EA:: @ 081139EA + .incbin "baserom.gba", 0x1139EA, 0x000001E + +gUnk_08113A08:: @ 08113A08 + .incbin "baserom.gba", 0x113A08, 0x0000014 + +gUnk_08113A1C:: @ 08113A1C + .incbin "baserom.gba", 0x113A1C, 0x0000060 + +gUnk_08113A7C:: @ 08113A7C + .incbin "baserom.gba", 0x113A7C, 0x0000010 + +gUnk_08113A8C:: @ 08113A8C + .incbin "baserom.gba", 0x113A8C, 0x0000030 + +gUnk_08113ABC:: @ 08113ABC + .incbin "baserom.gba", 0x113ABC, 0x0000050 + +gUnk_08113B0C:: @ 08113B0C + .incbin "baserom.gba", 0x113B0C, 0x0000006 + +gUnk_08113B12:: @ 08113B12 + .incbin "baserom.gba", 0x113B12, 0x0000004 + +gUnk_08113B16:: @ 08113B16 + .incbin "baserom.gba", 0x113B16, 0x0000008 + +gUnk_08113B1E:: @ 08113B1E + .incbin "baserom.gba", 0x113B1E, 0x0000004 + +gUnk_08113B22:: @ 08113B22 + .incbin "baserom.gba", 0x113B22, 0x0000006 + +gUnk_08113B28:: @ 08113B28 + .incbin "baserom.gba", 0x113B28, 0x0000008 + +gUnk_08113B30:: @ 08113B30 + .incbin "baserom.gba", 0x113B30, 0x0000008 + +gUnk_08113B38:: @ 08113B38 + .incbin "baserom.gba", 0x113B38, 0x0000007 + +gUnk_08113B3F:: @ 08113B3F + .incbin "baserom.gba", 0x113B3F, 0x0000005 + +gUnk_08113B44:: @ 08113B44 + .incbin "baserom.gba", 0x113B44, 0x0000005 + +gUnk_08113B49:: @ 08113B49 + .incbin "baserom.gba", 0x113B49, 0x0000005 + +gUnk_08113B4E:: @ 08113B4E + .incbin "baserom.gba", 0x113B4E, 0x0000005 + +gUnk_08113B53:: @ 08113B53 + .incbin "baserom.gba", 0x113B53, 0x0000011 + +gUnk_08113B64:: @ 08113B64 + .incbin "baserom.gba", 0x113B64, 0x0000011 + +gUnk_08113B75:: @ 08113B75 + .incbin "baserom.gba", 0x113B75, 0x0000011 + +gUnk_08113B86:: @ 08113B86 + .incbin "baserom.gba", 0x113B86, 0x0000012 + +gUnk_08113B98:: @ 08113B98 + .incbin "baserom.gba", 0x113B98, 0x0000024 + +gUnk_08113BBC:: @ 08113BBC + .incbin "baserom.gba", 0x113BBC, 0x0000005 + +gUnk_08113BC1:: @ 08113BC1 + .incbin "baserom.gba", 0x113BC1, 0x0000005 + +gUnk_08113BC6:: @ 08113BC6 + .incbin "baserom.gba", 0x113BC6, 0x0000005 + +gUnk_08113BCB:: @ 08113BCB + .incbin "baserom.gba", 0x113BCB, 0x0000005 + +gUnk_08113BD0:: @ 08113BD0 + .incbin "baserom.gba", 0x113BD0, 0x0000011 + +gUnk_08113BE1:: @ 08113BE1 + .incbin "baserom.gba", 0x113BE1, 0x0000011 + +gUnk_08113BF2:: @ 08113BF2 + .incbin "baserom.gba", 0x113BF2, 0x0000011 + +gUnk_08113C03:: @ 08113C03 + .incbin "baserom.gba", 0x113C03, 0x0000011 + +gUnk_08113C14:: @ 08113C14 + .incbin "baserom.gba", 0x113C14, 0x0000024 + +gUnk_08113C38:: @ 08113C38 + .incbin "baserom.gba", 0x113C38, 0x0000005 + +gUnk_08113C3D:: @ 08113C3D + .incbin "baserom.gba", 0x113C3D, 0x0000005 + +gUnk_08113C42:: @ 08113C42 + .incbin "baserom.gba", 0x113C42, 0x0000005 + +gUnk_08113C47:: @ 08113C47 + .incbin "baserom.gba", 0x113C47, 0x0000011 + +gUnk_08113C58:: @ 08113C58 + .incbin "baserom.gba", 0x113C58, 0x0000024 + +gUnk_08113C7C:: @ 08113C7C + .incbin "baserom.gba", 0x113C7C, 0x0000005 + +gUnk_08113C81:: @ 08113C81 + .incbin "baserom.gba", 0x113C81, 0x0000005 + +gUnk_08113C86:: @ 08113C86 + .incbin "baserom.gba", 0x113C86, 0x0000005 + +gUnk_08113C8B:: @ 08113C8B + .incbin "baserom.gba", 0x113C8B, 0x0000005 + +gUnk_08113C90:: @ 08113C90 + .incbin "baserom.gba", 0x113C90, 0x0000011 + +gUnk_08113CA1:: @ 08113CA1 + .incbin "baserom.gba", 0x113CA1, 0x0000011 + +gUnk_08113CB2:: @ 08113CB2 + .incbin "baserom.gba", 0x113CB2, 0x0000011 + +gUnk_08113CC3:: @ 08113CC3 + .incbin "baserom.gba", 0x113CC3, 0x0000011 + +gUnk_08113CD4:: @ 08113CD4 + .incbin "baserom.gba", 0x113CD4, 0x0000024 + +gUnk_08113CF8:: @ 08113CF8 + .incbin "baserom.gba", 0x113CF8, 0x0000005 + +gUnk_08113CFD:: @ 08113CFD + .incbin "baserom.gba", 0x113CFD, 0x0000005 + +gUnk_08113D02:: @ 08113D02 + .incbin "baserom.gba", 0x113D02, 0x0000005 + +gUnk_08113D07:: @ 08113D07 + .incbin "baserom.gba", 0x113D07, 0x0000015 + +gUnk_08113D1C:: @ 08113D1C + .incbin "baserom.gba", 0x113D1C, 0x0000024 + +gUnk_08113D40:: @ 08113D40 + .incbin "baserom.gba", 0x113D40, 0x0000005 + +gUnk_08113D45:: @ 08113D45 + .incbin "baserom.gba", 0x113D45, 0x0000005 + +gUnk_08113D4A:: @ 08113D4A + .incbin "baserom.gba", 0x113D4A, 0x0000005 + +gUnk_08113D4F:: @ 08113D4F + .incbin "baserom.gba", 0x113D4F, 0x0000011 + +gUnk_08113D60:: @ 08113D60 + .incbin "baserom.gba", 0x113D60, 0x0000024 + +gUnk_08113D84:: @ 08113D84 + .incbin "baserom.gba", 0x113D84, 0x0000008 + +gUnk_08113D8C:: @ 08113D8C + .incbin "baserom.gba", 0x113D8C, 0x0000010 + +gUnk_08113D9C:: @ 08113D9C + .incbin "baserom.gba", 0x113D9C, 0x0000011 + +gUnk_08113DAD:: @ 08113DAD + .incbin "baserom.gba", 0x113DAD, 0x0000005 + +gUnk_08113DB2:: @ 08113DB2 + .incbin "baserom.gba", 0x113DB2, 0x0000029 + +gUnk_08113DDB:: @ 08113DDB + .incbin "baserom.gba", 0x113DDB, 0x00000D9 + +gUnk_08113EB4:: @ 08113EB4 + .incbin "baserom.gba", 0x113EB4, 0x0000011 + +gUnk_08113EC5:: @ 08113EC5 + .incbin "baserom.gba", 0x113EC5, 0x0000011 + +gUnk_08113ED6:: @ 08113ED6 + .incbin "baserom.gba", 0x113ED6, 0x0000011 + +gUnk_08113EE7:: @ 08113EE7 + .incbin "baserom.gba", 0x113EE7, 0x0000005 + +gUnk_08113EEC:: @ 08113EEC + .incbin "baserom.gba", 0x113EEC, 0x0000005 + +gUnk_08113EF1:: @ 08113EF1 + .incbin "baserom.gba", 0x113EF1, 0x0000007 + +gUnk_08113EF8:: @ 08113EF8 + .incbin "baserom.gba", 0x113EF8, 0x000004C + +gUnk_08113F44:: @ 08113F44 + .incbin "baserom.gba", 0x113F44, 0x0000004 + +gUnk_08113F48:: @ 08113F48 + .incbin "baserom.gba", 0x113F48, 0x0000078 + +gUnk_08113FC0:: @ 08113FC0 + .incbin "baserom.gba", 0x113FC0, 0x0000005 + +gUnk_08113FC5:: @ 08113FC5 + .incbin "baserom.gba", 0x113FC5, 0x0000005 + +gUnk_08113FCA:: @ 08113FCA + .incbin "baserom.gba", 0x113FCA, 0x0000005 + +gUnk_08113FCF:: @ 08113FCF + .incbin "baserom.gba", 0x113FCF, 0x0000005 + +gUnk_08113FD4:: @ 08113FD4 + .incbin "baserom.gba", 0x113FD4, 0x0000011 + +gUnk_08113FE5:: @ 08113FE5 + .incbin "baserom.gba", 0x113FE5, 0x000004D + +gUnk_08114032:: @ 08114032 + .incbin "baserom.gba", 0x114032, 0x000000D + +gUnk_0811403F:: @ 0811403F + .incbin "baserom.gba", 0x11403F, 0x0000011 + +gUnk_08114050:: @ 08114050 + .incbin "baserom.gba", 0x114050, 0x0000011 + +gUnk_08114061:: @ 08114061 + .incbin "baserom.gba", 0x114061, 0x0000029 + +gUnk_0811408A:: @ 0811408A + .incbin "baserom.gba", 0x11408A, 0x000000E + +gUnk_08114098:: @ 08114098 + .incbin "baserom.gba", 0x114098, 0x0000034 + +gUnk_081140CC:: @ 081140CC + .incbin "baserom.gba", 0x1140CC, 0x0000008 + +gUnk_081140D4:: @ 081140D4 + .incbin "baserom.gba", 0x1140D4, 0x000002C + +gUnk_08114100:: @ 08114100 + .incbin "baserom.gba", 0x114100, 0x0000004 + +gUnk_08114104:: @ 08114104 + .incbin "baserom.gba", 0x114104, 0x0000030 + +gUnk_08114134:: @ 08114134 + .incbin "baserom.gba", 0x114134, 0x0000010 + +gUnk_08114144:: @ 08114144 + .incbin "baserom.gba", 0x114144, 0x0000010 + +gUnk_08114154:: @ 08114154 + .incbin "baserom.gba", 0x114154, 0x0000008 + +gUnk_0811415C:: @ 0811415C + .incbin "baserom.gba", 0x11415C, 0x0000048 + +gUnk_081141A4:: @ 081141A4 + .incbin "baserom.gba", 0x1141A4, 0x0000040 + +gUnk_081141E4:: @ 081141E4 + .incbin "baserom.gba", 0x1141E4, 0x0000010 + +gUnk_081141F4:: @ 081141F4 + .incbin "baserom.gba", 0x1141F4, 0x0000014 + +gUnk_08114208:: @ 08114208 + .incbin "baserom.gba", 0x114208, 0x0000005 + +gUnk_0811420D:: @ 0811420D + .incbin "baserom.gba", 0x11420D, 0x0000004 + +gUnk_08114211:: @ 08114211 + .incbin "baserom.gba", 0x114211, 0x0000005 + +gUnk_08114216:: @ 08114216 + .incbin "baserom.gba", 0x114216, 0x0000009 + +gUnk_0811421F:: @ 0811421F + .incbin "baserom.gba", 0x11421F, 0x0000009 + +gUnk_08114228:: @ 08114228 + .incbin "baserom.gba", 0x114228, 0x0000014 + +gUnk_0811423C:: @ 0811423C + .incbin "baserom.gba", 0x11423C, 0x0000008 + +gUnk_08114244:: @ 08114244 + .incbin "baserom.gba", 0x114244, 0x0000019 + +gUnk_0811425D:: @ 0811425D + .incbin "baserom.gba", 0x11425D, 0x0000019 + +gUnk_08114276:: @ 08114276 + .incbin "baserom.gba", 0x114276, 0x0000019 + +gUnk_0811428F:: @ 0811428F + .incbin "baserom.gba", 0x11428F, 0x0000019 + +gUnk_081142A8:: @ 081142A8 + .incbin "baserom.gba", 0x1142A8, 0x0000014 + +gUnk_081142BC:: @ 081142BC + .incbin "baserom.gba", 0x1142BC, 0x0000010 + +gUnk_081142CC:: @ 081142CC + .incbin "baserom.gba", 0x1142CC, 0x0000010 + +gUnk_081142DC:: @ 081142DC + .incbin "baserom.gba", 0x1142DC, 0x0000020 + +gUnk_081142FC:: @ 081142FC + .incbin "baserom.gba", 0x1142FC, 0x0000008 + +gUnk_08114304:: @ 08114304 + .incbin "baserom.gba", 0x114304, 0x0000004 + +gUnk_08114308:: @ 08114308 + .incbin "baserom.gba", 0x114308, 0x0000128 + +gUnk_08114430:: @ 08114430 + .incbin "baserom.gba", 0x114430, 0x0000002 + +gUnk_08114432:: @ 08114432 + .incbin "baserom.gba", 0x114432, 0x0000012 + +gUnk_08114444:: @ 08114444 + .incbin "baserom.gba", 0x114444, 0x0000084 + +gUnk_081144C8:: @ 081144C8 + .incbin "baserom.gba", 0x1144C8, 0x0000005 + +gUnk_081144CD:: @ 081144CD + .incbin "baserom.gba", 0x1144CD, 0x0000005 + +gUnk_081144D2:: @ 081144D2 + .incbin "baserom.gba", 0x1144D2, 0x0000005 + +gUnk_081144D7:: @ 081144D7 + .incbin "baserom.gba", 0x1144D7, 0x0000005 + +gUnk_081144DC:: @ 081144DC + .incbin "baserom.gba", 0x1144DC, 0x0000014 + +gUnk_081144F0:: @ 081144F0 + .incbin "baserom.gba", 0x1144F0, 0x000000C + +gUnk_081144FC:: @ 081144FC + .incbin "baserom.gba", 0x1144FC, 0x0000035 + +gUnk_08114531:: @ 08114531 + .incbin "baserom.gba", 0x114531, 0x000000B + +gUnk_0811453C:: @ 0811453C + .incbin "baserom.gba", 0x11453C, 0x0000011 + +gUnk_0811454D:: @ 0811454D + .incbin "baserom.gba", 0x11454D, 0x0000011 + +gUnk_0811455E:: @ 0811455E + .incbin "baserom.gba", 0x11455E, 0x0000011 + +gUnk_0811456F:: @ 0811456F + .incbin "baserom.gba", 0x11456F, 0x0000005 + +gUnk_08114574:: @ 08114574 + .incbin "baserom.gba", 0x114574, 0x0000005 + +gUnk_08114579:: @ 08114579 + .incbin "baserom.gba", 0x114579, 0x0000007 + +gUnk_08114580:: @ 08114580 + .incbin "baserom.gba", 0x114580, 0x0000034 + +gUnk_081145B4:: @ 081145B4 + .incbin "baserom.gba", 0x1145B4, 0x0000014 + +gUnk_081145C8:: @ 081145C8 + .incbin "baserom.gba", 0x1145C8, 0x0000008 + +gUnk_081145D0:: @ 081145D0 + .incbin "baserom.gba", 0x1145D0, 0x0000004 + +gUnk_081145D4:: @ 081145D4 + .incbin "baserom.gba", 0x1145D4, 0x0000010 + +gUnk_081145E4:: @ 081145E4 + .incbin "baserom.gba", 0x1145E4, 0x00000D4 + +gUnk_081146B8:: @ 081146B8 + .incbin "baserom.gba", 0x1146B8, 0x0000018 + +gUnk_081146D0:: @ 081146D0 + .incbin "baserom.gba", 0x1146D0, 0x0000014 + +gUnk_081146E4:: @ 081146E4 + .incbin "baserom.gba", 0x1146E4, 0x0000010 + +gUnk_081146F4:: @ 081146F4 + .incbin "baserom.gba", 0x1146F4, 0x00000A8 + +gUnk_0811479C:: @ 0811479C + .incbin "baserom.gba", 0x11479C, 0x0000048 + +gUnk_081147E4:: @ 081147E4 + .incbin "baserom.gba", 0x1147E4, 0x0000020 + +gUnk_08114804:: @ 08114804 + .incbin "baserom.gba", 0x114804, 0x0000010 + +gUnk_08114814:: @ 08114814 + .incbin "baserom.gba", 0x114814, 0x0000010 + +gUnk_08114824:: @ 08114824 + .incbin "baserom.gba", 0x114824, 0x0000040 + +gUnk_08114864:: @ 08114864 + .incbin "baserom.gba", 0x114864, 0x0000010 + +gUnk_08114874:: @ 08114874 + .incbin "baserom.gba", 0x114874, 0x0000030 + +gUnk_081148A4:: @ 081148A4 + .incbin "baserom.gba", 0x1148A4, 0x0000020 + +gUnk_081148C4:: @ 081148C4 + .incbin "baserom.gba", 0x1148C4, 0x0000020 + +gUnk_081148E4:: @ 081148E4 + .incbin "baserom.gba", 0x1148E4, 0x0000030 + +gUnk_08114914:: @ 08114914 + .incbin "baserom.gba", 0x114914, 0x0000030 + +gUnk_08114944:: @ 08114944 + .incbin "baserom.gba", 0x114944, 0x0000030 + +gUnk_08114974:: @ 08114974 + .incbin "baserom.gba", 0x114974, 0x0000010 + +gUnk_08114984:: @ 08114984 + .incbin "baserom.gba", 0x114984, 0x0000010 + +gUnk_08114994:: @ 08114994 + .incbin "baserom.gba", 0x114994, 0x0000010 + +gUnk_081149A4:: @ 081149A4 + .incbin "baserom.gba", 0x1149A4, 0x0000010 + +gUnk_081149B4:: @ 081149B4 + .incbin "baserom.gba", 0x1149B4, 0x0000010 + +gUnk_081149C4:: @ 081149C4 + .incbin "baserom.gba", 0x1149C4, 0x0000030 + +gUnk_081149F4:: @ 081149F4 + .incbin "baserom.gba", 0x1149F4, 0x0000020 + +gUnk_08114A14:: @ 08114A14 + .incbin "baserom.gba", 0x114A14, 0x0000058 + +gUnk_08114A6C:: @ 08114A6C + .incbin "baserom.gba", 0x114A6C, 0x0000020 + +gUnk_08114A8C:: @ 08114A8C + .incbin "baserom.gba", 0x114A8C, 0x0000030 + +gUnk_08114ABC:: @ 08114ABC + .incbin "baserom.gba", 0x114ABC, 0x0000028 + +gUnk_08114AE4:: @ 08114AE4 + .incbin "baserom.gba", 0x114AE4, 0x0000400 + +gUnk_08114EE4:: @ 08114EE4 + .incbin "baserom.gba", 0x114EE4, 0x0000018 + +gUnk_08114EFC:: @ 08114EFC + .incbin "baserom.gba", 0x114EFC, 0x0000010 + +gUnk_08114F0C:: @ 08114F0C + .incbin "baserom.gba", 0x114F0C, 0x0000024 + +gUnk_08114F30:: @ 08114F30 + .incbin "baserom.gba", 0x114F30, 0x0000004 + +gUnk_08114F34:: @ 08114F34 + .incbin "baserom.gba", 0x114F34, 0x0000004 + +gUnk_08114F38:: @ 08114F38 + .incbin "baserom.gba", 0x114F38, 0x0000020 + +gUnk_08114F58:: @ 08114F58 + .incbin "baserom.gba", 0x114F58, 0x0000020 + +gUnk_08114F78:: @ 08114F78 + .incbin "baserom.gba", 0x114F78, 0x0000008 + +gUnk_08114F80:: @ 08114F80 + .incbin "baserom.gba", 0x114F80, 0x0000008 + +gUnk_08114F88:: @ 08114F88 + .incbin "baserom.gba", 0x114F88, 0x0000010 + +gUnk_08114F98:: @ 08114F98 + .incbin "baserom.gba", 0x114F98, 0x00003F4 + +gUnk_0811538C:: @ 0811538C + .incbin "baserom.gba", 0x11538C, 0x0000153 + +gUnk_081154DF:: @ 081154DF + .incbin "baserom.gba", 0x1154DF, 0x0000042 + +gUnk_08115521:: @ 08115521 + .incbin "baserom.gba", 0x115521, 0x0000002 + +gUnk_08115523:: @ 08115523 + .incbin "baserom.gba", 0x115523, 0x0000003 + +gUnk_08115526:: @ 08115526 + .incbin "baserom.gba", 0x115526, 0x00001FE + +gUnk_08115724:: @ 08115724 + .incbin "baserom.gba", 0x115724, 0x00003D4 + +gUnk_08115AF8:: @ 08115AF8 + .incbin "baserom.gba", 0x115AF8, 0x00003A4 + +gUnk_08115E9C:: @ 08115E9C + .incbin "baserom.gba", 0x115E9C, 0x0000176 + +gUnk_08116012:: @ 08116012 + .incbin "baserom.gba", 0x116012, 0x000026E + +gUnk_08116280:: @ 08116280 + .incbin "baserom.gba", 0x116280, 0x00002B0 + +gUnk_08116530:: @ 08116530 + .incbin "baserom.gba", 0x116530, 0x00001D3 + +gUnk_08116703:: @ 08116703 + .incbin "baserom.gba", 0x116703, 0x0000085 + +gUnk_08116788:: @ 08116788 + .incbin "baserom.gba", 0x116788, 0x0000100 + +gUnk_08116888:: @ 08116888 + .incbin "baserom.gba", 0x116888, 0x0000017 + +gUnk_0811689F:: @ 0811689F + .incbin "baserom.gba", 0x11689F, 0x00001FD + +gUnk_08116A9C:: @ 08116A9C + .incbin "baserom.gba", 0x116A9C, 0x0000270 + +gUnk_08116D0C:: @ 08116D0C + .incbin "baserom.gba", 0x116D0C, 0x00000C8 + +gUnk_08116DD4:: @ 08116DD4 + .incbin "baserom.gba", 0x116DD4, 0x0000071 + +gUnk_08116E45:: @ 08116E45 + .incbin "baserom.gba", 0x116E45, 0x000011F + +gUnk_08116F64:: @ 08116F64 + .incbin "baserom.gba", 0x116F64, 0x00002A4 + +gUnk_08117208:: @ 08117208 + .incbin "baserom.gba", 0x117208, 0x0000038 + +gUnk_08117240:: @ 08117240 + .incbin "baserom.gba", 0x117240, 0x000039C + +gUnk_081175DC:: @ 081175DC + .incbin "baserom.gba", 0x1175DC, 0x00002D4 + +gUnk_081178B0:: @ 081178B0 + .incbin "baserom.gba", 0x1178B0, 0x00002D4 + +gUnk_08117B84:: @ 08117B84 + .incbin "baserom.gba", 0x117B84, 0x00001E0 + +gUnk_08117D64:: @ 08117D64 + .incbin "baserom.gba", 0x117D64, 0x00000DC + +gUnk_08117E40:: @ 08117E40 + .incbin "baserom.gba", 0x117E40, 0x0000128 + +gUnk_08117F68:: @ 08117F68 + .incbin "baserom.gba", 0x117F68, 0x000006C + +gUnk_08117FD4:: @ 08117FD4 + .incbin "baserom.gba", 0x117FD4, 0x00001AD + +gUnk_08118181:: @ 08118181 + .incbin "baserom.gba", 0x118181, 0x0000033 + +gUnk_081181B4:: @ 081181B4 + .incbin "baserom.gba", 0x1181B4, 0x0000030 + +gUnk_081181E4:: @ 081181E4 + .incbin "baserom.gba", 0x1181E4, 0x0000054 + +gUnk_08118238:: @ 08118238 + .incbin "baserom.gba", 0x118238, 0x000002C + +gUnk_08118264:: @ 08118264 + .incbin "baserom.gba", 0x118264, 0x0000034 + +gUnk_08118298:: @ 08118298 + .incbin "baserom.gba", 0x118298, 0x0000100 + +gUnk_08118398:: @ 08118398 + .incbin "baserom.gba", 0x118398, 0x0000024 + +gUnk_081183BC:: @ 081183BC + .incbin "baserom.gba", 0x1183BC, 0x00000B0 + +gUnk_0811846C:: @ 0811846C + .incbin "baserom.gba", 0x11846C, 0x000003C + +gUnk_081184A8:: @ 081184A8 + .incbin "baserom.gba", 0x1184A8, 0x00000B0 + +gUnk_08118558:: @ 08118558 + .incbin "baserom.gba", 0x118558, 0x00001C8 + +gUnk_08118720:: @ 08118720 + .incbin "baserom.gba", 0x118720, 0x0000048 + +gUnk_08118768:: @ 08118768 + .incbin "baserom.gba", 0x118768, 0x0000018 + +gUnk_08118780:: @ 08118780 + .incbin "baserom.gba", 0x118780, 0x0000008 + +gUnk_08118788:: @ 08118788 + .incbin "baserom.gba", 0x118788, 0x000000C + +gUnk_08118794:: @ 08118794 + .incbin "baserom.gba", 0x118794, 0x000012C + +gUnk_081188C0:: @ 081188C0 + .incbin "baserom.gba", 0x1188C0, 0x0000088 + +gUnk_08118948:: @ 08118948 + .incbin "baserom.gba", 0x118948, 0x0000018 + +gUnk_08118960:: @ 08118960 + .incbin "baserom.gba", 0x118960, 0x0000014 + +gUnk_08118974:: @ 08118974 + .incbin "baserom.gba", 0x118974, 0x0000014 + +gUnk_08118988:: @ 08118988 + .incbin "baserom.gba", 0x118988, 0x0000278 + +gUnk_08118C00:: @ 08118C00 + .incbin "baserom.gba", 0x118C00, 0x0000138 + +gUnk_08118D38:: @ 08118D38 + .incbin "baserom.gba", 0x118D38, 0x000006C + +gUnk_08118DA4:: @ 08118DA4 + .incbin "baserom.gba", 0x118DA4, 0x000002C + +gUnk_08118DD0:: @ 08118DD0 + .incbin "baserom.gba", 0x118DD0, 0x000000C + +gUnk_08118DDC:: @ 08118DDC + .incbin "baserom.gba", 0x118DDC, 0x0000080 + +gUnk_08118E5C:: @ 08118E5C + .incbin "baserom.gba", 0x118E5C, 0x00000A8 + +gUnk_08118F04:: @ 08118F04 + .incbin "baserom.gba", 0x118F04, 0x0000038 + +gUnk_08118F3C:: @ 08118F3C + .incbin "baserom.gba", 0x118F3C, 0x0000028 + +gUnk_08118F64:: @ 08118F64 + .incbin "baserom.gba", 0x118F64, 0x0000034 + +gUnk_08118F98:: @ 08118F98 + .incbin "baserom.gba", 0x118F98, 0x0000108 + +gUnk_081190A0:: @ 081190A0 + .incbin "baserom.gba", 0x1190A0, 0x0000044 + +gUnk_081190E4:: @ 081190E4 + .incbin "baserom.gba", 0x1190E4, 0x0000038 + +gUnk_0811911C:: @ 0811911C + .incbin "baserom.gba", 0x11911C, 0x0000010 + +gUnk_0811912C:: @ 0811912C + .incbin "baserom.gba", 0x11912C, 0x000005C + +gUnk_08119188:: @ 08119188 + .incbin "baserom.gba", 0x119188, 0x0000120 + +gUnk_081192A8:: @ 081192A8 + .incbin "baserom.gba", 0x1192A8, 0x00002A0 + +gUnk_08119548:: @ 08119548 + .incbin "baserom.gba", 0x119548, 0x000027C + +gUnk_081197C4:: @ 081197C4 + .incbin "baserom.gba", 0x1197C4, 0x0000030 + +gUnk_081197F4:: @ 081197F4 + .incbin "baserom.gba", 0x1197F4, 0x00000D0 + +gUnk_081198C4:: @ 081198C4 + .incbin "baserom.gba", 0x1198C4, 0x0000028 + +gUnk_081198EC:: @ 081198EC + .incbin "baserom.gba", 0x1198EC, 0x00000B8 + +gUnk_081199A4:: @ 081199A4 + .incbin "baserom.gba", 0x1199A4, 0x0000054 + +gUnk_081199F8:: @ 081199F8 + .incbin "baserom.gba", 0x1199F8, 0x000007C + +gUnk_08119A74:: @ 08119A74 + .incbin "baserom.gba", 0x119A74, 0x000007C + +gUnk_08119AF0:: @ 08119AF0 + .incbin "baserom.gba", 0x119AF0, 0x000008C + +gUnk_08119B7C:: @ 08119B7C + .incbin "baserom.gba", 0x119B7C, 0x0000074 + +gUnk_08119BF0:: @ 08119BF0 + .incbin "baserom.gba", 0x119BF0, 0x0000074 + +gUnk_08119C64:: @ 08119C64 + .incbin "baserom.gba", 0x119C64, 0x0000090 + +gUnk_08119CF4:: @ 08119CF4 + .incbin "baserom.gba", 0x119CF4, 0x0000060 + +gUnk_08119D54:: @ 08119D54 + .incbin "baserom.gba", 0x119D54, 0x0000054 + +gUnk_08119DA8:: @ 08119DA8 + .incbin "baserom.gba", 0x119DA8, 0x0000054 + +gUnk_08119DFC:: @ 08119DFC + .incbin "baserom.gba", 0x119DFC, 0x000001C + +gUnk_08119E18:: @ 08119E18 + .incbin "baserom.gba", 0x119E18, 0x000002C + +gUnk_08119E44:: @ 08119E44 + .incbin "baserom.gba", 0x119E44, 0x000006C + +gUnk_08119EB0:: @ 08119EB0 + .incbin "baserom.gba", 0x119EB0, 0x0000028 + +gUnk_08119ED8:: @ 08119ED8 + .incbin "baserom.gba", 0x119ED8, 0x00000A8 + +gUnk_08119F80:: @ 08119F80 + .incbin "baserom.gba", 0x119F80, 0x0000024 + +gUnk_08119FA4:: @ 08119FA4 + .incbin "baserom.gba", 0x119FA4, 0x0000024 + +gUnk_08119FC8:: @ 08119FC8 + .incbin "baserom.gba", 0x119FC8, 0x000000C + +gUnk_08119FD4:: @ 08119FD4 + .incbin "baserom.gba", 0x119FD4, 0x0000048 + +gUnk_0811A01C:: @ 0811A01C + .incbin "baserom.gba", 0x11A01C, 0x0000030 + +gUnk_0811A04C:: @ 0811A04C + .incbin "baserom.gba", 0x11A04C, 0x000001C + +gUnk_0811A068:: @ 0811A068 + .incbin "baserom.gba", 0x11A068, 0x000003C + +gUnk_0811A0A4:: @ 0811A0A4 + .incbin "baserom.gba", 0x11A0A4, 0x0000028 + +gUnk_0811A0CC:: @ 0811A0CC + .incbin "baserom.gba", 0x11A0CC, 0x0000018 + +gUnk_0811A0E4:: @ 0811A0E4 + .incbin "baserom.gba", 0x11A0E4, 0x0000040 + +gUnk_0811A124:: @ 0811A124 + .incbin "baserom.gba", 0x11A124, 0x0000020 + +gUnk_0811A144:: @ 0811A144 + .incbin "baserom.gba", 0x11A144, 0x0000038 + +gUnk_0811A17C:: @ 0811A17C + .incbin "baserom.gba", 0x11A17C, 0x000004C + +gUnk_0811A1C8:: @ 0811A1C8 + .incbin "baserom.gba", 0x11A1C8, 0x0000030 + +gUnk_0811A1F8:: @ 0811A1F8 + .incbin "baserom.gba", 0x11A1F8, 0x0000030 + +gUnk_0811A228:: @ 0811A228 + .incbin "baserom.gba", 0x11A228, 0x0000058 + +gUnk_0811A280:: @ 0811A280 + .incbin "baserom.gba", 0x11A280, 0x000000C + +gUnk_0811A28C:: @ 0811A28C + .incbin "baserom.gba", 0x11A28C, 0x000001C + +gUnk_0811A2A8:: @ 0811A2A8 + .incbin "baserom.gba", 0x11A2A8, 0x0000028 + +gUnk_0811A2D0:: @ 0811A2D0 + .incbin "baserom.gba", 0x11A2D0, 0x000002C + +gUnk_0811A2FC:: @ 0811A2FC + .incbin "baserom.gba", 0x11A2FC, 0x0000214 + +gUnk_0811A510:: @ 0811A510 + .incbin "baserom.gba", 0x11A510, 0x000024C + +gUnk_0811A75C:: @ 0811A75C + .incbin "baserom.gba", 0x11A75C, 0x000004C + +gUnk_0811A7A8:: @ 0811A7A8 + .incbin "baserom.gba", 0x11A7A8, 0x00000C4 + +gUnk_0811A86C:: @ 0811A86C + .incbin "baserom.gba", 0x11A86C, 0x0000060 + +gUnk_0811A8CC:: @ 0811A8CC + .incbin "baserom.gba", 0x11A8CC, 0x00000E8 + +gUnk_0811A9B4:: @ 0811A9B4 + .incbin "baserom.gba", 0x11A9B4, 0x0000078 + +gUnk_0811AA2C:: @ 0811AA2C + .incbin "baserom.gba", 0x11AA2C, 0x0000050 + +gUnk_0811AA7C:: @ 0811AA7C + .incbin "baserom.gba", 0x11AA7C, 0x000009C + +gUnk_0811AB18:: @ 0811AB18 + .incbin "baserom.gba", 0x11AB18, 0x00000E0 + +gUnk_0811ABF8:: @ 0811ABF8 + .incbin "baserom.gba", 0x11ABF8, 0x0000019 + +gUnk_0811AC11:: @ 0811AC11 + .incbin "baserom.gba", 0x11AC11, 0x0000113 + +gUnk_0811AD24:: @ 0811AD24 + .incbin "baserom.gba", 0x11AD24, 0x00000A8 + +gUnk_0811ADCC:: @ 0811ADCC + .incbin "baserom.gba", 0x11ADCC, 0x00000E4 + +gUnk_0811AEB0:: @ 0811AEB0 + .incbin "baserom.gba", 0x11AEB0, 0x0000028 + +gUnk_0811AED8:: @ 0811AED8 + .incbin "baserom.gba", 0x11AED8, 0x000004C + +gUnk_0811AF24:: @ 0811AF24 + .incbin "baserom.gba", 0x11AF24, 0x0000010 + +gUnk_0811AF34:: @ 0811AF34 + .incbin "baserom.gba", 0x11AF34, 0x0000030 + +gUnk_0811AF64:: @ 0811AF64 + .incbin "baserom.gba", 0x11AF64, 0x0000028 + +gUnk_0811AF8C:: @ 0811AF8C + .incbin "baserom.gba", 0x11AF8C, 0x0000030 + +gUnk_0811AFBC:: @ 0811AFBC + .incbin "baserom.gba", 0x11AFBC, 0x0000014 + +gUnk_0811AFD0:: @ 0811AFD0 + .incbin "baserom.gba", 0x11AFD0, 0x0000030 + +gUnk_0811B000:: @ 0811B000 + .incbin "baserom.gba", 0x11B000, 0x000001C + +gUnk_0811B01C:: @ 0811B01C + .incbin "baserom.gba", 0x11B01C, 0x0000010 + +gUnk_0811B02C:: @ 0811B02C + .incbin "baserom.gba", 0x11B02C, 0x0000084 + +gUnk_0811B0B0:: @ 0811B0B0 + .incbin "baserom.gba", 0x11B0B0, 0x0000080 + +gUnk_0811B130:: @ 0811B130 + .incbin "baserom.gba", 0x11B130, 0x0000048 + +gUnk_0811B178:: @ 0811B178 + .incbin "baserom.gba", 0x11B178, 0x0000018 + +gUnk_0811B190:: @ 0811B190 + .incbin "baserom.gba", 0x11B190, 0x0000084 + +gUnk_0811B214:: @ 0811B214 + .incbin "baserom.gba", 0x11B214, 0x0000044 + +gUnk_0811B258:: @ 0811B258 + .incbin "baserom.gba", 0x11B258, 0x000003C + +gUnk_0811B294:: @ 0811B294 + .incbin "baserom.gba", 0x11B294, 0x0000068 + +gUnk_0811B2FC:: @ 0811B2FC + .incbin "baserom.gba", 0x11B2FC, 0x0000050 + +gUnk_0811B34C:: @ 0811B34C + .incbin "baserom.gba", 0x11B34C, 0x0000048 + +gUnk_0811B394:: @ 0811B394 + .incbin "baserom.gba", 0x11B394, 0x0000010 + +gUnk_0811B3A4:: @ 0811B3A4 + .incbin "baserom.gba", 0x11B3A4, 0x0000010 + +gUnk_0811B3B4:: @ 0811B3B4 + .incbin "baserom.gba", 0x11B3B4, 0x0000014 + +gUnk_0811B3C8:: @ 0811B3C8 + .incbin "baserom.gba", 0x11B3C8, 0x0000040 + +gUnk_0811B408:: @ 0811B408 + .incbin "baserom.gba", 0x11B408, 0x0000138 + +gUnk_0811B540:: @ 0811B540 + .incbin "baserom.gba", 0x11B540, 0x0000024 + +gUnk_0811B564:: @ 0811B564 + .incbin "baserom.gba", 0x11B564, 0x0000014 + +gUnk_0811B578:: @ 0811B578 + .incbin "baserom.gba", 0x11B578, 0x00003C8 + +gUnk_0811B940:: @ 0811B940 + .incbin "baserom.gba", 0x11B940, 0x000004C + +gUnk_0811B98C:: @ 0811B98C + .incbin "baserom.gba", 0x11B98C, 0x0000014 + +gUnk_0811B9A0:: @ 0811B9A0 + .incbin "baserom.gba", 0x11B9A0, 0x0000008 + +gUnk_0811B9A8:: @ 0811B9A8 + .incbin "baserom.gba", 0x11B9A8, 0x0000020 + +gUnk_0811B9C8:: @ 0811B9C8 + .incbin "baserom.gba", 0x11B9C8, 0x0000008 + +gUnk_0811B9D0:: @ 0811B9D0 + .incbin "baserom.gba", 0x11B9D0, 0x0000008 + +gUnk_0811B9D8:: @ 0811B9D8 + .incbin "baserom.gba", 0x11B9D8, 0x0000008 + +gUnk_0811B9E0:: @ 0811B9E0 + .incbin "baserom.gba", 0x11B9E0, 0x0000080 + +gUnk_0811BA60:: @ 0811BA60 + .incbin "baserom.gba", 0x11BA60, 0x0000008 + +gUnk_0811BA68:: @ 0811BA68 + .incbin "baserom.gba", 0x11BA68, 0x000000C + +gUnk_0811BA74:: @ 0811BA74 + .incbin "baserom.gba", 0x11BA74, 0x0000008 + +gUnk_0811BA7C:: @ 0811BA7C + .incbin "baserom.gba", 0x11BA7C, 0x000000C + +gUnk_0811BA88:: @ 0811BA88 + .incbin "baserom.gba", 0x11BA88, 0x000000C + +gUnk_0811BA94:: @ 0811BA94 + .incbin "baserom.gba", 0x11BA94, 0x0000008 + +gUnk_0811BA9C:: @ 0811BA9C + .incbin "baserom.gba", 0x11BA9C, 0x0000020 + +gUnk_0811BABC:: @ 0811BABC + .incbin "baserom.gba", 0x11BABC, 0x0000008 + +gUnk_0811BAC4:: @ 0811BAC4 + .incbin "baserom.gba", 0x11BAC4, 0x0000010 + +gUnk_0811BAD4:: @ 0811BAD4 + .incbin "baserom.gba", 0x11BAD4, 0x0000010 + +gUnk_0811BAE4:: @ 0811BAE4 + .incbin "baserom.gba", 0x11BAE4, 0x000000C + +gUnk_0811BAF0:: @ 0811BAF0 + .incbin "baserom.gba", 0x11BAF0, 0x000003C + +gUnk_0811BB2C:: @ 0811BB2C + .incbin "baserom.gba", 0x11BB2C, 0x000000C + +gUnk_0811BB38:: @ 0811BB38 + .incbin "baserom.gba", 0x11BB38, 0x0000004 + +gUnk_0811BB3C:: @ 0811BB3C + .incbin "baserom.gba", 0x11BB3C, 0x000000C + +gUnk_0811BB48:: @ 0811BB48 + .incbin "baserom.gba", 0x11BB48, 0x0000008 + +gUnk_0811BB50:: @ 0811BB50 + .incbin "baserom.gba", 0x11BB50, 0x0000008 + +gUnk_0811BB58:: @ 0811BB58 + .incbin "baserom.gba", 0x11BB58, 0x0000008 + +gUnk_0811BB60:: @ 0811BB60 + .incbin "baserom.gba", 0x11BB60, 0x0000008 + +gUnk_0811BB68:: @ 0811BB68 + .incbin "baserom.gba", 0x11BB68, 0x0000008 + +gUnk_0811BB70:: @ 0811BB70 + .incbin "baserom.gba", 0x11BB70, 0x0000010 + +gUnk_0811BB80:: @ 0811BB80 + .incbin "baserom.gba", 0x11BB80, 0x0000008 + +gUnk_0811BB88:: @ 0811BB88 + .incbin "baserom.gba", 0x11BB88, 0x0000008 + +gUnk_0811BB90:: @ 0811BB90 + .incbin "baserom.gba", 0x11BB90, 0x0000008 + +gUnk_0811BB98:: @ 0811BB98 + .incbin "baserom.gba", 0x11BB98, 0x0000014 + +gUnk_0811BBAC:: @ 0811BBAC + .incbin "baserom.gba", 0x11BBAC, 0x0000010 + +gUnk_0811BBBC:: @ 0811BBBC + .incbin "baserom.gba", 0x11BBBC, 0x0000006 + +gUnk_0811BBC2:: @ 0811BBC2 + .incbin "baserom.gba", 0x11BBC2, 0x0000006 + +gUnk_0811BBC8:: @ 0811BBC8 + .incbin "baserom.gba", 0x11BBC8, 0x0000006 + +gUnk_0811BBCE:: @ 0811BBCE + .incbin "baserom.gba", 0x11BBCE, 0x0000006 + +gUnk_0811BBD4:: @ 0811BBD4 + .incbin "baserom.gba", 0x11BBD4, 0x0000010 + +gUnk_0811BBE4:: @ 0811BBE4 + .incbin "baserom.gba", 0x11BBE4, 0x0000008 + +gUnk_0811BBEC:: @ 0811BBEC + .incbin "baserom.gba", 0x11BBEC, 0x000000C + +gUnk_0811BBF8:: @ 0811BBF8 + .incbin "baserom.gba", 0x11BBF8, 0x0000010 + +gUnk_0811BC08:: @ 0811BC08 + .incbin "baserom.gba", 0x11BC08, 0x0000020 + +gUnk_0811BC28:: @ 0811BC28 + .incbin "baserom.gba", 0x11BC28, 0x0000008 + +gUnk_0811BC30:: @ 0811BC30 + .incbin "baserom.gba", 0x11BC30, 0x0000008 + +gUnk_0811BC38:: @ 0811BC38 + .incbin "baserom.gba", 0x11BC38, 0x0000008 + +gUnk_0811BC40:: @ 0811BC40 + .incbin "baserom.gba", 0x11BC40, 0x0000008 + +gUnk_0811BC48:: @ 0811BC48 + .incbin "baserom.gba", 0x11BC48, 0x0000018 + +gUnk_0811BC60:: @ 0811BC60 + .incbin "baserom.gba", 0x11BC60, 0x0000020 + +gUnk_0811BC80:: @ 0811BC80 + .incbin "baserom.gba", 0x11BC80, 0x0000008 + +gUnk_0811BC88:: @ 0811BC88 + .incbin "baserom.gba", 0x11BC88, 0x0000010 + +gUnk_0811BC98:: @ 0811BC98 + .incbin "baserom.gba", 0x11BC98, 0x000001C + +gUnk_0811BCB4:: @ 0811BCB4 + .incbin "baserom.gba", 0x11BCB4, 0x0000010 + +gUnk_0811BCC4:: @ 0811BCC4 + .incbin "baserom.gba", 0x11BCC4, 0x0000080 + +gUnk_0811BD44:: @ 0811BD44 + .incbin "baserom.gba", 0x11BD44, 0x0000024 + +gUnk_0811BD68:: @ 0811BD68 + .incbin "baserom.gba", 0x11BD68, 0x0000010 + +gUnk_0811BD78:: @ 0811BD78 + .incbin "baserom.gba", 0x11BD78, 0x0000008 + +gUnk_0811BD80:: @ 0811BD80 + .incbin "baserom.gba", 0x11BD80, 0x0000018 + +gUnk_0811BD98:: @ 0811BD98 + .incbin "baserom.gba", 0x11BD98, 0x0000014 + +gUnk_0811BDAC:: @ 0811BDAC + .incbin "baserom.gba", 0x11BDAC, 0x0000008 + +gUnk_0811BDB4:: @ 0811BDB4 + .incbin "baserom.gba", 0x11BDB4, 0x0000018 + +gUnk_0811BDCC:: @ 0811BDCC + .incbin "baserom.gba", 0x11BDCC, 0x000000C + +gUnk_0811BDD8:: @ 0811BDD8 + .incbin "baserom.gba", 0x11BDD8, 0x0000008 + +gUnk_0811BDE0:: @ 0811BDE0 + .incbin "baserom.gba", 0x11BDE0, 0x0000008 + +gUnk_0811BDE8:: @ 0811BDE8 + .incbin "baserom.gba", 0x11BDE8, 0x000000C + +gUnk_0811BDF4:: @ 0811BDF4 + .incbin "baserom.gba", 0x11BDF4, 0x0000010 + +gUnk_0811BE04:: @ 0811BE04 + .incbin "baserom.gba", 0x11BE04, 0x0000010 + +gUnk_0811BE14:: @ 0811BE14 + .incbin "baserom.gba", 0x11BE14, 0x0000002 + +gUnk_0811BE16:: @ 0811BE16 + .incbin "baserom.gba", 0x11BE16, 0x0000008 + +gUnk_0811BE1E:: @ 0811BE1E + .incbin "baserom.gba", 0x11BE1E, 0x000000A + +gUnk_0811BE28:: @ 0811BE28 + .incbin "baserom.gba", 0x11BE28, 0x0000010 + +gUnk_0811BE38:: @ 0811BE38 + .incbin "baserom.gba", 0x11BE38, 0x0000008 + +gUnk_0811BE40:: @ 0811BE40 + .incbin "baserom.gba", 0x11BE40, 0x0000008 + +gUnk_0811BE48:: @ 0811BE48 + .incbin "baserom.gba", 0x11BE48, 0x0000180 + +gUnk_0811BFC8:: @ 0811BFC8 + .incbin "baserom.gba", 0x11BFC8, 0x0000018 + +gUnk_0811BFE0:: @ 0811BFE0 + .incbin "baserom.gba", 0x11BFE0, 0x0000008 + +gUnk_0811BFE8:: @ 0811BFE8 + .incbin "baserom.gba", 0x11BFE8, 0x0000018 + +gUnk_0811C000:: @ 0811C000 + .incbin "baserom.gba", 0x11C000, 0x000000C + +gUnk_0811C00C:: @ 0811C00C + .incbin "baserom.gba", 0x11C00C, 0x0000008 + +gUnk_0811C014:: @ 0811C014 + .incbin "baserom.gba", 0x11C014, 0x0000008 + +gUnk_0811C01C:: @ 0811C01C + .incbin "baserom.gba", 0x11C01C, 0x0000054 + +gUnk_0811C070:: @ 0811C070 + .incbin "baserom.gba", 0x11C070, 0x0000020 + +gUnk_0811C090:: @ 0811C090 + .incbin "baserom.gba", 0x11C090, 0x0000020 + +gUnk_0811C0B0:: @ 0811C0B0 + .incbin "baserom.gba", 0x11C0B0, 0x0000008 + +gUnk_0811C0B8:: @ 0811C0B8 + .incbin "baserom.gba", 0x11C0B8, 0x0000010 + +gUnk_0811C0C8:: @ 0811C0C8 + .incbin "baserom.gba", 0x11C0C8, 0x0000010 + +gUnk_0811C0D8:: @ 0811C0D8 + .incbin "baserom.gba", 0x11C0D8, 0x0000010 + +gUnk_0811C0E8:: @ 0811C0E8 + .incbin "baserom.gba", 0x11C0E8, 0x0000010 + +gUnk_0811C0F8:: @ 0811C0F8 + .incbin "baserom.gba", 0x11C0F8, 0x0000008 + +gUnk_0811C100:: @ 0811C100 + .incbin "baserom.gba", 0x11C100, 0x0000008 + +gUnk_0811C108:: @ 0811C108 + .incbin "baserom.gba", 0x11C108, 0x0000008 + +gUnk_0811C110:: @ 0811C110 + .incbin "baserom.gba", 0x11C110, 0x0000008 + +gUnk_0811C118:: @ 0811C118 + .incbin "baserom.gba", 0x11C118, 0x0000008 + +gUnk_0811C120:: @ 0811C120 + .incbin "baserom.gba", 0x11C120, 0x00000B8 + +gUnk_0811C1D8:: @ 0811C1D8 + .incbin "baserom.gba", 0x11C1D8, 0x0000010 + +gUnk_0811C1E8:: @ 0811C1E8 + .incbin "baserom.gba", 0x11C1E8, 0x0000010 + +gUnk_0811C1F8:: @ 0811C1F8 + .incbin "baserom.gba", 0x11C1F8, 0x0000012 + +gUnk_0811C20A:: @ 0811C20A + .incbin "baserom.gba", 0x11C20A, 0x0000012 + +gUnk_0811C21C:: @ 0811C21C + .incbin "baserom.gba", 0x11C21C, 0x0000012 + +gUnk_0811C22E:: @ 0811C22E + .incbin "baserom.gba", 0x11C22E, 0x0000012 + +gUnk_0811C240:: @ 0811C240 + .incbin "baserom.gba", 0x11C240, 0x000000A + +gUnk_0811C24A:: @ 0811C24A + .incbin "baserom.gba", 0x11C24A, 0x000000A + +gUnk_0811C254:: @ 0811C254 + .incbin "baserom.gba", 0x11C254, 0x000000A + +gUnk_0811C25E:: @ 0811C25E + .incbin "baserom.gba", 0x11C25E, 0x000000A + +gUnk_0811C268:: @ 0811C268 + .incbin "baserom.gba", 0x11C268, 0x0000014 + +gUnk_0811C27C:: @ 0811C27C + .incbin "baserom.gba", 0x11C27C, 0x0000008 + +gUnk_0811C284:: @ 0811C284 + .incbin "baserom.gba", 0x11C284, 0x0000014 + +gUnk_0811C298:: @ 0811C298 + .incbin "baserom.gba", 0x11C298, 0x0000014 + +gUnk_0811C2AC:: @ 0811C2AC + .incbin "baserom.gba", 0x11C2AC, 0x0000020 + +gUnk_0811C2CC:: @ 0811C2CC + .incbin "baserom.gba", 0x11C2CC, 0x0000020 + +gUnk_0811C2EC:: @ 0811C2EC + .incbin "baserom.gba", 0x11C2EC, 0x000016A + +gUnk_0811C456:: @ 0811C456 + .incbin "baserom.gba", 0x11C456, 0x0000010 + +gUnk_0811C466:: @ 0811C466 + .incbin "baserom.gba", 0x11C466, 0x0000022 + +gUnk_0811C488:: @ 0811C488 + .incbin "baserom.gba", 0x11C488, 0x000000C + +gUnk_0811C494:: @ 0811C494 + .incbin "baserom.gba", 0x11C494, 0x0000016 + +gUnk_0811C4AA:: @ 0811C4AA + .incbin "baserom.gba", 0x11C4AA, 0x0000016 + +gUnk_0811C4C0:: @ 0811C4C0 + .incbin "baserom.gba", 0x11C4C0, 0x0000066 + +gUnk_0811C526:: @ 0811C526 + .incbin "baserom.gba", 0x11C526, 0x000000C + +gUnk_0811C532:: @ 0811C532 + .incbin "baserom.gba", 0x11C532, 0x000003E + +gUnk_0811C570:: @ 0811C570 + .incbin "baserom.gba", 0x11C570, 0x0000034 + +gUnk_0811C5A4:: @ 0811C5A4 + .incbin "baserom.gba", 0x11C5A4, 0x000000C + +gUnk_0811C5B0:: @ 0811C5B0 + .incbin "baserom.gba", 0x11C5B0, 0x0000020 + +gUnk_0811C5D0:: @ 0811C5D0 + .incbin "baserom.gba", 0x11C5D0, 0x0000016 + +gUnk_0811C5E6:: @ 0811C5E6 + .incbin "baserom.gba", 0x11C5E6, 0x000000C + +gUnk_0811C5F2:: @ 0811C5F2 + .incbin "baserom.gba", 0x11C5F2, 0x0000016 + +gUnk_0811C608:: @ 0811C608 + .incbin "baserom.gba", 0x11C608, 0x000000C + +gUnk_0811C614:: @ 0811C614 + .incbin "baserom.gba", 0x11C614, 0x00000D4 + +gUnk_0811C6E8:: @ 0811C6E8 + .incbin "baserom.gba", 0x11C6E8, 0x0000002 + +gUnk_0811C6EA:: @ 0811C6EA + .incbin "baserom.gba", 0x11C6EA, 0x000000C + +gUnk_0811C6F6:: @ 0811C6F6 + .incbin "baserom.gba", 0x11C6F6, 0x000000C + +gUnk_0811C702:: @ 0811C702 + .incbin "baserom.gba", 0x11C702, 0x0000034 + +gUnk_0811C736:: @ 0811C736 + .incbin "baserom.gba", 0x11C736, 0x000002A + +gUnk_0811C760:: @ 0811C760 + .incbin "baserom.gba", 0x11C760, 0x000002A + +gUnk_0811C78A:: @ 0811C78A + .incbin "baserom.gba", 0x11C78A, 0x000000C + +gUnk_0811C796:: @ 0811C796 + .incbin "baserom.gba", 0x11C796, 0x000000C + +gUnk_0811C7A2:: @ 0811C7A2 + .incbin "baserom.gba", 0x11C7A2, 0x000000C + +gUnk_0811C7AE:: @ 0811C7AE + .incbin "baserom.gba", 0x11C7AE, 0x000000C + +gUnk_0811C7BA:: @ 0811C7BA + .incbin "baserom.gba", 0x11C7BA, 0x0000034 + +gUnk_0811C7EE:: @ 0811C7EE + .incbin "baserom.gba", 0x11C7EE, 0x0000016 + +gUnk_0811C804:: @ 0811C804 + .incbin "baserom.gba", 0x11C804, 0x000000C + +gUnk_0811C810:: @ 0811C810 + .incbin "baserom.gba", 0x11C810, 0x0000192 + +gUnk_0811C9A2:: @ 0811C9A2 + .incbin "baserom.gba", 0x11C9A2, 0x0000084 + +gUnk_0811CA26:: @ 0811CA26 + .incbin "baserom.gba", 0x11CA26, 0x00000DE + +gUnk_0811CB04:: @ 0811CB04 + .incbin "baserom.gba", 0x11CB04, 0x000005C + +gUnk_0811CB60:: @ 0811CB60 + .incbin "baserom.gba", 0x11CB60, 0x0000142 + +gUnk_0811CCA2:: @ 0811CCA2 + .incbin "baserom.gba", 0x11CCA2, 0x000008E + +gUnk_0811CD30:: @ 0811CD30 + .incbin "baserom.gba", 0x11CD30, 0x00000AC + +gUnk_0811CDDC:: @ 0811CDDC + .incbin "baserom.gba", 0x11CDDC, 0x00000B6 + +gUnk_0811CE92:: @ 0811CE92 + .incbin "baserom.gba", 0x11CE92, 0x000003E + +gUnk_0811CED0:: @ 0811CED0 + .incbin "baserom.gba", 0x11CED0, 0x0000020 + +gUnk_0811CEF0:: @ 0811CEF0 + .incbin "baserom.gba", 0x11CEF0, 0x0000034 + +gUnk_0811CF24:: @ 0811CF24 + .incbin "baserom.gba", 0x11CF24, 0x0000016 + +gUnk_0811CF3A:: @ 0811CF3A + .incbin "baserom.gba", 0x11CF3A, 0x0000070 + +gUnk_0811CFAA:: @ 0811CFAA + .incbin "baserom.gba", 0x11CFAA, 0x000016A + +gUnk_0811D114:: @ 0811D114 + .incbin "baserom.gba", 0x11D114, 0x000002A + +gUnk_0811D13E:: @ 0811D13E + .incbin "baserom.gba", 0x11D13E, 0x0000016 + +gUnk_0811D154:: @ 0811D154 + .incbin "baserom.gba", 0x11D154, 0x000002A + +gUnk_0811D17E:: @ 0811D17E + .incbin "baserom.gba", 0x11D17E, 0x000000C + +gUnk_0811D18A:: @ 0811D18A + .incbin "baserom.gba", 0x11D18A, 0x00000F2 + +gUnk_0811D27C:: @ 0811D27C + .incbin "baserom.gba", 0x11D27C, 0x0000066 + +gUnk_0811D2E2:: @ 0811D2E2 + .incbin "baserom.gba", 0x11D2E2, 0x0000016 + +gUnk_0811D2F8:: @ 0811D2F8 + .incbin "baserom.gba", 0x11D2F8, 0x0000066 + +gUnk_0811D35E:: @ 0811D35E + .incbin "baserom.gba", 0x11D35E, 0x0000016 + +gUnk_0811D374:: @ 0811D374 + .incbin "baserom.gba", 0x11D374, 0x0000016 + +gUnk_0811D38A:: @ 0811D38A + .incbin "baserom.gba", 0x11D38A, 0x000000C + +gUnk_0811D396:: @ 0811D396 + .incbin "baserom.gba", 0x11D396, 0x000005C + +gUnk_0811D3F2:: @ 0811D3F2 + .incbin "baserom.gba", 0x11D3F2, 0x0000016 + +gUnk_0811D408:: @ 0811D408 + .incbin "baserom.gba", 0x11D408, 0x0000016 + +gUnk_0811D41E:: @ 0811D41E + .incbin "baserom.gba", 0x11D41E, 0x0000016 + +gUnk_0811D434:: @ 0811D434 + .incbin "baserom.gba", 0x11D434, 0x000000C + +gUnk_0811D440:: @ 0811D440 + .incbin "baserom.gba", 0x11D440, 0x000000C + +gUnk_0811D44C:: @ 0811D44C + .incbin "baserom.gba", 0x11D44C, 0x0000052 + +gUnk_0811D49E:: @ 0811D49E + .incbin "baserom.gba", 0x11D49E, 0x0000020 + +gUnk_0811D4BE:: @ 0811D4BE + .incbin "baserom.gba", 0x11D4BE, 0x000014C + +gUnk_0811D60A:: @ 0811D60A + .incbin "baserom.gba", 0x11D60A, 0x000000C + +gUnk_0811D616:: @ 0811D616 + .incbin "baserom.gba", 0x11D616, 0x000000C + +gUnk_0811D622:: @ 0811D622 + .incbin "baserom.gba", 0x11D622, 0x000000C + +gUnk_0811D62E:: @ 0811D62E + .incbin "baserom.gba", 0x11D62E, 0x00000F2 + +gUnk_0811D720:: @ 0811D720 + .incbin "baserom.gba", 0x11D720, 0x000000C + +gUnk_0811D72C:: @ 0811D72C + .incbin "baserom.gba", 0x11D72C, 0x000000C + +gUnk_0811D738:: @ 0811D738 + .incbin "baserom.gba", 0x11D738, 0x0000174 + +gUnk_0811D8AC:: @ 0811D8AC + .incbin "baserom.gba", 0x11D8AC, 0x000000C + +gUnk_0811D8B8:: @ 0811D8B8 + .incbin "baserom.gba", 0x11D8B8, 0x0000016 + +gUnk_0811D8CE:: @ 0811D8CE + .incbin "baserom.gba", 0x11D8CE, 0x000000C + +gUnk_0811D8DA:: @ 0811D8DA + .incbin "baserom.gba", 0x11D8DA, 0x0000228 + +gUnk_0811DB02:: @ 0811DB02 + .incbin "baserom.gba", 0x11DB02, 0x0000002 + +gUnk_0811DB04:: @ 0811DB04 + .incbin "baserom.gba", 0x11DB04, 0x000000A + +gUnk_0811DB0E:: @ 0811DB0E + .incbin "baserom.gba", 0x11DB0E, 0x00000DE + +gUnk_0811DBEC:: @ 0811DBEC + .incbin "baserom.gba", 0x11DBEC, 0x000003E + +gUnk_0811DC2A:: @ 0811DC2A + .incbin "baserom.gba", 0x11DC2A, 0x000005C + +gUnk_0811DC86:: @ 0811DC86 + .incbin "baserom.gba", 0x11DC86, 0x000000C + +gUnk_0811DC92:: @ 0811DC92 + .incbin "baserom.gba", 0x11DC92, 0x0000200 + +gUnk_0811DE92:: @ 0811DE92 + .incbin "baserom.gba", 0x11DE92, 0x000000C + +gUnk_0811DE9E:: @ 0811DE9E + .incbin "baserom.gba", 0x11DE9E, 0x000000C + +gUnk_0811DEAA:: @ 0811DEAA + .incbin "baserom.gba", 0x11DEAA, 0x0000020 + +gUnk_0811DECA:: @ 0811DECA + .incbin "baserom.gba", 0x11DECA, 0x000000C + +gUnk_0811DED6:: @ 0811DED6 + .incbin "baserom.gba", 0x11DED6, 0x0000034 + +gUnk_0811DF0A:: @ 0811DF0A + .incbin "baserom.gba", 0x11DF0A, 0x000000C + +gUnk_0811DF16:: @ 0811DF16 + .incbin "baserom.gba", 0x11DF16, 0x000000C + +gUnk_0811DF22:: @ 0811DF22 + .incbin "baserom.gba", 0x11DF22, 0x00001D6 + +gUnk_0811E0F8:: @ 0811E0F8 + .incbin "baserom.gba", 0x11E0F8, 0x000007A + +gUnk_0811E172:: @ 0811E172 + .incbin "baserom.gba", 0x11E172, 0x0000052 + +gUnk_0811E1C4:: @ 0811E1C4 + .incbin "baserom.gba", 0x11E1C4, 0x0000020 + +gUnk_0811E1E4:: @ 0811E1E4 + .incbin "baserom.gba", 0x11E1E4, 0x000000C + +gUnk_0811E1F0:: @ 0811E1F0 + .incbin "baserom.gba", 0x11E1F0, 0x000000C + +gUnk_0811E1FC:: @ 0811E1FC + .incbin "baserom.gba", 0x11E1FC, 0x000000C + +gUnk_0811E208:: @ 0811E208 + .incbin "baserom.gba", 0x11E208, 0x000000C + +gUnk_0811E214:: @ 0811E214 + .incbin "baserom.gba", 0x11E214, 0x0000240 + +gUnk_0811E454:: @ 0811E454 + .incbin "baserom.gba", 0x11E454, 0x000001C + +gUnk_0811E470:: @ 0811E470 + .incbin "baserom.gba", 0x11E470, 0x0000008 + +gUnk_0811E478:: @ 0811E478 + .incbin "baserom.gba", 0x11E478, 0x000000C + +gUnk_0811E484:: @ 0811E484 + .incbin "baserom.gba", 0x11E484, 0x0000020 + +gUnk_0811E4A4:: @ 0811E4A4 + .incbin "baserom.gba", 0x11E4A4, 0x0000008 + +gUnk_0811E4AC:: @ 0811E4AC + .incbin "baserom.gba", 0x11E4AC, 0x0000001 + +gUnk_0811E4AD:: @ 0811E4AD + .incbin "baserom.gba", 0x11E4AD, 0x0000007 + +gUnk_0811E4B4:: @ 0811E4B4 + .incbin "baserom.gba", 0x11E4B4, 0x0000008 + +gUnk_0811E4BC:: @ 0811E4BC + .incbin "baserom.gba", 0x11E4BC, 0x0000054 + +gUnk_0811E510:: @ 0811E510 + .incbin "baserom.gba", 0x11E510, 0x0000004 + +gUnk_0811E514:: @ 0811E514 + .incbin "baserom.gba", 0x11E514, 0x0000010 + +gUnk_0811E524:: @ 0811E524 + .incbin "baserom.gba", 0x11E524, 0x000022C + +gUnk_0811E750:: @ 0811E750 + .incbin "baserom.gba", 0x11E750, 0x0000008 + +gUnk_0811E758:: @ 0811E758 + .incbin "baserom.gba", 0x11E758, 0x0000008 + +gUnk_0811E760:: @ 0811E760 + .incbin "baserom.gba", 0x11E760, 0x0000008 + +gUnk_0811E768:: @ 0811E768 + .incbin "baserom.gba", 0x11E768, 0x0000018 + +gUnk_0811E780:: @ 0811E780 + .incbin "baserom.gba", 0x11E780, 0x000000C + +gUnk_0811E78C:: @ 0811E78C + .incbin "baserom.gba", 0x11E78C, 0x0000008 + +gUnk_0811E794:: @ 0811E794 + .incbin "baserom.gba", 0x11E794, 0x0000018 + +gUnk_0811E7AC:: @ 0811E7AC + .incbin "baserom.gba", 0x11E7AC, 0x0000010 + +gUnk_0811E7BC:: @ 0811E7BC + .incbin "baserom.gba", 0x11E7BC, 0x0000008 + +gUnk_0811E7C4:: @ 0811E7C4 + .incbin "baserom.gba", 0x11E7C4, 0x0000010 + +gUnk_0811E7D4:: @ 0811E7D4 + .incbin "baserom.gba", 0x11E7D4, 0x0000014 + +gUnk_0811E7E8:: @ 0811E7E8 + .incbin "baserom.gba", 0x11E7E8, 0x000002C + +gUnk_0811E814:: @ 0811E814 + .incbin "baserom.gba", 0x11E814, 0x000002C + +gUnk_0811E840:: @ 0811E840 + .incbin "baserom.gba", 0x11E840, 0x000000C + +gUnk_0811E84C:: @ 0811E84C + .incbin "baserom.gba", 0x11E84C, 0x00000B0 + +gUnk_0811E8FC:: @ 0811E8FC + .incbin "baserom.gba", 0x11E8FC, 0x00000FA + +gUnk_0811E9F6:: @ 0811E9F6 + .incbin "baserom.gba", 0x11E9F6, 0x0000001 + +gUnk_0811E9F7:: @ 0811E9F7 + .incbin "baserom.gba", 0x11E9F7, 0x0000124 + +gUnk_0811EB1B:: @ 0811EB1B + .incbin "baserom.gba", 0x11EB1B, 0x00000DE + +gUnk_0811EBF9:: @ 0811EBF9 + .incbin "baserom.gba", 0x11EBF9, 0x0000003 + +gUnk_0811EBFC:: @ 0811EBFC + .incbin "baserom.gba", 0x11EBFC, 0x0000007 + +gUnk_0811EC03:: @ 0811EC03 + .incbin "baserom.gba", 0x11EC03, 0x0000005 + +gUnk_0811EC08:: @ 0811EC08 + .incbin "baserom.gba", 0x11EC08, 0x0000018 + +gUnk_0811EC20:: @ 0811EC20 + .incbin "baserom.gba", 0x11EC20, 0x0000004 + +gUnk_0811EC24:: @ 0811EC24 + .incbin "baserom.gba", 0x11EC24, 0x0000040 + +gUnk_0811EC64:: @ 0811EC64 + .incbin "baserom.gba", 0x11EC64, 0x0000070 + +gUnk_0811ECD4:: @ 0811ECD4 + .incbin "baserom.gba", 0x11ECD4, 0x0000079 + +gUnk_0811ED4D:: @ 0811ED4D + .incbin "baserom.gba", 0x11ED4D, 0x0000039 + +gUnk_0811ED86:: @ 0811ED86 + .incbin "baserom.gba", 0x11ED86, 0x0000031 + +gUnk_0811EDB7:: @ 0811EDB7 + .incbin "baserom.gba", 0x11EDB7, 0x0000034 + +gUnk_0811EDEB:: @ 0811EDEB + .incbin "baserom.gba", 0x11EDEB, 0x0000014 + +gUnk_0811EDFF:: @ 0811EDFF + .incbin "baserom.gba", 0x11EDFF, 0x0000011 + +gUnk_0811EE10:: @ 0811EE10 + .incbin "baserom.gba", 0x11EE10, 0x0000010 + +gUnk_0811EE20:: @ 0811EE20 + .incbin "baserom.gba", 0x11EE20, 0x0000008 + +gUnk_0811EE28:: @ 0811EE28 + .incbin "baserom.gba", 0x11EE28, 0x0000010 + +gUnk_0811EE38:: @ 0811EE38 + .incbin "baserom.gba", 0x11EE38, 0x0000018 + +gUnk_0811EE50:: @ 0811EE50 + .incbin "baserom.gba", 0x11EE50, 0x000000C + +gUnk_0811EE5C:: @ 0811EE5C + .incbin "baserom.gba", 0x11EE5C, 0x0000008 + +gUnk_0811EE64:: @ 0811EE64 + .incbin "baserom.gba", 0x11EE64, 0x0000029 + +gUnk_0811EE8D:: @ 0811EE8D + .incbin "baserom.gba", 0x11EE8D, 0x0000004 + +gUnk_0811EE91:: @ 0811EE91 + .incbin "baserom.gba", 0x11EE91, 0x0000029 + +gUnk_0811EEBA:: @ 0811EEBA + .incbin "baserom.gba", 0x11EEBA, 0x0000004 + +gUnk_0811EEBE:: @ 0811EEBE + .incbin "baserom.gba", 0x11EEBE, 0x0000005 + +gUnk_0811EEC3:: @ 0811EEC3 + .incbin "baserom.gba", 0x11EEC3, 0x0000004 + +gUnk_0811EEC7:: @ 0811EEC7 + .incbin "baserom.gba", 0x11EEC7, 0x0000029 + +gUnk_0811EEF0:: @ 0811EEF0 + .incbin "baserom.gba", 0x11EEF0, 0x0000004 + +gUnk_0811EEF4:: @ 0811EEF4 + .incbin "baserom.gba", 0x11EEF4, 0x0000009 + +gUnk_0811EEFD:: @ 0811EEFD + .incbin "baserom.gba", 0x11EEFD, 0x0000009 + +gUnk_0811EF06:: @ 0811EF06 + .incbin "baserom.gba", 0x11EF06, 0x0000009 + +gUnk_0811EF0F:: @ 0811EF0F + .incbin "baserom.gba", 0x11EF0F, 0x0000028 + +gUnk_0811EF37:: @ 0811EF37 + .incbin "baserom.gba", 0x11EF37, 0x0000018 + +gUnk_0811EF4F:: @ 0811EF4F + .incbin "baserom.gba", 0x11EF4F, 0x0000018 + +gUnk_0811EF67:: @ 0811EF67 + .incbin "baserom.gba", 0x11EF67, 0x0000018 + +gUnk_0811EF7F:: @ 0811EF7F + .incbin "baserom.gba", 0x11EF7F, 0x0000018 + +gUnk_0811EF97:: @ 0811EF97 + .incbin "baserom.gba", 0x11EF97, 0x0000009 + +gUnk_0811EFA0:: @ 0811EFA0 + .incbin "baserom.gba", 0x11EFA0, 0x0000009 + +gUnk_0811EFA9:: @ 0811EFA9 + .incbin "baserom.gba", 0x11EFA9, 0x0000009 + +gUnk_0811EFB2:: @ 0811EFB2 + .incbin "baserom.gba", 0x11EFB2, 0x0000009 + +gUnk_0811EFBB:: @ 0811EFBB + .incbin "baserom.gba", 0x11EFBB, 0x0000009 + +gUnk_0811EFC4:: @ 0811EFC4 + .incbin "baserom.gba", 0x11EFC4, 0x0000015 + +gUnk_0811EFD9:: @ 0811EFD9 + .incbin "baserom.gba", 0x11EFD9, 0x0000015 + +gUnk_0811EFEE:: @ 0811EFEE + .incbin "baserom.gba", 0x11EFEE, 0x000000E + +gUnk_0811EFFC:: @ 0811EFFC + .incbin "baserom.gba", 0x11EFFC, 0x0000007 + +gUnk_0811F003:: @ 0811F003 + .incbin "baserom.gba", 0x11F003, 0x0000015 + +gUnk_0811F018:: @ 0811F018 + .incbin "baserom.gba", 0x11F018, 0x0000078 + +gUnk_0811F090:: @ 0811F090 + .incbin "baserom.gba", 0x11F090, 0x0000018 + +gUnk_0811F0A8:: @ 0811F0A8 + .incbin "baserom.gba", 0x11F0A8, 0x000001C + +gUnk_0811F0C4:: @ 0811F0C4 + .incbin "baserom.gba", 0x11F0C4, 0x0000018 + +gUnk_0811F0DC:: @ 0811F0DC + .incbin "baserom.gba", 0x11F0DC, 0x0000005 + +gUnk_0811F0E1:: @ 0811F0E1 + .incbin "baserom.gba", 0x11F0E1, 0x0000005 + +gUnk_0811F0E6:: @ 0811F0E6 + .incbin "baserom.gba", 0x11F0E6, 0x0000005 + +gUnk_0811F0EB:: @ 0811F0EB + .incbin "baserom.gba", 0x11F0EB, 0x0000005 + +gUnk_0811F0F0:: @ 0811F0F0 + .incbin "baserom.gba", 0x11F0F0, 0x0000005 + +gUnk_0811F0F5:: @ 0811F0F5 + .incbin "baserom.gba", 0x11F0F5, 0x0000003 + +gUnk_0811F0F8:: @ 0811F0F8 + .incbin "baserom.gba", 0x11F0F8, 0x0000002 + +gUnk_0811F0FA:: @ 0811F0FA + .incbin "baserom.gba", 0x11F0FA, 0x0000005 + +gUnk_0811F0FF:: @ 0811F0FF + .incbin "baserom.gba", 0x11F0FF, 0x0000001 + +gUnk_0811F100:: @ 0811F100 + .incbin "baserom.gba", 0x11F100, 0x0000004 + +gUnk_0811F104:: @ 0811F104 + .incbin "baserom.gba", 0x11F104, 0x0000005 + +gUnk_0811F109:: @ 0811F109 + .incbin "baserom.gba", 0x11F109, 0x0000005 + +gUnk_0811F10E:: @ 0811F10E + .incbin "baserom.gba", 0x11F10E, 0x0000005 + +gUnk_0811F113:: @ 0811F113 + .incbin "baserom.gba", 0x11F113, 0x0000005 + +gUnk_0811F118:: @ 0811F118 + .incbin "baserom.gba", 0x11F118, 0x0000034 + +gUnk_0811F14C:: @ 0811F14C + .incbin "baserom.gba", 0x11F14C, 0x0000008 + +gUnk_0811F154:: @ 0811F154 + .incbin "baserom.gba", 0x11F154, 0x0000008 + +gUnk_0811F15C:: @ 0811F15C + .incbin "baserom.gba", 0x11F15C, 0x0000010 + +gUnk_0811F16C:: @ 0811F16C + .incbin "baserom.gba", 0x11F16C, 0x000000C + +gUnk_0811F178:: @ 0811F178 + .incbin "baserom.gba", 0x11F178, 0x0000014 + +gUnk_0811F18C:: @ 0811F18C + .incbin "baserom.gba", 0x11F18C, 0x0000004 + +gUnk_0811F190:: @ 0811F190 + .incbin "baserom.gba", 0x11F190, 0x000001D + +gUnk_0811F1AD:: @ 0811F1AD + .incbin "baserom.gba", 0x11F1AD, 0x000001D + +gUnk_0811F1CA:: @ 0811F1CA + .incbin "baserom.gba", 0x11F1CA, 0x000001D + +gUnk_0811F1E7:: @ 0811F1E7 + .incbin "baserom.gba", 0x11F1E7, 0x0000029 + +gUnk_0811F210:: @ 0811F210 + .incbin "baserom.gba", 0x11F210, 0x000001D + +gUnk_0811F22D:: @ 0811F22D + .incbin "baserom.gba", 0x11F22D, 0x000001D + +gUnk_0811F24A:: @ 0811F24A + .incbin "baserom.gba", 0x11F24A, 0x000001D + +gUnk_0811F267:: @ 0811F267 + .incbin "baserom.gba", 0x11F267, 0x0000029 + +gUnk_0811F290:: @ 0811F290 + .incbin "baserom.gba", 0x11F290, 0x000001D + +gUnk_0811F2AD:: @ 0811F2AD + .incbin "baserom.gba", 0x11F2AD, 0x000001D + +gUnk_0811F2CA:: @ 0811F2CA + .incbin "baserom.gba", 0x11F2CA, 0x000001D + +gUnk_0811F2E7:: @ 0811F2E7 + .incbin "baserom.gba", 0x11F2E7, 0x0000029 + +gUnk_0811F310:: @ 0811F310 + .incbin "baserom.gba", 0x11F310, 0x000000D + +gUnk_0811F31D:: @ 0811F31D + .incbin "baserom.gba", 0x11F31D, 0x000000D + +gUnk_0811F32A:: @ 0811F32A + .incbin "baserom.gba", 0x11F32A, 0x000000D + +gUnk_0811F337:: @ 0811F337 + .incbin "baserom.gba", 0x11F337, 0x0000029 + +gUnk_0811F360:: @ 0811F360 + .incbin "baserom.gba", 0x11F360, 0x000000D + +gUnk_0811F36D:: @ 0811F36D + .incbin "baserom.gba", 0x11F36D, 0x000000D + +gUnk_0811F37A:: @ 0811F37A + .incbin "baserom.gba", 0x11F37A, 0x000000D + +gUnk_0811F387:: @ 0811F387 + .incbin "baserom.gba", 0x11F387, 0x0000029 + +gUnk_0811F3B0:: @ 0811F3B0 + .incbin "baserom.gba", 0x11F3B0, 0x000000D + +gUnk_0811F3BD:: @ 0811F3BD + .incbin "baserom.gba", 0x11F3BD, 0x000000D + +gUnk_0811F3CA:: @ 0811F3CA + .incbin "baserom.gba", 0x11F3CA, 0x000000D + +gUnk_0811F3D7:: @ 0811F3D7 + .incbin "baserom.gba", 0x11F3D7, 0x0000029 + +gUnk_0811F400:: @ 0811F400 + .incbin "baserom.gba", 0x11F400, 0x0000005 + +gUnk_0811F405:: @ 0811F405 + .incbin "baserom.gba", 0x11F405, 0x0000011 + +gUnk_0811F416:: @ 0811F416 + .incbin "baserom.gba", 0x11F416, 0x0000029 + +gUnk_0811F43F:: @ 0811F43F + .incbin "baserom.gba", 0x11F43F, 0x0000029 + +gUnk_0811F468:: @ 0811F468 + .incbin "baserom.gba", 0x11F468, 0x0000051 + +gUnk_0811F4B9:: @ 0811F4B9 + .incbin "baserom.gba", 0x11F4B9, 0x0000019 + +gUnk_0811F4D2:: @ 0811F4D2 + .incbin "baserom.gba", 0x11F4D2, 0x0000005 + +gUnk_0811F4D7:: @ 0811F4D7 + .incbin "baserom.gba", 0x11F4D7, 0x0000074 + +gUnk_0811F54B:: @ 0811F54B + .incbin "baserom.gba", 0x11F54B, 0x0000015 + +gUnk_0811F560:: @ 0811F560 + .incbin "baserom.gba", 0x11F560, 0x0000015 + +gUnk_0811F575:: @ 0811F575 + .incbin "baserom.gba", 0x11F575, 0x0000015 + +gUnk_0811F58A:: @ 0811F58A + .incbin "baserom.gba", 0x11F58A, 0x0000006 + +gUnk_0811F590:: @ 0811F590 + .incbin "baserom.gba", 0x11F590, 0x0000065 + +gUnk_0811F5F5:: @ 0811F5F5 + .incbin "baserom.gba", 0x11F5F5, 0x0000010 + +gUnk_0811F605:: @ 0811F605 + .incbin "baserom.gba", 0x11F605, 0x000001F + +gUnk_0811F624:: @ 0811F624 + .incbin "baserom.gba", 0x11F624, 0x0000008 + +gUnk_0811F62C:: @ 0811F62C + .incbin "baserom.gba", 0x11F62C, 0x0000008 + +gUnk_0811F634:: @ 0811F634 + .incbin "baserom.gba", 0x11F634, 0x0000008 + +gUnk_0811F63C:: @ 0811F63C + .incbin "baserom.gba", 0x11F63C, 0x0000008 + +gUnk_0811F644:: @ 0811F644 + .incbin "baserom.gba", 0x11F644, 0x0000008 + +gUnk_0811F64C:: @ 0811F64C + .incbin "baserom.gba", 0x11F64C, 0x0000010 + +gUnk_0811F65C:: @ 0811F65C + .incbin "baserom.gba", 0x11F65C, 0x0000024 + +gUnk_0811F680:: @ 0811F680 + .incbin "baserom.gba", 0x11F680, 0x0000008 + +gUnk_0811F688:: @ 0811F688 + .incbin "baserom.gba", 0x11F688, 0x0000008 + +gUnk_0811F690:: @ 0811F690 + .incbin "baserom.gba", 0x11F690, 0x00000A0 + +gUnk_0811F730:: @ 0811F730 + .incbin "baserom.gba", 0x11F730, 0x0000010 + +gUnk_0811F740:: @ 0811F740 + .incbin "baserom.gba", 0x11F740, 0x0000004 + +gUnk_0811F744:: @ 0811F744 + .incbin "baserom.gba", 0x11F744, 0x0000010 + +gUnk_0811F754:: @ 0811F754 + .incbin "baserom.gba", 0x11F754, 0x000000C + +gUnk_0811F760:: @ 0811F760 + .incbin "baserom.gba", 0x11F760, 0x0000035 + +gUnk_0811F795:: @ 0811F795 + .incbin "baserom.gba", 0x11F795, 0x0000037 + +gUnk_0811F7CC:: @ 0811F7CC + .incbin "baserom.gba", 0x11F7CC, 0x000000C + +gUnk_0811F7D8:: @ 0811F7D8 + .incbin "baserom.gba", 0x11F7D8, 0x000000D + +gUnk_0811F7E5:: @ 0811F7E5 + .incbin "baserom.gba", 0x11F7E5, 0x0000003 + +gUnk_0811F7E8:: @ 0811F7E8 + .incbin "baserom.gba", 0x11F7E8, 0x0000020 + +gUnk_0811F808:: @ 0811F808 + .incbin "baserom.gba", 0x11F808, 0x0000010 + +gUnk_0811F818:: @ 0811F818 + .incbin "baserom.gba", 0x11F818, 0x0000020 + +gUnk_0811F838:: @ 0811F838 + .incbin "baserom.gba", 0x11F838, 0x0000008 + +gUnk_0811F840:: @ 0811F840 + .incbin "baserom.gba", 0x11F840, 0x0000010 + +gUnk_0811F850:: @ 0811F850 + .incbin "baserom.gba", 0x11F850, 0x0000004 + +gUnk_0811F854:: @ 0811F854 + .incbin "baserom.gba", 0x11F854, 0x0000012 + +gUnk_0811F866:: @ 0811F866 + .incbin "baserom.gba", 0x11F866, 0x000001A + +gUnk_0811F880:: @ 0811F880 + .incbin "baserom.gba", 0x11F880, 0x000000A + +gUnk_0811F88A:: @ 0811F88A + .incbin "baserom.gba", 0x11F88A, 0x000000E + +gUnk_0811F898:: @ 0811F898 + .incbin "baserom.gba", 0x11F898, 0x0000010 + +gUnk_0811F8A8:: @ 0811F8A8 + .incbin "baserom.gba", 0x11F8A8, 0x0000008 + +gUnk_0811F8B0:: @ 0811F8B0 + .incbin "baserom.gba", 0x11F8B0, 0x0000008 + +gUnk_0811F8B8:: @ 0811F8B8 + .incbin "baserom.gba", 0x11F8B8, 0x0000011 + +gUnk_0811F8C9:: @ 0811F8C9 + .incbin "baserom.gba", 0x11F8C9, 0x0000005 + +gUnk_0811F8CE:: @ 0811F8CE + .incbin "baserom.gba", 0x11F8CE, 0x0000005 + +gUnk_0811F8D3:: @ 0811F8D3 + .incbin "baserom.gba", 0x11F8D3, 0x0000015 + +gUnk_0811F8E8:: @ 0811F8E8 + .incbin "baserom.gba", 0x11F8E8, 0x0000008 + +gUnk_0811F8F0:: @ 0811F8F0 + .incbin "baserom.gba", 0x11F8F0, 0x0000008 + +gUnk_0811F8F8:: @ 0811F8F8 + .incbin "baserom.gba", 0x11F8F8, 0x0000010 + +gUnk_0811F908:: @ 0811F908 + .incbin "baserom.gba", 0x11F908, 0x0000010 + +gUnk_0811F918:: @ 0811F918 + .incbin "baserom.gba", 0x11F918, 0x000002D + +gUnk_0811F945:: @ 0811F945 + .incbin "baserom.gba", 0x11F945, 0x000000F + +gUnk_0811F954:: @ 0811F954 + .incbin "baserom.gba", 0x11F954, 0x000000C + +gUnk_0811F960:: @ 0811F960 + .incbin "baserom.gba", 0x11F960, 0x000009B + +gUnk_0811F9FB:: @ 0811F9FB + .incbin "baserom.gba", 0x11F9FB, 0x00000C5 + +gUnk_0811FAC0:: @ 0811FAC0 + .incbin "baserom.gba", 0x11FAC0, 0x0000008 + +gUnk_0811FAC8:: @ 0811FAC8 + .incbin "baserom.gba", 0x11FAC8, 0x0000004 + +gUnk_0811FACC:: @ 0811FACC + .incbin "baserom.gba", 0x11FACC, 0x0000004 + +gUnk_0811FAD0:: @ 0811FAD0 + .incbin "baserom.gba", 0x11FAD0, 0x0000038 + +gUnk_0811FB08:: @ 0811FB08 + .incbin "baserom.gba", 0x11FB08, 0x0000008 + +gUnk_0811FB10:: @ 0811FB10 + .incbin "baserom.gba", 0x11FB10, 0x0000015 + +gUnk_0811FB25:: @ 0811FB25 + .incbin "baserom.gba", 0x11FB25, 0x0000058 + +gUnk_0811FB7D:: @ 0811FB7D + .incbin "baserom.gba", 0x11FB7D, 0x0000044 + +gUnk_0811FBC1:: @ 0811FBC1 + .incbin "baserom.gba", 0x11FBC1, 0x0000020 + +gUnk_0811FBE1:: @ 0811FBE1 + .incbin "baserom.gba", 0x11FBE1, 0x000000C + +gUnk_0811FBED:: @ 0811FBED + .incbin "baserom.gba", 0x11FBED, 0x0000010 + +gUnk_0811FBFD:: @ 0811FBFD + .incbin "baserom.gba", 0x11FBFD, 0x0000014 + +gUnk_0811FC11:: @ 0811FC11 + .incbin "baserom.gba", 0x11FC11, 0x000001C + +gUnk_0811FC2D:: @ 0811FC2D + .incbin "baserom.gba", 0x11FC2D, 0x0000024 + +gUnk_0811FC51:: @ 0811FC51 + .incbin "baserom.gba", 0x11FC51, 0x0000021 + +gUnk_0811FC72:: @ 0811FC72 + .incbin "baserom.gba", 0x11FC72, 0x0000015 + +gUnk_0811FC87:: @ 0811FC87 + .incbin "baserom.gba", 0x11FC87, 0x0000024 + +gUnk_0811FCAB:: @ 0811FCAB + .incbin "baserom.gba", 0x11FCAB, 0x0000034 + +gUnk_0811FCDF:: @ 0811FCDF + .incbin "baserom.gba", 0x11FCDF, 0x0000044 + +gUnk_0811FD23:: @ 0811FD23 + .incbin "baserom.gba", 0x11FD23, 0x0000018 + +gUnk_0811FD3B:: @ 0811FD3B + .incbin "baserom.gba", 0x11FD3B, 0x000001C + +gUnk_0811FD57:: @ 0811FD57 + .incbin "baserom.gba", 0x11FD57, 0x000001C + +gUnk_0811FD73:: @ 0811FD73 + .incbin "baserom.gba", 0x11FD73, 0x000000C + +gUnk_0811FD7F:: @ 0811FD7F + .incbin "baserom.gba", 0x11FD7F, 0x0000010 + +gUnk_0811FD8F:: @ 0811FD8F + .incbin "baserom.gba", 0x11FD8F, 0x0000014 + +gUnk_0811FDA3:: @ 0811FDA3 + .incbin "baserom.gba", 0x11FDA3, 0x0000015 + +gUnk_0811FDB8:: @ 0811FDB8 + .incbin "baserom.gba", 0x11FDB8, 0x0000014 + +gUnk_0811FDCC:: @ 0811FDCC + .incbin "baserom.gba", 0x11FDCC, 0x0000008 + +gUnk_0811FDD4:: @ 0811FDD4 + .incbin "baserom.gba", 0x11FDD4, 0x0000018 + +gUnk_0811FDEC:: @ 0811FDEC + .incbin "baserom.gba", 0x11FDEC, 0x0000010 + +gUnk_0811FDFC:: @ 0811FDFC + .incbin "baserom.gba", 0x11FDFC, 0x0000019 + +gUnk_0811FE15:: @ 0811FE15 + .incbin "baserom.gba", 0x11FE15, 0x0000041 + +gUnk_0811FE56:: @ 0811FE56 + .incbin "baserom.gba", 0x11FE56, 0x0000008 + +gUnk_0811FE5E:: @ 0811FE5E + .incbin "baserom.gba", 0x11FE5E, 0x0000018 + +gUnk_0811FE76:: @ 0811FE76 + .incbin "baserom.gba", 0x11FE76, 0x0000018 + +gUnk_0811FE8E:: @ 0811FE8E + .incbin "baserom.gba", 0x11FE8E, 0x0000014 + +gUnk_0811FEA2:: @ 0811FEA2 + .incbin "baserom.gba", 0x11FEA2, 0x000000C + +gUnk_0811FEAE:: @ 0811FEAE + .incbin "baserom.gba", 0x11FEAE, 0x000000C + +gUnk_0811FEBA:: @ 0811FEBA + .incbin "baserom.gba", 0x11FEBA, 0x0000028 + +gUnk_0811FEE2:: @ 0811FEE2 + .incbin "baserom.gba", 0x11FEE2, 0x000000D + +gUnk_0811FEEF:: @ 0811FEEF + .incbin "baserom.gba", 0x11FEEF, 0x0000020 + +gUnk_0811FF0F:: @ 0811FF0F + .incbin "baserom.gba", 0x11FF0F, 0x0000020 + +gUnk_0811FF2F:: @ 0811FF2F + .incbin "baserom.gba", 0x11FF2F, 0x0000020 + +gUnk_0811FF4F:: @ 0811FF4F + .incbin "baserom.gba", 0x11FF4F, 0x0000020 + +gUnk_0811FF6F:: @ 0811FF6F + .incbin "baserom.gba", 0x11FF6F, 0x0000020 + +gUnk_0811FF8F:: @ 0811FF8F + .incbin "baserom.gba", 0x11FF8F, 0x0000018 + +gUnk_0811FFA7:: @ 0811FFA7 + .incbin "baserom.gba", 0x11FFA7, 0x0000020 + +gUnk_0811FFC7:: @ 0811FFC7 + .incbin "baserom.gba", 0x11FFC7, 0x0000018 + +gUnk_0811FFDF:: @ 0811FFDF + .incbin "baserom.gba", 0x11FFDF, 0x0000018 + +gUnk_0811FFF7:: @ 0811FFF7 + .incbin "baserom.gba", 0x11FFF7, 0x0000009 + +gUnk_08120000:: @ 08120000 + .incbin "baserom.gba", 0x120000, 0x0000004 + +gUnk_08120004:: @ 08120004 + .incbin "baserom.gba", 0x120004, 0x0000006 + +gUnk_0812000A:: @ 0812000A + .incbin "baserom.gba", 0x12000A, 0x0000004 + +gUnk_0812000E:: @ 0812000E + .incbin "baserom.gba", 0x12000E, 0x0000001 + +gUnk_0812000F:: @ 0812000F + .incbin "baserom.gba", 0x12000F, 0x0000001 + +gUnk_08120010:: @ 08120010 + .incbin "baserom.gba", 0x120010, 0x0000007 + +gUnk_08120017:: @ 08120017 + .incbin "baserom.gba", 0x120017, 0x0000011 + +gUnk_08120028:: @ 08120028 + .incbin "baserom.gba", 0x120028, 0x0000004 + +gUnk_0812002C:: @ 0812002C + .incbin "baserom.gba", 0x12002C, 0x000000F + +gUnk_0812003B:: @ 0812003B + .incbin "baserom.gba", 0x12003B, 0x0000017 + +gUnk_08120052:: @ 08120052 + .incbin "baserom.gba", 0x120052, 0x000000A + +gUnk_0812005C:: @ 0812005C + .incbin "baserom.gba", 0x12005C, 0x0000007 + +gUnk_08120063:: @ 08120063 + .incbin "baserom.gba", 0x120063, 0x000001C + +gUnk_0812007F:: @ 0812007F + .incbin "baserom.gba", 0x12007F, 0x0000009 + +gUnk_08120088:: @ 08120088 + .incbin "baserom.gba", 0x120088, 0x0000013 + +gUnk_0812009B:: @ 0812009B + .incbin "baserom.gba", 0x12009B, 0x0000014 + +gUnk_081200AF:: @ 081200AF + .incbin "baserom.gba", 0x1200AF, 0x000001B + +gUnk_081200CA:: @ 081200CA + .incbin "baserom.gba", 0x1200CA, 0x0000001 + +gUnk_081200CB:: @ 081200CB + .incbin "baserom.gba", 0x1200CB, 0x0000005 + +gUnk_081200D0:: @ 081200D0 + .incbin "baserom.gba", 0x1200D0, 0x0000012 + +gUnk_081200E2:: @ 081200E2 + .incbin "baserom.gba", 0x1200E2, 0x0000009 + +gUnk_081200EB:: @ 081200EB + .incbin "baserom.gba", 0x1200EB, 0x0000013 + +gUnk_081200FE:: @ 081200FE + .incbin "baserom.gba", 0x1200FE, 0x0000001 + +gUnk_081200FF:: @ 081200FF + .incbin "baserom.gba", 0x1200FF, 0x0000024 + +gUnk_08120123:: @ 08120123 + .incbin "baserom.gba", 0x120123, 0x0000024 + +gUnk_08120147:: @ 08120147 + .incbin "baserom.gba", 0x120147, 0x0000020 + +gUnk_08120167:: @ 08120167 + .incbin "baserom.gba", 0x120167, 0x0000018 + +gUnk_0812017F:: @ 0812017F + .incbin "baserom.gba", 0x12017F, 0x0000011 + +gUnk_08120190:: @ 08120190 + .incbin "baserom.gba", 0x120190, 0x0000007 + +gUnk_08120197:: @ 08120197 + .incbin "baserom.gba", 0x120197, 0x0000018 + +gUnk_081201AF:: @ 081201AF + .incbin "baserom.gba", 0x1201AF, 0x0000031 + +gUnk_081201E0:: @ 081201E0 + .incbin "baserom.gba", 0x1201E0, 0x000000D + +gUnk_081201ED:: @ 081201ED + .incbin "baserom.gba", 0x1201ED, 0x000000B + +gUnk_081201F8:: @ 081201F8 + .incbin "baserom.gba", 0x1201F8, 0x0000011 + +gUnk_08120209:: @ 08120209 + .incbin "baserom.gba", 0x120209, 0x0000038 + +gUnk_08120241:: @ 08120241 + .incbin "baserom.gba", 0x120241, 0x0000038 + +gUnk_08120279:: @ 08120279 + .incbin "baserom.gba", 0x120279, 0x0000007 + +gUnk_08120280:: @ 08120280 + .incbin "baserom.gba", 0x120280, 0x000002D + +gUnk_081202AD:: @ 081202AD + .incbin "baserom.gba", 0x1202AD, 0x0000011 + +gUnk_081202BE:: @ 081202BE + .incbin "baserom.gba", 0x1202BE, 0x0000025 + +gUnk_081202E3:: @ 081202E3 + .incbin "baserom.gba", 0x1202E3, 0x0000009 + +gUnk_081202EC:: @ 081202EC + .incbin "baserom.gba", 0x1202EC, 0x0000020 + +gUnk_0812030C:: @ 0812030C + .incbin "baserom.gba", 0x12030C, 0x0000014 + +gUnk_08120320:: @ 08120320 + .incbin "baserom.gba", 0x120320, 0x0000030 + +gUnk_08120350:: @ 08120350 + .incbin "baserom.gba", 0x120350, 0x000001C + +gUnk_0812036C:: @ 0812036C + .incbin "baserom.gba", 0x12036C, 0x0000020 + +gUnk_0812038C:: @ 0812038C + .incbin "baserom.gba", 0x12038C, 0x0000038 + +gUnk_081203C4:: @ 081203C4 + .incbin "baserom.gba", 0x1203C4, 0x0000026 + +gUnk_081203EA:: @ 081203EA + .incbin "baserom.gba", 0x1203EA, 0x0000012 + +gUnk_081203FC:: @ 081203FC + .incbin "baserom.gba", 0x1203FC, 0x0000005 + +gUnk_08120401:: @ 08120401 + .incbin "baserom.gba", 0x120401, 0x0000001 + +gUnk_08120402:: @ 08120402 + .incbin "baserom.gba", 0x120402, 0x0000011 + +gUnk_08120413:: @ 08120413 + .incbin "baserom.gba", 0x120413, 0x0000030 + +gUnk_08120443:: @ 08120443 + .incbin "baserom.gba", 0x120443, 0x0000001 + +gUnk_08120444:: @ 08120444 + .incbin "baserom.gba", 0x120444, 0x0000015 + +gUnk_08120459:: @ 08120459 + .incbin "baserom.gba", 0x120459, 0x000000A + +gUnk_08120463:: @ 08120463 + .incbin "baserom.gba", 0x120463, 0x000009B + +gUnk_081204FE:: @ 081204FE + .incbin "baserom.gba", 0x1204FE, 0x0000062 + +gUnk_08120560:: @ 08120560 + .incbin "baserom.gba", 0x120560, 0x000000C + +gUnk_0812056C:: @ 0812056C + .incbin "baserom.gba", 0x12056C, 0x0000008 + +gUnk_08120574:: @ 08120574 + .incbin "baserom.gba", 0x120574, 0x0000008 + +gUnk_0812057C:: @ 0812057C + .incbin "baserom.gba", 0x12057C, 0x000000C + +gUnk_08120588:: @ 08120588 + .incbin "baserom.gba", 0x120588, 0x0000014 + +gUnk_0812059C:: @ 0812059C + .incbin "baserom.gba", 0x12059C, 0x0000018 + +gUnk_081205B4:: @ 081205B4 + .incbin "baserom.gba", 0x1205B4, 0x0000008 + +gUnk_081205BC:: @ 081205BC + .incbin "baserom.gba", 0x1205BC, 0x0000014 + +gUnk_081205D0:: @ 081205D0 + .incbin "baserom.gba", 0x1205D0, 0x0000010 + +gUnk_081205E0:: @ 081205E0 + .incbin "baserom.gba", 0x1205E0, 0x0000004 + +gUnk_081205E4:: @ 081205E4 + .incbin "baserom.gba", 0x1205E4, 0x0000004 + +gUnk_081205E8:: @ 081205E8 + .incbin "baserom.gba", 0x1205E8, 0x0000004 + +gUnk_081205EC:: @ 081205EC + .incbin "baserom.gba", 0x1205EC, 0x0000004 + +gUnk_081205F0:: @ 081205F0 + .incbin "baserom.gba", 0x1205F0, 0x0000004 + +gUnk_081205F4:: @ 081205F4 + .incbin "baserom.gba", 0x1205F4, 0x0000009 + +gUnk_081205FD:: @ 081205FD + .incbin "baserom.gba", 0x1205FD, 0x000000B + +gUnk_08120608:: @ 08120608 + .incbin "baserom.gba", 0x120608, 0x0000018 + +gUnk_08120620:: @ 08120620 + .incbin "baserom.gba", 0x120620, 0x000000C + +gUnk_0812062C:: @ 0812062C + .incbin "baserom.gba", 0x12062C, 0x000000C + +gUnk_08120638:: @ 08120638 + .incbin "baserom.gba", 0x120638, 0x0000008 + +gUnk_08120640:: @ 08120640 + .incbin "baserom.gba", 0x120640, 0x0000008 + +gUnk_08120648:: @ 08120648 + .incbin "baserom.gba", 0x120648, 0x0000008 + +gUnk_08120650:: @ 08120650 + .incbin "baserom.gba", 0x120650, 0x0000008 + +gUnk_08120658:: @ 08120658 + .incbin "baserom.gba", 0x120658, 0x0000008 + +gUnk_08120660:: @ 08120660 + .incbin "baserom.gba", 0x120660, 0x0000008 + +gUnk_08120668:: @ 08120668 + .incbin "baserom.gba", 0x120668, 0x0000010 + +gUnk_08120678:: @ 08120678 + .incbin "baserom.gba", 0x120678, 0x000000A + +gUnk_08120682:: @ 08120682 + .incbin "baserom.gba", 0x120682, 0x0000004 + +gUnk_08120686:: @ 08120686 + .incbin "baserom.gba", 0x120686, 0x0000004 + +gUnk_0812068A:: @ 0812068A + .incbin "baserom.gba", 0x12068A, 0x0000004 + +gUnk_0812068E:: @ 0812068E + .incbin "baserom.gba", 0x12068E, 0x0000004 + +gUnk_08120692:: @ 08120692 + .incbin "baserom.gba", 0x120692, 0x0000006 + +gUnk_08120698:: @ 08120698 + .incbin "baserom.gba", 0x120698, 0x0000014 + +gUnk_081206AC:: @ 081206AC + .incbin "baserom.gba", 0x1206AC, 0x0000008 + +gUnk_081206B4:: @ 081206B4 + .incbin "baserom.gba", 0x1206B4, 0x0000010 + +gUnk_081206C4:: @ 081206C4 + .incbin "baserom.gba", 0x1206C4, 0x000000C + +gUnk_081206D0:: @ 081206D0 + .incbin "baserom.gba", 0x1206D0, 0x000002C + +gUnk_081206FC:: @ 081206FC + .incbin "baserom.gba", 0x1206FC, 0x0000018 + +gUnk_08120714:: @ 08120714 + .incbin "baserom.gba", 0x120714, 0x0000014 + +gUnk_08120728:: @ 08120728 + .incbin "baserom.gba", 0x120728, 0x000000C + +gUnk_08120734:: @ 08120734 + .incbin "baserom.gba", 0x120734, 0x0000008 + +gUnk_0812073C:: @ 0812073C + .incbin "baserom.gba", 0x12073C, 0x000000C + +gUnk_08120748:: @ 08120748 + .incbin "baserom.gba", 0x120748, 0x0000010 + +gUnk_08120758:: @ 08120758 + .incbin "baserom.gba", 0x120758, 0x0000008 + +gUnk_08120760:: @ 08120760 + .incbin "baserom.gba", 0x120760, 0x0000008 + +gUnk_08120768:: @ 08120768 + .incbin "baserom.gba", 0x120768, 0x0000008 + +gUnk_08120770:: @ 08120770 + .incbin "baserom.gba", 0x120770, 0x0000008 + +gUnk_08120778:: @ 08120778 + .incbin "baserom.gba", 0x120778, 0x0000010 + +gUnk_08120788:: @ 08120788 + .incbin "baserom.gba", 0x120788, 0x0000014 + +gUnk_0812079C:: @ 0812079C + .incbin "baserom.gba", 0x12079C, 0x0000008 + +gUnk_081207A4:: @ 081207A4 + .incbin "baserom.gba", 0x1207A4, 0x0000008 + +gUnk_081207AC:: @ 081207AC + .incbin "baserom.gba", 0x1207AC, 0x0000004 + +gUnk_081207B0:: @ 081207B0 + .incbin "baserom.gba", 0x1207B0, 0x0000011 + +gUnk_081207C1:: @ 081207C1 + .incbin "baserom.gba", 0x1207C1, 0x0000011 + +gUnk_081207D2:: @ 081207D2 + .incbin "baserom.gba", 0x1207D2, 0x0000005 + +gUnk_081207D7:: @ 081207D7 + .incbin "baserom.gba", 0x1207D7, 0x000001D + +gUnk_081207F4:: @ 081207F4 + .incbin "baserom.gba", 0x1207F4, 0x000000D + +gUnk_08120801:: @ 08120801 + .incbin "baserom.gba", 0x120801, 0x0000003 + +gUnk_08120804:: @ 08120804 + .incbin "baserom.gba", 0x120804, 0x0000004 + +gUnk_08120808:: @ 08120808 + .incbin "baserom.gba", 0x120808, 0x0000006 + +gUnk_0812080E:: @ 0812080E + .incbin "baserom.gba", 0x12080E, 0x000000B + +gUnk_08120819:: @ 08120819 + .incbin "baserom.gba", 0x120819, 0x000000D + +gUnk_08120826:: @ 08120826 + .incbin "baserom.gba", 0x120826, 0x0000009 + +gUnk_0812082F:: @ 0812082F + .incbin "baserom.gba", 0x12082F, 0x0000021 + +gUnk_08120850:: @ 08120850 + .incbin "baserom.gba", 0x120850, 0x0000005 + +gUnk_08120855:: @ 08120855 + .incbin "baserom.gba", 0x120855, 0x0000023 + +gUnk_08120878:: @ 08120878 + .incbin "baserom.gba", 0x120878, 0x0000028 + +gUnk_081208A0:: @ 081208A0 + .incbin "baserom.gba", 0x1208A0, 0x0000008 + +gUnk_081208A8:: @ 081208A8 + .incbin "baserom.gba", 0x1208A8, 0x0000010 + +gUnk_081208B8:: @ 081208B8 + .incbin "baserom.gba", 0x1208B8, 0x0000008 + +gUnk_081208C0:: @ 081208C0 + .incbin "baserom.gba", 0x1208C0, 0x0000008 + +gUnk_081208C8:: @ 081208C8 + .incbin "baserom.gba", 0x1208C8, 0x0000034 + +gUnk_081208FC:: @ 081208FC + .incbin "baserom.gba", 0x1208FC, 0x0000005 + +gUnk_08120901:: @ 08120901 + .incbin "baserom.gba", 0x120901, 0x0000005 + +gUnk_08120906:: @ 08120906 + .incbin "baserom.gba", 0x120906, 0x000002A + +gUnk_08120930:: @ 08120930 + .incbin "baserom.gba", 0x120930, 0x0000034 + +gUnk_08120964:: @ 08120964 + .incbin "baserom.gba", 0x120964, 0x000002C + +gUnk_08120990:: @ 08120990 + .incbin "baserom.gba", 0x120990, 0x000002C + +gUnk_081209BC:: @ 081209BC + .incbin "baserom.gba", 0x1209BC, 0x000002C + +gUnk_081209E8:: @ 081209E8 + .incbin "baserom.gba", 0x1209E8, 0x0000010 + +gUnk_081209F8:: @ 081209F8 + .incbin "baserom.gba", 0x1209F8, 0x0000014 + +gUnk_08120A0C:: @ 08120A0C + .incbin "baserom.gba", 0x120A0C, 0x000000C + +gUnk_08120A18:: @ 08120A18 + .incbin "baserom.gba", 0x120A18, 0x0000008 + +gUnk_08120A20:: @ 08120A20 + .incbin "baserom.gba", 0x120A20, 0x0000008 + +gUnk_08120A28:: @ 08120A28 + .incbin "baserom.gba", 0x120A28, 0x0000008 + +gUnk_08120A30:: @ 08120A30 + .incbin "baserom.gba", 0x120A30, 0x000000C + +gUnk_08120A3C:: @ 08120A3C + .incbin "baserom.gba", 0x120A3C, 0x000000C + +gUnk_08120A48:: @ 08120A48 + .incbin "baserom.gba", 0x120A48, 0x000000C + +gUnk_08120A54:: @ 08120A54 + .incbin "baserom.gba", 0x120A54, 0x0000014 + +gUnk_08120A68:: @ 08120A68 + .incbin "baserom.gba", 0x120A68, 0x0000010 + +gUnk_08120A78:: @ 08120A78 + .incbin "baserom.gba", 0x120A78, 0x0000002 + +gUnk_08120A7A:: @ 08120A7A + .incbin "baserom.gba", 0x120A7A, 0x0000006 + +gUnk_08120A80:: @ 08120A80 + .incbin "baserom.gba", 0x120A80, 0x000000C + +gUnk_08120A8C:: @ 08120A8C + .incbin "baserom.gba", 0x120A8C, 0x0000008 + +gUnk_08120A94:: @ 08120A94 + .incbin "baserom.gba", 0x120A94, 0x0000014 + +gUnk_08120AA8:: @ 08120AA8 + .incbin "baserom.gba", 0x120AA8, 0x0000004 + +gUnk_08120AAC:: @ 08120AAC + .incbin "baserom.gba", 0x120AAC, 0x0000008 + +gUnk_08120AB4:: @ 08120AB4 + .incbin "baserom.gba", 0x120AB4, 0x0000018 + +gUnk_08120ACC:: @ 08120ACC + .incbin "baserom.gba", 0x120ACC, 0x0000018 + +gUnk_08120AE4:: @ 08120AE4 + .incbin "baserom.gba", 0x120AE4, 0x0000004 + +gUnk_08120AE8:: @ 08120AE8 + .incbin "baserom.gba", 0x120AE8, 0x0000005 + +gUnk_08120AED:: @ 08120AED + .incbin "baserom.gba", 0x120AED, 0x0000014 + +gUnk_08120B01:: @ 08120B01 + .incbin "baserom.gba", 0x120B01, 0x0000003 + +gUnk_08120B04:: @ 08120B04 + .incbin "baserom.gba", 0x120B04, 0x0000006 + +gUnk_08120B0A:: @ 08120B0A + .incbin "baserom.gba", 0x120B0A, 0x0000006 + +gUnk_08120B10:: @ 08120B10 + .incbin "baserom.gba", 0x120B10, 0x0000010 + +gUnk_08120B20:: @ 08120B20 + .incbin "baserom.gba", 0x120B20, 0x0000014 + +gUnk_08120B34:: @ 08120B34 + .incbin "baserom.gba", 0x120B34, 0x0000011 + +gUnk_08120B45:: @ 08120B45 + .incbin "baserom.gba", 0x120B45, 0x0000011 + +gUnk_08120B56:: @ 08120B56 + .incbin "baserom.gba", 0x120B56, 0x0000011 + +gUnk_08120B67:: @ 08120B67 + .incbin "baserom.gba", 0x120B67, 0x0000011 + +gUnk_08120B78:: @ 08120B78 + .incbin "baserom.gba", 0x120B78, 0x0000011 + +gUnk_08120B89:: @ 08120B89 + .incbin "baserom.gba", 0x120B89, 0x0000011 + +gUnk_08120B9A:: @ 08120B9A + .incbin "baserom.gba", 0x120B9A, 0x0000011 + +gUnk_08120BAB:: @ 08120BAB + .incbin "baserom.gba", 0x120BAB, 0x0000011 + +gUnk_08120BBC:: @ 08120BBC + .incbin "baserom.gba", 0x120BBC, 0x0000024 + +gUnk_08120BE0:: @ 08120BE0 + .incbin "baserom.gba", 0x120BE0, 0x0000007 + +gUnk_08120BE7:: @ 08120BE7 + .incbin "baserom.gba", 0x120BE7, 0x0000005 + +gUnk_08120BEC:: @ 08120BEC + .incbin "baserom.gba", 0x120BEC, 0x0000005 + +gUnk_08120BF1:: @ 08120BF1 + .incbin "baserom.gba", 0x120BF1, 0x0000003 + +gUnk_08120BF4:: @ 08120BF4 + .incbin "baserom.gba", 0x120BF4, 0x0000001 + +gUnk_08120BF5:: @ 08120BF5 + .incbin "baserom.gba", 0x120BF5, 0x0000004 + +gUnk_08120BF9:: @ 08120BF9 + .incbin "baserom.gba", 0x120BF9, 0x0000003 + +gUnk_08120BFC:: @ 08120BFC + .incbin "baserom.gba", 0x120BFC, 0x0000001 + +gUnk_08120BFD:: @ 08120BFD + .incbin "baserom.gba", 0x120BFD, 0x0000001 + +gUnk_08120BFE:: @ 08120BFE + .incbin "baserom.gba", 0x120BFE, 0x0000003 + +gUnk_08120C01:: @ 08120C01 + .incbin "baserom.gba", 0x120C01, 0x0000007 + +gUnk_08120C08:: @ 08120C08 + .incbin "baserom.gba", 0x120C08, 0x0000008 + +gUnk_08120C10:: @ 08120C10 + .incbin "baserom.gba", 0x120C10, 0x000000C + +gUnk_08120C1C:: @ 08120C1C + .incbin "baserom.gba", 0x120C1C, 0x0000009 + +gUnk_08120C25:: @ 08120C25 + .incbin "baserom.gba", 0x120C25, 0x0000009 + +gUnk_08120C2E:: @ 08120C2E + .incbin "baserom.gba", 0x120C2E, 0x0000006 + +gUnk_08120C34:: @ 08120C34 + .incbin "baserom.gba", 0x120C34, 0x0000014 + +gUnk_08120C48:: @ 08120C48 + .incbin "baserom.gba", 0x120C48, 0x0000008 + +gUnk_08120C50:: @ 08120C50 + .incbin "baserom.gba", 0x120C50, 0x0000002 + +gUnk_08120C52:: @ 08120C52 + .incbin "baserom.gba", 0x120C52, 0x0000004 + +gUnk_08120C56:: @ 08120C56 + .incbin "baserom.gba", 0x120C56, 0x0000008 + +gUnk_08120C5E:: @ 08120C5E + .incbin "baserom.gba", 0x120C5E, 0x0000008 + +gUnk_08120C66:: @ 08120C66 + .incbin "baserom.gba", 0x120C66, 0x0000009 + +gUnk_08120C6F:: @ 08120C6F + .incbin "baserom.gba", 0x120C6F, 0x0000009 + +gUnk_08120C78:: @ 08120C78 + .incbin "baserom.gba", 0x120C78, 0x0000008 + +gUnk_08120C80:: @ 08120C80 + .incbin "baserom.gba", 0x120C80, 0x0000012 + +gUnk_08120C92:: @ 08120C92 + .incbin "baserom.gba", 0x120C92, 0x0000006 + +gUnk_08120C98:: @ 08120C98 + .incbin "baserom.gba", 0x120C98, 0x0000014 + +gUnk_08120CAC:: @ 08120CAC + .incbin "baserom.gba", 0x120CAC, 0x0000008 + +gUnk_08120CB4:: @ 08120CB4 + .incbin "baserom.gba", 0x120CB4, 0x0000008 + +gUnk_08120CBC:: @ 08120CBC + .incbin "baserom.gba", 0x120CBC, 0x0000010 + +gUnk_08120CCC:: @ 08120CCC + .incbin "baserom.gba", 0x120CCC, 0x000003D + +gUnk_08120D09:: @ 08120D09 + .incbin "baserom.gba", 0x120D09, 0x0000063 + +gUnk_08120D6C:: @ 08120D6C + .incbin "baserom.gba", 0x120D6C, 0x000001A + +gUnk_08120D86:: @ 08120D86 + .incbin "baserom.gba", 0x120D86, 0x0000006 + +gUnk_08120D8C:: @ 08120D8C + .incbin "baserom.gba", 0x120D8C, 0x0000004 + +gUnk_08120D90:: @ 08120D90 + .incbin "baserom.gba", 0x120D90, 0x0000010 + +gUnk_08120DA0:: @ 08120DA0 + .incbin "baserom.gba", 0x120DA0, 0x0000011 + +gUnk_08120DB1:: @ 08120DB1 + .incbin "baserom.gba", 0x120DB1, 0x0000013 + +gUnk_08120DC4:: @ 08120DC4 + .incbin "baserom.gba", 0x120DC4, 0x000000C + +gUnk_08120DD0:: @ 08120DD0 + .incbin "baserom.gba", 0x120DD0, 0x0000008 + +gUnk_08120DD8:: @ 08120DD8 + .incbin "baserom.gba", 0x120DD8, 0x0000014 + +gUnk_08120DEC:: @ 08120DEC + .incbin "baserom.gba", 0x120DEC, 0x0000008 + +gUnk_08120DF4:: @ 08120DF4 + .incbin "baserom.gba", 0x120DF4, 0x0000004 + +gUnk_08120DF8:: @ 08120DF8 + .incbin "baserom.gba", 0x120DF8, 0x0000004 + +gUnk_08120DFC:: @ 08120DFC + .incbin "baserom.gba", 0x120DFC, 0x0000004 + +gUnk_08120E00:: @ 08120E00 + .incbin "baserom.gba", 0x120E00, 0x0000001 + +gUnk_08120E01:: @ 08120E01 + .incbin "baserom.gba", 0x120E01, 0x0000001 + +gUnk_08120E02:: @ 08120E02 + .incbin "baserom.gba", 0x120E02, 0x0000006 + +gUnk_08120E08:: @ 08120E08 + .incbin "baserom.gba", 0x120E08, 0x000000B + +gUnk_08120E13:: @ 08120E13 + .incbin "baserom.gba", 0x120E13, 0x0000001 + +gUnk_08120E14:: @ 08120E14 + .incbin "baserom.gba", 0x120E14, 0x0000028 + +gUnk_08120E3C:: @ 08120E3C + .incbin "baserom.gba", 0x120E3C, 0x0000014 + +gUnk_08120E50:: @ 08120E50 + .incbin "baserom.gba", 0x120E50, 0x0000028 + +gUnk_08120E78:: @ 08120E78 + .incbin "baserom.gba", 0x120E78, 0x000000C + +gUnk_08120E84:: @ 08120E84 + .incbin "baserom.gba", 0x120E84, 0x0000008 + +gUnk_08120E8C:: @ 08120E8C + .incbin "baserom.gba", 0x120E8C, 0x0000045 + +gUnk_08120ED1:: @ 08120ED1 + .incbin "baserom.gba", 0x120ED1, 0x0000028 + +gUnk_08120EF9:: @ 08120EF9 + .incbin "baserom.gba", 0x120EF9, 0x000000A + +gUnk_08120F03:: @ 08120F03 + .incbin "baserom.gba", 0x120F03, 0x0000018 + +gUnk_08120F1B:: @ 08120F1B + .incbin "baserom.gba", 0x120F1B, 0x000000F + +gUnk_08120F2A:: @ 08120F2A + .incbin "baserom.gba", 0x120F2A, 0x0000004 + +gUnk_08120F2E:: @ 08120F2E + .incbin "baserom.gba", 0x120F2E, 0x0000004 + +gUnk_08120F32:: @ 08120F32 + .incbin "baserom.gba", 0x120F32, 0x0000028 + +gUnk_08120F5A:: @ 08120F5A + .incbin "baserom.gba", 0x120F5A, 0x0000004 + +gUnk_08120F5E:: @ 08120F5E + .incbin "baserom.gba", 0x120F5E, 0x0000020 + +gUnk_08120F7E:: @ 08120F7E + .incbin "baserom.gba", 0x120F7E, 0x0000028 + +gUnk_08120FA6:: @ 08120FA6 + .incbin "baserom.gba", 0x120FA6, 0x0000004 + +gUnk_08120FAA:: @ 08120FAA + .incbin "baserom.gba", 0x120FAA, 0x0000020 + +gUnk_08120FCA:: @ 08120FCA + .incbin "baserom.gba", 0x120FCA, 0x0000028 + +gUnk_08120FF2:: @ 08120FF2 + .incbin "baserom.gba", 0x120FF2, 0x0000004 + +gUnk_08120FF6:: @ 08120FF6 + .incbin "baserom.gba", 0x120FF6, 0x0000013 + +gUnk_08121009:: @ 08121009 + .incbin "baserom.gba", 0x121009, 0x0000002 + +gUnk_0812100B:: @ 0812100B + .incbin "baserom.gba", 0x12100B, 0x0000001 + +gUnk_0812100C:: @ 0812100C + .incbin "baserom.gba", 0x12100C, 0x0000001 + +gUnk_0812100D:: @ 0812100D + .incbin "baserom.gba", 0x12100D, 0x0000002 + +gUnk_0812100F:: @ 0812100F + .incbin "baserom.gba", 0x12100F, 0x0000003 + +gUnk_08121012:: @ 08121012 + .incbin "baserom.gba", 0x121012, 0x0000002 + +gUnk_08121014:: @ 08121014 + .incbin "baserom.gba", 0x121014, 0x0000002 + +gUnk_08121016:: @ 08121016 + .incbin "baserom.gba", 0x121016, 0x0000006 + +gUnk_0812101C:: @ 0812101C + .incbin "baserom.gba", 0x12101C, 0x000000C + +gUnk_08121028:: @ 08121028 + .incbin "baserom.gba", 0x121028, 0x0000038 + +gUnk_08121060:: @ 08121060 + .incbin "baserom.gba", 0x121060, 0x0000008 + +gUnk_08121068:: @ 08121068 + .incbin "baserom.gba", 0x121068, 0x0000008 + +gUnk_08121070:: @ 08121070 + .incbin "baserom.gba", 0x121070, 0x0000008 + +gUnk_08121078:: @ 08121078 + .incbin "baserom.gba", 0x121078, 0x0000010 + +gUnk_08121088:: @ 08121088 + .incbin "baserom.gba", 0x121088, 0x0000008 + +gUnk_08121090:: @ 08121090 + .incbin "baserom.gba", 0x121090, 0x0000004 + +gUnk_08121094:: @ 08121094 + .incbin "baserom.gba", 0x121094, 0x000003C + +gUnk_081210D0:: @ 081210D0 + .incbin "baserom.gba", 0x1210D0, 0x0000036 + +gUnk_08121106:: @ 08121106 + .incbin "baserom.gba", 0x121106, 0x0000005 + +gUnk_0812110B:: @ 0812110B + .incbin "baserom.gba", 0x12110B, 0x0000001 + +gUnk_0812110C:: @ 0812110C + .incbin "baserom.gba", 0x12110C, 0x0000007 + +gUnk_08121113:: @ 08121113 + .incbin "baserom.gba", 0x121113, 0x0000006 + +gUnk_08121119:: @ 08121119 + .incbin "baserom.gba", 0x121119, 0x0000003 + +gUnk_0812111C:: @ 0812111C + .incbin "baserom.gba", 0x12111C, 0x000002C + +gUnk_08121148:: @ 08121148 + .incbin "baserom.gba", 0x121148, 0x000000C + +gUnk_08121154:: @ 08121154 + .incbin "baserom.gba", 0x121154, 0x0000004 + +gUnk_08121158:: @ 08121158 + .incbin "baserom.gba", 0x121158, 0x0000020 + +gUnk_08121178:: @ 08121178 + .incbin "baserom.gba", 0x121178, 0x0000008 + +gUnk_08121180:: @ 08121180 + .incbin "baserom.gba", 0x121180, 0x0000008 + +gUnk_08121188:: @ 08121188 + .incbin "baserom.gba", 0x121188, 0x000000C + +gUnk_08121194:: @ 08121194 + .incbin "baserom.gba", 0x121194, 0x0000008 + +gUnk_0812119C:: @ 0812119C + .incbin "baserom.gba", 0x12119C, 0x0000008 + +gUnk_081211A4:: @ 081211A4 + .incbin "baserom.gba", 0x1211A4, 0x0000010 + +gUnk_081211B4:: @ 081211B4 + .incbin "baserom.gba", 0x1211B4, 0x000000C + +gUnk_081211C0:: @ 081211C0 + .incbin "baserom.gba", 0x1211C0, 0x000000C + +gUnk_081211CC:: @ 081211CC + .incbin "baserom.gba", 0x1211CC, 0x0000010 + +gUnk_081211DC:: @ 081211DC + .incbin "baserom.gba", 0x1211DC, 0x0000008 + +gUnk_081211E4:: @ 081211E4 + .incbin "baserom.gba", 0x1211E4, 0x0000008 + +gUnk_081211EC:: @ 081211EC + .incbin "baserom.gba", 0x1211EC, 0x0000008 + +gUnk_081211F4:: @ 081211F4 + .incbin "baserom.gba", 0x1211F4, 0x0000001 + +gUnk_081211F5:: @ 081211F5 + .incbin "baserom.gba", 0x1211F5, 0x0000007 + +gUnk_081211FC:: @ 081211FC + .incbin "baserom.gba", 0x1211FC, 0x0000001 + +gUnk_081211FD:: @ 081211FD + .incbin "baserom.gba", 0x1211FD, 0x0000007 + +gUnk_08121204:: @ 08121204 + .incbin "baserom.gba", 0x121204, 0x0000004 + +gUnk_08121208:: @ 08121208 + .incbin "baserom.gba", 0x121208, 0x000000C + +gUnk_08121214:: @ 08121214 + .incbin "baserom.gba", 0x121214, 0x0000011 + +gUnk_08121225:: @ 08121225 + .incbin "baserom.gba", 0x121225, 0x000000F + +gUnk_08121234:: @ 08121234 + .incbin "baserom.gba", 0x121234, 0x0000001 + +gUnk_08121235:: @ 08121235 + .incbin "baserom.gba", 0x121235, 0x0000002 + +gUnk_08121237:: @ 08121237 + .incbin "baserom.gba", 0x121237, 0x000001B + +gUnk_08121252:: @ 08121252 + .incbin "baserom.gba", 0x121252, 0x0000011 + +gUnk_08121263:: @ 08121263 + .incbin "baserom.gba", 0x121263, 0x000001D + +gUnk_08121280:: @ 08121280 + .incbin "baserom.gba", 0x121280, 0x0000011 + +gUnk_08121291:: @ 08121291 + .incbin "baserom.gba", 0x121291, 0x0000009 + +gUnk_0812129A:: @ 0812129A + .incbin "baserom.gba", 0x12129A, 0x0000009 + +gUnk_081212A3:: @ 081212A3 + .incbin "baserom.gba", 0x1212A3, 0x0000009 + +gUnk_081212AC:: @ 081212AC + .incbin "baserom.gba", 0x1212AC, 0x0000004 + +gUnk_081212B0:: @ 081212B0 + .incbin "baserom.gba", 0x1212B0, 0x0000004 + +gUnk_081212B4:: @ 081212B4 + .incbin "baserom.gba", 0x1212B4, 0x0000004 + +gUnk_081212B8:: @ 081212B8 + .incbin "baserom.gba", 0x1212B8, 0x0000048 + +gUnk_08121300:: @ 08121300 + .incbin "baserom.gba", 0x121300, 0x0000014 + +gUnk_08121314:: @ 08121314 + .incbin "baserom.gba", 0x121314, 0x0000004 + +gUnk_08121318:: @ 08121318 + .incbin "baserom.gba", 0x121318, 0x0000004 + +gUnk_0812131C:: @ 0812131C + .incbin "baserom.gba", 0x12131C, 0x0000020 + +gUnk_0812133C:: @ 0812133C + .incbin "baserom.gba", 0x12133C, 0x000001C + +gUnk_08121358:: @ 08121358 + .incbin "baserom.gba", 0x121358, 0x0000010 + +gUnk_08121368:: @ 08121368 + .incbin "baserom.gba", 0x121368, 0x0000018 + +gUnk_08121380:: @ 08121380 + .incbin "baserom.gba", 0x121380, 0x0000003 + +gUnk_08121383:: @ 08121383 + .incbin "baserom.gba", 0x121383, 0x0000011 + +gUnk_08121394:: @ 08121394 + .incbin "baserom.gba", 0x121394, 0x0000024 + +gUnk_081213B8:: @ 081213B8 + .incbin "baserom.gba", 0x1213B8, 0x000000C + +gUnk_081213C4:: @ 081213C4 + .incbin "baserom.gba", 0x1213C4, 0x000000C + +gUnk_081213D0:: @ 081213D0 + .incbin "baserom.gba", 0x1213D0, 0x000000C + +gUnk_081213DC:: @ 081213DC + .incbin "baserom.gba", 0x1213DC, 0x0000018 + +gUnk_081213F4:: @ 081213F4 + .incbin "baserom.gba", 0x1213F4, 0x0000008 + +gUnk_081213FC:: @ 081213FC + .incbin "baserom.gba", 0x1213FC, 0x0000009 + +gUnk_08121405:: @ 08121405 + .incbin "baserom.gba", 0x121405, 0x0000008 + +gUnk_0812140D:: @ 0812140D + .incbin "baserom.gba", 0x12140D, 0x000000A + +gUnk_08121417:: @ 08121417 + .incbin "baserom.gba", 0x121417, 0x0000007 + +gUnk_0812141E:: @ 0812141E + .incbin "baserom.gba", 0x12141E, 0x0000004 + +gUnk_08121422:: @ 08121422 + .incbin "baserom.gba", 0x121422, 0x000000E + +gUnk_08121430:: @ 08121430 + .incbin "baserom.gba", 0x121430, 0x0000010 + +gUnk_08121440:: @ 08121440 + .incbin "baserom.gba", 0x121440, 0x000000C + +gUnk_0812144C:: @ 0812144C + .incbin "baserom.gba", 0x12144C, 0x0000028 + +gUnk_08121474:: @ 08121474 + .incbin "baserom.gba", 0x121474, 0x000000C + +gUnk_08121480:: @ 08121480 + .incbin "baserom.gba", 0x121480, 0x0000008 + +gUnk_08121488:: @ 08121488 + .incbin "baserom.gba", 0x121488, 0x0000014 + +gUnk_0812149C:: @ 0812149C + .incbin "baserom.gba", 0x12149C, 0x0000004 + +gUnk_081214A0:: @ 081214A0 + .incbin "baserom.gba", 0x1214A0, 0x0000004 + +gUnk_081214A4:: @ 081214A4 + .incbin "baserom.gba", 0x1214A4, 0x0000011 + +gUnk_081214B5:: @ 081214B5 + .incbin "baserom.gba", 0x1214B5, 0x0000013 + +gUnk_081214C8:: @ 081214C8 + .incbin "baserom.gba", 0x1214C8, 0x0000010 + +gUnk_081214D8:: @ 081214D8 + .incbin "baserom.gba", 0x1214D8, 0x000001C + +gUnk_081214F4:: @ 081214F4 + .incbin "baserom.gba", 0x1214F4, 0x0000008 + +gUnk_081214FC:: @ 081214FC + .incbin "baserom.gba", 0x1214FC, 0x0000010 + +gUnk_0812150C:: @ 0812150C + .incbin "baserom.gba", 0x12150C, 0x0000001 + +gUnk_0812150D:: @ 0812150D + .incbin "baserom.gba", 0x12150D, 0x0000005 + +gUnk_08121512:: @ 08121512 + .incbin "baserom.gba", 0x121512, 0x0000002 + +gUnk_08121514:: @ 08121514 + .incbin "baserom.gba", 0x121514, 0x0000007 + +gUnk_0812151B:: @ 0812151B + .incbin "baserom.gba", 0x12151B, 0x000001D + +gUnk_08121538:: @ 08121538 + .incbin "baserom.gba", 0x121538, 0x0000024 + +gUnk_0812155C:: @ 0812155C + .incbin "baserom.gba", 0x12155C, 0x0000024 + +gUnk_08121580:: @ 08121580 + .incbin "baserom.gba", 0x121580, 0x0000024 + +gUnk_081215A4:: @ 081215A4 + .incbin "baserom.gba", 0x1215A4, 0x0000004 + +gUnk_081215A8:: @ 081215A8 + .incbin "baserom.gba", 0x1215A8, 0x0000004 + +gUnk_081215AC:: @ 081215AC + .incbin "baserom.gba", 0x1215AC, 0x0000004 + +gUnk_081215B0:: @ 081215B0 + .incbin "baserom.gba", 0x1215B0, 0x0000004 + +gUnk_081215B4:: @ 081215B4 + .incbin "baserom.gba", 0x1215B4, 0x0000034 + +gUnk_081215E8:: @ 081215E8 + .incbin "baserom.gba", 0x1215E8, 0x000002A + +gUnk_08121612:: @ 08121612 + .incbin "baserom.gba", 0x121612, 0x0000002 + +gUnk_08121614:: @ 08121614 + .incbin "baserom.gba", 0x121614, 0x000000D + +gUnk_08121621:: @ 08121621 + .incbin "baserom.gba", 0x121621, 0x0000017 + +gUnk_08121638:: @ 08121638 + .incbin "baserom.gba", 0x121638, 0x0000008 + +gUnk_08121640:: @ 08121640 + .incbin "baserom.gba", 0x121640, 0x0000008 + +gUnk_08121648:: @ 08121648 + .incbin "baserom.gba", 0x121648, 0x0000020 + +gUnk_08121668:: @ 08121668 + .incbin "baserom.gba", 0x121668, 0x0000008 + +gUnk_08121670:: @ 08121670 + .incbin "baserom.gba", 0x121670, 0x0000008 + +gUnk_08121678:: @ 08121678 + .incbin "baserom.gba", 0x121678, 0x0000008 + +gUnk_08121680:: @ 08121680 + .incbin "baserom.gba", 0x121680, 0x0000008 + +gUnk_08121688:: @ 08121688 + .incbin "baserom.gba", 0x121688, 0x000002C + +gUnk_081216B4:: @ 081216B4 + .incbin "baserom.gba", 0x1216B4, 0x0000008 + +gUnk_081216BC:: @ 081216BC + .incbin "baserom.gba", 0x1216BC, 0x000000C + +gUnk_081216C8:: @ 081216C8 + .incbin "baserom.gba", 0x1216C8, 0x0000014 + +gUnk_081216DC:: @ 081216DC + .incbin "baserom.gba", 0x1216DC, 0x0000028 + +gUnk_08121704:: @ 08121704 + .incbin "baserom.gba", 0x121704, 0x0000010 + +gUnk_08121714:: @ 08121714 + .incbin "baserom.gba", 0x121714, 0x0000002 + +gUnk_08121716:: @ 08121716 + .incbin "baserom.gba", 0x121716, 0x0000001 + +gUnk_08121717:: @ 08121717 + .incbin "baserom.gba", 0x121717, 0x0000002 + +gUnk_08121719:: @ 08121719 + .incbin "baserom.gba", 0x121719, 0x0000007 + +gUnk_08121720:: @ 08121720 + .incbin "baserom.gba", 0x121720, 0x000000C + +gUnk_0812172C:: @ 0812172C + .incbin "baserom.gba", 0x12172C, 0x000000C + +gUnk_08121738:: @ 08121738 + .incbin "baserom.gba", 0x121738, 0x0000018 + +gUnk_08121750:: @ 08121750 + .incbin "baserom.gba", 0x121750, 0x000001A + +gUnk_0812176A:: @ 0812176A + .incbin "baserom.gba", 0x12176A, 0x000001A + +gUnk_08121784:: @ 08121784 + .incbin "baserom.gba", 0x121784, 0x0000014 + +gUnk_08121798:: @ 08121798 + .incbin "baserom.gba", 0x121798, 0x000000C + +gUnk_081217A4:: @ 081217A4 + .incbin "baserom.gba", 0x1217A4, 0x0000004 + +gUnk_081217A8:: @ 081217A8 + .incbin "baserom.gba", 0x1217A8, 0x0000008 + +gUnk_081217B0:: @ 081217B0 + .incbin "baserom.gba", 0x1217B0, 0x0000008 + +gUnk_081217B8:: @ 081217B8 + .incbin "baserom.gba", 0x1217B8, 0x0000004 + +gUnk_081217BC:: @ 081217BC + .incbin "baserom.gba", 0x1217BC, 0x0000014 + +gUnk_081217D0:: @ 081217D0 + .incbin "baserom.gba", 0x1217D0, 0x0000008 + +gUnk_081217D8:: @ 081217D8 + .incbin "baserom.gba", 0x1217D8, 0x0000008 + +gUnk_081217E0:: @ 081217E0 + .incbin "baserom.gba", 0x1217E0, 0x000003A + +gUnk_0812181A:: @ 0812181A + .incbin "baserom.gba", 0x12181A, 0x0000001 + +gUnk_0812181B:: @ 0812181B + .incbin "baserom.gba", 0x12181B, 0x0000001 + +gUnk_0812181C:: @ 0812181C + .incbin "baserom.gba", 0x12181C, 0x0000001 + +gUnk_0812181D:: @ 0812181D + .incbin "baserom.gba", 0x12181D, 0x0000047 + +gUnk_08121864:: @ 08121864 + .incbin "baserom.gba", 0x121864, 0x0000084 + +gUnk_081218E8:: @ 081218E8 + .incbin "baserom.gba", 0x1218E8, 0x0000031 + +gUnk_08121919:: @ 08121919 + .incbin "baserom.gba", 0x121919, 0x0000001 + +gUnk_0812191A:: @ 0812191A + .incbin "baserom.gba", 0x12191A, 0x0000002 + +gUnk_0812191C:: @ 0812191C + .incbin "baserom.gba", 0x12191C, 0x0000001 + +gUnk_0812191D:: @ 0812191D + .incbin "baserom.gba", 0x12191D, 0x0000001 + +gUnk_0812191E:: @ 0812191E + .incbin "baserom.gba", 0x12191E, 0x0000001 + +gUnk_0812191F:: @ 0812191F + .incbin "baserom.gba", 0x12191F, 0x0000001 + +gUnk_08121920:: @ 08121920 + .incbin "baserom.gba", 0x121920, 0x0000001 + +gUnk_08121921:: @ 08121921 + .incbin "baserom.gba", 0x121921, 0x000004B + +gUnk_0812196C:: @ 0812196C + .incbin "baserom.gba", 0x12196C, 0x0000084 + +gUnk_081219F0:: @ 081219F0 + .incbin "baserom.gba", 0x1219F0, 0x000000C + +gUnk_081219FC:: @ 081219FC + .incbin "baserom.gba", 0x1219FC, 0x0000020 + +gUnk_08121A1C:: @ 08121A1C + .incbin "baserom.gba", 0x121A1C, 0x0000002 + +gUnk_08121A1E:: @ 08121A1E + .incbin "baserom.gba", 0x121A1E, 0x0000001 + +gUnk_08121A1F:: @ 08121A1F + .incbin "baserom.gba", 0x121A1F, 0x0000001 + +gUnk_08121A20:: @ 08121A20 + .incbin "baserom.gba", 0x121A20, 0x000000D + +gUnk_08121A2D:: @ 08121A2D + .incbin "baserom.gba", 0x121A2D, 0x000003D + +gUnk_08121A6A:: @ 08121A6A + .incbin "baserom.gba", 0x121A6A, 0x000003D + +gUnk_08121AA7:: @ 08121AA7 + .incbin "baserom.gba", 0x121AA7, 0x0000001 + +gUnk_08121AA8:: @ 08121AA8 + .incbin "baserom.gba", 0x121AA8, 0x000003C + +gUnk_08121AE4:: @ 08121AE4 + .incbin "baserom.gba", 0x121AE4, 0x0000010 + +gUnk_08121AF4:: @ 08121AF4 + .incbin "baserom.gba", 0x121AF4, 0x0000010 + +gUnk_08121B04:: @ 08121B04 + .incbin "baserom.gba", 0x121B04, 0x0000010 + +gUnk_08121B14:: @ 08121B14 + .incbin "baserom.gba", 0x121B14, 0x000000B + +gUnk_08121B1F:: @ 08121B1F + .incbin "baserom.gba", 0x121B1F, 0x0000004 + +gUnk_08121B23:: @ 08121B23 + .incbin "baserom.gba", 0x121B23, 0x0000001 + +gUnk_08121B24:: @ 08121B24 + .incbin "baserom.gba", 0x121B24, 0x0000024 + +gUnk_08121B48:: @ 08121B48 + .incbin "baserom.gba", 0x121B48, 0x0000044 + +gUnk_08121B8C:: @ 08121B8C + .incbin "baserom.gba", 0x121B8C, 0x0000008 + +gUnk_08121B94:: @ 08121B94 + .incbin "baserom.gba", 0x121B94, 0x000003C + +gUnk_08121BD0:: @ 08121BD0 + .incbin "baserom.gba", 0x121BD0, 0x0000008 + +gUnk_08121BD8:: @ 08121BD8 + .incbin "baserom.gba", 0x121BD8, 0x0000008 + +gUnk_08121BE0:: @ 08121BE0 + .incbin "baserom.gba", 0x121BE0, 0x0000018 + +gUnk_08121BF8:: @ 08121BF8 + .incbin "baserom.gba", 0x121BF8, 0x0000022 + +gUnk_08121C1A:: @ 08121C1A + .incbin "baserom.gba", 0x121C1A, 0x000000B + +gUnk_08121C25:: @ 08121C25 + .incbin "baserom.gba", 0x121C25, 0x000000F + +gUnk_08121C34:: @ 08121C34 + .incbin "baserom.gba", 0x121C34, 0x000000C + +gUnk_08121C40:: @ 08121C40 + .incbin "baserom.gba", 0x121C40, 0x0000008 + +gUnk_08121C48:: @ 08121C48 + .incbin "baserom.gba", 0x121C48, 0x0000010 + +gUnk_08121C58:: @ 08121C58 + .incbin "baserom.gba", 0x121C58, 0x000000C + +gUnk_08121C64:: @ 08121C64 + .incbin "baserom.gba", 0x121C64, 0x0000068 + +gUnk_08121CCC:: @ 08121CCC + .incbin "baserom.gba", 0x121CCC, 0x0000008 + +gUnk_08121CD4:: @ 08121CD4 + .incbin "baserom.gba", 0x121CD4, 0x000003C + +gUnk_08121D10:: @ 08121D10 + .incbin "baserom.gba", 0x121D10, 0x0000008 + +gUnk_08121D18:: @ 08121D18 + .incbin "baserom.gba", 0x121D18, 0x0000020 + +gUnk_08121D38:: @ 08121D38 + .incbin "baserom.gba", 0x121D38, 0x0000010 + +gUnk_08121D48:: @ 08121D48 + .incbin "baserom.gba", 0x121D48, 0x000000C + +gUnk_08121D54:: @ 08121D54 + .incbin "baserom.gba", 0x121D54, 0x00000BD + +gUnk_08121E11:: @ 08121E11 + .incbin "baserom.gba", 0x121E11, 0x0000013 + +gUnk_08121E24:: @ 08121E24 + .incbin "baserom.gba", 0x121E24, 0x0000005 + +gUnk_08121E29:: @ 08121E29 + .incbin "baserom.gba", 0x121E29, 0x0000008 + +gUnk_08121E31:: @ 08121E31 + .incbin "baserom.gba", 0x121E31, 0x000001F + +gUnk_08121E50:: @ 08121E50 + .incbin "baserom.gba", 0x121E50, 0x000000C + +gUnk_08121E5C:: @ 08121E5C + .incbin "baserom.gba", 0x121E5C, 0x000002C + +gUnk_08121E88:: @ 08121E88 + .incbin "baserom.gba", 0x121E88, 0x0000010 + +gUnk_08121E98:: @ 08121E98 + .incbin "baserom.gba", 0x121E98, 0x0000008 + +gUnk_08121EA0:: @ 08121EA0 + .incbin "baserom.gba", 0x121EA0, 0x0000004 + +gUnk_08121EA4:: @ 08121EA4 + .incbin "baserom.gba", 0x121EA4, 0x000000C + +gUnk_08121EB0:: @ 08121EB0 + .incbin "baserom.gba", 0x121EB0, 0x0000003 + +gUnk_08121EB3:: @ 08121EB3 + .incbin "baserom.gba", 0x121EB3, 0x0000005 + +gUnk_08121EB8:: @ 08121EB8 + .incbin "baserom.gba", 0x121EB8, 0x0000020 + +gUnk_08121ED8:: @ 08121ED8 + .incbin "baserom.gba", 0x121ED8, 0x000000C + +gUnk_08121EE4:: @ 08121EE4 + .incbin "baserom.gba", 0x121EE4, 0x000000C + +gUnk_08121EF0:: @ 08121EF0 + .incbin "baserom.gba", 0x121EF0, 0x0000008 + +gUnk_08121EF8:: @ 08121EF8 + .incbin "baserom.gba", 0x121EF8, 0x0000036 + +gUnk_08121F2E:: @ 08121F2E + .incbin "baserom.gba", 0x121F2E, 0x00000D2 + +gUnk_08122000:: @ 08122000 + .incbin "baserom.gba", 0x122000, 0x000001C + +gUnk_0812201C:: @ 0812201C + .incbin "baserom.gba", 0x12201C, 0x0000016 + +gUnk_08122032:: @ 08122032 + .incbin "baserom.gba", 0x122032, 0x00000F6 + +gUnk_08122128:: @ 08122128 + .incbin "baserom.gba", 0x122128, 0x000000A + +gUnk_08122132:: @ 08122132 + .incbin "baserom.gba", 0x122132, 0x0000066 + +gUnk_08122198:: @ 08122198 + .incbin "baserom.gba", 0x122198, 0x0000010 + +gUnk_081221A8:: @ 081221A8 + .incbin "baserom.gba", 0x1221A8, 0x0000010 + +gUnk_081221B8:: @ 081221B8 + .incbin "baserom.gba", 0x1221B8, 0x0000010 + +gUnk_081221C8:: @ 081221C8 + .incbin "baserom.gba", 0x1221C8, 0x0000010 + +gUnk_081221D8:: @ 081221D8 + .incbin "baserom.gba", 0x1221D8, 0x0000010 + +gUnk_081221E8:: @ 081221E8 + .incbin "baserom.gba", 0x1221E8, 0x0000010 + +gUnk_081221F8:: @ 081221F8 + .incbin "baserom.gba", 0x1221F8, 0x0000010 + +gUnk_08122208:: @ 08122208 + .incbin "baserom.gba", 0x122208, 0x0000010 + +gUnk_08122218:: @ 08122218 + .incbin "baserom.gba", 0x122218, 0x0000008 + +gUnk_08122220:: @ 08122220 + .incbin "baserom.gba", 0x122220, 0x0000024 + +gUnk_08122244:: @ 08122244 + .incbin "baserom.gba", 0x122244, 0x0000010 + +gUnk_08122254:: @ 08122254 + .incbin "baserom.gba", 0x122254, 0x0000008 + +gUnk_0812225C:: @ 0812225C + .incbin "baserom.gba", 0x12225C, 0x0000008 + +gUnk_08122264:: @ 08122264 + .incbin "baserom.gba", 0x122264, 0x0000004 + +gUnk_08122268:: @ 08122268 + .incbin "baserom.gba", 0x122268, 0x0000004 + +gUnk_0812226C:: @ 0812226C + .incbin "baserom.gba", 0x12226C, 0x000000C + +gUnk_08122278:: @ 08122278 + .incbin "baserom.gba", 0x122278, 0x0000008 + +gUnk_08122280:: @ 08122280 + .incbin "baserom.gba", 0x122280, 0x0000008 + +gUnk_08122288:: @ 08122288 + .incbin "baserom.gba", 0x122288, 0x000000C + +gUnk_08122294:: @ 08122294 + .incbin "baserom.gba", 0x122294, 0x000000C + +gUnk_081222A0:: @ 081222A0 + .incbin "baserom.gba", 0x1222A0, 0x0000008 + +gUnk_081222A8:: @ 081222A8 + .incbin "baserom.gba", 0x1222A8, 0x0000008 + +gUnk_081222B0:: @ 081222B0 + .incbin "baserom.gba", 0x1222B0, 0x0000008 + +gUnk_081222B8:: @ 081222B8 + .incbin "baserom.gba", 0x1222B8, 0x0000008 + +gUnk_081222C0:: @ 081222C0 + .incbin "baserom.gba", 0x1222C0, 0x0000004 + +gUnk_081222C4:: @ 081222C4 + .incbin "baserom.gba", 0x1222C4, 0x0000004 + +gUnk_081222C8:: @ 081222C8 + .incbin "baserom.gba", 0x1222C8, 0x0000004 + +gUnk_081222CC:: @ 081222CC + .incbin "baserom.gba", 0x1222CC, 0x0000004 + +gUnk_081222D0:: @ 081222D0 + .incbin "baserom.gba", 0x1222D0, 0x0000004 + +gUnk_081222D4:: @ 081222D4 + .incbin "baserom.gba", 0x1222D4, 0x0000004 + +gUnk_081222D8:: @ 081222D8 + .incbin "baserom.gba", 0x1222D8, 0x0000004 + +gUnk_081222DC:: @ 081222DC + .incbin "baserom.gba", 0x1222DC, 0x0000004 + +gUnk_081222E0:: @ 081222E0 + .incbin "baserom.gba", 0x1222E0, 0x0000004 + +gUnk_081222E4:: @ 081222E4 + .incbin "baserom.gba", 0x1222E4, 0x0000004 + +gUnk_081222E8:: @ 081222E8 + .incbin "baserom.gba", 0x1222E8, 0x0000004 + +gUnk_081222EC:: @ 081222EC + .incbin "baserom.gba", 0x1222EC, 0x0000004 + +gUnk_081222F0:: @ 081222F0 + .incbin "baserom.gba", 0x1222F0, 0x0000004 + +gUnk_081222F4:: @ 081222F4 + .incbin "baserom.gba", 0x1222F4, 0x0000004 + +gUnk_081222F8:: @ 081222F8 + .incbin "baserom.gba", 0x1222F8, 0x0000004 + +gUnk_081222FC:: @ 081222FC + .incbin "baserom.gba", 0x1222FC, 0x0000004 + +gUnk_08122300:: @ 08122300 + .incbin "baserom.gba", 0x122300, 0x0000004 + +gUnk_08122304:: @ 08122304 + .incbin "baserom.gba", 0x122304, 0x0000004 + +gUnk_08122308:: @ 08122308 + .incbin "baserom.gba", 0x122308, 0x0000004 + +gUnk_0812230C:: @ 0812230C + .incbin "baserom.gba", 0x12230C, 0x0000004 + +gUnk_08122310:: @ 08122310 + .incbin "baserom.gba", 0x122310, 0x0000004 + +gUnk_08122314:: @ 08122314 + .incbin "baserom.gba", 0x122314, 0x0000004 + +gUnk_08122318:: @ 08122318 + .incbin "baserom.gba", 0x122318, 0x0000003 + +gUnk_0812231B:: @ 0812231B + .incbin "baserom.gba", 0x12231B, 0x0000001 + +gUnk_0812231C:: @ 0812231C + .incbin "baserom.gba", 0x12231C, 0x0000004 + +gUnk_08122320:: @ 08122320 + .incbin "baserom.gba", 0x122320, 0x0000004 + +gUnk_08122324:: @ 08122324 + .incbin "baserom.gba", 0x122324, 0x0000003 + +gUnk_08122327:: @ 08122327 + .incbin "baserom.gba", 0x122327, 0x0000001 + +gUnk_08122328:: @ 08122328 + .incbin "baserom.gba", 0x122328, 0x0000004 + +gUnk_0812232C:: @ 0812232C + .incbin "baserom.gba", 0x12232C, 0x0000004 + +gUnk_08122330:: @ 08122330 + .incbin "baserom.gba", 0x122330, 0x0000004 + +gUnk_08122334:: @ 08122334 + .incbin "baserom.gba", 0x122334, 0x0000011 + +gUnk_08122345:: @ 08122345 + .incbin "baserom.gba", 0x122345, 0x0000063 + +gUnk_081223A8:: @ 081223A8 + .incbin "baserom.gba", 0x1223A8, 0x0000020 + +gUnk_081223C8:: @ 081223C8 + .incbin "baserom.gba", 0x1223C8, 0x0000008 + +gUnk_081223D0:: @ 081223D0 + .incbin "baserom.gba", 0x1223D0, 0x0000008 + +gUnk_081223D8:: @ 081223D8 + .incbin "baserom.gba", 0x1223D8, 0x0000010 + +gUnk_081223E8:: @ 081223E8 + .incbin "baserom.gba", 0x1223E8, 0x000001A + +gUnk_08122402:: @ 08122402 + .incbin "baserom.gba", 0x122402, 0x000001A + +gUnk_0812241C:: @ 0812241C + .incbin "baserom.gba", 0x12241C, 0x0000011 + +gUnk_0812242D:: @ 0812242D + .incbin "baserom.gba", 0x12242D, 0x0000009 + +gUnk_08122436:: @ 08122436 + .incbin "baserom.gba", 0x122436, 0x000001A + +gUnk_08122450:: @ 08122450 + .incbin "baserom.gba", 0x122450, 0x0000009 + +gUnk_08122459:: @ 08122459 + .incbin "baserom.gba", 0x122459, 0x0000009 + +gUnk_08122462:: @ 08122462 + .incbin "baserom.gba", 0x122462, 0x0000009 + +gUnk_0812246B:: @ 0812246B + .incbin "baserom.gba", 0x12246B, 0x0000009 + +gUnk_08122474:: @ 08122474 + .incbin "baserom.gba", 0x122474, 0x0000015 + +gUnk_08122489:: @ 08122489 + .incbin "baserom.gba", 0x122489, 0x0000015 + +gUnk_0812249E:: @ 0812249E + .incbin "baserom.gba", 0x12249E, 0x0000015 + +gUnk_081224B3:: @ 081224B3 + .incbin "baserom.gba", 0x1224B3, 0x0000015 + +gUnk_081224C8:: @ 081224C8 + .incbin "baserom.gba", 0x1224C8, 0x0000019 + +gUnk_081224E1:: @ 081224E1 + .incbin "baserom.gba", 0x1224E1, 0x0000018 + +gUnk_081224F9:: @ 081224F9 + .incbin "baserom.gba", 0x1224F9, 0x0000018 + +gUnk_08122511:: @ 08122511 + .incbin "baserom.gba", 0x122511, 0x0000018 + +gUnk_08122529:: @ 08122529 + .incbin "baserom.gba", 0x122529, 0x0000005 + +gUnk_0812252E:: @ 0812252E + .incbin "baserom.gba", 0x12252E, 0x0000005 + +gUnk_08122533:: @ 08122533 + .incbin "baserom.gba", 0x122533, 0x0000005 + +gUnk_08122538:: @ 08122538 + .incbin "baserom.gba", 0x122538, 0x0000008 + +gUnk_08122540:: @ 08122540 + .incbin "baserom.gba", 0x122540, 0x0000050 + +gUnk_08122590:: @ 08122590 + .incbin "baserom.gba", 0x122590, 0x0000008 + +gUnk_08122598:: @ 08122598 + .incbin "baserom.gba", 0x122598, 0x0000008 + +gUnk_081225A0:: @ 081225A0 + .incbin "baserom.gba", 0x1225A0, 0x000001C + +gUnk_081225BC:: @ 081225BC + .incbin "baserom.gba", 0x1225BC, 0x000001C + +gUnk_081225D8:: @ 081225D8 + .incbin "baserom.gba", 0x1225D8, 0x000001C + +gUnk_081225F4:: @ 081225F4 + .incbin "baserom.gba", 0x1225F4, 0x0000010 + +gUnk_08122604:: @ 08122604 + .incbin "baserom.gba", 0x122604, 0x0000008 + +gUnk_0812260C:: @ 0812260C + .incbin "baserom.gba", 0x12260C, 0x0000010 + +gUnk_0812261C:: @ 0812261C + .incbin "baserom.gba", 0x12261C, 0x000000E + +gUnk_0812262A:: @ 0812262A + .incbin "baserom.gba", 0x12262A, 0x0000007 + +gUnk_08122631:: @ 08122631 + .incbin "baserom.gba", 0x122631, 0x0000007 + +gUnk_08122638:: @ 08122638 + .incbin "baserom.gba", 0x122638, 0x000000C + +gUnk_08122644:: @ 08122644 + .incbin "baserom.gba", 0x122644, 0x000000C + +gUnk_08122650:: @ 08122650 + .incbin "baserom.gba", 0x122650, 0x0000020 + +gUnk_08122670:: @ 08122670 + .incbin "baserom.gba", 0x122670, 0x0000014 + +gUnk_08122684:: @ 08122684 + .incbin "baserom.gba", 0x122684, 0x0000014 + +gUnk_08122698:: @ 08122698 + .incbin "baserom.gba", 0x122698, 0x000000C + +gUnk_081226A4:: @ 081226A4 + .incbin "baserom.gba", 0x1226A4, 0x0000004 + +gUnk_081226A8:: @ 081226A8 + .incbin "baserom.gba", 0x1226A8, 0x0000004 + +gUnk_081226AC:: @ 081226AC + .incbin "baserom.gba", 0x1226AC, 0x0000091 + +gUnk_0812273D:: @ 0812273D + .incbin "baserom.gba", 0x12273D, 0x0000005 + +gUnk_08122742:: @ 08122742 + .incbin "baserom.gba", 0x122742, 0x0000011 + +gUnk_08122753:: @ 08122753 + .incbin "baserom.gba", 0x122753, 0x0000011 + +gUnk_08122764:: @ 08122764 + .incbin "baserom.gba", 0x122764, 0x000001C + +gUnk_08122780:: @ 08122780 + .incbin "baserom.gba", 0x122780, 0x0000008 + +gUnk_08122788:: @ 08122788 + .incbin "baserom.gba", 0x122788, 0x000000C + +gUnk_08122794:: @ 08122794 + .incbin "baserom.gba", 0x122794, 0x0000008 + +gUnk_0812279C:: @ 0812279C + .incbin "baserom.gba", 0x12279C, 0x0000008 + +gUnk_081227A4:: @ 081227A4 + .incbin "baserom.gba", 0x1227A4, 0x0000010 + +gUnk_081227B4:: @ 081227B4 + .incbin "baserom.gba", 0x1227B4, 0x000000C + +gUnk_081227C0:: @ 081227C0 + .incbin "baserom.gba", 0x1227C0, 0x000000C + +gUnk_081227CC:: @ 081227CC + .incbin "baserom.gba", 0x1227CC, 0x0000020 + +gUnk_081227EC:: @ 081227EC + .incbin "baserom.gba", 0x1227EC, 0x0000008 + +gUnk_081227F4:: @ 081227F4 + .incbin "baserom.gba", 0x1227F4, 0x000000C + +gUnk_08122800:: @ 08122800 + .incbin "baserom.gba", 0x122800, 0x0000019 + +gUnk_08122819:: @ 08122819 + .incbin "baserom.gba", 0x122819, 0x000001B + +gUnk_08122834:: @ 08122834 + .incbin "baserom.gba", 0x122834, 0x0000008 + +gUnk_0812283C:: @ 0812283C + .incbin "baserom.gba", 0x12283C, 0x0000014 + +gUnk_08122850:: @ 08122850 + .incbin "baserom.gba", 0x122850, 0x0000012 + +gUnk_08122862:: @ 08122862 + .incbin "baserom.gba", 0x122862, 0x0000012 + +gUnk_08122874:: @ 08122874 + .incbin "baserom.gba", 0x122874, 0x0000012 + +gUnk_08122886:: @ 08122886 + .incbin "baserom.gba", 0x122886, 0x0000012 + +gUnk_08122898:: @ 08122898 + .incbin "baserom.gba", 0x122898, 0x0000010 + +gUnk_081228A8:: @ 081228A8 + .incbin "baserom.gba", 0x1228A8, 0x0000008 + +gUnk_081228B0:: @ 081228B0 + .incbin "baserom.gba", 0x1228B0, 0x0000008 + +gUnk_081228B8:: @ 081228B8 + .incbin "baserom.gba", 0x1228B8, 0x0000010 + +gUnk_081228C8:: @ 081228C8 + .incbin "baserom.gba", 0x1228C8, 0x0000008 + +gUnk_081228D0:: @ 081228D0 + .incbin "baserom.gba", 0x1228D0, 0x0000008 + +gUnk_081228D8:: @ 081228D8 + .incbin "baserom.gba", 0x1228D8, 0x0000008 + +gUnk_081228E0:: @ 081228E0 + .incbin "baserom.gba", 0x1228E0, 0x0000008 + +gUnk_081228E8:: @ 081228E8 + .incbin "baserom.gba", 0x1228E8, 0x0000008 + +gUnk_081228F0:: @ 081228F0 + .incbin "baserom.gba", 0x1228F0, 0x0000008 + +gUnk_081228F8:: @ 081228F8 + .incbin "baserom.gba", 0x1228F8, 0x0000026 + +gUnk_0812291E:: @ 0812291E + .incbin "baserom.gba", 0x12291E, 0x0000026 + +gUnk_08122944:: @ 08122944 + .incbin "baserom.gba", 0x122944, 0x000000C + +gUnk_08122950:: @ 08122950 + .incbin "baserom.gba", 0x122950, 0x000000C + +gUnk_0812295C:: @ 0812295C + .incbin "baserom.gba", 0x12295C, 0x0000008 + +gUnk_08122964:: @ 08122964 + .incbin "baserom.gba", 0x122964, 0x0000008 + +gUnk_0812296C:: @ 0812296C + .incbin "baserom.gba", 0x12296C, 0x0000010 + +gUnk_0812297C:: @ 0812297C + .incbin "baserom.gba", 0x12297C, 0x000000C + +gUnk_08122988:: @ 08122988 + .incbin "baserom.gba", 0x122988, 0x000001C + +gUnk_081229A4:: @ 081229A4 + .incbin "baserom.gba", 0x1229A4, 0x0000010 + +gUnk_081229B4:: @ 081229B4 + .incbin "baserom.gba", 0x1229B4, 0x0000008 + +gUnk_081229BC:: @ 081229BC + .incbin "baserom.gba", 0x1229BC, 0x0000014 + +gUnk_081229D0:: @ 081229D0 + .incbin "baserom.gba", 0x1229D0, 0x0000020 + +gUnk_081229F0:: @ 081229F0 + .incbin "baserom.gba", 0x1229F0, 0x0000020 + +gUnk_08122A10:: @ 08122A10 + .incbin "baserom.gba", 0x122A10, 0x0000008 + +gUnk_08122A18:: @ 08122A18 + .incbin "baserom.gba", 0x122A18, 0x0000008 + +gUnk_08122A20:: @ 08122A20 + .incbin "baserom.gba", 0x122A20, 0x0000008 + +gUnk_08122A28:: @ 08122A28 + .incbin "baserom.gba", 0x122A28, 0x000000C + +gUnk_08122A34:: @ 08122A34 + .incbin "baserom.gba", 0x122A34, 0x0000017 + +gUnk_08122A4B:: @ 08122A4B + .incbin "baserom.gba", 0x122A4B, 0x0000095 + +gUnk_08122AE0:: @ 08122AE0 + .incbin "baserom.gba", 0x122AE0, 0x0000008 + +gUnk_08122AE8:: @ 08122AE8 + .incbin "baserom.gba", 0x122AE8, 0x0000010 + +gUnk_08122AF8:: @ 08122AF8 + .incbin "baserom.gba", 0x122AF8, 0x0000008 + +gUnk_08122B00:: @ 08122B00 + .incbin "baserom.gba", 0x122B00, 0x000000E + +gUnk_08122B0E:: @ 08122B0E + .incbin "baserom.gba", 0x122B0E, 0x0000010 + +gUnk_08122B1E:: @ 08122B1E + .incbin "baserom.gba", 0x122B1E, 0x0000010 + +gUnk_08122B2E:: @ 08122B2E + .incbin "baserom.gba", 0x122B2E, 0x000000E + +gUnk_08122B3C:: @ 08122B3C + .incbin "baserom.gba", 0x122B3C, 0x0000010 + +gUnk_08122B4C:: @ 08122B4C + .incbin "baserom.gba", 0x122B4C, 0x0000001 + +gUnk_08122B4D:: @ 08122B4D + .incbin "baserom.gba", 0x122B4D, 0x0000008 + +gUnk_08122B55:: @ 08122B55 + .incbin "baserom.gba", 0x122B55, 0x000000F + +gUnk_08122B64:: @ 08122B64 + .incbin "baserom.gba", 0x122B64, 0x000000C + +gUnk_08122B70:: @ 08122B70 + .incbin "baserom.gba", 0x122B70, 0x0000005 + +gUnk_08122B75:: @ 08122B75 + .incbin "baserom.gba", 0x122B75, 0x0000005 + +gUnk_08122B7A:: @ 08122B7A + .incbin "baserom.gba", 0x122B7A, 0x0000005 + +gUnk_08122B7F:: @ 08122B7F + .incbin "baserom.gba", 0x122B7F, 0x0000005 + +gUnk_08122B84:: @ 08122B84 + .incbin "baserom.gba", 0x122B84, 0x0000005 + +gUnk_08122B89:: @ 08122B89 + .incbin "baserom.gba", 0x122B89, 0x0000005 + +gUnk_08122B8E:: @ 08122B8E + .incbin "baserom.gba", 0x122B8E, 0x0000005 + +gUnk_08122B93:: @ 08122B93 + .incbin "baserom.gba", 0x122B93, 0x0000005 + +gUnk_08122B98:: @ 08122B98 + .incbin "baserom.gba", 0x122B98, 0x0000019 + +gUnk_08122BB1:: @ 08122BB1 + .incbin "baserom.gba", 0x122BB1, 0x0000017 + +gUnk_08122BC8:: @ 08122BC8 + .incbin "baserom.gba", 0x122BC8, 0x000002C + +gUnk_08122BF4:: @ 08122BF4 + .incbin "baserom.gba", 0x122BF4, 0x0000009 + +gUnk_08122BFD:: @ 08122BFD + .incbin "baserom.gba", 0x122BFD, 0x0000009 + +gUnk_08122C06:: @ 08122C06 + .incbin "baserom.gba", 0x122C06, 0x0000005 + +gUnk_08122C0B:: @ 08122C0B + .incbin "baserom.gba", 0x122C0B, 0x0000069 + +gUnk_08122C74:: @ 08122C74 + .incbin "baserom.gba", 0x122C74, 0x0000015 + +gUnk_08122C89:: @ 08122C89 + .incbin "baserom.gba", 0x122C89, 0x0000007 + +gUnk_08122C90:: @ 08122C90 + .incbin "baserom.gba", 0x122C90, 0x000001C + +gUnk_08122CAC:: @ 08122CAC + .incbin "baserom.gba", 0x122CAC, 0x0000009 + +gUnk_08122CB5:: @ 08122CB5 + .incbin "baserom.gba", 0x122CB5, 0x0000007 + +gUnk_08122CBC:: @ 08122CBC + .incbin "baserom.gba", 0x122CBC, 0x000000C + +gUnk_08122CC8:: @ 08122CC8 + .incbin "baserom.gba", 0x122CC8, 0x0000009 + +gUnk_08122CD1:: @ 08122CD1 + .incbin "baserom.gba", 0x122CD1, 0x0000005 + +gUnk_08122CD6:: @ 08122CD6 + .incbin "baserom.gba", 0x122CD6, 0x0000005 + +gUnk_08122CDB:: @ 08122CDB + .incbin "baserom.gba", 0x122CDB, 0x0000009 + +gUnk_08122CE4:: @ 08122CE4 + .incbin "baserom.gba", 0x122CE4, 0x0000014 + +gUnk_08122CF8:: @ 08122CF8 + .incbin "baserom.gba", 0x122CF8, 0x0000005 + +gUnk_08122CFD:: @ 08122CFD + .incbin "baserom.gba", 0x122CFD, 0x0000007 + +gUnk_08122D04:: @ 08122D04 + .incbin "baserom.gba", 0x122D04, 0x0000004 + +gUnk_08122D08:: @ 08122D08 + .incbin "baserom.gba", 0x122D08, 0x0000008 + +gUnk_08122D10:: @ 08122D10 + .incbin "baserom.gba", 0x122D10, 0x0000009 + +gUnk_08122D19:: @ 08122D19 + .incbin "baserom.gba", 0x122D19, 0x0000009 + +gUnk_08122D22:: @ 08122D22 + .incbin "baserom.gba", 0x122D22, 0x0000009 + +gUnk_08122D2B:: @ 08122D2B + .incbin "baserom.gba", 0x122D2B, 0x0000004 + +gUnk_08122D2F:: @ 08122D2F + .incbin "baserom.gba", 0x122D2F, 0x0000005 + +gUnk_08122D34:: @ 08122D34 + .incbin "baserom.gba", 0x122D34, 0x0000021 + +gUnk_08122D55:: @ 08122D55 + .incbin "baserom.gba", 0x122D55, 0x0000021 + +gUnk_08122D76:: @ 08122D76 + .incbin "baserom.gba", 0x122D76, 0x0000021 + +gUnk_08122D97:: @ 08122D97 + .incbin "baserom.gba", 0x122D97, 0x0000021 + +gUnk_08122DB8:: @ 08122DB8 + .incbin "baserom.gba", 0x122DB8, 0x000000D + +gUnk_08122DC5:: @ 08122DC5 + .incbin "baserom.gba", 0x122DC5, 0x000000D + +gUnk_08122DD2:: @ 08122DD2 + .incbin "baserom.gba", 0x122DD2, 0x000000D + +gUnk_08122DDF:: @ 08122DDF + .incbin "baserom.gba", 0x122DDF, 0x000000D + +gUnk_08122DEC:: @ 08122DEC + .incbin "baserom.gba", 0x122DEC, 0x0000019 + +gUnk_08122E05:: @ 08122E05 + .incbin "baserom.gba", 0x122E05, 0x0000019 + +gUnk_08122E1E:: @ 08122E1E + .incbin "baserom.gba", 0x122E1E, 0x0000019 + +gUnk_08122E37:: @ 08122E37 + .incbin "baserom.gba", 0x122E37, 0x0000019 + +gUnk_08122E50:: @ 08122E50 + .incbin "baserom.gba", 0x122E50, 0x0000015 + +gUnk_08122E65:: @ 08122E65 + .incbin "baserom.gba", 0x122E65, 0x0000015 + +gUnk_08122E7A:: @ 08122E7A + .incbin "baserom.gba", 0x122E7A, 0x0000015 + +gUnk_08122E8F:: @ 08122E8F + .incbin "baserom.gba", 0x122E8F, 0x0000015 + +gUnk_08122EA4:: @ 08122EA4 + .incbin "baserom.gba", 0x122EA4, 0x0000009 + +gUnk_08122EAD:: @ 08122EAD + .incbin "baserom.gba", 0x122EAD, 0x0000023 + +gUnk_08122ED0:: @ 08122ED0 + .incbin "baserom.gba", 0x122ED0, 0x0000050 + +gUnk_08122F20:: @ 08122F20 + .incbin "baserom.gba", 0x122F20, 0x000000C + +gUnk_08122F2C:: @ 08122F2C + .incbin "baserom.gba", 0x122F2C, 0x0000005 + +gUnk_08122F31:: @ 08122F31 + .incbin "baserom.gba", 0x122F31, 0x0000021 + +gUnk_08122F52:: @ 08122F52 + .incbin "baserom.gba", 0x122F52, 0x0000005 + +gUnk_08122F57:: @ 08122F57 + .incbin "baserom.gba", 0x122F57, 0x0000021 + +gUnk_08122F78:: @ 08122F78 + .incbin "baserom.gba", 0x122F78, 0x0000005 + +gUnk_08122F7D:: @ 08122F7D + .incbin "baserom.gba", 0x122F7D, 0x0000021 + +gUnk_08122F9E:: @ 08122F9E + .incbin "baserom.gba", 0x122F9E, 0x0000005 + +gUnk_08122FA3:: @ 08122FA3 + .incbin "baserom.gba", 0x122FA3, 0x0000021 + +gUnk_08122FC4:: @ 08122FC4 + .incbin "baserom.gba", 0x122FC4, 0x0000005 + +gUnk_08122FC9:: @ 08122FC9 + .incbin "baserom.gba", 0x122FC9, 0x0000005 + +gUnk_08122FCE:: @ 08122FCE + .incbin "baserom.gba", 0x122FCE, 0x0000005 + +gUnk_08122FD3:: @ 08122FD3 + .incbin "baserom.gba", 0x122FD3, 0x0000059 + +gUnk_0812302C:: @ 0812302C + .incbin "baserom.gba", 0x12302C, 0x000002D + +gUnk_08123059:: @ 08123059 + .incbin "baserom.gba", 0x123059, 0x0000033 + +gUnk_0812308C:: @ 0812308C + .incbin "baserom.gba", 0x12308C, 0x000003C + +gUnk_081230C8:: @ 081230C8 + .incbin "baserom.gba", 0x1230C8, 0x0000054 + +gUnk_0812311C:: @ 0812311C + .incbin "baserom.gba", 0x12311C, 0x0000008 + +gUnk_08123124:: @ 08123124 + .incbin "baserom.gba", 0x123124, 0x0000005 + +gUnk_08123129:: @ 08123129 + .incbin "baserom.gba", 0x123129, 0x0000005 + +gUnk_0812312E:: @ 0812312E + .incbin "baserom.gba", 0x12312E, 0x0000012 + +gUnk_08123140:: @ 08123140 + .incbin "baserom.gba", 0x123140, 0x0000010 + +gUnk_08123150:: @ 08123150 + .incbin "baserom.gba", 0x123150, 0x0000010 + +gUnk_08123160:: @ 08123160 + .incbin "baserom.gba", 0x123160, 0x0000008 + +gUnk_08123168:: @ 08123168 + .incbin "baserom.gba", 0x123168, 0x000001C + +gUnk_08123184:: @ 08123184 + .incbin "baserom.gba", 0x123184, 0x0000008 + +gUnk_0812318C:: @ 0812318C + .incbin "baserom.gba", 0x12318C, 0x0000010 + +gUnk_0812319C:: @ 0812319C + .incbin "baserom.gba", 0x12319C, 0x0000004 + +gUnk_081231A0:: @ 081231A0 + .incbin "baserom.gba", 0x1231A0, 0x000000C + +gUnk_081231AC:: @ 081231AC + .incbin "baserom.gba", 0x1231AC, 0x0000002 + +gUnk_081231AE:: @ 081231AE + .incbin "baserom.gba", 0x1231AE, 0x0000006 + +gUnk_081231B4:: @ 081231B4 + .incbin "baserom.gba", 0x1231B4, 0x0000006 + +gUnk_081231BA:: @ 081231BA + .incbin "baserom.gba", 0x1231BA, 0x0000005 + +gUnk_081231BF:: @ 081231BF + .incbin "baserom.gba", 0x1231BF, 0x000000D + +gUnk_081231CC:: @ 081231CC + .incbin "baserom.gba", 0x1231CC, 0x0000009 + +gUnk_081231D5:: @ 081231D5 + .incbin "baserom.gba", 0x1231D5, 0x0000011 + +gUnk_081231E6:: @ 081231E6 + .incbin "baserom.gba", 0x1231E6, 0x0000015 + +gUnk_081231FB:: @ 081231FB + .incbin "baserom.gba", 0x1231FB, 0x0000009 + +gUnk_08123204:: @ 08123204 + .incbin "baserom.gba", 0x123204, 0x0000004 + +gUnk_08123208:: @ 08123208 + .incbin "baserom.gba", 0x123208, 0x0000034 + +gUnk_0812323C:: @ 0812323C + .incbin "baserom.gba", 0x12323C, 0x0000014 + +gUnk_08123250:: @ 08123250 + .incbin "baserom.gba", 0x123250, 0x0000014 + +gUnk_08123264:: @ 08123264 + .incbin "baserom.gba", 0x123264, 0x0000008 + +gUnk_0812326C:: @ 0812326C + .incbin "baserom.gba", 0x12326C, 0x0000008 + +gUnk_08123274:: @ 08123274 + .incbin "baserom.gba", 0x123274, 0x0000008 + +gUnk_0812327C:: @ 0812327C + .incbin "baserom.gba", 0x12327C, 0x000001C + +gUnk_08123298:: @ 08123298 + .incbin "baserom.gba", 0x123298, 0x0000008 + +gUnk_081232A0:: @ 081232A0 + .incbin "baserom.gba", 0x1232A0, 0x0000004 + +gUnk_081232A4:: @ 081232A4 + .incbin "baserom.gba", 0x1232A4, 0x0000008 + +gUnk_081232AC:: @ 081232AC + .incbin "baserom.gba", 0x1232AC, 0x0000014 + +gUnk_081232C0:: @ 081232C0 + .incbin "baserom.gba", 0x1232C0, 0x000001D + +gUnk_081232DD:: @ 081232DD + .incbin "baserom.gba", 0x1232DD, 0x0000001 + +gUnk_081232DE:: @ 081232DE + .incbin "baserom.gba", 0x1232DE, 0x0000006 + +gUnk_081232E4:: @ 081232E4 + .incbin "baserom.gba", 0x1232E4, 0x0000008 + +gUnk_081232EC:: @ 081232EC + .incbin "baserom.gba", 0x1232EC, 0x0000012 + +gUnk_081232FE:: @ 081232FE + .incbin "baserom.gba", 0x1232FE, 0x000001A + +gUnk_08123318:: @ 08123318 + .incbin "baserom.gba", 0x123318, 0x0000010 + +gUnk_08123328:: @ 08123328 + .incbin "baserom.gba", 0x123328, 0x0000008 + +gUnk_08123330:: @ 08123330 + .incbin "baserom.gba", 0x123330, 0x0000003 + +gUnk_08123333:: @ 08123333 + .incbin "baserom.gba", 0x123333, 0x0000011 + +gUnk_08123344:: @ 08123344 + .incbin "baserom.gba", 0x123344, 0x0000026 + +gUnk_0812336A:: @ 0812336A + .incbin "baserom.gba", 0x12336A, 0x000001A + +gUnk_08123384:: @ 08123384 + .incbin "baserom.gba", 0x123384, 0x0000008 + +gUnk_0812338C:: @ 0812338C + .incbin "baserom.gba", 0x12338C, 0x0000024 + +gUnk_081233B0:: @ 081233B0 + .incbin "baserom.gba", 0x1233B0, 0x0000008 + +gUnk_081233B8:: @ 081233B8 + .incbin "baserom.gba", 0x1233B8, 0x0000008 + +gUnk_081233C0:: @ 081233C0 + .incbin "baserom.gba", 0x1233C0, 0x0000050 + +gUnk_08123410:: @ 08123410 + .incbin "baserom.gba", 0x123410, 0x000000C + +gUnk_0812341C:: @ 0812341C + .incbin "baserom.gba", 0x12341C, 0x0000006 + +gUnk_08123422:: @ 08123422 + .incbin "baserom.gba", 0x123422, 0x0000019 + +gUnk_0812343B:: @ 0812343B + .incbin "baserom.gba", 0x12343B, 0x0000011 + +gUnk_0812344C:: @ 0812344C + .incbin "baserom.gba", 0x12344C, 0x0000028 + +gUnk_08123474:: @ 08123474 + .incbin "baserom.gba", 0x123474, 0x0000010 + +gUnk_08123484:: @ 08123484 + .incbin "baserom.gba", 0x123484, 0x0000010 + +gUnk_08123494:: @ 08123494 + .incbin "baserom.gba", 0x123494, 0x000000C + +gUnk_081234A0:: @ 081234A0 + .incbin "baserom.gba", 0x1234A0, 0x0000004 + +gUnk_081234A4:: @ 081234A4 + .incbin "baserom.gba", 0x1234A4, 0x0000008 + +gUnk_081234AC:: @ 081234AC + .incbin "baserom.gba", 0x1234AC, 0x0000008 + +gUnk_081234B4:: @ 081234B4 + .incbin "baserom.gba", 0x1234B4, 0x0000015 + +gUnk_081234C9:: @ 081234C9 + .incbin "baserom.gba", 0x1234C9, 0x0000017 + +gUnk_081234E0:: @ 081234E0 + .incbin "baserom.gba", 0x1234E0, 0x000000C + +gUnk_081234EC:: @ 081234EC + .incbin "baserom.gba", 0x1234EC, 0x0000008 + +gUnk_081234F4:: @ 081234F4 + .incbin "baserom.gba", 0x1234F4, 0x0000008 + +gUnk_081234FC:: @ 081234FC + .incbin "baserom.gba", 0x1234FC, 0x0000008 + +gUnk_08123504:: @ 08123504 + .incbin "baserom.gba", 0x123504, 0x0000008 + +gUnk_0812350C:: @ 0812350C + .incbin "baserom.gba", 0x12350C, 0x0000018 + +gUnk_08123524:: @ 08123524 + .incbin "baserom.gba", 0x123524, 0x000001C + +gUnk_08123540:: @ 08123540 + .incbin "baserom.gba", 0x123540, 0x0000018 + +gUnk_08123558:: @ 08123558 + .incbin "baserom.gba", 0x123558, 0x0000010 + +gUnk_08123568:: @ 08123568 + .incbin "baserom.gba", 0x123568, 0x000000C + +gUnk_08123574:: @ 08123574 + .incbin "baserom.gba", 0x123574, 0x0000006 + +gUnk_0812357A:: @ 0812357A + .incbin "baserom.gba", 0x12357A, 0x0000019 + +gUnk_08123593:: @ 08123593 + .incbin "baserom.gba", 0x123593, 0x0000019 + +gUnk_081235AC:: @ 081235AC + .incbin "baserom.gba", 0x1235AC, 0x0000005 + +gUnk_081235B1:: @ 081235B1 + .incbin "baserom.gba", 0x1235B1, 0x0000005 + +gUnk_081235B6:: @ 081235B6 + .incbin "baserom.gba", 0x1235B6, 0x0000035 + +gUnk_081235EB:: @ 081235EB + .incbin "baserom.gba", 0x1235EB, 0x0000035 + +gUnk_08123620:: @ 08123620 + .incbin "baserom.gba", 0x123620, 0x000001C + +gUnk_0812363C:: @ 0812363C + .incbin "baserom.gba", 0x12363C, 0x0000028 + +gUnk_08123664:: @ 08123664 + .incbin "baserom.gba", 0x123664, 0x0000008 + +gUnk_0812366C:: @ 0812366C + .incbin "baserom.gba", 0x12366C, 0x0000008 + +gUnk_08123674:: @ 08123674 + .incbin "baserom.gba", 0x123674, 0x0000008 + +gUnk_0812367C:: @ 0812367C + .incbin "baserom.gba", 0x12367C, 0x0000014 + +gUnk_08123690:: @ 08123690 + .incbin "baserom.gba", 0x123690, 0x0000008 + +gUnk_08123698:: @ 08123698 + .incbin "baserom.gba", 0x123698, 0x0000011 + +gUnk_081236A9:: @ 081236A9 + .incbin "baserom.gba", 0x1236A9, 0x0000011 + +gUnk_081236BA:: @ 081236BA + .incbin "baserom.gba", 0x1236BA, 0x0000012 + +gUnk_081236CC:: @ 081236CC + .incbin "baserom.gba", 0x1236CC, 0x0000010 + +gUnk_081236DC:: @ 081236DC + .incbin "baserom.gba", 0x1236DC, 0x000000C + +gUnk_081236E8:: @ 081236E8 + .incbin "baserom.gba", 0x1236E8, 0x0000004 + +gUnk_081236EC:: @ 081236EC + .incbin "baserom.gba", 0x1236EC, 0x0000008 + +gUnk_081236F4:: @ 081236F4 + .incbin "baserom.gba", 0x1236F4, 0x0000008 + +gUnk_081236FC:: @ 081236FC + .incbin "baserom.gba", 0x1236FC, 0x0000015 + +gUnk_08123711:: @ 08123711 + .incbin "baserom.gba", 0x123711, 0x0000017 + +gUnk_08123728:: @ 08123728 + .incbin "baserom.gba", 0x123728, 0x000000C + +gUnk_08123734:: @ 08123734 + .incbin "baserom.gba", 0x123734, 0x0000014 + +gUnk_08123748:: @ 08123748 + .incbin "baserom.gba", 0x123748, 0x0000008 + +gUnk_08123750:: @ 08123750 + .incbin "baserom.gba", 0x123750, 0x000001A + +gUnk_0812376A:: @ 0812376A + .incbin "baserom.gba", 0x12376A, 0x0000004 + +gUnk_0812376E:: @ 0812376E + .incbin "baserom.gba", 0x12376E, 0x0000004 + +gUnk_08123772:: @ 08123772 + .incbin "baserom.gba", 0x123772, 0x0000004 + +gUnk_08123776:: @ 08123776 + .incbin "baserom.gba", 0x123776, 0x0000016 + +gUnk_0812378C:: @ 0812378C + .incbin "baserom.gba", 0x12378C, 0x0000014 + +gUnk_081237A0:: @ 081237A0 + .incbin "baserom.gba", 0x1237A0, 0x0000010 + +gUnk_081237B0:: @ 081237B0 + .incbin "baserom.gba", 0x1237B0, 0x000000A + +gUnk_081237BA:: @ 081237BA + .incbin "baserom.gba", 0x1237BA, 0x0000004 + +gUnk_081237BE:: @ 081237BE + .incbin "baserom.gba", 0x1237BE, 0x0000004 + +gUnk_081237C2:: @ 081237C2 + .incbin "baserom.gba", 0x1237C2, 0x0000004 + +gUnk_081237C6:: @ 081237C6 + .incbin "baserom.gba", 0x1237C6, 0x0000004 + +gUnk_081237CA:: @ 081237CA + .incbin "baserom.gba", 0x1237CA, 0x0000016 + +gUnk_081237E0:: @ 081237E0 + .incbin "baserom.gba", 0x1237E0, 0x0000018 + +gUnk_081237F8:: @ 081237F8 + .incbin "baserom.gba", 0x1237F8, 0x0000014 + +gUnk_0812380C:: @ 0812380C + .incbin "baserom.gba", 0x12380C, 0x0000014 + +gUnk_08123820:: @ 08123820 + .incbin "baserom.gba", 0x123820, 0x0000014 + +gUnk_08123834:: @ 08123834 + .incbin "baserom.gba", 0x123834, 0x000000C + +gUnk_08123840:: @ 08123840 + .incbin "baserom.gba", 0x123840, 0x000000C + +gUnk_0812384C:: @ 0812384C + .incbin "baserom.gba", 0x12384C, 0x0000040 + +gUnk_0812388C:: @ 0812388C + .incbin "baserom.gba", 0x12388C, 0x0000014 + +gUnk_081238A0:: @ 081238A0 + .incbin "baserom.gba", 0x1238A0, 0x00003E0 + +gUnk_08123C80:: @ 08123C80 + .incbin "baserom.gba", 0x123C80, 0x0000010 + +gUnk_08123C90:: @ 08123C90 + .incbin "baserom.gba", 0x123C90, 0x0000028 + +gUnk_08123CB8:: @ 08123CB8 + .incbin "baserom.gba", 0x123CB8, 0x0000005 + +gUnk_08123CBD:: @ 08123CBD + .incbin "baserom.gba", 0x123CBD, 0x0000011 + +gUnk_08123CCE:: @ 08123CCE + .incbin "baserom.gba", 0x123CCE, 0x000001D + +gUnk_08123CEB:: @ 08123CEB + .incbin "baserom.gba", 0x123CEB, 0x0000029 + +gUnk_08123D14:: @ 08123D14 + .incbin "baserom.gba", 0x123D14, 0x0000014 + +gUnk_08123D28:: @ 08123D28 + .incbin "baserom.gba", 0x123D28, 0x0000020 + +gUnk_08123D48:: @ 08123D48 + .incbin "baserom.gba", 0x123D48, 0x0000004 + +gUnk_08123D4C:: @ 08123D4C + .incbin "baserom.gba", 0x123D4C, 0x000000C + +gUnk_08123D58:: @ 08123D58 + .incbin "baserom.gba", 0x123D58, 0x0000010 + +gUnk_08123D68:: @ 08123D68 + .incbin "baserom.gba", 0x123D68, 0x0000014 + +gUnk_08123D7C:: @ 08123D7C + .incbin "baserom.gba", 0x123D7C, 0x0000018 + +gUnk_08123D94:: @ 08123D94 + .incbin "baserom.gba", 0x123D94, 0x0000004 + +gUnk_08123D98:: @ 08123D98 + .incbin "baserom.gba", 0x123D98, 0x0000008 + +gUnk_08123DA0:: @ 08123DA0 + .incbin "baserom.gba", 0x123DA0, 0x0000014 + +gUnk_08123DB4:: @ 08123DB4 + .incbin "baserom.gba", 0x123DB4, 0x000000C + +gUnk_08123DC0:: @ 08123DC0 + .incbin "baserom.gba", 0x123DC0, 0x000000C + +gUnk_08123DCC:: @ 08123DCC + .incbin "baserom.gba", 0x123DCC, 0x0000008 + +gUnk_08123DD4:: @ 08123DD4 + .incbin "baserom.gba", 0x123DD4, 0x0000008 + +gUnk_08123DDC:: @ 08123DDC + .incbin "baserom.gba", 0x123DDC, 0x000001C + +gUnk_08123DF8:: @ 08123DF8 + .incbin "baserom.gba", 0x123DF8, 0x0000020 + +gUnk_08123E18:: @ 08123E18 + .incbin "baserom.gba", 0x123E18, 0x0000004 + +gUnk_08123E1C:: @ 08123E1C + .incbin "baserom.gba", 0x123E1C, 0x0000004 + +gUnk_08123E20:: @ 08123E20 + .incbin "baserom.gba", 0x123E20, 0x000000C + +gUnk_08123E2C:: @ 08123E2C + .incbin "baserom.gba", 0x123E2C, 0x000004C + +gUnk_08123E78:: @ 08123E78 + .incbin "baserom.gba", 0x123E78, 0x0000008 + +gUnk_08123E80:: @ 08123E80 + .incbin "baserom.gba", 0x123E80, 0x0000008 + +gUnk_08123E88:: @ 08123E88 + .incbin "baserom.gba", 0x123E88, 0x0000014 + +gUnk_08123E9C:: @ 08123E9C + .incbin "baserom.gba", 0x123E9C, 0x0000008 + +gUnk_08123EA4:: @ 08123EA4 + .incbin "baserom.gba", 0x123EA4, 0x0000014 + +gUnk_08123EB8:: @ 08123EB8 + .incbin "baserom.gba", 0x123EB8, 0x0000008 + +gUnk_08123EC0:: @ 08123EC0 + .incbin "baserom.gba", 0x123EC0, 0x000002C + +gUnk_08123EEC:: @ 08123EEC + .incbin "baserom.gba", 0x123EEC, 0x0000008 + +gUnk_08123EF4:: @ 08123EF4 + .incbin "baserom.gba", 0x123EF4, 0x0000008 + +gUnk_08123EFC:: @ 08123EFC + .incbin "baserom.gba", 0x123EFC, 0x0000008 + +gUnk_08123F04:: @ 08123F04 + .incbin "baserom.gba", 0x123F04, 0x0000008 + +gUnk_08123F0C:: @ 08123F0C + .incbin "baserom.gba", 0x123F0C, 0x0000014 + +gUnk_08123F20:: @ 08123F20 + .incbin "baserom.gba", 0x123F20, 0x0000008 + +gUnk_08123F28:: @ 08123F28 + .incbin "baserom.gba", 0x123F28, 0x0000021 + +gUnk_08123F49:: @ 08123F49 + .incbin "baserom.gba", 0x123F49, 0x0000019 + +gUnk_08123F62:: @ 08123F62 + .incbin "baserom.gba", 0x123F62, 0x0000019 + +gUnk_08123F7B:: @ 08123F7B + .incbin "baserom.gba", 0x123F7B, 0x0000021 + +gUnk_08123F9C:: @ 08123F9C + .incbin "baserom.gba", 0x123F9C, 0x0000014 + +gUnk_08123FB0:: @ 08123FB0 + .incbin "baserom.gba", 0x123FB0, 0x0000061 + +gUnk_08124011:: @ 08124011 + .incbin "baserom.gba", 0x124011, 0x000007B + +gUnk_0812408C:: @ 0812408C + .incbin "baserom.gba", 0x12408C, 0x0000024 + +gUnk_081240B0:: @ 081240B0 + .incbin "baserom.gba", 0x1240B0, 0x0000010 + +gUnk_081240C0:: @ 081240C0 + .incbin "baserom.gba", 0x1240C0, 0x0000018 + +gUnk_081240D8:: @ 081240D8 + .incbin "baserom.gba", 0x1240D8, 0x0000014 + +gUnk_081240EC:: @ 081240EC + .incbin "baserom.gba", 0x1240EC, 0x0000008 + +gUnk_081240F4:: @ 081240F4 + .incbin "baserom.gba", 0x1240F4, 0x000000C + +gUnk_08124100:: @ 08124100 + .incbin "baserom.gba", 0x124100, 0x0000018 + +gUnk_08124118:: @ 08124118 + .incbin "baserom.gba", 0x124118, 0x0000010 + +gUnk_08124128:: @ 08124128 + .incbin "baserom.gba", 0x124128, 0x0000005 + +gUnk_0812412D:: @ 0812412D + .incbin "baserom.gba", 0x12412D, 0x0000005 + +gUnk_08124132:: @ 08124132 + .incbin "baserom.gba", 0x124132, 0x0000014 + +gUnk_08124146:: @ 08124146 + .incbin "baserom.gba", 0x124146, 0x000000A + +gUnk_08124150:: @ 08124150 + .incbin "baserom.gba", 0x124150, 0x0000008 + +gUnk_08124158:: @ 08124158 + .incbin "baserom.gba", 0x124158, 0x0000020 + +gUnk_08124178:: @ 08124178 + .incbin "baserom.gba", 0x124178, 0x0000014 + +gUnk_0812418C:: @ 0812418C + .incbin "baserom.gba", 0x12418C, 0x0000008 + +gUnk_08124194:: @ 08124194 + .incbin "baserom.gba", 0x124194, 0x0000048 + +gUnk_081241DC:: @ 081241DC + .incbin "baserom.gba", 0x1241DC, 0x0000048 + +gUnk_08124224:: @ 08124224 + .incbin "baserom.gba", 0x124224, 0x0000048 + +gUnk_0812426C:: @ 0812426C + .incbin "baserom.gba", 0x12426C, 0x0000048 + +gUnk_081242B4:: @ 081242B4 + .incbin "baserom.gba", 0x1242B4, 0x0000014 + +gUnk_081242C8:: @ 081242C8 + .incbin "baserom.gba", 0x1242C8, 0x0000008 + +gUnk_081242D0:: @ 081242D0 + .incbin "baserom.gba", 0x1242D0, 0x0000008 + +gUnk_081242D8:: @ 081242D8 + .incbin "baserom.gba", 0x1242D8, 0x0000010 + +gUnk_081242E8:: @ 081242E8 + .incbin "baserom.gba", 0x1242E8, 0x000002C + +gUnk_08124314:: @ 08124314 + .incbin "baserom.gba", 0x124314, 0x000000C + +gUnk_08124320:: @ 08124320 + .incbin "baserom.gba", 0x124320, 0x0000028 + +gUnk_08124348:: @ 08124348 + .incbin "baserom.gba", 0x124348, 0x000000C + +gUnk_08124354:: @ 08124354 + .incbin "baserom.gba", 0x124354, 0x0000010 + +gUnk_08124364:: @ 08124364 + .incbin "baserom.gba", 0x124364, 0x0000050 + +gUnk_081243B4:: @ 081243B4 + .incbin "baserom.gba", 0x1243B4, 0x0000008 + +gUnk_081243BC:: @ 081243BC + .incbin "baserom.gba", 0x1243BC, 0x0000008 + +gUnk_081243C4:: @ 081243C4 + .incbin "baserom.gba", 0x1243C4, 0x0000010 + +gUnk_081243D4:: @ 081243D4 + .incbin "baserom.gba", 0x1243D4, 0x0000010 + +gUnk_081243E4:: @ 081243E4 + .incbin "baserom.gba", 0x1243E4, 0x0000008 + +gUnk_081243EC:: @ 081243EC + .incbin "baserom.gba", 0x1243EC, 0x0000008 + +gUnk_081243F4:: @ 081243F4 + .incbin "baserom.gba", 0x1243F4, 0x000003F + +gUnk_08124433:: @ 08124433 + .incbin "baserom.gba", 0x124433, 0x0000032 + +gUnk_08124465:: @ 08124465 + .incbin "baserom.gba", 0x124465, 0x0000071 + +gUnk_081244D6:: @ 081244D6 + .incbin "baserom.gba", 0x1244D6, 0x0000071 + +gUnk_08124547:: @ 08124547 + .incbin "baserom.gba", 0x124547, 0x0000071 + +gUnk_081245B8:: @ 081245B8 + .incbin "baserom.gba", 0x1245B8, 0x0000025 + +gUnk_081245DD:: @ 081245DD + .incbin "baserom.gba", 0x1245DD, 0x0000025 + +gUnk_08124602:: @ 08124602 + .incbin "baserom.gba", 0x124602, 0x0000025 + +gUnk_08124627:: @ 08124627 + .incbin "baserom.gba", 0x124627, 0x0000025 + +gUnk_0812464C:: @ 0812464C + .incbin "baserom.gba", 0x12464C, 0x0000024 + +gUnk_08124670:: @ 08124670 + .incbin "baserom.gba", 0x124670, 0x0000014 + +gUnk_08124684:: @ 08124684 + .incbin "baserom.gba", 0x124684, 0x0000008 + +gUnk_0812468C:: @ 0812468C + .incbin "baserom.gba", 0x12468C, 0x0000004 + +gUnk_08124690:: @ 08124690 + .incbin "baserom.gba", 0x124690, 0x0000004 + +gUnk_08124694:: @ 08124694 + .incbin "baserom.gba", 0x124694, 0x0000004 + +gUnk_08124698:: @ 08124698 + .incbin "baserom.gba", 0x124698, 0x0000010 + +gUnk_081246A8:: @ 081246A8 + .incbin "baserom.gba", 0x1246A8, 0x0000010 + +gUnk_081246B8:: @ 081246B8 + .incbin "baserom.gba", 0x1246B8, 0x0000010 + +gUnk_081246C8:: @ 081246C8 + .incbin "baserom.gba", 0x1246C8, 0x0000024 + +gUnk_081246EC:: @ 081246EC + .incbin "baserom.gba", 0x1246EC, 0x0000008 + +gUnk_081246F4:: @ 081246F4 + .incbin "baserom.gba", 0x1246F4, 0x0000010 + +gUnk_08124704:: @ 08124704 + .incbin "baserom.gba", 0x124704, 0x0000004 + +gUnk_08124708:: @ 08124708 + .incbin "baserom.gba", 0x124708, 0x000000A + +gUnk_08124712:: @ 08124712 + .incbin "baserom.gba", 0x124712, 0x0000031 + +gUnk_08124743:: @ 08124743 + .incbin "baserom.gba", 0x124743, 0x0000021 + +gUnk_08124764:: @ 08124764 + .incbin "baserom.gba", 0x124764, 0x0000024 + +gUnk_08124788:: @ 08124788 + .incbin "baserom.gba", 0x124788, 0x0000010 + +gUnk_08124798:: @ 08124798 + .incbin "baserom.gba", 0x124798, 0x0000008 + +gUnk_081247A0:: @ 081247A0 + .incbin "baserom.gba", 0x1247A0, 0x000000C + +gUnk_081247AC:: @ 081247AC + .incbin "baserom.gba", 0x1247AC, 0x0000014 + +gUnk_081247C0:: @ 081247C0 + .incbin "baserom.gba", 0x1247C0, 0x0000008 + +gUnk_081247C8:: @ 081247C8 + .incbin "baserom.gba", 0x1247C8, 0x0000008 + +gUnk_081247D0:: @ 081247D0 + .incbin "baserom.gba", 0x1247D0, 0x0000028 + +gUnk_081247F8:: @ 081247F8 + .incbin "baserom.gba", 0x1247F8, 0x0000008 + +gUnk_08124800:: @ 08124800 + .incbin "baserom.gba", 0x124800, 0x0000008 + +gUnk_08124808:: @ 08124808 + .incbin "baserom.gba", 0x124808, 0x0000014 + +gUnk_0812481C:: @ 0812481C + .incbin "baserom.gba", 0x12481C, 0x0000008 + +gUnk_08124824:: @ 08124824 + .incbin "baserom.gba", 0x124824, 0x000001C + +gUnk_08124840:: @ 08124840 + .incbin "baserom.gba", 0x124840, 0x000000C + +gUnk_0812484C:: @ 0812484C + .incbin "baserom.gba", 0x12484C, 0x0000004 + +gUnk_08124850:: @ 08124850 + .incbin "baserom.gba", 0x124850, 0x000000C + +gUnk_0812485C:: @ 0812485C + .incbin "baserom.gba", 0x12485C, 0x0000004 + +gUnk_08124860:: @ 08124860 + .incbin "baserom.gba", 0x124860, 0x0000008 + +gUnk_08124868:: @ 08124868 + .incbin "baserom.gba", 0x124868, 0x0000004 + +gUnk_0812486C:: @ 0812486C + .incbin "baserom.gba", 0x12486C, 0x000000C + +gUnk_08124878:: @ 08124878 + .incbin "baserom.gba", 0x124878, 0x0000018 + +gUnk_08124890:: @ 08124890 + .incbin "baserom.gba", 0x124890, 0x0000008 + +gUnk_08124898:: @ 08124898 + .incbin "baserom.gba", 0x124898, 0x000001C + +gUnk_081248B4:: @ 081248B4 + .incbin "baserom.gba", 0x1248B4, 0x0000008 + +gUnk_081248BC:: @ 081248BC + .incbin "baserom.gba", 0x1248BC, 0x0000008 + +gUnk_081248C4:: @ 081248C4 + .incbin "baserom.gba", 0x1248C4, 0x000000C + +gUnk_081248D0:: @ 081248D0 + .incbin "baserom.gba", 0x1248D0, 0x0000011 + +gUnk_081248E1:: @ 081248E1 + .incbin "baserom.gba", 0x1248E1, 0x0000011 + +gUnk_081248F2:: @ 081248F2 + .incbin "baserom.gba", 0x1248F2, 0x000001C + +gUnk_0812490E:: @ 0812490E + .incbin "baserom.gba", 0x12490E, 0x000001A + +gUnk_08124928:: @ 08124928 + .incbin "baserom.gba", 0x124928, 0x0000014 + +gUnk_0812493C:: @ 0812493C + .incbin "baserom.gba", 0x12493C, 0x0000014 + +gUnk_08124950:: @ 08124950 + .incbin "baserom.gba", 0x124950, 0x0000010 + +gUnk_08124960:: @ 08124960 + .incbin "baserom.gba", 0x124960, 0x0000005 + +gUnk_08124965:: @ 08124965 + .incbin "baserom.gba", 0x124965, 0x0000015 + +gUnk_0812497A:: @ 0812497A + .incbin "baserom.gba", 0x12497A, 0x000001A + +gUnk_08124994:: @ 08124994 + .incbin "baserom.gba", 0x124994, 0x000000C + +gUnk_081249A0:: @ 081249A0 + .incbin "baserom.gba", 0x1249A0, 0x000000C + +gUnk_081249AC:: @ 081249AC + .incbin "baserom.gba", 0x1249AC, 0x000000C + +gUnk_081249B8:: @ 081249B8 + .incbin "baserom.gba", 0x1249B8, 0x0000011 + +gUnk_081249C9:: @ 081249C9 + .incbin "baserom.gba", 0x1249C9, 0x0000011 + +gUnk_081249DA:: @ 081249DA + .incbin "baserom.gba", 0x1249DA, 0x0000011 + +gUnk_081249EB:: @ 081249EB + .incbin "baserom.gba", 0x1249EB, 0x0000011 + +gUnk_081249FC:: @ 081249FC + .incbin "baserom.gba", 0x1249FC, 0x0000014 + +gUnk_08124A10:: @ 08124A10 + .incbin "baserom.gba", 0x124A10, 0x0000008 + +gUnk_08124A18:: @ 08124A18 + .incbin "baserom.gba", 0x124A18, 0x0000008 + +gUnk_08124A20:: @ 08124A20 + .incbin "baserom.gba", 0x124A20, 0x000000C + +gUnk_08124A2C:: @ 08124A2C + .incbin "baserom.gba", 0x124A2C, 0x0000051 + +gUnk_08124A7D:: @ 08124A7D + .incbin "baserom.gba", 0x124A7D, 0x0000005 + +gUnk_08124A82:: @ 08124A82 + .incbin "baserom.gba", 0x124A82, 0x0000005 + +gUnk_08124A87:: @ 08124A87 + .incbin "baserom.gba", 0x124A87, 0x0000005 + +gUnk_08124A8C:: @ 08124A8C + .incbin "baserom.gba", 0x124A8C, 0x0000021 + +gUnk_08124AAD:: @ 08124AAD + .incbin "baserom.gba", 0x124AAD, 0x000004B + +gUnk_08124AF8:: @ 08124AF8 + .incbin "baserom.gba", 0x124AF8, 0x0000018 + +gUnk_08124B10:: @ 08124B10 + .incbin "baserom.gba", 0x124B10, 0x0000010 + +gUnk_08124B20:: @ 08124B20 + .incbin "baserom.gba", 0x124B20, 0x0000010 + +gUnk_08124B30:: @ 08124B30 + .incbin "baserom.gba", 0x124B30, 0x0000008 + +gUnk_08124B38:: @ 08124B38 + .incbin "baserom.gba", 0x124B38, 0x0000071 + +gUnk_08124BA9:: @ 08124BA9 + .incbin "baserom.gba", 0x124BA9, 0x0000053 + +gUnk_08124BFC:: @ 08124BFC + .incbin "baserom.gba", 0x124BFC, 0x000000C + +gUnk_08124C08:: @ 08124C08 + .incbin "baserom.gba", 0x124C08, 0x0000008 + +gUnk_08124C10:: @ 08124C10 + .incbin "baserom.gba", 0x124C10, 0x0000010 + +gUnk_08124C20:: @ 08124C20 + .incbin "baserom.gba", 0x124C20, 0x0000028 + +gUnk_08124C48:: @ 08124C48 + .incbin "baserom.gba", 0x124C48, 0x0000258 + +gUnk_08124EA0:: @ 08124EA0 + .incbin "baserom.gba", 0x124EA0, 0x0000028 + +gUnk_08124EC8:: @ 08124EC8 + .incbin "baserom.gba", 0x124EC8, 0x0000004 + +gUnk_08124ECC:: @ 08124ECC + .incbin "baserom.gba", 0x124ECC, 0x0000004 + +gUnk_08124ED0:: @ 08124ED0 + .incbin "baserom.gba", 0x124ED0, 0x0000028 + +gUnk_08124EF8:: @ 08124EF8 + .incbin "baserom.gba", 0x124EF8, 0x0000010 + +gUnk_08124F08:: @ 08124F08 + .incbin "baserom.gba", 0x124F08, 0x0000020 + +gUnk_08124F28:: @ 08124F28 + .incbin "baserom.gba", 0x124F28, 0x0000020 + +gUnk_08124F48:: @ 08124F48 + .incbin "baserom.gba", 0x124F48, 0x0000020 + +gUnk_08124F68:: @ 08124F68 + .incbin "baserom.gba", 0x124F68, 0x0000020 + +gUnk_08124F88:: @ 08124F88 + .incbin "baserom.gba", 0x124F88, 0x0000020 + +gUnk_08124FA8:: @ 08124FA8 + .incbin "baserom.gba", 0x124FA8, 0x0000020 + +gUnk_08124FC8:: @ 08124FC8 + .incbin "baserom.gba", 0x124FC8, 0x0000014 + +gUnk_08124FDC:: @ 08124FDC + .incbin "baserom.gba", 0x124FDC, 0x0000014 + +gUnk_08124FF0:: @ 08124FF0 + .incbin "baserom.gba", 0x124FF0, 0x0000020 + +gUnk_08125010:: @ 08125010 + .incbin "baserom.gba", 0x125010, 0x0000004 + +gUnk_08125014:: @ 08125014 + .incbin "baserom.gba", 0x125014, 0x0000028 + +gUnk_0812503C:: @ 0812503C + .incbin "baserom.gba", 0x12503C, 0x0000014 + +gUnk_08125050:: @ 08125050 + .incbin "baserom.gba", 0x125050, 0x000000C + +gUnk_0812505C:: @ 0812505C + .incbin "baserom.gba", 0x12505C, 0x000000C + +gUnk_08125068:: @ 08125068 + .incbin "baserom.gba", 0x125068, 0x0000014 + +gUnk_0812507C:: @ 0812507C + .incbin "baserom.gba", 0x12507C, 0x0000008 + +gUnk_08125084:: @ 08125084 + .incbin "baserom.gba", 0x125084, 0x0000080 + +gUnk_08125104:: @ 08125104 + .incbin "baserom.gba", 0x125104, 0x000000E + +gUnk_08125112:: @ 08125112 + .incbin "baserom.gba", 0x125112, 0x0000006 + +gUnk_08125118:: @ 08125118 + .incbin "baserom.gba", 0x125118, 0x00002C0 + +gUnk_081253D8:: @ 081253D8 + .incbin "baserom.gba", 0x1253D8, 0x0000020 + +gUnk_081253F8:: @ 081253F8 + .incbin "baserom.gba", 0x1253F8, 0x0000028 + +gUnk_08125420:: @ 08125420 + .incbin "baserom.gba", 0x125420, 0x0000018 + +gUnk_08125438:: @ 08125438 + .incbin "baserom.gba", 0x125438, 0x0000060 + +gUnk_08125498:: @ 08125498 + .incbin "baserom.gba", 0x125498, 0x0000050 + +gUnk_081254E8:: @ 081254E8 + .incbin "baserom.gba", 0x1254E8, 0x0000058 + +gUnk_08125540:: @ 08125540 + .incbin "baserom.gba", 0x125540, 0x0000118 + +gUnk_08125658:: @ 08125658 + .incbin "baserom.gba", 0x125658, 0x0000010 + +gUnk_08125668:: @ 08125668 + .incbin "baserom.gba", 0x125668, 0x0000030 + +gUnk_08125698:: @ 08125698 + .incbin "baserom.gba", 0x125698, 0x0000010 + +gUnk_081256A8:: @ 081256A8 + .incbin "baserom.gba", 0x1256A8, 0x0000028 + +gUnk_081256D0:: @ 081256D0 + .incbin "baserom.gba", 0x1256D0, 0x0000230 + +gUnk_08125900:: @ 08125900 + .incbin "baserom.gba", 0x125900, 0x0000018 + +gUnk_08125918:: @ 08125918 + .incbin "baserom.gba", 0x125918, 0x0000010 + +gUnk_08125928:: @ 08125928 + .incbin "baserom.gba", 0x125928, 0x0000018 + +gUnk_08125940:: @ 08125940 + .incbin "baserom.gba", 0x125940, 0x0000020 + +gUnk_08125960:: @ 08125960 + .incbin "baserom.gba", 0x125960, 0x0000048 + +gUnk_081259A8:: @ 081259A8 + .incbin "baserom.gba", 0x1259A8, 0x000006D + +gUnk_08125A15:: @ 08125A15 + .incbin "baserom.gba", 0x125A15, 0x00000EB + +gUnk_08125B00:: @ 08125B00 + .incbin "baserom.gba", 0x125B00, 0x0000020 + +gUnk_08125B20:: @ 08125B20 + .incbin "baserom.gba", 0x125B20, 0x0000030 + +gUnk_08125B50:: @ 08125B50 + .incbin "baserom.gba", 0x125B50, 0x0000020 + +gUnk_08125B70:: @ 08125B70 + .incbin "baserom.gba", 0x125B70, 0x00000A8 + +gUnk_08125C18:: @ 08125C18 + .incbin "baserom.gba", 0x125C18, 0x0000030 + +gUnk_08125C48:: @ 08125C48 + .incbin "baserom.gba", 0x125C48, 0x0000048 + +gUnk_08125C90:: @ 08125C90 + .incbin "baserom.gba", 0x125C90, 0x0000048 + +gUnk_08125CD8:: @ 08125CD8 + .incbin "baserom.gba", 0x125CD8, 0x0000090 + +gUnk_08125D68:: @ 08125D68 + .incbin "baserom.gba", 0x125D68, 0x0000048 + +gUnk_08125DB0:: @ 08125DB0 + .incbin "baserom.gba", 0x125DB0, 0x0000108 + +gUnk_08125EB8:: @ 08125EB8 + .incbin "baserom.gba", 0x125EB8, 0x0000018 + +gUnk_08125ED0:: @ 08125ED0 + .incbin "baserom.gba", 0x125ED0, 0x0000020 + +gUnk_08125EF0:: @ 08125EF0 + .incbin "baserom.gba", 0x125EF0, 0x0000020 + +gUnk_08125F10:: @ 08125F10 + .incbin "baserom.gba", 0x125F10, 0x0000010 + +gUnk_08125F20:: @ 08125F20 + .incbin "baserom.gba", 0x125F20, 0x0000018 + +gUnk_08125F38:: @ 08125F38 + .incbin "baserom.gba", 0x125F38, 0x0000010 + +gUnk_08125F48:: @ 08125F48 + .incbin "baserom.gba", 0x125F48, 0x0000030 + +gUnk_08125F78:: @ 08125F78 + .incbin "baserom.gba", 0x125F78, 0x0000018 + +gUnk_08125F90:: @ 08125F90 + .incbin "baserom.gba", 0x125F90, 0x0000010 + +gUnk_08125FA0:: @ 08125FA0 + .incbin "baserom.gba", 0x125FA0, 0x0000020 + +gUnk_08125FC0:: @ 08125FC0 + .incbin "baserom.gba", 0x125FC0, 0x0000028 + +gUnk_08125FE8:: @ 08125FE8 + .incbin "baserom.gba", 0x125FE8, 0x0000050 + +gUnk_08126038:: @ 08126038 + .incbin "baserom.gba", 0x126038, 0x0000018 + +gUnk_08126050:: @ 08126050 + .incbin "baserom.gba", 0x126050, 0x0000018 + +gUnk_08126068:: @ 08126068 + .incbin "baserom.gba", 0x126068, 0x0000040 + +gUnk_081260A8:: @ 081260A8 + .incbin "baserom.gba", 0x1260A8, 0x0000010 + +gUnk_081260B8:: @ 081260B8 + .incbin "baserom.gba", 0x1260B8, 0x0000058 + +gUnk_08126110:: @ 08126110 + .incbin "baserom.gba", 0x126110, 0x0000040 + +gUnk_08126150:: @ 08126150 + .incbin "baserom.gba", 0x126150, 0x0000030 + +gUnk_08126180:: @ 08126180 + .incbin "baserom.gba", 0x126180, 0x0000030 + +gUnk_081261B0:: @ 081261B0 + .incbin "baserom.gba", 0x1261B0, 0x0000018 + +gUnk_081261C8:: @ 081261C8 + .incbin "baserom.gba", 0x1261C8, 0x0000020 + +gUnk_081261E8:: @ 081261E8 + .incbin "baserom.gba", 0x1261E8, 0x0000010 + +gUnk_081261F8:: @ 081261F8 + .incbin "baserom.gba", 0x1261F8, 0x000001B + +gUnk_08126213:: @ 08126213 + .incbin "baserom.gba", 0x126213, 0x0000065 + +gUnk_08126278:: @ 08126278 + .incbin "baserom.gba", 0x126278, 0x0000020 + +gUnk_08126298:: @ 08126298 + .incbin "baserom.gba", 0x126298, 0x0000020 + +gUnk_081262B8:: @ 081262B8 + .incbin "baserom.gba", 0x1262B8, 0x0000018 + +gUnk_081262D0:: @ 081262D0 + .incbin "baserom.gba", 0x1262D0, 0x0000018 + +gUnk_081262E8:: @ 081262E8 + .incbin "baserom.gba", 0x1262E8, 0x0000048 + +gUnk_08126330:: @ 08126330 + .incbin "baserom.gba", 0x126330, 0x0000020 + +gUnk_08126350:: @ 08126350 + .incbin "baserom.gba", 0x126350, 0x0000010 + +gUnk_08126360:: @ 08126360 + .incbin "baserom.gba", 0x126360, 0x0000020 + +gUnk_08126380:: @ 08126380 + .incbin "baserom.gba", 0x126380, 0x0000028 + +gUnk_081263A8:: @ 081263A8 + .incbin "baserom.gba", 0x1263A8, 0x0000010 + +gUnk_081263B8:: @ 081263B8 + .incbin "baserom.gba", 0x1263B8, 0x0000010 + +gUnk_081263C8:: @ 081263C8 + .incbin "baserom.gba", 0x1263C8, 0x0000010 + +gUnk_081263D8:: @ 081263D8 + .incbin "baserom.gba", 0x1263D8, 0x0000010 + +gUnk_081263E8:: @ 081263E8 + .incbin "baserom.gba", 0x1263E8, 0x0000138 + +gUnk_08126520:: @ 08126520 + .incbin "baserom.gba", 0x126520, 0x000009C + +gUnk_081265BC:: @ 081265BC + .incbin "baserom.gba", 0x1265BC, 0x0000073 + +gUnk_0812662F:: @ 0812662F + .incbin "baserom.gba", 0x12662F, 0x0000169 + +gUnk_08126798:: @ 08126798 + .incbin "baserom.gba", 0x126798, 0x0000610 + +gUnk_08126DA8:: @ 08126DA8 + .incbin "baserom.gba", 0x126DA8, 0x00000C0 + +gUnk_08126E68:: @ 08126E68 + .incbin "baserom.gba", 0x126E68, 0x0000030 + +gUnk_08126E98:: @ 08126E98 + .incbin "baserom.gba", 0x126E98, 0x0000030 + +gUnk_08126EC8:: @ 08126EC8 + .incbin "baserom.gba", 0x126EC8, 0x0000010 + +gUnk_08126ED8:: @ 08126ED8 + .incbin "baserom.gba", 0x126ED8, 0x000000C + +gUnk_08126EE4:: @ 08126EE4 + .incbin "baserom.gba", 0x126EE4, 0x0000008 + +gUnk_08126EEC:: @ 08126EEC + .incbin "baserom.gba", 0x126EEC, 0x0000008 + +gUnk_08126EF4:: @ 08126EF4 + .incbin "baserom.gba", 0x126EF4, 0x0000004 + +gUnk_08126EF8:: @ 08126EF8 + .incbin "baserom.gba", 0x126EF8, 0x0000005 + +gUnk_08126EFD:: @ 08126EFD + .incbin "baserom.gba", 0x126EFD, 0x0000005 + +gUnk_08126F02:: @ 08126F02 + .incbin "baserom.gba", 0x126F02, 0x0000011 + +gUnk_08126F13:: @ 08126F13 + .incbin "baserom.gba", 0x126F13, 0x0000015 + +gUnk_08126F28:: @ 08126F28 + .incbin "baserom.gba", 0x126F28, 0x0000015 + +gUnk_08126F3D:: @ 08126F3D + .incbin "baserom.gba", 0x126F3D, 0x0000011 + +gUnk_08126F4E:: @ 08126F4E + .incbin "baserom.gba", 0x126F4E, 0x0000011 + +gUnk_08126F5F:: @ 08126F5F + .incbin "baserom.gba", 0x126F5F, 0x0000011 + +gUnk_08126F70:: @ 08126F70 + .incbin "baserom.gba", 0x126F70, 0x0000011 + +gUnk_08126F81:: @ 08126F81 + .incbin "baserom.gba", 0x126F81, 0x0000009 + +gUnk_08126F8A:: @ 08126F8A + .incbin "baserom.gba", 0x126F8A, 0x000000C + +gUnk_08126F96:: @ 08126F96 + .incbin "baserom.gba", 0x126F96, 0x000000D + +gUnk_08126FA3:: @ 08126FA3 + .incbin "baserom.gba", 0x126FA3, 0x0000010 + +gUnk_08126FB3:: @ 08126FB3 + .incbin "baserom.gba", 0x126FB3, 0x0000010 + +gUnk_08126FC3:: @ 08126FC3 + .incbin "baserom.gba", 0x126FC3, 0x0000021 + +gUnk_08126FE4:: @ 08126FE4 + .incbin "baserom.gba", 0x126FE4, 0x0000014 + +gUnk_08126FF8:: @ 08126FF8 + .incbin "baserom.gba", 0x126FF8, 0x0000021 + +gUnk_08127019:: @ 08127019 + .incbin "baserom.gba", 0x127019, 0x0000018 + +gUnk_08127031:: @ 08127031 + .incbin "baserom.gba", 0x127031, 0x0000015 + +gUnk_08127046:: @ 08127046 + .incbin "baserom.gba", 0x127046, 0x0000015 + +gUnk_0812705B:: @ 0812705B + .incbin "baserom.gba", 0x12705B, 0x000005C + +gUnk_081270B7:: @ 081270B7 + .incbin "baserom.gba", 0x1270B7, 0x0000029 + +gUnk_081270E0:: @ 081270E0 + .incbin "baserom.gba", 0x1270E0, 0x0000011 + +gUnk_081270F1:: @ 081270F1 + .incbin "baserom.gba", 0x1270F1, 0x0000005 + +gUnk_081270F6:: @ 081270F6 + .incbin "baserom.gba", 0x1270F6, 0x0000011 + +gUnk_08127107:: @ 08127107 + .incbin "baserom.gba", 0x127107, 0x0000011 + +gUnk_08127118:: @ 08127118 + .incbin "baserom.gba", 0x127118, 0x0000011 + +gUnk_08127129:: @ 08127129 + .incbin "baserom.gba", 0x127129, 0x0000011 + +gUnk_0812713A:: @ 0812713A + .incbin "baserom.gba", 0x12713A, 0x0000009 + +gUnk_08127143:: @ 08127143 + .incbin "baserom.gba", 0x127143, 0x0000009 + +gUnk_0812714C:: @ 0812714C + .incbin "baserom.gba", 0x12714C, 0x0000080 + +gUnk_081271CC:: @ 081271CC + .incbin "baserom.gba", 0x1271CC, 0x0000008 + +gUnk_081271D4:: @ 081271D4 + .incbin "baserom.gba", 0x1271D4, 0x0000008 + +gUnk_081271DC:: @ 081271DC + .incbin "baserom.gba", 0x1271DC, 0x0000044 + +gUnk_08127220:: @ 08127220 + .incbin "baserom.gba", 0x127220, 0x0000020 + +gUnk_08127240:: @ 08127240 + .incbin "baserom.gba", 0x127240, 0x0000010 + +gUnk_08127250:: @ 08127250 + .incbin "baserom.gba", 0x127250, 0x0000008 + +gUnk_08127258:: @ 08127258 + .incbin "baserom.gba", 0x127258, 0x0000008 + +gUnk_08127260:: @ 08127260 + .incbin "baserom.gba", 0x127260, 0x0000008 + +gUnk_08127268:: @ 08127268 + .incbin "baserom.gba", 0x127268, 0x0000008 + +gUnk_08127270:: @ 08127270 + .incbin "baserom.gba", 0x127270, 0x0000008 + +gUnk_08127278:: @ 08127278 + .incbin "baserom.gba", 0x127278, 0x0000008 + +gUnk_08127280:: @ 08127280 + .incbin "baserom.gba", 0x127280, 0x0000018 + +gUnk_08127298:: @ 08127298 + .incbin "baserom.gba", 0x127298, 0x0000018 + +gUnk_081272B0:: @ 081272B0 + .incbin "baserom.gba", 0x1272B0, 0x0000018 + +gUnk_081272C8:: @ 081272C8 + .incbin "baserom.gba", 0x1272C8, 0x0000018 + +gUnk_081272E0:: @ 081272E0 + .incbin "baserom.gba", 0x1272E0, 0x0000010 + +gUnk_081272F0:: @ 081272F0 + .incbin "baserom.gba", 0x1272F0, 0x0000354 + +gUnk_08127644:: @ 08127644 + .incbin "baserom.gba", 0x127644, 0x0000354 + +gUnk_08127998:: @ 08127998 + .incbin "baserom.gba", 0x127998, 0x0000354 + +gUnk_08127CEC:: @ 08127CEC + .incbin "baserom.gba", 0x127CEC, 0x0000014 + +gUnk_08127D00:: @ 08127D00 + .incbin "baserom.gba", 0x127D00, 0x0000010 + +gUnk_08127D10:: @ 08127D10 + .incbin "baserom.gba", 0x127D10, 0x0000020 + +gUnk_08127D30:: @ 08127D30 + .incbin "baserom.gba", 0x127D30, 0x0000264 + +gUnk_08127F94:: @ 08127F94 + .incbin "baserom.gba", 0x127F94, 0x0000090 + +gUnk_08128024:: @ 08128024 + .incbin "baserom.gba", 0x128024, 0x00000A0 + +gUnk_081280C4:: @ 081280C4 + .incbin "baserom.gba", 0x1280C4, 0x0000018 + +gUnk_081280DC:: @ 081280DC + .incbin "baserom.gba", 0x1280DC, 0x0000012 + +gUnk_081280EE:: @ 081280EE + .incbin "baserom.gba", 0x1280EE, 0x0000006 + +gUnk_081280F4:: @ 081280F4 + .incbin "baserom.gba", 0x1280F4, 0x000000C + +gUnk_08128100:: @ 08128100 + .incbin "baserom.gba", 0x128100, 0x0000010 + +gUnk_08128110:: @ 08128110 + .incbin "baserom.gba", 0x128110, 0x0000010 + +gUnk_08128120:: @ 08128120 + .incbin "baserom.gba", 0x128120, 0x000001C + +gUnk_0812813C:: @ 0812813C + .incbin "baserom.gba", 0x12813C, 0x0000010 + +gUnk_0812814C:: @ 0812814C + .incbin "baserom.gba", 0x12814C, 0x0000010 + +gUnk_0812815C:: @ 0812815C + .incbin "baserom.gba", 0x12815C, 0x0000010 + +gUnk_0812816C:: @ 0812816C + .incbin "baserom.gba", 0x12816C, 0x0000018 + +gUnk_08128184:: @ 08128184 + .incbin "baserom.gba", 0x128184, 0x000000C + +gUnk_08128190:: @ 08128190 + .incbin "baserom.gba", 0x128190, 0x0000018 + +gUnk_081281A8:: @ 081281A8 + .incbin "baserom.gba", 0x1281A8, 0x0000890 + +gUnk_08128A38:: @ 08128A38 + .incbin "baserom.gba", 0x128A38, 0x00000A0 + +gUnk_08128AD8:: @ 08128AD8 + .incbin "baserom.gba", 0x128AD8, 0x0000058 + +gUnk_08128B30:: @ 08128B30 + .incbin "baserom.gba", 0x128B30, 0x0000018 + +gUnk_08128B48:: @ 08128B48 + .incbin "baserom.gba", 0x128B48, 0x0000008 + +gUnk_08128B50:: @ 08128B50 + .incbin "baserom.gba", 0x128B50, 0x0000014 + +gUnk_08128B64:: @ 08128B64 + .incbin "baserom.gba", 0x128B64, 0x0000090 + +gUnk_08128BF4:: @ 08128BF4 + .incbin "baserom.gba", 0x128BF4, 0x0000004 + +gUnk_08128BF8:: @ 08128BF8 + .incbin "baserom.gba", 0x128BF8, 0x0000008 + +gUnk_08128C00:: @ 08128C00 + .incbin "baserom.gba", 0x128C00, 0x0000004 + +gUnk_08128C04:: @ 08128C04 + .incbin "baserom.gba", 0x128C04, 0x0000010 + +gUnk_08128C14:: @ 08128C14 + .incbin "baserom.gba", 0x128C14, 0x0000080 + +gUnk_08128C94:: @ 08128C94 + .incbin "baserom.gba", 0x128C94, 0x0000080 + +gUnk_08128D14:: @ 08128D14 + .incbin "baserom.gba", 0x128D14, 0x0000010 + +gUnk_08128D24:: @ 08128D24 + .incbin "baserom.gba", 0x128D24, 0x000000C + +gUnk_08128D30:: @ 08128D30 + .incbin "baserom.gba", 0x128D30, 0x0000008 + +gUnk_08128D38:: @ 08128D38 + .incbin "baserom.gba", 0x128D38, 0x0000004 + +gUnk_08128D3C:: @ 08128D3C + .incbin "baserom.gba", 0x128D3C, 0x0000007 + +gUnk_08128D43:: @ 08128D43 + .incbin "baserom.gba", 0x128D43, 0x000000E + +gUnk_08128D51:: @ 08128D51 + .incbin "baserom.gba", 0x128D51, 0x0000007 + +gUnk_08128D58:: @ 08128D58 + .incbin "baserom.gba", 0x128D58, 0x0000008 + +gUnk_08128D60:: @ 08128D60 + .incbin "baserom.gba", 0x128D60, 0x0000010 + +gUnk_08128D70:: @ 08128D70 + .incbin "baserom.gba", 0x128D70, 0x0000040 + +gUnk_08128DB0:: @ 08128DB0 + .incbin "baserom.gba", 0x128DB0, 0x0000008 + +gUnk_08128DB8:: @ 08128DB8 + .incbin "baserom.gba", 0x128DB8, 0x0000004 + +gUnk_08128DBC:: @ 08128DBC + .incbin "baserom.gba", 0x128DBC, 0x0000010 + +gUnk_08128DCC:: @ 08128DCC + .incbin "baserom.gba", 0x128DCC, 0x0000008 + +gUnk_08128DD4:: @ 08128DD4 + .incbin "baserom.gba", 0x128DD4, 0x0000004 + +gUnk_08128DD8:: @ 08128DD8 + .incbin "baserom.gba", 0x128DD8, 0x0000010 + +gUnk_08128DE8:: @ 08128DE8 + .incbin "baserom.gba", 0x128DE8, 0x0000088 + +gUnk_08128E70:: @ 08128E70 + .incbin "baserom.gba", 0x128E70, 0x0000008 + +gUnk_08128E78:: @ 08128E78 + .incbin "baserom.gba", 0x128E78, 0x0000008 + +gUnk_08128E80:: @ 08128E80 + .incbin "baserom.gba", 0x128E80, 0x0000004 + +gUnk_08128E84:: @ 08128E84 + .incbin "baserom.gba", 0x128E84, 0x0000010 + +gUnk_08128E94:: @ 08128E94 + .incbin "baserom.gba", 0x128E94, 0x0000088 + +gUnk_08128F1C:: @ 08128F1C + .incbin "baserom.gba", 0x128F1C, 0x0000008 + +gUnk_08128F24:: @ 08128F24 + .incbin "baserom.gba", 0x128F24, 0x0000014 + +gUnk_08128F38:: @ 08128F38 + .incbin "baserom.gba", 0x128F38, 0x0000014 + +gUnk_08128F4C:: @ 08128F4C + .incbin "baserom.gba", 0x128F4C, 0x000000C + +gUnk_08128F58:: @ 08128F58 + .incbin "baserom.gba", 0x128F58, 0x0000050 + +gUnk_08128FA8:: @ 08128FA8 + .incbin "baserom.gba", 0x128FA8, 0x0000018 + +gUnk_08128FC0:: @ 08128FC0 + .incbin "baserom.gba", 0x128FC0, 0x0000018 + +gUnk_08128FD8:: @ 08128FD8 + .incbin "baserom.gba", 0x128FD8, 0x0000018 + +gUnk_08128FF0:: @ 08128FF0 + .incbin "baserom.gba", 0x128FF0, 0x0000014 + +gUnk_08129004:: @ 08129004 + .incbin "baserom.gba", 0x129004, 0x0000018 + +gUnk_0812901C:: @ 0812901C + .incbin "baserom.gba", 0x12901C, 0x0000014 + +gUnk_08129030:: @ 08129030 + .incbin "baserom.gba", 0x129030, 0x000002C + +gUnk_0812905C:: @ 0812905C + .incbin "baserom.gba", 0x12905C, 0x000000C + +gUnk_08129068:: @ 08129068 + .incbin "baserom.gba", 0x129068, 0x0000004 + +gUnk_0812906C:: @ 0812906C + .incbin "baserom.gba", 0x12906C, 0x0000006 + +gUnk_08129072:: @ 08129072 + .incbin "baserom.gba", 0x129072, 0x000001C + +gUnk_0812908E:: @ 0812908E + .incbin "baserom.gba", 0x12908E, 0x0000008 + +gUnk_08129096:: @ 08129096 + .incbin "baserom.gba", 0x129096, 0x000024C + +gUnk_081292E2:: @ 081292E2 + .incbin "baserom.gba", 0x1292E2, 0x000003E + +gUnk_08129320:: @ 08129320 + .incbin "baserom.gba", 0x129320, 0x0000098 + +gUnk_081293B8:: @ 081293B8 + .incbin "baserom.gba", 0x1293B8, 0x0000014 + +gUnk_081293CC:: @ 081293CC + .incbin "baserom.gba", 0x1293CC, 0x0000014 + +gUnk_081293E0:: @ 081293E0 + .incbin "baserom.gba", 0x1293E0, 0x0000010 + +gUnk_081293F0:: @ 081293F0 + .incbin "baserom.gba", 0x1293F0, 0x0000010 + +gUnk_08129400:: @ 08129400 + .incbin "baserom.gba", 0x129400, 0x0000010 + +gUnk_08129410:: @ 08129410 + .incbin "baserom.gba", 0x129410, 0x0000010 + +gUnk_08129420:: @ 08129420 + .incbin "baserom.gba", 0x129420, 0x0000010 + +gUnk_08129430:: @ 08129430 + .incbin "baserom.gba", 0x129430, 0x0000008 + +gUnk_08129438:: @ 08129438 + .incbin "baserom.gba", 0x129438, 0x0000008 + +gUnk_08129440:: @ 08129440 + .incbin "baserom.gba", 0x129440, 0x0000008 + +gUnk_08129448:: @ 08129448 + .incbin "baserom.gba", 0x129448, 0x0000008 + +gUnk_08129450:: @ 08129450 + .incbin "baserom.gba", 0x129450, 0x0000008 + +gUnk_08129458:: @ 08129458 + .incbin "baserom.gba", 0x129458, 0x0000008 + +gUnk_08129460:: @ 08129460 + .incbin "baserom.gba", 0x129460, 0x0000018 + +gUnk_08129478:: @ 08129478 + .incbin "baserom.gba", 0x129478, 0x0000008 + +gUnk_08129480:: @ 08129480 + .incbin "baserom.gba", 0x129480, 0x0000008 + +gUnk_08129488:: @ 08129488 + .incbin "baserom.gba", 0x129488, 0x0000008 + +gUnk_08129490:: @ 08129490 + .incbin "baserom.gba", 0x129490, 0x0000008 + +gUnk_08129498:: @ 08129498 + .incbin "baserom.gba", 0x129498, 0x0000008 + +gUnk_081294A0:: @ 081294A0 + .incbin "baserom.gba", 0x1294A0, 0x0000008 + +gUnk_081294A8:: @ 081294A8 + .incbin "baserom.gba", 0x1294A8, 0x0000018 + +gUnk_081294C0:: @ 081294C0 + .incbin "baserom.gba", 0x1294C0, 0x0000008 + +gUnk_081294C8:: @ 081294C8 + .incbin "baserom.gba", 0x1294C8, 0x0000008 + +gUnk_081294D0:: @ 081294D0 + .incbin "baserom.gba", 0x1294D0, 0x0000008 + +gUnk_081294D8:: @ 081294D8 + .incbin "baserom.gba", 0x1294D8, 0x0000008 + +gUnk_081294E0:: @ 081294E0 + .incbin "baserom.gba", 0x1294E0, 0x0000008 + +gUnk_081294E8:: @ 081294E8 + .incbin "baserom.gba", 0x1294E8, 0x0000008 + +gUnk_081294F0:: @ 081294F0 + .incbin "baserom.gba", 0x1294F0, 0x0000018 + +gUnk_08129508:: @ 08129508 + .incbin "baserom.gba", 0x129508, 0x0000008 + +gUnk_08129510:: @ 08129510 + .incbin "baserom.gba", 0x129510, 0x0000008 + +gUnk_08129518:: @ 08129518 + .incbin "baserom.gba", 0x129518, 0x0000008 + +gUnk_08129520:: @ 08129520 + .incbin "baserom.gba", 0x129520, 0x0000008 + +gUnk_08129528:: @ 08129528 + .incbin "baserom.gba", 0x129528, 0x0000008 + +gUnk_08129530:: @ 08129530 + .incbin "baserom.gba", 0x129530, 0x0000008 + +gUnk_08129538:: @ 08129538 + .incbin "baserom.gba", 0x129538, 0x0000018 + +gUnk_08129550:: @ 08129550 + .incbin "baserom.gba", 0x129550, 0x0000008 + +gUnk_08129558:: @ 08129558 + .incbin "baserom.gba", 0x129558, 0x0000008 + +gUnk_08129560:: @ 08129560 + .incbin "baserom.gba", 0x129560, 0x0000008 + +gUnk_08129568:: @ 08129568 + .incbin "baserom.gba", 0x129568, 0x0000008 + +gUnk_08129570:: @ 08129570 + .incbin "baserom.gba", 0x129570, 0x0000008 + +gUnk_08129578:: @ 08129578 + .incbin "baserom.gba", 0x129578, 0x0000008 + +gUnk_08129580:: @ 08129580 + .incbin "baserom.gba", 0x129580, 0x0000008 + +gUnk_08129588:: @ 08129588 + .incbin "baserom.gba", 0x129588, 0x0000008 + +gUnk_08129590:: @ 08129590 + .incbin "baserom.gba", 0x129590, 0x0000008 + +gUnk_08129598:: @ 08129598 + .incbin "baserom.gba", 0x129598, 0x0000008 + +gUnk_081295A0:: @ 081295A0 + .incbin "baserom.gba", 0x1295A0, 0x0000008 + +gUnk_081295A8:: @ 081295A8 + .incbin "baserom.gba", 0x1295A8, 0x0000008 + +gUnk_081295B0:: @ 081295B0 + .incbin "baserom.gba", 0x1295B0, 0x0000008 + +gUnk_081295B8:: @ 081295B8 + .incbin "baserom.gba", 0x1295B8, 0x0000008 + +gUnk_081295C0:: @ 081295C0 + .incbin "baserom.gba", 0x1295C0, 0x0000008 + +gUnk_081295C8:: @ 081295C8 + .incbin "baserom.gba", 0x1295C8, 0x0000008 + +gUnk_081295D0:: @ 081295D0 + .incbin "baserom.gba", 0x1295D0, 0x0000014 + +gUnk_081295E4:: @ 081295E4 + .incbin "baserom.gba", 0x1295E4, 0x0000010 + +gUnk_081295F4:: @ 081295F4 + .incbin "baserom.gba", 0x1295F4, 0x0000010 + +gUnk_08129604:: @ 08129604 + .incbin "baserom.gba", 0x129604, 0x0000008 + +gUnk_0812960C:: @ 0812960C + .incbin "baserom.gba", 0x12960C, 0x0000014 + +gUnk_08129620:: @ 08129620 + .incbin "baserom.gba", 0x129620, 0x0000014 + +gUnk_08129634:: @ 08129634 + .incbin "baserom.gba", 0x129634, 0x0000014 + +gUnk_08129648:: @ 08129648 + .incbin "baserom.gba", 0x129648, 0x0000008 + +gUnk_08129650:: @ 08129650 + .incbin "baserom.gba", 0x129650, 0x0000014 + +gUnk_08129664:: @ 08129664 + .incbin "baserom.gba", 0x129664, 0x0000008 + +gUnk_0812966C:: @ 0812966C + .incbin "baserom.gba", 0x12966C, 0x0000084 + +gUnk_081296F0:: @ 081296F0 + .incbin "baserom.gba", 0x1296F0, 0x0000014 + +gUnk_08129704:: @ 08129704 + .incbin "baserom.gba", 0x129704, 0x0000014 + +gUnk_08129718:: @ 08129718 + .incbin "baserom.gba", 0x129718, 0x0000014 + +gUnk_0812972C:: @ 0812972C + .incbin "baserom.gba", 0x12972C, 0x0000008 + +gUnk_08129734:: @ 08129734 + .incbin "baserom.gba", 0x129734, 0x000000C + +gUnk_08129740:: @ 08129740 + .incbin "baserom.gba", 0x129740, 0x0000014 + +gUnk_08129754:: @ 08129754 + .incbin "baserom.gba", 0x129754, 0x0000010 + +gUnk_08129764:: @ 08129764 + .incbin "baserom.gba", 0x129764, 0x000000C + +gUnk_08129770:: @ 08129770 + .incbin "baserom.gba", 0x129770, 0x0000005 + +gUnk_08129775:: @ 08129775 + .incbin "baserom.gba", 0x129775, 0x000001B + +gUnk_08129790:: @ 08129790 + .incbin "baserom.gba", 0x129790, 0x000000C + +gUnk_0812979C:: @ 0812979C + .incbin "baserom.gba", 0x12979C, 0x0000010 + +gUnk_081297AC:: @ 081297AC + .incbin "baserom.gba", 0x1297AC, 0x0000009 + +gUnk_081297B5:: @ 081297B5 + .incbin "baserom.gba", 0x1297B5, 0x0000009 + +gUnk_081297BE:: @ 081297BE + .incbin "baserom.gba", 0x1297BE, 0x0000009 + +gUnk_081297C7:: @ 081297C7 + .incbin "baserom.gba", 0x1297C7, 0x0000009 + +gUnk_081297D0:: @ 081297D0 + .incbin "baserom.gba", 0x1297D0, 0x0000005 + +gUnk_081297D5:: @ 081297D5 + .incbin "baserom.gba", 0x1297D5, 0x0000005 + +gUnk_081297DA:: @ 081297DA + .incbin "baserom.gba", 0x1297DA, 0x0000005 + +gUnk_081297DF:: @ 081297DF + .incbin "baserom.gba", 0x1297DF, 0x0000005 + +gUnk_081297E4:: @ 081297E4 + .incbin "baserom.gba", 0x1297E4, 0x0000005 + +gUnk_081297E9:: @ 081297E9 + .incbin "baserom.gba", 0x1297E9, 0x0000005 + +gUnk_081297EE:: @ 081297EE + .incbin "baserom.gba", 0x1297EE, 0x0000005 + +gUnk_081297F3:: @ 081297F3 + .incbin "baserom.gba", 0x1297F3, 0x0000005 + +gUnk_081297F8:: @ 081297F8 + .incbin "baserom.gba", 0x1297F8, 0x0000034 + +gUnk_0812982C:: @ 0812982C + .incbin "baserom.gba", 0x12982C, 0x0000010 + +gUnk_0812983C:: @ 0812983C + .incbin "baserom.gba", 0x12983C, 0x0000009 + +gUnk_08129845:: @ 08129845 + .incbin "baserom.gba", 0x129845, 0x0000009 + +gUnk_0812984E:: @ 0812984E + .incbin "baserom.gba", 0x12984E, 0x0000009 + +gUnk_08129857:: @ 08129857 + .incbin "baserom.gba", 0x129857, 0x0000009 + +gUnk_08129860:: @ 08129860 + .incbin "baserom.gba", 0x129860, 0x000000D + +gUnk_0812986D:: @ 0812986D + .incbin "baserom.gba", 0x12986D, 0x000000D + +gUnk_0812987A:: @ 0812987A + .incbin "baserom.gba", 0x12987A, 0x000000D + +gUnk_08129887:: @ 08129887 + .incbin "baserom.gba", 0x129887, 0x000000D + +gUnk_08129894:: @ 08129894 + .incbin "baserom.gba", 0x129894, 0x0000024 + +gUnk_081298B8:: @ 081298B8 + .incbin "baserom.gba", 0x1298B8, 0x0000010 + +gUnk_081298C8:: @ 081298C8 + .incbin "baserom.gba", 0x1298C8, 0x0000009 + +gUnk_081298D1:: @ 081298D1 + .incbin "baserom.gba", 0x1298D1, 0x0000009 + +gUnk_081298DA:: @ 081298DA + .incbin "baserom.gba", 0x1298DA, 0x0000009 + +gUnk_081298E3:: @ 081298E3 + .incbin "baserom.gba", 0x1298E3, 0x0000009 + +gUnk_081298EC:: @ 081298EC + .incbin "baserom.gba", 0x1298EC, 0x0000011 + +gUnk_081298FD:: @ 081298FD + .incbin "baserom.gba", 0x1298FD, 0x0000011 + +gUnk_0812990E:: @ 0812990E + .incbin "baserom.gba", 0x12990E, 0x0000011 + +gUnk_0812991F:: @ 0812991F + .incbin "baserom.gba", 0x12991F, 0x0000011 + +gUnk_08129930:: @ 08129930 + .incbin "baserom.gba", 0x129930, 0x0000024 + +gUnk_08129954:: @ 08129954 + .incbin "baserom.gba", 0x129954, 0x0000014 + +gUnk_08129968:: @ 08129968 + .incbin "baserom.gba", 0x129968, 0x0000010 + +gUnk_08129978:: @ 08129978 + .incbin "baserom.gba", 0x129978, 0x0000008 + +gUnk_08129980:: @ 08129980 + .incbin "baserom.gba", 0x129980, 0x0000008 + +gUnk_08129988:: @ 08129988 + .incbin "baserom.gba", 0x129988, 0x0000010 + +gUnk_08129998:: @ 08129998 + .incbin "baserom.gba", 0x129998, 0x0000010 + +gUnk_081299A8:: @ 081299A8 + .incbin "baserom.gba", 0x1299A8, 0x0000008 + +gUnk_081299B0:: @ 081299B0 + .incbin "baserom.gba", 0x1299B0, 0x0000008 + +gUnk_081299B8:: @ 081299B8 + .incbin "baserom.gba", 0x1299B8, 0x0000008 + +gUnk_081299C0:: @ 081299C0 + .incbin "baserom.gba", 0x1299C0, 0x0000008 + +gUnk_081299C8:: @ 081299C8 + .incbin "baserom.gba", 0x1299C8, 0x0000008 + +gUnk_081299D0:: @ 081299D0 + .incbin "baserom.gba", 0x1299D0, 0x0000014 + +gUnk_081299E4:: @ 081299E4 + .incbin "baserom.gba", 0x1299E4, 0x0000014 + +gUnk_081299F8:: @ 081299F8 + .incbin "baserom.gba", 0x1299F8, 0x0000020 + +gUnk_08129A18:: @ 08129A18 + .incbin "baserom.gba", 0x129A18, 0x0000008 + +gUnk_08129A20:: @ 08129A20 + .incbin "baserom.gba", 0x129A20, 0x0000008 + +gUnk_08129A28:: @ 08129A28 + .incbin "baserom.gba", 0x129A28, 0x0000005 + +gUnk_08129A2D:: @ 08129A2D + .incbin "baserom.gba", 0x129A2D, 0x0000005 + +gUnk_08129A32:: @ 08129A32 + .incbin "baserom.gba", 0x129A32, 0x0000011 + +gUnk_08129A43:: @ 08129A43 + .incbin "baserom.gba", 0x129A43, 0x0000011 + +gUnk_08129A54:: @ 08129A54 + .incbin "baserom.gba", 0x129A54, 0x0000010 + +gUnk_08129A64:: @ 08129A64 + .incbin "baserom.gba", 0x129A64, 0x000000C + +gUnk_08129A70:: @ 08129A70 + .incbin "baserom.gba", 0x129A70, 0x0000019 + +gUnk_08129A89:: @ 08129A89 + .incbin "baserom.gba", 0x129A89, 0x0000027 + +gUnk_08129AB0:: @ 08129AB0 + .incbin "baserom.gba", 0x129AB0, 0x000000C + +gUnk_08129ABC:: @ 08129ABC + .incbin "baserom.gba", 0x129ABC, 0x0000014 + +gUnk_08129AD0:: @ 08129AD0 + .incbin "baserom.gba", 0x129AD0, 0x000000C + +gUnk_08129ADC:: @ 08129ADC + .incbin "baserom.gba", 0x129ADC, 0x0000004 + +gUnk_08129AE0:: @ 08129AE0 + .incbin "baserom.gba", 0x129AE0, 0x0000018 + +gUnk_08129AF8:: @ 08129AF8 + .incbin "baserom.gba", 0x129AF8, 0x0000010 + +gUnk_08129B08:: @ 08129B08 + .incbin "baserom.gba", 0x129B08, 0x0000018 + +gUnk_08129B20:: @ 08129B20 + .incbin "baserom.gba", 0x129B20, 0x0000030 + +gUnk_08129B50:: @ 08129B50 + .incbin "baserom.gba", 0x129B50, 0x0000008 + +gUnk_08129B58:: @ 08129B58 + .incbin "baserom.gba", 0x129B58, 0x0000018 + +gUnk_08129B70:: @ 08129B70 + .incbin "baserom.gba", 0x129B70, 0x0000008 + +gUnk_08129B78:: @ 08129B78 + .incbin "baserom.gba", 0x129B78, 0x000000C + +gUnk_08129B84:: @ 08129B84 + .incbin "baserom.gba", 0x129B84, 0x0000011 + +gUnk_08129B95:: @ 08129B95 + .incbin "baserom.gba", 0x129B95, 0x0000011 + +gUnk_08129BA6:: @ 08129BA6 + .incbin "baserom.gba", 0x129BA6, 0x0000011 + +gUnk_08129BB7:: @ 08129BB7 + .incbin "baserom.gba", 0x129BB7, 0x0000011 + +gUnk_08129BC8:: @ 08129BC8 + .incbin "baserom.gba", 0x129BC8, 0x0000024 + +gUnk_08129BEC:: @ 08129BEC + .incbin "baserom.gba", 0x129BEC, 0x0000014 + +gUnk_08129C00:: @ 08129C00 + .incbin "baserom.gba", 0x129C00, 0x0000008 + +gUnk_08129C08:: @ 08129C08 + .incbin "baserom.gba", 0x129C08, 0x000006C + +gUnk_08129C74:: @ 08129C74 + .incbin "baserom.gba", 0x129C74, 0x0000008 + +gUnk_08129C7C:: @ 08129C7C + .incbin "baserom.gba", 0x129C7C, 0x0000014 + +gUnk_08129C90:: @ 08129C90 + .incbin "baserom.gba", 0x129C90, 0x0000014 + +gUnk_08129CA4:: @ 08129CA4 + .incbin "baserom.gba", 0x129CA4, 0x0000008 + +gUnk_08129CAC:: @ 08129CAC + .incbin "baserom.gba", 0x129CAC, 0x0000008 + +gUnk_08129CB4:: @ 08129CB4 + .incbin "baserom.gba", 0x129CB4, 0x0000008 + +gUnk_08129CBC:: @ 08129CBC + .incbin "baserom.gba", 0x129CBC, 0x0000008 + +gUnk_08129CC4:: @ 08129CC4 + .incbin "baserom.gba", 0x129CC4, 0x0000008 + +gUnk_08129CCC:: @ 08129CCC + .incbin "baserom.gba", 0x129CCC, 0x0000008 + +gUnk_08129CD4:: @ 08129CD4 + .incbin "baserom.gba", 0x129CD4, 0x0000008 + +gUnk_08129CDC:: @ 08129CDC + .incbin "baserom.gba", 0x129CDC, 0x0000008 + +gUnk_08129CE4:: @ 08129CE4 + .incbin "baserom.gba", 0x129CE4, 0x0000008 + +gUnk_08129CEC:: @ 08129CEC + .incbin "baserom.gba", 0x129CEC, 0x0000008 + +gUnk_08129CF4:: @ 08129CF4 + .incbin "baserom.gba", 0x129CF4, 0x0000020 + +gUnk_08129D14:: @ 08129D14 + .incbin "baserom.gba", 0x129D14, 0x0000008 + +gUnk_08129D1C:: @ 08129D1C + .incbin "baserom.gba", 0x129D1C, 0x0000005 + +gUnk_08129D21:: @ 08129D21 + .incbin "baserom.gba", 0x129D21, 0x0000005 + +gUnk_08129D26:: @ 08129D26 + .incbin "baserom.gba", 0x129D26, 0x0000005 + +gUnk_08129D2B:: @ 08129D2B + .incbin "baserom.gba", 0x129D2B, 0x0000005 + +gUnk_08129D30:: @ 08129D30 + .incbin "baserom.gba", 0x129D30, 0x0000005 + +gUnk_08129D35:: @ 08129D35 + .incbin "baserom.gba", 0x129D35, 0x0000005 + +gUnk_08129D3A:: @ 08129D3A + .incbin "baserom.gba", 0x129D3A, 0x0000005 + +gUnk_08129D3F:: @ 08129D3F + .incbin "baserom.gba", 0x129D3F, 0x0000005 + +gUnk_08129D44:: @ 08129D44 + .incbin "baserom.gba", 0x129D44, 0x0000011 + +gUnk_08129D55:: @ 08129D55 + .incbin "baserom.gba", 0x129D55, 0x0000011 + +gUnk_08129D66:: @ 08129D66 + .incbin "baserom.gba", 0x129D66, 0x0000011 + +gUnk_08129D77:: @ 08129D77 + .incbin "baserom.gba", 0x129D77, 0x0000011 + +gUnk_08129D88:: @ 08129D88 + .incbin "baserom.gba", 0x129D88, 0x0000011 + +gUnk_08129D99:: @ 08129D99 + .incbin "baserom.gba", 0x129D99, 0x0000011 + +gUnk_08129DAA:: @ 08129DAA + .incbin "baserom.gba", 0x129DAA, 0x0000011 + +gUnk_08129DBB:: @ 08129DBB + .incbin "baserom.gba", 0x129DBB, 0x0000011 + +gUnk_08129DCC:: @ 08129DCC + .incbin "baserom.gba", 0x129DCC, 0x000000C + +gUnk_08129DD8:: @ 08129DD8 + .incbin "baserom.gba", 0x129DD8, 0x000000C + +gUnk_08129DE4:: @ 08129DE4 + .incbin "baserom.gba", 0x129DE4, 0x000000C + +gUnk_08129DF0:: @ 08129DF0 + .incbin "baserom.gba", 0x129DF0, 0x000000C + +gUnk_08129DFC:: @ 08129DFC + .incbin "baserom.gba", 0x129DFC, 0x000000C + +gUnk_08129E08:: @ 08129E08 + .incbin "baserom.gba", 0x129E08, 0x000000C + +gUnk_08129E14:: @ 08129E14 + .incbin "baserom.gba", 0x129E14, 0x000000C + +gUnk_08129E20:: @ 08129E20 + .incbin "baserom.gba", 0x129E20, 0x000000C + +gUnk_08129E2C:: @ 08129E2C + .incbin "baserom.gba", 0x129E2C, 0x0000021 + +gUnk_08129E4D:: @ 08129E4D + .incbin "baserom.gba", 0x129E4D, 0x0000021 + +gUnk_08129E6E:: @ 08129E6E + .incbin "baserom.gba", 0x129E6E, 0x0000021 + +gUnk_08129E8F:: @ 08129E8F + .incbin "baserom.gba", 0x129E8F, 0x0000021 + +gUnk_08129EB0:: @ 08129EB0 + .incbin "baserom.gba", 0x129EB0, 0x0000021 + +gUnk_08129ED1:: @ 08129ED1 + .incbin "baserom.gba", 0x129ED1, 0x0000021 + +gUnk_08129EF2:: @ 08129EF2 + .incbin "baserom.gba", 0x129EF2, 0x0000021 + +gUnk_08129F13:: @ 08129F13 + .incbin "baserom.gba", 0x129F13, 0x0000021 + +gUnk_08129F34:: @ 08129F34 + .incbin "baserom.gba", 0x129F34, 0x0000084 + +gUnk_08129FB8:: @ 08129FB8 + .incbin "baserom.gba", 0x129FB8, 0x0000018 + +gUnk_08129FD0:: @ 08129FD0 + .incbin "baserom.gba", 0x129FD0, 0x0000014 + +gUnk_08129FE4:: @ 08129FE4 + .incbin "baserom.gba", 0x129FE4, 0x0000014 + +gUnk_08129FF8:: @ 08129FF8 + .incbin "baserom.gba", 0x129FF8, 0x000000C + +gUnk_0812A004:: @ 0812A004 + .incbin "baserom.gba", 0x12A004, 0x0000010 + +gUnk_0812A014:: @ 0812A014 + .incbin "baserom.gba", 0x12A014, 0x0000018 + +gUnk_0812A02C:: @ 0812A02C + .incbin "baserom.gba", 0x12A02C, 0x0000010 + +gUnk_0812A03C:: @ 0812A03C + .incbin "baserom.gba", 0x12A03C, 0x0000010 + +gUnk_0812A04C:: @ 0812A04C + .incbin "baserom.gba", 0x12A04C, 0x0000010 + +gUnk_0812A05C:: @ 0812A05C + .incbin "baserom.gba", 0x12A05C, 0x0000008 + +gUnk_0812A064:: @ 0812A064 + .incbin "baserom.gba", 0x12A064, 0x0000008 + +gUnk_0812A06C:: @ 0812A06C + .incbin "baserom.gba", 0x12A06C, 0x0000008 + +gUnk_0812A074:: @ 0812A074 + .incbin "baserom.gba", 0x12A074, 0x0000010 + +gUnk_0812A084:: @ 0812A084 + .incbin "baserom.gba", 0x12A084, 0x0000008 + +gUnk_0812A08C:: @ 0812A08C + .incbin "baserom.gba", 0x12A08C, 0x0000004 + +gUnk_0812A090:: @ 0812A090 + .incbin "baserom.gba", 0x12A090, 0x0000004 + +gUnk_0812A094:: @ 0812A094 + .incbin "baserom.gba", 0x12A094, 0x0000004 + +gUnk_0812A098:: @ 0812A098 + .incbin "baserom.gba", 0x12A098, 0x0000004 + +gUnk_0812A09C:: @ 0812A09C + .incbin "baserom.gba", 0x12A09C, 0x000000C + +gUnk_0812A0A8:: @ 0812A0A8 + .incbin "baserom.gba", 0x12A0A8, 0x000000C + +gUnk_0812A0B4:: @ 0812A0B4 + .incbin "baserom.gba", 0x12A0B4, 0x000000C + +gUnk_0812A0C0:: @ 0812A0C0 + .incbin "baserom.gba", 0x12A0C0, 0x000000C + +gUnk_0812A0CC:: @ 0812A0CC + .incbin "baserom.gba", 0x12A0CC, 0x0000048 + +gUnk_0812A114:: @ 0812A114 + .incbin "baserom.gba", 0x12A114, 0x0000048 + +gUnk_0812A15C:: @ 0812A15C + .incbin "baserom.gba", 0x12A15C, 0x0000048 + +gUnk_0812A1A4:: @ 0812A1A4 + .incbin "baserom.gba", 0x12A1A4, 0x0000048 + +gUnk_0812A1EC:: @ 0812A1EC + .incbin "baserom.gba", 0x12A1EC, 0x0000024 + +gUnk_0812A210:: @ 0812A210 + .incbin "baserom.gba", 0x12A210, 0x0000024 + +gUnk_0812A234:: @ 0812A234 + .incbin "baserom.gba", 0x12A234, 0x0000024 + +gUnk_0812A258:: @ 0812A258 + .incbin "baserom.gba", 0x12A258, 0x0000024 + +gUnk_0812A27C:: @ 0812A27C + .incbin "baserom.gba", 0x12A27C, 0x000003C + +gUnk_0812A2B8:: @ 0812A2B8 + .incbin "baserom.gba", 0x12A2B8, 0x000003C + +gUnk_0812A2F4:: @ 0812A2F4 + .incbin "baserom.gba", 0x12A2F4, 0x000003C + +gUnk_0812A330:: @ 0812A330 + .incbin "baserom.gba", 0x12A330, 0x000003C + +gUnk_0812A36C:: @ 0812A36C + .incbin "baserom.gba", 0x12A36C, 0x0000054 + +gUnk_0812A3C0:: @ 0812A3C0 + .incbin "baserom.gba", 0x12A3C0, 0x0000014 + +gUnk_0812A3D4:: @ 0812A3D4 + .incbin "baserom.gba", 0x12A3D4, 0x000000C + +gUnk_0812A3E0:: @ 0812A3E0 + .incbin "baserom.gba", 0x12A3E0, 0x0000014 + +gUnk_0812A3F4:: @ 0812A3F4 + .incbin "baserom.gba", 0x12A3F4, 0x0000008 + +gUnk_0812A3FC:: @ 0812A3FC + .incbin "baserom.gba", 0x12A3FC, 0x0000014 + +gUnk_0812A410:: @ 0812A410 + .incbin "baserom.gba", 0x12A410, 0x0000008 + +gUnk_0812A418:: @ 0812A418 + .incbin "baserom.gba", 0x12A418, 0x0000018 + +gUnk_0812A430:: @ 0812A430 + .incbin "baserom.gba", 0x12A430, 0x0000010 + +gUnk_0812A440:: @ 0812A440 + .incbin "baserom.gba", 0x12A440, 0x000000C + +gUnk_0812A44C:: @ 0812A44C + .incbin "baserom.gba", 0x12A44C, 0x0000021 + +gUnk_0812A46D:: @ 0812A46D + .incbin "baserom.gba", 0x12A46D, 0x000001B + +gUnk_0812A488:: @ 0812A488 + .incbin "baserom.gba", 0x12A488, 0x000000C + +gUnk_0812A494:: @ 0812A494 + .incbin "baserom.gba", 0x12A494, 0x0000014 + +gUnk_0812A4A8:: @ 0812A4A8 + .incbin "baserom.gba", 0x12A4A8, 0x0000020 + +gUnk_0812A4C8:: @ 0812A4C8 + .incbin "baserom.gba", 0x12A4C8, 0x0000014 + +gUnk_0812A4DC:: @ 0812A4DC + .incbin "baserom.gba", 0x12A4DC, 0x0000010 + +gUnk_0812A4EC:: @ 0812A4EC + .incbin "baserom.gba", 0x12A4EC, 0x00000A0 + +gUnk_0812A58C:: @ 0812A58C + .incbin "baserom.gba", 0x12A58C, 0x0000014 + +gUnk_0812A5A0:: @ 0812A5A0 + .incbin "baserom.gba", 0x12A5A0, 0x000000C + +gUnk_0812A5AC:: @ 0812A5AC + .incbin "baserom.gba", 0x12A5AC, 0x000000D + +gUnk_0812A5B9:: @ 0812A5B9 + .incbin "baserom.gba", 0x12A5B9, 0x000000D + +gUnk_0812A5C6:: @ 0812A5C6 + .incbin "baserom.gba", 0x12A5C6, 0x000000E + +gUnk_0812A5D4:: @ 0812A5D4 + .incbin "baserom.gba", 0x12A5D4, 0x0000014 + +gUnk_0812A5E8:: @ 0812A5E8 + .incbin "baserom.gba", 0x12A5E8, 0x000000C + +gUnk_0812A5F4:: @ 0812A5F4 + .incbin "baserom.gba", 0x12A5F4, 0x0000020 + +gUnk_0812A614:: @ 0812A614 + .incbin "baserom.gba", 0x12A614, 0x0000008 + +gUnk_0812A61C:: @ 0812A61C + .incbin "baserom.gba", 0x12A61C, 0x0000008 + +gUnk_0812A624:: @ 0812A624 + .incbin "baserom.gba", 0x12A624, 0x0000008 + +gUnk_0812A62C:: @ 0812A62C + .incbin "baserom.gba", 0x12A62C, 0x0000008 + +gUnk_0812A634:: @ 0812A634 + .incbin "baserom.gba", 0x12A634, 0x0000008 + +gUnk_0812A63C:: @ 0812A63C + .incbin "baserom.gba", 0x12A63C, 0x0000020 + +gUnk_0812A65C:: @ 0812A65C + .incbin "baserom.gba", 0x12A65C, 0x0000009 + +gUnk_0812A665:: @ 0812A665 + .incbin "baserom.gba", 0x12A665, 0x0000009 + +gUnk_0812A66E:: @ 0812A66E + .incbin "baserom.gba", 0x12A66E, 0x0000009 + +gUnk_0812A677:: @ 0812A677 + .incbin "baserom.gba", 0x12A677, 0x0000009 + +gUnk_0812A680:: @ 0812A680 + .incbin "baserom.gba", 0x12A680, 0x0000009 + +gUnk_0812A689:: @ 0812A689 + .incbin "baserom.gba", 0x12A689, 0x000000B + +gUnk_0812A694:: @ 0812A694 + .incbin "baserom.gba", 0x12A694, 0x0000020 + +gUnk_0812A6B4:: @ 0812A6B4 + .incbin "baserom.gba", 0x12A6B4, 0x0000008 + +gUnk_0812A6BC:: @ 0812A6BC + .incbin "baserom.gba", 0x12A6BC, 0x0000008 + +gUnk_0812A6C4:: @ 0812A6C4 + .incbin "baserom.gba", 0x12A6C4, 0x0000008 + +gUnk_0812A6CC:: @ 0812A6CC + .incbin "baserom.gba", 0x12A6CC, 0x0000008 + +gUnk_0812A6D4:: @ 0812A6D4 + .incbin "baserom.gba", 0x12A6D4, 0x000000E + +gUnk_0812A6E2:: @ 0812A6E2 + .incbin "baserom.gba", 0x12A6E2, 0x000000D + +gUnk_0812A6EF:: @ 0812A6EF + .incbin "baserom.gba", 0x12A6EF, 0x000000D + +gUnk_0812A6FC:: @ 0812A6FC + .incbin "baserom.gba", 0x12A6FC, 0x000000D + +gUnk_0812A709:: @ 0812A709 + .incbin "baserom.gba", 0x12A709, 0x000000D + +gUnk_0812A716:: @ 0812A716 + .incbin "baserom.gba", 0x12A716, 0x000000D + +gUnk_0812A723:: @ 0812A723 + .incbin "baserom.gba", 0x12A723, 0x000000D + +gUnk_0812A730:: @ 0812A730 + .incbin "baserom.gba", 0x12A730, 0x000000D + +gUnk_0812A73D:: @ 0812A73D + .incbin "baserom.gba", 0x12A73D, 0x000000D + +gUnk_0812A74A:: @ 0812A74A + .incbin "baserom.gba", 0x12A74A, 0x000000D + +gUnk_0812A757:: @ 0812A757 + .incbin "baserom.gba", 0x12A757, 0x000000D + +gUnk_0812A764:: @ 0812A764 + .incbin "baserom.gba", 0x12A764, 0x000000D + +gUnk_0812A771:: @ 0812A771 + .incbin "baserom.gba", 0x12A771, 0x000000D + +gUnk_0812A77E:: @ 0812A77E + .incbin "baserom.gba", 0x12A77E, 0x000000D + +gUnk_0812A78B:: @ 0812A78B + .incbin "baserom.gba", 0x12A78B, 0x000000D + +gUnk_0812A798:: @ 0812A798 + .incbin "baserom.gba", 0x12A798, 0x000003C + +gUnk_0812A7D4:: @ 0812A7D4 + .incbin "baserom.gba", 0x12A7D4, 0x0000018 + +gUnk_0812A7EC:: @ 0812A7EC + .incbin "baserom.gba", 0x12A7EC, 0x000000C + +gUnk_0812A7F8:: @ 0812A7F8 + .incbin "baserom.gba", 0x12A7F8, 0x0000008 + +gUnk_0812A800:: @ 0812A800 + .incbin "baserom.gba", 0x12A800, 0x0000008 + +gUnk_0812A808:: @ 0812A808 + .incbin "baserom.gba", 0x12A808, 0x000000C + +gUnk_0812A814:: @ 0812A814 + .incbin "baserom.gba", 0x12A814, 0x0000011 + +gUnk_0812A825:: @ 0812A825 + .incbin "baserom.gba", 0x12A825, 0x000001B + +gUnk_0812A840:: @ 0812A840 + .incbin "baserom.gba", 0x12A840, 0x000000C + +gUnk_0812A84C:: @ 0812A84C + .incbin "baserom.gba", 0x12A84C, 0x0000014 + +gUnk_0812A860:: @ 0812A860 + .incbin "baserom.gba", 0x12A860, 0x0000011 + +gUnk_0812A871:: @ 0812A871 + .incbin "baserom.gba", 0x12A871, 0x0000059 + +gUnk_0812A8CA:: @ 0812A8CA + .incbin "baserom.gba", 0x12A8CA, 0x0000061 + +gUnk_0812A92B:: @ 0812A92B + .incbin "baserom.gba", 0x12A92B, 0x0000015 + +gUnk_0812A940:: @ 0812A940 + .incbin "baserom.gba", 0x12A940, 0x0000014 + +gUnk_0812A954:: @ 0812A954 + .incbin "baserom.gba", 0x12A954, 0x0000014 + +gUnk_0812A968:: @ 0812A968 + .incbin "baserom.gba", 0x12A968, 0x0000014 + +gUnk_0812A97C:: @ 0812A97C + .incbin "baserom.gba", 0x12A97C, 0x0000006 + +gUnk_0812A982:: @ 0812A982 + .incbin "baserom.gba", 0x12A982, 0x0000008 + +gUnk_0812A98A:: @ 0812A98A + .incbin "baserom.gba", 0x12A98A, 0x000000A + +gUnk_0812A994:: @ 0812A994 + .incbin "baserom.gba", 0x12A994, 0x0000014 + +gUnk_0812A9A8:: @ 0812A9A8 + .incbin "baserom.gba", 0x12A9A8, 0x000000C + +gUnk_0812A9B4:: @ 0812A9B4 + .incbin "baserom.gba", 0x12A9B4, 0x0000004 + +gUnk_0812A9B8:: @ 0812A9B8 + .incbin "baserom.gba", 0x12A9B8, 0x0000002 + +gUnk_0812A9BA:: @ 0812A9BA + .incbin "baserom.gba", 0x12A9BA, 0x0000006 + +gUnk_0812A9C0:: @ 0812A9C0 + .incbin "baserom.gba", 0x12A9C0, 0x0000018 + +gUnk_0812A9D8:: @ 0812A9D8 + .incbin "baserom.gba", 0x12A9D8, 0x0000014 + +gUnk_0812A9EC:: @ 0812A9EC + .incbin "baserom.gba", 0x12A9EC, 0x0000010 + +gUnk_0812A9FC:: @ 0812A9FC + .incbin "baserom.gba", 0x12A9FC, 0x0000035 + +gUnk_0812AA31:: @ 0812AA31 + .incbin "baserom.gba", 0x12AA31, 0x000001F + +gUnk_0812AA50:: @ 0812AA50 + .incbin "baserom.gba", 0x12AA50, 0x000000C + +gUnk_0812AA5C:: @ 0812AA5C + .incbin "baserom.gba", 0x12AA5C, 0x0000018 + +gUnk_0812AA74:: @ 0812AA74 + .incbin "baserom.gba", 0x12AA74, 0x000000C + +gUnk_0812AA80:: @ 0812AA80 + .incbin "baserom.gba", 0x12AA80, 0x0000008 + +gUnk_0812AA88:: @ 0812AA88 + .incbin "baserom.gba", 0x12AA88, 0x0000009 + +gUnk_0812AA91:: @ 0812AA91 + .incbin "baserom.gba", 0x12AA91, 0x0000009 + +gUnk_0812AA9A:: @ 0812AA9A + .incbin "baserom.gba", 0x12AA9A, 0x0000012 + +gUnk_0812AAAC:: @ 0812AAAC + .incbin "baserom.gba", 0x12AAAC, 0x0000010 + +gUnk_0812AABC:: @ 0812AABC + .incbin "baserom.gba", 0x12AABC, 0x0000004 + +gUnk_0812AAC0:: @ 0812AAC0 + .incbin "baserom.gba", 0x12AAC0, 0x0000008 + +gUnk_0812AAC8:: @ 0812AAC8 + .incbin "baserom.gba", 0x12AAC8, 0x0000008 + +gUnk_0812AAD0:: @ 0812AAD0 + .incbin "baserom.gba", 0x12AAD0, 0x0000008 + +gUnk_0812AAD8:: @ 0812AAD8 + .incbin "baserom.gba", 0x12AAD8, 0x0000010 + +gUnk_0812AAE8:: @ 0812AAE8 + .incbin "baserom.gba", 0x12AAE8, 0x000019C + +gUnk_0812AC84:: @ 0812AC84 + .incbin "baserom.gba", 0x12AC84, 0x0000004 + +gUnk_0812AC88:: @ 0812AC88 + .incbin "baserom.gba", 0x12AC88, 0x000000C + +gUnk_0812AC94:: @ 0812AC94 + .incbin "baserom.gba", 0x12AC94, 0x0000010 + +gUnk_0812ACA4:: @ 0812ACA4 + .incbin "baserom.gba", 0x12ACA4, 0x000000C + +gUnk_0812ACB0:: @ 0812ACB0 + .incbin "baserom.gba", 0x12ACB0, 0x0000010 + +gUnk_0812ACC0:: @ 0812ACC0 + .incbin "baserom.gba", 0x12ACC0, 0x000000C + +gUnk_0812ACCC:: @ 0812ACCC + .incbin "baserom.gba", 0x12ACCC, 0x000000C + +gUnk_0812ACD8:: @ 0812ACD8 + .incbin "baserom.gba", 0x12ACD8, 0x000000C + +gUnk_0812ACE4:: @ 0812ACE4 + .incbin "baserom.gba", 0x12ACE4, 0x000000C + +gUnk_0812ACF0:: @ 0812ACF0 + .incbin "baserom.gba", 0x12ACF0, 0x0000010 + +gUnk_0812AD00:: @ 0812AD00 + .incbin "baserom.gba", 0x12AD00, 0x000000C + +gUnk_0812AD0C:: @ 0812AD0C + .incbin "baserom.gba", 0x12AD0C, 0x0000014 + +gUnk_0812AD20:: @ 0812AD20 + .incbin "baserom.gba", 0x12AD20, 0x0000010 + +gUnk_0812AD30:: @ 0812AD30 + .incbin "baserom.gba", 0x12AD30, 0x0000010 + +gUnk_0812AD40:: @ 0812AD40 + .incbin "baserom.gba", 0x12AD40, 0x0000014 + +gUnk_0812AD54:: @ 0812AD54 + .incbin "baserom.gba", 0x12AD54, 0x0000010 + +gUnk_0812AD64:: @ 0812AD64 + .incbin "baserom.gba", 0x12AD64, 0x000000C + +gUnk_0812AD70:: @ 0812AD70 + .incbin "baserom.gba", 0x12AD70, 0x000000C + +gUnk_0812AD7C:: @ 0812AD7C + .incbin "baserom.gba", 0x12AD7C, 0x0000010 + +gUnk_0812AD8C:: @ 0812AD8C + .incbin "baserom.gba", 0x12AD8C, 0x000000C + +gUnk_0812AD98:: @ 0812AD98 + .incbin "baserom.gba", 0x12AD98, 0x0000008 + +gUnk_0812ADA0:: @ 0812ADA0 + .incbin "baserom.gba", 0x12ADA0, 0x0000010 + +gUnk_0812ADB0:: @ 0812ADB0 + .incbin "baserom.gba", 0x12ADB0, 0x000000C + +gUnk_0812ADBC:: @ 0812ADBC + .incbin "baserom.gba", 0x12ADBC, 0x0000010 + +gUnk_0812ADCC:: @ 0812ADCC + .incbin "baserom.gba", 0x12ADCC, 0x0000010 + +gUnk_0812ADDC:: @ 0812ADDC + .incbin "baserom.gba", 0x12ADDC, 0x0000010 + +gUnk_0812ADEC:: @ 0812ADEC + .incbin "baserom.gba", 0x12ADEC, 0x0000010 + +gUnk_0812ADFC:: @ 0812ADFC + .incbin "baserom.gba", 0x12ADFC, 0x0000010 + +gUnk_0812AE0C:: @ 0812AE0C + .incbin "baserom.gba", 0x12AE0C, 0x0000008 + +gUnk_0812AE14:: @ 0812AE14 + .incbin "baserom.gba", 0x12AE14, 0x0000010 + +gUnk_0812AE24:: @ 0812AE24 + .incbin "baserom.gba", 0x12AE24, 0x0000014 + +gUnk_0812AE38:: @ 0812AE38 + .incbin "baserom.gba", 0x12AE38, 0x0000010 + +gUnk_0812AE48:: @ 0812AE48 + .incbin "baserom.gba", 0x12AE48, 0x0000014 + +gUnk_0812AE5C:: @ 0812AE5C + .incbin "baserom.gba", 0x12AE5C, 0x0000002 + +gUnk_0812AE5E:: @ 0812AE5E + .incbin "baserom.gba", 0x12AE5E, 0x000000E + +gUnk_0812AE6C:: @ 0812AE6C + .incbin "baserom.gba", 0x12AE6C, 0x0000010 + +gUnk_0812AE7C:: @ 0812AE7C + .incbin "baserom.gba", 0x12AE7C, 0x0000010 + +gUnk_0812AE8C:: @ 0812AE8C + .incbin "baserom.gba", 0x12AE8C, 0x0000014 + +gUnk_0812AEA0:: @ 0812AEA0 + .incbin "baserom.gba", 0x12AEA0, 0x0000014 + +gUnk_0812AEB4:: @ 0812AEB4 + .incbin "baserom.gba", 0x12AEB4, 0x0000014 + +gUnk_0812AEC8:: @ 0812AEC8 + .incbin "baserom.gba", 0x12AEC8, 0x0000014 + +gUnk_0812AEDC:: @ 0812AEDC + .incbin "baserom.gba", 0x12AEDC, 0x0000008 + +gUnk_0812AEE4:: @ 0812AEE4 + .incbin "baserom.gba", 0x12AEE4, 0x0000008 + +gUnk_0812AEEC:: @ 0812AEEC + .incbin "baserom.gba", 0x12AEEC, 0x0000008 + +gUnk_0812AEF4:: @ 0812AEF4 + .incbin "baserom.gba", 0x12AEF4, 0x0000010 + +gUnk_0812AF04:: @ 0812AF04 + .incbin "baserom.gba", 0x12AF04, 0x000000C + +gUnk_0812AF10:: @ 0812AF10 + .incbin "baserom.gba", 0x12AF10, 0x000000C + +gUnk_0812AF1C:: @ 0812AF1C + .incbin "baserom.gba", 0x12AF1C, 0x000000C + +gUnk_0812AF28:: @ 0812AF28 + .incbin "baserom.gba", 0x12AF28, 0x000000C + +gUnk_0812AF34:: @ 0812AF34 + .incbin "baserom.gba", 0x12AF34, 0x000000C + +gUnk_0812AF40:: @ 0812AF40 + .incbin "baserom.gba", 0x12AF40, 0x000000C + +gUnk_0812AF4C:: @ 0812AF4C + .incbin "baserom.gba", 0x12AF4C, 0x000000C + +gUnk_0812AF58:: @ 0812AF58 + .incbin "baserom.gba", 0x12AF58, 0x000000C + +gUnk_0812AF64:: @ 0812AF64 + .incbin "baserom.gba", 0x12AF64, 0x000000C + +gUnk_0812AF70:: @ 0812AF70 + .incbin "baserom.gba", 0x12AF70, 0x0000014 + +gUnk_0812AF84:: @ 0812AF84 + .incbin "baserom.gba", 0x12AF84, 0x0000010 + +gUnk_0812AF94:: @ 0812AF94 + .incbin "baserom.gba", 0x12AF94, 0x0000010 + +gUnk_0812AFA4:: @ 0812AFA4 + .incbin "baserom.gba", 0x12AFA4, 0x0000014 + +gUnk_0812AFB8:: @ 0812AFB8 + .incbin "baserom.gba", 0x12AFB8, 0x0000014 + +gUnk_0812AFCC:: @ 0812AFCC + .incbin "baserom.gba", 0x12AFCC, 0x0000014 + +gUnk_0812AFE0:: @ 0812AFE0 + .incbin "baserom.gba", 0x12AFE0, 0x0000014 + +gUnk_0812AFF4:: @ 0812AFF4 + .incbin "baserom.gba", 0x12AFF4, 0x0000010 + +gUnk_0812B004:: @ 0812B004 + .incbin "baserom.gba", 0x12B004, 0x000000C + +gUnk_0812B010:: @ 0812B010 + .incbin "baserom.gba", 0x12B010, 0x0000008 + +gUnk_0812B018:: @ 0812B018 + .incbin "baserom.gba", 0x12B018, 0x0000010 + +gUnk_0812B028:: @ 0812B028 + .incbin "baserom.gba", 0x12B028, 0x000000C + +gUnk_0812B034:: @ 0812B034 + .incbin "baserom.gba", 0x12B034, 0x0000010 + +gUnk_0812B044:: @ 0812B044 + .incbin "baserom.gba", 0x12B044, 0x000000C + +gUnk_0812B050:: @ 0812B050 + .incbin "baserom.gba", 0x12B050, 0x000000C + +gUnk_0812B05C:: @ 0812B05C + .incbin "baserom.gba", 0x12B05C, 0x0000010 + +gUnk_0812B06C:: @ 0812B06C + .incbin "baserom.gba", 0x12B06C, 0x0000010 + +gUnk_0812B07C:: @ 0812B07C + .incbin "baserom.gba", 0x12B07C, 0x0000010 + +gUnk_0812B08C:: @ 0812B08C + .incbin "baserom.gba", 0x12B08C, 0x000000C + +gUnk_0812B098:: @ 0812B098 + .incbin "baserom.gba", 0x12B098, 0x0000008 + +gUnk_0812B0A0:: @ 0812B0A0 + .incbin "baserom.gba", 0x12B0A0, 0x000000C + +gUnk_0812B0AC:: @ 0812B0AC + .incbin "baserom.gba", 0x12B0AC, 0x0000010 + +gUnk_0812B0BC:: @ 0812B0BC + .incbin "baserom.gba", 0x12B0BC, 0x0000010 + +gUnk_0812B0CC:: @ 0812B0CC + .incbin "baserom.gba", 0x12B0CC, 0x0000010 + +gUnk_0812B0DC:: @ 0812B0DC + .incbin "baserom.gba", 0x12B0DC, 0x0000010 + +gUnk_0812B0EC:: @ 0812B0EC + .incbin "baserom.gba", 0x12B0EC, 0x0000010 + +gUnk_0812B0FC:: @ 0812B0FC + .incbin "baserom.gba", 0x12B0FC, 0x0000008 + +gUnk_0812B104:: @ 0812B104 + .incbin "baserom.gba", 0x12B104, 0x000000C + +gUnk_0812B110:: @ 0812B110 + .incbin "baserom.gba", 0x12B110, 0x000000C + +gUnk_0812B11C:: @ 0812B11C + .incbin "baserom.gba", 0x12B11C, 0x0000008 + +gUnk_0812B124:: @ 0812B124 + .incbin "baserom.gba", 0x12B124, 0x0000014 + +gUnk_0812B138:: @ 0812B138 + .incbin "baserom.gba", 0x12B138, 0x000000C + +gUnk_0812B144:: @ 0812B144 + .incbin "baserom.gba", 0x12B144, 0x000000C + +gUnk_0812B150:: @ 0812B150 + .incbin "baserom.gba", 0x12B150, 0x000000C + +gUnk_0812B15C:: @ 0812B15C + .incbin "baserom.gba", 0x12B15C, 0x000000C + +gUnk_0812B168:: @ 0812B168 + .incbin "baserom.gba", 0x12B168, 0x000000C + +gUnk_0812B174:: @ 0812B174 + .incbin "baserom.gba", 0x12B174, 0x000000C + +gUnk_0812B180:: @ 0812B180 + .incbin "baserom.gba", 0x12B180, 0x000000C + +gUnk_0812B18C:: @ 0812B18C + .incbin "baserom.gba", 0x12B18C, 0x000000C + +gUnk_0812B198:: @ 0812B198 + .incbin "baserom.gba", 0x12B198, 0x000000C + +gUnk_0812B1A4:: @ 0812B1A4 + .incbin "baserom.gba", 0x12B1A4, 0x000000C + +gUnk_0812B1B0:: @ 0812B1B0 + .incbin "baserom.gba", 0x12B1B0, 0x000000C + +gUnk_0812B1BC:: @ 0812B1BC + .incbin "baserom.gba", 0x12B1BC, 0x000000C + +gUnk_0812B1C8:: @ 0812B1C8 + .incbin "baserom.gba", 0x12B1C8, 0x000000C + +gUnk_0812B1D4:: @ 0812B1D4 + .incbin "baserom.gba", 0x12B1D4, 0x000000C + +gUnk_0812B1E0:: @ 0812B1E0 + .incbin "baserom.gba", 0x12B1E0, 0x000000C + +gUnk_0812B1EC:: @ 0812B1EC + .incbin "baserom.gba", 0x12B1EC, 0x000000C + +gUnk_0812B1F8:: @ 0812B1F8 + .incbin "baserom.gba", 0x12B1F8, 0x000000C + +gUnk_0812B204:: @ 0812B204 + .incbin "baserom.gba", 0x12B204, 0x0000400 + +gUnk_0812B604:: @ 0812B604 + .incbin "baserom.gba", 0x12B604, 0x0000008 + +gUnk_0812B60C:: @ 0812B60C + .incbin "baserom.gba", 0x12B60C, 0x0000008 + +gUnk_0812B614:: @ 0812B614 + .incbin "baserom.gba", 0x12B614, 0x0000008 + +gUnk_0812B61C:: @ 0812B61C + .incbin "baserom.gba", 0x12B61C, 0x0000008 + +gUnk_0812B624:: @ 0812B624 + .incbin "baserom.gba", 0x12B624, 0x0000014 + +gUnk_0812B638:: @ 0812B638 + .incbin "baserom.gba", 0x12B638, 0x0000014 + +gUnk_0812B64C:: @ 0812B64C + .incbin "baserom.gba", 0x12B64C, 0x0000010 + +gUnk_0812B65C:: @ 0812B65C + .incbin "baserom.gba", 0x12B65C, 0x0000010 + +gUnk_0812B66C:: @ 0812B66C + .incbin "baserom.gba", 0x12B66C, 0x0000010 + +gUnk_0812B67C:: @ 0812B67C + .incbin "baserom.gba", 0x12B67C, 0x0000010 + +gUnk_0812B68C:: @ 0812B68C + .incbin "baserom.gba", 0x12B68C, 0x0000014 + +gUnk_0812B6A0:: @ 0812B6A0 + .incbin "baserom.gba", 0x12B6A0, 0x0000014 + +gUnk_0812B6B4:: @ 0812B6B4 + .incbin "baserom.gba", 0x12B6B4, 0x0000014 + +gUnk_0812B6C8:: @ 0812B6C8 + .incbin "baserom.gba", 0x12B6C8, 0x0000014 + +gUnk_0812B6DC:: @ 0812B6DC + .incbin "baserom.gba", 0x12B6DC, 0x0000014 + +gUnk_0812B6F0:: @ 0812B6F0 + .incbin "baserom.gba", 0x12B6F0, 0x0000010 + +gUnk_0812B700:: @ 0812B700 + .incbin "baserom.gba", 0x12B700, 0x0000014 + +gUnk_0812B714:: @ 0812B714 + .incbin "baserom.gba", 0x12B714, 0x0000010 + +gUnk_0812B724:: @ 0812B724 + .incbin "baserom.gba", 0x12B724, 0x0000010 + +gUnk_0812B734:: @ 0812B734 + .incbin "baserom.gba", 0x12B734, 0x0000010 + +gUnk_0812B744:: @ 0812B744 + .incbin "baserom.gba", 0x12B744, 0x0000010 + +gUnk_0812B754:: @ 0812B754 + .incbin "baserom.gba", 0x12B754, 0x0000010 + +gUnk_0812B764:: @ 0812B764 + .incbin "baserom.gba", 0x12B764, 0x0000010 + +gUnk_0812B774:: @ 0812B774 + .incbin "baserom.gba", 0x12B774, 0x0000010 + +gUnk_0812B784:: @ 0812B784 + .incbin "baserom.gba", 0x12B784, 0x0000010 + +gUnk_0812B794:: @ 0812B794 + .incbin "baserom.gba", 0x12B794, 0x0000010 + +gUnk_0812B7A4:: @ 0812B7A4 + .incbin "baserom.gba", 0x12B7A4, 0x0000010 + +gUnk_0812B7B4:: @ 0812B7B4 + .incbin "baserom.gba", 0x12B7B4, 0x0000010 + +gUnk_0812B7C4:: @ 0812B7C4 + .incbin "baserom.gba", 0x12B7C4, 0x0000010 + +gUnk_0812B7D4:: @ 0812B7D4 + .incbin "baserom.gba", 0x12B7D4, 0x0000010 + +gUnk_0812B7E4:: @ 0812B7E4 + .incbin "baserom.gba", 0x12B7E4, 0x0000010 + +gUnk_0812B7F4:: @ 0812B7F4 + .incbin "baserom.gba", 0x12B7F4, 0x0000010 + +gUnk_0812B804:: @ 0812B804 + .incbin "baserom.gba", 0x12B804, 0x0000010 + +gUnk_0812B814:: @ 0812B814 + .incbin "baserom.gba", 0x12B814, 0x000000C + +gUnk_0812B820:: @ 0812B820 + .incbin "baserom.gba", 0x12B820, 0x0000010 + +gUnk_0812B830:: @ 0812B830 + .incbin "baserom.gba", 0x12B830, 0x0000010 + +gUnk_0812B840:: @ 0812B840 + .incbin "baserom.gba", 0x12B840, 0x0000010 + +gUnk_0812B850:: @ 0812B850 + .incbin "baserom.gba", 0x12B850, 0x0000010 + +gUnk_0812B860:: @ 0812B860 + .incbin "baserom.gba", 0x12B860, 0x0000010 + +gUnk_0812B870:: @ 0812B870 + .incbin "baserom.gba", 0x12B870, 0x0000010 + +gUnk_0812B880:: @ 0812B880 + .incbin "baserom.gba", 0x12B880, 0x0000010 + +gUnk_0812B890:: @ 0812B890 + .incbin "baserom.gba", 0x12B890, 0x0000010 + +gUnk_0812B8A0:: @ 0812B8A0 + .incbin "baserom.gba", 0x12B8A0, 0x0000010 + +gUnk_0812B8B0:: @ 0812B8B0 + .incbin "baserom.gba", 0x12B8B0, 0x000000C + +gUnk_0812B8BC:: @ 0812B8BC + .incbin "baserom.gba", 0x12B8BC, 0x0000010 + +gUnk_0812B8CC:: @ 0812B8CC + .incbin "baserom.gba", 0x12B8CC, 0x0000010 + +gUnk_0812B8DC:: @ 0812B8DC + .incbin "baserom.gba", 0x12B8DC, 0x0000010 + +gUnk_0812B8EC:: @ 0812B8EC + .incbin "baserom.gba", 0x12B8EC, 0x0000010 + +gUnk_0812B8FC:: @ 0812B8FC + .incbin "baserom.gba", 0x12B8FC, 0x0000010 + +gUnk_0812B90C:: @ 0812B90C + .incbin "baserom.gba", 0x12B90C, 0x0000010 + +gUnk_0812B91C:: @ 0812B91C + .incbin "baserom.gba", 0x12B91C, 0x000000C + +gUnk_0812B928:: @ 0812B928 + .incbin "baserom.gba", 0x12B928, 0x000000C + +gUnk_0812B934:: @ 0812B934 + .incbin "baserom.gba", 0x12B934, 0x000000C + +gUnk_0812B940:: @ 0812B940 + .incbin "baserom.gba", 0x12B940, 0x0000018 + +gUnk_0812B958:: @ 0812B958 + .incbin "baserom.gba", 0x12B958, 0x0000010 + +gUnk_0812B968:: @ 0812B968 + .incbin "baserom.gba", 0x12B968, 0x0000010 + +gUnk_0812B978:: @ 0812B978 + .incbin "baserom.gba", 0x12B978, 0x0000010 + +gUnk_0812B988:: @ 0812B988 + .incbin "baserom.gba", 0x12B988, 0x0000010 + +gUnk_0812B998:: @ 0812B998 + .incbin "baserom.gba", 0x12B998, 0x0000010 + +gUnk_0812B9A8:: @ 0812B9A8 + .incbin "baserom.gba", 0x12B9A8, 0x0000010 + +gUnk_0812B9B8:: @ 0812B9B8 + .incbin "baserom.gba", 0x12B9B8, 0x0000010 + +gUnk_0812B9C8:: @ 0812B9C8 + .incbin "baserom.gba", 0x12B9C8, 0x0000010 + +gUnk_0812B9D8:: @ 0812B9D8 + .incbin "baserom.gba", 0x12B9D8, 0x0000010 + +gUnk_0812B9E8:: @ 0812B9E8 + .incbin "baserom.gba", 0x12B9E8, 0x0000010 + +gUnk_0812B9F8:: @ 0812B9F8 + .incbin "baserom.gba", 0x12B9F8, 0x0000010 + +gUnk_0812BA08:: @ 0812BA08 + .incbin "baserom.gba", 0x12BA08, 0x0000010 + +gUnk_0812BA18:: @ 0812BA18 + .incbin "baserom.gba", 0x12BA18, 0x0000010 + +gUnk_0812BA28:: @ 0812BA28 + .incbin "baserom.gba", 0x12BA28, 0x0000010 + +gUnk_0812BA38:: @ 0812BA38 + .incbin "baserom.gba", 0x12BA38, 0x0000010 + +gUnk_0812BA48:: @ 0812BA48 + .incbin "baserom.gba", 0x12BA48, 0x0000010 + +gUnk_0812BA58:: @ 0812BA58 + .incbin "baserom.gba", 0x12BA58, 0x0000010 + +gUnk_0812BA68:: @ 0812BA68 + .incbin "baserom.gba", 0x12BA68, 0x0000010 + +gUnk_0812BA78:: @ 0812BA78 + .incbin "baserom.gba", 0x12BA78, 0x0000010 + +gUnk_0812BA88:: @ 0812BA88 + .incbin "baserom.gba", 0x12BA88, 0x0000003 + +gUnk_0812BA8B:: @ 0812BA8B + .incbin "baserom.gba", 0x12BA8B, 0x0000009 + +gUnk_0812BA94:: @ 0812BA94 + .incbin "baserom.gba", 0x12BA94, 0x000000C + +gUnk_0812BAA0:: @ 0812BAA0 + .incbin "baserom.gba", 0x12BAA0, 0x000000C + +gUnk_0812BAAC:: @ 0812BAAC + .incbin "baserom.gba", 0x12BAAC, 0x000000C + +gUnk_0812BAB8:: @ 0812BAB8 + .incbin "baserom.gba", 0x12BAB8, 0x000000C + +gUnk_0812BAC4:: @ 0812BAC4 + .incbin "baserom.gba", 0x12BAC4, 0x0000010 + +gUnk_0812BAD4:: @ 0812BAD4 + .incbin "baserom.gba", 0x12BAD4, 0x0000010 + +gUnk_0812BAE4:: @ 0812BAE4 + .incbin "baserom.gba", 0x12BAE4, 0x0000018 + +gUnk_0812BAFC:: @ 0812BAFC + .incbin "baserom.gba", 0x12BAFC, 0x0000010 + +gUnk_0812BB0C:: @ 0812BB0C + .incbin "baserom.gba", 0x12BB0C, 0x0000010 + +gUnk_0812BB1C:: @ 0812BB1C + .incbin "baserom.gba", 0x12BB1C, 0x0000010 + +gUnk_0812BB2C:: @ 0812BB2C + .incbin "baserom.gba", 0x12BB2C, 0x0000010 + +gUnk_0812BB3C:: @ 0812BB3C + .incbin "baserom.gba", 0x12BB3C, 0x0000010 + +gUnk_0812BB4C:: @ 0812BB4C + .incbin "baserom.gba", 0x12BB4C, 0x0000010 + +gUnk_0812BB5C:: @ 0812BB5C + .incbin "baserom.gba", 0x12BB5C, 0x0000010 + +gUnk_0812BB6C:: @ 0812BB6C + .incbin "baserom.gba", 0x12BB6C, 0x0000010 + +gUnk_0812BB7C:: @ 0812BB7C + .incbin "baserom.gba", 0x12BB7C, 0x0000010 + +gUnk_0812BB8C:: @ 0812BB8C + .incbin "baserom.gba", 0x12BB8C, 0x0000010 + +gUnk_0812BB9C:: @ 0812BB9C + .incbin "baserom.gba", 0x12BB9C, 0x0000010 + +gUnk_0812BBAC:: @ 0812BBAC + .incbin "baserom.gba", 0x12BBAC, 0x0000014 + +gUnk_0812BBC0:: @ 0812BBC0 + .incbin "baserom.gba", 0x12BBC0, 0x0000014 + +gUnk_0812BBD4:: @ 0812BBD4 + .incbin "baserom.gba", 0x12BBD4, 0x0000010 + +gUnk_0812BBE4:: @ 0812BBE4 + .incbin "baserom.gba", 0x12BBE4, 0x0000010 + +gUnk_0812BBF4:: @ 0812BBF4 + .incbin "baserom.gba", 0x12BBF4, 0x0000014 + +gUnk_0812BC08:: @ 0812BC08 + .incbin "baserom.gba", 0x12BC08, 0x0000010 + +gUnk_0812BC18:: @ 0812BC18 + .incbin "baserom.gba", 0x12BC18, 0x0000010 + +gUnk_0812BC28:: @ 0812BC28 + .incbin "baserom.gba", 0x12BC28, 0x000000A + +gUnk_0812BC32:: @ 0812BC32 + .incbin "baserom.gba", 0x12BC32, 0x0000006 + +gUnk_0812BC38:: @ 0812BC38 + .incbin "baserom.gba", 0x12BC38, 0x0000010 + +gUnk_0812BC48:: @ 0812BC48 + .incbin "baserom.gba", 0x12BC48, 0x0000010 + +gUnk_0812BC58:: @ 0812BC58 + .incbin "baserom.gba", 0x12BC58, 0x0000010 + +gUnk_0812BC68:: @ 0812BC68 + .incbin "baserom.gba", 0x12BC68, 0x0000010 + +gUnk_0812BC78:: @ 0812BC78 + .incbin "baserom.gba", 0x12BC78, 0x0000010 + +gUnk_0812BC88:: @ 0812BC88 + .incbin "baserom.gba", 0x12BC88, 0x0000010 + +gUnk_0812BC98:: @ 0812BC98 + .incbin "baserom.gba", 0x12BC98, 0x0000010 + +gUnk_0812BCA8:: @ 0812BCA8 + .incbin "baserom.gba", 0x12BCA8, 0x0000010 + +gUnk_0812BCB8:: @ 0812BCB8 + .incbin "baserom.gba", 0x12BCB8, 0x0000010 + +gUnk_0812BCC8:: @ 0812BCC8 + .incbin "baserom.gba", 0x12BCC8, 0x0000010 + +gUnk_0812BCD8:: @ 0812BCD8 + .incbin "baserom.gba", 0x12BCD8, 0x0000010 + +gUnk_0812BCE8:: @ 0812BCE8 + .incbin "baserom.gba", 0x12BCE8, 0x0000010 + +gUnk_0812BCF8:: @ 0812BCF8 + .incbin "baserom.gba", 0x12BCF8, 0x0000014 + +gUnk_0812BD0C:: @ 0812BD0C + .incbin "baserom.gba", 0x12BD0C, 0x0000014 + +gUnk_0812BD20:: @ 0812BD20 + .incbin "baserom.gba", 0x12BD20, 0x0000010 + +gUnk_0812BD30:: @ 0812BD30 + .incbin "baserom.gba", 0x12BD30, 0x0000014 + +gUnk_0812BD44:: @ 0812BD44 + .incbin "baserom.gba", 0x12BD44, 0x0000014 + +gUnk_0812BD58:: @ 0812BD58 + .incbin "baserom.gba", 0x12BD58, 0x0000014 + +gUnk_0812BD6C:: @ 0812BD6C + .incbin "baserom.gba", 0x12BD6C, 0x0000014 + +gUnk_0812BD80:: @ 0812BD80 + .incbin "baserom.gba", 0x12BD80, 0x0000014 + +gUnk_0812BD94:: @ 0812BD94 + .incbin "baserom.gba", 0x12BD94, 0x0000014 + +gUnk_0812BDA8:: @ 0812BDA8 + .incbin "baserom.gba", 0x12BDA8, 0x0000014 + +gUnk_0812BDBC:: @ 0812BDBC + .incbin "baserom.gba", 0x12BDBC, 0x0000014 + +gUnk_0812BDD0:: @ 0812BDD0 + .incbin "baserom.gba", 0x12BDD0, 0x0000014 + +gUnk_0812BDE4:: @ 0812BDE4 + .incbin "baserom.gba", 0x12BDE4, 0x0000010 + +gUnk_0812BDF4:: @ 0812BDF4 + .incbin "baserom.gba", 0x12BDF4, 0x0000010 + +gUnk_0812BE04:: @ 0812BE04 + .incbin "baserom.gba", 0x12BE04, 0x0000010 + +gUnk_0812BE14:: @ 0812BE14 + .incbin "baserom.gba", 0x12BE14, 0x0000010 + +gUnk_0812BE24:: @ 0812BE24 + .incbin "baserom.gba", 0x12BE24, 0x0000010 + +gUnk_0812BE34:: @ 0812BE34 + .incbin "baserom.gba", 0x12BE34, 0x0000010 + +gUnk_0812BE44:: @ 0812BE44 + .incbin "baserom.gba", 0x12BE44, 0x0000010 + +gUnk_0812BE54:: @ 0812BE54 + .incbin "baserom.gba", 0x12BE54, 0x0000014 + +gUnk_0812BE68:: @ 0812BE68 + .incbin "baserom.gba", 0x12BE68, 0x0000014 + +gUnk_0812BE7C:: @ 0812BE7C + .incbin "baserom.gba", 0x12BE7C, 0x0000014 + +gUnk_0812BE90:: @ 0812BE90 + .incbin "baserom.gba", 0x12BE90, 0x0000014 + +gUnk_0812BEA4:: @ 0812BEA4 + .incbin "baserom.gba", 0x12BEA4, 0x0000014 + +gUnk_0812BEB8:: @ 0812BEB8 + .incbin "baserom.gba", 0x12BEB8, 0x0000014 + +gUnk_0812BECC:: @ 0812BECC + .incbin "baserom.gba", 0x12BECC, 0x0000014 + +gUnk_0812BEE0:: @ 0812BEE0 + .incbin "baserom.gba", 0x12BEE0, 0x0000014 + +gUnk_0812BEF4:: @ 0812BEF4 + .incbin "baserom.gba", 0x12BEF4, 0x0000014 + +gUnk_0812BF08:: @ 0812BF08 + .incbin "baserom.gba", 0x12BF08, 0x0000014 + +gUnk_0812BF1C:: @ 0812BF1C + .incbin "baserom.gba", 0x12BF1C, 0x0000014 + +gUnk_0812BF30:: @ 0812BF30 + .incbin "baserom.gba", 0x12BF30, 0x0000014 + +gUnk_0812BF44:: @ 0812BF44 + .incbin "baserom.gba", 0x12BF44, 0x0000010 + +gUnk_0812BF54:: @ 0812BF54 + .incbin "baserom.gba", 0x12BF54, 0x0000010 + +gUnk_0812BF64:: @ 0812BF64 + .incbin "baserom.gba", 0x12BF64, 0x0000010 + +gUnk_0812BF74:: @ 0812BF74 + .incbin "baserom.gba", 0x12BF74, 0x0000014 + +gUnk_0812BF88:: @ 0812BF88 + .incbin "baserom.gba", 0x12BF88, 0x0000014 + +gUnk_0812BF9C:: @ 0812BF9C + .incbin "baserom.gba", 0x12BF9C, 0x0000014 + +gUnk_0812BFB0:: @ 0812BFB0 + .incbin "baserom.gba", 0x12BFB0, 0x0000014 + +gUnk_0812BFC4:: @ 0812BFC4 + .incbin "baserom.gba", 0x12BFC4, 0x0000014 + +gUnk_0812BFD8:: @ 0812BFD8 + .incbin "baserom.gba", 0x12BFD8, 0x0000014 + +gUnk_0812BFEC:: @ 0812BFEC + .incbin "baserom.gba", 0x12BFEC, 0x0000014 + +gUnk_0812C000:: @ 0812C000 + .incbin "baserom.gba", 0x12C000, 0x0000014 + +gUnk_0812C014:: @ 0812C014 + .incbin "baserom.gba", 0x12C014, 0x0000014 + +gUnk_0812C028:: @ 0812C028 + .incbin "baserom.gba", 0x12C028, 0x0000014 + +gUnk_0812C03C:: @ 0812C03C + .incbin "baserom.gba", 0x12C03C, 0x0000014 + +gUnk_0812C050:: @ 0812C050 + .incbin "baserom.gba", 0x12C050, 0x0000014 + +gUnk_0812C064:: @ 0812C064 + .incbin "baserom.gba", 0x12C064, 0x0000014 + +gUnk_0812C078:: @ 0812C078 + .incbin "baserom.gba", 0x12C078, 0x0000010 + +gUnk_0812C088:: @ 0812C088 + .incbin "baserom.gba", 0x12C088, 0x000000C + +gUnk_0812C094:: @ 0812C094 + .incbin "baserom.gba", 0x12C094, 0x0000010 + +gUnk_0812C0A4:: @ 0812C0A4 + .incbin "baserom.gba", 0x12C0A4, 0x0000010 + +gUnk_0812C0B4:: @ 0812C0B4 + .incbin "baserom.gba", 0x12C0B4, 0x0000010 + +gUnk_0812C0C4:: @ 0812C0C4 + .incbin "baserom.gba", 0x12C0C4, 0x0000010 + +gUnk_0812C0D4:: @ 0812C0D4 + .incbin "baserom.gba", 0x12C0D4, 0x0000010 + +gUnk_0812C0E4:: @ 0812C0E4 + .incbin "baserom.gba", 0x12C0E4, 0x0000010 + +gUnk_0812C0F4:: @ 0812C0F4 + .incbin "baserom.gba", 0x12C0F4, 0x0000014 + +gUnk_0812C108:: @ 0812C108 + .incbin "baserom.gba", 0x12C108, 0x0000014 + +gUnk_0812C11C:: @ 0812C11C + .incbin "baserom.gba", 0x12C11C, 0x0000014 + +gUnk_0812C130:: @ 0812C130 + .incbin "baserom.gba", 0x12C130, 0x000000C + +gUnk_0812C13C:: @ 0812C13C + .incbin "baserom.gba", 0x12C13C, 0x000000C + +gUnk_0812C148:: @ 0812C148 + .incbin "baserom.gba", 0x12C148, 0x000000C + +gUnk_0812C154:: @ 0812C154 + .incbin "baserom.gba", 0x12C154, 0x000000C + +gUnk_0812C160:: @ 0812C160 + .incbin "baserom.gba", 0x12C160, 0x000000C + +gUnk_0812C16C:: @ 0812C16C + .incbin "baserom.gba", 0x12C16C, 0x0000010 + +gUnk_0812C17C:: @ 0812C17C + .incbin "baserom.gba", 0x12C17C, 0x0000010 + +gUnk_0812C18C:: @ 0812C18C + .incbin "baserom.gba", 0x12C18C, 0x000000C + +gUnk_0812C198:: @ 0812C198 + .incbin "baserom.gba", 0x12C198, 0x0000010 + +gUnk_0812C1A8:: @ 0812C1A8 + .incbin "baserom.gba", 0x12C1A8, 0x0000010 + +gUnk_0812C1B8:: @ 0812C1B8 + .incbin "baserom.gba", 0x12C1B8, 0x0000010 + +gUnk_0812C1C8:: @ 0812C1C8 + .incbin "baserom.gba", 0x12C1C8, 0x0000010 + +gUnk_0812C1D8:: @ 0812C1D8 + .incbin "baserom.gba", 0x12C1D8, 0x0000010 + +gUnk_0812C1E8:: @ 0812C1E8 + .incbin "baserom.gba", 0x12C1E8, 0x000000C + +gUnk_0812C1F4:: @ 0812C1F4 + .incbin "baserom.gba", 0x12C1F4, 0x000000C + +gUnk_0812C200:: @ 0812C200 + .incbin "baserom.gba", 0x12C200, 0x000000C + +gUnk_0812C20C:: @ 0812C20C + .incbin "baserom.gba", 0x12C20C, 0x000000C + +gUnk_0812C218:: @ 0812C218 + .incbin "baserom.gba", 0x12C218, 0x0000010 + +gUnk_0812C228:: @ 0812C228 + .incbin "baserom.gba", 0x12C228, 0x000000C + +gUnk_0812C234:: @ 0812C234 + .incbin "baserom.gba", 0x12C234, 0x000000C + +gUnk_0812C240:: @ 0812C240 + .incbin "baserom.gba", 0x12C240, 0x0000014 + +gUnk_0812C254:: @ 0812C254 + .incbin "baserom.gba", 0x12C254, 0x000000C + +gUnk_0812C260:: @ 0812C260 + .incbin "baserom.gba", 0x12C260, 0x000000C + +gUnk_0812C26C:: @ 0812C26C + .incbin "baserom.gba", 0x12C26C, 0x0000010 + +gUnk_0812C27C:: @ 0812C27C + .incbin "baserom.gba", 0x12C27C, 0x0000010 + +gUnk_0812C28C:: @ 0812C28C + .incbin "baserom.gba", 0x12C28C, 0x000000C + +gUnk_0812C298:: @ 0812C298 + .incbin "baserom.gba", 0x12C298, 0x0000004 + +gUnk_0812C29C:: @ 0812C29C + .incbin "baserom.gba", 0x12C29C, 0x0000010 + +gUnk_0812C2AC:: @ 0812C2AC + .incbin "baserom.gba", 0x12C2AC, 0x0000010 + +gUnk_0812C2BC:: @ 0812C2BC + .incbin "baserom.gba", 0x12C2BC, 0x0000010 + +gUnk_0812C2CC:: @ 0812C2CC + .incbin "baserom.gba", 0x12C2CC, 0x000000C + +gUnk_0812C2D8:: @ 0812C2D8 + .incbin "baserom.gba", 0x12C2D8, 0x000000C + +gUnk_0812C2E4:: @ 0812C2E4 + .incbin "baserom.gba", 0x12C2E4, 0x000000C + +gUnk_0812C2F0:: @ 0812C2F0 + .incbin "baserom.gba", 0x12C2F0, 0x000000C + +gUnk_0812C2FC:: @ 0812C2FC + .incbin "baserom.gba", 0x12C2FC, 0x000000C + +gUnk_0812C308:: @ 0812C308 + .incbin "baserom.gba", 0x12C308, 0x000000C + +gUnk_0812C314:: @ 0812C314 + .incbin "baserom.gba", 0x12C314, 0x0000010 + +gUnk_0812C324:: @ 0812C324 + .incbin "baserom.gba", 0x12C324, 0x0000010 + +gUnk_0812C334:: @ 0812C334 + .incbin "baserom.gba", 0x12C334, 0x0000010 + +gUnk_0812C344:: @ 0812C344 + .incbin "baserom.gba", 0x12C344, 0x0000010 + +gUnk_0812C354:: @ 0812C354 + .incbin "baserom.gba", 0x12C354, 0x0000010 + +gUnk_0812C364:: @ 0812C364 + .incbin "baserom.gba", 0x12C364, 0x000000C + +gUnk_0812C370:: @ 0812C370 + .incbin "baserom.gba", 0x12C370, 0x000000C + +gUnk_0812C37C:: @ 0812C37C + .incbin "baserom.gba", 0x12C37C, 0x000000C + +gUnk_0812C388:: @ 0812C388 + .incbin "baserom.gba", 0x12C388, 0x000000C + +gUnk_0812C394:: @ 0812C394 + .incbin "baserom.gba", 0x12C394, 0x000000C + +gUnk_0812C3A0:: @ 0812C3A0 + .incbin "baserom.gba", 0x12C3A0, 0x000000C + +gUnk_0812C3AC:: @ 0812C3AC + .incbin "baserom.gba", 0x12C3AC, 0x0000010 + +gUnk_0812C3BC:: @ 0812C3BC + .incbin "baserom.gba", 0x12C3BC, 0x0000010 + +gUnk_0812C3CC:: @ 0812C3CC + .incbin "baserom.gba", 0x12C3CC, 0x0000010 + +gUnk_0812C3DC:: @ 0812C3DC + .incbin "baserom.gba", 0x12C3DC, 0x0000010 + +gUnk_0812C3EC:: @ 0812C3EC + .incbin "baserom.gba", 0x12C3EC, 0x0000010 + +gUnk_0812C3FC:: @ 0812C3FC + .incbin "baserom.gba", 0x12C3FC, 0x0000014 + +gUnk_0812C410:: @ 0812C410 + .incbin "baserom.gba", 0x12C410, 0x0000010 + +gUnk_0812C420:: @ 0812C420 + .incbin "baserom.gba", 0x12C420, 0x0000014 + +gUnk_0812C434:: @ 0812C434 + .incbin "baserom.gba", 0x12C434, 0x0000010 + +gUnk_0812C444:: @ 0812C444 + .incbin "baserom.gba", 0x12C444, 0x0000010 + +gUnk_0812C454:: @ 0812C454 + .incbin "baserom.gba", 0x12C454, 0x0000010 + +gUnk_0812C464:: @ 0812C464 + .incbin "baserom.gba", 0x12C464, 0x0000010 + +gUnk_0812C474:: @ 0812C474 + .incbin "baserom.gba", 0x12C474, 0x0000010 + +gUnk_0812C484:: @ 0812C484 + .incbin "baserom.gba", 0x12C484, 0x0000010 + +gUnk_0812C494:: @ 0812C494 + .incbin "baserom.gba", 0x12C494, 0x0000010 + +gUnk_0812C4A4:: @ 0812C4A4 + .incbin "baserom.gba", 0x12C4A4, 0x0000010 + +gUnk_0812C4B4:: @ 0812C4B4 + .incbin "baserom.gba", 0x12C4B4, 0x0000014 + +gUnk_0812C4C8:: @ 0812C4C8 + .incbin "baserom.gba", 0x12C4C8, 0x0000014 + +gUnk_0812C4DC:: @ 0812C4DC + .incbin "baserom.gba", 0x12C4DC, 0x0000010 + +gUnk_0812C4EC:: @ 0812C4EC + .incbin "baserom.gba", 0x12C4EC, 0x0000010 + +gUnk_0812C4FC:: @ 0812C4FC + .incbin "baserom.gba", 0x12C4FC, 0x0000010 + +gUnk_0812C50C:: @ 0812C50C + .incbin "baserom.gba", 0x12C50C, 0x0000010 + +gUnk_0812C51C:: @ 0812C51C + .incbin "baserom.gba", 0x12C51C, 0x0000010 + +gUnk_0812C52C:: @ 0812C52C + .incbin "baserom.gba", 0x12C52C, 0x0000010 + +gUnk_0812C53C:: @ 0812C53C + .incbin "baserom.gba", 0x12C53C, 0x0000010 + +gUnk_0812C54C:: @ 0812C54C + .incbin "baserom.gba", 0x12C54C, 0x0000014 + +gUnk_0812C560:: @ 0812C560 + .incbin "baserom.gba", 0x12C560, 0x0000010 + +gUnk_0812C570:: @ 0812C570 + .incbin "baserom.gba", 0x12C570, 0x0000010 + +gUnk_0812C580:: @ 0812C580 + .incbin "baserom.gba", 0x12C580, 0x0000010 + +gUnk_0812C590:: @ 0812C590 + .incbin "baserom.gba", 0x12C590, 0x0000010 + +gUnk_0812C5A0:: @ 0812C5A0 + .incbin "baserom.gba", 0x12C5A0, 0x0000010 + +gUnk_0812C5B0:: @ 0812C5B0 + .incbin "baserom.gba", 0x12C5B0, 0x0000010 + +gUnk_0812C5C0:: @ 0812C5C0 + .incbin "baserom.gba", 0x12C5C0, 0x0000010 + +gUnk_0812C5D0:: @ 0812C5D0 + .incbin "baserom.gba", 0x12C5D0, 0x0000010 + +gUnk_0812C5E0:: @ 0812C5E0 + .incbin "baserom.gba", 0x12C5E0, 0x0000010 + +gUnk_0812C5F0:: @ 0812C5F0 + .incbin "baserom.gba", 0x12C5F0, 0x00000C8 + +gUnk_0812C6B8:: @ 0812C6B8 + .incbin "baserom.gba", 0x12C6B8, 0x000029C + +gUnk_0812C954:: @ 0812C954 + .incbin "baserom.gba", 0x12C954, 0x0000008 + +gUnk_0812C95C:: @ 0812C95C + .incbin "baserom.gba", 0x12C95C, 0x0000008 + +gUnk_0812C964:: @ 0812C964 + .incbin "baserom.gba", 0x12C964, 0x0000008 + +gUnk_0812C96C:: @ 0812C96C + .incbin "baserom.gba", 0x12C96C, 0x0000008 + +gUnk_0812C974:: @ 0812C974 + .incbin "baserom.gba", 0x12C974, 0x0000008 + +gUnk_0812C97C:: @ 0812C97C + .incbin "baserom.gba", 0x12C97C, 0x0000010 + +gUnk_0812C98C:: @ 0812C98C + .incbin "baserom.gba", 0x12C98C, 0x0000010 + +gUnk_0812C99C:: @ 0812C99C + .incbin "baserom.gba", 0x12C99C, 0x0000010 + +gUnk_0812C9AC:: @ 0812C9AC + .incbin "baserom.gba", 0x12C9AC, 0x0000010 + +gUnk_0812C9BC:: @ 0812C9BC + .incbin "baserom.gba", 0x12C9BC, 0x0000010 + +gUnk_0812C9CC:: @ 0812C9CC + .incbin "baserom.gba", 0x12C9CC, 0x0000010 + +gUnk_0812C9DC:: @ 0812C9DC + .incbin "baserom.gba", 0x12C9DC, 0x0000010 + +gUnk_0812C9EC:: @ 0812C9EC + .incbin "baserom.gba", 0x12C9EC, 0x0000010 + +gUnk_0812C9FC:: @ 0812C9FC + .incbin "baserom.gba", 0x12C9FC, 0x0000010 + +gUnk_0812CA0C:: @ 0812CA0C + .incbin "baserom.gba", 0x12CA0C, 0x0000010 + +gUnk_0812CA1C:: @ 0812CA1C + .incbin "baserom.gba", 0x12CA1C, 0x0000010 + +gUnk_0812CA2C:: @ 0812CA2C + .incbin "baserom.gba", 0x12CA2C, 0x0000010 + +gUnk_0812CA3C:: @ 0812CA3C + .incbin "baserom.gba", 0x12CA3C, 0x0000014 + +gUnk_0812CA50:: @ 0812CA50 + .incbin "baserom.gba", 0x12CA50, 0x0000014 + +gUnk_0812CA64:: @ 0812CA64 + .incbin "baserom.gba", 0x12CA64, 0x0000014 + +gUnk_0812CA78:: @ 0812CA78 + .incbin "baserom.gba", 0x12CA78, 0x0000014 + +gUnk_0812CA8C:: @ 0812CA8C + .incbin "baserom.gba", 0x12CA8C, 0x0000014 + +gUnk_0812CAA0:: @ 0812CAA0 + .incbin "baserom.gba", 0x12CAA0, 0x0000014 + +gUnk_0812CAB4:: @ 0812CAB4 + .incbin "baserom.gba", 0x12CAB4, 0x0000014 + +gUnk_0812CAC8:: @ 0812CAC8 + .incbin "baserom.gba", 0x12CAC8, 0x0000014 + +gUnk_0812CADC:: @ 0812CADC + .incbin "baserom.gba", 0x12CADC, 0x0000014 + +gUnk_0812CAF0:: @ 0812CAF0 + .incbin "baserom.gba", 0x12CAF0, 0x0000014 + +gUnk_0812CB04:: @ 0812CB04 + .incbin "baserom.gba", 0x12CB04, 0x0000018 + +gUnk_0812CB1C:: @ 0812CB1C + .incbin "baserom.gba", 0x12CB1C, 0x0000014 + +gUnk_0812CB30:: @ 0812CB30 + .incbin "baserom.gba", 0x12CB30, 0x0000014 + +gUnk_0812CB44:: @ 0812CB44 + .incbin "baserom.gba", 0x12CB44, 0x0000014 + +gUnk_0812CB58:: @ 0812CB58 + .incbin "baserom.gba", 0x12CB58, 0x0000014 + +gUnk_0812CB6C:: @ 0812CB6C + .incbin "baserom.gba", 0x12CB6C, 0x0000014 + +gUnk_0812CB80:: @ 0812CB80 + .incbin "baserom.gba", 0x12CB80, 0x0000010 + +gUnk_0812CB90:: @ 0812CB90 + .incbin "baserom.gba", 0x12CB90, 0x0000010 + +gUnk_0812CBA0:: @ 0812CBA0 + .incbin "baserom.gba", 0x12CBA0, 0x0000014 + +gUnk_0812CBB4:: @ 0812CBB4 + .incbin "baserom.gba", 0x12CBB4, 0x000000C + +gUnk_0812CBC0:: @ 0812CBC0 + .incbin "baserom.gba", 0x12CBC0, 0x0000014 + +gUnk_0812CBD4:: @ 0812CBD4 + .incbin "baserom.gba", 0x12CBD4, 0x000000C + +gUnk_0812CBE0:: @ 0812CBE0 + .incbin "baserom.gba", 0x12CBE0, 0x0000010 + +gUnk_0812CBF0:: @ 0812CBF0 + .incbin "baserom.gba", 0x12CBF0, 0x0000010 + +gUnk_0812CC00:: @ 0812CC00 + .incbin "baserom.gba", 0x12CC00, 0x0000010 + +gUnk_0812CC10:: @ 0812CC10 + .incbin "baserom.gba", 0x12CC10, 0x0000010 + +gUnk_0812CC20:: @ 0812CC20 + .incbin "baserom.gba", 0x12CC20, 0x0000010 + +gUnk_0812CC30:: @ 0812CC30 + .incbin "baserom.gba", 0x12CC30, 0x0000010 + +gUnk_0812CC40:: @ 0812CC40 + .incbin "baserom.gba", 0x12CC40, 0x0000014 + +gUnk_0812CC54:: @ 0812CC54 + .incbin "baserom.gba", 0x12CC54, 0x0000010 + +gUnk_0812CC64:: @ 0812CC64 + .incbin "baserom.gba", 0x12CC64, 0x0000010 + +gUnk_0812CC74:: @ 0812CC74 + .incbin "baserom.gba", 0x12CC74, 0x0000010 + +gUnk_0812CC84:: @ 0812CC84 + .incbin "baserom.gba", 0x12CC84, 0x0000010 + +gUnk_0812CC94:: @ 0812CC94 + .incbin "baserom.gba", 0x12CC94, 0x0000010 + +gUnk_0812CCA4:: @ 0812CCA4 + .incbin "baserom.gba", 0x12CCA4, 0x0000010 + +gUnk_0812CCB4:: @ 0812CCB4 + .incbin "baserom.gba", 0x12CCB4, 0x0000010 + +gUnk_0812CCC4:: @ 0812CCC4 + .incbin "baserom.gba", 0x12CCC4, 0x0000010 + +gUnk_0812CCD4:: @ 0812CCD4 + .incbin "baserom.gba", 0x12CCD4, 0x0000014 + +gUnk_0812CCE8:: @ 0812CCE8 + .incbin "baserom.gba", 0x12CCE8, 0x0000014 + +gUnk_0812CCFC:: @ 0812CCFC + .incbin "baserom.gba", 0x12CCFC, 0x000000C + +gUnk_0812CD08:: @ 0812CD08 + .incbin "baserom.gba", 0x12CD08, 0x000000C + +gUnk_0812CD14:: @ 0812CD14 + .incbin "baserom.gba", 0x12CD14, 0x000000C + +gUnk_0812CD20:: @ 0812CD20 + .incbin "baserom.gba", 0x12CD20, 0x000000C + +gUnk_0812CD2C:: @ 0812CD2C + .incbin "baserom.gba", 0x12CD2C, 0x000000C + +gUnk_0812CD38:: @ 0812CD38 + .incbin "baserom.gba", 0x12CD38, 0x0000014 + +gUnk_0812CD4C:: @ 0812CD4C + .incbin "baserom.gba", 0x12CD4C, 0x0000014 + +gUnk_0812CD60:: @ 0812CD60 + .incbin "baserom.gba", 0x12CD60, 0x0000010 + +gUnk_0812CD70:: @ 0812CD70 + .incbin "baserom.gba", 0x12CD70, 0x0000010 + +gUnk_0812CD80:: @ 0812CD80 + .incbin "baserom.gba", 0x12CD80, 0x0000014 + +gUnk_0812CD94:: @ 0812CD94 + .incbin "baserom.gba", 0x12CD94, 0x0000010 + +gUnk_0812CDA4:: @ 0812CDA4 + .incbin "baserom.gba", 0x12CDA4, 0x0000014 + +gUnk_0812CDB8:: @ 0812CDB8 + .incbin "baserom.gba", 0x12CDB8, 0x0000010 + +gUnk_0812CDC8:: @ 0812CDC8 + .incbin "baserom.gba", 0x12CDC8, 0x0000014 + +gUnk_0812CDDC:: @ 0812CDDC + .incbin "baserom.gba", 0x12CDDC, 0x0000010 + +gUnk_0812CDEC:: @ 0812CDEC + .incbin "baserom.gba", 0x12CDEC, 0x0000018 + +gUnk_0812CE04:: @ 0812CE04 + .incbin "baserom.gba", 0x12CE04, 0x0000018 + +gUnk_0812CE1C:: @ 0812CE1C + .incbin "baserom.gba", 0x12CE1C, 0x0000010 + +gUnk_0812CE2C:: @ 0812CE2C + .incbin "baserom.gba", 0x12CE2C, 0x0000010 + +gUnk_0812CE3C:: @ 0812CE3C + .incbin "baserom.gba", 0x12CE3C, 0x0000010 + +gUnk_0812CE4C:: @ 0812CE4C + .incbin "baserom.gba", 0x12CE4C, 0x0000010 + +gUnk_0812CE5C:: @ 0812CE5C + .incbin "baserom.gba", 0x12CE5C, 0x0000010 + +gUnk_0812CE6C:: @ 0812CE6C + .incbin "baserom.gba", 0x12CE6C, 0x0000010 + +gUnk_0812CE7C:: @ 0812CE7C + .incbin "baserom.gba", 0x12CE7C, 0x0000010 + +gUnk_0812CE8C:: @ 0812CE8C + .incbin "baserom.gba", 0x12CE8C, 0x0000010 + +gUnk_0812CE9C:: @ 0812CE9C + .incbin "baserom.gba", 0x12CE9C, 0x0000010 + +gUnk_0812CEAC:: @ 0812CEAC + .incbin "baserom.gba", 0x12CEAC, 0x0000010 + +gUnk_0812CEBC:: @ 0812CEBC + .incbin "baserom.gba", 0x12CEBC, 0x0000010 + +gUnk_0812CECC:: @ 0812CECC + .incbin "baserom.gba", 0x12CECC, 0x0000010 + +gUnk_0812CEDC:: @ 0812CEDC + .incbin "baserom.gba", 0x12CEDC, 0x0000010 + +gUnk_0812CEEC:: @ 0812CEEC + .incbin "baserom.gba", 0x12CEEC, 0x000000C + +gUnk_0812CEF8:: @ 0812CEF8 + .incbin "baserom.gba", 0x12CEF8, 0x000000C + +gUnk_0812CF04:: @ 0812CF04 + .incbin "baserom.gba", 0x12CF04, 0x000000C + +gUnk_0812CF10:: @ 0812CF10 + .incbin "baserom.gba", 0x12CF10, 0x000000C + +gUnk_0812CF1C:: @ 0812CF1C + .incbin "baserom.gba", 0x12CF1C, 0x000000C + +gUnk_0812CF28:: @ 0812CF28 + .incbin "baserom.gba", 0x12CF28, 0x000000C + +gUnk_0812CF34:: @ 0812CF34 + .incbin "baserom.gba", 0x12CF34, 0x000000C + +gUnk_0812CF40:: @ 0812CF40 + .incbin "baserom.gba", 0x12CF40, 0x000000C + +gUnk_0812CF4C:: @ 0812CF4C + .incbin "baserom.gba", 0x12CF4C, 0x0000018 + +gUnk_0812CF64:: @ 0812CF64 + .incbin "baserom.gba", 0x12CF64, 0x0000010 + +gUnk_0812CF74:: @ 0812CF74 + .incbin "baserom.gba", 0x12CF74, 0x0000018 + +gUnk_0812CF8C:: @ 0812CF8C + .incbin "baserom.gba", 0x12CF8C, 0x0000014 + +gUnk_0812CFA0:: @ 0812CFA0 + .incbin "baserom.gba", 0x12CFA0, 0x0000018 + +gUnk_0812CFB8:: @ 0812CFB8 + .incbin "baserom.gba", 0x12CFB8, 0x0000010 + +gUnk_0812CFC8:: @ 0812CFC8 + .incbin "baserom.gba", 0x12CFC8, 0x0000014 + +gUnk_0812CFDC:: @ 0812CFDC + .incbin "baserom.gba", 0x12CFDC, 0x0000014 + +gUnk_0812CFF0:: @ 0812CFF0 + .incbin "baserom.gba", 0x12CFF0, 0x0000010 + +gUnk_0812D000:: @ 0812D000 + .incbin "baserom.gba", 0x12D000, 0x0000014 + +gUnk_0812D014:: @ 0812D014 + .incbin "baserom.gba", 0x12D014, 0x0000010 + +gUnk_0812D024:: @ 0812D024 + .incbin "baserom.gba", 0x12D024, 0x0000010 + +gUnk_0812D034:: @ 0812D034 + .incbin "baserom.gba", 0x12D034, 0x0000010 + +gUnk_0812D044:: @ 0812D044 + .incbin "baserom.gba", 0x12D044, 0x0000014 + +gUnk_0812D058:: @ 0812D058 + .incbin "baserom.gba", 0x12D058, 0x0000018 + +gUnk_0812D070:: @ 0812D070 + .incbin "baserom.gba", 0x12D070, 0x0000014 + +gUnk_0812D084:: @ 0812D084 + .incbin "baserom.gba", 0x12D084, 0x0000014 + +gUnk_0812D098:: @ 0812D098 + .incbin "baserom.gba", 0x12D098, 0x0000010 + +gUnk_0812D0A8:: @ 0812D0A8 + .incbin "baserom.gba", 0x12D0A8, 0x0000014 + +gUnk_0812D0BC:: @ 0812D0BC + .incbin "baserom.gba", 0x12D0BC, 0x0000010 + +gUnk_0812D0CC:: @ 0812D0CC + .incbin "baserom.gba", 0x12D0CC, 0x0000014 + +gUnk_0812D0E0:: @ 0812D0E0 + .incbin "baserom.gba", 0x12D0E0, 0x0000010 + +gUnk_0812D0F0:: @ 0812D0F0 + .incbin "baserom.gba", 0x12D0F0, 0x0000010 + +gUnk_0812D100:: @ 0812D100 + .incbin "baserom.gba", 0x12D100, 0x000000C + +gUnk_0812D10C:: @ 0812D10C + .incbin "baserom.gba", 0x12D10C, 0x0000010 + +gUnk_0812D11C:: @ 0812D11C + .incbin "baserom.gba", 0x12D11C, 0x0000010 + +gUnk_0812D12C:: @ 0812D12C + .incbin "baserom.gba", 0x12D12C, 0x0000010 + +gUnk_0812D13C:: @ 0812D13C + .incbin "baserom.gba", 0x12D13C, 0x000000C + +gUnk_0812D148:: @ 0812D148 + .incbin "baserom.gba", 0x12D148, 0x000000C + +gUnk_0812D154:: @ 0812D154 + .incbin "baserom.gba", 0x12D154, 0x0000010 + +gUnk_0812D164:: @ 0812D164 + .incbin "baserom.gba", 0x12D164, 0x0000010 + +gUnk_0812D174:: @ 0812D174 + .incbin "baserom.gba", 0x12D174, 0x0000010 + +gUnk_0812D184:: @ 0812D184 + .incbin "baserom.gba", 0x12D184, 0x0000010 + +gUnk_0812D194:: @ 0812D194 + .incbin "baserom.gba", 0x12D194, 0x0000010 + +gUnk_0812D1A4:: @ 0812D1A4 + .incbin "baserom.gba", 0x12D1A4, 0x0000010 + +gUnk_0812D1B4:: @ 0812D1B4 + .incbin "baserom.gba", 0x12D1B4, 0x0000010 + +gUnk_0812D1C4:: @ 0812D1C4 + .incbin "baserom.gba", 0x12D1C4, 0x0000010 + +gUnk_0812D1D4:: @ 0812D1D4 + .incbin "baserom.gba", 0x12D1D4, 0x0000010 + +gUnk_0812D1E4:: @ 0812D1E4 + .incbin "baserom.gba", 0x12D1E4, 0x0000010 + +gUnk_0812D1F4:: @ 0812D1F4 + .incbin "baserom.gba", 0x12D1F4, 0x0000010 + +gUnk_0812D204:: @ 0812D204 + .incbin "baserom.gba", 0x12D204, 0x0000010 + +gUnk_0812D214:: @ 0812D214 + .incbin "baserom.gba", 0x12D214, 0x0000010 + +gUnk_0812D224:: @ 0812D224 + .incbin "baserom.gba", 0x12D224, 0x0000010 + +gUnk_0812D234:: @ 0812D234 + .incbin "baserom.gba", 0x12D234, 0x0000010 + +gUnk_0812D244:: @ 0812D244 + .incbin "baserom.gba", 0x12D244, 0x0000010 + +gUnk_0812D254:: @ 0812D254 + .incbin "baserom.gba", 0x12D254, 0x0000010 + +gUnk_0812D264:: @ 0812D264 + .incbin "baserom.gba", 0x12D264, 0x0000010 + +gUnk_0812D274:: @ 0812D274 + .incbin "baserom.gba", 0x12D274, 0x0000010 + +gUnk_0812D284:: @ 0812D284 + .incbin "baserom.gba", 0x12D284, 0x000000C + +gUnk_0812D290:: @ 0812D290 + .incbin "baserom.gba", 0x12D290, 0x000000C + +gUnk_0812D29C:: @ 0812D29C + .incbin "baserom.gba", 0x12D29C, 0x000000C + +gUnk_0812D2A8:: @ 0812D2A8 + .incbin "baserom.gba", 0x12D2A8, 0x000000C + +gUnk_0812D2B4:: @ 0812D2B4 + .incbin "baserom.gba", 0x12D2B4, 0x000000C + +gUnk_0812D2C0:: @ 0812D2C0 + .incbin "baserom.gba", 0x12D2C0, 0x000000C + +gUnk_0812D2CC:: @ 0812D2CC + .incbin "baserom.gba", 0x12D2CC, 0x000000C + +gUnk_0812D2D8:: @ 0812D2D8 + .incbin "baserom.gba", 0x12D2D8, 0x000000C + +gUnk_0812D2E4:: @ 0812D2E4 + .incbin "baserom.gba", 0x12D2E4, 0x000000C + +gUnk_0812D2F0:: @ 0812D2F0 + .incbin "baserom.gba", 0x12D2F0, 0x000000C + +gUnk_0812D2FC:: @ 0812D2FC + .incbin "baserom.gba", 0x12D2FC, 0x000000C + +gUnk_0812D308:: @ 0812D308 + .incbin "baserom.gba", 0x12D308, 0x000000C + +gUnk_0812D314:: @ 0812D314 + .incbin "baserom.gba", 0x12D314, 0x000000C + +gUnk_0812D320:: @ 0812D320 + .incbin "baserom.gba", 0x12D320, 0x000000C + +gUnk_0812D32C:: @ 0812D32C + .incbin "baserom.gba", 0x12D32C, 0x000000C + +gUnk_0812D338:: @ 0812D338 + .incbin "baserom.gba", 0x12D338, 0x000000C + +gUnk_0812D344:: @ 0812D344 + .incbin "baserom.gba", 0x12D344, 0x000000C + +gUnk_0812D350:: @ 0812D350 + .incbin "baserom.gba", 0x12D350, 0x000000C + +gUnk_0812D35C:: @ 0812D35C + .incbin "baserom.gba", 0x12D35C, 0x000000C + +gUnk_0812D368:: @ 0812D368 + .incbin "baserom.gba", 0x12D368, 0x000000C + +gUnk_0812D374:: @ 0812D374 + .incbin "baserom.gba", 0x12D374, 0x000000C + +gUnk_0812D380:: @ 0812D380 + .incbin "baserom.gba", 0x12D380, 0x000000C + +gUnk_0812D38C:: @ 0812D38C + .incbin "baserom.gba", 0x12D38C, 0x000000C + +gUnk_0812D398:: @ 0812D398 + .incbin "baserom.gba", 0x12D398, 0x000000C + +gUnk_0812D3A4:: @ 0812D3A4 + .incbin "baserom.gba", 0x12D3A4, 0x000000C + +gUnk_0812D3B0:: @ 0812D3B0 + .incbin "baserom.gba", 0x12D3B0, 0x000000C + +gUnk_0812D3BC:: @ 0812D3BC + .incbin "baserom.gba", 0x12D3BC, 0x000000C + +gUnk_0812D3C8:: @ 0812D3C8 + .incbin "baserom.gba", 0x12D3C8, 0x0000014 + +gUnk_0812D3DC:: @ 0812D3DC + .incbin "baserom.gba", 0x12D3DC, 0x0000014 + +gUnk_0812D3F0:: @ 0812D3F0 + .incbin "baserom.gba", 0x12D3F0, 0x0000018 + +gUnk_0812D408:: @ 0812D408 + .incbin "baserom.gba", 0x12D408, 0x0000014 + +gUnk_0812D41C:: @ 0812D41C + .incbin "baserom.gba", 0x12D41C, 0x0000010 + +gUnk_0812D42C:: @ 0812D42C + .incbin "baserom.gba", 0x12D42C, 0x0000010 + +gUnk_0812D43C:: @ 0812D43C + .incbin "baserom.gba", 0x12D43C, 0x0000010 + +gUnk_0812D44C:: @ 0812D44C + .incbin "baserom.gba", 0x12D44C, 0x0000010 + +gUnk_0812D45C:: @ 0812D45C + .incbin "baserom.gba", 0x12D45C, 0x0000010 + +gUnk_0812D46C:: @ 0812D46C + .incbin "baserom.gba", 0x12D46C, 0x0000010 + +gUnk_0812D47C:: @ 0812D47C + .incbin "baserom.gba", 0x12D47C, 0x0000010 + +gUnk_0812D48C:: @ 0812D48C + .incbin "baserom.gba", 0x12D48C, 0x0000010 + +gUnk_0812D49C:: @ 0812D49C + .incbin "baserom.gba", 0x12D49C, 0x0000014 + +gUnk_0812D4B0:: @ 0812D4B0 + .incbin "baserom.gba", 0x12D4B0, 0x0000014 + +gUnk_0812D4C4:: @ 0812D4C4 + .incbin "baserom.gba", 0x12D4C4, 0x0000014 + +gUnk_0812D4D8:: @ 0812D4D8 + .incbin "baserom.gba", 0x12D4D8, 0x0000014 + +gUnk_0812D4EC:: @ 0812D4EC + .incbin "baserom.gba", 0x12D4EC, 0x0000014 + +gUnk_0812D500:: @ 0812D500 + .incbin "baserom.gba", 0x12D500, 0x000000C + +gUnk_0812D50C:: @ 0812D50C + .incbin "baserom.gba", 0x12D50C, 0x000000C + +gUnk_0812D518:: @ 0812D518 + .incbin "baserom.gba", 0x12D518, 0x000000C + +gUnk_0812D524:: @ 0812D524 + .incbin "baserom.gba", 0x12D524, 0x000000C + +gUnk_0812D530:: @ 0812D530 + .incbin "baserom.gba", 0x12D530, 0x0000010 + +gUnk_0812D540:: @ 0812D540 + .incbin "baserom.gba", 0x12D540, 0x0000010 + +gUnk_0812D550:: @ 0812D550 + .incbin "baserom.gba", 0x12D550, 0x0000010 + +gUnk_0812D560:: @ 0812D560 + .incbin "baserom.gba", 0x12D560, 0x0000010 + +gUnk_0812D570:: @ 0812D570 + .incbin "baserom.gba", 0x12D570, 0x0000010 + +gUnk_0812D580:: @ 0812D580 + .incbin "baserom.gba", 0x12D580, 0x0000010 + +gUnk_0812D590:: @ 0812D590 + .incbin "baserom.gba", 0x12D590, 0x0000010 + +gUnk_0812D5A0:: @ 0812D5A0 + .incbin "baserom.gba", 0x12D5A0, 0x0000010 + +gUnk_0812D5B0:: @ 0812D5B0 + .incbin "baserom.gba", 0x12D5B0, 0x0000010 + +gUnk_0812D5C0:: @ 0812D5C0 + .incbin "baserom.gba", 0x12D5C0, 0x0000010 + +gUnk_0812D5D0:: @ 0812D5D0 + .incbin "baserom.gba", 0x12D5D0, 0x0000010 + +gUnk_0812D5E0:: @ 0812D5E0 + .incbin "baserom.gba", 0x12D5E0, 0x0000010 + +gUnk_0812D5F0:: @ 0812D5F0 + .incbin "baserom.gba", 0x12D5F0, 0x0000010 + +gUnk_0812D600:: @ 0812D600 + .incbin "baserom.gba", 0x12D600, 0x0000010 + +gUnk_0812D610:: @ 0812D610 + .incbin "baserom.gba", 0x12D610, 0x0000010 + +gUnk_0812D620:: @ 0812D620 + .incbin "baserom.gba", 0x12D620, 0x0000010 + +gUnk_0812D630:: @ 0812D630 + .incbin "baserom.gba", 0x12D630, 0x0000010 + +gUnk_0812D640:: @ 0812D640 + .incbin "baserom.gba", 0x12D640, 0x0000018 + +gUnk_0812D658:: @ 0812D658 + .incbin "baserom.gba", 0x12D658, 0x0000018 + +gUnk_0812D670:: @ 0812D670 + .incbin "baserom.gba", 0x12D670, 0x0000018 + +gUnk_0812D688:: @ 0812D688 + .incbin "baserom.gba", 0x12D688, 0x0000340 + +gUnk_0812D9C8:: @ 0812D9C8 + .incbin "baserom.gba", 0x12D9C8, 0x0000008 + +gUnk_0812D9D0:: @ 0812D9D0 + .incbin "baserom.gba", 0x12D9D0, 0x0000018 + +gUnk_0812D9E8:: @ 0812D9E8 + .incbin "baserom.gba", 0x12D9E8, 0x000000C + +gUnk_0812D9F4:: @ 0812D9F4 + .incbin "baserom.gba", 0x12D9F4, 0x0000010 + +gUnk_0812DA04:: @ 0812DA04 + .incbin "baserom.gba", 0x12DA04, 0x0000010 + +gUnk_0812DA14:: @ 0812DA14 + .incbin "baserom.gba", 0x12DA14, 0x0000014 + +gUnk_0812DA28:: @ 0812DA28 + .incbin "baserom.gba", 0x12DA28, 0x0000018 + +gUnk_0812DA40:: @ 0812DA40 + .incbin "baserom.gba", 0x12DA40, 0x0000014 + +gUnk_0812DA54:: @ 0812DA54 + .incbin "baserom.gba", 0x12DA54, 0x0000014 + +gUnk_0812DA68:: @ 0812DA68 + .incbin "baserom.gba", 0x12DA68, 0x0000018 + +gUnk_0812DA80:: @ 0812DA80 + .incbin "baserom.gba", 0x12DA80, 0x0000018 + +gUnk_0812DA98:: @ 0812DA98 + .incbin "baserom.gba", 0x12DA98, 0x000000C + +gUnk_0812DAA4:: @ 0812DAA4 + .incbin "baserom.gba", 0x12DAA4, 0x000000C + +gUnk_0812DAB0:: @ 0812DAB0 + .incbin "baserom.gba", 0x12DAB0, 0x0000010 + +gUnk_0812DAC0:: @ 0812DAC0 + .incbin "baserom.gba", 0x12DAC0, 0x0000014 + +gUnk_0812DAD4:: @ 0812DAD4 + .incbin "baserom.gba", 0x12DAD4, 0x0000010 + +gUnk_0812DAE4:: @ 0812DAE4 + .incbin "baserom.gba", 0x12DAE4, 0x0000010 + +gUnk_0812DAF4:: @ 0812DAF4 + .incbin "baserom.gba", 0x12DAF4, 0x0000010 + +gUnk_0812DB04:: @ 0812DB04 + .incbin "baserom.gba", 0x12DB04, 0x0000010 + +gUnk_0812DB14:: @ 0812DB14 + .incbin "baserom.gba", 0x12DB14, 0x0000010 + +gUnk_0812DB24:: @ 0812DB24 + .incbin "baserom.gba", 0x12DB24, 0x0000010 + +gUnk_0812DB34:: @ 0812DB34 + .incbin "baserom.gba", 0x12DB34, 0x0000010 + +gUnk_0812DB44:: @ 0812DB44 + .incbin "baserom.gba", 0x12DB44, 0x0000010 + +gUnk_0812DB54:: @ 0812DB54 + .incbin "baserom.gba", 0x12DB54, 0x0000010 + +gUnk_0812DB64:: @ 0812DB64 + .incbin "baserom.gba", 0x12DB64, 0x0000010 + +gUnk_0812DB74:: @ 0812DB74 + .incbin "baserom.gba", 0x12DB74, 0x0000010 + +gUnk_0812DB84:: @ 0812DB84 + .incbin "baserom.gba", 0x12DB84, 0x0000010 + +gUnk_0812DB94:: @ 0812DB94 + .incbin "baserom.gba", 0x12DB94, 0x0000014 + +gUnk_0812DBA8:: @ 0812DBA8 + .incbin "baserom.gba", 0x12DBA8, 0x0000010 + +gUnk_0812DBB8:: @ 0812DBB8 + .incbin "baserom.gba", 0x12DBB8, 0x0000010 + +gUnk_0812DBC8:: @ 0812DBC8 + .incbin "baserom.gba", 0x12DBC8, 0x0000010 + +gUnk_0812DBD8:: @ 0812DBD8 + .incbin "baserom.gba", 0x12DBD8, 0x0000010 + +gUnk_0812DBE8:: @ 0812DBE8 + .incbin "baserom.gba", 0x12DBE8, 0x0000010 + +gUnk_0812DBF8:: @ 0812DBF8 + .incbin "baserom.gba", 0x12DBF8, 0x0000010 + +gUnk_0812DC08:: @ 0812DC08 + .incbin "baserom.gba", 0x12DC08, 0x0000010 + +gUnk_0812DC18:: @ 0812DC18 + .incbin "baserom.gba", 0x12DC18, 0x000000C + +gUnk_0812DC24:: @ 0812DC24 + .incbin "baserom.gba", 0x12DC24, 0x000000C + +gUnk_0812DC30:: @ 0812DC30 + .incbin "baserom.gba", 0x12DC30, 0x000000C + +gUnk_0812DC3C:: @ 0812DC3C + .incbin "baserom.gba", 0x12DC3C, 0x000000C + +gUnk_0812DC48:: @ 0812DC48 + .incbin "baserom.gba", 0x12DC48, 0x000000C + +gUnk_0812DC54:: @ 0812DC54 + .incbin "baserom.gba", 0x12DC54, 0x000000C + +gUnk_0812DC60:: @ 0812DC60 + .incbin "baserom.gba", 0x12DC60, 0x000000C + +gUnk_0812DC6C:: @ 0812DC6C + .incbin "baserom.gba", 0x12DC6C, 0x000000C + +gUnk_0812DC78:: @ 0812DC78 + .incbin "baserom.gba", 0x12DC78, 0x000000C + +gUnk_0812DC84:: @ 0812DC84 + .incbin "baserom.gba", 0x12DC84, 0x000000C + +gUnk_0812DC90:: @ 0812DC90 + .incbin "baserom.gba", 0x12DC90, 0x000000C + +gUnk_0812DC9C:: @ 0812DC9C + .incbin "baserom.gba", 0x12DC9C, 0x000000C + +gUnk_0812DCA8:: @ 0812DCA8 + .incbin "baserom.gba", 0x12DCA8, 0x000000C + +gUnk_0812DCB4:: @ 0812DCB4 + .incbin "baserom.gba", 0x12DCB4, 0x000000C + +gUnk_0812DCC0:: @ 0812DCC0 + .incbin "baserom.gba", 0x12DCC0, 0x000000C + +gUnk_0812DCCC:: @ 0812DCCC + .incbin "baserom.gba", 0x12DCCC, 0x000000C + +gUnk_0812DCD8:: @ 0812DCD8 + .incbin "baserom.gba", 0x12DCD8, 0x0000014 + +gUnk_0812DCEC:: @ 0812DCEC + .incbin "baserom.gba", 0x12DCEC, 0x0000014 + +gUnk_0812DD00:: @ 0812DD00 + .incbin "baserom.gba", 0x12DD00, 0x0000004 + +gUnk_0812DD04:: @ 0812DD04 + .incbin "baserom.gba", 0x12DD04, 0x0000008 + +gUnk_0812DD0C:: @ 0812DD0C + .incbin "baserom.gba", 0x12DD0C, 0x000000C + +gUnk_0812DD18:: @ 0812DD18 + .incbin "baserom.gba", 0x12DD18, 0x000000C + +gUnk_0812DD24:: @ 0812DD24 + .incbin "baserom.gba", 0x12DD24, 0x000000C + +gUnk_0812DD30:: @ 0812DD30 + .incbin "baserom.gba", 0x12DD30, 0x000000C + +gUnk_0812DD3C:: @ 0812DD3C + .incbin "baserom.gba", 0x12DD3C, 0x000000C + +gUnk_0812DD48:: @ 0812DD48 + .incbin "baserom.gba", 0x12DD48, 0x000000C + +gUnk_0812DD54:: @ 0812DD54 + .incbin "baserom.gba", 0x12DD54, 0x000000C + +gUnk_0812DD60:: @ 0812DD60 + .incbin "baserom.gba", 0x12DD60, 0x000000C + +gUnk_0812DD6C:: @ 0812DD6C + .incbin "baserom.gba", 0x12DD6C, 0x000000C + +gUnk_0812DD78:: @ 0812DD78 + .incbin "baserom.gba", 0x12DD78, 0x000000C + +gUnk_0812DD84:: @ 0812DD84 + .incbin "baserom.gba", 0x12DD84, 0x000000C + +gUnk_0812DD90:: @ 0812DD90 + .incbin "baserom.gba", 0x12DD90, 0x000000C + +gUnk_0812DD9C:: @ 0812DD9C + .incbin "baserom.gba", 0x12DD9C, 0x000000C + +gUnk_0812DDA8:: @ 0812DDA8 + .incbin "baserom.gba", 0x12DDA8, 0x000000C + +gUnk_0812DDB4:: @ 0812DDB4 + .incbin "baserom.gba", 0x12DDB4, 0x000000C + +gUnk_0812DDC0:: @ 0812DDC0 + .incbin "baserom.gba", 0x12DDC0, 0x000000C + +gUnk_0812DDCC:: @ 0812DDCC + .incbin "baserom.gba", 0x12DDCC, 0x0000014 + +gUnk_0812DDE0:: @ 0812DDE0 + .incbin "baserom.gba", 0x12DDE0, 0x0000014 + +gUnk_0812DDF4:: @ 0812DDF4 + .incbin "baserom.gba", 0x12DDF4, 0x0000014 + +gUnk_0812DE08:: @ 0812DE08 + .incbin "baserom.gba", 0x12DE08, 0x0000014 + +gUnk_0812DE1C:: @ 0812DE1C + .incbin "baserom.gba", 0x12DE1C, 0x0000014 + +gUnk_0812DE30:: @ 0812DE30 + .incbin "baserom.gba", 0x12DE30, 0x0000010 + +gUnk_0812DE40:: @ 0812DE40 + .incbin "baserom.gba", 0x12DE40, 0x0000014 + +gUnk_0812DE54:: @ 0812DE54 + .incbin "baserom.gba", 0x12DE54, 0x0000014 + +gUnk_0812DE68:: @ 0812DE68 + .incbin "baserom.gba", 0x12DE68, 0x0000014 + +gUnk_0812DE7C:: @ 0812DE7C + .incbin "baserom.gba", 0x12DE7C, 0x0000010 + +gUnk_0812DE8C:: @ 0812DE8C + .incbin "baserom.gba", 0x12DE8C, 0x0000018 + +gUnk_0812DEA4:: @ 0812DEA4 + .incbin "baserom.gba", 0x12DEA4, 0x000000C + +gUnk_0812DEB0:: @ 0812DEB0 + .incbin "baserom.gba", 0x12DEB0, 0x000000C + +gUnk_0812DEBC:: @ 0812DEBC + .incbin "baserom.gba", 0x12DEBC, 0x000000C + +gUnk_0812DEC8:: @ 0812DEC8 + .incbin "baserom.gba", 0x12DEC8, 0x000000C + +gUnk_0812DED4:: @ 0812DED4 + .incbin "baserom.gba", 0x12DED4, 0x000000C + +gUnk_0812DEE0:: @ 0812DEE0 + .incbin "baserom.gba", 0x12DEE0, 0x000000C + +gUnk_0812DEEC:: @ 0812DEEC + .incbin "baserom.gba", 0x12DEEC, 0x000000C + +gUnk_0812DEF8:: @ 0812DEF8 + .incbin "baserom.gba", 0x12DEF8, 0x000000C + +gUnk_0812DF04:: @ 0812DF04 + .incbin "baserom.gba", 0x12DF04, 0x000000C + +gUnk_0812DF10:: @ 0812DF10 + .incbin "baserom.gba", 0x12DF10, 0x000000C + +gUnk_0812DF1C:: @ 0812DF1C + .incbin "baserom.gba", 0x12DF1C, 0x000000C + +gUnk_0812DF28:: @ 0812DF28 + .incbin "baserom.gba", 0x12DF28, 0x000000C + +gUnk_0812DF34:: @ 0812DF34 + .incbin "baserom.gba", 0x12DF34, 0x000000C + +gUnk_0812DF40:: @ 0812DF40 + .incbin "baserom.gba", 0x12DF40, 0x000000C + +gUnk_0812DF4C:: @ 0812DF4C + .incbin "baserom.gba", 0x12DF4C, 0x000000C + +gUnk_0812DF58:: @ 0812DF58 + .incbin "baserom.gba", 0x12DF58, 0x000000C + +gUnk_0812DF64:: @ 0812DF64 + .incbin "baserom.gba", 0x12DF64, 0x000000C + +gUnk_0812DF70:: @ 0812DF70 + .incbin "baserom.gba", 0x12DF70, 0x0000010 + +gUnk_0812DF80:: @ 0812DF80 + .incbin "baserom.gba", 0x12DF80, 0x0000010 + +gUnk_0812DF90:: @ 0812DF90 + .incbin "baserom.gba", 0x12DF90, 0x0000010 + +gUnk_0812DFA0:: @ 0812DFA0 + .incbin "baserom.gba", 0x12DFA0, 0x0000010 + +gUnk_0812DFB0:: @ 0812DFB0 + .incbin "baserom.gba", 0x12DFB0, 0x0000010 + +gUnk_0812DFC0:: @ 0812DFC0 + .incbin "baserom.gba", 0x12DFC0, 0x0000010 + +gUnk_0812DFD0:: @ 0812DFD0 + .incbin "baserom.gba", 0x12DFD0, 0x0000010 + +gUnk_0812DFE0:: @ 0812DFE0 + .incbin "baserom.gba", 0x12DFE0, 0x0000010 + +gUnk_0812DFF0:: @ 0812DFF0 + .incbin "baserom.gba", 0x12DFF0, 0x0000010 + +gUnk_0812E000:: @ 0812E000 + .incbin "baserom.gba", 0x12E000, 0x0000010 + +gUnk_0812E010:: @ 0812E010 + .incbin "baserom.gba", 0x12E010, 0x0000010 + +gUnk_0812E020:: @ 0812E020 + .incbin "baserom.gba", 0x12E020, 0x0000010 + +gUnk_0812E030:: @ 0812E030 + .incbin "baserom.gba", 0x12E030, 0x0000010 + +gUnk_0812E040:: @ 0812E040 + .incbin "baserom.gba", 0x12E040, 0x0000010 + +gUnk_0812E050:: @ 0812E050 + .incbin "baserom.gba", 0x12E050, 0x0000010 + +gUnk_0812E060:: @ 0812E060 + .incbin "baserom.gba", 0x12E060, 0x0000010 + +gUnk_0812E070:: @ 0812E070 + .incbin "baserom.gba", 0x12E070, 0x0000010 + +gUnk_0812E080:: @ 0812E080 + .incbin "baserom.gba", 0x12E080, 0x0000010 + +gUnk_0812E090:: @ 0812E090 + .incbin "baserom.gba", 0x12E090, 0x0000010 + +gUnk_0812E0A0:: @ 0812E0A0 + .incbin "baserom.gba", 0x12E0A0, 0x0000010 + +gUnk_0812E0B0:: @ 0812E0B0 + .incbin "baserom.gba", 0x12E0B0, 0x0000010 + +gUnk_0812E0C0:: @ 0812E0C0 + .incbin "baserom.gba", 0x12E0C0, 0x0000010 + +gUnk_0812E0D0:: @ 0812E0D0 + .incbin "baserom.gba", 0x12E0D0, 0x0000010 + +gUnk_0812E0E0:: @ 0812E0E0 + .incbin "baserom.gba", 0x12E0E0, 0x0000010 + +gUnk_0812E0F0:: @ 0812E0F0 + .incbin "baserom.gba", 0x12E0F0, 0x0000010 + +gUnk_0812E100:: @ 0812E100 + .incbin "baserom.gba", 0x12E100, 0x0000010 + +gUnk_0812E110:: @ 0812E110 + .incbin "baserom.gba", 0x12E110, 0x0000010 + +gUnk_0812E120:: @ 0812E120 + .incbin "baserom.gba", 0x12E120, 0x0000010 + +gUnk_0812E130:: @ 0812E130 + .incbin "baserom.gba", 0x12E130, 0x0000010 + +gUnk_0812E140:: @ 0812E140 + .incbin "baserom.gba", 0x12E140, 0x0000010 + +gUnk_0812E150:: @ 0812E150 + .incbin "baserom.gba", 0x12E150, 0x0000010 + +gUnk_0812E160:: @ 0812E160 + .incbin "baserom.gba", 0x12E160, 0x0000010 + +gUnk_0812E170:: @ 0812E170 + .incbin "baserom.gba", 0x12E170, 0x0000010 + +gUnk_0812E180:: @ 0812E180 + .incbin "baserom.gba", 0x12E180, 0x0000010 + +gUnk_0812E190:: @ 0812E190 + .incbin "baserom.gba", 0x12E190, 0x0000010 + +gUnk_0812E1A0:: @ 0812E1A0 + .incbin "baserom.gba", 0x12E1A0, 0x0000010 + +gUnk_0812E1B0:: @ 0812E1B0 + .incbin "baserom.gba", 0x12E1B0, 0x0000010 + +gUnk_0812E1C0:: @ 0812E1C0 + .incbin "baserom.gba", 0x12E1C0, 0x0000010 + +gUnk_0812E1D0:: @ 0812E1D0 + .incbin "baserom.gba", 0x12E1D0, 0x0000010 + +gUnk_0812E1E0:: @ 0812E1E0 + .incbin "baserom.gba", 0x12E1E0, 0x0000010 + +gUnk_0812E1F0:: @ 0812E1F0 + .incbin "baserom.gba", 0x12E1F0, 0x0000010 + +gUnk_0812E200:: @ 0812E200 + .incbin "baserom.gba", 0x12E200, 0x0000010 + +gUnk_0812E210:: @ 0812E210 + .incbin "baserom.gba", 0x12E210, 0x0000010 + +gUnk_0812E220:: @ 0812E220 + .incbin "baserom.gba", 0x12E220, 0x0000010 + +gUnk_0812E230:: @ 0812E230 + .incbin "baserom.gba", 0x12E230, 0x0000010 + +gUnk_0812E240:: @ 0812E240 + .incbin "baserom.gba", 0x12E240, 0x0000010 + +gUnk_0812E250:: @ 0812E250 + .incbin "baserom.gba", 0x12E250, 0x0000010 + +gUnk_0812E260:: @ 0812E260 + .incbin "baserom.gba", 0x12E260, 0x0000010 + +gUnk_0812E270:: @ 0812E270 + .incbin "baserom.gba", 0x12E270, 0x0000010 + +gUnk_0812E280:: @ 0812E280 + .incbin "baserom.gba", 0x12E280, 0x0000010 + +gUnk_0812E290:: @ 0812E290 + .incbin "baserom.gba", 0x12E290, 0x0000010 + +gUnk_0812E2A0:: @ 0812E2A0 + .incbin "baserom.gba", 0x12E2A0, 0x0000010 + +gUnk_0812E2B0:: @ 0812E2B0 + .incbin "baserom.gba", 0x12E2B0, 0x000000C + +gUnk_0812E2BC:: @ 0812E2BC + .incbin "baserom.gba", 0x12E2BC, 0x0000010 + +gUnk_0812E2CC:: @ 0812E2CC + .incbin "baserom.gba", 0x12E2CC, 0x000000C + +gUnk_0812E2D8:: @ 0812E2D8 + .incbin "baserom.gba", 0x12E2D8, 0x000000C + +gUnk_0812E2E4:: @ 0812E2E4 + .incbin "baserom.gba", 0x12E2E4, 0x000000C + +gUnk_0812E2F0:: @ 0812E2F0 + .incbin "baserom.gba", 0x12E2F0, 0x000000C + +gUnk_0812E2FC:: @ 0812E2FC + .incbin "baserom.gba", 0x12E2FC, 0x0000010 + +gUnk_0812E30C:: @ 0812E30C + .incbin "baserom.gba", 0x12E30C, 0x0000010 + +gUnk_0812E31C:: @ 0812E31C + .incbin "baserom.gba", 0x12E31C, 0x0000010 + +gUnk_0812E32C:: @ 0812E32C + .incbin "baserom.gba", 0x12E32C, 0x0000010 + +gUnk_0812E33C:: @ 0812E33C + .incbin "baserom.gba", 0x12E33C, 0x0000010 + +gUnk_0812E34C:: @ 0812E34C + .incbin "baserom.gba", 0x12E34C, 0x0000010 + +gUnk_0812E35C:: @ 0812E35C + .incbin "baserom.gba", 0x12E35C, 0x0000010 + +gUnk_0812E36C:: @ 0812E36C + .incbin "baserom.gba", 0x12E36C, 0x0000010 + +gUnk_0812E37C:: @ 0812E37C + .incbin "baserom.gba", 0x12E37C, 0x0000010 + +gUnk_0812E38C:: @ 0812E38C + .incbin "baserom.gba", 0x12E38C, 0x0000010 + +gUnk_0812E39C:: @ 0812E39C + .incbin "baserom.gba", 0x12E39C, 0x0000010 + +gUnk_0812E3AC:: @ 0812E3AC + .incbin "baserom.gba", 0x12E3AC, 0x0000010 + +gUnk_0812E3BC:: @ 0812E3BC + .incbin "baserom.gba", 0x12E3BC, 0x0000010 + +gUnk_0812E3CC:: @ 0812E3CC + .incbin "baserom.gba", 0x12E3CC, 0x0000010 + +gUnk_0812E3DC:: @ 0812E3DC + .incbin "baserom.gba", 0x12E3DC, 0x0000010 + +gUnk_0812E3EC:: @ 0812E3EC + .incbin "baserom.gba", 0x12E3EC, 0x0000010 + +gUnk_0812E3FC:: @ 0812E3FC + .incbin "baserom.gba", 0x12E3FC, 0x0000010 + +gUnk_0812E40C:: @ 0812E40C + .incbin "baserom.gba", 0x12E40C, 0x0000010 + +gUnk_0812E41C:: @ 0812E41C + .incbin "baserom.gba", 0x12E41C, 0x0000010 + +gUnk_0812E42C:: @ 0812E42C + .incbin "baserom.gba", 0x12E42C, 0x0000010 + +gUnk_0812E43C:: @ 0812E43C + .incbin "baserom.gba", 0x12E43C, 0x0000010 + +gUnk_0812E44C:: @ 0812E44C + .incbin "baserom.gba", 0x12E44C, 0x0000010 + +gUnk_0812E45C:: @ 0812E45C + .incbin "baserom.gba", 0x12E45C, 0x0000010 + +gUnk_0812E46C:: @ 0812E46C + .incbin "baserom.gba", 0x12E46C, 0x0000014 + +gUnk_0812E480:: @ 0812E480 + .incbin "baserom.gba", 0x12E480, 0x0000014 + +gUnk_0812E494:: @ 0812E494 + .incbin "baserom.gba", 0x12E494, 0x0000014 + +gUnk_0812E4A8:: @ 0812E4A8 + .incbin "baserom.gba", 0x12E4A8, 0x0000014 + +gUnk_0812E4BC:: @ 0812E4BC + .incbin "baserom.gba", 0x12E4BC, 0x0000014 + +gUnk_0812E4D0:: @ 0812E4D0 + .incbin "baserom.gba", 0x12E4D0, 0x0000014 + +gUnk_0812E4E4:: @ 0812E4E4 + .incbin "baserom.gba", 0x12E4E4, 0x0000014 + +gUnk_0812E4F8:: @ 0812E4F8 + .incbin "baserom.gba", 0x12E4F8, 0x0000014 + +gUnk_0812E50C:: @ 0812E50C + .incbin "baserom.gba", 0x12E50C, 0x0000014 + +gUnk_0812E520:: @ 0812E520 + .incbin "baserom.gba", 0x12E520, 0x0000014 + +gUnk_0812E534:: @ 0812E534 + .incbin "baserom.gba", 0x12E534, 0x0000014 + +gUnk_0812E548:: @ 0812E548 + .incbin "baserom.gba", 0x12E548, 0x0000014 + +gUnk_0812E55C:: @ 0812E55C + .incbin "baserom.gba", 0x12E55C, 0x0000014 + +gUnk_0812E570:: @ 0812E570 + .incbin "baserom.gba", 0x12E570, 0x0000014 + +gUnk_0812E584:: @ 0812E584 + .incbin "baserom.gba", 0x12E584, 0x0000014 + +gUnk_0812E598:: @ 0812E598 + .incbin "baserom.gba", 0x12E598, 0x0000014 + +gUnk_0812E5AC:: @ 0812E5AC + .incbin "baserom.gba", 0x12E5AC, 0x0000014 + +gUnk_0812E5C0:: @ 0812E5C0 + .incbin "baserom.gba", 0x12E5C0, 0x0000014 + +gUnk_0812E5D4:: @ 0812E5D4 + .incbin "baserom.gba", 0x12E5D4, 0x0000014 + +gUnk_0812E5E8:: @ 0812E5E8 + .incbin "baserom.gba", 0x12E5E8, 0x0000014 + +gUnk_0812E5FC:: @ 0812E5FC + .incbin "baserom.gba", 0x12E5FC, 0x0000248 + +gUnk_0812E844:: @ 0812E844 + .incbin "baserom.gba", 0x12E844, 0x0000008 + +gUnk_0812E84C:: @ 0812E84C + .incbin "baserom.gba", 0x12E84C, 0x0000008 + +gUnk_0812E854:: @ 0812E854 + .incbin "baserom.gba", 0x12E854, 0x0000008 + +gUnk_0812E85C:: @ 0812E85C + .incbin "baserom.gba", 0x12E85C, 0x0000008 + +gUnk_0812E864:: @ 0812E864 + .incbin "baserom.gba", 0x12E864, 0x0000008 + +gUnk_0812E86C:: @ 0812E86C + .incbin "baserom.gba", 0x12E86C, 0x0000008 + +gUnk_0812E874:: @ 0812E874 + .incbin "baserom.gba", 0x12E874, 0x0000018 + +gUnk_0812E88C:: @ 0812E88C + .incbin "baserom.gba", 0x12E88C, 0x0000018 + +gUnk_0812E8A4:: @ 0812E8A4 + .incbin "baserom.gba", 0x12E8A4, 0x0000018 + +gUnk_0812E8BC:: @ 0812E8BC + .incbin "baserom.gba", 0x12E8BC, 0x0000010 + +gUnk_0812E8CC:: @ 0812E8CC + .incbin "baserom.gba", 0x12E8CC, 0x0000010 + +gUnk_0812E8DC:: @ 0812E8DC + .incbin "baserom.gba", 0x12E8DC, 0x0000018 + +gUnk_0812E8F4:: @ 0812E8F4 + .incbin "baserom.gba", 0x12E8F4, 0x0000009 + +gUnk_0812E8FD:: @ 0812E8FD + .incbin "baserom.gba", 0x12E8FD, 0x0000007 + +gUnk_0812E904:: @ 0812E904 + .incbin "baserom.gba", 0x12E904, 0x0000010 + +gUnk_0812E914:: @ 0812E914 + .incbin "baserom.gba", 0x12E914, 0x0000018 + +gUnk_0812E92C:: @ 0812E92C + .incbin "baserom.gba", 0x12E92C, 0x0000014 + +gUnk_0812E940:: @ 0812E940 + .incbin "baserom.gba", 0x12E940, 0x0000018 + +gUnk_0812E958:: @ 0812E958 + .incbin "baserom.gba", 0x12E958, 0x0000018 + +gUnk_0812E970:: @ 0812E970 + .incbin "baserom.gba", 0x12E970, 0x0000018 + +gUnk_0812E988:: @ 0812E988 + .incbin "baserom.gba", 0x12E988, 0x0000014 + +gUnk_0812E99C:: @ 0812E99C + .incbin "baserom.gba", 0x12E99C, 0x0000014 + +gUnk_0812E9B0:: @ 0812E9B0 + .incbin "baserom.gba", 0x12E9B0, 0x0000014 + +gUnk_0812E9C4:: @ 0812E9C4 + .incbin "baserom.gba", 0x12E9C4, 0x0000014 + +gUnk_0812E9D8:: @ 0812E9D8 + .incbin "baserom.gba", 0x12E9D8, 0x0000018 + +gUnk_0812E9F0:: @ 0812E9F0 + .incbin "baserom.gba", 0x12E9F0, 0x0000018 + +gUnk_0812EA08:: @ 0812EA08 + .incbin "baserom.gba", 0x12EA08, 0x0000018 + +gUnk_0812EA20:: @ 0812EA20 + .incbin "baserom.gba", 0x12EA20, 0x0000018 + +gUnk_0812EA38:: @ 0812EA38 + .incbin "baserom.gba", 0x12EA38, 0x0000018 + +gUnk_0812EA50:: @ 0812EA50 + .incbin "baserom.gba", 0x12EA50, 0x0000018 + +gUnk_0812EA68:: @ 0812EA68 + .incbin "baserom.gba", 0x12EA68, 0x0000018 + +gUnk_0812EA80:: @ 0812EA80 + .incbin "baserom.gba", 0x12EA80, 0x0000018 + +gUnk_0812EA98:: @ 0812EA98 + .incbin "baserom.gba", 0x12EA98, 0x0000018 + +gUnk_0812EAB0:: @ 0812EAB0 + .incbin "baserom.gba", 0x12EAB0, 0x000001C + +gUnk_0812EACC:: @ 0812EACC + .incbin "baserom.gba", 0x12EACC, 0x000000C + +gUnk_0812EAD8:: @ 0812EAD8 + .incbin "baserom.gba", 0x12EAD8, 0x0000010 + +gUnk_0812EAE8:: @ 0812EAE8 + .incbin "baserom.gba", 0x12EAE8, 0x000001C + +gUnk_0812EB04:: @ 0812EB04 + .incbin "baserom.gba", 0x12EB04, 0x0000018 + +gUnk_0812EB1C:: @ 0812EB1C + .incbin "baserom.gba", 0x12EB1C, 0x0000018 + +gUnk_0812EB34:: @ 0812EB34 + .incbin "baserom.gba", 0x12EB34, 0x000001C + +gUnk_0812EB50:: @ 0812EB50 + .incbin "baserom.gba", 0x12EB50, 0x000001C + +gUnk_0812EB6C:: @ 0812EB6C + .incbin "baserom.gba", 0x12EB6C, 0x000001C + +gUnk_0812EB88:: @ 0812EB88 + .incbin "baserom.gba", 0x12EB88, 0x000001C + +gUnk_0812EBA4:: @ 0812EBA4 + .incbin "baserom.gba", 0x12EBA4, 0x000001C + +gUnk_0812EBC0:: @ 0812EBC0 + .incbin "baserom.gba", 0x12EBC0, 0x0000018 + +gUnk_0812EBD8:: @ 0812EBD8 + .incbin "baserom.gba", 0x12EBD8, 0x0000018 + +gUnk_0812EBF0:: @ 0812EBF0 + .incbin "baserom.gba", 0x12EBF0, 0x0000018 + +gUnk_0812EC08:: @ 0812EC08 + .incbin "baserom.gba", 0x12EC08, 0x0000018 + +gUnk_0812EC20:: @ 0812EC20 + .incbin "baserom.gba", 0x12EC20, 0x0000014 + +gUnk_0812EC34:: @ 0812EC34 + .incbin "baserom.gba", 0x12EC34, 0x0000014 + +gUnk_0812EC48:: @ 0812EC48 + .incbin "baserom.gba", 0x12EC48, 0x0000018 + +gUnk_0812EC60:: @ 0812EC60 + .incbin "baserom.gba", 0x12EC60, 0x0000018 + +gUnk_0812EC78:: @ 0812EC78 + .incbin "baserom.gba", 0x12EC78, 0x0000018 + +gUnk_0812EC90:: @ 0812EC90 + .incbin "baserom.gba", 0x12EC90, 0x0000018 + +gUnk_0812ECA8:: @ 0812ECA8 + .incbin "baserom.gba", 0x12ECA8, 0x0000018 + +gUnk_0812ECC0:: @ 0812ECC0 + .incbin "baserom.gba", 0x12ECC0, 0x0000018 + +gUnk_0812ECD8:: @ 0812ECD8 + .incbin "baserom.gba", 0x12ECD8, 0x0000018 + +gUnk_0812ECF0:: @ 0812ECF0 + .incbin "baserom.gba", 0x12ECF0, 0x0000018 + +gUnk_0812ED08:: @ 0812ED08 + .incbin "baserom.gba", 0x12ED08, 0x0000018 + +gUnk_0812ED20:: @ 0812ED20 + .incbin "baserom.gba", 0x12ED20, 0x0000018 + +gUnk_0812ED38:: @ 0812ED38 + .incbin "baserom.gba", 0x12ED38, 0x0000018 + +gUnk_0812ED50:: @ 0812ED50 + .incbin "baserom.gba", 0x12ED50, 0x0000018 + +gUnk_0812ED68:: @ 0812ED68 + .incbin "baserom.gba", 0x12ED68, 0x0000018 + +gUnk_0812ED80:: @ 0812ED80 + .incbin "baserom.gba", 0x12ED80, 0x0000018 + +gUnk_0812ED98:: @ 0812ED98 + .incbin "baserom.gba", 0x12ED98, 0x0000018 + +gUnk_0812EDB0:: @ 0812EDB0 + .incbin "baserom.gba", 0x12EDB0, 0x0000018 + +gUnk_0812EDC8:: @ 0812EDC8 + .incbin "baserom.gba", 0x12EDC8, 0x0000018 + +gUnk_0812EDE0:: @ 0812EDE0 + .incbin "baserom.gba", 0x12EDE0, 0x0000018 + +gUnk_0812EDF8:: @ 0812EDF8 + .incbin "baserom.gba", 0x12EDF8, 0x0000018 + +gUnk_0812EE10:: @ 0812EE10 + .incbin "baserom.gba", 0x12EE10, 0x0000018 + +gUnk_0812EE28:: @ 0812EE28 + .incbin "baserom.gba", 0x12EE28, 0x0000018 + +gUnk_0812EE40:: @ 0812EE40 + .incbin "baserom.gba", 0x12EE40, 0x0000014 + +gUnk_0812EE54:: @ 0812EE54 + .incbin "baserom.gba", 0x12EE54, 0x0000014 + +gUnk_0812EE68:: @ 0812EE68 + .incbin "baserom.gba", 0x12EE68, 0x0000014 + +gUnk_0812EE7C:: @ 0812EE7C + .incbin "baserom.gba", 0x12EE7C, 0x0000014 + +gUnk_0812EE90:: @ 0812EE90 + .incbin "baserom.gba", 0x12EE90, 0x0000014 + +gUnk_0812EEA4:: @ 0812EEA4 + .incbin "baserom.gba", 0x12EEA4, 0x0000014 + +gUnk_0812EEB8:: @ 0812EEB8 + .incbin "baserom.gba", 0x12EEB8, 0x0000014 + +gUnk_0812EECC:: @ 0812EECC + .incbin "baserom.gba", 0x12EECC, 0x0000014 + +gUnk_0812EEE0:: @ 0812EEE0 + .incbin "baserom.gba", 0x12EEE0, 0x0000014 + +gUnk_0812EEF4:: @ 0812EEF4 + .incbin "baserom.gba", 0x12EEF4, 0x0000014 + +gUnk_0812EF08:: @ 0812EF08 + .incbin "baserom.gba", 0x12EF08, 0x0000014 + +gUnk_0812EF1C:: @ 0812EF1C + .incbin "baserom.gba", 0x12EF1C, 0x0000003 + +gUnk_0812EF1F:: @ 0812EF1F + .incbin "baserom.gba", 0x12EF1F, 0x0000011 + +gUnk_0812EF30:: @ 0812EF30 + .incbin "baserom.gba", 0x12EF30, 0x0000014 + +gUnk_0812EF44:: @ 0812EF44 + .incbin "baserom.gba", 0x12EF44, 0x0000018 + +gUnk_0812EF5C:: @ 0812EF5C + .incbin "baserom.gba", 0x12EF5C, 0x0000018 + +gUnk_0812EF74:: @ 0812EF74 + .incbin "baserom.gba", 0x12EF74, 0x0000018 + +gUnk_0812EF8C:: @ 0812EF8C + .incbin "baserom.gba", 0x12EF8C, 0x000001C + +gUnk_0812EFA8:: @ 0812EFA8 + .incbin "baserom.gba", 0x12EFA8, 0x0000018 + +gUnk_0812EFC0:: @ 0812EFC0 + .incbin "baserom.gba", 0x12EFC0, 0x0000018 + +gUnk_0812EFD8:: @ 0812EFD8 + .incbin "baserom.gba", 0x12EFD8, 0x0000018 + +gUnk_0812EFF0:: @ 0812EFF0 + .incbin "baserom.gba", 0x12EFF0, 0x0000018 + +gUnk_0812F008:: @ 0812F008 + .incbin "baserom.gba", 0x12F008, 0x0000018 + +gUnk_0812F020:: @ 0812F020 + .incbin "baserom.gba", 0x12F020, 0x0000018 + +gUnk_0812F038:: @ 0812F038 + .incbin "baserom.gba", 0x12F038, 0x0000018 + +gUnk_0812F050:: @ 0812F050 + .incbin "baserom.gba", 0x12F050, 0x0000018 + +gUnk_0812F068:: @ 0812F068 + .incbin "baserom.gba", 0x12F068, 0x0000018 + +gUnk_0812F080:: @ 0812F080 + .incbin "baserom.gba", 0x12F080, 0x0000018 + +gUnk_0812F098:: @ 0812F098 + .incbin "baserom.gba", 0x12F098, 0x0000018 + +gUnk_0812F0B0:: @ 0812F0B0 + .incbin "baserom.gba", 0x12F0B0, 0x0000018 + +gUnk_0812F0C8:: @ 0812F0C8 + .incbin "baserom.gba", 0x12F0C8, 0x0000018 + +gUnk_0812F0E0:: @ 0812F0E0 + .incbin "baserom.gba", 0x12F0E0, 0x0000018 + +gUnk_0812F0F8:: @ 0812F0F8 + .incbin "baserom.gba", 0x12F0F8, 0x0000018 + +gUnk_0812F110:: @ 0812F110 + .incbin "baserom.gba", 0x12F110, 0x0000018 + +gUnk_0812F128:: @ 0812F128 + .incbin "baserom.gba", 0x12F128, 0x0000018 + +gUnk_0812F140:: @ 0812F140 + .incbin "baserom.gba", 0x12F140, 0x0000018 + +gUnk_0812F158:: @ 0812F158 + .incbin "baserom.gba", 0x12F158, 0x0000018 + +gUnk_0812F170:: @ 0812F170 + .incbin "baserom.gba", 0x12F170, 0x0000018 + +gUnk_0812F188:: @ 0812F188 + .incbin "baserom.gba", 0x12F188, 0x0000018 + +gUnk_0812F1A0:: @ 0812F1A0 + .incbin "baserom.gba", 0x12F1A0, 0x0000018 + +gUnk_0812F1B8:: @ 0812F1B8 + .incbin "baserom.gba", 0x12F1B8, 0x0000018 + +gUnk_0812F1D0:: @ 0812F1D0 + .incbin "baserom.gba", 0x12F1D0, 0x0000018 + +gUnk_0812F1E8:: @ 0812F1E8 + .incbin "baserom.gba", 0x12F1E8, 0x0000018 + +gUnk_0812F200:: @ 0812F200 + .incbin "baserom.gba", 0x12F200, 0x0000018 + +gUnk_0812F218:: @ 0812F218 + .incbin "baserom.gba", 0x12F218, 0x0000018 + +gUnk_0812F230:: @ 0812F230 + .incbin "baserom.gba", 0x12F230, 0x0000018 + +gUnk_0812F248:: @ 0812F248 + .incbin "baserom.gba", 0x12F248, 0x0000018 + +gUnk_0812F260:: @ 0812F260 + .incbin "baserom.gba", 0x12F260, 0x0000018 + +gUnk_0812F278:: @ 0812F278 + .incbin "baserom.gba", 0x12F278, 0x0000018 + +gUnk_0812F290:: @ 0812F290 + .incbin "baserom.gba", 0x12F290, 0x0000018 + +gUnk_0812F2A8:: @ 0812F2A8 + .incbin "baserom.gba", 0x12F2A8, 0x0000018 + +gUnk_0812F2C0:: @ 0812F2C0 + .incbin "baserom.gba", 0x12F2C0, 0x0000018 + +gUnk_0812F2D8:: @ 0812F2D8 + .incbin "baserom.gba", 0x12F2D8, 0x0000018 + +gUnk_0812F2F0:: @ 0812F2F0 + .incbin "baserom.gba", 0x12F2F0, 0x0000018 + +gUnk_0812F308:: @ 0812F308 + .incbin "baserom.gba", 0x12F308, 0x0000018 + +gUnk_0812F320:: @ 0812F320 + .incbin "baserom.gba", 0x12F320, 0x0000018 + +gUnk_0812F338:: @ 0812F338 + .incbin "baserom.gba", 0x12F338, 0x0000018 + +gUnk_0812F350:: @ 0812F350 + .incbin "baserom.gba", 0x12F350, 0x0000018 + +gUnk_0812F368:: @ 0812F368 + .incbin "baserom.gba", 0x12F368, 0x0000018 + +gUnk_0812F380:: @ 0812F380 + .incbin "baserom.gba", 0x12F380, 0x0000018 + +gUnk_0812F398:: @ 0812F398 + .incbin "baserom.gba", 0x12F398, 0x0000018 + +gUnk_0812F3B0:: @ 0812F3B0 + .incbin "baserom.gba", 0x12F3B0, 0x0000018 + +gUnk_0812F3C8:: @ 0812F3C8 + .incbin "baserom.gba", 0x12F3C8, 0x0000018 + +gUnk_0812F3E0:: @ 0812F3E0 + .incbin "baserom.gba", 0x12F3E0, 0x0000018 + +gUnk_0812F3F8:: @ 0812F3F8 + .incbin "baserom.gba", 0x12F3F8, 0x0000018 + +gUnk_0812F410:: @ 0812F410 + .incbin "baserom.gba", 0x12F410, 0x0000018 + +gUnk_0812F428:: @ 0812F428 + .incbin "baserom.gba", 0x12F428, 0x0000018 + +gUnk_0812F440:: @ 0812F440 + .incbin "baserom.gba", 0x12F440, 0x0000018 + +gUnk_0812F458:: @ 0812F458 + .incbin "baserom.gba", 0x12F458, 0x0000018 + +gUnk_0812F470:: @ 0812F470 + .incbin "baserom.gba", 0x12F470, 0x0000014 + +gUnk_0812F484:: @ 0812F484 + .incbin "baserom.gba", 0x12F484, 0x0000010 + +gUnk_0812F494:: @ 0812F494 + .incbin "baserom.gba", 0x12F494, 0x0000170 + +gUnk_0812F604:: @ 0812F604 + .incbin "baserom.gba", 0x12F604, 0x0000010 + +gUnk_0812F614:: @ 0812F614 + .incbin "baserom.gba", 0x12F614, 0x0000010 + +gUnk_0812F624:: @ 0812F624 + .incbin "baserom.gba", 0x12F624, 0x000000C + +gUnk_0812F630:: @ 0812F630 + .incbin "baserom.gba", 0x12F630, 0x000000C + +gUnk_0812F63C:: @ 0812F63C + .incbin "baserom.gba", 0x12F63C, 0x000000C + +gUnk_0812F648:: @ 0812F648 + .incbin "baserom.gba", 0x12F648, 0x000000C + +gUnk_0812F654:: @ 0812F654 + .incbin "baserom.gba", 0x12F654, 0x0000010 + +gUnk_0812F664:: @ 0812F664 + .incbin "baserom.gba", 0x12F664, 0x000000C + +gUnk_0812F670:: @ 0812F670 + .incbin "baserom.gba", 0x12F670, 0x0000010 + +gUnk_0812F680:: @ 0812F680 + .incbin "baserom.gba", 0x12F680, 0x000000C + +gUnk_0812F68C:: @ 0812F68C + .incbin "baserom.gba", 0x12F68C, 0x000000C + +gUnk_0812F698:: @ 0812F698 + .incbin "baserom.gba", 0x12F698, 0x000000C + +gUnk_0812F6A4:: @ 0812F6A4 + .incbin "baserom.gba", 0x12F6A4, 0x000000C + +gUnk_0812F6B0:: @ 0812F6B0 + .incbin "baserom.gba", 0x12F6B0, 0x000000C + +gUnk_0812F6BC:: @ 0812F6BC + .incbin "baserom.gba", 0x12F6BC, 0x0000010 + +gUnk_0812F6CC:: @ 0812F6CC + .incbin "baserom.gba", 0x12F6CC, 0x0000010 + +gUnk_0812F6DC:: @ 0812F6DC + .incbin "baserom.gba", 0x12F6DC, 0x0000010 + +gUnk_0812F6EC:: @ 0812F6EC + .incbin "baserom.gba", 0x12F6EC, 0x000000C + +gUnk_0812F6F8:: @ 0812F6F8 + .incbin "baserom.gba", 0x12F6F8, 0x000000C + +gUnk_0812F704:: @ 0812F704 + .incbin "baserom.gba", 0x12F704, 0x000000C + +gUnk_0812F710:: @ 0812F710 + .incbin "baserom.gba", 0x12F710, 0x000000C + +gUnk_0812F71C:: @ 0812F71C + .incbin "baserom.gba", 0x12F71C, 0x000000C + +gUnk_0812F728:: @ 0812F728 + .incbin "baserom.gba", 0x12F728, 0x000000C + +gUnk_0812F734:: @ 0812F734 + .incbin "baserom.gba", 0x12F734, 0x000000C + +gUnk_0812F740:: @ 0812F740 + .incbin "baserom.gba", 0x12F740, 0x000000C + +gUnk_0812F74C:: @ 0812F74C + .incbin "baserom.gba", 0x12F74C, 0x000000C + +gUnk_0812F758:: @ 0812F758 + .incbin "baserom.gba", 0x12F758, 0x000000C + +gUnk_0812F764:: @ 0812F764 + .incbin "baserom.gba", 0x12F764, 0x000000C + +gUnk_0812F770:: @ 0812F770 + .incbin "baserom.gba", 0x12F770, 0x000000C + +gUnk_0812F77C:: @ 0812F77C + .incbin "baserom.gba", 0x12F77C, 0x000000C + +gUnk_0812F788:: @ 0812F788 + .incbin "baserom.gba", 0x12F788, 0x000000C + +gUnk_0812F794:: @ 0812F794 + .incbin "baserom.gba", 0x12F794, 0x0000010 + +gUnk_0812F7A4:: @ 0812F7A4 + .incbin "baserom.gba", 0x12F7A4, 0x000000C + +gUnk_0812F7B0:: @ 0812F7B0 + .incbin "baserom.gba", 0x12F7B0, 0x000000C + +gUnk_0812F7BC:: @ 0812F7BC + .incbin "baserom.gba", 0x12F7BC, 0x000000C + +gUnk_0812F7C8:: @ 0812F7C8 + .incbin "baserom.gba", 0x12F7C8, 0x0000010 + +gUnk_0812F7D8:: @ 0812F7D8 + .incbin "baserom.gba", 0x12F7D8, 0x000000C + +gUnk_0812F7E4:: @ 0812F7E4 + .incbin "baserom.gba", 0x12F7E4, 0x000000C + +gUnk_0812F7F0:: @ 0812F7F0 + .incbin "baserom.gba", 0x12F7F0, 0x000000C + +gUnk_0812F7FC:: @ 0812F7FC + .incbin "baserom.gba", 0x12F7FC, 0x000000C + +gUnk_0812F808:: @ 0812F808 + .incbin "baserom.gba", 0x12F808, 0x0000010 + +gUnk_0812F818:: @ 0812F818 + .incbin "baserom.gba", 0x12F818, 0x000000C + +gUnk_0812F824:: @ 0812F824 + .incbin "baserom.gba", 0x12F824, 0x0000010 + +gUnk_0812F834:: @ 0812F834 + .incbin "baserom.gba", 0x12F834, 0x000000C + +gUnk_0812F840:: @ 0812F840 + .incbin "baserom.gba", 0x12F840, 0x000000C + +gUnk_0812F84C:: @ 0812F84C + .incbin "baserom.gba", 0x12F84C, 0x000000C + +gUnk_0812F858:: @ 0812F858 + .incbin "baserom.gba", 0x12F858, 0x000000C + +gUnk_0812F864:: @ 0812F864 + .incbin "baserom.gba", 0x12F864, 0x000000C + +gUnk_0812F870:: @ 0812F870 + .incbin "baserom.gba", 0x12F870, 0x000000C + +gUnk_0812F87C:: @ 0812F87C + .incbin "baserom.gba", 0x12F87C, 0x0000010 + +gUnk_0812F88C:: @ 0812F88C + .incbin "baserom.gba", 0x12F88C, 0x000000C + +gUnk_0812F898:: @ 0812F898 + .incbin "baserom.gba", 0x12F898, 0x000000C + +gUnk_0812F8A4:: @ 0812F8A4 + .incbin "baserom.gba", 0x12F8A4, 0x000000C + +gUnk_0812F8B0:: @ 0812F8B0 + .incbin "baserom.gba", 0x12F8B0, 0x000000C + +gUnk_0812F8BC:: @ 0812F8BC + .incbin "baserom.gba", 0x12F8BC, 0x000000C + +gUnk_0812F8C8:: @ 0812F8C8 + .incbin "baserom.gba", 0x12F8C8, 0x000000C + +gUnk_0812F8D4:: @ 0812F8D4 + .incbin "baserom.gba", 0x12F8D4, 0x000000C + +gUnk_0812F8E0:: @ 0812F8E0 + .incbin "baserom.gba", 0x12F8E0, 0x000000C + +gUnk_0812F8EC:: @ 0812F8EC + .incbin "baserom.gba", 0x12F8EC, 0x0000008 + +gUnk_0812F8F4:: @ 0812F8F4 + .incbin "baserom.gba", 0x12F8F4, 0x0000001 + +gUnk_0812F8F5:: @ 0812F8F5 + .incbin "baserom.gba", 0x12F8F5, 0x0000003 + +gUnk_0812F8F8:: @ 0812F8F8 + .incbin "baserom.gba", 0x12F8F8, 0x000000C + +gUnk_0812F904:: @ 0812F904 + .incbin "baserom.gba", 0x12F904, 0x000000C + +gUnk_0812F910:: @ 0812F910 + .incbin "baserom.gba", 0x12F910, 0x000000C + +gUnk_0812F91C:: @ 0812F91C + .incbin "baserom.gba", 0x12F91C, 0x000000C + +gUnk_0812F928:: @ 0812F928 + .incbin "baserom.gba", 0x12F928, 0x000000C + +gUnk_0812F934:: @ 0812F934 + .incbin "baserom.gba", 0x12F934, 0x000000C + +gUnk_0812F940:: @ 0812F940 + .incbin "baserom.gba", 0x12F940, 0x000000C + +gUnk_0812F94C:: @ 0812F94C + .incbin "baserom.gba", 0x12F94C, 0x000000C + +gUnk_0812F958:: @ 0812F958 + .incbin "baserom.gba", 0x12F958, 0x000000C + +gUnk_0812F964:: @ 0812F964 + .incbin "baserom.gba", 0x12F964, 0x000000C + +gUnk_0812F970:: @ 0812F970 + .incbin "baserom.gba", 0x12F970, 0x000000C + +gUnk_0812F97C:: @ 0812F97C + .incbin "baserom.gba", 0x12F97C, 0x000000C + +gUnk_0812F988:: @ 0812F988 + .incbin "baserom.gba", 0x12F988, 0x000000C + +gUnk_0812F994:: @ 0812F994 + .incbin "baserom.gba", 0x12F994, 0x000000C + +gUnk_0812F9A0:: @ 0812F9A0 + .incbin "baserom.gba", 0x12F9A0, 0x000000C + +gUnk_0812F9AC:: @ 0812F9AC + .incbin "baserom.gba", 0x12F9AC, 0x000000C + +gUnk_0812F9B8:: @ 0812F9B8 + .incbin "baserom.gba", 0x12F9B8, 0x000000C + +gUnk_0812F9C4:: @ 0812F9C4 + .incbin "baserom.gba", 0x12F9C4, 0x000000C + +gUnk_0812F9D0:: @ 0812F9D0 + .incbin "baserom.gba", 0x12F9D0, 0x000000C + +gUnk_0812F9DC:: @ 0812F9DC + .incbin "baserom.gba", 0x12F9DC, 0x000000C + +gUnk_0812F9E8:: @ 0812F9E8 + .incbin "baserom.gba", 0x12F9E8, 0x000000C + +gUnk_0812F9F4:: @ 0812F9F4 + .incbin "baserom.gba", 0x12F9F4, 0x000000C + +gUnk_0812FA00:: @ 0812FA00 + .incbin "baserom.gba", 0x12FA00, 0x000000C + +gUnk_0812FA0C:: @ 0812FA0C + .incbin "baserom.gba", 0x12FA0C, 0x0000001 + +gUnk_0812FA0D:: @ 0812FA0D + .incbin "baserom.gba", 0x12FA0D, 0x000000B + +gUnk_0812FA18:: @ 0812FA18 + .incbin "baserom.gba", 0x12FA18, 0x000000C + +gUnk_0812FA24:: @ 0812FA24 + .incbin "baserom.gba", 0x12FA24, 0x000000C + +gUnk_0812FA30:: @ 0812FA30 + .incbin "baserom.gba", 0x12FA30, 0x00000CD + +gUnk_0812FAFD:: @ 0812FAFD + .incbin "baserom.gba", 0x12FAFD, 0x0000057 + +gUnk_0812FB54:: @ 0812FB54 + .incbin "baserom.gba", 0x12FB54, 0x0000010 + +gUnk_0812FB64:: @ 0812FB64 + .incbin "baserom.gba", 0x12FB64, 0x0000010 + +gUnk_0812FB74:: @ 0812FB74 + .incbin "baserom.gba", 0x12FB74, 0x000000C + +gUnk_0812FB80:: @ 0812FB80 + .incbin "baserom.gba", 0x12FB80, 0x000000C + +gUnk_0812FB8C:: @ 0812FB8C + .incbin "baserom.gba", 0x12FB8C, 0x000000C + +gUnk_0812FB98:: @ 0812FB98 + .incbin "baserom.gba", 0x12FB98, 0x000000C + +gUnk_0812FBA4:: @ 0812FBA4 + .incbin "baserom.gba", 0x12FBA4, 0x000000C + +gUnk_0812FBB0:: @ 0812FBB0 + .incbin "baserom.gba", 0x12FBB0, 0x000000C + +gUnk_0812FBBC:: @ 0812FBBC + .incbin "baserom.gba", 0x12FBBC, 0x000000C + +gUnk_0812FBC8:: @ 0812FBC8 + .incbin "baserom.gba", 0x12FBC8, 0x000000C + +gUnk_0812FBD4:: @ 0812FBD4 + .incbin "baserom.gba", 0x12FBD4, 0x0000010 + +gUnk_0812FBE4:: @ 0812FBE4 + .incbin "baserom.gba", 0x12FBE4, 0x000000C + +gUnk_0812FBF0:: @ 0812FBF0 + .incbin "baserom.gba", 0x12FBF0, 0x000000C + +gUnk_0812FBFC:: @ 0812FBFC + .incbin "baserom.gba", 0x12FBFC, 0x000000C + +gUnk_0812FC08:: @ 0812FC08 + .incbin "baserom.gba", 0x12FC08, 0x000000C + +gUnk_0812FC14:: @ 0812FC14 + .incbin "baserom.gba", 0x12FC14, 0x000000C + +gUnk_0812FC20:: @ 0812FC20 + .incbin "baserom.gba", 0x12FC20, 0x000000C + +gUnk_0812FC2C:: @ 0812FC2C + .incbin "baserom.gba", 0x12FC2C, 0x0000010 + +gUnk_0812FC3C:: @ 0812FC3C + .incbin "baserom.gba", 0x12FC3C, 0x000000C + +gUnk_0812FC48:: @ 0812FC48 + .incbin "baserom.gba", 0x12FC48, 0x000000C + +gUnk_0812FC54:: @ 0812FC54 + .incbin "baserom.gba", 0x12FC54, 0x000000C + +gUnk_0812FC60:: @ 0812FC60 + .incbin "baserom.gba", 0x12FC60, 0x000000C + +gUnk_0812FC6C:: @ 0812FC6C + .incbin "baserom.gba", 0x12FC6C, 0x000000C + +gUnk_0812FC78:: @ 0812FC78 + .incbin "baserom.gba", 0x12FC78, 0x000000C + +gUnk_0812FC84:: @ 0812FC84 + .incbin "baserom.gba", 0x12FC84, 0x000000C + +gUnk_0812FC90:: @ 0812FC90 + .incbin "baserom.gba", 0x12FC90, 0x000000C + +gUnk_0812FC9C:: @ 0812FC9C + .incbin "baserom.gba", 0x12FC9C, 0x000000C + +gUnk_0812FCA8:: @ 0812FCA8 + .incbin "baserom.gba", 0x12FCA8, 0x000000C + +gUnk_0812FCB4:: @ 0812FCB4 + .incbin "baserom.gba", 0x12FCB4, 0x000000C + +gUnk_0812FCC0:: @ 0812FCC0 + .incbin "baserom.gba", 0x12FCC0, 0x000000C + +gUnk_0812FCCC:: @ 0812FCCC + .incbin "baserom.gba", 0x12FCCC, 0x000000C + +gUnk_0812FCD8:: @ 0812FCD8 + .incbin "baserom.gba", 0x12FCD8, 0x000000C + +gUnk_0812FCE4:: @ 0812FCE4 + .incbin "baserom.gba", 0x12FCE4, 0x000000C + +gUnk_0812FCF0:: @ 0812FCF0 + .incbin "baserom.gba", 0x12FCF0, 0x0000010 + +gUnk_0812FD00:: @ 0812FD00 + .incbin "baserom.gba", 0x12FD00, 0x000000C + +gUnk_0812FD0C:: @ 0812FD0C + .incbin "baserom.gba", 0x12FD0C, 0x0000010 + +gUnk_0812FD1C:: @ 0812FD1C + .incbin "baserom.gba", 0x12FD1C, 0x000000C + +gUnk_0812FD28:: @ 0812FD28 + .incbin "baserom.gba", 0x12FD28, 0x000000C + +gUnk_0812FD34:: @ 0812FD34 + .incbin "baserom.gba", 0x12FD34, 0x0000010 + +gUnk_0812FD44:: @ 0812FD44 + .incbin "baserom.gba", 0x12FD44, 0x000000C + +gUnk_0812FD50:: @ 0812FD50 + .incbin "baserom.gba", 0x12FD50, 0x000000C + +gUnk_0812FD5C:: @ 0812FD5C + .incbin "baserom.gba", 0x12FD5C, 0x0000010 + +gUnk_0812FD6C:: @ 0812FD6C + .incbin "baserom.gba", 0x12FD6C, 0x000000C + +gUnk_0812FD78:: @ 0812FD78 + .incbin "baserom.gba", 0x12FD78, 0x000000C + +gUnk_0812FD84:: @ 0812FD84 + .incbin "baserom.gba", 0x12FD84, 0x000000C + +gUnk_0812FD90:: @ 0812FD90 + .incbin "baserom.gba", 0x12FD90, 0x000000C + +gUnk_0812FD9C:: @ 0812FD9C + .incbin "baserom.gba", 0x12FD9C, 0x000000C + +gUnk_0812FDA8:: @ 0812FDA8 + .incbin "baserom.gba", 0x12FDA8, 0x000000C + +gUnk_0812FDB4:: @ 0812FDB4 + .incbin "baserom.gba", 0x12FDB4, 0x000000C + +gUnk_0812FDC0:: @ 0812FDC0 + .incbin "baserom.gba", 0x12FDC0, 0x0000014 + +gUnk_0812FDD4:: @ 0812FDD4 + .incbin "baserom.gba", 0x12FDD4, 0x000000C + +gUnk_0812FDE0:: @ 0812FDE0 + .incbin "baserom.gba", 0x12FDE0, 0x000000C + +gUnk_0812FDEC:: @ 0812FDEC + .incbin "baserom.gba", 0x12FDEC, 0x000000C + +gUnk_0812FDF8:: @ 0812FDF8 + .incbin "baserom.gba", 0x12FDF8, 0x000000C + +gUnk_0812FE04:: @ 0812FE04 + .incbin "baserom.gba", 0x12FE04, 0x000000C + +gUnk_0812FE10:: @ 0812FE10 + .incbin "baserom.gba", 0x12FE10, 0x000000C + +gUnk_0812FE1C:: @ 0812FE1C + .incbin "baserom.gba", 0x12FE1C, 0x000000C + +gUnk_0812FE28:: @ 0812FE28 + .incbin "baserom.gba", 0x12FE28, 0x000000C + +gUnk_0812FE34:: @ 0812FE34 + .incbin "baserom.gba", 0x12FE34, 0x000000C + +gUnk_0812FE40:: @ 0812FE40 + .incbin "baserom.gba", 0x12FE40, 0x000000C + +gUnk_0812FE4C:: @ 0812FE4C + .incbin "baserom.gba", 0x12FE4C, 0x000000C + +gUnk_0812FE58:: @ 0812FE58 + .incbin "baserom.gba", 0x12FE58, 0x000000C + +gUnk_0812FE64:: @ 0812FE64 + .incbin "baserom.gba", 0x12FE64, 0x000000C + +gUnk_0812FE70:: @ 0812FE70 + .incbin "baserom.gba", 0x12FE70, 0x000000C + +gUnk_0812FE7C:: @ 0812FE7C + .incbin "baserom.gba", 0x12FE7C, 0x000000C + +gUnk_0812FE88:: @ 0812FE88 + .incbin "baserom.gba", 0x12FE88, 0x000000C + +gUnk_0812FE94:: @ 0812FE94 + .incbin "baserom.gba", 0x12FE94, 0x000000C + +gUnk_0812FEA0:: @ 0812FEA0 + .incbin "baserom.gba", 0x12FEA0, 0x00000B6 + +gUnk_0812FF56:: @ 0812FF56 + .incbin "baserom.gba", 0x12FF56, 0x0000048 + +gUnk_0812FF9E:: @ 0812FF9E + .incbin "baserom.gba", 0x12FF9E, 0x0000038 + +gUnk_0812FFD6:: @ 0812FFD6 + .incbin "baserom.gba", 0x12FFD6, 0x0000002 + +gUnk_0812FFD8:: @ 0812FFD8 + .incbin "baserom.gba", 0x12FFD8, 0x000000C + +gUnk_0812FFE4:: @ 0812FFE4 + .incbin "baserom.gba", 0x12FFE4, 0x000000C + +gUnk_0812FFF0:: @ 0812FFF0 + .incbin "baserom.gba", 0x12FFF0, 0x0000006 + +gUnk_0812FFF6:: @ 0812FFF6 + .incbin "baserom.gba", 0x12FFF6, 0x0000006 + +gUnk_0812FFFC:: @ 0812FFFC + .incbin "baserom.gba", 0x12FFFC, 0x0000003 + +gUnk_0812FFFF:: @ 0812FFFF + .incbin "baserom.gba", 0x12FFFF, 0x0000001 + +gUnk_08130000:: @ 08130000 + .incbin "baserom.gba", 0x130000, 0x0000002 + +gUnk_08130002:: @ 08130002 + .incbin "baserom.gba", 0x130002, 0x000000A + +gUnk_0813000C:: @ 0813000C + .incbin "baserom.gba", 0x13000C, 0x0000014 + +gUnk_08130020:: @ 08130020 + .incbin "baserom.gba", 0x130020, 0x000000C + +gUnk_0813002C:: @ 0813002C + .incbin "baserom.gba", 0x13002C, 0x000000C + +gUnk_08130038:: @ 08130038 + .incbin "baserom.gba", 0x130038, 0x000000C + +gUnk_08130044:: @ 08130044 + .incbin "baserom.gba", 0x130044, 0x0000009 + +gUnk_0813004D:: @ 0813004D + .incbin "baserom.gba", 0x13004D, 0x0000003 + +gUnk_08130050:: @ 08130050 + .incbin "baserom.gba", 0x130050, 0x0000010 + +gUnk_08130060:: @ 08130060 + .incbin "baserom.gba", 0x130060, 0x000000C + +gUnk_0813006C:: @ 0813006C + .incbin "baserom.gba", 0x13006C, 0x000000C + +gUnk_08130078:: @ 08130078 + .incbin "baserom.gba", 0x130078, 0x000000C + +gUnk_08130084:: @ 08130084 + .incbin "baserom.gba", 0x130084, 0x0000005 + +gUnk_08130089:: @ 08130089 + .incbin "baserom.gba", 0x130089, 0x0000007 + +gUnk_08130090:: @ 08130090 + .incbin "baserom.gba", 0x130090, 0x000000C + +gUnk_0813009C:: @ 0813009C + .incbin "baserom.gba", 0x13009C, 0x000000C + +gUnk_081300A8:: @ 081300A8 + .incbin "baserom.gba", 0x1300A8, 0x000000C + +gUnk_081300B4:: @ 081300B4 + .incbin "baserom.gba", 0x1300B4, 0x000000C + +gUnk_081300C0:: @ 081300C0 + .incbin "baserom.gba", 0x1300C0, 0x000000C + +gUnk_081300CC:: @ 081300CC + .incbin "baserom.gba", 0x1300CC, 0x000000C + +gUnk_081300D8:: @ 081300D8 + .incbin "baserom.gba", 0x1300D8, 0x000000C + +gUnk_081300E4:: @ 081300E4 + .incbin "baserom.gba", 0x1300E4, 0x0000010 + +gUnk_081300F4:: @ 081300F4 + .incbin "baserom.gba", 0x1300F4, 0x000000C + +gUnk_08130100:: @ 08130100 + .incbin "baserom.gba", 0x130100, 0x0000014 + +gUnk_08130114:: @ 08130114 + .incbin "baserom.gba", 0x130114, 0x0000010 + +gUnk_08130124:: @ 08130124 + .incbin "baserom.gba", 0x130124, 0x000000C + +gUnk_08130130:: @ 08130130 + .incbin "baserom.gba", 0x130130, 0x000000C + +gUnk_0813013C:: @ 0813013C + .incbin "baserom.gba", 0x13013C, 0x000000C + +gUnk_08130148:: @ 08130148 + .incbin "baserom.gba", 0x130148, 0x000000C + +gUnk_08130154:: @ 08130154 + .incbin "baserom.gba", 0x130154, 0x000000C + +gUnk_08130160:: @ 08130160 + .incbin "baserom.gba", 0x130160, 0x000000C + +gUnk_0813016C:: @ 0813016C + .incbin "baserom.gba", 0x13016C, 0x000000C + +gUnk_08130178:: @ 08130178 + .incbin "baserom.gba", 0x130178, 0x0000010 + +gUnk_08130188:: @ 08130188 + .incbin "baserom.gba", 0x130188, 0x000000C + +gUnk_08130194:: @ 08130194 + .incbin "baserom.gba", 0x130194, 0x000000C + +gUnk_081301A0:: @ 081301A0 + .incbin "baserom.gba", 0x1301A0, 0x0000010 + +gUnk_081301B0:: @ 081301B0 + .incbin "baserom.gba", 0x1301B0, 0x0000010 + +gUnk_081301C0:: @ 081301C0 + .incbin "baserom.gba", 0x1301C0, 0x0000010 + +gUnk_081301D0:: @ 081301D0 + .incbin "baserom.gba", 0x1301D0, 0x000000C + +gUnk_081301DC:: @ 081301DC + .incbin "baserom.gba", 0x1301DC, 0x000000C + +gUnk_081301E8:: @ 081301E8 + .incbin "baserom.gba", 0x1301E8, 0x0000006 + +gUnk_081301EE:: @ 081301EE + .incbin "baserom.gba", 0x1301EE, 0x0000006 + +gUnk_081301F4:: @ 081301F4 + .incbin "baserom.gba", 0x1301F4, 0x0000010 + +gUnk_08130204:: @ 08130204 + .incbin "baserom.gba", 0x130204, 0x0000002 + +gUnk_08130206:: @ 08130206 + .incbin "baserom.gba", 0x130206, 0x000000A + +gUnk_08130210:: @ 08130210 + .incbin "baserom.gba", 0x130210, 0x000000C + +gUnk_0813021C:: @ 0813021C + .incbin "baserom.gba", 0x13021C, 0x000000C + +gUnk_08130228:: @ 08130228 + .incbin "baserom.gba", 0x130228, 0x000000C + +gUnk_08130234:: @ 08130234 + .incbin "baserom.gba", 0x130234, 0x000000C + +gUnk_08130240:: @ 08130240 + .incbin "baserom.gba", 0x130240, 0x000000C + +gUnk_0813024C:: @ 0813024C + .incbin "baserom.gba", 0x13024C, 0x000000C + +gUnk_08130258:: @ 08130258 + .incbin "baserom.gba", 0x130258, 0x000000C + +gUnk_08130264:: @ 08130264 + .incbin "baserom.gba", 0x130264, 0x000000C + +gUnk_08130270:: @ 08130270 + .incbin "baserom.gba", 0x130270, 0x000000C + +gUnk_0813027C:: @ 0813027C + .incbin "baserom.gba", 0x13027C, 0x000000C + +gUnk_08130288:: @ 08130288 + .incbin "baserom.gba", 0x130288, 0x000000C + +gUnk_08130294:: @ 08130294 + .incbin "baserom.gba", 0x130294, 0x000000C + +gUnk_081302A0:: @ 081302A0 + .incbin "baserom.gba", 0x1302A0, 0x000000C + +gUnk_081302AC:: @ 081302AC + .incbin "baserom.gba", 0x1302AC, 0x000000C + +gUnk_081302B8:: @ 081302B8 + .incbin "baserom.gba", 0x1302B8, 0x000000C + +gUnk_081302C4:: @ 081302C4 + .incbin "baserom.gba", 0x1302C4, 0x000000C + +gUnk_081302D0:: @ 081302D0 + .incbin "baserom.gba", 0x1302D0, 0x000000C + +gUnk_081302DC:: @ 081302DC + .incbin "baserom.gba", 0x1302DC, 0x000000C + +gUnk_081302E8:: @ 081302E8 + .incbin "baserom.gba", 0x1302E8, 0x000000C + +gUnk_081302F4:: @ 081302F4 + .incbin "baserom.gba", 0x1302F4, 0x000000C + +gUnk_08130300:: @ 08130300 + .incbin "baserom.gba", 0x130300, 0x000000C + +gUnk_0813030C:: @ 0813030C + .incbin "baserom.gba", 0x13030C, 0x000000C + +gUnk_08130318:: @ 08130318 + .incbin "baserom.gba", 0x130318, 0x000000C + +gUnk_08130324:: @ 08130324 + .incbin "baserom.gba", 0x130324, 0x000000C + +gUnk_08130330:: @ 08130330 + .incbin "baserom.gba", 0x130330, 0x000000C + +gUnk_0813033C:: @ 0813033C + .incbin "baserom.gba", 0x13033C, 0x000000C + +gUnk_08130348:: @ 08130348 + .incbin "baserom.gba", 0x130348, 0x000000C + +gUnk_08130354:: @ 08130354 + .incbin "baserom.gba", 0x130354, 0x000000C + +gUnk_08130360:: @ 08130360 + .incbin "baserom.gba", 0x130360, 0x000000C + +gUnk_0813036C:: @ 0813036C + .incbin "baserom.gba", 0x13036C, 0x0000286 + +gUnk_081305F2:: @ 081305F2 + .incbin "baserom.gba", 0x1305F2, 0x000001A + +gUnk_0813060C:: @ 0813060C + .incbin "baserom.gba", 0x13060C, 0x0000010 + +gUnk_0813061C:: @ 0813061C + .incbin "baserom.gba", 0x13061C, 0x0000010 + +gUnk_0813062C:: @ 0813062C + .incbin "baserom.gba", 0x13062C, 0x000000C + +gUnk_08130638:: @ 08130638 + .incbin "baserom.gba", 0x130638, 0x000000C + +gUnk_08130644:: @ 08130644 + .incbin "baserom.gba", 0x130644, 0x000000C + +gUnk_08130650:: @ 08130650 + .incbin "baserom.gba", 0x130650, 0x000000C + +gUnk_0813065C:: @ 0813065C + .incbin "baserom.gba", 0x13065C, 0x000000C + +gUnk_08130668:: @ 08130668 + .incbin "baserom.gba", 0x130668, 0x000000C + +gUnk_08130674:: @ 08130674 + .incbin "baserom.gba", 0x130674, 0x000000C + +gUnk_08130680:: @ 08130680 + .incbin "baserom.gba", 0x130680, 0x000000C + +gUnk_0813068C:: @ 0813068C + .incbin "baserom.gba", 0x13068C, 0x000000C + +gUnk_08130698:: @ 08130698 + .incbin "baserom.gba", 0x130698, 0x000000C + +gUnk_081306A4:: @ 081306A4 + .incbin "baserom.gba", 0x1306A4, 0x000000C + +gUnk_081306B0:: @ 081306B0 + .incbin "baserom.gba", 0x1306B0, 0x000000C + +gUnk_081306BC:: @ 081306BC + .incbin "baserom.gba", 0x1306BC, 0x000000C + +gUnk_081306C8:: @ 081306C8 + .incbin "baserom.gba", 0x1306C8, 0x000000C + +gUnk_081306D4:: @ 081306D4 + .incbin "baserom.gba", 0x1306D4, 0x000000C + +gUnk_081306E0:: @ 081306E0 + .incbin "baserom.gba", 0x1306E0, 0x0000004 + +gUnk_081306E4:: @ 081306E4 + .incbin "baserom.gba", 0x1306E4, 0x0000008 + +gUnk_081306EC:: @ 081306EC + .incbin "baserom.gba", 0x1306EC, 0x000000C + +gUnk_081306F8:: @ 081306F8 + .incbin "baserom.gba", 0x1306F8, 0x000000C + +gUnk_08130704:: @ 08130704 + .incbin "baserom.gba", 0x130704, 0x000000C + +gUnk_08130710:: @ 08130710 + .incbin "baserom.gba", 0x130710, 0x000000C + +gUnk_0813071C:: @ 0813071C + .incbin "baserom.gba", 0x13071C, 0x000000C + +gUnk_08130728:: @ 08130728 + .incbin "baserom.gba", 0x130728, 0x000000C + +gUnk_08130734:: @ 08130734 + .incbin "baserom.gba", 0x130734, 0x000000C + +gUnk_08130740:: @ 08130740 + .incbin "baserom.gba", 0x130740, 0x000000C + +gUnk_0813074C:: @ 0813074C + .incbin "baserom.gba", 0x13074C, 0x000000C + +gUnk_08130758:: @ 08130758 + .incbin "baserom.gba", 0x130758, 0x000000C + +gUnk_08130764:: @ 08130764 + .incbin "baserom.gba", 0x130764, 0x000000C + +gUnk_08130770:: @ 08130770 + .incbin "baserom.gba", 0x130770, 0x000000C + +gUnk_0813077C:: @ 0813077C + .incbin "baserom.gba", 0x13077C, 0x000000C + +gUnk_08130788:: @ 08130788 + .incbin "baserom.gba", 0x130788, 0x0000010 + +gUnk_08130798:: @ 08130798 + .incbin "baserom.gba", 0x130798, 0x000000C + +gUnk_081307A4:: @ 081307A4 + .incbin "baserom.gba", 0x1307A4, 0x000000C + +gUnk_081307B0:: @ 081307B0 + .incbin "baserom.gba", 0x1307B0, 0x0000010 + +gUnk_081307C0:: @ 081307C0 + .incbin "baserom.gba", 0x1307C0, 0x0000010 + +gUnk_081307D0:: @ 081307D0 + .incbin "baserom.gba", 0x1307D0, 0x0000010 + +gUnk_081307E0:: @ 081307E0 + .incbin "baserom.gba", 0x1307E0, 0x000000C + +gUnk_081307EC:: @ 081307EC + .incbin "baserom.gba", 0x1307EC, 0x000000C + +gUnk_081307F8:: @ 081307F8 + .incbin "baserom.gba", 0x1307F8, 0x000000A + +gUnk_08130802:: @ 08130802 + .incbin "baserom.gba", 0x130802, 0x0000002 + +gUnk_08130804:: @ 08130804 + .incbin "baserom.gba", 0x130804, 0x0000009 + +gUnk_0813080D:: @ 0813080D + .incbin "baserom.gba", 0x13080D, 0x0000003 + +gUnk_08130810:: @ 08130810 + .incbin "baserom.gba", 0x130810, 0x000000C + +gUnk_0813081C:: @ 0813081C + .incbin "baserom.gba", 0x13081C, 0x000000C + +gUnk_08130828:: @ 08130828 + .incbin "baserom.gba", 0x130828, 0x000000C + +gUnk_08130834:: @ 08130834 + .incbin "baserom.gba", 0x130834, 0x000000C + +gUnk_08130840:: @ 08130840 + .incbin "baserom.gba", 0x130840, 0x000000C + +gUnk_0813084C:: @ 0813084C + .incbin "baserom.gba", 0x13084C, 0x000000C + +gUnk_08130858:: @ 08130858 + .incbin "baserom.gba", 0x130858, 0x000000C + +gUnk_08130864:: @ 08130864 + .incbin "baserom.gba", 0x130864, 0x000000C + +gUnk_08130870:: @ 08130870 + .incbin "baserom.gba", 0x130870, 0x000000C + +gUnk_0813087C:: @ 0813087C + .incbin "baserom.gba", 0x13087C, 0x0000010 + +gUnk_0813088C:: @ 0813088C + .incbin "baserom.gba", 0x13088C, 0x000000C + +gUnk_08130898:: @ 08130898 + .incbin "baserom.gba", 0x130898, 0x000000C + +gUnk_081308A4:: @ 081308A4 + .incbin "baserom.gba", 0x1308A4, 0x000000C + +gUnk_081308B0:: @ 081308B0 + .incbin "baserom.gba", 0x1308B0, 0x000000C + +gUnk_081308BC:: @ 081308BC + .incbin "baserom.gba", 0x1308BC, 0x000000C + +gUnk_081308C8:: @ 081308C8 + .incbin "baserom.gba", 0x1308C8, 0x000000C + +gUnk_081308D4:: @ 081308D4 + .incbin "baserom.gba", 0x1308D4, 0x000000C + +gUnk_081308E0:: @ 081308E0 + .incbin "baserom.gba", 0x1308E0, 0x000000C + +gUnk_081308EC:: @ 081308EC + .incbin "baserom.gba", 0x1308EC, 0x000000C + +gUnk_081308F8:: @ 081308F8 + .incbin "baserom.gba", 0x1308F8, 0x0000007 + +gUnk_081308FF:: @ 081308FF + .incbin "baserom.gba", 0x1308FF, 0x0000005 + +gUnk_08130904:: @ 08130904 + .incbin "baserom.gba", 0x130904, 0x000000C + +gUnk_08130910:: @ 08130910 + .incbin "baserom.gba", 0x130910, 0x000000A + +gUnk_0813091A:: @ 0813091A + .incbin "baserom.gba", 0x13091A, 0x0000002 + +gUnk_0813091C:: @ 0813091C + .incbin "baserom.gba", 0x13091C, 0x000000C + +gUnk_08130928:: @ 08130928 + .incbin "baserom.gba", 0x130928, 0x000000C + +gUnk_08130934:: @ 08130934 + .incbin "baserom.gba", 0x130934, 0x000000C + +gUnk_08130940:: @ 08130940 + .incbin "baserom.gba", 0x130940, 0x000000C + +gUnk_0813094C:: @ 0813094C + .incbin "baserom.gba", 0x13094C, 0x0000010 + +gUnk_0813095C:: @ 0813095C + .incbin "baserom.gba", 0x13095C, 0x000000C + +gUnk_08130968:: @ 08130968 + .incbin "baserom.gba", 0x130968, 0x000000C + +gUnk_08130974:: @ 08130974 + .incbin "baserom.gba", 0x130974, 0x000000C + +gUnk_08130980:: @ 08130980 + .incbin "baserom.gba", 0x130980, 0x0000010 + +gUnk_08130990:: @ 08130990 + .incbin "baserom.gba", 0x130990, 0x000000C + +gUnk_0813099C:: @ 0813099C + .incbin "baserom.gba", 0x13099C, 0x000000C + +gUnk_081309A8:: @ 081309A8 + .incbin "baserom.gba", 0x1309A8, 0x000000C + +gUnk_081309B4:: @ 081309B4 + .incbin "baserom.gba", 0x1309B4, 0x000000C + +gUnk_081309C0:: @ 081309C0 + .incbin "baserom.gba", 0x1309C0, 0x000000C + +gUnk_081309CC:: @ 081309CC + .incbin "baserom.gba", 0x1309CC, 0x000000C + +gUnk_081309D8:: @ 081309D8 + .incbin "baserom.gba", 0x1309D8, 0x000000C + +gUnk_081309E4:: @ 081309E4 + .incbin "baserom.gba", 0x1309E4, 0x000000B + +gUnk_081309EF:: @ 081309EF + .incbin "baserom.gba", 0x1309EF, 0x0000001 + +gUnk_081309F0:: @ 081309F0 + .incbin "baserom.gba", 0x1309F0, 0x0000010 + +gUnk_08130A00:: @ 08130A00 + .incbin "baserom.gba", 0x130A00, 0x0000001 + +gUnk_08130A01:: @ 08130A01 + .incbin "baserom.gba", 0x130A01, 0x000000B + +gUnk_08130A0C:: @ 08130A0C + .incbin "baserom.gba", 0x130A0C, 0x000000C + +gUnk_08130A18:: @ 08130A18 + .incbin "baserom.gba", 0x130A18, 0x000000C + +gUnk_08130A24:: @ 08130A24 + .incbin "baserom.gba", 0x130A24, 0x0000010 + +gUnk_08130A34:: @ 08130A34 + .incbin "baserom.gba", 0x130A34, 0x000000C + +gUnk_08130A40:: @ 08130A40 + .incbin "baserom.gba", 0x130A40, 0x000000C + +gUnk_08130A4C:: @ 08130A4C + .incbin "baserom.gba", 0x130A4C, 0x000000C + +gUnk_08130A58:: @ 08130A58 + .incbin "baserom.gba", 0x130A58, 0x000000C + +gUnk_08130A64:: @ 08130A64 + .incbin "baserom.gba", 0x130A64, 0x0000010 + +gUnk_08130A74:: @ 08130A74 + .incbin "baserom.gba", 0x130A74, 0x000000C + +gUnk_08130A80:: @ 08130A80 + .incbin "baserom.gba", 0x130A80, 0x0000010 + +gUnk_08130A90:: @ 08130A90 + .incbin "baserom.gba", 0x130A90, 0x000000C + +gUnk_08130A9C:: @ 08130A9C + .incbin "baserom.gba", 0x130A9C, 0x000000C + +gUnk_08130AA8:: @ 08130AA8 + .incbin "baserom.gba", 0x130AA8, 0x000000C + +gUnk_08130AB4:: @ 08130AB4 + .incbin "baserom.gba", 0x130AB4, 0x000000C + +gUnk_08130AC0:: @ 08130AC0 + .incbin "baserom.gba", 0x130AC0, 0x000000C + +gUnk_08130ACC:: @ 08130ACC + .incbin "baserom.gba", 0x130ACC, 0x000000C + +gUnk_08130AD8:: @ 08130AD8 + .incbin "baserom.gba", 0x130AD8, 0x000000C + +gUnk_08130AE4:: @ 08130AE4 + .incbin "baserom.gba", 0x130AE4, 0x0000010 + +gUnk_08130AF4:: @ 08130AF4 + .incbin "baserom.gba", 0x130AF4, 0x000000C + +gUnk_08130B00:: @ 08130B00 + .incbin "baserom.gba", 0x130B00, 0x000000C + +gUnk_08130B0C:: @ 08130B0C + .incbin "baserom.gba", 0x130B0C, 0x000000C + +gUnk_08130B18:: @ 08130B18 + .incbin "baserom.gba", 0x130B18, 0x000000C + +gUnk_08130B24:: @ 08130B24 + .incbin "baserom.gba", 0x130B24, 0x000000C + +gUnk_08130B30:: @ 08130B30 + .incbin "baserom.gba", 0x130B30, 0x000000C + +gUnk_08130B3C:: @ 08130B3C + .incbin "baserom.gba", 0x130B3C, 0x0000010 + +gUnk_08130B4C:: @ 08130B4C + .incbin "baserom.gba", 0x130B4C, 0x000000C + +gUnk_08130B58:: @ 08130B58 + .incbin "baserom.gba", 0x130B58, 0x0000014 + +gUnk_08130B6C:: @ 08130B6C + .incbin "baserom.gba", 0x130B6C, 0x0000010 + +gUnk_08130B7C:: @ 08130B7C + .incbin "baserom.gba", 0x130B7C, 0x0000014 + +gUnk_08130B90:: @ 08130B90 + .incbin "baserom.gba", 0x130B90, 0x0000010 + +gUnk_08130BA0:: @ 08130BA0 + .incbin "baserom.gba", 0x130BA0, 0x000000C + +gUnk_08130BAC:: @ 08130BAC + .incbin "baserom.gba", 0x130BAC, 0x000000C + +gUnk_08130BB8:: @ 08130BB8 + .incbin "baserom.gba", 0x130BB8, 0x000000C + +gUnk_08130BC4:: @ 08130BC4 + .incbin "baserom.gba", 0x130BC4, 0x000000C + +gUnk_08130BD0:: @ 08130BD0 + .incbin "baserom.gba", 0x130BD0, 0x000000C + +gUnk_08130BDC:: @ 08130BDC + .incbin "baserom.gba", 0x130BDC, 0x000000C + +gUnk_08130BE8:: @ 08130BE8 + .incbin "baserom.gba", 0x130BE8, 0x000000C + +gUnk_08130BF4:: @ 08130BF4 + .incbin "baserom.gba", 0x130BF4, 0x000000F + +gUnk_08130C03:: @ 08130C03 + .incbin "baserom.gba", 0x130C03, 0x0000001 + +gUnk_08130C04:: @ 08130C04 + .incbin "baserom.gba", 0x130C04, 0x0000010 + +gUnk_08130C14:: @ 08130C14 + .incbin "baserom.gba", 0x130C14, 0x000000C + +gUnk_08130C20:: @ 08130C20 + .incbin "baserom.gba", 0x130C20, 0x000000C + +gUnk_08130C2C:: @ 08130C2C + .incbin "baserom.gba", 0x130C2C, 0x000000C + +gUnk_08130C38:: @ 08130C38 + .incbin "baserom.gba", 0x130C38, 0x000000C + +gUnk_08130C44:: @ 08130C44 + .incbin "baserom.gba", 0x130C44, 0x000000C + +gUnk_08130C50:: @ 08130C50 + .incbin "baserom.gba", 0x130C50, 0x000000C + +gUnk_08130C5C:: @ 08130C5C + .incbin "baserom.gba", 0x130C5C, 0x000000C + +gUnk_08130C68:: @ 08130C68 + .incbin "baserom.gba", 0x130C68, 0x000000C + +gUnk_08130C74:: @ 08130C74 + .incbin "baserom.gba", 0x130C74, 0x000000C + +gUnk_08130C80:: @ 08130C80 + .incbin "baserom.gba", 0x130C80, 0x000000C + +gUnk_08130C8C:: @ 08130C8C + .incbin "baserom.gba", 0x130C8C, 0x000000C + +gUnk_08130C98:: @ 08130C98 + .incbin "baserom.gba", 0x130C98, 0x000000C + +gUnk_08130CA4:: @ 08130CA4 + .incbin "baserom.gba", 0x130CA4, 0x000000C + +gUnk_08130CB0:: @ 08130CB0 + .incbin "baserom.gba", 0x130CB0, 0x000000C + +gUnk_08130CBC:: @ 08130CBC + .incbin "baserom.gba", 0x130CBC, 0x000000C + +gUnk_08130CC8:: @ 08130CC8 + .incbin "baserom.gba", 0x130CC8, 0x000000C + +gUnk_08130CD4:: @ 08130CD4 + .incbin "baserom.gba", 0x130CD4, 0x000000C + +gUnk_08130CE0:: @ 08130CE0 + .incbin "baserom.gba", 0x130CE0, 0x000000C + +gUnk_08130CEC:: @ 08130CEC + .incbin "baserom.gba", 0x130CEC, 0x000000C + +gUnk_08130CF8:: @ 08130CF8 + .incbin "baserom.gba", 0x130CF8, 0x000000C + +gUnk_08130D04:: @ 08130D04 + .incbin "baserom.gba", 0x130D04, 0x0000007 + +gUnk_08130D0B:: @ 08130D0B + .incbin "baserom.gba", 0x130D0B, 0x0000004 + +gUnk_08130D0F:: @ 08130D0F + .incbin "baserom.gba", 0x130D0F, 0x0000001 + +gUnk_08130D10:: @ 08130D10 + .incbin "baserom.gba", 0x130D10, 0x000000C + +gUnk_08130D1C:: @ 08130D1C + .incbin "baserom.gba", 0x130D1C, 0x000000C + +gUnk_08130D28:: @ 08130D28 + .incbin "baserom.gba", 0x130D28, 0x000000C + +gUnk_08130D34:: @ 08130D34 + .incbin "baserom.gba", 0x130D34, 0x000000C + +gUnk_08130D40:: @ 08130D40 + .incbin "baserom.gba", 0x130D40, 0x000000C + +gUnk_08130D4C:: @ 08130D4C + .incbin "baserom.gba", 0x130D4C, 0x000000C + +gUnk_08130D58:: @ 08130D58 + .incbin "baserom.gba", 0x130D58, 0x000000C + +gUnk_08130D64:: @ 08130D64 + .incbin "baserom.gba", 0x130D64, 0x000000C + +gUnk_08130D70:: @ 08130D70 + .incbin "baserom.gba", 0x130D70, 0x000000C + +gUnk_08130D7C:: @ 08130D7C + .incbin "baserom.gba", 0x130D7C, 0x000000C + +gUnk_08130D88:: @ 08130D88 + .incbin "baserom.gba", 0x130D88, 0x000000C + +gUnk_08130D94:: @ 08130D94 + .incbin "baserom.gba", 0x130D94, 0x000000C + +gUnk_08130DA0:: @ 08130DA0 + .incbin "baserom.gba", 0x130DA0, 0x000000C + +gUnk_08130DAC:: @ 08130DAC + .incbin "baserom.gba", 0x130DAC, 0x000000C + +gUnk_08130DB8:: @ 08130DB8 + .incbin "baserom.gba", 0x130DB8, 0x000000C + +gUnk_08130DC4:: @ 08130DC4 + .incbin "baserom.gba", 0x130DC4, 0x000000C + +gUnk_08130DD0:: @ 08130DD0 + .incbin "baserom.gba", 0x130DD0, 0x000000C + +gUnk_08130DDC:: @ 08130DDC + .incbin "baserom.gba", 0x130DDC, 0x000000C + +gUnk_08130DE8:: @ 08130DE8 + .incbin "baserom.gba", 0x130DE8, 0x000000C + +gUnk_08130DF4:: @ 08130DF4 + .incbin "baserom.gba", 0x130DF4, 0x000000C + +gUnk_08130E00:: @ 08130E00 + .incbin "baserom.gba", 0x130E00, 0x00000E6 + +gUnk_08130EE6:: @ 08130EE6 + .incbin "baserom.gba", 0x130EE6, 0x0000017 + +gUnk_08130EFD:: @ 08130EFD + .incbin "baserom.gba", 0x130EFD, 0x0000008 + +gUnk_08130F05:: @ 08130F05 + .incbin "baserom.gba", 0x130F05, 0x0000005 + +gUnk_08130F0A:: @ 08130F0A + .incbin "baserom.gba", 0x130F0A, 0x0000002 + +gUnk_08130F0C:: @ 08130F0C + .incbin "baserom.gba", 0x130F0C, 0x0000004 + +gUnk_08130F10:: @ 08130F10 + .incbin "baserom.gba", 0x130F10, 0x0000001 + +gUnk_08130F11:: @ 08130F11 + .incbin "baserom.gba", 0x130F11, 0x00000F4 + +gUnk_08131005:: @ 08131005 + .incbin "baserom.gba", 0x131005, 0x0000005 + +gUnk_0813100A:: @ 0813100A + .incbin "baserom.gba", 0x13100A, 0x0000026 + +gUnk_08131030:: @ 08131030 + .incbin "baserom.gba", 0x131030, 0x000000C + +gUnk_0813103C:: @ 0813103C + .incbin "baserom.gba", 0x13103C, 0x000000C + +gUnk_08131048:: @ 08131048 + .incbin "baserom.gba", 0x131048, 0x000000C + +gUnk_08131054:: @ 08131054 + .incbin "baserom.gba", 0x131054, 0x000000C + +gUnk_08131060:: @ 08131060 + .incbin "baserom.gba", 0x131060, 0x000000C + +gUnk_0813106C:: @ 0813106C + .incbin "baserom.gba", 0x13106C, 0x000000C + +gUnk_08131078:: @ 08131078 + .incbin "baserom.gba", 0x131078, 0x000000C + +gUnk_08131084:: @ 08131084 + .incbin "baserom.gba", 0x131084, 0x000000C + +gUnk_08131090:: @ 08131090 + .incbin "baserom.gba", 0x131090, 0x0000010 + +gUnk_081310A0:: @ 081310A0 + .incbin "baserom.gba", 0x1310A0, 0x000000C + +gUnk_081310AC:: @ 081310AC + .incbin "baserom.gba", 0x1310AC, 0x0000010 + +gUnk_081310BC:: @ 081310BC + .incbin "baserom.gba", 0x1310BC, 0x0000007 + +gUnk_081310C3:: @ 081310C3 + .incbin "baserom.gba", 0x1310C3, 0x0000009 + +gUnk_081310CC:: @ 081310CC + .incbin "baserom.gba", 0x1310CC, 0x000000C + +gUnk_081310D8:: @ 081310D8 + .incbin "baserom.gba", 0x1310D8, 0x000000C + +gUnk_081310E4:: @ 081310E4 + .incbin "baserom.gba", 0x1310E4, 0x000000C + +gUnk_081310F0:: @ 081310F0 + .incbin "baserom.gba", 0x1310F0, 0x0000005 + +gUnk_081310F5:: @ 081310F5 + .incbin "baserom.gba", 0x1310F5, 0x000000B + +gUnk_08131100:: @ 08131100 + .incbin "baserom.gba", 0x131100, 0x000000C + +gUnk_0813110C:: @ 0813110C + .incbin "baserom.gba", 0x13110C, 0x0000004 + +gUnk_08131110:: @ 08131110 + .incbin "baserom.gba", 0x131110, 0x000000C + +gUnk_0813111C:: @ 0813111C + .incbin "baserom.gba", 0x13111C, 0x0000010 + +gUnk_0813112C:: @ 0813112C + .incbin "baserom.gba", 0x13112C, 0x000000C + +gUnk_08131138:: @ 08131138 + .incbin "baserom.gba", 0x131138, 0x000000C + +gUnk_08131144:: @ 08131144 + .incbin "baserom.gba", 0x131144, 0x000000C + +gUnk_08131150:: @ 08131150 + .incbin "baserom.gba", 0x131150, 0x000000C + +gUnk_0813115C:: @ 0813115C + .incbin "baserom.gba", 0x13115C, 0x000000C + +gUnk_08131168:: @ 08131168 + .incbin "baserom.gba", 0x131168, 0x000000C + +gUnk_08131174:: @ 08131174 + .incbin "baserom.gba", 0x131174, 0x000000C + +gUnk_08131180:: @ 08131180 + .incbin "baserom.gba", 0x131180, 0x000000C + +gUnk_0813118C:: @ 0813118C + .incbin "baserom.gba", 0x13118C, 0x000000C + +gUnk_08131198:: @ 08131198 + .incbin "baserom.gba", 0x131198, 0x000000C + +gUnk_081311A4:: @ 081311A4 + .incbin "baserom.gba", 0x1311A4, 0x000000C + +gUnk_081311B0:: @ 081311B0 + .incbin "baserom.gba", 0x1311B0, 0x000000C + +gUnk_081311BC:: @ 081311BC + .incbin "baserom.gba", 0x1311BC, 0x0000010 + +gUnk_081311CC:: @ 081311CC + .incbin "baserom.gba", 0x1311CC, 0x000000C + +gUnk_081311D8:: @ 081311D8 + .incbin "baserom.gba", 0x1311D8, 0x000000C + +gUnk_081311E4:: @ 081311E4 + .incbin "baserom.gba", 0x1311E4, 0x0000010 + +gUnk_081311F4:: @ 081311F4 + .incbin "baserom.gba", 0x1311F4, 0x000000C + +gUnk_08131200:: @ 08131200 + .incbin "baserom.gba", 0x131200, 0x000000C + +gUnk_0813120C:: @ 0813120C + .incbin "baserom.gba", 0x13120C, 0x0000006 + +gUnk_08131212:: @ 08131212 + .incbin "baserom.gba", 0x131212, 0x0000002 + +gUnk_08131214:: @ 08131214 + .incbin "baserom.gba", 0x131214, 0x0000001 + +gUnk_08131215:: @ 08131215 + .incbin "baserom.gba", 0x131215, 0x0000003 + +gUnk_08131218:: @ 08131218 + .incbin "baserom.gba", 0x131218, 0x000000C + +gUnk_08131224:: @ 08131224 + .incbin "baserom.gba", 0x131224, 0x000000C + +gUnk_08131230:: @ 08131230 + .incbin "baserom.gba", 0x131230, 0x000000C + +gUnk_0813123C:: @ 0813123C + .incbin "baserom.gba", 0x13123C, 0x000000C + +gUnk_08131248:: @ 08131248 + .incbin "baserom.gba", 0x131248, 0x000000C + +gUnk_08131254:: @ 08131254 + .incbin "baserom.gba", 0x131254, 0x000000C + +gUnk_08131260:: @ 08131260 + .incbin "baserom.gba", 0x131260, 0x000000C + +gUnk_0813126C:: @ 0813126C + .incbin "baserom.gba", 0x13126C, 0x000000C + +gUnk_08131278:: @ 08131278 + .incbin "baserom.gba", 0x131278, 0x000000C + +gUnk_08131284:: @ 08131284 + .incbin "baserom.gba", 0x131284, 0x000000C + +gUnk_08131290:: @ 08131290 + .incbin "baserom.gba", 0x131290, 0x000000C + +gUnk_0813129C:: @ 0813129C + .incbin "baserom.gba", 0x13129C, 0x000000C + +gUnk_081312A8:: @ 081312A8 + .incbin "baserom.gba", 0x1312A8, 0x000000C + +gUnk_081312B4:: @ 081312B4 + .incbin "baserom.gba", 0x1312B4, 0x000000C + +gUnk_081312C0:: @ 081312C0 + .incbin "baserom.gba", 0x1312C0, 0x000000C + +gUnk_081312CC:: @ 081312CC + .incbin "baserom.gba", 0x1312CC, 0x000000C + +gUnk_081312D8:: @ 081312D8 + .incbin "baserom.gba", 0x1312D8, 0x000000C + +gUnk_081312E4:: @ 081312E4 + .incbin "baserom.gba", 0x1312E4, 0x000000C + +gUnk_081312F0:: @ 081312F0 + .incbin "baserom.gba", 0x1312F0, 0x000000C + +gUnk_081312FC:: @ 081312FC + .incbin "baserom.gba", 0x1312FC, 0x000000C + +gUnk_08131308:: @ 08131308 + .incbin "baserom.gba", 0x131308, 0x000000C + +gUnk_08131314:: @ 08131314 + .incbin "baserom.gba", 0x131314, 0x0000003 + +gUnk_08131317:: @ 08131317 + .incbin "baserom.gba", 0x131317, 0x0000001 + +gUnk_08131318:: @ 08131318 + .incbin "baserom.gba", 0x131318, 0x0000008 + +gUnk_08131320:: @ 08131320 + .incbin "baserom.gba", 0x131320, 0x000000C + +gUnk_0813132C:: @ 0813132C + .incbin "baserom.gba", 0x13132C, 0x000000C + +gUnk_08131338:: @ 08131338 + .incbin "baserom.gba", 0x131338, 0x000000C + +gUnk_08131344:: @ 08131344 + .incbin "baserom.gba", 0x131344, 0x000000C + +gUnk_08131350:: @ 08131350 + .incbin "baserom.gba", 0x131350, 0x000000C + +gUnk_0813135C:: @ 0813135C + .incbin "baserom.gba", 0x13135C, 0x000000C + +gUnk_08131368:: @ 08131368 + .incbin "baserom.gba", 0x131368, 0x000000C + +gUnk_08131374:: @ 08131374 + .incbin "baserom.gba", 0x131374, 0x000000C + +gUnk_08131380:: @ 08131380 + .incbin "baserom.gba", 0x131380, 0x000000C + +gUnk_0813138C:: @ 0813138C + .incbin "baserom.gba", 0x13138C, 0x0000010 + +gUnk_0813139C:: @ 0813139C + .incbin "baserom.gba", 0x13139C, 0x000000C + +gUnk_081313A8:: @ 081313A8 + .incbin "baserom.gba", 0x1313A8, 0x000000C + +gUnk_081313B4:: @ 081313B4 + .incbin "baserom.gba", 0x1313B4, 0x000000C + +gUnk_081313C0:: @ 081313C0 + .incbin "baserom.gba", 0x1313C0, 0x000000C + +gUnk_081313CC:: @ 081313CC + .incbin "baserom.gba", 0x1313CC, 0x000000C + +gUnk_081313D8:: @ 081313D8 + .incbin "baserom.gba", 0x1313D8, 0x000000C + +gUnk_081313E4:: @ 081313E4 + .incbin "baserom.gba", 0x1313E4, 0x000000C + +gUnk_081313F0:: @ 081313F0 + .incbin "baserom.gba", 0x1313F0, 0x000000C + +gUnk_081313FC:: @ 081313FC + .incbin "baserom.gba", 0x1313FC, 0x0000001 + +gUnk_081313FD:: @ 081313FD + .incbin "baserom.gba", 0x1313FD, 0x000000B + +gUnk_08131408:: @ 08131408 + .incbin "baserom.gba", 0x131408, 0x0000004 + +gUnk_0813140C:: @ 0813140C + .incbin "baserom.gba", 0x13140C, 0x0000004 + +gUnk_08131410:: @ 08131410 + .incbin "baserom.gba", 0x131410, 0x0000004 + +gUnk_08131414:: @ 08131414 + .incbin "baserom.gba", 0x131414, 0x000000C + +gUnk_08131420:: @ 08131420 + .incbin "baserom.gba", 0x131420, 0x000000C + +gUnk_0813142C:: @ 0813142C + .incbin "baserom.gba", 0x13142C, 0x0000004 + +gUnk_08131430:: @ 08131430 + .incbin "baserom.gba", 0x131430, 0x000000C + +gUnk_0813143C:: @ 0813143C + .incbin "baserom.gba", 0x13143C, 0x000000C + +gUnk_08131448:: @ 08131448 + .incbin "baserom.gba", 0x131448, 0x000000C + +gUnk_08131454:: @ 08131454 + .incbin "baserom.gba", 0x131454, 0x000000C + +gUnk_08131460:: @ 08131460 + .incbin "baserom.gba", 0x131460, 0x000000C + +gUnk_0813146C:: @ 0813146C + .incbin "baserom.gba", 0x13146C, 0x000000C + +gUnk_08131478:: @ 08131478 + .incbin "baserom.gba", 0x131478, 0x000000C + +gUnk_08131484:: @ 08131484 + .incbin "baserom.gba", 0x131484, 0x000000C + +gUnk_08131490:: @ 08131490 + .incbin "baserom.gba", 0x131490, 0x000000C + +gUnk_0813149C:: @ 0813149C + .incbin "baserom.gba", 0x13149C, 0x000000C + +gUnk_081314A8:: @ 081314A8 + .incbin "baserom.gba", 0x1314A8, 0x000000C + +gUnk_081314B4:: @ 081314B4 + .incbin "baserom.gba", 0x1314B4, 0x000000C + +gUnk_081314C0:: @ 081314C0 + .incbin "baserom.gba", 0x1314C0, 0x000000C + +gUnk_081314CC:: @ 081314CC + .incbin "baserom.gba", 0x1314CC, 0x000000C + +gUnk_081314D8:: @ 081314D8 + .incbin "baserom.gba", 0x1314D8, 0x000000C + +gUnk_081314E4:: @ 081314E4 + .incbin "baserom.gba", 0x1314E4, 0x000000C + +gUnk_081314F0:: @ 081314F0 + .incbin "baserom.gba", 0x1314F0, 0x000000C + +gUnk_081314FC:: @ 081314FC + .incbin "baserom.gba", 0x1314FC, 0x000000C + +gUnk_08131508:: @ 08131508 + .incbin "baserom.gba", 0x131508, 0x000000C + +gUnk_08131514:: @ 08131514 + .incbin "baserom.gba", 0x131514, 0x000000C + +gUnk_08131520:: @ 08131520 + .incbin "baserom.gba", 0x131520, 0x000000C + +gUnk_0813152C:: @ 0813152C + .incbin "baserom.gba", 0x13152C, 0x000000C + +gUnk_08131538:: @ 08131538 + .incbin "baserom.gba", 0x131538, 0x000000C + +gUnk_08131544:: @ 08131544 + .incbin "baserom.gba", 0x131544, 0x000000C + +gUnk_08131550:: @ 08131550 + .incbin "baserom.gba", 0x131550, 0x000000C + +gUnk_0813155C:: @ 0813155C + .incbin "baserom.gba", 0x13155C, 0x000000C + +gUnk_08131568:: @ 08131568 + .incbin "baserom.gba", 0x131568, 0x000000C + +gUnk_08131574:: @ 08131574 + .incbin "baserom.gba", 0x131574, 0x000000C + +gUnk_08131580:: @ 08131580 + .incbin "baserom.gba", 0x131580, 0x000000C + +gUnk_0813158C:: @ 0813158C + .incbin "baserom.gba", 0x13158C, 0x000000C + +gUnk_08131598:: @ 08131598 + .incbin "baserom.gba", 0x131598, 0x000000C + +gUnk_081315A4:: @ 081315A4 + .incbin "baserom.gba", 0x1315A4, 0x000000C + +gUnk_081315B0:: @ 081315B0 + .incbin "baserom.gba", 0x1315B0, 0x000000C + +gUnk_081315BC:: @ 081315BC + .incbin "baserom.gba", 0x1315BC, 0x000000C + +gUnk_081315C8:: @ 081315C8 + .incbin "baserom.gba", 0x1315C8, 0x000000C + +gUnk_081315D4:: @ 081315D4 + .incbin "baserom.gba", 0x1315D4, 0x0000009 + +gUnk_081315DD:: @ 081315DD + .incbin "baserom.gba", 0x1315DD, 0x0000003 + +gUnk_081315E0:: @ 081315E0 + .incbin "baserom.gba", 0x1315E0, 0x000000C + +gUnk_081315EC:: @ 081315EC + .incbin "baserom.gba", 0x1315EC, 0x000000C + +gUnk_081315F8:: @ 081315F8 + .incbin "baserom.gba", 0x1315F8, 0x000000C + +gUnk_08131604:: @ 08131604 + .incbin "baserom.gba", 0x131604, 0x000000C + +gUnk_08131610:: @ 08131610 + .incbin "baserom.gba", 0x131610, 0x000000B + +gUnk_0813161B:: @ 0813161B + .incbin "baserom.gba", 0x13161B, 0x0000001 + +gUnk_0813161C:: @ 0813161C + .incbin "baserom.gba", 0x13161C, 0x000000C + +gUnk_08131628:: @ 08131628 + .incbin "baserom.gba", 0x131628, 0x000000C + +gUnk_08131634:: @ 08131634 + .incbin "baserom.gba", 0x131634, 0x000000C + +gUnk_08131640:: @ 08131640 + .incbin "baserom.gba", 0x131640, 0x000000C + +gUnk_0813164C:: @ 0813164C + .incbin "baserom.gba", 0x13164C, 0x000000C + +gUnk_08131658:: @ 08131658 + .incbin "baserom.gba", 0x131658, 0x000000C + +gUnk_08131664:: @ 08131664 + .incbin "baserom.gba", 0x131664, 0x000000C + +gUnk_08131670:: @ 08131670 + .incbin "baserom.gba", 0x131670, 0x000000C + +gUnk_0813167C:: @ 0813167C + .incbin "baserom.gba", 0x13167C, 0x000000C + +gUnk_08131688:: @ 08131688 + .incbin "baserom.gba", 0x131688, 0x000000C + +gUnk_08131694:: @ 08131694 + .incbin "baserom.gba", 0x131694, 0x000000C + +gUnk_081316A0:: @ 081316A0 + .incbin "baserom.gba", 0x1316A0, 0x000004E + +gUnk_081316EE:: @ 081316EE + .incbin "baserom.gba", 0x1316EE, 0x000001A + +gUnk_08131708:: @ 08131708 + .incbin "baserom.gba", 0x131708, 0x0000008 + +gUnk_08131710:: @ 08131710 + .incbin "baserom.gba", 0x131710, 0x0000002 + +gUnk_08131712:: @ 08131712 + .incbin "baserom.gba", 0x131712, 0x0000001 + +gUnk_08131713:: @ 08131713 + .incbin "baserom.gba", 0x131713, 0x0000003 + +gUnk_08131716:: @ 08131716 + .incbin "baserom.gba", 0x131716, 0x0000009 + +gUnk_0813171F:: @ 0813171F + .incbin "baserom.gba", 0x13171F, 0x00000C3 + +gUnk_081317E2:: @ 081317E2 + .incbin "baserom.gba", 0x1317E2, 0x0000032 + +gUnk_08131814:: @ 08131814 + .incbin "baserom.gba", 0x131814, 0x0000001 + +gUnk_08131815:: @ 08131815 + .incbin "baserom.gba", 0x131815, 0x00000F7 + +gUnk_0813190C:: @ 0813190C + .incbin "baserom.gba", 0x13190C, 0x0000001 + +gUnk_0813190D:: @ 0813190D + .incbin "baserom.gba", 0x13190D, 0x0000008 + +gUnk_08131915:: @ 08131915 + .incbin "baserom.gba", 0x131915, 0x0000002 + +gUnk_08131917:: @ 08131917 + .incbin "baserom.gba", 0x131917, 0x0000001 + +gUnk_08131918:: @ 08131918 + .incbin "baserom.gba", 0x131918, 0x0000001 + +gUnk_08131919:: @ 08131919 + .incbin "baserom.gba", 0x131919, 0x0000004 + +gUnk_0813191D:: @ 0813191D + .incbin "baserom.gba", 0x13191D, 0x0000003 + +gUnk_08131920:: @ 08131920 + .incbin "baserom.gba", 0x131920, 0x0000008 + +gUnk_08131928:: @ 08131928 + .incbin "baserom.gba", 0x131928, 0x0000010 + +gUnk_08131938:: @ 08131938 + .incbin "baserom.gba", 0x131938, 0x0000010 + +gUnk_08131948:: @ 08131948 + .incbin "baserom.gba", 0x131948, 0x000000C + +gUnk_08131954:: @ 08131954 + .incbin "baserom.gba", 0x131954, 0x000000C + +gUnk_08131960:: @ 08131960 + .incbin "baserom.gba", 0x131960, 0x000000C + +gUnk_0813196C:: @ 0813196C + .incbin "baserom.gba", 0x13196C, 0x000000C + +gUnk_08131978:: @ 08131978 + .incbin "baserom.gba", 0x131978, 0x000000C + +gUnk_08131984:: @ 08131984 + .incbin "baserom.gba", 0x131984, 0x000000C + +gUnk_08131990:: @ 08131990 + .incbin "baserom.gba", 0x131990, 0x000000C + +gUnk_0813199C:: @ 0813199C + .incbin "baserom.gba", 0x13199C, 0x000000C + +gUnk_081319A8:: @ 081319A8 + .incbin "baserom.gba", 0x1319A8, 0x000000C + +gUnk_081319B4:: @ 081319B4 + .incbin "baserom.gba", 0x1319B4, 0x000000C + +gUnk_081319C0:: @ 081319C0 + .incbin "baserom.gba", 0x1319C0, 0x000000C + +gUnk_081319CC:: @ 081319CC + .incbin "baserom.gba", 0x1319CC, 0x000000C + +gUnk_081319D8:: @ 081319D8 + .incbin "baserom.gba", 0x1319D8, 0x000000C + +gUnk_081319E4:: @ 081319E4 + .incbin "baserom.gba", 0x1319E4, 0x0000014 + +gUnk_081319F8:: @ 081319F8 + .incbin "baserom.gba", 0x1319F8, 0x0000010 + +gUnk_08131A08:: @ 08131A08 + .incbin "baserom.gba", 0x131A08, 0x0000010 + +gUnk_08131A18:: @ 08131A18 + .incbin "baserom.gba", 0x131A18, 0x0000005 + +gUnk_08131A1D:: @ 08131A1D + .incbin "baserom.gba", 0x131A1D, 0x0000001 + +gUnk_08131A1E:: @ 08131A1E + .incbin "baserom.gba", 0x131A1E, 0x0000001 + +gUnk_08131A1F:: @ 08131A1F + .incbin "baserom.gba", 0x131A1F, 0x0000009 + +gUnk_08131A28:: @ 08131A28 + .incbin "baserom.gba", 0x131A28, 0x000000C + +gUnk_08131A34:: @ 08131A34 + .incbin "baserom.gba", 0x131A34, 0x000000C + +gUnk_08131A40:: @ 08131A40 + .incbin "baserom.gba", 0x131A40, 0x0000010 + +gUnk_08131A50:: @ 08131A50 + .incbin "baserom.gba", 0x131A50, 0x0000010 + +gUnk_08131A60:: @ 08131A60 + .incbin "baserom.gba", 0x131A60, 0x0000010 + +gUnk_08131A70:: @ 08131A70 + .incbin "baserom.gba", 0x131A70, 0x0000010 + +gUnk_08131A80:: @ 08131A80 + .incbin "baserom.gba", 0x131A80, 0x0000010 + +gUnk_08131A90:: @ 08131A90 + .incbin "baserom.gba", 0x131A90, 0x0000010 + +gUnk_08131AA0:: @ 08131AA0 + .incbin "baserom.gba", 0x131AA0, 0x0000014 + +gUnk_08131AB4:: @ 08131AB4 + .incbin "baserom.gba", 0x131AB4, 0x0000010 + +gUnk_08131AC4:: @ 08131AC4 + .incbin "baserom.gba", 0x131AC4, 0x0000014 + +gUnk_08131AD8:: @ 08131AD8 + .incbin "baserom.gba", 0x131AD8, 0x0000014 + +gUnk_08131AEC:: @ 08131AEC + .incbin "baserom.gba", 0x131AEC, 0x0000014 + +gUnk_08131B00:: @ 08131B00 + .incbin "baserom.gba", 0x131B00, 0x000000F + +gUnk_08131B0F:: @ 08131B0F + .incbin "baserom.gba", 0x131B0F, 0x0000001 + +gUnk_08131B10:: @ 08131B10 + .incbin "baserom.gba", 0x131B10, 0x0000008 + +gUnk_08131B18:: @ 08131B18 + .incbin "baserom.gba", 0x131B18, 0x0000001 + +gUnk_08131B19:: @ 08131B19 + .incbin "baserom.gba", 0x131B19, 0x0000003 + +gUnk_08131B1C:: @ 08131B1C + .incbin "baserom.gba", 0x131B1C, 0x0000004 + +gUnk_08131B20:: @ 08131B20 + .incbin "baserom.gba", 0x131B20, 0x0000002 + +gUnk_08131B22:: @ 08131B22 + .incbin "baserom.gba", 0x131B22, 0x0000002 + +gUnk_08131B24:: @ 08131B24 + .incbin "baserom.gba", 0x131B24, 0x0000010 + +gUnk_08131B34:: @ 08131B34 + .incbin "baserom.gba", 0x131B34, 0x0000010 + +gUnk_08131B44:: @ 08131B44 + .incbin "baserom.gba", 0x131B44, 0x0000010 + +gUnk_08131B54:: @ 08131B54 + .incbin "baserom.gba", 0x131B54, 0x0000010 + +gUnk_08131B64:: @ 08131B64 + .incbin "baserom.gba", 0x131B64, 0x000000C + +gUnk_08131B70:: @ 08131B70 + .incbin "baserom.gba", 0x131B70, 0x000000C + +gUnk_08131B7C:: @ 08131B7C + .incbin "baserom.gba", 0x131B7C, 0x000000C + +gUnk_08131B88:: @ 08131B88 + .incbin "baserom.gba", 0x131B88, 0x000000C + +gUnk_08131B94:: @ 08131B94 + .incbin "baserom.gba", 0x131B94, 0x000000C + +gUnk_08131BA0:: @ 08131BA0 + .incbin "baserom.gba", 0x131BA0, 0x000000C + +gUnk_08131BAC:: @ 08131BAC + .incbin "baserom.gba", 0x131BAC, 0x000000C + +gUnk_08131BB8:: @ 08131BB8 + .incbin "baserom.gba", 0x131BB8, 0x000000C + +gUnk_08131BC4:: @ 08131BC4 + .incbin "baserom.gba", 0x131BC4, 0x000000C + +gUnk_08131BD0:: @ 08131BD0 + .incbin "baserom.gba", 0x131BD0, 0x000000C + +gUnk_08131BDC:: @ 08131BDC + .incbin "baserom.gba", 0x131BDC, 0x000000C + +gUnk_08131BE8:: @ 08131BE8 + .incbin "baserom.gba", 0x131BE8, 0x0000010 + +gUnk_08131BF8:: @ 08131BF8 + .incbin "baserom.gba", 0x131BF8, 0x000000C + +gUnk_08131C04:: @ 08131C04 + .incbin "baserom.gba", 0x131C04, 0x000000C + +gUnk_08131C10:: @ 08131C10 + .incbin "baserom.gba", 0x131C10, 0x000000C + +gUnk_08131C1C:: @ 08131C1C + .incbin "baserom.gba", 0x131C1C, 0x0000002 + +gUnk_08131C1E:: @ 08131C1E + .incbin "baserom.gba", 0x131C1E, 0x0000005 + +gUnk_08131C23:: @ 08131C23 + .incbin "baserom.gba", 0x131C23, 0x0000002 + +gUnk_08131C25:: @ 08131C25 + .incbin "baserom.gba", 0x131C25, 0x0000003 + +gUnk_08131C28:: @ 08131C28 + .incbin "baserom.gba", 0x131C28, 0x000000C + +gUnk_08131C34:: @ 08131C34 + .incbin "baserom.gba", 0x131C34, 0x000000C + +gUnk_08131C40:: @ 08131C40 + .incbin "baserom.gba", 0x131C40, 0x0000010 + +gUnk_08131C50:: @ 08131C50 + .incbin "baserom.gba", 0x131C50, 0x000000C + +gUnk_08131C5C:: @ 08131C5C + .incbin "baserom.gba", 0x131C5C, 0x000000C + +gUnk_08131C68:: @ 08131C68 + .incbin "baserom.gba", 0x131C68, 0x000000C + +gUnk_08131C74:: @ 08131C74 + .incbin "baserom.gba", 0x131C74, 0x000000C + +gUnk_08131C80:: @ 08131C80 + .incbin "baserom.gba", 0x131C80, 0x000000C + +gUnk_08131C8C:: @ 08131C8C + .incbin "baserom.gba", 0x131C8C, 0x000000C + +gUnk_08131C98:: @ 08131C98 + .incbin "baserom.gba", 0x131C98, 0x0000010 + +gUnk_08131CA8:: @ 08131CA8 + .incbin "baserom.gba", 0x131CA8, 0x000000C + +gUnk_08131CB4:: @ 08131CB4 + .incbin "baserom.gba", 0x131CB4, 0x000000C + +gUnk_08131CC0:: @ 08131CC0 + .incbin "baserom.gba", 0x131CC0, 0x000000C + +gUnk_08131CCC:: @ 08131CCC + .incbin "baserom.gba", 0x131CCC, 0x000000C + +gUnk_08131CD8:: @ 08131CD8 + .incbin "baserom.gba", 0x131CD8, 0x000000C + +gUnk_08131CE4:: @ 08131CE4 + .incbin "baserom.gba", 0x131CE4, 0x000000C + +gUnk_08131CF0:: @ 08131CF0 + .incbin "baserom.gba", 0x131CF0, 0x000000C + +gUnk_08131CFC:: @ 08131CFC + .incbin "baserom.gba", 0x131CFC, 0x000000C + +gUnk_08131D08:: @ 08131D08 + .incbin "baserom.gba", 0x131D08, 0x000000C + +gUnk_08131D14:: @ 08131D14 + .incbin "baserom.gba", 0x131D14, 0x0000005 + +gUnk_08131D19:: @ 08131D19 + .incbin "baserom.gba", 0x131D19, 0x0000006 + +gUnk_08131D1F:: @ 08131D1F + .incbin "baserom.gba", 0x131D1F, 0x0000001 + +gUnk_08131D20:: @ 08131D20 + .incbin "baserom.gba", 0x131D20, 0x0000002 + +gUnk_08131D22:: @ 08131D22 + .incbin "baserom.gba", 0x131D22, 0x0000002 + +gUnk_08131D24:: @ 08131D24 + .incbin "baserom.gba", 0x131D24, 0x0000001 + +gUnk_08131D25:: @ 08131D25 + .incbin "baserom.gba", 0x131D25, 0x0000001 + +gUnk_08131D26:: @ 08131D26 + .incbin "baserom.gba", 0x131D26, 0x0000004 + +gUnk_08131D2A:: @ 08131D2A + .incbin "baserom.gba", 0x131D2A, 0x0000002 + +gUnk_08131D2C:: @ 08131D2C + .incbin "baserom.gba", 0x131D2C, 0x000000C + +gUnk_08131D38:: @ 08131D38 + .incbin "baserom.gba", 0x131D38, 0x000000C + +gUnk_08131D44:: @ 08131D44 + .incbin "baserom.gba", 0x131D44, 0x000000C + +gUnk_08131D50:: @ 08131D50 + .incbin "baserom.gba", 0x131D50, 0x000000C + +gUnk_08131D5C:: @ 08131D5C + .incbin "baserom.gba", 0x131D5C, 0x000000C + +gUnk_08131D68:: @ 08131D68 + .incbin "baserom.gba", 0x131D68, 0x000000C + +gUnk_08131D74:: @ 08131D74 + .incbin "baserom.gba", 0x131D74, 0x000000C + +gUnk_08131D80:: @ 08131D80 + .incbin "baserom.gba", 0x131D80, 0x000000C + +gUnk_08131D8C:: @ 08131D8C + .incbin "baserom.gba", 0x131D8C, 0x000000C + +gUnk_08131D98:: @ 08131D98 + .incbin "baserom.gba", 0x131D98, 0x000000C + +gUnk_08131DA4:: @ 08131DA4 + .incbin "baserom.gba", 0x131DA4, 0x000000C + +gUnk_08131DB0:: @ 08131DB0 + .incbin "baserom.gba", 0x131DB0, 0x000000C + +gUnk_08131DBC:: @ 08131DBC + .incbin "baserom.gba", 0x131DBC, 0x000000C + +gUnk_08131DC8:: @ 08131DC8 + .incbin "baserom.gba", 0x131DC8, 0x000000C + +gUnk_08131DD4:: @ 08131DD4 + .incbin "baserom.gba", 0x131DD4, 0x000000C + +gUnk_08131DE0:: @ 08131DE0 + .incbin "baserom.gba", 0x131DE0, 0x000000C + +gUnk_08131DEC:: @ 08131DEC + .incbin "baserom.gba", 0x131DEC, 0x0000003 + +gUnk_08131DEF:: @ 08131DEF + .incbin "baserom.gba", 0x131DEF, 0x0000009 + +gUnk_08131DF8:: @ 08131DF8 + .incbin "baserom.gba", 0x131DF8, 0x000000C + +gUnk_08131E04:: @ 08131E04 + .incbin "baserom.gba", 0x131E04, 0x000000C + +gUnk_08131E10:: @ 08131E10 + .incbin "baserom.gba", 0x131E10, 0x000000C + +gUnk_08131E1C:: @ 08131E1C + .incbin "baserom.gba", 0x131E1C, 0x000000B + +gUnk_08131E27:: @ 08131E27 + .incbin "baserom.gba", 0x131E27, 0x0000001 + +gUnk_08131E28:: @ 08131E28 + .incbin "baserom.gba", 0x131E28, 0x0000001 + +gUnk_08131E29:: @ 08131E29 + .incbin "baserom.gba", 0x131E29, 0x000000A + +gUnk_08131E33:: @ 08131E33 + .incbin "baserom.gba", 0x131E33, 0x0000001 + +gUnk_08131E34:: @ 08131E34 + .incbin "baserom.gba", 0x131E34, 0x000000C + +gUnk_08131E40:: @ 08131E40 + .incbin "baserom.gba", 0x131E40, 0x000000C + +gUnk_08131E4C:: @ 08131E4C + .incbin "baserom.gba", 0x131E4C, 0x000000C + +gUnk_08131E58:: @ 08131E58 + .incbin "baserom.gba", 0x131E58, 0x000000C + +gUnk_08131E64:: @ 08131E64 + .incbin "baserom.gba", 0x131E64, 0x000000C + +gUnk_08131E70:: @ 08131E70 + .incbin "baserom.gba", 0x131E70, 0x000000C + +gUnk_08131E7C:: @ 08131E7C + .incbin "baserom.gba", 0x131E7C, 0x000000C + +gUnk_08131E88:: @ 08131E88 + .incbin "baserom.gba", 0x131E88, 0x000000C + +gUnk_08131E94:: @ 08131E94 + .incbin "baserom.gba", 0x131E94, 0x000000C + +gUnk_08131EA0:: @ 08131EA0 + .incbin "baserom.gba", 0x131EA0, 0x000000C + +gUnk_08131EAC:: @ 08131EAC + .incbin "baserom.gba", 0x131EAC, 0x000000C + +gUnk_08131EB8:: @ 08131EB8 + .incbin "baserom.gba", 0x131EB8, 0x000000C + +gUnk_08131EC4:: @ 08131EC4 + .incbin "baserom.gba", 0x131EC4, 0x000000C + +gUnk_08131ED0:: @ 08131ED0 + .incbin "baserom.gba", 0x131ED0, 0x000000C + +gUnk_08131EDC:: @ 08131EDC + .incbin "baserom.gba", 0x131EDC, 0x000000C + +gUnk_08131EE8:: @ 08131EE8 + .incbin "baserom.gba", 0x131EE8, 0x000000C + +gUnk_08131EF4:: @ 08131EF4 + .incbin "baserom.gba", 0x131EF4, 0x000000C + +gUnk_08131F00:: @ 08131F00 + .incbin "baserom.gba", 0x131F00, 0x000000C + +gUnk_08131F0C:: @ 08131F0C + .incbin "baserom.gba", 0x131F0C, 0x000000C + +gUnk_08131F18:: @ 08131F18 + .incbin "baserom.gba", 0x131F18, 0x000000A + +gUnk_08131F22:: @ 08131F22 + .incbin "baserom.gba", 0x131F22, 0x0000002 + +gUnk_08131F24:: @ 08131F24 + .incbin "baserom.gba", 0x131F24, 0x0000007 + +gUnk_08131F2B:: @ 08131F2B + .incbin "baserom.gba", 0x131F2B, 0x0000004 + +gUnk_08131F2F:: @ 08131F2F + .incbin "baserom.gba", 0x131F2F, 0x0000001 + +gUnk_08131F30:: @ 08131F30 + .incbin "baserom.gba", 0x131F30, 0x0000002 + +gUnk_08131F32:: @ 08131F32 + .incbin "baserom.gba", 0x131F32, 0x000000A + +gUnk_08131F3C:: @ 08131F3C + .incbin "baserom.gba", 0x131F3C, 0x000000C + +gUnk_08131F48:: @ 08131F48 + .incbin "baserom.gba", 0x131F48, 0x000000C + +gUnk_08131F54:: @ 08131F54 + .incbin "baserom.gba", 0x131F54, 0x000000C + +gUnk_08131F60:: @ 08131F60 + .incbin "baserom.gba", 0x131F60, 0x000000C + +gUnk_08131F6C:: @ 08131F6C + .incbin "baserom.gba", 0x131F6C, 0x000000C + +gUnk_08131F78:: @ 08131F78 + .incbin "baserom.gba", 0x131F78, 0x000000C + +gUnk_08131F84:: @ 08131F84 + .incbin "baserom.gba", 0x131F84, 0x000000C + +gUnk_08131F90:: @ 08131F90 + .incbin "baserom.gba", 0x131F90, 0x000000C + +gUnk_08131F9C:: @ 08131F9C + .incbin "baserom.gba", 0x131F9C, 0x000000C + +gUnk_08131FA8:: @ 08131FA8 + .incbin "baserom.gba", 0x131FA8, 0x000000C + +gUnk_08131FB4:: @ 08131FB4 + .incbin "baserom.gba", 0x131FB4, 0x000000C + +gUnk_08131FC0:: @ 08131FC0 + .incbin "baserom.gba", 0x131FC0, 0x000000C + +gUnk_08131FCC:: @ 08131FCC + .incbin "baserom.gba", 0x131FCC, 0x000000C + +gUnk_08131FD8:: @ 08131FD8 + .incbin "baserom.gba", 0x131FD8, 0x000000C + +gUnk_08131FE4:: @ 08131FE4 + .incbin "baserom.gba", 0x131FE4, 0x000000C + +gUnk_08131FF0:: @ 08131FF0 + .incbin "baserom.gba", 0x131FF0, 0x000000C + +gUnk_08131FFC:: @ 08131FFC + .incbin "baserom.gba", 0x131FFC, 0x0000003 + +gUnk_08131FFF:: @ 08131FFF + .incbin "baserom.gba", 0x131FFF, 0x0000007 + +gUnk_08132006:: @ 08132006 + .incbin "baserom.gba", 0x132006, 0x0000002 + +gUnk_08132008:: @ 08132008 + .incbin "baserom.gba", 0x132008, 0x000000C + +gUnk_08132014:: @ 08132014 + .incbin "baserom.gba", 0x132014, 0x000000C + +gUnk_08132020:: @ 08132020 + .incbin "baserom.gba", 0x132020, 0x0000009 + +gUnk_08132029:: @ 08132029 + .incbin "baserom.gba", 0x132029, 0x0000001 + +gUnk_0813202A:: @ 0813202A + .incbin "baserom.gba", 0x13202A, 0x0000002 + +gUnk_0813202C:: @ 0813202C + .incbin "baserom.gba", 0x13202C, 0x0000001 + +gUnk_0813202D:: @ 0813202D + .incbin "baserom.gba", 0x13202D, 0x0000002 + +gUnk_0813202F:: @ 0813202F + .incbin "baserom.gba", 0x13202F, 0x0000009 + +gUnk_08132038:: @ 08132038 + .incbin "baserom.gba", 0x132038, 0x000000C + +gUnk_08132044:: @ 08132044 + .incbin "baserom.gba", 0x132044, 0x000000C + +gUnk_08132050:: @ 08132050 + .incbin "baserom.gba", 0x132050, 0x000000C + +gUnk_0813205C:: @ 0813205C + .incbin "baserom.gba", 0x13205C, 0x000000C + +gUnk_08132068:: @ 08132068 + .incbin "baserom.gba", 0x132068, 0x000000C + +gUnk_08132074:: @ 08132074 + .incbin "baserom.gba", 0x132074, 0x000000C + +gUnk_08132080:: @ 08132080 + .incbin "baserom.gba", 0x132080, 0x000000C + +gUnk_0813208C:: @ 0813208C + .incbin "baserom.gba", 0x13208C, 0x000001C + +gUnk_081320A8:: @ 081320A8 + .incbin "baserom.gba", 0x1320A8, 0x0000010 + +gUnk_081320B8:: @ 081320B8 + .incbin "baserom.gba", 0x1320B8, 0x000000C + +gUnk_081320C4:: @ 081320C4 + .incbin "baserom.gba", 0x1320C4, 0x0000008 + +gUnk_081320CC:: @ 081320CC + .incbin "baserom.gba", 0x1320CC, 0x0000008 + +gUnk_081320D4:: @ 081320D4 + .incbin "baserom.gba", 0x1320D4, 0x0000010 + +gUnk_081320E4:: @ 081320E4 + .incbin "baserom.gba", 0x1320E4, 0x000000C + +gUnk_081320F0:: @ 081320F0 + .incbin "baserom.gba", 0x1320F0, 0x000000C + +gUnk_081320FC:: @ 081320FC + .incbin "baserom.gba", 0x1320FC, 0x0000010 + +gUnk_0813210C:: @ 0813210C + .incbin "baserom.gba", 0x13210C, 0x0000113 + +gUnk_0813221F:: @ 0813221F + .incbin "baserom.gba", 0x13221F, 0x0000011 + +gUnk_08132230:: @ 08132230 + .incbin "baserom.gba", 0x132230, 0x0000002 + +gUnk_08132232:: @ 08132232 + .incbin "baserom.gba", 0x132232, 0x00000F2 + +gUnk_08132324:: @ 08132324 + .incbin "baserom.gba", 0x132324, 0x0000038 + +gUnk_0813235C:: @ 0813235C + .incbin "baserom.gba", 0x13235C, 0x0000050 + +gUnk_081323AC:: @ 081323AC + .incbin "baserom.gba", 0x1323AC, 0x0000030 + +gUnk_081323DC:: @ 081323DC + .incbin "baserom.gba", 0x1323DC, 0x0000030 + +gUnk_0813240C:: @ 0813240C + .incbin "baserom.gba", 0x13240C, 0x0000010 + +gUnk_0813241C:: @ 0813241C + .incbin "baserom.gba", 0x13241C, 0x0000010 + +gUnk_0813242C:: @ 0813242C + .incbin "baserom.gba", 0x13242C, 0x0000020 + +gUnk_0813244C:: @ 0813244C + .incbin "baserom.gba", 0x13244C, 0x0000040 + +gUnk_0813248C:: @ 0813248C + .incbin "baserom.gba", 0x13248C, 0x0000020 + +gUnk_081324AC:: @ 081324AC + .incbin "baserom.gba", 0x1324AC, 0x0000040 + +gUnk_081324EC:: @ 081324EC + .incbin "baserom.gba", 0x1324EC, 0x000001A + +gUnk_08132506:: @ 08132506 + .incbin "baserom.gba", 0x132506, 0x0000006 + +gUnk_0813250C:: @ 0813250C + .incbin "baserom.gba", 0x13250C, 0x0000020 + +gUnk_0813252C:: @ 0813252C + .incbin "baserom.gba", 0x13252C, 0x0000040 + +gUnk_0813256C:: @ 0813256C + .incbin "baserom.gba", 0x13256C, 0x0000050 + +gUnk_081325BC:: @ 081325BC + .incbin "baserom.gba", 0x1325BC, 0x0000065 + +gUnk_08132621:: @ 08132621 + .incbin "baserom.gba", 0x132621, 0x0000012 + +gUnk_08132633:: @ 08132633 + .incbin "baserom.gba", 0x132633, 0x0000069 + +gUnk_0813269C:: @ 0813269C + .incbin "baserom.gba", 0x13269C, 0x0000030 + +gUnk_081326CC:: @ 081326CC + .incbin "baserom.gba", 0x1326CC, 0x0000020 + +gUnk_081326EC:: @ 081326EC + .incbin "baserom.gba", 0x1326EC, 0x0000014 + +gUnk_08132700:: @ 08132700 + .incbin "baserom.gba", 0x132700, 0x0000014 + +gUnk_08132714:: @ 08132714 + .incbin "baserom.gba", 0x132714, 0x0000020 + +gUnk_08132734:: @ 08132734 + .incbin "baserom.gba", 0x132734, 0x0000001 + +gUnk_08132735:: @ 08132735 + .incbin "baserom.gba", 0x132735, 0x0000001 + +gUnk_08132736:: @ 08132736 + .incbin "baserom.gba", 0x132736, 0x000000E + +gUnk_08132744:: @ 08132744 + .incbin "baserom.gba", 0x132744, 0x0000010 + +gUnk_08132754:: @ 08132754 + .incbin "baserom.gba", 0x132754, 0x0000010 + +gUnk_08132764:: @ 08132764 + .incbin "baserom.gba", 0x132764, 0x0000010 + +gUnk_08132774:: @ 08132774 + .incbin "baserom.gba", 0x132774, 0x0000010 + +gUnk_08132784:: @ 08132784 + .incbin "baserom.gba", 0x132784, 0x0000010 + +gUnk_08132794:: @ 08132794 + .incbin "baserom.gba", 0x132794, 0x0000018 + +gUnk_081327AC:: @ 081327AC + .incbin "baserom.gba", 0x1327AC, 0x0000018 + +gUnk_081327C4:: @ 081327C4 + .incbin "baserom.gba", 0x1327C4, 0x0000018 + +gUnk_081327DC:: @ 081327DC + .incbin "baserom.gba", 0x1327DC, 0x0000034 + +gUnk_08132810:: @ 08132810 + .incbin "baserom.gba", 0x132810, 0x0000017 + +gUnk_08132827:: @ 08132827 + .incbin "baserom.gba", 0x132827, 0x00002B9 + +gUnk_08132AE0:: @ 08132AE0 + .incbin "baserom.gba", 0x132AE0, 0x000000A + +gUnk_08132AEA:: @ 08132AEA + .incbin "baserom.gba", 0x132AEA, 0x000000A + +gUnk_08132AF4:: @ 08132AF4 + .incbin "baserom.gba", 0x132AF4, 0x000000A + +gUnk_08132AFE:: @ 08132AFE + .incbin "baserom.gba", 0x132AFE, 0x000000E + +gUnk_08132B0C:: @ 08132B0C + .incbin "baserom.gba", 0x132B0C, 0x000000E + +gUnk_08132B1A:: @ 08132B1A + .incbin "baserom.gba", 0x132B1A, 0x000000E + +gUnk_08132B28:: @ 08132B28 + .incbin "baserom.gba", 0x132B28, 0x0000008 + +gUnk_08132B30:: @ 08132B30 + .incbin "baserom.gba", 0x132B30, 0x0000203 + +gUnk_08132D33:: @ 08132D33 + .incbin "baserom.gba", 0x132D33, 0x00002E6 + +gUnk_08133019:: @ 08133019 + .incbin "baserom.gba", 0x133019, 0x00000F8 + +gUnk_08133111:: @ 08133111 + .incbin "baserom.gba", 0x133111, 0x0000200 + +gUnk_08133311:: @ 08133311 + .incbin "baserom.gba", 0x133311, 0x0000022 + +gUnk_08133333:: @ 08133333 + .incbin "baserom.gba", 0x133333, 0x0000035 + +gUnk_08133368:: @ 08133368 + .incbin "baserom.gba", 0x133368, 0x00005B0 + +gUnk_08133918:: @ 08133918 + .incbin "baserom.gba", 0x133918, 0x0000020 + +gUnk_08133938:: @ 08133938 + .incbin "baserom.gba", 0x133938, 0x0000020 + +gUnk_08133958:: @ 08133958 + .incbin "baserom.gba", 0x133958, 0x0000020 + +gUnk_08133978:: @ 08133978 + .incbin "baserom.gba", 0x133978, 0x0000020 + +gUnk_08133998:: @ 08133998 + .incbin "baserom.gba", 0x133998, 0x0000020 + +gUnk_081339B8:: @ 081339B8 + .incbin "baserom.gba", 0x1339B8, 0x0000020 + +gUnk_081339D8:: @ 081339D8 + .incbin "baserom.gba", 0x1339D8, 0x0000020 + +gUnk_081339F8:: @ 081339F8 + .incbin "baserom.gba", 0x1339F8, 0x0000020 + +gUnk_08133A18:: @ 08133A18 + .incbin "baserom.gba", 0x133A18, 0x0000028 + +gUnk_08133A40:: @ 08133A40 + .incbin "baserom.gba", 0x133A40, 0x000001A + +gUnk_08133A5A:: @ 08133A5A + .incbin "baserom.gba", 0x133A5A, 0x000000D + +gUnk_08133A67:: @ 08133A67 + .incbin "baserom.gba", 0x133A67, 0x00004E1 + +gUnk_08133F48:: @ 08133F48 + .incbin "baserom.gba", 0x133F48, 0x0000080 + +gUnk_08133FC8:: @ 08133FC8 + .incbin "baserom.gba", 0x133FC8, 0x0000014 + +gUnk_08133FDC:: @ 08133FDC + .incbin "baserom.gba", 0x133FDC, 0x0000100 + +gUnk_081340DC:: @ 081340DC + .incbin "baserom.gba", 0x1340DC, 0x000012C + +gUnk_08134208:: @ 08134208 + .incbin "baserom.gba", 0x134208, 0x0000004 + +gUnk_0813420C:: @ 0813420C + .incbin "baserom.gba", 0x13420C, 0x00000DC + +gUnk_081342E8:: @ 081342E8 + .incbin "baserom.gba", 0x1342E8, 0x000004B + +gUnk_08134333:: @ 08134333 + .incbin "baserom.gba", 0x134333, 0x0000005 + +gUnk_08134338:: @ 08134338 + .incbin "baserom.gba", 0x134338, 0x0000008 + +gUnk_08134340:: @ 08134340 + .incbin "baserom.gba", 0x134340, 0x00000C8 + +gUnk_08134408:: @ 08134408 + .incbin "baserom.gba", 0x134408, 0x0000004 + +gUnk_0813440C:: @ 0813440C + .incbin "baserom.gba", 0x13440C, 0x0000032 + +gUnk_0813443E:: @ 0813443E + .incbin "baserom.gba", 0x13443E, 0x000000A + +gUnk_08134448:: @ 08134448 + .incbin "baserom.gba", 0x134448, 0x0000014 + +gUnk_0813445C:: @ 0813445C + .incbin "baserom.gba", 0x13445C, 0x0000028 + +gUnk_08134484:: @ 08134484 + .incbin "baserom.gba", 0x134484, 0x0000028 + +gUnk_081344AC:: @ 081344AC + .incbin "baserom.gba", 0x1344AC, 0x0000018 + +gUnk_081344C4:: @ 081344C4 + .incbin "baserom.gba", 0x1344C4, 0x00002D0 + +gUnk_08134794:: @ 08134794 + .incbin "baserom.gba", 0x134794, 0x0000004 + +gUnk_08134798:: @ 08134798 + .incbin "baserom.gba", 0x134798, 0x0000028 + +gUnk_081347C0:: @ 081347C0 + .incbin "baserom.gba", 0x1347C0, 0x0000004 + +gUnk_081347C4:: @ 081347C4 + .incbin "baserom.gba", 0x1347C4, 0x000003C + +gUnk_08134800:: @ 08134800 + .incbin "baserom.gba", 0x134800, 0x0000050 + +gUnk_08134850:: @ 08134850 + .incbin "baserom.gba", 0x134850, 0x00000B4 + +gUnk_08134904:: @ 08134904 + .incbin "baserom.gba", 0x134904, 0x0000064 + +gUnk_08134968:: @ 08134968 + .incbin "baserom.gba", 0x134968, 0x00000C8 + +gUnk_08134A30:: @ 08134A30 + .incbin "baserom.gba", 0x134A30, 0x0000014 + +gUnk_08134A44:: @ 08134A44 + .incbin "baserom.gba", 0x134A44, 0x0000028 + +gUnk_08134A6C:: @ 08134A6C + .incbin "baserom.gba", 0x134A6C, 0x00000A0 + +gUnk_08134B0C:: @ 08134B0C + .incbin "baserom.gba", 0x134B0C, 0x000003C + +gUnk_08134B48:: @ 08134B48 + .incbin "baserom.gba", 0x134B48, 0x0000028 + +gUnk_08134B70:: @ 08134B70 + .incbin "baserom.gba", 0x134B70, 0x000003C + +gUnk_08134BAC:: @ 08134BAC + .incbin "baserom.gba", 0x134BAC, 0x0000038 + +gUnk_08134BE4:: @ 08134BE4 + .incbin "baserom.gba", 0x134BE4, 0x00000A4 + +gUnk_08134C88:: @ 08134C88 + .incbin "baserom.gba", 0x134C88, 0x0000140 + +gUnk_08134DC8:: @ 08134DC8 + .incbin "baserom.gba", 0x134DC8, 0x00000DC + +gUnk_08134EA4:: @ 08134EA4 + .incbin "baserom.gba", 0x134EA4, 0x000003C + +gUnk_08134EE0:: @ 08134EE0 + .incbin "baserom.gba", 0x134EE0, 0x0000028 + +gUnk_08134F08:: @ 08134F08 + .incbin "baserom.gba", 0x134F08, 0x0000028 + +gUnk_08134F30:: @ 08134F30 + .incbin "baserom.gba", 0x134F30, 0x000008C + +gUnk_08134FBC:: @ 08134FBC + .incbin "baserom.gba", 0x134FBC, 0x000008C + +gUnk_08135048:: @ 08135048 + .incbin "baserom.gba", 0x135048, 0x0000028 + +gUnk_08135070:: @ 08135070 + .incbin "baserom.gba", 0x135070, 0x0000004 + +gUnk_08135074:: @ 08135074 + .incbin "baserom.gba", 0x135074, 0x0000028 + +gUnk_0813509C:: @ 0813509C + .incbin "baserom.gba", 0x13509C, 0x0000004 + +gUnk_081350A0:: @ 081350A0 + .incbin "baserom.gba", 0x1350A0, 0x00000C8 + +gUnk_08135168:: @ 08135168 + .incbin "baserom.gba", 0x135168, 0x0000028 + +gUnk_08135190:: @ 08135190 + .incbin "baserom.gba", 0x135190, 0x000003C + +gUnk_081351CC:: @ 081351CC + .incbin "baserom.gba", 0x1351CC, 0x0000008 + +gUnk_081351D4:: @ 081351D4 + .incbin "baserom.gba", 0x1351D4, 0x0000104 + +gUnk_081352D8:: @ 081352D8 + .incbin "baserom.gba", 0x1352D8, 0x0000004 + +gUnk_081352DC:: @ 081352DC + .incbin "baserom.gba", 0x1352DC, 0x0000028 + +gUnk_08135304:: @ 08135304 + .incbin "baserom.gba", 0x135304, 0x0000028 + +gUnk_0813532C:: @ 0813532C + .incbin "baserom.gba", 0x13532C, 0x0000028 + +gUnk_08135354:: @ 08135354 + .incbin "baserom.gba", 0x135354, 0x0000028 + +gUnk_0813537C:: @ 0813537C + .incbin "baserom.gba", 0x13537C, 0x0000028 + +gUnk_081353A4:: @ 081353A4 + .incbin "baserom.gba", 0x1353A4, 0x000003C + +gUnk_081353E0:: @ 081353E0 + .incbin "baserom.gba", 0x1353E0, 0x000003C + +gUnk_0813541C:: @ 0813541C + .incbin "baserom.gba", 0x13541C, 0x000003C + +gUnk_08135458:: @ 08135458 + .incbin "baserom.gba", 0x135458, 0x000003C + +gUnk_08135494:: @ 08135494 + .incbin "baserom.gba", 0x135494, 0x000003C + +gUnk_081354D0:: @ 081354D0 + .incbin "baserom.gba", 0x1354D0, 0x0000054 + +gUnk_08135524:: @ 08135524 + .incbin "baserom.gba", 0x135524, 0x0000028 + +gUnk_0813554C:: @ 0813554C + .incbin "baserom.gba", 0x13554C, 0x0000004 + +gUnk_08135550:: @ 08135550 + .incbin "baserom.gba", 0x135550, 0x0000028 + +gUnk_08135578:: @ 08135578 + .incbin "baserom.gba", 0x135578, 0x0000004 + +gUnk_0813557C:: @ 0813557C + .incbin "baserom.gba", 0x13557C, 0x0000118 + +gUnk_08135694:: @ 08135694 + .incbin "baserom.gba", 0x135694, 0x0000028 + +gUnk_081356BC:: @ 081356BC + .incbin "baserom.gba", 0x1356BC, 0x0000010 + +gUnk_081356CC:: @ 081356CC + .incbin "baserom.gba", 0x1356CC, 0x0000078 + +gUnk_08135744:: @ 08135744 + .incbin "baserom.gba", 0x135744, 0x0000004 + +gUnk_08135748:: @ 08135748 + .incbin "baserom.gba", 0x135748, 0x000002F + +gUnk_08135777:: @ 08135777 + .incbin "baserom.gba", 0x135777, 0x000000D + +gUnk_08135784:: @ 08135784 + .incbin "baserom.gba", 0x135784, 0x000003C + +gUnk_081357C0:: @ 081357C0 + .incbin "baserom.gba", 0x1357C0, 0x0000028 + +gUnk_081357E8:: @ 081357E8 + .incbin "baserom.gba", 0x1357E8, 0x0000028 + +gUnk_08135810:: @ 08135810 + .incbin "baserom.gba", 0x135810, 0x000003C + +gUnk_0813584C:: @ 0813584C + .incbin "baserom.gba", 0x13584C, 0x0000014 + +gUnk_08135860:: @ 08135860 + .incbin "baserom.gba", 0x135860, 0x0000028 + +gUnk_08135888:: @ 08135888 + .incbin "baserom.gba", 0x135888, 0x0000028 + +gUnk_081358B0:: @ 081358B0 + .incbin "baserom.gba", 0x1358B0, 0x000003C + +gUnk_081358EC:: @ 081358EC + .incbin "baserom.gba", 0x1358EC, 0x000003C + +gUnk_08135928:: @ 08135928 + .incbin "baserom.gba", 0x135928, 0x0000010 + +gUnk_08135938:: @ 08135938 + .incbin "baserom.gba", 0x135938, 0x000003C + +gUnk_08135974:: @ 08135974 + .incbin "baserom.gba", 0x135974, 0x0000010 + +gUnk_08135984:: @ 08135984 + .incbin "baserom.gba", 0x135984, 0x0000028 + +gUnk_081359AC:: @ 081359AC + .incbin "baserom.gba", 0x1359AC, 0x0000028 + +gUnk_081359D4:: @ 081359D4 + .incbin "baserom.gba", 0x1359D4, 0x000003C + +gUnk_08135A10:: @ 08135A10 + .incbin "baserom.gba", 0x135A10, 0x0000028 + +gUnk_08135A38:: @ 08135A38 + .incbin "baserom.gba", 0x135A38, 0x0000028 + +gUnk_08135A60:: @ 08135A60 + .incbin "baserom.gba", 0x135A60, 0x0000028 + +gUnk_08135A88:: @ 08135A88 + .incbin "baserom.gba", 0x135A88, 0x0000028 + +gUnk_08135AB0:: @ 08135AB0 + .incbin "baserom.gba", 0x135AB0, 0x0000028 + +gUnk_08135AD8:: @ 08135AD8 + .incbin "baserom.gba", 0x135AD8, 0x0000028 + +gUnk_08135B00:: @ 08135B00 + .incbin "baserom.gba", 0x135B00, 0x000003C + +gUnk_08135B3C:: @ 08135B3C + .incbin "baserom.gba", 0x135B3C, 0x0000028 + +gUnk_08135B64:: @ 08135B64 + .incbin "baserom.gba", 0x135B64, 0x0000028 + +gUnk_08135B8C:: @ 08135B8C + .incbin "baserom.gba", 0x135B8C, 0x0000028 + +gUnk_08135BB4:: @ 08135BB4 + .incbin "baserom.gba", 0x135BB4, 0x0000028 + +gUnk_08135BDC:: @ 08135BDC + .incbin "baserom.gba", 0x135BDC, 0x0000028 + +gUnk_08135C04:: @ 08135C04 + .incbin "baserom.gba", 0x135C04, 0x0000028 + +gUnk_08135C2C:: @ 08135C2C + .incbin "baserom.gba", 0x135C2C, 0x0000028 + +gUnk_08135C54:: @ 08135C54 + .incbin "baserom.gba", 0x135C54, 0x0000028 + +gUnk_08135C7C:: @ 08135C7C + .incbin "baserom.gba", 0x135C7C, 0x0000028 + +gUnk_08135CA4:: @ 08135CA4 + .incbin "baserom.gba", 0x135CA4, 0x0000028 + +gUnk_08135CCC:: @ 08135CCC + .incbin "baserom.gba", 0x135CCC, 0x0000028 + +gUnk_08135CF4:: @ 08135CF4 + .incbin "baserom.gba", 0x135CF4, 0x0000028 + +gUnk_08135D1C:: @ 08135D1C + .incbin "baserom.gba", 0x135D1C, 0x0000028 + +gUnk_08135D44:: @ 08135D44 + .incbin "baserom.gba", 0x135D44, 0x00000A0 + +gUnk_08135DE4:: @ 08135DE4 + .incbin "baserom.gba", 0x135DE4, 0x000008C + +gUnk_08135E70:: @ 08135E70 + .incbin "baserom.gba", 0x135E70, 0x00000B4 + +gUnk_08135F24:: @ 08135F24 + .incbin "baserom.gba", 0x135F24, 0x00000B4 + +gUnk_08135FD8:: @ 08135FD8 + .incbin "baserom.gba", 0x135FD8, 0x0000028 + +gUnk_08136000:: @ 08136000 + .incbin "baserom.gba", 0x136000, 0x0000028 + +gUnk_08136028:: @ 08136028 + .incbin "baserom.gba", 0x136028, 0x0000014 + +gUnk_0813603C:: @ 0813603C + .incbin "baserom.gba", 0x13603C, 0x0000050 + +gUnk_0813608C:: @ 0813608C + .incbin "baserom.gba", 0x13608C, 0x0000014 + +gUnk_081360A0:: @ 081360A0 + .incbin "baserom.gba", 0x1360A0, 0x0000028 + +gUnk_081360C8:: @ 081360C8 + .incbin "baserom.gba", 0x1360C8, 0x0000004 + +gUnk_081360CC:: @ 081360CC + .incbin "baserom.gba", 0x1360CC, 0x0000028 + +gUnk_081360F4:: @ 081360F4 + .incbin "baserom.gba", 0x1360F4, 0x0000028 + +gUnk_0813611C:: @ 0813611C + .incbin "baserom.gba", 0x13611C, 0x0000028 + +gUnk_08136144:: @ 08136144 + .incbin "baserom.gba", 0x136144, 0x0000028 + +gUnk_0813616C:: @ 0813616C + .incbin "baserom.gba", 0x13616C, 0x0000028 + +gUnk_08136194:: @ 08136194 + .incbin "baserom.gba", 0x136194, 0x0000028 + +gUnk_081361BC:: @ 081361BC + .incbin "baserom.gba", 0x1361BC, 0x0000028 + +gUnk_081361E4:: @ 081361E4 + .incbin "baserom.gba", 0x1361E4, 0x0000028 + +gUnk_0813620C:: @ 0813620C + .incbin "baserom.gba", 0x13620C, 0x0000028 + +gUnk_08136234:: @ 08136234 + .incbin "baserom.gba", 0x136234, 0x0000028 + +gUnk_0813625C:: @ 0813625C + .incbin "baserom.gba", 0x13625C, 0x0000028 + +gUnk_08136284:: @ 08136284 + .incbin "baserom.gba", 0x136284, 0x0000028 + +gUnk_081362AC:: @ 081362AC + .incbin "baserom.gba", 0x1362AC, 0x0000028 + +gUnk_081362D4:: @ 081362D4 + .incbin "baserom.gba", 0x1362D4, 0x000003C + +gUnk_08136310:: @ 08136310 + .incbin "baserom.gba", 0x136310, 0x0000028 + +gUnk_08136338:: @ 08136338 + .incbin "baserom.gba", 0x136338, 0x0000014 + +gUnk_0813634C:: @ 0813634C + .incbin "baserom.gba", 0x13634C, 0x0000028 + +gUnk_08136374:: @ 08136374 + .incbin "baserom.gba", 0x136374, 0x0000028 + +gUnk_0813639C:: @ 0813639C + .incbin "baserom.gba", 0x13639C, 0x00000C0 + +gUnk_0813645C:: @ 0813645C + .incbin "baserom.gba", 0x13645C, 0x0000028 + +gUnk_08136484:: @ 08136484 + .incbin "baserom.gba", 0x136484, 0x0000028 + +gUnk_081364AC:: @ 081364AC + .incbin "baserom.gba", 0x1364AC, 0x0000028 + +gUnk_081364D4:: @ 081364D4 + .incbin "baserom.gba", 0x1364D4, 0x0000028 + +gUnk_081364FC:: @ 081364FC + .incbin "baserom.gba", 0x1364FC, 0x0000028 + +gUnk_08136524:: @ 08136524 + .incbin "baserom.gba", 0x136524, 0x0000028 + +gUnk_0813654C:: @ 0813654C + .incbin "baserom.gba", 0x13654C, 0x0000040 + +gUnk_0813658C:: @ 0813658C + .incbin "baserom.gba", 0x13658C, 0x0000028 + +gUnk_081365B4:: @ 081365B4 + .incbin "baserom.gba", 0x1365B4, 0x0000028 + +gUnk_081365DC:: @ 081365DC + .incbin "baserom.gba", 0x1365DC, 0x0000028 + +gUnk_08136604:: @ 08136604 + .incbin "baserom.gba", 0x136604, 0x0000010 + +gUnk_08136614:: @ 08136614 + .incbin "baserom.gba", 0x136614, 0x0000028 + +gUnk_0813663C:: @ 0813663C + .incbin "baserom.gba", 0x13663C, 0x0000028 + +gUnk_08136664:: @ 08136664 + .incbin "baserom.gba", 0x136664, 0x0000028 + +gUnk_0813668C:: @ 0813668C + .incbin "baserom.gba", 0x13668C, 0x0000028 + +gUnk_081366B4:: @ 081366B4 + .incbin "baserom.gba", 0x1366B4, 0x0000028 + +gUnk_081366DC:: @ 081366DC + .incbin "baserom.gba", 0x1366DC, 0x000003C + +gUnk_08136718:: @ 08136718 + .incbin "baserom.gba", 0x136718, 0x000003C + +gUnk_08136754:: @ 08136754 + .incbin "baserom.gba", 0x136754, 0x0000028 + +gUnk_0813677C:: @ 0813677C + .incbin "baserom.gba", 0x13677C, 0x0000028 + +gUnk_081367A4:: @ 081367A4 + .incbin "baserom.gba", 0x1367A4, 0x0000040 + +gUnk_081367E4:: @ 081367E4 + .incbin "baserom.gba", 0x1367E4, 0x000003C + +gUnk_08136820:: @ 08136820 + .incbin "baserom.gba", 0x136820, 0x0000028 + +gUnk_08136848:: @ 08136848 + .incbin "baserom.gba", 0x136848, 0x000003C + +gUnk_08136884:: @ 08136884 + .incbin "baserom.gba", 0x136884, 0x000003C + +gUnk_081368C0:: @ 081368C0 + .incbin "baserom.gba", 0x1368C0, 0x0000078 + +gUnk_08136938:: @ 08136938 + .incbin "baserom.gba", 0x136938, 0x0000028 + +gUnk_08136960:: @ 08136960 + .incbin "baserom.gba", 0x136960, 0x0000028 + +gUnk_08136988:: @ 08136988 + .incbin "baserom.gba", 0x136988, 0x0000028 + +gUnk_081369B0:: @ 081369B0 + .incbin "baserom.gba", 0x1369B0, 0x0000028 + +gUnk_081369D8:: @ 081369D8 + .incbin "baserom.gba", 0x1369D8, 0x000003C + +gUnk_08136A14:: @ 08136A14 + .incbin "baserom.gba", 0x136A14, 0x000003C + +gUnk_08136A50:: @ 08136A50 + .incbin "baserom.gba", 0x136A50, 0x0000028 + +gUnk_08136A78:: @ 08136A78 + .incbin "baserom.gba", 0x136A78, 0x0000080 + +gUnk_08136AF8:: @ 08136AF8 + .incbin "baserom.gba", 0x136AF8, 0x0000028 + +gUnk_08136B20:: @ 08136B20 + .incbin "baserom.gba", 0x136B20, 0x000003C + +gUnk_08136B5C:: @ 08136B5C + .incbin "baserom.gba", 0x136B5C, 0x0000028 + +gUnk_08136B84:: @ 08136B84 + .incbin "baserom.gba", 0x136B84, 0x0000028 + +gUnk_08136BAC:: @ 08136BAC + .incbin "baserom.gba", 0x136BAC, 0x000003C + +gUnk_08136BE8:: @ 08136BE8 + .incbin "baserom.gba", 0x136BE8, 0x0000028 + +gUnk_08136C10:: @ 08136C10 + .incbin "baserom.gba", 0x136C10, 0x000003C + +gUnk_08136C4C:: @ 08136C4C + .incbin "baserom.gba", 0x136C4C, 0x000003C + +gUnk_08136C88:: @ 08136C88 + .incbin "baserom.gba", 0x136C88, 0x000003C + +gUnk_08136CC4:: @ 08136CC4 + .incbin "baserom.gba", 0x136CC4, 0x000003C + +gUnk_08136D00:: @ 08136D00 + .incbin "baserom.gba", 0x136D00, 0x0000028 + +gUnk_08136D28:: @ 08136D28 + .incbin "baserom.gba", 0x136D28, 0x000003C + +gUnk_08136D64:: @ 08136D64 + .incbin "baserom.gba", 0x136D64, 0x000003C + +gUnk_08136DA0:: @ 08136DA0 + .incbin "baserom.gba", 0x136DA0, 0x0000028 + +gUnk_08136DC8:: @ 08136DC8 + .incbin "baserom.gba", 0x136DC8, 0x000003C + +gUnk_08136E04:: @ 08136E04 + .incbin "baserom.gba", 0x136E04, 0x0000014 + +gUnk_08136E18:: @ 08136E18 + .incbin "baserom.gba", 0x136E18, 0x0000028 + +gUnk_08136E40:: @ 08136E40 + .incbin "baserom.gba", 0x136E40, 0x0000080 + +gUnk_08136EC0:: @ 08136EC0 + .incbin "baserom.gba", 0x136EC0, 0x0000028 + +gUnk_08136EE8:: @ 08136EE8 + .incbin "baserom.gba", 0x136EE8, 0x0000028 + +gUnk_08136F10:: @ 08136F10 + .incbin "baserom.gba", 0x136F10, 0x0000028 + +gUnk_08136F38:: @ 08136F38 + .incbin "baserom.gba", 0x136F38, 0x0000028 + +gUnk_08136F60:: @ 08136F60 + .incbin "baserom.gba", 0x136F60, 0x0000028 + +gUnk_08136F88:: @ 08136F88 + .incbin "baserom.gba", 0x136F88, 0x0000028 + +gUnk_08136FB0:: @ 08136FB0 + .incbin "baserom.gba", 0x136FB0, 0x0000028 + +gUnk_08136FD8:: @ 08136FD8 + .incbin "baserom.gba", 0x136FD8, 0x000002D + +gUnk_08137005:: @ 08137005 + .incbin "baserom.gba", 0x137005, 0x0000013 + +gUnk_08137018:: @ 08137018 + .incbin "baserom.gba", 0x137018, 0x0000028 + +gUnk_08137040:: @ 08137040 + .incbin "baserom.gba", 0x137040, 0x0000028 + +gUnk_08137068:: @ 08137068 + .incbin "baserom.gba", 0x137068, 0x0000028 + +gUnk_08137090:: @ 08137090 + .incbin "baserom.gba", 0x137090, 0x0000028 + +gUnk_081370B8:: @ 081370B8 + .incbin "baserom.gba", 0x1370B8, 0x0000028 + +gUnk_081370E0:: @ 081370E0 + .incbin "baserom.gba", 0x1370E0, 0x0000014 + +gUnk_081370F4:: @ 081370F4 + .incbin "baserom.gba", 0x1370F4, 0x0000028 + +gUnk_0813711C:: @ 0813711C + .incbin "baserom.gba", 0x13711C, 0x0000028 + +gUnk_08137144:: @ 08137144 + .incbin "baserom.gba", 0x137144, 0x0000028 + +gUnk_0813716C:: @ 0813716C + .incbin "baserom.gba", 0x13716C, 0x0000028 + +gUnk_08137194:: @ 08137194 + .incbin "baserom.gba", 0x137194, 0x0000028 + +gUnk_081371BC:: @ 081371BC + .incbin "baserom.gba", 0x1371BC, 0x0000028 + +gUnk_081371E4:: @ 081371E4 + .incbin "baserom.gba", 0x1371E4, 0x0000028 + +gUnk_0813720C:: @ 0813720C + .incbin "baserom.gba", 0x13720C, 0x0000028 + +gUnk_08137234:: @ 08137234 + .incbin "baserom.gba", 0x137234, 0x0000014 + +gUnk_08137248:: @ 08137248 + .incbin "baserom.gba", 0x137248, 0x0000060 + +gUnk_081372A8:: @ 081372A8 + .incbin "baserom.gba", 0x1372A8, 0x0000064 + +gUnk_0813730C:: @ 0813730C + .incbin "baserom.gba", 0x13730C, 0x000003C + +gUnk_08137348:: @ 08137348 + .incbin "baserom.gba", 0x137348, 0x000003C + +gUnk_08137384:: @ 08137384 + .incbin "baserom.gba", 0x137384, 0x000003C + +gUnk_081373C0:: @ 081373C0 + .incbin "baserom.gba", 0x1373C0, 0x0000028 + +gUnk_081373E8:: @ 081373E8 + .incbin "baserom.gba", 0x1373E8, 0x0000028 + +gUnk_08137410:: @ 08137410 + .incbin "baserom.gba", 0x137410, 0x000003C + +gUnk_0813744C:: @ 0813744C + .incbin "baserom.gba", 0x13744C, 0x000003C + +gUnk_08137488:: @ 08137488 + .incbin "baserom.gba", 0x137488, 0x0000028 + +gUnk_081374B0:: @ 081374B0 + .incbin "baserom.gba", 0x1374B0, 0x0000028 + +gUnk_081374D8:: @ 081374D8 + .incbin "baserom.gba", 0x1374D8, 0x000003C + +gUnk_08137514:: @ 08137514 + .incbin "baserom.gba", 0x137514, 0x000003C + +gUnk_08137550:: @ 08137550 + .incbin "baserom.gba", 0x137550, 0x000003C + +gUnk_0813758C:: @ 0813758C + .incbin "baserom.gba", 0x13758C, 0x0000028 + +gUnk_081375B4:: @ 081375B4 + .incbin "baserom.gba", 0x1375B4, 0x0000028 + +gUnk_081375DC:: @ 081375DC + .incbin "baserom.gba", 0x1375DC, 0x0000028 + +gUnk_08137604:: @ 08137604 + .incbin "baserom.gba", 0x137604, 0x000003C + +gUnk_08137640:: @ 08137640 + .incbin "baserom.gba", 0x137640, 0x0000044 + +gUnk_08137684:: @ 08137684 + .incbin "baserom.gba", 0x137684, 0x0000028 + +gUnk_081376AC:: @ 081376AC + .incbin "baserom.gba", 0x1376AC, 0x000003C + +gUnk_081376E8:: @ 081376E8 + .incbin "baserom.gba", 0x1376E8, 0x0000028 + +gUnk_08137710:: @ 08137710 + .incbin "baserom.gba", 0x137710, 0x000003C + +gUnk_0813774C:: @ 0813774C + .incbin "baserom.gba", 0x13774C, 0x0000028 + +gUnk_08137774:: @ 08137774 + .incbin "baserom.gba", 0x137774, 0x0000002 + +gUnk_08137776:: @ 08137776 + .incbin "baserom.gba", 0x137776, 0x0000001 + +gUnk_08137777:: @ 08137777 + .incbin "baserom.gba", 0x137777, 0x000001D + +gUnk_08137794:: @ 08137794 + .incbin "baserom.gba", 0x137794, 0x0000014 + +gUnk_081377A8:: @ 081377A8 + .incbin "baserom.gba", 0x1377A8, 0x0000028 + +gUnk_081377D0:: @ 081377D0 + .incbin "baserom.gba", 0x1377D0, 0x0000010 + +gUnk_081377E0:: @ 081377E0 + .incbin "baserom.gba", 0x1377E0, 0x0000028 + +gUnk_08137808:: @ 08137808 + .incbin "baserom.gba", 0x137808, 0x0000028 + +gUnk_08137830:: @ 08137830 + .incbin "baserom.gba", 0x137830, 0x0000028 + +gUnk_08137858:: @ 08137858 + .incbin "baserom.gba", 0x137858, 0x0000028 + +gUnk_08137880:: @ 08137880 + .incbin "baserom.gba", 0x137880, 0x0000028 + +gUnk_081378A8:: @ 081378A8 + .incbin "baserom.gba", 0x1378A8, 0x0000028 + +gUnk_081378D0:: @ 081378D0 + .incbin "baserom.gba", 0x1378D0, 0x0000028 + +gUnk_081378F8:: @ 081378F8 + .incbin "baserom.gba", 0x1378F8, 0x0000028 + +gUnk_08137920:: @ 08137920 + .incbin "baserom.gba", 0x137920, 0x0000028 + +gUnk_08137948:: @ 08137948 + .incbin "baserom.gba", 0x137948, 0x0000028 + +gUnk_08137970:: @ 08137970 + .incbin "baserom.gba", 0x137970, 0x0000028 + +gUnk_08137998:: @ 08137998 + .incbin "baserom.gba", 0x137998, 0x000002C + +gUnk_081379C4:: @ 081379C4 + .incbin "baserom.gba", 0x1379C4, 0x0000028 + +gUnk_081379EC:: @ 081379EC + .incbin "baserom.gba", 0x1379EC, 0x0000028 + +gUnk_08137A14:: @ 08137A14 + .incbin "baserom.gba", 0x137A14, 0x0000028 + +gUnk_08137A3C:: @ 08137A3C + .incbin "baserom.gba", 0x137A3C, 0x0000028 + +gUnk_08137A64:: @ 08137A64 + .incbin "baserom.gba", 0x137A64, 0x0000028 + +gUnk_08137A8C:: @ 08137A8C + .incbin "baserom.gba", 0x137A8C, 0x0000050 + +gUnk_08137ADC:: @ 08137ADC + .incbin "baserom.gba", 0x137ADC, 0x0000028 + +gUnk_08137B04:: @ 08137B04 + .incbin "baserom.gba", 0x137B04, 0x0000028 + +gUnk_08137B2C:: @ 08137B2C + .incbin "baserom.gba", 0x137B2C, 0x0000050 + +gUnk_08137B7C:: @ 08137B7C + .incbin "baserom.gba", 0x137B7C, 0x000003C + +gUnk_08137BB8:: @ 08137BB8 + .incbin "baserom.gba", 0x137BB8, 0x000003C + +gUnk_08137BF4:: @ 08137BF4 + .incbin "baserom.gba", 0x137BF4, 0x0000028 + +gUnk_08137C1C:: @ 08137C1C + .incbin "baserom.gba", 0x137C1C, 0x000003C + +gUnk_08137C58:: @ 08137C58 + .incbin "baserom.gba", 0x137C58, 0x0000010 + +gUnk_08137C68:: @ 08137C68 + .incbin "baserom.gba", 0x137C68, 0x000003C + +gUnk_08137CA4:: @ 08137CA4 + .incbin "baserom.gba", 0x137CA4, 0x0000028 + +gUnk_08137CCC:: @ 08137CCC + .incbin "baserom.gba", 0x137CCC, 0x0000008 + +gUnk_08137CD4:: @ 08137CD4 + .incbin "baserom.gba", 0x137CD4, 0x000003C + +gUnk_08137D10:: @ 08137D10 + .incbin "baserom.gba", 0x137D10, 0x000003C + +gUnk_08137D4C:: @ 08137D4C + .incbin "baserom.gba", 0x137D4C, 0x000003C + +gUnk_08137D88:: @ 08137D88 + .incbin "baserom.gba", 0x137D88, 0x000003C + +gUnk_08137DC4:: @ 08137DC4 + .incbin "baserom.gba", 0x137DC4, 0x0000010 + +gUnk_08137DD4:: @ 08137DD4 + .incbin "baserom.gba", 0x137DD4, 0x0000028 + +gUnk_08137DFC:: @ 08137DFC + .incbin "baserom.gba", 0x137DFC, 0x0000004 + +gUnk_08137E00:: @ 08137E00 + .incbin "baserom.gba", 0x137E00, 0x0000078 + +gUnk_08137E78:: @ 08137E78 + .incbin "baserom.gba", 0x137E78, 0x0000064 + +gUnk_08137EDC:: @ 08137EDC + .incbin "baserom.gba", 0x137EDC, 0x0000028 + +gUnk_08137F04:: @ 08137F04 + .incbin "baserom.gba", 0x137F04, 0x0000014 + +gUnk_08137F18:: @ 08137F18 + .incbin "baserom.gba", 0x137F18, 0x0000014 + +gUnk_08137F2C:: @ 08137F2C + .incbin "baserom.gba", 0x137F2C, 0x0000014 + +gUnk_08137F40:: @ 08137F40 + .incbin "baserom.gba", 0x137F40, 0x0000028 + +gUnk_08137F68:: @ 08137F68 + .incbin "baserom.gba", 0x137F68, 0x0000028 + +gUnk_08137F90:: @ 08137F90 + .incbin "baserom.gba", 0x137F90, 0x0000028 + +gUnk_08137FB8:: @ 08137FB8 + .incbin "baserom.gba", 0x137FB8, 0x0000014 + +gUnk_08137FCC:: @ 08137FCC + .incbin "baserom.gba", 0x137FCC, 0x0000028 + +gUnk_08137FF4:: @ 08137FF4 + .incbin "baserom.gba", 0x137FF4, 0x000003C + +gUnk_08138030:: @ 08138030 + .incbin "baserom.gba", 0x138030, 0x000003C + +gUnk_0813806C:: @ 0813806C + .incbin "baserom.gba", 0x13806C, 0x0000028 + +gUnk_08138094:: @ 08138094 + .incbin "baserom.gba", 0x138094, 0x0000028 + +gUnk_081380BC:: @ 081380BC + .incbin "baserom.gba", 0x1380BC, 0x0000028 + +gUnk_081380E4:: @ 081380E4 + .incbin "baserom.gba", 0x1380E4, 0x0000028 + +gUnk_0813810C:: @ 0813810C + .incbin "baserom.gba", 0x13810C, 0x0000028 + +gUnk_08138134:: @ 08138134 + .incbin "baserom.gba", 0x138134, 0x0000014 + +gUnk_08138148:: @ 08138148 + .incbin "baserom.gba", 0x138148, 0x000003C + +gUnk_08138184:: @ 08138184 + .incbin "baserom.gba", 0x138184, 0x0000028 + +gUnk_081381AC:: @ 081381AC + .incbin "baserom.gba", 0x1381AC, 0x0000028 + +gUnk_081381D4:: @ 081381D4 + .incbin "baserom.gba", 0x1381D4, 0x0000060 + +gUnk_08138234:: @ 08138234 + .incbin "baserom.gba", 0x138234, 0x0000050 + +gUnk_08138284:: @ 08138284 + .incbin "baserom.gba", 0x138284, 0x0000064 + +gUnk_081382E8:: @ 081382E8 + .incbin "baserom.gba", 0x1382E8, 0x000003C + +gUnk_08138324:: @ 08138324 + .incbin "baserom.gba", 0x138324, 0x000003C + +gUnk_08138360:: @ 08138360 + .incbin "baserom.gba", 0x138360, 0x0000028 + +gUnk_08138388:: @ 08138388 + .incbin "baserom.gba", 0x138388, 0x000003C + +gUnk_081383C4:: @ 081383C4 + .incbin "baserom.gba", 0x1383C4, 0x000003C + +gUnk_08138400:: @ 08138400 + .incbin "baserom.gba", 0x138400, 0x000003C + +gUnk_0813843C:: @ 0813843C + .incbin "baserom.gba", 0x13843C, 0x0000028 + +gUnk_08138464:: @ 08138464 + .incbin "baserom.gba", 0x138464, 0x0000040 + +gUnk_081384A4:: @ 081384A4 + .incbin "baserom.gba", 0x1384A4, 0x0000028 + +gUnk_081384CC:: @ 081384CC + .incbin "baserom.gba", 0x1384CC, 0x0000028 + +gUnk_081384F4:: @ 081384F4 + .incbin "baserom.gba", 0x1384F4, 0x0000008 + +gUnk_081384FC:: @ 081384FC + .incbin "baserom.gba", 0x1384FC, 0x0000028 + +gUnk_08138524:: @ 08138524 + .incbin "baserom.gba", 0x138524, 0x0000028 + +gUnk_0813854C:: @ 0813854C + .incbin "baserom.gba", 0x13854C, 0x0000028 + +gUnk_08138574:: @ 08138574 + .incbin "baserom.gba", 0x138574, 0x0000028 + +gUnk_0813859C:: @ 0813859C + .incbin "baserom.gba", 0x13859C, 0x0000028 + +gUnk_081385C4:: @ 081385C4 + .incbin "baserom.gba", 0x1385C4, 0x0000028 + +gUnk_081385EC:: @ 081385EC + .incbin "baserom.gba", 0x1385EC, 0x000003C + +gUnk_08138628:: @ 08138628 + .incbin "baserom.gba", 0x138628, 0x0000050 + +gUnk_08138678:: @ 08138678 + .incbin "baserom.gba", 0x138678, 0x0000028 + +gUnk_081386A0:: @ 081386A0 + .incbin "baserom.gba", 0x1386A0, 0x0000028 + +gUnk_081386C8:: @ 081386C8 + .incbin "baserom.gba", 0x1386C8, 0x0000028 + +gUnk_081386F0:: @ 081386F0 + .incbin "baserom.gba", 0x1386F0, 0x0000008 + +gUnk_081386F8:: @ 081386F8 + .incbin "baserom.gba", 0x1386F8, 0x0000028 + +gUnk_08138720:: @ 08138720 + .incbin "baserom.gba", 0x138720, 0x0000028 + +gUnk_08138748:: @ 08138748 + .incbin "baserom.gba", 0x138748, 0x0000008 + +gUnk_08138750:: @ 08138750 + .incbin "baserom.gba", 0x138750, 0x0000064 + +gUnk_081387B4:: @ 081387B4 + .incbin "baserom.gba", 0x1387B4, 0x000003C + +gUnk_081387F0:: @ 081387F0 + .incbin "baserom.gba", 0x1387F0, 0x0000008 + +gUnk_081387F8:: @ 081387F8 + .incbin "baserom.gba", 0x1387F8, 0x0000028 + +gUnk_08138820:: @ 08138820 + .incbin "baserom.gba", 0x138820, 0x0000028 + +gUnk_08138848:: @ 08138848 + .incbin "baserom.gba", 0x138848, 0x0000060 + +gUnk_081388A8:: @ 081388A8 + .incbin "baserom.gba", 0x1388A8, 0x0000028 + +gUnk_081388D0:: @ 081388D0 + .incbin "baserom.gba", 0x1388D0, 0x0000028 + +gUnk_081388F8:: @ 081388F8 + .incbin "baserom.gba", 0x1388F8, 0x0000008 + +gUnk_08138900:: @ 08138900 + .incbin "baserom.gba", 0x138900, 0x0000028 + +gUnk_08138928:: @ 08138928 + .incbin "baserom.gba", 0x138928, 0x0000028 + +gUnk_08138950:: @ 08138950 + .incbin "baserom.gba", 0x138950, 0x0000008 + +gUnk_08138958:: @ 08138958 + .incbin "baserom.gba", 0x138958, 0x0000024 + +gUnk_0813897C:: @ 0813897C + .incbin "baserom.gba", 0x13897C, 0x0000028 + +gUnk_081389A4:: @ 081389A4 + .incbin "baserom.gba", 0x1389A4, 0x0000014 + +gUnk_081389B8:: @ 081389B8 + .incbin "baserom.gba", 0x1389B8, 0x0000014 + +gUnk_081389CC:: @ 081389CC + .incbin "baserom.gba", 0x1389CC, 0x0000014 + +gUnk_081389E0:: @ 081389E0 + .incbin "baserom.gba", 0x1389E0, 0x0000014 + +gUnk_081389F4:: @ 081389F4 + .incbin "baserom.gba", 0x1389F4, 0x0000064 + +gUnk_08138A58:: @ 08138A58 + .incbin "baserom.gba", 0x138A58, 0x0000050 + +gUnk_08138AA8:: @ 08138AA8 + .incbin "baserom.gba", 0x138AA8, 0x0000028 + +gUnk_08138AD0:: @ 08138AD0 + .incbin "baserom.gba", 0x138AD0, 0x0000028 + +gUnk_08138AF8:: @ 08138AF8 + .incbin "baserom.gba", 0x138AF8, 0x0000050 + +gUnk_08138B48:: @ 08138B48 + .incbin "baserom.gba", 0x138B48, 0x0000084 + +gUnk_08138BCC:: @ 08138BCC + .incbin "baserom.gba", 0x138BCC, 0x0000004 + +gUnk_08138BD0:: @ 08138BD0 + .incbin "baserom.gba", 0x138BD0, 0x0000064 + +gUnk_08138C34:: @ 08138C34 + .incbin "baserom.gba", 0x138C34, 0x0000004 + +gUnk_08138C38:: @ 08138C38 + .incbin "baserom.gba", 0x138C38, 0x0000028 + +gUnk_08138C60:: @ 08138C60 + .incbin "baserom.gba", 0x138C60, 0x0000028 + +gUnk_08138C88:: @ 08138C88 + .incbin "baserom.gba", 0x138C88, 0x0000028 + +gUnk_08138CB0:: @ 08138CB0 + .incbin "baserom.gba", 0x138CB0, 0x0000028 + +gUnk_08138CD8:: @ 08138CD8 + .incbin "baserom.gba", 0x138CD8, 0x0000028 + +gUnk_08138D00:: @ 08138D00 + .incbin "baserom.gba", 0x138D00, 0x0000028 + +gUnk_08138D28:: @ 08138D28 + .incbin "baserom.gba", 0x138D28, 0x0000028 + +gUnk_08138D50:: @ 08138D50 + .incbin "baserom.gba", 0x138D50, 0x0000084 + +gUnk_08138DD4:: @ 08138DD4 + .incbin "baserom.gba", 0x138DD4, 0x0000028 + +gUnk_08138DFC:: @ 08138DFC + .incbin "baserom.gba", 0x138DFC, 0x000003C + +gUnk_08138E38:: @ 08138E38 + .incbin "baserom.gba", 0x138E38, 0x0000028 + +gUnk_08138E60:: @ 08138E60 + .incbin "baserom.gba", 0x138E60, 0x000003C + +gUnk_08138E9C:: @ 08138E9C + .incbin "baserom.gba", 0x138E9C, 0x0000028 + +gUnk_08138EC4:: @ 08138EC4 + .incbin "baserom.gba", 0x138EC4, 0x0000028 + +gUnk_08138EEC:: @ 08138EEC + .incbin "baserom.gba", 0x138EEC, 0x0000028 + +gUnk_08138F14:: @ 08138F14 + .incbin "baserom.gba", 0x138F14, 0x000003C + +gUnk_08138F50:: @ 08138F50 + .incbin "baserom.gba", 0x138F50, 0x0000028 + +gUnk_08138F78:: @ 08138F78 + .incbin "baserom.gba", 0x138F78, 0x0000028 + +gUnk_08138FA0:: @ 08138FA0 + .incbin "baserom.gba", 0x138FA0, 0x0000028 + +gUnk_08138FC8:: @ 08138FC8 + .incbin "baserom.gba", 0x138FC8, 0x000003C + +gUnk_08139004:: @ 08139004 + .incbin "baserom.gba", 0x139004, 0x000003C + +gUnk_08139040:: @ 08139040 + .incbin "baserom.gba", 0x139040, 0x000003C + +gUnk_0813907C:: @ 0813907C + .incbin "baserom.gba", 0x13907C, 0x000003C + +gUnk_081390B8:: @ 081390B8 + .incbin "baserom.gba", 0x1390B8, 0x0000028 + +gUnk_081390E0:: @ 081390E0 + .incbin "baserom.gba", 0x1390E0, 0x0000028 + +gUnk_08139108:: @ 08139108 + .incbin "baserom.gba", 0x139108, 0x00000A0 + +gUnk_081391A8:: @ 081391A8 + .incbin "baserom.gba", 0x1391A8, 0x0000028 + +gUnk_081391D0:: @ 081391D0 + .incbin "baserom.gba", 0x1391D0, 0x0000004 + +gUnk_081391D4:: @ 081391D4 + .incbin "baserom.gba", 0x1391D4, 0x0000028 + +gUnk_081391FC:: @ 081391FC + .incbin "baserom.gba", 0x1391FC, 0x0000008 + +gUnk_08139204:: @ 08139204 + .incbin "baserom.gba", 0x139204, 0x0000028 + +gUnk_0813922C:: @ 0813922C + .incbin "baserom.gba", 0x13922C, 0x0000028 + +gUnk_08139254:: @ 08139254 + .incbin "baserom.gba", 0x139254, 0x000003C + +gUnk_08139290:: @ 08139290 + .incbin "baserom.gba", 0x139290, 0x0000028 + +gUnk_081392B8:: @ 081392B8 + .incbin "baserom.gba", 0x1392B8, 0x0000028 + +gUnk_081392E0:: @ 081392E0 + .incbin "baserom.gba", 0x1392E0, 0x0000028 + +gUnk_08139308:: @ 08139308 + .incbin "baserom.gba", 0x139308, 0x0000028 + +gUnk_08139330:: @ 08139330 + .incbin "baserom.gba", 0x139330, 0x000003C + +gUnk_0813936C:: @ 0813936C + .incbin "baserom.gba", 0x13936C, 0x0000028 + +gUnk_08139394:: @ 08139394 + .incbin "baserom.gba", 0x139394, 0x0000028 + +gUnk_081393BC:: @ 081393BC + .incbin "baserom.gba", 0x1393BC, 0x0000078 + +gUnk_08139434:: @ 08139434 + .incbin "baserom.gba", 0x139434, 0x0000028 + +gUnk_0813945C:: @ 0813945C + .incbin "baserom.gba", 0x13945C, 0x0000028 + +gUnk_08139484:: @ 08139484 + .incbin "baserom.gba", 0x139484, 0x0000028 + +gUnk_081394AC:: @ 081394AC + .incbin "baserom.gba", 0x1394AC, 0x0000028 + +gUnk_081394D4:: @ 081394D4 + .incbin "baserom.gba", 0x1394D4, 0x0000028 + +gUnk_081394FC:: @ 081394FC + .incbin "baserom.gba", 0x1394FC, 0x000003C + +gUnk_08139538:: @ 08139538 + .incbin "baserom.gba", 0x139538, 0x0000028 + +gUnk_08139560:: @ 08139560 + .incbin "baserom.gba", 0x139560, 0x0000028 + +gUnk_08139588:: @ 08139588 + .incbin "baserom.gba", 0x139588, 0x0000028 + +gUnk_081395B0:: @ 081395B0 + .incbin "baserom.gba", 0x1395B0, 0x0000028 + +gUnk_081395D8:: @ 081395D8 + .incbin "baserom.gba", 0x1395D8, 0x0000100 + +gUnk_081396D8:: @ 081396D8 + .incbin "baserom.gba", 0x1396D8, 0x000003C + +gUnk_08139714:: @ 08139714 + .incbin "baserom.gba", 0x139714, 0x0000004 + +gUnk_08139718:: @ 08139718 + .incbin "baserom.gba", 0x139718, 0x0000014 + +gUnk_0813972C:: @ 0813972C + .incbin "baserom.gba", 0x13972C, 0x0000028 + +gUnk_08139754:: @ 08139754 + .incbin "baserom.gba", 0x139754, 0x000003C + +gUnk_08139790:: @ 08139790 + .incbin "baserom.gba", 0x139790, 0x0000028 + +gUnk_081397B8:: @ 081397B8 + .incbin "baserom.gba", 0x1397B8, 0x0000028 + +gUnk_081397E0:: @ 081397E0 + .incbin "baserom.gba", 0x1397E0, 0x0000024 + +gUnk_08139804:: @ 08139804 + .incbin "baserom.gba", 0x139804, 0x0000028 + +gUnk_0813982C:: @ 0813982C + .incbin "baserom.gba", 0x13982C, 0x0000028 + +gUnk_08139854:: @ 08139854 + .incbin "baserom.gba", 0x139854, 0x0000028 + +gUnk_0813987C:: @ 0813987C + .incbin "baserom.gba", 0x13987C, 0x0000028 + +gUnk_081398A4:: @ 081398A4 + .incbin "baserom.gba", 0x1398A4, 0x0000028 + +gUnk_081398CC:: @ 081398CC + .incbin "baserom.gba", 0x1398CC, 0x000003C + +gUnk_08139908:: @ 08139908 + .incbin "baserom.gba", 0x139908, 0x000003C + +gUnk_08139944:: @ 08139944 + .incbin "baserom.gba", 0x139944, 0x000003C + +gUnk_08139980:: @ 08139980 + .incbin "baserom.gba", 0x139980, 0x0000028 + +gUnk_081399A8:: @ 081399A8 + .incbin "baserom.gba", 0x1399A8, 0x0000028 + +gUnk_081399D0:: @ 081399D0 + .incbin "baserom.gba", 0x1399D0, 0x0000064 + +gUnk_08139A34:: @ 08139A34 + .incbin "baserom.gba", 0x139A34, 0x0000028 + +gUnk_08139A5C:: @ 08139A5C + .incbin "baserom.gba", 0x139A5C, 0x0000028 + +gUnk_08139A84:: @ 08139A84 + .incbin "baserom.gba", 0x139A84, 0x0000028 + +gUnk_08139AAC:: @ 08139AAC + .incbin "baserom.gba", 0x139AAC, 0x0000050 + +gUnk_08139AFC:: @ 08139AFC + .incbin "baserom.gba", 0x139AFC, 0x0000028 + +gUnk_08139B24:: @ 08139B24 + .incbin "baserom.gba", 0x139B24, 0x0000028 + +gUnk_08139B4C:: @ 08139B4C + .incbin "baserom.gba", 0x139B4C, 0x000003C + +gUnk_08139B88:: @ 08139B88 + .incbin "baserom.gba", 0x139B88, 0x000003C + +gUnk_08139BC4:: @ 08139BC4 + .incbin "baserom.gba", 0x139BC4, 0x0000028 + +gUnk_08139BEC:: @ 08139BEC + .incbin "baserom.gba", 0x139BEC, 0x000003C + +gUnk_08139C28:: @ 08139C28 + .incbin "baserom.gba", 0x139C28, 0x00000E4 + +gUnk_08139D0C:: @ 08139D0C + .incbin "baserom.gba", 0x139D0C, 0x0000050 + +gUnk_08139D5C:: @ 08139D5C + .incbin "baserom.gba", 0x139D5C, 0x0000028 + +gUnk_08139D84:: @ 08139D84 + .incbin "baserom.gba", 0x139D84, 0x0000028 + +gUnk_08139DAC:: @ 08139DAC + .incbin "baserom.gba", 0x139DAC, 0x0000028 + +gUnk_08139DD4:: @ 08139DD4 + .incbin "baserom.gba", 0x139DD4, 0x0000028 + +gUnk_08139DFC:: @ 08139DFC + .incbin "baserom.gba", 0x139DFC, 0x000003C + +gUnk_08139E38:: @ 08139E38 + .incbin "baserom.gba", 0x139E38, 0x000003C + +gUnk_08139E74:: @ 08139E74 + .incbin "baserom.gba", 0x139E74, 0x0000050 + +gUnk_08139EC4:: @ 08139EC4 + .incbin "baserom.gba", 0x139EC4, 0x0000050 + +gUnk_08139F14:: @ 08139F14 + .incbin "baserom.gba", 0x139F14, 0x000003C + +gUnk_08139F50:: @ 08139F50 + .incbin "baserom.gba", 0x139F50, 0x0000028 + +gUnk_08139F78:: @ 08139F78 + .incbin "baserom.gba", 0x139F78, 0x0000028 + +gUnk_08139FA0:: @ 08139FA0 + .incbin "baserom.gba", 0x139FA0, 0x0000050 + +gUnk_08139FF0:: @ 08139FF0 + .incbin "baserom.gba", 0x139FF0, 0x0000028 + +gUnk_0813A018:: @ 0813A018 + .incbin "baserom.gba", 0x13A018, 0x0000028 + +gUnk_0813A040:: @ 0813A040 + .incbin "baserom.gba", 0x13A040, 0x0000050 + +gUnk_0813A090:: @ 0813A090 + .incbin "baserom.gba", 0x13A090, 0x0000028 + +gUnk_0813A0B8:: @ 0813A0B8 + .incbin "baserom.gba", 0x13A0B8, 0x0000028 + +gUnk_0813A0E0:: @ 0813A0E0 + .incbin "baserom.gba", 0x13A0E0, 0x0000028 + +gUnk_0813A108:: @ 0813A108 + .incbin "baserom.gba", 0x13A108, 0x0000028 + +gUnk_0813A130:: @ 0813A130 + .incbin "baserom.gba", 0x13A130, 0x0000028 + +gUnk_0813A158:: @ 0813A158 + .incbin "baserom.gba", 0x13A158, 0x0000028 + +gUnk_0813A180:: @ 0813A180 + .incbin "baserom.gba", 0x13A180, 0x0000028 + +gUnk_0813A1A8:: @ 0813A1A8 + .incbin "baserom.gba", 0x13A1A8, 0x000001F + +gUnk_0813A1C7:: @ 0813A1C7 + .incbin "baserom.gba", 0x13A1C7, 0x0000009 + +gUnk_0813A1D0:: @ 0813A1D0 + .incbin "baserom.gba", 0x13A1D0, 0x0000028 + +gUnk_0813A1F8:: @ 0813A1F8 + .incbin "baserom.gba", 0x13A1F8, 0x0000028 + +gUnk_0813A220:: @ 0813A220 + .incbin "baserom.gba", 0x13A220, 0x000001F + +gUnk_0813A23F:: @ 0813A23F + .incbin "baserom.gba", 0x13A23F, 0x0000009 + +gUnk_0813A248:: @ 0813A248 + .incbin "baserom.gba", 0x13A248, 0x000003C + +gUnk_0813A284:: @ 0813A284 + .incbin "baserom.gba", 0x13A284, 0x0000028 + +gUnk_0813A2AC:: @ 0813A2AC + .incbin "baserom.gba", 0x13A2AC, 0x0000114 + +gUnk_0813A3C0:: @ 0813A3C0 + .incbin "baserom.gba", 0x13A3C0, 0x0000028 + +gUnk_0813A3E8:: @ 0813A3E8 + .incbin "baserom.gba", 0x13A3E8, 0x000003C + +gUnk_0813A424:: @ 0813A424 + .incbin "baserom.gba", 0x13A424, 0x0000028 + +gUnk_0813A44C:: @ 0813A44C + .incbin "baserom.gba", 0x13A44C, 0x0000028 + +gUnk_0813A474:: @ 0813A474 + .incbin "baserom.gba", 0x13A474, 0x000003C + +gUnk_0813A4B0:: @ 0813A4B0 + .incbin "baserom.gba", 0x13A4B0, 0x0000028 + +gUnk_0813A4D8:: @ 0813A4D8 + .incbin "baserom.gba", 0x13A4D8, 0x000003C + +gUnk_0813A514:: @ 0813A514 + .incbin "baserom.gba", 0x13A514, 0x0000028 + +gUnk_0813A53C:: @ 0813A53C + .incbin "baserom.gba", 0x13A53C, 0x0000020 + +gUnk_0813A55C:: @ 0813A55C + .incbin "baserom.gba", 0x13A55C, 0x0000028 + +gUnk_0813A584:: @ 0813A584 + .incbin "baserom.gba", 0x13A584, 0x0000028 + +gUnk_0813A5AC:: @ 0813A5AC + .incbin "baserom.gba", 0x13A5AC, 0x0000008 + +gUnk_0813A5B4:: @ 0813A5B4 + .incbin "baserom.gba", 0x13A5B4, 0x000003C + +gUnk_0813A5F0:: @ 0813A5F0 + .incbin "baserom.gba", 0x13A5F0, 0x0000004 + +gUnk_0813A5F4:: @ 0813A5F4 + .incbin "baserom.gba", 0x13A5F4, 0x000003C + +gUnk_0813A630:: @ 0813A630 + .incbin "baserom.gba", 0x13A630, 0x000003C + +gUnk_0813A66C:: @ 0813A66C + .incbin "baserom.gba", 0x13A66C, 0x0000078 + +gUnk_0813A6E4:: @ 0813A6E4 + .incbin "baserom.gba", 0x13A6E4, 0x0000020 + +gUnk_0813A704:: @ 0813A704 + .incbin "baserom.gba", 0x13A704, 0x000003C + +gUnk_0813A740:: @ 0813A740 + .incbin "baserom.gba", 0x13A740, 0x0000004 + +gUnk_0813A744:: @ 0813A744 + .incbin "baserom.gba", 0x13A744, 0x0000028 + +gUnk_0813A76C:: @ 0813A76C + .incbin "baserom.gba", 0x13A76C, 0x0000028 + +gUnk_0813A794:: @ 0813A794 + .incbin "baserom.gba", 0x13A794, 0x0000028 + +gUnk_0813A7BC:: @ 0813A7BC + .incbin "baserom.gba", 0x13A7BC, 0x0000028 + +gUnk_0813A7E4:: @ 0813A7E4 + .incbin "baserom.gba", 0x13A7E4, 0x000000C + +gUnk_0813A7F0:: @ 0813A7F0 + .incbin "baserom.gba", 0x13A7F0, 0x0000264 + +gUnk_0813AA54:: @ 0813AA54 + .incbin "baserom.gba", 0x13AA54, 0x0000014 + +gUnk_0813AA68:: @ 0813AA68 + .incbin "baserom.gba", 0x13AA68, 0x0000014 + +gUnk_0813AA7C:: @ 0813AA7C + .incbin "baserom.gba", 0x13AA7C, 0x0000014 + +gUnk_0813AA90:: @ 0813AA90 + .incbin "baserom.gba", 0x13AA90, 0x0000014 + +gUnk_0813AAA4:: @ 0813AAA4 + .incbin "baserom.gba", 0x13AAA4, 0x0000014 + +gUnk_0813AAB8:: @ 0813AAB8 + .incbin "baserom.gba", 0x13AAB8, 0x0000014 + +gUnk_0813AACC:: @ 0813AACC + .incbin "baserom.gba", 0x13AACC, 0x0000014 + +gUnk_0813AAE0:: @ 0813AAE0 + .incbin "baserom.gba", 0x13AAE0, 0x0000014 + +gUnk_0813AAF4:: @ 0813AAF4 + .incbin "baserom.gba", 0x13AAF4, 0x0000014 + +gUnk_0813AB08:: @ 0813AB08 + .incbin "baserom.gba", 0x13AB08, 0x0000014 + +gUnk_0813AB1C:: @ 0813AB1C + .incbin "baserom.gba", 0x13AB1C, 0x000003C + +gUnk_0813AB58:: @ 0813AB58 + .incbin "baserom.gba", 0x13AB58, 0x0000014 + +gUnk_0813AB6C:: @ 0813AB6C + .incbin "baserom.gba", 0x13AB6C, 0x0000014 + +gUnk_0813AB80:: @ 0813AB80 + .incbin "baserom.gba", 0x13AB80, 0x0000014 + +gUnk_0813AB94:: @ 0813AB94 + .incbin "baserom.gba", 0x13AB94, 0x0000014 + +gUnk_0813ABA8:: @ 0813ABA8 + .incbin "baserom.gba", 0x13ABA8, 0x0000014 + +gUnk_0813ABBC:: @ 0813ABBC + .incbin "baserom.gba", 0x13ABBC, 0x0000014 + +gUnk_0813ABD0:: @ 0813ABD0 + .incbin "baserom.gba", 0x13ABD0, 0x0000014 + +gUnk_0813ABE4:: @ 0813ABE4 + .incbin "baserom.gba", 0x13ABE4, 0x0000014 + +gUnk_0813ABF8:: @ 0813ABF8 + .incbin "baserom.gba", 0x13ABF8, 0x0000014 + +gUnk_0813AC0C:: @ 0813AC0C + .incbin "baserom.gba", 0x13AC0C, 0x0000014 + +gUnk_0813AC20:: @ 0813AC20 + .incbin "baserom.gba", 0x13AC20, 0x0000014 + +gUnk_0813AC34:: @ 0813AC34 + .incbin "baserom.gba", 0x13AC34, 0x0000014 + +gUnk_0813AC48:: @ 0813AC48 + .incbin "baserom.gba", 0x13AC48, 0x0000014 + +gUnk_0813AC5C:: @ 0813AC5C + .incbin "baserom.gba", 0x13AC5C, 0x0000014 + +gUnk_0813AC70:: @ 0813AC70 + .incbin "baserom.gba", 0x13AC70, 0x0000014 + +gUnk_0813AC84:: @ 0813AC84 + .incbin "baserom.gba", 0x13AC84, 0x0000014 + +gUnk_0813AC98:: @ 0813AC98 + .incbin "baserom.gba", 0x13AC98, 0x0000014 + +gUnk_0813ACAC:: @ 0813ACAC + .incbin "baserom.gba", 0x13ACAC, 0x0000014 + +gUnk_0813ACC0:: @ 0813ACC0 + .incbin "baserom.gba", 0x13ACC0, 0x0000014 + +gUnk_0813ACD4:: @ 0813ACD4 + .incbin "baserom.gba", 0x13ACD4, 0x0000014 + +gUnk_0813ACE8:: @ 0813ACE8 + .incbin "baserom.gba", 0x13ACE8, 0x0000014 + +gUnk_0813ACFC:: @ 0813ACFC + .incbin "baserom.gba", 0x13ACFC, 0x0000014 + +gUnk_0813AD10:: @ 0813AD10 + .incbin "baserom.gba", 0x13AD10, 0x0000014 + +gUnk_0813AD24:: @ 0813AD24 + .incbin "baserom.gba", 0x13AD24, 0x0000014 + +gUnk_0813AD38:: @ 0813AD38 + .incbin "baserom.gba", 0x13AD38, 0x0000014 + +gUnk_0813AD4C:: @ 0813AD4C + .incbin "baserom.gba", 0x13AD4C, 0x0000014 + +gUnk_0813AD60:: @ 0813AD60 + .incbin "baserom.gba", 0x13AD60, 0x0000014 + +gUnk_0813AD74:: @ 0813AD74 + .incbin "baserom.gba", 0x13AD74, 0x0000014 + +gUnk_0813AD88:: @ 0813AD88 + .incbin "baserom.gba", 0x13AD88, 0x0000064 + +gUnk_0813ADEC:: @ 0813ADEC + .incbin "baserom.gba", 0x13ADEC, 0x0000028 + +gUnk_0813AE14:: @ 0813AE14 + .incbin "baserom.gba", 0x13AE14, 0x00005F9 + +gUnk_0813B40D:: @ 0813B40D + .incbin "baserom.gba", 0x13B40D, 0x0002406 + +gUnk_0813D813:: @ 0813D813 + .incbin "baserom.gba", 0x13D813, 0x0000643 + +gUnk_0813DE56:: @ 0813DE56 + .incbin "baserom.gba", 0x13DE56, 0x0000168 + +gUnk_0813DFBE:: @ 0813DFBE + .incbin "baserom.gba", 0x13DFBE, 0x0000025 + +gUnk_0813DFE3:: @ 0813DFE3 + .incbin "baserom.gba", 0x13DFE3, 0x000021D + +gUnk_0813E200:: @ 0813E200 + .incbin "baserom.gba", 0x13E200, 0x0000608 + +gUnk_0813E808:: @ 0813E808 + .incbin "baserom.gba", 0x13E808, 0x00000F9 + +gUnk_0813E901:: @ 0813E901 + .incbin "baserom.gba", 0x13E901, 0x0000205 + +gUnk_0813EB06:: @ 0813EB06 + .incbin "baserom.gba", 0x13EB06, 0x00002E4 + +gUnk_0813EDEA:: @ 0813EDEA + .incbin "baserom.gba", 0x13EDEA, 0x0000208 + +gUnk_0813EFF2:: @ 0813EFF2 + .incbin "baserom.gba", 0x13EFF2, 0x000070F + +gUnk_0813F701:: @ 0813F701 + .incbin "baserom.gba", 0x13F701, 0x0000114 + +gUnk_0813F815:: @ 0813F815 + .incbin "baserom.gba", 0x13F815, 0x00006C3 + +gUnk_0813FED8:: @ 0813FED8 + .incbin "baserom.gba", 0x13FED8, 0x0000128 + +gUnk_08140000:: @ 08140000 + .incbin "baserom.gba", 0x140000, 0x0000001 + +gUnk_08140001:: @ 08140001 + .incbin "baserom.gba", 0x140001, 0x0000006 + +gUnk_08140007:: @ 08140007 + .incbin "baserom.gba", 0x140007, 0x0000001 + +gUnk_08140008:: @ 08140008 + .incbin "baserom.gba", 0x140008, 0x000000A + +gUnk_08140012:: @ 08140012 + .incbin "baserom.gba", 0x140012, 0x0000007 + +gUnk_08140019:: @ 08140019 + .incbin "baserom.gba", 0x140019, 0x0000001 + +gUnk_0814001A:: @ 0814001A + .incbin "baserom.gba", 0x14001A, 0x0000030 + +gUnk_0814004A:: @ 0814004A + .incbin "baserom.gba", 0x14004A, 0x0000010 + +gUnk_0814005A:: @ 0814005A + .incbin "baserom.gba", 0x14005A, 0x0000002 + +gUnk_0814005C:: @ 0814005C + .incbin "baserom.gba", 0x14005C, 0x0000002 + +gUnk_0814005E:: @ 0814005E + .incbin "baserom.gba", 0x14005E, 0x000000D + +gUnk_0814006B:: @ 0814006B + .incbin "baserom.gba", 0x14006B, 0x0000025 + +gUnk_08140090:: @ 08140090 + .incbin "baserom.gba", 0x140090, 0x000002E + +gUnk_081400BE:: @ 081400BE + .incbin "baserom.gba", 0x1400BE, 0x0000024 + +gUnk_081400E2:: @ 081400E2 + .incbin "baserom.gba", 0x1400E2, 0x000005E + +gUnk_08140140:: @ 08140140 + .incbin "baserom.gba", 0x140140, 0x0000083 + +gUnk_081401C3:: @ 081401C3 + .incbin "baserom.gba", 0x1401C3, 0x000003D + +gUnk_08140200:: @ 08140200 + .incbin "baserom.gba", 0x140200, 0x0000025 + +gUnk_08140225:: @ 08140225 + .incbin "baserom.gba", 0x140225, 0x00000AE + +gUnk_081402D3:: @ 081402D3 + .incbin "baserom.gba", 0x1402D3, 0x0000026 + +gUnk_081402F9:: @ 081402F9 + .incbin "baserom.gba", 0x1402F9, 0x0000007 + +gUnk_08140300:: @ 08140300 + .incbin "baserom.gba", 0x140300, 0x00000F4 + +gUnk_081403F4:: @ 081403F4 + .incbin "baserom.gba", 0x1403F4, 0x000000D + +gUnk_08140401:: @ 08140401 + .incbin "baserom.gba", 0x140401, 0x0000001 + +gUnk_08140402:: @ 08140402 + .incbin "baserom.gba", 0x140402, 0x0000062 + +gUnk_08140464:: @ 08140464 + .incbin "baserom.gba", 0x140464, 0x00000A1 + +gUnk_08140505:: @ 08140505 + .incbin "baserom.gba", 0x140505, 0x000017C + +gUnk_08140681:: @ 08140681 + .incbin "baserom.gba", 0x140681, 0x0000170 + +gUnk_081407F1:: @ 081407F1 + .incbin "baserom.gba", 0x1407F1, 0x0000016 + +gUnk_08140807:: @ 08140807 + .incbin "baserom.gba", 0x140807, 0x000000C + +gUnk_08140813:: @ 08140813 + .incbin "baserom.gba", 0x140813, 0x0000075 + +gUnk_08140888:: @ 08140888 + .incbin "baserom.gba", 0x140888, 0x0000075 + +gUnk_081408FD:: @ 081408FD + .incbin "baserom.gba", 0x1408FD, 0x0000106 + +gUnk_08140A03:: @ 08140A03 + .incbin "baserom.gba", 0x140A03, 0x00000E9 + +gUnk_08140AEC:: @ 08140AEC + .incbin "baserom.gba", 0x140AEC, 0x0000010 + +gUnk_08140AFC:: @ 08140AFC + .incbin "baserom.gba", 0x140AFC, 0x0000004 + +gUnk_08140B00:: @ 08140B00 + .incbin "baserom.gba", 0x140B00, 0x0000006 + +gUnk_08140B06:: @ 08140B06 + .incbin "baserom.gba", 0x140B06, 0x00000F1 + +gUnk_08140BF7:: @ 08140BF7 + .incbin "baserom.gba", 0x140BF7, 0x0000011 + +gUnk_08140C08:: @ 08140C08 + .incbin "baserom.gba", 0x140C08, 0x00000F0 + +gUnk_08140CF8:: @ 08140CF8 + .incbin "baserom.gba", 0x140CF8, 0x0000015 + +gUnk_08140D0D:: @ 08140D0D + .incbin "baserom.gba", 0x140D0D, 0x00000E9 + +gUnk_08140DF6:: @ 08140DF6 + .incbin "baserom.gba", 0x140DF6, 0x000010D + +gUnk_08140F03:: @ 08140F03 + .incbin "baserom.gba", 0x140F03, 0x0000004 + +gUnk_08140F07:: @ 08140F07 + .incbin "baserom.gba", 0x140F07, 0x0000002 + +gUnk_08140F09:: @ 08140F09 + .incbin "baserom.gba", 0x140F09, 0x0000007 + +gUnk_08140F10:: @ 08140F10 + .incbin "baserom.gba", 0x140F10, 0x00000F6 + +gUnk_08141006:: @ 08141006 + .incbin "baserom.gba", 0x141006, 0x0000110 + +gUnk_08141116:: @ 08141116 + .incbin "baserom.gba", 0x141116, 0x00000E6 + +gUnk_081411FC:: @ 081411FC + .incbin "baserom.gba", 0x1411FC, 0x0000005 + +gUnk_08141201:: @ 08141201 + .incbin "baserom.gba", 0x141201, 0x0000003 + +gUnk_08141204:: @ 08141204 + .incbin "baserom.gba", 0x141204, 0x0000101 + +gUnk_08141305:: @ 08141305 + .incbin "baserom.gba", 0x141305, 0x0000009 + +gUnk_0814130E:: @ 0814130E + .incbin "baserom.gba", 0x14130E, 0x000000B + +gUnk_08141319:: @ 08141319 + .incbin "baserom.gba", 0x141319, 0x00000E6 + +gUnk_081413FF:: @ 081413FF + .incbin "baserom.gba", 0x1413FF, 0x0000013 + +gUnk_08141412:: @ 08141412 + .incbin "baserom.gba", 0x141412, 0x00000F7 + +gUnk_08141509:: @ 08141509 + .incbin "baserom.gba", 0x141509, 0x0000001 + +gUnk_0814150A:: @ 0814150A + .incbin "baserom.gba", 0x14150A, 0x0000002 + +gUnk_0814150C:: @ 0814150C + .incbin "baserom.gba", 0x14150C, 0x0000004 + +gUnk_08141510:: @ 08141510 + .incbin "baserom.gba", 0x141510, 0x0000002 + +gUnk_08141512:: @ 08141512 + .incbin "baserom.gba", 0x141512, 0x0000002 + +gUnk_08141514:: @ 08141514 + .incbin "baserom.gba", 0x141514, 0x00000DD + +gUnk_081415F1:: @ 081415F1 + .incbin "baserom.gba", 0x1415F1, 0x000001A + +gUnk_0814160B:: @ 0814160B + .incbin "baserom.gba", 0x14160B, 0x0000002 + +gUnk_0814160D:: @ 0814160D + .incbin "baserom.gba", 0x14160D, 0x0000103 + +gUnk_08141710:: @ 08141710 + .incbin "baserom.gba", 0x141710, 0x0000005 + +gUnk_08141715:: @ 08141715 + .incbin "baserom.gba", 0x141715, 0x0000005 + +gUnk_0814171A:: @ 0814171A + .incbin "baserom.gba", 0x14171A, 0x0000001 + +gUnk_0814171B:: @ 0814171B + .incbin "baserom.gba", 0x14171B, 0x000000A + +gUnk_08141725:: @ 08141725 + .incbin "baserom.gba", 0x141725, 0x00000E2 + +gUnk_08141807:: @ 08141807 + .incbin "baserom.gba", 0x141807, 0x0000017 + +gUnk_0814181E:: @ 0814181E + .incbin "baserom.gba", 0x14181E, 0x00001F8 + +gUnk_08141A16:: @ 08141A16 + .incbin "baserom.gba", 0x141A16, 0x0000007 + +gUnk_08141A1D:: @ 08141A1D + .incbin "baserom.gba", 0x141A1D, 0x00000FB + +gUnk_08141B18:: @ 08141B18 + .incbin "baserom.gba", 0x141B18, 0x0000001 + +gUnk_08141B19:: @ 08141B19 + .incbin "baserom.gba", 0x141B19, 0x0000001 + +gUnk_08141B1A:: @ 08141B1A + .incbin "baserom.gba", 0x141B1A, 0x00000FA + +gUnk_08141C14:: @ 08141C14 + .incbin "baserom.gba", 0x141C14, 0x0000004 + +gUnk_08141C18:: @ 08141C18 + .incbin "baserom.gba", 0x141C18, 0x0000007 + +gUnk_08141C1F:: @ 08141C1F + .incbin "baserom.gba", 0x141C1F, 0x0000001 + +gUnk_08141C20:: @ 08141C20 + .incbin "baserom.gba", 0x141C20, 0x0000003 + +gUnk_08141C23:: @ 08141C23 + .incbin "baserom.gba", 0x141C23, 0x00000F2 + +gUnk_08141D15:: @ 08141D15 + .incbin "baserom.gba", 0x141D15, 0x0000004 + +gUnk_08141D19:: @ 08141D19 + .incbin "baserom.gba", 0x141D19, 0x0000007 + +gUnk_08141D20:: @ 08141D20 + .incbin "baserom.gba", 0x141D20, 0x0000002 + +gUnk_08141D22:: @ 08141D22 + .incbin "baserom.gba", 0x141D22, 0x0000001 + +gUnk_08141D23:: @ 08141D23 + .incbin "baserom.gba", 0x141D23, 0x0000001 + +gUnk_08141D24:: @ 08141D24 + .incbin "baserom.gba", 0x141D24, 0x00000FC + +gUnk_08141E20:: @ 08141E20 + .incbin "baserom.gba", 0x141E20, 0x0000001 + +gUnk_08141E21:: @ 08141E21 + .incbin "baserom.gba", 0x141E21, 0x0000005 + +gUnk_08141E26:: @ 08141E26 + .incbin "baserom.gba", 0x141E26, 0x00000FB + +gUnk_08141F21:: @ 08141F21 + .incbin "baserom.gba", 0x141F21, 0x0000003 + +gUnk_08141F24:: @ 08141F24 + .incbin "baserom.gba", 0x141F24, 0x0000005 + +gUnk_08141F29:: @ 08141F29 + .incbin "baserom.gba", 0x141F29, 0x00000F4 + +gUnk_0814201D:: @ 0814201D + .incbin "baserom.gba", 0x14201D, 0x0000007 + +gUnk_08142024:: @ 08142024 + .incbin "baserom.gba", 0x142024, 0x0000002 + +gUnk_08142026:: @ 08142026 + .incbin "baserom.gba", 0x142026, 0x0000001 + +gUnk_08142027:: @ 08142027 + .incbin "baserom.gba", 0x142027, 0x0000106 + +gUnk_0814212D:: @ 0814212D + .incbin "baserom.gba", 0x14212D, 0x00000C1 + +gUnk_081421EE:: @ 081421EE + .incbin "baserom.gba", 0x1421EE, 0x000003D + +gUnk_0814222B:: @ 0814222B + .incbin "baserom.gba", 0x14222B, 0x0000104 + +gUnk_0814232F:: @ 0814232F + .incbin "baserom.gba", 0x14232F, 0x0000002 + +gUnk_08142331:: @ 08142331 + .incbin "baserom.gba", 0x142331, 0x0000001 + +gUnk_08142332:: @ 08142332 + .incbin "baserom.gba", 0x142332, 0x00000F9 + +gUnk_0814242B:: @ 0814242B + .incbin "baserom.gba", 0x14242B, 0x0000005 + +gUnk_08142430:: @ 08142430 + .incbin "baserom.gba", 0x142430, 0x00000F2 + +gUnk_08142522:: @ 08142522 + .incbin "baserom.gba", 0x142522, 0x000000F + +gUnk_08142531:: @ 08142531 + .incbin "baserom.gba", 0x142531, 0x0000102 + +gUnk_08142633:: @ 08142633 + .incbin "baserom.gba", 0x142633, 0x00000F3 + +gUnk_08142726:: @ 08142726 + .incbin "baserom.gba", 0x142726, 0x000010F + +gUnk_08142835:: @ 08142835 + .incbin "baserom.gba", 0x142835, 0x0000208 + +gUnk_08142A3D:: @ 08142A3D + .incbin "baserom.gba", 0x142A3D, 0x00000E1 + +gUnk_08142B1E:: @ 08142B1E + .incbin "baserom.gba", 0x142B1E, 0x0000015 + +gUnk_08142B33:: @ 08142B33 + .incbin "baserom.gba", 0x142B33, 0x000030C + +gUnk_08142E3F:: @ 08142E3F + .incbin "baserom.gba", 0x142E3F, 0x00001D9 + +gUnk_08143018:: @ 08143018 + .incbin "baserom.gba", 0x143018, 0x0000030 + +gUnk_08143048:: @ 08143048 + .incbin "baserom.gba", 0x143048, 0x00001F3 + +gUnk_0814323B:: @ 0814323B + .incbin "baserom.gba", 0x14323B, 0x00000F8 + +gUnk_08143333:: @ 08143333 + .incbin "baserom.gba", 0x143333, 0x0000006 + +gUnk_08143339:: @ 08143339 + .incbin "baserom.gba", 0x143339, 0x00000D7 + +gUnk_08143410:: @ 08143410 + .incbin "baserom.gba", 0x143410, 0x000000D + +gUnk_0814341D:: @ 0814341D + .incbin "baserom.gba", 0x14341D, 0x0000433 + +gUnk_08143850:: @ 08143850 + .incbin "baserom.gba", 0x143850, 0x0000514 + +gUnk_08143D64:: @ 08143D64 + .incbin "baserom.gba", 0x143D64, 0x00003D1 + +gUnk_08144135:: @ 08144135 + .incbin "baserom.gba", 0x144135, 0x000360C + +gUnk_08147741:: @ 08147741 + .incbin "baserom.gba", 0x147741, 0x00064AC + +gUnk_0814DBED:: @ 0814DBED + .incbin "baserom.gba", 0x14DBED, 0x000012A + +gUnk_0814DD17:: @ 0814DD17 + .incbin "baserom.gba", 0x14DD17, 0x00004C0 + +gUnk_0814E1D7:: @ 0814E1D7 + .incbin "baserom.gba", 0x14E1D7, 0x0000031 + +gUnk_0814E208:: @ 0814E208 + .incbin "baserom.gba", 0x14E208, 0x0000300 + +gUnk_0814E508:: @ 0814E508 + .incbin "baserom.gba", 0x14E508, 0x00003EF + +gUnk_0814E8F7:: @ 0814E8F7 + .incbin "baserom.gba", 0x14E8F7, 0x0000309 + +gUnk_0814EC00:: @ 0814EC00 + .incbin "baserom.gba", 0x14EC00, 0x00001D7 + +gUnk_0814EDD7:: @ 0814EDD7 + .incbin "baserom.gba", 0x14EDD7, 0x000012A + +gUnk_0814EF01:: @ 0814EF01 + .incbin "baserom.gba", 0x14EF01, 0x0000002 + +gUnk_0814EF03:: @ 0814EF03 + .incbin "baserom.gba", 0x14EF03, 0x0000018 + +gUnk_0814EF1B:: @ 0814EF1B + .incbin "baserom.gba", 0x14EF1B, 0x00000E6 + +gUnk_0814F001:: @ 0814F001 + .incbin "baserom.gba", 0x14F001, 0x00000DA + +gUnk_0814F0DB:: @ 0814F0DB + .incbin "baserom.gba", 0x14F0DB, 0x0000148 + +gUnk_0814F223:: @ 0814F223 + .incbin "baserom.gba", 0x14F223, 0x00003CC + +gUnk_0814F5EF:: @ 0814F5EF + .incbin "baserom.gba", 0x14F5EF, 0x0000009 + +gUnk_0814F5F8:: @ 0814F5F8 + .incbin "baserom.gba", 0x14F5F8, 0x0000208 + +gUnk_0814F800:: @ 0814F800 + .incbin "baserom.gba", 0x14F800, 0x0000018 + +gUnk_0814F818:: @ 0814F818 + .incbin "baserom.gba", 0x14F818, 0x00000C9 + +gUnk_0814F8E1:: @ 0814F8E1 + .incbin "baserom.gba", 0x14F8E1, 0x0000010 + +gUnk_0814F8F1:: @ 0814F8F1 + .incbin "baserom.gba", 0x14F8F1, 0x0000007 + +gUnk_0814F8F8:: @ 0814F8F8 + .incbin "baserom.gba", 0x14F8F8, 0x00001F0 + +gUnk_0814FAE8:: @ 0814FAE8 + .incbin "baserom.gba", 0x14FAE8, 0x00000F2 + +gUnk_0814FBDA:: @ 0814FBDA + .incbin "baserom.gba", 0x14FBDA, 0x0000104 + +gUnk_0814FCDE:: @ 0814FCDE + .incbin "baserom.gba", 0x14FCDE, 0x000001A + +gUnk_0814FCF8:: @ 0814FCF8 + .incbin "baserom.gba", 0x14FCF8, 0x00000F6 + +gUnk_0814FDEE:: @ 0814FDEE + .incbin "baserom.gba", 0x14FDEE, 0x000000C + +gUnk_0814FDFA:: @ 0814FDFA + .incbin "baserom.gba", 0x14FDFA, 0x0000020 + +gUnk_0814FE1A:: @ 0814FE1A + .incbin "baserom.gba", 0x14FE1A, 0x0000020 + +gUnk_0814FE3A:: @ 0814FE3A + .incbin "baserom.gba", 0x14FE3A, 0x00000B2 + +gUnk_0814FEEC:: @ 0814FEEC + .incbin "baserom.gba", 0x14FEEC, 0x00000E2 + +gUnk_0814FFCE:: @ 0814FFCE + .incbin "baserom.gba", 0x14FFCE, 0x0000032 + +gUnk_08150000:: @ 08150000 + .incbin "baserom.gba", 0x150000, 0x0000003 + +gUnk_08150003:: @ 08150003 + .incbin "baserom.gba", 0x150003, 0x0000007 + +gUnk_0815000A:: @ 0815000A + .incbin "baserom.gba", 0x15000A, 0x0000009 + +gUnk_08150013:: @ 08150013 + .incbin "baserom.gba", 0x150013, 0x0000007 + +gUnk_0815001A:: @ 0815001A + .incbin "baserom.gba", 0x15001A, 0x0000010 + +gUnk_0815002A:: @ 0815002A + .incbin "baserom.gba", 0x15002A, 0x000000A + +gUnk_08150034:: @ 08150034 + .incbin "baserom.gba", 0x150034, 0x0000008 + +gUnk_0815003C:: @ 0815003C + .incbin "baserom.gba", 0x15003C, 0x0000004 + +gUnk_08150040:: @ 08150040 + .incbin "baserom.gba", 0x150040, 0x0000016 + +gUnk_08150056:: @ 08150056 + .incbin "baserom.gba", 0x150056, 0x000008F + +gUnk_081500E5:: @ 081500E5 + .incbin "baserom.gba", 0x1500E5, 0x0000006 + +gUnk_081500EB:: @ 081500EB + .incbin "baserom.gba", 0x1500EB, 0x000001F + +gUnk_0815010A:: @ 0815010A + .incbin "baserom.gba", 0x15010A, 0x0000028 + +gUnk_08150132:: @ 08150132 + .incbin "baserom.gba", 0x150132, 0x000000E + +gUnk_08150140:: @ 08150140 + .incbin "baserom.gba", 0x150140, 0x00001C0 + +gUnk_08150300:: @ 08150300 + .incbin "baserom.gba", 0x150300, 0x000001D + +gUnk_0815031D:: @ 0815031D + .incbin "baserom.gba", 0x15031D, 0x00000E4 + +gUnk_08150401:: @ 08150401 + .incbin "baserom.gba", 0x150401, 0x0000001 + +gUnk_08150402:: @ 08150402 + .incbin "baserom.gba", 0x150402, 0x000001B + +gUnk_0815041D:: @ 0815041D + .incbin "baserom.gba", 0x15041D, 0x0000027 + +gUnk_08150444:: @ 08150444 + .incbin "baserom.gba", 0x150444, 0x00001A6 + +gUnk_081505EA:: @ 081505EA + .incbin "baserom.gba", 0x1505EA, 0x0000017 + +gUnk_08150601:: @ 08150601 + .incbin "baserom.gba", 0x150601, 0x00000AD + +gUnk_081506AE:: @ 081506AE + .incbin "baserom.gba", 0x1506AE, 0x0000125 + +gUnk_081507D3:: @ 081507D3 + .incbin "baserom.gba", 0x1507D3, 0x0000028 + +gUnk_081507FB:: @ 081507FB + .incbin "baserom.gba", 0x1507FB, 0x0000009 + +gUnk_08150804:: @ 08150804 + .incbin "baserom.gba", 0x150804, 0x0000002 + +gUnk_08150806:: @ 08150806 + .incbin "baserom.gba", 0x150806, 0x000000E + +gUnk_08150814:: @ 08150814 + .incbin "baserom.gba", 0x150814, 0x00000DE + +gUnk_081508F2:: @ 081508F2 + .incbin "baserom.gba", 0x1508F2, 0x000000B + +gUnk_081508FD:: @ 081508FD + .incbin "baserom.gba", 0x1508FD, 0x000010F + +gUnk_08150A0C:: @ 08150A0C + .incbin "baserom.gba", 0x150A0C, 0x00000E6 + +gUnk_08150AF2:: @ 08150AF2 + .incbin "baserom.gba", 0x150AF2, 0x0000018 + +gUnk_08150B0A:: @ 08150B0A + .incbin "baserom.gba", 0x150B0A, 0x0000005 + +gUnk_08150B0F:: @ 08150B0F + .incbin "baserom.gba", 0x150B0F, 0x000000C + +gUnk_08150B1B:: @ 08150B1B + .incbin "baserom.gba", 0x150B1B, 0x00002E6 + +gUnk_08150E01:: @ 08150E01 + .incbin "baserom.gba", 0x150E01, 0x00000EE + +gUnk_08150EEF:: @ 08150EEF + .incbin "baserom.gba", 0x150EEF, 0x000001D + +gUnk_08150F0C:: @ 08150F0C + .incbin "baserom.gba", 0x150F0C, 0x00000EB + +gUnk_08150FF7:: @ 08150FF7 + .incbin "baserom.gba", 0x150FF7, 0x000000D + +gUnk_08151004:: @ 08151004 + .incbin "baserom.gba", 0x151004, 0x00000FC + +gUnk_08151100:: @ 08151100 + .incbin "baserom.gba", 0x151100, 0x0000007 + +gUnk_08151107:: @ 08151107 + .incbin "baserom.gba", 0x151107, 0x00000F2 + +gUnk_081511F9:: @ 081511F9 + .incbin "baserom.gba", 0x1511F9, 0x000000F + +gUnk_08151208:: @ 08151208 + .incbin "baserom.gba", 0x151208, 0x0000004 + +gUnk_0815120C:: @ 0815120C + .incbin "baserom.gba", 0x15120C, 0x00000FB + +gUnk_08151307:: @ 08151307 + .incbin "baserom.gba", 0x151307, 0x0000007 + +gUnk_0815130E:: @ 0815130E + .incbin "baserom.gba", 0x15130E, 0x00000ED + +gUnk_081513FB:: @ 081513FB + .incbin "baserom.gba", 0x1513FB, 0x000011D + +gUnk_08151518:: @ 08151518 + .incbin "baserom.gba", 0x151518, 0x0000054 + +gUnk_0815156C:: @ 0815156C + .incbin "baserom.gba", 0x15156C, 0x00000A0 + +gUnk_0815160C:: @ 0815160C + .incbin "baserom.gba", 0x15160C, 0x0000004 + +gUnk_08151610:: @ 08151610 + .incbin "baserom.gba", 0x151610, 0x0000007 + +gUnk_08151617:: @ 08151617 + .incbin "baserom.gba", 0x151617, 0x00000EC + +gUnk_08151703:: @ 08151703 + .incbin "baserom.gba", 0x151703, 0x0000010 + +gUnk_08151713:: @ 08151713 + .incbin "baserom.gba", 0x151713, 0x0000003 + +gUnk_08151716:: @ 08151716 + .incbin "baserom.gba", 0x151716, 0x000000F + +gUnk_08151725:: @ 08151725 + .incbin "baserom.gba", 0x151725, 0x00000ED + +gUnk_08151812:: @ 08151812 + .incbin "baserom.gba", 0x151812, 0x0000001 + +gUnk_08151813:: @ 08151813 + .incbin "baserom.gba", 0x151813, 0x0000002 + +gUnk_08151815:: @ 08151815 + .incbin "baserom.gba", 0x151815, 0x0000010 + +gUnk_08151825:: @ 08151825 + .incbin "baserom.gba", 0x151825, 0x00000EA + +gUnk_0815190F:: @ 0815190F + .incbin "baserom.gba", 0x15190F, 0x0000006 + +gUnk_08151915:: @ 08151915 + .incbin "baserom.gba", 0x151915, 0x00000FA + +gUnk_08151A0F:: @ 08151A0F + .incbin "baserom.gba", 0x151A0F, 0x000000B + +gUnk_08151A1A:: @ 08151A1A + .incbin "baserom.gba", 0x151A1A, 0x00000FB + +gUnk_08151B15:: @ 08151B15 + .incbin "baserom.gba", 0x151B15, 0x0000004 + +gUnk_08151B19:: @ 08151B19 + .incbin "baserom.gba", 0x151B19, 0x0000004 + +gUnk_08151B1D:: @ 08151B1D + .incbin "baserom.gba", 0x151B1D, 0x0000002 + +gUnk_08151B1F:: @ 08151B1F + .incbin "baserom.gba", 0x151B1F, 0x00000E9 + +gUnk_08151C08:: @ 08151C08 + .incbin "baserom.gba", 0x151C08, 0x0000015 + +gUnk_08151C1D:: @ 08151C1D + .incbin "baserom.gba", 0x151C1D, 0x0000004 + +gUnk_08151C21:: @ 08151C21 + .incbin "baserom.gba", 0x151C21, 0x0000004 + +gUnk_08151C25:: @ 08151C25 + .incbin "baserom.gba", 0x151C25, 0x00000F3 + +gUnk_08151D18:: @ 08151D18 + .incbin "baserom.gba", 0x151D18, 0x000000D + +gUnk_08151D25:: @ 08151D25 + .incbin "baserom.gba", 0x151D25, 0x00000FC + +gUnk_08151E21:: @ 08151E21 + .incbin "baserom.gba", 0x151E21, 0x0000005 + +gUnk_08151E26:: @ 08151E26 + .incbin "baserom.gba", 0x151E26, 0x00000FA + +gUnk_08151F20:: @ 08151F20 + .incbin "baserom.gba", 0x151F20, 0x0000003 + +gUnk_08151F23:: @ 08151F23 + .incbin "baserom.gba", 0x151F23, 0x0000002 + +gUnk_08151F25:: @ 08151F25 + .incbin "baserom.gba", 0x151F25, 0x00000FF + +gUnk_08152024:: @ 08152024 + .incbin "baserom.gba", 0x152024, 0x0000003 + +gUnk_08152027:: @ 08152027 + .incbin "baserom.gba", 0x152027, 0x0000001 + +gUnk_08152028:: @ 08152028 + .incbin "baserom.gba", 0x152028, 0x0000007 + +gUnk_0815202F:: @ 0815202F + .incbin "baserom.gba", 0x15202F, 0x0000027 + +gUnk_08152056:: @ 08152056 + .incbin "baserom.gba", 0x152056, 0x00000C3 + +gUnk_08152119:: @ 08152119 + .incbin "baserom.gba", 0x152119, 0x0000001 + +gUnk_0815211A:: @ 0815211A + .incbin "baserom.gba", 0x15211A, 0x0000009 + +gUnk_08152123:: @ 08152123 + .incbin "baserom.gba", 0x152123, 0x0000003 + +gUnk_08152126:: @ 08152126 + .incbin "baserom.gba", 0x152126, 0x0000009 + +gUnk_0815212F:: @ 0815212F + .incbin "baserom.gba", 0x15212F, 0x0000001 + +gUnk_08152130:: @ 08152130 + .incbin "baserom.gba", 0x152130, 0x00000E1 + +gUnk_08152211:: @ 08152211 + .incbin "baserom.gba", 0x152211, 0x0000007 + +gUnk_08152218:: @ 08152218 + .incbin "baserom.gba", 0x152218, 0x0000011 + +gUnk_08152229:: @ 08152229 + .incbin "baserom.gba", 0x152229, 0x0000008 + +gUnk_08152231:: @ 08152231 + .incbin "baserom.gba", 0x152231, 0x00000EF + +gUnk_08152320:: @ 08152320 + .incbin "baserom.gba", 0x152320, 0x000000C + +gUnk_0815232C:: @ 0815232C + .incbin "baserom.gba", 0x15232C, 0x0000005 + +gUnk_08152331:: @ 08152331 + .incbin "baserom.gba", 0x152331, 0x00000CD + +gUnk_081523FE:: @ 081523FE + .incbin "baserom.gba", 0x1523FE, 0x000002B + +gUnk_08152429:: @ 08152429 + .incbin "baserom.gba", 0x152429, 0x00000EE + +gUnk_08152517:: @ 08152517 + .incbin "baserom.gba", 0x152517, 0x0000126 + +gUnk_0815263D:: @ 0815263D + .incbin "baserom.gba", 0x15263D, 0x00000F8 + +gUnk_08152735:: @ 08152735 + .incbin "baserom.gba", 0x152735, 0x000030B + +gUnk_08152A40:: @ 08152A40 + .incbin "baserom.gba", 0x152A40, 0x00000CC + +gUnk_08152B0C:: @ 08152B0C + .incbin "baserom.gba", 0x152B0C, 0x0000027 + +gUnk_08152B33:: @ 08152B33 + .incbin "baserom.gba", 0x152B33, 0x00002E3 + +gUnk_08152E16:: @ 08152E16 + .incbin "baserom.gba", 0x152E16, 0x000012F + +gUnk_08152F45:: @ 08152F45 + .incbin "baserom.gba", 0x152F45, 0x0000A22 + +gUnk_08153967:: @ 08153967 + .incbin "baserom.gba", 0x153967, 0x00001EC + +gUnk_08153B53:: @ 08153B53 + .incbin "baserom.gba", 0x153B53, 0x0000BD3 + +gUnk_08154726:: @ 08154726 + .incbin "baserom.gba", 0x154726, 0x0001E50 + +gUnk_08156576:: @ 08156576 + .incbin "baserom.gba", 0x156576, 0x0000333 + +gUnk_081568A9:: @ 081568A9 + .incbin "baserom.gba", 0x1568A9, 0x00000FE + +gUnk_081569A7:: @ 081569A7 + .incbin "baserom.gba", 0x1569A7, 0x0001BDE + +gUnk_08158585:: @ 08158585 + .incbin "baserom.gba", 0x158585, 0x0002B24 + +gUnk_0815B0A9:: @ 0815B0A9 + .incbin "baserom.gba", 0x15B0A9, 0x0001251 + +gUnk_0815C2FA:: @ 0815C2FA + .incbin "baserom.gba", 0x15C2FA, 0x0002101 + +gUnk_0815E3FB:: @ 0815E3FB + .incbin "baserom.gba", 0x15E3FB, 0x0000CFD + +gUnk_0815F0F8:: @ 0815F0F8 + .incbin "baserom.gba", 0x15F0F8, 0x0000AF5 + +gUnk_0815FBED:: @ 0815FBED + .incbin "baserom.gba", 0x15FBED, 0x0000222 + +gUnk_0815FE0F:: @ 0815FE0F + .incbin "baserom.gba", 0x15FE0F, 0x00001F1 + +gUnk_08160000:: @ 08160000 + .incbin "baserom.gba", 0x160000, 0x0000009 + +gUnk_08160009:: @ 08160009 + .incbin "baserom.gba", 0x160009, 0x00000B8 + +gUnk_081600C1:: @ 081600C1 + .incbin "baserom.gba", 0x1600C1, 0x0000012 + +gUnk_081600D3:: @ 081600D3 + .incbin "baserom.gba", 0x1600D3, 0x000000C + +gUnk_081600DF:: @ 081600DF + .incbin "baserom.gba", 0x1600DF, 0x0000005 + +gUnk_081600E4:: @ 081600E4 + .incbin "baserom.gba", 0x1600E4, 0x0000224 + +gUnk_08160308:: @ 08160308 + .incbin "baserom.gba", 0x160308, 0x000009D + +gUnk_081603A5:: @ 081603A5 + .incbin "baserom.gba", 0x1603A5, 0x000006A + +gUnk_0816040F:: @ 0816040F + .incbin "baserom.gba", 0x16040F, 0x00004DD + +gUnk_081608EC:: @ 081608EC + .incbin "baserom.gba", 0x1608EC, 0x0000118 + +gUnk_08160A04:: @ 08160A04 + .incbin "baserom.gba", 0x160A04, 0x0000104 + +gUnk_08160B08:: @ 08160B08 + .incbin "baserom.gba", 0x160B08, 0x00001EB + +gUnk_08160CF3:: @ 08160CF3 + .incbin "baserom.gba", 0x160CF3, 0x000020E + +gUnk_08160F01:: @ 08160F01 + .incbin "baserom.gba", 0x160F01, 0x0000002 + +gUnk_08160F03:: @ 08160F03 + .incbin "baserom.gba", 0x160F03, 0x0000006 + +gUnk_08160F09:: @ 08160F09 + .incbin "baserom.gba", 0x160F09, 0x0000105 + +gUnk_0816100E:: @ 0816100E + .incbin "baserom.gba", 0x16100E, 0x00000EF + +gUnk_081610FD:: @ 081610FD + .incbin "baserom.gba", 0x1610FD, 0x0000007 + +gUnk_08161104:: @ 08161104 + .incbin "baserom.gba", 0x161104, 0x00000F8 + +gUnk_081611FC:: @ 081611FC + .incbin "baserom.gba", 0x1611FC, 0x000002D + +gUnk_08161229:: @ 08161229 + .incbin "baserom.gba", 0x161229, 0x000002B + +gUnk_08161254:: @ 08161254 + .incbin "baserom.gba", 0x161254, 0x0000097 + +gUnk_081612EB:: @ 081612EB + .incbin "baserom.gba", 0x1612EB, 0x000000F + +gUnk_081612FA:: @ 081612FA + .incbin "baserom.gba", 0x1612FA, 0x0000006 + +gUnk_08161300:: @ 08161300 + .incbin "baserom.gba", 0x161300, 0x00000E2 + +gUnk_081613E2:: @ 081613E2 + .incbin "baserom.gba", 0x1613E2, 0x0000041 + +gUnk_08161423:: @ 08161423 + .incbin "baserom.gba", 0x161423, 0x00002E8 + +gUnk_0816170B:: @ 0816170B + .incbin "baserom.gba", 0x16170B, 0x00000FD + +gUnk_08161808:: @ 08161808 + .incbin "baserom.gba", 0x161808, 0x0000006 + +gUnk_0816180E:: @ 0816180E + .incbin "baserom.gba", 0x16180E, 0x000000B + +gUnk_08161819:: @ 08161819 + .incbin "baserom.gba", 0x161819, 0x00000F2 + +gUnk_0816190B:: @ 0816190B + .incbin "baserom.gba", 0x16190B, 0x0000007 + +gUnk_08161912:: @ 08161912 + .incbin "baserom.gba", 0x161912, 0x0000102 + +gUnk_08161A14:: @ 08161A14 + .incbin "baserom.gba", 0x161A14, 0x0000002 + +gUnk_08161A16:: @ 08161A16 + .incbin "baserom.gba", 0x161A16, 0x000000A + +gUnk_08161A20:: @ 08161A20 + .incbin "baserom.gba", 0x161A20, 0x00000EC + +gUnk_08161B0C:: @ 08161B0C + .incbin "baserom.gba", 0x161B0C, 0x0000003 + +gUnk_08161B0F:: @ 08161B0F + .incbin "baserom.gba", 0x161B0F, 0x0000009 + +gUnk_08161B18:: @ 08161B18 + .incbin "baserom.gba", 0x161B18, 0x0000005 + +gUnk_08161B1D:: @ 08161B1D + .incbin "baserom.gba", 0x161B1D, 0x0000007 + +gUnk_08161B24:: @ 08161B24 + .incbin "baserom.gba", 0x161B24, 0x00000AC + +gUnk_08161BD0:: @ 08161BD0 + .incbin "baserom.gba", 0x161BD0, 0x000004F + +gUnk_08161C1F:: @ 08161C1F + .incbin "baserom.gba", 0x161C1F, 0x00000FB + +gUnk_08161D1A:: @ 08161D1A + .incbin "baserom.gba", 0x161D1A, 0x000001B + +gUnk_08161D35:: @ 08161D35 + .incbin "baserom.gba", 0x161D35, 0x00000CB + +gUnk_08161E00:: @ 08161E00 + .incbin "baserom.gba", 0x161E00, 0x0000017 + +gUnk_08161E17:: @ 08161E17 + .incbin "baserom.gba", 0x161E17, 0x00000D9 + +gUnk_08161EF0:: @ 08161EF0 + .incbin "baserom.gba", 0x161EF0, 0x000001D + +gUnk_08161F0D:: @ 08161F0D + .incbin "baserom.gba", 0x161F0D, 0x0000011 + +gUnk_08161F1E:: @ 08161F1E + .incbin "baserom.gba", 0x161F1E, 0x0000004 + +gUnk_08161F22:: @ 08161F22 + .incbin "baserom.gba", 0x161F22, 0x0000006 + +gUnk_08161F28:: @ 08161F28 + .incbin "baserom.gba", 0x161F28, 0x00000F5 + +gUnk_0816201D:: @ 0816201D + .incbin "baserom.gba", 0x16201D, 0x0000008 + +gUnk_08162025:: @ 08162025 + .incbin "baserom.gba", 0x162025, 0x0000005 + +gUnk_0816202A:: @ 0816202A + .incbin "baserom.gba", 0x16202A, 0x0000100 + +gUnk_0816212A:: @ 0816212A + .incbin "baserom.gba", 0x16212A, 0x00000ED + +gUnk_08162217:: @ 08162217 + .incbin "baserom.gba", 0x162217, 0x0000017 + +gUnk_0816222E:: @ 0816222E + .incbin "baserom.gba", 0x16222E, 0x00000F5 + +gUnk_08162323:: @ 08162323 + .incbin "baserom.gba", 0x162323, 0x0000001 + +gUnk_08162324:: @ 08162324 + .incbin "baserom.gba", 0x162324, 0x0000005 + +gUnk_08162329:: @ 08162329 + .incbin "baserom.gba", 0x162329, 0x0000004 + +gUnk_0816232D:: @ 0816232D + .incbin "baserom.gba", 0x16232D, 0x0000002 + +gUnk_0816232F:: @ 0816232F + .incbin "baserom.gba", 0x16232F, 0x0000002 + +gUnk_08162331:: @ 08162331 + .incbin "baserom.gba", 0x162331, 0x00001E9 + +gUnk_0816251A:: @ 0816251A + .incbin "baserom.gba", 0x16251A, 0x0000014 + +gUnk_0816252E:: @ 0816252E + .incbin "baserom.gba", 0x16252E, 0x0000106 + +gUnk_08162634:: @ 08162634 + .incbin "baserom.gba", 0x162634, 0x0000408 + +gUnk_08162A3C:: @ 08162A3C + .incbin "baserom.gba", 0x162A3C, 0x00000FD + +gUnk_08162B39:: @ 08162B39 + .incbin "baserom.gba", 0x162B39, 0x0000309 + +gUnk_08162E42:: @ 08162E42 + .incbin "baserom.gba", 0x162E42, 0x0000200 + +gUnk_08163042:: @ 08163042 + .incbin "baserom.gba", 0x163042, 0x00000EF + +gUnk_08163131:: @ 08163131 + .incbin "baserom.gba", 0x163131, 0x0000013 + +gUnk_08163144:: @ 08163144 + .incbin "baserom.gba", 0x163144, 0x00010BD + +gUnk_08164201:: @ 08164201 + .incbin "baserom.gba", 0x164201, 0x0001315 + +gUnk_08165516:: @ 08165516 + .incbin "baserom.gba", 0x165516, 0x000015F + +gUnk_08165675:: @ 08165675 + .incbin "baserom.gba", 0x165675, 0x0000BA8 + +gUnk_0816621D:: @ 0816621D + .incbin "baserom.gba", 0x16621D, 0x0001014 + +gUnk_08167231:: @ 08167231 + .incbin "baserom.gba", 0x167231, 0x0003DFE + +gUnk_0816B02F:: @ 0816B02F + .incbin "baserom.gba", 0x16B02F, 0x00037D2 + +gUnk_0816E801:: @ 0816E801 + .incbin "baserom.gba", 0x16E801, 0x0000523 + +gUnk_0816ED24:: @ 0816ED24 + .incbin "baserom.gba", 0x16ED24, 0x00002A1 + +gUnk_0816EFC5:: @ 0816EFC5 + .incbin "baserom.gba", 0x16EFC5, 0x0000232 + +gUnk_0816F1F7:: @ 0816F1F7 + .incbin "baserom.gba", 0x16F1F7, 0x00005DD + +gUnk_0816F7D4:: @ 0816F7D4 + .incbin "baserom.gba", 0x16F7D4, 0x000001C + +gUnk_0816F7F0:: @ 0816F7F0 + .incbin "baserom.gba", 0x16F7F0, 0x0000603 + +gUnk_0816FDF3:: @ 0816FDF3 + .incbin "baserom.gba", 0x16FDF3, 0x0000105 + +gUnk_0816FEF8:: @ 0816FEF8 + .incbin "baserom.gba", 0x16FEF8, 0x0000108 + +gUnk_08170000:: @ 08170000 + .incbin "baserom.gba", 0x170000, 0x000000D + +gUnk_0817000D:: @ 0817000D + .incbin "baserom.gba", 0x17000D, 0x0000005 + +gUnk_08170012:: @ 08170012 + .incbin "baserom.gba", 0x170012, 0x0000087 + +gUnk_08170099:: @ 08170099 + .incbin "baserom.gba", 0x170099, 0x0000051 + +gUnk_081700EA:: @ 081700EA + .incbin "baserom.gba", 0x1700EA, 0x000001D + +gUnk_08170107:: @ 08170107 + .incbin "baserom.gba", 0x170107, 0x0000039 + +gUnk_08170140:: @ 08170140 + .incbin "baserom.gba", 0x170140, 0x00001BA + +gUnk_081702FA:: @ 081702FA + .incbin "baserom.gba", 0x1702FA, 0x00000F7 + +gUnk_081703F1:: @ 081703F1 + .incbin "baserom.gba", 0x1703F1, 0x0000010 + +gUnk_08170401:: @ 08170401 + .incbin "baserom.gba", 0x170401, 0x000000F + +gUnk_08170410:: @ 08170410 + .incbin "baserom.gba", 0x170410, 0x000000D + +gUnk_0817041D:: @ 0817041D + .incbin "baserom.gba", 0x17041D, 0x0000303 + +gUnk_08170720:: @ 08170720 + .incbin "baserom.gba", 0x170720, 0x0000040 + +gUnk_08170760:: @ 08170760 + .incbin "baserom.gba", 0x170760, 0x0000045 + +gUnk_081707A5:: @ 081707A5 + .incbin "baserom.gba", 0x1707A5, 0x0000061 + +gUnk_08170806:: @ 08170806 + .incbin "baserom.gba", 0x170806, 0x0000108 + +gUnk_0817090E:: @ 0817090E + .incbin "baserom.gba", 0x17090E, 0x00001F1 + +gUnk_08170AFF:: @ 08170AFF + .incbin "baserom.gba", 0x170AFF, 0x0000106 + +gUnk_08170C05:: @ 08170C05 + .incbin "baserom.gba", 0x170C05, 0x00003F0 + +gUnk_08170FF5:: @ 08170FF5 + .incbin "baserom.gba", 0x170FF5, 0x0000012 + +gUnk_08171007:: @ 08171007 + .incbin "baserom.gba", 0x171007, 0x0000045 + +gUnk_0817104C:: @ 0817104C + .incbin "baserom.gba", 0x17104C, 0x000004E + +gUnk_0817109A:: @ 0817109A + .incbin "baserom.gba", 0x17109A, 0x0000068 + +gUnk_08171102:: @ 08171102 + .incbin "baserom.gba", 0x171102, 0x00000E9 + +gUnk_081711EB:: @ 081711EB + .incbin "baserom.gba", 0x1711EB, 0x000001B + +gUnk_08171206:: @ 08171206 + .incbin "baserom.gba", 0x171206, 0x000001B + +gUnk_08171221:: @ 08171221 + .incbin "baserom.gba", 0x171221, 0x00000E4 + +gUnk_08171305:: @ 08171305 + .incbin "baserom.gba", 0x171305, 0x0000149 + +gUnk_0817144E:: @ 0817144E + .incbin "baserom.gba", 0x17144E, 0x00000B3 + +gUnk_08171501:: @ 08171501 + .incbin "baserom.gba", 0x171501, 0x000000E + +gUnk_0817150F:: @ 0817150F + .incbin "baserom.gba", 0x17150F, 0x00000FE + +gUnk_0817160D:: @ 0817160D + .incbin "baserom.gba", 0x17160D, 0x0000014 + +gUnk_08171621:: @ 08171621 + .incbin "baserom.gba", 0x171621, 0x00003F5 + +gUnk_08171A16:: @ 08171A16 + .incbin "baserom.gba", 0x171A16, 0x00000FB + +gUnk_08171B11:: @ 08171B11 + .incbin "baserom.gba", 0x171B11, 0x000010A + +gUnk_08171C1B:: @ 08171C1B + .incbin "baserom.gba", 0x171C1B, 0x000015B + +gUnk_08171D76:: @ 08171D76 + .incbin "baserom.gba", 0x171D76, 0x00000AF + +gUnk_08171E25:: @ 08171E25 + .incbin "baserom.gba", 0x171E25, 0x00000DF + +gUnk_08171F04:: @ 08171F04 + .incbin "baserom.gba", 0x171F04, 0x000001A + +gUnk_08171F1E:: @ 08171F1E + .incbin "baserom.gba", 0x171F1E, 0x0000014 + +gUnk_08171F32:: @ 08171F32 + .incbin "baserom.gba", 0x171F32, 0x00000E5 + +gUnk_08172017:: @ 08172017 + .incbin "baserom.gba", 0x172017, 0x0000009 + +gUnk_08172020:: @ 08172020 + .incbin "baserom.gba", 0x172020, 0x0000001 + +gUnk_08172021:: @ 08172021 + .incbin "baserom.gba", 0x172021, 0x0000001 + +gUnk_08172022:: @ 08172022 + .incbin "baserom.gba", 0x172022, 0x000000B + +gUnk_0817202D:: @ 0817202D + .incbin "baserom.gba", 0x17202D, 0x0000032 + +gUnk_0817205F:: @ 0817205F + .incbin "baserom.gba", 0x17205F, 0x00000BB + +gUnk_0817211A:: @ 0817211A + .incbin "baserom.gba", 0x17211A, 0x000000A + +gUnk_08172124:: @ 08172124 + .incbin "baserom.gba", 0x172124, 0x0000001 + +gUnk_08172125:: @ 08172125 + .incbin "baserom.gba", 0x172125, 0x0000004 + +gUnk_08172129:: @ 08172129 + .incbin "baserom.gba", 0x172129, 0x000000A + +gUnk_08172133:: @ 08172133 + .incbin "baserom.gba", 0x172133, 0x00000F2 + +gUnk_08172225:: @ 08172225 + .incbin "baserom.gba", 0x172225, 0x0000001 + +gUnk_08172226:: @ 08172226 + .incbin "baserom.gba", 0x172226, 0x0000003 + +gUnk_08172229:: @ 08172229 + .incbin "baserom.gba", 0x172229, 0x0000001 + +gUnk_0817222A:: @ 0817222A + .incbin "baserom.gba", 0x17222A, 0x0000017 + +gUnk_08172241:: @ 08172241 + .incbin "baserom.gba", 0x172241, 0x00000DF + +gUnk_08172320:: @ 08172320 + .incbin "baserom.gba", 0x172320, 0x0000008 + +gUnk_08172328:: @ 08172328 + .incbin "baserom.gba", 0x172328, 0x0000206 + +gUnk_0817252E:: @ 0817252E + .incbin "baserom.gba", 0x17252E, 0x00000FE + +gUnk_0817262C:: @ 0817262C + .incbin "baserom.gba", 0x17262C, 0x0000009 + +gUnk_08172635:: @ 08172635 + .incbin "baserom.gba", 0x172635, 0x00000F1 + +gUnk_08172726:: @ 08172726 + .incbin "baserom.gba", 0x172726, 0x0000012 + +gUnk_08172738:: @ 08172738 + .incbin "baserom.gba", 0x172738, 0x00000E7 + +gUnk_0817281F:: @ 0817281F + .incbin "baserom.gba", 0x17281F, 0x0000016 + +gUnk_08172835:: @ 08172835 + .incbin "baserom.gba", 0x172835, 0x0000006 + +gUnk_0817283B:: @ 0817283B + .incbin "baserom.gba", 0x17283B, 0x00000E2 + +gUnk_0817291D:: @ 0817291D + .incbin "baserom.gba", 0x17291D, 0x000001C + +gUnk_08172939:: @ 08172939 + .incbin "baserom.gba", 0x172939, 0x00000EF + +gUnk_08172A28:: @ 08172A28 + .incbin "baserom.gba", 0x172A28, 0x000010F + +gUnk_08172B37:: @ 08172B37 + .incbin "baserom.gba", 0x172B37, 0x0000003 + +gUnk_08172B3A:: @ 08172B3A + .incbin "baserom.gba", 0x172B3A, 0x000051B + +gUnk_08173055:: @ 08173055 + .incbin "baserom.gba", 0x173055, 0x00003E9 + +gUnk_0817343E:: @ 0817343E + .incbin "baserom.gba", 0x17343E, 0x0000327 + +gUnk_08173765:: @ 08173765 + .incbin "baserom.gba", 0x173765, 0x00002C3 + +gUnk_08173A28:: @ 08173A28 + .incbin "baserom.gba", 0x173A28, 0x0000521 + +gUnk_08173F49:: @ 08173F49 + .incbin "baserom.gba", 0x173F49, 0x0000500 + +gUnk_08174449:: @ 08174449 + .incbin "baserom.gba", 0x174449, 0x0000203 + +gUnk_0817464C:: @ 0817464C + .incbin "baserom.gba", 0x17464C, 0x000071E + +gUnk_08174D6A:: @ 08174D6A + .incbin "baserom.gba", 0x174D6A, 0x00005AF + +gUnk_08175319:: @ 08175319 + .incbin "baserom.gba", 0x175319, 0x0002DF4 + +gUnk_0817810D:: @ 0817810D + .incbin "baserom.gba", 0x17810D, 0x000077B + +gUnk_08178888:: @ 08178888 + .incbin "baserom.gba", 0x178888, 0x000262F + +gUnk_0817AEB7:: @ 0817AEB7 + .incbin "baserom.gba", 0x17AEB7, 0x0003060 + +gUnk_0817DF17:: @ 0817DF17 + .incbin "baserom.gba", 0x17DF17, 0x0000028 + +gUnk_0817DF3F:: @ 0817DF3F + .incbin "baserom.gba", 0x17DF3F, 0x00007AE + +gUnk_0817E6ED:: @ 0817E6ED + .incbin "baserom.gba", 0x17E6ED, 0x00001C0 + +gUnk_0817E8AD:: @ 0817E8AD + .incbin "baserom.gba", 0x17E8AD, 0x0000B4D + +gUnk_0817F3FA:: @ 0817F3FA + .incbin "baserom.gba", 0x17F3FA, 0x0000804 + +gUnk_0817FBFE:: @ 0817FBFE + .incbin "baserom.gba", 0x17FBFE, 0x00000CA + +gUnk_0817FCC8:: @ 0817FCC8 + .incbin "baserom.gba", 0x17FCC8, 0x000024B + +gUnk_0817FF13:: @ 0817FF13 + .incbin "baserom.gba", 0x17FF13, 0x0000002 + +gUnk_0817FF15:: @ 0817FF15 + .incbin "baserom.gba", 0x17FF15, 0x00000EB + +gUnk_08180000:: @ 08180000 + .incbin "baserom.gba", 0x180000, 0x0000013 + +gUnk_08180013:: @ 08180013 + .incbin "baserom.gba", 0x180013, 0x000009D + +gUnk_081800B0:: @ 081800B0 + .incbin "baserom.gba", 0x1800B0, 0x0000040 + +gUnk_081800F0:: @ 081800F0 + .incbin "baserom.gba", 0x1800F0, 0x0000009 + +gUnk_081800F9:: @ 081800F9 + .incbin "baserom.gba", 0x1800F9, 0x0000007 + +gUnk_08180100:: @ 08180100 + .incbin "baserom.gba", 0x180100, 0x0000040 + +gUnk_08180140:: @ 08180140 + .incbin "baserom.gba", 0x180140, 0x00000C0 + +gUnk_08180200:: @ 08180200 + .incbin "baserom.gba", 0x180200, 0x000000F + +gUnk_0818020F:: @ 0818020F + .incbin "baserom.gba", 0x18020F, 0x0000097 + +gUnk_081802A6:: @ 081802A6 + .incbin "baserom.gba", 0x1802A6, 0x000009A + +gUnk_08180340:: @ 08180340 + .incbin "baserom.gba", 0x180340, 0x00002A1 + +gUnk_081805E1:: @ 081805E1 + .incbin "baserom.gba", 0x1805E1, 0x000010F + +gUnk_081806F0:: @ 081806F0 + .incbin "baserom.gba", 0x1806F0, 0x00000E0 + +gUnk_081807D0:: @ 081807D0 + .incbin "baserom.gba", 0x1807D0, 0x0000030 + +gUnk_08180800:: @ 08180800 + .incbin "baserom.gba", 0x180800, 0x0000003 + +gUnk_08180803:: @ 08180803 + .incbin "baserom.gba", 0x180803, 0x0000005 + +gUnk_08180808:: @ 08180808 + .incbin "baserom.gba", 0x180808, 0x00002F8 + +gUnk_08180B00:: @ 08180B00 + .incbin "baserom.gba", 0x180B00, 0x0000010 + +gUnk_08180B10:: @ 08180B10 + .incbin "baserom.gba", 0x180B10, 0x00000DF + +gUnk_08180BEF:: @ 08180BEF + .incbin "baserom.gba", 0x180BEF, 0x0000227 + +gUnk_08180E16:: @ 08180E16 + .incbin "baserom.gba", 0x180E16, 0x00001C4 + +gUnk_08180FDA:: @ 08180FDA + .incbin "baserom.gba", 0x180FDA, 0x0000017 + +gUnk_08180FF1:: @ 08180FF1 + .incbin "baserom.gba", 0x180FF1, 0x0000118 + +gUnk_08181109:: @ 08181109 + .incbin "baserom.gba", 0x181109, 0x00000FB + +gUnk_08181204:: @ 08181204 + .incbin "baserom.gba", 0x181204, 0x0000118 + +gUnk_0818131C:: @ 0818131C + .incbin "baserom.gba", 0x18131C, 0x00000FE + +gUnk_0818141A:: @ 0818141A + .incbin "baserom.gba", 0x18141A, 0x00000E1 + +gUnk_081814FB:: @ 081814FB + .incbin "baserom.gba", 0x1814FB, 0x000010A + +gUnk_08181605:: @ 08181605 + .incbin "baserom.gba", 0x181605, 0x0000008 + +gUnk_0818160D:: @ 0818160D + .incbin "baserom.gba", 0x18160D, 0x00000F7 + +gUnk_08181704:: @ 08181704 + .incbin "baserom.gba", 0x181704, 0x0000106 + +gUnk_0818180A:: @ 0818180A + .incbin "baserom.gba", 0x18180A, 0x0000107 + +gUnk_08181911:: @ 08181911 + .incbin "baserom.gba", 0x181911, 0x0000006 + +gUnk_08181917:: @ 08181917 + .incbin "baserom.gba", 0x181917, 0x0000001 + +gUnk_08181918:: @ 08181918 + .incbin "baserom.gba", 0x181918, 0x0000004 + +gUnk_0818191C:: @ 0818191C + .incbin "baserom.gba", 0x18191C, 0x00000B1 + +gUnk_081819CD:: @ 081819CD + .incbin "baserom.gba", 0x1819CD, 0x0000044 + +gUnk_08181A11:: @ 08181A11 + .incbin "baserom.gba", 0x181A11, 0x0000002 + +gUnk_08181A13:: @ 08181A13 + .incbin "baserom.gba", 0x181A13, 0x000000B + +gUnk_08181A1E:: @ 08181A1E + .incbin "baserom.gba", 0x181A1E, 0x00001E2 + +gUnk_08181C00:: @ 08181C00 + .incbin "baserom.gba", 0x181C00, 0x0000014 + +gUnk_08181C14:: @ 08181C14 + .incbin "baserom.gba", 0x181C14, 0x0000111 + +gUnk_08181D25:: @ 08181D25 + .incbin "baserom.gba", 0x181D25, 0x00000F7 + +gUnk_08181E1C:: @ 08181E1C + .incbin "baserom.gba", 0x181E1C, 0x00000FF + +gUnk_08181F1B:: @ 08181F1B + .incbin "baserom.gba", 0x181F1B, 0x00000E5 + +gUnk_08182000:: @ 08182000 + .incbin "baserom.gba", 0x182000, 0x0000019 + +gUnk_08182019:: @ 08182019 + .incbin "baserom.gba", 0x182019, 0x0000003 + +gUnk_0818201C:: @ 0818201C + .incbin "baserom.gba", 0x18201C, 0x0000003 + +gUnk_0818201F:: @ 0818201F + .incbin "baserom.gba", 0x18201F, 0x0000006 + +gUnk_08182025:: @ 08182025 + .incbin "baserom.gba", 0x182025, 0x0000001 + +gUnk_08182026:: @ 08182026 + .incbin "baserom.gba", 0x182026, 0x00000FE + +gUnk_08182124:: @ 08182124 + .incbin "baserom.gba", 0x182124, 0x0000001 + +gUnk_08182125:: @ 08182125 + .incbin "baserom.gba", 0x182125, 0x0000008 + +gUnk_0818212D:: @ 0818212D + .incbin "baserom.gba", 0x18212D, 0x00000F7 + +gUnk_08182224:: @ 08182224 + .incbin "baserom.gba", 0x182224, 0x0000001 + +gUnk_08182225:: @ 08182225 + .incbin "baserom.gba", 0x182225, 0x0000109 + +gUnk_0818232E:: @ 0818232E + .incbin "baserom.gba", 0x18232E, 0x00000DF + +gUnk_0818240D:: @ 0818240D + .incbin "baserom.gba", 0x18240D, 0x000001B + +gUnk_08182428:: @ 08182428 + .incbin "baserom.gba", 0x182428, 0x0000002 + +gUnk_0818242A:: @ 0818242A + .incbin "baserom.gba", 0x18242A, 0x0000104 + +gUnk_0818252E:: @ 0818252E + .incbin "baserom.gba", 0x18252E, 0x0000001 + +gUnk_0818252F:: @ 0818252F + .incbin "baserom.gba", 0x18252F, 0x0000004 + +gUnk_08182533:: @ 08182533 + .incbin "baserom.gba", 0x182533, 0x0000002 + +gUnk_08182535:: @ 08182535 + .incbin "baserom.gba", 0x182535, 0x00000E5 + +gUnk_0818261A:: @ 0818261A + .incbin "baserom.gba", 0x18261A, 0x0000014 + +gUnk_0818262E:: @ 0818262E + .incbin "baserom.gba", 0x18262E, 0x000000E + +gUnk_0818263C:: @ 0818263C + .incbin "baserom.gba", 0x18263C, 0x00000ED + +gUnk_08182729:: @ 08182729 + .incbin "baserom.gba", 0x182729, 0x00000D7 + +gUnk_08182800:: @ 08182800 + .incbin "baserom.gba", 0x182800, 0x0000230 + +gUnk_08182A30:: @ 08182A30 + .incbin "baserom.gba", 0x182A30, 0x000000B + +gUnk_08182A3B:: @ 08182A3B + .incbin "baserom.gba", 0x182A3B, 0x00002F5 + +gUnk_08182D30:: @ 08182D30 + .incbin "baserom.gba", 0x182D30, 0x000000F + +gUnk_08182D3F:: @ 08182D3F + .incbin "baserom.gba", 0x182D3F, 0x00000D7 + +gUnk_08182E16:: @ 08182E16 + .incbin "baserom.gba", 0x182E16, 0x000001E + +gUnk_08182E34:: @ 08182E34 + .incbin "baserom.gba", 0x182E34, 0x0000008 + +gUnk_08182E3C:: @ 08182E3C + .incbin "baserom.gba", 0x182E3C, 0x0000244 + +gUnk_08183080:: @ 08183080 + .incbin "baserom.gba", 0x183080, 0x00000CB + +gUnk_0818314B:: @ 0818314B + .incbin "baserom.gba", 0x18314B, 0x0000AB5 + +gUnk_08183C00:: @ 08183C00 + .incbin "baserom.gba", 0x183C00, 0x0000060 + +gUnk_08183C60:: @ 08183C60 + .incbin "baserom.gba", 0x183C60, 0x0001AA1 + +gUnk_08185701:: @ 08185701 + .incbin "baserom.gba", 0x185701, 0x0002900 + +gUnk_08188001:: @ 08188001 + .incbin "baserom.gba", 0x188001, 0x00049FD + +gUnk_0818C9FE:: @ 0818C9FE + .incbin "baserom.gba", 0x18C9FE, 0x0001221 + +gUnk_0818DC1F:: @ 0818DC1F + .incbin "baserom.gba", 0x18DC1F, 0x00001E2 + +gUnk_0818DE01:: @ 0818DE01 + .incbin "baserom.gba", 0x18DE01, 0x000019B + +gUnk_0818DF9C:: @ 0818DF9C + .incbin "baserom.gba", 0x18DF9C, 0x000115D + +gUnk_0818F0F9:: @ 0818F0F9 + .incbin "baserom.gba", 0x18F0F9, 0x0000140 + +gUnk_0818F239:: @ 0818F239 + .incbin "baserom.gba", 0x18F239, 0x00004DA + +gUnk_0818F713:: @ 0818F713 + .incbin "baserom.gba", 0x18F713, 0x00000EB + +gUnk_0818F7FE:: @ 0818F7FE + .incbin "baserom.gba", 0x18F7FE, 0x0000002 + +gUnk_0818F800:: @ 0818F800 + .incbin "baserom.gba", 0x18F800, 0x00000B8 + +gUnk_0818F8B8:: @ 0818F8B8 + .incbin "baserom.gba", 0x18F8B8, 0x0000424 + +gUnk_0818FCDC:: @ 0818FCDC + .incbin "baserom.gba", 0x18FCDC, 0x0000324 + +gUnk_08190000:: @ 08190000 + .incbin "baserom.gba", 0x190000, 0x0000001 + +gUnk_08190001:: @ 08190001 + .incbin "baserom.gba", 0x190001, 0x000000B + +gUnk_0819000C:: @ 0819000C + .incbin "baserom.gba", 0x19000C, 0x0000109 + +gUnk_08190115:: @ 08190115 + .incbin "baserom.gba", 0x190115, 0x00000D7 + +gUnk_081901EC:: @ 081901EC + .incbin "baserom.gba", 0x1901EC, 0x0000016 + +gUnk_08190202:: @ 08190202 + .incbin "baserom.gba", 0x190202, 0x000012D + +gUnk_0819032F:: @ 0819032F + .incbin "baserom.gba", 0x19032F, 0x00000D1 + +gUnk_08190400:: @ 08190400 + .incbin "baserom.gba", 0x190400, 0x0000080 + +gUnk_08190480:: @ 08190480 + .incbin "baserom.gba", 0x190480, 0x0000080 + +gUnk_08190500:: @ 08190500 + .incbin "baserom.gba", 0x190500, 0x000010D + +gUnk_0819060D:: @ 0819060D + .incbin "baserom.gba", 0x19060D, 0x0000200 + +gUnk_0819080D:: @ 0819080D + .incbin "baserom.gba", 0x19080D, 0x0000104 + +gUnk_08190911:: @ 08190911 + .incbin "baserom.gba", 0x190911, 0x00000DE + +gUnk_081909EF:: @ 081909EF + .incbin "baserom.gba", 0x1909EF, 0x00003F7 + +gUnk_08190DE6:: @ 08190DE6 + .incbin "baserom.gba", 0x190DE6, 0x0000021 + +gUnk_08190E07:: @ 08190E07 + .incbin "baserom.gba", 0x190E07, 0x000000C + +gUnk_08190E13:: @ 08190E13 + .incbin "baserom.gba", 0x190E13, 0x00000CF + +gUnk_08190EE2:: @ 08190EE2 + .incbin "baserom.gba", 0x190EE2, 0x0000034 + +gUnk_08190F16:: @ 08190F16 + .incbin "baserom.gba", 0x190F16, 0x00000E0 + +gUnk_08190FF6:: @ 08190FF6 + .incbin "baserom.gba", 0x190FF6, 0x0000062 + +gUnk_08191058:: @ 08191058 + .incbin "baserom.gba", 0x191058, 0x00000B6 + +gUnk_0819110E:: @ 0819110E + .incbin "baserom.gba", 0x19110E, 0x00000F3 + +gUnk_08191201:: @ 08191201 + .incbin "baserom.gba", 0x191201, 0x0000105 + +gUnk_08191306:: @ 08191306 + .incbin "baserom.gba", 0x191306, 0x000010C + +gUnk_08191412:: @ 08191412 + .incbin "baserom.gba", 0x191412, 0x0000006 + +gUnk_08191418:: @ 08191418 + .incbin "baserom.gba", 0x191418, 0x00000FE + +gUnk_08191516:: @ 08191516 + .incbin "baserom.gba", 0x191516, 0x00001D5 + +gUnk_081916EB:: @ 081916EB + .incbin "baserom.gba", 0x1916EB, 0x0000030 + +gUnk_0819171B:: @ 0819171B + .incbin "baserom.gba", 0x19171B, 0x0000001 + +gUnk_0819171C:: @ 0819171C + .incbin "baserom.gba", 0x19171C, 0x00001F3 + +gUnk_0819190F:: @ 0819190F + .incbin "baserom.gba", 0x19190F, 0x0000306 + +gUnk_08191C15:: @ 08191C15 + .incbin "baserom.gba", 0x191C15, 0x00000FA + +gUnk_08191D0F:: @ 08191D0F + .incbin "baserom.gba", 0x191D0F, 0x000000D + +gUnk_08191D1C:: @ 08191D1C + .incbin "baserom.gba", 0x191D1C, 0x0000001 + +gUnk_08191D1D:: @ 08191D1D + .incbin "baserom.gba", 0x191D1D, 0x00000FA + +gUnk_08191E17:: @ 08191E17 + .incbin "baserom.gba", 0x191E17, 0x00000F9 + +gUnk_08191F10:: @ 08191F10 + .incbin "baserom.gba", 0x191F10, 0x0000103 + +gUnk_08192013:: @ 08192013 + .incbin "baserom.gba", 0x192013, 0x000010D + +gUnk_08192120:: @ 08192120 + .incbin "baserom.gba", 0x192120, 0x0000009 + +gUnk_08192129:: @ 08192129 + .incbin "baserom.gba", 0x192129, 0x00000F8 + +gUnk_08192221:: @ 08192221 + .incbin "baserom.gba", 0x192221, 0x0000008 + +gUnk_08192229:: @ 08192229 + .incbin "baserom.gba", 0x192229, 0x000010B + +gUnk_08192334:: @ 08192334 + .incbin "baserom.gba", 0x192334, 0x00000AF + +gUnk_081923E3:: @ 081923E3 + .incbin "baserom.gba", 0x1923E3, 0x000003D + +gUnk_08192420:: @ 08192420 + .incbin "baserom.gba", 0x192420, 0x0000009 + +gUnk_08192429:: @ 08192429 + .incbin "baserom.gba", 0x192429, 0x0000001 + +gUnk_0819242A:: @ 0819242A + .incbin "baserom.gba", 0x19242A, 0x0000001 + +gUnk_0819242B:: @ 0819242B + .incbin "baserom.gba", 0x19242B, 0x00000E0 + +gUnk_0819250B:: @ 0819250B + .incbin "baserom.gba", 0x19250B, 0x0000005 + +gUnk_08192510:: @ 08192510 + .incbin "baserom.gba", 0x192510, 0x0000018 + +gUnk_08192528:: @ 08192528 + .incbin "baserom.gba", 0x192528, 0x0000012 + +gUnk_0819253A:: @ 0819253A + .incbin "baserom.gba", 0x19253A, 0x00000E9 + +gUnk_08192623:: @ 08192623 + .incbin "baserom.gba", 0x192623, 0x000000B + +gUnk_0819262E:: @ 0819262E + .incbin "baserom.gba", 0x19262E, 0x0000001 + +gUnk_0819262F:: @ 0819262F + .incbin "baserom.gba", 0x19262F, 0x0000204 + +gUnk_08192833:: @ 08192833 + .incbin "baserom.gba", 0x192833, 0x00000F8 + +gUnk_0819292B:: @ 0819292B + .incbin "baserom.gba", 0x19292B, 0x000000D + +gUnk_08192938:: @ 08192938 + .incbin "baserom.gba", 0x192938, 0x0000106 + +gUnk_08192A3E:: @ 08192A3E + .incbin "baserom.gba", 0x192A3E, 0x00000E1 + +gUnk_08192B1F:: @ 08192B1F + .incbin "baserom.gba", 0x192B1F, 0x000021C + +gUnk_08192D3B:: @ 08192D3B + .incbin "baserom.gba", 0x192D3B, 0x0000008 + +gUnk_08192D43:: @ 08192D43 + .incbin "baserom.gba", 0x192D43, 0x00000FC + +gUnk_08192E3F:: @ 08192E3F + .incbin "baserom.gba", 0x192E3F, 0x00000DB + +gUnk_08192F1A:: @ 08192F1A + .incbin "baserom.gba", 0x192F1A, 0x0000031 + +gUnk_08192F4B:: @ 08192F4B + .incbin "baserom.gba", 0x192F4B, 0x00000E3 + +gUnk_0819302E:: @ 0819302E + .incbin "baserom.gba", 0x19302E, 0x000000D + +gUnk_0819303B:: @ 0819303B + .incbin "baserom.gba", 0x19303B, 0x0000114 + +gUnk_0819314F:: @ 0819314F + .incbin "baserom.gba", 0x19314F, 0x00000F3 + +gUnk_08193242:: @ 08193242 + .incbin "baserom.gba", 0x193242, 0x00005E0 + +gUnk_08193822:: @ 08193822 + .incbin "baserom.gba", 0x193822, 0x0000125 + +gUnk_08193947:: @ 08193947 + .incbin "baserom.gba", 0x193947, 0x0000598 + +gUnk_08193EDF:: @ 08193EDF + .incbin "baserom.gba", 0x193EDF, 0x0000153 + +gUnk_08194032:: @ 08194032 + .incbin "baserom.gba", 0x194032, 0x0000D0F + +gUnk_08194D41:: @ 08194D41 + .incbin "baserom.gba", 0x194D41, 0x0003720 + +gUnk_08198461:: @ 08198461 + .incbin "baserom.gba", 0x198461, 0x00031B2 + +gUnk_0819B613:: @ 0819B613 + .incbin "baserom.gba", 0x19B613, 0x00004ED + +gUnk_0819BB00:: @ 0819BB00 + .incbin "baserom.gba", 0x19BB00, 0x0001C11 + +gUnk_0819D711:: @ 0819D711 + .incbin "baserom.gba", 0x19D711, 0x00011DA + +gUnk_0819E8EB:: @ 0819E8EB + .incbin "baserom.gba", 0x19E8EB, 0x0000CE4 + +gUnk_0819F5CF:: @ 0819F5CF + .incbin "baserom.gba", 0x19F5CF, 0x0000035 + +gUnk_0819F604:: @ 0819F604 + .incbin "baserom.gba", 0x19F604, 0x00000ED + +gUnk_0819F6F1:: @ 0819F6F1 + .incbin "baserom.gba", 0x19F6F1, 0x0000610 + +gUnk_0819FD01:: @ 0819FD01 + .incbin "baserom.gba", 0x19FD01, 0x0000116 + +gUnk_0819FE17:: @ 0819FE17 + .incbin "baserom.gba", 0x19FE17, 0x00001E9 + +gUnk_081A0000:: @ 081A0000 + .incbin "baserom.gba", 0x1A0000, 0x0000040 + +gUnk_081A0040:: @ 081A0040 + .incbin "baserom.gba", 0x1A0040, 0x0000061 + +gUnk_081A00A1:: @ 081A00A1 + .incbin "baserom.gba", 0x1A00A1, 0x000003E + +gUnk_081A00DF:: @ 081A00DF + .incbin "baserom.gba", 0x1A00DF, 0x0000021 + +gUnk_081A0100:: @ 081A0100 + .incbin "baserom.gba", 0x1A0100, 0x00001ED + +gUnk_081A02ED:: @ 081A02ED + .incbin "baserom.gba", 0x1A02ED, 0x000008B + +gUnk_081A0378:: @ 081A0378 + .incbin "baserom.gba", 0x1A0378, 0x00000A1 + +gUnk_081A0419:: @ 081A0419 + .incbin "baserom.gba", 0x1A0419, 0x0000040 + +gUnk_081A0459:: @ 081A0459 + .incbin "baserom.gba", 0x1A0459, 0x0000096 + +gUnk_081A04EF:: @ 081A04EF + .incbin "baserom.gba", 0x1A04EF, 0x000031A + +gUnk_081A0809:: @ 081A0809 + .incbin "baserom.gba", 0x1A0809, 0x0000010 + +gUnk_081A0819:: @ 081A0819 + .incbin "baserom.gba", 0x1A0819, 0x00003EF + +gUnk_081A0C08:: @ 081A0C08 + .incbin "baserom.gba", 0x1A0C08, 0x000010B + +gUnk_081A0D13:: @ 081A0D13 + .incbin "baserom.gba", 0x1A0D13, 0x00003D2 + +gUnk_081A10E5:: @ 081A10E5 + .incbin "baserom.gba", 0x1A10E5, 0x000011D + +gUnk_081A1202:: @ 081A1202 + .incbin "baserom.gba", 0x1A1202, 0x0000002 + +gUnk_081A1204:: @ 081A1204 + .incbin "baserom.gba", 0x1A1204, 0x000000A + +gUnk_081A120E:: @ 081A120E + .incbin "baserom.gba", 0x1A120E, 0x000020D + +gUnk_081A141B:: @ 081A141B + .incbin "baserom.gba", 0x1A141B, 0x000003B + +gUnk_081A1456:: @ 081A1456 + .incbin "baserom.gba", 0x1A1456, 0x00001B8 + +gUnk_081A160E:: @ 081A160E + .incbin "baserom.gba", 0x1A160E, 0x0000208 + +gUnk_081A1816:: @ 081A1816 + .incbin "baserom.gba", 0x1A1816, 0x00000EE + +gUnk_081A1904:: @ 081A1904 + .incbin "baserom.gba", 0x1A1904, 0x00001D4 + +gUnk_081A1AD8:: @ 081A1AD8 + .incbin "baserom.gba", 0x1A1AD8, 0x0000041 + +gUnk_081A1B19:: @ 081A1B19 + .incbin "baserom.gba", 0x1A1B19, 0x00001F5 + +gUnk_081A1D0E:: @ 081A1D0E + .incbin "baserom.gba", 0x1A1D0E, 0x00000F8 + +gUnk_081A1E06:: @ 081A1E06 + .incbin "baserom.gba", 0x1A1E06, 0x000000F + +gUnk_081A1E15:: @ 081A1E15 + .incbin "baserom.gba", 0x1A1E15, 0x00000FE + +gUnk_081A1F13:: @ 081A1F13 + .incbin "baserom.gba", 0x1A1F13, 0x00002F4 + +gUnk_081A2207:: @ 081A2207 + .incbin "baserom.gba", 0x1A2207, 0x000001E + +gUnk_081A2225:: @ 081A2225 + .incbin "baserom.gba", 0x1A2225, 0x00000E8 + +gUnk_081A230D:: @ 081A230D + .incbin "baserom.gba", 0x1A230D, 0x0000001 + +gUnk_081A230E:: @ 081A230E + .incbin "baserom.gba", 0x1A230E, 0x0000011 + +gUnk_081A231F:: @ 081A231F + .incbin "baserom.gba", 0x1A231F, 0x00001FB + +gUnk_081A251A:: @ 081A251A + .incbin "baserom.gba", 0x1A251A, 0x000000B + +gUnk_081A2525:: @ 081A2525 + .incbin "baserom.gba", 0x1A2525, 0x0000003 + +gUnk_081A2528:: @ 081A2528 + .incbin "baserom.gba", 0x1A2528, 0x000010D + +gUnk_081A2635:: @ 081A2635 + .incbin "baserom.gba", 0x1A2635, 0x00000F7 + +gUnk_081A272C:: @ 081A272C + .incbin "baserom.gba", 0x1A272C, 0x00000DE + +gUnk_081A280A:: @ 081A280A + .incbin "baserom.gba", 0x1A280A, 0x000001B + +gUnk_081A2825:: @ 081A2825 + .incbin "baserom.gba", 0x1A2825, 0x00000F8 + +gUnk_081A291D:: @ 081A291D + .incbin "baserom.gba", 0x1A291D, 0x0000010 + +gUnk_081A292D:: @ 081A292D + .incbin "baserom.gba", 0x1A292D, 0x0000002 + +gUnk_081A292F:: @ 081A292F + .incbin "baserom.gba", 0x1A292F, 0x0000002 + +gUnk_081A2931:: @ 081A2931 + .incbin "baserom.gba", 0x1A2931, 0x00000FA + +gUnk_081A2A2B:: @ 081A2A2B + .incbin "baserom.gba", 0x1A2A2B, 0x0000007 + +gUnk_081A2A32:: @ 081A2A32 + .incbin "baserom.gba", 0x1A2A32, 0x000000A + +gUnk_081A2A3C:: @ 081A2A3C + .incbin "baserom.gba", 0x1A2A3C, 0x00001D8 + +gUnk_081A2C14:: @ 081A2C14 + .incbin "baserom.gba", 0x1A2C14, 0x000052D + +gUnk_081A3141:: @ 081A3141 + .incbin "baserom.gba", 0x1A3141, 0x0000007 + +gUnk_081A3148:: @ 081A3148 + .incbin "baserom.gba", 0x1A3148, 0x0000002 + +gUnk_081A314A:: @ 081A314A + .incbin "baserom.gba", 0x1A314A, 0x00005FF + +gUnk_081A3749:: @ 081A3749 + .incbin "baserom.gba", 0x1A3749, 0x00000BA + +gUnk_081A3803:: @ 081A3803 + .incbin "baserom.gba", 0x1A3803, 0x000012A + +gUnk_081A392D:: @ 081A392D + .incbin "baserom.gba", 0x1A392D, 0x00007D7 + +gUnk_081A4104:: @ 081A4104 + .incbin "baserom.gba", 0x1A4104, 0x0000D46 + +gUnk_081A4E4A:: @ 081A4E4A + .incbin "baserom.gba", 0x1A4E4A, 0x0009FA9 + +gUnk_081AEDF3:: @ 081AEDF3 + .incbin "baserom.gba", 0x1AEDF3, 0x00000F5 + +gUnk_081AEEE8:: @ 081AEEE8 + .incbin "baserom.gba", 0x1AEEE8, 0x000022B + +gUnk_081AF113:: @ 081AF113 + .incbin "baserom.gba", 0x1AF113, 0x00001F4 + +gUnk_081AF307:: @ 081AF307 + .incbin "baserom.gba", 0x1AF307, 0x00008DE + +gUnk_081AFBE5:: @ 081AFBE5 + .incbin "baserom.gba", 0x1AFBE5, 0x0000319 + +gUnk_081AFEFE:: @ 081AFEFE + .incbin "baserom.gba", 0x1AFEFE, 0x00000DF + +gUnk_081AFFDD:: @ 081AFFDD + .incbin "baserom.gba", 0x1AFFDD, 0x000002B + +gUnk_081B0008:: @ 081B0008 + .incbin "baserom.gba", 0x1B0008, 0x00000E2 + +gUnk_081B00EA:: @ 081B00EA + .incbin "baserom.gba", 0x1B00EA, 0x0000004 + +gUnk_081B00EE:: @ 081B00EE + .incbin "baserom.gba", 0x1B00EE, 0x00000FB + +gUnk_081B01E9:: @ 081B01E9 + .incbin "baserom.gba", 0x1B01E9, 0x0000270 + +gUnk_081B0459:: @ 081B0459 + .incbin "baserom.gba", 0x1B0459, 0x00000A7 + +gUnk_081B0500:: @ 081B0500 + .incbin "baserom.gba", 0x1B0500, 0x0000103 + +gUnk_081B0603:: @ 081B0603 + .incbin "baserom.gba", 0x1B0603, 0x0000207 + +gUnk_081B080A:: @ 081B080A + .incbin "baserom.gba", 0x1B080A, 0x00002DE + +gUnk_081B0AE8:: @ 081B0AE8 + .incbin "baserom.gba", 0x1B0AE8, 0x0000133 + +gUnk_081B0C1B:: @ 081B0C1B + .incbin "baserom.gba", 0x1B0C1B, 0x00003D3 + +gUnk_081B0FEE:: @ 081B0FEE + .incbin "baserom.gba", 0x1B0FEE, 0x000032A + +gUnk_081B1318:: @ 081B1318 + .incbin "baserom.gba", 0x1B1318, 0x00000B4 + +gUnk_081B13CC:: @ 081B13CC + .incbin "baserom.gba", 0x1B13CC, 0x0000022 + +gUnk_081B13EE:: @ 081B13EE + .incbin "baserom.gba", 0x1B13EE, 0x000002E + +gUnk_081B141C:: @ 081B141C + .incbin "baserom.gba", 0x1B141C, 0x00000EC + +gUnk_081B1508:: @ 081B1508 + .incbin "baserom.gba", 0x1B1508, 0x000030D + +gUnk_081B1815:: @ 081B1815 + .incbin "baserom.gba", 0x1B1815, 0x00001F2 + +gUnk_081B1A07:: @ 081B1A07 + .incbin "baserom.gba", 0x1B1A07, 0x00001F9 + +gUnk_081B1C00:: @ 081B1C00 + .incbin "baserom.gba", 0x1B1C00, 0x0000005 + +gUnk_081B1C05:: @ 081B1C05 + .incbin "baserom.gba", 0x1B1C05, 0x000040C + +gUnk_081B2011:: @ 081B2011 + .incbin "baserom.gba", 0x1B2011, 0x0000012 + +gUnk_081B2023:: @ 081B2023 + .incbin "baserom.gba", 0x1B2023, 0x0000112 + +gUnk_081B2135:: @ 081B2135 + .incbin "baserom.gba", 0x1B2135, 0x00000FA + +gUnk_081B222F:: @ 081B222F + .incbin "baserom.gba", 0x1B222F, 0x00000ED + +gUnk_081B231C:: @ 081B231C + .incbin "baserom.gba", 0x1B231C, 0x0000103 + +gUnk_081B241F:: @ 081B241F + .incbin "baserom.gba", 0x1B241F, 0x0000116 + +gUnk_081B2535:: @ 081B2535 + .incbin "baserom.gba", 0x1B2535, 0x00000EC + +gUnk_081B2621:: @ 081B2621 + .incbin "baserom.gba", 0x1B2621, 0x000000E + +gUnk_081B262F:: @ 081B262F + .incbin "baserom.gba", 0x1B262F, 0x00000F6 + +gUnk_081B2725:: @ 081B2725 + .incbin "baserom.gba", 0x1B2725, 0x0000005 + +gUnk_081B272A:: @ 081B272A + .incbin "baserom.gba", 0x1B272A, 0x00000F8 + +gUnk_081B2822:: @ 081B2822 + .incbin "baserom.gba", 0x1B2822, 0x0000007 + +gUnk_081B2829:: @ 081B2829 + .incbin "baserom.gba", 0x1B2829, 0x0000108 + +gUnk_081B2931:: @ 081B2931 + .incbin "baserom.gba", 0x1B2931, 0x000000A + +gUnk_081B293B:: @ 081B293B + .incbin "baserom.gba", 0x1B293B, 0x00000E9 + +gUnk_081B2A24:: @ 081B2A24 + .incbin "baserom.gba", 0x1B2A24, 0x0000016 + +gUnk_081B2A3A:: @ 081B2A3A + .incbin "baserom.gba", 0x1B2A3A, 0x0000010 + +gUnk_081B2A4A:: @ 081B2A4A + .incbin "baserom.gba", 0x1B2A4A, 0x00006EB + +gUnk_081B3135:: @ 081B3135 + .incbin "baserom.gba", 0x1B3135, 0x0000010 + +gUnk_081B3145:: @ 081B3145 + .incbin "baserom.gba", 0x1B3145, 0x0000207 + +gUnk_081B334C:: @ 081B334C + .incbin "baserom.gba", 0x1B334C, 0x00004FC + +gUnk_081B3848:: @ 081B3848 + .incbin "baserom.gba", 0x1B3848, 0x0001DC7 + +gUnk_081B560F:: @ 081B560F + .incbin "baserom.gba", 0x1B560F, 0x0000D6D + +gUnk_081B637C:: @ 081B637C + .incbin "baserom.gba", 0x1B637C, 0x00048CF + +gUnk_081BAC4B:: @ 081BAC4B + .incbin "baserom.gba", 0x1BAC4B, 0x000078F + +gUnk_081BB3DA:: @ 081BB3DA + .incbin "baserom.gba", 0x1BB3DA, 0x000371E + +gUnk_081BEAF8:: @ 081BEAF8 + .incbin "baserom.gba", 0x1BEAF8, 0x0000316 + +gUnk_081BEE0E:: @ 081BEE0E + .incbin "baserom.gba", 0x1BEE0E, 0x0000DB6 + +gUnk_081BFBC4:: @ 081BFBC4 + .incbin "baserom.gba", 0x1BFBC4, 0x0000457 + +gUnk_081C001B:: @ 081C001B + .incbin "baserom.gba", 0x1C001B, 0x0000100 + +gUnk_081C011B:: @ 081C011B + .incbin "baserom.gba", 0x1C011B, 0x00000E5 + +gUnk_081C0200:: @ 081C0200 + .incbin "baserom.gba", 0x1C0200, 0x000061B + +gUnk_081C081B:: @ 081C081B + .incbin "baserom.gba", 0x1C081B, 0x00002E5 + +gUnk_081C0B00:: @ 081C0B00 + .incbin "baserom.gba", 0x1C0B00, 0x00002FA + +gUnk_081C0DFA:: @ 081C0DFA + .incbin "baserom.gba", 0x1C0DFA, 0x0000339 + +gUnk_081C1133:: @ 081C1133 + .incbin "baserom.gba", 0x1C1133, 0x00000CD + +gUnk_081C1200:: @ 081C1200 + .incbin "baserom.gba", 0x1C1200, 0x0000301 + +gUnk_081C1501:: @ 081C1501 + .incbin "baserom.gba", 0x1C1501, 0x000000A + +gUnk_081C150B:: @ 081C150B + .incbin "baserom.gba", 0x1C150B, 0x00000D3 + +gUnk_081C15DE:: @ 081C15DE + .incbin "baserom.gba", 0x1C15DE, 0x000002E + +gUnk_081C160C:: @ 081C160C + .incbin "baserom.gba", 0x1C160C, 0x0000006 + +gUnk_081C1612:: @ 081C1612 + .incbin "baserom.gba", 0x1C1612, 0x0000026 + +gUnk_081C1638:: @ 081C1638 + .incbin "baserom.gba", 0x1C1638, 0x00000E5 + +gUnk_081C171D:: @ 081C171D + .incbin "baserom.gba", 0x1C171D, 0x00000E5 + +gUnk_081C1802:: @ 081C1802 + .incbin "baserom.gba", 0x1C1802, 0x00001DB + +gUnk_081C19DD:: @ 081C19DD + .incbin "baserom.gba", 0x1C19DD, 0x0000123 + +gUnk_081C1B00:: @ 081C1B00 + .incbin "baserom.gba", 0x1C1B00, 0x0000221 + +gUnk_081C1D21:: @ 081C1D21 + .incbin "baserom.gba", 0x1C1D21, 0x0000006 + +gUnk_081C1D27:: @ 081C1D27 + .incbin "baserom.gba", 0x1C1D27, 0x00000DD + +gUnk_081C1E04:: @ 081C1E04 + .incbin "baserom.gba", 0x1C1E04, 0x0000001 + +gUnk_081C1E05:: @ 081C1E05 + .incbin "baserom.gba", 0x1C1E05, 0x0000112 + +gUnk_081C1F17:: @ 081C1F17 + .incbin "baserom.gba", 0x1C1F17, 0x0000001 + +gUnk_081C1F18:: @ 081C1F18 + .incbin "baserom.gba", 0x1C1F18, 0x000010B + +gUnk_081C2023:: @ 081C2023 + .incbin "baserom.gba", 0x1C2023, 0x000001B + +gUnk_081C203E:: @ 081C203E + .incbin "baserom.gba", 0x1C203E, 0x00000E4 + +gUnk_081C2122:: @ 081C2122 + .incbin "baserom.gba", 0x1C2122, 0x0000005 + +gUnk_081C2127:: @ 081C2127 + .incbin "baserom.gba", 0x1C2127, 0x00000E4 + +gUnk_081C220B:: @ 081C220B + .incbin "baserom.gba", 0x1C220B, 0x0000220 + +gUnk_081C242B:: @ 081C242B + .incbin "baserom.gba", 0x1C242B, 0x00000EE + +gUnk_081C2519:: @ 081C2519 + .incbin "baserom.gba", 0x1C2519, 0x000000F + +gUnk_081C2528:: @ 081C2528 + .incbin "baserom.gba", 0x1C2528, 0x00001FC + +gUnk_081C2724:: @ 081C2724 + .incbin "baserom.gba", 0x1C2724, 0x000000A + +gUnk_081C272E:: @ 081C272E + .incbin "baserom.gba", 0x1C272E, 0x00003FE + +gUnk_081C2B2C:: @ 081C2B2C + .incbin "baserom.gba", 0x1C2B2C, 0x0000006 + +gUnk_081C2B32:: @ 081C2B32 + .incbin "baserom.gba", 0x1C2B32, 0x00000F9 + +gUnk_081C2C2B:: @ 081C2C2B + .incbin "baserom.gba", 0x1C2C2B, 0x0000004 + +gUnk_081C2C2F:: @ 081C2C2F + .incbin "baserom.gba", 0x1C2C2F, 0x0000207 + +gUnk_081C2E36:: @ 081C2E36 + .incbin "baserom.gba", 0x1C2E36, 0x0000108 + +gUnk_081C2F3E:: @ 081C2F3E + .incbin "baserom.gba", 0x1C2F3E, 0x0000001 + +gUnk_081C2F3F:: @ 081C2F3F + .incbin "baserom.gba", 0x1C2F3F, 0x00000E4 + +gUnk_081C3023:: @ 081C3023 + .incbin "baserom.gba", 0x1C3023, 0x0000122 + +gUnk_081C3145:: @ 081C3145 + .incbin "baserom.gba", 0x1C3145, 0x0000102 + +gUnk_081C3247:: @ 081C3247 + .incbin "baserom.gba", 0x1C3247, 0x00000E5 + +gUnk_081C332C:: @ 081C332C + .incbin "baserom.gba", 0x1C332C, 0x000010E + +gUnk_081C343A:: @ 081C343A + .incbin "baserom.gba", 0x1C343A, 0x000010C + +gUnk_081C3546:: @ 081C3546 + .incbin "baserom.gba", 0x1C3546, 0x00004EF + +gUnk_081C3A35:: @ 081C3A35 + .incbin "baserom.gba", 0x1C3A35, 0x00005BF + +gUnk_081C3FF4:: @ 081C3FF4 + .incbin "baserom.gba", 0x1C3FF4, 0x0000162 + +gUnk_081C4156:: @ 081C4156 + .incbin "baserom.gba", 0x1C4156, 0x00002FE + +gUnk_081C4454:: @ 081C4454 + .incbin "baserom.gba", 0x1C4454, 0x0000BB3 + +gUnk_081C5007:: @ 081C5007 + .incbin "baserom.gba", 0x1C5007, 0x0000477 + +gUnk_081C547E:: @ 081C547E + .incbin "baserom.gba", 0x1C547E, 0x00020ED + +gUnk_081C756B:: @ 081C756B + .incbin "baserom.gba", 0x1C756B, 0x000149D + +gUnk_081C8A08:: @ 081C8A08 + .incbin "baserom.gba", 0x1C8A08, 0x000026C + +gUnk_081C8C74:: @ 081C8C74 + .incbin "baserom.gba", 0x1C8C74, 0x000573D + +gUnk_081CE3B1:: @ 081CE3B1 + .incbin "baserom.gba", 0x1CE3B1, 0x000003D + +gUnk_081CE3EE:: @ 081CE3EE + .incbin "baserom.gba", 0x1CE3EE, 0x0000DFE + +gUnk_081CF1EC:: @ 081CF1EC + .incbin "baserom.gba", 0x1CF1EC, 0x00002F9 + +gUnk_081CF4E5:: @ 081CF4E5 + .incbin "baserom.gba", 0x1CF4E5, 0x0000333 + +gUnk_081CF818:: @ 081CF818 + .incbin "baserom.gba", 0x1CF818, 0x0000008 + +gUnk_081CF820:: @ 081CF820 + .incbin "baserom.gba", 0x1CF820, 0x00007B1 + +gUnk_081CFFD1:: @ 081CFFD1 + .incbin "baserom.gba", 0x1CFFD1, 0x000002F + +gUnk_081D0000:: @ 081D0000 + .incbin "baserom.gba", 0x1D0000, 0x0000001 + +gUnk_081D0001:: @ 081D0001 + .incbin "baserom.gba", 0x1D0001, 0x0000006 + +gUnk_081D0007:: @ 081D0007 + .incbin "baserom.gba", 0x1D0007, 0x0000009 + +gUnk_081D0010:: @ 081D0010 + .incbin "baserom.gba", 0x1D0010, 0x000000A + +gUnk_081D001A:: @ 081D001A + .incbin "baserom.gba", 0x1D001A, 0x000001A + +gUnk_081D0034:: @ 081D0034 + .incbin "baserom.gba", 0x1D0034, 0x00000E0 + +gUnk_081D0114:: @ 081D0114 + .incbin "baserom.gba", 0x1D0114, 0x0000174 + +gUnk_081D0288:: @ 081D0288 + .incbin "baserom.gba", 0x1D0288, 0x0000179 + +gUnk_081D0401:: @ 081D0401 + .incbin "baserom.gba", 0x1D0401, 0x0000042 + +gUnk_081D0443:: @ 081D0443 + .incbin "baserom.gba", 0x1D0443, 0x00001BE + +gUnk_081D0601:: @ 081D0601 + .incbin "baserom.gba", 0x1D0601, 0x0000205 + +gUnk_081D0806:: @ 081D0806 + .incbin "baserom.gba", 0x1D0806, 0x0000303 + +gUnk_081D0B09:: @ 081D0B09 + .incbin "baserom.gba", 0x1D0B09, 0x00003FF + +gUnk_081D0F08:: @ 081D0F08 + .incbin "baserom.gba", 0x1D0F08, 0x000001E + +gUnk_081D0F26:: @ 081D0F26 + .incbin "baserom.gba", 0x1D0F26, 0x00000DE + +gUnk_081D1004:: @ 081D1004 + .incbin "baserom.gba", 0x1D1004, 0x0000003 + +gUnk_081D1007:: @ 081D1007 + .incbin "baserom.gba", 0x1D1007, 0x0000511 + +gUnk_081D1518:: @ 081D1518 + .incbin "baserom.gba", 0x1D1518, 0x00000E2 + +gUnk_081D15FA:: @ 081D15FA + .incbin "baserom.gba", 0x1D15FA, 0x0000018 + +gUnk_081D1612:: @ 081D1612 + .incbin "baserom.gba", 0x1D1612, 0x000011F + +gUnk_081D1731:: @ 081D1731 + .incbin "baserom.gba", 0x1D1731, 0x00000CC + +gUnk_081D17FD:: @ 081D17FD + .incbin "baserom.gba", 0x1D17FD, 0x0000013 + +gUnk_081D1810:: @ 081D1810 + .incbin "baserom.gba", 0x1D1810, 0x00003F3 + +gUnk_081D1C03:: @ 081D1C03 + .incbin "baserom.gba", 0x1D1C03, 0x0000001 + +gUnk_081D1C04:: @ 081D1C04 + .incbin "baserom.gba", 0x1D1C04, 0x0000019 + +gUnk_081D1C1D:: @ 081D1C1D + .incbin "baserom.gba", 0x1D1C1D, 0x00000F7 + +gUnk_081D1D14:: @ 081D1D14 + .incbin "baserom.gba", 0x1D1D14, 0x000010E + +gUnk_081D1E22:: @ 081D1E22 + .incbin "baserom.gba", 0x1D1E22, 0x00001DE + +gUnk_081D2000:: @ 081D2000 + .incbin "baserom.gba", 0x1D2000, 0x000000C + +gUnk_081D200C:: @ 081D200C + .incbin "baserom.gba", 0x1D200C, 0x0000026 + +gUnk_081D2032:: @ 081D2032 + .incbin "baserom.gba", 0x1D2032, 0x00001F1 + +gUnk_081D2223:: @ 081D2223 + .incbin "baserom.gba", 0x1D2223, 0x00000F5 + +gUnk_081D2318:: @ 081D2318 + .incbin "baserom.gba", 0x1D2318, 0x0000113 + +gUnk_081D242B:: @ 081D242B + .incbin "baserom.gba", 0x1D242B, 0x000000A + +gUnk_081D2435:: @ 081D2435 + .incbin "baserom.gba", 0x1D2435, 0x00001D6 + +gUnk_081D260B:: @ 081D260B + .incbin "baserom.gba", 0x1D260B, 0x00001E1 + +gUnk_081D27EC:: @ 081D27EC + .incbin "baserom.gba", 0x1D27EC, 0x0000043 + +gUnk_081D282F:: @ 081D282F + .incbin "baserom.gba", 0x1D282F, 0x00000E1 + +gUnk_081D2910:: @ 081D2910 + .incbin "baserom.gba", 0x1D2910, 0x0000315 + +gUnk_081D2C25:: @ 081D2C25 + .incbin "baserom.gba", 0x1D2C25, 0x0000119 + +gUnk_081D2D3E:: @ 081D2D3E + .incbin "baserom.gba", 0x1D2D3E, 0x0000235 + +gUnk_081D2F73:: @ 081D2F73 + .incbin "baserom.gba", 0x1D2F73, 0x00000C8 + +gUnk_081D303B:: @ 081D303B + .incbin "baserom.gba", 0x1D303B, 0x0000009 + +gUnk_081D3044:: @ 081D3044 + .incbin "baserom.gba", 0x1D3044, 0x00000E1 + +gUnk_081D3125:: @ 081D3125 + .incbin "baserom.gba", 0x1D3125, 0x00000F6 + +gUnk_081D321B:: @ 081D321B + .incbin "baserom.gba", 0x1D321B, 0x000021C + +gUnk_081D3437:: @ 081D3437 + .incbin "baserom.gba", 0x1D3437, 0x00004FC + +gUnk_081D3933:: @ 081D3933 + .incbin "baserom.gba", 0x1D3933, 0x0000331 + +gUnk_081D3C64:: @ 081D3C64 + .incbin "baserom.gba", 0x1D3C64, 0x00000C8 + +gUnk_081D3D2C:: @ 081D3D2C + .incbin "baserom.gba", 0x1D3D2C, 0x000103D + +gUnk_081D4D69:: @ 081D4D69 + .incbin "baserom.gba", 0x1D4D69, 0x00012FE + +gUnk_081D6067:: @ 081D6067 + .incbin "baserom.gba", 0x1D6067, 0x000160D + +gUnk_081D7674:: @ 081D7674 + .incbin "baserom.gba", 0x1D7674, 0x00029C0 + +gUnk_081DA034:: @ 081DA034 + .incbin "baserom.gba", 0x1DA034, 0x0003FBD + +gUnk_081DDFF1:: @ 081DDFF1 + .incbin "baserom.gba", 0x1DDFF1, 0x0000FFE + +gUnk_081DEFEF:: @ 081DEFEF + .incbin "baserom.gba", 0x1DEFEF, 0x0000845 + +gUnk_081DF834:: @ 081DF834 + .incbin "baserom.gba", 0x1DF834, 0x00004C6 + +gUnk_081DFCFA:: @ 081DFCFA + .incbin "baserom.gba", 0x1DFCFA, 0x00002CE + +gUnk_081DFFC8:: @ 081DFFC8 + .incbin "baserom.gba", 0x1DFFC8, 0x0000008 + +gUnk_081DFFD0:: @ 081DFFD0 + .incbin "baserom.gba", 0x1DFFD0, 0x0000030 + +gUnk_081E0000:: @ 081E0000 + .incbin "baserom.gba", 0x1E0000, 0x0000012 + +gUnk_081E0012:: @ 081E0012 + .incbin "baserom.gba", 0x1E0012, 0x0000008 + +gUnk_081E001A:: @ 081E001A + .incbin "baserom.gba", 0x1E001A, 0x00000D8 + +gUnk_081E00F2:: @ 081E00F2 + .incbin "baserom.gba", 0x1E00F2, 0x0000015 + +gUnk_081E0107:: @ 081E0107 + .incbin "baserom.gba", 0x1E0107, 0x0000016 + +gUnk_081E011D:: @ 081E011D + .incbin "baserom.gba", 0x1E011D, 0x00001B9 + +gUnk_081E02D6:: @ 081E02D6 + .incbin "baserom.gba", 0x1E02D6, 0x000002A + +gUnk_081E0300:: @ 081E0300 + .incbin "baserom.gba", 0x1E0300, 0x0000004 + +gUnk_081E0304:: @ 081E0304 + .incbin "baserom.gba", 0x1E0304, 0x0000109 + +gUnk_081E040D:: @ 081E040D + .incbin "baserom.gba", 0x1E040D, 0x00000DF + +gUnk_081E04EC:: @ 081E04EC + .incbin "baserom.gba", 0x1E04EC, 0x000027A + +gUnk_081E0766:: @ 081E0766 + .incbin "baserom.gba", 0x1E0766, 0x00001A9 + +gUnk_081E090F:: @ 081E090F + .incbin "baserom.gba", 0x1E090F, 0x00000D3 + +gUnk_081E09E2:: @ 081E09E2 + .incbin "baserom.gba", 0x1E09E2, 0x000001F + +gUnk_081E0A01:: @ 081E0A01 + .incbin "baserom.gba", 0x1E0A01, 0x0000120 + +gUnk_081E0B21:: @ 081E0B21 + .incbin "baserom.gba", 0x1E0B21, 0x00002CA + +gUnk_081E0DEB:: @ 081E0DEB + .incbin "baserom.gba", 0x1E0DEB, 0x00000FA + +gUnk_081E0EE5:: @ 081E0EE5 + .incbin "baserom.gba", 0x1E0EE5, 0x0000110 + +gUnk_081E0FF5:: @ 081E0FF5 + .incbin "baserom.gba", 0x1E0FF5, 0x0000040 + +gUnk_081E1035:: @ 081E1035 + .incbin "baserom.gba", 0x1E1035, 0x00002CA + +gUnk_081E12FF:: @ 081E12FF + .incbin "baserom.gba", 0x1E12FF, 0x0000001 + +gUnk_081E1300:: @ 081E1300 + .incbin "baserom.gba", 0x1E1300, 0x0000601 + +gUnk_081E1901:: @ 081E1901 + .incbin "baserom.gba", 0x1E1901, 0x000000E + +gUnk_081E190F:: @ 081E190F + .incbin "baserom.gba", 0x1E190F, 0x00000EA + +gUnk_081E19F9:: @ 081E19F9 + .incbin "baserom.gba", 0x1E19F9, 0x0000415 + +gUnk_081E1E0E:: @ 081E1E0E + .incbin "baserom.gba", 0x1E1E0E, 0x000020B + +gUnk_081E2019:: @ 081E2019 + .incbin "baserom.gba", 0x1E2019, 0x000010D + +gUnk_081E2126:: @ 081E2126 + .incbin "baserom.gba", 0x1E2126, 0x0000203 + +gUnk_081E2329:: @ 081E2329 + .incbin "baserom.gba", 0x1E2329, 0x000011C + +gUnk_081E2445:: @ 081E2445 + .incbin "baserom.gba", 0x1E2445, 0x00000D1 + +gUnk_081E2516:: @ 081E2516 + .incbin "baserom.gba", 0x1E2516, 0x00000E7 + +gUnk_081E25FD:: @ 081E25FD + .incbin "baserom.gba", 0x1E25FD, 0x0000120 + +gUnk_081E271D:: @ 081E271D + .incbin "baserom.gba", 0x1E271D, 0x00001E4 + +gUnk_081E2901:: @ 081E2901 + .incbin "baserom.gba", 0x1E2901, 0x0000024 + +gUnk_081E2925:: @ 081E2925 + .incbin "baserom.gba", 0x1E2925, 0x0000201 + +gUnk_081E2B26:: @ 081E2B26 + .incbin "baserom.gba", 0x1E2B26, 0x0000222 + +gUnk_081E2D48:: @ 081E2D48 + .incbin "baserom.gba", 0x1E2D48, 0x00000EB + +gUnk_081E2E33:: @ 081E2E33 + .incbin "baserom.gba", 0x1E2E33, 0x0000102 + +gUnk_081E2F35:: @ 081E2F35 + .incbin "baserom.gba", 0x1E2F35, 0x0000404 + +gUnk_081E3339:: @ 081E3339 + .incbin "baserom.gba", 0x1E3339, 0x00000FA + +gUnk_081E3433:: @ 081E3433 + .incbin "baserom.gba", 0x1E3433, 0x000010E + +gUnk_081E3541:: @ 081E3541 + .incbin "baserom.gba", 0x1E3541, 0x000010A + +gUnk_081E364B:: @ 081E364B + .incbin "baserom.gba", 0x1E364B, 0x00003F1 + +gUnk_081E3A3C:: @ 081E3A3C + .incbin "baserom.gba", 0x1E3A3C, 0x0000B11 + +gUnk_081E454D:: @ 081E454D + .incbin "baserom.gba", 0x1E454D, 0x00065B3 + +gUnk_081EAB00:: @ 081EAB00 + .incbin "baserom.gba", 0x1EAB00, 0x0001882 + +gUnk_081EC382:: @ 081EC382 + .incbin "baserom.gba", 0x1EC382, 0x0002445 + +gUnk_081EE7C7:: @ 081EE7C7 + .incbin "baserom.gba", 0x1EE7C7, 0x0001335 + +gUnk_081EFAFC:: @ 081EFAFC + .incbin "baserom.gba", 0x1EFAFC, 0x00003CC + +gUnk_081EFEC8:: @ 081EFEC8 + .incbin "baserom.gba", 0x1EFEC8, 0x0000138 + +gUnk_081F0000:: @ 081F0000 + .incbin "baserom.gba", 0x1F0000, 0x0000008 + +gUnk_081F0008:: @ 081F0008 + .incbin "baserom.gba", 0x1F0008, 0x0000001 + +gUnk_081F0009:: @ 081F0009 + .incbin "baserom.gba", 0x1F0009, 0x0000021 + +gUnk_081F002A:: @ 081F002A + .incbin "baserom.gba", 0x1F002A, 0x0000004 + +gUnk_081F002E:: @ 081F002E + .incbin "baserom.gba", 0x1F002E, 0x0000002 + +gUnk_081F0030:: @ 081F0030 + .incbin "baserom.gba", 0x1F0030, 0x000000F + +gUnk_081F003F:: @ 081F003F + .incbin "baserom.gba", 0x1F003F, 0x0000003 + +gUnk_081F0042:: @ 081F0042 + .incbin "baserom.gba", 0x1F0042, 0x000004A + +gUnk_081F008C:: @ 081F008C + .incbin "baserom.gba", 0x1F008C, 0x0000251 + +gUnk_081F02DD:: @ 081F02DD + .incbin "baserom.gba", 0x1F02DD, 0x000017C + +gUnk_081F0459:: @ 081F0459 + .incbin "baserom.gba", 0x1F0459, 0x00003A1 + +gUnk_081F07FA:: @ 081F07FA + .incbin "baserom.gba", 0x1F07FA, 0x0000824 + +gUnk_081F101E:: @ 081F101E + .incbin "baserom.gba", 0x1F101E, 0x0000015 + +gUnk_081F1033:: @ 081F1033 + .incbin "baserom.gba", 0x1F1033, 0x0000033 + +gUnk_081F1066:: @ 081F1066 + .incbin "baserom.gba", 0x1F1066, 0x0000102 + +gUnk_081F1168:: @ 081F1168 + .incbin "baserom.gba", 0x1F1168, 0x000017F + +gUnk_081F12E7:: @ 081F12E7 + .incbin "baserom.gba", 0x1F12E7, 0x00002F9 + +gUnk_081F15E0:: @ 081F15E0 + .incbin "baserom.gba", 0x1F15E0, 0x000025D + +gUnk_081F183D:: @ 081F183D + .incbin "baserom.gba", 0x1F183D, 0x00001E0 + +gUnk_081F1A1D:: @ 081F1A1D + .incbin "baserom.gba", 0x1F1A1D, 0x00000EE + +gUnk_081F1B0B:: @ 081F1B0B + .incbin "baserom.gba", 0x1F1B0B, 0x00002F5 + +gUnk_081F1E00:: @ 081F1E00 + .incbin "baserom.gba", 0x1F1E00, 0x000011D + +gUnk_081F1F1D:: @ 081F1F1D + .incbin "baserom.gba", 0x1F1F1D, 0x0000005 + +gUnk_081F1F22:: @ 081F1F22 + .incbin "baserom.gba", 0x1F1F22, 0x00000E1 + +gUnk_081F2003:: @ 081F2003 + .incbin "baserom.gba", 0x1F2003, 0x000001F + +gUnk_081F2022:: @ 081F2022 + .incbin "baserom.gba", 0x1F2022, 0x00000A4 + +gUnk_081F20C6:: @ 081F20C6 + .incbin "baserom.gba", 0x1F20C6, 0x0000062 + +gUnk_081F2128:: @ 081F2128 + .incbin "baserom.gba", 0x1F2128, 0x00000F1 + +gUnk_081F2219:: @ 081F2219 + .incbin "baserom.gba", 0x1F2219, 0x0000103 + +gUnk_081F231C:: @ 081F231C + .incbin "baserom.gba", 0x1F231C, 0x00001DB + +gUnk_081F24F7:: @ 081F24F7 + .incbin "baserom.gba", 0x1F24F7, 0x0000116 + +gUnk_081F260D:: @ 081F260D + .incbin "baserom.gba", 0x1F260D, 0x000021D + +gUnk_081F282A:: @ 081F282A + .incbin "baserom.gba", 0x1F282A, 0x00000F8 + +gUnk_081F2922:: @ 081F2922 + .incbin "baserom.gba", 0x1F2922, 0x0000127 + +gUnk_081F2A49:: @ 081F2A49 + .incbin "baserom.gba", 0x1F2A49, 0x00000F1 + +gUnk_081F2B3A:: @ 081F2B3A + .incbin "baserom.gba", 0x1F2B3A, 0x00001F5 + +gUnk_081F2D2F:: @ 081F2D2F + .incbin "baserom.gba", 0x1F2D2F, 0x0000200 + +gUnk_081F2F2F:: @ 081F2F2F + .incbin "baserom.gba", 0x1F2F2F, 0x000050E + +gUnk_081F343D:: @ 081F343D + .incbin "baserom.gba", 0x1F343D, 0x00000F1 + +gUnk_081F352E:: @ 081F352E + .incbin "baserom.gba", 0x1F352E, 0x0000204 + +gUnk_081F3732:: @ 081F3732 + .incbin "baserom.gba", 0x1F3732, 0x0000106 + +gUnk_081F3838:: @ 081F3838 + .incbin "baserom.gba", 0x1F3838, 0x0000009 + +gUnk_081F3841:: @ 081F3841 + .incbin "baserom.gba", 0x1F3841, 0x0000BF6 + +gUnk_081F4437:: @ 081F4437 + .incbin "baserom.gba", 0x1F4437, 0x0000023 + +gUnk_081F445A:: @ 081F445A + .incbin "baserom.gba", 0x1F445A, 0x0000CD8 + +gUnk_081F5132:: @ 081F5132 + .incbin "baserom.gba", 0x1F5132, 0x000049D + +gUnk_081F55CF:: @ 081F55CF + .incbin "baserom.gba", 0x1F55CF, 0x0004A36 + +gUnk_081FA005:: @ 081FA005 + .incbin "baserom.gba", 0x1FA005, 0x000107B + +gUnk_081FB080:: @ 081FB080 + .incbin "baserom.gba", 0x1FB080, 0x00028A2 + +gUnk_081FD922:: @ 081FD922 + .incbin "baserom.gba", 0x1FD922, 0x00014F3 + +gUnk_081FEE15:: @ 081FEE15 + .incbin "baserom.gba", 0x1FEE15, 0x000022A + +gUnk_081FF03F:: @ 081FF03F + .incbin "baserom.gba", 0x1FF03F, 0x0000175 + +gUnk_081FF1B4:: @ 081FF1B4 + .incbin "baserom.gba", 0x1FF1B4, 0x0000D2D + +gUnk_081FFEE1:: @ 081FFEE1 + .incbin "baserom.gba", 0x1FFEE1, 0x000011F + +gUnk_08200000:: @ 08200000 + .incbin "baserom.gba", 0x200000, 0x0000001 + +gUnk_08200001:: @ 08200001 + .incbin "baserom.gba", 0x200001, 0x0000010 + +gUnk_08200011:: @ 08200011 + .incbin "baserom.gba", 0x200011, 0x000000F + +gUnk_08200020:: @ 08200020 + .incbin "baserom.gba", 0x200020, 0x000001F + +gUnk_0820003F:: @ 0820003F + .incbin "baserom.gba", 0x20003F, 0x0000003 + +gUnk_08200042:: @ 08200042 + .incbin "baserom.gba", 0x200042, 0x0000072 + +gUnk_082000B4:: @ 082000B4 + .incbin "baserom.gba", 0x2000B4, 0x0000008 + +gUnk_082000BC:: @ 082000BC + .incbin "baserom.gba", 0x2000BC, 0x000005A + +gUnk_08200116:: @ 08200116 + .incbin "baserom.gba", 0x200116, 0x0000009 + +gUnk_0820011F:: @ 0820011F + .incbin "baserom.gba", 0x20011F, 0x0000012 + +gUnk_08200131:: @ 08200131 + .incbin "baserom.gba", 0x200131, 0x0000079 + +gUnk_082001AA:: @ 082001AA + .incbin "baserom.gba", 0x2001AA, 0x0000130 + +gUnk_082002DA:: @ 082002DA + .incbin "baserom.gba", 0x2002DA, 0x000015A + +gUnk_08200434:: @ 08200434 + .incbin "baserom.gba", 0x200434, 0x00000CC + +gUnk_08200500:: @ 08200500 + .incbin "baserom.gba", 0x200500, 0x0000020 + +gUnk_08200520:: @ 08200520 + .incbin "baserom.gba", 0x200520, 0x0000033 + +gUnk_08200553:: @ 08200553 + .incbin "baserom.gba", 0x200553, 0x00000AD + +gUnk_08200600:: @ 08200600 + .incbin "baserom.gba", 0x200600, 0x0000009 + +gUnk_08200609:: @ 08200609 + .incbin "baserom.gba", 0x200609, 0x0000027 + +gUnk_08200630:: @ 08200630 + .incbin "baserom.gba", 0x200630, 0x00000D0 + +gUnk_08200700:: @ 08200700 + .incbin "baserom.gba", 0x200700, 0x0000006 + +gUnk_08200706:: @ 08200706 + .incbin "baserom.gba", 0x200706, 0x000001A + +gUnk_08200720:: @ 08200720 + .incbin "baserom.gba", 0x200720, 0x0000030 + +gUnk_08200750:: @ 08200750 + .incbin "baserom.gba", 0x200750, 0x0000010 + +gUnk_08200760:: @ 08200760 + .incbin "baserom.gba", 0x200760, 0x0000020 + +gUnk_08200780:: @ 08200780 + .incbin "baserom.gba", 0x200780, 0x0000060 + +gUnk_082007E0:: @ 082007E0 + .incbin "baserom.gba", 0x2007E0, 0x0000020 + +gUnk_08200800:: @ 08200800 + .incbin "baserom.gba", 0x200800, 0x0000020 + +gUnk_08200820:: @ 08200820 + .incbin "baserom.gba", 0x200820, 0x0000110 + +gUnk_08200930:: @ 08200930 + .incbin "baserom.gba", 0x200930, 0x00001D0 + +gUnk_08200B00:: @ 08200B00 + .incbin "baserom.gba", 0x200B00, 0x0000100 + +gUnk_08200C00:: @ 08200C00 + .incbin "baserom.gba", 0x200C00, 0x00002E0 + +gUnk_08200EE0:: @ 08200EE0 + .incbin "baserom.gba", 0x200EE0, 0x0000020 + +gUnk_08200F00:: @ 08200F00 + .incbin "baserom.gba", 0x200F00, 0x0000040 + +gUnk_08200F40:: @ 08200F40 + .incbin "baserom.gba", 0x200F40, 0x00000E0 + +gUnk_08201020:: @ 08201020 + .incbin "baserom.gba", 0x201020, 0x00001EE + +gUnk_0820120E:: @ 0820120E + .incbin "baserom.gba", 0x20120E, 0x00000ED + +gUnk_082012FB:: @ 082012FB + .incbin "baserom.gba", 0x2012FB, 0x000000A + +gUnk_08201305:: @ 08201305 + .incbin "baserom.gba", 0x201305, 0x00003FB + +gUnk_08201700:: @ 08201700 + .incbin "baserom.gba", 0x201700, 0x0000010 + +gUnk_08201710:: @ 08201710 + .incbin "baserom.gba", 0x201710, 0x0000309 + +gUnk_08201A19:: @ 08201A19 + .incbin "baserom.gba", 0x201A19, 0x00000E2 + +gUnk_08201AFB:: @ 08201AFB + .incbin "baserom.gba", 0x201AFB, 0x00000DD + +gUnk_08201BD8:: @ 08201BD8 + .incbin "baserom.gba", 0x201BD8, 0x0000338 + +gUnk_08201F10:: @ 08201F10 + .incbin "baserom.gba", 0x201F10, 0x0000026 + +gUnk_08201F36:: @ 08201F36 + .incbin "baserom.gba", 0x201F36, 0x0000110 + +gUnk_08202046:: @ 08202046 + .incbin "baserom.gba", 0x202046, 0x000009A + +gUnk_082020E0:: @ 082020E0 + .incbin "baserom.gba", 0x2020E0, 0x0000120 + +gUnk_08202200:: @ 08202200 + .incbin "baserom.gba", 0x202200, 0x0000010 + +gUnk_08202210:: @ 08202210 + .incbin "baserom.gba", 0x202210, 0x0000001 + +gUnk_08202211:: @ 08202211 + .incbin "baserom.gba", 0x202211, 0x000000C + +gUnk_0820221D:: @ 0820221D + .incbin "baserom.gba", 0x20221D, 0x00000FD + +gUnk_0820231A:: @ 0820231A + .incbin "baserom.gba", 0x20231A, 0x00000F3 + +gUnk_0820240D:: @ 0820240D + .incbin "baserom.gba", 0x20240D, 0x00003B3 + +gUnk_082027C0:: @ 082027C0 + .incbin "baserom.gba", 0x2027C0, 0x0000070 + +gUnk_08202830:: @ 08202830 + .incbin "baserom.gba", 0x202830, 0x00000E7 + +gUnk_08202917:: @ 08202917 + .incbin "baserom.gba", 0x202917, 0x00000FF + +gUnk_08202A16:: @ 08202A16 + .incbin "baserom.gba", 0x202A16, 0x0000009 + +gUnk_08202A1F:: @ 08202A1F + .incbin "baserom.gba", 0x202A1F, 0x00001E4 + +gUnk_08202C03:: @ 08202C03 + .incbin "baserom.gba", 0x202C03, 0x0000144 + +gUnk_08202D47:: @ 08202D47 + .incbin "baserom.gba", 0x202D47, 0x00000EE + +gUnk_08202E35:: @ 08202E35 + .incbin "baserom.gba", 0x202E35, 0x00001FF + +gUnk_08203034:: @ 08203034 + .incbin "baserom.gba", 0x203034, 0x0000002 + +gUnk_08203036:: @ 08203036 + .incbin "baserom.gba", 0x203036, 0x00000FC + +gUnk_08203132:: @ 08203132 + .incbin "baserom.gba", 0x203132, 0x000010B + +gUnk_0820323D:: @ 0820323D + .incbin "baserom.gba", 0x20323D, 0x0000103 + +gUnk_08203340:: @ 08203340 + .incbin "baserom.gba", 0x203340, 0x00000C0 + +gUnk_08203400:: @ 08203400 + .incbin "baserom.gba", 0x203400, 0x000002E + +gUnk_0820342E:: @ 0820342E + .incbin "baserom.gba", 0x20342E, 0x0000003 + +gUnk_08203431:: @ 08203431 + .incbin "baserom.gba", 0x203431, 0x00000CF + +gUnk_08203500:: @ 08203500 + .incbin "baserom.gba", 0x203500, 0x0000044 + +gUnk_08203544:: @ 08203544 + .incbin "baserom.gba", 0x203544, 0x00001EB + +gUnk_0820372F:: @ 0820372F + .incbin "baserom.gba", 0x20372F, 0x000001B + +gUnk_0820374A:: @ 0820374A + .incbin "baserom.gba", 0x20374A, 0x00000B6 + +gUnk_08203800:: @ 08203800 + .incbin "baserom.gba", 0x203800, 0x0000001 + +gUnk_08203801:: @ 08203801 + .incbin "baserom.gba", 0x203801, 0x00002FF + +gUnk_08203B00:: @ 08203B00 + .incbin "baserom.gba", 0x203B00, 0x000021D + +gUnk_08203D1D:: @ 08203D1D + .incbin "baserom.gba", 0x203D1D, 0x0000036 + +gUnk_08203D53:: @ 08203D53 + .incbin "baserom.gba", 0x203D53, 0x00003AD + +gUnk_08204100:: @ 08204100 + .incbin "baserom.gba", 0x204100, 0x0000100 + +gUnk_08204200:: @ 08204200 + .incbin "baserom.gba", 0x204200, 0x0000087 + +gUnk_08204287:: @ 08204287 + .incbin "baserom.gba", 0x204287, 0x0000079 + +gUnk_08204300:: @ 08204300 + .incbin "baserom.gba", 0x204300, 0x0000306 + +gUnk_08204606:: @ 08204606 + .incbin "baserom.gba", 0x204606, 0x0000004 + +gUnk_0820460A:: @ 0820460A + .incbin "baserom.gba", 0x20460A, 0x0000026 + +gUnk_08204630:: @ 08204630 + .incbin "baserom.gba", 0x204630, 0x0000020 + +gUnk_08204650:: @ 08204650 + .incbin "baserom.gba", 0x204650, 0x00002B0 + +gUnk_08204900:: @ 08204900 + .incbin "baserom.gba", 0x204900, 0x0000100 + +gUnk_08204A00:: @ 08204A00 + .incbin "baserom.gba", 0x204A00, 0x0000200 + +gUnk_08204C00:: @ 08204C00 + .incbin "baserom.gba", 0x204C00, 0x0000300 + +gUnk_08204F00:: @ 08204F00 + .incbin "baserom.gba", 0x204F00, 0x0000010 + +gUnk_08204F10:: @ 08204F10 + .incbin "baserom.gba", 0x204F10, 0x00001F0 + +gUnk_08205100:: @ 08205100 + .incbin "baserom.gba", 0x205100, 0x0000100 + +gUnk_08205200:: @ 08205200 + .incbin "baserom.gba", 0x205200, 0x000006D + +gUnk_0820526D:: @ 0820526D + .incbin "baserom.gba", 0x20526D, 0x0000393 + +gUnk_08205600:: @ 08205600 + .incbin "baserom.gba", 0x205600, 0x0000020 + +gUnk_08205620:: @ 08205620 + .incbin "baserom.gba", 0x205620, 0x00003E0 + +gUnk_08205A00:: @ 08205A00 + .incbin "baserom.gba", 0x205A00, 0x00006E9 + +gUnk_082060E9:: @ 082060E9 + .incbin "baserom.gba", 0x2060E9, 0x000071E + +gUnk_08206807:: @ 08206807 + .incbin "baserom.gba", 0x206807, 0x00003F9 + +gUnk_08206C00:: @ 08206C00 + .incbin "baserom.gba", 0x206C00, 0x000007F + +gUnk_08206C7F:: @ 08206C7F + .incbin "baserom.gba", 0x206C7F, 0x0000282 + +gUnk_08206F01:: @ 08206F01 + .incbin "baserom.gba", 0x206F01, 0x000001F + +gUnk_08206F20:: @ 08206F20 + .incbin "baserom.gba", 0x206F20, 0x0000064 + +gUnk_08206F84:: @ 08206F84 + .incbin "baserom.gba", 0x206F84, 0x0000106 + +gUnk_0820708A:: @ 0820708A + .incbin "baserom.gba", 0x20708A, 0x000007D + +gUnk_08207107:: @ 08207107 + .incbin "baserom.gba", 0x207107, 0x000020D + +gUnk_08207314:: @ 08207314 + .incbin "baserom.gba", 0x207314, 0x0000025 + +gUnk_08207339:: @ 08207339 + .incbin "baserom.gba", 0x207339, 0x00004BC + +gUnk_082077F5:: @ 082077F5 + .incbin "baserom.gba", 0x2077F5, 0x000020C + +gUnk_08207A01:: @ 08207A01 + .incbin "baserom.gba", 0x207A01, 0x0000169 + +gUnk_08207B6A:: @ 08207B6A + .incbin "baserom.gba", 0x207B6A, 0x00003E2 + +gUnk_08207F4C:: @ 08207F4C + .incbin "baserom.gba", 0x207F4C, 0x000011E + +gUnk_0820806A:: @ 0820806A + .incbin "baserom.gba", 0x20806A, 0x0000596 + +gUnk_08208600:: @ 08208600 + .incbin "baserom.gba", 0x208600, 0x000010E + +gUnk_0820870E:: @ 0820870E + .incbin "baserom.gba", 0x20870E, 0x0000019 + +gUnk_08208727:: @ 08208727 + .incbin "baserom.gba", 0x208727, 0x000041C + +gUnk_08208B43:: @ 08208B43 + .incbin "baserom.gba", 0x208B43, 0x0000072 + +gUnk_08208BB5:: @ 08208BB5 + .incbin "baserom.gba", 0x208BB5, 0x0000052 + +gUnk_08208C07:: @ 08208C07 + .incbin "baserom.gba", 0x208C07, 0x000027A + +gUnk_08208E81:: @ 08208E81 + .incbin "baserom.gba", 0x208E81, 0x0000089 + +gUnk_08208F0A:: @ 08208F0A + .incbin "baserom.gba", 0x208F0A, 0x000007A + +gUnk_08208F84:: @ 08208F84 + .incbin "baserom.gba", 0x208F84, 0x0000170 + +gUnk_082090F4:: @ 082090F4 + .incbin "baserom.gba", 0x2090F4, 0x000020C + +gUnk_08209300:: @ 08209300 + .incbin "baserom.gba", 0x209300, 0x00000AE + +gUnk_082093AE:: @ 082093AE + .incbin "baserom.gba", 0x2093AE, 0x00001E7 + +gUnk_08209595:: @ 08209595 + .incbin "baserom.gba", 0x209595, 0x00000AD + +gUnk_08209642:: @ 08209642 + .incbin "baserom.gba", 0x209642, 0x0000247 + +gUnk_08209889:: @ 08209889 + .incbin "baserom.gba", 0x209889, 0x000002A + +gUnk_082098B3:: @ 082098B3 + .incbin "baserom.gba", 0x2098B3, 0x00000D5 + +gUnk_08209988:: @ 08209988 + .incbin "baserom.gba", 0x209988, 0x0000280 + +gUnk_08209C08:: @ 08209C08 + .incbin "baserom.gba", 0x209C08, 0x0000300 + +gUnk_08209F08:: @ 08209F08 + .incbin "baserom.gba", 0x209F08, 0x00006E1 + +gUnk_0820A5E9:: @ 0820A5E9 + .incbin "baserom.gba", 0x20A5E9, 0x000016E + +gUnk_0820A757:: @ 0820A757 + .incbin "baserom.gba", 0x20A757, 0x0000050 + +gUnk_0820A7A7:: @ 0820A7A7 + .incbin "baserom.gba", 0x20A7A7, 0x0000025 + +gUnk_0820A7CC:: @ 0820A7CC + .incbin "baserom.gba", 0x20A7CC, 0x0000009 + +gUnk_0820A7D5:: @ 0820A7D5 + .incbin "baserom.gba", 0x20A7D5, 0x0000033 + +gUnk_0820A808:: @ 0820A808 + .incbin "baserom.gba", 0x20A808, 0x0000148 + +gUnk_0820A950:: @ 0820A950 + .incbin "baserom.gba", 0x20A950, 0x0000238 + +gUnk_0820AB88:: @ 0820AB88 + .incbin "baserom.gba", 0x20AB88, 0x0000581 + +gUnk_0820B109:: @ 0820B109 + .incbin "baserom.gba", 0x20B109, 0x0000081 + +gUnk_0820B18A:: @ 0820B18A + .incbin "baserom.gba", 0x20B18A, 0x0000226 + +gUnk_0820B3B0:: @ 0820B3B0 + .incbin "baserom.gba", 0x20B3B0, 0x0000079 + +gUnk_0820B429:: @ 0820B429 + .incbin "baserom.gba", 0x20B429, 0x000012B + +gUnk_0820B554:: @ 0820B554 + .incbin "baserom.gba", 0x20B554, 0x00000C3 + +gUnk_0820B617:: @ 0820B617 + .incbin "baserom.gba", 0x20B617, 0x00000DE + +gUnk_0820B6F5:: @ 0820B6F5 + .incbin "baserom.gba", 0x20B6F5, 0x000020D + +gUnk_0820B902:: @ 0820B902 + .incbin "baserom.gba", 0x20B902, 0x0000005 + +gUnk_0820B907:: @ 0820B907 + .incbin "baserom.gba", 0x20B907, 0x0000103 + +gUnk_0820BA0A:: @ 0820BA0A + .incbin "baserom.gba", 0x20BA0A, 0x00001DC + +gUnk_0820BBE6:: @ 0820BBE6 + .incbin "baserom.gba", 0x20BBE6, 0x00002C9 + +gUnk_0820BEAF:: @ 0820BEAF + .incbin "baserom.gba", 0x20BEAF, 0x000007D + +gUnk_0820BF2C:: @ 0820BF2C + .incbin "baserom.gba", 0x20BF2C, 0x000008D + +gUnk_0820BFB9:: @ 0820BFB9 + .incbin "baserom.gba", 0x20BFB9, 0x0000039 + +gUnk_0820BFF2:: @ 0820BFF2 + .incbin "baserom.gba", 0x20BFF2, 0x0000069 + +gUnk_0820C05B:: @ 0820C05B + .incbin "baserom.gba", 0x20C05B, 0x00000C5 + +gUnk_0820C120:: @ 0820C120 + .incbin "baserom.gba", 0x20C120, 0x000029C + +gUnk_0820C3BC:: @ 0820C3BC + .incbin "baserom.gba", 0x20C3BC, 0x0000358 + +gUnk_0820C714:: @ 0820C714 + .incbin "baserom.gba", 0x20C714, 0x0000030 + +gUnk_0820C744:: @ 0820C744 + .incbin "baserom.gba", 0x20C744, 0x0000081 + +gUnk_0820C7C5:: @ 0820C7C5 + .incbin "baserom.gba", 0x20C7C5, 0x000008B + +gUnk_0820C850:: @ 0820C850 + .incbin "baserom.gba", 0x20C850, 0x00000B0 + +gUnk_0820C900:: @ 0820C900 + .incbin "baserom.gba", 0x20C900, 0x000053E + +gUnk_0820CE3E:: @ 0820CE3E + .incbin "baserom.gba", 0x20CE3E, 0x00000D9 + +gUnk_0820CF17:: @ 0820CF17 + .incbin "baserom.gba", 0x20CF17, 0x00002ED + +gUnk_0820D204:: @ 0820D204 + .incbin "baserom.gba", 0x20D204, 0x00002D6 + +gUnk_0820D4DA:: @ 0820D4DA + .incbin "baserom.gba", 0x20D4DA, 0x000012A + +gUnk_0820D604:: @ 0820D604 + .incbin "baserom.gba", 0x20D604, 0x00003D9 + +gUnk_0820D9DD:: @ 0820D9DD + .incbin "baserom.gba", 0x20D9DD, 0x00000EA + +gUnk_0820DAC7:: @ 0820DAC7 + .incbin "baserom.gba", 0x20DAC7, 0x0000123 + +gUnk_0820DBEA:: @ 0820DBEA + .incbin "baserom.gba", 0x20DBEA, 0x00000EA + +gUnk_0820DCD4:: @ 0820DCD4 + .incbin "baserom.gba", 0x20DCD4, 0x00000CD + +gUnk_0820DDA1:: @ 0820DDA1 + .incbin "baserom.gba", 0x20DDA1, 0x0000067 + +gUnk_0820DE08:: @ 0820DE08 + .incbin "baserom.gba", 0x20DE08, 0x0000193 + +gUnk_0820DF9B:: @ 0820DF9B + .incbin "baserom.gba", 0x20DF9B, 0x000016C + +gUnk_0820E107:: @ 0820E107 + .incbin "baserom.gba", 0x20E107, 0x000001C + +gUnk_0820E123:: @ 0820E123 + .incbin "baserom.gba", 0x20E123, 0x0000080 + +gUnk_0820E1A3:: @ 0820E1A3 + .incbin "baserom.gba", 0x20E1A3, 0x0000341 + +gUnk_0820E4E4:: @ 0820E4E4 + .incbin "baserom.gba", 0x20E4E4, 0x0000004 + +gUnk_0820E4E8:: @ 0820E4E8 + .incbin "baserom.gba", 0x20E4E8, 0x0000015 + +gUnk_0820E4FD:: @ 0820E4FD + .incbin "baserom.gba", 0x20E4FD, 0x000000E + +gUnk_0820E50B:: @ 0820E50B + .incbin "baserom.gba", 0x20E50B, 0x0000002 + +gUnk_0820E50D:: @ 0820E50D + .incbin "baserom.gba", 0x20E50D, 0x000008A + +gUnk_0820E597:: @ 0820E597 + .incbin "baserom.gba", 0x20E597, 0x0000250 + +gUnk_0820E7E7:: @ 0820E7E7 + .incbin "baserom.gba", 0x20E7E7, 0x0000102 + +gUnk_0820E8E9:: @ 0820E8E9 + .incbin "baserom.gba", 0x20E8E9, 0x000021A + +gUnk_0820EB03:: @ 0820EB03 + .incbin "baserom.gba", 0x20EB03, 0x000000C + +gUnk_0820EB0F:: @ 0820EB0F + .incbin "baserom.gba", 0x20EB0F, 0x0000075 + +gUnk_0820EB84:: @ 0820EB84 + .incbin "baserom.gba", 0x20EB84, 0x000009F + +gUnk_0820EC23:: @ 0820EC23 + .incbin "baserom.gba", 0x20EC23, 0x0000120 + +gUnk_0820ED43:: @ 0820ED43 + .incbin "baserom.gba", 0x20ED43, 0x0000021 + +gUnk_0820ED64:: @ 0820ED64 + .incbin "baserom.gba", 0x20ED64, 0x0000127 + +gUnk_0820EE8B:: @ 0820EE8B + .incbin "baserom.gba", 0x20EE8B, 0x0000175 + +gUnk_0820F000:: @ 0820F000 + .incbin "baserom.gba", 0x20F000, 0x00000E0 + +gUnk_0820F0E0:: @ 0820F0E0 + .incbin "baserom.gba", 0x20F0E0, 0x0000A4F + +gUnk_0820FB2F:: @ 0820FB2F + .incbin "baserom.gba", 0x20FB2F, 0x0000045 + +gUnk_0820FB74:: @ 0820FB74 + .incbin "baserom.gba", 0x20FB74, 0x0000388 + +gUnk_0820FEFC:: @ 0820FEFC + .incbin "baserom.gba", 0x20FEFC, 0x0000056 + +gUnk_0820FF52:: @ 0820FF52 + .incbin "baserom.gba", 0x20FF52, 0x000003B + +gUnk_0820FF8D:: @ 0820FF8D + .incbin "baserom.gba", 0x20FF8D, 0x0000019 + +gUnk_0820FFA6:: @ 0820FFA6 + .incbin "baserom.gba", 0x20FFA6, 0x000005A + +gUnk_08210000:: @ 08210000 + .incbin "baserom.gba", 0x210000, 0x0000024 + +gUnk_08210024:: @ 08210024 + .incbin "baserom.gba", 0x210024, 0x0000063 + +gUnk_08210087:: @ 08210087 + .incbin "baserom.gba", 0x210087, 0x0000052 + +gUnk_082100D9:: @ 082100D9 + .incbin "baserom.gba", 0x2100D9, 0x0000127 + +gUnk_08210200:: @ 08210200 + .incbin "baserom.gba", 0x210200, 0x0000120 + +gUnk_08210320:: @ 08210320 + .incbin "baserom.gba", 0x210320, 0x00001BC + +gUnk_082104DC:: @ 082104DC + .incbin "baserom.gba", 0x2104DC, 0x0000325 + +gUnk_08210801:: @ 08210801 + .incbin "baserom.gba", 0x210801, 0x00001E0 + +gUnk_082109E1:: @ 082109E1 + .incbin "baserom.gba", 0x2109E1, 0x000030A + +gUnk_08210CEB:: @ 08210CEB + .incbin "baserom.gba", 0x210CEB, 0x0000222 + +gUnk_08210F0D:: @ 08210F0D + .incbin "baserom.gba", 0x210F0D, 0x00000D3 + +gUnk_08210FE0:: @ 08210FE0 + .incbin "baserom.gba", 0x210FE0, 0x0000142 + +gUnk_08211122:: @ 08211122 + .incbin "baserom.gba", 0x211122, 0x0000133 + +gUnk_08211255:: @ 08211255 + .incbin "baserom.gba", 0x211255, 0x000000D + +gUnk_08211262:: @ 08211262 + .incbin "baserom.gba", 0x211262, 0x0000093 + +gUnk_082112F5:: @ 082112F5 + .incbin "baserom.gba", 0x2112F5, 0x0000838 + +gUnk_08211B2D:: @ 08211B2D + .incbin "baserom.gba", 0x211B2D, 0x00001CD + +gUnk_08211CFA:: @ 08211CFA + .incbin "baserom.gba", 0x211CFA, 0x000010C + +gUnk_08211E06:: @ 08211E06 + .incbin "baserom.gba", 0x211E06, 0x000029B + +gUnk_082120A1:: @ 082120A1 + .incbin "baserom.gba", 0x2120A1, 0x0000259 + +gUnk_082122FA:: @ 082122FA + .incbin "baserom.gba", 0x2122FA, 0x0000010 + +gUnk_0821230A:: @ 0821230A + .incbin "baserom.gba", 0x21230A, 0x0000723 + +gUnk_08212A2D:: @ 08212A2D + .incbin "baserom.gba", 0x212A2D, 0x00003F9 + +gUnk_08212E26:: @ 08212E26 + .incbin "baserom.gba", 0x212E26, 0x00000F2 + +gUnk_08212F18:: @ 08212F18 + .incbin "baserom.gba", 0x212F18, 0x0000116 + +gUnk_0821302E:: @ 0821302E + .incbin "baserom.gba", 0x21302E, 0x000000B + +gUnk_08213039:: @ 08213039 + .incbin "baserom.gba", 0x213039, 0x00000F3 + +gUnk_0821312C:: @ 0821312C + .incbin "baserom.gba", 0x21312C, 0x00001F6 + +gUnk_08213322:: @ 08213322 + .incbin "baserom.gba", 0x213322, 0x000001A + +gUnk_0821333C:: @ 0821333C + .incbin "baserom.gba", 0x21333C, 0x0000407 + +gUnk_08213743:: @ 08213743 + .incbin "baserom.gba", 0x213743, 0x0000312 + +gUnk_08213A55:: @ 08213A55 + .incbin "baserom.gba", 0x213A55, 0x00001EF + +gUnk_08213C44:: @ 08213C44 + .incbin "baserom.gba", 0x213C44, 0x0000010 + +gUnk_08213C54:: @ 08213C54 + .incbin "baserom.gba", 0x213C54, 0x00003AB + +gUnk_08213FFF:: @ 08213FFF + .incbin "baserom.gba", 0x213FFF, 0x0000108 + +gUnk_08214107:: @ 08214107 + .incbin "baserom.gba", 0x214107, 0x0000150 + +gUnk_08214257:: @ 08214257 + .incbin "baserom.gba", 0x214257, 0x0000001 + +gUnk_08214258:: @ 08214258 + .incbin "baserom.gba", 0x214258, 0x000035F + +gUnk_082145B7:: @ 082145B7 + .incbin "baserom.gba", 0x2145B7, 0x00005C7 + +gUnk_08214B7E:: @ 08214B7E + .incbin "baserom.gba", 0x214B7E, 0x0000C81 + +gUnk_082157FF:: @ 082157FF + .incbin "baserom.gba", 0x2157FF, 0x000377A + +gUnk_08218F79:: @ 08218F79 + .incbin "baserom.gba", 0x218F79, 0x000309F + +gUnk_0821C018:: @ 0821C018 + .incbin "baserom.gba", 0x21C018, 0x0002FE7 + +gUnk_0821EFFF:: @ 0821EFFF + .incbin "baserom.gba", 0x21EFFF, 0x00000F1 + +gUnk_0821F0F0:: @ 0821F0F0 + .incbin "baserom.gba", 0x21F0F0, 0x0000F11 + +gUnk_08220001:: @ 08220001 + .incbin "baserom.gba", 0x220001, 0x0000100 + +gUnk_08220101:: @ 08220101 + .incbin "baserom.gba", 0x220101, 0x0000002 + +gUnk_08220103:: @ 08220103 + .incbin "baserom.gba", 0x220103, 0x00001D2 + +gUnk_082202D5:: @ 082202D5 + .incbin "baserom.gba", 0x2202D5, 0x000002B + +gUnk_08220300:: @ 08220300 + .incbin "baserom.gba", 0x220300, 0x00002F7 + +gUnk_082205F7:: @ 082205F7 + .incbin "baserom.gba", 0x2205F7, 0x000073D + +gUnk_08220D34:: @ 08220D34 + .incbin "baserom.gba", 0x220D34, 0x00001BE + +gUnk_08220EF2:: @ 08220EF2 + .incbin "baserom.gba", 0x220EF2, 0x0000227 + +gUnk_08221119:: @ 08221119 + .incbin "baserom.gba", 0x221119, 0x00004E2 + +gUnk_082215FB:: @ 082215FB + .incbin "baserom.gba", 0x2215FB, 0x00003F6 + +gUnk_082219F1:: @ 082219F1 + .incbin "baserom.gba", 0x2219F1, 0x0000027 + +gUnk_08221A18:: @ 08221A18 + .incbin "baserom.gba", 0x221A18, 0x00001D6 + +gUnk_08221BEE:: @ 08221BEE + .incbin "baserom.gba", 0x221BEE, 0x0000212 + +gUnk_08221E00:: @ 08221E00 + .incbin "baserom.gba", 0x221E00, 0x00004EE + +gUnk_082222EE:: @ 082222EE + .incbin "baserom.gba", 0x2222EE, 0x0000056 + +gUnk_08222344:: @ 08222344 + .incbin "baserom.gba", 0x222344, 0x00000EF + +gUnk_08222433:: @ 08222433 + .incbin "baserom.gba", 0x222433, 0x0000055 + +gUnk_08222488:: @ 08222488 + .incbin "baserom.gba", 0x222488, 0x00001A5 + +gUnk_0822262D:: @ 0822262D + .incbin "baserom.gba", 0x22262D, 0x00004DA + +gUnk_08222B07:: @ 08222B07 + .incbin "baserom.gba", 0x222B07, 0x0000428 + +gUnk_08222F2F:: @ 08222F2F + .incbin "baserom.gba", 0x222F2F, 0x00000D8 + +gUnk_08223007:: @ 08223007 + .incbin "baserom.gba", 0x223007, 0x000022B + +gUnk_08223232:: @ 08223232 + .incbin "baserom.gba", 0x223232, 0x0000001 + +gUnk_08223233:: @ 08223233 + .incbin "baserom.gba", 0x223233, 0x0000210 + +gUnk_08223443:: @ 08223443 + .incbin "baserom.gba", 0x223443, 0x0000002 + +gUnk_08223445:: @ 08223445 + .incbin "baserom.gba", 0x223445, 0x000000E + +gUnk_08223453:: @ 08223453 + .incbin "baserom.gba", 0x223453, 0x00000D6 + +gUnk_08223529:: @ 08223529 + .incbin "baserom.gba", 0x223529, 0x0000014 + +gUnk_0822353D:: @ 0822353D + .incbin "baserom.gba", 0x22353D, 0x0000207 + +gUnk_08223744:: @ 08223744 + .incbin "baserom.gba", 0x223744, 0x0000E13 + +gUnk_08224557:: @ 08224557 + .incbin "baserom.gba", 0x224557, 0x00006F4 + +gUnk_08224C4B:: @ 08224C4B + .incbin "baserom.gba", 0x224C4B, 0x00002EA + +gUnk_08224F35:: @ 08224F35 + .incbin "baserom.gba", 0x224F35, 0x0000ED5 + +gUnk_08225E0A:: @ 08225E0A + .incbin "baserom.gba", 0x225E0A, 0x00021ED + +gUnk_08227FF7:: @ 08227FF7 + .incbin "baserom.gba", 0x227FF7, 0x0001014 + +gUnk_0822900B:: @ 0822900B + .incbin "baserom.gba", 0x22900B, 0x000019F + +gUnk_082291AA:: @ 082291AA + .incbin "baserom.gba", 0x2291AA, 0x0000B79 + +gUnk_08229D23:: @ 08229D23 + .incbin "baserom.gba", 0x229D23, 0x00007CB + +gUnk_0822A4EE:: @ 0822A4EE + .incbin "baserom.gba", 0x22A4EE, 0x0000F19 + +gUnk_0822B407:: @ 0822B407 + .incbin "baserom.gba", 0x22B407, 0x0002414 + +gUnk_0822D81B:: @ 0822D81B + .incbin "baserom.gba", 0x22D81B, 0x00013D5 + +gUnk_0822EBF0:: @ 0822EBF0 + .incbin "baserom.gba", 0x22EBF0, 0x0000413 + +gUnk_0822F003:: @ 0822F003 + .incbin "baserom.gba", 0x22F003, 0x0000401 + +gUnk_0822F404:: @ 0822F404 + .incbin "baserom.gba", 0x22F404, 0x00004CE + +gUnk_0822F8D2:: @ 0822F8D2 + .incbin "baserom.gba", 0x22F8D2, 0x0000010 + +gUnk_0822F8E2:: @ 0822F8E2 + .incbin "baserom.gba", 0x22F8E2, 0x00001D8 + +gUnk_0822FABA:: @ 0822FABA + .incbin "baserom.gba", 0x22FABA, 0x0000846 + +gUnk_08230300:: @ 08230300 + .incbin "baserom.gba", 0x230300, 0x00005A6 + +gUnk_082308A6:: @ 082308A6 + .incbin "baserom.gba", 0x2308A6, 0x0000038 + +gUnk_082308DE:: @ 082308DE + .incbin "baserom.gba", 0x2308DE, 0x0000347 + +gUnk_08230C25:: @ 08230C25 + .incbin "baserom.gba", 0x230C25, 0x00000B9 + +gUnk_08230CDE:: @ 08230CDE + .incbin "baserom.gba", 0x230CDE, 0x000060C + +gUnk_082312EA:: @ 082312EA + .incbin "baserom.gba", 0x2312EA, 0x0000424 + +gUnk_0823170E:: @ 0823170E + .incbin "baserom.gba", 0x23170E, 0x000052F + +gUnk_08231C3D:: @ 08231C3D + .incbin "baserom.gba", 0x231C3D, 0x00000D5 + +gUnk_08231D12:: @ 08231D12 + .incbin "baserom.gba", 0x231D12, 0x000000C + +gUnk_08231D1E:: @ 08231D1E + .incbin "baserom.gba", 0x231D1E, 0x00000F5 + +gUnk_08231E13:: @ 08231E13 + .incbin "baserom.gba", 0x231E13, 0x0000104 + +gUnk_08231F17:: @ 08231F17 + .incbin "baserom.gba", 0x231F17, 0x00001C1 + +gUnk_082320D8:: @ 082320D8 + .incbin "baserom.gba", 0x2320D8, 0x000015D + +gUnk_08232235:: @ 08232235 + .incbin "baserom.gba", 0x232235, 0x0000075 + +gUnk_082322AA:: @ 082322AA + .incbin "baserom.gba", 0x2322AA, 0x000015C + +gUnk_08232406:: @ 08232406 + .incbin "baserom.gba", 0x232406, 0x000003F + +gUnk_08232445:: @ 08232445 + .incbin "baserom.gba", 0x232445, 0x00001CB + +gUnk_08232610:: @ 08232610 + .incbin "baserom.gba", 0x232610, 0x000020C + +gUnk_0823281C:: @ 0823281C + .incbin "baserom.gba", 0x23281C, 0x00000F5 + +gUnk_08232911:: @ 08232911 + .incbin "baserom.gba", 0x232911, 0x000011C + +gUnk_08232A2D:: @ 08232A2D + .incbin "baserom.gba", 0x232A2D, 0x00000E1 + +gUnk_08232B0E:: @ 08232B0E + .incbin "baserom.gba", 0x232B0E, 0x000000F + +gUnk_08232B1D:: @ 08232B1D + .incbin "baserom.gba", 0x232B1D, 0x0000006 + +gUnk_08232B23:: @ 08232B23 + .incbin "baserom.gba", 0x232B23, 0x00001C8 + +gUnk_08232CEB:: @ 08232CEB + .incbin "baserom.gba", 0x232CEB, 0x000002D + +gUnk_08232D18:: @ 08232D18 + .incbin "baserom.gba", 0x232D18, 0x0000015 + +gUnk_08232D2D:: @ 08232D2D + .incbin "baserom.gba", 0x232D2D, 0x0000007 + +gUnk_08232D34:: @ 08232D34 + .incbin "baserom.gba", 0x232D34, 0x000015D + +gUnk_08232E91:: @ 08232E91 + .incbin "baserom.gba", 0x232E91, 0x000007C + +gUnk_08232F0D:: @ 08232F0D + .incbin "baserom.gba", 0x232F0D, 0x000000A + +gUnk_08232F17:: @ 08232F17 + .incbin "baserom.gba", 0x232F17, 0x000001F + +gUnk_08232F36:: @ 08232F36 + .incbin "baserom.gba", 0x232F36, 0x00000F3 + +gUnk_08233029:: @ 08233029 + .incbin "baserom.gba", 0x233029, 0x0000006 + +gUnk_0823302F:: @ 0823302F + .incbin "baserom.gba", 0x23302F, 0x0000008 + +gUnk_08233037:: @ 08233037 + .incbin "baserom.gba", 0x233037, 0x00001F4 + +gUnk_0823322B:: @ 0823322B + .incbin "baserom.gba", 0x23322B, 0x00000EB + +gUnk_08233316:: @ 08233316 + .incbin "baserom.gba", 0x233316, 0x000001D + +gUnk_08233333:: @ 08233333 + .incbin "baserom.gba", 0x233333, 0x0000002 + +gUnk_08233335:: @ 08233335 + .incbin "baserom.gba", 0x233335, 0x0000064 + +gUnk_08233399:: @ 08233399 + .incbin "baserom.gba", 0x233399, 0x000008A + +gUnk_08233423:: @ 08233423 + .incbin "baserom.gba", 0x233423, 0x000000E + +gUnk_08233431:: @ 08233431 + .incbin "baserom.gba", 0x233431, 0x0000003 + +gUnk_08233434:: @ 08233434 + .incbin "baserom.gba", 0x233434, 0x000020D + +gUnk_08233641:: @ 08233641 + .incbin "baserom.gba", 0x233641, 0x0000021 + +gUnk_08233662:: @ 08233662 + .incbin "baserom.gba", 0x233662, 0x00000D6 + +gUnk_08233738:: @ 08233738 + .incbin "baserom.gba", 0x233738, 0x0000103 + +gUnk_0823383B:: @ 0823383B + .incbin "baserom.gba", 0x23383B, 0x0000217 + +gUnk_08233A52:: @ 08233A52 + .incbin "baserom.gba", 0x233A52, 0x0000009 + +gUnk_08233A5B:: @ 08233A5B + .incbin "baserom.gba", 0x233A5B, 0x000012E + +gUnk_08233B89:: @ 08233B89 + .incbin "baserom.gba", 0x233B89, 0x00000BD + +gUnk_08233C46:: @ 08233C46 + .incbin "baserom.gba", 0x233C46, 0x000030F + +gUnk_08233F55:: @ 08233F55 + .incbin "baserom.gba", 0x233F55, 0x00002CC + +gUnk_08234221:: @ 08234221 + .incbin "baserom.gba", 0x234221, 0x000021A + +gUnk_0823443B:: @ 0823443B + .incbin "baserom.gba", 0x23443B, 0x0000207 + +gUnk_08234642:: @ 08234642 + .incbin "baserom.gba", 0x234642, 0x0000BA7 + +gUnk_082351E9:: @ 082351E9 + .incbin "baserom.gba", 0x2351E9, 0x0000265 + +gUnk_0823544E:: @ 0823544E + .incbin "baserom.gba", 0x23544E, 0x00005FF + +gUnk_08235A4D:: @ 08235A4D + .incbin "baserom.gba", 0x235A4D, 0x00009EE + +gUnk_0823643B:: @ 0823643B + .incbin "baserom.gba", 0x23643B, 0x0002AC8 + +gUnk_08238F03:: @ 08238F03 + .incbin "baserom.gba", 0x238F03, 0x0001BA6 + +gUnk_0823AAA9:: @ 0823AAA9 + .incbin "baserom.gba", 0x23AAA9, 0x0001C6C + +gUnk_0823C715:: @ 0823C715 + .incbin "baserom.gba", 0x23C715, 0x00013EF + +gUnk_0823DB04:: @ 0823DB04 + .incbin "baserom.gba", 0x23DB04, 0x0000FFC + +gUnk_0823EB00:: @ 0823EB00 + .incbin "baserom.gba", 0x23EB00, 0x0001109 + +gUnk_0823FC09:: @ 0823FC09 + .incbin "baserom.gba", 0x23FC09, 0x00003F7 + +gUnk_08240000:: @ 08240000 + .incbin "baserom.gba", 0x240000, 0x000000F + +gUnk_0824000F:: @ 0824000F + .incbin "baserom.gba", 0x24000F, 0x00000FA + +gUnk_08240109:: @ 08240109 + .incbin "baserom.gba", 0x240109, 0x000001A + +gUnk_08240123:: @ 08240123 + .incbin "baserom.gba", 0x240123, 0x00001DD + +gUnk_08240300:: @ 08240300 + .incbin "baserom.gba", 0x240300, 0x0000CE5 + +gUnk_08240FE5:: @ 08240FE5 + .incbin "baserom.gba", 0x240FE5, 0x000041A + +gUnk_082413FF:: @ 082413FF + .incbin "baserom.gba", 0x2413FF, 0x0000915 + +gUnk_08241D14:: @ 08241D14 + .incbin "baserom.gba", 0x241D14, 0x00002FF + +gUnk_08242013:: @ 08242013 + .incbin "baserom.gba", 0x242013, 0x00000E5 + +gUnk_082420F8:: @ 082420F8 + .incbin "baserom.gba", 0x2420F8, 0x000000C + +gUnk_08242104:: @ 08242104 + .incbin "baserom.gba", 0x242104, 0x000012E + +gUnk_08242232:: @ 08242232 + .incbin "baserom.gba", 0x242232, 0x00000A5 + +gUnk_082422D7:: @ 082422D7 + .incbin "baserom.gba", 0x2422D7, 0x000063F + +gUnk_08242916:: @ 08242916 + .incbin "baserom.gba", 0x242916, 0x0000122 + +gUnk_08242A38:: @ 08242A38 + .incbin "baserom.gba", 0x242A38, 0x00003E8 + +gUnk_08242E20:: @ 08242E20 + .incbin "baserom.gba", 0x242E20, 0x0000106 + +gUnk_08242F26:: @ 08242F26 + .incbin "baserom.gba", 0x242F26, 0x00001EB + +gUnk_08243111:: @ 08243111 + .incbin "baserom.gba", 0x243111, 0x0000121 + +gUnk_08243232:: @ 08243232 + .incbin "baserom.gba", 0x243232, 0x00006FB + +gUnk_0824392D:: @ 0824392D + .incbin "baserom.gba", 0x24392D, 0x0000016 + +gUnk_08243943:: @ 08243943 + .incbin "baserom.gba", 0x243943, 0x0000002 + +gUnk_08243945:: @ 08243945 + .incbin "baserom.gba", 0x243945, 0x0000202 + +gUnk_08243B47:: @ 08243B47 + .incbin "baserom.gba", 0x243B47, 0x0000002 + +gUnk_08243B49:: @ 08243B49 + .incbin "baserom.gba", 0x243B49, 0x000008D + +gUnk_08243BD6:: @ 08243BD6 + .incbin "baserom.gba", 0x243BD6, 0x0000267 + +gUnk_08243E3D:: @ 08243E3D + .incbin "baserom.gba", 0x243E3D, 0x000000F + +gUnk_08243E4C:: @ 08243E4C + .incbin "baserom.gba", 0x243E4C, 0x00000FC + +gUnk_08243F48:: @ 08243F48 + .incbin "baserom.gba", 0x243F48, 0x000032C + +gUnk_08244274:: @ 08244274 + .incbin "baserom.gba", 0x244274, 0x00000E1 + +gUnk_08244355:: @ 08244355 + .incbin "baserom.gba", 0x244355, 0x0000608 + +gUnk_0824495D:: @ 0824495D + .incbin "baserom.gba", 0x24495D, 0x0000BD8 + +gUnk_08245535:: @ 08245535 + .incbin "baserom.gba", 0x245535, 0x00005CB + +gUnk_08245B00:: @ 08245B00 + .incbin "baserom.gba", 0x245B00, 0x00019D4 + +gUnk_082474D4:: @ 082474D4 + .incbin "baserom.gba", 0x2474D4, 0x0004C0C + +gUnk_0824C0E0:: @ 0824C0E0 + .incbin "baserom.gba", 0x24C0E0, 0x00007C0 + +gUnk_0824C8A0:: @ 0824C8A0 + .incbin "baserom.gba", 0x24C8A0, 0x0001973 + +gUnk_0824E213:: @ 0824E213 + .incbin "baserom.gba", 0x24E213, 0x0000111 + +gUnk_0824E324:: @ 0824E324 + .incbin "baserom.gba", 0x24E324, 0x00001BF + +gUnk_0824E4E3:: @ 0824E4E3 + .incbin "baserom.gba", 0x24E4E3, 0x000031D + +gUnk_0824E800:: @ 0824E800 + .incbin "baserom.gba", 0x24E800, 0x00001B7 + +gUnk_0824E9B7:: @ 0824E9B7 + .incbin "baserom.gba", 0x24E9B7, 0x0001659 + +gUnk_08250010:: @ 08250010 + .incbin "baserom.gba", 0x250010, 0x0000030 + +gUnk_08250040:: @ 08250040 + .incbin "baserom.gba", 0x250040, 0x00000C7 + +gUnk_08250107:: @ 08250107 + .incbin "baserom.gba", 0x250107, 0x00002EF + +gUnk_082503F6:: @ 082503F6 + .incbin "baserom.gba", 0x2503F6, 0x000002E + +gUnk_08250424:: @ 08250424 + .incbin "baserom.gba", 0x250424, 0x0000C74 + +gUnk_08251098:: @ 08251098 + .incbin "baserom.gba", 0x251098, 0x0000071 + +gUnk_08251109:: @ 08251109 + .incbin "baserom.gba", 0x251109, 0x00002B3 + +gUnk_082513BC:: @ 082513BC + .incbin "baserom.gba", 0x2513BC, 0x0000B50 + +gUnk_08251F0C:: @ 08251F0C + .incbin "baserom.gba", 0x251F0C, 0x00001F9 + +gUnk_08252105:: @ 08252105 + .incbin "baserom.gba", 0x252105, 0x0000039 + +gUnk_0825213E:: @ 0825213E + .incbin "baserom.gba", 0x25213E, 0x00006DA + +gUnk_08252818:: @ 08252818 + .incbin "baserom.gba", 0x252818, 0x00008C2 + +gUnk_082530DA:: @ 082530DA + .incbin "baserom.gba", 0x2530DA, 0x0000259 + +gUnk_08253333:: @ 08253333 + .incbin "baserom.gba", 0x253333, 0x0000610 + +gUnk_08253943:: @ 08253943 + .incbin "baserom.gba", 0x253943, 0x00001FE + +gUnk_08253B41:: @ 08253B41 + .incbin "baserom.gba", 0x253B41, 0x0000109 + +gUnk_08253C4A:: @ 08253C4A + .incbin "baserom.gba", 0x253C4A, 0x0000309 + +gUnk_08253F53:: @ 08253F53 + .incbin "baserom.gba", 0x253F53, 0x0000503 + +gUnk_08254456:: @ 08254456 + .incbin "baserom.gba", 0x254456, 0x00010E5 + +gUnk_0825553B:: @ 0825553B + .incbin "baserom.gba", 0x25553B, 0x0000018 + +gUnk_08255553:: @ 08255553 + .incbin "baserom.gba", 0x255553, 0x0000068 + +gUnk_082555BB:: @ 082555BB + .incbin "baserom.gba", 0x2555BB, 0x0000FC3 + +gUnk_0825657E:: @ 0825657E + .incbin "baserom.gba", 0x25657E, 0x0007F37 + +gUnk_0825E4B5:: @ 0825E4B5 + .incbin "baserom.gba", 0x25E4B5, 0x0000344 + +gUnk_0825E7F9:: @ 0825E7F9 + .incbin "baserom.gba", 0x25E7F9, 0x0001808 + +gUnk_08260001:: @ 08260001 + .incbin "baserom.gba", 0x260001, 0x0000007 + +gUnk_08260008:: @ 08260008 + .incbin "baserom.gba", 0x260008, 0x0000038 + +gUnk_08260040:: @ 08260040 + .incbin "baserom.gba", 0x260040, 0x0000094 + +gUnk_082600D4:: @ 082600D4 + .incbin "baserom.gba", 0x2600D4, 0x0000300 + +gUnk_082603D4:: @ 082603D4 + .incbin "baserom.gba", 0x2603D4, 0x0000051 + +gUnk_08260425:: @ 08260425 + .incbin "baserom.gba", 0x260425, 0x0000034 + +gUnk_08260459:: @ 08260459 + .incbin "baserom.gba", 0x260459, 0x00002A9 + +gUnk_08260702:: @ 08260702 + .incbin "baserom.gba", 0x260702, 0x00004AE + +gUnk_08260BB0:: @ 08260BB0 + .incbin "baserom.gba", 0x260BB0, 0x0000348 + +gUnk_08260EF8:: @ 08260EF8 + .incbin "baserom.gba", 0x260EF8, 0x0000011 + +gUnk_08260F09:: @ 08260F09 + .incbin "baserom.gba", 0x260F09, 0x0000D6C + +gUnk_08261C75:: @ 08261C75 + .incbin "baserom.gba", 0x261C75, 0x000009E + +gUnk_08261D13:: @ 08261D13 + .incbin "baserom.gba", 0x261D13, 0x0000401 + +gUnk_08262114:: @ 08262114 + .incbin "baserom.gba", 0x262114, 0x00004F1 + +gUnk_08262605:: @ 08262605 + .incbin "baserom.gba", 0x262605, 0x0000316 + +gUnk_0826291B:: @ 0826291B + .incbin "baserom.gba", 0x26291B, 0x0000307 + +gUnk_08262C22:: @ 08262C22 + .incbin "baserom.gba", 0x262C22, 0x0000407 + +gUnk_08263029:: @ 08263029 + .incbin "baserom.gba", 0x263029, 0x00002FA + +gUnk_08263323:: @ 08263323 + .incbin "baserom.gba", 0x263323, 0x000051D + +gUnk_08263840:: @ 08263840 + .incbin "baserom.gba", 0x263840, 0x0000206 + +gUnk_08263A46:: @ 08263A46 + .incbin "baserom.gba", 0x263A46, 0x0000508 + +gUnk_08263F4E:: @ 08263F4E + .incbin "baserom.gba", 0x263F4E, 0x0000005 + +gUnk_08263F53:: @ 08263F53 + .incbin "baserom.gba", 0x263F53, 0x00001FD + +gUnk_08264150:: @ 08264150 + .incbin "baserom.gba", 0x264150, 0x00003E0 + +gUnk_08264530:: @ 08264530 + .incbin "baserom.gba", 0x264530, 0x0000335 + +gUnk_08264865:: @ 08264865 + .incbin "baserom.gba", 0x264865, 0x00002D8 + +gUnk_08264B3D:: @ 08264B3D + .incbin "baserom.gba", 0x264B3D, 0x000031C + +gUnk_08264E59:: @ 08264E59 + .incbin "baserom.gba", 0x264E59, 0x0000113 + +gUnk_08264F6C:: @ 08264F6C + .incbin "baserom.gba", 0x264F6C, 0x000835A + +gUnk_0826D2C6:: @ 0826D2C6 + .incbin "baserom.gba", 0x26D2C6, 0x0000530 + +gUnk_0826D7F6:: @ 0826D7F6 + .incbin "baserom.gba", 0x26D7F6, 0x0000990 + +gUnk_0826E186:: @ 0826E186 + .incbin "baserom.gba", 0x26E186, 0x0000C68 + +gUnk_0826EDEE:: @ 0826EDEE + .incbin "baserom.gba", 0x26EDEE, 0x00011FE + +gUnk_0826FFEC:: @ 0826FFEC + .incbin "baserom.gba", 0x26FFEC, 0x0000014 + +gUnk_08270000:: @ 08270000 + .incbin "baserom.gba", 0x270000, 0x0000001 + +gUnk_08270001:: @ 08270001 + .incbin "baserom.gba", 0x270001, 0x000000F + +gUnk_08270010:: @ 08270010 + .incbin "baserom.gba", 0x270010, 0x0000001 + +gUnk_08270011:: @ 08270011 + .incbin "baserom.gba", 0x270011, 0x00000E0 + +gUnk_082700F1:: @ 082700F1 + .incbin "baserom.gba", 0x2700F1, 0x00000E7 + +gUnk_082701D8:: @ 082701D8 + .incbin "baserom.gba", 0x2701D8, 0x000042E + +gUnk_08270606:: @ 08270606 + .incbin "baserom.gba", 0x270606, 0x000011A + +gUnk_08270720:: @ 08270720 + .incbin "baserom.gba", 0x270720, 0x00002CD + +gUnk_082709ED:: @ 082709ED + .incbin "baserom.gba", 0x2709ED, 0x000051C + +gUnk_08270F09:: @ 08270F09 + .incbin "baserom.gba", 0x270F09, 0x00000F8 + +gUnk_08271001:: @ 08271001 + .incbin "baserom.gba", 0x271001, 0x0000065 + +gUnk_08271066:: @ 08271066 + .incbin "baserom.gba", 0x271066, 0x000025C + +gUnk_082712C2:: @ 082712C2 + .incbin "baserom.gba", 0x2712C2, 0x0000033 + +gUnk_082712F5:: @ 082712F5 + .incbin "baserom.gba", 0x2712F5, 0x00001E8 + +gUnk_082714DD:: @ 082714DD + .incbin "baserom.gba", 0x2714DD, 0x0000A1E + +gUnk_08271EFB:: @ 08271EFB + .incbin "baserom.gba", 0x271EFB, 0x0000718 + +gUnk_08272613:: @ 08272613 + .incbin "baserom.gba", 0x272613, 0x0000204 + +gUnk_08272817:: @ 08272817 + .incbin "baserom.gba", 0x272817, 0x00000E1 + +gUnk_082728F8:: @ 082728F8 + .incbin "baserom.gba", 0x2728F8, 0x0000023 + +gUnk_0827291B:: @ 0827291B + .incbin "baserom.gba", 0x27291B, 0x00001F8 + +gUnk_08272B13:: @ 08272B13 + .incbin "baserom.gba", 0x272B13, 0x000024D + +gUnk_08272D60:: @ 08272D60 + .incbin "baserom.gba", 0x272D60, 0x00001CD + +gUnk_08272F2D:: @ 08272F2D + .incbin "baserom.gba", 0x272F2D, 0x00006F5 + +gUnk_08273622:: @ 08273622 + .incbin "baserom.gba", 0x273622, 0x000031C + +gUnk_0827393E:: @ 0827393E + .incbin "baserom.gba", 0x27393E, 0x000040F + +gUnk_08273D4D:: @ 08273D4D + .incbin "baserom.gba", 0x273D4D, 0x0000101 + +gUnk_08273E4E:: @ 08273E4E + .incbin "baserom.gba", 0x273E4E, 0x00003DC + +gUnk_0827422A:: @ 0827422A + .incbin "baserom.gba", 0x27422A, 0x0000422 + +gUnk_0827464C:: @ 0827464C + .incbin "baserom.gba", 0x27464C, 0x0000011 + +gUnk_0827465D:: @ 0827465D + .incbin "baserom.gba", 0x27465D, 0x0002CAE + +gUnk_0827730B:: @ 0827730B + .incbin "baserom.gba", 0x27730B, 0x0001D03 + +gUnk_0827900E:: @ 0827900E + .incbin "baserom.gba", 0x27900E, 0x0004412 + +gUnk_0827D420:: @ 0827D420 + .incbin "baserom.gba", 0x27D420, 0x0000FEC + +gUnk_0827E40C:: @ 0827E40C + .incbin "baserom.gba", 0x27E40C, 0x000120A + +gUnk_0827F616:: @ 0827F616 + .incbin "baserom.gba", 0x27F616, 0x00009F3 + +gUnk_08280009:: @ 08280009 + .incbin "baserom.gba", 0x280009, 0x000001E + +gUnk_08280027:: @ 08280027 + .incbin "baserom.gba", 0x280027, 0x0000F01 + +gUnk_08280F28:: @ 08280F28 + .incbin "baserom.gba", 0x280F28, 0x00003CB + +gUnk_082812F3:: @ 082812F3 + .incbin "baserom.gba", 0x2812F3, 0x0000F8E + +gUnk_08282281:: @ 08282281 + .incbin "baserom.gba", 0x282281, 0x0000679 + +gUnk_082828FA:: @ 082828FA + .incbin "baserom.gba", 0x2828FA, 0x000042E + +gUnk_08282D28:: @ 08282D28 + .incbin "baserom.gba", 0x282D28, 0x0000013 + +gUnk_08282D3B:: @ 08282D3B + .incbin "baserom.gba", 0x282D3B, 0x0000202 + +gUnk_08282F3D:: @ 08282F3D + .incbin "baserom.gba", 0x282F3D, 0x00002E1 + +gUnk_0828321E:: @ 0828321E + .incbin "baserom.gba", 0x28321E, 0x00003FB + +gUnk_08283619:: @ 08283619 + .incbin "baserom.gba", 0x283619, 0x0000A3A + +gUnk_08284053:: @ 08284053 + .incbin "baserom.gba", 0x284053, 0x0000301 + +gUnk_08284354:: @ 08284354 + .incbin "baserom.gba", 0x284354, 0x00000D9 + +gUnk_0828442D:: @ 0828442D + .incbin "baserom.gba", 0x28442D, 0x0000332 + +gUnk_0828475F:: @ 0828475F + .incbin "baserom.gba", 0x28475F, 0x00002F0 + +gUnk_08284A4F:: @ 08284A4F + .incbin "baserom.gba", 0x284A4F, 0x00015B1 + +gUnk_08286000:: @ 08286000 + .incbin "baserom.gba", 0x286000, 0x000016C + +gUnk_0828616C:: @ 0828616C + .incbin "baserom.gba", 0x28616C, 0x0008C48 + +gUnk_0828EDB4:: @ 0828EDB4 + .incbin "baserom.gba", 0x28EDB4, 0x0000826 + +gUnk_0828F5DA:: @ 0828F5DA + .incbin "baserom.gba", 0x28F5DA, 0x0001009 + +gUnk_082905E3:: @ 082905E3 + .incbin "baserom.gba", 0x2905E3, 0x000011D + +gUnk_08290700:: @ 08290700 + .incbin "baserom.gba", 0x290700, 0x00001EE + +gUnk_082908EE:: @ 082908EE + .incbin "baserom.gba", 0x2908EE, 0x0000017 + +gUnk_08290905:: @ 08290905 + .incbin "baserom.gba", 0x290905, 0x0000601 + +gUnk_08290F06:: @ 08290F06 + .incbin "baserom.gba", 0x290F06, 0x00006E5 + +gUnk_082915EB:: @ 082915EB + .incbin "baserom.gba", 0x2915EB, 0x0000303 + +gUnk_082918EE:: @ 082918EE + .incbin "baserom.gba", 0x2918EE, 0x000078F + +gUnk_0829207D:: @ 0829207D + .incbin "baserom.gba", 0x29207D, 0x0000192 + +gUnk_0829220F:: @ 0829220F + .incbin "baserom.gba", 0x29220F, 0x00005CF + +gUnk_082927DE:: @ 082927DE + .incbin "baserom.gba", 0x2927DE, 0x000003A + +gUnk_08292818:: @ 08292818 + .incbin "baserom.gba", 0x292818, 0x00001F4 + +gUnk_08292A0C:: @ 08292A0C + .incbin "baserom.gba", 0x292A0C, 0x000048D + +gUnk_08292E99:: @ 08292E99 + .incbin "baserom.gba", 0x292E99, 0x0000298 + +gUnk_08293131:: @ 08293131 + .incbin "baserom.gba", 0x293131, 0x0000C27 + +gUnk_08293D58:: @ 08293D58 + .incbin "baserom.gba", 0x293D58, 0x00002FC + +gUnk_08294054:: @ 08294054 + .incbin "baserom.gba", 0x294054, 0x00001FB + +gUnk_0829424F:: @ 0829424F + .incbin "baserom.gba", 0x29424F, 0x0000001 + +gUnk_08294250:: @ 08294250 + .incbin "baserom.gba", 0x294250, 0x000030E + +gUnk_0829455E:: @ 0829455E + .incbin "baserom.gba", 0x29455E, 0x00002F1 + +gUnk_0829484F:: @ 0829484F + .incbin "baserom.gba", 0x29484F, 0x0000205 + +gUnk_08294A54:: @ 08294A54 + .incbin "baserom.gba", 0x294A54, 0x0000106 + +gUnk_08294B5A:: @ 08294B5A + .incbin "baserom.gba", 0x294B5A, 0x00008CB + +gUnk_08295425:: @ 08295425 + .incbin "baserom.gba", 0x295425, 0x0000223 + +gUnk_08295648:: @ 08295648 + .incbin "baserom.gba", 0x295648, 0x0005ABB + +gUnk_0829B103:: @ 0829B103 + .incbin "baserom.gba", 0x29B103, 0x0002DE9 + +gUnk_0829DEEC:: @ 0829DEEC + .incbin "baserom.gba", 0x29DEEC, 0x0002114 + +gUnk_082A0000:: @ 082A0000 + .incbin "baserom.gba", 0x2A0000, 0x0000004 + +gUnk_082A0004:: @ 082A0004 + .incbin "baserom.gba", 0x2A0004, 0x0000005 + +gUnk_082A0009:: @ 082A0009 + .incbin "baserom.gba", 0x2A0009, 0x0000001 + +gUnk_082A000A:: @ 082A000A + .incbin "baserom.gba", 0x2A000A, 0x0000004 + +gUnk_082A000E:: @ 082A000E + .incbin "baserom.gba", 0x2A000E, 0x0000002 + +gUnk_082A0010:: @ 082A0010 + .incbin "baserom.gba", 0x2A0010, 0x0000008 + +gUnk_082A0018:: @ 082A0018 + .incbin "baserom.gba", 0x2A0018, 0x0000004 + +gUnk_082A001C:: @ 082A001C + .incbin "baserom.gba", 0x2A001C, 0x0000017 + +gUnk_082A0033:: @ 082A0033 + .incbin "baserom.gba", 0x2A0033, 0x000003F + +gUnk_082A0072:: @ 082A0072 + .incbin "baserom.gba", 0x2A0072, 0x000038F + +gUnk_082A0401:: @ 082A0401 + .incbin "baserom.gba", 0x2A0401, 0x000000F + +gUnk_082A0410:: @ 082A0410 + .incbin "baserom.gba", 0x2A0410, 0x0000024 + +gUnk_082A0434:: @ 082A0434 + .incbin "baserom.gba", 0x2A0434, 0x000000F + +gUnk_082A0443:: @ 082A0443 + .incbin "baserom.gba", 0x2A0443, 0x0000001 + +gUnk_082A0444:: @ 082A0444 + .incbin "baserom.gba", 0x2A0444, 0x0000010 + +gUnk_082A0454:: @ 082A0454 + .incbin "baserom.gba", 0x2A0454, 0x0000005 + +gUnk_082A0459:: @ 082A0459 + .incbin "baserom.gba", 0x2A0459, 0x000000A + +gUnk_082A0463:: @ 082A0463 + .incbin "baserom.gba", 0x2A0463, 0x0000025 + +gUnk_082A0488:: @ 082A0488 + .incbin "baserom.gba", 0x2A0488, 0x0000379 + +gUnk_082A0801:: @ 082A0801 + .incbin "baserom.gba", 0x2A0801, 0x0000004 + +gUnk_082A0805:: @ 082A0805 + .incbin "baserom.gba", 0x2A0805, 0x0000002 + +gUnk_082A0807:: @ 082A0807 + .incbin "baserom.gba", 0x2A0807, 0x0000022 + +gUnk_082A0829:: @ 082A0829 + .incbin "baserom.gba", 0x2A0829, 0x0000AB5 + +gUnk_082A12DE:: @ 082A12DE + .incbin "baserom.gba", 0x2A12DE, 0x0000106 + +gUnk_082A13E4:: @ 082A13E4 + .incbin "baserom.gba", 0x2A13E4, 0x0000437 + +gUnk_082A181B:: @ 082A181B + .incbin "baserom.gba", 0x2A181B, 0x00003BC + +gUnk_082A1BD7:: @ 082A1BD7 + .incbin "baserom.gba", 0x2A1BD7, 0x0000731 + +gUnk_082A2308:: @ 082A2308 + .incbin "baserom.gba", 0x2A2308, 0x00000F3 + +gUnk_082A23FB:: @ 082A23FB + .incbin "baserom.gba", 0x2A23FB, 0x0000309 + +gUnk_082A2704:: @ 082A2704 + .incbin "baserom.gba", 0x2A2704, 0x00001E5 + +gUnk_082A28E9:: @ 082A28E9 + .incbin "baserom.gba", 0x2A28E9, 0x0000831 + +gUnk_082A311A:: @ 082A311A + .incbin "baserom.gba", 0x2A311A, 0x000090E + +gUnk_082A3A28:: @ 082A3A28 + .incbin "baserom.gba", 0x2A3A28, 0x0000009 + +gUnk_082A3A31:: @ 082A3A31 + .incbin "baserom.gba", 0x2A3A31, 0x00003F4 + +gUnk_082A3E25:: @ 082A3E25 + .incbin "baserom.gba", 0x2A3E25, 0x0000108 + +gUnk_082A3F2D:: @ 082A3F2D + .incbin "baserom.gba", 0x2A3F2D, 0x000041A + +gUnk_082A4347:: @ 082A4347 + .incbin "baserom.gba", 0x2A4347, 0x000000E + +gUnk_082A4355:: @ 082A4355 + .incbin "baserom.gba", 0x2A4355, 0x00000ED + +gUnk_082A4442:: @ 082A4442 + .incbin "baserom.gba", 0x2A4442, 0x000000B + +gUnk_082A444D:: @ 082A444D + .incbin "baserom.gba", 0x2A444D, 0x00000F2 + +gUnk_082A453F:: @ 082A453F + .incbin "baserom.gba", 0x2A453F, 0x0000007 + +gUnk_082A4546:: @ 082A4546 + .incbin "baserom.gba", 0x2A4546, 0x000020E + +gUnk_082A4754:: @ 082A4754 + .incbin "baserom.gba", 0x2A4754, 0x000020E + +gUnk_082A4962:: @ 082A4962 + .incbin "baserom.gba", 0x2A4962, 0x00000D5 + +gUnk_082A4A37:: @ 082A4A37 + .incbin "baserom.gba", 0x2A4A37, 0x0000020 + +gUnk_082A4A57:: @ 082A4A57 + .incbin "baserom.gba", 0x2A4A57, 0x0000603 + +gUnk_082A505A:: @ 082A505A + .incbin "baserom.gba", 0x2A505A, 0x0005CB1 + +gUnk_082AAD0B:: @ 082AAD0B + .incbin "baserom.gba", 0x2AAD0B, 0x0000EAF + +gUnk_082ABBBA:: @ 082ABBBA + .incbin "baserom.gba", 0x2ABBBA, 0x0000332 + +gUnk_082ABEEC:: @ 082ABEEC + .incbin "baserom.gba", 0x2ABEEC, 0x000270A + +gUnk_082AE5F6:: @ 082AE5F6 + .incbin "baserom.gba", 0x2AE5F6, 0x000020F + +gUnk_082AE805:: @ 082AE805 + .incbin "baserom.gba", 0x2AE805, 0x000166B + +gUnk_082AFE70:: @ 082AFE70 + .incbin "baserom.gba", 0x2AFE70, 0x000015E + +gUnk_082AFFCE:: @ 082AFFCE + .incbin "baserom.gba", 0x2AFFCE, 0x0000F3B + +gUnk_082B0F09:: @ 082B0F09 + .incbin "baserom.gba", 0x2B0F09, 0x0000529 + +gUnk_082B1432:: @ 082B1432 + .incbin "baserom.gba", 0x2B1432, 0x00009BD + +gUnk_082B1DEF:: @ 082B1DEF + .incbin "baserom.gba", 0x2B1DEF, 0x000060F + +gUnk_082B23FE:: @ 082B23FE + .incbin "baserom.gba", 0x2B23FE, 0x00006E4 + +gUnk_082B2AE2:: @ 082B2AE2 + .incbin "baserom.gba", 0x2B2AE2, 0x000092E + +gUnk_082B3410:: @ 082B3410 + .incbin "baserom.gba", 0x2B3410, 0x0000234 + +gUnk_082B3644:: @ 082B3644 + .incbin "baserom.gba", 0x2B3644, 0x0000115 + +gUnk_082B3759:: @ 082B3759 + .incbin "baserom.gba", 0x2B3759, 0x00005E3 + +gUnk_082B3D3C:: @ 082B3D3C + .incbin "baserom.gba", 0x2B3D3C, 0x0000224 + +gUnk_082B3F60:: @ 082B3F60 + .incbin "baserom.gba", 0x2B3F60, 0x00005B4 + +gUnk_082B4514:: @ 082B4514 + .incbin "baserom.gba", 0x2B4514, 0x0000448 + +gUnk_082B495C:: @ 082B495C + .incbin "baserom.gba", 0x2B495C, 0x0000008 + +gUnk_082B4964:: @ 082B4964 + .incbin "baserom.gba", 0x2B4964, 0x0000A05 + +gUnk_082B5369:: @ 082B5369 + .incbin "baserom.gba", 0x2B5369, 0x0002C97 + +gUnk_082B8000:: @ 082B8000 + .incbin "baserom.gba", 0x2B8000, 0x0005C81 + +gUnk_082BDC81:: @ 082BDC81 + .incbin "baserom.gba", 0x2BDC81, 0x0001F3B + +gUnk_082BFBBC:: @ 082BFBBC + .incbin "baserom.gba", 0x2BFBBC, 0x00002C7 + +gUnk_082BFE83:: @ 082BFE83 + .incbin "baserom.gba", 0x2BFE83, 0x000017D + +gUnk_082C0000:: @ 082C0000 + .incbin "baserom.gba", 0x2C0000, 0x000003C + +gUnk_082C003C:: @ 082C003C + .incbin "baserom.gba", 0x2C003C, 0x0000024 + +gUnk_082C0060:: @ 082C0060 + .incbin "baserom.gba", 0x2C0060, 0x00000A7 + +gUnk_082C0107:: @ 082C0107 + .incbin "baserom.gba", 0x2C0107, 0x0000724 + +gUnk_082C082B:: @ 082C082B + .incbin "baserom.gba", 0x2C082B, 0x00002D5 + +gUnk_082C0B00:: @ 082C0B00 + .incbin "baserom.gba", 0x2C0B00, 0x0000406 + +gUnk_082C0F06:: @ 082C0F06 + .incbin "baserom.gba", 0x2C0F06, 0x00016FF + +gUnk_082C2605:: @ 082C2605 + .incbin "baserom.gba", 0x2C2605, 0x00002FE + +gUnk_082C2903:: @ 082C2903 + .incbin "baserom.gba", 0x2C2903, 0x0000E14 + +gUnk_082C3717:: @ 082C3717 + .incbin "baserom.gba", 0x2C3717, 0x0000225 + +gUnk_082C393C:: @ 082C393C + .incbin "baserom.gba", 0x2C393C, 0x00001DB + +gUnk_082C3B17:: @ 082C3B17 + .incbin "baserom.gba", 0x2C3B17, 0x000033A + +gUnk_082C3E51:: @ 082C3E51 + .incbin "baserom.gba", 0x2C3E51, 0x00005E6 + +gUnk_082C4437:: @ 082C4437 + .incbin "baserom.gba", 0x2C4437, 0x0001C39 + +gUnk_082C6070:: @ 082C6070 + .incbin "baserom.gba", 0x2C6070, 0x0000FB1 + +gUnk_082C7021:: @ 082C7021 + .incbin "baserom.gba", 0x2C7021, 0x0000AFF + +gUnk_082C7B20:: @ 082C7B20 + .incbin "baserom.gba", 0x2C7B20, 0x0004D18 + +gUnk_082CC838:: @ 082CC838 + .incbin "baserom.gba", 0x2CC838, 0x000249E + +gUnk_082CECD6:: @ 082CECD6 + .incbin "baserom.gba", 0x2CECD6, 0x000132A + +gUnk_082D0000:: @ 082D0000 + .incbin "baserom.gba", 0x2D0000, 0x000006E + +gUnk_082D006E:: @ 082D006E + .incbin "baserom.gba", 0x2D006E, 0x0000060 + +gUnk_082D00CE:: @ 082D00CE + .incbin "baserom.gba", 0x2D00CE, 0x0000171 + +gUnk_082D023F:: @ 082D023F + .incbin "baserom.gba", 0x2D023F, 0x0000204 + +gUnk_082D0443:: @ 082D0443 + .incbin "baserom.gba", 0x2D0443, 0x0000001 + +gUnk_082D0444:: @ 082D0444 + .incbin "baserom.gba", 0x2D0444, 0x0000015 + +gUnk_082D0459:: @ 082D0459 + .incbin "baserom.gba", 0x2D0459, 0x000002F + +gUnk_082D0488:: @ 082D0488 + .incbin "baserom.gba", 0x2D0488, 0x0000EA1 + +gUnk_082D1329:: @ 082D1329 + .incbin "baserom.gba", 0x2D1329, 0x0000716 + +gUnk_082D1A3F:: @ 082D1A3F + .incbin "baserom.gba", 0x2D1A3F, 0x0000AF1 + +gUnk_082D2530:: @ 082D2530 + .incbin "baserom.gba", 0x2D2530, 0x00001F5 + +gUnk_082D2725:: @ 082D2725 + .incbin "baserom.gba", 0x2D2725, 0x00003F6 + +gUnk_082D2B1B:: @ 082D2B1B + .incbin "baserom.gba", 0x2D2B1B, 0x00000F4 + +gUnk_082D2C0F:: @ 082D2C0F + .incbin "baserom.gba", 0x2D2C0F, 0x0000A1A + +gUnk_082D3629:: @ 082D3629 + .incbin "baserom.gba", 0x2D3629, 0x0000B0F + +gUnk_082D4138:: @ 082D4138 + .incbin "baserom.gba", 0x2D4138, 0x000075C + +gUnk_082D4894:: @ 082D4894 + .incbin "baserom.gba", 0x2D4894, 0x00004CD + +gUnk_082D4D61:: @ 082D4D61 + .incbin "baserom.gba", 0x2D4D61, 0x0000208 + +gUnk_082D4F69:: @ 082D4F69 + .incbin "baserom.gba", 0x2D4F69, 0x00004D7 + +gUnk_082D5440:: @ 082D5440 + .incbin "baserom.gba", 0x2D5440, 0x000012D + +gUnk_082D556D:: @ 082D556D + .incbin "baserom.gba", 0x2D556D, 0x00004ED + +gUnk_082D5A5A:: @ 082D5A5A + .incbin "baserom.gba", 0x2D5A5A, 0x00000FB + +gUnk_082D5B55:: @ 082D5B55 + .incbin "baserom.gba", 0x2D5B55, 0x0007F92 + +gUnk_082DDAE7:: @ 082DDAE7 + .incbin "baserom.gba", 0x2DDAE7, 0x00024E9 + +gUnk_082DFFD0:: @ 082DFFD0 + .incbin "baserom.gba", 0x2DFFD0, 0x000006C + +gUnk_082E003C:: @ 082E003C + .incbin "baserom.gba", 0x2E003C, 0x0000001 + +gUnk_082E003D:: @ 082E003D + .incbin "baserom.gba", 0x2E003D, 0x00010AA + +gUnk_082E10E7:: @ 082E10E7 + .incbin "baserom.gba", 0x2E10E7, 0x0000024 + +gUnk_082E110B:: @ 082E110B + .incbin "baserom.gba", 0x2E110B, 0x00003FE + +gUnk_082E1509:: @ 082E1509 + .incbin "baserom.gba", 0x2E1509, 0x0000211 + +gUnk_082E171A:: @ 082E171A + .incbin "baserom.gba", 0x2E171A, 0x0000AF8 + +gUnk_082E2212:: @ 082E2212 + .incbin "baserom.gba", 0x2E2212, 0x0000AE9 + +gUnk_082E2CFB:: @ 082E2CFB + .incbin "baserom.gba", 0x2E2CFB, 0x0001805 + +gUnk_082E4500:: @ 082E4500 + .incbin "baserom.gba", 0x2E4500, 0x000053A + +gUnk_082E4A3A:: @ 082E4A3A + .incbin "baserom.gba", 0x2E4A3A, 0x0000F1B + +gUnk_082E5955:: @ 082E5955 + .incbin "baserom.gba", 0x2E5955, 0x0000F9F + +gUnk_082E68F4:: @ 082E68F4 + .incbin "baserom.gba", 0x2E68F4, 0x0001081 + +gUnk_082E7975:: @ 082E7975 + .incbin "baserom.gba", 0x2E7975, 0x00003B4 + +gUnk_082E7D29:: @ 082E7D29 + .incbin "baserom.gba", 0x2E7D29, 0x00045C2 + +gUnk_082EC2EB:: @ 082EC2EB + .incbin "baserom.gba", 0x2EC2EB, 0x0002113 + +gUnk_082EE3FE:: @ 082EE3FE + .incbin "baserom.gba", 0x2EE3FE, 0x0000A23 + +gUnk_082EEE21:: @ 082EEE21 + .incbin "baserom.gba", 0x2EEE21, 0x00011DF + +gUnk_082F0000:: @ 082F0000 + .incbin "baserom.gba", 0x2F0000, 0x0000008 + +gUnk_082F0008:: @ 082F0008 + .incbin "baserom.gba", 0x2F0008, 0x0000008 + +gUnk_082F0010:: @ 082F0010 + .incbin "baserom.gba", 0x2F0010, 0x0000005 + +gUnk_082F0015:: @ 082F0015 + .incbin "baserom.gba", 0x2F0015, 0x0000009 + +gUnk_082F001E:: @ 082F001E + .incbin "baserom.gba", 0x2F001E, 0x00000B4 + +gUnk_082F00D2:: @ 082F00D2 + .incbin "baserom.gba", 0x2F00D2, 0x000002C + +gUnk_082F00FE:: @ 082F00FE + .incbin "baserom.gba", 0x2F00FE, 0x0000339 + +gUnk_082F0437:: @ 082F0437 + .incbin "baserom.gba", 0x2F0437, 0x0000022 + +gUnk_082F0459:: @ 082F0459 + .incbin "baserom.gba", 0x2F0459, 0x0000025 + +gUnk_082F047E:: @ 082F047E + .incbin "baserom.gba", 0x2F047E, 0x0000389 + +gUnk_082F0807:: @ 082F0807 + .incbin "baserom.gba", 0x2F0807, 0x00006FC + +gUnk_082F0F03:: @ 082F0F03 + .incbin "baserom.gba", 0x2F0F03, 0x0000600 + +gUnk_082F1503:: @ 082F1503 + .incbin "baserom.gba", 0x2F1503, 0x0000804 + +gUnk_082F1D07:: @ 082F1D07 + .incbin "baserom.gba", 0x2F1D07, 0x0000AED + +gUnk_082F27F4:: @ 082F27F4 + .incbin "baserom.gba", 0x2F27F4, 0x000031B + +gUnk_082F2B0F:: @ 082F2B0F + .incbin "baserom.gba", 0x2F2B0F, 0x0001265 + +gUnk_082F3D74:: @ 082F3D74 + .incbin "baserom.gba", 0x2F3D74, 0x000018F + +gUnk_082F3F03:: @ 082F3F03 + .incbin "baserom.gba", 0x2F3F03, 0x0000015 + +gUnk_082F3F18:: @ 082F3F18 + .incbin "baserom.gba", 0x2F3F18, 0x0000215 + +gUnk_082F412D:: @ 082F412D + .incbin "baserom.gba", 0x2F412D, 0x000030B + +gUnk_082F4438:: @ 082F4438 + .incbin "baserom.gba", 0x2F4438, 0x0000BCF + +gUnk_082F5007:: @ 082F5007 + .incbin "baserom.gba", 0x2F5007, 0x0000051 + +gUnk_082F5058:: @ 082F5058 + .incbin "baserom.gba", 0x2F5058, 0x00000B9 + +gUnk_082F5111:: @ 082F5111 + .incbin "baserom.gba", 0x2F5111, 0x000015B + +gUnk_082F526C:: @ 082F526C + .incbin "baserom.gba", 0x2F526C, 0x00079B8 + +gUnk_082FCC24:: @ 082FCC24 + .incbin "baserom.gba", 0x2FCC24, 0x00011D5 + +gUnk_082FDDF9:: @ 082FDDF9 + .incbin "baserom.gba", 0x2FDDF9, 0x00004E8 + +gUnk_082FE2E1:: @ 082FE2E1 + .incbin "baserom.gba", 0x2FE2E1, 0x0001CBE + +gUnk_082FFF9F:: @ 082FFF9F + .incbin "baserom.gba", 0x2FFF9F, 0x0000061 + +gUnk_08300000:: @ 08300000 + .incbin "baserom.gba", 0x300000, 0x0000009 + +gUnk_08300009:: @ 08300009 + .incbin "baserom.gba", 0x300009, 0x0000018 + +gUnk_08300021:: @ 08300021 + .incbin "baserom.gba", 0x300021, 0x0000104 + +gUnk_08300125:: @ 08300125 + .incbin "baserom.gba", 0x300125, 0x0000043 + +gUnk_08300168:: @ 08300168 + .incbin "baserom.gba", 0x300168, 0x0000239 + +gUnk_083003A1:: @ 083003A1 + .incbin "baserom.gba", 0x3003A1, 0x0000080 + +gUnk_08300421:: @ 08300421 + .incbin "baserom.gba", 0x300421, 0x00002FF + +gUnk_08300720:: @ 08300720 + .incbin "baserom.gba", 0x300720, 0x0000007 + +gUnk_08300727:: @ 08300727 + .incbin "baserom.gba", 0x300727, 0x0000009 + +gUnk_08300730:: @ 08300730 + .incbin "baserom.gba", 0x300730, 0x0000010 + +gUnk_08300740:: @ 08300740 + .incbin "baserom.gba", 0x300740, 0x0000010 + +gUnk_08300750:: @ 08300750 + .incbin "baserom.gba", 0x300750, 0x0000020 + +gUnk_08300770:: @ 08300770 + .incbin "baserom.gba", 0x300770, 0x0000040 + +gUnk_083007B0:: @ 083007B0 + .incbin "baserom.gba", 0x3007B0, 0x0000030 + +gUnk_083007E0:: @ 083007E0 + .incbin "baserom.gba", 0x3007E0, 0x0000028 + +gUnk_08300808:: @ 08300808 + .incbin "baserom.gba", 0x300808, 0x0000108 + +gUnk_08300910:: @ 08300910 + .incbin "baserom.gba", 0x300910, 0x0000104 + +gUnk_08300A14:: @ 08300A14 + .incbin "baserom.gba", 0x300A14, 0x00000ED + +gUnk_08300B01:: @ 08300B01 + .incbin "baserom.gba", 0x300B01, 0x0000560 + +gUnk_08301061:: @ 08301061 + .incbin "baserom.gba", 0x301061, 0x0000B00 + +gUnk_08301B61:: @ 08301B61 + .incbin "baserom.gba", 0x301B61, 0x0000240 + +gUnk_08301DA1:: @ 08301DA1 + .incbin "baserom.gba", 0x301DA1, 0x00001CF + +gUnk_08301F70:: @ 08301F70 + .incbin "baserom.gba", 0x301F70, 0x0000231 + +gUnk_083021A1:: @ 083021A1 + .incbin "baserom.gba", 0x3021A1, 0x0000268 + +gUnk_08302409:: @ 08302409 + .incbin "baserom.gba", 0x302409, 0x0000158 + +gUnk_08302561:: @ 08302561 + .incbin "baserom.gba", 0x302561, 0x0000140 + +gUnk_083026A1:: @ 083026A1 + .incbin "baserom.gba", 0x3026A1, 0x000006F + +gUnk_08302710:: @ 08302710 + .incbin "baserom.gba", 0x302710, 0x00001F5 + +gUnk_08302905:: @ 08302905 + .incbin "baserom.gba", 0x302905, 0x000003B + +gUnk_08302940:: @ 08302940 + .incbin "baserom.gba", 0x302940, 0x0000221 + +gUnk_08302B61:: @ 08302B61 + .incbin "baserom.gba", 0x302B61, 0x00000D6 + +gUnk_08302C37:: @ 08302C37 + .incbin "baserom.gba", 0x302C37, 0x00000D9 + +gUnk_08302D10:: @ 08302D10 + .incbin "baserom.gba", 0x302D10, 0x0000010 + +gUnk_08302D20:: @ 08302D20 + .incbin "baserom.gba", 0x302D20, 0x0000110 + +gUnk_08302E30:: @ 08302E30 + .incbin "baserom.gba", 0x302E30, 0x00000E1 + +gUnk_08302F11:: @ 08302F11 + .incbin "baserom.gba", 0x302F11, 0x00000FF + +gUnk_08303010:: @ 08303010 + .incbin "baserom.gba", 0x303010, 0x0000019 + +gUnk_08303029:: @ 08303029 + .incbin "baserom.gba", 0x303029, 0x0000078 + +gUnk_083030A1:: @ 083030A1 + .incbin "baserom.gba", 0x3030A1, 0x0000300 + +gUnk_083033A1:: @ 083033A1 + .incbin "baserom.gba", 0x3033A1, 0x0000067 + +gUnk_08303408:: @ 08303408 + .incbin "baserom.gba", 0x303408, 0x0000540 + +gUnk_08303948:: @ 08303948 + .incbin "baserom.gba", 0x303948, 0x00002FE + +gUnk_08303C46:: @ 08303C46 + .incbin "baserom.gba", 0x303C46, 0x00000E5 + +gUnk_08303D2B:: @ 08303D2B + .incbin "baserom.gba", 0x303D2B, 0x00002F6 + +gUnk_08304021:: @ 08304021 + .incbin "baserom.gba", 0x304021, 0x0000612 + +gUnk_08304633:: @ 08304633 + .incbin "baserom.gba", 0x304633, 0x0000143 + +gUnk_08304776:: @ 08304776 + .incbin "baserom.gba", 0x304776, 0x00002F2 + +gUnk_08304A68:: @ 08304A68 + .incbin "baserom.gba", 0x304A68, 0x00003F9 + +gUnk_08304E61:: @ 08304E61 + .incbin "baserom.gba", 0x304E61, 0x0000407 + +gUnk_08305268:: @ 08305268 + .incbin "baserom.gba", 0x305268, 0x0000002 + +gUnk_0830526A:: @ 0830526A + .incbin "baserom.gba", 0x30526A, 0x000050B + +gUnk_08305775:: @ 08305775 + .incbin "baserom.gba", 0x305775, 0x00007A0 + +gUnk_08305F15:: @ 08305F15 + .incbin "baserom.gba", 0x305F15, 0x000006E + +gUnk_08305F83:: @ 08305F83 + .incbin "baserom.gba", 0x305F83, 0x00005C5 + +gUnk_08306548:: @ 08306548 + .incbin "baserom.gba", 0x306548, 0x000023B + +gUnk_08306783:: @ 08306783 + .incbin "baserom.gba", 0x306783, 0x00001AD + +gUnk_08306930:: @ 08306930 + .incbin "baserom.gba", 0x306930, 0x0000757 + +gUnk_08307087:: @ 08307087 + .incbin "baserom.gba", 0x307087, 0x00004C8 + +gUnk_0830754F:: @ 0830754F + .incbin "baserom.gba", 0x30754F, 0x000000E + +gUnk_0830755D:: @ 0830755D + .incbin "baserom.gba", 0x30755D, 0x000021A + +gUnk_08307777:: @ 08307777 + .incbin "baserom.gba", 0x307777, 0x0000201 + +gUnk_08307978:: @ 08307978 + .incbin "baserom.gba", 0x307978, 0x000038F + +gUnk_08307D07:: @ 08307D07 + .incbin "baserom.gba", 0x307D07, 0x0000529 + +gUnk_08308230:: @ 08308230 + .incbin "baserom.gba", 0x308230, 0x00004E6 + +gUnk_08308716:: @ 08308716 + .incbin "baserom.gba", 0x308716, 0x00006F3 + +gUnk_08308E09:: @ 08308E09 + .incbin "baserom.gba", 0x308E09, 0x0000817 + +gUnk_08309620:: @ 08309620 + .incbin "baserom.gba", 0x309620, 0x000027A + +gUnk_0830989A:: @ 0830989A + .incbin "baserom.gba", 0x30989A, 0x00004C0 + +gUnk_08309D5A:: @ 08309D5A + .incbin "baserom.gba", 0x309D5A, 0x0000136 + +gUnk_08309E90:: @ 08309E90 + .incbin "baserom.gba", 0x309E90, 0x0000085 + +gUnk_08309F15:: @ 08309F15 + .incbin "baserom.gba", 0x309F15, 0x0000290 + +gUnk_0830A1A5:: @ 0830A1A5 + .incbin "baserom.gba", 0x30A1A5, 0x0000BC6 + +gUnk_0830AD6B:: @ 0830AD6B + .incbin "baserom.gba", 0x30AD6B, 0x000009C + +gUnk_0830AE07:: @ 0830AE07 + .incbin "baserom.gba", 0x30AE07, 0x00001D9 + +gUnk_0830AFE0:: @ 0830AFE0 + .incbin "baserom.gba", 0x30AFE0, 0x0000130 + +gUnk_0830B110:: @ 0830B110 + .incbin "baserom.gba", 0x30B110, 0x000006F + +gUnk_0830B17F:: @ 0830B17F + .incbin "baserom.gba", 0x30B17F, 0x0000137 + +gUnk_0830B2B6:: @ 0830B2B6 + .incbin "baserom.gba", 0x30B2B6, 0x0000062 + +gUnk_0830B318:: @ 0830B318 + .incbin "baserom.gba", 0x30B318, 0x0000090 + +gUnk_0830B3A8:: @ 0830B3A8 + .incbin "baserom.gba", 0x30B3A8, 0x000002C + +gUnk_0830B3D4:: @ 0830B3D4 + .incbin "baserom.gba", 0x30B3D4, 0x00000E0 + +gUnk_0830B4B4:: @ 0830B4B4 + .incbin "baserom.gba", 0x30B4B4, 0x0000005 + +gUnk_0830B4B9:: @ 0830B4B9 + .incbin "baserom.gba", 0x30B4B9, 0x00002F7 + +gUnk_0830B7B0:: @ 0830B7B0 + .incbin "baserom.gba", 0x30B7B0, 0x00000A2 + +gUnk_0830B852:: @ 0830B852 + .incbin "baserom.gba", 0x30B852, 0x000020F + +gUnk_0830BA61:: @ 0830BA61 + .incbin "baserom.gba", 0x30BA61, 0x0000360 + +gUnk_0830BDC1:: @ 0830BDC1 + .incbin "baserom.gba", 0x30BDC1, 0x0000046 + +gUnk_0830BE07:: @ 0830BE07 + .incbin "baserom.gba", 0x30BE07, 0x00000CD + +gUnk_0830BED4:: @ 0830BED4 + .incbin "baserom.gba", 0x30BED4, 0x000009F + +gUnk_0830BF73:: @ 0830BF73 + .incbin "baserom.gba", 0x30BF73, 0x00001D1 + +gUnk_0830C144:: @ 0830C144 + .incbin "baserom.gba", 0x30C144, 0x00006F0 + +gUnk_0830C834:: @ 0830C834 + .incbin "baserom.gba", 0x30C834, 0x00001C0 + +gUnk_0830C9F4:: @ 0830C9F4 + .incbin "baserom.gba", 0x30C9F4, 0x0000013 + +gUnk_0830CA07:: @ 0830CA07 + .incbin "baserom.gba", 0x30CA07, 0x00002E0 + +gUnk_0830CCE7:: @ 0830CCE7 + .incbin "baserom.gba", 0x30CCE7, 0x00002E5 + +gUnk_0830CFCC:: @ 0830CFCC + .incbin "baserom.gba", 0x30CFCC, 0x0000067 + +gUnk_0830D033:: @ 0830D033 + .incbin "baserom.gba", 0x30D033, 0x00002E5 + +gUnk_0830D318:: @ 0830D318 + .incbin "baserom.gba", 0x30D318, 0x0000100 + +gUnk_0830D418:: @ 0830D418 + .incbin "baserom.gba", 0x30D418, 0x00000B6 + +gUnk_0830D4CE:: @ 0830D4CE + .incbin "baserom.gba", 0x30D4CE, 0x0000003 + +gUnk_0830D4D1:: @ 0830D4D1 + .incbin "baserom.gba", 0x30D4D1, 0x000010B + +gUnk_0830D5DC:: @ 0830D5DC + .incbin "baserom.gba", 0x30D5DC, 0x000082C + +gUnk_0830DE08:: @ 0830DE08 + .incbin "baserom.gba", 0x30DE08, 0x0000608 + +gUnk_0830E410:: @ 0830E410 + .incbin "baserom.gba", 0x30E410, 0x0000739 + +gUnk_0830EB49:: @ 0830EB49 + .incbin "baserom.gba", 0x30EB49, 0x00000BA + +gUnk_0830EC03:: @ 0830EC03 + .incbin "baserom.gba", 0x30EC03, 0x0000010 + +gUnk_0830EC13:: @ 0830EC13 + .incbin "baserom.gba", 0x30EC13, 0x00003D4 + +gUnk_0830EFE7:: @ 0830EFE7 + .incbin "baserom.gba", 0x30EFE7, 0x00003FA + +gUnk_0830F3E1:: @ 0830F3E1 + .incbin "baserom.gba", 0x30F3E1, 0x000060B + +gUnk_0830F9EC:: @ 0830F9EC + .incbin "baserom.gba", 0x30F9EC, 0x0000141 + +gUnk_0830FB2D:: @ 0830FB2D + .incbin "baserom.gba", 0x30FB2D, 0x00001B8 + +gUnk_0830FCE5:: @ 0830FCE5 + .incbin "baserom.gba", 0x30FCE5, 0x0000122 + +gUnk_0830FE07:: @ 0830FE07 + .incbin "baserom.gba", 0x30FE07, 0x0000078 + +gUnk_0830FE7F:: @ 0830FE7F + .incbin "baserom.gba", 0x30FE7F, 0x0000016 + +gUnk_0830FE95:: @ 0830FE95 + .incbin "baserom.gba", 0x30FE95, 0x0000059 + +gUnk_0830FEEE:: @ 0830FEEE + .incbin "baserom.gba", 0x30FEEE, 0x0000019 + +gUnk_0830FF07:: @ 0830FF07 + .incbin "baserom.gba", 0x30FF07, 0x000004C + +gUnk_0830FF53:: @ 0830FF53 + .incbin "baserom.gba", 0x30FF53, 0x00000AD + +gUnk_08310000:: @ 08310000 + .incbin "baserom.gba", 0x310000, 0x0000001 + +gUnk_08310001:: @ 08310001 + .incbin "baserom.gba", 0x310001, 0x0000001 + +gUnk_08310002:: @ 08310002 + .incbin "baserom.gba", 0x310002, 0x0000001 + +gUnk_08310003:: @ 08310003 + .incbin "baserom.gba", 0x310003, 0x0000001 + +gUnk_08310004:: @ 08310004 + .incbin "baserom.gba", 0x310004, 0x0000001 + +gUnk_08310005:: @ 08310005 + .incbin "baserom.gba", 0x310005, 0x0000001 + +gUnk_08310006:: @ 08310006 + .incbin "baserom.gba", 0x310006, 0x0000001 + +gUnk_08310007:: @ 08310007 + .incbin "baserom.gba", 0x310007, 0x0000001 + +gUnk_08310008:: @ 08310008 + .incbin "baserom.gba", 0x310008, 0x0000003 + +gUnk_0831000B:: @ 0831000B + .incbin "baserom.gba", 0x31000B, 0x0000003 + +gUnk_0831000E:: @ 0831000E + .incbin "baserom.gba", 0x31000E, 0x0000001 + +gUnk_0831000F:: @ 0831000F + .incbin "baserom.gba", 0x31000F, 0x0000001 + +gUnk_08310010:: @ 08310010 + .incbin "baserom.gba", 0x310010, 0x0000004 + +gUnk_08310014:: @ 08310014 + .incbin "baserom.gba", 0x310014, 0x0000001 + +gUnk_08310015:: @ 08310015 + .incbin "baserom.gba", 0x310015, 0x000000B + +gUnk_08310020:: @ 08310020 + .incbin "baserom.gba", 0x310020, 0x0000003 + +gUnk_08310023:: @ 08310023 + .incbin "baserom.gba", 0x310023, 0x000000D + +gUnk_08310030:: @ 08310030 + .incbin "baserom.gba", 0x310030, 0x0000009 + +gUnk_08310039:: @ 08310039 + .incbin "baserom.gba", 0x310039, 0x000000A + +gUnk_08310043:: @ 08310043 + .incbin "baserom.gba", 0x310043, 0x000000D + +gUnk_08310050:: @ 08310050 + .incbin "baserom.gba", 0x310050, 0x0000003 + +gUnk_08310053:: @ 08310053 + .incbin "baserom.gba", 0x310053, 0x0000007 + +gUnk_0831005A:: @ 0831005A + .incbin "baserom.gba", 0x31005A, 0x0000002 + +gUnk_0831005C:: @ 0831005C + .incbin "baserom.gba", 0x31005C, 0x0000004 + +gUnk_08310060:: @ 08310060 + .incbin "baserom.gba", 0x310060, 0x0000008 + +gUnk_08310068:: @ 08310068 + .incbin "baserom.gba", 0x310068, 0x0000004 + +gUnk_0831006C:: @ 0831006C + .incbin "baserom.gba", 0x31006C, 0x0000006 + +gUnk_08310072:: @ 08310072 + .incbin "baserom.gba", 0x310072, 0x0000006 + +gUnk_08310078:: @ 08310078 + .incbin "baserom.gba", 0x310078, 0x0000007 + +gUnk_0831007F:: @ 0831007F + .incbin "baserom.gba", 0x31007F, 0x0000001 + +gUnk_08310080:: @ 08310080 + .incbin "baserom.gba", 0x310080, 0x0000014 + +gUnk_08310094:: @ 08310094 + .incbin "baserom.gba", 0x310094, 0x0000004 + +gUnk_08310098:: @ 08310098 + .incbin "baserom.gba", 0x310098, 0x0000035 + +gUnk_083100CD:: @ 083100CD + .incbin "baserom.gba", 0x3100CD, 0x000000B + +gUnk_083100D8:: @ 083100D8 + .incbin "baserom.gba", 0x3100D8, 0x000000A + +gUnk_083100E2:: @ 083100E2 + .incbin "baserom.gba", 0x3100E2, 0x0000029 + +gUnk_0831010B:: @ 0831010B + .incbin "baserom.gba", 0x31010B, 0x000006D + +gUnk_08310178:: @ 08310178 + .incbin "baserom.gba", 0x310178, 0x0000020 + +gUnk_08310198:: @ 08310198 + .incbin "baserom.gba", 0x310198, 0x0000032 + +gUnk_083101CA:: @ 083101CA + .incbin "baserom.gba", 0x3101CA, 0x000005E + +gUnk_08310228:: @ 08310228 + .incbin "baserom.gba", 0x310228, 0x0000058 + +gUnk_08310280:: @ 08310280 + .incbin "baserom.gba", 0x310280, 0x0000008 + +gUnk_08310288:: @ 08310288 + .incbin "baserom.gba", 0x310288, 0x0000010 + +gUnk_08310298:: @ 08310298 + .incbin "baserom.gba", 0x310298, 0x0000068 + +gUnk_08310300:: @ 08310300 + .incbin "baserom.gba", 0x310300, 0x0000050 + +gUnk_08310350:: @ 08310350 + .incbin "baserom.gba", 0x310350, 0x00000B2 + +gUnk_08310402:: @ 08310402 + .incbin "baserom.gba", 0x310402, 0x0000032 + +gUnk_08310434:: @ 08310434 + .incbin "baserom.gba", 0x310434, 0x0000003 + +gUnk_08310437:: @ 08310437 + .incbin "baserom.gba", 0x310437, 0x000000C + +gUnk_08310443:: @ 08310443 + .incbin "baserom.gba", 0x310443, 0x0000002 + +gUnk_08310445:: @ 08310445 + .incbin "baserom.gba", 0x310445, 0x0000004 + +gUnk_08310449:: @ 08310449 + .incbin "baserom.gba", 0x310449, 0x0000001 + +gUnk_0831044A:: @ 0831044A + .incbin "baserom.gba", 0x31044A, 0x0000001 + +gUnk_0831044B:: @ 0831044B + .incbin "baserom.gba", 0x31044B, 0x000000E + +gUnk_08310459:: @ 08310459 + .incbin "baserom.gba", 0x310459, 0x000000B + +gUnk_08310464:: @ 08310464 + .incbin "baserom.gba", 0x310464, 0x000001A + +gUnk_0831047E:: @ 0831047E + .incbin "baserom.gba", 0x31047E, 0x0000009 + +gUnk_08310487:: @ 08310487 + .incbin "baserom.gba", 0x310487, 0x0000001 + +gUnk_08310488:: @ 08310488 + .incbin "baserom.gba", 0x310488, 0x00002A8 + +gUnk_08310730:: @ 08310730 + .incbin "baserom.gba", 0x310730, 0x00000D0 + +gUnk_08310800:: @ 08310800 + .incbin "baserom.gba", 0x310800, 0x0000001 + +gUnk_08310801:: @ 08310801 + .incbin "baserom.gba", 0x310801, 0x0000003 + +gUnk_08310804:: @ 08310804 + .incbin "baserom.gba", 0x310804, 0x0000001 + +gUnk_08310805:: @ 08310805 + .incbin "baserom.gba", 0x310805, 0x0000001 + +gUnk_08310806:: @ 08310806 + .incbin "baserom.gba", 0x310806, 0x0000001 + +gUnk_08310807:: @ 08310807 + .incbin "baserom.gba", 0x310807, 0x0000002 + +gUnk_08310809:: @ 08310809 + .incbin "baserom.gba", 0x310809, 0x0000001 + +gUnk_0831080A:: @ 0831080A + .incbin "baserom.gba", 0x31080A, 0x0000003 + +gUnk_0831080D:: @ 0831080D + .incbin "baserom.gba", 0x31080D, 0x0000023 + +gUnk_08310830:: @ 08310830 + .incbin "baserom.gba", 0x310830, 0x00007BB + +gUnk_08310FEB:: @ 08310FEB + .incbin "baserom.gba", 0x310FEB, 0x0000218 + +gUnk_08311203:: @ 08311203 + .incbin "baserom.gba", 0x311203, 0x0000351 + +gUnk_08311554:: @ 08311554 + .incbin "baserom.gba", 0x311554, 0x00000BA + +gUnk_0831160E:: @ 0831160E + .incbin "baserom.gba", 0x31160E, 0x0000123 + +gUnk_08311731:: @ 08311731 + .incbin "baserom.gba", 0x311731, 0x00005DF + +gUnk_08311D10:: @ 08311D10 + .incbin "baserom.gba", 0x311D10, 0x00002F0 + +gUnk_08312000:: @ 08312000 + .incbin "baserom.gba", 0x312000, 0x000012D + +gUnk_0831212D:: @ 0831212D + .incbin "baserom.gba", 0x31212D, 0x00009D2 + +gUnk_08312AFF:: @ 08312AFF + .incbin "baserom.gba", 0x312AFF, 0x0000630 + +gUnk_0831312F:: @ 0831312F + .incbin "baserom.gba", 0x31312F, 0x00000DA + +gUnk_08313209:: @ 08313209 + .incbin "baserom.gba", 0x313209, 0x000024C + +gUnk_08313455:: @ 08313455 + .incbin "baserom.gba", 0x313455, 0x00002EF + +gUnk_08313744:: @ 08313744 + .incbin "baserom.gba", 0x313744, 0x00001D8 + +gUnk_0831391C:: @ 0831391C + .incbin "baserom.gba", 0x31391C, 0x00000E4 + +gUnk_08313A00:: @ 08313A00 + .incbin "baserom.gba", 0x313A00, 0x0000010 + +gUnk_08313A10:: @ 08313A10 + .incbin "baserom.gba", 0x313A10, 0x0000409 + +gUnk_08313E19:: @ 08313E19 + .incbin "baserom.gba", 0x313E19, 0x00005E8 + +gUnk_08314401:: @ 08314401 + .incbin "baserom.gba", 0x314401, 0x0000132 + +gUnk_08314533:: @ 08314533 + .incbin "baserom.gba", 0x314533, 0x0000220 + +gUnk_08314753:: @ 08314753 + .incbin "baserom.gba", 0x314753, 0x00005F2 + +gUnk_08314D45:: @ 08314D45 + .incbin "baserom.gba", 0x314D45, 0x00005FC + +gUnk_08315341:: @ 08315341 + .incbin "baserom.gba", 0x315341, 0x0000131 + +gUnk_08315472:: @ 08315472 + .incbin "baserom.gba", 0x315472, 0x00005FF + +gUnk_08315A71:: @ 08315A71 + .incbin "baserom.gba", 0x315A71, 0x00004FB + +gUnk_08315F6C:: @ 08315F6C + .incbin "baserom.gba", 0x315F6C, 0x0001B94 + +gUnk_08317B00:: @ 08317B00 + .incbin "baserom.gba", 0x317B00, 0x00026A1 + +gUnk_0831A1A1:: @ 0831A1A1 + .incbin "baserom.gba", 0x31A1A1, 0x0001993 + +gUnk_0831BB34:: @ 0831BB34 + .incbin "baserom.gba", 0x31BB34, 0x00009FB + +gUnk_0831C52F:: @ 0831C52F + .incbin "baserom.gba", 0x31C52F, 0x00012C6 + +gUnk_0831D7F5:: @ 0831D7F5 + .incbin "baserom.gba", 0x31D7F5, 0x0000720 + +gUnk_0831DF15:: @ 0831DF15 + .incbin "baserom.gba", 0x31DF15, 0x0000BF2 + +gUnk_0831EB07:: @ 0831EB07 + .incbin "baserom.gba", 0x31EB07, 0x00003DB + +gUnk_0831EEE2:: @ 0831EEE2 + .incbin "baserom.gba", 0x31EEE2, 0x000002B + +gUnk_0831EF0D:: @ 0831EF0D + .incbin "baserom.gba", 0x31EF0D, 0x00009E8 + +gUnk_0831F8F5:: @ 0831F8F5 + .incbin "baserom.gba", 0x31F8F5, 0x000069B + +gUnk_0831FF90:: @ 0831FF90 + .incbin "baserom.gba", 0x31FF90, 0x0000042 + +gUnk_0831FFD2:: @ 0831FFD2 + .incbin "baserom.gba", 0x31FFD2, 0x000000A + +gUnk_0831FFDC:: @ 0831FFDC + .incbin "baserom.gba", 0x31FFDC, 0x0000020 + +gUnk_0831FFFC:: @ 0831FFFC + .incbin "baserom.gba", 0x31FFFC, 0x0000004 + +gUnk_08320000:: @ 08320000 + .incbin "baserom.gba", 0x320000, 0x0000131 + +gUnk_08320131:: @ 08320131 + .incbin "baserom.gba", 0x320131, 0x00001CF + +gUnk_08320300:: @ 08320300 + .incbin "baserom.gba", 0x320300, 0x0000030 + +gUnk_08320330:: @ 08320330 + .incbin "baserom.gba", 0x320330, 0x00011AF + +gUnk_083214DF:: @ 083214DF + .incbin "baserom.gba", 0x3214DF, 0x0000921 + +gUnk_08321E00:: @ 08321E00 + .incbin "baserom.gba", 0x321E00, 0x00001EF + +gUnk_08321FEF:: @ 08321FEF + .incbin "baserom.gba", 0x321FEF, 0x0000114 + +gUnk_08322103:: @ 08322103 + .incbin "baserom.gba", 0x322103, 0x0000134 + +gUnk_08322237:: @ 08322237 + .incbin "baserom.gba", 0x322237, 0x0000062 + +gUnk_08322299:: @ 08322299 + .incbin "baserom.gba", 0x322299, 0x0000189 + +gUnk_08322422:: @ 08322422 + .incbin "baserom.gba", 0x322422, 0x0000034 + +gUnk_08322456:: @ 08322456 + .incbin "baserom.gba", 0x322456, 0x00001A2 + +gUnk_083225F8:: @ 083225F8 + .incbin "baserom.gba", 0x3225F8, 0x0000519 + +gUnk_08322B11:: @ 08322B11 + .incbin "baserom.gba", 0x322B11, 0x0000B0B + +gUnk_0832361C:: @ 0832361C + .incbin "baserom.gba", 0x32361C, 0x0000B23 + +gUnk_0832413F:: @ 0832413F + .incbin "baserom.gba", 0x32413F, 0x00008F8 + +gUnk_08324A37:: @ 08324A37 + .incbin "baserom.gba", 0x324A37, 0x00000AD + +gUnk_08324AE4:: @ 08324AE4 + .incbin "baserom.gba", 0x324AE4, 0x000018F + +gUnk_08324C73:: @ 08324C73 + .incbin "baserom.gba", 0x324C73, 0x00007FA + +gUnk_0832546D:: @ 0832546D + .incbin "baserom.gba", 0x32546D, 0x000041B + +gUnk_08325888:: @ 08325888 + .incbin "baserom.gba", 0x325888, 0x00010E9 + +gUnk_08326971:: @ 08326971 + .incbin "baserom.gba", 0x326971, 0x0002C90 + +gUnk_08329601:: @ 08329601 + .incbin "baserom.gba", 0x329601, 0x00053C2 + +gUnk_0832E9C3:: @ 0832E9C3 + .incbin "baserom.gba", 0x32E9C3, 0x0000540 + +gUnk_0832EF03:: @ 0832EF03 + .incbin "baserom.gba", 0x32EF03, 0x0000733 + +gUnk_0832F636:: @ 0832F636 + .incbin "baserom.gba", 0x32F636, 0x00005CA + +gUnk_0832FC00:: @ 0832FC00 + .incbin "baserom.gba", 0x32FC00, 0x00002EA + +gUnk_0832FEEA:: @ 0832FEEA + .incbin "baserom.gba", 0x32FEEA, 0x0000104 + +gUnk_0832FFEE:: @ 0832FFEE + .incbin "baserom.gba", 0x32FFEE, 0x0000055 + +gUnk_08330043:: @ 08330043 + .incbin "baserom.gba", 0x330043, 0x00000C4 + +gUnk_08330107:: @ 08330107 + .incbin "baserom.gba", 0x330107, 0x0000004 + +gUnk_0833010B:: @ 0833010B + .incbin "baserom.gba", 0x33010B, 0x0000119 + +gUnk_08330224:: @ 08330224 + .incbin "baserom.gba", 0x330224, 0x0000210 + +gUnk_08330434:: @ 08330434 + .incbin "baserom.gba", 0x330434, 0x00008B5 + +gUnk_08330CE9:: @ 08330CE9 + .incbin "baserom.gba", 0x330CE9, 0x0000213 + +gUnk_08330EFC:: @ 08330EFC + .incbin "baserom.gba", 0x330EFC, 0x0000007 + +gUnk_08330F03:: @ 08330F03 + .incbin "baserom.gba", 0x330F03, 0x0000C05 + +gUnk_08331B08:: @ 08331B08 + .incbin "baserom.gba", 0x331B08, 0x0000637 + +gUnk_0833213F:: @ 0833213F + .incbin "baserom.gba", 0x33213F, 0x0000049 + +gUnk_08332188:: @ 08332188 + .incbin "baserom.gba", 0x332188, 0x0000692 + +gUnk_0833281A:: @ 0833281A + .incbin "baserom.gba", 0x33281A, 0x0000913 + +gUnk_0833312D:: @ 0833312D + .incbin "baserom.gba", 0x33312D, 0x0000205 + +gUnk_08333332:: @ 08333332 + .incbin "baserom.gba", 0x333332, 0x0000001 + +gUnk_08333333:: @ 08333333 + .incbin "baserom.gba", 0x333333, 0x0000008 + +gUnk_0833333B:: @ 0833333B + .incbin "baserom.gba", 0x33333B, 0x00000F2 + +gUnk_0833342D:: @ 0833342D + .incbin "baserom.gba", 0x33342D, 0x00002F1 + +gUnk_0833371E:: @ 0833371E + .incbin "baserom.gba", 0x33371E, 0x00001F0 + +gUnk_0833390E:: @ 0833390E + .incbin "baserom.gba", 0x33390E, 0x0000122 + +gUnk_08333A30:: @ 08333A30 + .incbin "baserom.gba", 0x333A30, 0x00005E8 + +gUnk_08334018:: @ 08334018 + .incbin "baserom.gba", 0x334018, 0x00003E9 + +gUnk_08334401:: @ 08334401 + .incbin "baserom.gba", 0x334401, 0x000001F + +gUnk_08334420:: @ 08334420 + .incbin "baserom.gba", 0x334420, 0x00000BD + +gUnk_083344DD:: @ 083344DD + .incbin "baserom.gba", 0x3344DD, 0x0000558 + +gUnk_08334A35:: @ 08334A35 + .incbin "baserom.gba", 0x334A35, 0x0000646 + +gUnk_0833507B:: @ 0833507B + .incbin "baserom.gba", 0x33507B, 0x000054F + +gUnk_083355CA:: @ 083355CA + .incbin "baserom.gba", 0x3355CA, 0x0000CB3 + +gUnk_0833627D:: @ 0833627D + .incbin "baserom.gba", 0x33627D, 0x0000CF7 + +gUnk_08336F74:: @ 08336F74 + .incbin "baserom.gba", 0x336F74, 0x000008F + +gUnk_08337003:: @ 08337003 + .incbin "baserom.gba", 0x337003, 0x00002FD + +gUnk_08337300:: @ 08337300 + .incbin "baserom.gba", 0x337300, 0x0000C03 + +gUnk_08337F03:: @ 08337F03 + .incbin "baserom.gba", 0x337F03, 0x0000330 + +gUnk_08338233:: @ 08338233 + .incbin "baserom.gba", 0x338233, 0x0000650 + +gUnk_08338883:: @ 08338883 + .incbin "baserom.gba", 0x338883, 0x0001217 + +gUnk_08339A9A:: @ 08339A9A + .incbin "baserom.gba", 0x339A9A, 0x0000133 + +gUnk_08339BCD:: @ 08339BCD + .incbin "baserom.gba", 0x339BCD, 0x00009DC + +gUnk_0833A5A9:: @ 0833A5A9 + .incbin "baserom.gba", 0x33A5A9, 0x0000E5D + +gUnk_0833B406:: @ 0833B406 + .incbin "baserom.gba", 0x33B406, 0x0000706 + +gUnk_0833BB0C:: @ 0833BB0C + .incbin "baserom.gba", 0x33BB0C, 0x00033F6 + +gUnk_0833EF02:: @ 0833EF02 + .incbin "baserom.gba", 0x33EF02, 0x0000509 + +gUnk_0833F40B:: @ 0833F40B + .incbin "baserom.gba", 0x33F40B, 0x0000B2C + +gUnk_0833FF37:: @ 0833FF37 + .incbin "baserom.gba", 0x33FF37, 0x00003C9 + +gUnk_08340300:: @ 08340300 + .incbin "baserom.gba", 0x340300, 0x0000507 + +gUnk_08340807:: @ 08340807 + .incbin "baserom.gba", 0x340807, 0x00008F8 + +gUnk_083410FF:: @ 083410FF + .incbin "baserom.gba", 0x3410FF, 0x0000F48 + +gUnk_08342047:: @ 08342047 + .incbin "baserom.gba", 0x342047, 0x00003B2 + +gUnk_083423F9:: @ 083423F9 + .incbin "baserom.gba", 0x3423F9, 0x00000F1 + +gUnk_083424EA:: @ 083424EA + .incbin "baserom.gba", 0x3424EA, 0x0000D2E + +gUnk_08343218:: @ 08343218 + .incbin "baserom.gba", 0x343218, 0x00000F5 + +gUnk_0834330D:: @ 0834330D + .incbin "baserom.gba", 0x34330D, 0x0000024 + +gUnk_08343331:: @ 08343331 + .incbin "baserom.gba", 0x343331, 0x0000EE0 + +gUnk_08344211:: @ 08344211 + .incbin "baserom.gba", 0x344211, 0x0000233 + +gUnk_08344444:: @ 08344444 + .incbin "baserom.gba", 0x344444, 0x0000505 + +gUnk_08344949:: @ 08344949 + .incbin "baserom.gba", 0x344949, 0x000012E + +gUnk_08344A77:: @ 08344A77 + .incbin "baserom.gba", 0x344A77, 0x00008E5 + +gUnk_0834535C:: @ 0834535C + .incbin "baserom.gba", 0x34535C, 0x000031B + +gUnk_08345677:: @ 08345677 + .incbin "baserom.gba", 0x345677, 0x0000325 + +gUnk_0834599C:: @ 0834599C + .incbin "baserom.gba", 0x34599C, 0x0000575 + +gUnk_08345F11:: @ 08345F11 + .incbin "baserom.gba", 0x345F11, 0x0000617 + +gUnk_08346528:: @ 08346528 + .incbin "baserom.gba", 0x346528, 0x000012D + +gUnk_08346655:: @ 08346655 + .incbin "baserom.gba", 0x346655, 0x00007E0 + +gUnk_08346E35:: @ 08346E35 + .incbin "baserom.gba", 0x346E35, 0x000013B + +gUnk_08346F70:: @ 08346F70 + .incbin "baserom.gba", 0x346F70, 0x00007F7 + +gUnk_08347767:: @ 08347767 + .incbin "baserom.gba", 0x347767, 0x0000055 + +gUnk_083477BC:: @ 083477BC + .incbin "baserom.gba", 0x3477BC, 0x0003C5C + +gUnk_0834B418:: @ 0834B418 + .incbin "baserom.gba", 0x34B418, 0x0002D8B + +gUnk_0834E1A3:: @ 0834E1A3 + .incbin "baserom.gba", 0x34E1A3, 0x00006E6 + +gUnk_0834E889:: @ 0834E889 + .incbin "baserom.gba", 0x34E889, 0x0000A37 + +gUnk_0834F2C0:: @ 0834F2C0 + .incbin "baserom.gba", 0x34F2C0, 0x0000D50 + +gUnk_08350010:: @ 08350010 + .incbin "baserom.gba", 0x350010, 0x000003A + +gUnk_0835004A:: @ 0835004A + .incbin "baserom.gba", 0x35004A, 0x00002B6 + +gUnk_08350300:: @ 08350300 + .incbin "baserom.gba", 0x350300, 0x0000E3B + +gUnk_0835113B:: @ 0835113B + .incbin "baserom.gba", 0x35113B, 0x00008CB + +gUnk_08351A06:: @ 08351A06 + .incbin "baserom.gba", 0x351A06, 0x0001A93 + +gUnk_08353499:: @ 08353499 + .incbin "baserom.gba", 0x353499, 0x0000294 + +gUnk_0835372D:: @ 0835372D + .incbin "baserom.gba", 0x35372D, 0x00001E6 + +gUnk_08353913:: @ 08353913 + .incbin "baserom.gba", 0x353913, 0x0000705 + +gUnk_08354018:: @ 08354018 + .incbin "baserom.gba", 0x354018, 0x0000317 + +gUnk_0835432F:: @ 0835432F + .incbin "baserom.gba", 0x35432F, 0x000090A + +gUnk_08354C39:: @ 08354C39 + .incbin "baserom.gba", 0x354C39, 0x00007F6 + +gUnk_0835542F:: @ 0835542F + .incbin "baserom.gba", 0x35542F, 0x0000014 + +gUnk_08355443:: @ 08355443 + .incbin "baserom.gba", 0x355443, 0x0000234 + +gUnk_08355677:: @ 08355677 + .incbin "baserom.gba", 0x355677, 0x00009DE + +gUnk_08356055:: @ 08356055 + .incbin "baserom.gba", 0x356055, 0x0000526 + +gUnk_0835657B:: @ 0835657B + .incbin "baserom.gba", 0x35657B, 0x0001197 + +gUnk_08357712:: @ 08357712 + .incbin "baserom.gba", 0x357712, 0x0007B10 + +gUnk_0835F222:: @ 0835F222 + .incbin "baserom.gba", 0x35F222, 0x0000E9B + +gUnk_083600BD:: @ 083600BD + .incbin "baserom.gba", 0x3600BD, 0x0000410 + +gUnk_083604CD:: @ 083604CD + .incbin "baserom.gba", 0x3604CD, 0x0000053 + +gUnk_08360520:: @ 08360520 + .incbin "baserom.gba", 0x360520, 0x00003A0 + +gUnk_083608C0:: @ 083608C0 + .incbin "baserom.gba", 0x3608C0, 0x0001AF1 + +gUnk_083623B1:: @ 083623B1 + .incbin "baserom.gba", 0x3623B1, 0x0000639 + +gUnk_083629EA:: @ 083629EA + .incbin "baserom.gba", 0x3629EA, 0x0000128 + +gUnk_08362B12:: @ 08362B12 + .incbin "baserom.gba", 0x362B12, 0x0000001 + +gUnk_08362B13:: @ 08362B13 + .incbin "baserom.gba", 0x362B13, 0x00003F4 + +gUnk_08362F07:: @ 08362F07 + .incbin "baserom.gba", 0x362F07, 0x000140A + +gUnk_08364311:: @ 08364311 + .incbin "baserom.gba", 0x364311, 0x0000020 + +gUnk_08364331:: @ 08364331 + .incbin "baserom.gba", 0x364331, 0x000051C + +gUnk_0836484D:: @ 0836484D + .incbin "baserom.gba", 0x36484D, 0x00007E7 + +gUnk_08365034:: @ 08365034 + .incbin "baserom.gba", 0x365034, 0x00004EF + +gUnk_08365523:: @ 08365523 + .incbin "baserom.gba", 0x365523, 0x000013E + +gUnk_08365661:: @ 08365661 + .incbin "baserom.gba", 0x365661, 0x0000E16 + +gUnk_08366477:: @ 08366477 + .incbin "baserom.gba", 0x366477, 0x0006B6C + +gUnk_0836CFE3:: @ 0836CFE3 + .incbin "baserom.gba", 0x36CFE3, 0x0001E60 + +gUnk_0836EE43:: @ 0836EE43 + .incbin "baserom.gba", 0x36EE43, 0x00011CE + +gUnk_08370011:: @ 08370011 + .incbin "baserom.gba", 0x370011, 0x00005FF + +gUnk_08370610:: @ 08370610 + .incbin "baserom.gba", 0x370610, 0x0000701 + +gUnk_08370D11:: @ 08370D11 + .incbin "baserom.gba", 0x370D11, 0x0001404 + +gUnk_08372115:: @ 08372115 + .incbin "baserom.gba", 0x372115, 0x00019FB + +gUnk_08373B10:: @ 08373B10 + .incbin "baserom.gba", 0x373B10, 0x000131A + +gUnk_08374E2A:: @ 08374E2A + .incbin "baserom.gba", 0x374E2A, 0x00001D6 + +gUnk_08375000:: @ 08375000 + .incbin "baserom.gba", 0x375000, 0x0001841 + +gUnk_08376841:: @ 08376841 + .incbin "baserom.gba", 0x376841, 0x00066F7 + +gUnk_0837CF38:: @ 0837CF38 + .incbin "baserom.gba", 0x37CF38, 0x00012CE + +gUnk_0837E206:: @ 0837E206 + .incbin "baserom.gba", 0x37E206, 0x0001DFA + +gUnk_08380000:: @ 08380000 + .incbin "baserom.gba", 0x380000, 0x0000019 + +gUnk_08380019:: @ 08380019 + .incbin "baserom.gba", 0x380019, 0x0000023 + +gUnk_0838003C:: @ 0838003C + .incbin "baserom.gba", 0x38003C, 0x000001E + +gUnk_0838005A:: @ 0838005A + .incbin "baserom.gba", 0x38005A, 0x000001E + +gUnk_08380078:: @ 08380078 + .incbin "baserom.gba", 0x380078, 0x000007F + +gUnk_083800F7:: @ 083800F7 + .incbin "baserom.gba", 0x3800F7, 0x000030A + +gUnk_08380401:: @ 08380401 + .incbin "baserom.gba", 0x380401, 0x0000001 + +gUnk_08380402:: @ 08380402 + .incbin "baserom.gba", 0x380402, 0x0000057 + +gUnk_08380459:: @ 08380459 + .incbin "baserom.gba", 0x380459, 0x0000025 + +gUnk_0838047E:: @ 0838047E + .incbin "baserom.gba", 0x38047E, 0x0000009 + +gUnk_08380487:: @ 08380487 + .incbin "baserom.gba", 0x380487, 0x0000001 + +gUnk_08380488:: @ 08380488 + .incbin "baserom.gba", 0x380488, 0x0000380 + +gUnk_08380808:: @ 08380808 + .incbin "baserom.gba", 0x380808, 0x0000007 + +gUnk_0838080F:: @ 0838080F + .incbin "baserom.gba", 0x38080F, 0x0000152 + +gUnk_08380961:: @ 08380961 + .incbin "baserom.gba", 0x380961, 0x00005A8 + +gUnk_08380F09:: @ 08380F09 + .incbin "baserom.gba", 0x380F09, 0x00004DD + +gUnk_083813E6:: @ 083813E6 + .incbin "baserom.gba", 0x3813E6, 0x0001048 + +gUnk_0838242E:: @ 0838242E + .incbin "baserom.gba", 0x38242E, 0x00008E6 + +gUnk_08382D14:: @ 08382D14 + .incbin "baserom.gba", 0x382D14, 0x00008D5 + +gUnk_083835E9:: @ 083835E9 + .incbin "baserom.gba", 0x3835E9, 0x0000517 + +gUnk_08383B00:: @ 08383B00 + .incbin "baserom.gba", 0x383B00, 0x0000122 + +gUnk_08383C22:: @ 08383C22 + .incbin "baserom.gba", 0x383C22, 0x00004DE + +gUnk_08384100:: @ 08384100 + .incbin "baserom.gba", 0x384100, 0x0000341 + +gUnk_08384441:: @ 08384441 + .incbin "baserom.gba", 0x384441, 0x0000DC3 + +gUnk_08385204:: @ 08385204 + .incbin "baserom.gba", 0x385204, 0x0000B6B + +gUnk_08385D6F:: @ 08385D6F + .incbin "baserom.gba", 0x385D6F, 0x00006FB + +gUnk_0838646A:: @ 0838646A + .incbin "baserom.gba", 0x38646A, 0x000030C + +gUnk_08386776:: @ 08386776 + .incbin "baserom.gba", 0x386776, 0x0009889 + +gUnk_0838FFFF:: @ 0838FFFF + .incbin "baserom.gba", 0x38FFFF, 0x0000002 + +gUnk_08390001:: @ 08390001 + .incbin "baserom.gba", 0x390001, 0x00002DB + +gUnk_083902DC:: @ 083902DC + .incbin "baserom.gba", 0x3902DC, 0x00003A4 + +gUnk_08390680:: @ 08390680 + .incbin "baserom.gba", 0x390680, 0x0000180 + +gUnk_08390800:: @ 08390800 + .incbin "baserom.gba", 0x390800, 0x0000706 + +gUnk_08390F06:: @ 08390F06 + .incbin "baserom.gba", 0x390F06, 0x00014CE + +gUnk_083923D4:: @ 083923D4 + .incbin "baserom.gba", 0x3923D4, 0x000084A + +gUnk_08392C1E:: @ 08392C1E + .incbin "baserom.gba", 0x392C1E, 0x0001011 + +gUnk_08393C2F:: @ 08393C2F + .incbin "baserom.gba", 0x393C2F, 0x00004D1 + +gUnk_08394100:: @ 08394100 + .incbin "baserom.gba", 0x394100, 0x0001C00 + +gUnk_08395D00:: @ 08395D00 + .incbin "baserom.gba", 0x395D00, 0x000077B + +gUnk_0839647B:: @ 0839647B + .incbin "baserom.gba", 0x39647B, 0x0000303 + +gUnk_0839677E:: @ 0839677E + .incbin "baserom.gba", 0x39677E, 0x000870E + +gUnk_0839EE8C:: @ 0839EE8C + .incbin "baserom.gba", 0x39EE8C, 0x0000001 + +gUnk_0839EE8D:: @ 0839EE8D + .incbin "baserom.gba", 0x39EE8D, 0x000127A + +gUnk_083A0107:: @ 083A0107 + .incbin "baserom.gba", 0x3A0107, 0x0000669 + +gUnk_083A0770:: @ 083A0770 + .incbin "baserom.gba", 0x3A0770, 0x0003990 + +gUnk_083A4100:: @ 083A4100 + .incbin "baserom.gba", 0x3A4100, 0x0003D1D + +gUnk_083A7E1D:: @ 083A7E1D + .incbin "baserom.gba", 0x3A7E1D, 0x0002253 + +gUnk_083AA070:: @ 083AA070 + .incbin "baserom.gba", 0x3AA070, 0x0005F90 + +gUnk_083B0000:: @ 083B0000 + .incbin "baserom.gba", 0x3B0000, 0x0000001 + +gUnk_083B0001:: @ 083B0001 + .incbin "baserom.gba", 0x3B0001, 0x0000007 + +gUnk_083B0008:: @ 083B0008 + .incbin "baserom.gba", 0x3B0008, 0x0000178 + +gUnk_083B0180:: @ 083B0180 + .incbin "baserom.gba", 0x3B0180, 0x000069E + +gUnk_083B081E:: @ 083B081E + .incbin "baserom.gba", 0x3B081E, 0x000001C + +gUnk_083B083A:: @ 083B083A + .incbin "baserom.gba", 0x3B083A, 0x00006CC + +gUnk_083B0F06:: @ 083B0F06 + .incbin "baserom.gba", 0x3B0F06, 0x00012E0 + +gUnk_083B21E6:: @ 083B21E6 + .incbin "baserom.gba", 0x3B21E6, 0x0000E3E + +gUnk_083B3024:: @ 083B3024 + .incbin "baserom.gba", 0x3B3024, 0x00001DD + +gUnk_083B3201:: @ 083B3201 + .incbin "baserom.gba", 0x3B3201, 0x000061F + +gUnk_083B3820:: @ 083B3820 + .incbin "baserom.gba", 0x3B3820, 0x00008E0 + +gUnk_083B4100:: @ 083B4100 + .incbin "baserom.gba", 0x3B4100, 0x000024B + +gUnk_083B434B:: @ 083B434B + .incbin "baserom.gba", 0x3B434B, 0x0000074 + +gUnk_083B43BF:: @ 083B43BF + .incbin "baserom.gba", 0x3B43BF, 0x00024B8 + +gUnk_083B6877:: @ 083B6877 + .incbin "baserom.gba", 0x3B6877, 0x0009693 + +gUnk_083BFF0A:: @ 083BFF0A + .incbin "baserom.gba", 0x3BFF0A, 0x00000F6 + +gUnk_083C0000:: @ 083C0000 + .incbin "baserom.gba", 0x3C0000, 0x0000001 + +gUnk_083C0001:: @ 083C0001 + .incbin "baserom.gba", 0x3C0001, 0x000000B + +gUnk_083C000C:: @ 083C000C + .incbin "baserom.gba", 0x3C000C, 0x00013F4 + +gUnk_083C1400:: @ 083C1400 + .incbin "baserom.gba", 0x3C1400, 0x0000841 + +gUnk_083C1C41:: @ 083C1C41 + .incbin "baserom.gba", 0x3C1C41, 0x00009A8 + +gUnk_083C25E9:: @ 083C25E9 + .incbin "baserom.gba", 0x3C25E9, 0x00005D9 + +gUnk_083C2BC2:: @ 083C2BC2 + .incbin "baserom.gba", 0x3C2BC2, 0x0000620 + +gUnk_083C31E2:: @ 083C31E2 + .incbin "baserom.gba", 0x3C31E2, 0x0000968 + +gUnk_083C3B4A:: @ 083C3B4A + .incbin "baserom.gba", 0x3C3B4A, 0x00004B6 + +gUnk_083C4000:: @ 083C4000 + .incbin "baserom.gba", 0x3C4000, 0x0002236 + +gUnk_083C6236:: @ 083C6236 + .incbin "baserom.gba", 0x3C6236, 0x0000D44 + +gUnk_083C6F7A:: @ 083C6F7A + .incbin "baserom.gba", 0x3C6F7A, 0x00030A2 + +gUnk_083CA01C:: @ 083CA01C + .incbin "baserom.gba", 0x3CA01C, 0x00040BD + +gUnk_083CE0D9:: @ 083CE0D9 + .incbin "baserom.gba", 0x3CE0D9, 0x0001F27 + +gUnk_083D0000:: @ 083D0000 + .incbin "baserom.gba", 0x3D0000, 0x0000055 + +gUnk_083D0055:: @ 083D0055 + .incbin "baserom.gba", 0x3D0055, 0x000042B + +gUnk_083D0480:: @ 083D0480 + .incbin "baserom.gba", 0x3D0480, 0x00003BC + +gUnk_083D083C:: @ 083D083C + .incbin "baserom.gba", 0x3D083C, 0x00037C4 + +gUnk_083D4000:: @ 083D4000 + .incbin "baserom.gba", 0x3D4000, 0x000005C + +gUnk_083D405C:: @ 083D405C + .incbin "baserom.gba", 0x3D405C, 0x0001B06 + +gUnk_083D5B62:: @ 083D5B62 + .incbin "baserom.gba", 0x3D5B62, 0x000249E + +gUnk_083D8000:: @ 083D8000 + .incbin "baserom.gba", 0x3D8000, 0x0008000 + +gUnk_083E0000:: @ 083E0000 + .incbin "baserom.gba", 0x3E0000, 0x0000001 + +gUnk_083E0001:: @ 083E0001 + .incbin "baserom.gba", 0x3E0001, 0x0000F05 + +gUnk_083E0F06:: @ 083E0F06 + .incbin "baserom.gba", 0x3E0F06, 0x0000020 + +gUnk_083E0F26:: @ 083E0F26 + .incbin "baserom.gba", 0x3E0F26, 0x00019E6 + +gUnk_083E290C:: @ 083E290C + .incbin "baserom.gba", 0x3E290C, 0x00016F2 + +gUnk_083E3FFE:: @ 083E3FFE + .incbin "baserom.gba", 0x3E3FFE, 0x000006C + +gUnk_083E406A:: @ 083E406A + .incbin "baserom.gba", 0x3E406A, 0x000006A + +gUnk_083E40D4:: @ 083E40D4 + .incbin "baserom.gba", 0x3E40D4, 0x000133D + +gUnk_083E5411:: @ 083E5411 + .incbin "baserom.gba", 0x3E5411, 0x0000532 + +gUnk_083E5943:: @ 083E5943 + .incbin "baserom.gba", 0x3E5943, 0x00002E1 + +gUnk_083E5C24:: @ 083E5C24 + .incbin "baserom.gba", 0x3E5C24, 0x00029EC + +gUnk_083E8610:: @ 083E8610 + .incbin "baserom.gba", 0x3E8610, 0x00079F0 + +gUnk_083F0000:: @ 083F0000 + .incbin "baserom.gba", 0x3F0000, 0x0000001 + +gUnk_083F0001:: @ 083F0001 + .incbin "baserom.gba", 0x3F0001, 0x000003F + +gUnk_083F0040:: @ 083F0040 + .incbin "baserom.gba", 0x3F0040, 0x000037F + +gUnk_083F03BF:: @ 083F03BF + .incbin "baserom.gba", 0x3F03BF, 0x0002450 + +gUnk_083F280F:: @ 083F280F + .incbin "baserom.gba", 0x3F280F, 0x0000BC3 + +gUnk_083F33D2:: @ 083F33D2 + .incbin "baserom.gba", 0x3F33D2, 0x0000F67 + +gUnk_083F4339:: @ 083F4339 + .incbin "baserom.gba", 0x3F4339, 0x00000CE + +gUnk_083F4407:: @ 083F4407 + .incbin "baserom.gba", 0x3F4407, 0x0000BC8 + +gUnk_083F4FCF:: @ 083F4FCF + .incbin "baserom.gba", 0x3F4FCF, 0x0000035 + +gUnk_083F5004:: @ 083F5004 + .incbin "baserom.gba", 0x3F5004, 0x0000335 + +gUnk_083F5339:: @ 083F5339 + .incbin "baserom.gba", 0x3F5339, 0x000000A + +gUnk_083F5343:: @ 083F5343 + .incbin "baserom.gba", 0x3F5343, 0x0000D77 + +gUnk_083F60BA:: @ 083F60BA + .incbin "baserom.gba", 0x3F60BA, 0x0000051 + +gUnk_083F610B:: @ 083F610B + .incbin "baserom.gba", 0x3F610B, 0x0000057 + +gUnk_083F6162:: @ 083F6162 + .incbin "baserom.gba", 0x3F6162, 0x00006D5 + +gUnk_083F6837:: @ 083F6837 + .incbin "baserom.gba", 0x3F6837, 0x0000907 + +gUnk_083F713E:: @ 083F713E + .incbin "baserom.gba", 0x3F713E, 0x000033B + +gUnk_083F7479:: @ 083F7479 + .incbin "baserom.gba", 0x3F7479, 0x0000B8A + +gUnk_083F8003:: @ 083F8003 + .incbin "baserom.gba", 0x3F8003, 0x0001086 + +gUnk_083F9089:: @ 083F9089 + .incbin "baserom.gba", 0x3F9089, 0x0003334 + +gUnk_083FC3BD:: @ 083FC3BD + .incbin "baserom.gba", 0x3FC3BD, 0x0000D3C + +gUnk_083FD0F9:: @ 083FD0F9 + .incbin "baserom.gba", 0x3FD0F9, 0x0001DF3 + +gUnk_083FEEEC:: @ 083FEEEC + .incbin "baserom.gba", 0x3FEEEC, 0x0001114 + +gUnk_08400000:: @ 08400000 + .incbin "baserom.gba", 0x400000, 0x0000001 + +gUnk_08400001:: @ 08400001 + .incbin "baserom.gba", 0x400001, 0x0000003 + +gUnk_08400004:: @ 08400004 + .incbin "baserom.gba", 0x400004, 0x0000003 + +gUnk_08400007:: @ 08400007 + .incbin "baserom.gba", 0x400007, 0x0000003 + +gUnk_0840000A:: @ 0840000A + .incbin "baserom.gba", 0x40000A, 0x000001D + +gUnk_08400027:: @ 08400027 + .incbin "baserom.gba", 0x400027, 0x0000006 + +gUnk_0840002D:: @ 0840002D + .incbin "baserom.gba", 0x40002D, 0x0000050 + +gUnk_0840007D:: @ 0840007D + .incbin "baserom.gba", 0x40007D, 0x0000068 + +gUnk_084000E5:: @ 084000E5 + .incbin "baserom.gba", 0x4000E5, 0x0000001 + +gUnk_084000E6:: @ 084000E6 + .incbin "baserom.gba", 0x4000E6, 0x0000001 + +gUnk_084000E7:: @ 084000E7 + .incbin "baserom.gba", 0x4000E7, 0x0000009 + +gUnk_084000F0:: @ 084000F0 + .incbin "baserom.gba", 0x4000F0, 0x0000004 + +gUnk_084000F4:: @ 084000F4 + .incbin "baserom.gba", 0x4000F4, 0x0000002 + +gUnk_084000F6:: @ 084000F6 + .incbin "baserom.gba", 0x4000F6, 0x0000009 + +gUnk_084000FF:: @ 084000FF + .incbin "baserom.gba", 0x4000FF, 0x0000001 + +gUnk_08400100:: @ 08400100 + .incbin "baserom.gba", 0x400100, 0x0000030 + +gUnk_08400130:: @ 08400130 + .incbin "baserom.gba", 0x400130, 0x0000078 + +gUnk_084001A8:: @ 084001A8 + .incbin "baserom.gba", 0x4001A8, 0x000001C + +gUnk_084001C4:: @ 084001C4 + .incbin "baserom.gba", 0x4001C4, 0x0000026 + +gUnk_084001EA:: @ 084001EA + .incbin "baserom.gba", 0x4001EA, 0x000000E + +gUnk_084001F8:: @ 084001F8 + .incbin "baserom.gba", 0x4001F8, 0x0000219 + +gUnk_08400411:: @ 08400411 + .incbin "baserom.gba", 0x400411, 0x0000184 + +gUnk_08400595:: @ 08400595 + .incbin "baserom.gba", 0x400595, 0x000005B + +gUnk_084005F0:: @ 084005F0 + .incbin "baserom.gba", 0x4005F0, 0x0000015 + +gUnk_08400605:: @ 08400605 + .incbin "baserom.gba", 0x400605, 0x000000B + +gUnk_08400610:: @ 08400610 + .incbin "baserom.gba", 0x400610, 0x000002E + +gUnk_0840063E:: @ 0840063E + .incbin "baserom.gba", 0x40063E, 0x00000C2 + +gUnk_08400700:: @ 08400700 + .incbin "baserom.gba", 0x400700, 0x0000010 + +gUnk_08400710:: @ 08400710 + .incbin "baserom.gba", 0x400710, 0x0000020 + +gUnk_08400730:: @ 08400730 + .incbin "baserom.gba", 0x400730, 0x0000010 + +gUnk_08400740:: @ 08400740 + .incbin "baserom.gba", 0x400740, 0x000000A + +gUnk_0840074A:: @ 0840074A + .incbin "baserom.gba", 0x40074A, 0x0000006 + +gUnk_08400750:: @ 08400750 + .incbin "baserom.gba", 0x400750, 0x0000010 + +gUnk_08400760:: @ 08400760 + .incbin "baserom.gba", 0x400760, 0x0000080 + +gUnk_084007E0:: @ 084007E0 + .incbin "baserom.gba", 0x4007E0, 0x0000030 + +gUnk_08400810:: @ 08400810 + .incbin "baserom.gba", 0x400810, 0x0000014 + +gUnk_08400824:: @ 08400824 + .incbin "baserom.gba", 0x400824, 0x0000009 + +gUnk_0840082D:: @ 0840082D + .incbin "baserom.gba", 0x40082D, 0x0000009 + +gUnk_08400836:: @ 08400836 + .incbin "baserom.gba", 0x400836, 0x000000A + +gUnk_08400840:: @ 08400840 + .incbin "baserom.gba", 0x400840, 0x000005F + +gUnk_0840089F:: @ 0840089F + .incbin "baserom.gba", 0x40089F, 0x0000451 + +gUnk_08400CF0:: @ 08400CF0 + .incbin "baserom.gba", 0x400CF0, 0x0000210 + +gUnk_08400F00:: @ 08400F00 + .incbin "baserom.gba", 0x400F00, 0x0000029 + +gUnk_08400F29:: @ 08400F29 + .incbin "baserom.gba", 0x400F29, 0x0000013 + +gUnk_08400F3C:: @ 08400F3C + .incbin "baserom.gba", 0x400F3C, 0x0000008 + +gUnk_08400F44:: @ 08400F44 + .incbin "baserom.gba", 0x400F44, 0x0000195 + +gUnk_084010D9:: @ 084010D9 + .incbin "baserom.gba", 0x4010D9, 0x00001A8 + +gUnk_08401281:: @ 08401281 + .incbin "baserom.gba", 0x401281, 0x00000C0 + +gUnk_08401341:: @ 08401341 + .incbin "baserom.gba", 0x401341, 0x00007B7 + +gUnk_08401AF8:: @ 08401AF8 + .incbin "baserom.gba", 0x401AF8, 0x00004C8 + +gUnk_08401FC0:: @ 08401FC0 + .incbin "baserom.gba", 0x401FC0, 0x0000268 + +gUnk_08402228:: @ 08402228 + .incbin "baserom.gba", 0x402228, 0x0000518 + +gUnk_08402740:: @ 08402740 + .incbin "baserom.gba", 0x402740, 0x0000501 + +gUnk_08402C41:: @ 08402C41 + .incbin "baserom.gba", 0x402C41, 0x00002C7 + +gUnk_08402F08:: @ 08402F08 + .incbin "baserom.gba", 0x402F08, 0x00003F7 + +gUnk_084032FF:: @ 084032FF + .incbin "baserom.gba", 0x4032FF, 0x0000011 + +gUnk_08403310:: @ 08403310 + .incbin "baserom.gba", 0x403310, 0x0000553 + +gUnk_08403863:: @ 08403863 + .incbin "baserom.gba", 0x403863, 0x00007A0 + +gUnk_08404003:: @ 08404003 + .incbin "baserom.gba", 0x404003, 0x000001D + +gUnk_08404020:: @ 08404020 + .incbin "baserom.gba", 0x404020, 0x00001F0 + +gUnk_08404210:: @ 08404210 + .incbin "baserom.gba", 0x404210, 0x0000454 + +gUnk_08404664:: @ 08404664 + .incbin "baserom.gba", 0x404664, 0x000039C + +gUnk_08404A00:: @ 08404A00 + .incbin "baserom.gba", 0x404A00, 0x0000568 + +gUnk_08404F68:: @ 08404F68 + .incbin "baserom.gba", 0x404F68, 0x0000298 + +gUnk_08405200:: @ 08405200 + .incbin "baserom.gba", 0x405200, 0x0000227 + +gUnk_08405427:: @ 08405427 + .incbin "baserom.gba", 0x405427, 0x000061A + +gUnk_08405A41:: @ 08405A41 + .incbin "baserom.gba", 0x405A41, 0x0000614 + +gUnk_08406055:: @ 08406055 + .incbin "baserom.gba", 0x406055, 0x00000B3 + +gUnk_08406108:: @ 08406108 + .incbin "baserom.gba", 0x406108, 0x000021C + +gUnk_08406324:: @ 08406324 + .incbin "baserom.gba", 0x406324, 0x0000854 + +gUnk_08406B78:: @ 08406B78 + .incbin "baserom.gba", 0x406B78, 0x0000107 + +gUnk_08406C7F:: @ 08406C7F + .incbin "baserom.gba", 0x406C7F, 0x0000389 + +gUnk_08407008:: @ 08407008 + .incbin "baserom.gba", 0x407008, 0x0000C52 + +gUnk_08407C5A:: @ 08407C5A + .incbin "baserom.gba", 0x407C5A, 0x00002AD + +gUnk_08407F07:: @ 08407F07 + .incbin "baserom.gba", 0x407F07, 0x00003CA + +gUnk_084082D1:: @ 084082D1 + .incbin "baserom.gba", 0x4082D1, 0x000003D + +gUnk_0840830E:: @ 0840830E + .incbin "baserom.gba", 0x40830E, 0x000028A + +gUnk_08408598:: @ 08408598 + .incbin "baserom.gba", 0x408598, 0x00001A8 + +gUnk_08408740:: @ 08408740 + .incbin "baserom.gba", 0x408740, 0x00000C8 + +gUnk_08408808:: @ 08408808 + .incbin "baserom.gba", 0x408808, 0x00000FF + +gUnk_08408907:: @ 08408907 + .incbin "baserom.gba", 0x408907, 0x000018F + +gUnk_08408A96:: @ 08408A96 + .incbin "baserom.gba", 0x408A96, 0x00001E7 + +gUnk_08408C7D:: @ 08408C7D + .incbin "baserom.gba", 0x408C7D, 0x000024A + +gUnk_08408EC7:: @ 08408EC7 + .incbin "baserom.gba", 0x408EC7, 0x000007C + +gUnk_08408F43:: @ 08408F43 + .incbin "baserom.gba", 0x408F43, 0x00000C7 + +gUnk_0840900A:: @ 0840900A + .incbin "baserom.gba", 0x40900A, 0x0000155 + +gUnk_0840915F:: @ 0840915F + .incbin "baserom.gba", 0x40915F, 0x000011B + +gUnk_0840927A:: @ 0840927A + .incbin "baserom.gba", 0x40927A, 0x00002A3 + +gUnk_0840951D:: @ 0840951D + .incbin "baserom.gba", 0x40951D, 0x00004F4 + +gUnk_08409A11:: @ 08409A11 + .incbin "baserom.gba", 0x409A11, 0x0000739 + +gUnk_0840A14A:: @ 0840A14A + .incbin "baserom.gba", 0x40A14A, 0x000044D + +gUnk_0840A597:: @ 0840A597 + .incbin "baserom.gba", 0x40A597, 0x000036A + +gUnk_0840A901:: @ 0840A901 + .incbin "baserom.gba", 0x40A901, 0x0000189 + +gUnk_0840AA8A:: @ 0840AA8A + .incbin "baserom.gba", 0x40AA8A, 0x000043B + +gUnk_0840AEC5:: @ 0840AEC5 + .incbin "baserom.gba", 0x40AEC5, 0x0000074 + +gUnk_0840AF39:: @ 0840AF39 + .incbin "baserom.gba", 0x40AF39, 0x0000067 + +gUnk_0840AFA0:: @ 0840AFA0 + .incbin "baserom.gba", 0x40AFA0, 0x00000DF + +gUnk_0840B07F:: @ 0840B07F + .incbin "baserom.gba", 0x40B07F, 0x0000289 + +gUnk_0840B308:: @ 0840B308 + .incbin "baserom.gba", 0x40B308, 0x00002C7 + +gUnk_0840B5CF:: @ 0840B5CF + .incbin "baserom.gba", 0x40B5CF, 0x000007D + +gUnk_0840B64C:: @ 0840B64C + .incbin "baserom.gba", 0x40B64C, 0x0000098 + +gUnk_0840B6E4:: @ 0840B6E4 + .incbin "baserom.gba", 0x40B6E4, 0x00000D9 + +gUnk_0840B7BD:: @ 0840B7BD + .incbin "baserom.gba", 0x40B7BD, 0x0000243 + +gUnk_0840BA00:: @ 0840BA00 + .incbin "baserom.gba", 0x40BA00, 0x000073D + +gUnk_0840C13D:: @ 0840C13D + .incbin "baserom.gba", 0x40C13D, 0x0000446 + +gUnk_0840C583:: @ 0840C583 + .incbin "baserom.gba", 0x40C583, 0x0000042 + +gUnk_0840C5C5:: @ 0840C5C5 + .incbin "baserom.gba", 0x40C5C5, 0x000016E + +gUnk_0840C733:: @ 0840C733 + .incbin "baserom.gba", 0x40C733, 0x0000395 + +gUnk_0840CAC8:: @ 0840CAC8 + .incbin "baserom.gba", 0x40CAC8, 0x00000F3 + +gUnk_0840CBBB:: @ 0840CBBB + .incbin "baserom.gba", 0x40CBBB, 0x0000098 + +gUnk_0840CC53:: @ 0840CC53 + .incbin "baserom.gba", 0x40CC53, 0x000000F + +gUnk_0840CC62:: @ 0840CC62 + .incbin "baserom.gba", 0x40CC62, 0x0000027 + +gUnk_0840CC89:: @ 0840CC89 + .incbin "baserom.gba", 0x40CC89, 0x00002DD + +gUnk_0840CF66:: @ 0840CF66 + .incbin "baserom.gba", 0x40CF66, 0x0000136 + +gUnk_0840D09C:: @ 0840D09C + .incbin "baserom.gba", 0x40D09C, 0x00000C1 + +gUnk_0840D15D:: @ 0840D15D + .incbin "baserom.gba", 0x40D15D, 0x00001A4 + +gUnk_0840D301:: @ 0840D301 + .incbin "baserom.gba", 0x40D301, 0x000003E + +gUnk_0840D33F:: @ 0840D33F + .incbin "baserom.gba", 0x40D33F, 0x00003DA + +gUnk_0840D719:: @ 0840D719 + .incbin "baserom.gba", 0x40D719, 0x00003A3 + +gUnk_0840DABC:: @ 0840DABC + .incbin "baserom.gba", 0x40DABC, 0x000004C + +gUnk_0840DB08:: @ 0840DB08 + .incbin "baserom.gba", 0x40DB08, 0x000006F + +gUnk_0840DB77:: @ 0840DB77 + .incbin "baserom.gba", 0x40DB77, 0x0000002 + +gUnk_0840DB79:: @ 0840DB79 + .incbin "baserom.gba", 0x40DB79, 0x00000E6 + +gUnk_0840DC5F:: @ 0840DC5F + .incbin "baserom.gba", 0x40DC5F, 0x000001A + +gUnk_0840DC79:: @ 0840DC79 + .incbin "baserom.gba", 0x40DC79, 0x00000DE + +gUnk_0840DD57:: @ 0840DD57 + .incbin "baserom.gba", 0x40DD57, 0x00001F9 + +gUnk_0840DF50:: @ 0840DF50 + .incbin "baserom.gba", 0x40DF50, 0x0000214 + +gUnk_0840E164:: @ 0840E164 + .incbin "baserom.gba", 0x40E164, 0x0000290 + +gUnk_0840E3F4:: @ 0840E3F4 + .incbin "baserom.gba", 0x40E3F4, 0x0000204 + +gUnk_0840E5F8:: @ 0840E5F8 + .incbin "baserom.gba", 0x40E5F8, 0x0000098 + +gUnk_0840E690:: @ 0840E690 + .incbin "baserom.gba", 0x40E690, 0x000016F + +gUnk_0840E7FF:: @ 0840E7FF + .incbin "baserom.gba", 0x40E7FF, 0x00000CE + +gUnk_0840E8CD:: @ 0840E8CD + .incbin "baserom.gba", 0x40E8CD, 0x000002E + +gUnk_0840E8FB:: @ 0840E8FB + .incbin "baserom.gba", 0x40E8FB, 0x0000301 + +gUnk_0840EBFC:: @ 0840EBFC + .incbin "baserom.gba", 0x40EBFC, 0x00000FA + +gUnk_0840ECF6:: @ 0840ECF6 + .incbin "baserom.gba", 0x40ECF6, 0x0000006 + +gUnk_0840ECFC:: @ 0840ECFC + .incbin "baserom.gba", 0x40ECFC, 0x00000FC + +gUnk_0840EDF8:: @ 0840EDF8 + .incbin "baserom.gba", 0x40EDF8, 0x00000FF + +gUnk_0840EEF7:: @ 0840EEF7 + .incbin "baserom.gba", 0x40EEF7, 0x0000011 + +gUnk_0840EF08:: @ 0840EF08 + .incbin "baserom.gba", 0x40EF08, 0x00001D8 + +gUnk_0840F0E0:: @ 0840F0E0 + .incbin "baserom.gba", 0x40F0E0, 0x0000018 + +gUnk_0840F0F8:: @ 0840F0F8 + .incbin "baserom.gba", 0x40F0F8, 0x000000F + +gUnk_0840F107:: @ 0840F107 + .incbin "baserom.gba", 0x40F107, 0x00001E5 + +gUnk_0840F2EC:: @ 0840F2EC + .incbin "baserom.gba", 0x40F2EC, 0x0000264 + +gUnk_0840F550:: @ 0840F550 + .incbin "baserom.gba", 0x40F550, 0x00000A8 + +gUnk_0840F5F8:: @ 0840F5F8 + .incbin "baserom.gba", 0x40F5F8, 0x000013D + +gUnk_0840F735:: @ 0840F735 + .incbin "baserom.gba", 0x40F735, 0x00000C3 + +gUnk_0840F7F8:: @ 0840F7F8 + .incbin "baserom.gba", 0x40F7F8, 0x00002FC + +gUnk_0840FAF4:: @ 0840FAF4 + .incbin "baserom.gba", 0x40FAF4, 0x0000004 + +gUnk_0840FAF8:: @ 0840FAF8 + .incbin "baserom.gba", 0x40FAF8, 0x00000FE + +gUnk_0840FBF6:: @ 0840FBF6 + .incbin "baserom.gba", 0x40FBF6, 0x0000002 + +gUnk_0840FBF8:: @ 0840FBF8 + .incbin "baserom.gba", 0x40FBF8, 0x0000001 + +gUnk_0840FBF9:: @ 0840FBF9 + .incbin "baserom.gba", 0x40FBF9, 0x0000001 + +gUnk_0840FBFA:: @ 0840FBFA + .incbin "baserom.gba", 0x40FBFA, 0x00000FE + +gUnk_0840FCF8:: @ 0840FCF8 + .incbin "baserom.gba", 0x40FCF8, 0x0000002 + +gUnk_0840FCFA:: @ 0840FCFA + .incbin "baserom.gba", 0x40FCFA, 0x00000FE + +gUnk_0840FDF8:: @ 0840FDF8 + .incbin "baserom.gba", 0x40FDF8, 0x000000F + +gUnk_0840FE07:: @ 0840FE07 + .incbin "baserom.gba", 0x40FE07, 0x00001E2 + +gUnk_0840FFE9:: @ 0840FFE9 + .incbin "baserom.gba", 0x40FFE9, 0x000011E + +gUnk_08410107:: @ 08410107 + .incbin "baserom.gba", 0x410107, 0x000090A + +gUnk_08410A11:: @ 08410A11 + .incbin "baserom.gba", 0x410A11, 0x0000808 + +gUnk_08411219:: @ 08411219 + .incbin "baserom.gba", 0x411219, 0x00001EB + +gUnk_08411404:: @ 08411404 + .incbin "baserom.gba", 0x411404, 0x0001D1C + +gUnk_08413120:: @ 08413120 + .incbin "baserom.gba", 0x413120, 0x0000103 + +gUnk_08413223:: @ 08413223 + .incbin "baserom.gba", 0x413223, 0x000220F + +gUnk_08415432:: @ 08415432 + .incbin "baserom.gba", 0x415432, 0x00003CA + +gUnk_084157FC:: @ 084157FC + .incbin "baserom.gba", 0x4157FC, 0x0001676 + +gUnk_08416E72:: @ 08416E72 + .incbin "baserom.gba", 0x416E72, 0x00011CE + +gUnk_08418040:: @ 08418040 + .incbin "baserom.gba", 0x418040, 0x0000BD0 + +gUnk_08418C10:: @ 08418C10 + .incbin "baserom.gba", 0x418C10, 0x00032F8 + +gUnk_0841BF08:: @ 0841BF08 + .incbin "baserom.gba", 0x41BF08, 0x0002DD7 + +gUnk_0841ECDF:: @ 0841ECDF + .incbin "baserom.gba", 0x41ECDF, 0x0000319 + +gUnk_0841EFF8:: @ 0841EFF8 + .incbin "baserom.gba", 0x41EFF8, 0x00003F8 + +gUnk_0841F3F0:: @ 0841F3F0 + .incbin "baserom.gba", 0x41F3F0, 0x000000A + +gUnk_0841F3FA:: @ 0841F3FA + .incbin "baserom.gba", 0x41F3FA, 0x00001F6 + +gUnk_0841F5F0:: @ 0841F5F0 + .incbin "baserom.gba", 0x41F5F0, 0x00001FE + +gUnk_0841F7EE:: @ 0841F7EE + .incbin "baserom.gba", 0x41F7EE, 0x000010A + +gUnk_0841F8F8:: @ 0841F8F8 + .incbin "baserom.gba", 0x41F8F8, 0x0000100 + +gUnk_0841F9F8:: @ 0841F9F8 + .incbin "baserom.gba", 0x41F9F8, 0x0000100 + +gUnk_0841FAF8:: @ 0841FAF8 + .incbin "baserom.gba", 0x41FAF8, 0x0000508 + +gUnk_08420000:: @ 08420000 + .incbin "baserom.gba", 0x420000, 0x0000092 + +gUnk_08420092:: @ 08420092 + .incbin "baserom.gba", 0x420092, 0x00003A5 + +gUnk_08420437:: @ 08420437 + .incbin "baserom.gba", 0x420437, 0x0000005 + +gUnk_0842043C:: @ 0842043C + .incbin "baserom.gba", 0x42043C, 0x0000C91 + +gUnk_084210CD:: @ 084210CD + .incbin "baserom.gba", 0x4210CD, 0x0000058 + +gUnk_08421125:: @ 08421125 + .incbin "baserom.gba", 0x421125, 0x0001004 + +gUnk_08422129:: @ 08422129 + .incbin "baserom.gba", 0x422129, 0x0000049 + +gUnk_08422172:: @ 08422172 + .incbin "baserom.gba", 0x422172, 0x00007C4 + +gUnk_08422936:: @ 08422936 + .incbin "baserom.gba", 0x422936, 0x000039B + +gUnk_08422CD1:: @ 08422CD1 + .incbin "baserom.gba", 0x422CD1, 0x0001637 + +gUnk_08424308:: @ 08424308 + .incbin "baserom.gba", 0x424308, 0x0003B7D + +gUnk_08427E85:: @ 08427E85 + .incbin "baserom.gba", 0x427E85, 0x000017A + +gUnk_08427FFF:: @ 08427FFF + .incbin "baserom.gba", 0x427FFF, 0x0002A70 + +gUnk_0842AA6F:: @ 0842AA6F + .incbin "baserom.gba", 0x42AA6F, 0x0001AD6 + +gUnk_0842C545:: @ 0842C545 + .incbin "baserom.gba", 0x42C545, 0x0000D8E + +gUnk_0842D2D3:: @ 0842D2D3 + .incbin "baserom.gba", 0x42D2D3, 0x0002730 + +gUnk_0842FA03:: @ 0842FA03 + .incbin "baserom.gba", 0x42FA03, 0x00005FD + +gUnk_08430000:: @ 08430000 + .incbin "baserom.gba", 0x430000, 0x000009A + +gUnk_0843009A:: @ 0843009A + .incbin "baserom.gba", 0x43009A, 0x0000052 + +gUnk_084300EC:: @ 084300EC + .incbin "baserom.gba", 0x4300EC, 0x0000044 + +gUnk_08430130:: @ 08430130 + .incbin "baserom.gba", 0x430130, 0x00001D0 + +gUnk_08430300:: @ 08430300 + .incbin "baserom.gba", 0x430300, 0x0000142 + +gUnk_08430442:: @ 08430442 + .incbin "baserom.gba", 0x430442, 0x0000A62 + +gUnk_08430EA4:: @ 08430EA4 + .incbin "baserom.gba", 0x430EA4, 0x00001F1 + +gUnk_08431095:: @ 08431095 + .incbin "baserom.gba", 0x431095, 0x000016E + +gUnk_08431203:: @ 08431203 + .incbin "baserom.gba", 0x431203, 0x0000020 + +gUnk_08431223:: @ 08431223 + .incbin "baserom.gba", 0x431223, 0x000034D + +gUnk_08431570:: @ 08431570 + .incbin "baserom.gba", 0x431570, 0x0000490 + +gUnk_08431A00:: @ 08431A00 + .incbin "baserom.gba", 0x431A00, 0x00009E2 + +gUnk_084323E2:: @ 084323E2 + .incbin "baserom.gba", 0x4323E2, 0x0000E16 + +gUnk_084331F8:: @ 084331F8 + .incbin "baserom.gba", 0x4331F8, 0x000013B + +gUnk_08433333:: @ 08433333 + .incbin "baserom.gba", 0x433333, 0x0000001 + +gUnk_08433334:: @ 08433334 + .incbin "baserom.gba", 0x433334, 0x0000001 + +gUnk_08433335:: @ 08433335 + .incbin "baserom.gba", 0x433335, 0x0000FBC + +gUnk_084342F1:: @ 084342F1 + .incbin "baserom.gba", 0x4342F1, 0x0000663 + +gUnk_08434954:: @ 08434954 + .incbin "baserom.gba", 0x434954, 0x0000EAB + +gUnk_084357FF:: @ 084357FF + .incbin "baserom.gba", 0x4357FF, 0x000055E + +gUnk_08435D5D:: @ 08435D5D + .incbin "baserom.gba", 0x435D5D, 0x0000802 + +gUnk_0843655F:: @ 0843655F + .incbin "baserom.gba", 0x43655F, 0x0001288 + +gUnk_084377E7:: @ 084377E7 + .incbin "baserom.gba", 0x4377E7, 0x0000553 + +gUnk_08437D3A:: @ 08437D3A + .incbin "baserom.gba", 0x437D3A, 0x00000DC + +gUnk_08437E16:: @ 08437E16 + .incbin "baserom.gba", 0x437E16, 0x0000099 + +gUnk_08437EAF:: @ 08437EAF + .incbin "baserom.gba", 0x437EAF, 0x000014B + +gUnk_08437FFA:: @ 08437FFA + .incbin "baserom.gba", 0x437FFA, 0x0007B19 + +gUnk_0843FB13:: @ 0843FB13 + .incbin "baserom.gba", 0x43FB13, 0x0000495 + +gUnk_0843FFA8:: @ 0843FFA8 + .incbin "baserom.gba", 0x43FFA8, 0x0000082 + +gUnk_0844002A:: @ 0844002A + .incbin "baserom.gba", 0x44002A, 0x00001C2 + +gUnk_084401EC:: @ 084401EC + .incbin "baserom.gba", 0x4401EC, 0x0000A56 + +gUnk_08440C42:: @ 08440C42 + .incbin "baserom.gba", 0x440C42, 0x00004C0 + +gUnk_08441102:: @ 08441102 + .incbin "baserom.gba", 0x441102, 0x000000F + +gUnk_08441111:: @ 08441111 + .incbin "baserom.gba", 0x441111, 0x0000101 + +gUnk_08441212:: @ 08441212 + .incbin "baserom.gba", 0x441212, 0x0000117 + +gUnk_08441329:: @ 08441329 + .incbin "baserom.gba", 0x441329, 0x0000311 + +gUnk_0844163A:: @ 0844163A + .incbin "baserom.gba", 0x44163A, 0x00001EE + +gUnk_08441828:: @ 08441828 + .incbin "baserom.gba", 0x441828, 0x00003FC + +gUnk_08441C24:: @ 08441C24 + .incbin "baserom.gba", 0x441C24, 0x00001DD + +gUnk_08441E01:: @ 08441E01 + .incbin "baserom.gba", 0x441E01, 0x0000322 + +gUnk_08442123:: @ 08442123 + .incbin "baserom.gba", 0x442123, 0x000107D + +gUnk_084431A0:: @ 084431A0 + .incbin "baserom.gba", 0x4431A0, 0x0000083 + +gUnk_08443223:: @ 08443223 + .incbin "baserom.gba", 0x443223, 0x0000023 + +gUnk_08443246:: @ 08443246 + .incbin "baserom.gba", 0x443246, 0x00001C5 + +gUnk_0844340B:: @ 0844340B + .incbin "baserom.gba", 0x44340B, 0x0000F39 + +gUnk_08444344:: @ 08444344 + .incbin "baserom.gba", 0x444344, 0x00000F0 + +gUnk_08444434:: @ 08444434 + .incbin "baserom.gba", 0x444434, 0x000000E + +gUnk_08444442:: @ 08444442 + .incbin "baserom.gba", 0x444442, 0x0000002 + +gUnk_08444444:: @ 08444444 + .incbin "baserom.gba", 0x444444, 0x00000B9 + +gUnk_084444FD:: @ 084444FD + .incbin "baserom.gba", 0x4444FD, 0x0000097 + +gUnk_08444594:: @ 08444594 + .incbin "baserom.gba", 0x444594, 0x0000158 + +gUnk_084446EC:: @ 084446EC + .incbin "baserom.gba", 0x4446EC, 0x000003B + +gUnk_08444727:: @ 08444727 + .incbin "baserom.gba", 0x444727, 0x000051E + +gUnk_08444C45:: @ 08444C45 + .incbin "baserom.gba", 0x444C45, 0x00002A5 + +gUnk_08444EEA:: @ 08444EEA + .incbin "baserom.gba", 0x444EEA, 0x0000959 + +gUnk_08445843:: @ 08445843 + .incbin "baserom.gba", 0x445843, 0x00003E0 + +gUnk_08445C23:: @ 08445C23 + .incbin "baserom.gba", 0x445C23, 0x0000110 + +gUnk_08445D33:: @ 08445D33 + .incbin "baserom.gba", 0x445D33, 0x00000CD + +gUnk_08445E00:: @ 08445E00 + .incbin "baserom.gba", 0x445E00, 0x0000768 + +gUnk_08446568:: @ 08446568 + .incbin "baserom.gba", 0x446568, 0x000190A + +gUnk_08447E72:: @ 08447E72 + .incbin "baserom.gba", 0x447E72, 0x00000A2 + +gUnk_08447F14:: @ 08447F14 + .incbin "baserom.gba", 0x447F14, 0x0000232 + +gUnk_08448146:: @ 08448146 + .incbin "baserom.gba", 0x448146, 0x00004BA + +gUnk_08448600:: @ 08448600 + .incbin "baserom.gba", 0x448600, 0x000151A + +gUnk_08449B1A:: @ 08449B1A + .incbin "baserom.gba", 0x449B1A, 0x00009E6 + +gUnk_0844A500:: @ 0844A500 + .incbin "baserom.gba", 0x44A500, 0x0000E33 + +gUnk_0844B333:: @ 0844B333 + .incbin "baserom.gba", 0x44B333, 0x000211A + +gUnk_0844D44D:: @ 0844D44D + .incbin "baserom.gba", 0x44D44D, 0x00003B3 + +gUnk_0844D800:: @ 0844D800 + .incbin "baserom.gba", 0x44D800, 0x0001700 + +gUnk_0844EF00:: @ 0844EF00 + .incbin "baserom.gba", 0x44EF00, 0x000011F + +gUnk_0844F01F:: @ 0844F01F + .incbin "baserom.gba", 0x44F01F, 0x00000D9 + +gUnk_0844F0F8:: @ 0844F0F8 + .incbin "baserom.gba", 0x44F0F8, 0x0000A0B + +gUnk_0844FB03:: @ 0844FB03 + .incbin "baserom.gba", 0x44FB03, 0x000050D + +gUnk_08450010:: @ 08450010 + .incbin "baserom.gba", 0x450010, 0x00003F1 + +gUnk_08450401:: @ 08450401 + .incbin "baserom.gba", 0x450401, 0x0001D21 + +gUnk_08452122:: @ 08452122 + .incbin "baserom.gba", 0x452122, 0x00000FE + +gUnk_08452220:: @ 08452220 + .incbin "baserom.gba", 0x452220, 0x0000134 + +gUnk_08452354:: @ 08452354 + .incbin "baserom.gba", 0x452354, 0x0000DE1 + +gUnk_08453135:: @ 08453135 + .incbin "baserom.gba", 0x453135, 0x00000FF + +gUnk_08453234:: @ 08453234 + .incbin "baserom.gba", 0x453234, 0x00001D4 + +gUnk_08453408:: @ 08453408 + .incbin "baserom.gba", 0x453408, 0x000001C + +gUnk_08453424:: @ 08453424 + .incbin "baserom.gba", 0x453424, 0x00006DC + +gUnk_08453B00:: @ 08453B00 + .incbin "baserom.gba", 0x453B00, 0x00005E5 + +gUnk_084540E5:: @ 084540E5 + .incbin "baserom.gba", 0x4540E5, 0x000034F + +gUnk_08454434:: @ 08454434 + .incbin "baserom.gba", 0x454434, 0x000002A + +gUnk_0845445E:: @ 0845445E + .incbin "baserom.gba", 0x45445E, 0x0000093 + +gUnk_084544F1:: @ 084544F1 + .incbin "baserom.gba", 0x4544F1, 0x0000063 + +gUnk_08454554:: @ 08454554 + .incbin "baserom.gba", 0x454554, 0x0000BC2 + +gUnk_08455116:: @ 08455116 + .incbin "baserom.gba", 0x455116, 0x0000124 + +gUnk_0845523A:: @ 0845523A + .incbin "baserom.gba", 0x45523A, 0x00000E9 + +gUnk_08455323:: @ 08455323 + .incbin "baserom.gba", 0x455323, 0x0000221 + +gUnk_08455544:: @ 08455544 + .incbin "baserom.gba", 0x455544, 0x0000011 + +gUnk_08455555:: @ 08455555 + .incbin "baserom.gba", 0x455555, 0x00002B2 + +gUnk_08455807:: @ 08455807 + .incbin "baserom.gba", 0x455807, 0x0000E1C + +gUnk_08456623:: @ 08456623 + .incbin "baserom.gba", 0x456623, 0x000025B + +gUnk_0845687E:: @ 0845687E + .incbin "baserom.gba", 0x45687E, 0x000228A + +gUnk_08458B08:: @ 08458B08 + .incbin "baserom.gba", 0x458B08, 0x000323D + +gUnk_0845BD45:: @ 0845BD45 + .incbin "baserom.gba", 0x45BD45, 0x0000D65 + +gUnk_0845CAAA:: @ 0845CAAA + .incbin "baserom.gba", 0x45CAAA, 0x000075D + +gUnk_0845D207:: @ 0845D207 + .incbin "baserom.gba", 0x45D207, 0x0001127 + +gUnk_0845E32E:: @ 0845E32E + .incbin "baserom.gba", 0x45E32E, 0x00001D4 + +gUnk_0845E502:: @ 0845E502 + .incbin "baserom.gba", 0x45E502, 0x0000857 + +gUnk_0845ED59:: @ 0845ED59 + .incbin "baserom.gba", 0x45ED59, 0x0000181 + +gUnk_0845EEDA:: @ 0845EEDA + .incbin "baserom.gba", 0x45EEDA, 0x0000C1E + +gUnk_0845FAF8:: @ 0845FAF8 + .incbin "baserom.gba", 0x45FAF8, 0x0000688 + +gUnk_08460180:: @ 08460180 + .incbin "baserom.gba", 0x460180, 0x0000290 + +gUnk_08460410:: @ 08460410 + .incbin "baserom.gba", 0x460410, 0x0000D45 + +gUnk_08461155:: @ 08461155 + .incbin "baserom.gba", 0x461155, 0x00011F0 + +gUnk_08462345:: @ 08462345 + .incbin "baserom.gba", 0x462345, 0x00010C5 + +gUnk_0846340A:: @ 0846340A + .incbin "baserom.gba", 0x46340A, 0x0001BED + +gUnk_08464FF7:: @ 08464FF7 + .incbin "baserom.gba", 0x464FF7, 0x0000321 + +gUnk_08465318:: @ 08465318 + .incbin "baserom.gba", 0x465318, 0x000012D + +gUnk_08465445:: @ 08465445 + .incbin "baserom.gba", 0x465445, 0x0000FC4 + +gUnk_08466409:: @ 08466409 + .incbin "baserom.gba", 0x466409, 0x000025B + +gUnk_08466664:: @ 08466664 + .incbin "baserom.gba", 0x466664, 0x00003F4 + +gUnk_08466A58:: @ 08466A58 + .incbin "baserom.gba", 0x466A58, 0x00005CC + +gUnk_08467024:: @ 08467024 + .incbin "baserom.gba", 0x467024, 0x0001203 + +gUnk_08468227:: @ 08468227 + .incbin "baserom.gba", 0x468227, 0x00014C7 + +gUnk_084696EE:: @ 084696EE + .incbin "baserom.gba", 0x4696EE, 0x0006923 + +gUnk_08470011:: @ 08470011 + .incbin "baserom.gba", 0x470011, 0x000000C + +gUnk_0847001D:: @ 0847001D + .incbin "baserom.gba", 0x47001D, 0x000006B + +gUnk_08470088:: @ 08470088 + .incbin "baserom.gba", 0x470088, 0x0000378 + +gUnk_08470400:: @ 08470400 + .incbin "baserom.gba", 0x470400, 0x00010EE + +gUnk_084714EE:: @ 084714EE + .incbin "baserom.gba", 0x4714EE, 0x0000008 + +gUnk_084714F6:: @ 084714F6 + .incbin "baserom.gba", 0x4714F6, 0x0000009 + +gUnk_084714FF:: @ 084714FF + .incbin "baserom.gba", 0x4714FF, 0x00019D7 + +gUnk_08472ED6:: @ 08472ED6 + .incbin "baserom.gba", 0x472ED6, 0x00009E1 + +gUnk_084738B7:: @ 084738B7 + .incbin "baserom.gba", 0x4738B7, 0x0000E11 + +gUnk_084746C8:: @ 084746C8 + .incbin "baserom.gba", 0x4746C8, 0x00019FB + +gUnk_084760C3:: @ 084760C3 + .incbin "baserom.gba", 0x4760C3, 0x0009F3E + +gUnk_08480001:: @ 08480001 + .incbin "baserom.gba", 0x480001, 0x0000003 + +gUnk_08480004:: @ 08480004 + .incbin "baserom.gba", 0x480004, 0x0000103 + +gUnk_08480107:: @ 08480107 + .incbin "baserom.gba", 0x480107, 0x00003BB + +gUnk_084804C2:: @ 084804C2 + .incbin "baserom.gba", 0x4804C2, 0x0000346 + +gUnk_08480808:: @ 08480808 + .incbin "baserom.gba", 0x480808, 0x0000C67 + +gUnk_0848146F:: @ 0848146F + .incbin "baserom.gba", 0x48146F, 0x0001C83 + +gUnk_084830F2:: @ 084830F2 + .incbin "baserom.gba", 0x4830F2, 0x0002256 + +gUnk_08485348:: @ 08485348 + .incbin "baserom.gba", 0x485348, 0x0001E26 + +gUnk_0848716E:: @ 0848716E + .incbin "baserom.gba", 0x48716E, 0x0000CE6 + +gUnk_08487E54:: @ 08487E54 + .incbin "baserom.gba", 0x487E54, 0x00081B4 + +gUnk_08490008:: @ 08490008 + .incbin "baserom.gba", 0x490008, 0x00001D9 + +gUnk_084901E1:: @ 084901E1 + .incbin "baserom.gba", 0x4901E1, 0x0003368 + +gUnk_08493549:: @ 08493549 + .incbin "baserom.gba", 0x493549, 0x0002215 + +gUnk_0849575E:: @ 0849575E + .incbin "baserom.gba", 0x49575E, 0x0001618 + +gUnk_08496D76:: @ 08496D76 + .incbin "baserom.gba", 0x496D76, 0x0000D00 + +gUnk_08497A76:: @ 08497A76 + .incbin "baserom.gba", 0x497A76, 0x0001EEE + +gUnk_08499964:: @ 08499964 + .incbin "baserom.gba", 0x499964, 0x00009E5 + +gUnk_0849A349:: @ 0849A349 + .incbin "baserom.gba", 0x49A349, 0x0005DE7 + +gUnk_084A0130:: @ 084A0130 + .incbin "baserom.gba", 0x4A0130, 0x000026F + +gUnk_084A039F:: @ 084A039F + .incbin "baserom.gba", 0x4A039F, 0x000171F + +gUnk_084A1ABE:: @ 084A1ABE + .incbin "baserom.gba", 0x4A1ABE, 0x0001344 + +gUnk_084A2E02:: @ 084A2E02 + .incbin "baserom.gba", 0x4A2E02, 0x00018C6 + +gUnk_084A46C8:: @ 084A46C8 + .incbin "baserom.gba", 0x4A46C8, 0x0000669 + +gUnk_084A4D31:: @ 084A4D31 + .incbin "baserom.gba", 0x4A4D31, 0x00019F9 + +gUnk_084A672A:: @ 084A672A + .incbin "baserom.gba", 0x4A672A, 0x0000A4B + +gUnk_084A7175:: @ 084A7175 + .incbin "baserom.gba", 0x4A7175, 0x0000001 + +gUnk_084A7176:: @ 084A7176 + .incbin "baserom.gba", 0x4A7176, 0x00002F9 + +gUnk_084A746F:: @ 084A746F + .incbin "baserom.gba", 0x4A746F, 0x00009F9 + +gUnk_084A7E68:: @ 084A7E68 + .incbin "baserom.gba", 0x4A7E68, 0x0002BFC + +gUnk_084AAA64:: @ 084AAA64 + .incbin "baserom.gba", 0x4AAA64, 0x0005DE6 + +gUnk_084B084A:: @ 084B084A + .incbin "baserom.gba", 0x4B084A, 0x0000A8A + +gUnk_084B12D4:: @ 084B12D4 + .incbin "baserom.gba", 0x4B12D4, 0x00004EA + +gUnk_084B17BE:: @ 084B17BE + .incbin "baserom.gba", 0x4B17BE, 0x0000045 + +gUnk_084B1803:: @ 084B1803 + .incbin "baserom.gba", 0x4B1803, 0x00002DD + +gUnk_084B1AE0:: @ 084B1AE0 + .incbin "baserom.gba", 0x4B1AE0, 0x0001834 + +gUnk_084B3314:: @ 084B3314 + .incbin "baserom.gba", 0x4B3314, 0x0000F36 + +gUnk_084B424A:: @ 084B424A + .incbin "baserom.gba", 0x4B424A, 0x00005CA + +gUnk_084B4814:: @ 084B4814 + .incbin "baserom.gba", 0x4B4814, 0x00002DD + +gUnk_084B4AF1:: @ 084B4AF1 + .incbin "baserom.gba", 0x4B4AF1, 0x0002782 + +gUnk_084B7273:: @ 084B7273 + .incbin "baserom.gba", 0x4B7273, 0x00048B5 + +gUnk_084BBB28:: @ 084BBB28 + .incbin "baserom.gba", 0x4BBB28, 0x000064C + +gUnk_084BC174:: @ 084BC174 + .incbin "baserom.gba", 0x4BC174, 0x0003E94 + +gUnk_084C0008:: @ 084C0008 + .incbin "baserom.gba", 0x4C0008, 0x000049A + +gUnk_084C04A2:: @ 084C04A2 + .incbin "baserom.gba", 0x4C04A2, 0x000046F + +gUnk_084C0911:: @ 084C0911 + .incbin "baserom.gba", 0x4C0911, 0x000003B + +gUnk_084C094C:: @ 084C094C + .incbin "baserom.gba", 0x4C094C, 0x0001DB4 + +gUnk_084C2700:: @ 084C2700 + .incbin "baserom.gba", 0x4C2700, 0x0002503 + +gUnk_084C4C03:: @ 084C4C03 + .incbin "baserom.gba", 0x4C4C03, 0x000256A + +gUnk_084C716D:: @ 084C716D + .incbin "baserom.gba", 0x4C716D, 0x0000E92 + +gUnk_084C7FFF:: @ 084C7FFF + .incbin "baserom.gba", 0x4C7FFF, 0x00020B1 + +gUnk_084CA0B0:: @ 084CA0B0 + .incbin "baserom.gba", 0x4CA0B0, 0x0003251 + +gUnk_084CD301:: @ 084CD301 + .incbin "baserom.gba", 0x4CD301, 0x000070A + +gUnk_084CDA0B:: @ 084CDA0B + .incbin "baserom.gba", 0x4CDA0B, 0x00025F5 + +gUnk_084D0000:: @ 084D0000 + .incbin "baserom.gba", 0x4D0000, 0x0000004 + +gUnk_084D0004:: @ 084D0004 + .incbin "baserom.gba", 0x4D0004, 0x0000008 + +gUnk_084D000C:: @ 084D000C + .incbin "baserom.gba", 0x4D000C, 0x0000008 + +gUnk_084D0014:: @ 084D0014 + .incbin "baserom.gba", 0x4D0014, 0x0000064 + +gUnk_084D0078:: @ 084D0078 + .incbin "baserom.gba", 0x4D0078, 0x000001F + +gUnk_084D0097:: @ 084D0097 + .incbin "baserom.gba", 0x4D0097, 0x0000029 + +gUnk_084D00C0:: @ 084D00C0 + .incbin "baserom.gba", 0x4D00C0, 0x000036A + +gUnk_084D042A:: @ 084D042A + .incbin "baserom.gba", 0x4D042A, 0x000002F + +gUnk_084D0459:: @ 084D0459 + .incbin "baserom.gba", 0x4D0459, 0x0000ABD + +gUnk_084D0F16:: @ 084D0F16 + .incbin "baserom.gba", 0x4D0F16, 0x000232D + +gUnk_084D3243:: @ 084D3243 + .incbin "baserom.gba", 0x4D3243, 0x00042EE + +gUnk_084D7531:: @ 084D7531 + .incbin "baserom.gba", 0x4D7531, 0x0004C1C + +gUnk_084DC14D:: @ 084DC14D + .incbin "baserom.gba", 0x4DC14D, 0x0002EB2 + +gUnk_084DEFFF:: @ 084DEFFF + .incbin "baserom.gba", 0x4DEFFF, 0x0001001 + +gUnk_084E0000:: @ 084E0000 + .incbin "baserom.gba", 0x4E0000, 0x0000001 + +gUnk_084E0001:: @ 084E0001 + .incbin "baserom.gba", 0x4E0001, 0x000038F + +gUnk_084E0390:: @ 084E0390 + .incbin "baserom.gba", 0x4E0390, 0x0000D4D + +gUnk_084E10DD:: @ 084E10DD + .incbin "baserom.gba", 0x4E10DD, 0x00035EB + +gUnk_084E46C8:: @ 084E46C8 + .incbin "baserom.gba", 0x4E46C8, 0x0000587 + +gUnk_084E4C4F:: @ 084E4C4F + .incbin "baserom.gba", 0x4E4C4F, 0x00002B8 + +gUnk_084E4F07:: @ 084E4F07 + .incbin "baserom.gba", 0x4E4F07, 0x0002067 + +gUnk_084E6F6E:: @ 084E6F6E + .incbin "baserom.gba", 0x4E6F6E, 0x00009AA + +gUnk_084E7918:: @ 084E7918 + .incbin "baserom.gba", 0x4E7918, 0x0001C57 + +gUnk_084E956F:: @ 084E956F + .incbin "baserom.gba", 0x4E956F, 0x0000AC0 + +gUnk_084EA02F:: @ 084EA02F + .incbin "baserom.gba", 0x4EA02F, 0x0004ED0 + +gUnk_084EEEFF:: @ 084EEEFF + .incbin "baserom.gba", 0x4EEEFF, 0x00011F6 + +gUnk_084F00F5:: @ 084F00F5 + .incbin "baserom.gba", 0x4F00F5, 0x0000012 + +gUnk_084F0107:: @ 084F0107 + .incbin "baserom.gba", 0x4F0107, 0x0000747 + +gUnk_084F084E:: @ 084F084E + .incbin "baserom.gba", 0x4F084E, 0x00006B8 + +gUnk_084F0F06:: @ 084F0F06 + .incbin "baserom.gba", 0x4F0F06, 0x00010DB + +gUnk_084F1FE1:: @ 084F1FE1 + .incbin "baserom.gba", 0x4F1FE1, 0x000206D + +gUnk_084F404E:: @ 084F404E + .incbin "baserom.gba", 0x4F404E, 0x00010BB + +gUnk_084F5109:: @ 084F5109 + .incbin "baserom.gba", 0x4F5109, 0x0002316 + +gUnk_084F741F:: @ 084F741F + .incbin "baserom.gba", 0x4F741F, 0x0000B31 + +gUnk_084F7F50:: @ 084F7F50 + .incbin "baserom.gba", 0x4F7F50, 0x0007FB3 + +gUnk_084FFF03:: @ 084FFF03 + .incbin "baserom.gba", 0x4FFF03, 0x00000FD + +gUnk_08500000:: @ 08500000 + .incbin "baserom.gba", 0x500000, 0x0000002 + +gUnk_08500002:: @ 08500002 + .incbin "baserom.gba", 0x500002, 0x0000002 + +gUnk_08500004:: @ 08500004 + .incbin "baserom.gba", 0x500004, 0x0000002 + +gUnk_08500006:: @ 08500006 + .incbin "baserom.gba", 0x500006, 0x0000001 + +gUnk_08500007:: @ 08500007 + .incbin "baserom.gba", 0x500007, 0x0000001 + +gUnk_08500008:: @ 08500008 + .incbin "baserom.gba", 0x500008, 0x0000002 + +gUnk_0850000A:: @ 0850000A + .incbin "baserom.gba", 0x50000A, 0x0000001 + +gUnk_0850000B:: @ 0850000B + .incbin "baserom.gba", 0x50000B, 0x0000001 + +gUnk_0850000C:: @ 0850000C + .incbin "baserom.gba", 0x50000C, 0x0000001 + +gUnk_0850000D:: @ 0850000D + .incbin "baserom.gba", 0x50000D, 0x0000002 + +gUnk_0850000F:: @ 0850000F + .incbin "baserom.gba", 0x50000F, 0x0000001 + +gUnk_08500010:: @ 08500010 + .incbin "baserom.gba", 0x500010, 0x0000001 + +gUnk_08500011:: @ 08500011 + .incbin "baserom.gba", 0x500011, 0x0000003 + +gUnk_08500014:: @ 08500014 + .incbin "baserom.gba", 0x500014, 0x0000008 + +gUnk_0850001C:: @ 0850001C + .incbin "baserom.gba", 0x50001C, 0x0000002 + +gUnk_0850001E:: @ 0850001E + .incbin "baserom.gba", 0x50001E, 0x0000002 + +gUnk_08500020:: @ 08500020 + .incbin "baserom.gba", 0x500020, 0x000001C + +gUnk_0850003C:: @ 0850003C + .incbin "baserom.gba", 0x50003C, 0x0000014 + +gUnk_08500050:: @ 08500050 + .incbin "baserom.gba", 0x500050, 0x0000006 + +gUnk_08500056:: @ 08500056 + .incbin "baserom.gba", 0x500056, 0x000000B + +gUnk_08500061:: @ 08500061 + .incbin "baserom.gba", 0x500061, 0x0000001 + +gUnk_08500062:: @ 08500062 + .incbin "baserom.gba", 0x500062, 0x000000A + +gUnk_0850006C:: @ 0850006C + .incbin "baserom.gba", 0x50006C, 0x0000006 + +gUnk_08500072:: @ 08500072 + .incbin "baserom.gba", 0x500072, 0x000004E + +gUnk_085000C0:: @ 085000C0 + .incbin "baserom.gba", 0x5000C0, 0x0000030 + +gUnk_085000F0:: @ 085000F0 + .incbin "baserom.gba", 0x5000F0, 0x0000008 + +gUnk_085000F8:: @ 085000F8 + .incbin "baserom.gba", 0x5000F8, 0x0000007 + +gUnk_085000FF:: @ 085000FF + .incbin "baserom.gba", 0x5000FF, 0x0000001 + +gUnk_08500100:: @ 08500100 + .incbin "baserom.gba", 0x500100, 0x000001C + +gUnk_0850011C:: @ 0850011C + .incbin "baserom.gba", 0x50011C, 0x0000004 + +gUnk_08500120:: @ 08500120 + .incbin "baserom.gba", 0x500120, 0x0000010 + +gUnk_08500130:: @ 08500130 + .incbin "baserom.gba", 0x500130, 0x0000038 + +gUnk_08500168:: @ 08500168 + .incbin "baserom.gba", 0x500168, 0x0000018 + +gUnk_08500180:: @ 08500180 + .incbin "baserom.gba", 0x500180, 0x0000281 + +gUnk_08500401:: @ 08500401 + .incbin "baserom.gba", 0x500401, 0x0000042 + +gUnk_08500443:: @ 08500443 + .incbin "baserom.gba", 0x500443, 0x0000001 + +gUnk_08500444:: @ 08500444 + .incbin "baserom.gba", 0x500444, 0x0000015 + +gUnk_08500459:: @ 08500459 + .incbin "baserom.gba", 0x500459, 0x000000A + +gUnk_08500463:: @ 08500463 + .incbin "baserom.gba", 0x500463, 0x00001ED + +gUnk_08500650:: @ 08500650 + .incbin "baserom.gba", 0x500650, 0x00001B6 + +gUnk_08500806:: @ 08500806 + .incbin "baserom.gba", 0x500806, 0x0000001 + +gUnk_08500807:: @ 08500807 + .incbin "baserom.gba", 0x500807, 0x0000001 + +gUnk_08500808:: @ 08500808 + .incbin "baserom.gba", 0x500808, 0x0000049 + +gUnk_08500851:: @ 08500851 + .incbin "baserom.gba", 0x500851, 0x00000CA + +gUnk_0850091B:: @ 0850091B + .incbin "baserom.gba", 0x50091B, 0x0000036 + +gUnk_08500951:: @ 08500951 + .incbin "baserom.gba", 0x500951, 0x0000810 + +gUnk_08501161:: @ 08501161 + .incbin "baserom.gba", 0x501161, 0x00001C5 + +gUnk_08501326:: @ 08501326 + .incbin "baserom.gba", 0x501326, 0x000042B + +gUnk_08501751:: @ 08501751 + .incbin "baserom.gba", 0x501751, 0x00002C0 + +gUnk_08501A11:: @ 08501A11 + .incbin "baserom.gba", 0x501A11, 0x00002EF + +gUnk_08501D00:: @ 08501D00 + .incbin "baserom.gba", 0x501D00, 0x0000208 + +gUnk_08501F08:: @ 08501F08 + .incbin "baserom.gba", 0x501F08, 0x0001259 + +gUnk_08503161:: @ 08503161 + .incbin "baserom.gba", 0x503161, 0x00001DB + +gUnk_0850333C:: @ 0850333C + .incbin "baserom.gba", 0x50333C, 0x0001078 + +gUnk_085043B4:: @ 085043B4 + .incbin "baserom.gba", 0x5043B4, 0x0000050 + +gUnk_08504404:: @ 08504404 + .incbin "baserom.gba", 0x504404, 0x00002C4 + +gUnk_085046C8:: @ 085046C8 + .incbin "baserom.gba", 0x5046C8, 0x000016F + +gUnk_08504837:: @ 08504837 + .incbin "baserom.gba", 0x504837, 0x0000829 + +gUnk_08505060:: @ 08505060 + .incbin "baserom.gba", 0x505060, 0x0002206 + +gUnk_08507266:: @ 08507266 + .incbin "baserom.gba", 0x507266, 0x0000D2A + +gUnk_08507F90:: @ 08507F90 + .incbin "baserom.gba", 0x507F90, 0x0001B0F + +gUnk_08509A9F:: @ 08509A9F + .incbin "baserom.gba", 0x509A9F, 0x0000573 + +gUnk_0850A012:: @ 0850A012 + .incbin "baserom.gba", 0x50A012, 0x0001117 + +gUnk_0850B129:: @ 0850B129 + .incbin "baserom.gba", 0x50B129, 0x000107F + +gUnk_0850C1A8:: @ 0850C1A8 + .incbin "baserom.gba", 0x50C1A8, 0x000059D + +gUnk_0850C745:: @ 0850C745 + .incbin "baserom.gba", 0x50C745, 0x0000A8C + +gUnk_0850D1D1:: @ 0850D1D1 + .incbin "baserom.gba", 0x50D1D1, 0x000064D + +gUnk_0850D81E:: @ 0850D81E + .incbin "baserom.gba", 0x50D81E, 0x0000F5D + +gUnk_0850E77B:: @ 0850E77B + .incbin "baserom.gba", 0x50E77B, 0x0001175 + +gUnk_0850F8F0:: @ 0850F8F0 + .incbin "baserom.gba", 0x50F8F0, 0x0000101 + +gUnk_0850F9F1:: @ 0850F9F1 + .incbin "baserom.gba", 0x50F9F1, 0x00000FF + +gUnk_0850FAF0:: @ 0850FAF0 + .incbin "baserom.gba", 0x50FAF0, 0x0000100 + +gUnk_0850FBF0:: @ 0850FBF0 + .incbin "baserom.gba", 0x50FBF0, 0x0000100 + +gUnk_0850FCF0:: @ 0850FCF0 + .incbin "baserom.gba", 0x50FCF0, 0x0000100 + +gUnk_0850FDF0:: @ 0850FDF0 + .incbin "baserom.gba", 0x50FDF0, 0x00000FD + +gUnk_0850FEED:: @ 0850FEED + .incbin "baserom.gba", 0x50FEED, 0x0000001 + +gUnk_0850FEEE:: @ 0850FEEE + .incbin "baserom.gba", 0x50FEEE, 0x0000002 + +gUnk_0850FEF0:: @ 0850FEF0 + .incbin "baserom.gba", 0x50FEF0, 0x00000DE + +gUnk_0850FFCE:: @ 0850FFCE + .incbin "baserom.gba", 0x50FFCE, 0x0000022 + +gUnk_0850FFF0:: @ 0850FFF0 + .incbin "baserom.gba", 0x50FFF0, 0x0000008 + +gUnk_0850FFF8:: @ 0850FFF8 + .incbin "baserom.gba", 0x50FFF8, 0x0000002 + +gUnk_0850FFFA:: @ 0850FFFA + .incbin "baserom.gba", 0x50FFFA, 0x0000002 + +gUnk_0850FFFC:: @ 0850FFFC + .incbin "baserom.gba", 0x50FFFC, 0x0000005 + +gUnk_08510001:: @ 08510001 + .incbin "baserom.gba", 0x510001, 0x0000019 + +gUnk_0851001A:: @ 0851001A + .incbin "baserom.gba", 0x51001A, 0x0000136 + +gUnk_08510150:: @ 08510150 + .incbin "baserom.gba", 0x510150, 0x000012C + +gUnk_0851027C:: @ 0851027C + .incbin "baserom.gba", 0x51027C, 0x00000D4 + +gUnk_08510350:: @ 08510350 + .incbin "baserom.gba", 0x510350, 0x0001BE0 + +gUnk_08511F30:: @ 08511F30 + .incbin "baserom.gba", 0x511F30, 0x0000821 + +gUnk_08512751:: @ 08512751 + .incbin "baserom.gba", 0x512751, 0x00014F3 + +gUnk_08513C44:: @ 08513C44 + .incbin "baserom.gba", 0x513C44, 0x00002DC + +gUnk_08513F20:: @ 08513F20 + .incbin "baserom.gba", 0x513F20, 0x0001829 + +gUnk_08515749:: @ 08515749 + .incbin "baserom.gba", 0x515749, 0x0006DD6 + +gUnk_0851C51F:: @ 0851C51F + .incbin "baserom.gba", 0x51C51F, 0x00030C9 + +gUnk_0851F5E8:: @ 0851F5E8 + .incbin "baserom.gba", 0x51F5E8, 0x0000808 + +gUnk_0851FDF0:: @ 0851FDF0 + .incbin "baserom.gba", 0x51FDF0, 0x00000D9 + +gUnk_0851FEC9:: @ 0851FEC9 + .incbin "baserom.gba", 0x51FEC9, 0x00004C9 + +gUnk_08520392:: @ 08520392 + .incbin "baserom.gba", 0x520392, 0x0000070 + +gUnk_08520402:: @ 08520402 + .incbin "baserom.gba", 0x520402, 0x000004F + +gUnk_08520451:: @ 08520451 + .incbin "baserom.gba", 0x520451, 0x00002BF + +gUnk_08520710:: @ 08520710 + .incbin "baserom.gba", 0x520710, 0x00004B5 + +gUnk_08520BC5:: @ 08520BC5 + .incbin "baserom.gba", 0x520BC5, 0x000187F + +gUnk_08522444:: @ 08522444 + .incbin "baserom.gba", 0x522444, 0x0002001 + +gUnk_08524445:: @ 08524445 + .incbin "baserom.gba", 0x524445, 0x0000121 + +gUnk_08524566:: @ 08524566 + .incbin "baserom.gba", 0x524566, 0x000103C + +gUnk_085255A2:: @ 085255A2 + .incbin "baserom.gba", 0x5255A2, 0x0000A64 + +gUnk_08526006:: @ 08526006 + .incbin "baserom.gba", 0x526006, 0x0001E2C + +gUnk_08527E32:: @ 08527E32 + .incbin "baserom.gba", 0x527E32, 0x0000112 + +gUnk_08527F44:: @ 08527F44 + .incbin "baserom.gba", 0x527F44, 0x00027BD + +gUnk_0852A701:: @ 0852A701 + .incbin "baserom.gba", 0x52A701, 0x0002A02 + +gUnk_0852D103:: @ 0852D103 + .incbin "baserom.gba", 0x52D103, 0x000304F + +gUnk_08530152:: @ 08530152 + .incbin "baserom.gba", 0x530152, 0x00001AE + +gUnk_08530300:: @ 08530300 + .incbin "baserom.gba", 0x530300, 0x0000050 + +gUnk_08530350:: @ 08530350 + .incbin "baserom.gba", 0x530350, 0x0000FD2 + +gUnk_08531322:: @ 08531322 + .incbin "baserom.gba", 0x531322, 0x000099D + +gUnk_08531CBF:: @ 08531CBF + .incbin "baserom.gba", 0x531CBF, 0x0000E2D + +gUnk_08532AEC:: @ 08532AEC + .incbin "baserom.gba", 0x532AEC, 0x0000979 + +gUnk_08533465:: @ 08533465 + .incbin "baserom.gba", 0x533465, 0x00001EE + +gUnk_08533653:: @ 08533653 + .incbin "baserom.gba", 0x533653, 0x0000EE3 + +gUnk_08534536:: @ 08534536 + .incbin "baserom.gba", 0x534536, 0x0001C1C + +gUnk_08536152:: @ 08536152 + .incbin "baserom.gba", 0x536152, 0x0001301 + +gUnk_08537453:: @ 08537453 + .incbin "baserom.gba", 0x537453, 0x0008BB1 + +gUnk_08540004:: @ 08540004 + .incbin "baserom.gba", 0x540004, 0x00000EC + +gUnk_085400F0:: @ 085400F0 + .incbin "baserom.gba", 0x5400F0, 0x0000100 + +gUnk_085401F0:: @ 085401F0 + .incbin "baserom.gba", 0x5401F0, 0x00010CF + +gUnk_085412BF:: @ 085412BF + .incbin "baserom.gba", 0x5412BF, 0x0000076 + +gUnk_08541335:: @ 08541335 + .incbin "baserom.gba", 0x541335, 0x0001FCE + +gUnk_08543303:: @ 08543303 + .incbin "baserom.gba", 0x543303, 0x0000F25 + +gUnk_08544228:: @ 08544228 + .incbin "baserom.gba", 0x544228, 0x000003F + +gUnk_08544267:: @ 08544267 + .incbin "baserom.gba", 0x544267, 0x000009A + +gUnk_08544301:: @ 08544301 + .incbin "baserom.gba", 0x544301, 0x0001365 + +gUnk_08545666:: @ 08545666 + .incbin "baserom.gba", 0x545666, 0x0000F00 + +gUnk_08546566:: @ 08546566 + .incbin "baserom.gba", 0x546566, 0x00019E4 + +gUnk_08547F4A:: @ 08547F4A + .incbin "baserom.gba", 0x547F4A, 0x000092C + +gUnk_08548876:: @ 08548876 + .incbin "baserom.gba", 0x548876, 0x0004666 + +gUnk_0854CEDC:: @ 0854CEDC + .incbin "baserom.gba", 0x54CEDC, 0x0001011 + +gUnk_0854DEED:: @ 0854DEED + .incbin "baserom.gba", 0x54DEED, 0x0002114 + +gUnk_08550001:: @ 08550001 + .incbin "baserom.gba", 0x550001, 0x0000003 + +gUnk_08550004:: @ 08550004 + .incbin "baserom.gba", 0x550004, 0x000000C + +gUnk_08550010:: @ 08550010 + .incbin "baserom.gba", 0x550010, 0x0000044 + +gUnk_08550054:: @ 08550054 + .incbin "baserom.gba", 0x550054, 0x0000400 + +gUnk_08550454:: @ 08550454 + .incbin "baserom.gba", 0x550454, 0x00004FD + +gUnk_08550951:: @ 08550951 + .incbin "baserom.gba", 0x550951, 0x00013BF + +gUnk_08551D10:: @ 08551D10 + .incbin "baserom.gba", 0x551D10, 0x0000513 + +gUnk_08552223:: @ 08552223 + .incbin "baserom.gba", 0x552223, 0x00001E5 + +gUnk_08552408:: @ 08552408 + .incbin "baserom.gba", 0x552408, 0x0001C4C + +gUnk_08554054:: @ 08554054 + .incbin "baserom.gba", 0x554054, 0x0000200 + +gUnk_08554254:: @ 08554254 + .incbin "baserom.gba", 0x554254, 0x0000002 + +gUnk_08554256:: @ 08554256 + .incbin "baserom.gba", 0x554256, 0x00001AD + +gUnk_08554403:: @ 08554403 + .incbin "baserom.gba", 0x554403, 0x0000042 + +gUnk_08554445:: @ 08554445 + .incbin "baserom.gba", 0x554445, 0x0000630 + +gUnk_08554A75:: @ 08554A75 + .incbin "baserom.gba", 0x554A75, 0x00008AF + +gUnk_08555324:: @ 08555324 + .incbin "baserom.gba", 0x555324, 0x0000231 + +gUnk_08555555:: @ 08555555 + .incbin "baserom.gba", 0x555555, 0x000000D + +gUnk_08555562:: @ 08555562 + .incbin "baserom.gba", 0x555562, 0x0000503 + +gUnk_08555A65:: @ 08555A65 + .incbin "baserom.gba", 0x555A65, 0x0000BAB + +gUnk_08556610:: @ 08556610 + .incbin "baserom.gba", 0x556610, 0x000022B + +gUnk_0855683B:: @ 0855683B + .incbin "baserom.gba", 0x55683B, 0x0000519 + +gUnk_08556D54:: @ 08556D54 + .incbin "baserom.gba", 0x556D54, 0x0000183 + +gUnk_08556ED7:: @ 08556ED7 + .incbin "baserom.gba", 0x556ED7, 0x0000435 + +gUnk_0855730C:: @ 0855730C + .incbin "baserom.gba", 0x55730C, 0x0000A4F + +gUnk_08557D5B:: @ 08557D5B + .incbin "baserom.gba", 0x557D5B, 0x00014A7 + +gUnk_08559202:: @ 08559202 + .incbin "baserom.gba", 0x559202, 0x0005428 + +gUnk_0855E62A:: @ 0855E62A + .incbin "baserom.gba", 0x55E62A, 0x0000260 + +gUnk_0855E88A:: @ 0855E88A + .incbin "baserom.gba", 0x55E88A, 0x000177E + +gUnk_08560008:: @ 08560008 + .incbin "baserom.gba", 0x560008, 0x00000FF + +gUnk_08560107:: @ 08560107 + .incbin "baserom.gba", 0x560107, 0x0000258 + +gUnk_0856035F:: @ 0856035F + .incbin "baserom.gba", 0x56035F, 0x000154E + +gUnk_085618AD:: @ 085618AD + .incbin "baserom.gba", 0x5618AD, 0x0001BA9 + +gUnk_08563456:: @ 08563456 + .incbin "baserom.gba", 0x563456, 0x00008BA + +gUnk_08563D10:: @ 08563D10 + .incbin "baserom.gba", 0x563D10, 0x000071B + +gUnk_0856442B:: @ 0856442B + .incbin "baserom.gba", 0x56442B, 0x00002D5 + +gUnk_08564700:: @ 08564700 + .incbin "baserom.gba", 0x564700, 0x0000C1F + +gUnk_0856531F:: @ 0856531F + .incbin "baserom.gba", 0x56531F, 0x0000314 + +gUnk_08565633:: @ 08565633 + .incbin "baserom.gba", 0x565633, 0x0000F1E + +gUnk_08566551:: @ 08566551 + .incbin "baserom.gba", 0x566551, 0x00000D1 + +gUnk_08566622:: @ 08566622 + .incbin "baserom.gba", 0x566622, 0x0000DF3 + +gUnk_08567415:: @ 08567415 + .incbin "baserom.gba", 0x567415, 0x0000C02 + +gUnk_08568017:: @ 08568017 + .incbin "baserom.gba", 0x568017, 0x0000031 + +gUnk_08568048:: @ 08568048 + .incbin "baserom.gba", 0x568048, 0x00060DB + +gUnk_0856E123:: @ 0856E123 + .incbin "baserom.gba", 0x56E123, 0x0001EEE + +gUnk_08570011:: @ 08570011 + .incbin "baserom.gba", 0x570011, 0x00018E0 + +gUnk_085718F1:: @ 085718F1 + .incbin "baserom.gba", 0x5718F1, 0x000071F + +gUnk_08572010:: @ 08572010 + .incbin "baserom.gba", 0x572010, 0x0000679 + +gUnk_08572689:: @ 08572689 + .incbin "baserom.gba", 0x572689, 0x0000795 + +gUnk_08572E1E:: @ 08572E1E + .incbin "baserom.gba", 0x572E1E, 0x000123A + +gUnk_08574058:: @ 08574058 + .incbin "baserom.gba", 0x574058, 0x00021CC + +gUnk_08576224:: @ 08576224 + .incbin "baserom.gba", 0x576224, 0x0001408 + +gUnk_0857762C:: @ 0857762C + .incbin "baserom.gba", 0x57762C, 0x000135B + +gUnk_08578987:: @ 08578987 + .incbin "baserom.gba", 0x578987, 0x00036CB + +gUnk_0857C052:: @ 0857C052 + .incbin "baserom.gba", 0x57C052, 0x0003724 + +gUnk_0857F776:: @ 0857F776 + .incbin "baserom.gba", 0x57F776, 0x000088A + +gUnk_08580000:: @ 08580000 + .incbin "baserom.gba", 0x580000, 0x0000008 + +gUnk_08580008:: @ 08580008 + .incbin "baserom.gba", 0x580008, 0x000003E + +gUnk_08580046:: @ 08580046 + .incbin "baserom.gba", 0x580046, 0x0000030 + +gUnk_08580076:: @ 08580076 + .incbin "baserom.gba", 0x580076, 0x0000030 + +gUnk_085800A6:: @ 085800A6 + .incbin "baserom.gba", 0x5800A6, 0x00000AC + +gUnk_08580152:: @ 08580152 + .incbin "baserom.gba", 0x580152, 0x0000306 + +gUnk_08580458:: @ 08580458 + .incbin "baserom.gba", 0x580458, 0x00003B0 + +gUnk_08580808:: @ 08580808 + .incbin "baserom.gba", 0x580808, 0x000004F + +gUnk_08580857:: @ 08580857 + .incbin "baserom.gba", 0x580857, 0x0006E11 + +gUnk_08587668:: @ 08587668 + .incbin "baserom.gba", 0x587668, 0x00007F9 + +gUnk_08587E61:: @ 08587E61 + .incbin "baserom.gba", 0x587E61, 0x00081A0 + +gUnk_08590001:: @ 08590001 + .incbin "baserom.gba", 0x590001, 0x00000F1 + +gUnk_085900F2:: @ 085900F2 + .incbin "baserom.gba", 0x5900F2, 0x00007EF + +gUnk_085908E1:: @ 085908E1 + .incbin "baserom.gba", 0x5908E1, 0x0000CC9 + +gUnk_085915AA:: @ 085915AA + .incbin "baserom.gba", 0x5915AA, 0x00081CD + +gUnk_08599777:: @ 08599777 + .incbin "baserom.gba", 0x599777, 0x000184D + +gUnk_0859AFC4:: @ 0859AFC4 + .incbin "baserom.gba", 0x59AFC4, 0x000503C + +gUnk_085A0000:: @ 085A0000 + .incbin "baserom.gba", 0x5A0000, 0x0000001 + +gUnk_085A0001:: @ 085A0001 + .incbin "baserom.gba", 0x5A0001, 0x0000001 + +gUnk_085A0002:: @ 085A0002 + .incbin "baserom.gba", 0x5A0002, 0x0000006 + +gUnk_085A0008:: @ 085A0008 + .incbin "baserom.gba", 0x5A0008, 0x0000002 + +gUnk_085A000A:: @ 085A000A + .incbin "baserom.gba", 0x5A000A, 0x0000002 + +gUnk_085A000C:: @ 085A000C + .incbin "baserom.gba", 0x5A000C, 0x0000003 + +gUnk_085A000F:: @ 085A000F + .incbin "baserom.gba", 0x5A000F, 0x0000009 + +gUnk_085A0018:: @ 085A0018 + .incbin "baserom.gba", 0x5A0018, 0x0000006 + +gUnk_085A001E:: @ 085A001E + .incbin "baserom.gba", 0x5A001E, 0x0000001 + +gUnk_085A001F:: @ 085A001F + .incbin "baserom.gba", 0x5A001F, 0x000001D + +gUnk_085A003C:: @ 085A003C + .incbin "baserom.gba", 0x5A003C, 0x000001A + +gUnk_085A0056:: @ 085A0056 + .incbin "baserom.gba", 0x5A0056, 0x0000008 + +gUnk_085A005E:: @ 085A005E + .incbin "baserom.gba", 0x5A005E, 0x0000033 + +gUnk_085A0091:: @ 085A0091 + .incbin "baserom.gba", 0x5A0091, 0x000005F + +gUnk_085A00F0:: @ 085A00F0 + .incbin "baserom.gba", 0x5A00F0, 0x0000211 + +gUnk_085A0301:: @ 085A0301 + .incbin "baserom.gba", 0x5A0301, 0x0000100 + +gUnk_085A0401:: @ 085A0401 + .incbin "baserom.gba", 0x5A0401, 0x0000033 + +gUnk_085A0434:: @ 085A0434 + .incbin "baserom.gba", 0x5A0434, 0x000000F + +gUnk_085A0443:: @ 085A0443 + .incbin "baserom.gba", 0x5A0443, 0x0000006 + +gUnk_085A0449:: @ 085A0449 + .incbin "baserom.gba", 0x5A0449, 0x000001A + +gUnk_085A0463:: @ 085A0463 + .incbin "baserom.gba", 0x5A0463, 0x0000001 + +gUnk_085A0464:: @ 085A0464 + .incbin "baserom.gba", 0x5A0464, 0x00003A2 + +gUnk_085A0806:: @ 085A0806 + .incbin "baserom.gba", 0x5A0806, 0x000267A + +gUnk_085A2E80:: @ 085A2E80 + .incbin "baserom.gba", 0x5A2E80, 0x0001382 + +gUnk_085A4202:: @ 085A4202 + .incbin "baserom.gba", 0x5A4202, 0x0001CED + +gUnk_085A5EEF:: @ 085A5EEF + .incbin "baserom.gba", 0x5A5EEF, 0x0000037 + +gUnk_085A5F26:: @ 085A5F26 + .incbin "baserom.gba", 0x5A5F26, 0x00013FA + +gUnk_085A7320:: @ 085A7320 + .incbin "baserom.gba", 0x5A7320, 0x0002480 + +gUnk_085A97A0:: @ 085A97A0 + .incbin "baserom.gba", 0x5A97A0, 0x0000CA1 + +gUnk_085AA441:: @ 085AA441 + .incbin "baserom.gba", 0x5AA441, 0x0002B76 + +gUnk_085ACFB7:: @ 085ACFB7 + .incbin "baserom.gba", 0x5ACFB7, 0x0002FA5 + +gUnk_085AFF5C:: @ 085AFF5C + .incbin "baserom.gba", 0x5AFF5C, 0x000001C + +gUnk_085AFF78:: @ 085AFF78 + .incbin "baserom.gba", 0x5AFF78, 0x0000058 + +gUnk_085AFFD0:: @ 085AFFD0 + .incbin "baserom.gba", 0x5AFFD0, 0x0000030 + +gUnk_085B0000:: @ 085B0000 + .incbin "baserom.gba", 0x5B0000, 0x0000006 + +gUnk_085B0006:: @ 085B0006 + .incbin "baserom.gba", 0x5B0006, 0x0000004 + +gUnk_085B000A:: @ 085B000A + .incbin "baserom.gba", 0x5B000A, 0x0000002 + +gUnk_085B000C:: @ 085B000C + .incbin "baserom.gba", 0x5B000C, 0x0000002 + +gUnk_085B000E:: @ 085B000E + .incbin "baserom.gba", 0x5B000E, 0x000000E + +gUnk_085B001C:: @ 085B001C + .incbin "baserom.gba", 0x5B001C, 0x0000002 + +gUnk_085B001E:: @ 085B001E + .incbin "baserom.gba", 0x5B001E, 0x0000006 + +gUnk_085B0024:: @ 085B0024 + .incbin "baserom.gba", 0x5B0024, 0x0000012 + +gUnk_085B0036:: @ 085B0036 + .incbin "baserom.gba", 0x5B0036, 0x0000006 + +gUnk_085B003C:: @ 085B003C + .incbin "baserom.gba", 0x5B003C, 0x000000C + +gUnk_085B0048:: @ 085B0048 + .incbin "baserom.gba", 0x5B0048, 0x000000C + +gUnk_085B0054:: @ 085B0054 + .incbin "baserom.gba", 0x5B0054, 0x0000004 + +gUnk_085B0058:: @ 085B0058 + .incbin "baserom.gba", 0x5B0058, 0x000000C + +gUnk_085B0064:: @ 085B0064 + .incbin "baserom.gba", 0x5B0064, 0x0000001 + +gUnk_085B0065:: @ 085B0065 + .incbin "baserom.gba", 0x5B0065, 0x000000F + +gUnk_085B0074:: @ 085B0074 + .incbin "baserom.gba", 0x5B0074, 0x0000060 + +gUnk_085B00D4:: @ 085B00D4 + .incbin "baserom.gba", 0x5B00D4, 0x0000026 + +gUnk_085B00FA:: @ 085B00FA + .incbin "baserom.gba", 0x5B00FA, 0x0000308 + +gUnk_085B0402:: @ 085B0402 + .incbin "baserom.gba", 0x5B0402, 0x0000032 + +gUnk_085B0434:: @ 085B0434 + .incbin "baserom.gba", 0x5B0434, 0x0000015 + +gUnk_085B0449:: @ 085B0449 + .incbin "baserom.gba", 0x5B0449, 0x000001A + +gUnk_085B0463:: @ 085B0463 + .incbin "baserom.gba", 0x5B0463, 0x0000001 + +gUnk_085B0464:: @ 085B0464 + .incbin "baserom.gba", 0x5B0464, 0x00003A2 + +gUnk_085B0806:: @ 085B0806 + .incbin "baserom.gba", 0x5B0806, 0x0000001 + +gUnk_085B0807:: @ 085B0807 + .incbin "baserom.gba", 0x5B0807, 0x000088D + +gUnk_085B1094:: @ 085B1094 + .incbin "baserom.gba", 0x5B1094, 0x00030EC + +gUnk_085B4180:: @ 085B4180 + .incbin "baserom.gba", 0x5B4180, 0x0000EB5 + +gUnk_085B5035:: @ 085B5035 + .incbin "baserom.gba", 0x5B5035, 0x0000E8B + +gUnk_085B5EC0:: @ 085B5EC0 + .incbin "baserom.gba", 0x5B5EC0, 0x00000E0 + +gUnk_085B5FA0:: @ 085B5FA0 + .incbin "baserom.gba", 0x5B5FA0, 0x00000E0 + +gUnk_085B6080:: @ 085B6080 + .incbin "baserom.gba", 0x5B6080, 0x00000E0 + +gUnk_085B6160:: @ 085B6160 + .incbin "baserom.gba", 0x5B6160, 0x00000E0 + +gUnk_085B6240:: @ 085B6240 + .incbin "baserom.gba", 0x5B6240, 0x00000E0 + +gUnk_085B6320:: @ 085B6320 + .incbin "baserom.gba", 0x5B6320, 0x0000013 + +gUnk_085B6333:: @ 085B6333 + .incbin "baserom.gba", 0x5B6333, 0x00000CD + +gUnk_085B6400:: @ 085B6400 + .incbin "baserom.gba", 0x5B6400, 0x00000E0 + +gUnk_085B64E0:: @ 085B64E0 + .incbin "baserom.gba", 0x5B64E0, 0x00000E0 + +gUnk_085B65C0:: @ 085B65C0 + .incbin "baserom.gba", 0x5B65C0, 0x00000E0 + +gUnk_085B66A0:: @ 085B66A0 + .incbin "baserom.gba", 0x5B66A0, 0x00000E0 + +gUnk_085B6780:: @ 085B6780 + .incbin "baserom.gba", 0x5B6780, 0x00000E0 + +gUnk_085B6860:: @ 085B6860 + .incbin "baserom.gba", 0x5B6860, 0x00000E0 + +gUnk_085B6940:: @ 085B6940 + .incbin "baserom.gba", 0x5B6940, 0x00000E0 + +gUnk_085B6A20:: @ 085B6A20 + .incbin "baserom.gba", 0x5B6A20, 0x00000E0 + +gUnk_085B6B00:: @ 085B6B00 + .incbin "baserom.gba", 0x5B6B00, 0x00000E0 + +gUnk_085B6BE0:: @ 085B6BE0 + .incbin "baserom.gba", 0x5B6BE0, 0x00000E0 + +gUnk_085B6CC0:: @ 085B6CC0 + .incbin "baserom.gba", 0x5B6CC0, 0x00000E0 + +gUnk_085B6DA0:: @ 085B6DA0 + .incbin "baserom.gba", 0x5B6DA0, 0x00000E0 + +gUnk_085B6E80:: @ 085B6E80 + .incbin "baserom.gba", 0x5B6E80, 0x00000C6 + +gUnk_085B6F46:: @ 085B6F46 + .incbin "baserom.gba", 0x5B6F46, 0x000001A + +gUnk_085B6F60:: @ 085B6F60 + .incbin "baserom.gba", 0x5B6F60, 0x00000E0 + +gUnk_085B7040:: @ 085B7040 + .incbin "baserom.gba", 0x5B7040, 0x00000E0 + +gUnk_085B7120:: @ 085B7120 + .incbin "baserom.gba", 0x5B7120, 0x00000E0 + +gUnk_085B7200:: @ 085B7200 + .incbin "baserom.gba", 0x5B7200, 0x00000E0 + +gUnk_085B72E0:: @ 085B72E0 + .incbin "baserom.gba", 0x5B72E0, 0x00000E0 + +gUnk_085B73C0:: @ 085B73C0 + .incbin "baserom.gba", 0x5B73C0, 0x00000E0 + +gUnk_085B74A0:: @ 085B74A0 + .incbin "baserom.gba", 0x5B74A0, 0x00000E0 + +gUnk_085B7580:: @ 085B7580 + .incbin "baserom.gba", 0x5B7580, 0x00000E0 + +gUnk_085B7660:: @ 085B7660 + .incbin "baserom.gba", 0x5B7660, 0x00000E0 + +gUnk_085B7740:: @ 085B7740 + .incbin "baserom.gba", 0x5B7740, 0x00000E0 + +gUnk_085B7820:: @ 085B7820 + .incbin "baserom.gba", 0x5B7820, 0x00000E0 + +gUnk_085B7900:: @ 085B7900 + .incbin "baserom.gba", 0x5B7900, 0x00000E0 + +gUnk_085B79E0:: @ 085B79E0 + .incbin "baserom.gba", 0x5B79E0, 0x00000E0 + +gUnk_085B7AC0:: @ 085B7AC0 + .incbin "baserom.gba", 0x5B7AC0, 0x00000E0 + +gUnk_085B7BA0:: @ 085B7BA0 + .incbin "baserom.gba", 0x5B7BA0, 0x00000E0 + +gUnk_085B7C80:: @ 085B7C80 + .incbin "baserom.gba", 0x5B7C80, 0x00000E0 + +gUnk_085B7D60:: @ 085B7D60 + .incbin "baserom.gba", 0x5B7D60, 0x00000E0 + +gUnk_085B7E40:: @ 085B7E40 + .incbin "baserom.gba", 0x5B7E40, 0x00000E0 + +gUnk_085B7F20:: @ 085B7F20 + .incbin "baserom.gba", 0x5B7F20, 0x00000E0 + +gUnk_085B8000:: @ 085B8000 + .incbin "baserom.gba", 0x5B8000, 0x00000E0 + +gUnk_085B80E0:: @ 085B80E0 + .incbin "baserom.gba", 0x5B80E0, 0x00000E0 + +gUnk_085B81C0:: @ 085B81C0 + .incbin "baserom.gba", 0x5B81C0, 0x00000E0 + +gUnk_085B82A0:: @ 085B82A0 + .incbin "baserom.gba", 0x5B82A0, 0x00000E0 + +gUnk_085B8380:: @ 085B8380 + .incbin "baserom.gba", 0x5B8380, 0x00000E0 + +gUnk_085B8460:: @ 085B8460 + .incbin "baserom.gba", 0x5B8460, 0x00000E0 + +gUnk_085B8540:: @ 085B8540 + .incbin "baserom.gba", 0x5B8540, 0x00000E0 + +gUnk_085B8620:: @ 085B8620 + .incbin "baserom.gba", 0x5B8620, 0x00000E0 + +gUnk_085B8700:: @ 085B8700 + .incbin "baserom.gba", 0x5B8700, 0x00000E0 + +gUnk_085B87E0:: @ 085B87E0 + .incbin "baserom.gba", 0x5B87E0, 0x00000E0 + +gUnk_085B88C0:: @ 085B88C0 + .incbin "baserom.gba", 0x5B88C0, 0x0000120 + +gUnk_085B89E0:: @ 085B89E0 + .incbin "baserom.gba", 0x5B89E0, 0x00000E0 + +gUnk_085B8AC0:: @ 085B8AC0 + .incbin "baserom.gba", 0x5B8AC0, 0x00000E0 + +gUnk_085B8BA0:: @ 085B8BA0 + .incbin "baserom.gba", 0x5B8BA0, 0x00000E0 + +gUnk_085B8C80:: @ 085B8C80 + .incbin "baserom.gba", 0x5B8C80, 0x00000E0 + +gUnk_085B8D60:: @ 085B8D60 + .incbin "baserom.gba", 0x5B8D60, 0x00000E0 + +gUnk_085B8E40:: @ 085B8E40 + .incbin "baserom.gba", 0x5B8E40, 0x00000E0 + +gUnk_085B8F20:: @ 085B8F20 + .incbin "baserom.gba", 0x5B8F20, 0x00000E0 + +gUnk_085B9000:: @ 085B9000 + .incbin "baserom.gba", 0x5B9000, 0x00000E0 + +gUnk_085B90E0:: @ 085B90E0 + .incbin "baserom.gba", 0x5B90E0, 0x00000E0 + +gUnk_085B91C0:: @ 085B91C0 + .incbin "baserom.gba", 0x5B91C0, 0x00000E0 + +gUnk_085B92A0:: @ 085B92A0 + .incbin "baserom.gba", 0x5B92A0, 0x00000E0 + +gUnk_085B9380:: @ 085B9380 + .incbin "baserom.gba", 0x5B9380, 0x00000E0 + +gUnk_085B9460:: @ 085B9460 + .incbin "baserom.gba", 0x5B9460, 0x00000E0 + +gUnk_085B9540:: @ 085B9540 + .incbin "baserom.gba", 0x5B9540, 0x00000E0 + +gUnk_085B9620:: @ 085B9620 + .incbin "baserom.gba", 0x5B9620, 0x00000E0 + +gUnk_085B9700:: @ 085B9700 + .incbin "baserom.gba", 0x5B9700, 0x00000E0 + +gUnk_085B97E0:: @ 085B97E0 + .incbin "baserom.gba", 0x5B97E0, 0x00000E0 + +gUnk_085B98C0:: @ 085B98C0 + .incbin "baserom.gba", 0x5B98C0, 0x00000E0 + +gUnk_085B99A0:: @ 085B99A0 + .incbin "baserom.gba", 0x5B99A0, 0x00000E0 + +gUnk_085B9A80:: @ 085B9A80 + .incbin "baserom.gba", 0x5B9A80, 0x00000E0 + +gUnk_085B9B60:: @ 085B9B60 + .incbin "baserom.gba", 0x5B9B60, 0x00000E0 + +gUnk_085B9C40:: @ 085B9C40 + .incbin "baserom.gba", 0x5B9C40, 0x00000E0 + +gUnk_085B9D20:: @ 085B9D20 + .incbin "baserom.gba", 0x5B9D20, 0x00000E0 + +gUnk_085B9E00:: @ 085B9E00 + .incbin "baserom.gba", 0x5B9E00, 0x00000E0 + +gUnk_085B9EE0:: @ 085B9EE0 + .incbin "baserom.gba", 0x5B9EE0, 0x00000E0 + +gUnk_085B9FC0:: @ 085B9FC0 + .incbin "baserom.gba", 0x5B9FC0, 0x00000E0 + +gUnk_085BA0A0:: @ 085BA0A0 + .incbin "baserom.gba", 0x5BA0A0, 0x00000E0 + +gUnk_085BA180:: @ 085BA180 + .incbin "baserom.gba", 0x5BA180, 0x00000E0 + +gUnk_085BA260:: @ 085BA260 + .incbin "baserom.gba", 0x5BA260, 0x00000E0 + +gUnk_085BA340:: @ 085BA340 + .incbin "baserom.gba", 0x5BA340, 0x00000E0 + +gUnk_085BA420:: @ 085BA420 + .incbin "baserom.gba", 0x5BA420, 0x00000E0 + +gUnk_085BA500:: @ 085BA500 + .incbin "baserom.gba", 0x5BA500, 0x00000E0 + +gUnk_085BA5E0:: @ 085BA5E0 + .incbin "baserom.gba", 0x5BA5E0, 0x00000E0 + +gUnk_085BA6C0:: @ 085BA6C0 + .incbin "baserom.gba", 0x5BA6C0, 0x00000E0 + +gUnk_085BA7A0:: @ 085BA7A0 + .incbin "baserom.gba", 0x5BA7A0, 0x00000E0 + +gUnk_085BA880:: @ 085BA880 + .incbin "baserom.gba", 0x5BA880, 0x00000E0 + +gUnk_085BA960:: @ 085BA960 + .incbin "baserom.gba", 0x5BA960, 0x00000E0 + +gUnk_085BAA40:: @ 085BAA40 + .incbin "baserom.gba", 0x5BAA40, 0x00000E0 + +gUnk_085BAB20:: @ 085BAB20 + .incbin "baserom.gba", 0x5BAB20, 0x00000E0 + +gUnk_085BAC00:: @ 085BAC00 + .incbin "baserom.gba", 0x5BAC00, 0x00000E0 + +gUnk_085BACE0:: @ 085BACE0 + .incbin "baserom.gba", 0x5BACE0, 0x00000E0 + +gUnk_085BADC0:: @ 085BADC0 + .incbin "baserom.gba", 0x5BADC0, 0x00000E0 + +gUnk_085BAEA0:: @ 085BAEA0 + .incbin "baserom.gba", 0x5BAEA0, 0x00000E0 + +gUnk_085BAF80:: @ 085BAF80 + .incbin "baserom.gba", 0x5BAF80, 0x00000E0 + +gUnk_085BB060:: @ 085BB060 + .incbin "baserom.gba", 0x5BB060, 0x00000E0 + +gUnk_085BB140:: @ 085BB140 + .incbin "baserom.gba", 0x5BB140, 0x00000E0 + +gUnk_085BB220:: @ 085BB220 + .incbin "baserom.gba", 0x5BB220, 0x00000E0 + +gUnk_085BB300:: @ 085BB300 + .incbin "baserom.gba", 0x5BB300, 0x00000E0 + +gUnk_085BB3E0:: @ 085BB3E0 + .incbin "baserom.gba", 0x5BB3E0, 0x00000E0 + +gUnk_085BB4C0:: @ 085BB4C0 + .incbin "baserom.gba", 0x5BB4C0, 0x00000E0 + +gUnk_085BB5A0:: @ 085BB5A0 + .incbin "baserom.gba", 0x5BB5A0, 0x00000E0 + +gUnk_085BB680:: @ 085BB680 + .incbin "baserom.gba", 0x5BB680, 0x00000E0 + +gUnk_085BB760:: @ 085BB760 + .incbin "baserom.gba", 0x5BB760, 0x00000E0 + +gUnk_085BB840:: @ 085BB840 + .incbin "baserom.gba", 0x5BB840, 0x00000E0 + +gUnk_085BB920:: @ 085BB920 + .incbin "baserom.gba", 0x5BB920, 0x00000E0 + +gUnk_085BBA00:: @ 085BBA00 + .incbin "baserom.gba", 0x5BBA00, 0x00000E0 + +gUnk_085BBAE0:: @ 085BBAE0 + .incbin "baserom.gba", 0x5BBAE0, 0x00000E0 + +gUnk_085BBBC0:: @ 085BBBC0 + .incbin "baserom.gba", 0x5BBBC0, 0x00000E0 + +gUnk_085BBCA0:: @ 085BBCA0 + .incbin "baserom.gba", 0x5BBCA0, 0x00000E0 + +gUnk_085BBD80:: @ 085BBD80 + .incbin "baserom.gba", 0x5BBD80, 0x00000E0 + +gUnk_085BBE60:: @ 085BBE60 + .incbin "baserom.gba", 0x5BBE60, 0x00000E0 + +gUnk_085BBF40:: @ 085BBF40 + .incbin "baserom.gba", 0x5BBF40, 0x00000E0 + +gUnk_085BC020:: @ 085BC020 + .incbin "baserom.gba", 0x5BC020, 0x00000E0 + +gUnk_085BC100:: @ 085BC100 + .incbin "baserom.gba", 0x5BC100, 0x00000E0 + +gUnk_085BC1E0:: @ 085BC1E0 + .incbin "baserom.gba", 0x5BC1E0, 0x00000E0 + +gUnk_085BC2C0:: @ 085BC2C0 + .incbin "baserom.gba", 0x5BC2C0, 0x00000E0 + +gUnk_085BC3A0:: @ 085BC3A0 + .incbin "baserom.gba", 0x5BC3A0, 0x00000E0 + +gUnk_085BC480:: @ 085BC480 + .incbin "baserom.gba", 0x5BC480, 0x00000E0 + +gUnk_085BC560:: @ 085BC560 + .incbin "baserom.gba", 0x5BC560, 0x00000E0 + +gUnk_085BC640:: @ 085BC640 + .incbin "baserom.gba", 0x5BC640, 0x00000E0 + +gUnk_085BC720:: @ 085BC720 + .incbin "baserom.gba", 0x5BC720, 0x00000E0 + +gUnk_085BC800:: @ 085BC800 + .incbin "baserom.gba", 0x5BC800, 0x00000E0 + +gUnk_085BC8E0:: @ 085BC8E0 + .incbin "baserom.gba", 0x5BC8E0, 0x00000E0 + +gUnk_085BC9C0:: @ 085BC9C0 + .incbin "baserom.gba", 0x5BC9C0, 0x00000E0 + +gUnk_085BCAA0:: @ 085BCAA0 + .incbin "baserom.gba", 0x5BCAA0, 0x00000E0 + +gUnk_085BCB80:: @ 085BCB80 + .incbin "baserom.gba", 0x5BCB80, 0x00000E0 + +gUnk_085BCC60:: @ 085BCC60 + .incbin "baserom.gba", 0x5BCC60, 0x00000E0 + +gUnk_085BCD40:: @ 085BCD40 + .incbin "baserom.gba", 0x5BCD40, 0x00000E0 + +gUnk_085BCE20:: @ 085BCE20 + .incbin "baserom.gba", 0x5BCE20, 0x00000E0 + +gUnk_085BCF00:: @ 085BCF00 + .incbin "baserom.gba", 0x5BCF00, 0x00000E0 + +gUnk_085BCFE0:: @ 085BCFE0 + .incbin "baserom.gba", 0x5BCFE0, 0x00000E0 + +gUnk_085BD0C0:: @ 085BD0C0 + .incbin "baserom.gba", 0x5BD0C0, 0x00000E0 + +gUnk_085BD1A0:: @ 085BD1A0 + .incbin "baserom.gba", 0x5BD1A0, 0x00000E0 + +gUnk_085BD280:: @ 085BD280 + .incbin "baserom.gba", 0x5BD280, 0x00000E0 + +gUnk_085BD360:: @ 085BD360 + .incbin "baserom.gba", 0x5BD360, 0x00000A4 + +gUnk_085BD404:: @ 085BD404 + .incbin "baserom.gba", 0x5BD404, 0x000003C + +gUnk_085BD440:: @ 085BD440 + .incbin "baserom.gba", 0x5BD440, 0x00000E0 + +gUnk_085BD520:: @ 085BD520 + .incbin "baserom.gba", 0x5BD520, 0x00029D8 + +gUnk_085BFEF8:: @ 085BFEF8 + .incbin "baserom.gba", 0x5BFEF8, 0x000002E + +gUnk_085BFF26:: @ 085BFF26 + .incbin "baserom.gba", 0x5BFF26, 0x00000AE + +gUnk_085BFFD4:: @ 085BFFD4 + .incbin "baserom.gba", 0x5BFFD4, 0x0000024 + +gUnk_085BFFF8:: @ 085BFFF8 + .incbin "baserom.gba", 0x5BFFF8, 0x0000007 + +gUnk_085BFFFF:: @ 085BFFFF + .incbin "baserom.gba", 0x5BFFFF, 0x000081D + +gUnk_085C081C:: @ 085C081C + .incbin "baserom.gba", 0x5C081C, 0x0001163 + +gUnk_085C197F:: @ 085C197F + .incbin "baserom.gba", 0x5C197F, 0x00003D1 + +gUnk_085C1D50:: @ 085C1D50 + .incbin "baserom.gba", 0x5C1D50, 0x0000A0C + +gUnk_085C275C:: @ 085C275C + .incbin "baserom.gba", 0x5C275C, 0x0000AD6 + +gUnk_085C3232:: @ 085C3232 + .incbin "baserom.gba", 0x5C3232, 0x00008CE + +gUnk_085C3B00:: @ 085C3B00 + .incbin "baserom.gba", 0x5C3B00, 0x0000438 + +gUnk_085C3F38:: @ 085C3F38 + .incbin "baserom.gba", 0x5C3F38, 0x00006E8 + +gUnk_085C4620:: @ 085C4620 + .incbin "baserom.gba", 0x5C4620, 0x0000500 + +gUnk_085C4B20:: @ 085C4B20 + .incbin "baserom.gba", 0x5C4B20, 0x0000280 + +gUnk_085C4DA0:: @ 085C4DA0 + .incbin "baserom.gba", 0x5C4DA0, 0x00000C0 + +gUnk_085C4E60:: @ 085C4E60 + .incbin "baserom.gba", 0x5C4E60, 0x00000C0 + +gUnk_085C4F20:: @ 085C4F20 + .incbin "baserom.gba", 0x5C4F20, 0x00000C0 + +gUnk_085C4FE0:: @ 085C4FE0 + .incbin "baserom.gba", 0x5C4FE0, 0x000B021 + +gUnk_085D0001:: @ 085D0001 + .incbin "baserom.gba", 0x5D0001, 0x0000106 + +gUnk_085D0107:: @ 085D0107 + .incbin "baserom.gba", 0x5D0107, 0x0000055 + +gUnk_085D015C:: @ 085D015C + .incbin "baserom.gba", 0x5D015C, 0x000045B + +gUnk_085D05B7:: @ 085D05B7 + .incbin "baserom.gba", 0x5D05B7, 0x00003A6 + +gUnk_085D095D:: @ 085D095D + .incbin "baserom.gba", 0x5D095D, 0x0001E00 + +gUnk_085D275D:: @ 085D275D + .incbin "baserom.gba", 0x5D275D, 0x00009A3 + +gUnk_085D3100:: @ 085D3100 + .incbin "baserom.gba", 0x5D3100, 0x000DC31 + +gUnk_085E0D31:: @ 085E0D31 + .incbin "baserom.gba", 0x5E0D31, 0x00045BC + +gUnk_085E52ED:: @ 085E52ED + .incbin "baserom.gba", 0x5E52ED, 0x0004D8F + +gUnk_085EA07C:: @ 085EA07C + .incbin "baserom.gba", 0x5EA07C, 0x0005F84 + +gUnk_085F0000:: @ 085F0000 + .incbin "baserom.gba", 0x5F0000, 0x0000006 + +gUnk_085F0006:: @ 085F0006 + .incbin "baserom.gba", 0x5F0006, 0x0000002 + +gUnk_085F0008:: @ 085F0008 + .incbin "baserom.gba", 0x5F0008, 0x0000002 + +gUnk_085F000A:: @ 085F000A + .incbin "baserom.gba", 0x5F000A, 0x0000011 + +gUnk_085F001B:: @ 085F001B + .incbin "baserom.gba", 0x5F001B, 0x0000003 + +gUnk_085F001E:: @ 085F001E + .incbin "baserom.gba", 0x5F001E, 0x000001E + +gUnk_085F003C:: @ 085F003C + .incbin "baserom.gba", 0x5F003C, 0x0000036 + +gUnk_085F0072:: @ 085F0072 + .incbin "baserom.gba", 0x5F0072, 0x0000006 + +gUnk_085F0078:: @ 085F0078 + .incbin "baserom.gba", 0x5F0078, 0x0000014 + +gUnk_085F008C:: @ 085F008C + .incbin "baserom.gba", 0x5F008C, 0x0000376 + +gUnk_085F0402:: @ 085F0402 + .incbin "baserom.gba", 0x5F0402, 0x0000032 + +gUnk_085F0434:: @ 085F0434 + .incbin "baserom.gba", 0x5F0434, 0x000000F + +gUnk_085F0443:: @ 085F0443 + .incbin "baserom.gba", 0x5F0443, 0x0000008 + +gUnk_085F044B:: @ 085F044B + .incbin "baserom.gba", 0x5F044B, 0x000000E + +gUnk_085F0459:: @ 085F0459 + .incbin "baserom.gba", 0x5F0459, 0x0000005 + +gUnk_085F045E:: @ 085F045E + .incbin "baserom.gba", 0x5F045E, 0x00003A9 + +gUnk_085F0807:: @ 085F0807 + .incbin "baserom.gba", 0x5F0807, 0x0000057 + +gUnk_085F085E:: @ 085F085E + .incbin "baserom.gba", 0x5F085E, 0x000F259 + +gUnk_085FFAB7:: @ 085FFAB7 + .incbin "baserom.gba", 0x5FFAB7, 0x0000050 + +gUnk_085FFB07:: @ 085FFB07 + .incbin "baserom.gba", 0x5FFB07, 0x00004F8 + +gUnk_085FFFFF:: @ 085FFFFF + .incbin "baserom.gba", 0x5FFFFF, 0x0000001 + +gUnk_08600000:: @ 08600000 + .incbin "baserom.gba", 0x600000, 0x0000001 + +gUnk_08600001:: @ 08600001 + .incbin "baserom.gba", 0x600001, 0x0000005 + +gUnk_08600006:: @ 08600006 + .incbin "baserom.gba", 0x600006, 0x00000E3 + +gUnk_086000E9:: @ 086000E9 + .incbin "baserom.gba", 0x6000E9, 0x0000237 + +gUnk_08600320:: @ 08600320 + .incbin "baserom.gba", 0x600320, 0x0000314 + +gUnk_08600634:: @ 08600634 + .incbin "baserom.gba", 0x600634, 0x00000FC + +gUnk_08600730:: @ 08600730 + .incbin "baserom.gba", 0x600730, 0x00000D8 + +gUnk_08600808:: @ 08600808 + .incbin "baserom.gba", 0x600808, 0x0003458 + +gUnk_08603C60:: @ 08603C60 + .incbin "baserom.gba", 0x603C60, 0x000177E + +gUnk_086053DE:: @ 086053DE + .incbin "baserom.gba", 0x6053DE, 0x0000421 + +gUnk_086057FF:: @ 086057FF + .incbin "baserom.gba", 0x6057FF, 0x0000F04 + +gUnk_08606703:: @ 08606703 + .incbin "baserom.gba", 0x606703, 0x0000750 + +gUnk_08606E53:: @ 08606E53 + .incbin "baserom.gba", 0x606E53, 0x00010AD + +gUnk_08607F00:: @ 08607F00 + .incbin "baserom.gba", 0x607F00, 0x0000052 + +gUnk_08607F52:: @ 08607F52 + .incbin "baserom.gba", 0x607F52, 0x00009AE + +gUnk_08608900:: @ 08608900 + .incbin "baserom.gba", 0x608900, 0x0005BEA + +gUnk_0860E4EA:: @ 0860E4EA + .incbin "baserom.gba", 0x60E4EA, 0x0000D01 + +gUnk_0860F1EB:: @ 0860F1EB + .incbin "baserom.gba", 0x60F1EB, 0x0000405 + +gUnk_0860F5F0:: @ 0860F5F0 + .incbin "baserom.gba", 0x60F5F0, 0x0000300 + +gUnk_0860F8F0:: @ 0860F8F0 + .incbin "baserom.gba", 0x60F8F0, 0x000006B + +gUnk_0860F95B:: @ 0860F95B + .incbin "baserom.gba", 0x60F95B, 0x00003A8 + +gUnk_0860FD03:: @ 0860FD03 + .incbin "baserom.gba", 0x60FD03, 0x00002FD + +gUnk_08610000:: @ 08610000 + .incbin "baserom.gba", 0x610000, 0x0000002 + +gUnk_08610002:: @ 08610002 + .incbin "baserom.gba", 0x610002, 0x0000002 + +gUnk_08610004:: @ 08610004 + .incbin "baserom.gba", 0x610004, 0x0000001 + +gUnk_08610005:: @ 08610005 + .incbin "baserom.gba", 0x610005, 0x0000001 + +gUnk_08610006:: @ 08610006 + .incbin "baserom.gba", 0x610006, 0x0000001 + +gUnk_08610007:: @ 08610007 + .incbin "baserom.gba", 0x610007, 0x0000001 + +gUnk_08610008:: @ 08610008 + .incbin "baserom.gba", 0x610008, 0x0000002 + +gUnk_0861000A:: @ 0861000A + .incbin "baserom.gba", 0x61000A, 0x0000001 + +gUnk_0861000B:: @ 0861000B + .incbin "baserom.gba", 0x61000B, 0x0000004 + +gUnk_0861000F:: @ 0861000F + .incbin "baserom.gba", 0x61000F, 0x0000004 + +gUnk_08610013:: @ 08610013 + .incbin "baserom.gba", 0x610013, 0x0000001 + +gUnk_08610014:: @ 08610014 + .incbin "baserom.gba", 0x610014, 0x000000A + +gUnk_0861001E:: @ 0861001E + .incbin "baserom.gba", 0x61001E, 0x0000002 + +gUnk_08610020:: @ 08610020 + .incbin "baserom.gba", 0x610020, 0x0000006 + +gUnk_08610026:: @ 08610026 + .incbin "baserom.gba", 0x610026, 0x000000A + +gUnk_08610030:: @ 08610030 + .incbin "baserom.gba", 0x610030, 0x000000C + +gUnk_0861003C:: @ 0861003C + .incbin "baserom.gba", 0x61003C, 0x0000004 + +gUnk_08610040:: @ 08610040 + .incbin "baserom.gba", 0x610040, 0x000000A + +gUnk_0861004A:: @ 0861004A + .incbin "baserom.gba", 0x61004A, 0x0000006 + +gUnk_08610050:: @ 08610050 + .incbin "baserom.gba", 0x610050, 0x0000008 + +gUnk_08610058:: @ 08610058 + .incbin "baserom.gba", 0x610058, 0x0000002 + +gUnk_0861005A:: @ 0861005A + .incbin "baserom.gba", 0x61005A, 0x0000002 + +gUnk_0861005C:: @ 0861005C + .incbin "baserom.gba", 0x61005C, 0x0000004 + +gUnk_08610060:: @ 08610060 + .incbin "baserom.gba", 0x610060, 0x0000008 + +gUnk_08610068:: @ 08610068 + .incbin "baserom.gba", 0x610068, 0x000000E + +gUnk_08610076:: @ 08610076 + .incbin "baserom.gba", 0x610076, 0x0000002 + +gUnk_08610078:: @ 08610078 + .incbin "baserom.gba", 0x610078, 0x0000008 + +gUnk_08610080:: @ 08610080 + .incbin "baserom.gba", 0x610080, 0x0000010 + +gUnk_08610090:: @ 08610090 + .incbin "baserom.gba", 0x610090, 0x0000008 + +gUnk_08610098:: @ 08610098 + .incbin "baserom.gba", 0x610098, 0x0000010 + +gUnk_086100A8:: @ 086100A8 + .incbin "baserom.gba", 0x6100A8, 0x0000010 + +gUnk_086100B8:: @ 086100B8 + .incbin "baserom.gba", 0x6100B8, 0x0000048 + +gUnk_08610100:: @ 08610100 + .incbin "baserom.gba", 0x610100, 0x0000008 + +gUnk_08610108:: @ 08610108 + .incbin "baserom.gba", 0x610108, 0x0000014 + +gUnk_0861011C:: @ 0861011C + .incbin "baserom.gba", 0x61011C, 0x0000008 + +gUnk_08610124:: @ 08610124 + .incbin "baserom.gba", 0x610124, 0x000001C + +gUnk_08610140:: @ 08610140 + .incbin "baserom.gba", 0x610140, 0x0000008 + +gUnk_08610148:: @ 08610148 + .incbin "baserom.gba", 0x610148, 0x0000020 + +gUnk_08610168:: @ 08610168 + .incbin "baserom.gba", 0x610168, 0x0000018 + +gUnk_08610180:: @ 08610180 + .incbin "baserom.gba", 0x610180, 0x0000030 + +gUnk_086101B0:: @ 086101B0 + .incbin "baserom.gba", 0x6101B0, 0x0000010 + +gUnk_086101C0:: @ 086101C0 + .incbin "baserom.gba", 0x6101C0, 0x0000008 + +gUnk_086101C8:: @ 086101C8 + .incbin "baserom.gba", 0x6101C8, 0x0000040 + +gUnk_08610208:: @ 08610208 + .incbin "baserom.gba", 0x610208, 0x0000020 + +gUnk_08610228:: @ 08610228 + .incbin "baserom.gba", 0x610228, 0x0000010 + +gUnk_08610238:: @ 08610238 + .incbin "baserom.gba", 0x610238, 0x0000028 + +gUnk_08610260:: @ 08610260 + .incbin "baserom.gba", 0x610260, 0x0000010 + +gUnk_08610270:: @ 08610270 + .incbin "baserom.gba", 0x610270, 0x0000008 + +gUnk_08610278:: @ 08610278 + .incbin "baserom.gba", 0x610278, 0x0000010 + +gUnk_08610288:: @ 08610288 + .incbin "baserom.gba", 0x610288, 0x0000080 + +gUnk_08610308:: @ 08610308 + .incbin "baserom.gba", 0x610308, 0x0000018 + +gUnk_08610320:: @ 08610320 + .incbin "baserom.gba", 0x610320, 0x0000008 + +gUnk_08610328:: @ 08610328 + .incbin "baserom.gba", 0x610328, 0x0000008 + +gUnk_08610330:: @ 08610330 + .incbin "baserom.gba", 0x610330, 0x0000008 + +gUnk_08610338:: @ 08610338 + .incbin "baserom.gba", 0x610338, 0x0000010 + +gUnk_08610348:: @ 08610348 + .incbin "baserom.gba", 0x610348, 0x0000018 + +gUnk_08610360:: @ 08610360 + .incbin "baserom.gba", 0x610360, 0x0000038 + +gUnk_08610398:: @ 08610398 + .incbin "baserom.gba", 0x610398, 0x0000069 + +gUnk_08610401:: @ 08610401 + .incbin "baserom.gba", 0x610401, 0x0000001 + +gUnk_08610402:: @ 08610402 + .incbin "baserom.gba", 0x610402, 0x0000041 + +gUnk_08610443:: @ 08610443 + .incbin "baserom.gba", 0x610443, 0x0000001 + +gUnk_08610444:: @ 08610444 + .incbin "baserom.gba", 0x610444, 0x0000015 + +gUnk_08610459:: @ 08610459 + .incbin "baserom.gba", 0x610459, 0x0000057 + +gUnk_086104B0:: @ 086104B0 + .incbin "baserom.gba", 0x6104B0, 0x0000300 + +gUnk_086107B0:: @ 086107B0 + .incbin "baserom.gba", 0x6107B0, 0x0000055 + +gUnk_08610805:: @ 08610805 + .incbin "baserom.gba", 0x610805, 0x0000001 + +gUnk_08610806:: @ 08610806 + .incbin "baserom.gba", 0x610806, 0x0000001 + +gUnk_08610807:: @ 08610807 + .incbin "baserom.gba", 0x610807, 0x0000059 + +gUnk_08610860:: @ 08610860 + .incbin "baserom.gba", 0x610860, 0x000059E + +gUnk_08610DFE:: @ 08610DFE + .incbin "baserom.gba", 0x610DFE, 0x0002212 + +gUnk_08613010:: @ 08613010 + .incbin "baserom.gba", 0x613010, 0x0000334 + +gUnk_08613344:: @ 08613344 + .incbin "baserom.gba", 0x613344, 0x00065DE + +gUnk_08619922:: @ 08619922 + .incbin "baserom.gba", 0x619922, 0x00006DE + +gUnk_0861A000:: @ 0861A000 + .incbin "baserom.gba", 0x61A000, 0x0000BCC + +gUnk_0861ABCC:: @ 0861ABCC + .incbin "baserom.gba", 0x61ABCC, 0x0001181 + +gUnk_0861BD4D:: @ 0861BD4D + .incbin "baserom.gba", 0x61BD4D, 0x0005403 + +gUnk_08621150:: @ 08621150 + .incbin "baserom.gba", 0x621150, 0x00010D5 + +gUnk_08622225:: @ 08622225 + .incbin "baserom.gba", 0x622225, 0x0000020 + +gUnk_08622245:: @ 08622245 + .incbin "baserom.gba", 0x622245, 0x00001C2 + +gUnk_08622407:: @ 08622407 + .incbin "baserom.gba", 0x622407, 0x000203A + +gUnk_08624441:: @ 08624441 + .incbin "baserom.gba", 0x624441, 0x000A521 + +gUnk_0862E962:: @ 0862E962 + .incbin "baserom.gba", 0x62E962, 0x00016E1 + +gUnk_08630043:: @ 08630043 + .incbin "baserom.gba", 0x630043, 0x00000ED + +gUnk_08630130:: @ 08630130 + .incbin "baserom.gba", 0x630130, 0x0000312 + +gUnk_08630442:: @ 08630442 + .incbin "baserom.gba", 0x630442, 0x0000120 + +gUnk_08630562:: @ 08630562 + .incbin "baserom.gba", 0x630562, 0x00001B0 + +gUnk_08630712:: @ 08630712 + .incbin "baserom.gba", 0x630712, 0x0000150 + +gUnk_08630862:: @ 08630862 + .incbin "baserom.gba", 0x630862, 0x0005CC3 + +gUnk_08636525:: @ 08636525 + .incbin "baserom.gba", 0x636525, 0x0002D5C + +gUnk_08639281:: @ 08639281 + .incbin "baserom.gba", 0x639281, 0x0006E86 + +gUnk_08640107:: @ 08640107 + .incbin "baserom.gba", 0x640107, 0x0000219 + +gUnk_08640320:: @ 08640320 + .incbin "baserom.gba", 0x640320, 0x0000123 + +gUnk_08640443:: @ 08640443 + .incbin "baserom.gba", 0x640443, 0x0000B9E + +gUnk_08640FE1:: @ 08640FE1 + .incbin "baserom.gba", 0x640FE1, 0x0001296 + +gUnk_08642277:: @ 08642277 + .incbin "baserom.gba", 0x642277, 0x000218C + +gUnk_08644403:: @ 08644403 + .incbin "baserom.gba", 0x644403, 0x000081C + +gUnk_08644C1F:: @ 08644C1F + .incbin "baserom.gba", 0x644C1F, 0x0000914 + +gUnk_08645533:: @ 08645533 + .incbin "baserom.gba", 0x645533, 0x0000003 + +gUnk_08645536:: @ 08645536 + .incbin "baserom.gba", 0x645536, 0x00001EF + +gUnk_08645725:: @ 08645725 + .incbin "baserom.gba", 0x645725, 0x0005330 + +gUnk_0864AA55:: @ 0864AA55 + .incbin "baserom.gba", 0x64AA55, 0x00041B3 + +gUnk_0864EC08:: @ 0864EC08 + .incbin "baserom.gba", 0x64EC08, 0x00013F9 + +gUnk_08650001:: @ 08650001 + .incbin "baserom.gba", 0x650001, 0x000000F + +gUnk_08650010:: @ 08650010 + .incbin "baserom.gba", 0x650010, 0x0000030 + +gUnk_08650040:: @ 08650040 + .incbin "baserom.gba", 0x650040, 0x0000100 + +gUnk_08650140:: @ 08650140 + .incbin "baserom.gba", 0x650140, 0x00002C0 + +gUnk_08650400:: @ 08650400 + .incbin "baserom.gba", 0x650400, 0x0000064 + +gUnk_08650464:: @ 08650464 + .incbin "baserom.gba", 0x650464, 0x000069C + +gUnk_08650B00:: @ 08650B00 + .incbin "baserom.gba", 0x650B00, 0x0000400 + +gUnk_08650F00:: @ 08650F00 + .incbin "baserom.gba", 0x650F00, 0x0000003 + +gUnk_08650F03:: @ 08650F03 + .incbin "baserom.gba", 0x650F03, 0x000131F + +gUnk_08652222:: @ 08652222 + .incbin "baserom.gba", 0x652222, 0x00009F6 + +gUnk_08652C18:: @ 08652C18 + .incbin "baserom.gba", 0x652C18, 0x00006FC + +gUnk_08653314:: @ 08653314 + .incbin "baserom.gba", 0x653314, 0x00004EC + +gUnk_08653800:: @ 08653800 + .incbin "baserom.gba", 0x653800, 0x0001E43 + +gUnk_08655643:: @ 08655643 + .incbin "baserom.gba", 0x655643, 0x0002017 + +gUnk_0865765A:: @ 0865765A + .incbin "baserom.gba", 0x65765A, 0x00017AA + +gUnk_08658E04:: @ 08658E04 + .incbin "baserom.gba", 0x658E04, 0x000581F + +gUnk_0865E623:: @ 0865E623 + .incbin "baserom.gba", 0x65E623, 0x00019DD + +gUnk_08660000:: @ 08660000 + .incbin "baserom.gba", 0x660000, 0x0000006 + +gUnk_08660006:: @ 08660006 + .incbin "baserom.gba", 0x660006, 0x00002FA + +gUnk_08660300:: @ 08660300 + .incbin "baserom.gba", 0x660300, 0x00002B7 + +gUnk_086605B7:: @ 086605B7 + .incbin "baserom.gba", 0x6605B7, 0x00002AF + +gUnk_08660866:: @ 08660866 + .incbin "baserom.gba", 0x660866, 0x00012AA + +gUnk_08661B10:: @ 08661B10 + .incbin "baserom.gba", 0x661B10, 0x0000400 + +gUnk_08661F10:: @ 08661F10 + .incbin "baserom.gba", 0x661F10, 0x0000972 + +gUnk_08662882:: @ 08662882 + .incbin "baserom.gba", 0x662882, 0x0000BC1 + +gUnk_08663443:: @ 08663443 + .incbin "baserom.gba", 0x663443, 0x0000F4D + +gUnk_08664390:: @ 08664390 + .incbin "baserom.gba", 0x664390, 0x000003C + +gUnk_086643CC:: @ 086643CC + .incbin "baserom.gba", 0x6643CC, 0x0000067 + +gUnk_08664433:: @ 08664433 + .incbin "baserom.gba", 0x664433, 0x0000F11 + +gUnk_08665344:: @ 08665344 + .incbin "baserom.gba", 0x665344, 0x0000223 + +gUnk_08665567:: @ 08665567 + .incbin "baserom.gba", 0x665567, 0x0000DCD + +gUnk_08666334:: @ 08666334 + .incbin "baserom.gba", 0x666334, 0x000021F + +gUnk_08666553:: @ 08666553 + .incbin "baserom.gba", 0x666553, 0x00000AE + +gUnk_08666601:: @ 08666601 + .incbin "baserom.gba", 0x666601, 0x0000021 + +gUnk_08666622:: @ 08666622 + .incbin "baserom.gba", 0x666622, 0x0000044 + +gUnk_08666666:: @ 08666666 + .incbin "baserom.gba", 0x666666, 0x0000117 + +gUnk_0866677D:: @ 0866677D + .incbin "baserom.gba", 0x66677D, 0x00000A6 + +gUnk_08666823:: @ 08666823 + .incbin "baserom.gba", 0x666823, 0x0000DF3 + +gUnk_08667616:: @ 08667616 + .incbin "baserom.gba", 0x667616, 0x0000151 + +gUnk_08667767:: @ 08667767 + .incbin "baserom.gba", 0x667767, 0x0000748 + +gUnk_08667EAF:: @ 08667EAF + .incbin "baserom.gba", 0x667EAF, 0x0000151 + +gUnk_08668000:: @ 08668000 + .incbin "baserom.gba", 0x668000, 0x0001999 + +gUnk_08669999:: @ 08669999 + .incbin "baserom.gba", 0x669999, 0x000056F + +gUnk_08669F08:: @ 08669F08 + .incbin "baserom.gba", 0x669F08, 0x0000541 + +gUnk_0866A449:: @ 0866A449 + .incbin "baserom.gba", 0x66A449, 0x000185C + +gUnk_0866BCA5:: @ 0866BCA5 + .incbin "baserom.gba", 0x66BCA5, 0x0000292 + +gUnk_0866BF37:: @ 0866BF37 + .incbin "baserom.gba", 0x66BF37, 0x00023CC + +gUnk_0866E303:: @ 0866E303 + .incbin "baserom.gba", 0x66E303, 0x0000F20 + +gUnk_0866F223:: @ 0866F223 + .incbin "baserom.gba", 0x66F223, 0x0000DDD + +gUnk_08670000:: @ 08670000 + .incbin "baserom.gba", 0x670000, 0x0000001 + +gUnk_08670001:: @ 08670001 + .incbin "baserom.gba", 0x670001, 0x0000001 + +gUnk_08670002:: @ 08670002 + .incbin "baserom.gba", 0x670002, 0x0000002 + +gUnk_08670004:: @ 08670004 + .incbin "baserom.gba", 0x670004, 0x0000002 + +gUnk_08670006:: @ 08670006 + .incbin "baserom.gba", 0x670006, 0x0000001 + +gUnk_08670007:: @ 08670007 + .incbin "baserom.gba", 0x670007, 0x0000001 + +gUnk_08670008:: @ 08670008 + .incbin "baserom.gba", 0x670008, 0x0000002 + +gUnk_0867000A:: @ 0867000A + .incbin "baserom.gba", 0x67000A, 0x0000001 + +gUnk_0867000B:: @ 0867000B + .incbin "baserom.gba", 0x67000B, 0x0000004 + +gUnk_0867000F:: @ 0867000F + .incbin "baserom.gba", 0x67000F, 0x0000001 + +gUnk_08670010:: @ 08670010 + .incbin "baserom.gba", 0x670010, 0x0000001 + +gUnk_08670011:: @ 08670011 + .incbin "baserom.gba", 0x670011, 0x0000003 + +gUnk_08670014:: @ 08670014 + .incbin "baserom.gba", 0x670014, 0x0000004 + +gUnk_08670018:: @ 08670018 + .incbin "baserom.gba", 0x670018, 0x0000024 + +gUnk_0867003C:: @ 0867003C + .incbin "baserom.gba", 0x67003C, 0x000005A + +gUnk_08670096:: @ 08670096 + .incbin "baserom.gba", 0x670096, 0x0000002 + +gUnk_08670098:: @ 08670098 + .incbin "baserom.gba", 0x670098, 0x0000128 + +gUnk_086701C0:: @ 086701C0 + .incbin "baserom.gba", 0x6701C0, 0x0000018 + +gUnk_086701D8:: @ 086701D8 + .incbin "baserom.gba", 0x6701D8, 0x0000020 + +gUnk_086701F8:: @ 086701F8 + .incbin "baserom.gba", 0x6701F8, 0x0000028 + +gUnk_08670220:: @ 08670220 + .incbin "baserom.gba", 0x670220, 0x0000138 + +gUnk_08670358:: @ 08670358 + .incbin "baserom.gba", 0x670358, 0x00000A9 + +gUnk_08670401:: @ 08670401 + .incbin "baserom.gba", 0x670401, 0x0000043 + +gUnk_08670444:: @ 08670444 + .incbin "baserom.gba", 0x670444, 0x0000015 + +gUnk_08670459:: @ 08670459 + .incbin "baserom.gba", 0x670459, 0x00003AE + +gUnk_08670807:: @ 08670807 + .incbin "baserom.gba", 0x670807, 0x0000B4F + +gUnk_08671356:: @ 08671356 + .incbin "baserom.gba", 0x671356, 0x0002875 + +gUnk_08673BCB:: @ 08673BCB + .incbin "baserom.gba", 0x673BCB, 0x0000036 + +gUnk_08673C01:: @ 08673C01 + .incbin "baserom.gba", 0x673C01, 0x0001495 + +gUnk_08675096:: @ 08675096 + .incbin "baserom.gba", 0x675096, 0x000016A + +gUnk_08675200:: @ 08675200 + .incbin "baserom.gba", 0x675200, 0x0003688 + +gUnk_08678888:: @ 08678888 + .incbin "baserom.gba", 0x678888, 0x000010F + +gUnk_08678997:: @ 08678997 + .incbin "baserom.gba", 0x678997, 0x0001960 + +gUnk_0867A2F7:: @ 0867A2F7 + .incbin "baserom.gba", 0x67A2F7, 0x0002C5C + +gUnk_0867CF53:: @ 0867CF53 + .incbin "baserom.gba", 0x67CF53, 0x00030AD + +gUnk_08680000:: @ 08680000 + .incbin "baserom.gba", 0x680000, 0x00000FF + +gUnk_086800FF:: @ 086800FF + .incbin "baserom.gba", 0x6800FF, 0x0000768 + +gUnk_08680867:: @ 08680867 + .incbin "baserom.gba", 0x680867, 0x0000001 + +gUnk_08680868:: @ 08680868 + .incbin "baserom.gba", 0x680868, 0x0004CEE + +gUnk_08685556:: @ 08685556 + .incbin "baserom.gba", 0x685556, 0x00032C9 + +gUnk_0868881F:: @ 0868881F + .incbin "baserom.gba", 0x68881F, 0x000004B + +gUnk_0868886A:: @ 0868886A + .incbin "baserom.gba", 0x68886A, 0x0007796 + +gUnk_08690000:: @ 08690000 + .incbin "baserom.gba", 0x690000, 0x0000868 + +gUnk_08690868:: @ 08690868 + .incbin "baserom.gba", 0x690868, 0x0000FDA + +gUnk_08691842:: @ 08691842 + .incbin "baserom.gba", 0x691842, 0x0000CF8 + +gUnk_0869253A:: @ 0869253A + .incbin "baserom.gba", 0x69253A, 0x0000040 + +gUnk_0869257A:: @ 0869257A + .incbin "baserom.gba", 0x69257A, 0x0000060 + +gUnk_086925DA:: @ 086925DA + .incbin "baserom.gba", 0x6925DA, 0x0000040 + +gUnk_0869261A:: @ 0869261A + .incbin "baserom.gba", 0x69261A, 0x0000086 + +gUnk_086926A0:: @ 086926A0 + .incbin "baserom.gba", 0x6926A0, 0x000001A + +gUnk_086926BA:: @ 086926BA + .incbin "baserom.gba", 0x6926BA, 0x0000090 + +gUnk_0869274A:: @ 0869274A + .incbin "baserom.gba", 0x69274A, 0x0000009 + +gUnk_08692753:: @ 08692753 + .incbin "baserom.gba", 0x692753, 0x0000006 + +gUnk_08692759:: @ 08692759 + .incbin "baserom.gba", 0x692759, 0x0000027 + +gUnk_08692780:: @ 08692780 + .incbin "baserom.gba", 0x692780, 0x00000E0 + +gUnk_08692860:: @ 08692860 + .incbin "baserom.gba", 0x692860, 0x00000E0 + +gUnk_08692940:: @ 08692940 + .incbin "baserom.gba", 0x692940, 0x00000E0 + +gUnk_08692A20:: @ 08692A20 + .incbin "baserom.gba", 0x692A20, 0x00000E0 + +gUnk_08692B00:: @ 08692B00 + .incbin "baserom.gba", 0x692B00, 0x00000E0 + +gUnk_08692BE0:: @ 08692BE0 + .incbin "baserom.gba", 0x692BE0, 0x00000E0 + +gUnk_08692CC0:: @ 08692CC0 + .incbin "baserom.gba", 0x692CC0, 0x00000E0 + +gUnk_08692DA0:: @ 08692DA0 + .incbin "baserom.gba", 0x692DA0, 0x0000062 + +gUnk_08692E02:: @ 08692E02 + .incbin "baserom.gba", 0x692E02, 0x000007E + +gUnk_08692E80:: @ 08692E80 + .incbin "baserom.gba", 0x692E80, 0x00000E0 + +gUnk_08692F60:: @ 08692F60 + .incbin "baserom.gba", 0x692F60, 0x0000BE9 + +gUnk_08693B49:: @ 08693B49 + .incbin "baserom.gba", 0x693B49, 0x00001F1 + +gUnk_08693D3A:: @ 08693D3A + .incbin "baserom.gba", 0x693D3A, 0x000014C + +gUnk_08693E86:: @ 08693E86 + .incbin "baserom.gba", 0x693E86, 0x00000C3 + +gUnk_08693F49:: @ 08693F49 + .incbin "baserom.gba", 0x693F49, 0x0001800 + +gUnk_08695749:: @ 08695749 + .incbin "baserom.gba", 0x695749, 0x0000347 + +gUnk_08695A90:: @ 08695A90 + .incbin "baserom.gba", 0x695A90, 0x0000383 + +gUnk_08695E13:: @ 08695E13 + .incbin "baserom.gba", 0x695E13, 0x0000327 + +gUnk_0869613A:: @ 0869613A + .incbin "baserom.gba", 0x69613A, 0x000007C + +gUnk_086961B6:: @ 086961B6 + .incbin "baserom.gba", 0x6961B6, 0x0000DAA + +gUnk_08696F60:: @ 08696F60 + .incbin "baserom.gba", 0x696F60, 0x0000980 + +gUnk_086978E0:: @ 086978E0 + .incbin "baserom.gba", 0x6978E0, 0x0000668 + +gUnk_08697F48:: @ 08697F48 + .incbin "baserom.gba", 0x697F48, 0x0001998 + +gUnk_086998E0:: @ 086998E0 + .incbin "baserom.gba", 0x6998E0, 0x0006720 + +gUnk_086A0000:: @ 086A0000 + .incbin "baserom.gba", 0x6A0000, 0x000141A + +gUnk_086A141A:: @ 086A141A + .incbin "baserom.gba", 0x6A141A, 0x00004C6 + +gUnk_086A18E0:: @ 086A18E0 + .incbin "baserom.gba", 0x6A18E0, 0x0001180 + +gUnk_086A2A60:: @ 086A2A60 + .incbin "baserom.gba", 0x6A2A60, 0x0000480 + +gUnk_086A2EE0:: @ 086A2EE0 + .incbin "baserom.gba", 0x6A2EE0, 0x0001423 + +gUnk_086A4303:: @ 086A4303 + .incbin "baserom.gba", 0x6A4303, 0x0000C03 + +gUnk_086A4F06:: @ 086A4F06 + .incbin "baserom.gba", 0x6A4F06, 0x000281C + +gUnk_086A7722:: @ 086A7722 + .incbin "baserom.gba", 0x6A7722, 0x0000268 + +gUnk_086A798A:: @ 086A798A + .incbin "baserom.gba", 0x6A798A, 0x0002DEE + +gUnk_086AA778:: @ 086AA778 + .incbin "baserom.gba", 0x6AA778, 0x00002F0 + +gUnk_086AAA68:: @ 086AAA68 + .incbin "baserom.gba", 0x6AAA68, 0x0000478 + +gUnk_086AAEE0:: @ 086AAEE0 + .incbin "baserom.gba", 0x6AAEE0, 0x0004EC7 + +gUnk_086AFDA7:: @ 086AFDA7 + .incbin "baserom.gba", 0x6AFDA7, 0x0000272 + +gUnk_086B0019:: @ 086B0019 + .incbin "baserom.gba", 0x6B0019, 0x000002C + +gUnk_086B0045:: @ 086B0045 + .incbin "baserom.gba", 0x6B0045, 0x00000C2 + +gUnk_086B0107:: @ 086B0107 + .incbin "baserom.gba", 0x6B0107, 0x0000763 + +gUnk_086B086A:: @ 086B086A + .incbin "baserom.gba", 0x6B086A, 0x0001070 + +gUnk_086B18DA:: @ 086B18DA + .incbin "baserom.gba", 0x6B18DA, 0x000028A + +gUnk_086B1B64:: @ 086B1B64 + .incbin "baserom.gba", 0x6B1B64, 0x00003AC + +gUnk_086B1F10:: @ 086B1F10 + .incbin "baserom.gba", 0x6B1F10, 0x0000F0D + +gUnk_086B2E1D:: @ 086B2E1D + .incbin "baserom.gba", 0x6B2E1D, 0x00073E9 + +gUnk_086BA206:: @ 086BA206 + .incbin "baserom.gba", 0x6BA206, 0x0005E00 + +gUnk_086C0006:: @ 086C0006 + .incbin "baserom.gba", 0x6C0006, 0x00046C2 + +gUnk_086C46C8:: @ 086C46C8 + .incbin "baserom.gba", 0x6C46C8, 0x00025A5 + +gUnk_086C6C6D:: @ 086C6C6D + .incbin "baserom.gba", 0x6C6C6D, 0x000605F + +gUnk_086CCCCC:: @ 086CCCCC + .incbin "baserom.gba", 0x6CCCCC, 0x0003336 + +gUnk_086D0002:: @ 086D0002 + .incbin "baserom.gba", 0x6D0002, 0x000001C + +gUnk_086D001E:: @ 086D001E + .incbin "baserom.gba", 0x6D001E, 0x000013B + +gUnk_086D0159:: @ 086D0159 + .incbin "baserom.gba", 0x6D0159, 0x0000013 + +gUnk_086D016C:: @ 086D016C + .incbin "baserom.gba", 0x6D016C, 0x0000300 + +gUnk_086D046C:: @ 086D046C + .incbin "baserom.gba", 0x6D046C, 0x000039A + +gUnk_086D0806:: @ 086D0806 + .incbin "baserom.gba", 0x6D0806, 0x000001D + +gUnk_086D0823:: @ 086D0823 + .incbin "baserom.gba", 0x6D0823, 0x0001CE5 + +gUnk_086D2508:: @ 086D2508 + .incbin "baserom.gba", 0x6D2508, 0x0001C1D + +gUnk_086D4125:: @ 086D4125 + .incbin "baserom.gba", 0x6D4125, 0x00002E2 + +gUnk_086D4407:: @ 086D4407 + .incbin "baserom.gba", 0x6D4407, 0x0000059 + +gUnk_086D4460:: @ 086D4460 + .incbin "baserom.gba", 0x6D4460, 0x0000BA4 + +gUnk_086D5004:: @ 086D5004 + .incbin "baserom.gba", 0x6D5004, 0x0008965 + +gUnk_086DD969:: @ 086DD969 + .incbin "baserom.gba", 0x6DD969, 0x0000456 + +gUnk_086DDDBF:: @ 086DDDBF + .incbin "baserom.gba", 0x6DDDBF, 0x0000007 + +gUnk_086DDDC6:: @ 086DDDC6 + .incbin "baserom.gba", 0x6DDDC6, 0x000223E + +gUnk_086E0004:: @ 086E0004 + .incbin "baserom.gba", 0x6E0004, 0x000000C + +gUnk_086E0010:: @ 086E0010 + .incbin "baserom.gba", 0x6E0010, 0x000005D + +gUnk_086E006D:: @ 086E006D + .incbin "baserom.gba", 0x6E006D, 0x0000013 + +gUnk_086E0080:: @ 086E0080 + .incbin "baserom.gba", 0x6E0080, 0x0000080 + +gUnk_086E0100:: @ 086E0100 + .incbin "baserom.gba", 0x6E0100, 0x0000359 + +gUnk_086E0459:: @ 086E0459 + .incbin "baserom.gba", 0x6E0459, 0x0000414 + +gUnk_086E086D:: @ 086E086D + .incbin "baserom.gba", 0x6E086D, 0x000001D + +gUnk_086E088A:: @ 086E088A + .incbin "baserom.gba", 0x6E088A, 0x0001755 + +gUnk_086E1FDF:: @ 086E1FDF + .incbin "baserom.gba", 0x6E1FDF, 0x0000E23 + +gUnk_086E2E02:: @ 086E2E02 + .incbin "baserom.gba", 0x6E2E02, 0x000166D + +gUnk_086E446F:: @ 086E446F + .incbin "baserom.gba", 0x6E446F, 0x0000259 + +gUnk_086E46C8:: @ 086E46C8 + .incbin "baserom.gba", 0x6E46C8, 0x0003D98 + +gUnk_086E8460:: @ 086E8460 + .incbin "baserom.gba", 0x6E8460, 0x0007BA1 + +gUnk_086F0001:: @ 086F0001 + .incbin "baserom.gba", 0x6F0001, 0x0000001 + +gUnk_086F0002:: @ 086F0002 + .incbin "baserom.gba", 0x6F0002, 0x000001E + +gUnk_086F0020:: @ 086F0020 + .incbin "baserom.gba", 0x6F0020, 0x00000F0 + +gUnk_086F0110:: @ 086F0110 + .incbin "baserom.gba", 0x6F0110, 0x000000C + +gUnk_086F011C:: @ 086F011C + .incbin "baserom.gba", 0x6F011C, 0x000007E + +gUnk_086F019A:: @ 086F019A + .incbin "baserom.gba", 0x6F019A, 0x0000069 + +gUnk_086F0203:: @ 086F0203 + .incbin "baserom.gba", 0x6F0203, 0x00005FD + +gUnk_086F0800:: @ 086F0800 + .incbin "baserom.gba", 0x6F0800, 0x000001B + +gUnk_086F081B:: @ 086F081B + .incbin "baserom.gba", 0x6F081B, 0x00006EB + +gUnk_086F0F06:: @ 086F0F06 + .incbin "baserom.gba", 0x6F0F06, 0x00001AF + +gUnk_086F10B5:: @ 086F10B5 + .incbin "baserom.gba", 0x6F10B5, 0x000094A + +gUnk_086F19FF:: @ 086F19FF + .incbin "baserom.gba", 0x6F19FF, 0x0000C01 + +gUnk_086F2600:: @ 086F2600 + .incbin "baserom.gba", 0x6F2600, 0x000B121 + +gUnk_086FD721:: @ 086FD721 + .incbin "baserom.gba", 0x6FD721, 0x000238E + +gUnk_086FFAAF:: @ 086FFAAF + .incbin "baserom.gba", 0x6FFAAF, 0x0000551 + +gUnk_08700000:: @ 08700000 + .incbin "baserom.gba", 0x700000, 0x0000001 + +gUnk_08700001:: @ 08700001 + .incbin "baserom.gba", 0x700001, 0x0000003 + +gUnk_08700004:: @ 08700004 + .incbin "baserom.gba", 0x700004, 0x0000002 + +gUnk_08700006:: @ 08700006 + .incbin "baserom.gba", 0x700006, 0x000002A + +gUnk_08700030:: @ 08700030 + .incbin "baserom.gba", 0x700030, 0x000000C + +gUnk_0870003C:: @ 0870003C + .incbin "baserom.gba", 0x70003C, 0x00001C4 + +gUnk_08700200:: @ 08700200 + .incbin "baserom.gba", 0x700200, 0x0000051 + +gUnk_08700251:: @ 08700251 + .incbin "baserom.gba", 0x700251, 0x000019F + +gUnk_087003F0:: @ 087003F0 + .incbin "baserom.gba", 0x7003F0, 0x0000240 + +gUnk_08700630:: @ 08700630 + .incbin "baserom.gba", 0x700630, 0x00002C0 + +gUnk_087008F0:: @ 087008F0 + .incbin "baserom.gba", 0x7008F0, 0x00000D0 + +gUnk_087009C0:: @ 087009C0 + .incbin "baserom.gba", 0x7009C0, 0x0000119 + +gUnk_08700AD9:: @ 08700AD9 + .incbin "baserom.gba", 0x700AD9, 0x00000C7 + +gUnk_08700BA0:: @ 08700BA0 + .incbin "baserom.gba", 0x700BA0, 0x0001BD0 + +gUnk_08702770:: @ 08702770 + .incbin "baserom.gba", 0x702770, 0x00053AB + +gUnk_08707B1B:: @ 08707B1B + .incbin "baserom.gba", 0x707B1B, 0x00011EB + +gUnk_08708D06:: @ 08708D06 + .incbin "baserom.gba", 0x708D06, 0x000110B + +gUnk_08709E11:: @ 08709E11 + .incbin "baserom.gba", 0x709E11, 0x0002FF6 + +gUnk_0870CE07:: @ 0870CE07 + .incbin "baserom.gba", 0x70CE07, 0x00031F9 + +gUnk_08710000:: @ 08710000 + .incbin "baserom.gba", 0x710000, 0x0000020 + +gUnk_08710020:: @ 08710020 + .incbin "baserom.gba", 0x710020, 0x000001C + +gUnk_0871003C:: @ 0871003C + .incbin "baserom.gba", 0x71003C, 0x0000004 + +gUnk_08710040:: @ 08710040 + .incbin "baserom.gba", 0x710040, 0x00000DC + +gUnk_0871011C:: @ 0871011C + .incbin "baserom.gba", 0x71011C, 0x0000045 + +gUnk_08710161:: @ 08710161 + .incbin "baserom.gba", 0x710161, 0x000029F + +gUnk_08710400:: @ 08710400 + .incbin "baserom.gba", 0x710400, 0x0000091 + +gUnk_08710491:: @ 08710491 + .incbin "baserom.gba", 0x710491, 0x000026F + +gUnk_08710700:: @ 08710700 + .incbin "baserom.gba", 0x710700, 0x0000070 + +gUnk_08710770:: @ 08710770 + .incbin "baserom.gba", 0x710770, 0x0001811 + +gUnk_08711F81:: @ 08711F81 + .incbin "baserom.gba", 0x711F81, 0x00007F0 + +gUnk_08712771:: @ 08712771 + .incbin "baserom.gba", 0x712771, 0x00027A0 + +gUnk_08714F11:: @ 08714F11 + .incbin "baserom.gba", 0x714F11, 0x0003277 + +gUnk_08718188:: @ 08718188 + .incbin "baserom.gba", 0x718188, 0x0007E81 + +gUnk_08720009:: @ 08720009 + .incbin "baserom.gba", 0x720009, 0x00000FE + +gUnk_08720107:: @ 08720107 + .incbin "baserom.gba", 0x720107, 0x000016A + +gUnk_08720271:: @ 08720271 + .incbin "baserom.gba", 0x720271, 0x000048F + +gUnk_08720700:: @ 08720700 + .incbin "baserom.gba", 0x720700, 0x000014E + +gUnk_0872084E:: @ 0872084E + .incbin "baserom.gba", 0x72084E, 0x000048C + +gUnk_08720CDA:: @ 08720CDA + .incbin "baserom.gba", 0x720CDA, 0x000154B + +gUnk_08722225:: @ 08722225 + .incbin "baserom.gba", 0x722225, 0x000DDE2 + +gUnk_08730007:: @ 08730007 + .incbin "baserom.gba", 0x730007, 0x00001E9 + +gUnk_087301F0:: @ 087301F0 + .incbin "baserom.gba", 0x7301F0, 0x0000520 + +gUnk_08730710:: @ 08730710 + .incbin "baserom.gba", 0x730710, 0x0000063 + +gUnk_08730773:: @ 08730773 + .incbin "baserom.gba", 0x730773, 0x00020A0 + +gUnk_08732813:: @ 08732813 + .incbin "baserom.gba", 0x732813, 0x00006C1 + +gUnk_08732ED4:: @ 08732ED4 + .incbin "baserom.gba", 0x732ED4, 0x00021B6 + +gUnk_0873508A:: @ 0873508A + .incbin "baserom.gba", 0x73508A, 0x000AF86 + +gUnk_08740010:: @ 08740010 + .incbin "baserom.gba", 0x740010, 0x0000760 + +gUnk_08740770:: @ 08740770 + .incbin "baserom.gba", 0x740770, 0x0000200 + +gUnk_08740970:: @ 08740970 + .incbin "baserom.gba", 0x740970, 0x0000326 + +gUnk_08740C96:: @ 08740C96 + .incbin "baserom.gba", 0x740C96, 0x0003695 + +gUnk_0874432B:: @ 0874432B + .incbin "baserom.gba", 0x74432B, 0x0000118 + +gUnk_08744443:: @ 08744443 + .incbin "baserom.gba", 0x744443, 0x00001C0 + +gUnk_08744603:: @ 08744603 + .incbin "baserom.gba", 0x744603, 0x00065CA + +gUnk_0874ABCD:: @ 0874ABCD + .incbin "baserom.gba", 0x74ABCD, 0x000543B + +gUnk_08750008:: @ 08750008 + .incbin "baserom.gba", 0x750008, 0x00002F8 + +gUnk_08750300:: @ 08750300 + .incbin "baserom.gba", 0x750300, 0x0000074 + +gUnk_08750374:: @ 08750374 + .incbin "baserom.gba", 0x750374, 0x000048F + +gUnk_08750803:: @ 08750803 + .incbin "baserom.gba", 0x750803, 0x0000703 + +gUnk_08750F06:: @ 08750F06 + .incbin "baserom.gba", 0x750F06, 0x000344E + +gUnk_08754354:: @ 08754354 + .incbin "baserom.gba", 0x754354, 0x0000756 + +gUnk_08754AAA:: @ 08754AAA + .incbin "baserom.gba", 0x754AAA, 0x000C45C + +gUnk_08760F06:: @ 08760F06 + .incbin "baserom.gba", 0x760F06, 0x000120B + +gUnk_08762111:: @ 08762111 + .incbin "baserom.gba", 0x762111, 0x00015FB + +gUnk_0876370C:: @ 0876370C + .incbin "baserom.gba", 0x76370C, 0x00009C4 + +gUnk_087640D0:: @ 087640D0 + .incbin "baserom.gba", 0x7640D0, 0x0000496 + +gUnk_08764566:: @ 08764566 + .incbin "baserom.gba", 0x764566, 0x0000CC5 + +gUnk_0876522B:: @ 0876522B + .incbin "baserom.gba", 0x76522B, 0x000032B + +gUnk_08765556:: @ 08765556 + .incbin "baserom.gba", 0x765556, 0x0001110 + +gUnk_08766666:: @ 08766666 + .incbin "baserom.gba", 0x766666, 0x0000020 + +gUnk_08766686:: @ 08766686 + .incbin "baserom.gba", 0x766686, 0x0000021 + +gUnk_087666A7:: @ 087666A7 + .incbin "baserom.gba", 0x7666A7, 0x00008FA + +gUnk_08766FA1:: @ 08766FA1 + .incbin "baserom.gba", 0x766FA1, 0x0005D23 + +gUnk_0876CCC4:: @ 0876CCC4 + .incbin "baserom.gba", 0x76CCC4, 0x000110B + +gUnk_0876DDCF:: @ 0876DDCF + .incbin "baserom.gba", 0x76DDCF, 0x0002242 + +gUnk_08770011:: @ 08770011 + .incbin "baserom.gba", 0x770011, 0x00000A8 + +gUnk_087700B9:: @ 087700B9 + .incbin "baserom.gba", 0x7700B9, 0x0000287 + +gUnk_08770340:: @ 08770340 + .incbin "baserom.gba", 0x770340, 0x00000E2 + +gUnk_08770422:: @ 08770422 + .incbin "baserom.gba", 0x770422, 0x0000154 + +gUnk_08770576:: @ 08770576 + .incbin "baserom.gba", 0x770576, 0x0000300 + +gUnk_08770876:: @ 08770876 + .incbin "baserom.gba", 0x770876, 0x0000791 + +gUnk_08771007:: @ 08771007 + .incbin "baserom.gba", 0x771007, 0x000006E + +gUnk_08771075:: @ 08771075 + .incbin "baserom.gba", 0x771075, 0x0000B8B + +gUnk_08771C00:: @ 08771C00 + .incbin "baserom.gba", 0x771C00, 0x0005775 + +gUnk_08777375:: @ 08777375 + .incbin "baserom.gba", 0x777375, 0x00003F0 + +gUnk_08777765:: @ 08777765 + .incbin "baserom.gba", 0x777765, 0x0000011 + +gUnk_08777776:: @ 08777776 + .incbin "baserom.gba", 0x777776, 0x0000012 + +gUnk_08777788:: @ 08777788 + .incbin "baserom.gba", 0x777788, 0x0000877 + +gUnk_08777FFF:: @ 08777FFF + .incbin "baserom.gba", 0x777FFF, 0x0000067 + +gUnk_08778066:: @ 08778066 + .incbin "baserom.gba", 0x778066, 0x0000703 + +gUnk_08778769:: @ 08778769 + .incbin "baserom.gba", 0x778769, 0x0000E2C + +gUnk_08779595:: @ 08779595 + .incbin "baserom.gba", 0x779595, 0x000148E + +gUnk_0877AA23:: @ 0877AA23 + .incbin "baserom.gba", 0x77AA23, 0x0000017 + +gUnk_0877AA3A:: @ 0877AA3A + .incbin "baserom.gba", 0x77AA3A, 0x0000190 + +gUnk_0877ABCA:: @ 0877ABCA + .incbin "baserom.gba", 0x77ABCA, 0x0000537 + +gUnk_0877B101:: @ 0877B101 + .incbin "baserom.gba", 0x77B101, 0x000290E + +gUnk_0877DA0F:: @ 0877DA0F + .incbin "baserom.gba", 0x77DA0F, 0x0002649 + +gUnk_08780058:: @ 08780058 + .incbin "baserom.gba", 0x780058, 0x00000E8 + +gUnk_08780140:: @ 08780140 + .incbin "baserom.gba", 0x780140, 0x0000836 + +gUnk_08780976:: @ 08780976 + .incbin "baserom.gba", 0x780976, 0x000018A + +gUnk_08780B00:: @ 08780B00 + .incbin "baserom.gba", 0x780B00, 0x0006410 + +gUnk_08786F10:: @ 08786F10 + .incbin "baserom.gba", 0x786F10, 0x0000919 + +gUnk_08787829:: @ 08787829 + .incbin "baserom.gba", 0x787829, 0x000084E + +gUnk_08788077:: @ 08788077 + .incbin "baserom.gba", 0x788077, 0x00001CF + +gUnk_08788246:: @ 08788246 + .incbin "baserom.gba", 0x788246, 0x0001375 + +gUnk_087895BB:: @ 087895BB + .incbin "baserom.gba", 0x7895BB, 0x0000933 + +gUnk_08789EEE:: @ 08789EEE + .incbin "baserom.gba", 0x789EEE, 0x000610A + +gUnk_0878FFF8:: @ 0878FFF8 + .incbin "baserom.gba", 0x78FFF8, 0x0000008 + +gUnk_08790000:: @ 08790000 + .incbin "baserom.gba", 0x790000, 0x0000001 + +gUnk_08790001:: @ 08790001 + .incbin "baserom.gba", 0x790001, 0x0000001 + +gUnk_08790002:: @ 08790002 + .incbin "baserom.gba", 0x790002, 0x0000001 + +gUnk_08790003:: @ 08790003 + .incbin "baserom.gba", 0x790003, 0x0000001 + +gUnk_08790004:: @ 08790004 + .incbin "baserom.gba", 0x790004, 0x0000002 + +gUnk_08790006:: @ 08790006 + .incbin "baserom.gba", 0x790006, 0x0000001 + +gUnk_08790007:: @ 08790007 + .incbin "baserom.gba", 0x790007, 0x0000001 + +gUnk_08790008:: @ 08790008 + .incbin "baserom.gba", 0x790008, 0x0000002 + +gUnk_0879000A:: @ 0879000A + .incbin "baserom.gba", 0x79000A, 0x0000001 + +gUnk_0879000B:: @ 0879000B + .incbin "baserom.gba", 0x79000B, 0x0000004 + +gUnk_0879000F:: @ 0879000F + .incbin "baserom.gba", 0x79000F, 0x0000001 + +gUnk_08790010:: @ 08790010 + .incbin "baserom.gba", 0x790010, 0x0000003 + +gUnk_08790013:: @ 08790013 + .incbin "baserom.gba", 0x790013, 0x0000007 + +gUnk_0879001A:: @ 0879001A + .incbin "baserom.gba", 0x79001A, 0x0000004 + +gUnk_0879001E:: @ 0879001E + .incbin "baserom.gba", 0x79001E, 0x0000002 + +gUnk_08790020:: @ 08790020 + .incbin "baserom.gba", 0x790020, 0x000000C + +gUnk_0879002C:: @ 0879002C + .incbin "baserom.gba", 0x79002C, 0x0000010 + +gUnk_0879003C:: @ 0879003C + .incbin "baserom.gba", 0x79003C, 0x0000004 + +gUnk_08790040:: @ 08790040 + .incbin "baserom.gba", 0x790040, 0x0000008 + +gUnk_08790048:: @ 08790048 + .incbin "baserom.gba", 0x790048, 0x000000C + +gUnk_08790054:: @ 08790054 + .incbin "baserom.gba", 0x790054, 0x0000004 + +gUnk_08790058:: @ 08790058 + .incbin "baserom.gba", 0x790058, 0x0000002 + +gUnk_0879005A:: @ 0879005A + .incbin "baserom.gba", 0x79005A, 0x000000E + +gUnk_08790068:: @ 08790068 + .incbin "baserom.gba", 0x790068, 0x0000004 + +gUnk_0879006C:: @ 0879006C + .incbin "baserom.gba", 0x79006C, 0x000000C + +gUnk_08790078:: @ 08790078 + .incbin "baserom.gba", 0x790078, 0x0000008 + +gUnk_08790080:: @ 08790080 + .incbin "baserom.gba", 0x790080, 0x0000002 + +gUnk_08790082:: @ 08790082 + .incbin "baserom.gba", 0x790082, 0x000000A + +gUnk_0879008C:: @ 0879008C + .incbin "baserom.gba", 0x79008C, 0x0000009 + +gUnk_08790095:: @ 08790095 + .incbin "baserom.gba", 0x790095, 0x0000001 + +gUnk_08790096:: @ 08790096 + .incbin "baserom.gba", 0x790096, 0x0000022 + +gUnk_087900B8:: @ 087900B8 + .incbin "baserom.gba", 0x7900B8, 0x0000018 + +gUnk_087900D0:: @ 087900D0 + .incbin "baserom.gba", 0x7900D0, 0x0000019 + +gUnk_087900E9:: @ 087900E9 + .incbin "baserom.gba", 0x7900E9, 0x0000007 + +gUnk_087900F0:: @ 087900F0 + .incbin "baserom.gba", 0x7900F0, 0x0000001 + +gUnk_087900F1:: @ 087900F1 + .incbin "baserom.gba", 0x7900F1, 0x000000F + +gUnk_08790100:: @ 08790100 + .incbin "baserom.gba", 0x790100, 0x0000007 + +gUnk_08790107:: @ 08790107 + .incbin "baserom.gba", 0x790107, 0x000000A + +gUnk_08790111:: @ 08790111 + .incbin "baserom.gba", 0x790111, 0x000002F + +gUnk_08790140:: @ 08790140 + .incbin "baserom.gba", 0x790140, 0x0000040 + +gUnk_08790180:: @ 08790180 + .incbin "baserom.gba", 0x790180, 0x0000008 + +gUnk_08790188:: @ 08790188 + .incbin "baserom.gba", 0x790188, 0x0000008 + +gUnk_08790190:: @ 08790190 + .incbin "baserom.gba", 0x790190, 0x0000039 + +gUnk_087901C9:: @ 087901C9 + .incbin "baserom.gba", 0x7901C9, 0x000002A + +gUnk_087901F3:: @ 087901F3 + .incbin "baserom.gba", 0x7901F3, 0x000000D + +gUnk_08790200:: @ 08790200 + .incbin "baserom.gba", 0x790200, 0x0000201 + +gUnk_08790401:: @ 08790401 + .incbin "baserom.gba", 0x790401, 0x0000001 + +gUnk_08790402:: @ 08790402 + .incbin "baserom.gba", 0x790402, 0x0000041 + +gUnk_08790443:: @ 08790443 + .incbin "baserom.gba", 0x790443, 0x0000001 + +gUnk_08790444:: @ 08790444 + .incbin "baserom.gba", 0x790444, 0x0000006 + +gUnk_0879044A:: @ 0879044A + .incbin "baserom.gba", 0x79044A, 0x0000009 + +gUnk_08790453:: @ 08790453 + .incbin "baserom.gba", 0x790453, 0x0000006 + +gUnk_08790459:: @ 08790459 + .incbin "baserom.gba", 0x790459, 0x000000A + +gUnk_08790463:: @ 08790463 + .incbin "baserom.gba", 0x790463, 0x0000001 + +gUnk_08790464:: @ 08790464 + .incbin "baserom.gba", 0x790464, 0x0000024 + +gUnk_08790488:: @ 08790488 + .incbin "baserom.gba", 0x790488, 0x0000378 + +gUnk_08790800:: @ 08790800 + .incbin "baserom.gba", 0x790800, 0x0000001 + +gUnk_08790801:: @ 08790801 + .incbin "baserom.gba", 0x790801, 0x0000004 + +gUnk_08790805:: @ 08790805 + .incbin "baserom.gba", 0x790805, 0x0000001 + +gUnk_08790806:: @ 08790806 + .incbin "baserom.gba", 0x790806, 0x0000001 + +gUnk_08790807:: @ 08790807 + .incbin "baserom.gba", 0x790807, 0x0000003 + +gUnk_0879080A:: @ 0879080A + .incbin "baserom.gba", 0x79080A, 0x0000003 + +gUnk_0879080D:: @ 0879080D + .incbin "baserom.gba", 0x79080D, 0x0000002 + +gUnk_0879080F:: @ 0879080F + .incbin "baserom.gba", 0x79080F, 0x0000ABA + +gUnk_087912C9:: @ 087912C9 + .incbin "baserom.gba", 0x7912C9, 0x0000957 + +gUnk_08791C20:: @ 08791C20 + .incbin "baserom.gba", 0x791C20, 0x00023E0 + +gUnk_08794000:: @ 08794000 + .incbin "baserom.gba", 0x794000, 0x0000107 + +gUnk_08794107:: @ 08794107 + .incbin "baserom.gba", 0x794107, 0x0000FF9 + +gUnk_08795100:: @ 08795100 + .incbin "baserom.gba", 0x795100, 0x0001000 + +gUnk_08796100:: @ 08796100 + .incbin "baserom.gba", 0x796100, 0x0001879 + +gUnk_08797979:: @ 08797979 + .incbin "baserom.gba", 0x797979, 0x0000687 + +gUnk_08798000:: @ 08798000 + .incbin "baserom.gba", 0x798000, 0x0001992 + +gUnk_08799992:: @ 08799992 + .incbin "baserom.gba", 0x799992, 0x000008E + +gUnk_08799A20:: @ 08799A20 + .incbin "baserom.gba", 0x799A20, 0x00064DE + +gUnk_0879FEFE:: @ 0879FEFE + .incbin "baserom.gba", 0x79FEFE, 0x00000BA + +gUnk_0879FFB8:: @ 0879FFB8 + .incbin "baserom.gba", 0x79FFB8, 0x0000004 + +gUnk_0879FFBC:: @ 0879FFBC + .incbin "baserom.gba", 0x79FFBC, 0x0000010 + +gUnk_0879FFCC:: @ 0879FFCC + .incbin "baserom.gba", 0x79FFCC, 0x0000004 + +gUnk_0879FFD0:: @ 0879FFD0 + .incbin "baserom.gba", 0x79FFD0, 0x0000010 + +gUnk_0879FFE0:: @ 0879FFE0 + .incbin "baserom.gba", 0x79FFE0, 0x0000006 + +gUnk_0879FFE6:: @ 0879FFE6 + .incbin "baserom.gba", 0x79FFE6, 0x0000002 + +gUnk_0879FFE8:: @ 0879FFE8 + .incbin "baserom.gba", 0x79FFE8, 0x0000008 + +gUnk_0879FFF0:: @ 0879FFF0 + .incbin "baserom.gba", 0x79FFF0, 0x0000008 + +gUnk_0879FFF8:: @ 0879FFF8 + .incbin "baserom.gba", 0x79FFF8, 0x0000002 + +gUnk_0879FFFA:: @ 0879FFFA + .incbin "baserom.gba", 0x79FFFA, 0x0000005 + +gUnk_0879FFFF:: @ 0879FFFF + .incbin "baserom.gba", 0x79FFFF, 0x000007A + +gUnk_087A0079:: @ 087A0079 + .incbin "baserom.gba", 0x7A0079, 0x0001650 + +gUnk_087A16C9:: @ 087A16C9 + .incbin "baserom.gba", 0x7A16C9, 0x000A940 + +gUnk_087AC009:: @ 087AC009 + .incbin "baserom.gba", 0x7AC009, 0x0000DD4 + +gUnk_087ACDDD:: @ 087ACDDD + .incbin "baserom.gba", 0x7ACDDD, 0x0003223 + +gUnk_087B0000:: @ 087B0000 + .incbin "baserom.gba", 0x7B0000, 0x0000002 + +gUnk_087B0002:: @ 087B0002 + .incbin "baserom.gba", 0x7B0002, 0x0000002 + +gUnk_087B0004:: @ 087B0004 + .incbin "baserom.gba", 0x7B0004, 0x0000001 + +gUnk_087B0005:: @ 087B0005 + .incbin "baserom.gba", 0x7B0005, 0x0000002 + +gUnk_087B0007:: @ 087B0007 + .incbin "baserom.gba", 0x7B0007, 0x0000001 + +gUnk_087B0008:: @ 087B0008 + .incbin "baserom.gba", 0x7B0008, 0x0000001 + +gUnk_087B0009:: @ 087B0009 + .incbin "baserom.gba", 0x7B0009, 0x0000006 + +gUnk_087B000F:: @ 087B000F + .incbin "baserom.gba", 0x7B000F, 0x0000001 + +gUnk_087B0010:: @ 087B0010 + .incbin "baserom.gba", 0x7B0010, 0x0000002 + +gUnk_087B0012:: @ 087B0012 + .incbin "baserom.gba", 0x7B0012, 0x0000002 + +gUnk_087B0014:: @ 087B0014 + .incbin "baserom.gba", 0x7B0014, 0x0000002 + +gUnk_087B0016:: @ 087B0016 + .incbin "baserom.gba", 0x7B0016, 0x0000008 + +gUnk_087B001E:: @ 087B001E + .incbin "baserom.gba", 0x7B001E, 0x000000A + +gUnk_087B0028:: @ 087B0028 + .incbin "baserom.gba", 0x7B0028, 0x0000008 + +gUnk_087B0030:: @ 087B0030 + .incbin "baserom.gba", 0x7B0030, 0x000000C + +gUnk_087B003C:: @ 087B003C + .incbin "baserom.gba", 0x7B003C, 0x0000038 + +gUnk_087B0074:: @ 087B0074 + .incbin "baserom.gba", 0x7B0074, 0x0000004 + +gUnk_087B0078:: @ 087B0078 + .incbin "baserom.gba", 0x7B0078, 0x000001E + +gUnk_087B0096:: @ 087B0096 + .incbin "baserom.gba", 0x7B0096, 0x0000022 + +gUnk_087B00B8:: @ 087B00B8 + .incbin "baserom.gba", 0x7B00B8, 0x0000040 + +gUnk_087B00F8:: @ 087B00F8 + .incbin "baserom.gba", 0x7B00F8, 0x0000019 + +gUnk_087B0111:: @ 087B0111 + .incbin "baserom.gba", 0x7B0111, 0x000002B + +gUnk_087B013C:: @ 087B013C + .incbin "baserom.gba", 0x7B013C, 0x0000004 + +gUnk_087B0140:: @ 087B0140 + .incbin "baserom.gba", 0x7B0140, 0x0000087 + +gUnk_087B01C7:: @ 087B01C7 + .incbin "baserom.gba", 0x7B01C7, 0x00000B3 + +gUnk_087B027A:: @ 087B027A + .incbin "baserom.gba", 0x7B027A, 0x0000187 + +gUnk_087B0401:: @ 087B0401 + .incbin "baserom.gba", 0x7B0401, 0x0000001 + +gUnk_087B0402:: @ 087B0402 + .incbin "baserom.gba", 0x7B0402, 0x0000035 + +gUnk_087B0437:: @ 087B0437 + .incbin "baserom.gba", 0x7B0437, 0x0000008 + +gUnk_087B043F:: @ 087B043F + .incbin "baserom.gba", 0x7B043F, 0x000003F + +gUnk_087B047E:: @ 087B047E + .incbin "baserom.gba", 0x7B047E, 0x0000170 + +gUnk_087B05EE:: @ 087B05EE + .incbin "baserom.gba", 0x7B05EE, 0x0000212 + +gUnk_087B0800:: @ 087B0800 + .incbin "baserom.gba", 0x7B0800, 0x0000001 + +gUnk_087B0801:: @ 087B0801 + .incbin "baserom.gba", 0x7B0801, 0x0000003 + +gUnk_087B0804:: @ 087B0804 + .incbin "baserom.gba", 0x7B0804, 0x0000002 + +gUnk_087B0806:: @ 087B0806 + .incbin "baserom.gba", 0x7B0806, 0x0000001 + +gUnk_087B0807:: @ 087B0807 + .incbin "baserom.gba", 0x7B0807, 0x0000002 + +gUnk_087B0809:: @ 087B0809 + .incbin "baserom.gba", 0x7B0809, 0x000002A + +gUnk_087B0833:: @ 087B0833 + .incbin "baserom.gba", 0x7B0833, 0x0000047 + +gUnk_087B087A:: @ 087B087A + .incbin "baserom.gba", 0x7B087A, 0x0000ABE + +gUnk_087B1338:: @ 087B1338 + .incbin "baserom.gba", 0x7B1338, 0x0004EC5 + +gUnk_087B61FD:: @ 087B61FD + .incbin "baserom.gba", 0x7B61FD, 0x0006BE1 + +gUnk_087BCDDE:: @ 087BCDDE + .incbin "baserom.gba", 0x7BCDDE, 0x00020FF + +gUnk_087BEEDD:: @ 087BEEDD + .incbin "baserom.gba", 0x7BEEDD, 0x0001123 + +gUnk_087C0000:: @ 087C0000 + .incbin "baserom.gba", 0x7C0000, 0x0000004 + +gUnk_087C0004:: @ 087C0004 + .incbin "baserom.gba", 0x7C0004, 0x0000038 + +gUnk_087C003C:: @ 087C003C + .incbin "baserom.gba", 0x7C003C, 0x0000104 + +gUnk_087C0140:: @ 087C0140 + .incbin "baserom.gba", 0x7C0140, 0x00002C1 + +gUnk_087C0401:: @ 087C0401 + .incbin "baserom.gba", 0x7C0401, 0x0000036 + +gUnk_087C0437:: @ 087C0437 + .incbin "baserom.gba", 0x7C0437, 0x000000D + +gUnk_087C0444:: @ 087C0444 + .incbin "baserom.gba", 0x7C0444, 0x0000005 + +gUnk_087C0449:: @ 087C0449 + .incbin "baserom.gba", 0x7C0449, 0x0000010 + +gUnk_087C0459:: @ 087C0459 + .incbin "baserom.gba", 0x7C0459, 0x0000025 + +gUnk_087C047E:: @ 087C047E + .incbin "baserom.gba", 0x7C047E, 0x0000292 + +gUnk_087C0710:: @ 087C0710 + .incbin "baserom.gba", 0x7C0710, 0x0000024 + +gUnk_087C0734:: @ 087C0734 + .incbin "baserom.gba", 0x7C0734, 0x00000D1 + +gUnk_087C0805:: @ 087C0805 + .incbin "baserom.gba", 0x7C0805, 0x0000076 + +gUnk_087C087B:: @ 087C087B + .incbin "baserom.gba", 0x7C087B, 0x000F74F + +gUnk_087CFFCA:: @ 087CFFCA + .incbin "baserom.gba", 0x7CFFCA, 0x0000030 + +gUnk_087CFFFA:: @ 087CFFFA + .incbin "baserom.gba", 0x7CFFFA, 0x0006683 + +gUnk_087D667D:: @ 087D667D + .incbin "baserom.gba", 0x7D667D, 0x0002614 + +gUnk_087D8C91:: @ 087D8C91 + .incbin "baserom.gba", 0x7D8C91, 0x000739D + +gUnk_087E002E:: @ 087E002E + .incbin "baserom.gba", 0x7E002E, 0x00006D2 + +gUnk_087E0700:: @ 087E0700 + .incbin "baserom.gba", 0x7E0700, 0x0000598 + +gUnk_087E0C98:: @ 087E0C98 + .incbin "baserom.gba", 0x7E0C98, 0x000095B + +gUnk_087E15F3:: @ 087E15F3 + .incbin "baserom.gba", 0x7E15F3, 0x000A6BF + +gUnk_087EBCB2:: @ 087EBCB2 + .incbin "baserom.gba", 0x7EBCB2, 0x000323C + +gUnk_087EEEEE:: @ 087EEEEE + .incbin "baserom.gba", 0x7EEEEE, 0x000112A + +gUnk_087F0018:: @ 087F0018 + .incbin "baserom.gba", 0x7F0018, 0x0000064 + +gUnk_087F007C:: @ 087F007C + .incbin "baserom.gba", 0x7F007C, 0x0000260 + +gUnk_087F02DC:: @ 087F02DC + .incbin "baserom.gba", 0x7F02DC, 0x0000824 + +gUnk_087F0B00:: @ 087F0B00 + .incbin "baserom.gba", 0x7F0B00, 0x0000422 + +gUnk_087F0F22:: @ 087F0F22 + .incbin "baserom.gba", 0x7F0F22, 0x0000067 + +gUnk_087F0F89:: @ 087F0F89 + .incbin "baserom.gba", 0x7F0F89, 0x00000F6 + +gUnk_087F107F:: @ 087F107F + .incbin "baserom.gba", 0x7F107F, 0x0000020 + +gUnk_087F109F:: @ 087F109F + .incbin "baserom.gba", 0x7F109F, 0x0000003 + +gUnk_087F10A2:: @ 087F10A2 + .incbin "baserom.gba", 0x7F10A2, 0x000053F + +gUnk_087F15E1:: @ 087F15E1 + .incbin "baserom.gba", 0x7F15E1, 0x0001F74 + +gUnk_087F3555:: @ 087F3555 + .incbin "baserom.gba", 0x7F3555, 0x0002B9E + +gUnk_087F60F3:: @ 087F60F3 + .incbin "baserom.gba", 0x7F60F3, 0x0002643 + +gUnk_087F8736:: @ 087F8736 + .incbin "baserom.gba", 0x7F8736, 0x0003695 + +gUnk_087FBDCB:: @ 087FBDCB + .incbin "baserom.gba", 0x7FBDCB, 0x0000001 + +gUnk_087FBDCC:: @ 087FBDCC + .incbin "baserom.gba", 0x7FBDCC, 0x000023A + +gUnk_087FC006:: @ 087FC006 + .incbin "baserom.gba", 0x7FC006, 0x000310B + +gUnk_087FF111:: @ 087FF111 + .incbin "baserom.gba", 0x7FF111, 0x000011B + +gUnk_087FF22C:: @ 087FF22C + .incbin "baserom.gba", 0x7FF22C, 0x000066B + +gUnk_087FF897:: @ 087FF897 + .incbin "baserom.gba", 0x7FF897, 0x0000769 + +gUnk_08800000:: @ 08800000 + .incbin "baserom.gba", 0x800000, 0x0000002 + +gUnk_08800002:: @ 08800002 + .incbin "baserom.gba", 0x800002, 0x0000002 + +gUnk_08800004:: @ 08800004 + .incbin "baserom.gba", 0x800004, 0x0000002 + +gUnk_08800006:: @ 08800006 + .incbin "baserom.gba", 0x800006, 0x0000001 + +gUnk_08800007:: @ 08800007 + .incbin "baserom.gba", 0x800007, 0x0000001 + +gUnk_08800008:: @ 08800008 + .incbin "baserom.gba", 0x800008, 0x0000001 + +gUnk_08800009:: @ 08800009 + .incbin "baserom.gba", 0x800009, 0x0000001 + +gUnk_0880000A:: @ 0880000A + .incbin "baserom.gba", 0x80000A, 0x0000039 + +gUnk_08800043:: @ 08800043 + .incbin "baserom.gba", 0x800043, 0x000007D + +gUnk_088000C0:: @ 088000C0 + .incbin "baserom.gba", 0x8000C0, 0x0000047 + +gUnk_08800107:: @ 08800107 + .incbin "baserom.gba", 0x800107, 0x0000009 + +gUnk_08800110:: @ 08800110 + .incbin "baserom.gba", 0x800110, 0x0000324 + +gUnk_08800434:: @ 08800434 + .incbin "baserom.gba", 0x800434, 0x000000F + +gUnk_08800443:: @ 08800443 + .incbin "baserom.gba", 0x800443, 0x00001FD + +gUnk_08800640:: @ 08800640 + .incbin "baserom.gba", 0x800640, 0x00002B0 + +gUnk_088008F0:: @ 088008F0 + .incbin "baserom.gba", 0x8008F0, 0x00000F6 + +gUnk_088009E6:: @ 088009E6 + .incbin "baserom.gba", 0x8009E6, 0x0000242 + +gUnk_08800C28:: @ 08800C28 + .incbin "baserom.gba", 0x800C28, 0x0000FD8 + +gUnk_08801C00:: @ 08801C00 + .incbin "baserom.gba", 0x801C00, 0x0000B80 + +gUnk_08802780:: @ 08802780 + .incbin "baserom.gba", 0x802780, 0x0000EE3 + +gUnk_08803663:: @ 08803663 + .incbin "baserom.gba", 0x803663, 0x00009A1 + +gUnk_08804004:: @ 08804004 + .incbin "baserom.gba", 0x804004, 0x0000114 + +gUnk_08804118:: @ 08804118 + .incbin "baserom.gba", 0x804118, 0x000001A + +gUnk_08804132:: @ 08804132 + .incbin "baserom.gba", 0x804132, 0x0002501 + +gUnk_08806633:: @ 08806633 + .incbin "baserom.gba", 0x806633, 0x000101B + +gUnk_0880764E:: @ 0880764E + .incbin "baserom.gba", 0x80764E, 0x00004B9 + +gUnk_08807B07:: @ 08807B07 + .incbin "baserom.gba", 0x807B07, 0x0000C7A + +gUnk_08808781:: @ 08808781 + .incbin "baserom.gba", 0x808781, 0x000007F + +gUnk_08808800:: @ 08808800 + .incbin "baserom.gba", 0x808800, 0x0002C08 + +gUnk_0880B408:: @ 0880B408 + .incbin "baserom.gba", 0x80B408, 0x0000BFA + +gUnk_0880C002:: @ 0880C002 + .incbin "baserom.gba", 0x80C002, 0x00013EF + +gUnk_0880D3F1:: @ 0880D3F1 + .incbin "baserom.gba", 0x80D3F1, 0x0000986 + +gUnk_0880DD77:: @ 0880DD77 + .incbin "baserom.gba", 0x80DD77, 0x0000B90 + +gUnk_0880E907:: @ 0880E907 + .incbin "baserom.gba", 0x80E907, 0x00000F3 + +gUnk_0880E9FA:: @ 0880E9FA + .incbin "baserom.gba", 0x80E9FA, 0x000000E + +gUnk_0880EA08:: @ 0880EA08 + .incbin "baserom.gba", 0x80EA08, 0x00000F8 + +gUnk_0880EB00:: @ 0880EB00 + .incbin "baserom.gba", 0x80EB00, 0x0000008 + +gUnk_0880EB08:: @ 0880EB08 + .incbin "baserom.gba", 0x80EB08, 0x0000001 + +gUnk_0880EB09:: @ 0880EB09 + .incbin "baserom.gba", 0x80EB09, 0x0000001 + +gUnk_0880EB0A:: @ 0880EB0A + .incbin "baserom.gba", 0x80EB0A, 0x00000E1 + +gUnk_0880EBEB:: @ 0880EBEB + .incbin "baserom.gba", 0x80EBEB, 0x0000005 + +gUnk_0880EBF0:: @ 0880EBF0 + .incbin "baserom.gba", 0x80EBF0, 0x0000018 + +gUnk_0880EC08:: @ 0880EC08 + .incbin "baserom.gba", 0x80EC08, 0x0000003 + +gUnk_0880EC0B:: @ 0880EC0B + .incbin "baserom.gba", 0x80EC0B, 0x00000E5 + +gUnk_0880ECF0:: @ 0880ECF0 + .incbin "baserom.gba", 0x80ECF0, 0x000021A + +gUnk_0880EF0A:: @ 0880EF0A + .incbin "baserom.gba", 0x80EF0A, 0x00000E7 + +gUnk_0880EFF1:: @ 0880EFF1 + .incbin "baserom.gba", 0x80EFF1, 0x000000B + +gUnk_0880EFFC:: @ 0880EFFC + .incbin "baserom.gba", 0x80EFFC, 0x0000110 + +gUnk_0880F10C:: @ 0880F10C + .incbin "baserom.gba", 0x80F10C, 0x00001F8 + +gUnk_0880F304:: @ 0880F304 + .incbin "baserom.gba", 0x80F304, 0x00001F8 + +gUnk_0880F4FC:: @ 0880F4FC + .incbin "baserom.gba", 0x80F4FC, 0x000000B + +gUnk_0880F507:: @ 0880F507 + .incbin "baserom.gba", 0x80F507, 0x00003F1 + +gUnk_0880F8F8:: @ 0880F8F8 + .incbin "baserom.gba", 0x80F8F8, 0x0000304 + +gUnk_0880FBFC:: @ 0880FBFC + .incbin "baserom.gba", 0x80FBFC, 0x0000584 + +gUnk_08810180:: @ 08810180 + .incbin "baserom.gba", 0x810180, 0x0000601 + +gUnk_08810781:: @ 08810781 + .incbin "baserom.gba", 0x810781, 0x000017E + +gUnk_088108FF:: @ 088108FF + .incbin "baserom.gba", 0x8108FF, 0x0000E82 + +gUnk_08811781:: @ 08811781 + .incbin "baserom.gba", 0x811781, 0x000099F + +gUnk_08812120:: @ 08812120 + .incbin "baserom.gba", 0x812120, 0x0000C61 + +gUnk_08812D81:: @ 08812D81 + .incbin "baserom.gba", 0x812D81, 0x0001000 + +gUnk_08813D81:: @ 08813D81 + .incbin "baserom.gba", 0x813D81, 0x000027F + +gUnk_08814000:: @ 08814000 + .incbin "baserom.gba", 0x814000, 0x0000105 + +gUnk_08814105:: @ 08814105 + .incbin "baserom.gba", 0x814105, 0x000033F + +gUnk_08814444:: @ 08814444 + .incbin "baserom.gba", 0x814444, 0x00027BB + +gUnk_08816BFF:: @ 08816BFF + .incbin "baserom.gba", 0x816BFF, 0x0001569 + +gUnk_08818168:: @ 08818168 + .incbin "baserom.gba", 0x818168, 0x00006CC + +gUnk_08818834:: @ 08818834 + .incbin "baserom.gba", 0x818834, 0x00053A0 + +gUnk_0881DBD4:: @ 0881DBD4 + .incbin "baserom.gba", 0x81DBD4, 0x000092C + +gUnk_0881E500:: @ 0881E500 + .incbin "baserom.gba", 0x81E500, 0x0000481 + +gUnk_0881E981:: @ 0881E981 + .incbin "baserom.gba", 0x81E981, 0x0000373 + +gUnk_0881ECF4:: @ 0881ECF4 + .incbin "baserom.gba", 0x81ECF4, 0x000008C + +gUnk_0881ED80:: @ 0881ED80 + .incbin "baserom.gba", 0x81ED80, 0x0000D75 + +gUnk_0881FAF5:: @ 0881FAF5 + .incbin "baserom.gba", 0x81FAF5, 0x0000402 + +gUnk_0881FEF7:: @ 0881FEF7 + .incbin "baserom.gba", 0x81FEF7, 0x0000109 + +gUnk_08820000:: @ 08820000 + .incbin "baserom.gba", 0x820000, 0x0000008 + +gUnk_08820008:: @ 08820008 + .incbin "baserom.gba", 0x820008, 0x0000016 + +gUnk_0882001E:: @ 0882001E + .incbin "baserom.gba", 0x82001E, 0x0000081 + +gUnk_0882009F:: @ 0882009F + .incbin "baserom.gba", 0x82009F, 0x0000001 + +gUnk_088200A0:: @ 088200A0 + .incbin "baserom.gba", 0x8200A0, 0x0000013 + +gUnk_088200B3:: @ 088200B3 + .incbin "baserom.gba", 0x8200B3, 0x000025D + +gUnk_08820310:: @ 08820310 + .incbin "baserom.gba", 0x820310, 0x0000149 + +gUnk_08820459:: @ 08820459 + .incbin "baserom.gba", 0x820459, 0x00002AC + +gUnk_08820705:: @ 08820705 + .incbin "baserom.gba", 0x820705, 0x0000100 + +gUnk_08820805:: @ 08820805 + .incbin "baserom.gba", 0x820805, 0x0000001 + +gUnk_08820806:: @ 08820806 + .incbin "baserom.gba", 0x820806, 0x000054C + +gUnk_08820D52:: @ 08820D52 + .incbin "baserom.gba", 0x820D52, 0x00012AE + +gUnk_08822000:: @ 08822000 + .incbin "baserom.gba", 0x822000, 0x0000782 + +gUnk_08822782:: @ 08822782 + .incbin "baserom.gba", 0x822782, 0x0000400 + +gUnk_08822B82:: @ 08822B82 + .incbin "baserom.gba", 0x822B82, 0x00001A9 + +gUnk_08822D2B:: @ 08822D2B + .incbin "baserom.gba", 0x822D2B, 0x0000556 + +gUnk_08823281:: @ 08823281 + .incbin "baserom.gba", 0x823281, 0x0000D85 + +gUnk_08824006:: @ 08824006 + .incbin "baserom.gba", 0x824006, 0x0000550 + +gUnk_08824556:: @ 08824556 + .incbin "baserom.gba", 0x824556, 0x0000ACD + +gUnk_08825023:: @ 08825023 + .incbin "baserom.gba", 0x825023, 0x0000C52 + +gUnk_08825C75:: @ 08825C75 + .incbin "baserom.gba", 0x825C75, 0x000250C + +gUnk_08828181:: @ 08828181 + .incbin "baserom.gba", 0x828181, 0x00071B2 + +gUnk_0882F333:: @ 0882F333 + .incbin "baserom.gba", 0x82F333, 0x0000C8F + +gUnk_0882FFC2:: @ 0882FFC2 + .incbin "baserom.gba", 0x82FFC2, 0x000003E + +gUnk_08830000:: @ 08830000 + .incbin "baserom.gba", 0x830000, 0x0000004 + +gUnk_08830004:: @ 08830004 + .incbin "baserom.gba", 0x830004, 0x0000003 + +gUnk_08830007:: @ 08830007 + .incbin "baserom.gba", 0x830007, 0x0000001 + +gUnk_08830008:: @ 08830008 + .incbin "baserom.gba", 0x830008, 0x0000008 + +gUnk_08830010:: @ 08830010 + .incbin "baserom.gba", 0x830010, 0x0000432 + +gUnk_08830442:: @ 08830442 + .incbin "baserom.gba", 0x830442, 0x0002B41 + +gUnk_08832F83:: @ 08832F83 + .incbin "baserom.gba", 0x832F83, 0x0001574 + +gUnk_088344F7:: @ 088344F7 + .incbin "baserom.gba", 0x8344F7, 0x000006F + +gUnk_08834566:: @ 08834566 + .incbin "baserom.gba", 0x834566, 0x0006DAC + +gUnk_0883B312:: @ 0883B312 + .incbin "baserom.gba", 0x83B312, 0x00047EE + +gUnk_0883FB00:: @ 0883FB00 + .incbin "baserom.gba", 0x83FB00, 0x0000509 + +gUnk_08840009:: @ 08840009 + .incbin "baserom.gba", 0x840009, 0x0000011 + +gUnk_0884001A:: @ 0884001A + .incbin "baserom.gba", 0x84001A, 0x0000066 + +gUnk_08840080:: @ 08840080 + .incbin "baserom.gba", 0x840080, 0x00001E9 + +gUnk_08840269:: @ 08840269 + .incbin "baserom.gba", 0x840269, 0x0000128 + +gUnk_08840391:: @ 08840391 + .incbin "baserom.gba", 0x840391, 0x00000B2 + +gUnk_08840443:: @ 08840443 + .incbin "baserom.gba", 0x840443, 0x000021D + +gUnk_08840660:: @ 08840660 + .incbin "baserom.gba", 0x840660, 0x0000203 + +gUnk_08840863:: @ 08840863 + .incbin "baserom.gba", 0x840863, 0x0000129 + +gUnk_0884098C:: @ 0884098C + .incbin "baserom.gba", 0x84098C, 0x0000154 + +gUnk_08840AE0:: @ 08840AE0 + .incbin "baserom.gba", 0x840AE0, 0x00004C0 + +gUnk_08840FA0:: @ 08840FA0 + .incbin "baserom.gba", 0x840FA0, 0x0000500 + +gUnk_088414A0:: @ 088414A0 + .incbin "baserom.gba", 0x8414A0, 0x0000380 + +gUnk_08841820:: @ 08841820 + .incbin "baserom.gba", 0x841820, 0x00002C0 + +gUnk_08841AE0:: @ 08841AE0 + .incbin "baserom.gba", 0x841AE0, 0x00004E0 + +gUnk_08841FC0:: @ 08841FC0 + .incbin "baserom.gba", 0x841FC0, 0x000026C + +gUnk_0884222C:: @ 0884222C + .incbin "baserom.gba", 0x84222C, 0x00000B4 + +gUnk_088422E0:: @ 088422E0 + .incbin "baserom.gba", 0x8422E0, 0x0000DA0 + +gUnk_08843080:: @ 08843080 + .incbin "baserom.gba", 0x843080, 0x00002B3 + +gUnk_08843333:: @ 08843333 + .incbin "baserom.gba", 0x843333, 0x00001AF + +gUnk_088434E2:: @ 088434E2 + .incbin "baserom.gba", 0x8434E2, 0x00009FE + +gUnk_08843EE0:: @ 08843EE0 + .incbin "baserom.gba", 0x843EE0, 0x0000375 + +gUnk_08844255:: @ 08844255 + .incbin "baserom.gba", 0x844255, 0x00001F0 + +gUnk_08844445:: @ 08844445 + .incbin "baserom.gba", 0x844445, 0x000097B + +gUnk_08844DC0:: @ 08844DC0 + .incbin "baserom.gba", 0x844DC0, 0x0000795 + +gUnk_08845555:: @ 08845555 + .incbin "baserom.gba", 0x845555, 0x000064B + +gUnk_08845BA0:: @ 08845BA0 + .incbin "baserom.gba", 0x845BA0, 0x0001A00 + +gUnk_088475A0:: @ 088475A0 + .incbin "baserom.gba", 0x8475A0, 0x00002E7 + +gUnk_08847887:: @ 08847887 + .incbin "baserom.gba", 0x847887, 0x00007FE + +gUnk_08848085:: @ 08848085 + .incbin "baserom.gba", 0x848085, 0x0000EDB + +gUnk_08848F60:: @ 08848F60 + .incbin "baserom.gba", 0x848F60, 0x00010C0 + +gUnk_0884A020:: @ 0884A020 + .incbin "baserom.gba", 0x84A020, 0x00003E0 + +gUnk_0884A400:: @ 0884A400 + .incbin "baserom.gba", 0x84A400, 0x00003A0 + +gUnk_0884A7A0:: @ 0884A7A0 + .incbin "baserom.gba", 0x84A7A0, 0x0000360 + +gUnk_0884AB00:: @ 0884AB00 + .incbin "baserom.gba", 0x84AB00, 0x00000CD + +gUnk_0884ABCD:: @ 0884ABCD + .incbin "baserom.gba", 0x84ABCD, 0x0000AB3 + +gUnk_0884B680:: @ 0884B680 + .incbin "baserom.gba", 0x84B680, 0x00006B2 + +gUnk_0884BD32:: @ 0884BD32 + .incbin "baserom.gba", 0x84BD32, 0x000044E + +gUnk_0884C180:: @ 0884C180 + .incbin "baserom.gba", 0x84C180, 0x0000AE0 + +gUnk_0884CC60:: @ 0884CC60 + .incbin "baserom.gba", 0x84CC60, 0x0000480 + +gUnk_0884D0E0:: @ 0884D0E0 + .incbin "baserom.gba", 0x84D0E0, 0x0000320 + +gUnk_0884D400:: @ 0884D400 + .incbin "baserom.gba", 0x84D400, 0x0000360 + +gUnk_0884D760:: @ 0884D760 + .incbin "baserom.gba", 0x84D760, 0x00003A0 + +gUnk_0884DB00:: @ 0884DB00 + .incbin "baserom.gba", 0x84DB00, 0x0000400 + +gUnk_0884DF00:: @ 0884DF00 + .incbin "baserom.gba", 0x84DF00, 0x00006F0 + +gUnk_0884E5F0:: @ 0884E5F0 + .incbin "baserom.gba", 0x84E5F0, 0x00000F0 + +gUnk_0884E6E0:: @ 0884E6E0 + .incbin "baserom.gba", 0x84E6E0, 0x0000428 + +gUnk_0884EB08:: @ 0884EB08 + .incbin "baserom.gba", 0x84EB08, 0x0000100 + +gUnk_0884EC08:: @ 0884EC08 + .incbin "baserom.gba", 0x84EC08, 0x0000400 + +gUnk_0884F008:: @ 0884F008 + .incbin "baserom.gba", 0x84F008, 0x00000EC + +gUnk_0884F0F4:: @ 0884F0F4 + .incbin "baserom.gba", 0x84F0F4, 0x0000100 + +gUnk_0884F1F4:: @ 0884F1F4 + .incbin "baserom.gba", 0x84F1F4, 0x0000E0D + +gUnk_08850001:: @ 08850001 + .incbin "baserom.gba", 0x850001, 0x0000007 + +gUnk_08850008:: @ 08850008 + .incbin "baserom.gba", 0x850008, 0x000047D + +gUnk_08850485:: @ 08850485 + .incbin "baserom.gba", 0x850485, 0x00003FF + +gUnk_08850884:: @ 08850884 + .incbin "baserom.gba", 0x850884, 0x0000101 + +gUnk_08850985:: @ 08850985 + .incbin "baserom.gba", 0x850985, 0x000075B + +gUnk_088510E0:: @ 088510E0 + .incbin "baserom.gba", 0x8510E0, 0x00001B1 + +gUnk_08851291:: @ 08851291 + .incbin "baserom.gba", 0x851291, 0x00015F4 + +gUnk_08852885:: @ 08852885 + .incbin "baserom.gba", 0x852885, 0x0000100 + +gUnk_08852985:: @ 08852985 + .incbin "baserom.gba", 0x852985, 0x0001073 + +gUnk_088539F8:: @ 088539F8 + .incbin "baserom.gba", 0x8539F8, 0x00000E8 + +gUnk_08853AE0:: @ 08853AE0 + .incbin "baserom.gba", 0x853AE0, 0x0000FCA + +gUnk_08854AAA:: @ 08854AAA + .incbin "baserom.gba", 0x854AAA, 0x0000B10 + +gUnk_088555BA:: @ 088555BA + .incbin "baserom.gba", 0x8555BA, 0x0000F26 + +gUnk_088564E0:: @ 088564E0 + .incbin "baserom.gba", 0x8564E0, 0x00003C0 + +gUnk_088568A0:: @ 088568A0 + .incbin "baserom.gba", 0x8568A0, 0x0000380 + +gUnk_08856C20:: @ 08856C20 + .incbin "baserom.gba", 0x856C20, 0x0000380 + +gUnk_08856FA0:: @ 08856FA0 + .incbin "baserom.gba", 0x856FA0, 0x0000380 + +gUnk_08857320:: @ 08857320 + .incbin "baserom.gba", 0x857320, 0x0000560 + +gUnk_08857880:: @ 08857880 + .incbin "baserom.gba", 0x857880, 0x0000480 + +gUnk_08857D00:: @ 08857D00 + .incbin "baserom.gba", 0x857D00, 0x000030A + +gUnk_0885800A:: @ 0885800A + .incbin "baserom.gba", 0x85800A, 0x0000176 + +gUnk_08858180:: @ 08858180 + .incbin "baserom.gba", 0x858180, 0x0000500 + +gUnk_08858680:: @ 08858680 + .incbin "baserom.gba", 0x858680, 0x00014C0 + +gUnk_08859B40:: @ 08859B40 + .incbin "baserom.gba", 0x859B40, 0x0000660 + +gUnk_0885A1A0:: @ 0885A1A0 + .incbin "baserom.gba", 0x85A1A0, 0x0001080 + +gUnk_0885B220:: @ 0885B220 + .incbin "baserom.gba", 0x85B220, 0x0000800 + +gUnk_0885BA20:: @ 0885BA20 + .incbin "baserom.gba", 0x85BA20, 0x0000800 + +gUnk_0885C220:: @ 0885C220 + .incbin "baserom.gba", 0x85C220, 0x0000500 + +gUnk_0885C720:: @ 0885C720 + .incbin "baserom.gba", 0x85C720, 0x0000500 + +gUnk_0885CC20:: @ 0885CC20 + .incbin "baserom.gba", 0x85CC20, 0x0001BF3 + +gUnk_0885E813:: @ 0885E813 + .incbin "baserom.gba", 0x85E813, 0x00000E5 + +gUnk_0885E8F8:: @ 0885E8F8 + .incbin "baserom.gba", 0x85E8F8, 0x00013A8 + +gUnk_0885FCA0:: @ 0885FCA0 + .incbin "baserom.gba", 0x85FCA0, 0x0000362 + +gUnk_08860002:: @ 08860002 + .incbin "baserom.gba", 0x860002, 0x00000CB + +gUnk_088600CD:: @ 088600CD + .incbin "baserom.gba", 0x8600CD, 0x0000075 + +gUnk_08860142:: @ 08860142 + .incbin "baserom.gba", 0x860142, 0x00007C1 + +gUnk_08860903:: @ 08860903 + .incbin "baserom.gba", 0x860903, 0x0000383 + +gUnk_08860C86:: @ 08860C86 + .incbin "baserom.gba", 0x860C86, 0x000028A + +gUnk_08860F10:: @ 08860F10 + .incbin "baserom.gba", 0x860F10, 0x0001770 + +gUnk_08862680:: @ 08862680 + .incbin "baserom.gba", 0x862680, 0x0000413 + +gUnk_08862A93:: @ 08862A93 + .incbin "baserom.gba", 0x862A93, 0x0001974 + +gUnk_08864407:: @ 08864407 + .incbin "baserom.gba", 0x864407, 0x0001C79 + +gUnk_08866080:: @ 08866080 + .incbin "baserom.gba", 0x866080, 0x00006F7 + +gUnk_08866777:: @ 08866777 + .incbin "baserom.gba", 0x866777, 0x0000BDE + +gUnk_08867355:: @ 08867355 + .incbin "baserom.gba", 0x867355, 0x0001498 + +gUnk_088687ED:: @ 088687ED + .incbin "baserom.gba", 0x8687ED, 0x0000253 + +gUnk_08868A40:: @ 08868A40 + .incbin "baserom.gba", 0x868A40, 0x0001F58 + +gUnk_0886A998:: @ 0886A998 + .incbin "baserom.gba", 0x86A998, 0x0000156 + +gUnk_0886AAEE:: @ 0886AAEE + .incbin "baserom.gba", 0x86AAEE, 0x0000367 + +gUnk_0886AE55:: @ 0886AE55 + .incbin "baserom.gba", 0x86AE55, 0x0000009 + +gUnk_0886AE5E:: @ 0886AE5E + .incbin "baserom.gba", 0x86AE5E, 0x00010C2 + +gUnk_0886BF20:: @ 0886BF20 + .incbin "baserom.gba", 0x86BF20, 0x0003900 + +gUnk_0886F820:: @ 0886F820 + .incbin "baserom.gba", 0x86F820, 0x00007E7 + +gUnk_08870007:: @ 08870007 + .incbin "baserom.gba", 0x870007, 0x000000A + +gUnk_08870011:: @ 08870011 + .incbin "baserom.gba", 0x870011, 0x000005A + +gUnk_0887006B:: @ 0887006B + .incbin "baserom.gba", 0x87006B, 0x000001B + +gUnk_08870086:: @ 08870086 + .incbin "baserom.gba", 0x870086, 0x00001E9 + +gUnk_0887026F:: @ 0887026F + .incbin "baserom.gba", 0x87026F, 0x0002691 + +gUnk_08872900:: @ 08872900 + .incbin "baserom.gba", 0x872900, 0x0002C80 + +gUnk_08875580:: @ 08875580 + .incbin "baserom.gba", 0x875580, 0x0001A83 + +gUnk_08877003:: @ 08877003 + .incbin "baserom.gba", 0x877003, 0x0000663 + +gUnk_08877666:: @ 08877666 + .incbin "baserom.gba", 0x877666, 0x0000107 + +gUnk_0887776D:: @ 0887776D + .incbin "baserom.gba", 0x87776D, 0x0000072 + +gUnk_088777DF:: @ 088777DF + .incbin "baserom.gba", 0x8777DF, 0x0000011 + +gUnk_088777F0:: @ 088777F0 + .incbin "baserom.gba", 0x8777F0, 0x00010BF + +gUnk_088788AF:: @ 088788AF + .incbin "baserom.gba", 0x8788AF, 0x00001D1 + +gUnk_08878A80:: @ 08878A80 + .incbin "baserom.gba", 0x878A80, 0x000142B + +gUnk_08879EAB:: @ 08879EAB + .incbin "baserom.gba", 0x879EAB, 0x0001355 + +gUnk_0887B200:: @ 0887B200 + .incbin "baserom.gba", 0x87B200, 0x0002EA0 + +gUnk_0887E0A0:: @ 0887E0A0 + .incbin "baserom.gba", 0x87E0A0, 0x0000668 + +gUnk_0887E708:: @ 0887E708 + .incbin "baserom.gba", 0x87E708, 0x00018F8 + +gUnk_08880000:: @ 08880000 + .incbin "baserom.gba", 0x880000, 0x00000AA + +gUnk_088800AA:: @ 088800AA + .incbin "baserom.gba", 0x8800AA, 0x0000056 + +gUnk_08880100:: @ 08880100 + .incbin "baserom.gba", 0x880100, 0x0000087 + +gUnk_08880187:: @ 08880187 + .incbin "baserom.gba", 0x880187, 0x000028D + +gUnk_08880414:: @ 08880414 + .incbin "baserom.gba", 0x880414, 0x00003F4 + +gUnk_08880808:: @ 08880808 + .incbin "baserom.gba", 0x880808, 0x000098B + +gUnk_08881193:: @ 08881193 + .incbin "baserom.gba", 0x881193, 0x000022D + +gUnk_088813C0:: @ 088813C0 + .incbin "baserom.gba", 0x8813C0, 0x000050C + +gUnk_088818CC:: @ 088818CC + .incbin "baserom.gba", 0x8818CC, 0x0000975 + +gUnk_08882241:: @ 08882241 + .incbin "baserom.gba", 0x882241, 0x0000747 + +gUnk_08882988:: @ 08882988 + .incbin "baserom.gba", 0x882988, 0x0000A13 + +gUnk_0888339B:: @ 0888339B + .incbin "baserom.gba", 0x88339B, 0x0000B05 + +gUnk_08883EA0:: @ 08883EA0 + .incbin "baserom.gba", 0x883EA0, 0x0001F00 + +gUnk_08885DA0:: @ 08885DA0 + .incbin "baserom.gba", 0x885DA0, 0x00019D7 + +gUnk_08887777:: @ 08887777 + .incbin "baserom.gba", 0x887777, 0x0000889 + +gUnk_08888000:: @ 08888000 + .incbin "baserom.gba", 0x888000, 0x0000188 + +gUnk_08888188:: @ 08888188 + .incbin "baserom.gba", 0x888188, 0x0000414 + +gUnk_0888859C:: @ 0888859C + .incbin "baserom.gba", 0x88859C, 0x00001CA + +gUnk_08888766:: @ 08888766 + .incbin "baserom.gba", 0x888766, 0x000000A + +gUnk_08888770:: @ 08888770 + .incbin "baserom.gba", 0x888770, 0x0000090 + +gUnk_08888800:: @ 08888800 + .incbin "baserom.gba", 0x888800, 0x0000080 + +gUnk_08888880:: @ 08888880 + .incbin "baserom.gba", 0x888880, 0x0000008 + +gUnk_08888888:: @ 08888888 + .incbin "baserom.gba", 0x888888, 0x0000001 + +gUnk_08888889:: @ 08888889 + .incbin "baserom.gba", 0x888889, 0x0000010 + +gUnk_08888899:: @ 08888899 + .incbin "baserom.gba", 0x888899, 0x00000EF + +gUnk_08888988:: @ 08888988 + .incbin "baserom.gba", 0x888988, 0x0000012 + +gUnk_0888899A:: @ 0888899A + .incbin "baserom.gba", 0x88899A, 0x0000110 + +gUnk_08888AAA:: @ 08888AAA + .incbin "baserom.gba", 0x888AAA, 0x000043B + +gUnk_08888EE5:: @ 08888EE5 + .incbin "baserom.gba", 0x888EE5, 0x0000093 + +gUnk_08888F78:: @ 08888F78 + .incbin "baserom.gba", 0x888F78, 0x0000912 + +gUnk_0888988A:: @ 0888988A + .incbin "baserom.gba", 0x88988A, 0x0000076 + +gUnk_08889900:: @ 08889900 + .incbin "baserom.gba", 0x889900, 0x000008E + +gUnk_0888998E:: @ 0888998E + .incbin "baserom.gba", 0x88998E, 0x000000B + +gUnk_08889999:: @ 08889999 + .incbin "baserom.gba", 0x889999, 0x0000011 + +gUnk_088899AA:: @ 088899AA + .incbin "baserom.gba", 0x8899AA, 0x00003F6 + +gUnk_08889DA0:: @ 08889DA0 + .incbin "baserom.gba", 0x889DA0, 0x000014E + +gUnk_08889EEE:: @ 08889EEE + .incbin "baserom.gba", 0x889EEE, 0x0000BAC + +gUnk_0888AA9A:: @ 0888AA9A + .incbin "baserom.gba", 0x88AA9A, 0x0000066 + +gUnk_0888AB00:: @ 0888AB00 + .incbin "baserom.gba", 0x88AB00, 0x0000311 + +gUnk_0888AE11:: @ 0888AE11 + .incbin "baserom.gba", 0x88AE11, 0x00001F7 + +gUnk_0888B008:: @ 0888B008 + .incbin "baserom.gba", 0x88B008, 0x0002D18 + +gUnk_0888DD20:: @ 0888DD20 + .incbin "baserom.gba", 0x88DD20, 0x0000140 + +gUnk_0888DE60:: @ 0888DE60 + .incbin "baserom.gba", 0x88DE60, 0x0001B00 + +gUnk_0888F960:: @ 0888F960 + .incbin "baserom.gba", 0x88F960, 0x00006A0 + +gUnk_08890000:: @ 08890000 + .incbin "baserom.gba", 0x890000, 0x000003C + +gUnk_0889003C:: @ 0889003C + .incbin "baserom.gba", 0x89003C, 0x0000014 + +gUnk_08890050:: @ 08890050 + .incbin "baserom.gba", 0x890050, 0x0000028 + +gUnk_08890078:: @ 08890078 + .incbin "baserom.gba", 0x890078, 0x0000008 + +gUnk_08890080:: @ 08890080 + .incbin "baserom.gba", 0x890080, 0x0000034 + +gUnk_088900B4:: @ 088900B4 + .incbin "baserom.gba", 0x8900B4, 0x00000B4 + +gUnk_08890168:: @ 08890168 + .incbin "baserom.gba", 0x890168, 0x0000058 + +gUnk_088901C0:: @ 088901C0 + .incbin "baserom.gba", 0x8901C0, 0x0000098 + +gUnk_08890258:: @ 08890258 + .incbin "baserom.gba", 0x890258, 0x00001A9 + +gUnk_08890401:: @ 08890401 + .incbin "baserom.gba", 0x890401, 0x0000048 + +gUnk_08890449:: @ 08890449 + .incbin "baserom.gba", 0x890449, 0x0000010 + +gUnk_08890459:: @ 08890459 + .incbin "baserom.gba", 0x890459, 0x000001D + +gUnk_08890476:: @ 08890476 + .incbin "baserom.gba", 0x890476, 0x0000012 + +gUnk_08890488:: @ 08890488 + .incbin "baserom.gba", 0x890488, 0x0000378 + +gUnk_08890800:: @ 08890800 + .incbin "baserom.gba", 0x890800, 0x0000006 + +gUnk_08890806:: @ 08890806 + .incbin "baserom.gba", 0x890806, 0x0000001 + +gUnk_08890807:: @ 08890807 + .incbin "baserom.gba", 0x890807, 0x00000C5 + +gUnk_088908CC:: @ 088908CC + .incbin "baserom.gba", 0x8908CC, 0x000063A + +gUnk_08890F06:: @ 08890F06 + .incbin "baserom.gba", 0x890F06, 0x00000BA + +gUnk_08890FC0:: @ 08890FC0 + .incbin "baserom.gba", 0x890FC0, 0x000116E + +gUnk_0889212E:: @ 0889212E + .incbin "baserom.gba", 0x89212E, 0x0000B12 + +gUnk_08892C40:: @ 08892C40 + .incbin "baserom.gba", 0x892C40, 0x0002300 + +gUnk_08894F40:: @ 08894F40 + .incbin "baserom.gba", 0x894F40, 0x0001749 + +gUnk_08896689:: @ 08896689 + .incbin "baserom.gba", 0x896689, 0x0000D37 + +gUnk_088973C0:: @ 088973C0 + .incbin "baserom.gba", 0x8973C0, 0x0000440 + +gUnk_08897800:: @ 08897800 + .incbin "baserom.gba", 0x897800, 0x00008C0 + +gUnk_088980C0:: @ 088980C0 + .incbin "baserom.gba", 0x8980C0, 0x0000495 + +gUnk_08898555:: @ 08898555 + .incbin "baserom.gba", 0x898555, 0x0000445 + +gUnk_0889899A:: @ 0889899A + .incbin "baserom.gba", 0x89899A, 0x0000011 + +gUnk_088989AB:: @ 088989AB + .incbin "baserom.gba", 0x8989AB, 0x0000515 + +gUnk_08898EC0:: @ 08898EC0 + .incbin "baserom.gba", 0x898EC0, 0x00000B7 + +gUnk_08898F77:: @ 08898F77 + .incbin "baserom.gba", 0x898F77, 0x00002C9 + +gUnk_08899240:: @ 08899240 + .incbin "baserom.gba", 0x899240, 0x00004C0 + +gUnk_08899700:: @ 08899700 + .incbin "baserom.gba", 0x899700, 0x0000298 + +gUnk_08899998:: @ 08899998 + .incbin "baserom.gba", 0x899998, 0x0000001 + +gUnk_08899999:: @ 08899999 + .incbin "baserom.gba", 0x899999, 0x000004B + +gUnk_088999E4:: @ 088999E4 + .incbin "baserom.gba", 0x8999E4, 0x0000093 + +gUnk_08899A77:: @ 08899A77 + .incbin "baserom.gba", 0x899A77, 0x0000033 + +gUnk_08899AAA:: @ 08899AAA + .incbin "baserom.gba", 0x899AAA, 0x00000B6 + +gUnk_08899B60:: @ 08899B60 + .incbin "baserom.gba", 0x899B60, 0x00002E0 + +gUnk_08899E40:: @ 08899E40 + .incbin "baserom.gba", 0x899E40, 0x00007A0 + +gUnk_0889A5E0:: @ 0889A5E0 + .incbin "baserom.gba", 0x89A5E0, 0x0000300 + +gUnk_0889A8E0:: @ 0889A8E0 + .incbin "baserom.gba", 0x89A8E0, 0x00001BE + +gUnk_0889AA9E:: @ 0889AA9E + .incbin "baserom.gba", 0x89AA9E, 0x0000004 + +gUnk_0889AAA2:: @ 0889AAA2 + .incbin "baserom.gba", 0x89AAA2, 0x0000008 + +gUnk_0889AAAA:: @ 0889AAAA + .incbin "baserom.gba", 0x89AAAA, 0x0000001 + +gUnk_0889AAAB:: @ 0889AAAB + .incbin "baserom.gba", 0x89AAAB, 0x0000010 + +gUnk_0889AABB:: @ 0889AABB + .incbin "baserom.gba", 0x89AABB, 0x0000100 + +gUnk_0889ABBB:: @ 0889ABBB + .incbin "baserom.gba", 0x89ABBB, 0x0000001 + +gUnk_0889ABBC:: @ 0889ABBC + .incbin "baserom.gba", 0x89ABBC, 0x0000C24 + +gUnk_0889B7E0:: @ 0889B7E0 + .incbin "baserom.gba", 0x89B7E0, 0x0000360 + +gUnk_0889BB40:: @ 0889BB40 + .incbin "baserom.gba", 0x89BB40, 0x000018C + +gUnk_0889BCCC:: @ 0889BCCC + .incbin "baserom.gba", 0x89BCCC, 0x00005F4 + +gUnk_0889C2C0:: @ 0889C2C0 + .incbin "baserom.gba", 0x89C2C0, 0x0000400 + +gUnk_0889C6C0:: @ 0889C6C0 + .incbin "baserom.gba", 0x89C6C0, 0x000005C + +gUnk_0889C71C:: @ 0889C71C + .incbin "baserom.gba", 0x89C71C, 0x0000324 + +gUnk_0889CA40:: @ 0889CA40 + .incbin "baserom.gba", 0x89CA40, 0x00005B0 + +gUnk_0889CFF0:: @ 0889CFF0 + .incbin "baserom.gba", 0x89CFF0, 0x0000450 + +gUnk_0889D440:: @ 0889D440 + .incbin "baserom.gba", 0x89D440, 0x0000A00 + +gUnk_0889DE40:: @ 0889DE40 + .incbin "baserom.gba", 0x89DE40, 0x0000300 + +gUnk_0889E140:: @ 0889E140 + .incbin "baserom.gba", 0x89E140, 0x00003D1 + +gUnk_0889E511:: @ 0889E511 + .incbin "baserom.gba", 0x89E511, 0x00000EF + +gUnk_0889E600:: @ 0889E600 + .incbin "baserom.gba", 0x89E600, 0x00007C0 + +gUnk_0889EDC0:: @ 0889EDC0 + .incbin "baserom.gba", 0x89EDC0, 0x000012E + +gUnk_0889EEEE:: @ 0889EEEE + .incbin "baserom.gba", 0x89EEEE, 0x00009F2 + +gUnk_0889F8E0:: @ 0889F8E0 + .incbin "baserom.gba", 0x89F8E0, 0x00007D3 + +gUnk_088A00B3:: @ 088A00B3 + .incbin "baserom.gba", 0x8A00B3, 0x000000D + +gUnk_088A00C0:: @ 088A00C0 + .incbin "baserom.gba", 0x8A00C0, 0x0000360 + +gUnk_088A0420:: @ 088A0420 + .incbin "baserom.gba", 0x8A0420, 0x0000469 + +gUnk_088A0889:: @ 088A0889 + .incbin "baserom.gba", 0x8A0889, 0x0000024 + +gUnk_088A08AD:: @ 088A08AD + .incbin "baserom.gba", 0x8A08AD, 0x0000433 + +gUnk_088A0CE0:: @ 088A0CE0 + .incbin "baserom.gba", 0x8A0CE0, 0x000007F + +gUnk_088A0D5F:: @ 088A0D5F + .incbin "baserom.gba", 0x8A0D5F, 0x000062F + +gUnk_088A138E:: @ 088A138E + .incbin "baserom.gba", 0x8A138E, 0x0000112 + +gUnk_088A14A0:: @ 088A14A0 + .incbin "baserom.gba", 0x8A14A0, 0x0000DC0 + +gUnk_088A2260:: @ 088A2260 + .incbin "baserom.gba", 0x8A2260, 0x00000E5 + +gUnk_088A2345:: @ 088A2345 + .incbin "baserom.gba", 0x8A2345, 0x000021B + +gUnk_088A2560:: @ 088A2560 + .incbin "baserom.gba", 0x8A2560, 0x00002A8 + +gUnk_088A2808:: @ 088A2808 + .incbin "baserom.gba", 0x8A2808, 0x0000038 + +gUnk_088A2840:: @ 088A2840 + .incbin "baserom.gba", 0x8A2840, 0x0000500 + +gUnk_088A2D40:: @ 088A2D40 + .incbin "baserom.gba", 0x8A2D40, 0x00007C0 + +gUnk_088A3500:: @ 088A3500 + .incbin "baserom.gba", 0x8A3500, 0x0000300 + +gUnk_088A3800:: @ 088A3800 + .incbin "baserom.gba", 0x8A3800, 0x00007A0 + +gUnk_088A3FA0:: @ 088A3FA0 + .incbin "baserom.gba", 0x8A3FA0, 0x0000500 + +gUnk_088A44A0:: @ 088A44A0 + .incbin "baserom.gba", 0x8A44A0, 0x00003C0 + +gUnk_088A4860:: @ 088A4860 + .incbin "baserom.gba", 0x8A4860, 0x00009A0 + +gUnk_088A5200:: @ 088A5200 + .incbin "baserom.gba", 0x8A5200, 0x0000DC0 + +gUnk_088A5FC0:: @ 088A5FC0 + .incbin "baserom.gba", 0x8A5FC0, 0x00003A0 + +gUnk_088A6360:: @ 088A6360 + .incbin "baserom.gba", 0x8A6360, 0x0000980 + +gUnk_088A6CE0:: @ 088A6CE0 + .incbin "baserom.gba", 0x8A6CE0, 0x00007C0 + +gUnk_088A74A0:: @ 088A74A0 + .incbin "baserom.gba", 0x8A74A0, 0x0000408 + +gUnk_088A78A8:: @ 088A78A8 + .incbin "baserom.gba", 0x8A78A8, 0x0000139 + +gUnk_088A79E1:: @ 088A79E1 + .incbin "baserom.gba", 0x8A79E1, 0x00002DF + +gUnk_088A7CC0:: @ 088A7CC0 + .incbin "baserom.gba", 0x8A7CC0, 0x0000340 + +gUnk_088A8000:: @ 088A8000 + .incbin "baserom.gba", 0x8A8000, 0x0000500 + +gUnk_088A8500:: @ 088A8500 + .incbin "baserom.gba", 0x8A8500, 0x0000500 + +gUnk_088A8A00:: @ 088A8A00 + .incbin "baserom.gba", 0x8A8A00, 0x00001CA + +gUnk_088A8BCA:: @ 088A8BCA + .incbin "baserom.gba", 0x8A8BCA, 0x00005F6 + +gUnk_088A91C0:: @ 088A91C0 + .incbin "baserom.gba", 0x8A91C0, 0x0000660 + +gUnk_088A9820:: @ 088A9820 + .incbin "baserom.gba", 0x8A9820, 0x0000179 + +gUnk_088A9999:: @ 088A9999 + .incbin "baserom.gba", 0x8A9999, 0x0000247 + +gUnk_088A9BE0:: @ 088A9BE0 + .incbin "baserom.gba", 0x8A9BE0, 0x0000460 + +gUnk_088AA040:: @ 088AA040 + .incbin "baserom.gba", 0x8AA040, 0x0000380 + +gUnk_088AA3C0:: @ 088AA3C0 + .incbin "baserom.gba", 0x8AA3C0, 0x00004E0 + +gUnk_088AA8A0:: @ 088AA8A0 + .incbin "baserom.gba", 0x8AA8A0, 0x0000209 + +gUnk_088AAAA9:: @ 088AAAA9 + .incbin "baserom.gba", 0x8AAAA9, 0x0000137 + +gUnk_088AABE0:: @ 088AABE0 + .incbin "baserom.gba", 0x8AABE0, 0x00006A0 + +gUnk_088AB280:: @ 088AB280 + .incbin "baserom.gba", 0x8AB280, 0x00008A4 + +gUnk_088ABB24:: @ 088ABB24 + .incbin "baserom.gba", 0x8ABB24, 0x00000DC + +gUnk_088ABC00:: @ 088ABC00 + .incbin "baserom.gba", 0x8ABC00, 0x00001D6 + +gUnk_088ABDD6:: @ 088ABDD6 + .incbin "baserom.gba", 0x8ABDD6, 0x000040A + +gUnk_088AC1E0:: @ 088AC1E0 + .incbin "baserom.gba", 0x8AC1E0, 0x00008A0 + +gUnk_088ACA80:: @ 088ACA80 + .incbin "baserom.gba", 0x8ACA80, 0x000024B + +gUnk_088ACCCB:: @ 088ACCCB + .incbin "baserom.gba", 0x8ACCCB, 0x0000675 + +gUnk_088AD340:: @ 088AD340 + .incbin "baserom.gba", 0x8AD340, 0x00005A0 + +gUnk_088AD8E0:: @ 088AD8E0 + .incbin "baserom.gba", 0x8AD8E0, 0x0000620 + +gUnk_088ADF00:: @ 088ADF00 + .incbin "baserom.gba", 0x8ADF00, 0x0000F00 + +gUnk_088AEE00:: @ 088AEE00 + .incbin "baserom.gba", 0x8AEE00, 0x00000EE + +gUnk_088AEEEE:: @ 088AEEEE + .incbin "baserom.gba", 0x8AEEEE, 0x0000552 + +gUnk_088AF440:: @ 088AF440 + .incbin "baserom.gba", 0x8AF440, 0x00012C0 + +gUnk_088B0700:: @ 088B0700 + .incbin "baserom.gba", 0x8B0700, 0x000018A + +gUnk_088B088A:: @ 088B088A + .incbin "baserom.gba", 0x8B088A, 0x0001136 + +gUnk_088B19C0:: @ 088B19C0 + .incbin "baserom.gba", 0x8B19C0, 0x000076E + +gUnk_088B212E:: @ 088B212E + .incbin "baserom.gba", 0x8B212E, 0x0001032 + +gUnk_088B3160:: @ 088B3160 + .incbin "baserom.gba", 0x8B3160, 0x00019A0 + +gUnk_088B4B00:: @ 088B4B00 + .incbin "baserom.gba", 0x8B4B00, 0x0001300 + +gUnk_088B5E00:: @ 088B5E00 + .incbin "baserom.gba", 0x8B5E00, 0x0001EA0 + +gUnk_088B7CA0:: @ 088B7CA0 + .incbin "baserom.gba", 0x8B7CA0, 0x0001640 + +gUnk_088B92E0:: @ 088B92E0 + .incbin "baserom.gba", 0x8B92E0, 0x00010AB + +gUnk_088BA38B:: @ 088BA38B + .incbin "baserom.gba", 0x8BA38B, 0x0000715 + +gUnk_088BAAA0:: @ 088BAAA0 + .incbin "baserom.gba", 0x8BAAA0, 0x000001B + +gUnk_088BAABB:: @ 088BAABB + .incbin "baserom.gba", 0x8BAABB, 0x00000D0 + +gUnk_088BAB8B:: @ 088BAB8B + .incbin "baserom.gba", 0x8BAB8B, 0x0000D15 + +gUnk_088BB8A0:: @ 088BB8A0 + .incbin "baserom.gba", 0x8BB8A0, 0x0000580 + +gUnk_088BBE20:: @ 088BBE20 + .incbin "baserom.gba", 0x8BBE20, 0x0000C40 + +gUnk_088BCA60:: @ 088BCA60 + .incbin "baserom.gba", 0x8BCA60, 0x0001100 + +gUnk_088BDB60:: @ 088BDB60 + .incbin "baserom.gba", 0x8BDB60, 0x0001304 + +gUnk_088BEE64:: @ 088BEE64 + .incbin "baserom.gba", 0x8BEE64, 0x000127C + +gUnk_088C00E0:: @ 088C00E0 + .incbin "baserom.gba", 0x8C00E0, 0x0000220 + +gUnk_088C0300:: @ 088C0300 + .incbin "baserom.gba", 0x8C0300, 0x000035C + +gUnk_088C065C:: @ 088C065C + .incbin "baserom.gba", 0x8C065C, 0x00002A4 + +gUnk_088C0900:: @ 088C0900 + .incbin "baserom.gba", 0x8C0900, 0x000598C + +gUnk_088C628C:: @ 088C628C + .incbin "baserom.gba", 0x8C628C, 0x00003FC + +gUnk_088C6688:: @ 088C6688 + .incbin "baserom.gba", 0x8C6688, 0x00016A8 + +gUnk_088C7D30:: @ 088C7D30 + .incbin "baserom.gba", 0x8C7D30, 0x0007178 + +gUnk_088CEEA8:: @ 088CEEA8 + .incbin "baserom.gba", 0x8CEEA8, 0x0001162 + +gUnk_088D000A:: @ 088D000A + .incbin "baserom.gba", 0x8D000A, 0x0000982 + +gUnk_088D098C:: @ 088D098C + .incbin "baserom.gba", 0x8D098C, 0x0001A31 + +gUnk_088D23BD:: @ 088D23BD + .incbin "baserom.gba", 0x8D23BD, 0x0001343 + +gUnk_088D3700:: @ 088D3700 + .incbin "baserom.gba", 0x8D3700, 0x0000FC8 + +gUnk_088D46C8:: @ 088D46C8 + .incbin "baserom.gba", 0x8D46C8, 0x0002078 + +gUnk_088D6740:: @ 088D6740 + .incbin "baserom.gba", 0x8D6740, 0x00020F3 + +gUnk_088D8833:: @ 088D8833 + .incbin "baserom.gba", 0x8D8833, 0x0001AD5 + +gUnk_088DA308:: @ 088DA308 + .incbin "baserom.gba", 0x8DA308, 0x00030A4 + +gUnk_088DD3AC:: @ 088DD3AC + .incbin "baserom.gba", 0x8DD3AC, 0x0002C5B + +gUnk_088E0007:: @ 088E0007 + .incbin "baserom.gba", 0x8E0007, 0x0000088 + +gUnk_088E008F:: @ 088E008F + .incbin "baserom.gba", 0x8E008F, 0x0000075 + +gUnk_088E0104:: @ 088E0104 + .incbin "baserom.gba", 0x8E0104, 0x0000231 + +gUnk_088E0335:: @ 088E0335 + .incbin "baserom.gba", 0x8E0335, 0x0000159 + +gUnk_088E048E:: @ 088E048E + .incbin "baserom.gba", 0x8E048E, 0x0000FEB + +gUnk_088E1479:: @ 088E1479 + .incbin "baserom.gba", 0x8E1479, 0x0005A09 + +gUnk_088E6E82:: @ 088E6E82 + .incbin "baserom.gba", 0x8E6E82, 0x0000EF7 + +gUnk_088E7D79:: @ 088E7D79 + .incbin "baserom.gba", 0x8E7D79, 0x0004315 + +gUnk_088EC08E:: @ 088EC08E + .incbin "baserom.gba", 0x8EC08E, 0x0002E60 + +gUnk_088EEEEE:: @ 088EEEEE + .incbin "baserom.gba", 0x8EEEEE, 0x0001292 + +gUnk_088F0180:: @ 088F0180 + .incbin "baserom.gba", 0x8F0180, 0x000020D + +gUnk_088F038D:: @ 088F038D + .incbin "baserom.gba", 0x8F038D, 0x0000DC4 + +gUnk_088F1151:: @ 088F1151 + .incbin "baserom.gba", 0x8F1151, 0x000045D + +gUnk_088F15AE:: @ 088F15AE + .incbin "baserom.gba", 0x8F15AE, 0x0002FB8 + +gUnk_088F4566:: @ 088F4566 + .incbin "baserom.gba", 0x8F4566, 0x000119C + +gUnk_088F5702:: @ 088F5702 + .incbin "baserom.gba", 0x8F5702, 0x0005186 + +gUnk_088FA888:: @ 088FA888 + .incbin "baserom.gba", 0x8FA888, 0x0000107 + +gUnk_088FA98F:: @ 088FA98F + .incbin "baserom.gba", 0x8FA98F, 0x000422C + +gUnk_088FEBBB:: @ 088FEBBB + .incbin "baserom.gba", 0x8FEBBB, 0x0000BCD + +gUnk_088FF788:: @ 088FF788 + .incbin "baserom.gba", 0x8FF788, 0x0000878 + +gUnk_08900000:: @ 08900000 + .incbin "baserom.gba", 0x900000, 0x0000099 + +gUnk_08900099:: @ 08900099 + .incbin "baserom.gba", 0x900099, 0x0000035 + +gUnk_089000CE:: @ 089000CE + .incbin "baserom.gba", 0x9000CE, 0x0000042 + +gUnk_08900110:: @ 08900110 + .incbin "baserom.gba", 0x900110, 0x0000270 + +gUnk_08900380:: @ 08900380 + .incbin "baserom.gba", 0x900380, 0x00002A0 + +gUnk_08900620:: @ 08900620 + .incbin "baserom.gba", 0x900620, 0x0003D2B + +gUnk_0890434B:: @ 0890434B + .incbin "baserom.gba", 0x90434B, 0x0009DB3 + +gUnk_0890E0FE:: @ 0890E0FE + .incbin "baserom.gba", 0x90E0FE, 0x0000302 + +gUnk_0890E400:: @ 0890E400 + .incbin "baserom.gba", 0x90E400, 0x0000004 + +gUnk_0890E404:: @ 0890E404 + .incbin "baserom.gba", 0x90E404, 0x0000100 + +gUnk_0890E504:: @ 0890E504 + .incbin "baserom.gba", 0x90E504, 0x0000100 + +gUnk_0890E604:: @ 0890E604 + .incbin "baserom.gba", 0x90E604, 0x00002FB + +gUnk_0890E8FF:: @ 0890E8FF + .incbin "baserom.gba", 0x90E8FF, 0x00007E9 + +gUnk_0890F0E8:: @ 0890F0E8 + .incbin "baserom.gba", 0x90F0E8, 0x0000F18 + +gUnk_08910000:: @ 08910000 + .incbin "baserom.gba", 0x910000, 0x0000007 + +gUnk_08910007:: @ 08910007 + .incbin "baserom.gba", 0x910007, 0x00002F9 + +gUnk_08910300:: @ 08910300 + .incbin "baserom.gba", 0x910300, 0x0000168 + +gUnk_08910468:: @ 08910468 + .incbin "baserom.gba", 0x910468, 0x0000398 + +gUnk_08910800:: @ 08910800 + .incbin "baserom.gba", 0x910800, 0x0000090 + +gUnk_08910890:: @ 08910890 + .incbin "baserom.gba", 0x910890, 0x0000993 + +gUnk_08911223:: @ 08911223 + .incbin "baserom.gba", 0x911223, 0x0000776 + +gUnk_08911999:: @ 08911999 + .incbin "baserom.gba", 0x911999, 0x0000467 + +gUnk_08911E00:: @ 08911E00 + .incbin "baserom.gba", 0x911E00, 0x0002418 + +gUnk_08914218:: @ 08914218 + .incbin "baserom.gba", 0x914218, 0x000012E + +gUnk_08914346:: @ 08914346 + .incbin "baserom.gba", 0x914346, 0x00003BA + +gUnk_08914700:: @ 08914700 + .incbin "baserom.gba", 0x914700, 0x0002BFF + +gUnk_089172FF:: @ 089172FF + .incbin "baserom.gba", 0x9172FF, 0x0000589 + +gUnk_08917888:: @ 08917888 + .incbin "baserom.gba", 0x917888, 0x0000345 + +gUnk_08917BCD:: @ 08917BCD + .incbin "baserom.gba", 0x917BCD, 0x0000FBE + +gUnk_08918B8B:: @ 08918B8B + .incbin "baserom.gba", 0x918B8B, 0x000250E + +gUnk_0891B099:: @ 0891B099 + .incbin "baserom.gba", 0x91B099, 0x0000A11 + +gUnk_0891BAAA:: @ 0891BAAA + .incbin "baserom.gba", 0x91BAAA, 0x0002757 + +gUnk_0891E201:: @ 0891E201 + .incbin "baserom.gba", 0x91E201, 0x0001D00 + +gUnk_0891FF01:: @ 0891FF01 + .incbin "baserom.gba", 0x91FF01, 0x00000EF + +gUnk_0891FFF0:: @ 0891FFF0 + .incbin "baserom.gba", 0x91FFF0, 0x0000010 + +gUnk_08920000:: @ 08920000 + .incbin "baserom.gba", 0x920000, 0x0000120 + +gUnk_08920120:: @ 08920120 + .incbin "baserom.gba", 0x920120, 0x0000672 + +gUnk_08920792:: @ 08920792 + .incbin "baserom.gba", 0x920792, 0x00000FF + +gUnk_08920891:: @ 08920891 + .incbin "baserom.gba", 0x920891, 0x0000802 + +gUnk_08921093:: @ 08921093 + .incbin "baserom.gba", 0x921093, 0x00001F7 + +gUnk_0892128A:: @ 0892128A + .incbin "baserom.gba", 0x92128A, 0x0001B9F + +gUnk_08922E29:: @ 08922E29 + .incbin "baserom.gba", 0x922E29, 0x0004969 + +gUnk_08927792:: @ 08927792 + .incbin "baserom.gba", 0x927792, 0x0000305 + +gUnk_08927A97:: @ 08927A97 + .incbin "baserom.gba", 0x927A97, 0x0001520 + +gUnk_08928FB7:: @ 08928FB7 + .incbin "baserom.gba", 0x928FB7, 0x00003DA + +gUnk_08929391:: @ 08929391 + .incbin "baserom.gba", 0x929391, 0x00000C6 + +gUnk_08929457:: @ 08929457 + .incbin "baserom.gba", 0x929457, 0x0000879 + +gUnk_08929CD0:: @ 08929CD0 + .incbin "baserom.gba", 0x929CD0, 0x00001B9 + +gUnk_08929E89:: @ 08929E89 + .incbin "baserom.gba", 0x929E89, 0x0003465 + +gUnk_0892D2EE:: @ 0892D2EE + .incbin "baserom.gba", 0x92D2EE, 0x0000FAB + +gUnk_0892E299:: @ 0892E299 + .incbin "baserom.gba", 0x92E299, 0x00000F9 + +gUnk_0892E392:: @ 0892E392 + .incbin "baserom.gba", 0x92E392, 0x0000A90 + +gUnk_0892EE22:: @ 0892EE22 + .incbin "baserom.gba", 0x92EE22, 0x000000B + +gUnk_0892EE2D:: @ 0892EE2D + .incbin "baserom.gba", 0x92EE2D, 0x00011D3 + +gUnk_08930000:: @ 08930000 + .incbin "baserom.gba", 0x930000, 0x0000010 + +gUnk_08930010:: @ 08930010 + .incbin "baserom.gba", 0x930010, 0x0000773 + +gUnk_08930783:: @ 08930783 + .incbin "baserom.gba", 0x930783, 0x0000010 + +gUnk_08930793:: @ 08930793 + .incbin "baserom.gba", 0x930793, 0x00000FF + +gUnk_08930892:: @ 08930892 + .incbin "baserom.gba", 0x930892, 0x0001FB2 + +gUnk_08932844:: @ 08932844 + .incbin "baserom.gba", 0x932844, 0x00016BC + +gUnk_08933F00:: @ 08933F00 + .incbin "baserom.gba", 0x933F00, 0x0002200 + +gUnk_08936100:: @ 08936100 + .incbin "baserom.gba", 0x936100, 0x00020A6 + +gUnk_089381A6:: @ 089381A6 + .incbin "baserom.gba", 0x9381A6, 0x0000EC1 + +gUnk_08939067:: @ 08939067 + .incbin "baserom.gba", 0x939067, 0x000032C + +gUnk_08939393:: @ 08939393 + .incbin "baserom.gba", 0x939393, 0x00071F8 + +gUnk_0894058B:: @ 0894058B + .incbin "baserom.gba", 0x94058B, 0x0000308 + +gUnk_08940893:: @ 08940893 + .incbin "baserom.gba", 0x940893, 0x0000B9C + +gUnk_0894142F:: @ 0894142F + .incbin "baserom.gba", 0x94142F, 0x0000CD1 + +gUnk_08942100:: @ 08942100 + .incbin "baserom.gba", 0x942100, 0x0000267 + +gUnk_08942367:: @ 08942367 + .incbin "baserom.gba", 0x942367, 0x00010DF + +gUnk_08943446:: @ 08943446 + .incbin "baserom.gba", 0x943446, 0x0000DDB + +gUnk_08944221:: @ 08944221 + .incbin "baserom.gba", 0x944221, 0x00006DD + +gUnk_089448FE:: @ 089448FE + .incbin "baserom.gba", 0x9448FE, 0x0000C57 + +gUnk_08945555:: @ 08945555 + .incbin "baserom.gba", 0x945555, 0x0003F18 + +gUnk_0894946D:: @ 0894946D + .incbin "baserom.gba", 0x94946D, 0x0001760 + +gUnk_0894ABCD:: @ 0894ABCD + .incbin "baserom.gba", 0x94ABCD, 0x0001FEE + +gUnk_0894CBBB:: @ 0894CBBB + .incbin "baserom.gba", 0x94CBBB, 0x000344C + +gUnk_08950007:: @ 08950007 + .incbin "baserom.gba", 0x950007, 0x00008F9 + +gUnk_08950900:: @ 08950900 + .incbin "baserom.gba", 0x950900, 0x0002600 + +gUnk_08952F00:: @ 08952F00 + .incbin "baserom.gba", 0x952F00, 0x0000791 + +gUnk_08953691:: @ 08953691 + .incbin "baserom.gba", 0x953691, 0x000076F + +gUnk_08953E00:: @ 08953E00 + .incbin "baserom.gba", 0x953E00, 0x0001654 + +gUnk_08955454:: @ 08955454 + .incbin "baserom.gba", 0x955454, 0x00000F0 + +gUnk_08955544:: @ 08955544 + .incbin "baserom.gba", 0x955544, 0x0000011 + +gUnk_08955555:: @ 08955555 + .incbin "baserom.gba", 0x955555, 0x0003B72 + +gUnk_089590C7:: @ 089590C7 + .incbin "baserom.gba", 0x9590C7, 0x0001642 + +gUnk_0895A709:: @ 0895A709 + .incbin "baserom.gba", 0x95A709, 0x00058F7 + +gUnk_08960000:: @ 08960000 + .incbin "baserom.gba", 0x960000, 0x0000132 + +gUnk_08960132:: @ 08960132 + .incbin "baserom.gba", 0x960132, 0x0000B5E + +gUnk_08960C90:: @ 08960C90 + .incbin "baserom.gba", 0x960C90, 0x00000A4 + +gUnk_08960D34:: @ 08960D34 + .incbin "baserom.gba", 0x960D34, 0x00004E2 + +gUnk_08961216:: @ 08961216 + .incbin "baserom.gba", 0x961216, 0x000CBD8 + +gUnk_0896DDEE:: @ 0896DDEE + .incbin "baserom.gba", 0x96DDEE, 0x0002212 + +gUnk_08970000:: @ 08970000 + .incbin "baserom.gba", 0x970000, 0x000000A + +gUnk_0897000A:: @ 0897000A + .incbin "baserom.gba", 0x97000A, 0x0000009 + +gUnk_08970013:: @ 08970013 + .incbin "baserom.gba", 0x970013, 0x000002D + +gUnk_08970040:: @ 08970040 + .incbin "baserom.gba", 0x970040, 0x0000856 + +gUnk_08970896:: @ 08970896 + .incbin "baserom.gba", 0x970896, 0x000076B + +gUnk_08971001:: @ 08971001 + .incbin "baserom.gba", 0x971001, 0x000005A + +gUnk_0897105B:: @ 0897105B + .incbin "baserom.gba", 0x97105B, 0x0001D85 + +gUnk_08972DE0:: @ 08972DE0 + .incbin "baserom.gba", 0x972DE0, 0x0001553 + +gUnk_08974333:: @ 08974333 + .incbin "baserom.gba", 0x974333, 0x0001200 + +gUnk_08975533:: @ 08975533 + .incbin "baserom.gba", 0x975533, 0x00022AB + +gUnk_089777DE:: @ 089777DE + .incbin "baserom.gba", 0x9777DE, 0x0001DB0 + +gUnk_0897958E:: @ 0897958E + .incbin "baserom.gba", 0x97958E, 0x0001C62 + +gUnk_0897B1F0:: @ 0897B1F0 + .incbin "baserom.gba", 0x97B1F0, 0x00007A7 + +gUnk_0897B997:: @ 0897B997 + .incbin "baserom.gba", 0x97B997, 0x0004669 + +gUnk_08980000:: @ 08980000 + .incbin "baserom.gba", 0x980000, 0x0000012 + +gUnk_08980012:: @ 08980012 + .incbin "baserom.gba", 0x980012, 0x0000196 + +gUnk_089801A8:: @ 089801A8 + .incbin "baserom.gba", 0x9801A8, 0x0001769 + +gUnk_08981911:: @ 08981911 + .incbin "baserom.gba", 0x981911, 0x00018EF + +gUnk_08983200:: @ 08983200 + .incbin "baserom.gba", 0x983200, 0x00002AD + +gUnk_089834AD:: @ 089834AD + .incbin "baserom.gba", 0x9834AD, 0x00010A8 + +gUnk_08984555:: @ 08984555 + .incbin "baserom.gba", 0x984555, 0x0001AAB + +gUnk_08986000:: @ 08986000 + .incbin "baserom.gba", 0x986000, 0x000189E + +gUnk_0898789E:: @ 0898789E + .incbin "baserom.gba", 0x98789E, 0x0000074 + +gUnk_08987912:: @ 08987912 + .incbin "baserom.gba", 0x987912, 0x0000CEE + +gUnk_08988600:: @ 08988600 + .incbin "baserom.gba", 0x988600, 0x0000178 + +gUnk_08988778:: @ 08988778 + .incbin "baserom.gba", 0x988778, 0x0000110 + +gUnk_08988888:: @ 08988888 + .incbin "baserom.gba", 0x988888, 0x0000F77 + +gUnk_089897FF:: @ 089897FF + .incbin "baserom.gba", 0x9897FF, 0x000009F + +gUnk_0898989E:: @ 0898989E + .incbin "baserom.gba", 0x98989E, 0x000000C + +gUnk_089898AA:: @ 089898AA + .incbin "baserom.gba", 0x9898AA, 0x0000176 + +gUnk_08989A20:: @ 08989A20 + .incbin "baserom.gba", 0x989A20, 0x00004CE + +gUnk_08989EEE:: @ 08989EEE + .incbin "baserom.gba", 0x989EEE, 0x00011C9 + +gUnk_0898B0B7:: @ 0898B0B7 + .incbin "baserom.gba", 0x98B0B7, 0x00008D2 + +gUnk_0898B989:: @ 0898B989 + .incbin "baserom.gba", 0x98B989, 0x0001455 + +gUnk_0898CDDE:: @ 0898CDDE + .incbin "baserom.gba", 0x98CDDE, 0x0002222 + +gUnk_0898F000:: @ 0898F000 + .incbin "baserom.gba", 0x98F000, 0x0000799 + +gUnk_0898F799:: @ 0898F799 + .incbin "baserom.gba", 0x98F799, 0x0000755 + +gUnk_0898FEEE:: @ 0898FEEE + .incbin "baserom.gba", 0x98FEEE, 0x0000112 + +gUnk_08990000:: @ 08990000 + .incbin "baserom.gba", 0x990000, 0x000001B + +gUnk_0899001B:: @ 0899001B + .incbin "baserom.gba", 0x99001B, 0x00000B3 + +gUnk_089900CE:: @ 089900CE + .incbin "baserom.gba", 0x9900CE, 0x0000001 + +gUnk_089900CF:: @ 089900CF + .incbin "baserom.gba", 0x9900CF, 0x0000070 + +gUnk_0899013F:: @ 0899013F + .incbin "baserom.gba", 0x99013F, 0x0000001 + +gUnk_08990140:: @ 08990140 + .incbin "baserom.gba", 0x990140, 0x0000030 + +gUnk_08990170:: @ 08990170 + .incbin "baserom.gba", 0x990170, 0x0000098 + +gUnk_08990208:: @ 08990208 + .incbin "baserom.gba", 0x990208, 0x0000108 + +gUnk_08990310:: @ 08990310 + .incbin "baserom.gba", 0x990310, 0x00002F0 + +gUnk_08990600:: @ 08990600 + .incbin "baserom.gba", 0x990600, 0x0000400 + +gUnk_08990A00:: @ 08990A00 + .incbin "baserom.gba", 0x990A00, 0x000177A + +gUnk_0899217A:: @ 0899217A + .incbin "baserom.gba", 0x99217A, 0x0000C74 + +gUnk_08992DEE:: @ 08992DEE + .incbin "baserom.gba", 0x992DEE, 0x00000F4 + +gUnk_08992EE2:: @ 08992EE2 + .incbin "baserom.gba", 0x992EE2, 0x000000B + +gUnk_08992EED:: @ 08992EED + .incbin "baserom.gba", 0x992EED, 0x0000813 + +gUnk_08993700:: @ 08993700 + .incbin "baserom.gba", 0x993700, 0x0000B44 + +gUnk_08994244:: @ 08994244 + .incbin "baserom.gba", 0x994244, 0x0001311 + +gUnk_08995555:: @ 08995555 + .incbin "baserom.gba", 0x995555, 0x00019AB + +gUnk_08996F00:: @ 08996F00 + .incbin "baserom.gba", 0x996F00, 0x0000755 + +gUnk_08997655:: @ 08997655 + .incbin "baserom.gba", 0x997655, 0x000061C + +gUnk_08997C71:: @ 08997C71 + .incbin "baserom.gba", 0x997C71, 0x0000B27 + +gUnk_08998798:: @ 08998798 + .incbin "baserom.gba", 0x998798, 0x00000EF + +gUnk_08998887:: @ 08998887 + .incbin "baserom.gba", 0x998887, 0x0000001 + +gUnk_08998888:: @ 08998888 + .incbin "baserom.gba", 0x998888, 0x0000028 + +gUnk_089988B0:: @ 089988B0 + .incbin "baserom.gba", 0x9988B0, 0x00000A5 + +gUnk_08998955:: @ 08998955 + .incbin "baserom.gba", 0x998955, 0x0000034 + +gUnk_08998989:: @ 08998989 + .incbin "baserom.gba", 0x998989, 0x0000177 + +gUnk_08998B00:: @ 08998B00 + .incbin "baserom.gba", 0x998B00, 0x0000488 + +gUnk_08998F88:: @ 08998F88 + .incbin "baserom.gba", 0x998F88, 0x0000057 + +gUnk_08998FDF:: @ 08998FDF + .incbin "baserom.gba", 0x998FDF, 0x00002FF + +gUnk_089992DE:: @ 089992DE + .incbin "baserom.gba", 0x9992DE, 0x0000004 + +gUnk_089992E2:: @ 089992E2 + .incbin "baserom.gba", 0x9992E2, 0x000058E + +gUnk_08999870:: @ 08999870 + .incbin "baserom.gba", 0x999870, 0x0000004 + +gUnk_08999874:: @ 08999874 + .incbin "baserom.gba", 0x999874, 0x0000013 + +gUnk_08999887:: @ 08999887 + .incbin "baserom.gba", 0x999887, 0x0000013 + +gUnk_0899989A:: @ 0899989A + .incbin "baserom.gba", 0x99989A, 0x0000001 + +gUnk_0899989B:: @ 0899989B + .incbin "baserom.gba", 0x99989B, 0x0000066 + +gUnk_08999901:: @ 08999901 + .incbin "baserom.gba", 0x999901, 0x0000021 + +gUnk_08999922:: @ 08999922 + .incbin "baserom.gba", 0x999922, 0x000005E + +gUnk_08999980:: @ 08999980 + .incbin "baserom.gba", 0x999980, 0x0000007 + +gUnk_08999987:: @ 08999987 + .incbin "baserom.gba", 0x999987, 0x0000001 + +gUnk_08999988:: @ 08999988 + .incbin "baserom.gba", 0x999988, 0x0000001 + +gUnk_08999989:: @ 08999989 + .incbin "baserom.gba", 0x999989, 0x0000001 + +gUnk_0899998A:: @ 0899998A + .incbin "baserom.gba", 0x99998A, 0x000000E + +gUnk_08999998:: @ 08999998 + .incbin "baserom.gba", 0x999998, 0x0000001 + +gUnk_08999999:: @ 08999999 + .incbin "baserom.gba", 0x999999, 0x0000013 + +gUnk_089999AC:: @ 089999AC + .incbin "baserom.gba", 0x9999AC, 0x0000010 + +gUnk_089999BC:: @ 089999BC + .incbin "baserom.gba", 0x9999BC, 0x000003C + +gUnk_089999F8:: @ 089999F8 + .incbin "baserom.gba", 0x9999F8, 0x00000B2 + +gUnk_08999AAA:: @ 08999AAA + .incbin "baserom.gba", 0x999AAA, 0x0000056 + +gUnk_08999B00:: @ 08999B00 + .incbin "baserom.gba", 0x999B00, 0x00000CC + +gUnk_08999BCC:: @ 08999BCC + .incbin "baserom.gba", 0x999BCC, 0x00003BC + +gUnk_08999F88:: @ 08999F88 + .incbin "baserom.gba", 0x999F88, 0x00008AB + +gUnk_0899A833:: @ 0899A833 + .incbin "baserom.gba", 0x99A833, 0x0000201 + +gUnk_0899AA34:: @ 0899AA34 + .incbin "baserom.gba", 0x99AA34, 0x0000075 + +gUnk_0899AAA9:: @ 0899AAA9 + .incbin "baserom.gba", 0x99AAA9, 0x0000012 + +gUnk_0899AABB:: @ 0899AABB + .incbin "baserom.gba", 0x99AABB, 0x0000545 + +gUnk_0899B000:: @ 0899B000 + .incbin "baserom.gba", 0x99B000, 0x00003FF + +gUnk_0899B3FF:: @ 0899B3FF + .incbin "baserom.gba", 0x99B3FF, 0x000059A + +gUnk_0899B999:: @ 0899B999 + .incbin "baserom.gba", 0x99B999, 0x0000006 + +gUnk_0899B99F:: @ 0899B99F + .incbin "baserom.gba", 0x99B99F, 0x0000620 + +gUnk_0899BFBF:: @ 0899BFBF + .incbin "baserom.gba", 0x99BFBF, 0x000003A + +gUnk_0899BFF9:: @ 0899BFF9 + .incbin "baserom.gba", 0x99BFF9, 0x0000708 + +gUnk_0899C701:: @ 0899C701 + .incbin "baserom.gba", 0x99C701, 0x00027ED + +gUnk_0899EEEE:: @ 0899EEEE + .incbin "baserom.gba", 0x99EEEE, 0x000012D + +gUnk_0899F01B:: @ 0899F01B + .incbin "baserom.gba", 0x99F01B, 0x0000FE6 + +gUnk_089A0001:: @ 089A0001 + .incbin "baserom.gba", 0x9A0001, 0x0000087 + +gUnk_089A0088:: @ 089A0088 + .incbin "baserom.gba", 0x9A0088, 0x0000811 + +gUnk_089A0899:: @ 089A0899 + .incbin "baserom.gba", 0x9A0899, 0x00000F7 + +gUnk_089A0990:: @ 089A0990 + .incbin "baserom.gba", 0x9A0990, 0x0000B3C + +gUnk_089A14CC:: @ 089A14CC + .incbin "baserom.gba", 0x9A14CC, 0x0001B34 + +gUnk_089A3000:: @ 089A3000 + .incbin "baserom.gba", 0x9A3000, 0x0000D18 + +gUnk_089A3D18:: @ 089A3D18 + .incbin "baserom.gba", 0x9A3D18, 0x000073D + +gUnk_089A4455:: @ 089A4455 + .incbin "baserom.gba", 0x9A4455, 0x0001188 + +gUnk_089A55DD:: @ 089A55DD + .incbin "baserom.gba", 0x9A55DD, 0x0002E3B + +gUnk_089A8418:: @ 089A8418 + .incbin "baserom.gba", 0x9A8418, 0x00013E7 + +gUnk_089A97FF:: @ 089A97FF + .incbin "baserom.gba", 0x9A97FF, 0x000019A + +gUnk_089A9999:: @ 089A9999 + .incbin "baserom.gba", 0x9A9999, 0x0000101 + +gUnk_089A9A9A:: @ 089A9A9A + .incbin "baserom.gba", 0x9A9A9A, 0x0000F00 + +gUnk_089AA99A:: @ 089AA99A + .incbin "baserom.gba", 0x9AA99A, 0x0000089 + +gUnk_089AAA23:: @ 089AAA23 + .incbin "baserom.gba", 0x9AAA23, 0x0000087 + +gUnk_089AAAAA:: @ 089AAAAA + .incbin "baserom.gba", 0x9AAAAA, 0x0000111 + +gUnk_089AABBB:: @ 089AABBB + .incbin "baserom.gba", 0x9AABBB, 0x0000011 + +gUnk_089AABCC:: @ 089AABCC + .incbin "baserom.gba", 0x9AABCC, 0x0000FEF + +gUnk_089ABBBB:: @ 089ABBBB + .incbin "baserom.gba", 0x9ABBBB, 0x0000A33 + +gUnk_089AC5EE:: @ 089AC5EE + .incbin "baserom.gba", 0x9AC5EE, 0x00018ED + +gUnk_089ADEDB:: @ 089ADEDB + .incbin "baserom.gba", 0x9ADEDB, 0x0002125 + +gUnk_089B0000:: @ 089B0000 + .incbin "baserom.gba", 0x9B0000, 0x00002BC + +gUnk_089B02BC:: @ 089B02BC + .incbin "baserom.gba", 0x9B02BC, 0x0000054 + +gUnk_089B0310:: @ 089B0310 + .incbin "baserom.gba", 0x9B0310, 0x0000CF0 + +gUnk_089B1000:: @ 089B1000 + .incbin "baserom.gba", 0x9B1000, 0x0000D90 + +gUnk_089B1D90:: @ 089B1D90 + .incbin "baserom.gba", 0x9B1D90, 0x000039E + +gUnk_089B212E:: @ 089B212E + .incbin "baserom.gba", 0x9B212E, 0x0007427 + +gUnk_089B9555:: @ 089B9555 + .incbin "baserom.gba", 0x9B9555, 0x0000344 + +gUnk_089B9899:: @ 089B9899 + .incbin "baserom.gba", 0x9B9899, 0x0000032 + +gUnk_089B98CB:: @ 089B98CB + .incbin "baserom.gba", 0x9B98CB, 0x00000CE + +gUnk_089B9999:: @ 089B9999 + .incbin "baserom.gba", 0x9B9999, 0x0000200 + +gUnk_089B9B99:: @ 089B9B99 + .incbin "baserom.gba", 0x9B9B99, 0x0000467 + +gUnk_089BA000:: @ 089BA000 + .incbin "baserom.gba", 0x9BA000, 0x0001BBB + +gUnk_089BBBBB:: @ 089BBBBB + .incbin "baserom.gba", 0x9BBBBB, 0x0001111 + +gUnk_089BCCCC:: @ 089BCCCC + .incbin "baserom.gba", 0x9BCCCC, 0x0000CCC + +gUnk_089BD998:: @ 089BD998 + .incbin "baserom.gba", 0x9BD998, 0x0001469 + +gUnk_089BEE01:: @ 089BEE01 + .incbin "baserom.gba", 0x9BEE01, 0x0001206 + +gUnk_089C0007:: @ 089C0007 + .incbin "baserom.gba", 0x9C0007, 0x00004F4 + +gUnk_089C04FB:: @ 089C04FB + .incbin "baserom.gba", 0x9C04FB, 0x00002A0 + +gUnk_089C079B:: @ 089C079B + .incbin "baserom.gba", 0x9C079B, 0x000088D + +gUnk_089C1028:: @ 089C1028 + .incbin "baserom.gba", 0x9C1028, 0x00001AD + +gUnk_089C11D5:: @ 089C11D5 + .incbin "baserom.gba", 0x9C11D5, 0x000312B + +gUnk_089C4300:: @ 089C4300 + .incbin "baserom.gba", 0x9C4300, 0x0004A34 + +gUnk_089C8D34:: @ 089C8D34 + .incbin "baserom.gba", 0x9C8D34, 0x0001F68 + +gUnk_089CAC9C:: @ 089CAC9C + .incbin "baserom.gba", 0x9CAC9C, 0x0004E6B + +gUnk_089CFB07:: @ 089CFB07 + .incbin "baserom.gba", 0x9CFB07, 0x0000D54 + +gUnk_089D085B:: @ 089D085B + .incbin "baserom.gba", 0x9D085B, 0x0003E86 + +gUnk_089D46E1:: @ 089D46E1 + .incbin "baserom.gba", 0x9D46E1, 0x0001A27 + +gUnk_089D6108:: @ 089D6108 + .incbin "baserom.gba", 0x9D6108, 0x0003429 + +gUnk_089D9531:: @ 089D9531 + .incbin "baserom.gba", 0x9D9531, 0x00058EF + +gUnk_089DEE20:: @ 089DEE20 + .incbin "baserom.gba", 0x9DEE20, 0x00011F7 + +gUnk_089E0017:: @ 089E0017 + .incbin "baserom.gba", 0x9E0017, 0x00002E9 + +gUnk_089E0300:: @ 089E0300 + .incbin "baserom.gba", 0x9E0300, 0x0000455 + +gUnk_089E0755:: @ 089E0755 + .incbin "baserom.gba", 0x9E0755, 0x00004AD + +gUnk_089E0C02:: @ 089E0C02 + .incbin "baserom.gba", 0x9E0C02, 0x00008FD + +gUnk_089E14FF:: @ 089E14FF + .incbin "baserom.gba", 0x9E14FF, 0x0001811 + +gUnk_089E2D10:: @ 089E2D10 + .incbin "baserom.gba", 0x9E2D10, 0x0004F8E + +gUnk_089E7C9E:: @ 089E7C9E + .incbin "baserom.gba", 0x9E7C9E, 0x0001630 + +gUnk_089E92CE:: @ 089E92CE + .incbin "baserom.gba", 0x9E92CE, 0x00006B2 + +gUnk_089E9980:: @ 089E9980 + .incbin "baserom.gba", 0x9E9980, 0x0001F1D + +gUnk_089EB89D:: @ 089EB89D + .incbin "baserom.gba", 0x9EB89D, 0x0000DCE + +gUnk_089EC66B:: @ 089EC66B + .incbin "baserom.gba", 0x9EC66B, 0x000282D + +gUnk_089EEE98:: @ 089EEE98 + .incbin "baserom.gba", 0x9EEE98, 0x000004C + +gUnk_089EEEE4:: @ 089EEEE4 + .incbin "baserom.gba", 0x9EEEE4, 0x000000A + +gUnk_089EEEEE:: @ 089EEEEE + .incbin "baserom.gba", 0x9EEEEE, 0x0000008 + +gUnk_089EEEF6:: @ 089EEEF6 + .incbin "baserom.gba", 0x9EEEF6, 0x000110A + +gUnk_089F0000:: @ 089F0000 + .incbin "baserom.gba", 0x9F0000, 0x0000009 + +gUnk_089F0009:: @ 089F0009 + .incbin "baserom.gba", 0x9F0009, 0x0000049 + +gUnk_089F0052:: @ 089F0052 + .incbin "baserom.gba", 0x9F0052, 0x0000638 + +gUnk_089F068A:: @ 089F068A + .incbin "baserom.gba", 0x9F068A, 0x00001A8 + +gUnk_089F0832:: @ 089F0832 + .incbin "baserom.gba", 0x9F0832, 0x00017D5 + +gUnk_089F2007:: @ 089F2007 + .incbin "baserom.gba", 0x9F2007, 0x0000312 + +gUnk_089F2319:: @ 089F2319 + .incbin "baserom.gba", 0x9F2319, 0x000012C + +gUnk_089F2445:: @ 089F2445 + .incbin "baserom.gba", 0x9F2445, 0x0002110 + +gUnk_089F4555:: @ 089F4555 + .incbin "baserom.gba", 0x9F4555, 0x0004081 + +gUnk_089F85D6:: @ 089F85D6 + .incbin "baserom.gba", 0x9F85D6, 0x00009B4 + +gUnk_089F8F8A:: @ 089F8F8A + .incbin "baserom.gba", 0x9F8F8A, 0x00027F6 + +gUnk_089FB780:: @ 089FB780 + .incbin "baserom.gba", 0x9FB780, 0x0000F44 + +gUnk_089FC6C4:: @ 089FC6C4 + .incbin "baserom.gba", 0x9FC6C4, 0x0000090 + +gUnk_089FC754:: @ 089FC754 + .incbin "baserom.gba", 0x9FC754, 0x00000B4 + +gUnk_089FC808:: @ 089FC808 + .incbin "baserom.gba", 0x9FC808, 0x0000030 + +gUnk_089FC838:: @ 089FC838 + .incbin "baserom.gba", 0x9FC838, 0x0000018 + +gUnk_089FC850:: @ 089FC850 + .incbin "baserom.gba", 0x9FC850, 0x0000084 + +gUnk_089FC8D4:: @ 089FC8D4 + .incbin "baserom.gba", 0x9FC8D4, 0x0000018 + +gUnk_089FC8EC:: @ 089FC8EC + .incbin "baserom.gba", 0x9FC8EC, 0x000003C + +gUnk_089FC928:: @ 089FC928 + .incbin "baserom.gba", 0x9FC928, 0x0000010 + +gUnk_089FC938:: @ 089FC938 + .incbin "baserom.gba", 0x9FC938, 0x0000034 + +gUnk_089FC96C:: @ 089FC96C + .incbin "baserom.gba", 0x9FC96C, 0x0000030 + +gUnk_089FC99C:: @ 089FC99C + .incbin "baserom.gba", 0x9FC99C, 0x0000060 + +gUnk_089FC9FC:: @ 089FC9FC + .incbin "baserom.gba", 0x9FC9FC, 0x0000600 + +gUnk_089FCFFC:: @ 089FCFFC + .incbin "baserom.gba", 0x9FCFFC, 0x0000600 + +gUnk_089FD5FC:: @ 089FD5FC + .incbin "baserom.gba", 0x9FD5FC, 0x0000600 + +gUnk_089FDBFC:: @ 089FDBFC + .incbin "baserom.gba", 0x9FDBFC, 0x00001F8 + +gUnk_089FDDF4:: @ 089FDDF4 + .incbin "baserom.gba", 0x9FDDF4, 0x0000600 + +gUnk_089FE3F4:: @ 089FE3F4 + .incbin "baserom.gba", 0x9FE3F4, 0x00002C4 + +gUnk_089FE6B8:: @ 089FE6B8 + .incbin "baserom.gba", 0x9FE6B8, 0x00002E8 + +gUnk_089FE9A0:: @ 089FE9A0 + .incbin "baserom.gba", 0x9FE9A0, 0x0000600 + +gUnk_089FEFA0:: @ 089FEFA0 + .incbin "baserom.gba", 0x9FEFA0, 0x0000060 + +gUnk_089FF000:: @ 089FF000 + .incbin "baserom.gba", 0x9FF000, 0x000024C + +gUnk_089FF24C:: @ 089FF24C + .incbin "baserom.gba", 0x9FF24C, 0x0000309 + +gUnk_089FF555:: @ 089FF555 + .incbin "baserom.gba", 0x9FF555, 0x0000169 + +gUnk_089FF6BE:: @ 089FF6BE + .incbin "baserom.gba", 0x9FF6BE, 0x000018E + +gUnk_089FF84C:: @ 089FF84C + .incbin "baserom.gba", 0x9FF84C, 0x0000437 + +gUnk_089FFC83:: @ 089FFC83 + .incbin "baserom.gba", 0x9FFC83, 0x00001C9 + +gUnk_089FFE4C:: @ 089FFE4C + .incbin "baserom.gba", 0x9FFE4C, 0x00001B4 + +gUnk_08A00000:: @ 08A00000 + .incbin "baserom.gba", 0xA00000, 0x0000010 + +gUnk_08A00010:: @ 08A00010 + .incbin "baserom.gba", 0xA00010, 0x0000008 + +gUnk_08A00018:: @ 08A00018 + .incbin "baserom.gba", 0xA00018, 0x0000065 + +gUnk_08A0007D:: @ 08A0007D + .incbin "baserom.gba", 0xA0007D, 0x00003CF + +gUnk_08A0044C:: @ 08A0044C + .incbin "baserom.gba", 0xA0044C, 0x0000046 + +gUnk_08A00492:: @ 08A00492 + .incbin "baserom.gba", 0xA00492, 0x00002EE + +gUnk_08A00780:: @ 08A00780 + .incbin "baserom.gba", 0xA00780, 0x00000A7 + +gUnk_08A00827:: @ 08A00827 + .incbin "baserom.gba", 0xA00827, 0x0000225 + +gUnk_08A00A4C:: @ 08A00A4C + .incbin "baserom.gba", 0xA00A4C, 0x00002AC + +gUnk_08A00CF8:: @ 08A00CF8 + .incbin "baserom.gba", 0xA00CF8, 0x0000327 + +gUnk_08A0101F:: @ 08A0101F + .incbin "baserom.gba", 0xA0101F, 0x00002D9 + +gUnk_08A012F8:: @ 08A012F8 + .incbin "baserom.gba", 0xA012F8, 0x0000600 + +gUnk_08A018F8:: @ 08A018F8 + .incbin "baserom.gba", 0xA018F8, 0x0000600 + +gUnk_08A01EF8:: @ 08A01EF8 + .incbin "baserom.gba", 0xA01EF8, 0x00003CC + +gUnk_08A022C4:: @ 08A022C4 + .incbin "baserom.gba", 0xA022C4, 0x0000600 + +gUnk_08A028C4:: @ 08A028C4 + .incbin "baserom.gba", 0xA028C4, 0x000016F + +gUnk_08A02A33:: @ 08A02A33 + .incbin "baserom.gba", 0xA02A33, 0x0000491 + +gUnk_08A02EC4:: @ 08A02EC4 + .incbin "baserom.gba", 0xA02EC4, 0x0000600 + +gUnk_08A034C4:: @ 08A034C4 + .incbin "baserom.gba", 0xA034C4, 0x00002D0 + +gUnk_08A03794:: @ 08A03794 + .incbin "baserom.gba", 0xA03794, 0x0000600 + +gUnk_08A03D94:: @ 08A03D94 + .incbin "baserom.gba", 0xA03D94, 0x00002DB + +gUnk_08A0406F:: @ 08A0406F + .incbin "baserom.gba", 0xA0406F, 0x0000325 + +gUnk_08A04394:: @ 08A04394 + .incbin "baserom.gba", 0xA04394, 0x0000600 + +gUnk_08A04994:: @ 08A04994 + .incbin "baserom.gba", 0xA04994, 0x0000600 + +gUnk_08A04F94:: @ 08A04F94 + .incbin "baserom.gba", 0xA04F94, 0x0000600 + +gUnk_08A05594:: @ 08A05594 + .incbin "baserom.gba", 0xA05594, 0x000036C + +gUnk_08A05900:: @ 08A05900 + .incbin "baserom.gba", 0xA05900, 0x0000294 + +gUnk_08A05B94:: @ 08A05B94 + .incbin "baserom.gba", 0xA05B94, 0x00000B8 + +gUnk_08A05C4C:: @ 08A05C4C + .incbin "baserom.gba", 0xA05C4C, 0x0000548 + +gUnk_08A06194:: @ 08A06194 + .incbin "baserom.gba", 0xA06194, 0x0000600 + +gUnk_08A06794:: @ 08A06794 + .incbin "baserom.gba", 0xA06794, 0x0000600 + +gUnk_08A06D94:: @ 08A06D94 + .incbin "baserom.gba", 0xA06D94, 0x000040C + +gUnk_08A071A0:: @ 08A071A0 + .incbin "baserom.gba", 0xA071A0, 0x00001F4 + +gUnk_08A07394:: @ 08A07394 + .incbin "baserom.gba", 0xA07394, 0x000027C + +gUnk_08A07610:: @ 08A07610 + .incbin "baserom.gba", 0xA07610, 0x0000600 + +gUnk_08A07C10:: @ 08A07C10 + .incbin "baserom.gba", 0xA07C10, 0x00003F0 + +gUnk_08A08000:: @ 08A08000 + .incbin "baserom.gba", 0xA08000, 0x0000210 + +gUnk_08A08210:: @ 08A08210 + .incbin "baserom.gba", 0xA08210, 0x0000600 + +gUnk_08A08810:: @ 08A08810 + .incbin "baserom.gba", 0xA08810, 0x0000600 + +gUnk_08A08E10:: @ 08A08E10 + .incbin "baserom.gba", 0xA08E10, 0x0000600 + +gUnk_08A09410:: @ 08A09410 + .incbin "baserom.gba", 0xA09410, 0x00002C4 + +gUnk_08A096D4:: @ 08A096D4 + .incbin "baserom.gba", 0xA096D4, 0x0000600 + +gUnk_08A09CD4:: @ 08A09CD4 + .incbin "baserom.gba", 0xA09CD4, 0x0000007 + +gUnk_08A09CDB:: @ 08A09CDB + .incbin "baserom.gba", 0xA09CDB, 0x0000269 + +gUnk_08A09F44:: @ 08A09F44 + .incbin "baserom.gba", 0xA09F44, 0x00003D4 + +gUnk_08A0A318:: @ 08A0A318 + .incbin "baserom.gba", 0xA0A318, 0x0000100 + +gUnk_08A0A418:: @ 08A0A418 + .incbin "baserom.gba", 0xA0A418, 0x000012C + +gUnk_08A0A544:: @ 08A0A544 + .incbin "baserom.gba", 0xA0A544, 0x000036C + +gUnk_08A0A8B0:: @ 08A0A8B0 + .incbin "baserom.gba", 0xA0A8B0, 0x0000294 + +gUnk_08A0AB44:: @ 08A0AB44 + .incbin "baserom.gba", 0xA0AB44, 0x0000045 + +gUnk_08A0AB89:: @ 08A0AB89 + .incbin "baserom.gba", 0xA0AB89, 0x00005BB + +gUnk_08A0B144:: @ 08A0B144 + .incbin "baserom.gba", 0xA0B144, 0x0000600 + +gUnk_08A0B744:: @ 08A0B744 + .incbin "baserom.gba", 0xA0B744, 0x0000600 + +gUnk_08A0BD44:: @ 08A0BD44 + .incbin "baserom.gba", 0xA0BD44, 0x0000600 + +gUnk_08A0C344:: @ 08A0C344 + .incbin "baserom.gba", 0xA0C344, 0x0000600 + +gUnk_08A0C944:: @ 08A0C944 + .incbin "baserom.gba", 0xA0C944, 0x00004DE + +gUnk_08A0CE22:: @ 08A0CE22 + .incbin "baserom.gba", 0xA0CE22, 0x0000122 + +gUnk_08A0CF44:: @ 08A0CF44 + .incbin "baserom.gba", 0xA0CF44, 0x0000600 + +gUnk_08A0D544:: @ 08A0D544 + .incbin "baserom.gba", 0xA0D544, 0x0000600 + +gUnk_08A0DB44:: @ 08A0DB44 + .incbin "baserom.gba", 0xA0DB44, 0x0000600 + +gUnk_08A0E144:: @ 08A0E144 + .incbin "baserom.gba", 0xA0E144, 0x0000600 + +gUnk_08A0E744:: @ 08A0E744 + .incbin "baserom.gba", 0xA0E744, 0x0000600 + +gUnk_08A0ED44:: @ 08A0ED44 + .incbin "baserom.gba", 0xA0ED44, 0x00002D0 + +gUnk_08A0F014:: @ 08A0F014 + .incbin "baserom.gba", 0xA0F014, 0x00000E3 + +gUnk_08A0F0F7:: @ 08A0F0F7 + .incbin "baserom.gba", 0xA0F0F7, 0x000051D + +gUnk_08A0F614:: @ 08A0F614 + .incbin "baserom.gba", 0xA0F614, 0x00001DD + +gUnk_08A0F7F1:: @ 08A0F7F1 + .incbin "baserom.gba", 0xA0F7F1, 0x000009F + +gUnk_08A0F890:: @ 08A0F890 + .incbin "baserom.gba", 0xA0F890, 0x0000450 + +gUnk_08A0FCE0:: @ 08A0FCE0 + .incbin "baserom.gba", 0xA0FCE0, 0x0000264 + +gUnk_08A0FF44:: @ 08A0FF44 + .incbin "baserom.gba", 0xA0FF44, 0x000000C + +gUnk_08A0FF50:: @ 08A0FF50 + .incbin "baserom.gba", 0xA0FF50, 0x0000030 + +gUnk_08A0FF80:: @ 08A0FF80 + .incbin "baserom.gba", 0xA0FF80, 0x0000018 + +gUnk_08A0FF98:: @ 08A0FF98 + .incbin "baserom.gba", 0xA0FF98, 0x000000C + +gUnk_08A0FFA4:: @ 08A0FFA4 + .incbin "baserom.gba", 0xA0FFA4, 0x000000C + +gUnk_08A0FFB0:: @ 08A0FFB0 + .incbin "baserom.gba", 0xA0FFB0, 0x000000C + +gUnk_08A0FFBC:: @ 08A0FFBC + .incbin "baserom.gba", 0xA0FFBC, 0x000000C + +gUnk_08A0FFC8:: @ 08A0FFC8 + .incbin "baserom.gba", 0xA0FFC8, 0x000000C + +gUnk_08A0FFD4:: @ 08A0FFD4 + .incbin "baserom.gba", 0xA0FFD4, 0x0000018 + +gUnk_08A0FFEC:: @ 08A0FFEC + .incbin "baserom.gba", 0xA0FFEC, 0x000000C + +gUnk_08A0FFF8:: @ 08A0FFF8 + .incbin "baserom.gba", 0xA0FFF8, 0x000000C + +gUnk_08A10004:: @ 08A10004 + .incbin "baserom.gba", 0xA10004, 0x0000006 + +gUnk_08A1000A:: @ 08A1000A + .incbin "baserom.gba", 0xA1000A, 0x0000006 + +gUnk_08A10010:: @ 08A10010 + .incbin "baserom.gba", 0xA10010, 0x0000018 + +gUnk_08A10028:: @ 08A10028 + .incbin "baserom.gba", 0xA10028, 0x000000C + +gUnk_08A10034:: @ 08A10034 + .incbin "baserom.gba", 0xA10034, 0x0000018 + +gUnk_08A1004C:: @ 08A1004C + .incbin "baserom.gba", 0xA1004C, 0x0000030 + +gUnk_08A1007C:: @ 08A1007C + .incbin "baserom.gba", 0xA1007C, 0x000000C + +gUnk_08A10088:: @ 08A10088 + .incbin "baserom.gba", 0xA10088, 0x000000C + +gUnk_08A10094:: @ 08A10094 + .incbin "baserom.gba", 0xA10094, 0x000000C + +gUnk_08A100A0:: @ 08A100A0 + .incbin "baserom.gba", 0xA100A0, 0x000000C + +gUnk_08A100AC:: @ 08A100AC + .incbin "baserom.gba", 0xA100AC, 0x000000C + +gUnk_08A100B8:: @ 08A100B8 + .incbin "baserom.gba", 0xA100B8, 0x000000C + +gUnk_08A100C4:: @ 08A100C4 + .incbin "baserom.gba", 0xA100C4, 0x000000C + +gUnk_08A100D0:: @ 08A100D0 + .incbin "baserom.gba", 0xA100D0, 0x000000C + +gUnk_08A100DC:: @ 08A100DC + .incbin "baserom.gba", 0xA100DC, 0x000000C + +gUnk_08A100E8:: @ 08A100E8 + .incbin "baserom.gba", 0xA100E8, 0x000000C + +gUnk_08A100F4:: @ 08A100F4 + .incbin "baserom.gba", 0xA100F4, 0x000000C + +gUnk_08A10100:: @ 08A10100 + .incbin "baserom.gba", 0xA10100, 0x0000018 + +gUnk_08A10118:: @ 08A10118 + .incbin "baserom.gba", 0xA10118, 0x000000C + +gUnk_08A10124:: @ 08A10124 + .incbin "baserom.gba", 0xA10124, 0x0000024 + +gUnk_08A10148:: @ 08A10148 + .incbin "baserom.gba", 0xA10148, 0x000000C + +gUnk_08A10154:: @ 08A10154 + .incbin "baserom.gba", 0xA10154, 0x0000018 + +gUnk_08A1016C:: @ 08A1016C + .incbin "baserom.gba", 0xA1016C, 0x0000018 + +gUnk_08A10184:: @ 08A10184 + .incbin "baserom.gba", 0xA10184, 0x000000C + +gUnk_08A10190:: @ 08A10190 + .incbin "baserom.gba", 0xA10190, 0x000000C + +gUnk_08A1019C:: @ 08A1019C + .incbin "baserom.gba", 0xA1019C, 0x000000C + +gUnk_08A101A8:: @ 08A101A8 + .incbin "baserom.gba", 0xA101A8, 0x000000C + +gUnk_08A101B4:: @ 08A101B4 + .incbin "baserom.gba", 0xA101B4, 0x000000C + +gUnk_08A101C0:: @ 08A101C0 + .incbin "baserom.gba", 0xA101C0, 0x000000C + +gUnk_08A101CC:: @ 08A101CC + .incbin "baserom.gba", 0xA101CC, 0x000000C + +gUnk_08A101D8:: @ 08A101D8 + .incbin "baserom.gba", 0xA101D8, 0x000000C + +gUnk_08A101E4:: @ 08A101E4 + .incbin "baserom.gba", 0xA101E4, 0x000000C + +gUnk_08A101F0:: @ 08A101F0 + .incbin "baserom.gba", 0xA101F0, 0x000000C + +gUnk_08A101FC:: @ 08A101FC + .incbin "baserom.gba", 0xA101FC, 0x000000C + +gUnk_08A10208:: @ 08A10208 + .incbin "baserom.gba", 0xA10208, 0x000000C + +gUnk_08A10214:: @ 08A10214 + .incbin "baserom.gba", 0xA10214, 0x000000C + +gUnk_08A10220:: @ 08A10220 + .incbin "baserom.gba", 0xA10220, 0x000000C + +gUnk_08A1022C:: @ 08A1022C + .incbin "baserom.gba", 0xA1022C, 0x000000C + +gUnk_08A10238:: @ 08A10238 + .incbin "baserom.gba", 0xA10238, 0x000000C + +gUnk_08A10244:: @ 08A10244 + .incbin "baserom.gba", 0xA10244, 0x000000C + +gUnk_08A10250:: @ 08A10250 + .incbin "baserom.gba", 0xA10250, 0x000000C + +gUnk_08A1025C:: @ 08A1025C + .incbin "baserom.gba", 0xA1025C, 0x000000C + +gUnk_08A10268:: @ 08A10268 + .incbin "baserom.gba", 0xA10268, 0x000000C + +gUnk_08A10274:: @ 08A10274 + .incbin "baserom.gba", 0xA10274, 0x000000C + +gUnk_08A10280:: @ 08A10280 + .incbin "baserom.gba", 0xA10280, 0x000000C + +gUnk_08A1028C:: @ 08A1028C + .incbin "baserom.gba", 0xA1028C, 0x000000C + +gUnk_08A10298:: @ 08A10298 + .incbin "baserom.gba", 0xA10298, 0x000000C + +gUnk_08A102A4:: @ 08A102A4 + .incbin "baserom.gba", 0xA102A4, 0x000000C + +gUnk_08A102B0:: @ 08A102B0 + .incbin "baserom.gba", 0xA102B0, 0x000000C + +gUnk_08A102BC:: @ 08A102BC + .incbin "baserom.gba", 0xA102BC, 0x000000C + +gUnk_08A102C8:: @ 08A102C8 + .incbin "baserom.gba", 0xA102C8, 0x000000C + +gUnk_08A102D4:: @ 08A102D4 + .incbin "baserom.gba", 0xA102D4, 0x000000C + +gUnk_08A102E0:: @ 08A102E0 + .incbin "baserom.gba", 0xA102E0, 0x000000C + +gUnk_08A102EC:: @ 08A102EC + .incbin "baserom.gba", 0xA102EC, 0x000000C + +gUnk_08A102F8:: @ 08A102F8 + .incbin "baserom.gba", 0xA102F8, 0x000000C + +gUnk_08A10304:: @ 08A10304 + .incbin "baserom.gba", 0xA10304, 0x000000C + +gUnk_08A10310:: @ 08A10310 + .incbin "baserom.gba", 0xA10310, 0x000000C + +gUnk_08A1031C:: @ 08A1031C + .incbin "baserom.gba", 0xA1031C, 0x000000C + +gUnk_08A10328:: @ 08A10328 + .incbin "baserom.gba", 0xA10328, 0x000000C + +gUnk_08A10334:: @ 08A10334 + .incbin "baserom.gba", 0xA10334, 0x000000C + +gUnk_08A10340:: @ 08A10340 + .incbin "baserom.gba", 0xA10340, 0x000000C + +gUnk_08A1034C:: @ 08A1034C + .incbin "baserom.gba", 0xA1034C, 0x000000C + +gUnk_08A10358:: @ 08A10358 + .incbin "baserom.gba", 0xA10358, 0x000000C + +gUnk_08A10364:: @ 08A10364 + .incbin "baserom.gba", 0xA10364, 0x000000C + +gUnk_08A10370:: @ 08A10370 + .incbin "baserom.gba", 0xA10370, 0x000000C + +gUnk_08A1037C:: @ 08A1037C + .incbin "baserom.gba", 0xA1037C, 0x000000C + +gUnk_08A10388:: @ 08A10388 + .incbin "baserom.gba", 0xA10388, 0x000000C + +gUnk_08A10394:: @ 08A10394 + .incbin "baserom.gba", 0xA10394, 0x000000C + +gUnk_08A103A0:: @ 08A103A0 + .incbin "baserom.gba", 0xA103A0, 0x000000C + +gUnk_08A103AC:: @ 08A103AC + .incbin "baserom.gba", 0xA103AC, 0x000000C + +gUnk_08A103B8:: @ 08A103B8 + .incbin "baserom.gba", 0xA103B8, 0x000000C + +gUnk_08A103C4:: @ 08A103C4 + .incbin "baserom.gba", 0xA103C4, 0x000000C + +gUnk_08A103D0:: @ 08A103D0 + .incbin "baserom.gba", 0xA103D0, 0x000000C + +gUnk_08A103DC:: @ 08A103DC + .incbin "baserom.gba", 0xA103DC, 0x000000C + +gUnk_08A103E8:: @ 08A103E8 + .incbin "baserom.gba", 0xA103E8, 0x000000C + +gUnk_08A103F4:: @ 08A103F4 + .incbin "baserom.gba", 0xA103F4, 0x000000C + +gUnk_08A10400:: @ 08A10400 + .incbin "baserom.gba", 0xA10400, 0x000000C + +gUnk_08A1040C:: @ 08A1040C + .incbin "baserom.gba", 0xA1040C, 0x000000C + +gUnk_08A10418:: @ 08A10418 + .incbin "baserom.gba", 0xA10418, 0x000000C + +gUnk_08A10424:: @ 08A10424 + .incbin "baserom.gba", 0xA10424, 0x000000C + +gUnk_08A10430:: @ 08A10430 + .incbin "baserom.gba", 0xA10430, 0x000000C + +gUnk_08A1043C:: @ 08A1043C + .incbin "baserom.gba", 0xA1043C, 0x000000C + +gUnk_08A10448:: @ 08A10448 + .incbin "baserom.gba", 0xA10448, 0x000000C + +gUnk_08A10454:: @ 08A10454 + .incbin "baserom.gba", 0xA10454, 0x000000C + +gUnk_08A10460:: @ 08A10460 + .incbin "baserom.gba", 0xA10460, 0x000000C + +gUnk_08A1046C:: @ 08A1046C + .incbin "baserom.gba", 0xA1046C, 0x000000C + +gUnk_08A10478:: @ 08A10478 + .incbin "baserom.gba", 0xA10478, 0x000000C + +gUnk_08A10484:: @ 08A10484 + .incbin "baserom.gba", 0xA10484, 0x000000C + +gUnk_08A10490:: @ 08A10490 + .incbin "baserom.gba", 0xA10490, 0x000000C + +gUnk_08A1049C:: @ 08A1049C + .incbin "baserom.gba", 0xA1049C, 0x000000C + +gUnk_08A104A8:: @ 08A104A8 + .incbin "baserom.gba", 0xA104A8, 0x000000C + +gUnk_08A104B4:: @ 08A104B4 + .incbin "baserom.gba", 0xA104B4, 0x000000C + +gUnk_08A104C0:: @ 08A104C0 + .incbin "baserom.gba", 0xA104C0, 0x000000C + +gUnk_08A104CC:: @ 08A104CC + .incbin "baserom.gba", 0xA104CC, 0x000000C + +gUnk_08A104D8:: @ 08A104D8 + .incbin "baserom.gba", 0xA104D8, 0x000000C + +gUnk_08A104E4:: @ 08A104E4 + .incbin "baserom.gba", 0xA104E4, 0x0000018 + +gUnk_08A104FC:: @ 08A104FC + .incbin "baserom.gba", 0xA104FC, 0x0000018 + +gUnk_08A10514:: @ 08A10514 + .incbin "baserom.gba", 0xA10514, 0x000000C + +gUnk_08A10520:: @ 08A10520 + .incbin "baserom.gba", 0xA10520, 0x000000C + +gUnk_08A1052C:: @ 08A1052C + .incbin "baserom.gba", 0xA1052C, 0x000000C + +gUnk_08A10538:: @ 08A10538 + .incbin "baserom.gba", 0xA10538, 0x000000C + +gUnk_08A10544:: @ 08A10544 + .incbin "baserom.gba", 0xA10544, 0x000000C + +gUnk_08A10550:: @ 08A10550 + .incbin "baserom.gba", 0xA10550, 0x000000C + +gUnk_08A1055C:: @ 08A1055C + .incbin "baserom.gba", 0xA1055C, 0x000000C + +gUnk_08A10568:: @ 08A10568 + .incbin "baserom.gba", 0xA10568, 0x000000C + +gUnk_08A10574:: @ 08A10574 + .incbin "baserom.gba", 0xA10574, 0x000000C + +gUnk_08A10580:: @ 08A10580 + .incbin "baserom.gba", 0xA10580, 0x000000C + +gUnk_08A1058C:: @ 08A1058C + .incbin "baserom.gba", 0xA1058C, 0x000000C + +gUnk_08A10598:: @ 08A10598 + .incbin "baserom.gba", 0xA10598, 0x000000C + +gUnk_08A105A4:: @ 08A105A4 + .incbin "baserom.gba", 0xA105A4, 0x000000C + +gUnk_08A105B0:: @ 08A105B0 + .incbin "baserom.gba", 0xA105B0, 0x000000C + +gUnk_08A105BC:: @ 08A105BC + .incbin "baserom.gba", 0xA105BC, 0x000000C + +gUnk_08A105C8:: @ 08A105C8 + .incbin "baserom.gba", 0xA105C8, 0x000000C + +gUnk_08A105D4:: @ 08A105D4 + .incbin "baserom.gba", 0xA105D4, 0x000000C + +gUnk_08A105E0:: @ 08A105E0 + .incbin "baserom.gba", 0xA105E0, 0x000000C + +gUnk_08A105EC:: @ 08A105EC + .incbin "baserom.gba", 0xA105EC, 0x000000C + +gUnk_08A105F8:: @ 08A105F8 + .incbin "baserom.gba", 0xA105F8, 0x000000C + +gUnk_08A10604:: @ 08A10604 + .incbin "baserom.gba", 0xA10604, 0x000000C + +gUnk_08A10610:: @ 08A10610 + .incbin "baserom.gba", 0xA10610, 0x000000C + +gUnk_08A1061C:: @ 08A1061C + .incbin "baserom.gba", 0xA1061C, 0x000000C + +gUnk_08A10628:: @ 08A10628 + .incbin "baserom.gba", 0xA10628, 0x000000C + +gUnk_08A10634:: @ 08A10634 + .incbin "baserom.gba", 0xA10634, 0x000000C + +gUnk_08A10640:: @ 08A10640 + .incbin "baserom.gba", 0xA10640, 0x000000C + +gUnk_08A1064C:: @ 08A1064C + .incbin "baserom.gba", 0xA1064C, 0x000000C + +gUnk_08A10658:: @ 08A10658 + .incbin "baserom.gba", 0xA10658, 0x0000024 + +gUnk_08A1067C:: @ 08A1067C + .incbin "baserom.gba", 0xA1067C, 0x0000024 + +gUnk_08A106A0:: @ 08A106A0 + .incbin "baserom.gba", 0xA106A0, 0x0000024 + +gUnk_08A106C4:: @ 08A106C4 + .incbin "baserom.gba", 0xA106C4, 0x0000024 + +gUnk_08A106E8:: @ 08A106E8 + .incbin "baserom.gba", 0xA106E8, 0x000000C + +gUnk_08A106F4:: @ 08A106F4 + .incbin "baserom.gba", 0xA106F4, 0x000000C + +gUnk_08A10700:: @ 08A10700 + .incbin "baserom.gba", 0xA10700, 0x000000C + +gUnk_08A1070C:: @ 08A1070C + .incbin "baserom.gba", 0xA1070C, 0x000000C + +gUnk_08A10718:: @ 08A10718 + .incbin "baserom.gba", 0xA10718, 0x0000024 + +gUnk_08A1073C:: @ 08A1073C + .incbin "baserom.gba", 0xA1073C, 0x0000024 + +gUnk_08A10760:: @ 08A10760 + .incbin "baserom.gba", 0xA10760, 0x000000C + +gUnk_08A1076C:: @ 08A1076C + .incbin "baserom.gba", 0xA1076C, 0x000000C + +gUnk_08A10778:: @ 08A10778 + .incbin "baserom.gba", 0xA10778, 0x000000C + +gUnk_08A10784:: @ 08A10784 + .incbin "baserom.gba", 0xA10784, 0x000000C + +gUnk_08A10790:: @ 08A10790 + .incbin "baserom.gba", 0xA10790, 0x0000024 + +gUnk_08A107B4:: @ 08A107B4 + .incbin "baserom.gba", 0xA107B4, 0x000000C + +gUnk_08A107C0:: @ 08A107C0 + .incbin "baserom.gba", 0xA107C0, 0x0000024 + +gUnk_08A107E4:: @ 08A107E4 + .incbin "baserom.gba", 0xA107E4, 0x0000018 + +gUnk_08A107FC:: @ 08A107FC + .incbin "baserom.gba", 0xA107FC, 0x0000004 + +gUnk_08A10800:: @ 08A10800 + .incbin "baserom.gba", 0xA10800, 0x0000020 + +gUnk_08A10820:: @ 08A10820 + .incbin "baserom.gba", 0xA10820, 0x0000018 + +gUnk_08A10838:: @ 08A10838 + .incbin "baserom.gba", 0xA10838, 0x0000024 + +gUnk_08A1085C:: @ 08A1085C + .incbin "baserom.gba", 0xA1085C, 0x0000018 + +gUnk_08A10874:: @ 08A10874 + .incbin "baserom.gba", 0xA10874, 0x000000C + +gUnk_08A10880:: @ 08A10880 + .incbin "baserom.gba", 0xA10880, 0x000000C + +gUnk_08A1088C:: @ 08A1088C + .incbin "baserom.gba", 0xA1088C, 0x000000C + +gUnk_08A10898:: @ 08A10898 + .incbin "baserom.gba", 0xA10898, 0x000000C + +gUnk_08A108A4:: @ 08A108A4 + .incbin "baserom.gba", 0xA108A4, 0x000000C + +gUnk_08A108B0:: @ 08A108B0 + .incbin "baserom.gba", 0xA108B0, 0x000003C + +gUnk_08A108EC:: @ 08A108EC + .incbin "baserom.gba", 0xA108EC, 0x000000C + +gUnk_08A108F8:: @ 08A108F8 + .incbin "baserom.gba", 0xA108F8, 0x000000C + +gUnk_08A10904:: @ 08A10904 + .incbin "baserom.gba", 0xA10904, 0x0000018 + +gUnk_08A1091C:: @ 08A1091C + .incbin "baserom.gba", 0xA1091C, 0x000000C + +gUnk_08A10928:: @ 08A10928 + .incbin "baserom.gba", 0xA10928, 0x0000018 + +gUnk_08A10940:: @ 08A10940 + .incbin "baserom.gba", 0xA10940, 0x0000018 + +gUnk_08A10958:: @ 08A10958 + .incbin "baserom.gba", 0xA10958, 0x0000018 + +gUnk_08A10970:: @ 08A10970 + .incbin "baserom.gba", 0xA10970, 0x0000018 + +gUnk_08A10988:: @ 08A10988 + .incbin "baserom.gba", 0xA10988, 0x000000C + +gUnk_08A10994:: @ 08A10994 + .incbin "baserom.gba", 0xA10994, 0x000000C + +gUnk_08A109A0:: @ 08A109A0 + .incbin "baserom.gba", 0xA109A0, 0x0000018 + +gUnk_08A109B8:: @ 08A109B8 + .incbin "baserom.gba", 0xA109B8, 0x000000C + +gUnk_08A109C4:: @ 08A109C4 + .incbin "baserom.gba", 0xA109C4, 0x0000018 + +gUnk_08A109DC:: @ 08A109DC + .incbin "baserom.gba", 0xA109DC, 0x000000C + +gUnk_08A109E8:: @ 08A109E8 + .incbin "baserom.gba", 0xA109E8, 0x000000C + +gUnk_08A109F4:: @ 08A109F4 + .incbin "baserom.gba", 0xA109F4, 0x000000C + +gUnk_08A10A00:: @ 08A10A00 + .incbin "baserom.gba", 0xA10A00, 0x000000C + +gUnk_08A10A0C:: @ 08A10A0C + .incbin "baserom.gba", 0xA10A0C, 0x0000018 + +gUnk_08A10A24:: @ 08A10A24 + .incbin "baserom.gba", 0xA10A24, 0x0000018 + +gUnk_08A10A3C:: @ 08A10A3C + .incbin "baserom.gba", 0xA10A3C, 0x000000C + +gUnk_08A10A48:: @ 08A10A48 + .incbin "baserom.gba", 0xA10A48, 0x000000C + +gUnk_08A10A54:: @ 08A10A54 + .incbin "baserom.gba", 0xA10A54, 0x0000018 + +gUnk_08A10A6C:: @ 08A10A6C + .incbin "baserom.gba", 0xA10A6C, 0x0000018 + +gUnk_08A10A84:: @ 08A10A84 + .incbin "baserom.gba", 0xA10A84, 0x000000C + +gUnk_08A10A90:: @ 08A10A90 + .incbin "baserom.gba", 0xA10A90, 0x000000C + +gUnk_08A10A9C:: @ 08A10A9C + .incbin "baserom.gba", 0xA10A9C, 0x000000C + +gUnk_08A10AA8:: @ 08A10AA8 + .incbin "baserom.gba", 0xA10AA8, 0x0000003 + +gUnk_08A10AAB:: @ 08A10AAB + .incbin "baserom.gba", 0xA10AAB, 0x0000009 + +gUnk_08A10AB4:: @ 08A10AB4 + .incbin "baserom.gba", 0xA10AB4, 0x000000C + +gUnk_08A10AC0:: @ 08A10AC0 + .incbin "baserom.gba", 0xA10AC0, 0x000000C + +gUnk_08A10ACC:: @ 08A10ACC + .incbin "baserom.gba", 0xA10ACC, 0x0000018 + +gUnk_08A10AE4:: @ 08A10AE4 + .incbin "baserom.gba", 0xA10AE4, 0x000000C + +gUnk_08A10AF0:: @ 08A10AF0 + .incbin "baserom.gba", 0xA10AF0, 0x0000018 + +gUnk_08A10B08:: @ 08A10B08 + .incbin "baserom.gba", 0xA10B08, 0x0000018 + +gUnk_08A10B20:: @ 08A10B20 + .incbin "baserom.gba", 0xA10B20, 0x0000018 + +gUnk_08A10B38:: @ 08A10B38 + .incbin "baserom.gba", 0xA10B38, 0x000000C + +gUnk_08A10B44:: @ 08A10B44 + .incbin "baserom.gba", 0xA10B44, 0x0000018 + +gUnk_08A10B5C:: @ 08A10B5C + .incbin "baserom.gba", 0xA10B5C, 0x000000C + +gUnk_08A10B68:: @ 08A10B68 + .incbin "baserom.gba", 0xA10B68, 0x000000C + +gUnk_08A10B74:: @ 08A10B74 + .incbin "baserom.gba", 0xA10B74, 0x000000C + +gUnk_08A10B80:: @ 08A10B80 + .incbin "baserom.gba", 0xA10B80, 0x000000C + +gUnk_08A10B8C:: @ 08A10B8C + .incbin "baserom.gba", 0xA10B8C, 0x0000018 + +gUnk_08A10BA4:: @ 08A10BA4 + .incbin "baserom.gba", 0xA10BA4, 0x000000C + +gUnk_08A10BB0:: @ 08A10BB0 + .incbin "baserom.gba", 0xA10BB0, 0x000000C + +gUnk_08A10BBC:: @ 08A10BBC + .incbin "baserom.gba", 0xA10BBC, 0x000000C + +gUnk_08A10BC8:: @ 08A10BC8 + .incbin "baserom.gba", 0xA10BC8, 0x000000C + +gUnk_08A10BD4:: @ 08A10BD4 + .incbin "baserom.gba", 0xA10BD4, 0x000000C + +gUnk_08A10BE0:: @ 08A10BE0 + .incbin "baserom.gba", 0xA10BE0, 0x000000C + +gUnk_08A10BEC:: @ 08A10BEC + .incbin "baserom.gba", 0xA10BEC, 0x000000C + +gUnk_08A10BF8:: @ 08A10BF8 + .incbin "baserom.gba", 0xA10BF8, 0x000000C + +gUnk_08A10C04:: @ 08A10C04 + .incbin "baserom.gba", 0xA10C04, 0x000000C + +gUnk_08A10C10:: @ 08A10C10 + .incbin "baserom.gba", 0xA10C10, 0x000000C + +gUnk_08A10C1C:: @ 08A10C1C + .incbin "baserom.gba", 0xA10C1C, 0x000000C + +gUnk_08A10C28:: @ 08A10C28 + .incbin "baserom.gba", 0xA10C28, 0x000000C + +gUnk_08A10C34:: @ 08A10C34 + .incbin "baserom.gba", 0xA10C34, 0x000000C + +gUnk_08A10C40:: @ 08A10C40 + .incbin "baserom.gba", 0xA10C40, 0x000000C + +gUnk_08A10C4C:: @ 08A10C4C + .incbin "baserom.gba", 0xA10C4C, 0x000000C + +gUnk_08A10C58:: @ 08A10C58 + .incbin "baserom.gba", 0xA10C58, 0x000000C + +gUnk_08A10C64:: @ 08A10C64 + .incbin "baserom.gba", 0xA10C64, 0x000000C + +gUnk_08A10C70:: @ 08A10C70 + .incbin "baserom.gba", 0xA10C70, 0x0000024 + +gUnk_08A10C94:: @ 08A10C94 + .incbin "baserom.gba", 0xA10C94, 0x0000018 + +gUnk_08A10CAC:: @ 08A10CAC + .incbin "baserom.gba", 0xA10CAC, 0x000000C + +gUnk_08A10CB8:: @ 08A10CB8 + .incbin "baserom.gba", 0xA10CB8, 0x000000C + +gUnk_08A10CC4:: @ 08A10CC4 + .incbin "baserom.gba", 0xA10CC4, 0x0000018 + +gUnk_08A10CDC:: @ 08A10CDC + .incbin "baserom.gba", 0xA10CDC, 0x000000C + +gUnk_08A10CE8:: @ 08A10CE8 + .incbin "baserom.gba", 0xA10CE8, 0x0000018 + +gUnk_08A10D00:: @ 08A10D00 + .incbin "baserom.gba", 0xA10D00, 0x0000024 + +gUnk_08A10D24:: @ 08A10D24 + .incbin "baserom.gba", 0xA10D24, 0x000000C + +gUnk_08A10D30:: @ 08A10D30 + .incbin "baserom.gba", 0xA10D30, 0x000000C + +gUnk_08A10D3C:: @ 08A10D3C + .incbin "baserom.gba", 0xA10D3C, 0x0000018 + +gUnk_08A10D54:: @ 08A10D54 + .incbin "baserom.gba", 0xA10D54, 0x0000030 + +gUnk_08A10D84:: @ 08A10D84 + .incbin "baserom.gba", 0xA10D84, 0x000000C + +gUnk_08A10D90:: @ 08A10D90 + .incbin "baserom.gba", 0xA10D90, 0x000000C + +gUnk_08A10D9C:: @ 08A10D9C + .incbin "baserom.gba", 0xA10D9C, 0x000000C + +gUnk_08A10DA8:: @ 08A10DA8 + .incbin "baserom.gba", 0xA10DA8, 0x0000018 + +gUnk_08A10DC0:: @ 08A10DC0 + .incbin "baserom.gba", 0xA10DC0, 0x0000018 + +gUnk_08A10DD8:: @ 08A10DD8 + .incbin "baserom.gba", 0xA10DD8, 0x0000018 + +gUnk_08A10DF0:: @ 08A10DF0 + .incbin "baserom.gba", 0xA10DF0, 0x000000C + +gUnk_08A10DFC:: @ 08A10DFC + .incbin "baserom.gba", 0xA10DFC, 0x0000018 + +gUnk_08A10E14:: @ 08A10E14 + .incbin "baserom.gba", 0xA10E14, 0x000000C + +gUnk_08A10E20:: @ 08A10E20 + .incbin "baserom.gba", 0xA10E20, 0x000000C + +gUnk_08A10E2C:: @ 08A10E2C + .incbin "baserom.gba", 0xA10E2C, 0x0000018 + +gUnk_08A10E44:: @ 08A10E44 + .incbin "baserom.gba", 0xA10E44, 0x0000024 + +gUnk_08A10E68:: @ 08A10E68 + .incbin "baserom.gba", 0xA10E68, 0x000000C + +gUnk_08A10E74:: @ 08A10E74 + .incbin "baserom.gba", 0xA10E74, 0x0000030 + +gUnk_08A10EA4:: @ 08A10EA4 + .incbin "baserom.gba", 0xA10EA4, 0x0000018 + +gUnk_08A10EBC:: @ 08A10EBC + .incbin "baserom.gba", 0xA10EBC, 0x000000C + +gUnk_08A10EC8:: @ 08A10EC8 + .incbin "baserom.gba", 0xA10EC8, 0x0000024 + +gUnk_08A10EEC:: @ 08A10EEC + .incbin "baserom.gba", 0xA10EEC, 0x000000C + +gUnk_08A10EF8:: @ 08A10EF8 + .incbin "baserom.gba", 0xA10EF8, 0x000000C + +gUnk_08A10F04:: @ 08A10F04 + .incbin "baserom.gba", 0xA10F04, 0x0000018 + +gUnk_08A10F1C:: @ 08A10F1C + .incbin "baserom.gba", 0xA10F1C, 0x000000C + +gUnk_08A10F28:: @ 08A10F28 + .incbin "baserom.gba", 0xA10F28, 0x000000C + +gUnk_08A10F34:: @ 08A10F34 + .incbin "baserom.gba", 0xA10F34, 0x0000024 + +gUnk_08A10F58:: @ 08A10F58 + .incbin "baserom.gba", 0xA10F58, 0x0000018 + +gUnk_08A10F70:: @ 08A10F70 + .incbin "baserom.gba", 0xA10F70, 0x0000018 + +gUnk_08A10F88:: @ 08A10F88 + .incbin "baserom.gba", 0xA10F88, 0x0000018 + +gUnk_08A10FA0:: @ 08A10FA0 + .incbin "baserom.gba", 0xA10FA0, 0x0000018 + +gUnk_08A10FB8:: @ 08A10FB8 + .incbin "baserom.gba", 0xA10FB8, 0x0000018 + +gUnk_08A10FD0:: @ 08A10FD0 + .incbin "baserom.gba", 0xA10FD0, 0x0000018 + +gUnk_08A10FE8:: @ 08A10FE8 + .incbin "baserom.gba", 0xA10FE8, 0x0000018 + +gUnk_08A11000:: @ 08A11000 + .incbin "baserom.gba", 0xA11000, 0x0000018 + +gUnk_08A11018:: @ 08A11018 + .incbin "baserom.gba", 0xA11018, 0x0000030 + +gUnk_08A11048:: @ 08A11048 + .incbin "baserom.gba", 0xA11048, 0x0000024 + +gUnk_08A1106C:: @ 08A1106C + .incbin "baserom.gba", 0xA1106C, 0x0000018 + +gUnk_08A11084:: @ 08A11084 + .incbin "baserom.gba", 0xA11084, 0x000000C + +gUnk_08A11090:: @ 08A11090 + .incbin "baserom.gba", 0xA11090, 0x000000C + +gUnk_08A1109C:: @ 08A1109C + .incbin "baserom.gba", 0xA1109C, 0x000000C + +gUnk_08A110A8:: @ 08A110A8 + .incbin "baserom.gba", 0xA110A8, 0x000000C + +gUnk_08A110B4:: @ 08A110B4 + .incbin "baserom.gba", 0xA110B4, 0x0000018 + +gUnk_08A110CC:: @ 08A110CC + .incbin "baserom.gba", 0xA110CC, 0x000000C + +gUnk_08A110D8:: @ 08A110D8 + .incbin "baserom.gba", 0xA110D8, 0x000000C + +gUnk_08A110E4:: @ 08A110E4 + .incbin "baserom.gba", 0xA110E4, 0x0000024 + +gUnk_08A11108:: @ 08A11108 + .incbin "baserom.gba", 0xA11108, 0x0000024 + +gUnk_08A1112C:: @ 08A1112C + .incbin "baserom.gba", 0xA1112C, 0x0000018 + +gUnk_08A11144:: @ 08A11144 + .incbin "baserom.gba", 0xA11144, 0x000000C + +gUnk_08A11150:: @ 08A11150 + .incbin "baserom.gba", 0xA11150, 0x0000018 + +gUnk_08A11168:: @ 08A11168 + .incbin "baserom.gba", 0xA11168, 0x000000C + +gUnk_08A11174:: @ 08A11174 + .incbin "baserom.gba", 0xA11174, 0x000000C + +gUnk_08A11180:: @ 08A11180 + .incbin "baserom.gba", 0xA11180, 0x000000C + +gUnk_08A1118C:: @ 08A1118C + .incbin "baserom.gba", 0xA1118C, 0x000000C + +gUnk_08A11198:: @ 08A11198 + .incbin "baserom.gba", 0xA11198, 0x000000C + +gUnk_08A111A4:: @ 08A111A4 + .incbin "baserom.gba", 0xA111A4, 0x000000C + +gUnk_08A111B0:: @ 08A111B0 + .incbin "baserom.gba", 0xA111B0, 0x000000C + +gUnk_08A111BC:: @ 08A111BC + .incbin "baserom.gba", 0xA111BC, 0x0000024 + +gUnk_08A111E0:: @ 08A111E0 + .incbin "baserom.gba", 0xA111E0, 0x0000018 + +gUnk_08A111F8:: @ 08A111F8 + .incbin "baserom.gba", 0xA111F8, 0x000000C + +gUnk_08A11204:: @ 08A11204 + .incbin "baserom.gba", 0xA11204, 0x0000024 + +gUnk_08A11228:: @ 08A11228 + .incbin "baserom.gba", 0xA11228, 0x000000C + +gUnk_08A11234:: @ 08A11234 + .incbin "baserom.gba", 0xA11234, 0x000000C + +gUnk_08A11240:: @ 08A11240 + .incbin "baserom.gba", 0xA11240, 0x000000C + +gUnk_08A1124C:: @ 08A1124C + .incbin "baserom.gba", 0xA1124C, 0x000000C + +gUnk_08A11258:: @ 08A11258 + .incbin "baserom.gba", 0xA11258, 0x0000024 + +gUnk_08A1127C:: @ 08A1127C + .incbin "baserom.gba", 0xA1127C, 0x0000030 + +gUnk_08A112AC:: @ 08A112AC + .incbin "baserom.gba", 0xA112AC, 0x0000024 + +gUnk_08A112D0:: @ 08A112D0 + .incbin "baserom.gba", 0xA112D0, 0x0000018 + +gUnk_08A112E8:: @ 08A112E8 + .incbin "baserom.gba", 0xA112E8, 0x0000018 + +gUnk_08A11300:: @ 08A11300 + .incbin "baserom.gba", 0xA11300, 0x000000C + +gUnk_08A1130C:: @ 08A1130C + .incbin "baserom.gba", 0xA1130C, 0x000000C + +gUnk_08A11318:: @ 08A11318 + .incbin "baserom.gba", 0xA11318, 0x0000018 + +gUnk_08A11330:: @ 08A11330 + .incbin "baserom.gba", 0xA11330, 0x0000030 + +gUnk_08A11360:: @ 08A11360 + .incbin "baserom.gba", 0xA11360, 0x000000C + +gUnk_08A1136C:: @ 08A1136C + .incbin "baserom.gba", 0xA1136C, 0x0000018 + +gUnk_08A11384:: @ 08A11384 + .incbin "baserom.gba", 0xA11384, 0x0000018 + +gUnk_08A1139C:: @ 08A1139C + .incbin "baserom.gba", 0xA1139C, 0x0000018 + +gUnk_08A113B4:: @ 08A113B4 + .incbin "baserom.gba", 0xA113B4, 0x000000C + +gUnk_08A113C0:: @ 08A113C0 + .incbin "baserom.gba", 0xA113C0, 0x0000024 + +gUnk_08A113E4:: @ 08A113E4 + .incbin "baserom.gba", 0xA113E4, 0x0000018 + +gUnk_08A113FC:: @ 08A113FC + .incbin "baserom.gba", 0xA113FC, 0x0000018 + +gUnk_08A11414:: @ 08A11414 + .incbin "baserom.gba", 0xA11414, 0x0000018 + +gUnk_08A1142C:: @ 08A1142C + .incbin "baserom.gba", 0xA1142C, 0x0000018 + +gUnk_08A11444:: @ 08A11444 + .incbin "baserom.gba", 0xA11444, 0x0000018 + +gUnk_08A1145C:: @ 08A1145C + .incbin "baserom.gba", 0xA1145C, 0x000000C + +gUnk_08A11468:: @ 08A11468 + .incbin "baserom.gba", 0xA11468, 0x0000024 + +gUnk_08A1148C:: @ 08A1148C + .incbin "baserom.gba", 0xA1148C, 0x0000030 + +gUnk_08A114BC:: @ 08A114BC + .incbin "baserom.gba", 0xA114BC, 0x0000024 + +gUnk_08A114E0:: @ 08A114E0 + .incbin "baserom.gba", 0xA114E0, 0x0000024 + +gUnk_08A11504:: @ 08A11504 + .incbin "baserom.gba", 0xA11504, 0x0000018 + +gUnk_08A1151C:: @ 08A1151C + .incbin "baserom.gba", 0xA1151C, 0x000000C + +gUnk_08A11528:: @ 08A11528 + .incbin "baserom.gba", 0xA11528, 0x000000C + +gUnk_08A11534:: @ 08A11534 + .incbin "baserom.gba", 0xA11534, 0x000000C + +gUnk_08A11540:: @ 08A11540 + .incbin "baserom.gba", 0xA11540, 0x000000C + +gUnk_08A1154C:: @ 08A1154C + .incbin "baserom.gba", 0xA1154C, 0x0000018 + +gUnk_08A11564:: @ 08A11564 + .incbin "baserom.gba", 0xA11564, 0x000000C + +gUnk_08A11570:: @ 08A11570 + .incbin "baserom.gba", 0xA11570, 0x0000018 + +gUnk_08A11588:: @ 08A11588 + .incbin "baserom.gba", 0xA11588, 0x0000018 + +gUnk_08A115A0:: @ 08A115A0 + .incbin "baserom.gba", 0xA115A0, 0x000000C + +gUnk_08A115AC:: @ 08A115AC + .incbin "baserom.gba", 0xA115AC, 0x0000024 + +gUnk_08A115D0:: @ 08A115D0 + .incbin "baserom.gba", 0xA115D0, 0x0000024 + +gUnk_08A115F4:: @ 08A115F4 + .incbin "baserom.gba", 0xA115F4, 0x0000018 + +gUnk_08A1160C:: @ 08A1160C + .incbin "baserom.gba", 0xA1160C, 0x000000C + +gUnk_08A11618:: @ 08A11618 + .incbin "baserom.gba", 0xA11618, 0x000000C + +gUnk_08A11624:: @ 08A11624 + .incbin "baserom.gba", 0xA11624, 0x000000C + +gUnk_08A11630:: @ 08A11630 + .incbin "baserom.gba", 0xA11630, 0x000000C + +gUnk_08A1163C:: @ 08A1163C + .incbin "baserom.gba", 0xA1163C, 0x0000018 + +gUnk_08A11654:: @ 08A11654 + .incbin "baserom.gba", 0xA11654, 0x0000018 + +gUnk_08A1166C:: @ 08A1166C + .incbin "baserom.gba", 0xA1166C, 0x0000024 + +gUnk_08A11690:: @ 08A11690 + .incbin "baserom.gba", 0xA11690, 0x000000C + +gUnk_08A1169C:: @ 08A1169C + .incbin "baserom.gba", 0xA1169C, 0x000000C + +gUnk_08A116A8:: @ 08A116A8 + .incbin "baserom.gba", 0xA116A8, 0x000000C + +gUnk_08A116B4:: @ 08A116B4 + .incbin "baserom.gba", 0xA116B4, 0x0000018 + +gUnk_08A116CC:: @ 08A116CC + .incbin "baserom.gba", 0xA116CC, 0x000000C + +gUnk_08A116D8:: @ 08A116D8 + .incbin "baserom.gba", 0xA116D8, 0x000000C + +gUnk_08A116E4:: @ 08A116E4 + .incbin "baserom.gba", 0xA116E4, 0x000000C + +gUnk_08A116F0:: @ 08A116F0 + .incbin "baserom.gba", 0xA116F0, 0x000000C + +gUnk_08A116FC:: @ 08A116FC + .incbin "baserom.gba", 0xA116FC, 0x000000C + +gUnk_08A11708:: @ 08A11708 + .incbin "baserom.gba", 0xA11708, 0x000000C + +gUnk_08A11714:: @ 08A11714 + .incbin "baserom.gba", 0xA11714, 0x000000C + +gUnk_08A11720:: @ 08A11720 + .incbin "baserom.gba", 0xA11720, 0x000000C + +gUnk_08A1172C:: @ 08A1172C + .incbin "baserom.gba", 0xA1172C, 0x000000C + +gUnk_08A11738:: @ 08A11738 + .incbin "baserom.gba", 0xA11738, 0x000000C + +gUnk_08A11744:: @ 08A11744 + .incbin "baserom.gba", 0xA11744, 0x000000C + +gUnk_08A11750:: @ 08A11750 + .incbin "baserom.gba", 0xA11750, 0x000000C + +gUnk_08A1175C:: @ 08A1175C + .incbin "baserom.gba", 0xA1175C, 0x000000C + +gUnk_08A11768:: @ 08A11768 + .incbin "baserom.gba", 0xA11768, 0x000000C + +gUnk_08A11774:: @ 08A11774 + .incbin "baserom.gba", 0xA11774, 0x000000C + +gUnk_08A11780:: @ 08A11780 + .incbin "baserom.gba", 0xA11780, 0x0000018 + +gUnk_08A11798:: @ 08A11798 + .incbin "baserom.gba", 0xA11798, 0x000000C + +gUnk_08A117A4:: @ 08A117A4 + .incbin "baserom.gba", 0xA117A4, 0x000000C + +gUnk_08A117B0:: @ 08A117B0 + .incbin "baserom.gba", 0xA117B0, 0x000000C + +gUnk_08A117BC:: @ 08A117BC + .incbin "baserom.gba", 0xA117BC, 0x000000C + +gUnk_08A117C8:: @ 08A117C8 + .incbin "baserom.gba", 0xA117C8, 0x000000C + +gUnk_08A117D4:: @ 08A117D4 + .incbin "baserom.gba", 0xA117D4, 0x000000C + +gUnk_08A117E0:: @ 08A117E0 + .incbin "baserom.gba", 0xA117E0, 0x000000C + +gUnk_08A117EC:: @ 08A117EC + .incbin "baserom.gba", 0xA117EC, 0x000000C + +gUnk_08A117F8:: @ 08A117F8 + .incbin "baserom.gba", 0xA117F8, 0x000000C + +gUnk_08A11804:: @ 08A11804 + .incbin "baserom.gba", 0xA11804, 0x000000C + +gUnk_08A11810:: @ 08A11810 + .incbin "baserom.gba", 0xA11810, 0x000000C + +gUnk_08A1181C:: @ 08A1181C + .incbin "baserom.gba", 0xA1181C, 0x000000C + +gUnk_08A11828:: @ 08A11828 + .incbin "baserom.gba", 0xA11828, 0x000000C + +gUnk_08A11834:: @ 08A11834 + .incbin "baserom.gba", 0xA11834, 0x000000C + +gUnk_08A11840:: @ 08A11840 + .incbin "baserom.gba", 0xA11840, 0x000000C + +gUnk_08A1184C:: @ 08A1184C + .incbin "baserom.gba", 0xA1184C, 0x000000C + +gUnk_08A11858:: @ 08A11858 + .incbin "baserom.gba", 0xA11858, 0x0000018 + +gUnk_08A11870:: @ 08A11870 + .incbin "baserom.gba", 0xA11870, 0x0000018 + +gUnk_08A11888:: @ 08A11888 + .incbin "baserom.gba", 0xA11888, 0x000000C + +gUnk_08A11894:: @ 08A11894 + .incbin "baserom.gba", 0xA11894, 0x000000C + +gUnk_08A118A0:: @ 08A118A0 + .incbin "baserom.gba", 0xA118A0, 0x000000C + +gUnk_08A118AC:: @ 08A118AC + .incbin "baserom.gba", 0xA118AC, 0x000000C + +gUnk_08A118B8:: @ 08A118B8 + .incbin "baserom.gba", 0xA118B8, 0x000000C + +gUnk_08A118C4:: @ 08A118C4 + .incbin "baserom.gba", 0xA118C4, 0x000000C + +gUnk_08A118D0:: @ 08A118D0 + .incbin "baserom.gba", 0xA118D0, 0x000000C + +gUnk_08A118DC:: @ 08A118DC + .incbin "baserom.gba", 0xA118DC, 0x000000C + +gUnk_08A118E8:: @ 08A118E8 + .incbin "baserom.gba", 0xA118E8, 0x000000C + +gUnk_08A118F4:: @ 08A118F4 + .incbin "baserom.gba", 0xA118F4, 0x000000C + +gUnk_08A11900:: @ 08A11900 + .incbin "baserom.gba", 0xA11900, 0x000000C + +gUnk_08A1190C:: @ 08A1190C + .incbin "baserom.gba", 0xA1190C, 0x000000C + +gUnk_08A11918:: @ 08A11918 + .incbin "baserom.gba", 0xA11918, 0x000000C + +gUnk_08A11924:: @ 08A11924 + .incbin "baserom.gba", 0xA11924, 0x000000C + +gUnk_08A11930:: @ 08A11930 + .incbin "baserom.gba", 0xA11930, 0x000000C + +gUnk_08A1193C:: @ 08A1193C + .incbin "baserom.gba", 0xA1193C, 0x000000C + +gUnk_08A11948:: @ 08A11948 + .incbin "baserom.gba", 0xA11948, 0x000000C + +gUnk_08A11954:: @ 08A11954 + .incbin "baserom.gba", 0xA11954, 0x000000C + +gUnk_08A11960:: @ 08A11960 + .incbin "baserom.gba", 0xA11960, 0x000000C + +gUnk_08A1196C:: @ 08A1196C + .incbin "baserom.gba", 0xA1196C, 0x000000C + +gUnk_08A11978:: @ 08A11978 + .incbin "baserom.gba", 0xA11978, 0x000000C + +gUnk_08A11984:: @ 08A11984 + .incbin "baserom.gba", 0xA11984, 0x000000C + +gUnk_08A11990:: @ 08A11990 + .incbin "baserom.gba", 0xA11990, 0x000000C + +gUnk_08A1199C:: @ 08A1199C + .incbin "baserom.gba", 0xA1199C, 0x000000C + +gUnk_08A119A8:: @ 08A119A8 + .incbin "baserom.gba", 0xA119A8, 0x000000C + +gUnk_08A119B4:: @ 08A119B4 + .incbin "baserom.gba", 0xA119B4, 0x000000C + +gUnk_08A119C0:: @ 08A119C0 + .incbin "baserom.gba", 0xA119C0, 0x000000C + +gUnk_08A119CC:: @ 08A119CC + .incbin "baserom.gba", 0xA119CC, 0x000000C + +gUnk_08A119D8:: @ 08A119D8 + .incbin "baserom.gba", 0xA119D8, 0x000000C + +gUnk_08A119E4:: @ 08A119E4 + .incbin "baserom.gba", 0xA119E4, 0x000000C + +gUnk_08A119F0:: @ 08A119F0 + .incbin "baserom.gba", 0xA119F0, 0x000000C + +gUnk_08A119FC:: @ 08A119FC + .incbin "baserom.gba", 0xA119FC, 0x000000C + +gUnk_08A11A08:: @ 08A11A08 + .incbin "baserom.gba", 0xA11A08, 0x000000C + +gUnk_08A11A14:: @ 08A11A14 + .incbin "baserom.gba", 0xA11A14, 0x000000C + +gUnk_08A11A20:: @ 08A11A20 + .incbin "baserom.gba", 0xA11A20, 0x000000C + +gUnk_08A11A2C:: @ 08A11A2C + .incbin "baserom.gba", 0xA11A2C, 0x000000C + +gUnk_08A11A38:: @ 08A11A38 + .incbin "baserom.gba", 0xA11A38, 0x000000C + +gUnk_08A11A44:: @ 08A11A44 + .incbin "baserom.gba", 0xA11A44, 0x000000C + +gUnk_08A11A50:: @ 08A11A50 + .incbin "baserom.gba", 0xA11A50, 0x000000C + +gUnk_08A11A5C:: @ 08A11A5C + .incbin "baserom.gba", 0xA11A5C, 0x000000C + +gUnk_08A11A68:: @ 08A11A68 + .incbin "baserom.gba", 0xA11A68, 0x000000C + +gUnk_08A11A74:: @ 08A11A74 + .incbin "baserom.gba", 0xA11A74, 0x000000C + +gUnk_08A11A80:: @ 08A11A80 + .incbin "baserom.gba", 0xA11A80, 0x000000C + +gUnk_08A11A8C:: @ 08A11A8C + .incbin "baserom.gba", 0xA11A8C, 0x000000C + +gUnk_08A11A98:: @ 08A11A98 + .incbin "baserom.gba", 0xA11A98, 0x000000C + +gUnk_08A11AA4:: @ 08A11AA4 + .incbin "baserom.gba", 0xA11AA4, 0x000000C + +gUnk_08A11AB0:: @ 08A11AB0 + .incbin "baserom.gba", 0xA11AB0, 0x000000C + +gUnk_08A11ABC:: @ 08A11ABC + .incbin "baserom.gba", 0xA11ABC, 0x000000C + +gUnk_08A11AC8:: @ 08A11AC8 + .incbin "baserom.gba", 0xA11AC8, 0x000000C + +gUnk_08A11AD4:: @ 08A11AD4 + .incbin "baserom.gba", 0xA11AD4, 0x000000C + +gUnk_08A11AE0:: @ 08A11AE0 + .incbin "baserom.gba", 0xA11AE0, 0x000000C + +gUnk_08A11AEC:: @ 08A11AEC + .incbin "baserom.gba", 0xA11AEC, 0x000000C + +gUnk_08A11AF8:: @ 08A11AF8 + .incbin "baserom.gba", 0xA11AF8, 0x000000C + +gUnk_08A11B04:: @ 08A11B04 + .incbin "baserom.gba", 0xA11B04, 0x000000C + +gUnk_08A11B10:: @ 08A11B10 + .incbin "baserom.gba", 0xA11B10, 0x000000C + +gUnk_08A11B1C:: @ 08A11B1C + .incbin "baserom.gba", 0xA11B1C, 0x000000C + +gUnk_08A11B28:: @ 08A11B28 + .incbin "baserom.gba", 0xA11B28, 0x000000C + +gUnk_08A11B34:: @ 08A11B34 + .incbin "baserom.gba", 0xA11B34, 0x000000C + +gUnk_08A11B40:: @ 08A11B40 + .incbin "baserom.gba", 0xA11B40, 0x000000C + +gUnk_08A11B4C:: @ 08A11B4C + .incbin "baserom.gba", 0xA11B4C, 0x000000C + +gUnk_08A11B58:: @ 08A11B58 + .incbin "baserom.gba", 0xA11B58, 0x000000C + +gUnk_08A11B64:: @ 08A11B64 + .incbin "baserom.gba", 0xA11B64, 0x000000C + +gUnk_08A11B70:: @ 08A11B70 + .incbin "baserom.gba", 0xA11B70, 0x000000C + +gUnk_08A11B7C:: @ 08A11B7C + .incbin "baserom.gba", 0xA11B7C, 0x000000C + +gUnk_08A11B88:: @ 08A11B88 + .incbin "baserom.gba", 0xA11B88, 0x000000C + +gUnk_08A11B94:: @ 08A11B94 + .incbin "baserom.gba", 0xA11B94, 0x000000C + +gUnk_08A11BA0:: @ 08A11BA0 + .incbin "baserom.gba", 0xA11BA0, 0x000000C + +gUnk_08A11BAC:: @ 08A11BAC + .incbin "baserom.gba", 0xA11BAC, 0x0000030 + +gUnk_08A11BDC:: @ 08A11BDC + .incbin "baserom.gba", 0xA11BDC, 0x0000030 + +gUnk_08A11C0C:: @ 08A11C0C + .incbin "baserom.gba", 0xA11C0C, 0x0000010 + +gUnk_08A11C1C:: @ 08A11C1C + .incbin "baserom.gba", 0xA11C1C, 0x0000020 + +gUnk_08A11C3C:: @ 08A11C3C + .incbin "baserom.gba", 0xA11C3C, 0x0000180 + +gUnk_08A11DBC:: @ 08A11DBC + .incbin "baserom.gba", 0xA11DBC, 0x00009E5 + +gUnk_08A127A1:: @ 08A127A1 + .incbin "baserom.gba", 0xA127A1, 0x000072B + +gUnk_08A12ECC:: @ 08A12ECC + .incbin "baserom.gba", 0xA12ECC, 0x0000004 + +gUnk_08A12ED0:: @ 08A12ED0 + .incbin "baserom.gba", 0xA12ED0, 0x0003740 + +gUnk_08A16610:: @ 08A16610 + .incbin "baserom.gba", 0xA16610, 0x0001712 + +gUnk_08A17D22:: @ 08A17D22 + .incbin "baserom.gba", 0xA17D22, 0x000109E + +gUnk_08A18DC0:: @ 08A18DC0 + .incbin "baserom.gba", 0xA18DC0, 0x000178C + +gUnk_08A1A54C:: @ 08A1A54C + .incbin "baserom.gba", 0xA1A54C, 0x000055E + +gUnk_08A1AAAA:: @ 08A1AAAA + .incbin "baserom.gba", 0xA1AAAA, 0x0002466 + +gUnk_08A1CF10:: @ 08A1CF10 + .incbin "baserom.gba", 0xA1CF10, 0x00014E8 + +gUnk_08A1E3F8:: @ 08A1E3F8 + .incbin "baserom.gba", 0xA1E3F8, 0x0001248 + +gUnk_08A1F640:: @ 08A1F640 + .incbin "baserom.gba", 0xA1F640, 0x00009B0 + +gUnk_08A1FFF0:: @ 08A1FFF0 + .incbin "baserom.gba", 0xA1FFF0, 0x0000110 + +gUnk_08A20100:: @ 08A20100 + .incbin "baserom.gba", 0xA20100, 0x00016F7 + +gUnk_08A217F7:: @ 08A217F7 + .incbin "baserom.gba", 0xA217F7, 0x00019AD + +gUnk_08A231A4:: @ 08A231A4 + .incbin "baserom.gba", 0xA231A4, 0x00009E5 + +gUnk_08A23B89:: @ 08A23B89 + .incbin "baserom.gba", 0xA23B89, 0x00003B7 + +gUnk_08A23F40:: @ 08A23F40 + .incbin "baserom.gba", 0xA23F40, 0x00001B8 + +gUnk_08A240F8:: @ 08A240F8 + .incbin "baserom.gba", 0xA240F8, 0x0004254 + +gUnk_08A2834C:: @ 08A2834C + .incbin "baserom.gba", 0xA2834C, 0x000420C + +gUnk_08A2C558:: @ 08A2C558 + .incbin "baserom.gba", 0xA2C558, 0x000144A + +gUnk_08A2D9A2:: @ 08A2D9A2 + .incbin "baserom.gba", 0xA2D9A2, 0x0000500 + +gUnk_08A2DEA2:: @ 08A2DEA2 + .incbin "baserom.gba", 0xA2DEA2, 0x0000A60 + +gUnk_08A2E902:: @ 08A2E902 + .incbin "baserom.gba", 0xA2E902, 0x0001705 + +gUnk_08A30007:: @ 08A30007 + .incbin "baserom.gba", 0xA30007, 0x0000009 + +gUnk_08A30010:: @ 08A30010 + .incbin "baserom.gba", 0xA30010, 0x0000092 + +gUnk_08A300A2:: @ 08A300A2 + .incbin "baserom.gba", 0xA300A2, 0x0000001 + +gUnk_08A300A3:: @ 08A300A3 + .incbin "baserom.gba", 0xA300A3, 0x00007FF + +gUnk_08A308A2:: @ 08A308A2 + .incbin "baserom.gba", 0xA308A2, 0x0001435 + +gUnk_08A31CD7:: @ 08A31CD7 + .incbin "baserom.gba", 0xA31CD7, 0x0000694 + +gUnk_08A3236B:: @ 08A3236B + .incbin "baserom.gba", 0xA3236B, 0x0002B89 + +gUnk_08A34EF4:: @ 08A34EF4 + .incbin "baserom.gba", 0xA34EF4, 0x000010C + +gUnk_08A35000:: @ 08A35000 + .incbin "baserom.gba", 0xA35000, 0x00033A3 + +gUnk_08A383A3:: @ 08A383A3 + .incbin "baserom.gba", 0xA383A3, 0x000275C + +gUnk_08A3AAFF:: @ 08A3AAFF + .incbin "baserom.gba", 0xA3AAFF, 0x0001C1D + +gUnk_08A3C71C:: @ 08A3C71C + .incbin "baserom.gba", 0xA3C71C, 0x0003035 + +gUnk_08A3F751:: @ 08A3F751 + .incbin "baserom.gba", 0xA3F751, 0x0005A0F + +gUnk_08A45160:: @ 08A45160 + .incbin "baserom.gba", 0xA45160, 0x00029AD + +gUnk_08A47B0D:: @ 08A47B0D + .incbin "baserom.gba", 0xA47B0D, 0x000048B + +gUnk_08A47F98:: @ 08A47F98 + .incbin "baserom.gba", 0xA47F98, 0x000100D + +gUnk_08A48FA5:: @ 08A48FA5 + .incbin "baserom.gba", 0xA48FA5, 0x000110A + +gUnk_08A4A0AF:: @ 08A4A0AF + .incbin "baserom.gba", 0xA4A0AF, 0x0003157 + +gUnk_08A4D206:: @ 08A4D206 + .incbin "baserom.gba", 0xA4D206, 0x0000E02 + +gUnk_08A4E008:: @ 08A4E008 + .incbin "baserom.gba", 0xA4E008, 0x0000100 + +gUnk_08A4E108:: @ 08A4E108 + .incbin "baserom.gba", 0xA4E108, 0x0000300 + +gUnk_08A4E408:: @ 08A4E408 + .incbin "baserom.gba", 0xA4E408, 0x000049C + +gUnk_08A4E8A4:: @ 08A4E8A4 + .incbin "baserom.gba", 0xA4E8A4, 0x0000544 + +gUnk_08A4EDE8:: @ 08A4EDE8 + .incbin "baserom.gba", 0xA4EDE8, 0x0000218 + +gUnk_08A4F000:: @ 08A4F000 + .incbin "baserom.gba", 0xA4F000, 0x00000F9 + +gUnk_08A4F0F9:: @ 08A4F0F9 + .incbin "baserom.gba", 0xA4F0F9, 0x0000307 + +gUnk_08A4F400:: @ 08A4F400 + .incbin "baserom.gba", 0xA4F400, 0x0000CA4 + +gUnk_08A500A4:: @ 08A500A4 + .incbin "baserom.gba", 0xA500A4, 0x00013D7 + +gUnk_08A5147B:: @ 08A5147B + .incbin "baserom.gba", 0xA5147B, 0x00034F1 + +gUnk_08A5496C:: @ 08A5496C + .incbin "baserom.gba", 0xA5496C, 0x0000683 + +gUnk_08A54FEF:: @ 08A54FEF + .incbin "baserom.gba", 0xA54FEF, 0x0003119 + +gUnk_08A58108:: @ 08A58108 + .incbin "baserom.gba", 0xA58108, 0x0002804 + +gUnk_08A5A90C:: @ 08A5A90C + .incbin "baserom.gba", 0xA5A90C, 0x000362C + +gUnk_08A5DF38:: @ 08A5DF38 + .incbin "baserom.gba", 0xA5DF38, 0x00024BF + +gUnk_08A603F7:: @ 08A603F7 + .incbin "baserom.gba", 0xA603F7, 0x0000411 + +gUnk_08A60808:: @ 08A60808 + .incbin "baserom.gba", 0xA60808, 0x000007D + +gUnk_08A60885:: @ 08A60885 + .incbin "baserom.gba", 0xA60885, 0x00032AB + +gUnk_08A63B30:: @ 08A63B30 + .incbin "baserom.gba", 0xA63B30, 0x000286C + +gUnk_08A6639C:: @ 08A6639C + .incbin "baserom.gba", 0xA6639C, 0x000366A + +gUnk_08A69A06:: @ 08A69A06 + .incbin "baserom.gba", 0xA69A06, 0x000312A + +gUnk_08A6CB30:: @ 08A6CB30 + .incbin "baserom.gba", 0xA6CB30, 0x00016E4 + +gUnk_08A6E214:: @ 08A6E214 + .incbin "baserom.gba", 0xA6E214, 0x0001E0B + +gUnk_08A7001F:: @ 08A7001F + .incbin "baserom.gba", 0xA7001F, 0x00001F6 + +gUnk_08A70215:: @ 08A70215 + .incbin "baserom.gba", 0xA70215, 0x000002A + +gUnk_08A7023F:: @ 08A7023F + .incbin "baserom.gba", 0xA7023F, 0x0001E2A + +gUnk_08A72069:: @ 08A72069 + .incbin "baserom.gba", 0xA72069, 0x00001EC + +gUnk_08A72255:: @ 08A72255 + .incbin "baserom.gba", 0xA72255, 0x0002D2E + +gUnk_08A74F83:: @ 08A74F83 + .incbin "baserom.gba", 0xA74F83, 0x0000323 + +gUnk_08A752A6:: @ 08A752A6 + .incbin "baserom.gba", 0xA752A6, 0x0003AF2 + +gUnk_08A78D98:: @ 08A78D98 + .incbin "baserom.gba", 0xA78D98, 0x0000528 + +gUnk_08A792C0:: @ 08A792C0 + .incbin "baserom.gba", 0xA792C0, 0x000143B + +gUnk_08A7A6FB:: @ 08A7A6FB + .incbin "baserom.gba", 0xA7A6FB, 0x0001861 + +gUnk_08A7BF5C:: @ 08A7BF5C + .incbin "baserom.gba", 0xA7BF5C, 0x000119C + +gUnk_08A7D0F8:: @ 08A7D0F8 + .incbin "baserom.gba", 0xA7D0F8, 0x0000690 + +gUnk_08A7D788:: @ 08A7D788 + .incbin "baserom.gba", 0xA7D788, 0x000258F + +gUnk_08A7FD17:: @ 08A7FD17 + .incbin "baserom.gba", 0xA7FD17, 0x00002E9 + +gUnk_08A80000:: @ 08A80000 + .incbin "baserom.gba", 0xA80000, 0x0000001 + +gUnk_08A80001:: @ 08A80001 + .incbin "baserom.gba", 0xA80001, 0x00008A7 + +gUnk_08A808A8:: @ 08A808A8 + .incbin "baserom.gba", 0xA808A8, 0x000007C + +gUnk_08A80924:: @ 08A80924 + .incbin "baserom.gba", 0xA80924, 0x00009C0 + +gUnk_08A812E4:: @ 08A812E4 + .incbin "baserom.gba", 0xA812E4, 0x0000779 + +gUnk_08A81A5D:: @ 08A81A5D + .incbin "baserom.gba", 0xA81A5D, 0x0000AA3 + +gUnk_08A82500:: @ 08A82500 + .incbin "baserom.gba", 0xA82500, 0x00028CC + +gUnk_08A84DCC:: @ 08A84DCC + .incbin "baserom.gba", 0xA84DCC, 0x0001FDD + +gUnk_08A86DA9:: @ 08A86DA9 + .incbin "baserom.gba", 0xA86DA9, 0x0000710 + +gUnk_08A874B9:: @ 08A874B9 + .incbin "baserom.gba", 0xA874B9, 0x00009F6 + +gUnk_08A87EAF:: @ 08A87EAF + .incbin "baserom.gba", 0xA87EAF, 0x00009A5 + +gUnk_08A88854:: @ 08A88854 + .incbin "baserom.gba", 0xA88854, 0x00000A7 + +gUnk_08A888FB:: @ 08A888FB + .incbin "baserom.gba", 0xA888FB, 0x00001E5 + +gUnk_08A88AE0:: @ 08A88AE0 + .incbin "baserom.gba", 0xA88AE0, 0x00012F8 + +gUnk_08A89DD8:: @ 08A89DD8 + .incbin "baserom.gba", 0xA89DD8, 0x000196B + +gUnk_08A8B743:: @ 08A8B743 + .incbin "baserom.gba", 0xA8B743, 0x00019DB + +gUnk_08A8D11E:: @ 08A8D11E + .incbin "baserom.gba", 0xA8D11E, 0x00011F5 + +gUnk_08A8E313:: @ 08A8E313 + .incbin "baserom.gba", 0xA8E313, 0x0001395 + +gUnk_08A8F6A8:: @ 08A8F6A8 + .incbin "baserom.gba", 0xA8F6A8, 0x0000DBC + +gUnk_08A90464:: @ 08A90464 + .incbin "baserom.gba", 0xA90464, 0x000189C + +gUnk_08A91D00:: @ 08A91D00 + .incbin "baserom.gba", 0xA91D00, 0x00031FC + +gUnk_08A94EFC:: @ 08A94EFC + .incbin "baserom.gba", 0xA94EFC, 0x00007F8 + +gUnk_08A956F4:: @ 08A956F4 + .incbin "baserom.gba", 0xA956F4, 0x0002C3F + +gUnk_08A98333:: @ 08A98333 + .incbin "baserom.gba", 0xA98333, 0x0000582 + +gUnk_08A988B5:: @ 08A988B5 + .incbin "baserom.gba", 0xA988B5, 0x00010D3 + +gUnk_08A99988:: @ 08A99988 + .incbin "baserom.gba", 0xA99988, 0x0000011 + +gUnk_08A99999:: @ 08A99999 + .incbin "baserom.gba", 0xA99999, 0x00000CA + +gUnk_08A99A63:: @ 08A99A63 + .incbin "baserom.gba", 0xA99A63, 0x0000035 + +gUnk_08A99A98:: @ 08A99A98 + .incbin "baserom.gba", 0xA99A98, 0x0000F79 + +gUnk_08A9AA11:: @ 08A9AA11 + .incbin "baserom.gba", 0xA9AA11, 0x0000FA7 + +gUnk_08A9B9B8:: @ 08A9B9B8 + .incbin "baserom.gba", 0xA9B9B8, 0x0000100 + +gUnk_08A9BAB8:: @ 08A9BAB8 + .incbin "baserom.gba", 0xA9BAB8, 0x0000001 + +gUnk_08A9BAB9:: @ 08A9BAB9 + .incbin "baserom.gba", 0xA9BAB9, 0x0000001 + +gUnk_08A9BABA:: @ 08A9BABA + .incbin "baserom.gba", 0xA9BABA, 0x0000103 + +gUnk_08A9BBBD:: @ 08A9BBBD + .incbin "baserom.gba", 0xA9BBBD, 0x0000E8B + +gUnk_08A9CA48:: @ 08A9CA48 + .incbin "baserom.gba", 0xA9CA48, 0x00035B8 + +gUnk_08AA0000:: @ 08AA0000 + .incbin "baserom.gba", 0xAA0000, 0x0000007 + +gUnk_08AA0007:: @ 08AA0007 + .incbin "baserom.gba", 0xAA0007, 0x000000D + +gUnk_08AA0014:: @ 08AA0014 + .incbin "baserom.gba", 0xAA0014, 0x00000A7 + +gUnk_08AA00BB:: @ 08AA00BB + .incbin "baserom.gba", 0xAA00BB, 0x0000645 + +gUnk_08AA0700:: @ 08AA0700 + .incbin "baserom.gba", 0xAA0700, 0x0000A11 + +gUnk_08AA1111:: @ 08AA1111 + .incbin "baserom.gba", 0xAA1111, 0x0000121 + +gUnk_08AA1232:: @ 08AA1232 + .incbin "baserom.gba", 0xAA1232, 0x00003CE + +gUnk_08AA1600:: @ 08AA1600 + .incbin "baserom.gba", 0xAA1600, 0x0000501 + +gUnk_08AA1B01:: @ 08AA1B01 + .incbin "baserom.gba", 0xAA1B01, 0x0000C1F + +gUnk_08AA2720:: @ 08AA2720 + .incbin "baserom.gba", 0xAA2720, 0x00020E5 + +gUnk_08AA4805:: @ 08AA4805 + .incbin "baserom.gba", 0xAA4805, 0x00001E6 + +gUnk_08AA49EB:: @ 08AA49EB + .incbin "baserom.gba", 0xAA49EB, 0x0000B7B + +gUnk_08AA5566:: @ 08AA5566 + .incbin "baserom.gba", 0xAA5566, 0x0000A9B + +gUnk_08AA6001:: @ 08AA6001 + .incbin "baserom.gba", 0xAA6001, 0x0000DB8 + +gUnk_08AA6DB9:: @ 08AA6DB9 + .incbin "baserom.gba", 0xAA6DB9, 0x0000370 + +gUnk_08AA7129:: @ 08AA7129 + .incbin "baserom.gba", 0xAA7129, 0x00012FF + +gUnk_08AA8428:: @ 08AA8428 + .incbin "baserom.gba", 0xAA8428, 0x0000400 + +gUnk_08AA8828:: @ 08AA8828 + .incbin "baserom.gba", 0xAA8828, 0x00007D7 + +gUnk_08AA8FFF:: @ 08AA8FFF + .incbin "baserom.gba", 0xAA8FFF, 0x0000389 + +gUnk_08AA9388:: @ 08AA9388 + .incbin "baserom.gba", 0xAA9388, 0x00000A1 + +gUnk_08AA9429:: @ 08AA9429 + .incbin "baserom.gba", 0xAA9429, 0x00003E6 + +gUnk_08AA980F:: @ 08AA980F + .incbin "baserom.gba", 0xAA980F, 0x000019A + +gUnk_08AA99A9:: @ 08AA99A9 + .incbin "baserom.gba", 0xAA99A9, 0x0000827 + +gUnk_08AAA1D0:: @ 08AAA1D0 + .incbin "baserom.gba", 0xAAA1D0, 0x0000030 + +gUnk_08AAA200:: @ 08AAA200 + .incbin "baserom.gba", 0xAAA200, 0x0000100 + +gUnk_08AAA300:: @ 08AAA300 + .incbin "baserom.gba", 0xAAA300, 0x00007AA + +gUnk_08AAAAAA:: @ 08AAAAAA + .incbin "baserom.gba", 0xAAAAAA, 0x0000111 + +gUnk_08AAABBB:: @ 08AAABBB + .incbin "baserom.gba", 0xAAABBB, 0x0000DFD + +gUnk_08AAB9B8:: @ 08AAB9B8 + .incbin "baserom.gba", 0xAAB9B8, 0x0000003 + +gUnk_08AAB9BB:: @ 08AAB9BB + .incbin "baserom.gba", 0xAAB9BB, 0x0000200 + +gUnk_08AABBBB:: @ 08AABBBB + .incbin "baserom.gba", 0xAABBBB, 0x000051D + +gUnk_08AAC0D8:: @ 08AAC0D8 + .incbin "baserom.gba", 0xAAC0D8, 0x0003E5A + +gUnk_08AAFF32:: @ 08AAFF32 + .incbin "baserom.gba", 0xAAFF32, 0x0000023 + +gUnk_08AAFF55:: @ 08AAFF55 + .incbin "baserom.gba", 0xAAFF55, 0x00000B1 + +gUnk_08AB0006:: @ 08AB0006 + .incbin "baserom.gba", 0xAB0006, 0x0000033 + +gUnk_08AB0039:: @ 08AB0039 + .incbin "baserom.gba", 0xAB0039, 0x00009C7 + +gUnk_08AB0A00:: @ 08AB0A00 + .incbin "baserom.gba", 0xAB0A00, 0x0000FE7 + +gUnk_08AB19E7:: @ 08AB19E7 + .incbin "baserom.gba", 0xAB19E7, 0x0002A4C + +gUnk_08AB4433:: @ 08AB4433 + .incbin "baserom.gba", 0xAB4433, 0x0000E44 + +gUnk_08AB5277:: @ 08AB5277 + .incbin "baserom.gba", 0xAB5277, 0x0001D89 + +gUnk_08AB7000:: @ 08AB7000 + .incbin "baserom.gba", 0xAB7000, 0x0003800 + +gUnk_08ABA800:: @ 08ABA800 + .incbin "baserom.gba", 0xABA800, 0x0000F6A + +gUnk_08ABB76A:: @ 08ABB76A + .incbin "baserom.gba", 0xABB76A, 0x0000328 + +gUnk_08ABBA92:: @ 08ABBA92 + .incbin "baserom.gba", 0xABBA92, 0x000108E + +gUnk_08ABCB20:: @ 08ABCB20 + .incbin "baserom.gba", 0xABCB20, 0x0000C1F + +gUnk_08ABD73F:: @ 08ABD73F + .incbin "baserom.gba", 0xABD73F, 0x000159F + +gUnk_08ABECDE:: @ 08ABECDE + .incbin "baserom.gba", 0xABECDE, 0x000110E + +gUnk_08ABFDEC:: @ 08ABFDEC + .incbin "baserom.gba", 0xABFDEC, 0x000151F + +gUnk_08AC130B:: @ 08AC130B + .incbin "baserom.gba", 0xAC130B, 0x0004695 + +gUnk_08AC59A0:: @ 08AC59A0 + .incbin "baserom.gba", 0xAC59A0, 0x0001FE4 + +gUnk_08AC7984:: @ 08AC7984 + .incbin "baserom.gba", 0xAC7984, 0x0000774 + +gUnk_08AC80F8:: @ 08AC80F8 + .incbin "baserom.gba", 0xAC80F8, 0x0001F50 + +gUnk_08ACA048:: @ 08ACA048 + .incbin "baserom.gba", 0xACA048, 0x00000B0 + +gUnk_08ACA0F8:: @ 08ACA0F8 + .incbin "baserom.gba", 0xACA0F8, 0x0000CF4 + +gUnk_08ACADEC:: @ 08ACADEC + .incbin "baserom.gba", 0xACADEC, 0x0000DAA + +gUnk_08ACBB96:: @ 08ACBB96 + .incbin "baserom.gba", 0xACBB96, 0x0001062 + +gUnk_08ACCBF8:: @ 08ACCBF8 + .incbin "baserom.gba", 0xACCBF8, 0x00000F2 + +gUnk_08ACCCEA:: @ 08ACCCEA + .incbin "baserom.gba", 0xACCCEA, 0x00000F3 + +gUnk_08ACCDDD:: @ 08ACCDDD + .incbin "baserom.gba", 0xACCDDD, 0x0000FCB + +gUnk_08ACDDA8:: @ 08ACDDA8 + .incbin "baserom.gba", 0xACDDA8, 0x0000350 + +gUnk_08ACE0F8:: @ 08ACE0F8 + .incbin "baserom.gba", 0xACE0F8, 0x00004F8 + +gUnk_08ACE5F0:: @ 08ACE5F0 + .incbin "baserom.gba", 0xACE5F0, 0x00006FE + +gUnk_08ACECEE:: @ 08ACECEE + .incbin "baserom.gba", 0xACECEE, 0x0001F10 + +gUnk_08AD0BFE:: @ 08AD0BFE + .incbin "baserom.gba", 0xAD0BFE, 0x00073CF + +gUnk_08AD7FCD:: @ 08AD7FCD + .incbin "baserom.gba", 0xAD7FCD, 0x0002DED + +gUnk_08ADADBA:: @ 08ADADBA + .incbin "baserom.gba", 0xADADBA, 0x000249E + +gUnk_08ADD258:: @ 08ADD258 + .incbin "baserom.gba", 0xADD258, 0x00035A8 + +gUnk_08AE0800:: @ 08AE0800 + .incbin "baserom.gba", 0xAE0800, 0x0004D65 + +gUnk_08AE5565:: @ 08AE5565 + .incbin "baserom.gba", 0xAE5565, 0x000025A + +gUnk_08AE57BF:: @ 08AE57BF + .incbin "baserom.gba", 0xAE57BF, 0x0000040 + +gUnk_08AE57FF:: @ 08AE57FF + .incbin "baserom.gba", 0xAE57FF, 0x000193A + +gUnk_08AE7139:: @ 08AE7139 + .incbin "baserom.gba", 0xAE7139, 0x00004F2 + +gUnk_08AE762B:: @ 08AE762B + .incbin "baserom.gba", 0xAE762B, 0x00009D5 + +gUnk_08AE8000:: @ 08AE8000 + .incbin "baserom.gba", 0xAE8000, 0x00021B5 + +gUnk_08AEA1B5:: @ 08AEA1B5 + .incbin "baserom.gba", 0xAEA1B5, 0x0000CF8 + +gUnk_08AEAEAD:: @ 08AEAEAD + .incbin "baserom.gba", 0xAEAEAD, 0x0000222 + +gUnk_08AEB0CF:: @ 08AEB0CF + .incbin "baserom.gba", 0xAEB0CF, 0x00027B7 + +gUnk_08AED886:: @ 08AED886 + .incbin "baserom.gba", 0xAED886, 0x0001762 + +gUnk_08AEEFE8:: @ 08AEEFE8 + .incbin "baserom.gba", 0xAEEFE8, 0x0002649 + +gUnk_08AF1631:: @ 08AF1631 + .incbin "baserom.gba", 0xAF1631, 0x000080B + +gUnk_08AF1E3C:: @ 08AF1E3C + .incbin "baserom.gba", 0xAF1E3C, 0x0003718 + +gUnk_08AF5554:: @ 08AF5554 + .incbin "baserom.gba", 0xAF5554, 0x000073C + +gUnk_08AF5C90:: @ 08AF5C90 + .incbin "baserom.gba", 0xAF5C90, 0x000322F + +gUnk_08AF8EBF:: @ 08AF8EBF + .incbin "baserom.gba", 0xAF8EBF, 0x0001D09 + +gUnk_08AFABC8:: @ 08AFABC8 + .incbin "baserom.gba", 0xAFABC8, 0x000072B + +gUnk_08AFB2F3:: @ 08AFB2F3 + .incbin "baserom.gba", 0xAFB2F3, 0x0004D0D + +gUnk_08B00000:: @ 08B00000 + .incbin "baserom.gba", 0xB00000, 0x00000FE + +gUnk_08B000FE:: @ 08B000FE + .incbin "baserom.gba", 0xB000FE, 0x0000013 + +gUnk_08B00111:: @ 08B00111 + .incbin "baserom.gba", 0xB00111, 0x000004F + +gUnk_08B00160:: @ 08B00160 + .incbin "baserom.gba", 0xB00160, 0x0000330 + +gUnk_08B00490:: @ 08B00490 + .incbin "baserom.gba", 0xB00490, 0x0000026 + +gUnk_08B004B6:: @ 08B004B6 + .incbin "baserom.gba", 0xB004B6, 0x00000EA + +gUnk_08B005A0:: @ 08B005A0 + .incbin "baserom.gba", 0xB005A0, 0x000022C + +gUnk_08B007CC:: @ 08B007CC + .incbin "baserom.gba", 0xB007CC, 0x00000E3 + +gUnk_08B008AF:: @ 08B008AF + .incbin "baserom.gba", 0xB008AF, 0x0000928 + +gUnk_08B011D7:: @ 08B011D7 + .incbin "baserom.gba", 0xB011D7, 0x0000129 + +gUnk_08B01300:: @ 08B01300 + .incbin "baserom.gba", 0xB01300, 0x0007814 + +gUnk_08B08B14:: @ 08B08B14 + .incbin "baserom.gba", 0xB08B14, 0x0000E85 + +gUnk_08B09999:: @ 08B09999 + .incbin "baserom.gba", 0xB09999, 0x0003F66 + +gUnk_08B0D8FF:: @ 08B0D8FF + .incbin "baserom.gba", 0xB0D8FF, 0x0000A34 + +gUnk_08B0E333:: @ 08B0E333 + .incbin "baserom.gba", 0xB0E333, 0x000067D + +gUnk_08B0E9B0:: @ 08B0E9B0 + .incbin "baserom.gba", 0xB0E9B0, 0x0000D91 + +gUnk_08B0F741:: @ 08B0F741 + .incbin "baserom.gba", 0xB0F741, 0x00008BF + +gUnk_08B10000:: @ 08B10000 + .incbin "baserom.gba", 0xB10000, 0x0000006 + +gUnk_08B10006:: @ 08B10006 + .incbin "baserom.gba", 0xB10006, 0x0000001 + +gUnk_08B10007:: @ 08B10007 + .incbin "baserom.gba", 0xB10007, 0x00003A9 + +gUnk_08B103B0:: @ 08B103B0 + .incbin "baserom.gba", 0xB103B0, 0x00001B8 + +gUnk_08B10568:: @ 08B10568 + .incbin "baserom.gba", 0xB10568, 0x0000249 + +gUnk_08B107B1:: @ 08B107B1 + .incbin "baserom.gba", 0xB107B1, 0x0002000 + +gUnk_08B127B1:: @ 08B127B1 + .incbin "baserom.gba", 0xB127B1, 0x0000200 + +gUnk_08B129B1:: @ 08B129B1 + .incbin "baserom.gba", 0xB129B1, 0x0000600 + +gUnk_08B12FB1:: @ 08B12FB1 + .incbin "baserom.gba", 0xB12FB1, 0x0001861 + +gUnk_08B14812:: @ 08B14812 + .incbin "baserom.gba", 0xB14812, 0x0000EF1 + +gUnk_08B15703:: @ 08B15703 + .incbin "baserom.gba", 0xB15703, 0x000103C + +gUnk_08B1673F:: @ 08B1673F + .incbin "baserom.gba", 0xB1673F, 0x000547C + +gUnk_08B1BBBB:: @ 08B1BBBB + .incbin "baserom.gba", 0xB1BBBB, 0x00010C1 + +gUnk_08B1CC7C:: @ 08B1CC7C + .incbin "baserom.gba", 0xB1CC7C, 0x000200E + +gUnk_08B1EC8A:: @ 08B1EC8A + .incbin "baserom.gba", 0xB1EC8A, 0x0000EA8 + +gUnk_08B1FB32:: @ 08B1FB32 + .incbin "baserom.gba", 0xB1FB32, 0x0001527 + +gUnk_08B21059:: @ 08B21059 + .incbin "baserom.gba", 0xB21059, 0x00004E6 + +gUnk_08B2153F:: @ 08B2153F + .incbin "baserom.gba", 0xB2153F, 0x0001DD4 + +gUnk_08B23313:: @ 08B23313 + .incbin "baserom.gba", 0xB23313, 0x0000007 + +gUnk_08B2331A:: @ 08B2331A + .incbin "baserom.gba", 0xB2331A, 0x00009A4 + +gUnk_08B23CBE:: @ 08B23CBE + .incbin "baserom.gba", 0xB23CBE, 0x0000813 + +gUnk_08B244D1:: @ 08B244D1 + .incbin "baserom.gba", 0xB244D1, 0x00017FF + +gUnk_08B25CD0:: @ 08B25CD0 + .incbin "baserom.gba", 0xB25CD0, 0x0003EF4 + +gUnk_08B29BC4:: @ 08B29BC4 + .incbin "baserom.gba", 0xB29BC4, 0x0000BB8 + +gUnk_08B2A77C:: @ 08B2A77C + .incbin "baserom.gba", 0xB2A77C, 0x0000934 + +gUnk_08B2B0B0:: @ 08B2B0B0 + .incbin "baserom.gba", 0xB2B0B0, 0x0002E4F + +gUnk_08B2DEFF:: @ 08B2DEFF + .incbin "baserom.gba", 0xB2DEFF, 0x00009B7 + +gUnk_08B2E8B6:: @ 08B2E8B6 + .incbin "baserom.gba", 0xB2E8B6, 0x00002DA + +gUnk_08B2EB90:: @ 08B2EB90 + .incbin "baserom.gba", 0xB2EB90, 0x000030E + +gUnk_08B2EE9E:: @ 08B2EE9E + .incbin "baserom.gba", 0xB2EE9E, 0x0001172 + +gUnk_08B30010:: @ 08B30010 + .incbin "baserom.gba", 0xB30010, 0x0000010 + +gUnk_08B30020:: @ 08B30020 + .incbin "baserom.gba", 0xB30020, 0x0000758 + +gUnk_08B30778:: @ 08B30778 + .incbin "baserom.gba", 0xB30778, 0x000193E + +gUnk_08B320B6:: @ 08B320B6 + .incbin "baserom.gba", 0xB320B6, 0x0001397 + +gUnk_08B3344D:: @ 08B3344D + .incbin "baserom.gba", 0xB3344D, 0x0002166 + +gUnk_08B355B3:: @ 08B355B3 + .incbin "baserom.gba", 0xB355B3, 0x0003505 + +gUnk_08B38AB8:: @ 08B38AB8 + .incbin "baserom.gba", 0xB38AB8, 0x00012A8 + +gUnk_08B39D60:: @ 08B39D60 + .incbin "baserom.gba", 0xB39D60, 0x0000375 + +gUnk_08B3A0D5:: @ 08B3A0D5 + .incbin "baserom.gba", 0xB3A0D5, 0x00031E0 + +gUnk_08B3D2B5:: @ 08B3D2B5 + .incbin "baserom.gba", 0xB3D2B5, 0x0002367 + +gUnk_08B3F61C:: @ 08B3F61C + .incbin "baserom.gba", 0xB3F61C, 0x0000AF4 + +gUnk_08B40110:: @ 08B40110 + .incbin "baserom.gba", 0xB40110, 0x00004F0 + +gUnk_08B40600:: @ 08B40600 + .incbin "baserom.gba", 0xB40600, 0x0000100 + +gUnk_08B40700:: @ 08B40700 + .incbin "baserom.gba", 0xB40700, 0x0000080 + +gUnk_08B40780:: @ 08B40780 + .incbin "baserom.gba", 0xB40780, 0x0000140 + +gUnk_08B408C0:: @ 08B408C0 + .incbin "baserom.gba", 0xB408C0, 0x000003F + +gUnk_08B408FF:: @ 08B408FF + .incbin "baserom.gba", 0xB408FF, 0x0002B45 + +gUnk_08B43444:: @ 08B43444 + .incbin "baserom.gba", 0xB43444, 0x0000E77 + +gUnk_08B442BB:: @ 08B442BB + .incbin "baserom.gba", 0xB442BB, 0x0002E59 + +gUnk_08B47114:: @ 08B47114 + .incbin "baserom.gba", 0xB47114, 0x0002B6C + +gUnk_08B49C80:: @ 08B49C80 + .incbin "baserom.gba", 0xB49C80, 0x0000622 + +gUnk_08B4A2A2:: @ 08B4A2A2 + .incbin "baserom.gba", 0xB4A2A2, 0x000050E + +gUnk_08B4A7B0:: @ 08B4A7B0 + .incbin "baserom.gba", 0xB4A7B0, 0x0000424 + +gUnk_08B4ABD4:: @ 08B4ABD4 + .incbin "baserom.gba", 0xB4ABD4, 0x0001A9C + +gUnk_08B4C670:: @ 08B4C670 + .incbin "baserom.gba", 0xB4C670, 0x0000544 + +gUnk_08B4CBB4:: @ 08B4CBB4 + .incbin "baserom.gba", 0xB4CBB4, 0x00016D8 + +gUnk_08B4E28C:: @ 08B4E28C + .incbin "baserom.gba", 0xB4E28C, 0x0001D8B + +gUnk_08B50017:: @ 08B50017 + .incbin "baserom.gba", 0xB50017, 0x0000012 + +gUnk_08B50029:: @ 08B50029 + .incbin "baserom.gba", 0xB50029, 0x00000D7 + +gUnk_08B50100:: @ 08B50100 + .incbin "baserom.gba", 0xB50100, 0x00000B4 + +gUnk_08B501B4:: @ 08B501B4 + .incbin "baserom.gba", 0xB501B4, 0x0000100 + +gUnk_08B502B4:: @ 08B502B4 + .incbin "baserom.gba", 0xB502B4, 0x0000700 + +gUnk_08B509B4:: @ 08B509B4 + .incbin "baserom.gba", 0xB509B4, 0x0000544 + +gUnk_08B50EF8:: @ 08B50EF8 + .incbin "baserom.gba", 0xB50EF8, 0x00007F3 + +gUnk_08B516EB:: @ 08B516EB + .incbin "baserom.gba", 0xB516EB, 0x000014D + +gUnk_08B51838:: @ 08B51838 + .incbin "baserom.gba", 0xB51838, 0x000313E + +gUnk_08B54976:: @ 08B54976 + .incbin "baserom.gba", 0xB54976, 0x0001236 + +gUnk_08B55BAC:: @ 08B55BAC + .incbin "baserom.gba", 0xB55BAC, 0x0000EA4 + +gUnk_08B56A50:: @ 08B56A50 + .incbin "baserom.gba", 0xB56A50, 0x0001865 + +gUnk_08B582B5:: @ 08B582B5 + .incbin "baserom.gba", 0xB582B5, 0x0000FFF + +gUnk_08B592B4:: @ 08B592B4 + .incbin "baserom.gba", 0xB592B4, 0x0000010 + +gUnk_08B592C4:: @ 08B592C4 + .incbin "baserom.gba", 0xB592C4, 0x000007E + +gUnk_08B59342:: @ 08B59342 + .incbin "baserom.gba", 0xB59342, 0x0000350 + +gUnk_08B59692:: @ 08B59692 + .incbin "baserom.gba", 0xB59692, 0x0001BDA + +gUnk_08B5B26C:: @ 08B5B26C + .incbin "baserom.gba", 0xB5B26C, 0x000056A + +gUnk_08B5B7D6:: @ 08B5B7D6 + .incbin "baserom.gba", 0xB5B7D6, 0x00005B2 + +gUnk_08B5BD88:: @ 08B5BD88 + .incbin "baserom.gba", 0xB5BD88, 0x0000F78 + +gUnk_08B5CD00:: @ 08B5CD00 + .incbin "baserom.gba", 0xB5CD00, 0x000132C + +gUnk_08B5E02C:: @ 08B5E02C + .incbin "baserom.gba", 0xB5E02C, 0x0005470 + +gUnk_08B6349C:: @ 08B6349C + .incbin "baserom.gba", 0xB6349C, 0x000065C + +gUnk_08B63AF8:: @ 08B63AF8 + .incbin "baserom.gba", 0xB63AF8, 0x00003E0 + +gUnk_08B63ED8:: @ 08B63ED8 + .incbin "baserom.gba", 0xB63ED8, 0x00009C5 + +gUnk_08B6489D:: @ 08B6489D + .incbin "baserom.gba", 0xB6489D, 0x00000BF + +gUnk_08B6495C:: @ 08B6495C + .incbin "baserom.gba", 0xB6495C, 0x00040C0 + +gUnk_08B68A1C:: @ 08B68A1C + .incbin "baserom.gba", 0xB68A1C, 0x00005A0 + +gUnk_08B68FBC:: @ 08B68FBC + .incbin "baserom.gba", 0xB68FBC, 0x0001264 + +gUnk_08B6A220:: @ 08B6A220 + .incbin "baserom.gba", 0xB6A220, 0x000275C + +gUnk_08B6C97C:: @ 08B6C97C + .incbin "baserom.gba", 0xB6C97C, 0x0001BC0 + +gUnk_08B6E53C:: @ 08B6E53C + .incbin "baserom.gba", 0xB6E53C, 0x0001ACA + +gUnk_08B70006:: @ 08B70006 + .incbin "baserom.gba", 0xB70006, 0x0000102 + +gUnk_08B70108:: @ 08B70108 + .incbin "baserom.gba", 0xB70108, 0x000038C + +gUnk_08B70494:: @ 08B70494 + .incbin "baserom.gba", 0xB70494, 0x000028C + +gUnk_08B70720:: @ 08B70720 + .incbin "baserom.gba", 0xB70720, 0x00000E0 + +gUnk_08B70800:: @ 08B70800 + .incbin "baserom.gba", 0xB70800, 0x00000B6 + +gUnk_08B708B6:: @ 08B708B6 + .incbin "baserom.gba", 0xB708B6, 0x0001D62 + +gUnk_08B72618:: @ 08B72618 + .incbin "baserom.gba", 0xB72618, 0x0000F84 + +gUnk_08B7359C:: @ 08B7359C + .incbin "baserom.gba", 0xB7359C, 0x0001C64 + +gUnk_08B75200:: @ 08B75200 + .incbin "baserom.gba", 0xB75200, 0x00029B0 + +gUnk_08B77BB0:: @ 08B77BB0 + .incbin "baserom.gba", 0xB77BB0, 0x0002615 + +gUnk_08B7A1C5:: @ 08B7A1C5 + .incbin "baserom.gba", 0xB7A1C5, 0x0000507 + +gUnk_08B7A6CC:: @ 08B7A6CC + .incbin "baserom.gba", 0xB7A6CC, 0x00000F8 + +gUnk_08B7A7C4:: @ 08B7A7C4 + .incbin "baserom.gba", 0xB7A7C4, 0x0000828 + +gUnk_08B7AFEC:: @ 08B7AFEC + .incbin "baserom.gba", 0xB7AFEC, 0x0001AD9 + +gUnk_08B7CAC5:: @ 08B7CAC5 + .incbin "baserom.gba", 0xB7CAC5, 0x0000867 + +gUnk_08B7D32C:: @ 08B7D32C + .incbin "baserom.gba", 0xB7D32C, 0x0001BD7 + +gUnk_08B7EF03:: @ 08B7EF03 + .incbin "baserom.gba", 0xB7EF03, 0x0001104 + +gUnk_08B80007:: @ 08B80007 + .incbin "baserom.gba", 0xB80007, 0x00002B0 + +gUnk_08B802B7:: @ 08B802B7 + .incbin "baserom.gba", 0xB802B7, 0x0000BA1 + +gUnk_08B80E58:: @ 08B80E58 + .incbin "baserom.gba", 0xB80E58, 0x00005B8 + +gUnk_08B81410:: @ 08B81410 + .incbin "baserom.gba", 0xB81410, 0x0000D13 + +gUnk_08B82123:: @ 08B82123 + .incbin "baserom.gba", 0xB82123, 0x0000E21 + +gUnk_08B82F44:: @ 08B82F44 + .incbin "baserom.gba", 0xB82F44, 0x00001A2 + +gUnk_08B830E6:: @ 08B830E6 + .incbin "baserom.gba", 0xB830E6, 0x0003106 + +gUnk_08B861EC:: @ 08B861EC + .incbin "baserom.gba", 0xB861EC, 0x00018B8 + +gUnk_08B87AA4:: @ 08B87AA4 + .incbin "baserom.gba", 0xB87AA4, 0x0000FF4 + +gUnk_08B88A98:: @ 08B88A98 + .incbin "baserom.gba", 0xB88A98, 0x0000826 + +gUnk_08B892BE:: @ 08B892BE + .incbin "baserom.gba", 0xB892BE, 0x00013F4 + +gUnk_08B8A6B2:: @ 08B8A6B2 + .incbin "baserom.gba", 0xB8A6B2, 0x0000712 + +gUnk_08B8ADC4:: @ 08B8ADC4 + .incbin "baserom.gba", 0xB8ADC4, 0x00013F5 + +gUnk_08B8C1B9:: @ 08B8C1B9 + .incbin "baserom.gba", 0xB8C1B9, 0x00018C7 + +gUnk_08B8DA80:: @ 08B8DA80 + .incbin "baserom.gba", 0xB8DA80, 0x0002DF3 + +gUnk_08B90873:: @ 08B90873 + .incbin "baserom.gba", 0xB90873, 0x0000A06 + +gUnk_08B91279:: @ 08B91279 + .incbin "baserom.gba", 0xB91279, 0x0000240 + +gUnk_08B914B9:: @ 08B914B9 + .incbin "baserom.gba", 0xB914B9, 0x00024D7 + +gUnk_08B93990:: @ 08B93990 + .incbin "baserom.gba", 0xB93990, 0x00037C4 + +gUnk_08B97154:: @ 08B97154 + .incbin "baserom.gba", 0xB97154, 0x0001847 + +gUnk_08B9899B:: @ 08B9899B + .incbin "baserom.gba", 0xB9899B, 0x0001489 + +gUnk_08B99E24:: @ 08B99E24 + .incbin "baserom.gba", 0xB99E24, 0x0000F9F + +gUnk_08B9ADC3:: @ 08B9ADC3 + .incbin "baserom.gba", 0xB9ADC3, 0x0000E5D + +gUnk_08B9BC20:: @ 08B9BC20 + .incbin "baserom.gba", 0xB9BC20, 0x0000EEB + +gUnk_08B9CB0B:: @ 08B9CB0B + .incbin "baserom.gba", 0xB9CB0B, 0x00002D4 + +gUnk_08B9CDDF:: @ 08B9CDDF + .incbin "baserom.gba", 0xB9CDDF, 0x0003234 + +gUnk_08BA0013:: @ 08BA0013 + .incbin "baserom.gba", 0xBA0013, 0x00000ED + +gUnk_08BA0100:: @ 08BA0100 + .incbin "baserom.gba", 0xBA0100, 0x00003B8 + +gUnk_08BA04B8:: @ 08BA04B8 + .incbin "baserom.gba", 0xBA04B8, 0x0000399 + +gUnk_08BA0851:: @ 08BA0851 + .incbin "baserom.gba", 0xBA0851, 0x00000E4 + +gUnk_08BA0935:: @ 08BA0935 + .incbin "baserom.gba", 0xBA0935, 0x00008ED + +gUnk_08BA1222:: @ 08BA1222 + .incbin "baserom.gba", 0xBA1222, 0x0004E6A + +gUnk_08BA608C:: @ 08BA608C + .incbin "baserom.gba", 0xBA608C, 0x0001960 + +gUnk_08BA79EC:: @ 08BA79EC + .incbin "baserom.gba", 0xBA79EC, 0x0001E17 + +gUnk_08BA9803:: @ 08BA9803 + .incbin "baserom.gba", 0xBA9803, 0x000029B + +gUnk_08BA9A9E:: @ 08BA9A9E + .incbin "baserom.gba", 0xBA9A9E, 0x000103B + +gUnk_08BAAAD9:: @ 08BAAAD9 + .incbin "baserom.gba", 0xBAAAD9, 0x0000203 + +gUnk_08BAACDC:: @ 08BAACDC + .incbin "baserom.gba", 0xBAACDC, 0x0002057 + +gUnk_08BACD33:: @ 08BACD33 + .incbin "baserom.gba", 0xBACD33, 0x00015D8 + +gUnk_08BAE30B:: @ 08BAE30B + .incbin "baserom.gba", 0xBAE30B, 0x0000E4D + +gUnk_08BAF158:: @ 08BAF158 + .incbin "baserom.gba", 0xBAF158, 0x0000FA8 + +gUnk_08BB0100:: @ 08BB0100 + .incbin "baserom.gba", 0xBB0100, 0x0000030 + +gUnk_08BB0130:: @ 08BB0130 + .incbin "baserom.gba", 0xBB0130, 0x000028B + +gUnk_08BB03BB:: @ 08BB03BB + .incbin "baserom.gba", 0xBB03BB, 0x0000313 + +gUnk_08BB06CE:: @ 08BB06CE + .incbin "baserom.gba", 0xBB06CE, 0x00001EC + +gUnk_08BB08BA:: @ 08BB08BA + .incbin "baserom.gba", 0xBB08BA, 0x0001776 + +gUnk_08BB2030:: @ 08BB2030 + .incbin "baserom.gba", 0xBB2030, 0x00006BA + +gUnk_08BB26EA:: @ 08BB26EA + .incbin "baserom.gba", 0xBB26EA, 0x0001E34 + +gUnk_08BB451E:: @ 08BB451E + .incbin "baserom.gba", 0xBB451E, 0x0001BD6 + +gUnk_08BB60F4:: @ 08BB60F4 + .incbin "baserom.gba", 0xBB60F4, 0x0001204 + +gUnk_08BB72F8:: @ 08BB72F8 + .incbin "baserom.gba", 0xBB72F8, 0x0000FE8 + +gUnk_08BB82E0:: @ 08BB82E0 + .incbin "baserom.gba", 0xBB82E0, 0x0001531 + +gUnk_08BB9811:: @ 08BB9811 + .incbin "baserom.gba", 0xBB9811, 0x0000197 + +gUnk_08BB99A8:: @ 08BB99A8 + .incbin "baserom.gba", 0xBB99A8, 0x0000912 + +gUnk_08BBA2BA:: @ 08BBA2BA + .incbin "baserom.gba", 0xBBA2BA, 0x0000100 + +gUnk_08BBA3BA:: @ 08BBA3BA + .incbin "baserom.gba", 0xBBA3BA, 0x00006E7 + +gUnk_08BBAAA1:: @ 08BBAAA1 + .incbin "baserom.gba", 0xBBAAA1, 0x000002B + +gUnk_08BBAACC:: @ 08BBAACC + .incbin "baserom.gba", 0xBBAACC, 0x0000978 + +gUnk_08BBB444:: @ 08BBB444 + .incbin "baserom.gba", 0xBBB444, 0x00006DE + +gUnk_08BBBB22:: @ 08BBBB22 + .incbin "baserom.gba", 0xBBBB22, 0x0000056 + +gUnk_08BBBB78:: @ 08BBBB78 + .incbin "baserom.gba", 0xBBBB78, 0x0000043 + +gUnk_08BBBBBB:: @ 08BBBBBB + .incbin "baserom.gba", 0xBBBBBB, 0x0000032 + +gUnk_08BBBBED:: @ 08BBBBED + .incbin "baserom.gba", 0xBBBBED, 0x000077F + +gUnk_08BBC36C:: @ 08BBC36C + .incbin "baserom.gba", 0xBBC36C, 0x000094C + +gUnk_08BBCCB8:: @ 08BBCCB8 + .incbin "baserom.gba", 0xBBCCB8, 0x00010F4 + +gUnk_08BBDDAC:: @ 08BBDDAC + .incbin "baserom.gba", 0xBBDDAC, 0x0001CD4 + +gUnk_08BBFA80:: @ 08BBFA80 + .incbin "baserom.gba", 0xBBFA80, 0x000036F + +gUnk_08BBFDEF:: @ 08BBFDEF + .incbin "baserom.gba", 0xBBFDEF, 0x00005E1 + +gUnk_08BC03D0:: @ 08BC03D0 + .incbin "baserom.gba", 0xBC03D0, 0x0000432 + +gUnk_08BC0802:: @ 08BC0802 + .incbin "baserom.gba", 0xBC0802, 0x0000BFD + +gUnk_08BC13FF:: @ 08BC13FF + .incbin "baserom.gba", 0xBC13FF, 0x0001B49 + +gUnk_08BC2F48:: @ 08BC2F48 + .incbin "baserom.gba", 0xBC2F48, 0x0001C48 + +gUnk_08BC4B90:: @ 08BC4B90 + .incbin "baserom.gba", 0xBC4B90, 0x0001790 + +gUnk_08BC6320:: @ 08BC6320 + .incbin "baserom.gba", 0xBC6320, 0x00019B0 + +gUnk_08BC7CD0:: @ 08BC7CD0 + .incbin "baserom.gba", 0xBC7CD0, 0x00013F3 + +gUnk_08BC90C3:: @ 08BC90C3 + .incbin "baserom.gba", 0xBC90C3, 0x0002D41 + +gUnk_08BCBE04:: @ 08BCBE04 + .incbin "baserom.gba", 0xBCBE04, 0x00008A1 + +gUnk_08BCC6A5:: @ 08BCC6A5 + .incbin "baserom.gba", 0xBCC6A5, 0x0000515 + +gUnk_08BCCBBA:: @ 08BCCBBA + .incbin "baserom.gba", 0xBCCBBA, 0x000009B + +gUnk_08BCCC55:: @ 08BCCC55 + .incbin "baserom.gba", 0xBCCC55, 0x0001067 + +gUnk_08BCDCBC:: @ 08BCDCBC + .incbin "baserom.gba", 0xBCDCBC, 0x00000F0 + +gUnk_08BCDDAC:: @ 08BCDDAC + .incbin "baserom.gba", 0xBCDDAC, 0x0000E76 + +gUnk_08BCEC22:: @ 08BCEC22 + .incbin "baserom.gba", 0xBCEC22, 0x00013E8 + +gUnk_08BD000A:: @ 08BD000A + .incbin "baserom.gba", 0xBD000A, 0x00008B2 + +gUnk_08BD08BC:: @ 08BD08BC + .incbin "baserom.gba", 0xBD08BC, 0x0005AE4 + +gUnk_08BD63A0:: @ 08BD63A0 + .incbin "baserom.gba", 0xBD63A0, 0x0001B68 + +gUnk_08BD7F08:: @ 08BD7F08 + .incbin "baserom.gba", 0xBD7F08, 0x0003058 + +gUnk_08BDAF60:: @ 08BDAF60 + .incbin "baserom.gba", 0xBDAF60, 0x000069A + +gUnk_08BDB5FA:: @ 08BDB5FA + .incbin "baserom.gba", 0xBDB5FA, 0x000265B + +gUnk_08BDDC55:: @ 08BDDC55 + .incbin "baserom.gba", 0xBDDC55, 0x0000188 + +gUnk_08BDDDDD:: @ 08BDDDDD + .incbin "baserom.gba", 0xBDDDDD, 0x0000077 + +gUnk_08BDDE54:: @ 08BDDE54 + .incbin "baserom.gba", 0xBDDE54, 0x00019B7 + +gUnk_08BDF80B:: @ 08BDF80B + .incbin "baserom.gba", 0xBDF80B, 0x0000809 + +gUnk_08BE0014:: @ 08BE0014 + .incbin "baserom.gba", 0xBE0014, 0x00008A9 + +gUnk_08BE08BD:: @ 08BE08BD + .incbin "baserom.gba", 0xBE08BD, 0x00013BB + +gUnk_08BE1C78:: @ 08BE1C78 + .incbin "baserom.gba", 0xBE1C78, 0x0001C39 + +gUnk_08BE38B1:: @ 08BE38B1 + .incbin "baserom.gba", 0xBE38B1, 0x000024F + +gUnk_08BE3B00:: @ 08BE3B00 + .incbin "baserom.gba", 0xBE3B00, 0x0001D7A + +gUnk_08BE587A:: @ 08BE587A + .incbin "baserom.gba", 0xBE587A, 0x0000A32 + +gUnk_08BE62AC:: @ 08BE62AC + .incbin "baserom.gba", 0xBE62AC, 0x0001E11 + +gUnk_08BE80BD:: @ 08BE80BD + .incbin "baserom.gba", 0xBE80BD, 0x0000AEF + +gUnk_08BE8BAC:: @ 08BE8BAC + .incbin "baserom.gba", 0xBE8BAC, 0x0001F06 + +gUnk_08BEAAB2:: @ 08BEAAB2 + .incbin "baserom.gba", 0xBEAAB2, 0x000071E + +gUnk_08BEB1D0:: @ 08BEB1D0 + .incbin "baserom.gba", 0xBEB1D0, 0x0001188 + +gUnk_08BEC358:: @ 08BEC358 + .incbin "baserom.gba", 0xBEC358, 0x00012D5 + +gUnk_08BED62D:: @ 08BED62D + .incbin "baserom.gba", 0xBED62D, 0x00018C1 + +gUnk_08BEEEEE:: @ 08BEEEEE + .incbin "baserom.gba", 0xBEEEEE, 0x0000B59 + +gUnk_08BEFA47:: @ 08BEFA47 + .incbin "baserom.gba", 0xBEFA47, 0x00005C2 + +gUnk_08BF0009:: @ 08BF0009 + .incbin "baserom.gba", 0xBF0009, 0x000025B + +gUnk_08BF0264:: @ 08BF0264 + .incbin "baserom.gba", 0xBF0264, 0x00000EC + +gUnk_08BF0350:: @ 08BF0350 + .incbin "baserom.gba", 0xBF0350, 0x00000EF + +gUnk_08BF043F:: @ 08BF043F + .incbin "baserom.gba", 0xBF043F, 0x00000C1 + +gUnk_08BF0500:: @ 08BF0500 + .incbin "baserom.gba", 0xBF0500, 0x0000300 + +gUnk_08BF0800:: @ 08BF0800 + .incbin "baserom.gba", 0xBF0800, 0x0000007 + +gUnk_08BF0807:: @ 08BF0807 + .incbin "baserom.gba", 0xBF0807, 0x00000B7 + +gUnk_08BF08BE:: @ 08BF08BE + .incbin "baserom.gba", 0xBF08BE, 0x000087F + +gUnk_08BF113D:: @ 08BF113D + .incbin "baserom.gba", 0xBF113D, 0x0000DC7 + +gUnk_08BF1F04:: @ 08BF1F04 + .incbin "baserom.gba", 0xBF1F04, 0x0000007 + +gUnk_08BF1F0B:: @ 08BF1F0B + .incbin "baserom.gba", 0xBF1F0B, 0x00008F1 + +gUnk_08BF27FC:: @ 08BF27FC + .incbin "baserom.gba", 0xBF27FC, 0x00014B8 + +gUnk_08BF3CB4:: @ 08BF3CB4 + .incbin "baserom.gba", 0xBF3CB4, 0x0000E22 + +gUnk_08BF4AD6:: @ 08BF4AD6 + .incbin "baserom.gba", 0xBF4AD6, 0x0001014 + +gUnk_08BF5AEA:: @ 08BF5AEA + .incbin "baserom.gba", 0xBF5AEA, 0x00021DA + +gUnk_08BF7CC4:: @ 08BF7CC4 + .incbin "baserom.gba", 0xBF7CC4, 0x00023FA + +gUnk_08BFA0BE:: @ 08BFA0BE + .incbin "baserom.gba", 0xBFA0BE, 0x0000961 + +gUnk_08BFAA1F:: @ 08BFAA1F + .incbin "baserom.gba", 0xBFAA1F, 0x0000DD5 + +gUnk_08BFB7F4:: @ 08BFB7F4 + .incbin "baserom.gba", 0xBFB7F4, 0x0000E51 + +gUnk_08BFC645:: @ 08BFC645 + .incbin "baserom.gba", 0xBFC645, 0x000095A + +gUnk_08BFCF9F:: @ 08BFCF9F + .incbin "baserom.gba", 0xBFCF9F, 0x00006A0 + +gUnk_08BFD63F:: @ 08BFD63F + .incbin "baserom.gba", 0xBFD63F, 0x0000AC2 + +gUnk_08BFE101:: @ 08BFE101 + .incbin "baserom.gba", 0xBFE101, 0x000000B + +gUnk_08BFE10C:: @ 08BFE10C + .incbin "baserom.gba", 0xBFE10C, 0x0000271 + +gUnk_08BFE37D:: @ 08BFE37D + .incbin "baserom.gba", 0xBFE37D, 0x000022B + +gUnk_08BFE5A8:: @ 08BFE5A8 + .incbin "baserom.gba", 0xBFE5A8, 0x0000661 + +gUnk_08BFEC09:: @ 08BFEC09 + .incbin "baserom.gba", 0xBFEC09, 0x000131D + +gUnk_08BFFF26:: @ 08BFFF26 + .incbin "baserom.gba", 0xBFFF26, 0x00000DA + +gUnk_08C00000:: @ 08C00000 + .incbin "baserom.gba", 0xC00000, 0x0000008 + +gUnk_08C00008:: @ 08C00008 + .incbin "baserom.gba", 0xC00008, 0x00000B7 + +gUnk_08C000BF:: @ 08C000BF + .incbin "baserom.gba", 0xC000BF, 0x000026C + +gUnk_08C0032B:: @ 08C0032B + .incbin "baserom.gba", 0xC0032B, 0x0000165 + +gUnk_08C00490:: @ 08C00490 + .incbin "baserom.gba", 0xC00490, 0x0000370 + +gUnk_08C00800:: @ 08C00800 + .incbin "baserom.gba", 0xC00800, 0x000010A + +gUnk_08C0090A:: @ 08C0090A + .incbin "baserom.gba", 0xC0090A, 0x000003D + +gUnk_08C00947:: @ 08C00947 + .incbin "baserom.gba", 0xC00947, 0x0001781 + +gUnk_08C020C8:: @ 08C020C8 + .incbin "baserom.gba", 0xC020C8, 0x00001A5 + +gUnk_08C0226D:: @ 08C0226D + .incbin "baserom.gba", 0xC0226D, 0x0003693 + +gUnk_08C05900:: @ 08C05900 + .incbin "baserom.gba", 0xC05900, 0x000081F + +gUnk_08C0611F:: @ 08C0611F + .incbin "baserom.gba", 0xC0611F, 0x00003BD + +gUnk_08C064DC:: @ 08C064DC + .incbin "baserom.gba", 0xC064DC, 0x0001225 + +gUnk_08C07701:: @ 08C07701 + .incbin "baserom.gba", 0xC07701, 0x0000715 + +gUnk_08C07E16:: @ 08C07E16 + .incbin "baserom.gba", 0xC07E16, 0x00021E4 + +gUnk_08C09FFA:: @ 08C09FFA + .incbin "baserom.gba", 0xC09FFA, 0x000020E + +gUnk_08C0A208:: @ 08C0A208 + .incbin "baserom.gba", 0xC0A208, 0x0000A16 + +gUnk_08C0AC1E:: @ 08C0AC1E + .incbin "baserom.gba", 0xC0AC1E, 0x000283A + +gUnk_08C0D458:: @ 08C0D458 + .incbin "baserom.gba", 0xC0D458, 0x0001A29 + +gUnk_08C0EE81:: @ 08C0EE81 + .incbin "baserom.gba", 0xC0EE81, 0x00005FB + +gUnk_08C0F47C:: @ 08C0F47C + .incbin "baserom.gba", 0xC0F47C, 0x0000FE4 + +gUnk_08C10460:: @ 08C10460 + .incbin "baserom.gba", 0xC10460, 0x0000460 + +gUnk_08C108C0:: @ 08C108C0 + .incbin "baserom.gba", 0xC108C0, 0x00008F4 + +gUnk_08C111B4:: @ 08C111B4 + .incbin "baserom.gba", 0xC111B4, 0x000160D + +gUnk_08C127C1:: @ 08C127C1 + .incbin "baserom.gba", 0xC127C1, 0x00018FE + +gUnk_08C140BF:: @ 08C140BF + .incbin "baserom.gba", 0xC140BF, 0x00002FE + +gUnk_08C143BD:: @ 08C143BD + .incbin "baserom.gba", 0xC143BD, 0x0000404 + +gUnk_08C147C1:: @ 08C147C1 + .incbin "baserom.gba", 0xC147C1, 0x0000C4F + +gUnk_08C15410:: @ 08C15410 + .incbin "baserom.gba", 0xC15410, 0x0004768 + +gUnk_08C19B78:: @ 08C19B78 + .incbin "baserom.gba", 0xC19B78, 0x0002958 + +gUnk_08C1C4D0:: @ 08C1C4D0 + .incbin "baserom.gba", 0xC1C4D0, 0x000050F + +gUnk_08C1C9DF:: @ 08C1C9DF + .incbin "baserom.gba", 0xC1C9DF, 0x0002DE1 + +gUnk_08C1F7C0:: @ 08C1F7C0 + .incbin "baserom.gba", 0xC1F7C0, 0x0003F40 + +gUnk_08C23700:: @ 08C23700 + .incbin "baserom.gba", 0xC23700, 0x0000ADE + +gUnk_08C241DE:: @ 08C241DE + .incbin "baserom.gba", 0xC241DE, 0x00008DE + +gUnk_08C24ABC:: @ 08C24ABC + .incbin "baserom.gba", 0xC24ABC, 0x0001647 + +gUnk_08C26103:: @ 08C26103 + .incbin "baserom.gba", 0xC26103, 0x0002869 + +gUnk_08C2896C:: @ 08C2896C + .incbin "baserom.gba", 0xC2896C, 0x0000C27 + +gUnk_08C29593:: @ 08C29593 + .incbin "baserom.gba", 0xC29593, 0x0001036 + +gUnk_08C2A5C9:: @ 08C2A5C9 + .incbin "baserom.gba", 0xC2A5C9, 0x00003D7 + +gUnk_08C2A9A0:: @ 08C2A9A0 + .incbin "baserom.gba", 0xC2A9A0, 0x00001C0 + +gUnk_08C2AB60:: @ 08C2AB60 + .incbin "baserom.gba", 0xC2AB60, 0x000107B + +gUnk_08C2BBDB:: @ 08C2BBDB + .incbin "baserom.gba", 0xC2BBDB, 0x0000DE7 + +gUnk_08C2C9C2:: @ 08C2C9C2 + .incbin "baserom.gba", 0xC2C9C2, 0x0000D12 + +gUnk_08C2D6D4:: @ 08C2D6D4 + .incbin "baserom.gba", 0xC2D6D4, 0x0001D46 + +gUnk_08C2F41A:: @ 08C2F41A + .incbin "baserom.gba", 0xC2F41A, 0x00003EE + +gUnk_08C2F808:: @ 08C2F808 + .incbin "baserom.gba", 0xC2F808, 0x0000808 + +gUnk_08C30010:: @ 08C30010 + .incbin "baserom.gba", 0xC30010, 0x00001BB + +gUnk_08C301CB:: @ 08C301CB + .incbin "baserom.gba", 0xC301CB, 0x00005B4 + +gUnk_08C3077F:: @ 08C3077F + .incbin "baserom.gba", 0xC3077F, 0x000037D + +gUnk_08C30AFC:: @ 08C30AFC + .incbin "baserom.gba", 0xC30AFC, 0x0001204 + +gUnk_08C31D00:: @ 08C31D00 + .incbin "baserom.gba", 0xC31D00, 0x0000BE0 + +gUnk_08C328E0:: @ 08C328E0 + .incbin "baserom.gba", 0xC328E0, 0x0005FCC + +gUnk_08C388AC:: @ 08C388AC + .incbin "baserom.gba", 0xC388AC, 0x00008DB + +gUnk_08C39187:: @ 08C39187 + .incbin "baserom.gba", 0xC39187, 0x0000A0F + +gUnk_08C39B96:: @ 08C39B96 + .incbin "baserom.gba", 0xC39B96, 0x000055E + +gUnk_08C3A0F4:: @ 08C3A0F4 + .incbin "baserom.gba", 0xC3A0F4, 0x0000DE5 + +gUnk_08C3AED9:: @ 08C3AED9 + .incbin "baserom.gba", 0xC3AED9, 0x0000901 + +gUnk_08C3B7DA:: @ 08C3B7DA + .incbin "baserom.gba", 0xC3B7DA, 0x00007E9 + +gUnk_08C3BFC3:: @ 08C3BFC3 + .incbin "baserom.gba", 0xC3BFC3, 0x0001FE1 + +gUnk_08C3DFA4:: @ 08C3DFA4 + .incbin "baserom.gba", 0xC3DFA4, 0x0000A04 + +gUnk_08C3E9A8:: @ 08C3E9A8 + .incbin "baserom.gba", 0xC3E9A8, 0x00009A8 + +gUnk_08C3F350:: @ 08C3F350 + .incbin "baserom.gba", 0xC3F350, 0x00007B8 + +gUnk_08C3FB08:: @ 08C3FB08 + .incbin "baserom.gba", 0xC3FB08, 0x000060F + +gUnk_08C40117:: @ 08C40117 + .incbin "baserom.gba", 0xC40117, 0x0000509 + +gUnk_08C40620:: @ 08C40620 + .incbin "baserom.gba", 0xC40620, 0x00002A0 + +gUnk_08C408C0:: @ 08C408C0 + .incbin "baserom.gba", 0xC408C0, 0x0000234 + +gUnk_08C40AF4:: @ 08C40AF4 + .incbin "baserom.gba", 0xC40AF4, 0x0000711 + +gUnk_08C41205:: @ 08C41205 + .incbin "baserom.gba", 0xC41205, 0x00007CF + +gUnk_08C419D4:: @ 08C419D4 + .incbin "baserom.gba", 0xC419D4, 0x0000958 + +gUnk_08C4232C:: @ 08C4232C + .incbin "baserom.gba", 0xC4232C, 0x0000C17 + +gUnk_08C42F43:: @ 08C42F43 + .incbin "baserom.gba", 0xC42F43, 0x0000FC1 + +gUnk_08C43F04:: @ 08C43F04 + .incbin "baserom.gba", 0xC43F04, 0x00011D8 + +gUnk_08C450DC:: @ 08C450DC + .incbin "baserom.gba", 0xC450DC, 0x000209C + +gUnk_08C47178:: @ 08C47178 + .incbin "baserom.gba", 0xC47178, 0x00015FC + +gUnk_08C48774:: @ 08C48774 + .incbin "baserom.gba", 0xC48774, 0x0003754 + +gUnk_08C4BEC8:: @ 08C4BEC8 + .incbin "baserom.gba", 0xC4BEC8, 0x0001484 + +gUnk_08C4D34C:: @ 08C4D34C + .incbin "baserom.gba", 0xC4D34C, 0x0000A68 + +gUnk_08C4DDB4:: @ 08C4DDB4 + .incbin "baserom.gba", 0xC4DDB4, 0x0000B5F + +gUnk_08C4E913:: @ 08C4E913 + .incbin "baserom.gba", 0xC4E913, 0x0000871 + +gUnk_08C4F184:: @ 08C4F184 + .incbin "baserom.gba", 0xC4F184, 0x0000E85 + +gUnk_08C50009:: @ 08C50009 + .incbin "baserom.gba", 0xC50009, 0x0000375 + +gUnk_08C5037E:: @ 08C5037E + .incbin "baserom.gba", 0xC5037E, 0x0000981 + +gUnk_08C50CFF:: @ 08C50CFF + .incbin "baserom.gba", 0xC50CFF, 0x0000615 + +gUnk_08C51314:: @ 08C51314 + .incbin "baserom.gba", 0xC51314, 0x000316D + +gUnk_08C54481:: @ 08C54481 + .incbin "baserom.gba", 0xC54481, 0x0002D9B + +gUnk_08C5721C:: @ 08C5721C + .incbin "baserom.gba", 0xC5721C, 0x00018A9 + +gUnk_08C58AC5:: @ 08C58AC5 + .incbin "baserom.gba", 0xC58AC5, 0x00014C5 + +gUnk_08C59F8A:: @ 08C59F8A + .incbin "baserom.gba", 0xC59F8A, 0x00015AE + +gUnk_08C5B538:: @ 08C5B538 + .incbin "baserom.gba", 0xC5B538, 0x00009A4 + +gUnk_08C5BEDC:: @ 08C5BEDC + .incbin "baserom.gba", 0xC5BEDC, 0x00006BF + +gUnk_08C5C59B:: @ 08C5C59B + .incbin "baserom.gba", 0xC5C59B, 0x0001E29 + +gUnk_08C5E3C4:: @ 08C5E3C4 + .incbin "baserom.gba", 0xC5E3C4, 0x0001C3D + +gUnk_08C60001:: @ 08C60001 + .incbin "baserom.gba", 0xC60001, 0x0000024 + +gUnk_08C60025:: @ 08C60025 + .incbin "baserom.gba", 0xC60025, 0x00002D7 + +gUnk_08C602FC:: @ 08C602FC + .incbin "baserom.gba", 0xC602FC, 0x00010CA + +gUnk_08C613C6:: @ 08C613C6 + .incbin "baserom.gba", 0xC613C6, 0x000072A + +gUnk_08C61AF0:: @ 08C61AF0 + .incbin "baserom.gba", 0xC61AF0, 0x0000835 + +gUnk_08C62325:: @ 08C62325 + .incbin "baserom.gba", 0xC62325, 0x00010DB + +gUnk_08C63400:: @ 08C63400 + .incbin "baserom.gba", 0xC63400, 0x0000174 + +gUnk_08C63574:: @ 08C63574 + .incbin "baserom.gba", 0xC63574, 0x00013E8 + +gUnk_08C6495C:: @ 08C6495C + .incbin "baserom.gba", 0xC6495C, 0x000251B + +gUnk_08C66E77:: @ 08C66E77 + .incbin "baserom.gba", 0xC66E77, 0x0000291 + +gUnk_08C67108:: @ 08C67108 + .incbin "baserom.gba", 0xC67108, 0x00021FB + +gUnk_08C69303:: @ 08C69303 + .incbin "baserom.gba", 0xC69303, 0x0000E8D + +gUnk_08C6A190:: @ 08C6A190 + .incbin "baserom.gba", 0xC6A190, 0x000084B + +gUnk_08C6A9DB:: @ 08C6A9DB + .incbin "baserom.gba", 0xC6A9DB, 0x0002046 + +gUnk_08C6CA21:: @ 08C6CA21 + .incbin "baserom.gba", 0xC6CA21, 0x000030F + +gUnk_08C6CD30:: @ 08C6CD30 + .incbin "baserom.gba", 0xC6CD30, 0x000018C + +gUnk_08C6CEBC:: @ 08C6CEBC + .incbin "baserom.gba", 0xC6CEBC, 0x0001740 + +gUnk_08C6E5FC:: @ 08C6E5FC + .incbin "baserom.gba", 0xC6E5FC, 0x0001654 + +gUnk_08C6FC50:: @ 08C6FC50 + .incbin "baserom.gba", 0xC6FC50, 0x0000078 + +gUnk_08C6FCC8:: @ 08C6FCC8 + .incbin "baserom.gba", 0xC6FCC8, 0x0000344 + +gUnk_08C7000C:: @ 08C7000C + .incbin "baserom.gba", 0xC7000C, 0x00004B5 + +gUnk_08C704C1:: @ 08C704C1 + .incbin "baserom.gba", 0xC704C1, 0x000054E + +gUnk_08C70A0F:: @ 08C70A0F + .incbin "baserom.gba", 0xC70A0F, 0x0000926 + +gUnk_08C71335:: @ 08C71335 + .incbin "baserom.gba", 0xC71335, 0x000153B + +gUnk_08C72870:: @ 08C72870 + .incbin "baserom.gba", 0xC72870, 0x0001C0C + +gUnk_08C7447C:: @ 08C7447C + .incbin "baserom.gba", 0xC7447C, 0x000052C + +gUnk_08C749A8:: @ 08C749A8 + .incbin "baserom.gba", 0xC749A8, 0x000091F + +gUnk_08C752C7:: @ 08C752C7 + .incbin "baserom.gba", 0xC752C7, 0x000233C + +gUnk_08C77603:: @ 08C77603 + .incbin "baserom.gba", 0xC77603, 0x0001083 + +gUnk_08C78686:: @ 08C78686 + .incbin "baserom.gba", 0xC78686, 0x0002117 + +gUnk_08C7A79D:: @ 08C7A79D + .incbin "baserom.gba", 0xC7A79D, 0x0000F2D + +gUnk_08C7B6CA:: @ 08C7B6CA + .incbin "baserom.gba", 0xC7B6CA, 0x0000110 + +gUnk_08C7B7DA:: @ 08C7B7DA + .incbin "baserom.gba", 0xC7B7DA, 0x00007D1 + +gUnk_08C7BFAB:: @ 08C7BFAB + .incbin "baserom.gba", 0xC7BFAB, 0x0000860 + +gUnk_08C7C80B:: @ 08C7C80B + .incbin "baserom.gba", 0xC7C80B, 0x000009D + +gUnk_08C7C8A8:: @ 08C7C8A8 + .incbin "baserom.gba", 0xC7C8A8, 0x0002461 + +gUnk_08C7ED09:: @ 08C7ED09 + .incbin "baserom.gba", 0xC7ED09, 0x0001303 + +gUnk_08C8000C:: @ 08C8000C + .incbin "baserom.gba", 0xC8000C, 0x0000192 + +gUnk_08C8019E:: @ 08C8019E + .incbin "baserom.gba", 0xC8019E, 0x00004B2 + +gUnk_08C80650:: @ 08C80650 + .incbin "baserom.gba", 0xC80650, 0x00007F8 + +gUnk_08C80E48:: @ 08C80E48 + .incbin "baserom.gba", 0xC80E48, 0x00002EA + +gUnk_08C81132:: @ 08C81132 + .incbin "baserom.gba", 0xC81132, 0x00000F3 + +gUnk_08C81225:: @ 08C81225 + .incbin "baserom.gba", 0xC81225, 0x000BFF8 + +gUnk_08C8D21D:: @ 08C8D21D + .incbin "baserom.gba", 0xC8D21D, 0x0000D0C + +gUnk_08C8DF29:: @ 08C8DF29 + .incbin "baserom.gba", 0xC8DF29, 0x000242B + +gUnk_08C90354:: @ 08C90354 + .incbin "baserom.gba", 0xC90354, 0x00003AC + +gUnk_08C90700:: @ 08C90700 + .incbin "baserom.gba", 0xC90700, 0x00001C1 + +gUnk_08C908C1:: @ 08C908C1 + .incbin "baserom.gba", 0xC908C1, 0x0000A3F + +gUnk_08C91300:: @ 08C91300 + .incbin "baserom.gba", 0xC91300, 0x0000C68 + +gUnk_08C91F68:: @ 08C91F68 + .incbin "baserom.gba", 0xC91F68, 0x00018E8 + +gUnk_08C93850:: @ 08C93850 + .incbin "baserom.gba", 0xC93850, 0x0003888 + +gUnk_08C970D8:: @ 08C970D8 + .incbin "baserom.gba", 0xC970D8, 0x0000E7D + +gUnk_08C97F55:: @ 08C97F55 + .incbin "baserom.gba", 0xC97F55, 0x000048F + +gUnk_08C983E4:: @ 08C983E4 + .incbin "baserom.gba", 0xC983E4, 0x0003510 + +gUnk_08C9B8F4:: @ 08C9B8F4 + .incbin "baserom.gba", 0xC9B8F4, 0x0001CD1 + +gUnk_08C9D5C5:: @ 08C9D5C5 + .incbin "baserom.gba", 0xC9D5C5, 0x0000E04 + +gUnk_08C9E3C9:: @ 08C9E3C9 + .incbin "baserom.gba", 0xC9E3C9, 0x0001D47 + +gUnk_08CA0110:: @ 08CA0110 + .incbin "baserom.gba", 0xCA0110, 0x00001F0 + +gUnk_08CA0300:: @ 08CA0300 + .incbin "baserom.gba", 0xCA0300, 0x0000326 + +gUnk_08CA0626:: @ 08CA0626 + .incbin "baserom.gba", 0xCA0626, 0x00001A2 + +gUnk_08CA07C8:: @ 08CA07C8 + .incbin "baserom.gba", 0xCA07C8, 0x000044C + +gUnk_08CA0C14:: @ 08CA0C14 + .incbin "baserom.gba", 0xCA0C14, 0x00004ED + +gUnk_08CA1101:: @ 08CA1101 + .incbin "baserom.gba", 0xCA1101, 0x0001A1F + +gUnk_08CA2B20:: @ 08CA2B20 + .incbin "baserom.gba", 0xCA2B20, 0x0000919 + +gUnk_08CA3439:: @ 08CA3439 + .incbin "baserom.gba", 0xCA3439, 0x0000494 + +gUnk_08CA38CD:: @ 08CA38CD + .incbin "baserom.gba", 0xCA38CD, 0x00051AF + +gUnk_08CA8A7C:: @ 08CA8A7C + .incbin "baserom.gba", 0xCA8A7C, 0x00019E4 + +gUnk_08CAA460:: @ 08CAA460 + .incbin "baserom.gba", 0xCAA460, 0x00015F4 + +gUnk_08CABA54:: @ 08CABA54 + .incbin "baserom.gba", 0xCABA54, 0x0001471 + +gUnk_08CACEC5:: @ 08CACEC5 + .incbin "baserom.gba", 0xCACEC5, 0x000103F + +gUnk_08CADF04:: @ 08CADF04 + .incbin "baserom.gba", 0xCADF04, 0x0000E26 + +gUnk_08CAED2A:: @ 08CAED2A + .incbin "baserom.gba", 0xCAED2A, 0x00012D7 + +gUnk_08CB0001:: @ 08CB0001 + .incbin "baserom.gba", 0xCB0001, 0x000064B + +gUnk_08CB064C:: @ 08CB064C + .incbin "baserom.gba", 0xCB064C, 0x00012B4 + +gUnk_08CB1900:: @ 08CB1900 + .incbin "baserom.gba", 0xCB1900, 0x000000F + +gUnk_08CB190F:: @ 08CB190F + .incbin "baserom.gba", 0xCB190F, 0x00014FD + +gUnk_08CB2E0C:: @ 08CB2E0C + .incbin "baserom.gba", 0xCB2E0C, 0x0000849 + +gUnk_08CB3655:: @ 08CB3655 + .incbin "baserom.gba", 0xCB3655, 0x0000892 + +gUnk_08CB3EE7:: @ 08CB3EE7 + .incbin "baserom.gba", 0xCB3EE7, 0x0000AB9 + +gUnk_08CB49A0:: @ 08CB49A0 + .incbin "baserom.gba", 0xCB49A0, 0x0000F73 + +gUnk_08CB5913:: @ 08CB5913 + .incbin "baserom.gba", 0xCB5913, 0x00004CB + +gUnk_08CB5DDE:: @ 08CB5DDE + .incbin "baserom.gba", 0xCB5DDE, 0x0001DEB + +gUnk_08CB7BC9:: @ 08CB7BC9 + .incbin "baserom.gba", 0xCB7BC9, 0x00000AB + +gUnk_08CB7C74:: @ 08CB7C74 + .incbin "baserom.gba", 0xCB7C74, 0x0001EEC + +gUnk_08CB9B60:: @ 08CB9B60 + .incbin "baserom.gba", 0xCB9B60, 0x0001A5A + +gUnk_08CBB5BA:: @ 08CBB5BA + .incbin "baserom.gba", 0xCBB5BA, 0x000057D + +gUnk_08CBBB37:: @ 08CBBB37 + .incbin "baserom.gba", 0xCBBB37, 0x0000196 + +gUnk_08CBBCCD:: @ 08CBBCCD + .incbin "baserom.gba", 0xCBBCCD, 0x0000405 + +gUnk_08CBC0D2:: @ 08CBC0D2 + .incbin "baserom.gba", 0xCBC0D2, 0x000001A + +gUnk_08CBC0EC:: @ 08CBC0EC + .incbin "baserom.gba", 0xCBC0EC, 0x0000DE9 + +gUnk_08CBCED5:: @ 08CBCED5 + .incbin "baserom.gba", 0xCBCED5, 0x0000616 + +gUnk_08CBD4EB:: @ 08CBD4EB + .incbin "baserom.gba", 0xCBD4EB, 0x00001D9 + +gUnk_08CBD6C4:: @ 08CBD6C4 + .incbin "baserom.gba", 0xCBD6C4, 0x000073B + +gUnk_08CBDDFF:: @ 08CBDDFF + .incbin "baserom.gba", 0xCBDDFF, 0x0000516 + +gUnk_08CBE315:: @ 08CBE315 + .incbin "baserom.gba", 0xCBE315, 0x000067F + +gUnk_08CBE994:: @ 08CBE994 + .incbin "baserom.gba", 0xCBE994, 0x0001576 + +gUnk_08CBFF0A:: @ 08CBFF0A + .incbin "baserom.gba", 0xCBFF0A, 0x00000F7 + +gUnk_08CC0001:: @ 08CC0001 + .incbin "baserom.gba", 0xCC0001, 0x0000016 + +gUnk_08CC0017:: @ 08CC0017 + .incbin "baserom.gba", 0xCC0017, 0x00001B1 + +gUnk_08CC01C8:: @ 08CC01C8 + .incbin "baserom.gba", 0xCC01C8, 0x0000080 + +gUnk_08CC0248:: @ 08CC0248 + .incbin "baserom.gba", 0xCC0248, 0x0000080 + +gUnk_08CC02C8:: @ 08CC02C8 + .incbin "baserom.gba", 0xCC02C8, 0x000023B + +gUnk_08CC0503:: @ 08CC0503 + .incbin "baserom.gba", 0xCC0503, 0x0001022 + +gUnk_08CC1525:: @ 08CC1525 + .incbin "baserom.gba", 0xCC1525, 0x00015D7 + +gUnk_08CC2AFC:: @ 08CC2AFC + .incbin "baserom.gba", 0xCC2AFC, 0x0000BD4 + +gUnk_08CC36D0:: @ 08CC36D0 + .incbin "baserom.gba", 0xCC36D0, 0x0000868 + +gUnk_08CC3F38:: @ 08CC3F38 + .incbin "baserom.gba", 0xCC3F38, 0x000026C + +gUnk_08CC41A4:: @ 08CC41A4 + .incbin "baserom.gba", 0xCC41A4, 0x0001AA8 + +gUnk_08CC5C4C:: @ 08CC5C4C + .incbin "baserom.gba", 0xCC5C4C, 0x0000058 + +gUnk_08CC5CA4:: @ 08CC5CA4 + .incbin "baserom.gba", 0xCC5CA4, 0x00016C9 + +gUnk_08CC736D:: @ 08CC736D + .incbin "baserom.gba", 0xCC736D, 0x00000E7 + +gUnk_08CC7454:: @ 08CC7454 + .incbin "baserom.gba", 0xCC7454, 0x0000875 + +gUnk_08CC7CC9:: @ 08CC7CC9 + .incbin "baserom.gba", 0xCC7CC9, 0x0000522 + +gUnk_08CC81EB:: @ 08CC81EB + .incbin "baserom.gba", 0xCC81EB, 0x0001875 + +gUnk_08CC9A60:: @ 08CC9A60 + .incbin "baserom.gba", 0xCC9A60, 0x00005E1 + +gUnk_08CCA041:: @ 08CCA041 + .incbin "baserom.gba", 0xCCA041, 0x000037A + +gUnk_08CCA3BB:: @ 08CCA3BB + .incbin "baserom.gba", 0xCCA3BB, 0x00003E5 + +gUnk_08CCA7A0:: @ 08CCA7A0 + .incbin "baserom.gba", 0xCCA7A0, 0x000022F + +gUnk_08CCA9CF:: @ 08CCA9CF + .incbin "baserom.gba", 0xCCA9CF, 0x0001575 + +gUnk_08CCBF44:: @ 08CCBF44 + .incbin "baserom.gba", 0xCCBF44, 0x0000272 + +gUnk_08CCC1B6:: @ 08CCC1B6 + .incbin "baserom.gba", 0xCCC1B6, 0x000005B + +gUnk_08CCC211:: @ 08CCC211 + .incbin "baserom.gba", 0xCCC211, 0x00009AA + +gUnk_08CCCBBB:: @ 08CCCBBB + .incbin "baserom.gba", 0xCCCBBB, 0x0000111 + +gUnk_08CCCCCC:: @ 08CCCCCC + .incbin "baserom.gba", 0xCCCCCC, 0x0000005 + +gUnk_08CCCCD1:: @ 08CCCCD1 + .incbin "baserom.gba", 0xCCCCD1, 0x0000309 + +gUnk_08CCCFDA:: @ 08CCCFDA + .incbin "baserom.gba", 0xCCCFDA, 0x0000311 + +gUnk_08CCD2EB:: @ 08CCD2EB + .incbin "baserom.gba", 0xCCD2EB, 0x00000E0 + +gUnk_08CCD3CB:: @ 08CCD3CB + .incbin "baserom.gba", 0xCCD3CB, 0x0000069 + +gUnk_08CCD434:: @ 08CCD434 + .incbin "baserom.gba", 0xCCD434, 0x0000698 + +gUnk_08CCDACC:: @ 08CCDACC + .incbin "baserom.gba", 0xCCDACC, 0x00003C4 + +gUnk_08CCDE90:: @ 08CCDE90 + .incbin "baserom.gba", 0xCCDE90, 0x0000058 + +gUnk_08CCDEE8:: @ 08CCDEE8 + .incbin "baserom.gba", 0xCCDEE8, 0x00001FD + +gUnk_08CCE0E5:: @ 08CCE0E5 + .incbin "baserom.gba", 0xCCE0E5, 0x0000D9B + +gUnk_08CCEE80:: @ 08CCEE80 + .incbin "baserom.gba", 0xCCEE80, 0x0000F90 + +gUnk_08CCFE10:: @ 08CCFE10 + .incbin "baserom.gba", 0xCCFE10, 0x00001F1 + +gUnk_08CD0001:: @ 08CD0001 + .incbin "baserom.gba", 0xCD0001, 0x000039E + +gUnk_08CD039F:: @ 08CD039F + .incbin "baserom.gba", 0xCD039F, 0x0000461 + +gUnk_08CD0800:: @ 08CD0800 + .incbin "baserom.gba", 0xCD0800, 0x000016C + +gUnk_08CD096C:: @ 08CD096C + .incbin "baserom.gba", 0xCD096C, 0x0000B2C + +gUnk_08CD1498:: @ 08CD1498 + .incbin "baserom.gba", 0xCD1498, 0x0000B78 + +gUnk_08CD2010:: @ 08CD2010 + .incbin "baserom.gba", 0xCD2010, 0x00003F3 + +gUnk_08CD2403:: @ 08CD2403 + .incbin "baserom.gba", 0xCD2403, 0x0000024 + +gUnk_08CD2427:: @ 08CD2427 + .incbin "baserom.gba", 0xCD2427, 0x0000685 + +gUnk_08CD2AAC:: @ 08CD2AAC + .incbin "baserom.gba", 0xCD2AAC, 0x0000D54 + +gUnk_08CD3800:: @ 08CD3800 + .incbin "baserom.gba", 0xCD3800, 0x0000608 + +gUnk_08CD3E08:: @ 08CD3E08 + .incbin "baserom.gba", 0xCD3E08, 0x0000100 + +gUnk_08CD3F08:: @ 08CD3F08 + .incbin "baserom.gba", 0xCD3F08, 0x0002810 + +gUnk_08CD6718:: @ 08CD6718 + .incbin "baserom.gba", 0xCD6718, 0x0000ED4 + +gUnk_08CD75EC:: @ 08CD75EC + .incbin "baserom.gba", 0xCD75EC, 0x0003AC4 + +gUnk_08CDB0B0:: @ 08CDB0B0 + .incbin "baserom.gba", 0xCDB0B0, 0x0000115 + +gUnk_08CDB1C5:: @ 08CDB1C5 + .incbin "baserom.gba", 0xCDB1C5, 0x00001DE + +gUnk_08CDB3A3:: @ 08CDB3A3 + .incbin "baserom.gba", 0xCDB3A3, 0x000082A + +gUnk_08CDBBCD:: @ 08CDBBCD + .incbin "baserom.gba", 0xCDBBCD, 0x000041E + +gUnk_08CDBFEB:: @ 08CDBFEB + .incbin "baserom.gba", 0xCDBFEB, 0x00000B9 + +gUnk_08CDC0A4:: @ 08CDC0A4 + .incbin "baserom.gba", 0xCDC0A4, 0x0000CF5 + +gUnk_08CDCD99:: @ 08CDCD99 + .incbin "baserom.gba", 0xCDCD99, 0x0001350 + +gUnk_08CDE0E9:: @ 08CDE0E9 + .incbin "baserom.gba", 0xCDE0E9, 0x0000628 + +gUnk_08CDE711:: @ 08CDE711 + .incbin "baserom.gba", 0xCDE711, 0x000016F + +gUnk_08CDE880:: @ 08CDE880 + .incbin "baserom.gba", 0xCDE880, 0x0000FA4 + +gUnk_08CDF824:: @ 08CDF824 + .incbin "baserom.gba", 0xCDF824, 0x00013E8 + +gUnk_08CE0C0C:: @ 08CE0C0C + .incbin "baserom.gba", 0xCE0C0C, 0x000050F + +gUnk_08CE111B:: @ 08CE111B + .incbin "baserom.gba", 0xCE111B, 0x0001219 + +gUnk_08CE2334:: @ 08CE2334 + .incbin "baserom.gba", 0xCE2334, 0x00033FC + +gUnk_08CE5730:: @ 08CE5730 + .incbin "baserom.gba", 0xCE5730, 0x000123C + +gUnk_08CE696C:: @ 08CE696C + .incbin "baserom.gba", 0xCE696C, 0x0002743 + +gUnk_08CE90AF:: @ 08CE90AF + .incbin "baserom.gba", 0xCE90AF, 0x00014F5 + +gUnk_08CEA5A4:: @ 08CEA5A4 + .incbin "baserom.gba", 0xCEA5A4, 0x0000A08 + +gUnk_08CEAFAC:: @ 08CEAFAC + .incbin "baserom.gba", 0xCEAFAC, 0x0001458 + +gUnk_08CEC404:: @ 08CEC404 + .incbin "baserom.gba", 0xCEC404, 0x0001631 + +gUnk_08CEDA35:: @ 08CEDA35 + .incbin "baserom.gba", 0xCEDA35, 0x00008FE + +gUnk_08CEE333:: @ 08CEE333 + .incbin "baserom.gba", 0xCEE333, 0x0000BB6 + +gUnk_08CEEEE9:: @ 08CEEEE9 + .incbin "baserom.gba", 0xCEEEE9, 0x000105B + +gUnk_08CEFF44:: @ 08CEFF44 + .incbin "baserom.gba", 0xCEFF44, 0x000048D + +gUnk_08CF03D1:: @ 08CF03D1 + .incbin "baserom.gba", 0xCF03D1, 0x00000FD + +gUnk_08CF04CE:: @ 08CF04CE + .incbin "baserom.gba", 0xCF04CE, 0x0000100 + +gUnk_08CF05CE:: @ 08CF05CE + .incbin "baserom.gba", 0xCF05CE, 0x00003FC + +gUnk_08CF09CA:: @ 08CF09CA + .incbin "baserom.gba", 0xCF09CA, 0x000020E + +gUnk_08CF0BD8:: @ 08CF0BD8 + .incbin "baserom.gba", 0xCF0BD8, 0x0000774 + +gUnk_08CF134C:: @ 08CF134C + .incbin "baserom.gba", 0xCF134C, 0x0004F68 + +gUnk_08CF62B4:: @ 08CF62B4 + .incbin "baserom.gba", 0xCF62B4, 0x0002953 + +gUnk_08CF8C07:: @ 08CF8C07 + .incbin "baserom.gba", 0xCF8C07, 0x0000A31 + +gUnk_08CF9638:: @ 08CF9638 + .incbin "baserom.gba", 0xCF9638, 0x0000A9C + +gUnk_08CFA0D4:: @ 08CFA0D4 + .incbin "baserom.gba", 0xCFA0D4, 0x0000FDD + +gUnk_08CFB0B1:: @ 08CFB0B1 + .incbin "baserom.gba", 0xCFB0B1, 0x0000301 + +gUnk_08CFB3B2:: @ 08CFB3B2 + .incbin "baserom.gba", 0xCFB3B2, 0x0000427 + +gUnk_08CFB7D9:: @ 08CFB7D9 + .incbin "baserom.gba", 0xCFB7D9, 0x0000F2B + +gUnk_08CFC704:: @ 08CFC704 + .incbin "baserom.gba", 0xCFC704, 0x0000328 + +gUnk_08CFCA2C:: @ 08CFCA2C + .incbin "baserom.gba", 0xCFCA2C, 0x00006CA + +gUnk_08CFD0F6:: @ 08CFD0F6 + .incbin "baserom.gba", 0xCFD0F6, 0x000033E + +gUnk_08CFD434:: @ 08CFD434 + .incbin "baserom.gba", 0xCFD434, 0x00005DE + +gUnk_08CFDA12:: @ 08CFDA12 + .incbin "baserom.gba", 0xCFDA12, 0x00006F6 + +gUnk_08CFE108:: @ 08CFE108 + .incbin "baserom.gba", 0xCFE108, 0x0001B5D + +gUnk_08CFFC65:: @ 08CFFC65 + .incbin "baserom.gba", 0xCFFC65, 0x00004EF + +gUnk_08D00154:: @ 08D00154 + .incbin "baserom.gba", 0xD00154, 0x0000738 + +gUnk_08D0088C:: @ 08D0088C + .incbin "baserom.gba", 0xD0088C, 0x0000794 + +gUnk_08D01020:: @ 08D01020 + .incbin "baserom.gba", 0xD01020, 0x000013B + +gUnk_08D0115B:: @ 08D0115B + .incbin "baserom.gba", 0xD0115B, 0x00032D4 + +gUnk_08D0442F:: @ 08D0442F + .incbin "baserom.gba", 0xD0442F, 0x0002541 + +gUnk_08D06970:: @ 08D06970 + .incbin "baserom.gba", 0xD06970, 0x00012AC + +gUnk_08D07C1C:: @ 08D07C1C + .incbin "baserom.gba", 0xD07C1C, 0x0002B98 + +gUnk_08D0A7B4:: @ 08D0A7B4 + .incbin "baserom.gba", 0xD0A7B4, 0x0002758 + +gUnk_08D0CF0C:: @ 08D0CF0C + .incbin "baserom.gba", 0xD0CF0C, 0x00001C4 + +gUnk_08D0D0D0:: @ 08D0D0D0 + .incbin "baserom.gba", 0xD0D0D0, 0x0000718 + +gUnk_08D0D7E8:: @ 08D0D7E8 + .incbin "baserom.gba", 0xD0D7E8, 0x0000F90 + +gUnk_08D0E778:: @ 08D0E778 + .incbin "baserom.gba", 0xD0E778, 0x0000480 + +gUnk_08D0EBF8:: @ 08D0EBF8 + .incbin "baserom.gba", 0xD0EBF8, 0x0000114 + +gUnk_08D0ED0C:: @ 08D0ED0C + .incbin "baserom.gba", 0xD0ED0C, 0x00013A4 + +gUnk_08D100B0:: @ 08D100B0 + .incbin "baserom.gba", 0xD100B0, 0x0000120 + +gUnk_08D101D0:: @ 08D101D0 + .incbin "baserom.gba", 0xD101D0, 0x0000130 + +gUnk_08D10300:: @ 08D10300 + .incbin "baserom.gba", 0xD10300, 0x0000008 + +gUnk_08D10308:: @ 08D10308 + .incbin "baserom.gba", 0xD10308, 0x000003B + +gUnk_08D10343:: @ 08D10343 + .incbin "baserom.gba", 0xD10343, 0x000018D + +gUnk_08D104D0:: @ 08D104D0 + .incbin "baserom.gba", 0xD104D0, 0x00005EC + +gUnk_08D10ABC:: @ 08D10ABC + .incbin "baserom.gba", 0xD10ABC, 0x0000921 + +gUnk_08D113DD:: @ 08D113DD + .incbin "baserom.gba", 0xD113DD, 0x0000340 + +gUnk_08D1171D:: @ 08D1171D + .incbin "baserom.gba", 0xD1171D, 0x000099E + +gUnk_08D120BB:: @ 08D120BB + .incbin "baserom.gba", 0xD120BB, 0x0000179 + +gUnk_08D12234:: @ 08D12234 + .incbin "baserom.gba", 0xD12234, 0x0000468 + +gUnk_08D1269C:: @ 08D1269C + .incbin "baserom.gba", 0xD1269C, 0x0002674 + +gUnk_08D14D10:: @ 08D14D10 + .incbin "baserom.gba", 0xD14D10, 0x0000848 + +gUnk_08D15558:: @ 08D15558 + .incbin "baserom.gba", 0xD15558, 0x0000FE8 + +gUnk_08D16540:: @ 08D16540 + .incbin "baserom.gba", 0xD16540, 0x0001288 + +gUnk_08D177C8:: @ 08D177C8 + .incbin "baserom.gba", 0xD177C8, 0x00025B9 + +gUnk_08D19D81:: @ 08D19D81 + .incbin "baserom.gba", 0xD19D81, 0x000050F + +gUnk_08D1A290:: @ 08D1A290 + .incbin "baserom.gba", 0xD1A290, 0x0000A34 + +gUnk_08D1ACC4:: @ 08D1ACC4 + .incbin "baserom.gba", 0xD1ACC4, 0x0000607 + +gUnk_08D1B2CB:: @ 08D1B2CB + .incbin "baserom.gba", 0xD1B2CB, 0x0000B09 + +gUnk_08D1BDD4:: @ 08D1BDD4 + .incbin "baserom.gba", 0xD1BDD4, 0x0002E88 + +gUnk_08D1EC5C:: @ 08D1EC5C + .incbin "baserom.gba", 0xD1EC5C, 0x00005B6 + +gUnk_08D1F212:: @ 08D1F212 + .incbin "baserom.gba", 0xD1F212, 0x0000645 + +gUnk_08D1F857:: @ 08D1F857 + .incbin "baserom.gba", 0xD1F857, 0x00005DB + +gUnk_08D1FE32:: @ 08D1FE32 + .incbin "baserom.gba", 0xD1FE32, 0x00001DC + +gUnk_08D2000E:: @ 08D2000E + .incbin "baserom.gba", 0xD2000E, 0x000084E + +gUnk_08D2085C:: @ 08D2085C + .incbin "baserom.gba", 0xD2085C, 0x0001190 + +gUnk_08D219EC:: @ 08D219EC + .incbin "baserom.gba", 0xD219EC, 0x0000278 + +gUnk_08D21C64:: @ 08D21C64 + .incbin "baserom.gba", 0xD21C64, 0x00010CE + +gUnk_08D22D32:: @ 08D22D32 + .incbin "baserom.gba", 0xD22D32, 0x0001196 + +gUnk_08D23EC8:: @ 08D23EC8 + .incbin "baserom.gba", 0xD23EC8, 0x0000C6C + +gUnk_08D24B34:: @ 08D24B34 + .incbin "baserom.gba", 0xD24B34, 0x0000C9E + +gUnk_08D257D2:: @ 08D257D2 + .incbin "baserom.gba", 0xD257D2, 0x00015FE + +gUnk_08D26DD0:: @ 08D26DD0 + .incbin "baserom.gba", 0xD26DD0, 0x00016E8 + +gUnk_08D284B8:: @ 08D284B8 + .incbin "baserom.gba", 0xD284B8, 0x0000D44 + +gUnk_08D291FC:: @ 08D291FC + .incbin "baserom.gba", 0xD291FC, 0x000078E + +gUnk_08D2998A:: @ 08D2998A + .incbin "baserom.gba", 0xD2998A, 0x0000D09 + +gUnk_08D2A693:: @ 08D2A693 + .incbin "baserom.gba", 0xD2A693, 0x0000305 + +gUnk_08D2A998:: @ 08D2A998 + .incbin "baserom.gba", 0xD2A998, 0x0000270 + +gUnk_08D2AC08:: @ 08D2AC08 + .incbin "baserom.gba", 0xD2AC08, 0x00019B0 + +gUnk_08D2C5B8:: @ 08D2C5B8 + .incbin "baserom.gba", 0xD2C5B8, 0x000062F + +gUnk_08D2CBE7:: @ 08D2CBE7 + .incbin "baserom.gba", 0xD2CBE7, 0x00006EC + +gUnk_08D2D2D3:: @ 08D2D2D3 + .incbin "baserom.gba", 0xD2D2D3, 0x0000072 + +gUnk_08D2D345:: @ 08D2D345 + .incbin "baserom.gba", 0xD2D345, 0x00002D8 + +gUnk_08D2D61D:: @ 08D2D61D + .incbin "baserom.gba", 0xD2D61D, 0x00008C9 + +gUnk_08D2DEE6:: @ 08D2DEE6 + .incbin "baserom.gba", 0xD2DEE6, 0x00001F6 + +gUnk_08D2E0DC:: @ 08D2E0DC + .incbin "baserom.gba", 0xD2E0DC, 0x0000C33 + +gUnk_08D2ED0F:: @ 08D2ED0F + .incbin "baserom.gba", 0xD2ED0F, 0x00001F4 + +gUnk_08D2EF03:: @ 08D2EF03 + .incbin "baserom.gba", 0xD2EF03, 0x00004F3 + +gUnk_08D2F3F6:: @ 08D2F3F6 + .incbin "baserom.gba", 0xD2F3F6, 0x000050A + +gUnk_08D2F900:: @ 08D2F900 + .incbin "baserom.gba", 0xD2F900, 0x00002EC + +gUnk_08D2FBEC:: @ 08D2FBEC + .incbin "baserom.gba", 0xD2FBEC, 0x000041E + +gUnk_08D3000A:: @ 08D3000A + .incbin "baserom.gba", 0xD3000A, 0x0000006 + +gUnk_08D30010:: @ 08D30010 + .incbin "baserom.gba", 0xD30010, 0x00001C2 + +gUnk_08D301D2:: @ 08D301D2 + .incbin "baserom.gba", 0xD301D2, 0x00000A0 + +gUnk_08D30272:: @ 08D30272 + .incbin "baserom.gba", 0xD30272, 0x0000161 + +gUnk_08D303D3:: @ 08D303D3 + .incbin "baserom.gba", 0xD303D3, 0x0000183 + +gUnk_08D30556:: @ 08D30556 + .incbin "baserom.gba", 0xD30556, 0x000037C + +gUnk_08D308D2:: @ 08D308D2 + .incbin "baserom.gba", 0xD308D2, 0x0000798 + +gUnk_08D3106A:: @ 08D3106A + .incbin "baserom.gba", 0xD3106A, 0x0003866 + +gUnk_08D348D0:: @ 08D348D0 + .incbin "baserom.gba", 0xD348D0, 0x0000A19 + +gUnk_08D352E9:: @ 08D352E9 + .incbin "baserom.gba", 0xD352E9, 0x0001D9B + +gUnk_08D37084:: @ 08D37084 + .incbin "baserom.gba", 0xD37084, 0x000219C + +gUnk_08D39220:: @ 08D39220 + .incbin "baserom.gba", 0xD39220, 0x0000962 + +gUnk_08D39B82:: @ 08D39B82 + .incbin "baserom.gba", 0xD39B82, 0x00003FF + +gUnk_08D39F81:: @ 08D39F81 + .incbin "baserom.gba", 0xD39F81, 0x0000200 + +gUnk_08D3A181:: @ 08D3A181 + .incbin "baserom.gba", 0xD3A181, 0x0001213 + +gUnk_08D3B394:: @ 08D3B394 + .incbin "baserom.gba", 0xD3B394, 0x0000503 + +gUnk_08D3B897:: @ 08D3B897 + .incbin "baserom.gba", 0xD3B897, 0x000209A + +gUnk_08D3D931:: @ 08D3D931 + .incbin "baserom.gba", 0xD3D931, 0x00026D9 + +gUnk_08D4000A:: @ 08D4000A + .incbin "baserom.gba", 0xD4000A, 0x000001E + +gUnk_08D40028:: @ 08D40028 + .incbin "baserom.gba", 0xD40028, 0x00004D8 + +gUnk_08D40500:: @ 08D40500 + .incbin "baserom.gba", 0xD40500, 0x0001850 + +gUnk_08D41D50:: @ 08D41D50 + .incbin "baserom.gba", 0xD41D50, 0x0000B80 + +gUnk_08D428D0:: @ 08D428D0 + .incbin "baserom.gba", 0xD428D0, 0x0000283 + +gUnk_08D42B53:: @ 08D42B53 + .incbin "baserom.gba", 0xD42B53, 0x0001421 + +gUnk_08D43F74:: @ 08D43F74 + .incbin "baserom.gba", 0xD43F74, 0x0003C74 + +gUnk_08D47BE8:: @ 08D47BE8 + .incbin "baserom.gba", 0xD47BE8, 0x0000BED + +gUnk_08D487D5:: @ 08D487D5 + .incbin "baserom.gba", 0xD487D5, 0x00010AC + +gUnk_08D49881:: @ 08D49881 + .incbin "baserom.gba", 0xD49881, 0x00005CB + +gUnk_08D49E4C:: @ 08D49E4C + .incbin "baserom.gba", 0xD49E4C, 0x00000E8 + +gUnk_08D49F34:: @ 08D49F34 + .incbin "baserom.gba", 0xD49F34, 0x000054F + +gUnk_08D4A483:: @ 08D4A483 + .incbin "baserom.gba", 0xD4A483, 0x0000451 + +gUnk_08D4A8D4:: @ 08D4A8D4 + .incbin "baserom.gba", 0xD4A8D4, 0x00012E7 + +gUnk_08D4BBBB:: @ 08D4BBBB + .incbin "baserom.gba", 0xD4BBBB, 0x0000419 + +gUnk_08D4BFD4:: @ 08D4BFD4 + .incbin "baserom.gba", 0xD4BFD4, 0x00021A4 + +gUnk_08D4E178:: @ 08D4E178 + .incbin "baserom.gba", 0xD4E178, 0x0000176 + +gUnk_08D4E2EE:: @ 08D4E2EE + .incbin "baserom.gba", 0xD4E2EE, 0x0000B09 + +gUnk_08D4EDF7:: @ 08D4EDF7 + .incbin "baserom.gba", 0xD4EDF7, 0x00008FB + +gUnk_08D4F6F2:: @ 08D4F6F2 + .incbin "baserom.gba", 0xD4F6F2, 0x0000E1E + +gUnk_08D50510:: @ 08D50510 + .incbin "baserom.gba", 0xD50510, 0x00002E1 + +gUnk_08D507F1:: @ 08D507F1 + .incbin "baserom.gba", 0xD507F1, 0x0000B2F + +gUnk_08D51320:: @ 08D51320 + .incbin "baserom.gba", 0xD51320, 0x00000E1 + +gUnk_08D51401:: @ 08D51401 + .incbin "baserom.gba", 0xD51401, 0x0000653 + +gUnk_08D51A54:: @ 08D51A54 + .incbin "baserom.gba", 0xD51A54, 0x0001608 + +gUnk_08D5305C:: @ 08D5305C + .incbin "baserom.gba", 0xD5305C, 0x00002ED + +gUnk_08D53349:: @ 08D53349 + .incbin "baserom.gba", 0xD53349, 0x0000B7F + +gUnk_08D53EC8:: @ 08D53EC8 + .incbin "baserom.gba", 0xD53EC8, 0x0000BD8 + +gUnk_08D54AA0:: @ 08D54AA0 + .incbin "baserom.gba", 0xD54AA0, 0x0002CB8 + +gUnk_08D57758:: @ 08D57758 + .incbin "baserom.gba", 0xD57758, 0x00018B8 + +gUnk_08D59010:: @ 08D59010 + .incbin "baserom.gba", 0xD59010, 0x000178A + +gUnk_08D5A79A:: @ 08D5A79A + .incbin "baserom.gba", 0xD5A79A, 0x00000E9 + +gUnk_08D5A883:: @ 08D5A883 + .incbin "baserom.gba", 0xD5A883, 0x0000336 + +gUnk_08D5ABB9:: @ 08D5ABB9 + .incbin "baserom.gba", 0xD5ABB9, 0x0000F0C + +gUnk_08D5BAC5:: @ 08D5BAC5 + .incbin "baserom.gba", 0xD5BAC5, 0x00000DE + +gUnk_08D5BBA3:: @ 08D5BBA3 + .incbin "baserom.gba", 0xD5BBA3, 0x0000C32 + +gUnk_08D5C7D5:: @ 08D5C7D5 + .incbin "baserom.gba", 0xD5C7D5, 0x0000B33 + +gUnk_08D5D308:: @ 08D5D308 + .incbin "baserom.gba", 0xD5D308, 0x00004DB + +gUnk_08D5D7E3:: @ 08D5D7E3 + .incbin "baserom.gba", 0xD5D7E3, 0x000174B + +gUnk_08D5EF2E:: @ 08D5EF2E + .incbin "baserom.gba", 0xD5EF2E, 0x00000B6 + +gUnk_08D5EFE4:: @ 08D5EFE4 + .incbin "baserom.gba", 0xD5EFE4, 0x0001384 + +gUnk_08D60368:: @ 08D60368 + .incbin "baserom.gba", 0xD60368, 0x0000008 + +gUnk_08D60370:: @ 08D60370 + .incbin "baserom.gba", 0xD60370, 0x000005C + +gUnk_08D603CC:: @ 08D603CC + .incbin "baserom.gba", 0xD603CC, 0x0000444 + +gUnk_08D60810:: @ 08D60810 + .incbin "baserom.gba", 0xD60810, 0x0000D28 + +gUnk_08D61538:: @ 08D61538 + .incbin "baserom.gba", 0xD61538, 0x0001CC0 + +gUnk_08D631F8:: @ 08D631F8 + .incbin "baserom.gba", 0xD631F8, 0x000016E + +gUnk_08D63366:: @ 08D63366 + .incbin "baserom.gba", 0xD63366, 0x0000096 + +gUnk_08D633FC:: @ 08D633FC + .incbin "baserom.gba", 0xD633FC, 0x0000708 + +gUnk_08D63B04:: @ 08D63B04 + .incbin "baserom.gba", 0xD63B04, 0x0000404 + +gUnk_08D63F08:: @ 08D63F08 + .incbin "baserom.gba", 0xD63F08, 0x0001D14 + +gUnk_08D65C1C:: @ 08D65C1C + .incbin "baserom.gba", 0xD65C1C, 0x0002380 + +gUnk_08D67F9C:: @ 08D67F9C + .incbin "baserom.gba", 0xD67F9C, 0x00012B4 + +gUnk_08D69250:: @ 08D69250 + .incbin "baserom.gba", 0xD69250, 0x0000E33 + +gUnk_08D6A083:: @ 08D6A083 + .incbin "baserom.gba", 0xD6A083, 0x0000838 + +gUnk_08D6A8BB:: @ 08D6A8BB + .incbin "baserom.gba", 0xD6A8BB, 0x0000D89 + +gUnk_08D6B644:: @ 08D6B644 + .incbin "baserom.gba", 0xD6B644, 0x00016C8 + +gUnk_08D6CD0C:: @ 08D6CD0C + .incbin "baserom.gba", 0xD6CD0C, 0x00003AE + +gUnk_08D6D0BA:: @ 08D6D0BA + .incbin "baserom.gba", 0xD6D0BA, 0x0000216 + +gUnk_08D6D2D0:: @ 08D6D2D0 + .incbin "baserom.gba", 0xD6D2D0, 0x0000898 + +gUnk_08D6DB68:: @ 08D6DB68 + .incbin "baserom.gba", 0xD6DB68, 0x0000A7F + +gUnk_08D6E5E7:: @ 08D6E5E7 + .incbin "baserom.gba", 0xD6E5E7, 0x0000991 + +gUnk_08D6EF78:: @ 08D6EF78 + .incbin "baserom.gba", 0xD6EF78, 0x000095C + +gUnk_08D6F8D4:: @ 08D6F8D4 + .incbin "baserom.gba", 0xD6F8D4, 0x000072D + +gUnk_08D70001:: @ 08D70001 + .incbin "baserom.gba", 0xD70001, 0x000012B + +gUnk_08D7012C:: @ 08D7012C + .incbin "baserom.gba", 0xD7012C, 0x00000C4 + +gUnk_08D701F0:: @ 08D701F0 + .incbin "baserom.gba", 0xD701F0, 0x0000610 + +gUnk_08D70800:: @ 08D70800 + .incbin "baserom.gba", 0xD70800, 0x0000100 + +gUnk_08D70900:: @ 08D70900 + .incbin "baserom.gba", 0xD70900, 0x0001188 + +gUnk_08D71A88:: @ 08D71A88 + .incbin "baserom.gba", 0xD71A88, 0x000186F + +gUnk_08D732F7:: @ 08D732F7 + .incbin "baserom.gba", 0xD732F7, 0x0000471 + +gUnk_08D73768:: @ 08D73768 + .incbin "baserom.gba", 0xD73768, 0x00007A0 + +gUnk_08D73F08:: @ 08D73F08 + .incbin "baserom.gba", 0xD73F08, 0x0000622 + +gUnk_08D7452A:: @ 08D7452A + .incbin "baserom.gba", 0xD7452A, 0x0000B06 + +gUnk_08D75030:: @ 08D75030 + .incbin "baserom.gba", 0xD75030, 0x0000F68 + +gUnk_08D75F98:: @ 08D75F98 + .incbin "baserom.gba", 0xD75F98, 0x0001674 + +gUnk_08D7760C:: @ 08D7760C + .incbin "baserom.gba", 0xD7760C, 0x00000C4 + +gUnk_08D776D0:: @ 08D776D0 + .incbin "baserom.gba", 0xD776D0, 0x0000903 + +gUnk_08D77FD3:: @ 08D77FD3 + .incbin "baserom.gba", 0xD77FD3, 0x0000C2F + +gUnk_08D78C02:: @ 08D78C02 + .incbin "baserom.gba", 0xD78C02, 0x0000132 + +gUnk_08D78D34:: @ 08D78D34 + .incbin "baserom.gba", 0xD78D34, 0x000049F + +gUnk_08D791D3:: @ 08D791D3 + .incbin "baserom.gba", 0xD791D3, 0x0000104 + +gUnk_08D792D7:: @ 08D792D7 + .incbin "baserom.gba", 0xD792D7, 0x00001C6 + +gUnk_08D7949D:: @ 08D7949D + .incbin "baserom.gba", 0xD7949D, 0x0000764 + +gUnk_08D79C01:: @ 08D79C01 + .incbin "baserom.gba", 0xD79C01, 0x000088F + +gUnk_08D7A490:: @ 08D7A490 + .incbin "baserom.gba", 0xD7A490, 0x0000D44 + +gUnk_08D7B1D4:: @ 08D7B1D4 + .incbin "baserom.gba", 0xD7B1D4, 0x00001CC + +gUnk_08D7B3A0:: @ 08D7B3A0 + .incbin "baserom.gba", 0xD7B3A0, 0x0001428 + +gUnk_08D7C7C8:: @ 08D7C7C8 + .incbin "baserom.gba", 0xD7C7C8, 0x0001C7C + +gUnk_08D7E444:: @ 08D7E444 + .incbin "baserom.gba", 0xD7E444, 0x00016EC + +gUnk_08D7FB30:: @ 08D7FB30 + .incbin "baserom.gba", 0xD7FB30, 0x0000320 + +gUnk_08D7FE50:: @ 08D7FE50 + .incbin "baserom.gba", 0xD7FE50, 0x0000167 + +gUnk_08D7FFB7:: @ 08D7FFB7 + .incbin "baserom.gba", 0xD7FFB7, 0x0000139 + +gUnk_08D800F0:: @ 08D800F0 + .incbin "baserom.gba", 0xD800F0, 0x00002F3 + +gUnk_08D803E3:: @ 08D803E3 + .incbin "baserom.gba", 0xD803E3, 0x00002F4 + +gUnk_08D806D7:: @ 08D806D7 + .incbin "baserom.gba", 0xD806D7, 0x0000929 + +gUnk_08D81000:: @ 08D81000 + .incbin "baserom.gba", 0xD81000, 0x0000900 + +gUnk_08D81900:: @ 08D81900 + .incbin "baserom.gba", 0xD81900, 0x0001144 + +gUnk_08D82A44:: @ 08D82A44 + .incbin "baserom.gba", 0xD82A44, 0x0000880 + +gUnk_08D832C4:: @ 08D832C4 + .incbin "baserom.gba", 0xD832C4, 0x00024D4 + +gUnk_08D85798:: @ 08D85798 + .incbin "baserom.gba", 0xD85798, 0x00019BC + +gUnk_08D87154:: @ 08D87154 + .incbin "baserom.gba", 0xD87154, 0x00021BF + +gUnk_08D89313:: @ 08D89313 + .incbin "baserom.gba", 0xD89313, 0x0000F71 + +gUnk_08D8A284:: @ 08D8A284 + .incbin "baserom.gba", 0xD8A284, 0x0000912 + +gUnk_08D8AB96:: @ 08D8AB96 + .incbin "baserom.gba", 0xD8AB96, 0x000032A + +gUnk_08D8AEC0:: @ 08D8AEC0 + .incbin "baserom.gba", 0xD8AEC0, 0x000172C + +gUnk_08D8C5EC:: @ 08D8C5EC + .incbin "baserom.gba", 0xD8C5EC, 0x00008F0 + +gUnk_08D8CEDC:: @ 08D8CEDC + .incbin "baserom.gba", 0xD8CEDC, 0x0000010 + +gUnk_08D8CEEC:: @ 08D8CEEC + .incbin "baserom.gba", 0xD8CEEC, 0x000010B + +gUnk_08D8CFF7:: @ 08D8CFF7 + .incbin "baserom.gba", 0xD8CFF7, 0x0000448 + +gUnk_08D8D43F:: @ 08D8D43F + .incbin "baserom.gba", 0xD8D43F, 0x00003B9 + +gUnk_08D8D7F8:: @ 08D8D7F8 + .incbin "baserom.gba", 0xD8D7F8, 0x00002B0 + +gUnk_08D8DAA8:: @ 08D8DAA8 + .incbin "baserom.gba", 0xD8DAA8, 0x0000E29 + +gUnk_08D8E8D1:: @ 08D8E8D1 + .incbin "baserom.gba", 0xD8E8D1, 0x0000920 + +gUnk_08D8F1F1:: @ 08D8F1F1 + .incbin "baserom.gba", 0xD8F1F1, 0x0000E10 + +gUnk_08D90001:: @ 08D90001 + .incbin "baserom.gba", 0xD90001, 0x0000725 + +gUnk_08D90726:: @ 08D90726 + .incbin "baserom.gba", 0xD90726, 0x00001B2 + +gUnk_08D908D8:: @ 08D908D8 + .incbin "baserom.gba", 0xD908D8, 0x0000583 + +gUnk_08D90E5B:: @ 08D90E5B + .incbin "baserom.gba", 0xD90E5B, 0x00001A5 + +gUnk_08D91000:: @ 08D91000 + .incbin "baserom.gba", 0xD91000, 0x00002E8 + +gUnk_08D912E8:: @ 08D912E8 + .incbin "baserom.gba", 0xD912E8, 0x000052C + +gUnk_08D91814:: @ 08D91814 + .incbin "baserom.gba", 0xD91814, 0x0003038 + +gUnk_08D9484C:: @ 08D9484C + .incbin "baserom.gba", 0xD9484C, 0x0001DAC + +gUnk_08D965F8:: @ 08D965F8 + .incbin "baserom.gba", 0xD965F8, 0x00021E8 + +gUnk_08D987E0:: @ 08D987E0 + .incbin "baserom.gba", 0xD987E0, 0x0002090 + +gUnk_08D9A870:: @ 08D9A870 + .incbin "baserom.gba", 0xD9A870, 0x0000949 + +gUnk_08D9B1B9:: @ 08D9B1B9 + .incbin "baserom.gba", 0xD9B1B9, 0x0000BEE + +gUnk_08D9BDA7:: @ 08D9BDA7 + .incbin "baserom.gba", 0xD9BDA7, 0x0000C2D + +gUnk_08D9C9D4:: @ 08D9C9D4 + .incbin "baserom.gba", 0xD9C9D4, 0x0000060 + +gUnk_08D9CA34:: @ 08D9CA34 + .incbin "baserom.gba", 0xD9CA34, 0x0000AB3 + +gUnk_08D9D4E7:: @ 08D9D4E7 + .incbin "baserom.gba", 0xD9D4E7, 0x000031B + +gUnk_08D9D802:: @ 08D9D802 + .incbin "baserom.gba", 0xD9D802, 0x0000318 + +gUnk_08D9DB1A:: @ 08D9DB1A + .incbin "baserom.gba", 0xD9DB1A, 0x00002C3 + +gUnk_08D9DDDD:: @ 08D9DDDD + .incbin "baserom.gba", 0xD9DDDD, 0x00001F1 + +gUnk_08D9DFCE:: @ 08D9DFCE + .incbin "baserom.gba", 0xD9DFCE, 0x0001625 + +gUnk_08D9F5F3:: @ 08D9F5F3 + .incbin "baserom.gba", 0xD9F5F3, 0x0000AE6 + +gUnk_08DA00D9:: @ 08DA00D9 + .incbin "baserom.gba", 0xDA00D9, 0x0000155 + +gUnk_08DA022E:: @ 08DA022E + .incbin "baserom.gba", 0xDA022E, 0x00000D2 + +gUnk_08DA0300:: @ 08DA0300 + .incbin "baserom.gba", 0xDA0300, 0x00005D9 + +gUnk_08DA08D9:: @ 08DA08D9 + .incbin "baserom.gba", 0xDA08D9, 0x000019F + +gUnk_08DA0A78:: @ 08DA0A78 + .incbin "baserom.gba", 0xDA0A78, 0x0003B0C + +gUnk_08DA4584:: @ 08DA4584 + .incbin "baserom.gba", 0xDA4584, 0x00061C0 + +gUnk_08DAA744:: @ 08DAA744 + .incbin "baserom.gba", 0xDAA744, 0x000004B + +gUnk_08DAA78F:: @ 08DAA78F + .incbin "baserom.gba", 0xDAA78F, 0x0000502 + +gUnk_08DAAC91:: @ 08DAAC91 + .incbin "baserom.gba", 0xDAAC91, 0x0000218 + +gUnk_08DAAEA9:: @ 08DAAEA9 + .incbin "baserom.gba", 0xDAAEA9, 0x0000916 + +gUnk_08DAB7BF:: @ 08DAB7BF + .incbin "baserom.gba", 0xDAB7BF, 0x0000E18 + +gUnk_08DAC5D7:: @ 08DAC5D7 + .incbin "baserom.gba", 0xDAC5D7, 0x000000B + +gUnk_08DAC5E2:: @ 08DAC5E2 + .incbin "baserom.gba", 0xDAC5E2, 0x00001C1 + +gUnk_08DAC7A3:: @ 08DAC7A3 + .incbin "baserom.gba", 0xDAC7A3, 0x0000951 + +gUnk_08DAD0F4:: @ 08DAD0F4 + .incbin "baserom.gba", 0xDAD0F4, 0x000154F + +gUnk_08DAE643:: @ 08DAE643 + .incbin "baserom.gba", 0xDAE643, 0x00000B9 + +gUnk_08DAE6FC:: @ 08DAE6FC + .incbin "baserom.gba", 0xDAE6FC, 0x000043B + +gUnk_08DAEB37:: @ 08DAEB37 + .incbin "baserom.gba", 0xDAEB37, 0x00000CA + +gUnk_08DAEC01:: @ 08DAEC01 + .incbin "baserom.gba", 0xDAEC01, 0x00001DB + +gUnk_08DAEDDC:: @ 08DAEDDC + .incbin "baserom.gba", 0xDAEDDC, 0x0001447 + +gUnk_08DB0223:: @ 08DB0223 + .incbin "baserom.gba", 0xDB0223, 0x0000EE3 + +gUnk_08DB1106:: @ 08DB1106 + .incbin "baserom.gba", 0xDB1106, 0x000002F + +gUnk_08DB1135:: @ 08DB1135 + .incbin "baserom.gba", 0xDB1135, 0x00012C5 + +gUnk_08DB23FA:: @ 08DB23FA + .incbin "baserom.gba", 0xDB23FA, 0x00014AE + +gUnk_08DB38A8:: @ 08DB38A8 + .incbin "baserom.gba", 0xDB38A8, 0x0003F13 + +gUnk_08DB77BB:: @ 08DB77BB + .incbin "baserom.gba", 0xDB77BB, 0x0000691 + +gUnk_08DB7E4C:: @ 08DB7E4C + .incbin "baserom.gba", 0xDB7E4C, 0x0002D5A + +gUnk_08DBABA6:: @ 08DBABA6 + .incbin "baserom.gba", 0xDBABA6, 0x00002F9 + +gUnk_08DBAE9F:: @ 08DBAE9F + .incbin "baserom.gba", 0xDBAE9F, 0x0000707 + +gUnk_08DBB5A6:: @ 08DBB5A6 + .incbin "baserom.gba", 0xDBB5A6, 0x000010A + +gUnk_08DBB6B0:: @ 08DBB6B0 + .incbin "baserom.gba", 0xDBB6B0, 0x0000302 + +gUnk_08DBB9B2:: @ 08DBB9B2 + .incbin "baserom.gba", 0xDBB9B2, 0x000070B + +gUnk_08DBC0BD:: @ 08DBC0BD + .incbin "baserom.gba", 0xDBC0BD, 0x0000946 + +gUnk_08DBCA03:: @ 08DBCA03 + .incbin "baserom.gba", 0xDBCA03, 0x00000EC + +gUnk_08DBCAEF:: @ 08DBCAEF + .incbin "baserom.gba", 0xDBCAEF, 0x00005F7 + +gUnk_08DBD0E6:: @ 08DBD0E6 + .incbin "baserom.gba", 0xDBD0E6, 0x0000013 + +gUnk_08DBD0F9:: @ 08DBD0F9 + .incbin "baserom.gba", 0xDBD0F9, 0x0000002 + +gUnk_08DBD0FB:: @ 08DBD0FB + .incbin "baserom.gba", 0xDBD0FB, 0x00003A1 + +gUnk_08DBD49C:: @ 08DBD49C + .incbin "baserom.gba", 0xDBD49C, 0x0000B63 + +gUnk_08DBDFFF:: @ 08DBDFFF + .incbin "baserom.gba", 0xDBDFFF, 0x000034D + +gUnk_08DBE34C:: @ 08DBE34C + .incbin "baserom.gba", 0xDBE34C, 0x0000270 + +gUnk_08DBE5BC:: @ 08DBE5BC + .incbin "baserom.gba", 0xDBE5BC, 0x0001064 + +gUnk_08DBF620:: @ 08DBF620 + .incbin "baserom.gba", 0xDBF620, 0x00006E0 + +gUnk_08DBFD00:: @ 08DBFD00 + .incbin "baserom.gba", 0xDBFD00, 0x000030E + +gUnk_08DC000E:: @ 08DC000E + .incbin "baserom.gba", 0xDC000E, 0x0000259 + +gUnk_08DC0267:: @ 08DC0267 + .incbin "baserom.gba", 0xDC0267, 0x00002B9 + +gUnk_08DC0520:: @ 08DC0520 + .incbin "baserom.gba", 0xDC0520, 0x000037C + +gUnk_08DC089C:: @ 08DC089C + .incbin "baserom.gba", 0xDC089C, 0x000008F + +gUnk_08DC092B:: @ 08DC092B + .incbin "baserom.gba", 0xDC092B, 0x00006BD + +gUnk_08DC0FE8:: @ 08DC0FE8 + .incbin "baserom.gba", 0xDC0FE8, 0x0000244 + +gUnk_08DC122C:: @ 08DC122C + .incbin "baserom.gba", 0xDC122C, 0x000050C + +gUnk_08DC1738:: @ 08DC1738 + .incbin "baserom.gba", 0xDC1738, 0x00002C2 + +gUnk_08DC19FA:: @ 08DC19FA + .incbin "baserom.gba", 0xDC19FA, 0x000150E + +gUnk_08DC2F08:: @ 08DC2F08 + .incbin "baserom.gba", 0xDC2F08, 0x00011C4 + +gUnk_08DC40CC:: @ 08DC40CC + .incbin "baserom.gba", 0xDC40CC, 0x0000D80 + +gUnk_08DC4E4C:: @ 08DC4E4C + .incbin "baserom.gba", 0xDC4E4C, 0x0003370 + +gUnk_08DC81BC:: @ 08DC81BC + .incbin "baserom.gba", 0xDC81BC, 0x00008CF + +gUnk_08DC8A8B:: @ 08DC8A8B + .incbin "baserom.gba", 0xDC8A8B, 0x0000FF5 + +gUnk_08DC9A80:: @ 08DC9A80 + .incbin "baserom.gba", 0xDC9A80, 0x0000F83 + +gUnk_08DCAA03:: @ 08DCAA03 + .incbin "baserom.gba", 0xDCAA03, 0x0000D99 + +gUnk_08DCB79C:: @ 08DCB79C + .incbin "baserom.gba", 0xDCB79C, 0x0000410 + +gUnk_08DCBBAC:: @ 08DCBBAC + .incbin "baserom.gba", 0xDCBBAC, 0x000061D + +gUnk_08DCC1C9:: @ 08DCC1C9 + .incbin "baserom.gba", 0xDCC1C9, 0x000022C + +gUnk_08DCC3F5:: @ 08DCC3F5 + .incbin "baserom.gba", 0xDCC3F5, 0x0000087 + +gUnk_08DCC47C:: @ 08DCC47C + .incbin "baserom.gba", 0xDCC47C, 0x0000010 + +gUnk_08DCC48C:: @ 08DCC48C + .incbin "baserom.gba", 0xDCC48C, 0x000000C + +gUnk_08DCC498:: @ 08DCC498 + .incbin "baserom.gba", 0xDCC498, 0x000005B + +gUnk_08DCC4F3:: @ 08DCC4F3 + .incbin "baserom.gba", 0xDCC4F3, 0x0000031 + +gUnk_08DCC524:: @ 08DCC524 + .incbin "baserom.gba", 0xDCC524, 0x000000D + +gUnk_08DCC531:: @ 08DCC531 + .incbin "baserom.gba", 0xDCC531, 0x0000037 + +gUnk_08DCC568:: @ 08DCC568 + .incbin "baserom.gba", 0xDCC568, 0x000003A + +gUnk_08DCC5A2:: @ 08DCC5A2 + .incbin "baserom.gba", 0xDCC5A2, 0x0000033 + +gUnk_08DCC5D5:: @ 08DCC5D5 + .incbin "baserom.gba", 0xDCC5D5, 0x000003F + +gUnk_08DCC614:: @ 08DCC614 + .incbin "baserom.gba", 0xDCC614, 0x0000021 + +gUnk_08DCC635:: @ 08DCC635 + .incbin "baserom.gba", 0xDCC635, 0x0000071 + +gUnk_08DCC6A6:: @ 08DCC6A6 + .incbin "baserom.gba", 0xDCC6A6, 0x0000026 + +gUnk_08DCC6CC:: @ 08DCC6CC + .incbin "baserom.gba", 0xDCC6CC, 0x0000024 + +gUnk_08DCC6F0:: @ 08DCC6F0 + .incbin "baserom.gba", 0xDCC6F0, 0x0000038 + +gUnk_08DCC728:: @ 08DCC728 + .incbin "baserom.gba", 0xDCC728, 0x000003C + +gUnk_08DCC764:: @ 08DCC764 + .incbin "baserom.gba", 0xDCC764, 0x000003C + +gUnk_08DCC7A0:: @ 08DCC7A0 + .incbin "baserom.gba", 0xDCC7A0, 0x000000B + +gUnk_08DCC7AB:: @ 08DCC7AB + .incbin "baserom.gba", 0xDCC7AB, 0x0000031 + +gUnk_08DCC7DC:: @ 08DCC7DC + .incbin "baserom.gba", 0xDCC7DC, 0x000003C + +gUnk_08DCC818:: @ 08DCC818 + .incbin "baserom.gba", 0xDCC818, 0x000002C + +gUnk_08DCC844:: @ 08DCC844 + .incbin "baserom.gba", 0xDCC844, 0x0000020 + +gUnk_08DCC864:: @ 08DCC864 + .incbin "baserom.gba", 0xDCC864, 0x0000034 + +gUnk_08DCC898:: @ 08DCC898 + .incbin "baserom.gba", 0xDCC898, 0x000002F + +gUnk_08DCC8C7:: @ 08DCC8C7 + .incbin "baserom.gba", 0xDCC8C7, 0x000003B + +gUnk_08DCC902:: @ 08DCC902 + .incbin "baserom.gba", 0xDCC902, 0x0000050 + +gUnk_08DCC952:: @ 08DCC952 + .incbin "baserom.gba", 0xDCC952, 0x000003B + +gUnk_08DCC98D:: @ 08DCC98D + .incbin "baserom.gba", 0xDCC98D, 0x000000C + +gUnk_08DCC999:: @ 08DCC999 + .incbin "baserom.gba", 0xDCC999, 0x0000016 + +gUnk_08DCC9AF:: @ 08DCC9AF + .incbin "baserom.gba", 0xDCC9AF, 0x0000045 + +gUnk_08DCC9F4:: @ 08DCC9F4 + .incbin "baserom.gba", 0xDCC9F4, 0x0000024 + +gUnk_08DCCA18:: @ 08DCCA18 + .incbin "baserom.gba", 0xDCCA18, 0x000003E + +gUnk_08DCCA56:: @ 08DCCA56 + .incbin "baserom.gba", 0xDCCA56, 0x0000034 + +gUnk_08DCCA8A:: @ 08DCCA8A + .incbin "baserom.gba", 0xDCCA8A, 0x0000038 + +gUnk_08DCCAC2:: @ 08DCCAC2 + .incbin "baserom.gba", 0xDCCAC2, 0x0000038 + +gUnk_08DCCAFA:: @ 08DCCAFA + .incbin "baserom.gba", 0xDCCAFA, 0x0000042 + +gUnk_08DCCB3C:: @ 08DCCB3C + .incbin "baserom.gba", 0xDCCB3C, 0x000001C + +gUnk_08DCCB58:: @ 08DCCB58 + .incbin "baserom.gba", 0xDCCB58, 0x0000038 + +gUnk_08DCCB90:: @ 08DCCB90 + .incbin "baserom.gba", 0xDCCB90, 0x0000018 + +gUnk_08DCCBA8:: @ 08DCCBA8 + .incbin "baserom.gba", 0xDCCBA8, 0x0000044 + +gUnk_08DCCBEC:: @ 08DCCBEC + .incbin "baserom.gba", 0xDCCBEC, 0x0000061 + +gUnk_08DCCC4D:: @ 08DCCC4D + .incbin "baserom.gba", 0xDCCC4D, 0x000003A + +gUnk_08DCCC87:: @ 08DCCC87 + .incbin "baserom.gba", 0xDCCC87, 0x000000E + +gUnk_08DCCC95:: @ 08DCCC95 + .incbin "baserom.gba", 0xDCCC95, 0x000001C + +gUnk_08DCCCB1:: @ 08DCCCB1 + .incbin "baserom.gba", 0xDCCCB1, 0x0000014 + +gUnk_08DCCCC5:: @ 08DCCCC5 + .incbin "baserom.gba", 0xDCCCC5, 0x0000007 + +gUnk_08DCCCCC:: @ 08DCCCCC + .incbin "baserom.gba", 0xDCCCCC, 0x000002E + +gUnk_08DCCCFA:: @ 08DCCCFA + .incbin "baserom.gba", 0xDCCCFA, 0x0000046 + +gUnk_08DCCD40:: @ 08DCCD40 + .incbin "baserom.gba", 0xDCCD40, 0x000002C + +gUnk_08DCCD6C:: @ 08DCCD6C + .incbin "baserom.gba", 0xDCCD6C, 0x0000036 + +gUnk_08DCCDA2:: @ 08DCCDA2 + .incbin "baserom.gba", 0xDCCDA2, 0x000000F + +gUnk_08DCCDB1:: @ 08DCCDB1 + .incbin "baserom.gba", 0xDCCDB1, 0x0000041 + +gUnk_08DCCDF2:: @ 08DCCDF2 + .incbin "baserom.gba", 0xDCCDF2, 0x0000022 + +gUnk_08DCCE14:: @ 08DCCE14 + .incbin "baserom.gba", 0xDCCE14, 0x0000060 + +gUnk_08DCCE74:: @ 08DCCE74 + .incbin "baserom.gba", 0xDCCE74, 0x0000024 + +gUnk_08DCCE98:: @ 08DCCE98 + .incbin "baserom.gba", 0xDCCE98, 0x0000033 + +gUnk_08DCCECB:: @ 08DCCECB + .incbin "baserom.gba", 0xDCCECB, 0x000001A + +gUnk_08DCCEE5:: @ 08DCCEE5 + .incbin "baserom.gba", 0xDCCEE5, 0x0000013 + +gUnk_08DCCEF8:: @ 08DCCEF8 + .incbin "baserom.gba", 0xDCCEF8, 0x0000024 + +gUnk_08DCCF1C:: @ 08DCCF1C + .incbin "baserom.gba", 0xDCCF1C, 0x0000061 + +gUnk_08DCCF7D:: @ 08DCCF7D + .incbin "baserom.gba", 0xDCCF7D, 0x000005F + +gUnk_08DCCFDC:: @ 08DCCFDC + .incbin "baserom.gba", 0xDCCFDC, 0x00000BE + +gUnk_08DCD09A:: @ 08DCD09A + .incbin "baserom.gba", 0xDCD09A, 0x000002E + +gUnk_08DCD0C8:: @ 08DCD0C8 + .incbin "baserom.gba", 0xDCD0C8, 0x0000024 + +gUnk_08DCD0EC:: @ 08DCD0EC + .incbin "baserom.gba", 0xDCD0EC, 0x000003F + +gUnk_08DCD12B:: @ 08DCD12B + .incbin "baserom.gba", 0xDCD12B, 0x0000034 + +gUnk_08DCD15F:: @ 08DCD15F + .incbin "baserom.gba", 0xDCD15F, 0x000002F + +gUnk_08DCD18E:: @ 08DCD18E + .incbin "baserom.gba", 0xDCD18E, 0x0000019 + +gUnk_08DCD1A7:: @ 08DCD1A7 + .incbin "baserom.gba", 0xDCD1A7, 0x0000010 + +gUnk_08DCD1B7:: @ 08DCD1B7 + .incbin "baserom.gba", 0xDCD1B7, 0x0000015 + +gUnk_08DCD1CC:: @ 08DCD1CC + .incbin "baserom.gba", 0xDCD1CC, 0x0000064 + +gUnk_08DCD230:: @ 08DCD230 + .incbin "baserom.gba", 0xDCD230, 0x000002E + +gUnk_08DCD25E:: @ 08DCD25E + .incbin "baserom.gba", 0xDCD25E, 0x000002A + +gUnk_08DCD288:: @ 08DCD288 + .incbin "baserom.gba", 0xDCD288, 0x0000062 + +gUnk_08DCD2EA:: @ 08DCD2EA + .incbin "baserom.gba", 0xDCD2EA, 0x0000002 + +gUnk_08DCD2EC:: @ 08DCD2EC + .incbin "baserom.gba", 0xDCD2EC, 0x0000086 + +gUnk_08DCD372:: @ 08DCD372 + .incbin "baserom.gba", 0xDCD372, 0x00000A1 + +gUnk_08DCD413:: @ 08DCD413 + .incbin "baserom.gba", 0xDCD413, 0x0000007 + +gUnk_08DCD41A:: @ 08DCD41A + .incbin "baserom.gba", 0xDCD41A, 0x0000046 + +gUnk_08DCD460:: @ 08DCD460 + .incbin "baserom.gba", 0xDCD460, 0x000004C + +gUnk_08DCD4AC:: @ 08DCD4AC + .incbin "baserom.gba", 0xDCD4AC, 0x0000024 + +gUnk_08DCD4D0:: @ 08DCD4D0 + .incbin "baserom.gba", 0xDCD4D0, 0x0000027 + +gUnk_08DCD4F7:: @ 08DCD4F7 + .incbin "baserom.gba", 0xDCD4F7, 0x0000043 + +gUnk_08DCD53A:: @ 08DCD53A + .incbin "baserom.gba", 0xDCD53A, 0x000002C + +gUnk_08DCD566:: @ 08DCD566 + .incbin "baserom.gba", 0xDCD566, 0x0000018 + +gUnk_08DCD57E:: @ 08DCD57E + .incbin "baserom.gba", 0xDCD57E, 0x000003E + +gUnk_08DCD5BC:: @ 08DCD5BC + .incbin "baserom.gba", 0xDCD5BC, 0x0000073 + +gUnk_08DCD62F:: @ 08DCD62F + .incbin "baserom.gba", 0xDCD62F, 0x0000014 + +gUnk_08DCD643:: @ 08DCD643 + .incbin "baserom.gba", 0xDCD643, 0x00000C9 + +gUnk_08DCD70C:: @ 08DCD70C + .incbin "baserom.gba", 0xDCD70C, 0x000001D + +gUnk_08DCD729:: @ 08DCD729 + .incbin "baserom.gba", 0xDCD729, 0x000014A + +gUnk_08DCD873:: @ 08DCD873 + .incbin "baserom.gba", 0xDCD873, 0x0000016 + +gUnk_08DCD889:: @ 08DCD889 + .incbin "baserom.gba", 0xDCD889, 0x000003F + +gUnk_08DCD8C8:: @ 08DCD8C8 + .incbin "baserom.gba", 0xDCD8C8, 0x00000BF + +gUnk_08DCD987:: @ 08DCD987 + .incbin "baserom.gba", 0xDCD987, 0x0000007 + +gUnk_08DCD98E:: @ 08DCD98E + .incbin "baserom.gba", 0xDCD98E, 0x0000163 + +gUnk_08DCDAF1:: @ 08DCDAF1 + .incbin "baserom.gba", 0xDCDAF1, 0x0000011 + +gUnk_08DCDB02:: @ 08DCDB02 + .incbin "baserom.gba", 0xDCDB02, 0x00000B8 + +gUnk_08DCDBBA:: @ 08DCDBBA + .incbin "baserom.gba", 0xDCDBBA, 0x000000F + +gUnk_08DCDBC9:: @ 08DCDBC9 + .incbin "baserom.gba", 0xDCDBC9, 0x00000E1 + +gUnk_08DCDCAA:: @ 08DCDCAA + .incbin "baserom.gba", 0xDCDCAA, 0x0000024 + +gUnk_08DCDCCE:: @ 08DCDCCE + .incbin "baserom.gba", 0xDCDCCE, 0x0000094 + +gUnk_08DCDD62:: @ 08DCDD62 + .incbin "baserom.gba", 0xDCDD62, 0x000012C + +gUnk_08DCDE8E:: @ 08DCDE8E + .incbin "baserom.gba", 0xDCDE8E, 0x0000007 + +gUnk_08DCDE95:: @ 08DCDE95 + .incbin "baserom.gba", 0xDCDE95, 0x0000008 + +gUnk_08DCDE9D:: @ 08DCDE9D + .incbin "baserom.gba", 0xDCDE9D, 0x000008F + +gUnk_08DCDF2C:: @ 08DCDF2C + .incbin "baserom.gba", 0xDCDF2C, 0x0000024 + +gUnk_08DCDF50:: @ 08DCDF50 + .incbin "baserom.gba", 0xDCDF50, 0x0000152 + +gUnk_08DCE0A2:: @ 08DCE0A2 + .incbin "baserom.gba", 0xDCE0A2, 0x000003E + +gUnk_08DCE0E0:: @ 08DCE0E0 + .incbin "baserom.gba", 0xDCE0E0, 0x000003D + +gUnk_08DCE11D:: @ 08DCE11D + .incbin "baserom.gba", 0xDCE11D, 0x0000179 + +gUnk_08DCE296:: @ 08DCE296 + .incbin "baserom.gba", 0xDCE296, 0x000000B + +gUnk_08DCE2A1:: @ 08DCE2A1 + .incbin "baserom.gba", 0xDCE2A1, 0x0000165 + +gUnk_08DCE406:: @ 08DCE406 + .incbin "baserom.gba", 0xDCE406, 0x0000052 + +gUnk_08DCE458:: @ 08DCE458 + .incbin "baserom.gba", 0xDCE458, 0x000009E + +gUnk_08DCE4F6:: @ 08DCE4F6 + .incbin "baserom.gba", 0xDCE4F6, 0x0000162 + +gUnk_08DCE658:: @ 08DCE658 + .incbin "baserom.gba", 0xDCE658, 0x000018F + +gUnk_08DCE7E7:: @ 08DCE7E7 + .incbin "baserom.gba", 0xDCE7E7, 0x0000086 + +gUnk_08DCE86D:: @ 08DCE86D + .incbin "baserom.gba", 0xDCE86D, 0x000013C + +gUnk_08DCE9A9:: @ 08DCE9A9 + .incbin "baserom.gba", 0xDCE9A9, 0x000005D + +gUnk_08DCEA06:: @ 08DCEA06 + .incbin "baserom.gba", 0xDCEA06, 0x0000014 + +gUnk_08DCEA1A:: @ 08DCEA1A + .incbin "baserom.gba", 0xDCEA1A, 0x000003D + +gUnk_08DCEA57:: @ 08DCEA57 + .incbin "baserom.gba", 0xDCEA57, 0x00000DA + +gUnk_08DCEB31:: @ 08DCEB31 + .incbin "baserom.gba", 0xDCEB31, 0x00000CD + +gUnk_08DCEBFE:: @ 08DCEBFE + .incbin "baserom.gba", 0xDCEBFE, 0x0000068 + +gUnk_08DCEC66:: @ 08DCEC66 + .incbin "baserom.gba", 0xDCEC66, 0x000008A + +gUnk_08DCECF0:: @ 08DCECF0 + .incbin "baserom.gba", 0xDCECF0, 0x00001E6 + +gUnk_08DCEED6:: @ 08DCEED6 + .incbin "baserom.gba", 0xDCEED6, 0x00000F0 + +gUnk_08DCEFC6:: @ 08DCEFC6 + .incbin "baserom.gba", 0xDCEFC6, 0x0000023 + +gUnk_08DCEFE9:: @ 08DCEFE9 + .incbin "baserom.gba", 0xDCEFE9, 0x00000F5 + +gUnk_08DCF0DE:: @ 08DCF0DE + .incbin "baserom.gba", 0xDCF0DE, 0x00000AB + +gUnk_08DCF189:: @ 08DCF189 + .incbin "baserom.gba", 0xDCF189, 0x000015D + +gUnk_08DCF2E6:: @ 08DCF2E6 + .incbin "baserom.gba", 0xDCF2E6, 0x0000138 + +gUnk_08DCF41E:: @ 08DCF41E + .incbin "baserom.gba", 0xDCF41E, 0x00001AE + +gUnk_08DCF5CC:: @ 08DCF5CC + .incbin "baserom.gba", 0xDCF5CC, 0x0000060 + +gUnk_08DCF62C:: @ 08DCF62C + .incbin "baserom.gba", 0xDCF62C, 0x00000BD + +gUnk_08DCF6E9:: @ 08DCF6E9 + .incbin "baserom.gba", 0xDCF6E9, 0x000004B + +gUnk_08DCF734:: @ 08DCF734 + .incbin "baserom.gba", 0xDCF734, 0x0000028 + +gUnk_08DCF75C:: @ 08DCF75C + .incbin "baserom.gba", 0xDCF75C, 0x0000042 + +gUnk_08DCF79E:: @ 08DCF79E + .incbin "baserom.gba", 0xDCF79E, 0x0000035 + +gUnk_08DCF7D3:: @ 08DCF7D3 + .incbin "baserom.gba", 0xDCF7D3, 0x0000007 + +gUnk_08DCF7DA:: @ 08DCF7DA + .incbin "baserom.gba", 0xDCF7DA, 0x000000D + +gUnk_08DCF7E7:: @ 08DCF7E7 + .incbin "baserom.gba", 0xDCF7E7, 0x0000042 + +gUnk_08DCF829:: @ 08DCF829 + .incbin "baserom.gba", 0xDCF829, 0x000018C + +gUnk_08DCF9B5:: @ 08DCF9B5 + .incbin "baserom.gba", 0xDCF9B5, 0x000001B + +gUnk_08DCF9D0:: @ 08DCF9D0 + .incbin "baserom.gba", 0xDCF9D0, 0x0000070 + +gUnk_08DCFA40:: @ 08DCFA40 + .incbin "baserom.gba", 0xDCFA40, 0x0000018 + +gUnk_08DCFA58:: @ 08DCFA58 + .incbin "baserom.gba", 0xDCFA58, 0x000005F + +gUnk_08DCFAB7:: @ 08DCFAB7 + .incbin "baserom.gba", 0xDCFAB7, 0x0000006 + +gUnk_08DCFABD:: @ 08DCFABD + .incbin "baserom.gba", 0xDCFABD, 0x000000C + +gUnk_08DCFAC9:: @ 08DCFAC9 + .incbin "baserom.gba", 0xDCFAC9, 0x0000025 + +gUnk_08DCFAEE:: @ 08DCFAEE + .incbin "baserom.gba", 0xDCFAEE, 0x0000016 + +gUnk_08DCFB04:: @ 08DCFB04 + .incbin "baserom.gba", 0xDCFB04, 0x0000024 + +gUnk_08DCFB28:: @ 08DCFB28 + .incbin "baserom.gba", 0xDCFB28, 0x0000006 + +gUnk_08DCFB2E:: @ 08DCFB2E + .incbin "baserom.gba", 0xDCFB2E, 0x000004B + +gUnk_08DCFB79:: @ 08DCFB79 + .incbin "baserom.gba", 0xDCFB79, 0x000000A + +gUnk_08DCFB83:: @ 08DCFB83 + .incbin "baserom.gba", 0xDCFB83, 0x000001F + +gUnk_08DCFBA2:: @ 08DCFBA2 + .incbin "baserom.gba", 0xDCFBA2, 0x000002C + +gUnk_08DCFBCE:: @ 08DCFBCE + .incbin "baserom.gba", 0xDCFBCE, 0x0000026 + +gUnk_08DCFBF4:: @ 08DCFBF4 + .incbin "baserom.gba", 0xDCFBF4, 0x0000028 + +gUnk_08DCFC1C:: @ 08DCFC1C + .incbin "baserom.gba", 0xDCFC1C, 0x0000050 + +gUnk_08DCFC6C:: @ 08DCFC6C + .incbin "baserom.gba", 0xDCFC6C, 0x000002C + +gUnk_08DCFC98:: @ 08DCFC98 + .incbin "baserom.gba", 0xDCFC98, 0x000002E + +gUnk_08DCFCC6:: @ 08DCFCC6 + .incbin "baserom.gba", 0xDCFCC6, 0x0000049 + +gUnk_08DCFD0F:: @ 08DCFD0F + .incbin "baserom.gba", 0xDCFD0F, 0x000000E + +gUnk_08DCFD1D:: @ 08DCFD1D + .incbin "baserom.gba", 0xDCFD1D, 0x0000028 + +gUnk_08DCFD45:: @ 08DCFD45 + .incbin "baserom.gba", 0xDCFD45, 0x0000053 + +gUnk_08DCFD98:: @ 08DCFD98 + .incbin "baserom.gba", 0xDCFD98, 0x0000020 + +gUnk_08DCFDB8:: @ 08DCFDB8 + .incbin "baserom.gba", 0xDCFDB8, 0x0000040 + +gUnk_08DCFDF8:: @ 08DCFDF8 + .incbin "baserom.gba", 0xDCFDF8, 0x0000054 + +gUnk_08DCFE4C:: @ 08DCFE4C + .incbin "baserom.gba", 0xDCFE4C, 0x0000033 + +gUnk_08DCFE7F:: @ 08DCFE7F + .incbin "baserom.gba", 0xDCFE7F, 0x000008E + +gUnk_08DCFF0D:: @ 08DCFF0D + .incbin "baserom.gba", 0xDCFF0D, 0x0000023 + +gUnk_08DCFF30:: @ 08DCFF30 + .incbin "baserom.gba", 0xDCFF30, 0x0000023 + +gUnk_08DCFF53:: @ 08DCFF53 + .incbin "baserom.gba", 0xDCFF53, 0x0000087 + +gUnk_08DCFFDA:: @ 08DCFFDA + .incbin "baserom.gba", 0xDCFFDA, 0x0000023 + +gUnk_08DCFFFD:: @ 08DCFFFD + .incbin "baserom.gba", 0xDCFFFD, 0x000000A + +gUnk_08DD0007:: @ 08DD0007 + .incbin "baserom.gba", 0xDD0007, 0x0000038 + +gUnk_08DD003F:: @ 08DD003F + .incbin "baserom.gba", 0xDD003F, 0x000001F + +gUnk_08DD005E:: @ 08DD005E + .incbin "baserom.gba", 0xDD005E, 0x0000039 + +gUnk_08DD0097:: @ 08DD0097 + .incbin "baserom.gba", 0xDD0097, 0x000003E + +gUnk_08DD00D5:: @ 08DD00D5 + .incbin "baserom.gba", 0xDD00D5, 0x000002B + +gUnk_08DD0100:: @ 08DD0100 + .incbin "baserom.gba", 0xDD0100, 0x0000054 + +gUnk_08DD0154:: @ 08DD0154 + .incbin "baserom.gba", 0xDD0154, 0x0000033 + +gUnk_08DD0187:: @ 08DD0187 + .incbin "baserom.gba", 0xDD0187, 0x00000BD + +gUnk_08DD0244:: @ 08DD0244 + .incbin "baserom.gba", 0xDD0244, 0x0000024 + +gUnk_08DD0268:: @ 08DD0268 + .incbin "baserom.gba", 0xDD0268, 0x0000074 + +gUnk_08DD02DC:: @ 08DD02DC + .incbin "baserom.gba", 0xDD02DC, 0x0000023 + +gUnk_08DD02FF:: @ 08DD02FF + .incbin "baserom.gba", 0xDD02FF, 0x0000001 + +gUnk_08DD0300:: @ 08DD0300 + .incbin "baserom.gba", 0xDD0300, 0x0000024 + +gUnk_08DD0324:: @ 08DD0324 + .incbin "baserom.gba", 0xDD0324, 0x0000087 + +gUnk_08DD03AB:: @ 08DD03AB + .incbin "baserom.gba", 0xDD03AB, 0x00000C4 + +gUnk_08DD046F:: @ 08DD046F + .incbin "baserom.gba", 0xDD046F, 0x000000A + +gUnk_08DD0479:: @ 08DD0479 + .incbin "baserom.gba", 0xDD0479, 0x0000098 + +gUnk_08DD0511:: @ 08DD0511 + .incbin "baserom.gba", 0xDD0511, 0x0000007 + +gUnk_08DD0518:: @ 08DD0518 + .incbin "baserom.gba", 0xDD0518, 0x0000007 + +gUnk_08DD051F:: @ 08DD051F + .incbin "baserom.gba", 0xDD051F, 0x0000052 + +gUnk_08DD0571:: @ 08DD0571 + .incbin "baserom.gba", 0xDD0571, 0x0000094 + +gUnk_08DD0605:: @ 08DD0605 + .incbin "baserom.gba", 0xDD0605, 0x0000005 + +gUnk_08DD060A:: @ 08DD060A + .incbin "baserom.gba", 0xDD060A, 0x0000008 + +gUnk_08DD0612:: @ 08DD0612 + .incbin "baserom.gba", 0xDD0612, 0x0000037 + +gUnk_08DD0649:: @ 08DD0649 + .incbin "baserom.gba", 0xDD0649, 0x0000047 + +gUnk_08DD0690:: @ 08DD0690 + .incbin "baserom.gba", 0xDD0690, 0x0000024 + +gUnk_08DD06B4:: @ 08DD06B4 + .incbin "baserom.gba", 0xDD06B4, 0x000005C + +gUnk_08DD0710:: @ 08DD0710 + .incbin "baserom.gba", 0xDD0710, 0x00000CC + +gUnk_08DD07DC:: @ 08DD07DC + .incbin "baserom.gba", 0xDD07DC, 0x0000039 + +gUnk_08DD0815:: @ 08DD0815 + .incbin "baserom.gba", 0xDD0815, 0x0000052 + +gUnk_08DD0867:: @ 08DD0867 + .incbin "baserom.gba", 0xDD0867, 0x000005C + +gUnk_08DD08C3:: @ 08DD08C3 + .incbin "baserom.gba", 0xDD08C3, 0x000001B + +gUnk_08DD08DE:: @ 08DD08DE + .incbin "baserom.gba", 0xDD08DE, 0x0000022 + +gUnk_08DD0900:: @ 08DD0900 + .incbin "baserom.gba", 0xDD0900, 0x0000098 + +gUnk_08DD0998:: @ 08DD0998 + .incbin "baserom.gba", 0xDD0998, 0x0000057 + +gUnk_08DD09EF:: @ 08DD09EF + .incbin "baserom.gba", 0xDD09EF, 0x000003F + +gUnk_08DD0A2E:: @ 08DD0A2E + .incbin "baserom.gba", 0xDD0A2E, 0x000002F + +gUnk_08DD0A5D:: @ 08DD0A5D + .incbin "baserom.gba", 0xDD0A5D, 0x0000037 + +gUnk_08DD0A94:: @ 08DD0A94 + .incbin "baserom.gba", 0xDD0A94, 0x0000028 + +gUnk_08DD0ABC:: @ 08DD0ABC + .incbin "baserom.gba", 0xDD0ABC, 0x0000044 + +gUnk_08DD0B00:: @ 08DD0B00 + .incbin "baserom.gba", 0xDD0B00, 0x0000036 + +gUnk_08DD0B36:: @ 08DD0B36 + .incbin "baserom.gba", 0xDD0B36, 0x0000134 + +gUnk_08DD0C6A:: @ 08DD0C6A + .incbin "baserom.gba", 0xDD0C6A, 0x0000044 + +gUnk_08DD0CAE:: @ 08DD0CAE + .incbin "baserom.gba", 0xDD0CAE, 0x0000046 + +gUnk_08DD0CF4:: @ 08DD0CF4 + .incbin "baserom.gba", 0xDD0CF4, 0x0000010 + +gUnk_08DD0D04:: @ 08DD0D04 + .incbin "baserom.gba", 0xDD0D04, 0x0000028 + +gUnk_08DD0D2C:: @ 08DD0D2C + .incbin "baserom.gba", 0xDD0D2C, 0x000006B + +gUnk_08DD0D97:: @ 08DD0D97 + .incbin "baserom.gba", 0xDD0D97, 0x0000007 + +gUnk_08DD0D9E:: @ 08DD0D9E + .incbin "baserom.gba", 0xDD0D9E, 0x0000010 + +gUnk_08DD0DAE:: @ 08DD0DAE + .incbin "baserom.gba", 0xDD0DAE, 0x0000063 + +gUnk_08DD0E11:: @ 08DD0E11 + .incbin "baserom.gba", 0xDD0E11, 0x0000063 + +gUnk_08DD0E74:: @ 08DD0E74 + .incbin "baserom.gba", 0xDD0E74, 0x00000E0 + +gUnk_08DD0F54:: @ 08DD0F54 + .incbin "baserom.gba", 0xDD0F54, 0x00000A3 + +gUnk_08DD0FF7:: @ 08DD0FF7 + .incbin "baserom.gba", 0xDD0FF7, 0x00000BD + +gUnk_08DD10B4:: @ 08DD10B4 + .incbin "baserom.gba", 0xDD10B4, 0x000001F + +gUnk_08DD10D3:: @ 08DD10D3 + .incbin "baserom.gba", 0xDD10D3, 0x00000D5 + +gUnk_08DD11A8:: @ 08DD11A8 + .incbin "baserom.gba", 0xDD11A8, 0x0000020 + +gUnk_08DD11C8:: @ 08DD11C8 + .incbin "baserom.gba", 0xDD11C8, 0x0000075 + +gUnk_08DD123D:: @ 08DD123D + .incbin "baserom.gba", 0xDD123D, 0x000009E + +gUnk_08DD12DB:: @ 08DD12DB + .incbin "baserom.gba", 0xDD12DB, 0x0000047 + +gUnk_08DD1322:: @ 08DD1322 + .incbin "baserom.gba", 0xDD1322, 0x000007A + +gUnk_08DD139C:: @ 08DD139C + .incbin "baserom.gba", 0xDD139C, 0x0000020 + +gUnk_08DD13BC:: @ 08DD13BC + .incbin "baserom.gba", 0xDD13BC, 0x0000068 + +gUnk_08DD1424:: @ 08DD1424 + .incbin "baserom.gba", 0xDD1424, 0x0000018 + +gUnk_08DD143C:: @ 08DD143C + .incbin "baserom.gba", 0xDD143C, 0x0000028 + +gUnk_08DD1464:: @ 08DD1464 + .incbin "baserom.gba", 0xDD1464, 0x0000042 + +gUnk_08DD14A6:: @ 08DD14A6 + .incbin "baserom.gba", 0xDD14A6, 0x0000007 + +gUnk_08DD14AD:: @ 08DD14AD + .incbin "baserom.gba", 0xDD14AD, 0x0000078 + +gUnk_08DD1525:: @ 08DD1525 + .incbin "baserom.gba", 0xDD1525, 0x0000007 + +gUnk_08DD152C:: @ 08DD152C + .incbin "baserom.gba", 0xDD152C, 0x000001C + +gUnk_08DD1548:: @ 08DD1548 + .incbin "baserom.gba", 0xDD1548, 0x0000024 + +gUnk_08DD156C:: @ 08DD156C + .incbin "baserom.gba", 0xDD156C, 0x0000027 + +gUnk_08DD1593:: @ 08DD1593 + .incbin "baserom.gba", 0xDD1593, 0x00000CF + +gUnk_08DD1662:: @ 08DD1662 + .incbin "baserom.gba", 0xDD1662, 0x0000008 + +gUnk_08DD166A:: @ 08DD166A + .incbin "baserom.gba", 0xDD166A, 0x000007B + +gUnk_08DD16E5:: @ 08DD16E5 + .incbin "baserom.gba", 0xDD16E5, 0x0000083 + +gUnk_08DD1768:: @ 08DD1768 + .incbin "baserom.gba", 0xDD1768, 0x0000050 + +gUnk_08DD17B8:: @ 08DD17B8 + .incbin "baserom.gba", 0xDD17B8, 0x000008C + +gUnk_08DD1844:: @ 08DD1844 + .incbin "baserom.gba", 0xDD1844, 0x0000025 + +gUnk_08DD1869:: @ 08DD1869 + .incbin "baserom.gba", 0xDD1869, 0x0000127 + +gUnk_08DD1990:: @ 08DD1990 + .incbin "baserom.gba", 0xDD1990, 0x0000028 + +gUnk_08DD19B8:: @ 08DD19B8 + .incbin "baserom.gba", 0xDD19B8, 0x000004B + +gUnk_08DD1A03:: @ 08DD1A03 + .incbin "baserom.gba", 0xDD1A03, 0x0000059 + +gUnk_08DD1A5C:: @ 08DD1A5C + .incbin "baserom.gba", 0xDD1A5C, 0x0000048 + +gUnk_08DD1AA4:: @ 08DD1AA4 + .incbin "baserom.gba", 0xDD1AA4, 0x0000007 + +gUnk_08DD1AAB:: @ 08DD1AAB + .incbin "baserom.gba", 0xDD1AAB, 0x0000031 + +gUnk_08DD1ADC:: @ 08DD1ADC + .incbin "baserom.gba", 0xDD1ADC, 0x0000049 + +gUnk_08DD1B25:: @ 08DD1B25 + .incbin "baserom.gba", 0xDD1B25, 0x00000AB + +gUnk_08DD1BD0:: @ 08DD1BD0 + .incbin "baserom.gba", 0xDD1BD0, 0x0000007 + +gUnk_08DD1BD7:: @ 08DD1BD7 + .incbin "baserom.gba", 0xDD1BD7, 0x000001A + +gUnk_08DD1BF1:: @ 08DD1BF1 + .incbin "baserom.gba", 0xDD1BF1, 0x0000012 + +gUnk_08DD1C03:: @ 08DD1C03 + .incbin "baserom.gba", 0xDD1C03, 0x0000029 + +gUnk_08DD1C2C:: @ 08DD1C2C + .incbin "baserom.gba", 0xDD1C2C, 0x0000020 + +gUnk_08DD1C4C:: @ 08DD1C4C + .incbin "baserom.gba", 0xDD1C4C, 0x0000067 + +gUnk_08DD1CB3:: @ 08DD1CB3 + .incbin "baserom.gba", 0xDD1CB3, 0x0000073 + +gUnk_08DD1D26:: @ 08DD1D26 + .incbin "baserom.gba", 0xDD1D26, 0x0000016 + +gUnk_08DD1D3C:: @ 08DD1D3C + .incbin "baserom.gba", 0xDD1D3C, 0x0000023 + +gUnk_08DD1D5F:: @ 08DD1D5F + .incbin "baserom.gba", 0xDD1D5F, 0x0000044 + +gUnk_08DD1DA3:: @ 08DD1DA3 + .incbin "baserom.gba", 0xDD1DA3, 0x0000007 + +gUnk_08DD1DAA:: @ 08DD1DAA + .incbin "baserom.gba", 0xDD1DAA, 0x000005B + +gUnk_08DD1E05:: @ 08DD1E05 + .incbin "baserom.gba", 0xDD1E05, 0x000002D + +gUnk_08DD1E32:: @ 08DD1E32 + .incbin "baserom.gba", 0xDD1E32, 0x000000A + +gUnk_08DD1E3C:: @ 08DD1E3C + .incbin "baserom.gba", 0xDD1E3C, 0x0000068 + +gUnk_08DD1EA4:: @ 08DD1EA4 + .incbin "baserom.gba", 0xDD1EA4, 0x0000020 + +gUnk_08DD1EC4:: @ 08DD1EC4 + .incbin "baserom.gba", 0xDD1EC4, 0x000000B + +gUnk_08DD1ECF:: @ 08DD1ECF + .incbin "baserom.gba", 0xDD1ECF, 0x0000066 + +gUnk_08DD1F35:: @ 08DD1F35 + .incbin "baserom.gba", 0xDD1F35, 0x0000032 + +gUnk_08DD1F67:: @ 08DD1F67 + .incbin "baserom.gba", 0xDD1F67, 0x0000099 + +gUnk_08DD2000:: @ 08DD2000 + .incbin "baserom.gba", 0xDD2000, 0x0000006 + +gUnk_08DD2006:: @ 08DD2006 + .incbin "baserom.gba", 0xDD2006, 0x0000007 + +gUnk_08DD200D:: @ 08DD200D + .incbin "baserom.gba", 0xDD200D, 0x0000098 + +gUnk_08DD20A5:: @ 08DD20A5 + .incbin "baserom.gba", 0xDD20A5, 0x000008B + +gUnk_08DD2130:: @ 08DD2130 + .incbin "baserom.gba", 0xDD2130, 0x000001C + +gUnk_08DD214C:: @ 08DD214C + .incbin "baserom.gba", 0xDD214C, 0x00000D3 + +gUnk_08DD221F:: @ 08DD221F + .incbin "baserom.gba", 0xDD221F, 0x000003F + +gUnk_08DD225E:: @ 08DD225E + .incbin "baserom.gba", 0xDD225E, 0x000000B + +gUnk_08DD2269:: @ 08DD2269 + .incbin "baserom.gba", 0xDD2269, 0x00000D7 + +gUnk_08DD2340:: @ 08DD2340 + .incbin "baserom.gba", 0xDD2340, 0x0000014 + +gUnk_08DD2354:: @ 08DD2354 + .incbin "baserom.gba", 0xDD2354, 0x0000025 + +gUnk_08DD2379:: @ 08DD2379 + .incbin "baserom.gba", 0xDD2379, 0x0000049 + +gUnk_08DD23C2:: @ 08DD23C2 + .incbin "baserom.gba", 0xDD23C2, 0x0000178 + +gUnk_08DD253A:: @ 08DD253A + .incbin "baserom.gba", 0xDD253A, 0x0000152 + +gUnk_08DD268C:: @ 08DD268C + .incbin "baserom.gba", 0xDD268C, 0x0000020 + +gUnk_08DD26AC:: @ 08DD26AC + .incbin "baserom.gba", 0xDD26AC, 0x000012B + +gUnk_08DD27D7:: @ 08DD27D7 + .incbin "baserom.gba", 0xDD27D7, 0x000013F + +gUnk_08DD2916:: @ 08DD2916 + .incbin "baserom.gba", 0xDD2916, 0x00000B8 + +gUnk_08DD29CE:: @ 08DD29CE + .incbin "baserom.gba", 0xDD29CE, 0x0000020 + +gUnk_08DD29EE:: @ 08DD29EE + .incbin "baserom.gba", 0xDD29EE, 0x0000010 + +gUnk_08DD29FE:: @ 08DD29FE + .incbin "baserom.gba", 0xDD29FE, 0x0000024 + +gUnk_08DD2A22:: @ 08DD2A22 + .incbin "baserom.gba", 0xDD2A22, 0x0000052 + +gUnk_08DD2A74:: @ 08DD2A74 + .incbin "baserom.gba", 0xDD2A74, 0x00000A7 + +gUnk_08DD2B1B:: @ 08DD2B1B + .incbin "baserom.gba", 0xDD2B1B, 0x00000DF + +gUnk_08DD2BFA:: @ 08DD2BFA + .incbin "baserom.gba", 0xDD2BFA, 0x0000011 + +gUnk_08DD2C0B:: @ 08DD2C0B + .incbin "baserom.gba", 0xDD2C0B, 0x000002A + +gUnk_08DD2C35:: @ 08DD2C35 + .incbin "baserom.gba", 0xDD2C35, 0x0000024 + +gUnk_08DD2C59:: @ 08DD2C59 + .incbin "baserom.gba", 0xDD2C59, 0x00000AA + +gUnk_08DD2D03:: @ 08DD2D03 + .incbin "baserom.gba", 0xDD2D03, 0x000004D + +gUnk_08DD2D50:: @ 08DD2D50 + .incbin "baserom.gba", 0xDD2D50, 0x000002C + +gUnk_08DD2D7C:: @ 08DD2D7C + .incbin "baserom.gba", 0xDD2D7C, 0x0000100 + +gUnk_08DD2E7C:: @ 08DD2E7C + .incbin "baserom.gba", 0xDD2E7C, 0x000003F + +gUnk_08DD2EBB:: @ 08DD2EBB + .incbin "baserom.gba", 0xDD2EBB, 0x0000043 + +gUnk_08DD2EFE:: @ 08DD2EFE + .incbin "baserom.gba", 0xDD2EFE, 0x000003D + +gUnk_08DD2F3B:: @ 08DD2F3B + .incbin "baserom.gba", 0xDD2F3B, 0x0000037 + +gUnk_08DD2F72:: @ 08DD2F72 + .incbin "baserom.gba", 0xDD2F72, 0x0000092 + +gUnk_08DD3004:: @ 08DD3004 + .incbin "baserom.gba", 0xDD3004, 0x0000031 + +gUnk_08DD3035:: @ 08DD3035 + .incbin "baserom.gba", 0xDD3035, 0x0000094 + +gUnk_08DD30C9:: @ 08DD30C9 + .incbin "baserom.gba", 0xDD30C9, 0x0000016 + +gUnk_08DD30DF:: @ 08DD30DF + .incbin "baserom.gba", 0xDD30DF, 0x0000011 + +gUnk_08DD30F0:: @ 08DD30F0 + .incbin "baserom.gba", 0xDD30F0, 0x0000024 + +gUnk_08DD3114:: @ 08DD3114 + .incbin "baserom.gba", 0xDD3114, 0x00000CF + +gUnk_08DD31E3:: @ 08DD31E3 + .incbin "baserom.gba", 0xDD31E3, 0x0000015 + +gUnk_08DD31F8:: @ 08DD31F8 + .incbin "baserom.gba", 0xDD31F8, 0x0000009 + +gUnk_08DD3201:: @ 08DD3201 + .incbin "baserom.gba", 0xDD3201, 0x0000019 + +gUnk_08DD321A:: @ 08DD321A + .incbin "baserom.gba", 0xDD321A, 0x000002F + +gUnk_08DD3249:: @ 08DD3249 + .incbin "baserom.gba", 0xDD3249, 0x0000061 + +gUnk_08DD32AA:: @ 08DD32AA + .incbin "baserom.gba", 0xDD32AA, 0x0000035 + +gUnk_08DD32DF:: @ 08DD32DF + .incbin "baserom.gba", 0xDD32DF, 0x0000067 + +gUnk_08DD3346:: @ 08DD3346 + .incbin "baserom.gba", 0xDD3346, 0x0000016 + +gUnk_08DD335C:: @ 08DD335C + .incbin "baserom.gba", 0xDD335C, 0x0000020 + +gUnk_08DD337C:: @ 08DD337C + .incbin "baserom.gba", 0xDD337C, 0x000003A + +gUnk_08DD33B6:: @ 08DD33B6 + .incbin "baserom.gba", 0xDD33B6, 0x00000D9 + +gUnk_08DD348F:: @ 08DD348F + .incbin "baserom.gba", 0xDD348F, 0x0000064 + +gUnk_08DD34F3:: @ 08DD34F3 + .incbin "baserom.gba", 0xDD34F3, 0x000002A + +gUnk_08DD351D:: @ 08DD351D + .incbin "baserom.gba", 0xDD351D, 0x000001A + +gUnk_08DD3537:: @ 08DD3537 + .incbin "baserom.gba", 0xDD3537, 0x000007C + +gUnk_08DD35B3:: @ 08DD35B3 + .incbin "baserom.gba", 0xDD35B3, 0x0000051 + +gUnk_08DD3604:: @ 08DD3604 + .incbin "baserom.gba", 0xDD3604, 0x0000027 + +gUnk_08DD362B:: @ 08DD362B + .incbin "baserom.gba", 0xDD362B, 0x000014A + +gUnk_08DD3775:: @ 08DD3775 + .incbin "baserom.gba", 0xDD3775, 0x000002F + +gUnk_08DD37A4:: @ 08DD37A4 + .incbin "baserom.gba", 0xDD37A4, 0x000007B + +gUnk_08DD381F:: @ 08DD381F + .incbin "baserom.gba", 0xDD381F, 0x000003A + +gUnk_08DD3859:: @ 08DD3859 + .incbin "baserom.gba", 0xDD3859, 0x000003B + +gUnk_08DD3894:: @ 08DD3894 + .incbin "baserom.gba", 0xDD3894, 0x0000028 + +gUnk_08DD38BC:: @ 08DD38BC + .incbin "baserom.gba", 0xDD38BC, 0x00000DF + +gUnk_08DD399B:: @ 08DD399B + .incbin "baserom.gba", 0xDD399B, 0x0000034 + +gUnk_08DD39CF:: @ 08DD39CF + .incbin "baserom.gba", 0xDD39CF, 0x000004C + +gUnk_08DD3A1B:: @ 08DD3A1B + .incbin "baserom.gba", 0xDD3A1B, 0x00000AD + +gUnk_08DD3AC8:: @ 08DD3AC8 + .incbin "baserom.gba", 0xDD3AC8, 0x000001C + +gUnk_08DD3AE4:: @ 08DD3AE4 + .incbin "baserom.gba", 0xDD3AE4, 0x0000009 + +gUnk_08DD3AED:: @ 08DD3AED + .incbin "baserom.gba", 0xDD3AED, 0x00000DF + +gUnk_08DD3BCC:: @ 08DD3BCC + .incbin "baserom.gba", 0xDD3BCC, 0x0000024 + +gUnk_08DD3BF0:: @ 08DD3BF0 + .incbin "baserom.gba", 0xDD3BF0, 0x000002B + +gUnk_08DD3C1B:: @ 08DD3C1B + .incbin "baserom.gba", 0xDD3C1B, 0x00000A0 + +gUnk_08DD3CBB:: @ 08DD3CBB + .incbin "baserom.gba", 0xDD3CBB, 0x000003F + +gUnk_08DD3CFA:: @ 08DD3CFA + .incbin "baserom.gba", 0xDD3CFA, 0x0000043 + +gUnk_08DD3D3D:: @ 08DD3D3D + .incbin "baserom.gba", 0xDD3D3D, 0x0000087 + +gUnk_08DD3DC4:: @ 08DD3DC4 + .incbin "baserom.gba", 0xDD3DC4, 0x0000032 + +gUnk_08DD3DF6:: @ 08DD3DF6 + .incbin "baserom.gba", 0xDD3DF6, 0x0000015 + +gUnk_08DD3E0B:: @ 08DD3E0B + .incbin "baserom.gba", 0xDD3E0B, 0x0000039 + +gUnk_08DD3E44:: @ 08DD3E44 + .incbin "baserom.gba", 0xDD3E44, 0x0000055 + +gUnk_08DD3E99:: @ 08DD3E99 + .incbin "baserom.gba", 0xDD3E99, 0x0000022 + +gUnk_08DD3EBB:: @ 08DD3EBB + .incbin "baserom.gba", 0xDD3EBB, 0x0000025 + +gUnk_08DD3EE0:: @ 08DD3EE0 + .incbin "baserom.gba", 0xDD3EE0, 0x0000091 + +gUnk_08DD3F71:: @ 08DD3F71 + .incbin "baserom.gba", 0xDD3F71, 0x0000049 + +gUnk_08DD3FBA:: @ 08DD3FBA + .incbin "baserom.gba", 0xDD3FBA, 0x0000052 + +gUnk_08DD400C:: @ 08DD400C + .incbin "baserom.gba", 0xDD400C, 0x0000008 + +gUnk_08DD4014:: @ 08DD4014 + .incbin "baserom.gba", 0xDD4014, 0x00000D4 + +gUnk_08DD40E8:: @ 08DD40E8 + .incbin "baserom.gba", 0xDD40E8, 0x0000024 + +gUnk_08DD410C:: @ 08DD410C + .incbin "baserom.gba", 0xDD410C, 0x0000015 + +gUnk_08DD4121:: @ 08DD4121 + .incbin "baserom.gba", 0xDD4121, 0x0000096 + +gUnk_08DD41B7:: @ 08DD41B7 + .incbin "baserom.gba", 0xDD41B7, 0x000005F + +gUnk_08DD4216:: @ 08DD4216 + .incbin "baserom.gba", 0xDD4216, 0x000001E + +gUnk_08DD4234:: @ 08DD4234 + .incbin "baserom.gba", 0xDD4234, 0x00000A6 + +gUnk_08DD42DA:: @ 08DD42DA + .incbin "baserom.gba", 0xDD42DA, 0x000002A + +gUnk_08DD4304:: @ 08DD4304 + .incbin "baserom.gba", 0xDD4304, 0x0000054 + +gUnk_08DD4358:: @ 08DD4358 + .incbin "baserom.gba", 0xDD4358, 0x000004F + +gUnk_08DD43A7:: @ 08DD43A7 + .incbin "baserom.gba", 0xDD43A7, 0x000007D + +gUnk_08DD4424:: @ 08DD4424 + .incbin "baserom.gba", 0xDD4424, 0x00000CB + +gUnk_08DD44EF:: @ 08DD44EF + .incbin "baserom.gba", 0xDD44EF, 0x00000C2 + +gUnk_08DD45B1:: @ 08DD45B1 + .incbin "baserom.gba", 0xDD45B1, 0x0000131 + +gUnk_08DD46E2:: @ 08DD46E2 + .incbin "baserom.gba", 0xDD46E2, 0x0000138 + +gUnk_08DD481A:: @ 08DD481A + .incbin "baserom.gba", 0xDD481A, 0x000003E + +gUnk_08DD4858:: @ 08DD4858 + .incbin "baserom.gba", 0xDD4858, 0x0000024 + +gUnk_08DD487C:: @ 08DD487C + .incbin "baserom.gba", 0xDD487C, 0x0000013 + +gUnk_08DD488F:: @ 08DD488F + .incbin "baserom.gba", 0xDD488F, 0x0000069 + +gUnk_08DD48F8:: @ 08DD48F8 + .incbin "baserom.gba", 0xDD48F8, 0x0000017 + +gUnk_08DD490F:: @ 08DD490F + .incbin "baserom.gba", 0xDD490F, 0x0000034 + +gUnk_08DD4943:: @ 08DD4943 + .incbin "baserom.gba", 0xDD4943, 0x0000088 + +gUnk_08DD49CB:: @ 08DD49CB + .incbin "baserom.gba", 0xDD49CB, 0x000001C + +gUnk_08DD49E7:: @ 08DD49E7 + .incbin "baserom.gba", 0xDD49E7, 0x0000098 + +gUnk_08DD4A7F:: @ 08DD4A7F + .incbin "baserom.gba", 0xDD4A7F, 0x000003A + +gUnk_08DD4AB9:: @ 08DD4AB9 + .incbin "baserom.gba", 0xDD4AB9, 0x000008B + +gUnk_08DD4B44:: @ 08DD4B44 + .incbin "baserom.gba", 0xDD4B44, 0x000001C + +gUnk_08DD4B60:: @ 08DD4B60 + .incbin "baserom.gba", 0xDD4B60, 0x0000077 + +gUnk_08DD4BD7:: @ 08DD4BD7 + .incbin "baserom.gba", 0xDD4BD7, 0x000006C + +gUnk_08DD4C43:: @ 08DD4C43 + .incbin "baserom.gba", 0xDD4C43, 0x0000074 + +gUnk_08DD4CB7:: @ 08DD4CB7 + .incbin "baserom.gba", 0xDD4CB7, 0x000007A + +gUnk_08DD4D31:: @ 08DD4D31 + .incbin "baserom.gba", 0xDD4D31, 0x0000060 + +gUnk_08DD4D91:: @ 08DD4D91 + .incbin "baserom.gba", 0xDD4D91, 0x000001F + +gUnk_08DD4DB0:: @ 08DD4DB0 + .incbin "baserom.gba", 0xDD4DB0, 0x0000061 + +gUnk_08DD4E11:: @ 08DD4E11 + .incbin "baserom.gba", 0xDD4E11, 0x000006D + +gUnk_08DD4E7E:: @ 08DD4E7E + .incbin "baserom.gba", 0xDD4E7E, 0x0000020 + +gUnk_08DD4E9E:: @ 08DD4E9E + .incbin "baserom.gba", 0xDD4E9E, 0x000006C + +gUnk_08DD4F0A:: @ 08DD4F0A + .incbin "baserom.gba", 0xDD4F0A, 0x0000056 + +gUnk_08DD4F60:: @ 08DD4F60 + .incbin "baserom.gba", 0xDD4F60, 0x0000180 + +gUnk_08DD50E0:: @ 08DD50E0 + .incbin "baserom.gba", 0xDD50E0, 0x0000024 + +gUnk_08DD5104:: @ 08DD5104 + .incbin "baserom.gba", 0xDD5104, 0x00000E7 + +gUnk_08DD51EB:: @ 08DD51EB + .incbin "baserom.gba", 0xDD51EB, 0x0000023 + +gUnk_08DD520E:: @ 08DD520E + .incbin "baserom.gba", 0xDD520E, 0x00000EE + +gUnk_08DD52FC:: @ 08DD52FC + .incbin "baserom.gba", 0xDD52FC, 0x0000024 + +gUnk_08DD5320:: @ 08DD5320 + .incbin "baserom.gba", 0xDD5320, 0x00000AF + +gUnk_08DD53CF:: @ 08DD53CF + .incbin "baserom.gba", 0xDD53CF, 0x000007C + +gUnk_08DD544B:: @ 08DD544B + .incbin "baserom.gba", 0xDD544B, 0x000006F + +gUnk_08DD54BA:: @ 08DD54BA + .incbin "baserom.gba", 0xDD54BA, 0x00000A2 + +gUnk_08DD555C:: @ 08DD555C + .incbin "baserom.gba", 0xDD555C, 0x00000CC + +gUnk_08DD5628:: @ 08DD5628 + .incbin "baserom.gba", 0xDD5628, 0x0000036 + +gUnk_08DD565E:: @ 08DD565E + .incbin "baserom.gba", 0xDD565E, 0x0000007 + +gUnk_08DD5665:: @ 08DD5665 + .incbin "baserom.gba", 0xDD5665, 0x0000002 + +gUnk_08DD5667:: @ 08DD5667 + .incbin "baserom.gba", 0xDD5667, 0x000009E + +gUnk_08DD5705:: @ 08DD5705 + .incbin "baserom.gba", 0xDD5705, 0x0000014 + +gUnk_08DD5719:: @ 08DD5719 + .incbin "baserom.gba", 0xDD5719, 0x000007C + +gUnk_08DD5795:: @ 08DD5795 + .incbin "baserom.gba", 0xDD5795, 0x000005E + +gUnk_08DD57F3:: @ 08DD57F3 + .incbin "baserom.gba", 0xDD57F3, 0x000004B + +gUnk_08DD583E:: @ 08DD583E + .incbin "baserom.gba", 0xDD583E, 0x0000056 + +gUnk_08DD5894:: @ 08DD5894 + .incbin "baserom.gba", 0xDD5894, 0x0000024 + +gUnk_08DD58B8:: @ 08DD58B8 + .incbin "baserom.gba", 0xDD58B8, 0x0000152 + +gUnk_08DD5A0A:: @ 08DD5A0A + .incbin "baserom.gba", 0xDD5A0A, 0x0000023 + +gUnk_08DD5A2D:: @ 08DD5A2D + .incbin "baserom.gba", 0xDD5A2D, 0x000004A + +gUnk_08DD5A77:: @ 08DD5A77 + .incbin "baserom.gba", 0xDD5A77, 0x0000062 + +gUnk_08DD5AD9:: @ 08DD5AD9 + .incbin "baserom.gba", 0xDD5AD9, 0x0000069 + +gUnk_08DD5B42:: @ 08DD5B42 + .incbin "baserom.gba", 0xDD5B42, 0x00000BE + +gUnk_08DD5C00:: @ 08DD5C00 + .incbin "baserom.gba", 0xDD5C00, 0x0000112 + +gUnk_08DD5D12:: @ 08DD5D12 + .incbin "baserom.gba", 0xDD5D12, 0x000002E + +gUnk_08DD5D40:: @ 08DD5D40 + .incbin "baserom.gba", 0xDD5D40, 0x0000024 + +gUnk_08DD5D64:: @ 08DD5D64 + .incbin "baserom.gba", 0xDD5D64, 0x000018C + +gUnk_08DD5EF0:: @ 08DD5EF0 + .incbin "baserom.gba", 0xDD5EF0, 0x00001F1 + +gUnk_08DD60E1:: @ 08DD60E1 + .incbin "baserom.gba", 0xDD60E1, 0x00000E2 + +gUnk_08DD61C3:: @ 08DD61C3 + .incbin "baserom.gba", 0xDD61C3, 0x00000C3 + +gUnk_08DD6286:: @ 08DD6286 + .incbin "baserom.gba", 0xDD6286, 0x0000124 + +gUnk_08DD63AA:: @ 08DD63AA + .incbin "baserom.gba", 0xDD63AA, 0x0000030 + +gUnk_08DD63DA:: @ 08DD63DA + .incbin "baserom.gba", 0xDD63DA, 0x0000025 + +gUnk_08DD63FF:: @ 08DD63FF + .incbin "baserom.gba", 0xDD63FF, 0x000002F + +gUnk_08DD642E:: @ 08DD642E + .incbin "baserom.gba", 0xDD642E, 0x000002B + +gUnk_08DD6459:: @ 08DD6459 + .incbin "baserom.gba", 0xDD6459, 0x00000A3 + +gUnk_08DD64FC:: @ 08DD64FC + .incbin "baserom.gba", 0xDD64FC, 0x0000028 + +gUnk_08DD6524:: @ 08DD6524 + .incbin "baserom.gba", 0xDD6524, 0x0000061 + +gUnk_08DD6585:: @ 08DD6585 + .incbin "baserom.gba", 0xDD6585, 0x0000121 + +gUnk_08DD66A6:: @ 08DD66A6 + .incbin "baserom.gba", 0xDD66A6, 0x0000035 + +gUnk_08DD66DB:: @ 08DD66DB + .incbin "baserom.gba", 0xDD66DB, 0x0000013 + +gUnk_08DD66EE:: @ 08DD66EE + .incbin "baserom.gba", 0xDD66EE, 0x0000087 + +gUnk_08DD6775:: @ 08DD6775 + .incbin "baserom.gba", 0xDD6775, 0x0000040 + +gUnk_08DD67B5:: @ 08DD67B5 + .incbin "baserom.gba", 0xDD67B5, 0x00000E9 + +gUnk_08DD689E:: @ 08DD689E + .incbin "baserom.gba", 0xDD689E, 0x0000038 + +gUnk_08DD68D6:: @ 08DD68D6 + .incbin "baserom.gba", 0xDD68D6, 0x0000065 + +gUnk_08DD693B:: @ 08DD693B + .incbin "baserom.gba", 0xDD693B, 0x00000CE + +gUnk_08DD6A09:: @ 08DD6A09 + .incbin "baserom.gba", 0xDD6A09, 0x0000067 + +gUnk_08DD6A70:: @ 08DD6A70 + .incbin "baserom.gba", 0xDD6A70, 0x000004D + +gUnk_08DD6ABD:: @ 08DD6ABD + .incbin "baserom.gba", 0xDD6ABD, 0x0000028 + +gUnk_08DD6AE5:: @ 08DD6AE5 + .incbin "baserom.gba", 0xDD6AE5, 0x0000091 + +gUnk_08DD6B76:: @ 08DD6B76 + .incbin "baserom.gba", 0xDD6B76, 0x0000015 + +gUnk_08DD6B8B:: @ 08DD6B8B + .incbin "baserom.gba", 0xDD6B8B, 0x000000C + +gUnk_08DD6B97:: @ 08DD6B97 + .incbin "baserom.gba", 0xDD6B97, 0x000002D + +gUnk_08DD6BC4:: @ 08DD6BC4 + .incbin "baserom.gba", 0xDD6BC4, 0x0000038 + +gUnk_08DD6BFC:: @ 08DD6BFC + .incbin "baserom.gba", 0xDD6BFC, 0x0000024 + +gUnk_08DD6C20:: @ 08DD6C20 + .incbin "baserom.gba", 0xDD6C20, 0x0000065 + +gUnk_08DD6C85:: @ 08DD6C85 + .incbin "baserom.gba", 0xDD6C85, 0x0000031 + +gUnk_08DD6CB6:: @ 08DD6CB6 + .incbin "baserom.gba", 0xDD6CB6, 0x000003C + +gUnk_08DD6CF2:: @ 08DD6CF2 + .incbin "baserom.gba", 0xDD6CF2, 0x0000049 + +gUnk_08DD6D3B:: @ 08DD6D3B + .incbin "baserom.gba", 0xDD6D3B, 0x0000004 + +gUnk_08DD6D3F:: @ 08DD6D3F + .incbin "baserom.gba", 0xDD6D3F, 0x0000066 + +gUnk_08DD6DA5:: @ 08DD6DA5 + .incbin "baserom.gba", 0xDD6DA5, 0x0000047 + +gUnk_08DD6DEC:: @ 08DD6DEC + .incbin "baserom.gba", 0xDD6DEC, 0x0000008 + +gUnk_08DD6DF4:: @ 08DD6DF4 + .incbin "baserom.gba", 0xDD6DF4, 0x0000017 + +gUnk_08DD6E0B:: @ 08DD6E0B + .incbin "baserom.gba", 0xDD6E0B, 0x0000022 + +gUnk_08DD6E2D:: @ 08DD6E2D + .incbin "baserom.gba", 0xDD6E2D, 0x0000020 + +gUnk_08DD6E4D:: @ 08DD6E4D + .incbin "baserom.gba", 0xDD6E4D, 0x0000009 + +gUnk_08DD6E56:: @ 08DD6E56 + .incbin "baserom.gba", 0xDD6E56, 0x000003C + +gUnk_08DD6E92:: @ 08DD6E92 + .incbin "baserom.gba", 0xDD6E92, 0x0000034 + +gUnk_08DD6EC6:: @ 08DD6EC6 + .incbin "baserom.gba", 0xDD6EC6, 0x00000C4 + +gUnk_08DD6F8A:: @ 08DD6F8A + .incbin "baserom.gba", 0xDD6F8A, 0x000003A + +gUnk_08DD6FC4:: @ 08DD6FC4 + .incbin "baserom.gba", 0xDD6FC4, 0x0000028 + +gUnk_08DD6FEC:: @ 08DD6FEC + .incbin "baserom.gba", 0xDD6FEC, 0x0000030 + +gUnk_08DD701C:: @ 08DD701C + .incbin "baserom.gba", 0xDD701C, 0x0000026 + +gUnk_08DD7042:: @ 08DD7042 + .incbin "baserom.gba", 0xDD7042, 0x00000F3 + +gUnk_08DD7135:: @ 08DD7135 + .incbin "baserom.gba", 0xDD7135, 0x0000017 + +gUnk_08DD714C:: @ 08DD714C + .incbin "baserom.gba", 0xDD714C, 0x0000028 + +gUnk_08DD7174:: @ 08DD7174 + .incbin "baserom.gba", 0xDD7174, 0x0000014 + +gUnk_08DD7188:: @ 08DD7188 + .incbin "baserom.gba", 0xDD7188, 0x0000026 + +gUnk_08DD71AE:: @ 08DD71AE + .incbin "baserom.gba", 0xDD71AE, 0x000005C + +gUnk_08DD720A:: @ 08DD720A + .incbin "baserom.gba", 0xDD720A, 0x00000BA + +gUnk_08DD72C4:: @ 08DD72C4 + .incbin "baserom.gba", 0xDD72C4, 0x0000020 + +gUnk_08DD72E4:: @ 08DD72E4 + .incbin "baserom.gba", 0xDD72E4, 0x00000AD + +gUnk_08DD7391:: @ 08DD7391 + .incbin "baserom.gba", 0xDD7391, 0x000003D + +gUnk_08DD73CE:: @ 08DD73CE + .incbin "baserom.gba", 0xDD73CE, 0x000004C + +gUnk_08DD741A:: @ 08DD741A + .incbin "baserom.gba", 0xDD741A, 0x0000039 + +gUnk_08DD7453:: @ 08DD7453 + .incbin "baserom.gba", 0xDD7453, 0x00000C4 + +gUnk_08DD7517:: @ 08DD7517 + .incbin "baserom.gba", 0xDD7517, 0x0000009 + +gUnk_08DD7520:: @ 08DD7520 + .incbin "baserom.gba", 0xDD7520, 0x0000025 + +gUnk_08DD7545:: @ 08DD7545 + .incbin "baserom.gba", 0xDD7545, 0x0000023 + +gUnk_08DD7568:: @ 08DD7568 + .incbin "baserom.gba", 0xDD7568, 0x000004B + +gUnk_08DD75B3:: @ 08DD75B3 + .incbin "baserom.gba", 0xDD75B3, 0x0000039 + +gUnk_08DD75EC:: @ 08DD75EC + .incbin "baserom.gba", 0xDD75EC, 0x0000084 + +gUnk_08DD7670:: @ 08DD7670 + .incbin "baserom.gba", 0xDD7670, 0x000002C + +gUnk_08DD769C:: @ 08DD769C + .incbin "baserom.gba", 0xDD769C, 0x000000B + +gUnk_08DD76A7:: @ 08DD76A7 + .incbin "baserom.gba", 0xDD76A7, 0x0000024 + +gUnk_08DD76CB:: @ 08DD76CB + .incbin "baserom.gba", 0xDD76CB, 0x000000F + +gUnk_08DD76DA:: @ 08DD76DA + .incbin "baserom.gba", 0xDD76DA, 0x0000050 + +gUnk_08DD772A:: @ 08DD772A + .incbin "baserom.gba", 0xDD772A, 0x000003C + +gUnk_08DD7766:: @ 08DD7766 + .incbin "baserom.gba", 0xDD7766, 0x0000073 + +gUnk_08DD77D9:: @ 08DD77D9 + .incbin "baserom.gba", 0xDD77D9, 0x0000008 + +gUnk_08DD77E1:: @ 08DD77E1 + .incbin "baserom.gba", 0xDD77E1, 0x0000015 + +gUnk_08DD77F6:: @ 08DD77F6 + .incbin "baserom.gba", 0xDD77F6, 0x0000083 + +gUnk_08DD7879:: @ 08DD7879 + .incbin "baserom.gba", 0xDD7879, 0x0000088 + +gUnk_08DD7901:: @ 08DD7901 + .incbin "baserom.gba", 0xDD7901, 0x0000012 + +gUnk_08DD7913:: @ 08DD7913 + .incbin "baserom.gba", 0xDD7913, 0x0000031 + +gUnk_08DD7944:: @ 08DD7944 + .incbin "baserom.gba", 0xDD7944, 0x0000054 + +gUnk_08DD7998:: @ 08DD7998 + .incbin "baserom.gba", 0xDD7998, 0x0000044 + +gUnk_08DD79DC:: @ 08DD79DC + .incbin "baserom.gba", 0xDD79DC, 0x00000DB + +gUnk_08DD7AB7:: @ 08DD7AB7 + .incbin "baserom.gba", 0xDD7AB7, 0x000011F + +gUnk_08DD7BD6:: @ 08DD7BD6 + .incbin "baserom.gba", 0xDD7BD6, 0x0000083 + +gUnk_08DD7C59:: @ 08DD7C59 + .incbin "baserom.gba", 0xDD7C59, 0x00000B1 + +gUnk_08DD7D0A:: @ 08DD7D0A + .incbin "baserom.gba", 0xDD7D0A, 0x00000FE + +gUnk_08DD7E08:: @ 08DD7E08 + .incbin "baserom.gba", 0xDD7E08, 0x0000024 + +gUnk_08DD7E2C:: @ 08DD7E2C + .incbin "baserom.gba", 0xDD7E2C, 0x0000015 + +gUnk_08DD7E41:: @ 08DD7E41 + .incbin "baserom.gba", 0xDD7E41, 0x0000061 + +gUnk_08DD7EA2:: @ 08DD7EA2 + .incbin "baserom.gba", 0xDD7EA2, 0x00000F4 + +gUnk_08DD7F96:: @ 08DD7F96 + .incbin "baserom.gba", 0xDD7F96, 0x0000024 + +gUnk_08DD7FBA:: @ 08DD7FBA + .incbin "baserom.gba", 0xDD7FBA, 0x000004B + +gUnk_08DD8005:: @ 08DD8005 + .incbin "baserom.gba", 0xDD8005, 0x000002B + +gUnk_08DD8030:: @ 08DD8030 + .incbin "baserom.gba", 0xDD8030, 0x0000096 + +gUnk_08DD80C6:: @ 08DD80C6 + .incbin "baserom.gba", 0xDD80C6, 0x0000034 + +gUnk_08DD80FA:: @ 08DD80FA + .incbin "baserom.gba", 0xDD80FA, 0x0000027 + +gUnk_08DD8121:: @ 08DD8121 + .incbin "baserom.gba", 0xDD8121, 0x00000FB + +gUnk_08DD821C:: @ 08DD821C + .incbin "baserom.gba", 0xDD821C, 0x00000BA + +gUnk_08DD82D6:: @ 08DD82D6 + .incbin "baserom.gba", 0xDD82D6, 0x000001A + +gUnk_08DD82F0:: @ 08DD82F0 + .incbin "baserom.gba", 0xDD82F0, 0x000000B + +gUnk_08DD82FB:: @ 08DD82FB + .incbin "baserom.gba", 0xDD82FB, 0x00000D1 + +gUnk_08DD83CC:: @ 08DD83CC + .incbin "baserom.gba", 0xDD83CC, 0x0000020 + +gUnk_08DD83EC:: @ 08DD83EC + .incbin "baserom.gba", 0xDD83EC, 0x0000055 + +gUnk_08DD8441:: @ 08DD8441 + .incbin "baserom.gba", 0xDD8441, 0x0000028 + +gUnk_08DD8469:: @ 08DD8469 + .incbin "baserom.gba", 0xDD8469, 0x000000B + +gUnk_08DD8474:: @ 08DD8474 + .incbin "baserom.gba", 0xDD8474, 0x00000FC + +gUnk_08DD8570:: @ 08DD8570 + .incbin "baserom.gba", 0xDD8570, 0x000007C + +gUnk_08DD85EC:: @ 08DD85EC + .incbin "baserom.gba", 0xDD85EC, 0x00000D5 + +gUnk_08DD86C1:: @ 08DD86C1 + .incbin "baserom.gba", 0xDD86C1, 0x0000203 + +gUnk_08DD88C4:: @ 08DD88C4 + .incbin "baserom.gba", 0xDD88C4, 0x000003B + +gUnk_08DD88FF:: @ 08DD88FF + .incbin "baserom.gba", 0xDD88FF, 0x00000CA + +gUnk_08DD89C9:: @ 08DD89C9 + .incbin "baserom.gba", 0xDD89C9, 0x00000F4 + +gUnk_08DD8ABD:: @ 08DD8ABD + .incbin "baserom.gba", 0xDD8ABD, 0x0000017 + +gUnk_08DD8AD4:: @ 08DD8AD4 + .incbin "baserom.gba", 0xDD8AD4, 0x00000C7 + +gUnk_08DD8B9B:: @ 08DD8B9B + .incbin "baserom.gba", 0xDD8B9B, 0x0000025 + +gUnk_08DD8BC0:: @ 08DD8BC0 + .incbin "baserom.gba", 0xDD8BC0, 0x0000018 + +gUnk_08DD8BD8:: @ 08DD8BD8 + .incbin "baserom.gba", 0xDD8BD8, 0x00000C4 + +gUnk_08DD8C9C:: @ 08DD8C9C + .incbin "baserom.gba", 0xDD8C9C, 0x00000E2 + +gUnk_08DD8D7E:: @ 08DD8D7E + .incbin "baserom.gba", 0xDD8D7E, 0x0000048 + +gUnk_08DD8DC6:: @ 08DD8DC6 + .incbin "baserom.gba", 0xDD8DC6, 0x0000012 + +gUnk_08DD8DD8:: @ 08DD8DD8 + .incbin "baserom.gba", 0xDD8DD8, 0x0000084 + +gUnk_08DD8E5C:: @ 08DD8E5C + .incbin "baserom.gba", 0xDD8E5C, 0x0000028 + +gUnk_08DD8E84:: @ 08DD8E84 + .incbin "baserom.gba", 0xDD8E84, 0x000004C + +gUnk_08DD8ED0:: @ 08DD8ED0 + .incbin "baserom.gba", 0xDD8ED0, 0x0000027 + +gUnk_08DD8EF7:: @ 08DD8EF7 + .incbin "baserom.gba", 0xDD8EF7, 0x000002F + +gUnk_08DD8F26:: @ 08DD8F26 + .incbin "baserom.gba", 0xDD8F26, 0x0000029 + +gUnk_08DD8F4F:: @ 08DD8F4F + .incbin "baserom.gba", 0xDD8F4F, 0x00000B5 + +gUnk_08DD9004:: @ 08DD9004 + .incbin "baserom.gba", 0xDD9004, 0x0000028 + +gUnk_08DD902C:: @ 08DD902C + .incbin "baserom.gba", 0xDD902C, 0x000001C + +gUnk_08DD9048:: @ 08DD9048 + .incbin "baserom.gba", 0xDD9048, 0x00000EA + +gUnk_08DD9132:: @ 08DD9132 + .incbin "baserom.gba", 0xDD9132, 0x000000A + +gUnk_08DD913C:: @ 08DD913C + .incbin "baserom.gba", 0xDD913C, 0x000008D + +gUnk_08DD91C9:: @ 08DD91C9 + .incbin "baserom.gba", 0xDD91C9, 0x0000259 + +gUnk_08DD9422:: @ 08DD9422 + .incbin "baserom.gba", 0xDD9422, 0x000012C + +gUnk_08DD954E:: @ 08DD954E + .incbin "baserom.gba", 0xDD954E, 0x00000B6 + +gUnk_08DD9604:: @ 08DD9604 + .incbin "baserom.gba", 0xDD9604, 0x000001C + +gUnk_08DD9620:: @ 08DD9620 + .incbin "baserom.gba", 0xDD9620, 0x00000CE + +gUnk_08DD96EE:: @ 08DD96EE + .incbin "baserom.gba", 0xDD96EE, 0x0000091 + +gUnk_08DD977F:: @ 08DD977F + .incbin "baserom.gba", 0xDD977F, 0x00000F1 + +gUnk_08DD9870:: @ 08DD9870 + .incbin "baserom.gba", 0xDD9870, 0x0000094 + +gUnk_08DD9904:: @ 08DD9904 + .incbin "baserom.gba", 0xDD9904, 0x0000094 + +gUnk_08DD9998:: @ 08DD9998 + .incbin "baserom.gba", 0xDD9998, 0x0000114 + +gUnk_08DD9AAC:: @ 08DD9AAC + .incbin "baserom.gba", 0xDD9AAC, 0x000001C + +gUnk_08DD9AC8:: @ 08DD9AC8 + .incbin "baserom.gba", 0xDD9AC8, 0x0000046 + +gUnk_08DD9B0E:: @ 08DD9B0E + .incbin "baserom.gba", 0xDD9B0E, 0x0000081 + +gUnk_08DD9B8F:: @ 08DD9B8F + .incbin "baserom.gba", 0xDD9B8F, 0x000002F + +gUnk_08DD9BBE:: @ 08DD9BBE + .incbin "baserom.gba", 0xDD9BBE, 0x0000025 + +gUnk_08DD9BE3:: @ 08DD9BE3 + .incbin "baserom.gba", 0xDD9BE3, 0x0000041 + +gUnk_08DD9C24:: @ 08DD9C24 + .incbin "baserom.gba", 0xDD9C24, 0x0000031 + +gUnk_08DD9C55:: @ 08DD9C55 + .incbin "baserom.gba", 0xDD9C55, 0x0000060 + +gUnk_08DD9CB5:: @ 08DD9CB5 + .incbin "baserom.gba", 0xDD9CB5, 0x0000035 + +gUnk_08DD9CEA:: @ 08DD9CEA + .incbin "baserom.gba", 0xDD9CEA, 0x000002C + +gUnk_08DD9D16:: @ 08DD9D16 + .incbin "baserom.gba", 0xDD9D16, 0x0000022 + +gUnk_08DD9D38:: @ 08DD9D38 + .incbin "baserom.gba", 0xDD9D38, 0x0000048 + +gUnk_08DD9D80:: @ 08DD9D80 + .incbin "baserom.gba", 0xDD9D80, 0x0000031 + +gUnk_08DD9DB1:: @ 08DD9DB1 + .incbin "baserom.gba", 0xDD9DB1, 0x0000023 + +gUnk_08DD9DD4:: @ 08DD9DD4 + .incbin "baserom.gba", 0xDD9DD4, 0x0000018 + +gUnk_08DD9DEC:: @ 08DD9DEC + .incbin "baserom.gba", 0xDD9DEC, 0x0000033 + +gUnk_08DD9E1F:: @ 08DD9E1F + .incbin "baserom.gba", 0xDD9E1F, 0x0000039 + +gUnk_08DD9E58:: @ 08DD9E58 + .incbin "baserom.gba", 0xDD9E58, 0x000004D + +gUnk_08DD9EA5:: @ 08DD9EA5 + .incbin "baserom.gba", 0xDD9EA5, 0x0000037 + +gUnk_08DD9EDC:: @ 08DD9EDC + .incbin "baserom.gba", 0xDD9EDC, 0x000004D + +gUnk_08DD9F29:: @ 08DD9F29 + .incbin "baserom.gba", 0xDD9F29, 0x0000027 + +gUnk_08DD9F50:: @ 08DD9F50 + .incbin "baserom.gba", 0xDD9F50, 0x0000024 + +gUnk_08DD9F74:: @ 08DD9F74 + .incbin "baserom.gba", 0xDD9F74, 0x0000063 + +gUnk_08DD9FD7:: @ 08DD9FD7 + .incbin "baserom.gba", 0xDD9FD7, 0x00000A1 + +gUnk_08DDA078:: @ 08DDA078 + .incbin "baserom.gba", 0xDDA078, 0x0000004 + +gUnk_08DDA07C:: @ 08DDA07C + .incbin "baserom.gba", 0xDDA07C, 0x000003D + +gUnk_08DDA0B9:: @ 08DDA0B9 + .incbin "baserom.gba", 0xDDA0B9, 0x0000023 + +gUnk_08DDA0DC:: @ 08DDA0DC + .incbin "baserom.gba", 0xDDA0DC, 0x0000004 + +gUnk_08DDA0E0:: @ 08DDA0E0 + .incbin "baserom.gba", 0xDDA0E0, 0x0000050 + +gUnk_08DDA130:: @ 08DDA130 + .incbin "baserom.gba", 0xDDA130, 0x00000DF + +gUnk_08DDA20F:: @ 08DDA20F + .incbin "baserom.gba", 0xDDA20F, 0x000000B + +gUnk_08DDA21A:: @ 08DDA21A + .incbin "baserom.gba", 0xDDA21A, 0x0000026 + +gUnk_08DDA240:: @ 08DDA240 + .incbin "baserom.gba", 0xDDA240, 0x0000069 + +gUnk_08DDA2A9:: @ 08DDA2A9 + .incbin "baserom.gba", 0xDDA2A9, 0x000000B + +gUnk_08DDA2B4:: @ 08DDA2B4 + .incbin "baserom.gba", 0xDDA2B4, 0x0000026 + +gUnk_08DDA2DA:: @ 08DDA2DA + .incbin "baserom.gba", 0xDDA2DA, 0x000006B + +gUnk_08DDA345:: @ 08DDA345 + .incbin "baserom.gba", 0xDDA345, 0x0000009 + +gUnk_08DDA34E:: @ 08DDA34E + .incbin "baserom.gba", 0xDDA34E, 0x0000031 + +gUnk_08DDA37F:: @ 08DDA37F + .incbin "baserom.gba", 0xDDA37F, 0x0000079 + +gUnk_08DDA3F8:: @ 08DDA3F8 + .incbin "baserom.gba", 0xDDA3F8, 0x0000028 + +gUnk_08DDA420:: @ 08DDA420 + .incbin "baserom.gba", 0xDDA420, 0x0000013 + +gUnk_08DDA433:: @ 08DDA433 + .incbin "baserom.gba", 0xDDA433, 0x000003B + +gUnk_08DDA46E:: @ 08DDA46E + .incbin "baserom.gba", 0xDDA46E, 0x0000051 + +gUnk_08DDA4BF:: @ 08DDA4BF + .incbin "baserom.gba", 0xDDA4BF, 0x000000F + +gUnk_08DDA4CE:: @ 08DDA4CE + .incbin "baserom.gba", 0xDDA4CE, 0x000001E + +gUnk_08DDA4EC:: @ 08DDA4EC + .incbin "baserom.gba", 0xDDA4EC, 0x0000072 + +gUnk_08DDA55E:: @ 08DDA55E + .incbin "baserom.gba", 0xDDA55E, 0x0000034 + +gUnk_08DDA592:: @ 08DDA592 + .incbin "baserom.gba", 0xDDA592, 0x0000048 + +gUnk_08DDA5DA:: @ 08DDA5DA + .incbin "baserom.gba", 0xDDA5DA, 0x000008D + +gUnk_08DDA667:: @ 08DDA667 + .incbin "baserom.gba", 0xDDA667, 0x000006D + +gUnk_08DDA6D4:: @ 08DDA6D4 + .incbin "baserom.gba", 0xDDA6D4, 0x0000082 + +gUnk_08DDA756:: @ 08DDA756 + .incbin "baserom.gba", 0xDDA756, 0x000000E + +gUnk_08DDA764:: @ 08DDA764 + .incbin "baserom.gba", 0xDDA764, 0x0000024 + +gUnk_08DDA788:: @ 08DDA788 + .incbin "baserom.gba", 0xDDA788, 0x000004D + +gUnk_08DDA7D5:: @ 08DDA7D5 + .incbin "baserom.gba", 0xDDA7D5, 0x0000013 + +gUnk_08DDA7E8:: @ 08DDA7E8 + .incbin "baserom.gba", 0xDDA7E8, 0x0000012 + +gUnk_08DDA7FA:: @ 08DDA7FA + .incbin "baserom.gba", 0xDDA7FA, 0x000001B + +gUnk_08DDA815:: @ 08DDA815 + .incbin "baserom.gba", 0xDDA815, 0x00000E8 + +gUnk_08DDA8FD:: @ 08DDA8FD + .incbin "baserom.gba", 0xDDA8FD, 0x000002A + +gUnk_08DDA927:: @ 08DDA927 + .incbin "baserom.gba", 0xDDA927, 0x0000016 + +gUnk_08DDA93D:: @ 08DDA93D + .incbin "baserom.gba", 0xDDA93D, 0x000006E + +gUnk_08DDA9AB:: @ 08DDA9AB + .incbin "baserom.gba", 0xDDA9AB, 0x000011D + +gUnk_08DDAAC8:: @ 08DDAAC8 + .incbin "baserom.gba", 0xDDAAC8, 0x0000028 + +gUnk_08DDAAF0:: @ 08DDAAF0 + .incbin "baserom.gba", 0xDDAAF0, 0x0000044 + +gUnk_08DDAB34:: @ 08DDAB34 + .incbin "baserom.gba", 0xDDAB34, 0x0000011 + +gUnk_08DDAB45:: @ 08DDAB45 + .incbin "baserom.gba", 0xDDAB45, 0x0000042 + +gUnk_08DDAB87:: @ 08DDAB87 + .incbin "baserom.gba", 0xDDAB87, 0x000004E + +gUnk_08DDABD5:: @ 08DDABD5 + .incbin "baserom.gba", 0xDDABD5, 0x0000070 + +gUnk_08DDAC45:: @ 08DDAC45 + .incbin "baserom.gba", 0xDDAC45, 0x00000E5 + +gUnk_08DDAD2A:: @ 08DDAD2A + .incbin "baserom.gba", 0xDDAD2A, 0x0000007 + +gUnk_08DDAD31:: @ 08DDAD31 + .incbin "baserom.gba", 0xDDAD31, 0x0000068 + +gUnk_08DDAD99:: @ 08DDAD99 + .incbin "baserom.gba", 0xDDAD99, 0x0000064 + +gUnk_08DDADFD:: @ 08DDADFD + .incbin "baserom.gba", 0xDDADFD, 0x000003C + +gUnk_08DDAE39:: @ 08DDAE39 + .incbin "baserom.gba", 0xDDAE39, 0x000001A + +gUnk_08DDAE53:: @ 08DDAE53 + .incbin "baserom.gba", 0xDDAE53, 0x0000063 + +gUnk_08DDAEB6:: @ 08DDAEB6 + .incbin "baserom.gba", 0xDDAEB6, 0x0000007 + +gUnk_08DDAEBD:: @ 08DDAEBD + .incbin "baserom.gba", 0xDDAEBD, 0x00000E8 + +gUnk_08DDAFA5:: @ 08DDAFA5 + .incbin "baserom.gba", 0xDDAFA5, 0x0000007 + +gUnk_08DDAFAC:: @ 08DDAFAC + .incbin "baserom.gba", 0xDDAFAC, 0x000001D + +gUnk_08DDAFC9:: @ 08DDAFC9 + .incbin "baserom.gba", 0xDDAFC9, 0x000004C + +gUnk_08DDB015:: @ 08DDB015 + .incbin "baserom.gba", 0xDDB015, 0x000002A + +gUnk_08DDB03F:: @ 08DDB03F + .incbin "baserom.gba", 0xDDB03F, 0x000006F + +gUnk_08DDB0AE:: @ 08DDB0AE + .incbin "baserom.gba", 0xDDB0AE, 0x0000008 + +gUnk_08DDB0B6:: @ 08DDB0B6 + .incbin "baserom.gba", 0xDDB0B6, 0x0000055 + +gUnk_08DDB10B:: @ 08DDB10B + .incbin "baserom.gba", 0xDDB10B, 0x000007A + +gUnk_08DDB185:: @ 08DDB185 + .incbin "baserom.gba", 0xDDB185, 0x000000A + +gUnk_08DDB18F:: @ 08DDB18F + .incbin "baserom.gba", 0xDDB18F, 0x0000045 + +gUnk_08DDB1D4:: @ 08DDB1D4 + .incbin "baserom.gba", 0xDDB1D4, 0x0000030 + +gUnk_08DDB204:: @ 08DDB204 + .incbin "baserom.gba", 0xDDB204, 0x0000017 + +gUnk_08DDB21B:: @ 08DDB21B + .incbin "baserom.gba", 0xDDB21B, 0x0000047 + +gUnk_08DDB262:: @ 08DDB262 + .incbin "baserom.gba", 0xDDB262, 0x0000020 + +gUnk_08DDB282:: @ 08DDB282 + .incbin "baserom.gba", 0xDDB282, 0x0000062 + +gUnk_08DDB2E4:: @ 08DDB2E4 + .incbin "baserom.gba", 0xDDB2E4, 0x0000028 + +gUnk_08DDB30C:: @ 08DDB30C + .incbin "baserom.gba", 0xDDB30C, 0x000009B + +gUnk_08DDB3A7:: @ 08DDB3A7 + .incbin "baserom.gba", 0xDDB3A7, 0x00000A4 + +gUnk_08DDB44B:: @ 08DDB44B + .incbin "baserom.gba", 0xDDB44B, 0x00000AC + +gUnk_08DDB4F7:: @ 08DDB4F7 + .incbin "baserom.gba", 0xDDB4F7, 0x00000CB + +gUnk_08DDB5C2:: @ 08DDB5C2 + .incbin "baserom.gba", 0xDDB5C2, 0x0000007 + +gUnk_08DDB5C9:: @ 08DDB5C9 + .incbin "baserom.gba", 0xDDB5C9, 0x000001B + +gUnk_08DDB5E4:: @ 08DDB5E4 + .incbin "baserom.gba", 0xDDB5E4, 0x0000028 + +gUnk_08DDB60C:: @ 08DDB60C + .incbin "baserom.gba", 0xDDB60C, 0x000006E + +gUnk_08DDB67A:: @ 08DDB67A + .incbin "baserom.gba", 0xDDB67A, 0x000007F + +gUnk_08DDB6F9:: @ 08DDB6F9 + .incbin "baserom.gba", 0xDDB6F9, 0x0000023 + +gUnk_08DDB71C:: @ 08DDB71C + .incbin "baserom.gba", 0xDDB71C, 0x00000DE + +gUnk_08DDB7FA:: @ 08DDB7FA + .incbin "baserom.gba", 0xDDB7FA, 0x000025A + +gUnk_08DDBA54:: @ 08DDBA54 + .incbin "baserom.gba", 0xDDBA54, 0x0000049 + +gUnk_08DDBA9D:: @ 08DDBA9D + .incbin "baserom.gba", 0xDDBA9D, 0x00000A6 + +gUnk_08DDBB43:: @ 08DDBB43 + .incbin "baserom.gba", 0xDDBB43, 0x0000067 + +gUnk_08DDBBAA:: @ 08DDBBAA + .incbin "baserom.gba", 0xDDBBAA, 0x0000095 + +gUnk_08DDBC3F:: @ 08DDBC3F + .incbin "baserom.gba", 0xDDBC3F, 0x00000C4 + +gUnk_08DDBD03:: @ 08DDBD03 + .incbin "baserom.gba", 0xDDBD03, 0x0000041 + +gUnk_08DDBD44:: @ 08DDBD44 + .incbin "baserom.gba", 0xDDBD44, 0x000005F + +gUnk_08DDBDA3:: @ 08DDBDA3 + .incbin "baserom.gba", 0xDDBDA3, 0x0000064 + +gUnk_08DDBE07:: @ 08DDBE07 + .incbin "baserom.gba", 0xDDBE07, 0x0000068 + +gUnk_08DDBE6F:: @ 08DDBE6F + .incbin "baserom.gba", 0xDDBE6F, 0x0000034 + +gUnk_08DDBEA3:: @ 08DDBEA3 + .incbin "baserom.gba", 0xDDBEA3, 0x00000CC + +gUnk_08DDBF6F:: @ 08DDBF6F + .incbin "baserom.gba", 0xDDBF6F, 0x0000101 + +gUnk_08DDC070:: @ 08DDC070 + .incbin "baserom.gba", 0xDDC070, 0x000002C + +gUnk_08DDC09C:: @ 08DDC09C + .incbin "baserom.gba", 0xDDC09C, 0x0000028 + +gUnk_08DDC0C4:: @ 08DDC0C4 + .incbin "baserom.gba", 0xDDC0C4, 0x0000008 + +gUnk_08DDC0CC:: @ 08DDC0CC + .incbin "baserom.gba", 0xDDC0CC, 0x0000055 + +gUnk_08DDC121:: @ 08DDC121 + .incbin "baserom.gba", 0xDDC121, 0x0000007 + +gUnk_08DDC128:: @ 08DDC128 + .incbin "baserom.gba", 0xDDC128, 0x0000012 + +gUnk_08DDC13A:: @ 08DDC13A + .incbin "baserom.gba", 0xDDC13A, 0x0000070 + +gUnk_08DDC1AA:: @ 08DDC1AA + .incbin "baserom.gba", 0xDDC1AA, 0x0000021 + +gUnk_08DDC1CB:: @ 08DDC1CB + .incbin "baserom.gba", 0xDDC1CB, 0x0000033 + +gUnk_08DDC1FE:: @ 08DDC1FE + .incbin "baserom.gba", 0xDDC1FE, 0x000001A + +gUnk_08DDC218:: @ 08DDC218 + .incbin "baserom.gba", 0xDDC218, 0x0000038 + +gUnk_08DDC250:: @ 08DDC250 + .incbin "baserom.gba", 0xDDC250, 0x0000024 + +gUnk_08DDC274:: @ 08DDC274 + .incbin "baserom.gba", 0xDDC274, 0x0000032 + +gUnk_08DDC2A6:: @ 08DDC2A6 + .incbin "baserom.gba", 0xDDC2A6, 0x0000008 + +gUnk_08DDC2AE:: @ 08DDC2AE + .incbin "baserom.gba", 0xDDC2AE, 0x000002B + +gUnk_08DDC2D9:: @ 08DDC2D9 + .incbin "baserom.gba", 0xDDC2D9, 0x0000032 + +gUnk_08DDC30B:: @ 08DDC30B + .incbin "baserom.gba", 0xDDC30B, 0x000003B + +gUnk_08DDC346:: @ 08DDC346 + .incbin "baserom.gba", 0xDDC346, 0x0000012 + +gUnk_08DDC358:: @ 08DDC358 + .incbin "baserom.gba", 0xDDC358, 0x000003C + +gUnk_08DDC394:: @ 08DDC394 + .incbin "baserom.gba", 0xDDC394, 0x0000020 + +gUnk_08DDC3B4:: @ 08DDC3B4 + .incbin "baserom.gba", 0xDDC3B4, 0x000002E + +gUnk_08DDC3E2:: @ 08DDC3E2 + .incbin "baserom.gba", 0xDDC3E2, 0x0000007 + +gUnk_08DDC3E9:: @ 08DDC3E9 + .incbin "baserom.gba", 0xDDC3E9, 0x0000020 + +gUnk_08DDC409:: @ 08DDC409 + .incbin "baserom.gba", 0xDDC409, 0x0000013 + +gUnk_08DDC41C:: @ 08DDC41C + .incbin "baserom.gba", 0xDDC41C, 0x0000098 + +gUnk_08DDC4B4:: @ 08DDC4B4 + .incbin "baserom.gba", 0xDDC4B4, 0x0000018 + +gUnk_08DDC4CC:: @ 08DDC4CC + .incbin "baserom.gba", 0xDDC4CC, 0x0000027 + +gUnk_08DDC4F3:: @ 08DDC4F3 + .incbin "baserom.gba", 0xDDC4F3, 0x0000043 + +gUnk_08DDC536:: @ 08DDC536 + .incbin "baserom.gba", 0xDDC536, 0x000002C + +gUnk_08DDC562:: @ 08DDC562 + .incbin "baserom.gba", 0xDDC562, 0x0000018 + +gUnk_08DDC57A:: @ 08DDC57A + .incbin "baserom.gba", 0xDDC57A, 0x000003E + +gUnk_08DDC5B8:: @ 08DDC5B8 + .incbin "baserom.gba", 0xDDC5B8, 0x0000013 + +gUnk_08DDC5CB:: @ 08DDC5CB + .incbin "baserom.gba", 0xDDC5CB, 0x0000060 + +gUnk_08DDC62B:: @ 08DDC62B + .incbin "baserom.gba", 0xDDC62B, 0x0000014 + +gUnk_08DDC63F:: @ 08DDC63F + .incbin "baserom.gba", 0xDDC63F, 0x00000C9 + +gUnk_08DDC708:: @ 08DDC708 + .incbin "baserom.gba", 0xDDC708, 0x000001D + +gUnk_08DDC725:: @ 08DDC725 + .incbin "baserom.gba", 0xDDC725, 0x000014A + +gUnk_08DDC86F:: @ 08DDC86F + .incbin "baserom.gba", 0xDDC86F, 0x0000016 + +gUnk_08DDC885:: @ 08DDC885 + .incbin "baserom.gba", 0xDDC885, 0x000003F + +gUnk_08DDC8C4:: @ 08DDC8C4 + .incbin "baserom.gba", 0xDDC8C4, 0x00000BF + +gUnk_08DDC983:: @ 08DDC983 + .incbin "baserom.gba", 0xDDC983, 0x0000007 + +gUnk_08DDC98A:: @ 08DDC98A + .incbin "baserom.gba", 0xDDC98A, 0x0000163 + +gUnk_08DDCAED:: @ 08DDCAED + .incbin "baserom.gba", 0xDDCAED, 0x0000011 + +gUnk_08DDCAFE:: @ 08DDCAFE + .incbin "baserom.gba", 0xDDCAFE, 0x00000C7 + +gUnk_08DDCBC5:: @ 08DDCBC5 + .incbin "baserom.gba", 0xDDCBC5, 0x0000006 + +gUnk_08DDCBCB:: @ 08DDCBCB + .incbin "baserom.gba", 0xDDCBCB, 0x00000DB + +gUnk_08DDCCA6:: @ 08DDCCA6 + .incbin "baserom.gba", 0xDDCCA6, 0x0000024 + +gUnk_08DDCCCA:: @ 08DDCCCA + .incbin "baserom.gba", 0xDDCCCA, 0x0000094 + +gUnk_08DDCD5E:: @ 08DDCD5E + .incbin "baserom.gba", 0xDDCD5E, 0x000012C + +gUnk_08DDCE8A:: @ 08DDCE8A + .incbin "baserom.gba", 0xDDCE8A, 0x0000007 + +gUnk_08DDCE91:: @ 08DDCE91 + .incbin "baserom.gba", 0xDDCE91, 0x0000008 + +gUnk_08DDCE99:: @ 08DDCE99 + .incbin "baserom.gba", 0xDDCE99, 0x000002E + +gUnk_08DDCEC7:: @ 08DDCEC7 + .incbin "baserom.gba", 0xDDCEC7, 0x000001E + +gUnk_08DDCEE5:: @ 08DDCEE5 + .incbin "baserom.gba", 0xDDCEE5, 0x0000043 + +gUnk_08DDCF28:: @ 08DDCF28 + .incbin "baserom.gba", 0xDDCF28, 0x0000024 + +gUnk_08DDCF4C:: @ 08DDCF4C + .incbin "baserom.gba", 0xDDCF4C, 0x00000EB + +gUnk_08DDD037:: @ 08DDD037 + .incbin "baserom.gba", 0xDDD037, 0x0000016 + +gUnk_08DDD04D:: @ 08DDD04D + .incbin "baserom.gba", 0xDDD04D, 0x0000025 + +gUnk_08DDD072:: @ 08DDD072 + .incbin "baserom.gba", 0xDDD072, 0x0000017 + +gUnk_08DDD089:: @ 08DDD089 + .incbin "baserom.gba", 0xDDD089, 0x0000088 + +gUnk_08DDD111:: @ 08DDD111 + .incbin "baserom.gba", 0xDDD111, 0x0000011 + +gUnk_08DDD122:: @ 08DDD122 + .incbin "baserom.gba", 0xDDD122, 0x0000074 + +gUnk_08DDD196:: @ 08DDD196 + .incbin "baserom.gba", 0xDDD196, 0x0000010 + +gUnk_08DDD1A6:: @ 08DDD1A6 + .incbin "baserom.gba", 0xDDD1A6, 0x000008E + +gUnk_08DDD234:: @ 08DDD234 + .incbin "baserom.gba", 0xDDD234, 0x000010A + +gUnk_08DDD33E:: @ 08DDD33E + .incbin "baserom.gba", 0xDDD33E, 0x0000042 + +gUnk_08DDD380:: @ 08DDD380 + .incbin "baserom.gba", 0xDDD380, 0x00000D4 + +gUnk_08DDD454:: @ 08DDD454 + .incbin "baserom.gba", 0xDDD454, 0x00000BC + +gUnk_08DDD510:: @ 08DDD510 + .incbin "baserom.gba", 0xDDD510, 0x0000024 + +gUnk_08DDD534:: @ 08DDD534 + .incbin "baserom.gba", 0xDDD534, 0x000001F + +gUnk_08DDD553:: @ 08DDD553 + .incbin "baserom.gba", 0xDDD553, 0x0000024 + +gUnk_08DDD577:: @ 08DDD577 + .incbin "baserom.gba", 0xDDD577, 0x00000AD + +gUnk_08DDD624:: @ 08DDD624 + .incbin "baserom.gba", 0xDDD624, 0x000004E + +gUnk_08DDD672:: @ 08DDD672 + .incbin "baserom.gba", 0xDDD672, 0x00000AD + +gUnk_08DDD71F:: @ 08DDD71F + .incbin "baserom.gba", 0xDDD71F, 0x000008D + +gUnk_08DDD7AC:: @ 08DDD7AC + .incbin "baserom.gba", 0xDDD7AC, 0x0000006 + +gUnk_08DDD7B2:: @ 08DDD7B2 + .incbin "baserom.gba", 0xDDD7B2, 0x00000A8 + +gUnk_08DDD85A:: @ 08DDD85A + .incbin "baserom.gba", 0xDDD85A, 0x00000FB + +gUnk_08DDD955:: @ 08DDD955 + .incbin "baserom.gba", 0xDDD955, 0x0000046 + +gUnk_08DDD99B:: @ 08DDD99B + .incbin "baserom.gba", 0xDDD99B, 0x000002D + +gUnk_08DDD9C8:: @ 08DDD9C8 + .incbin "baserom.gba", 0xDDD9C8, 0x0000036 + +gUnk_08DDD9FE:: @ 08DDD9FE + .incbin "baserom.gba", 0xDDD9FE, 0x0000052 + +gUnk_08DDDA50:: @ 08DDDA50 + .incbin "baserom.gba", 0xDDDA50, 0x0000024 + +gUnk_08DDDA74:: @ 08DDDA74 + .incbin "baserom.gba", 0xDDDA74, 0x000009E + +gUnk_08DDDB12:: @ 08DDDB12 + .incbin "baserom.gba", 0xDDDB12, 0x00001C8 + +gUnk_08DDDCDA:: @ 08DDDCDA + .incbin "baserom.gba", 0xDDDCDA, 0x000001F + +gUnk_08DDDCF9:: @ 08DDDCF9 + .incbin "baserom.gba", 0xDDDCF9, 0x0000008 + +gUnk_08DDDD01:: @ 08DDDD01 + .incbin "baserom.gba", 0xDDDD01, 0x000000C + +gUnk_08DDDD0D:: @ 08DDDD0D + .incbin "baserom.gba", 0xDDDD0D, 0x0000020 + +gUnk_08DDDD2D:: @ 08DDDD2D + .incbin "baserom.gba", 0xDDDD2D, 0x00000B1 + +gUnk_08DDDDDE:: @ 08DDDDDE + .incbin "baserom.gba", 0xDDDDDE, 0x0000007 + +gUnk_08DDDDE5:: @ 08DDDDE5 + .incbin "baserom.gba", 0xDDDDE5, 0x0000008 + +gUnk_08DDDDED:: @ 08DDDDED + .incbin "baserom.gba", 0xDDDDED, 0x000003B + +gUnk_08DDDE28:: @ 08DDDE28 + .incbin "baserom.gba", 0xDDDE28, 0x0000056 + +gUnk_08DDDE7E:: @ 08DDDE7E + .incbin "baserom.gba", 0xDDDE7E, 0x000000C + +gUnk_08DDDE8A:: @ 08DDDE8A + .incbin "baserom.gba", 0xDDDE8A, 0x00000E9 + +gUnk_08DDDF73:: @ 08DDDF73 + .incbin "baserom.gba", 0xDDDF73, 0x000008F + +gUnk_08DDE002:: @ 08DDE002 + .incbin "baserom.gba", 0xDDE002, 0x0000017 + +gUnk_08DDE019:: @ 08DDE019 + .incbin "baserom.gba", 0xDDE019, 0x0000020 + +gUnk_08DDE039:: @ 08DDE039 + .incbin "baserom.gba", 0xDDE039, 0x0000149 + +gUnk_08DDE182:: @ 08DDE182 + .incbin "baserom.gba", 0xDDE182, 0x0000008 + +gUnk_08DDE18A:: @ 08DDE18A + .incbin "baserom.gba", 0xDDE18A, 0x0000015 + +gUnk_08DDE19F:: @ 08DDE19F + .incbin "baserom.gba", 0xDDE19F, 0x000004A + +gUnk_08DDE1E9:: @ 08DDE1E9 + .incbin "baserom.gba", 0xDDE1E9, 0x000009A + +gUnk_08DDE283:: @ 08DDE283 + .incbin "baserom.gba", 0xDDE283, 0x000004F + +gUnk_08DDE2D2:: @ 08DDE2D2 + .incbin "baserom.gba", 0xDDE2D2, 0x0000060 + +gUnk_08DDE332:: @ 08DDE332 + .incbin "baserom.gba", 0xDDE332, 0x00001B2 + +gUnk_08DDE4E4:: @ 08DDE4E4 + .incbin "baserom.gba", 0xDDE4E4, 0x0000024 + +gUnk_08DDE508:: @ 08DDE508 + .incbin "baserom.gba", 0xDDE508, 0x000000B + +gUnk_08DDE513:: @ 08DDE513 + .incbin "baserom.gba", 0xDDE513, 0x0000056 + +gUnk_08DDE569:: @ 08DDE569 + .incbin "baserom.gba", 0xDDE569, 0x000006F + +gUnk_08DDE5D8:: @ 08DDE5D8 + .incbin "baserom.gba", 0xDDE5D8, 0x000002E + +gUnk_08DDE606:: @ 08DDE606 + .incbin "baserom.gba", 0xDDE606, 0x000002F + +gUnk_08DDE635:: @ 08DDE635 + .incbin "baserom.gba", 0xDDE635, 0x000002E + +gUnk_08DDE663:: @ 08DDE663 + .incbin "baserom.gba", 0xDDE663, 0x0000064 + +gUnk_08DDE6C7:: @ 08DDE6C7 + .incbin "baserom.gba", 0xDDE6C7, 0x0000024 + +gUnk_08DDE6EB:: @ 08DDE6EB + .incbin "baserom.gba", 0xDDE6EB, 0x00000A3 + +gUnk_08DDE78E:: @ 08DDE78E + .incbin "baserom.gba", 0xDDE78E, 0x0000096 + +gUnk_08DDE824:: @ 08DDE824 + .incbin "baserom.gba", 0xDDE824, 0x0000024 + +gUnk_08DDE848:: @ 08DDE848 + .incbin "baserom.gba", 0xDDE848, 0x0000013 + +gUnk_08DDE85B:: @ 08DDE85B + .incbin "baserom.gba", 0xDDE85B, 0x0000073 + +gUnk_08DDE8CE:: @ 08DDE8CE + .incbin "baserom.gba", 0xDDE8CE, 0x000000D + +gUnk_08DDE8DB:: @ 08DDE8DB + .incbin "baserom.gba", 0xDDE8DB, 0x0000004 + +gUnk_08DDE8DF:: @ 08DDE8DF + .incbin "baserom.gba", 0xDDE8DF, 0x000007B + +gUnk_08DDE95A:: @ 08DDE95A + .incbin "baserom.gba", 0xDDE95A, 0x0000026 + +gUnk_08DDE980:: @ 08DDE980 + .incbin "baserom.gba", 0xDDE980, 0x0000018 + +gUnk_08DDE998:: @ 08DDE998 + .incbin "baserom.gba", 0xDDE998, 0x000005C + +gUnk_08DDE9F4:: @ 08DDE9F4 + .incbin "baserom.gba", 0xDDE9F4, 0x00000C0 + +gUnk_08DDEAB4:: @ 08DDEAB4 + .incbin "baserom.gba", 0xDDEAB4, 0x0000068 + +gUnk_08DDEB1C:: @ 08DDEB1C + .incbin "baserom.gba", 0xDDEB1C, 0x000002F + +gUnk_08DDEB4B:: @ 08DDEB4B + .incbin "baserom.gba", 0xDDEB4B, 0x000009E + +gUnk_08DDEBE9:: @ 08DDEBE9 + .incbin "baserom.gba", 0xDDEBE9, 0x000004F + +gUnk_08DDEC38:: @ 08DDEC38 + .incbin "baserom.gba", 0xDDEC38, 0x0000024 + +gUnk_08DDEC5C:: @ 08DDEC5C + .incbin "baserom.gba", 0xDDEC5C, 0x000002F + +gUnk_08DDEC8B:: @ 08DDEC8B + .incbin "baserom.gba", 0xDDEC8B, 0x000000E + +gUnk_08DDEC99:: @ 08DDEC99 + .incbin "baserom.gba", 0xDDEC99, 0x0000027 + +gUnk_08DDECC0:: @ 08DDECC0 + .incbin "baserom.gba", 0xDDECC0, 0x0000013 + +gUnk_08DDECD3:: @ 08DDECD3 + .incbin "baserom.gba", 0xDDECD3, 0x0000099 + +gUnk_08DDED6C:: @ 08DDED6C + .incbin "baserom.gba", 0xDDED6C, 0x000001C + +gUnk_08DDED88:: @ 08DDED88 + .incbin "baserom.gba", 0xDDED88, 0x0000026 + +gUnk_08DDEDAE:: @ 08DDEDAE + .incbin "baserom.gba", 0xDDEDAE, 0x0000011 + +gUnk_08DDEDBF:: @ 08DDEDBF + .incbin "baserom.gba", 0xDDEDBF, 0x000001C + +gUnk_08DDEDDB:: @ 08DDEDDB + .incbin "baserom.gba", 0xDDEDDB, 0x000001A + +gUnk_08DDEDF5:: @ 08DDEDF5 + .incbin "baserom.gba", 0xDDEDF5, 0x0000023 + +gUnk_08DDEE18:: @ 08DDEE18 + .incbin "baserom.gba", 0xDDEE18, 0x000001C + +gUnk_08DDEE34:: @ 08DDEE34 + .incbin "baserom.gba", 0xDDEE34, 0x0000010 + +gUnk_08DDEE44:: @ 08DDEE44 + .incbin "baserom.gba", 0xDDEE44, 0x000000C + +gUnk_08DDEE50:: @ 08DDEE50 + .incbin "baserom.gba", 0xDDEE50, 0x0000036 + +gUnk_08DDEE86:: @ 08DDEE86 + .incbin "baserom.gba", 0xDDEE86, 0x0000036 + +gUnk_08DDEEBC:: @ 08DDEEBC + .incbin "baserom.gba", 0xDDEEBC, 0x0000010 + +gUnk_08DDEECC:: @ 08DDEECC + .incbin "baserom.gba", 0xDDEECC, 0x000002A + +gUnk_08DDEEF6:: @ 08DDEEF6 + .incbin "baserom.gba", 0xDDEEF6, 0x0000009 + +gUnk_08DDEEFF:: @ 08DDEEFF + .incbin "baserom.gba", 0xDDEEFF, 0x0000021 + +gUnk_08DDEF20:: @ 08DDEF20 + .incbin "baserom.gba", 0xDDEF20, 0x0000010 + +gUnk_08DDEF30:: @ 08DDEF30 + .incbin "baserom.gba", 0xDDEF30, 0x0000014 + +gUnk_08DDEF44:: @ 08DDEF44 + .incbin "baserom.gba", 0xDDEF44, 0x000000C + +gUnk_08DDEF50:: @ 08DDEF50 + .incbin "baserom.gba", 0xDDEF50, 0x000002C + +gUnk_08DDEF7C:: @ 08DDEF7C + .incbin "baserom.gba", 0xDDEF7C, 0x000000C + +gUnk_08DDEF88:: @ 08DDEF88 + .incbin "baserom.gba", 0xDDEF88, 0x0000014 + +gUnk_08DDEF9C:: @ 08DDEF9C + .incbin "baserom.gba", 0xDDEF9C, 0x000000C + +gUnk_08DDEFA8:: @ 08DDEFA8 + .incbin "baserom.gba", 0xDDEFA8, 0x0000060 + +gUnk_08DDF008:: @ 08DDF008 + .incbin "baserom.gba", 0xDDF008, 0x000000C + +gUnk_08DDF014:: @ 08DDF014 + .incbin "baserom.gba", 0xDDF014, 0x000002C + +gUnk_08DDF040:: @ 08DDF040 + .incbin "baserom.gba", 0xDDF040, 0x000000C + +gUnk_08DDF04C:: @ 08DDF04C + .incbin "baserom.gba", 0xDDF04C, 0x000001C + +gUnk_08DDF068:: @ 08DDF068 + .incbin "baserom.gba", 0xDDF068, 0x000000C + +gUnk_08DDF074:: @ 08DDF074 + .incbin "baserom.gba", 0xDDF074, 0x0000020 + +gUnk_08DDF094:: @ 08DDF094 + .incbin "baserom.gba", 0xDDF094, 0x000000C + +gUnk_08DDF0A0:: @ 08DDF0A0 + .incbin "baserom.gba", 0xDDF0A0, 0x000001C + +gUnk_08DDF0BC:: @ 08DDF0BC + .incbin "baserom.gba", 0xDDF0BC, 0x000000C + +gUnk_08DDF0C8:: @ 08DDF0C8 + .incbin "baserom.gba", 0xDDF0C8, 0x0000024 + +gUnk_08DDF0EC:: @ 08DDF0EC + .incbin "baserom.gba", 0xDDF0EC, 0x000000C + +gUnk_08DDF0F8:: @ 08DDF0F8 + .incbin "baserom.gba", 0xDDF0F8, 0x000004C + +gUnk_08DDF144:: @ 08DDF144 + .incbin "baserom.gba", 0xDDF144, 0x000000C + +gUnk_08DDF150:: @ 08DDF150 + .incbin "baserom.gba", 0xDDF150, 0x000001C + +gUnk_08DDF16C:: @ 08DDF16C + .incbin "baserom.gba", 0xDDF16C, 0x000000C + +gUnk_08DDF178:: @ 08DDF178 + .incbin "baserom.gba", 0xDDF178, 0x0000024 + +gUnk_08DDF19C:: @ 08DDF19C + .incbin "baserom.gba", 0xDDF19C, 0x000000C + +gUnk_08DDF1A8:: @ 08DDF1A8 + .incbin "baserom.gba", 0xDDF1A8, 0x0000027 + +gUnk_08DDF1CF:: @ 08DDF1CF + .incbin "baserom.gba", 0xDDF1CF, 0x0000025 + +gUnk_08DDF1F4:: @ 08DDF1F4 + .incbin "baserom.gba", 0xDDF1F4, 0x0000010 + +gUnk_08DDF204:: @ 08DDF204 + .incbin "baserom.gba", 0xDDF204, 0x0000018 + +gUnk_08DDF21C:: @ 08DDF21C + .incbin "baserom.gba", 0xDDF21C, 0x000000C + +gUnk_08DDF228:: @ 08DDF228 + .incbin "baserom.gba", 0xDDF228, 0x0000010 + +gUnk_08DDF238:: @ 08DDF238 + .incbin "baserom.gba", 0xDDF238, 0x000000C + +gUnk_08DDF244:: @ 08DDF244 + .incbin "baserom.gba", 0xDDF244, 0x0000010 + +gUnk_08DDF254:: @ 08DDF254 + .incbin "baserom.gba", 0xDDF254, 0x000000C + +gUnk_08DDF260:: @ 08DDF260 + .incbin "baserom.gba", 0xDDF260, 0x0000010 + +gUnk_08DDF270:: @ 08DDF270 + .incbin "baserom.gba", 0xDDF270, 0x000000C + +gUnk_08DDF27C:: @ 08DDF27C + .incbin "baserom.gba", 0xDDF27C, 0x0000010 + +gUnk_08DDF28C:: @ 08DDF28C + .incbin "baserom.gba", 0xDDF28C, 0x000000C + +gUnk_08DDF298:: @ 08DDF298 + .incbin "baserom.gba", 0xDDF298, 0x0000010 + +gUnk_08DDF2A8:: @ 08DDF2A8 + .incbin "baserom.gba", 0xDDF2A8, 0x000000C + +gUnk_08DDF2B4:: @ 08DDF2B4 + .incbin "baserom.gba", 0xDDF2B4, 0x0000010 + +gUnk_08DDF2C4:: @ 08DDF2C4 + .incbin "baserom.gba", 0xDDF2C4, 0x000000C + +gUnk_08DDF2D0:: @ 08DDF2D0 + .incbin "baserom.gba", 0xDDF2D0, 0x0000010 + +gUnk_08DDF2E0:: @ 08DDF2E0 + .incbin "baserom.gba", 0xDDF2E0, 0x000000C + +gUnk_08DDF2EC:: @ 08DDF2EC + .incbin "baserom.gba", 0xDDF2EC, 0x0000010 + +gUnk_08DDF2FC:: @ 08DDF2FC + .incbin "baserom.gba", 0xDDF2FC, 0x000000C + +gUnk_08DDF308:: @ 08DDF308 + .incbin "baserom.gba", 0xDDF308, 0x0000014 + +gUnk_08DDF31C:: @ 08DDF31C + .incbin "baserom.gba", 0xDDF31C, 0x000000C + +gUnk_08DDF328:: @ 08DDF328 + .incbin "baserom.gba", 0xDDF328, 0x0000014 + +gUnk_08DDF33C:: @ 08DDF33C + .incbin "baserom.gba", 0xDDF33C, 0x000000C + +gUnk_08DDF348:: @ 08DDF348 + .incbin "baserom.gba", 0xDDF348, 0x0000044 + +gUnk_08DDF38C:: @ 08DDF38C + .incbin "baserom.gba", 0xDDF38C, 0x000000C + +gUnk_08DDF398:: @ 08DDF398 + .incbin "baserom.gba", 0xDDF398, 0x0000018 + +gUnk_08DDF3B0:: @ 08DDF3B0 + .incbin "baserom.gba", 0xDDF3B0, 0x000000C + +gUnk_08DDF3BC:: @ 08DDF3BC + .incbin "baserom.gba", 0xDDF3BC, 0x0000028 + +gUnk_08DDF3E4:: @ 08DDF3E4 + .incbin "baserom.gba", 0xDDF3E4, 0x000000C + +gUnk_08DDF3F0:: @ 08DDF3F0 + .incbin "baserom.gba", 0xDDF3F0, 0x0000010 + +gUnk_08DDF400:: @ 08DDF400 + .incbin "baserom.gba", 0xDDF400, 0x000000C + +gUnk_08DDF40C:: @ 08DDF40C + .incbin "baserom.gba", 0xDDF40C, 0x0000017 + +gUnk_08DDF423:: @ 08DDF423 + .incbin "baserom.gba", 0xDDF423, 0x0000019 + +gUnk_08DDF43C:: @ 08DDF43C + .incbin "baserom.gba", 0xDDF43C, 0x0000010 + +gUnk_08DDF44C:: @ 08DDF44C + .incbin "baserom.gba", 0xDDF44C, 0x0000038 + +gUnk_08DDF484:: @ 08DDF484 + .incbin "baserom.gba", 0xDDF484, 0x000000C + +gUnk_08DDF490:: @ 08DDF490 + .incbin "baserom.gba", 0xDDF490, 0x00000EC + +gUnk_08DDF57C:: @ 08DDF57C + .incbin "baserom.gba", 0xDDF57C, 0x000000C + +gUnk_08DDF588:: @ 08DDF588 + .incbin "baserom.gba", 0xDDF588, 0x0000010 + +gUnk_08DDF598:: @ 08DDF598 + .incbin "baserom.gba", 0xDDF598, 0x000000C + +gUnk_08DDF5A4:: @ 08DDF5A4 + .incbin "baserom.gba", 0xDDF5A4, 0x0000064 + +gUnk_08DDF608:: @ 08DDF608 + .incbin "baserom.gba", 0xDDF608, 0x000000C + +gUnk_08DDF614:: @ 08DDF614 + .incbin "baserom.gba", 0xDDF614, 0x000001C + +gUnk_08DDF630:: @ 08DDF630 + .incbin "baserom.gba", 0xDDF630, 0x000000C + +gUnk_08DDF63C:: @ 08DDF63C + .incbin "baserom.gba", 0xDDF63C, 0x0000010 + +gUnk_08DDF64C:: @ 08DDF64C + .incbin "baserom.gba", 0xDDF64C, 0x000000C + +gUnk_08DDF658:: @ 08DDF658 + .incbin "baserom.gba", 0xDDF658, 0x0000010 + +gUnk_08DDF668:: @ 08DDF668 + .incbin "baserom.gba", 0xDDF668, 0x000000C + +gUnk_08DDF674:: @ 08DDF674 + .incbin "baserom.gba", 0xDDF674, 0x0000010 + +gUnk_08DDF684:: @ 08DDF684 + .incbin "baserom.gba", 0xDDF684, 0x000000C + +gUnk_08DDF690:: @ 08DDF690 + .incbin "baserom.gba", 0xDDF690, 0x0000010 + +gUnk_08DDF6A0:: @ 08DDF6A0 + .incbin "baserom.gba", 0xDDF6A0, 0x000000C + +gUnk_08DDF6AC:: @ 08DDF6AC + .incbin "baserom.gba", 0xDDF6AC, 0x0000010 + +gUnk_08DDF6BC:: @ 08DDF6BC + .incbin "baserom.gba", 0xDDF6BC, 0x000000C + +gUnk_08DDF6C8:: @ 08DDF6C8 + .incbin "baserom.gba", 0xDDF6C8, 0x0000010 + +gUnk_08DDF6D8:: @ 08DDF6D8 + .incbin "baserom.gba", 0xDDF6D8, 0x000000C + +gUnk_08DDF6E4:: @ 08DDF6E4 + .incbin "baserom.gba", 0xDDF6E4, 0x0000010 + +gUnk_08DDF6F4:: @ 08DDF6F4 + .incbin "baserom.gba", 0xDDF6F4, 0x000000C + +gUnk_08DDF700:: @ 08DDF700 + .incbin "baserom.gba", 0xDDF700, 0x0000010 + +gUnk_08DDF710:: @ 08DDF710 + .incbin "baserom.gba", 0xDDF710, 0x000000C + +gUnk_08DDF71C:: @ 08DDF71C + .incbin "baserom.gba", 0xDDF71C, 0x0000010 + +gUnk_08DDF72C:: @ 08DDF72C + .incbin "baserom.gba", 0xDDF72C, 0x000000C + +gUnk_08DDF738:: @ 08DDF738 + .incbin "baserom.gba", 0xDDF738, 0x0000010 + +gUnk_08DDF748:: @ 08DDF748 + .incbin "baserom.gba", 0xDDF748, 0x000000C + +gUnk_08DDF754:: @ 08DDF754 + .incbin "baserom.gba", 0xDDF754, 0x0000010 + +gUnk_08DDF764:: @ 08DDF764 + .incbin "baserom.gba", 0xDDF764, 0x000000C + +gUnk_08DDF770:: @ 08DDF770 + .incbin "baserom.gba", 0xDDF770, 0x0000010 + +gUnk_08DDF780:: @ 08DDF780 + .incbin "baserom.gba", 0xDDF780, 0x000000C + +gUnk_08DDF78C:: @ 08DDF78C + .incbin "baserom.gba", 0xDDF78C, 0x0000010 + +gUnk_08DDF79C:: @ 08DDF79C + .incbin "baserom.gba", 0xDDF79C, 0x000000C + +gUnk_08DDF7A8:: @ 08DDF7A8 + .incbin "baserom.gba", 0xDDF7A8, 0x0000010 + +gUnk_08DDF7B8:: @ 08DDF7B8 + .incbin "baserom.gba", 0xDDF7B8, 0x000000C + +gUnk_08DDF7C4:: @ 08DDF7C4 + .incbin "baserom.gba", 0xDDF7C4, 0x0000010 + +gUnk_08DDF7D4:: @ 08DDF7D4 + .incbin "baserom.gba", 0xDDF7D4, 0x000000C + +gUnk_08DDF7E0:: @ 08DDF7E0 + .incbin "baserom.gba", 0xDDF7E0, 0x0000010 + +gUnk_08DDF7F0:: @ 08DDF7F0 + .incbin "baserom.gba", 0xDDF7F0, 0x000000C + +gUnk_08DDF7FC:: @ 08DDF7FC + .incbin "baserom.gba", 0xDDF7FC, 0x0000010 + +gUnk_08DDF80C:: @ 08DDF80C + .incbin "baserom.gba", 0xDDF80C, 0x000000C + +gUnk_08DDF818:: @ 08DDF818 + .incbin "baserom.gba", 0xDDF818, 0x0000010 + +gUnk_08DDF828:: @ 08DDF828 + .incbin "baserom.gba", 0xDDF828, 0x000000C + +gUnk_08DDF834:: @ 08DDF834 + .incbin "baserom.gba", 0xDDF834, 0x0000010 + +gUnk_08DDF844:: @ 08DDF844 + .incbin "baserom.gba", 0xDDF844, 0x000000C + +gUnk_08DDF850:: @ 08DDF850 + .incbin "baserom.gba", 0xDDF850, 0x0000010 + +gUnk_08DDF860:: @ 08DDF860 + .incbin "baserom.gba", 0xDDF860, 0x000000C + +gUnk_08DDF86C:: @ 08DDF86C + .incbin "baserom.gba", 0xDDF86C, 0x0000010 + +gUnk_08DDF87C:: @ 08DDF87C + .incbin "baserom.gba", 0xDDF87C, 0x000000C + +gUnk_08DDF888:: @ 08DDF888 + .incbin "baserom.gba", 0xDDF888, 0x0000010 + +gUnk_08DDF898:: @ 08DDF898 + .incbin "baserom.gba", 0xDDF898, 0x000000C + +gUnk_08DDF8A4:: @ 08DDF8A4 + .incbin "baserom.gba", 0xDDF8A4, 0x0000010 + +gUnk_08DDF8B4:: @ 08DDF8B4 + .incbin "baserom.gba", 0xDDF8B4, 0x000000C + +gUnk_08DDF8C0:: @ 08DDF8C0 + .incbin "baserom.gba", 0xDDF8C0, 0x0000014 + +gUnk_08DDF8D4:: @ 08DDF8D4 + .incbin "baserom.gba", 0xDDF8D4, 0x000000C + +gUnk_08DDF8E0:: @ 08DDF8E0 + .incbin "baserom.gba", 0xDDF8E0, 0x0000010 + +gUnk_08DDF8F0:: @ 08DDF8F0 + .incbin "baserom.gba", 0xDDF8F0, 0x000000C + +gUnk_08DDF8FC:: @ 08DDF8FC + .incbin "baserom.gba", 0xDDF8FC, 0x0000010 + +gUnk_08DDF90C:: @ 08DDF90C + .incbin "baserom.gba", 0xDDF90C, 0x000000C + +gUnk_08DDF918:: @ 08DDF918 + .incbin "baserom.gba", 0xDDF918, 0x0000010 + +gUnk_08DDF928:: @ 08DDF928 + .incbin "baserom.gba", 0xDDF928, 0x000000C + +gUnk_08DDF934:: @ 08DDF934 + .incbin "baserom.gba", 0xDDF934, 0x0000010 + +gUnk_08DDF944:: @ 08DDF944 + .incbin "baserom.gba", 0xDDF944, 0x000000C + +gUnk_08DDF950:: @ 08DDF950 + .incbin "baserom.gba", 0xDDF950, 0x0000010 + +gUnk_08DDF960:: @ 08DDF960 + .incbin "baserom.gba", 0xDDF960, 0x000000C + +gUnk_08DDF96C:: @ 08DDF96C + .incbin "baserom.gba", 0xDDF96C, 0x0000010 + +gUnk_08DDF97C:: @ 08DDF97C + .incbin "baserom.gba", 0xDDF97C, 0x000000C + +gUnk_08DDF988:: @ 08DDF988 + .incbin "baserom.gba", 0xDDF988, 0x0000010 + +gUnk_08DDF998:: @ 08DDF998 + .incbin "baserom.gba", 0xDDF998, 0x000000C + +gUnk_08DDF9A4:: @ 08DDF9A4 + .incbin "baserom.gba", 0xDDF9A4, 0x0000010 + +gUnk_08DDF9B4:: @ 08DDF9B4 + .incbin "baserom.gba", 0xDDF9B4, 0x000000C + +gUnk_08DDF9C0:: @ 08DDF9C0 + .incbin "baserom.gba", 0xDDF9C0, 0x0000010 + +gUnk_08DDF9D0:: @ 08DDF9D0 + .incbin "baserom.gba", 0xDDF9D0, 0x000000C + +gUnk_08DDF9DC:: @ 08DDF9DC + .incbin "baserom.gba", 0xDDF9DC, 0x0000010 + +gUnk_08DDF9EC:: @ 08DDF9EC + .incbin "baserom.gba", 0xDDF9EC, 0x000000C + +gUnk_08DDF9F8:: @ 08DDF9F8 + .incbin "baserom.gba", 0xDDF9F8, 0x0000014 + +gUnk_08DDFA0C:: @ 08DDFA0C + .incbin "baserom.gba", 0xDDFA0C, 0x000000C + +gUnk_08DDFA18:: @ 08DDFA18 + .incbin "baserom.gba", 0xDDFA18, 0x0000010 + +gUnk_08DDFA28:: @ 08DDFA28 + .incbin "baserom.gba", 0xDDFA28, 0x000000C + +gUnk_08DDFA34:: @ 08DDFA34 + .incbin "baserom.gba", 0xDDFA34, 0x0000010 + +gUnk_08DDFA44:: @ 08DDFA44 + .incbin "baserom.gba", 0xDDFA44, 0x000000C + +gUnk_08DDFA50:: @ 08DDFA50 + .incbin "baserom.gba", 0xDDFA50, 0x0000010 + +gUnk_08DDFA60:: @ 08DDFA60 + .incbin "baserom.gba", 0xDDFA60, 0x000000C + +gUnk_08DDFA6C:: @ 08DDFA6C + .incbin "baserom.gba", 0xDDFA6C, 0x0000010 + +gUnk_08DDFA7C:: @ 08DDFA7C + .incbin "baserom.gba", 0xDDFA7C, 0x000000C + +gUnk_08DDFA88:: @ 08DDFA88 + .incbin "baserom.gba", 0xDDFA88, 0x0000010 + +gUnk_08DDFA98:: @ 08DDFA98 + .incbin "baserom.gba", 0xDDFA98, 0x000000C + +gUnk_08DDFAA4:: @ 08DDFAA4 + .incbin "baserom.gba", 0xDDFAA4, 0x0000010 + +gUnk_08DDFAB4:: @ 08DDFAB4 + .incbin "baserom.gba", 0xDDFAB4, 0x000000C + +gUnk_08DDFAC0:: @ 08DDFAC0 + .incbin "baserom.gba", 0xDDFAC0, 0x0000010 + +gUnk_08DDFAD0:: @ 08DDFAD0 + .incbin "baserom.gba", 0xDDFAD0, 0x000000C + +gUnk_08DDFADC:: @ 08DDFADC + .incbin "baserom.gba", 0xDDFADC, 0x0000010 + +gUnk_08DDFAEC:: @ 08DDFAEC + .incbin "baserom.gba", 0xDDFAEC, 0x000000C + +gUnk_08DDFAF8:: @ 08DDFAF8 + .incbin "baserom.gba", 0xDDFAF8, 0x0000005 + +gUnk_08DDFAFD:: @ 08DDFAFD + .incbin "baserom.gba", 0xDDFAFD, 0x000000B + +gUnk_08DDFB08:: @ 08DDFB08 + .incbin "baserom.gba", 0xDDFB08, 0x000000C + +gUnk_08DDFB14:: @ 08DDFB14 + .incbin "baserom.gba", 0xDDFB14, 0x0000010 + +gUnk_08DDFB24:: @ 08DDFB24 + .incbin "baserom.gba", 0xDDFB24, 0x000000C + +gUnk_08DDFB30:: @ 08DDFB30 + .incbin "baserom.gba", 0xDDFB30, 0x0000010 + +gUnk_08DDFB40:: @ 08DDFB40 + .incbin "baserom.gba", 0xDDFB40, 0x000000C + +gUnk_08DDFB4C:: @ 08DDFB4C + .incbin "baserom.gba", 0xDDFB4C, 0x0000010 + +gUnk_08DDFB5C:: @ 08DDFB5C + .incbin "baserom.gba", 0xDDFB5C, 0x000000C + +gUnk_08DDFB68:: @ 08DDFB68 + .incbin "baserom.gba", 0xDDFB68, 0x0000010 + +gUnk_08DDFB78:: @ 08DDFB78 + .incbin "baserom.gba", 0xDDFB78, 0x000000C + +gUnk_08DDFB84:: @ 08DDFB84 + .incbin "baserom.gba", 0xDDFB84, 0x0000010 + +gUnk_08DDFB94:: @ 08DDFB94 + .incbin "baserom.gba", 0xDDFB94, 0x000000C + +gUnk_08DDFBA0:: @ 08DDFBA0 + .incbin "baserom.gba", 0xDDFBA0, 0x0000010 + +gUnk_08DDFBB0:: @ 08DDFBB0 + .incbin "baserom.gba", 0xDDFBB0, 0x000000C + +gUnk_08DDFBBC:: @ 08DDFBBC + .incbin "baserom.gba", 0xDDFBBC, 0x0000010 + +gUnk_08DDFBCC:: @ 08DDFBCC + .incbin "baserom.gba", 0xDDFBCC, 0x000000C + +gUnk_08DDFBD8:: @ 08DDFBD8 + .incbin "baserom.gba", 0xDDFBD8, 0x0000010 + +gUnk_08DDFBE8:: @ 08DDFBE8 + .incbin "baserom.gba", 0xDDFBE8, 0x000000C + +gUnk_08DDFBF4:: @ 08DDFBF4 + .incbin "baserom.gba", 0xDDFBF4, 0x0000010 + +gUnk_08DDFC04:: @ 08DDFC04 + .incbin "baserom.gba", 0xDDFC04, 0x000000C + +gUnk_08DDFC10:: @ 08DDFC10 + .incbin "baserom.gba", 0xDDFC10, 0x0000010 + +gUnk_08DDFC20:: @ 08DDFC20 + .incbin "baserom.gba", 0xDDFC20, 0x000000C + +gUnk_08DDFC2C:: @ 08DDFC2C + .incbin "baserom.gba", 0xDDFC2C, 0x0000010 + +gUnk_08DDFC3C:: @ 08DDFC3C + .incbin "baserom.gba", 0xDDFC3C, 0x000000C + +gUnk_08DDFC48:: @ 08DDFC48 + .incbin "baserom.gba", 0xDDFC48, 0x0000010 + +gUnk_08DDFC58:: @ 08DDFC58 + .incbin "baserom.gba", 0xDDFC58, 0x000000C + +gUnk_08DDFC64:: @ 08DDFC64 + .incbin "baserom.gba", 0xDDFC64, 0x0000010 + +gUnk_08DDFC74:: @ 08DDFC74 + .incbin "baserom.gba", 0xDDFC74, 0x000000C + +gUnk_08DDFC80:: @ 08DDFC80 + .incbin "baserom.gba", 0xDDFC80, 0x0000010 + +gUnk_08DDFC90:: @ 08DDFC90 + .incbin "baserom.gba", 0xDDFC90, 0x000000C + +gUnk_08DDFC9C:: @ 08DDFC9C + .incbin "baserom.gba", 0xDDFC9C, 0x0000010 + +gUnk_08DDFCAC:: @ 08DDFCAC + .incbin "baserom.gba", 0xDDFCAC, 0x000000C + +gUnk_08DDFCB8:: @ 08DDFCB8 + .incbin "baserom.gba", 0xDDFCB8, 0x0000010 + +gUnk_08DDFCC8:: @ 08DDFCC8 + .incbin "baserom.gba", 0xDDFCC8, 0x000000C + +gUnk_08DDFCD4:: @ 08DDFCD4 + .incbin "baserom.gba", 0xDDFCD4, 0x0000010 + +gUnk_08DDFCE4:: @ 08DDFCE4 + .incbin "baserom.gba", 0xDDFCE4, 0x000000C + +gUnk_08DDFCF0:: @ 08DDFCF0 + .incbin "baserom.gba", 0xDDFCF0, 0x0000010 + +gUnk_08DDFD00:: @ 08DDFD00 + .incbin "baserom.gba", 0xDDFD00, 0x000000C + +gUnk_08DDFD0C:: @ 08DDFD0C + .incbin "baserom.gba", 0xDDFD0C, 0x0000010 + +gUnk_08DDFD1C:: @ 08DDFD1C + .incbin "baserom.gba", 0xDDFD1C, 0x000000C + +gUnk_08DDFD28:: @ 08DDFD28 + .incbin "baserom.gba", 0xDDFD28, 0x0000010 + +gUnk_08DDFD38:: @ 08DDFD38 + .incbin "baserom.gba", 0xDDFD38, 0x000000C + +gUnk_08DDFD44:: @ 08DDFD44 + .incbin "baserom.gba", 0xDDFD44, 0x0000010 + +gUnk_08DDFD54:: @ 08DDFD54 + .incbin "baserom.gba", 0xDDFD54, 0x000000C + +gUnk_08DDFD60:: @ 08DDFD60 + .incbin "baserom.gba", 0xDDFD60, 0x0000010 + +gUnk_08DDFD70:: @ 08DDFD70 + .incbin "baserom.gba", 0xDDFD70, 0x000000C + +gUnk_08DDFD7C:: @ 08DDFD7C + .incbin "baserom.gba", 0xDDFD7C, 0x0000010 + +gUnk_08DDFD8C:: @ 08DDFD8C + .incbin "baserom.gba", 0xDDFD8C, 0x000000C + +gUnk_08DDFD98:: @ 08DDFD98 + .incbin "baserom.gba", 0xDDFD98, 0x0000010 + +gUnk_08DDFDA8:: @ 08DDFDA8 + .incbin "baserom.gba", 0xDDFDA8, 0x000000C + +gUnk_08DDFDB4:: @ 08DDFDB4 + .incbin "baserom.gba", 0xDDFDB4, 0x0000020 + +gUnk_08DDFDD4:: @ 08DDFDD4 + .incbin "baserom.gba", 0xDDFDD4, 0x000000C + +gUnk_08DDFDE0:: @ 08DDFDE0 + .incbin "baserom.gba", 0xDDFDE0, 0x0000034 + +gUnk_08DDFE14:: @ 08DDFE14 + .incbin "baserom.gba", 0xDDFE14, 0x000000C + +gUnk_08DDFE20:: @ 08DDFE20 + .incbin "baserom.gba", 0xDDFE20, 0x0000010 + +gUnk_08DDFE30:: @ 08DDFE30 + .incbin "baserom.gba", 0xDDFE30, 0x000000C + +gUnk_08DDFE3C:: @ 08DDFE3C + .incbin "baserom.gba", 0xDDFE3C, 0x0000010 + +gUnk_08DDFE4C:: @ 08DDFE4C + .incbin "baserom.gba", 0xDDFE4C, 0x000000C + +gUnk_08DDFE58:: @ 08DDFE58 + .incbin "baserom.gba", 0xDDFE58, 0x0000010 + +gUnk_08DDFE68:: @ 08DDFE68 + .incbin "baserom.gba", 0xDDFE68, 0x000000C + +gUnk_08DDFE74:: @ 08DDFE74 + .incbin "baserom.gba", 0xDDFE74, 0x0000010 + +gUnk_08DDFE84:: @ 08DDFE84 + .incbin "baserom.gba", 0xDDFE84, 0x000000C + +gUnk_08DDFE90:: @ 08DDFE90 + .incbin "baserom.gba", 0xDDFE90, 0x0000010 + +gUnk_08DDFEA0:: @ 08DDFEA0 + .incbin "baserom.gba", 0xDDFEA0, 0x000000C + +gUnk_08DDFEAC:: @ 08DDFEAC + .incbin "baserom.gba", 0xDDFEAC, 0x0000010 + +gUnk_08DDFEBC:: @ 08DDFEBC + .incbin "baserom.gba", 0xDDFEBC, 0x000000C + +gUnk_08DDFEC8:: @ 08DDFEC8 + .incbin "baserom.gba", 0xDDFEC8, 0x0000010 + +gUnk_08DDFED8:: @ 08DDFED8 + .incbin "baserom.gba", 0xDDFED8, 0x000000C + +gUnk_08DDFEE4:: @ 08DDFEE4 + .incbin "baserom.gba", 0xDDFEE4, 0x0000010 + +gUnk_08DDFEF4:: @ 08DDFEF4 + .incbin "baserom.gba", 0xDDFEF4, 0x000000C + +gUnk_08DDFF00:: @ 08DDFF00 + .incbin "baserom.gba", 0xDDFF00, 0x0000010 + +gUnk_08DDFF10:: @ 08DDFF10 + .incbin "baserom.gba", 0xDDFF10, 0x000000C + +gUnk_08DDFF1C:: @ 08DDFF1C + .incbin "baserom.gba", 0xDDFF1C, 0x0000010 + +gUnk_08DDFF2C:: @ 08DDFF2C + .incbin "baserom.gba", 0xDDFF2C, 0x000000C + +gUnk_08DDFF38:: @ 08DDFF38 + .incbin "baserom.gba", 0xDDFF38, 0x0000010 + +gUnk_08DDFF48:: @ 08DDFF48 + .incbin "baserom.gba", 0xDDFF48, 0x000000C + +gUnk_08DDFF54:: @ 08DDFF54 + .incbin "baserom.gba", 0xDDFF54, 0x0000010 + +gUnk_08DDFF64:: @ 08DDFF64 + .incbin "baserom.gba", 0xDDFF64, 0x000000C + +gUnk_08DDFF70:: @ 08DDFF70 + .incbin "baserom.gba", 0xDDFF70, 0x0000010 + +gUnk_08DDFF80:: @ 08DDFF80 + .incbin "baserom.gba", 0xDDFF80, 0x000000C + +gUnk_08DDFF8C:: @ 08DDFF8C + .incbin "baserom.gba", 0xDDFF8C, 0x0000010 + +gUnk_08DDFF9C:: @ 08DDFF9C + .incbin "baserom.gba", 0xDDFF9C, 0x000000C + +gUnk_08DDFFA8:: @ 08DDFFA8 + .incbin "baserom.gba", 0xDDFFA8, 0x0000010 + +gUnk_08DDFFB8:: @ 08DDFFB8 + .incbin "baserom.gba", 0xDDFFB8, 0x000000C + +gUnk_08DDFFC4:: @ 08DDFFC4 + .incbin "baserom.gba", 0xDDFFC4, 0x0000010 + +gUnk_08DDFFD4:: @ 08DDFFD4 + .incbin "baserom.gba", 0xDDFFD4, 0x000000C + +gUnk_08DDFFE0:: @ 08DDFFE0 + .incbin "baserom.gba", 0xDDFFE0, 0x0000010 + +gUnk_08DDFFF0:: @ 08DDFFF0 + .incbin "baserom.gba", 0xDDFFF0, 0x000000C + +gUnk_08DDFFFC:: @ 08DDFFFC + .incbin "baserom.gba", 0xDDFFFC, 0x0000010 + +gUnk_08DE000C:: @ 08DE000C + .incbin "baserom.gba", 0xDE000C, 0x000000C + +gUnk_08DE0018:: @ 08DE0018 + .incbin "baserom.gba", 0xDE0018, 0x0000010 + +gUnk_08DE0028:: @ 08DE0028 + .incbin "baserom.gba", 0xDE0028, 0x000000C + +gUnk_08DE0034:: @ 08DE0034 + .incbin "baserom.gba", 0xDE0034, 0x0000014 + +gUnk_08DE0048:: @ 08DE0048 + .incbin "baserom.gba", 0xDE0048, 0x000000C + +gUnk_08DE0054:: @ 08DE0054 + .incbin "baserom.gba", 0xDE0054, 0x0000010 + +gUnk_08DE0064:: @ 08DE0064 + .incbin "baserom.gba", 0xDE0064, 0x000000C + +gUnk_08DE0070:: @ 08DE0070 + .incbin "baserom.gba", 0xDE0070, 0x0000010 + +gUnk_08DE0080:: @ 08DE0080 + .incbin "baserom.gba", 0xDE0080, 0x000000C + +gUnk_08DE008C:: @ 08DE008C + .incbin "baserom.gba", 0xDE008C, 0x0000014 + +gUnk_08DE00A0:: @ 08DE00A0 + .incbin "baserom.gba", 0xDE00A0, 0x000000C + +gUnk_08DE00AC:: @ 08DE00AC + .incbin "baserom.gba", 0xDE00AC, 0x0000010 + +gUnk_08DE00BC:: @ 08DE00BC + .incbin "baserom.gba", 0xDE00BC, 0x000000C + +gUnk_08DE00C8:: @ 08DE00C8 + .incbin "baserom.gba", 0xDE00C8, 0x0000024 + +gUnk_08DE00EC:: @ 08DE00EC + .incbin "baserom.gba", 0xDE00EC, 0x000000C + +gUnk_08DE00F8:: @ 08DE00F8 + .incbin "baserom.gba", 0xDE00F8, 0x0000010 + +gUnk_08DE0108:: @ 08DE0108 + .incbin "baserom.gba", 0xDE0108, 0x0000030 + +gUnk_08DE0138:: @ 08DE0138 + .incbin "baserom.gba", 0xDE0138, 0x000000C + +gUnk_08DE0144:: @ 08DE0144 + .incbin "baserom.gba", 0xDE0144, 0x000003C + +gUnk_08DE0180:: @ 08DE0180 + .incbin "baserom.gba", 0xDE0180, 0x000000C + +gUnk_08DE018C:: @ 08DE018C + .incbin "baserom.gba", 0xDE018C, 0x0000028 + +gUnk_08DE01B4:: @ 08DE01B4 + .incbin "baserom.gba", 0xDE01B4, 0x000000C + +gUnk_08DE01C0:: @ 08DE01C0 + .incbin "baserom.gba", 0xDE01C0, 0x0000034 + +gUnk_08DE01F4:: @ 08DE01F4 + .incbin "baserom.gba", 0xDE01F4, 0x000000C + +gUnk_08DE0200:: @ 08DE0200 + .incbin "baserom.gba", 0xDE0200, 0x0000044 + +gUnk_08DE0244:: @ 08DE0244 + .incbin "baserom.gba", 0xDE0244, 0x000000C + +gUnk_08DE0250:: @ 08DE0250 + .incbin "baserom.gba", 0xDE0250, 0x000002B + +gUnk_08DE027B:: @ 08DE027B + .incbin "baserom.gba", 0xDE027B, 0x0000011 + +gUnk_08DE028C:: @ 08DE028C + .incbin "baserom.gba", 0xDE028C, 0x0000010 + +gUnk_08DE029C:: @ 08DE029C + .incbin "baserom.gba", 0xDE029C, 0x0000010 + +gUnk_08DE02AC:: @ 08DE02AC + .incbin "baserom.gba", 0xDE02AC, 0x000000C + +gUnk_08DE02B8:: @ 08DE02B8 + .incbin "baserom.gba", 0xDE02B8, 0x0000010 + +gUnk_08DE02C8:: @ 08DE02C8 + .incbin "baserom.gba", 0xDE02C8, 0x000000C + +gUnk_08DE02D4:: @ 08DE02D4 + .incbin "baserom.gba", 0xDE02D4, 0x0000018 + +gUnk_08DE02EC:: @ 08DE02EC + .incbin "baserom.gba", 0xDE02EC, 0x000000C + +gUnk_08DE02F8:: @ 08DE02F8 + .incbin "baserom.gba", 0xDE02F8, 0x0000018 + +gUnk_08DE0310:: @ 08DE0310 + .incbin "baserom.gba", 0xDE0310, 0x000000C + +gUnk_08DE031C:: @ 08DE031C + .incbin "baserom.gba", 0xDE031C, 0x0000035 + +gUnk_08DE0351:: @ 08DE0351 + .incbin "baserom.gba", 0xDE0351, 0x0000037 + +gUnk_08DE0388:: @ 08DE0388 + .incbin "baserom.gba", 0xDE0388, 0x0000010 + +gUnk_08DE0398:: @ 08DE0398 + .incbin "baserom.gba", 0xDE0398, 0x000002C + +gUnk_08DE03C4:: @ 08DE03C4 + .incbin "baserom.gba", 0xDE03C4, 0x000000C + +gUnk_08DE03D0:: @ 08DE03D0 + .incbin "baserom.gba", 0xDE03D0, 0x000004C + +gUnk_08DE041C:: @ 08DE041C + .incbin "baserom.gba", 0xDE041C, 0x000000C + +gUnk_08DE0428:: @ 08DE0428 + .incbin "baserom.gba", 0xDE0428, 0x00000BC + +gUnk_08DE04E4:: @ 08DE04E4 + .incbin "baserom.gba", 0xDE04E4, 0x000000C + +gUnk_08DE04F0:: @ 08DE04F0 + .incbin "baserom.gba", 0xDE04F0, 0x0000044 + +gUnk_08DE0534:: @ 08DE0534 + .incbin "baserom.gba", 0xDE0534, 0x000000C + +gUnk_08DE0540:: @ 08DE0540 + .incbin "baserom.gba", 0xDE0540, 0x0000044 + +gUnk_08DE0584:: @ 08DE0584 + .incbin "baserom.gba", 0xDE0584, 0x000000C + +gUnk_08DE0590:: @ 08DE0590 + .incbin "baserom.gba", 0xDE0590, 0x0000029 + +gUnk_08DE05B9:: @ 08DE05B9 + .incbin "baserom.gba", 0xDE05B9, 0x0000023 + +gUnk_08DE05DC:: @ 08DE05DC + .incbin "baserom.gba", 0xDE05DC, 0x0000010 + +gUnk_08DE05EC:: @ 08DE05EC + .incbin "baserom.gba", 0xDE05EC, 0x0000048 + +gUnk_08DE0634:: @ 08DE0634 + .incbin "baserom.gba", 0xDE0634, 0x000000C + +gUnk_08DE0640:: @ 08DE0640 + .incbin "baserom.gba", 0xDE0640, 0x0000029 + +gUnk_08DE0669:: @ 08DE0669 + .incbin "baserom.gba", 0xDE0669, 0x0000023 + +gUnk_08DE068C:: @ 08DE068C + .incbin "baserom.gba", 0xDE068C, 0x0000010 + +gUnk_08DE069C:: @ 08DE069C + .incbin "baserom.gba", 0xDE069C, 0x0000048 + +gUnk_08DE06E4:: @ 08DE06E4 + .incbin "baserom.gba", 0xDE06E4, 0x000000C + +gUnk_08DE06F0:: @ 08DE06F0 + .incbin "baserom.gba", 0xDE06F0, 0x0000017 + +gUnk_08DE0707:: @ 08DE0707 + .incbin "baserom.gba", 0xDE0707, 0x0000021 + +gUnk_08DE0728:: @ 08DE0728 + .incbin "baserom.gba", 0xDE0728, 0x0000010 + +gUnk_08DE0738:: @ 08DE0738 + .incbin "baserom.gba", 0xDE0738, 0x000004C + +gUnk_08DE0784:: @ 08DE0784 + .incbin "baserom.gba", 0xDE0784, 0x000000C + +gUnk_08DE0790:: @ 08DE0790 + .incbin "baserom.gba", 0xDE0790, 0x0000028 + +gUnk_08DE07B8:: @ 08DE07B8 + .incbin "baserom.gba", 0xDE07B8, 0x000001C + +gUnk_08DE07D4:: @ 08DE07D4 + .incbin "baserom.gba", 0xDE07D4, 0x0000010 + +gUnk_08DE07E4:: @ 08DE07E4 + .incbin "baserom.gba", 0xDE07E4, 0x0000030 + +gUnk_08DE0814:: @ 08DE0814 + .incbin "baserom.gba", 0xDE0814, 0x000002C + +gUnk_08DE0840:: @ 08DE0840 + .incbin "baserom.gba", 0xDE0840, 0x0000010 + +gUnk_08DE0850:: @ 08DE0850 + .incbin "baserom.gba", 0xDE0850, 0x0000010 + +gUnk_08DE0860:: @ 08DE0860 + .incbin "baserom.gba", 0xDE0860, 0x000000C + +gUnk_08DE086C:: @ 08DE086C + .incbin "baserom.gba", 0xDE086C, 0x0000010 + +gUnk_08DE087C:: @ 08DE087C + .incbin "baserom.gba", 0xDE087C, 0x000000C + +gUnk_08DE0888:: @ 08DE0888 + .incbin "baserom.gba", 0xDE0888, 0x0000010 + +gUnk_08DE0898:: @ 08DE0898 + .incbin "baserom.gba", 0xDE0898, 0x000000C + +gUnk_08DE08A4:: @ 08DE08A4 + .incbin "baserom.gba", 0xDE08A4, 0x0000020 + +gUnk_08DE08C4:: @ 08DE08C4 + .incbin "baserom.gba", 0xDE08C4, 0x000000C + +gUnk_08DE08D0:: @ 08DE08D0 + .incbin "baserom.gba", 0xDE08D0, 0x000002C + +gUnk_08DE08FC:: @ 08DE08FC + .incbin "baserom.gba", 0xDE08FC, 0x000000C + +gUnk_08DE0908:: @ 08DE0908 + .incbin "baserom.gba", 0xDE0908, 0x0000010 + +gUnk_08DE0918:: @ 08DE0918 + .incbin "baserom.gba", 0xDE0918, 0x00000A8 + +gUnk_08DE09C0:: @ 08DE09C0 + .incbin "baserom.gba", 0xDE09C0, 0x0000743 + +gUnk_08DE1103:: @ 08DE1103 + .incbin "baserom.gba", 0xDE1103, 0x0000282 + +gUnk_08DE1385:: @ 08DE1385 + .incbin "baserom.gba", 0xDE1385, 0x0000185 + +gUnk_08DE150A:: @ 08DE150A + .incbin "baserom.gba", 0xDE150A, 0x0000185 + +gUnk_08DE168F:: @ 08DE168F + .incbin "baserom.gba", 0xDE168F, 0x0000185 + +gUnk_08DE1814:: @ 08DE1814 + .incbin "baserom.gba", 0xDE1814, 0x0000188 + +gUnk_08DE199C:: @ 08DE199C + .incbin "baserom.gba", 0xDE199C, 0x0000020 + +gUnk_08DE19BC:: @ 08DE19BC + .incbin "baserom.gba", 0xDE19BC, 0x0000014 + +gUnk_08DE19D0:: @ 08DE19D0 + .incbin "baserom.gba", 0xDE19D0, 0x000000C + +gUnk_08DE19DC:: @ 08DE19DC + .incbin "baserom.gba", 0xDE19DC, 0x0000024 + +gUnk_08DE1A00:: @ 08DE1A00 + .incbin "baserom.gba", 0xDE1A00, 0x000000C + +gUnk_08DE1A0C:: @ 08DE1A0C + .incbin "baserom.gba", 0xDE1A0C, 0x0000020 + +gUnk_08DE1A2C:: @ 08DE1A2C + .incbin "baserom.gba", 0xDE1A2C, 0x000000C + +gUnk_08DE1A38:: @ 08DE1A38 + .incbin "baserom.gba", 0xDE1A38, 0x0000043 + +gUnk_08DE1A7B:: @ 08DE1A7B + .incbin "baserom.gba", 0xDE1A7B, 0x0000041 + +gUnk_08DE1ABC:: @ 08DE1ABC + .incbin "baserom.gba", 0xDE1ABC, 0x000001B + +gUnk_08DE1AD7:: @ 08DE1AD7 + .incbin "baserom.gba", 0xDE1AD7, 0x0000020 + +gUnk_08DE1AF7:: @ 08DE1AF7 + .incbin "baserom.gba", 0xDE1AF7, 0x0000041 + +gUnk_08DE1B38:: @ 08DE1B38 + .incbin "baserom.gba", 0xDE1B38, 0x0000041 + +gUnk_08DE1B79:: @ 08DE1B79 + .incbin "baserom.gba", 0xDE1B79, 0x000001B + +gUnk_08DE1B94:: @ 08DE1B94 + .incbin "baserom.gba", 0xDE1B94, 0x0000043 + +gUnk_08DE1BD7:: @ 08DE1BD7 + .incbin "baserom.gba", 0xDE1BD7, 0x0000129 + +gUnk_08DE1D00:: @ 08DE1D00 + .incbin "baserom.gba", 0xDE1D00, 0x0000129 + +gUnk_08DE1E29:: @ 08DE1E29 + .incbin "baserom.gba", 0xDE1E29, 0x0000129 + +gUnk_08DE1F52:: @ 08DE1F52 + .incbin "baserom.gba", 0xDE1F52, 0x000012A + +gUnk_08DE207C:: @ 08DE207C + .incbin "baserom.gba", 0xDE207C, 0x0000038 + +gUnk_08DE20B4:: @ 08DE20B4 + .incbin "baserom.gba", 0xDE20B4, 0x0000014 + +gUnk_08DE20C8:: @ 08DE20C8 + .incbin "baserom.gba", 0xDE20C8, 0x000000C + +gUnk_08DE20D4:: @ 08DE20D4 + .incbin "baserom.gba", 0xDE20D4, 0x0000028 + +gUnk_08DE20FC:: @ 08DE20FC + .incbin "baserom.gba", 0xDE20FC, 0x000000C + +gUnk_08DE2108:: @ 08DE2108 + .incbin "baserom.gba", 0xDE2108, 0x000001C + +gUnk_08DE2124:: @ 08DE2124 + .incbin "baserom.gba", 0xDE2124, 0x000000C + +gUnk_08DE2130:: @ 08DE2130 + .incbin "baserom.gba", 0xDE2130, 0x0000044 + +gUnk_08DE2174:: @ 08DE2174 + .incbin "baserom.gba", 0xDE2174, 0x000000C + +gUnk_08DE2180:: @ 08DE2180 + .incbin "baserom.gba", 0xDE2180, 0x000002C + +gUnk_08DE21AC:: @ 08DE21AC + .incbin "baserom.gba", 0xDE21AC, 0x000000C + +gUnk_08DE21B8:: @ 08DE21B8 + .incbin "baserom.gba", 0xDE21B8, 0x0000030 + +gUnk_08DE21E8:: @ 08DE21E8 + .incbin "baserom.gba", 0xDE21E8, 0x000000C + +gUnk_08DE21F4:: @ 08DE21F4 + .incbin "baserom.gba", 0xDE21F4, 0x0000038 + +gUnk_08DE222C:: @ 08DE222C + .incbin "baserom.gba", 0xDE222C, 0x000000C + +gUnk_08DE2238:: @ 08DE2238 + .incbin "baserom.gba", 0xDE2238, 0x0000028 + +gUnk_08DE2260:: @ 08DE2260 + .incbin "baserom.gba", 0xDE2260, 0x000000C + +gUnk_08DE226C:: @ 08DE226C + .incbin "baserom.gba", 0xDE226C, 0x00000CC + +gUnk_08DE2338:: @ 08DE2338 + .incbin "baserom.gba", 0xDE2338, 0x000000C + +gUnk_08DE2344:: @ 08DE2344 + .incbin "baserom.gba", 0xDE2344, 0x0000063 + +gUnk_08DE23A7:: @ 08DE23A7 + .incbin "baserom.gba", 0xDE23A7, 0x0000061 + +gUnk_08DE2408:: @ 08DE2408 + .incbin "baserom.gba", 0xDE2408, 0x0000010 + +gUnk_08DE2418:: @ 08DE2418 + .incbin "baserom.gba", 0xDE2418, 0x0000060 + +gUnk_08DE2478:: @ 08DE2478 + .incbin "baserom.gba", 0xDE2478, 0x000000C + +gUnk_08DE2484:: @ 08DE2484 + .incbin "baserom.gba", 0xDE2484, 0x0000038 + +gUnk_08DE24BC:: @ 08DE24BC + .incbin "baserom.gba", 0xDE24BC, 0x000000C + +gUnk_08DE24C8:: @ 08DE24C8 + .incbin "baserom.gba", 0xDE24C8, 0x0000038 + +gUnk_08DE2500:: @ 08DE2500 + .incbin "baserom.gba", 0xDE2500, 0x000000C + +gUnk_08DE250C:: @ 08DE250C + .incbin "baserom.gba", 0xDE250C, 0x0000010 + +gUnk_08DE251C:: @ 08DE251C + .incbin "baserom.gba", 0xDE251C, 0x000000C + +gUnk_08DE2528:: @ 08DE2528 + .incbin "baserom.gba", 0xDE2528, 0x000000F + +gUnk_08DE2537:: @ 08DE2537 + .incbin "baserom.gba", 0xDE2537, 0x000000D + +gUnk_08DE2544:: @ 08DE2544 + .incbin "baserom.gba", 0xDE2544, 0x0000010 + +gUnk_08DE2554:: @ 08DE2554 + .incbin "baserom.gba", 0xDE2554, 0x000001B + +gUnk_08DE256F:: @ 08DE256F + .incbin "baserom.gba", 0xDE256F, 0x0000015 + +gUnk_08DE2584:: @ 08DE2584 + .incbin "baserom.gba", 0xDE2584, 0x0000010 + +gUnk_08DE2594:: @ 08DE2594 + .incbin "baserom.gba", 0xDE2594, 0x0000010 + +gUnk_08DE25A4:: @ 08DE25A4 + .incbin "baserom.gba", 0xDE25A4, 0x000000C + +gUnk_08DE25B0:: @ 08DE25B0 + .incbin "baserom.gba", 0xDE25B0, 0x0000020 + +gUnk_08DE25D0:: @ 08DE25D0 + .incbin "baserom.gba", 0xDE25D0, 0x000000C + +gUnk_08DE25DC:: @ 08DE25DC + .incbin "baserom.gba", 0xDE25DC, 0x0000014 + +gUnk_08DE25F0:: @ 08DE25F0 + .incbin "baserom.gba", 0xDE25F0, 0x000000C + +gUnk_08DE25FC:: @ 08DE25FC + .incbin "baserom.gba", 0xDE25FC, 0x0000050 + +gUnk_08DE264C:: @ 08DE264C + .incbin "baserom.gba", 0xDE264C, 0x0000030 + +gUnk_08DE267C:: @ 08DE267C + .incbin "baserom.gba", 0xDE267C, 0x0000010 + +gUnk_08DE268C:: @ 08DE268C + .incbin "baserom.gba", 0xDE268C, 0x0000010 + +gUnk_08DE269C:: @ 08DE269C + .incbin "baserom.gba", 0xDE269C, 0x000000C + +gUnk_08DE26A8:: @ 08DE26A8 + .incbin "baserom.gba", 0xDE26A8, 0x000001C + +gUnk_08DE26C4:: @ 08DE26C4 + .incbin "baserom.gba", 0xDE26C4, 0x000000C + +gUnk_08DE26D0:: @ 08DE26D0 + .incbin "baserom.gba", 0xDE26D0, 0x0000014 + +gUnk_08DE26E4:: @ 08DE26E4 + .incbin "baserom.gba", 0xDE26E4, 0x000000C + +gUnk_08DE26F0:: @ 08DE26F0 + .incbin "baserom.gba", 0xDE26F0, 0x0000004 + +gUnk_08DE26F4:: @ 08DE26F4 + .incbin "baserom.gba", 0xDE26F4, 0x0000024 + +gUnk_08DE2718:: @ 08DE2718 + .incbin "baserom.gba", 0xDE2718, 0x000000C + +gUnk_08DE2724:: @ 08DE2724 + .incbin "baserom.gba", 0xDE2724, 0x0000010 + +gUnk_08DE2734:: @ 08DE2734 + .incbin "baserom.gba", 0xDE2734, 0x000000C + +gUnk_08DE2740:: @ 08DE2740 + .incbin "baserom.gba", 0xDE2740, 0x0000038 + +gUnk_08DE2778:: @ 08DE2778 + .incbin "baserom.gba", 0xDE2778, 0x000000C + +gUnk_08DE2784:: @ 08DE2784 + .incbin "baserom.gba", 0xDE2784, 0x000003C + +gUnk_08DE27C0:: @ 08DE27C0 + .incbin "baserom.gba", 0xDE27C0, 0x000000C + +gUnk_08DE27CC:: @ 08DE27CC + .incbin "baserom.gba", 0xDE27CC, 0x0000010 + +gUnk_08DE27DC:: @ 08DE27DC + .incbin "baserom.gba", 0xDE27DC, 0x000000C + +gUnk_08DE27E8:: @ 08DE27E8 + .incbin "baserom.gba", 0xDE27E8, 0x0000032 + +gUnk_08DE281A:: @ 08DE281A + .incbin "baserom.gba", 0xDE281A, 0x0000062 + +gUnk_08DE287C:: @ 08DE287C + .incbin "baserom.gba", 0xDE287C, 0x0000010 + +gUnk_08DE288C:: @ 08DE288C + .incbin "baserom.gba", 0xDE288C, 0x000004B + +gUnk_08DE28D7:: @ 08DE28D7 + .incbin "baserom.gba", 0xDE28D7, 0x000002B + +gUnk_08DE2902:: @ 08DE2902 + .incbin "baserom.gba", 0xDE2902, 0x0000042 + +gUnk_08DE2944:: @ 08DE2944 + .incbin "baserom.gba", 0xDE2944, 0x0000010 + +gUnk_08DE2954:: @ 08DE2954 + .incbin "baserom.gba", 0xDE2954, 0x000008A + +gUnk_08DE29DE:: @ 08DE29DE + .incbin "baserom.gba", 0xDE29DE, 0x0000074 + +gUnk_08DE2A52:: @ 08DE2A52 + .incbin "baserom.gba", 0xDE2A52, 0x0000016 + +gUnk_08DE2A68:: @ 08DE2A68 + .incbin "baserom.gba", 0xDE2A68, 0x0000010 + +gUnk_08DE2A78:: @ 08DE2A78 + .incbin "baserom.gba", 0xDE2A78, 0x0000070 + +gUnk_08DE2AE8:: @ 08DE2AE8 + .incbin "baserom.gba", 0xDE2AE8, 0x000000C + +gUnk_08DE2AF4:: @ 08DE2AF4 + .incbin "baserom.gba", 0xDE2AF4, 0x0000028 + +gUnk_08DE2B1C:: @ 08DE2B1C + .incbin "baserom.gba", 0xDE2B1C, 0x000000C + +gUnk_08DE2B28:: @ 08DE2B28 + .incbin "baserom.gba", 0xDE2B28, 0x0000014 + +gUnk_08DE2B3C:: @ 08DE2B3C + .incbin "baserom.gba", 0xDE2B3C, 0x000000C + +gUnk_08DE2B48:: @ 08DE2B48 + .incbin "baserom.gba", 0xDE2B48, 0x0000010 + +gUnk_08DE2B58:: @ 08DE2B58 + .incbin "baserom.gba", 0xDE2B58, 0x000000C + +gUnk_08DE2B64:: @ 08DE2B64 + .incbin "baserom.gba", 0xDE2B64, 0x0000014 + +gUnk_08DE2B78:: @ 08DE2B78 + .incbin "baserom.gba", 0xDE2B78, 0x000000C + +gUnk_08DE2B84:: @ 08DE2B84 + .incbin "baserom.gba", 0xDE2B84, 0x0000018 + +gUnk_08DE2B9C:: @ 08DE2B9C + .incbin "baserom.gba", 0xDE2B9C, 0x000000C + +gUnk_08DE2BA8:: @ 08DE2BA8 + .incbin "baserom.gba", 0xDE2BA8, 0x0000028 + +gUnk_08DE2BD0:: @ 08DE2BD0 + .incbin "baserom.gba", 0xDE2BD0, 0x000000C + +gUnk_08DE2BDC:: @ 08DE2BDC + .incbin "baserom.gba", 0xDE2BDC, 0x0000018 + +gUnk_08DE2BF4:: @ 08DE2BF4 + .incbin "baserom.gba", 0xDE2BF4, 0x000000C + +gUnk_08DE2C00:: @ 08DE2C00 + .incbin "baserom.gba", 0xDE2C00, 0x0000010 + +gUnk_08DE2C10:: @ 08DE2C10 + .incbin "baserom.gba", 0xDE2C10, 0x000000C + +gUnk_08DE2C1C:: @ 08DE2C1C + .incbin "baserom.gba", 0xDE2C1C, 0x0000010 + +gUnk_08DE2C2C:: @ 08DE2C2C + .incbin "baserom.gba", 0xDE2C2C, 0x000000C + +gUnk_08DE2C38:: @ 08DE2C38 + .incbin "baserom.gba", 0xDE2C38, 0x0000010 + +gUnk_08DE2C48:: @ 08DE2C48 + .incbin "baserom.gba", 0xDE2C48, 0x000000C + +gUnk_08DE2C54:: @ 08DE2C54 + .incbin "baserom.gba", 0xDE2C54, 0x0000010 + +gUnk_08DE2C64:: @ 08DE2C64 + .incbin "baserom.gba", 0xDE2C64, 0x000000C + +gUnk_08DE2C70:: @ 08DE2C70 + .incbin "baserom.gba", 0xDE2C70, 0x000001C + +gUnk_08DE2C8C:: @ 08DE2C8C + .incbin "baserom.gba", 0xDE2C8C, 0x000000C + +gUnk_08DE2C98:: @ 08DE2C98 + .incbin "baserom.gba", 0xDE2C98, 0x0000064 + +gUnk_08DE2CFC:: @ 08DE2CFC + .incbin "baserom.gba", 0xDE2CFC, 0x000000C + +gUnk_08DE2D08:: @ 08DE2D08 + .incbin "baserom.gba", 0xDE2D08, 0x0000010 + +gUnk_08DE2D18:: @ 08DE2D18 + .incbin "baserom.gba", 0xDE2D18, 0x000000C + +gUnk_08DE2D24:: @ 08DE2D24 + .incbin "baserom.gba", 0xDE2D24, 0x0000010 + +gUnk_08DE2D34:: @ 08DE2D34 + .incbin "baserom.gba", 0xDE2D34, 0x000000C + +gUnk_08DE2D40:: @ 08DE2D40 + .incbin "baserom.gba", 0xDE2D40, 0x0000010 + +gUnk_08DE2D50:: @ 08DE2D50 + .incbin "baserom.gba", 0xDE2D50, 0x000000C + +gUnk_08DE2D5C:: @ 08DE2D5C + .incbin "baserom.gba", 0xDE2D5C, 0x0000010 + +gUnk_08DE2D6C:: @ 08DE2D6C + .incbin "baserom.gba", 0xDE2D6C, 0x000000C + +gUnk_08DE2D78:: @ 08DE2D78 + .incbin "baserom.gba", 0xDE2D78, 0x0000010 + +gUnk_08DE2D88:: @ 08DE2D88 + .incbin "baserom.gba", 0xDE2D88, 0x000000C + +gUnk_08DE2D94:: @ 08DE2D94 + .incbin "baserom.gba", 0xDE2D94, 0x0000010 + +gUnk_08DE2DA4:: @ 08DE2DA4 + .incbin "baserom.gba", 0xDE2DA4, 0x000000C + +gUnk_08DE2DB0:: @ 08DE2DB0 + .incbin "baserom.gba", 0xDE2DB0, 0x0000010 + +gUnk_08DE2DC0:: @ 08DE2DC0 + .incbin "baserom.gba", 0xDE2DC0, 0x000000C + +gUnk_08DE2DCC:: @ 08DE2DCC + .incbin "baserom.gba", 0xDE2DCC, 0x0000010 + +gUnk_08DE2DDC:: @ 08DE2DDC + .incbin "baserom.gba", 0xDE2DDC, 0x000000C + +gUnk_08DE2DE8:: @ 08DE2DE8 + .incbin "baserom.gba", 0xDE2DE8, 0x000008C + +gUnk_08DE2E74:: @ 08DE2E74 + .incbin "baserom.gba", 0xDE2E74, 0x000000C + +gUnk_08DE2E80:: @ 08DE2E80 + .incbin "baserom.gba", 0xDE2E80, 0x000005C + +gUnk_08DE2EDC:: @ 08DE2EDC + .incbin "baserom.gba", 0xDE2EDC, 0x000000C + +gUnk_08DE2EE8:: @ 08DE2EE8 + .incbin "baserom.gba", 0xDE2EE8, 0x0000061 + +gUnk_08DE2F49:: @ 08DE2F49 + .incbin "baserom.gba", 0xDE2F49, 0x000004F + +gUnk_08DE2F98:: @ 08DE2F98 + .incbin "baserom.gba", 0xDE2F98, 0x0000010 + +gUnk_08DE2FA8:: @ 08DE2FA8 + .incbin "baserom.gba", 0xDE2FA8, 0x0000116 + +gUnk_08DE30BE:: @ 08DE30BE + .incbin "baserom.gba", 0xDE30BE, 0x0000042 + +gUnk_08DE3100:: @ 08DE3100 + .incbin "baserom.gba", 0xDE3100, 0x000000C + +gUnk_08DE310C:: @ 08DE310C + .incbin "baserom.gba", 0xDE310C, 0x0000010 + +gUnk_08DE311C:: @ 08DE311C + .incbin "baserom.gba", 0xDE311C, 0x000000C + +gUnk_08DE3128:: @ 08DE3128 + .incbin "baserom.gba", 0xDE3128, 0x000002C + +gUnk_08DE3154:: @ 08DE3154 + .incbin "baserom.gba", 0xDE3154, 0x000000C + +gUnk_08DE3160:: @ 08DE3160 + .incbin "baserom.gba", 0xDE3160, 0x0000028 + +gUnk_08DE3188:: @ 08DE3188 + .incbin "baserom.gba", 0xDE3188, 0x000000C + +gUnk_08DE3194:: @ 08DE3194 + .incbin "baserom.gba", 0xDE3194, 0x0000030 + +gUnk_08DE31C4:: @ 08DE31C4 + .incbin "baserom.gba", 0xDE31C4, 0x000000C + +gUnk_08DE31D0:: @ 08DE31D0 + .incbin "baserom.gba", 0xDE31D0, 0x0000069 + +gUnk_08DE3239:: @ 08DE3239 + .incbin "baserom.gba", 0xDE3239, 0x000006B + +gUnk_08DE32A4:: @ 08DE32A4 + .incbin "baserom.gba", 0xDE32A4, 0x0000010 + +gUnk_08DE32B4:: @ 08DE32B4 + .incbin "baserom.gba", 0xDE32B4, 0x00000D0 + +gUnk_08DE3384:: @ 08DE3384 + .incbin "baserom.gba", 0xDE3384, 0x0000030 + +gUnk_08DE33B4:: @ 08DE33B4 + .incbin "baserom.gba", 0xDE33B4, 0x0000010 + +gUnk_08DE33C4:: @ 08DE33C4 + .incbin "baserom.gba", 0xDE33C4, 0x0000024 + +gUnk_08DE33E8:: @ 08DE33E8 + .incbin "baserom.gba", 0xDE33E8, 0x000000C + +gUnk_08DE33F4:: @ 08DE33F4 + .incbin "baserom.gba", 0xDE33F4, 0x00000B0 + +gUnk_08DE34A4:: @ 08DE34A4 + .incbin "baserom.gba", 0xDE34A4, 0x000000C + +gUnk_08DE34B0:: @ 08DE34B0 + .incbin "baserom.gba", 0xDE34B0, 0x0000034 + +gUnk_08DE34E4:: @ 08DE34E4 + .incbin "baserom.gba", 0xDE34E4, 0x000000C + +gUnk_08DE34F0:: @ 08DE34F0 + .incbin "baserom.gba", 0xDE34F0, 0x0000048 + +gUnk_08DE3538:: @ 08DE3538 + .incbin "baserom.gba", 0xDE3538, 0x000002C + +gUnk_08DE3564:: @ 08DE3564 + .incbin "baserom.gba", 0xDE3564, 0x0000010 + +gUnk_08DE3574:: @ 08DE3574 + .incbin "baserom.gba", 0xDE3574, 0x0000014 + +gUnk_08DE3588:: @ 08DE3588 + .incbin "baserom.gba", 0xDE3588, 0x000000C + +gUnk_08DE3594:: @ 08DE3594 + .incbin "baserom.gba", 0xDE3594, 0x0000018 + +gUnk_08DE35AC:: @ 08DE35AC + .incbin "baserom.gba", 0xDE35AC, 0x000000C + +gUnk_08DE35B8:: @ 08DE35B8 + .incbin "baserom.gba", 0xDE35B8, 0x0000060 + +gUnk_08DE3618:: @ 08DE3618 + .incbin "baserom.gba", 0xDE3618, 0x000000C + +gUnk_08DE3624:: @ 08DE3624 + .incbin "baserom.gba", 0xDE3624, 0x0000020 + +gUnk_08DE3644:: @ 08DE3644 + .incbin "baserom.gba", 0xDE3644, 0x0000030 + +gUnk_08DE3674:: @ 08DE3674 + .incbin "baserom.gba", 0xDE3674, 0x0000010 + +gUnk_08DE3684:: @ 08DE3684 + .incbin "baserom.gba", 0xDE3684, 0x000002C + +gUnk_08DE36B0:: @ 08DE36B0 + .incbin "baserom.gba", 0xDE36B0, 0x000000C + +gUnk_08DE36BC:: @ 08DE36BC + .incbin "baserom.gba", 0xDE36BC, 0x0000086 + +gUnk_08DE3742:: @ 08DE3742 + .incbin "baserom.gba", 0xDE3742, 0x000008A + +gUnk_08DE37CC:: @ 08DE37CC + .incbin "baserom.gba", 0xDE37CC, 0x0000010 + +gUnk_08DE37DC:: @ 08DE37DC + .incbin "baserom.gba", 0xDE37DC, 0x0000030 + +gUnk_08DE380C:: @ 08DE380C + .incbin "baserom.gba", 0xDE380C, 0x000000C + +gUnk_08DE3818:: @ 08DE3818 + .incbin "baserom.gba", 0xDE3818, 0x0000038 + +gUnk_08DE3850:: @ 08DE3850 + .incbin "baserom.gba", 0xDE3850, 0x000000C + +gUnk_08DE385C:: @ 08DE385C + .incbin "baserom.gba", 0xDE385C, 0x000002C + +gUnk_08DE3888:: @ 08DE3888 + .incbin "baserom.gba", 0xDE3888, 0x000000C + +gUnk_08DE3894:: @ 08DE3894 + .incbin "baserom.gba", 0xDE3894, 0x000005C + +gUnk_08DE38F0:: @ 08DE38F0 + .incbin "baserom.gba", 0xDE38F0, 0x000000C + +gUnk_08DE38FC:: @ 08DE38FC + .incbin "baserom.gba", 0xDE38FC, 0x000001C + +gUnk_08DE3918:: @ 08DE3918 + .incbin "baserom.gba", 0xDE3918, 0x000000C + +gUnk_08DE3924:: @ 08DE3924 + .incbin "baserom.gba", 0xDE3924, 0x0000044 + +gUnk_08DE3968:: @ 08DE3968 + .incbin "baserom.gba", 0xDE3968, 0x000000C + +gUnk_08DE3974:: @ 08DE3974 + .incbin "baserom.gba", 0xDE3974, 0x0000040 + +gUnk_08DE39B4:: @ 08DE39B4 + .incbin "baserom.gba", 0xDE39B4, 0x000000C + +gUnk_08DE39C0:: @ 08DE39C0 + .incbin "baserom.gba", 0xDE39C0, 0x0000026 + +gUnk_08DE39E6:: @ 08DE39E6 + .incbin "baserom.gba", 0xDE39E6, 0x000002A + +gUnk_08DE3A10:: @ 08DE3A10 + .incbin "baserom.gba", 0xDE3A10, 0x0000010 + +gUnk_08DE3A20:: @ 08DE3A20 + .incbin "baserom.gba", 0xDE3A20, 0x0000050 + +gUnk_08DE3A70:: @ 08DE3A70 + .incbin "baserom.gba", 0xDE3A70, 0x000000C + +gUnk_08DE3A7C:: @ 08DE3A7C + .incbin "baserom.gba", 0xDE3A7C, 0x0000024 + +gUnk_08DE3AA0:: @ 08DE3AA0 + .incbin "baserom.gba", 0xDE3AA0, 0x000000C + +gUnk_08DE3AAC:: @ 08DE3AAC + .incbin "baserom.gba", 0xDE3AAC, 0x0000027 + +gUnk_08DE3AD3:: @ 08DE3AD3 + .incbin "baserom.gba", 0xDE3AD3, 0x0000025 + +gUnk_08DE3AF8:: @ 08DE3AF8 + .incbin "baserom.gba", 0xDE3AF8, 0x0000010 + +gUnk_08DE3B08:: @ 08DE3B08 + .incbin "baserom.gba", 0xDE3B08, 0x0000028 + +gUnk_08DE3B30:: @ 08DE3B30 + .incbin "baserom.gba", 0xDE3B30, 0x000000C + +gUnk_08DE3B3C:: @ 08DE3B3C + .incbin "baserom.gba", 0xDE3B3C, 0x0000030 + +gUnk_08DE3B6C:: @ 08DE3B6C + .incbin "baserom.gba", 0xDE3B6C, 0x000000C + +gUnk_08DE3B78:: @ 08DE3B78 + .incbin "baserom.gba", 0xDE3B78, 0x000005C + +gUnk_08DE3BD4:: @ 08DE3BD4 + .incbin "baserom.gba", 0xDE3BD4, 0x000000C + +gUnk_08DE3BE0:: @ 08DE3BE0 + .incbin "baserom.gba", 0xDE3BE0, 0x0000010 + +gUnk_08DE3BF0:: @ 08DE3BF0 + .incbin "baserom.gba", 0xDE3BF0, 0x000000C + +gUnk_08DE3BFC:: @ 08DE3BFC + .incbin "baserom.gba", 0xDE3BFC, 0x0000018 + +gUnk_08DE3C14:: @ 08DE3C14 + .incbin "baserom.gba", 0xDE3C14, 0x000000C + +gUnk_08DE3C20:: @ 08DE3C20 + .incbin "baserom.gba", 0xDE3C20, 0x0000020 + +gUnk_08DE3C40:: @ 08DE3C40 + .incbin "baserom.gba", 0xDE3C40, 0x0000024 + +gUnk_08DE3C64:: @ 08DE3C64 + .incbin "baserom.gba", 0xDE3C64, 0x0000010 + +gUnk_08DE3C74:: @ 08DE3C74 + .incbin "baserom.gba", 0xDE3C74, 0x000004C + +gUnk_08DE3CC0:: @ 08DE3CC0 + .incbin "baserom.gba", 0xDE3CC0, 0x000000C + +gUnk_08DE3CCC:: @ 08DE3CCC + .incbin "baserom.gba", 0xDE3CCC, 0x0000068 + +gUnk_08DE3D34:: @ 08DE3D34 + .incbin "baserom.gba", 0xDE3D34, 0x000000C + +gUnk_08DE3D40:: @ 08DE3D40 + .incbin "baserom.gba", 0xDE3D40, 0x0000070 + +gUnk_08DE3DB0:: @ 08DE3DB0 + .incbin "baserom.gba", 0xDE3DB0, 0x000000C + +gUnk_08DE3DBC:: @ 08DE3DBC + .incbin "baserom.gba", 0xDE3DBC, 0x0000078 + +gUnk_08DE3E34:: @ 08DE3E34 + .incbin "baserom.gba", 0xDE3E34, 0x000000C + +gUnk_08DE3E40:: @ 08DE3E40 + .incbin "baserom.gba", 0xDE3E40, 0x000001C + +gUnk_08DE3E5C:: @ 08DE3E5C + .incbin "baserom.gba", 0xDE3E5C, 0x000000C + +gUnk_08DE3E68:: @ 08DE3E68 + .incbin "baserom.gba", 0xDE3E68, 0x000003C + +gUnk_08DE3EA4:: @ 08DE3EA4 + .incbin "baserom.gba", 0xDE3EA4, 0x000000C + +gUnk_08DE3EB0:: @ 08DE3EB0 + .incbin "baserom.gba", 0xDE3EB0, 0x0000030 + +gUnk_08DE3EE0:: @ 08DE3EE0 + .incbin "baserom.gba", 0xDE3EE0, 0x000000C + +gUnk_08DE3EEC:: @ 08DE3EEC + .incbin "baserom.gba", 0xDE3EEC, 0x0000030 + +gUnk_08DE3F1C:: @ 08DE3F1C + .incbin "baserom.gba", 0xDE3F1C, 0x000000C + +gUnk_08DE3F28:: @ 08DE3F28 + .incbin "baserom.gba", 0xDE3F28, 0x0000034 + +gUnk_08DE3F5C:: @ 08DE3F5C + .incbin "baserom.gba", 0xDE3F5C, 0x000000C + +gUnk_08DE3F68:: @ 08DE3F68 + .incbin "baserom.gba", 0xDE3F68, 0x000004C + +gUnk_08DE3FB4:: @ 08DE3FB4 + .incbin "baserom.gba", 0xDE3FB4, 0x0000074 + +gUnk_08DE4028:: @ 08DE4028 + .incbin "baserom.gba", 0xDE4028, 0x0000010 + +gUnk_08DE4038:: @ 08DE4038 + .incbin "baserom.gba", 0xDE4038, 0x0000034 + +gUnk_08DE406C:: @ 08DE406C + .incbin "baserom.gba", 0xDE406C, 0x000000C + +gUnk_08DE4078:: @ 08DE4078 + .incbin "baserom.gba", 0xDE4078, 0x0000098 + +gUnk_08DE4110:: @ 08DE4110 + .incbin "baserom.gba", 0xDE4110, 0x000000C + +gUnk_08DE411C:: @ 08DE411C + .incbin "baserom.gba", 0xDE411C, 0x0000060 + +gUnk_08DE417C:: @ 08DE417C + .incbin "baserom.gba", 0xDE417C, 0x000000C + +gUnk_08DE4188:: @ 08DE4188 + .incbin "baserom.gba", 0xDE4188, 0x0000010 + +gUnk_08DE4198:: @ 08DE4198 + .incbin "baserom.gba", 0xDE4198, 0x000000C + +gUnk_08DE41A4:: @ 08DE41A4 + .incbin "baserom.gba", 0xDE41A4, 0x000002C + +gUnk_08DE41D0:: @ 08DE41D0 + .incbin "baserom.gba", 0xDE41D0, 0x000000C + +gUnk_08DE41DC:: @ 08DE41DC + .incbin "baserom.gba", 0xDE41DC, 0x0000018 + +gUnk_08DE41F4:: @ 08DE41F4 + .incbin "baserom.gba", 0xDE41F4, 0x0000018 + +gUnk_08DE420C:: @ 08DE420C + .incbin "baserom.gba", 0xDE420C, 0x0000010 + +gUnk_08DE421C:: @ 08DE421C + .incbin "baserom.gba", 0xDE421C, 0x0000028 + +gUnk_08DE4244:: @ 08DE4244 + .incbin "baserom.gba", 0xDE4244, 0x000000C + +gUnk_08DE4250:: @ 08DE4250 + .incbin "baserom.gba", 0xDE4250, 0x0000028 + +gUnk_08DE4278:: @ 08DE4278 + .incbin "baserom.gba", 0xDE4278, 0x000000C + +gUnk_08DE4284:: @ 08DE4284 + .incbin "baserom.gba", 0xDE4284, 0x0000020 + +gUnk_08DE42A4:: @ 08DE42A4 + .incbin "baserom.gba", 0xDE42A4, 0x000001C + +gUnk_08DE42C0:: @ 08DE42C0 + .incbin "baserom.gba", 0xDE42C0, 0x0000010 + +gUnk_08DE42D0:: @ 08DE42D0 + .incbin "baserom.gba", 0xDE42D0, 0x000005B + +gUnk_08DE432B:: @ 08DE432B + .incbin "baserom.gba", 0xDE432B, 0x0000055 + +gUnk_08DE4380:: @ 08DE4380 + .incbin "baserom.gba", 0xDE4380, 0x0000010 + +gUnk_08DE4390:: @ 08DE4390 + .incbin "baserom.gba", 0xDE4390, 0x0000044 + +gUnk_08DE43D4:: @ 08DE43D4 + .incbin "baserom.gba", 0xDE43D4, 0x000000C + +gUnk_08DE43E0:: @ 08DE43E0 + .incbin "baserom.gba", 0xDE43E0, 0x0000044 + +gUnk_08DE4424:: @ 08DE4424 + .incbin "baserom.gba", 0xDE4424, 0x000000C + +gUnk_08DE4430:: @ 08DE4430 + .incbin "baserom.gba", 0xDE4430, 0x0000056 + +gUnk_08DE4486:: @ 08DE4486 + .incbin "baserom.gba", 0xDE4486, 0x000003E + +gUnk_08DE44C4:: @ 08DE44C4 + .incbin "baserom.gba", 0xDE44C4, 0x0000010 + +gUnk_08DE44D4:: @ 08DE44D4 + .incbin "baserom.gba", 0xDE44D4, 0x0000010 + +gUnk_08DE44E4:: @ 08DE44E4 + .incbin "baserom.gba", 0xDE44E4, 0x000000C + +gUnk_08DE44F0:: @ 08DE44F0 + .incbin "baserom.gba", 0xDE44F0, 0x0000010 + +gUnk_08DE4500:: @ 08DE4500 + .incbin "baserom.gba", 0xDE4500, 0x000000C + +gUnk_08DE450C:: @ 08DE450C + .incbin "baserom.gba", 0xDE450C, 0x0000010 + +gUnk_08DE451C:: @ 08DE451C + .incbin "baserom.gba", 0xDE451C, 0x000000C + +gUnk_08DE4528:: @ 08DE4528 + .incbin "baserom.gba", 0xDE4528, 0x0000010 + +gUnk_08DE4538:: @ 08DE4538 + .incbin "baserom.gba", 0xDE4538, 0x000000C + +gUnk_08DE4544:: @ 08DE4544 + .incbin "baserom.gba", 0xDE4544, 0x0000010 + +gUnk_08DE4554:: @ 08DE4554 + .incbin "baserom.gba", 0xDE4554, 0x000000C + +gUnk_08DE4560:: @ 08DE4560 + .incbin "baserom.gba", 0xDE4560, 0x0000014 + +gUnk_08DE4574:: @ 08DE4574 + .incbin "baserom.gba", 0xDE4574, 0x000000C + +gUnk_08DE4580:: @ 08DE4580 + .incbin "baserom.gba", 0xDE4580, 0x0000014 + +gUnk_08DE4594:: @ 08DE4594 + .incbin "baserom.gba", 0xDE4594, 0x000000C + +gUnk_08DE45A0:: @ 08DE45A0 + .incbin "baserom.gba", 0xDE45A0, 0x0000022 + +gUnk_08DE45C2:: @ 08DE45C2 + .incbin "baserom.gba", 0xDE45C2, 0x000002E + +gUnk_08DE45F0:: @ 08DE45F0 + .incbin "baserom.gba", 0xDE45F0, 0x0000010 + +gUnk_08DE4600:: @ 08DE4600 + .incbin "baserom.gba", 0xDE4600, 0x000006B + +gUnk_08DE466B:: @ 08DE466B + .incbin "baserom.gba", 0xDE466B, 0x000003D + +gUnk_08DE46A8:: @ 08DE46A8 + .incbin "baserom.gba", 0xDE46A8, 0x0000010 + +gUnk_08DE46B8:: @ 08DE46B8 + .incbin "baserom.gba", 0xDE46B8, 0x0000010 + +gUnk_08DE46C8:: @ 08DE46C8 + .incbin "baserom.gba", 0xDE46C8, 0x000000C + +gUnk_08DE46D4:: @ 08DE46D4 + .incbin "baserom.gba", 0xDE46D4, 0x000003D + +gUnk_08DE4711:: @ 08DE4711 + .incbin "baserom.gba", 0xDE4711, 0x000004B + +gUnk_08DE475C:: @ 08DE475C + .incbin "baserom.gba", 0xDE475C, 0x0000010 + +gUnk_08DE476C:: @ 08DE476C + .incbin "baserom.gba", 0xDE476C, 0x0000024 + +gUnk_08DE4790:: @ 08DE4790 + .incbin "baserom.gba", 0xDE4790, 0x000000C + +gUnk_08DE479C:: @ 08DE479C + .incbin "baserom.gba", 0xDE479C, 0x0000048 + +gUnk_08DE47E4:: @ 08DE47E4 + .incbin "baserom.gba", 0xDE47E4, 0x000000C + +gUnk_08DE47F0:: @ 08DE47F0 + .incbin "baserom.gba", 0xDE47F0, 0x0000048 + +gUnk_08DE4838:: @ 08DE4838 + .incbin "baserom.gba", 0xDE4838, 0x000000C + +gUnk_08DE4844:: @ 08DE4844 + .incbin "baserom.gba", 0xDE4844, 0x0000034 + +gUnk_08DE4878:: @ 08DE4878 + .incbin "baserom.gba", 0xDE4878, 0x000000C + +gUnk_08DE4884:: @ 08DE4884 + .incbin "baserom.gba", 0xDE4884, 0x000001F + +gUnk_08DE48A3:: @ 08DE48A3 + .incbin "baserom.gba", 0xDE48A3, 0x0000019 + +gUnk_08DE48BC:: @ 08DE48BC + .incbin "baserom.gba", 0xDE48BC, 0x0000010 + +gUnk_08DE48CC:: @ 08DE48CC + .incbin "baserom.gba", 0xDE48CC, 0x000003D + +gUnk_08DE4909:: @ 08DE4909 + .incbin "baserom.gba", 0xDE4909, 0x0000027 + +gUnk_08DE4930:: @ 08DE4930 + .incbin "baserom.gba", 0xDE4930, 0x0000010 + +gUnk_08DE4940:: @ 08DE4940 + .incbin "baserom.gba", 0xDE4940, 0x000001B + +gUnk_08DE495B:: @ 08DE495B + .incbin "baserom.gba", 0xDE495B, 0x000000D + +gUnk_08DE4968:: @ 08DE4968 + .incbin "baserom.gba", 0xDE4968, 0x0000010 + +gUnk_08DE4978:: @ 08DE4978 + .incbin "baserom.gba", 0xDE4978, 0x0000034 + +gUnk_08DE49AC:: @ 08DE49AC + .incbin "baserom.gba", 0xDE49AC, 0x000000C + +gUnk_08DE49B8:: @ 08DE49B8 + .incbin "baserom.gba", 0xDE49B8, 0x0000018 + +gUnk_08DE49D0:: @ 08DE49D0 + .incbin "baserom.gba", 0xDE49D0, 0x000000C + +gUnk_08DE49DC:: @ 08DE49DC + .incbin "baserom.gba", 0xDE49DC, 0x0000030 + +gUnk_08DE4A0C:: @ 08DE4A0C + .incbin "baserom.gba", 0xDE4A0C, 0x000000C + +gUnk_08DE4A18:: @ 08DE4A18 + .incbin "baserom.gba", 0xDE4A18, 0x0000010 + +gUnk_08DE4A28:: @ 08DE4A28 + .incbin "baserom.gba", 0xDE4A28, 0x000000C + +gUnk_08DE4A34:: @ 08DE4A34 + .incbin "baserom.gba", 0xDE4A34, 0x000002C + +gUnk_08DE4A60:: @ 08DE4A60 + .incbin "baserom.gba", 0xDE4A60, 0x000000C + +gUnk_08DE4A6C:: @ 08DE4A6C + .incbin "baserom.gba", 0xDE4A6C, 0x0000038 + +gUnk_08DE4AA4:: @ 08DE4AA4 + .incbin "baserom.gba", 0xDE4AA4, 0x0000028 + +gUnk_08DE4ACC:: @ 08DE4ACC + .incbin "baserom.gba", 0xDE4ACC, 0x0000010 + +gUnk_08DE4ADC:: @ 08DE4ADC + .incbin "baserom.gba", 0xDE4ADC, 0x0000024 + +gUnk_08DE4B00:: @ 08DE4B00 + .incbin "baserom.gba", 0xDE4B00, 0x000000C + +gUnk_08DE4B0C:: @ 08DE4B0C + .incbin "baserom.gba", 0xDE4B0C, 0x000001E + +gUnk_08DE4B2A:: @ 08DE4B2A + .incbin "baserom.gba", 0xDE4B2A, 0x0000026 + +gUnk_08DE4B50:: @ 08DE4B50 + .incbin "baserom.gba", 0xDE4B50, 0x0000010 + +gUnk_08DE4B60:: @ 08DE4B60 + .incbin "baserom.gba", 0xDE4B60, 0x0000044 + +gUnk_08DE4BA4:: @ 08DE4BA4 + .incbin "baserom.gba", 0xDE4BA4, 0x0000048 + +gUnk_08DE4BEC:: @ 08DE4BEC + .incbin "baserom.gba", 0xDE4BEC, 0x0000010 + +gUnk_08DE4BFC:: @ 08DE4BFC + .incbin "baserom.gba", 0xDE4BFC, 0x00000D0 + +gUnk_08DE4CCC:: @ 08DE4CCC + .incbin "baserom.gba", 0xDE4CCC, 0x000000C + +gUnk_08DE4CD8:: @ 08DE4CD8 + .incbin "baserom.gba", 0xDE4CD8, 0x000004C + +gUnk_08DE4D24:: @ 08DE4D24 + .incbin "baserom.gba", 0xDE4D24, 0x000000C + +gUnk_08DE4D30:: @ 08DE4D30 + .incbin "baserom.gba", 0xDE4D30, 0x0000134 + +gUnk_08DE4E64:: @ 08DE4E64 + .incbin "baserom.gba", 0xDE4E64, 0x000000C + +gUnk_08DE4E70:: @ 08DE4E70 + .incbin "baserom.gba", 0xDE4E70, 0x0000027 + +gUnk_08DE4E97:: @ 08DE4E97 + .incbin "baserom.gba", 0xDE4E97, 0x0000019 + +gUnk_08DE4EB0:: @ 08DE4EB0 + .incbin "baserom.gba", 0xDE4EB0, 0x0000010 + +gUnk_08DE4EC0:: @ 08DE4EC0 + .incbin "baserom.gba", 0xDE4EC0, 0x0000016 + +gUnk_08DE4ED6:: @ 08DE4ED6 + .incbin "baserom.gba", 0xDE4ED6, 0x000004A + +gUnk_08DE4F20:: @ 08DE4F20 + .incbin "baserom.gba", 0xDE4F20, 0x0000010 + +gUnk_08DE4F30:: @ 08DE4F30 + .incbin "baserom.gba", 0xDE4F30, 0x0000049 + +gUnk_08DE4F79:: @ 08DE4F79 + .incbin "baserom.gba", 0xDE4F79, 0x000003B + +gUnk_08DE4FB4:: @ 08DE4FB4 + .incbin "baserom.gba", 0xDE4FB4, 0x0000010 + +gUnk_08DE4FC4:: @ 08DE4FC4 + .incbin "baserom.gba", 0xDE4FC4, 0x0000024 + +gUnk_08DE4FE8:: @ 08DE4FE8 + .incbin "baserom.gba", 0xDE4FE8, 0x000000C + +gUnk_08DE4FF4:: @ 08DE4FF4 + .incbin "baserom.gba", 0xDE4FF4, 0x0000030 + +gUnk_08DE5024:: @ 08DE5024 + .incbin "baserom.gba", 0xDE5024, 0x0000048 + +gUnk_08DE506C:: @ 08DE506C + .incbin "baserom.gba", 0xDE506C, 0x0000010 + +gUnk_08DE507C:: @ 08DE507C + .incbin "baserom.gba", 0xDE507C, 0x0000040 + +gUnk_08DE50BC:: @ 08DE50BC + .incbin "baserom.gba", 0xDE50BC, 0x000000C + +gUnk_08DE50C8:: @ 08DE50C8 + .incbin "baserom.gba", 0xDE50C8, 0x0000026 + +gUnk_08DE50EE:: @ 08DE50EE + .incbin "baserom.gba", 0xDE50EE, 0x000003E + +gUnk_08DE512C:: @ 08DE512C + .incbin "baserom.gba", 0xDE512C, 0x0000010 + +gUnk_08DE513C:: @ 08DE513C + .incbin "baserom.gba", 0xDE513C, 0x0000048 + +gUnk_08DE5184:: @ 08DE5184 + .incbin "baserom.gba", 0xDE5184, 0x000002C + +gUnk_08DE51B0:: @ 08DE51B0 + .incbin "baserom.gba", 0xDE51B0, 0x0000010 + +gUnk_08DE51C0:: @ 08DE51C0 + .incbin "baserom.gba", 0xDE51C0, 0x0000024 + +gUnk_08DE51E4:: @ 08DE51E4 + .incbin "baserom.gba", 0xDE51E4, 0x0000034 + +gUnk_08DE5218:: @ 08DE5218 + .incbin "baserom.gba", 0xDE5218, 0x0000010 + +gUnk_08DE5228:: @ 08DE5228 + .incbin "baserom.gba", 0xDE5228, 0x0000020 + +gUnk_08DE5248:: @ 08DE5248 + .incbin "baserom.gba", 0xDE5248, 0x000000C + +gUnk_08DE5254:: @ 08DE5254 + .incbin "baserom.gba", 0xDE5254, 0x000004B + +gUnk_08DE529F:: @ 08DE529F + .incbin "baserom.gba", 0xDE529F, 0x0000051 + +gUnk_08DE52F0:: @ 08DE52F0 + .incbin "baserom.gba", 0xDE52F0, 0x0000010 + +gUnk_08DE5300:: @ 08DE5300 + .incbin "baserom.gba", 0xDE5300, 0x0000018 + +gUnk_08DE5318:: @ 08DE5318 + .incbin "baserom.gba", 0xDE5318, 0x000000C + +gUnk_08DE5324:: @ 08DE5324 + .incbin "baserom.gba", 0xDE5324, 0x0000024 + +gUnk_08DE5348:: @ 08DE5348 + .incbin "baserom.gba", 0xDE5348, 0x000000C + +gUnk_08DE5354:: @ 08DE5354 + .incbin "baserom.gba", 0xDE5354, 0x000003C + +gUnk_08DE5390:: @ 08DE5390 + .incbin "baserom.gba", 0xDE5390, 0x000000C + +gUnk_08DE539C:: @ 08DE539C + .incbin "baserom.gba", 0xDE539C, 0x0000060 + +gUnk_08DE53FC:: @ 08DE53FC + .incbin "baserom.gba", 0xDE53FC, 0x000000C + +gUnk_08DE5408:: @ 08DE5408 + .incbin "baserom.gba", 0xDE5408, 0x0000038 + +gUnk_08DE5440:: @ 08DE5440 + .incbin "baserom.gba", 0xDE5440, 0x000000C + +gUnk_08DE544C:: @ 08DE544C + .incbin "baserom.gba", 0xDE544C, 0x00000F4 + +gUnk_08DE5540:: @ 08DE5540 + .incbin "baserom.gba", 0xDE5540, 0x000000C + +gUnk_08DE554C:: @ 08DE554C + .incbin "baserom.gba", 0xDE554C, 0x0000084 + +gUnk_08DE55D0:: @ 08DE55D0 + .incbin "baserom.gba", 0xDE55D0, 0x0000054 + +gUnk_08DE5624:: @ 08DE5624 + .incbin "baserom.gba", 0xDE5624, 0x0000030 + +gUnk_08DE5654:: @ 08DE5654 + .incbin "baserom.gba", 0xDE5654, 0x0000010 + +gUnk_08DE5664:: @ 08DE5664 + .incbin "baserom.gba", 0xDE5664, 0x000006E + +gUnk_08DE56D2:: @ 08DE56D2 + .incbin "baserom.gba", 0xDE56D2, 0x0000056 + +gUnk_08DE5728:: @ 08DE5728 + .incbin "baserom.gba", 0xDE5728, 0x0000010 + +gUnk_08DE5738:: @ 08DE5738 + .incbin "baserom.gba", 0xDE5738, 0x0000074 + +gUnk_08DE57AC:: @ 08DE57AC + .incbin "baserom.gba", 0xDE57AC, 0x000000C + +gUnk_08DE57B8:: @ 08DE57B8 + .incbin "baserom.gba", 0xDE57B8, 0x0000022 + +gUnk_08DE57DA:: @ 08DE57DA + .incbin "baserom.gba", 0xDE57DA, 0x000002E + +gUnk_08DE5808:: @ 08DE5808 + .incbin "baserom.gba", 0xDE5808, 0x0000010 + +gUnk_08DE5818:: @ 08DE5818 + .incbin "baserom.gba", 0xDE5818, 0x000001F + +gUnk_08DE5837:: @ 08DE5837 + .incbin "baserom.gba", 0xDE5837, 0x0000019 + +gUnk_08DE5850:: @ 08DE5850 + .incbin "baserom.gba", 0xDE5850, 0x0000010 + +gUnk_08DE5860:: @ 08DE5860 + .incbin "baserom.gba", 0xDE5860, 0x000001B + +gUnk_08DE587B:: @ 08DE587B + .incbin "baserom.gba", 0xDE587B, 0x0000019 + +gUnk_08DE5894:: @ 08DE5894 + .incbin "baserom.gba", 0xDE5894, 0x0000010 + +gUnk_08DE58A4:: @ 08DE58A4 + .incbin "baserom.gba", 0xDE58A4, 0x000003C + +gUnk_08DE58E0:: @ 08DE58E0 + .incbin "baserom.gba", 0xDE58E0, 0x000000C + +gUnk_08DE58EC:: @ 08DE58EC + .incbin "baserom.gba", 0xDE58EC, 0x0000010 + +gUnk_08DE58FC:: @ 08DE58FC + .incbin "baserom.gba", 0xDE58FC, 0x000000C + +gUnk_08DE5908:: @ 08DE5908 + .incbin "baserom.gba", 0xDE5908, 0x0000010 + +gUnk_08DE5918:: @ 08DE5918 + .incbin "baserom.gba", 0xDE5918, 0x000000C + +gUnk_08DE5924:: @ 08DE5924 + .incbin "baserom.gba", 0xDE5924, 0x0000010 + +gUnk_08DE5934:: @ 08DE5934 + .incbin "baserom.gba", 0xDE5934, 0x000000C + +gUnk_08DE5940:: @ 08DE5940 + .incbin "baserom.gba", 0xDE5940, 0x000004C + +gUnk_08DE598C:: @ 08DE598C + .incbin "baserom.gba", 0xDE598C, 0x000000C + +gUnk_08DE5998:: @ 08DE5998 + .incbin "baserom.gba", 0xDE5998, 0x0000030 + +gUnk_08DE59C8:: @ 08DE59C8 + .incbin "baserom.gba", 0xDE59C8, 0x000000C + +gUnk_08DE59D4:: @ 08DE59D4 + .incbin "baserom.gba", 0xDE59D4, 0x000006C + +gUnk_08DE5A40:: @ 08DE5A40 + .incbin "baserom.gba", 0xDE5A40, 0x000009C + +gUnk_08DE5ADC:: @ 08DE5ADC + .incbin "baserom.gba", 0xDE5ADC, 0x0000010 + +gUnk_08DE5AEC:: @ 08DE5AEC + .incbin "baserom.gba", 0xDE5AEC, 0x0000010 + +gUnk_08DE5AFC:: @ 08DE5AFC + .incbin "baserom.gba", 0xDE5AFC, 0x000000C + +gUnk_08DE5B08:: @ 08DE5B08 + .incbin "baserom.gba", 0xDE5B08, 0x0000010 + +gUnk_08DE5B18:: @ 08DE5B18 + .incbin "baserom.gba", 0xDE5B18, 0x000000C + +gUnk_08DE5B24:: @ 08DE5B24 + .incbin "baserom.gba", 0xDE5B24, 0x0000010 + +gUnk_08DE5B34:: @ 08DE5B34 + .incbin "baserom.gba", 0xDE5B34, 0x000000C + +gUnk_08DE5B40:: @ 08DE5B40 + .incbin "baserom.gba", 0xDE5B40, 0x0000014 + +gUnk_08DE5B54:: @ 08DE5B54 + .incbin "baserom.gba", 0xDE5B54, 0x000000C + +gUnk_08DE5B60:: @ 08DE5B60 + .incbin "baserom.gba", 0xDE5B60, 0x0000048 + +gUnk_08DE5BA8:: @ 08DE5BA8 + .incbin "baserom.gba", 0xDE5BA8, 0x000000C + +gUnk_08DE5BB4:: @ 08DE5BB4 + .incbin "baserom.gba", 0xDE5BB4, 0x0000010 + +gUnk_08DE5BC4:: @ 08DE5BC4 + .incbin "baserom.gba", 0xDE5BC4, 0x000000C + +gUnk_08DE5BD0:: @ 08DE5BD0 + .incbin "baserom.gba", 0xDE5BD0, 0x0000010 + +gUnk_08DE5BE0:: @ 08DE5BE0 + .incbin "baserom.gba", 0xDE5BE0, 0x000000C + +gUnk_08DE5BEC:: @ 08DE5BEC + .incbin "baserom.gba", 0xDE5BEC, 0x0000010 + +gUnk_08DE5BFC:: @ 08DE5BFC + .incbin "baserom.gba", 0xDE5BFC, 0x000000C + +gUnk_08DE5C08:: @ 08DE5C08 + .incbin "baserom.gba", 0xDE5C08, 0x0000010 + +gUnk_08DE5C18:: @ 08DE5C18 + .incbin "baserom.gba", 0xDE5C18, 0x000000C + +gUnk_08DE5C24:: @ 08DE5C24 + .incbin "baserom.gba", 0xDE5C24, 0x0000010 + +gUnk_08DE5C34:: @ 08DE5C34 + .incbin "baserom.gba", 0xDE5C34, 0x000000C + +gUnk_08DE5C40:: @ 08DE5C40 + .incbin "baserom.gba", 0xDE5C40, 0x0000010 + +gUnk_08DE5C50:: @ 08DE5C50 + .incbin "baserom.gba", 0xDE5C50, 0x000000C + +gUnk_08DE5C5C:: @ 08DE5C5C + .incbin "baserom.gba", 0xDE5C5C, 0x0000010 + +gUnk_08DE5C6C:: @ 08DE5C6C + .incbin "baserom.gba", 0xDE5C6C, 0x000000C + +gUnk_08DE5C78:: @ 08DE5C78 + .incbin "baserom.gba", 0xDE5C78, 0x0000010 + +gUnk_08DE5C88:: @ 08DE5C88 + .incbin "baserom.gba", 0xDE5C88, 0x000000C + +gUnk_08DE5C94:: @ 08DE5C94 + .incbin "baserom.gba", 0xDE5C94, 0x0000014 + +gUnk_08DE5CA8:: @ 08DE5CA8 + .incbin "baserom.gba", 0xDE5CA8, 0x000000C + +gUnk_08DE5CB4:: @ 08DE5CB4 + .incbin "baserom.gba", 0xDE5CB4, 0x0000010 + +gUnk_08DE5CC4:: @ 08DE5CC4 + .incbin "baserom.gba", 0xDE5CC4, 0x000000C + +gUnk_08DE5CD0:: @ 08DE5CD0 + .incbin "baserom.gba", 0xDE5CD0, 0x0000010 + +gUnk_08DE5CE0:: @ 08DE5CE0 + .incbin "baserom.gba", 0xDE5CE0, 0x000000C + +gUnk_08DE5CEC:: @ 08DE5CEC + .incbin "baserom.gba", 0xDE5CEC, 0x0000010 + +gUnk_08DE5CFC:: @ 08DE5CFC + .incbin "baserom.gba", 0xDE5CFC, 0x000000C + +gUnk_08DE5D08:: @ 08DE5D08 + .incbin "baserom.gba", 0xDE5D08, 0x0000020 + +gUnk_08DE5D28:: @ 08DE5D28 + .incbin "baserom.gba", 0xDE5D28, 0x000000C + +gUnk_08DE5D34:: @ 08DE5D34 + .incbin "baserom.gba", 0xDE5D34, 0x0000010 + +gUnk_08DE5D44:: @ 08DE5D44 + .incbin "baserom.gba", 0xDE5D44, 0x000000C + +gUnk_08DE5D50:: @ 08DE5D50 + .incbin "baserom.gba", 0xDE5D50, 0x0000010 + +gUnk_08DE5D60:: @ 08DE5D60 + .incbin "baserom.gba", 0xDE5D60, 0x0000010 + +gUnk_08DE5D70:: @ 08DE5D70 + .incbin "baserom.gba", 0xDE5D70, 0x0000010 + +gUnk_08DE5D80:: @ 08DE5D80 + .incbin "baserom.gba", 0xDE5D80, 0x0000010 + +gUnk_08DE5D90:: @ 08DE5D90 + .incbin "baserom.gba", 0xDE5D90, 0x000000C + +gUnk_08DE5D9C:: @ 08DE5D9C + .incbin "baserom.gba", 0xDE5D9C, 0x0000010 + +gUnk_08DE5DAC:: @ 08DE5DAC + .incbin "baserom.gba", 0xDE5DAC, 0x000000C + +gUnk_08DE5DB8:: @ 08DE5DB8 + .incbin "baserom.gba", 0xDE5DB8, 0x0000010 + +gUnk_08DE5DC8:: @ 08DE5DC8 + .incbin "baserom.gba", 0xDE5DC8, 0x000000C + +gUnk_08DE5DD4:: @ 08DE5DD4 + .incbin "baserom.gba", 0xDE5DD4, 0x0000010 + +gUnk_08DE5DE4:: @ 08DE5DE4 + .incbin "baserom.gba", 0xDE5DE4, 0x000000C + +gUnk_08DE5DF0:: @ 08DE5DF0 + .incbin "baserom.gba", 0xDE5DF0, 0x0000010 + +gUnk_08DE5E00:: @ 08DE5E00 + .incbin "baserom.gba", 0xDE5E00, 0x000000C + +gUnk_08DE5E0C:: @ 08DE5E0C + .incbin "baserom.gba", 0xDE5E0C, 0x0000010 + +gUnk_08DE5E1C:: @ 08DE5E1C + .incbin "baserom.gba", 0xDE5E1C, 0x000000C + +gUnk_08DE5E28:: @ 08DE5E28 + .incbin "baserom.gba", 0xDE5E28, 0x0000010 + +gUnk_08DE5E38:: @ 08DE5E38 + .incbin "baserom.gba", 0xDE5E38, 0x000000C + +gUnk_08DE5E44:: @ 08DE5E44 + .incbin "baserom.gba", 0xDE5E44, 0x0000010 + +gUnk_08DE5E54:: @ 08DE5E54 + .incbin "baserom.gba", 0xDE5E54, 0x000000C + +gUnk_08DE5E60:: @ 08DE5E60 + .incbin "baserom.gba", 0xDE5E60, 0x0000010 + +gUnk_08DE5E70:: @ 08DE5E70 + .incbin "baserom.gba", 0xDE5E70, 0x000000C + +gUnk_08DE5E7C:: @ 08DE5E7C + .incbin "baserom.gba", 0xDE5E7C, 0x0000010 + +gUnk_08DE5E8C:: @ 08DE5E8C + .incbin "baserom.gba", 0xDE5E8C, 0x000000C + +gUnk_08DE5E98:: @ 08DE5E98 + .incbin "baserom.gba", 0xDE5E98, 0x0000010 + +gUnk_08DE5EA8:: @ 08DE5EA8 + .incbin "baserom.gba", 0xDE5EA8, 0x000000C + +gUnk_08DE5EB4:: @ 08DE5EB4 + .incbin "baserom.gba", 0xDE5EB4, 0x0000010 + +gUnk_08DE5EC4:: @ 08DE5EC4 + .incbin "baserom.gba", 0xDE5EC4, 0x000000C + +gUnk_08DE5ED0:: @ 08DE5ED0 + .incbin "baserom.gba", 0xDE5ED0, 0x0000010 + +gUnk_08DE5EE0:: @ 08DE5EE0 + .incbin "baserom.gba", 0xDE5EE0, 0x000000C + +gUnk_08DE5EEC:: @ 08DE5EEC + .incbin "baserom.gba", 0xDE5EEC, 0x0000010 + +gUnk_08DE5EFC:: @ 08DE5EFC + .incbin "baserom.gba", 0xDE5EFC, 0x000000C + +gUnk_08DE5F08:: @ 08DE5F08 + .incbin "baserom.gba", 0xDE5F08, 0x0000010 + +gUnk_08DE5F18:: @ 08DE5F18 + .incbin "baserom.gba", 0xDE5F18, 0x000000C + +gUnk_08DE5F24:: @ 08DE5F24 + .incbin "baserom.gba", 0xDE5F24, 0x0000010 + +gUnk_08DE5F34:: @ 08DE5F34 + .incbin "baserom.gba", 0xDE5F34, 0x000000C + +gUnk_08DE5F40:: @ 08DE5F40 + .incbin "baserom.gba", 0xDE5F40, 0x0000044 + +gUnk_08DE5F84:: @ 08DE5F84 + .incbin "baserom.gba", 0xDE5F84, 0x0000048 + +gUnk_08DE5FCC:: @ 08DE5FCC + .incbin "baserom.gba", 0xDE5FCC, 0x0000010 + +gUnk_08DE5FDC:: @ 08DE5FDC + .incbin "baserom.gba", 0xDE5FDC, 0x0000028 + +gUnk_08DE6004:: @ 08DE6004 + .incbin "baserom.gba", 0xDE6004, 0x000000C + +gUnk_08DE6010:: @ 08DE6010 + .incbin "baserom.gba", 0xDE6010, 0x0000034 + +gUnk_08DE6044:: @ 08DE6044 + .incbin "baserom.gba", 0xDE6044, 0x000000C + +gUnk_08DE6050:: @ 08DE6050 + .incbin "baserom.gba", 0xDE6050, 0x0000010 + +gUnk_08DE6060:: @ 08DE6060 + .incbin "baserom.gba", 0xDE6060, 0x000000C + +gUnk_08DE606C:: @ 08DE606C + .incbin "baserom.gba", 0xDE606C, 0x0000010 + +gUnk_08DE607C:: @ 08DE607C + .incbin "baserom.gba", 0xDE607C, 0x000000C + +gUnk_08DE6088:: @ 08DE6088 + .incbin "baserom.gba", 0xDE6088, 0x0000010 + +gUnk_08DE6098:: @ 08DE6098 + .incbin "baserom.gba", 0xDE6098, 0x000000C + +gUnk_08DE60A4:: @ 08DE60A4 + .incbin "baserom.gba", 0xDE60A4, 0x0000010 + +gUnk_08DE60B4:: @ 08DE60B4 + .incbin "baserom.gba", 0xDE60B4, 0x000000C + +gUnk_08DE60C0:: @ 08DE60C0 + .incbin "baserom.gba", 0xDE60C0, 0x0000010 + +gUnk_08DE60D0:: @ 08DE60D0 + .incbin "baserom.gba", 0xDE60D0, 0x000000C + +gUnk_08DE60DC:: @ 08DE60DC + .incbin "baserom.gba", 0xDE60DC, 0x0000010 + +gUnk_08DE60EC:: @ 08DE60EC + .incbin "baserom.gba", 0xDE60EC, 0x000000C + +gUnk_08DE60F8:: @ 08DE60F8 + .incbin "baserom.gba", 0xDE60F8, 0x0000010 + +gUnk_08DE6108:: @ 08DE6108 + .incbin "baserom.gba", 0xDE6108, 0x000000C + +gUnk_08DE6114:: @ 08DE6114 + .incbin "baserom.gba", 0xDE6114, 0x0000010 + +gUnk_08DE6124:: @ 08DE6124 + .incbin "baserom.gba", 0xDE6124, 0x000000C + +gUnk_08DE6130:: @ 08DE6130 + .incbin "baserom.gba", 0xDE6130, 0x0000010 + +gUnk_08DE6140:: @ 08DE6140 + .incbin "baserom.gba", 0xDE6140, 0x000000C + +gUnk_08DE614C:: @ 08DE614C + .incbin "baserom.gba", 0xDE614C, 0x0000010 + +gUnk_08DE615C:: @ 08DE615C + .incbin "baserom.gba", 0xDE615C, 0x000000C + +gUnk_08DE6168:: @ 08DE6168 + .incbin "baserom.gba", 0xDE6168, 0x0000010 + +gUnk_08DE6178:: @ 08DE6178 + .incbin "baserom.gba", 0xDE6178, 0x000000C + +gUnk_08DE6184:: @ 08DE6184 + .incbin "baserom.gba", 0xDE6184, 0x0000010 + +gUnk_08DE6194:: @ 08DE6194 + .incbin "baserom.gba", 0xDE6194, 0x000000C + +gUnk_08DE61A0:: @ 08DE61A0 + .incbin "baserom.gba", 0xDE61A0, 0x0000010 + +gUnk_08DE61B0:: @ 08DE61B0 + .incbin "baserom.gba", 0xDE61B0, 0x000000C + +gUnk_08DE61BC:: @ 08DE61BC + .incbin "baserom.gba", 0xDE61BC, 0x0000010 + +gUnk_08DE61CC:: @ 08DE61CC + .incbin "baserom.gba", 0xDE61CC, 0x000000C + +gUnk_08DE61D8:: @ 08DE61D8 + .incbin "baserom.gba", 0xDE61D8, 0x0000010 + +gUnk_08DE61E8:: @ 08DE61E8 + .incbin "baserom.gba", 0xDE61E8, 0x000000C + +gUnk_08DE61F4:: @ 08DE61F4 + .incbin "baserom.gba", 0xDE61F4, 0x0000010 + +gUnk_08DE6204:: @ 08DE6204 + .incbin "baserom.gba", 0xDE6204, 0x000000C + +gUnk_08DE6210:: @ 08DE6210 + .incbin "baserom.gba", 0xDE6210, 0x0000010 + +gUnk_08DE6220:: @ 08DE6220 + .incbin "baserom.gba", 0xDE6220, 0x000000C + +gUnk_08DE622C:: @ 08DE622C + .incbin "baserom.gba", 0xDE622C, 0x0000010 + +gUnk_08DE623C:: @ 08DE623C + .incbin "baserom.gba", 0xDE623C, 0x000000C + +gUnk_08DE6248:: @ 08DE6248 + .incbin "baserom.gba", 0xDE6248, 0x0000010 + +gUnk_08DE6258:: @ 08DE6258 + .incbin "baserom.gba", 0xDE6258, 0x000000C + +gUnk_08DE6264:: @ 08DE6264 + .incbin "baserom.gba", 0xDE6264, 0x0000010 + +gUnk_08DE6274:: @ 08DE6274 + .incbin "baserom.gba", 0xDE6274, 0x000000C + +gUnk_08DE6280:: @ 08DE6280 + .incbin "baserom.gba", 0xDE6280, 0x0000010 + +gUnk_08DE6290:: @ 08DE6290 + .incbin "baserom.gba", 0xDE6290, 0x000000C + +gUnk_08DE629C:: @ 08DE629C + .incbin "baserom.gba", 0xDE629C, 0x0000010 + +gUnk_08DE62AC:: @ 08DE62AC + .incbin "baserom.gba", 0xDE62AC, 0x000000C + +gUnk_08DE62B8:: @ 08DE62B8 + .incbin "baserom.gba", 0xDE62B8, 0x0000010 + +gUnk_08DE62C8:: @ 08DE62C8 + .incbin "baserom.gba", 0xDE62C8, 0x000000C + +gUnk_08DE62D4:: @ 08DE62D4 + .incbin "baserom.gba", 0xDE62D4, 0x0000010 + +gUnk_08DE62E4:: @ 08DE62E4 + .incbin "baserom.gba", 0xDE62E4, 0x000000C + +gUnk_08DE62F0:: @ 08DE62F0 + .incbin "baserom.gba", 0xDE62F0, 0x0000010 + +gUnk_08DE6300:: @ 08DE6300 + .incbin "baserom.gba", 0xDE6300, 0x000000C + +gUnk_08DE630C:: @ 08DE630C + .incbin "baserom.gba", 0xDE630C, 0x0000010 + +gUnk_08DE631C:: @ 08DE631C + .incbin "baserom.gba", 0xDE631C, 0x000000C + +gUnk_08DE6328:: @ 08DE6328 + .incbin "baserom.gba", 0xDE6328, 0x0000010 + +gUnk_08DE6338:: @ 08DE6338 + .incbin "baserom.gba", 0xDE6338, 0x000000C + +gUnk_08DE6344:: @ 08DE6344 + .incbin "baserom.gba", 0xDE6344, 0x0000010 + +gUnk_08DE6354:: @ 08DE6354 + .incbin "baserom.gba", 0xDE6354, 0x000000C + +gUnk_08DE6360:: @ 08DE6360 + .incbin "baserom.gba", 0xDE6360, 0x0000010 + +gUnk_08DE6370:: @ 08DE6370 + .incbin "baserom.gba", 0xDE6370, 0x000000C + +gUnk_08DE637C:: @ 08DE637C + .incbin "baserom.gba", 0xDE637C, 0x0000010 + +gUnk_08DE638C:: @ 08DE638C + .incbin "baserom.gba", 0xDE638C, 0x000000C + +gUnk_08DE6398:: @ 08DE6398 + .incbin "baserom.gba", 0xDE6398, 0x0000010 + +gUnk_08DE63A8:: @ 08DE63A8 + .incbin "baserom.gba", 0xDE63A8, 0x000000C + +gUnk_08DE63B4:: @ 08DE63B4 + .incbin "baserom.gba", 0xDE63B4, 0x0000010 + +gUnk_08DE63C4:: @ 08DE63C4 + .incbin "baserom.gba", 0xDE63C4, 0x000000C + +gUnk_08DE63D0:: @ 08DE63D0 + .incbin "baserom.gba", 0xDE63D0, 0x0000010 + +gUnk_08DE63E0:: @ 08DE63E0 + .incbin "baserom.gba", 0xDE63E0, 0x000000C + +gUnk_08DE63EC:: @ 08DE63EC + .incbin "baserom.gba", 0xDE63EC, 0x0000010 + +gUnk_08DE63FC:: @ 08DE63FC + .incbin "baserom.gba", 0xDE63FC, 0x000000C + +gUnk_08DE6408:: @ 08DE6408 + .incbin "baserom.gba", 0xDE6408, 0x0000010 + +gUnk_08DE6418:: @ 08DE6418 + .incbin "baserom.gba", 0xDE6418, 0x000000C + +gUnk_08DE6424:: @ 08DE6424 + .incbin "baserom.gba", 0xDE6424, 0x0000010 + +gUnk_08DE6434:: @ 08DE6434 + .incbin "baserom.gba", 0xDE6434, 0x000000C + +gUnk_08DE6440:: @ 08DE6440 + .incbin "baserom.gba", 0xDE6440, 0x0000010 + +gUnk_08DE6450:: @ 08DE6450 + .incbin "baserom.gba", 0xDE6450, 0x000000C + +gUnk_08DE645C:: @ 08DE645C + .incbin "baserom.gba", 0xDE645C, 0x0000010 + +gUnk_08DE646C:: @ 08DE646C + .incbin "baserom.gba", 0xDE646C, 0x000000C + +gUnk_08DE6478:: @ 08DE6478 + .incbin "baserom.gba", 0xDE6478, 0x0000010 + +gUnk_08DE6488:: @ 08DE6488 + .incbin "baserom.gba", 0xDE6488, 0x000000C + +gUnk_08DE6494:: @ 08DE6494 + .incbin "baserom.gba", 0xDE6494, 0x0000010 + +gUnk_08DE64A4:: @ 08DE64A4 + .incbin "baserom.gba", 0xDE64A4, 0x000000C + +gUnk_08DE64B0:: @ 08DE64B0 + .incbin "baserom.gba", 0xDE64B0, 0x0000010 + +gUnk_08DE64C0:: @ 08DE64C0 + .incbin "baserom.gba", 0xDE64C0, 0x000000C + +gUnk_08DE64CC:: @ 08DE64CC + .incbin "baserom.gba", 0xDE64CC, 0x0000010 + +gUnk_08DE64DC:: @ 08DE64DC + .incbin "baserom.gba", 0xDE64DC, 0x000000C + +gUnk_08DE64E8:: @ 08DE64E8 + .incbin "baserom.gba", 0xDE64E8, 0x0000010 + +gUnk_08DE64F8:: @ 08DE64F8 + .incbin "baserom.gba", 0xDE64F8, 0x000000C + +gUnk_08DE6504:: @ 08DE6504 + .incbin "baserom.gba", 0xDE6504, 0x0000010 + +gUnk_08DE6514:: @ 08DE6514 + .incbin "baserom.gba", 0xDE6514, 0x000000C + +gUnk_08DE6520:: @ 08DE6520 + .incbin "baserom.gba", 0xDE6520, 0x0000010 + +gUnk_08DE6530:: @ 08DE6530 + .incbin "baserom.gba", 0xDE6530, 0x000000C + +gUnk_08DE653C:: @ 08DE653C + .incbin "baserom.gba", 0xDE653C, 0x0000010 + +gUnk_08DE654C:: @ 08DE654C + .incbin "baserom.gba", 0xDE654C, 0x000000C + +gUnk_08DE6558:: @ 08DE6558 + .incbin "baserom.gba", 0xDE6558, 0x0000010 + +gUnk_08DE6568:: @ 08DE6568 + .incbin "baserom.gba", 0xDE6568, 0x000000C + +gUnk_08DE6574:: @ 08DE6574 + .incbin "baserom.gba", 0xDE6574, 0x0000010 + +gUnk_08DE6584:: @ 08DE6584 + .incbin "baserom.gba", 0xDE6584, 0x000000C + +gUnk_08DE6590:: @ 08DE6590 + .incbin "baserom.gba", 0xDE6590, 0x0000010 + +gUnk_08DE65A0:: @ 08DE65A0 + .incbin "baserom.gba", 0xDE65A0, 0x000000C + +gUnk_08DE65AC:: @ 08DE65AC + .incbin "baserom.gba", 0xDE65AC, 0x0000010 + +gUnk_08DE65BC:: @ 08DE65BC + .incbin "baserom.gba", 0xDE65BC, 0x000000C + +gUnk_08DE65C8:: @ 08DE65C8 + .incbin "baserom.gba", 0xDE65C8, 0x0000014 + +gUnk_08DE65DC:: @ 08DE65DC + .incbin "baserom.gba", 0xDE65DC, 0x000000C + +gUnk_08DE65E8:: @ 08DE65E8 + .incbin "baserom.gba", 0xDE65E8, 0x0000010 + +gUnk_08DE65F8:: @ 08DE65F8 + .incbin "baserom.gba", 0xDE65F8, 0x000000C + +gUnk_08DE6604:: @ 08DE6604 + .incbin "baserom.gba", 0xDE6604, 0x0000010 + +gUnk_08DE6614:: @ 08DE6614 + .incbin "baserom.gba", 0xDE6614, 0x000000C + +gUnk_08DE6620:: @ 08DE6620 + .incbin "baserom.gba", 0xDE6620, 0x0000010 + +gUnk_08DE6630:: @ 08DE6630 + .incbin "baserom.gba", 0xDE6630, 0x000000C + +gUnk_08DE663C:: @ 08DE663C + .incbin "baserom.gba", 0xDE663C, 0x0000014 + +gUnk_08DE6650:: @ 08DE6650 + .incbin "baserom.gba", 0xDE6650, 0x000000C + +gUnk_08DE665C:: @ 08DE665C + .incbin "baserom.gba", 0xDE665C, 0x0000018 + +gUnk_08DE6674:: @ 08DE6674 + .incbin "baserom.gba", 0xDE6674, 0x000000C + +gUnk_08DE6680:: @ 08DE6680 + .incbin "baserom.gba", 0xDE6680, 0x000007D + +gUnk_08DE66FD:: @ 08DE66FD + .incbin "baserom.gba", 0xDE66FD, 0x000005F + +gUnk_08DE675C:: @ 08DE675C + .incbin "baserom.gba", 0xDE675C, 0x000003B + +gUnk_08DE6797:: @ 08DE6797 + .incbin "baserom.gba", 0xDE6797, 0x0000789 + +gUnk_08DE6F20:: @ 08DE6F20 + .incbin "baserom.gba", 0xDE6F20, 0x0000189 + +gUnk_08DE70A9:: @ 08DE70A9 + .incbin "baserom.gba", 0xDE70A9, 0x0000189 + +gUnk_08DE7232:: @ 08DE7232 + .incbin "baserom.gba", 0xDE7232, 0x0000189 + +gUnk_08DE73BB:: @ 08DE73BB + .incbin "baserom.gba", 0xDE73BB, 0x0000189 + +gUnk_08DE7544:: @ 08DE7544 + .incbin "baserom.gba", 0xDE7544, 0x0000028 + +gUnk_08DE756C:: @ 08DE756C + .incbin "baserom.gba", 0xDE756C, 0x000002C + +gUnk_08DE7598:: @ 08DE7598 + .incbin "baserom.gba", 0xDE7598, 0x000002A + +gUnk_08DE75C2:: @ 08DE75C2 + .incbin "baserom.gba", 0xDE75C2, 0x0000026 + +gUnk_08DE75E8:: @ 08DE75E8 + .incbin "baserom.gba", 0xDE75E8, 0x0000029 + +gUnk_08DE7611:: @ 08DE7611 + .incbin "baserom.gba", 0xDE7611, 0x000002A + +gUnk_08DE763B:: @ 08DE763B + .incbin "baserom.gba", 0xDE763B, 0x000002A + +gUnk_08DE7665:: @ 08DE7665 + .incbin "baserom.gba", 0xDE7665, 0x0000033 + +gUnk_08DE7698:: @ 08DE7698 + .incbin "baserom.gba", 0xDE7698, 0x0000031 + +gUnk_08DE76C9:: @ 08DE76C9 + .incbin "baserom.gba", 0xDE76C9, 0x0000129 + +gUnk_08DE77F2:: @ 08DE77F2 + .incbin "baserom.gba", 0xDE77F2, 0x0000129 + +gUnk_08DE791B:: @ 08DE791B + .incbin "baserom.gba", 0xDE791B, 0x0000129 + +gUnk_08DE7A44:: @ 08DE7A44 + .incbin "baserom.gba", 0xDE7A44, 0x000012C + +gUnk_08DE7B70:: @ 08DE7B70 + .incbin "baserom.gba", 0xDE7B70, 0x0000038 + +gUnk_08DE7BA8:: @ 08DE7BA8 + .incbin "baserom.gba", 0xDE7BA8, 0x0000010 + +gUnk_08DE7BB8:: @ 08DE7BB8 + .incbin "baserom.gba", 0xDE7BB8, 0x000000C + +gUnk_08DE7BC4:: @ 08DE7BC4 + .incbin "baserom.gba", 0xDE7BC4, 0x0000010 + +gUnk_08DE7BD4:: @ 08DE7BD4 + .incbin "baserom.gba", 0xDE7BD4, 0x000000C + +gUnk_08DE7BE0:: @ 08DE7BE0 + .incbin "baserom.gba", 0xDE7BE0, 0x000001C + +gUnk_08DE7BFC:: @ 08DE7BFC + .incbin "baserom.gba", 0xDE7BFC, 0x000000C + +gUnk_08DE7C08:: @ 08DE7C08 + .incbin "baserom.gba", 0xDE7C08, 0x0000020 + +gUnk_08DE7C28:: @ 08DE7C28 + .incbin "baserom.gba", 0xDE7C28, 0x000000C + +gUnk_08DE7C34:: @ 08DE7C34 + .incbin "baserom.gba", 0xDE7C34, 0x0000044 + +gUnk_08DE7C78:: @ 08DE7C78 + .incbin "baserom.gba", 0xDE7C78, 0x000000C + +gUnk_08DE7C84:: @ 08DE7C84 + .incbin "baserom.gba", 0xDE7C84, 0x0000010 + +gUnk_08DE7C94:: @ 08DE7C94 + .incbin "baserom.gba", 0xDE7C94, 0x000000C + +gUnk_08DE7CA0:: @ 08DE7CA0 + .incbin "baserom.gba", 0xDE7CA0, 0x0000014 + +gUnk_08DE7CB4:: @ 08DE7CB4 + .incbin "baserom.gba", 0xDE7CB4, 0x000000C + +gUnk_08DE7CC0:: @ 08DE7CC0 + .incbin "baserom.gba", 0xDE7CC0, 0x0000030 + +gUnk_08DE7CF0:: @ 08DE7CF0 + .incbin "baserom.gba", 0xDE7CF0, 0x000000C + +gUnk_08DE7CFC:: @ 08DE7CFC + .incbin "baserom.gba", 0xDE7CFC, 0x0000010 + +gUnk_08DE7D0C:: @ 08DE7D0C + .incbin "baserom.gba", 0xDE7D0C, 0x000000C + +gUnk_08DE7D18:: @ 08DE7D18 + .incbin "baserom.gba", 0xDE7D18, 0x0000010 + +gUnk_08DE7D28:: @ 08DE7D28 + .incbin "baserom.gba", 0xDE7D28, 0x0000018 + +gUnk_08DE7D40:: @ 08DE7D40 + .incbin "baserom.gba", 0xDE7D40, 0x000000C + +gUnk_08DE7D4C:: @ 08DE7D4C + .incbin "baserom.gba", 0xDE7D4C, 0x0000058 diff --git a/graphics/.gitignore b/graphics/.gitignore new file mode 100644 index 00000000..fdffa2a0 --- /dev/null +++ b/graphics/.gitignore @@ -0,0 +1 @@ +# placeholder diff --git a/graphics_file_rules.mk b/graphics_file_rules.mk new file mode 100644 index 00000000..e69de29b diff --git a/include/gba/defines.h b/include/gba/defines.h new file mode 100644 index 00000000..8e2ac6f5 --- /dev/null +++ b/include/gba/defines.h @@ -0,0 +1,94 @@ +#ifndef GUARD_GBA_DEFINES +#define GUARD_GBA_DEFINES + +#include + +#define TRUE 1 +#define FALSE 0 + +#if defined(__APPLE__) +#define IWRAM_DATA __attribute__((section("__DATA,iwram_data"))) +#define EWRAM_DATA __attribute__((section("__DATA,ewram_data"))) +#else +#define IWRAM_DATA __attribute__((section("iwram_data"))) +#define EWRAM_DATA __attribute__((section("ewram_data"))) +#endif + +#define NAKED __attribute__((naked)) +#define UNUSED __attribute__((unused)) + +#define ALIGNED(n) __attribute__((aligned(n))) + +#define SOUND_INFO_PTR (*(struct SoundInfo **)0x3007FF0) +#define INTR_CHECK (*(u16 *)0x3007FF8) +#define INTR_VECTOR (*(void **)0x3007FFC) + +#define EWRAM_START 0x02000000 +#define EWRAM_END (EWRAM_START + 0x40000) +#define IWRAM_START 0x03000000 +#define IWRAM_END (IWRAM_START + 0x8000) + +#define PLTT 0x5000000 +#define PLTT_SIZE 0x400 + +#define BG_PLTT PLTT +#define BG_PLTT_SIZE 0x200 + +#define OBJ_PLTT (PLTT + 0x200) +#define OBJ_PLTT_SIZE 0x200 + +#define VRAM 0x6000000 +#define VRAM_SIZE 0x18000 + +#define BG_VRAM VRAM +#define BG_VRAM_SIZE 0x10000 +#define BG_CHAR_SIZE 0x4000 +#define BG_SCREEN_SIZE 0x800 +#define BG_CHAR_ADDR(n) (void *)(BG_VRAM + (BG_CHAR_SIZE * (n))) +#define BG_SCREEN_ADDR(n) (void *)(BG_VRAM + (BG_SCREEN_SIZE * (n))) +#define BG_TILE_ADDR(n) (void *)(BG_VRAM + (0x80 * (n))) + +#define BG_TILE_H_FLIP(n) (0x400 + (n)) +#define BG_TILE_V_FLIP(n) (0x800 + (n)) + +// text-mode BG +#define OBJ_VRAM0 (void *)(VRAM + 0x10000) +#define OBJ_VRAM0_SIZE 0x8000 + +// bitmap-mode BG +#define OBJ_VRAM1 (void *)(VRAM + 0x14000) +#define OBJ_VRAM1_SIZE 0x4000 + +#define OAM 0x7000000 +#define OAM_SIZE 0x400 + +#define ROM_HEADER_SIZE 0xC0 + +#define DISPLAY_WIDTH 240 +#define DISPLAY_HEIGHT 160 + +#define TILE_SIZE_4BPP 32 +#define TILE_SIZE_8BPP 64 + +#define TILE_OFFSET_4BPP(n) ((n) * TILE_SIZE_4BPP) +#define TILE_OFFSET_8BPP(n) ((n) * TILE_SIZE_8BPP) + +#define TOTAL_OBJ_TILE_COUNT 1024 + +#define RGB(r, g, b) ((r) | ((g) << 5) | ((b) << 10)) +#define RGB2(r, g, b) (((b) << 10) | ((g) << 5) | (r)) +#define _RGB(r, g, b) ((((b) & 0x1F) << 10) + (((g) & 0x1F) << 5) + ((r) & 0x1F)) + +#define RGB_BLACK RGB(0, 0, 0) +#define RGB_WHITE RGB(31, 31, 31) +#define RGB_RED RGB(31, 0, 0) +#define RGB_GREEN RGB(0, 31, 0) +#define RGB_BLUE RGB(0, 0, 31) +#define RGB_YELLOW RGB(31, 31, 0) +#define RGB_MAGENTA RGB(31, 0, 31) +#define RGB_CYAN RGB(0, 31, 31) +#define RGB_WHITEALPHA (RGB_WHITE | 0x8000) + +#define SYSTEM_CLOCK (16 * 1024 * 1024) // System Clock + +#endif // GUARD_GBA_DEFINES diff --git a/include/gba/flash_internal.h b/include/gba/flash_internal.h new file mode 100644 index 00000000..a4770882 --- /dev/null +++ b/include/gba/flash_internal.h @@ -0,0 +1,46 @@ +#ifndef GUARD_GBA_FLASH_INTERNAL_H +#define GUARD_GBA_FLASH_INTERNAL_H + +#define FLASH_BASE ((u8 *)0xE000000) + +#define FLASH_WRITE(addr, data) ((*(vu8 *)(FLASH_BASE + (addr))) = (data)) + +#define FLASH_ROM_SIZE_1M 131072 // 1 megabit ROM + +#define SECTORS_PER_BANK 16 + +struct FlashSector +{ + u32 size; + u8 shift; + u16 count; + u16 top; +}; + +struct FlashType { + u32 romSize; + struct FlashSector sector; + u16 wait[2]; // game pak bus read/write wait + + // TODO: add support for anonymous unions/structs if possible + union { + struct { + u8 makerId; + u8 deviceId; + } separate; + u16 joined; + } ids; +}; + +struct FlashSetupInfo +{ + u16 (*programFlashByte)(u16, u32, u8); + u16 (*programFlashSector)(u16, void *); + u16 (*eraseFlashChip)(void); + u16 (*eraseFlashSector)(u16); + u16 (*WaitForFlashWrite)(u8, u8 *, u8); + const u16 *maxTime; + struct FlashType type; +}; + +#endif // GUARD_GBA_FLASH_INTERNAL_H diff --git a/include/gba/gba.h b/include/gba/gba.h new file mode 100644 index 00000000..259bb9c8 --- /dev/null +++ b/include/gba/gba.h @@ -0,0 +1,13 @@ +#ifndef GUARD_GBA_GBA_H +#define GUARD_GBA_GBA_H + +#include +#include "defines.h" +#include "io_reg.h" +#include "types.h" +#include "multi_boot.h" +#include "syscall.h" +#include "macro.h" +#include "isagbprint.h" + +#endif // GUARD_GBA_GBA_H diff --git a/include/gba/io_reg.h b/include/gba/io_reg.h new file mode 100644 index 00000000..e331da40 --- /dev/null +++ b/include/gba/io_reg.h @@ -0,0 +1,789 @@ +#ifndef GUARD_GBA_IO_REG_H +#define GUARD_GBA_IO_REG_H + +#define REG_BASE 0x4000000 // I/O register base address + +// I/O register offsets + +#define REG_OFFSET_DISPCNT 0x0 +#define REG_OFFSET_DISPSTAT 0x4 +#define REG_OFFSET_VCOUNT 0x6 +#define REG_OFFSET_BG0CNT 0x8 +#define REG_OFFSET_BG1CNT 0xa +#define REG_OFFSET_BG2CNT 0xc +#define REG_OFFSET_BG3CNT 0xe +#define REG_OFFSET_BG0HOFS 0x10 +#define REG_OFFSET_BG0VOFS 0x12 +#define REG_OFFSET_BG1HOFS 0x14 +#define REG_OFFSET_BG1VOFS 0x16 +#define REG_OFFSET_BG2HOFS 0x18 +#define REG_OFFSET_BG2VOFS 0x1a +#define REG_OFFSET_BG3HOFS 0x1c +#define REG_OFFSET_BG3VOFS 0x1e +#define REG_OFFSET_BG2PA 0x20 +#define REG_OFFSET_BG2PB 0x22 +#define REG_OFFSET_BG2PC 0x24 +#define REG_OFFSET_BG2PD 0x26 +#define REG_OFFSET_BG2X 0x28 +#define REG_OFFSET_BG2X_L 0x28 +#define REG_OFFSET_BG2X_H 0x2a +#define REG_OFFSET_BG2Y 0x2c +#define REG_OFFSET_BG2Y_L 0x2c +#define REG_OFFSET_BG2Y_H 0x2e +#define REG_OFFSET_BG3PA 0x30 +#define REG_OFFSET_BG3PB 0x32 +#define REG_OFFSET_BG3PC 0x34 +#define REG_OFFSET_BG3PD 0x36 +#define REG_OFFSET_BG3X 0x38 +#define REG_OFFSET_BG3X_L 0x38 +#define REG_OFFSET_BG3X_H 0x3a +#define REG_OFFSET_BG3Y 0x3c +#define REG_OFFSET_BG3Y_L 0x3c +#define REG_OFFSET_BG3Y_H 0x3e +#define REG_OFFSET_WIN0H 0x40 +#define REG_OFFSET_WIN1H 0x42 +#define REG_OFFSET_WIN0V 0x44 +#define REG_OFFSET_WIN1V 0x46 +#define REG_OFFSET_WININ 0x48 +#define REG_OFFSET_WINOUT 0x4a +#define REG_OFFSET_MOSAIC 0x4c +#define REG_OFFSET_BLDCNT 0x50 +#define REG_OFFSET_BLDALPHA 0x52 +#define REG_OFFSET_BLDY 0x54 + +#define REG_OFFSET_SOUND1CNT_L 0x60 +#define REG_OFFSET_NR10 0x60 +#define REG_OFFSET_SOUND1CNT_H 0x62 +#define REG_OFFSET_NR11 0x62 +#define REG_OFFSET_NR12 0x63 +#define REG_OFFSET_SOUND1CNT_X 0x64 +#define REG_OFFSET_NR13 0x64 +#define REG_OFFSET_NR14 0x65 +#define REG_OFFSET_SOUND2CNT_L 0x68 +#define REG_OFFSET_NR21 0x68 +#define REG_OFFSET_NR22 0x69 +#define REG_OFFSET_SOUND2CNT_H 0x6c +#define REG_OFFSET_NR23 0x6c +#define REG_OFFSET_NR24 0x6d +#define REG_OFFSET_SOUND3CNT_L 0x70 +#define REG_OFFSET_NR30 0x70 +#define REG_OFFSET_SOUND3CNT_H 0x72 +#define REG_OFFSET_NR31 0x72 +#define REG_OFFSET_NR32 0x73 +#define REG_OFFSET_SOUND3CNT_X 0x74 +#define REG_OFFSET_NR33 0x74 +#define REG_OFFSET_NR34 0x75 +#define REG_OFFSET_SOUND4CNT_L 0x78 +#define REG_OFFSET_NR41 0x78 +#define REG_OFFSET_NR42 0x79 +#define REG_OFFSET_SOUND4CNT_H 0x7c +#define REG_OFFSET_NR43 0x7c +#define REG_OFFSET_NR44 0x7d +#define REG_OFFSET_SOUNDCNT_L 0x80 +#define REG_OFFSET_NR50 0x80 +#define REG_OFFSET_NR51 0x81 +#define REG_OFFSET_SOUNDCNT_H 0x82 +#define REG_OFFSET_SOUNDCNT_X 0x84 +#define REG_OFFSET_NR52 0x84 +#define REG_OFFSET_SOUNDBIAS 0x88 +#define REG_OFFSET_SOUNDBIAS_L 0x88 +#define REG_OFFSET_SOUNDBIAS_H 0x89 +#define REG_OFFSET_WAVE_RAM0 0x90 +#define REG_OFFSET_WAVE_RAM1 0x94 +#define REG_OFFSET_WAVE_RAM2 0x98 +#define REG_OFFSET_WAVE_RAM3 0x9c +#define REG_OFFSET_FIFO_A 0xa0 +#define REG_OFFSET_FIFO_B 0xa4 + +#define REG_OFFSET_DMA0 0xb0 +#define REG_OFFSET_DMA0SAD 0xb0 +#define REG_OFFSET_DMA0SAD_L 0xb0 +#define REG_OFFSET_DMA0SAD_H 0xb2 +#define REG_OFFSET_DMA0DAD 0xb4 +#define REG_OFFSET_DMA0DAD_L 0xb4 +#define REG_OFFSET_DMA0DAD_H 0xb6 +#define REG_OFFSET_DMA0CNT 0xb8 +#define REG_OFFSET_DMA0CNT_L 0xb8 +#define REG_OFFSET_DMA0CNT_H 0xba +#define REG_OFFSET_DMA1 0xbc +#define REG_OFFSET_DMA1SAD 0xbc +#define REG_OFFSET_DMA1SAD_L 0xbc +#define REG_OFFSET_DMA1SAD_H 0xbe +#define REG_OFFSET_DMA1DAD 0xc0 +#define REG_OFFSET_DMA1DAD_L 0xc0 +#define REG_OFFSET_DMA1DAD_H 0xc2 +#define REG_OFFSET_DMA1CNT 0xc4 +#define REG_OFFSET_DMA1CNT_L 0xc4 +#define REG_OFFSET_DMA1CNT_H 0xc6 +#define REG_OFFSET_DMA2 0xc8 +#define REG_OFFSET_DMA2SAD 0xc8 +#define REG_OFFSET_DMA2SAD_L 0xc8 +#define REG_OFFSET_DMA2SAD_H 0xca +#define REG_OFFSET_DMA2DAD 0xcc +#define REG_OFFSET_DMA2DAD_L 0xcc +#define REG_OFFSET_DMA2DAD_H 0xce +#define REG_OFFSET_DMA2CNT 0xd0 +#define REG_OFFSET_DMA2CNT_L 0xd0 +#define REG_OFFSET_DMA2CNT_H 0xd2 +#define REG_OFFSET_DMA3 0xd4 +#define REG_OFFSET_DMA3SAD 0xd4 +#define REG_OFFSET_DMA3SAD_L 0xd4 +#define REG_OFFSET_DMA3SAD_H 0xd6 +#define REG_OFFSET_DMA3DAD 0xd8 +#define REG_OFFSET_DMA3DAD_L 0xd8 +#define REG_OFFSET_DMA3DAD_H 0xda +#define REG_OFFSET_DMA3CNT 0xdc +#define REG_OFFSET_DMA3CNT_L 0xdc +#define REG_OFFSET_DMA3CNT_H 0xde + +#define REG_OFFSET_TMCNT 0x100 +#define REG_OFFSET_TMCNT_L 0x100 +#define REG_OFFSET_TMCNT_H 0x102 +#define REG_OFFSET_TM0CNT 0x100 +#define REG_OFFSET_TM0CNT_L 0x100 +#define REG_OFFSET_TM0CNT_H 0x102 +#define REG_OFFSET_TM1CNT 0x104 +#define REG_OFFSET_TM1CNT_L 0x104 +#define REG_OFFSET_TM1CNT_H 0x106 +#define REG_OFFSET_TM2CNT 0x108 +#define REG_OFFSET_TM2CNT_L 0x108 +#define REG_OFFSET_TM2CNT_H 0x10a +#define REG_OFFSET_TM3CNT 0x10c +#define REG_OFFSET_TM3CNT_L 0x10c +#define REG_OFFSET_TM3CNT_H 0x10e + +#define REG_OFFSET_SIOCNT 0x128 +#define REG_OFFSET_SIODATA8 0x12a +#define REG_OFFSET_SIODATA32 0x120 +#define REG_OFFSET_SIOMLT_SEND 0x12a +#define REG_OFFSET_SIOMLT_RECV 0x120 +#define REG_OFFSET_SIOMULTI0 0x120 +#define REG_OFFSET_SIOMULTI1 0x122 +#define REG_OFFSET_SIOMULTI2 0x124 +#define REG_OFFSET_SIOMULTI3 0x126 + +#define REG_OFFSET_KEYINPUT 0x130 +#define REG_OFFSET_KEYCNT 0x132 + +#define REG_OFFSET_RCNT 0x134 + +#define REG_OFFSET_JOYCNT 0x140 +#define REG_OFFSET_JOYSTAT 0x158 +#define REG_OFFSET_JOY_RECV 0x150 +#define REG_OFFSET_JOY_RECV_L 0x150 +#define REG_OFFSET_JOY_RECV_H 0x152 +#define REG_OFFSET_JOY_TRANS 0x154 +#define REG_OFFSET_JOY_TRANS_L 0x154 +#define REG_OFFSET_JOY_TRANS_H 0x156 + +#define REG_OFFSET_IME 0x208 +#define REG_OFFSET_IE 0x200 +#define REG_OFFSET_IF 0x202 + +#define REG_OFFSET_WAITCNT 0x204 + +// I/O register addresses + +#define REG_ADDR_DISPCNT (REG_BASE + REG_OFFSET_DISPCNT) +#define REG_ADDR_DISPSTAT (REG_BASE + REG_OFFSET_DISPSTAT) +#define REG_ADDR_VCOUNT (REG_BASE + REG_OFFSET_VCOUNT) +#define REG_ADDR_BG0CNT (REG_BASE + REG_OFFSET_BG0CNT) +#define REG_ADDR_BG1CNT (REG_BASE + REG_OFFSET_BG1CNT) +#define REG_ADDR_BG2CNT (REG_BASE + REG_OFFSET_BG2CNT) +#define REG_ADDR_BG3CNT (REG_BASE + REG_OFFSET_BG3CNT) +#define REG_ADDR_BG0HOFS (REG_BASE + REG_OFFSET_BG0HOFS) +#define REG_ADDR_BG0VOFS (REG_BASE + REG_OFFSET_BG0VOFS) +#define REG_ADDR_BG1HOFS (REG_BASE + REG_OFFSET_BG1HOFS) +#define REG_ADDR_BG1VOFS (REG_BASE + REG_OFFSET_BG1VOFS) +#define REG_ADDR_BG2HOFS (REG_BASE + REG_OFFSET_BG2HOFS) +#define REG_ADDR_BG2VOFS (REG_BASE + REG_OFFSET_BG2VOFS) +#define REG_ADDR_BG3HOFS (REG_BASE + REG_OFFSET_BG3HOFS) +#define REG_ADDR_BG3VOFS (REG_BASE + REG_OFFSET_BG3VOFS) +#define REG_ADDR_BG2PA (REG_BASE + REG_OFFSET_BG2PA) +#define REG_ADDR_BG2PB (REG_BASE + REG_OFFSET_BG2PB) +#define REG_ADDR_BG2PC (REG_BASE + REG_OFFSET_BG2PC) +#define REG_ADDR_BG2PD (REG_BASE + REG_OFFSET_BG2PD) +#define REG_ADDR_BG2X (REG_BASE + REG_OFFSET_BG2X) +#define REG_ADDR_BG2X_L (REG_BASE + REG_OFFSET_BG2X_L) +#define REG_ADDR_BG2X_H (REG_BASE + REG_OFFSET_BG2X_H) +#define REG_ADDR_BG2Y (REG_BASE + REG_OFFSET_BG2Y) +#define REG_ADDR_BG2Y_L (REG_BASE + REG_OFFSET_BG2Y_L) +#define REG_ADDR_BG2Y_H (REG_BASE + REG_OFFSET_BG2Y_H) +#define REG_ADDR_BG3PA (REG_BASE + REG_OFFSET_BG3PA) +#define REG_ADDR_BG3PB (REG_BASE + REG_OFFSET_BG3PB) +#define REG_ADDR_BG3PC (REG_BASE + REG_OFFSET_BG3PC) +#define REG_ADDR_BG3PD (REG_BASE + REG_OFFSET_BG3PD) +#define REG_ADDR_BG3X (REG_BASE + REG_OFFSET_BG3X) +#define REG_ADDR_BG3X_L (REG_BASE + REG_OFFSET_BG3X_L) +#define REG_ADDR_BG3X_H (REG_BASE + REG_OFFSET_BG3X_H) +#define REG_ADDR_BG3Y (REG_BASE + REG_OFFSET_BG3Y) +#define REG_ADDR_BG3Y_L (REG_BASE + REG_OFFSET_BG3Y_L) +#define REG_ADDR_BG3Y_H (REG_BASE + REG_OFFSET_BG3Y_H) +#define REG_ADDR_WIN0H (REG_BASE + REG_OFFSET_WIN0H) +#define REG_ADDR_WIN1H (REG_BASE + REG_OFFSET_WIN1H) +#define REG_ADDR_WIN0V (REG_BASE + REG_OFFSET_WIN0V) +#define REG_ADDR_WIN1V (REG_BASE + REG_OFFSET_WIN1V) +#define REG_ADDR_WININ (REG_BASE + REG_OFFSET_WININ) +#define REG_ADDR_WINOUT (REG_BASE + REG_OFFSET_WINOUT) +#define REG_ADDR_MOSAIC (REG_BASE + REG_OFFSET_MOSAIC) +#define REG_ADDR_BLDCNT (REG_BASE + REG_OFFSET_BLDCNT) +#define REG_ADDR_BLDALPHA (REG_BASE + REG_OFFSET_BLDALPHA) +#define REG_ADDR_BLDY (REG_BASE + REG_OFFSET_BLDY) + +#define REG_ADDR_SOUND1CNT_L (REG_BASE + REG_OFFSET_SOUND1CNT_L) +#define REG_ADDR_NR10 (REG_BASE + REG_OFFSET_NR10) +#define REG_ADDR_SOUND1CNT_H (REG_BASE + REG_OFFSET_SOUND1CNT_H) +#define REG_ADDR_NR11 (REG_BASE + REG_OFFSET_NR11) +#define REG_ADDR_NR12 (REG_BASE + REG_OFFSET_NR12) +#define REG_ADDR_SOUND1CNT_X (REG_BASE + REG_OFFSET_SOUND1CNT_X) +#define REG_ADDR_NR13 (REG_BASE + REG_OFFSET_NR13) +#define REG_ADDR_NR14 (REG_BASE + REG_OFFSET_NR14) +#define REG_ADDR_SOUND2CNT_L (REG_BASE + REG_OFFSET_SOUND2CNT_L) +#define REG_ADDR_NR21 (REG_BASE + REG_OFFSET_NR21) +#define REG_ADDR_NR22 (REG_BASE + REG_OFFSET_NR22) +#define REG_ADDR_SOUND2CNT_H (REG_BASE + REG_OFFSET_SOUND2CNT_H) +#define REG_ADDR_NR23 (REG_BASE + REG_OFFSET_NR23) +#define REG_ADDR_NR24 (REG_BASE + REG_OFFSET_NR24) +#define REG_ADDR_SOUND3CNT_L (REG_BASE + REG_OFFSET_SOUND3CNT_L) +#define REG_ADDR_NR30 (REG_BASE + REG_OFFSET_NR30) +#define REG_ADDR_SOUND3CNT_H (REG_BASE + REG_OFFSET_SOUND3CNT_H) +#define REG_ADDR_NR31 (REG_BASE + REG_OFFSET_NR31) +#define REG_ADDR_NR32 (REG_BASE + REG_OFFSET_NR32) +#define REG_ADDR_SOUND3CNT_X (REG_BASE + REG_OFFSET_SOUND3CNT_X) +#define REG_ADDR_NR33 (REG_BASE + REG_OFFSET_NR33) +#define REG_ADDR_NR34 (REG_BASE + REG_OFFSET_NR34) +#define REG_ADDR_SOUND4CNT_L (REG_BASE + REG_OFFSET_SOUND4CNT_L) +#define REG_ADDR_NR41 (REG_BASE + REG_OFFSET_NR41) +#define REG_ADDR_NR42 (REG_BASE + REG_OFFSET_NR42) +#define REG_ADDR_SOUND4CNT_H (REG_BASE + REG_OFFSET_SOUND4CNT_H) +#define REG_ADDR_NR43 (REG_BASE + REG_OFFSET_NR43) +#define REG_ADDR_NR44 (REG_BASE + REG_OFFSET_NR44) +#define REG_ADDR_SOUNDCNT_L (REG_BASE + REG_OFFSET_SOUNDCNT_L) +#define REG_ADDR_NR50 (REG_BASE + REG_OFFSET_NR50) +#define REG_ADDR_NR51 (REG_BASE + REG_OFFSET_NR51) +#define REG_ADDR_SOUNDCNT_H (REG_BASE + REG_OFFSET_SOUNDCNT_H) +#define REG_ADDR_SOUNDCNT_X (REG_BASE + REG_OFFSET_SOUNDCNT_X) +#define REG_ADDR_NR52 (REG_BASE + REG_OFFSET_NR52) +#define REG_ADDR_SOUNDBIAS (REG_BASE + REG_OFFSET_SOUNDBIAS) +#define REG_ADDR_SOUNDBIAS_L (REG_BASE + REG_OFFSET_SOUNDBIAS_L) +#define REG_ADDR_SOUNDBIAS_H (REG_BASE + REG_OFFSET_SOUNDBIAS_H) +#define REG_ADDR_WAVE_RAM0 (REG_BASE + REG_OFFSET_WAVE_RAM0) +#define REG_ADDR_WAVE_RAM1 (REG_BASE + REG_OFFSET_WAVE_RAM1) +#define REG_ADDR_WAVE_RAM2 (REG_BASE + REG_OFFSET_WAVE_RAM2) +#define REG_ADDR_WAVE_RAM3 (REG_BASE + REG_OFFSET_WAVE_RAM3) +#define REG_ADDR_FIFO_A (REG_BASE + REG_OFFSET_FIFO_A) +#define REG_ADDR_FIFO_B (REG_BASE + REG_OFFSET_FIFO_B) + +#define REG_ADDR_DMA0 (REG_BASE + REG_OFFSET_DMA0) +#define REG_ADDR_DMA0SAD (REG_BASE + REG_OFFSET_DMA0SAD) +#define REG_ADDR_DMA0DAD (REG_BASE + REG_OFFSET_DMA0DAD) +#define REG_ADDR_DMA0CNT (REG_BASE + REG_OFFSET_DMA0CNT) +#define REG_ADDR_DMA0CNT_L (REG_BASE + REG_OFFSET_DMA0CNT_L) +#define REG_ADDR_DMA0CNT_H (REG_BASE + REG_OFFSET_DMA0CNT_H) +#define REG_ADDR_DMA1 (REG_BASE + REG_OFFSET_DMA1) +#define REG_ADDR_DMA1SAD (REG_BASE + REG_OFFSET_DMA1SAD) +#define REG_ADDR_DMA1DAD (REG_BASE + REG_OFFSET_DMA1DAD) +#define REG_ADDR_DMA1CNT (REG_BASE + REG_OFFSET_DMA1CNT) +#define REG_ADDR_DMA1CNT_L (REG_BASE + REG_OFFSET_DMA1CNT_L) +#define REG_ADDR_DMA1CNT_H (REG_BASE + REG_OFFSET_DMA1CNT_H) +#define REG_ADDR_DMA2 (REG_BASE + REG_OFFSET_DMA2) +#define REG_ADDR_DMA2SAD (REG_BASE + REG_OFFSET_DMA2SAD) +#define REG_ADDR_DMA2DAD (REG_BASE + REG_OFFSET_DMA2DAD) +#define REG_ADDR_DMA2CNT (REG_BASE + REG_OFFSET_DMA2CNT) +#define REG_ADDR_DMA2CNT_L (REG_BASE + REG_OFFSET_DMA2CNT_L) +#define REG_ADDR_DMA2CNT_H (REG_BASE + REG_OFFSET_DMA2CNT_H) +#define REG_ADDR_DMA3 (REG_BASE + REG_OFFSET_DMA3) +#define REG_ADDR_DMA3SAD (REG_BASE + REG_OFFSET_DMA3SAD) +#define REG_ADDR_DMA3DAD (REG_BASE + REG_OFFSET_DMA3DAD) +#define REG_ADDR_DMA3CNT (REG_BASE + REG_OFFSET_DMA3CNT) +#define REG_ADDR_DMA3CNT_L (REG_BASE + REG_OFFSET_DMA3CNT_L) +#define REG_ADDR_DMA3CNT_H (REG_BASE + REG_OFFSET_DMA3CNT_H) + +#define REG_ADDR_TMCNT (REG_BASE + REG_OFFSET_TMCNT) +#define REG_ADDR_TMCNT_L (REG_BASE + REG_OFFSET_TMCNT_L) +#define REG_ADDR_TMCNT_H (REG_BASE + REG_OFFSET_TMCNT_H) +#define REG_ADDR_TM0CNT (REG_BASE + REG_OFFSET_TM0CNT) +#define REG_ADDR_TM0CNT_L (REG_BASE + REG_OFFSET_TM0CNT_L) +#define REG_ADDR_TM0CNT_H (REG_BASE + REG_OFFSET_TM0CNT_H) +#define REG_ADDR_TM1CNT (REG_BASE + REG_OFFSET_TM1CNT) +#define REG_ADDR_TM1CNT_L (REG_BASE + REG_OFFSET_TM1CNT_L) +#define REG_ADDR_TM1CNT_H (REG_BASE + REG_OFFSET_TM1CNT_H) +#define REG_ADDR_TM2CNT (REG_BASE + REG_OFFSET_TM2CNT) +#define REG_ADDR_TM2CNT_L (REG_BASE + REG_OFFSET_TM2CNT_L) +#define REG_ADDR_TM2CNT_H (REG_BASE + REG_OFFSET_TM2CNT_H) +#define REG_ADDR_TM3CNT (REG_BASE + REG_OFFSET_TM3CNT) +#define REG_ADDR_TM3CNT_L (REG_BASE + REG_OFFSET_TM3CNT_L) +#define REG_ADDR_TM3CNT_H (REG_BASE + REG_OFFSET_TM3CNT_H) + +#define REG_ADDR_SIOCNT (REG_BASE + REG_OFFSET_SIOCNT) +#define REG_ADDR_SIODATA8 (REG_BASE + REG_OFFSET_SIODATA8) +#define REG_ADDR_SIODATA32 (REG_BASE + REG_OFFSET_SIODATA32) +#define REG_ADDR_SIOMLT_SEND (REG_BASE + REG_OFFSET_SIOMLT_SEND) +#define REG_ADDR_SIOMLT_RECV (REG_BASE + REG_OFFSET_SIOMLT_RECV) +#define REG_ADDR_SIOMULTI0 (REG_BASE + REG_OFFSET_SIOMULTI0) +#define REG_ADDR_SIOMULTI1 (REG_BASE + REG_OFFSET_SIOMULTI1) +#define REG_ADDR_SIOMULTI2 (REG_BASE + REG_OFFSET_SIOMULTI2) +#define REG_ADDR_SIOMULTI3 (REG_BASE + REG_OFFSET_SIOMULTI3) + +#define REG_ADDR_KEYINPUT (REG_BASE + REG_OFFSET_KEYINPUT) +#define REG_ADDR_KEYCNT (REG_BASE + REG_OFFSET_KEYCNT) + +#define REG_ADDR_RCNT (REG_BASE + REG_OFFSET_RCNT) + +#define REG_ADDR_JOYCNT (REG_BASE + REG_OFFSET_JOYCNT) +#define REG_ADDR_JOYSTAT (REG_BASE + REG_OFFSET_JOYSTAT) +#define REG_ADDR_JOY_RECV (REG_BASE + REG_OFFSET_JOY_RECV) +#define REG_ADDR_JOY_RECV_L (REG_BASE + REG_OFFSET_JOY_RECV_L) +#define REG_ADDR_JOY_RECV_H (REG_BASE + REG_OFFSET_JOY_RECV_H) +#define REG_ADDR_JOY_TRANS (REG_BASE + REG_OFFSET_JOY_TRANS) +#define REG_ADDR_JOY_TRANS_L (REG_BASE + REG_OFFSET_JOY_TRANS_L) +#define REG_ADDR_JOY_TRANS_H (REG_BASE + REG_OFFSET_JOY_TRANS_H) + +#define REG_ADDR_IME (REG_BASE + REG_OFFSET_IME) +#define REG_ADDR_IE (REG_BASE + REG_OFFSET_IE) +#define REG_ADDR_IF (REG_BASE + REG_OFFSET_IF) + +#define REG_ADDR_WAITCNT (REG_BASE + REG_OFFSET_WAITCNT) + +// I/O registers + +#define REG_DISPCNT (*(vu16 *)REG_ADDR_DISPCNT) +#define REG_DISPSTAT (*(vu16 *)REG_ADDR_DISPSTAT) +#define REG_VCOUNT (*(vu16 *)REG_ADDR_VCOUNT) +#define REG_BG0CNT (*(vu16 *)REG_ADDR_BG0CNT) +#define REG_BG1CNT (*(vu16 *)REG_ADDR_BG1CNT) +#define REG_BG2CNT (*(vu16 *)REG_ADDR_BG2CNT) +#define REG_BG3CNT (*(vu16 *)REG_ADDR_BG3CNT) +#define REG_BG0HOFS (*(vu16 *)REG_ADDR_BG0HOFS) +#define REG_BG0VOFS (*(vu16 *)REG_ADDR_BG0VOFS) +#define REG_BG1HOFS (*(vu16 *)REG_ADDR_BG1HOFS) +#define REG_BG1VOFS (*(vu16 *)REG_ADDR_BG1VOFS) +#define REG_BG2HOFS (*(vu16 *)REG_ADDR_BG2HOFS) +#define REG_BG2VOFS (*(vu16 *)REG_ADDR_BG2VOFS) +#define REG_BG3HOFS (*(vu16 *)REG_ADDR_BG3HOFS) +#define REG_BG3VOFS (*(vu16 *)REG_ADDR_BG3VOFS) +#define REG_BG2PA (*(vu16 *)REG_ADDR_BG2PA) +#define REG_BG2PB (*(vu16 *)REG_ADDR_BG2PB) +#define REG_BG2PC (*(vu16 *)REG_ADDR_BG2PC) +#define REG_BG2PD (*(vu16 *)REG_ADDR_BG2PD) +#define REG_BG2X (*(vu32 *)REG_ADDR_BG2X) +#define REG_BG2X_L (*(vu16 *)REG_ADDR_BG2X_L) +#define REG_BG2X_H (*(vu16 *)REG_ADDR_BG2X_H) +#define REG_BG2Y (*(vu32 *)REG_ADDR_BG2Y) +#define REG_BG2Y_L (*(vu16 *)REG_ADDR_BG2Y_L) +#define REG_BG2Y_H (*(vu16 *)REG_ADDR_BG2Y_H) +#define REG_BG3PA (*(vu16 *)REG_ADDR_BG3PA) +#define REG_BG3PB (*(vu16 *)REG_ADDR_BG3PB) +#define REG_BG3PC (*(vu16 *)REG_ADDR_BG3PC) +#define REG_BG3PD (*(vu16 *)REG_ADDR_BG3PD) +#define REG_BG3X (*(vu32 *)REG_ADDR_BG3X) +#define REG_BG3X_L (*(vu16 *)REG_ADDR_BG3X_L) +#define REG_BG3X_H (*(vu16 *)REG_ADDR_BG3X_H) +#define REG_BG3Y (*(vu32 *)REG_ADDR_BG3Y) +#define REG_BG3Y_L (*(vu16 *)REG_ADDR_BG3Y_L) +#define REG_BG3Y_H (*(vu16 *)REG_ADDR_BG3Y_H) +#define REG_WIN0H (*(vu16 *)REG_ADDR_WIN0H) +#define REG_WIN1H (*(vu16 *)REG_ADDR_WIN1H) +#define REG_WIN0V (*(vu16 *)REG_ADDR_WIN0V) +#define REG_WIN1V (*(vu16 *)REG_ADDR_WIN1V) +#define REG_WININ (*(vu16 *)REG_ADDR_WININ) +#define REG_WINOUT (*(vu16 *)REG_ADDR_WINOUT) +#define REG_MOSAIC (*(vu16 *)REG_ADDR_MOSAIC) +#define REG_BLDCNT (*(vu16 *)REG_ADDR_BLDCNT) +#define REG_BLDALPHA (*(vu16 *)REG_ADDR_BLDALPHA) +#define REG_BLDY (*(vu16 *)REG_ADDR_BLDY) + +#define REG_SOUND1CNT_L (*(vu16 *)REG_ADDR_SOUND1CNT_L) +#define REG_NR10 (*(vu8 *)REG_ADDR_NR10) +#define REG_SOUND1CNT_H (*(vu16 *)REG_ADDR_SOUND1CNT_H) +#define REG_NR11 (*(vu8 *)REG_ADDR_NR11) +#define REG_NR12 (*(vu8 *)REG_ADDR_NR12) +#define REG_SOUND1CNT_X (*(vu16 *)REG_ADDR_SOUND1CNT_X) +#define REG_NR13 (*(vu8 *)REG_ADDR_NR13) +#define REG_NR14 (*(vu8 *)REG_ADDR_NR14) +#define REG_SOUND2CNT_L (*(vu16 *)REG_ADDR_SOUND2CNT_L) +#define REG_NR21 (*(vu8 *)REG_ADDR_NR21) +#define REG_NR22 (*(vu8 *)REG_ADDR_NR22) +#define REG_SOUND2CNT_H (*(vu16 *)REG_ADDR_SOUND2CNT_H) +#define REG_NR23 (*(vu8 *)REG_ADDR_NR23) +#define REG_NR24 (*(vu8 *)REG_ADDR_NR24) +#define REG_SOUND3CNT_L (*(vu16 *)REG_ADDR_SOUND3CNT_L) +#define REG_NR30 (*(vu8 *)REG_ADDR_NR30) +#define REG_SOUND3CNT_H (*(vu16 *)REG_ADDR_SOUND3CNT_H) +#define REG_NR31 (*(vu8 *)REG_ADDR_NR31) +#define REG_NR32 (*(vu8 *)REG_ADDR_NR32) +#define REG_SOUND3CNT_X (*(vu16 *)REG_ADDR_SOUND3CNT_X) +#define REG_NR33 (*(vu8 *)REG_ADDR_NR33) +#define REG_NR34 (*(vu8 *)REG_ADDR_NR34) +#define REG_SOUND4CNT_L (*(vu16 *)REG_ADDR_SOUND4CNT_L) +#define REG_NR41 (*(vu8 *)REG_ADDR_NR41) +#define REG_NR42 (*(vu8 *)REG_ADDR_NR42) +#define REG_SOUND4CNT_H (*(vu16 *)REG_ADDR_SOUND4CNT_H) +#define REG_NR43 (*(vu8 *)REG_ADDR_NR43) +#define REG_NR44 (*(vu8 *)REG_ADDR_NR44) +#define REG_SOUNDCNT_L (*(vu16 *)REG_ADDR_SOUNDCNT_L) +#define REG_NR50 (*(vu8 *)REG_ADDR_NR50) +#define REG_NR51 (*(vu8 *)REG_ADDR_NR51) +#define REG_SOUNDCNT_H (*(vu16 *)REG_ADDR_SOUNDCNT_H) +#define REG_SOUNDCNT_X (*(vu16 *)REG_ADDR_SOUNDCNT_X) +#define REG_NR52 (*(vu8 *)REG_ADDR_NR52) +#define REG_SOUNDBIAS (*(vu16 *)REG_ADDR_SOUNDBIAS) +#define REG_SOUNDBIAS_L (*(vu8 *)REG_ADDR_SOUNDBIAS_L) +#define REG_SOUNDBIAS_H (*(vu8 *)REG_ADDR_SOUNDBIAS_H) +#define REG_WAVE_RAM0 (*(vu32 *)REG_ADDR_WAVE_RAM0) +#define REG_WAVE_RAM1 (*(vu32 *)REG_ADDR_WAVE_RAM1) +#define REG_WAVE_RAM2 (*(vu32 *)REG_ADDR_WAVE_RAM2) +#define REG_WAVE_RAM3 (*(vu32 *)REG_ADDR_WAVE_RAM3) +#define REG_FIFO_A (*(vu32 *)REG_ADDR_FIFO_A) +#define REG_FIFO_B (*(vu32 *)REG_ADDR_FIFO_B) + +#define REG_DMA0SAD (*(vu32 *)REG_ADDR_DMA0SAD) +#define REG_DMA0DAD (*(vu32 *)REG_ADDR_DMA0DAD) +#define REG_DMA0CNT (*(vu32 *)REG_ADDR_DMA0CNT) +#define REG_DMA0CNT_L (*(vu16 *)REG_ADDR_DMA0CNT_L) +#define REG_DMA0CNT_H (*(vu16 *)REG_ADDR_DMA0CNT_H) + +#define REG_DMA1SAD (*(vu32 *)REG_ADDR_DMA1SAD) +#define REG_DMA1DAD (*(vu32 *)REG_ADDR_DMA1DAD) +#define REG_DMA1CNT (*(vu32 *)REG_ADDR_DMA1CNT) +#define REG_DMA1CNT_L (*(vu16 *)REG_ADDR_DMA1CNT_L) +#define REG_DMA1CNT_H (*(vu16 *)REG_ADDR_DMA1CNT_H) + +#define REG_DMA2SAD (*(vu32 *)REG_ADDR_DMA2SAD) +#define REG_DMA2DAD (*(vu32 *)REG_ADDR_DMA2DAD) +#define REG_DMA2CNT (*(vu32 *)REG_ADDR_DMA2CNT) +#define REG_DMA2CNT_L (*(vu16 *)REG_ADDR_DMA2CNT_L) +#define REG_DMA2CNT_H (*(vu16 *)REG_ADDR_DMA2CNT_H) + +#define REG_DMA3SAD (*(vu32 *)REG_ADDR_DMA3SAD) +#define REG_DMA3DAD (*(vu32 *)REG_ADDR_DMA3DAD) +#define REG_DMA3CNT (*(vu32 *)REG_ADDR_DMA3CNT) +#define REG_DMA3CNT_L (*(vu16 *)REG_ADDR_DMA3CNT_L) +#define REG_DMA3CNT_H (*(vu16 *)REG_ADDR_DMA3CNT_H) + +#define REG_TMCNT(n) (*(vu32 *)(REG_ADDR_TMCNT + ((n) * 4))) +#define REG_TMCNT_L(n) (*(vu16 *)(REG_ADDR_TMCNT_L + ((n) * 4))) +#define REG_TMCNT_H(n) (*(vu16 *)(REG_ADDR_TMCNT_H + ((n) * 4))) +#define REG_TM0CNT (*(vu32 *)REG_ADDR_TM0CNT) +#define REG_TM0CNT_L (*(vu16 *)REG_ADDR_TM0CNT_L) +#define REG_TM0CNT_H (*(vu16 *)REG_ADDR_TM0CNT_H) +#define REG_TM1CNT (*(vu32 *)REG_ADDR_TM1CNT) +#define REG_TM1CNT_L (*(vu16 *)REG_ADDR_TM1CNT_L) +#define REG_TM1CNT_H (*(vu16 *)REG_ADDR_TM1CNT_H) +#define REG_TM2CNT (*(vu32 *)REG_ADDR_TM2CNT) +#define REG_TM2CNT_L (*(vu16 *)REG_ADDR_TM2CNT_L) +#define REG_TM2CNT_H (*(vu16 *)REG_ADDR_TM2CNT_H) +#define REG_TM3CNT (*(vu32 *)REG_ADDR_TM3CNT) +#define REG_TM3CNT_L (*(vu16 *)REG_ADDR_TM3CNT_L) +#define REG_TM3CNT_H (*(vu16 *)REG_ADDR_TM3CNT_H) + +#define REG_SIOCNT (*(vu16 *)REG_ADDR_SIOCNT) +#define REG_SIODATA8 (*(vu16 *)REG_ADDR_SIODATA8) +#define REG_SIODATA32 (*(vu32 *)REG_ADDR_SIODATA32) +#define REG_SIOMLT_SEND (*(vu16 *)REG_ADDR_SIOMLT_SEND) +#define REG_SIOMLT_RECV (*(vu64 *)REG_ADDR_SIOMLT_RECV) +#define REG_SIOMULTI0 (*(vu16 *)REG_ADDR_SIOMULTI0) +#define REG_SIOMULTI1 (*(vu16 *)REG_ADDR_SIOMULTI1) +#define REG_SIOMULTI2 (*(vu16 *)REG_ADDR_SIOMULTI2) +#define REG_SIOMULTI3 (*(vu16 *)REG_ADDR_SIOMULTI3) + +#define REG_KEYINPUT (*(vu16 *)REG_ADDR_KEYINPUT) +#define REG_KEYCNT (*(vu16 *)REG_ADDR_KEYCNT) + +#define REG_RCNT (*(vu16 *)REG_ADDR_RCNT) + +#define REG_IME (*(vu16 *)REG_ADDR_IME) +#define REG_IE (*(vu16 *)REG_ADDR_IE) +#define REG_IF (*(vu16 *)REG_ADDR_IF) + +#define REG_WAITCNT (*(vu16 *)REG_ADDR_WAITCNT) + +// I/O register fields + +// DISPCNT +#define DISPCNT_MODE_0 0x0000 // BG0: text, BG1: text, BG2: text, BG3: text +#define DISPCNT_MODE_1 0x0001 // BG0: text, BG1: text, BG2: affine, BG3: off +#define DISPCNT_MODE_2 0x0002 // BG0: off, BG1: off, BG2: affine, BG3: affine +#define DISPCNT_MODE_3 0x0003 // Bitmap mode, 240x160, BGR555 color +#define DISPCNT_MODE_4 0x0004 // Bitmap mode, 240x160, 256 color palette +#define DISPCNT_MODE_5 0x0005 // Bitmap mode, 160x128, BGR555 color +#define DISPCNT_OBJ_1D_MAP 0x0040 +#define DISPCNT_FORCED_BLANK 0x0080 +#define DISPCNT_BG0_ON 0x0100 +#define DISPCNT_BG1_ON 0x0200 +#define DISPCNT_BG2_ON 0x0400 +#define DISPCNT_BG3_ON 0x0800 +#define DISPCNT_BG_ALL_ON 0x0F00 +#define DISPCNT_OBJ_ON 0x1000 +#define DISPCNT_WIN0_ON 0x2000 +#define DISPCNT_WIN1_ON 0x4000 +#define DISPCNT_OBJWIN_ON 0x8000 + +// DISPSTAT +#define DISPSTAT_VBLANK 0x0001 // in V-Blank +#define DISPSTAT_HBLANK 0x0002 // in H-Blank +#define DISPSTAT_VCOUNT 0x0004 // V-Count match +#define DISPSTAT_VBLANK_INTR 0x0008 // V-Blank interrupt enabled +#define DISPSTAT_HBLANK_INTR 0x0010 // H-Blank interrupt enabled +#define DISPSTAT_VCOUNT_INTR 0x0020 // V-Count interrupt enabled + +// BGCNT +#define BGCNT_PRIORITY(n) (n) // Values 0 - 3. Lower priority BGs will be drawn on top of higher priority BGs. +#define BGCNT_CHARBASE(n) ((n) << 2) // Values 0 - 3. Base block for tile pixel data. +#define BGCNT_MOSAIC 0x0040 +#define BGCNT_16COLOR 0x0000 // 4 bits per pixel +#define BGCNT_256COLOR 0x0080 // 8 bits per pixel +#define BGCNT_SCREENBASE(n) ((n) << 8) // Values 0 - 31. Base block for tile map. +#define BGCNT_WRAP 0x2000 // Only affects affine BGs. Text BGs wrap by default. +#define BGCNT_TXT256x256 0x0000 // Internal screen size size of text mode BG in pixels. +#define BGCNT_TXT512x256 0x4000 +#define BGCNT_TXT256x512 0x8000 +#define BGCNT_TXT512x512 0xC000 +#define BGCNT_AFF128x128 0x0000 // Internal screen size size of affine mode BG in pixels. +#define BGCNT_AFF256x256 0x4000 +#define BGCNT_AFF512x512 0x8000 +#define BGCNT_AFF1024x1024 0xC000 + +// WININ/OUT +#define WININ_WIN0_BG0 (1 << 0) +#define WININ_WIN0_BG1 (1 << 1) +#define WININ_WIN0_BG2 (1 << 2) +#define WININ_WIN0_BG3 (1 << 3) +#define WININ_WIN0_BG_ALL (WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_BG3) +#define WININ_WIN0_OBJ (1 << 4) +#define WININ_WIN0_CLR (1 << 5) +#define WININ_WIN1_BG0 (1 << 8) +#define WININ_WIN1_BG1 (1 << 9) +#define WININ_WIN1_BG2 (1 << 10) +#define WININ_WIN1_BG3 (1 << 11) +#define WININ_WIN1_BG_ALL (WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG2 | WININ_WIN1_BG3) +#define WININ_WIN1_OBJ (1 << 12) +#define WININ_WIN1_CLR (1 << 13) + +#define WINOUT_WIN01_BG0 (1 << 0) +#define WINOUT_WIN01_BG1 (1 << 1) +#define WINOUT_WIN01_BG2 (1 << 2) +#define WINOUT_WIN01_BG3 (1 << 3) +#define WINOUT_WIN01_BG_ALL (WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_BG3) +#define WINOUT_WIN01_OBJ (1 << 4) +#define WINOUT_WIN01_CLR (1 << 5) +#define WINOUT_WINOBJ_BG0 (1 << 8) +#define WINOUT_WINOBJ_BG1 (1 << 9) +#define WINOUT_WINOBJ_BG2 (1 << 10) +#define WINOUT_WINOBJ_BG3 (1 << 11) +#define WINOUT_WINOBJ_BG_ALL (WINOUT_WINOBJ_BG0 | WINOUT_WINOBJ_BG1 | WINOUT_WINOBJ_BG2 | WINOUT_WINOBJ_BG3) +#define WINOUT_WINOBJ_OBJ (1 << 12) +#define WINOUT_WINOBJ_CLR (1 << 13) + +#define WIN_RANGE(a, b) (((a) << 8) | (b)) +#define WIN_RANGE2(a, b) ((b) | ((a) << 8)) + +// BLDCNT +// Bits 0-5 select layers for the 1st target +#define BLDCNT_TGT1_BG0 (1 << 0) +#define BLDCNT_TGT1_BG1 (1 << 1) +#define BLDCNT_TGT1_BG2 (1 << 2) +#define BLDCNT_TGT1_BG3 (1 << 3) +#define BLDCNT_TGT1_OBJ (1 << 4) +#define BLDCNT_TGT1_BD (1 << 5) +// Bits 6-7 select the special effect +#define BLDCNT_EFFECT_NONE (0 << 6) // no special effect +#define BLDCNT_EFFECT_BLEND (1 << 6) // 1st+2nd targets mixed (controlled by BLDALPHA) +#define BLDCNT_EFFECT_LIGHTEN (2 << 6) // 1st target becomes whiter (controlled by BLDY) +#define BLDCNT_EFFECT_DARKEN (3 << 6) // 1st target becomes blacker (controlled by BLDY) +// Bits 8-13 select layers for the 2nd target +#define BLDCNT_TGT2_BG0 (1 << 8) +#define BLDCNT_TGT2_BG1 (1 << 9) +#define BLDCNT_TGT2_BG2 (1 << 10) +#define BLDCNT_TGT2_BG3 (1 << 11) +#define BLDCNT_TGT2_OBJ (1 << 12) +#define BLDCNT_TGT2_BD (1 << 13) +#define BLDCNT_TGT2_ALL (BLDCNT_TGT2_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD) + +// BLDALPHA +#define BLDALPHA_BLEND(target1, target2) (((target2) << 8) | (target1)) +#define BLDALPHA_BLEND2(target1, target2) ((target1) | ((target2) << 8)) + +// SOUNDCNT_H +#define SOUND_CGB_MIX_QUARTER 0x0000 +#define SOUND_CGB_MIX_HALF 0x0001 +#define SOUND_CGB_MIX_FULL 0x0002 +#define SOUND_A_MIX_HALF 0x0000 +#define SOUND_A_MIX_FULL 0x0004 +#define SOUND_B_MIX_HALF 0x0000 +#define SOUND_B_MIX_FULL 0x0008 +#define SOUND_ALL_MIX_FULL 0x000E +#define SOUND_A_RIGHT_OUTPUT 0x0100 +#define SOUND_A_LEFT_OUTPUT 0x0200 +#define SOUND_A_TIMER_0 0x0000 +#define SOUND_A_TIMER_1 0x0400 +#define SOUND_A_FIFO_RESET 0x0800 +#define SOUND_B_RIGHT_OUTPUT 0x1000 +#define SOUND_B_LEFT_OUTPUT 0x2000 +#define SOUND_B_TIMER_0 0x0000 +#define SOUND_B_TIMER_1 0x4000 +#define SOUND_B_FIFO_RESET 0x8000 + +// SOUNDCNT_X +#define SOUND_1_ON 0x0001 +#define SOUND_2_ON 0x0002 +#define SOUND_3_ON 0x0004 +#define SOUND_4_ON 0x0008 +#define SOUND_MASTER_ENABLE 0x0080 + +// DMA +#define DMA_DEST_INC 0x0000 +#define DMA_DEST_DEC 0x0020 +#define DMA_DEST_FIXED 0x0040 +#define DMA_DEST_RELOAD 0x0060 +#define DMA_SRC_INC 0x0000 +#define DMA_SRC_DEC 0x0080 +#define DMA_SRC_FIXED 0x0100 +#define DMA_REPEAT 0x0200 +#define DMA_16BIT 0x0000 +#define DMA_32BIT 0x0400 +#define DMA_DREQ_ON 0x0800 +#define DMA_START_NOW 0x0000 +#define DMA_START_VBLANK 0x1000 +#define DMA_START_HBLANK 0x2000 +#define DMA_START_SPECIAL 0x3000 +#define DMA_START_MASK 0x3000 +#define DMA_INTR_ENABLE 0x4000 +#define DMA_ENABLE 0x8000 + +// timer +#define TIMER_1CLK 0x00 +#define TIMER_64CLK 0x01 +#define TIMER_256CLK 0x02 +#define TIMER_1024CLK 0x03 +#define TIMER_INTR_ENABLE 0x40 +#define TIMER_ENABLE 0x80 + +// serial +#define SIO_ID 0x0030 // Communication ID + +#define SIO_8BIT_MODE 0x0000 // Normal 8-bit communication mode +#define SIO_32BIT_MODE 0x1000 // Normal 32-bit communication mode +#define SIO_MULTI_MODE 0x2000 // Multi-player communication mode +#define SIO_UART_MODE 0x3000 // UART communication mode + +#define SIO_SCK_OUT 0x0000 // Select external clock +#define SIO_SCK_IN 0x0001 // Select internal clock +#define SIO_IN_SCK_256K 0x0000 // Select internal clock 256KHz +#define SIO_IN_SCK_2M 0x0002 // Select 2MHz +#define SIO_ACK_RECV 0x0004 // Request transfer +#define SIO_ACK_SEND 0x0008 // Enable transfer +#define SIO_9600_BPS 0x0000 // baud rate 9600 bps +#define SIO_38400_BPS 0x0001 // 38400 bps +#define SIO_57600_BPS 0x0002 // 57600 bps +#define SIO_115200_BPS 0x0003 // 115200 bps + +#define SIO_MULTI_CONNECT 0x0004 // Connecting multi-play communication +#define SIO_MULTI_DISCONNECT 0x0000 // Disconnect +#define SIO_MULTI_PARENT 0x0008 // Multi-play communication Connect master +#define SIO_MULTI_CHILD 0x0000 // Connect slave +#define SIO_MULTI_SI 0x0004 // Multi-play communication SI terminal +#define SIO_MULTI_SD 0x0008 // SD terminal +#define SIO_MULTI_BUSY 0x0080 // Multi-play communicating +#define SIO_CTS_ENABLE 0x0004 // Enable UART send enable signal +#define SIO_UART_7BIT 0x0000 // UART communication data length 7 bit +#define SIO_UART_8BIT 0x0080 // 8 bit + +#define SIO_ERROR 0x0040 // Detect error +#define SIO_START 0x0080 // Start transfer +#define SIO_ENABLE 0x0080 // Enable SIO + +#define SIO_PARITY_ENABLE 0x0200 // Enable parity +#define SIO_PARITY_EVEN 0x0000 // Even parity +#define SIO_PARITY_ODD 0x0008 // Odd parity +#define SIO_TRANS_ENABLE 0x0400 // Enable transmitter +#define SIO_TRANS_DATA_FULL 0x0010 // Transmitted data full +#define SIO_RECV_ENABLE 0x0800 // Enable receiver +#define SIO_RECV_DATA_EMPTY 0x0020 // No data received +#define SIO_INTR_ENABLE 0x4000 // Enable interrupt request + +#define SIO_MULTI_SI_SHIFT 2 +#define SIO_MULTI_SI_MASK 0x1 +#define SIO_MULTI_DI_SHIFT 3 +#define SIO_MULTI_DI_MASK 0x1 + +// keys +#define A_BUTTON 0x0001 +#define B_BUTTON 0x0002 +#define SELECT_BUTTON 0x0004 +#define START_BUTTON 0x0008 +#define DPAD_RIGHT 0x0010 +#define DPAD_LEFT 0x0020 +#define DPAD_UP 0x0040 +#define DPAD_DOWN 0x0080 +#define R_BUTTON 0x0100 +#define L_BUTTON 0x0200 +#define KEYS_MASK 0x03FF +#define KEY_INTR_ENABLE 0x0400 +#define KEY_OR_INTR 0x0000 +#define KEY_AND_INTR 0x8000 +#define DPAD_ANY 0x00F0 +#define JOY_EXCL_DPAD 0x030F + +// interrupt flags +#define INTR_FLAG_VBLANK (1 << 0) +#define INTR_FLAG_HBLANK (1 << 1) +#define INTR_FLAG_VCOUNT (1 << 2) +#define INTR_FLAG_TIMER0 (1 << 3) +#define INTR_FLAG_TIMER1 (1 << 4) +#define INTR_FLAG_TIMER2 (1 << 5) +#define INTR_FLAG_TIMER3 (1 << 6) +#define INTR_FLAG_SERIAL (1 << 7) +#define INTR_FLAG_DMA0 (1 << 8) +#define INTR_FLAG_DMA1 (1 << 9) +#define INTR_FLAG_DMA2 (1 << 10) +#define INTR_FLAG_DMA3 (1 << 11) +#define INTR_FLAG_KEYPAD (1 << 12) +#define INTR_FLAG_GAMEPAK (1 << 13) + +// WAITCNT +#define WAITCNT_SRAM_4 (0 << 0) +#define WAITCNT_SRAM_3 (1 << 0) +#define WAITCNT_SRAM_2 (2 << 0) +#define WAITCNT_SRAM_8 (3 << 0) +#define WAITCNT_SRAM_MASK (3 << 0) + +#define WAITCNT_WS0_N_4 (0 << 2) +#define WAITCNT_WS0_N_3 (1 << 2) +#define WAITCNT_WS0_N_2 (2 << 2) +#define WAITCNT_WS0_N_8 (3 << 2) +#define WAITCNT_WS0_N_MASK (3 << 2) + +#define WAITCNT_WS0_S_2 (0 << 4) +#define WAITCNT_WS0_S_1 (1 << 4) + +#define WAITCNT_WS1_N_4 (0 << 5) +#define WAITCNT_WS1_N_3 (1 << 5) +#define WAITCNT_WS1_N_2 (2 << 5) +#define WAITCNT_WS1_N_8 (3 << 5) +#define WAITCNT_WS1_N_MASK (3 << 5) + +#define WAITCNT_WS1_S_4 (0 << 7) +#define WAITCNT_WS1_S_1 (1 << 7) + +#define WAITCNT_WS2_N_4 (0 << 8) +#define WAITCNT_WS2_N_3 (1 << 8) +#define WAITCNT_WS2_N_2 (2 << 8) +#define WAITCNT_WS2_N_8 (3 << 8) +#define WAITCNT_WS2_N_MASK (3 << 8) + +#define WAITCNT_WS2_S_8 (0 << 10) +#define WAITCNT_WS2_S_1 (1 << 10) + +#define WAITCNT_PHI_OUT_NONE (0 << 11) +#define WAITCNT_PHI_OUT_4MHZ (1 << 11) +#define WAITCNT_PHI_OUT_8MHZ (2 << 11) +#define WAITCNT_PHI_OUT_16MHZ (3 << 11) +#define WAITCNT_PHI_OUT_MASK (3 << 11) + +#define WAITCNT_PREFETCH_ENABLE (1 << 14) + +#define WAITCNT_AGB (0 << 15) +#define WAITCNT_CGB (1 << 15) + +#endif // GUARD_GBA_IO_REG_H diff --git a/include/gba/isagbprint.h b/include/gba/isagbprint.h new file mode 100644 index 00000000..af207657 --- /dev/null +++ b/include/gba/isagbprint.h @@ -0,0 +1,50 @@ +#ifndef GUARD_GBA_ISAGBPRINT_H +#define GUARD_GBA_ISAGBPRINT_H + +#ifdef NDEBUG +#define AGBPrintInit() +#define AGBPutc(cChr) +#define AGBPrint(pBuf) +#define AGBPrintf(pBuf, ...) +#define AGBPrintFlush1Block() +#define AGBPrintFlush() +#define AGBAssert(pFile, nLine, pExpression, nStopProgram) +#else +void AGBPrintInit(void); +void AGBPutc(const char cChr); +void AGBPrint(const char *pBuf); +void AGBPrintf(const char *pBuf, ...); +void AGBPrintFlush1Block(void); +void AGBPrintFlush(void); +void AGBAssert(const char *pFile, int nLine, const char *pExpression, int nStopProgram); +#endif + +#undef AGB_ASSERT +#ifdef NDEBUG +#define AGB_ASSERT(exp) +#else +#define AGB_ASSERT(exp) (exp) ? ((void *)0) : AGBAssert(__FILE__, __LINE__, #exp, 1); +#endif + +#undef AGB_WARNING +#ifdef NDEBUG +#define AGB_WARNING(exp) +#else +#define AGB_WARNING(exp) (exp) ? ((void *)0) : AGBAssert(__FILE__, __LINE__, #exp, 0); +#endif + +// for matching purposes + +#ifdef NDEBUG +#define AGB_ASSERT_EX(exp, file, line) +#else +#define AGB_ASSERT_EX(exp, file, line) (exp) ? ((void *)0) : AGBAssert(file, line, #exp, 1); +#endif + +#ifdef NDEBUG +#define AGB_WARNING_EX(exp, file, line) +#else +#define AGB_WARNING_EX(exp, file, line) (exp) ? ((void *)0) : AGBAssert(file, line, #exp, 0); +#endif + +#endif // GUARD_GBA_ISAGBPRINT_H diff --git a/include/gba/m4a_internal.h b/include/gba/m4a_internal.h new file mode 100644 index 00000000..d8e9bed0 --- /dev/null +++ b/include/gba/m4a_internal.h @@ -0,0 +1,407 @@ +#ifndef GUARD_M4A_INTERNAL_H +#define GUARD_M4A_INTERNAL_H + +#include "gba/gba.h" + +// ASCII encoding of 'Smsh' in reverse +// This is presumably short for SMASH, the developer of MKS4AGB. +#define ID_NUMBER 0x68736D53 + +#define C_V 0x40 // center value for PAN, BEND, and TUNE + +#define SOUND_MODE_REVERB_VAL 0x0000007F +#define SOUND_MODE_REVERB_SET 0x00000080 +#define SOUND_MODE_MAXCHN 0x00000F00 +#define SOUND_MODE_MAXCHN_SHIFT 8 +#define SOUND_MODE_MASVOL 0x0000F000 +#define SOUND_MODE_MASVOL_SHIFT 12 +#define SOUND_MODE_FREQ_05734 0x00010000 +#define SOUND_MODE_FREQ_07884 0x00020000 +#define SOUND_MODE_FREQ_10512 0x00030000 +#define SOUND_MODE_FREQ_13379 0x00040000 +#define SOUND_MODE_FREQ_15768 0x00050000 +#define SOUND_MODE_FREQ_18157 0x00060000 +#define SOUND_MODE_FREQ_21024 0x00070000 +#define SOUND_MODE_FREQ_26758 0x00080000 +#define SOUND_MODE_FREQ_31536 0x00090000 +#define SOUND_MODE_FREQ_36314 0x000A0000 +#define SOUND_MODE_FREQ_40137 0x000B0000 +#define SOUND_MODE_FREQ_42048 0x000C0000 +#define SOUND_MODE_FREQ 0x000F0000 +#define SOUND_MODE_FREQ_SHIFT 16 +#define SOUND_MODE_DA_BIT_9 0x00800000 +#define SOUND_MODE_DA_BIT_8 0x00900000 +#define SOUND_MODE_DA_BIT_7 0x00A00000 +#define SOUND_MODE_DA_BIT_6 0x00B00000 +#define SOUND_MODE_DA_BIT 0x00B00000 +#define SOUND_MODE_DA_BIT_SHIFT 20 + +struct WaveData +{ + u16 type; + u16 status; + u32 freq; + u32 loopStart; + u32 size; // number of samples + s8 data[1]; // samples +}; + +#define TONEDATA_TYPE_CGB 0x07 +#define TONEDATA_TYPE_FIX 0x08 +#define TONEDATA_TYPE_SPL 0x40 // key split +#define TONEDATA_TYPE_RHY 0x80 // rhythm + +#define TONEDATA_P_S_PAN 0xc0 +#define TONEDATA_P_S_PAM TONEDATA_P_S_PAN + +struct ToneData +{ + u8 type; + u8 key; + u8 length; // sound length (compatible sound) + u8 pan_sweep; // pan or sweep (compatible sound ch. 1) + struct WaveData *wav; + u8 attack; + u8 decay; + u8 sustain; + u8 release; +}; + +struct CgbChannel +{ + u8 sf; + u8 ty; + u8 rightVolume; + u8 leftVolume; + u8 at; + u8 de; + u8 su; + u8 re; + u8 ky; + u8 ev; + u8 eg; + u8 ec; + u8 echoVolume; + u8 echoLength; + u8 d1; + u8 d2; + u8 gt; + u8 mk; + u8 ve; + u8 pr; + u8 rp; + u8 d3[3]; + u8 d5; + u8 sg; + u8 n4; + u8 pan; + u8 panMask; + u8 mo; + u8 le; + u8 sw; + u32 fr; + u32 *wp; + u32 cp; + u32 tp; + u32 pp; + u32 np; + u8 d4[8]; +}; + +struct MusicPlayerTrack; + +struct SoundChannel +{ + u8 status; + u8 type; + u8 rightVolume; + u8 leftVolume; + u8 attack; + u8 decay; + u8 sustain; + u8 release; + u8 ky; + u8 ev; + u8 er; + u8 el; + u8 echoVolume; + u8 echoLength; + u8 d1; + u8 d2; + u8 gt; + u8 mk; + u8 ve; + u8 pr; + u8 rp; + u8 d3[3]; + u32 ct; + u32 fw; + u32 freq; + struct WaveData *wav; + u32 cp; + struct MusicPlayerTrack *track; + u32 pp; + u32 np; + u32 d4; + u16 xpi; + u16 xpc; +}; + +#define MAX_DIRECTSOUND_CHANNELS 12 + +#define PCM_DMA_BUF_SIZE 1584 // size of Direct Sound buffer + +struct SoundInfo +{ + // This field is normally equal to ID_NUMBER but it is set to other + // values during sensitive operations for locking purposes. + // This field should be volatile but isn't. This could potentially cause + // race conditions. + u32 ident; + + vu8 pcmDmaCounter; + + // Direct Sound + u8 reverb; + u8 maxChans; + u8 masterVolume; + u8 freq; + + u8 mode; + u8 c15; + u8 pcmDmaPeriod; // number of V-blanks per PCM DMA + u8 maxLines; + u8 gap[3]; + s32 pcmSamplesPerVBlank; + s32 pcmFreq; + s32 divFreq; + struct CgbChannel *cgbChans; + u32 func; + u32 intp; + void (*CgbSound)(void); + void (*CgbOscOff)(u8); + u32 (*MidiKeyToCgbFreq)(u8, u8, u8); + u32 MPlayJumpTable; + void *plynote; + void (*ExtVolPit)(void); + u8 gap2[16]; + struct SoundChannel chans[MAX_DIRECTSOUND_CHANNELS]; + s8 pcmBuffer[PCM_DMA_BUF_SIZE * 2]; +}; + +struct SongHeader +{ + u8 trackCount; + u8 blockCount; + u8 priority; + u8 reverb; + struct ToneData *tone; + u8 *part[1]; +}; + +#define MPT_FLG_VOLSET 0x01 +#define MPT_FLG_VOLCHG 0x03 +#define MPT_FLG_PITSET 0x04 +#define MPT_FLG_PITCHG 0x0C +#define MPT_FLG_START 0x40 +#define MPT_FLG_EXIST 0x80 + +struct MusicPlayerTrack +{ + u8 flags; + u8 wait; + u8 patternLevel; + u8 repN; + u8 gateTime; + u8 key; + u8 velocity; + u8 runningStatus; + u8 keyM; + u8 pitM; + s8 keyShift; + s8 keyShiftX; + s8 tune; + u8 pitX; + s8 bend; + u8 bendRange; + u8 volMR; + u8 volML; + u8 vol; + u8 volX; + s8 pan; + s8 panX; + s8 modM; + u8 mod; + u8 modT; + u8 lfoSpeed; + u8 lfoSpeedC; + u8 lfoDelay; + u8 lfoDelayC; + u8 priority; + u8 echoVolume; + u8 echoLength; + struct SoundChannel *chan; + struct ToneData tone; + u8 gap[10]; + u16 unk_3A; + u32 unk_3C; + u8 *cmdPtr; + u8 *patternStack[3]; +}; + +#define MUSICPLAYER_STATUS_TRACK 0x0000ffff +#define MUSICPLAYER_STATUS_PAUSE 0x80000000 + +#define MAX_MUSICPLAYER_TRACKS 16 + +#define TEMPORARY_FADE 0x0001 +#define FADE_IN 0x0002 +#define FADE_VOL_MAX 64 +#define FADE_VOL_SHIFT 2 + +struct MusicPlayerInfo +{ + struct SongHeader *songHeader; + u32 status; + u8 trackCount; + u8 priority; + u8 cmd; + u8 unk_B; + u32 clock; + u8 gap[8]; + u8 *memAccArea; + u16 tempoD; + u16 tempoU; + u16 tempoI; + u16 tempoC; + u16 fadeOI; + u16 fadeOC; + u16 fadeOV; + struct MusicPlayerTrack *tracks; + struct ToneData *tone; + u32 ident; + u32 func; + u32 intp; +}; + +struct MusicPlayer +{ + struct MusicPlayerInfo *info; + struct MusicPlayerTrack *track; + u8 unk_8; + u16 unk_A; +}; + +struct Song +{ + struct SongHeader *header; + u16 ms; + u16 me; +}; + +extern const struct MusicPlayer gMPlayTable[]; +extern const struct Song gSongTable[]; + +extern u8 gMPlayMemAccArea[]; + +#define MAX_POKEMON_CRIES 2 + +extern char SoundMainRAM[]; + +extern void *gMPlayJumpTable[]; + +typedef void (*XcmdFunc)(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +extern const XcmdFunc gXcmdTable[]; + +extern struct CgbChannel gCgbChans[]; +extern const u8 gCgb3Vol[]; + +extern const u8 gScaleTable[]; +extern const u32 gFreqTable[]; +extern const u16 gPcmSamplesPerVBlankTable[]; + +extern const u8 gCgbScaleTable[]; +extern const s16 gCgbFreqTable[]; +extern const u8 gNoiseTable[]; + +extern char gNumMusicPlayers[]; +extern char gMaxLines[]; + +#define NUM_MUSIC_PLAYERS ((u16)gNumMusicPlayers) +#define MAX_LINES ((u32)gMaxLines) + +u32 umul3232H32(u32 multiplier, u32 multiplicand); +void SoundMain(void); +void SoundMainBTM(void); +void TrackStop(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track); +void MPlayMain(void); +void RealClearChain(void *x); + +void MPlayContinue(struct MusicPlayerInfo *mplayInfo); +void MPlayStart(struct MusicPlayerInfo *mplayInfo, struct SongHeader *songHeader); +void MPlayStop(struct MusicPlayerInfo *mplayInfo); +void FadeOutBody(struct MusicPlayerInfo *mplayInfo); +void TrkVolPitSet(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track); +void MPlayFadeOut(struct MusicPlayerInfo *mplayInfo, u16 speed); +void ClearChain(void *x); +void Clear64byte(void *addr); +void SoundInit(struct SoundInfo *soundInfo); +void MPlayExtender(struct CgbChannel *cgbChans); +void m4aSoundMode(u32 mode); +void MPlayOpen(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track, u8 a3); +void CgbSound(void); +void CgbOscOff(u8); +u32 MidiKeyToCgbFreq(u8, u8, u8); +void nullsub_141(void); +void MPlayJumpTableCopy(void **mplayJumpTable); +void SampleFreqSet(u32 freq); +void m4aSoundVSyncOn(void); +void m4aSoundVSyncOff(void); + +void m4aMPlayTempoControl(struct MusicPlayerInfo *mplayInfo, u16 tempo); +void m4aMPlayVolumeControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u16 volume); +void m4aMPlayPitchControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, s16 pitch); +void m4aMPlayPanpotControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, s8 pan); +void ClearModM(struct MusicPlayerTrack *track); +void m4aMPlayModDepthSet(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u8 modDepth); +void m4aMPlayLFOSpeedSet(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u8 lfoSpeed); + +// sound command handler functions +void ply_fine(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_goto(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_patt(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_pend(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_rept(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_memacc(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_prio(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_tempo(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_keysh(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_voice(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_vol(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_pan(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_bend(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_bendr(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_lfos(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_lfodl(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_mod(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_modt(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_tune(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_port(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_xcmd(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_endtie(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_note(struct MusicPlayerInfo *, struct MusicPlayerTrack *); + +// extended sound command handler functions +void ply_xxx(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_xwave(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_xtype(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_xatta(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_xdeca(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_xsust(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_xrele(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_xiecv(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_xiecl(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_xleng(struct MusicPlayerInfo *, struct MusicPlayerTrack *); +void ply_xswee(struct MusicPlayerInfo *, struct MusicPlayerTrack *); + +#endif // GUARD_M4A_INTERNAL_H diff --git a/include/gba/macro.h b/include/gba/macro.h new file mode 100644 index 00000000..cc853530 --- /dev/null +++ b/include/gba/macro.h @@ -0,0 +1,194 @@ +#ifndef GUARD_GBA_MACRO_H +#define GUARD_GBA_MACRO_H + +#define CPU_FILL(value, dest, size, bit) \ +{ \ + vu##bit tmp = (vu##bit)(value); \ + CpuSet((void *)&tmp, \ + dest, \ + CPU_SET_##bit##BIT | CPU_SET_SRC_FIXED | ((size)/(bit/8) & 0x1FFFFF)); \ +} + +#define CpuFill16(value, dest, size) CPU_FILL(value, dest, size, 16) +#define CpuFill32(value, dest, size) CPU_FILL(value, dest, size, 32) + +#define CPU_COPY(src, dest, size, bit) CpuSet(src, dest, CPU_SET_##bit##BIT | ((size)/(bit/8) & 0x1FFFFF)) + +#define CpuCopy16(src, dest, size) CPU_COPY(src, dest, size, 16) +#define CpuCopy32(src, dest, size) CPU_COPY(src, dest, size, 32) + +#define CpuFastFill(value, dest, size) \ +{ \ + vu32 tmp = (vu32)(value); \ + CpuFastSet((void *)&tmp, \ + dest, \ + CPU_FAST_SET_SRC_FIXED | ((size)/(32/8) & 0x1FFFFF)); \ +} + +#define CpuFastFill16(value, dest, size) CpuFastFill(((value) << 16) | (value), (dest), (size)) + +#define CpuFastFill8(value, dest, size) CpuFastFill(((value) << 24) | ((value) << 16) | ((value) << 8) | (value), (dest), (size)) + +#define CpuFastCopy(src, dest, size) CpuFastSet(src, dest, ((size)/(32/8) & 0x1FFFFF)) + +#define DmaSet(dmaNum, src, dest, control) \ +{ \ + vu32 *dmaRegs = (vu32 *)REG_ADDR_DMA##dmaNum; \ + dmaRegs[0] = (vu32)(src); \ + dmaRegs[1] = (vu32)(dest); \ + dmaRegs[2] = (vu32)(control); \ + dmaRegs[2]; \ +} + +#define DMA_FILL(dmaNum, value, dest, size, bit) \ +{ \ + vu##bit tmp = (vu##bit)(value); \ + DmaSet(dmaNum, \ + &tmp, \ + dest, \ + (DMA_ENABLE | DMA_START_NOW | DMA_##bit##BIT | DMA_SRC_FIXED | DMA_DEST_INC) << 16 \ + | ((size)/(bit/8))); \ +} + +#define DmaFill16(dmaNum, value, dest, size) DMA_FILL(dmaNum, value, dest, size, 16) +#define DmaFill32(dmaNum, value, dest, size) DMA_FILL(dmaNum, value, dest, size, 32) + +// Note that the DMA clear macros cause the DMA control value to be calculated +// at runtime rather than compile time. The size is divided by the DMA transfer +// unit size (2 or 4 bytes) and then combined with the DMA control flags using a +// bitwise OR operation. + +#define DMA_CLEAR(dmaNum, dest, size, bit) \ +{ \ + vu##bit *_dest = (vu##bit *)(dest); \ + u32 _size = size; \ + DmaFill##bit(dmaNum, 0, _dest, _size); \ +} + +#define DmaClear16(dmaNum, dest, size) DMA_CLEAR(dmaNum, dest, size, 16) +#define DmaClear32(dmaNum, dest, size) DMA_CLEAR(dmaNum, dest, size, 32) + +#define DMA_COPY(dmaNum, src, dest, size, bit) \ + DmaSet(dmaNum, \ + src, \ + dest, \ + (DMA_ENABLE | DMA_START_NOW | DMA_##bit##BIT | DMA_SRC_INC | DMA_DEST_INC) << 16 \ + | ((size)/(bit/8))) + +#define DmaCopy16(dmaNum, src, dest, size) DMA_COPY(dmaNum, src, dest, size, 16) +#define DmaCopy32(dmaNum, src, dest, size) DMA_COPY(dmaNum, src, dest, size, 32) + +#define DmaStop(dmaNum) \ +{ \ + vu16 *dmaRegs = (vu16 *)REG_ADDR_DMA##dmaNum; \ + dmaRegs[5] &= ~(DMA_START_MASK | DMA_DREQ_ON | DMA_REPEAT); \ + dmaRegs[5] &= ~DMA_ENABLE; \ + dmaRegs[5]; \ +} + +#define DmaCopyLarge(dmaNum, src, dest, size, block, bit) \ +{ \ + const void *_src = src; \ + void *_dest = dest; \ + u32 _size = size; \ + while (1) \ + { \ + DmaCopy##bit(dmaNum, _src, _dest, (block)); \ + _src += (block); \ + _dest += (block); \ + _size -= (block); \ + if (_size <= (block)) \ + { \ + DmaCopy##bit(dmaNum, _src, _dest, _size); \ + break; \ + } \ + } \ +} + +#define DmaClearLarge(dmaNum, dest, size, block, bit) \ +{ \ + void *_dest = dest; \ + u32 _size = size; \ + while (1) \ + { \ + DmaFill##bit(dmaNum, 0, _dest, (block)); \ + _dest += (block); \ + _size -= (block); \ + if (_size <= (block)) \ + { \ + DmaFill##bit(dmaNum, 0, _dest, _size); \ + break; \ + } \ + } \ +} + +#define DmaFillLarge(dmaNum, value, dest, size, block, bit) \ +{ \ + void *_dest = (void *)dest; \ + u32 _size = size; \ + while (1) \ + { \ + DmaFill##bit(dmaNum, value, _dest, (block)); \ + _dest += (block); \ + _size -= (block); \ + if (_size <= (block)) \ + { \ + DmaFill##bit(dmaNum, value, _dest, _size); \ + break; \ + } \ + } \ +} + +#define DmaCopyLarge16(dmaNum, src, dest, size, block) DmaCopyLarge(dmaNum, src, dest, size, block, 16) + +#define DmaCopyLarge32(dmaNum, src, dest, size, block) DmaCopyLarge(dmaNum, src, dest, size, block, 32) + +#define DmaFillLarge16(dmaNum, value, dest, size, block) DmaFillLarge(dmaNum, value, dest, size, block, 16) + +#define DmaFillLarge32(dmaNum, value, dest, size, block) DmaFillLarge(dmaNum, value, dest, size, block, 32) + +#define DmaClearLarge16(dmaNum, dest, size, block) DmaClearLarge(dmaNum, dest, size, block, 16) +#define DmaClearLarge32(dmaNum, dest, size, block) DmaClearLarge(dmaNum, dest, size, block, 32) + +#define DmaCopyDefvars(dmaNum, src, dest, size, bit) \ +{ \ + const void *_src = src; \ + void *_dest = dest; \ + u32 _size = size; \ + DmaCopy##bit(dmaNum, _src, _dest, _size); \ +} + +#define DmaCopy16Defvars(dmaNum, src, dest, size) DmaCopyDefvars(dmaNum, src, dest, size, 16) +#define DmaCopy32Defvars(dmaNum, src, dest, size) DmaCopyDefvars(dmaNum, src, dest, size, 32) + +#define DmaFillDefvars(dmaNum, value, dest, size, bit) \ +{ \ + void *_dest = (void *)dest; \ + u32 _size = size; \ + DmaFill##bit(dmaNum, value, _dest, _size); \ +} + +#define DmaFill16Defvars(dmaNum, value, dest, size) DmaFillDefvars(dmaNum, value, dest, size, 16) +#define DmaFill32Defvars(dmaNum, value, dest, size) DmaFillDefvars(dmaNum, value, dest, size, 32) + +#define DmaClearDefvars(dmaNum, dest, size, bit) \ +{ \ + void *_dest = dest; \ + u32 _size = size; \ + DmaClear##bit(dmaNum, _dest, _size); \ +} + +#define DmaClear16Defvars(dmaNum, dest, size) DmaClearDefvars(dmaNum, dest, size, 16) +#define DmaClear32Defvars(dmaNum, dest, size) DmaClearDefvars(dmaNum, dest, size, 32) + +#define IntrEnable(flags) \ +{ \ + u16 imeTemp; \ + \ + imeTemp = REG_IME; \ + REG_IME = 0; \ + REG_IE |= flags; \ + REG_IME = imeTemp; \ +} + +#endif // GUARD_GBA_MACRO_H diff --git a/include/gba/multi_boot.h b/include/gba/multi_boot.h new file mode 100644 index 00000000..0f825e71 --- /dev/null +++ b/include/gba/multi_boot.h @@ -0,0 +1,106 @@ +#ifndef GUARD_GBA_MULTI_BOOT_H +#define GUARD_GBA_MULTI_BOOT_H + +#define MULTIBOOT_NCHILD 3 // Maximum number of slaves +#define MULTIBOOT_HEADER_SIZE 0xc0 // Header size +#define MULTIBOOT_SEND_SIZE_MIN 0x100 // Minimum transmission size +#define MULTIBOOT_SEND_SIZE_MAX 0x40000 // Maximum transmission size + +struct MultiBootParam +{ + u32 system_work[5]; // Can be rewritten within system call. + // Used with library also. + u8 handshake_data; // Handshake data from client + u8 padding; + u16 handshake_timeout; // Handshake timeout check counter + u8 probe_count; // If not 0, during client recognition or + // boot program transfer + u8 client_data[MULTIBOOT_NCHILD]; // Handshake data from client + u8 palette_data; // Palette's flashing parameter during load + // for client + u8 response_bit; // When high probability that slave + // connected, 4P-2P: d3-d1 is 1. + u8 client_bit; // For slave distinguished as client, + // 4P-2P: d3-d1 is 1. + u8 reserved1; // Reserved + const u8 *boot_srcp; // Boot program start (after header) + const u8 *boot_endp; // Boot program end pointer + const u8 *masterp; // Pointer to header referenced and output + // by master + u8 *reserved2[MULTIBOOT_NCHILD]; // Reserved + u32 system_work2[4]; // Can be rewritten within system call. + u8 sendflag; // If SC7=1 and during send, not 0 + u8 probe_target_bit; // If target recognized with client, + // 4P-2P: d3-d1 is 1. + u8 check_wait; // Wait frame until recoginition with client + u8 server_type; // client recognize method 0= Low Speed + // 1= High Speed +}; + +/* Error Code + * If value returned by MultiBootMain() is not 0, an error listed + * below has occurred. However, there is no need to have separate error + * messages for all error code types. + * "Communication Error. Please check connection. Retry with START." + * "Turn off power, check connection, and turn on again." + * "Slave is not connected." + * "Cannot recognize the slave." + * ,etc. Messages easy for the player to understand are good. + * NO_PROBE_TARGET: When recognizing client all machines returned + * abnormal data and there is no target. + * NO_DLREADY: client did not return a download preparations + * possible message. + * BOOT_FAILURE: MultiBoot() system call returned an error. + * HANDSHAKE_FAILURE: Failed to do handshake with master which should + * occur immediately after boot of slave. + * (Slave may be in infinite loop, request that power be turned off + * and on again.) + */ +#define MULTIBOOT_ERROR_04 0x04 +#define MULTIBOOT_ERROR_08 0x08 +#define MULTIBOOT_ERROR_0c 0x0c +#define MULTIBOOT_ERROR_40 0x40 +#define MULTIBOOT_ERROR_44 0x44 +#define MULTIBOOT_ERROR_48 0x48 +#define MULTIBOOT_ERROR_4c 0x4c +#define MULTIBOOT_ERROR_80 0x80 +#define MULTIBOOT_ERROR_84 0x84 +#define MULTIBOOT_ERROR_88 0x88 +#define MULTIBOOT_ERROR_8c 0x8c +#define MULTIBOOT_ERROR_NO_PROBE_TARGET 0x50 +#define MULTIBOOT_ERROR_NO_DLREADY 0x60 +#define MULTIBOOT_ERROR_BOOT_FAILURE 0x70 +#define MULTIBOOT_ERROR_HANDSHAKE_FAILURE 0x71 + +/* After an error, or when a value other than 0xffff is returned, + * the avoid chattering wait(frames) until redo connection check. + * The client timeout is about 11 frames so use value sufficiently + * longer than this. + * Usually during this time the MASTER_INFO is sent, but when there + * is a system call error, nothing is sent at this time and it waits. + * Then, during this time period MASTER_INFO is sent. + */ +#define MULTIBOOT_CONNECTION_CHECK_WAIT 15 + +/* Recognition of Slave + * Value set in MultiBootParam structure member server_type + * MULTIBOOT_SERVER_TYPE_NORMAL: Slow speed recognition mode + * The MultiBootMain() function communicates 2 bytes with one call. + * Therefore, processing returns from MultiBootMain() function + * in short time. + * MULTIBOOT_SERVER_TYPE_QUICK: High speed recognition mode + * In MultiBootMain() function as many consecutive communications + * are done as possible. + * Therefore, processing may not return from MultiBootMain() for + * several dozen frames. + * During this time, there is no problem if processing for sound and + * display cannot be done. If processing for sound and display is + * done with timer interrupt processing, you can use. + */ +#define MULTIBOOT_SERVER_TYPE_NORMAL 0 +#define MULTIBOOT_SERVER_TYPE_QUICK 1 + +/* Timeout for slave's final start up check 400 frames */ +#define MULTIBOOT_HANDSHAKE_TIMEOUT 400 + +#endif // GUARD_GBA_MULTI_BOOT_H diff --git a/include/gba/syscall.h b/include/gba/syscall.h new file mode 100644 index 00000000..22fdf09f --- /dev/null +++ b/include/gba/syscall.h @@ -0,0 +1,50 @@ +#ifndef GUARD_GBA_SYSCALL_H +#define GUARD_GBA_SYSCALL_H + +#define RESET_EWRAM 0x01 +#define RESET_IWRAM 0x02 +#define RESET_PALETTE 0x04 +#define RESET_VRAM 0x08 +#define RESET_OAM 0x10 +#define RESET_SIO_REGS 0x20 +#define RESET_SOUND_REGS 0x40 +#define RESET_REGS 0x80 +#define RESET_ALL 0xFF + +void SoftReset(u32 resetFlags); + +void RegisterRamReset(u32 resetFlags); + +void VBlankIntrWait(void); + +u16 Sqrt(u32 num); + +u16 ArcTan2(s16 x, s16 y); + +#define CPU_SET_SRC_FIXED 0x01000000 +#define CPU_SET_16BIT 0x00000000 +#define CPU_SET_32BIT 0x04000000 + +void CpuSet(const void *src, void *dest, u32 control); + +#define CPU_FAST_SET_SRC_FIXED 0x01000000 + +void CpuFastSet(const void *src, void *dest, u32 control); + +void BgAffineSet(struct BgAffineSrcData *src, struct BgAffineDstData *dest, s32 count); + +void ObjAffineSet(struct ObjAffineSrcData *src, void *dest, s32 count, s32 offset); + +void LZ77UnCompWram(const void *src, void *dest); + +void LZ77UnCompVram(const void *src, void *dest); + +void RLUnCompWram(const void *src, void *dest); + +void RLUnCompVram(const void *src, void *dest); + +int MultiBoot(struct MultiBootParam *mp); + +s32 Div(s32 num, s32 denom); + +#endif // GUARD_GBA_SYSCALL_H diff --git a/include/gba/types.h b/include/gba/types.h new file mode 100644 index 00000000..2ed9aa63 --- /dev/null +++ b/include/gba/types.h @@ -0,0 +1,268 @@ +#ifndef GUARD_GBA_TYPES_H +#define GUARD_GBA_TYPES_H + +#include + +typedef uint8_t u8; +typedef uint16_t u16; +typedef uint32_t u32; +typedef uint64_t u64; +typedef int8_t s8; +typedef int16_t s16; +typedef int32_t s32; +typedef int64_t s64; + +typedef volatile u8 vu8; +typedef volatile u16 vu16; +typedef volatile u32 vu32; +typedef volatile u64 vu64; +typedef volatile s8 vs8; +typedef volatile s16 vs16; +typedef volatile s32 vs32; +typedef volatile s64 vs64; + +typedef float f32; +typedef double f64; + +typedef u8 bool8; +typedef u16 bool16; +typedef u32 bool32; + +struct BgCnt +{ + u16 priority:2; + u16 charBaseBlock:2; + u16 dummy:2; + u16 mosaic:1; + u16 palettes:1; + u16 screenBaseBlock:5; + u16 areaOverflowMode:1; + u16 screenSize:2; +}; +typedef volatile struct BgCnt vBgCnt; + +struct PlttData +{ + u16 r:5; // red + u16 g:5; // green + u16 b:5; // blue + u16 unused_15:1; +}; + +struct OamData +{ + /*0x00*/ u32 y:8; + /*0x01*/ u32 affineMode:2; // 0x1, 0x2 -> 0x4 + u32 objMode:2; // 0x4, 0x8 -> 0xC + u32 mosaic:1; // 0x10 + u32 bpp:1; // 0x20 + u32 shape:2; // 0x40, 0x80 -> 0xC0 + + /*0x02*/ u32 x:9; + u32 matrixNum:5; // bits 3/4 are h-flip/v-flip if not in affine mode + u32 size:2; // 0x4000, 0x8000 -> 0xC000 + + /*0x04*/ u16 tileNum:10; // 0x3FF + u16 priority:2; // 0x400, 0x800 -> 0xC00 + u16 paletteNum:4; + /*0x06*/ u16 affineParam; +}; + +#define ST_OAM_HFLIP 0x08 +#define ST_OAM_VFLIP 0x10 +#define ST_OAM_MNUM_FLIP_MASK 0x18 + +#define ST_OAM_OBJ_NORMAL 0 +#define ST_OAM_OBJ_BLEND 1 +#define ST_OAM_OBJ_WINDOW 2 + +#define ST_OAM_AFFINE_OFF 0 +#define ST_OAM_AFFINE_NORMAL 1 +#define ST_OAM_AFFINE_ERASE 2 +#define ST_OAM_AFFINE_DOUBLE 3 + +#define ST_OAM_AFFINE_ON_MASK 1 +#define ST_OAM_AFFINE_DOUBLE_MASK 2 + +#define ST_OAM_4BPP 0 +#define ST_OAM_8BPP 1 + +#define ST_OAM_SQUARE 0 +#define ST_OAM_H_RECTANGLE 1 +#define ST_OAM_V_RECTANGLE 2 + +#define ST_OAM_SIZE_0 0 +#define ST_OAM_SIZE_1 1 +#define ST_OAM_SIZE_2 2 +#define ST_OAM_SIZE_3 3 + +#define SPRITE_SIZE_8x8 ((ST_OAM_SIZE_0 << 2) | (ST_OAM_SQUARE)) +#define SPRITE_SIZE_16x16 ((ST_OAM_SIZE_1 << 2) | (ST_OAM_SQUARE)) +#define SPRITE_SIZE_32x32 ((ST_OAM_SIZE_2 << 2) | (ST_OAM_SQUARE)) +#define SPRITE_SIZE_64x64 ((ST_OAM_SIZE_3 << 2) | (ST_OAM_SQUARE)) + +#define SPRITE_SIZE_16x8 ((ST_OAM_SIZE_0 << 2) | (ST_OAM_H_RECTANGLE)) +#define SPRITE_SIZE_32x8 ((ST_OAM_SIZE_1 << 2) | (ST_OAM_H_RECTANGLE)) +#define SPRITE_SIZE_32x16 ((ST_OAM_SIZE_2 << 2) | (ST_OAM_H_RECTANGLE)) +#define SPRITE_SIZE_64x32 ((ST_OAM_SIZE_3 << 2) | (ST_OAM_H_RECTANGLE)) + +#define SPRITE_SIZE_8x16 ((ST_OAM_SIZE_0 << 2) | (ST_OAM_V_RECTANGLE)) +#define SPRITE_SIZE_8x32 ((ST_OAM_SIZE_1 << 2) | (ST_OAM_V_RECTANGLE)) +#define SPRITE_SIZE_16x32 ((ST_OAM_SIZE_2 << 2) | (ST_OAM_V_RECTANGLE)) +#define SPRITE_SIZE_32x64 ((ST_OAM_SIZE_3 << 2) | (ST_OAM_V_RECTANGLE)) + +#define SPRITE_SIZE(dim) ((SPRITE_SIZE_##dim >> 2) & 0x03) +#define SPRITE_SHAPE(dim) (SPRITE_SIZE_##dim & 0x03) + +struct BgAffineSrcData +{ + s32 texX; + s32 texY; + s16 scrX; + s16 scrY; + s16 sx; + s16 sy; + u16 alpha; +}; + +struct BgAffineDstData +{ + s16 pa; + s16 pb; + s16 pc; + s16 pd; + s32 dx; + s32 dy; +}; + +struct ObjAffineSrcData +{ + s16 xScale; + s16 yScale; + u16 rotation; +}; + +// Normal SIO Control Structure +struct SioNormalCnt +{ + u16 sck_I_O:1; // Clock I/O Select + u16 sck:1; // Internal Clock Select + u16 ackRecv:1; // Transfer Enable Flag Receive + u16 ackSend:1; // Transfer Enable Flag Send + u16 unused_6_4:3; + u16 enable:1; // SIO Enable + u16 unused_11_8:4; + u16 mode:2; // Communication Mode Select + u16 ifEnable:1; // Interrupt Request Enable + u16 unused_15:1; + u8 data; // Data + u8 unused_31_24; +}; + +#define ST_SIO_8BIT_MODE 0 // Normal 8-bit communication mode +#define ST_SIO_32BIT_MODE 1 // Normal 32-bit communication mode + +#define ST_SIO_SCK_OUT 0 // Select external clock +#define ST_SIO_SCK_IN 1 // Select internal clock +#define ST_SIO_IN_SCK_256K 0 // Select internal clock 256KHz +#define ST_SIO_IN_SCK_2M 1 // Select 2MHz + +// Multi-player SIO Control Structure +struct SioMultiCnt +{ + u16 baudRate:2; // baud rate + u16 si:1; // SI terminal + u16 sd:1; // SD terminal + u16 id:2; // ID + u16 error:1; // error flag + u16 enable:1; // SIO enable + u16 unused_11_8:4; + u16 mode:2; // communication mode (should equal 2) + u16 ifEnable:1; // IRQ enable + u16 unused_15:1; + u16 data; // data +}; + +#define ST_SIO_MULTI_MODE 2 // Multi-play communication mode + +#define ST_SIO_9600_BPS 0 // Baud rate 9600 bps +#define ST_SIO_38400_BPS 1 // 38400 bps +#define ST_SIO_57600_BPS 2 // 57600 bps +#define ST_SIO_115200_BPS 3 // 115200 bps +#define ST_SIO_MULTI_PARENT 1 // Multi-play communication Connect master +#define ST_SIO_MULTI_CHILD 0 // Connect slave + +// UART - SIO Control Structure +struct SioUartCnt +{ + u16 baudRate:2; // Baud Rate + u16 ctsEnable:1; // Send Signal Enable + u16 paritySelect:1; // Parity Even/Odd + u16 transDataFull:1; // Transmit Data Full + u16 recvDataEmpty:1; // Receive Data Empty + u16 error:1; // Error Detect + u16 length:1; // Data Length + u16 fifoEnable:1; // FIFO Enable + u16 parityEnable:1; // Parity Enable + u16 transEnable:1; // Transmitter Enable + u16 recvEnable:1; // Receiver Enable + u16 mode:2; // Communication Mode Select + u16 ifEnable:1; // Interrupt Request Enable + u16 unused_15:1; + u8 data; // Data + u8 unused_31_24; +}; + +#define ST_SIO_UART_MODE 3 // UART communication mode + +#define ST_SIO_UART_7BIT 0 // UART communication data length 7 bits +#define ST_SIO_UART_8BIT 1 // 8 bits +#define ST_SIO_PARITY_EVEN 0 // Even parity +#define ST_SIO_PARITY_ODD 1 // Odd parity + +// JOY Bus Communication Control Structure +struct JoyCnt +{ + u8 ifReset:1; // JOY Bus Reset Interrupt Request + u8 ifRecv:1; // JOY Bus Received Interrupt Request + u8 ifSend:1; // JOY Bus Sent Interrupt Request + u8 unused_5_3:3; + u8 ifEnable:1; // Interrupt Request Enable + u8 unused_7:1; +}; + +// JOY Bus Communication Status Structure +struct JoyStat +{ + u8 unused_0:1; + u8 recv:1; // Receive Status + u8 unused_2:1; + u8 send:1; // Send Status + u8 flags:2; // General Flag + u8 unused_7_6:2; +}; + +// General Input/Output Control Structure +struct RCnt +{ + u8 sc:1; // Data + u8 sd:1; + u8 si:1; + u8 so:1; + u8 sc_i_o:1; // I/O Select + u8 sd_i_o:1; + u8 si_i_o:1; + u8 so_i_o:1; + u8 ifEnable:1; // Interrupt Request Enable + u8 unused_13_9:5; + u8 sioModeMaster:2; // SIO Mode Master +}; + +#define ST_R_SIO_MASTER_MODE 0 // SIO master mode +#define ST_R_DIRECT_MODE 2 // General input/output communication mode +#define ST_R_JOY_MODE 3 // JOY communication mode + +#define ST_R_IN 0 // Select input +#define ST_R_OUT 1 // Select output + +#endif // GUARD_GBA_TYPES_H diff --git a/include/global.h b/include/global.h new file mode 100644 index 00000000..5e1677ca --- /dev/null +++ b/include/global.h @@ -0,0 +1,49 @@ +#ifndef GUARD_GLOBAL_H +#define GUARD_GLOBAL_H + +#include "gba/gba.h" +#include + +// Prevent cross-jump optimization. +#define BLOCK_CROSS_JUMP asm(""); + +// to help in decompiling +#define asm_comment(x) asm volatile("@ -- " x " -- ") +#define asm_unified(x) asm(".syntax unified\n" x "\n.syntax divided") + +#if defined (__APPLE__) || defined (__CYGWIN__) +// Get the IDE to stfu + +// We define it this way to fool preproc. +#define INCBIN(...) {0} +#define INCBIN_U8 INCBIN +#define INCBIN_U16 INCBIN +#define INCBIN_U32 INCBIN +#define INCBIN_S8 INCBIN +#define INCBIN_S16 INCBIN +#define INCBIN_S32 INCBIN +#define _(x) (x) +#define __(x) (x) +#endif // __APPLE__ + +#define ARRAY_COUNT(array) (sizeof(array) / sizeof((array)[0])) + +#define SWAP(a, b, temp) \ +{ \ + temp = a; \ + a = b; \ + b = temp; \ +} + +// useful math macros + +// Converts a number to Q8.8 fixed-point format +#define Q_8_8(n) ((s16)((n) * 256)) + +// Converts a number to Q4.12 fixed-point format +#define Q_4_12(n) ((s16)((n) * 4096)) + +#define min(a, b) ((a) < (b) ? (a) : (b)) +#define max(a, b) ((a) >= (b) ? (a) : (b)) + +#endif // GUARD_GLOBAL_H diff --git a/linker.ld b/linker.ld new file mode 100644 index 00000000..1ee764a0 --- /dev/null +++ b/linker.ld @@ -0,0 +1,329 @@ +ENTRY(__start) + +MEMORY { + ewram (w!x) : ORIGIN = 0x02000000, LENGTH = 256K + iwram (w!x) : ORIGIN = 0x03000000, LENGTH = 32K + rom (rx) : ORIGIN = 0x08000000, LENGTH = 32M +} + +SECTIONS { + ewram (NOLOAD) : ALIGN(4) { + . = 0x00000006; gUnk_02000006 = .; + . = 0x00000010; gUnk_02000010 = .; + . = 0x00000020; gUnk_02000020 = .; + . = 0x00000030; gUnk_02000030 = .; + . = 0x00000040; gUnk_02000040 = .; + . = 0x00000050; gUnk_02000050 = .; + . = 0x0000005C; gUnk_0200005C = .; + . = 0x00000070; gUnk_02000070 = .; + . = 0x00000080; gUnk_02000080 = .; + . = 0x00000090; gUnk_02000090 = .; + . = 0x000000B0; gUnk_020000B0 = .; + . = 0x000000C0; gUnk_020000C0 = .; + . = 0x00000CC0; gUnk_02000CC0 = .; + . = 0x00000D00; gUnk_02000D00 = .; + . = 0x00001A00; gUnk_02001A00 = .; + . = 0x00001A3C; gUnk_02001A3C = .; + . = 0x00001A40; gUnk_02001A40 = .; + . = 0x00001B40; gUnk_02001B40 = .; + . = 0x00002A40; gUnk_02002A40 = .; + . = 0x00002AA0; gUnk_02002AA0 = .; + . = 0x00002AC0; gUnk_02002AC0 = .; + . = 0x00002AC8; gUnk_02002AC8 = .; + . = 0x00002AE8; gUnk_02002AE8 = .; + . = 0x00002B0E; gUnk_02002B0E = .; + . = 0x00002B32; gUnk_02002B32 = .; + . = 0x00002B54; gUnk_02002B54 = .; + . = 0x00002B58; gUnk_02002B58 = .; + . = 0x00002B6B; gUnk_02002B6B = .; + . = 0x00002C01; gUnk_02002C01 = .; + . = 0x00002C81; gUnk_02002C81 = .; + . = 0x00002C8E; gUnk_02002C8E = .; + . = 0x00002C9C; gUnk_02002C9C = .; + . = 0x00002E9C; gUnk_02002E9C = .; + . = 0x00002ECC; gUnk_02002ECC = .; + . = 0x00002F00; gUnk_02002F00 = .; + . = 0x00006F00; gUnk_02006F00 = .; + . = 0x0000AF00; gUnk_0200AF00 = .; + . = 0x0000AF13; gUnk_0200AF13 = .; + . = 0x0000AF34; gUnk_0200AF34 = .; + . = 0x0000B240; gUnk_0200B240 = .; + . = 0x0000B640; gUnk_0200B640 = .; + . = 0x0000B644; gUnk_0200B644 = .; + . = 0x0000B650; gUnk_0200B650 = .; + . = 0x0000B654; gUnk_0200B654 = .; + . = 0x0000D654; gUnk_0200D654 = .; + . = 0x0000E654; gUnk_0200E654 = .; + . = 0x00010654; gUnk_02010654 = .; + . = 0x00011654; gUnk_02011654 = .; + . = 0x00012654; gUnk_02012654 = .; + . = 0x00016654; gUnk_02016654 = .; + . = 0x00017654; gUnk_02017654 = .; + . = 0x00017660; gUnk_02017660 = .; + . = 0x000176A0; gUnk_020176A0 = .; + . = 0x000176E0; gUnk_020176E0 = .; + . = 0x00017700; gUnk_02017700 = .; + . = 0x00017830; gUnk_02017830 = .; + . = 0x000178E0; gUnk_020178E0 = .; + . = 0x00017AA0; gUnk_02017AA0 = .; + . = 0x00017BA0; gUnk_02017BA0 = .; + . = 0x00018EA0; gUnk_02018EA0 = .; + . = 0x00018EB0; gUnk_02018EB0 = .; + . = 0x00018EE0; gUnk_02018EE0 = .; + . = 0x00019EE0; gUnk_02019EE0 = .; + . = 0x00019EEC; gUnk_02019EEC = .; + . = 0x00019F6C; gUnk_02019F6C = .; + . = 0x0001AEE0; gUnk_0201AEE0 = .; + . = 0x00021EE0; gUnk_02021EE0 = .; + . = 0x00021F00; gUnk_02021F00 = .; + . = 0x00021F20; gUnk_02021F20 = .; + . = 0x00021F30; gUnk_02021F30 = .; + . = 0x00021F70; gUnk_02021F70 = .; + . = 0x00022030; gUnk_02022030 = .; + . = 0x00022130; gUnk_02022130 = .; + . = 0x00022730; gUnk_02022730 = .; + . = 0x00022740; gUnk_02022740 = .; + . = 0x00022750; gUnk_02022750 = .; + . = 0x00022780; gUnk_02022780 = .; + . = 0x000227E8; gUnk_020227E8 = .; + . = 0x0002281E; gUnk_0202281E = .; + . = 0x00022830; gUnk_02022830 = .; + . = 0x00024030; gUnk_02024030 = .; + . = 0x00024048; gUnk_02024048 = .; + . = 0x00024050; gUnk_02024050 = .; + . = 0x00024090; gUnk_02024090 = .; + . = 0x00024490; gUnk_02024490 = .; + . = 0x00024494; gUnk_02024494 = .; + . = 0x000246B0; gUnk_020246B0 = .; + . = 0x00025EB0; gUnk_02025EB0 = .; + . = 0x00025EB4; gUnk_02025EB4 = .; + . = 0x00027EB4; gUnk_02027EB4 = .; + . = 0x00028EB4; gUnk_02028EB4 = .; + . = 0x0002AEB4; gUnk_0202AEB4 = .; + . = 0x0002BEB4; gUnk_0202BEB4 = .; + . = 0x0002CEB4; gUnk_0202CEB4 = .; + . = 0x00030EB4; gUnk_02030EB4 = .; + . = 0x00031EC0; gUnk_02031EC0 = .; + . = 0x00032EC0; gUnk_02032EC0 = .; + . = 0x00032EDC; gUnk_02032EDC = .; + . = 0x00032F14; gUnk_02032F14 = .; + . = 0x00033280; gUnk_02033280 = .; + . = 0x00033290; gUnk_02033290 = .; + . = 0x00033A90; gUnk_02033A90 = .; + . = 0x00033AB8; gUnk_02033AB8 = .; + . = 0x00033ACC; gUnk_02033ACC = .; + . = 0x000342CC; gUnk_020342CC = .; + . = 0x000342F8; gUnk_020342F8 = .; + . = 0x00034330; gUnk_02034330 = .; + . = 0x00034350; gUnk_02034350 = .; + . = 0x00034364; gUnk_02034364 = .; + . = 0x00034398; gUnk_02034398 = .; + . = 0x00034480; gUnk_02034480 = .; + . = 0x00034490; gUnk_02034490 = .; + . = 0x00034492; gUnk_02034492 = .; + . = 0x000344A0; gUnk_020344A0 = .; + . = 0x000344B0; gUnk_020344B0 = .; + . = 0x000344F0; gUnk_020344F0 = .; + . = 0x00034CB0; gUnk_02034CB0 = .; + . = 0x00034CB2; gUnk_02034CB2 = .; + . = 0x00034CF0; gUnk_02034CF0 = .; + . = 0x00034D30; gUnk_02034D30 = .; + . = 0x00034DF0; gUnk_02034DF0 = .; + . = 0x000350E2; gUnk_020350E2 = .; + . = 0x000350F0; gUnk_020350F0 = .; + . = 0x00035160; gUnk_02035160 = .; + . = 0x000354B0; gUnk_020354B0 = .; + . = 0x000354B4; gUnk_020354B4 = .; + . = 0x000354C0; gUnk_020354C0 = .; + . = 0x0003553E; gUnk_0203553E = .; + . = 0x00035540; gUnk_02035540 = .; + . = 0x00035542; gUnk_02035542 = .; + . = 0x00036540; gUnk_02036540 = .; + . = 0x00036570; gUnk_02036570 = .; + . = 0x000369F0; gUnk_020369F0 = .; + . = 0x00036A38; gUnk_02036A38 = .; + . = 0x00036A40; gUnk_02036A40 = .; + . = 0x00036A50; gUnk_02036A50 = .; + . = 0x00036A58; gUnk_02036A58 = .; + . = 0x00036AD8; gUnk_02036AD8 = .; + . = 0x00036BB8; gUnk_02036BB8 = .; + . = 0x00038560; gUnk_02038560 = .; + . = 0x00040000; + } >ewram + + iwram (NOLOAD) : ALIGN(4) { + . = 0x00000000; gUnk_03000000 = .; + . = 0x00000020; gUnk_03000020 = .; + . = 0x00000420; gUnk_03000420 = .; + . = 0x00000B80; gUnk_03000B80 = .; + . = 0x00000BD4; gUnk_03000BD4 = .; + . = 0x00000BF0; gUnk_03000BF0 = .; + . = 0x00000BF6; gUnk_03000BF6 = .; + . = 0x00000BF8; gUnk_03000BF8 = .; + . = 0x00000C24; gUnk_03000C24 = .; + . = 0x00000C30; gUnk_03000C30 = .; + . = 0x00000E10; gUnk_03000E10 = .; + . = 0x00000F50; gUnk_03000F50 = .; + . = 0x00000F58; gUnk_03000F58 = .; + . = 0x00000F64; gUnk_03000F64 = .; + . = 0x00000F70; gUnk_03000F70 = .; + . = 0x00000F88; gUnk_03000F88 = .; + . = 0x00000FBC; gUnk_03000FBC = .; + . = 0x00000FD0; gUnk_03000FD0 = .; + . = 0x00000FF0; gUnk_03000FF0 = .; + . = 0x00001000; gUnk_03001000 = .; + . = 0x00001010; gUnk_03001010 = .; + . = 0x00001020; gUnk_03001020 = .; + . = 0x000010A0; gUnk_030010A0 = .; + . = 0x000010AC; gUnk_030010AC = .; + . = 0x000010D8; gUnk_030010D8 = .; + . = 0x000010EC; gUnk_030010EC = .; + . = 0x0000110C; gUnk_0300110C = .; + . = 0x00001150; gUnk_03001150 = .; + . = 0x00001160; gUnk_03001160 = .; + . = 0x00001198; gUnk_03001198 = .; + . = 0x000011E8; gUnk_030011E8 = .; + . = 0x000015A0; gUnk_030015A0 = .; + . = 0x00003BE0; gUnk_03003BE0 = .; + . = 0x00003C70; gUnk_03003C70 = .; + . = 0x00003D68; gUnk_03003D68 = .; + . = 0x00003D70; gUnk_03003D70 = .; + . = 0x00003D80; gUnk_03003D80 = .; + . = 0x00003D90; gUnk_03003D90 = .; + . = 0x00003DA0; gUnk_03003DA0 = .; + . = 0x00003DA8; gUnk_03003DA8 = .; + . = 0x00003DB0; gUnk_03003DB0 = .; + . = 0x00003DB8; gUnk_03003DB8 = .; + . = 0x00003DBC; gUnk_03003DBC = .; + . = 0x00003DC0; gUnk_03003DC0 = .; + . = 0x00003DD0; gUnk_03003DD0 = .; + . = 0x00003DE0; gUnk_03003DE0 = .; + . = 0x00003DE4; gUnk_03003DE4 = .; + . = 0x00003DF0; gUnk_03003DF0 = .; + . = 0x00003DF8; gUnk_03003DF8 = .; + . = 0x00003F80; gUnk_03003F80 = .; + . = 0x00003FC0; gUnk_03003FC0 = .; + . = 0x00004010; gUnk_03004010 = .; + . = 0x00004020; gUnk_03004020 = .; + . = 0x00004030; gUnk_03004030 = .; + . = 0x00004040; gUnk_03004040 = .; + . = 0x0000404C; gUnk_0300404C = .; + . = 0x0000404D; gUnk_0300404D = .; + . = 0x000043D0; gUnk_030043D0 = .; + . = 0x00004D50; gUnk_03004D50 = .; + . = 0x00004D54; gUnk_03004D54 = .; + . = 0x00004DD8; gUnk_03004DD8 = .; + . = 0x00004DDC; gUnk_03004DDC = .; + . = 0x00004DE0; gUnk_03004DE0 = .; + . = 0x000055E0; gUnk_030055E0 = .; + . = 0x000056F0; gUnk_030056F0 = .; + . = 0x000056F1; gUnk_030056F1 = .; + . = 0x00005740; gUnk_03005740 = .; + . = 0x0000574C; gUnk_0300574C = .; + . = 0x00005760; gUnk_03005760 = .; + . = 0x00005770; gUnk_03005770 = .; + . = 0x00005778; gUnk_03005778 = .; + . = 0x00005780; gUnk_03005780 = .; + . = 0x0000579C; gUnk_0300579C = .; + . = 0x000057A8; gUnk_030057A8 = .; + . = 0x000057BC; gUnk_030057BC = .; + . = 0x000057CC; gUnk_030057CC = .; + . = 0x000057D4; gUnk_030057D4 = .; + . = 0x00005800; gUnk_03005800 = .; + . = 0x0000581C; gUnk_0300581C = .; + . = 0x00005828; gUnk_03005828 = .; + . = 0x0000583C; gUnk_0300583C = .; + . = 0x0000584C; gUnk_0300584C = .; + . = 0x00005854; gUnk_03005854 = .; + . = 0x00005864; gUnk_03005864 = .; + . = 0x00005880; gUnk_03005880 = .; + . = 0x0000588C; gUnk_0300588C = .; + . = 0x000058A0; gUnk_030058A0 = .; + . = 0x000058B0; gUnk_030058B0 = .; + . = 0x000058B8; gUnk_030058B8 = .; + . = 0x000058C8; gUnk_030058C8 = .; + . = 0x000058DC; gUnk_030058DC = .; + . = 0x000058F8; gUnk_030058F8 = .; + . = 0x00005918; gUnk_03005918 = .; + . = 0x000059F0; gUnk_030059F0 = .; + . = 0x00005CA4; gUnk_03005CA4 = .; + . = 0x00005CD0; gUnk_03005CD0 = .; + . = 0x00005CFC; gUnk_03005CFC = .; + . = 0x00005D18; gUnk_03005D18 = .; + . = 0x00005D24; gUnk_03005D24 = .; + . = 0x00005D58; gUnk_03005D58 = .; + . = 0x00005D5C; gUnk_03005D5C = .; + . = 0x00005D90; gUnk_03005D90 = .; + . = 0x00005E60; gUnk_03005E60 = .; + . = 0x00005E98; gUnk_03005E98 = .; + . = 0x00005F24; gUnk_03005F24 = .; + . = 0x00005F40; gUnk_03005F40 = .; + . = 0x00005FBC; gUnk_03005FBC = .; + . = 0x00005FF0; gUnk_03005FF0 = .; + . = 0x000060F0; gUnk_030060F0 = .; + . = 0x00006164; gUnk_03006164 = .; + . = 0x00006580; gUnk_03006580 = .; + . = 0x0000659C; gUnk_0300659C = .; + . = 0x000067E4; gUnk_030067E4 = .; + . = 0x000068CC; gUnk_030068CC = .; + . = 0x0000694C; gUnk_0300694C = .; + . = 0x0000695C; gUnk_0300695C = .; + . = 0x00007F00; gUnk_03007F00 = .; + . = 0x00007FA0; gUnk_03007FA0 = .; + . = 0x00007FFA; gUnk_03007FFA = .; + . = 0x00008000; + } >iwram + + rom : ALIGN(2) { + + /* handwritten assembly */ + asm/crt0.o(.text); + asm/code_08000108.o(.text); + data/data_1.o(.rodata); + asm/code_08000E44.o(.text); + asm/libgcc.o(.text); + asm/code_08000F10.o(.text); + data/data_2.o(.rodata); + asm/code_080011C4.o(.text); + data/data_4.o(.rodata); + asm/code_08003FC4.o(.text); + data/data_6.o(.rodata); + asm/code_0800857C.o(.text); + + /* C source compiled with interworking */ + asm/code_08016B30.o(.text); + + /* C source compiled without interworking */ + asm/code.o(.text); + + /* library functions */ + asm/m4a_asm.o(.text); + asm/m4a.o(.text); + asm/libagbsyscall.o(.text); + asm/code_080B1520.o(.text); + *libc.a:memcpy.o(.text); + + /* handwritten assembly in arm mode */ + asm/intr.o(.text); + + /* data */ + data/data_8.o(.rodata); + } >rom + + /* DWARF 2 sections */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + .debug_info 0 : { *(.debug_info) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + + /* Discard everything not specifically mentioned above. */ + /DISCARD/ : + { + *(*); + } +} diff --git a/songs.mk b/songs.mk new file mode 100644 index 00000000..e69de29b diff --git a/sound/MPlayDef.s b/sound/MPlayDef.s new file mode 100644 index 00000000..f5dd6484 --- /dev/null +++ b/sound/MPlayDef.s @@ -0,0 +1,430 @@ + .equ W00, 0x80 @ WAIT + .equ W01, W00+1 @ + .equ W02, W00+2 @ + .equ W03, W00+3 @ + .equ W04, W00+4 @ + .equ W05, W00+5 @ + .equ W06, W00+6 @ + .equ W07, W00+7 @ + .equ W08, W00+8 @ + .equ W09, W00+9 @ + .equ W10, W00+10 @ + .equ W11, W00+11 @ + .equ W12, W00+12 @ + .equ W13, W00+13 @ + .equ W14, W00+14 @ + .equ W15, W00+15 @ + .equ W16, W00+16 @ + .equ W17, W00+17 @ + .equ W18, W00+18 @ + .equ W19, W00+19 @ + .equ W20, W00+20 @ + .equ W21, W00+21 @ + .equ W22, W00+22 @ + .equ W23, W00+23 @ + .equ W24, W00+24 @ + .equ W28, W00+25 @ + .equ W30, W00+26 @ + .equ W32, W00+27 @ + .equ W36, W00+28 @ + .equ W40, W00+29 @ + .equ W42, W00+30 @ + .equ W44, W00+31 @ + .equ W48, W00+32 @ + .equ W52, W00+33 @ + .equ W54, W00+34 @ + .equ W56, W00+35 @ + .equ W60, W00+36 @ + .equ W64, W00+37 @ + .equ W66, W00+38 @ + .equ W68, W00+39 @ + .equ W72, W00+40 @ + .equ W76, W00+41 @ + .equ W78, W00+42 @ + .equ W80, W00+43 @ + .equ W84, W00+44 @ + .equ W88, W00+45 @ + .equ W90, W00+46 @ + .equ W92, W00+47 @ + .equ W96, W00+48 @ + + .equ FINE, 0xb1 @ fine + .equ GOTO, 0xb2 @ goto + .equ PATT, 0xb3 @ pattern play + .equ PEND, 0xb4 @ pattern end + .equ REPT, 0xb5 @ repeat + .equ MEMACC, 0xb9 @ memacc op adr dat ***lib + .equ PRIO, 0xba @ priority + .equ TEMPO, 0xbb @ tempo (BPM/2) + .equ KEYSH, 0xbc @ key shift + .equ VOICE, 0xbd @ voice # + .equ VOL, 0xbe @ volume + .equ PAN, 0xbf @ panpot (c_v+??) + .equ BEND, 0xc0 @ pitch bend (c_v+??) + .equ BENDR, 0xc1 @ bend range + .equ LFOS, 0xc2 @ LFO speed + .equ LFODL, 0xc3 @ LFO delay + .equ MOD, 0xc4 @ modulation depth + .equ MODT, 0xc5 @ modulation type + .equ TUNE, 0xc8 @ micro tuning (c_v+??) + + .equ XCMD, 0xcd @ extend command ***lib + .equ xIECV, 0x08 @ imi.echo vol ***lib + .equ xIECL, 0x09 @ imi.echo len ***lib + + .equ EOT, 0xce @ End of Tie + .equ TIE, 0xcf @ + .equ N01, TIE+1 @ NOTE + .equ N02, N01+1 @ + .equ N03, N01+2 @ + .equ N04, N01+3 @ + .equ N05, N01+4 @ + .equ N06, N01+5 @ + .equ N07, N01+6 @ + .equ N08, N01+7 @ + .equ N09, N01+8 @ + .equ N10, N01+9 @ + .equ N11, N01+10 @ + .equ N12, N01+11 @ + .equ N13, N01+12 @ + .equ N14, N01+13 @ + .equ N15, N01+14 @ + .equ N16, N01+15 @ + .equ N17, N01+16 @ + .equ N18, N01+17 @ + .equ N19, N01+18 @ + .equ N20, N01+19 @ + .equ N21, N01+20 @ + .equ N22, N01+21 @ + .equ N23, N01+22 @ + .equ N24, N01+23 @ + .equ N28, N01+24 @ + .equ N30, N01+25 @ + .equ N32, N01+26 @ + .equ N36, N01+27 @ + .equ N40, N01+28 @ + .equ N42, N01+29 @ + .equ N44, N01+30 @ + .equ N48, N01+31 @ + .equ N52, N01+32 @ + .equ N54, N01+33 @ + .equ N56, N01+34 @ + .equ N60, N01+35 @ + .equ N64, N01+36 @ + .equ N66, N01+37 @ + .equ N68, N01+38 @ + .equ N72, N01+39 @ + .equ N76, N01+40 @ + .equ N78, N01+41 @ + .equ N80, N01+42 @ + .equ N84, N01+43 @ + .equ N88, N01+44 @ + .equ N90, N01+45 @ + .equ N92, N01+46 @ + .equ N96, N01+47 @ + +@ maximum value for volume + + .equ mxv, 0x7F @ + +@ center value of PAN, BEND, TUNE + + .equ c_v, 0x40 @ -64 ~ +63 + +@ note for N??, TIE, EOT + + .equ CnM2, 0 @ + .equ CsM2, 1 @ + .equ DnM2, 2 @ + .equ DsM2, 3 @ + .equ EnM2, 4 @ + .equ FnM2, 5 @ + .equ FsM2, 6 @ + .equ GnM2, 7 @ + .equ GsM2, 8 @ + .equ AnM2, 9 @ + .equ AsM2, 10 @ + .equ BnM2, 11 @ + .equ CnM1, 12 @ + .equ CsM1, 13 @ + .equ DnM1, 14 @ + .equ DsM1, 15 @ + .equ EnM1, 16 @ + .equ FnM1, 17 @ + .equ FsM1, 18 @ + .equ GnM1, 19 @ + .equ GsM1, 20 @ + .equ AnM1, 21 @ + .equ AsM1, 22 @ + .equ BnM1, 23 @ + .equ Cn0, 24 @ + .equ Cs0, 25 @ + .equ Dn0, 26 @ + .equ Ds0, 27 @ + .equ En0, 28 @ + .equ Fn0, 29 @ + .equ Fs0, 30 @ + .equ Gn0, 31 @ + .equ Gs0, 32 @ + .equ An0, 33 @ + .equ As0, 34 @ + .equ Bn0, 35 @ + .equ Cn1, 36 @ + .equ Cs1, 37 @ + .equ Dn1, 38 @ + .equ Ds1, 39 @ + .equ En1, 40 @ + .equ Fn1, 41 @ + .equ Fs1, 42 @ + .equ Gn1, 43 @ + .equ Gs1, 44 @ + .equ An1, 45 @ + .equ As1, 46 @ + .equ Bn1, 47 @ + .equ Cn2, 48 @ + .equ Cs2, 49 @ + .equ Dn2, 50 @ + .equ Ds2, 51 @ + .equ En2, 52 @ + .equ Fn2, 53 @ + .equ Fs2, 54 @ + .equ Gn2, 55 @ + .equ Gs2, 56 @ + .equ An2, 57 @ + .equ As2, 58 @ + .equ Bn2, 59 @ + .equ Cn3, 60 @ + .equ Cs3, 61 @ + .equ Dn3, 62 @ + .equ Ds3, 63 @ + .equ En3, 64 @ + .equ Fn3, 65 @ + .equ Fs3, 66 @ + .equ Gn3, 67 @ + .equ Gs3, 68 @ + .equ An3, 69 @ 440Hz + .equ As3, 70 @ + .equ Bn3, 71 @ + .equ Cn4, 72 @ + .equ Cs4, 73 @ + .equ Dn4, 74 @ + .equ Ds4, 75 @ + .equ En4, 76 @ + .equ Fn4, 77 @ + .equ Fs4, 78 @ + .equ Gn4, 79 @ + .equ Gs4, 80 @ + .equ An4, 81 @ + .equ As4, 82 @ + .equ Bn4, 83 @ + .equ Cn5, 84 @ + .equ Cs5, 85 @ + .equ Dn5, 86 @ + .equ Ds5, 87 @ + .equ En5, 88 @ + .equ Fn5, 89 @ + .equ Fs5, 90 @ + .equ Gn5, 91 @ + .equ Gs5, 92 @ + .equ An5, 93 @ + .equ As5, 94 @ + .equ Bn5, 95 @ + .equ Cn6, 96 @ + .equ Cs6, 97 @ + .equ Dn6, 98 @ + .equ Ds6, 99 @ + .equ En6, 100 @ + .equ Fn6, 101 @ + .equ Fs6, 102 @ + .equ Gn6, 103 @ + .equ Gs6, 104 @ + .equ An6, 105 @ + .equ As6, 106 @ + .equ Bn6, 107 @ + .equ Cn7, 108 @ + .equ Cs7, 109 @ + .equ Dn7, 110 @ + .equ Ds7, 111 @ + .equ En7, 112 @ + .equ Fn7, 113 @ + .equ Fs7, 114 @ + .equ Gn7, 115 @ + .equ Gs7, 116 @ + .equ An7, 117 @ + .equ As7, 118 @ + .equ Bn7, 119 @ + .equ Cn8, 120 @ + .equ Cs8, 121 @ + .equ Dn8, 122 @ + .equ Ds8, 123 @ + .equ En8, 124 @ + .equ Fn8, 125 @ + .equ Fs8, 126 @ + .equ Gn8, 127 @ + +@ velocity + + .equ v000, 0 @ + .equ v001, 1 @ + .equ v002, 2 @ + .equ v003, 3 @ + .equ v004, 4 @ + .equ v005, 5 @ + .equ v006, 6 @ + .equ v007, 7 @ + .equ v008, 8 @ + .equ v009, 9 @ + .equ v010, 10 @ + .equ v011, 11 @ + .equ v012, 12 @ + .equ v013, 13 @ + .equ v014, 14 @ + .equ v015, 15 @ + .equ v016, 16 @ + .equ v017, 17 @ + .equ v018, 18 @ + .equ v019, 19 @ + .equ v020, 20 @ + .equ v021, 21 @ + .equ v022, 22 @ + .equ v023, 23 @ + .equ v024, 24 @ + .equ v025, 25 @ + .equ v026, 26 @ + .equ v027, 27 @ + .equ v028, 28 @ + .equ v029, 29 @ + .equ v030, 30 @ + .equ v031, 31 @ + .equ v032, 32 @ + .equ v033, 33 @ + .equ v034, 34 @ + .equ v035, 35 @ + .equ v036, 36 @ + .equ v037, 37 @ + .equ v038, 38 @ + .equ v039, 39 @ + .equ v040, 40 @ + .equ v041, 41 @ + .equ v042, 42 @ + .equ v043, 43 @ + .equ v044, 44 @ + .equ v045, 45 @ + .equ v046, 46 @ + .equ v047, 47 @ + .equ v048, 48 @ + .equ v049, 49 @ + .equ v050, 50 @ + .equ v051, 51 @ + .equ v052, 52 @ + .equ v053, 53 @ + .equ v054, 54 @ + .equ v055, 55 @ + .equ v056, 56 @ + .equ v057, 57 @ + .equ v058, 58 @ + .equ v059, 59 @ + .equ v060, 60 @ + .equ v061, 61 @ + .equ v062, 62 @ + .equ v063, 63 @ + .equ v064, 64 @ + .equ v065, 65 @ + .equ v066, 66 @ + .equ v067, 67 @ + .equ v068, 68 @ + .equ v069, 79 @ + .equ v070, 70 @ + .equ v071, 71 @ + .equ v072, 72 @ + .equ v073, 73 @ + .equ v074, 74 @ + .equ v075, 75 @ + .equ v076, 76 @ + .equ v077, 77 @ + .equ v078, 78 @ + .equ v079, 79 @ + .equ v080, 80 @ + .equ v081, 81 @ + .equ v082, 82 @ + .equ v083, 83 @ + .equ v084, 84 @ + .equ v085, 85 @ + .equ v086, 86 @ + .equ v087, 87 @ + .equ v088, 88 @ + .equ v089, 89 @ + .equ v090, 90 @ + .equ v091, 91 @ + .equ v092, 92 @ + .equ v093, 93 @ + .equ v094, 94 @ + .equ v095, 95 @ + .equ v096, 96 @ + .equ v097, 97 @ + .equ v098, 98 @ + .equ v099, 99 @ + .equ v100, 100 @ + .equ v101, 101 @ + .equ v102, 102 @ + .equ v103, 103 @ + .equ v104, 104 @ + .equ v105, 105 @ + .equ v106, 106 @ + .equ v107, 107 @ + .equ v108, 108 @ + .equ v109, 109 @ + .equ v110, 110 @ + .equ v111, 111 @ + .equ v112, 112 @ + .equ v113, 113 @ + .equ v114, 114 @ + .equ v115, 115 @ + .equ v116, 116 @ + .equ v117, 117 @ + .equ v118, 118 @ + .equ v119, 119 @ + .equ v120, 120 @ + .equ v121, 121 @ + .equ v122, 122 @ + .equ v123, 123 @ + .equ v124, 124 @ + .equ v125, 125 @ + .equ v126, 126 @ + .equ v127, 127 @ + +@ exact gate time parameter for N?? + + .equ gtp1, 1 @ + .equ gtp2, 2 @ + .equ gtp3, 3 @ + +@ parameter of MODT + + .equ mod_vib,0 @ vibrate + .equ mod_tre,1 @ tremolo + .equ mod_pan,2 @ auto-panpot + +@ parameter of MEMACC + + .equ mem_set,0 @ + .equ mem_add,1 @ + .equ mem_sub,2 @ + .equ mem_mem_set,3 @ + .equ mem_mem_add,4 @ + .equ mem_mem_sub,5 @ + .equ mem_beq,6 @ + .equ mem_bne,7 @ + .equ mem_bhi,8 @ + .equ mem_bhs,9 @ + .equ mem_bls,10 @ + .equ mem_blo,11 @ + .equ mem_mem_beq,12 @ + .equ mem_mem_bne,13 @ + .equ mem_mem_bhi,14 @ + .equ mem_mem_bhs,15 @ + .equ mem_mem_bls,16 @ + .equ mem_mem_blo,17 @ + + .equ reverb_set,0x80 @ SOUND_MODE_REVERB_SET + .equ PAM, PAN @ diff --git a/tools/aif2pcm/.gitignore b/tools/aif2pcm/.gitignore new file mode 100644 index 00000000..31531797 --- /dev/null +++ b/tools/aif2pcm/.gitignore @@ -0,0 +1,2 @@ +aif2pcm + diff --git a/tools/aif2pcm/LICENSE b/tools/aif2pcm/LICENSE new file mode 100644 index 00000000..966b92bd --- /dev/null +++ b/tools/aif2pcm/LICENSE @@ -0,0 +1,20 @@ +Copyright (c) 2016 huderlem +Copyright (c) 2005, 2006 by Marco Trillo + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/tools/aif2pcm/Makefile b/tools/aif2pcm/Makefile new file mode 100644 index 00000000..af7d19fe --- /dev/null +++ b/tools/aif2pcm/Makefile @@ -0,0 +1,18 @@ +CC = gcc + +CFLAGS = -Wall -Wextra -Wno-switch -Werror -std=c11 -O2 + +LIBS = -lm + +SRCS = main.c extended.c + +.PHONY: all clean + +all: aif2pcm + @: + +aif2pcm: $(SRCS) + $(CC) $(CFLAGS) $(SRCS) -o $@ $(LDFLAGS) $(LIBS) + +clean: + $(RM) aif2pcm aif2pcm.exe diff --git a/tools/aif2pcm/extended.c b/tools/aif2pcm/extended.c new file mode 100644 index 00000000..94449164 --- /dev/null +++ b/tools/aif2pcm/extended.c @@ -0,0 +1,172 @@ +/* $Id: extended.c,v 1.8 2006/12/23 11:17:49 toad32767 Exp $ */ +/*- + * Copyright (c) 2005, 2006 by Marco Trillo + * + * Permission is hereby granted, free of charge, to any + * person obtaining a copy of this software and associated + * documentation files (the "Software"), to deal in the + * Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the + * Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice + * shall be included in all copies or substantial portions of + * the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY + * KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE + * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR + * PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS + * OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#include +#include +#include + +/* + * Infinite & NAN values + * for non-IEEE systems + */ +#ifndef HUGE_VAL +#ifdef HUGE +#define INFINITE_VALUE HUGE +#define NAN_VALUE HUGE +#endif +#else +#define INFINITE_VALUE HUGE_VAL +#define NAN_VALUE HUGE_VAL +#endif + +/* + * IEEE 754 Extended Precision + * + * Implementation here is the 80-bit extended precision + * format of Motorola 68881, Motorola 68882 and Motorola + * 68040 FPUs, as well as Intel 80x87 FPUs. + * + * See: + * http://www.freescale.com/files/32bit/doc/fact_sheet/BR509.pdf + */ +/* + * Exponent range: [-16383,16383] + * Precision for mantissa: 64 bits with no hidden bit + * Bias: 16383 + */ + +/* + * Write IEEE Extended Precision Numbers + */ +void +ieee754_write_extended(double in, uint8_t* out) +{ + int sgn, exp, shift; + double fraction, t; + unsigned int lexp, hexp; + unsigned long low, high; + + if (in == 0.0) { + memset(out, 0, 10); + return; + } + if (in < 0.0) { + in = fabs(in); + sgn = 1; + } else + sgn = 0; + + fraction = frexp(in, &exp); + + if (exp == 0 || exp > 16384) { + if (exp > 16384) /* infinite value */ + low = high = 0; + else { + low = 0x80000000; + high = 0; + } + exp = 32767; + goto done; + } + fraction = ldexp(fraction, 32); + t = floor(fraction); + low = (unsigned long) t; + fraction -= t; + t = floor(ldexp(fraction, 32)); + high = (unsigned long) t; + + /* Convert exponents < -16382 to -16382 (then they will be + * stored as -16383) */ + if (exp < -16382) { + shift = 0 - exp - 16382; + high >>= shift; + high |= (low << (32 - shift)); + low >>= shift; + exp = -16382; + } + exp += 16383 - 1; /* bias */ + +done: + lexp = ((unsigned int) exp) >> 8; + hexp = ((unsigned int) exp) & 0xFF; + + /* big endian */ + out[0] = ((uint8_t) sgn) << 7; + out[0] |= (uint8_t) lexp; + out[1] = (uint8_t) hexp; + out[2] = (uint8_t) (low >> 24); + out[3] = (uint8_t) ((low >> 16) & 0xFF); + out[4] = (uint8_t) ((low >> 8) & 0xFF); + out[5] = (uint8_t) (low & 0xFF); + out[6] = (uint8_t) (high >> 24); + out[7] = (uint8_t) ((high >> 16) & 0xFF); + out[8] = (uint8_t) ((high >> 8) & 0xFF); + out[9] = (uint8_t) (high & 0xFF); + + return; +} + + +/* + * Read IEEE Extended Precision Numbers + */ +double +ieee754_read_extended(uint8_t* in) +{ + int sgn, exp; + unsigned long low, high; + double out; + + /* Extract the components from the big endian buffer */ + sgn = (int) (in[0] >> 7); + exp = ((int) (in[0] & 0x7F) << 8) | ((int) in[1]); + low = (((unsigned long) in[2]) << 24) + | (((unsigned long) in[3]) << 16) + | (((unsigned long) in[4]) << 8) | (unsigned long) in[5]; + high = (((unsigned long) in[6]) << 24) + | (((unsigned long) in[7]) << 16) + | (((unsigned long) in[8]) << 8) | (unsigned long) in[9]; + + if (exp == 0 && low == 0 && high == 0) + return (sgn ? -0.0 : 0.0); + + switch (exp) { + case 32767: + if (low == 0 && high == 0) + return (sgn ? -INFINITE_VALUE : INFINITE_VALUE); + else + return (sgn ? -NAN_VALUE : NAN_VALUE); + default: + exp -= 16383; /* unbias exponent */ + + } + + out = ldexp((double) low, -31 + exp); + out += ldexp((double) high, -63 + exp); + + return (sgn ? -out : out); +} diff --git a/tools/aif2pcm/main.c b/tools/aif2pcm/main.c new file mode 100644 index 00000000..cd5ac4a5 --- /dev/null +++ b/tools/aif2pcm/main.c @@ -0,0 +1,888 @@ +// Copyright(c) 2016 huderlem +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#include +#include +#include +#include +#include +#include + +/* extended.c */ +void ieee754_write_extended (double, uint8_t*); +double ieee754_read_extended (uint8_t*); + +#ifdef _MSC_VER + +#define FATAL_ERROR(format, ...) \ +do \ +{ \ + fprintf(stderr, format, __VA_ARGS__); \ + exit(1); \ +} while (0) + +#else + +#define FATAL_ERROR(format, ...) \ +do \ +{ \ + fprintf(stderr, format, ##__VA_ARGS__); \ + exit(1); \ +} while (0) + +#endif // _MSC_VER + +typedef struct { + unsigned long num_samples; + uint8_t *samples; + uint8_t midi_note; + bool has_loop; + unsigned long loop_offset; + double sample_rate; + unsigned long real_num_samples; +} AifData; + +struct Bytes { + unsigned long length; + uint8_t *data; +}; + +struct Marker { + unsigned short id; + unsigned long position; + // don't care about the name +}; + +struct Bytes *read_bytearray(const char *filename) +{ + struct Bytes *bytes = malloc(sizeof(struct Bytes)); + FILE *f = fopen(filename, "rb"); + if (!f) + { + FATAL_ERROR("Failed to open '%s' for reading!\n", filename); + } + fseek(f, 0, SEEK_END); + bytes->length = ftell(f); + fseek(f, 0, SEEK_SET); + bytes->data = malloc(bytes->length); + unsigned long read = fread(bytes->data, bytes->length, 1, f); + fclose(f); + if (read <= 0) + { + FATAL_ERROR("Failed to read data from '%s'!\n", filename); + } + return bytes; +} + +void write_bytearray(const char *filename, struct Bytes *bytes) +{ + FILE *f = fopen(filename, "wb"); + if (!f) + { + FATAL_ERROR("Failed to open '%s' for writing!\n", filename); + } + fwrite(bytes->data, bytes->length, 1, f); + fclose(f); +} + +void free_bytearray(struct Bytes *bytes) +{ + free(bytes->data); + free(bytes); +} + +char *get_file_extension(char *filename) +{ + char *index = strrchr(filename, '.'); + if (!index || index == filename) + { + return NULL; + } + return index + 1; +} + +char *new_file_extension(char *filename, char *ext) +{ + char *index = strrchr(filename, '.'); + if (!index || index == filename) + { + index = filename + strlen(filename); + } + int length = index - filename; + char *new_filename = malloc(length + 1 + strlen(ext) + 1); + if (new_filename) + { + strcpy(new_filename, filename); + new_filename[length] = '.'; + strcpy(new_filename + length + 1, ext); + } + return new_filename; +} + +void read_aif(struct Bytes *aif, AifData *aif_data) +{ + aif_data->has_loop = false; + aif_data->num_samples = 0; + + unsigned long pos = 0; + char chunk_name[5]; chunk_name[4] = '\0'; + char chunk_type[5]; chunk_type[4] = '\0'; + + // Check for FORM Chunk + memcpy(chunk_name, &aif->data[pos], 4); + pos += 4; + if (strcmp(chunk_name, "FORM") != 0) + { + FATAL_ERROR("Input .aif file has invalid header Chunk '%s'!\n", chunk_name); + } + + // Read size of whole file. + unsigned long whole_chunk_size = aif->data[pos++] << 24; + whole_chunk_size |= (aif->data[pos++] << 16); + whole_chunk_size |= (aif->data[pos++] << 8); + whole_chunk_size |= (uint8_t)aif->data[pos++]; + + unsigned long expected_whole_chunk_size = aif->length - 8; + if (whole_chunk_size != expected_whole_chunk_size) + { + FATAL_ERROR("FORM Chunk ckSize '%lu' doesn't match actual size '%lu'!\n", whole_chunk_size, expected_whole_chunk_size); + } + + // Check for AIFF Form Type + memcpy(chunk_type, &aif->data[pos], 4); + pos += 4; + if (strcmp(chunk_type, "AIFF") != 0) + { + FATAL_ERROR("FORM Type is '%s', but it must be AIFF!", chunk_type); + } + + struct Marker *markers = NULL; + unsigned short num_markers = 0, loop_start = 0, loop_end = 0; + unsigned long num_sample_frames = 0; + + // Read all the Chunks to populate the AifData struct. + while ((pos + 8) < aif->length) + { + // Read Chunk id + memcpy(chunk_name, &aif->data[pos], 4); + pos += 4; + + unsigned long chunk_size = (aif->data[pos++] << 24); + chunk_size |= (aif->data[pos++] << 16); + chunk_size |= (aif->data[pos++] << 8); + chunk_size |= aif->data[pos++]; + + if ((pos + chunk_size) > aif->length) + { + FATAL_ERROR("%s chunk at 0x%lx reached end of file before finishing\n", chunk_name, pos); + } + + if (strcmp(chunk_name, "COMM") == 0) + { + short num_channels = (aif->data[pos++] << 8); + num_channels |= (uint8_t)aif->data[pos++]; + if (num_channels != 1) + { + FATAL_ERROR("numChannels (%d) in the COMM Chunk must be 1!\n", num_channels); + } + + num_sample_frames = (aif->data[pos++] << 24); + num_sample_frames |= (aif->data[pos++] << 16); + num_sample_frames |= (aif->data[pos++] << 8); + num_sample_frames |= (uint8_t)aif->data[pos++]; + + short sample_size = (aif->data[pos++] << 8); + sample_size |= (uint8_t)aif->data[pos++]; + if (sample_size != 8) + { + FATAL_ERROR("sampleSize (%d) in the COMM Chunk must be 8!\n", sample_size); + } + + double sample_rate = ieee754_read_extended((uint8_t*)(aif->data + pos)); + pos += 10; + + aif_data->sample_rate = sample_rate; + + if (aif_data->num_samples == 0) + { + aif_data->num_samples = num_sample_frames; + } + } + else if (strcmp(chunk_name, "MARK") == 0) + { + num_markers = (aif->data[pos++] << 8); + num_markers |= (uint8_t)aif->data[pos++]; + + if (markers) + { + FATAL_ERROR("More than one MARK Chunk in file!\n"); + } + + markers = calloc(num_markers, sizeof(struct Marker)); + + // Read each marker. + for (int i = 0; i < num_markers; i++) + { + unsigned short marker_id = (aif->data[pos++] << 8); + marker_id |= (uint8_t)aif->data[pos++]; + + unsigned long marker_position = (aif->data[pos++] << 24); + marker_position |= (aif->data[pos++] << 16); + marker_position |= (aif->data[pos++] << 8); + marker_position |= (uint8_t)aif->data[pos++]; + + // Marker name is a Pascal-style string. + uint8_t marker_name_size = aif->data[pos++]; + // We don't actually need the marker name for anything anymore. + /*char *marker_name = (char *)malloc((marker_name_size + 1) * sizeof(char)); + memcpy(marker_name, &aif->data[pos], marker_name_size); + marker_name[marker_name_size] = '\0';*/ + pos += marker_name_size + !(marker_name_size & 1); + + markers[i].id = marker_id; + markers[i].position = marker_position; + } + } + else if (strcmp(chunk_name, "INST") == 0) + { + uint8_t midi_note = (uint8_t)aif->data[pos++]; + + aif_data->midi_note = midi_note; + + // Skip over data we don't need. + pos += 7; + + unsigned short loop_type = (aif->data[pos++] << 8); + loop_type |= (uint8_t)aif->data[pos++]; + + if (loop_type) + { + loop_start = (aif->data[pos++] << 8); + loop_start |= (uint8_t)aif->data[pos++]; + + loop_end = (aif->data[pos++] << 8); + loop_end |= (uint8_t)aif->data[pos++]; + } + else + { + // Skip NoLooping sustain loop. + pos += 4; + } + + // Skip release loop, we don't need it. + pos += 6; + } + else if (strcmp(chunk_name, "SSND") == 0) + { + // Skip offset and blockSize + pos += 8; + + unsigned long num_samples = chunk_size - 8; + uint8_t *sample_data = (uint8_t *)malloc(num_samples * sizeof(uint8_t)); + memcpy(sample_data, &aif->data[pos], num_samples); + + aif_data->samples = sample_data; + aif_data->real_num_samples = num_samples; + pos += chunk_size - 8; + } + else + { + // Skip over unsupported chunks. + pos += chunk_size; + } + } + + if (markers) + { + // Resolve loop points. + struct Marker *cur_marker = markers; + + // Grab loop start point. + for (int i = 0; i < num_markers; i++, cur_marker++) + { + if (cur_marker->id == loop_start) + { + aif_data->loop_offset = cur_marker->position; + aif_data->has_loop = true; + break; + } + } + + cur_marker = markers; + + // Grab loop end point. + for (int i = 0; i < num_markers; i++, cur_marker++) + { + if (cur_marker->id == loop_end) + { + if (cur_marker->position < aif_data->loop_offset) { + aif_data->loop_offset = cur_marker->position; + aif_data->has_loop = true; + } + aif_data->num_samples = cur_marker->position; + break; + } + } + + free(markers); + } +} + +// This is a table of deltas between sample values in compressed PCM data. +const int gDeltaEncodingTable[] = { + 0, 1, 4, 9, 16, 25, 36, 49, + -64, -49, -36, -25, -16, -9, -4, -1, +}; + +struct Bytes *delta_decompress(struct Bytes *delta, unsigned int expected_length) +{ + struct Bytes *pcm = malloc(sizeof(struct Bytes)); + pcm->length = expected_length; + pcm->data = malloc(pcm->length + 0x40); + + uint8_t hi, lo; + unsigned int i = 0; + unsigned int j = 0; + int k; + int8_t base; + while (i < delta->length) + { + base = (int8_t)delta->data[i++]; + pcm->data[j++] = (uint8_t)base; + if (i >= delta->length) + { + break; + } + if (j >= pcm->length) + { + break; + } + lo = delta->data[i] & 0xf; + base += gDeltaEncodingTable[lo]; + pcm->data[j++] = base; + i++; + if (i >= delta->length) + { + break; + } + if (j >= pcm->length) + { + break; + } + for (k = 0; k < 31; k++) + { + hi = (delta->data[i] >> 4) & 0xf; + base += gDeltaEncodingTable[hi]; + pcm->data[j++] = base; + if (j >= pcm->length) + { + break; + } + lo = delta->data[i] & 0xf; + base += gDeltaEncodingTable[lo]; + pcm->data[j++] = base; + i++; + if (i >= delta->length) + { + break; + } + if (j >= pcm->length) + { + break; + } + } + if (j >= pcm->length) + { + break; + } + } + + pcm->length = j; + return pcm; +} + +int get_delta_index(uint8_t sample, uint8_t prev_sample) +{ + int best_error = INT_MAX; + int best_index = -1; + + for (int i = 0; i < 16; i++) + { + uint8_t new_sample = prev_sample + gDeltaEncodingTable[i]; + int error = sample > new_sample ? sample - new_sample : new_sample - sample; + + if (error < best_error) + { + best_error = error; + best_index = i; + } + } + + return best_index; +} + +struct Bytes *delta_compress(struct Bytes *pcm) +{ + struct Bytes *delta = malloc(sizeof(struct Bytes)); + // estimate the length so we can malloc + int num_blocks = pcm->length / 64; + delta->length = num_blocks * 33; + + int extra = pcm->length % 64; + if (extra) + { + delta->length += 1; + extra -= 1; + } + if (extra) + { + delta->length += 1; + extra -= 1; + } + if (extra) + { + delta->length += (extra + 1) / 2; + } + + delta->data = malloc(delta->length + 33); + + unsigned int i = 0; + unsigned int j = 0; + int k; + uint8_t base; + int delta_index; + + while (i < pcm->length) + { + base = pcm->data[i++]; + delta->data[j++] = base; + + if (i >= pcm->length) + { + break; + } + delta_index = get_delta_index(pcm->data[i++], base); + base += gDeltaEncodingTable[delta_index]; + delta->data[j++] = delta_index; + + for (k = 0; k < 31; k++) + { + if (i >= pcm->length) + { + break; + } + delta_index = get_delta_index(pcm->data[i++], base); + base += gDeltaEncodingTable[delta_index]; + delta->data[j] = (delta_index << 4); + + if (i >= pcm->length) + { + break; + } + delta_index = get_delta_index(pcm->data[i++], base); + base += gDeltaEncodingTable[delta_index]; + delta->data[j++] |= delta_index; + } + } + + delta->length = j; + + return delta; +} + +#define STORE_U32_LE(dest, value) \ +do { \ + *(dest) = (value) & 0xff; \ + *((dest) + 1) = ((value) >> 8) & 0xff; \ + *((dest) + 2) = ((value) >> 16) & 0xff; \ + *((dest) + 3) = ((value) >> 24) & 0xff; \ +} while (0) + +#define LOAD_U32_LE(var, src) \ +do { \ + (var) = *(src); \ + (var) |= (*((src) + 1) << 8); \ + (var) |= (*((src) + 2) << 16); \ + (var) |= (*((src) + 3) << 24); \ +} while (0) + +// Reads an .aif file and produces a .pcm file containing an array of 8-bit samples. +void aif2pcm(const char *aif_filename, const char *pcm_filename, bool compress) +{ + struct Bytes *aif = read_bytearray(aif_filename); + AifData aif_data = {0,0,0,0,0,0,0}; + read_aif(aif, &aif_data); + + int header_size = 0x10; + struct Bytes *pcm; + struct Bytes output = {0,0}; + + if (compress) + { + struct Bytes *input = malloc(sizeof(struct Bytes)); + input->data = aif_data.samples; + input->length = aif_data.real_num_samples; + pcm = delta_compress(input); + free(input); + } + else + { + pcm = malloc(sizeof(struct Bytes)); + pcm->data = aif_data.samples; + pcm->length = aif_data.real_num_samples; + } + output.length = header_size + pcm->length; + output.data = malloc(output.length); + + uint32_t pitch_adjust = (uint32_t)(aif_data.sample_rate * 1024); + uint32_t loop_offset = (uint32_t)(aif_data.loop_offset); + uint32_t adjusted_num_samples = (uint32_t)(aif_data.num_samples - 1); + uint32_t flags = 0; + if (aif_data.has_loop) flags |= 0x40000000; + if (compress) flags |= 1; + STORE_U32_LE(output.data + 0, flags); + STORE_U32_LE(output.data + 4, pitch_adjust); + STORE_U32_LE(output.data + 8, loop_offset); + STORE_U32_LE(output.data + 12, adjusted_num_samples); + memcpy(&output.data[header_size], pcm->data, pcm->length); + write_bytearray(pcm_filename, &output); + + free(aif->data); + free(aif); + free(pcm); + free(output.data); + free(aif_data.samples); +} + +// Reads a .pcm file containing an array of 8-bit samples and produces an .aif file. +// See http://www-mmsp.ece.mcgill.ca/documents/audioformats/aiff/Docs/AIFF-1.3.pdf for .aif file specification. +void pcm2aif(const char *pcm_filename, const char *aif_filename, uint32_t base_note) +{ + struct Bytes *pcm = read_bytearray(pcm_filename); + + AifData *aif_data = malloc(sizeof(AifData)); + + uint32_t flags; + LOAD_U32_LE(flags, pcm->data + 0); + aif_data->has_loop = flags & 0x40000000; + bool compressed = flags & 1; + + uint32_t pitch_adjust; + LOAD_U32_LE(pitch_adjust, pcm->data + 4); + aif_data->sample_rate = pitch_adjust / 1024.0; + + LOAD_U32_LE(aif_data->loop_offset, pcm->data + 8); + LOAD_U32_LE(aif_data->num_samples, pcm->data + 12); + aif_data->num_samples += 1; + + if (compressed) + { + struct Bytes *delta = pcm; + uint8_t *pcm_data = pcm->data; + delta->length -= 0x10; + delta->data += 0x10; + pcm = delta_decompress(delta, aif_data->num_samples); + free(pcm_data); + free(delta); + } + else + { + pcm->length -= 0x10; + pcm->data += 0x10; + } + + aif_data->samples = malloc(pcm->length); + memcpy(aif_data->samples, pcm->data, pcm->length); + + struct Bytes *aif = malloc(sizeof(struct Bytes)); + aif->length = 54 + 60 + pcm->length; + aif->data = malloc(aif->length); + + long pos = 0; + + // First, write the FORM header chunk. + // FORM Chunk ckID + aif->data[pos++] = 'F'; + aif->data[pos++] = 'O'; + aif->data[pos++] = 'R'; + aif->data[pos++] = 'M'; + + // FORM Chunk ckSize + unsigned long form_size = pos; + unsigned long data_size = aif->length - 8; + aif->data[pos++] = ((data_size >> 24) & 0xFF); + aif->data[pos++] = ((data_size >> 16) & 0xFF); + aif->data[pos++] = ((data_size >> 8) & 0xFF); + aif->data[pos++] = (data_size & 0xFF); + + // FORM Chunk formType + aif->data[pos++] = 'A'; + aif->data[pos++] = 'I'; + aif->data[pos++] = 'F'; + aif->data[pos++] = 'F'; + + // Next, write the Common Chunk + // Common Chunk ckID + aif->data[pos++] = 'C'; + aif->data[pos++] = 'O'; + aif->data[pos++] = 'M'; + aif->data[pos++] = 'M'; + + // Common Chunk ckSize + aif->data[pos++] = 0; + aif->data[pos++] = 0; + aif->data[pos++] = 0; + aif->data[pos++] = 18; + + // Common Chunk numChannels + aif->data[pos++] = 0; + aif->data[pos++] = 1; // 1 channel + + // Common Chunk numSampleFrames + aif->data[pos++] = ((aif_data->num_samples >> 24) & 0xFF); + aif->data[pos++] = ((aif_data->num_samples >> 16) & 0xFF); + aif->data[pos++] = ((aif_data->num_samples >> 8) & 0xFF); + aif->data[pos++] = (aif_data->num_samples & 0xFF); + + // Common Chunk sampleSize + aif->data[pos++] = 0; + aif->data[pos++] = 8; // 8 bits per sample + + // Common Chunk sampleRate + //double sample_rate = pitch_adjust / 1024.0; + uint8_t sample_rate_buffer[10]; + ieee754_write_extended(aif_data->sample_rate, sample_rate_buffer); + for (int i = 0; i < 10; i++) + { + aif->data[pos++] = sample_rate_buffer[i]; + } + + if (aif_data->has_loop) + { + + // Marker Chunk ckID + aif->data[pos++] = 'M'; + aif->data[pos++] = 'A'; + aif->data[pos++] = 'R'; + aif->data[pos++] = 'K'; + + // Marker Chunk ckSize + aif->data[pos++] = 0; + aif->data[pos++] = 0; + aif->data[pos++] = 0; + aif->data[pos++] = 12 + (aif_data->has_loop ? 12 : 0); + + // Marker Chunk numMarkers + aif->data[pos++] = 0; + aif->data[pos++] = (aif_data->has_loop ? 2 : 1); + + // Marker loop start + aif->data[pos++] = 0; + aif->data[pos++] = 1; // id = 1 + + long loop_start = aif_data->loop_offset; + aif->data[pos++] = ((loop_start >> 24) & 0xFF); + aif->data[pos++] = ((loop_start >> 16) & 0xFF); + aif->data[pos++] = ((loop_start >> 8) & 0xFF); + aif->data[pos++] = (loop_start & 0xFF); // position + + aif->data[pos++] = 5; // pascal-style string length + aif->data[pos++] = 'S'; + aif->data[pos++] = 'T'; + aif->data[pos++] = 'A'; + aif->data[pos++] = 'R'; + aif->data[pos++] = 'T'; // markerName + + // Marker loop end + aif->data[pos++] = 0; + aif->data[pos++] = (aif_data->has_loop ? 2 : 1); // id = 2 + + long loop_end = aif_data->num_samples; + aif->data[pos++] = ((loop_end >> 24) & 0xFF); + aif->data[pos++] = ((loop_end >> 16) & 0xFF); + aif->data[pos++] = ((loop_end >> 8) & 0xFF); + aif->data[pos++] = (loop_end & 0xFF); // position + + aif->data[pos++] = 3; // pascal-style string length + aif->data[pos++] = 'E'; + aif->data[pos++] = 'N'; + aif->data[pos++] = 'D'; + } + + // Instrument Chunk ckID + aif->data[pos++] = 'I'; + aif->data[pos++] = 'N'; + aif->data[pos++] = 'S'; + aif->data[pos++] = 'T'; + + // Instrument Chunk ckSize + aif->data[pos++] = 0; + aif->data[pos++] = 0; + aif->data[pos++] = 0; + aif->data[pos++] = 20; + + aif->data[pos++] = base_note; // baseNote + aif->data[pos++] = 0; // detune + aif->data[pos++] = 0; // lowNote + aif->data[pos++] = 127; // highNote + aif->data[pos++] = 1; // lowVelocity + aif->data[pos++] = 127; // highVelocity + aif->data[pos++] = 0; // gain (hi) + aif->data[pos++] = 0; // gain (lo) + + // Instrument Chunk sustainLoop + aif->data[pos++] = 0; + aif->data[pos++] = 1; // playMode = ForwardLooping + + aif->data[pos++] = 0; + aif->data[pos++] = 1; // beginLoop marker id + + aif->data[pos++] = 0; + aif->data[pos++] = 2; // endLoop marker id + + // Instrument Chunk releaseLoop + aif->data[pos++] = 0; + aif->data[pos++] = 1; // playMode = ForwardLooping + + aif->data[pos++] = 0; + aif->data[pos++] = 1; // beginLoop marker id + + aif->data[pos++] = 0; + aif->data[pos++] = 2; // endLoop marker id + + // Finally, write the Sound Data Chunk + // Sound Data Chunk ckID + aif->data[pos++] = 'S'; + aif->data[pos++] = 'S'; + aif->data[pos++] = 'N'; + aif->data[pos++] = 'D'; + + // Sound Data Chunk ckSize + unsigned long sound_data_size = pcm->length + 8; + aif->data[pos++] = ((sound_data_size >> 24) & 0xFF); + aif->data[pos++] = ((sound_data_size >> 16) & 0xFF); + aif->data[pos++] = ((sound_data_size >> 8) & 0xFF); + aif->data[pos++] = (sound_data_size & 0xFF); + + // Sound Data Chunk offset + aif->data[pos++] = 0; + aif->data[pos++] = 0; + aif->data[pos++] = 0; + aif->data[pos++] = 0; + + // Sound Data Chunk blockSize + aif->data[pos++] = 0; + aif->data[pos++] = 0; + aif->data[pos++] = 0; + aif->data[pos++] = 0; + + // Sound Data Chunk soundData + for (unsigned int i = 0; i < aif_data->loop_offset; i++) + { + aif->data[pos++] = aif_data->samples[i]; + } + + int j = 0; + for (unsigned int i = aif_data->loop_offset; i < pcm->length; i++) + { + int pcm_index = aif_data->loop_offset + (j++ % (pcm->length - aif_data->loop_offset)); + aif->data[pos++] = aif_data->samples[pcm_index]; + } + + aif->length = pos; + + // Go back and rewrite ckSize + data_size = aif->length - 8; + aif->data[form_size + 0] = ((data_size >> 24) & 0xFF); + aif->data[form_size + 1] = ((data_size >> 16) & 0xFF); + aif->data[form_size + 2] = ((data_size >> 8) & 0xFF); + aif->data[form_size + 3] = (data_size & 0xFF); + + write_bytearray(aif_filename, aif); + + free(aif->data); + free(aif); +} + +void usage(void) +{ + fprintf(stderr, "Usage: aif2pcm bin_file [aif_file]\n"); + fprintf(stderr, " aif2pcm aif_file [bin_file] [--compress]\n"); +} + +int main(int argc, char **argv) +{ + if (argc < 2) + { + usage(); + exit(1); + } + + char *input_file = argv[1]; + char *extension = get_file_extension(input_file); + char *output_file; + bool compressed = false; + + if (argc > 3) + { + for (int i = 3; i < argc; i++) + { + if (strcmp(argv[i], "--compress") == 0) + { + compressed = true; + } + } + } + + if (strcmp(extension, "aif") == 0 || strcmp(extension, "aiff") == 0) + { + if (argc >= 3) + { + output_file = argv[2]; + aif2pcm(input_file, output_file, compressed); + } + else + { + output_file = new_file_extension(input_file, "bin"); + aif2pcm(input_file, output_file, compressed); + free(output_file); + } + } + else if (strcmp(extension, "bin") == 0) + { + if (argc >= 3) + { + output_file = argv[2]; + pcm2aif(input_file, output_file, 60); + } + else + { + output_file = new_file_extension(input_file, "aif"); + pcm2aif(input_file, output_file, 60); + free(output_file); + } + } + else + { + FATAL_ERROR("Input file must be .aif or .bin: '%s'\n", input_file); + } + + return 0; +} diff --git a/tools/bin2c/.gitignore b/tools/bin2c/.gitignore new file mode 100644 index 00000000..366f3d3e --- /dev/null +++ b/tools/bin2c/.gitignore @@ -0,0 +1 @@ +bin2c diff --git a/tools/bin2c/LICENSE b/tools/bin2c/LICENSE new file mode 100644 index 00000000..534d1534 --- /dev/null +++ b/tools/bin2c/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2016 YamaArashi + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/tools/bin2c/Makefile b/tools/bin2c/Makefile new file mode 100644 index 00000000..ab11e1b6 --- /dev/null +++ b/tools/bin2c/Makefile @@ -0,0 +1,16 @@ +CC = gcc + +CFLAGS = -Wall -Wextra -Werror -std=c11 -O2 + +.PHONY: all clean + +SRCS = bin2c.c + +all: bin2c + @: + +bin2c: $(SRCS) + $(CC) $(CFLAGS) $(SRCS) -o $@ $(LDFLAGS) + +clean: + $(RM) bin2c bin2c.exe diff --git a/tools/bin2c/bin2c.c b/tools/bin2c/bin2c.c new file mode 100644 index 00000000..b4bd437f --- /dev/null +++ b/tools/bin2c/bin2c.c @@ -0,0 +1,201 @@ +// Copyright(c) 2015-2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#include +#include +#include +#include + +#ifdef _MSC_VER + +#define FATAL_ERROR(format, ...) \ +do \ +{ \ + fprintf(stderr, format, __VA_ARGS__); \ + exit(1); \ +} while (0) + +#else + +#define FATAL_ERROR(format, ...) \ +do \ +{ \ + fprintf(stderr, format, ##__VA_ARGS__); \ + exit(1); \ +} while (0) + +#endif // _MSC_VER + +unsigned char *ReadWholeFile(char *path, int *size) +{ + FILE *fp = fopen(path, "rb"); + + if (fp == NULL) + FATAL_ERROR("Failed to open \"%s\" for reading.\n", path); + + fseek(fp, 0, SEEK_END); + + *size = ftell(fp); + + unsigned char *buffer = malloc(*size); + + if (buffer == NULL) + FATAL_ERROR("Failed to allocate memory for reading \"%s\".\n", path); + + rewind(fp); + + if (fread(buffer, *size, 1, fp) != 1) + FATAL_ERROR("Failed to read \"%s\".\n", path); + + fclose(fp); + + return buffer; +} + +int ExtractData(unsigned char *buffer, int offset, int size) +{ + switch (size) + { + case 1: + return buffer[offset]; + case 2: + return (buffer[offset + 1] << 8) + | buffer[offset]; + case 4: + return (buffer[offset + 3] << 24) + | (buffer[offset + 2] << 16) + | (buffer[offset + 1] << 8) + | buffer[offset]; + default: + FATAL_ERROR("Invalid size passed to ExtractData.\n"); + } +} + +int main(int argc, char **argv) +{ + if (argc < 3) + FATAL_ERROR("Usage: bin2c INPUT_FILE VAR_NAME [OPTIONS...]\n"); + + int fileSize; + unsigned char *buffer = ReadWholeFile(argv[1], &fileSize); + char *var_name = argv[2]; + int col = 1; + int pad = 0; + int size = 1; + bool isSigned = false; + bool isStatic = false; + bool isDecimal = false; + + for (int i = 3; i < argc; i++) + { + if (!strcmp(argv[i], "-col")) + { + i++; + + if (i >= argc) + FATAL_ERROR("Missing argument after '-col'.\n"); + + col = atoi(argv[i]); + } + else if (!strcmp(argv[i], "-pad")) + { + i++; + + if (i >= argc) + FATAL_ERROR("Missing argument after '-pad'.\n"); + + pad = atoi(argv[i]); + } + else if (!strcmp(argv[i], "-size")) + { + i++; + + if (i >= argc) + FATAL_ERROR("Missing argument after '-size'.\n"); + + size = atoi(argv[i]); + + if (size != 1 && size != 2 && size != 4) + FATAL_ERROR("Size must be 1, 2, or 4.\n"); + } + else if (!strcmp(argv[i], "-signed")) + { + isSigned = true; + isDecimal = true; + } + else if (!strcmp(argv[i], "-static")) + { + isStatic = true; + } + else if (!strcmp(argv[i], "-decimal")) + { + isDecimal = true; + } + else + { + FATAL_ERROR("Unrecognized option '%s'.\n", argv[i]); + } + } + + if ((fileSize & (size - 1)) != 0) + FATAL_ERROR("Size %d doesn't evenly divide file size %d.\n", size, fileSize); + + printf("// Generated file. Do not edit.\n\n"); + + if (isStatic) + printf("static "); + + printf("const "); + + if (isSigned) + printf("s%d ", 8 * size); + else + printf("u%d ", 8 * size); + + printf("%s[] =\n{", var_name); + + int count = fileSize / size; + int offset = 0; + + for (int i = 0; i < count; i++) + { + if (i % col == 0) + printf("\n "); + + int data = ExtractData(buffer, offset, size); + offset += size; + + if (isDecimal) + { + if (isSigned) + printf("%*d, ", pad, data); + else + printf("%*uu, ", pad, data); + } + else + { + printf("%#*xu, ", pad, data); + } + } + + printf("\n};\n"); + + return 0; +} diff --git a/tools/gbafix/.gitignore b/tools/gbafix/.gitignore new file mode 100644 index 00000000..3cebf8ae --- /dev/null +++ b/tools/gbafix/.gitignore @@ -0,0 +1,2 @@ +gbafix +README diff --git a/tools/gbafix/COPYING b/tools/gbafix/COPYING new file mode 100644 index 00000000..94a9ed02 --- /dev/null +++ b/tools/gbafix/COPYING @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/tools/gbafix/Makefile b/tools/gbafix/Makefile new file mode 100644 index 00000000..5b410da0 --- /dev/null +++ b/tools/gbafix/Makefile @@ -0,0 +1,13 @@ +CC = gcc +.PHONY: all clean + +SRCS = gbafix.c + +all: gbafix + @: + +gbafix: $(SRCS) + $(CC) $(SRCS) -o $@ $(LDFLAGS) + +clean: + $(RM) gbafix gbafix.exe diff --git a/tools/gbafix/elf.h b/tools/gbafix/elf.h new file mode 100644 index 00000000..79d3b974 --- /dev/null +++ b/tools/gbafix/elf.h @@ -0,0 +1,3147 @@ +/* +From musl include/elf.h + +Copyright © 2005-2014 Rich Felker, et al. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +#ifndef _ELF_H +#define _ELF_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include + +typedef uint16_t Elf32_Half; +typedef uint16_t Elf64_Half; + +typedef uint32_t Elf32_Word; +typedef int32_t Elf32_Sword; +typedef uint32_t Elf64_Word; +typedef int32_t Elf64_Sword; + +typedef uint64_t Elf32_Xword; +typedef int64_t Elf32_Sxword; +typedef uint64_t Elf64_Xword; +typedef int64_t Elf64_Sxword; + +typedef uint32_t Elf32_Addr; +typedef uint64_t Elf64_Addr; + +typedef uint32_t Elf32_Off; +typedef uint64_t Elf64_Off; + +typedef uint16_t Elf32_Section; +typedef uint16_t Elf64_Section; + +typedef Elf32_Half Elf32_Versym; +typedef Elf64_Half Elf64_Versym; + +#define EI_NIDENT (16) + +typedef struct { + unsigned char e_ident[EI_NIDENT]; + Elf32_Half e_type; + Elf32_Half e_machine; + Elf32_Word e_version; + Elf32_Addr e_entry; + Elf32_Off e_phoff; + Elf32_Off e_shoff; + Elf32_Word e_flags; + Elf32_Half e_ehsize; + Elf32_Half e_phentsize; + Elf32_Half e_phnum; + Elf32_Half e_shentsize; + Elf32_Half e_shnum; + Elf32_Half e_shstrndx; +} Elf32_Ehdr; + +typedef struct { + unsigned char e_ident[EI_NIDENT]; + Elf64_Half e_type; + Elf64_Half e_machine; + Elf64_Word e_version; + Elf64_Addr e_entry; + Elf64_Off e_phoff; + Elf64_Off e_shoff; + Elf64_Word e_flags; + Elf64_Half e_ehsize; + Elf64_Half e_phentsize; + Elf64_Half e_phnum; + Elf64_Half e_shentsize; + Elf64_Half e_shnum; + Elf64_Half e_shstrndx; +} Elf64_Ehdr; + +#define EI_MAG0 0 +#define ELFMAG0 0x7f + +#define EI_MAG1 1 +#define ELFMAG1 'E' + +#define EI_MAG2 2 +#define ELFMAG2 'L' + +#define EI_MAG3 3 +#define ELFMAG3 'F' + + +#define ELFMAG "\177ELF" +#define SELFMAG 4 + +#define EI_CLASS 4 +#define ELFCLASSNONE 0 +#define ELFCLASS32 1 +#define ELFCLASS64 2 +#define ELFCLASSNUM 3 + +#define EI_DATA 5 +#define ELFDATANONE 0 +#define ELFDATA2LSB 1 +#define ELFDATA2MSB 2 +#define ELFDATANUM 3 + +#define EI_VERSION 6 + + +#define EI_OSABI 7 +#define ELFOSABI_NONE 0 +#define ELFOSABI_SYSV 0 +#define ELFOSABI_HPUX 1 +#define ELFOSABI_NETBSD 2 +#define ELFOSABI_LINUX 3 +#define ELFOSABI_GNU 3 +#define ELFOSABI_SOLARIS 6 +#define ELFOSABI_AIX 7 +#define ELFOSABI_IRIX 8 +#define ELFOSABI_FREEBSD 9 +#define ELFOSABI_TRU64 10 +#define ELFOSABI_MODESTO 11 +#define ELFOSABI_OPENBSD 12 +#define ELFOSABI_ARM 97 +#define ELFOSABI_STANDALONE 255 + +#define EI_ABIVERSION 8 + +#define EI_PAD 9 + + + +#define ET_NONE 0 +#define ET_REL 1 +#define ET_EXEC 2 +#define ET_DYN 3 +#define ET_CORE 4 +#define ET_NUM 5 +#define ET_LOOS 0xfe00 +#define ET_HIOS 0xfeff +#define ET_LOPROC 0xff00 +#define ET_HIPROC 0xffff + + + +#define EM_NONE 0 +#define EM_M32 1 +#define EM_SPARC 2 +#define EM_386 3 +#define EM_68K 4 +#define EM_88K 5 +#define EM_860 7 +#define EM_MIPS 8 +#define EM_S370 9 +#define EM_MIPS_RS3_LE 10 + +#define EM_PARISC 15 +#define EM_VPP500 17 +#define EM_SPARC32PLUS 18 +#define EM_960 19 +#define EM_PPC 20 +#define EM_PPC64 21 +#define EM_S390 22 + +#define EM_V800 36 +#define EM_FR20 37 +#define EM_RH32 38 +#define EM_RCE 39 +#define EM_ARM 40 +#define EM_FAKE_ALPHA 41 +#define EM_SH 42 +#define EM_SPARCV9 43 +#define EM_TRICORE 44 +#define EM_ARC 45 +#define EM_H8_300 46 +#define EM_H8_300H 47 +#define EM_H8S 48 +#define EM_H8_500 49 +#define EM_IA_64 50 +#define EM_MIPS_X 51 +#define EM_COLDFIRE 52 +#define EM_68HC12 53 +#define EM_MMA 54 +#define EM_PCP 55 +#define EM_NCPU 56 +#define EM_NDR1 57 +#define EM_STARCORE 58 +#define EM_ME16 59 +#define EM_ST100 60 +#define EM_TINYJ 61 +#define EM_X86_64 62 +#define EM_PDSP 63 + +#define EM_FX66 66 +#define EM_ST9PLUS 67 +#define EM_ST7 68 +#define EM_68HC16 69 +#define EM_68HC11 70 +#define EM_68HC08 71 +#define EM_68HC05 72 +#define EM_SVX 73 +#define EM_ST19 74 +#define EM_VAX 75 +#define EM_CRIS 76 +#define EM_JAVELIN 77 +#define EM_FIREPATH 78 +#define EM_ZSP 79 +#define EM_MMIX 80 +#define EM_HUANY 81 +#define EM_PRISM 82 +#define EM_AVR 83 +#define EM_FR30 84 +#define EM_D10V 85 +#define EM_D30V 86 +#define EM_V850 87 +#define EM_M32R 88 +#define EM_MN10300 89 +#define EM_MN10200 90 +#define EM_PJ 91 +#define EM_OR1K 92 +#define EM_OPENRISC 92 +#define EM_ARC_A5 93 +#define EM_ARC_COMPACT 93 +#define EM_XTENSA 94 +#define EM_VIDEOCORE 95 +#define EM_TMM_GPP 96 +#define EM_NS32K 97 +#define EM_TPC 98 +#define EM_SNP1K 99 +#define EM_ST200 100 +#define EM_IP2K 101 +#define EM_MAX 102 +#define EM_CR 103 +#define EM_F2MC16 104 +#define EM_MSP430 105 +#define EM_BLACKFIN 106 +#define EM_SE_C33 107 +#define EM_SEP 108 +#define EM_ARCA 109 +#define EM_UNICORE 110 +#define EM_EXCESS 111 +#define EM_DXP 112 +#define EM_ALTERA_NIOS2 113 +#define EM_CRX 114 +#define EM_XGATE 115 +#define EM_C166 116 +#define EM_M16C 117 +#define EM_DSPIC30F 118 +#define EM_CE 119 +#define EM_M32C 120 +#define EM_TSK3000 131 +#define EM_RS08 132 +#define EM_SHARC 133 +#define EM_ECOG2 134 +#define EM_SCORE7 135 +#define EM_DSP24 136 +#define EM_VIDEOCORE3 137 +#define EM_LATTICEMICO32 138 +#define EM_SE_C17 139 +#define EM_TI_C6000 140 +#define EM_TI_C2000 141 +#define EM_TI_C5500 142 +#define EM_TI_ARP32 143 +#define EM_TI_PRU 144 +#define EM_MMDSP_PLUS 160 +#define EM_CYPRESS_M8C 161 +#define EM_R32C 162 +#define EM_TRIMEDIA 163 +#define EM_QDSP6 164 +#define EM_8051 165 +#define EM_STXP7X 166 +#define EM_NDS32 167 +#define EM_ECOG1X 168 +#define EM_MAXQ30 169 +#define EM_XIMO16 170 +#define EM_MANIK 171 +#define EM_CRAYNV2 172 +#define EM_RX 173 +#define EM_METAG 174 +#define EM_MCST_ELBRUS 175 +#define EM_ECOG16 176 +#define EM_CR16 177 +#define EM_ETPU 178 +#define EM_SLE9X 179 +#define EM_L10M 180 +#define EM_K10M 181 +#define EM_AARCH64 183 +#define EM_AVR32 185 +#define EM_STM8 186 +#define EM_TILE64 187 +#define EM_TILEPRO 188 +#define EM_MICROBLAZE 189 +#define EM_CUDA 190 +#define EM_TILEGX 191 +#define EM_CLOUDSHIELD 192 +#define EM_COREA_1ST 193 +#define EM_COREA_2ND 194 +#define EM_ARC_COMPACT2 195 +#define EM_OPEN8 196 +#define EM_RL78 197 +#define EM_VIDEOCORE5 198 +#define EM_78KOR 199 +#define EM_56800EX 200 +#define EM_BA1 201 +#define EM_BA2 202 +#define EM_XCORE 203 +#define EM_MCHP_PIC 204 +#define EM_KM32 210 +#define EM_KMX32 211 +#define EM_EMX16 212 +#define EM_EMX8 213 +#define EM_KVARC 214 +#define EM_CDP 215 +#define EM_COGE 216 +#define EM_COOL 217 +#define EM_NORC 218 +#define EM_CSR_KALIMBA 219 +#define EM_Z80 220 +#define EM_VISIUM 221 +#define EM_FT32 222 +#define EM_MOXIE 223 +#define EM_AMDGPU 224 +#define EM_RISCV 243 +#define EM_BPF 247 +#define EM_NUM 248 + +#define EM_ALPHA 0x9026 + +#define EV_NONE 0 +#define EV_CURRENT 1 +#define EV_NUM 2 + +typedef struct { + Elf32_Word sh_name; + Elf32_Word sh_type; + Elf32_Word sh_flags; + Elf32_Addr sh_addr; + Elf32_Off sh_offset; + Elf32_Word sh_size; + Elf32_Word sh_link; + Elf32_Word sh_info; + Elf32_Word sh_addralign; + Elf32_Word sh_entsize; +} Elf32_Shdr; + +typedef struct { + Elf64_Word sh_name; + Elf64_Word sh_type; + Elf64_Xword sh_flags; + Elf64_Addr sh_addr; + Elf64_Off sh_offset; + Elf64_Xword sh_size; + Elf64_Word sh_link; + Elf64_Word sh_info; + Elf64_Xword sh_addralign; + Elf64_Xword sh_entsize; +} Elf64_Shdr; + + + +#define SHN_UNDEF 0 +#define SHN_LORESERVE 0xff00 +#define SHN_LOPROC 0xff00 +#define SHN_BEFORE 0xff00 + +#define SHN_AFTER 0xff01 + +#define SHN_HIPROC 0xff1f +#define SHN_LOOS 0xff20 +#define SHN_HIOS 0xff3f +#define SHN_ABS 0xfff1 +#define SHN_COMMON 0xfff2 +#define SHN_XINDEX 0xffff +#define SHN_HIRESERVE 0xffff + + + +#define SHT_NULL 0 +#define SHT_PROGBITS 1 +#define SHT_SYMTAB 2 +#define SHT_STRTAB 3 +#define SHT_RELA 4 +#define SHT_HASH 5 +#define SHT_DYNAMIC 6 +#define SHT_NOTE 7 +#define SHT_NOBITS 8 +#define SHT_REL 9 +#define SHT_SHLIB 10 +#define SHT_DYNSYM 11 +#define SHT_INIT_ARRAY 14 +#define SHT_FINI_ARRAY 15 +#define SHT_PREINIT_ARRAY 16 +#define SHT_GROUP 17 +#define SHT_SYMTAB_SHNDX 18 +#define SHT_NUM 19 +#define SHT_LOOS 0x60000000 +#define SHT_GNU_ATTRIBUTES 0x6ffffff5 +#define SHT_GNU_HASH 0x6ffffff6 +#define SHT_GNU_LIBLIST 0x6ffffff7 +#define SHT_CHECKSUM 0x6ffffff8 +#define SHT_LOSUNW 0x6ffffffa +#define SHT_SUNW_move 0x6ffffffa +#define SHT_SUNW_COMDAT 0x6ffffffb +#define SHT_SUNW_syminfo 0x6ffffffc +#define SHT_GNU_verdef 0x6ffffffd +#define SHT_GNU_verneed 0x6ffffffe +#define SHT_GNU_versym 0x6fffffff +#define SHT_HISUNW 0x6fffffff +#define SHT_HIOS 0x6fffffff +#define SHT_LOPROC 0x70000000 +#define SHT_HIPROC 0x7fffffff +#define SHT_LOUSER 0x80000000 +#define SHT_HIUSER 0x8fffffff + +#define SHF_WRITE (1 << 0) +#define SHF_ALLOC (1 << 1) +#define SHF_EXECINSTR (1 << 2) +#define SHF_MERGE (1 << 4) +#define SHF_STRINGS (1 << 5) +#define SHF_INFO_LINK (1 << 6) +#define SHF_LINK_ORDER (1 << 7) +#define SHF_OS_NONCONFORMING (1 << 8) + +#define SHF_GROUP (1 << 9) +#define SHF_TLS (1 << 10) +#define SHF_COMPRESSED (1 << 11) +#define SHF_MASKOS 0x0ff00000 +#define SHF_MASKPROC 0xf0000000 +#define SHF_ORDERED (1 << 30) +#define SHF_EXCLUDE (1U << 31) + +typedef struct { + Elf32_Word ch_type; + Elf32_Word ch_size; + Elf32_Word ch_addralign; +} Elf32_Chdr; + +typedef struct { + Elf64_Word ch_type; + Elf64_Word ch_reserved; + Elf64_Xword ch_size; + Elf64_Xword ch_addralign; +} Elf64_Chdr; + +#define ELFCOMPRESS_ZLIB 1 +#define ELFCOMPRESS_LOOS 0x60000000 +#define ELFCOMPRESS_HIOS 0x6fffffff +#define ELFCOMPRESS_LOPROC 0x70000000 +#define ELFCOMPRESS_HIPROC 0x7fffffff + + +#define GRP_COMDAT 0x1 + +typedef struct { + Elf32_Word st_name; + Elf32_Addr st_value; + Elf32_Word st_size; + unsigned char st_info; + unsigned char st_other; + Elf32_Section st_shndx; +} Elf32_Sym; + +typedef struct { + Elf64_Word st_name; + unsigned char st_info; + unsigned char st_other; + Elf64_Section st_shndx; + Elf64_Addr st_value; + Elf64_Xword st_size; +} Elf64_Sym; + +typedef struct { + Elf32_Half si_boundto; + Elf32_Half si_flags; +} Elf32_Syminfo; + +typedef struct { + Elf64_Half si_boundto; + Elf64_Half si_flags; +} Elf64_Syminfo; + +#define SYMINFO_BT_SELF 0xffff +#define SYMINFO_BT_PARENT 0xfffe +#define SYMINFO_BT_LOWRESERVE 0xff00 + +#define SYMINFO_FLG_DIRECT 0x0001 +#define SYMINFO_FLG_PASSTHRU 0x0002 +#define SYMINFO_FLG_COPY 0x0004 +#define SYMINFO_FLG_LAZYLOAD 0x0008 + +#define SYMINFO_NONE 0 +#define SYMINFO_CURRENT 1 +#define SYMINFO_NUM 2 + +#define ELF32_ST_BIND(val) (((unsigned char) (val)) >> 4) +#define ELF32_ST_TYPE(val) ((val) & 0xf) +#define ELF32_ST_INFO(bind, type) (((bind) << 4) + ((type) & 0xf)) + +#define ELF64_ST_BIND(val) ELF32_ST_BIND (val) +#define ELF64_ST_TYPE(val) ELF32_ST_TYPE (val) +#define ELF64_ST_INFO(bind, type) ELF32_ST_INFO ((bind), (type)) + +#define STB_LOCAL 0 +#define STB_GLOBAL 1 +#define STB_WEAK 2 +#define STB_NUM 3 +#define STB_LOOS 10 +#define STB_GNU_UNIQUE 10 +#define STB_HIOS 12 +#define STB_LOPROC 13 +#define STB_HIPROC 15 + +#define STT_NOTYPE 0 +#define STT_OBJECT 1 +#define STT_FUNC 2 +#define STT_SECTION 3 +#define STT_FILE 4 +#define STT_COMMON 5 +#define STT_TLS 6 +#define STT_NUM 7 +#define STT_LOOS 10 +#define STT_GNU_IFUNC 10 +#define STT_HIOS 12 +#define STT_LOPROC 13 +#define STT_HIPROC 15 + +#define STN_UNDEF 0 + +#define ELF32_ST_VISIBILITY(o) ((o) & 0x03) +#define ELF64_ST_VISIBILITY(o) ELF32_ST_VISIBILITY (o) + +#define STV_DEFAULT 0 +#define STV_INTERNAL 1 +#define STV_HIDDEN 2 +#define STV_PROTECTED 3 + + + + +typedef struct { + Elf32_Addr r_offset; + Elf32_Word r_info; +} Elf32_Rel; + +typedef struct { + Elf64_Addr r_offset; + Elf64_Xword r_info; +} Elf64_Rel; + + + +typedef struct { + Elf32_Addr r_offset; + Elf32_Word r_info; + Elf32_Sword r_addend; +} Elf32_Rela; + +typedef struct { + Elf64_Addr r_offset; + Elf64_Xword r_info; + Elf64_Sxword r_addend; +} Elf64_Rela; + + + +#define ELF32_R_SYM(val) ((val) >> 8) +#define ELF32_R_TYPE(val) ((val) & 0xff) +#define ELF32_R_INFO(sym, type) (((sym) << 8) + ((type) & 0xff)) + +#define ELF64_R_SYM(i) ((i) >> 32) +#define ELF64_R_TYPE(i) ((i) & 0xffffffff) +#define ELF64_R_INFO(sym,type) ((((Elf64_Xword) (sym)) << 32) + (type)) + + + +typedef struct { + Elf32_Word p_type; + Elf32_Off p_offset; + Elf32_Addr p_vaddr; + Elf32_Addr p_paddr; + Elf32_Word p_filesz; + Elf32_Word p_memsz; + Elf32_Word p_flags; + Elf32_Word p_align; +} Elf32_Phdr; + +typedef struct { + Elf64_Word p_type; + Elf64_Word p_flags; + Elf64_Off p_offset; + Elf64_Addr p_vaddr; + Elf64_Addr p_paddr; + Elf64_Xword p_filesz; + Elf64_Xword p_memsz; + Elf64_Xword p_align; +} Elf64_Phdr; + + + +#define PT_NULL 0 +#define PT_LOAD 1 +#define PT_DYNAMIC 2 +#define PT_INTERP 3 +#define PT_NOTE 4 +#define PT_SHLIB 5 +#define PT_PHDR 6 +#define PT_TLS 7 +#define PT_NUM 8 +#define PT_LOOS 0x60000000 +#define PT_GNU_EH_FRAME 0x6474e550 +#define PT_GNU_STACK 0x6474e551 +#define PT_GNU_RELRO 0x6474e552 +#define PT_LOSUNW 0x6ffffffa +#define PT_SUNWBSS 0x6ffffffa +#define PT_SUNWSTACK 0x6ffffffb +#define PT_HISUNW 0x6fffffff +#define PT_HIOS 0x6fffffff +#define PT_LOPROC 0x70000000 +#define PT_HIPROC 0x7fffffff + + +#define PN_XNUM 0xffff + + +#define PF_X (1 << 0) +#define PF_W (1 << 1) +#define PF_R (1 << 2) +#define PF_MASKOS 0x0ff00000 +#define PF_MASKPROC 0xf0000000 + + + +#define NT_PRSTATUS 1 +#define NT_FPREGSET 2 +#define NT_PRPSINFO 3 +#define NT_PRXREG 4 +#define NT_TASKSTRUCT 4 +#define NT_PLATFORM 5 +#define NT_AUXV 6 +#define NT_GWINDOWS 7 +#define NT_ASRS 8 +#define NT_PSTATUS 10 +#define NT_PSINFO 13 +#define NT_PRCRED 14 +#define NT_UTSNAME 15 +#define NT_LWPSTATUS 16 +#define NT_LWPSINFO 17 +#define NT_PRFPXREG 20 +#define NT_SIGINFO 0x53494749 +#define NT_FILE 0x46494c45 +#define NT_PRXFPREG 0x46e62b7f +#define NT_PPC_VMX 0x100 +#define NT_PPC_SPE 0x101 +#define NT_PPC_VSX 0x102 +#define NT_386_TLS 0x200 +#define NT_386_IOPERM 0x201 +#define NT_X86_XSTATE 0x202 +#define NT_S390_HIGH_GPRS 0x300 +#define NT_S390_TIMER 0x301 +#define NT_S390_TODCMP 0x302 +#define NT_S390_TODPREG 0x303 +#define NT_S390_CTRS 0x304 +#define NT_S390_PREFIX 0x305 +#define NT_S390_LAST_BREAK 0x306 +#define NT_S390_SYSTEM_CALL 0x307 +#define NT_S390_TDB 0x308 +#define NT_ARM_VFP 0x400 +#define NT_ARM_TLS 0x401 +#define NT_ARM_HW_BREAK 0x402 +#define NT_ARM_HW_WATCH 0x403 +#define NT_ARM_SYSTEM_CALL 0x404 +#define NT_ARM_SVE 0x405 +#define NT_METAG_CBUF 0x500 +#define NT_METAG_RPIPE 0x501 +#define NT_METAG_TLS 0x502 +#define NT_VERSION 1 + + + + +typedef struct { + Elf32_Sword d_tag; + union { + Elf32_Word d_val; + Elf32_Addr d_ptr; + } d_un; +} Elf32_Dyn; + +typedef struct { + Elf64_Sxword d_tag; + union { + Elf64_Xword d_val; + Elf64_Addr d_ptr; + } d_un; +} Elf64_Dyn; + + + +#define DT_NULL 0 +#define DT_NEEDED 1 +#define DT_PLTRELSZ 2 +#define DT_PLTGOT 3 +#define DT_HASH 4 +#define DT_STRTAB 5 +#define DT_SYMTAB 6 +#define DT_RELA 7 +#define DT_RELASZ 8 +#define DT_RELAENT 9 +#define DT_STRSZ 10 +#define DT_SYMENT 11 +#define DT_INIT 12 +#define DT_FINI 13 +#define DT_SONAME 14 +#define DT_RPATH 15 +#define DT_SYMBOLIC 16 +#define DT_REL 17 +#define DT_RELSZ 18 +#define DT_RELENT 19 +#define DT_PLTREL 20 +#define DT_DEBUG 21 +#define DT_TEXTREL 22 +#define DT_JMPREL 23 +#define DT_BIND_NOW 24 +#define DT_INIT_ARRAY 25 +#define DT_FINI_ARRAY 26 +#define DT_INIT_ARRAYSZ 27 +#define DT_FINI_ARRAYSZ 28 +#define DT_RUNPATH 29 +#define DT_FLAGS 30 +#define DT_ENCODING 32 +#define DT_PREINIT_ARRAY 32 +#define DT_PREINIT_ARRAYSZ 33 +#define DT_NUM 34 +#define DT_LOOS 0x6000000d +#define DT_HIOS 0x6ffff000 +#define DT_LOPROC 0x70000000 +#define DT_HIPROC 0x7fffffff +#define DT_PROCNUM DT_MIPS_NUM + +#define DT_VALRNGLO 0x6ffffd00 +#define DT_GNU_PRELINKED 0x6ffffdf5 +#define DT_GNU_CONFLICTSZ 0x6ffffdf6 +#define DT_GNU_LIBLISTSZ 0x6ffffdf7 +#define DT_CHECKSUM 0x6ffffdf8 +#define DT_PLTPADSZ 0x6ffffdf9 +#define DT_MOVEENT 0x6ffffdfa +#define DT_MOVESZ 0x6ffffdfb +#define DT_FEATURE_1 0x6ffffdfc +#define DT_POSFLAG_1 0x6ffffdfd + +#define DT_SYMINSZ 0x6ffffdfe +#define DT_SYMINENT 0x6ffffdff +#define DT_VALRNGHI 0x6ffffdff +#define DT_VALTAGIDX(tag) (DT_VALRNGHI - (tag)) +#define DT_VALNUM 12 + +#define DT_ADDRRNGLO 0x6ffffe00 +#define DT_GNU_HASH 0x6ffffef5 +#define DT_TLSDESC_PLT 0x6ffffef6 +#define DT_TLSDESC_GOT 0x6ffffef7 +#define DT_GNU_CONFLICT 0x6ffffef8 +#define DT_GNU_LIBLIST 0x6ffffef9 +#define DT_CONFIG 0x6ffffefa +#define DT_DEPAUDIT 0x6ffffefb +#define DT_AUDIT 0x6ffffefc +#define DT_PLTPAD 0x6ffffefd +#define DT_MOVETAB 0x6ffffefe +#define DT_SYMINFO 0x6ffffeff +#define DT_ADDRRNGHI 0x6ffffeff +#define DT_ADDRTAGIDX(tag) (DT_ADDRRNGHI - (tag)) +#define DT_ADDRNUM 11 + + + +#define DT_VERSYM 0x6ffffff0 + +#define DT_RELACOUNT 0x6ffffff9 +#define DT_RELCOUNT 0x6ffffffa + + +#define DT_FLAGS_1 0x6ffffffb +#define DT_VERDEF 0x6ffffffc + +#define DT_VERDEFNUM 0x6ffffffd +#define DT_VERNEED 0x6ffffffe + +#define DT_VERNEEDNUM 0x6fffffff +#define DT_VERSIONTAGIDX(tag) (DT_VERNEEDNUM - (tag)) +#define DT_VERSIONTAGNUM 16 + + + +#define DT_AUXILIARY 0x7ffffffd +#define DT_FILTER 0x7fffffff +#define DT_EXTRATAGIDX(tag) ((Elf32_Word)-((Elf32_Sword) (tag) <<1>>1)-1) +#define DT_EXTRANUM 3 + + +#define DF_ORIGIN 0x00000001 +#define DF_SYMBOLIC 0x00000002 +#define DF_TEXTREL 0x00000004 +#define DF_BIND_NOW 0x00000008 +#define DF_STATIC_TLS 0x00000010 + + + +#define DF_1_NOW 0x00000001 +#define DF_1_GLOBAL 0x00000002 +#define DF_1_GROUP 0x00000004 +#define DF_1_NODELETE 0x00000008 +#define DF_1_LOADFLTR 0x00000010 +#define DF_1_INITFIRST 0x00000020 +#define DF_1_NOOPEN 0x00000040 +#define DF_1_ORIGIN 0x00000080 +#define DF_1_DIRECT 0x00000100 +#define DF_1_TRANS 0x00000200 +#define DF_1_INTERPOSE 0x00000400 +#define DF_1_NODEFLIB 0x00000800 +#define DF_1_NODUMP 0x00001000 +#define DF_1_CONFALT 0x00002000 +#define DF_1_ENDFILTEE 0x00004000 +#define DF_1_DISPRELDNE 0x00008000 +#define DF_1_DISPRELPND 0x00010000 +#define DF_1_NODIRECT 0x00020000 +#define DF_1_IGNMULDEF 0x00040000 +#define DF_1_NOKSYMS 0x00080000 +#define DF_1_NOHDR 0x00100000 +#define DF_1_EDITED 0x00200000 +#define DF_1_NORELOC 0x00400000 +#define DF_1_SYMINTPOSE 0x00800000 +#define DF_1_GLOBAUDIT 0x01000000 +#define DF_1_SINGLETON 0x02000000 + +#define DTF_1_PARINIT 0x00000001 +#define DTF_1_CONFEXP 0x00000002 + + +#define DF_P1_LAZYLOAD 0x00000001 +#define DF_P1_GROUPPERM 0x00000002 + + + + +typedef struct { + Elf32_Half vd_version; + Elf32_Half vd_flags; + Elf32_Half vd_ndx; + Elf32_Half vd_cnt; + Elf32_Word vd_hash; + Elf32_Word vd_aux; + Elf32_Word vd_next; +} Elf32_Verdef; + +typedef struct { + Elf64_Half vd_version; + Elf64_Half vd_flags; + Elf64_Half vd_ndx; + Elf64_Half vd_cnt; + Elf64_Word vd_hash; + Elf64_Word vd_aux; + Elf64_Word vd_next; +} Elf64_Verdef; + + + +#define VER_DEF_NONE 0 +#define VER_DEF_CURRENT 1 +#define VER_DEF_NUM 2 + + +#define VER_FLG_BASE 0x1 +#define VER_FLG_WEAK 0x2 + + +#define VER_NDX_LOCAL 0 +#define VER_NDX_GLOBAL 1 +#define VER_NDX_LORESERVE 0xff00 +#define VER_NDX_ELIMINATE 0xff01 + + + +typedef struct { + Elf32_Word vda_name; + Elf32_Word vda_next; +} Elf32_Verdaux; + +typedef struct { + Elf64_Word vda_name; + Elf64_Word vda_next; +} Elf64_Verdaux; + + + + +typedef struct { + Elf32_Half vn_version; + Elf32_Half vn_cnt; + Elf32_Word vn_file; + Elf32_Word vn_aux; + Elf32_Word vn_next; +} Elf32_Verneed; + +typedef struct { + Elf64_Half vn_version; + Elf64_Half vn_cnt; + Elf64_Word vn_file; + Elf64_Word vn_aux; + Elf64_Word vn_next; +} Elf64_Verneed; + + + +#define VER_NEED_NONE 0 +#define VER_NEED_CURRENT 1 +#define VER_NEED_NUM 2 + + + +typedef struct { + Elf32_Word vna_hash; + Elf32_Half vna_flags; + Elf32_Half vna_other; + Elf32_Word vna_name; + Elf32_Word vna_next; +} Elf32_Vernaux; + +typedef struct { + Elf64_Word vna_hash; + Elf64_Half vna_flags; + Elf64_Half vna_other; + Elf64_Word vna_name; + Elf64_Word vna_next; +} Elf64_Vernaux; + + + +#define VER_FLG_WEAK 0x2 + + + +typedef struct { + uint32_t a_type; + union { + uint32_t a_val; + } a_un; +} Elf32_auxv_t; + +typedef struct { + uint64_t a_type; + union { + uint64_t a_val; + } a_un; +} Elf64_auxv_t; + + + +#define AT_NULL 0 +#define AT_IGNORE 1 +#define AT_EXECFD 2 +#define AT_PHDR 3 +#define AT_PHENT 4 +#define AT_PHNUM 5 +#define AT_PAGESZ 6 +#define AT_BASE 7 +#define AT_FLAGS 8 +#define AT_ENTRY 9 +#define AT_NOTELF 10 +#define AT_UID 11 +#define AT_EUID 12 +#define AT_GID 13 +#define AT_EGID 14 +#define AT_CLKTCK 17 + + +#define AT_PLATFORM 15 +#define AT_HWCAP 16 + + + + +#define AT_FPUCW 18 + + +#define AT_DCACHEBSIZE 19 +#define AT_ICACHEBSIZE 20 +#define AT_UCACHEBSIZE 21 + + + +#define AT_IGNOREPPC 22 + +#define AT_SECURE 23 + +#define AT_BASE_PLATFORM 24 + +#define AT_RANDOM 25 + +#define AT_HWCAP2 26 + +#define AT_EXECFN 31 + + + +#define AT_SYSINFO 32 +#define AT_SYSINFO_EHDR 33 + + + +#define AT_L1I_CACHESHAPE 34 +#define AT_L1D_CACHESHAPE 35 +#define AT_L2_CACHESHAPE 36 +#define AT_L3_CACHESHAPE 37 + + + + +typedef struct { + Elf32_Word n_namesz; + Elf32_Word n_descsz; + Elf32_Word n_type; +} Elf32_Nhdr; + +typedef struct { + Elf64_Word n_namesz; + Elf64_Word n_descsz; + Elf64_Word n_type; +} Elf64_Nhdr; + + + + +#define ELF_NOTE_SOLARIS "SUNW Solaris" + + +#define ELF_NOTE_GNU "GNU" + + + + + +#define ELF_NOTE_PAGESIZE_HINT 1 + + +#define NT_GNU_ABI_TAG 1 +#define ELF_NOTE_ABI NT_GNU_ABI_TAG + + + +#define ELF_NOTE_OS_LINUX 0 +#define ELF_NOTE_OS_GNU 1 +#define ELF_NOTE_OS_SOLARIS2 2 +#define ELF_NOTE_OS_FREEBSD 3 + +#define NT_GNU_BUILD_ID 3 +#define NT_GNU_GOLD_VERSION 4 + + + +typedef struct { + Elf32_Xword m_value; + Elf32_Word m_info; + Elf32_Word m_poffset; + Elf32_Half m_repeat; + Elf32_Half m_stride; +} Elf32_Move; + +typedef struct { + Elf64_Xword m_value; + Elf64_Xword m_info; + Elf64_Xword m_poffset; + Elf64_Half m_repeat; + Elf64_Half m_stride; +} Elf64_Move; + + +#define ELF32_M_SYM(info) ((info) >> 8) +#define ELF32_M_SIZE(info) ((unsigned char) (info)) +#define ELF32_M_INFO(sym, size) (((sym) << 8) + (unsigned char) (size)) + +#define ELF64_M_SYM(info) ELF32_M_SYM (info) +#define ELF64_M_SIZE(info) ELF32_M_SIZE (info) +#define ELF64_M_INFO(sym, size) ELF32_M_INFO (sym, size) + +#define EF_CPU32 0x00810000 + +#define R_68K_NONE 0 +#define R_68K_32 1 +#define R_68K_16 2 +#define R_68K_8 3 +#define R_68K_PC32 4 +#define R_68K_PC16 5 +#define R_68K_PC8 6 +#define R_68K_GOT32 7 +#define R_68K_GOT16 8 +#define R_68K_GOT8 9 +#define R_68K_GOT32O 10 +#define R_68K_GOT16O 11 +#define R_68K_GOT8O 12 +#define R_68K_PLT32 13 +#define R_68K_PLT16 14 +#define R_68K_PLT8 15 +#define R_68K_PLT32O 16 +#define R_68K_PLT16O 17 +#define R_68K_PLT8O 18 +#define R_68K_COPY 19 +#define R_68K_GLOB_DAT 20 +#define R_68K_JMP_SLOT 21 +#define R_68K_RELATIVE 22 +#define R_68K_NUM 23 + +#define R_386_NONE 0 +#define R_386_32 1 +#define R_386_PC32 2 +#define R_386_GOT32 3 +#define R_386_PLT32 4 +#define R_386_COPY 5 +#define R_386_GLOB_DAT 6 +#define R_386_JMP_SLOT 7 +#define R_386_RELATIVE 8 +#define R_386_GOTOFF 9 +#define R_386_GOTPC 10 +#define R_386_32PLT 11 +#define R_386_TLS_TPOFF 14 +#define R_386_TLS_IE 15 +#define R_386_TLS_GOTIE 16 +#define R_386_TLS_LE 17 +#define R_386_TLS_GD 18 +#define R_386_TLS_LDM 19 +#define R_386_16 20 +#define R_386_PC16 21 +#define R_386_8 22 +#define R_386_PC8 23 +#define R_386_TLS_GD_32 24 +#define R_386_TLS_GD_PUSH 25 +#define R_386_TLS_GD_CALL 26 +#define R_386_TLS_GD_POP 27 +#define R_386_TLS_LDM_32 28 +#define R_386_TLS_LDM_PUSH 29 +#define R_386_TLS_LDM_CALL 30 +#define R_386_TLS_LDM_POP 31 +#define R_386_TLS_LDO_32 32 +#define R_386_TLS_IE_32 33 +#define R_386_TLS_LE_32 34 +#define R_386_TLS_DTPMOD32 35 +#define R_386_TLS_DTPOFF32 36 +#define R_386_TLS_TPOFF32 37 +#define R_386_SIZE32 38 +#define R_386_TLS_GOTDESC 39 +#define R_386_TLS_DESC_CALL 40 +#define R_386_TLS_DESC 41 +#define R_386_IRELATIVE 42 +#define R_386_GOT32X 43 +#define R_386_NUM 44 + + + + + +#define STT_SPARC_REGISTER 13 + + + +#define EF_SPARCV9_MM 3 +#define EF_SPARCV9_TSO 0 +#define EF_SPARCV9_PSO 1 +#define EF_SPARCV9_RMO 2 +#define EF_SPARC_LEDATA 0x800000 +#define EF_SPARC_EXT_MASK 0xFFFF00 +#define EF_SPARC_32PLUS 0x000100 +#define EF_SPARC_SUN_US1 0x000200 +#define EF_SPARC_HAL_R1 0x000400 +#define EF_SPARC_SUN_US3 0x000800 + + + +#define R_SPARC_NONE 0 +#define R_SPARC_8 1 +#define R_SPARC_16 2 +#define R_SPARC_32 3 +#define R_SPARC_DISP8 4 +#define R_SPARC_DISP16 5 +#define R_SPARC_DISP32 6 +#define R_SPARC_WDISP30 7 +#define R_SPARC_WDISP22 8 +#define R_SPARC_HI22 9 +#define R_SPARC_22 10 +#define R_SPARC_13 11 +#define R_SPARC_LO10 12 +#define R_SPARC_GOT10 13 +#define R_SPARC_GOT13 14 +#define R_SPARC_GOT22 15 +#define R_SPARC_PC10 16 +#define R_SPARC_PC22 17 +#define R_SPARC_WPLT30 18 +#define R_SPARC_COPY 19 +#define R_SPARC_GLOB_DAT 20 +#define R_SPARC_JMP_SLOT 21 +#define R_SPARC_RELATIVE 22 +#define R_SPARC_UA32 23 + + + +#define R_SPARC_PLT32 24 +#define R_SPARC_HIPLT22 25 +#define R_SPARC_LOPLT10 26 +#define R_SPARC_PCPLT32 27 +#define R_SPARC_PCPLT22 28 +#define R_SPARC_PCPLT10 29 +#define R_SPARC_10 30 +#define R_SPARC_11 31 +#define R_SPARC_64 32 +#define R_SPARC_OLO10 33 +#define R_SPARC_HH22 34 +#define R_SPARC_HM10 35 +#define R_SPARC_LM22 36 +#define R_SPARC_PC_HH22 37 +#define R_SPARC_PC_HM10 38 +#define R_SPARC_PC_LM22 39 +#define R_SPARC_WDISP16 40 +#define R_SPARC_WDISP19 41 +#define R_SPARC_GLOB_JMP 42 +#define R_SPARC_7 43 +#define R_SPARC_5 44 +#define R_SPARC_6 45 +#define R_SPARC_DISP64 46 +#define R_SPARC_PLT64 47 +#define R_SPARC_HIX22 48 +#define R_SPARC_LOX10 49 +#define R_SPARC_H44 50 +#define R_SPARC_M44 51 +#define R_SPARC_L44 52 +#define R_SPARC_REGISTER 53 +#define R_SPARC_UA64 54 +#define R_SPARC_UA16 55 +#define R_SPARC_TLS_GD_HI22 56 +#define R_SPARC_TLS_GD_LO10 57 +#define R_SPARC_TLS_GD_ADD 58 +#define R_SPARC_TLS_GD_CALL 59 +#define R_SPARC_TLS_LDM_HI22 60 +#define R_SPARC_TLS_LDM_LO10 61 +#define R_SPARC_TLS_LDM_ADD 62 +#define R_SPARC_TLS_LDM_CALL 63 +#define R_SPARC_TLS_LDO_HIX22 64 +#define R_SPARC_TLS_LDO_LOX10 65 +#define R_SPARC_TLS_LDO_ADD 66 +#define R_SPARC_TLS_IE_HI22 67 +#define R_SPARC_TLS_IE_LO10 68 +#define R_SPARC_TLS_IE_LD 69 +#define R_SPARC_TLS_IE_LDX 70 +#define R_SPARC_TLS_IE_ADD 71 +#define R_SPARC_TLS_LE_HIX22 72 +#define R_SPARC_TLS_LE_LOX10 73 +#define R_SPARC_TLS_DTPMOD32 74 +#define R_SPARC_TLS_DTPMOD64 75 +#define R_SPARC_TLS_DTPOFF32 76 +#define R_SPARC_TLS_DTPOFF64 77 +#define R_SPARC_TLS_TPOFF32 78 +#define R_SPARC_TLS_TPOFF64 79 +#define R_SPARC_GOTDATA_HIX22 80 +#define R_SPARC_GOTDATA_LOX10 81 +#define R_SPARC_GOTDATA_OP_HIX22 82 +#define R_SPARC_GOTDATA_OP_LOX10 83 +#define R_SPARC_GOTDATA_OP 84 +#define R_SPARC_H34 85 +#define R_SPARC_SIZE32 86 +#define R_SPARC_SIZE64 87 +#define R_SPARC_GNU_VTINHERIT 250 +#define R_SPARC_GNU_VTENTRY 251 +#define R_SPARC_REV32 252 + +#define R_SPARC_NUM 253 + + + +#define DT_SPARC_REGISTER 0x70000001 +#define DT_SPARC_NUM 2 + + +#define EF_MIPS_NOREORDER 1 +#define EF_MIPS_PIC 2 +#define EF_MIPS_CPIC 4 +#define EF_MIPS_XGOT 8 +#define EF_MIPS_64BIT_WHIRL 16 +#define EF_MIPS_ABI2 32 +#define EF_MIPS_ABI_ON32 64 +#define EF_MIPS_FP64 512 +#define EF_MIPS_NAN2008 1024 +#define EF_MIPS_ARCH 0xf0000000 + + + +#define EF_MIPS_ARCH_1 0x00000000 +#define EF_MIPS_ARCH_2 0x10000000 +#define EF_MIPS_ARCH_3 0x20000000 +#define EF_MIPS_ARCH_4 0x30000000 +#define EF_MIPS_ARCH_5 0x40000000 +#define EF_MIPS_ARCH_32 0x50000000 +#define EF_MIPS_ARCH_64 0x60000000 +#define EF_MIPS_ARCH_32R2 0x70000000 +#define EF_MIPS_ARCH_64R2 0x80000000 + + +#define E_MIPS_ARCH_1 0x00000000 +#define E_MIPS_ARCH_2 0x10000000 +#define E_MIPS_ARCH_3 0x20000000 +#define E_MIPS_ARCH_4 0x30000000 +#define E_MIPS_ARCH_5 0x40000000 +#define E_MIPS_ARCH_32 0x50000000 +#define E_MIPS_ARCH_64 0x60000000 + + + +#define SHN_MIPS_ACOMMON 0xff00 +#define SHN_MIPS_TEXT 0xff01 +#define SHN_MIPS_DATA 0xff02 +#define SHN_MIPS_SCOMMON 0xff03 +#define SHN_MIPS_SUNDEFINED 0xff04 + + + +#define SHT_MIPS_LIBLIST 0x70000000 +#define SHT_MIPS_MSYM 0x70000001 +#define SHT_MIPS_CONFLICT 0x70000002 +#define SHT_MIPS_GPTAB 0x70000003 +#define SHT_MIPS_UCODE 0x70000004 +#define SHT_MIPS_DEBUG 0x70000005 +#define SHT_MIPS_REGINFO 0x70000006 +#define SHT_MIPS_PACKAGE 0x70000007 +#define SHT_MIPS_PACKSYM 0x70000008 +#define SHT_MIPS_RELD 0x70000009 +#define SHT_MIPS_IFACE 0x7000000b +#define SHT_MIPS_CONTENT 0x7000000c +#define SHT_MIPS_OPTIONS 0x7000000d +#define SHT_MIPS_SHDR 0x70000010 +#define SHT_MIPS_FDESC 0x70000011 +#define SHT_MIPS_EXTSYM 0x70000012 +#define SHT_MIPS_DENSE 0x70000013 +#define SHT_MIPS_PDESC 0x70000014 +#define SHT_MIPS_LOCSYM 0x70000015 +#define SHT_MIPS_AUXSYM 0x70000016 +#define SHT_MIPS_OPTSYM 0x70000017 +#define SHT_MIPS_LOCSTR 0x70000018 +#define SHT_MIPS_LINE 0x70000019 +#define SHT_MIPS_RFDESC 0x7000001a +#define SHT_MIPS_DELTASYM 0x7000001b +#define SHT_MIPS_DELTAINST 0x7000001c +#define SHT_MIPS_DELTACLASS 0x7000001d +#define SHT_MIPS_DWARF 0x7000001e +#define SHT_MIPS_DELTADECL 0x7000001f +#define SHT_MIPS_SYMBOL_LIB 0x70000020 +#define SHT_MIPS_EVENTS 0x70000021 +#define SHT_MIPS_TRANSLATE 0x70000022 +#define SHT_MIPS_PIXIE 0x70000023 +#define SHT_MIPS_XLATE 0x70000024 +#define SHT_MIPS_XLATE_DEBUG 0x70000025 +#define SHT_MIPS_WHIRL 0x70000026 +#define SHT_MIPS_EH_REGION 0x70000027 +#define SHT_MIPS_XLATE_OLD 0x70000028 +#define SHT_MIPS_PDR_EXCEPTION 0x70000029 + + + +#define SHF_MIPS_GPREL 0x10000000 +#define SHF_MIPS_MERGE 0x20000000 +#define SHF_MIPS_ADDR 0x40000000 +#define SHF_MIPS_STRINGS 0x80000000 +#define SHF_MIPS_NOSTRIP 0x08000000 +#define SHF_MIPS_LOCAL 0x04000000 +#define SHF_MIPS_NAMES 0x02000000 +#define SHF_MIPS_NODUPE 0x01000000 + + + + + +#define STO_MIPS_DEFAULT 0x0 +#define STO_MIPS_INTERNAL 0x1 +#define STO_MIPS_HIDDEN 0x2 +#define STO_MIPS_PROTECTED 0x3 +#define STO_MIPS_PLT 0x8 +#define STO_MIPS_SC_ALIGN_UNUSED 0xff + + +#define STB_MIPS_SPLIT_COMMON 13 + + + +typedef union { + struct { + Elf32_Word gt_current_g_value; + Elf32_Word gt_unused; + } gt_header; + struct { + Elf32_Word gt_g_value; + Elf32_Word gt_bytes; + } gt_entry; +} Elf32_gptab; + + + +typedef struct { + Elf32_Word ri_gprmask; + Elf32_Word ri_cprmask[4]; + Elf32_Sword ri_gp_value; +} Elf32_RegInfo; + + + +typedef struct { + unsigned char kind; + + unsigned char size; + Elf32_Section section; + + Elf32_Word info; +} Elf_Options; + + + +#define ODK_NULL 0 +#define ODK_REGINFO 1 +#define ODK_EXCEPTIONS 2 +#define ODK_PAD 3 +#define ODK_HWPATCH 4 +#define ODK_FILL 5 +#define ODK_TAGS 6 +#define ODK_HWAND 7 +#define ODK_HWOR 8 + + + +#define OEX_FPU_MIN 0x1f +#define OEX_FPU_MAX 0x1f00 +#define OEX_PAGE0 0x10000 +#define OEX_SMM 0x20000 +#define OEX_FPDBUG 0x40000 +#define OEX_PRECISEFP OEX_FPDBUG +#define OEX_DISMISS 0x80000 + +#define OEX_FPU_INVAL 0x10 +#define OEX_FPU_DIV0 0x08 +#define OEX_FPU_OFLO 0x04 +#define OEX_FPU_UFLO 0x02 +#define OEX_FPU_INEX 0x01 + + + +#define OHW_R4KEOP 0x1 +#define OHW_R8KPFETCH 0x2 +#define OHW_R5KEOP 0x4 +#define OHW_R5KCVTL 0x8 + +#define OPAD_PREFIX 0x1 +#define OPAD_POSTFIX 0x2 +#define OPAD_SYMBOL 0x4 + + + +typedef struct { + Elf32_Word hwp_flags1; + Elf32_Word hwp_flags2; +} Elf_Options_Hw; + + + +#define OHWA0_R4KEOP_CHECKED 0x00000001 +#define OHWA1_R4KEOP_CLEAN 0x00000002 + + + +#define R_MIPS_NONE 0 +#define R_MIPS_16 1 +#define R_MIPS_32 2 +#define R_MIPS_REL32 3 +#define R_MIPS_26 4 +#define R_MIPS_HI16 5 +#define R_MIPS_LO16 6 +#define R_MIPS_GPREL16 7 +#define R_MIPS_LITERAL 8 +#define R_MIPS_GOT16 9 +#define R_MIPS_PC16 10 +#define R_MIPS_CALL16 11 +#define R_MIPS_GPREL32 12 + +#define R_MIPS_SHIFT5 16 +#define R_MIPS_SHIFT6 17 +#define R_MIPS_64 18 +#define R_MIPS_GOT_DISP 19 +#define R_MIPS_GOT_PAGE 20 +#define R_MIPS_GOT_OFST 21 +#define R_MIPS_GOT_HI16 22 +#define R_MIPS_GOT_LO16 23 +#define R_MIPS_SUB 24 +#define R_MIPS_INSERT_A 25 +#define R_MIPS_INSERT_B 26 +#define R_MIPS_DELETE 27 +#define R_MIPS_HIGHER 28 +#define R_MIPS_HIGHEST 29 +#define R_MIPS_CALL_HI16 30 +#define R_MIPS_CALL_LO16 31 +#define R_MIPS_SCN_DISP 32 +#define R_MIPS_REL16 33 +#define R_MIPS_ADD_IMMEDIATE 34 +#define R_MIPS_PJUMP 35 +#define R_MIPS_RELGOT 36 +#define R_MIPS_JALR 37 +#define R_MIPS_TLS_DTPMOD32 38 +#define R_MIPS_TLS_DTPREL32 39 +#define R_MIPS_TLS_DTPMOD64 40 +#define R_MIPS_TLS_DTPREL64 41 +#define R_MIPS_TLS_GD 42 +#define R_MIPS_TLS_LDM 43 +#define R_MIPS_TLS_DTPREL_HI16 44 +#define R_MIPS_TLS_DTPREL_LO16 45 +#define R_MIPS_TLS_GOTTPREL 46 +#define R_MIPS_TLS_TPREL32 47 +#define R_MIPS_TLS_TPREL64 48 +#define R_MIPS_TLS_TPREL_HI16 49 +#define R_MIPS_TLS_TPREL_LO16 50 +#define R_MIPS_GLOB_DAT 51 +#define R_MIPS_COPY 126 +#define R_MIPS_JUMP_SLOT 127 + +#define R_MIPS_NUM 128 + + + +#define PT_MIPS_REGINFO 0x70000000 +#define PT_MIPS_RTPROC 0x70000001 +#define PT_MIPS_OPTIONS 0x70000002 +#define PT_MIPS_ABIFLAGS 0x70000003 + + + +#define PF_MIPS_LOCAL 0x10000000 + + + +#define DT_MIPS_RLD_VERSION 0x70000001 +#define DT_MIPS_TIME_STAMP 0x70000002 +#define DT_MIPS_ICHECKSUM 0x70000003 +#define DT_MIPS_IVERSION 0x70000004 +#define DT_MIPS_FLAGS 0x70000005 +#define DT_MIPS_BASE_ADDRESS 0x70000006 +#define DT_MIPS_MSYM 0x70000007 +#define DT_MIPS_CONFLICT 0x70000008 +#define DT_MIPS_LIBLIST 0x70000009 +#define DT_MIPS_LOCAL_GOTNO 0x7000000a +#define DT_MIPS_CONFLICTNO 0x7000000b +#define DT_MIPS_LIBLISTNO 0x70000010 +#define DT_MIPS_SYMTABNO 0x70000011 +#define DT_MIPS_UNREFEXTNO 0x70000012 +#define DT_MIPS_GOTSYM 0x70000013 +#define DT_MIPS_HIPAGENO 0x70000014 +#define DT_MIPS_RLD_MAP 0x70000016 +#define DT_MIPS_DELTA_CLASS 0x70000017 +#define DT_MIPS_DELTA_CLASS_NO 0x70000018 + +#define DT_MIPS_DELTA_INSTANCE 0x70000019 +#define DT_MIPS_DELTA_INSTANCE_NO 0x7000001a + +#define DT_MIPS_DELTA_RELOC 0x7000001b +#define DT_MIPS_DELTA_RELOC_NO 0x7000001c + +#define DT_MIPS_DELTA_SYM 0x7000001d + +#define DT_MIPS_DELTA_SYM_NO 0x7000001e + +#define DT_MIPS_DELTA_CLASSSYM 0x70000020 + +#define DT_MIPS_DELTA_CLASSSYM_NO 0x70000021 + +#define DT_MIPS_CXX_FLAGS 0x70000022 +#define DT_MIPS_PIXIE_INIT 0x70000023 +#define DT_MIPS_SYMBOL_LIB 0x70000024 +#define DT_MIPS_LOCALPAGE_GOTIDX 0x70000025 +#define DT_MIPS_LOCAL_GOTIDX 0x70000026 +#define DT_MIPS_HIDDEN_GOTIDX 0x70000027 +#define DT_MIPS_PROTECTED_GOTIDX 0x70000028 +#define DT_MIPS_OPTIONS 0x70000029 +#define DT_MIPS_INTERFACE 0x7000002a +#define DT_MIPS_DYNSTR_ALIGN 0x7000002b +#define DT_MIPS_INTERFACE_SIZE 0x7000002c +#define DT_MIPS_RLD_TEXT_RESOLVE_ADDR 0x7000002d + +#define DT_MIPS_PERF_SUFFIX 0x7000002e + +#define DT_MIPS_COMPACT_SIZE 0x7000002f +#define DT_MIPS_GP_VALUE 0x70000030 +#define DT_MIPS_AUX_DYNAMIC 0x70000031 + +#define DT_MIPS_PLTGOT 0x70000032 + +#define DT_MIPS_RWPLT 0x70000034 +#define DT_MIPS_RLD_MAP_REL 0x70000035 +#define DT_MIPS_NUM 0x36 + + + +#define RHF_NONE 0 +#define RHF_QUICKSTART (1 << 0) +#define RHF_NOTPOT (1 << 1) +#define RHF_NO_LIBRARY_REPLACEMENT (1 << 2) +#define RHF_NO_MOVE (1 << 3) +#define RHF_SGI_ONLY (1 << 4) +#define RHF_GUARANTEE_INIT (1 << 5) +#define RHF_DELTA_C_PLUS_PLUS (1 << 6) +#define RHF_GUARANTEE_START_INIT (1 << 7) +#define RHF_PIXIE (1 << 8) +#define RHF_DEFAULT_DELAY_LOAD (1 << 9) +#define RHF_REQUICKSTART (1 << 10) +#define RHF_REQUICKSTARTED (1 << 11) +#define RHF_CORD (1 << 12) +#define RHF_NO_UNRES_UNDEF (1 << 13) +#define RHF_RLD_ORDER_SAFE (1 << 14) + + + +typedef struct { + Elf32_Word l_name; + Elf32_Word l_time_stamp; + Elf32_Word l_checksum; + Elf32_Word l_version; + Elf32_Word l_flags; +} Elf32_Lib; + +typedef struct { + Elf64_Word l_name; + Elf64_Word l_time_stamp; + Elf64_Word l_checksum; + Elf64_Word l_version; + Elf64_Word l_flags; +} Elf64_Lib; + + + + +#define LL_NONE 0 +#define LL_EXACT_MATCH (1 << 0) +#define LL_IGNORE_INT_VER (1 << 1) +#define LL_REQUIRE_MINOR (1 << 2) +#define LL_EXPORTS (1 << 3) +#define LL_DELAY_LOAD (1 << 4) +#define LL_DELTA (1 << 5) + + + +typedef Elf32_Addr Elf32_Conflict; + +typedef struct { + Elf32_Half version; + unsigned char isa_level; + unsigned char isa_rev; + unsigned char gpr_size; + unsigned char cpr1_size; + unsigned char cpr2_size; + unsigned char fp_abi; + Elf32_Word isa_ext; + Elf32_Word ases; + Elf32_Word flags1; + Elf32_Word flags2; +} Elf_MIPS_ABIFlags_v0; + +#define MIPS_AFL_REG_NONE 0x00 +#define MIPS_AFL_REG_32 0x01 +#define MIPS_AFL_REG_64 0x02 +#define MIPS_AFL_REG_128 0x03 + +#define MIPS_AFL_ASE_DSP 0x00000001 +#define MIPS_AFL_ASE_DSPR2 0x00000002 +#define MIPS_AFL_ASE_EVA 0x00000004 +#define MIPS_AFL_ASE_MCU 0x00000008 +#define MIPS_AFL_ASE_MDMX 0x00000010 +#define MIPS_AFL_ASE_MIPS3D 0x00000020 +#define MIPS_AFL_ASE_MT 0x00000040 +#define MIPS_AFL_ASE_SMARTMIPS 0x00000080 +#define MIPS_AFL_ASE_VIRT 0x00000100 +#define MIPS_AFL_ASE_MSA 0x00000200 +#define MIPS_AFL_ASE_MIPS16 0x00000400 +#define MIPS_AFL_ASE_MICROMIPS 0x00000800 +#define MIPS_AFL_ASE_XPA 0x00001000 +#define MIPS_AFL_ASE_MASK 0x00001fff + +#define MIPS_AFL_EXT_XLR 1 +#define MIPS_AFL_EXT_OCTEON2 2 +#define MIPS_AFL_EXT_OCTEONP 3 +#define MIPS_AFL_EXT_LOONGSON_3A 4 +#define MIPS_AFL_EXT_OCTEON 5 +#define MIPS_AFL_EXT_5900 6 +#define MIPS_AFL_EXT_4650 7 +#define MIPS_AFL_EXT_4010 8 +#define MIPS_AFL_EXT_4100 9 +#define MIPS_AFL_EXT_3900 10 +#define MIPS_AFL_EXT_10000 11 +#define MIPS_AFL_EXT_SB1 12 +#define MIPS_AFL_EXT_4111 13 +#define MIPS_AFL_EXT_4120 14 +#define MIPS_AFL_EXT_5400 15 +#define MIPS_AFL_EXT_5500 16 +#define MIPS_AFL_EXT_LOONGSON_2E 17 +#define MIPS_AFL_EXT_LOONGSON_2F 18 + +#define MIPS_AFL_FLAGS1_ODDSPREG 1 + +enum +{ + Val_GNU_MIPS_ABI_FP_ANY = 0, + Val_GNU_MIPS_ABI_FP_DOUBLE = 1, + Val_GNU_MIPS_ABI_FP_SINGLE = 2, + Val_GNU_MIPS_ABI_FP_SOFT = 3, + Val_GNU_MIPS_ABI_FP_OLD_64 = 4, + Val_GNU_MIPS_ABI_FP_XX = 5, + Val_GNU_MIPS_ABI_FP_64 = 6, + Val_GNU_MIPS_ABI_FP_64A = 7, + Val_GNU_MIPS_ABI_FP_MAX = 7 +}; + + + + +#define EF_PARISC_TRAPNIL 0x00010000 +#define EF_PARISC_EXT 0x00020000 +#define EF_PARISC_LSB 0x00040000 +#define EF_PARISC_WIDE 0x00080000 +#define EF_PARISC_NO_KABP 0x00100000 + +#define EF_PARISC_LAZYSWAP 0x00400000 +#define EF_PARISC_ARCH 0x0000ffff + + + +#define EFA_PARISC_1_0 0x020b +#define EFA_PARISC_1_1 0x0210 +#define EFA_PARISC_2_0 0x0214 + + + +#define SHN_PARISC_ANSI_COMMON 0xff00 + +#define SHN_PARISC_HUGE_COMMON 0xff01 + + + +#define SHT_PARISC_EXT 0x70000000 +#define SHT_PARISC_UNWIND 0x70000001 +#define SHT_PARISC_DOC 0x70000002 + + + +#define SHF_PARISC_SHORT 0x20000000 +#define SHF_PARISC_HUGE 0x40000000 +#define SHF_PARISC_SBP 0x80000000 + + + +#define STT_PARISC_MILLICODE 13 + +#define STT_HP_OPAQUE (STT_LOOS + 0x1) +#define STT_HP_STUB (STT_LOOS + 0x2) + + + +#define R_PARISC_NONE 0 +#define R_PARISC_DIR32 1 +#define R_PARISC_DIR21L 2 +#define R_PARISC_DIR17R 3 +#define R_PARISC_DIR17F 4 +#define R_PARISC_DIR14R 6 +#define R_PARISC_PCREL32 9 +#define R_PARISC_PCREL21L 10 +#define R_PARISC_PCREL17R 11 +#define R_PARISC_PCREL17F 12 +#define R_PARISC_PCREL14R 14 +#define R_PARISC_DPREL21L 18 +#define R_PARISC_DPREL14R 22 +#define R_PARISC_GPREL21L 26 +#define R_PARISC_GPREL14R 30 +#define R_PARISC_LTOFF21L 34 +#define R_PARISC_LTOFF14R 38 +#define R_PARISC_SECREL32 41 +#define R_PARISC_SEGBASE 48 +#define R_PARISC_SEGREL32 49 +#define R_PARISC_PLTOFF21L 50 +#define R_PARISC_PLTOFF14R 54 +#define R_PARISC_LTOFF_FPTR32 57 +#define R_PARISC_LTOFF_FPTR21L 58 +#define R_PARISC_LTOFF_FPTR14R 62 +#define R_PARISC_FPTR64 64 +#define R_PARISC_PLABEL32 65 +#define R_PARISC_PLABEL21L 66 +#define R_PARISC_PLABEL14R 70 +#define R_PARISC_PCREL64 72 +#define R_PARISC_PCREL22F 74 +#define R_PARISC_PCREL14WR 75 +#define R_PARISC_PCREL14DR 76 +#define R_PARISC_PCREL16F 77 +#define R_PARISC_PCREL16WF 78 +#define R_PARISC_PCREL16DF 79 +#define R_PARISC_DIR64 80 +#define R_PARISC_DIR14WR 83 +#define R_PARISC_DIR14DR 84 +#define R_PARISC_DIR16F 85 +#define R_PARISC_DIR16WF 86 +#define R_PARISC_DIR16DF 87 +#define R_PARISC_GPREL64 88 +#define R_PARISC_GPREL14WR 91 +#define R_PARISC_GPREL14DR 92 +#define R_PARISC_GPREL16F 93 +#define R_PARISC_GPREL16WF 94 +#define R_PARISC_GPREL16DF 95 +#define R_PARISC_LTOFF64 96 +#define R_PARISC_LTOFF14WR 99 +#define R_PARISC_LTOFF14DR 100 +#define R_PARISC_LTOFF16F 101 +#define R_PARISC_LTOFF16WF 102 +#define R_PARISC_LTOFF16DF 103 +#define R_PARISC_SECREL64 104 +#define R_PARISC_SEGREL64 112 +#define R_PARISC_PLTOFF14WR 115 +#define R_PARISC_PLTOFF14DR 116 +#define R_PARISC_PLTOFF16F 117 +#define R_PARISC_PLTOFF16WF 118 +#define R_PARISC_PLTOFF16DF 119 +#define R_PARISC_LTOFF_FPTR64 120 +#define R_PARISC_LTOFF_FPTR14WR 123 +#define R_PARISC_LTOFF_FPTR14DR 124 +#define R_PARISC_LTOFF_FPTR16F 125 +#define R_PARISC_LTOFF_FPTR16WF 126 +#define R_PARISC_LTOFF_FPTR16DF 127 +#define R_PARISC_LORESERVE 128 +#define R_PARISC_COPY 128 +#define R_PARISC_IPLT 129 +#define R_PARISC_EPLT 130 +#define R_PARISC_TPREL32 153 +#define R_PARISC_TPREL21L 154 +#define R_PARISC_TPREL14R 158 +#define R_PARISC_LTOFF_TP21L 162 +#define R_PARISC_LTOFF_TP14R 166 +#define R_PARISC_LTOFF_TP14F 167 +#define R_PARISC_TPREL64 216 +#define R_PARISC_TPREL14WR 219 +#define R_PARISC_TPREL14DR 220 +#define R_PARISC_TPREL16F 221 +#define R_PARISC_TPREL16WF 222 +#define R_PARISC_TPREL16DF 223 +#define R_PARISC_LTOFF_TP64 224 +#define R_PARISC_LTOFF_TP14WR 227 +#define R_PARISC_LTOFF_TP14DR 228 +#define R_PARISC_LTOFF_TP16F 229 +#define R_PARISC_LTOFF_TP16WF 230 +#define R_PARISC_LTOFF_TP16DF 231 +#define R_PARISC_GNU_VTENTRY 232 +#define R_PARISC_GNU_VTINHERIT 233 +#define R_PARISC_TLS_GD21L 234 +#define R_PARISC_TLS_GD14R 235 +#define R_PARISC_TLS_GDCALL 236 +#define R_PARISC_TLS_LDM21L 237 +#define R_PARISC_TLS_LDM14R 238 +#define R_PARISC_TLS_LDMCALL 239 +#define R_PARISC_TLS_LDO21L 240 +#define R_PARISC_TLS_LDO14R 241 +#define R_PARISC_TLS_DTPMOD32 242 +#define R_PARISC_TLS_DTPMOD64 243 +#define R_PARISC_TLS_DTPOFF32 244 +#define R_PARISC_TLS_DTPOFF64 245 +#define R_PARISC_TLS_LE21L R_PARISC_TPREL21L +#define R_PARISC_TLS_LE14R R_PARISC_TPREL14R +#define R_PARISC_TLS_IE21L R_PARISC_LTOFF_TP21L +#define R_PARISC_TLS_IE14R R_PARISC_LTOFF_TP14R +#define R_PARISC_TLS_TPREL32 R_PARISC_TPREL32 +#define R_PARISC_TLS_TPREL64 R_PARISC_TPREL64 +#define R_PARISC_HIRESERVE 255 + + + +#define PT_HP_TLS (PT_LOOS + 0x0) +#define PT_HP_CORE_NONE (PT_LOOS + 0x1) +#define PT_HP_CORE_VERSION (PT_LOOS + 0x2) +#define PT_HP_CORE_KERNEL (PT_LOOS + 0x3) +#define PT_HP_CORE_COMM (PT_LOOS + 0x4) +#define PT_HP_CORE_PROC (PT_LOOS + 0x5) +#define PT_HP_CORE_LOADABLE (PT_LOOS + 0x6) +#define PT_HP_CORE_STACK (PT_LOOS + 0x7) +#define PT_HP_CORE_SHM (PT_LOOS + 0x8) +#define PT_HP_CORE_MMF (PT_LOOS + 0x9) +#define PT_HP_PARALLEL (PT_LOOS + 0x10) +#define PT_HP_FASTBIND (PT_LOOS + 0x11) +#define PT_HP_OPT_ANNOT (PT_LOOS + 0x12) +#define PT_HP_HSL_ANNOT (PT_LOOS + 0x13) +#define PT_HP_STACK (PT_LOOS + 0x14) + +#define PT_PARISC_ARCHEXT 0x70000000 +#define PT_PARISC_UNWIND 0x70000001 + + + +#define PF_PARISC_SBP 0x08000000 + +#define PF_HP_PAGE_SIZE 0x00100000 +#define PF_HP_FAR_SHARED 0x00200000 +#define PF_HP_NEAR_SHARED 0x00400000 +#define PF_HP_CODE 0x01000000 +#define PF_HP_MODIFY 0x02000000 +#define PF_HP_LAZYSWAP 0x04000000 +#define PF_HP_SBP 0x08000000 + + + + + + +#define EF_ALPHA_32BIT 1 +#define EF_ALPHA_CANRELAX 2 + + + + +#define SHT_ALPHA_DEBUG 0x70000001 +#define SHT_ALPHA_REGINFO 0x70000002 + + + +#define SHF_ALPHA_GPREL 0x10000000 + + +#define STO_ALPHA_NOPV 0x80 +#define STO_ALPHA_STD_GPLOAD 0x88 + + + +#define R_ALPHA_NONE 0 +#define R_ALPHA_REFLONG 1 +#define R_ALPHA_REFQUAD 2 +#define R_ALPHA_GPREL32 3 +#define R_ALPHA_LITERAL 4 +#define R_ALPHA_LITUSE 5 +#define R_ALPHA_GPDISP 6 +#define R_ALPHA_BRADDR 7 +#define R_ALPHA_HINT 8 +#define R_ALPHA_SREL16 9 +#define R_ALPHA_SREL32 10 +#define R_ALPHA_SREL64 11 +#define R_ALPHA_GPRELHIGH 17 +#define R_ALPHA_GPRELLOW 18 +#define R_ALPHA_GPREL16 19 +#define R_ALPHA_COPY 24 +#define R_ALPHA_GLOB_DAT 25 +#define R_ALPHA_JMP_SLOT 26 +#define R_ALPHA_RELATIVE 27 +#define R_ALPHA_TLS_GD_HI 28 +#define R_ALPHA_TLSGD 29 +#define R_ALPHA_TLS_LDM 30 +#define R_ALPHA_DTPMOD64 31 +#define R_ALPHA_GOTDTPREL 32 +#define R_ALPHA_DTPREL64 33 +#define R_ALPHA_DTPRELHI 34 +#define R_ALPHA_DTPRELLO 35 +#define R_ALPHA_DTPREL16 36 +#define R_ALPHA_GOTTPREL 37 +#define R_ALPHA_TPREL64 38 +#define R_ALPHA_TPRELHI 39 +#define R_ALPHA_TPRELLO 40 +#define R_ALPHA_TPREL16 41 + +#define R_ALPHA_NUM 46 + + +#define LITUSE_ALPHA_ADDR 0 +#define LITUSE_ALPHA_BASE 1 +#define LITUSE_ALPHA_BYTOFF 2 +#define LITUSE_ALPHA_JSR 3 +#define LITUSE_ALPHA_TLS_GD 4 +#define LITUSE_ALPHA_TLS_LDM 5 + + +#define DT_ALPHA_PLTRO (DT_LOPROC + 0) +#define DT_ALPHA_NUM 1 + + + + +#define EF_PPC_EMB 0x80000000 + + +#define EF_PPC_RELOCATABLE 0x00010000 +#define EF_PPC_RELOCATABLE_LIB 0x00008000 + + + +#define R_PPC_NONE 0 +#define R_PPC_ADDR32 1 +#define R_PPC_ADDR24 2 +#define R_PPC_ADDR16 3 +#define R_PPC_ADDR16_LO 4 +#define R_PPC_ADDR16_HI 5 +#define R_PPC_ADDR16_HA 6 +#define R_PPC_ADDR14 7 +#define R_PPC_ADDR14_BRTAKEN 8 +#define R_PPC_ADDR14_BRNTAKEN 9 +#define R_PPC_REL24 10 +#define R_PPC_REL14 11 +#define R_PPC_REL14_BRTAKEN 12 +#define R_PPC_REL14_BRNTAKEN 13 +#define R_PPC_GOT16 14 +#define R_PPC_GOT16_LO 15 +#define R_PPC_GOT16_HI 16 +#define R_PPC_GOT16_HA 17 +#define R_PPC_PLTREL24 18 +#define R_PPC_COPY 19 +#define R_PPC_GLOB_DAT 20 +#define R_PPC_JMP_SLOT 21 +#define R_PPC_RELATIVE 22 +#define R_PPC_LOCAL24PC 23 +#define R_PPC_UADDR32 24 +#define R_PPC_UADDR16 25 +#define R_PPC_REL32 26 +#define R_PPC_PLT32 27 +#define R_PPC_PLTREL32 28 +#define R_PPC_PLT16_LO 29 +#define R_PPC_PLT16_HI 30 +#define R_PPC_PLT16_HA 31 +#define R_PPC_SDAREL16 32 +#define R_PPC_SECTOFF 33 +#define R_PPC_SECTOFF_LO 34 +#define R_PPC_SECTOFF_HI 35 +#define R_PPC_SECTOFF_HA 36 + + +#define R_PPC_TLS 67 +#define R_PPC_DTPMOD32 68 +#define R_PPC_TPREL16 69 +#define R_PPC_TPREL16_LO 70 +#define R_PPC_TPREL16_HI 71 +#define R_PPC_TPREL16_HA 72 +#define R_PPC_TPREL32 73 +#define R_PPC_DTPREL16 74 +#define R_PPC_DTPREL16_LO 75 +#define R_PPC_DTPREL16_HI 76 +#define R_PPC_DTPREL16_HA 77 +#define R_PPC_DTPREL32 78 +#define R_PPC_GOT_TLSGD16 79 +#define R_PPC_GOT_TLSGD16_LO 80 +#define R_PPC_GOT_TLSGD16_HI 81 +#define R_PPC_GOT_TLSGD16_HA 82 +#define R_PPC_GOT_TLSLD16 83 +#define R_PPC_GOT_TLSLD16_LO 84 +#define R_PPC_GOT_TLSLD16_HI 85 +#define R_PPC_GOT_TLSLD16_HA 86 +#define R_PPC_GOT_TPREL16 87 +#define R_PPC_GOT_TPREL16_LO 88 +#define R_PPC_GOT_TPREL16_HI 89 +#define R_PPC_GOT_TPREL16_HA 90 +#define R_PPC_GOT_DTPREL16 91 +#define R_PPC_GOT_DTPREL16_LO 92 +#define R_PPC_GOT_DTPREL16_HI 93 +#define R_PPC_GOT_DTPREL16_HA 94 +#define R_PPC_TLSGD 95 +#define R_PPC_TLSLD 96 + + +#define R_PPC_EMB_NADDR32 101 +#define R_PPC_EMB_NADDR16 102 +#define R_PPC_EMB_NADDR16_LO 103 +#define R_PPC_EMB_NADDR16_HI 104 +#define R_PPC_EMB_NADDR16_HA 105 +#define R_PPC_EMB_SDAI16 106 +#define R_PPC_EMB_SDA2I16 107 +#define R_PPC_EMB_SDA2REL 108 +#define R_PPC_EMB_SDA21 109 +#define R_PPC_EMB_MRKREF 110 +#define R_PPC_EMB_RELSEC16 111 +#define R_PPC_EMB_RELST_LO 112 +#define R_PPC_EMB_RELST_HI 113 +#define R_PPC_EMB_RELST_HA 114 +#define R_PPC_EMB_BIT_FLD 115 +#define R_PPC_EMB_RELSDA 116 + + +#define R_PPC_DIAB_SDA21_LO 180 +#define R_PPC_DIAB_SDA21_HI 181 +#define R_PPC_DIAB_SDA21_HA 182 +#define R_PPC_DIAB_RELSDA_LO 183 +#define R_PPC_DIAB_RELSDA_HI 184 +#define R_PPC_DIAB_RELSDA_HA 185 + + +#define R_PPC_IRELATIVE 248 + + +#define R_PPC_REL16 249 +#define R_PPC_REL16_LO 250 +#define R_PPC_REL16_HI 251 +#define R_PPC_REL16_HA 252 + + + +#define R_PPC_TOC16 255 + + +#define DT_PPC_GOT (DT_LOPROC + 0) +#define DT_PPC_OPT (DT_LOPROC + 1) +#define DT_PPC_NUM 2 + +#define PPC_OPT_TLS 1 + + +#define R_PPC64_NONE R_PPC_NONE +#define R_PPC64_ADDR32 R_PPC_ADDR32 +#define R_PPC64_ADDR24 R_PPC_ADDR24 +#define R_PPC64_ADDR16 R_PPC_ADDR16 +#define R_PPC64_ADDR16_LO R_PPC_ADDR16_LO +#define R_PPC64_ADDR16_HI R_PPC_ADDR16_HI +#define R_PPC64_ADDR16_HA R_PPC_ADDR16_HA +#define R_PPC64_ADDR14 R_PPC_ADDR14 +#define R_PPC64_ADDR14_BRTAKEN R_PPC_ADDR14_BRTAKEN +#define R_PPC64_ADDR14_BRNTAKEN R_PPC_ADDR14_BRNTAKEN +#define R_PPC64_REL24 R_PPC_REL24 +#define R_PPC64_REL14 R_PPC_REL14 +#define R_PPC64_REL14_BRTAKEN R_PPC_REL14_BRTAKEN +#define R_PPC64_REL14_BRNTAKEN R_PPC_REL14_BRNTAKEN +#define R_PPC64_GOT16 R_PPC_GOT16 +#define R_PPC64_GOT16_LO R_PPC_GOT16_LO +#define R_PPC64_GOT16_HI R_PPC_GOT16_HI +#define R_PPC64_GOT16_HA R_PPC_GOT16_HA + +#define R_PPC64_COPY R_PPC_COPY +#define R_PPC64_GLOB_DAT R_PPC_GLOB_DAT +#define R_PPC64_JMP_SLOT R_PPC_JMP_SLOT +#define R_PPC64_RELATIVE R_PPC_RELATIVE + +#define R_PPC64_UADDR32 R_PPC_UADDR32 +#define R_PPC64_UADDR16 R_PPC_UADDR16 +#define R_PPC64_REL32 R_PPC_REL32 +#define R_PPC64_PLT32 R_PPC_PLT32 +#define R_PPC64_PLTREL32 R_PPC_PLTREL32 +#define R_PPC64_PLT16_LO R_PPC_PLT16_LO +#define R_PPC64_PLT16_HI R_PPC_PLT16_HI +#define R_PPC64_PLT16_HA R_PPC_PLT16_HA + +#define R_PPC64_SECTOFF R_PPC_SECTOFF +#define R_PPC64_SECTOFF_LO R_PPC_SECTOFF_LO +#define R_PPC64_SECTOFF_HI R_PPC_SECTOFF_HI +#define R_PPC64_SECTOFF_HA R_PPC_SECTOFF_HA +#define R_PPC64_ADDR30 37 +#define R_PPC64_ADDR64 38 +#define R_PPC64_ADDR16_HIGHER 39 +#define R_PPC64_ADDR16_HIGHERA 40 +#define R_PPC64_ADDR16_HIGHEST 41 +#define R_PPC64_ADDR16_HIGHESTA 42 +#define R_PPC64_UADDR64 43 +#define R_PPC64_REL64 44 +#define R_PPC64_PLT64 45 +#define R_PPC64_PLTREL64 46 +#define R_PPC64_TOC16 47 +#define R_PPC64_TOC16_LO 48 +#define R_PPC64_TOC16_HI 49 +#define R_PPC64_TOC16_HA 50 +#define R_PPC64_TOC 51 +#define R_PPC64_PLTGOT16 52 +#define R_PPC64_PLTGOT16_LO 53 +#define R_PPC64_PLTGOT16_HI 54 +#define R_PPC64_PLTGOT16_HA 55 + +#define R_PPC64_ADDR16_DS 56 +#define R_PPC64_ADDR16_LO_DS 57 +#define R_PPC64_GOT16_DS 58 +#define R_PPC64_GOT16_LO_DS 59 +#define R_PPC64_PLT16_LO_DS 60 +#define R_PPC64_SECTOFF_DS 61 +#define R_PPC64_SECTOFF_LO_DS 62 +#define R_PPC64_TOC16_DS 63 +#define R_PPC64_TOC16_LO_DS 64 +#define R_PPC64_PLTGOT16_DS 65 +#define R_PPC64_PLTGOT16_LO_DS 66 + + +#define R_PPC64_TLS 67 +#define R_PPC64_DTPMOD64 68 +#define R_PPC64_TPREL16 69 +#define R_PPC64_TPREL16_LO 70 +#define R_PPC64_TPREL16_HI 71 +#define R_PPC64_TPREL16_HA 72 +#define R_PPC64_TPREL64 73 +#define R_PPC64_DTPREL16 74 +#define R_PPC64_DTPREL16_LO 75 +#define R_PPC64_DTPREL16_HI 76 +#define R_PPC64_DTPREL16_HA 77 +#define R_PPC64_DTPREL64 78 +#define R_PPC64_GOT_TLSGD16 79 +#define R_PPC64_GOT_TLSGD16_LO 80 +#define R_PPC64_GOT_TLSGD16_HI 81 +#define R_PPC64_GOT_TLSGD16_HA 82 +#define R_PPC64_GOT_TLSLD16 83 +#define R_PPC64_GOT_TLSLD16_LO 84 +#define R_PPC64_GOT_TLSLD16_HI 85 +#define R_PPC64_GOT_TLSLD16_HA 86 +#define R_PPC64_GOT_TPREL16_DS 87 +#define R_PPC64_GOT_TPREL16_LO_DS 88 +#define R_PPC64_GOT_TPREL16_HI 89 +#define R_PPC64_GOT_TPREL16_HA 90 +#define R_PPC64_GOT_DTPREL16_DS 91 +#define R_PPC64_GOT_DTPREL16_LO_DS 92 +#define R_PPC64_GOT_DTPREL16_HI 93 +#define R_PPC64_GOT_DTPREL16_HA 94 +#define R_PPC64_TPREL16_DS 95 +#define R_PPC64_TPREL16_LO_DS 96 +#define R_PPC64_TPREL16_HIGHER 97 +#define R_PPC64_TPREL16_HIGHERA 98 +#define R_PPC64_TPREL16_HIGHEST 99 +#define R_PPC64_TPREL16_HIGHESTA 100 +#define R_PPC64_DTPREL16_DS 101 +#define R_PPC64_DTPREL16_LO_DS 102 +#define R_PPC64_DTPREL16_HIGHER 103 +#define R_PPC64_DTPREL16_HIGHERA 104 +#define R_PPC64_DTPREL16_HIGHEST 105 +#define R_PPC64_DTPREL16_HIGHESTA 106 +#define R_PPC64_TLSGD 107 +#define R_PPC64_TLSLD 108 +#define R_PPC64_TOCSAVE 109 +#define R_PPC64_ADDR16_HIGH 110 +#define R_PPC64_ADDR16_HIGHA 111 +#define R_PPC64_TPREL16_HIGH 112 +#define R_PPC64_TPREL16_HIGHA 113 +#define R_PPC64_DTPREL16_HIGH 114 +#define R_PPC64_DTPREL16_HIGHA 115 + + +#define R_PPC64_JMP_IREL 247 +#define R_PPC64_IRELATIVE 248 +#define R_PPC64_REL16 249 +#define R_PPC64_REL16_LO 250 +#define R_PPC64_REL16_HI 251 +#define R_PPC64_REL16_HA 252 + +#define EF_PPC64_ABI 3 + +#define DT_PPC64_GLINK (DT_LOPROC + 0) +#define DT_PPC64_OPD (DT_LOPROC + 1) +#define DT_PPC64_OPDSZ (DT_LOPROC + 2) +#define DT_PPC64_OPT (DT_LOPROC + 3) +#define DT_PPC64_NUM 4 + +#define PPC64_OPT_TLS 1 +#define PPC64_OPT_MULTI_TOC 2 + +#define STO_PPC64_LOCAL_BIT 5 +#define STO_PPC64_LOCAL_MASK 0xe0 +#define PPC64_LOCAL_ENTRY_OFFSET(x) (1 << (((x)&0xe0)>>5) & 0xfc) + + +#define EF_ARM_RELEXEC 0x01 +#define EF_ARM_HASENTRY 0x02 +#define EF_ARM_INTERWORK 0x04 +#define EF_ARM_APCS_26 0x08 +#define EF_ARM_APCS_FLOAT 0x10 +#define EF_ARM_PIC 0x20 +#define EF_ARM_ALIGN8 0x40 +#define EF_ARM_NEW_ABI 0x80 +#define EF_ARM_OLD_ABI 0x100 +#define EF_ARM_SOFT_FLOAT 0x200 +#define EF_ARM_VFP_FLOAT 0x400 +#define EF_ARM_MAVERICK_FLOAT 0x800 + +#define EF_ARM_ABI_FLOAT_SOFT 0x200 +#define EF_ARM_ABI_FLOAT_HARD 0x400 + + +#define EF_ARM_SYMSARESORTED 0x04 +#define EF_ARM_DYNSYMSUSESEGIDX 0x08 +#define EF_ARM_MAPSYMSFIRST 0x10 +#define EF_ARM_EABIMASK 0XFF000000 + + +#define EF_ARM_BE8 0x00800000 +#define EF_ARM_LE8 0x00400000 + +#define EF_ARM_EABI_VERSION(flags) ((flags) & EF_ARM_EABIMASK) +#define EF_ARM_EABI_UNKNOWN 0x00000000 +#define EF_ARM_EABI_VER1 0x01000000 +#define EF_ARM_EABI_VER2 0x02000000 +#define EF_ARM_EABI_VER3 0x03000000 +#define EF_ARM_EABI_VER4 0x04000000 +#define EF_ARM_EABI_VER5 0x05000000 + + +#define STT_ARM_TFUNC STT_LOPROC +#define STT_ARM_16BIT STT_HIPROC + + +#define SHF_ARM_ENTRYSECT 0x10000000 +#define SHF_ARM_COMDEF 0x80000000 + + + +#define PF_ARM_SB 0x10000000 + +#define PF_ARM_PI 0x20000000 +#define PF_ARM_ABS 0x40000000 + + +#define PT_ARM_EXIDX (PT_LOPROC + 1) + + +#define SHT_ARM_EXIDX (SHT_LOPROC + 1) +#define SHT_ARM_PREEMPTMAP (SHT_LOPROC + 2) +#define SHT_ARM_ATTRIBUTES (SHT_LOPROC + 3) + +#define R_AARCH64_NONE 0 +#define R_AARCH64_P32_ABS32 1 +#define R_AARCH64_P32_COPY 180 +#define R_AARCH64_P32_GLOB_DAT 181 +#define R_AARCH64_P32_JUMP_SLOT 182 +#define R_AARCH64_P32_RELATIVE 183 +#define R_AARCH64_P32_TLS_DTPMOD 184 +#define R_AARCH64_P32_TLS_DTPREL 185 +#define R_AARCH64_P32_TLS_TPREL 186 +#define R_AARCH64_P32_TLSDESC 187 +#define R_AARCH64_P32_IRELATIVE 188 +#define R_AARCH64_ABS64 257 +#define R_AARCH64_ABS32 258 +#define R_AARCH64_ABS16 259 +#define R_AARCH64_PREL64 260 +#define R_AARCH64_PREL32 261 +#define R_AARCH64_PREL16 262 +#define R_AARCH64_MOVW_UABS_G0 263 +#define R_AARCH64_MOVW_UABS_G0_NC 264 +#define R_AARCH64_MOVW_UABS_G1 265 +#define R_AARCH64_MOVW_UABS_G1_NC 266 +#define R_AARCH64_MOVW_UABS_G2 267 +#define R_AARCH64_MOVW_UABS_G2_NC 268 +#define R_AARCH64_MOVW_UABS_G3 269 +#define R_AARCH64_MOVW_SABS_G0 270 +#define R_AARCH64_MOVW_SABS_G1 271 +#define R_AARCH64_MOVW_SABS_G2 272 +#define R_AARCH64_LD_PREL_LO19 273 +#define R_AARCH64_ADR_PREL_LO21 274 +#define R_AARCH64_ADR_PREL_PG_HI21 275 +#define R_AARCH64_ADR_PREL_PG_HI21_NC 276 +#define R_AARCH64_ADD_ABS_LO12_NC 277 +#define R_AARCH64_LDST8_ABS_LO12_NC 278 +#define R_AARCH64_TSTBR14 279 +#define R_AARCH64_CONDBR19 280 +#define R_AARCH64_JUMP26 282 +#define R_AARCH64_CALL26 283 +#define R_AARCH64_LDST16_ABS_LO12_NC 284 +#define R_AARCH64_LDST32_ABS_LO12_NC 285 +#define R_AARCH64_LDST64_ABS_LO12_NC 286 +#define R_AARCH64_MOVW_PREL_G0 287 +#define R_AARCH64_MOVW_PREL_G0_NC 288 +#define R_AARCH64_MOVW_PREL_G1 289 +#define R_AARCH64_MOVW_PREL_G1_NC 290 +#define R_AARCH64_MOVW_PREL_G2 291 +#define R_AARCH64_MOVW_PREL_G2_NC 292 +#define R_AARCH64_MOVW_PREL_G3 293 +#define R_AARCH64_LDST128_ABS_LO12_NC 299 +#define R_AARCH64_MOVW_GOTOFF_G0 300 +#define R_AARCH64_MOVW_GOTOFF_G0_NC 301 +#define R_AARCH64_MOVW_GOTOFF_G1 302 +#define R_AARCH64_MOVW_GOTOFF_G1_NC 303 +#define R_AARCH64_MOVW_GOTOFF_G2 304 +#define R_AARCH64_MOVW_GOTOFF_G2_NC 305 +#define R_AARCH64_MOVW_GOTOFF_G3 306 +#define R_AARCH64_GOTREL64 307 +#define R_AARCH64_GOTREL32 308 +#define R_AARCH64_GOT_LD_PREL19 309 +#define R_AARCH64_LD64_GOTOFF_LO15 310 +#define R_AARCH64_ADR_GOT_PAGE 311 +#define R_AARCH64_LD64_GOT_LO12_NC 312 +#define R_AARCH64_LD64_GOTPAGE_LO15 313 +#define R_AARCH64_TLSGD_ADR_PREL21 512 +#define R_AARCH64_TLSGD_ADR_PAGE21 513 +#define R_AARCH64_TLSGD_ADD_LO12_NC 514 +#define R_AARCH64_TLSGD_MOVW_G1 515 +#define R_AARCH64_TLSGD_MOVW_G0_NC 516 +#define R_AARCH64_TLSLD_ADR_PREL21 517 +#define R_AARCH64_TLSLD_ADR_PAGE21 518 +#define R_AARCH64_TLSLD_ADD_LO12_NC 519 +#define R_AARCH64_TLSLD_MOVW_G1 520 +#define R_AARCH64_TLSLD_MOVW_G0_NC 521 +#define R_AARCH64_TLSLD_LD_PREL19 522 +#define R_AARCH64_TLSLD_MOVW_DTPREL_G2 523 +#define R_AARCH64_TLSLD_MOVW_DTPREL_G1 524 +#define R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC 525 +#define R_AARCH64_TLSLD_MOVW_DTPREL_G0 526 +#define R_AARCH64_TLSLD_MOVW_DTPREL_G0_NC 527 +#define R_AARCH64_TLSLD_ADD_DTPREL_HI12 528 +#define R_AARCH64_TLSLD_ADD_DTPREL_LO12 529 +#define R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC 530 +#define R_AARCH64_TLSLD_LDST8_DTPREL_LO12 531 +#define R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC 532 +#define R_AARCH64_TLSLD_LDST16_DTPREL_LO12 533 +#define R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC 534 +#define R_AARCH64_TLSLD_LDST32_DTPREL_LO12 535 +#define R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC 536 +#define R_AARCH64_TLSLD_LDST64_DTPREL_LO12 537 +#define R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC 538 +#define R_AARCH64_TLSIE_MOVW_GOTTPREL_G1 539 +#define R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC 540 +#define R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 541 +#define R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC 542 +#define R_AARCH64_TLSIE_LD_GOTTPREL_PREL19 543 +#define R_AARCH64_TLSLE_MOVW_TPREL_G2 544 +#define R_AARCH64_TLSLE_MOVW_TPREL_G1 545 +#define R_AARCH64_TLSLE_MOVW_TPREL_G1_NC 546 +#define R_AARCH64_TLSLE_MOVW_TPREL_G0 547 +#define R_AARCH64_TLSLE_MOVW_TPREL_G0_NC 548 +#define R_AARCH64_TLSLE_ADD_TPREL_HI12 549 +#define R_AARCH64_TLSLE_ADD_TPREL_LO12 550 +#define R_AARCH64_TLSLE_ADD_TPREL_LO12_NC 551 +#define R_AARCH64_TLSLE_LDST8_TPREL_LO12 552 +#define R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC 553 +#define R_AARCH64_TLSLE_LDST16_TPREL_LO12 554 +#define R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC 555 +#define R_AARCH64_TLSLE_LDST32_TPREL_LO12 556 +#define R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC 557 +#define R_AARCH64_TLSLE_LDST64_TPREL_LO12 558 +#define R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC 559 +#define R_AARCH64_TLSDESC_LD_PREL19 560 +#define R_AARCH64_TLSDESC_ADR_PREL21 561 +#define R_AARCH64_TLSDESC_ADR_PAGE21 562 +#define R_AARCH64_TLSDESC_LD64_LO12 563 +#define R_AARCH64_TLSDESC_ADD_LO12 564 +#define R_AARCH64_TLSDESC_OFF_G1 565 +#define R_AARCH64_TLSDESC_OFF_G0_NC 566 +#define R_AARCH64_TLSDESC_LDR 567 +#define R_AARCH64_TLSDESC_ADD 568 +#define R_AARCH64_TLSDESC_CALL 569 +#define R_AARCH64_TLSLE_LDST128_TPREL_LO12 570 +#define R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC 571 +#define R_AARCH64_TLSLD_LDST128_DTPREL_LO12 572 +#define R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC 573 +#define R_AARCH64_COPY 1024 +#define R_AARCH64_GLOB_DAT 1025 +#define R_AARCH64_JUMP_SLOT 1026 +#define R_AARCH64_RELATIVE 1027 +#define R_AARCH64_TLS_DTPMOD 1028 +#define R_AARCH64_TLS_DTPMOD64 1028 +#define R_AARCH64_TLS_DTPREL 1029 +#define R_AARCH64_TLS_DTPREL64 1029 +#define R_AARCH64_TLS_TPREL 1030 +#define R_AARCH64_TLS_TPREL64 1030 +#define R_AARCH64_TLSDESC 1031 + + +#define R_ARM_NONE 0 +#define R_ARM_PC24 1 +#define R_ARM_ABS32 2 +#define R_ARM_REL32 3 +#define R_ARM_PC13 4 +#define R_ARM_ABS16 5 +#define R_ARM_ABS12 6 +#define R_ARM_THM_ABS5 7 +#define R_ARM_ABS8 8 +#define R_ARM_SBREL32 9 +#define R_ARM_THM_PC22 10 +#define R_ARM_THM_PC8 11 +#define R_ARM_AMP_VCALL9 12 +#define R_ARM_TLS_DESC 13 +#define R_ARM_THM_SWI8 14 +#define R_ARM_XPC25 15 +#define R_ARM_THM_XPC22 16 +#define R_ARM_TLS_DTPMOD32 17 +#define R_ARM_TLS_DTPOFF32 18 +#define R_ARM_TLS_TPOFF32 19 +#define R_ARM_COPY 20 +#define R_ARM_GLOB_DAT 21 +#define R_ARM_JUMP_SLOT 22 +#define R_ARM_RELATIVE 23 +#define R_ARM_GOTOFF 24 +#define R_ARM_GOTPC 25 +#define R_ARM_GOT32 26 +#define R_ARM_PLT32 27 +#define R_ARM_CALL 28 +#define R_ARM_JUMP24 29 +#define R_ARM_THM_JUMP24 30 +#define R_ARM_BASE_ABS 31 +#define R_ARM_ALU_PCREL_7_0 32 +#define R_ARM_ALU_PCREL_15_8 33 +#define R_ARM_ALU_PCREL_23_15 34 +#define R_ARM_LDR_SBREL_11_0 35 +#define R_ARM_ALU_SBREL_19_12 36 +#define R_ARM_ALU_SBREL_27_20 37 +#define R_ARM_TARGET1 38 +#define R_ARM_SBREL31 39 +#define R_ARM_V4BX 40 +#define R_ARM_TARGET2 41 +#define R_ARM_PREL31 42 +#define R_ARM_MOVW_ABS_NC 43 +#define R_ARM_MOVT_ABS 44 +#define R_ARM_MOVW_PREL_NC 45 +#define R_ARM_MOVT_PREL 46 +#define R_ARM_THM_MOVW_ABS_NC 47 +#define R_ARM_THM_MOVT_ABS 48 +#define R_ARM_THM_MOVW_PREL_NC 49 +#define R_ARM_THM_MOVT_PREL 50 +#define R_ARM_THM_JUMP19 51 +#define R_ARM_THM_JUMP6 52 +#define R_ARM_THM_ALU_PREL_11_0 53 +#define R_ARM_THM_PC12 54 +#define R_ARM_ABS32_NOI 55 +#define R_ARM_REL32_NOI 56 +#define R_ARM_ALU_PC_G0_NC 57 +#define R_ARM_ALU_PC_G0 58 +#define R_ARM_ALU_PC_G1_NC 59 +#define R_ARM_ALU_PC_G1 60 +#define R_ARM_ALU_PC_G2 61 +#define R_ARM_LDR_PC_G1 62 +#define R_ARM_LDR_PC_G2 63 +#define R_ARM_LDRS_PC_G0 64 +#define R_ARM_LDRS_PC_G1 65 +#define R_ARM_LDRS_PC_G2 66 +#define R_ARM_LDC_PC_G0 67 +#define R_ARM_LDC_PC_G1 68 +#define R_ARM_LDC_PC_G2 69 +#define R_ARM_ALU_SB_G0_NC 70 +#define R_ARM_ALU_SB_G0 71 +#define R_ARM_ALU_SB_G1_NC 72 +#define R_ARM_ALU_SB_G1 73 +#define R_ARM_ALU_SB_G2 74 +#define R_ARM_LDR_SB_G0 75 +#define R_ARM_LDR_SB_G1 76 +#define R_ARM_LDR_SB_G2 77 +#define R_ARM_LDRS_SB_G0 78 +#define R_ARM_LDRS_SB_G1 79 +#define R_ARM_LDRS_SB_G2 80 +#define R_ARM_LDC_SB_G0 81 +#define R_ARM_LDC_SB_G1 82 +#define R_ARM_LDC_SB_G2 83 +#define R_ARM_MOVW_BREL_NC 84 +#define R_ARM_MOVT_BREL 85 +#define R_ARM_MOVW_BREL 86 +#define R_ARM_THM_MOVW_BREL_NC 87 +#define R_ARM_THM_MOVT_BREL 88 +#define R_ARM_THM_MOVW_BREL 89 +#define R_ARM_TLS_GOTDESC 90 +#define R_ARM_TLS_CALL 91 +#define R_ARM_TLS_DESCSEQ 92 +#define R_ARM_THM_TLS_CALL 93 +#define R_ARM_PLT32_ABS 94 +#define R_ARM_GOT_ABS 95 +#define R_ARM_GOT_PREL 96 +#define R_ARM_GOT_BREL12 97 +#define R_ARM_GOTOFF12 98 +#define R_ARM_GOTRELAX 99 +#define R_ARM_GNU_VTENTRY 100 +#define R_ARM_GNU_VTINHERIT 101 +#define R_ARM_THM_PC11 102 +#define R_ARM_THM_PC9 103 +#define R_ARM_TLS_GD32 104 + +#define R_ARM_TLS_LDM32 105 + +#define R_ARM_TLS_LDO32 106 + +#define R_ARM_TLS_IE32 107 + +#define R_ARM_TLS_LE32 108 +#define R_ARM_TLS_LDO12 109 +#define R_ARM_TLS_LE12 110 +#define R_ARM_TLS_IE12GP 111 +#define R_ARM_ME_TOO 128 +#define R_ARM_THM_TLS_DESCSEQ 129 +#define R_ARM_THM_TLS_DESCSEQ16 129 +#define R_ARM_THM_TLS_DESCSEQ32 130 +#define R_ARM_THM_GOT_BREL12 131 +#define R_ARM_IRELATIVE 160 +#define R_ARM_RXPC25 249 +#define R_ARM_RSBREL32 250 +#define R_ARM_THM_RPC22 251 +#define R_ARM_RREL32 252 +#define R_ARM_RABS22 253 +#define R_ARM_RPC24 254 +#define R_ARM_RBASE 255 + +#define R_ARM_NUM 256 + + + + +#define EF_IA_64_MASKOS 0x0000000f +#define EF_IA_64_ABI64 0x00000010 +#define EF_IA_64_ARCH 0xff000000 + + +#define PT_IA_64_ARCHEXT (PT_LOPROC + 0) +#define PT_IA_64_UNWIND (PT_LOPROC + 1) +#define PT_IA_64_HP_OPT_ANOT (PT_LOOS + 0x12) +#define PT_IA_64_HP_HSL_ANOT (PT_LOOS + 0x13) +#define PT_IA_64_HP_STACK (PT_LOOS + 0x14) + + +#define PF_IA_64_NORECOV 0x80000000 + + +#define SHT_IA_64_EXT (SHT_LOPROC + 0) +#define SHT_IA_64_UNWIND (SHT_LOPROC + 1) + + +#define SHF_IA_64_SHORT 0x10000000 +#define SHF_IA_64_NORECOV 0x20000000 + + +#define DT_IA_64_PLT_RESERVE (DT_LOPROC + 0) +#define DT_IA_64_NUM 1 + + +#define R_IA64_NONE 0x00 +#define R_IA64_IMM14 0x21 +#define R_IA64_IMM22 0x22 +#define R_IA64_IMM64 0x23 +#define R_IA64_DIR32MSB 0x24 +#define R_IA64_DIR32LSB 0x25 +#define R_IA64_DIR64MSB 0x26 +#define R_IA64_DIR64LSB 0x27 +#define R_IA64_GPREL22 0x2a +#define R_IA64_GPREL64I 0x2b +#define R_IA64_GPREL32MSB 0x2c +#define R_IA64_GPREL32LSB 0x2d +#define R_IA64_GPREL64MSB 0x2e +#define R_IA64_GPREL64LSB 0x2f +#define R_IA64_LTOFF22 0x32 +#define R_IA64_LTOFF64I 0x33 +#define R_IA64_PLTOFF22 0x3a +#define R_IA64_PLTOFF64I 0x3b +#define R_IA64_PLTOFF64MSB 0x3e +#define R_IA64_PLTOFF64LSB 0x3f +#define R_IA64_FPTR64I 0x43 +#define R_IA64_FPTR32MSB 0x44 +#define R_IA64_FPTR32LSB 0x45 +#define R_IA64_FPTR64MSB 0x46 +#define R_IA64_FPTR64LSB 0x47 +#define R_IA64_PCREL60B 0x48 +#define R_IA64_PCREL21B 0x49 +#define R_IA64_PCREL21M 0x4a +#define R_IA64_PCREL21F 0x4b +#define R_IA64_PCREL32MSB 0x4c +#define R_IA64_PCREL32LSB 0x4d +#define R_IA64_PCREL64MSB 0x4e +#define R_IA64_PCREL64LSB 0x4f +#define R_IA64_LTOFF_FPTR22 0x52 +#define R_IA64_LTOFF_FPTR64I 0x53 +#define R_IA64_LTOFF_FPTR32MSB 0x54 +#define R_IA64_LTOFF_FPTR32LSB 0x55 +#define R_IA64_LTOFF_FPTR64MSB 0x56 +#define R_IA64_LTOFF_FPTR64LSB 0x57 +#define R_IA64_SEGREL32MSB 0x5c +#define R_IA64_SEGREL32LSB 0x5d +#define R_IA64_SEGREL64MSB 0x5e +#define R_IA64_SEGREL64LSB 0x5f +#define R_IA64_SECREL32MSB 0x64 +#define R_IA64_SECREL32LSB 0x65 +#define R_IA64_SECREL64MSB 0x66 +#define R_IA64_SECREL64LSB 0x67 +#define R_IA64_REL32MSB 0x6c +#define R_IA64_REL32LSB 0x6d +#define R_IA64_REL64MSB 0x6e +#define R_IA64_REL64LSB 0x6f +#define R_IA64_LTV32MSB 0x74 +#define R_IA64_LTV32LSB 0x75 +#define R_IA64_LTV64MSB 0x76 +#define R_IA64_LTV64LSB 0x77 +#define R_IA64_PCREL21BI 0x79 +#define R_IA64_PCREL22 0x7a +#define R_IA64_PCREL64I 0x7b +#define R_IA64_IPLTMSB 0x80 +#define R_IA64_IPLTLSB 0x81 +#define R_IA64_COPY 0x84 +#define R_IA64_SUB 0x85 +#define R_IA64_LTOFF22X 0x86 +#define R_IA64_LDXMOV 0x87 +#define R_IA64_TPREL14 0x91 +#define R_IA64_TPREL22 0x92 +#define R_IA64_TPREL64I 0x93 +#define R_IA64_TPREL64MSB 0x96 +#define R_IA64_TPREL64LSB 0x97 +#define R_IA64_LTOFF_TPREL22 0x9a +#define R_IA64_DTPMOD64MSB 0xa6 +#define R_IA64_DTPMOD64LSB 0xa7 +#define R_IA64_LTOFF_DTPMOD22 0xaa +#define R_IA64_DTPREL14 0xb1 +#define R_IA64_DTPREL22 0xb2 +#define R_IA64_DTPREL64I 0xb3 +#define R_IA64_DTPREL32MSB 0xb4 +#define R_IA64_DTPREL32LSB 0xb5 +#define R_IA64_DTPREL64MSB 0xb6 +#define R_IA64_DTPREL64LSB 0xb7 +#define R_IA64_LTOFF_DTPREL22 0xba + + +#define EF_SH_MACH_MASK 0x1f +#define EF_SH_UNKNOWN 0x0 +#define EF_SH1 0x1 +#define EF_SH2 0x2 +#define EF_SH3 0x3 +#define EF_SH_DSP 0x4 +#define EF_SH3_DSP 0x5 +#define EF_SH4AL_DSP 0x6 +#define EF_SH3E 0x8 +#define EF_SH4 0x9 +#define EF_SH2E 0xb +#define EF_SH4A 0xc +#define EF_SH2A 0xd +#define EF_SH4_NOFPU 0x10 +#define EF_SH4A_NOFPU 0x11 +#define EF_SH4_NOMMU_NOFPU 0x12 +#define EF_SH2A_NOFPU 0x13 +#define EF_SH3_NOMMU 0x14 +#define EF_SH2A_SH4_NOFPU 0x15 +#define EF_SH2A_SH3_NOFPU 0x16 +#define EF_SH2A_SH4 0x17 +#define EF_SH2A_SH3E 0x18 + +#define R_SH_NONE 0 +#define R_SH_DIR32 1 +#define R_SH_REL32 2 +#define R_SH_DIR8WPN 3 +#define R_SH_IND12W 4 +#define R_SH_DIR8WPL 5 +#define R_SH_DIR8WPZ 6 +#define R_SH_DIR8BP 7 +#define R_SH_DIR8W 8 +#define R_SH_DIR8L 9 +#define R_SH_SWITCH16 25 +#define R_SH_SWITCH32 26 +#define R_SH_USES 27 +#define R_SH_COUNT 28 +#define R_SH_ALIGN 29 +#define R_SH_CODE 30 +#define R_SH_DATA 31 +#define R_SH_LABEL 32 +#define R_SH_SWITCH8 33 +#define R_SH_GNU_VTINHERIT 34 +#define R_SH_GNU_VTENTRY 35 +#define R_SH_TLS_GD_32 144 +#define R_SH_TLS_LD_32 145 +#define R_SH_TLS_LDO_32 146 +#define R_SH_TLS_IE_32 147 +#define R_SH_TLS_LE_32 148 +#define R_SH_TLS_DTPMOD32 149 +#define R_SH_TLS_DTPOFF32 150 +#define R_SH_TLS_TPOFF32 151 +#define R_SH_GOT32 160 +#define R_SH_PLT32 161 +#define R_SH_COPY 162 +#define R_SH_GLOB_DAT 163 +#define R_SH_JMP_SLOT 164 +#define R_SH_RELATIVE 165 +#define R_SH_GOTOFF 166 +#define R_SH_GOTPC 167 +#define R_SH_GOT20 201 +#define R_SH_GOTOFF20 202 +#define R_SH_GOTFUNCDESC 203 +#define R_SH_GOTFUNCDEST20 204 +#define R_SH_GOTOFFFUNCDESC 205 +#define R_SH_GOTOFFFUNCDEST20 206 +#define R_SH_FUNCDESC 207 +#define R_SH_FUNCDESC_VALUE 208 + +#define R_SH_NUM 256 + + + +#define R_390_NONE 0 +#define R_390_8 1 +#define R_390_12 2 +#define R_390_16 3 +#define R_390_32 4 +#define R_390_PC32 5 +#define R_390_GOT12 6 +#define R_390_GOT32 7 +#define R_390_PLT32 8 +#define R_390_COPY 9 +#define R_390_GLOB_DAT 10 +#define R_390_JMP_SLOT 11 +#define R_390_RELATIVE 12 +#define R_390_GOTOFF32 13 +#define R_390_GOTPC 14 +#define R_390_GOT16 15 +#define R_390_PC16 16 +#define R_390_PC16DBL 17 +#define R_390_PLT16DBL 18 +#define R_390_PC32DBL 19 +#define R_390_PLT32DBL 20 +#define R_390_GOTPCDBL 21 +#define R_390_64 22 +#define R_390_PC64 23 +#define R_390_GOT64 24 +#define R_390_PLT64 25 +#define R_390_GOTENT 26 +#define R_390_GOTOFF16 27 +#define R_390_GOTOFF64 28 +#define R_390_GOTPLT12 29 +#define R_390_GOTPLT16 30 +#define R_390_GOTPLT32 31 +#define R_390_GOTPLT64 32 +#define R_390_GOTPLTENT 33 +#define R_390_PLTOFF16 34 +#define R_390_PLTOFF32 35 +#define R_390_PLTOFF64 36 +#define R_390_TLS_LOAD 37 +#define R_390_TLS_GDCALL 38 + +#define R_390_TLS_LDCALL 39 + +#define R_390_TLS_GD32 40 + +#define R_390_TLS_GD64 41 + +#define R_390_TLS_GOTIE12 42 + +#define R_390_TLS_GOTIE32 43 + +#define R_390_TLS_GOTIE64 44 + +#define R_390_TLS_LDM32 45 + +#define R_390_TLS_LDM64 46 + +#define R_390_TLS_IE32 47 + +#define R_390_TLS_IE64 48 + +#define R_390_TLS_IEENT 49 + +#define R_390_TLS_LE32 50 + +#define R_390_TLS_LE64 51 + +#define R_390_TLS_LDO32 52 + +#define R_390_TLS_LDO64 53 + +#define R_390_TLS_DTPMOD 54 +#define R_390_TLS_DTPOFF 55 +#define R_390_TLS_TPOFF 56 + +#define R_390_20 57 +#define R_390_GOT20 58 +#define R_390_GOTPLT20 59 +#define R_390_TLS_GOTIE20 60 + + +#define R_390_NUM 61 + + + +#define R_CRIS_NONE 0 +#define R_CRIS_8 1 +#define R_CRIS_16 2 +#define R_CRIS_32 3 +#define R_CRIS_8_PCREL 4 +#define R_CRIS_16_PCREL 5 +#define R_CRIS_32_PCREL 6 +#define R_CRIS_GNU_VTINHERIT 7 +#define R_CRIS_GNU_VTENTRY 8 +#define R_CRIS_COPY 9 +#define R_CRIS_GLOB_DAT 10 +#define R_CRIS_JUMP_SLOT 11 +#define R_CRIS_RELATIVE 12 +#define R_CRIS_16_GOT 13 +#define R_CRIS_32_GOT 14 +#define R_CRIS_16_GOTPLT 15 +#define R_CRIS_32_GOTPLT 16 +#define R_CRIS_32_GOTREL 17 +#define R_CRIS_32_PLT_GOTREL 18 +#define R_CRIS_32_PLT_PCREL 19 + +#define R_CRIS_NUM 20 + + + +#define R_X86_64_NONE 0 +#define R_X86_64_64 1 +#define R_X86_64_PC32 2 +#define R_X86_64_GOT32 3 +#define R_X86_64_PLT32 4 +#define R_X86_64_COPY 5 +#define R_X86_64_GLOB_DAT 6 +#define R_X86_64_JUMP_SLOT 7 +#define R_X86_64_RELATIVE 8 +#define R_X86_64_GOTPCREL 9 + +#define R_X86_64_32 10 +#define R_X86_64_32S 11 +#define R_X86_64_16 12 +#define R_X86_64_PC16 13 +#define R_X86_64_8 14 +#define R_X86_64_PC8 15 +#define R_X86_64_DTPMOD64 16 +#define R_X86_64_DTPOFF64 17 +#define R_X86_64_TPOFF64 18 +#define R_X86_64_TLSGD 19 + +#define R_X86_64_TLSLD 20 + +#define R_X86_64_DTPOFF32 21 +#define R_X86_64_GOTTPOFF 22 + +#define R_X86_64_TPOFF32 23 +#define R_X86_64_PC64 24 +#define R_X86_64_GOTOFF64 25 +#define R_X86_64_GOTPC32 26 +#define R_X86_64_GOT64 27 +#define R_X86_64_GOTPCREL64 28 +#define R_X86_64_GOTPC64 29 +#define R_X86_64_GOTPLT64 30 +#define R_X86_64_PLTOFF64 31 +#define R_X86_64_SIZE32 32 +#define R_X86_64_SIZE64 33 + +#define R_X86_64_GOTPC32_TLSDESC 34 +#define R_X86_64_TLSDESC_CALL 35 + +#define R_X86_64_TLSDESC 36 +#define R_X86_64_IRELATIVE 37 +#define R_X86_64_RELATIVE64 38 +#define R_X86_64_GOTPCRELX 41 +#define R_X86_64_REX_GOTPCRELX 42 +#define R_X86_64_NUM 43 + + + +#define R_MN10300_NONE 0 +#define R_MN10300_32 1 +#define R_MN10300_16 2 +#define R_MN10300_8 3 +#define R_MN10300_PCREL32 4 +#define R_MN10300_PCREL16 5 +#define R_MN10300_PCREL8 6 +#define R_MN10300_GNU_VTINHERIT 7 +#define R_MN10300_GNU_VTENTRY 8 +#define R_MN10300_24 9 +#define R_MN10300_GOTPC32 10 +#define R_MN10300_GOTPC16 11 +#define R_MN10300_GOTOFF32 12 +#define R_MN10300_GOTOFF24 13 +#define R_MN10300_GOTOFF16 14 +#define R_MN10300_PLT32 15 +#define R_MN10300_PLT16 16 +#define R_MN10300_GOT32 17 +#define R_MN10300_GOT24 18 +#define R_MN10300_GOT16 19 +#define R_MN10300_COPY 20 +#define R_MN10300_GLOB_DAT 21 +#define R_MN10300_JMP_SLOT 22 +#define R_MN10300_RELATIVE 23 + +#define R_MN10300_NUM 24 + + + +#define R_M32R_NONE 0 +#define R_M32R_16 1 +#define R_M32R_32 2 +#define R_M32R_24 3 +#define R_M32R_10_PCREL 4 +#define R_M32R_18_PCREL 5 +#define R_M32R_26_PCREL 6 +#define R_M32R_HI16_ULO 7 +#define R_M32R_HI16_SLO 8 +#define R_M32R_LO16 9 +#define R_M32R_SDA16 10 +#define R_M32R_GNU_VTINHERIT 11 +#define R_M32R_GNU_VTENTRY 12 + +#define R_M32R_16_RELA 33 +#define R_M32R_32_RELA 34 +#define R_M32R_24_RELA 35 +#define R_M32R_10_PCREL_RELA 36 +#define R_M32R_18_PCREL_RELA 37 +#define R_M32R_26_PCREL_RELA 38 +#define R_M32R_HI16_ULO_RELA 39 +#define R_M32R_HI16_SLO_RELA 40 +#define R_M32R_LO16_RELA 41 +#define R_M32R_SDA16_RELA 42 +#define R_M32R_RELA_GNU_VTINHERIT 43 +#define R_M32R_RELA_GNU_VTENTRY 44 +#define R_M32R_REL32 45 + +#define R_M32R_GOT24 48 +#define R_M32R_26_PLTREL 49 +#define R_M32R_COPY 50 +#define R_M32R_GLOB_DAT 51 +#define R_M32R_JMP_SLOT 52 +#define R_M32R_RELATIVE 53 +#define R_M32R_GOTOFF 54 +#define R_M32R_GOTPC24 55 +#define R_M32R_GOT16_HI_ULO 56 + +#define R_M32R_GOT16_HI_SLO 57 + +#define R_M32R_GOT16_LO 58 +#define R_M32R_GOTPC_HI_ULO 59 + +#define R_M32R_GOTPC_HI_SLO 60 + +#define R_M32R_GOTPC_LO 61 + +#define R_M32R_GOTOFF_HI_ULO 62 + +#define R_M32R_GOTOFF_HI_SLO 63 + +#define R_M32R_GOTOFF_LO 64 +#define R_M32R_NUM 256 + +#define R_MICROBLAZE_NONE 0 +#define R_MICROBLAZE_32 1 +#define R_MICROBLAZE_32_PCREL 2 +#define R_MICROBLAZE_64_PCREL 3 +#define R_MICROBLAZE_32_PCREL_LO 4 +#define R_MICROBLAZE_64 5 +#define R_MICROBLAZE_32_LO 6 +#define R_MICROBLAZE_SRO32 7 +#define R_MICROBLAZE_SRW32 8 +#define R_MICROBLAZE_64_NONE 9 +#define R_MICROBLAZE_32_SYM_OP_SYM 10 +#define R_MICROBLAZE_GNU_VTINHERIT 11 +#define R_MICROBLAZE_GNU_VTENTRY 12 +#define R_MICROBLAZE_GOTPC_64 13 +#define R_MICROBLAZE_GOT_64 14 +#define R_MICROBLAZE_PLT_64 15 +#define R_MICROBLAZE_REL 16 +#define R_MICROBLAZE_JUMP_SLOT 17 +#define R_MICROBLAZE_GLOB_DAT 18 +#define R_MICROBLAZE_GOTOFF_64 19 +#define R_MICROBLAZE_GOTOFF_32 20 +#define R_MICROBLAZE_COPY 21 +#define R_MICROBLAZE_TLS 22 +#define R_MICROBLAZE_TLSGD 23 +#define R_MICROBLAZE_TLSLD 24 +#define R_MICROBLAZE_TLSDTPMOD32 25 +#define R_MICROBLAZE_TLSDTPREL32 26 +#define R_MICROBLAZE_TLSDTPREL64 27 +#define R_MICROBLAZE_TLSGOTTPREL32 28 +#define R_MICROBLAZE_TLSTPREL32 29 + +#define DT_NIOS2_GP 0x70000002 + +#define R_NIOS2_NONE 0 +#define R_NIOS2_S16 1 +#define R_NIOS2_U16 2 +#define R_NIOS2_PCREL16 3 +#define R_NIOS2_CALL26 4 +#define R_NIOS2_IMM5 5 +#define R_NIOS2_CACHE_OPX 6 +#define R_NIOS2_IMM6 7 +#define R_NIOS2_IMM8 8 +#define R_NIOS2_HI16 9 +#define R_NIOS2_LO16 10 +#define R_NIOS2_HIADJ16 11 +#define R_NIOS2_BFD_RELOC_32 12 +#define R_NIOS2_BFD_RELOC_16 13 +#define R_NIOS2_BFD_RELOC_8 14 +#define R_NIOS2_GPREL 15 +#define R_NIOS2_GNU_VTINHERIT 16 +#define R_NIOS2_GNU_VTENTRY 17 +#define R_NIOS2_UJMP 18 +#define R_NIOS2_CJMP 19 +#define R_NIOS2_CALLR 20 +#define R_NIOS2_ALIGN 21 +#define R_NIOS2_GOT16 22 +#define R_NIOS2_CALL16 23 +#define R_NIOS2_GOTOFF_LO 24 +#define R_NIOS2_GOTOFF_HA 25 +#define R_NIOS2_PCREL_LO 26 +#define R_NIOS2_PCREL_HA 27 +#define R_NIOS2_TLS_GD16 28 +#define R_NIOS2_TLS_LDM16 29 +#define R_NIOS2_TLS_LDO16 30 +#define R_NIOS2_TLS_IE16 31 +#define R_NIOS2_TLS_LE16 32 +#define R_NIOS2_TLS_DTPMOD 33 +#define R_NIOS2_TLS_DTPREL 34 +#define R_NIOS2_TLS_TPREL 35 +#define R_NIOS2_COPY 36 +#define R_NIOS2_GLOB_DAT 37 +#define R_NIOS2_JUMP_SLOT 38 +#define R_NIOS2_RELATIVE 39 +#define R_NIOS2_GOTOFF 40 +#define R_NIOS2_CALL26_NOAT 41 +#define R_NIOS2_GOT_LO 42 +#define R_NIOS2_GOT_HA 43 +#define R_NIOS2_CALL_LO 44 +#define R_NIOS2_CALL_HA 45 + +#define R_OR1K_NONE 0 +#define R_OR1K_32 1 +#define R_OR1K_16 2 +#define R_OR1K_8 3 +#define R_OR1K_LO_16_IN_INSN 4 +#define R_OR1K_HI_16_IN_INSN 5 +#define R_OR1K_INSN_REL_26 6 +#define R_OR1K_GNU_VTENTRY 7 +#define R_OR1K_GNU_VTINHERIT 8 +#define R_OR1K_32_PCREL 9 +#define R_OR1K_16_PCREL 10 +#define R_OR1K_8_PCREL 11 +#define R_OR1K_GOTPC_HI16 12 +#define R_OR1K_GOTPC_LO16 13 +#define R_OR1K_GOT16 14 +#define R_OR1K_PLT26 15 +#define R_OR1K_GOTOFF_HI16 16 +#define R_OR1K_GOTOFF_LO16 17 +#define R_OR1K_COPY 18 +#define R_OR1K_GLOB_DAT 19 +#define R_OR1K_JMP_SLOT 20 +#define R_OR1K_RELATIVE 21 +#define R_OR1K_TLS_GD_HI16 22 +#define R_OR1K_TLS_GD_LO16 23 +#define R_OR1K_TLS_LDM_HI16 24 +#define R_OR1K_TLS_LDM_LO16 25 +#define R_OR1K_TLS_LDO_HI16 26 +#define R_OR1K_TLS_LDO_LO16 27 +#define R_OR1K_TLS_IE_HI16 28 +#define R_OR1K_TLS_IE_LO16 29 +#define R_OR1K_TLS_LE_HI16 30 +#define R_OR1K_TLS_LE_LO16 31 +#define R_OR1K_TLS_TPOFF 32 +#define R_OR1K_TLS_DTPOFF 33 +#define R_OR1K_TLS_DTPMOD 34 + +#define R_BPF_NONE 0 +#define R_BPF_MAP_FD 1 + +#ifdef __cplusplus +} +#endif + + +#endif diff --git a/tools/gbafix/gbafix.c b/tools/gbafix/gbafix.c new file mode 100644 index 00000000..598e43aa --- /dev/null +++ b/tools/gbafix/gbafix.c @@ -0,0 +1,317 @@ +/* + "$Id: gbafix.c,v 1.2 2008-07-30 17:12:51 wntrmute Exp $" + + DevkitPro GBA ROM fix utility + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + USA. + + Please report all bugs and problems through the bug tracker at + "http://sourceforge.net/tracker/?group_id=114505&atid=668551". + + "$Header: /lvm/shared/ds/ds/cvs/devkitpro-cvsbackup/tools/gba/gbatools/gbafix.c,v 1.2 2008-07-30 17:12:51 wntrmute Exp $" + +*/ +//--------------------------------------------------------------------------------- +// gbafix.c +//--------------------------------------------------------------------------------- +/* + Gameboy Advance ROM fixer (by Dark Fader / BlackThunder / WinterMute / Diegoisawesome) + Validates header of GBA roms. + + History + ------- + v1.07 - added support for ELF input, (PikalaxALT) + v1.06 - added output silencing, (Diegoisawesome) + v1.05 - added debug offset argument, (Diegoisawesome) + v1.04 - converted to plain C, (WinterMute) + v1.03 - header.fixed, header.device_type + v1.02 - redefined the options (rgbfix style), checksum=0 + v1.01 - fix in parameters + v1.00 - logo, complement +*/ + +#pragma pack(1) + +#include +#include +#include +#include +#include "elf.h" + +#define VER "1.07" +#define ARGV argv[arg] +#define VALUE (ARGV+2) +#define NUMBER strtoul(VALUE, NULL, 0) + +typedef struct +{ + uint32_t start_code; // B instruction + uint8_t logo[0xA0-0x04]; // logo data + uint8_t title[0xC]; // game title name + uint32_t game_code; // + uint16_t maker_code; // + uint8_t fixed; // 0x96 + uint8_t unit_code; // 0x00 + uint8_t device_type; // 0x00 + uint8_t unused[7]; // + uint8_t game_version; // 0x00 + uint8_t complement; // 800000A0..800000BC + uint16_t checksum; // 0x0000 +} Header; + + +Header header; + +unsigned short checksum_without_header = 0; + +const Header good_header = +{ + // start_code + 0xEA00002E, + // logo + { 0x24,0xFF,0xAE,0x51,0x69,0x9A,0xA2,0x21,0x3D,0x84,0x82,0x0A,0x84,0xE4,0x09,0xAD, + 0x11,0x24,0x8B,0x98,0xC0,0x81,0x7F,0x21,0xA3,0x52,0xBE,0x19,0x93,0x09,0xCE,0x20, + 0x10,0x46,0x4A,0x4A,0xF8,0x27,0x31,0xEC,0x58,0xC7,0xE8,0x33,0x82,0xE3,0xCE,0xBF, + 0x85,0xF4,0xDF,0x94,0xCE,0x4B,0x09,0xC1,0x94,0x56,0x8A,0xC0,0x13,0x72,0xA7,0xFC, + 0x9F,0x84,0x4D,0x73,0xA3,0xCA,0x9A,0x61,0x58,0x97,0xA3,0x27,0xFC,0x03,0x98,0x76, + 0x23,0x1D,0xC7,0x61,0x03,0x04,0xAE,0x56,0xBF,0x38,0x84,0x00,0x40,0xA7,0x0E,0xFD, + 0xFF,0x52,0xFE,0x03,0x6F,0x95,0x30,0xF1,0x97,0xFB,0xC0,0x85,0x60,0xD6,0x80,0x25, + 0xA9,0x63,0xBE,0x03,0x01,0x4E,0x38,0xE2,0xF9,0xA2,0x34,0xFF,0xBB,0x3E,0x03,0x44, + 0x78,0x00,0x90,0xCB,0x88,0x11,0x3A,0x94,0x65,0xC0,0x7C,0x63,0x87,0xF0,0x3C,0xAF, + 0xD6,0x25,0xE4,0x8B,0x38,0x0A,0xAC,0x72,0x21,0xD4,0xF8,0x07 } , + // title + { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, + // game code + 0x00000000, + // maker code + 0x3130, + // fixed + 0x96, + // unit_code + 0x00, + // device type + 0x00, + // unused + { 0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, + // game version + 0x00, + // complement + 0x00, + // checksum + 0x0000 +}; + +//--------------------------------------------------------------------------------- +char HeaderComplement() +/*--------------------------------------------------------------------------------- + Calculate Header complement check +---------------------------------------------------------------------------------*/ +{ + int n; + char c = 0; + char *p = (char *)&header + 0xA0; + for (n=0; n<0xBD-0xA0; n++) + { + c += *p++; + } + return -(0x19+c); +} + + +//--------------------------------------------------------------------------------- +int main(int argc, char *argv[]) +//--------------------------------------------------------------------------------- +{ + int arg; + char *argfile = 0; + FILE *infile; + int silent = 0; + int schedule_pad = 0; + + int size,bit; + + // show syntax + if (argc <= 1) + { + printf("GBA ROM fixer v"VER" by Dark Fader / BlackThunder / WinterMute / Diegoisawesome \n"); + printf("Syntax: gbafix [-p] [-t[title]] [-c] [-m] [-r] [-d] [--silent]\n"); + printf("\n"); + printf("parameters:\n"); + printf(" -p Pad to next exact power of 2. No minimum size!\n"); + printf(" -t[] Patch title. Stripped filename if none given.\n"); + printf(" -c<game_code> Patch game code (four characters)\n"); + printf(" -m<maker_code> Patch maker code (two characters)\n"); + printf(" -r<version> Patch game version (number)\n"); + printf(" -d<debug> Enable debugging handler and set debug entry point (0 or 1)\n"); + printf(" --silent Silence non-error output\n"); + return -1; + } + + // get filename + for (arg=1; arg<argc; arg++) + { + if (ARGV[0] != '-') { argfile=ARGV; } + if (strncmp("--silent", &ARGV[0], 7) == 0) { silent = 1; } + } + + // check filename + if (!argfile) + { + fprintf(stderr, "Filename needed!\n"); + return -1; + } + + uint32_t sh_offset = 0; + + // read file + infile = fopen(argfile, "r+b"); + if (!infile) { fprintf(stderr, "Error opening input file!\n"); return -1; } + fseek(infile, sh_offset, SEEK_SET); + fread(&header, sizeof(header), 1, infile); + + // elf check + Elf32_Shdr secHeader; + if (memcmp(&header, ELFMAG, 4) == 0) { + Elf32_Ehdr *elfHeader = (Elf32_Ehdr *)&header; + fseek(infile, elfHeader->e_shoff, SEEK_SET); + int i; + for (i = 0; i < elfHeader->e_shnum; i++) { + fread(&secHeader, sizeof(Elf32_Shdr), 1, infile); + if (secHeader.sh_type == SHT_PROGBITS && secHeader.sh_addr == elfHeader->e_entry) break; + } + if (i == elfHeader->e_shnum) { fprintf(stderr, "Error finding entry point!\n"); return 1; } + fseek(infile, secHeader.sh_offset, SEEK_SET); + sh_offset = secHeader.sh_offset; + fread(&header, sizeof(header), 1, infile); + } + + // fix some data + memcpy(header.logo, good_header.logo, sizeof(header.logo)); + memcpy(&header.fixed, &good_header.fixed, sizeof(header.fixed)); + memcpy(&header.device_type, &good_header.device_type, sizeof(header.device_type)); + + // parse command line + for (arg=1; arg<argc; arg++) + { + if (ARGV[0] == '-') + { + switch (ARGV[1]) + { + case 'p': // pad + { + schedule_pad = 1; + break; + } + + case 't': // title + { + char title[256]; + memset(title, 0, sizeof(title)); + if (VALUE[0]) + { + strncpy(title, VALUE, sizeof(header.title)); + } + else + { + // use filename + char s[256], *begin=s, *t; strcpy(s, argfile); + t = strrchr(s, '\\'); if (t) begin = t+1; + t = strrchr(s, '/'); if (t) begin = t+1; + t = strrchr(s, '.'); if (t) *t = 0; + strncpy(title, begin, sizeof(header.title)); + if (!silent) printf("%s\n",begin); + } + memcpy(header.title, title, sizeof(header.title)); // copy + break; + } + + case 'c': // game code + { + //if (!VALUE[0]) { fprintf(stderr, "Need value for %s\n", ARGV); break; } + //header.game_code = NUMBER; + header.game_code = VALUE[0] | VALUE[1]<<8 | VALUE[2]<<16 | VALUE[3]<<24; + break; + } + + case 'm': // maker code + { + //if (!VALUE[0]) { fprintf(stderr, "Need value for %s\n", ARGV); break; } + //header.maker_code = (unsigned short)NUMBER; + header.maker_code = VALUE[0] | VALUE[1]<<8; + break; + } + + case 'v': // ignored, compatability with other gbafix + { + break; + } + + case 'r': // version + { + if (!VALUE[0]) { fprintf(stderr, "Need value for %s\n", ARGV); break; } + header.game_version = (unsigned char)NUMBER; + break; + } + + case 'd': // debug + { + if (!VALUE[0]) { fprintf(stderr, "Need value for %s\n", ARGV); break; } + header.logo[0x9C-0x04] = 0xA5; // debug enable + header.device_type = (unsigned char)((NUMBER & 1) << 7); // debug handler entry point + break; + } + case '-': // long arguments + { + if (strncmp("silent", &ARGV[2], 6) == 0) { continue; } + break; + } + default: + { + printf("Invalid option: %s\n", ARGV); + } + } + } + } + + // update complement check & total checksum + header.complement = 0; + header.checksum = 0; // must be 0 + header.complement = HeaderComplement(); + //header.checksum = checksum_without_header + HeaderChecksum(); + + if (schedule_pad) { + if (sh_offset != 0) { + fprintf(stderr, "Warning: Cannot safely pad an ELF\n"); + } else { + fseek(infile, 0, SEEK_END); + size = ftell(infile); + for (bit=31; bit>=0; bit--) if (size & (1<<bit)) break; + if (size != (1<<bit)) + { + int todo = (1<<(bit+1)) - size; + while (todo--) fputc(0xFF, infile); + } + } + } + + fseek(infile, sh_offset, SEEK_SET); + fwrite(&header, sizeof(header), 1, infile); + fclose(infile); + + if (!silent) printf("ROM fixed!\n"); + + return 0; +} diff --git a/tools/gbagfx/.gitignore b/tools/gbagfx/.gitignore new file mode 100644 index 00000000..dbbb3f04 --- /dev/null +++ b/tools/gbagfx/.gitignore @@ -0,0 +1 @@ +gbagfx diff --git a/tools/gbagfx/LICENSE b/tools/gbagfx/LICENSE new file mode 100644 index 00000000..b66bf81c --- /dev/null +++ b/tools/gbagfx/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2015 YamaArashi + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/tools/gbagfx/Makefile b/tools/gbagfx/Makefile new file mode 100644 index 00000000..f0638414 --- /dev/null +++ b/tools/gbagfx/Makefile @@ -0,0 +1,21 @@ +CC = gcc + +CFLAGS = -Wall -Wextra -Werror -Wno-sign-compare -std=c11 -O2 -DPNG_SKIP_SETJMP_CHECK + +LIBS = -lpng -lz + +SRCS = main.c convert_png.c gfx.c jasc_pal.c lz.c rl.c util.c font.c huff.c + +.PHONY: all clean + +all: gbagfx + @: + +gbagfx-debug: $(SRCS) convert_png.h gfx.h global.h jasc_pal.h lz.h rl.h util.h font.h + $(CC) $(CFLAGS) -DDEBUG $(SRCS) -o $@ $(LDFLAGS) $(LIBS) + +gbagfx: $(SRCS) convert_png.h gfx.h global.h jasc_pal.h lz.h rl.h util.h font.h + $(CC) $(CFLAGS) $(SRCS) -o $@ $(LDFLAGS) $(LIBS) + +clean: + $(RM) gbagfx gbagfx.exe diff --git a/tools/gbagfx/convert_png.c b/tools/gbagfx/convert_png.c new file mode 100644 index 00000000..cdfa39a7 --- /dev/null +++ b/tools/gbagfx/convert_png.c @@ -0,0 +1,254 @@ +// Copyright (c) 2015 YamaArashi + +#include <stdio.h> +#include <setjmp.h> +#include <png.h> +#include "global.h" +#include "convert_png.h" +#include "gfx.h" + +static FILE *PngReadOpen(char *path, png_structp *pngStruct, png_infop *pngInfo) +{ + FILE *fp = fopen(path, "rb"); + + if (fp == NULL) + FATAL_ERROR("Failed to open \"%s\" for reading.\n", path); + + unsigned char sig[8]; + + if (fread(sig, 8, 1, fp) != 1) + FATAL_ERROR("Failed to read PNG signature from \"%s\".\n", path); + + if (png_sig_cmp(sig, 0, 8)) + FATAL_ERROR("\"%s\" does not have a valid PNG signature.\n", path); + + png_structp png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); + + if (!png_ptr) + FATAL_ERROR("Failed to create PNG read struct.\n"); + + png_infop info_ptr = png_create_info_struct(png_ptr); + + if (!info_ptr) + FATAL_ERROR("Failed to create PNG info struct.\n"); + + if (setjmp(png_jmpbuf(png_ptr))) + FATAL_ERROR("Failed to init I/O for reading \"%s\".\n", path); + + png_init_io(png_ptr, fp); + png_set_sig_bytes(png_ptr, 8); + png_read_info(png_ptr, info_ptr); + + *pngStruct = png_ptr; + *pngInfo = info_ptr; + + return fp; +} + +static unsigned char *ConvertBitDepth(unsigned char *src, int srcBitDepth, int destBitDepth, int numPixels) +{ + // Round the number of bits up to the next 8 and divide by 8 to get the number of bytes. + int srcSize = ((numPixels * srcBitDepth + 7) & ~7) / 8; + int destSize = ((numPixels * destBitDepth + 7) & ~7) / 8; + unsigned char *output = calloc(destSize, 1); + unsigned char *dest = output; + int i; + int j; + int destBit = 8 - destBitDepth; + + for (i = 0; i < srcSize; i++) + { + unsigned char srcByte = src[i]; + + for (j = 8 - srcBitDepth; j >= 0; j -= srcBitDepth) + { + unsigned char pixel = (srcByte >> j) % (1 << srcBitDepth); + + if (pixel >= (1 << destBitDepth)) + FATAL_ERROR("Image exceeds the maximum color value for a %ibpp image.\n", destBitDepth); + *dest |= pixel << destBit; + destBit -= destBitDepth; + if (destBit < 0) + { + dest++; + destBit = 8 - destBitDepth; + } + } + } + + return output; +} + +void ReadPng(char *path, struct Image *image) +{ + png_structp png_ptr; + png_infop info_ptr; + + FILE *fp = PngReadOpen(path, &png_ptr, &info_ptr); + + int bit_depth = png_get_bit_depth(png_ptr, info_ptr); + + int color_type = png_get_color_type(png_ptr, info_ptr); + + if (color_type != PNG_COLOR_TYPE_GRAY && color_type != PNG_COLOR_TYPE_PALETTE) + FATAL_ERROR("\"%s\" has an unsupported color type.\n", path); + + // Check if the image has a palette so that we can tell if the colors need to be inverted later. + // Don't read the palette because it's not needed for now. + image->hasPalette = (color_type == PNG_COLOR_TYPE_PALETTE); + + image->width = png_get_image_width(png_ptr, info_ptr); + image->height = png_get_image_height(png_ptr, info_ptr); + + int rowbytes = png_get_rowbytes(png_ptr, info_ptr); + + image->pixels = malloc(image->height * rowbytes); + + if (image->pixels == NULL) + FATAL_ERROR("Failed to allocate pixel buffer.\n"); + + png_bytepp row_pointers = malloc(image->height * sizeof(png_bytep)); + + if (row_pointers == NULL) + FATAL_ERROR("Failed to allocate row pointers.\n"); + + for (int i = 0; i < image->height; i++) + row_pointers[i] = (png_bytep)(image->pixels + (i * rowbytes)); + + if (setjmp(png_jmpbuf(png_ptr))) + FATAL_ERROR("Error reading from \"%s\".\n", path); + + png_read_image(png_ptr, row_pointers); + + png_destroy_read_struct(&png_ptr, &info_ptr, NULL); + + free(row_pointers); + fclose(fp); + + if (bit_depth != image->bitDepth) + { + unsigned char *src = image->pixels; + + if (bit_depth != 1 && bit_depth != 2 && bit_depth != 4 && bit_depth != 8) + FATAL_ERROR("Bit depth of image must be 1, 2, 4, or 8.\n"); + image->pixels = ConvertBitDepth(image->pixels, bit_depth, image->bitDepth, image->width * image->height); + free(src); + image->bitDepth = bit_depth; + } +} + +void ReadPngPalette(char *path, struct Palette *palette) +{ + png_structp png_ptr; + png_infop info_ptr; + png_colorp colors; + int numColors; + + FILE *fp = PngReadOpen(path, &png_ptr, &info_ptr); + + if (png_get_color_type(png_ptr, info_ptr) != PNG_COLOR_TYPE_PALETTE) + FATAL_ERROR("The image \"%s\" does not contain a palette.\n", path); + + if (png_get_PLTE(png_ptr, info_ptr, &colors, &numColors) != PNG_INFO_PLTE) + FATAL_ERROR("Failed to retrieve palette from \"%s\".\n", path); + + if (numColors > 256) + FATAL_ERROR("Images with more than 256 colors are not supported.\n"); + + palette->numColors = numColors; + for (int i = 0; i < numColors; i++) { + palette->colors[i].red = colors[i].red; + palette->colors[i].green = colors[i].green; + palette->colors[i].blue = colors[i].blue; + } + + png_destroy_read_struct(&png_ptr, &info_ptr, NULL); + + fclose(fp); +} + +void SetPngPalette(png_structp png_ptr, png_infop info_ptr, struct Palette *palette) +{ + png_colorp colors = malloc(palette->numColors * sizeof(png_color)); + + if (colors == NULL) + FATAL_ERROR("Failed to allocate PNG palette.\n"); + + for (int i = 0; i < palette->numColors; i++) { + colors[i].red = palette->colors[i].red; + colors[i].green = palette->colors[i].green; + colors[i].blue = palette->colors[i].blue; + } + + png_set_PLTE(png_ptr, info_ptr, colors, palette->numColors); + + free(colors); +} + +void WritePng(char *path, struct Image *image) +{ + FILE *fp = fopen(path, "wb"); + + if (fp == NULL) + FATAL_ERROR("Failed to open \"%s\" for writing.\n", path); + + png_structp png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); + + if (!png_ptr) + FATAL_ERROR("Failed to create PNG write struct.\n"); + + png_infop info_ptr = png_create_info_struct(png_ptr); + + if (!info_ptr) + FATAL_ERROR("Failed to create PNG info struct.\n"); + + if (setjmp(png_jmpbuf(png_ptr))) + FATAL_ERROR("Failed to init I/O for writing \"%s\".\n", path); + + png_init_io(png_ptr, fp); + + if (setjmp(png_jmpbuf(png_ptr))) + FATAL_ERROR("Error writing header for \"%s\".\n", path); + + int color_type = image->hasPalette ? PNG_COLOR_TYPE_PALETTE : PNG_COLOR_TYPE_GRAY; + + png_set_IHDR(png_ptr, info_ptr, image->width, image->height, + image->bitDepth, color_type, PNG_INTERLACE_NONE, + PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE); + + if (image->hasPalette) { + SetPngPalette(png_ptr, info_ptr, &image->palette); + + if (image->hasTransparency) { + png_byte trans = 0; + png_set_tRNS(png_ptr, info_ptr, &trans, 1, 0); + } + } + + png_write_info(png_ptr, info_ptr); + + png_bytepp row_pointers = malloc(image->height * sizeof(png_bytep)); + + if (row_pointers == NULL) + FATAL_ERROR("Failed to allocate row pointers.\n"); + + int rowbytes = png_get_rowbytes(png_ptr, info_ptr); + + for (int i = 0; i < image->height; i++) + row_pointers[i] = (png_bytep)(image->pixels + (i * rowbytes)); + + if (setjmp(png_jmpbuf(png_ptr))) + FATAL_ERROR("Error writing \"%s\".\n", path); + + png_write_image(png_ptr, row_pointers); + + if (setjmp(png_jmpbuf(png_ptr))) + FATAL_ERROR("Error ending write of \"%s\".\n", path); + + png_write_end(png_ptr, NULL); + + fclose(fp); + + png_destroy_write_struct(&png_ptr, &info_ptr); + free(row_pointers); +} diff --git a/tools/gbagfx/convert_png.h b/tools/gbagfx/convert_png.h new file mode 100644 index 00000000..caf081b7 --- /dev/null +++ b/tools/gbagfx/convert_png.h @@ -0,0 +1,12 @@ +// Copyright (c) 2015 YamaArashi + +#ifndef CONVERT_PNG_H +#define CONVERT_PNG_H + +#include "gfx.h" + +void ReadPng(char *path, struct Image *image); +void WritePng(char *path, struct Image *image); +void ReadPngPalette(char *path, struct Palette *palette); + +#endif // CONVERT_PNG_H diff --git a/tools/gbagfx/font.c b/tools/gbagfx/font.c new file mode 100644 index 00000000..0dd6fbc3 --- /dev/null +++ b/tools/gbagfx/font.c @@ -0,0 +1,326 @@ +// Copyright (c) 2015 YamaArashi + +#include <stdio.h> +#include <stdlib.h> +#include <stdint.h> +#include <stdbool.h> +#include "global.h" +#include "font.h" +#include "gfx.h" +#include "util.h" + +unsigned char gFontPalette[][3] = { + {0x90, 0xC8, 0xFF}, // bg (saturated blue that contrasts well with the shadow color) + {0x38, 0x38, 0x38}, // fg (dark grey) + {0xD8, 0xD8, 0xD8}, // shadow (light grey) + {0xFF, 0xFF, 0xFF} // box (white) +}; + +static void ConvertFromLatinFont(unsigned char *src, unsigned char *dest, unsigned int numRows) +{ + unsigned int srcPixelsOffset = 0; + + for (unsigned int row = 0; row < numRows; row++) { + for (unsigned int column = 0; column < 16; column++) { + for (unsigned int glyphTile = 0; glyphTile < 4; glyphTile++) { + unsigned int pixelsX = (column * 16) + ((glyphTile & 1) * 8); + + for (unsigned int i = 0; i < 8; i++) { + unsigned int pixelsY = (row * 16) + ((glyphTile >> 1) * 8) + i; + unsigned int destPixelsOffset = (pixelsY * 64) + (pixelsX / 4); + + dest[destPixelsOffset] = src[srcPixelsOffset + 1]; + dest[destPixelsOffset + 1] = src[srcPixelsOffset]; + + srcPixelsOffset += 2; + } + } + } + } +} + +static void ConvertToLatinFont(unsigned char *src, unsigned char *dest, unsigned int numRows) +{ + unsigned int destPixelsOffset = 0; + + for (unsigned int row = 0; row < numRows; row++) { + for (unsigned int column = 0; column < 16; column++) { + for (unsigned int glyphTile = 0; glyphTile < 4; glyphTile++) { + unsigned int pixelsX = (column * 16) + ((glyphTile & 1) * 8); + + for (unsigned int i = 0; i < 8; i++) { + unsigned int pixelsY = (row * 16) + ((glyphTile >> 1) * 8) + i; + unsigned int srcPixelsOffset = (pixelsY * 64) + (pixelsX / 4); + + dest[destPixelsOffset] = src[srcPixelsOffset + 1]; + dest[destPixelsOffset + 1] = src[srcPixelsOffset]; + + destPixelsOffset += 2; + } + } + } + } +} + +static void ConvertFromHalfwidthJapaneseFont(unsigned char *src, unsigned char *dest, unsigned int numRows) +{ + for (unsigned int row = 0; row < numRows; row++) { + for (unsigned int column = 0; column < 16; column++) { + unsigned int glyphIndex = (row * 16) + column; + + for (unsigned int glyphTile = 0; glyphTile < 2; glyphTile++) { + unsigned int pixelsX = column * 8; + unsigned int srcPixelsOffset = 512 * (glyphIndex >> 4) + 16 * (glyphIndex & 0xF) + 256 * glyphTile; + + for (unsigned int i = 0; i < 8; i++) { + unsigned int pixelsY = (row * 16) + (glyphTile * 8) + i; + unsigned int destPixelsOffset = (pixelsY * 32) + (pixelsX / 4); + + dest[destPixelsOffset] = src[srcPixelsOffset + 1]; + dest[destPixelsOffset + 1] = src[srcPixelsOffset]; + + srcPixelsOffset += 2; + } + } + } + } +} + +static void ConvertToHalfwidthJapaneseFont(unsigned char *src, unsigned char *dest, unsigned int numRows) +{ + for (unsigned int row = 0; row < numRows; row++) { + for (unsigned int column = 0; column < 16; column++) { + unsigned int glyphIndex = (row * 16) + column; + + for (unsigned int glyphTile = 0; glyphTile < 2; glyphTile++) { + unsigned int pixelsX = column * 8; + unsigned int destPixelsOffset = 512 * (glyphIndex >> 4) + 16 * (glyphIndex & 0xF) + 256 * glyphTile; + + for (unsigned int i = 0; i < 8; i++) { + unsigned int pixelsY = (row * 16) + (glyphTile * 8) + i; + unsigned int srcPixelsOffset = (pixelsY * 32) + (pixelsX / 4); + + dest[destPixelsOffset] = src[srcPixelsOffset + 1]; + dest[destPixelsOffset + 1] = src[srcPixelsOffset]; + + destPixelsOffset += 2; + } + } + } + } +} + +static void ConvertFromFullwidthJapaneseFont(unsigned char *src, unsigned char *dest, unsigned int numRows) +{ + for (unsigned int row = 0; row < numRows; row++) { + for (unsigned int column = 0; column < 16; column++) { + unsigned int glyphIndex = (row * 16) + column; + + for (unsigned int glyphTile = 0; glyphTile < 4; glyphTile++) { + unsigned int pixelsX = (column * 16) + ((glyphTile & 1) * 8); + unsigned int srcPixelsOffset = 512 * (glyphIndex >> 3) + 32 * (glyphIndex & 7) + 256 * (glyphTile >> 1) + 16 * (glyphTile & 1); + + for (unsigned int i = 0; i < 8; i++) { + unsigned int pixelsY = (row * 16) + ((glyphTile >> 1) * 8) + i; + unsigned int destPixelsOffset = (pixelsY * 64) + (pixelsX / 4); + + dest[destPixelsOffset] = src[srcPixelsOffset + 1]; + dest[destPixelsOffset + 1] = src[srcPixelsOffset]; + + srcPixelsOffset += 2; + } + } + } + } +} + +static void ConvertToFullwidthJapaneseFont(unsigned char *src, unsigned char *dest, unsigned int numRows) +{ + for (unsigned int row = 0; row < numRows; row++) { + for (unsigned int column = 0; column < 16; column++) { + unsigned int glyphIndex = (row * 16) + column; + + for (unsigned int glyphTile = 0; glyphTile < 4; glyphTile++) { + unsigned int pixelsX = (column * 16) + ((glyphTile & 1) * 8); + unsigned int destPixelsOffset = 512 * (glyphIndex >> 3) + 32 * (glyphIndex & 7) + 256 * (glyphTile >> 1) + 16 * (glyphTile & 1); + + for (unsigned int i = 0; i < 8; i++) { + unsigned int pixelsY = (row * 16) + ((glyphTile >> 1) * 8) + i; + unsigned int srcPixelsOffset = (pixelsY * 64) + (pixelsX / 4); + + dest[destPixelsOffset] = src[srcPixelsOffset + 1]; + dest[destPixelsOffset + 1] = src[srcPixelsOffset]; + + destPixelsOffset += 2; + } + } + } + } +} + +static void SetFontPalette(struct Image *image) +{ + image->hasPalette = true; + + image->palette.numColors = 4; + + for (int i = 0; i < image->palette.numColors; i++) { + image->palette.colors[i].red = gFontPalette[i][0]; + image->palette.colors[i].green = gFontPalette[i][1]; + image->palette.colors[i].blue = gFontPalette[i][2]; + } + + image->hasTransparency = false; +} + +void ReadLatinFont(char *path, struct Image *image) +{ + int fileSize; + unsigned char *buffer = ReadWholeFile(path, &fileSize); + + int numGlyphs = fileSize / 64; + + if (numGlyphs % 16 != 0) + FATAL_ERROR("The number of glyphs (%d) is not a multiple of 16.\n", numGlyphs); + + int numRows = numGlyphs / 16; + + image->width = 256; + image->height = numRows * 16; + image->bitDepth = 2; + image->pixels = malloc(fileSize); + + if (image->pixels == NULL) + FATAL_ERROR("Failed to allocate memory for font.\n"); + + ConvertFromLatinFont(buffer, image->pixels, numRows); + + free(buffer); + + SetFontPalette(image); +} + +void WriteLatinFont(char *path, struct Image *image) +{ + if (image->width != 256) + FATAL_ERROR("The width of the font image (%d) is not 256.\n", image->width); + + if (image->height % 16 != 0) + FATAL_ERROR("The height of the font image (%d) is not a multiple of 16.\n", image->height); + + int numRows = image->height / 16; + int bufferSize = numRows * 16 * 64; + unsigned char *buffer = malloc(bufferSize); + + if (buffer == NULL) + FATAL_ERROR("Failed to allocate memory for font.\n"); + + ConvertToLatinFont(image->pixels, buffer, numRows); + + WriteWholeFile(path, buffer, bufferSize); + + free(buffer); +} + +void ReadHalfwidthJapaneseFont(char *path, struct Image *image) +{ + int fileSize; + unsigned char *buffer = ReadWholeFile(path, &fileSize); + + int glyphSize = 32; + + if (fileSize % glyphSize != 0) + FATAL_ERROR("The file size (%d) is not a multiple of %d.\n", fileSize, glyphSize); + + int numGlyphs = fileSize / glyphSize; + + if (numGlyphs % 16 != 0) + FATAL_ERROR("The number of glyphs (%d) is not a multiple of 16.\n", numGlyphs); + + int numRows = numGlyphs / 16; + + image->width = 128; + image->height = numRows * 16; + image->bitDepth = 2; + image->pixels = malloc(fileSize); + + if (image->pixels == NULL) + FATAL_ERROR("Failed to allocate memory for font.\n"); + + ConvertFromHalfwidthJapaneseFont(buffer, image->pixels, numRows); + + free(buffer); + + SetFontPalette(image); +} + +void WriteHalfwidthJapaneseFont(char *path, struct Image *image) +{ + if (image->width != 128) + FATAL_ERROR("The width of the font image (%d) is not 128.\n", image->width); + + if (image->height % 16 != 0) + FATAL_ERROR("The height of the font image (%d) is not a multiple of 16.\n", image->height); + + int numRows = image->height / 16; + int bufferSize = numRows * 16 * 32; + unsigned char *buffer = malloc(bufferSize); + + if (buffer == NULL) + FATAL_ERROR("Failed to allocate memory for font.\n"); + + ConvertToHalfwidthJapaneseFont(image->pixels, buffer, numRows); + + WriteWholeFile(path, buffer, bufferSize); + + free(buffer); +} + +void ReadFullwidthJapaneseFont(char *path, struct Image *image) +{ + int fileSize; + unsigned char *buffer = ReadWholeFile(path, &fileSize); + + int numGlyphs = fileSize / 64; + + if (numGlyphs % 16 != 0) + FATAL_ERROR("The number of glyphs (%d) is not a multiple of 16.\n", numGlyphs); + + int numRows = numGlyphs / 16; + + image->width = 256; + image->height = numRows * 16; + image->bitDepth = 2; + image->pixels = malloc(fileSize); + + if (image->pixels == NULL) + FATAL_ERROR("Failed to allocate memory for font.\n"); + + ConvertFromFullwidthJapaneseFont(buffer, image->pixels, numRows); + + free(buffer); + + SetFontPalette(image); +} + +void WriteFullwidthJapaneseFont(char *path, struct Image *image) +{ + if (image->width != 256) + FATAL_ERROR("The width of the font image (%d) is not 256.\n", image->width); + + if (image->height % 16 != 0) + FATAL_ERROR("The height of the font image (%d) is not a multiple of 16.\n", image->height); + + int numRows = image->height / 16; + int bufferSize = numRows * 16 * 64; + unsigned char *buffer = malloc(bufferSize); + + if (buffer == NULL) + FATAL_ERROR("Failed to allocate memory for font.\n"); + + ConvertToFullwidthJapaneseFont(image->pixels, buffer, numRows); + + WriteWholeFile(path, buffer, bufferSize); + + free(buffer); +} diff --git a/tools/gbagfx/font.h b/tools/gbagfx/font.h new file mode 100644 index 00000000..45086d02 --- /dev/null +++ b/tools/gbagfx/font.h @@ -0,0 +1,16 @@ +// Copyright (c) 2015 YamaArashi + +#ifndef FONT_H +#define FONT_H + +#include <stdbool.h> +#include "gfx.h" + +void ReadLatinFont(char *path, struct Image *image); +void WriteLatinFont(char *path, struct Image *image); +void ReadHalfwidthJapaneseFont(char *path, struct Image *image); +void WriteHalfwidthJapaneseFont(char *path, struct Image *image); +void ReadFullwidthJapaneseFont(char *path, struct Image *image); +void WriteFullwidthJapaneseFont(char *path, struct Image *image); + +#endif // FONT_H diff --git a/tools/gbagfx/gfx.c b/tools/gbagfx/gfx.c new file mode 100644 index 00000000..f927deed --- /dev/null +++ b/tools/gbagfx/gfx.c @@ -0,0 +1,344 @@ +// Copyright (c) 2015 YamaArashi + +#include <stdio.h> +#include <stdlib.h> +#include <stdint.h> +#include <stdbool.h> +#include "global.h" +#include "gfx.h" +#include "util.h" + +#define GET_GBA_PAL_RED(x) (((x) >> 0) & 0x1F) +#define GET_GBA_PAL_GREEN(x) (((x) >> 5) & 0x1F) +#define GET_GBA_PAL_BLUE(x) (((x) >> 10) & 0x1F) + +#define SET_GBA_PAL(r, g, b) (((b) << 10) | ((g) << 5) | (r)) + +#define UPCONVERT_BIT_DEPTH(x) (((x) * 255) / 31) + +#define DOWNCONVERT_BIT_DEPTH(x) ((x) / 8) + +static void AdvanceMetatilePosition(int *subTileX, int *subTileY, int *metatileX, int *metatileY, int metatilesWide, int metatileWidth, int metatileHeight) +{ + (*subTileX)++; + if (*subTileX == metatileWidth) { + *subTileX = 0; + (*subTileY)++; + if (*subTileY == metatileHeight) { + *subTileY = 0; + (*metatileX)++; + if (*metatileX == metatilesWide) { + *metatileX = 0; + (*metatileY)++; + } + } + } +} + +static void ConvertFromTiles1Bpp(unsigned char *src, unsigned char *dest, int numTiles, int metatilesWide, int metatileWidth, int metatileHeight, bool invertColors) +{ + int subTileX = 0; + int subTileY = 0; + int metatileX = 0; + int metatileY = 0; + int pitch = metatilesWide * metatileWidth; + + for (int i = 0; i < numTiles; i++) { + for (int j = 0; j < 8; j++) { + int destY = (metatileY * metatileHeight + subTileY) * 8 + j; + int destX = metatileX * metatileWidth + subTileX; + unsigned char srcPixelOctet = *src++; + unsigned char *destPixelOctet = &dest[destY * pitch + destX]; + + for (int k = 0; k < 8; k++) { + *destPixelOctet <<= 1; + *destPixelOctet |= (srcPixelOctet & 1) ^ invertColors; + srcPixelOctet >>= 1; + } + } + + AdvanceMetatilePosition(&subTileX, &subTileY, &metatileX, &metatileY, metatilesWide, metatileWidth, metatileHeight); + } +} + +static void ConvertFromTiles4Bpp(unsigned char *src, unsigned char *dest, int numTiles, int metatilesWide, int metatileWidth, int metatileHeight, bool invertColors) +{ + int subTileX = 0; + int subTileY = 0; + int metatileX = 0; + int metatileY = 0; + int pitch = (metatilesWide * metatileWidth) * 4; + + for (int i = 0; i < numTiles; i++) { + for (int j = 0; j < 8; j++) { + int destY = (metatileY * metatileHeight + subTileY) * 8 + j; + + for (int k = 0; k < 4; k++) { + int destX = (metatileX * metatileWidth + subTileX) * 4 + k; + unsigned char srcPixelPair = *src++; + unsigned char leftPixel = srcPixelPair & 0xF; + unsigned char rightPixel = srcPixelPair >> 4; + + if (invertColors) { + leftPixel = 15 - leftPixel; + rightPixel = 15 - rightPixel; + } + + dest[destY * pitch + destX] = (leftPixel << 4) | rightPixel; + } + } + + AdvanceMetatilePosition(&subTileX, &subTileY, &metatileX, &metatileY, metatilesWide, metatileWidth, metatileHeight); + } +} + +static void ConvertFromTiles8Bpp(unsigned char *src, unsigned char *dest, int numTiles, int metatilesWide, int metatileWidth, int metatileHeight, bool invertColors) +{ + int subTileX = 0; + int subTileY = 0; + int metatileX = 0; + int metatileY = 0; + int pitch = (metatilesWide * metatileWidth) * 8; + + for (int i = 0; i < numTiles; i++) { + for (int j = 0; j < 8; j++) { + int destY = (metatileY * metatileHeight + subTileY) * 8 + j; + + for (int k = 0; k < 8; k++) { + int destX = (metatileX * metatileWidth + subTileX) * 8 + k; + unsigned char srcPixel = *src++; + + if (invertColors) + srcPixel = 255 - srcPixel; + + dest[destY * pitch + destX] = srcPixel; + } + } + + AdvanceMetatilePosition(&subTileX, &subTileY, &metatileX, &metatileY, metatilesWide, metatileWidth, metatileHeight); + } +} + +static void ConvertToTiles1Bpp(unsigned char *src, unsigned char *dest, int numTiles, int metatilesWide, int metatileWidth, int metatileHeight, bool invertColors) +{ + int subTileX = 0; + int subTileY = 0; + int metatileX = 0; + int metatileY = 0; + int pitch = metatilesWide * metatileWidth; + + for (int i = 0; i < numTiles; i++) { + for (int j = 0; j < 8; j++) { + int srcY = (metatileY * metatileHeight + subTileY) * 8 + j; + int srcX = metatileX * metatileWidth + subTileX; + unsigned char srcPixelOctet = src[srcY * pitch + srcX]; + unsigned char *destPixelOctet = dest++; + + for (int k = 0; k < 8; k++) { + *destPixelOctet <<= 1; + *destPixelOctet |= (srcPixelOctet & 1) ^ invertColors; + srcPixelOctet >>= 1; + } + } + + AdvanceMetatilePosition(&subTileX, &subTileY, &metatileX, &metatileY, metatilesWide, metatileWidth, metatileHeight); + } +} + +static void ConvertToTiles4Bpp(unsigned char *src, unsigned char *dest, int numTiles, int metatilesWide, int metatileWidth, int metatileHeight, bool invertColors) +{ + int subTileX = 0; + int subTileY = 0; + int metatileX = 0; + int metatileY = 0; + int pitch = (metatilesWide * metatileWidth) * 4; + + for (int i = 0; i < numTiles; i++) { + for (int j = 0; j < 8; j++) { + int srcY = (metatileY * metatileHeight + subTileY) * 8 + j; + + for (int k = 0; k < 4; k++) { + int srcX = (metatileX * metatileWidth + subTileX) * 4 + k; + unsigned char srcPixelPair = src[srcY * pitch + srcX]; + unsigned char leftPixel = srcPixelPair >> 4; + unsigned char rightPixel = srcPixelPair & 0xF; + + if (invertColors) { + leftPixel = 15 - leftPixel; + rightPixel = 15 - rightPixel; + } + + *dest++ = (rightPixel << 4) | leftPixel; + } + } + + AdvanceMetatilePosition(&subTileX, &subTileY, &metatileX, &metatileY, metatilesWide, metatileWidth, metatileHeight); + } +} + +static void ConvertToTiles8Bpp(unsigned char *src, unsigned char *dest, int numTiles, int metatilesWide, int metatileWidth, int metatileHeight, bool invertColors) +{ + int subTileX = 0; + int subTileY = 0; + int metatileX = 0; + int metatileY = 0; + int pitch = (metatilesWide * metatileWidth) * 8; + + for (int i = 0; i < numTiles; i++) { + for (int j = 0; j < 8; j++) { + int srcY = (metatileY * metatileHeight + subTileY) * 8 + j; + + for (int k = 0; k < 8; k++) { + int srcX = (metatileX * metatileWidth + subTileX) * 8 + k; + unsigned char srcPixel = src[srcY * pitch + srcX]; + + if (invertColors) + srcPixel = 255 - srcPixel; + + *dest++ = srcPixel; + } + } + + AdvanceMetatilePosition(&subTileX, &subTileY, &metatileX, &metatileY, metatilesWide, metatileWidth, metatileHeight); + } +} + +void ReadImage(char *path, int tilesWidth, int bitDepth, int metatileWidth, int metatileHeight, struct Image *image, bool invertColors) +{ + int tileSize = bitDepth * 8; + + int fileSize; + unsigned char *buffer = ReadWholeFile(path, &fileSize); + + int numTiles = fileSize / tileSize; + + int tilesHeight = (numTiles + tilesWidth - 1) / tilesWidth; + + if (tilesWidth % metatileWidth != 0) + FATAL_ERROR("The width in tiles (%d) isn't a multiple of the specified metatile width (%d)", tilesWidth, metatileWidth); + + if (tilesHeight % metatileHeight != 0) + FATAL_ERROR("The height in tiles (%d) isn't a multiple of the specified metatile height (%d)", tilesHeight, metatileHeight); + + image->width = tilesWidth * 8; + image->height = tilesHeight * 8; + image->bitDepth = bitDepth; + image->pixels = calloc(tilesWidth * tilesHeight, tileSize); + + if (image->pixels == NULL) + FATAL_ERROR("Failed to allocate memory for pixels.\n"); + + int metatilesWide = tilesWidth / metatileWidth; + + switch (bitDepth) { + case 1: + ConvertFromTiles1Bpp(buffer, image->pixels, numTiles, metatilesWide, metatileWidth, metatileHeight, invertColors); + break; + case 4: + ConvertFromTiles4Bpp(buffer, image->pixels, numTiles, metatilesWide, metatileWidth, metatileHeight, invertColors); + break; + case 8: + ConvertFromTiles8Bpp(buffer, image->pixels, numTiles, metatilesWide, metatileWidth, metatileHeight, invertColors); + break; + } + + free(buffer); +} + +void WriteImage(char *path, int numTiles, int bitDepth, int metatileWidth, int metatileHeight, struct Image *image, bool invertColors) +{ + int tileSize = bitDepth * 8; + + if (image->width % 8 != 0) + FATAL_ERROR("The width in pixels (%d) isn't a multiple of 8.\n", image->width); + + if (image->height % 8 != 0) + FATAL_ERROR("The height in pixels (%d) isn't a multiple of 8.\n", image->height); + + int tilesWidth = image->width / 8; + int tilesHeight = image->height / 8; + + if (tilesWidth % metatileWidth != 0) + FATAL_ERROR("The width in tiles (%d) isn't a multiple of the specified metatile width (%d)", tilesWidth, metatileWidth); + + if (tilesHeight % metatileHeight != 0) + FATAL_ERROR("The height in tiles (%d) isn't a multiple of the specified metatile height (%d)", tilesHeight, metatileHeight); + + int maxNumTiles = tilesWidth * tilesHeight; + + if (numTiles == 0) + numTiles = maxNumTiles; + else if (numTiles > maxNumTiles) + FATAL_ERROR("The specified number of tiles (%d) is greater than the maximum possible value (%d).\n", numTiles, maxNumTiles); + + int bufferSize = numTiles * tileSize; + unsigned char *buffer = malloc(bufferSize); + + if (buffer == NULL) + FATAL_ERROR("Failed to allocate memory for pixels.\n"); + + int metatilesWide = tilesWidth / metatileWidth; + + switch (bitDepth) { + case 1: + ConvertToTiles1Bpp(image->pixels, buffer, numTiles, metatilesWide, metatileWidth, metatileHeight, invertColors); + break; + case 4: + ConvertToTiles4Bpp(image->pixels, buffer, numTiles, metatilesWide, metatileWidth, metatileHeight, invertColors); + break; + case 8: + ConvertToTiles8Bpp(image->pixels, buffer, numTiles, metatilesWide, metatileWidth, metatileHeight, invertColors); + break; + } + + WriteWholeFile(path, buffer, bufferSize); + + free(buffer); +} + +void FreeImage(struct Image *image) +{ + free(image->pixels); + image->pixels = NULL; +} + +void ReadGbaPalette(char *path, struct Palette *palette) +{ + int fileSize; + unsigned char *data = ReadWholeFile(path, &fileSize); + + if (fileSize % 2 != 0) + FATAL_ERROR("The file size (%d) is not a multiple of 2.\n", fileSize); + + palette->numColors = fileSize / 2; + + for (int i = 0; i < palette->numColors; i++) { + uint16_t paletteEntry = (data[i * 2 + 1] << 8) | data[i * 2]; + palette->colors[i].red = UPCONVERT_BIT_DEPTH(GET_GBA_PAL_RED(paletteEntry)); + palette->colors[i].green = UPCONVERT_BIT_DEPTH(GET_GBA_PAL_GREEN(paletteEntry)); + palette->colors[i].blue = UPCONVERT_BIT_DEPTH(GET_GBA_PAL_BLUE(paletteEntry)); + } + + free(data); +} + +void WriteGbaPalette(char *path, struct Palette *palette) +{ + FILE *fp = fopen(path, "wb"); + + if (fp == NULL) + FATAL_ERROR("Failed to open \"%s\" for writing.\n", path); + + for (int i = 0; i < palette->numColors; i++) { + unsigned char red = DOWNCONVERT_BIT_DEPTH(palette->colors[i].red); + unsigned char green = DOWNCONVERT_BIT_DEPTH(palette->colors[i].green); + unsigned char blue = DOWNCONVERT_BIT_DEPTH(palette->colors[i].blue); + + uint16_t paletteEntry = SET_GBA_PAL(red, green, blue); + + fputc(paletteEntry & 0xFF, fp); + fputc(paletteEntry >> 8, fp); + } + + fclose(fp); +} diff --git a/tools/gbagfx/gfx.h b/tools/gbagfx/gfx.h new file mode 100644 index 00000000..5355ced8 --- /dev/null +++ b/tools/gbagfx/gfx.h @@ -0,0 +1,36 @@ +// Copyright (c) 2015 YamaArashi + +#ifndef GFX_H +#define GFX_H + +#include <stdint.h> +#include <stdbool.h> + +struct Color { + unsigned char red; + unsigned char green; + unsigned char blue; +}; + +struct Palette { + struct Color colors[256]; + int numColors; +}; + +struct Image { + int width; + int height; + int bitDepth; + unsigned char *pixels; + bool hasPalette; + struct Palette palette; + bool hasTransparency; +}; + +void ReadImage(char *path, int tilesWidth, int bitDepth, int metatileWidth, int metatileHeight, struct Image *image, bool invertColors); +void WriteImage(char *path, int numTiles, int bitDepth, int metatileWidth, int metatileHeight, struct Image *image, bool invertColors); +void FreeImage(struct Image *image); +void ReadGbaPalette(char *path, struct Palette *palette); +void WriteGbaPalette(char *path, struct Palette *palette); + +#endif // GFX_H diff --git a/tools/gbagfx/global.h b/tools/gbagfx/global.h new file mode 100644 index 00000000..65dd351d --- /dev/null +++ b/tools/gbagfx/global.h @@ -0,0 +1,31 @@ +// Copyright (c) 2015 YamaArashi + +#ifndef GLOBAL_H +#define GLOBAL_H + +#include <stdio.h> +#include <stdlib.h> + +#ifdef _MSC_VER + +#define FATAL_ERROR(format, ...) \ +do { \ + fprintf(stderr, format, __VA_ARGS__); \ + exit(1); \ +} while (0) + +#define UNUSED + +#else + +#define FATAL_ERROR(format, ...) \ +do { \ + fprintf(stderr, format, ##__VA_ARGS__); \ + exit(1); \ +} while (0) + +#define UNUSED __attribute__((__unused__)) + +#endif // _MSC_VER + +#endif // GLOBAL_H diff --git a/tools/gbagfx/huff.c b/tools/gbagfx/huff.c new file mode 100644 index 00000000..143ed79b --- /dev/null +++ b/tools/gbagfx/huff.c @@ -0,0 +1,398 @@ +#include <stdbool.h> +#include <string.h> +#include <assert.h> +#include <stdio.h> +#include <stdint.h> +#include "global.h" +#include "huff.h" + +static int cmp_tree(const void * a0, const void * b0) { + return ((struct HuffData *)a0)->value - ((struct HuffData *)b0)->value; +} + +typedef int (*cmpfun)(const void *, const void *); + +int msort_r(void * data, size_t count, size_t size, cmpfun cmp, void * buffer) { + /* + * Out-of-place mergesort (stable sort) + * Returns 1 on success, 0 on failure + */ + void * leftPtr; + void * rightPtr; + void * leftEnd; + void * rightEnd; + int i; + + switch (count) { + case 0: + // Should never be here + return 0; + + case 1: + // Nothing to do here + break; + + case 2: + // Swap the two entries if the right one compares higher. + if (cmp(data, data + size) > 0) { + memcpy(buffer, data, size); + memcpy(data, data + size, size); + memcpy(data + size, buffer, size); + } + break; + default: + // Merge sort out-of-place. + leftPtr = data; + leftEnd = rightPtr = data + count / 2 * size; + rightEnd = data + count * size; + + // Sort the left half + if (!msort_r(leftPtr, count / 2, size, cmp, buffer)) + return 0; + + // Sort the right half + if (!msort_r(rightPtr, count / 2 + (count & 1), size, cmp, buffer)) + return 0; + + // Merge the sorted halves out of place + i = 0; + do { + if (cmp(leftPtr, rightPtr) <= 0) { + memcpy(buffer + i * size, leftPtr, size); + leftPtr += size; + } else { + memcpy(buffer + i * size, rightPtr, size); + rightPtr += size; + } + + } while (++i < count && leftPtr < leftEnd && rightPtr < rightEnd); + + // Copy the remainder + if (i < count) { + if (leftPtr < leftEnd) { + memcpy(buffer + i * size, leftPtr, leftEnd - leftPtr); + } + else { + memcpy(buffer + i * size, rightPtr, rightEnd - rightPtr); + } + } + + // Copy the merged data back + memcpy(data, buffer, count * size); + break; + } + + return 1; +} + +int msort(void * data, size_t count, size_t size, cmpfun cmp) { + void * buffer = malloc(count * size); + if (buffer == NULL) return 0; + int result = msort_r(data, count, size, cmp, buffer); + free(buffer); + return result; +} + +static void write_tree(unsigned char * dest, HuffNode_t * tree, int nitems, struct BitEncoding * encoding) { + /* + * The example used to guide this function encodes the tree in a + * breadth-first manner. We attempt to emulate that here. + */ + + int i, j, k; + + // There are (2 * nitems - 1) nodes in the binary tree. Allocate that. + HuffNode_t * traversal = calloc(2 * nitems - 1, sizeof(HuffNode_t)); + if (traversal == NULL) + FATAL_ERROR("Fatal error while compressing Huff file.\n"); + + // The first node is the root of the tree. + traversal[0] = *tree; + i = 1; + + // Copy the tree into a breadth-first ordering using brute force. + for (int depth = 1; i < 2 * nitems - 1; depth++) { + // Consider every possible path up to the current depth. + for (j = 0; i < 2 * nitems - 1 && j < 1 << depth; j++) { + // The index of the path is used to encode the path itself. + // Start from the most significant relevant bit and work our way down. + // Keep track of the current and previous nodes. + HuffNode_t * currNode = traversal; + HuffNode_t * parent = NULL; + for (k = 0; k < depth; k++) { + if (currNode->header.isLeaf) + break; + parent = currNode; + if ((j >> (depth - k - 1)) & 1) + currNode = currNode->branch.right; + else + currNode = currNode->branch.left; + } + // Check that the length of the current path equals the current depth. + if (k == depth) { + // Make sure we can encode the current branch. + // Bail here if we cannot. + // This is only applicable for 8-bit encodings. + if (traversal + i - parent > 128) + FATAL_ERROR("Fatal error while compressing Huff file: unable to encode binary tree.\n"); + // Copy the current node, and update its parent. + traversal[i] = *currNode; + if (parent != NULL) { + if ((j & 1) == 1) + parent->branch.right = traversal + i; + else + parent->branch.left = traversal + i; + } + // Encode the path through the tree in the lookup table + if (traversal[i].header.isLeaf) { + encoding[traversal[i].leaf.key].nbits = depth; + encoding[traversal[i].leaf.key].bitstring = j; + } + i++; + } + } + } + + // Encode the size of the tree. + // This is used by the decompressor to skip the tree. + dest[4] = nitems - 1; + + // Encode each node in the tree. + for (i = 0; i < 2 * nitems - 1; i++) { + HuffNode_t * currNode = traversal + i; + if (currNode->header.isLeaf) { + dest[5 + i] = traversal[i].leaf.key; + } else { + dest[5 + i] = (((currNode->branch.right - traversal - i) / 2) - 1); + if (currNode->branch.left->header.isLeaf) + dest[5 + i] |= 0x80; + if (currNode->branch.right->header.isLeaf) + dest[5 + i] |= 0x40; + } + } + + free(traversal); +} + +static inline void write_32_le(unsigned char * dest, int * destPos, uint32_t * buff, int * buffPos) { + dest[*destPos] = *buff; + dest[*destPos + 1] = *buff >> 8; + dest[*destPos + 2] = *buff >> 16; + dest[*destPos + 3] = *buff >> 24; + *destPos += 4; + *buff = 0; + *buffPos = 0; +} + +static inline void read_32_le(unsigned char * src, int * srcPos, uint32_t * buff) { + uint32_t tmp = src[*srcPos]; + tmp |= src[*srcPos + 1] << 8; + tmp |= src[*srcPos + 2] << 16; + tmp |= src[*srcPos + 3] << 24; + *srcPos += 4; + *buff = tmp; +} + +static void write_bits(unsigned char * dest, int * destPos, struct BitEncoding * encoding, int value, uint32_t * buff, int * buffBits) { + int nbits = encoding[value].nbits; + uint32_t bitstring = encoding[value].bitstring; + + if (*buffBits + nbits >= 32) { + int diff = *buffBits + nbits - 32; + *buff <<= nbits - diff; + *buff |= bitstring >> diff; + bitstring &= ~(1 << diff); + nbits = diff; + write_32_le(dest, destPos, buff, buffBits); + } + if (nbits != 0) { + *buff <<= nbits; + *buff |= bitstring; + *buffBits += nbits; + } +} + +/* +======================================= +MAIN COMPRESSION/DECOMPRESSION ROUTINES +======================================= + */ + +unsigned char * HuffCompress(unsigned char * src, int srcSize, int * compressedSize_p, int bitDepth) { + if (srcSize <= 0) + goto fail; + + int worstCaseDestSize = 4 + (2 << bitDepth) + srcSize * 3; + + unsigned char *dest = malloc(worstCaseDestSize); + if (dest == NULL) + goto fail; + + int nitems = 1 << bitDepth; + + HuffNode_t * freqs = calloc(nitems, sizeof(HuffNode_t)); + if (freqs == NULL) + goto fail; + + struct BitEncoding * encoding = calloc(nitems, sizeof(struct BitEncoding)); + if (encoding == NULL) + goto fail; + + // Set up the frequencies table. This will inform the tree. + for (int i = 0; i < nitems; i++) { + freqs[i].header.isLeaf = 1; + freqs[i].header.value = 0; + freqs[i].leaf.key = i; + } + + // Count each nybble or byte. + for (int i = 0; i < srcSize; i++) { + if (bitDepth == 8) { + freqs[src[i]].header.value++; + } else { + freqs[src[i] >> 4].header.value++; + freqs[src[i] & 0xF].header.value++; + } + } + +#ifdef DEBUG + for (int i = 0; i < nitems; i++) { + fprintf(stderr, "%d: %d\n", i, freqs[i].header.value); + } +#endif // DEBUG + + // Sort the frequency table. + if (!msort(freqs, nitems, sizeof(HuffNode_t), cmp_tree)) + goto fail; + + // Prune zero-frequency values. + for (int i = 0; i < nitems; i++) { + if (freqs[i].header.value != 0) { + if (i > 0) { + for (int j = i; j < nitems; j++) { + freqs[j - i] = freqs[j]; + } + nitems -= i; + } + break; + } + // This should never happen: + if (i == nitems - 1) + goto fail; + } + + HuffNode_t * tree = calloc(nitems * 2 - 1, sizeof(HuffNode_t)); + if (tree == NULL) + goto fail; + + // Iteratively collapse the two least frequent nodes. + HuffNode_t * endptr = freqs + nitems - 2; + + for (int i = 0; i < nitems - 1; i++) { + HuffNode_t * left = freqs; + HuffNode_t * right = freqs + 1; + tree[i * 2] = *right; + tree[i * 2 + 1] = *left; + for (int j = 0; j < nitems - i - 2; j++) + freqs[j] = freqs[j + 2]; + endptr->header.isLeaf = 0; + endptr->header.value = tree[i * 2].header.value + tree[i * 2 + 1].header.value; + endptr->branch.left = tree + i * 2; + endptr->branch.right = tree + i * 2 + 1; + endptr--; + if (i < nitems - 2 && !msort(freqs, nitems - i - 1, sizeof(HuffNode_t), cmp_tree)) + goto fail; + } + + // Write the tree breadth-first, and create the path lookup table. + write_tree(dest, freqs, nitems, encoding); + + free(tree); + free(freqs); + + // Encode the data itself. + int destPos = 4 + nitems * 2; + uint32_t destBuf = 0; + uint32_t srcBuf = 0; + int destBitPos = 0; + + for (int srcPos = 0; srcPos < srcSize;) { + read_32_le(src, &srcPos, &srcBuf); + for (int i = 0; i < 32 / bitDepth; i++) { + write_bits(dest, &destPos, encoding, srcBuf & (0xFF >> (8 - bitDepth)), &destBuf, &destBitPos); + srcBuf >>= bitDepth; + } + } + + if (destBitPos != 0) { + write_32_le(dest, &destPos, &destBuf, &destBitPos); + } + + free(encoding); + + // Write the header. + dest[0] = bitDepth | 0x20; + dest[1] = srcSize; + dest[2] = srcSize >> 8; + dest[3] = srcSize >> 16; + *compressedSize_p = (destPos + 3) & ~3; + return dest; + +fail: + FATAL_ERROR("Fatal error while compressing Huff file.\n"); +} + +unsigned char * HuffDecompress(unsigned char * src, int srcSize, int * uncompressedSize_p) { + if (srcSize < 4) + goto fail; + + int bitDepth = *src & 15; + if (bitDepth != 4 && bitDepth != 8) + goto fail; + + int destSize = (src[3] << 16) | (src[2] << 8) | src[1]; + + unsigned char *dest = malloc(destSize); + + if (dest == NULL) + goto fail; + + int treePos = 5; + int treeSize = (src[4] + 1) * 2; + int srcPos = 4 + treeSize; + int destPos = 0; + int curValPos = 0; + uint32_t destTmp = 0; + uint32_t window; + + for (;;) + { + if (srcPos >= srcSize) + goto fail; + read_32_le(src, &srcPos, &window); + for (int i = 0; i < 32; i++) { + int curBit = (window >> 31) & 1; + unsigned char treeView = src[treePos]; + bool isLeaf = ((treeView << curBit) & 0x80) != 0; + treePos &= ~1; // align + treePos += ((treeView & 0x3F) + 1) * 2 + curBit; + if (isLeaf) { + destTmp >>= bitDepth; + destTmp |= (src[treePos] << (32 - bitDepth)); + curValPos++; + if (curValPos == 32 / bitDepth) { + write_32_le(dest, &destPos, &destTmp, &curValPos); + if (destPos == destSize) { + *uncompressedSize_p = destSize; + return dest; + } + } + treePos = 5; + } + window <<= 1; + } + } + +fail: + FATAL_ERROR("Fatal error while decompressing Huff file.\n"); +} diff --git a/tools/gbagfx/huff.h b/tools/gbagfx/huff.h new file mode 100644 index 00000000..6002fe95 --- /dev/null +++ b/tools/gbagfx/huff.h @@ -0,0 +1,38 @@ +#ifndef HUFF_H +#define HUFF_H + +union HuffNode; + +struct HuffData { + unsigned value:31; + unsigned isLeaf:1; +}; + +struct HuffLeaf { + struct HuffData header; + unsigned char key; +}; + +struct HuffBranch { + struct HuffData header; + union HuffNode * left; + union HuffNode * right; +}; + +union HuffNode { + struct HuffData header; + struct HuffLeaf leaf; + struct HuffBranch branch; +}; + +typedef union HuffNode HuffNode_t; + +struct BitEncoding { + unsigned long long nbits:6; + unsigned long long bitstring:58; +}; + +unsigned char * HuffCompress(unsigned char * buffer, int srcSize, int * compressedSize_p, int bitDepth); +unsigned char * HuffDecompress(unsigned char * buffer, int srcSize, int * uncompressedSize_p); + +#endif //HUFF_H diff --git a/tools/gbagfx/jasc_pal.c b/tools/gbagfx/jasc_pal.c new file mode 100644 index 00000000..e5ba9c3c --- /dev/null +++ b/tools/gbagfx/jasc_pal.c @@ -0,0 +1,172 @@ +// Copyright (c) 2015 YamaArashi + +#include <stdio.h> +#include <string.h> +#include "global.h" +#include "gfx.h" +#include "util.h" + +// Read/write Paint Shop Pro palette files. + +// Format of a Paint Shop Pro palette file, line by line: +// "JASC-PAL\r\n" (signature) +// "0100\r\n" (version; seems to always be "0100") +// "<NUMBER_OF_COLORS>\r\n" (number of colors in decimal) +// +// <NUMBER_OF_COLORS> times: +// "<RED> <GREEN> <BLUE>\r\n" (color entry) +// +// Each color component is a decimal number from 0 to 255. +// Examples: +// Black - "0 0 0\r\n" +// Blue - "0 0 255\r\n" +// Brown - "150 75 0\r\n" + +#define MAX_LINE_LENGTH 11 + +void ReadJascPaletteLine(FILE *fp, char *line) +{ + int c; + int length = 0; + + for (;;) + { + c = fgetc(fp); + + if (c == '\r') + { + c = fgetc(fp); + + if (c != '\n') + FATAL_ERROR("CR line endings aren't supported.\n"); + + line[length] = 0; + + return; + } + + if (c == '\n') + FATAL_ERROR("LF line endings aren't supported.\n"); + + if (c == EOF) + FATAL_ERROR("Unexpected EOF. No CRLF at end of file.\n"); + + if (c == 0) + FATAL_ERROR("NUL character in file.\n"); + + if (length == MAX_LINE_LENGTH) + { + line[length] = 0; + FATAL_ERROR("The line \"%s\" is too long.\n", line); + } + + line[length++] = c; + } +} + +void ReadJascPalette(char *path, struct Palette *palette) +{ + char line[MAX_LINE_LENGTH + 1]; + + FILE *fp = fopen(path, "rb"); + + if (fp == NULL) + FATAL_ERROR("Failed to open JASC-PAL file \"%s\" for reading.\n", path); + + ReadJascPaletteLine(fp, line); + + if (strcmp(line, "JASC-PAL") != 0) + FATAL_ERROR("Invalid JASC-PAL signature.\n"); + + ReadJascPaletteLine(fp, line); + + if (strcmp(line, "0100") != 0) + FATAL_ERROR("Unsuported JASC-PAL version.\n"); + + ReadJascPaletteLine(fp, line); + + if (!ParseNumber(line, NULL, 10, &palette->numColors)) + FATAL_ERROR("Failed to parse number of colors.\n"); + + if (palette->numColors < 1 || palette->numColors > 256) + FATAL_ERROR("%d is an invalid number of colors. The number of colors must be in the range [1, 256].\n", palette->numColors); + + for (int i = 0; i < palette->numColors; i++) + { + ReadJascPaletteLine(fp, line); + + char *s = line; + char *end; + + int red; + int green; + int blue; + + if (!ParseNumber(s, &end, 10, &red)) + FATAL_ERROR("Failed to parse red color component.\n"); + + s = end; + + if (*s != ' ') + FATAL_ERROR("Expected a space after red color component.\n"); + + s++; + + if (*s < '0' || *s > '9') + FATAL_ERROR("Expected only a space between red and green color components.\n"); + + if (!ParseNumber(s, &end, 10, &green)) + FATAL_ERROR("Failed to parse green color component.\n"); + + s = end; + + if (*s != ' ') + FATAL_ERROR("Expected a space after green color component.\n"); + + s++; + + if (*s < '0' || *s > '9') + FATAL_ERROR("Expected only a space between green and blue color components.\n"); + + if (!ParseNumber(s, &end, 10, &blue)) + FATAL_ERROR("Failed to parse blue color component.\n"); + + if (*end != 0) + FATAL_ERROR("Garbage after blue color component.\n"); + + if (red < 0 || red > 255) + FATAL_ERROR("Red color component (%d) is outside the range [0, 255].\n", red); + + if (green < 0 || green > 255) + FATAL_ERROR("Green color component (%d) is outside the range [0, 255].\n", green); + + if (blue < 0 || blue > 255) + FATAL_ERROR("Blue color component (%d) is outside the range [0, 255].\n", blue); + + palette->colors[i].red = red; + palette->colors[i].green = green; + palette->colors[i].blue = blue; + } + + if (fgetc(fp) != EOF) + FATAL_ERROR("Garbage after color data.\n"); + + fclose(fp); +} + +void WriteJascPalette(char *path, struct Palette *palette) +{ + FILE *fp = fopen(path, "wb"); + + fputs("JASC-PAL\r\n", fp); + fputs("0100\r\n", fp); + fprintf(fp, "%d\r\n", palette->numColors); + + for (int i = 0; i < palette->numColors; i++) + { + struct Color *color = &palette->colors[i]; + fprintf(fp, "%d %d %d\r\n", color->red, color->green, color->blue); + } + + fclose(fp); +} diff --git a/tools/gbagfx/jasc_pal.h b/tools/gbagfx/jasc_pal.h new file mode 100644 index 00000000..b60b31fc --- /dev/null +++ b/tools/gbagfx/jasc_pal.h @@ -0,0 +1,9 @@ +// Copyright (c) 2015 YamaArashi + +#ifndef JASC_PAL_H +#define JASC_PAL_H + +void ReadJascPalette(char *path, struct Palette *palette); +void WriteJascPalette(char *path, struct Palette *palette); + +#endif // JASC_PAL_H diff --git a/tools/gbagfx/lz.c b/tools/gbagfx/lz.c new file mode 100644 index 00000000..97434ce5 --- /dev/null +++ b/tools/gbagfx/lz.c @@ -0,0 +1,153 @@ +// Copyright (c) 2015 YamaArashi + +#include <stdlib.h> +#include <stdbool.h> +#include "global.h" +#include "lz.h" + +unsigned char *LZDecompress(unsigned char *src, int srcSize, int *uncompressedSize) +{ + if (srcSize < 4) + goto fail; + + int destSize = (src[3] << 16) | (src[2] << 8) | src[1]; + + unsigned char *dest = malloc(destSize); + + if (dest == NULL) + goto fail; + + int srcPos = 4; + int destPos = 0; + + for (;;) { + if (srcPos >= srcSize) + goto fail; + + unsigned char flags = src[srcPos++]; + + for (int i = 0; i < 8; i++) { + if (flags & 0x80) { + if (srcPos + 1 >= srcSize) + goto fail; + + int blockSize = (src[srcPos] >> 4) + 3; + int blockDistance = (((src[srcPos] & 0xF) << 8) | src[srcPos + 1]) + 1; + + srcPos += 2; + + int blockPos = destPos - blockDistance; + + // Some Ruby/Sapphire tilesets overflow. + if (destPos + blockSize > destSize) { + blockSize = destSize - destPos; + fprintf(stderr, "Destination buffer overflow.\n"); + } + + if (blockPos < 0) + goto fail; + + for (int j = 0; j < blockSize; j++) + dest[destPos++] = dest[blockPos + j]; + } else { + if (srcPos >= srcSize || destPos >= destSize) + goto fail; + + dest[destPos++] = src[srcPos++]; + } + + if (destPos == destSize) { + *uncompressedSize = destSize; + return dest; + } + + flags <<= 1; + } + } + +fail: + FATAL_ERROR("Fatal error while decompressing LZ file.\n"); +} + +unsigned char *LZCompress(unsigned char *src, int srcSize, int *compressedSize, const int minDistance) +{ + if (srcSize <= 0) + goto fail; + + int worstCaseDestSize = 4 + srcSize + ((srcSize + 7) / 8); + + // Round up to the next multiple of four. + worstCaseDestSize = (worstCaseDestSize + 3) & ~3; + + unsigned char *dest = malloc(worstCaseDestSize); + + if (dest == NULL) + goto fail; + + // header + dest[0] = 0x10; // LZ compression type + dest[1] = (unsigned char)srcSize; + dest[2] = (unsigned char)(srcSize >> 8); + dest[3] = (unsigned char)(srcSize >> 16); + + int srcPos = 0; + int destPos = 4; + + for (;;) { + unsigned char *flags = &dest[destPos++]; + *flags = 0; + + for (int i = 0; i < 8; i++) { + int bestBlockDistance = 0; + int bestBlockSize = 0; + int blockDistance = minDistance; + + while (blockDistance <= srcPos && blockDistance <= 0x1000) { + int blockStart = srcPos - blockDistance; + int blockSize = 0; + + while (blockSize < 18 + && srcPos + blockSize < srcSize + && src[blockStart + blockSize] == src[srcPos + blockSize]) + blockSize++; + + if (blockSize > bestBlockSize) { + bestBlockDistance = blockDistance; + bestBlockSize = blockSize; + + if (blockSize == 18) + break; + } + + blockDistance++; + } + + if (bestBlockSize >= 3) { + *flags |= (0x80 >> i); + srcPos += bestBlockSize; + bestBlockSize -= 3; + bestBlockDistance--; + dest[destPos++] = (bestBlockSize << 4) | ((unsigned int)bestBlockDistance >> 8); + dest[destPos++] = (unsigned char)bestBlockDistance; + } else { + dest[destPos++] = src[srcPos++]; + } + + if (srcPos == srcSize) { + // Pad to multiple of 4 bytes. + int remainder = destPos % 4; + + if (remainder != 0) { + for (int i = 0; i < 4 - remainder; i++) + dest[destPos++] = 0; + } + + *compressedSize = destPos; + return dest; + } + } + } + +fail: + FATAL_ERROR("Fatal error while compressing LZ file.\n"); +} diff --git a/tools/gbagfx/lz.h b/tools/gbagfx/lz.h new file mode 100644 index 00000000..90f56b64 --- /dev/null +++ b/tools/gbagfx/lz.h @@ -0,0 +1,9 @@ +// Copyright (c) 2015 YamaArashi + +#ifndef LZ_H +#define LZ_H + +unsigned char *LZDecompress(unsigned char *src, int srcSize, int *uncompressedSize); +unsigned char *LZCompress(unsigned char *src, int srcSize, int *compressedSize, const int minDistance); + +#endif // LZ_H diff --git a/tools/gbagfx/main.c b/tools/gbagfx/main.c new file mode 100644 index 00000000..aa0681fb --- /dev/null +++ b/tools/gbagfx/main.c @@ -0,0 +1,537 @@ +// Copyright (c) 2015 YamaArashi + +#include <stdio.h> +#include <string.h> +#include <stdbool.h> +#include "global.h" +#include "util.h" +#include "options.h" +#include "gfx.h" +#include "convert_png.h" +#include "jasc_pal.h" +#include "lz.h" +#include "rl.h" +#include "font.h" +#include "huff.h" + +struct CommandHandler +{ + const char *inputFileExtension; + const char *outputFileExtension; + void(*function)(char *inputPath, char *outputPath, int argc, char **argv); +}; + +void ConvertGbaToPng(char *inputPath, char *outputPath, struct GbaToPngOptions *options) +{ + struct Image image; + + if (options->paletteFilePath != NULL) + { + ReadGbaPalette(options->paletteFilePath, &image.palette); + image.hasPalette = true; + } + else + { + image.hasPalette = false; + } + + ReadImage(inputPath, options->width, options->bitDepth, options->metatileWidth, options->metatileHeight, &image, !image.hasPalette); + + image.hasTransparency = options->hasTransparency; + + WritePng(outputPath, &image); + + FreeImage(&image); +} + +void ConvertPngToGba(char *inputPath, char *outputPath, struct PngToGbaOptions *options) +{ + struct Image image; + + image.bitDepth = options->bitDepth; + + ReadPng(inputPath, &image); + + WriteImage(outputPath, options->numTiles, options->bitDepth, options->metatileWidth, options->metatileHeight, &image, !image.hasPalette); + + FreeImage(&image); +} + +void HandleGbaToPngCommand(char *inputPath, char *outputPath, int argc, char **argv) +{ + char *inputFileExtension = GetFileExtension(inputPath); + struct GbaToPngOptions options; + options.paletteFilePath = NULL; + options.bitDepth = inputFileExtension[0] - '0'; + options.hasTransparency = false; + options.width = 1; + options.metatileWidth = 1; + options.metatileHeight = 1; + + for (int i = 3; i < argc; i++) + { + char *option = argv[i]; + + if (strcmp(option, "-palette") == 0) + { + if (i + 1 >= argc) + FATAL_ERROR("No palette file path following \"-palette\".\n"); + + i++; + + options.paletteFilePath = argv[i]; + } + else if (strcmp(option, "-object") == 0) + { + options.hasTransparency = true; + } + else if (strcmp(option, "-width") == 0) + { + if (i + 1 >= argc) + FATAL_ERROR("No width following \"-width\".\n"); + + i++; + + if (!ParseNumber(argv[i], NULL, 10, &options.width)) + FATAL_ERROR("Failed to parse width.\n"); + + if (options.width < 1) + FATAL_ERROR("Width must be positive.\n"); + } + else if (strcmp(option, "-mwidth") == 0) + { + if (i + 1 >= argc) + FATAL_ERROR("No metatile width value following \"-mwidth\".\n"); + + i++; + + if (!ParseNumber(argv[i], NULL, 10, &options.metatileWidth)) + FATAL_ERROR("Failed to parse metatile width.\n"); + + if (options.metatileWidth < 1) + FATAL_ERROR("metatile width must be positive.\n"); + } + else if (strcmp(option, "-mheight") == 0) + { + if (i + 1 >= argc) + FATAL_ERROR("No metatile height value following \"-mheight\".\n"); + + i++; + + if (!ParseNumber(argv[i], NULL, 10, &options.metatileHeight)) + FATAL_ERROR("Failed to parse metatile height.\n"); + + if (options.metatileHeight < 1) + FATAL_ERROR("metatile height must be positive.\n"); + } + else + { + FATAL_ERROR("Unrecognized option \"%s\".\n", option); + } + } + + if (options.metatileWidth > options.width) + options.width = options.metatileWidth; + + ConvertGbaToPng(inputPath, outputPath, &options); +} + +void HandlePngToGbaCommand(char *inputPath, char *outputPath, int argc, char **argv) +{ + char *outputFileExtension = GetFileExtension(outputPath); + int bitDepth = outputFileExtension[0] - '0'; + struct PngToGbaOptions options; + options.numTiles = 0; + options.bitDepth = bitDepth; + options.metatileWidth = 1; + options.metatileHeight = 1; + + for (int i = 3; i < argc; i++) + { + char *option = argv[i]; + + if (strcmp(option, "-num_tiles") == 0) + { + if (i + 1 >= argc) + FATAL_ERROR("No number of tiles following \"-num_tiles\".\n"); + + i++; + + if (!ParseNumber(argv[i], NULL, 10, &options.numTiles)) + FATAL_ERROR("Failed to parse number of tiles.\n"); + + if (options.numTiles < 1) + FATAL_ERROR("Number of tiles must be positive.\n"); + } + else if (strcmp(option, "-mwidth") == 0) + { + if (i + 1 >= argc) + FATAL_ERROR("No metatile width value following \"-mwidth\".\n"); + + i++; + + if (!ParseNumber(argv[i], NULL, 10, &options.metatileWidth)) + FATAL_ERROR("Failed to parse metatile width.\n"); + + if (options.metatileWidth < 1) + FATAL_ERROR("metatile width must be positive.\n"); + } + else if (strcmp(option, "-mheight") == 0) + { + if (i + 1 >= argc) + FATAL_ERROR("No metatile height value following \"-mheight\".\n"); + + i++; + + if (!ParseNumber(argv[i], NULL, 10, &options.metatileHeight)) + FATAL_ERROR("Failed to parse metatile height.\n"); + + if (options.metatileHeight < 1) + FATAL_ERROR("metatile height must be positive.\n"); + } + else + { + FATAL_ERROR("Unrecognized option \"%s\".\n", option); + } + } + + ConvertPngToGba(inputPath, outputPath, &options); +} + +void HandlePngToGbaPaletteCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED) +{ + struct Palette palette; + + ReadPngPalette(inputPath, &palette); + WriteGbaPalette(outputPath, &palette); +} + +void HandleGbaToJascPaletteCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED) +{ + struct Palette palette; + + ReadGbaPalette(inputPath, &palette); + WriteJascPalette(outputPath, &palette); +} + +void HandleJascToGbaPaletteCommand(char *inputPath, char *outputPath, int argc, char **argv) +{ + int numColors = 0; + + for (int i = 3; i < argc; i++) + { + char *option = argv[i]; + + if (strcmp(option, "-num_colors") == 0) + { + if (i + 1 >= argc) + FATAL_ERROR("No number of colors following \"-num_colors\".\n"); + + i++; + + if (!ParseNumber(argv[i], NULL, 10, &numColors)) + FATAL_ERROR("Failed to parse number of colors.\n"); + + if (numColors < 1) + FATAL_ERROR("Number of colors must be positive.\n"); + } + else + { + FATAL_ERROR("Unrecognized option \"%s\".\n", option); + } + } + + struct Palette palette; + + ReadJascPalette(inputPath, &palette); + + if (numColors != 0) + palette.numColors = numColors; + + WriteGbaPalette(outputPath, &palette); +} + +void HandleLatinFontToPngCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED) +{ + struct Image image; + + ReadLatinFont(inputPath, &image); + WritePng(outputPath, &image); + + FreeImage(&image); +} + +void HandlePngToLatinFontCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED) +{ + struct Image image; + + image.bitDepth = 2; + + ReadPng(inputPath, &image); + WriteLatinFont(outputPath, &image); + + FreeImage(&image); +} + +void HandleHalfwidthJapaneseFontToPngCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED) +{ + struct Image image; + + ReadHalfwidthJapaneseFont(inputPath, &image); + WritePng(outputPath, &image); + + FreeImage(&image); +} + +void HandlePngToHalfwidthJapaneseFontCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED) +{ + struct Image image; + + image.bitDepth = 2; + + ReadPng(inputPath, &image); + WriteHalfwidthJapaneseFont(outputPath, &image); + + FreeImage(&image); +} + +void HandleFullwidthJapaneseFontToPngCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED) +{ + struct Image image; + + ReadFullwidthJapaneseFont(inputPath, &image); + WritePng(outputPath, &image); + + FreeImage(&image); +} + +void HandlePngToFullwidthJapaneseFontCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED) +{ + struct Image image; + + image.bitDepth = 2; + + ReadPng(inputPath, &image); + WriteFullwidthJapaneseFont(outputPath, &image); + + FreeImage(&image); +} + +void HandleLZCompressCommand(char *inputPath, char *outputPath, int argc, char **argv) +{ + int overflowSize = 0; + int minDistance = 2; // default, for compatibility with LZ77UnCompVram() + + for (int i = 3; i < argc; i++) + { + char *option = argv[i]; + + if (strcmp(option, "-overflow") == 0) + { + if (i + 1 >= argc) + FATAL_ERROR("No size following \"-overflow\".\n"); + + i++; + + if (!ParseNumber(argv[i], NULL, 10, &overflowSize)) + FATAL_ERROR("Failed to parse overflow size.\n"); + + if (overflowSize < 1) + FATAL_ERROR("Overflow size must be positive.\n"); + } + else if (strcmp(option, "-search") == 0) + { + if (i + 1 >= argc) + FATAL_ERROR("No size following \"-overflow\".\n"); + + i++; + + if (!ParseNumber(argv[i], NULL, 10, &minDistance)) + FATAL_ERROR("Failed to parse LZ min search distance.\n"); + + if (minDistance < 1) + FATAL_ERROR("LZ min search distance must be positive.\n"); + } + else + { + FATAL_ERROR("Unrecognized option \"%s\".\n", option); + } + } + + // The overflow option allows a quirk in some of Ruby/Sapphire's tilesets + // to be reproduced. It works by appending a number of zeros to the data + // before compressing it and then amending the LZ header's size field to + // reflect the expected size. This will cause an overflow when decompressing + // the data. + + int fileSize; + unsigned char *buffer = ReadWholeFileZeroPadded(inputPath, &fileSize, overflowSize); + + int compressedSize; + unsigned char *compressedData = LZCompress(buffer, fileSize + overflowSize, &compressedSize, minDistance); + + compressedData[1] = (unsigned char)fileSize; + compressedData[2] = (unsigned char)(fileSize >> 8); + compressedData[3] = (unsigned char)(fileSize >> 16); + + free(buffer); + + WriteWholeFile(outputPath, compressedData, compressedSize); + + free(compressedData); +} + +void HandleLZDecompressCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED) +{ + int fileSize; + unsigned char *buffer = ReadWholeFile(inputPath, &fileSize); + + int uncompressedSize; + unsigned char *uncompressedData = LZDecompress(buffer, fileSize, &uncompressedSize); + + free(buffer); + + WriteWholeFile(outputPath, uncompressedData, uncompressedSize); + + free(uncompressedData); +} + +void HandleRLCompressCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED) +{ + int fileSize; + unsigned char *buffer = ReadWholeFile(inputPath, &fileSize); + + int compressedSize; + unsigned char *compressedData = RLCompress(buffer, fileSize, &compressedSize); + + free(buffer); + + WriteWholeFile(outputPath, compressedData, compressedSize); + + free(compressedData); +} + +void HandleRLDecompressCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED) +{ + int fileSize; + unsigned char *buffer = ReadWholeFile(inputPath, &fileSize); + + int uncompressedSize; + unsigned char *uncompressedData = RLDecompress(buffer, fileSize, &uncompressedSize); + + free(buffer); + + WriteWholeFile(outputPath, uncompressedData, uncompressedSize); + + free(uncompressedData); +} + +void HandleHuffCompressCommand(char *inputPath, char *outputPath, int argc, char **argv) +{ + int fileSize; + int bitDepth = 4; + + for (int i = 3; i < argc; i++) + { + char *option = argv[i]; + + if (strcmp(option, "-depth") == 0) + { + if (i + 1 >= argc) + FATAL_ERROR("No size following \"-depth\".\n"); + + i++; + + if (!ParseNumber(argv[i], NULL, 10, &bitDepth)) + FATAL_ERROR("Failed to parse bit depth.\n"); + + if (bitDepth != 4 && bitDepth != 8) + FATAL_ERROR("GBA only supports bit depth of 4 or 8.\n"); + } + else + { + FATAL_ERROR("Unrecognized option \"%s\".\n", option); + } + } + + unsigned char *buffer = ReadWholeFile(inputPath, &fileSize); + + int compressedSize; + unsigned char *compressedData = HuffCompress(buffer, fileSize, &compressedSize, bitDepth); + + free(buffer); + + WriteWholeFile(outputPath, compressedData, compressedSize); + + free(compressedData); +} + +void HandleHuffDecompressCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED) +{ + int fileSize; + unsigned char *buffer = ReadWholeFile(inputPath, &fileSize); + + int uncompressedSize; + unsigned char *uncompressedData = HuffDecompress(buffer, fileSize, &uncompressedSize); + + free(buffer); + + WriteWholeFile(outputPath, uncompressedData, uncompressedSize); + + free(uncompressedData); +} + +int main(int argc, char **argv) +{ + if (argc < 3) + FATAL_ERROR("Usage: gbagfx INPUT_PATH OUTPUT_PATH [options...]\n"); + + struct CommandHandler handlers[] = + { + { "1bpp", "png", HandleGbaToPngCommand }, + { "4bpp", "png", HandleGbaToPngCommand }, + { "8bpp", "png", HandleGbaToPngCommand }, + { "png", "1bpp", HandlePngToGbaCommand }, + { "png", "4bpp", HandlePngToGbaCommand }, + { "png", "8bpp", HandlePngToGbaCommand }, + { "png", "gbapal", HandlePngToGbaPaletteCommand }, + { "gbapal", "pal", HandleGbaToJascPaletteCommand }, + { "pal", "gbapal", HandleJascToGbaPaletteCommand }, + { "latfont", "png", HandleLatinFontToPngCommand }, + { "png", "latfont", HandlePngToLatinFontCommand }, + { "hwjpnfont", "png", HandleHalfwidthJapaneseFontToPngCommand }, + { "png", "hwjpnfont", HandlePngToHalfwidthJapaneseFontCommand }, + { "fwjpnfont", "png", HandleFullwidthJapaneseFontToPngCommand }, + { "png", "fwjpnfont", HandlePngToFullwidthJapaneseFontCommand }, + { NULL, "huff", HandleHuffCompressCommand }, + { NULL, "lz", HandleLZCompressCommand }, + { "huff", NULL, HandleHuffDecompressCommand }, + { "lz", NULL, HandleLZDecompressCommand }, + { NULL, "rl", HandleRLCompressCommand }, + { "rl", NULL, HandleRLDecompressCommand }, + { NULL, NULL, NULL } + }; + + char *inputPath = argv[1]; + char *outputPath = argv[2]; + char *inputFileExtension = GetFileExtension(inputPath); + char *outputFileExtension = GetFileExtension(outputPath); + + if (inputFileExtension == NULL) + FATAL_ERROR("Input file \"%s\" has no extension.\n", inputPath); + + if (outputFileExtension == NULL) + FATAL_ERROR("Output file \"%s\" has no extension.\n", outputPath); + + for (int i = 0; handlers[i].function != NULL; i++) + { + if ((handlers[i].inputFileExtension == NULL || strcmp(handlers[i].inputFileExtension, inputFileExtension) == 0) + && (handlers[i].outputFileExtension == NULL || strcmp(handlers[i].outputFileExtension, outputFileExtension) == 0)) + { + handlers[i].function(inputPath, outputPath, argc, argv); + return 0; + } + } + + FATAL_ERROR("Don't know how to convert \"%s\" to \"%s\".\n", inputPath, outputPath); +} diff --git a/tools/gbagfx/options.h b/tools/gbagfx/options.h new file mode 100644 index 00000000..2ff3967a --- /dev/null +++ b/tools/gbagfx/options.h @@ -0,0 +1,24 @@ +// Copyright (c) 2018 huderlem + +#ifndef OPTIONS_H +#define OPTIONS_H + +#include <stdbool.h> + +struct GbaToPngOptions { + char *paletteFilePath; + int bitDepth; + bool hasTransparency; + int width; + int metatileWidth; + int metatileHeight; +}; + +struct PngToGbaOptions { + int numTiles; + int bitDepth; + int metatileWidth; + int metatileHeight; +}; + +#endif // OPTIONS_H diff --git a/tools/gbagfx/rl.c b/tools/gbagfx/rl.c new file mode 100644 index 00000000..968c9347 --- /dev/null +++ b/tools/gbagfx/rl.c @@ -0,0 +1,149 @@ +// Copyright (c) 2016 YamaArashi + +#include <stdlib.h> +#include <stdbool.h> +#include "global.h" +#include "rl.h" + +unsigned char *RLDecompress(unsigned char *src, int srcSize, int *uncompressedSize) +{ + if (srcSize < 4) + goto fail; + + int destSize = (src[3] << 16) | (src[2] << 8) | src[1]; + + unsigned char *dest = malloc(destSize); + + if (dest == NULL) + goto fail; + + int srcPos = 4; + int destPos = 0; + + for (;;) + { + if (srcPos >= srcSize) + goto fail; + + unsigned char flags = src[srcPos++]; + bool compressed = ((flags & 0x80) != 0); + + if (compressed) + { + int length = (flags & 0x7F) + 3; + unsigned char data = src[srcPos++]; + + if (destPos + length > destSize) + goto fail; + + for (int i = 0; i < length; i++) + dest[destPos++] = data; + } + else + { + int length = (flags & 0x7F) + 1; + + if (destPos + length > destSize) + goto fail; + + for (int i = 0; i < length; i++) + dest[destPos++] = src[srcPos++]; + } + + if (destPos == destSize) + { + *uncompressedSize = destSize; + return dest; + } + } + +fail: + FATAL_ERROR("Fatal error while decompressing RL file.\n"); +} + +unsigned char *RLCompress(unsigned char *src, int srcSize, int *compressedSize) +{ + if (srcSize <= 0) + goto fail; + + int worstCaseDestSize = 4 + srcSize * 2; + + // Round up to the next multiple of four. + worstCaseDestSize = (worstCaseDestSize + 3) & ~3; + + unsigned char *dest = malloc(worstCaseDestSize); + + if (dest == NULL) + goto fail; + + // header + dest[0] = 0x30; // RL compression type + dest[1] = (unsigned char)srcSize; + dest[2] = (unsigned char)(srcSize >> 8); + dest[3] = (unsigned char)(srcSize >> 16); + + int srcPos = 0; + int destPos = 4; + + for (;;) + { + bool compress = false; + int uncompressedStart = srcPos; + int uncompressedLength = 0; + + while (srcPos < srcSize && uncompressedLength < (0x7F + 1)) + { + compress = (srcPos + 2 < srcSize && src[srcPos] == src[srcPos + 1] && src[srcPos] == src[srcPos + 2]); + + if (compress) + break; + + srcPos++; + uncompressedLength++; + } + + if (uncompressedLength > 0) + { + dest[destPos++] = uncompressedLength - 1; + + for (int i = 0; i < uncompressedLength; i++) + dest[destPos++] = src[uncompressedStart + i]; + } + + if (compress) + { + unsigned char data = src[srcPos]; + int compressedLength = 0; + + while (compressedLength < (0x7F + 3) + && srcPos + compressedLength < srcSize + && src[srcPos + compressedLength] == data) + { + compressedLength++; + } + + dest[destPos++] = 0x80 | (compressedLength - 3); + dest[destPos++] = data; + + srcPos += compressedLength; + } + + if (srcPos == srcSize) + { + // Pad to multiple of 4 bytes. + int remainder = destPos % 4; + + if (remainder != 0) + { + for (int i = 0; i < 4 - remainder; i++) + dest[destPos++] = 0; + } + + *compressedSize = destPos; + return dest; + } + } + +fail: + FATAL_ERROR("Fatal error while compressing RL file.\n"); +} diff --git a/tools/gbagfx/rl.h b/tools/gbagfx/rl.h new file mode 100644 index 00000000..02ad8d6d --- /dev/null +++ b/tools/gbagfx/rl.h @@ -0,0 +1,9 @@ +// Copyright (c) 2016 YamaArashi + +#ifndef RL_H +#define RL_H + +unsigned char *RLDecompress(unsigned char *src, int srcSize, int *uncompressedSize); +unsigned char *RLCompress(unsigned char *src, int srcSize, int *compressedSize); + +#endif // RL_H diff --git a/tools/gbagfx/util.c b/tools/gbagfx/util.c new file mode 100644 index 00000000..87abeb31 --- /dev/null +++ b/tools/gbagfx/util.c @@ -0,0 +1,124 @@ +// Copyright (c) 2015 YamaArashi + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <stdbool.h> +#include <errno.h> +#include <limits.h> +#include "global.h" +#include "util.h" + +bool ParseNumber(char *s, char **end, int radix, int *intValue) +{ + char *localEnd; + + if (end == NULL) + end = &localEnd; + + errno = 0; + + const long longValue = strtol(s, end, radix); + + if (*end == s) + return false; // not a number + + if ((longValue == LONG_MIN || longValue == LONG_MAX) && errno == ERANGE) + return false; + + if (longValue > INT_MAX) + return false; + + if (longValue < INT_MIN) + return false; + + *intValue = (int)longValue; + + return true; +} + +char *GetFileExtension(char *path) +{ + char *extension = path; + + while (*extension != 0) + extension++; + + while (extension > path && *extension != '.') + extension--; + + if (extension == path) + return NULL; + + extension++; + + if (*extension == 0) + return NULL; + + return extension; +} + +unsigned char *ReadWholeFile(char *path, int *size) +{ + FILE *fp = fopen(path, "rb"); + + if (fp == NULL) + FATAL_ERROR("Failed to open \"%s\" for reading.\n", path); + + fseek(fp, 0, SEEK_END); + + *size = ftell(fp); + + unsigned char *buffer = malloc(*size); + + if (buffer == NULL) + FATAL_ERROR("Failed to allocate memory for reading \"%s\".\n", path); + + rewind(fp); + + if (fread(buffer, *size, 1, fp) != 1) + FATAL_ERROR("Failed to read \"%s\".\n", path); + + fclose(fp); + + return buffer; +} + +unsigned char *ReadWholeFileZeroPadded(char *path, int *size, int padAmount) +{ + FILE *fp = fopen(path, "rb"); + + if (fp == NULL) + FATAL_ERROR("Failed to open \"%s\" for reading.\n", path); + + fseek(fp, 0, SEEK_END); + + *size = ftell(fp); + + unsigned char *buffer = calloc(*size + padAmount, 1); + + if (buffer == NULL) + FATAL_ERROR("Failed to allocate memory for reading \"%s\".\n", path); + + rewind(fp); + + if (fread(buffer, *size, 1, fp) != 1) + FATAL_ERROR("Failed to read \"%s\".\n", path); + + fclose(fp); + + return buffer; +} + +void WriteWholeFile(char *path, void *buffer, int bufferSize) +{ + FILE *fp = fopen(path, "wb"); + + if (fp == NULL) + FATAL_ERROR("Failed to open \"%s\" for writing.\n", path); + + if (fwrite(buffer, bufferSize, 1, fp) != 1) + FATAL_ERROR("Failed to write to \"%s\".\n", path); + + fclose(fp); +} diff --git a/tools/gbagfx/util.h b/tools/gbagfx/util.h new file mode 100644 index 00000000..6d7a9c21 --- /dev/null +++ b/tools/gbagfx/util.h @@ -0,0 +1,14 @@ +// Copyright (c) 2015 YamaArashi + +#ifndef UTIL_H +#define UTIL_H + +#include <stdbool.h> + +bool ParseNumber(char *s, char **end, int radix, int *intValue); +char *GetFileExtension(char *path); +unsigned char *ReadWholeFile(char *path, int *size); +unsigned char *ReadWholeFileZeroPadded(char *path, int *size, int padAmount); +void WriteWholeFile(char *path, void *buffer, int bufferSize); + +#endif // UTIL_H diff --git a/tools/mid2agb/.gitignore b/tools/mid2agb/.gitignore new file mode 100644 index 00000000..0e7264c8 --- /dev/null +++ b/tools/mid2agb/.gitignore @@ -0,0 +1 @@ +mid2agb diff --git a/tools/mid2agb/LICENSE b/tools/mid2agb/LICENSE new file mode 100644 index 00000000..534d1534 --- /dev/null +++ b/tools/mid2agb/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2016 YamaArashi + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/tools/mid2agb/Makefile b/tools/mid2agb/Makefile new file mode 100644 index 00000000..77f96db5 --- /dev/null +++ b/tools/mid2agb/Makefile @@ -0,0 +1,18 @@ +CXX := g++ + +CXXFLAGS := -std=c++11 -O2 -Wall -Wno-switch -Werror + +SRCS := agb.cpp error.cpp main.cpp midi.cpp tables.cpp + +HEADERS := agb.h error.h main.h midi.h tables.h + +.PHONY: all clean + +all: mid2agb + @: + +mid2agb: $(SRCS) $(HEADERS) + $(CXX) $(CXXFLAGS) $(SRCS) -o $@ $(LDFLAGS) + +clean: + $(RM) mid2agb mid2agb.exe diff --git a/tools/mid2agb/agb.cpp b/tools/mid2agb/agb.cpp new file mode 100644 index 00000000..d4d79f13 --- /dev/null +++ b/tools/mid2agb/agb.cpp @@ -0,0 +1,547 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#include <cstdio> +#include <cstdarg> +#include <cstring> +#include <vector> +#include "agb.h" +#include "main.h" +#include "midi.h" +#include "tables.h" + +int g_agbTrack; + +static std::string s_lastOpName; +static int s_blockNum; +static bool s_keepLastOpName; +static int s_lastNote; +static int s_lastVelocity; +static bool s_noteChanged; +static bool s_velocityChanged; +static bool s_inPattern; +static int s_extendedCommand; +static int s_memaccOp; +static int s_memaccParam1; +static int s_memaccParam2; + +void PrintAgbHeader() +{ + std::fprintf(g_outputFile, "\t.include \"MPlayDef.s\"\n\n"); + std::fprintf(g_outputFile, "\t.equ\t%s_grp, voicegroup%03u\n", g_asmLabel.c_str(), g_voiceGroup); + std::fprintf(g_outputFile, "\t.equ\t%s_pri, %u\n", g_asmLabel.c_str(), g_priority); + + if (g_reverb >= 0) + std::fprintf(g_outputFile, "\t.equ\t%s_rev, reverb_set+%u\n", g_asmLabel.c_str(), g_reverb); + else + std::fprintf(g_outputFile, "\t.equ\t%s_rev, 0\n", g_asmLabel.c_str()); + + std::fprintf(g_outputFile, "\t.equ\t%s_mvl, %u\n", g_asmLabel.c_str(), g_masterVolume); + std::fprintf(g_outputFile, "\t.equ\t%s_key, %u\n", g_asmLabel.c_str(), 0); + std::fprintf(g_outputFile, "\t.equ\t%s_tbs, %u\n", g_asmLabel.c_str(), g_clocksPerBeat); + std::fprintf(g_outputFile, "\t.equ\t%s_exg, %u\n", g_asmLabel.c_str(), g_exactGateTime); + std::fprintf(g_outputFile, "\t.equ\t%s_cmp, %u\n", g_asmLabel.c_str(), g_compressionEnabled); + + std::fprintf(g_outputFile, "\n\t.section .rodata\n"); + std::fprintf(g_outputFile, "\t.global\t%s\n", g_asmLabel.c_str()); + + std::fprintf(g_outputFile, "\t.align\t2\n"); +} + +void ResetTrackVars() +{ + s_lastVelocity = -1; + s_lastNote = -1; + s_velocityChanged = false; + s_noteChanged = false; + s_keepLastOpName = false; + s_lastOpName = ""; + s_inPattern = false; +} + +void PrintWait(int wait) +{ + if (wait > 0) + { + std::fprintf(g_outputFile, "\t.byte\tW%02d\n", wait); + s_velocityChanged = true; + s_noteChanged = true; + s_keepLastOpName = true; + } +} + +void PrintOp(int wait, std::string name, const char *format, ...) +{ + std::va_list args; + va_start(args, format); + std::fprintf(g_outputFile, "\t.byte\t\t"); + + if (format != nullptr) + { + if (!g_compressionEnabled || s_lastOpName != name) + { + std::fprintf(g_outputFile, "%s, ", name.c_str()); + s_lastOpName = name; + } + else + { + std::fprintf(g_outputFile, " "); + } + std::vfprintf(g_outputFile, format, args); + } + else + { + std::fputs(name.c_str(), g_outputFile); + s_lastOpName = name; + } + + std::fprintf(g_outputFile, "\n"); + + va_end(args); + + PrintWait(wait); +} + +void PrintByte(const char *format, ...) +{ + std::va_list args; + va_start(args, format); + std::fprintf(g_outputFile, "\t.byte\t"); + std::vfprintf(g_outputFile, format, args); + std::fprintf(g_outputFile, "\n"); + s_velocityChanged = true; + s_noteChanged = true; + s_keepLastOpName = true; + va_end(args); +} + +void PrintWord(const char *format, ...) +{ + std::va_list args; + va_start(args, format); + std::fprintf(g_outputFile, "\t .word\t"); + std::vfprintf(g_outputFile, format, args); + std::fprintf(g_outputFile, "\n"); + va_end(args); +} + +void PrintNote(const Event& event) +{ + int note = event.note; + int velocity = g_noteVelocityLUT[event.param1]; + int duration = -1; + + if (event.param2 != -1) + duration = g_noteDurationLUT[event.param2]; + + int gateTimeParam = 0; + + if (g_exactGateTime && duration != -1) + gateTimeParam = event.param2 - duration; + + char gtpBuf[16]; + + if (gateTimeParam > 0) + std::snprintf(gtpBuf, sizeof(gtpBuf), ", gtp%u", gateTimeParam); + else + gtpBuf[0] = 0; + + char opName[16]; + + if (duration == -1) + std::strcpy(opName, "TIE "); + else + std::snprintf(opName, sizeof(opName), "N%02u ", duration); + + bool noteChanged = true; + bool velocityChanged = true; + + if (g_compressionEnabled) + { + noteChanged = (note != s_lastNote); + velocityChanged = (velocity != s_lastVelocity); + } + + if (s_keepLastOpName) + s_keepLastOpName = false; + else + s_lastOpName = ""; + + if (noteChanged || velocityChanged || (gateTimeParam > 0)) + { + s_lastNote = note; + + char noteBuf[16]; + + if (note >= 24) + std::snprintf(noteBuf, sizeof(noteBuf), g_noteTable[note % 12], note / 12 - 2); + else + std::snprintf(noteBuf, sizeof(noteBuf), g_minusNoteTable[note % 12], note / -12 + 2); + + char velocityBuf[16]; + + if (velocityChanged || (gateTimeParam > 0)) + { + s_lastVelocity = velocity; + std::snprintf(velocityBuf, sizeof(velocityBuf), ", v%03u", velocity); + } + else + { + velocityBuf[0] = 0; + } + + PrintOp(event.time, opName, "%s%s%s", noteBuf, velocityBuf, gtpBuf); + } + else + { + PrintOp(event.time, opName, 0); + } + + s_noteChanged = noteChanged; + s_velocityChanged = velocityChanged; +} + +void PrintEndOfTieOp(const Event& event) +{ + int note = event.note; + bool noteChanged = (note != s_lastNote); + + if (!noteChanged || !s_noteChanged) + s_lastOpName = ""; + + if (!noteChanged && g_compressionEnabled) + { + PrintOp(event.time, "EOT ", nullptr); + } + else + { + s_lastNote = note; + if (note >= 24) + PrintOp(event.time, "EOT ", g_noteTable[note % 12], note / 12 - 2); + else + PrintOp(event.time, "EOT ", g_minusNoteTable[note % 12], note / -12 + 2); + } + + s_noteChanged = noteChanged; +} + +void PrintSeqLoopLabel(const Event& event) +{ + s_blockNum = event.param1 + 1; + std::fprintf(g_outputFile, "%s_%u_B%u:\n", g_asmLabel.c_str(), g_agbTrack, s_blockNum); + PrintWait(event.time); + ResetTrackVars(); +} + +void PrintMemAcc(const Event& event) +{ + switch (s_memaccOp) + { + case 0x00: + PrintByte("MEMACC, mem_set, 0x%02X, %u", s_memaccParam1, event.param2); + break; + case 0x01: + PrintByte("MEMACC, mem_add, 0x%02X, %u", s_memaccParam1, event.param2); + break; + case 0x02: + PrintByte("MEMACC, mem_sub, 0x%02X, %u", s_memaccParam1, event.param2); + break; + case 0x03: + PrintByte("MEMACC, mem_mem_set, 0x%02X, 0x%02X", s_memaccParam1, event.param2); + break; + case 0x04: + PrintByte("MEMACC, mem_mem_add, 0x%02X, 0x%02X", s_memaccParam1, event.param2); + break; + case 0x05: + PrintByte("MEMACC, mem_mem_sub, 0x%02X, 0x%02X", s_memaccParam1, event.param2); + break; + // TODO: everything else + case 0x06: + break; + case 0x07: + break; + case 0x08: + break; + case 0x09: + break; + case 0x0A: + break; + case 0x0B: + break; + case 0x0C: + break; + case 0x0D: + break; + case 0x0E: + break; + case 0x0F: + break; + case 0x10: + break; + case 0x11: + break; + case 0x46: + break; + case 0x47: + break; + case 0x48: + break; + case 0x49: + break; + case 0x4A: + break; + case 0x4B: + break; + case 0x4C: + break; + case 0x4D: + break; + case 0x4E: + break; + case 0x4F: + break; + case 0x50: + break; + case 0x51: + break; + default: + break; + } + + PrintWait(event.time); +} + +void PrintExtendedOp(const Event& event) +{ + // TODO: support for other extended commands + + switch (s_extendedCommand) + { + case 0x08: + PrintOp(event.time, "XCMD ", "xIECV , %u", event.param2); + break; + case 0x09: + PrintOp(event.time, "XCMD ", "xIECL , %u", event.param2); + break; + default: + PrintWait(event.time); + break; + } +} + +void PrintControllerOp(const Event& event) +{ + switch (event.param1) + { + case 0x01: + PrintOp(event.time, "MOD ", "%u", event.param2); + break; + case 0x07: + PrintOp(event.time, "VOL ", "%u*%s_mvl/mxv", event.param2, g_asmLabel.c_str()); + break; + case 0x0A: + PrintOp(event.time, "PAN ", "c_v%+d", event.param2 - 64); + break; + case 0x0C: + case 0x10: + PrintMemAcc(event); + break; + case 0x0D: + s_memaccOp = event.param2; + PrintWait(event.time); + break; + case 0x0E: + s_memaccParam1 = event.param2; + PrintWait(event.time); + break; + case 0x0F: + s_memaccParam2 = event.param2; + PrintWait(event.time); + break; + case 0x11: + std::fprintf(g_outputFile, "%s_%u_L%u:\n", g_asmLabel.c_str(), g_agbTrack, event.param2); + PrintWait(event.time); + ResetTrackVars(); + break; + case 0x14: + PrintOp(event.time, "BENDR ", "%u", event.param2); + break; + case 0x15: + PrintOp(event.time, "LFOS ", "%u", event.param2); + break; + case 0x16: + PrintOp(event.time, "MODT ", "%u", event.param2); + break; + case 0x18: + PrintOp(event.time, "TUNE ", "c_v%+d", event.param2 - 64); + break; + case 0x1A: + PrintOp(event.time, "LFODL ", "%u", event.param2); + break; + case 0x1D: + case 0x1F: + PrintExtendedOp(event); + break; + case 0x1E: + s_extendedCommand = event.param2; + // TODO: loop op + break; + case 0x21: + case 0x27: + PrintByte("PRIO , %u", event.param2); + PrintWait(event.time); + break; + default: + PrintWait(event.time); + break; + } +} + +void PrintAgbTrack(std::vector<Event>& events) +{ + std::fprintf(g_outputFile, "\n@**************** Track %u (Midi-Chn.%u) ****************@\n\n", g_agbTrack, g_midiChan + 1); + std::fprintf(g_outputFile, "%s_%u:\n", g_asmLabel.c_str(), g_agbTrack); + + int wholeNoteCount = 0; + int loopEndBlockNum = 0; + + ResetTrackVars(); + + bool foundVolBeforeNote = false; + + for (const Event& event : events) + { + if (event.type == EventType::Note) + break; + + if (event.type == EventType::Controller && event.param1 == 0x07) + { + foundVolBeforeNote = true; + break; + } + } + + if (!foundVolBeforeNote) + PrintByte("\tVOL , 127*%s_mvl/mxv", g_asmLabel.c_str()); + + PrintWait(g_initialWait); + PrintByte("KEYSH , %s_key%+d", g_asmLabel.c_str(), 0); + + for (unsigned i = 0; events[i].type != EventType::EndOfTrack; i++) + { + const Event& event = events[i]; + + if (IsPatternBoundary(event.type)) + { + if (s_inPattern) + PrintByte("PEND"); + s_inPattern = false; + } + + if (event.type == EventType::WholeNoteMark || event.type == EventType::Pattern) + std::fprintf(g_outputFile, "@ %03d ----------------------------------------\n", wholeNoteCount++); + + switch (event.type) + { + case EventType::Note: + PrintNote(event); + break; + case EventType::EndOfTie: + PrintEndOfTieOp(event); + break; + case EventType::Label: + PrintSeqLoopLabel(event); + break; + case EventType::LoopEnd: + PrintByte("GOTO"); + PrintWord("%s_%u_B%u", g_asmLabel.c_str(), g_agbTrack, loopEndBlockNum); + PrintSeqLoopLabel(event); + break; + case EventType::LoopEndBegin: + PrintByte("GOTO"); + PrintWord("%s_%u_B%u", g_asmLabel.c_str(), g_agbTrack, loopEndBlockNum); + PrintSeqLoopLabel(event); + loopEndBlockNum = s_blockNum; + break; + case EventType::LoopBegin: + PrintSeqLoopLabel(event); + loopEndBlockNum = s_blockNum; + break; + case EventType::WholeNoteMark: + if (event.param2 & 0x80000000) + { + std::fprintf(g_outputFile, "%s_%u_%03lu:\n", g_asmLabel.c_str(), g_agbTrack, (unsigned long)(event.param2 & 0x7FFFFFFF)); + ResetTrackVars(); + s_inPattern = true; + } + PrintWait(event.time); + break; + case EventType::Pattern: + PrintByte("PATT"); + PrintWord("%s_%u_%03lu", g_asmLabel.c_str(), g_agbTrack, event.param2); + + while (!IsPatternBoundary(events[i + 1].type)) + i++; + + ResetTrackVars(); + break; + case EventType::Tempo: + PrintByte("TEMPO , %u*%s_tbs/2", 60000000 / event.param2, g_asmLabel.c_str()); + PrintWait(event.time); + break; + case EventType::InstrumentChange: + PrintOp(event.time, "VOICE ", "%u", event.param1); + break; + case EventType::PitchBend: + PrintOp(event.time, "BEND ", "c_v%+d", event.param2 - 64); + break; + case EventType::Controller: + PrintControllerOp(event); + break; + default: + PrintWait(event.time); + break; + } + } + + PrintByte("FINE"); +} + +void PrintAgbFooter() +{ + int trackCount = g_agbTrack - 1; + + std::fprintf(g_outputFile, "\n@******************************************************@\n"); + std::fprintf(g_outputFile, "\t.align\t2\n"); + std::fprintf(g_outputFile, "\n%s:\n", g_asmLabel.c_str()); + std::fprintf(g_outputFile, "\t.byte\t%u\t@ NumTrks\n", trackCount); + std::fprintf(g_outputFile, "\t.byte\t%u\t@ NumBlks\n", 0); + std::fprintf(g_outputFile, "\t.byte\t%s_pri\t@ Priority\n", g_asmLabel.c_str()); + std::fprintf(g_outputFile, "\t.byte\t%s_rev\t@ Reverb.\n", g_asmLabel.c_str()); + std::fprintf(g_outputFile, "\n"); + std::fprintf(g_outputFile, "\t.word\t%s_grp\n", g_asmLabel.c_str()); + std::fprintf(g_outputFile, "\n"); + + // track pointers + for (int i = 1; i <= trackCount; i++) + std::fprintf(g_outputFile, "\t.word\t%s_%u\n", g_asmLabel.c_str(), i); + + std::fprintf(g_outputFile, "\n\t.end\n"); +} diff --git a/tools/mid2agb/agb.h b/tools/mid2agb/agb.h new file mode 100644 index 00000000..7eab3c14 --- /dev/null +++ b/tools/mid2agb/agb.h @@ -0,0 +1,33 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef AGB_H +#define AGB_H + +#include <vector> +#include "midi.h" + +void PrintAgbHeader(); +void PrintAgbTrack(std::vector<Event>& events); +void PrintAgbFooter(); + +extern int g_agbTrack; + +#endif // AGB_H diff --git a/tools/mid2agb/error.cpp b/tools/mid2agb/error.cpp new file mode 100644 index 00000000..13e38ffa --- /dev/null +++ b/tools/mid2agb/error.cpp @@ -0,0 +1,36 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#include <cstdio> +#include <cstdlib> +#include <cstdarg> + +// Reports an error diagnostic and terminates the program. +[[noreturn]] void RaiseError(const char* format, ...) +{ + const int bufferSize = 1024; + char buffer[bufferSize]; + std::va_list args; + va_start(args, format); + std::vsnprintf(buffer, bufferSize, format, args); + std::fprintf(stderr, "error: %s\n", buffer); + va_end(args); + std::exit(1); +} diff --git a/tools/mid2agb/error.h b/tools/mid2agb/error.h new file mode 100644 index 00000000..da4f0114 --- /dev/null +++ b/tools/mid2agb/error.h @@ -0,0 +1,26 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef ERROR_H +#define ERROR_H + +[[noreturn]] void RaiseError(const char* format, ...); + +#endif // ERROR_H diff --git a/tools/mid2agb/main.cpp b/tools/mid2agb/main.cpp new file mode 100644 index 00000000..ea2b294a --- /dev/null +++ b/tools/mid2agb/main.cpp @@ -0,0 +1,233 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#include <cstdio> +#include <cstdlib> +#include <cstring> +#include <cctype> +#include <cassert> +#include <string> +#include <set> +#include "main.h" +#include "error.h" +#include "midi.h" +#include "agb.h" + +FILE* g_inputFile = nullptr; +FILE* g_outputFile = nullptr; + +std::string g_asmLabel; +int g_masterVolume = 127; +int g_voiceGroup = 0; +int g_priority = 0; +int g_reverb = -1; +int g_clocksPerBeat = 1; +bool g_exactGateTime = false; +bool g_compressionEnabled = true; + +[[noreturn]] static void PrintUsage() +{ + std::printf( + "Usage: MID2AGB name [options]\n" + "\n" + " input_file filename(.mid) of MIDI file\n" + " output_file filename(.s) for AGB file (default:input_file)\n" + "\n" + "options -L??? label for assembler (default:output_file)\n" + " -V??? master volume (default:127)\n" + " -G??? voice group number (default:0)\n" + " -P??? priority (default:0)\n" + " -R??? reverb (default:off)\n" + " -X 48 clocks/beat (default:24 clocks/beat)\n" + " -E exact gate-time\n" + " -N no compression\n" + ); + std::exit(1); +} + +static std::string StripExtension(std::string s) +{ + std::size_t pos = s.find_last_of('.'); + + if (pos > 0 && pos != std::string::npos) + { + s = s.substr(0, pos); + } + + return s; +} + +static std::string GetExtension(std::string s) +{ + std::size_t pos = s.find_last_of('.'); + + if (pos > 0 && pos != std::string::npos) + { + return s.substr(pos + 1); + } + + return ""; +} + +static std::string BaseName(std::string s) +{ + std::size_t posAfterSlash = s.find_last_of("/\\"); + + if (posAfterSlash == std::string::npos) + posAfterSlash = 0; + else + posAfterSlash++; + + std::size_t dotPos = s.find_first_of('.', posAfterSlash); + if (dotPos > posAfterSlash && dotPos != std::string::npos) + s = s.substr(posAfterSlash, dotPos - posAfterSlash); + + return s; +} + +static const char *GetArgument(int argc, char **argv, int& index) +{ + assert(index >= 0 && index < argc); + + const char *option = argv[index]; + + assert(option != nullptr); + assert(option[0] == '-'); + + // If there is text following the letter, return that. + if (std::strlen(option) >= 3) + return option + 2; + + // Otherwise, try to get the next arg. + if (index + 1 < argc) + { + index++; + return argv[index]; + } + else + { + return nullptr; + } +} + +int main(int argc, char** argv) +{ + std::string inputFilename; + std::string outputFilename; + + for (int i = 1; i < argc; i++) + { + const char *option = argv[i]; + + if (option[0] == '-' && option[1] != '\0') + { + const char *arg; + + switch (std::toupper(option[1])) + { + case 'E': + g_exactGateTime = true; + break; + case 'G': + arg = GetArgument(argc, argv, i); + if (arg == nullptr) + PrintUsage(); + g_voiceGroup = std::stoi(arg); + break; + case 'L': + arg = GetArgument(argc, argv, i); + if (arg == nullptr) + PrintUsage(); + g_asmLabel = arg; + break; + case 'N': + g_compressionEnabled = false; + break; + case 'P': + arg = GetArgument(argc, argv, i); + if (arg == nullptr) + PrintUsage(); + g_priority = std::stoi(arg); + break; + case 'R': + arg = GetArgument(argc, argv, i); + if (arg == nullptr) + PrintUsage(); + g_reverb = std::stoi(arg); + break; + case 'V': + arg = GetArgument(argc, argv, i); + if (arg == nullptr) + PrintUsage(); + g_masterVolume = std::stoi(arg); + break; + case 'X': + g_clocksPerBeat = 2; + break; + default: + PrintUsage(); + } + } + else + { + if (inputFilename.empty()) + inputFilename = argv[i]; + else if (outputFilename.empty()) + outputFilename = argv[i]; + else + PrintUsage(); + } + } + + if (inputFilename.empty()) + PrintUsage(); + + if (GetExtension(inputFilename) != "mid") + RaiseError("input filename extension is not \"mid\""); + + if (outputFilename.empty()) + outputFilename = StripExtension(inputFilename) + ".s"; + + if (GetExtension(outputFilename) != "s") + RaiseError("output filename extension is not \"s\""); + + if (g_asmLabel.empty()) + g_asmLabel = BaseName(outputFilename); + + g_inputFile = std::fopen(inputFilename.c_str(), "rb"); + + if (g_inputFile == nullptr) + RaiseError("failed to open \"%s\" for reading", inputFilename.c_str()); + + g_outputFile = std::fopen(outputFilename.c_str(), "w"); + + if (g_outputFile == nullptr) + RaiseError("failed to open \"%s\" for writing", outputFilename.c_str()); + + ReadMidiFileHeader(); + PrintAgbHeader(); + ReadMidiTracks(); + PrintAgbFooter(); + + std::fclose(g_inputFile); + std::fclose(g_outputFile); + + return 0; +} diff --git a/tools/mid2agb/main.h b/tools/mid2agb/main.h new file mode 100644 index 00000000..6e71e73f --- /dev/null +++ b/tools/mid2agb/main.h @@ -0,0 +1,39 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef MAIN_H +#define MAIN_H + +#include <cstdio> +#include <string> + +extern FILE* g_inputFile; +extern FILE* g_outputFile; + +extern std::string g_asmLabel; +extern int g_masterVolume; +extern int g_voiceGroup; +extern int g_priority; +extern int g_reverb; +extern int g_clocksPerBeat; +extern bool g_exactGateTime; +extern bool g_compressionEnabled; + +#endif // MAIN_H diff --git a/tools/mid2agb/midi.cpp b/tools/mid2agb/midi.cpp new file mode 100644 index 00000000..fa7d9ce2 --- /dev/null +++ b/tools/mid2agb/midi.cpp @@ -0,0 +1,964 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#include <cstdio> +#include <cassert> +#include <string> +#include <vector> +#include <algorithm> +#include <memory> +#include "midi.h" +#include "main.h" +#include "error.h" +#include "agb.h" +#include "tables.h" + +enum class MidiEventCategory +{ + Control, + SysEx, + Meta, + Invalid, +}; + +MidiFormat g_midiFormat; +std::int_fast32_t g_midiTrackCount; +std::int16_t g_midiTimeDiv; + +int g_midiChan; +std::int32_t g_initialWait; + +static long s_trackDataStart; +static std::vector<Event> s_seqEvents; +static std::vector<Event> s_trackEvents; +static std::int32_t s_absoluteTime; +static int s_blockCount = 0; +static int s_minNote; +static int s_maxNote; +static int s_runningStatus; + +void Seek(long offset) +{ + if (std::fseek(g_inputFile, offset, SEEK_SET) != 0) + RaiseError("failed to seek to %l", offset); +} + +void Skip(long offset) +{ + if (std::fseek(g_inputFile, offset, SEEK_CUR) != 0) + RaiseError("failed to skip %l bytes", offset); +} + +std::string ReadSignature() +{ + char signature[4]; + + if (std::fread(signature, 4, 1, g_inputFile) != 1) + RaiseError("failed to read signature"); + + return std::string(signature, 4); +} + +std::uint32_t ReadInt8() +{ + int c = std::fgetc(g_inputFile); + + if (c < 0) + RaiseError("unexpected EOF"); + + return c; +} + +std::uint32_t ReadInt16() +{ + std::uint32_t val = 0; + val |= ReadInt8() << 8; + val |= ReadInt8(); + return val; +} + +std::uint32_t ReadInt24() +{ + std::uint32_t val = 0; + val |= ReadInt8() << 16; + val |= ReadInt8() << 8; + val |= ReadInt8(); + return val; +} + +std::uint32_t ReadInt32() +{ + std::uint32_t val = 0; + val |= ReadInt8() << 24; + val |= ReadInt8() << 16; + val |= ReadInt8() << 8; + val |= ReadInt8(); + return val; +} + +std::uint32_t ReadVLQ() +{ + std::uint32_t val = 0; + std::uint32_t c; + + do + { + c = ReadInt8(); + val <<= 7; + val |= (c & 0x7F); + } while (c & 0x80); + + return val; +} + +void ReadMidiFileHeader() +{ + Seek(0); + + if (ReadSignature() != "MThd") + RaiseError("MIDI file header signature didn't match \"MThd\""); + + std::uint32_t headerLength = ReadInt32(); + + if (headerLength != 6) + RaiseError("MIDI file header length isn't 6"); + + std::uint16_t midiFormat = ReadInt16(); + + if (midiFormat >= 2) + RaiseError("unsupported MIDI format (%u)", midiFormat); + + g_midiFormat = (MidiFormat)midiFormat; + g_midiTrackCount = ReadInt16(); + g_midiTimeDiv = ReadInt16(); + + if (g_midiTimeDiv < 0) + RaiseError("unsupported MIDI time division (%d)", g_midiTimeDiv); +} + +long ReadMidiTrackHeader(long offset) +{ + Seek(offset); + + if (ReadSignature() != "MTrk") + RaiseError("MIDI track header signature didn't match \"MTrk\""); + + long size = ReadInt32(); + + s_trackDataStart = std::ftell(g_inputFile); + + return size + 8; +} + +void StartTrack() +{ + Seek(s_trackDataStart); + s_absoluteTime = 0; + s_runningStatus = 0; +} + +void SkipEventData() +{ + Skip(ReadVLQ()); +} + +void DetermineEventCategory(MidiEventCategory& category, int& typeChan, int& size) +{ + typeChan = ReadInt8(); + + if (typeChan < 0x80) + { + // If data byte was found, use the running status. + ungetc(typeChan, g_inputFile); + typeChan = s_runningStatus; + } + + if (typeChan == 0xFF) + { + category = MidiEventCategory::Meta; + size = 0; + s_runningStatus = 0; + } + else if (typeChan >= 0xF0) + { + category = MidiEventCategory::SysEx; + size = 0; + s_runningStatus = 0; + } + else if (typeChan >= 0x80) + { + category = MidiEventCategory::Control; + + switch (typeChan >> 4) + { + case 0xC: + case 0xD: + size = 1; + break; + default: + size = 2; + break; + } + s_runningStatus = typeChan; + } + else + { + category = MidiEventCategory::Invalid; + } +} + +void MakeBlockEvent(Event& event, EventType type) +{ + event.type = type; + event.param1 = s_blockCount++; + event.param2 = 0; +} + +std::string ReadEventText() +{ + char buffer[2]; + std::uint32_t length = ReadVLQ(); + + if (length <= 2) + { + if (fread(buffer, length, 1, g_inputFile) != 1) + RaiseError("failed to read event text"); + } + else + { + Skip(length); + length = 0; + } + + return std::string(buffer, length); +} + +bool ReadSeqEvent(Event& event) +{ + s_absoluteTime += ReadVLQ(); + event.time = s_absoluteTime; + + MidiEventCategory category; + int typeChan; + int size; + + DetermineEventCategory(category, typeChan, size); + + if (category == MidiEventCategory::Control) + { + Skip(size); + return false; + } + + if (category == MidiEventCategory::SysEx) + { + SkipEventData(); + return false; + } + + if (category == MidiEventCategory::Invalid) + RaiseError("invalid event"); + + // meta event + int metaEventType = ReadInt8(); + + if (metaEventType >= 1 && metaEventType <= 7) + { + // text event + std::string text = ReadEventText(); + + if (text == "[") + MakeBlockEvent(event, EventType::LoopBegin); + else if (text == "][") + MakeBlockEvent(event, EventType::LoopEndBegin); + else if (text == "]") + MakeBlockEvent(event, EventType::LoopEnd); + else if (text == ":") + MakeBlockEvent(event, EventType::Label); + else + return false; + } + else + { + switch (metaEventType) + { + case 0x2F: // end of track + SkipEventData(); + event.type = EventType::EndOfTrack; + event.param1 = 0; + event.param2 = 0; + break; + case 0x51: // tempo + if (ReadVLQ() != 3) + RaiseError("invalid tempo size"); + + event.type = EventType::Tempo; + event.param1 = 0; + event.param2 = ReadInt24(); + break; + case 0x58: // time signature + { + if (ReadVLQ() != 4) + RaiseError("invalid time signature size"); + + int numerator = ReadInt8(); + int denominatorExponent = ReadInt8(); + + if (denominatorExponent >= 16) + RaiseError("invalid time signature denominator"); + + Skip(2); // ignore other values + + int clockTicks = 96 * numerator * g_clocksPerBeat; + int denominator = 1 << denominatorExponent; + int timeSig = clockTicks / denominator; + + if (timeSig <= 0 || timeSig >= 0x10000) + RaiseError("invalid time signature"); + + event.type = EventType::TimeSignature; + event.param1 = 0; + event.param2 = timeSig; + break; + } + default: + SkipEventData(); + return false; + } + } + + return true; +} + +void ReadSeqEvents() +{ + StartTrack(); + + for (;;) + { + Event event = {}; + + if (ReadSeqEvent(event)) + { + s_seqEvents.push_back(event); + + if (event.type == EventType::EndOfTrack) + return; + } + } +} + +bool CheckNoteEnd(Event& event) +{ + event.param2 += ReadVLQ(); + + MidiEventCategory category; + int typeChan; + int size; + + DetermineEventCategory(category, typeChan, size); + + if (category == MidiEventCategory::Control) + { + int chan = typeChan & 0xF; + + if (chan != g_midiChan) + { + Skip(size); + return false; + } + + switch (typeChan & 0xF0) + { + case 0x80: // note off + { + int note = ReadInt8(); + ReadInt8(); // ignore velocity + if (note == event.note) + return true; + break; + } + case 0x90: // note on + { + int note = ReadInt8(); + int velocity = ReadInt8(); + if (velocity == 0 && note == event.note) + return true; + break; + } + default: + Skip(size); + break; + } + + return false; + } + + if (category == MidiEventCategory::SysEx) + { + SkipEventData(); + return false; + } + + if (category == MidiEventCategory::Meta) + { + int metaEventType = ReadInt8(); + SkipEventData(); + + if (metaEventType == 0x2F) + RaiseError("note doesn't end"); + + return false; + } + + RaiseError("invalid event"); +} + +void FindNoteEnd(Event& event) +{ + // Save the current file position and running status + // which get modified by CheckNoteEnd. + long startPos = ftell(g_inputFile); + int savedRunningStatus = s_runningStatus; + + event.param2 = 0; + + while (!CheckNoteEnd(event)) + ; + + Seek(startPos); + s_runningStatus = savedRunningStatus; +} + +bool ReadTrackEvent(Event& event) +{ + s_absoluteTime += ReadVLQ(); + event.time = s_absoluteTime; + + MidiEventCategory category; + int typeChan; + int size; + + DetermineEventCategory(category, typeChan, size); + + if (category == MidiEventCategory::Control) + { + int chan = typeChan & 0xF; + + if (chan != g_midiChan) + { + Skip(size); + return false; + } + + switch (typeChan & 0xF0) + { + case 0x90: // note on + { + int note = ReadInt8(); + int velocity = ReadInt8(); + + if (velocity != 0) + { + event.type = EventType::Note; + event.note = note; + event.param1 = velocity; + FindNoteEnd(event); + if (event.param2 > 0) + { + if (note < s_minNote) + s_minNote = note; + if (note > s_maxNote) + s_maxNote = note; + } + } + break; + } + case 0xB0: // controller event + event.type = EventType::Controller; + event.param1 = ReadInt8(); // controller index + event.param2 = ReadInt8(); // value + break; + case 0xC0: // instrument change + event.type = EventType::InstrumentChange; + event.param1 = ReadInt8(); // instrument + event.param2 = 0; + break; + case 0xE0: // pitch bend + event.type = EventType::PitchBend; + event.param1 = ReadInt8(); + event.param2 = ReadInt8(); + break; + default: + Skip(size); + return false; + } + + return true; + } + + if (category == MidiEventCategory::SysEx) + { + SkipEventData(); + return false; + } + + if (category == MidiEventCategory::Meta) + { + int metaEventType = ReadInt8(); + SkipEventData(); + + if (metaEventType == 0x2F) + { + event.type = EventType::EndOfTrack; + event.param1 = 0; + event.param2 = 0; + return true; + } + + return false; + } + + RaiseError("invalid event"); +} + +void ReadTrackEvents() +{ + StartTrack(); + + s_trackEvents.clear(); + + s_minNote = 0xFF; + s_maxNote = 0; + + for (;;) + { + Event event = {}; + + if (ReadTrackEvent(event)) + { + s_trackEvents.push_back(event); + + if (event.type == EventType::EndOfTrack) + return; + } + } +} + +bool EventCompare(const Event& event1, const Event& event2) +{ + if (event1.time < event2.time) + return true; + + if (event1.time > event2.time) + return false; + + unsigned event1Type = (unsigned)event1.type; + unsigned event2Type = (unsigned)event2.type; + + if (event1.type == EventType::Note) + event1Type += event1.note; + + if (event2.type == EventType::Note) + event2Type += event2.note; + + if (event1Type < event2Type) + return true; + + if (event1Type > event2Type) + return false; + + if (event1.type == EventType::EndOfTie) + { + if (event1.note < event2.note) + return true; + + if (event1.note > event2.note) + return false; + } + + return false; +} + +std::unique_ptr<std::vector<Event>> MergeEvents() +{ + std::unique_ptr<std::vector<Event>> events(new std::vector<Event>()); + + unsigned trackEventPos = 0; + unsigned seqEventPos = 0; + + while (s_trackEvents[trackEventPos].type != EventType::EndOfTrack + && s_seqEvents[seqEventPos].type != EventType::EndOfTrack) + { + if (EventCompare(s_trackEvents[trackEventPos], s_seqEvents[seqEventPos])) + events->push_back(s_trackEvents[trackEventPos++]); + else + events->push_back(s_seqEvents[seqEventPos++]); + } + + while (s_trackEvents[trackEventPos].type != EventType::EndOfTrack) + events->push_back(s_trackEvents[trackEventPos++]); + + while (s_seqEvents[seqEventPos].type != EventType::EndOfTrack) + events->push_back(s_seqEvents[seqEventPos++]); + + // Push the EndOfTrack event with the larger time. + if (EventCompare(s_trackEvents[trackEventPos], s_seqEvents[seqEventPos])) + events->push_back(s_seqEvents[seqEventPos]); + else + events->push_back(s_trackEvents[trackEventPos]); + + return events; +} + +void ConvertTimes(std::vector<Event>& events) +{ + for (Event& event : events) + { + event.time = (24 * g_clocksPerBeat * event.time) / g_midiTimeDiv; + + if (event.type == EventType::Note) + { + event.param1 = g_noteVelocityLUT[event.param1]; + + std::uint32_t duration = (24 * g_clocksPerBeat * event.param2) / g_midiTimeDiv; + + if (duration == 0) + duration = 1; + + if (!g_exactGateTime && duration < 96) + duration = g_noteDurationLUT[duration]; + + event.param2 = duration; + } + } +} + +std::unique_ptr<std::vector<Event>> InsertTimingEvents(std::vector<Event>& inEvents) +{ + std::unique_ptr<std::vector<Event>> outEvents(new std::vector<Event>()); + + Event timingEvent = {}; + timingEvent.time = 0; + timingEvent.type = EventType::TimeSignature; + timingEvent.param2 = 96 * g_clocksPerBeat; + + for (const Event& event : inEvents) + { + while (EventCompare(timingEvent, event)) + { + outEvents->push_back(timingEvent); + timingEvent.time += timingEvent.param2; + } + + if (event.type == EventType::TimeSignature) + { + if (g_agbTrack == 1 && event.param2 != timingEvent.param2) + { + Event originalTimingEvent = event; + originalTimingEvent.type = EventType::OriginalTimeSignature; + outEvents->push_back(originalTimingEvent); + } + timingEvent.param2 = event.param2; + timingEvent.time = event.time + timingEvent.param2; + } + + outEvents->push_back(event); + } + + return outEvents; +} + +std::unique_ptr<std::vector<Event>> SplitTime(std::vector<Event>& inEvents) +{ + std::unique_ptr<std::vector<Event>> outEvents(new std::vector<Event>()); + + std::int32_t time = 0; + + for (const Event& event : inEvents) + { + std::int32_t diff = event.time - time; + + if (diff > 96) + { + int wholeNoteCount = (diff - 1) / 96; + diff -= 96 * wholeNoteCount; + + for (int i = 0; i < wholeNoteCount; i++) + { + time += 96; + Event timeSplitEvent = {}; + timeSplitEvent.time = time; + timeSplitEvent.type = EventType::TimeSplit; + outEvents->push_back(timeSplitEvent); + } + } + + std::int32_t lutValue = g_noteDurationLUT[diff]; + + if (lutValue != diff) + { + Event timeSplitEvent = {}; + timeSplitEvent.time = time + lutValue; + timeSplitEvent.type = EventType::TimeSplit; + outEvents->push_back(timeSplitEvent); + } + + time = event.time; + + outEvents->push_back(event); + } + + return outEvents; +} + +std::unique_ptr<std::vector<Event>> CreateTies(std::vector<Event>& inEvents) +{ + std::unique_ptr<std::vector<Event>> outEvents(new std::vector<Event>()); + + for (const Event& event : inEvents) + { + if (event.type == EventType::Note && event.param2 > 96) + { + Event tieEvent = event; + tieEvent.param2 = -1; + outEvents->push_back(tieEvent); + + Event eotEvent = {}; + eotEvent.time = event.time + event.param2; + eotEvent.type = EventType::EndOfTie; + eotEvent.note = event.note; + outEvents->push_back(eotEvent); + } + else + { + outEvents->push_back(event); + } + } + + return outEvents; +} + +void CalculateWaits(std::vector<Event>& events) +{ + g_initialWait = events[0].time; + int wholeNoteCount = 0; + + for (unsigned i = 0; i < events.size() && events[i].type != EventType::EndOfTrack; i++) + { + events[i].time = events[i + 1].time - events[i].time; + + if (events[i].type == EventType::TimeSignature) + { + events[i].type = EventType::WholeNoteMark; + events[i].param2 = wholeNoteCount++; + } + } +} + +int CalculateCompressionScore(std::vector<Event>& events, int index) +{ + int score = 0; + std::uint8_t lastParam1 = events[index].param1; + std::uint8_t lastVelocity = 0x80u; + EventType lastType = events[index].type; + std::int32_t lastDuration = 0x80000000; + std::uint8_t lastNote = 0x40u; + + if (events[index].time > 0) + score++; + + for (int i = index + 1; !IsPatternBoundary(events[i].type); i++) + { + if (events[i].type == EventType::Note) + { + int val = 0; + + if (events[i].note != lastNote) + { + val++; + lastNote = events[i].note; + } + + if (events[i].param1 != lastVelocity) + { + val++; + lastVelocity = events[i].param1; + } + + std::int32_t duration = events[i].param2; + + if (g_noteDurationLUT[duration] != lastDuration) + { + val++; + lastDuration = g_noteDurationLUT[duration]; + } + + if (duration != lastDuration) + val++; + + if (val == 0) + val = 1; + + score += val; + } + else + { + lastDuration = 0x80000000; + + if (events[i].type == lastType) + { + if ((lastType != EventType::Controller && (int)lastType != 0x25 && lastType != EventType::EndOfTie) || events[i].param1 == lastParam1) + { + score++; + } + else + { + score += 2; + } + } + else + { + score += 2; + } + } + + lastParam1 = events[i].param1; + lastType = events[i].type; + + if (events[i].time) + score++; + } + + return score; +} + +bool IsCompressionMatch(std::vector<Event>& events, int index1, int index2) +{ + if (events[index1].type != events[index2].type || + events[index1].note != events[index2].note || + events[index1].param1 != events[index2].param1 || + events[index1].time != events[index2].time) + return false; + + index1++; + index2++; + + do + { + if (events[index1] != events[index2]) + return false; + + index1++; + index2++; + } while (!IsPatternBoundary(events[index1].type)); + + return IsPatternBoundary(events[index2].type); +} + +void CompressWholeNote(std::vector<Event>& events, int index) +{ + for (int j = index + 1; events[j].type != EventType::EndOfTrack; j++) + { + while (events[j].type != EventType::WholeNoteMark) + { + j++; + + if (events[j].type == EventType::EndOfTrack) + return; + } + + if (IsCompressionMatch(events, index, j)) + { + events[j].type = EventType::Pattern; + events[j].param2 = events[index].param2 & 0x7FFFFFFF; + events[index].param2 |= 0x80000000; + } + } +} + +void Compress(std::vector<Event>& events) +{ + for (int i = 0; events[i].type != EventType::EndOfTrack; i++) + { + while (events[i].type != EventType::WholeNoteMark) + { + i++; + + if (events[i].type == EventType::EndOfTrack) + return; + } + + if (CalculateCompressionScore(events, i) >= 6) + { + CompressWholeNote(events, i); + } + } +} + +void ReadMidiTracks() +{ + long trackHeaderStart = 14; + + ReadMidiTrackHeader(trackHeaderStart); + ReadSeqEvents(); + + g_agbTrack = 1; + + for (int midiTrack = 0; midiTrack < g_midiTrackCount; midiTrack++) + { + trackHeaderStart += ReadMidiTrackHeader(trackHeaderStart); + + for (g_midiChan = 0; g_midiChan < 16; g_midiChan++) + { + ReadTrackEvents(); + + if (s_minNote != 0xFF) + { +#ifdef DEBUG + printf("Track%d = Midi-Ch.%d\n", g_agbTrack, g_midiChan + 1); +#endif + + std::unique_ptr<std::vector<Event>> events(MergeEvents()); + + // We don't need TEMPO in anything but track 1. + if (g_agbTrack == 1) + { + auto it = std::remove_if(s_seqEvents.begin(), s_seqEvents.end(), [](const Event& event) { return event.type == EventType::Tempo; }); + s_seqEvents.erase(it, s_seqEvents.end()); + } + + ConvertTimes(*events); + events = InsertTimingEvents(*events); + events = CreateTies(*events); + std::stable_sort(events->begin(), events->end(), EventCompare); + events = SplitTime(*events); + CalculateWaits(*events); + + if (g_compressionEnabled) + Compress(*events); + + PrintAgbTrack(*events); + + g_agbTrack++; + } + } + } +} diff --git a/tools/mid2agb/midi.h b/tools/mid2agb/midi.h new file mode 100644 index 00000000..434c8e8e --- /dev/null +++ b/tools/mid2agb/midi.h @@ -0,0 +1,87 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef MIDI_H +#define MIDI_H + +#include <cstdint> + +enum class MidiFormat +{ + SingleTrack, + MultiTrack +}; + +enum class EventType +{ + EndOfTie = 0x01, + Label = 0x11, + LoopEnd = 0x12, + LoopEndBegin = 0x13, + LoopBegin = 0x14, + OriginalTimeSignature = 0x15, + WholeNoteMark = 0x16, + Pattern = 0x17, + TimeSignature = 0x18, + Tempo = 0x19, + InstrumentChange = 0x21, + Controller = 0x22, + PitchBend = 0x23, + KeyShift = 0x31, + Note = 0x40, + TimeSplit = 0xFE, + EndOfTrack = 0xFF, +}; + +struct Event +{ + std::int32_t time; + EventType type; + std::uint8_t note; + std::uint8_t param1; + std::int32_t param2; + + bool operator==(const Event& other) + { + return (time == other.time + && type == other.type + && note == other.note + && param1 == other.param1 + && param2 == other.param2); + } + + bool operator!=(const Event& other) + { + return !(*this == other); + } +}; + +void ReadMidiFileHeader(); +void ReadMidiTracks(); + +extern int g_midiChan; +extern std::int32_t g_initialWait; + +inline bool IsPatternBoundary(EventType type) +{ + return type == EventType::EndOfTrack || (int)type <= 0x17; +} + +#endif // MIDI_H diff --git a/tools/mid2agb/tables.cpp b/tools/mid2agb/tables.cpp new file mode 100644 index 00000000..f254664a --- /dev/null +++ b/tools/mid2agb/tables.cpp @@ -0,0 +1,286 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#include "tables.h" + +const int g_noteDurationLUT[] = +{ + 0, // 0 + 1, // 1 + 2, // 2 + 3, // 3 + 4, // 4 + 5, // 5 + 6, // 6 + 7, // 7 + 8, // 8 + 9, // 9 + 10, // 10 + 11, // 11 + 12, // 12 + 13, // 13 + 14, // 14 + 15, // 15 + 16, // 16 + 17, // 17 + 18, // 18 + 19, // 19 + 20, // 20 + 21, // 21 + 22, // 22 + 23, // 23 + 24, // 24 + 24, // 25 + 24, // 26 + 24, // 27 + 28, // 28 + 28, // 29 + 30, // 30 + 30, // 31 + 32, // 32 + 32, // 33 + 32, // 34 + 32, // 35 + 36, // 36 + 36, // 37 + 36, // 38 + 36, // 39 + 40, // 40 + 40, // 41 + 42, // 42 + 42, // 43 + 44, // 44 + 44, // 45 + 44, // 46 + 44, // 47 + 48, // 48 + 48, // 49 + 48, // 50 + 48, // 51 + 52, // 52 + 52, // 53 + 54, // 54 + 54, // 55 + 56, // 56 + 56, // 57 + 56, // 58 + 56, // 59 + 60, // 60 + 60, // 61 + 60, // 62 + 60, // 63 + 64, // 64 + 64, // 65 + 66, // 66 + 66, // 67 + 68, // 68 + 68, // 69 + 68, // 70 + 68, // 71 + 72, // 72 + 72, // 73 + 72, // 74 + 72, // 75 + 76, // 76 + 76, // 77 + 78, // 78 + 78, // 79 + 80, // 80 + 80, // 81 + 80, // 82 + 80, // 83 + 84, // 84 + 84, // 85 + 84, // 86 + 84, // 87 + 88, // 88 + 88, // 89 + 90, // 90 + 90, // 91 + 92, // 92 + 92, // 93 + 92, // 94 + 92, // 95 + 96, // 96 +}; + +const int g_noteVelocityLUT[] = +{ + 0, // 0 + 4, // 1 + 4, // 2 + 4, // 3 + 4, // 4 + 8, // 5 + 8, // 6 + 8, // 7 + 8, // 8 + 12, // 9 + 12, // 10 + 12, // 11 + 12, // 12 + 16, // 13 + 16, // 14 + 16, // 15 + 16, // 16 + 20, // 17 + 20, // 18 + 20, // 19 + 20, // 20 + 24, // 21 + 24, // 22 + 24, // 23 + 24, // 24 + 28, // 25 + 28, // 26 + 28, // 27 + 28, // 28 + 32, // 29 + 32, // 30 + 32, // 31 + 32, // 32 + 36, // 33 + 36, // 34 + 36, // 35 + 36, // 36 + 40, // 37 + 40, // 38 + 40, // 39 + 40, // 40 + 44, // 41 + 44, // 42 + 44, // 43 + 44, // 44 + 48, // 45 + 48, // 46 + 48, // 47 + 48, // 48 + 52, // 49 + 52, // 50 + 52, // 51 + 52, // 52 + 56, // 53 + 56, // 54 + 56, // 55 + 56, // 56 + 60, // 57 + 60, // 58 + 60, // 59 + 60, // 60 + 64, // 61 + 64, // 62 + 64, // 63 + 64, // 64 + 68, // 65 + 68, // 66 + 68, // 67 + 68, // 68 + 72, // 69 + 72, // 70 + 72, // 71 + 72, // 72 + 76, // 73 + 76, // 74 + 76, // 75 + 76, // 76 + 80, // 77 + 80, // 78 + 80, // 79 + 80, // 80 + 84, // 81 + 84, // 82 + 84, // 83 + 84, // 84 + 88, // 85 + 88, // 86 + 88, // 87 + 88, // 88 + 92, // 89 + 92, // 90 + 92, // 91 + 92, // 92 + 96, // 93 + 96, // 94 + 96, // 95 + 96, // 96 + 100, // 97 + 100, // 98 + 100, // 99 + 100, // 100 + 104, // 101 + 104, // 102 + 104, // 103 + 104, // 104 + 108, // 105 + 108, // 106 + 108, // 107 + 108, // 108 + 112, // 109 + 112, // 110 + 112, // 111 + 112, // 112 + 116, // 113 + 116, // 114 + 116, // 115 + 116, // 116 + 120, // 117 + 120, // 118 + 120, // 119 + 120, // 120 + 124, // 121 + 124, // 122 + 124, // 123 + 124, // 124 + 127, // 125 + 127, // 126 + 127, // 127 +}; + +const char* g_noteTable[] = +{ + "Cn%01u ", + "Cs%01u ", + "Dn%01u ", + "Ds%01u ", + "En%01u ", + "Fn%01u ", + "Fs%01u ", + "Gn%01u ", + "Gs%01u ", + "An%01u ", + "As%01u ", + "Bn%01u ", +}; + +const char* g_minusNoteTable[] = +{ + "CnM%01u", + "CsM%01u", + "DnM%01u", + "DsM%01u", + "EnM%01u", + "FnM%01u", + "FsM%01u", + "GnM%01u", + "GsM%01u", + "AnM%01u", + "AsM%01u", + "BnM%01u", +}; diff --git a/tools/mid2agb/tables.h b/tools/mid2agb/tables.h new file mode 100644 index 00000000..da3c9072 --- /dev/null +++ b/tools/mid2agb/tables.h @@ -0,0 +1,29 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef TABLES_H +#define TABLES_H + +extern const int g_noteDurationLUT[]; +extern const int g_noteVelocityLUT[]; +extern const char* g_noteTable[]; +extern const char* g_minusNoteTable[]; + +#endif // TABLES_H diff --git a/tools/preproc/.gitignore b/tools/preproc/.gitignore new file mode 100644 index 00000000..eb347087 --- /dev/null +++ b/tools/preproc/.gitignore @@ -0,0 +1 @@ +preproc diff --git a/tools/preproc/LICENSE b/tools/preproc/LICENSE new file mode 100644 index 00000000..534d1534 --- /dev/null +++ b/tools/preproc/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2016 YamaArashi + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/tools/preproc/Makefile b/tools/preproc/Makefile new file mode 100644 index 00000000..63dedda1 --- /dev/null +++ b/tools/preproc/Makefile @@ -0,0 +1,20 @@ +CXX := g++ + +CXXFLAGS := -std=c++11 -O2 -Wall -Wno-switch -Werror + +SRCS := asm_file.cpp c_file.cpp charmap.cpp preproc.cpp string_parser.cpp \ + utf8.cpp + +HEADERS := asm_file.h c_file.h char_util.h charmap.h preproc.h string_parser.h \ + utf8.h + +.PHONY: all clean + +all: preproc + @: + +preproc: $(SRCS) $(HEADERS) + $(CXX) $(CXXFLAGS) $(SRCS) -o $@ $(LDFLAGS) + +clean: + $(RM) preproc preproc.exe diff --git a/tools/preproc/asm_file.cpp b/tools/preproc/asm_file.cpp new file mode 100644 index 00000000..383010aa --- /dev/null +++ b/tools/preproc/asm_file.cpp @@ -0,0 +1,529 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#include <cstdio> +#include <cstdarg> +#include "preproc.h" +#include "asm_file.h" +#include "char_util.h" +#include "utf8.h" +#include "string_parser.h" + +AsmFile::AsmFile(std::string filename) : m_filename(filename) +{ + FILE *fp = std::fopen(filename.c_str(), "rb"); + + if (fp == NULL) + FATAL_ERROR("Failed to open \"%s\" for reading.\n", filename.c_str()); + + std::fseek(fp, 0, SEEK_END); + + m_size = std::ftell(fp); + + if (m_size < 0) + FATAL_ERROR("File size of \"%s\" is less than zero.\n", filename.c_str()); + + m_buffer = new char[m_size + 1]; + + std::rewind(fp); + + if (std::fread(m_buffer, m_size, 1, fp) != 1) + FATAL_ERROR("Failed to read \"%s\".\n", filename.c_str()); + + m_buffer[m_size] = 0; + + std::fclose(fp); + + m_pos = 0; + m_lineNum = 1; + m_lineStart = 0; + + RemoveComments(); +} + +AsmFile::AsmFile(AsmFile&& other) : m_filename(std::move(other.m_filename)) +{ + m_buffer = other.m_buffer; + m_pos = other.m_pos; + m_size = other.m_size; + m_lineNum = other.m_lineNum; + m_lineStart = other.m_lineStart; + + other.m_buffer = nullptr; +} + +AsmFile::~AsmFile() +{ + delete[] m_buffer; +} + +// Removes comments to simplify further processing. +// It stops upon encountering a null character, +// which may or may not be the end of file marker. +// If it's not, the error will be caught later. +void AsmFile::RemoveComments() +{ + long pos = 0; + char stringChar = 0; + + for (;;) + { + if (m_buffer[pos] == 0) + return; + + if (stringChar != 0) + { + if (m_buffer[pos] == '\\' && m_buffer[pos + 1] == stringChar) + { + pos += 2; + } + else + { + if (m_buffer[pos] == stringChar) + stringChar = 0; + pos++; + } + } + else if (m_buffer[pos] == '@' && (pos == 0 || m_buffer[pos - 1] != '\\')) + { + while (m_buffer[pos] != '\n' && m_buffer[pos] != 0) + m_buffer[pos++] = ' '; + } + else if (m_buffer[pos] == '/' && m_buffer[pos + 1] == '*') + { + m_buffer[pos++] = ' '; + m_buffer[pos++] = ' '; + + for (;;) + { + if (m_buffer[pos] == 0) + return; + + if (m_buffer[pos] == '*' && m_buffer[pos + 1] == '/') + { + m_buffer[pos++] = ' '; + m_buffer[pos++] = ' '; + break; + } + else + { + if (m_buffer[pos] != '\n') + m_buffer[pos] = ' '; + pos++; + } + } + } + else + { + if (m_buffer[pos] == '"' || m_buffer[pos] == '\'') + stringChar = m_buffer[pos]; + pos++; + } + } +} + +// Checks if we're at a particular directive and if so, consumes it. +// Returns whether the directive was found. +bool AsmFile::CheckForDirective(std::string name) +{ + long i; + long length = static_cast<long>(name.length()); + + for (i = 0; i < length && m_pos + i < m_size; i++) + if (name[i] != m_buffer[m_pos + i]) + return false; + + if (i < length) + return false; + + m_pos += length; + + return true; +} + +// Checks if we're at a known directive and if so, consumes it. +// Returns which directive was found. +Directive AsmFile::GetDirective() +{ + SkipWhitespace(); + + if (CheckForDirective(".include")) + return Directive::Include; + else if (CheckForDirective(".string")) + return Directive::String; + else if (CheckForDirective(".braille")) + return Directive::Braille; + else + return Directive::Unknown; +} + +// Checks if we're at label that ends with '::'. +// Returns the name if so and an empty string if not. +std::string AsmFile::GetGlobalLabel() +{ + long start = m_pos; + long pos = m_pos; + + if (IsIdentifierStartingChar(m_buffer[pos])) + { + pos++; + + while (IsIdentifierChar(m_buffer[pos])) + pos++; + } + + if (m_buffer[pos] == ':' && m_buffer[pos + 1] == ':') + { + m_pos = pos + 2; + ExpectEmptyRestOfLine(); + return std::string(&m_buffer[start], pos - start); + } + + return std::string(); +} + +// Skips tabs and spaces. +void AsmFile::SkipWhitespace() +{ + while (m_buffer[m_pos] == '\t' || m_buffer[m_pos] == ' ') + m_pos++; +} + +// Reads include path. +std::string AsmFile::ReadPath() +{ + SkipWhitespace(); + + if (m_buffer[m_pos] != '"') + RaiseError("expected file path"); + + m_pos++; + + int length = 0; + long startPos = m_pos; + + while (m_buffer[m_pos] != '"') + { + unsigned char c = m_buffer[m_pos++]; + + if (c == 0) + { + if (m_pos >= m_size) + RaiseError("unexpected EOF in include string"); + else + RaiseError("unexpected null character in include string"); + } + + if (!IsAsciiPrintable(c)) + RaiseError("unexpected character '\\x%02X' in include string", c); + + // Don't bother allowing any escape sequences. + if (c == '\\') + { + c = m_buffer[m_pos]; + RaiseError("unexpected escape '\\%c' in include string", c); + } + + length++; + + if (length > kMaxPath) + RaiseError("path is too long"); + } + + m_pos++; // Go past the right quote. + + ExpectEmptyRestOfLine(); + + return std::string(&m_buffer[startPos], length); +} + +// Reads a charmap string. +int AsmFile::ReadString(unsigned char* s) +{ + SkipWhitespace(); + + int length; + StringParser stringParser(m_buffer, m_size); + + try + { + m_pos += stringParser.ParseString(m_pos, s, length); + } + catch (std::runtime_error& e) + { + RaiseError(e.what()); + } + + SkipWhitespace(); + + if (ConsumeComma()) + { + SkipWhitespace(); + int padLength = ReadPadLength(); + + while (length < padLength) + { + s[length++] = 0; + } + } + + ExpectEmptyRestOfLine(); + + return length; +} + +int AsmFile::ReadBraille(unsigned char* s) +{ + static std::map<char, unsigned char> encoding = + { + { 'A', 0x01 }, + { 'B', 0x05 }, + { 'C', 0x03 }, + { 'D', 0x0B }, + { 'E', 0x09 }, + { 'F', 0x07 }, + { 'G', 0x0F }, + { 'H', 0x0D }, + { 'I', 0x06 }, + { 'J', 0x0E }, + { 'K', 0x11 }, + { 'L', 0x15 }, + { 'M', 0x13 }, + { 'N', 0x1B }, + { 'O', 0x19 }, + { 'P', 0x17 }, + { 'Q', 0x1F }, + { 'R', 0x1D }, + { 'S', 0x16 }, + { 'T', 0x1E }, + { 'U', 0x31 }, + { 'V', 0x35 }, + { 'W', 0x2E }, + { 'X', 0x33 }, + { 'Y', 0x3B }, + { 'Z', 0x39 }, + { ' ', 0x00 }, + { ',', 0x04 }, + { '.', 0x2C }, + { '$', 0xFF }, + }; + + SkipWhitespace(); + + int length = 0; + + if (m_buffer[m_pos] != '"') + RaiseError("expected braille string literal"); + + m_pos++; + + while (m_buffer[m_pos] != '"') + { + if (length == kMaxStringLength) + RaiseError("mapped string longer than %d bytes", kMaxStringLength); + + if (m_buffer[m_pos] == '\\' && m_buffer[m_pos + 1] == 'n') + { + s[length++] = 0xFE; + m_pos += 2; + } + else + { + char c = m_buffer[m_pos]; + + if (encoding.count(c) == 0) + { + if (IsAsciiPrintable(c)) + RaiseError("character '%c' not valid in braille string", m_buffer[m_pos]); + else + RaiseError("character '\\x%02X' not valid in braille string", m_buffer[m_pos]); + } + + s[length++] = encoding[c]; + m_pos++; + } + } + + m_pos++; // Go past the right quote. + + ExpectEmptyRestOfLine(); + + return length; +} + +// If we're at a comma, consumes it. +// Returns whether a comma was found. +bool AsmFile::ConsumeComma() +{ + if (m_buffer[m_pos] == ',') + { + m_pos++; + return true; + } + + return false; +} + +// Converts digit character to numerical value. +static int ConvertDigit(char c, int radix) +{ + int digit; + + if (c >= '0' && c <= '9') + digit = c - '0'; + else if (c >= 'A' && c <= 'F') + digit = 10 + c - 'A'; + else if (c >= 'a' && c <= 'f') + digit = 10 + c - 'a'; + else + return -1; + + return (digit < radix) ? digit : -1; +} + +// Reads an integer. If the integer is greater than maxValue, it returns -1. +int AsmFile::ReadPadLength() +{ + if (!IsAsciiDigit(m_buffer[m_pos])) + RaiseError("expected integer"); + + int radix = 10; + + if (m_buffer[m_pos] == '0' && m_buffer[m_pos + 1] == 'x') + { + radix = 16; + m_pos += 2; + } + + unsigned n = 0; + int digit; + + while ((digit = ConvertDigit(m_buffer[m_pos], radix)) != -1) + { + n = n * radix + digit; + + if (n > kMaxStringLength) + RaiseError("pad length greater than maximum length (%d)", kMaxStringLength); + + m_pos++; + } + + return n; +} + +// Outputs the current line and moves to the next one. +void AsmFile::OutputLine() +{ + while (m_buffer[m_pos] != '\n' && m_buffer[m_pos] != 0) + m_pos++; + + if (m_buffer[m_pos] == 0) + { + if (m_pos >= m_size) + { + RaiseWarning("file doesn't end with newline"); + puts(&m_buffer[m_lineStart]); + } + else + { + RaiseError("unexpected null character"); + } + } + else + { + m_buffer[m_pos] = 0; + puts(&m_buffer[m_lineStart]); + m_buffer[m_pos] = '\n'; + m_pos++; + m_lineStart = m_pos; + m_lineNum++; + } +} + +// Asserts that the rest of the line is empty and moves to the next one. +void AsmFile::ExpectEmptyRestOfLine() +{ + SkipWhitespace(); + + if (m_buffer[m_pos] == 0) + { + if (m_pos >= m_size) + RaiseWarning("file doesn't end with newline"); + else + RaiseError("unexpected null character"); + } + else if (m_buffer[m_pos] == '\n') + { + m_pos++; + m_lineStart = m_pos; + m_lineNum++; + } + else if (m_buffer[m_pos] == '\r') + { + RaiseError("only Unix-style LF newlines are supported"); + } + else + { + RaiseError("junk at end of line"); + } +} + +// Checks if we're at the end of the file. +bool AsmFile::IsAtEnd() +{ + return (m_pos >= m_size); +} + +// Output the current location to set gas's logical file and line numbers. +void AsmFile::OutputLocation() +{ + std::printf("# %ld \"%s\"\n", m_lineNum, m_filename.c_str()); +} + +// Reports a diagnostic message. +void AsmFile::ReportDiagnostic(const char* type, const char* format, std::va_list args) +{ + const int bufferSize = 1024; + char buffer[bufferSize]; + std::vsnprintf(buffer, bufferSize, format, args); + std::fprintf(stderr, "%s:%ld: %s: %s\n", m_filename.c_str(), m_lineNum, type, buffer); +} + +#define DO_REPORT(type) \ +do \ +{ \ + std::va_list args; \ + va_start(args, format); \ + ReportDiagnostic(type, format, args); \ + va_end(args); \ +} while (0) + +// Reports an error diagnostic and terminates the program. +void AsmFile::RaiseError(const char* format, ...) +{ + DO_REPORT("error"); + std::exit(1); +} + +// Reports a warning diagnostic. +void AsmFile::RaiseWarning(const char* format, ...) +{ + DO_REPORT("warning"); +} diff --git a/tools/preproc/asm_file.h b/tools/preproc/asm_file.h new file mode 100644 index 00000000..d73b36e9 --- /dev/null +++ b/tools/preproc/asm_file.h @@ -0,0 +1,72 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef ASM_FILE_H +#define ASM_FILE_H + +#include <cstdarg> +#include <cstdint> +#include <string> +#include "preproc.h" + +enum class Directive +{ + Include, + String, + Braille, + Unknown +}; + +class AsmFile +{ +public: + AsmFile(std::string filename); + AsmFile(AsmFile&& other); + AsmFile(const AsmFile&) = delete; + ~AsmFile(); + Directive GetDirective(); + std::string GetGlobalLabel(); + std::string ReadPath(); + int ReadString(unsigned char* s); + int ReadBraille(unsigned char* s); + bool IsAtEnd(); + void OutputLine(); + void OutputLocation(); + +private: + char* m_buffer; + long m_pos; + long m_size; + long m_lineNum; + long m_lineStart; + std::string m_filename; + + bool ConsumeComma(); + int ReadPadLength(); + void RemoveComments(); + bool CheckForDirective(std::string name); + void SkipWhitespace(); + void ExpectEmptyRestOfLine(); + void ReportDiagnostic(const char* type, const char* format, std::va_list args); + void RaiseError(const char* format, ...); + void RaiseWarning(const char* format, ...); +}; + +#endif // ASM_FILE_H diff --git a/tools/preproc/c_file.cpp b/tools/preproc/c_file.cpp new file mode 100644 index 00000000..229f568f --- /dev/null +++ b/tools/preproc/c_file.cpp @@ -0,0 +1,429 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#include <cstdio> +#include <cstdarg> +#include <string> +#include <memory> +#include "preproc.h" +#include "c_file.h" +#include "char_util.h" +#include "utf8.h" +#include "string_parser.h" + +CFile::CFile(std::string filename) : m_filename(filename) +{ + FILE *fp = std::fopen(filename.c_str(), "rb"); + + if (fp == NULL) + FATAL_ERROR("Failed to open \"%s\" for reading.\n", filename.c_str()); + + std::fseek(fp, 0, SEEK_END); + + m_size = std::ftell(fp); + + if (m_size < 0) + FATAL_ERROR("File size of \"%s\" is less than zero.\n", filename.c_str()); + + m_buffer = new char[m_size + 1]; + + std::rewind(fp); + + if (std::fread(m_buffer, m_size, 1, fp) != 1) + FATAL_ERROR("Failed to read \"%s\".\n", filename.c_str()); + + m_buffer[m_size] = 0; + + std::fclose(fp); + + m_pos = 0; + m_lineNum = 1; +} + +CFile::CFile(CFile&& other) : m_filename(std::move(other.m_filename)) +{ + m_buffer = other.m_buffer; + m_pos = other.m_pos; + m_size = other.m_size; + m_lineNum = other.m_lineNum; + + other.m_buffer = nullptr; +} + +CFile::~CFile() +{ + delete[] m_buffer; +} + +void CFile::Preproc() +{ + char stringChar = 0; + + while (m_pos < m_size) + { + if (stringChar) + { + if (m_buffer[m_pos] == stringChar) + { + std::putchar(stringChar); + m_pos++; + stringChar = 0; + } + else if (m_buffer[m_pos] == '\\' && m_buffer[m_pos + 1] == stringChar) + { + std::putchar('\\'); + std::putchar(stringChar); + m_pos += 2; + } + else + { + if (m_buffer[m_pos] == '\n') + m_lineNum++; + std::putchar(m_buffer[m_pos]); + m_pos++; + } + } + else + { + TryConvertString(); + TryConvertIncbin(); + + if (m_pos >= m_size) + break; + + char c = m_buffer[m_pos++]; + + std::putchar(c); + + if (c == '\n') + m_lineNum++; + else if (c == '"') + stringChar = '"'; + else if (c == '\'') + stringChar = '\''; + } + } +} + +bool CFile::ConsumeHorizontalWhitespace() +{ + if (m_buffer[m_pos] == '\t' || m_buffer[m_pos] == ' ') + { + m_pos++; + return true; + } + + return false; +} + +bool CFile::ConsumeNewline() +{ + if (m_buffer[m_pos] == '\r' && m_buffer[m_pos + 1] == '\n') + { + m_pos += 2; + m_lineNum++; + std::putchar('\n'); + return true; + } + + if (m_buffer[m_pos] == '\n') + { + m_pos++; + m_lineNum++; + std::putchar('\n'); + return true; + } + + return false; +} + +void CFile::SkipWhitespace() +{ + while (ConsumeHorizontalWhitespace() || ConsumeNewline()) + ; +} + +void CFile::TryConvertString() +{ + long oldPos = m_pos; + long oldLineNum = m_lineNum; + bool noTerminator = false; + + if (m_buffer[m_pos] != '_' || (m_pos > 0 && IsIdentifierChar(m_buffer[m_pos - 1]))) + return; + + m_pos++; + + if (m_buffer[m_pos] == '_') + { + noTerminator = true; + m_pos++; + } + + SkipWhitespace(); + + if (m_buffer[m_pos] != '(') + { + m_pos = oldPos; + m_lineNum = oldLineNum; + return; + } + + m_pos++; + + SkipWhitespace(); + + std::printf("{ "); + + while (1) + { + SkipWhitespace(); + + if (m_buffer[m_pos] == '"') + { + unsigned char s[kMaxStringLength]; + int length; + StringParser stringParser(m_buffer, m_size); + + try + { + m_pos += stringParser.ParseString(m_pos, s, length); + } + catch (std::runtime_error& e) + { + RaiseError(e.what()); + } + + for (int i = 0; i < length; i++) + printf("0x%02X, ", s[i]); + } + else if (m_buffer[m_pos] == ')') + { + m_pos++; + break; + } + else + { + if (m_pos >= m_size) + RaiseError("unexpected EOF"); + if (IsAsciiPrintable(m_buffer[m_pos])) + RaiseError("unexpected character '%c'", m_buffer[m_pos]); + else + RaiseError("unexpected character '\\x%02X'", m_buffer[m_pos]); + } + } + + if (noTerminator) + std::printf(" }"); + else + std::printf("0xFF }"); +} + +bool CFile::CheckIdentifier(const std::string& ident) +{ + unsigned int i; + + for (i = 0; i < ident.length() && m_pos + i < (unsigned)m_size; i++) + if (ident[i] != m_buffer[m_pos + i]) + return false; + + return (i == ident.length()); +} + +std::unique_ptr<unsigned char[]> CFile::ReadWholeFile(const std::string& path, int& size) +{ + FILE* fp = std::fopen(path.c_str(), "rb"); + + if (fp == nullptr) + RaiseError("Failed to open \"%s\" for reading.\n", path.c_str()); + + std::fseek(fp, 0, SEEK_END); + + size = std::ftell(fp); + + std::unique_ptr<unsigned char[]> buffer = std::unique_ptr<unsigned char[]>(new unsigned char[size]); + + std::rewind(fp); + + if (std::fread(buffer.get(), size, 1, fp) != 1) + RaiseError("Failed to read \"%s\".\n", path.c_str()); + + std::fclose(fp); + + return buffer; +} + +int ExtractData(const std::unique_ptr<unsigned char[]>& buffer, int offset, int size) +{ + switch (size) + { + case 1: + return buffer[offset]; + case 2: + return (buffer[offset + 1] << 8) + | buffer[offset]; + case 4: + return (buffer[offset + 3] << 24) + | (buffer[offset + 2] << 16) + | (buffer[offset + 1] << 8) + | buffer[offset]; + default: + FATAL_ERROR("Invalid size passed to ExtractData.\n"); + } +} + +void CFile::TryConvertIncbin() +{ + std::string idents[6] = { "INCBIN_S8", "INCBIN_U8", "INCBIN_S16", "INCBIN_U16", "INCBIN_S32", "INCBIN_U32" }; + int incbinType = -1; + + for (int i = 0; i < 6; i++) + { + if (CheckIdentifier(idents[i])) + { + incbinType = i; + break; + } + } + + if (incbinType == -1) + return; + + int size = 1 << (incbinType / 2); + bool isSigned = ((incbinType % 2) == 0); + + long oldPos = m_pos; + long oldLineNum = m_lineNum; + + m_pos += idents[incbinType].length(); + + SkipWhitespace(); + + if (m_buffer[m_pos] != '(') + { + m_pos = oldPos; + m_lineNum = oldLineNum; + return; + } + + m_pos++; + + std::printf("{"); + + while (true) + { + SkipWhitespace(); + + if (m_buffer[m_pos] != '"') + RaiseError("expected double quote"); + + m_pos++; + + int startPos = m_pos; + + while (m_buffer[m_pos] != '"') + { + if (m_buffer[m_pos] == 0) + { + if (m_pos >= m_size) + RaiseError("unexpected EOF in path string"); + else + RaiseError("unexpected null character in path string"); + } + + if (m_buffer[m_pos] == '\r' || m_buffer[m_pos] == '\n') + RaiseError("unexpected end of line character in path string"); + + if (m_buffer[m_pos] == '\\') + RaiseError("unexpected escape in path string"); + + m_pos++; + } + + std::string path(&m_buffer[startPos], m_pos - startPos); + + m_pos++; + + int fileSize; + std::unique_ptr<unsigned char[]> buffer = ReadWholeFile(path, fileSize); + + if ((fileSize % size) != 0) + RaiseError("Size %d doesn't evenly divide file size %d.\n", size, fileSize); + + int count = fileSize / size; + int offset = 0; + + for (int i = 0; i < count; i++) + { + int data = ExtractData(buffer, offset, size); + offset += size; + + if (isSigned) + std::printf("%d,", data); + else + std::printf("%uu,", data); + } + + SkipWhitespace(); + + if (m_buffer[m_pos] != ',') + break; + + m_pos++; + } + + if (m_buffer[m_pos] != ')') + RaiseError("expected ')'"); + + m_pos++; + + std::printf("}"); +} + +// Reports a diagnostic message. +void CFile::ReportDiagnostic(const char* type, const char* format, std::va_list args) +{ + const int bufferSize = 1024; + char buffer[bufferSize]; + std::vsnprintf(buffer, bufferSize, format, args); + std::fprintf(stderr, "%s:%ld: %s: %s\n", m_filename.c_str(), m_lineNum, type, buffer); +} + +#define DO_REPORT(type) \ +do \ +{ \ + std::va_list args; \ + va_start(args, format); \ + ReportDiagnostic(type, format, args); \ + va_end(args); \ +} while (0) + +// Reports an error diagnostic and terminates the program. +void CFile::RaiseError(const char* format, ...) +{ + DO_REPORT("error"); + std::exit(1); +} + +// Reports a warning diagnostic. +void CFile::RaiseWarning(const char* format, ...) +{ + DO_REPORT("warning"); +} diff --git a/tools/preproc/c_file.h b/tools/preproc/c_file.h new file mode 100644 index 00000000..7369aba8 --- /dev/null +++ b/tools/preproc/c_file.h @@ -0,0 +1,58 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef C_FILE_H +#define C_FILE_H + +#include <cstdarg> +#include <cstdint> +#include <string> +#include <memory> +#include "preproc.h" + +class CFile +{ +public: + CFile(std::string filename); + CFile(CFile&& other); + CFile(const CFile&) = delete; + ~CFile(); + void Preproc(); + +private: + char* m_buffer; + long m_pos; + long m_size; + long m_lineNum; + std::string m_filename; + + bool ConsumeHorizontalWhitespace(); + bool ConsumeNewline(); + void SkipWhitespace(); + void TryConvertString(); + std::unique_ptr<unsigned char[]> ReadWholeFile(const std::string& path, int& size); + bool CheckIdentifier(const std::string& ident); + void TryConvertIncbin(); + void ReportDiagnostic(const char* type, const char* format, std::va_list args); + void RaiseError(const char* format, ...); + void RaiseWarning(const char* format, ...); +}; + +#endif // C_FILE_H diff --git a/tools/preproc/char_util.h b/tools/preproc/char_util.h new file mode 100644 index 00000000..02a6e1ce --- /dev/null +++ b/tools/preproc/char_util.h @@ -0,0 +1,71 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef CHAR_UTIL_H +#define CHAR_UTIL_H + +#include <cstdint> +#include <cassert> + +inline bool IsAscii(unsigned char c) +{ + return (c < 128); +} + +inline bool IsAsciiAlpha(unsigned char c) +{ + return ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')); +} + +inline bool IsAsciiDigit(unsigned char c) +{ + return (c >= '0' && c <= '9'); +} + +inline bool IsAsciiHexDigit(unsigned char c) +{ + return ((c >= '0' && c <= '9') + || (c >= 'a' && c <= 'f') + || (c >= 'A' && c <= 'F')); +} + +inline bool IsAsciiAlphanum(unsigned char c) +{ + return (IsAsciiAlpha(c) || IsAsciiDigit(c)); +} + +inline bool IsAsciiPrintable(unsigned char c) +{ + return (c >= ' ' && c <= '~'); +} + +// Returns whether the character can start a C identifier or the identifier of a "{FOO}" constant in strings. +inline bool IsIdentifierStartingChar(unsigned char c) +{ + return IsAsciiAlpha(c) || c == '_'; +} + +// Returns whether the character can be used in a C identifier or the identifier of a "{FOO}" constant in strings. +inline bool IsIdentifierChar(unsigned char c) +{ + return IsAsciiAlphanum(c) || c == '_'; +} + +#endif // CHAR_UTIL_H diff --git a/tools/preproc/charmap.cpp b/tools/preproc/charmap.cpp new file mode 100644 index 00000000..e4a8999b --- /dev/null +++ b/tools/preproc/charmap.cpp @@ -0,0 +1,410 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#include <cstdio> +#include <cstdint> +#include <cstdarg> +#include "preproc.h" +#include "charmap.h" +#include "char_util.h" +#include "utf8.h" + +enum LhsType +{ + Char, + Escape, + Constant, + None +}; + +struct Lhs +{ + LhsType type; + std::string name; + std::int32_t code; +}; + +class CharmapReader +{ +public: + CharmapReader(std::string filename); + CharmapReader(const CharmapReader&) = delete; + ~CharmapReader(); + Lhs ReadLhs(); + void ExpectEqualsSign(); + std::string ReadSequence(); + void ExpectEmptyRestOfLine(); + void RaiseError(const char* format, ...); + +private: + char* m_buffer; + long m_pos; + long m_size; + long m_lineNum; + std::string m_filename; + + void RemoveComments(); + std::string ReadConstant(); + void SkipWhitespace(); +}; + +CharmapReader::CharmapReader(std::string filename) : m_filename(filename) +{ + if (filename == "") { m_buffer = new char[1] {}; return; } + + FILE *fp = std::fopen(filename.c_str(), "rb"); + + if (fp == NULL) + FATAL_ERROR("Failed to open \"%s\" for reading.\n", filename.c_str()); + + std::fseek(fp, 0, SEEK_END); + + m_size = std::ftell(fp); + + if (m_size < 0) + FATAL_ERROR("File size of \"%s\" is less than zero.\n", filename.c_str()); + + m_buffer = new char[m_size + 1]; + + std::rewind(fp); + + if (std::fread(m_buffer, m_size, 1, fp) != 1) + FATAL_ERROR("Failed to read \"%s\".\n", filename.c_str()); + + m_buffer[m_size] = 0; + + std::fclose(fp); + + m_pos = 0; + m_lineNum = 1; + + RemoveComments(); +} + +CharmapReader::~CharmapReader() +{ + delete[] m_buffer; +} + +Lhs CharmapReader::ReadLhs() +{ + Lhs lhs; + + for (;;) + { + SkipWhitespace(); + + if (m_buffer[m_pos] == '\n') + { + m_pos++; + m_lineNum++; + } + else + { + break; + } + } + + if (m_buffer[m_pos] == '\'') + { + m_pos++; + + bool isEscape = (m_buffer[m_pos] == '\\'); + + if (isEscape) + { + m_pos++; + } + + unsigned char c = m_buffer[m_pos]; + + if (c == 0) + { + if (m_pos >= m_size) + RaiseError("unexpected EOF in UTF-8 character literal"); + else + RaiseError("unexpected null character in UTF-8 character literal"); + } + + if (IsAscii(c) && !IsAsciiPrintable(c)) + RaiseError("unexpected character U+%X in UTF-8 character literal", c); + + UnicodeChar unicodeChar = DecodeUtf8(&m_buffer[m_pos]); + std::int32_t code = unicodeChar.code; + + if (code == -1) + RaiseError("invalid encoding in UTF-8 character literal"); + + m_pos += unicodeChar.encodingLength; + + if (m_buffer[m_pos] != '\'') + RaiseError("unterminated character literal"); + + m_pos++; + + lhs.code = code; + + if (isEscape) + { + if (code >= 128) + RaiseError("escapes using non-ASCII characters are invalid"); + + switch (code) + { + case '\'': + lhs.type = LhsType::Char; + break; + case '\\': + lhs.type = LhsType::Char; + case '"': + RaiseError("cannot escape double quote"); + break; + default: + lhs.type = LhsType::Escape; + } + } + else + { + if (code == '\'') + RaiseError("empty character literal"); + + lhs.type = LhsType::Char; + } + } + else if (IsIdentifierStartingChar(m_buffer[m_pos])) + { + lhs.type = LhsType::Constant; + lhs.name = ReadConstant(); + } + else if (m_buffer[m_pos] == '\r') + { + RaiseError("only Unix-style LF newlines are supported"); + } + else if (m_buffer[m_pos] == 0) + { + if (m_pos < m_size) + RaiseError("unexpected null character"); + lhs.type = LhsType::None; + } + else + { + RaiseError("junk at start of line"); + } + + return lhs; +} + +void CharmapReader::ExpectEqualsSign() +{ + SkipWhitespace(); + + if (m_buffer[m_pos] != '=') + RaiseError("expected equals sign"); + + m_pos++; +} + +static unsigned int ConvertHexDigit(char c) +{ + unsigned int digit = 0; + + if (c >= '0' && c <= '9') + digit = c - '0'; + else if (c >= 'A' && c <= 'F') + digit = 10 + c - 'A'; + else if (c >= 'a' && c <= 'f') + digit = 10 + c - 'a'; + + return digit; +} + +std::string CharmapReader::ReadSequence() +{ + SkipWhitespace(); + + long startPos = m_pos; + + unsigned int length = 0; + + while (IsAsciiHexDigit(m_buffer[m_pos]) && IsAsciiHexDigit(m_buffer[m_pos + 1])) + { + m_pos += 2; + length++; + + if (length > kMaxCharmapSequenceLength) + RaiseError("byte sequence too long (max is %lu bytes)", kMaxCharmapSequenceLength); + + SkipWhitespace(); + } + + if (IsAsciiHexDigit(m_buffer[m_pos])) + RaiseError("each byte must have 2 hex digits"); + + if (length == 0) + RaiseError("expected byte sequence"); + + std::string sequence; + sequence.reserve(length); + + m_pos = startPos; + + for (unsigned int i = 0; i < length; i++) + { + unsigned int digit1 = ConvertHexDigit(m_buffer[m_pos]); + unsigned int digit2 = ConvertHexDigit(m_buffer[m_pos + 1]); + unsigned char byte = digit1 * 16 + digit2; + sequence += byte; + + m_pos += 2; + SkipWhitespace(); + } + + return sequence; +} + +void CharmapReader::ExpectEmptyRestOfLine() +{ + SkipWhitespace(); + + if (m_buffer[m_pos] == 0) + { + if (m_pos < m_size) + RaiseError("unexpected null character"); + } + else if (m_buffer[m_pos] == '\n') + { + m_pos++; + m_lineNum++; + } + else if (m_buffer[m_pos] == '\r') + { + RaiseError("only Unix-style LF newlines are supported"); + } + else + { + RaiseError("junk at end of line"); + } +} + +void CharmapReader::RaiseError(const char* format, ...) +{ + const int bufferSize = 1024; + char buffer[bufferSize]; + + std::va_list args; + va_start(args, format); + std::vsnprintf(buffer, bufferSize, format, args); + va_end(args); + + std::fprintf(stderr, "%s:%ld: error: %s\n", m_filename.c_str(), m_lineNum, buffer); + + std::exit(1); +} + +void CharmapReader::RemoveComments() +{ + long pos = 0; + bool inString = false; + + for (;;) + { + if (m_buffer[pos] == 0) + return; + + if (inString) + { + if (m_buffer[pos] == '\\' && m_buffer[pos + 1] == '\'') + { + pos += 2; + } + else + { + if (m_buffer[pos] == '\'') + inString = false; + pos++; + } + } + else if (m_buffer[pos] == '@') + { + while (m_buffer[pos] != '\n' && m_buffer[pos] != 0) + m_buffer[pos++] = ' '; + } + else + { + if (m_buffer[pos] == '\'') + inString = true; + pos++; + } + } +} + +std::string CharmapReader::ReadConstant() +{ + long startPos = m_pos; + + while (IsIdentifierChar(m_buffer[m_pos])) + m_pos++; + + return std::string(&m_buffer[startPos], m_pos - startPos); +} + +void CharmapReader::SkipWhitespace() +{ + while (m_buffer[m_pos] == '\t' || m_buffer[m_pos] == ' ') + m_pos++; +} + +Charmap::Charmap(std::string filename) +{ + CharmapReader reader(filename); + + for (;;) + { + Lhs lhs = reader.ReadLhs(); + + if (lhs.type == LhsType::None) + return; + + reader.ExpectEqualsSign(); + + std::string sequence = reader.ReadSequence(); + + switch (lhs.type) + { + case LhsType::Char: + if (m_chars.find(lhs.code) != m_chars.end()) + reader.RaiseError("redefining char"); + m_chars[lhs.code] = sequence; + break; + case LhsType::Escape: + if (m_escapes[lhs.code].length() != 0) + reader.RaiseError("redefining escape"); + m_escapes[lhs.code] = sequence; + break; + case LhsType::Constant: + if (m_constants.find(lhs.name) != m_constants.end()) + reader.RaiseError("redefining constant"); + m_constants[lhs.name] = sequence; + break; + } + + reader.ExpectEmptyRestOfLine(); + } +} diff --git a/tools/preproc/charmap.h b/tools/preproc/charmap.h new file mode 100644 index 00000000..0d752ac9 --- /dev/null +++ b/tools/preproc/charmap.h @@ -0,0 +1,64 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef CHARMAP_H +#define CHARMAP_H + +#include <cstdint> +#include <string> +#include <map> +#include <vector> + +class Charmap +{ +public: + Charmap(std::string filename); + + std::string Char(std::int32_t code) + { + auto it = m_chars.find(code); + + if (it == m_chars.end()) + return std::string(); + + return it->second; + } + + std::string Escape(unsigned char code) + { + return m_escapes[code]; + } + + std::string Constant(std::string identifier) + { + auto it = m_constants.find(identifier); + + if (it == m_constants.end()) + return std::string(); + + return it->second; + } +private: + std::map<std::int32_t, std::string> m_chars; + std::string m_escapes[128]; + std::map<std::string, std::string> m_constants; +}; + +#endif // CHARMAP_H diff --git a/tools/preproc/preproc.cpp b/tools/preproc/preproc.cpp new file mode 100644 index 00000000..71dc537c --- /dev/null +++ b/tools/preproc/preproc.cpp @@ -0,0 +1,156 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#include <string> +#include <stack> +#include "preproc.h" +#include "asm_file.h" +#include "c_file.h" +#include "charmap.h" + +Charmap* g_charmap; + +void PrintAsmBytes(unsigned char *s, int length) +{ + if (length > 0) + { + std::printf("\t.byte "); + for (int i = 0; i < length; i++) + { + std::printf("0x%02X", s[i]); + + if (i < length - 1) + std::printf(", "); + } + std::putchar('\n'); + } +} + +void PreprocAsmFile(std::string filename) +{ + std::stack<AsmFile> stack; + + stack.push(AsmFile(filename)); + + for (;;) + { + while (stack.top().IsAtEnd()) + { + stack.pop(); + + if (stack.empty()) + return; + else + stack.top().OutputLocation(); + } + + Directive directive = stack.top().GetDirective(); + + switch (directive) + { + case Directive::Include: + stack.push(AsmFile(stack.top().ReadPath())); + stack.top().OutputLocation(); + break; + case Directive::String: + { + unsigned char s[kMaxStringLength]; + int length = stack.top().ReadString(s); + PrintAsmBytes(s, length); + break; + } + case Directive::Braille: + { + unsigned char s[kMaxStringLength]; + int length = stack.top().ReadBraille(s); + PrintAsmBytes(s, length); + break; + } + case Directive::Unknown: + { + std::string globalLabel = stack.top().GetGlobalLabel(); + + if (globalLabel.length() != 0) + { + const char *s = globalLabel.c_str(); + std::printf("%s: ; .global %s\n", s, s); + } + else + { + stack.top().OutputLine(); + } + + break; + } + } + } +} + +void PreprocCFile(std::string filename) +{ + CFile cFile(filename); + cFile.Preproc(); +} + +char* GetFileExtension(char* filename) +{ + char* extension = filename; + + while (*extension != 0) + extension++; + + while (extension > filename && *extension != '.') + extension--; + + if (extension == filename) + return nullptr; + + extension++; + + if (*extension == 0) + return nullptr; + + return extension; +} + +int main(int argc, char **argv) +{ + if (argc != 3 && argc != 2) + { + std::fprintf(stderr, "Usage: %s SRC_FILE CHARMAP_FILE", argv[0]); + return 1; + } + + g_charmap = new Charmap(argc == 3 ? argv[2] : ""); + + char* extension = GetFileExtension(argv[1]); + + if (!extension) + FATAL_ERROR("\"%s\" has no file extension.\n", argv[1]); + + if ((extension[0] == 's') && extension[1] == 0) + PreprocAsmFile(argv[1]); + else if ((extension[0] == 'c' || extension[0] == 'i') && extension[1] == 0) + PreprocCFile(argv[1]); + else + FATAL_ERROR("\"%s\" has an unknown file extension of \"%s\".\n", argv[1], extension); + + return 0; +} diff --git a/tools/preproc/preproc.h b/tools/preproc/preproc.h new file mode 100644 index 00000000..515f64e0 --- /dev/null +++ b/tools/preproc/preproc.h @@ -0,0 +1,54 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef PREPROC_H +#define PREPROC_H + +#include <cstdio> +#include <cstdlib> +#include "charmap.h" + +#ifdef _MSC_VER + +#define FATAL_ERROR(format, ...) \ +do \ +{ \ + std::fprintf(stderr, format, __VA_ARGS__); \ + std::exit(1); \ +} while (0) + +#else + +#define FATAL_ERROR(format, ...) \ +do \ +{ \ + std::fprintf(stderr, format, ##__VA_ARGS__); \ + std::exit(1); \ +} while (0) + +#endif // _MSC_VER + +const int kMaxPath = 256; +const int kMaxStringLength = 1024; +const unsigned long kMaxCharmapSequenceLength = 16; + +extern Charmap* g_charmap; + +#endif // PREPROC_H diff --git a/tools/preproc/string_parser.cpp b/tools/preproc/string_parser.cpp new file mode 100644 index 00000000..dd5196a4 --- /dev/null +++ b/tools/preproc/string_parser.cpp @@ -0,0 +1,355 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#include <cstdio> +#include <cstdarg> +#include <stdexcept> +#include "preproc.h" +#include "string_parser.h" +#include "char_util.h" +#include "utf8.h" + +// Reads a charmap char or escape sequence. +std::string StringParser::ReadCharOrEscape() +{ + std::string sequence; + + bool isEscape = (m_buffer[m_pos] == '\\'); + + if (isEscape) + { + m_pos++; + + if (m_buffer[m_pos] == '"') + { + sequence = g_charmap->Char('"'); + + if (sequence.length() == 0) + RaiseError("no mapping exists for double quote"); + + return sequence; + } + else if (m_buffer[m_pos] == '\\') + { + sequence = g_charmap->Char('\\'); + + if (sequence.length() == 0) + RaiseError("no mapping exists for backslash"); + + return sequence; + } + } + + unsigned char c = m_buffer[m_pos]; + + if (c == 0) + { + if (m_pos >= m_size) + RaiseError("unexpected EOF in UTF-8 string"); + else + RaiseError("unexpected null character in UTF-8 string"); + } + + if (IsAscii(c) && !IsAsciiPrintable(c)) + RaiseError("unexpected character U+%X in UTF-8 string", c); + + UnicodeChar unicodeChar = DecodeUtf8(&m_buffer[m_pos]); + m_pos += unicodeChar.encodingLength; + std::int32_t code = unicodeChar.code; + + if (code == -1) + RaiseError("invalid encoding in UTF-8 string"); + + if (isEscape && code >= 128) + RaiseError("escapes using non-ASCII characters are invalid"); + + sequence = isEscape ? g_charmap->Escape(code) : g_charmap->Char(code); + + if (sequence.length() == 0) + { + if (isEscape) + RaiseError("unknown escape '\\%c'", code); + else + RaiseError("unknown character U+%X", code); + } + + return sequence; +} + +// Reads a charmap constant, i.e. "{FOO}". +std::string StringParser::ReadBracketedConstants() +{ + std::string totalSequence; + + m_pos++; // Assume we're on the left curly bracket. + + while (m_buffer[m_pos] != '}') + { + SkipWhitespace(); + + if (IsIdentifierStartingChar(m_buffer[m_pos])) + { + long startPos = m_pos; + + m_pos++; + + while (IsIdentifierChar(m_buffer[m_pos])) + m_pos++; + + std::string sequence = g_charmap->Constant(std::string(&m_buffer[startPos], m_pos - startPos)); + + if (sequence.length() == 0) + { + m_buffer[m_pos] = 0; + RaiseError("unknown constant '%s'", &m_buffer[startPos]); + } + + totalSequence += sequence; + } + else if (IsAsciiDigit(m_buffer[m_pos])) + { + Integer integer = ReadInteger(); + + switch (integer.size) + { + case 1: + totalSequence += (unsigned char)integer.value; + break; + case 2: + totalSequence += (unsigned char)integer.value; + totalSequence += (unsigned char)(integer.value >> 8); + break; + case 4: + totalSequence += (unsigned char)integer.value; + totalSequence += (unsigned char)(integer.value >> 8); + totalSequence += (unsigned char)(integer.value >> 16); + totalSequence += (unsigned char)(integer.value >> 24); + break; + } + } + else if (m_buffer[m_pos] == 0) + { + if (m_pos >= m_size) + RaiseError("unexpected EOF after left curly bracket"); + else + RaiseError("unexpected null character within curly brackets"); + } + else + { + if (IsAsciiPrintable(m_buffer[m_pos])) + RaiseError("unexpected character '%c' within curly brackets", m_buffer[m_pos]); + else + RaiseError("unexpected character '\\x%02X' within curly brackets", m_buffer[m_pos]); + } + } + + m_pos++; // Go past the right curly bracket. + + return totalSequence; +} + +// Reads a charmap string. +int StringParser::ParseString(long srcPos, unsigned char* dest, int& destLength) +{ + m_pos = srcPos; + + if (m_buffer[m_pos] != '"') + RaiseError("expected UTF-8 string literal"); + + long start = m_pos; + + m_pos++; + + destLength = 0; + + while (m_buffer[m_pos] != '"') + { + std::string sequence = (m_buffer[m_pos] == '{') ? ReadBracketedConstants() : ReadCharOrEscape(); + + for (const char& c : sequence) + { + if (destLength == kMaxStringLength) + RaiseError("mapped string longer than %d bytes", kMaxStringLength); + + dest[destLength++] = c; + } + } + + m_pos++; // Go past the right quote. + + return m_pos - start; +} + +void StringParser::RaiseError(const char* format, ...) +{ + const int bufferSize = 1024; + char buffer[bufferSize]; + + std::va_list args; + va_start(args, format); + std::vsnprintf(buffer, bufferSize, format, args); + va_end(args); + + throw std::runtime_error(buffer); +} + +// Converts digit character to numerical value. +static int ConvertDigit(char c, int radix) +{ + int digit; + + if (c >= '0' && c <= '9') + digit = c - '0'; + else if (c >= 'A' && c <= 'F') + digit = 10 + c - 'A'; + else if (c >= 'a' && c <= 'f') + digit = 10 + c - 'a'; + else + return -1; + + return (digit < radix) ? digit : -1; +} + +void StringParser::SkipRestOfInteger(int radix) +{ + while (ConvertDigit(m_buffer[m_pos], radix) != -1) + m_pos++; +} + +StringParser::Integer StringParser::ReadDecimal() +{ + const int radix = 10; + std::uint64_t n = 0; + int digit; + std::uint64_t max = UINT32_MAX; + long startPos = m_pos; + + while ((digit = ConvertDigit(m_buffer[m_pos], radix)) != -1) + { + n = n * radix + digit; + + if (n >= max) + { + SkipRestOfInteger(radix); + + std::string intLiteral(m_buffer + startPos, m_pos - startPos); + RaiseError("integer literal \"%s\" is too large", intLiteral.c_str()); + } + + m_pos++; + } + + int size; + + if (m_buffer[m_pos] == 'H') + { + if (n >= 0x10000) + { + RaiseError("%lu is too large to be a halfword", (unsigned long)n); + } + + size = 2; + m_pos++; + } + else if (m_buffer[m_pos] == 'W') + { + size = 4; + m_pos++; + } + else + { + if (n >= 0x10000) + size = 4; + else if (n >= 0x100) + size = 2; + else + size = 1; + } + + return{ static_cast<std::uint32_t>(n), size }; +} + +StringParser::Integer StringParser::ReadHex() +{ + const int radix = 16; + std::uint64_t n = 0; + int digit; + std::uint64_t max = UINT32_MAX; + long startPos = m_pos; + + while ((digit = ConvertDigit(m_buffer[m_pos], radix)) != -1) + { + n = n * radix + digit; + + if (n >= max) + { + SkipRestOfInteger(radix); + + std::string intLiteral(m_buffer + startPos, m_pos - startPos); + RaiseError("integer literal \"%s\" is too large", intLiteral.c_str()); + } + + m_pos++; + } + + int length = m_pos - startPos; + int size = 0; + + switch (length) + { + case 2: + size = 1; + break; + case 4: + size = 2; + break; + case 8: + size = 4; + break; + default: + { + std::string intLiteral(m_buffer + startPos, m_pos - startPos); + RaiseError("hex integer literal \"0x%s\" doesn't have length of 2, 4, or 8 digits", intLiteral.c_str()); + } + } + + return{ static_cast<std::uint32_t>(n), size }; +} + +StringParser::Integer StringParser::ReadInteger() +{ + if (!IsAsciiDigit(m_buffer[m_pos])) + RaiseError("expected integer"); + + if (m_buffer[m_pos] == '0' && m_buffer[m_pos + 1] == 'x') + { + m_pos += 2; + return ReadHex(); + } + + return ReadDecimal(); +} + +// Skips tabs and spaces. +void StringParser::SkipWhitespace() +{ + while (m_buffer[m_pos] == '\t' || m_buffer[m_pos] == ' ') + m_pos++; +} diff --git a/tools/preproc/string_parser.h b/tools/preproc/string_parser.h new file mode 100644 index 00000000..abd2bfe9 --- /dev/null +++ b/tools/preproc/string_parser.h @@ -0,0 +1,55 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef STRING_PARSER_H +#define STRING_PARSER_H + +#include <cstdint> +#include <string> +#include "preproc.h" + +class StringParser +{ +public: + StringParser(char* buffer, long size) : m_buffer(buffer), m_size(size), m_pos(0) {} + int ParseString(long srcPos, unsigned char* dest, int &destLength); + +private: + struct Integer + { + std::uint32_t value; + int size; + }; + + char* m_buffer; + long m_size; + long m_pos; + + Integer ReadInteger(); + Integer ReadDecimal(); + Integer ReadHex(); + std::string ReadCharOrEscape(); + std::string ReadBracketedConstants(); + void SkipWhitespace(); + void SkipRestOfInteger(int radix); + void RaiseError(const char* format, ...); +}; + +#endif // STRING_PARSER_H diff --git a/tools/preproc/utf8.cpp b/tools/preproc/utf8.cpp new file mode 100644 index 00000000..7facfd44 --- /dev/null +++ b/tools/preproc/utf8.cpp @@ -0,0 +1,92 @@ +// Copyright (c) 2008-2009 Bjoern Hoehrmann <bjoern@hoehrmann.de> +// See http://bjoern.hoehrmann.de/utf-8/decoder/dfa/ for details. +// +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#include <cstdint> +#include "utf8.h" + +static const unsigned char s_byteTypeTable[] = +{ + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, // 00..1f + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, // 20..3f + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, // 40..5f + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, // 60..7f + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, // 80..9f + 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, // a0..bf + 8,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, // c0..df + 0xa,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x3,0x4,0x3,0x3, // e0..ef + 0xb,0x6,0x6,0x6,0x5,0x8,0x8,0x8,0x8,0x8,0x8,0x8,0x8,0x8,0x8,0x8, // f0..ff +}; + +const unsigned char s0 = 0 * 12; +const unsigned char s1 = 1 * 12; +const unsigned char s2 = 2 * 12; +const unsigned char s3 = 3 * 12; +const unsigned char s4 = 4 * 12; +const unsigned char s5 = 5 * 12; +const unsigned char s6 = 6 * 12; +const unsigned char s7 = 7 * 12; +const unsigned char s8 = 8 * 12; + +static const unsigned char s_transitionTable[] = +{ + s0,s1,s2,s3,s5,s8,s7,s1,s1,s1,s4,s6, // s0 + s1,s1,s1,s1,s1,s1,s1,s1,s1,s1,s1,s1, // s1 + s1,s0,s1,s1,s1,s1,s1,s0,s1,s0,s1,s1, // s2 + s1,s2,s1,s1,s1,s1,s1,s2,s1,s2,s1,s1, // s3 + s1,s1,s1,s1,s1,s1,s1,s2,s1,s1,s1,s1, // s4 + s1,s2,s1,s1,s1,s1,s1,s1,s1,s2,s1,s1, // s5 + s1,s1,s1,s1,s1,s1,s1,s3,s1,s3,s1,s1, // s6 + s1,s3,s1,s1,s1,s1,s1,s3,s1,s3,s1,s1, // s7 + s1,s3,s1,s1,s1,s1,s1,s1,s1,s1,s1,s1, // s8 +}; + +// Decodes UTF-8 encoded Unicode code point at "s". +UnicodeChar DecodeUtf8(const char* s) +{ + UnicodeChar unicodeChar; + int state = s0; + auto start = s; + + do + { + unsigned char byte = *s++; + int type = s_byteTypeTable[byte]; + + if (state == s0) + unicodeChar.code = (0xFF >> type) & byte; + else + unicodeChar.code = (unicodeChar.code << 6) | (byte & 0x3F); + + state = s_transitionTable[state + type]; + + if (state == s1) + { + unicodeChar.code = -1; + return unicodeChar; + } + } while (state != s0); + + unicodeChar.encodingLength = s - start; + + return unicodeChar; +} diff --git a/tools/preproc/utf8.h b/tools/preproc/utf8.h new file mode 100644 index 00000000..259de67c --- /dev/null +++ b/tools/preproc/utf8.h @@ -0,0 +1,34 @@ +// Copyright(c) 2016 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef UTF8_H +#define UTF8_H + +#include <cstdint> + +struct UnicodeChar +{ + std::int32_t code; + int encodingLength; +}; + +UnicodeChar DecodeUtf8(const char* s); + +#endif // UTF8_H diff --git a/tools/scaninc/.gitignore b/tools/scaninc/.gitignore new file mode 100644 index 00000000..94bfbf98 --- /dev/null +++ b/tools/scaninc/.gitignore @@ -0,0 +1 @@ +scaninc diff --git a/tools/scaninc/LICENSE b/tools/scaninc/LICENSE new file mode 100644 index 00000000..b66bf81c --- /dev/null +++ b/tools/scaninc/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2015 YamaArashi + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/tools/scaninc/Makefile b/tools/scaninc/Makefile new file mode 100644 index 00000000..1516f159 --- /dev/null +++ b/tools/scaninc/Makefile @@ -0,0 +1,18 @@ +CXX = g++ + +CXXFLAGS = -Wall -Werror -std=c++11 -O2 + +SRCS = scaninc.cpp c_file.cpp asm_file.cpp source_file.cpp + +HEADERS := scaninc.h asm_file.h c_file.h source_file.h + +.PHONY: all clean + +all: scaninc + @: + +scaninc: $(SRCS) $(HEADERS) + $(CXX) $(CXXFLAGS) $(SRCS) -o $@ $(LDFLAGS) + +clean: + $(RM) scaninc scaninc.exe diff --git a/tools/scaninc/asm_file.cpp b/tools/scaninc/asm_file.cpp new file mode 100644 index 00000000..109e604a --- /dev/null +++ b/tools/scaninc/asm_file.cpp @@ -0,0 +1,192 @@ +// Copyright(c) 2015-2017 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#include <cstdio> +#include <string> +#include "scaninc.h" +#include "asm_file.h" + +AsmFile::AsmFile(std::string path) +{ + m_path = path; + + FILE *fp = std::fopen(path.c_str(), "rb"); + + if (fp == NULL) + FATAL_ERROR("Failed to open \"%s\" for reading.\n", path.c_str()); + + std::fseek(fp, 0, SEEK_END); + + m_size = std::ftell(fp); + + m_buffer = new char[m_size]; + + std::rewind(fp); + + if (std::fread(m_buffer, m_size, 1, fp) != 1) + FATAL_ERROR("Failed to read \"%s\".\n", path.c_str()); + + std::fclose(fp); + + m_pos = 0; + m_lineNum = 1; +} + +AsmFile::~AsmFile() +{ + delete[] m_buffer; +} + +IncDirectiveType AsmFile::ReadUntilIncDirective(std::string &path) +{ + // At the beginning of each loop iteration, the current file position + // should be at the start of a line or at the end of the file. + for (;;) + { + SkipTabsAndSpaces(); + + IncDirectiveType incDirectiveType = IncDirectiveType::None; + + char c = PeekChar(); + if (c == '.' || c == '#') + { + m_pos++; + + if (MatchIncDirective("incbin", path)) + incDirectiveType = IncDirectiveType::Incbin; + else if (MatchIncDirective("include", path)) + incDirectiveType = IncDirectiveType::Include; + } + + for (;;) + { + int c = GetChar(); + + if (c == -1) + return incDirectiveType; + + if (c == ';') + { + SkipEndOfLineComment(); + break; + } + else if (c == '/' && PeekChar() == '*') + { + m_pos++; + SkipMultiLineComment(); + } + else if (c == '"') + { + SkipString(); + } + else if (c == '\n') + { + break; + } + } + + if (incDirectiveType != IncDirectiveType::None) + return incDirectiveType; + } +} + +std::string AsmFile::ReadPath() +{ + int length = 0; + int startPos = m_pos; + + for (;;) + { + int c = GetChar(); + + if (c == '"') + break; + + if (c == -1) + FATAL_INPUT_ERROR("unexpected EOF in include string\n"); + + if (c == 0) + FATAL_INPUT_ERROR("unexpected NUL character in include string\n"); + + if (c == '\n') + FATAL_INPUT_ERROR("unexpected end of line character in include string\n"); + + // Don't bother allowing any escape sequences. + if (c == '\\') + FATAL_INPUT_ERROR("unexpected escape in include string\n"); + + length++; + + if (length > SCANINC_MAX_PATH) + FATAL_INPUT_ERROR("path is too long"); + } + + return std::string(m_buffer + startPos, length); +} + +void AsmFile::SkipEndOfLineComment() +{ + int c; + + do + { + c = GetChar(); + } while (c != -1 && c != '\n'); +} + +void AsmFile::SkipMultiLineComment() +{ + for (;;) + { + int c = GetChar(); + + if (c == '*') + { + if (PeekChar() == '/') + { + m_pos++; + return; + } + } + else if (c == -1) + { + return; + } + } +} + +void AsmFile::SkipString() +{ + for (;;) + { + int c = GetChar(); + + if (c == '"') + break; + + if (c == -1) + FATAL_INPUT_ERROR("unexpected EOF in string\n"); + + if (c == '\\') + { + c = GetChar(); + } + } +} diff --git a/tools/scaninc/asm_file.h b/tools/scaninc/asm_file.h new file mode 100644 index 00000000..ad99b757 --- /dev/null +++ b/tools/scaninc/asm_file.h @@ -0,0 +1,119 @@ +// Copyright(c) 2015-2017 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef ASM_FILE_H +#define ASM_FILE_H + +#include <string> +#include "scaninc.h" + +enum class IncDirectiveType +{ + None, + Include, + Incbin +}; + +class AsmFile +{ +public: + AsmFile(std::string path); + ~AsmFile(); + IncDirectiveType ReadUntilIncDirective(std::string& path); + +private: + char *m_buffer; + int m_pos; + int m_size; + int m_lineNum; + std::string m_path; + + int GetChar() + { + if (m_pos >= m_size) + return -1; + + int c = m_buffer[m_pos++]; + + if (c == '\r') + { + if (m_pos < m_size && m_buffer[m_pos++] == '\n') + { + m_lineNum++; + return '\n'; + } + else + { + FATAL_INPUT_ERROR("CR line endings are not supported\n"); + } + } + + if (c == '\n') + m_lineNum++; + + return c; + } + + // No newline translation because it's not needed for any use of this function. + int PeekChar() + { + if (m_pos >= m_size) + return -1; + + return m_buffer[m_pos]; + } + + void SkipTabsAndSpaces() + { + while (m_pos < m_size && (m_buffer[m_pos] == '\t' || m_buffer[m_pos] == ' ')) + m_pos++; + } + + bool MatchIncDirective(std::string directiveName, std::string& path) + { + int length = directiveName.length(); + int i; + + for (i = 0; i < length && m_pos + i < m_size; i++) + if (directiveName[i] != m_buffer[m_pos + i]) + return false; + + if (i < length) + return false; + + m_pos += length; + + SkipTabsAndSpaces(); + + if (GetChar() != '"') + FATAL_INPUT_ERROR("no path after \".%s\" directive\n", directiveName.c_str()); + + path = ReadPath(); + + return true; + } + + std::string ReadPath(); + void SkipEndOfLineComment(); + void SkipMultiLineComment(); + void SkipString(); +}; + +#endif // ASM_FILE_H diff --git a/tools/scaninc/c_file.cpp b/tools/scaninc/c_file.cpp new file mode 100644 index 00000000..595f366c --- /dev/null +++ b/tools/scaninc/c_file.cpp @@ -0,0 +1,307 @@ +// Copyright(c) 2017 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#include "c_file.h" + +CFile::CFile(std::string path) +{ + m_path = path; + + FILE *fp = std::fopen(path.c_str(), "rb"); + + if (fp == NULL) + FATAL_ERROR("Failed to open \"%s\" for reading.\n", path.c_str()); + + std::fseek(fp, 0, SEEK_END); + + m_size = std::ftell(fp); + + m_buffer = new char[m_size + 1]; + m_buffer[m_size] = 0; + + std::rewind(fp); + + if (std::fread(m_buffer, m_size, 1, fp) != 1) + FATAL_ERROR("Failed to read \"%s\".\n", path.c_str()); + + std::fclose(fp); + + m_pos = 0; + m_lineNum = 1; +} + +CFile::~CFile() +{ + delete[] m_buffer; +} + +void CFile::FindIncbins() +{ + char stringChar = 0; + + while (m_pos < m_size) + { + if (stringChar) + { + if (m_buffer[m_pos] == stringChar) + { + m_pos++; + stringChar = 0; + } + else if (m_buffer[m_pos] == '\\' && m_buffer[m_pos + 1] == stringChar) + { + m_pos += 2; + } + else + { + if (m_buffer[m_pos] == '\n') + m_lineNum++; + m_pos++; + } + } + else + { + SkipWhitespace(); + CheckInclude(); + CheckIncbin(); + + if (m_pos >= m_size) + break; + + char c = m_buffer[m_pos++]; + + if (c == '\n') + m_lineNum++; + else if (c == '"') + stringChar = '"'; + else if (c == '\'') + stringChar = '\''; + else if (c == 0) + FATAL_INPUT_ERROR("unexpected null character"); + } + } +} + +bool CFile::ConsumeHorizontalWhitespace() +{ + if (m_buffer[m_pos] == '\t' || m_buffer[m_pos] == ' ') + { + m_pos++; + return true; + } + + return false; +} + +bool CFile::ConsumeNewline() +{ + if (m_buffer[m_pos] == '\n') + { + m_pos++; + m_lineNum++; + return true; + } + + if (m_buffer[m_pos] == '\r' && m_buffer[m_pos + 1] == '\n') + { + m_pos += 2; + m_lineNum++; + return true; + } + + return false; +} + +bool CFile::ConsumeComment() +{ + if (m_buffer[m_pos] == '/' && m_buffer[m_pos + 1] == '*') + { + m_pos += 2; + while (m_buffer[m_pos] != '*' || m_buffer[m_pos + 1] != '/') + { + if (m_buffer[m_pos] == 0) + return false; + if (!ConsumeNewline()) + m_pos++; + } + m_pos += 2; + return true; + } + else if (m_buffer[m_pos] == '/' && m_buffer[m_pos + 1] == '/') + { + m_pos += 2; + while (!ConsumeNewline()) + { + if (m_buffer[m_pos] == 0) + return false; + m_pos++; + } + return true; + } + + return false; +} + +void CFile::SkipWhitespace() +{ + while (ConsumeHorizontalWhitespace() || ConsumeNewline() || ConsumeComment()) + ; +} + +bool CFile::CheckIdentifier(const std::string& ident) +{ + unsigned int i; + + for (i = 0; i < ident.length() && m_pos + i < (unsigned)m_size; i++) + if (ident[i] != m_buffer[m_pos + i]) + return false; + + return (i == ident.length()); +} + +void CFile::CheckInclude() +{ + if (m_buffer[m_pos] != '#') + return; + + std::string ident = "#include"; + + if (!CheckIdentifier(ident)) + { + return; + } + + m_pos += ident.length(); + + ConsumeHorizontalWhitespace(); + + std::string path = ReadPath(); + + if (!path.empty()) { + m_includes.emplace(path); + } +} + +void CFile::CheckIncbin() +{ + // Optimization: assume most lines are not incbins + if (!(m_buffer[m_pos+0] == 'I' + && m_buffer[m_pos+1] == 'N' + && m_buffer[m_pos+2] == 'C' + && m_buffer[m_pos+3] == 'B' + && m_buffer[m_pos+4] == 'I' + && m_buffer[m_pos+5] == 'N' + && m_buffer[m_pos+6] == '_')) + { + return; + } + + std::string idents[6] = { "INCBIN_S8", "INCBIN_U8", "INCBIN_S16", "INCBIN_U16", "INCBIN_S32", "INCBIN_U32" }; + int incbinType = -1; + + for (int i = 0; i < 6; i++) + { + if (CheckIdentifier(idents[i])) + { + incbinType = i; + break; + } + } + + if (incbinType == -1) + return; + + long oldPos = m_pos; + long oldLineNum = m_lineNum; + + m_pos += idents[incbinType].length(); + + SkipWhitespace(); + + if (m_buffer[m_pos] != '(') + { + m_pos = oldPos; + m_lineNum = oldLineNum; + return; + } + + m_pos++; + + while (true) + { + SkipWhitespace(); + + std::string path = ReadPath(); + + SkipWhitespace(); + + m_incbins.emplace(path); + + if (m_buffer[m_pos] != ',') + break; + + m_pos++; + } + + if (m_buffer[m_pos] != ')') + FATAL_INPUT_ERROR("expected ')'"); + + m_pos++; + +} + +std::string CFile::ReadPath() +{ + if (m_buffer[m_pos] != '"') + { + if (m_buffer[m_pos] == '<') + { + return std::string(); + } + FATAL_INPUT_ERROR("expected '\"' or '<'"); + } + + m_pos++; + + int startPos = m_pos; + + while (m_buffer[m_pos] != '"') + { + if (m_buffer[m_pos] == 0) + { + if (m_pos >= m_size) + FATAL_INPUT_ERROR("unexpected EOF in path string"); + else + FATAL_INPUT_ERROR("unexpected null character in path string"); + } + + if (m_buffer[m_pos] == '\r' || m_buffer[m_pos] == '\n') + FATAL_INPUT_ERROR("unexpected end of line character in path string"); + + if (m_buffer[m_pos] == '\\') + FATAL_INPUT_ERROR("unexpected escape in path string"); + + m_pos++; + } + + m_pos++; + + return std::string(m_buffer + startPos, m_pos - 1 - startPos); +} diff --git a/tools/scaninc/c_file.h b/tools/scaninc/c_file.h new file mode 100644 index 00000000..618901b8 --- /dev/null +++ b/tools/scaninc/c_file.h @@ -0,0 +1,57 @@ +// Copyright(c) 2017 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef C_FILE_H +#define C_FILE_H + +#include <string> +#include <set> +#include <memory> +#include "scaninc.h" + +class CFile +{ +public: + CFile(std::string path); + ~CFile(); + void FindIncbins(); + const std::set<std::string>& GetIncbins() { return m_incbins; } + const std::set<std::string>& GetIncludes() { return m_includes; } + +private: + char *m_buffer; + int m_pos; + int m_size; + int m_lineNum; + std::string m_path; + std::set<std::string> m_incbins; + std::set<std::string> m_includes; + + bool ConsumeHorizontalWhitespace(); + bool ConsumeNewline(); + bool ConsumeComment(); + void SkipWhitespace(); + bool CheckIdentifier(const std::string& ident); + void CheckInclude(); + void CheckIncbin(); + std::string ReadPath(); +}; + +#endif // C_FILE_H diff --git a/tools/scaninc/scaninc.cpp b/tools/scaninc/scaninc.cpp new file mode 100644 index 00000000..b95cbd03 --- /dev/null +++ b/tools/scaninc/scaninc.cpp @@ -0,0 +1,121 @@ +// Copyright(c) 2015-2017 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#include <cstdio> +#include <cstdlib> +#include <list> +#include <queue> +#include <set> +#include <string> +#include "scaninc.h" +#include "source_file.h" + +bool CanOpenFile(std::string path) +{ + FILE *fp = std::fopen(path.c_str(), "rb"); + + if (fp == NULL) + return false; + + std::fclose(fp); + return true; +} + +const char *const USAGE = "Usage: scaninc [-I INCLUDE_PATH] FILE_PATH\n"; + +int main(int argc, char **argv) +{ + std::queue<std::string> filesToProcess; + std::set<std::string> dependencies; + + std::vector<std::string> includeDirs; + + argc--; + argv++; + + while (argc > 1) + { + std::string arg(argv[0]); + if (arg.substr(0, 2) == "-I") + { + std::string includeDir = arg.substr(2); + if (includeDir.empty()) + { + argc--; + argv++; + includeDir = std::string(argv[0]); + } + if (!includeDir.empty() && includeDir.back() != '/') + { + includeDir += '/'; + } + includeDirs.push_back(includeDir); + } + else + { + FATAL_ERROR(USAGE); + } + argc--; + argv++; + } + + if (argc != 1) { + FATAL_ERROR(USAGE); + } + + std::string initialPath(argv[0]); + + filesToProcess.push(initialPath); + + while (!filesToProcess.empty()) + { + std::string filePath = filesToProcess.front(); + SourceFile file(filePath); + filesToProcess.pop(); + + includeDirs.push_back(file.GetSrcDir()); + for (auto incbin : file.GetIncbins()) + { + dependencies.insert(incbin); + } + for (auto include : file.GetIncludes()) + { + for (auto includeDir : includeDirs) + { + std::string path(includeDir + include); + if (CanOpenFile(path)) + { + bool inserted = dependencies.insert(path).second; + if (inserted) + { + filesToProcess.push(path); + } + break; + } + } + } + includeDirs.pop_back(); + } + + for (const std::string &path : dependencies) + { + std::printf("%s\n", path.c_str()); + } +} diff --git a/tools/scaninc/scaninc.h b/tools/scaninc/scaninc.h new file mode 100644 index 00000000..30cc9611 --- /dev/null +++ b/tools/scaninc/scaninc.h @@ -0,0 +1,59 @@ +// Copyright(c) 2015-2017 YamaArashi +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef SCANINC_H +#define SCANINC_H + +#include <cstdio> +#include <cstdlib> + +#ifdef _MSC_VER + +#define FATAL_INPUT_ERROR(format, ...) \ +do { \ + fprintf(stderr, "%s:%d " format, m_path.c_str(), m_lineNum, __VA_ARGS__); \ + exit(1); \ +} while (0) + +#define FATAL_ERROR(format, ...) \ +do { \ + fprintf(stderr, format, __VA_ARGS__); \ + exit(1); \ +} while (0) + +#else + +#define FATAL_INPUT_ERROR(format, ...) \ +do { \ + fprintf(stderr, "%s:%d " format, m_path.c_str(), m_lineNum, ##__VA_ARGS__); \ + exit(1); \ +} while (0) + +#define FATAL_ERROR(format, ...) \ +do { \ + fprintf(stderr, format, ##__VA_ARGS__); \ + exit(1); \ +} while (0) + +#endif // _MSC_VER + +#define SCANINC_MAX_PATH 255 + +#endif // SCANINC_H diff --git a/tools/scaninc/source_file.cpp b/tools/scaninc/source_file.cpp new file mode 100644 index 00000000..f23ff6db --- /dev/null +++ b/tools/scaninc/source_file.cpp @@ -0,0 +1,125 @@ +// Copyright(c) 2019 Phlosioneer +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#include <new> +#include "source_file.h" + + +SourceFileType GetFileType(std::string& path) +{ + std::size_t pos = path.find_last_of('.'); + + if (pos == std::string::npos) + FATAL_ERROR("no file extension in path \"%s\"\n", path.c_str()); + + std::string extension = path.substr(pos + 1); + + if (extension == "c") + return SourceFileType::Cpp; + else if (extension == "s") + return SourceFileType::Asm; + else if (extension == "h") + return SourceFileType::Header; + else if (extension == "inc") + return SourceFileType::Inc; + else + FATAL_ERROR("Unrecognized extension \"%s\"\n", extension.c_str()); + + // Unreachable + return SourceFileType::Cpp; +} + +std::string GetDir(std::string& path) +{ + std::size_t slash = path.rfind('/'); + + if (slash != std::string::npos) + return path.substr(0, slash + 1); + else + return std::string(""); +} + +SourceFile::SourceFile(std::string path) +{ + m_file_type = GetFileType(path); + + m_src_dir = GetDir(path); + + if (m_file_type == SourceFileType::Cpp + || m_file_type == SourceFileType::Header) + { + new (&m_source_file.c_file) CFile(path); + m_source_file.c_file.FindIncbins(); + } + else + { + AsmFile file(path); + std::set<std::string> incbins; + std::set<std::string> includes; + + IncDirectiveType incDirectiveType; + std::string outputPath; + + while ((incDirectiveType = file.ReadUntilIncDirective(outputPath)) != IncDirectiveType::None) + { + if (incDirectiveType == IncDirectiveType::Include) + includes.insert(outputPath); + else + incbins.insert(outputPath); + } + + new (&m_source_file.asm_wrapper) SourceFile::InnerUnion::AsmWrapper{incbins, includes}; + } +} + +SourceFile::~SourceFile() +{ + if (m_file_type == SourceFileType::Cpp || m_file_type == SourceFileType::Header) + { + m_source_file.c_file.~CFile(); + } + else + { + m_source_file.asm_wrapper.asm_incbins.~set(); + m_source_file.asm_wrapper.asm_includes.~set(); + } +} + +const std::set<std::string>& SourceFile::GetIncbins() +{ + if (m_file_type == SourceFileType::Cpp || m_file_type == SourceFileType::Header) + return m_source_file.c_file.GetIncbins(); + else + return m_source_file.asm_wrapper.asm_incbins; +} + +const std::set<std::string>& SourceFile::GetIncludes() +{ + if (m_file_type == SourceFileType::Cpp || m_file_type == SourceFileType::Header) + return m_source_file.c_file.GetIncludes(); + else + return m_source_file.asm_wrapper.asm_includes; +} + +std::string& SourceFile::GetSrcDir() +{ + return m_src_dir; +} + diff --git a/tools/scaninc/source_file.h b/tools/scaninc/source_file.h new file mode 100644 index 00000000..f7b6412b --- /dev/null +++ b/tools/scaninc/source_file.h @@ -0,0 +1,71 @@ +// Copyright(c) 2019 Phlosioneer +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#ifndef SOURCE_FILE_H +#define SOURCE_FILE_H + +#include <string> +#include "scaninc.h" +#include "asm_file.h" +#include "c_file.h" + +enum class SourceFileType +{ + Cpp, + Header, + Asm, + Inc +}; + +SourceFileType GetFileType(std::string& path); + +class SourceFile +{ +public: + + SourceFile(std::string path); + ~SourceFile(); + SourceFile(SourceFile const&) = delete; + SourceFile(SourceFile&&) = delete; + SourceFile& operator =(SourceFile const&) = delete; + SourceFile& operator =(SourceFile&&) = delete; + bool HasIncbins(); + const std::set<std::string>& GetIncbins(); + const std::set<std::string>& GetIncludes(); + std::string& GetSrcDir(); + +private: + union InnerUnion { + CFile c_file; + struct AsmWrapper { + std::set<std::string> asm_incbins; + std::set<std::string> asm_includes; + } asm_wrapper; + + // Construction and destruction handled by SourceFile. + InnerUnion() {}; + ~InnerUnion() {}; + } m_source_file; + SourceFileType m_file_type; + std::string m_src_dir; +}; + +#endif // SOURCE_FILE_H + diff --git a/zeldatmc.sha1 b/zeldatmc.sha1 new file mode 100644 index 00000000..c965d243 --- /dev/null +++ b/zeldatmc.sha1 @@ -0,0 +1 @@ +b4bd50e4131b027c334547b4524e2dbbd4227130 zeldatmc.gba